commit b562e44f507e863c6792946e4e1b1449fbbac85d Author: Linus Torvalds Date: Sun Mar 13 21:28:54 2016 -0700 Linux 4.5 Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a26555498849489fb87139a15abe2eeb8a366ae7 Merge: f414ca6 d825c06 Author: Linus Torvalds Date: Sun Mar 13 13:04:46 2016 -0700 Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus Pull MIPS fixes from Ralf Baechle: "Another round of MIPS fixes for 4.5: - Fix JZ4780 build with DEBUG_ZBOOT and MACH_JZ4780 - Fix build with DEBUG_ZBOOT and MACH_JZ4780 - Fix issue with uninitialised temp_foreign_map - Fix awk regex compile failure with certain versions of awk. At this time, the sole user, ld-ifversion, is only used on MIPS" * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: MIPS: smp.c: Fix uninitialised temp_foreign_map MIPS: Fix build error when SMP is used without GIC ld-version: Fix awk regex compile failure MIPS: Fix build with DEBUG_ZBOOT and MACH_JZ4780 commit d825c06bfe8b885b797f917ad47365d0e9c21fbb Author: James Hogan Date: Fri Mar 4 10:10:51 2016 +0000 MIPS: smp.c: Fix uninitialised temp_foreign_map When calculate_cpu_foreign_map() recalculates the cpu_foreign_map cpumask it uses the local variable temp_foreign_map without initialising it to zero. Since the calculation only ever sets bits in this cpumask any existing bits at that memory location will remain set and find their way into cpu_foreign_map too. This could potentially lead to cache operations suboptimally doing smp calls to multiple VPEs in the same core, even though the VPEs share primary caches. Therefore initialise temp_foreign_map using cpumask_clear() before use. Fixes: cccf34e9411c ("MIPS: c-r4k: Fix cache flushing for MT cores") Signed-off-by: James Hogan Cc: Paul Burton Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/12759/ Signed-off-by: Ralf Baechle arch/mips/kernel/smp.c | 1 + 1 file changed, 1 insertion(+) commit 7a50e4688dabb8005df39b2b992d76629b8af8aa Author: Hauke Mehrtens Date: Sun Mar 6 22:28:56 2016 +0100 MIPS: Fix build error when SMP is used without GIC The MIPS_GIC_IPI should only be selected when MIPS_GIC is also selected, otherwise it results in a compile error. smp-gic.c uses some functions from include/linux/irqchip/mips-gic.h like plat_ipi_call_int_xlate() which are only added to the header file when MIPS_GIC is set. The Lantiq SoC does not use the GIC, but supports SMP. The calls top the functions from smp-gic.c are already protected by some #ifdefs The first part of this was introduced in commit 72e20142b2bf ("MIPS: Move GIC IPI functions out of smp-cmp.c") Signed-off-by: Hauke Mehrtens Cc: Paul Burton Cc: stable@vger.kernel.org # v3.15+ Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/12774/ Signed-off-by: Ralf Baechle arch/mips/Kconfig | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 4b7b1ef2c2f83d702272555e8adb839a50ba0f8e Author: James Hogan Date: Tue Mar 8 16:47:53 2016 +0000 ld-version: Fix awk regex compile failure The ld-version.sh script fails on some versions of awk with the following error, resulting in build failures for MIPS: awk: scripts/ld-version.sh: line 4: regular expression compile failed (missing '(') This is due to the regular expression ".*)", meant to strip off the beginning of the ld version string up to the close bracket, however brackets have a meaning in regular expressions, so lets escape it so that awk doesn't expect a corresponding open bracket. Fixes: ccbef1674a15 ("Kbuild, lto: add ld-version and ld-ifversion ...") Reported-by: Geert Uytterhoeven Signed-off-by: James Hogan Tested-by: Michael S. Tsirkin Acked-by: Michael S. Tsirkin Tested-by: Sudip Mukherjee Cc: Michal Marek Cc: Andi Kleen Cc: Geert Uytterhoeven Cc: linux-mips@linux-mips.org Cc: linux-kbuild@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org # 4.4.x- Patchwork: https://patchwork.linux-mips.org/patch/12838/ Signed-off-by: Ralf Baechle scripts/ld-version.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ba9e72c2290fcdeeff5f0105590a03e0f341b059 Author: Aaro Koskinen Date: Tue Mar 8 00:06:36 2016 +0200 MIPS: Fix build with DEBUG_ZBOOT and MACH_JZ4780 Ingenic SoC declares ZBOOT support, but debug definitions are missing for MACH_JZ4780 resulting in a build failure when DEBUG_ZBOOT is set. The UART addresses are same as with JZ4740, so fix by covering JZ4780 with those as well. Signed-off-by: Aaro Koskinen Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/12830/ Signed-off-by: Ralf Baechle arch/mips/boot/compressed/uart-16550.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f414ca64be4b36c30deb5b5fa25c5a8ff42ea56b Merge: 2f51c82 90d0f0f Author: Linus Torvalds Date: Sat Mar 12 20:18:54 2016 -0800 Merge branch 'for-linus' of git://git.kernel.dk/linux-block Pull block merge fix from Jens Axboe. This fixes the block segment counting bug and resulting sg overrun reported by Kent Overstreet, introduced with the last block pull. * 'for-linus' of git://git.kernel.dk/linux-block: block: don't optimize for non-cloned bio in bio_get_last_bvec() commit 2f51c8204ab3ea211ac92f3b7b88a38595ed6412 Merge: fda604a 452308d Author: Linus Torvalds Date: Sat Mar 12 20:09:25 2016 -0800 Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 fixes from Ingo Molnar: "This fixes 3 FPU handling related bugs, an EFI boot crash and a runtime warning. The EFI fix arrived late but I didn't want to delay it to after v4.5 because the effects are pretty bad for the systems that are affected by it" [ Actually, I don't think the EFI fix really matters yet, because we haven't switched to the separate EFI page tables in mainline yet ] * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/efi: Fix boot crash by always mapping boot service regions into new EFI page tables x86/fpu: Fix eager-FPU handling on legacy FPU machines x86/delay: Avoid preemptible context checks in delay_mwaitx() x86/fpu: Revert ("x86/fpu: Disable AVX when eagerfpu is off") x86/fpu: Fix 'no387' regression commit fda604a4daa19ead458ce5471892fa1d4b382d82 Merge: 03c668a 7f54ab5 Author: Linus Torvalds Date: Sat Mar 12 17:14:07 2016 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending Pull SCSI target bug fix from Nicholas Bellinger: "Here is an outstanding target-core bug-fix for v4.5 code." This patch addresses a recent Task Management (TMR) regression related to larger set of multi-port LUN_RESET bug-fixes in v4.5-rc5. It drops a left-over target_put_sess_cmd() of se_cmd->cmd_kref within ABORT_TASK failure path, once a se_cmd descriptor has already completed posting response to fabric driver logic, and must be skipped during normal ABORT_TASK se_cmd->tag lookup" * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: target: Drop incorrect ABORT_TASK put for completed commands commit 90d0f0f11588ec692c12f9009089b398be395184 Author: Ming Lei Date: Sat Mar 12 22:56:19 2016 +0800 block: don't optimize for non-cloned bio in bio_get_last_bvec() For !BIO_CLONED bio, we can use .bi_vcnt safely, but it doesn't mean we can just simply return .bi_io_vec[.bi_vcnt - 1] because the start postion may have been moved in the middle of the bvec, such as splitting in the middle of bvec. Fixes: 7bcd79ac50d9(block: bio: introduce helpers to get the 1st and last bvec) Cc: stable@vger.kernel.org Reported-by: Kent Overstreet Signed-off-by: Ming Lei Signed-off-by: Jens Axboe include/linux/bio.h | 5 ----- 1 file changed, 5 deletions(-) commit 452308de61056a539352a9306c46716d7af8a1f1 Author: Matt Fleming Date: Fri Mar 11 11:19:23 2016 +0000 x86/efi: Fix boot crash by always mapping boot service regions into new EFI page tables Some machines have EFI regions in page zero (physical address 0x00000000) and historically that region has been added to the e820 map via trim_bios_range(), and ultimately mapped into the kernel page tables. It was not mapped via efi_map_regions() as one would expect. Alexis reports that with the new separate EFI page tables some boot services regions, such as page zero, are not mapped. This triggers an oops during the SetVirtualAddressMap() runtime call. For the EFI boot services quirk on x86 we need to memblock_reserve() boot services regions until after SetVirtualAddressMap(). Doing that while respecting the ownership of regions that may have already been reserved by the kernel was the motivation behind this commit: 7d68dc3f1003 ("x86, efi: Do not reserve boot services regions within reserved areas") That patch was merged at a time when the EFI runtime virtual mappings were inserted into the kernel page tables as described above, and the trick of setting ->numpages (and hence the region size) to zero to track regions that should not be freed in efi_free_boot_services() meant that we never mapped those regions in efi_map_regions(). Instead we were relying solely on the existing kernel mappings. Now that we have separate page tables we need to make sure the EFI boot services regions are mapped correctly, even if someone else has already called memblock_reserve(). Instead of stashing a tag in ->numpages, set the EFI_MEMORY_RUNTIME bit of ->attribute. Since it generally makes no sense to mark a boot services region as required at runtime, it's pretty much guaranteed the firmware will not have already set this bit. For the record, the specific circumstances under which Alexis triggered this bug was that an EFI runtime driver on his machine was responding to the EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE event during SetVirtualAddressMap(). The event handler for this driver looks like this, sub rsp,0x28 lea rdx,[rip+0x2445] # 0xaa948720 mov ecx,0x4 call func_aa9447c0 ; call to ConvertPointer(4, & 0xaa948720) mov r11,QWORD PTR [rip+0x2434] # 0xaa948720 xor eax,eax mov BYTE PTR [r11+0x1],0x1 add rsp,0x28 ret Which is pretty typical code for an EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE handler. The "mov r11, QWORD PTR [rip+0x2424]" was the faulting instruction because ConvertPointer() was being called to convert the address 0x0000000000000000, which when converted is left unchanged and remains 0x0000000000000000. The output of the oops trace gave the impression of a standard NULL pointer dereference bug, but because we're accessing physical addresses during ConvertPointer(), it wasn't. EFI boot services code is stored at that address on Alexis' machine. Reported-by: Alexis Murzeau Signed-off-by: Matt Fleming Cc: Andy Lutomirski Cc: Ard Biesheuvel Cc: Ben Hutchings Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Maarten Lankhorst Cc: Matthew Garrett Cc: Peter Zijlstra Cc: Raphael Hertzog Cc: Roger Shimizu Cc: Thomas Gleixner Cc: linux-efi@vger.kernel.org Link: http://lkml.kernel.org/r/1457695163-29632-2-git-send-email-matt@codeblueprint.co.uk Link: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=815125 Signed-off-by: Ingo Molnar arch/x86/platform/efi/quirks.c | 79 +++++++++++++++++++++++++++++++++--------- 1 file changed, 62 insertions(+), 17 deletions(-) commit 6e6867093de35141f0a76b66ac13f9f2e2c8e77a Author: Borislav Petkov Date: Fri Mar 11 12:32:06 2016 +0100 x86/fpu: Fix eager-FPU handling on legacy FPU machines i486 derived cores like Intel Quark support only the very old, legacy x87 FPU (FSAVE/FRSTOR, CPUID bit FXSR is not set), and our FPU code wasn't handling the saving and restoring there properly in the 'eagerfpu' case. So after we made eagerfpu the default for all CPU types: 58122bf1d856 x86/fpu: Default eagerfpu=on on all CPUs these old FPU designs broke. First, Andy Shevchenko reported a splat: WARNING: CPU: 0 PID: 823 at arch/x86/include/asm/fpu/internal.h:163 fpu__clear+0x8c/0x160 which was us trying to execute FXRSTOR on those machines even though they don't support it. After taking care of that, Bryan O'Donoghue reported that a simple FPU test still failed because we weren't initializing the FPU state properly on those machines. Take care of all that. Reported-and-tested-by: Bryan O'Donoghue Reported-by: Andy Shevchenko Signed-off-by: Borislav Petkov Acked-by: Linus Torvalds Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Dave Hansen Cc: Denys Vlasenko Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Quentin Casasnovas Cc: Thomas Gleixner Cc: Yu-cheng Link: http://lkml.kernel.org/r/20160311113206.GD4312@pd.tnic Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/core.c | 4 +++- arch/x86/kernel/fpu/init.c | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) commit 03c668a93187fe7fba9464f96fbe7c22eebd9897 Merge: 3ab0a0f 9df4f91 Author: Linus Torvalds Date: Fri Mar 11 16:34:18 2016 -0800 Merge tag 'for-linus-20160311' of git://git.infradead.org/linux-mtd Pull MTD fixes from Brian Norris: "Late MTD fix for v4.5: - A simple error code handling fix for the NAND ECC test; this was a regression in v4.5-rc1 - A MAINTAINERS update, which might as well go in ASAP" * tag 'for-linus-20160311' of git://git.infradead.org/linux-mtd: MAINTAINERS: add a maintainer for the NAND subsystem mtd: nand: tests: fix regression introduced in mtd_nandectest commit 3ab0a0f91cca6a9988ef1544176cd7f2106ec722 Merge: 7640131 0bbca27 Author: Linus Torvalds Date: Fri Mar 11 16:19:23 2016 -0800 Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux Pull drm/i915 fixes from Dave Airlie: "Just two i915 regression fixes, that should be it from me" * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: drm/i915: Actually retry with bit-banging after GMBUS timeout drm/i915: Fix bogus dig_port_map[] assignment for pre-HSW commit 7640131032db9118a78af715ac77ba2debeeb17c Author: Matthew Dawson Date: Fri Mar 11 13:08:07 2016 -0800 mm/mempool: avoid KASAN marking mempool poison checks as use-after-free When removing an element from the mempool, mark it as unpoisoned in KASAN before verifying its contents for SLUB/SLAB debugging. Otherwise KASAN will flag the reads checking the element use-after-free writes as use-after-free reads. Signed-off-by: Matthew Dawson Acked-by: Andrey Ryabinin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/mempool.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2a4fb270daa9c1f1d1b86a53d66ed86cc64ad232 Merge: 95f41fb d7d5a43 Author: Linus Torvalds Date: Fri Mar 11 12:35:54 2016 -0800 Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC fixes from Olof Johansson: "Two more fixes for 4.5: - One is a fix for OMAP that is urgently needed to avoid DRA7xx chips from premature aging, by always keeping the Ethernet clock enabled. - The other solves a I/O memory layout issue on Armada, where SROM and PCI memory windows were conflicting in some configurations" * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: ARM: mvebu: fix overlap of Crypto SRAM with PCIe memory window ARM: dts: dra7: do not gate cpsw clock due to errata i877 ARM: OMAP2+: hwmod: Introduce ti,no-idle dt property commit 95f41fb203b0780b4fb97de64f83cc932abfd33d Merge: 20698c9 b2cd274 Author: Linus Torvalds Date: Fri Mar 11 12:32:02 2016 -0800 Merge tag 'media/v4.5-5' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media Pull media fix from Mauro Carvalho Chehab: "One last time fix: It adds a code that prevents some media tools like media-ctl to hide some entities that have their IDs out of the range expected by those apps" * tag 'media/v4.5-5' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: [media] media-device: map new functions into old types for legacy API commit d7d5a43c0d16760f25d892bf9329848167a8b8a4 Author: Thomas Petazzoni Date: Tue Mar 8 16:59:57 2016 +0100 ARM: mvebu: fix overlap of Crypto SRAM with PCIe memory window When the Crypto SRAM mappings were added to the Device Tree files describing the Armada XP boards in commit c466d997bb16 ("ARM: mvebu: define crypto SRAM ranges for all armada-xp boards"), the fact that those mappings were overlaping with the PCIe memory aperture was overlooked. Due to this, we currently have for all Armada XP platforms a situation that looks like this: Memory mapping on Armada XP boards with internal registers at 0xf1000000: - 0x00000000 -> 0xf0000000 3.75G RAM - 0xf0000000 -> 0xf1000000 16M NOR flashes (AXP GP / AXP DB) - 0xf1000000 -> 0xf1100000 1M internal registers - 0xf8000000 -> 0xffe0000 126M PCIe memory aperture - 0xf8100000 -> 0xf8110000 64KB Crypto SRAM #0 => OVERLAPS WITH PCIE ! - 0xf8110000 -> 0xf8120000 64KB Crypto SRAM #1 => OVERLAPS WITH PCIE ! - 0xffe00000 -> 0xfff00000 1M PCIe I/O aperture - 0xfff0000 -> 0xffffffff 1M BootROM The overlap means that when PCIe devices are added, depending on their memory window needs, they might or might not be mapped into the physical address space. Indeed, they will not be mapped if the area allocated in the PCIe memory aperture by the PCI core overlaps with one of the Crypto SRAM. Typically, a Intel IGB PCIe NIC that needs 8MB of PCIe memory will see its PCIe memory window allocated from 0xf80000000 for 8MB, which overlaps with the Crypto SRAM windows. Due to this, the PCIe window is not created, and any attempt to access the PCIe window makes the kernel explode: [ 3.302213] igb: Copyright (c) 2007-2014 Intel Corporation. [ 3.307841] pci 0000:00:09.0: enabling device (0140 -> 0143) [ 3.313539] mvebu_mbus: cannot add window '4:f8', conflicts with another window [ 3.320870] mvebu-pcie soc:pcie-controller: Could not create MBus window at [mem 0xf8000000-0xf87fffff]: -22 [ 3.330811] Unhandled fault: external abort on non-linefetch (0x1008) at 0xf08c0018 This problem does not occur on Armada 370 boards, because we use the following memory mapping (for boards that have internal registers at 0xf1000000): - 0x00000000 -> 0xf0000000 3.75G RAM - 0xf0000000 -> 0xf1000000 16M NOR flashes (AXP GP / AXP DB) - 0xf1000000 -> 0xf1100000 1M internal registers - 0xf1100000 -> 0xf1110000 64KB Crypto SRAM #0 => OK ! - 0xf8000000 -> 0xffe0000 126M PCIe memory - 0xffe00000 -> 0xfff00000 1M PCIe I/O - 0xfff0000 -> 0xffffffff 1M BootROM Obviously, the solution is to align the location of the Crypto SRAM mappings of Armada XP to be similar with the ones on Armada 370, i.e have them between the "internal registers" area and the beginning of the PCIe aperture. However, we have a special case with the OpenBlocks AX3-4 platform, which has a 128 MB NOR flash. Currently, this NOR flash is mapped from 0xf0000000 to 0xf8000000. This is possible because on OpenBlocks AX3-4, the internal registers are not at 0xf1000000. And this explains why the Crypto SRAM mappings were not configured at the same place on Armada XP. Hence, the solution is two-fold: (1) Move the NOR flash mapping on Armada XP OpenBlocks AX3-4 from 0xe8000000 to 0xf0000000. This frees the 0xf0000000 -> 0xf80000000 space. (2) Move the Crypto SRAM mappings on Armada XP to be similar to Armada 370 (except of course that Armada XP has two Crypto SRAM and not one). After this patch, the memory mapping on Armada XP boards with registers at 0xf1 is: - 0x00000000 -> 0xf0000000 3.75G RAM - 0xf0000000 -> 0xf1000000 16M NOR flashes (AXP GP / AXP DB) - 0xf1000000 -> 0xf1100000 1M internal registers - 0xf1100000 -> 0xf1110000 64KB Crypto SRAM #0 - 0xf1110000 -> 0xf1120000 64KB Crypto SRAM #1 - 0xf8000000 -> 0xffe0000 126M PCIe memory - 0xffe00000 -> 0xfff00000 1M PCIe I/O - 0xfff0000 -> 0xffffffff 1M BootROM And the memory mapping for the special case of the OpenBlocks AX3-4 (internal registers at 0xd0000000, NOR of 128 MB): - 0x00000000 -> 0xc0000000 3G RAM - 0xd0000000 -> 0xd1000000 1M internal registers - 0xe800000 -> 0xf0000000 128M NOR flash - 0xf1100000 -> 0xf1110000 64KB Crypto SRAM #0 - 0xf1110000 -> 0xf1120000 64KB Crypto SRAM #1 - 0xf8000000 -> 0xffe0000 126M PCIe memory - 0xffe00000 -> 0xfff00000 1M PCIe I/O - 0xfff0000 -> 0xffffffff 1M BootROM Fixes: c466d997bb16 ("ARM: mvebu: define crypto SRAM ranges for all armada-xp boards") Reported-by: Phil Sutter Cc: Phil Sutter Cc: Signed-off-by: Thomas Petazzoni Acked-by: Gregory CLEMENT Signed-off-by: Olof Johansson arch/arm/boot/dts/armada-xp-axpwifiap.dts | 4 ++-- arch/arm/boot/dts/armada-xp-db.dts | 4 ++-- arch/arm/boot/dts/armada-xp-gp.dts | 4 ++-- arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts | 4 ++-- arch/arm/boot/dts/armada-xp-linksys-mamba.dts | 4 ++-- arch/arm/boot/dts/armada-xp-matrix.dts | 4 ++-- arch/arm/boot/dts/armada-xp-netgear-rn2120.dts | 4 ++-- arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts | 6 +++--- arch/arm/boot/dts/armada-xp-synology-ds414.dts | 4 ++-- 9 files changed, 19 insertions(+), 19 deletions(-) commit 20698c922f81047c4d45c7793b7ddce8ff58d10e Merge: 7ae9c76 25c5e96 Author: Linus Torvalds Date: Fri Mar 11 10:57:18 2016 -0800 Merge tag 'dmaengine-fix-4.5' of git://git.infradead.org/users/vkoul/slave-dma Pull dmaengine fixes from Vinod Koul: "Two fixes showed up in last few days, and they should be included in 4.5. Summary: Two more late fixes to drivers, nothing major here: - A memory leak fix in fsdma unmap the dma descriptors on freeup - A fix in xdmac driver for residue calculation of dma descriptor" * tag 'dmaengine-fix-4.5' of git://git.infradead.org/users/vkoul/slave-dma: dmaengine: at_xdmac: fix residue computation dmaengine: fsldma: fix memory leak commit 7ae9c768e19ec8ce1b397a5c4abf88f9ee053e09 Merge: 2a62ec0 5b3e7e05 Author: Linus Torvalds Date: Fri Mar 11 10:45:03 2016 -0800 Merge tag 'pm+acpi-4.5-final' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull power management and ACPI fixes from Rafael Wysocki: "Two more fixes for issues introduced recently, one in the generic device properties framework and one in ACPICA. Specifics: - Revert a recent ACPICA commit that has been reverted upstream, because it caused problems to happen on user systems and the problem it attempted to address will not be relevant any more after upcoming ACPI specification changes (Bob Moore). - Fix crash in the generic device properties framework introduced by a recent change that forgot to check pointers against error values in addition to checking them against NULL (Heikki Krogerus)" * tag 'pm+acpi-4.5-final' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: device property: fwnode->secondary may contain ERR_PTR(-ENODEV) ACPICA: Revert "Parser: Fix for SuperName method invocation" commit 2a62ec0af2ed3758dd4535eb58527f63ba6549ad Merge: 63cf207 7f6aff3 Author: Linus Torvalds Date: Fri Mar 11 10:21:32 2016 -0800 Merge tag 'xfs-for-linus-4.5-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs Pull xfs fixes from Dave Chinner: "This is a fix for a regression introduced in 4.5-rc1 by the new torn log write detection code. The regression only affects people moving a clean filesystem between machines/kernels of different architecture (such as changing between 32 bit and 64 bit kernels), but this is the recommended (and only!) safe way to migrate a filesystem between architectures so we really need to ensure it works. The changes are larger than I'd prefer right at the end of the release cycle, but the majority of the change is just factoring code to enable the detection of a clean log at the correct time to avoid this issue. Changes: - Only perform torn log write detection on dirty logs. This prevents failures being detected due to a clean filesystem being moved between machines or kernels of different architectures (e.g. 32 -> 64 bit, BE -> LE, etc). This fixes a regression introduced by the torn log write detection in 4.5-rc1" * tag 'xfs-for-linus-4.5-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs: xfs: only run torn log write detection on dirty logs xfs: refactor in-core log state update to helper xfs: refactor unmount record detection into helper xfs: separate log head record discovery from verification commit 63cf207e931894b93fe5471131e41fda567611e2 Merge: f2c1242 f938128 Author: Linus Torvalds Date: Fri Mar 11 10:13:49 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull vfs fixes from Al Viro: "A couple of fixes: Fix for my dumb braino in ncpfs and a long-standing breakage on recovery from failed rename() in jffs2" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: jffs2: reduce the breakage on recovery from halfway failed rename() ncpfs: fix a braino in OOM handling in ncp_fill_cache() commit 5b3e7e0536bd6326798ab57d14a49b15ad7e3e3f Merge: f6cede5 7781203 0dda885 Author: Rafael J. Wysocki Date: Fri Mar 11 14:22:54 2016 +0100 Merge branches 'device-properties-fixes' and 'acpica-fixes' * device-properties-fixes: device property: fwnode->secondary may contain ERR_PTR(-ENODEV) * acpica-fixes: ACPICA: Revert "Parser: Fix for SuperName method invocation" commit 0bbca274a31c2366414d8d3f95e03d1c4674d93f Author: Ville Syrjälä Date: Mon Mar 7 17:56:57 2016 +0200 drm/i915: Actually retry with bit-banging after GMBUS timeout After the GMBUS transfer times out, we set force_bit=1 and return -EAGAIN expecting the i2c core to call the .master_xfer hook again so that we will retry the same transfer via bit-banging. This is in case the gmbus hardware is somehow faulty. Unfortunately we left adapter->retries to 0, meaning the i2c core didn't actually do the retry. Let's tell the core we want one retry when we return -EAGAIN. Note that i2c-algo-bit also uses this retry count for some internal retries, so we'll end up increasing those a bit as well. Cc: Jani Nikula Cc: drm-intel-fixes@lists.freedesktop.org Fixes: bffce907d640 ("drm/i915: abstract i2c bit banging fallback in gmbus xfer") Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1457366220-29409-2-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Jani Nikula (cherry picked from commit 8b1f165a4a8f64c28cf42d10e1f4d3b451dedc51) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_i2c.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 9df4f913eb39046fa57c4217bb3429a63e164000 Author: Boris BREZILLON Date: Wed Mar 9 21:57:24 2016 +0100 MAINTAINERS: add a maintainer for the NAND subsystem Add myself as the maintainer of the NAND subsystem. Signed-off-by: Boris Brezillon Acked-by: Richard Weinberger Acked-by: Brian Norris Acked-by: Artem Bityutskiy Signed-off-by: Brian Norris MAINTAINERS | 11 +++++++++++ 1 file changed, 11 insertions(+) commit f2c1242194c7af9b26f53359ab2b23df36d3a643 Merge: c32c2cb 5f0b819 Author: Linus Torvalds Date: Thu Mar 10 10:42:15 2016 -0800 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm Pull KVM fixes from Paolo Bonzini: "A few simple fixes for ARM, x86, PPC and generic code. The x86 MMU fix is a bit larger because the surrounding code needed a cleanup, but nothing worrisome" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: KVM: MMU: fix reserved bit check for ept=0/CR0.WP=0/CR4.SMEP=1/EFER.NX=0 KVM: MMU: fix ept=0/pte.u=1/pte.w=0/CR0.WP=0/CR4.SMEP=1/EFER.NX=0 combo kvm: cap halt polling at exactly halt_poll_ns KVM: s390: correct fprs on SIGP (STOP AND) STORE STATUS KVM: VMX: disable PEBS before a guest entry KVM: PPC: Book3S HV: Sanitize special-purpose register values on guest exit commit c32c2cb27268f0adad0b6afbebe860ac5250c388 Merge: 2da33f9 ff79258 Author: Linus Torvalds Date: Thu Mar 10 10:39:04 2016 -0800 Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux Pull arm64 fixes from Will Deacon: "I thought we were done for 4.5, but then the 64k-page chaps came crawling out of the woodwork. *sigh* The vmemmap fix I sent for -rc7 caused a regression with 64k pages and sparsemem and at some point during the release cycle the new hugetlb code using contiguous ptes started failing the libhugetlbfs tests with 64k pages enabled. So here are a couple of patches that fix the vmemmap alignment and disable the new hugetlb page sizes whilst a proper fix is being developed: - Temporarily disable huge pages built using contiguous ptes - Ensure vmemmap region is sufficiently aligned for sparsemem sections" * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: arm64: hugetlb: partial revert of 66b3923a1a0f arm64: account for sparsemem section alignment when choosing vmemmap offset commit 2da33f9f96dabd62d6c7780cbce15818c2a6ce24 Merge: 8e0f93c 3446c13 Author: Linus Torvalds Date: Thu Mar 10 10:36:07 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux Pull s390 fixes from Martin Schwidefsky: "Three bug fixes: - The fix for the page table corruption (CVE-2016-2143) - The diagnose statistics introduced a regression for the dasd diag driver - Boot crash on systems without the set-program-parameters facility" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: s390/mm: four page table levels vs. fork s390/cpumf: Fix lpp detection s390/dasd: fix diag 0x250 inline assembly commit b2cd27448b33de9069d580d8f229efef434b64e6 Author: Mauro Carvalho Chehab Date: Sat Mar 5 07:13:39 2016 -0300 [media] media-device: map new functions into old types for legacy API The legacy media controller userspace API exposes entity types that carry both type and function information. The new API replaces the type with a function. It preserves backward compatibility by defining legacy functions for the existing types and using them in drivers. This works fine, as long as newer entity functions won't be added. Unfortunately, some tools, like media-ctl with --print-dot argument rely on the now legacy MEDIA_ENT_T_V4L2_SUBDEV and MEDIA_ENT_T_DEVNODE numeric ranges to identify what entities will be shown. Also, if the entity doesn't match those ranges, it will ignore the major/minor information on devnodes, and won't be getting the devnode name via udev or sysfs. As we're now adding devices outside the old range, the legacy ioctl needs to map the new entity functions into a type at the old range, or otherwise we'll have a regression. Detected on all released media-ctl versions (e. g. versions <= 1.10). Fix this by deriving the type from the function to emulate the legacy API if the function isn't in the legacy functions range. Reported-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 23 +++++++++++++++++++++++ include/uapi/linux/media.h | 6 +++++- 2 files changed, 28 insertions(+), 1 deletion(-) commit 25c5e9626ca4d40928dc9c44f009ce2ed0a739e7 Author: Ludovic Desroches Date: Thu Mar 10 10:17:55 2016 +0100 dmaengine: at_xdmac: fix residue computation When computing the residue we need two pieces of information: the current descriptor and the remaining data of the current descriptor. To get that information, we need to read consecutively two registers but we can't do it in an atomic way. For that reason, we have to check manually that current descriptor has not changed. Signed-off-by: Ludovic Desroches Suggested-by: Cyrille Pitchen Reported-by: David Engraf Tested-by: David Engraf Fixes: e1f7c9eee707 ("dmaengine: at_xdmac: creation of the atmel eXtended DMA Controller driver") Cc: stable@vger.kernel.org #4.1 and later Signed-off-by: Vinod Koul drivers/dma/at_xdmac.c | 42 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) commit 84477336ec03f8061ffd6908da341e063e5d6d1f Author: Borislav Petkov Date: Wed Mar 9 21:56:22 2016 +0100 x86/delay: Avoid preemptible context checks in delay_mwaitx() We do use this_cpu_ptr(&cpu_tss) as a cacheline-aligned, seldomly accessed per-cpu var as the MONITORX target in delay_mwaitx(). However, when called in preemptible context, this_cpu_ptr -> smp_processor_id() -> debug_smp_processor_id() fires: BUG: using smp_processor_id() in preemptible [00000000] code: udevd/312 caller is delay_mwaitx+0x40/0xa0 But we don't care about that check - we only need cpu_tss as a MONITORX target and it doesn't really matter which CPU's var we're touching as we're going idle anyway. Fix that. Suggested-by: Andy Lutomirski Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Huang Rui Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: spg_linux_kernel@amd.com Link: http://lkml.kernel.org/r/20160309205622.GG6564@pd.tnic Signed-off-by: Ingo Molnar arch/x86/lib/delay.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5f0b819995e172f48fdcd91335a2126ba7d9deae Author: Paolo Bonzini Date: Wed Mar 9 14:28:02 2016 +0100 KVM: MMU: fix reserved bit check for ept=0/CR0.WP=0/CR4.SMEP=1/EFER.NX=0 KVM has special logic to handle pages with pte.u=1 and pte.w=0 when CR0.WP=1. These pages' SPTEs flip continuously between two states: U=1/W=0 (user and supervisor reads allowed, supervisor writes not allowed) and U=0/W=1 (supervisor reads and writes allowed, user writes not allowed). When SMEP is in effect, however, U=0 will enable kernel execution of this page. To avoid this, KVM also sets NX=1 in the shadow PTE together with U=0, making the two states U=1/W=0/NX=gpte.NX and U=0/W=1/NX=1. When guest EFER has the NX bit cleared, the reserved bit check thinks that the latter state is invalid; teach it that the smep_andnot_wp case will also use the NX bit of SPTEs. Cc: stable@vger.kernel.org Reviewed-by: Xiao Guangrong Fixes: c258b62b264fdc469b6d3610a907708068145e3b Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 844a5fe219cf472060315971e15cbf97674a3324 Author: Paolo Bonzini Date: Tue Mar 8 12:13:39 2016 +0100 KVM: MMU: fix ept=0/pte.u=1/pte.w=0/CR0.WP=0/CR4.SMEP=1/EFER.NX=0 combo Yes, all of these are needed. :) This is admittedly a bit odd, but kvm-unit-tests access.flat tests this if you run it with "-cpu host" and of course ept=0. KVM runs the guest with CR0.WP=1, so it must handle supervisor writes specially when pte.u=1/pte.w=0/CR0.WP=0. Such writes cause a fault when U=1 and W=0 in the SPTE, but they must succeed because CR0.WP=0. When KVM gets the fault, it sets U=0 and W=1 in the shadow PTE and restarts execution. This will still cause a user write to fault, while supervisor writes will succeed. User reads will fault spuriously now, and KVM will then flip U and W again in the SPTE (U=1, W=0). User reads will be enabled and supervisor writes disabled, going back to the originary situation where supervisor writes fault spuriously. When SMEP is in effect, however, U=0 will enable kernel execution of this page. To avoid this, KVM also sets NX=1 in the shadow PTE together with U=0. If the guest has not enabled NX, the result is a continuous stream of page faults due to the NX bit being reserved. The fix is to force EFER.NX=1 even if the CPU is taking care of the EFER switch. (All machines with SMEP have the CPU_LOAD_IA32_EFER vm-entry control, so they do not use user-return notifiers for EFER---if they did, EFER.NX would be forced to the same value as the host). There is another bug in the reserved bit check, which I've split to a separate patch for easier application to stable kernels. Cc: stable@vger.kernel.org Cc: Andy Lutomirski Reviewed-by: Xiao Guangrong Fixes: f6577a5fa15d82217ca73c74cd2dcbc0f6c781dd Signed-off-by: Paolo Bonzini Documentation/virtual/kvm/mmu.txt | 3 ++- arch/x86/kvm/vmx.c | 36 +++++++++++++++++++++++------------- 2 files changed, 25 insertions(+), 14 deletions(-) commit a65050c6f17e52442716138d48d0a47301a8344b Author: Yu-cheng Yu Date: Wed Mar 9 16:28:54 2016 -0800 x86/fpu: Revert ("x86/fpu: Disable AVX when eagerfpu is off") Leonid Shatz noticed that the SDM interpretation of the following recent commit: 394db20ca240741 ("x86/fpu: Disable AVX when eagerfpu is off") ... is incorrect and that the original behavior of the FPU code was correct. Because AVX is not stated in CR0 TS bit description, it was mistakenly believed to be not supported for lazy context switch. This turns out to be false: Intel Software Developer's Manual Vol. 3A, Sec. 2.5 Control Registers: 'TS Task Switched bit (bit 3 of CR0) -- Allows the saving of the x87 FPU/ MMX/SSE/SSE2/SSE3/SSSE3/SSE4 context on a task switch to be delayed until an x87 FPU/MMX/SSE/SSE2/SSE3/SSSE3/SSE4 instruction is actually executed by the new task.' Intel Software Developer's Manual Vol. 2A, Sec. 2.4 Instruction Exception Specification: 'AVX instructions refer to exceptions by classes that include #NM "Device Not Available" exception for lazy context switch.' So revert the commit. Reported-by: Leonid Shatz Signed-off-by: Yu-cheng Yu Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Ravi V. Shankar Cc: Sai Praneeth Prakhya Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1457569734-3785-1-git-send-email-yu-cheng.yu@intel.com Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/xstate.h | 9 ++++----- arch/x86/kernel/fpu/init.c | 6 ------ 2 files changed, 4 insertions(+), 11 deletions(-) commit 3446c13b268af86391d06611327006b059b8bab1 Author: Martin Schwidefsky Date: Mon Feb 15 14:46:49 2016 +0100 s390/mm: four page table levels vs. fork The fork of a process with four page table levels is broken since git commit 6252d702c5311ce9 "[S390] dynamic page tables." All new mm contexts are created with three page table levels and an asce limit of 4TB. If the parent has four levels dup_mmap will add vmas to the new context which are outside of the asce limit. The subsequent call to copy_page_range will walk the three level page table structure of the new process with non-zero pgd and pud indexes. This leads to memory clobbers as the pgd_index *and* the pud_index is added to the mm->pgd pointer without a pgd_deref in between. The init_new_context() function is selecting the number of page table levels for a new context. The function is used by mm_init() which in turn is called by dup_mm() and mm_alloc(). These two are used by fork() and exec(). The init_new_context() function can distinguish the two cases by looking at mm->context.asce_limit, for fork() the mm struct has been copied and the number of page table levels may not change. For exec() the mm_alloc() function set the new mm structure to zero, in this case a three-level page table is created as the temporary stack space is located at STACK_TOP_MAX = 4TB. This fixes CVE-2016-2143. Reported-by: Marcin Kościelnicki Reviewed-by: Heiko Carstens Cc: stable@vger.kernel.org Signed-off-by: Martin Schwidefsky arch/s390/include/asm/mmu_context.h | 16 +++++++++++----- arch/s390/include/asm/pgalloc.h | 24 +++++++++++++++++++----- 2 files changed, 30 insertions(+), 10 deletions(-) commit 8e0f93cda48ed054e1216bab5c60017e1a5fc1e8 Merge: 718e47a 3ee20ab Author: Linus Torvalds Date: Wed Mar 9 20:24:23 2016 -0800 Merge tag 'spi-fix-v4.5-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi Pull spi fixes from Mark Brown: "A few driver specific fixes for the Rockchip and i.MX SPI controllers, especially for the i.MX they're annoying bugs if you run into them" * tag 'spi-fix-v4.5-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: spi: imx: fix spi resource leak with dma transfer spi: imx: allow only WML aligned transfers to use DMA spi: rockchip: add missing spi_master_put spi: rockchip: disable runtime pm when in err case commit 3ee20abb063acc57a45ccb2fdab2eb3ce29e85fa Merge: c23663a 844c9f4 Author: Mark Brown Date: Thu Mar 10 10:42:24 2016 +0700 Merge remote-tracking branch 'spi/fix/rockchip' into spi-linus commit c23663ace8adda3bca15e7ad6a99663f6119612d Merge: f6cede5 ba4a355 Author: Mark Brown Date: Thu Mar 10 10:42:22 2016 +0700 Merge remote-tracking branch 'spi/fix/imx' into spi-linus commit 718e47a573a43dba9a1673e0fc29fb36d3ef9769 Merge: a6e434e 6ffe77b Author: Linus Torvalds Date: Wed Mar 9 19:33:05 2016 -0800 Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 Pull ext4 fix from Ted Ts'o: "This fixes a regression which crept in v4.5-rc5" * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: ext4: iterate over buffer heads correctly in move_extent_per_page() commit a6e434e9550807164c5ab7bffde59e9e7a4e717b Merge: 8205ff1 848819c54 Author: Linus Torvalds Date: Wed Mar 9 19:12:37 2016 -0800 Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux Pull drm fixes from Dave Airlie: "A few imx fixes I missed from a couple of weeks ago, they still aren't that big and fix some regression and a fail to boot problem. Other than that, a couple of regression fixes for radeon/amdgpu, one regression fix for vmwgfx and one regression fix for tda998x" * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: Revert "drm/radeon/pm: adjust display configuration after powerstate" drm/amdgpu/dp: add back special handling for NUTMEG drm/radeon/dp: add back special handling for NUTMEG drm/i2c: tda998x: Choose between atomic or non atomic dpms helper drm/vmwgfx: Add back ->detect() and ->fill_modes() drm/radeon: Fix error handling in radeon_flip_work_func. drm/amdgpu: Fix error handling in amdgpu_flip_work_func. drm/imx: Add missing DRM_FORMAT_RGB565 to ipu_plane_formats drm/imx: notify DRM core about CRTC vblank state gpu: ipu-v3: Reset IPU before activating IRQ gpu: ipu-v3: Do not bail out on missing optional port nodes commit 8205ff1dc84e0298cd4bc15aa7aeccc35634582c Merge: 380173f dc17147 Author: Linus Torvalds Date: Wed Mar 9 19:01:58 2016 -0800 Merge tag 'trace-fixes-v4.5-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace Pull tracing fix from Steven Rostedt: "I previously sent a fix that prevents all trace events from being called if the current cpu is offline. But I forgot that in 3.18, we added lockdep checks to test RCU usage even when the event is disabled. Although there cannot be any bug when a cpu is going offline, we now get false warnings triggered by the added checks of the event being disabled. I removed the check from the tracepoint code itself, and added it to the condition section (which is "1" for 'no condition'). This way the online cpu check will get checked in all the right locations" * tag 'trace-fixes-v4.5-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: tracing: Fix check for cpu online when event is disabled commit 6ffe77bad545f4a7c8edd2a4ee797ccfcd894ab4 Author: Eryu Guan Date: Sun Feb 21 18:38:44 2016 -0500 ext4: iterate over buffer heads correctly in move_extent_per_page() In commit bcff24887d00 ("ext4: don't read blocks from disk after extents being swapped") bh is not updated correctly in the for loop and wrong data has been written to disk. generic/324 catches this on sub-page block size ext4. Fixes: bcff24887d00 ("ext4: don't read blocks from disk after extentsbeing swapped") Signed-off-by: Eryu Guan Signed-off-by: Theodore Ts'o fs/ext4/move_extent.c | 1 + 1 file changed, 1 insertion(+) commit 380173ff56c7faea02d1278e8d9783093fc776f6 Merge: 2f0d94e d6b7eae Author: Linus Torvalds Date: Wed Mar 9 18:27:52 2016 -0800 Merge branch 'akpm' (patches from Andrew) Merge fixes from Andrew Morton: "13 fixes" * emailed patches from Andrew Morton : dma-mapping: avoid oops when parameter cpu_addr is null mm/hugetlb: use EOPNOTSUPP in hugetlb sysctl handlers memremap: check pfn validity before passing to pfn_to_page() mm, thp: fix migration of PTE-mapped transparent huge pages dax: check return value of dax_radix_entry() ocfs2: fix return value from ocfs2_page_mkwrite() arm64: kasan: clear stale stack poison sched/kasan: remove stale KASAN poison after hotplug kasan: add functions to clear stack poison mm: fix mixed zone detection in devm_memremap_pages list: kill list_force_poison() mm: __delete_from_page_cache show Bad page if mapped mm/hugetlb: hugetlb_no_page: rate-limit warning message commit d6b7eaeb03421139e32800324ef04ab50bba886d Author: Zhen Lei Date: Wed Mar 9 14:08:38 2016 -0800 dma-mapping: avoid oops when parameter cpu_addr is null To keep consistent with kfree, which tolerate ptr is NULL. We do this because sometimes we may use goto statement, so that success and failure case can share parts of the code. But unfortunately, dma_free_coherent called with parameter cpu_addr is null will cause oops, such as showed below: Unable to handle kernel paging request at virtual address ffffffc020d3b2b8 pgd = ffffffc083a61000 [ffffffc020d3b2b8] *pgd=0000000000000000, *pud=0000000000000000 CPU: 4 PID: 1489 Comm: malloc_dma_1 Tainted: G O 4.1.12 #1 Hardware name: ARM64 (DT) PC is at __dma_free_coherent.isra.10+0x74/0xc8 LR is at __dma_free+0x9c/0xb0 Process malloc_dma_1 (pid: 1489, stack limit = 0xffffffc0837fc020) [...] Call trace: __dma_free_coherent.isra.10+0x74/0xc8 __dma_free+0x9c/0xb0 malloc_dma+0x104/0x158 [dma_alloc_coherent_mtmalloc] kthread+0xec/0xfc Signed-off-by: Zhen Lei Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/dma-mapping.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 86613628b3d367743f71b945c203774c522404f4 Author: Jan Stancek Date: Wed Mar 9 14:08:35 2016 -0800 mm/hugetlb: use EOPNOTSUPP in hugetlb sysctl handlers Replace ENOTSUPP with EOPNOTSUPP. If hugepages are not supported, this value is propagated to userspace. EOPNOTSUPP is part of uapi and is widely supported by libc libraries. It gives nicer message to user, rather than: # cat /proc/sys/vm/nr_hugepages cat: /proc/sys/vm/nr_hugepages: Unknown error 524 And also LTP's proc01 test was failing because this ret code (524) was unexpected: proc01 1 TFAIL : proc01.c:396: read failed: /proc/sys/vm/nr_hugepages: errno=???(524): Unknown error 524 proc01 2 TFAIL : proc01.c:396: read failed: /proc/sys/vm/nr_hugepages_mempolicy: errno=???(524): Unknown error 524 proc01 3 TFAIL : proc01.c:396: read failed: /proc/sys/vm/nr_overcommit_hugepages: errno=???(524): Unknown error 524 Signed-off-by: Jan Stancek Acked-by: Naoya Horiguchi Acked-by: Kirill A. Shutemov Acked-by: David Rientjes Acked-by: Hillf Danton Cc: Mike Kravetz Cc: Dave Hansen Cc: Paul Gortmaker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/hugetlb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ac343e882a8377caef5fa75d9093cb77e9d4bf6d Author: Ard Biesheuvel Date: Wed Mar 9 14:08:32 2016 -0800 memremap: check pfn validity before passing to pfn_to_page() In memremap's helper function try_ram_remap(), we dereference a struct page pointer that was derived from a PFN that is known to be covered by a 'System RAM' iomem region, and is thus assumed to be a 'valid' PFN, i.e., a PFN that has a struct page associated with it and is covered by the kernel direct mapping. However, the assumption that there is a 1:1 relation between the System RAM iomem region and the kernel direct mapping is not universally valid on all architectures, and on ARM and arm64, 'System RAM' may include regions for which pfn_valid() returns false. Generally speaking, both __va() and pfn_to_page() should only ever be called on PFNs/physical addresses for which pfn_valid() returns true, so add that check to try_ram_remap(). Signed-off-by: Ard Biesheuvel Cc: Dan Williams Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/memremap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0a2e280b6d8ea4afef07c749070705d6af403b7f Author: Kirill A. Shutemov Date: Wed Mar 9 14:08:30 2016 -0800 mm, thp: fix migration of PTE-mapped transparent huge pages We don't have native support of THP migration, so we have to split huge page into small pages in order to migrate it to different node. This includes PTE-mapped huge pages. I made mistake in refcounting patchset: we don't actually split PTE-mapped huge page in queue_pages_pte_range(), if we step on head page. The result is that the head page is queued for migration, but none of tail pages: putting head page on queue takes pin on the page and any subsequent attempts of split_huge_pages() would fail and we skip queuing tail pages. unmap_and_move_huge_page() will eventually split the huge pages, but only one of 512 pages would get migrated. Let's fix the situation. Fixes: 248db92da13f2507 ("migrate_pages: try to split pages on queuing") Signed-off-by: Kirill A. Shutemov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/mempolicy.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 30f471fd88e0304bee2c17ef1a4651e705870817 Author: Ross Zwisler Date: Wed Mar 9 14:08:27 2016 -0800 dax: check return value of dax_radix_entry() dax_pfn_mkwrite() previously wasn't checking the return value of the call to dax_radix_entry(), which was a mistake. Instead, capture this return value and return the appropriate VM_FAULT_ value. Signed-off-by: Ross Zwisler Cc: Dan Williams Cc: Matthew Wilcox Cc: Dave Chinner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/dax.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 566e8dfd88d9e0d12873ca69c26e82c0af8479d8 Author: Jan Kara Date: Wed Mar 9 14:08:24 2016 -0800 ocfs2: fix return value from ocfs2_page_mkwrite() ocfs2_page_mkwrite() could mistakenly return error code instead of mkwrite status value. Fix it. Signed-off-by: Jan Kara Cc: Mark Fasheh Cc: Joel Becker Cc: Junxiao Bi Cc: Joseph Qi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/mmap.c | 4 ++++ 1 file changed, 4 insertions(+) commit 0d97e6d8024c71cc838b292c01d5bd951e080eba Author: Mark Rutland Date: Wed Mar 9 14:08:21 2016 -0800 arm64: kasan: clear stale stack poison Functions which the compiler has instrumented for KASAN place poison on the stack shadow upon entry and remove this poison prior to returning. In the case of cpuidle, CPUs exit the kernel a number of levels deep in C code. Any instrumented functions on this critical path will leave portions of the stack shadow poisoned. If CPUs lose context and return to the kernel via a cold path, we restore a prior context saved in __cpu_suspend_enter are forgotten, and we never remove the poison they placed in the stack shadow area by functions calls between this and the actual exit of the kernel. Thus, (depending on stackframe layout) subsequent calls to instrumented functions may hit this stale poison, resulting in (spurious) KASAN splats to the console. To avoid this, clear any stale poison from the idle thread for a CPU prior to bringing a CPU online. Signed-off-by: Mark Rutland Acked-by: Catalin Marinas Reviewed-by: Andrey Ryabinin Reviewed-by: Lorenzo Pieralisi Cc: Alexander Potapenko Cc: Catalin Marinas Cc: Will Deacon Cc: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/arm64/kernel/sleep.S | 4 ++++ 1 file changed, 4 insertions(+) commit e1b77c92981a522223bd1ac118fdcade6b7ad086 Author: Mark Rutland Date: Wed Mar 9 14:08:18 2016 -0800 sched/kasan: remove stale KASAN poison after hotplug Functions which the compiler has instrumented for KASAN place poison on the stack shadow upon entry and remove this poision prior to returning. In the case of CPU hotplug, CPUs exit the kernel a number of levels deep in C code. Any instrumented functions on this critical path will leave portions of the stack shadow poisoned. When a CPU is subsequently brought back into the kernel via a different path, depending on stackframe, layout calls to instrumented functions may hit this stale poison, resulting in (spurious) KASAN splats to the console. To avoid this, clear any stale poison from the idle thread for a CPU prior to bringing a CPU online. Signed-off-by: Mark Rutland Acked-by: Catalin Marinas Reviewed-by: Andrey Ryabinin Reviewed-by: Ingo Molnar Cc: Alexander Potapenko Cc: Lorenzo Pieralisi Cc: Peter Zijlstra Cc: Will Deacon Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/sched/core.c | 3 +++ 1 file changed, 3 insertions(+) commit e3ae116339f9a0c77523abc95e338fa405946e07 Author: Mark Rutland Date: Wed Mar 9 14:08:15 2016 -0800 kasan: add functions to clear stack poison Functions which the compiler has instrumented for ASAN place poison on the stack shadow upon entry and remove this poison prior to returning. In some cases (e.g. hotplug and idle), CPUs may exit the kernel a number of levels deep in C code. If there are any instrumented functions on this critical path, these will leave portions of the idle thread stack shadow poisoned. If a CPU returns to the kernel via a different path (e.g. a cold entry), then depending on stack frame layout subsequent calls to instrumented functions may use regions of the stack with stale poison, resulting in (spurious) KASAN splats to the console. Contemporary GCCs always add stack shadow poisoning when ASAN is enabled, even when asked to not instrument a function [1], so we can't simply annotate functions on the critical path to avoid poisoning. Instead, this series explicitly removes any stale poison before it can be hit. In the common hotplug case we clear the entire stack shadow in common code, before a CPU is brought online. On architectures which perform a cold return as part of cpu idle may retain an architecture-specific amount of stack contents. To retain the poison for this retained context, the arch code must call the core KASAN code, passing a "watermark" stack pointer value beyond which shadow will be cleared. Architectures which don't perform a cold return as part of idle do not need any additional code. This patch (of 3): Functions which the compiler has instrumented for KASAN place poison on the stack shadow upon entry and remove this poision prior to returning. In some cases (e.g. hotplug and idle), CPUs may exit the kernel a number of levels deep in C code. If there are any instrumented functions on this critical path, these will leave portions of the stack shadow poisoned. If a CPU returns to the kernel via a different path (e.g. a cold entry), then depending on stack frame layout subsequent calls to instrumented functions may use regions of the stack with stale poison, resulting in (spurious) KASAN splats to the console. To avoid this, we must clear stale poison from the stack prior to instrumented functions being called. This patch adds functions to the KASAN core for removing poison from (portions of) a task's stack. These will be used by subsequent patches to avoid problems with hotplug and idle. Signed-off-by: Mark Rutland Acked-by: Catalin Marinas Reviewed-by: Andrey Ryabinin Cc: Alexander Potapenko Cc: Lorenzo Pieralisi Cc: Will Deacon Cc: Ingo Molnar Cc: Peter Zijlstra Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/kasan.h | 6 +++++- mm/kasan/kasan.c | 20 ++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) commit 5f29a77cd95771edebbf41e5800fdd557c69302a Author: Dan Williams Date: Wed Mar 9 14:08:13 2016 -0800 mm: fix mixed zone detection in devm_memremap_pages The check for whether we overlap "System RAM" needs to be done at section granularity. For example a system with the following mapping: 100000000-37bffffff : System RAM 37c000000-837ffffff : Persistent Memory ...is unable to use devm_memremap_pages() as it would result in two zones colliding within a given section. Signed-off-by: Dan Williams Cc: Ross Zwisler Reviewed-by: Toshi Kani Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/memremap.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit d77a117e6871ff78a06def46583d23752593de60 Author: Dan Williams Date: Wed Mar 9 14:08:10 2016 -0800 list: kill list_force_poison() Given we have uninitialized list_heads being passed to list_add() it will always be the case that those uninitialized values randomly trigger the poison value. Especially since a list_add() operation will seed the stack with the poison value for later stack allocations to trip over. For example, see these two false positive reports: list_add attempted on force-poisoned entry WARNING: at lib/list_debug.c:34 [..] NIP [c00000000043c390] __list_add+0xb0/0x150 LR [c00000000043c38c] __list_add+0xac/0x150 Call Trace: __list_add+0xac/0x150 (unreliable) __down+0x4c/0xf8 down+0x68/0x70 xfs_buf_lock+0x4c/0x150 [xfs] list_add attempted on force-poisoned entry(0000000000000500), new->next == d0000000059ecdb0, new->prev == 0000000000000500 WARNING: at lib/list_debug.c:33 [..] NIP [c00000000042db78] __list_add+0xa8/0x140 LR [c00000000042db74] __list_add+0xa4/0x140 Call Trace: __list_add+0xa4/0x140 (unreliable) rwsem_down_read_failed+0x6c/0x1a0 down_read+0x58/0x60 xfs_log_commit_cil+0x7c/0x600 [xfs] Fixes: commit 5c2c2587b132 ("mm, dax, pmem: introduce {get|put}_dev_pagemap() for dax-gup") Signed-off-by: Dan Williams Reported-by: Eryu Guan Tested-by: Eryu Guan Cc: Ross Zwisler Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/list.h | 11 ----------- kernel/memremap.c | 9 +++++++-- lib/list_debug.c | 9 --------- 3 files changed, 7 insertions(+), 22 deletions(-) commit 06b241f32c711d7ca868a0351dd97fe91fd8817b Author: Hugh Dickins Date: Wed Mar 9 14:08:07 2016 -0800 mm: __delete_from_page_cache show Bad page if mapped Commit e1534ae95004 ("mm: differentiate page_mapped() from page_mapcount() for compound pages") changed the famous BUG_ON(page_mapped(page)) in __delete_from_page_cache() to VM_BUG_ON_PAGE(page_mapped(page)): which gives us more info when CONFIG_DEBUG_VM=y, but nothing at all when not. Although it has not usually been very helpul, being hit long after the error in question, we do need to know if it actually happens on users' systems; but reinstating a crash there is likely to be opposed :) In the non-debug case, pr_alert("BUG: Bad page cache") plus dump_page(), dump_stack(), add_taint() - I don't really believe LOCKDEP_NOW_UNRELIABLE, but that seems to be the standard procedure now. Move that, or the VM_BUG_ON_PAGE(), up before the deletion from tree: so that the unNULLified page->mapping gives a little more information. If the inode is being evicted (rather than truncated), it won't have any vmas left, so it's safe(ish) to assume that the raised mapcount is erroneous, and we can discount it from page_count to avoid leaking the page (I'm less worried by leaking the occasional 4kB, than losing a potential 2MB page with each 4kB page leaked). Signed-off-by: Hugh Dickins Acked-by: Kirill A. Shutemov Cc: Joonsoo Kim Cc: Sasha Levin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/filemap.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) commit 910154d520c97cd0095a889e6b878041c91111a6 Author: Geoffrey Thomas Date: Wed Mar 9 14:08:04 2016 -0800 mm/hugetlb: hugetlb_no_page: rate-limit warning message The warning message "killed due to inadequate hugepage pool" simply indicates that SIGBUS was sent, not that the process was forcibly killed. If the process has a signal handler installed does not fix the problem, this message can rapidly spam the kernel log. On my amd64 dev machine that does not have hugepages configured, I can reproduce the repeated warnings easily by setting vm.nr_hugepages=2 (i.e., 4 megabytes of huge pages) and running something that sets a signal handler and forks, like #include #include #include #include sig_atomic_t counter = 10; void handler(int signal) { if (counter-- == 0) exit(0); } int main(void) { int status; char *addr = mmap(NULL, 4 * 1048576, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_HUGETLB, -1, 0); if (addr == MAP_FAILED) {perror("mmap"); return 1;} *addr = 'x'; switch (fork()) { case -1: perror("fork"); return 1; case 0: signal(SIGBUS, handler); *addr = 'x'; break; default: *addr = 'x'; wait(&status); if (WIFSIGNALED(status)) { psignal(WTERMSIG(status), "child"); } break; } } Signed-off-by: Geoffrey Thomas Cc: Naoya Horiguchi Cc: Hillf Danton Cc: "Kirill A. Shutemov" Cc: Dave Hansen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/hugetlb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1dea581f86f51563d5bf468abc36c74bc88f8aac Merge: f3c87e9 0f514e6 Author: Olof Johansson Date: Wed Mar 9 14:15:31 2016 -0800 Merge tag 'for-v4.5-rc/omap-critical-fixes-a' of git://git.kernel.org/pub/scm/linux/kernel/git/pjw/omap-pending into fixes ARM: OMAP2+: critical DRA7xx fix for v4.5-rc Force the DRA7xx Ethernet internal clock source to stay enabled per TI erratum i877: http://www.ti.com/lit/er/sprz429h/sprz429h.pdf Otherwise, if the Ethernet internal clock source is disabled, the chip will age prematurely, and the RGMII I/O timing will soon fail to meet the delay time and skew specifications for 1000Mbps Ethernet. This fix should go in as soon as possible. Basic build, boot, and PM test results are available here: http://www.pwsan.com/omap/testlogs/omap-critical-fixes-for-v4.5-rc/20160307014209/ * tag 'for-v4.5-rc/omap-critical-fixes-a' of git://git.kernel.org/pub/scm/linux/kernel/git/pjw/omap-pending: ARM: dts: dra7: do not gate cpsw clock due to errata i877 ARM: OMAP2+: hwmod: Introduce ti,no-idle dt property Signed-off-by: Olof Johansson commit 2f0d94ea413a0d56629435e4b9f43b52035a3e79 Merge: 7f02bf6 54c6e2d Author: Linus Torvalds Date: Wed Mar 9 13:28:27 2016 -0800 Merge tag 'pci-v4.5-fixes-5' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci Pull PCI fix from Bjorn Helgaas: "Here's another fix for v4.5. It fixes an ARM regression in v4.0 that causes many boxes to crash on boot, including cns3xxx, dove, footbridge, iopl13xx, ip32x, iop33x, ixp4xx, ks8695, mv78xx0, orion5x, pxa, sa1100, etc. The change is in code that's only built for ARM and ARM64. Summary: Enumeration: Allow generic PCI domains without bridge "parent" pointer (Krzysztof Hałasa)" * tag 'pci-v4.5-fixes-5' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: PCI: Allow a NULL "parent" pointer in pci_bus_assign_domain_nr() commit dc17147de328a74bbdee67c1bf37d2f1992de756 Author: Steven Rostedt (Red Hat) Date: Wed Mar 9 11:58:41 2016 -0500 tracing: Fix check for cpu online when event is disabled Commit f37755490fe9b ("tracepoints: Do not trace when cpu is offline") added a check to make sure that tracepoints only get called when the cpu is online, as it uses rcu_read_lock_sched() for protection. Commit 3a630178fd5f3 ("tracing: generate RCU warnings even when tracepoints are disabled") added lockdep checks (including rcu checks) for events that are not enabled to catch possible RCU issues that would only be triggered if a trace event was enabled. Commit f37755490fe9b only stopped the warnings when the trace event was enabled but did not prevent warnings if the trace event was called when disabled. To fix this, the cpu online check is moved to where the condition is added to the trace event. This will place the cpu online check in all places that it may be used now and in the future. Cc: stable@vger.kernel.org # v3.18+ Fixes: f37755490fe9b ("tracepoints: Do not trace when cpu is offline") Fixes: 3a630178fd5f3 ("tracing: generate RCU warnings even when tracepoints are disabled") Reported-by: Sudeep Holla Tested-by: Sudeep Holla Signed-off-by: Steven Rostedt include/linux/tracepoint.h | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit ff7925848b50050732ac0401e0acf27e8b241d7b Author: Will Deacon Date: Wed Mar 9 15:22:55 2016 +0000 arm64: hugetlb: partial revert of 66b3923a1a0f Commit 66b3923a1a0f ("arm64: hugetlb: add support for PTE contiguous bit") introduced support for huge pages using the contiguous bit in the PTE as opposed to block mappings, which may be slightly unwieldy (512M) in 64k page configurations. Unfortunately, this support has resulted in some late regressions when running the libhugetlbfs test suite with 64k pages and CONFIG_DEBUG_VM as a result of a BUG: | readback (2M: 64): ------------[ cut here ]------------ | kernel BUG at fs/hugetlbfs/inode.c:446! | Internal error: Oops - BUG: 0 [#1] SMP | Modules linked in: | CPU: 7 PID: 1448 Comm: readback Not tainted 4.5.0-rc7 #148 | Hardware name: linux,dummy-virt (DT) | task: fffffe0040964b00 ti: fffffe00c2668000 task.ti: fffffe00c2668000 | PC is at remove_inode_hugepages+0x44c/0x480 | LR is at remove_inode_hugepages+0x264/0x480 Rather than revert the entire patch, simply avoid advertising the contiguous huge page sizes for now while people are actively working on a fix. This patch can then be reverted once things have been sorted out. Cc: David Woods Reported-by: Steve Capper Signed-off-by: Will Deacon arch/arm64/mm/hugetlbpage.c | 14 -------------- 1 file changed, 14 deletions(-) commit 36e5cd6b897e17d03008f81e075625d8e43e52d0 Author: Ard Biesheuvel Date: Tue Mar 8 21:09:29 2016 +0700 arm64: account for sparsemem section alignment when choosing vmemmap offset Commit dfd55ad85e4a ("arm64: vmemmap: use virtual projection of linear region") fixed an issue where the struct page array would overflow into the adjacent virtual memory region if system RAM was placed so high up in physical memory that its addresses were not representable in the build time configured virtual address size. However, the fix failed to take into account that the vmemmap region needs to be relatively aligned with respect to the sparsemem section size, so that a sequence of page structs corresponding with a sparsemem section in the linear region appears naturally aligned in the vmemmap region. So round up vmemmap to sparsemem section size. Since this essentially moves the projection of the linear region up in memory, also revert the reduction of the size of the vmemmap region. Cc: Fixes: dfd55ad85e4a ("arm64: vmemmap: use virtual projection of linear region") Tested-by: Mark Langsdorf Tested-by: David Daney Tested-by: Robert Richter Acked-by: Catalin Marinas Signed-off-by: Ard Biesheuvel Signed-off-by: Will Deacon arch/arm64/include/asm/pgtable.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit f363938c70a04e6bc99023a5e0c44ef7879b903f Author: Andy Lutomirski Date: Thu Jan 21 15:24:31 2016 -0800 x86/fpu: Fix 'no387' regression After fixing FPU option parsing, we now parse the 'no387' boot option too early: no387 clears X86_FEATURE_FPU before it's even probed, so the boot CPU promptly re-enables it. I suspect it gets even more confused on SMP. Fix the probing code to leave X86_FEATURE_FPU off if it's been disabled by setup_clear_cpu_cap(). Signed-off-by: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Dave Hansen Cc: Denys Vlasenko Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Quentin Casasnovas Cc: Sai Praneeth Prakhya Cc: Thomas Gleixner Cc: yu-cheng yu Fixes: 4f81cbafcce2 ("x86/fpu: Fix early FPU command-line parsing") Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/init.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit 313f636d5c490c9741d3f750dc8da33029edbc6b Author: David Matlack Date: Tue Mar 8 16:19:44 2016 -0800 kvm: cap halt polling at exactly halt_poll_ns When growing halt-polling, there is no check that the poll time exceeds the limit. It's possible for vcpu->halt_poll_ns grow once past halt_poll_ns, and stay there until a halt which takes longer than vcpu->halt_poll_ns. For example, booting a Linux guest with halt_poll_ns=11000: ... kvm:kvm_halt_poll_ns: vcpu 0: halt_poll_ns 0 (shrink 10000) ... kvm:kvm_halt_poll_ns: vcpu 0: halt_poll_ns 10000 (grow 0) ... kvm:kvm_halt_poll_ns: vcpu 0: halt_poll_ns 20000 (grow 10000) Signed-off-by: David Matlack Fixes: aca6ff29c4063a8d467cdee241e6b3bf7dc4a171 Cc: stable@vger.kernel.org Signed-off-by: Paolo Bonzini virt/kvm/kvm_main.c | 3 +++ 1 file changed, 3 insertions(+) commit a9af316c83e3d81e26985193ffafdf143b327c07 Author: Xuelin Shi Date: Tue Mar 8 14:02:01 2016 +0800 dmaengine: fsldma: fix memory leak adding unmap of sources and destinations while doing dequeue. Signed-off-by: Xuelin Shi Signed-off-by: Vinod Koul drivers/dma/fsldma.c | 2 ++ 1 file changed, 2 insertions(+) commit 848819c5447eb318a787467e8435a07c733e16c9 Merge: 9138301 33bee52 Author: Dave Airlie Date: Wed Mar 9 14:21:12 2016 +1000 Merge tag 'imx-drm-fixes-2016-02-19' of git://git.pengutronix.de/git/pza/linux into drm-fixes ipu-v3 probe and imx-drm crtc and plane fixes - Fix ipu probe if optional port nodes are not present in the device tree - Reset the ipu before initializing interrupts, not thereafter - Notify DRM core about the state of vblank interrupts - Add missing RGB565 format to the list of plate formats * tag 'imx-drm-fixes-2016-02-19' of git://git.pengutronix.de/git/pza/linux: drm/imx: Add missing DRM_FORMAT_RGB565 to ipu_plane_formats drm/imx: notify DRM core about CRTC vblank state gpu: ipu-v3: Reset IPU before activating IRQ gpu: ipu-v3: Do not bail out on missing optional port nodes commit 913830147ace0a31ac0128726b29153d570c9985 Merge: dad82ea d74e766 Author: Dave Airlie Date: Wed Mar 9 14:19:14 2016 +1000 Merge branch 'drm-fixes-4.5' of git://people.freedesktop.org/~agd5f/linux into drm-fixes radeon and amdgpu fixes for 4.5. Three regression fixes and some fixups for the error handling in the vblank regression fixes from earlier. * 'drm-fixes-4.5' of git://people.freedesktop.org/~agd5f/linux: Revert "drm/radeon/pm: adjust display configuration after powerstate" drm/amdgpu/dp: add back special handling for NUTMEG drm/radeon/dp: add back special handling for NUTMEG drm/radeon: Fix error handling in radeon_flip_work_func. drm/amdgpu: Fix error handling in amdgpu_flip_work_func. commit 7781203416ffc4e731619f8a8b93a37599a8f502 Author: Heikki Krogerus Date: Tue Mar 8 15:44:36 2016 +0200 device property: fwnode->secondary may contain ERR_PTR(-ENODEV) This fixes BUG triggered when fwnode->secondary is not NULL, but has ERR_PTR(-ENODEV) instead. BUG: unable to handle kernel paging request at ffffffffffffffed IP: [] __fwnode_property_read_string+0x26/0x160 PGD 200e067 PUD 2010067 PMD 0 Oops: 0000 [#1] SMP KASAN Modules linked in: dwc3_pci(+) dwc3 CPU: 0 PID: 1138 Comm: modprobe Not tainted 4.5.0-rc5+ #61 task: ffff88015aaf5b00 ti: ffff88007b958000 task.ti: ffff88007b958000 RIP: 0010:[] [] __fwnode_property_read_string+0x26/0x160 RSP: 0018:ffff88007b95eff8 EFLAGS: 00010246 RAX: fffffbfffffffffd RBX: ffffffffffffffed RCX: ffff88015999cd37 RDX: dffffc0000000000 RSI: ffffffff81e11bc0 RDI: ffffffffffffffed RBP: ffff88007b95f020 R08: 0000000000000000 R09: 0000000000000000 R10: ffff88007b90f7cf R11: 0000000000000000 R12: ffff88007b95f0a0 R13: 00000000fffffffa R14: ffffffff81e11bc0 R15: ffff880159ea37a0 FS: 00007ff35f46c700(0000) GS:ffff88015b800000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b CR2: ffffffffffffffed CR3: 000000007b8be000 CR4: 00000000001006f0 Stack: ffff88015999cd20 ffffffff81e11bc0 ffff88007b95f0a0 ffff88007b383dd8 ffff880159ea37a0 ffff88007b95f048 ffffffff81677d03 ffff88007b952460 ffffffff81e11bc0 ffff88007b95f0a0 ffff88007b95f070 ffffffff81677d40 Call Trace: [] fwnode_property_read_string+0x43/0x50 [] device_property_read_string+0x30/0x40 ... Fixes: 362c0b30249e (device property: Fallback to secondary fwnode if primary misses the property) Signed-off-by: Heikki Krogerus Signed-off-by: Rafael J. Wysocki drivers/base/property.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 0dda8851a88d6c9d6389f1caf69627154c39aceb Author: Bob Moore Date: Fri Feb 19 14:17:36 2016 +0800 ACPICA: Revert "Parser: Fix for SuperName method invocation" ACPICA commit eade8f78f2aa21e8eabc3380a5728db47273bcf1 Revert commit ae90fbf562d7 (ACPICA: Parser: Fix for SuperName method invocation). Support for method invocations as part of super_name will be removed from the ACPI specification, since no AML interpreter supports it. Fixes: ae90fbf562d7 (ACPICA: Parser: Fix for SuperName method invocation) Link: https://github.com/acpica/acpica/commit/eade8f78 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/psargs.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit d74e766e1916d0e09b86e4b5b9d0f819628fd546 Author: Alex Deucher Date: Tue Mar 8 11:31:00 2016 -0500 Revert "drm/radeon/pm: adjust display configuration after powerstate" This reverts commit 39d4275058baf53e89203407bf3841ff2c74fa32. This caused a regression on some older hardware. bug: https://bugzilla.kernel.org/show_bug.cgi?id=113891 Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/radeon_pm.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 7f02bf6b5f5de90b7a331759b5364e41c0f39bf9 Merge: 1e2a4c7 ad09ef2 Author: Linus Torvalds Date: Tue Mar 8 09:41:20 2016 -0800 Merge tag 'sound-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "It's always an ambivalent feeling to send a large pull request at the late stage like this, especially when most of patches came from me. Anyway, this is a collection of lots of small fixes that slipped from the previous pull request. All fixes are about ASoC, and the majority of changes are corrections of the wrong access types in ALSA ctl enum items. They are mostly harmless on 32bit architectures, but actually buggy on 64bit. So we addressed all these now in a shot. The rest are various small ASoC driver fixes. Among them, only two changes have been done to ASoC core, and both of them are trivial. The rest are all device-specific. So overall, they should be safe to apply" * tag 'sound-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (33 commits) ASoC: wm_adsp: Fix enum ctl accesses in a wrong type ASoC: wm9081: Fix enum ctl accesses in a wrong type ASoC: wm8996: Fix enum ctl accesses in a wrong type ASoC: wm8994: Fix enum ctl accesses in a wrong type ASoC: wm8985: Fix enum ctl accesses in a wrong type ASoC: wm8983: Fix enum ctl accesses in a wrong type ASoC: wm8958: Fix enum ctl accesses in a wrong type ASoC: wm8904: Fix enum ctl accesses in a wrong type ASoC: wm8753: Fix enum ctl accesses in a wrong type ASoC: wl1273: Fix enum ctl accesses in a wrong type ASoC: tlv320dac33: Fix enum ctl accesses in a wrong type ASoC: max98095: Fix enum ctl accesses in a wrong type ASoC: max98088: Fix enum ctl accesses in a wrong type ASoC: ab8500: Fix enum ctl accesses in a wrong type ASoC: da732x: Fix enum ctl accesses in a wrong type ASoC: cs42l51: Fix enum ctl accesses in a wrong type ASoC: intel: mfld: Fix enum ctl accesses in a wrong type ASoC: omap: rx51: Fix enum ctl accesses in a wrong type ASoC: omap: n810: Fix enum ctl accesses in a wrong type ASoC: pxa: tosa: Fix enum ctl accesses in a wrong type ... commit 1e2a4c7a3f916f1caa5e68a9f2f7e6a04a0efa7e Merge: e2857b8 83bdaad Author: Linus Torvalds Date: Tue Mar 8 09:29:00 2016 -0800 Merge tag 'edac_fix_for_4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp Pull EDAC fix from Borislav Petkov: "Last minute fix for sb_edac which fixes DIMM detection on certain Xeon Phi configurations: A single fix to the Xeon Phi section of sb_edac. The issue was introduced during this merge window" * tag 'edac_fix_for_4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp: EDAC, sb_edac: Fix logic when computing DIMM sizes on Xeon Phi commit 02d27234759dc4fe14a880ec1e1dee108cb0b503 Author: Alex Deucher Date: Thu Mar 3 19:34:28 2016 -0500 drm/amdgpu/dp: add back special handling for NUTMEG When I fixed the dp rate selection in: 3b73b168cffd9c392584d3f665021fa2190f8612 drm/amdgpu: fix dp link rate selection (v2) I accidently dropped the special handling for NUTMEG DP bridge chips. They require a fixed link rate. Reviewed-by: Christian König Reviewed-by: Ken Wang Reviewed-by: Harry Wentland Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/atombios_dp.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) commit c8213a638f65bf487c10593c216525952cca3690 Author: Alex Deucher Date: Thu Mar 3 19:26:24 2016 -0500 drm/radeon/dp: add back special handling for NUTMEG When I fixed the dp rate selection in: 092c96a8ab9d1bd60ada2ed385cc364ce084180e drm/radeon: fix dp link rate selection (v2) I accidently dropped the special handling for NUTMEG DP bridge chips. They require a fixed link rate. Reviewed-by: Christian König Reviewed-by: Ken Wang Reviewed-by: Harry Wentland Tested-by: Ken Moffat Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/atombios_dp.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) commit 9522b37f5a8c7bfabe46eecadf2e130f1103f337 Author: David Hildenbrand Date: Tue Mar 8 12:24:30 2016 +0100 KVM: s390: correct fprs on SIGP (STOP AND) STORE STATUS With MACHINE_HAS_VX, we convert the floating point registers from the vector registeres when storing the status. For other VCPUs, these are stored to vcpu->run->s.regs.vrs, but we are using current->thread.fpu.vxrs, which resolves to the currently loaded VCPU. So kvm_s390_store_status_unloaded() currently writes the wrong floating point registers (converted from the vector registers) when called from another VCPU on a z13. This is only the case for old user space not handling SIGP STORE STATUS and SIGP STOP AND STORE STATUS, but relying on the kernel implementation. All other calls come from the loaded VCPU via kvm_s390_store_status(). Fixes: 9abc2a08a7d6 (KVM: s390: fix memory overwrites when vx is disabled) Reviewed-by: Christian Borntraeger Cc: stable@vger.kernel.org # v4.4+ Signed-off-by: David Hildenbrand Signed-off-by: Christian Borntraeger Signed-off-by: Paolo Bonzini arch/s390/kvm/kvm-s390.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8bb9b9ccff5b7ce5084b5111244a92fd1d0daf16 Merge: 7099e2e ccec445 Author: Paolo Bonzini Date: Tue Mar 8 12:46:50 2016 +0100 Merge branch 'kvm-ppc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc into HEAD commit 7099e2e1f4d9051f31bbfa5803adf954bb5d76ef Author: Radim Krčmář Date: Fri Mar 4 15:08:42 2016 +0100 KVM: VMX: disable PEBS before a guest entry Linux guests on Haswell (and also SandyBridge and Broadwell, at least) would crash if you decided to run a host command that uses PEBS, like perf record -e 'cpu/mem-stores/pp' -a This happens because KVM is using VMX MSR switching to disable PEBS, but SDM [2015-12] 18.4.4.4 Re-configuring PEBS Facilities explains why it isn't safe: When software needs to reconfigure PEBS facilities, it should allow a quiescent period between stopping the prior event counting and setting up a new PEBS event. The quiescent period is to allow any latent residual PEBS records to complete its capture at their previously specified buffer address (provided by IA32_DS_AREA). There might not be a quiescent period after the MSR switch, so a CPU ends up using host's MSR_IA32_DS_AREA to access an area in guest's memory. (Or MSR switching is just buggy on some models.) The guest can learn something about the host this way: If the guest doesn't map address pointed by MSR_IA32_DS_AREA, it results in #PF where we leak host's MSR_IA32_DS_AREA through CR2. After that, a malicious guest can map and configure memory where MSR_IA32_DS_AREA is pointing and can therefore get an output from host's tracing. This is not a critical leak as the host must initiate with PEBS tracing and I have not been able to get a record from more than one instruction before vmentry in vmx_vcpu_run() (that place has most registers already overwritten with guest's). We could disable PEBS just few instructions before vmentry, but disabling it earlier shouldn't affect host tracing too much. We also don't need to switch MSR_IA32_PEBS_ENABLE on VMENTRY, but that optimization isn't worth its code, IMO. (If you are implementing PEBS for guests, be sure to handle the case where both host and guest enable PEBS, because this patch doesn't.) Fixes: 26a4f3c08de4 ("perf/x86: disable PEBS on a guest entry.") Cc: Reported-by: Jiří Olša Signed-off-by: Radim Krčmář Signed-off-by: Paolo Bonzini arch/x86/kvm/vmx.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 7a76aa95f6f6682db5629449d763251d1c9f8c4e Author: Christian Borntraeger Date: Mon Feb 29 15:59:18 2016 +0100 s390/cpumf: Fix lpp detection we have to check bit 40 of the facility list before issuing LPP and not bit 48. Otherwise a guest running on a system with "The decimal-floating-point zoned-conversion facility" and without the "The set-program-parameters facility" might crash on an lpp instruction. Signed-off-by: Christian Borntraeger Cc: stable@vger.kernel.org # v4.4+ Fixes: e22cf8ca6f75 ("s390/cpumf: rework program parameter setting to detect guest samples") Signed-off-by: Martin Schwidefsky arch/s390/kernel/head64.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f93812846f31381d35c04c6c577d724254355e7f Author: Al Viro Date: Mon Mar 7 23:07:10 2016 -0500 jffs2: reduce the breakage on recovery from halfway failed rename() d_instantiate(new_dentry, old_inode) is absolutely wrong thing to do - it will oops if new_dentry used to be positive, for starters. What we need is d_invalidate() the target and be done with that. Cc: stable@vger.kernel.org # v3.18+ Signed-off-by: Al Viro fs/jffs2/dir.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 803c00123a8012b3a283c0530910653973ef6d8f Author: Al Viro Date: Mon Mar 7 22:17:07 2016 -0500 ncpfs: fix a braino in OOM handling in ncp_fill_cache() Failing to allocate an inode for child means that cache for *parent* is incompletely populated. So it's parent directory inode ('dir') that needs NCPI_DIR_CACHE flag removed, *not* the child inode ('inode', which is what we'd failed to allocate in the first place). Fucked-up-in: commit 5e993e25 ("ncpfs: get rid of d_validate() nonsense") Fucked-up-by: Al Viro Cc: stable@vger.kernel.org # v3.19 Signed-off-by: Al Viro fs/ncpfs/dir.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ccec44563b18a0ce90e2d4f332784b3cb25c8e9c Author: Paul Mackerras Date: Sat Mar 5 19:34:39 2016 +1100 KVM: PPC: Book3S HV: Sanitize special-purpose register values on guest exit Thomas Huth discovered that a guest could cause a hard hang of a host CPU by setting the Instruction Authority Mask Register (IAMR) to a suitable value. It turns out that this is because when the code was added to context-switch the new special-purpose registers (SPRs) that were added in POWER8, we forgot to add code to ensure that they were restored to a sane value on guest exit. This adds code to set those registers where a bad value could compromise the execution of the host kernel to a suitable neutral value on guest exit. Cc: stable@vger.kernel.org # v3.14+ Fixes: b005255e12a3 Reported-by: Thomas Huth Reviewed-by: David Gibson Signed-off-by: Paul Mackerras arch/powerpc/kvm/book3s_hv_rmhandlers.S | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit dad82ea3ef4b9dc97ca5ec718abc6b0986f1aaaf Author: Jyri Sarha Date: Sat Jan 16 22:17:54 2016 +0200 drm/i2c: tda998x: Choose between atomic or non atomic dpms helper Choose between atomic or non atomic connector dpms helper. If tda998x is connected to a drm driver that does not support atomic modeset calling drm_atomic_helper_connector_dpms() causes a crash when the connectors atomic state is not initialized. The patch implements a driver specific connector dpms helper that calls drm_atomic_helper_connector_dpms() if driver supports DRIVER_ATOMIC and otherwise it calls the legacy drm_helper_connector_dpms(). Fixes commit 9736e988d328 ("drm/i2c: tda998x: Add support for atomic modesetting"). Signed-off-by: Jyri Sarha Signed-off-by: Dave Airlie drivers/gpu/drm/i2c/tda998x_drv.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit d17e67de6e81394624685f16f174453bd561d48b Author: Thierry Reding Date: Mon Mar 7 18:06:01 2016 +0100 drm/vmwgfx: Add back ->detect() and ->fill_modes() This partially reverts commit d56f57ac969c ("drm/gma500: Move to private save/restore hooks") which removed these lines by mistake. Reported-by: Sebastian Herbszt Acked-by: Daniel Vetter Signed-off-by: Thierry Reding Tested-by: Thomas Hellstrom Tested-by: Sebastian Herbszt Signed-off-by: Dave Airlie drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 2 ++ 1 file changed, 2 insertions(+) commit e2857b8f11a289ed2b61d18d0665e05c1053c446 Merge: 01ffa3d 6faac63 Author: Linus Torvalds Date: Mon Mar 7 15:41:10 2016 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Pull networking fixes from David Miller: 1) Fix ordering of WEXT netlink messages so we don't see a newlink after a dellink, from Johannes Berg. 2) Out of bounds access in minstrel_ht_set_best_prob_rage, from Konstantin Khlebnikov. 3) Paging buffer memory leak in iwlwifi, from Matti Gottlieb. 4) Wrong units used to set initial TCP rto from cached metrics, also from Konstantin Khlebnikov. 5) Fix stale IP options data in the SKB control block from leaking through layers of encapsulation, from Bernie Harris. 6) Zero padding len miscalculated in bnxt_en, from Michael Chan. 7) Only CHECKSUM_PARTIAL packets should be passed down through GSO, fix from Hannes Frederic Sowa. 8) Fix suspend/resume with JME networking devices, from Diego Violat and Guo-Fu Tseng. 9) Checksums not validated properly in bridge multicast support due to the placement of the SKB header pointers at the time of the check, fix from Álvaro Fernández Rojas. 10) Fix hang/tiemout with r8169 if a stats fetch is done while the device is runtime suspended. From Chun-Hao Lin. 11) The forwarding database netlink dump facilities don't track the state of the dump properly, resulting in skipped/missed entries. From Minoura Makoto. 12) Fix regression from a recent 3c59x bug fix, from Neil Horman. 13) Fix list corruption in bna driver, from Ivan Vecera. 14) Big endian machines crash on vlan add in bnx2x, fix from Michal Schmidt. 15) Ethtool RSS configuration not propagated properly in mlx5 driver, from Tariq Toukan. 16) Fix regression in PHY probing in stmmac driver, from Gabriel Fernandez. 17) Fix SKB tailroom calculation in igmp/mld code, from Benjamin Poirier. 18) A past change to skip empty routing headers in ipv6 extention header parsing accidently caused fragment headers to not be matched any longer. Fix from Florian Westphal. 19) eTSEC-106 erratum needs to be applied to more gianfar chips, from Atsushi Nemoto. 20) Fix netdev reference after free via workqueues in usb networking drivers, from Oliver Neukum and Bjørn Mork. 21) mdio->irq is now an array rather than a pointer to dynamic memory, but several drivers were still trying to free it :-/ Fixes from Colin Ian King. 22) act_ipt iptables action forgets to set the family field, thus LOG netfilter targets don't work with it. Fix from Phil Sutter. 23) SKB leak in ibmveth when skb_linearize() fails, from Thomas Falcon. 24) pskb_may_pull() cannot be called with interrupts disabled, fix code that tries to do this in vmxnet3 driver, from Neil Horman. 25) be2net driver leaks iomap'd memory on removal, fix from Douglas Miller. 26) Forgotton RTNL mutex unlock in ppp_create_interface() error paths, from Guillaume Nault. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (97 commits) ppp: release rtnl mutex when interface creation fails cdc_ncm: do not call usbnet_link_change from cdc_ncm_bind tcp: fix tcpi_segs_in after connection establishment net: hns: fix the bug about loopback jme: Fix device PM wakeup API usage jme: Do not enable NIC WoL functions on S0 udp6: fix UDP/IPv6 encap resubmit path be2net: Don't leak iomapped memory on removal. vmxnet3: avoid calling pskb_may_pull with interrupts disabled net: ethernet: Add missing MFD_SYSCON dependency on HAS_IOMEM ibmveth: check return of skb_linearize in ibmveth_start_xmit cdc_ncm: toggle altsetting to force reset before setup usbnet: cleanup after bind() in probe() mlxsw: pci: Correctly determine if descriptor queue is full mlxsw: spectrum: Always decrement bridge's ref count tipc: fix nullptr crash during subscription cancel net: eth: altera: do not free array priv->mdio->irq net/ethoc: do not free array priv->mdio->irq net: sched: fix act_ipt for LOG target asix: do not free array priv->mdio->irq ... commit 01ffa3df223c061435dfaab8daba7c0109a3c6d5 Merge: 256faed b81de06 Author: Linus Torvalds Date: Mon Mar 7 15:23:25 2016 -0800 Merge branch 'overlayfs-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs Pull overlayfs fixes from Miklos Szeredi: "Overlayfs bug fixes. All marked as -stable material" * 'overlayfs-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs: ovl: copy new uid/gid into overlayfs runtime inode ovl: ignore lower entries when checking purity of non-directory entries ovl: fix getcwd() failure after unsuccessful rmdir ovl: fix working on distributed fs as lower layer commit 256faedcfd646161477d47a1a78c32a562d2e845 Author: Linus Torvalds Date: Mon Mar 7 13:15:09 2016 -0800 Revert "drm/radeon: call hpd_irq_event on resume" This reverts commit dbb17a21c131eca94eb31136eee9a7fe5aff00d9. It turns out that commit can cause problems for systems with multiple GPUs, and causes X to hang on at least a HP Pavilion dv7 with hybrid graphics. This got noticed originally in 4.4.4, where this patch had already gotten back-ported, but 4.5-rc7 was verified to have the same problem. Alexander Deucher says: "It looks like you have a muxed system so I suspect what's happening is that one of the display is being reported as connected for both the IGP and the dGPU and then the desktop environment gets confused or there some sort problem in the detect functions since the mux is not switched to the dGPU. I don't see an easy fix unless Dave has any ideas. I'd say just revert for now" Reported-by: Jörg-Volker Peetz Acked-by: Alexander Deucher Cc: Dave Airlie Cc: stable@kernel.org # wherever dbb17a21c131 got back-ported Signed-off-by: Linus Torvalds drivers/gpu/drm/radeon/radeon_device.c | 1 - 1 file changed, 1 deletion(-) commit 6faac63a6986f29ef39827f460edd3a5ba64ad5c Author: Guillaume Nault Date: Mon Mar 7 19:36:44 2016 +0100 ppp: release rtnl mutex when interface creation fails Add missing rtnl_unlock() in the error path of ppp_create_interface(). Fixes: 58a89ecaca53 ("ppp: fix lockdep splat in ppp_dev_uninit()") Signed-off-by: Guillaume Nault Signed-off-by: David S. Miller drivers/net/ppp/ppp_generic.c | 1 + 1 file changed, 1 insertion(+) commit 4d06dd537f95683aba3651098ae288b7cbff8274 Author: Bjørn Mork Date: Mon Mar 7 21:15:36 2016 +0100 cdc_ncm: do not call usbnet_link_change from cdc_ncm_bind usbnet_link_change will call schedule_work and should be avoided if bind is failing. Otherwise we will end up with scheduled work referring to a netdev which has gone away. Instead of making the call conditional, we can just defer it to usbnet_probe, using the driver_info flag made for this purpose. Fixes: 8a34b0ae8778 ("usbnet: cdc_ncm: apply usbnet_link_change") Reported-by: Andrey Konovalov Suggested-by: Linus Torvalds Signed-off-by: Bjørn Mork Signed-off-by: David S. Miller drivers/net/usb/cdc_ncm.c | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) commit a9d99ce28ed359d68cf6f3c1a69038aefedf6d6a Author: Eric Dumazet Date: Sun Mar 6 09:29:21 2016 -0800 tcp: fix tcpi_segs_in after connection establishment If final packet (ACK) of 3WHS is lost, it appears we do not properly account the following incoming segment into tcpi_segs_in While we are at it, starts segs_in with one, to count the SYN packet. We do not yet count number of SYN we received for a request sock, we might add this someday. packetdrill script showing proper behavior after fix : // Tests tcpi_segs_in when 3rd packet (ACK) of 3WHS is lost 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 32792 +0 > S. 0:0(0) ack 1 +.020 < P. 1:1001(1000) ack 1 win 32792 +0 accept(3, ..., ...) = 4 +.000 %{ assert tcpi_segs_in == 2, 'tcpi_segs_in=%d' % tcpi_segs_in }% Fixes: 2efd055c53c06 ("tcp: add tcpi_segs_in and tcpi_segs_out to tcp_info") Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/tcp_minisocks.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 68c222a6bc90e4bf03df7ae36a9b196fa869928e Author: yankejian Date: Sat Mar 5 14:10:42 2016 +0800 net: hns: fix the bug about loopback It will always be passed if the soc is tested the loopback cases. This patch will fix this bug. Signed-off-by: Kejian Yan Signed-off-by: David S. Miller drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c | 8 +++++ drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c | 37 ++++++++++++++++++++++ drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.h | 1 + drivers/net/ethernet/hisilicon/hns/hns_dsaf_reg.h | 5 +++ drivers/net/ethernet/hisilicon/hns/hns_ethtool.c | 15 ++++++++- 5 files changed, 65 insertions(+), 1 deletion(-) commit 81422e672f8181d7ad1ee6c60c723aac649f538f Author: Guo-Fu Tseng Date: Sat Mar 5 08:11:56 2016 +0800 jme: Fix device PM wakeup API usage According to Documentation/power/devices.txt The driver should not use device_set_wakeup_enable() which is the policy for user to decide. Using device_init_wakeup() to initialize dev->power.should_wakeup and dev->power.can_wakeup on driver initialization. And use device_may_wakeup() on suspend to decide if WoL function should be enabled on NIC. Reported-by: Diego Viola Signed-off-by: Guo-Fu Tseng Signed-off-by: David S. Miller drivers/net/ethernet/jme.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 0772a99b818079e628a1da122ac7ee023faed83e Author: Guo-Fu Tseng Date: Sat Mar 5 08:11:55 2016 +0800 jme: Do not enable NIC WoL functions on S0 Otherwise it might be back on resume right after going to suspend in some hardware. Reported-by: Diego Viola Signed-off-by: Guo-Fu Tseng Signed-off-by: David S. Miller drivers/net/ethernet/jme.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) commit 54c6e2dd00c313d0add58e5befe62fe6f286d03b Author: Krzysztof =?utf-8?Q?Ha=C5=82asa?= Date: Tue Mar 1 07:07:18 2016 +0100 PCI: Allow a NULL "parent" pointer in pci_bus_assign_domain_nr() pci_create_root_bus() passes a "parent" pointer to pci_bus_assign_domain_nr(). When CONFIG_PCI_DOMAINS_GENERIC is defined, pci_bus_assign_domain_nr() dereferences that pointer. Many callers of pci_create_root_bus() supply a NULL "parent" pointer, which leads to a NULL pointer dereference error. 7c674700098c ("PCI: Move domain assignment from arm64 to generic code") moved the "parent" dereference from arm64 to generic code. Only arm64 used that code (because only arm64 defined CONFIG_PCI_DOMAINS_GENERIC), and it always supplied a valid "parent" pointer. Other arches supplied NULL "parent" pointers but didn't defined CONFIG_PCI_DOMAINS_GENERIC, so they used a no-op version of pci_bus_assign_domain_nr(). 8c7d14746abc ("ARM/PCI: Move to generic PCI domains") defined CONFIG_PCI_DOMAINS_GENERIC on ARM, and many ARM platforms use pci_common_init(), which supplies a NULL "parent" pointer. These platforms (cns3xxx, dove, footbridge, iop13xx, etc.) crash with a NULL pointer dereference like this while probing PCI: Unable to handle kernel NULL pointer dereference at virtual address 000000a4 PC is at pci_bus_assign_domain_nr+0x10/0x84 LR is at pci_create_root_bus+0x48/0x2e4 Kernel panic - not syncing: Attempted to kill init! [bhelgaas: changelog, add "Reported:" and "Fixes:" tags] Reported: http://forum.doozan.com/read.php?2,17868,22070,quote=1 Fixes: 8c7d14746abc ("ARM/PCI: Move to generic PCI domains") Fixes: 7c674700098c ("PCI: Move domain assignment from arm64 to generic code") Signed-off-by: Krzysztof Hałasa Signed-off-by: Bjorn Helgaas Acked-by: Lorenzo Pieralisi CC: stable@vger.kernel.org # v4.0+ drivers/pci/pci.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 59dca1d8a6725a121dae6c452de0b2611d5865dc Author: Bill Sommerfeld Date: Fri Mar 4 14:47:21 2016 -0800 udp6: fix UDP/IPv6 encap resubmit path IPv4 interprets a negative return value from a protocol handler as a request to redispatch to a new protocol. In contrast, IPv6 interprets a negative value as an error, and interprets a positive value as a request for redispatch. UDP for IPv6 was unaware of this difference. Change __udp6_lib_rcv() to return a positive value for redispatch. Note that the socket's encap_rcv hook still needs to return a negative value to request dispatch, and in the case of IPv6 packets, adjust IP6CB(skb)->nhoff to identify the byte containing the next protocol. Signed-off-by: Bill Sommerfeld Signed-off-by: David S. Miller net/ipv6/udp.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit a69bf3c5b49ef488970c74e26ba0ec12f08491c2 Author: Douglas Miller Date: Fri Mar 4 15:36:56 2016 -0600 be2net: Don't leak iomapped memory on removal. The adapter->pcicfg resource is either mapped via pci_iomap() or derived from adapter->db. During be_remove() this resource was ignored and so could remain mapped after remove. Add a flag to track whether adapter->pcicfg was mapped or not, then use that flag in be_unmap_pci_bars() to unmap if required. Fixes: 25848c901 ("use PCI MMIO read instead of config read for errors") Signed-off-by: Douglas Miller Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be.h | 1 + drivers/net/ethernet/emulex/benet/be_main.c | 4 ++++ 2 files changed, 5 insertions(+) commit cec05562fb1dcdf09ef7b46e1e3eade98e488893 Author: Neil Horman Date: Fri Mar 4 13:40:48 2016 -0500 vmxnet3: avoid calling pskb_may_pull with interrupts disabled vmxnet3 has a function vmxnet3_parse_and_copy_hdr which, among other operations, uses pskb_may_pull to linearize the header portion of an skb. That operation eventually uses local_bh_disable/enable to ensure that it doesn't race with the drivers bottom half handler. Unfortunately, vmxnet3 preforms this parse_and_copy operation with a spinlock held and interrupts disabled. This causes us to run afoul of the WARN_ON_ONCE(irqs_disabled()) warning in local_bh_enable, resulting in this: WARNING: at kernel/softirq.c:159 local_bh_enable+0x59/0x90() (Not tainted) Hardware name: VMware Virtual Platform Modules linked in: ipv6 ppdev parport_pc parport microcode e1000 vmware_balloon vmxnet3 i2c_piix4 sg ext4 jbd2 mbcache sd_mod crc_t10dif sr_mod cdrom mptspi mptscsih mptbase scsi_transport_spi pata_acpi ata_generic ata_piix vmwgfx ttm drm_kms_helper drm i2c_core dm_mirror dm_region_hash dm_log dm_mod [last unloaded: mperf] Pid: 6229, comm: sshd Not tainted 2.6.32-616.el6.i686 #1 Call Trace: [] ? warn_slowpath_common+0x89/0xe0 [] ? local_bh_enable+0x59/0x90 [] ? warn_slowpath_null+0x1b/0x20 [] ? local_bh_enable+0x59/0x90 [] ? skb_copy_bits+0x126/0x210 [] ? ext4_ext_find_extent+0x24e/0x2d0 [ext4] [] ? __pskb_pull_tail+0x6e/0x2b0 [] ? vmxnet3_xmit_frame+0xba4/0xef0 [vmxnet3] [] ? selinux_ip_postroute+0x56/0x320 [] ? cfq_add_rq_rb+0x98/0x110 [] ? packet_rcv+0x48/0x350 [] ? dev_queue_xmit_nit+0xc9/0x140 ... Fix it by splitting vmxnet3_parse_and_copy_hdr into two functions: vmxnet3_parse_hdr, which sets up the internal/on stack ctx datastructure, and pulls the skb (both of which can be done without holding the spinlock with irqs disabled and vmxnet3_copy_header, which just copies the skb to the tx ring under the lock safely. tested and shown to correct the described problem. Applies cleanly to the head of the net tree Signed-off-by: Neil Horman CC: Shrikrishna Khare CC: "VMware, Inc." CC: "David S. Miller" Acked-by: Shrikrishna Khare Signed-off-by: David S. Miller drivers/net/vmxnet3/vmxnet3_drv.c | 73 ++++++++++++++++++++++++--------------- 1 file changed, 46 insertions(+), 27 deletions(-) commit 7024b68ef1310a9dd3b2b40b082588a9826f05f5 Merge: 979d804 10da848 Author: David S. Miller Date: Mon Mar 7 14:58:11 2016 -0500 Merge tag 'wireless-drivers-for-davem-2016-03-04' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers Kalle Valo says: ==================== wireless-drivers fixes for 4.5 iwlwifi * free firmware paging memory when the module is unloaded or device removed * fix pending frames counter to fix an issue when removing stations ssb * fix a build problem related to ssb_fill_sprom_with_fallback() ==================== Signed-off-by: David S. Miller commit 979d804e5bc926f8f3133715736f26456c910a97 Author: Krzysztof Kozlowski Date: Fri Mar 4 10:04:52 2016 +0900 net: ethernet: Add missing MFD_SYSCON dependency on HAS_IOMEM The MFD_SYSCON depends on HAS_IOMEM so when selecting it avoid unmet direct dependencies. Signed-off-by: Krzysztof Kozlowski Signed-off-by: David S. Miller drivers/net/ethernet/hisilicon/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 2c42bf4b43170ee83354bb68a12f8fc84c2e27a9 Author: Thomas Falcon Date: Thu Mar 3 15:22:36 2016 -0600 ibmveth: check return of skb_linearize in ibmveth_start_xmit If skb_linearize fails, the driver should drop the packet instead of trying to copy it into the bounce buffer. Signed-off-by: Thomas Falcon Signed-off-by: David S. Miller drivers/net/ethernet/ibm/ibmveth.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 48906f62c96cc2cd35753e59310cb70eb08cc6a5 Author: Bjørn Mork Date: Thu Mar 3 22:20:53 2016 +0100 cdc_ncm: toggle altsetting to force reset before setup Some devices will silently fail setup unless they are reset first. This is necessary even if the data interface is already in altsetting 0, which it will be when the device is probed for the first time. Briefly toggling the altsetting forces a function reset regardless of the initial state. This fixes a setup problem observed on a number of Huawei devices, appearing to operate in NTB-32 mode even if we explicitly set them to NTB-16 mode. Signed-off-by: Bjørn Mork Signed-off-by: David S. Miller drivers/net/usb/cdc_ncm.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 83bdaad4d919722744ef1b726a9913ec36c6a430 Author: Hubert Chrzaniuk Date: Mon Mar 7 15:30:45 2016 +0100 EDAC, sb_edac: Fix logic when computing DIMM sizes on Xeon Phi Correct a typo introduced by d0cdf9003140 ("EDAC, sb_edac: Add Knights Landing (Xeon Phi gen 2) support") As a result under some configurations DIMMs were not correctly recognized. Problem affects only Xeon Phi architecture. Signed-off-by: Hubert Chrzaniuk Acked-by: Aristeu Rozanski Cc: Mauro Carvalho Chehab Cc: linux-edac Cc: lukasz.anaczkowski@intel.com Link: http://lkml.kernel.org/r/1457361045-26221-1-git-send-email-hubert.chrzaniuk@intel.com Signed-off-by: Borislav Petkov drivers/edac/sb_edac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2f791908a70e95768596f5bb9e6de4f441d7bf13 Author: Takashi Iwai Date: Wed Feb 24 15:35:22 2016 +0100 drm/i915: Fix bogus dig_port_map[] assignment for pre-HSW The recent commit [0bdf5a05647a: drm/i915: Add reverse mapping between port and intel_encoder] introduced a reverse mapping to retrieve intel_dig_port object from the port number. The code assumed that the port vs intel_dig_port are 1:1 mapping. But in reality, this was a too naive assumption. As Martin reported about the missing HDMI audio on his SNB machine, pre-HSW chips may have multiple intel_dig_port objects corresponding to the same port. Since we assign the mapping statically at the init time and the multiple objects override the map, it may not match with the actually enabled output. This patch tries to address the regression above. The reverse mapping is provided basically only for the audio callbacks, so now we set / clear the mapping dynamically at enabling and disabling HDMI/DP audio, so that we can always track the latest and correct object corresponding to the given port. Fixes: 0bdf5a05647a ('drm/i915: Add reverse mapping between port and intel_encoder') Reported-and-tested-by: Martin Kepplinger Cc: drm-intel-fixes@lists.freedesktop.org Signed-off-by: Takashi Iwai Reviewed-by: Ville Syrjälä Tested-by: Martin Kepplinger Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1456324522-21591-1-git-send-email-tiwai@suse.de (cherry picked from commit 9dfbffcf4ac0707097af9e6c1372192b9d03a357) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_audio.c | 3 +++ drivers/gpu/drm/i915/intel_ddi.c | 1 - drivers/gpu/drm/i915/intel_dp.c | 1 - drivers/gpu/drm/i915/intel_hdmi.c | 2 -- 4 files changed, 3 insertions(+), 4 deletions(-) commit 1666984c8625b3db19a9abc298931d35ab7bc64b Author: Oliver Neukum Date: Mon Mar 7 11:31:10 2016 +0100 usbnet: cleanup after bind() in probe() In case bind() works, but a later error forces bailing in probe() in error cases work and a timer may be scheduled. They must be killed. This fixes an error case related to the double free reported in http://www.spinics.net/lists/netdev/msg367669.html and needs to go on top of Linus' fix to cdc-ncm. Signed-off-by: Oliver Neukum Signed-off-by: David S. Miller drivers/net/usb/usbnet.c | 7 +++++++ 1 file changed, 7 insertions(+) commit a383b7f0e0ba9f8610bdf88a58591a9cca96c38e Merge: 4de13d7e 5091730 Author: David S. Miller Date: Mon Mar 7 11:39:16 2016 -0500 Merge branch 'mlxsw-fixes' Jiri Pirko says: ==================== mlxsw: couple of fixes Couple of fixes from Ido. ==================== Signed-off-by: David S. Miller commit 5091730d7795ccb21eb880699b5194730641c70b Author: Ido Schimmel Date: Mon Mar 7 15:15:30 2016 +0100 mlxsw: pci: Correctly determine if descriptor queue is full The descriptor queues for sending (SDQs) and receiving (RDQs) packets are managed by two counters - producer and consumer - which are both 16-bit in size. A queue is considered full when the difference between the two equals the queue's maximum number of descriptors. However, if the producer counter overflows, then it's possible for the full queue check to fail, as it doesn't take the overflow into account. In such a case, descriptors already passed to the device - but for which a completion has yet to be posted - will be overwritten, thereby causing undefined behavior. The above can be achieved under heavy load (~30 netperf instances). Fix that by casting the subtraction result to u16, preventing it from being treated as a signed integer. Fixes: eda6500a987a ("mlxsw: Add PCI bus implementation") Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/pci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 912b1c89c5043e163f8cfa568512a131976121b2 Author: Ido Schimmel Date: Mon Mar 7 15:15:29 2016 +0100 mlxsw: spectrum: Always decrement bridge's ref count Since we only support one VLAN filtering bridge we need to associate a reference count with it, so that when the last port netdev leaves it, we would know that a different bridge can be offloaded to hardware. When a LAG device is memeber in a bridge and port netdevs are leaving the LAG, we should always decrement the bridge's reference count, as it's incremented for any port in the LAG. Fixes: 4dc236c31733 ("mlxsw: spectrum: Handle port leaving LAG while bridged") Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit ad09ef2cce91e3a98a32e3bb0a5982a6e8920aa1 Merge: 790b415 02db17f Author: Takashi Iwai Date: Mon Mar 7 11:06:46 2016 +0100 Merge tag 'asoc-fix-v4.5-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Fixes for v4.5 This is far too big a set of fixes for this late in the release cycle but the overwhelming bulk is essentially the same simple fix from Takashi for a cut'n'pasted 64 bit cleanliness issue in the userspace interface where drivers were accessing things using the wrong element in a union which worked OK on 32 bit platforms as the correct element happened to be aligned the same way but with 64 bit platforms ABIs are different and the two members of the union are laid out in different places. They aren't all tagged to stable since some of these chips have vanishingly little chance of being used in 64 bit systems. The other changes are: - A fix for Qualcomm devices to work on big endian systems. The original change is actually correct but triggered a bug in regmap which is too invasive to fix for this cycle and can be worked around by just letting regmap pick the default. - A fix for the Samsung I2S driver locking which wasn't using IRQ safe spinlocks when it needed to. - A fix for the new Intel Sky Lake driver forgetting that C pointer arithmetic takes the type of the pointer into consideration. - A revert of a change to the FSL SSI driver that broke some systems. - A fix for the cleanup path of the wm9713 driver. - A fix for some incorrect register definitions in the ADAU17x1 driver that caused misclocking in some configurations. - A fix for the tracepoints for jack detection to avoid using an internal field of the core jack structure which is no longer present in all configurations. - A fix for another of the new Intel drivers which tried to write to a string literal. commit 0f514e690740e54815441a87708c3326f8aa8709 Author: Mugunthan V N Date: Mon Mar 7 01:41:22 2016 -0700 ARM: dts: dra7: do not gate cpsw clock due to errata i877 Errata id: i877 Description: ------------ The RGMII 1000 Mbps Transmit timing is based on the output clock (rgmiin_txc) being driven relative to the rising edge of an internal clock and the output control/data (rgmiin_txctl/txd) being driven relative to the falling edge of an internal clock source. If the internal clock source is allowed to be static low (i.e., disabled) for an extended period of time then when the clock is actually enabled the timing delta between the rising edge and falling edge can change over the lifetime of the device. This can result in the device switching characteristics degrading over time, and eventually failing to meet the Data Manual Delay Time/Skew specs. To maintain RGMII 1000 Mbps IO Timings, SW should minimize the duration that the Ethernet internal clock source is disabled. Note that the device reset state for the Ethernet clock is "disabled". Other RGMII modes (10 Mbps, 100Mbps) are not affected Workaround: ----------- If the SoC Ethernet interface(s) are used in RGMII mode at 1000 Mbps, SW should minimize the time the Ethernet internal clock source is disabled to a maximum of 200 hours in a device life cycle. This is done by enabling the clock as early as possible in IPL (QNX) or SPL/u-boot (Linux/Android) by setting the register CM_GMAC_CLKSTCTRL[1:0]CLKTRCTRL = 0x2:SW_WKUP. So, do not allow to gate the cpsw clocks using ti,no-idle property in cpsw node assuming 1000 Mbps is being used all the time. If someone does not need 1000 Mbps and wants to gate clocks to cpsw, this property needs to be deleted in their respective board files. Signed-off-by: Mugunthan V N Signed-off-by: Grygorii Strashko Signed-off-by: Lokesh Vutla Cc: Signed-off-by: Paul Walmsley arch/arm/boot/dts/dra7.dtsi | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 2e18f5a1bc18e8af7031b3b26efde25307014837 Author: Lokesh Vutla Date: Mon Mar 7 01:41:21 2016 -0700 ARM: OMAP2+: hwmod: Introduce ti,no-idle dt property Introduce a dt property, ti,no-idle, that prevents an IP to idle at any point. This is to handle Errata i877, which tells that GMAC clocks cannot be disabled. Acked-by: Roger Quadros Tested-by: Mugunthan V N Signed-off-by: Lokesh Vutla Signed-off-by: Sekhar Nori Signed-off-by: Dave Gerlach Acked-by: Rob Herring Cc: Signed-off-by: Paul Walmsley Documentation/devicetree/bindings/arm/omap/omap.txt | 1 + arch/arm/mach-omap2/omap_hwmod.c | 9 ++++++++- arch/arm/mach-omap2/omap_hwmod.h | 3 +++ 3 files changed, 12 insertions(+), 1 deletion(-) commit 4de13d7ed6ffdcbb34317acaa9236f121176f5f8 Author: Parthasarathy Bhuvaragan Date: Thu Mar 3 17:54:54 2016 +0100 tipc: fix nullptr crash during subscription cancel commit 4d5cfcba2f6e ('tipc: fix connection abort during subscription cancel'), removes the check for a valid subscription before calling tipc_nametbl_subscribe(). This will lead to a nullptr exception when we process a subscription cancel request. For a cancel request, a null subscription is passed to tipc_nametbl_subscribe() resulting in exception. In this commit, we call tipc_nametbl_subscribe() only for a valid subscription. Fixes: 4d5cfcba2f6e ('tipc: fix connection abort during subscription cancel') Reported-by: Anders Widell Signed-off-by: Parthasarathy Bhuvaragan Acked-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/subscr.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 11f7f79b40ebfbac6a1bcdbc61d5d13d365e744b Author: Colin Ian King Date: Thu Mar 3 13:47:18 2016 +0000 net: eth: altera: do not free array priv->mdio->irq priv->mdio->irq used to be allocated and required freeing, but it is now a fixed sized array and should no longer be free'd. Issue detected using static analysis with CoverityScan Fixes: e7f4dc3536a400 ("mdio: Move allocation of interrupts into core") Signed-off-by: Colin Ian King Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/ethernet/altera/altera_tse_main.c | 1 - 1 file changed, 1 deletion(-) commit 57a0f3675489181c31636d204fa5c5daf5fa3c83 Author: Colin Ian King Date: Thu Mar 3 13:43:34 2016 +0000 net/ethoc: do not free array priv->mdio->irq priv->mdio->irq used to be allocated and required freeing, but it is now a fixed sized array and should no longer be free'd. Issue detected using static analysis with CoverityScan Fixes: e7f4dc3536a400 ("mdio: Move allocation of interrupts into core") Signed-off-by: Colin Ian King Reviewed-by: Tobias Klauser Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/ethernet/ethoc.c | 1 - 1 file changed, 1 deletion(-) commit 44ef548f4f8bbc739070583f9844ff0cd8fcc6b4 Author: Phil Sutter Date: Thu Mar 3 14:34:14 2016 +0100 net: sched: fix act_ipt for LOG target Before calling the destroy() or target() callbacks, the family parameter field has to be initialized. Otherwise at least the LOG target will refuse to work and upon removal oops the kernel. Cc: Jamal Hadi Salim Signed-off-by: Phil Sutter Acked-by: Jamal Hadi Salim Signed-off-by: David S. Miller net/sched/act_ipt.c | 2 ++ 1 file changed, 2 insertions(+) commit eb1f420214adf81fd98d9e8df6b60318ef883102 Author: Colin Ian King Date: Thu Mar 3 13:27:56 2016 +0000 asix: do not free array priv->mdio->irq Used to be allocated and required freeing, but now priv->mdio->irq is now a fixed sized array and should no longer be free'd. Issue detected using static analysis with CoverityScan Fixes: e7f4dc3536a400 ("mdio: Move allocation of interrupts into core") Signed-off-by: Colin Ian King Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/usb/ax88172a.c | 1 - 1 file changed, 1 deletion(-) commit 7bfc60822d1cd44069f4fdb16f81a66f716bf787 Author: Atsushi Nemoto Date: Thu Mar 3 09:07:51 2016 +0900 gianfar: Enable eTSEC-106 erratum w/a for MPC8548E Rev2 Enable workaround for MPC8548E erratum eTSEC 106, "Excess delays when transmitting TOE=1 large frames". (see commit 53fad77375ce "gianfar: Enable eTSEC-20 erratum w/a for P2020 Rev1") This erratum was fixed in Rev 3.1.x. Signed-off-by: Atsushi Nemoto Acked-by: Claudiu Manoil Signed-off-by: David S. Miller drivers/net/ethernet/freescale/gianfar.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit f6cede5b49e822ebc41a099fe41ab4989f64e2cb Author: Linus Torvalds Date: Sun Mar 6 14:48:03 2016 -0800 Linux 4.5-rc7 Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d55e08c8448def74ae4236cd6e1c3714d78f5abd Merge: dd273a8 f3c87e9 Author: Linus Torvalds Date: Sun Mar 6 14:14:54 2016 -0800 Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC fix from Olof Johansson: "Tiny fixes branch this week, in fact only one patch. Turns out the USB support for a Renesas board was developed on a pre-release board that ended up being changed before shipping. To avoid breakage on those boards, and avoid confusion, it's a reasonable idea to patch now instead of later. There are no known users of the pre-release variant any more" * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: ARM: dts: porter: remove enable prop from HS-USB device node commit dd273a8071124c2235c45d2ca756acc90ca31ed3 Merge: 21b27a7 f474c8c Author: Linus Torvalds Date: Sun Mar 6 13:51:27 2016 -0800 Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm Pull ARM fixes from Russell King: "Just two ARM fixes this time: one to fix the hyp-stub for older ARM CPUs, and another to fix the set_memory_xx() permission functions to deal with zero sizes correctly" * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: ARM: 8544/1: set_memory_xx fixes ARM: 8534/1: virt: fix hyp-stub build for pre-ARMv7 CPUs commit 7f6aff3a29b08fc4234c8136eb1ac31b4897522c Author: Brian Foster Date: Mon Mar 7 08:22:22 2016 +1100 xfs: only run torn log write detection on dirty logs XFS uses CRC verification over a sub-range of the head of the log to detect and handle torn writes. This torn log write detection currently runs unconditionally at mount time, regardless of whether the log is dirty or clean. This is problematic in cases where a filesystem might end up being moved across different, incompatible (i.e., opposite byte-endianness) architectures. The problem lies in the fact that log data is not necessarily written in an architecture independent format. For example, certain bits of data are written in native endian format. Further, the size of certain log data structures differs (i.e., struct xlog_rec_header) depending on the word size of the cpu. This leads to false positive crc verification errors and ultimately failed mounts when a cleanly unmounted filesystem is mounted on a system with an incompatible architecture from data that was written near the head of the log. Update the log head/tail discovery code to run torn write detection only when the log is not clean. This means something other than an unmount record resides at the head of the log and log recovery is imminent. It is a requirement to run log recovery on the same type of host that had written the content of the dirty log and therefore CRC failures are legitimate corruptions in that scenario. Reported-by: Jan Beulich Tested-by: Jan Beulich Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_log_recover.c | 42 +++++++++++++++++++++++++++++++----------- 1 file changed, 31 insertions(+), 11 deletions(-) commit 717bc0ebca0bce9cb3edfc31b49b384a1d55db1c Author: Brian Foster Date: Mon Mar 7 08:22:22 2016 +1100 xfs: refactor in-core log state update to helper Once the record at the head of the log is identified and verified, the in-core log state is updated based on the record. This includes information such as the current head block and cycle, the start block of the last record written to the log, the tail lsn, etc. Once torn write detection is conditional, this logic will need to be reused. Factor the code to update the in-core log data structures into a new helper function. This patch does not change behavior. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_log_recover.c | 52 ++++++++++++++++++++++++++++++------------------ 1 file changed, 33 insertions(+), 19 deletions(-) commit 65b99a08b350876e8835fc0e7173598165f64dee Author: Brian Foster Date: Mon Mar 7 08:22:22 2016 +1100 xfs: refactor unmount record detection into helper Once the mount sequence has identified the head and tail blocks of the physical log, the record at the head of the log is located and examined for an unmount record to determine if the log is clean. This currently occurs after torn write verification of the head region of the log. This must ultimately be separated from torn write verification and may need to be called again if the log head is walked back due to a torn write (to determine whether the new head record is an unmount record). Separate this logic into a new helper function. This patch does not change behavior. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_log_recover.c | 153 ++++++++++++++++++++++++++++------------------- 1 file changed, 93 insertions(+), 60 deletions(-) commit 82ff6cc26e98f9bba8e2a10f727e335fa241cc47 Author: Brian Foster Date: Mon Mar 7 08:22:22 2016 +1100 xfs: separate log head record discovery from verification The code that locates the log record at the head of the log is buried in the log head verification function. This is fine when torn write verification occurs unconditionally, but this behavior is problematic for filesystems that might be moved across systems with different architectures. In preparation for separating examination of the log head for unmount records from torn write detection, lift the record location logic out of the log verification function and into the caller. This patch does not change behavior. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_log_recover.c | 42 ++++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 22 deletions(-) commit 21b27a74ec0f4e52e001912c89570a49494705a2 Merge: a58b9ad 5ea5c5e Author: Linus Torvalds Date: Sun Mar 6 11:31:13 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client Pull ceph fix from Sage Weil: "This is a final commit we missed to align the protocol compatibility with the feature bits. It decodes a few extra fields in two different messages and reports EIO when they are used (not yet supported)" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: ceph: initial CEPH_FEATURE_FS_FILE_LAYOUT_V2 support commit a58b9adaf9f0913af2e5bf69565266335033b4fd Merge: 1306b04 e4f6daa Author: Linus Torvalds Date: Sun Mar 6 11:24:05 2016 -0800 Merge tag 'upstream-4.5-rc7' of git://git.infradead.org/linux-ubifs Pull UBI fix from Richard Weinberger: "This contains a single bug fix for UBI" * tag 'upstream-4.5-rc7' of git://git.infradead.org/linux-ubifs: ubi: Fix out of bounds write in volume update code commit 1306b0471ff11409e4f18f3cde00215d367e007a Merge: 76d9c6c ad32a1f Author: Linus Torvalds Date: Sun Mar 6 11:19:28 2016 -0800 Merge branch 'for-linus-4.5-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml Pull UML fixes from Richard Weinberger: "This contains three bug/build fixes" * 'for-linus-4.5-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml: um: use %lx format specifiers for unsigned longs um: Export pm_power_off Revert "um: Fix get_signal() usage" commit 76d9c6c1c6eb115c2c686d5cbf10a68857511853 Merge: b8155fe e723e3f Author: Linus Torvalds Date: Sun Mar 6 11:14:16 2016 -0800 Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus Pull MIPS fixes from Ralf Baechle: "Another round of fixes for 4.5: - Fix the use of an undocumented syntactial variant of the .type pseudo op which is not supported by the LLVM assembler. - Fix invalid initialization on S-cache-less systems. - Fix possible information leak from the kernel stack for SIGFPE. - Fix handling of copy_{from,to}_user() return value in KVM - Fix the last instance of irq_to_gpio() which now was causing build errors" * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: MIPS: traps: Fix SIGFPE information leak from `do_ov' and `do_trap_or_bp' MIPS: kvm: Fix ioctl error handling. MIPS: scache: Fix scache init with invalid line size. MIPS: Avoid variant of .type unsupported by LLVM Assembler MIPS: jz4740: Fix surviving instance of irq_to_gpio() commit b8155fe1b2963ab2c53140929eb2362afcb9ccfe Merge: 7addb7f 37c5e94 Author: Linus Torvalds Date: Sun Mar 6 11:08:06 2016 -0800 Merge tag 'powerpc-4.5-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux Pull powerpc fixes from Michael Ellerman: - cxl: Fix PSL timebase synchronization detection from Frederic Barrat - Fix oops when destroying hw_breakpoint event from Ravi Bangoria - Avoid lbarx on e5500 from Scott Wood * tag 'powerpc-4.5-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: powerpc/fsl-book3e: Avoid lbarx on e5500 powerpc/hw_breakpoint: Fix oops when destroying hw_breakpoint event cxl: Fix PSL timebase synchronization detection commit 7addb7fa1085e29398c2aef43f0b98c3c4b7e749 Merge: 3e09b7e 7314d22 Author: Linus Torvalds Date: Sun Mar 6 11:03:34 2016 -0800 Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux Pull i2c fix from Wolfram Sang: "One I2C bugfix ensuring correct memory allocation in a driver" * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: i2c: brcmstb: allocate correct amount of memory for regmap commit 3e09b7e93dae6cd9fcabc5dd36fc6973d3049c30 Merge: 6794402 861c384 Author: Linus Torvalds Date: Sun Mar 6 10:50:00 2016 -0800 Merge tag 'usb-4.5-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb Pull USB fixes from Greg KH: "Here are some USB driver ids for 4.5-rc7, and the removal of a driver we merged in 4.5-rc1 but it turns out it's not needed as the hardware is the same as a driver we already have in the tree. This was only figured out after doing a lot of cleanup on it, gotta love vendor-provided drivers... The new device ids for the devices for this driver will be added later on when testing is completed, but for now, we will remove the driver to keep people from accidentally cleaning it up. All of these have been in linux-next for a while with no reported issues" * tag 'usb-4.5-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: USB: qcserial: add Sierra Wireless EM74xx device ID Revert "USB: serial: add Moxa UPORT 11x0 driver" USB: serial: option: add support for Quectel UC20 USB: serial: option: add support for Telit LE922 PID 0x1045 USB: cp210x: Add ID for Parrot NMEA GPS Flight Recorder USB: qcserial: add Dell Wireless 5809e Gobi 4G HSPA+ (rev3) usb: chipidea: otg: change workqueue ci_otg as freezable commit 7f54ab5ff52fb0b91569bc69c4a6bc5cac1b768d Author: Nicholas Bellinger Date: Sat Mar 5 20:00:12 2016 -0800 target: Drop incorrect ABORT_TASK put for completed commands This patch fixes a recent ABORT_TASK regression associated with commit febe562c, where a left-over target_put_sess_cmd() would still be called when __target_check_io_state() detected a command has already been completed, and explicit ABORT must be avoided. Note commit febe562c dropped the local kref_get_unless_zero() check in core_tmr_abort_task(), but did not drop this extra corresponding target_put_sess_cmd() in the failure path. So go ahead and drop this now bogus target_put_sess_cmd(), and avoid this potential use-after-free. Reported-by: Dan Lane Cc: Quinn Tran Cc: Himanshu Madhani Cc: Sagi Grimberg Cc: Christoph Hellwig Cc: Hannes Reinecke Cc: Andy Grover Cc: Mike Christie Cc: stable@vger.kernel.org # 3.14+ Signed-off-by: Nicholas Bellinger drivers/target/target_core_tmr.c | 1 - 1 file changed, 1 deletion(-) commit ad32a1f3c36b046b2e7b0361b88c18e3af61419e Author: Colin Ian King Date: Sat Jan 23 19:17:59 2016 +0000 um: use %lx format specifiers for unsigned longs static analysis from cppcheck detected %x being used for unsigned longs: [arch/x86/um/os-Linux/task_size.c:112]: (warning) %x in format string (no. 1) requires 'unsigned int' but the argument type is 'unsigned long'. Use %lx instead of %x Signed-off-by: Colin Ian King Signed-off-by: Richard Weinberger arch/x86/um/os-Linux/task_size.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0834f9cc9f1c5a104e87000378b9cda290c4f406 Author: Richard Weinberger Date: Mon Jan 25 23:24:21 2016 +0100 um: Export pm_power_off ...modules are using this symbol. Export it like all other archs to. Signed-off-by: Richard Weinberger arch/um/kernel/reboot.c | 1 + 1 file changed, 1 insertion(+) commit 322740efbb7ca26df845161e61cc41484b7e328e Author: Richard Weinberger Date: Mon Jan 25 23:33:30 2016 +0100 Revert "um: Fix get_signal() usage" Commit db2f24dc240856fb1d78005307f1523b7b3c121b was plain wrong. I did not realize the we are allowed to loop here. In fact we have to loop and must not return to userspace before all SIGSEGVs have been delivered. Other archs do this directly in their entry code, UML does it here. Reported-by: Al Viro Signed-off-by: Richard Weinberger arch/um/kernel/signal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e4f6daac20332448529b11f09388f1d55ef2084c Author: Richard Weinberger Date: Sun Feb 21 10:53:03 2016 +0100 ubi: Fix out of bounds write in volume update code ubi_start_leb_change() allocates too few bytes. ubi_more_leb_change_data() will write up to req->upd_bytes + ubi->min_io_size bytes. Cc: stable@vger.kernel.org Signed-off-by: Richard Weinberger Reviewed-by: Boris Brezillon drivers/mtd/ubi/upd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 67944024c1cdd897e49a09b0d6af3ea38d1388ca Merge: 40fea2e 790b415 Author: Linus Torvalds Date: Sat Mar 5 12:35:48 2016 -0800 Merge tag 'sound-4.5-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "It's our tradition to get a high volume of fixes late at rc7: this time, X32 ABI breakage was found and this resulted in a high number LOCs. The necessary changes to ALSA core codes were fairly straightforward, and more importantly, they are specific to X32, thus should be safe to apply. Other than that, rather a collection of small fixes: - Removal of the code that blocks too long at closing the OSS sequencer client (which was spotted by syzkaller, unsurprisingly) - Fixes races at HD-audio HDMI i915 audio binding - a few HDSP/HDPM zero-division fixes - Quirks for HD-audio and USB-audio as usual" * tag 'sound-4.5-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: hda - hdmi defer to register acomp eld notifier ALSA: hda - hdmi add wmb barrier for audio component ALSA: hda - Fix mic issues on Acer Aspire E1-472 ALSA: seq: oss: Don't drain at closing a client ALSA: usb-audio: Add a quirk for Plantronics DA45 ALSA: hdsp: Fix wrong boolean ctl value accesses ALSA: hdspm: Fix zero-division ALSA: hdspm: Fix wrong boolean ctl value accesses ALSA: timer: Fix ioctls for X32 ABI ALSA: timer: Fix broken compat timer user status ioctl ALSA: rawmidi: Fix ioctls X32 ABI ALSA: rawmidi: Use comapt_put_timespec() ALSA: pcm: Fix ioctls for X32 ABI ALSA: ctl: Fix ioctls for X32 ABI commit 40fea2ed0bcedcab6a7c318f4be2df2bcab4f2eb Merge: ee8f395 f169212 Author: Linus Torvalds Date: Sat Mar 5 12:34:29 2016 -0800 Merge tag 'dmaengine-fix-4.5-rc7' of git://git.infradead.org/users/vkoul/slave-dma Pull dmaengine fix from Vinod Koul: "One minor fix on pxa driver to fix the cyclic dma tranfers" * tag 'dmaengine-fix-4.5-rc7' of git://git.infradead.org/users/vkoul/slave-dma: dmaengine: pxa_dma: fix cyclic transfers commit ee8f3955c0ef4c7a90a5f707c37c4cb3711ff626 Merge: a7c9b60 fbe093a Author: Linus Torvalds Date: Sat Mar 5 12:32:34 2016 -0800 Merge tag 'media/v4.5-4' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media Pull media fixes from Mauro Carvalho Chehab: - some last time changes before we stablize the new entity function integer numbers at uAPI - probe: fix erroneous return value on i2c/adp1653 driver - fix tx 5v detect regression on adv7604 driver - fix missing unlock on error in vpfe_prepare_pipeline() on davinci_vpfe driver * tag 'media/v4.5-4' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: [media] media: Sanitise the reserved fields of the G_TOPOLOGY IOCTL arguments [media] media.h: postpone connectors entities [media] media.h: use hex values for range offsets, move connectors base up. [media] adv7604: fix tx 5v detect regression [media] media.h: get rid of MEDIA_ENT_F_CONN_TEST [media] [for,v4.5] media.h: increase the spacing between function ranges [media] media: i2c/adp1653: probe: fix erroneous return value [media] media: davinci_vpfe: fix missing unlock on error in vpfe_prepare_pipeline() commit 1e1490a38504419e349caa1b7d55d5c141a9bccb Author: Mario Kleiner Date: Tue Mar 1 21:31:17 2016 +0100 drm/radeon: Fix error handling in radeon_flip_work_func. This is a port of the patch "drm/amdgpu: Fix error handling in amdgpu_flip_work_func." to fix the following problem for radeon as well which was reported against amdgpu: The patch e1d09dc0ccc6: "drm/amdgpu: Don't hang in amdgpu_flip_work_func on disabled crtc." from Feb 19, 2016, leads to the following static checker warning, as reported by Dan Carpenter in https://lists.freedesktop.org/archives/dri-devel/2016-February/101987.html drivers/gpu/drm/amd/amdgpu/amdgpu_display.c:127 amdgpu_flip_work_func() warn: should this be 'repcnt == -1' drivers/gpu/drm/amd/amdgpu/amdgpu_display.c:136 amdgpu_flip_work_func() error: double unlock 'spin_lock:&crtc->dev->event_lock' drivers/gpu/drm/amd/amdgpu/amdgpu_display.c:136 amdgpu_flip_work_func() error: double unlock 'irqsave:flags' This patch fixes both reported problems: Change post-decrement of repcnt to pre-decrement, so it can't underflow anymore, but still performs up to three repetitions - three is the maximum one could expect in practice. Move the spin_unlock_irqrestore to where it actually belongs. Reviewed-by: Michel Dänzer Reported-by: Dan Carpenter Signed-off-by: Mario Kleiner Cc: # 4.4+ Cc: Michel Dänzer Cc: Alex Deucher Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon_display.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 90e94b160c7f647ddffda707f5e3c0c66c170df8 Author: Mario Kleiner Date: Tue Mar 1 21:31:16 2016 +0100 drm/amdgpu: Fix error handling in amdgpu_flip_work_func. The patch e1d09dc0ccc6: "drm/amdgpu: Don't hang in amdgpu_flip_work_func on disabled crtc." from Feb 19, 2016, leads to the following static checker warning, as reported by Dan Carpenter in https://lists.freedesktop.org/archives/dri-devel/2016-February/101987.html drivers/gpu/drm/amd/amdgpu/amdgpu_display.c:127 amdgpu_flip_work_func() warn: should this be 'repcnt == -1' drivers/gpu/drm/amd/amdgpu/amdgpu_display.c:136 amdgpu_flip_work_func() error: double unlock 'spin_lock:&crtc->dev->event_lock' drivers/gpu/drm/amd/amdgpu/amdgpu_display.c:136 amdgpu_flip_work_func() error: double unlock 'irqsave:flags' This patch fixes both reported problems: Change post-decrement of repcnt to pre-decrement, so it can't underflow anymore, but still performs up to three repetitions - three is the maximum one could expect in practice. Move the spin_unlock_irqrestore to where it actually belongs. Reviewed-by: Michel Dänzer Reported-by: Dan Carpenter Signed-off-by: Mario Kleiner Cc: # 4.4+ Cc: Michel Dänzer Cc: Alex Deucher Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 02db17ff376893f65f45974b0897e70e6695034e Merge: b23229e 251d604 8019c0b 8293004 39a79fe da9b930 Author: Mark Brown Date: Sat Mar 5 21:27:13 2016 +0900 Merge remote-tracking branches 'asoc/fix/wm8985', 'asoc/fix/wm8994', 'asoc/fix/wm8996', 'asoc/fix/wm9081' and 'asoc/fix/wm9713' into asoc-linus commit b23229e4d5d883652160b061c52743482de8f82c Merge: 3b22371 316fa9e 8733f99 154a0fd 0cad105 c41a024 d078482 b5ab265 Author: Mark Brown Date: Sat Mar 5 21:26:58 2016 +0900 Merge remote-tracking branches 'asoc/fix/samsung', 'asoc/fix/tlv320dac33', 'asoc/fix/wl1273', 'asoc/fix/wm8753', 'asoc/fix/wm8904', 'asoc/fix/wm8958' and 'asoc/fix/wm8983' into asoc-linus commit 3b22371e202d2c2f48bb4192879cf611e91a97be Merge: 92e9f77 f4833a5 9af3904 58c0213 f4d438e 419396d a947b72 Author: Mark Brown Date: Sat Mar 5 21:26:45 2016 +0900 Merge remote-tracking branches 'asoc/fix/jack', 'asoc/fix/max98088', 'asoc/fix/max98095', 'asoc/fix/omap', 'asoc/fix/pxa' and 'asoc/fix/qcom-be' into asoc-linus commit 92e9f77306e3dddb707ae744333ea204c9727bac Merge: 6374fda 4b60631 7c139db 15c6657 89300b4 fe9aba1 56e5fd8 Author: Mark Brown Date: Sat Mar 5 21:26:33 2016 +0900 Merge remote-tracking branches 'asoc/fix/ab8500', 'asoc/fix/adau17x1', 'asoc/fix/adsp', 'asoc/fix/cs42l51', 'asoc/fix/da732x' and 'asoc/fix/fsl-ssi' into asoc-linus commit 6374fda1472524deaa492da1ce0adca600343996 Merge: 1c750eb 508ddfb Author: Mark Brown Date: Sat Mar 5 21:26:30 2016 +0900 Merge remote-tracking branch 'asoc/fix/intel' into asoc-linus commit 1c750eb580d332f740af456748de4b206e442c3b Merge: fc77dbd 741338f Author: Mark Brown Date: Sat Mar 5 21:26:28 2016 +0900 Merge remote-tracking branch 'asoc/fix/dapm' into asoc-linus commit a7c9b603cf2371edacb054abc35597e810c1e5fd Merge: c12f83c 6e2452d Author: Linus Torvalds Date: Fri Mar 4 18:47:18 2016 -0800 Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm Pull libnvcimm fix from Dan Williams: "One straggling fix for NVDIMM support. The KVM/QEMU enabling for NVDIMMs has recently reached the point where it is able to accept some ACPI _DSM requests from a guest VM. However they immediately found that the 4.5-rc kernel is unusable because the kernel's 'nfit' driver fails to load upon seeing a valid "not supported" response from the virtual BIOS for an address range scrub command. It is not mandatory that a platform implement address range scrubbing, so this fix from Vishal properly treats the 'not supported' response as 'skip scrubbing and continue loading the driver'" * 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: nfit: Continue init even if ARS commands are unimplemented commit c12f83c3099c4dd73fe721409d2ce18ca79a753d Merge: fab3e94 21b8171 Author: Linus Torvalds Date: Fri Mar 4 18:41:40 2016 -0800 Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi Pull SCSI fixes from James Bottomley: "Two fairly simple fixes. One is a regression with ipr firmware loading caused by one of the trivial patches in the last merge window which failed to strip the \n from the file name string, so now the firmware loader no longer works leading to a lot of unhappy ipr users; fix by stripping the \n. The second is a memory leak within SCSI: the BLK_PREP_INVALID state was introduced a recent fix but we forgot to account for it correctly when freeing state, resulting in memory leakage. Add the correct state freeing in scsi_prep_return()" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: ipr: Fix regression when loading firmware SCSI: Free resources when we return BLKPREP_INVALID commit fab3e94a624f6ac6c4d8b8dc027bb03818a6cf1b Merge: e5322c5 dc8b4af Author: Linus Torvalds Date: Fri Mar 4 18:31:36 2016 -0800 Merge branch 'for-4.5-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata Pull libata fixes from Tejun Heo: "Assorted fixes for libata drivers. - Turns out HDIO_GET_32BIT ioctl was subtly broken all along. - Recent update to ahci external port handling was incorrectly marking hotpluggable ports as external making userland handle devices connected to those ports incorrectly. - ahci_xgene needs its own irq handler to work around a hardware erratum. libahci updated to allow irq handler override. - Misc driver specific updates" * 'for-4.5-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata: ata: ahci: don't mark HotPlugCapable Ports as external/removable ahci: Workaround for ThunderX Errata#22536 libata: Align ata_device's id on a cacheline Adding Intel Lewisburg device IDs for SATA pata-rb532-cf: get rid of the irq_to_gpio() call libata: fix HDIO_GET_32BIT ioctl ahci_xgene: Implement the workaround to fix the missing of the edge interrupt for the HOST_IRQ_STAT. ata: Remove the AHCI_HFLAG_EDGE_IRQ support from libahci. libahci: Implement the capability to override the generic ahci interrupt handler. commit e5322c54068162846fdbac0f0891cd95f37d4c4e Merge: bdf9d29 4d6af73 Author: Linus Torvalds Date: Fri Mar 4 18:17:17 2016 -0800 Merge branch 'for-linus2' of git://git.kernel.dk/linux-block Pull block fixes from Jens Axboe: "Round 2 of this. I cut back to the bare necessities, the patch is still larger than it usually would be at this time, due to the number of NVMe fixes in there. This pull request contains: - The 4 core fixes from Ming, that fix both problems with exceeding the virtual boundary limit in case of merging, and the gap checking for cloned bio's. - NVMe fixes from Keith and Christoph: - Regression on larger user commands, causing problems with reading log pages (for instance). This touches both NVMe, and the block core since that is now generally utilized also for these types of commands. - Hot removal fixes. - User exploitable issue with passthrough IO commands, if !length is given, causing us to fault on writing to the zero page. - Fix for a hang under error conditions - And finally, the current series regression for umount with cgroup writeback, where the final flush would happen async and hence open up window after umount where the device wasn't consistent. fsck right after umount would show this. From Tejun" * 'for-linus2' of git://git.kernel.dk/linux-block: block: support large requests in blk_rq_map_user_iov block: fix blk_rq_get_max_sectors for driver private requests nvme: fix max_segments integer truncation nvme: set queue limits for the admin queue writeback: flush inode cgroup wb switches instead of pinning super_block NVMe: Fix 0-length integrity payload NVMe: Don't allow unsupported flags NVMe: Move error handling to failed reset handler NVMe: Simplify device reset failure NVMe: Fix namespace removal deadlock NVMe: Use IDA for namespace disk naming NVMe: Don't unmap controller registers on reset block: merge: get the 1st and last bvec via helpers block: get the 1st and last bvec via helpers block: check virt boundary in bio_will_gap() block: bio: introduce helpers to get the 1st and last bvec commit bdf9d29799296fd787a9d2b99cb8feff77e2b9db Merge: 638c201 11d8d64 Author: Linus Torvalds Date: Fri Mar 4 18:06:49 2016 -0800 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma Pull rdma fixes from Doug Ledford: "Additional 4.5-rc6 fixes. I have four patches today. I had previously thought I had submitted two of them last week, but they were accidentally skipped :-(. - One fix to an error path in the core - One fix for RoCE in the core - Two related fixes for the core/mlx5" * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: IB/core: Use GRH when the path hop-limit > 0 IB/{core, mlx5}: Fix input len in vendor part of create_qp/srq IB/mlx5: Avoid using user-index for SRQs IB/core: Fix missed clean call in registration path commit 638c201e3fffd2699e58305030d58730355ece12 Merge: b80e8e2 26bae5e Author: Linus Torvalds Date: Fri Mar 4 17:56:48 2016 -0800 Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux Pull drm fixes from Dave Airlie: "This contains one i915 patch twice, as I merged it locally for testing, and then pulled some stuff in on top, and then Jani sent to me, I didn't think it was worth redoing all the merges of what I had tested. Summary: - amdgpu/radeon fixes for some more power management and VM races. - Two i915 fixes, one for the a recent regression, one another power management fix for skylake. - Two tegra dma mask fixes for a regression. - One ast fix for a typo I made transcribing the userspace driver, that I'd like to get into stable so I don't forget about it" * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: gpu: host1x: Set DMA ops on device creation gpu: host1x: Set DMA mask drm/amdgpu: return from atombios_dp_get_dpcd only when error drm/amdgpu/cz: remove commented out call to enable vce pg drm/amdgpu/powerplay/cz: enable/disable vce dpm independent of vce pg drm/amdgpu/cz: enable/disable vce dpm even if vce pg is disabled drm/amdgpu/gfx8: specify which engine to wait before vm flush drm/amdgpu: apply gfx_v8 fixes to gfx_v7 as well drm/amd/powerplay: send event to notify powerplay all modules are initialized. drm/amd/powerplay: export AMD_PP_EVENT_COMPLETE_INIT task to amdgpu. drm/radeon/pm: update current crtc info after setting the powerstate drm/amdgpu/pm: update current crtc info after setting the powerstate drm/i915: Balance assert_rpm_wakelock_held() for !IS_ENABLED(CONFIG_PM) drm/i915/skl: Fix power domain suspend sequence drm/ast: Fix incorrect register check for DRAM width drm/i915: Balance assert_rpm_wakelock_held() for !IS_ENABLED(CONFIG_PM) commit b80e8e2811ecb2ace7ff851d887fe8b6db4425bf Merge: ed385c7 bfc6b97 Author: Linus Torvalds Date: Fri Mar 4 17:51:16 2016 -0800 Merge tag 'pm+acpi-4.5-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull power management and ACPI fixes from Rafael Wysocki: "Two build fixes for cpufreq drivers (including one for breakage introduced recently) and a fix for a graph tracer crash when used over suspend-to-RAM on x86. Specifics: - Prevent the graph tracer from crashing when used over suspend-to- RAM on x86 by pausing it before invoking do_suspend_lowlevel() and un-pausing it when that function has returned (Todd Brandt). - Fix build issues in the qoriq and mediatek cpufreq drivers related to broken dependencies on THERMAL (Arnd Bergmann)" * tag 'pm+acpi-4.5-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: PM / sleep / x86: Fix crash on graph trace through x86 suspend cpufreq: mediatek: allow building as a module cpufreq: qoriq: allow building as module with THERMAL=m commit ed385c7a1752e6a87622e5a2a80808cfb8917305 Merge: c51797d dfd55ad Author: Linus Torvalds Date: Fri Mar 4 17:43:40 2016 -0800 Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux Pull arm64 fix from Will Deacon: "Arm64 fix for -rc7. Without it, our struct page array can overflow the vmemmap region on systems with a large PHYS_OFFSET. Nothing else on the radar at the moment, so hopefully that's it for 4.5 from us. Summary: Ensure struct page array fits within vmemmap area" * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: arm64: vmemmap: use virtual projection of linear region commit c51797d25d84833804e9e6950c8c1abbe6c73808 Merge: 2cdcb2b 44248af Author: Linus Torvalds Date: Fri Mar 4 17:36:46 2016 -0800 Merge tag 'for-linus-20160304' of git://git.infradead.org/linux-mtd Pull jffs2 fixes from David Woodhouse: "This contains two important JFFS2 fixes marked for stable: - a lock ordering problem between the page lock and the internal f->sem mutex, which was causing occasional deadlocks in garbage collection - a scan failure causing moved directories to sometimes end up appearing to have hard links. There are also a couple of trivial MAINTAINERS file updates" * tag 'for-linus-20160304' of git://git.infradead.org/linux-mtd: MAINTAINERS: add maintainer entry for FREESCALE GPMI NAND driver Fix directory hardlinks from deleted directories jffs2: Fix page lock / f->sem deadlock Revert "jffs2: Fix lock acquisition order bug in jffs2_write_begin" MAINTAINERS: update Han's email commit 2cdcb2b5b5d6d7c1bdefbc1a63187d47fd809408 Merge: 78baab7 909c3a2 Author: Linus Torvalds Date: Fri Mar 4 17:31:32 2016 -0800 Merge branch 'for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs Pull btrfs fix from Chris Mason: "Filipe nailed down a problem where tree log replay would do some work that orphan code wasn't expecting to be done yet, leading to BUG_ON" * 'for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: Btrfs: fix loading of orphan roots leading to BUG_ON commit c57753d4541d5104284abbdceb841e690394e55f Author: Jorge Ramirez-Ortiz Date: Tue Mar 1 16:04:00 2016 -0500 mtd: nand: tests: fix regression introduced in mtd_nandectest Offending Commit: 6e94119 "mtd: nand: return consistent error codes in ecc.correct() implementations" The new error code was not being handled properly in double bit error detection. Signed-off-by: Jorge Ramirez-Ortiz Reviewed-by: Boris Brezillon Tested-by: Franklin S Cooper Jr Signed-off-by: Brian Norris drivers/mtd/tests/mtd_nandecctest.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 78baab7aa843ef01644195d341bee118cbe4bf19 Merge: e3c2ef4 e57cbaf Author: Linus Torvalds Date: Fri Mar 4 16:57:04 2016 -0800 Merge tag 'trace-fixes-v4.5-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace Pull tracing fix from Steven Rostedt: "A feature was added in 4.3 that allowed users to filter trace points on a tasks "comm" field. But this prevented filtering on a comm field that is within a trace event (like sched_migrate_task). When trying to filter on when a program migrated, this change prevented the filtering of the sched_migrate_task. To fix this, the event fields are examined first, and then the extra fields like "comm" and "cpu" are examined. Also, instead of testing to assign the comm filter function based on the field's name, the generic comm field is given a new filter type (FILTER_COMM). When this field is used to filter the type is checked. The same is done for the cpu filter field. Two new special filter types are added: "COMM" and "CPU". This allows users to still filter the tasks comm for events that have "comm" as one of their fields, in cases that users would like to filter sched_migrate_task on the comm of the task that called the event, and not the comm of the task that is being migrated" * tag 'trace-fixes-v4.5-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: tracing: Do not have 'comm' filter override event 'comm' field commit 6e2452dff4441e3dc24d415c8b2cda8a3ba52116 Author: Vishal Verma Date: Thu Mar 3 15:39:41 2016 -0700 nfit: Continue init even if ARS commands are unimplemented If firmware doesn't implement any of the ARS commands, take that to mean that ARS is unsupported, and continue to initialize regions without bad block lists. We cannot make the assumption that ARS commands will be unconditionally supported on all NVDIMMs. Reported-by: Haozhong Zhang Signed-off-by: Vishal Verma Acked-by: Xiao Guangrong Tested-by: Haozhong Zhang Signed-off-by: Dan Williams drivers/acpi/nfit.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit f474c8c857d996f34c39f66bbed23faaa739fad6 Author: Mika Penttilä Date: Mon Feb 22 17:56:52 2016 +0100 ARM: 8544/1: set_memory_xx fixes Allow zero size updates. This makes set_memory_xx() consistent with x86, s390 and arm64 and makes apply_to_page_range() not to BUG() when loading modules. Signed-off-by: Mika Penttilä mika.penttila@nextfour.com Signed-off-by: Russell King arch/arm/mm/pageattr.c | 3 +++ 1 file changed, 3 insertions(+) commit 26bae5e04c3570728787f809b13546a8169fdf95 Merge: 0dff973 c95469a Author: Dave Airlie Date: Sat Mar 5 07:53:25 2016 +1000 Merge tag 'drm/tegra/for-4.5-rc7' of git://anongit.freedesktop.org/tegra/linux into drm-fixes drm/tegra: Fixes for v4.5-rc7 Two small fixes that restore PRIME support. * tag 'drm/tegra/for-4.5-rc7' of git://anongit.freedesktop.org/tegra/linux: gpu: host1x: Set DMA ops on device creation gpu: host1x: Set DMA mask commit e723e3f7f9591b79e8c56b3d7c5a204a9c571b55 Author: Maciej W. Rozycki Date: Fri Mar 4 01:42:49 2016 +0000 MIPS: traps: Fix SIGFPE information leak from `do_ov' and `do_trap_or_bp' Avoid sending a partially initialised `siginfo_t' structure along SIGFPE signals issued from `do_ov' and `do_trap_or_bp', leading to information leaking from the kernel stack. Signed-off-by: Maciej W. Rozycki Cc: stable@vger.kernel.org Signed-off-by: Ralf Baechle arch/mips/kernel/traps.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit bfc6b97d528def357adcbdadf71b21c8e5f7dbc4 Merge: fc77dbd 3c2002a 92f9e17 Author: Rafael J. Wysocki Date: Fri Mar 4 22:41:05 2016 +0100 Merge branches 'pm-cpufreq-fixes' and 'pm-sleep-fixes' * pm-cpufreq-fixes: cpufreq: mediatek: allow building as a module cpufreq: qoriq: allow building as module with THERMAL=m * pm-sleep-fixes: PM / sleep / x86: Fix crash on graph trace through x86 suspend commit 5ea5c5e0a7f70b256417d3b6e36bd9851504babd Author: Yan, Zheng Date: Sun Feb 14 18:06:41 2016 +0800 ceph: initial CEPH_FEATURE_FS_FILE_LAYOUT_V2 support Add support for the format change of MClientReply/MclientCaps. Also add code that denies access to inodes with pool_ns layouts. Signed-off-by: Yan, Zheng Reviewed-by: Sage Weil fs/ceph/addr.c | 4 ++++ fs/ceph/caps.c | 27 ++++++++++++++++++++++++--- fs/ceph/inode.c | 2 ++ fs/ceph/mds_client.c | 16 ++++++++++++++++ fs/ceph/mds_client.h | 1 + fs/ceph/super.h | 1 + include/linux/ceph/ceph_features.h | 1 + 7 files changed, 49 insertions(+), 3 deletions(-) commit 390fd4fa9f1053e282e871af42eb32ba0ea76f88 Merge: c1bb0a5 d694b06 Author: David S. Miller Date: Fri Mar 4 14:32:47 2016 -0500 Merge tag 'linux-can-fixes-for-4.5-20160304' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can Marc Kleine-Budde says: ==================== pull-request: can 2016-03-04 this is a pull request for net/master. There is one patch from Ed Spiridonov, which increases the performance of the mcp251x SPI CAN driver, by avoiding to write to error flag register if it's unnecessary. ==================== Signed-off-by: David S. Miller commit c95469aa5a188384ccf8ac520ece931c66caf8aa Author: Alexandre Courbot Date: Fri Feb 26 18:06:53 2016 +0900 gpu: host1x: Set DMA ops on device creation Currently host1x-instanciated devices have their dma_ops left to NULL, which makes any DMA operation (like buffer import) on ARM64 fallback to the dummy_dma_ops and fail with an error. This patch calls of_dma_configure() with the host1x node when creating such a device, so the proper DMA operations are set. Suggested-by: Thierry Reding Signed-off-by: Alexandre Courbot Signed-off-by: Thierry Reding drivers/gpu/host1x/bus.c | 2 ++ 1 file changed, 2 insertions(+) commit 097452e61366a939a4772332181cea7cdcc74760 Author: Alexandre Courbot Date: Fri Feb 26 18:06:52 2016 +0900 gpu: host1x: Set DMA mask The default DMA mask covers a 32 bits address range, but host1x devices can address a larger range on TK1 and TX1. Set the DMA mask to the range addressable when we use the IOMMU to prevent the use of bounce buffers. Signed-off-by: Alexandre Courbot Signed-off-by: Thierry Reding drivers/gpu/host1x/dev.c | 7 +++++++ drivers/gpu/host1x/dev.h | 1 + 2 files changed, 8 insertions(+) commit e57cbaf0eb006eaa207395f3bfd7ce52c1b5539c Author: Steven Rostedt (Red Hat) Date: Thu Mar 3 17:18:20 2016 -0500 tracing: Do not have 'comm' filter override event 'comm' field Commit 9f61668073a8d "tracing: Allow triggers to filter for CPU ids and process names" added a 'comm' filter that will filter events based on the current tasks struct 'comm'. But this now hides the ability to filter events that have a 'comm' field too. For example, sched_migrate_task trace event. That has a 'comm' field of the task to be migrated. echo 'comm == "bash"' > events/sched_migrate_task/filter will now filter all sched_migrate_task events for tasks named "bash" that migrates other tasks (in interrupt context), instead of seeing when "bash" itself gets migrated. This fix requires a couple of changes. 1) Change the look up order for filter predicates to look at the events fields before looking at the generic filters. 2) Instead of basing the filter function off of the "comm" name, have the generic "comm" filter have its own filter_type (FILTER_COMM). Test against the type instead of the name to assign the filter function. 3) Add a new "COMM" filter that works just like "comm" but will filter based on the current task, even if the trace event contains a "comm" field. Do the same for "cpu" field, adding a FILTER_CPU and a filter "CPU". Cc: stable@vger.kernel.org # v4.3+ Fixes: 9f61668073a8d "tracing: Allow triggers to filter for CPU ids and process names" Reported-by: Matt Fleming Signed-off-by: Steven Rostedt include/linux/trace_events.h | 2 ++ kernel/trace/trace_events.c | 14 ++++++++------ kernel/trace/trace_events_filter.c | 13 +++++++------ 3 files changed, 17 insertions(+), 12 deletions(-) commit d694b06c42a56c9610861ee0474b4d441af8ada6 Author: Ed Spiridonov Date: Fri Mar 4 09:07:27 2016 +0300 can: mcp251x: avoid write to error flag register if it's unnecessary Only two bits (RX0OVR and RX1OVR) are writable in EFLG, write is useless if these bits aren't set. Signed-off-by: Ed Spiridonov Signed-off-by: Marc Kleine-Budde drivers/net/can/spi/mcp251x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 790b415c98de62602810b0eedce26f0f9d6ddd78 Author: Libin Yang Date: Fri Mar 4 14:33:43 2016 +0800 ALSA: hda - hdmi defer to register acomp eld notifier Defer to register acomp eld notifier until hdmi audio driver is fully ready. After registering eld notifier, gfx driver can use this callback function to notify audio driver the monitor connection event. However this action may happen when audio driver is adding the pins or doing other initialization. This is not always safe, however. For example, using per_pin->lock before the lock is initialized. Let's register the eld notifier after the initialization is done. Signed-off-by: Libin Yang Signed-off-by: Takashi Iwai sound/pci/hda/patch_hdmi.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit ec75a940b1037e877efd9a5a9e94eab1e464f73b Author: Libin Yang Date: Fri Mar 4 14:33:06 2016 +0800 ALSA: hda - hdmi add wmb barrier for audio component To make sure audio_ptr is set before intel_audio_codec_enable() or intel_audio_codec_disable() calling pin_eld_notify(), this patch adds wmb barrier to prevent optimizing. Signed-off-by: Libin Yang Signed-off-by: Takashi Iwai sound/pci/hda/patch_hdmi.c | 5 +++++ 1 file changed, 5 insertions(+) commit 37c5e942bb2eedd98c1cd1fa1f94d79f6b830c38 Author: Scott Wood Date: Wed Mar 2 22:51:04 2016 -0600 powerpc/fsl-book3e: Avoid lbarx on e5500 lbarx/stbcx. are implemented on e6500, but not on e5500. Likewise, SMT is on e6500, but not on e5500. So, avoid executing an unimplemented instruction by only locking when needed (i.e. in the presence of SMT). Signed-off-by: Scott Wood arch/powerpc/mm/hugetlbpage-book3e.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 0dff9738ec6dddf701821a6aa477ced809f17ef0 Merge: f0511e6 eda9089 Author: Dave Airlie Date: Fri Mar 4 13:51:53 2016 +1000 Merge tag 'drm-intel-fixes-2016-03-03' of git://anongit.freedesktop.org/drm-intel into drm-fixes Small conflict as I had the balance in my tree already for testing. * tag 'drm-intel-fixes-2016-03-03' of git://anongit.freedesktop.org/drm-intel: drm/i915: Balance assert_rpm_wakelock_held() for !IS_ENABLED(CONFIG_PM) drm/i915/skl: Fix power domain suspend sequence commit 909c3a22da3b8d2cfd3505ca5658f0176859d400 Author: Filipe Manana Date: Wed Mar 2 15:49:38 2016 +0000 Btrfs: fix loading of orphan roots leading to BUG_ON When looking for orphan roots during mount we can end up hitting a BUG_ON() (at root-item.c:btrfs_find_orphan_roots()) if a log tree is replayed and qgroups are enabled. This is because after a log tree is replayed, a transaction commit is made, which triggers qgroup extent accounting which in turn does backref walking which ends up reading and inserting all roots in the radix tree fs_info->fs_root_radix, including orphan roots (deleted snapshots). So after the log tree is replayed, when finding orphan roots we hit the BUG_ON with the following trace: [118209.182438] ------------[ cut here ]------------ [118209.183279] kernel BUG at fs/btrfs/root-tree.c:314! [118209.184074] invalid opcode: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC [118209.185123] Modules linked in: btrfs dm_flakey dm_mod crc32c_generic ppdev xor raid6_pq evdev sg parport_pc parport acpi_cpufreq tpm_tis tpm psmouse processor i2c_piix4 serio_raw pcspkr i2c_core button loop autofs4 ext4 crc16 mbcache jbd2 sd_mod sr_mod cdrom ata_generic virtio_scsi ata_piix libata virtio_pci virtio_ring virtio scsi_mod e1000 floppy [last unloaded: btrfs] [118209.186318] CPU: 14 PID: 28428 Comm: mount Tainted: G W 4.5.0-rc5-btrfs-next-24+ #1 [118209.186318] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS by qemu-project.org 04/01/2014 [118209.186318] task: ffff8801ec131040 ti: ffff8800af34c000 task.ti: ffff8800af34c000 [118209.186318] RIP: 0010:[] [] btrfs_find_orphan_roots+0x1fc/0x244 [btrfs] [118209.186318] RSP: 0018:ffff8800af34faa8 EFLAGS: 00010246 [118209.186318] RAX: 00000000ffffffef RBX: 00000000ffffffef RCX: 0000000000000001 [118209.186318] RDX: 0000000080000000 RSI: 0000000000000001 RDI: 00000000ffffffff [118209.186318] RBP: ffff8800af34fb08 R08: 0000000000000001 R09: 0000000000000000 [118209.186318] R10: ffff8800af34f9f0 R11: 6db6db6db6db6db7 R12: ffff880171b97000 [118209.186318] R13: ffff8801ca9d65e0 R14: ffff8800afa2e000 R15: 0000160000000000 [118209.186318] FS: 00007f5bcb914840(0000) GS:ffff88023edc0000(0000) knlGS:0000000000000000 [118209.186318] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b [118209.186318] CR2: 00007f5bcaceb5d9 CR3: 00000000b49b5000 CR4: 00000000000006e0 [118209.186318] Stack: [118209.186318] fffffbffffffffff 010230ffffffffff 0101000000000000 ff84000000000000 [118209.186318] fbffffffffffffff 30ffffffffffffff 0000000000000101 ffff880082348000 [118209.186318] 0000000000000000 ffff8800afa2e000 ffff8800afa2e000 0000000000000000 [118209.186318] Call Trace: [118209.186318] [] open_ctree+0x1e37/0x21b9 [btrfs] [118209.186318] [] btrfs_mount+0x97e/0xaed [btrfs] [118209.186318] [] ? trace_hardirqs_on+0xd/0xf [118209.186318] [] mount_fs+0x67/0x131 [118209.186318] [] vfs_kern_mount+0x6c/0xde [118209.186318] [] btrfs_mount+0x1ac/0xaed [btrfs] [118209.186318] [] ? trace_hardirqs_on+0xd/0xf [118209.186318] [] ? lockdep_init_map+0xb9/0x1b3 [118209.186318] [] mount_fs+0x67/0x131 [118209.186318] [] vfs_kern_mount+0x6c/0xde [118209.186318] [] do_mount+0x8a6/0x9e8 [118209.186318] [] SyS_mount+0x77/0x9f [118209.186318] [] entry_SYSCALL_64_fastpath+0x12/0x6b [118209.186318] Code: 64 00 00 85 c0 89 c3 75 24 f0 41 80 4c 24 20 20 49 8b bc 24 f0 01 00 00 4c 89 e6 e8 e8 65 00 00 85 c0 89 c3 74 11 83 f8 ef 75 02 <0f> 0b 4c 89 e7 e8 da 72 00 00 eb 1c 41 83 bc 24 00 01 00 00 00 [118209.186318] RIP [] btrfs_find_orphan_roots+0x1fc/0x244 [btrfs] [118209.186318] RSP [118209.230735] ---[ end trace 83938f987d85d477 ]--- So fix this by not treating the error -EEXIST, returned when attempting to insert a root already inserted by the backref walking code, as an error. The following test case for xfstests reproduces the bug: 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 cd / rm -f $tmp.* } # get standard environment, filters and checks . ./common/rc . ./common/filter . ./common/dmflakey # real QA test starts here _supported_fs btrfs _supported_os Linux _require_scratch _require_dm_target flakey _require_metadata_journaling $SCRATCH_DEV rm -f $seqres.full _scratch_mkfs >>$seqres.full 2>&1 _init_flakey _mount_flakey _run_btrfs_util_prog quota enable $SCRATCH_MNT # Create 2 directories with one file in one of them. # We use these just to trigger a transaction commit later, moving the file from # directory a to directory b and doing an fsync against directory a. mkdir $SCRATCH_MNT/a mkdir $SCRATCH_MNT/b touch $SCRATCH_MNT/a/f sync # Create our test file with 2 4K extents. $XFS_IO_PROG -f -s -c "pwrite -S 0xaa 0 8K" $SCRATCH_MNT/foobar | _filter_xfs_io # Create a snapshot and delete it. This doesn't really delete the snapshot # immediately, just makes it inaccessible and invisible to user space, the # snapshot is deleted later by a dedicated kernel thread (cleaner kthread) # which is woke up at the next transaction commit. # A root orphan item is inserted into the tree of tree roots, so that if a # power failure happens before the dedicated kernel thread does the snapshot # deletion, the next time the filesystem is mounted it resumes the snapshot # deletion. _run_btrfs_util_prog subvolume snapshot $SCRATCH_MNT $SCRATCH_MNT/snap _run_btrfs_util_prog subvolume delete $SCRATCH_MNT/snap # Now overwrite half of the extents we wrote before. Because we made a snapshpot # before, which isn't really deleted yet (since no transaction commit happened # after we did the snapshot delete request), the non overwritten extents get # referenced twice, once by the default subvolume and once by the snapshot. $XFS_IO_PROG -c "pwrite -S 0xbb 4K 8K" $SCRATCH_MNT/foobar | _filter_xfs_io # Now move file f from directory a to directory b and fsync directory a. # The fsync on the directory a triggers a transaction commit (because a file # was moved from it to another directory) and the file fsync leaves a log tree # with file extent items to replay. mv $SCRATCH_MNT/a/f $SCRATCH_MNT/a/b $XFS_IO_PROG -c "fsync" $SCRATCH_MNT/a $XFS_IO_PROG -c "fsync" $SCRATCH_MNT/foobar echo "File digest before power failure:" md5sum $SCRATCH_MNT/foobar | _filter_scratch # Now simulate a power failure and mount the filesystem to replay the log tree. # After the log tree was replayed, we used to hit a BUG_ON() when processing # the root orphan item for the deleted snapshot. This is because when processing # an orphan root the code expected to be the first code inserting the root into # the fs_info->fs_root_radix radix tree, while in reallity it was the second # caller attempting to do it - the first caller was the transaction commit that # took place after replaying the log tree, when updating the qgroup counters. _flakey_drop_and_remount echo "File digest before after failure:" # Must match what he got before the power failure. md5sum $SCRATCH_MNT/foobar | _filter_scratch _unmount_flakey status=0 exit Fixes: 2d9e97761087 ("Btrfs: use btrfs_get_fs_root in resolve_indirect_ref") Cc: stable@vger.kernel.org # 4.4+ Signed-off-by: Filipe Manana Reviewed-by: Qu Wenruo Signed-off-by: Chris Mason fs/btrfs/root-tree.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit c1bb0a5588816ec26abc08aa9adcf90e32656781 Author: Venkat Duvvuru Date: Wed Mar 2 06:00:28 2016 -0500 be2net: don't enable multicast flag in be_enable_if_filters() routine When the interface is opened (in be_open()) the routine be_enable_if_filters() must be called to switch on the basic filtering capabilities of an interface that are not changed at run-time. These include the flags UNTAGGED, BROADCAST and PASS_L3L4_ERRORS. Other flags such as MULTICAST and PROMISC must be enabled later by be_set_rx_mode() based on the state in the netdev/adapter struct. be_enable_if_filters() routine is wrongly trying to enable MULTICAST flag without checking the current adapter state. This can cause the RX_FILTER cmds to the FW to fail. This patch fixes this problem by only enabling the basic filtering flags in be_enable_if_filters(). The VF must be able to issue RX_FILTER cmd with any filter flag, as long as the PF allowed those flags (if_cap_flags) in the iface it provisioned for the VF. This rule is applicable even when the VF doesn't have the FILTMGMT privilege. There is a bug in BE3 FW that wrongly fails RX_FILTER multicast programming cmds on VFs that don't have FILTMGMT privilege. This patch also helps in insulating the VF driver from be_open failures due to the FW bug. A fix for the BE3 FW issue will be available in versions >= 11.0.283.0 and 10.6.334.0 Reported-by: Ivan Vecera Signed-off-by: Venkat Duvvuru Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be_cmds.h | 9 ++++++--- drivers/net/ethernet/emulex/benet/be_main.c | 16 +++++++++------- 2 files changed, 15 insertions(+), 10 deletions(-) commit 1d3cd1773fddfdc9ffb0c2dec9a954c7a54bc207 Author: Dan Carpenter Date: Wed Mar 2 13:11:10 2016 +0300 net: moxa: fix an error code We accidentally return IS_ERR(priv->base) which is 1 instead of PTR_ERR(priv->base) which is the error code. Fixes: 6c821bd9edc9 ('net: Add MOXA ART SoCs ethernet driver') Signed-off-by: Dan Carpenter Acked-by: Arnd Bergmann Signed-off-by: David S. Miller drivers/net/ethernet/moxa/moxart_ether.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 63a0a00b90b5193173bcf76ef24afdda8eb05d3a Author: Nimrod Andy Date: Wed Mar 2 17:24:53 2016 +0800 MAINTAINERS: add maintainer entry for FREESCALE FEC ethernet driver Add a maintainer entry for FREESCALE FEC ethernet driver and add myself as a maintainer. Signed-off-by: Fugang Duan Acked-by: Frank Li Signed-off-by: David S. Miller MAINTAINERS | 9 +++++++++ 1 file changed, 9 insertions(+) commit 4024fcf70556311521e7b6cf79fa50e16f31013a Author: Daniel Borkmann Date: Wed Mar 2 02:32:08 2016 +0100 vxlan: fix missing options_len update on RX with collect metadata When signalling to metadata consumers that the metadata_dst entry carries additional GBP extension data for vxlan (TUNNEL_VXLAN_OPT), the dst's vxlan_metadata information is populated, but options_len is left to zero. F.e. in ovs, ovs_flow_key_extract() checks for options_len before extracting the data through ip_tunnel_info_opts_get(). Geneve uses ip_tunnel_info_opts_set() helper in receive path, which sets options_len internally, vxlan however uses ip_tunnel_info_opts(), so when filling vxlan_metadata, we do need to update options_len. Fixes: 4c22279848c5 ("ip-tunnel: Use API to access tunnel metadata options.") Signed-off-by: Daniel Borkmann Acked-by: Thomas Graf Signed-off-by: David S. Miller drivers/net/vxlan.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 4d6af73d9e43f78651a43ee4c5ad221107ac8365 Author: Christoph Hellwig Date: Wed Mar 2 18:07:14 2016 +0100 block: support large requests in blk_rq_map_user_iov This patch adds support for larger requests in blk_rq_map_user_iov by allowing it to build multiple bios for a request. This functionality used to exist for the non-vectored blk_rq_map_user in the past, and this patch reuses the existing functionality for it on the unmap side, which stuck around. Thanks to the iov_iter API supporting multiple bios is fairly trivial, as we can just iterate the iov until we've consumed the whole iov_iter. Signed-off-by: Christoph Hellwig Reported-by: Jeff Lien Tested-by: Jeff Lien Reviewed-by: Keith Busch Signed-off-by: Jens Axboe block/blk-map.c | 91 ++++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 61 insertions(+), 30 deletions(-) commit f21018427cb007a0894c36ad702990ab639cbbb4 Author: Christoph Hellwig Date: Thu Mar 3 14:43:45 2016 -0700 block: fix blk_rq_get_max_sectors for driver private requests Driver private request types should not get the artifical cap for the FS requests. This is important to use the full device capabilities for internal command or NVMe pass through commands. Signed-off-by: Christoph Hellwig Reported-by: Jeff Lien Tested-by: Jeff Lien Reviewed-by: Keith Busch Updated by me to use an explicit check for the one command type that does support extended checking, instead of relying on the ordering of the enum command values - as suggested by Keith. Signed-off-by: Jens Axboe include/linux/blkdev.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 45686b6198bd824f083ff5293f191d78db9d708a Author: Christoph Hellwig Date: Wed Mar 2 18:07:12 2016 +0100 nvme: fix max_segments integer truncation The block layer uses an unsigned short for max_segments. The way we calculate the value for NVMe tends to generate very large 32-bit values, which after integer truncation may lead to a zero value instead of the desired outcome. Signed-off-by: Christoph Hellwig Reported-by: Jeff Lien Tested-by: Jeff Lien Reviewed-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/core.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit da35825d9a091a7a1d5824c8468168e2658333ff Author: Christoph Hellwig Date: Wed Mar 2 18:07:11 2016 +0100 nvme: set queue limits for the admin queue Factor out a helper to set all the device specific queue limits and apply them to the admin queue in addition to the I/O queues. Without this the command size on the admin queue is arbitrarily low, and the missing other limitations are just minefields waiting for victims. Signed-off-by: Christoph Hellwig Reported-by: Jeff Lien Tested-by: Jeff Lien Reviewed-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/core.c | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) commit a1a0e23e49037c23ea84bc8cc146a03584d13577 Author: Tejun Heo Date: Mon Feb 29 18:28:53 2016 -0500 writeback: flush inode cgroup wb switches instead of pinning super_block If cgroup writeback is in use, inodes can be scheduled for asynchronous wb switching. Before 5ff8eaac1636 ("writeback: keep superblock pinned during cgroup writeback association switches"), this could race with umount leading to super_block being destroyed while inodes are pinned for wb switching. 5ff8eaac1636 fixed it by bumping s_active while wb switches are in flight; however, this allowed in-flight wb switches to make umounts asynchronous when the userland expected synchronosity - e.g. fsck immediately following umount may fail because the device is still busy. This patch removes the problematic super_block pinning and instead makes generic_shutdown_super() flush in-flight wb switches. wb switches are now executed on a dedicated isw_wq so that they can be flushed and isw_nr_in_flight keeps track of the number of in-flight wb switches so that flushing can be avoided in most cases. v2: Move cgroup_writeback_umount() further below and add MS_ACTIVE check in inode_switch_wbs() as Jan an Al suggested. Signed-off-by: Tejun Heo Reported-by: Tahsin Erdogan Cc: Jan Kara Cc: Al Viro Link: http://lkml.kernel.org/g/CAAeU0aNCq7LGODvVGRU-oU_o-6enii5ey0p1c26D1ZzYwkDc5A@mail.gmail.com Fixes: 5ff8eaac1636 ("writeback: keep superblock pinned during cgroup writeback association switches") Cc: stable@vger.kernel.org #v4.5 Reviewed-by: Jan Kara Tested-by: Tahsin Erdogan Signed-off-by: Jens Axboe fs/fs-writeback.c | 54 +++++++++++++++++++++++++++++++++++------------ fs/super.c | 1 + include/linux/writeback.h | 5 +++++ 3 files changed, 47 insertions(+), 13 deletions(-) commit e9fc63d682dbbef17921aeb00d03fd52d6735ffd Author: Keith Busch Date: Wed Feb 24 09:15:58 2016 -0700 NVMe: Fix 0-length integrity payload A user could send a passthrough IO command with a metadata pointer to a namespace without metadata. With metadata length of 0, kmalloc returns ZERO_SIZE_PTR. Since that is not NULL, the driver would have set this as the bio's integrity payload, which causes an access fault on completion. This patch ignores the users metadata buffer if the namespace format does not support separate metadata. Reported-by: Stephen Bates Signed-off-by: Keith Busch Reviewed-by: Sagi Grimberg Reviewed-by: Christoph Hellwig Reviewed-by: Johannes Thumshirn Signed-off-by: Jens Axboe drivers/nvme/host/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 63088ec7c8eadfe08b96127a41b385ec9742dace Author: Keith Busch Date: Wed Feb 24 09:15:57 2016 -0700 NVMe: Don't allow unsupported flags The command flags can change the meaning of other fields in the command that the driver is not prepared to handle. Specifically, the user could passthrough an SGL flag, causing the controller to misinterpret the PRP list the driver created, potentially corrupting memory or data. Signed-off-by: Keith Busch Reviewed-by: Jon Derrick Reviewed-by: Christoph Hellwig Reviewed-by: Johannes Thumshirn Signed-off-by: Jens Axboe drivers/nvme/host/core.c | 4 ++++ 1 file changed, 4 insertions(+) commit 69d9a99c258eb1d6478fd9608a2070890797eed7 Author: Keith Busch Date: Wed Feb 24 09:15:56 2016 -0700 NVMe: Move error handling to failed reset handler This moves failed queue handling out of the namespace removal path and into the reset failure path, fixing a hanging condition if the controller fails or link down during del_gendisk. Previously the driver had to see the controller as degraded prior to calling del_gendisk to setup the queues to fail. But, if the controller happened to fail after this, there was no task to end outstanding requests. On failure, all namespace states are set to dead. This has capacity revalidate to 0, and ends all new requests with error status. Signed-off-by: Keith Busch Reviewed-by: Christoph Hellwig Reviewed-by: Johannes Thumshirn Signed-off-by: Jens Axboe drivers/nvme/host/core.c | 53 ++++++++++++++++++++++++++++++++---------------- drivers/nvme/host/nvme.h | 2 ++ drivers/nvme/host/pci.c | 13 +++++++++++- 3 files changed, 50 insertions(+), 18 deletions(-) commit f58944e265d4ebe47216a5d7488aee3928823d30 Author: Keith Busch Date: Wed Feb 24 09:15:55 2016 -0700 NVMe: Simplify device reset failure A reset failure schedules the device to unbind from the driver through the pci driver's remove. This cleans up all intialization, so there is no need to duplicate the potentially racy cleanup. To help understand why a reset failed, the status is logged with the existing warning message. Signed-off-by: Keith Busch Reviewed-by: Johannes Thumshirn Reviewed-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 48 +++++++++++++++++++++--------------------------- 1 file changed, 21 insertions(+), 27 deletions(-) commit 646017a612e72f19bd9f991fe25287a149c5f627 Author: Keith Busch Date: Wed Feb 24 09:15:54 2016 -0700 NVMe: Fix namespace removal deadlock This patch makes nvme namespace removal lockless. It is up to the caller to ensure no active namespace scanning is occuring. To ensure no scan work occurs, the nvme pci driver adds a removing state to the controller device to avoid queueing scan work during removal. The work is flushed after setting the state, so no new scan work can be queued. The lockless removal allows the driver to cleanup a namespace request_queue if the controller fails during removal. Previously this could deadlock trying to acquire the namespace mutex in order to handle such events. Signed-off-by: Keith Busch Reviewed-by: Johannes Thumshirn Reviewed-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/nvme/host/core.c | 12 +++++++----- drivers/nvme/host/nvme.h | 4 ++++ drivers/nvme/host/pci.c | 17 +++++++++++++++-- 3 files changed, 26 insertions(+), 7 deletions(-) commit 075790ebba4a1eb297f9875e581b55c0382b1f3d Author: Keith Busch Date: Wed Feb 24 09:15:53 2016 -0700 NVMe: Use IDA for namespace disk naming A namespace may be detached from a controller, but a user may be holding a reference to it. Attaching a new namespace with the same NSID will create duplicate names when using the NSID to name the disk. This patch uses an IDA that is released only when the last reference is released instead of using the namespace ID. Signed-off-by: Keith Busch Reviewed-by: Sagi Grimberg Reviewed-by: Christoph Hellwig Reviewed-by: Johannes Thumshirn Signed-off-by: Jens Axboe drivers/nvme/host/core.c | 15 ++++++++++++--- drivers/nvme/host/nvme.h | 2 ++ 2 files changed, 14 insertions(+), 3 deletions(-) commit b00a726a9fd82ddd4c10344e46f0d371e1674303 Author: Keith Busch Date: Wed Feb 24 09:15:52 2016 -0700 NVMe: Don't unmap controller registers on reset Unmapping the registers on reset or shutdown is not necessary. Keeping the mapping simplifies reset handling. Signed-off-by: Keith Busch Reviewed-by: Johannes Thumshirn Reviewed-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 71 +++++++++++++++++++++++++++++-------------------- 1 file changed, 42 insertions(+), 29 deletions(-) commit e827091cb1bcd8e718ac3657845fb809c0b93324 Author: Ming Lei Date: Fri Feb 26 23:40:53 2016 +0800 block: merge: get the 1st and last bvec via helpers This patch applies the two introduced helpers to figure out the 1st and last bvec. Reviewed-by: Sagi Grimberg Reviewed-by: Christoph Hellwig Signed-off-by: Ming Lei Signed-off-by: Jens Axboe block/blk-merge.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 25e71a99f10e444cd00bb2ebccb11e1c9fb672b1 Author: Ming Lei Date: Fri Feb 26 23:40:52 2016 +0800 block: get the 1st and last bvec via helpers This patch applies the two introduced helpers to figure out the 1st and last bvec, and fixes the original way after bio splitting. Cc: stable@vger.kernel.org Reported-by: Sagi Grimberg Reviewed-by: Sagi Grimberg Reviewed-by: Christoph Hellwig Signed-off-by: Ming Lei Signed-off-by: Jens Axboe include/linux/blkdev.h | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit e0af29171aa8912e1ca95023b75ef336cd70d661 Author: Ming Lei Date: Fri Feb 26 23:40:51 2016 +0800 block: check virt boundary in bio_will_gap() In the following patch, the way for figuring out the last bvec will be changed with a bit cost introduced, so return immediately if the queue doesn't have virt boundary limit. Actually most of devices have not this limit. Reviewed-by: Sagi Grimberg Reviewed-by: Christoph Hellwig Signed-off-by: Ming Lei Signed-off-by: Jens Axboe include/linux/blkdev.h | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) commit 7bcd79ac50d9d83350a835bdb91c04ac9e098412 Author: Ming Lei Date: Fri Feb 26 23:40:50 2016 +0800 block: bio: introduce helpers to get the 1st and last bvec The bio passed to bio_will_gap() may be fast cloned from upper layer(dm, md, bcache, fs, ...), or from bio splitting in block core. Unfortunately bio_will_gap() just figures out the last bvec via 'bi_io_vec[prev->bi_vcnt - 1]' directly, and this way is obviously wrong. This patch introduces two helpers for getting the first and last bvec of one bio for fixing the issue. Cc: stable@vger.kernel.org Reported-by: Sagi Grimberg Reviewed-by: Sagi Grimberg Reviewed-by: Christoph Hellwig Signed-off-by: Ming Lei Signed-off-by: Jens Axboe include/linux/bio.h | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) commit 42a67c9b0c0853f6a1159bd54ed0ba50df9f9ad8 Author: Wolfram Sang Date: Tue Mar 1 17:37:59 2016 +0100 net: ethernet: renesas: sh_eth: don't open code of_device_get_match_data() This change will also make Coverity happy by avoiding a theoretical NULL pointer dereference; yet another reason is to use the above helper function to tighten the code and make it more readable. Signed-off-by: Wolfram Sang Reviewed-by: Simon Horman Signed-off-by: David S. Miller drivers/net/ethernet/renesas/sh_eth.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit e866863066a4e6c42117434dd5cd35c9842f5b82 Author: Wolfram Sang Date: Tue Mar 1 17:37:58 2016 +0100 net: ethernet: renesas: ravb_main: don't open code of_device_get_match_data() This change will also make Coverity happy by avoiding a theoretical NULL pointer dereference; yet another reason is to use the above helper function to tighten the code and make it more readable. Signed-off-by: Wolfram Sang Reviewed-by: Simon Horman Acked-by: Geert Uytterhoeven Signed-off-by: David S. Miller drivers/net/ethernet/renesas/ravb_main.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit de89e854bcc71ebaf30d415a0c015d1cb6c68856 Author: Thomas Falcon Date: Tue Mar 1 10:20:09 2016 -0600 ibmvnic: Fix ibmvnic_capability struct The ibmvnic_capability struct was defined incorrectly. The last two elements of the struct are in the wrong order. In addition, the number element should be 64-bit. Byteswapping functions are updated as well. Signed-off-by: Thomas Falcon Signed-off-by: David S. Miller drivers/net/ethernet/ibm/ibmvnic.c | 62 +++++++++++++++++++------------------- drivers/net/ethernet/ibm/ibmvnic.h | 4 +-- 2 files changed, 32 insertions(+), 34 deletions(-) commit 5d150a985520bbe3cb2aa1ceef24a7e32f20c15f Author: Florian Westphal Date: Tue Mar 1 16:15:16 2016 +0100 ipv6: re-enable fragment header matching in ipv6_find_hdr When ipv6_find_hdr is used to find a fragment header (caller specifies target NEXTHDR_FRAGMENT) we erronously return -ENOENT for all fragments with nonzero offset. Before commit 9195bb8e381d, when target was specified, we did not enter the exthdr walk loop as nexthdr == target so this used to work. Now we do (so we can skip empty route headers). When we then stumble upon a frag with nonzero frag_off we must return -ENOENT ("header not found") only if the caller did not specifically request NEXTHDR_FRAGMENT. This allows nfables exthdr expression to match ipv6 fragments, e.g. via nft add rule ip6 filter input frag frag-off gt 0 Fixes: 9195bb8e381d ("ipv6: improve ipv6_find_hdr() to skip empty routing headers") Signed-off-by: Florian Westphal Signed-off-by: David S. Miller net/ipv6/exthdrs_core.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit bf13c94ccb33c3182efc92ce4989506a0f541243 Author: Bjørn Mork Date: Tue Mar 1 14:31:02 2016 +0100 qmi_wwan: add Sierra Wireless EM74xx device ID The MC74xx and EM74xx modules use different IDs by default, according to the Lenovo EM7455 driver for Windows. Signed-off-by: Bjørn Mork Signed-off-by: David S. Miller drivers/net/usb/qmi_wwan.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit f214fc402967e1bc94ad7f39faa03db5813d6849 Author: Parthasarathy Bhuvaragan Date: Tue Mar 1 11:07:09 2016 +0100 tipc: Revert "tipc: use existing sk_write_queue for outgoing packet chain" reverts commit 94153e36e709e ("tipc: use existing sk_write_queue for outgoing packet chain") In Commit 94153e36e709e, we assume that we fill & empty the socket's sk_write_queue within the same lock_sock() session. This is not true if the link is congested. During congestion, the socket lock is released while we wait for the congestion to cease. This implementation causes a nullptr exception, if the user space program has several threads accessing the same socket descriptor. Consider two threads of the same program performing the following: Thread1 Thread2 -------------------- ---------------------- Enter tipc_sendmsg() Enter tipc_sendmsg() lock_sock() lock_sock() Enter tipc_link_xmit(), ret=ELINKCONG spin on socket lock.. sk_wait_event() : release_sock() grab socket lock : Enter tipc_link_xmit(), ret=0 : release_sock() Wakeup after congestion lock_sock() skb = skb_peek(pktchain); !! TIPC_SKB_CB(skb)->wakeup_pending = tsk->link_cong; In this case, the second thread transmits the buffers belonging to both thread1 and thread2 successfully. When the first thread wakeup after the congestion it assumes that the pktchain is intact and operates on the skb's in it, which leads to the following exception: [2102.439969] BUG: unable to handle kernel NULL pointer dereference at 00000000000000d0 [2102.440074] IP: [] __tipc_link_xmit+0x2b0/0x4d0 [tipc] [2102.440074] PGD 3fa3f067 PUD 3fa6b067 PMD 0 [2102.440074] Oops: 0000 [#1] SMP [2102.440074] CPU: 2 PID: 244 Comm: sender Not tainted 3.12.28 #1 [2102.440074] RIP: 0010:[] [] __tipc_link_xmit+0x2b0/0x4d0 [tipc] [...] [2102.440074] Call Trace: [2102.440074] [] ? schedule+0x29/0x70 [2102.440074] [] ? tipc_node_unlock+0x46/0x170 [tipc] [2102.440074] [] tipc_link_xmit+0x51/0xf0 [tipc] [2102.440074] [] tipc_send_stream+0x11e/0x4f0 [tipc] [2102.440074] [] ? __wake_up_sync+0x20/0x20 [2102.440074] [] tipc_send_packet+0x1c/0x20 [tipc] [2102.440074] [] sock_sendmsg+0xa8/0xd0 [2102.440074] [] ? release_sock+0x145/0x170 [2102.440074] [] ___sys_sendmsg+0x3d8/0x3e0 [2102.440074] [] ? _raw_spin_unlock+0xe/0x10 [2102.440074] [] ? handle_mm_fault+0x6ca/0x9d0 [2102.440074] [] ? set_next_entity+0x85/0xa0 [2102.440074] [] ? _raw_spin_unlock_irq+0xe/0x20 [2102.440074] [] ? finish_task_switch+0x5c/0xc0 [2102.440074] [] ? __schedule+0x34c/0x950 [2102.440074] [] __sys_sendmsg+0x42/0x80 [2102.440074] [] SyS_sendmsg+0x12/0x20 [2102.440074] [] system_call_fastpath+0x16/0x1b In this commit, we maintain the skb list always in the stack. Signed-off-by: Parthasarathy Bhuvaragan Acked-by: Ying Xue Acked-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/socket.c | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) commit fbe093ac9f0201939279cdfe8b0fce20ce5ef7a9 Author: Sakari Ailus Date: Thu Mar 3 14:20:14 2016 -0300 [media] media: Sanitise the reserved fields of the G_TOPOLOGY IOCTL arguments The argument structs are used in arrays for G_TOPOLOGY IOCTL. The arguments themselves do not need to be aligned to a power of two, but aligning them up to the largest basic type alignment (u64) on common ABIs is a good thing to do. The patch changes the size of the reserved fields to 5 or 6 u32's and aligns the size of the struct to 8 bytes so we do no longer depend on the compiler to perform the alignment. While at it, add __attribute__ ((packed)) to these structs as well. Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab include/uapi/linux/media.h | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit e3c2ef41f88e50c8557270868600d3132028af3b Merge: c2687cf 1195c10 Author: Linus Torvalds Date: Thu Mar 3 12:54:39 2016 -0800 Merge tag 'pci-v4.5-fixes-4' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci Pull PCI fixes from Bjorn Helgaas: "Freescale Layerscape host bridge driver: Fix MSG TLP drop setting (Minghuan Lian) TI Keystone host bridge driver: Fix MSI code that retrieves struct pcie_port pointer (Murali Karicheri)" * tag 'pci-v4.5-fixes-4' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: PCI: layerscape: Fix MSG TLP drop setting PCI: keystone: Fix MSI code that retrieves struct pcie_port pointer commit 1837b2e2bcd23137766555a63867e649c0b637f0 Author: Benjamin Poirier Date: Mon Feb 29 15:03:33 2016 -0800 mld, igmp: Fix reserved tailroom calculation The current reserved_tailroom calculation fails to take hlen and tlen into account. skb: [__hlen__|__data____________|__tlen___|__extra__] ^ ^ head skb_end_offset In this representation, hlen + data + tlen is the size passed to alloc_skb. "extra" is the extra space made available in __alloc_skb because of rounding up by kmalloc. We can reorder the representation like so: [__hlen__|__data____________|__extra__|__tlen___] ^ ^ head skb_end_offset The maximum space available for ip headers and payload without fragmentation is min(mtu, data + extra). Therefore, reserved_tailroom = data + extra + tlen - min(mtu, data + extra) = skb_end_offset - hlen - min(mtu, skb_end_offset - hlen - tlen) = skb_tailroom - min(mtu, skb_tailroom - tlen) ; after skb_reserve(hlen) Compare the second line to the current expression: reserved_tailroom = skb_end_offset - min(mtu, skb_end_offset) and we can see that hlen and tlen are not taken into account. The min() in the third line can be expanded into: if mtu < skb_tailroom - tlen: reserved_tailroom = skb_tailroom - mtu else: reserved_tailroom = tlen Depending on hlen, tlen, mtu and the number of multicast address records, the current code may output skbs that have less tailroom than dev->needed_tailroom or it may output more skbs than needed because not all space available is used. Fixes: 4c672e4b ("ipv6: mld: fix add_grhead skb_over_panic for devs with large MTUs") Signed-off-by: Benjamin Poirier Acked-by: Hannes Frederic Sowa Acked-by: Daniel Borkmann Signed-off-by: David S. Miller include/linux/skbuff.h | 24 ++++++++++++++++++++++++ net/ipv4/igmp.c | 3 +-- net/ipv6/mcast.c | 3 +-- 3 files changed, 26 insertions(+), 4 deletions(-) commit 861c3849222b7cadfd0da63f9c7573c2f15ba535 Merge: f4f41c5 04fdbc8 Author: Greg Kroah-Hartman Date: Thu Mar 3 12:37:21 2016 -0800 Merge tag 'usb-serial-4.5-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-linus Jonan writes: USB-serial fixes for v4.5-rc7 Here are some new device ids and a patch removing the mxu11x0 driver, which turned out not to be needed. Signed-off-by: Johan Hovold commit 878e3c1be2dc8a759c18bb280a7390f9ed0bd544 Author: Igal Liberman Date: Sun Feb 28 23:59:53 2016 +0200 fsl/fman: Initialize fman->dev earlier Currently, in a case of error, dev_err is using fman->dev before its initialization and "(NULL device *)" is printed. This patch fixes this issue. Signed-off-by: Igal Liberman Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fman/fman.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 88f8b1bb41c6208f81b6a480244533ded7b59493 Author: Gabriel Fernandez Date: Mon Feb 29 17:18:22 2016 +0100 stmmac: Fix 'eth0: No PHY found' regression This patch manages the case when you have an Ethernet MAC with a "fixed link", and not connected to a normal MDIO-managed PHY device. The test of phy_bus_name was not helpful because it was never affected and replaced by the mdio test node. Signed-off-by: Gabriel Fernandez Acked-by: Giuseppe Cavallaro Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 11 +---------- drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 9 ++++++++- include/linux/stmmac.h | 1 + 3 files changed, 10 insertions(+), 11 deletions(-) commit c2687cf9502a4b69abc0f3a7b1618ffef47a40db Merge: 4237b2e 2680d6d Author: Linus Torvalds Date: Thu Mar 3 11:54:56 2016 -0800 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm Pull KVM fixes from Paolo Bonzini: - ARM/MIPS: Fixes for ioctls when copy_from_user returns nonzero - x86: Small fix for Skylake TSC scaling - x86: Improved fix for last week's missed hardware breakpoint bug * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: kvm: x86: Update tsc multiplier on change. mips/kvm: fix ioctl error handling arm/arm64: KVM: Fix ioctl error handling KVM: x86: fix root cause for missed hardware breakpoints commit 4237b2e6c6ca77b72f0b45ffad29e284e776ede3 Merge: 19eab22 b26a719 Author: Linus Torvalds Date: Thu Mar 3 11:39:11 2016 -0800 Merge tag 'gpio-v4.5-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio Pull late GPIO fix from Linus Walleij: "Regressions never arrive when you want them to, so here is a late fix for the Renesas RCAR GPIO driver. It only affects that driver on the very specific Renesas platforms: - Fix a runtime PM suspend/resume bug in the RCAR driver" * tag 'gpio-v4.5-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: gpio: rcar: Add Runtime PM handling for interrupts commit 19eab220e7a00bbb36543b4daf5e3c464ec474cb Merge: f4bd982 e6a8c9b Author: Linus Torvalds Date: Thu Mar 3 11:32:13 2016 -0800 Merge tag 'iommu-fixes-v4.5-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu Pull IOMMU fixes from Joerg Roedel: "One fix for Intel VT-d: - Use BUS_NOTIFY_REMOVED_DEVICE notifier to unbind a device from its domain _after_ it has been unbound from its driver. This fixes a BUG_ON being triggered in the PCI hotplug path. And three for AMD IOMMU: - Add a workaround for a hardware issue with ATS in use - Fix ATS enable/disable balance when a device is removed - Fix a boot warning being triggered when the system has IOMMU performance counters and PCI device 00:00.0 is not covered by the IOMMU" * tag 'iommu-fixes-v4.5-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: iommu/vt-d: Use BUS_NOTIFY_REMOVED_DEVICE in hotplug path iommu/amd: Detach device from domain before removal iommu/amd: Apply workaround for ATS write permission check iommu/amd: Fix boot warning when device 00:00.0 is not iommu covered commit f4bd9822080ece335663245c8520b146d9e1bdad Merge: 52ad129 e1f33be Author: Linus Torvalds Date: Thu Mar 3 11:07:32 2016 -0800 Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost Pull minor virtio/vhost fixes from Michael Tsirkin: "This fixes two minor bugs: error handling in vhost, and capability processing in virtio" * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: vhost: fix error path in vhost_init_used() virtio-pci: read the right virtio_pci_notify_cap field commit 52ad12966b0217a6dcf782cc2516061343911c0d Merge: 215b031 8160c4e Author: Linus Torvalds Date: Thu Mar 3 10:56:17 2016 -0800 Merge tag 'vfio-v4.5-rc7' of git://github.com/awilliam/linux-vfio Pull VFIO fix from Alex Williamson: "Use -EFAULT for copy_to_user error in ioctl (Michael Tsirkin)" * tag 'vfio-v4.5-rc7' of git://github.com/awilliam/linux-vfio: vfio: fix ioctl error handling commit 215b031b970a6cec729dcfaa94537074256ba2e8 Merge: f983cd3 a1e533e Author: Linus Torvalds Date: Thu Mar 3 10:46:18 2016 -0800 Merge tag 'fbdev-fixes-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux Pull fbdev fix from Tomi Valkeinen: "Fix hang caused by fbconsole blink timer" * tag 'fbdev-fixes-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: fbcon: set a default value to blink interval commit 93125094c07d8c9ec25dff5869f191b33eb9dd6e Author: Mauro Carvalho Chehab Date: Thu Mar 3 14:52:51 2016 -0300 [media] media.h: postpone connectors entities The representation of external connections got some heated discussions recently. As we're too close to the merge window, let's not set those entities into a stone. Signed-off-by: Mauro Carvalho Chehab include/uapi/linux/media.h | 8 ++++++++ 1 file changed, 8 insertions(+) commit b81de061fa59f17d2730aabb1b84419ef3913810 Author: Konstantin Khlebnikov Date: Sun Jan 31 16:21:29 2016 +0300 ovl: copy new uid/gid into overlayfs runtime inode Overlayfs must update uid/gid after chown, otherwise functions like inode_owner_or_capable() will check user against stale uid. Catched by xfstests generic/087, it chowns file and calls utimes. Signed-off-by: Konstantin Khlebnikov Signed-off-by: Miklos Szeredi Cc: fs/overlayfs/inode.c | 2 ++ 1 file changed, 2 insertions(+) commit 45d11738969633ec07ca35d75d486bf2d8918df6 Author: Konstantin Khlebnikov Date: Sun Jan 31 16:17:53 2016 +0300 ovl: ignore lower entries when checking purity of non-directory entries After rename file dentry still holds reference to lower dentry from previous location. This doesn't matter for data access because data comes from upper dentry. But this stale lower dentry taints dentry at new location and turns it into non-pure upper. Such file leaves visible whiteout entry after remove in directory which shouldn't have whiteouts at all. Overlayfs already tracks pureness of file location in oe->opaque. This patch just uses that for detecting actual path type. Comment from Vivek Goyal's patch: Here are the details of the problem. Do following. $ mkdir upper lower work merged upper/dir/ $ touch lower/test $ sudo mount -t overlay overlay -olowerdir=lower,upperdir=upper,workdir= work merged $ mv merged/test merged/dir/ $ rm merged/dir/test $ ls -l merged/dir/ /usr/bin/ls: cannot access merged/dir/test: No such file or directory total 0 c????????? ? ? ? ? ? test Basic problem seems to be that once a file has been unlinked, a whiteout has been left behind which was not needed and hence it becomes visible. Whiteout is visible because parent dir is of not type MERGE, hence od->is_real is set during ovl_dir_open(). And that means ovl_iterate() passes on iterate handling directly to underlying fs. Underlying fs does not know/filter whiteouts so it becomes visible to user. Why did we leave a whiteout to begin with when we should not have. ovl_do_remove() checks for OVL_TYPE_PURE_UPPER() and does not leave whiteout if file is pure upper. In this case file is not found to be pure upper hence whiteout is left. So why file was not PURE_UPPER in this case? I think because dentry is still carrying some leftover state which was valid before rename. For example, od->numlower was set to 1 as it was a lower file. After rename, this state is not valid anymore as there is no such file in lower. Signed-off-by: Konstantin Khlebnikov Reported-by: Viktor Stanchev Suggested-by: Vivek Goyal Link: https://bugzilla.kernel.org/show_bug.cgi?id=109611 Acked-by: Vivek Goyal Signed-off-by: Miklos Szeredi Cc: fs/overlayfs/dir.c | 7 +++++++ fs/overlayfs/super.c | 12 +++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) commit ce9113bbcbf45a57c082d6603b9a9f342be3ef74 Author: Rui Wang Date: Fri Jan 8 23:09:59 2016 +0800 ovl: fix getcwd() failure after unsuccessful rmdir ovl_remove_upper() should do d_drop() only after it successfully removes the dir, otherwise a subsequent getcwd() system call will fail, breaking userspace programs. This is to fix: https://bugzilla.kernel.org/show_bug.cgi?id=110491 Signed-off-by: Rui Wang Reviewed-by: Konstantin Khlebnikov Signed-off-by: Miklos Szeredi Cc: fs/overlayfs/dir.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit b5891cfab08fe3144a616e8e734df7749fb3b7d0 Author: Konstantin Khlebnikov Date: Sun Jan 31 16:22:16 2016 +0300 ovl: fix working on distributed fs as lower layer This adds missing .d_select_inode into alternative dentry_operations. Signed-off-by: Konstantin Khlebnikov Fixes: 7c03b5d45b8e ("ovl: allow distributed fs as lower layer") Fixes: 4bacc9c9234c ("overlayfs: Make f_path always point to the overlay and f_inode to the underlay") Reviewed-by: Nikolay Borisov Tested-by: Nikolay Borisov Signed-off-by: Miklos Szeredi Cc: # 4.2+ fs/overlayfs/super.c | 1 + 1 file changed, 1 insertion(+) commit 11d8d645343efba0c975aefe7c2cf3b33c836c75 Author: Or Gerlitz Date: Tue Mar 1 18:52:23 2016 +0200 IB/core: Use GRH when the path hop-limit > 0 According to IBTA spec v1.3 section 12.7.19, QPs should use GRH when the path returned by the SA has hop-limit > 0. Currently, we do that only for the > 1 case, fix that. Fixes: 6d969a471ba1 ('IB/sa: Add ib_init_ah_from_path()') Signed-off-by: Or Gerlitz Reviewed-by: Jason Gunthorpe Signed-off-by: Doug Ledford drivers/infiniband/core/sa_query.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f16921275cc3c2442d0b95225785a601603b990f Author: Robert Jarzmik Date: Tue Feb 16 22:54:02 2016 +0100 dmaengine: pxa_dma: fix cyclic transfers While testing audio with pxa2xx-ac97, underrun were happening while the user application was correctly feeding the music. Debug proved that the cyclic transfer is not cyclic, ie. the last descriptor did not loop on the first. Another issue is that the descriptor length was always set to 8192, because of an trivial operator issue. This was tested on a pxa27x platform. Fixes: a57e16cf0333 ("dmaengine: pxa: add pxa dmaengine driver") Reported-by: Vasily Khoruzhick Tested-by: Vasily Khoruzhick Signed-off-by: Robert Jarzmik Signed-off-by: Vinod Koul drivers/dma/pxa_dma.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 3d943c9d1cc5ad1825e46291ef5ce627e1b6b660 Author: Majd Dibbiny Date: Sun Feb 14 18:35:52 2016 +0200 IB/{core, mlx5}: Fix input len in vendor part of create_qp/srq Currently, the inlen field of the vendor's part of the command doesn't match the command buffer. This happens because the inlen accommodates ib_uverbs_cmd_hdr which is deducted from the in buffer. This is problematic since the vendor function could be called either from the legacy verb (where the input length mismatches the actual length) or by the extended verb (where the length matches). The vendor has no idea which function calls it and therefore has no way to know how the length variable should be treated. Fixing this by aligning the inlen to the correct length. All vendor drivers either assumed that inlen >= sizeof(vendor_uhw_cmd) or just failed wrongly (mlx5) and fixed in this patch. Fixes: cfb5e088e26a ('IB/mlx5: Add CQE version 1 support to user QPs and SRQs') Signed-off-by: Majd Dibbiny Reviewed-by: Matan Barak Reviewed-by: Haggai Eran Signed-off-by: Doug Ledford drivers/infiniband/core/uverbs_cmd.c | 9 ++++++--- drivers/infiniband/hw/mlx5/srq.c | 11 +++-------- 2 files changed, 9 insertions(+), 11 deletions(-) commit 85d9691ccc96d95629939a877fd6c1f8c4724f56 Author: Majd Dibbiny Date: Sun Feb 14 18:35:51 2016 +0200 IB/mlx5: Avoid using user-index for SRQs Normal SRQs, unlike XRC SRQs, don't have user-index, therefore avoid verifying it and using it. Fixes: cfb5e088e26a ('IB/mlx5: Add CQE version 1 support to user QPs and SRQs') Signed-off-by: Majd Dibbiny Reviewed-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/srq.c | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) commit fb822e6076d972691c5dd33431c10f82dda94ae9 Author: Ravi Bangoria Date: Wed Mar 2 15:25:17 2016 +0530 powerpc/hw_breakpoint: Fix oops when destroying hw_breakpoint event When destroying a hw_breakpoint event, the kernel oopses as follows: Unable to handle kernel paging request for data at address 0x00000c07 NIP [c0000000000291d0] arch_unregister_hw_breakpoint+0x40/0x60 LR [c00000000020b6b4] release_bp_slot+0x44/0x80 Call chain: hw_breakpoint_event_init() bp->destroy = bp_perf_event_destroy; do_exit() perf_event_exit_task() perf_event_exit_task_context() WRITE_ONCE(child_ctx->task, TASK_TOMBSTONE); perf_event_exit_event() free_event() _free_event() bp_perf_event_destroy() // event->destroy(event); release_bp_slot() arch_unregister_hw_breakpoint() perf_event_exit_task_context() sets child_ctx->task as TASK_TOMBSTONE which is (void *)-1. arch_unregister_hw_breakpoint() tries to fetch 'thread' attribute of 'task' resulting in oops. Peterz points out that the code shouldn't be using bp->ctx anyway, but fixing that will require a decent amount of rework. So for now to fix the oops, check if bp->ctx->task has been set to (void *)-1, before dereferencing it. We don't use TASK_TOMBSTONE, because that would require exporting it and it's supposed to be an internal detail. Fixes: 63b6da39bb38 ("perf: Fix perf_event_exit_task() race") Signed-off-by: Ravi Bangoria Acked-by: Peter Zijlstra (Intel) Signed-off-by: Michael Ellerman arch/powerpc/kernel/hw_breakpoint.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 02322ac9dee9aff8d8862e8d6660ebe102f492ea Author: Simon South Date: Wed Mar 2 23:10:44 2016 -0500 ALSA: hda - Fix mic issues on Acer Aspire E1-472 This patch applies the microphone-related fix created for the Acer Aspire E1-572 to the E1-472 as well, as it uses the same Realtek ALC282 CODEC and demonstrates the same issues. This patch allows an external, headset microphone to be used and limits the gain on the (quite noisy) internal microphone. Signed-off-by: Simon South Cc: Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 1 + 1 file changed, 1 insertion(+) commit 58402b6e98f9059420e64b296db6c4cb6f6c1117 Author: Hans Verkuil Date: Mon Feb 29 09:02:47 2016 +0100 [media] media.h: use hex values for range offsets, move connectors base up. Make the base offset hexadecimal to simplify debugging since the base addresses are hex too. The offsets for connectors is also changed to start after the 'reserved' range 0x10000-0x2ffff. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab include/uapi/linux/media.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit f0511e66114a6414cfca92d7b94118913a0c11ff Merge: 2d02b8b 0b39c53 Author: Dave Airlie Date: Thu Mar 3 11:37:07 2016 +1000 Merge branch 'drm-fixes-4.5' of git://people.freedesktop.org/~agd5f/linux into drm-fixes Fixes for radeon and amdgpu: - Fix GPUVM flushing on CI and VI - Misc DPM and Powerplay fixes - VCE DPM fixes for CZ/ST - DP hotplug fix * 'drm-fixes-4.5' of git://people.freedesktop.org/~agd5f/linux: drm/amdgpu: return from atombios_dp_get_dpcd only when error drm/amdgpu/cz: remove commented out call to enable vce pg drm/amdgpu/powerplay/cz: enable/disable vce dpm independent of vce pg drm/amdgpu/cz: enable/disable vce dpm even if vce pg is disabled drm/amdgpu/gfx8: specify which engine to wait before vm flush drm/amdgpu: apply gfx_v8 fixes to gfx_v7 as well drm/amd/powerplay: send event to notify powerplay all modules are initialized. drm/amd/powerplay: export AMD_PP_EVENT_COMPLETE_INIT task to amdgpu. drm/radeon/pm: update current crtc info after setting the powerstate drm/amdgpu/pm: update current crtc info after setting the powerstate commit 92f9e179a702a6adbc11e2fedc76ecd6ffc9e3f7 Author: Todd E Brandt Date: Wed Mar 2 16:05:29 2016 -0800 PM / sleep / x86: Fix crash on graph trace through x86 suspend Pause/unpause graph tracing around do_suspend_lowlevel as it has inconsistent call/return info after it jumps to the wakeup vector. The graph trace buffer will otherwise become misaligned and may eventually crash and hang on suspend. To reproduce the issue and test the fix: Run a function_graph trace over suspend/resume and set the graph function to suspend_devices_and_enter. This consistently hangs the system without this fix. Signed-off-by: Todd Brandt Cc: All applicable Signed-off-by: Rafael J. Wysocki arch/x86/kernel/acpi/sleep.c | 7 +++++++ 1 file changed, 7 insertions(+) commit f3c87e99f401a0ff0ef941346ec6e790f0fd526e Merge: fc77dbd 949024d Author: Arnd Bergmann Date: Wed Mar 2 23:24:33 2016 +0100 Merge tag 'renesas-dt-fixes2-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into fixes Merge "Second Round of Renesas ARM Based SoC DT Fixes for v4.5" from Simon Horman: * remove enable prop from HS-USB device node on porter board * tag 'renesas-dt-fixes2-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: dts: porter: remove enable prop from HS-USB device node commit ebc9780c93077a1c1129879de783f7fa8551d399 Merge: 11351bf cd5e412 Author: David S. Miller Date: Wed Mar 2 14:57:16 2016 -0500 Merge branch 'dwc_eth_qos' Lars Persson says: ==================== dwc_eth_qos: stability fixes and support for CMA This series has bug fixes for the dwc_eth_qos ethernet driver. Mainly two stability fixes for problems found by Rabin Vincent: - Successive starts and stops of the interface would trigger a DMA reset timeout. - A race condition in the TX DMA handling could trigger a netdev watchdog timeout. The memory allocation was improved to support use of the CMA as DMA allocator backend. ==================== Signed-off-by: David S. Miller commit cd5e41234729966153595fd3c2a7912cc4f95bc2 Author: Lars Persson Date: Mon Feb 29 16:22:34 2016 +0100 dwc_eth_qos: do phy_start before resetting hardware This reverts the changed init order from commit 3647bc35bd42 ("dwc_eth_qos: Reset hardware before PHY start") and makes another fix for the race. It turned out that the reset state machine of the dwceqos hardware requires PHY clocks to be present in order to complete the reset cycle. To plug the race with the phy state machine we defer link speed setting until the hardware init has finished. Signed-off-by: Lars Persson Signed-off-by: David S. Miller drivers/net/ethernet/synopsys/dwc_eth_qos.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) commit 016a91c64de6621e5917b2ddfe2afc0abb0a884c Author: Rabin Vincent Date: Mon Feb 29 16:22:33 2016 +0100 dwc_eth_qos: use DWCEQOS_MSG_DEFAULT Since debug is hardcoded to 3, the defaults in the DWCEQOS_MSG_DEFAULT macro are never used, which does not seem to be the intended behaviour here. Set debug to -1 like other drivers so that DWCEQOS_MSG_DEFAULT is actually used by default. Signed-off-by: Rabin Vincent Signed-off-by: Lars Persson Signed-off-by: David S. Miller drivers/net/ethernet/synopsys/dwc_eth_qos.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e8b0c32eae319e287d0329b4148c9a1a51525053 Author: Rabin Vincent Date: Mon Feb 29 16:22:32 2016 +0100 dwc_eth_qos: use GFP_KERNEL in dma_alloc_coherent() Since we are in non-atomic context here we can pass GFP_KERNEL to dma_alloc_coherent(). This enables use of the CMA. Signed-off-by: Rabin Vincent Signed-off-by: Lars Persson Signed-off-by: David S. Miller drivers/net/ethernet/synopsys/dwc_eth_qos.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d4dc35f26e1017e2a632339ecae43706cbc06986 Author: Lars Persson Date: Mon Feb 29 16:22:31 2016 +0100 dwc_eth_qos: release descriptors outside netif_tx_lock To prepare for using the CMA, we can not be in atomic context when de-allocating DMA buffers. The tx lock was needed only to protect the hw reset against the xmit handler. Now we briefly grab the tx lock while stopping the queue to make sure no thread is inside or will enter the xmit handler. Signed-off-by: Lars Persson Signed-off-by: David S. Miller drivers/net/ethernet/synopsys/dwc_eth_qos.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 8afb6c474b0dd8f9cf7e122a19c71924566fdb97 Author: Rabin Vincent Date: Mon Feb 29 16:22:30 2016 +0100 dwc_eth_qos: fix race condition in dwceqos_start_xmit The xmit handler and the tx_reclaim tasklet had a race on the tx_free variable which could lead to a tx timeout if tx_free was updated after the tx complete interrupt. Signed-off-by: Rabin Vincent Signed-off-by: Lars Persson Signed-off-by: David S. Miller drivers/net/ethernet/synopsys/dwc_eth_qos.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 11351bf762d27116dd9fb362b198bebdfd427d53 Merge: ebc363f 6e52242 Author: David S. Miller Date: Wed Mar 2 14:42:46 2016 -0500 Merge branch 'mlx4-fixes' Or Gerlitz says: ==================== Mellanox 10/40G mlx4 driver fixes for 4.5-rc6 This series contains two fixes for the SRIOV HW LAG that was introduced in 4.5-rc1 and one fix that allows to revoke the administrative MAC that was assigned to VF through the PF. The VF mac fix needs to go for stable too. ==================== Signed-off-by: David S. Miller commit 6e5224224faa50ec4c8949dcefadf895e565f0d1 Author: Jack Morgenstein Date: Wed Mar 2 17:47:46 2016 +0200 net/mlx4_core: Allow resetting VF admin mac to zero The VF administrative mac addresses (stored in the PF driver) are initialized to zero when the PF driver starts up. These addresses may be modified in the PF driver through ndo calls initiated by iproute2 or libvirt. While we allow the PF/host to change the VF admin mac address from zero to a valid unicast mac, we do not allow restoring the VF admin mac to zero. We currently only allow changing this mac to a different unicast mac. This leads to problems when libvirt scripts are used to deal with VF mac addresses, and libvirt attempts to revoke the mac so this host will not use it anymore. Fix this by allowing resetting a VF administrative MAC back to zero. Fixes: 8f7ba3ca12f6 ('net/mlx4: Add set VF mac address support') Signed-off-by: Jack Morgenstein Reported-by: Moshe Levi Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 00ada91039fc03100cb4fab41d04f9b30f27340f Author: Moni Shoua Date: Wed Mar 2 17:47:45 2016 +0200 net/mlx4_core: Check the correct limitation on VFs for HA mode The limit of 63 is only for virtual functions while the actual enforcement was for VFs plus physical functions, fix that. Fixes: e57968a10bc1 ('net/mlx4_core: Support the HA mode for SRIOV VFs too') Signed-off-by: Moni Shoua Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/main.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) commit 03a79f31ef5fb7a2298258432f3dc0f558f24d48 Author: Jack Morgenstein Date: Wed Mar 2 17:47:44 2016 +0200 net/mlx4_core: Fix lockdep warning in handling of mac/vlan tables In the mac and vlan register/unregister/replace functions, the driver locks the mac table mutex (or vlan table mutex) on both ports. We move to use mutex_lock_nested() to prevent warnings, such as the one below. [ 101.828445] ============================================= [ 101.834820] [ INFO: possible recursive locking detected ] [ 101.841199] 4.5.0-rc2+ #49 Not tainted [ 101.850251] --------------------------------------------- [ 101.856621] modprobe/3054 is trying to acquire lock: [ 101.862514] (&table->mutex#2){+.+.+.}, at: [] __mlx4_register_mac+0x87e/0xa90 [mlx4_core] [ 101.874598] [ 101.874598] but task is already holding lock: [ 101.881703] (&table->mutex#2){+.+.+.}, at: [] __mlx4_register_mac+0x860/0xa90 [mlx4_core] [ 101.893776] [ 101.893776] other info that might help us debug this: [ 101.901658] Possible unsafe locking scenario: [ 101.901658] [ 101.908859] CPU0 [ 101.911923] ---- [ 101.914985] lock(&table->mutex#2); [ 101.919595] lock(&table->mutex#2); [ 101.924199] [ 101.924199] * DEADLOCK * [ 101.924199] [ 101.931643] May be due to missing lock nesting notation Fixes: 5f61385d2ebc ('net/mlx4_core: Keep VLAN/MAC tables mirrored in multifunc HA mode') Signed-off-by: Jack Morgenstein Suggested-by: Doron Tsur Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/port.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit ebc363f577df2d33ce75aaa9d473782b1cfb873f Merge: 607e681 faf4478 Author: David S. Miller Date: Wed Mar 2 14:37:27 2016 -0500 Merge branch 'mlx5-fixes' Saeed Mahameed says: ==================== Mellanox 100G mlx5 driver fixes This series has few bug fixes for the mlx5 Ethernet driver. Eran fixed a locking issue with time-stamping that could cause a soft-lockup when time-stamping is enabled. Gal fixed the rx/tx packets/bytes counters returned by the driver to actually went through the network stack. Tariq removed a poll CQ optimization which could lead the driver to stop getting interrupts for some of the rings, and a did also fix to HW LRO which is currently broken. He also provided RSS and RX hash fixes for the case of changing the number of rx rings the RX hash/RSS configuration will be out of sync. The time stamping fix from Eran is not for -stable as the feature was only introduced in 4.5 but all of the others are. Changes fro V0: - Eran addressed the irqsave/restore comments from "Dave" and fixed them. This series is generated against net commit 4c0b6eaf373a 'net: thunderx: Fix for Qset error due to CQ full' ==================== Signed-off-by: David S. Miller commit faf4478bf8b7b5e6c94cb07a52a00e4d1cd647c6 Author: Gal Pressman Date: Mon Feb 29 21:17:15 2016 +0200 net/mlx5e: Provide correct packet/bytes statistics Using the HW VPort counters for traffic (rx/tx packets/bytes) statistics is wrong. This is because frames dropped due to steering or out of buffer will be counted as received. To fix that, we move to use the packet/bytes accounting done by the driver for what the netdev reports out. Fixes: f62b8bb8f2d3 ('net/mlx5: Extend mlx5_core to support [...]') Signed-off-by: Gal Pressman Signed-off-by: Saeed Mahameed Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 25 ++++++++--------------- 1 file changed, 8 insertions(+), 17 deletions(-) commit b081da5ee1860d1874381a413a1b71d8f9f67e83 Author: Gal Pressman Date: Mon Feb 29 21:17:14 2016 +0200 net/mlx5e: Add rx/tx bytes software counters Sum up rx/tx bytes in software as we do for rx/tx packets, to be reported in upcoming statistics fix. Signed-off-by: Gal Pressman Signed-off-by: Saeed Mahameed Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en.h | 8 ++++++-- drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 1 + drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 9 ++++++--- 3 files changed, 13 insertions(+), 5 deletions(-) commit 85082dba0a5059c538cfa786d07f5ec5370d22fe Author: Tariq Toukan Date: Mon Feb 29 21:17:13 2016 +0200 net/mlx5e: Correctly handle RSS indirection table when changing number of channels Upon changing num_channels, reset the RSS indirection table to match the new value. Fixes: 2d75b2bc8a8c ('net/mlx5e: Add ethtool RSS configuration options') Signed-off-by: Tariq Toukan Signed-off-by: Saeed Mahameed Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en.h | 2 ++ drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c | 2 ++ drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 15 +++++++++++---- 3 files changed, 15 insertions(+), 4 deletions(-) commit bdfc028de1b3cd59490d5413a5c87b0fa50040c2 Author: Tariq Toukan Date: Mon Feb 29 21:17:12 2016 +0200 net/mlx5e: Fix ethtool RX hash func configuration change We should modify TIRs explicitly to apply the new RSS configuration. The light ndo close/open calls do not "refresh" them. Fixes: 2d75b2bc8a8c ('net/mlx5e: Add ethtool RSS configuration options') Signed-off-by: Tariq Toukan Signed-off-by: Saeed Mahameed Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en.h | 3 ++ .../net/ethernet/mellanox/mlx5/core/en_ethtool.c | 34 +++++++++++++++------- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 27 ++++++++++------- include/linux/mlx5/mlx5_ifc.h | 4 ++- 4 files changed, 46 insertions(+), 22 deletions(-) commit 0ad9b20415a461332611666301e7812900a15ad4 Author: Eran Ben Elisha Date: Mon Feb 29 21:17:11 2016 +0200 net/mlx5e: Fix soft lockup when HW Timestamping is enabled Readers/Writers lock for SW timecounter was acquired without disabling interrupts on local CPU. The problematic scenario: * HW timestamping is enabled * Timestamp overflow periodic service task is running on local CPU and holding write_lock for SW timecounter * Completion arrives, triggers interrupt for local CPU. Interrupt routine calls napi_schedule(), which triggers rx/tx skb process. An attempt to read SW timecounter using read_lock is done, which is already locked by a writer on the same CPU and cause soft lockup. Add irqsave/irqrestore for when using the readers/writers lock for writing. Fixes: ef9814deafd0 ('net/mlx5e: Add HW timestamping (TS) support') Signed-off-by: Eran Ben Elisha Signed-off-by: Saeed Mahameed Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_clock.c | 25 +++++++++++++--------- 1 file changed, 15 insertions(+), 10 deletions(-) commit ab0394fe2c258fdb5086c51a251b28f8ee7ab35c Author: Tariq Toukan Date: Mon Feb 29 21:17:10 2016 +0200 net/mlx5e: Fix LRO modify Ethtool LRO enable/disable is broken, as of today we only modify TCP TIRs in order to apply the requested configuration. Hardware requires that all TIRs pointing to the same RQ should share the same LRO configuration. For that all other TIRs' LRO fields must be modified as well. Fixes: 5c50368f3831 ('net/mlx5e: Light-weight netdev open/stop') Signed-off-by: Tariq Toukan Signed-off-by: Saeed Mahameed Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit 59a7c2fd336eaafb030aac9c91ac21d136a99f33 Author: Tariq Toukan Date: Mon Feb 29 21:17:09 2016 +0200 net/mlx5e: Remove wrong poll CQ optimization With the MLX5E_CQ_HAS_CQES optimization flag, the following buggy flow might occur: - Suppose RX is always busy, TX has a single packet every second. - We poll a single TX cqe and clear its flag. - We never arm it again as RX is always busy. - TX CQ flag is never changed, and new TX cqes are not polled. We revert this optimization. Fixes: e586b3b0baee ('net/mlx5: Ethernet Datapath files') Signed-off-by: Tariq Toukan Signed-off-by: Saeed Mahameed Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en.h | 5 ----- drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 7 ------- drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 10 +--------- drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c | 1 - 4 files changed, 1 insertion(+), 22 deletions(-) commit 607e681111800f9bbfcd823a385a45dd0295dfb8 Author: Chunhao Lin Date: Thu Mar 3 00:59:15 2016 +0800 r8169: Enable RX_MULTI_EN for RTL_GIGA_MAC_VER_41~48 For RTL8168G/RTL8168H/RTL8411B/RTL8107E, enable this flag to eliminate message "AMD-Vi: Event logged [IO_PAGE_FAULT device=01:00.0 domain=0x0002 address=0x0000000000003000 flags=0x0050] in dmesg. Signed-off-by: Chunhao Lin Signed-off-by: David S. Miller drivers/net/ethernet/realtek/r8169.c | 4 ---- 1 file changed, 4 deletions(-) commit 68df7247f43b925f3e091a55318f76569e0f3187 Merge: 768c83a 2af8c4d Author: David S. Miller Date: Wed Mar 2 13:35:31 2016 -0500 Merge tag 'mac80211-for-davem-2016-03-02' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211 Johannes Berg says: ==================== Here are a few more fixes for the current cycle: * check GCMP encryption vs. fragmentation properly; we'd found this problem quite a while ago but waited for the 802.11 spec to be updated * fix RTS/CTS logic in minstrel_ht * fix RX of certain public action frames in AP mode * add mac80211_hwsim to MAC80211 in MAINTAINERS, this helps the kbuild robot pick up the right tree for it ==================== Signed-off-by: David S. Miller commit 768c83a4bc2f709f6f05a1fa89dcaf508f353d0f Merge: 735c1e2 7e88009 Author: David S. Miller Date: Wed Mar 2 13:31:58 2016 -0500 Merge branch 'bnx2x-fixes' Michal Schmidt says: ==================== bnx2x: endianness fixes this fixes a VLAN crash and some SRIOV bugs in bnx2x observed on ppc64. ==================== Signed-off-by: David S. Miller commit 7e88009b9b2a22a20064abdb2a6536eeb3bcf432 Author: Michal Schmidt Date: Wed Mar 2 13:47:11 2016 +0100 bnx2x: fix indentation in bnx2x_sp_task() Fix a case of misleading code indentation. Signed-off-by: Michal Schmidt Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8d1c6bcb0f7f6e9f1481bcd3a1c52e75cc1f7fa4 Author: Michal Schmidt Date: Wed Mar 2 13:47:10 2016 +0100 bnx2x: define event data reserved fields as little-endian For consistency with other event data structs and to lessen the chance of a mistake should one of the reserved fields become used in the future, define the reserved fields as little-endian. Signed-off-by: Michal Schmidt Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit da472731d8d0a50c451f5116477ffd9b3165f309 Author: Michal Schmidt Date: Wed Mar 2 13:47:09 2016 +0100 bnx2x: define fields of struct cfc_del_event_data as little-endian There were no missing endianness conversions in this case, but the fields of struct cfc_del_event_data should be defined as little-endian to get rid of the ugly (__force __le32) casts. Signed-off-by: Michal Schmidt Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h | 6 +++--- drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 3 +-- drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c | 3 +-- 3 files changed, 5 insertions(+), 7 deletions(-) commit ca4f2d5036be809b0f82ce38a7663d237efa3986 Author: Michal Schmidt Date: Wed Mar 2 13:47:08 2016 +0100 bnx2x: access cfc_del_event only if the opcode is CFC_DEL It's not really a bug, but it was odd that bnx2x_eq_int() read the message data as if it were a cfc_del_event regardless of the event type. It's cleaner to access only the appropriate member of union event_data after checking the event opcode. Signed-off-by: Michal Schmidt Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit a524ef77d54d7e12045841f4fcc430c1850f71f2 Author: Michal Schmidt Date: Wed Mar 2 13:47:07 2016 +0100 bnx2x: fix receive of VF->PF mailbox messages by the PF on big-endian On ppc64 the PF did not receive messages from VFs correctly. Fields of struct vf_pf_event_data are little-endian. Signed-off-by: Michal Schmidt Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h | 6 +++--- drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c | 6 ++++-- 2 files changed, 7 insertions(+), 5 deletions(-) commit 5cc5c2d2e5a46c7395a0453f9ea1a446ac4c1b97 Author: Michal Schmidt Date: Wed Mar 2 13:47:06 2016 +0100 bnx2x: fix sending VF->PF messages on big-endian When a VF is sending a message to the PF, it needs to trigger the PF to tell it the message is ready. The trigger did not work on ppc64. No interrupt appeared in the PF. The bug is due to confusion about the layout of struct trigger_vf_zone. In bnx2x_send_msg2pf() the trigger is written using writeb(), not writel(), so the attempt to define the struct with a reversed layout on big-endian is counter-productive. Signed-off-by: Michal Schmidt Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h | 6 ------ 1 file changed, 6 deletions(-) commit 9cd753a1f449b9af49a4c994ffab8c4f99d91f14 Author: Michal Schmidt Date: Wed Mar 2 13:47:05 2016 +0100 bnx2x: fix crash on big-endian when adding VLAN bnx2x crashes during the initialization of the 8021q module on ppc64. The bug is a missing conversion from le32 in bnx2x_handle_classification_eqe() when obtaining the cid value from struct eth_event_data. The fields in struct eth_event_data should all be declared as little-endian and conversions added where missing. Signed-off-by: Michal Schmidt Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h | 6 +++--- drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 13 +++++-------- drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c | 9 ++++----- 3 files changed, 12 insertions(+), 16 deletions(-) commit f983cd32cd5d2ec47ac8868f387bad15e8f11f85 Merge: 12f1d7e b4f09ae Author: Linus Torvalds Date: Wed Mar 2 09:46:19 2016 -0800 Merge branch 'parisc-4.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux Pull parisc fixes from Helge Deller: "We wire up the copy_file_range syscall, fix two bugs in the parisc ptrace code and have a trivial fix for floppy.h to clarify an expression with parentheses" * 'parisc-4.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux: parisc: Wire up copy_file_range syscall parisc: Fix ptrace syscall number and return value modification parisc: Use parentheses around expression in floppy.h commit 12f1d7e4932a40100177be5681f1a26f46265217 Merge: 39680f5 9589995 Author: Linus Torvalds Date: Wed Mar 2 09:15:21 2016 -0800 Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6 Pull cifs fixes from Steve French: "Various small CIFS/SMB3 fixes for stable: Fixes address oops that can occur when accessing Macs with SMB3, and another problem found to Samba when read responses queued (e.g. with gluster under Samba)" * 'for-next' of git://git.samba.org/sfrench/cifs-2.6: CIFS: Fix duplicate line introduced by clone_file_range patch Fix cifs_uniqueid_to_ino_t() function for s390x CIFS: Fix SMB2+ interim response processing for read requests cifs: fix out-of-bounds access in lease parsing commit 39680f50ae54cbbb6e72ac38b8329dd3eb9105f4 Author: Linus Torvalds Date: Tue Mar 1 11:56:22 2016 -0800 userfaultfd: don't block on the last VM updates at exit time The exit path will do some final updates to the VM of an exiting process to inform others of the fact that the process is going away. That happens, for example, for robust futex state cleanup, but also if the parent has asked for a TID update when the process exits (we clear the child tid field in user space). However, at the time we do those final VM accesses, we've already stopped accepting signals, so the usual "stop waiting for userfaults on signal" code in fs/userfaultfd.c no longer works, and the process can become an unkillable zombie waiting for something that will never happen. To solve this, just make handle_userfault() abort any user fault handling if we're already in the exit path past the signal handling state being dead (marked by PF_EXITING). This VM special case is pretty ugly, and it is possible that we should look at finalizing signals later (or move the VM final accesses earlier). But in the meantime this is a fairly minimally intrusive fix. Reported-and-tested-by: Dmitry Vyukov Acked-by: Andrea Arcangeli Signed-off-by: Linus Torvalds fs/userfaultfd.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 0b39c531cfa12dad54eac238c2e303b994df1ef7 Author: Arindam Nath Date: Wed Mar 2 17:19:01 2016 +0530 drm/amdgpu: return from atombios_dp_get_dpcd only when error In amdgpu_connector_hotplug(), we need to start DP link training only after we have received DPCD. The function amdgpu_atombios_dp_get_dpcd() returns non-zero value only when an error condition is met, otherwise returns zero. So in case the function encounters an error, we need to skip rest of the code and return from amdgpu_connector_hotplug() immediately. Only when we are successfull in reading DPCD pin, we should carry on with turning-on the monitor. Signed-off-by: Arindam Nath Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 89913ea615754163ae9a066c9c1b95aa2a2f51b4 Author: Alex Deucher Date: Mon Feb 29 16:11:07 2016 -0500 drm/amdgpu/cz: remove commented out call to enable vce pg This code path is not currently enabled now that we properly respect the vce pg flags, so uncomment the actual pg calls so the code is as it should be we are eventually able to enable vce pg. Reviewed-by: Christian König Reviewed-by: Rex Zhu Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/cz_dpm.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 370afa7ac5dc6c65cebeaee841ae700eb2387a55 Author: Alex Deucher Date: Mon Feb 29 15:29:48 2016 -0500 drm/amdgpu/powerplay/cz: enable/disable vce dpm independent of vce pg If we don't disable it when vce is not in use, we use extra power if vce pg is disabled. Reviewed-by: Christian König Reviewed-by: Rex Zhu Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/cz_clockpowergating.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b3dae7828399ef316e3fabf7e82c6415cb03a02e Author: Alex Deucher Date: Thu Feb 25 11:24:52 2016 -0500 drm/amdgpu/cz: enable/disable vce dpm even if vce pg is disabled I missed this when cleaning up the vce pg handling. Reviewed-by: Christian König Reviewed-by: Rex Zhu Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/cz_dpm.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 9cac537332f5502c103415b25609548c276a09f8 Author: Chunming Zhou Date: Mon Feb 29 14:12:38 2016 +0800 drm/amdgpu/gfx8: specify which engine to wait before vm flush Select between me and pfp properly. Signed-off-by: Chunming Zhou Reviewed-by: Christian König Cc: stable@vger.kernel.org Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit feebe91aa9a9d99d9ec157612a614fadb79beb99 Author: Christian König Date: Fri Feb 26 16:18:15 2016 +0100 drm/amdgpu: apply gfx_v8 fixes to gfx_v7 as well We never ported that back to CIK, so we could run into VM faults here. Signed-off-by: Christian König Reviewed-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 4ea2efae0d117c5b5f44081bab941542d892e758 Author: Rex Zhu Date: Thu Feb 25 17:32:45 2016 +0800 drm/amd/powerplay: send event to notify powerplay all modules are initialized. with this event, powerplay can adjust current power state if needed. Signed-off-by: Rex Zhu Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit dc26a2a2b3f037c2727f514b64e8a865721ec74b Author: Rex Zhu Date: Thu Feb 25 17:16:52 2016 +0800 drm/amd/powerplay: export AMD_PP_EVENT_COMPLETE_INIT task to amdgpu. This is needed to init the dynamic states without a display. To be used in the next commit. Signed-off-by: Rex Zhu Reviewed-by: Alex Deucher drivers/gpu/drm/amd/powerplay/amd_powerplay.c | 5 ++++- drivers/gpu/drm/amd/powerplay/eventmgr/eventactionchains.c | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) commit 5e031d9fe8b0741f11d49667dfc3ebf5454121fd Author: Alex Deucher Date: Wed Feb 24 17:38:38 2016 -0500 drm/radeon/pm: update current crtc info after setting the powerstate On CI, we need to see if the number of crtcs changes to determine whether or not we need to upload the mclk table again. In practice we don't currently upload the mclk table again after the initial load. The only reason you would would be to add new states, e.g., for arbitrary mclk setting which is not currently supported. Acked-by: Christian König Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/radeon_pm.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit eda1d1cf8d18383f19cd2b752f786120efa4768f Author: Alex Deucher Date: Wed Feb 24 17:18:25 2016 -0500 drm/amdgpu/pm: update current crtc info after setting the powerstate On CI, we need to see if the number of crtcs changes to determine whether or not we need to upload the mclk table again. In practice we don't currently upload the mclk table again after the initial load. The only reason you would would be to add new states, e.g., for arbitrary mclk setting which is not currently supported. Acked-by: Jordan Lazare Acked-by: Christian König Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit e1f33be9186363da7955bcb5f0b03e6685544c50 Author: Greg Kurz Date: Tue Feb 16 15:54:28 2016 +0100 vhost: fix error path in vhost_init_used() We don't want side effects. If something fails, we rollback vq->is_le to its previous value. Signed-off-by: Greg Kurz Signed-off-by: Michael S. Tsirkin drivers/vhost/vhost.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit 4e94ebdd06d5dc72b7a40fc12fc496d601fb7bbc Author: Ladi Prosek Date: Mon Feb 1 19:36:31 2016 +0100 virtio-pci: read the right virtio_pci_notify_cap field Looks like a copy-paste bug. The value is used as an optimization and a wrong value probably isn't causing any serious damage. Found when porting this code to Windows. Signed-off-by: Ladi Prosek Signed-off-by: Michael S. Tsirkin drivers/virtio/virtio_pci_modern.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2af8c4dc2e9c7038aefe9a822aa1df62e2b106b7 Author: Johannes Berg Date: Fri Feb 26 10:50:34 2016 +0100 mac80211_hwsim: treat as part of mac80211 for MAINTAINERS Since I maintain this driver as part of mac80211, add it to the file list for mac80211; this helps submitters send it to me instead of Kalle and also makes the build robot apply the patches for it on the right tree for build attempts. Acked-by: Kalle Valo Signed-off-by: Johannes Berg MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit ce0c12b633846a47e103842149a5bac2e5d261ec Author: Heiko Carstens Date: Tue Mar 1 12:58:06 2016 +0100 s390/dasd: fix diag 0x250 inline assembly git commit 1ec2772e0c3c ("s390/diag: add a statistic for diagnose calls") added function calls to gather diagnose statistics. In case of the dasd diag driver the function call was added between a register asm statement which initialized register r2 and the inline assembly itself. The function call clobbers the contents of register r2 and therefore the diag 0x250 call behaves in a more or less random way. Fix this by extracting the function call into a separate function like we do everywhere else. Fixes: 1ec2772e0c3c ("s390/diag: add a statistic for diagnose calls") Cc: # 4.4+ Reported-and-tested-by: Stefan Haberland Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky drivers/s390/block/dasd_diag.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit eda908967feecf7575a8ab74f1695b0445cf324e Author: Chris Wilson Date: Thu Feb 25 21:10:28 2016 +0000 drm/i915: Balance assert_rpm_wakelock_held() for !IS_ENABLED(CONFIG_PM) commit 09731280028ce03e6a27e1998137f1775a2839f3 Author: Imre Deak Date: Wed Feb 17 14:17:42 2016 +0200 drm/i915: Add helper to get a display power ref if it was already enabled left the rpm wakelock assertions unbalanced if CONFIG_PM was disabled as intel_runtime_pm_get_if_in_use() would return true without incrementing the local bookkeeping required for the assertions. Fixes: 09731280028c ("drm/i915: Add helper to get a display power ref if it was already enabled") Signed-off-by: Chris Wilson CC: Mika Kuoppala CC: Joonas Lahtinen CC: Ville Syrjälä Cc: Imre Deak Link: http://patchwork.freedesktop.org/patch/msgid/1456434628-22574-1-git-send-email-chris@chris-wilson.co.uk Reviewed-by: Imre Deak (cherry picked from commit 135dc79efbc119ea5fb34475996983159e6ca31c) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_runtime_pm.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) commit bd90123c4973821775d7ffae9891ad36017702a9 Author: Imre Deak Date: Mon Feb 29 22:49:02 2016 +0200 drm/i915/skl: Fix power domain suspend sequence During system suspend we need to first disable power wells then unitialize the display core. In case power well support is disabled we did this in the wrong order, so fix this up. Fixes: d314cd43 ("drm/i915: fix handling of the disable_power_well module option") CC: stable@vger.kernel.org CC: Patrik Jakobsson Signed-off-by: Imre Deak Reviewed-by: Patrik Jakobsson Link: http://patchwork.freedesktop.org/patch/msgid/1456778945-5411-1-git-send-email-imre.deak@intel.com (cherry picked from commit 2622d79bd9d18fd04b650234e6a218c5f95cf308) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_runtime_pm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 2680d6da455b636dd006636780c0f235c6561d70 Author: Owen Hofmann Date: Tue Mar 1 13:36:13 2016 -0800 kvm: x86: Update tsc multiplier on change. vmx.c writes the TSC_MULTIPLIER field in vmx_vcpu_load, but only when a vcpu has migrated physical cpus. Record the last value written and update in vmx_vcpu_load on any change, otherwise a cpu migration must occur for TSC frequency scaling to take effect. Cc: stable@vger.kernel.org Fixes: ff2c3a1803775cc72dc6f624b59554956396b0ee Signed-off-by: Owen Hofmann Signed-off-by: Paolo Bonzini arch/x86/kvm/vmx.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) commit 0178fd7dcc4451fcb90bec5e91226586962478d2 Author: Michael S. Tsirkin Date: Sun Feb 28 17:35:59 2016 +0200 mips/kvm: fix ioctl error handling Returning directly whatever copy_to_user(...) or copy_from_user(...) returns may not do the right thing if there's a pagefault: copy_to_user/copy_from_user return the number of bytes not copied in this case, but ioctls need to return -EFAULT instead. Fix up kvm on mips to do return copy_to_user(...)) ? -EFAULT : 0; and return copy_from_user(...)) ? -EFAULT : 0; everywhere. Cc: stable@vger.kernel.org Signed-off-by: Michael S. Tsirkin Signed-off-by: Paolo Bonzini arch/mips/kvm/mips.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2b097e9bc3742d4ffc63fe64b8fd44242d662392 Merge: 70e4da7 4cad67f Author: Paolo Bonzini Date: Wed Mar 2 10:31:30 2016 +0100 Merge tag 'kvm-arm-for-4.5-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into kvm-master KVM/ARM fixes for 4.5-rc7 - Fix ioctl error handling on the timer path commit 04fdbc825ffc02fb098964b92de802fff44e73fd Author: Bjørn Mork Date: Tue Mar 1 14:36:32 2016 +0100 USB: qcserial: add Sierra Wireless EM74xx device ID The MC74xx and EM74xx modules use different IDs by default, according to the Lenovo EM7455 driver for Windows. Cc: Signed-off-by: Bjørn Mork Signed-off-by: Johan Hovold drivers/usb/serial/qcserial.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 2d02b8bdba322b527c5f5168ce1ca10c2d982a78 Author: Timothy Pearson Date: Fri Feb 26 15:29:32 2016 -0600 drm/ast: Fix incorrect register check for DRAM width During DRAM initialization on certain ASpeed devices, an incorrect bit (bit 10) was checked in the "SDRAM Bus Width Status" register to determine DRAM width. Query bit 6 instead in accordance with the Aspeed AST2050 datasheet v1.05. Signed-off-by: Timothy Pearson Cc: stable@vger.kernel.org Signed-off-by: Dave Airlie drivers/gpu/drm/ast/ast_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 949024d6702d1da8a266f42226d8402f0df078dc Author: Sergei Shtylyov Date: Sun Feb 14 01:26:34 2016 +0300 ARM: dts: porter: remove enable prop from HS-USB device node In the final versions of the Porter board (called "PORTER_C") Renesas decided to get rid of the Maxim Integrated MAX3355 OTG chip and didn't add any other provision to differ the host/gadget mode, so we'll have to remove no longer valid "renesas,enable-gpio" property from the HS-USB device node. Hopefully, the earlier revisions of the board were never seen in the wild... Fixes: c794f6a09a25 ("ARM: shmobile: porter: add HS-USB DT support") Reported-by: Yoshihiro Shimoda Signed-off-by: Sergei Shtylyov Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791-porter.dts | 1 - 1 file changed, 1 deletion(-) commit f4f41c5abcf9acc61939367dc80fd62d19b16edb Merge: fc77dbd d144dfe Author: Greg Kroah-Hartman Date: Tue Mar 1 16:40:10 2016 -0800 Merge tag 'usb-ci-v4.5-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb into usb-linus Peter writes: One bug-fix using ID wakeup, this bug is existed once this driver has written. commit f691b77b1fc491dae601631c8531a0a13e915466 Merge: 7d46af2 a528aca Author: Linus Torvalds Date: Tue Mar 1 15:30:45 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull d_inode/d_flags race fix from Al Viro. I love this fix. Not only does it fix the race in the dentry type handling, it entirely gets rid of the nasty and subtle memory ordering rules for d_type and d_inode, and replaces them with the basic dentry locking rules (sequence numbers under RCU, d_lock elsewhere). * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: use ->d_seq to get coherency between ->d_inode and ->d_flags commit 735c1e2511a5c4e6c451c8b3d29916c4b0fa39ae Author: Sergei Shtylyov Date: Sun Feb 28 22:50:59 2016 +0300 of_mdio: fix kernel-doc for of_phy_connect() The 'flags' parameter of the of_phy_connect() function wasn't described in the kernel-doc comment... Signed-off-by: Sergei Shtylyov Signed-off-by: David S. Miller drivers/of/of_mdio.c | 1 + 1 file changed, 1 insertion(+) commit 3d73e8fac8f84942f15307d6d9cb1dba843d3fb2 Author: Xin Long Date: Sun Feb 28 10:33:11 2016 +0800 sctp: sctp_remaddr_seq_show use the wrong variable to dump transport info Now in sctp_remaddr_seq_show(), we use variable *tsp to get the param *v. but *tsp is also used to traversal transport_addr_list, which will cover the previous value, and make sctp_transport_put work on the wrong transport. So fix it by adding a new variable to get the param *v. Fixes: fba4c330c5b9 ("sctp: hold transport before we access t->asoc in sctp proc") Signed-off-by: Xin Long Signed-off-by: David S. Miller net/sctp/proc.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 40b4f0fd74e46c017814618d67ec9127ff20f157 Author: Xin Long Date: Sun Feb 28 10:03:51 2016 +0800 sctp: lack the check for ports in sctp_v6_cmp_addr As the member .cmp_addr of sctp_af_inet6, sctp_v6_cmp_addr should also check the port of addresses, just like sctp_v4_cmp_addr, cause it's invoked by sctp_cmp_addr_exact(). Now sctp_v6_cmp_addr just check the port when two addresses have different family, and lack the port check for two ipv6 addresses. that will make sctp_hash_cmp() cannot work well. so fix it by adding ports comparison in sctp_v6_cmp_addr(). Signed-off-by: Xin Long Signed-off-by: David S. Miller net/sctp/ipv6.c | 2 ++ 1 file changed, 2 insertions(+) commit b4f09ae6db2a98ff7817c3371aaab39ca22daf80 Author: Helge Deller Date: Tue Mar 1 23:18:43 2016 +0100 parisc: Wire up copy_file_range syscall Signed-off-by: Helge Deller arch/parisc/include/uapi/asm/unistd.h | 3 ++- arch/parisc/kernel/syscall_table.S | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) commit 98e8b6c9ac9d1b1e9d1122dfa6783d5d566bb8f7 Author: Helge Deller Date: Tue Jan 19 16:08:49 2016 +0100 parisc: Fix ptrace syscall number and return value modification Mike Frysinger reported that his ptrace testcase showed strange behaviour on parisc: It was not possible to avoid a syscall and the return value of a syscall couldn't be changed. To modify a syscall number, we were missing to save the new syscall number to gr20 which is then picked up later in assembly again. The effect that the return value couldn't be changed is a side-effect of another bug in the assembly code. When a process is ptraced, userspace expects each syscall to report entrance and exit of a syscall. If a syscall number was given which doesn't exist, we jumped to the normal syscall exit code instead of informing userspace that the (non-existant) syscall exits. This unexpected behaviour confuses userspace and thus the bug was misinterpreted as if we can't change the return value. This patch fixes both problems and was tested on 64bit kernel with 32bit userspace. Signed-off-by: Helge Deller Cc: Mike Frysinger Cc: stable@vger.kernel.org # v4.0+ Tested-by: Mike Frysinger arch/parisc/kernel/ptrace.c | 16 +++++++++++----- arch/parisc/kernel/syscall.S | 5 ++++- 2 files changed, 15 insertions(+), 6 deletions(-) commit f0da74bc8140001c6afd2a176e397c3c3aaca37a Merge: edffc21 99f81af Author: David S. Miller Date: Tue Mar 1 16:52:09 2016 -0500 Merge branch 'phy-micrel-fixes' Alexandre Belloni says: ==================== phy: micrel: fix issues with interrupt on atmel boards Since the phy is not polled anymore, there were issues getting a link on the sama5d* xplained boards. I'm not too sure about were those fixes should go and I'm wondering whether the first one shoud be made generic. For the second one, I found the PHY_HAS_MAGICANEG flag that is not used and I wondering whether this is related to that kind of issue. I had a quick look at the history and could'nt find its use. ==================== Signed-off-by: David S. Miller commit 99f81afc139c6edd14d77a91ee91685a414a1c66 Author: Alexandre Belloni Date: Fri Feb 26 19:18:23 2016 +0100 phy: micrel: Disable auto negotiation on startup Disable auto negotiation on init to properly detect an already plugged cable at boot. At boot, when the phy is started, it is in the PHY_UP state. However, if a cable is plugged at boot, because auto negociation is already enabled at the time we get the first interrupt, the phy is already running. But the state machine then switches from PHY_UP to PHY_AN and calls phy_start_aneg(). phy_start_aneg() will not do anything because aneg is already enabled on the phy. It will then wait for a interrupt before going further. This interrupt will never happen unless the cable is unplugged and then replugged. It was working properly before 321beec5047a (net: phy: Use interrupts when available in NOLINK state) because switching to NOLINK meant starting polling the phy, even if IRQ were enabled. Fixes: 321beec5047a (net: phy: Use interrupts when available in NOLINK state) Signed-off-by: Alexandre Belloni Signed-off-by: David S. Miller drivers/net/phy/micrel.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit f5aba91d7f186cba84af966a741a0346de603cd4 Author: Alexandre Belloni Date: Fri Feb 26 19:18:22 2016 +0100 phy: micrel: Ensure interrupts are reenabled on resume At least on ksz8081, when getting back from power down, interrupts are disabled. ensure they are reenabled if they were previously enabled. This fixes resuming which is failing on the xplained boards from atmel since 321beec5047a (net: phy: Use interrupts when available in NOLINK state) Fixes: 321beec5047a (net: phy: Use interrupts when available in NOLINK state) Signed-off-by: Alexandre Belloni Signed-off-by: David S. Miller drivers/net/phy/micrel.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) commit 9a334d39daad92e2c46539b0bb3bd32b68df2af2 Author: Helge Deller Date: Wed Feb 3 20:54:56 2016 +0100 parisc: Use parentheses around expression in floppy.h David Binderman reported a style issue in the floppy.h header file: arch/parisc/include/asm/floppy.h:221: (style) Boolean result is used in bitwise operation. Clarify expression with parentheses. Reported-by: David Binderman Cc: David Binderman Signed-off-by: Helge Deller arch/parisc/include/asm/floppy.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit edffc2178d4ba10a61e150b42ef5e7d797714eb3 Author: Guillaume Nault Date: Fri Feb 26 18:45:34 2016 +0100 ppp: lock ppp->flags in ppp_read() and ppp_poll() ppp_read() and ppp_poll() can be called concurrently with ppp_ioctl(). In this case, ppp_ioctl() might call ppp_ccp_closed(), which may update ppp->flags while ppp_read() or ppp_poll() is reading it. The update done by ppp_ccp_closed() isn't atomic due to the bit mask operation ('ppp->flags &= ~(SC_CCP_OPEN | SC_CCP_UP)'), so concurrent readers might get transient values. Reading incorrect ppp->flags may disturb the 'ppp->flags & SC_LOOP_TRAFFIC' test in ppp_read() and ppp_poll(), which in turn can lead to improper decision on whether the PPP unit file is ready for reading or not. Since ppp_ccp_closed() is protected by the Rx and Tx locks (with ppp_lock()), taking the Rx lock is enough for ppp_read() and ppp_poll() to guarantee that ppp_ccp_closed() won't update ppp->flags concurrently. The same reasoning applies to ppp->n_channels. The 'n_channels' field can also be written to concurrently by ppp_ioctl() (through ppp_connect_channel() or ppp_disconnect_channel()). These writes aren't atomic (simple increment/decrement), but are protected by both the Rx and Tx locks (like in the ppp->flags case). So holding the Rx lock before reading ppp->n_channels also prevents concurrent writes. Signed-off-by: Guillaume Nault Signed-off-by: David S. Miller drivers/net/ppp/ppp_generic.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit a7f4b98896f6aede26431a3017d32d722fcec5cb Author: Ivan Vecera Date: Fri Feb 26 09:15:50 2016 +0100 bna: fix list corruption Use list_move_tail() to move MAC address entry from list of pending to list of active entries. Simple list_add_tail() leaves the entry also in the first list, this leads to list corruption. Cc: Rasesh Mody Signed-off-by: Ivan Vecera Acked-by: Rasesh Mody Signed-off-by: David S. Miller drivers/net/ethernet/brocade/bna/bna_tx_rx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c44a72a5e8c16751af456cd711720c3aabd40cdd Merge: a6522c0 e9a2d81 Author: David S. Miller Date: Tue Mar 1 15:10:38 2016 -0500 Merge tag 'linux-can-fixes-for-4.5-20160226' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can Marc Kleine-Budde says: ==================== pull-request: can 2016-02-26 this is a pull request of one patch for net. The patch by Maximilain Schneider fixes a kfree() problem during disconnect in the gs_usb driver. ==================== Signed-off-by: David S. Miller commit 197b958c1e76a575d77038cc98b4bebc2134279f Author: Takashi Iwai Date: Tue Mar 1 18:30:18 2016 +0100 ALSA: seq: oss: Don't drain at closing a client The OSS sequencer client tries to drain the pending events at releasing. Unfortunately, as spotted by syzkaller fuzzer, this may lead to an unkillable process state when the event has been queued at the far future. Since the process being released can't be signaled any longer, it remains and waits for the echo-back event in that far future. Back to history, the draining feature was implemented at the time we misinterpreted POSIX definition for blocking file operation. Actually, such a behavior is superfluous at release, and we should just release the device as is instead of keeping it up forever. This patch just removes the draining call that may block the release for too long time unexpectedly. BugLink: http://lkml.kernel.org/r/CACT4Y+Y4kD-aBGj37rf-xBw9bH3GMU6P+MYg4W1e-s-paVD2pg@mail.gmail.com Reported-by: Dmitry Vyukov Cc: Signed-off-by: Takashi Iwai sound/core/seq/oss/seq_oss.c | 2 -- sound/core/seq/oss/seq_oss_device.h | 1 - sound/core/seq/oss/seq_oss_init.c | 16 ---------------- 3 files changed, 19 deletions(-) commit 7314d22a2f5bd40468d57768be368c3d9b4bd726 Author: Wolfram Sang Date: Sun Feb 21 15:16:48 2016 +0100 i2c: brcmstb: allocate correct amount of memory for regmap We want the size of the struct, not of a pointer to it. To be future proof, just dereference the pointer to get the desired type. Fixes: dd1aa2524bc5 ("i2c: brcmstb: Add Broadcom settop SoC i2c controller driver") Acked-by: Gregory Fong Acked-by: Florian Fainelli Reviewed-by: Kamal Dasu Signed-off-by: Wolfram Sang Cc: stable@kernel.org drivers/i2c/busses/i2c-brcmstb.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 7d46af2084eabe73ce4dbf06072fded34b58b0c7 Merge: fc77dbd 397d153 Author: Linus Torvalds Date: Tue Mar 1 08:57:34 2016 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc Pull sparc fixes from David Miller: 1) System call tracing doesn't handle register contents properly across the trace. From Mike Frysinger. 2) Hook up copy_file_range 3) Build fix for 32-bit with newer tools. 4) New sun4v watchdog driver, from Wim Coekaerts. 5) Set context system call has to allow for servicable faults when we flush the register windows to memory * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc: sparc64: Fix sparc64_set_context stack handling. sparc32: Add -Wa,-Av8 to KBUILD_CFLAGS. Add sun4v_wdt watchdog driver sparc: Fix system call tracing register handling. sparc: Hook up copy_file_range syscall. commit 9589995e46d89c70c6fa4723c5f3e5ec04c3c3e3 Author: Steve French Date: Mon Feb 29 01:02:11 2016 -0600 CIFS: Fix duplicate line introduced by clone_file_range patch Commit 04b38d601239b4 ("vfs: pull btrfs clone API to vfs layer") added a duplicated line (in cifsfs.c) which causes a sparse compile warning. Signed-off-by: Steve French Reviewed-by: Christoph Hellwig fs/cifs/cifsfs.c | 1 - 1 file changed, 1 deletion(-) commit c36dd3eaf1a674a45b58b922258d6eaa8932e292 Author: Felix Fietkau Date: Wed Feb 24 12:07:17 2016 +0100 mac80211: minstrel_ht: fix a logic error in RTS/CTS handling RTS/CTS needs to be enabled if the rate is a fallback rate *or* if it's a dual-stream rate and the sta is in dynamic SMPS mode. Cc: stable@vger.kernel.org Fixes: a3ebb4e1b763 ("mac80211: minstrel_ht: handle peers in dynamic SMPS") Reported-by: Matías Richart Signed-off-by: Felix Fietkau Signed-off-by: Johannes Berg net/mac80211/rc80211_minstrel_ht.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1ec7bae8bec9b72e347e01330c745ab5cdd66f0e Author: Jouni Malinen Date: Tue Mar 1 00:29:00 2016 +0200 mac80211: Fix Public Action frame RX in AP mode Public Action frames use special rules for how the BSSID field (Address 3) is set. A wildcard BSSID is used in cases where the transmitter and recipient are not members of the same BSS. As such, we need to accept Public Action frames with wildcard BSSID. Commit db8e17324553 ("mac80211: ignore frames between TDLS peers when operating as AP") added a rule that drops Action frames to TDLS-peers based on an Action frame having different DA (Address 1) and BSSID (Address 3) values. This is not correct since it misses the possibility of BSSID being a wildcard BSSID in which case the Address 1 would not necessarily match. Fix this by allowing mac80211 to accept wildcard BSSID in an Action frame when in AP mode. Fixes: db8e17324553 ("mac80211: ignore frames between TDLS peers when operating as AP") Cc: stable@vger.kernel.org Signed-off-by: Jouni Malinen Signed-off-by: Johannes Berg net/mac80211/rx.c | 1 + 1 file changed, 1 insertion(+) commit 9acc54beb474c81148e2946603d141cf8716b19f Author: Johannes Berg Date: Fri Feb 26 22:13:40 2016 +0100 mac80211: check PN correctly for GCMP-encrypted fragmented MPDUs Just like for CCMP we need to check that for GCMP the fragments have PNs that increment by one; the spec was updated to fix this security issue and now has the following text: The receiver shall discard MSDUs and MMPDUs whose constituent MPDU PN values are not incrementing in steps of 1. Adapt the code for CCMP to work for GCMP as well, luckily the relevant fields already alias each other so no code duplication is needed (just check the aliasing with BUILD_BUG_ON.) Cc: stable@vger.kernel.org Signed-off-by: Johannes Berg net/mac80211/ieee80211_i.h | 2 +- net/mac80211/rx.c | 36 +++++++++++++++++++++++++++--------- 2 files changed, 28 insertions(+), 10 deletions(-) commit 17e2df4613be57d0fab68df749f6b8114e453152 Author: Dennis Kadioglu Date: Tue Mar 1 14:23:29 2016 +0100 ALSA: usb-audio: Add a quirk for Plantronics DA45 Plantronics DA45 does not support reading the sample rate which leads to many lines of "cannot get freq at ep 0x4" and "cannot get freq at ep 0x84". This patch adds the USB ID of the DA45 to quirks.c and avoids those error messages. Signed-off-by: Dennis Kadioglu Cc: Signed-off-by: Takashi Iwai sound/usb/quirks.c | 1 + 1 file changed, 1 insertion(+) commit 537b8a8695ea0fbc857fe68f99cd5294f8fca5e3 Author: Johan Hovold Date: Mon Feb 29 18:56:02 2016 +0100 Revert "USB: serial: add Moxa UPORT 11x0 driver" This reverts commit 0b2b093ad405b56a9e6f4f20a25da77ebfa9549c. Turns out the MOXA vendor driver was basically just a copy of the ti_usb_3410_5052 driver. We don't want two drivers for the same chip even if mxu11x0 had gotten some much needed clean up before merge. So let's remove the mxu11x0 driver, add support for these Moxa devices to the TI driver, and then clean that driver up instead. Signed-off-by: Johan Hovold Acked-by: Greg Kroah-Hartman drivers/usb/serial/Kconfig | 16 - drivers/usb/serial/Makefile | 1 - drivers/usb/serial/mxu11x0.c | 1006 ------------------------------------------ 3 files changed, 1023 deletions(-) commit c0992d0f54847d0d1d85c60fcaa054f175ab1ccd Author: Yegor Yefremov Date: Mon Feb 29 16:39:57 2016 +0100 USB: serial: option: add support for Quectel UC20 Add support for Quectel UC20 and blacklist the QMI interface. Signed-off-by: Yegor Yefremov Cc: stable [johan: amend commit message ] Signed-off-by: Johan Hovold drivers/usb/serial/option.c | 2 ++ 1 file changed, 2 insertions(+) commit 5deef5551c77e488922cc4bf4bc76df63be650d0 Author: Daniele Palmas Date: Mon Feb 29 15:36:11 2016 +0100 USB: serial: option: add support for Telit LE922 PID 0x1045 This patch adds support for 0x1045 PID of Telit LE922. Signed-off-by: Daniele Palmas Cc: stable Signed-off-by: Johan Hovold drivers/usb/serial/option.c | 3 +++ 1 file changed, 3 insertions(+) commit 397d1533b6cce0ccb5379542e2e6d079f6936c46 Author: David S. Miller Date: Tue Mar 1 00:25:32 2016 -0500 sparc64: Fix sparc64_set_context stack handling. Like a signal return, we should use synchronize_user_stack() rather than flush_user_windows(). Reported-by: Ilya Malakhov Signed-off-by: David S. Miller arch/sparc/kernel/signal_64.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 22be3b105597002ad3499bdb9c0aba49c9ab05f7 Author: David S. Miller Date: Sun Jan 17 11:47:29 2016 -0500 sparc32: Add -Wa,-Av8 to KBUILD_CFLAGS. Binutils used to be (erroneously) extremely permissive about instruction usage. But that got fixed and if you don't properly tell it to accept classes of instructions it will fail. This uncovered a specs bug on sparc in gcc where it wouldn't pass the proper options to binutils options. Deal with this in the kernel build by adding -Wa,-Av8 to KBUILD_CFLAGS. Reported-by: Al Viro Signed-off-by: David S. Miller arch/sparc/Makefile | 6 ++++++ 1 file changed, 6 insertions(+) commit 15c665700bf6f4543f003ac0fbb1e9ec692e93f2 Author: Takashi Iwai Date: Mon Feb 29 18:01:18 2016 +0100 ASoC: wm_adsp: Fix enum ctl accesses in a wrong type The firmware ctls like "DSP1 Firmware" in wm_adsp codec driver are enum, while the current driver accesses wrongly via value.integer.value[]. They have to be via value.enumerated.item[] instead. Signed-off-by: Takashi Iwai Signed-off-by: Mark Brown Cc: stable@vger.kernel.org sound/soc/codecs/wm_adsp.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 39a79fe10482572ce76fd724b7915b3ee4cbd81e Author: Takashi Iwai Date: Mon Feb 29 18:01:17 2016 +0100 ASoC: wm9081: Fix enum ctl accesses in a wrong type "Speaker Mode "ctl in wm9081 codec driver is enum, while the current driver accesses wrongly via value.integer.value[]. They have to be via value.enumerated.item[] instead. Signed-off-by: Takashi Iwai Signed-off-by: Mark Brown sound/soc/codecs/wm9081.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 8293004c81dd33e6e91afe2f9a773fe6796893cc Author: Takashi Iwai Date: Mon Feb 29 18:01:16 2016 +0100 ASoC: wm8996: Fix enum ctl accesses in a wrong type "DSP1 EQ Mode" and "DSP2 EQ Mode" ctls in wm8996 codec driver are enum, while the current driver accesses wrongly via value.integer.value[]. They have to be via value.enumerated.item[] instead. Signed-off-by: Takashi Iwai Signed-off-by: Mark Brown sound/soc/codecs/wm8996.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8019c0b37cd5a87107808300a496388b777225bf Author: Takashi Iwai Date: Mon Feb 29 18:01:15 2016 +0100 ASoC: wm8994: Fix enum ctl accesses in a wrong type The DRC Mode like "AIF1DRC1 Mode" and EQ Mode like "AIF1.1 EQ Mode" in wm8994 codec driver are enum ctls, while the current driver accesses wrongly via value.integer.value[]. They have to be via value.enumerated.item[] instead. Signed-off-by: Takashi Iwai Signed-off-by: Mark Brown Cc: stable@vger.kernel.org sound/soc/codecs/wm8994.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 251d604778f1f7bbf29672a79cccc4663a7efd62 Author: Takashi Iwai Date: Mon Feb 29 18:01:14 2016 +0100 ASoC: wm8985: Fix enum ctl accesses in a wrong type "Equalizer Function" ctl in wm8985 codec driver is enum, while the current driver accesses wrongly via value.integer.value[]. They have to be via value.enumerated.item[] instead. Signed-off-by: Takashi Iwai Signed-off-by: Mark Brown sound/soc/codecs/wm8985.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit b5ab265905b3e07ad9dc7d553a074404b25e9200 Author: Takashi Iwai Date: Mon Feb 29 18:01:13 2016 +0100 ASoC: wm8983: Fix enum ctl accesses in a wrong type "Equalizer Function" ctl in wm8983 codec driver is enum, while the current driver accesses wrongly via value.integer.value[]. They have to be via value.enumerated.item[] instead. Signed-off-by: Takashi Iwai Signed-off-by: Mark Brown sound/soc/codecs/wm8983.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit d0784829ae3b0beeb69b476f017d5c8a2eb95198 Author: Takashi Iwai Date: Mon Feb 29 18:01:12 2016 +0100 ASoC: wm8958: Fix enum ctl accesses in a wrong type "MBC Mode", "VSS Mode", "VSS HPF Mode" and "Enhanced EQ Mode" ctls in wm8958 codec driver are enum, while the current driver accesses wrongly via value.integer.value[]. They have to be via value.enumerated.item[] instead. Signed-off-by: Takashi Iwai Signed-off-by: Mark Brown Cc: stable@vger.kernel.org sound/soc/codecs/wm8958-dsp2.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit c41a024c4e770fff999f4164cc4d1696e5f17437 Author: Takashi Iwai Date: Mon Feb 29 18:01:11 2016 +0100 ASoC: wm8904: Fix enum ctl accesses in a wrong type "DRC Mode" and "EQ Mode" ctls in wm8904 codec driver are enum, while the current driver accesses wrongly via value.integer.value[]. They have to be via value.enumerated.item[] instead. Signed-off-by: Takashi Iwai Signed-off-by: Mark Brown sound/soc/codecs/wm8904.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0cad10539b281e88335afd765afaf9885dcfc3ef Author: Takashi Iwai Date: Mon Feb 29 18:01:10 2016 +0100 ASoC: wm8753: Fix enum ctl accesses in a wrong type "DAI Mode" ctl in wm8753 codec driver is enum, while the current driver accesses wrongly via value.integer.value[]. They have to be via value.enumerated.item[] instead. Signed-off-by: Takashi Iwai Signed-off-by: Mark Brown sound/soc/codecs/wm8753.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 154a0fddd4275aa93f4683705579a7d8ec3d177b Author: Takashi Iwai Date: Mon Feb 29 18:08:04 2016 +0100 ASoC: wl1273: Fix enum ctl accesses in a wrong type "Codec Mode" and "Audio Switch" ctls in wl1273 codec driver are enum, while the current driver accesses wrongly via value.integer.value[]. They have to be via value.enumerated.item[] instead. Signed-off-by: Takashi Iwai Signed-off-by: Mark Brown sound/soc/codecs/wl1273.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit 8733f99c23726532918034f4ae599d9e6d27bd1e Author: Takashi Iwai Date: Mon Feb 29 18:08:03 2016 +0100 ASoC: tlv320dac33: Fix enum ctl accesses in a wrong type "FIFO Mode" ctl in tlv320dac33 codec driver is enum, while the current driver accesses wrongly via value.integer.value[]. They have to be via value.enumerated.item[] instead. Signed-off-by: Takashi Iwai Signed-off-by: Mark Brown sound/soc/codecs/tlv320dac33.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 58c0213872816bf24d14364989c82dc4acd58103 Author: Takashi Iwai Date: Mon Feb 29 18:08:02 2016 +0100 ASoC: max98095: Fix enum ctl accesses in a wrong type "Biquad1 Mode" and "Biquad2 Mode" ctls in max98095 codec driver are enum, while the current driver accesses wrongly via value.integer.value[]. They have to be via value.enumerated.item[] instead. Signed-off-by: Takashi Iwai Signed-off-by: Mark Brown sound/soc/codecs/max98095.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9af39044753d7280fa795528598636fe9c58a54e Author: Takashi Iwai Date: Mon Feb 29 18:08:01 2016 +0100 ASoC: max98088: Fix enum ctl accesses in a wrong type "EQ1 Mode" and "EQ2 Mode" ctls in max98088 codec driver are enum, while the current driver accesses wrongly via value.integer.value[]. They have to be via value.enumerated.item[] instead. Signed-off-by: Takashi Iwai Signed-off-by: Mark Brown sound/soc/codecs/max98088.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4b606316129571c46381430852c149855ac50477 Author: Takashi Iwai Date: Mon Feb 29 18:08:00 2016 +0100 ASoC: ab8500: Fix enum ctl accesses in a wrong type "Sidetone Status" and "ANC Status" ctls in ab8500 codec driver are enum, while the current driver accesses wrongly via value.integer.value[]. They have to be via value.enumerated.item[] instead. Signed-off-by: Takashi Iwai Signed-off-by: Mark Brown sound/soc/codecs/ab8500-codec.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit fe9aba13108ee8e15ae59009a26db02460dbb04f Author: Takashi Iwai Date: Mon Feb 29 18:04:42 2016 +0100 ASoC: da732x: Fix enum ctl accesses in a wrong type "DAC1 High Pass Filter Mode" & co in da732x codec driver are enum, while the current driver accesses wrongly via value.integer.value[]. They have to be via value.enumerated.item[] instead. Signed-off-by: Takashi Iwai Signed-off-by: Mark Brown sound/soc/codecs/da732x.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 89300b4e5a5b5b5c145318f3b257291239522da6 Author: Takashi Iwai Date: Mon Feb 29 18:02:59 2016 +0100 ASoC: cs42l51: Fix enum ctl accesses in a wrong type "PCM channel mixer" ctl in cs42l51 codec driver is enum, while the current driver accesses wrongly via value.integer.value[]. They have to be via value.enumerated.item[] instead. Signed-off-by: Takashi Iwai Signed-off-by: Mark Brown sound/soc/codecs/cs42l51.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 508ddfba37cad76d774da8f8d8e2387f0eca5fa4 Author: Takashi Iwai Date: Mon Feb 29 17:29:25 2016 +0100 ASoC: intel: mfld: Fix enum ctl accesses in a wrong type "Playback Switch" and "Lineout Mux" ctls in medfld machine driver are enum, while the current driver accesses wrongly via value.integer.value[]. They have to be via value.enumerated.item[] instead. Signed-off-by: Takashi Iwai Signed-off-by: Mark Brown sound/soc/intel/boards/mfld_machine.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit f4d438eec7fe56d55998195e08dfaa5aa3e08f0c Author: Takashi Iwai Date: Mon Feb 29 17:26:22 2016 +0100 ASoC: omap: rx51: Fix enum ctl accesses in a wrong type "Speaker Function", "Input Select" and "Jack Function" ctls in rx51 driver are enum, while the current driver accesses wrongly via value.integer.value[]. They have to be via value.enumerated.item[] instead. Signed-off-by: Takashi Iwai Acked-by: Jarkko Nikula Signed-off-by: Mark Brown sound/soc/omap/rx51.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit dd90533cd6bbfe075a72ab789b6e9d6f280ba476 Author: Takashi Iwai Date: Mon Feb 29 17:26:21 2016 +0100 ASoC: omap: n810: Fix enum ctl accesses in a wrong type "Jack Function", "Speaker Function" and "Input Select" ctls in n810 driver are enum, while the current driver accesses wrongly via value.integer.value[]. They have to be via value.enumerated.item[] instead. Signed-off-by: Takashi Iwai Acked-by: Jarkko Nikula Signed-off-by: Mark Brown sound/soc/omap/n810.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 419396d5a1d12003a18a58785687697800d2f02a Author: Takashi Iwai Date: Mon Feb 29 17:23:53 2016 +0100 ASoC: pxa: tosa: Fix enum ctl accesses in a wrong type "Jack Function" and "Speaker Function" ctls in tosa are enum, while the current driver accesses wrongly via value.integer.value[]. They have to be via value.enumerated.item[] instead. Signed-off-by: Takashi Iwai Signed-off-by: Mark Brown sound/soc/pxa/tosa.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 49a1ba16ab15b9a572c188fe0d9d79017d2fef99 Author: Takashi Iwai Date: Mon Feb 29 17:23:52 2016 +0100 ASoC: pxa: spitz: Fix enum ctl accesses in a wrong type "Jack Function" and "Speaker Function" ctls in spitz are enum, while the current driver accesses wrongly via value.integer.value[]. They have to be via value.enumerated.item[] instead. Signed-off-by: Takashi Iwai Signed-off-by: Mark Brown sound/soc/pxa/spitz.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 7a3f4b488ce366de6ab2cf19d95353da9814bdd9 Author: Takashi Iwai Date: Mon Feb 29 17:23:51 2016 +0100 ASoC: pxa: poodle: Fix enum ctl accesses in a wrong type "Jack Function" and "Speaker Function" ctls in poodle are enum, while the current driver accesses wrongly via value.integer.value[]. They have to be via value.enumerated.item[] instead. Signed-off-by: Takashi Iwai Signed-off-by: Mark Brown sound/soc/pxa/poodle.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 127ee199d5d232f29ad64bace3b441127fce6cd3 Author: Takashi Iwai Date: Mon Feb 29 17:23:50 2016 +0100 ASoC: pxa: magician: Fix enum ctl accesses in a wrong type "Input Select" ctl in magician driver is an enum, while the current driver accesses wrongly via value.integer.value[]. They have to be via value.enumerated.item[] instead. (Meanwhile "Headphone Switch" and "Speaker Switch" are boolean, so they should stay to access via value.integer.value[] as is.) Signed-off-by: Takashi Iwai Signed-off-by: Mark Brown sound/soc/pxa/magician.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 1457ad0e99dc5b1fe3fe3123d5135c95c00ed74b Author: Takashi Iwai Date: Mon Feb 29 17:23:49 2016 +0100 ASoC: pxa: corgi: Fix enum ctl accesses in a wrong type "Jack Function" and "Speaker Function" ctls in corgi are enum, while the current driver accesses wrongly via value.integer.value[]. They have to be via value.enumerated.item[] instead. Signed-off-by: Takashi Iwai Signed-off-by: Mark Brown sound/soc/pxa/corgi.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 741338f99f16dc24d2d01ac777b0798ae9d10a90 Author: Takashi Iwai Date: Mon Feb 29 17:20:48 2016 +0100 ASoC: dapm: Fix ctl value accesses in a wrong type snd_soc_dapm_dai_link_get() and _put() access the associated ctl values as value.integer.value[]. However, this is an enum ctl, and it has to be accessed via value.enumerated.item[]. The former is long while the latter is unsigned int, so they don't align. Fixes: c66150824b8a ('ASoC: dapm: add code to configure dai link parameters') Cc: Signed-off-by: Takashi Iwai Signed-off-by: Mark Brown sound/soc/soc-dapm.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit ead8f34c701ec7bf3234118b8c746227f30dfd1a Author: Chris Wilson Date: Thu Feb 25 21:10:28 2016 +0000 drm/i915: Balance assert_rpm_wakelock_held() for !IS_ENABLED(CONFIG_PM) commit 09731280028ce03e6a27e1998137f1775a2839f3 Author: Imre Deak Date: Wed Feb 17 14:17:42 2016 +0200 drm/i915: Add helper to get a display power ref if it was already enabled left the rpm wakelock assertions unbalanced if CONFIG_PM was disabled as intel_runtime_pm_get_if_in_use() would return true without incrementing the local bookkeeping required for the assertions. Signed-off-by: Chris Wilson CC: Mika Kuoppala CC: Joonas Lahtinen CC: Ville Syrjälä Reviewed-by: Imre Deak Signed-off-by: Dave Airlie drivers/gpu/drm/i915/intel_runtime_pm.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) commit 3c2002aec3ee3a9fc86ff8f8618f1253c94ec919 Author: Arnd Bergmann Date: Mon Feb 29 17:04:21 2016 +0100 cpufreq: mediatek: allow building as a module The MT8173 cpufreq driver can currently only be built-in, but it has a Kconfig dependency on the thermal core. THERMAL can be a loadable module, which in turn makes this driver impossible to build. It is nicer to make the cpufreq driver a module as well, so this patch turns the option in to a 'tristate' and adapts the dependency accordingly. The driver has no module_exit() function, so it will continue to not support unloading, but it can be built as a module and loaded at runtime now. Signed-off-by: Arnd Bergmann Fixes: 5269e7067cd6 (cpufreq: Add ARM_MT8173_CPUFREQ dependency on THERMAL) Signed-off-by: Rafael J. Wysocki drivers/cpufreq/Kconfig.arm | 4 ++-- drivers/cpufreq/mt8173-cpufreq.c | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) commit ddd30ef4741c30945e43a2956bfbc3afe74a73b5 Author: Arnd Bergmann Date: Mon Feb 29 17:04:20 2016 +0100 cpufreq: qoriq: allow building as module with THERMAL=m My previous patch to avoid link errors with the qoriq cpufreq driver disallowed all of the broken cases, but also prevented the driver from being built when CONFIG_THERMAL is a module. This changes the dependency to allow the cpufreq driver to also be a module in this case, just not built-in. Signed-off-by: Arnd Bergmann Fixes: 8ae1702a0df5 (cpufreq: qoriq: Register cooling device based on device tree) Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 5adebafb75bdfbbe4ec69f14c3613e70f6ed7f6f Author: Leon Romanovsky Date: Sun Feb 21 18:12:26 2016 +0200 IB/core: Fix missed clean call in registration path In case of failure returned from query function in IB device registration, we need to clean IB cache which was missed. This change fixes it. Fixes: 3e153a93a1c1 ('IB/core: Save the device attributes on the device structure') Signed-off-by: Leon Romanovsky Reviewed-by: Ira Weiny Reviewed-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/core/device.c | 1 + 1 file changed, 1 insertion(+) commit 1195c103f6c98d9ff381cac3a8760d4f8a133627 Author: Minghuan Lian Date: Mon Feb 29 17:24:15 2016 -0600 PCI: layerscape: Fix MSG TLP drop setting Some kinds of Layerscape PCIe controllers will forward the received message TLPs to system application address space, which could corrupt system memory or lead to a system hang. Enable MSG_DROP to fix this issue. Signed-off-by: Minghuan Lian Signed-off-by: Bjorn Helgaas drivers/pci/host/pci-layerscape.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) commit 79e3f4a853ed161cd4c06d84b50beebf961a47c6 Author: Murali Karicheri Date: Mon Feb 29 17:18:22 2016 -0600 PCI: keystone: Fix MSI code that retrieves struct pcie_port pointer Commit cbce7900598c ("PCI: designware: Make driver arch-agnostic") changed the host bridge sysdata pointer from the ARM pci_sys_data to the DesignWare pcie_port structure, and changed pcie-designware.c to reflect that. But it did not change the corresponding code in pci-keystone-dw.c, so it caused crashes on Keystone: Unable to handle kernel NULL pointer dereference at virtual address 00000030 pgd = c0003000 [00000030] *pgd=80000800004003, *pmd=00000000 Internal error: Oops: 206 [#1] PREEMPT SMP ARM CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.4.2-00139-gb74f926 #2 Hardware name: Keystone PC is at ks_dw_pcie_msi_irq_unmask+0x24/0x58 Change pci-keystone-dw.c to expect sysdata to be the struct pcie_port pointer. [bhelgaas: changelog] Fixes: cbce7900598c ("PCI: designware: Make driver arch-agnostic") Signed-off-by: Murali Karicheri Signed-off-by: Bjorn Helgaas CC: stable@vger.kernel.org # v4.4+ CC: Zhou Wang drivers/pci/host/pci-keystone-dw.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) commit e6a8c9b337eed56eb481e1b4dd2180c25a1e5310 Author: Joerg Roedel Date: Mon Feb 29 23:49:47 2016 +0100 iommu/vt-d: Use BUS_NOTIFY_REMOVED_DEVICE in hotplug path In the PCI hotplug path of the Intel IOMMU driver, replace the usage of the BUS_NOTIFY_DEL_DEVICE notifier, which is executed before the driver is unbound from the device, with BUS_NOTIFY_REMOVED_DEVICE, which runs after that. This fixes a kernel BUG being triggered in the VT-d code when the device driver tries to unmap DMA buffers and the VT-d driver already destroyed all mappings. Reported-by: Stefani Seibold Cc: stable@vger.kernel.org # v4.3+ Signed-off-by: Joerg Roedel drivers/iommu/dmar.c | 5 +++-- drivers/iommu/intel-iommu.c | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) commit a6522c08987daa6f9ac25a9c08870041a43db6b0 Author: Neil Horman Date: Thu Feb 25 13:02:50 2016 -0500 3c59x: mask LAST_FRAG bit from length field in ring Recently, I fixed a bug in 3c59x: commit 6e144419e4da11a9a4977c8d899d7247d94ca338 Author: Neil Horman Date: Wed Jan 13 12:43:54 2016 -0500 3c59x: fix another page map/single unmap imbalance Which correctly rebalanced dma mapping and unmapping types. Unfortunately it introduced a new bug which causes oopses on older systems. When mapping dma regions, the last entry for a packet in the 3c59x tx ring encodes a LAST_FRAG bit, which is encoded as the high order bit of the buffers length field. When it is unmapped the LAST_FRAG bit is cleared prior to being passed to the unmap function. Unfortunately the commit above fails to do that masking. It was missed in testing because the system on which I tested it had an intel iommu, the driver for which ignores the size field, using only the DMA address as the token to identify the mapping to be released. However, on older systems that rely on swiotlb (or other dma drivers that key off that length field), not masking off that LAST_FRAG high order bit results in parsing a huge size to be release, leading to all sorts of odd corruptions and the like. Fix is easy, just mask the length with 0xFFF. It should really be &(LAST_FRAG-1), but 0xFFF is the style of the file, and I'd like to make this fix minimal and correct before making it prettier. Appies to the net tree cleanly. All testing on both iommu and swiommu based systems produce good results Signed-off-by: Neil Horman CC: Steffen Klassert CC: "David S. Miller" Signed-off-by: David S. Miller drivers/net/ethernet/3com/3c59x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dc8b4afc4a04fac8ee55a19b59f2356a25e7e778 Author: Manuel Lauss Date: Sat Feb 27 16:10:05 2016 +0100 ata: ahci: don't mark HotPlugCapable Ports as external/removable The HPCP bit is set by bioses for on-board sata ports either because they think sata is hotplug capable in general or to allow Windows to display a "device eject" icon on ports which are routed to an external connector bracket. However in Redhat Bugzilla #1310682, users report that with kernel 4.4, where this bit test first appeared, a lot of partitions on sata drives are now mounted automatically. This patch should fix redhat and a lot of other distros which unconditionally automount all devices which have the "removable" bit set. Signed-off-by: Manuel Lauss Signed-off-by: Tejun Heo Fixes: 8a3e33cf92c7 ("ata: ahci: find eSATA ports and flag them as removable" changes userspace behavior) Link: http://lkml.kernel.org/g/56CF35FA.1070500@redhat.com Cc: stable@vger.kernel.org #v4.4+ drivers/ata/libahci.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit d243bed32f5042582896237f88fa1798aee55ff9 Author: Tirumalesh Chalamarla Date: Tue Feb 16 12:08:49 2016 -0800 ahci: Workaround for ThunderX Errata#22536 Due to Errata in ThunderX, HOST_IRQ_STAT should be cleared before leaving the interrupt handler. The patch attempts to satisfy the need. Changes from V2: - removed newfile - code is now under CONFIG_ARM64 Changes from V1: - Rebased on top of libata/for-4.6 - Moved ThunderX intr handler to new file tj: Minor adjustments to comments. Signed-off-by: Tirumalesh Chalamarla Signed-off-by: Tejun Heo drivers/ata/ahci.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) commit 3c4c615d70c8cbdc8ba8c79ed702640930652a79 Author: Vittorio Alfieri Date: Sun Feb 28 14:40:24 2016 +0100 USB: cp210x: Add ID for Parrot NMEA GPS Flight Recorder The Parrot NMEA GPS Flight Recorder is a USB composite device consisting of hub, flash storage, and cp210x usb to serial chip. It is an accessory to the mass-produced Parrot AR Drone 2. The device emits standard NMEA messages which make the it compatible with NMEA compatible software. It was tested using gpsd version 3.11-3 as an NMEA interpreter and using the official Parrot Flight Recorder. Signed-off-by: Vittorio Alfieri Cc: stable Signed-off-by: Johan Hovold drivers/usb/serial/cp210x.c | 1 + 1 file changed, 1 insertion(+) commit 013dd239d6220a4e0dfdf0d45a82c34f1fd73deb Author: Patrik Halfar Date: Sat Feb 20 18:49:56 2016 +0100 USB: qcserial: add Dell Wireless 5809e Gobi 4G HSPA+ (rev3) New revision of Dell Wireless 5809e Gobi 4G HSPA+ Mobile Broadband Card has new idProduct. Bus 002 Device 006: ID 413c:81b3 Dell Computer Corp. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x413c Dell Computer Corp. idProduct 0x81b3 bcdDevice 0.06 iManufacturer 1 Sierra Wireless, Incorporated iProduct 2 Dell Wireless 5809e Gobi™ 4G HSPA+ Mobile Broadband Card iSerial 3 bNumConfigurations 2 Signed-off-by: Patrik Halfar Cc: stable Signed-off-by: Johan Hovold drivers/usb/serial/qcserial.c | 1 + 1 file changed, 1 insertion(+) commit a528aca7f359f4b0b1d72ae406097e491a5ba9ea Author: Al Viro Date: Mon Feb 29 12:12:46 2016 -0500 use ->d_seq to get coherency between ->d_inode and ->d_flags Games with ordering and barriers are way too brittle. Just bump ->d_seq before and after updating ->d_inode and ->d_flags type bits, so that verifying ->d_seq would guarantee they are coherent. Cc: stable@vger.kernel.org # v3.13+ Signed-off-by: Al Viro fs/dcache.c | 20 +++++--------------- include/linux/dcache.h | 4 +--- 2 files changed, 6 insertions(+), 18 deletions(-) commit eab3c4db193f5fcccf70e884de9a922ca2c63d80 Author: Takashi Iwai Date: Mon Feb 29 14:26:43 2016 +0100 ALSA: hdsp: Fix wrong boolean ctl value accesses snd-hdsp driver accesses enum item values (int) instead of boolean values (long) wrongly for some ctl elements. This patch fixes them. Cc: Signed-off-by: Takashi Iwai sound/pci/rme9652/hdsp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c1099c3294c2344110085a38c50e478a5992b368 Author: Takashi Iwai Date: Mon Feb 29 14:32:42 2016 +0100 ALSA: hdspm: Fix zero-division HDSPM driver contains a code issuing zero-division potentially in system sample rate ctl code. This patch fixes it by not processing a zero or invalid rate value as a divisor, as well as excluding the invalid value to be passed via the given ctl element. Cc: Signed-off-by: Takashi Iwai sound/pci/rme9652/hdspm.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 537e48136295c5860a92138c5ea3959b9542868b Author: Takashi Iwai Date: Mon Feb 29 14:25:16 2016 +0100 ALSA: hdspm: Fix wrong boolean ctl value accesses snd-hdspm driver accesses enum item values (int) instead of boolean values (long) wrongly for some ctl elements. This patch fixes them. Cc: Signed-off-by: Takashi Iwai sound/pci/rme9652/hdspm.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit b6809ee573cc2f8de97f7c8f45eacc5db1129060 Author: Joerg Roedel Date: Fri Feb 26 16:48:59 2016 +0100 iommu/amd: Detach device from domain before removal Detach the device that is about to be removed from its domain (if it has one) to clear any related state like DTE entry and device's ATS state. Reported-by: Kelly Zytaruk Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 4 ++++ 1 file changed, 4 insertions(+) commit 887349f69f37e71e2a8bfbd743831625a0b2ff51 Author: Michael S. Tsirkin Date: Sun Feb 28 17:35:59 2016 +0200 MIPS: kvm: Fix ioctl error handling. Calling return copy_to_user(...) or return copy_from_user in an ioctl will not do the right thing if there's a pagefault: copy_to_user/copy_from_user return the number of bytes not copied in this case. Fix up kvm on mips to do return copy_to_user(...)) ? -EFAULT : 0; and return copy_from_user(...)) ? -EFAULT : 0; everywhere. Signed-off-by: Michael S. Tsirkin Cc: Paolo Bonzini Cc: James Hogan Cc: linux-kernel@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: stable@vger.kernel.org Cc: kvm@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/12709/ Signed-off-by: Ralf Baechle arch/mips/kvm/mips.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 56fa81fc9a5445938f3aa2e63d15ab63dc938ad6 Author: Govindraj Raja Date: Mon Feb 29 11:41:20 2016 +0000 MIPS: scache: Fix scache init with invalid line size. In current scache init cache line_size is determined from cpu config register, however if there there no scache then mips_sc_probe_cm3 function populates a invalid line_size of 2. The invalid line_size can cause a NULL pointer deference during r4k_dma_cache_inv as r4k_blast_scache is populated based on line_size. Scache line_size of 2 is invalid option in r4k_blast_scache_setup. This issue was faced during a MIPS I6400 based virtual platform bring up where scache was not available in virtual platform model. Signed-off-by: Govindraj Raja Fixes: 7d53e9c4cd21("MIPS: CM3: Add support for CM3 L2 cache.") Cc: Paul Burton Cc: James Hogan Cc: Ralf Baechle Cc: James Hartley Cc: linux-mips@linux-mips.org Cc: stable@vger.kernel.org # v4.2+ Patchwork: https://patchwork.linux-mips.org/patch/12710/ Signed-off-by: Ralf Baechle arch/mips/mm/sc-mips.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 923adb1646d5ba739d2a1e63ee20d60574d9da8e Author: Frederic Barrat Date: Wed Feb 24 18:27:51 2016 +0100 cxl: Fix PSL timebase synchronization detection The PSL timebase synchronization is seemingly failing for configuration not including VIRT_CPU_ACCOUNTING_NATIVE. The driver shows the following trace in dmesg: PSL: Timebase sync: giving up! The PSL timebase register is actually syncing correctly, but the cxl driver is not detecting it. Fix is to use the proper timebase-to-time conversion. Signed-off-by: Frederic Barrat Cc: # 4.3+ Acked-by: Michael Neuling Reviewed-by: Matthew R. Ochs Acked-by: Ian Munsie Reviewed-by: Andrew Donnellan Reviewed-by: Vaibhav Jain Signed-off-by: Michael Ellerman drivers/misc/cxl/pci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 51ff5d7767eae285969da75c209e9425d84b012d Author: Daniel Sanders Date: Tue Feb 23 10:29:20 2016 +0000 MIPS: Avoid variant of .type unsupported by LLVM Assembler The target independent parts of the LLVM Lexer considers 'fault@function' to be a single token representing the 'fault' symbol with a 'function' modifier. However, this is not the case in the .type directive where 'function' refers to STT_FUNC from the ELF standard. Although GAS accepts it, '.type symbol@function' is an undocumented form of this directive. The documentation specifies a comma between the symbol and '@function'. Signed-off-by: Scott Egerton Signed-off-by: Daniel Sanders Reviewed-by: Maciej W. Rozycki Cc: Paul Burton Cc: Leonid Yegoshin Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/12587/ Signed-off-by: Ralf Baechle arch/mips/kernel/r2300_fpu.S | 2 +- arch/mips/kernel/r4k_fpu.S | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 71e60073ca7b5f931b16f29add16c68b2e06949a Author: Ralf Baechle Date: Tue Feb 16 12:29:46 2016 +0100 MIPS: jz4740: Fix surviving instance of irq_to_gpio() This is fallout from commit 832f5dacfa0b ("MIPS: Remove all the uses of custom gpio.h"). Signed-off-by: Ralf Baechle Suggested-by: Lars-Peter Clausen arch/mips/jz4740/gpio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4cad67fca3fc952d6f2ed9e799621f07666a560f Author: Michael S. Tsirkin Date: Sun Feb 28 17:32:07 2016 +0200 arm/arm64: KVM: Fix ioctl error handling Calling return copy_to_user(...) in an ioctl will not do the right thing if there's a pagefault: copy_to_user returns the number of bytes not copied in this case. Fix up kvm to do return copy_to_user(...)) ? -EFAULT : 0; everywhere. Cc: stable@vger.kernel.org Acked-by: Christoffer Dall Signed-off-by: Michael S. Tsirkin Signed-off-by: Marc Zyngier arch/arm/kvm/guest.c | 2 +- arch/arm64/kvm/guest.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 1ee9f4bd1a97026a7b2d7ae9f1f74b45680d0003 Author: Yadan Fan Date: Mon Feb 29 14:44:57 2016 +0800 Fix cifs_uniqueid_to_ino_t() function for s390x This issue is caused by commit 02323db17e3a7 ("cifs: fix cifs_uniqueid_to_ino_t not to ever return 0"), when BITS_PER_LONG is 64 on s390x, the corresponding cifs_uniqueid_to_ino_t() function will cast 64-bit fileid to 32-bit by using (ino_t)fileid, because ino_t (typdefed __kernel_ino_t) is int type. It's defined in arch/s390/include/uapi/asm/posix_types.h #ifndef __s390x__ typedef unsigned long __kernel_ino_t; ... #else /* __s390x__ */ typedef unsigned int __kernel_ino_t; So the #ifdef condition is wrong for s390x, we can just still use one cifs_uniqueid_to_ino_t() function with comparing sizeof(ino_t) and sizeof(u64) to choose the correct execution accordingly. Signed-off-by: Yadan Fan CC: stable Signed-off-by: Steve French fs/cifs/cifsfs.h | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit 6cc3b24235929b54acd5ecc987ef11a425bd209e Author: Pavel Shilovsky Date: Sat Feb 27 11:58:18 2016 +0300 CIFS: Fix SMB2+ interim response processing for read requests For interim responses we only need to parse a header and update a number credits. Now it is done for all SMB2+ command except SMB2_READ which is wrong. Fix this by adding such processing. Signed-off-by: Pavel Shilovsky Tested-by: Shirish Pargaonkar CC: Stable Signed-off-by: Steve French fs/cifs/cifssmb.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) commit deb7deff2f00bdbbcb3d560dad2a89ef37df837d Author: Justin Maggard Date: Tue Feb 9 15:52:08 2016 -0800 cifs: fix out-of-bounds access in lease parsing When opening a file, SMB2_open() attempts to parse the lease state from the SMB2 CREATE Response. However, the parsing code was not careful to ensure that the create contexts are not empty or invalid, which can lead to out- of-bounds memory access. This can be seen easily by trying to read a file from a OSX 10.11 SMB3 server. Here is sample crash output: BUG: unable to handle kernel paging request at ffff8800a1a77cc6 IP: [] SMB2_open+0x804/0x960 PGD 8f77067 PUD 0 Oops: 0000 [#1] SMP Modules linked in: CPU: 3 PID: 2876 Comm: cp Not tainted 4.5.0-rc3.x86_64.1+ #14 Hardware name: NETGEAR ReadyNAS 314 /ReadyNAS 314 , BIOS 4.6.5 10/11/2012 task: ffff880073cdc080 ti: ffff88005b31c000 task.ti: ffff88005b31c000 RIP: 0010:[] [] SMB2_open+0x804/0x960 RSP: 0018:ffff88005b31fa08 EFLAGS: 00010282 RAX: 0000000000000015 RBX: 0000000000000000 RCX: 0000000000000006 RDX: 0000000000000000 RSI: 0000000000000246 RDI: ffff88007eb8c8b0 RBP: ffff88005b31fad8 R08: 666666203d206363 R09: 6131613030383866 R10: 3030383866666666 R11: 00000000000002b0 R12: ffff8800660fd800 R13: ffff8800a1a77cc2 R14: 00000000424d53fe R15: ffff88005f5a28c0 FS: 00007f7c8a2897c0(0000) GS:ffff88007eb80000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b CR2: ffff8800a1a77cc6 CR3: 000000005b281000 CR4: 00000000000006e0 Stack: ffff88005b31fa70 ffffffff88278789 00000000000001d3 ffff88005f5a2a80 ffffffff00000003 ffff88005d029d00 ffff88006fde05a0 0000000000000000 ffff88005b31fc78 ffff88006fde0780 ffff88005b31fb2f 0000000100000fe0 Call Trace: [] ? cifsConvertToUTF16+0x159/0x2d0 [] smb2_open_file+0x98/0x210 [] ? __kmalloc+0x1c/0xe0 [] cifs_open+0x2a4/0x720 [] do_dentry_open+0x1ff/0x310 [] ? cifsFileInfo_get+0x30/0x30 [] vfs_open+0x52/0x60 [] path_openat+0x170/0xf70 [] ? remove_wait_queue+0x48/0x50 [] do_filp_open+0x79/0xd0 [] ? __alloc_fd+0x3a/0x170 [] do_sys_open+0x114/0x1e0 [] SyS_open+0x19/0x20 [] entry_SYSCALL_64_fastpath+0x12/0x6a Code: 4d 8d 6c 07 04 31 c0 4c 89 ee e8 47 6f e5 ff 31 c9 41 89 ce 44 89 f1 48 c7 c7 28 b1 bd 88 31 c0 49 01 cd 4c 89 ee e8 2b 6f e5 ff <45> 0f b7 75 04 48 c7 c7 31 b1 bd 88 31 c0 4d 01 ee 4c 89 f6 e8 RIP [] SMB2_open+0x804/0x960 RSP CR2: ffff8800a1a77cc6 ---[ end trace d9f69ba64feee469 ]--- Signed-off-by: Justin Maggard Signed-off-by: Steve French CC: Stable fs/cifs/smb2pdu.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) commit b24e7ad1fdc22177eb3e51584e1cfcb45d818488 Author: Takashi Iwai Date: Sun Feb 28 11:41:47 2016 +0100 ALSA: timer: Fix ioctls for X32 ABI X32 ABI takes the 64bit timespec, thus the timer user status ioctl becomes incompatible with IA32. This results in NOTTY error when the ioctl is issued. Meanwhile, this struct in X32 is essentially identical with the one in X86-64, so we can just bypassing to the existing code for this specific compat ioctl. Cc: # v3.4+ Signed-off-by: Takashi Iwai sound/core/timer_compat.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 3a72494ac2a3bd229db941d51e7efe2f6ccd947b Author: Takashi Iwai Date: Sun Feb 28 11:36:14 2016 +0100 ALSA: timer: Fix broken compat timer user status ioctl The timer user status compat ioctl returned the bogus struct used for 64bit architectures instead of the 32bit one. This patch addresses it to return the proper struct. Cc: Signed-off-by: Takashi Iwai sound/core/timer_compat.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 2251fbbc1539f05b0b206b37a602d5776be37252 Author: Takashi Iwai Date: Sun Feb 28 11:28:08 2016 +0100 ALSA: rawmidi: Fix ioctls X32 ABI Like the previous fixes for ctl and PCM, we need a fix for incompatible X32 ABI regarding the rawmidi: namely, struct snd_rawmidi_status has the timespec, and the size and the alignment on X32 differ from IA32. This patch fixes the incompatible ioctl for X32. Cc: # v3.4+ Signed-off-by: Takashi Iwai sound/core/rawmidi_compat.c | 53 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) commit dd7e3f805231cf83317c39bd346d5e4839f5cbb0 Author: Takashi Iwai Date: Sun Feb 28 11:30:53 2016 +0100 ALSA: rawmidi: Use comapt_put_timespec() Instead of open-coding, use the existing helper to copy a 32bit timespec from/to 64bit. Signed-off-by: Takashi Iwai sound/core/rawmidi_compat.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 513ace79b657e2022a592e77f24074e088681ecc Author: Takashi Iwai Date: Sun Feb 28 11:23:09 2016 +0100 ALSA: pcm: Fix ioctls for X32 ABI X32 ABI uses the 64bit timespec in addition to 64bit alignment of 64bit values. This leads to incompatibilities in some PCM ioctls involved with snd_pcm_channel_info, snd_pcm_status and snd_pcm_sync_ptr structs. Fix the PCM compat ABI for these ioctls like the previous commit for ctl API. Reported-by: Steven Newbury Cc: # v3.4+ Signed-off-by: Takashi Iwai sound/core/pcm_compat.c | 177 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 176 insertions(+), 1 deletion(-) commit 6236d8bb2afcfe71b88ecea554e0dc638090a45f Author: Takashi Iwai Date: Sat Feb 27 17:52:42 2016 +0100 ALSA: ctl: Fix ioctls for X32 ABI The X32 ABI takes the same alignment like x86-64, and this may result in the incompatible struct size from ia32. Unfortunately, we hit this in some control ABI: struct snd_ctl_elem_value differs between them due to the position of 64bit variable array. This ends up with the unknown ioctl (ENOTTY) error. The fix is to add the compat entries for the new aligned struct. Reported-and-tested-by: Steven Newbury Cc: # v3.4+ Signed-off-by: Takashi Iwai sound/core/control_compat.c | 90 +++++++++++++++++++++++++++++++++++++-------- 1 file changed, 74 insertions(+), 16 deletions(-) commit fc77dbd34c5c99bce46d40a2491937c3bcbd10af Author: Linus Torvalds Date: Sun Feb 28 08:41:20 2016 -0800 Linux 4.5-rc6 Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1b9540ce033ad15802e36ad1cd1c36bdad98eeea Merge: 4b696dc 0da4cf3 Author: Linus Torvalds Date: Sun Feb 28 07:52:00 2016 -0800 Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull perf fixes from Thomas Gleixner: "A rather largish series of 12 patches addressing a maze of race conditions in the perf core code from Peter Zijlstra" * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: perf: Robustify task_function_call() perf: Fix scaling vs. perf_install_in_context() perf: Fix scaling vs. perf_event_enable() perf: Fix scaling vs. perf_event_enable_on_exec() perf: Fix ctx time tracking by introducing EVENT_TIME perf: Cure event->pending_disable race perf: Fix race between event install and jump_labels perf: Fix cloning perf: Only update context time when active perf: Allow perf_release() with !event->ctx perf: Do not double free perf: Close install vs. exit race commit 4b696dcb1a55e40648ad0eec4af991c72f945a85 Merge: 76c03f0 9bf148cb Author: Linus Torvalds Date: Sun Feb 28 07:49:23 2016 -0800 Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 fixes from Thomas Gleixner: "This update contains: - Hopefully the last ASM CLAC fixups - A fix for the Quark family related to the IMR lock which makes kexec work again - A off-by-one fix in the MPX code. Ironic, isn't it? - A fix for X86_PAE which addresses once more an unsigned long vs phys_addr_t hickup" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/mpx: Fix off-by-one comparison with nr_registers x86/mm: Fix slow_virt_to_phys() for X86_PAE again x86/entry/compat: Add missing CLAC to entry_INT80_32 x86/entry/32: Add an ASM_CLAC to entry_SYSENTER_32 x86/platform/intel/quark: Change the kernel's IMR lock bit to false commit 76c03f0f5d496be6a6b81df5f6e16551c07b3c0a Merge: f055ae0 c219b7d Author: Linus Torvalds Date: Sun Feb 28 07:48:01 2016 -0800 Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull scheduler fixlet from Thomas Gleixner: "A trivial printk typo fix" * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: sched/deadline: Fix trivial typo in printk() message commit f055ae04aeb0fd1d4373916c43b08481fcd9e5bc Merge: 8da5143 253baff Author: Linus Torvalds Date: Sun Feb 28 07:45:58 2016 -0800 Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull irq fixes from Thomas Gleixner: "Four small fixes for irqchip drivers: - Add missing low level irq handler initialization on mxs, so interrupts can acutally be delivered - Add a missing barrier to the GIC driver - Two fixes for the GIC-V3-ITS driver, addressing a double EOI write and a cache flush beyond the actual region" * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: irqchip/gic-v3: Add missing barrier to 32bit version of gic_read_iar() irqchip/mxs: Add missing set_handle_irq() irqchip/gicv3-its: Avoid cache flush beyond ITS_BASERn memory size irqchip/gic-v3-its: Fix double ICC_EOIR write for LPI in EOImode==1 commit 8da51430ff28d2f2daa570f060b1c9fbba81c81a Merge: 62718e3 7a64cd8 Author: Linus Torvalds Date: Sun Feb 28 07:39:15 2016 -0800 Merge tag 'staging-4.5-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging Pull staging/android fix from Greg KH: "Here is one patch, for the android binder driver, to resolve a reported problem. Turns out it has been around for a while (since 3.15), so it is good to finally get it resolved. It has been in linux-next for a while with no reported issues" * tag 'staging-4.5-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: drivers: android: correct the size of struct binder_uintptr_t for BC_DEAD_BINDER_DONE commit 62718e304aa603b1fcea9f965c604fc652ac87ba Merge: 12b9fa6 428b315 Author: Linus Torvalds Date: Sun Feb 28 07:37:30 2016 -0800 Merge tag 'usb-4.5-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb Pull USB fixes from Greg KH: "Here are a few USB fixes for 4.5-rc6 They fix a reported bug for some USB 3 devices by reverting the recent patch, a MAINTAINERS change for some drivers, some new device ids, and of course, the usual bunch of USB gadget driver fixes. All have been in linux-next for a while with no reported issues" * tag 'usb-4.5-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: MAINTAINERS: drop OMAP USB and MUSB maintainership usb: musb: fix DMA for host mode usb: phy: msm: Trigger USB state detection work in DRD mode usb: gadget: net2280: fix endpoint max packet for super speed connections usb: gadget: gadgetfs: unregister gadget only if it got successfully registered usb: gadget: remove driver from pending list on probe error Revert "usb: hub: do not clear BOS field during reset device" usb: chipidea: fix return value check in ci_hdrc_pci_probe() usb: chipidea: error on overflow for port_test_write USB: option: add "4G LTE usb-modem U901" USB: cp210x: add IDs for GE B650V3 and B850V3 boards USB: option: add support for SIM7100E usb: musb: Fix DMA desired mode for Mentor DMA engine usb: gadget: fsl_qe_udc: fix IS_ERR_VALUE usage usb: dwc2: USB_DWC2 should depend on HAS_DMA usb: dwc2: host: fix the data toggle error in full speed descriptor dma usb: dwc2: host: fix logical omissions in dwc2_process_non_isoc_desc usb: dwc3: Fix assignment of EP transfer resources usb: dwc2: Add extra delay when forcing dr_mode commit 8160c4e455820d5008a1116d2dca35f0363bb062 Author: Michael S. Tsirkin Date: Sun Feb 28 16:31:39 2016 +0200 vfio: fix ioctl error handling Calling return copy_to_user(...) in an ioctl will not do the right thing if there's a pagefault: copy_to_user returns the number of bytes not copied in this case. Fix up vfio to do return copy_to_user(...)) ? -EFAULT : 0; everywhere. Cc: stable@vger.kernel.org Signed-off-by: Michael S. Tsirkin Signed-off-by: Alex Williamson drivers/vfio/pci/vfio_pci.c | 9 ++++++--- drivers/vfio/platform/vfio_platform_common.c | 9 ++++++--- drivers/vfio/vfio_iommu_type1.c | 6 ++++-- 3 files changed, 16 insertions(+), 8 deletions(-) commit 12b9fa6a97b3150477ab182e321be512b59fa899 Merge: 340b3a5 5129fa4 Author: Linus Torvalds Date: Sat Feb 27 17:10:32 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull vfs fixes from Al Viro. * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: do_last(): ELOOP failure exit should be done after leaving RCU mode should_follow_link(): validate ->d_seq after having decided to follow namei: ->d_inode of a pinned dentry is stable only for positives do_last(): don't let a bogus return value from ->open() et.al. to confuse us fs: return -EOPNOTSUPP if clone is not supported hpfs: don't truncate the file when delete fails commit 340b3a5b35c0919e1535b355a9eafe1f81c4cae3 Merge: 691429e d877a21 Author: Linus Torvalds Date: Sat Feb 27 16:58:32 2016 -0800 Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC fixes from Olof Johansson: "We didn't have a batch last week, so this one is slightly larger. None of them are scary though, a handful of fixes for small DT pieces, replacing properties with newer conventions. Highlights: - N900 fix for setting system revision - onenand init fix to avoid filesystem corruption - Clock fix for audio on Beaglebone-x15 - Fixes on shmobile to deal with CONFIG_DEBUG_RODATA (default y in 4.6) + misc smaller stuff" * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: MAINTAINERS: Extend info, add wiki and ml for meson arch MAINTAINERS: alpine: add a new maintainer and update the entry ARM: at91/dt: fix typo in sama5d2 pinmux descriptions ARM: OMAP2+: Fix onenand initialization to avoid filesystem corruption Revert "regulator: tps65217: remove tps65217.dtsi file" ARM: shmobile: Remove shmobile_boot_arg ARM: shmobile: Move shmobile_smp_{mpidr, fn, arg}[] from .text to .bss ARM: shmobile: r8a7779: Remove remainings of removed SCU boot setup code ARM: shmobile: Move shmobile_scu_base from .text to .bss ARM: OMAP2+: Fix omap_device for module reload on PM runtime forbid ARM: OMAP2+: Improve omap_device error for driver writers ARM: DTS: am57xx-beagle-x15: Select SYS_CLK2 for audio clocks ARM: dts: am335x/am57xx: replace gpio-key,wakeup with wakeup-source property ARM: OMAP2+: Set system_rev from ATAGS for n900 ARM: dts: orion5x: fix the missing mtd flash on linkstation lswtgl ARM: dts: kirkwood: use unique machine name for ds112 ARM: dts: imx6: remove bogus interrupt-parent from CAAM node commit 5129fa482b16615fd4464d2f5d23acb1b7056c66 Author: Al Viro Date: Sat Feb 27 19:37:37 2016 -0500 do_last(): ELOOP failure exit should be done after leaving RCU mode ... or we risk seeing a bogus value of d_is_symlink() there. Cc: stable@vger.kernel.org # v4.2+ Signed-off-by: Al Viro fs/namei.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit a7f775428b8f5808815c0e3004020cedb94cbe3b Author: Al Viro Date: Sat Feb 27 19:31:01 2016 -0500 should_follow_link(): validate ->d_seq after having decided to follow ... otherwise d_is_symlink() above might have nothing to do with the inode value we've got. Cc: stable@vger.kernel.org # v4.2+ Signed-off-by: Al Viro fs/namei.c | 5 +++++ 1 file changed, 5 insertions(+) commit d4565649b6d6923369112758212b851adc407f0c Author: Al Viro Date: Sat Feb 27 19:23:16 2016 -0500 namei: ->d_inode of a pinned dentry is stable only for positives both do_last() and walk_component() risk picking a NULL inode out of dentry about to become positive, *then* checking its flags and seeing that it's not negative anymore and using (already stale by then) value they'd fetched earlier. Usually ends up oopsing soon after that... Cc: stable@vger.kernel.org # v3.13+ Signed-off-by: Al Viro fs/namei.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c80567c82ae4814a41287618e315a60ecf513be6 Author: Al Viro Date: Sat Feb 27 19:17:33 2016 -0500 do_last(): don't let a bogus return value from ->open() et.al. to confuse us ... into returning a positive to path_openat(), which would interpret that as "symlink had been encountered" and proceed to corrupt memory, etc. It can only happen due to a bug in some ->open() instance or in some LSM hook, etc., so we report any such event *and* make sure it doesn't trick us into further unpleasantness. Cc: stable@vger.kernel.org # v3.6+, at least Signed-off-by: Al Viro fs/namei.c | 4 ++++ 1 file changed, 4 insertions(+) commit 0fcbf996d848d03573113d83f4e3fb3bcfa5ab5e Author: Christoph Hellwig Date: Fri Feb 26 18:53:12 2016 +0100 fs: return -EOPNOTSUPP if clone is not supported -EBADF is a rather confusing error if an operations is not supported, and nfsd gets rather upset about it. Signed-off-by: Christoph Hellwig Signed-off-by: Al Viro fs/read_write.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit b6853f78e763d42c7a158d8de3549c9827c604ab Author: Mikulas Patocka Date: Thu Feb 25 18:17:38 2016 +0100 hpfs: don't truncate the file when delete fails The delete opration can allocate additional space on the HPFS filesystem due to btree split. The HPFS driver checks in advance if there is available space, so that it won't corrupt the btree if we run out of space during splitting. If there is not enough available space, the HPFS driver attempted to truncate the file, but this results in a deadlock since the commit 7dd29d8d865efdb00c0542a5d2c87af8c52ea6c7 ("HPFS: Introduce a global mutex and lock it on every callback from VFS"). This patch removes the code that tries to truncate the file and -ENOSPC is returned instead. If the user hits -ENOSPC on delete, he should try to delete other files (that are stored in a leaf btree node), so that the delete operation will make some space for deleting the file stored in non-leaf btree node. Reported-by: Al Viro Signed-off-by: Mikulas Patocka Cc: stable@vger.kernel.org # 2.6.39+ Signed-off-by: Al Viro fs/hpfs/namei.c | 31 +++---------------------------- 1 file changed, 3 insertions(+), 28 deletions(-) commit 691429e13dfaf5b0994b07cc166db41bd608ee3d Merge: 1c27147 7f6d5b5 Author: Linus Torvalds Date: Sat Feb 27 12:46:16 2016 -0800 Merge branch 'akpm' (patches from Andrew) Merge fixes from Andrew Morton: "10 fixes" * emailed patches from Andrew Morton : dax: move writeback calls into the filesystems dax: give DAX clearing code correct bdev ext4: online defrag not supported with DAX ext2, ext4: only set S_DAX for regular inodes block: disable block device DAX by default ocfs2: unlock inode if deleting inode from orphan fails mm: ASLR: use get_random_long() drivers: char: random: add get_random_long() mm: numa: quickly fail allocations for NUMA balancing on full nodes mm: thp: fix SMP race condition between THP page fault and MADV_DONTNEED commit 1c271479b56da4a8caf5f56a88432d4260e120fe Merge: a9f8094a 1e9d180 Author: Linus Torvalds Date: Sat Feb 27 12:40:49 2016 -0800 Merge tag 'tags/ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 Pull ext2/4 DAX fix from Ted Ts'o: "This fixes a file system corruption bug with DAX" * tag 'tags/ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: ext2, ext4: fix issue with missing journal entry in ext4_dax_mkwrite() commit a9f8094aaedc7bc21e9232ea5120eaf2e0c824fd Merge: b9ea44b 61d9e85 Author: Linus Torvalds Date: Sat Feb 27 12:33:42 2016 -0800 Merge tag 'pci-v4.5-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci Pull PCI fixes from Bjorn Helgaas: "Enumeration: Revert x86 pcibios_alloc_irq() to fix regression (Bjorn Helgaas) Marvell MVEBU host bridge driver: Restrict build to 32-bit ARM (Thierry Reding)" * tag 'pci-v4.5-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: PCI: mvebu: Restrict build to 32-bit ARM Revert "PCI, x86: Implement pcibios_alloc_irq() and pcibios_free_irq()" Revert "PCI: Add helpers to manage pci_dev->irq and pci_dev->irq_managed" Revert "x86/PCI: Don't alloc pcibios-irq when MSI is enabled" commit 1e9d180ba39f42e8ca4a808baef3a3ef034b1c2c Author: Ross Zwisler Date: Sat Feb 27 14:01:13 2016 -0500 ext2, ext4: fix issue with missing journal entry in ext4_dax_mkwrite() As it is currently written ext4_dax_mkwrite() assumes that the call into __dax_mkwrite() will not have to do a block allocation so it doesn't create a journal entry. For a read that creates a zero page to cover a hole followed by a write that actually allocates storage this is incorrect. The ext4_dax_mkwrite() -> __dax_mkwrite() -> __dax_fault() path calls get_blocks() to allocate storage. Fix this by having the ->page_mkwrite fault handler call ext4_dax_fault() as this function already has all the logic needed to allocate a journal entry and call __dax_fault(). Also update the ext2 fault handlers in this same way to remove duplicate code and keep the logic between ext2 and ext4 the same. Reviewed-by: Jan Kara Signed-off-by: Ross Zwisler Signed-off-by: Theodore Ts'o fs/ext2/file.c | 19 +------------------ fs/ext4/file.c | 19 ++----------------- 2 files changed, 3 insertions(+), 35 deletions(-) commit b9ea44bf2c70b08b9ab3f3d71c2d16d6a134d35e Merge: 29a9faa a0d54c3 Author: Linus Torvalds Date: Sat Feb 27 10:30:14 2016 -0800 Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux Pull clk fix from Stephen Boyd: "One small fix to keep OMAP platforms working across a suspend/resume cycle" * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: clk: ti: omap3+: dpll: use non-locking version of clk_get_rate commit 7f6d5b529b7dfe2fca30cbf4bc81e16575090025 Author: Ross Zwisler Date: Fri Feb 26 15:19:55 2016 -0800 dax: move writeback calls into the filesystems Previously calls to dax_writeback_mapping_range() for all DAX filesystems (ext2, ext4 & xfs) were centralized in filemap_write_and_wait_range(). dax_writeback_mapping_range() needs a struct block_device, and it used to get that from inode->i_sb->s_bdev. This is correct for normal inodes mounted on ext2, ext4 and XFS filesystems, but is incorrect for DAX raw block devices and for XFS real-time files. Instead, call dax_writeback_mapping_range() directly from the filesystem ->writepages function so that it can supply us with a valid block device. This also fixes DAX code to properly flush caches in response to sync(2). Signed-off-by: Ross Zwisler Signed-off-by: Jan Kara Cc: Al Viro Cc: Dan Williams Cc: Dave Chinner Cc: Jens Axboe Cc: Matthew Wilcox Cc: Theodore Ts'o Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/block_dev.c | 13 ++++++++++++- fs/dax.c | 12 +++++++----- fs/ext2/inode.c | 8 ++++++++ fs/ext4/inode.c | 4 ++++ fs/xfs/xfs_aops.c | 4 ++++ include/linux/dax.h | 6 ++++-- mm/filemap.c | 12 ++++-------- 7 files changed, 43 insertions(+), 16 deletions(-) commit 20a90f58997245749c2bdfaea9e51f785ec90d0b Author: Ross Zwisler Date: Fri Feb 26 15:19:52 2016 -0800 dax: give DAX clearing code correct bdev dax_clear_blocks() needs a valid struct block_device and previously it was using inode->i_sb->s_bdev in all cases. This is correct for normal inodes on mounted ext2, ext4 and XFS filesystems, but is incorrect for DAX raw block devices and for XFS real-time devices. Instead, rename dax_clear_blocks() to dax_clear_sectors(), and change its arguments to take a bdev and a sector instead of an inode and a block. This better reflects what the function does, and it allows the filesystem and raw block device code to pass in an appropriate struct block_device. Signed-off-by: Ross Zwisler Suggested-by: Dan Williams Reviewed-by: Jan Kara Cc: Theodore Ts'o Cc: Al Viro Cc: Dave Chinner Cc: Jens Axboe Cc: Matthew Wilcox Cc: Ross Zwisler Cc: Theodore Ts'o Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/dax.c | 9 ++++----- fs/ext2/inode.c | 6 ++++-- fs/xfs/xfs_aops.c | 2 +- fs/xfs/xfs_aops.h | 1 + fs/xfs/xfs_bmap_util.c | 3 ++- include/linux/dax.h | 2 +- 6 files changed, 13 insertions(+), 10 deletions(-) commit 73f34a5e2ceddfca27c999c170620e6354aaf6d7 Author: Ross Zwisler Date: Fri Feb 26 15:19:49 2016 -0800 ext4: online defrag not supported with DAX Online defrag operations for ext4 are hard coded to use the page cache. See ext4_ioctl() -> ext4_move_extents() -> move_extent_per_page() When combined with DAX I/O, which circumvents the page cache, this can result in data corruption. This was observed with xfstests ext4/307 and ext4/308. Fix this by only allowing online defrag for non-DAX files. Signed-off-by: Ross Zwisler Reviewed-by: Jan Kara Cc: Theodore Ts'o Cc: Al Viro Cc: Dan Williams Cc: Dave Chinner Cc: Jens Axboe Cc: Matthew Wilcox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ext4/ioctl.c | 5 +++++ 1 file changed, 5 insertions(+) commit 0a6cf9137ded4856b41910a4336677ee0ffa6736 Author: Ross Zwisler Date: Fri Feb 26 15:19:46 2016 -0800 ext2, ext4: only set S_DAX for regular inodes When S_DAX is set on an inode we assume that if there are pages attached to the mapping (mapping->nrpages != 0), those pages are clean zero pages that were used to service reads from holes. Any dirty data associated with the inode should be in the form of DAX exceptional entries (mapping->nrexceptional) that is written back via dax_writeback_mapping_range(). With the current code, though, this isn't always true. For example, ext2 and ext4 directory inodes can have S_DAX set, but have their dirty data stored as dirty page cache entries. For these types of inodes, having S_DAX set doesn't really make sense since their I/O doesn't actually happen through the DAX code path. Instead, only allow S_DAX to be set for regular inodes for ext2 and ext4. This allows us to have strict DAX vs non-DAX paths in the writeback code. Signed-off-by: Ross Zwisler Reviewed-by: Jan Kara Cc: Theodore Ts'o Cc: Al Viro Cc: Dan Williams Cc: Dave Chinner Cc: Jens Axboe Cc: Matthew Wilcox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ext2/inode.c | 2 +- fs/ext4/inode.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 03cdadb04077b9311bbc67d98cc5401aff76482d Author: Dan Williams Date: Fri Feb 26 15:19:43 2016 -0800 block: disable block device DAX by default The recent *sync enabling discovered that we are inserting into the block_device pagecache counter to the expectations of the dirty data tracking for dax mappings. This can lead to data corruption. We want to support DAX for block devices eventually, but it requires wider changes to properly manage the pagecache. dump_stack+0x85/0xc2 dax_writeback_mapping_range+0x60/0xe0 blkdev_writepages+0x3f/0x50 do_writepages+0x21/0x30 __filemap_fdatawrite_range+0xc6/0x100 filemap_write_and_wait+0x4a/0xa0 set_blocksize+0x70/0xd0 sb_set_blocksize+0x1d/0x50 ext4_fill_super+0x75b/0x3360 mount_bdev+0x180/0x1b0 ext4_mount+0x15/0x20 mount_fs+0x38/0x170 Mark the support broken so its disabled by default, but otherwise still available for testing. Signed-off-by: Dan Williams Signed-off-by: Ross Zwisler Reported-by: Ross Zwisler Suggested-by: Dave Chinner Reviewed-by: Jan Kara Cc: Jens Axboe Cc: Matthew Wilcox Cc: Al Viro Cc: Theodore Ts'o Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds block/Kconfig | 13 +++++++++++++ fs/block_dev.c | 6 +++++- 2 files changed, 18 insertions(+), 1 deletion(-) commit a4a8481ff68a8a324a878e281bc37f18665224f7 Author: Guozhonghua Date: Fri Feb 26 15:19:40 2016 -0800 ocfs2: unlock inode if deleting inode from orphan fails When doing append direct io cleanup, if deleting inode fails, it goes out without unlocking inode, which will cause the inode deadlock. This issue was introduced by commit cf1776a9e834 ("ocfs2: fix a tiny race when truncate dio orohaned entry"). Signed-off-by: Guozhonghua Signed-off-by: Joseph Qi Reviewed-by: Gang He Cc: Mark Fasheh Cc: Joel Becker Cc: Junxiao Bi Cc: [4.2+] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/aops.c | 1 + 1 file changed, 1 insertion(+) commit 5ef11c35ce86b94bfb878b684de4cdaf96f54b2f Author: Daniel Cashman Date: Fri Feb 26 15:19:37 2016 -0800 mm: ASLR: use get_random_long() Replace calls to get_random_int() followed by a cast to (unsigned long) with calls to get_random_long(). Also address shifting bug which, in case of x86 removed entropy mask for mmap_rnd_bits values > 31 bits. Signed-off-by: Daniel Cashman Acked-by: Kees Cook Cc: "Theodore Ts'o" Cc: Arnd Bergmann Cc: Greg Kroah-Hartman Cc: Catalin Marinas Cc: Will Deacon Cc: Ralf Baechle Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Michael Ellerman Cc: David S. Miller Cc: Thomas Gleixner Cc: Ingo Molnar Cc: H. Peter Anvin Cc: Al Viro Cc: Nick Kralevich Cc: Jeff Vander Stoep Cc: Mark Salyzyn Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/arm/mm/mmap.c | 2 +- arch/arm64/mm/mmap.c | 4 ++-- arch/mips/mm/mmap.c | 4 ++-- arch/powerpc/kernel/process.c | 4 ++-- arch/powerpc/mm/mmap.c | 4 ++-- arch/sparc/kernel/sys_sparc_64.c | 2 +- arch/x86/mm/mmap.c | 6 +++--- fs/binfmt_elf.c | 2 +- 8 files changed, 14 insertions(+), 14 deletions(-) commit ec9ee4acd97c0039a61c0ae4f12705767ae62153 Author: Daniel Cashman Date: Fri Feb 26 15:19:34 2016 -0800 drivers: char: random: add get_random_long() Commit d07e22597d1d ("mm: mmap: add new /proc tunable for mmap_base ASLR") added the ability to choose from a range of values to use for entropy count in generating the random offset to the mmap_base address. The maximum value on this range was set to 32 bits for 64-bit x86 systems, but this value could be increased further, requiring more than the 32 bits of randomness provided by get_random_int(), as is already possible for arm64. Add a new function: get_random_long() which more naturally fits with the mmap usage of get_random_int() but operates exactly the same as get_random_int(). Also, fix the shifting constant in mmap_rnd() to be an unsigned long so that values greater than 31 bits generate an appropriate mask without overflow. This is especially important on x86, as its shift instruction uses a 5-bit mask for the shift operand, which meant that any value for mmap_rnd_bits over 31 acts as a no-op and effectively disables mmap_base randomization. Finally, replace calls to get_random_int() with get_random_long() where appropriate. This patch (of 2): Add get_random_long(). Signed-off-by: Daniel Cashman Acked-by: Kees Cook Cc: "Theodore Ts'o" Cc: Arnd Bergmann Cc: Greg Kroah-Hartman Cc: Catalin Marinas Cc: Will Deacon Cc: Ralf Baechle Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Michael Ellerman Cc: David S. Miller Cc: Thomas Gleixner Cc: Ingo Molnar Cc: H. Peter Anvin Cc: Al Viro Cc: Nick Kralevich Cc: Jeff Vander Stoep Cc: Mark Salyzyn Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/char/random.c | 22 ++++++++++++++++++++++ include/linux/random.h | 1 + 2 files changed, 23 insertions(+) commit 8479eba7781fa9ffb28268840de6facfc12c35a7 Author: Mel Gorman Date: Fri Feb 26 15:19:31 2016 -0800 mm: numa: quickly fail allocations for NUMA balancing on full nodes Commit 4167e9b2cf10 ("mm: remove GFP_THISNODE") removed the GFP_THISNODE flag combination due to confusing semantics. It noted that alloc_misplaced_dst_page() was one such user after changes made by commit e97ca8e5b864 ("mm: fix GFP_THISNODE callers and clarify"). Unfortunately when GFP_THISNODE was removed, users of alloc_misplaced_dst_page() started waking kswapd and entering direct reclaim because the wrong GFP flags are cleared. The consequence is that workloads that used to fit into memory now get reclaimed which is addressed by this patch. The problem can be demonstrated with "mutilate" that exercises memcached which is software dedicated to memory object caching. The configuration uses 80% of memory and is run 3 times for varying numbers of clients. The results on a 4-socket NUMA box are mutilate 4.4.0 4.4.0 vanilla numaswap-v1 Hmean 1 8394.71 ( 0.00%) 8395.32 ( 0.01%) Hmean 4 30024.62 ( 0.00%) 34513.54 ( 14.95%) Hmean 7 32821.08 ( 0.00%) 70542.96 (114.93%) Hmean 12 55229.67 ( 0.00%) 93866.34 ( 69.96%) Hmean 21 39438.96 ( 0.00%) 85749.21 (117.42%) Hmean 30 37796.10 ( 0.00%) 50231.49 ( 32.90%) Hmean 47 18070.91 ( 0.00%) 38530.13 (113.22%) The metric is queries/second with the more the better. The results are way outside of the noise and the reason for the improvement is obvious from some of the vmstats 4.4.0 4.4.0 vanillanumaswap-v1r1 Minor Faults 1929399272 2146148218 Major Faults 19746529 3567 Swap Ins 57307366 9913 Swap Outs 50623229 17094 Allocation stalls 35909 443 DMA allocs 0 0 DMA32 allocs 72976349 170567396 Normal allocs 5306640898 5310651252 Movable allocs 0 0 Direct pages scanned 404130893 799577 Kswapd pages scanned 160230174 0 Kswapd pages reclaimed 55928786 0 Direct pages reclaimed 1843936 41921 Page writes file 2391 0 Page writes anon 50623229 17094 The vanilla kernel is swapping like crazy with large amounts of direct reclaim and kswapd activity. The figures are aggregate but it's known that the bad activity is throughout the entire test. Note that simple streaming anon/file memory consumers also see this problem but it's not as obvious. In those cases, kswapd is awake when it should not be. As there are at least two reclaim-related bugs out there, it's worth spelling out the user-visible impact. This patch only addresses bugs related to excessive reclaim on NUMA hardware when the working set is larger than a NUMA node. There is a bug related to high kswapd CPU usage but the reports are against laptops and other UMA hardware and is not addressed by this patch. Signed-off-by: Mel Gorman Cc: Vlastimil Babka Cc: Johannes Weiner Cc: David Rientjes Cc: [4.1+] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/migrate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ad33bb04b2a6cee6c1f99fabb15cddbf93ff0433 Author: Andrea Arcangeli Date: Fri Feb 26 15:19:28 2016 -0800 mm: thp: fix SMP race condition between THP page fault and MADV_DONTNEED pmd_trans_unstable()/pmd_none_or_trans_huge_or_clear_bad() were introduced to locklessy (but atomically) detect when a pmd is a regular (stable) pmd or when the pmd is unstable and can infinitely transition from pmd_none() and pmd_trans_huge() from under us, while only holding the mmap_sem for reading (for writing not). While holding the mmap_sem only for reading, MADV_DONTNEED can run from under us and so before we can assume the pmd to be a regular stable pmd we need to compare it against pmd_none() and pmd_trans_huge() in an atomic way, with pmd_trans_unstable(). The old pmd_trans_huge() left a tiny window for a race. Useful applications are unlikely to notice the difference as doing MADV_DONTNEED concurrently with a page fault would lead to undefined behavior. [akpm@linux-foundation.org: tidy up comment grammar/layout] Signed-off-by: Andrea Arcangeli Reported-by: Kirill A. Shutemov Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memory.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit 61d9e854dfb91b46b99ffd3d31fc7d45d2b95f31 Author: Thierry Reding Date: Thu Feb 18 14:32:10 2016 +0100 PCI: mvebu: Restrict build to 32-bit ARM This driver uses PCI glue that is only available on 32-bit ARM. This used to work fine as long as ARCH_MVEBU and ARCH_DOVE were exclusively 32-bit, but there's a patch in the pipe to make ARCH_MVEBU also available on 64-bit ARM. [bhelgaas: changelog; patch is coming but not merged yet] Signed-off-by: Thierry Reding Signed-off-by: Bjorn Helgaas Acked-by: Thomas Petazzoni drivers/pci/host/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 6c777e8799a93e3bdb67bec622429e1b48dc90fb Author: Bjorn Helgaas Date: Wed Feb 17 12:26:42 2016 -0600 Revert "PCI, x86: Implement pcibios_alloc_irq() and pcibios_free_irq()" 991de2e59090 ("PCI, x86: Implement pcibios_alloc_irq() and pcibios_free_irq()") appeared in v4.3 and helps support IOAPIC hotplug. Олег reported that the Elcus-1553 TA1-PCI driver worked in v4.2 but not v4.3 and bisected it to 991de2e59090. Sunjin reported that the RocketRAID 272x driver worked in v4.2 but not v4.3. In both cases booting with "pci=routirq" is a workaround. I think the problem is that after 991de2e59090, we no longer call pcibios_enable_irq() for upstream bridges. Prior to 991de2e59090, when a driver called pci_enable_device(), we recursively called pcibios_enable_irq() for upstream bridges via pci_enable_bridge(). After 991de2e59090, we call pcibios_enable_irq() from pci_device_probe() instead of the pci_enable_device() path, which does *not* call pcibios_enable_irq() for upstream bridges. Revert 991de2e59090 to fix these driver regressions. Link: https://bugzilla.kernel.org/show_bug.cgi?id=111211 Fixes: 991de2e59090 ("PCI, x86: Implement pcibios_alloc_irq() and pcibios_free_irq()") Reported-and-tested-by: Олег Мороз Reported-by: Sunjin Yang Signed-off-by: Bjorn Helgaas Acked-by: Rafael J. Wysocki CC: Jiang Liu arch/x86/include/asm/pci_x86.h | 2 ++ arch/x86/pci/common.c | 20 +++++++++++--------- arch/x86/pci/intel_mid_pci.c | 7 ++----- arch/x86/pci/irq.c | 15 ++++++++++++++- drivers/acpi/pci_irq.c | 9 ++++++++- 5 files changed, 37 insertions(+), 16 deletions(-) commit 21b81716c6bff24cda52dc75588455f879ddbfe9 Author: Gabriel Krisman Bertazi Date: Thu Feb 25 13:54:20 2016 -0300 ipr: Fix regression when loading firmware Commit d63c7dd5bcb9 ("ipr: Fix out-of-bounds null overwrite") removed the end of line handling when storing the update_fw sysfs attribute. This changed the userpace API because it started refusing writes terminated by a line feed, which broke the update tools we already have. This patch re-adds that handling, so both a write terminated by a line feed or not can make it through with the update. Fixes: d63c7dd5bcb9 ("ipr: Fix out-of-bounds null overwrite") Signed-off-by: Gabriel Krisman Bertazi Cc: Insu Yun Acked-by: Brian King Signed-off-by: Martin K. Petersen drivers/scsi/ipr.c | 5 +++++ 1 file changed, 5 insertions(+) commit e1cd3911170eda37fd9501e81ee1c2eb63803fd0 Author: jiangyiwen Date: Tue Feb 16 20:14:13 2016 +0800 SCSI: Free resources when we return BLKPREP_INVALID When called scsi_prep_fn return BLKPREP_INVALID, we should use the same code with BLKPREP_KILL in scsi_prep_return. Signed-off-by: Yiwen Jiang Signed-off-by: Martin K. Petersen drivers/scsi/scsi_lib.c | 1 + 1 file changed, 1 insertion(+) commit 9bf148cb0812595bfdf5100bd2c07e9bec9c6ef5 Author: Colin Ian King Date: Fri Feb 26 18:55:31 2016 +0000 x86/mpx: Fix off-by-one comparison with nr_registers In the unlikely event that regno == nr_registers then we get an array overrun on regoff because the invalid register check is currently off-by-one. Fix this with a check that regno is >= nr_registers instead. Detected with static analysis using CoverityScan. Fixes: fcc7ffd67991 "x86, mpx: Decode MPX instruction to get bound violation information" Signed-off-by: Colin Ian King Acked-by: Dave Hansen Cc: Borislav Petkov Cc: "Kirill A . Shutemov" Cc: stable@vger.kernel.org Link: http://lkml.kernel.org/r/1456512931-3388-1-git-send-email-colin.king@canonical.com Signed-off-by: Thomas Gleixner arch/x86/mm/mpx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 472681d57a5dde7c6d16b05469be57f1c4ed9d99 Author: MINOURA Makoto / 箕浦 真 Date: Thu Feb 25 14:20:48 2016 +0900 net: ndo_fdb_dump should report -EMSGSIZE to rtnl_fdb_dump. When the send skbuff reaches the end, nlmsg_put and friends returns -EMSGSIZE but it is silently thrown away in ndo_fdb_dump. It is called within a for_each_netdev loop and the first fdb entry of a following netdev could fit in the remaining skbuff. This breaks the mechanism of cb->args[0] and idx to keep track of the entries that are already dumped, which results missing entries in bridge fdb show command. Signed-off-by: Minoura Makoto Signed-off-by: David S. Miller drivers/net/vxlan.c | 4 +++- net/bridge/br_fdb.c | 15 ++++++++++----- net/core/rtnetlink.c | 6 ++++++ net/switchdev/switchdev.c | 5 ++++- 4 files changed, 23 insertions(+), 7 deletions(-) commit dfd55ad85e4a7fbaa82df12467515ac3c81e8a3e Author: Ard Biesheuvel Date: Fri Feb 26 17:57:13 2016 +0100 arm64: vmemmap: use virtual projection of linear region Commit dd006da21646 ("arm64: mm: increase VA range of identity map") made some changes to the memory mapping code to allow physical memory to reside at an offset that exceeds the size of the virtual mapping. However, since the size of the vmemmap area is proportional to the size of the VA area, but it is populated relative to the physical space, we may end up with the struct page array being mapped outside of the vmemmap region. For instance, on my Seattle A0 box, I can see the following output in the dmesg log. vmemmap : 0xffffffbdc0000000 - 0xffffffbfc0000000 ( 8 GB maximum) 0xffffffbfc0000000 - 0xffffffbfd0000000 ( 256 MB actual) We can fix this by deciding that the vmemmap region is not a projection of the physical space, but of the virtual space above PAGE_OFFSET, i.e., the linear region. This way, we are guaranteed that the vmemmap region is of sufficient size, and we can even reduce the size by half. Cc: Signed-off-by: Ard Biesheuvel Signed-off-by: Will Deacon arch/arm64/include/asm/pgtable.h | 7 ++++--- arch/arm64/mm/init.c | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) commit 29a9faa641857425af76e44f2fab22db53032401 Merge: c213341 cd8140c Author: Linus Torvalds Date: Fri Feb 26 09:35:03 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client Pull Ceph fixes from Sage Weil: "There are two small messenger bug fixes and a log spam regression fix" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: libceph: don't spam dmesg with stray reply warnings libceph: use the right footer size when skipping a message libceph: don't bail early from try_read() when skipping a message commit c213341e4962c798274e024e89dd4b14d4826872 Merge: bb134ff 473f414 Author: Linus Torvalds Date: Fri Feb 26 09:27:21 2016 -0800 Merge tag 'sound-4.5-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "Things got calmed down for rc6, as it seems, and we have only a few HD-audio fixes at this time: a fix for Skylake codec probe errors, a fix for missing interrupt handling, and a few Dell and HP quirks" * tag 'sound-4.5-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: hda - Loop interrupt handling until really cleared ALSA: hda - Fix headset support and noise on HP EliteBook 755 G2 ALSA: hda - Fixup speaker pass-through control for nid 0x14 on ALC225 ALSA: hda - Fixing background noise on Dell Inspiron 3162 ALSA: hda - Apply clock gate workaround to Skylake, too commit bb134ff50709fda187027c2263036ccb41024ca5 Merge: 34d47a7 1711fd9c Author: Linus Torvalds Date: Fri Feb 26 09:21:48 2016 -0800 Merge tag 'pm+acpi-4.5-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull power management and ACPI fixes from Rafael Wysocki: "These are two reverts of recent PCI-related ACPI core changes (one of which caused some systems to crash on boot and the other was a cleanup on top of it) and a devfreq fix for Tegra. Specifics: - Revert an ACPI core change related to IRQ management in PCI that introduced code relying on the use of kmalloc() which turned out to also run during early init when that's not available yet and caused some systems to crash on boot for this reason along with a cleanup on top of it (Rafael Wysocki). - Prevent devfreq from flooding the kernel log with useless messages on Tegra (which started to happen after some recent changes in the devfreq core) by fixing the driver to follow the documentation and the core's expectations in its ->target callback (Tomeu Vizoso)" * tag 'pm+acpi-4.5-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: Revert "ACPI, PCI, irq: remove interrupt count restriction" Revert "ACPI / PCI: Simplify acpi_penalize_isa_irq()" PM / devfreq: tegra: Set freq in rate callback commit 1711fd9cf92f366d42da29b108746accd807789a Merge: 351228e e249714 Author: Rafael J. Wysocki Date: Fri Feb 26 13:50:55 2016 +0100 Merge branches 'pm-devfreq' and 'acpi-pci' * pm-devfreq: PM / devfreq: tegra: Set freq in rate callback * acpi-pci: Revert "ACPI, PCI, irq: remove interrupt count restriction" Revert "ACPI / PCI: Simplify acpi_penalize_isa_irq()" commit 70e4da7a8ff62f2775337b705f45c804bb450454 Author: Paolo Bonzini Date: Fri Feb 26 12:28:40 2016 +0100 KVM: x86: fix root cause for missed hardware breakpoints Commit 172b2386ed16 ("KVM: x86: fix missed hardware breakpoints", 2016-02-10) worked around a case where the debug registers are not loaded correctly on preemption and on the first entry to KVM_RUN. However, Xiao Guangrong pointed out that the root cause must be that KVM_DEBUGREG_BP_ENABLED is not being set correctly. This can indeed happen due to the lazy debug exit mechanism, which does not call kvm_update_dr7. Fix it by replacing the existing loop (more or less equivalent to kvm_update_dr0123) with calls to all the kvm_update_dr* functions. Cc: stable@vger.kernel.org # 4.1+ Fixes: 172b2386ed16a9143d9a456aae5ec87275c61489 Reviewed-by: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/kvm/x86.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit a1e533ec07d583d01349ef13c0c965b8633e1b91 Author: Jean-Philippe Brucker Date: Mon Feb 15 18:41:33 2016 +0000 fbcon: set a default value to blink interval Since commit 27a4c827c34ac4256a190cc9d24607f953c1c459 fbcon: use the cursor blink interval provided by vt two attempts have been made at fixing a possible hang caused by cursor_timer_handler. That function registers a timer to be triggered at "jiffies + fbcon_ops.cur_blink_jiffies". A new case had been encountered during initialisation of clcd-pl11x: fbcon_fb_registered do_fbcon_takeover -> do_register_con_driver fbcon_startup (A) add_cursor_timer (with cur_blink_jiffies = 0) -> do_bind_con_driver visual_init fbcon_init (B) cur_blink_jiffies = msecs_to_jiffies(vc->vc_cur_blink_ms); If we take an softirq anywhere between A and B (and we do), cursor_timer_handler executes indefinitely. Instead of patching all possible paths that lead to this case one at a time, fix the issue at the source and initialise cur_blink_jiffies to 200ms when allocating fbcon_ops. This was its default value before aforesaid commit. fbcon_cursor or fbcon_init will refine this value downstream. Signed-off-by: Jean-Philippe Brucker Cc: # v4.2 Tested-by: Scot Doyle Signed-off-by: Tomi Valkeinen drivers/video/console/fbcon.c | 2 ++ 1 file changed, 2 insertions(+) commit 10da848f67a7e7152bf7cbe332e4c92d71a990d2 Author: Arnd Bergmann Date: Thu Feb 25 21:57:43 2016 +0100 ssb: host_soc depends on sprom Drivers that use the SSB sprom functionality typically 'select SSB_SPROM' from Kconfig, but CONFIG_SSB_HOST_SOC misses this, which results in a build failure unless at least one of the other drivers that selects it is enabled: drivers/built-in.o: In function `ssb_host_soc_get_invariants': (.text+0x459494): undefined reference to `ssb_fill_sprom_with_fallback' This adds the same select statement that is used elsewhere. Signed-off-by: Arnd Bergmann Fixes: 541c9a84cd85 ("ssb: pick SoC invariants code from MIPS BCM47xx arch") Signed-off-by: Kalle Valo drivers/ssb/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 1a4f6557dd7c7f0eba18aadbc72e3cf09dae496d Merge: c699404d 905e36a Author: Kalle Valo Date: Fri Feb 26 12:43:40 2016 +0200 Merge tag 'iwlwifi-for-kalle-2016-02-25' of https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes Two fixes for 4.5: * We forgot to free the paging memory (Matti) * Fix the frames in flight accounting (Liad) commit 34d47a77591f2fe7988beeca86d8ee281aee827f Merge: 5bb9871 e817c2f Author: James Morris Date: Fri Feb 26 19:32:16 2016 +1100 Merge branch 'stable-4.5' of git://git.infradead.org/users/pcmoore/selinux into for-linus commit 473f414564528a819f0c2bb6b4bf26366b64c9ab Author: Takashi Iwai Date: Tue Feb 23 15:54:47 2016 +0100 ALSA: hda - Loop interrupt handling until really cleared Currently the interrupt handler of HD-audio driver assumes that no irq update is needed while processing the irq. But in reality, it has been confirmed that the HW irq is issued even during the irq handling. Since we clear the irq status at the beginning, process the interrupt, then exits from the handler, the lately issued interrupt is left untouched without being properly processed. This patch changes the interrupt handler code to loop over the check-and-process. The handler tries repeatedly as long as the IRQ status are turned on, and either stream or CORB/RIRB is handled. For checking the stream handling, snd_hdac_bus_handle_stream_irq() returns a value indicating the stream indices bits. Other than that, the change is only in the irq handler itself. Reported-by: Libin Yang Cc: Signed-off-by: Takashi Iwai include/sound/hdaudio.h | 2 +- sound/hda/hdac_controller.c | 7 ++++++- sound/pci/hda/hda_controller.c | 47 +++++++++++++++++++++++------------------- 3 files changed, 33 insertions(+), 23 deletions(-) commit e9a2d81b1761093386a0bb8a4f51642ac785ef63 Author: Maximilain Schneider Date: Tue Feb 23 01:17:28 2016 +0000 can: gs_usb: fixed disconnect bug by removing erroneous use of kfree() gs_destroy_candev() erroneously calls kfree() on a struct gs_can *, which is allocated through alloc_candev() and should instead be freed using free_candev() alone. The inappropriate use of kfree() causes the kernel to hang when gs_destroy_candev() is called. Only the struct gs_usb * which is allocated through kzalloc() should be freed using kfree() when the device is disconnected. Signed-off-by: Maximilian Schneider Cc: linux-stable Signed-off-by: Marc Kleine-Budde drivers/net/can/usb/gs_usb.c | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) commit 5bb9871eb8daa2e6a07caf7aeafbe2d0b3faad8f Merge: 73056bb d045437 Author: Linus Torvalds Date: Thu Feb 25 20:12:09 2016 -0800 Merge tag 'trace-fixes-v4.5-rc5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace Pull tracing fix from Steven Rostedt: "Another small bug reported to me by Chunyu Hu. When perf added a "reg" function to the function tracing event (not a tracepoint), it caused that event to be displayed as a tracepoint and could cause errors in tracepoint handling. That was solved by adding a flag to ignore ftrace non-tracepoint events. But that flag was missed when displaying events in available_events, which should only contain tracepoint events. This broke a documented way to enable all events with: cat available_events > set_event As the function non-tracepoint event would cause that to error out. The commit here fixes that by having the available_events file not list events that have the ignore flag set" * tag 'trace-fixes-v4.5-rc5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: tracing: Fix showing function event in available_events commit 73056bbc683f16672b948968a92fc3aa6aefbfbd Merge: 5882c16 0fb00d3 Author: Linus Torvalds Date: Thu Feb 25 19:53:54 2016 -0800 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm Pull KVM fixes from Paolo Bonzini: "KVM/ARM fixes: - Fix per-vcpu vgic bitmap allocation - Do not give copy random memory on MMIO read - Fix GICv3 APR register restore order KVM/x86 fixes: - Fix ubsan warning - Fix hardware breakpoints in a guest vs. preempt notifiers - Fix Hurd Generic: - use __GFP_NOWARN together with GFP_NOWAIT" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: KVM: x86: MMU: fix ubsan index-out-of-range warning arm64: KVM: vgic-v3: Restore ICH_APR0Rn_EL2 before ICH_APR1Rn_EL2 KVM: async_pf: do not warn on page allocation failures KVM: x86: fix conversion of addresses to linear in 32-bit protected mode KVM: x86: fix missed hardware breakpoints arm/arm64: KVM: Feed initialized memory to MMIO accesses KVM: arm/arm64: vgic: Ensure bitmaps are long enough commit 5882c169be18e42b855443574f8e95215f7ba461 Merge: 9aca90a 0378ba4 Author: Linus Torvalds Date: Thu Feb 25 19:47:01 2016 -0800 Merge tag 'renesas-sh-drivers-fixes-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas Pull SuperH driver fix from Simon Horman: "Restore legacy clock domain on SuperH platforms" * tag 'renesas-sh-drivers-fixes-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: drivers: sh: Restore legacy clock domain on SuperH platforms commit 9aca90a7ca911af4da5d77fad11f54f040dc027d Merge: 70d070f 9ab3ac2 Author: Linus Torvalds Date: Thu Feb 25 19:41:53 2016 -0800 Merge tag 'powerpc-4.5-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux Pull powerpc fixes from Michael Ellerman: - eeh: Fix partial hotplug criterion from Gavin Shan - mm: Clear the invalid slot information correctly from Aneesh Kumar K.V * tag 'powerpc-4.5-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: powerpc/mm/hash: Clear the invalid slot information correctly powerpc/eeh: Fix partial hotplug criterion commit 70d070f56a24b0d966aee547b6c51d09e9185b63 Merge: 81904db 1b17cb7 Author: Linus Torvalds Date: Thu Feb 25 19:36:33 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux Pull s390 bugfixes from Martin Schwidefsky: "Two critical bug fixes for the signal handling" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: s390/fpu: signals vs. floating point control register s390/compat: correct restore of high gprs on signal return commit 81904dbbb45490642d16fb1343f95dc0d0eec93f Merge: 3acdb84 b7052cd Author: Linus Torvalds Date: Thu Feb 25 19:31:01 2016 -0800 Merge tag 'nfsd-4.5-1' of git://linux-nfs.org/~bfields/linux Pull nfsd bugfix from Bruce Fields: "One fix for a bug that could cause a NULL write past the end of a buffer in case of unusually long writes to some system interfaces used by mountd and other nfs support utilities" * tag 'nfsd-4.5-1' of git://linux-nfs.org/~bfields/linux: sunrpc/cache: fix off-by-one in qword_get() commit 3acdb84c22fc5fcd8384ff0238b62cceba8ed549 Merge: 3d7b365 3772e72 Author: Linus Torvalds Date: Thu Feb 25 19:01:42 2016 -0800 Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux Pull drm fixes from Dave Airlie: "This is a bit larger than Id like, but I asked the Intel guys to pull in some Skylake fixes in the possibly vain hope that Skylake might be more functional now that I'm seeing production hardware shipping. For i915, it's mostly the same patch in a few places, making sure the hw doesn't turn off when we are programming it. Apart from that are two nouveau fixes, one for a module defer bug, and one for using nouveau on new Lenovo P50 models. Then there are a bunch of AMDGPU fixes, one is a fix for v4.4 vblank regressions, and some PM fixes" * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (26 commits) drm/nouveau/disp/dp: ensure sink is powered up before attempting link training drm/nouveau: platform: Fix deferred probe drm/amdgpu: disable direct VM updates when vm_debug is set amdgpu: fix NULL pointer dereference at tonga_check_states_equal drm/i915/gen9: Verify and enforce dc6 state writes drm/i915/gen9: Check for DC state mismatch drm/radeon/pm: adjust display configuration after powerstate drm/amdgpu/pm: adjust display configuration after powerstate drm/amdgpu/pm: add some checks for PX drm/amdgpu: fix locking in force performance level drm/amdgpu/gfx8: fix priv reg interrupt enable drm/i915/skl: Ensure HW is powered during DDB HW state readout drm/i915/lvds: Ensure the HW is powered during HW state readout drm/i915/hdmi: Ensure the HW is powered during HW state readout drm/i915/dsi: Ensure the HW is powered during HW state readout drm/i915/dp: Ensure the HW is powered during HW state readout drm/i915: Ensure the HW is powered when accessing the CRC HW block drm/i915/ddi: Ensure the HW is powered during HW state readout drm/i915/crt: Ensure the HW is powered during HW state readout drm/i915: Ensure the HW is powered during HW access in assert_pipe ... commit 3d7b365490d5f2f8ac1aaaf6cce775e6a8b7f570 Merge: 1ebe383 c454420 Author: Linus Torvalds Date: Thu Feb 25 18:54:53 2016 -0800 Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm Pull libnvdimm fixes from Dan Williams: - Two fixes for compatibility with the ACPI 6.1 specification. Without these fixes multi-interface DIMMs will fail to be probed, and address range scrub commands to find memory errors will give results that the kernel will mis-interpret. For multi-interface DIMMs Linux will accept either the original 6.0 implementation or 6.1. For address range scrub we'll only support 6.1 since ACPI formalized this DSM differently than the original example [1] implemented in v4.2. The expectation is that production systems will only ever ship the ACPI 6.1 address range scrub command definition. - The wider async address range scrub work targeting 4.6 discovered that the original synchronous implementation in 4.5 is not sizing its return buffer correctly. - Arnd caught that my recent fix to the size of the pfn_t flags missed updating the flags variable used in the pmem driver. - Toshi found that we mishandle the memremap() return value in devm_memremap(). * 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: nvdimm: use 'u64' for pfn flags devm_memremap: Fix error value when memremap failed nfit: update address range scrub commands to the acpi 6.1 format libnvdimm, tools/testing/nvdimm: fix 'ars_status' output buffer sizing nfit: fix multi-interface dimm handling, acpi6.1 compatibility commit 1ebe3839e66ae85e065157ba9d6f7923ad8d8fbf Merge: 6dc390a 9aafabc Author: Linus Torvalds Date: Thu Feb 25 18:42:08 2016 -0800 Merge tag 'for-v4.5-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply Pull power supply fixes from Sebastian Reichel: "Add a regression fix for changed sysfs path of bq27xxx_battery and update MAINTAINERS file" * tag 'for-v4.5-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: power: bq27xxx_battery: Restore device name MAINTAINERS: update bq27xxx driver commit c8560b7c917f8738f5d80dd516930edc1d05e4e4 Author: Carlo Caione Date: Tue Feb 23 09:50:20 2016 +0100 ASoC: cht_bsw_rt5645: Fix writing to string literal We cannot use strcpy() to write to a const char * location. This is causing a 'BUG: unable to handle kernel paging request' error at boot when using the cht-bsw-rt5645 driver. With this patch we also fix a wrong indexing in the driver where the codec_name of the wrong dai_link is being overwritten. Signed-off-by: Carlo Caione Signed-off-by: Mark Brown sound/soc/intel/boards/cht_bsw_rt5645.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit f4833a519aec793cf8349bf479589d37473ef6a7 Author: Arnd Bergmann Date: Wed Feb 24 17:38:14 2016 +0100 ASoC: trace: fix printing jack name After a change to the snd_jack structure, the 'name' member is no longer available in all configurations, which results in a build failure in the tracing code: include/trace/events/asoc.h: In function 'trace_event_raw_event_snd_soc_jack_report': include/trace/events/asoc.h:240:32: error: 'struct snd_jack' has no member named 'name' The name field is normally initialized from the card shortname and the jack "id" field: snprintf(jack->name, sizeof(jack->name), "%s %s", card->shortname, jack->id); This changes the tracing output to just contain the 'id' by itself, which slightly changes the output format but avoids the link error and is hopefully still enough to see what is going on. Signed-off-by: Arnd Bergmann Fixes: fe0d128c57bf ("ALSA: jack: Allow building the jack layer without input device") Signed-off-by: Mark Brown include/trace/events/asoc.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 4ee34ea3a12396f35b26d90a094c75db95080baa Author: Harvey Hunt Date: Wed Feb 24 15:16:43 2016 +0000 libata: Align ata_device's id on a cacheline The id buffer in ata_device is a DMA target, but it isn't explicitly cacheline aligned. Due to this, adjacent fields can be overwritten with stale data from memory on non coherent architectures. As a result, the kernel is sometimes unable to communicate with an ATA device. Fix this by ensuring that the id buffer is cacheline aligned. This issue is similar to that fixed by Commit 84bda12af31f ("libata: align ap->sector_buf"). Signed-off-by: Harvey Hunt Cc: linux-kernel@vger.kernel.org Cc: # 2.6.18 Signed-off-by: Tejun Heo include/linux/libata.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4c0b6eaf373a5323f03a3a20c42fc435715b073d Author: Sunil Goutham Date: Wed Feb 24 16:40:50 2016 +0530 net: thunderx: Fix for Qset error due to CQ full On Thunderx pass 1.x and pass2 due to a HW errata default CQ DROP_LEVEL of 0x80 is not sufficient to avoid CQ_WR_FULL Qset error when packets are being received at >20Mpps resulting in complete stall of packet reception. This patch will configure it to 0x100 which is what is expected by HW on Thunderx. On future passes of thunderx and other chips HW default/reset value will be 0x100 or higher hence not overwritten. Signed-off-by: Jerin Jacob Signed-off-by: Sunil Goutham Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nic.h | 9 +++++++++ drivers/net/ethernet/cavium/thunder/nic_main.c | 6 ++++++ drivers/net/ethernet/cavium/thunder/nic_reg.h | 2 +- 3 files changed, 16 insertions(+), 1 deletion(-) commit f09cf4b7832d029fb22d8f476eac12fc27dde61f Author: Chun-Hao Lin Date: Wed Feb 24 14:18:42 2016 +0800 r8169:fix "rtl_counters_cond == 1 (loop: 1000, delay: 10)" log spam. There will be a log spam when there is no cable plugged. Please refer to following links. https://bugzilla.kernel.org/show_bug.cgi?id=104351 https://bugzilla.kernel.org/show_bug.cgi?id=107421 This issue is caused by runtime power management. When there is no cable plugged, the driver will be suspend (runtime suspend) by OS and NIC will be put into the D3 state. During this time, if OS call rtl8169_get_stats64() to dump tally counter, because NIC is in D3 state, the register value read by driver will return all 0xff. This will let driver think tally counter flag is not toggled and then sends the warning message "rtl_counters_cond == 1 (loop: 1000, delay: 10)" to kernel log. For fixing this issue, 1.add checking driver's pm runtime status in rtl8169_get_stats64(). 2.dump tally counter before going runtime suspend for counter accuracy in runtime suspend. Signed-off-by: Chunhao Lin Signed-off-by: David S. Miller drivers/net/ethernet/realtek/r8169.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit 9b368814b336b0a1a479135eb2815edbc00efd3c Author: Linus Lüssing Date: Wed Feb 24 04:21:42 2016 +0100 net: fix bridge multicast packet checksum validation We need to update the skb->csum after pulling the skb, otherwise an unnecessary checksum (re)computation can ocure for IGMP/MLD packets in the bridge code. Additionally this fixes the following splats for network devices / bridge ports with support for and enabled RX checksum offloading: [...] [ 43.986968] eth0: hw csum failure [ 43.990344] CPU: 3 PID: 0 Comm: swapper/3 Not tainted 4.4.0 #2 [ 43.996193] Hardware name: BCM2709 [ 43.999647] [<800204e0>] (unwind_backtrace) from [<8001cf14>] (show_stack+0x10/0x14) [ 44.007432] [<8001cf14>] (show_stack) from [<801ab614>] (dump_stack+0x80/0x90) [ 44.014695] [<801ab614>] (dump_stack) from [<802e4548>] (__skb_checksum_complete+0x6c/0xac) [ 44.023090] [<802e4548>] (__skb_checksum_complete) from [<803a055c>] (ipv6_mc_validate_checksum+0x104/0x178) [ 44.032959] [<803a055c>] (ipv6_mc_validate_checksum) from [<802e111c>] (skb_checksum_trimmed+0x130/0x188) [ 44.042565] [<802e111c>] (skb_checksum_trimmed) from [<803a06e8>] (ipv6_mc_check_mld+0x118/0x338) [ 44.051501] [<803a06e8>] (ipv6_mc_check_mld) from [<803b2c98>] (br_multicast_rcv+0x5dc/0xd00) [ 44.060077] [<803b2c98>] (br_multicast_rcv) from [<803aa510>] (br_handle_frame_finish+0xac/0x51c) [...] Fixes: 9afd85c9e455 ("net: Export IGMP/MLD message validation code") Reported-by: Álvaro Fernández Rojas Signed-off-by: Linus Lüssing Signed-off-by: David S. Miller net/core/skbuff.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) commit a4690afeb0d2d7ba4d60dfa98a89f3bb1ce60ecd Author: Stefan Wahren Date: Tue Feb 23 19:23:24 2016 +0000 net: qca_spi: clear IFF_TX_SKB_SHARING ether_setup sets IFF_TX_SKB_SHARING but this is not supported by qca_spi as it modifies the skb on xmit. Signed-off-by: Stefan Wahren Fixes: 291ab06ecf67 (net: qualcomm: new Ethernet over SPI driver for QCA7000) Signed-off-by: David S. Miller drivers/net/ethernet/qualcomm/qca_spi.c | 1 + 1 file changed, 1 insertion(+) commit 2b70bad23c89b121a3e4a00f8968d14ebb78887d Author: Stefan Wahren Date: Tue Feb 23 19:23:23 2016 +0000 net: qca_spi: Don't clear IFF_BROADCAST Currently qcaspi_netdev_setup accidentally clears IFF_BROADCAST. So fix this by keeping the flags from ether_setup. Reported-by: Michael Heimpold Signed-off-by: Stefan Wahren Fixes: 291ab06ecf67 (net: qualcomm: new Ethernet over SPI driver for QCA7000) Signed-off-by: David S. Miller drivers/net/ethernet/qualcomm/qca_spi.c | 1 - 1 file changed, 1 deletion(-) commit 65c38aa653c14df49e19faad74bd375f36e61c57 Author: David Ahern Date: Tue Feb 23 10:10:26 2016 -0800 net: vrf: Remove direct access to skb->data Nik pointed that the VRF driver should be using skb_header_pointer instead of accessing skb->data and bits beyond directly which can be garbage. Fixes: 35402e313663 ("net: Add IPv6 support to VRF device") Cc: Nikolay Aleksandrov Signed-off-by: David Ahern Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller drivers/net/vrf.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit 44248affb5d82d32cdb58a92a94ce191d4ddee60 Author: Han Xu Date: Thu Feb 18 03:55:15 2016 +0000 MAINTAINERS: add maintainer entry for FREESCALE GPMI NAND driver Add a maintainer entry for FREESCALE GPMI NAND driver and add myself as a maintainer. Signed-off-by: Han Xu Acked-by: Huang Shijie Signed-off-by: Brian Norris MAINTAINERS | 6 ++++++ 1 file changed, 6 insertions(+) commit bf70e5513dfea29c3682e7eb3dbb45f0723bac09 Author: Dexuan Cui Date: Thu Feb 25 01:58:12 2016 -0800 x86/mm: Fix slow_virt_to_phys() for X86_PAE again "d1cd12108346: x86, pageattr: Prevent overflow in slow_virt_to_phys() for X86_PAE" was unintentionally removed by the recent "34437e67a672: x86/mm: Fix slow_virt_to_phys() to handle large PAT bit". And, the variable 'phys_addr' was defined as "unsigned long" by mistake -- it should be "phys_addr_t". As a result, Hyper-V network driver in 32-PAE Linux guest can't work again. Fixes: commit 34437e67a672: "x86/mm: Fix slow_virt_to_phys() to handle large PAT bit" Signed-off-by: Dexuan Cui Reviewed-by: Toshi Kani Cc: olaf@aepfle.de Cc: gregkh@linuxfoundation.org Cc: jasowang@redhat.com Cc: driverdev-devel@linuxdriverproject.org Cc: linux-mm@kvack.org Cc: apw@canonical.com Cc: Andrew Morton Cc: K. Y. Srinivasan Cc: Haiyang Zhang Link: http://lkml.kernel.org/r/1456394292-9030-1-git-send-email-decui@microsoft.com Signed-off-by: Thomas Gleixner arch/x86/mm/pageattr.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) commit 358875fd52ab8f00f66328cbf1a1d2486f265829 Author: Jay Cornwall Date: Wed Feb 10 15:48:01 2016 -0600 iommu/amd: Apply workaround for ATS write permission check The AMD Family 15h Models 30h-3Fh (Kaveri) BIOS and Kernel Developer's Guide omitted part of the BIOS IOMMU L2 register setup specification. Without this setup the IOMMU L2 does not fully respect write permissions when handling an ATS translation request. The IOMMU L2 will set PTE dirty bit when handling an ATS translation with write permission request, even when PTE RW bit is clear. This may occur by direct translation (which would cause a PPR) or by prefetch request from the ATC. This is observed in practice when the IOMMU L2 modifies a PTE which maps a pagecache page. The ext4 filesystem driver BUGs when asked to writeback these (non-modified) pages. Enable ATS write permission check in the Kaveri IOMMU L2 if BIOS has not. Signed-off-by: Jay Cornwall Cc: # v3.19+ Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu_init.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) commit 38e45d02ea9f194b89d6bf41e52ccafc8e2c2b47 Author: Suravee Suthikulpanit Date: Tue Feb 23 13:03:30 2016 +0100 iommu/amd: Fix boot warning when device 00:00.0 is not iommu covered The setup code for the performance counters in the AMD IOMMU driver tests whether the counters can be written. It tests to setup a counter for device 00:00.0, which fails on systems where this particular device is not covered by the IOMMU. Fix this by not relying on device 00:00.0 but only on the IOMMU being present. Cc: stable@vger.kernel.org Signed-off-by: Suravee Suthikulpanit Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu_init.c | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) commit b26a719bdba9aa926ceaadecc66e07623d2b8a53 Author: Geert Uytterhoeven Date: Thu Feb 18 17:06:30 2016 +0100 gpio: rcar: Add Runtime PM handling for interrupts The R-Car GPIO driver handles Runtime PM for requested GPIOs only. When using a GPIO purely as an interrupt source, no Runtime PM handling is done, and the GPIO module's clock may not be enabled. To fix this: - Add .irq_request_resources() and .irq_release_resources() callbacks to handle Runtime PM when an interrupt is requested, - Add irq_bus_lock() and sync_unlock() callbacks to handle Runtime PM when e.g. disabling/enabling an interrupt, or configuring the interrupt type. Fixes: d5c3d84657db57bd "net: phy: Avoid polling PHY with PHY_IGNORE_INTERRUPTS" Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Walleij drivers/gpio/gpio-rcar.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) commit f883982dc1b117f04579f0896821cd9f2e397f94 Author: Takashi Iwai Date: Thu Feb 25 14:31:59 2016 +0100 ALSA: hda - Fix headset support and noise on HP EliteBook 755 G2 HP EliteBook 755 G2 with ALC3228 (ALC280) codec [103c:221c] requires the known fixup (ALC269_FIXUP_HEADSET_MIC) for making the headset mic working. Also, it suffers from the loopback noise problem, so we should disable aamix path as well. Reported-by: Derick Eddington Cc: Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit be629c62a603e5935f8177fd8a19e014100a259e Author: David Woodhouse Date: Mon Feb 1 14:04:46 2016 +0000 Fix directory hardlinks from deleted directories When a directory is deleted, we don't take too much care about killing off all the dirents that belong to it — on the basis that on remount, the scan will conclude that the directory is dead anyway. This doesn't work though, when the deleted directory contained a child directory which was moved *out*. In the early stages of the fs build we can then end up with an apparent hard link, with the child directory appearing both in its true location, and as a child of the original directory which are this stage of the mount process we don't *yet* know is defunct. To resolve this, take out the early special-casing of the "directories shall not have hard links" rule in jffs2_build_inode_pass1(), and let the normal nlink processing happen for directories as well as other inodes. Then later in the build process we can set ic->pino_nlink to the parent inode#, as is required for directories during normal operaton, instead of the nlink. And complain only *then* about hard links which are still in evidence even after killing off all the unreachable paths. Reported-by: Liu Song Signed-off-by: David Woodhouse Cc: stable@vger.kernel.org fs/jffs2/build.c | 75 ++++++++++++++++++++++++++++++++++++++++------------- fs/jffs2/nodelist.h | 6 ++++- 2 files changed, 62 insertions(+), 19 deletions(-) commit 49e91e7079febe59a20ca885a87dd1c54240d0f1 Author: David Woodhouse Date: Mon Feb 1 12:37:20 2016 +0000 jffs2: Fix page lock / f->sem deadlock With this fix, all code paths should now be obtaining the page lock before f->sem. Reported-by: Szabó Tamás Tested-by: Thomas Betker Signed-off-by: David Woodhouse Cc: stable@vger.kernel.org fs/jffs2/README.Locking | 5 +---- fs/jffs2/gc.c | 17 ++++++++++------- 2 files changed, 11 insertions(+), 11 deletions(-) commit 157078f64b8a9cd7011b6b900b2f2498df850748 Author: Thomas Betker Date: Tue Nov 10 22:18:15 2015 +0100 Revert "jffs2: Fix lock acquisition order bug in jffs2_write_begin" This reverts commit 5ffd3412ae55 ("jffs2: Fix lock acquisition order bug in jffs2_write_begin"). The commit modified jffs2_write_begin() to remove a deadlock with jffs2_garbage_collect_live(), but this introduced new deadlocks found by multiple users. page_lock() actually has to be called before mutex_lock(&c->alloc_sem) or mutex_lock(&f->sem) because jffs2_write_end() and jffs2_readpage() are called with the page locked, and they acquire c->alloc_sem and f->sem, resp. In other words, the lock order in jffs2_write_begin() was correct, and it is the jffs2_garbage_collect_live() path that has to be changed. Revert the commit to get rid of the new deadlocks, and to clear the way for a better fix of the original deadlock. Reported-by: Deng Chao Reported-by: Ming Liu Reported-by: wangzaiwei Signed-off-by: Thomas Betker Signed-off-by: David Woodhouse Cc: stable@vger.kernel.org fs/jffs2/file.c | 39 ++++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 21 deletions(-) commit 2ae955774f29bbd7d16149cb0ae8d0319bf2ecc4 Author: David Henningsson Date: Thu Feb 25 09:37:05 2016 +0100 ALSA: hda - Fixup speaker pass-through control for nid 0x14 on ALC225 On one of the machines we enable, we found that the actual speaker volume did not always correspond to the volume set in alsamixer. This patch fixes that problem. This patch was orginally written by Kailang @ Realtek, I've rebased it to fit sound git master. Cc: stable@vger.kernel.org BugLink: https://bugs.launchpad.net/bugs/1549660 Co-Authored-By: Kailang Signed-off-by: David Henningsson Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) commit 0fb00d326ffc36844fac0bfefd8644585a86d4a6 Merge: 17e4bce fd451b9 Author: Paolo Bonzini Date: Thu Feb 25 09:53:55 2016 +0100 Merge tag 'kvm-arm-for-4.5-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into kvm-master KVM/ARM fixes for 4.5-rc6 - Fix per-vcpu vgic bitmap allocation - Do not give copy random memory on MMIO read - Fix GICv3 APR register restore order commit 17e4bce0ae63c7e03f3c7fa8d80890e7af3d4971 Author: Mike Krinkin Date: Wed Feb 24 21:02:31 2016 +0300 KVM: x86: MMU: fix ubsan index-out-of-range warning Ubsan reports the following warning due to a typo in update_accessed_dirty_bits template, the patch fixes the typo: [ 168.791851] ================================================================================ [ 168.791862] UBSAN: Undefined behaviour in arch/x86/kvm/paging_tmpl.h:252:15 [ 168.791866] index 4 is out of range for type 'u64 [4]' [ 168.791871] CPU: 0 PID: 2950 Comm: qemu-system-x86 Tainted: G O L 4.5.0-rc5-next-20160222 #7 [ 168.791873] Hardware name: LENOVO 23205NG/23205NG, BIOS G2ET95WW (2.55 ) 07/09/2013 [ 168.791876] 0000000000000000 ffff8801cfcaf208 ffffffff81c9f780 0000000041b58ab3 [ 168.791882] ffffffff82eb2cc1 ffffffff81c9f6b4 ffff8801cfcaf230 ffff8801cfcaf1e0 [ 168.791886] 0000000000000004 0000000000000001 0000000000000000 ffffffffa1981600 [ 168.791891] Call Trace: [ 168.791899] [] dump_stack+0xcc/0x12c [ 168.791904] [] ? _atomic_dec_and_lock+0xc4/0xc4 [ 168.791910] [] ubsan_epilogue+0xd/0x8a [ 168.791914] [] __ubsan_handle_out_of_bounds+0x15c/0x1a3 [ 168.791918] [] ? __ubsan_handle_shift_out_of_bounds+0x2bd/0x2bd [ 168.791922] [] ? get_user_pages_fast+0x2bf/0x360 [ 168.791954] [] ? kvm_largepages_enabled+0x30/0x30 [kvm] [ 168.791958] [] ? __get_user_pages_fast+0x360/0x360 [ 168.791987] [] paging64_walk_addr_generic+0x1b28/0x2600 [kvm] [ 168.792014] [] ? init_kvm_mmu+0x1100/0x1100 [kvm] [ 168.792019] [] ? debug_check_no_locks_freed+0x350/0x350 [ 168.792044] [] ? init_kvm_mmu+0x1100/0x1100 [kvm] [ 168.792076] [] paging64_gva_to_gpa+0x7d/0x110 [kvm] [ 168.792121] [] ? paging64_walk_addr_generic+0x2600/0x2600 [kvm] [ 168.792130] [] ? debug_lockdep_rcu_enabled+0x7b/0x90 [ 168.792178] [] emulator_read_write_onepage+0x27a/0x1150 [kvm] [ 168.792208] [] ? __kvm_read_guest_page+0x54/0x70 [kvm] [ 168.792234] [] ? kvm_task_switch+0x160/0x160 [kvm] [ 168.792238] [] ? debug_lockdep_rcu_enabled+0x7b/0x90 [ 168.792263] [] emulator_read_write+0xe7/0x6d0 [kvm] [ 168.792290] [] ? em_cr_write+0x230/0x230 [kvm] [ 168.792314] [] emulator_write_emulated+0x15/0x20 [kvm] [ 168.792340] [] segmented_write+0xf8/0x130 [kvm] [ 168.792367] [] ? em_lgdt+0x20/0x20 [kvm] [ 168.792374] [] ? vmx_read_guest_seg_ar+0x42/0x1e0 [kvm_intel] [ 168.792400] [] writeback+0x3f2/0x700 [kvm] [ 168.792424] [] ? em_sidt+0xa0/0xa0 [kvm] [ 168.792449] [] ? x86_decode_insn+0x1b3d/0x4f70 [kvm] [ 168.792474] [] x86_emulate_insn+0x572/0x3010 [kvm] [ 168.792499] [] x86_emulate_instruction+0x3bd/0x2110 [kvm] [ 168.792524] [] ? reexecute_instruction.part.110+0x2e0/0x2e0 [kvm] [ 168.792532] [] handle_ept_misconfig+0x61/0x460 [kvm_intel] [ 168.792539] [] ? handle_pause+0x450/0x450 [kvm_intel] [ 168.792546] [] vmx_handle_exit+0xd6a/0x1ad0 [kvm_intel] [ 168.792572] [] ? kvm_arch_vcpu_ioctl_run+0xbdc/0x6090 [kvm] [ 168.792597] [] kvm_arch_vcpu_ioctl_run+0xd3d/0x6090 [kvm] [ 168.792621] [] ? kvm_arch_vcpu_ioctl_run+0xbdc/0x6090 [kvm] [ 168.792627] [] ? __ww_mutex_lock_interruptible+0x1630/0x1630 [ 168.792651] [] ? kvm_arch_vcpu_runnable+0x4f0/0x4f0 [kvm] [ 168.792656] [] ? preempt_notifier_unregister+0x190/0x190 [ 168.792681] [] ? kvm_arch_vcpu_load+0x127/0x650 [kvm] [ 168.792704] [] kvm_vcpu_ioctl+0x553/0xda0 [kvm] [ 168.792727] [] ? vcpu_put+0x40/0x40 [kvm] [ 168.792732] [] ? debug_check_no_locks_freed+0x350/0x350 [ 168.792735] [] ? _raw_spin_unlock+0x27/0x40 [ 168.792740] [] ? handle_mm_fault+0x1673/0x2e40 [ 168.792744] [] ? trace_hardirqs_on_caller+0x478/0x6c0 [ 168.792747] [] ? trace_hardirqs_on+0xd/0x10 [ 168.792751] [] ? debug_lockdep_rcu_enabled+0x7b/0x90 [ 168.792756] [] do_vfs_ioctl+0x1b0/0x12b0 [ 168.792759] [] ? ioctl_preallocate+0x210/0x210 [ 168.792763] [] ? __fget+0x273/0x4a0 [ 168.792766] [] ? __fget+0x50/0x4a0 [ 168.792770] [] ? __fget_light+0x96/0x2b0 [ 168.792773] [] SyS_ioctl+0x79/0x90 [ 168.792777] [] entry_SYSCALL_64_fastpath+0x23/0xc1 [ 168.792780] ================================================================================ Signed-off-by: Mike Krinkin Reviewed-by: Xiao Guangrong Cc: stable@vger.kernel.org Signed-off-by: Paolo Bonzini arch/x86/kvm/paging_tmpl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3b43b71f05d3ecd01c4116254666d9492301697d Author: Kai-Heng Feng Date: Thu Feb 25 15:19:38 2016 +0800 ALSA: hda - Fixing background noise on Dell Inspiron 3162 After login to the desktop on Dell Inspiron 3162, there's a very loud background noise comes from the builtin speaker. The noise does not go away even if the speaker is muted. The noise disappears after using the aamix fixup. Codec: Realtek ALC3234 Address: 0 AFG Function Id: 0x1 (unsol 1) Vendor Id: 0x10ec0255 Subsystem Id: 0x10280725 Revision Id: 0x100002 No Modem Function Group found BugLink: http://bugs.launchpad.net/bugs/1549620 Signed-off-by: Kai-Heng Feng Cc: Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 0da4cf3e0a68c97ef811569804616a811f786729 Author: Peter Zijlstra Date: Wed Feb 24 18:45:51 2016 +0100 perf: Robustify task_function_call() Since there is no serialization between task_function_call() doing task_curr() and the other CPU doing context switches, we could end up not sending an IPI even if we had to. And I'm not sure I still buy my own argument we're OK. Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: dvyukov@google.com Cc: eranian@google.com Cc: oleg@redhat.com Cc: panand@redhat.com Cc: sasha.levin@oracle.com Cc: vince@deater.net Link: http://lkml.kernel.org/r/20160224174948.340031200@infradead.org Signed-off-by: Ingo Molnar kernel/events/core.c | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) commit a096309bc4677f60caa8e93fcc613a55073c51d4 Author: Peter Zijlstra Date: Wed Feb 24 18:45:50 2016 +0100 perf: Fix scaling vs. perf_install_in_context() Completely reworks perf_install_in_context() (again!) in order to ensure that there will be no ctx time hole between add_event_to_ctx() and any potential ctx_sched_in(). Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: dvyukov@google.com Cc: eranian@google.com Cc: oleg@redhat.com Cc: panand@redhat.com Cc: sasha.levin@oracle.com Cc: vince@deater.net Link: http://lkml.kernel.org/r/20160224174948.279399438@infradead.org Signed-off-by: Ingo Molnar kernel/events/core.c | 115 +++++++++++++++++++++++++++++++-------------------- 1 file changed, 70 insertions(+), 45 deletions(-) commit bd2afa49d194c6412c333e9fdd48bc5d06bb465d Author: Peter Zijlstra Date: Wed Feb 24 18:45:49 2016 +0100 perf: Fix scaling vs. perf_event_enable() Similar to the perf_enable_on_exec(), ensure that event timings are consistent across perf_event_enable(). Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: dvyukov@google.com Cc: eranian@google.com Cc: oleg@redhat.com Cc: panand@redhat.com Cc: sasha.levin@oracle.com Cc: vince@deater.net Link: http://lkml.kernel.org/r/20160224174948.218288698@infradead.org Signed-off-by: Ingo Molnar kernel/events/core.c | 42 +++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 19 deletions(-) commit 7fce250915efca0f8f51dddee3ae89bf30d86ca5 Author: Peter Zijlstra Date: Wed Feb 24 18:45:48 2016 +0100 perf: Fix scaling vs. perf_event_enable_on_exec() The recent commit 3e349507d12d ("perf: Fix perf_enable_on_exec() event scheduling") caused this by moving task_ctx_sched_out() from before __perf_event_mask_enable() to after it. The overlooked consequence of that change is that task_ctx_sched_out() would update the ctx time fields, and now __perf_event_mask_enable() uses stale time. In order to fix this, explicitly stop our context's time before enabling the event(s). Reported-by: Oleg Nesterov Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: dvyukov@google.com Cc: eranian@google.com Cc: panand@redhat.com Cc: sasha.levin@oracle.com Cc: vince@deater.net Fixes: 3e349507d12d ("perf: Fix perf_enable_on_exec() event scheduling") Link: http://lkml.kernel.org/r/20160224174948.159242158@infradead.org Signed-off-by: Ingo Molnar kernel/events/core.c | 1 + 1 file changed, 1 insertion(+) commit 3cbaa59069677920186dcf502632ca1df4329f80 Author: Peter Zijlstra Date: Wed Feb 24 18:45:47 2016 +0100 perf: Fix ctx time tracking by introducing EVENT_TIME Currently any ctx_sched_in() call will re-start the ctx time tracking, this means that calls like: ctx_sched_in(.event_type = EVENT_PINNED); ctx_sched_in(.event_type = EVENT_FLEXIBLE); will have a hole in their ctx time tracking. This is likely harmless but can confuse things a little. By adding EVENT_TIME, we can have the first ctx_sched_in() (is_active: 0 -> !0) start the time and any further ctx_sched_in() will leave the timestamps alone. Secondly, this allows for an early disable like: ctx_sched_out(.event_type = EVENT_TIME); which would update the ctx time (if the ctx is active) and any further calls to ctx_sched_out() would not further modify the ctx time. For ctx_sched_in() any 0 -> !0 transition will automatically include EVENT_TIME. For ctx_sched_out(), any transition that clears EVENT_ALL will automatically clear EVENT_TIME. These two rules ensure that under normal circumstances we need not bother with EVENT_TIME and get natural ctx time behaviour. Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: dvyukov@google.com Cc: eranian@google.com Cc: oleg@redhat.com Cc: panand@redhat.com Cc: sasha.levin@oracle.com Cc: vince@deater.net Link: http://lkml.kernel.org/r/20160224174948.100446561@infradead.org Signed-off-by: Ingo Molnar kernel/events/core.c | 42 ++++++++++++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 12 deletions(-) commit 28a967c3a2f99fa3b5f762f25cb2a319d933571b Author: Peter Zijlstra Date: Wed Feb 24 18:45:46 2016 +0100 perf: Cure event->pending_disable race Because event_sched_out() checks event->pending_disable _before_ actually disabling the event, it can happen that the event fires after it checks but before it gets disabled. This would leave event->pending_disable set and the queued irq_work will try and process it. However, if the event trigger was during schedule(), the event might have been de-scheduled by the time the irq_work runs, and perf_event_disable_local() will fail. Fix this by checking event->pending_disable _after_ we call event->pmu->del(). This depends on the latter being a compiler barrier, such that the compiler does not lift the load and re-creates the problem. Tested-by: Alexander Shishkin Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: dvyukov@google.com Cc: eranian@google.com Cc: oleg@redhat.com Cc: panand@redhat.com Cc: sasha.levin@oracle.com Cc: vince@deater.net Link: http://lkml.kernel.org/r/20160224174948.040469884@infradead.org Signed-off-by: Ingo Molnar kernel/events/core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 9107c89e269d2738019861bb518e3d59bef01781 Author: Peter Zijlstra Date: Wed Feb 24 18:45:45 2016 +0100 perf: Fix race between event install and jump_labels perf_install_in_context() relies upon the context switch hooks to have scheduled in events when the IPI misses its target -- after all, if the task has moved from the CPU (or wasn't running at all), it will have to context switch to run elsewhere. This however doesn't appear to be happening. It is possible for the IPI to not happen (task wasn't running) only to later observe the task running with an inactive context. The only possible explanation is that the context switch hooks are not called. Therefore put in a sync_sched() after toggling the jump_label to guarantee all CPUs will have them enabled before we install an event. A simple if (0->1) sync_sched() will not in fact work, because any further increment can race and complete before the sync_sched(). Therefore we must jump through some hoops. Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: dvyukov@google.com Cc: eranian@google.com Cc: oleg@redhat.com Cc: panand@redhat.com Cc: sasha.levin@oracle.com Cc: vince@deater.net Link: http://lkml.kernel.org/r/20160224174947.980211985@infradead.org Signed-off-by: Ingo Molnar include/linux/perf_event.h | 6 +++--- kernel/events/core.c | 49 ++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 44 insertions(+), 11 deletions(-) commit a69b0ca4ac3bf5427b571f11cbf33f0a32b728d5 Author: Peter Zijlstra Date: Wed Feb 24 18:45:44 2016 +0100 perf: Fix cloning Alexander reported that when the 'original' context gets destroyed, no new clones happen. This can happen irrespective of the ctx switch optimization, any task can die, even the parent, and we want to continue monitoring the task hierarchy until we either close the event or no tasks are left in the hierarchy. perf_event_init_context() will attempt to pin the 'parent' context during clone(). At that point current is the parent, and since current cannot have exited while executing clone(), its context cannot have passed through perf_event_exit_task_context(). Therefore perf_pin_task_context() cannot observe ctx->task == TASK_TOMBSTONE. However, since inherit_event() does: if (parent_event->parent) parent_event = parent_event->parent; it looks at the 'original' event when it does: is_orphaned_event(). This can return true if the context that contains the this event has passed through perf_event_exit_task_context(). And thus we'll fail to clone the perf context. Fix this by adding a new state: STATE_DEAD, which is set by perf_release() to indicate that the filedesc (or kernel reference) is dead and there are no observers for our data left. Only for STATE_DEAD will is_orphaned_event() be true and inhibit cloning. STATE_EXIT is otherwise preserved such that is_event_hup() remains functional and will report when the observed task hierarchy becomes empty. Reported-by: Alexander Shishkin Tested-by: Alexander Shishkin Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: dvyukov@google.com Cc: eranian@google.com Cc: oleg@redhat.com Cc: panand@redhat.com Cc: sasha.levin@oracle.com Cc: vince@deater.net Fixes: c6e5b73242d2 ("perf: Synchronously clean up child events") Link: http://lkml.kernel.org/r/20160224174947.919845295@infradead.org Signed-off-by: Ingo Molnar include/linux/perf_event.h | 1 + kernel/events/core.c | 29 ++++++++++++++--------------- 2 files changed, 15 insertions(+), 15 deletions(-) commit 6f932e5be1503ab0783699e843db325d44c2fabb Author: Peter Zijlstra Date: Wed Feb 24 18:45:43 2016 +0100 perf: Only update context time when active Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: dvyukov@google.com Cc: eranian@google.com Cc: oleg@redhat.com Cc: panand@redhat.com Cc: sasha.levin@oracle.com Cc: vince@deater.net Link: http://lkml.kernel.org/r/20160224174947.860690919@infradead.org Signed-off-by: Ingo Molnar kernel/events/core.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit a4f4bb6d0c69d0bb573f1d9e6f1b806f9b038b19 Author: Peter Zijlstra Date: Wed Feb 24 18:45:42 2016 +0100 perf: Allow perf_release() with !event->ctx In the err_file: fput(event_file) case, the event will not yet have been attached to a context. However perf_release() does assume it has been. Cure this. Tested-by: Alexander Shishkin Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: dvyukov@google.com Cc: eranian@google.com Cc: oleg@redhat.com Cc: panand@redhat.com Cc: sasha.levin@oracle.com Cc: vince@deater.net Link: http://lkml.kernel.org/r/20160224174947.793996260@infradead.org Signed-off-by: Ingo Molnar kernel/events/core.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) commit 130056275ade730e7a79c110212c8815202773ee Author: Peter Zijlstra Date: Wed Feb 24 18:45:41 2016 +0100 perf: Do not double free In case of: err_file: fput(event_file), we'll end up calling perf_release() which in turn will free the event. Do not then free the event _again_. Tested-by: Alexander Shishkin Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: dvyukov@google.com Cc: eranian@google.com Cc: oleg@redhat.com Cc: panand@redhat.com Cc: sasha.levin@oracle.com Cc: vince@deater.net Link: http://lkml.kernel.org/r/20160224174947.697350349@infradead.org Signed-off-by: Ingo Molnar kernel/events/core.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 84c4e620d35f49f486a900af214ad12276afb386 Author: Peter Zijlstra Date: Wed Feb 24 18:45:40 2016 +0100 perf: Close install vs. exit race Consider the following scenario: CPU0 CPU1 ctx = find_get_ctx(); perf_event_exit_task_context() mutex_lock(&ctx->mutex); perf_install_in_context(ctx, ...); /* NO-OP */ mutex_unlock(&ctx->mutex); ... perf_release() WARN_ON_ONCE(event->state != STATE_EXIT); Since the event doesn't pass through perf_remove_from_context() because perf_install_in_context() NO-OPs because the ctx is dead, and perf_event_exit_task_context() will not observe the event because its not attached yet, the event->state will not be set. Solve this by revalidating ctx->task after we acquire ctx->mutex and failing the event creation as a whole. Tested-by: Alexander Shishkin Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: dvyukov@google.com Cc: eranian@google.com Cc: oleg@redhat.com Cc: panand@redhat.com Cc: sasha.levin@oracle.com Cc: vince@deater.net Link: http://lkml.kernel.org/r/20160224174947.626853419@infradead.org Signed-off-by: Ingo Molnar kernel/events/core.c | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) commit 3d44d51bd339766f0178f0cf2e8d048b4a4872aa Author: Andy Lutomirski Date: Wed Feb 24 12:18:49 2016 -0800 x86/entry/compat: Add missing CLAC to entry_INT80_32 This doesn't seem to fix a regression -- I don't think the CLAC was ever there. I double-checked in a debugger: entries through the int80 gate do not automatically clear AC. Stable maintainers: I can provide a backport to 4.3 and earlier if needed. This needs to be backported all the way to 3.10. Reported-by: Brian Gerst Signed-off-by: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: # v3.10 and later Fixes: 63bcff2a307b ("x86, smap: Add STAC and CLAC instructions to control user space access") Link: http://lkml.kernel.org/r/b02b7e71ae54074be01fc171cbd4b72517055c0e.1456345086.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/entry_64_compat.S | 1 + 1 file changed, 1 insertion(+) commit ee50c130c82175eaa0820c96b6d3763928af2241 Author: Diego Viola Date: Tue Feb 23 12:04:04 2016 -0300 net: jme: fix suspend/resume on JMC260 The JMC260 network card fails to suspend/resume because the call to jme_start_irq() was too early, moving the call to jme_start_irq() after the call to jme_reset_link() makes it work. Prior this change suspend/resume would fail unless /sys/power/pm_async=0 was explicitly specified. Relevant bug report: https://bugzilla.kernel.org/show_bug.cgi?id=112351 Signed-off-by: Diego Viola Signed-off-by: David S. Miller drivers/net/ethernet/jme.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 3772e72720c6bfe1c1fc592ac3d6270559b4ce09 Merge: 870571a5 95664e6 Author: Dave Airlie Date: Thu Feb 25 13:17:50 2016 +1000 Merge branch 'linux-4.5' of git://github.com/skeggsb/linux into drm-fixes single for for eDP panel issues on Lenovo P50 * 'linux-4.5' of git://github.com/skeggsb/linux: drm/nouveau/disp/dp: ensure sink is powered up before attempting link training commit 95664e66fad964c3dd7945d6edfb1d0931844664 Author: Ben Skeggs Date: Thu Feb 18 08:14:19 2016 +1000 drm/nouveau/disp/dp: ensure sink is powered up before attempting link training This can happen under some annoying circumstances, and is a quick fix until more substantial changes can be made. Fixed eDP mode changes on (at least) the Lenovo P50. Signed-off-by: Ben Skeggs Cc: stable@vger.kernel.org drivers/gpu/drm/nouveau/nvkm/engine/disp/dport.c | 10 ++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/disp/dport.h | 6 ++++++ 2 files changed, 16 insertions(+) commit 870571a5698b2e9d0f4d2e5c6245967b582aab45 Author: Thierry Reding Date: Wed Feb 24 18:34:43 2016 +0100 drm/nouveau: platform: Fix deferred probe The error cleanup paths aren't quite correct and will crash upon deferred probe. Cc: stable@vger.kernel.org # v4.3+ Reviewed-by: Ben Skeggs Reviewed-by: Alexandre Courbot Signed-off-by: Thierry Reding Signed-off-by: Dave Airlie drivers/gpu/drm/nouveau/nouveau_platform.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c | 40 ++++++++++++++++------ 2 files changed, 30 insertions(+), 12 deletions(-) commit d144dfea8af7108f613139623e63952ed7e69c0c Author: Peter Chen Date: Wed Feb 24 11:05:25 2016 +0800 usb: chipidea: otg: change workqueue ci_otg as freezable If we use USB ID pin as wakeup source, and there is a USB block device on this USB OTG (ID) cable, the system will be deadlock after system resume. The root cause for this problem is: the workqueue ci_otg may try to remove hcd before the driver resume has finished, and hcd will disconnect the device on it, then, it will call device_release_driver, and holds the device lock "dev->mutex", but it is never unlocked since it waits workqueue writeback to run to flush the block information, but the workqueue writeback is freezable, it is not thawed before driver resume has finished. When the driver (device: sd 0:0:0:0:) resume goes to dpm_complete, it tries to get its device lock "dev->mutex", but it can't get it forever, then the deadlock occurs. Below call stacks show the situation. So, in order to fix this problem, we need to change workqueue ci_otg as freezable, then the work item in this workqueue will be run after driver's resume, this workqueue will not be blocked forever like above case since the workqueue writeback has been thawed too. Tested at: i.mx6qdl-sabresd and i.mx6sx-sdb. [ 555.178869] kworker/u2:13 D c07de74c 0 826 2 0x00000000 [ 555.185310] Workqueue: ci_otg ci_otg_work [ 555.189353] Backtrace: [ 555.191849] [] (__schedule) from [] (schedule+0x48/0xa0) [ 555.198912] r10:ee471ba0 r9:00000000 r8:00000000 r7:00000002 r6:ee470000 r5:ee471ba4 [ 555.206867] r4:ee470000 [ 555.209453] [] (schedule) from [] (schedule_timeout+0x15c/0x1e0) [ 555.217212] r4:7fffffff r3:edc2b000 [ 555.220862] [] (schedule_timeout) from [] (wait_for_common+0x94/0x144) [ 555.229140] r8:00000000 r7:00000002 r6:ee470000 r5:ee471ba4 r4:7fffffff [ 555.235980] [] (wait_for_common) from [] (wait_for_completion+0x18/0x1c) [ 555.244430] r10:00000001 r9:c0b5563c r8:c0042e48 r7:ef086000 r6:eea4372c r5:ef131b00 [ 555.252383] r4:00000000 [ 555.254970] [] (wait_for_completion) from [] (flush_work+0x19c/0x234) [ 555.263177] [] (flush_work) from [] (flush_delayed_work+0x48/0x4c) [ 555.271106] r8:ed5b5000 r7:c0b38a3c r6:eea439cc r5:eea4372c r4:eea4372c [ 555.277958] [] (flush_delayed_work) from [] (bdi_unregister+0x84/0xec) [ 555.286236] r4:eea43520 r3:20000153 [ 555.289885] [] (bdi_unregister) from [] (blk_cleanup_queue+0x180/0x29c) [ 555.298250] r5:eea43808 r4:eea43400 [ 555.301909] [] (blk_cleanup_queue) from [] (__scsi_remove_device+0x48/0xb8) [ 555.310623] r7:00000000 r6:20000153 r5:ededa950 r4:ededa800 [ 555.316403] [] (__scsi_remove_device) from [] (scsi_forget_host+0x64/0x68) [ 555.325028] r5:ededa800 r4:ed5b5000 [ 555.328689] [] (scsi_forget_host) from [] (scsi_remove_host+0x78/0x104) [ 555.337054] r5:ed5b5068 r4:ed5b5000 [ 555.340709] [] (scsi_remove_host) from [] (usb_stor_disconnect+0x50/0xb4) [ 555.349247] r6:ed5b56e4 r5:ed5b5818 r4:ed5b5690 r3:00000008 [ 555.355025] [] (usb_stor_disconnect) from [] (usb_unbind_interface+0x78/0x25c) [ 555.363997] r8:c13919b4 r7:edd3c000 r6:edd3c020 r5:ee551c68 r4:ee551c00 r3:c04cdf7c [ 555.371892] [] (usb_unbind_interface) from [] (__device_release_driver+0x8c/0x118) [ 555.381213] r10:00000001 r9:edd90c00 r8:c13919b4 r7:ee551c68 r6:c0b546e0 r5:c0b5563c [ 555.389167] r4:edd3c020 [ 555.391752] [] (__device_release_driver) from [] (device_release_driver+0x28/0x34) [ 555.401071] r5:edd3c020 r4:edd3c054 [ 555.404721] [] (device_release_driver) from [] (bus_remove_device+0xe0/0x110) [ 555.413607] r5:edd3c020 r4:ef17f04c [ 555.417253] [] (bus_remove_device) from [] (device_del+0x114/0x21c) [ 555.425270] r6:edd3c028 r5:edd3c020 r4:ee551c00 r3:00000000 [ 555.431045] [] (device_del) from [] (usb_disable_device+0xa4/0x1e8) [ 555.439061] r8:edd3c000 r7:eded8000 r6:00000000 r5:00000001 r4:ee551c00 [ 555.445906] [] (usb_disable_device) from [] (usb_disconnect+0x74/0x224) [ 555.454271] r9:edd90c00 r8:ee551000 r7:ee551c68 r6:ee551c9c r5:ee551c00 r4:00000001 [ 555.462156] [] (usb_disconnect) from [] (usb_disconnect+0x1d8/0x224) [ 555.470259] r10:00000001 r9:edd90000 r8:ee471e2c r7:ee551468 r6:ee55149c r5:ee551400 [ 555.478213] r4:00000001 [ 555.480797] [] (usb_disconnect) from [] (usb_remove_hcd+0xa0/0x1ac) [ 555.488813] r10:00000001 r9:ee471eb0 r8:00000000 r7:ef3d9500 r6:eded810c r5:eded80b0 [ 555.496765] r4:eded8000 [ 555.499351] [] (usb_remove_hcd) from [] (host_stop+0x28/0x64) [ 555.506847] r6:eeb50010 r5:eded8000 r4:eeb51010 [ 555.511563] [] (host_stop) from [] (ci_otg_work+0xc4/0x124) [ 555.518885] r6:00000001 r5:eeb50010 r4:eeb502a0 r3:c04d4130 [ 555.524665] [] (ci_otg_work) from [] (process_one_work+0x194/0x420) [ 555.532682] r6:ef086000 r5:eeb502a0 r4:edc44480 [ 555.537393] [] (process_one_work) from [] (worker_thread+0x34/0x514) [ 555.545496] r10:edc44480 r9:ef086000 r8:c0b1a100 r7:ef086034 r6:00000088 r5:edc44498 [ 555.553450] r4:ef086000 [ 555.556032] [] (worker_thread) from [] (kthread+0xdc/0xf8) [ 555.563268] r10:00000000 r9:00000000 r8:00000000 r7:c004577c r6:edc44480 r5:eddc15c0 [ 555.571221] r4:00000000 [ 555.573804] [] (kthread) from [] (ret_from_fork+0x14/0x24) [ 555.581040] r7:00000000 r6:00000000 r5:c004b9d8 r4:eddc15c0 [ 553.429383] sh D c07de74c 0 694 691 0x00000000 [ 553.435801] Backtrace: [ 553.438295] [] (__schedule) from [] (schedule+0x48/0xa0) [ 553.445358] r10:edd3c054 r9:edd3c078 r8:edddbd50 r7:edcbbc00 r6:c1377c34 r5:60000153 [ 553.453313] r4:eddda000 [ 553.455896] [] (schedule) from [] (schedule_preempt_disabled+0x10/0x14) [ 553.464261] r4:edd3c058 r3:0000000a [ 553.467910] [] (schedule_preempt_disabled) from [] (mutex_lock_nested+0x1a0/0x3e8) [ 553.477254] [] (mutex_lock_nested) from [] (dpm_complete+0xc0/0x1b0) [ 553.485358] r10:00561408 r9:edd3c054 r8:c0b4863c r7:edddbd90 r6:c0b485d8 r5:edd3c020 [ 553.493313] r4:edd3c0d0 [ 553.495896] [] (dpm_complete) from [] (dpm_resume_end+0x1c/0x20) [ 553.503652] r9:00000000 r8:c0b1a9d0 r7:c1334ec0 r6:c1334edc r5:00000003 r4:00000010 [ 553.511544] [] (dpm_resume_end) from [] (suspend_devices_and_enter+0x158/0x504) [ 553.520604] r4:00000000 r3:c1334efc [ 553.524250] [] (suspend_devices_and_enter) from [] (pm_suspend+0x234/0x2cc) [ 553.532961] r10:00561408 r9:ed6b7300 r8:00000004 r7:c1334eec r6:00000000 r5:c1334ee8 [ 553.540914] r4:00000003 [ 553.543493] [] (pm_suspend) from [] (state_store+0x6c/0xc0) [ 555.703684] 7 locks held by kworker/u2:13/826: [ 555.708140] #0: ("%s""ci_otg"){++++.+}, at: [] process_one_work+0x128/0x420 [ 555.716277] #1: ((&ci->work)){+.+.+.}, at: [] process_one_work+0x128/0x420 [ 555.724317] #2: (usb_bus_list_lock){+.+.+.}, at: [] usb_remove_hcd+0x98/0x1ac [ 555.732626] #3: (&dev->mutex){......}, at: [] usb_disconnect+0x48/0x224 [ 555.740403] #4: (&dev->mutex){......}, at: [] usb_disconnect+0x48/0x224 [ 555.748179] #5: (&dev->mutex){......}, at: [] device_release_driver+0x20/0x34 [ 555.756487] #6: (&shost->scan_mutex){+.+.+.}, at: [] scsi_remove_host+0x20/0x104 Cc: #v3.14+ Cc: Jun Li Signed-off-by: Peter Chen drivers/usb/chipidea/otg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0378ba4899d5fbd8494ed6580cbc81d7b44dbac6 Author: Geert Uytterhoeven Date: Wed Feb 24 09:43:23 2016 +0100 drivers: sh: Restore legacy clock domain on SuperH platforms CONFIG_ARCH_SHMOBILE is not only enabled for Renesas ARM platforms (which are DT based and multi-platform), but also on a select set of Renesas SuperH platforms (SH7722/SH7723/SH7724/SH7343/SH7366). Hence since commit 0ba58de231066e47 ("drivers: sh: Get rid of CONFIG_ARCH_SHMOBILE_MULTI"), the legacy clock domain is no longer installed on these SuperH platforms, and module clocks may not be enabled when needed, leading to driver failures. To fix this, add an additional check for CONFIG_OF. Fixes: 0ba58de231066e47 ("drivers: sh: Get rid of CONFIG_ARCH_SHMOBILE_MULTI"). Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman drivers/sh/pm_runtime.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 398cb0c93b18b625703db30d874351e6d4cc645a Merge: ad00a57 9b18572 Author: Dave Airlie Date: Thu Feb 25 08:22:43 2016 +1000 Merge tag 'drm-intel-fixes-2016-02-22' of git://anongit.freedesktop.org/drm-intel into drm-fixes This is a bit large, but it really helps Skylake bugs we are seeing on a number of laptops. Most of the commits are quite similar, ensuring the display power doesn't vanish under us during hardware access. Also do note that it's not just Skylake that's affected. * tag 'drm-intel-fixes-2016-02-22' of git://anongit.freedesktop.org/drm-intel: drm/i915/gen9: Verify and enforce dc6 state writes drm/i915/gen9: Check for DC state mismatch drm/i915/skl: Ensure HW is powered during DDB HW state readout drm/i915/lvds: Ensure the HW is powered during HW state readout drm/i915/hdmi: Ensure the HW is powered during HW state readout drm/i915/dsi: Ensure the HW is powered during HW state readout drm/i915/dp: Ensure the HW is powered during HW state readout drm/i915: Ensure the HW is powered when accessing the CRC HW block drm/i915/ddi: Ensure the HW is powered during HW state readout drm/i915/crt: Ensure the HW is powered during HW state readout drm/i915: Ensure the HW is powered during HW access in assert_pipe drm/i915: Ensure the HW is powered when disabling VGA drm/i915/ibx: Ensure the HW is powered during PLL HW readout drm/i915: Ensure the HW is powered during display pipe HW readout drm/i915: Add helper to get a display power ref if it was already enabled commit ad00a57ad78f33590b392eabcacb0e1d57b640a1 Merge: 84e54c4 6378076 Author: Dave Airlie Date: Thu Feb 25 08:21:33 2016 +1000 Merge branch 'drm-fixes-4.5' of git://people.freedesktop.org/~agd5f/linux into drm-fixes A few radeon and amdgpu fixes for 4.5. A few further fixes for the vblank regressions in 4.4 and a couple of other minor fixes. * 'drm-fixes-4.5' of git://people.freedesktop.org/~agd5f/linux: drm/amdgpu: disable direct VM updates when vm_debug is set amdgpu: fix NULL pointer dereference at tonga_check_states_equal drm/radeon/pm: adjust display configuration after powerstate drm/amdgpu/pm: adjust display configuration after powerstate drm/amdgpu/pm: add some checks for PX drm/amdgpu: fix locking in force performance level drm/amdgpu/gfx8: fix priv reg interrupt enable drm/amdgpu: Don't hang in amdgpu_flip_work_func on disabled crtc. drm/radeon: Don't hang in radeon_flip_work_func on disabled crtc. (v2) commit 6dc390ad61ac8dfca5fa9b0823981fb6f7ec17a0 Merge: aa263c4 9ef2d8b Author: Linus Torvalds Date: Wed Feb 24 14:06:17 2016 -0800 Merge tag 'arc-4.5-rc6-fixes-upd' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc Pull ARC fixes from Vineet Gupta: - Fix for csd deadlock due to missing self IPI - Accompanying IPI cleanups / optimization - Brown paper bag bug in one of the cleanups above - Boot reporting updates for new hardware features - Don't force DEVTMPFS if INITRAMFS * tag 'arc-4.5-rc6-fixes-upd' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc: arc: SMP: CONFIG_ARC_IPI_DBG cleanup ARC: SMP: No need for CONFIG_ARC_IPI_DBG ARCv2: Elide sending new cross core intr if receiver didn't ack prev ARCv2: SMP: Push IPI_IRQ into IPI provider ARC: [intc-compact] Remove IPI setup from ARCompact port ARCv2: SMP: Emulate IPI to self using software triggered interrupt arc: get rid of DEVTMPFS dependency on INITRAMFS_SOURCE ARCv2: boot report CCMs (Closely Coupled Memories) ARCv2: boot print Low Latency Memory ARC: Assume multiplier is always present commit aa263c43fee300af018aec437dbd64570ec65825 Merge: 2ac015e 7ae8fd0 Author: Linus Torvalds Date: Wed Feb 24 14:00:26 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull vfs fixes from Al Viro: "Assorted fixes - xattr one from this cycle, the rest - stable fodder" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: fs/pnode.c: treat zero mnt_group_id-s as unequal affs_do_readpage_ofs(): just use kmap_atomic() around memcpy() xattr handlers: plug a lock leak in simple_xattr_list fs: allow no_seek_end_llseek to actually seek commit 25ac3417b79b0aafd2401c96503716901be4533b Merge: 2da897e b860715 Author: David S. Miller Date: Wed Feb 24 16:58:12 2016 -0500 Merge tag 'mac80211-for-davem-2016-02-23' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211 Johannes Berg says: ==================== Another small set of fixes: * stop critical protocol session on disconnect to avoid it getting stuck * wext: fix two RTNL message ordering issues * fix an uninitialized value (found by KASAN) * fix an out-of-bounds access (also found by KASAN) * clear connection keys when freeing them in all cases (IBSS, all other places already did so) * fix expected throughput unit to get consistent values * set default TX aggregation timeout to 0 in minstrel to avoid (really just hide) issues and perform better ==================== Signed-off-by: David S. Miller commit 2da897e51d7f23f872224218b9a4314503b0d360 Author: Daniel Borkmann Date: Tue Feb 23 02:05:26 2016 +0100 bpf: fix csum setting for bpf_set_tunnel_key The fix in 35e2d1152b22 ("tunnels: Allow IPv6 UDP checksums to be correctly controlled.") changed behavior for bpf_set_tunnel_key() when in use with IPv6 and thus uncovered a bug that TUNNEL_CSUM needed to be set but wasn't. As a result, the stack dropped ingress vxlan IPv6 packets, that have been sent via eBPF through collect meta data mode due to checksum now being zero. Since after LCO, we enable IPv4 checksum by default, so make that analogous and only provide a flag BPF_F_ZERO_CSUM_TX for the user to turn it off in IPv4 case. Fixes: 35e2d1152b22 ("tunnels: Allow IPv6 UDP checksums to be correctly controlled.") Fixes: c6c33454072f ("bpf: support ipv6 for bpf_skb_{set,get}_tunnel_key") Signed-off-by: Daniel Borkmann Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller include/uapi/linux/bpf.h | 3 +++ net/core/filter.c | 6 ++++-- 2 files changed, 7 insertions(+), 2 deletions(-) commit cd8140c673d9ba9be3591220e1b2226d9e1e40d3 Author: Ilya Dryomov Date: Fri Feb 19 11:38:57 2016 +0100 libceph: don't spam dmesg with stray reply warnings Commit d15f9d694b77 ("libceph: check data_len in ->alloc_msg()") mistakenly bumped the log level on the "tid %llu unknown, skipping" message. Turn it back into a dout() - stray replies are perfectly normal when OSDs flap, crash, get killed for testing purposes, etc. Cc: stable@vger.kernel.org # 4.3+ Signed-off-by: Ilya Dryomov Reviewed-by: Alex Elder net/ceph/osd_client.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit dbc0d3caff5b7591e0cf8e34ca686ca6f4479ee1 Author: Ilya Dryomov Date: Fri Feb 19 11:38:57 2016 +0100 libceph: use the right footer size when skipping a message ceph_msg_footer is 21 bytes long, while ceph_msg_footer_old is only 13. Don't skip too much when CEPH_FEATURE_MSG_AUTH isn't negotiated. Cc: stable@vger.kernel.org # 3.19+ Signed-off-by: Ilya Dryomov Reviewed-by: Alex Elder net/ceph/messenger.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit e7a88e82fe380459b864e05b372638aeacb0f52d Author: Ilya Dryomov Date: Wed Feb 17 20:04:08 2016 +0100 libceph: don't bail early from try_read() when skipping a message The contract between try_read() and try_write() is that when called each processes as much data as possible. When instructed by osd_client to skip a message, try_read() is violating this contract by returning after receiving and discarding a single message instead of checking for more. try_write() then gets a chance to write out more requests, generating more replies/skips for try_read() to handle, forcing the messenger into a starvation loop. Cc: stable@vger.kernel.org # 3.10+ Reported-by: Varada Kari Signed-off-by: Ilya Dryomov Tested-by: Varada Kari Reviewed-by: Alex Elder net/ceph/messenger.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a8c4a2522a0808c5c2143612909717d1115c40cf Author: Hannes Frederic Sowa Date: Mon Feb 22 18:43:25 2016 +0100 ipv4: only create late gso-skb if skb is already set up with CHECKSUM_PARTIAL Otherwise we break the contract with GSO to only pass CHECKSUM_PARTIAL skbs down. This can easily happen with UDP+IPv4 sockets with the first MSG_MORE write smaller than the MTU, second write is a sendfile. Returning -EOPNOTSUPP lets the callers fall back into normal sendmsg path, were we calculate the checksum manually during copying. Commit d749c9cbffd6 ("ipv4: no CHECKSUM_PARTIAL on MSG_MORE corked sockets") started to exposes this bug. Fixes: d749c9cbffd6 ("ipv4: no CHECKSUM_PARTIAL on MSG_MORE corked sockets") Reported-by: Jiri Benc Cc: Jiri Benc Reported-by: Wakko Warner Cc: Wakko Warner Signed-off-by: Hannes Frederic Sowa Signed-off-by: David S. Miller net/ipv4/ip_output.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 2ac015e293bbe3858533009612eac58842daf325 Author: Kirill A. Shutemov Date: Wed Feb 24 18:58:03 2016 +0300 thp: call pmdp_invalidate() with correct virtual address Sebastian Ott and Gerald Schaefer reported random crashes on s390. It was bisected to my THP refcounting patchset. The problem is that pmdp_invalidated() called with wrong virtual address. It got offset up by HPAGE_PMD_SIZE by loop over ptes. The solution is to introduce new variable to be used in loop and don't touch 'haddr'. Signed-off-by: Kirill A. Shutemov Reported-and-tested-by: Gerald Schaefer Reported-and-tested-by Sebastian Ott Reviewed-by: Will Deacon Cc: Christian Borntraeger Cc: Martin Schwidefsky Cc: Aneesh Kumar K.V Cc: Andrea Arcangeli Cc: Sasha Levin Cc: Jerome Marchand Cc: Andrew Morton Signed-off-by: Linus Torvalds mm/huge_memory.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 6378076bcfdcd1d4f8d726d08d3fa044736873eb Author: Christian König Date: Fri Feb 19 10:03:03 2016 +0100 drm/amdgpu: disable direct VM updates when vm_debug is set That should make user space bugs more obvious. Signed-off-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 827108d08070c7515c14eb47e5fa03f59cfe38cf Author: Bradley Pankow Date: Mon Feb 22 20:11:47 2016 -0500 amdgpu: fix NULL pointer dereference at tonga_check_states_equal The event_data passed from pem_fini was not cleared upon initialization. This caused NULL checks to pass and cast_const_phw_tonga_power_state to attempt to dereference an invalid pointer. Clear the event_data in pem_init and pem_fini before calling pem_handle_event. Reviewed-by: Rex Zhu Signed-off-by: Bradley Pankow Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/eventmgr/eventmgr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit fd451b90e78c4178bcfc5072f2b2b637500c109a Author: Marc Zyngier Date: Wed Feb 17 10:25:05 2016 +0000 arm64: KVM: vgic-v3: Restore ICH_APR0Rn_EL2 before ICH_APR1Rn_EL2 The GICv3 architecture spec says: Writing to the active priority registers in any order other than the following order will result in UNPREDICTABLE behavior: - ICH_AP0R_EL2. - ICH_AP1R_EL2. So let's not pointlessly go against the rule... Acked-by: Christoffer Dall Signed-off-by: Marc Zyngier arch/arm64/kvm/hyp/vgic-v3-sr.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 428b315a2475d614d6efbdbeaa13f3977416b21a Merge: e5bdfd5 3b24351 Author: Greg Kroah-Hartman Date: Wed Feb 24 09:04:21 2016 -0800 Merge tag 'fixes-for-v4.5-rc6' of http://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus Felipe writes: usb: fixes for v4.5-rc6 The most important fixes here are: a) yet another fix to dwc3's EP transfer resource assignment logic. This time around we will be pre-allocating transfer resources to avoid any future issues; b) two DMA fixes for the old MUSB driver. c) dwc2's data toggle fix for FS Other than these, we have a few other minor fixes elsewhere. commit d877a214d54619762ae86114fbd04932002ffecd Merge: 7931845 901c5ff Author: Olof Johansson Date: Wed Feb 24 08:48:22 2016 -0800 Merge tag 'renesas-soc-fixes-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into fixes Renesas ARM Based SoC Fixes for v4.5 * Avoid writing to .text * tag 'renesas-soc-fixes-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: shmobile: Remove shmobile_boot_arg ARM: shmobile: Move shmobile_smp_{mpidr, fn, arg}[] from .text to .bss ARM: shmobile: r8a7779: Remove remainings of removed SCU boot setup code ARM: shmobile: Move shmobile_scu_base from .text to .bss Signed-off-by: Olof Johansson commit c7dfe3abf40ec9a298884a4c0775062eac27afc9 Author: Sebastian Frias Date: Mon Feb 22 13:33:14 2016 +0100 net: ethernet: nb8800: support fixed-link DT node Under some circumstances, e.g. when connecting to a switch, the ethernet port will not be connected to a PHY. In that case a "fixed-link" DT node can be used to replace it. https://stackoverflow.com/questions/31046172/device-tree-for-phy-less-connection-to-a-dsa-switch This patch adds support for the "fixed-link" node to the nb8800 driver. Signed-off-by: Sebastian Frias Acked-by: Mans Rullgard Cc: Mason Signed-off-by: David S. Miller drivers/net/ethernet/aurora/nb8800.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) commit d045437a169f899dfb0f6f7ede24cc042543ced9 Author: Steven Rostedt (Red Hat) Date: Wed Feb 24 09:04:24 2016 -0500 tracing: Fix showing function event in available_events The ftrace:function event is only displayed for parsing the function tracer data. It is not used to enable function tracing, and does not include an "enable" file in its event directory. Originally, this event was kept separate from other events because it did not have a ->reg parameter. But perf added a "reg" parameter for its use which caused issues, because it made the event available to functions where it was not compatible for. Commit 9b63776fa3ca9 "tracing: Do not enable function event with enable" added a TRACE_EVENT_FL_IGNORE_ENABLE flag that prevented the function event from being enabled by normal trace events. But this commit missed keeping the function event from being displayed by the "available_events" directory, which is used to show what events can be enabled by set_event. One documented way to enable all events is to: cat available_events > set_event But because the function event is displayed in the available_events, this now causes an INVALID error: cat: write error: Invalid argument Reported-by: Chunyu Hu Fixes: 9b63776fa3ca9 "tracing: Do not enable function event with enable" Cc: stable@vger.kernel.org # 3.4+ Signed-off-by: Steven Rostedt kernel/trace/trace_events.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d7444794a02ff655eda87e3cc54e86b940e7736f Author: Christian Borntraeger Date: Fri Feb 19 13:11:46 2016 +0100 KVM: async_pf: do not warn on page allocation failures In async_pf we try to allocate with NOWAIT to get an element quickly or fail. This code also handle failures gracefully. Lets silence potential page allocation failures under load. qemu-system-s39: page allocation failure: order:0,mode:0x2200000 [...] Call Trace: ([<00000000001146b8>] show_trace+0xf8/0x148) [<000000000011476a>] show_stack+0x62/0xe8 [<00000000004a36b8>] dump_stack+0x70/0x98 [<0000000000272c3a>] warn_alloc_failed+0xd2/0x148 [<000000000027709e>] __alloc_pages_nodemask+0x94e/0xb38 [<00000000002cd36a>] new_slab+0x382/0x400 [<00000000002cf7ac>] ___slab_alloc.constprop.30+0x2dc/0x378 [<00000000002d03d0>] kmem_cache_alloc+0x160/0x1d0 [<0000000000133db4>] kvm_setup_async_pf+0x6c/0x198 [<000000000013dee8>] kvm_arch_vcpu_ioctl_run+0xd48/0xd58 [<000000000012fcaa>] kvm_vcpu_ioctl+0x372/0x690 [<00000000002f66f6>] do_vfs_ioctl+0x3be/0x510 [<00000000002f68ec>] SyS_ioctl+0xa4/0xb8 [<0000000000781c5e>] system_call+0xd6/0x264 [<000003ffa24fa06a>] 0x3ffa24fa06a Cc: stable@vger.kernel.org Signed-off-by: Christian Borntraeger Reviewed-by: Dominik Dingel Signed-off-by: Paolo Bonzini virt/kvm/async_pf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0c1d77f4ba5cc9c05a29adca3d6466cdf4969b70 Author: Paolo Bonzini Date: Fri Feb 19 18:07:21 2016 +0100 KVM: x86: fix conversion of addresses to linear in 32-bit protected mode Commit e8dd2d2d641c ("Silence compiler warning in arch/x86/kvm/emulate.c", 2015-09-06) broke boot of the Hurd. The bug is that the "default:" case actually could modify "la", but after the patch this change is not reflected in *linear. The bug is visible whenever a non-zero segment base causes the linear address to wrap around the 4GB mark. Fixes: e8dd2d2d641cb2724ee10e76c0ad02e04289c017 Cc: stable@vger.kernel.org Reported-by: Aurelien Jarno Tested-by: Aurelien Jarno Signed-off-by: Paolo Bonzini arch/x86/kvm/emulate.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 172b2386ed16a9143d9a456aae5ec87275c61489 Author: Paolo Bonzini Date: Wed Feb 10 17:50:23 2016 +0100 KVM: x86: fix missed hardware breakpoints Sometimes when setting a breakpoint a process doesn't stop on it. This is because the debug registers are not loaded correctly on VCPU load. The following simple reproducer from Oleg Nesterov tries using debug registers in two threads. To see the bug, run a 2-VCPU guest with "taskset -c 0" and run "./bp 0 1" inside the guest. #include #include #include #include #include #include #include #include #include #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) unsigned long encode_dr7(int drnum, int enable, unsigned int type, unsigned int len) { unsigned long dr7; dr7 = ((len | type) & 0xf) << (DR_CONTROL_SHIFT + drnum * DR_CONTROL_SIZE); if (enable) dr7 |= (DR_GLOBAL_ENABLE << (drnum * DR_ENABLE_SIZE)); return dr7; } int write_dr(int pid, int dr, unsigned long val) { return ptrace(PTRACE_POKEUSER, pid, offsetof (struct user, u_debugreg[dr]), val); } void set_bp(pid_t pid, void *addr) { unsigned long dr7; assert(write_dr(pid, 0, (long)addr) == 0); dr7 = encode_dr7(0, 1, DR_RW_EXECUTE, DR_LEN_1); assert(write_dr(pid, 7, dr7) == 0); } void *get_rip(int pid) { return (void*)ptrace(PTRACE_PEEKUSER, pid, offsetof(struct user, regs.rip), 0); } void test(int nr) { void *bp_addr = &&label + nr, *bp_hit; int pid; printf("test bp %d\n", nr); assert(nr < 16); // see 16 asm nops below pid = fork(); if (!pid) { assert(ptrace(PTRACE_TRACEME, 0,0,0) == 0); kill(getpid(), SIGSTOP); for (;;) { label: asm ( "nop; nop; nop; nop;" "nop; nop; nop; nop;" "nop; nop; nop; nop;" "nop; nop; nop; nop;" ); } } assert(pid == wait(NULL)); set_bp(pid, bp_addr); for (;;) { assert(ptrace(PTRACE_CONT, pid, 0, 0) == 0); assert(pid == wait(NULL)); bp_hit = get_rip(pid); if (bp_hit != bp_addr) fprintf(stderr, "ERR!! hit wrong bp %ld != %d\n", bp_hit - &&label, nr); } } int main(int argc, const char *argv[]) { while (--argc) { int nr = atoi(*++argv); if (!fork()) test(nr); } while (wait(NULL) > 0) ; return 0; } Cc: stable@vger.kernel.org Suggested-by: Nadav Amit Reported-by: Andrey Wagin Signed-off-by: Paolo Bonzini arch/x86/kvm/x86.c | 1 + 1 file changed, 1 insertion(+) commit e249714571db26cdb1ae8df7ed39971bafa041a7 Author: Rafael J. Wysocki Date: Wed Feb 24 13:55:38 2016 +0100 Revert "ACPI, PCI, irq: remove interrupt count restriction" Revert commit b5bd02695471 (ACPI, PCI, irq: remove interrupt count restriction) that introduced a boot regression on some systems where it caused kmalloc() to be used too early. Link: http://marc.info/?l=linux-acpi&m=145580159209240&w=2 Reported-by: Nalla, Ravikanth Signed-off-by: Rafael J. Wysocki drivers/acpi/pci_link.c | 136 ++++++++++++------------------------------------ 1 file changed, 34 insertions(+), 102 deletions(-) commit 5ec5d10682745d3280a37e8ffee1ddcd37ecfa94 Author: Rafael J. Wysocki Date: Wed Feb 24 13:53:46 2016 +0100 Revert "ACPI / PCI: Simplify acpi_penalize_isa_irq()" Revert commit 0971686954f9 "ACPI / PCI: Simplify acpi_penalize_isa_irq()" that depends on commit b5bd02695471 (ACPI, PCI, irq: remove interrupt count restriction) which introduced a regression and needs to be reverted for this reason. Signed-off-by: Rafael J. Wysocki drivers/acpi/pci_link.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) commit 1d6a821277aaa0cdd666278aaff93298df313d41 Author: Marc Zyngier Date: Mon Feb 15 17:04:04 2016 +0000 arm/arm64: KVM: Feed initialized memory to MMIO accesses On an MMIO access, we always copy the on-stack buffer info the shared "run" structure, even if this is a read access. This ends up leaking up to 8 bytes of uninitialized memory into userspace, depending on the size of the access. An obvious fix for this one is to only perform the copy if this is an actual write. Reviewed-by: Christoffer Dall Signed-off-by: Marc Zyngier arch/arm/kvm/mmio.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 9ef2d8be55652804205a34dcbfec78b933c0ea30 Author: Valentin Rothberg Date: Wed Feb 24 09:40:22 2016 +0100 arc: SMP: CONFIG_ARC_IPI_DBG cleanup Previous Commit ("ARC: SMP: No need for CONFIG_ARC_IPI_DBG") removed the Kconfig option ARC_IPI_DBG. Remove the last reference on this option. Signed-off-by: Valentin Rothberg Signed-off-by: Vineet Gupta arch/arc/kernel/mcip.c | 5 ----- 1 file changed, 5 deletions(-) commit 79318452cb36678bde20d384dc3eab537d930d3e Author: Carlo Caione Date: Tue Feb 23 10:43:11 2016 +0100 MAINTAINERS: Extend info, add wiki and ml for meson arch Update the maintainers info with wiki and mailing list for the meson platform. Fix a wrong file attribution and add maintainership for the generic meson platforms. Signed-off-by: Carlo Caione Signed-off-by: Olof Johansson MAINTAINERS | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 9fa6c2b1aa7f6b05cd96a0d6bec499c9aef45479 Merge: a9e5547 3f315c5 Author: Olof Johansson Date: Wed Feb 24 00:10:11 2016 -0800 Merge tag 'omap-for-v4.5/fixes-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes Two omap fixes for omaps against v4.5-rc5: - Yet another fix for n900 onenand to avoid corruption. This time to fix the issue of mounting onenand back and forth between the original maemo kernel and mainline Linux kernel. And it also seems there will be two more fixes coming via the MTD tree as issues were discovered also in the onenand driver during testing. - Revert tps65217 regulator clean up as it breaks MMC for am335x variants. The proper way to clean this up is just to rename the tps65217.dtsi file into tps65217-am335x.dtsi as a similar setup is used on many am335x boards. * tag 'omap-for-v4.5/fixes-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP2+: Fix onenand initialization to avoid filesystem corruption Revert "regulator: tps65217: remove tps65217.dtsi file" Signed-off-by: Olof Johansson commit a9e5547b1908ee282b875470a08c96acf17656d6 Author: Antoine Tenart Date: Mon Feb 22 14:22:30 2016 +0100 MAINTAINERS: alpine: add a new maintainer and update the entry Add myself as a co-maintainer for the Alpine support. Also update the entry to take in account Alpine ARM64 boards, Alpine ARM device trees and Alpine-specific drivers. Signed-off-by: Antoine Tenart Acked-by: Tsahee Zidenberg Signed-off-by: Olof Johansson MAINTAINERS | 4 ++++ 1 file changed, 4 insertions(+) commit 5e45a2589d24573c564630990c88ac93659f8fe4 Author: Ludovic Desroches Date: Fri Feb 19 20:21:17 2016 +0100 ARM: at91/dt: fix typo in sama5d2 pinmux descriptions PIN_PA15 macro has the same value as PIN_PA14 so we were overriding PA14 mux/configuration. Signed-off-by: Ludovic Desroches Reported-by: Cyrille Pitchen Fixes: 7f16cb676c00 ("ARM: at91/dt: add sama5d2 pinmux") Cc: # v4.4+ Signed-off-by: Alexandre Belloni Signed-off-by: Olof Johansson arch/arm/boot/dts/sama5d2-pinfunc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b223c9f59389a7802c47ea4c6889dccb2f1a1a60 Merge: e3acd74 f5d0ca2 Author: Olof Johansson Date: Wed Feb 24 00:05:58 2016 -0800 Merge tag 'imx-fixes-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into fixes The i.MX fixes for v4.5: - Drop the bogus interrupt-parent from i.MX6 CAAM node, which leads to the CAAM IRQs not getting unmasked at the GPC level. * tag 'imx-fixes-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: ARM: dts: imx6: remove bogus interrupt-parent from CAAM node Signed-off-by: Olof Johansson commit e3acd74f9268a713b08d5461567cd8bfe47054f7 Merge: 74a46ec cf26f11 Author: Olof Johansson Date: Wed Feb 24 00:05:11 2016 -0800 Merge tag 'omap-for-v4.5/fixes-rc3-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes Few fixes for omaps against v4.5-rc3: - Improve omap_device error message to tell driver writers what is wrong after commit 5de85b9d57ab ("PM / runtime: Re-init runtime PM states at probe error and driver unbind"). There will be also a handful of driver related fixes also queued separately. But adding this error message makes it easy to fix any omap_device using drivers suffering from this issue so I think it's important to have. - Also related to commit 5de85b9d57ab discussion, let's fix a bug where disabling PM runtime via sysfs will also cause the hardware state to be different from PM runtime state. - Fix audio clocks for beagle-x15. - Use wakeup-source instead of gpio-key,wakeup for the new entries that sneaked in during the merge window. - Fix a legacy booting vs device tree based booting regression for n900 where the legacy user space expects to have the device revision available in /proc/atags also when booted with device tree. * tag 'omap-for-v4.5/fixes-rc3-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP2+: Fix omap_device for module reload on PM runtime forbid ARM: OMAP2+: Improve omap_device error for driver writers ARM: DTS: am57xx-beagle-x15: Select SYS_CLK2 for audio clocks ARM: dts: am335x/am57xx: replace gpio-key,wakeup with wakeup-source property ARM: OMAP2+: Set system_rev from ATAGS for n900 Signed-off-by: Olof Johansson commit 74a46ec6fbc1b410f3cbf897d3802c0bf554ea5a Merge: 81f70ba 44361a2 Author: Olof Johansson Date: Tue Feb 23 23:59:29 2016 -0800 Merge tag 'mvebu-fixes-4.5-2' of git://git.infradead.org/linux-mvebu into fixes mvebu fixes for 4.5 (part 2) - Fix the missing mtd flash on linkstation lswtgl - Use unique machine name for the kirkwood ds112 (for Debian flash-kernel tool) * tag 'mvebu-fixes-4.5-2' of git://git.infradead.org/linux-mvebu: ARM: dts: orion5x: fix the missing mtd flash on linkstation lswtgl ARM: dts: kirkwood: use unique machine name for ds112 Signed-off-by: Olof Johansson commit 04d1d281dcfe683a53cddfab8371fc8bb302b069 Author: Andy Lutomirski Date: Tue Feb 23 13:19:29 2016 -0800 x86/entry/32: Add an ASM_CLAC to entry_SYSENTER_32 Both before and after 5f310f739b4c ("x86/entry/32: Re-implement SYSENTER using the new C path"), we relied on a uaccess very early in the SYSENTER path to clear AC. After that change, though, we can potentially make it all the way into C code with AC set, which enlarges the attack surface for SMAP bypass by doing SYSENTER with AC set. Strengthen the SMAP protection by addding the missing ASM_CLAC right at the beginning. Signed-off-by: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/3e36be110724896e32a4a1fe73bacb349d3cba94.1456262295.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/entry_32.S | 1 + 1 file changed, 1 insertion(+) commit d73b73f5626ac0b131b31b7b9457e19201bc570b Author: Vineet Gupta Date: Fri Feb 19 08:18:11 2016 +0530 ARC: SMP: No need for CONFIG_ARC_IPI_DBG This was more relevant during SMP bringup. The warning for bogus msg better be visible always. Signed-off-by: Vineet Gupta arch/arc/Kconfig | 8 -------- arch/arc/kernel/mcip.c | 9 +-------- arch/arc/kernel/smp.c | 3 --- 3 files changed, 1 insertion(+), 19 deletions(-) commit 3dea30ca5bef0e013abe857057a952a9d6757fe5 Author: Vineet Gupta Date: Fri Feb 19 07:57:41 2016 +0530 ARCv2: Elide sending new cross core intr if receiver didn't ack prev ARConnect/MCIP IPI sending has a retry-wait loop in case caller had not seen a previous such interrupt. Turns out that it is not needed at all. Linux cross core calling allows coalescing multiple IPIs to same receiver - it is fine as long as there is one. This logic is built into upper layer already, at a higher level of abstraction. ipi_send_msg_one() sets the actual msg payload, but it only calls MCIP IPI sending if msg holder was empty (using atomic-set-new-and-get-old construct). Thus it is unlikely that the retry-wait looping was ever getting exercised at all. Cc: Chuck Jordan Cc: Peter Zijlstra Signed-off-by: Vineet Gupta arch/arc/kernel/mcip.c | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) commit 9681787930cec7cee77db0a93c747153ef962b8a Author: Vineet Gupta Date: Tue Feb 23 13:35:12 2016 +0530 ARCv2: SMP: Push IPI_IRQ into IPI provider Signed-off-by: Vineet Gupta arch/arc/include/asm/irq.h | 1 - arch/arc/kernel/mcip.c | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) commit dbcbc7e7cee15058fdb9696b2b38c692680fc413 Author: Vineet Gupta Date: Thu Jan 28 12:48:05 2016 +0530 ARC: [intc-compact] Remove IPI setup from ARCompact port There is no real ARC700 based SMP SoC so remove IPI definition. EZChip's SMP ARC700 is going to use a different intc and IPI provider anyways. Signed-off-by: Vineet Gupta arch/arc/include/asm/irq.h | 1 - arch/arc/kernel/intc-compact.c | 3 --- 2 files changed, 4 deletions(-) commit bb143f814ea488769ca2e79e0b376139cb5f134b Author: Vineet Gupta Date: Tue Feb 23 11:55:16 2016 +0530 ARCv2: SMP: Emulate IPI to self using software triggered interrupt ARConnect/MCIP Inter-Core-Interrupt module can't send interrupt to local core. So use core intc capability to trigger software interrupt to self, using an unsued IRQ #21. This showed up as csd deadlock with LTP trace_sched on a dual core system. This test acts as scheduler fuzzer, triggering all sorts of schedulting activity. Trouble starts with IPI to self, which doesn't get delivered (effectively lost due to H/w capability), but the msg intended to be sent remain enqueued in per-cpu @ipi_data. All subsequent IPIs to this core from other cores get elided due to the IPI coalescing optimization in ipi_send_msg_one() where a pending msg implies an IPI already sent and assumes other core is yet to ack it. After the elided IPI, other core simply goes into csd_lock_wait() but never comes out as this core never sees the interrupt. Fixes STAR 9001008624 Cc: Peter Zijlstra Cc: [4.2] Signed-off-by: Vineet Gupta arch/arc/include/asm/irqflags-arcv2.h | 11 +++++++++++ arch/arc/kernel/entry-arcv2.S | 11 ++++++----- arch/arc/kernel/mcip.c | 15 +++++++++++++++ 3 files changed, 32 insertions(+), 5 deletions(-) commit 7c139db2e579669c3313f92d2dd2256b255fcc07 Author: Andreas Irestål Date: Tue Feb 16 13:56:41 2016 +0100 ASoC: adau17x1: Fix incorrect BCLK ratio definitions Signed-off-by: Andreas Irestål Signed-off-by: Mark Brown sound/soc/codecs/adau17x1.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit da9b9303ed8d1673a89a4bdd85464e33614775e3 Author: Robert Jarzmik Date: Mon Feb 22 23:35:44 2016 +0100 ASoC: wm9713: fix regmap free path In the conversion to regmap, I assumed that the devm_() variant could be used in the soc probe function. As a mater of fact with the current code the regmap is freed twice because of the devm_() call: (mutex_lock) from [] (debugfs_remove_recursive+0x50/0x1d0) (debugfs_remove_recursive) from [] (regmap_debugfs_exit+0x1c/0xd4) (regmap_debugfs_exit) from [] (regmap_exit+0x28/0xc8) (regmap_exit) from [] (release_nodes+0x18c/0x204) (release_nodes) from [] (device_release+0x18/0x90) (device_release) from [] (kobject_release+0x90/0x1bc) (kobject_release) from [] (wm9713_soc_remove+0x1c/0x24) (wm9713_soc_remove) from [] (soc_remove_component+0x50/0x7c) (soc_remove_component) from [] (soc_remove_dai_links+0x118/0x228) (soc_remove_dai_links) from [] (snd_soc_register_card+0x4e4/0xdd4) (snd_soc_register_card) from [] (devm_snd_soc_register_card+0x34/0x70) Fix this by replacing the devm_regmap initialization code with the non devm_() variant. Fixes: 700dadfefc3d ASoC: wm9713: convert to regmap Signed-off-by: Robert Jarzmik Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm9713.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 84e54c46b2f440a365a5224f1e5f173a462b7cca Merge: 0ecdcd3 4328daa Author: Linus Torvalds Date: Tue Feb 23 19:03:43 2016 -0800 Merge tag 'dm-4.5-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm Pull device mapper fix from Mike Snitzer: "Fix a 112 byte leak for each IO request that is requeued while DM multipath is handling faults due to path failures. This leak does not happen if blk-mq DM multipath is used. It only occurs if .request_fn DM multipath is stacked ontop of blk-mq paths (e.g. scsi-mq devices)" * tag 'dm-4.5-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: dm: fix dm_rq_target_io leak on faults with .request_fn DM w/ blk-mq paths commit 0ecdcd3a520b99287d0573df4feb43bdceb44b87 Merge: 420eb6d 814a3c0 Author: Linus Torvalds Date: Tue Feb 23 18:54:58 2016 -0800 Merge tag 'mmc-v4.5-rc4' of git://git.linaro.org/people/ulf.hansson/mmc Pull MMC fix from Ulf Hansson: "Here's an mmc fix intended for v4.5 rc6. MMC host: - omap_hsmmc: Fix PM regression for deferred probe" * tag 'mmc-v4.5-rc4' of git://git.linaro.org/people/ulf.hansson/mmc: mmc: omap_hsmmc: Fix PM regression with deferred probe for pm_runtime_reinit commit c45442055dfdeb265cc20c9eeaa9fd11a75fbf51 Author: Arnd Bergmann Date: Mon Feb 22 22:58:34 2016 +0100 nvdimm: use 'u64' for pfn flags A recent bugfix changed pfn_t to always be 64-bit wide, but did not change the code in pmem.c, which is now broken on 32-bit architectures as reported by gcc: In file included from ../drivers/nvdimm/pmem.c:28:0: drivers/nvdimm/pmem.c: In function 'pmem_alloc': include/linux/pfn_t.h:15:17: error: large integer implicitly truncated to unsigned type [-Werror=overflow] #define PFN_DEV (1ULL << (BITS_PER_LONG_LONG - 3)) This changes the intermediate pfn_flags in struct pmem_device to be 64 bit wide as well, so they can store the flags correctly. Signed-off-by: Arnd Bergmann Fixes: db78c22230d0 ("mm: fix pfn_t vs highmem") Signed-off-by: Dan Williams drivers/nvdimm/pmem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 93f834df9c2d4e362dfdc4b05daa0a4e18814836 Author: Toshi Kani Date: Sat Feb 20 14:32:24 2016 -0800 devm_memremap: Fix error value when memremap failed devm_memremap() returns an ERR_PTR() value in case of error. However, it returns NULL when memremap() failed. This causes the caller, such as the pmem driver, to proceed and oops later. Change devm_memremap() to return ERR_PTR(-ENXIO) when memremap() failed. Signed-off-by: Toshi Kani Cc: Andrew Morton Cc: Reviewed-by: Ross Zwisler Signed-off-by: Dan Williams kernel/memremap.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 4577b0665515e0abc7bc72562d6328d179598815 Author: Dan Williams Date: Wed Feb 17 13:08:58 2016 -0800 nfit: update address range scrub commands to the acpi 6.1 format The original format of these commands from the "NVDIMM DSM Interface Example" [1] are superseded by the ACPI 6.1 definition of the "NVDIMM Root Device _DSMs" [2]. [1]: http://pmem.io/documents/NVDIMM_DSM_Interface_Example.pdf [2]: http://www.uefi.org/sites/default/files/resources/ACPI_6_1.pdf "9.20.7 NVDIMM Root Device _DSMs" Changes include: 1/ New 'restart' fields in ars_status, unfortunately these are implemented in the middle of the existing definition so this change is not backwards compatible. The expectation is that shipping platforms will only ever support the ACPI 6.1 definition. 2/ New status values for ars_start ('busy') and ars_status ('overflow'). Cc: Vishal Verma Cc: Linda Knippers Cc: Signed-off-by: Dan Williams drivers/acpi/nfit.c | 6 +++--- drivers/nvdimm/bus.c | 12 ++++++------ include/linux/libnvdimm.h | 2 +- include/uapi/linux/ndctl.h | 11 +++++++++-- 4 files changed, 19 insertions(+), 12 deletions(-) commit 351228eaa2aa32e5b3f22747246199807488f5f2 Merge: 81f70ba dbb0c7c Author: Rafael J. Wysocki Date: Wed Feb 24 02:13:43 2016 +0100 Merge branch 'for-rafael' of https://git.kernel.org/pub/scm/linux/kernel/git/mzx/devfreq into pm-devfreq Pull a devfreq fix for v4.5 from MyungJoo Ham. * 'for-rafael' of https://git.kernel.org/pub/scm/linux/kernel/git/mzx/devfreq: PM / devfreq: tegra: Set freq in rate callback commit 420eb6d7efc4591ef1968106cdaa980ea06fe00e Merge: de9e478 9fd4b9f Author: Linus Torvalds Date: Tue Feb 23 16:39:21 2016 -0800 Merge tag 'nfs-for-4.5-4' of git://git.linux-nfs.org/projects/trondmy/linux-nfs Pull NFS client bugfixes from Trond Myklebust: "Stable bugfixes: - Fix nfs_size_to_loff_t - NFSv4: Fix a dentry leak on alias use Other bugfixes: - Don't schedule a layoutreturn if the layout segment can be freed immediately. - Always set NFS_LAYOUT_RETURN_REQUESTED with lo->plh_return_iomode - rpcrdma_bc_receive_call() should init rq_private_buf.len - fix stateid handling for the NFS v4.2 operations - pnfs/blocklayout: fix a memeory leak when using,vmalloc_to_page - fix panic in gss_pipe_downcall() in fips mode - Fix a race between layoutget and pnfs_destroy_layout - Fix a race between layoutget and bulk recalls" * tag 'nfs-for-4.5-4' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: NFSv4.x/pnfs: Fix a race between layoutget and bulk recalls NFSv4.x/pnfs: Fix a race between layoutget and pnfs_destroy_layout auth_gss: fix panic in gss_pipe_downcall() in fips mode pnfs/blocklayout: fix a memeory leak when using,vmalloc_to_page nfs4: fix stateid handling for the NFS v4.2 operations NFSv4: Fix a dentry leak on alias use xprtrdma: rpcrdma_bc_receive_call() should init rq_private_buf.len pNFS: Always set NFS_LAYOUT_RETURN_REQUESTED with lo->plh_return_iomode pNFS: Fix pnfs_mark_matching_lsegs_return() nfs: fix nfs_size_to_loff_t commit de9e478b9d49f3a0214310d921450cf5bb4a21e6 Author: Linus Torvalds Date: Tue Feb 23 14:58:52 2016 -0800 x86: fix SMAP in 32-bit environments In commit 11f1a4b9755f ("x86: reorganize SMAP handling in user space accesses") I changed how the stac/clac instructions were generated around the user space accesses, which then made it possible to do batched accesses efficiently for user string copies etc. However, in doing so, I completely spaced out, and didn't even think about the 32-bit case. And nobody really even seemed to notice, because SMAP doesn't even exist until modern Skylake processors, and you'd have to be crazy to run 32-bit kernels on a modern CPU. Which brings us to Andy Lutomirski. He actually tested the 32-bit kernel on new hardware, and noticed that it doesn't work. My bad. The trivial fix is to add the required uaccess begin/end markers around the raw accesses in . I feel a bit bad about this patch, just because that header file really should be cleaned up to avoid all the duplicated code in it, and this commit just expands on the problem. But this just fixes the bug without any bigger cleanup surgery. Reported-and-tested-by: Andy Lutomirski Signed-off-by: Linus Torvalds arch/x86/include/asm/uaccess_32.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit fbb0fa8b48892a3db8f5b89fb591c741fbd2fe7a Author: Michael Chan Date: Mon Feb 22 02:10:26 2016 -0500 bnxt_en: Fix zero padding of tx push data. The arithmetic to zero pad the last 64-bit word in the push buffer is not correct. 1. It should be pdata + length to get to the end. 2. 'pdata' is void pointer and passing it to PTR_ALIGN() will cast the aligned pointer to void. Pass 'end' which is u64 pointer to PTR_ALIGN() instead so that the aligned pointer - 1 is the last 64-bit pointer to data. Signed-off-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 5146d1f151122e868e594c7b45115d64825aee5f Author: Bernie Harris Date: Mon Feb 22 12:58:05 2016 +1300 tunnel: Clear IPCB(skb)->opt before dst_link_failure called IPCB may contain data from previous layers (in the observed case the qdisc layer). In the observed scenario, the data was misinterpreted as ip header options, which later caused the ihl to be set to an invalid value (<5). This resulted in an infinite loop in the mips implementation of ip_fast_csum. This patch clears IPCB(skb)->opt before dst_link_failure can be called for various types of tunnels. This change only applies to encapsulated ipv4 packets. The code introduced in 11c21a30 which clears all of IPCB has been removed to be consistent with these changes, and instead the opt field is cleared unconditionally in ip_tunnel_xmit. The change in ip_tunnel_xmit applies to SIT, GRE, and IPIP tunnels. The relevant vti, l2tp, and pptp functions already contain similar code for clearing the IPCB. Signed-off-by: Bernie Harris Signed-off-by: David S. Miller net/ipv4/ip_tunnel.c | 3 ++- net/ipv4/udp_tunnel.c | 2 ++ net/ipv6/ip6_gre.c | 2 ++ net/ipv6/ip6_tunnel.c | 2 ++ 4 files changed, 8 insertions(+), 1 deletion(-) commit 9bdfb3b79e61c60e1a3e2dc05ad164528afa6b8a Author: Konstantin Khlebnikov Date: Sun Feb 21 10:12:39 2016 +0300 tcp: convert cached rtt from usec to jiffies when feeding initial rto Currently it's converted into msecs, thus HZ=1000 intact. Signed-off-by: Konstantin Khlebnikov Fixes: 740b0f1841f6 ("tcp: switch rtt estimations to usec resolution") Signed-off-by: David S. Miller net/ipv4/tcp_metrics.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fb5eb24cdd5cdb83be77d3e4b2f16e92e06bd9e9 Author: Patrik Halfar Date: Sat Feb 20 18:49:40 2016 +0100 Add Dell Wireless 5809e Gobi 4G HSPA+ Mobile Broadband Card (rev3) to qmi_wwan New revison of Dell Wireless 5809e Gobi 4G HSPA+ Mobile Broadband Card has new idProduct Bus 002 Device 006: ID 413c:81b3 Dell Computer Corp. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x413c Dell Computer Corp. idProduct 0x81b3 bcdDevice 0.06 iManufacturer 1 Sierra Wireless, Incorporated iProduct 2 Dell Wireless 5809e Gobi™ 4G HSPA+ Mobile Broadband Card iSerial 3 bNumConfigurations 2 Signed-off-by: Patrik Halfar Signed-off-by: David S. Miller drivers/net/usb/qmi_wwan.c | 1 + 1 file changed, 1 insertion(+) commit 905e36ae172c83a30894a3adefab7d4f850fcf54 Author: Matti Gottlieb Date: Sun Feb 14 17:05:39 2016 +0200 iwlwifi: mvm: Fix paging memory leak If the opmode is stopped and started again we did not free the paging buffers. Fix that. In addition when freeing the firmware's paging download buffer, set the pointer to NULL. Signed-off-by: Matti Gottlieb Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/fw.c | 4 +++- drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 3 +++ drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 2 ++ 3 files changed, 8 insertions(+), 1 deletion(-) commit 236cf17c2502007a9d2dda3c39fb0d9a6bd03cc2 Author: Mark Rutland Date: Tue Feb 16 14:47:31 2016 +0000 KVM: arm/arm64: vgic: Ensure bitmaps are long enough When we allocate bitmaps in vgic_vcpu_init_maps, we divide the number of bits we need by 8 to figure out how many bytes to allocate. However, bitmap elements are always accessed as unsigned longs, and if we didn't happen to allocate a size such that size % sizeof(unsigned long) == 0, bitmap accesses may go past the end of the allocation. When using KASAN (which does byte-granular access checks), this results in a continuous stream of BUGs whenever these bitmaps are accessed: ============================================================================= BUG kmalloc-128 (Tainted: G B ): kasan: bad access detected ----------------------------------------------------------------------------- INFO: Allocated in vgic_init.part.25+0x55c/0x990 age=7493 cpu=3 pid=1730 INFO: Slab 0xffffffbde6d5da40 objects=16 used=15 fp=0xffffffc935769700 flags=0x4000000000000080 INFO: Object 0xffffffc935769500 @offset=1280 fp=0x (null) Bytes b4 ffffffc9357694f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ Object ffffffc935769500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ Object ffffffc935769510: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ Object ffffffc935769520: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ Object ffffffc935769530: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ Object ffffffc935769540: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ Object ffffffc935769550: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ Object ffffffc935769560: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ Object ffffffc935769570: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ Padding ffffffc9357695b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ Padding ffffffc9357695c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ Padding ffffffc9357695d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ Padding ffffffc9357695e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ Padding ffffffc9357695f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ CPU: 3 PID: 1740 Comm: kvm-vcpu-0 Tainted: G B 4.4.0+ #17 Hardware name: ARM Juno development board (r1) (DT) Call trace: [] dump_backtrace+0x0/0x280 [] show_stack+0x14/0x20 [] dump_stack+0x100/0x188 [] print_trailer+0xfc/0x168 [] object_err+0x3c/0x50 [] kasan_report_error+0x244/0x558 [] __asan_report_load8_noabort+0x48/0x50 [] __bitmap_or+0xc0/0xc8 [] kvm_vgic_flush_hwstate+0x1bc/0x650 [] kvm_arch_vcpu_ioctl_run+0x2ec/0xa60 [] kvm_vcpu_ioctl+0x474/0xa68 [] do_vfs_ioctl+0x5b8/0xcb0 [] SyS_ioctl+0x8c/0xa0 [] el0_svc_naked+0x24/0x28 Memory state around the buggy address: ffffffc935769400: 00 00 fc fc fc fc fc fc fc fc fc fc fc fc fc fc ffffffc935769480: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc >ffffffc935769500: 04 fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc ^ ffffffc935769580: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc ffffffc935769600: 00 00 00 00 fc fc fc fc fc fc fc fc fc fc fc fc ================================================================== Fix the issue by always allocating a multiple of sizeof(unsigned long), as we do elsewhere in the vgic code. Fixes: c1bfb577a ("arm/arm64: KVM: vgic: switch to dynamic allocation") Cc: stable@vger.kernel.org Acked-by: Marc Zyngier Acked-by: Christoffer Dall Signed-off-by: Mark Rutland Signed-off-by: Marc Zyngier virt/kvm/arm/vgic.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b7052cd7bcf3c1478796e93e3dff2b44c9e82943 Author: Stefan Hajnoczi Date: Thu Feb 18 18:55:54 2016 +0000 sunrpc/cache: fix off-by-one in qword_get() The qword_get() function NUL-terminates its output buffer. If the input string is in hex format \xXXXX... and the same length as the output buffer, there is an off-by-one: int qword_get(char **bpp, char *dest, int bufsize) { ... while (len < bufsize) { ... *dest++ = (h << 4) | l; len++; } ... *dest = '\0'; return len; } This patch ensures the NUL terminator doesn't fall outside the output buffer. Signed-off-by: Stefan Hajnoczi Cc: stable@vger.kernel.org Signed-off-by: J. Bruce Fields net/sunrpc/cache.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b86071528f3261ab592fad5b9b1a02aea3dcabf3 Author: Arend van Spriel Date: Mon Feb 15 14:35:53 2016 +0100 cfg80211: stop critical protocol session upon disconnect event When user-space has started a critical protocol session and a disconnect event occurs, the rdev::crit_prot_nlportid remains set. This caused a subsequent NL80211_CMD_CRIT_PROTO_START to fail (-EBUSY). Fix this by clearing the rdev attribute and call .crit_proto_stop() callback upon disconnect event. Reviewed-by: Hante Meuleman Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Arend van Spriel Signed-off-by: Johannes Berg net/wireless/sme.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 5e950a78bf5b18ded277a27aed0bcdbe7c1b868a Author: Ola Olsson Date: Thu Feb 11 01:00:22 2016 +0100 nl80211: Zero out the connection keys memory when freeing them. The connection keys are zeroed out in all other cases except this one. Let's fix the last one as well. Signed-off-by: Ola Olsson Reviewed-by: Julian Calaby Signed-off-by: Johannes Berg net/wireless/nl80211.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7a36b930e6ed4702c866dc74a5ad07318a57c688 Author: Felix Fietkau Date: Thu Feb 18 19:49:18 2016 +0100 mac80211: minstrel_ht: set default tx aggregation timeout to 0 The value 5000 was put here with the addition of the timeout field to ieee80211_start_tx_ba_session. It was originally added in mac80211 to save resources for drivers like iwlwifi, which only supports a limited number of concurrent aggregation sessions. Since iwlwifi does not use minstrel_ht and other drivers don't need this, 0 is a better default - especially since there have been recent reports of aggregation setup related issues reproduced with ath9k. This should improve stability without causing any adverse effects. Cc: stable@vger.kernel.org Acked-by: Avery Pennarun Signed-off-by: Felix Fietkau Signed-off-by: Johannes Berg net/mac80211/rc80211_minstrel_ht.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3e5177c1919bdc7651b5056f35409d0b4d728841 Author: Alexey Brodkin Date: Sat Feb 20 16:04:26 2016 +0300 arc: get rid of DEVTMPFS dependency on INITRAMFS_SOURCE Even though DEVTMPFS is required when our pre-built initramfs is used it is not the case in general. It is perfectly possible to use initramfs with device nodes already populated or there could be other usages, see discussion below for more detials: http://thread.gmane.org/gmane.comp.embedded.openwrt.devel/37819/focus=37821 This change removes mentioned dependency from arch/arc/Kconfig updating instead those defconfigs that are usually used with this kind of pre-build initramfs. And while at it all touched defconfigs were regenerated via savedefconfig and some options were removed: * USB is selected by other options implicitly * VGA_CONSOLE is disableb for ARC since 031e29b5877f31676739dc2f847d04c2c0732034 * EXT3_FS automatically selects EXT4_FS * MTDxxx and JFFS2_FS make no sense for AXS because AXS NAND controller is not upstreamed * NET_OSCI_LAN is not in upstream as well * ARCPGU_xxx options make no sense because ARC PGU is not yet in upstream and when it gets there all config options would be taken from devicetree Signed-off-by: Alexey Brodkin Signed-off-by: Vineet Gupta arch/arc/Kconfig | 2 -- arch/arc/configs/axs101_defconfig | 4 +--- arch/arc/configs/axs103_defconfig | 10 +--------- arch/arc/configs/axs103_smp_defconfig | 10 +--------- arch/arc/configs/nsim_700_defconfig | 5 ++--- arch/arc/configs/nsim_hs_defconfig | 3 +-- arch/arc/configs/nsim_hs_smp_defconfig | 6 ++---- arch/arc/configs/nsimosci_defconfig | 2 +- arch/arc/configs/nsimosci_hs_defconfig | 3 +-- arch/arc/configs/nsimosci_hs_smp_defconfig | 12 ++---------- arch/arc/configs/tb10x_defconfig | 18 ++++++------------ 11 files changed, 18 insertions(+), 57 deletions(-) commit 3b2435192fe917a826c91c8b34032428d6efdfc7 Author: Felipe Balbi Date: Fri Feb 19 11:04:55 2016 +0200 MAINTAINERS: drop OMAP USB and MUSB maintainership Now that I have switched to another company, I won't be able to help by maintaining OMAP USB Support and/or the MUSB driver. OMAP USB Support is left Orphaned. MUSB's new maintainer will be Bin Liu from Texas Instruments who has accepted to take over starting with v4.6. Cc: Bin Liu Acked-by: Greg Kroah-Hartman Signed-off-by: Felipe Balbi MAINTAINERS | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 4c2ba0c67394514f3f75c660c9f5d02e66a7efd4 Author: Cristian Birsan Date: Fri Feb 19 10:11:56 2016 +0200 usb: musb: fix DMA for host mode Commit ac33cdb16681 ("usb: musb: Remove ifdefs for musb_host_rx in musb_host.c part5") introduces a problem setting DMA host mode. The musb_advance_schedule() is called immediately after receiving an endpoint RX interrupt without waiting for the DMA transfer to complete. As a consequence when the dma complete interrupt arrives the in_qh member of hw_ep is already null an the musb_host_rx() exits on !urb error case. Fix the done condition that advances the musb schedule. Signed-off-by: Cristian Birsan Signed-off-by: Joshua Henderson Tested-by: Ladislav Michl Signed-off-by: Felipe Balbi drivers/usb/musb/musb_host.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 8de4b3a3fcbc18e0aa62e9defe5c08821351be12 Author: Ivan T. Ivanov Date: Fri Feb 5 19:17:09 2016 +0000 usb: phy: msm: Trigger USB state detection work in DRD mode When working in Dual Role Device mode, USB state machine is not kicked, when host or gadget drivers are loaded. Fix this be explicitly triggering state detection on client driver load. Issue is that if the board is booted without micro usb cable and usb device attached, kernel fails to populate the usb host and device. The reason for this is that the state machine worker logic only checks for USB_DR_MODE_PERIPHERAL and USB_DR_MODE_HOST modes to run worker thread. However if the phy is configured in OTG mode it would fail to run the state machine, resulting in failure to detect for very first time. This patch fixes the issue by removing the explicit checks. Issue is noticed on Qualcomm Dragon board DB410C. [srinivas.kandagatla@linaro.org: Added more details to log] Signed-off-by: Ivan T. Ivanov Signed-off-by: Srinivas Kandagatla Signed-off-by: Felipe Balbi drivers/usb/phy/phy-msm-usb.c | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) commit ca1c11894274c1687417945c034d6b8aee49f625 Author: Simon Appleby Date: Tue Feb 9 09:19:46 2016 +0000 usb: gadget: net2280: fix endpoint max packet for super speed connections This patch fixes the register offset used for super-speed connection's max packet size. Without it using the 338x series of devices in enhanced mode will only allow full or high speed operation to function correctly. Signed-off-by: Simon Appleby Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/net2280.h | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit 7b0a271d5cadf5fbb5a9c7cb868776af2a2c248c Author: Marek Szyprowski Date: Thu Feb 18 08:59:26 2016 +0100 usb: gadget: gadgetfs: unregister gadget only if it got successfully registered Gadgetfs driver called usb_gadget_unregister_driver unconditionally, even if it didn't register it earlier due to other failures. This patch fixes this. Reported-by: Vegard Nossum Signed-off-by: Marek Szyprowski Tested-by: Vegard Nossum Signed-off-by: Felipe Balbi drivers/usb/gadget/legacy/inode.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 31b994a4986dcdd664c597afcef2c0918763019a Author: Marek Szyprowski Date: Mon Feb 8 13:42:14 2016 +0100 usb: gadget: remove driver from pending list on probe error Retry gadget probe only if the probe result is -EPROBE_DEFER, not on every probe error. Signed-off-by: Marek Szyprowski Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/udc-core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit dd71a17b1193dd4a4c35ecd0ba227aac3d110836 Author: Bryan O'Donoghue Date: Tue Feb 23 01:29:58 2016 +0000 x86/platform/intel/quark: Change the kernel's IMR lock bit to false Currently when setting up an IMR around the kernel's .text section we lock that IMR, preventing further modification. While superficially this appears to be the right thing to do, in fact this doesn't account for a legitimate change in the memory map such as when executing a new kernel via kexec. In such a scenario a second kernel can have a different size and location to it's predecessor and can view some of the memory occupied by it's predecessor as legitimately usable DMA RAM. If this RAM were then subsequently allocated to DMA agents within the system it could conceivably trigger an IMR violation. This patch fixes the this potential situation by keeping the kernel's .text section IMR lock bit false by default. Suggested-by: Ingo Molnar Reported-by: Andy Shevchenko Signed-off-by: Bryan O'Donoghue Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: boon.leong.ong@intel.com Cc: paul.gortmaker@windriver.com Link: http://lkml.kernel.org/r/1456190999-12685-2-git-send-email-pure.logic@nexus-software.ie Signed-off-by: Ingo Molnar arch/x86/platform/intel-quark/imr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit dbb0c7c430ddbe4299f3580baec0e2503f6f5a93 Author: Tomeu Vizoso Date: Thu Jan 21 08:52:26 2016 +0100 PM / devfreq: tegra: Set freq in rate callback As per the documentation of the devfreq_dev_profile.target callback, set the freq argument to the new frequency before returning. This caused endless messages like this after recent changes in the core: devfreq 6000c800.actmon: Couldn't update frequency transition information. Signed-off-by: Tomeu Vizoso Reported-by: Tyler Baker Tested-by: Thierry Reding Acked-by: Thierry Reding Signed-off-by: MyungJoo Ham drivers/devfreq/tegra-devfreq.c | 2 ++ 1 file changed, 2 insertions(+) commit 9fd4b9fc7695a4da1363a0b439853f88fb6a034f Author: Trond Myklebust Date: Mon Feb 22 17:46:34 2016 -0500 NFSv4.x/pnfs: Fix a race between layoutget and bulk recalls Replace another case where the layout 'plh_block_lgets' can trigger infinite loops in send_layoutget(). Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) commit 2454dfea0aef8a883d4302c38124edb373d47a25 Author: Trond Myklebust Date: Mon Feb 22 17:34:59 2016 -0500 NFSv4.x/pnfs: Fix a race between layoutget and pnfs_destroy_layout If the server reboots while there is a layoutget outstanding, then the call to pnfs_choose_layoutget_stateid() will fail with an EAGAIN error, which causes an infinite loop in send_layoutget(). The reason why we never break out of the loop is that the layout 'plh_block_lgets' field is never cleared. Fix is to replace plh_block_lgets with NFS_LAYOUT_INVALID_STID, which can be reset after a new layoutget. Fixes: ab7d763e477c5 ("pNFS: Ensure nfs4_layoutget_prepare returns...") Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) commit 4de8ebeff8ddefaceeb7fc6a9b1a514fc9624509 Merge: 692b8c6 6e22c83 Author: Linus Torvalds Date: Mon Feb 22 14:09:18 2016 -0800 Merge tag 'trace-fixes-v4.5-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace Pull tracing fixes from Steven Rostedt: "Two more small fixes. One is by Yang Shi who added a READ_ONCE_NOCHECK() to the scan of the stack made by the stack tracer. As the stack tracer scans the entire kernel stack, KASAN triggers seeing it as a "stack out of bounds" error. As the scan is looking at the contents of the stack from parent functions. The NOCHECK() tells KASAN that this is done on purpose, and is not some kind of stack overflow. The second fix is to the ftrace selftests, to retrieve the PID of executed commands from the shell with '$!' and not by parsing 'jobs'" * tag 'trace-fixes-v4.5-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: tracing, kasan: Silence Kasan warning in check_stack of stack_tracer ftracetest: Fix instance test to use proper shell command for pids commit a0d54c3899aaeb047969d9479263c6bcf385c331 Author: Tero Kristo Date: Sat Feb 20 13:12:57 2016 +0200 clk: ti: omap3+: dpll: use non-locking version of clk_get_rate As the code in this file is being executed within irq context in some cases, we must avoid the clk_get_rate which uses mutex internally. Switch the code to use clk_hw_get_rate instead which is non-locking. This fixes an issue where PM runtime will hang the system if enabled with a serial console before a suspend-resume cycle. Signed-off-by: Tero Kristo Tested-by: Tony Lindgren Fixes: a53ad8ef3dcc ("clk: ti: Convert to clk_hw based provider APIs") Signed-off-by: Stephen Boyd drivers/clk/ti/dpll3xxx.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 692b8c663cbaf892d10106fbca543b4bbc3202ad Merge: dea08e6 4d8c8bd Author: Linus Torvalds Date: Mon Feb 22 13:57:01 2016 -0800 Merge tag 'for-linus-4.5-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip Pull xen bug fixes from David Vrabel: - Two scsiback fixes (resource leak and spurious warning). - Fix DMA mapping of compound pages on arm/arm64. - Fix some pciback regressions in MSI-X handling. - Fix a pcifront crash due to some uninitialize state. * tag 'for-linus-4.5-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: xen/pcifront: Fix mysterious crashes when NUMA locality information was extracted. xen/pcifront: Report the errors better. xen/pciback: Save the number of MSI-X entries to be copied later. xen/pciback: Check PF instead of VF for PCI_COMMAND_MEMORY xen: fix potential integer overflow in queue_reply xen/arm: correctly handle DMA mapping of compound pages xen/scsiback: avoid warnings when adding multiple LUNs to a domain xen/scsiback: correct frontend counting commit dea08e604408d0303e2332896c5fdd8c1f7d79a2 Merge: 5c102d0 d856626 Author: Linus Torvalds Date: Mon Feb 22 12:18:07 2016 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Pull networking fixes from David Miller: "Looks like a lot, but mostly driver fixes scattered all over as usual. Of note: 1) Add conditional sched in nf conntrack in cleanup to avoid NMI watchdogs. From Florian Westphal. 2) Fix deadlock in nfnetlink cttimeout, also from Floarian. 3) Fix handling of slaves in bonding ARP monitor validation, from Jay Vosburgh. 4) Callers of ip_cmsg_send() are responsible for freeing IP options, some were not doing so. Fix from Eric Dumazet. 5) Fix per-cpu bugs in mvneta driver, from Gregory CLEMENT. 6) Fix vlan handling in mv88e6xxx DSA driver, from Vivien Didelot. 7) bcm7xxx PHY driver bug fixes from Florian Fainelli. 8) Avoid unaligned accesses to protocol headers wrt. GRE, from Alexander Duyck. 9) SKB leaks and other problems in arc_emac driver, from Alexander Kochetkov. 10) tcp_v4_inbound_md5_hash() releases listener socket instead of request socket on error path, oops. Fix from Eric Dumazet. 11) Missing socket release in pppoe_rcv_core() that seems to have existed basically forever. From Guillaume Nault. 12) Missing slave_dev unregister in dsa_slave_create() error path, from Florian Fainelli. 13) crypto_alloc_hash() never returns NULL, fix return value check in __tcp_alloc_md5sig_pool. From Insu Yun. 14) Properly expire exception route entries in ipv4, from Xin Long. 15) Fix races in tcp/dccp listener socket dismantle, from Eric Dumazet. 16) Don't set IFF_TX_SKB_SHARING in vxlan, geneve, or GRE, it's not legal. These drivers modify the SKB on transmit. From Jiri Benc. 17) Fix regression in the initialziation of netdev->tx_queue_len. From Phil Sutter. 18) Missing unlock in tipc_nl_add_bc_link() error path, from Insu Yun. 19) SCTP port hash sizing does not properly ensure that table is a power of two in size. From Neil Horman. 20) Fix initializing of software copy of MAC address in fmvj18x_cs driver, from Ken Kawasaki" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (129 commits) bnx2x: Fix 84833 phy command handler bnx2x: Fix led setting for 84858 phy. bnx2x: Correct 84858 PHY fw version bnx2x: Fix 84833 RX CRC bnx2x: Fix link-forcing for KR2 net: ethernet: davicom: fix devicetree irq resource fmvj18x_cs: fix incorrect indexing of dev->dev_addr[] when copying the MAC address Driver: Vmxnet3: Update Rx ring 2 max size net: netcp: rework the code for get/set sw_data in dma desc soc: ti: knav_dma: rename pad in struct knav_dma_desc to sw_data net: ti: netcp: restore get/set_pad_info() functionality MAINTAINERS: Drop myself as xen netback maintainer sctp: Fix port hash table size computation can: ems_usb: Fix possible tx overflow Bluetooth: hci_core: Avoid mixing up req_complete and req_complete_skb net: bcmgenet: Fix internal PHY link state af_unix: Don't use continue to re-execute unix_stream_read_generic loop unix_diag: fix incorrect sign extension in unix_lookup_by_ino bnxt_en: Failure to update PHY is not fatal condition. bnxt_en: Remove unnecessary call to update PHY settings. ... commit 5c102d0eca3c41b10ccc1525cbb1eba7fd6efd7c Merge: a16152c 000e094 Author: Linus Torvalds Date: Mon Feb 22 12:12:46 2016 -0800 Merge tag 'hwmon-for-linus-v4.5-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging Pull hwmon fixes from Guenter Roeck: "Two fixes headed for stable: - Remove an unnecessary speed_index lookup for thermal hook in the gpio-fan driver. The unnecessary speed lookup can hog the system. - Handle negative conversion values correctly in the ads1015 driver" * tag 'hwmon-for-linus-v4.5-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: hwmon: (gpio-fan) Remove un-necessary speed_index lookup for thermal hook hwmon: (ads1015) Handle negative conversion values correctly commit a16152c897d74abcca15c120c746264ac4b3bfd1 Merge: 7ee302f c2bab61 Author: Linus Torvalds Date: Mon Feb 22 12:04:11 2016 -0800 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma Pull rdma fixes from Doug Ledford: "One ocrdma fix: - The new CQ API support was added to ocrdma, but they got the arming logic wrong, so without this, transfers eventually fail when they fail to arm the interrupt properly under load Two related fixes for mlx4: - When we added the 64bit extended counters support to the core IB code, they forgot to update the RoCE side of the mlx4 driver (the IB side they properly updated). I debated whether or not to include these patches as they could be considered feature enablement patches, but the existing code will blindy copy the 32bit counters, whether any counters were requested at all (a bug). These two patches make it (a) check to see that counters were requested and (b) copy the right counters (the 64bit support is new, the 32bit is not). For that reason I went ahead and took them" * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: IB/mlx4: Add support for the port info class for RoCE ports IB/mlx4: Add support for extended counters over RoCE ports RDMA/ocrdma: Fix arm logic to align with new cq API commit 7ee302f6f770712a54060928ee3390f6572655bc Merge: 81f70ba 1a1503c Author: Linus Torvalds Date: Mon Feb 22 11:55:18 2016 -0800 Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux Pull i2c fixes from Wolfram Sang: "Some bugfixes from I2C for you: A fix for a RuntimePM regression with OMAP, a fix to enable TCO for Lewisburg platforms, and a typo fix while we are here" * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: i2c: i801: Adding Intel Lewisburg support for iTCO i2c: uniphier: fix typos in error messages i2c: omap: Fix PM regression with deferred probe for pm_runtime_reinit commit 253baffdcefba73011e6d2102e69e0b86547836f Merge: bf5b1f3 8f31852 Author: Thomas Gleixner Date: Mon Feb 22 19:31:44 2016 +0100 Merge tag 'gic-fixes-4.5-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into irq/urgent Pull GIC fixes for 4.5-rc5 from Marc Zyngier: - EOI handling for LPIs when GICv3 is in EOImode==1 - Another fallout from changing page size while allocating ITS tables - Missing memory barrier in the 32bit GICv3 code commit 3f315c5b850fa7aff73f50de8e316b98f611a32b Author: Ivaylo Dimitrov Date: Fri Feb 5 16:37:08 2016 +0200 ARM: OMAP2+: Fix onenand initialization to avoid filesystem corruption Commit e7b11dc7b77b ("ARM: OMAP2+: Fix onenand rate detection to avoid filesystem corruption") partially fixed onenand configuration when GPMC module is reset. Finish the job by also providing the correct values in ONENAND_REG_SYS_CFG1 register. Fixes: e7b11dc7b77b ("ARM: OMAP2+: Fix onenand rate detection to avoid filesystem corruption") Cc: stable@vger.kernel.org # v4.2+ Signed-off-by: Ivaylo Dimitrov Tested-by: Aaro Koskinen Signed-off-by: Tony Lindgren arch/arm/mach-omap2/gpmc-onenand.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 9b18572e83bfd5378b3fcff3acf123f7bddf558a Author: Mika Kuoppala Date: Thu Feb 18 17:58:09 2016 +0200 drm/i915/gen9: Verify and enforce dc6 state writes It has been observed that sometimes disabling the dc6 fails and dc6 state pops back up, brief moment after disabling. This has to be dmc save/restore timing issue or other bug in the way dc states are handled. Try to work around this issue as we don't have firmware fix yet available. Verify that the value we wrote for the dmc sticks, and also enforce it by rewriting it, if it didn't. v2: Zero rereads on rewrite for extra paranoia (Imre) Testcase: kms_flip/basic-flip-vs-dpms References: https://bugs.freedesktop.org/show_bug.cgi?id=93768 Cc: Patrik Jakobsson Cc: Rodrigo Vivi Cc: Imre Deak Signed-off-by: Mika Kuoppala Reviewed-by: Imre Deak Signed-off-by: Imre Deak Link: http://patchwork.freedesktop.org/patch/msgid/1455811089-27884-1-git-send-email-mika.kuoppala@intel.com (cherry picked from commit 779cb5d3ddd72950ec726f86e38f7575c7fbdd4c) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_runtime_pm.c | 41 +++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) commit 9b6f20984c5402af06e13cde64b5fe7c31853d1a Author: Patrik Jakobsson Date: Thu Feb 18 17:21:11 2016 +0200 drm/i915/gen9: Check for DC state mismatch The DMC can incorrectly run off and allow DC states on it's own. We don't know the root-cause for this yet but this patch makes it more visible. Reviewed-by: Mika Kuoppala Signed-off-by: Patrik Jakobsson Signed-off-by: Imre Deak Link: http://patchwork.freedesktop.org/patch/msgid/1455808874-22089-2-git-send-email-mika.kuoppala@intel.com (cherry picked from commit 832dba889e27487c3087149f1039acc3feb89003) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/intel_csr.c | 2 ++ drivers/gpu/drm/i915/intel_runtime_pm.c | 8 ++++++++ 3 files changed, 11 insertions(+) commit 39d4275058baf53e89203407bf3841ff2c74fa32 Author: Alex Deucher Date: Fri Feb 19 18:05:10 2016 -0500 drm/radeon/pm: adjust display configuration after powerstate set_power_state defaults to no displays, so we need to update the display configuration after setting up the powerstate on the first call. In most cases this is not an issue since ends up getting called multiple times at any given modeset and the proper order is achieved in the display changed handling at the top of the function. Reviewed-by: Christian König Acked-by: Jordan Lazare Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/radeon_pm.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 8e7cedc6f7fe762ffe6e348502be34b11fa79298 Author: Alex Deucher Date: Fri Feb 19 17:55:31 2016 -0500 drm/amdgpu/pm: adjust display configuration after powerstate set_power_state defaults to no displays, so we need to update the display configuration after setting up the powerstate on the first call. In most cases this is not an issue since ends up getting called multiple times at any given modeset and the proper order is achieved in the display changed handling at the top of the function. Reviewed-by: Christian König Acked-by: Jordan Lazare Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 0c67df48597f0e60eaf7f187ee38f6ccce56561e Author: Alex Deucher Date: Fri Feb 19 15:30:15 2016 -0500 drm/amdgpu/pm: add some checks for PX I.e., doesn't make sense to change power states or check the temperature when the asic is powered off. Reviewed-by: Christian König Acked-by: Harry Wentland Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) commit 10f950f640e689336af0a0d587a4b3c26a73cd44 Author: Alex Deucher Date: Fri Feb 19 15:18:45 2016 -0500 drm/amdgpu: fix locking in force performance level Looks like a copy paste typo when we added powerplay support. Reviewed-by: Christian König Acked-by: Harry Wentland Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 04ab3b7622a618ea081d17427c15a292710b40cb Author: Alex Deucher Date: Thu Feb 18 11:10:09 2016 -0500 drm/amdgpu/gfx8: fix priv reg interrupt enable Looks like a copy/paste typo. Reviewed-by: Christian König Noticed-by: David Panariti Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7e31a0159461818a1bda49662921b98a29c1187b Author: Takashi Iwai Date: Mon Feb 22 15:18:13 2016 +0100 ALSA: hda - Apply clock gate workaround to Skylake, too Some Skylake machines show the codec probe errors in certain situations, e.g. HP Z240 desktop fails to probe the onboard Realtek codec at reloading the snd-hda-intel module like: snd_hda_intel 0000:00:1f.3: spurious response 0x200:0x2, last cmd=0x000000 snd_hda_intel 0000:00:1f.3: azx_get_response timeout, switching to polling mode: lastcmd=0x000f0000 snd_hda_intel 0000:00:1f.3: No response from codec, disabling MSI: last cmd=0x000f0000 snd_hda_intel 0000:00:1f.3: Codec #0 probe error; disabling it... hdaudio hdaudioC0D2: no AFG or MFG node found snd_hda_intel 0000:00:1f.3: no codecs initialized Also, HP G470 G3 suffers from the similar problem, as reported in bugzilla below. On this machine, the codec probe error appears even at a fresh boot. As Libin suggested, the same workaround used for Broxton in the commit [6639484ddaf6: ALSA: hda - disable dynamic clock gating on Broxton before reset] can be applied for Skylake in order to fix this problem. The Intel HW team also confirmed that this is needed for SKL. This patch makes the workaround applied to both SKL and BXT platforms. The referred macros are moved and one superfluous macro (IS_BROXTON()) is another one (IS_BXT()) as well. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=112731 Suggested-by: Libin Yang Cc: # v4.4+ Signed-off-by: Takashi Iwai sound/pci/hda/hda_intel.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) commit 53188eb40121a135892881c5f61e41efce60b00a Author: Imre Deak Date: Tue Feb 16 18:56:46 2016 +0200 drm/i915/skl: Ensure HW is powered during DDB HW state readout The assumption when adding the intel_display_power_is_enabled() checks was that if it returns success the power can't be turned off afterwards during the HW access, which is guaranteed by modeset locks. This isn't always true, so make sure we hold a dedicated reference for the time of the access. Spotted-by: Mika Kuoppala Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93441 CC: Chris Wilson Signed-off-by: Imre Deak Reviewed-by: Mika Kuoppala Link: http://patchwork.freedesktop.org/patch/msgid/1455719489-3008-1-git-send-email-imre.deak@intel.com (cherry picked from commit 4d800030238878c1a98d1d3a37a3d673eea661ce) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_pm.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 380bdff2d05b498227c80caedd125e8cfcdba00d Author: Imre Deak Date: Fri Feb 12 18:55:21 2016 +0200 drm/i915/lvds: Ensure the HW is powered during HW state readout The assumption when adding the intel_display_power_is_enabled() checks was that if it returns success the power can't be turned off afterwards during the HW access, which is guaranteed by modeset locks. This isn't always true, so make sure we hold a dedicated reference for the time of the access. Signed-off-by: Imre Deak Reviewed-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1455296121-4742-13-git-send-email-imre.deak@intel.com (cherry picked from commit ecb2448218acf23c401434c26be256147833b221) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_lvds.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) commit 31feb61a688bd4b1c1cb66cc24d931ee77826d93 Author: Imre Deak Date: Fri Feb 12 18:55:20 2016 +0200 drm/i915/hdmi: Ensure the HW is powered during HW state readout The assumption when adding the intel_display_power_is_enabled() checks was that if it returns success the power can't be turned off afterwards during the HW access, which is guaranteed by modeset locks. This isn't always true, so make sure we hold a dedicated reference for the time of the access. Signed-off-by: Imre Deak Reviewed-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1455296121-4742-12-git-send-email-imre.deak@intel.com (cherry picked from commit 5b0921748c0b1d0362bbfa802dc25a5c23de7e76) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_hdmi.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) commit fe97fd7eb87255883ae1da2d726baaae2b50e80d Author: Imre Deak Date: Fri Feb 12 18:55:19 2016 +0200 drm/i915/dsi: Ensure the HW is powered during HW state readout The assumption when adding the intel_display_power_is_enabled() checks was that if it returns success the power can't be turned off afterwards during the HW access, which is guaranteed by modeset locks. This isn't always true, so make sure we hold a dedicated reference for the time of the access. Signed-off-by: Imre Deak Reviewed-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1455296121-4742-11-git-send-email-imre.deak@intel.com (cherry picked from commit 3f3f42b887fbffc3353e44ef9f32456c19ae4280) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_dsi.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit b81b801f8675838d69d1062a47ca46530ca7217b Author: Imre Deak Date: Fri Feb 12 18:55:18 2016 +0200 drm/i915/dp: Ensure the HW is powered during HW state readout The assumption when adding the intel_display_power_is_enabled() checks was that if it returns success the power can't be turned off afterwards during the HW access, which is guaranteed by modeset locks. This isn't always true, so make sure we hold a dedicated reference for the time of the access. Signed-off-by: Imre Deak Reviewed-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1455296121-4742-10-git-send-email-imre.deak@intel.com (cherry picked from commit 6fa9a5ecf7a54450b255229ac1fc6df276cf0653) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_dp.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) commit 02f9f5e62a9b0a1af2edd4fbd8194c9c5475459b Author: Imre Deak Date: Fri Feb 12 18:55:17 2016 +0200 drm/i915: Ensure the HW is powered when accessing the CRC HW block The assumption when adding the intel_display_power_is_enabled() checks was that if it returns success the power can't be turned off afterwards during the HW access, which is guaranteed by modeset locks. This isn't always true, so make sure we hold a dedicated reference for the time of the access. While at it also add the missing reference around the HW access in i915_interrupt_info(). v2: - update the commit message mentioning that this also fixes the HW access in the interrupt info debugfs entry (Daniel) Signed-off-by: Imre Deak Reviewed-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1455296121-4742-9-git-send-email-imre.deak@intel.com (cherry picked from commit e129649b7a3e1d50d196e159492496777769437e) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_debugfs.c | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) commit d59410219ae396a5649eecff1a041e4588aff999 Author: Imre Deak Date: Fri Feb 12 18:55:16 2016 +0200 drm/i915/ddi: Ensure the HW is powered during HW state readout The assumption when adding the intel_display_power_is_enabled() checks was that if it returns success the power can't be turned off afterwards during the HW access, which is guaranteed by modeset locks. This isn't always true, so make sure we hold a dedicated reference for the time of the access. CC: Chris Wilson Signed-off-by: Imre Deak Reviewed-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1455296121-4742-8-git-send-email-imre.deak@intel.com (cherry picked from commit e27daab49718e3232318d8b539cb302521b4b724) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_ddi.c | 112 +++++++++++++++++++++++++++------------ 1 file changed, 79 insertions(+), 33 deletions(-) commit 7a6252c6bce1124eebf620948280f8255a83f04a Author: Imre Deak Date: Fri Feb 12 18:55:15 2016 +0200 drm/i915/crt: Ensure the HW is powered during HW state readout The assumption when adding the intel_display_power_is_enabled() checks was that if it returns success the power can't be turned off afterwards during the HW access, which is guaranteed by modeset locks. This isn't always true, so make sure we hold a dedicated reference for the time of the access. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93439 CC: Chris Wilson Signed-off-by: Imre Deak Reviewed-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1455296121-4742-7-git-send-email-imre.deak@intel.com (cherry picked from commit 1c8fdda1ea947ae8cf994969a1c285acc7089cb9) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_crt.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit 5a24fab098d6f1aeae3e184a704cf2cd1f677ecd Author: Imre Deak Date: Fri Feb 12 18:55:14 2016 +0200 drm/i915: Ensure the HW is powered during HW access in assert_pipe The assumption when adding the intel_display_power_is_enabled() checks was that if it returns success the power can't be turned off afterwards during the HW access, which is guaranteed by modeset locks. This isn't always true, so make sure we hold a dedicated reference for the time of the access. Signed-off-by: Imre Deak Reviewed-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1455296121-4742-6-git-send-email-imre.deak@intel.com (cherry picked from commit 4feed0ebfa45879bc422c9a0bfa3cffec82ea60a) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit bacd67d6a36c8905258d08ed6ef41346fa01607c Author: Imre Deak Date: Fri Feb 12 18:55:13 2016 +0200 drm/i915: Ensure the HW is powered when disabling VGA The assumption when adding the intel_display_power_is_enabled() checks was that if it returns success the power can't be turned off afterwards during the HW access, which is guaranteed by modeset locks. This isn't always true, so make sure we hold a dedicated reference for the time of the access. Signed-off-by: Imre Deak Reviewed-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1455296121-4742-5-git-send-email-imre.deak@intel.com (cherry picked from commit 6392f8478e6f119467b1ad06e30e1f078e62efc1) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 013ef6cfc411bfe4a6009eaa7dabb6531bbb41bb Author: Imre Deak Date: Fri Feb 12 18:55:12 2016 +0200 drm/i915/ibx: Ensure the HW is powered during PLL HW readout The assumption when adding the intel_display_power_is_enabled() checks was that if it returns success the power can't be turned off afterwards during the HW access, which is guaranteed by modeset locks. This isn't always true, so make sure we hold a dedicated reference for the time of the access. Signed-off-by: Imre Deak Reviewed-by: Mika Kuoppala Link: http://patchwork.freedesktop.org/patch/msgid/1455296121-4742-4-git-send-email-imre.deak@intel.com (cherry picked from commit 12fda3876d08519bdf6f0acc70dd35754b422ed5) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 9fb84d5a9299ac678dedc56487f394e5f68b91cb Author: Imre Deak Date: Fri Feb 12 18:55:11 2016 +0200 drm/i915: Ensure the HW is powered during display pipe HW readout The assumption when adding the intel_display_power_is_enabled() checks was that if it returns success the power can't be turned off afterwards during the HW access, which is guaranteed by modeset locks. This isn't always true, so make sure we hold a dedicated reference for the time of the access. Signed-off-by: Imre Deak Revieved-by: Mika Kuoppala Link: http://patchwork.freedesktop.org/patch/msgid/1455296121-4742-3-git-send-email-imre.deak@intel.com (cherry picked from commit 1729050eb4bbc192e54069e82069f2811313c1dd) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 67 ++++++++++++++++++++++++++---------- 1 file changed, 48 insertions(+), 19 deletions(-) commit 5af9a454769bb5528ba1e5268e5649414ae832bd Author: Imre Deak Date: Wed Feb 17 14:17:42 2016 +0200 drm/i915: Add helper to get a display power ref if it was already enabled We have many places in the code where we check if a given display power domain is enabled and if so access registers backed by this power domain. We assumed that some modeset lock will prevent the power reference from vanishing in the middle of the HW access, but this assumption doesn't always hold. In such cases we get either the wakeref not held, or an unclaimed register access error message. To fix this in a future-proof way that's independent of other locks wrap any such access with a get_ref_if_enabled()/put_ref() pair. Kudos to Ville and Joonas for the ideas of this new interface. v2: - init the power_domains ptr when declaring it everywhere (Joonas) v3: - don't report the device to be powered if runtime PM is disabled CC: Mika Kuoppala CC: Chris Wilson CC: Joonas Lahtinen CC: Ville Syrjälä Signed-off-by: Imre Deak Reviewed-by: Joonas Lahtinen Link: http://patchwork.freedesktop.org/patch/msgid/1455711462-7442-1-git-send-email-imre.deak@intel.com (cherry picked from commit 09731280028ce03e6a27e1998137f1775a2839f3) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_drv.h | 3 + drivers/gpu/drm/i915/intel_runtime_pm.c | 100 +++++++++++++++++++++++++++++--- 2 files changed, 94 insertions(+), 9 deletions(-) commit c7edd7f99cdaec65e9303b4c9edc19bb595564ed Author: Jean-Philippe Brucker Date: Fri Feb 19 11:04:45 2016 +0100 ARM: 8534/1: virt: fix hyp-stub build for pre-ARMv7 CPUs ARMv6 CPUs do not have virtualisation extensions, but hyp-stub.S is still included into the image to keep it generic. In order to use ARMv7 instructions during HYP initialisation, add -march=armv7-a flag to hyp-stub's build. On an ARMv6 CPU, __hyp_stub_install returns as soon as it detects that the mode isn't HYP, so we will never reach those instructions. Signed-off-by: Jean-Philippe Brucker Signed-off-by: Russell King arch/arm/boot/compressed/Makefile | 2 ++ arch/arm/kernel/Makefile | 1 + 2 files changed, 3 insertions(+) commit 1b17cb796f5d40ffa239c6926385abd83a77a49b Author: Martin Schwidefsky Date: Fri Feb 19 15:29:05 2016 +0100 s390/fpu: signals vs. floating point control register git commit 904818e2f229f3d94ec95f6932a6358c81e73d78 "s390/kernel: introduce fpu-internal.h with fpu helper functions" introduced the fpregs_store / fp_regs_load helper. These function fail to save and restore the floating pointer control registers. The effect is that the FPC is not correctly handled on signal delivery and signal return. Cc: stable@vger.kernel.org # 4.4 Signed-off-by: Martin Schwidefsky arch/s390/include/asm/fpu/internal.h | 2 ++ 1 file changed, 2 insertions(+) commit 342300cc9cd3428bc6bfe5809bfcc1b9a0f06702 Author: Martin Schwidefsky Date: Fri Feb 19 14:44:14 2016 +0100 s390/compat: correct restore of high gprs on signal return git commit 8070361799ae1e3f4ef347bd10f0a508ac10acfb "s390: add support for vector extension" broke 31-bit compat processes in regard to signal handling. The restore_sigregs_ext32() function is used to restore the additional elements from the user space signal frame. Among the additional elements are the upper registers halves for 64-bit register support for 31-bit processes. The copy_from_user that is used to retrieve the high-gprs array from the user stack uses an incorrect length, 8 bytes instead of 64 bytes. This causes incorrect upper register halves to get loaded. Cc: stable@vger.kernel.org # 3.8+ Signed-off-by: Martin Schwidefsky arch/s390/kernel/compat_signal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9ab3ac233a8b4ffcc27c8475b83dee49fc46bc76 Author: Aneesh Kumar K.V Date: Sat Feb 20 20:41:54 2016 +0530 powerpc/mm/hash: Clear the invalid slot information correctly We can get a hash pte fault with 4k base page size and find the pte already inserted with 64K base page size. In that case we need to clear the existing slot information from the old pte. Fix this correctly With THP, we also clear the slot information with respect to all the 64K hash pte mapping that 16MB page. They are all invalid now. This make sure we don't find the slot valid when we fault with 4k base page size. Finding the slot valid should not result in any wrong behavior because we do check again in hash page table for the validity. But we can avoid that check completely. Fixes: a43c0eb8364c022 ("powerpc/mm: Convert 4k hash insert to C") Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/mm/hash64_64k.c | 8 +++++++- arch/powerpc/mm/hugepage-hash64.c | 12 +++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) commit f6bf0fa14cf848ae770e0b7842c9b11ce2f01645 Author: Gavin Shan Date: Fri Feb 12 16:03:05 2016 +1100 powerpc/eeh: Fix partial hotplug criterion During error recovery, the device could be removed as part of the partial hotplug. The criterion used to come with partial hotplug is: if the device driver provides error_detected(), slot_reset() and resume() callbacks, it's immune from hotplug. Otherwise, it's going to experience partial hotplug during EEH recovery. But the criterion isn't correct enough: mlx4_core driver for Mellanox adapters provides error_detected(), slot_reset() callbacks, but resume() isn't there. Those Mellanox adapters won't be to involved in the partial hotplug. This fixes the criterion to a practical one: adpater with driver that provides error_detected(), slot_reset() will be immune from partial hotplug. resume() isn't mandatory. Fixes: f2da4ccf ("powerpc/eeh: More relaxed hotplug criterion") Cc: stable@vger.kernel.org #v4.4+ Signed-off-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/kernel/eeh_driver.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit d856626d3b051a3ad7139ba59463b692c131f844 Merge: dd78dac 90cfde4 Author: David S. Miller Date: Sun Feb 21 22:51:55 2016 -0500 Merge tag 'linux-can-fixes-for-4.5-20160221' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can Marc Kleine-Budde says: ==================== pull-request: can 2016-02-21 this is a pull reqeust of one patch for net/master. The patch is by Gerhard Uttenthaler and fixes a potential tx overflow in the ems_usb driver. ==================== Signed-off-by: David S. Miller commit dd78dac893bc66de0bc241bdf54c2211c2c55567 Merge: 9ca69b7 4ec0b6d Author: David S. Miller Date: Sun Feb 21 22:50:55 2016 -0500 Merge branch 'bnx2x-848xx-phy-fixes' Yuval Mintz says: ==================== bnx2x: Fix 848xx phys This series contains link-related fixes, mostly for the 848xx phys [2 patches are for 84833, and 2 patches are for 84858]. ==================== Signed-off-by: David S. Miller commit 4ec0b6d506186de559b331bd08f8483463116f72 Author: Yuval Mintz Date: Sun Feb 21 15:07:29 2016 +0200 bnx2x: Fix 84833 phy command handler Current initialization sequence is lacking, causing some configurations to fail. Signed-off-by: Yuval Mintz Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c | 81 +++++++++++++++--------- drivers/net/ethernet/broadcom/bnx2x/bnx2x_reg.h | 4 ++ 2 files changed, 56 insertions(+), 29 deletions(-) commit bb1187af658f9ed05a24ab0f25d3b41324176590 Author: Yuval Mintz Date: Sun Feb 21 15:07:28 2016 +0200 bnx2x: Fix led setting for 84858 phy. Signed-off-by: Yuval Mintz Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c | 94 ++++++++++++++++++++++-- drivers/net/ethernet/broadcom/bnx2x/bnx2x_reg.h | 2 + 2 files changed, 91 insertions(+), 5 deletions(-) commit 27ba2d2df0d7882008d9cf21f7dc05711415eeac Author: Yuval Mintz Date: Sun Feb 21 15:07:27 2016 +0200 bnx2x: Correct 84858 PHY fw version The phy's firmware version isn't being parsed properly as it's currently parsed like the rest of the 848xx phys. Signed-off-by: Yuval Mintz Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c | 92 ++++++++++++++++++++---- 1 file changed, 79 insertions(+), 13 deletions(-) commit 512ab9a001eb88e197859cefbb89b609a971251f Author: Yuval Mintz Date: Sun Feb 21 15:07:26 2016 +0200 bnx2x: Fix 84833 RX CRC There's a problem in current 84833 phy configuration - in case 1Gb link is configured and jumbo-sized packets are being used, device will experience RX crc errors. Signed-off-by: Yuval Mintz Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c | 26 ++++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit 1e411f0138a1b05e805e2043f73f546dba651e27 Author: Yuval Mintz Date: Sun Feb 21 15:07:25 2016 +0200 bnx2x: Fix link-forcing for KR2 Currently, when link is using KR2 it cannot be forced to any speed other than 20g. Signed-off-by: Yuval Mintz Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 9ca69b705486a6fd5c3ecf0558b2203c376ec048 Merge: b5a099c 3bd7594 Author: David S. Miller Date: Sun Feb 21 22:46:26 2016 -0500 Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth Johan Hedberg says: ==================== pull request: bluetooth 2016-02-20 Here's an important patch for 4.5 which fixes potential invalid pointer access when processing completed Bluetooth HCI commands. Please let me know if there are any issues pulling. Thanks. ==================== Signed-off-by: David S. Miller commit b5a099c67a1c36b91356624ce86eb3f9f48a82c7 Author: Robert Jarzmik Date: Sat Feb 20 21:45:26 2016 +0100 net: ethernet: davicom: fix devicetree irq resource The dm9000 driver doesn't work in at least one device-tree configuration, spitting an error message on irq resource : [    1.062495] dm9000 8000000.ethernet: insufficient resources [    1.068439] dm9000 8000000.ethernet: not found (-2). [    1.073451] dm9000: probe of 8000000.ethernet failed with error -2 The reason behind is that the interrupt might be provided by a gpio controller, not probed when dm9000 is probed, and needing the probe deferral mechanism to apply. Currently, the interrupt is directly taken from resources. This patch changes this to use the more generic platform_get_irq(), which handles the deferral. Moreover, since commit Fixes: 7085a7401ba5 ("drivers: platform: parse IRQ flags from resources"), the interrupt trigger flags are honored in platform_get_irq(), so remove the needless code in dm9000. Signed-off-by: Robert Jarzmik Acked-by: Marcel Ziswiler Cc: Sergei Shtylyov Tested-by: Sergei Ianovich Signed-off-by: David S. Miller drivers/net/ethernet/davicom/dm9000.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) commit 1ad5466812c0b4d7851f98573be6a332e82bc920 Author: Ken Kawasaki Date: Sat Feb 20 19:14:36 2016 +0900 fmvj18x_cs: fix incorrect indexing of dev->dev_addr[] when copying the MAC address fix incorrect indexing of dev->dev_addr[] when copying the MAC address of FMV-J182 at buf[5]. Signed-off-by: Ken Kawasaki Signed-off-by: David S. Miller drivers/net/ethernet/fujitsu/fmvj18x_cs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 14112ca5625db8a7fbdc724783510751577a8a1b Author: Shrikrishna Khare Date: Fri Feb 19 11:19:52 2016 -0800 Driver: Vmxnet3: Update Rx ring 2 max size Device emulation supports max size of 4096. Signed-off-by: Shrikrishna Khare Signed-off-by: Bhavesh Davda Signed-off-by: David S. Miller drivers/net/vmxnet3/vmxnet3_defs.h | 2 +- drivers/net/vmxnet3/vmxnet3_int.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit d3e17183b9820ccf3c1aacc5ec5459a23a574ba7 Merge: 3301be3 0632448 Author: David S. Miller Date: Sun Feb 21 22:03:21 2016 -0500 Merge branch 'netcp-fixes' Murali Karicheri says: ==================== net: ti: netcp: restore get/set_pad_info() functionality This series fixes a regression and add some improvements for the ease of maintainance. Incorporated comments against v1. Changelogs: v2 : combined 2-3 into one patch as this involves a header change fixed a parse warning in 3/4 per comment from Arnd. Removed Sign-off from Arnd against 1/4 added comments in 3/3 to alert on the usage of sw data per review comments v1 : added 2-4 to accomodate feedback received from review v0 : initial version to fix the regression (From Grygorii) ==================== Signed-off-by: David S. Miller commit 0632448134d0ac1450a19d26f90948fde3b558ad Author: Karicheri, Muralidharan Date: Fri Feb 19 12:58:44 2016 -0500 net: netcp: rework the code for get/set sw_data in dma desc SW data field in descriptor can be used by software to hold private data for the driver. As there are 4 words available for this purpose, use separate macros to place it or retrieve the same to/from descriptors. Also do type cast of data types accordingly. Cc: Wingman Kwok Cc: Mugunthan V N CC: Arnd Bergmann CC: Grygorii Strashko CC: David Laight Signed-off-by: Murali Karicheri Acked-by: Arnd Bergmann Signed-off-by: David S. Miller drivers/net/ethernet/ti/netcp_core.c | 72 +++++++++++++++++++++++++++--------- 1 file changed, 55 insertions(+), 17 deletions(-) commit b1cb86ae0e5951e9747ec7a5b33d1c1217791b75 Author: Karicheri, Muralidharan Date: Fri Feb 19 12:58:43 2016 -0500 soc: ti: knav_dma: rename pad in struct knav_dma_desc to sw_data Rename the pad to sw_data as per description of this field in the hardware spec(refer sprugr9 from www.ti.com). Latest version of the document is at http://www.ti.com/lit/ug/sprugr9h/sprugr9h.pdf and section 3.1 Host Packet Descriptor describes this field. Define and use a constant for the size of sw_data field similar to other fields in the struct for desc and document the sw_data field in the header. As the sw_data is not touched by hw, it's type can be changed to u32. Rename the helpers to match with the updated dma desc field sw_data. Cc: Wingman Kwok Cc: Mugunthan V N CC: Arnd Bergmann CC: Grygorii Strashko CC: David Laight Signed-off-by: Murali Karicheri Acked-by: Arnd Bergmann Signed-off-by: David S. Miller drivers/net/ethernet/ti/netcp_core.c | 40 +++++++++++++++++++----------------- include/linux/soc/ti/knav_dma.h | 4 +++- 2 files changed, 24 insertions(+), 20 deletions(-) commit 9ecfe875c4f311618cc918aded716017dcd2ddf1 Author: Karicheri, Muralidharan Date: Fri Feb 19 12:58:42 2016 -0500 net: ti: netcp: restore get/set_pad_info() functionality The commit 899077791403 ("netcp: try to reduce type confusion in descriptors") introduces a regression in Kernel 4.5-rc1 and it breaks get/set_pad_info() functionality. The TI NETCP driver uses pad0 and pad1 fields of knav_dma_desc to store DMA/MEM buffer pointer and buffer size respectively. And in both cases for Keystone 2 the pointer type size is 32 bit regardless of LAPE enabled or not, because CONFIG_ARCH_DMA_ADDR_T_64BIT originally is not expected to be defined. Unfortunately, above commit changed buffer's pointers save/restore code (get/set_pad_info()) and added intermediate conversation to u64 which works incorrectly on 32bit Keystone 2 and causes TI NETCP driver crash in RX/TX path due to "Unable to handle kernel NULL pointer" exception. This issue was reported and discussed in [1]. Hence, fix it by partially reverting above commit and restoring get/set_pad_info() functionality as it was before. [1] https://www.mail-archive.com/netdev@vger.kernel.org/msg95361.html Cc: Wingman Kwok Cc: Mugunthan V N CC: David Laight CC: Arnd Bergmann Reported-by: Franklin S Cooper Jr Signed-off-by: Grygorii Strashko Signed-off-by: Murali Karicheri Acked-by: Arnd Bergmann Signed-off-by: David S. Miller drivers/net/ethernet/ti/netcp_core.c | 59 +++++++++++------------------------- 1 file changed, 18 insertions(+), 41 deletions(-) commit 56e5fd8feb286ab71f4ca7674505b0d17967376d Author: Fabio Estevam Date: Sun Feb 21 11:35:00 2016 -0300 ASoC: fsl_ssi: Go back to explicit register defaults Commit 5c408fee2546 ("ASoC: fsl_ssi: remove explicit register defaults") causes the driver to fail to probe: fsl-ssi-dai 2028000.ssi: No cache defaults, reading back from HW fsl-ssi-dai 2028000.ssi: Failed to init register map fsl-ssi-dai: probe of 2028000.ssi failed with error -22 , so revert this commit. Reported-by: Mika Penttilä Signed-off-by: Fabio Estevam Signed-off-by: Mark Brown sound/soc/fsl/fsl_ssi.c | 42 ++++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 22 deletions(-) commit 3301be32d4ba95136ff52fb0aee2bdb6077f40b1 Author: Ian Campbell Date: Fri Feb 19 11:44:51 2016 +0000 MAINTAINERS: Drop myself as xen netback maintainer Wei has been picking this up for quite a while now. Signed-off-by: Ian Campbell Cc: Wei Liu Acked-by: Wei Liu Signed-off-by: David S. Miller MAINTAINERS | 1 - 1 file changed, 1 deletion(-) commit d9749fb5942f51555dc9ce1ac0dbb1806960a975 Author: Neil Horman Date: Thu Feb 18 16:10:57 2016 -0500 sctp: Fix port hash table size computation Dmitry Vyukov noted recently that the sctp_port_hashtable had an error in its size computation, observing that the current method never guaranteed that the hashsize (measured in number of entries) would be a power of two, which the input hash function for that table requires. The root cause of the problem is that two values need to be computed (one, the allocation order of the storage requries, as passed to __get_free_pages, and two the number of entries for the hash table). Both need to be ^2, but for different reasons, and the existing code is simply computing one order value, and using it as the basis for both, which is wrong (i.e. it assumes that ((1< Reported-by: Dmitry Vyukov CC: Dmitry Vyukov CC: Vladislav Yasevich CC: "David S. Miller" Signed-off-by: David S. Miller net/sctp/protocol.c | 46 ++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 38 insertions(+), 8 deletions(-) commit 4328daa2e79ed904a42ce00a9f38b9c36b44b21a Author: Mike Snitzer Date: Sun Feb 21 19:09:22 2016 -0500 dm: fix dm_rq_target_io leak on faults with .request_fn DM w/ blk-mq paths Using request-based DM mpath configured with the following stacking (.request_fn DM mpath ontop of scsi-mq paths): echo Y > /sys/module/scsi_mod/parameters/use_blk_mq echo N > /sys/module/dm_mod/parameters/use_blk_mq 'struct dm_rq_target_io' would leak if a request is requeued before a blk-mq clone is allocated (or fails to allocate). free_rq_tio() wasn't being called. kmemleak reported: unreferenced object 0xffff8800b90b98c0 (size 112): comm "kworker/7:1H", pid 5692, jiffies 4295056109 (age 78.589s) hex dump (first 32 bytes): 00 d0 5c 2c 03 88 ff ff 40 00 bf 01 00 c9 ff ff ..\,....@....... e0 d9 b1 34 00 88 ff ff 00 00 00 00 00 00 00 00 ...4............ backtrace: [] kmemleak_alloc+0x4e/0xb0 [] kmem_cache_alloc+0xc3/0x1e0 [] mempool_alloc_slab+0x15/0x20 [] mempool_alloc+0x6e/0x170 [] dm_old_prep_fn+0x3c/0x180 [dm_mod] [] blk_peek_request+0x168/0x290 [] dm_request_fn+0xb2/0x1b0 [dm_mod] [] __blk_run_queue+0x33/0x40 [] blk_delay_work+0x25/0x40 [] process_one_work+0x14f/0x3d0 [] worker_thread+0x125/0x4b0 [] kthread+0xd8/0xf0 [] ret_from_fork+0x3f/0x70 [] 0xffffffffffffffff crash> struct -o dm_rq_target_io struct dm_rq_target_io { ... } SIZE: 112 Fixes: e5863d9ad7 ("dm: allocate requests in target when stacking on blk-mq devices") Cc: stable@vger.kernel.org # 4.0+ Signed-off-by: Mike Snitzer drivers/md/dm.c | 2 ++ 1 file changed, 2 insertions(+) commit bf5b1f352cc1ad1c53673ebeb76b8128da0e079f Merge: 49b245e aeb67ae Author: Thomas Gleixner Date: Sun Feb 21 20:51:26 2016 +0100 Merge tag 'irqchip-urgent-4.5' of git://git.infradead.org/users/jcooper/linux into irq/urgent Pull irqchip fixes for v4.5 from Jason Cooper: - mxs: Add a missing set_handle_irq() commit 9aafabc7fece13c8e2a1f680908c73ee19f0f79b Author: Ivaylo Dimitrov Date: Tue Feb 2 14:47:37 2016 +0200 power: bq27xxx_battery: Restore device name Patch <703df6c09795> ("power: bq27xxx_battery: Reorganize I2C into a module") has removed the device name numbering from bq27xxx_battery_i2c_probe. Fix that by restoring the code. Fixes: 703df6c097956d17a818e63961c82e8e9eef9fef Signed-off-by: Ivaylo Dimitrov Reviewed-by: Pali Rohár Tested-by: Pali Rohár Signed-off-by: Sebastian Reichel drivers/power/bq27xxx_battery_i2c.c | 37 ++++++++++++++++++++++++++++++++--- include/linux/power/bq27xxx_battery.h | 1 + 2 files changed, 35 insertions(+), 3 deletions(-) commit e35a49b163fa2108cf82c6f07a3fbe371e468878 Author: Sebastian Reichel Date: Sun Jan 17 21:36:03 2016 +0100 MAINTAINERS: update bq27xxx driver Update reviewers for bq27xxx, so that Pali and Andrew are reviewers with status and maintainer inherited from the power supply subsystem entry. Signed-off-by: Sebastian Reichel Acked-by: Pali Rohár Acked-by: Andrew F. Davis MAINTAINERS | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 90cfde46586d2286488d8ed636929e936c0c9ab2 Author: Gerhard Uttenthaler Date: Tue Dec 22 17:29:16 2015 +0100 can: ems_usb: Fix possible tx overflow This patch fixes the problem that more CAN messages could be sent to the interface as could be send on the CAN bus. This was more likely for slow baud rates. The sleeping _start_xmit was woken up in the _write_bulk_callback. Under heavy TX load this produced another bulk transfer without checking the free_slots variable and hence caused the overflow in the interface. Signed-off-by: Gerhard Uttenthaler Cc: linux-stable Signed-off-by: Marc Kleine-Budde drivers/net/can/usb/ems_usb.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) commit 7a64cd887fdb97f074c3fda03bee0bfb9faceac3 Author: Lisa Du Date: Wed Feb 17 09:32:52 2016 +0800 drivers: android: correct the size of struct binder_uintptr_t for BC_DEAD_BINDER_DONE There's one point was missed in the patch commit da49889deb34 ("staging: binder: Support concurrent 32 bit and 64 bit processes."). When configure BINDER_IPC_32BIT, the size of binder_uintptr_t was 32bits, but size of void * is 64bit on 64bit system. Correct it here. Signed-off-by: Lisa Du Signed-off-by: Nicolas Boichat Fixes: da49889deb34 ("staging: binder: Support concurrent 32 bit and 64 bit processes.") Cc: Acked-by: Olof Johansson Signed-off-by: Greg Kroah-Hartman drivers/android/binder.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e5bdfd50d6f76077bf8441d130c606229e100d40 Author: Greg Kroah-Hartman Date: Sat Feb 20 14:19:34 2016 -0800 Revert "usb: hub: do not clear BOS field during reset device" This reverts commit d8f00cd685f5c8e0def8593e520a7fef12c22407. Tony writes: This upstream commit is causing an oops: d8f00cd685f5 ("usb: hub: do not clear BOS field during reset device") This patch has already been included in several -stable kernels. Here are the affected kernels: 4.5.0-rc4 (current git) 4.4.2 4.3.6 (currently in review) 4.1.18 3.18.27 3.14.61 How to reproduce the problem: Boot kernel with slub debugging enabled (otherwise memory corruption will cause random oopses later instead of immediately) Plug in USB 3.0 disk to xhci USB 3.0 port dd if=/dev/sdc of=/dev/null bs=65536 (where /dev/sdc is the USB 3.0 disk) Unplug USB cable while dd is still going Oops is immediate: Reported-by: Tony Battersby Cc: Du, Changbin Signed-off-by: Greg Kroah-Hartman drivers/usb/core/hub.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit f9a96d2e7e46ed1ece71cf5b34ad9fe2492bacc5 Merge: 3c7dc6a d061c1c Author: Greg Kroah-Hartman Date: Sat Feb 20 14:18:34 2016 -0800 Merge tag 'usb-serial-4.5-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-linus Johan writes: USB-serial fixes for v4.5-rc5 Here are some new device ids. Signed-off-by: Johan Hovold commit 3c7dc6a079182bdab5ff7a66307bd63c2be837eb Merge: 18558ca 8c0614c Author: Greg Kroah-Hartman Date: Sat Feb 20 14:13:55 2016 -0800 Merge tag 'usb-ci-v4.5-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb into usb-linus Peter writes: Some tiny bug fixes for chipidea driver commit 81f70ba233d5f660e1ea5fe23260ee323af5d53a Author: Linus Torvalds Date: Sat Feb 20 13:39:35 2016 -0800 Linux 4.5-rc5 Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0389075ecfb6231818de9b0225d3a5a21a661171 Merge: 06b74c6 f4eafd8 Author: Linus Torvalds Date: Sat Feb 20 09:32:40 2016 -0800 Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 fixes from Ingo Molnar: "This is unusually large, partly due to the EFI fixes that prevent accidental deletion of EFI variables through efivarfs that may brick machines. These fixes are somewhat involved to maintain compatibility with existing install methods and other usage modes, while trying to turn off the 'rm -rf' bricking vector. Other fixes are for large page ioremap()s and for non-temporal user-memcpy()s" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/mm: Fix vmalloc_fault() to handle large pages properly hpet: Drop stale URLs x86/uaccess/64: Handle the caching of 4-byte nocache copies properly in __copy_user_nocache() x86/uaccess/64: Make the __copy_user_nocache() assembly code more readable lib/ucs2_string: Correct ucs2 -> utf8 conversion efi: Add pstore variables to the deletion whitelist efi: Make efivarfs entries immutable by default efi: Make our variable validation list include the guid efi: Do variable name validation tests in utf8 efi: Use ucs2_as_utf8 in efivarfs instead of open coding a bad version lib/ucs2_string: Add ucs2 -> utf8 helper functions commit 06b74c658c595e4ef9fd5746f927a1cb6c3a59d5 Merge: e6a1c1e 059fcd8 Author: Linus Torvalds Date: Sat Feb 20 09:30:42 2016 -0800 Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull perf fixes from Ingo Molnar: "A handful of CPU hotplug related fixes" * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: perf/core: Plug potential memory leak in CPU_UP_PREPARE perf/core: Remove the bogus and dangerous CPU_DOWN_FAILED hotplug state perf/core: Remove bogus UP_CANCELED hotplug state perf/x86/amd/uncore: Plug reference leak commit e6a1c1e9ddcc873c33833d5c1fc69f22b1838962 Merge: da6b736 6ecad91 Author: Linus Torvalds Date: Sat Feb 20 09:22:11 2016 -0800 Merge tag 'powerpc-4.5-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux Pull powerpc fixes from Michael Ellerman: - Fix build error on 32-bit with checkpoint restart from Aneesh Kumar - Fix dedotify for binutils >= 2.26 from Andreas Schwab - Don't trace hcalls on offline CPUs from Denis Kirjanov - eeh: Fix stale cached primary bus from Gavin Shan - eeh: Fix stale PE primary bus from Gavin Shan - mm: Fix Multi hit ERAT cause by recent THP update from Aneesh Kumar K.V - ioda: Set "read" permission when "write" is set from Alexey Kardashevskiy * tag 'powerpc-4.5-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: powerpc/ioda: Set "read" permission when "write" is set powerpc/mm: Fix Multi hit ERAT cause by recent THP update powerpc/powernv: Fix stale PE primary bus powerpc/eeh: Fix stale cached primary bus powerpc/pseries: Don't trace hcalls on offline CPUs powerpc: Fix dedotify for binutils >= 2.26 powerpc/book3s_32: Fix build error with checkpoint restart commit da6b7366dbfc93f59873e252b8d53f17fb47a802 Merge: 37aa4da ee1cdcd Author: Linus Torvalds Date: Sat Feb 20 09:19:56 2016 -0800 Merge tag 'dmaengine-fix-4.5-rc5' of git://git.infradead.org/users/vkoul/slave-dma Pull dmaengine fixes from Vinod Koul: "A few fixes for drivers, nothing major here. Fixes are: iotdma fix to restart channels, new ID for wildcat PCH, residue fix for edma, disable irq for non-cyclic in dw" * tag 'dmaengine-fix-4.5-rc5' of git://git.infradead.org/users/vkoul/slave-dma: dmaengine: dw: disable BLOCK IRQs for non-cyclic xfer dmaengine: edma: fix residue race for cyclic dmaengine: dw: pci: add ID for WildcatPoint PCH dmaengine: IOATDMA: fix timer code that continues to restart channels during idle commit 37aa4dac99418efa17329d98c2a0ed372ed9aa9e Merge: a703f42 4462b4b Author: Linus Torvalds Date: Sat Feb 20 09:16:51 2016 -0800 Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux Pull clk driver fixes from Stephen Boyd: "An assortment of vendor specific clk drivers fixes, most notably fallout from adding Tegra210 and rockchip rk3036/rk3368 drivers this cycle. There's also the random smattering of sparse/checker fixes, a build "fix" to get the Tango clk driver to compile because the Kconfig symbol was renamed after the fact, and a clk gpio fix for a patch mismerge" * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (28 commits) clk: gpio: Really allow an optional clock= DT property Revert "clk: qcom: Specify LE device endianness" clk: versatile: mask VCO bits before writing clk: tegra: super: Fix sparse warnings for functions not declared as static clk: tegra: Fix sparse warnings for functions not declared as static clk: tegra: Fix sparse warning for pll_m clk: tegra: Use definition for pll_u override bit clk: tegra: Fix warning caused by pll_u failing to lock clk: tegra: Fix clock sources for Tegra210 EMC clk: tegra: Add the APB2APE audio clock on Tegra210 clk: tegra: Add missing of_node_put() clk: tegra: Fix PLLE SS coefficients clk: tegra: Fix typos around clearing PLLE bits during enable clk: tegra: Do not disable PLLE when under hardware control clk: tegra: Fix pllx dyn step calculation clk: tegra: pll: Fix potential sleeping-while-atomic clk: tegra: Fix the misnaming of nvenc from msenc clk: tegra: Fix naming of MISC registers clk: tango4: rename ARCH_TANGOX to ARCH_TANGO clk: scpi: Fix checking return value of platform_device_register_simple() ... commit a703f42d6caa724236521a5a7dcf4ab637483b66 Merge: 59ceeaa 4fbbed4 Author: Linus Torvalds Date: Sat Feb 20 09:13:18 2016 -0800 Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux Pull more drm fixes from Dave Airlie: "Some more fixes trickled in: A bunch of VC4 ones since it's a pretty new driver not much chance of regressions, and it fixes GPU resets. Also one atomic fix, one set of fixes for a common bug in TTM cleanup, and one i915 hotplug fix" * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: drm/nouveau: use post-decrement in error handling drm/atomic: Allow for holes in connector state, v2. drm/i915: Fix hpd live status bits for g4x drm/vc4: Use runtime PM to power cycle the device when the GPU hangs. drm/vc4: Enable runtime PM. drm/vc4: Fix spurious GPU resets due to BO reuse. drm/vc4: Drop error message on seqno wait timeouts. drm/vc4: Fix -ERESTARTSYS error return from BO waits. drm/vc4: Return an ERR_PTR from BO creation instead of NULL. drm/vc4: Fix the clear color for the first tile rendered. drm/vc4: Validate that WAIT_BO padding is cleared. drm/radeon: use post-decrement in error handling drm/amdgpu: use post-decrement in error handling commit 59ceeaaf355fa0fb16558ef7c24413c804932ada Author: Simon Guinot Date: Thu Sep 10 00:15:18 2015 +0200 kernel/resource.c: fix muxed resource handling in __request_region() In __request_region, if a conflict with a BUSY and MUXED resource is detected, then the caller goes to sleep and waits for the resource to be released. A pointer on the conflicting resource is kept. At wake-up this pointer is used as a parent to retry to request the region. A first problem is that this pointer might well be invalid (if for example the conflicting resource have already been freed). Another problem is that the next call to __request_region() fails to detect a remaining conflict. The previously conflicting resource is passed as a parameter and __request_region() will look for a conflict among the children of this resource and not at the resource itself. It is likely to succeed anyway, even if there is still a conflict. Instead, the parent of the conflicting resource should be passed to __request_region(). As a fix, this patch doesn't update the parent resource pointer in the case we have to wait for a muxed region right after. Reported-and-tested-by: Vincent Pelletier Signed-off-by: Simon Guinot Tested-by: Vincent Donnefort Cc: stable@kernel.org Signed-off-by: Linus Torvalds kernel/resource.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 3bd7594e69bd97c962faa6a5ae15dd8c6c082636 Author: Douglas Anderson Date: Fri Feb 19 14:25:21 2016 -0800 Bluetooth: hci_core: Avoid mixing up req_complete and req_complete_skb In commit 44d271377479 ("Bluetooth: Compress the size of struct hci_ctrl") we squashed down the size of the structure by using a union with the assumption that all users would use the flag to determine whether we had a req_complete or a req_complete_skb. Unfortunately we had a case in hci_req_cmd_complete() where we weren't looking at the flag. This can result in a situation where we might be storing a hci_req_complete_skb_t in a hci_req_complete_t variable, or vice versa. During some testing I found at least one case where the function hci_req_sync_complete() was called improperly because the kernel thought that it didn't require an SKB. Looking through the stack in kgdb I found that it was called by hci_event_packet() and that hci_event_packet() had both of its locals "req_complete" and "req_complete_skb" pointing to the same place: both to hci_req_sync_complete(). Let's make sure we always check the flag. For more details on debugging done, see . Fixes: 44d271377479 ("Bluetooth: Compress the size of struct hci_ctrl") Signed-off-by: Douglas Anderson Acked-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_core.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 7ae8fd0351f912b075149a1e03a017be8b903b9a Author: Maxim Patlasov Date: Tue Feb 16 11:45:33 2016 -0800 fs/pnode.c: treat zero mnt_group_id-s as unequal propagate_one(m) calculates "type" argument for copy_tree() like this: > if (m->mnt_group_id == last_dest->mnt_group_id) { > type = CL_MAKE_SHARED; > } else { > type = CL_SLAVE; > if (IS_MNT_SHARED(m)) > type |= CL_MAKE_SHARED; > } The "type" argument then governs clone_mnt() behavior with respect to flags and mnt_master of new mount. When we iterate through a slave group, it is possible that both current "m" and "last_dest" are not shared (although, both are slaves, i.e. have non-NULL mnt_master-s). Then the comparison above erroneously makes new mount shared and sets its mnt_master to last_source->mnt_master. The patch fixes the problem by handling zero mnt_group_id-s as though they are unequal. The similar problem exists in the implementation of "else" clause above when we have to ascend upward in the master/slave tree by calling: > last_source = last_source->mnt_master; > last_dest = last_source->mnt_parent; proper number of times. The last step is governed by "n->mnt_group_id != last_dest->mnt_group_id" condition that may lie if both are zero. The patch fixes this case in the same way as the former one. [AV: don't open-code an obvious helper...] Signed-off-by: Maxim Patlasov Signed-off-by: Al Viro fs/pnode.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 0bacbe528e26422e424d110ebda4ec68ea0fd5eb Author: Al Viro Date: Tue Feb 2 02:28:05 2016 +0000 affs_do_readpage_ofs(): just use kmap_atomic() around memcpy() It forgets kunmap() on a failure exit, but there's really no point keeping the page kmapped at all - after all, what we are doing is a bunch of memcpy() into the parts of page, so kmap_atomic()/kunmap_atomic() just around those memcpy() is enough. Spotted-by: Insu Yun Signed-off-by: Al Viro fs/affs/file.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 0e9a7da51b028aee7a72c95096c99fe5ea2a01f0 Author: Mateusz Guzik Date: Thu Feb 4 02:56:30 2016 +0100 xattr handlers: plug a lock leak in simple_xattr_list The code could leak xattrs->lock on error. Problem introduced with 786534b92f3ce68f4 "tmpfs: listxattr should include POSIX ACL xattrs". Signed-off-by: Mateusz Guzik Signed-off-by: Al Viro fs/xattr.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 2feb55f89096b22e2de066e411a3263647211987 Author: Wouter van Kesteren Date: Tue Feb 16 22:20:59 2016 +0100 fs: allow no_seek_end_llseek to actually seek The user-visible impact of the issue is for example that without this patch sensors-detect breaks when trying to seek in /dev/cpu/0/cpuid. '~0ULL' is a 'unsigned long long' that when converted to a loff_t, which is signed, gets turned into -1. later in vfs_setpos we have 'if (offset > maxsize)', which makes it always return EINVAL. Fixes: b25472f9b961 ("new helpers: no_seek_end_llseek{,_size}()") Signed-off-by: Wouter van Kesteren Reviewed-by: Andreas Dilger Signed-off-by: Al Viro fs/read_write.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d07c0278da1f4cfc91c3d46d0d07a0d13a949892 Author: Jaedon Shin Date: Fri Feb 19 13:48:50 2016 +0900 net: bcmgenet: Fix internal PHY link state The PHY link state is not chaged in GENETv2 caused by the previous commit 49f7a471e4d1 ("net: bcmgenet: Properly configure PHY to ignore interrupt") was set to PHY_IGNORE_INTERRUPT in bcmgenet_mii_probe(). The internal PHY should use phy_mac_interrupt() when not in use PHY_POLL. The statement for phy_mac_interrupt() has two conditions. The first condition to check GENET_HAS_MDIO_INTR is not related PHY link state, so this patch removes it. Fixes: 49f7a471e4d1 ("net: bcmgenet: Properly configure PHY to ignore interrupt") Signed-off-by: Jaedon Shin Acked-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/genet/bcmgenet.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 18eceb818dc37bbc783ec7ef7703f270cc6cd281 Author: Rainer Weikusat Date: Thu Feb 18 12:39:46 2016 +0000 af_unix: Don't use continue to re-execute unix_stream_read_generic loop The unix_stream_read_generic function tries to use a continue statement to restart the receive loop after waiting for a message. This may not work as intended as the caller might use a recvmsg call to peek at control messages without specifying a message buffer. If this was the case, the continue will cause the function to return without an error and without the credential information if the function had to wait for a message while it had returned with the credentials otherwise. Change to using goto to restart the loop without checking the condition first in this case so that credentials are returned either way. Signed-off-by: Rainer Weikusat Acked-by: Hannes Frederic Sowa Signed-off-by: David S. Miller net/unix/af_unix.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit b5f0549231ffb025337be5a625b0ff9f52b016f0 Author: Dmitry V. Levin Date: Fri Feb 19 04:27:48 2016 +0300 unix_diag: fix incorrect sign extension in unix_lookup_by_ino The value passed by unix_diag_get_exact to unix_lookup_by_ino has type __u32, but unix_lookup_by_ino's argument ino has type int, which is not a problem yet. However, when ino is compared with sock_i_ino return value of type unsigned long, ino is sign extended to signed long, and this results to incorrect comparison on 64-bit architectures for inode numbers greater than INT_MAX. This bug was found by strace test suite. Fixes: 5d3cae8bc39d ("unix_diag: Dumping exact socket core") Signed-off-by: Dmitry V. Levin Acked-by: Cong Wang Signed-off-by: David S. Miller net/unix/diag.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5a0e2f2622eb65b59bcefb01c5c475af4fab0e6d Merge: 8d2c3ab ba41d46 Author: David S. Miller Date: Fri Feb 19 23:39:32 2016 -0500 Merge branch 'bnxt_en-fixes' Michael Chan says: ==================== bnxt_en: Phy related fixes. 3 small patches to fix PHY related code. ==================== Signed-off-by: David S. Miller commit ba41d46fe03223279054e58d570069fdc62fb768 Author: Michael Chan Date: Fri Feb 19 19:43:21 2016 -0500 bnxt_en: Failure to update PHY is not fatal condition. If we fail to update the PHY, we should print a warning and continue. The current code to exit is buggy as it has not freed up the NIC resources yet. Signed-off-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit de73018fb5474b33dc4f6d6b8d889e40232e325b Author: Michael Chan Date: Fri Feb 19 19:43:20 2016 -0500 bnxt_en: Remove unnecessary call to update PHY settings. Fix bnxt_update_phy_setting() to check the correct parameters when determining whether to update the PHY. Requested line speed/duplex should only be checked for forced speed mode. This avoids unnecessary link interruptions when loading the driver. Signed-off-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 035a1539ab63bfdb284bdf6e8459e35897c60564 Author: Michael Chan Date: Fri Feb 19 19:43:19 2016 -0500 bnxt_en: Poll link at the end of __bnxt_open_nic(). When shutting down the NIC, we shutdown async event processing before freeing all the rings. If there is a link change event during reset, the driver may miss it and the link state may be incorrect after the NIC is re-opened. Poll the link at the end of __bnxt_open_nic() to get the correct link status. Signed-off-by Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt.c | 1 + 1 file changed, 1 insertion(+) commit 000e0949148382c4962489593a2f05504c2a6771 Author: Nishanth Menon Date: Fri Feb 19 18:09:51 2016 -0600 hwmon: (gpio-fan) Remove un-necessary speed_index lookup for thermal hook Thermal hook gpio_fan_get_cur_state is only interested in knowing the current speed index that was setup in the system, this is already available as part of fan_data->speed_index which is always set by set_fan_speed. Using get_fan_speed_index is useful when we have no idea about the fan speed configuration (for example during fan_ctrl_init). When thermal framework invokes gpio_fan_get_cur_state=>get_fan_speed_index via gpio_fan_get_cur_state especially in a polled configuration for thermal governor, we basically hog the i2c interface to the extent that other functions fail to get any traffic out :(. Instead, just provide the last state set in the driver - since the gpio fan driver is responsible for the fan state immaterial of override, the fan_data->speed_index should accurately reflect the state. Fixes: b5cf88e46bad ("(gpio-fan): Add thermal control hooks") Reported-by: Tony Lindgren Cc: Guenter Roeck Cc: Eduardo Valentin Signed-off-by: Nishanth Menon Cc: stable@vger.kernel.org Signed-off-by: Guenter Roeck drivers/hwmon/gpio-fan.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 747ffe11b440ef9ea752888806d3aac677ca52a4 Author: Dan Williams Date: Fri Feb 19 15:21:14 2016 -0800 libnvdimm, tools/testing/nvdimm: fix 'ars_status' output buffer sizing Use the output length specified in the command to size the receive buffer rather than the arbitrary 4K limit. This bug was hiding the fact that the ndctl implementation of ndctl_bus_cmd_new_ars_status() was not specifying an output buffer size. Cc: Cc: Vishal Verma Signed-off-by: Dan Williams drivers/acpi/nfit.c | 13 +++++++------ drivers/nvdimm/bus.c | 8 ++++---- include/linux/libnvdimm.h | 1 - tools/testing/nvdimm/test/nfit.c | 8 ++++++-- 4 files changed, 17 insertions(+), 13 deletions(-) commit e1d09dc0ccc6c91e3916476f636edb76da1f65bb Author: Mario Kleiner Date: Fri Feb 19 02:06:39 2016 +0100 drm/amdgpu: Don't hang in amdgpu_flip_work_func on disabled crtc. This fixes a regression introduced in Linux 4.4. This is a port of the same fix for radeon-kms in the patch "drm/radeon: Don't hang in radeon_flip_work_func on disabled crtc. (v2)" Limit the amount of time amdgpu_flip_work_func can delay programming a page flip, by both limiting the maximum amount of time per wait cycle and the maximum number of wait cycles. Continue the flip if the limit is exceeded, even if that may result in a visual or timing glitch. This is to prevent a hang of page flips, as reported in fdo bug #93746: Disconnecting a DisplayPort display in parallel to a kms pageflip getting queued can cause the following hang of page flips and thereby an unusable desktop: 1. kms pageflip ioctl() queues pageflip -> queues execution of amdgpu_flip_work_func. 2. Hotunplug of display causes the driver to DPMS OFF the unplugged display. Display engine shuts down, scanout no longer moves, but stays at its resting position at start line of vblank. 3. amdgpu_flip_work_func executes while crtc is off, and due to the non-moving scanout position, the new flip delay code introduced into Linux 4.4 by commit 8e36f9d33c13 ("drm/amdgpu: Fixup hw vblank counter/ts..") enters an infinite wait loop. 4. After reconnecting the display, the pageflip continues to hang in 3. and the display doesn't update its view of the desktop. This patch fixes the Linux 4.4 regression from fdo bug #93746 Reported-by: Bernd Steinhauser Signed-off-by: Mario Kleiner Cc: # 4.4+ Cc: Michel Dänzer Cc: Alex Deucher Reviewed-by: Michel Dänzer Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) commit 2b8341b3f917c108b47f6a8a771a40d226c57883 Author: Mario Kleiner Date: Fri Feb 19 02:06:38 2016 +0100 drm/radeon: Don't hang in radeon_flip_work_func on disabled crtc. (v2) This fixes a regression introduced in Linux 4.4. Limit the amount of time radeon_flip_work_func can delay programming a page flip, by both limiting the maximum amount of time per wait cycle and the maximum number of wait cycles. Continue the flip if the limit is exceeded, even if that may result in a visual or timing glitch. This is to prevent a hang of page flips, as reported in fdo bug #93746: Disconnecting a DisplayPort display in parallel to a kms pageflip getting queued can cause the following hang of page flips and thereby an unusable desktop: 1. kms pageflip ioctl() queues pageflip -> queues execution of radeon_flip_work_func. 2. Hotunplug of display causes the driver to DPMS OFF the unplugged display. Display engine shuts down, scanout no longer moves, but stays at its resting position at start line of vblank. 3. radeon_flip_work_func executes while crtc is off, and due to the non-moving scanout position, the new flip delay code introduced into Linux 4.4 by commit 5b5561b3660d ("drm/radeon: Fixup hw vblank counter/ts..") enters an infinite wait loop. 4. After reconnecting the display, the pageflip continues to hang in 3. and the display doesn't update its view of the desktop. This patch fixes the Linux 4.4 regression from fdo bug #93746 v2: Skip wait immediately if !radeon_crtc->enabled, as suggested by Michel. Reported-by: Bernd Steinhauser Signed-off-by: Mario Kleiner Tested-by: Bernd Steinhauser Cc: # 4.4+ Cc: Michel Dänzer Cc: Alex Deucher Reviewed-by: Michel Dänzer Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon_display.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) commit 020ecbba0548cefc91c3c5de32c28a62bcf37ed9 Merge: ce6b714 74dae42 Author: Linus Torvalds Date: Fri Feb 19 13:44:12 2016 -0800 Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 Pull ext4 bugfixes from Ted Ts'o: "Miscellaneous ext4 bug fixes for v4.5" * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: ext4: fix crashes in dioread_nolock mode ext4: fix bh->b_state corruption ext4: fix memleak in ext4_readdir() ext4: remove unused parameter "newblock" in convert_initialized_extent() ext4: don't read blocks from disk after extents being swapped ext4: fix potential integer overflow ext4: add a line break for proc mb_groups display ext4: ioctl: fix erroneous return value ext4: fix scheduling in atomic on group checksum failure ext4 crypto: move context consistency check to ext4_file_open() ext4 crypto: revalidate dentry after adding or removing the key commit ce6b71432d42afe5c3ae25ab2980304c32ecb915 Merge: 87d9ac7 413eddc Author: Linus Torvalds Date: Fri Feb 19 13:40:42 2016 -0800 Merge branch 'for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs Pull btrfs fix from Chris Mason: "My for-linus-4.5 branch has a btrfs DIO error passing fix. I know how much you love DIO, so I'm going to suggest against reading it. We'll follow up with a patch to drop the error arg from dio_end_io in the next merge window." * 'for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: Btrfs: fix direct IO requests not reporting IO error to user space commit 87d9ac712b727705dc07e05e851e84387397d696 Merge: 23300f6 52b4b95 Author: Linus Torvalds Date: Fri Feb 19 13:36:00 2016 -0800 Merge branch 'akpm' (patches from Andrew) Merge fixes from Andrew Morton: "10 fixes" * emailed patches from Andrew Morton : mm: slab: free kmem_cache_node after destroy sysfs file ipc/shm: handle removed segments gracefully in shm_mmap() MAINTAINERS: update Kselftest Framework mailing list devm_memremap_release(): fix memremap'd addr handling mm/hugetlb.c: fix incorrect proc nr_hugepages value mm, x86: fix pte_page() crash in gup_pte_range() fsnotify: turn fsnotify reaper thread into a workqueue job Revert "fsnotify: destroy marks with call_srcu instead of dedicated thread" mm: fix regression in remap_file_pages() emulation thp, dax: do not try to withdraw pgtable from non-anon VMA commit e817c2f33efb4aa7f02c98dfab9a5f8ff383ea7e Author: Andreas Gruenbacher Date: Thu Feb 18 12:04:08 2016 +0100 selinux: Don't sleep inside inode_getsecid hook The inode_getsecid hook is called from contexts in which sleeping is not allowed, so we cannot revalidate inode security labels from there. Use the non-validating version of inode_security() instead. Reported-by: Benjamin Coddington Signed-off-by: Andreas Gruenbacher Acked-by: Stephen Smalley Signed-off-by: Paul Moore security/selinux/hooks.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8d2c3ab4445640957d136caa3629857d63544a2a Author: Paul Bolle Date: Thu Feb 18 21:29:08 2016 +0100 ser_gigaset: use container_of() instead of detour The purpose of gigaset_device_release() is to kfree() the struct ser_cardstate that contains our struct device. This is done via a bit of a detour. First we make our struct device's driver_data point to the container of our struct ser_cardstate (which is a struct cardstate). In gigaset_device_release() we then retrieve that driver_data again. And after that we finally kfree() the struct ser_cardstate that was saved in the struct cardstate. All of this can be achieved much easier by using container_of() to get from our struct device to its container, struct ser_cardstate. Do so. Note that at the time the detour was implemented commit b8b2c7d845d5 ("base/platform: assert that dev_pm_domain callbacks are called unconditionally") had just entered the tree. That commit disconnected our platform_device and our platform_driver. These were reconnected again in v4.5-rc2 through commit 25cad69f21f5 ("base/platform: Fix platform drivers with no probe callback"). And one of the consequences of that fix was that it broke the detour via driver_data. That's because it made __device_release_driver() stop being a NOP for our struct device and actually do stuff again. One of the things it now does, is setting our driver_data to NULL. That, in turn, makes it impossible for gigaset_device_release() to get to our struct cardstate. Which has the net effect of leaking a struct ser_cardstate at every call of this driver's tty close() operation. So using container_of() has the additional benefit of actually working. Reported-by: Dmitry Vyukov Tested-by: Dmitry Vyukov Signed-off-by: Paul Bolle Acked-by: Tilman Schmidt Signed-off-by: David S. Miller drivers/isdn/gigaset/ser-gigaset.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) commit 0b7662cf97ee41af03bc8d4498ff4100d0843338 Merge: 1003e19 c699404d Author: David S. Miller Date: Fri Feb 19 15:51:18 2016 -0500 Merge tag 'wireless-drivers-for-davem-2016-02-18' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers Kalle Valo says: ==================== rtlwifi * fix broken VHT (802.11ac) support, reported by Linus wlcore * fix firmware initialisation regression on wl1271 iwlwifi * fix a race that users reported when we try to load the firmware and the hardware rfkill interrupt triggers at the same time * fix a very visible bug in scheduled scan: the firmware doesn't support scheduled scan with no profile configured and the supplicant sometimes requests such scheduled scans * build system fix to be able to link iwlwifi statically into kernel * firmware name update for 8265 * typo fix in return value ==================== Signed-off-by: David S. Miller commit 1003e19c466dc37812b5f88b2d5308ee63bb3fa0 Author: Steve Wise Date: Thu Feb 18 06:34:24 2016 -0800 cxgb3: fix up vpd strings for kstrto*() The vpd strings are left justified, in a fixed length array, with possible trailing white space and no NUL. So fix them up before calling kstrto*(). This is a recent regression which causes cxgb3 to fail to load. Fixes: e72c932 ("cxgb3: Convert simple_strtoul to kstrtox") Signed-off-by: Steve Wise Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb3/t3_hw.c | 34 ++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 7 deletions(-) commit c868ee7063bdb53f3ef9eac7bcec84960980b471 Author: Paolo Abeni Date: Wed Feb 17 19:30:01 2016 +0100 lwt: fix rx checksum setting for lwt devices tunneling over ipv6 the commit 35e2d1152b22 ("tunnels: Allow IPv6 UDP checksums to be correctly controlled.") changed the default xmit checksum setting for lwt vxlan/geneve ipv6 tunnels, so that now the checksum is not set into external UDP header. This commit changes the rx checksum setting for both lwt vxlan/geneve devices created by openvswitch accordingly, so that lwt over ipv6 tunnel pairs are again able to communicate with default values. Signed-off-by: Paolo Abeni Acked-by: Jiri Benc Acked-by: Jesse Gross Signed-off-by: David S. Miller drivers/net/geneve.c | 3 ++- net/openvswitch/vport-vxlan.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) commit b53ce3e7d407aa4196877a48b8601181162ab158 Author: Insu Yun Date: Wed Feb 17 11:47:35 2016 -0500 tipc: unlock in error path tipc_bcast_unlock need to be unlocked in error path. Signed-off-by: Insu Yun Signed-off-by: David S. Miller net/tipc/link.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 29d1441dfc737c9422db02e4c95eb4ea0035effd Merge: a97eb33 1bc4e2b Author: David S. Miller Date: Fri Feb 19 15:35:29 2016 -0500 Merge tag 'batman-adv-fix-for-davem' of git://git.open-mesh.org/linux-merge Antonio Quartulli says: ==================== Two of the fixes included in this patchset prevent wrong memory access - it was triggered when removing an object from a list after it was already free'd due to bad reference counting. This misbehaviour existed for both the gw_node and the orig_node_vlan object and has been fixed by Sven Eckelmann. The last patch fixes our interface feasibility check and prevents it from looping indefinitely when two net_device objects reference each other via iflink index (i.e. veth pair), by Andrew Lunn ==================== Signed-off-by: David S. Miller commit a97eb33ff225f34a8124774b3373fd244f0e83ce Author: Anton Protopopov Date: Tue Feb 16 21:43:16 2016 -0500 rtnl: RTM_GETNETCONF: fix wrong return value An error response from a RTM_GETNETCONF request can return the positive error value EINVAL in the struct nlmsgerr that can mislead userspace. Signed-off-by: Anton Protopopov Acked-by: Cong Wang Signed-off-by: David S. Miller net/ipv4/devinet.c | 2 +- net/ipv6/addrconf.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit cfdd28beb3205dbd1e91571516807199c8ab84ca Author: Nikolay Aleksandrov Date: Wed Feb 17 18:00:31 2016 +0100 net: make netdev_for_each_lower_dev safe for device removal When I used netdev_for_each_lower_dev in commit bad531623253 ("vrf: remove slave queue and private slave struct") I thought that it acts like netdev_for_each_lower_private and can be used to remove the current device from the list while walking, but unfortunately it acts more like netdev_for_each_lower_private_rcu and doesn't allow it. The difference is where the "iter" points to, right now it points to the current element and that makes it impossible to remove it. Change the logic to be similar to netdev_for_each_lower_private and make it point to the "next" element so we can safely delete the current one. VRF is the only such user right now, there's no change for the read-only users. Here's what can happen now: [98423.249858] general protection fault: 0000 [#1] SMP [98423.250175] Modules linked in: vrf bridge(O) stp llc nfsd auth_rpcgss oid_registry nfs_acl nfs lockd grace sunrpc crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel jitterentropy_rng sha256_generic hmac drbg ppdev aesni_intel aes_x86_64 glue_helper lrw gf128mul ablk_helper cryptd evdev serio_raw pcspkr virtio_balloon parport_pc parport i2c_piix4 i2c_core virtio_console acpi_cpufreq button 9pnet_virtio 9p 9pnet fscache ipv6 autofs4 ext4 crc16 mbcache jbd2 sg virtio_blk virtio_net sr_mod cdrom e1000 ata_generic ehci_pci uhci_hcd ehci_hcd usbcore usb_common virtio_pci ata_piix libata floppy virtio_ring virtio scsi_mod [last unloaded: bridge] [98423.255040] CPU: 1 PID: 14173 Comm: ip Tainted: G O 4.5.0-rc2+ #81 [98423.255386] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.8.1-20150318_183358- 04/01/2014 [98423.255777] task: ffff8800547f5540 ti: ffff88003428c000 task.ti: ffff88003428c000 [98423.256123] RIP: 0010:[] [] netdev_lower_get_next+0x1e/0x30 [98423.256534] RSP: 0018:ffff88003428f940 EFLAGS: 00010207 [98423.256766] RAX: 0002000100000004 RBX: ffff880054ff9000 RCX: 0000000000000000 [98423.257039] RDX: ffff88003428f8b8 RSI: ffff88003428f950 RDI: ffff880054ff90c0 [98423.257287] RBP: ffff88003428f940 R08: 0000000000000000 R09: 0000000000000000 [98423.257537] R10: 0000000000000001 R11: 0000000000000000 R12: ffff88003428f9e0 [98423.257802] R13: ffff880054a5fd00 R14: ffff88003428f970 R15: 0000000000000001 [98423.258055] FS: 00007f3d76881700(0000) GS:ffff88005d000000(0000) knlGS:0000000000000000 [98423.258418] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [98423.258650] CR2: 00007ffe5951ffa8 CR3: 0000000052077000 CR4: 00000000000406e0 [98423.258902] Stack: [98423.259075] ffff88003428f960 ffffffffa0442636 0002000100000004 ffff880054ff9000 [98423.259647] ffff88003428f9b0 ffffffff81518205 ffff880054ff9000 ffff88003428f978 [98423.260208] ffff88003428f978 ffff88003428f9e0 ffff88003428f9e0 ffff880035b35f00 [98423.260739] Call Trace: [98423.260920] [] vrf_dev_uninit+0x76/0xa0 [vrf] [98423.261156] [] rollback_registered_many+0x205/0x390 [98423.261401] [] unregister_netdevice_many+0x1c/0x70 [98423.261641] [] rtnl_delete_link+0x3c/0x50 [98423.271557] [] rtnl_dellink+0xcb/0x1d0 [98423.271800] [] ? __inc_zone_state+0x4a/0x90 [98423.272049] [] rtnetlink_rcv_msg+0x84/0x200 [98423.272279] [] ? trace_hardirqs_on+0xd/0x10 [98423.272513] [] ? rtnetlink_rcv+0x1b/0x40 [98423.272755] [] ? rtnetlink_rcv+0x40/0x40 [98423.272983] [] netlink_rcv_skb+0x97/0xb0 [98423.273209] [] rtnetlink_rcv+0x2a/0x40 [98423.273476] [] netlink_unicast+0x11b/0x1a0 [98423.273710] [] netlink_sendmsg+0x3e1/0x610 [98423.273947] [] sock_sendmsg+0x38/0x70 [98423.274175] [] ___sys_sendmsg+0x2e3/0x2f0 [98423.274416] [] ? do_raw_spin_unlock+0xbe/0x140 [98423.274658] [] ? handle_mm_fault+0x26c/0x2210 [98423.274894] [] ? handle_mm_fault+0x4d/0x2210 [98423.275130] [] ? __fget_light+0x91/0xb0 [98423.275365] [] __sys_sendmsg+0x42/0x80 [98423.275595] [] SyS_sendmsg+0x12/0x20 [98423.275827] [] entry_SYSCALL_64_fastpath+0x16/0x7a [98423.276073] Code: c3 31 c0 5d c3 0f 1f 84 00 00 00 00 00 66 66 66 66 90 48 8b 06 55 48 81 c7 c0 00 00 00 48 89 e5 48 8b 00 48 39 f8 74 09 48 89 06 <48> 8b 40 e8 5d c3 31 c0 5d c3 0f 1f 84 00 00 00 00 00 66 66 66 [98423.279639] RIP [] netdev_lower_get_next+0x1e/0x30 [98423.279920] RSP CC: David Ahern CC: David S. Miller CC: Roopa Prabhu CC: Vlad Yasevich Fixes: bad531623253 ("vrf: remove slave queue and private slave struct") Signed-off-by: Nikolay Aleksandrov Reviewed-by: David Ahern Tested-by: David Ahern Signed-off-by: David S. Miller include/linux/netdevice.h | 2 +- net/core/dev.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 6697b2cf69d4363266ca47eaebc49ef13dabc1c9 Author: Dan Williams Date: Thu Feb 4 16:51:00 2016 -0800 nfit: fix multi-interface dimm handling, acpi6.1 compatibility ACPI 6.1 clarified that multi-interface dimms require multiple control region entries (DCRs) per dimm. Previously we were assuming that a control region is only present when block-data-windows are present. This implementation was done with an eye to be compatibility with the looser ACPI 6.0 interpretation of this table. 1/ When coalescing the memory device (MEMDEV) tables for a single dimm, coalesce on device_handle rather than control region index. 2/ Whenever we disocver a control region with non-zero block windows re-scan for block-data-window (BDW) entries. We may need to revisit this if a DIMM ever implements a format interface outside of blk or pmem, but that is not on the foreseeable horizon. Cc: Signed-off-by: Dan Williams drivers/acpi/nfit.c | 71 ++++++++++++++++++++++++++--------------------------- 1 file changed, 35 insertions(+), 36 deletions(-) commit 6e22c8366416251a3d88ba6c92d13d595089f0ed Author: Yang Shi Date: Fri Feb 12 12:46:00 2016 -0800 tracing, kasan: Silence Kasan warning in check_stack of stack_tracer When enabling stack trace via "echo 1 > /proc/sys/kernel/stack_tracer_enabled", the below KASAN warning is triggered: BUG: KASAN: stack-out-of-bounds in check_stack+0x344/0x848 at addr ffffffc0689ebab8 Read of size 8 by task ksoftirqd/4/29 page:ffffffbdc3a27ac0 count:0 mapcount:0 mapping: (null) index:0x0 flags: 0x0() page dumped because: kasan: bad access detected CPU: 4 PID: 29 Comm: ksoftirqd/4 Not tainted 4.5.0-rc1 #129 Hardware name: Freescale Layerscape 2085a RDB Board (DT) Call trace: [] dump_backtrace+0x0/0x3a0 [] show_stack+0x24/0x30 [] dump_stack+0xd8/0x168 [] kasan_report_error+0x6a0/0x920 [] kasan_report+0x70/0xb8 [] __asan_load8+0x60/0x78 [] check_stack+0x344/0x848 [] stack_trace_call+0x1c4/0x370 [] ftrace_ops_no_ops+0x2c0/0x590 [] ftrace_graph_call+0x0/0x14 [] fpsimd_thread_switch+0x24/0x1e8 [] __switch_to+0x34/0x218 [] __schedule+0x3ac/0x15b8 [] schedule+0x5c/0x178 [] smpboot_thread_fn+0x350/0x960 [] kthread+0x1d8/0x2b0 [] ret_from_fork+0x10/0x40 Memory state around the buggy address: ffffffc0689eb980: 00 00 00 00 00 00 00 00 f1 f1 f1 f1 00 f4 f4 f4 ffffffc0689eba00: f3 f3 f3 f3 00 00 00 00 00 00 00 00 00 00 00 00 >ffffffc0689eba80: 00 00 f1 f1 f1 f1 00 f4 f4 f4 f3 f3 f3 f3 00 00 ^ ffffffc0689ebb00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ffffffc0689ebb80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 The stacker tracer traverses the whole kernel stack when saving the max stack trace. It may touch the stack red zones to cause the warning. So, just disable the instrumentation to silence the warning. Link: http://lkml.kernel.org/r/1455309960-18930-1-git-send-email-yang.shi@linaro.org Signed-off-by: Yang Shi Signed-off-by: Steven Rostedt kernel/trace/trace_stack.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 9a154c8911e39e32bdbc2cd6c9b08a64e17612aa Author: Steven Rostedt Date: Fri Dec 11 14:36:17 2015 -0500 ftracetest: Fix instance test to use proper shell command for pids The ftracetest instance test used parsing of the "jobs" output to find the pid of the subshell that is executed previously. But this is not portable to all major shells that may run these tests. The proper way to get the pid of the subshell is the shell command "$!". This will return the pid of the previously executed command. Use that instead, otherwise the test does not work in all environments. Link: http://lkml.kernel.org/r/20151211143617.65f4d7a1@gandalf.local.home Reported-by: Michael Ellerman Signed-off-by: Steven Rostedt .../testing/selftests/ftrace/test.d/instances/instance.tc | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) commit e327b3f564031a8d0090a6b3e3562a8b59bafe0e Author: Peter Ujfalusi Date: Fri Feb 19 16:12:19 2016 +0200 Revert "regulator: tps65217: remove tps65217.dtsi file" This reverts commit 8e6ebfaa9b384088002baa10f7534efa73a0794e. Without the patch reverted regulators will not work. This prevents MMC to be working for example so the boards can not boot to MMC rootfs. Tested it on beaglebone white and bisect also points to the reverted commit. The issue can be also fixed by adding "regulator-compatible =" to all board dts file for the regulators. Signed-off-by: Peter Ujfalusi Signed-off-by: Tony Lindgren .../devicetree/bindings/regulator/tps65217.txt | 10 ---- arch/arm/boot/dts/am335x-bone-common.dtsi | 14 ++---- arch/arm/boot/dts/am335x-chilisom.dtsi | 14 +----- arch/arm/boot/dts/am335x-nano.dts | 14 +----- arch/arm/boot/dts/am335x-pepper.dts | 14 +----- arch/arm/boot/dts/am335x-sl50.dts | 13 +---- arch/arm/boot/dts/tps65217.dtsi | 56 ++++++++++++++++++++++ 7 files changed, 67 insertions(+), 68 deletions(-) commit 23300f657594656e7ebac3130b43460ebc4381cc Merge: ff5f168 52d7523 Author: Linus Torvalds Date: Fri Feb 19 08:40:05 2016 -0800 Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux Pull arm64 fixes from Will Deacon: "Here are some more arm64 fixes for 4.5. This has mostly come from Yang Shi, who saw some issues under -rt that also affect mainline. The rest of it is pretty small, but still worth having. We've got an old issue outstanding with valid_user_regs which will likely wait until 4.6 (since it would really benefit from some time in -next) and another issue with kasan and idle which should be fixed next week. Apart from that, pretty quiet here (and still no sign of the THP issue reported on s390...) Summary: - Allow EFI stub to use strnlen(), which is required by recent libfdt - Avoid smp_processor_id() in preempt context during unwinding - Avoid false Kasan warnings during unwinding - Ensure early devices are picked up by the IOMMU DMA ops - Avoid rebuilding the kernel for the 'install' target - Run fixup handlers for alignment faults on userspace access" * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: arm64: mm: allow the kernel to handle alignment faults on user accesses arm64: kbuild: make "make install" not depend on vmlinux arm64: dma-mapping: fix handling of devices registered before arch_initcall arm64/efi: Make strnlen() available to the EFI namespace arm/arm64: crypto: assure that ECB modes don't require an IV arm64: make irq_stack_ptr more robust arm64: debug: re-enable irqs before sending breakpoint SIGTRAP arm64: disable kasan when accessing frame->fp in unwind_frame commit ff5f16820f632079d5095884adc5d71ee3249fa4 Merge: 409ee13 12d319b Author: Linus Torvalds Date: Fri Feb 19 08:33:12 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux Pull s390 fixes from Martin Schwidefsky: "Several bug fixes: - There are four different stack tracers, and three of them have bugs. For 4.5 the bugs are fixed and we prepare a cleanup patch for the next merge window. - Three bug fixes for the dasd driver in regard to parallel access volumes and the new max_dev_sectors block device queue limit - The irq restore optimization needs a fixup for memcpy_real - The diagnose trace code has a conflict with lockdep" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: s390/dasd: fix performance drop s390/maccess: reduce stnsm instructions s390/diag: avoid lockdep recursion s390/dasd: fix refcount for PAV reassignment s390/dasd: prevent incorrect length error under z/VM after PAV changes s390: fix DAT off memory access, e.g. on kdump s390/oprofile: fix address range for asynchronous stack s390/perf_event: fix address range for asynchronous stack s390/stacktrace: add save_stack_trace_regs() s390/stacktrace: save full stack traces s390/stacktrace: add missing end marker s390/stacktrace: fix address ranges for asynchronous and panic stack s390/stacktrace: fix save_stack_trace_tsk() for current task commit 409ee136f28f71cbec518cfc85a379a508ccbaa0 Merge: 9001b8e d9ff0eb Author: Linus Torvalds Date: Fri Feb 19 08:25:40 2016 -0800 Merge tag 'pinctrl-v4.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl Pull Pin control fixes from Linus Walleij: "Pin control fixes for the v4.5 series, all are individual driver fixes: - Fix the PXA2xx driver to export its init function so we do not break modular compiles. - Hide unused functions in the Nomadik driver. - Fix up direction control in the Mediatek driver. - Toggle the sunxi GPIO lines to input when you read them on the H3 GPIO controller, lest you only get garbage. - Fix up the number of settings in the MVEBU driver. - Fix a serious SMP race condition in the Samsung driver" * tag 'pinctrl-v4.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: pinctrl: samsung: fix SMP race condition pinctrl: mvebu: fix num_settings in mpp group assignment pinctrl: sunxi: H3 requires irq_read_needs_mux pinctrl: mediatek: fix direction control issue pinctrl: nomadik: hide unused functions pinctrl: pxa: export pxa2xx_pinctrl_init() commit 9001b8e4f08dd7ae8429214979bd7783160932c5 Merge: 705d43d 67ec107 Author: Linus Torvalds Date: Fri Feb 19 08:01:41 2016 -0800 Merge tag 'sound-4.5-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "This update contains again a few more fixes for ALSA core stuff although it's no longer high flux: two race fixes in sequencer and one PCM race fix for non-atomic PCM ops. In addition, HD-audio gained a similar fix for race at reloading the driver" * tag 'sound-4.5-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: pcm: Fix rwsem deadlock for non-atomic PCM stream ALSA: seq: Fix double port list deletion ALSA: hda - Cancel probe work instead of flush at remove ALSA: seq: Fix leak of pool buffer at concurrent writes commit 65b4bcb82967fd5a60694c3477e58a04a9170aea Author: Alan Date: Fri Feb 19 11:42:32 2016 +0530 ASoC: Intel: Skylake: fix pointer scaling skl_tplg_tlv_control_set does pointer maths on data but forgets that data is not uint8_t so the maths is already scaled in the pointer type. Signed-off-by: Alan Cox Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-topology.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 316fa9e09ad76e095b9d7e9350c628b918370a22 Author: Charles Keepax Date: Thu Feb 18 15:47:13 2016 +0000 ASoC: samsung: Use IRQ safe spin lock calls Lockdep warns of a potential lock inversion, i2s->lock is held numerous times whilst we are under the substream lock (snd_pcm_stream_lock). If we use the IRQ unsafe spin lock calls, you can also end up locking snd_pcm_stream_lock whilst under i2s->lock (if an IRQ happens whilst we are holding i2s->lock). This could result in deadlock. [ 18.147001] CPU0 CPU1 [ 18.151509] ---- ---- [ 18.156022] lock(&(&pri_dai->spinlock)->rlock); [ 18.160701] local_irq_disable(); [ 18.166622] lock(&(&substream->self_group.lock)->rlock); [ 18.174595] lock(&(&pri_dai->spinlock)->rlock); [ 18.181806] [ 18.184408] lock(&(&substream->self_group.lock)->rlock); [ 18.190045] [ 18.190045] *** DEADLOCK *** This patch changes to using the irq safe spinlock calls, to avoid this issue. Fixes: ce8bcdbb61d9 ("ASoC: samsung: i2s: Protect more registers with a spinlock") Signed-off-by: Charles Keepax Tested-by: Anand Moon Signed-off-by: Mark Brown Cc: stable@vger.kernel.org sound/soc/samsung/i2s.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) commit 52d7523d84d534c241ebac5ac89f5c0a6cb51e41 Author: EunTaik Lee Date: Tue Feb 16 04:44:35 2016 +0000 arm64: mm: allow the kernel to handle alignment faults on user accesses Although we don't expect to take alignment faults on access to normal memory, misbehaving (i.e. buggy) user code can pass MMIO pointers into system calls, leading to things like get_user accessing device memory. Rather than OOPS the kernel, allow any exception fixups to run and return something like -EFAULT back to userspace. This makes the behaviour more consistent with userspace, even though applications with access to device mappings can easily cause other issues if they try hard enough. Acked-by: Catalin Marinas Signed-off-by: Eun Taik Lee [will: dropped __kprobes annotation and rewrote commit mesage] Signed-off-by: Will Deacon arch/arm64/mm/fault.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 8684fa3e7a9ee629ca60bd811d1597646451f918 Author: Masahiro Yamada Date: Fri Feb 19 15:05:50 2016 +0900 arm64: kbuild: make "make install" not depend on vmlinux For the same reason as commit 19514fc665ff ("arm, kbuild: make "make install" not depend on vmlinux"), the install targets should never trigger the rebuild of the kernel. Signed-off-by: Masahiro Yamada Signed-off-by: Will Deacon arch/arm64/Makefile | 2 +- arch/arm64/boot/Makefile | 4 ++-- arch/arm64/boot/install.sh | 14 ++++++++++++++ 3 files changed, 17 insertions(+), 3 deletions(-) commit 8c0614ca312c847ca5409ea11c39434dec69631d Author: Wei Yongjun Date: Sat Feb 6 22:57:06 2016 +0800 usb: chipidea: fix return value check in ci_hdrc_pci_probe() In case of error, the function usb_phy_generic_register() returns ERR_PTR() and never returns NULL. The NULL test in the return value check should be replaced with IS_ERR(). Signed-off-by: Wei Yongjun Signed-off-by: Peter Chen drivers/usb/chipidea/ci_hdrc_pci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a4de018d2b0364e40a626fa521ec21e31a10ac84 Author: Alan Date: Mon Feb 15 19:09:46 2016 +0000 usb: chipidea: error on overflow for port_test_write The write value is 8bit, but currently writing a larger number (eg a doubled digit) is not errored but instead gets cast and sets off an action probably undesired. Signed-off-by: Alan Cox Signed-off-by: Peter Chen (Change the style of commit log to fix checkpatch.pl warning) drivers/usb/chipidea/debug.c | 3 +++ 1 file changed, 3 insertions(+) commit 74dae4278546b897eb81784fdfcce872ddd8b2b8 Author: Jan Kara Date: Fri Feb 19 00:33:21 2016 -0500 ext4: fix crashes in dioread_nolock mode Competing overwrite DIO in dioread_nolock mode will just overwrite pointer to io_end in the inode. This may result in data corruption or extent conversion happening from IO completion interrupt because we don't properly set buffer_defer_completion() when unlocked DIO races with locked DIO to unwritten extent. Since unlocked DIO doesn't need io_end for anything, just avoid allocating it and corrupting pointer from inode for locked DIO. A cleaner fix would be to avoid these games with io_end pointer from the inode but that requires more intrusive changes so we leave that for later. Cc: stable@vger.kernel.org Signed-off-by: Jan Kara Signed-off-by: Theodore Ts'o fs/ext4/inode.c | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) commit ed8ad83808f009ade97ebbf6519bc3a97fefbc0c Author: Jan Kara Date: Fri Feb 19 00:18:25 2016 -0500 ext4: fix bh->b_state corruption ext4 can update bh->b_state non-atomically in _ext4_get_block() and ext4_da_get_block_prep(). Usually this is fine since bh is just a temporary storage for mapping information on stack but in some cases it can be fully living bh attached to a page. In such case non-atomic update of bh->b_state can race with an atomic update which then gets lost. Usually when we are mapping bh and thus updating bh->b_state non-atomically, nobody else touches the bh and so things work out fine but there is one case to especially worry about: ext4_finish_bio() uses BH_Uptodate_Lock on the first bh in the page to synchronize handling of PageWriteback state. So when blocksize < pagesize, we can be atomically modifying bh->b_state of a buffer that actually isn't under IO and thus can race e.g. with delalloc trying to map that buffer. The result is that we can mistakenly set / clear BH_Uptodate_Lock bit resulting in the corruption of PageWriteback state or missed unlock of BH_Uptodate_Lock. Fix the problem by always updating bh->b_state bits atomically. CC: stable@vger.kernel.org Reported-by: Nikolay Borisov Signed-off-by: Jan Kara Signed-off-by: Theodore Ts'o fs/ext4/inode.c | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) commit 4fbbed46dca83bcba3a0170205110a06c116a8e6 Author: Rasmus Villemoes Date: Mon Feb 15 19:41:46 2016 +0100 drm/nouveau: use post-decrement in error handling We need to use post-decrement to get the dma_map_page undone also for i==0, and to avoid some very unpleasant behaviour if dma_map_page failed already at i==0. Signed-off-by: Rasmus Villemoes Reviewed-by: Ben Skeggs Signed-off-by: Dave Airlie drivers/gpu/drm/nouveau/nouveau_bo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5fff80bbdb6b84a94f90391ba674471d37b57eb2 Author: Maarten Lankhorst Date: Wed Feb 17 08:32:05 2016 +0100 drm/atomic: Allow for holes in connector state, v2. Because we record connector_mask using 1 << drm_connector_index now the connector_mask should stay the same even when other connectors are removed. This was not the case with MST, in that case when removing a connector all other connectors may change their index. This is fixed by waiting until the first get_connector_state to allocate connector_state, and force reallocation when state is too small. As a side effect connector arrays no longer have to be preallocated, and can be allocated on first use which means a less allocations in the page flip only path. Changes since v1: - Whitespace. (Ville) - Call ida_remove when destroying the connector. (Ville) - u32 alloc -> int. (Ville) Fixes: 14de6c44d149 ("drm/atomic: Remove drm_atomic_connectors_for_crtc.") Signed-off-by: Maarten Lankhorst Cc: Ville Syrjälä Reviewed-by: Lyude Reviewed-by: Ville Syrjälä Signed-off-by: Dave Airlie drivers/gpu/drm/drm_atomic.c | 44 +++++++++++++++------------------ drivers/gpu/drm/drm_atomic_helper.c | 2 +- drivers/gpu/drm/drm_crtc.c | 49 +++++++++++++++---------------------- include/drm/drm_crtc.h | 8 +++++- 4 files changed, 48 insertions(+), 55 deletions(-) commit acc146943957d7418a6846f06e029b2c5e87e0d5 Author: Peter Rosin Date: Thu Feb 18 14:07:52 2016 +0100 hwmon: (ads1015) Handle negative conversion values correctly Make the divisor signed as DIV_ROUND_CLOSEST is undefined for negative dividends when the divisor is unsigned. Signed-off-by: Peter Rosin Cc: stable@vger.kernel.org Signed-off-by: Guenter Roeck drivers/hwmon/ads1015.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4462b4bbfc33a44f19710ead784ff361bda2c3b3 Author: Stephen Boyd Date: Thu Feb 18 19:07:44 2016 -0800 clk: gpio: Really allow an optional clock= DT property We mis-merged the original patch from Russell here and so the patch went almost all the way, except that we still failed to probe when there wasn't a clocks property in the DT node. Allow that case by making a negative value from of_clk_get_parent_count() into "no parents", like the original patch did. Fixes: 7ed88aa2efa5 ("clk: fix clk-gpio.c with optional clock= DT property") Cc: Russell King Cc: Michael Turquette Signed-off-by: Stephen Boyd drivers/clk/clk-gpio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5441ea115ef153458b443917b02c7f5686cc2bd7 Merge: aaa7dd2 36cb625 Author: Dave Airlie Date: Fri Feb 19 12:50:00 2016 +1000 Merge tag 'drm-vc4-fixes-2016-02-17' of github.com:anholt/linux into drm-fixes This pull request fixes GPU reset (which was disabled shortly after V3D integration due to build breakage) and waits for idle in the presence of signals (which X likes to do a lot). * tag 'drm-vc4-fixes-2016-02-17' of github.com:anholt/linux: drm/vc4: Use runtime PM to power cycle the device when the GPU hangs. drm/vc4: Enable runtime PM. drm/vc4: Fix spurious GPU resets due to BO reuse. drm/vc4: Drop error message on seqno wait timeouts. drm/vc4: Fix -ERESTARTSYS error return from BO waits. drm/vc4: Return an ERR_PTR from BO creation instead of NULL. drm/vc4: Fix the clear color for the first tile rendered. drm/vc4: Validate that WAIT_BO padding is cleared. commit aaa7dd2ced17c8e977faeadc4884c422456371c5 Merge: 42412b1 bc3f5d8 Author: Dave Airlie Date: Fri Feb 19 12:49:03 2016 +1000 Merge branch 'drm-fixes-4.5' of git://people.freedesktop.org/~agd5f/linux into drm-fixes Just two small fixes in the ttm_tt_populate error handling; one for radeon, one for amdgpu. * 'drm-fixes-4.5' of git://people.freedesktop.org/~agd5f/linux: drm/radeon: use post-decrement in error handling drm/amdgpu: use post-decrement in error handling commit 42412b120d2877df40171c5ea22218f30fe89e20 Merge: 705d43d 8d409cb Author: Dave Airlie Date: Fri Feb 19 12:43:03 2016 +1000 Merge tag 'drm-intel-fixes-2016-02-18' of git://anongit.freedesktop.org/drm-intel into drm-fixes single g4x hpd fix. * tag 'drm-intel-fixes-2016-02-18' of git://anongit.freedesktop.org/drm-intel: drm/i915: Fix hpd live status bits for g4x commit d07fbb8fdf57c4af28679ad7c4b2542e78ca7218 Merge: 437b300 9f74660 Author: Trond Myklebust Date: Thu Feb 18 20:22:03 2016 -0500 Merge tag 'nfs-rdma-4.5-1' of git://git.linux-nfs.org/projects/anna/nfs-rdma NFS: NFSoRDMA Client Bugfix This patch fixes a bug where NFS v4.1 callbacks were returning RPC_GARBAGE_ARGS to the server. Signed-off-by: Anna Schumaker commit 705d43dbe10d6e213a75187ac92b61f9bd00af0b Merge: dd8fc10 7dcd182 Author: Linus Torvalds Date: Thu Feb 18 16:34:15 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching Pull livepatching fixes from Jiri Kosina: - regression (from 4.4) fix for ordering issue, introduced by an earlier ftrace change, that broke live patching of modules. The fix replaces the ftrace module notifier by direct call in order to make the ordering guaranteed and well-defined. The patch, from Jessica Yu, has been acked both by Steven and Rusty - error message fix from Miroslav Benes * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching: ftrace/module: remove ftrace module notifier livepatch: change the error message in asm/livepatch.h header files commit dd8fc10e606127e2dffdb6704e7ec203c86a214d Merge: 2850713 2a8d9cd Author: Linus Torvalds Date: Thu Feb 18 16:24:48 2016 -0800 Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi Pull SCSI fixes from James Bottomley: "Two simple fixes. One prevents a soft lockup on some target removal scenarios and the other prevents us trying to probe the marvell console device, which causes it to time out and need the bus resetting" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: scsi: fix soft lockup in scsi_remove_target() on module removal SCSI: Add Marvell configuration device to VPD blacklist commit 52b4b950b50740bff507a62907e86710743c22e7 Author: Dmitry Safonov Date: Wed Feb 17 13:11:37 2016 -0800 mm: slab: free kmem_cache_node after destroy sysfs file When slub_debug alloc_calls_show is enabled we will try to track location and user of slab object on each online node, kmem_cache_node structure and cpu_cache/cpu_slub shouldn't be freed till there is the last reference to sysfs file. This fixes the following panic: BUG: unable to handle kernel NULL pointer dereference at 0000000000000020 IP: list_locations+0x169/0x4e0 PGD 257304067 PUD 438456067 PMD 0 Oops: 0000 [#1] SMP CPU: 3 PID: 973074 Comm: cat ve: 0 Not tainted 3.10.0-229.7.2.ovz.9.30-00007-japdoll-dirty #2 9.30 Hardware name: DEPO Computers To Be Filled By O.E.M./H67DE3, BIOS L1.60c 07/14/2011 task: ffff88042a5dc5b0 ti: ffff88037f8d8000 task.ti: ffff88037f8d8000 RIP: list_locations+0x169/0x4e0 Call Trace: alloc_calls_show+0x1d/0x30 slab_attr_show+0x1b/0x30 sysfs_read_file+0x9a/0x1a0 vfs_read+0x9c/0x170 SyS_read+0x58/0xb0 system_call_fastpath+0x16/0x1b Code: 5e 07 12 00 b9 00 04 00 00 3d 00 04 00 00 0f 4f c1 3d 00 04 00 00 89 45 b0 0f 84 c3 00 00 00 48 63 45 b0 49 8b 9c c4 f8 00 00 00 <48> 8b 43 20 48 85 c0 74 b6 48 89 df e8 46 37 44 00 48 8b 53 10 CR2: 0000000000000020 Separated __kmem_cache_release from __kmem_cache_shutdown which now called on slab_kmem_cache_release (after the last reference to sysfs file object has dropped). Reintroduced locking in free_partial as sysfs file might access cache's partial list after shutdowning - partial revert of the commit 69cb8e6b7c29 ("slub: free slabs without holding locks"). Zap __remove_partial and use remove_partial (w/o underscores) as free_partial now takes list_lock which s partial revert for commit 1e4dd9461fab ("slub: do not assert not having lock in removing freed partial") Signed-off-by: Dmitry Safonov Suggested-by: Vladimir Davydov Acked-by: Vladimir Davydov Cc: Christoph Lameter Cc: Pekka Enberg Cc: David Rientjes Cc: Joonsoo Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/slab.c | 12 ++++++------ mm/slab.h | 1 + mm/slab_common.c | 1 + mm/slob.c | 4 ++++ mm/slub.c | 38 +++++++++++++++++--------------------- 5 files changed, 29 insertions(+), 27 deletions(-) commit 1ac0b6dec656f3f78d1c3dd216fad84cb4d0a01e Author: Kirill A. Shutemov Date: Wed Feb 17 13:11:35 2016 -0800 ipc/shm: handle removed segments gracefully in shm_mmap() remap_file_pages(2) emulation can reach file which represents removed IPC ID as long as a memory segment is mapped. It breaks expectations of IPC subsystem. Test case (rewritten to be more human readable, originally autogenerated by syzkaller[1]): #define _GNU_SOURCE #include #include #include #include #define PAGE_SIZE 4096 int main() { int id; void *p; id = shmget(IPC_PRIVATE, 3 * PAGE_SIZE, 0); p = shmat(id, NULL, 0); shmctl(id, IPC_RMID, NULL); remap_file_pages(p, 3 * PAGE_SIZE, 0, 7, 0); return 0; } The patch changes shm_mmap() and code around shm_lock() to propagate locking error back to caller of shm_mmap(). [1] http://github.com/google/syzkaller Signed-off-by: Kirill A. Shutemov Reported-by: Dmitry Vyukov Cc: Davidlohr Bueso Cc: Manfred Spraul Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ipc/shm.c | 53 +++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 43 insertions(+), 10 deletions(-) commit 64f00850011b834746bab94119d1d5eb7eabb19a Author: Shuah Khan Date: Wed Feb 17 13:11:32 2016 -0800 MAINTAINERS: update Kselftest Framework mailing list Kselftest Framework now has a dedicated mailing list linux-kselftest. Update the entry in MAINTAINERS file. Signed-off-by: Shuah Khan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds MAINTAINERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9273a8bbf58a15051e53a777389a502420ddc60e Author: Toshi Kani Date: Wed Feb 17 13:11:29 2016 -0800 devm_memremap_release(): fix memremap'd addr handling The pmem driver calls devm_memremap() to map a persistent memory range. When the pmem driver is unloaded, this memremap'd range is not released so the kernel will leak a vma. Fix devm_memremap_release() to handle a given memremap'd address properly. Signed-off-by: Toshi Kani Acked-by: Dan Williams Cc: Christoph Hellwig Cc: Ross Zwisler Cc: Matthew Wilcox Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/memremap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f8b74815a452ff2904b5d7fcce1a5ae2a4d7ca5e Author: Vaishali Thakkar Date: Wed Feb 17 13:11:26 2016 -0800 mm/hugetlb.c: fix incorrect proc nr_hugepages value Currently incorrect default hugepage pool size is reported by proc nr_hugepages when number of pages for the default huge page size is specified twice. When multiple huge page sizes are supported, /proc/sys/vm/nr_hugepages indicates the current number of pre-allocated huge pages of the default size. Basically /proc/sys/vm/nr_hugepages displays default_hstate-> max_huge_pages and after boot time pre-allocation, max_huge_pages should equal the number of pre-allocated pages (nr_hugepages). Test case: Note that this is specific to x86 architecture. Boot the kernel with command line option 'default_hugepagesz=1G hugepages=X hugepagesz=2M hugepages=Y hugepagesz=1G hugepages=Z'. After boot, 'cat /proc/sys/vm/nr_hugepages' and 'sysctl -a | grep hugepages' returns the value X. However, dmesg output shows that Z huge pages were pre-allocated. So, the root cause of the problem here is that the global variable default_hstate_max_huge_pages is set if a default huge page size is specified (directly or indirectly) on the command line. After the command line processing in hugetlb_init, if default_hstate_max_huge_pages is set, the value is assigned to default_hstae.max_huge_pages. However, default_hstate.max_huge_pages may have already been set based on the number of pre-allocated huge pages of default_hstate size. The solution to this problem is if hstate->max_huge_pages is already set then it should not set as a result of global max_huge_pages value. Basically if the value of the variable hugepages is set multiple times on a command line for a specific supported hugepagesize then proc layer should consider the last specified value. Signed-off-by: Vaishali Thakkar Reviewed-by: Naoya Horiguchi Cc: Mike Kravetz Cc: Hillf Danton Cc: Kirill A. Shutemov Cc: Dave Hansen Cc: Paul Gortmaker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/hugetlb.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 457a98b0809fa6cde7aab8c314a59d99772b445e Author: Hugh Dickins Date: Wed Feb 17 13:11:23 2016 -0800 mm, x86: fix pte_page() crash in gup_pte_range() Commit 3565fce3a659 ("mm, x86: get_user_pages() for dax mappings") has moved up the pte_page(pte) in x86's fast gup_pte_range(), for no discernible reason: put it back where it belongs, after the pte_flags check and the pfn_valid cross-check. That may be the cause of the NULL pointer dereference in gup_pte_range(), seen when vfio called vaddr_get_pfn() when starting a qemu-kvm based VM. Signed-off-by: Hugh Dickins Reported-by: Michael Long Tested-by: Michael Long Acked-by: Dan Williams Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/x86/mm/gup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0918f1c309b86301605650c836ddd2021d311ae2 Author: Jeff Layton Date: Wed Feb 17 13:11:21 2016 -0800 fsnotify: turn fsnotify reaper thread into a workqueue job We don't require a dedicated thread for fsnotify cleanup. Switch it over to a workqueue job instead that runs on the system_unbound_wq. In the interest of not thrashing the queued job too often when there are a lot of marks being removed, we delay the reaper job slightly when queueing it, to allow several to gather on the list. Signed-off-by: Jeff Layton Tested-by: Eryu Guan Reviewed-by: Jan Kara Cc: Eric Paris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/notify/mark.c | 49 ++++++++++++++++++------------------------------- 1 file changed, 18 insertions(+), 31 deletions(-) commit 13d34ac6e55b8284c592c67e166ac614b3c4c1d7 Author: Jeff Layton Date: Wed Feb 17 13:11:18 2016 -0800 Revert "fsnotify: destroy marks with call_srcu instead of dedicated thread" This reverts commit c510eff6beba ("fsnotify: destroy marks with call_srcu instead of dedicated thread"). Eryu reported that he was seeing some OOM kills kick in when running a testcase that adds and removes inotify marks on a file in a tight loop. The above commit changed the code to use call_srcu to clean up the marks. While that does (in principle) work, the srcu callback job is limited to cleaning up entries in small batches and only once per jiffy. It's easily possible to overwhelm that machinery with too many call_srcu callbacks, and Eryu's reproduer did just that. There's also another potential problem with using call_srcu here. While you can obviously sleep while holding the srcu_read_lock, the callbacks run under local_bh_disable, so you can't sleep there. It's possible when putting the last reference to the fsnotify_mark that we'll end up putting a chain of references including the fsnotify_group, uid, and associated keys. While I don't see any obvious ways that that could occurs, it's probably still best to avoid using call_srcu here after all. This patch reverts the above patch. A later patch will take a different approach to eliminated the dedicated thread here. Signed-off-by: Jeff Layton Reported-by: Eryu Guan Tested-by: Eryu Guan Cc: Jan Kara Cc: Eric Paris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/notify/mark.c | 66 +++++++++++++++++++++++++++++++--------- include/linux/fsnotify_backend.h | 5 +-- 2 files changed, 53 insertions(+), 18 deletions(-) commit 48f7df329474b49d83d0dffec1b6186647f11976 Author: Kirill A. Shutemov Date: Wed Feb 17 13:11:15 2016 -0800 mm: fix regression in remap_file_pages() emulation Grazvydas Ignotas has reported a regression in remap_file_pages() emulation. Testcase: #define _GNU_SOURCE #include #include #include #include #define SIZE (4096 * 3) int main(int argc, char **argv) { unsigned long *p; long i; p = mmap(NULL, SIZE, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANONYMOUS, -1, 0); if (p == MAP_FAILED) { perror("mmap"); return -1; } for (i = 0; i < SIZE / 4096; i++) p[i * 4096 / sizeof(*p)] = i; if (remap_file_pages(p, 4096, 0, 1, 0)) { perror("remap_file_pages"); return -1; } if (remap_file_pages(p, 4096 * 2, 0, 1, 0)) { perror("remap_file_pages"); return -1; } assert(p[0] == 1); munmap(p, SIZE); return 0; } The second remap_file_pages() fails with -EINVAL. The reason is that remap_file_pages() emulation assumes that the target vma covers whole area we want to over map. That assumption is broken by first remap_file_pages() call: it split the area into two vma. The solution is to check next adjacent vmas, if they map the same file with the same flags. Fixes: c8d78c1823f4 ("mm: replace remap_file_pages() syscall with emulation") Signed-off-by: Kirill A. Shutemov Reported-by: Grazvydas Ignotas Tested-by: Grazvydas Ignotas Cc: [4.0+] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/mmap.c | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) commit 69a8ec2d8155b9121ca2990d43f8363b8e2bf550 Author: Kirill A. Shutemov Date: Wed Feb 17 13:11:12 2016 -0800 thp, dax: do not try to withdraw pgtable from non-anon VMA DAX doesn't deposit pgtables when it maps huge pages: nothing to withdraw. It can lead to crash. Signed-off-by: Kirill A. Shutemov Cc: Dan Williams Cc: Matthew Wilcox Cc: Andrea Arcangeli Cc: Ross Zwisler Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/huge_memory.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ba4a3550e93415f4ff300810b8d0659949fea193 Author: Gao Pan Date: Mon Jan 18 15:44:01 2016 +0800 spi: imx: fix spi resource leak with dma transfer In spi_imx_dma_transfer(), when desc_rx = dmaengine_prep_slave_sg() fails, the context goes to label no_dma and then return. However, the memory allocated for desc_tx has not been freed yet, which leads to resource leak. Signed-off-by: Gao Pan Reviewed-by: Fugang Duan Signed-off-by: Mark Brown drivers/spi/spi-imx.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit f3bb23764fac042d189129d485d3a9246cb777da Author: Arnd Bergmann Date: Wed Feb 17 23:25:11 2016 +0100 USB: cdc_subset: only build when one driver is enabled This avoids a harmless randconfig warning I get when USB_NET_CDC_SUBSET is enabled, but all of the more specific drivers are not: drivers/net/usb/cdc_subset.c:241:2: #warning You need to configure some hardware for this driver The current behavior is clearly intentional, giving a warning when a user picks a configuration that won't do anything good. The only reason for even addressing this is that I'm getting close to eliminating all 'randconfig' warnings on ARM, and this came up a couple of times. My workaround is to not even build the module when none of the configurations are enable. Alternatively we could simply remove the #warning (nothing wrong for compile-testing), turn it into a runtime warning, or change the Kconfig options into a menu to hide CONFIG_USB_NET_CDC_SUBSET. Signed-off-by: Arnd Bergmann Signed-off-by: David S. Miller drivers/net/usb/Kconfig | 10 ++++++++++ drivers/net/usb/Makefile | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) commit f468a729a2ddb1a26f8c4b98a82050e4030fe458 Author: Jiri Benc Date: Tue Feb 16 22:18:26 2016 +0100 vxlan: do not use fdb in metadata mode In metadata mode, the vxlan interface is not supposed to use the fdb control plane but an external one (openvswitch or static routes). With the current code, packets may leak into the fdb handling code which usually causes them to be dropped anyway but may have strange side effects. Just drop the packets directly when in metadata mode if the destination data are not correctly provided on egress. Signed-off-by: Jiri Benc Signed-off-by: David S. Miller drivers/net/vxlan.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit e60b13e4f56fc56cc0dea845ce0711773d514149 Author: Anton Protopopov Date: Wed Feb 17 11:19:56 2016 -0500 mISDN: prevent possible NULL pointer dereference A return value of the bchannel_get_rxbuf() function is compared with the positive ENOMEM value instead of the negative -ENOMEM value to detect a memory allocation problem. Thus, after a possible memory allocation failure the bc->bch.rx_skb will be NULL which will lead to a NULL pointer dereference. Signed-off-by: Anton Protopopov Signed-off-by: David S. Miller drivers/isdn/hardware/mISDN/netjet.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 449f14f01f65f45f332e3360aa46b3d3571b2cba Author: Anton Protopopov Date: Wed Feb 17 10:54:13 2016 -0500 net: caif: fix erroneous return value The cfrfml_receive() function might return positive value EPROTO Signed-off-by: Anton Protopopov Signed-off-by: David S. Miller net/caif/cfrfml.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 48bb230e8723d7dd87928f0c0c3f6cb1fd5bc9be Author: Anton Protopopov Date: Wed Feb 17 10:53:59 2016 -0500 appletalk: fix erroneous return value The atalk_sendmsg() function might return wrong value ENETUNREACH instead of -ENETUNREACH. Signed-off-by: Anton Protopopov Signed-off-by: David S. Miller net/appletalk/ddp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a09f4af177d2a5b7dc424aba6ba808f4a674ce81 Author: Amitoj Kaur Chawla Date: Wed Feb 17 20:33:26 2016 +0530 lance: Return correct error code Failure of kzalloc should cause the enclosing function to return -ENOMEM, not -ENODEV. Additionally, removed the following checkpatch warnings: ERROR: spaces required around that '==' (ctx:VxV) ERROR: space required before the open parenthesis '(' CHECK: Comparison to NULL could be written "!lp" Signed-off-by: Amitoj Kaur Chawla Signed-off-by: David S. Miller drivers/net/ethernet/amd/lance.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a813104d923339144078939175faf4e66aca19b4 Author: Phil Sutter Date: Wed Feb 17 15:37:43 2016 +0100 IFF_NO_QUEUE: Fix for drivers not calling ether_setup() My implementation around IFF_NO_QUEUE driver flag assumed that leaving tx_queue_len untouched (specifically: not setting it to zero) by drivers would make it possible to assign a regular qdisc to them without having to worry about setting tx_queue_len to a useful value. This was only partially true: I overlooked that some drivers don't call ether_setup() and therefore not initialize tx_queue_len to the default value of 1000. Consequently, removing the workarounds in place for that case in qdisc implementations which cared about it (namely, pfifo, bfifo, gred, htb, plug and sfb) leads to problems with these specific interface types and qdiscs. Luckily, there's already a sanitization point for drivers setting tx_queue_len to zero, which can be reused to assign the fallback value most qdisc implementations used, which is 1. Fixes: 348e3435cbefa ("net: sched: drop all special handling of tx_queue_len == 0") Tested-by: Mathieu Desnoyers Signed-off-by: Phil Sutter Signed-off-by: David S. Miller net/core/dev.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit d13b161c2c7c67401bb222c30302339285ac148e Author: Jiri Benc Date: Wed Feb 17 15:32:53 2016 +0100 gre: clear IFF_TX_SKB_SHARING ether_setup sets IFF_TX_SKB_SHARING but this is not supported by gre as it modifies the skb on xmit. Also, clean up whitespace in ipgre_tap_setup when we're already touching it. Signed-off-by: Jiri Benc Signed-off-by: David S. Miller net/ipv4/ip_gre.c | 5 +++-- net/ipv6/ip6_gre.c | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) commit fc41cdb322a2a513efd60f81133efecd69d4f336 Author: Jiri Benc Date: Wed Feb 17 15:31:35 2016 +0100 geneve: clear IFF_TX_SKB_SHARING ether_setup sets IFF_TX_SKB_SHARING but this is not supported by geneve as it modifies the skb on xmit. Signed-off-by: Jiri Benc Signed-off-by: David S. Miller drivers/net/geneve.c | 1 + 1 file changed, 1 insertion(+) commit 82a0f6b4aba95a21729f56ed0cbe57f2701b4872 Author: Jiri Benc Date: Tue Feb 16 22:16:53 2016 +0100 vxlan: clear IFF_TX_SKB_SHARING ether_setup sets IFF_TX_SKB_SHARING but this is not supported by vxlan as it modifies the skb on xmit. Signed-off-by: Jiri Benc Signed-off-by: David S. Miller drivers/net/vxlan.c | 1 + 1 file changed, 1 insertion(+) commit 8f318526a292c5e7cebb82f3f766b83c22343293 Author: Marc Zyngier Date: Thu Feb 18 19:15:45 2016 +0000 irqchip/gic-v3: Add missing barrier to 32bit version of gic_read_iar() Commit 1a1ebd5 ("irqchip/gic-v3: Make sure read from ICC_IAR1_EL1 is visible on redestributor") fixed the missing barrier on arm64, but forgot to update the 32bit counterpart, which has the same requirements. Let's fix it. Fixes: 1a1ebd5 ("irqchip/gic-v3: Make sure read from ICC_IAR1_EL1 is visible on redestributor") Signed-off-by: Marc Zyngier arch/arm/include/asm/arch_gicv3.h | 1 + 1 file changed, 1 insertion(+) commit aeee0e66c6b46cee311be22cb82735763eceb7c3 Author: David Wragg Date: Thu Feb 18 17:43:29 2016 +0000 geneve: Refine MTU limit Calculate the maximum MTU taking into account the size of headers involved in GENEVE encapsulation, as for other tunnel types. Changes in v3: - Correct comment style Changes in v2: - Conform more closely to ip_tunnel_change_mtu - Exclude GENEVE options from max MTU calculation Signed-off-by: David Wragg Acked-by: Jesse Gross Signed-off-by: David S. Miller drivers/net/geneve.c | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) commit 7716682cc58e305e22207d5bb315f26af6b1e243 Author: Eric Dumazet Date: Thu Feb 18 05:39:18 2016 -0800 tcp/dccp: fix another race at listener dismantle Ilya reported following lockdep splat: kernel: ========================= kernel: [ BUG: held lock freed! ] kernel: 4.5.0-rc1-ceph-00026-g5e0a311 #1 Not tainted kernel: ------------------------- kernel: swapper/5/0 is freeing memory ffff880035c9d200-ffff880035c9dbff, with a lock still held there! kernel: (&(&queue->rskq_lock)->rlock){+.-...}, at: [] inet_csk_reqsk_queue_add+0x28/0xa0 kernel: 4 locks held by swapper/5/0: kernel: #0: (rcu_read_lock){......}, at: [] netif_receive_skb_internal+0x4b/0x1f0 kernel: #1: (rcu_read_lock){......}, at: [] ip_local_deliver_finish+0x3f/0x380 kernel: #2: (slock-AF_INET){+.-...}, at: [] sk_clone_lock+0x19b/0x440 kernel: #3: (&(&queue->rskq_lock)->rlock){+.-...}, at: [] inet_csk_reqsk_queue_add+0x28/0xa0 To properly fix this issue, inet_csk_reqsk_queue_add() needs to return to its callers if the child as been queued into accept queue. We also need to make sure listener is still there before calling sk->sk_data_ready(), by holding a reference on it, since the reference carried by the child can disappear as soon as the child is put on accept queue. Reported-by: Ilya Dryomov Fixes: ebb516af60e1 ("tcp/dccp: fix race at listener dismantle phase") Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller include/net/inet_connection_sock.h | 5 +++-- net/dccp/ipv4.c | 14 +++++++------- net/dccp/ipv6.c | 14 +++++++------- net/ipv4/inet_connection_sock.c | 14 +++++++------- net/ipv4/tcp_ipv4.c | 14 +++++++------- net/ipv6/tcp_ipv6.c | 14 +++++++------- 6 files changed, 38 insertions(+), 37 deletions(-) commit deed49df7390d5239024199e249190328f1651e7 Author: Xin Long Date: Thu Feb 18 21:21:19 2016 +0800 route: check and remove route cache when we get route Since the gc of ipv4 route was removed, the route cached would has no chance to be removed, and even it has been timeout, it still could be used, cause no code to check it's expires. Fix this issue by checking and removing route cache when we get route. Signed-off-by: Xin Long Acked-by: Hannes Frederic Sowa Signed-off-by: David S. Miller include/net/ip_fib.h | 1 + net/ipv4/route.c | 77 ++++++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 64 insertions(+), 14 deletions(-) commit f5bdd66c705484b4bc77eb914be15c1b7881fae7 Author: Alexandra Yates Date: Wed Feb 17 19:36:20 2016 -0800 Adding Intel Lewisburg device IDs for SATA This patch complements the list of device IDs previously added for lewisburg sata. Signed-off-by: Alexandra Yates Signed-off-by: Tejun Heo Cc: stable@vger.kernel.org drivers/ata/ahci.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 018361767a21fb2d5ebd3ac182c04baf8a8b4e08 Author: Gabor Juhos Date: Wed Feb 17 12:58:20 2016 +0100 pata-rb532-cf: get rid of the irq_to_gpio() call The RB532 platform specific irq_to_gpio() implementation has been removed with commit 832f5dacfa0b ("MIPS: Remove all the uses of custom gpio.h"). Now the platform uses the generic stub which causes the following error: pata-rb532-cf pata-rb532-cf: no GPIO found for irq149 pata-rb532-cf: probe of pata-rb532-cf failed with error -2 Drop the irq_to_gpio() call and get the GPIO number from platform data instead. After this change, the driver works again: scsi host0: pata-rb532-cf ata1: PATA max PIO4 irq 149 ata1.00: CFA: CF 1GB, 20080820, max MWDMA4 ata1.00: 1989792 sectors, multi 0: LBA ata1.00: configured for PIO4 scsi 0:0:0:0: Direct-Access ATA CF 1GB 0820 PQ: 0\ ANSI: 5 sd 0:0:0:0: [sda] 1989792 512-byte logical blocks: (1.01 GB/971 MiB) sd 0:0:0:0: [sda] Write Protect is off sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't\ support DPO or FUA sda: sda1 sda2 sd 0:0:0:0: [sda] Attached SCSI disk Fixes: 832f5dacfa0b ("MIPS: Remove all the uses of custom gpio.h") Cc: Alban Bedel Cc: Ralf Baechle Cc: Arnd Bergmann Cc: #v4.3+ Signed-off-by: Gabor Juhos Signed-off-by: Tejun Heo drivers/ata/pata_rb532_cf.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 619fe32640b4b01f370574d50344ae0f62689816 Author: Jamal Hadi Salim Date: Thu Feb 18 07:38:04 2016 -0500 net_sched fix: reclassification needs to consider ether protocol changes actions could change the etherproto in particular with ethernet tunnelled data. Typically such actions, after peeling the outer header, will ask for the packet to be reclassified. We then need to restart the classification with the new proto header. Example setup used to catch this: sudo tc qdisc add dev $ETH ingress sudo $TC filter add dev $ETH parent ffff: pref 1 protocol 802.1Q \ u32 match u32 0 0 flowid 1:1 \ action vlan pop reclassify Fixes: 3b3ae880266d ("net: sched: consolidate tc_classify{,_compat}") Signed-off-by: Jamal Hadi Salim Acked-by: Daniel Borkmann Signed-off-by: David S. Miller net/sched/sch_api.c | 1 + 1 file changed, 1 insertion(+) commit 39712e599b3d01bc34df113f51652ae4e1bdb8bf Merge: 562a9f9 28a01d2 Author: David S. Miller Date: Thu Feb 18 10:44:27 2016 -0500 Merge branch 'mlxsw-fixes' Jiri Pirko says: ==================== mlxsw fixes Another bulk of fixes from Ido. ==================== Signed-off-by: David S. Miller commit 28a01d2d7dbf6d56e6130b3094b7c62a54773f27 Author: Ido Schimmel Date: Thu Feb 18 11:30:02 2016 +0100 mlxsw: spectrum: Allow for PVID deletion When PVID is toggled off on a port member in a VLAN filtering bridge or the PVID VLAN is deleted, make the port drop untagged packets. Reverse the operation when PVID is toggled back on. Set the PVID back to the default (1), when leaving the bridge so that untagged traffic will be directed to the CPU. Fixes: 56ade8fe3fe1 ("mlxsw: spectrum: Add initial support for Spectrum ASIC") Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 2 + drivers/net/ethernet/mellanox/mlxsw/spectrum.h | 1 + .../ethernet/mellanox/mlxsw/spectrum_switchdev.c | 69 +++++++++++++++++++--- 3 files changed, 63 insertions(+), 9 deletions(-) commit 148f472da5db4d78fcfe61807c18f020eb5bd7fc Author: Ido Schimmel Date: Thu Feb 18 11:30:01 2016 +0100 mlxsw: reg: Add the Switch Port Acceptable Frame Types register When VLAN filtering is enabled on a bridge and PVID is deleted from a bridge port, then untagged frames are not allowed to ingress into the bridge from this port. Add the Switch Port Acceptable Frame Types (SPAFT) register, which configures the frame admittance of the port. Fixes: 56ade8fe3fe1 ("mlxsw: spectrum: Add initial support for Spectrum ASIC") Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/reg.h | 58 +++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) commit 1a1503c5396eb7f2edf4b8ef6067853014478c0c Author: Alexandra Yates Date: Wed Feb 17 18:21:21 2016 -0800 i2c: i801: Adding Intel Lewisburg support for iTCO Starting from Intel Sunrisepoint (Skylake PCH) the iTCO watchdog resources have been moved to reside under the i801 SMBus host controller whereas previously they were under the LPC device. This patch adds Intel lewisburg SMBus support for iTCO device. It allows to load watchdog dynamically when the hardware is present. Fixes: cdc5a3110e7c ("i2c: i801: add Intel Lewisburg device IDs") Reviewed-by: Jean Delvare Signed-off-by: Alexandra Yates Signed-off-by: Wolfram Sang Cc: stable@kernel.org drivers/i2c/busses/i2c-i801.c | 2 ++ 1 file changed, 2 insertions(+) commit d061c1caa31d4d9792cfe48a2c6b309a0e01ef46 Author: Bjørn Mork Date: Fri Feb 12 16:40:00 2016 +0100 USB: option: add "4G LTE usb-modem U901" Thomas reports: T: Bus=01 Lev=01 Prnt=01 Port=03 Cnt=01 Dev#= 4 Spd=480 MxCh= 0 D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=05c6 ProdID=6001 Rev=00.00 S: Manufacturer=USB Modem S: Product=USB Modem S: SerialNumber=1234567890ABCDEF C: #Ifs= 5 Cfg#= 1 Atr=e0 MxPwr=500mA I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option I: If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option I: If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan I: If#= 4 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage Cc: Reported-by: Thomas Schäfer Signed-off-by: Bjørn Mork Signed-off-by: Johan Hovold drivers/usb/serial/option.c | 2 ++ 1 file changed, 2 insertions(+) commit a150b085b66c87bd4d362a523cb85ce2b0a2d77b Author: Vineet Gupta Date: Tue Feb 16 12:36:18 2016 +0530 ARCv2: boot report CCMs (Closely Coupled Memories) - ARCv2 uses a seperate BCR for {I,D}CCM base address: ARCompact encoded both base/size in same BCR - Size encoding in common BCR is different for ARCompact/ARCv2 Signed-off-by: Vineet Gupta arch/arc/include/asm/arcregs.h | 32 ++++++++++------- arch/arc/kernel/setup.c | 78 +++++++++++++++++++++++++++--------------- 2 files changed, 70 insertions(+), 40 deletions(-) commit 98341f7dc9d9080d7999654ab589657272559b04 Author: Vineet Gupta Date: Mon Feb 15 15:58:42 2016 +0530 ARCv2: boot print Low Latency Memory Signed-off-by: Vineet Gupta arch/arc/kernel/mcip.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 0eca6fdb3193410fbe66b6f064431cc394513e82 Author: Vineet Gupta Date: Tue Feb 16 09:42:57 2016 +0530 ARC: Assume multiplier is always present It is unlikely that designs running Linux will not have multiplier. Further the current support is not complete as tool don't generate a multilib w/o multiplier. Signed-off-by: Vineet Gupta arch/arc/Kconfig | 8 -------- arch/arc/Makefile | 4 ---- arch/arc/kernel/setup.c | 2 -- 3 files changed, 14 deletions(-) commit 6627ae19385283b89356a199d7f03c75ba35fb29 Author: Ken Lin Date: Mon Feb 1 14:57:25 2016 -0500 USB: cp210x: add IDs for GE B650V3 and B850V3 boards Add USB ID for cp2104/5 devices on GE B650v3 and B850v3 boards. Signed-off-by: Ken Lin Signed-off-by: Akshay Bhat Cc: stable Signed-off-by: Johan Hovold drivers/usb/serial/cp210x.c | 2 ++ 1 file changed, 2 insertions(+) commit 3158a8d416f4e1b79dcc867d67cb50013140772c Author: Andrey Skvortsov Date: Fri Jan 29 00:07:30 2016 +0300 USB: option: add support for SIM7100E $ lsusb: Bus 001 Device 101: ID 1e0e:9001 Qualcomm / Option $ usb-devices: T: Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#=101 Spd=480 MxCh= 0 D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 2 P: Vendor=1e0e ProdID=9001 Rev= 2.32 S: Manufacturer=SimTech, Incorporated S: Product=SimTech, Incorporated S: SerialNumber=0123456789ABCDEF C:* #Ifs= 7 Cfg#= 1 Atr=80 MxPwr=500mA I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option I:* If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option I:* If#= 5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan I:* If#= 6 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none) The last interface (6) is used for Android Composite ADB interface. Serial port layout: 0: QCDM/DIAG 1: NMEA 2: AT 3: AT/PPP 4: audio Signed-off-by: Andrey Skvortsov Cc: stable Signed-off-by: Johan Hovold drivers/usb/serial/option.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 67ec1072b053c15564e6090ab30127895dc77a89 Author: Takashi Iwai Date: Wed Feb 17 14:30:26 2016 +0100 ALSA: pcm: Fix rwsem deadlock for non-atomic PCM stream A non-atomic PCM stream may take snd_pcm_link_rwsem rw semaphore twice in the same code path, e.g. one in snd_pcm_action_nonatomic() and another in snd_pcm_stream_lock(). Usually this is OK, but when a write lock is issued between these two read locks, the problem happens: the write lock is blocked due to the first reade lock, and the second read lock is also blocked by the write lock. This eventually deadlocks. The reason is the way rwsem manages waiters; it's queued like FIFO, so even if the writer itself doesn't take the lock yet, it blocks all the waiters (including reads) queued after it. As a workaround, in this patch, we replace the standard down_write() with an spinning loop. This is far from optimal, but it's good enough, as the spinning time is supposed to be relatively short for normal PCM operations, and the code paths requiring the write lock aren't called so often. Reported-by: Vinod Koul Tested-by: Ramesh Babu Cc: # v3.18+ Signed-off-by: Takashi Iwai sound/core/pcm_native.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) commit f4eafd8bcd5229e998aa252627703b8462c3b90f Author: Toshi Kani Date: Wed Feb 17 18:16:54 2016 -0700 x86/mm: Fix vmalloc_fault() to handle large pages properly A kernel page fault oops with the callstack below was observed when a read syscall was made to a pmem device after a huge amount (>512GB) of vmalloc ranges was allocated by ioremap() on a x86_64 system: BUG: unable to handle kernel paging request at ffff880840000ff8 IP: vmalloc_fault+0x1be/0x300 PGD c7f03a067 PUD 0 Oops: 0000 [#1] SM Call Trace: __do_page_fault+0x285/0x3e0 do_page_fault+0x2f/0x80 ? put_prev_entity+0x35/0x7a0 page_fault+0x28/0x30 ? memcpy_erms+0x6/0x10 ? schedule+0x35/0x80 ? pmem_rw_bytes+0x6a/0x190 [nd_pmem] ? schedule_timeout+0x183/0x240 btt_log_read+0x63/0x140 [nd_btt] : ? __symbol_put+0x60/0x60 ? kernel_read+0x50/0x80 SyS_finit_module+0xb9/0xf0 entry_SYSCALL_64_fastpath+0x1a/0xa4 Since v4.1, ioremap() supports large page (pud/pmd) mappings in x86_64 and PAE. vmalloc_fault() however assumes that the vmalloc range is limited to pte mappings. vmalloc faults do not normally happen in ioremap'd ranges since ioremap() sets up the kernel page tables, which are shared by user processes. pgd_ctor() sets the kernel's PGD entries to user's during fork(). When allocation of the vmalloc ranges crosses a 512GB boundary, ioremap() allocates a new pud table and updates the kernel PGD entry to point it. If user process's PGD entry does not have this update yet, a read/write syscall to the range will cause a vmalloc fault, which hits the Oops above as it does not handle a large page properly. Following changes are made to vmalloc_fault(). 64-bit: - No change for the PGD sync operation as it handles large pages already. - Add pud_huge() and pmd_huge() to the validation code to handle large pages. - Change pud_page_vaddr() to pud_pfn() since an ioremap range is not directly mapped (while the if-statement still works with a bogus addr). - Change pmd_page() to pmd_pfn() since an ioremap range is not backed by struct page (while the if-statement still works with a bogus addr). 32-bit: - No change for the sync operation since the index3 PGD entry covers the entire vmalloc range, which is always valid. (A separate change to sync PGD entry is necessary if this memory layout is changed regardless of the page size.) - Add pmd_huge() to the validation code to handle large pages. This is for completeness since vmalloc_fault() won't happen in ioremap'd ranges as its PGD entry is always valid. Reported-by: Henning Schild Signed-off-by: Toshi Kani Acked-by: Borislav Petkov Cc: # 4.1+ Cc: Andrew Morton Cc: Andy Lutomirski Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Luis R. Rodriguez Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Toshi Kani Cc: linux-mm@kvack.org Cc: linux-nvdimm@lists.01.org Link: http://lkml.kernel.org/r/1455758214-24623-1-git-send-email-toshi.kani@hpe.com Signed-off-by: Ingo Molnar arch/x86/mm/fault.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit 562a9f91a0300ecaaf28722f57bcdd9cd5f38f0e Author: Insu Yun Date: Mon Feb 15 21:23:47 2016 -0500 et131x: check return value of dma_alloc_coherent For error handling, dma_alloc_coherent's return value needs to be checked, not argument. Signed-off-by: Insu Yun Signed-off-by: David S. Miller drivers/net/ethernet/agere/et131x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4fbe366ce304d836d53685c1dd26865dc1fea66c Merge: 1eea84b ad2eceb Author: David S. Miller Date: Wed Feb 17 22:24:57 2016 -0500 Merge branch 'thunderx-fixes' Sunil Goutham says: ==================== net: thunderx: Miscellaneous fixes This patch series fixes couple of issues w.r.t multiqset mode and receive packet statastics. ==================== Signed-off-by: David S. Miller commit ad2ecebd67d8a80fe5412d11df375a5ed2db7cd1 Author: Sunil Goutham Date: Tue Feb 16 16:29:51 2016 +0530 net: thunderx: Fix receive packet stats Counting rx packets for every CQE_RX in CQ irq handler is incorrect. Synchronization is missing when multiple queues are receiving packets simultaneously. Like transmit packet stats use HW stats here. Also removed unused 'cqe_type' parameter in nicvf_rcv_pkt_handler(). Signed-off-by: Sunil Goutham Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nicvf_main.c | 11 ++++++----- drivers/net/ethernet/cavium/thunder/nicvf_queues.c | 8 ++------ drivers/net/ethernet/cavium/thunder/nicvf_queues.h | 3 +-- 3 files changed, 9 insertions(+), 13 deletions(-) commit 8d210d54c5250c52b69266f299e64fe8356f9453 Author: Sunil Goutham Date: Tue Feb 16 16:29:50 2016 +0530 net: thunderx: Fix for HW TSO not enabled for secondary qsets For secondary Qsets 'hw_tso' is not getting set as probe() returns much earlier. Fixed it by moving silicon revision check. Signed-off-by: Sunil Goutham Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nicvf_main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 6a9bab79bb79bd9b2eda16f0aba1b4c43f677be9 Author: Sunil Goutham Date: Tue Feb 16 16:29:49 2016 +0530 net: thunderx: Fix for multiqset not configured upon interface toggle When a interface is assigned morethan 8 queues and the logical interface is toggled i.e down & up, additional queues or qsets are not initialized as secondary qset count is being set to zero while tearing down. Signed-off-by: Sunil Goutham Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nicvf_main.c | 1 - 1 file changed, 1 deletion(-) commit 1eea84b74cd28773c37bf1bda69915f7b9a67efc Author: Insu Yun Date: Mon Feb 15 21:30:33 2016 -0500 tcp: correctly crypto_alloc_hash return check crypto_alloc_hash never returns NULL Signed-off-by: Insu Yun Signed-off-by: David S. Miller net/ipv4/tcp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 73dcb556538a4192222c3a919a51e1701bae553b Author: Florian Fainelli Date: Wed Feb 17 18:43:22 2016 -0800 net: dsa: Unregister slave_dev in error path With commit 0071f56e46da ("dsa: Register netdev before phy"), we are now trying to free a network device that has been previously registered, and in case of errors, this will make us hit the BUG_ON(dev->reg_state != NETREG_UNREGISTERED) condition. Fix this by adding a missing unregister_netdev() before free_netdev(). Fixes: 0071f56e46da ("dsa: Register netdev before phy") Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller net/dsa/slave.c | 1 + 1 file changed, 1 insertion(+) commit 67b4eab91caf2ad574cab1b17ae09180ea2e116e Author: Bjorn Helgaas Date: Wed Feb 17 12:26:38 2016 -0600 Revert "PCI: Add helpers to manage pci_dev->irq and pci_dev->irq_managed" Revert 811a4e6fce09 ("PCI: Add helpers to manage pci_dev->irq and pci_dev->irq_managed"). This is part of reverting 991de2e59090 ("PCI, x86: Implement pcibios_alloc_irq() and pcibios_free_irq()") to fix regressions it introduced. Link: https://bugzilla.kernel.org/show_bug.cgi?id=111211 Fixes: 991de2e59090 ("PCI, x86: Implement pcibios_alloc_irq() and pcibios_free_irq()") Signed-off-by: Bjorn Helgaas Acked-by: Rafael J. Wysocki CC: Jiang Liu arch/x86/pci/intel_mid_pci.c | 4 ++-- arch/x86/pci/irq.c | 10 ++++++---- drivers/acpi/pci_irq.c | 10 ++++++---- include/linux/pci.h | 17 ----------------- 4 files changed, 14 insertions(+), 27 deletions(-) commit aeb67ae7d1a318c8456345b8012474be6a3ff74a Author: Oleksij Rempel Date: Fri Jan 29 10:57:53 2016 +0100 irqchip/mxs: Add missing set_handle_irq() The rework of the driver missed to move the call to set_handle_irq() into asm9260_of_init(). As a consequence no interrupt entry point is installed and no interrupts are delivered Solution is: Install the interrupt entry handler. Fixes: 7e4ac676ee ("irqchip/mxs: Add Alphascale ASM9260 support") Signed-off-by: Oleksij Rempel Link: https://lkml.kernel.org/r/1454061473-24957-1-git-send-email-linux@rempel-privat.de Signed-off-by: Jason Cooper drivers/irqchip/irq-mxs.c | 1 + 1 file changed, 1 insertion(+) commit 79be1a1c9090048f6f327204b8b1cf4ac067b487 Author: Clemens Gruber Date: Mon Feb 15 23:46:45 2016 +0100 phy: marvell: Fix and unify reg-init behavior For the Marvell 88E1510, marvell_of_reg_init was called too late, in the config_aneg function. Since commit 113c74d83eef ("net: phy: turn carrier off on phy attach"), this lead to the link not coming up at boot anymore, due to the phy state machine being stuck at waiting for interrupts (off by default on the 88E1510). For seven other Marvell PHYs, marvell_of_reg_init was not called at all. Add a generic marvell_config_init function, which in turn calls marvell_of_reg_init. PHYs, which already have a specific config_init function with a call to marvell_of_reg_init, are left untouched. The generic marvell_config_init function is called for all the others, to get consistent behavior across all Marvell PHYs. Fixes: 113c74d83eef ("net: phy: turn carrier off on phy attach") Signed-off-by: Clemens Gruber Reviewed-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/marvell.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit 7dcd182bec271ab341b05b66b6006995795fc0e7 Author: Jessica Yu Date: Tue Feb 16 17:32:33 2016 -0500 ftrace/module: remove ftrace module notifier Remove the ftrace module notifier in favor of directly calling ftrace_module_enable() and ftrace_release_mod() in the module loader. Hard-coding the function calls directly in the module loader removes dependence on the module notifier call chain and provides better visibility and control over what gets called when, which is important to kernel utilities such as livepatch. This fixes a notifier ordering issue in which the ftrace module notifier (and hence ftrace_module_enable()) for coming modules was being called after klp_module_notify(), which caused livepatch modules to initialize incorrectly. This patch removes dependence on the module notifier call chain in favor of hard coding the corresponding function calls in the module loader. This ensures that ftrace and livepatch code get called in the correct order on patch module load and unload. Fixes: 5156dca34a3e ("ftrace: Fix the race between ftrace and insmod") Signed-off-by: Jessica Yu Reviewed-by: Steven Rostedt Reviewed-by: Petr Mladek Acked-by: Rusty Russell Reviewed-by: Josh Poimboeuf Reviewed-by: Miroslav Benes Signed-off-by: Jiri Kosina include/linux/ftrace.h | 6 ++++-- kernel/module.c | 4 ++++ kernel/trace/ftrace.c | 36 +----------------------------------- 3 files changed, 9 insertions(+), 37 deletions(-) commit 29e73269aa4d36f92b35610c25f8b01c789b0dc8 Author: Guillaume Nault Date: Mon Feb 15 17:01:10 2016 +0100 pppoe: fix reference counting in PPPoE proxy Drop reference on the relay_po socket when __pppoe_xmit() succeeds. This is already handled correctly in the error path. Signed-off-by: Guillaume Nault Signed-off-by: David S. Miller drivers/net/ppp/pppoe.c | 2 ++ 1 file changed, 2 insertions(+) commit 705bcdda81eda8b4b4c564c4be7b8cfad6a180d6 Author: Geert Uytterhoeven Date: Mon Feb 15 13:41:31 2016 +0100 ravb: Update DT binding example for final CPG/MSSR bindings The example in the DT binding documentation uses the preliminary DT bindings for the r8a7795 MSTP clocks, which never went upstream. Update the example to use the DT bindings for the upstream Clock Pulse Generator / Module Standby and Software Reset hardware block. Signed-off-by: Geert Uytterhoeven Reviewed-by: Simon Horman Signed-off-by: David S. Miller Documentation/devicetree/bindings/net/renesas,ravb.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9ffa8a1863962b0fc29f4670c3b949d87f1b54bf Merge: 853effc 6a9863a Author: David S. Miller Date: Wed Feb 17 15:52:59 2016 -0500 Merge branch 'mlxsw-fixes' Jiri Pirko says: ==================== mlxsw fixes Just a couple of fixes from Ido. ==================== Signed-off-by: David S. Miller commit 6a9863a62206dad8ad236bcde489978aedb072fa Author: Ido Schimmel Date: Mon Feb 15 13:19:54 2016 +0100 mlxsw: spectrum: Set STP state when leaving 802.1D bridge When a VLAN device leaves a bridge its STP state is set to DISABLED, which causes the hardware to discard any packets coming through the port with this VLAN. Fix that by setting STP state to FORWARDING when the device leaves its bridge and allow traffic to be directed to CPU. Fixes: 26f0e7fb15de ("mlxsw: spectrum: Add support for VLAN devices bridging") Reported-by: Elad Raz Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 1e5ad30c649a82a062ce79a87c1296e6c6f328c2 Author: Ido Schimmel Date: Mon Feb 15 13:19:53 2016 +0100 mlxsw: Treat local port 64 as valid MLXSW_PORT_MAX_PORTS represents the maximum number of local ports, which is 65 for both ASICs (SwitchX-2 and Spectrum) supported by this driver. Fixes: 93c1edb27f9e ("mlxsw: Introduce Mellanox switch driver core") Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/port.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 853effc55b0f975abd6d318cca486a9c1b67e10f Author: Mark Tomlinson Date: Mon Feb 15 16:24:44 2016 +1300 l2tp: Fix error creating L2TP tunnels A previous commit (33f72e6) added notification via netlink for tunnels when created/modified/deleted. If the notification returned an error, this error was returned from the tunnel function. If there were no listeners, the error code ESRCH was returned, even though having no listeners is not an error. Other calls to this and other similar notification functions either ignore the error code, or filter ESRCH. This patch checks for ESRCH and does not flag this as an error. Reviewed-by: Hamish Martin Signed-off-by: Mark Tomlinson Signed-off-by: David S. Miller net/l2tp/l2tp_netlink.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) commit 2850713576e81e3b887cd92a9965fba0dd1717c0 Merge: c28b947 18f922d0 Author: Linus Torvalds Date: Wed Feb 17 11:59:23 2016 -0800 Merge branch 'for-linus' of git://git.kernel.dk/linux-block Pull block fixes from Jens Axboe: "A collection of fixes from the past few weeks that should go into 4.5. This contains: - Overflow fix for sysfs discard show function from Alan. - A stacking limit init fix for max_dev_sectors, so we don't end up artificially capping some use cases. From Keith. - Have blk-mq proper end unstarted requests on a dying queue, instead of pushing that to the driver. From Keith. - NVMe: - Update to Kconfig description for NVME_SCSI, since it was vague and having it on is important for some SUSE distros. From Christoph. - Set of fixes from Keith, around surprise removal. Also kills the no-merge flag, so it supports merging. - Set of fixes for lightnvm from Matias, Javier, and Wenwei. - Fix null_blk oops when asked for lightnvm, but not available. From Matias. - Copy-to-user EINTR fix from Hannes, fixing a case where SG_IO fails if interrupted by a signal. - Two floppy fixes from Jiri, fixing signal handling and blocking open. - A use-after-free fix for O_DIRECT, from Mike Krinkin. - A block module ref count fix from Roman Pen. - An fs IO wait accounting fix for O_DSYNC from Stephane Gasparini. - Smaller reallo fix for xen-blkfront from Bob Liu. - Removal of an unused struct member in the deadline IO scheduler, from Tahsin. - Also from Tahsin, properly initialize inode struct members associated with cgroup writeback, if enabled. - From Tejun, ensure that we keep the superblock pinned during cgroup writeback" * 'for-linus' of git://git.kernel.dk/linux-block: (25 commits) blk: fix overflow in queue_discard_max_hw_show writeback: initialize inode members that track writeback history writeback: keep superblock pinned during cgroup writeback association switches bio: return EINTR if copying to user space got interrupted NVMe: Rate limit nvme IO warnings NVMe: Poll device while still active during remove NVMe: Requeue requests on suspended queues NVMe: Allow request merges NVMe: Fix io incapable return values blk-mq: End unstarted requests on dying queue block: Initialize max_dev_sectors to 0 null_blk: oops when initializing without lightnvm block: fix module reference leak on put_disk() call for cgroups throttle nvme: fix Kconfig description for BLK_DEV_NVME_SCSI kernel/fs: fix I/O wait not accounted for RW O_DSYNC floppy: refactor open() flags handling lightnvm: allow to force mm initialization lightnvm: check overflow and correct mlc pairs lightnvm: fix request intersection locking in rrpc lightnvm: warn if irqs are disabled in lock laddr ... commit c28b947d048d6539389309af70be0ac599122ec0 Merge: 35683dd 43f3408 Author: Linus Torvalds Date: Wed Feb 17 11:50:53 2016 -0800 Merge tag 'devicetree-fixes-for-4.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux Pull DeviceTree fixes from Rob Herring: - Fix irq msi-map calculation for nonzero rid-base. - Binding doc updates for GICv3, fsl-imx-uart, and S3C RTC. * tag 'devicetree-fixes-for-4.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: rtc: s3c: Document required clocks in the DT binding serial: fsl-imx-uart: Fix typo in fsl,dte-mode description dt-bindings: arm, gic-v3: require that reserved cells are always 0 of/irq: Fix msi-map calculation for nonzero rid-base commit 35683dd326b89751b5b45cb188978c83b22729c5 Merge: a9f70bd dada168 Author: Linus Torvalds Date: Wed Feb 17 11:45:10 2016 -0800 Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux Pull drm fixes from Dave Airlie: "This has two main sets of fixes: - A bunch of Exynos fixes, mainly for their MIC component. - vblank regression fixes from Mario, apparantly some changes in 4.4 caused some vblank breakage on radeon/nouveau, this set fixes all the issues seen. There is also a revert of one of the MST changse, that I was overzealous in including, that broke 30" MST monitors, and two qxl fixes" * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: drm/qxl: fix erroneous return value drm/nouveau/display: Enable vblank irqs after display engine is on again. drm/radeon/pm: Handle failure of drm_vblank_get. drm: Fix treatment of drm_vblank_offdelay in drm_vblank_on() (v2) drm: Fix drm_vblank_pre/post_modeset regression from Linux 4.4 drm: Prevent vblank counter bumps > 1 with active vblank clients. (v2) drm: No-Op redundant calls to drm_vblank_off() (v2) drm/qxl: use kmalloc_array to alloc reloc_info in qxl_process_single_command Revert "drm/dp/mst: change MST detection scheme" drm/exynos/decon: fix disable clocks order drm/exynos: fix incorrect cpu address for dma_mmap_attrs() drm/exynos: exynos5433_decon: fix wrong state in decon_vblank_enable drm/exynos: exynos5433_decon: fix wrong state assignment in decon_enable drm/exynos: dsi: restore support for drm bridge drm/exynos: mic: make all functions static drm/exynos: mic: convert to component framework drm/exynos: mic: use devm_clk interface drm/exynos: fix types for compilation on 64bit architectures drm/exynos: ipp: fix incorrect format specifiers in debug messages drm/exynos: depend on ARCH_EXYNOS for DRM_EXYNOS commit a9f70bd4e787191ca27941e4dd9c1de00593fb58 Merge: 65c23c6 b33c8ff Author: Linus Torvalds Date: Wed Feb 17 11:35:41 2016 -0800 Merge tag 'trace-fixes-v4.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace Pull tracing fixes from Steven Rostedt: "This includes two fixes. The first is something that has come up a few times and has been worked out individually, but it's come up now enough that the problem should be generic. Tracepoints are protected by RCU sched. There are several tracepoints within core infrastructure like kfree(). If a tracepoint is called when the CPU is going down, or when it's coming up but has yet to be recognized by RCU, a RCU warning is triggered. This is a true bug as that tracepoint is not protected by RCU. Usually, this is taken care of by testing for cpu online as a tracepoint condition. But as this is happening more often, moving it from a individual tracepoint to a check in the tracepoint infrastructure is more robust. Note, there is now a duplicate of a cpu online test, because this update does not remove the individual checks. But the overhead is small enough that the removal can be done in another release. The second change is strange linker breakage due to the branch tracer's builtin_constant_p() check failing, and treating the condition as a variable instead of a constant. Arnd Bergmann found that this can be fixed by testing !!(cond) instead of just (cond)" * tag 'trace-fixes-v4.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: tracing: Fix freak link error caused by branch tracer tracepoints: Do not trace when cpu is offline commit fe25d078874f2c29c38f4160467d74f5756537c9 Author: Bjorn Helgaas Date: Wed Feb 17 12:26:33 2016 -0600 Revert "x86/PCI: Don't alloc pcibios-irq when MSI is enabled" Revert 8affb487d4a4 ("x86/PCI: Don't alloc pcibios-irq when MSI is enabled"). This is part of reverting 991de2e59090 ("PCI, x86: Implement pcibios_alloc_irq() and pcibios_free_irq()") to fix regressions it introduced. Link: https://bugzilla.kernel.org/show_bug.cgi?id=111211 Fixes: 991de2e59090 ("PCI, x86: Implement pcibios_alloc_irq() and pcibios_free_irq()") Signed-off-by: Bjorn Helgaas Acked-by: Rafael J. Wysocki CC: Jiang Liu CC: Joerg Roedel arch/x86/pci/common.c | 8 -------- 1 file changed, 8 deletions(-) commit 2eca0d6ceea1f108b2d3ac81fb34698c4fd41006 Author: Shanker Donthineni Date: Tue Feb 16 18:00:36 2016 -0600 irqchip/gicv3-its: Avoid cache flush beyond ITS_BASERn memory size Function its_alloc_tables() maintains two local variables, "order" and and "alloc_size", to hold memory size that has been allocated to ITS_BASEn. We don't always refresh the variable alloc_size whenever value of the variable order changes, causing the following two problems. - Cache flush operation with size more than required. - Information reported by pr_info is not correct. Use a helper macro that converts page order to size in bytes instead of variable "alloc_size" to fix both the problems. Signed-off-by: Shanker Donthineni Signed-off-by: Marc Zyngier drivers/irqchip/irq-gic-v3-its.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 18f922d037211a15543af935861bf92161e697e9 Author: Alan Date: Wed Feb 17 14:15:30 2016 +0000 blk: fix overflow in queue_discard_max_hw_show We get this right for queue_discard_max_show but not max_hw_show. Follow the same pattern as queue_discard_max_show instead so that we don't truncate. Signed-off-by: Alan Cox Signed-off-by: Jens Axboe block/blk-sysfs.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 437b300c6b28040ad87e4caf042e05f2c5f13c6d Author: Scott Mayhew Date: Tue Feb 16 16:20:25 2016 -0500 auth_gss: fix panic in gss_pipe_downcall() in fips mode On Mon, 15 Feb 2016, Trond Myklebust wrote: > Hi Scott, > > On Mon, Feb 15, 2016 at 2:28 PM, Scott Mayhew wrote: > > md5 is disabled in fips mode, and attempting to import a gss context > > using md5 while in fips mode will result in crypto_alg_mod_lookup() > > returning -ENOENT, which will make its way back up to > > gss_pipe_downcall(), where the BUG() is triggered. Handling the -ENOENT > > allows for a more graceful failure. > > > > Signed-off-by: Scott Mayhew > > --- > > net/sunrpc/auth_gss/auth_gss.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/net/sunrpc/auth_gss/auth_gss.c b/net/sunrpc/auth_gss/auth_gss.c > > index 799e65b..c30fc3b 100644 > > --- a/net/sunrpc/auth_gss/auth_gss.c > > +++ b/net/sunrpc/auth_gss/auth_gss.c > > @@ -737,6 +737,9 @@ gss_pipe_downcall(struct file *filp, const char __user *src, size_t mlen) > > case -ENOSYS: > > gss_msg->msg.errno = -EAGAIN; > > break; > > + case -ENOENT: > > + gss_msg->msg.errno = -EPROTONOSUPPORT; > > + break; > > default: > > printk(KERN_CRIT "%s: bad return from " > > "gss_fill_context: %zd\n", __func__, err); > > -- > > 2.4.3 > > > > Well debugged, but I unfortunately do have to ask if this patch is > sufficient? In addition to -ENOENT, and -ENOMEM, it looks to me as if > crypto_alg_mod_lookup() can also fail with -EINTR, -ETIMEDOUT, and > -EAGAIN. Don't we also want to handle those? You're right, I was focusing on the panic that I could easily reproduce. I'm still not sure how I could trigger those other conditions. > > In fact, peering into the rats nest that is > gss_import_sec_context_kerberos(), it looks as if that is just a tiny > subset of all the errors that we might run into. Perhaps the right > thing to do here is to get rid of the BUG() (but keep the above > printk) and just return a generic error? That sounds fine to me -- updated patch attached. -Scott >From d54c6b64a107a90a38cab97577de05f9a4625052 Mon Sep 17 00:00:00 2001 From: Scott Mayhew Date: Mon, 15 Feb 2016 15:12:19 -0500 Subject: [PATCH] auth_gss: remove the BUG() from gss_pipe_downcall() Instead return a generic error via gss_msg->msg.errno. None of the errors returned by gss_fill_context() should necessarily trigger a kernel panic. Signed-off-by: Scott Mayhew Signed-off-by: Trond Myklebust net/sunrpc/auth_gss/auth_gss.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c89757061a4e4017a21ef632dc100449a7bab7dd Author: Kinglong Mee Date: Mon Feb 1 09:39:29 2016 +0800 pnfs/blocklayout: fix a memeory leak when using,vmalloc_to_page unreferenced object 0xffffc90000abf000 (size 16900): comm "fsync02", pid 15765, jiffies 4297431627 (age 423.772s) hex dump (first 32 bytes): 00 00 00 00 00 00 00 00 00 a0 c2 19 00 88 ff ff ................ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ backtrace: [] kmemleak_alloc+0x4e/0xb0 [] __vmalloc_node_range+0x231/0x280 [] __vmalloc+0x4a/0x50 [] ext_tree_prepare_commit+0x231/0x2e0 [blocklayoutdriver] [] bl_prepare_layoutcommit+0xe/0x10 [blocklayoutdriver] [] pnfs_layoutcommit_inode+0x29c/0x330 [nfsv4] [] pnfs_generic_sync+0x13/0x20 [nfsv4] [] nfs4_file_fsync+0x58/0x150 [nfsv4] [] vfs_fsync_range+0x4b/0xb0 [] do_fsync+0x3d/0x70 [] SyS_fsync+0x10/0x20 [] entry_SYSCALL_64_fastpath+0x12/0x76 [] 0xffffffffffffffff v2, add missing include header Signed-off-by: Kinglong Mee Signed-off-by: Trond Myklebust fs/nfs/blocklayout/extent_tree.c | 10 ++++++++-- include/linux/nfs_xdr.h | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) commit 4bdf87ebda016b864b388f96ae349e76983ebac4 Author: Christoph Hellwig Date: Wed Feb 17 15:48:28 2016 +0100 nfs4: fix stateid handling for the NFS v4.2 operations The newly added NFS v4.2 operations (ALLOCATE, DEALLOCATE, SEEK and CLONE) use a helper called nfs42_set_rw_stateid to select a stateid that is sent to the server. But they don't set the inode and state fields in the nfs4_exception structure, and this don't partake in the stateid recovery protocol. Because of this they will simply return errors insted of trying to recover a stateid when the server return a BAD_STATEID error. Additionally CLONE has the problem that it operates on two files and thus two stateids, and thus needs to call the exception handler twice to recover stateids. While we're at it stop grabbing an addititional reference to the open context in all these operations - having the file open guarantees that the open context won't go away. All this can be produces with the generic/168 and generic/170 tests in xfstests which stress the CLONE stateid handling. Signed-off-by: Christoph Hellwig Signed-off-by: Trond Myklebust fs/nfs/nfs42proc.c | 119 ++++++++++++++++++++++++++++++++++------------------- 1 file changed, 76 insertions(+), 43 deletions(-) commit d9dfd8d741683347ee159d25f5b50c346a0df557 Author: Benjamin Coddington Date: Wed Feb 17 10:41:41 2016 -0500 NFSv4: Fix a dentry leak on alias use In the case where d_add_unique() finds an appropriate alias to use it will have already incremented the reference count. An additional dget() to swap the open context's dentry is unnecessary and will leak a reference. Signed-off-by: Benjamin Coddington Fixes: 275bb307865a3 ("NFSv4: Move dentry instantiation into the NFSv4-...") Cc: stable@vger.kernel.org # 3.10+ Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d148bbd37a52b030b131ac5408c0f8293325ca0b Author: David Rivshin Date: Fri Feb 12 19:45:36 2016 -0500 drivers: net: cpsw-phy-sel: add dev_warn() for unsupported PHY mode The cpsw-phy-sel driver supports only MII, RMII, and RGMII PHY modes, and silently handled any other values as if MII was specified. In a case where the PHY mode was incorrectly specified, or a bug elsewhere, there would be no indication of a problem. If MII was the correct mode, then this will go unnoticed, otherwise the symptom will be a failure to transmit/receive data over the RMII/RGMII link. Add a dev_warn() to make this condition obvious and provide a breadcrumb to follow. Cc: Mugunthan V N Signed-off-by: David Rivshin Acked-by: Mugunthan V N Signed-off-by: David S. Miller drivers/net/ethernet/ti/cpsw-phy-sel.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit cd772de358d6e001d308292c542f7908511287a4 Author: Woojung.Huh@microchip.com Date: Thu Feb 11 17:29:47 2016 +0000 phy: keep pause flags in phy driver features genphy_config_init() masked out pause flags set in phy driver structure. Pause flags needs to be preserved in phydev->supported & phydev->advertising. Signed-off-by: Woojung Huh Signed-off-by: David S. Miller drivers/net/phy/phy_device.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1543b765d21c09e9f7c2a38a00f56433bbdc28ad Merge: aac8d3c 925ab1a Author: David S. Miller Date: Wed Feb 17 10:29:27 2016 -0500 Merge branch 'mlx4-fixes' Or Gerlitz says: ==================== Mellanox 10/40G mlx4 driver fixes for 4.5-rc Bunch of fixes from the team to the mlx4 Eth and core drivers. Series generated against net commit aac8d3c "qmi_wwan: add "4G LTE usb-modem U901"" Please push patches 1,2 and 6 to -stable as well changes from v0: - handled another wrongly accounted HW counter in patch #1 (Rick) - fixed coding style issues in patch #4 (Sergei) ==================== Signed-off-by: David S. Miller commit 925ab1aa9394bbaeac47ee5b65d3fdf0fb8135cf Author: Eugenia Emantayev Date: Wed Feb 17 17:24:27 2016 +0200 net/mlx4_en: Avoid changing dev->features directly in run-time It's forbidden to manually change dev->features in run-time. Currently, this is done in the driver to make sure that GSO_UDP_TUNNEL is advertized only when VXLAN tunnel is set. However, since the stack actually does features intersection with hw_enc_features, we can safely revert to advertizing features early when registering the netdevice. Fixes: f4a1edd56120 ('net/mlx4_en: Advertize encapsulation offloads [...]') Signed-off-by: Eugenia Emantayev Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 85743f1eb34548ba4b056d2f184a3d107a3b8917 Author: Huy Nguyen Date: Wed Feb 17 17:24:26 2016 +0200 net/mlx4_core: Set UAR page size to 4KB regardless of system page size problem description: The current code sets UAR page size equal to system page size. The ConnectX-3 and ConnectX-3 Pro HWs require minimum 128 UAR pages. The mlx4 kernel drivers are not loaded if there is less than 128 UAR pages. solution: Always set UAR page to 4KB. This allows more UAR pages if the OS has PAGE_SIZE larger than 4KB. For example, PowerPC kernel use 64KB system page size, with 4MB uar region, there are 4MB/2/64KB = 32 uars (half for uar, half for blueflame). This does not meet minimum 128 UAR pages requirement. With 4KB UAR page, there are 4MB/2/4KB = 512 uars which meet the minimum requirement. Note that only codes in mlx4_core that deal with firmware know that uar page size is 4KB. Codes that deal with usr page in cq and qp context (mlx4_ib, mlx4_en and part of mlx4_core) still have the same assumption that uar page size equals to system page size. Note that with this implementation, on 64KB system page size kernel, there are 16 uars per system page but only one uars is used. The other 15 uars are ignored because of the above assumption. Regarding SR-IOV, mlx4_core in hypervisor will set the uar page size to 4KB and mlx4_core code in virtual OS will obtain the uar page size from firmware. Regarding backward compatibility in SR-IOV, if hypervisor has this new code, the virtual OS must be updated. If hypervisor has old code, and the virtual OS has this new code, the new code will be backward compatible with the old code. If the uar size is big enough, this new code in VF continues to work with 64 KB uar page size (on PowerPc kernel). If the uar size does not meet 128 uars requirement, this new code not loaded in VF and print the same error message as the old code in Hypervisor. Signed-off-by: Huy Nguyen Reviewed-by: Yishai Hadas Signed-off-by: David S. Miller drivers/infiniband/hw/mlx4/qp.c | 7 ++- drivers/net/ethernet/mellanox/mlx4/cq.c | 4 +- drivers/net/ethernet/mellanox/mlx4/en_resources.c | 3 +- drivers/net/ethernet/mellanox/mlx4/en_tx.c | 4 +- drivers/net/ethernet/mellanox/mlx4/eq.c | 7 +-- drivers/net/ethernet/mellanox/mlx4/main.c | 56 ++++++++++++++++++----- drivers/net/ethernet/mellanox/mlx4/pd.c | 12 +++-- include/linux/mlx4/device.h | 13 ++++++ 8 files changed, 84 insertions(+), 22 deletions(-) commit 22e3817e6c8301dc0520b855c8a2d764580e719c Author: Daniel Jurgens Date: Wed Feb 17 17:24:25 2016 +0200 net/mlx4_core: Do not BUG_ON during reset when PCI is offline The PCI channel could go offline during reset due to EEH. Don't bug on in this case, the error is recoverable. Fixes: f6bc11e42646 ('net/mlx4_core: Enhance the catas flow to support device reset') Signed-off-by: Daniel Jurgens Reviewed-by: Yishai Hadas Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/catas.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 6b94bab0ee8d5def6a2aac0ef6204ee6e24386b6 Author: Eran Ben Elisha Date: Wed Feb 17 17:24:24 2016 +0200 net/mlx4_core: Fix potential corruption in counters database The error flow in procedure handle_existing_counter() is wrong. The procedure should exit after encountering the error, not continue as if everything is OK. Fixes: 68230242cdbc ('net/mlx4_core: Add port attribute when tracking counters') Signed-off-by: Eran Ben Elisha Signed-off-by: Jack Morgenstein Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/resource_tracker.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 31c128b66e5b28f468076e4f3ca3025c35342041 Author: Eugenia Emantayev Date: Wed Feb 17 17:24:23 2016 +0200 net/mlx4_en: Choose time-stamping shift value according to HW frequency Previously, the shift value used for time-stamping was constant and didn't depend on the HW chip frequency. Change that to take the frequency into account and calculate the maximal value in cycles per wraparound of ten seconds. This time slot was chosen since it gives a good accuracy in time synchronization. Algorithm for shift value calculation: * Round up the maximal value in cycles to nearest power of two * Calculate maximal multiplier by division of all 64 bits set to above result * Then, invert the function clocksource_khz2mult() to get the shift from maximal mult value Fixes: ec693d47010e ('net/mlx4_en: Add HW timestamping (TS) support') Signed-off-by: Eugenia Emantayev Reviewed-by: Matan Barak Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/en_clock.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) commit 281e8b2fdf8e4ef366b899453cae50e09b577ada Author: Amir Vadai Date: Wed Feb 17 17:24:22 2016 +0200 net/mlx4_en: Count HW buffer overrun only once RdropOvflw counts overrun of HW buffer, therefore should be used for rx_fifo_errors only. Currently RdropOvflw counter is mistakenly also set into rx_missed_errors and rx_over_errors too, which makes the device total dropped packets accounting to show wrong results. Fix that. Use it for rx_fifo_errors only. Fixes: c27a02cd94d6 ('mlx4_en: Add driver for Mellanox ConnectX 10GbE NIC') Signed-off-by: Amir Vadai Signed-off-by: Eugenia Emantayev Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/en_port.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9f74660bcf1e4cca577be99e54bc77b5df62b508 Author: Chuck Lever Date: Mon Feb 15 10:23:59 2016 -0500 xprtrdma: rpcrdma_bc_receive_call() should init rq_private_buf.len Some NFSv4.1 OPEN requests were hanging waiting for the NFS server to finish recalling delegations. Turns out that each NFSv4.1 CB request on RDMA gets a GARBAGE_ARGS reply from the Linux client. Commit 756b9b37cfb2e3dc added a line in bc_svc_process that overwrites the incoming rq_rcv_buf's length with the value in rq_private_buf.len. But rpcrdma_bc_receive_call() does not invoke xprt_complete_bc_request(), thus rq_private_buf.len is not initialized. svc_process_common() is invoked with a zero-length RPC message, and fails. Fixes: 756b9b37cfb2e3dc ('SUNRPC: Fix callback channel') Signed-off-by: Chuck Lever Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/backchannel.c | 2 ++ 1 file changed, 2 insertions(+) commit c2bab619813a525d3f58b5ffbfcdc4edee27e497 Author: Eran Ben Elisha Date: Thu Feb 11 10:24:44 2016 +0200 IB/mlx4: Add support for the port info class for RoCE ports Report that driver supports IB_PMA_CLASS_CAP_EXT_WIDTH in respond for IB_MGMT_CLASS_PERF_MGMT mad with IB_PMA_CLASS_PORT_INFO attr id. Signed-off-by: Eran Ben Elisha Signed-off-by: Matan Barak Reviewed-by: Or Gerlitz Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx4/mad.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) commit c3c0c83667a9fe78cc28c27ec9e5ace3411ae775 Author: Eran Ben Elisha Date: Thu Feb 11 10:24:43 2016 +0200 IB/mlx4: Add support for extended counters over RoCE ports When attribute IB_PMA_PORT_COUNTERS_EXT is set, we now return 64 bit values for the counters. Signed-off-by: Eran Ben Elisha Signed-off-by: Matan Barak Reviewed-by: Or Gerlitz Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx4/mad.c | 50 +++++++++++++++++++++++++++++----------- 1 file changed, 37 insertions(+), 13 deletions(-) commit b41f7852f3b981df30727f5cd64c1877ceee794e Author: Devesh Sharma Date: Thu Feb 11 00:21:52 2016 -0500 RDMA/ocrdma: Fix arm logic to align with new cq API Today ocrdma driver defer arming the CQ till poll is called. This was used to prevent calling poll-cq on an armed CQ. Recently a set of new CQ API has been introduced into the linux kernel. The implementation of this API guarantees that a given CQ is never armed before calling poll on it. Most of the kernel ULPs have already moved to use this new API or have a code where poll is called before arming the CQ. Thus, the above workaround in ocrdma is not needed anymore. This patch removes the additional logic to deffer arm till poll is called. This patch adds a simple scheme where ib_req_notify_cq() will actually arm the cq. Signed-off-by: Devesh Sharma Signed-off-by: Doug Ledford drivers/infiniband/hw/ocrdma/ocrdma.h | 3 --- drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 18 ++++-------------- 2 files changed, 4 insertions(+), 17 deletions(-) commit bba40e6948b94cba71965285fbac31bd078c024a Author: Cristian Birsan Date: Thu Feb 11 08:58:17 2016 -0700 usb: musb: Fix DMA desired mode for Mentor DMA engine Commit 754fe4a92c07 ("usb: musb: Remove ifdefs for TX DMA for musb_host.c") introduces a problem setting the desired channel mode for the Mentor DMA engine. There is a case where an address is incorrectly assigned to the DMA channel desired mode when it should instead be assigned the actual mode value. This results in the value of channel->desired_mode not being correct. Acked-by: Sergei Shtylyov Signed-off-by: Cristian Birsan Signed-off-by: Joshua Henderson Signed-off-by: Felipe Balbi drivers/usb/musb/musb_host.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 96c7de4ff41c2ed6da43141a4deb922de09617d0 Author: Andrzej Hajda Date: Mon Feb 15 15:35:25 2016 +0100 usb: gadget: fsl_qe_udc: fix IS_ERR_VALUE usage IS_ERR_VALUE macro should be used only with unsigned long type. Otherwise it can work incorrectly. The patch follows conclusion from discussion on LKML [1][2]. [1]: http://permalink.gmane.org/gmane.linux.kernel/2120927 [2]: http://permalink.gmane.org/gmane.linux.kernel/2150581 Signed-off-by: Andrzej Hajda Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/fsl_qe_udc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 390f0ffe92aea878b763c7fd8afd1dff62e0d20b Author: Anton Bondarenko Date: Wed Feb 17 14:28:47 2016 +0100 spi: imx: allow only WML aligned transfers to use DMA RX DMA tail data handling doesn't work correctly in many cases with current implementation. It happens because SPI core was setup to generates both RX and RX TAIL events. And RX TAIL event does not work correctly. This can be easily verified by sending SPI transaction with size modulus WML(32 in our case) not equal 0. Also removing change introduced in f6ee9b582d2db652497b73c1f117591dfb6d3a90 since this change only fix usecases with transfer size from 33 to 128 bytes and doesn't fix 129 bytes and bigger. This is output from transaction with len 138 bytes in loopback mode at 10Mhz: TX0000: a3 97 a2 55 53 be f1 fc f9 79 6b 52 14 13 e9 e2 TX0010: 2d 51 8e 1f 56 08 57 27 a7 05 d4 d0 52 82 77 75 TX0020: 1b 99 4a ed 58 3d 6a 52 36 d5 24 4a 68 8e ad 95 TX0030: 5f 3c 35 b5 c4 8c dd 6c 11 32 3d e2 b4 b4 59 cf TX0040: ce 23 3d 27 df a7 f9 96 fc 1e e0 66 2c 0e 7b 8c TX0050: ca 30 42 8f bc 9f 7b ce d1 b8 b1 87 ec 8a d6 bb TX0060: 2e 15 63 0e 3c dc a4 3a 7a 06 20 a7 93 1b 34 dd TX0070: 4c f5 ec 88 96 68 d6 68 a0 09 6f 8e 93 47 c9 41 TX0080: db ac cf 97 89 f3 51 05 79 71 RX0000: a3 97 a2 55 53 be f1 fc f9 79 6b 52 14 13 e9 e2 RX0010: 2d 51 8e 1f 56 08 57 27 a7 05 d4 d0 52 82 77 75 RX0020: 1b 99 4a ed 58 3d 6a 52 36 d5 24 4a 68 8e ad 95 RX0030: 5f 3c 35 00 00 b5 00 00 00 c4 00 00 8c 00 00 dd RX0040: 6c 11 32 3d e2 b4 b4 59 cf ce 23 3d 27 df a7 f9 RX0050: 96 fc 1e e0 66 2c 0e 7b 8c ca 30 42 8f 1f 1f bc RX0060: 9f 7b ce d1 b8 b1 87 ec 8a d6 bb 2e 15 63 0e ed RX0070: ed 3c 58 58 58 dc 3d 3d a4 6a 6a 3a 52 52 7a 36 RX0080: 06 20 a7 93 1b 34 dd 4c f5 ec Zeros at offset 33 and 34 caused by reading empty RX FIFO which not possible if DMA RX read was triggered by RX event. This mean DMA was triggered by RX TAIL event. Signed-off-by: Anton Bondarenko Signed-off-by: Sascha Hauer Signed-off-by: Mark Brown drivers/spi/spi-imx.c | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) commit 6ecad912a0073c768db1491c27ca55ad2d0ee68f Author: Alexey Kardashevskiy Date: Wed Feb 17 18:26:31 2016 +1100 powerpc/ioda: Set "read" permission when "write" is set Quite often drivers set only "write" permission assuming that this includes "read" permission as well and this works on plenty of platforms. However IODA2 is strict about this and produces an EEH when "read" permission is not set and reading happens. This adds a workaround in the IODA code to always add the "read" bit when the "write" bit is set. Fixes: 10b35b2b7485 ("powerpc/powernv: Do not set "read" flag if direction==DMA_NONE") Cc: stable@vger.kernel.org # 4.2+ Cc: Benjamin Herrenschmidt Signed-off-by: Alexey Kardashevskiy Tested-by: Douglas Miller Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 722ec35f7faefcc34d12616eca7976a848870f9d Author: Marek Szyprowski Date: Tue Feb 16 15:14:44 2016 +0100 arm64: dma-mapping: fix handling of devices registered before arch_initcall This patch ensures that devices, which got registered before arch_initcall will be handled correctly by IOMMU-based DMA-mapping code. Cc: Fixes: 13b8629f6511 ("arm64: Add IOMMU dma_ops") Acked-by: Robin Murphy Signed-off-by: Marek Szyprowski Signed-off-by: Will Deacon arch/arm64/mm/dma-mapping.c | 4 ++++ 1 file changed, 4 insertions(+) commit 8d409cb3e8a24196be7271defafd4638f3e0b514 Author: Ville Syrjälä Date: Wed Feb 10 19:59:05 2016 +0200 drm/i915: Fix hpd live status bits for g4x Looks like g4x hpd live status bits actually agree with the spec. At least they do on the machine I have, and apparently on Nick Bowler's g4x as well. So gm45 may be the only platform where they don't agree. At least that seems to be the case based on the (somewhat incomplete) logs/dumps in [1], and Daniel has also tested this on his gm45 sometime in the past. So let's change the bits to match the spec on g4x. That actually makes the g4x bits identical to vlv/chv so we can just share the code between those platforms, leaving gm45 as the special case. [1] https://bugzilla.kernel.org/show_bug.cgi?id=52361 Cc: Shashank Sharma Cc: Sonika Jindal Cc: Daniel Vetter Cc: Jani Nikula Cc: Nick Bowler References: https://lists.freedesktop.org/archives/dri-devel/2016-February/100382.html Reported-by: Nick Bowler Cc: stable@vger.kernel.org Fixes: 237ed86c693d ("drm/i915: Check live status before reading edid") Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1455127145-20087-1-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Daniel Vetter (cherry picked from commit 0780cd36c7af70c55981ee624084f0f48cae9b95) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_reg.h | 15 ++++++++------- drivers/gpu/drm/i915/intel_dp.c | 14 +++++++------- 2 files changed, 15 insertions(+), 14 deletions(-) commit 059fcd8cd16622da6513804a7a3e826d152c6c96 Author: Thomas Gleixner Date: Tue Feb 9 20:11:34 2016 +0000 perf/core: Plug potential memory leak in CPU_UP_PREPARE If CPU_UP_PREPARE is called it is not guaranteed, that a previously allocated and assigned hash has been freed already, but perf_event_init_cpu() unconditionally allocates and assignes a new hash if the swhash is referenced. By overwriting the pointer the existing hash is not longer accessible. Verify that there is no hash assigned on this cpu before allocating and assigning a new one. Signed-off-by: Thomas Gleixner Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Vince Weaver Link: http://lkml.kernel.org/r/20160209201007.843269966@linutronix.de Signed-off-by: Ingo Molnar kernel/events/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 27ca9236c96f4a21b72a2b4f08260efeab951bd0 Author: Thomas Gleixner Date: Tue Feb 9 20:11:26 2016 +0000 perf/core: Remove the bogus and dangerous CPU_DOWN_FAILED hotplug state If CPU_DOWN_PREPARE fails the perf hotplug notifier is called for CPU_DOWN_FAILED and calls perf_event_init_cpu(), which checks whether the swhash is referenced. If yes it allocates a new hash and stores the pointer in the per cpu data structure. But at this point the cpu is still online, so there must be a valid hash already. By overwriting the pointer the existing hash is not longer accessible. Remove the CPU_DOWN_FAILED state, as there is nothing to (re)allocate. Signed-off-by: Thomas Gleixner Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Vince Weaver Link: http://lkml.kernel.org/r/20160209201007.763417379@linutronix.de Signed-off-by: Ingo Molnar kernel/events/core.c | 1 - 1 file changed, 1 deletion(-) commit b4f75d44bed1bdbb14ac704bfc38f62a3675e591 Author: Thomas Gleixner Date: Tue Feb 9 20:11:20 2016 +0000 perf/core: Remove bogus UP_CANCELED hotplug state If CPU_UP_PREPARE fails the perf hotplug code calls perf_event_exit_cpu(), which is a pointless exercise. The cpu is not online, so the smp function calls return -ENXIO. So the result is a list walk to call noops. Remove it. Signed-off-by: Thomas Gleixner Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Vince Weaver Link: http://lkml.kernel.org/r/20160209201007.682184765@linutronix.de Signed-off-by: Ingo Molnar kernel/events/core.c | 1 - 1 file changed, 1 deletion(-) commit 901c5ffaaed117a38be9d0c29247c4888d6c8636 Author: Geert Uytterhoeven Date: Mon Feb 15 13:20:08 2016 +0100 ARM: shmobile: Remove shmobile_boot_arg CPU boot configuration writes to shmobile_boot_arg, which is located in the .text section, and thus should not be written to. As of commit 1d33a354bbb618ba ("ARM: shmobile: Per-CPU SMP boot / sleep code for SCU SoCs"), and ignoring accidental remainings, shmobile_boot_arg is always set to MPIDR_HWID_BITMASK by C code. Hence we can just hardcode this in the assembler code, and remove the variable, and thus also remove the need to write to this variable. Signed-off-by: Geert Uytterhoeven Acked-by: Nicolas Pitre Signed-off-by: Simon Horman arch/arm/mach-shmobile/common.h | 1 - arch/arm/mach-shmobile/headsmp.S | 8 ++------ arch/arm/mach-shmobile/platsmp-apmu.c | 1 - arch/arm/mach-shmobile/platsmp-scu.c | 1 - 4 files changed, 2 insertions(+), 9 deletions(-) commit 4e960f52fce16a3bf3261fa92c34cf2306059ba2 Author: Geert Uytterhoeven Date: Mon Feb 15 13:20:07 2016 +0100 ARM: shmobile: Move shmobile_smp_{mpidr, fn, arg}[] from .text to .bss If CONFIG_DEBUG_RODATA=y, the kernel crashes during system suspend: Freezing user space processes ... (elapsed 0.004 seconds) done. Freezing remaining freezable tasks ... (elapsed 0.002 seconds) done. PM: suspend of devices complete after 111.948 msecs PM: late suspend of devices complete after 1.086 msecs PM: noirq suspend of devices complete after 11.576 msecs Disabling non-boot CPUs ... Kernel panic - not syncing: Attempted to kill the idle task! 1014ec ---[ end Kernel panic - not syncing: Attempted to kill the idle task! CPU0: stopping This happens because the .text section is marked read-only, while the arrays shmobile_smp_mpidr[], shmobile_smp_fn[], and shmobile_smp_arg[] are being written to. Fix this by moving these arrays from the .text to the .bss section. This requires accessing them through PC-relative offsets. Signed-off-by: Geert Uytterhoeven Reviewed-by: Kees Cook Reviewed-by: Nicolas Pitre Signed-off-by: Simon Horman arch/arm/mach-shmobile/headsmp.S | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) commit b1568d80123a7e7ab528f587ef6896b2d5413b61 Author: Geert Uytterhoeven Date: Thu Jan 28 16:13:31 2016 +0100 ARM: shmobile: r8a7779: Remove remainings of removed SCU boot setup code Commit 0ca2894b5a900709 ("ARM: shmobile: Use shared SCU SMP boot code on r8a7779") obsoleted the r8a7779-specific SCU boot code, but forgot to remove the setup of shmobile_boot_fn and shmobile_boot_arg, which is overwritten by shmobile_smp_scu_prepare_cpus(). Note that shmobile_scu_base wasn't initialized at that point yet anyway. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/mach-shmobile/smp-r8a7779.c | 2 -- 1 file changed, 2 deletions(-) commit d2613f56ce0287211d70a86443a143cae1887911 Author: Geert Uytterhoeven Date: Thu Jan 28 16:04:21 2016 +0100 ARM: shmobile: Move shmobile_scu_base from .text to .bss shmobile_scu_base is being written to, so it doesn't belong in the .text section. Fix this by moving it from asm .text to C .bss, as it's no longer used from asm code since commit 4f6da36f7edd5790 ("ARM: shmobile: Remove old SCU boot code"). Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/mach-shmobile/headsmp-scu.S | 6 ------ arch/arm/mach-shmobile/platsmp-scu.c | 3 +++ 2 files changed, 3 insertions(+), 6 deletions(-) commit c219b7ddb6a3524a61a89438d86e4a8639706308 Author: Steven Rostedt Date: Wed Feb 10 12:04:22 2016 -0500 sched/deadline: Fix trivial typo in printk() message It's "too much" not "to much". Signed-off-by: Steven Rostedt Acked-by: Juri Lelli Cc: Jiri Kosina Cc: Juri Lelli Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20160210120422.4ca77e68@gandalf.local.home Signed-off-by: Ingo Molnar kernel/sched/deadline.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4e7f9df25874cedbbc604a5c5c2e7a6efe662387 Author: Michael S. Tsirkin Date: Thu Feb 11 01:05:01 2016 +0200 hpet: Drop stale URLs Looks like the HPET spec at intel.com got moved. It isn't hard to find so drop the link, just mention the revision assumed. Suggested-by: Thomas Gleixner Signed-off-by: Michael S. Tsirkin Acked-by: Greg Kroah-Hartman Cc: Arnd Bergmann Cc: Clemens Ladisch Cc: Jonathan Corbet Cc: Linus Torvalds Cc: Peter Zijlstra Cc: linux-doc@vger.kernel.org Link: http://lkml.kernel.org/r/1455145462-3877-1-git-send-email-mst@redhat.com Signed-off-by: Ingo Molnar Documentation/timers/hpet.txt | 4 +--- arch/x86/Kconfig | 4 ++-- drivers/char/hpet.c | 2 +- 3 files changed, 4 insertions(+), 6 deletions(-) commit ee89b641a9ddca5f2d1e38d205473c4b0d26c670 Author: Geert Uytterhoeven Date: Tue Feb 16 16:10:59 2016 +0100 usb: dwc2: USB_DWC2 should depend on HAS_DMA If NO_DMA=y: ERROR: "usb_gadget_map_request" [drivers/usb/dwc2/dwc2.ko] undefined! ERROR: "usb_gadget_unmap_request" [drivers/usb/dwc2/dwc2.ko] undefined! ERROR: "bad_dma_ops" [drivers/usb/dwc2/dwc2.ko] undefined! Add a dependency on HAS_DMA to fix this. Signed-off-by: Geert Uytterhoeven Acked-by: John Youn Signed-off-by: Felipe Balbi drivers/usb/dwc2/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 62943b7dfa35887a40f71f698deec4488bf73036 Author: Tang, Jianqiang Date: Tue Feb 16 15:02:07 2016 -0800 usb: dwc2: host: fix the data toggle error in full speed descriptor dma There will be data toggle error happen for full speed buld-out transfer. The data toggle bit is saved in qh for non-control transfers, it is wrong to check the qtd for that case. Also fix one static analysis tool issue after fix the data toggle error. John Youn: * Added WARN() to warn on improper usage of the dwc2_hcd_save_data_toggle() function. Signed-off-by: Dyson Lee Signed-off-by: Tang, Jianqiang Signed-off-by: John Youn Signed-off-by: Felipe Balbi drivers/usb/dwc2/hcd_ddma.c | 2 +- drivers/usb/dwc2/hcd_intr.c | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) commit 3142a16b9816c24501103a92010a283eb6e2766c Author: Vardan Mikayelyan Date: Tue Feb 16 15:01:53 2016 -0800 usb: dwc2: host: fix logical omissions in dwc2_process_non_isoc_desc Fixes memory manipulation issues and makes Host DDMA bulk transfers work. dwc2_process_non_isoc_desc() must return non zero value ONLY when failure happens in one of the queued descriptors. After receiving non zero value the caller must stop processing of remaining QTDs and their descriptors from chain. Commit 26a19ea699060fde ("usb: dwc2: host: fix use of qtd after free in desc dma mode") breaks non_isoc transaction completion logic in Host DDMA mode. There were bugs before that, but after this patch dwc2_process_non_isoc_desc() returns fail status even if descriptor was processed normally. This causes break from loop which is processing remaining descriptors assigned to QTD, which is not correct for QTDs containing more than one descriptor. Current dwc2 driver gathers queued BULK URBs until receiving URB without URB_NO_INTERRUPT flag. Once getting it, SW creates descriptor chain, stores it in qh structure and passes start address to HW. Multiple URB data is contained in that chain. Hence on getting error on descriptor after its processing by HW, SW should go out of both loops(qh->qtd, qtd->descs) and report the failure. Fixes: 26a19ea699060fde ("usb: dwc2: host: fix use of qtd after free in desc dma mode") Cc: Gregory Herrero Signed-off-by: Vardan Mikayelyan Signed-off-by: John Youn Signed-off-by: Felipe Balbi drivers/usb/dwc2/hcd_ddma.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) commit c450960187f45d4260db87c7dd4fc0bceb5565d8 Author: John Youn Date: Tue Feb 16 20:10:53 2016 -0800 usb: dwc3: Fix assignment of EP transfer resources The assignement of EP transfer resources was not handled properly in the dwc3 driver. Commit aebda6187181 ("usb: dwc3: Reset the transfer resource index on SET_INTERFACE") previously fixed one aspect of this where resources may be exhausted with multiple calls to SET_INTERFACE. However, it introduced an issue where composite devices with multiple interfaces can be assigned the same transfer resources for different endpoints. This patch solves both issues. The assignment of transfer resources cannot perfectly follow the data book due to the fact that the controller driver does not have all knowledge of the configuration in advance. It is given this information piecemeal by the composite gadget framework after every SET_CONFIGURATION and SET_INTERFACE. Trying to follow the databook programming model in this scenario can cause errors. For two reasons: 1) The databook says to do DEPSTARTCFG for every SET_CONFIGURATION and SET_INTERFACE (8.1.5). This is incorrect in the scenario of multiple interfaces. 2) The databook does not mention doing more DEPXFERCFG for new endpoint on alt setting (8.1.6). The following simplified method is used instead: All hardware endpoints can be assigned a transfer resource and this setting will stay persistent until either a core reset or hibernation. So whenever we do a DEPSTARTCFG(0) we can go ahead and do DEPXFERCFG for every hardware endpoint as well. We are guaranteed that there are as many transfer resources as endpoints. This patch triggers off of the calling dwc3_gadget_start_config() for EP0-out, which always happens first, and which should only happen in one of the above conditions. Fixes: aebda6187181 ("usb: dwc3: Reset the transfer resource index on SET_INTERFACE") Cc: # v3.2+ Reported-by: Ravi Babu Signed-off-by: John Youn Signed-off-by: Felipe Balbi drivers/usb/dwc3/core.h | 1 - drivers/usb/dwc3/ep0.c | 5 ---- drivers/usb/dwc3/gadget.c | 70 +++++++++++++++++++++++++++++++++++------------ 3 files changed, 52 insertions(+), 24 deletions(-) commit bd84f4ae9986ac9acd278566ccb39c60bc961abb Author: John Youn Date: Mon Feb 15 15:30:20 2016 -0800 usb: dwc2: Add extra delay when forcing dr_mode Fixes an issue found on rockchip rk3036 and rk3188 SOC platforms. For some reason, the existing msleep(25) is not enough after the force mode. The following patch was reported to fix the issue. This does increase the probe delay again slightly, but not up to the level it was before the original series of patches that this fixes. It does not cause any other issues when tested on Synopsys HAPS and Altera socfpga platforms. Need to revisit this series next release to see if we can address these issues without having an unconditional delay. Fixes: 09c96980dc72 ("usb: dwc2: Add functions to set and clear force mode") Reported-by: Caesar Wang Reported-by: Michael Niewoehner Tested-by: Heiko Stuebner Tested-by: Caesar Wang Signed-off-by: John Youn Signed-off-by: Felipe Balbi drivers/usb/dwc2/core.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 12d319b920fa673a4d5e7c1785c5dc82dcd15257 Author: Stefan Haberland Date: Fri Feb 12 14:50:52 2016 +0100 s390/dasd: fix performance drop Commit ca369d51b ("sd: Fix device-imposed transfer length limits") introduced a new queue limit max_dev_sectors which limits the maximum sectors for requests. The default value leads to small dasd requests and therefor to a performance drop. Set the max_dev_sectors value to the same value as the max_hw_sectors to use the maximum available request size for DASD devices. Signed-off-by: Stefan Haberland Cc: stable@vger.kernel.org # 4.4+ Signed-off-by: Martin Schwidefsky drivers/s390/block/dasd.c | 1 + 1 file changed, 1 insertion(+) commit a82eee7424525e34e98d821dd059ce14560a1e35 Author: Toshi Kani Date: Thu Feb 11 14:24:17 2016 -0700 x86/uaccess/64: Handle the caching of 4-byte nocache copies properly in __copy_user_nocache() Data corruption issues were observed in tests which initiated a system crash/reset while accessing BTT devices. This problem is reproducible. The BTT driver calls pmem_rw_bytes() to update data in pmem devices. This interface calls __copy_user_nocache(), which uses non-temporal stores so that the stores to pmem are persistent. __copy_user_nocache() uses non-temporal stores when a request size is 8 bytes or larger (and is aligned by 8 bytes). The BTT driver updates the BTT map table, which entry size is 4 bytes. Therefore, updates to the map table entries remain cached, and are not written to pmem after a crash. Change __copy_user_nocache() to use non-temporal store when a request size is 4 bytes. The change extends the current byte-copy path for a less-than-8-bytes request, and does not add any overhead to the regular path. Reported-and-tested-by: Micah Parrish Reported-and-tested-by: Brian Boylston Signed-off-by: Toshi Kani Cc: Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Borislav Petkov Cc: Brian Gerst Cc: Dan Williams Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Luis R. Rodriguez Cc: Peter Zijlstra Cc: Ross Zwisler Cc: Thomas Gleixner Cc: Toshi Kani Cc: Vishal Verma Cc: linux-nvdimm@lists.01.org Link: http://lkml.kernel.org/r/1455225857-12039-3-git-send-email-toshi.kani@hpe.com [ Small readability edits. ] Signed-off-by: Ingo Molnar arch/x86/lib/copy_user_64.S | 36 ++++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) commit ee9737c924706aaa72c2ead93e3ad5644681dc1c Author: Toshi Kani Date: Thu Feb 11 14:24:16 2016 -0700 x86/uaccess/64: Make the __copy_user_nocache() assembly code more readable Add comments to __copy_user_nocache() to clarify its procedures and alignment requirements. Also change numeric branch target labels to named local labels. No code changed: arch/x86/lib/copy_user_64.o: text data bss dec hex filename 1239 0 0 1239 4d7 copy_user_64.o.before 1239 0 0 1239 4d7 copy_user_64.o.after md5: 58bed94c2db98c1ca9a2d46d0680aaae copy_user_64.o.before.asm 58bed94c2db98c1ca9a2d46d0680aaae copy_user_64.o.after.asm Signed-off-by: Toshi Kani Cc: Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Luis R. Rodriguez Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Toshi Kani Cc: brian.boylston@hpe.com Cc: dan.j.williams@intel.com Cc: linux-nvdimm@lists.01.org Cc: micah.parrish@hpe.com Cc: ross.zwisler@linux.intel.com Cc: vishal.l.verma@intel.com Link: http://lkml.kernel.org/r/1455225857-12039-2-git-send-email-toshi.kani@hpe.com [ Small readability edits and added object file comparison. ] Signed-off-by: Ingo Molnar arch/x86/lib/copy_user_64.S | 114 ++++++++++++++++++++++++++++---------------- 1 file changed, 73 insertions(+), 41 deletions(-) commit 52499d93d6dec3872de3b982219af6d4c182a452 Author: Heiko Carstens Date: Fri Feb 12 12:40:31 2016 +0100 s390/maccess: reduce stnsm instructions When fixing the DAT off bug ("s390: fix DAT off memory access, e.g. on kdump") both Christian and I missed that we can save an additional stnsm instruction. This saves us a couple of cycles which could improve the speed of memcpy_real. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/mm/maccess.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 8bc9162cd2bf37036c486b384ac445b59b334b04 Author: Thomas Gleixner Date: Tue Feb 16 23:04:41 2016 +0100 perf/x86/amd/uncore: Plug reference leak In the error path of amd_uncore_cpu_up_prepare() the newly allocated uncore struct is freed, but the percpu pointer still references it. Set it to NULL. Signed-off-by: Thomas Gleixner Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Vince Weaver Link: http://lkml.kernel.org/r/alpine.DEB.2.11.1602162302170.19512@nanos Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_amd_uncore.c | 2 ++ 1 file changed, 2 insertions(+) commit dada168b3b76439d83aff34f8fbd9c512c2d136a Author: Anton Protopopov Date: Sat Feb 6 23:25:28 2016 -0500 drm/qxl: fix erroneous return value The qxl_gem_prime_mmap() function returns ENOSYS instead of -ENOSYS Signed-off-by: Anton Protopopov Signed-off-by: Dave Airlie drivers/gpu/drm/qxl/qxl_prime.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ff683df7bf34f90766a50c7e7454e219aef2710e Author: Mario Kleiner Date: Fri Feb 12 20:30:32 2016 +0100 drm/nouveau/display: Enable vblank irqs after display engine is on again. In the display resume path, move the calls to drm_vblank_on() after the point when the display engine is running again. Since changes were made to drm_update_vblank_count() in Linux 4.4+ to emulate hw vblank counters via vblank timestamping, the function drm_vblank_on() now needs working high precision vblank timestamping and therefore working scanout position queries at time of call. These don't work before the display engine gets restarted, causing miscalculation of vblank counter increments and thereby large forward jumps in vblank count at display resume. These jumps can cause client hangs on resume, or desktop hangs in the case of composited desktops. Fix this Linux 4.4 regression by reordering calls accordingly. Signed-off-by: Mario Kleiner Cc: # 4.4+ Cc: Ben Skeggs Cc: ville.syrjala@linux.intel.com Cc: daniel.vetter@ffwll.ch Cc: dri-devel@lists.freedesktop.org Reviewed-by: Daniel Vetter Signed-off-by: Dave Airlie drivers/gpu/drm/nouveau/nouveau_display.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit e0b34e3857004ac2257458d6354c31349f51e207 Author: Mario Kleiner Date: Fri Feb 12 20:30:31 2016 +0100 drm/radeon/pm: Handle failure of drm_vblank_get. Make sure that drm_vblank_get/put() stay balanced in case drm_vblank_get fails, by skipping the corresponding put. Signed-off-by: Mario Kleiner Reviewed-by: Daniel Vetter Cc: michel@daenzer.net Cc: dri-devel@lists.freedesktop.org Cc: alexander.deucher@amd.com Cc: christian.koenig@amd.com Signed-off-by: Dave Airlie drivers/gpu/drm/radeon/radeon_pm.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit bb74fc1bf3072bd3ab4ed5f43afd287a63baf2d7 Author: Mario Kleiner Date: Fri Feb 12 20:30:30 2016 +0100 drm: Fix treatment of drm_vblank_offdelay in drm_vblank_on() (v2) drm_vblank_offdelay can have three different types of values: < 0 is to be always treated the same as dev->vblank_disable_immediate = 0 is to be treated as "never disable vblanks" > 0 is to be treated as disable immediate if kms driver wants it that way via dev->vblank_disable_immediate. Otherwise it is a disable timeout in msecs. This got broken in Linux 3.18+ for the implementation of drm_vblank_on. If the user specified a value of zero which should always reenable vblank irqs in this function, a kms driver could override the users choice by setting vblank_disable_immediate to true. This patch fixes the regression and keeps the user in control. v2: Only reenable vblank if there are clients left or the user requested to "never disable vblanks" via offdelay 0. Enabling vblanks even in the "delayed disable" case (offdelay > 0) was specifically added by Ville in commit cd19e52aee922 ("drm: Kick start vblank interrupts at drm_vblank_on()"), but after discussion it turns out that this was done by accident. Citing Ville: "I think it just ended up as a mess due to changing some of the semantics of offdelay<0 vs. offdelay==0 vs. disable_immediate during the review of the series. So yeah, given how drm_vblank_put() works now, I'd just make this check for offdelay==0." Signed-off-by: Mario Kleiner Reviewed-by: Daniel Vetter Cc: # 3.18+ Cc: michel@daenzer.net Cc: vbabka@suse.cz Cc: ville.syrjala@linux.intel.com Cc: daniel.vetter@ffwll.ch Cc: dri-devel@lists.freedesktop.org Cc: alexander.deucher@amd.com Cc: christian.koenig@amd.com Signed-off-by: Dave Airlie drivers/gpu/drm/drm_irq.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit c61934ed9a0e3911a9935df26858726a7ec35ec0 Author: Mario Kleiner Date: Fri Feb 12 20:30:29 2016 +0100 drm: Fix drm_vblank_pre/post_modeset regression from Linux 4.4 Changes to drm_update_vblank_count() in Linux 4.4 broke the behaviour of the pre/post modeset functions as the new update code doesn't deal with hw vblank counter resets inbetween calls to drm_vblank_pre_modeset an drm_vblank_post_modeset, as it should. This causes mistreatment of such hw counter resets as counter wraparound, and thereby large forward jumps of the software vblank counter which in turn cause vblank event dispatching and vblank waits to fail/hang --> userspace clients hang. This symptom was reported on radeon-kms to cause a infinite hang of KDE Plasma 5 shell's login procedure, preventing users from logging in. Fix this by detecting when drm_update_vblank_count() is called inside a pre->post modeset interval. If so, clamp valid vblank increments to the safe values 0 and 1, pretty much restoring the update behavior of the old update code of Linux 4.3 and earlier. Also reset the last recorded hw vblank count at call to drm_vblank_post_modeset() to be safe against hw that after modesetting, dpms on etc. only fires its first vblank irq after drm_vblank_post_modeset() was already called. Reported-by: Vlastimil Babka Signed-off-by: Mario Kleiner Reviewed-by: Daniel Vetter Tested-by: Vlastimil Babka Cc: # 4.4+ Cc: michel@daenzer.net Cc: vbabka@suse.cz Cc: ville.syrjala@linux.intel.com Cc: daniel.vetter@ffwll.ch Cc: dri-devel@lists.freedesktop.org Cc: alexander.deucher@amd.com Cc: christian.koenig@amd.com Signed-off-by: Dave Airlie drivers/gpu/drm/drm_irq.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 99b8e71597fadd6b2ac85e6e10f221f79dd9c1c1 Author: Mario Kleiner Date: Fri Feb 12 20:30:28 2016 +0100 drm: Prevent vblank counter bumps > 1 with active vblank clients. (v2) This fixes a regression introduced by the new drm_update_vblank_count() implementation in Linux 4.4: Restrict the bump of the software vblank counter in drm_update_vblank_count() to a safe maximum value of +1 whenever there is the possibility that concurrent readers of vblank timestamps could be active at the moment, as the current implementation of the timestamp caching and updating is not safe against concurrent readers for calls to store_vblank() with a bump of anything but +1. A bump != 1 would very likely return corrupted timestamps to userspace, because the same slot in the cache could be concurrently written by store_vblank() and read by one of those readers in a non-atomic fashion and without the read-retry logic detecting this collision. Concurrent readers can exist while drm_update_vblank_count() is called from the drm_vblank_off() or drm_vblank_on() functions or other non-vblank- irq callers. However, all those calls are happening with the vbl_lock locked thereby preventing a drm_vblank_get(), so the vblank refcount can't increase while drm_update_vblank_count() is executing. Therefore a zero vblank refcount during execution of that function signals that is safe for arbitrary counter bumps if called from outside vblank irq, whereas a non-zero count is not safe. Whenever the function is called from vblank irq, we have to assume concurrent readers could show up any time during its execution, even if the refcount is currently zero, as vblank irqs are usually only enabled due to the presence of readers, and because when it is called from vblank irq it can't hold the vbl_lock to protect it from sudden bumps in vblank refcount. Therefore also restrict bumps to +1 when the function is called from vblank irq. Such bumps of more than +1 can happen at other times than reenabling vblank irqs, e.g., when regular vblank interrupts get delayed by more than 1 frame due to long held locks, long irq off periods, realtime preemption on RT kernels, or system management interrupts. A better solution would be to rewrite the timestamp caching to use full seqlocks to allow concurrent writes and reads for arbitrary vblank counter increments. v2: Add code comment that this is essentially a hack and should be replaced by a full seqlock implementation for caching of timestamps. Signed-off-by: Mario Kleiner Reviewed-by: Daniel Vetter Cc: # 4.4+ Cc: michel@daenzer.net Cc: vbabka@suse.cz Cc: ville.syrjala@linux.intel.com Cc: daniel.vetter@ffwll.ch Cc: dri-devel@lists.freedesktop.org Cc: alexander.deucher@amd.com Cc: christian.koenig@amd.com Signed-off-by: Dave Airlie drivers/gpu/drm/drm_irq.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) commit e8235891b33799d597ff4ab5e45afe173a65da30 Author: Mario Kleiner Date: Fri Feb 12 20:30:27 2016 +0100 drm: No-Op redundant calls to drm_vblank_off() (v2) Otherwise if a kms driver calls into drm_vblank_off() more than once before calling drm_vblank_on() again, the redundant calls to vblank_disable_and_save() will call drm_update_vblank_count() while hw vblank counters and vblank timestamping are in a undefined state during modesets, dpms off etc. At least with the legacy drm helpers it is not unusual to get multiple calls to drm_vblank_off and drm_vblank_on, e.g., half a dozen calls to drm_vblank_off and two calls to drm_vblank_on were observed on radeon-kms during dpms-off -> dpms-on transition. We don't no-op calls from atomic modesetting drivers, as they should do a proper job of tracking hw state. Fixes large jumps of the software maintained vblank counter due to the hardware vblank counter resetting to zero during dpms off or modeset, e.g., if radeon-kms is modified to use drm_vblank_off/on instead of drm_vblank_pre/post_modeset(). This fixes a regression caused by the changes made to drm_update_vblank_count() in Linux 4.4. v2: Don't no-op on atomic modesetting drivers, per suggestion of Daniel Vetter. Signed-off-by: Mario Kleiner Reviewed-by: Daniel Vetter Cc: # 4.4+ Cc: michel@daenzer.net Cc: vbabka@suse.cz Cc: ville.syrjala@linux.intel.com Cc: alexander.deucher@amd.com Cc: christian.koenig@amd.com Signed-off-by: Dave Airlie drivers/gpu/drm/drm_irq.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 34855706c30d52b0a744da44348b5d1cc39fbe51 Author: Gerd Hoffmann Date: Tue Feb 16 14:25:00 2016 +0100 drm/qxl: use kmalloc_array to alloc reloc_info in qxl_process_single_command This avoids integer overflows on 32bit machines when calculating reloc_info size, as reported by Alan Cox. Cc: stable@vger.kernel.org Cc: gnomes@lxorguk.ukuu.org.uk Signed-off-by: Gerd Hoffmann Reviewed-by: Daniel Vetter Signed-off-by: Dave Airlie drivers/gpu/drm/qxl/qxl_ioctl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e8f051e9d8fe15d71d8d47c0d878d51bf5f864ad Merge: 8ae22cb 00780f3 Author: Dave Airlie Date: Wed Feb 17 14:14:22 2016 +1000 Merge branch 'exynos-drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-fixes Summary: - fix compilation warnings on ARM64bit. - fix mic driver initialization. . MIC is a part of KMS so it converts it to use component framework like other KMS drivers did. - fix wrong driver state and disable clock order on DECON driver. - fix incorrect use of dma_mmap_attrs function. * 'exynos-drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos: drm/exynos/decon: fix disable clocks order drm/exynos: fix incorrect cpu address for dma_mmap_attrs() drm/exynos: exynos5433_decon: fix wrong state in decon_vblank_enable drm/exynos: exynos5433_decon: fix wrong state assignment in decon_enable drm/exynos: dsi: restore support for drm bridge drm/exynos: mic: make all functions static drm/exynos: mic: convert to component framework drm/exynos: mic: use devm_clk interface drm/exynos: fix types for compilation on 64bit architectures drm/exynos: ipp: fix incorrect format specifiers in debug messages drm/exynos: depend on ARCH_EXYNOS for DRM_EXYNOS commit 8ae22cb419ad0bae84d3ed9784c92922fa6343eb Author: Dave Airlie Date: Wed Feb 17 11:36:38 2016 +1000 Revert "drm/dp/mst: change MST detection scheme" This reverts commit cfcfa086d43ced33e1099b9befb12f17fca102e1. This causes the tiling properties to break in some unexpected ways, Revert it for now. Cc: stable@vger.kernel.org Signed-off-by: Dave Airlie drivers/gpu/drm/drm_dp_mst_topology.c | 37 +++++++++++++++++------------------ 1 file changed, 18 insertions(+), 19 deletions(-) commit aac8d3c282e024c344c5b86dc1eab7af88bb9716 Author: Bjørn Mork Date: Fri Feb 12 16:42:14 2016 +0100 qmi_wwan: add "4G LTE usb-modem U901" Thomas reports: T: Bus=01 Lev=01 Prnt=01 Port=03 Cnt=01 Dev#= 4 Spd=480 MxCh= 0 D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=05c6 ProdID=6001 Rev=00.00 S: Manufacturer=USB Modem S: Product=USB Modem S: SerialNumber=1234567890ABCDEF C: #Ifs= 5 Cfg#= 1 Atr=e0 MxPwr=500mA I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option I: If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option I: If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan I: If#= 4 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage Reported-by: Thomas Schäfer Signed-off-by: Bjørn Mork Signed-off-by: David S. Miller drivers/net/usb/qmi_wwan.c | 1 + 1 file changed, 1 insertion(+) commit 729235554d805c63e5e274fcc6a98e71015dd847 Author: Eric Dumazet Date: Thu Feb 11 22:50:29 2016 -0800 tcp: md5: release request socket instead of listener If tcp_v4_inbound_md5_hash() returns an error, we must release the refcount on the request socket, not on the listener. The bug was added for IPv4 only. Fixes: 079096f103fac ("tcp/dccp: install syn_recv requests into ehash table") Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/tcp_ipv4.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 413eddc6ca748dc52057f142d707b9378af692fc Merge: bc4ef75 1636d1d Author: Chris Mason Date: Tue Feb 16 16:52:10 2016 -0800 Merge branch 'for-chris-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/fdmanana/linux into for-linus-4.5 commit 3d65ae4634ed8350aee98a4e6f4e41fe40c7d282 Author: Tahsin Erdogan Date: Tue Feb 16 13:34:39 2016 -0800 writeback: initialize inode members that track writeback history inode struct members that track cgroup writeback information should be reinitialized when inode gets allocated from kmem_cache. Otherwise, their values remain and get used by the new inode. Signed-off-by: Tahsin Erdogan Acked-by: Tejun Heo Fixes: d10c80955265 ("writeback: implement foreign cgroup inode bdi_writeback switching") Signed-off-by: Jens Axboe fs/inode.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 372022830b06d9980c7e8b41fa0a4081cff883b0 Author: Eric Dumazet Date: Thu Feb 11 08:58:18 2016 -0800 tcp: do not set rtt_min to 1 There are some cases where rtt_us derives from deltas of jiffies, instead of using usec timestamps. Since we want to track minimal rtt, better to assume a delta of 0 jiffie might be in fact be very close to 1 jiffie. It is kind of sad jiffies_to_usecs(1) calls a function instead of simply using a constant. Fixes: f672258391b42 ("tcp: track min RTT using windowed min-filter") Signed-off-by: Eric Dumazet Signed-off-by: Neal Cardwell Cc: Yuchung Cheng Signed-off-by: David S. Miller net/ipv4/tcp_input.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 6c5d89a34a486ad782dfb5b6b3b8fb4976ae7619 Author: Ken Kawasaki Date: Thu Feb 11 20:27:04 2016 +0900 pcnet_cs: add new id add new id (CONTEC C-NET(PC)C-100TX2) Signed-off-by: Ken Kawasaki Signed-off-by: David S. Miller drivers/net/ethernet/8390/pcnet_cs.c | 1 + 1 file changed, 1 insertion(+) commit a407054f830ca9a28febdeeeaa34d2ed420b9ed3 Author: Sascha Hauer Date: Thu Feb 11 11:44:49 2016 +0100 net: dsa: remove phy_disconnect from error path The phy has not been initialized, disconnecting it in the error path results in a NULL pointer exception. Drop the phy_disconnect from the error path. Signed-off-by: Sascha Hauer Reviewed-by: Andrew Lunn Acked-by: Neil Armstrong Signed-off-by: David S. Miller net/dsa/slave.c | 1 - 1 file changed, 1 deletion(-) commit bd16a7248042dc62285fdc5598ec4888c0865819 Author: Sascha Hauer Date: Thu Feb 11 11:44:48 2016 +0100 net: dsa: mv88e6xxx: Add support for Marvell 88E6240 The Marvell 88E6240 has been tested successfully without further changes. Add entry to the table of supported devices. Signed-off-by: Sascha Hauer Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/dsa/mv88e6352.c | 1 + 1 file changed, 1 insertion(+) commit d5c91fb72f1652ea3026925240a0998a42ddb16b Author: Jon Paul Maloy Date: Wed Feb 10 16:14:57 2016 -0500 tipc: fix premature addition of node to lookup table In commit 5266698661401a ("tipc: let broadcast packet reception use new link receive function") we introduced a new per-node broadcast reception link instance. This link is created at the moment the node itself is created. Unfortunately, the allocation is done after the node instance has already been added to the node lookup hash table. This creates a potential race condition, where arriving broadcast packets are able to find and access the node before it has been fully initialized, and before the above mentioned link has been created. The result is occasional crashes in the function tipc_bcast_rcv(), which is trying to access the not-yet existing link. We fix this by deferring the addition of the node instance until after it has been fully initialized in the function tipc_node_create(). Acked-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/node.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 7facc5fbde878b2441962748823966bf2ec1d446 Merge: 56bb7fd 51dd55b Author: David S. Miller Date: Tue Feb 16 15:50:03 2016 -0500 Merge branch 'bnxt_en-fixes' Michael Chan says: ==================== bnxt_en: Bug fixes. Fixed autoneg logic and some related cleanups, fixed tx push operation, and reduced default ring sizes. ==================== Signed-off-by: David S. Miller commit 51dd55b5688e81f9f13fb520a59900d4c3959a9a Author: Michael Chan Date: Wed Feb 10 17:33:50 2016 -0500 bnxt_en: Reduce default ring sizes. The current default tx ring size of 512 causes an extra page to be allocated for the tx ring with only 1 entry in it. Reduce it to 511. The default rx ring size is also reduced to 511 to use less memory by default. Signed-off-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4419dbe6a0f031ddb2df4cd993805546a566d20e Author: Michael Chan Date: Wed Feb 10 17:33:49 2016 -0500 bnxt_en: Fix implementation of tx push operation. tx push is supported for small packets to reduce DMA latency. The following bugs are fixed in this patch: 1. Fix the definition of the push BD which is different from the DMA BD. 2. The push buffer has to be zero padded to the next 64-bit word boundary or tx checksum won't be correct. 3. Increase the tx push packet threshold to 164 bytes (192 bytes with the BD) so that small tunneled packets are within the threshold. Signed-off-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt.c | 42 ++++++++++++++++++------------- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 11 ++++++-- 2 files changed, 34 insertions(+), 19 deletions(-) commit 1c49c421f3ec446f1e0eda6d965a6cb23214d7a1 Author: Michael Chan Date: Wed Feb 10 17:33:48 2016 -0500 bnxt_en: Remove 20G support and advertise only 40GbaseCR4. 20G is not supported by production hardware and only the 40GbaseCR4 standard is supported. Signed-off-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) commit 0d8abf020199b0cbc5fb3aa309d36f0ac1b91631 Author: Michael Chan Date: Wed Feb 10 17:33:47 2016 -0500 bnxt_en: Cleanup and Fix flow control setup logic Cleanup bnxt_probe_phy() to cleanly separate 2 code blocks for autoneg on and off. Autoneg flow control is possible only if autoneg is enabled. In bnxt_get_settings(), Pause and Asym_Pause are always supported. Only the advertisement bits change depending on the ethtool -A setting in auto mode. Signed-off-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt.c | 20 +++++++------------- drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 15 ++------------- 2 files changed, 9 insertions(+), 26 deletions(-) commit b763499ee16b74707af0fb26ab0a26bd9719870b Author: Michael Chan Date: Wed Feb 10 17:33:46 2016 -0500 bnxt_en: Fix ethtool autoneg logic. 1. Determine autoneg on|off setting from link_info->autoneg. Using the firmware returned setting can be misleading if autoneg is changed and there hasn't been a phy update from the firmware. 2. If autoneg is disabled, link_info->autoneg should be set to 0 to indicate both speed and flow control autoneg are disabled. 3. To enable autoneg flow control, speed autoneg must be enabled. Signed-off-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 56bb7fd994f4cc163de08006bf68d959027a9f36 Author: Arnd Bergmann Date: Wed Feb 10 16:09:02 2016 +0100 bridge: mdb: avoid uninitialized variable warning A recent change to the mdb code confused the compiler to the point where it did not realize that the port-group returned from br_mdb_add_group() is always valid when the function returns a nonzero return value, so we get a spurious warning: net/bridge/br_mdb.c: In function 'br_mdb_add': net/bridge/br_mdb.c:542:4: error: 'pg' may be used uninitialized in this function [-Werror=maybe-uninitialized] __br_mdb_notify(dev, entry, RTM_NEWMDB, pg); Slightly rearranging the code in br_mdb_add_group() makes the problem go away, as gcc is clever enough to see that both functions check for 'ret != 0'. Signed-off-by: Arnd Bergmann Fixes: 9e8430f8d60d ("bridge: mdb: Passing the port-group pointer to br_mdb module") Signed-off-by: David S. Miller net/bridge/br_mdb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b5e4d0bcf77e56362252a7ced4dbb476425e1655 Author: Hariprasad Shenai Date: Wed Feb 10 12:28:49 2016 +0530 cxgb4: Add pci device id for chelsio t540 lom adapter Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/t4_pci_id_tbl.h | 1 + 1 file changed, 1 insertion(+) commit 9c80a5d2e61380d3c5b634890f1893d0179c81f9 Merge: 7856520 b530b16 Author: David S. Miller Date: Tue Feb 16 15:26:31 2016 -0500 Merge branch 'arc_emac-fixes' Alexander Kochetkov says: ==================== Fixes for rockchip EMAC Here is a set of 3 patches what fix koops, memory leak and rockchip EMAC hang. Tested on radxarock lite. ==================== Signed-off-by: David S. Miller commit b530b16413b7f99977ded50a3c4bebd2ea79c41b Author: Alexander Kochetkov Date: Tue Feb 9 18:20:40 2016 +0300 net: arc_emac: fix sk_buff leak EMAC could be disabled, while there is some sb_buff in use. That buffers got lost for linux. In order to reproduce run on device during active ethernet work: ifconfig eth0 down Signed-off-by: Alexander Kochetkov Signed-off-by: David S. Miller drivers/net/ethernet/arc/emac_main.c | 62 ++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) commit 99f93a156a2aa9ac1e44f7cb1a197425e6d9879a Author: Alexander Kochetkov Date: Tue Feb 9 18:20:39 2016 +0300 net: arc_emac: reset txbd_curr and txbd_dirty pointers to zero EMAC reset internal tx ring pointer to zero at statup. txbd_curr and txbd_dirty can be different from zero. That cause ethernet transfer hang (no packets transmitted). In order to reproduce, run on device: ifconfig eth0 down ifconfig eth0 up Signed-off-by: Alexander Kochetkov Signed-off-by: David S. Miller drivers/net/ethernet/arc/emac_main.c | 3 +++ 1 file changed, 3 insertions(+) commit c278c253f3d992c6994d08aa0efb2b6806ca396f Author: Alexander Kochetkov Date: Tue Feb 9 18:20:38 2016 +0300 net: arc_emac: fix koops caused by sk_buff free There is a race between arc_emac_tx() and arc_emac_tx_clean(). sk_buff got freed by arc_emac_tx_clean() while arc_emac_tx() submitting sk_buff. In order to free sk_buff arc_emac_tx_clean() checks: if ((info & FOR_EMAC) || !txbd->data) break; ... dev_kfree_skb_irq(skb); If condition false, arc_emac_tx_clean() free sk_buff. In order to submit txbd, arc_emac_tx() do: priv->tx_buff[*txbd_curr].skb = skb; ... priv->txbd[*txbd_curr].data = cpu_to_le32(addr); ... ... <== arc_emac_tx_clean() check condition here ... <== (info & FOR_EMAC) is false ... <== !txbd->data is false ... *info = cpu_to_le32(FOR_EMAC | FIRST_OR_LAST_MASK | len); In order to reproduce the situation, run device: # iperf -s run on host: # iperf -t 600 -c [ 28.396284] ------------[ cut here ]------------ [ 28.400912] kernel BUG at .../net/core/skbuff.c:1355! [ 28.414019] Internal error: Oops - BUG: 0 [#1] SMP ARM [ 28.419150] Modules linked in: [ 28.422219] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G B 4.4.0+ #120 [ 28.429516] Hardware name: Rockchip (Device Tree) [ 28.434216] task: c0665070 ti: c0660000 task.ti: c0660000 [ 28.439622] PC is at skb_put+0x10/0x54 [ 28.443381] LR is at arc_emac_poll+0x260/0x474 [ 28.447821] pc : [] lr : [] psr: a0070113 [ 28.447821] sp : c0661e58 ip : eea68502 fp : ef377000 [ 28.459280] r10: 0000012c r9 : f08b2000 r8 : eeb57100 [ 28.464498] r7 : 00000000 r6 : ef376594 r5 : 00000077 r4 : ef376000 [ 28.471015] r3 : 0030488b r2 : ef13e880 r1 : 000005ee r0 : eeb57100 [ 28.477534] Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none [ 28.484658] Control: 10c5387d Table: 8eaf004a DAC: 00000051 [ 28.490396] Process swapper/0 (pid: 0, stack limit = 0xc0660210) [ 28.496393] Stack: (0xc0661e58 to 0xc0662000) [ 28.500745] 1e40: 00000002 00000000 [ 28.508913] 1e60: 00000000 ef376520 00000028 f08b23b8 00000000 ef376520 ef7b6900 c028fc64 [ 28.517082] 1e80: 2f158000 c0661ea8 c0661eb0 0000012c c065e900 c03bdeac ffff95e9 c0662100 [ 28.525250] 1ea0: c0663924 00000028 c0661ea8 c0661ea8 c0661eb0 c0661eb0 0000001e c0660000 [ 28.533417] 1ec0: 40000003 00000008 c0695a00 0000000a c066208c 00000100 c0661ee0 c0027410 [ 28.541584] 1ee0: ef0fb700 2f158000 00200000 ffff95e8 00000004 c0662100 c0662080 00000003 [ 28.549751] 1f00: 00000000 00000000 00000000 c065b45c 0000001e ef005000 c0647a30 00000000 [ 28.557919] 1f20: 00000000 c0027798 00000000 c005cf40 f0802100 c0662ffc c0661f60 f0803100 [ 28.566088] 1f40: c0661fb8 c00093bc c000ffb4 60070013 ffffffff c0661f94 c0661fb8 c00137d4 [ 28.574267] 1f60: 00000001 00000000 00000000 c001ffa0 00000000 c0660000 00000000 c065a364 [ 28.582441] 1f80: c0661fb8 c0647a30 00000000 00000000 00000000 c0661fb0 c000ffb0 c000ffb4 [ 28.590608] 1fa0: 60070013 ffffffff 00000051 00000000 00000000 c005496c c0662400 c061bc40 [ 28.598776] 1fc0: ffffffff ffffffff 00000000 c061b680 00000000 c0647a30 00000000 c0695294 [ 28.606943] 1fe0: c0662488 c0647a2c c066619c 6000406a 413fc090 6000807c 00000000 00000000 [ 28.615127] [] (skb_put) from [] (0xef376520) [ 28.621218] Code: e5902054 e590c090 e3520000 0a000000 (e7f001f2) [ 28.627307] ---[ end trace 4824734e2243fdb6 ]--- [ 34.377068] Internal error: Oops: 17 [#1] SMP ARM [ 34.382854] Modules linked in: [ 34.385947] CPU: 0 PID: 3 Comm: ksoftirqd/0 Not tainted 4.4.0+ #120 [ 34.392219] Hardware name: Rockchip (Device Tree) [ 34.396937] task: ef02d040 ti: ef05c000 task.ti: ef05c000 [ 34.402376] PC is at __dev_kfree_skb_irq+0x4/0x80 [ 34.407121] LR is at arc_emac_poll+0x130/0x474 [ 34.411583] pc : [] lr : [] psr: 60030013 [ 34.411583] sp : ef05de68 ip : 0008e83c fp : ef377000 [ 34.423062] r10: c001bec4 r9 : 00000000 r8 : f08b24c8 [ 34.428296] r7 : f08b2400 r6 : 00000075 r5 : 00000019 r4 : ef376000 [ 34.434827] r3 : 00060000 r2 : 00000042 r1 : 00000001 r0 : 00000000 [ 34.441365] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none [ 34.448507] Control: 10c5387d Table: 8f25c04a DAC: 00000051 [ 34.454262] Process ksoftirqd/0 (pid: 3, stack limit = 0xef05c210) [ 34.460449] Stack: (0xef05de68 to 0xef05e000) [ 34.464827] de60: ef376000 c028fd94 00000000 c0669480 c0669480 ef376520 [ 34.473022] de80: 00000028 00000001 00002ae4 ef376520 ef7b6900 c028fc64 2f158000 ef05dec0 [ 34.481215] dea0: ef05dec8 0000012c c065e900 c03bdeac ffff983f c0662100 c0663924 00000028 [ 34.489409] dec0: ef05dec0 ef05dec0 ef05dec8 ef05dec8 ef7b6000 ef05c000 40000003 00000008 [ 34.497600] dee0: c0695a00 0000000a c066208c 00000100 ef05def8 c0027410 ef7b6000 40000000 [ 34.505795] df00: 04208040 ffff983e 00000004 c0662100 c0662080 00000003 ef05c000 ef027340 [ 34.513985] df20: ef05c000 c0666c2c 00000000 00000001 00000002 00000000 00000000 c0027568 [ 34.522176] df40: ef027340 c003ef48 ef027300 00000000 ef027340 c003edd4 00000000 00000000 [ 34.530367] df60: 00000000 c003c37c ffffff7f 00000001 00000000 ef027340 00000000 00030003 [ 34.538559] df80: ef05df80 ef05df80 00000000 00000000 ef05df90 ef05df90 ef05dfac ef027300 [ 34.546750] dfa0: c003c2a4 00000000 00000000 c000f578 00000000 00000000 00000000 00000000 [ 34.554939] dfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 34.563129] dfe0: 00000000 00000000 00000000 00000000 00000013 00000000 ffffffff dfff7fff [ 34.571360] [] (__dev_kfree_skb_irq) from [] (arc_emac_poll+0x130/0x474) [ 34.579840] [] (arc_emac_poll) from [] (net_rx_action+0xdc/0x28c) [ 34.587712] [] (net_rx_action) from [] (__do_softirq+0xcc/0x1f8) [ 34.595482] [] (__do_softirq) from [] (run_ksoftirqd+0x2c/0x50) [ 34.603168] [] (run_ksoftirqd) from [] (smpboot_thread_fn+0x174/0x18c) [ 34.611466] [] (smpboot_thread_fn) from [] (kthread+0xd8/0xec) [ 34.619075] [] (kthread) from [] (ret_from_fork+0x14/0x3c) [ 34.626317] Code: e8bd8010 e3a00000 e12fff1e e92d4010 (e59030a4) [ 34.632572] ---[ end trace cca5a3d86a82249a ]--- Signed-off-by: Alexander Kochetkov Signed-off-by: David S. Miller drivers/net/ethernet/arc/emac_main.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 78565208d73ca9b654fb9a6b142214d52eeedfd1 Author: Alexander Duyck Date: Tue Feb 9 06:14:43 2016 -0800 net: Copy inner L3 and L4 headers as unaligned on GRE TEB This patch corrects the unaligned accesses seen on GRE TEB tunnels when generating hash keys. Specifically what this patch does is make it so that we force the use of skb_copy_bits when the GRE inner headers will be unaligned due to NET_IP_ALIGNED being a non-zero value. Signed-off-by: Alexander Duyck Acked-by: Tom Herbert Signed-off-by: David S. Miller net/core/flow_dissector.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 7b4c534ed43c6c132e507142b3edaa5256f08f53 Merge: 266b495 b0eed40 Author: David S. Miller Date: Tue Feb 16 15:21:48 2016 -0500 Merge branch 'mlx5-fixes' Saeed Mahameed says: ==================== mlx5 driver fixes for 4.5-rc2 We added here a patch from Matan and Alaa for addressing Linus comments on the mess w.r.t reserved field names in the driver/firmware auto-generated file. Once the patch hits linus tree, we'll ask Doug to rebase his tree on that rc so both net-next and rdma-next development for 4.6 will be done under the fixed robust form. Also provided two patches that addresses the dynamic ndo initialization issue of mlx5e netdevice. Or and Saeed. changes from V1: (Only first patch was changed) In this V we fixed the issues addressed in Or's previous e-mail. 1. Offsets took into account two dimensional u8 arrays 2. Offsets took into account nesting unions and structs 3. Offsets for unions 4. Offsets for any reserved field ==================== Signed-off-by: David S. Miller commit b0eed40ea15235b1dd138093901569077ba532ee Author: Saeed Mahameed Date: Tue Feb 9 14:57:44 2016 +0200 net/mlx5e: Use static constant netdevice ndos Currently our netdevice ops is a one static global variable which is referenced by all mlx5e netdevice instances. This can be problematic when different driver instances do not share same HW capabilities (e.g SRIOV PF and VFs probed to the host). Now we have two constant global netdevice ops variables, one for basic netdevice ops and the other with extended SRIOV ops, on netdevice construction we choose the one suitable for current device capabilities. Fixes: 66e49dedada6 ("net/mlx5e: Add support for SR-IOV ndos") Signed-off-by: Saeed Mahameed Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 41 ++++++++++++++++------- 1 file changed, 28 insertions(+), 13 deletions(-) commit b236872739df6410c7c60874ff8f3fb188ffb9d0 Author: Saeed Mahameed Date: Tue Feb 9 14:57:43 2016 +0200 net/mlx5e: Remove select queue ndo initialization Currently mlx5e_select_queue is redundant since num_tc is always 1. Signed-off-by: Saeed Mahameed Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 3 --- 1 file changed, 3 deletions(-) commit b4ff3a36d3e409d365a09b6b783ff895063ff4ef Author: Matan Barak Date: Tue Feb 9 14:57:42 2016 +0200 net/mlx5: Use offset based reserved field names in the IFC header file mlx5_ifc.h is a header file representing the API and ABI between the driver to the firmware and hardware. This file is used from both the mlx5_ib and mlx5_core drivers. Previously, this file used incrementing counter to indicate reserved fields, for example: struct mlx5_ifc_odp_per_transport_service_cap_bits { u8 send[0x1]; u8 receive[0x1]; u8 write[0x1]; u8 read[0x1]; u8 reserved_0[0x1]; u8 srq_receive[0x1]; u8 reserved_1[0x1a]; }; If one developer implements through net-next feature A that uses reserved_0, they replace it with featureA and renames reserved_1 to reserved_0. In the same kernel cycle, a 2nd developer could implement feature B through the rdma tree, that uses reserved_1 and split it to featureB and a smaller reserved_1 field. This will cause a conflict when the two trees are merged. The source of this conflict is that the 1st developer changed *all* reserved fields. As Linus suggested, we change the layout of structs to: struct mlx5_ifc_odp_per_transport_service_cap_bits { u8 send[0x1]; u8 receive[0x1]; u8 write[0x1]; u8 read[0x1]; u8 reserved_at_4[0x1]; u8 srq_receive[0x1]; u8 reserved_at_6[0x1a]; }; This makes the conflicts much more rare and preserves the locality of changes. Signed-off-by: Matan Barak Signed-off-by: Alaa Hleihel Reported-by: Linus Torvalds Signed-off-by: Saeed Mahameed Signed-off-by: David S. Miller include/linux/mlx5/mlx5_ifc.h | 2968 ++++++++++++++++++++--------------------- 1 file changed, 1484 insertions(+), 1484 deletions(-) commit 36cb6253f9383fd9a59ee7b8458c6232ef48577c Author: Eric Anholt Date: Mon Feb 8 12:59:02 2016 -0800 drm/vc4: Use runtime PM to power cycle the device when the GPU hangs. This gets us functional GPU reset again, like we had until a refactor at merge time. Tested with a little patch to stuff in a broken binner job every 100 frames. Signed-off-by: Eric Anholt drivers/gpu/drm/vc4/vc4_drv.h | 6 +++++- drivers/gpu/drm/vc4/vc4_gem.c | 26 +++++++++++++++++++++----- drivers/gpu/drm/vc4/vc4_v3d.c | 12 ------------ 3 files changed, 26 insertions(+), 18 deletions(-) commit 001bdb55d9eb72a9e2d5b623bacfc52da74ae03e Author: Eric Anholt Date: Fri Feb 5 17:41:49 2016 -0800 drm/vc4: Enable runtime PM. This may actually get us a feature that the closed driver didn't have: turning off the GPU in between rendering jobs, while the V3D device is still opened by the client. There may be some tuning to be applied here to use autosuspend so that we don't bounce the device's power so much, but in steady-state GPU-bound rendering we keep the power on (since we keep multiple jobs outstanding) and even if we power cycle on every job we can still manage at least 680 fps. More importantly, though, runtime PM will allow us to power off the device to do a GPU reset. v2: Switch #ifdef to CONFIG_PM not CONFIG_PM_SLEEP (caught by kbuild test robot) Signed-off-by: Eric Anholt drivers/gpu/drm/vc4/vc4_drv.h | 1 + drivers/gpu/drm/vc4/vc4_gem.c | 10 ++++++++++ drivers/gpu/drm/vc4/vc4_v3d.c | 36 ++++++++++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+) commit c4ce60dc30912df09b2438f1e5594eae1ef64d1e Author: Eric Anholt Date: Mon Feb 8 11:19:14 2016 -0800 drm/vc4: Fix spurious GPU resets due to BO reuse. We were tracking the "where are the head pointers pointing" globally, so if another job reused the same BOs and execution was at the same point as last time we checked, we'd stop and trigger a reset even though the GPU had made progress. Signed-off-by: Eric Anholt drivers/gpu/drm/vc4/vc4_drv.h | 6 +++++- drivers/gpu/drm/vc4/vc4_gem.c | 19 ++++++++++++++----- 2 files changed, 19 insertions(+), 6 deletions(-) commit 2ee94657e2bbd13b358060edc91b2b2fdef9038f Author: Eric Anholt Date: Mon Jan 25 14:33:50 2016 -0800 drm/vc4: Drop error message on seqno wait timeouts. These ioctls end up getting exposed to fairly directly to GL users, and having normal user operations print DRM errors is obviously wrong. The message was originally to give us some idea of what happened when a hang occurred, but we have a DRM_INFO from reset for that. Signed-off-by: Eric Anholt drivers/gpu/drm/vc4/vc4_gem.c | 3 --- 1 file changed, 3 deletions(-) commit 13cf8909ead67e313ea203ee524b3cf4b09b3c9d Author: Eric Anholt Date: Mon Jan 25 14:32:41 2016 -0800 drm/vc4: Fix -ERESTARTSYS error return from BO waits. This caused the wait ioctls to claim that waiting had completed when we actually got interrupted by a signal before it was done. Fixes broken rendering throttling that produced serious lag in X window dragging. Signed-off-by: Eric Anholt drivers/gpu/drm/vc4/vc4_gem.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 2c68f1fcfb9cfc10deff9bc59774aa331a6fabd2 Author: Eric Anholt Date: Mon Jan 25 14:13:12 2016 -0800 drm/vc4: Return an ERR_PTR from BO creation instead of NULL. Fixes igt vc4_create_bo/create-bo-0 by returning -EINVAL from the ioctl instead of -ENOMEM. Signed-off-by: Eric Anholt drivers/gpu/drm/vc4/vc4_bo.c | 16 ++++++++-------- drivers/gpu/drm/vc4/vc4_gem.c | 4 ++-- drivers/gpu/drm/vc4/vc4_irq.c | 2 +- drivers/gpu/drm/vc4/vc4_render_cl.c | 4 ++-- drivers/gpu/drm/vc4/vc4_validate.c | 4 ++-- 5 files changed, 15 insertions(+), 15 deletions(-) commit 54aec44ab02b1fa216706671ae12d64af74443c5 Author: Eric Anholt Date: Mon Jan 25 13:52:41 2016 -0800 drm/vc4: Fix the clear color for the first tile rendered. Apparently in hardware (as opposed to simulation), the clear colors need to be uploaded before the render config, otherwise they won't take effect. Fixes igt's vc4_wait_bo/used-bo-* subtests. Signed-off-by: Eric Anholt drivers/gpu/drm/vc4/vc4_render_cl.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit e001523666d0b07592abe1822b78ed0e5c2a34ab Author: Eric Anholt Date: Mon Jan 25 13:05:00 2016 -0800 drm/vc4: Validate that WAIT_BO padding is cleared. This is ABI future-proofing if we ever want to extend the pad to mean something. Signed-off-by: Eric Anholt drivers/gpu/drm/vc4/vc4_gem.c | 3 +++ 1 file changed, 3 insertions(+) commit 266b495f11d6706018f66250cb02a788ff2490d7 Author: Jay Vosburgh Date: Mon Feb 8 12:10:02 2016 -0800 bonding: don't use stale speed and duplex information There is presently a race condition between the bonding periodic link monitor and the updating of a slave's speed and duplex. The former occurs on a periodic basis, and the latter in response to a driver's calling of netif_carrier_on. It is possible for the periodic monitor to run between the driver call of netif_carrier_on and the receipt of the NETDEV_CHANGE event that causes bonding to update the slave's speed and duplex. This manifests most notably as a report that a slave is up and "0 Mbps full duplex" after enslavement, but in principle could report an incorrect speed and duplex after any link up event if the device comes up with a different speed or duplex. This affects the 802.3ad aggregator selection, as the speed and duplex are selection criteria. This is fixed by updating the speed and duplex in the periodic monitor, prior to using that information. This was done historically in bonding, but the call to bond_update_speed_duplex was removed in commit 876254ae2758 ("bonding: don't call update_speed_duplex() under spinlocks"), as it might sleep under lock. Later, the locking was changed to only hold RTNL, and so after commit 876254ae2758 ("bonding: don't call update_speed_duplex() under spinlocks") this call is again safe. Tested-by: "Tantilov, Emil S" Cc: Veaceslav Falico Cc: dingtianhong Fixes: 876254ae2758 ("bonding: don't call update_speed_duplex() under spinlocks") Signed-off-by: Jay Vosburgh Acked-by: Ding Tianhong Signed-off-by: David S. Miller drivers/net/bonding/bond_main.c | 1 + 1 file changed, 1 insertion(+) commit a5a23ad52d1310976891c30471f4ee8d73f3cc9e Author: Arnd Bergmann Date: Mon Feb 8 15:33:42 2016 +0100 net: am79c961a: avoid %? in inline assembly The am79c961a.c driver fails to build with clang because of an unusual inline assembly construct: drivers/net/ethernet/amd/am79c961a.c:53:7: error: invalid % escape in inline assembly string "str%?h %1, [%2] @ NET_RAP\n\t" The same change has been done a decade ago in arch/arm as of 6a39dd6222dd ("[ARM] 3759/2: Remove uses of %?"), but apparently some drivers were missed. Signed-off-by: Arnd Bergmann Acked-by: Russell King Signed-off-by: David S. Miller drivers/net/ethernet/amd/am79c961a.c | 64 ++++++++++++++++++------------------ 1 file changed, 32 insertions(+), 32 deletions(-) commit bd59cfc51df7ddc88755a60a1293cee55f5d0a12 Author: Robert Jarzmik Date: Sat Feb 6 22:23:20 2016 +0100 net: smc91x: propagate irq return code The smc91x driver doesn't honor the probe deferral mechanism when the interrupt source is not yet available, such as one provided by a gpio controller not probed. Fix this by propagating the platform_get_irq() error code as the probe return value. Signed-off-by: Robert Jarzmik Cc: Sergei Shtylyov Signed-off-by: David S. Miller drivers/net/ethernet/smsc/smc91x.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bfb3a9df6106b5384773734896bf0034f5790243 Merge: 5d8e498 815717d Author: David S. Miller Date: Tue Feb 16 14:55:36 2016 -0500 Merge branch 'bcm7xxx-fixes' Florian Fainelli says: ==================== Subject: [PATCH net v2 0/4] net: phy: bcm7xxx 40nm PHY fixes Here is a collection of fixes for the 40nm Ethernet PHY supported by the 7xxx PHY driver, please also queue these fixes for stable. Changes in v2: - dropped the cleanup patch, not appropriate - added another patch removing bogus wildcard entries ==================== Signed-off-by: David S. Miller commit 815717d1473e0d5c3a31c350975325e07ed736fa Author: Florian Fainelli Date: Sat Feb 6 12:58:51 2016 -0800 net: phy: bcm7xxx: Remove wildcard entries Remove the two wildcard entries, they serve no purpose and will match way too many devices, some of them being covered by the driver in drivers/net/phy/broadcom.c. Remove the now unused bcm7xxx_dummy_config_init() function which would produce a warning. Fixes: b560a58c45c6 ("net: phy: add Broadcom BCM7xxx internal PHY driver") Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/bcm7xxx.c | 31 ------------------------------- 1 file changed, 31 deletions(-) commit 258bf44364263cb6391f35ebaca3c2366655bded Author: Florian Fainelli Date: Sat Feb 6 12:58:50 2016 -0800 net: phy: bcm7xxx: Fix bcm7xxx_config_init() check Since we were wrongly advertising gigabit features for these 10/100 only Ethernet PHYs, bcm7xxx_config_init() which is supposed to apply workaround would have not run since the check would be true, now that we have fixed the PHY features, remove that check since it has no reasoning to be there anymore. Fixes: e18556ee3bd83 ("net: phy: bcm7xxx: do not use PHY_BRCM_100MBPS_WAR") Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/bcm7xxx.c | 4 ---- 1 file changed, 4 deletions(-) commit c6dd213abe40132f83e6ee569d70f3d60aa8b257 Author: Florian Fainelli Date: Sat Feb 6 12:58:49 2016 -0800 net: phy: bcm7xxx: Fix 40nm EPHY features The PHY entries for BCM7425/29/35 declare the 40nm Ethernet PHY as being 10/100/1000 capable, while this is just a 10/100 capable PHY device, fix that. Fixes: d068b02cfdfc2 ("net: phy: add BCM7425 and BCM7429 PHYs") Fixes: 9458ceab4917 ("net: phy: bcm7xxx: Add entry for BCM7435") Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/bcm7xxx.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 50d899808d33a5b0aa82be23e824119944042689 Author: Florian Fainelli Date: Sat Feb 6 12:58:48 2016 -0800 net: phy: bcm7xxx: Fix shadow mode 2 disabling The clear and set masks in the call to phy_set_clr_bits() called from bcm7xxx_config_init() are inverted. We need to fix this by swapping the two arguments, that is, set 0 bits, but clear the shade mode 2 enable bit. Fixes: b560a58c45c66 ("net: phy: add Broadcom BCM7xxx internal PHY driver") Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/bcm7xxx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5d8e498f2e81283a594bd6161f2581a195081765 Merge: dba36b3 50bfd83 Author: David S. Miller Date: Tue Feb 16 14:53:00 2016 -0500 Merge branch 'ravb-fixes' Sergei Shtylyov says: ==================== ravb: fix the fallout of R-Car gen3 gPTP support Here's a set of 2 patches against DaveM's 'net.git' repo fixing up the incomplete commit f5d7837f96e5 ("ravb: ptp: Add CONFIG mode support"). I'm proposing these as fixes but they can be merged as cleanups as well... [1/2] ravb: kill duplicate setting of CCC.CSEL [2/2] ravb: skip gPTP start/stop on R-Car gen3 ==================== Signed-off-by: David S. Miller commit 50bfd83830b89f9273672dcaedf3b765724fd023 Author: Sergei Shtylyov Date: Sat Feb 6 17:47:22 2016 +0300 ravb: skip gPTP start/stop on R-Car gen3 When adding support for the R-Car gen3 gPTP active in configuration mode, some call sites of ravb_ptp_{init|stop}() were missed due to an oversight. Add checks for the R-Car gen2 SoCs around these... Fixes: f5d7837f96e5 ("ravb: ptp: Add CONFIG mode support") Signed-off-by: Sergei Shtylyov Signed-off-by: David S. Miller drivers/net/ethernet/renesas/ravb_main.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit d0c5f45ae3ede897114dea204fbaaa4dd18fa9cb Author: Sergei Shtylyov Date: Sat Feb 6 17:46:35 2016 +0300 ravb: kill duplicate setting of CCC.CSEL When adding support for the R-Car gen3 gPTP active in configuration mode, the code setting the CCC.CSEL field was duplicated due to an oversight. For R-Car gen 2 it's just redundant and for R-Car gen3 the write at this time is probably ignored due to CCC.GAC bit being already set... Fixes: f5d7837f96e5 ("ravb: ptp: Add CONFIG mode support") Signed-off-by: Sergei Shtylyov Signed-off-by: David S. Miller drivers/net/ethernet/renesas/ravb_main.c | 4 ---- 1 file changed, 4 deletions(-) commit 65c23c65bee479faceb042a52f5a7278dfa8d972 Merge: d82834e 4b550af Author: Linus Torvalds Date: Tue Feb 16 10:52:59 2016 -0800 Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6 Pull cifs fixes from Steve French: "A small set of cifs fixes. I am still reviewing some more, recently submitted SMB3 fixes, but these three are small and safe and ready now" * 'for-next' of git://git.samba.org/sfrench/cifs-2.6: cifs: fix erroneous return value cifs: fix potential overflow in cifs_compose_mount_options cifs: remove redundant check for null string pointer commit d82834ee13e8060bd20c7d3b834d2ac5ff89469a Merge: 87bbcfd c53d7a8 Author: Linus Torvalds Date: Tue Feb 16 10:50:46 2016 -0800 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm Pull ARM KVM fixes from Paolo Bonzini: - Fix for an unpleasant crash when the VM is created without a timer - Allow HYP mode to access the full PA space, and not only 40bit * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: arm64: KVM: Configure TCR_EL2.PS at runtime KVM: arm/arm64: Fix reference to uninitialised VGIC commit 5ff8eaac1636bf6deae86491f4818c4c69d1a9ac Author: Tejun Heo Date: Tue Feb 16 11:34:07 2016 -0700 writeback: keep superblock pinned during cgroup writeback association switches If cgroup writeback is in use, an inode is associated with a cgroup for writeback. If the inode's main dirtier changes to another cgroup, the association gets updated asynchronously. Nothing was pinning the superblock while such switches are in progress and superblock could go away while async switching is pending or in progress leading to crashes like the following. kernel BUG at fs/jbd2/transaction.c:319! invalid opcode: 0000 [#1] SMP DEBUG_PAGEALLOC CPU: 1 PID: 29158 Comm: kworker/1:10 Not tainted 4.5.0-rc3 #51 Hardware name: Google Google, BIOS Google 01/01/2011 Workqueue: events inode_switch_wbs_work_fn task: ffff880213dbbd40 ti: ffff880209264000 task.ti: ffff880209264000 RIP: 0010:[] [] start_this_handle+0x382/0x3e0 RSP: 0018:ffff880209267c30 EFLAGS: 00010202 ... Call Trace: [] jbd2__journal_start+0xf4/0x190 [] __ext4_journal_start_sb+0x4e/0x70 [] ext4_evict_inode+0x12c/0x3d0 [] evict+0xbb/0x190 [] iput+0x130/0x190 [] inode_switch_wbs_work_fn+0x343/0x4c0 [] process_one_work+0x129/0x300 [] worker_thread+0x126/0x480 [] kthread+0xc4/0xe0 [] ret_from_fork+0x3f/0x70 Fix it by bumping s_active while cgroup association switching is in flight. Signed-off-by: Tejun Heo Reported-and-tested-by: Tahsin Erdogan Link: http://lkml.kernel.org/g/CAAeU0aNCq7LGODvVGRU-oU_o-6enii5ey0p1c26D1ZzYwkDc5A@mail.gmail.com Fixes: d10c80955265 ("writeback: implement foreign cgroup inode bdi_writeback switching") Cc: stable@vger.kernel.org #v4.5+ Signed-off-by: Jens Axboe fs/fs-writeback.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit dba36b382e7a3feb5b04849543dc6ec5d522482e Merge: a5527dd 5cc6ce9 Author: David S. Miller Date: Tue Feb 16 12:56:00 2016 -0500 Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf Pablo Neira Ayuso says: ==================== Netfilter fixes for net The following patchset contain a rather large batch for your net that includes accumulated bugfixes, they are: 1) Run conntrack cleanup from workqueue process context to avoid hitting soft lockup via watchdog for large tables. This is required by the IPv6 masquerading extension. From Florian Westphal. 2) Use original skbuff from nfnetlink batch when calling netlink_ack() on error since this needs to access the skb->sk pointer. 3) Incremental fix on top of recent Sasha Levin's lock fix for conntrack resizing. 4) Fix several problems in nfnetlink batch message header sanitization and error handling, from Phil Turnbull. 5) Select NF_DUP_IPV6 based on CONFIG_IPV6, from Arnd Bergmann. 6) Fix wrong signess in return values on nf_tables counter expression, from Anton Protopopov. Due to the NetDev 1.1 organization burden, I had no chance to pass up this to you any sooner in this release cycle, sorry about that. ==================== Signed-off-by: David S. Miller commit a5527dda344fff0514b7989ef7a755729769daa1 Author: Rainer Weikusat Date: Thu Feb 11 19:37:27 2016 +0000 af_unix: Guard against other == sk in unix_dgram_sendmsg The unix_dgram_sendmsg routine use the following test if (unlikely(unix_peer(other) != sk && unix_recvq_full(other))) { to determine if sk and other are in an n:1 association (either established via connect or by using sendto to send messages to an unrelated socket identified by address). This isn't correct as the specified address could have been bound to the sending socket itself or because this socket could have been connected to itself by the time of the unix_peer_get but disconnected before the unix_state_lock(other). In both cases, the if-block would be entered despite other == sk which might either block the sender unintentionally or lead to trying to unlock the same spin lock twice for a non-blocking send. Add a other != sk check to guard against this. Fixes: 7d267278a9ec ("unix: avoid use-after-free in ep_remove_wait_queue") Reported-By: Philipp Hahn Signed-off-by: Rainer Weikusat Tested-by: Philipp Hahn Signed-off-by: David S. Miller net/unix/af_unix.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit c53d7a846ee7273c21ca317500480eb7dcdd2c5a Merge: c05235d 3c5b1d9 Author: Paolo Bonzini Date: Tue Feb 16 18:51:55 2016 +0100 Merge tag 'kvm-arm-for-4.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into kvm-master KVM/ARM fixes for 4.5-rc4 - Fix for an unpleasant crash when the VM is created without a timer - Allow HYP mode to access the full PA space, and not only 40bit commit 1b92ee3d03af6643df395300ba7748f19ecdb0c5 Author: Rainer Weikusat Date: Mon Feb 8 18:47:19 2016 +0000 af_unix: Don't set err in unix_stream_read_generic unless there was an error The present unix_stream_read_generic contains various code sequences of the form err = -EDISASTER; if () goto out; This has the unfortunate side effect of possibly causing the error code to bleed through to the final out: return copied ? : err; and then to be wrongly returned if no data was copied because the caller didn't supply a data buffer, as demonstrated by the program available at http://pad.lv/1540731 Change it such that err is only set if an error condition was detected. Fixes: 3822b5c2fc62 ("af_unix: Revert 'lock_interruptible' in stream receive code") Reported-by: Joseph Salisbury Signed-off-by: Rainer Weikusat Signed-off-by: David S. Miller net/unix/af_unix.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit 87bbcfdecc5579042459bb42ede81ed23e4b9a79 Merge: e5310a1 4692400 Author: Linus Torvalds Date: Tue Feb 16 08:04:06 2016 -0800 Merge tag 'for-linus-20160216' of git://git.infradead.org/intel-iommu Pull IOMMU SVM fixes from David Woodhouse: "Minor register size and interrupt acknowledgement fixes which only showed up in testing on newer hardware, but mostly a fix to the MM refcount handling to prevent a recursive refcount issue when mmap() is used on the file descriptor associated with a bound PASID" * tag 'for-linus-20160216' of git://git.infradead.org/intel-iommu: iommu/vt-d: Clear PPR bit to ensure we get more page request interrupts iommu/vt-d: Fix 64-bit accesses to 32-bit DMAR_GSTS_REG iommu/vt-d: Fix mm refcounting to hold mm_count not mm_users commit c699404db182836498bd9d9a36ef044de2cab4fd Merge: fb724ed 20aa99b Author: Kalle Valo Date: Tue Feb 16 17:58:30 2016 +0200 Merge tag 'iwlwifi-for-kalle-2016-02-15' of https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes These are a few fixes for the current cycle. 3 out of the 5 patches fix a bugzilla. * fix a race that users reported when we try to load the firmware and the hardware rfkill interrupt triggers at the same time. * Luca fixes a very visible bug in scheduled scan: our firmware doesn't support scheduled scan with no profile configured and the supplicant sometimes requests such scheduled scans. * build system fix * firmware name update for 8265 * typo fix in return value commit 02a5f765c961ea778e30a8356f32528e65f34942 Merge: 4682c21 a680759 Author: Ingo Molnar Date: Tue Feb 16 16:46:40 2016 +0100 Merge tag 'efi-urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi into x86/urgent Pull EFI bug fixes from Matt Fleming: * Fix bugs in our code that converts ucs2 strings to utf8 where we unintentionally drop bits from the original string (Jason Andryuk) * Add the efi-pstore variables to the variable whitelist so that users can continue to delete them via efivarfs without needing to manipulate the immutable flag (Matt Fleming) Signed-off-by: Ingo Molnar commit e5310a1cb4f56c54488ecaf29b1abf3b790cfddc Merge: 2a4be2c 4dd638f Author: Linus Torvalds Date: Tue Feb 16 07:15:20 2016 -0800 Merge tag 'spi-fix-v4.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi Pull spi fixes from Mark Brown: "A small clutch of driver specific fixes. The OMAP one is a bit worrying since it seems to be triggered by some changes in the runtime PM core code and I suspect there's other drivers across that are going to be using the same pattern outside of OMAP but nothing seems to be coming up in the testing people are doing" * tag 'spi-fix-v4.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: spi: omap2-mcspi: Fix PM regression with deferred probe for pm_runtime_reinit spi: bcm2835aux: fix bitmask defines spi: atmel: fix gpio chip-select in case of non-DT platform spi/fsl-espi: Correct the maximum transaction length spi: imx: fix spi resource leak with dma transfer spi: fix counting in spi-loopback-test code commit 2a4be2c52556ded8df08904f4032aed98654a017 Merge: 1926e54 daf670b Author: Linus Torvalds Date: Tue Feb 16 07:13:53 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k Pull m68k fixes from Geert Uytterhoeven: "Summary: - Wire up new copy_file_range syscall - Update defconfigs" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k: m68k/defconfig: Update defconfigs for v4.5-rc1 m68k: Wire up copy_file_range commit bc3f5d8c4ca01555820617eb3b6c0857e4df710d Author: Rasmus Villemoes Date: Mon Feb 15 19:41:47 2016 +0100 drm/radeon: use post-decrement in error handling We need to use post-decrement to get the pci_map_page undone also for i==0, and to avoid some very unpleasant behaviour if pci_map_page failed already at i==0. Reviewed-by: Christian König Signed-off-by: Rasmus Villemoes Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/radeon_ttm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 09ccbb74b6718ad4d1290de3f5669212c0ac7d4b Author: Rasmus Villemoes Date: Mon Feb 15 19:41:45 2016 +0100 drm/amdgpu: use post-decrement in error handling We need to use post-decrement to get the pci_map_page undone also for i==0, and to avoid some very unpleasant behaviour if pci_map_page failed already at i==0. Reviewed-by: Christian König Signed-off-by: Rasmus Villemoes Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1bc4e2b000e7fa9773d6623bc8850561ce10a4fb Author: Andrew Lunn Date: Thu Feb 11 22:15:57 2016 +0100 batman-adv: Avoid endless loop in bat-on-bat netdevice check batman-adv checks in different situation if a new device is already on top of a different batman-adv device. This is done by getting the iflink of a device and all its parent. It assumes that this iflink is always a parent device in an acyclic graph. But this assumption is broken by devices like veth which are actually a pair of two devices linked to each other. The recursive check would therefore get veth0 when calling dev_get_iflink on veth1. And it gets veth0 when calling dev_get_iflink with veth1. Creating a veth pair and loading batman-adv freezes parts of the system ip link add veth0 type veth peer name veth1 modprobe batman-adv An RCU stall will be detected on the system which cannot be fixed. INFO: rcu_sched self-detected stall on CPU 1: (5264 ticks this GP) idle=3e9/140000000000001/0 softirq=144683/144686 fqs=5249 (t=5250 jiffies g=46 c=45 q=43) Task dump for CPU 1: insmod R running task 0 247 245 0x00000008 ffffffff8151f140 ffffffff8107888e ffff88000fd141c0 ffffffff8151f140 0000000000000000 ffffffff81552df0 ffffffff8107b420 0000000000000001 ffff88000e3fa700 ffffffff81540b00 ffffffff8107d667 0000000000000001 Call Trace: [] ? rcu_dump_cpu_stacks+0x7e/0xd0 [] ? rcu_check_callbacks+0x3f0/0x6b0 [] ? hrtimer_run_queues+0x47/0x180 [] ? update_process_times+0x2d/0x50 [] ? tick_handle_periodic+0x1b/0x60 [] ? smp_trace_apic_timer_interrupt+0x5e/0x90 [] ? apic_timer_interrupt+0x82/0x90 [] ? __dev_get_by_index+0x37/0x40 [] ? batadv_hard_if_event+0xee/0x3a0 [batman_adv] [] ? register_netdevice_notifier+0x81/0x1a0 [...] This can be avoided by checking if two devices are each others parent and stopping the check in this situation. Fixes: b7eddd0b3950 ("batman-adv: prevent using any virtual device created on batman-adv as hard-interface") Signed-off-by: Andrew Lunn [sven@narfation.org: rewritten description, extracted fix] Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/hard-interface.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit 13d5e5d4725c64ec06040d636832e78453f477b7 Author: Takashi Iwai Date: Tue Feb 16 14:15:59 2016 +0100 ALSA: seq: Fix double port list deletion The commit [7f0973e973cd: ALSA: seq: Fix lockdep warnings due to double mutex locks] split the management of two linked lists (source and destination) into two individual calls for avoiding the AB/BA deadlock. However, this may leave the possible double deletion of one of two lists when the counterpart is being deleted concurrently. It ends up with a list corruption, as revealed by syzkaller fuzzer. This patch fixes it by checking the list emptiness and skipping the deletion and the following process. BugLink: http://lkml.kernel.org/r/CACT4Y+bay9qsrz6dQu31EcGaH9XwfW7o3oBzSQUG9fMszoh=Sg@mail.gmail.com Fixes: 7f0973e973cd ('ALSA: seq: Fix lockdep warnings due to 'double mutex locks) Reported-by: Dmitry Vyukov Tested-by: Dmitry Vyukov Cc: Signed-off-by: Takashi Iwai sound/core/seq/seq_ports.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit a68075908a37850918ad96b056acc9ac4ce1bd90 Author: Jason Andryuk Date: Fri Feb 12 23:13:33 2016 +0000 lib/ucs2_string: Correct ucs2 -> utf8 conversion The comparisons should be >= since 0x800 and 0x80 require an additional bit to store. For the 3 byte case, the existing shift would drop off 2 more bits than intended. For the 2 byte case, there should be 5 bits bits in byte 1, and 6 bits in byte 2. Signed-off-by: Jason Andryuk Reviewed-by: Laszlo Ersek Cc: Peter Jones Cc: Matthew Garrett Cc: "Lee, Chun-Yi" Signed-off-by: Matt Fleming lib/ucs2_string.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit e246eb568bc4cbbdd8a30a3c11151ff9b7ca7312 Author: Matt Fleming Date: Mon Feb 15 10:34:05 2016 +0000 efi: Add pstore variables to the deletion whitelist Laszlo explains why this is a good idea, 'This is because the pstore filesystem can be backed by UEFI variables, and (for example) a crash might dump the last kilobytes of the dmesg into a number of pstore entries, each entry backed by a separate UEFI variable in the above GUID namespace, and with a variable name according to the above pattern. Please see "drivers/firmware/efi/efi-pstore.c". While this patch series will not prevent the user from deleting those UEFI variables via the pstore filesystem (i.e., deleting a pstore fs entry will continue to delete the backing UEFI variable), I think it would be nice to preserve the possibility for the sysadmin to delete Linux-created UEFI variables that carry portions of the crash log, *without* having to mount the pstore filesystem.' There's also no chance of causing machines to become bricked by deleting these variables, which is the whole purpose of excluding things from the whitelist. Use the LINUX_EFI_CRASH_GUID guid and a wildcard '*' for the match so that we don't have to update the string in the future if new variable name formats are created for crash dump variables. Reported-by: Laszlo Ersek Acked-by: Peter Jones Tested-by: Peter Jones Cc: Matthew Garrett Cc: "Lee, Chun-Yi" Signed-off-by: Matt Fleming drivers/firmware/efi/vars.c | 1 + 1 file changed, 1 insertion(+) commit 4682c211a80ee93214b72d95f861b0f6e90e5445 Merge: 1926e54 ed8b0de Author: Ingo Molnar Date: Tue Feb 16 13:14:57 2016 +0100 Merge tag 'efi-urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi into x86/urgent Pull EFI fixes from Matt Fleming: * Prevent accidental deletion of EFI variables through efivarfs that may brick machines. We use a whitelist of known-safe variables to allow things like installing distributions to work out of the box, and instead restrict vendor-specific variable deletion by making non-whitelist variables immutable (Peter Jones) Signed-off-by: Ingo Molnar commit 0ba4581c84cfb39fd527f6b3457f1c97f6356c04 Author: Hans Verkuil Date: Wed Feb 10 08:09:10 2016 -0200 [media] adv7604: fix tx 5v detect regression The 5 volt detect functionality broke in 3.14: the code reads IO register 0x70 again after it has already been cleared. Instead it should use the cached irq_reg_0x70 value and the io_write to 0x71 to clear 0x70 can be dropped since this has already been done. Signed-off-by: Hans Verkuil Cc: # for v3.14 and up Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/adv7604.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 9727a9545adec59f4bccb83d1a709711f4acf242 Author: Mauro Carvalho Chehab Date: Fri Feb 12 15:44:31 2016 -0200 [media] media.h: get rid of MEDIA_ENT_F_CONN_TEST Defining it as a connector was a bad idea. Remove it while it is not too late. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/v4l/media-types.xml | 4 ---- drivers/media/usb/au0828/au0828-video.c | 3 +-- include/uapi/linux/media.h | 2 -- 3 files changed, 1 insertion(+), 8 deletions(-) commit 1f4522400e7e49464da5e584a463bd315283790f Author: Hans Verkuil Date: Thu Feb 11 12:28:55 2016 -0200 [media] [for,v4.5] media.h: increase the spacing between function ranges Each function range is quite narrow and especially for connectors this will pose a problem. Increase the function ranges while we still can and move the connector range to the end so that range is practically limitless. [mchehab@osg.samsung.com: Rebased to apply at Linus tree] Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab include/uapi/linux/media.h | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 7f4e346263f59ff50b531dda94609fb13ca12401 Author: Thierry Reding Date: Tue Feb 16 11:16:31 2016 +0100 arm64/efi: Make strnlen() available to the EFI namespace Changes introduced in the upstream version of libfdt pulled in by commit 91feabc2e224 ("scripts/dtc: Update to upstream commit b06e55c88b9b") use the strnlen() function, which isn't currently available to the EFI name- space. Add it to the EFI namespace to avoid a linker error. Cc: Catalin Marinas Cc: Rob Herring Reviewed-by: Ard Biesheuvel Signed-off-by: Thierry Reding Signed-off-by: Will Deacon arch/arm64/kernel/image.h | 1 + arch/arm64/lib/strnlen.S | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) commit 3db152093efb750bc47fd4d69355b90b18113105 Author: Sven Eckelmann Date: Sun Jan 31 13:28:00 2016 +0100 batman-adv: Only put orig_node_vlan list reference when removed The batadv_orig_node_vlan reference counter in batadv_tt_global_size_mod can only be reduced when the list entry was actually removed. Otherwise the reference counter may reach zero when batadv_tt_global_size_mod is called from two different contexts for the same orig_node_vlan but only one context is actually removing the entry from the list. The release function for this orig_node_vlan is not called inside the vlan_list_lock spinlock protected region because the function batadv_tt_global_size_mod still holds a orig_node_vlan reference for the object pointer on the stack. Thus the actual release function (when required) will be called only at the end of the function. Fixes: 7ea7b4a14275 ("batman-adv: make the TT CRC logic VLAN specific") Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/translation-table.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit c18bdd018e8912ca73ad6c12120b7283b5038875 Author: Sven Eckelmann Date: Sun Jan 31 13:27:59 2016 +0100 batman-adv: Only put gw_node list reference when removed The batadv_gw_node reference counter in batadv_gw_node_update can only be reduced when the list entry was actually removed. Otherwise the reference counter may reach zero when batadv_gw_node_update is called from two different contexts for the same gw_node but only one context is actually removing the entry from the list. The release function for this gw_node is not called inside the list_lock spinlock protected region because the function batadv_gw_node_update still holds a gw_node reference for the object pointer on the stack. Thus the actual release function (when required) will be called only at the end of the function. Fixes: bd3524c14bd0 ("batman-adv: remove obsolete deleted attribute for gateway node") Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/gateway_client.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit fb896c44f88a75843a072cd6961b1615732f7811 Author: Liad Kaufman Date: Sun Feb 14 15:32:58 2016 +0200 iwlwifi: mvm: inc pending frames counter also when txing non-sta Until this patch, when TXing non-sta the pending_frames counter wasn't increased, but it WAS decreased in iwl_mvm_rx_tx_cmd_single(), what makes it negative in certain conditions. This in turn caused much trouble when we need to remove the station since we won't be waiting forever until pending_frames gets 0. In certain cases, we were exhausting the station table even in BSS mode, because we had a lot of stale stations. Increase the counter also in iwl_mvm_tx_skb_non_sta() after a successful TX to avoid this outcome. CC: [3.18+] Signed-off-by: Liad Kaufman Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit c906f38e8853cfd407b30d2f4756a93c1d8f698f Author: Kirill Tkhai Date: Tue Feb 16 00:20:19 2016 -0500 ext4: fix memleak in ext4_readdir() When ext4_bread() fails, fname_crypto_str remains allocated after return. Fix that. Signed-off-by: Kirill Tkhai Signed-off-by: Theodore Ts'o CC: Dmitry Monakhov fs/ext4/dir.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 1636d1d77ef4e01e57f706a4cae3371463896136 Author: Filipe Manana Date: Mon Feb 15 16:20:26 2016 +0000 Btrfs: fix direct IO requests not reporting IO error to user space If a bio for a direct IO request fails, we were not setting the error in the parent bio (the main DIO bio), making us not return the error to user space in btrfs_direct_IO(), that is, it made __blockdev_direct_IO() return the number of bytes issued for IO and not the error a bio created and submitted by btrfs_submit_direct() got from the block layer. This essentially happens because when we call: dio_end_io(dio_bio, bio->bi_error); It does not set dio_bio->bi_error to the value of the second argument. So just add this missing assignment in endio callbacks, just as we do in the error path at btrfs_submit_direct() when we fail to clone the dio bio or allocate its private object. This follows the convention of what is done with other similar APIs such as bio_endio() where the caller is responsible for setting the bi_error field in the bio it passes as an argument to bio_endio(). This was detected by the new generic test cases in xfstests: 271, 272, 276 and 278. Which essentially setup a dm error target, then load the error table, do a direct IO write and unload the error table. They expect the write to fail with -EIO, which was not getting reported when testing against btrfs. Cc: stable@vger.kernel.org # 4.3+ Fixes: 4246a0b63bd8 ("block: add a bi_error field to struct bio") Signed-off-by: Filipe Manana fs/btrfs/inode.c | 2 ++ 1 file changed, 2 insertions(+) commit d9ff0eb9ca4b00ce2fbf9ede1e99681f05c0bc91 Author: Youngmin Nam Date: Tue Feb 9 00:49:28 2016 +0900 pinctrl: samsung: fix SMP race condition Previously, samsung_gpio_drection_in/output function were not covered with a spinlock. For example, samsung_gpio_direction_output function consists of two functions. 1. samsung_gpio_set 2. samsung_gpio_set_direction When 2 CPUs try to control the same gpio pin heavily, (situation like i2c control with gpio emulation) This situation can cause below problem. CPU 0 | CPU1 | samsung_gpio_direction_output | samsung_gpio_set(pin A as 1) | samsung_gpio_direction_output | samsung_gpio_set(pin A as 0) samsung_gpio_set_direction | | samsung_gpio_set_direction The initial value of pin A will be set as 0 while we wanted to set pin A as 1. This patch modifies samsung_gpio_direction_in/output function to be done in one spinlock to fix race condition. Additionally, the new samsung_gpio_set_value was added to implement gpio set callback(samsung_gpio_set) with spinlock using this function. Cc: stable@vger.kernel.org Signed-off-by: Youngmin Nam Acked-by: Tomasz Figa Signed-off-by: Linus Walleij drivers/pinctrl/samsung/pinctrl-samsung.c | 48 ++++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 13 deletions(-) commit b33c8ff4431a343561e2319f17c14286f2aa52e2 Author: Arnd Bergmann Date: Fri Feb 12 22:26:42 2016 +0100 tracing: Fix freak link error caused by branch tracer In my randconfig tests, I came across a bug that involves several components: * gcc-4.9 through at least 5.3 * CONFIG_GCOV_PROFILE_ALL enabling -fprofile-arcs for all files * CONFIG_PROFILE_ALL_BRANCHES overriding every if() * The optimized implementation of do_div() that tries to replace a library call with an division by multiplication * code in drivers/media/dvb-frontends/zl10353.c doing u32 adc_clock = 450560; /* 45.056 MHz */ if (state->config.adc_clock) adc_clock = state->config.adc_clock; do_div(value, adc_clock); In this case, gcc fails to determine whether the divisor in do_div() is __builtin_constant_p(). In particular, it concludes that __builtin_constant_p(adc_clock) is false, while __builtin_constant_p(!!adc_clock) is true. That in turn throws off the logic in do_div() that also uses __builtin_constant_p(), and instead of picking either the constant- optimized division, and the code in ilog2() that uses __builtin_constant_p() to figure out whether it knows the answer at compile time. The result is a link error from failing to find multiple symbols that should never have been called based on the __builtin_constant_p(): dvb-frontends/zl10353.c:138: undefined reference to `____ilog2_NaN' dvb-frontends/zl10353.c:138: undefined reference to `__aeabi_uldivmod' ERROR: "____ilog2_NaN" [drivers/media/dvb-frontends/zl10353.ko] undefined! ERROR: "__aeabi_uldivmod" [drivers/media/dvb-frontends/zl10353.ko] undefined! This patch avoids the problem by changing __trace_if() to check whether the condition is known at compile-time to be nonzero, rather than checking whether it is actually a constant. I see this one link error in roughly one out of 1600 randconfig builds on ARM, and the patch fixes all known instances. Link: http://lkml.kernel.org/r/1455312410-1058841-1-git-send-email-arnd@arndb.de Acked-by: Nicolas Pitre Fixes: ab3c9c686e22 ("branch tracer, intel-iommu: fix build with CONFIG_BRANCH_TRACER=y") Cc: stable@vger.kernel.org # v2.6.30+ Signed-off-by: Arnd Bergmann Signed-off-by: Steven Rostedt include/linux/compiler.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f37755490fe9bf76f6ba1d8c6591745d3574a6a6 Author: Steven Rostedt (Red Hat) Date: Mon Feb 15 12:36:14 2016 -0500 tracepoints: Do not trace when cpu is offline The tracepoint infrastructure uses RCU sched protection to enable and disable tracepoints safely. There are some instances where tracepoints are used in infrastructure code (like kfree()) that get called after a CPU is going offline, and perhaps when it is coming back online but hasn't been registered yet. This can probuce the following warning: [ INFO: suspicious RCU usage. ] 4.4.0-00006-g0fe53e8-dirty #34 Tainted: G S ------------------------------- include/trace/events/kmem.h:141 suspicious rcu_dereference_check() usage! other info that might help us debug this: RCU used illegally from offline CPU! rcu_scheduler_active = 1, debug_locks = 1 no locks held by swapper/8/0. stack backtrace: CPU: 8 PID: 0 Comm: swapper/8 Tainted: G S 4.4.0-00006-g0fe53e8-dirty #34 Call Trace: [c0000005b76c78d0] [c0000000008b9540] .dump_stack+0x98/0xd4 (unreliable) [c0000005b76c7950] [c00000000010c898] .lockdep_rcu_suspicious+0x108/0x170 [c0000005b76c79e0] [c00000000029adc0] .kfree+0x390/0x440 [c0000005b76c7a80] [c000000000055f74] .destroy_context+0x44/0x100 [c0000005b76c7b00] [c0000000000934a0] .__mmdrop+0x60/0x150 [c0000005b76c7b90] [c0000000000e3ff0] .idle_task_exit+0x130/0x140 [c0000005b76c7c20] [c000000000075804] .pseries_mach_cpu_die+0x64/0x310 [c0000005b76c7cd0] [c000000000043e7c] .cpu_die+0x3c/0x60 [c0000005b76c7d40] [c0000000000188d8] .arch_cpu_idle_dead+0x28/0x40 [c0000005b76c7db0] [c000000000101e6c] .cpu_startup_entry+0x50c/0x560 [c0000005b76c7ed0] [c000000000043bd8] .start_secondary+0x328/0x360 [c0000005b76c7f90] [c000000000008a6c] start_secondary_prolog+0x10/0x14 This warning is not a false positive either. RCU is not protecting code that is being executed while the CPU is offline. Instead of playing "whack-a-mole(TM)" and adding conditional statements to the tracepoints we find that are used in this instance, simply add a cpu_online() test to the tracepoint code where the tracepoint will be ignored if the CPU is offline. Use of raw_smp_processor_id() is fine, as there should never be a case where the tracepoint code goes from running on a CPU that is online and suddenly gets migrated to a CPU that is offline. Link: http://lkml.kernel.org/r/1455387773-4245-1-git-send-email-kda@linux-powerpc.org Reported-by: Denis Kirjanov Fixes: 97e1c18e8d17b ("tracing: Kernel Tracepoints") Cc: stable@vger.kernel.org # v2.6.28+ Signed-off-by: Steven Rostedt include/linux/tracepoint.h | 5 +++++ 1 file changed, 5 insertions(+) commit e0fa0d0189f6be61343dbff1f71bef20125576e7 Author: Trond Myklebust Date: Mon Feb 15 12:56:17 2016 -0500 pNFS: Always set NFS_LAYOUT_RETURN_REQUESTED with lo->plh_return_iomode When setting the layout return mode, we must always also set the NFS_LAYOUT_RETURN_REQUESTED flag to ensure that we send a layoutreturn. Otherwise pnfs_error_mark_layout_for_return() could set the mode, but fail to send the layoutreturn because another is already in flight. Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 2f21596882f4a0edc387051910d56f8732970080 Author: Trond Myklebust Date: Mon Feb 15 12:36:04 2016 -0500 pNFS: Fix pnfs_mark_matching_lsegs_return() We don't need to schedule a layoutreturn if the layout segment can be freed immediately. Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit ee1cdcdae59563535485a5f56ee72c894ab7d7ad Author: Andy Shevchenko Date: Wed Feb 10 15:59:42 2016 +0200 dmaengine: dw: disable BLOCK IRQs for non-cyclic xfer The commit 2895b2cad6e7 ("dmaengine: dw: fix cyclic transfer callbacks") re-enabled BLOCK interrupts with regard to make cyclic transfers work. However, this change becomes a regression for non-cyclic transfers as interrupt counters under stress test had been grown enormously (approximately per 4-5 bytes in the UART loop back test). Taking into consideration above enable BLOCK interrupts if and only if channel is programmed to perform cyclic transfer. Fixes: 2895b2cad6e7 ("dmaengine: dw: fix cyclic transfer callbacks") Signed-off-by: Andy Shevchenko Acked-by: Mans Rullgard Tested-by: Mans Rullgard Acked-by: Viresh Kumar Cc: Signed-off-by: Vinod Koul drivers/dma/dw/core.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) commit bee038a4bd2efe8188cc80dfdad706a9abe568ad Author: Jeremy Linton Date: Fri Feb 12 09:47:52 2016 -0600 arm/arm64: crypto: assure that ECB modes don't require an IV ECB modes don't use an initialization vector. The kernel /proc/crypto interface doesn't reflect this properly. Acked-by: Ard Biesheuvel Signed-off-by: Jeremy Linton Signed-off-by: Will Deacon arch/arm/crypto/aes-ce-glue.c | 4 ++-- arch/arm64/crypto/aes-glue.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit 0b8c82190c12e530eb6003720dac103bf63e146e Author: Takashi Iwai Date: Mon Feb 15 16:37:24 2016 +0100 ALSA: hda - Cancel probe work instead of flush at remove The commit [991f86d7ae4e: ALSA: hda - Flush the pending probe work at remove] introduced the sync of async probe work at remove for fixing the race. However, this may lead to another hangup when the module removal is performed quickly before starting the probe work, because it issues flush_work() and it's blocked forever. The workaround is to use cancel_work_sync() instead of flush_work() there. Fixes: 991f86d7ae4e ('ALSA: hda - Flush the pending probe work at remove') Cc: # v3.17+ Signed-off-by: Takashi Iwai sound/pci/hda/hda_intel.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d99a36f4728fcbcc501b78447f625bdcce15b842 Author: Takashi Iwai Date: Mon Feb 15 16:20:24 2016 +0100 ALSA: seq: Fix leak of pool buffer at concurrent writes When multiple concurrent writes happen on the ALSA sequencer device right after the open, it may try to allocate vmalloc buffer for each write and leak some of them. It's because the presence check and the assignment of the buffer is done outside the spinlock for the pool. The fix is to move the check and the assignment into the spinlock. (The current implementation is suboptimal, as there can be multiple unnecessary vmallocs because the allocation is done before the check in the spinlock. But the pool size is already checked beforehand, so this isn't a big problem; that is, the only possible path is the multiple writes before any pool assignment, and practically seen, the current coverage should be "good enough".) The issue was triggered by syzkaller fuzzer. BugLink: http://lkml.kernel.org/r/CACT4Y+bSzazpXNvtAr=WXaL8hptqjHwqEyFA+VN2AWEx=aurkg@mail.gmail.com Reported-by: Dmitry Vyukov Tested-by: Dmitry Vyukov Cc: Signed-off-by: Takashi Iwai sound/core/seq/seq_memory.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 4d8c8bd6f2062c9988817183a91fe2e623c8aa5e Author: Konrad Rzeszutek Wilk Date: Thu Feb 11 16:10:26 2016 -0500 xen/pcifront: Fix mysterious crashes when NUMA locality information was extracted. Occasionaly PV guests would crash with: pciback 0000:00:00.1: Xen PCI mapped GSI0 to IRQ16 BUG: unable to handle kernel paging request at 0000000d1a8c0be0 .. snip.. ] find_next_bit+0xb/0x10 [] cpumask_next_and+0x22/0x40 [] pci_device_probe+0xb8/0x120 [] ? driver_sysfs_add+0x77/0xa0 [] driver_probe_device+0x1a4/0x2d0 [] ? pci_match_device+0xdd/0x110 [] __device_attach_driver+0xa7/0xb0 [] ? __driver_attach+0xa0/0xa0 [] bus_for_each_drv+0x62/0x90 [] __device_attach+0xbd/0x110 [] device_attach+0xb/0x10 [] pci_bus_add_device+0x3c/0x70 [] pci_bus_add_devices+0x38/0x80 [] pcifront_scan_root+0x13e/0x1a0 [] pcifront_backend_changed+0x262/0x60b [] ? xenbus_gather+0xd6/0x160 [] ? put_object+0x2f/0x50 [] xenbus_otherend_changed+0x9d/0xa0 [] backend_changed+0xe/0x10 [] xenwatch_thread+0xc8/0x190 [] ? woken_wake_function+0x10/0x10 which was the result of two things: When we call pci_scan_root_bus we would pass in 'sd' (sysdata) pointer which was an 'pcifront_sd' structure. However in the pci_device_add it expects that the 'sd' is 'struct sysdata' and sets the dev->node to what is in sd->node (offset 4): set_dev_node(&dev->dev, pcibus_to_node(bus)); __pcibus_to_node(const struct pci_bus *bus) { const struct pci_sysdata *sd = bus->sysdata; return sd->node; } However our structure was pcifront_sd which had nothing at that offset: struct pcifront_sd { int domain; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ struct pcifront_device * pdev; /* 8 8 */ } That is an hole - filled with garbage as we used kmalloc instead of kzalloc (the second problem). This patch fixes the issue by: 1) Use kzalloc to initialize to a well known state. 2) Put 'struct pci_sysdata' at the start of 'pcifront_sd'. That way access to the 'node' will access the right offset. Signed-off-by: Konrad Rzeszutek Wilk Cc: Reviewed-by: Boris Ostrovsky Signed-off-by: David Vrabel drivers/pci/xen-pcifront.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 00780f3b1a10d1be006b920505faf1d02f76f0e4 Author: Andrzej Hajda Date: Thu Feb 11 12:25:04 2016 +0100 drm/exynos/decon: fix disable clocks order Decon requires that clocks should be disabled in reverse order. Otherwise system hangs. Signed-off-by: Andrzej Hajda Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d380a1632c4e036d50c898e874a194fd4bf8bdee Author: Marek Szyprowski Date: Thu Feb 11 12:32:07 2016 +0100 drm/exynos: fix incorrect cpu address for dma_mmap_attrs() dma_mmap_attrs() should be called with cpu address returned by dma_alloc_attrs(). Existing code however passed pages array base as cpu address. This worked only by a pure luck on ARM architecture. This patch fixes this issue. Signed-off-by: Marek Szyprowski Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 2 +- drivers/gpu/drm/exynos/exynos_drm_gem.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 74ebc70622c95b3e767f62b73a3ef624c913e5dd Author: Marek Szyprowski Date: Wed Feb 3 13:42:54 2016 +0100 drm/exynos: exynos5433_decon: fix wrong state in decon_vblank_enable BIT_IRQS_ENABLED was never set because of incorrect test in decon_vlank_enable() function, what resulted in lack of enabling vblank support. This patch fixes this issue. Signed-off-by: Marek Szyprowski Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c90f950ce3b33a020292c7e7feca644a706265ca Author: Marek Szyprowski Date: Wed Feb 3 13:42:53 2016 +0100 drm/exynos: exynos5433_decon: fix wrong state assignment in decon_enable Patch ebf3fd403b79ba6561bd1a4bb5a7cacc99da08e5 ("drm/exynos: add pm_runtime to DECON 5433") removed some code from decon_enable() function, but it left set_bit(BIT_SUSPENDED, &ctx->flags) call, which was earlier called only in error path. This patch removes it, what finally lets driver to go out of suspended state. Signed-off-by: Marek Szyprowski Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 2 -- 1 file changed, 2 deletions(-) commit e7ad6606c000bf71df1ed0dcfca91227ce375db3 Author: Marek Szyprowski Date: Wed Feb 3 13:42:51 2016 +0100 drm/exynos: dsi: restore support for drm bridge This patch fixes issue introduced by commit cf67cc9a29ac19c98bc4fa0e6d14b0c1f592d322 ("drm/exynos: remove struct exynos_drm_display"), which removed assigning of drm bridge to drm encoder. Lack of it caused that no bridge callbacks were called on encoder enable/disable actions. Signed-off-by: Marek Szyprowski Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_dsi.c | 1 + 1 file changed, 1 insertion(+) commit 8b0be57286642f87a968c00932c3f2ef936f6b7b Author: Marek Szyprowski Date: Wed Feb 3 13:42:50 2016 +0100 drm/exynos: mic: make all functions static There is no point exposing all internal functions to global kernel name space, so make all internals functions static. Signed-off-by: Marek Szyprowski Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_mic.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 622688f36e9b98ab0c0a01a47c33635519e735cb Author: Marek Szyprowski Date: Wed Feb 3 13:42:49 2016 +0100 drm/exynos: mic: convert to component framework MIC is SoC component and important part of kms pipeline on Exynos5433, so convert it to use component framework like other KMS/CRTC drivers. MIC driver is already listed on KMS component driver list in Exynos DRM core, so without this conversion, initialization of Exynos DRM core fails on Exynos 5433 SoC. Signed-off-by: Marek Szyprowski Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_mic.c | 56 +++++++++++++++++++++------------ 1 file changed, 36 insertions(+), 20 deletions(-) commit 38b5e5f4d76df1116b0b5a76fb9b7549a44efe6e Author: Marek Szyprowski Date: Wed Feb 3 13:42:48 2016 +0100 drm/exynos: mic: use devm_clk interface Drivers should use devm_clk* interface instead of of_clk* functions. Signed-off-by: Marek Szyprowski Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_mic.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 0f10c71a10d04e86fd842d621f678ee1fd233695 Author: Marek Szyprowski Date: Wed Feb 3 13:42:47 2016 +0100 drm/exynos: fix types for compilation on 64bit architectures This patch fixes compilation warnings (on 64bit architectures) and bugs related to casting pointers through 32bit integers. Signed-off-by: Marek Szyprowski Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_g2d.c | 5 +++-- drivers/gpu/drm/exynos/exynos_drm_gem.c | 2 +- drivers/gpu/drm/exynos/exynos_drm_vidi.c | 8 +++++--- 3 files changed, 9 insertions(+), 6 deletions(-) commit 977b5067c232020c5e27842aa5bec3e93d336e60 Author: Marek Szyprowski Date: Wed Feb 3 13:42:46 2016 +0100 drm/exynos: ipp: fix incorrect format specifiers in debug messages Drivers should use %p for printing pointers instead of hardcoding them as hexadecimal integers. This patch fixes compilation warnings on 64bit architectures. Signed-off-by: Marek Szyprowski Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_fimc.c | 2 +- drivers/gpu/drm/exynos/exynos_drm_gsc.c | 2 +- drivers/gpu/drm/exynos/exynos_drm_ipp.c | 32 ++++++++++++++--------------- drivers/gpu/drm/exynos/exynos_drm_rotator.c | 2 +- 4 files changed, 19 insertions(+), 19 deletions(-) commit c327cd635c5367d9d6b063dd2d8c78484d4e4fb3 Author: Joonyoung Shim Date: Wed Feb 3 13:42:45 2016 +0100 drm/exynos: depend on ARCH_EXYNOS for DRM_EXYNOS Because PLAT_SAMSUNG isn't include exynos SoCs for arm64, but ARCH_EXYNOS can do it. And it also needs to add ARCH_S3C64XX instead of PLAT_SAMSUNG. Signed-off-by: Joonyoung Shim Signed-off-by: Marek Szyprowski Signed-off-by: Inki Dae drivers/gpu/drm/exynos/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2cfec6a2f989d5c921ba11a329ff8ea986702b9b Author: Konrad Rzeszutek Wilk Date: Thu Feb 11 16:10:25 2016 -0500 xen/pcifront: Report the errors better. The messages should be different depending on the type of error. Signed-off-by: Konrad Rzeszutek Wilk Signed-off-by: David Vrabel arch/x86/include/asm/xen/pci.h | 4 ++-- arch/x86/pci/xen.c | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) commit d159457b84395927b5a52adb72f748dd089ad5e5 Author: Konrad Rzeszutek Wilk Date: Thu Feb 11 16:10:24 2016 -0500 xen/pciback: Save the number of MSI-X entries to be copied later. Commit 8135cf8b092723dbfcc611fe6fdcb3a36c9951c5 (xen/pciback: Save xen_pci_op commands before processing it) broke enabling MSI-X because it would never copy the resulting vectors into the response. The number of vectors requested was being overwritten by the return value (typically zero for success). Save the number of vectors before processing the op, so the correct number of vectors are copied afterwards. Signed-off-by: Konrad Rzeszutek Wilk Cc: Reviewed-by: Jan Beulich Signed-off-by: David Vrabel drivers/xen/xen-pciback/pciback_ops.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 8d47065f7d1980dde52abb874b301054f3013602 Author: Konrad Rzeszutek Wilk Date: Thu Feb 11 16:10:23 2016 -0500 xen/pciback: Check PF instead of VF for PCI_COMMAND_MEMORY Commit 408fb0e5aa7fda0059db282ff58c3b2a4278baa0 (xen/pciback: Don't allow MSI-X ops if PCI_COMMAND_MEMORY is not set) prevented enabling MSI-X on passed-through virtual functions, because it checked the VF for PCI_COMMAND_MEMORY but this is not a valid bit for VFs. Instead, check the physical function for PCI_COMMAND_MEMORY. Signed-off-by: Konrad Rzeszutek Wilk Cc: Reviewed-by: Jan Beulich Signed-off-by: David Vrabel drivers/xen/xen-pciback/pciback_ops.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 85c0a87cd117e83361932b2b160c9af178fdb21a Author: Insu Yun Date: Mon Jan 18 11:54:43 2016 -0500 xen: fix potential integer overflow in queue_reply When len is greater than UINT_MAX - sizeof(*rb), in next allocation, it can overflow integer range and allocates small size of heap. After that, memcpy will overflow the allocated heap. Therefore, it needs to check the size of given length. Signed-off-by: Insu Yun Signed-off-by: David Vrabel drivers/xen/xenbus/xenbus_dev_frontend.c | 2 ++ 1 file changed, 2 insertions(+) commit 814a3c0c2a8dfad97089f6bdc71b374f6076490e Author: Tony Lindgren Date: Wed Feb 10 15:02:44 2016 -0800 mmc: omap_hsmmc: Fix PM regression with deferred probe for pm_runtime_reinit Commit 5de85b9d57ab ("PM / runtime: Re-init runtime PM states at probe error and driver unbind") introduced pm_runtime_reinit() that is used to reinitialize PM runtime after -EPROBE_DEFER. This allows shutting down the device after a failed probe. However, for drivers using pm_runtime_use_autosuspend() this can cause a state where suspend callback is never called after -EPROBE_DEFER. On the following device driver probe, hardware state is different from the PM runtime state causing omap_device to produce the following error: omap_device_enable() called from invalid state 1 And with omap_device and omap hardware being picky for PM, this will block any deeper idle states in hardware. The solution is to fix the drivers to follow the PM runtime documentation: 1. For sections of code that needs the device disabled, use pm_runtime_put_sync_suspend() if pm_runtime_set_autosuspend() has been set. 2. For driver exit code, use pm_runtime_dont_use_autosuspend() before pm_runtime_put_sync() if pm_runtime_use_autosuspend() has been set. Fixes: 5de85b9d57ab ("PM / runtime: Re-init runtime PM states at probe error and driver unbind") Cc: linux-mmc@vger.kernel.org Cc: Alan Stern Cc: Kevin Hilman Cc: Nishanth Menon Cc: Rafael J. Wysocki Cc: Ulf Hansson Cc: Tero Kristo Signed-off-by: Tony Lindgren Signed-off-by: Ulf Hansson drivers/mmc/host/omap_hsmmc.c | 2 ++ 1 file changed, 2 insertions(+) commit 46924008273ed03bd11dbb32136e3da4cfe056e1 Author: David Woodhouse Date: Mon Feb 15 12:42:38 2016 +0000 iommu/vt-d: Clear PPR bit to ensure we get more page request interrupts According to the VT-d specification we need to clear the PPR bit in the Page Request Status register when handling page requests, or the hardware won't generate any more interrupts. This wasn't actually necessary on SKL/KBL (which may well be the subject of a hardware erratum, although it's harmless enough). But other implementations do appear to get it right, and we only ever get one interrupt unless we clear the PPR bit. Reported-by: CQ Tang Signed-off-by: David Woodhouse Cc: stable@vger.kernel.org drivers/iommu/intel-svm.c | 4 ++++ include/linux/intel-iommu.h | 3 +++ 2 files changed, 7 insertions(+) commit 844c9f476a43db0bdf61df409026a026ce98ec1b Author: Shawn Lin Date: Mon Feb 15 16:28:12 2016 +0800 spi: rockchip: add missing spi_master_put Add missing spi_master_put for rockchip_spi_remove since it calls spi_master_get already. Signed-off-by: Shawn Lin Signed-off-by: Mark Brown drivers/spi/spi-rockchip.c | 2 ++ 1 file changed, 2 insertions(+) commit b8659adda9e295eca0b10a67f3b15a8644c8ed6f Author: Shawn Lin Date: Mon Feb 15 16:27:58 2016 +0800 spi: rockchip: disable runtime pm when in err case Before registering master, driver enables runtime pm. This patch pm_runtime_disable in err case while probing driver to balance pm reference count. Signed-off-by: Shawn Lin Signed-off-by: Mark Brown drivers/spi/spi-rockchip.c | 1 + 1 file changed, 1 insertion(+) commit 20aa99bbddae74bded68338f9ba200ccae02858b Author: Anton Protopopov Date: Thu Feb 11 08:35:15 2016 +0200 iwlwifi: pcie: fix erroneous return value The iwl_trans_pcie_start_fw() function may return the positive value EIO instead of -EIO in case of error. Signed-off-by: Anton Protopopov Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a6bd005fe92dc1cc808c4c6aa43e3b2a8272bbfa Author: Emmanuel Grumbach Date: Sun Jan 31 15:02:30 2016 +0200 iwlwifi: pcie: fix RF-Kill vs. firmware load race When we load the firmware, we hold trans_pcie->mutex to avoid nested flows. We also rely on the ISR to wake up the thread when the DMA has finished copying a chunk. During this flow, we enable the RF-Kill interrupt. The problem is that the RF-Kill interrupt handler can take the mutex and bring the device down. This means that if we load the firmware while the RF-Kill switch is enabled (which will happen when we load the INIT firmware to read the device's capabilities and register to mac80211), we may get an RF-Kill interrupt immediately and the ISR will be waiting for the mutex held by the thread that is currently loading the firmware. At this stage, the ISR won't be able to service the DMA's interrupt needed to wake up the thread that load the firmware. We are in a deadlock situation which ends when the thread that loads the firmware fails on timeout and releases the mutex. To fix this, take the mutex later in the flow, disable the interrupts and synchronize_irq() to give a chance to the RF-Kill interrupt to run and complete. After that, mask all the interrupts besides the DMA interrupt and proceed with firmware load. Make sure to check that there was no RF-Kill interrupt when the interrupts were disabled. This fixes https://bugzilla.kernel.org/show_bug.cgi?id=111361 Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/pcie/internal.h | 9 + drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 8 +- drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 188 ++++++++++++--------- 3 files changed, 123 insertions(+), 82 deletions(-) commit c777e2a8b65420b31dac28a453e35be984f5808b Author: Aneesh Kumar K.V Date: Tue Feb 9 06:50:31 2016 +0530 powerpc/mm: Fix Multi hit ERAT cause by recent THP update With ppc64 we use the deposited pgtable_t to store the hash pte slot information. We should not withdraw the deposited pgtable_t without marking the pmd none. This ensure that low level hash fault handling will skip this huge pte and we will handle them at upper levels. Recent change to pmd splitting changed the above in order to handle the race between pmd split and exit_mmap. The race is explained below. Consider following race: CPU0 CPU1 shrink_page_list() add_to_swap() split_huge_page_to_list() __split_huge_pmd_locked() pmdp_huge_clear_flush_notify() // pmd_none() == true exit_mmap() unmap_vmas() zap_pmd_range() // no action on pmd since pmd_none() == true pmd_populate() As result the THP will not be freed. The leak is detected by check_mm(): BUG: Bad rss-counter state mm:ffff880058d2e580 idx:1 val:512 The above required us to not mark pmd none during a pmd split. The fix for ppc is to clear the huge pte of _PAGE_USER, so that low level fault handling code skip this pte. At higher level we do take ptl lock. That should serialze us against the pmd split. Once the lock is acquired we do check the pmd again using pmd_same. That should always return false for us and hence we should retry the access. We do the pmd_same check in all case after taking plt with THP (do_huge_pmd_wp_page, do_huge_pmd_numa_page and huge_pmd_set_accessed) Also make sure we wait for irq disable section in other cpus to finish before flipping a huge pte entry with a regular pmd entry. Code paths like find_linux_pte_or_hugepte depend on irq disable to get a stable pte_t pointer. A parallel thp split need to make sure we don't convert a pmd pte to a regular pmd entry without waiting for the irq disable section to finish. Fixes: eef1b3ba053a ("thp: implement split_huge_pmd()") Acked-by: Kirill A. Shutemov Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/include/asm/book3s/64/pgtable.h | 4 ++++ arch/powerpc/mm/pgtable_64.c | 32 ++++++++++++++++++++++++++++ include/asm-generic/pgtable.h | 8 +++++++ mm/huge_memory.c | 1 + 4 files changed, 45 insertions(+) commit 1bc74f1ccd457832dc515fc1febe6655985fdcd2 Author: Gavin Shan Date: Tue Feb 9 15:50:22 2016 +1100 powerpc/powernv: Fix stale PE primary bus When PCI bus is unplugged during full hotplug for EEH recovery, the platform PE instance (struct pnv_ioda_pe) isn't released and it dereferences the stale PCI bus that has been released. It leads to kernel crash when referring to the stale PCI bus. This fixes the issue by correcting the PE's primary bus when it's oneline at plugging time, in pnv_pci_dma_bus_setup() which is to be called by pcibios_fixup_bus(). Cc: stable@vger.kernel.org # v4.1+ Reported-by: Andrew Donnellan Reported-by: Pradipta Ghosh Signed-off-by: Gavin Shan Tested-by: Andrew Donnellan Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci-ioda.c | 1 + arch/powerpc/platforms/powernv/pci.c | 20 ++++++++++++++++++++ arch/powerpc/platforms/powernv/pci.h | 1 + 3 files changed, 22 insertions(+) commit 05ba75f848647135f063199dc0e9f40fee769724 Author: Gavin Shan Date: Tue Feb 9 15:50:21 2016 +1100 powerpc/eeh: Fix stale cached primary bus When PE is created, its primary bus is cached to pe->bus. At later point, the cached primary bus is returned from eeh_pe_bus_get(). However, we could get stale cached primary bus and run into kernel crash in one case: full hotplug as part of fenced PHB error recovery releases all PCI busses under the PHB at unplugging time and recreate them at plugging time. pe->bus is still dereferencing the PCI bus that was released. This adds another PE flag (EEH_PE_PRI_BUS) to represent the validity of pe->bus. pe->bus is updated when its first child EEH device is online and the flag is set. Before unplugging in full hotplug for error recovery, the flag is cleared. Fixes: 8cdb2833 ("powerpc/eeh: Trace PCI bus from PE") Cc: stable@vger.kernel.org #v3.11+ Reported-by: Andrew Donnellan Reported-by: Pradipta Ghosh Signed-off-by: Gavin Shan Tested-by: Andrew Donnellan Signed-off-by: Michael Ellerman arch/powerpc/include/asm/eeh.h | 1 + arch/powerpc/kernel/eeh_driver.c | 3 +++ arch/powerpc/kernel/eeh_pe.c | 2 +- arch/powerpc/platforms/powernv/eeh-powernv.c | 5 ++++- 4 files changed, 9 insertions(+), 2 deletions(-) commit 126df08c52375817c237f38c3bcd01d78a60c090 Author: Denis Kirjanov Date: Mon Dec 14 23:18:06 2015 +0300 powerpc/pseries: Don't trace hcalls on offline CPUs If a cpu is hotplugged while the hcall trace points are active, it's possible to hit a warning from RCU due to the trace points calling into RCU from an offline cpu, eg: RCU used illegally from offline CPU! rcu_scheduler_active = 1, debug_locks = 1 Make the hypervisor tracepoints conditional by using TRACE_EVENT_FN_COND. Acked-by: Steven Rostedt Signed-off-by: Denis Kirjanov Signed-off-by: Michael Ellerman arch/powerpc/include/asm/trace.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 5e56276e7555b34550d51459a801ff75eca8b907 Author: Luca Coelho Date: Tue Feb 2 15:11:15 2016 +0200 iwlwifi: mvm: don't allow sched scans without matches to be started The firmware can perform a scheduled scan with not matchsets passed, but it can't send notification that results were found. Since the userspace then cannot know when we got new results and the firmware wouldn't trigger a wake in case we are sleeping, it's better not to allow scans without matchsets. This fixes https://bugzilla.kernel.org/show_bug.cgi?id=110831 Cc: [3.17+] Signed-off-by: Luca Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 4 ++++ 1 file changed, 4 insertions(+) commit 1926e54f115725a9248d0c4c65c22acaf94de4c4 Author: Simon Horman Date: Mon Feb 15 10:49:47 2016 +0900 MAINTAINERS: Update mailing list for Renesas ARM64 SoC Development Update the mailing list used for development of support for ARM64 Renesas SoCs. This is a follow-up for a similar change for other Renesas SoCs and drivers uses by Renesas SoCs. The ARM64 SoC entry was not updated in that patch as it was not yet present in mainline. The motivation for the mailing list update is that Renesas SoCs are now much wider than the SH architecture and there is some desire from some for the linux-sh list to refocus on discussion of the work on the SH architecture. Acked-by: Magnus Damm Acked-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Linus Torvalds MAINTAINERS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 631c0e84d941a43c9477afbea6374a18b816f68e Merge: 18558ca bdbe58e Author: Linus Torvalds Date: Sun Feb 14 18:34:12 2016 -0800 Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux Pull i915 drm fixes from Dave Airlie: "Jani sent a bunch of i915 display fixes as my weekend started, but hopefully you can fit them in" * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: drm/i915: fix error path in intel_setup_gmbus() drm/i915/skl: Fix typo in DPLL_CFGCR1 definition drm/i915/skl: Don't skip mst encoders in skl_ddi_pll_select() drm/i915: Pretend cursor is always on for ILK-style WM calculations (v2) drm/i915/dp: reduce missing TPS3 support errors to debug logging drm/i915/dp: abstract training pattern selection drm/i915/dsi: skip gpio element execution when not supported drm/i915/dsi: don't pass arbitrary data to sideband drm/i915/dsi: defend gpio table against out of bounds access drm/i915/bxt: Don't save/restore eDP panel power during suspend (v3) drm/i915: Allow i915_gem_object_get_page() on userptr as well commit 18558cae0272f8fd9647e69d3fec1565a7949865 Author: Linus Torvalds Date: Sun Feb 14 13:05:20 2016 -0800 Linux 4.5-rc4 Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bdbe58e6c60e49930d9c33e7d2b9a7789ed8c1a9 Merge: c92a428 ed3f9fd Author: Dave Airlie Date: Mon Feb 15 06:54:50 2016 +1000 Merge tag 'drm-intel-fixes-2016-02-12' of git://anongit.freedesktop.org/drm-intel into drm-fixes i915 display fixes mostly. * tag 'drm-intel-fixes-2016-02-12' of git://anongit.freedesktop.org/drm-intel: drm/i915: fix error path in intel_setup_gmbus() drm/i915/skl: Fix typo in DPLL_CFGCR1 definition drm/i915/skl: Don't skip mst encoders in skl_ddi_pll_select() drm/i915: Pretend cursor is always on for ILK-style WM calculations (v2) drm/i915/dp: reduce missing TPS3 support errors to debug logging drm/i915/dp: abstract training pattern selection drm/i915/dsi: skip gpio element execution when not supported drm/i915/dsi: don't pass arbitrary data to sideband drm/i915/dsi: defend gpio table against out of bounds access drm/i915/bxt: Don't save/restore eDP panel power during suspend (v3) drm/i915: Allow i915_gem_object_get_page() on userptr as well commit 58dd2b5be1db1c6b99450768f91886396583957c Merge: 60f4058 3b2b9ea Author: Linus Torvalds Date: Sun Feb 14 12:47:45 2016 -0800 Merge tag 'char-misc-4.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc Pull char/misc driver fixes from Greg KH: "Here are 3 fixes for some reported issues. Two nvmem driver fixes, and one mei fix. All have been in linux-next just fine" * tag 'char-misc-4.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: nvmem: qfprom: Specify LE device endianness nvmem: core: return error for non word aligned access mei: validate request value in client notify request ioctl commit 60f40585c9c9c5c09af1b7854e1299a61fc95b21 Merge: 779ee19 00cd29b Author: Linus Torvalds Date: Sun Feb 14 12:34:53 2016 -0800 Merge tag 'driver-core-4.5-rc4' 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, well klist, fix for 4.5-rc4. It fixes a problem found in the scsi device list traversal that probably also could be triggered by other subsystems. The fix has been in linux-next for a while with no reported problems" * tag 'driver-core-4.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: klist: fix starting point removed bug in klist iterators commit 779ee19da757d6bbf5504840f8b624f525de9797 Merge: 9db8cc1 c8053b5 Author: Linus Torvalds Date: Sun Feb 14 12:29:59 2016 -0800 Merge tag 'tty-4.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty Pull tty/serial fixes from Greg KH: "Here are a number of small tty and serial driver fixes for 4.5-rc4 that resolve some reported issues. One of them got reverted as it wasn't correct based on testing, and all have been in linux-next for a while" * tag 'tty-4.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: Revert "8250: uniphier: allow modular build with 8250 console" pty: make sure super_block is still valid in final /dev/tty close pty: fix possible use after free of tty->driver_data tty: Add support for PCIe WCH382 2S multi-IO card serial/omap: mark wait_for_xmitr as __maybe_unused serial: omap: Prevent DoS using unprivileged ioctl(TIOCSRS485) 8250: uniphier: allow modular build with 8250 console tty: Drop krefs for interrupted tty lock commit 9db8cc1ae5b0805230f710ddf4f2de0591db820a Merge: 102a92c 6b44d1e Author: Linus Torvalds Date: Sun Feb 14 12:24:28 2016 -0800 Merge tag 'usb-4.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb Pull PHY fixes from Greg KH: "Here are a couple of PHY driver fixes for 4.5-rc4. A few small phy issues. All have been in linux-next with no reported issues" * tag 'usb-4.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: phy: twl4030-usb: Fix unbalanced pm_runtime_enable on module reload phy: twl4030-usb: Relase usb phy on unload phy: core: fix wrong err handle for phy_power_on phy: Restrict phy-hi6220-usb to HiSilicon arm64 commit 102a92ce28cc08176b7d748e0679f69d46a5a377 Merge: cb490d6 580df49 Author: Linus Torvalds Date: Sun Feb 14 12:07:55 2016 -0800 Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull perf tooling fixes from Thomas Gleixner: "Another round of fixes for the perf tooling side: - Prevent a NULL pointer dereference in tracepoint error handling - Fix a thread handling bug in the intel_pt error handling code - Search both .eh_frame and .debug_frame sections as toolchains seem to have random choices of storing the CFI information - Fix the perf state interval output values, which got broken when fixing the overall output" * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: perf stat: Fix interval output values perf probe: Search both .eh_frame and .debug_frame sections for probe location perf tools: Fix thread lifetime related segfaut in intel_pt perf tools: tracepoint_error() can receive e=NULL, robustify it commit cb490d632b9c7a3f08a9c73b88956132b6ad299c Merge: 6a81094 8a5fd56 Author: Linus Torvalds Date: Sun Feb 14 12:02:05 2016 -0800 Merge branch 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull lockdep fix from Thomas Gleixner: "A single fix for the stack trace caching logic in lockdep, where the duplicate avoidance managed to store no back trace at all" * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: locking/lockdep: Fix stack trace caching logic commit 6a810945ed23554aa71634ff0bf976da41de9045 Merge: 8ab54ed 0f26922 Author: Linus Torvalds Date: Sun Feb 14 11:57:24 2016 -0800 Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull timer fix from Thomas Gleixner: "A single fix preventing a 32bit overflow in timespec/val to cputime conversions on 32bit machines" * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: cputime: Prevent 32bit overflow in time[val|spec]_to_cputime() commit 8ab54ed6412f42a1769cf64d4900f49a422d4292 Merge: 2d23e61 49b245e Author: Linus Torvalds Date: Sun Feb 14 11:49:30 2016 -0800 Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull irqchip fixes from Thomas Gleixner: "Another set of ARM SoC related irqchip fixes: - Plug a memory leak in gicv3-its - Limit features to the root gic interrupt controller - Add a missing barrier in the gic-v3 IAR access - Another compile test fix for sun4i" * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: irqchip/gic-v3: Make sure read from ICC_IAR1_EL1 is visible on redestributor irqchip/gic: Only set the EOImodeNS bit for the root controller irqchip/gic: Only populate set_affinity for the root controller irqchip/gicv3-its: Fix memory leak in its_free_tables() irqchip/sun4i: Fix compilation outside of arch/arm commit 2d23e61fa2ecef787c3d1198b8ce8333264b5b8e Merge: ab57a61 59fd121 Author: Linus Torvalds Date: Sun Feb 14 10:50:26 2016 -0800 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 small fixlets for x86: - Prevent a KASAN false positive in thread_saved_pc() - Fix a 32-bit truncation problem in the x86 numa code" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/mm/numa: Fix 32-bit memblock range truncation bug on 32-bit NUMA kernels x86: Fix KASAN false positives in thread_saved_pc() commit ab57a6111c987456f6848e20c55764d75f67ca2d Merge: be3f4e0 f4d3d50 Author: Linus Torvalds Date: Sun Feb 14 10:49:01 2016 -0800 Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus Pull MIPS fixes from Ralf Baechle: "Here's the first round of MIPS fixes after the merge window: - Detect Octeon III's PCI correctly. - Fix return value of the MT7620 probing function. - Wire up the copy_file_range syscall. - Fix 64k page support on 32 bit kernels. - Fix the early Coherency Manager probe. - Allow only hardware-supported page sizes to be selected for R6000. - Fix corner cases for the RDHWR nstruction emulation on old hardware. - Fix FPU handling corner cases. - Remove stale entry for BCM33xx from the MAINTAINERS file. - 32 and 64 bit ELF headers are different, handle them correctly" * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: mips: Differentiate between 32 and 64 bit ELF header MIPS: Octeon: Update OCTEON_FEATURE_PCIE for Octeon III MIPS: pci-mt7620: Fix return value check in mt7620_pci_probe() MIPS: Fix early CM probing MIPS: Wire up copy_file_range syscall. MIPS: Fix 64k page support for 32 bit kernels. MIPS: R6000: Don't allow 64k pages for R6000. MIPS: traps.c: Correct microMIPS RDHWR emulation MIPS: traps.c: Don't emulate RDHWR in the CpU #0 exception handler MAINTAINERS: Remove stale entry for BCM33xx chips MIPS: Fix FPU disable with preemption MIPS: Properly disable FPU in start_thread() MIPS: Fix buffer overflow in syscall_get_arguments() commit be3f4e0fb3e1ba33c94c43c7cdab9e5165d508b4 Merge: 8b9f9eb e972c37 Author: Linus Torvalds Date: Sun Feb 14 10:46:47 2016 -0800 Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm Pull ARM fixes from Russell King: "A couple of ARM fixes from Linus for the ICST clock generator code" [ "Linus" here is Linus Walleij. Name-stealer. Linus "there can be only one" Torvalds ] * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: ARM: 8519/1: ICST: try other dividends than 1 ARM: 8517/1: ICST: avoid arithmetic overflow in icst_hz() commit 8b9f9ebe07f4ff1340f44e40aa7ce517d55e1882 Merge: 7686e3c 8e7199c Author: Linus Torvalds Date: Sun Feb 14 10:40:21 2016 -0800 Merge branch 'component' of git://ftp.arm.linux.org.uk/~rmk/linux-arm Pull component helper fixes from Russell King: "A few fixes for problems people have encountered with the recent update to the component helpers" * 'component' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: component: remove device from master match list on failed add component: Detach components when deleting master struct component: fix crash on x86_64 with hda audio drivers commit 7686e3c16c4a3669472298ecfc4636485658642b Merge: 2f2e9f2 75c1657 Author: Linus Torvalds Date: Sat Feb 13 17:35:23 2016 -0800 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma Pull more rdma fixes from Doug Ledford: "I think we are getting pretty close to done now. There are four one-off fixes in this update: - fix ipoib multicast joins - fix mlx4 error handling - fix mlx5 size computation - fix a thinko in core code" * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: IB/mlx5: Fix RC transport send queue overhead computation IB/ipoib: fix for rare multicast join race condition IB/core: Fix reading capability mask of the port info class net/mlx4: fix some error handling in mlx4_multi_func_init() commit 2f2e9f2dd1f454f3c4f751b6f83359bc48f21096 Merge: 4617c22 5327c7d Author: Linus Torvalds Date: Sat Feb 13 16:39:27 2016 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending Pull SCSI target fixes from Nicholas Bellinger: "This includes the long awaited series to address a set of bugs around active I/O remote-port LUN_RESET, as well as properly handling this same case with concurrent fabric driver session disconnect -> reconnect. Note this set of LUN_RESET bug-fixes has been surviving extended testing on both v4.5-rc1 and v3.14.y code over the last weeks, and is CC'ed for stable as it's something folks using multiple ESX connected hosts with slow backends can certainly trigger. The highlights also include: - Fix WRITE_SAME/DISCARD emulation 4k sector conversion in target/iblock (Mike Christie) - Fix TMR abort interaction and AIO type TMR response in qla2xxx target (Quinn Tran + Swapnil Nagle) - Fix >= v3.17 stale descriptor pointer regression in qla2xxx target (Quinn Tran) - Fix >= v4.5-rc1 return regression with unmap_zeros_data_store new configfs store handler (nab) - Add CPU affinity flag + convert qla2xxx to use bit (Quinn + HCH + Bart)" * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: qla2xxx: use TARGET_SCF_USE_CPUID flag to indiate CPU Affinity target/transport: add flag to indicate CPU Affinity is observed target: Fix incorrect unmap_zeroes_data_store return qla2xxx: Use ATIO type to send correct tmr response qla2xxx: Fix stale pointer access. target/user: Fix cast from pointer to phys_addr_t target: Drop legacy se_cmd->task_stop_comp + REQUEST_STOP usage target: Fix race with SCF_SEND_DELAYED_TAS handling target: Fix remote-port TMR ABORT + se_cmd fabric stop target: Fix TAS handling for multi-session se_node_acls target: Fix LUN_RESET active TMR descriptor handling target: Fix LUN_RESET active I/O handling for ACK_KREF qla2xxx: Fix TMR ABORT interaction issue between qla2xxx and TCM qla2xxx: Fix warning reported by static checker target: Fix WRITE_SAME/DISCARD conversion to linux 512b sectors commit 7864d92621b6897595fa698b27240828592ebd71 Author: Sebastian Hesselbarth Date: Mon Feb 1 23:48:23 2016 +0100 pinctrl: mvebu: fix num_settings in mpp group assignment When assigning mpp settings from static mpp modes to mpp groups, we do not want any groups that have no supported setting for a specific Kirkwood variant. However, when there is at least a single supported setting, we need to assign the number of all settings in this mode to grp->num_settings as we are reusing the static modes table. Fixes: 0581b16b1840 ("pinctrl: mvebu: complain about missing group after checking variant") Reported-by: Aaro Koskinen Tested-by: Aaro Koskinen Cc: Gregory Clement Cc: Andrew Lunn Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Sebastian Hesselbarth Signed-off-by: Linus Walleij drivers/pinctrl/mvebu/pinctrl-mvebu.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 4617c2203fbc36f496e6d1060299ba27b8e4d01c Merge: b4e4334 a53b839 Author: Linus Torvalds Date: Sat Feb 13 13:05:56 2016 -0800 Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal Pull thermal management fixes from Eduardo Valentin: "Specifics in this pull request: - Compilation fixes on SPEAR, and U8500 thermal drivers. - RCAR thermal driver now recognizes OF-thermal based thermal zones. - Small code rework on OF-thermal. - These change have been CI tested using KernelCI bot [1,2]. \o/ I am taking over on Rui's behalf while he is out. Happy New Chinese Year! [1] - https://kernelci.org/build/evalenti/kernel/v4.5-rc3-16-ga53b8394ec3c/ [2] - https://kernelci.org/boot/all/job/evalenti/kernel/v4.5-rc3-16-ga53b8394ec3c/" * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal: thermal: cpu_cooling: fix out of bounds access in time_in_idle thermal: allow u8500-thermal driver to be a module thermal: allow spear-thermal driver to be a module thermal: spear: use __maybe_unused for PM functions thermal: rcar: enable to use thermal-zone on DT thermal: of: use for_each_available_child_of_node for child iterator commit b4e4334d7bea8992bc8525763b5b4f34e89c520b Merge: e835a65 07d86ca Author: Linus Torvalds Date: Sat Feb 13 13:04:47 2016 -0800 Merge tag 'sound-fix-4.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull another sound fix from Takashi Iwai: "This contains a fix for the double-free of usb-audio MIDI device at probe failure" * tag 'sound-fix-4.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: usb-audio: avoid freeing umidi object twice commit e835a65f7ab143acf9aee6f9a98ef1c7afd2a835 Merge: 0cbb0b9 37eda9d Author: Linus Torvalds Date: Sat Feb 13 08:18:21 2016 -0800 Merge tag 'arc-4.5-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc Pull ARC fixes from Vineet Gupta: "I've been sitting on some of these fixes for a while. - Corner case of returning to delay slot from interrupt - Changing default interrupt prioiry level - Kconfig'ize support for super pages - Other minor fixes" * tag 'arc-4.5-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc: ARC: mm: Introduce explicit super page size support ARCv2: intc: Allow interruption by lowest priority interrupt ARCv2: Check for LL-SC livelock only if LLSC is enabled ARC: shrink cpuinfo by not saving full timer BCR ARCv2: clocksource: Rename GRTC -> GFRC ... ARCv2: STAR 9000950267: Handle return from intr to Delay Slot #2 commit db92ea5d4df00271b57d79c2d03dae5a5d60fcc1 Author: Michael McConville Date: Fri Feb 5 20:46:25 2016 -0500 dscc4: Undefined signed int shift My analysis in the below mail applies, although the second part is unnecessary because i isn't used in arithmetic operations here: https://marc.info/?l=openbsd-tech&m=145377854103866&w=2 Thanks for your time. Signed-off-by: Michael McConville Acked-by: Francois Romieu Signed-off-by: David S. Miller drivers/net/wan/dscc4.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 66d9cd0f5422bf35e3897b2022858dafd8c6abd2 Author: Vivien Didelot Date: Fri Feb 5 14:07:14 2016 -0500 net: dsa: mv88e6xxx: do not leave reserved VLANs BRIDGE_VLAN_FILTERING automatically adds a newly bridged port to the VLAN with the bridge's default_pvid. The mv88e6xxx driver currently reserves VLANs 4000+ for unbridged ports isolation. When a port joins a bridge, it leaves its reserved VLAN. When a port leaves a bridge, it joins again its reserved VLAN. But if the VLAN filtering is disabled, or if this hardware VLAN is already in use, the bridged port ends up with no default VLAN, and the communication with the CPU is thus broken. To fix this, make a port join its reserved VLAN once on setup, never leave it, and restore its PVID after another one was eventually used. Signed-off-by: Vivien Didelot Tested-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) commit 3c06f08b657205489d408ee7cbbcbbb1d8a6bf85 Author: Vivien Didelot Date: Fri Feb 5 14:04:39 2016 -0500 net: dsa: mv88e6xxx: fix software VLAN deletion The current bridge code calls switchdev_port_obj_del on a VLAN port even if the corresponding switchdev_port_obj_add call returned -EOPNOTSUPP. If the DSA driver doesn't return -EOPNOTSUPP for a software port VLAN in its port_vlan_del function, the VLAN is not deleted. Unbridging the port also generates a stack trace for the same reason. This can be quickly tested on a VLAN filtering enabled system with: # brctl addbr br0 # brctl addif br0 lan0 # brctl addbr br1 # brctl addif br1 lan1 # brctl delif br1 lan1 Both bridges have a default default_pvid set to 1. lan0 uses the hardware VLAN 1 while lan1 falls back to the software VLAN 1. Unbridging lan1 does not delete its software VLAN, and thus generates the following stack trace: [ 2991.681705] device lan1 left promiscuous mode [ 2991.686237] br1: port 1(lan1) entered disabled state [ 2991.725094] ------------[ cut here ]------------ [ 2991.729761] WARNING: CPU: 0 PID: 869 at net/bridge/br_vlan.c:314 __vlan_group_free+0x4c/0x50() [ 2991.738437] Modules linked in: [ 2991.741546] CPU: 0 PID: 869 Comm: ip Not tainted 4.4.0 #16 [ 2991.747039] Hardware name: Freescale Vybrid VF5xx/VF6xx (Device Tree) [ 2991.753511] Backtrace: [ 2991.756008] [<80014450>] (dump_backtrace) from [<8001469c>] (show_stack+0x20/0x24) [ 2991.763604] r6:80512644 r5:00000009 r4:00000000 r3:00000000 [ 2991.769343] [<8001467c>] (show_stack) from [<80268e44>] (dump_stack+0x24/0x28) [ 2991.776618] [<80268e20>] (dump_stack) from [<80025568>] (warn_slowpath_common+0x98/0xc4) [ 2991.784750] [<800254d0>] (warn_slowpath_common) from [<80025650>] (warn_slowpath_null+0x2c/0x34) [ 2991.793557] r8:00000000 r7:9f786a8c r6:9f76c440 r5:9f786a00 r4:9f68ac00 [ 2991.800366] [<80025624>] (warn_slowpath_null) from [<80512644>] (__vlan_group_free+0x4c/0x50) [ 2991.808946] [<805125f8>] (__vlan_group_free) from [<80514488>] (nbp_vlan_flush+0x44/0x68) [ 2991.817147] r4:9f68ac00 r3:9ec70000 [ 2991.820772] [<80514444>] (nbp_vlan_flush) from [<80506f08>] (del_nbp+0xac/0x130) [ 2991.828201] r5:9f56f800 r4:9f786a00 [ 2991.831841] [<80506e5c>] (del_nbp) from [<8050774c>] (br_del_if+0x40/0xbc) [ 2991.838724] r7:80590f68 r6:00000000 r5:9ec71c38 r4:9f76c440 [ 2991.844475] [<8050770c>] (br_del_if) from [<80503dc0>] (br_del_slave+0x1c/0x20) [ 2991.851802] r5:9ec71c38 r4:9f56f800 [ 2991.855428] [<80503da4>] (br_del_slave) from [<80484a34>] (do_setlink+0x324/0x7b8) [ 2991.863043] [<80484710>] (do_setlink) from [<80485e90>] (rtnl_newlink+0x508/0x6f4) [ 2991.870616] r10:00000000 r9:9ec71ba8 r8:00000000 r7:00000000 r6:9f6b0400 r5:9f56f800 [ 2991.878548] r4:8076278c [ 2991.881110] [<80485988>] (rtnl_newlink) from [<80484048>] (rtnetlink_rcv_msg+0x18c/0x22c) [ 2991.889315] r10:9f7d4e40 r9:00000000 r8:00000000 r7:00000000 r6:9f7d4e40 r5:9f6b0400 [ 2991.897250] r4:00000000 [ 2991.899814] [<80483ebc>] (rtnetlink_rcv_msg) from [<80497c74>] (netlink_rcv_skb+0xb0/0xcc) [ 2991.908104] r8:00000000 r7:9f7d4e40 r6:9f7d4e40 r5:80483ebc r4:9f6b0400 [ 2991.914928] [<80497bc4>] (netlink_rcv_skb) from [<80483eb4>] (rtnetlink_rcv+0x34/0x3c) [ 2991.922874] r6:9f5ea000 r5:00000028 r4:9f7d4e40 r3:80483e80 [ 2991.928622] [<80483e80>] (rtnetlink_rcv) from [<80497604>] (netlink_unicast+0x180/0x200) [ 2991.936742] r4:9f4edc00 r3:80483e80 [ 2991.940362] [<80497484>] (netlink_unicast) from [<80497a88>] (netlink_sendmsg+0x33c/0x350) [ 2991.948648] r8:00000000 r7:00000028 r6:00000000 r5:9f5ea000 r4:9ec71f4c [ 2991.955481] [<8049774c>] (netlink_sendmsg) from [<80457ff0>] (sock_sendmsg+0x24/0x34) [ 2991.963342] r10:00000000 r9:9ec71e28 r8:00000000 r7:9f1e2140 r6:00000000 r5:00000000 [ 2991.971276] r4:9ec71f4c [ 2991.973849] [<80457fcc>] (sock_sendmsg) from [<80458af0>] (___sys_sendmsg+0x1fc/0x204) [ 2991.981809] [<804588f4>] (___sys_sendmsg) from [<804598d0>] (__sys_sendmsg+0x4c/0x7c) [ 2991.989640] r10:00000000 r9:9ec70000 r8:80010824 r7:00000128 r6:7ee946c4 r5:00000000 [ 2991.997572] r4:9f1e2140 [ 2992.000128] [<80459884>] (__sys_sendmsg) from [<80459918>] (SyS_sendmsg+0x18/0x1c) [ 2992.007725] r6:00000000 r5:7ee9c7b8 r4:7ee946e0 [ 2992.012430] [<80459900>] (SyS_sendmsg) from [<80010660>] (ret_fast_syscall+0x0/0x3c) [ 2992.020182] ---[ end trace 5d4bc29f4da04280 ]--- To fix this, return -EOPNOTSUPP in _mv88e6xxx_port_vlan_del instead of -ENOENT if the hardware VLAN doesn't exist or the port is not a member. Signed-off-by: Vivien Didelot Tested-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 19a6d156a7bd080f3a855a40a4a08ab475e34b4a Author: Colin Ian King Date: Fri Feb 5 16:30:39 2016 +0000 net: cavium: liquidio: fix check for in progress flag smatch detected a suspicious looking bitop condition: drivers/net/ethernet/cavium/liquidio/lio_main.c:2529 handle_timestamp() warn: suspicious bitop condition (skb_shinfo(skb)->tx_flags | SKBTX_IN_PROGRESS is always non-zero, so the logic is definitely not correct. Use & to mask the correct bit. Signed-off-by: Colin Ian King Signed-off-by: David S. Miller drivers/net/ethernet/cavium/liquidio/lio_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 14a03cf80edf3e19953bb744938e48bc9d496d30 Author: Vitaly Kuznetsov Date: Fri Feb 5 17:29:08 2016 +0100 hv_netvsc: Restore needed_headroom request Commit c0eb454034aa ("hv_netvsc: Don't ask for additional head room in the skb") got rid of needed_headroom setting for the driver. With the change I hit the following issue trying to use ptkgen module: [ 57.522021] kernel BUG at net/core/skbuff.c:1128! [ 57.522021] invalid opcode: 0000 [#1] SMP DEBUG_PAGEALLOC ... [ 58.721068] Call Trace: [ 58.721068] [] netvsc_start_xmit+0x4c6/0x8e0 [hv_netvsc] ... [ 58.721068] [] ? pktgen_finalize_skb+0x25c/0x2a0 [pktgen] [ 58.721068] [] ? __netdev_alloc_skb+0xc0/0x100 [ 58.721068] [] pktgen_thread_worker+0x257/0x1920 [pktgen] Basically, we're calling skb_cow_head(skb, RNDIS_AND_PPI_SIZE) and crash on if (skb_shared(skb)) BUG(); We probably need to restore needed_headroom setting (but shrunk to RNDIS_AND_PPI_SIZE as we don't need more) to request the required headroom space. In theory, it should not give us performance penalty. Signed-off-by: Vitaly Kuznetsov Signed-off-by: David S. Miller drivers/net/hyperv/netvsc_drv.c | 3 +++ 1 file changed, 3 insertions(+) commit 603607de0c574e693e7cfda1aba64bf4439875b7 Merge: 5988818 120cfa5 Author: David S. Miller Date: Sat Feb 13 06:02:25 2016 -0500 Merge branch 'mvneta-fixes' Gregory CLEMENT says: ==================== mvneta fixes for SMP Following this bug report: http://thread.gmane.org/gmane.linux.ports.arm.kernel/468173 and the suggestions from Russell King, I reviewed all the code involving multi-CPU. It ended with this series of patches which should improve the stability of the driver. During my test I found another bug which is fixed by new patch (the second one of this new version of the series) The two first patches fix real bugs, the others fix potential issues in the driver. Changelog: v1 -> v2 Fix spinlock comment. Pointed by David Miller v2 -> v3 - Fix typos and mistake in the comments. Pointed by Sergei Shtylyov - Add a new patch fixing the CPU choice in mvneta_percpu_elect - Use lock in last patch to prevent remaining race condition. Pointed by Jisheng ==================== Signed-off-by: David S. Miller commit 120cfa502c7763f4a3758b9601f2c13d33083d64 Author: Gregory CLEMENT Date: Thu Feb 4 22:09:29 2016 +0100 net: mvneta: Fix race condition during stopping When stopping the port, the CPU notifier are still there whereas the mvneta_stop_dev function calls mvneta_percpu_disable() on each CPUs. It was possible to have a new CPU coming at this point which could be racy. This patch adds a flag preventing executing the code notifier for a new CPU when the port is stopping. It also uses the spinlock introduces previously. To avoid the deadlock, the lock has been moved outside the mvneta_percpu_elect function. Signed-off-by: Gregory CLEMENT Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mvneta.c | 36 +++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) commit 5888511ea053fa8d6019252ad333e8a7cb7f9475 Author: Gregory CLEMENT Date: Thu Feb 4 22:09:28 2016 +0100 net: mvneta: The mvneta_percpu_elect function should be atomic Electing a CPU must be done in an atomic way: it should be done after or before the removal/insertion of a CPU and this function is not reentrant. During the loop of mvneta_percpu_elect we associates the queues to the CPUs, if there is a topology change during this loop, then the mapping between the CPUs and the queues could be wrong. During this loop the interrupt mask is also updating for each CPUs, It should not be changed in the same time by other part of the driver. This patch adds spinlock to create the needed critical sections. Signed-off-by: Gregory CLEMENT Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mvneta.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit db488c10f2a00dbd417b158db2b551e5e262e957 Author: Gregory CLEMENT Date: Thu Feb 4 22:09:27 2016 +0100 net: mvneta: Modify the queue related fields from each cpu In the MVNETA_INTR_* registers, the queues related fields are per cpu, according to the datasheet (comment in [] are added by me): "In a multi-CPU system, bits of RX[or TX] queues for which the access by the reading[or writing] CPU is disabled are read as 0, and cannot be cleared[or written]." That means that each time we want to manipulate these bits we had to do it on each cpu and not only on the current cpu. Signed-off-by: Gregory CLEMENT Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mvneta.c | 100 ++++++++++++++++------------------ 1 file changed, 46 insertions(+), 54 deletions(-) commit cde4c0fec4e223727c24c2cd7e88ece57b48b70e Author: Gregory CLEMENT Date: Thu Feb 4 22:09:26 2016 +0100 net: mvneta: Remove unused code Since the commit 2dcf75e2793c ("net: mvneta: Associate RX queues with each CPU") all the percpu irq are used and disabled at initialization, so there is no point to disable them first. Signed-off-by: Gregory CLEMENT Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mvneta.c | 8 -------- 1 file changed, 8 deletions(-) commit 6b125d63b7f6c30d36dad3d999bbb5d44f359ebd Author: Gregory CLEMENT Date: Thu Feb 4 22:09:25 2016 +0100 net: mvneta: Use on_each_cpu when possible Instead of using a for_each_* loop in which we just call the smp_call_function_single macro, it is more simple to directly use the on_each_cpu macro. Moreover, this macro ensures that the calls will be done all at once. Suggested-by: Russell King Signed-off-by: Gregory CLEMENT Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mvneta.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) commit cad5d847a093077b499a8b0bbfe6804b9226c03e Author: Gregory CLEMENT Date: Thu Feb 4 22:09:24 2016 +0100 net: mvneta: Fix the CPU choice in mvneta_percpu_elect When passing to the management of multiple RX queue, the mvneta_percpu_elect function was broken. The use of the modulo can lead to elect the wrong cpu. For example with rxq_def=2, if the CPU 2 goes offline and then online, we ended with the third RX queue activated in the same time on CPU 0 and CPU2, which lead to a kernel crash. With this fix, we don't try to get "the closer" CPU if the default CPU is gone, now we just use CPU 0 which always be there. Thanks to this, the code becomes more readable, easier to maintain and more predicable. Cc: stable@vger.kernel.org Fixes: 2dcf75e2793c ("net: mvneta: Associate RX queues with each CPU") Signed-off-by: Gregory CLEMENT Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mvneta.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 129219e4950a3fcf9323b3bbd8b224c7aa873985 Author: Gregory CLEMENT Date: Thu Feb 4 22:09:23 2016 +0100 net: mvneta: Fix for_each_present_cpu usage This patch convert the for_each_present in on_each_cpu, instead of applying on the present cpus it will be applied only on the online cpus. This fix a bug reported on http://thread.gmane.org/gmane.linux.ports.arm.kernel/468173. Using the macro on_each_cpu (instead of a for_each_* loop) also ensures that all the calls will be done all at once. Fixes: f86428854480 ("net: mvneta: Statically assign queues to CPUs") Reported-by: Stefan Roese Suggested-by: Jisheng Zhang Suggested-by: Russell King Signed-off-by: Gregory CLEMENT Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mvneta.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 5988818008257ca42010d6b43a3e0e48afec9898 Author: Laura Abbott Date: Thu Feb 4 10:50:45 2016 -0800 vsock: Fix blocking ops call in prepare_to_wait We receoved a bug report from someone using vmware: WARNING: CPU: 3 PID: 660 at kernel/sched/core.c:7389 __might_sleep+0x7d/0x90() do not call blocking ops when !TASK_RUNNING; state=1 set at [] prepare_to_wait+0x2d/0x90 Modules linked in: vmw_vsock_vmci_transport vsock snd_seq_midi snd_seq_midi_event snd_ens1371 iosf_mbi gameport snd_rawmidi snd_ac97_codec ac97_bus snd_seq coretemp snd_seq_device snd_pcm snd_timer snd soundcore ppdev crct10dif_pclmul crc32_pclmul ghash_clmulni_intel vmw_vmci vmw_balloon i2c_piix4 shpchp parport_pc parport acpi_cpufreq nfsd auth_rpcgss nfs_acl lockd grace sunrpc btrfs xor raid6_pq 8021q garp stp llc mrp crc32c_intel serio_raw mptspi vmwgfx drm_kms_helper ttm drm scsi_transport_spi mptscsih e1000 ata_generic mptbase pata_acpi CPU: 3 PID: 660 Comm: vmtoolsd Not tainted 4.2.0-0.rc1.git3.1.fc23.x86_64 #1 Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 05/20/2014 0000000000000000 0000000049e617f3 ffff88006ac37ac8 ffffffff818641f5 0000000000000000 ffff88006ac37b20 ffff88006ac37b08 ffffffff810ab446 ffff880068009f40 ffffffff81c63bc0 0000000000000061 0000000000000000 Call Trace: [] dump_stack+0x4c/0x65 [] warn_slowpath_common+0x86/0xc0 [] warn_slowpath_fmt+0x55/0x70 [] ? debug_lockdep_rcu_enabled+0x1d/0x20 [] ? prepare_to_wait+0x2d/0x90 [] ? prepare_to_wait+0x2d/0x90 [] __might_sleep+0x7d/0x90 [] __might_fault+0x43/0xa0 [] copy_from_iter+0x87/0x2a0 [] __qp_memcpy_to_queue+0x9a/0x1b0 [vmw_vmci] [] ? qp_memcpy_to_queue+0x20/0x20 [vmw_vmci] [] qp_memcpy_to_queue_iov+0x17/0x20 [vmw_vmci] [] qp_enqueue_locked+0xa0/0x140 [vmw_vmci] [] vmci_qpair_enquev+0x4f/0xd0 [vmw_vmci] [] vmci_transport_stream_enqueue+0x1b/0x20 [vmw_vsock_vmci_transport] [] vsock_stream_sendmsg+0x2c5/0x320 [vsock] [] ? wake_atomic_t_function+0x70/0x70 [] sock_sendmsg+0x38/0x50 [] SYSC_sendto+0x104/0x190 [] ? vfs_read+0x8a/0x140 [] SyS_sendto+0xe/0x10 [] entry_SYSCALL_64_fastpath+0x12/0x76 transport->stream_enqueue may call copy_to_user so it should not be called inside a prepare_to_wait. Narrow the scope of the prepare_to_wait to avoid the bad call. This also applies to vsock_stream_recvmsg as well. Reported-by: Vinson Lee Tested-by: Vinson Lee Signed-off-by: Laura Abbott Signed-off-by: David S. Miller net/vmw_vsock/af_vsock.c | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) commit a2cb7ec001559d649b09572a7a5e4f69222eb467 Author: Chun-Hao Lin Date: Fri Feb 5 02:28:00 2016 +0800 r8169:fix system hange problem. There are typos in setting RTL8168H hardware parameters. If system install another version driver that may cuase system hang. Signed-off-by: Chunhao Lin Signed-off-by: David S. Miller drivers/net/ethernet/realtek/r8169.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 919483096bfe75dda338e98d56da91a263746a0a Author: Eric Dumazet Date: Thu Feb 4 06:23:28 2016 -0800 ipv4: fix memory leaks in ip_cmsg_send() callers Dmitry reported memory leaks of IP options allocated in ip_cmsg_send() when/if this function returns an error. Callers are responsible for the freeing. Many thanks to Dmitry for the report and diagnostic. Reported-by: Dmitry Vyukov Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/ip_sockglue.c | 2 ++ net/ipv4/ping.c | 4 +++- net/ipv4/raw.c | 4 +++- net/ipv4/udp.c | 4 +++- 4 files changed, 11 insertions(+), 3 deletions(-) commit c2bb7bc5c007b7b55087eb05409edc2014f43ca8 Author: Amitoj Kaur Chawla Date: Thu Feb 4 19:25:26 2016 +0530 net: mvpp2: Return correct error codes The return value of kzalloc on failure of allocation of memory should be -ENOMEM and not -1. Found using Coccinelle. A simplified version of the semantic patch used is: // @@ expression *e; position p,q; @@ e@q = kzalloc(...); if@p (e == NULL) { ... return - -1 + -ENOMEM ; } // This function may also return -1 after calling mpp2_prs_tcam_port_map_get. So that the function consistently returns meaningful error values on failure, the -1 is changed to -EINVAL. Signed-off-by: Amitoj Kaur Chawla Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mvpp2.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 08a965ec93ad0495802462c32b73241d658e189d Author: Amitoj Kaur Chawla Date: Thu Feb 4 19:25:13 2016 +0530 net: cavium: liquidio: Return correct error code The return value of vmalloc on failure of allocation of memory should be -ENOMEM and not -1. Found using Coccinelle. A simplified version of the semantic patch used is: // @@ expression *e; identifier l1; position p,q; @@ e@q = vmalloc(...); if@p (e == NULL) { ... goto l1; } l1: ... return -1 + -ENOMEM ; // Signed-off-by: David S. Miller drivers/net/ethernet/cavium/liquidio/lio_main.c | 2 +- drivers/net/ethernet/cavium/liquidio/octeon_droq.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 21a75f0915dde8674708b39abfcda113911c49b1 Author: Jay Vosburgh Date: Tue Feb 2 13:35:56 2016 -0800 bonding: Fix ARP monitor validation The current logic in bond_arp_rcv will accept an incoming ARP for validation if (a) the receiving slave is either "active" (which includes the currently active slave, or the current ARP slave) or, (b) there is a currently active slave, and it has received an ARP since it became active. For case (b), the receiving slave isn't the currently active slave, and is receiving the original broadcast ARP request, not an ARP reply from the target. This logic can fail if there is no currently active slave. In this situation, the ARP probe logic cycles through all slaves, assigning each in turn as the "current_arp_slave" for one arp_interval, then setting that one as "active," and sending an ARP probe from that slave. The current logic expects the ARP reply to arrive on the sending current_arp_slave, however, due to switch FDB updating delays, the reply may be directed to another slave. This can arise if the bonding slaves and switch are working, but the ARP target is not responding. When the ARP target recovers, a condition may result wherein the ARP target host replies faster than the switch can update its forwarding table, causing each ARP reply to be sent to the previous current_arp_slave. This will never pass the logic in bond_arp_rcv, as neither of the above conditions (a) or (b) are met. Some experimentation on a LAN shows ARP reply round trips in the 200 usec range, but my available switches never update their FDB in less than 4000 usec. This patch changes the logic in bond_arp_rcv to additionally accept an ARP reply for validation on any slave if there is a current ARP slave and it sent an ARP probe during the previous arp_interval. Fixes: aeea64ac717a ("bonding: don't trust arp requests unless active slave really works") Cc: Veaceslav Falico Cc: Andy Gospodarek Signed-off-by: Jay Vosburgh Signed-off-by: David S. Miller drivers/net/bonding/bond_main.c | 39 ++++++++++++++++++++++++++++----------- 1 file changed, 28 insertions(+), 11 deletions(-) commit 07d86ca93db7e5cdf4743564d98292042ec21af7 Author: Andrey Konovalov Date: Sat Feb 13 11:08:06 2016 +0300 ALSA: usb-audio: avoid freeing umidi object twice The 'umidi' object will be free'd on the error path by snd_usbmidi_free() when tearing down the rawmidi interface. So we shouldn't try to free it in snd_usbmidi_create() after having registered the rawmidi interface. Found by KASAN. Signed-off-by: Andrey Konovalov Acked-by: Clemens Ladisch Cc: Signed-off-by: Takashi Iwai sound/usb/midi.c | 1 - 1 file changed, 1 deletion(-) commit 0cbb0b92689a1c4e0ac55f6188be563a813ac808 Merge: 29f1bf3 0cf1337 Author: Linus Torvalds Date: Fri Feb 12 15:31:22 2016 -0800 Merge tag 'pci-v4.5-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci Pull PCI fixes from Bjorn Helgaas: "These are some Renesas binding updates for PCI host controllers, a Broadcom fix for a regression we added in v4.5-rc1, and a fix for an AER use-after-free problem that can cause memory corruption. Summary: AER: Flush workqueue on device remove to avoid use-after-free (Sebastian Andrzej Siewior) Broadcom iProc host bridge driver: Allow multiple devices except on PAXC (Ray Jui) Renesas R-Car host bridge driver: Add gen2 device tree support for r8a7793 (Simon Horman) Add device tree support for r8a7793 (Simon Horman)" * tag 'pci-v4.5-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: PCI: rcar: Add device tree support for r8a7793 PCI: rcar: Add gen2 device tree support for r8a7793 PCI: iproc: Allow multiple devices except on PAXC PCI/AER: Flush workqueue on device remove to avoid use-after-free commit 4dd638f8ac6b4ed020297b5d994d9346b84f2009 Merge: 388f7b1 70f340d fe0e230 5cfa1e4 f8efca2 ebea7c0 0e6f357 Author: Mark Brown Date: Fri Feb 12 23:04:41 2016 +0000 Merge remote-tracking branches 'spi/fix/atmel', 'spi/fix/bcm2835aux', 'spi/fix/fsl-espi', 'spi/fix/imx', 'spi/fix/loopback' and 'spi/fix/omap2-mcspi' into spi-linus commit 0e6f357a5deba4b81b1a65acabaa51f2cbd2e2cd Author: Tony Lindgren Date: Wed Feb 10 15:02:46 2016 -0800 spi: omap2-mcspi: Fix PM regression with deferred probe for pm_runtime_reinit Commit 5de85b9d57ab ("PM / runtime: Re-init runtime PM states at probe error and driver unbind") introduced pm_runtime_reinit() that is used to reinitialize PM runtime after -EPROBE_DEFER. This allows shutting down the device after a failed probe. However, for drivers using pm_runtime_use_autosuspend() this can cause a state where suspend callback is never called after -EPROBE_DEFER. On the following device driver probe, hardware state is different from the PM runtime state causing omap_device to produce the following error: omap_device_enable() called from invalid state 1 And with omap_device and omap hardware being picky for PM, this will block any deeper idle states in hardware. The solution is to fix the drivers to follow the PM runtime documentation: 1. For sections of code that needs the device disabled, use pm_runtime_put_sync_suspend() if pm_runtime_set_autosuspend() has been set. 2. For driver exit code, use pm_runtime_dont_use_autosuspend() before pm_runtime_put_sync() if pm_runtime_use_autosuspend() has been set. Fixes: 5de85b9d57ab ("PM / runtime: Re-init runtime PM states at probe error and driver unbind") Cc: linux-spi@vger.kernel.org Cc: Alan Stern Cc: Kevin Hilman Cc: Mark Brown Cc: Nishanth Menon Cc: Rafael J. Wysocki Cc: Ulf Hansson Cc: Tero Kristo Signed-off-by: Tony Lindgren Signed-off-by: Mark Brown drivers/spi/spi-omap2-mcspi.c | 3 +++ 1 file changed, 3 insertions(+) commit c430daf951c56e1eaf47c1825dcd5574f95ed29a Author: Stephen Boyd Date: Fri Feb 12 09:21:13 2016 -0800 Revert "clk: qcom: Specify LE device endianness" This reverts commit 329cabcecf94d8d7821e729dda284ba9dec44c87. The commit that caused us to specify LE device endianness here, 29bb45f25ff3 (regmap-mmio: Use native endianness for read/write, 2015-10-29), has been reverted in mainline so now when we specify LE it actively breaks big endian kernels because the byte swapping in regmap-mmio is incorrect. Let's revert this change because it will 1) fix the big endian kernels and 2) be redundant to specify LE because that will become the default soon. Cc: Kevin Hilman Tested-by: Kevin Hilman Cc: Mark Brown Signed-off-by: Stephen Boyd drivers/clk/qcom/gcc-apq8084.c | 1 - drivers/clk/qcom/gcc-ipq806x.c | 1 - drivers/clk/qcom/gcc-msm8660.c | 1 - drivers/clk/qcom/gcc-msm8916.c | 1 - drivers/clk/qcom/gcc-msm8960.c | 2 -- drivers/clk/qcom/gcc-msm8974.c | 1 - drivers/clk/qcom/lcc-ipq806x.c | 1 - drivers/clk/qcom/lcc-msm8960.c | 1 - drivers/clk/qcom/mmcc-apq8084.c | 1 - drivers/clk/qcom/mmcc-msm8960.c | 2 -- drivers/clk/qcom/mmcc-msm8974.c | 1 - 11 files changed, 13 deletions(-) commit a947b724069a25eae86d8dfed905374d04c3f93c Author: Stephen Boyd Date: Fri Feb 12 09:30:17 2016 -0800 ASoC: qcom: Don't specify LE device endianness This reverts commit 18560a4e3 (ASoC: qcom: Specify LE device endianness). The commit that caused us to specify LE device endianness here, 29bb45f25ff3 (regmap-mmio: Use native endianness for read/write, 2015-10-29), has been reverted in mainline so now when we specify LE it actively breaks big endian kernels because the byte swapping in regmap-mmio is incorrect. Let's revert this change because it will 1) fix the big endian kernels and 2) be redundant to specify LE because that will become the default soon. Signed-off-by: Stephen Boyd Signed-off-by: Mark Brown sound/soc/qcom/lpass-cpu.c | 1 - 1 file changed, 1 deletion(-) commit 43f3408261a2fd5054ada359efa15f0b78faf0a7 Author: Javier Martinez Canillas Date: Tue Feb 9 14:23:52 2016 -0300 rtc: s3c: Document required clocks in the DT binding The S3C Real Time Clock driver requires the clock and source clock to be defined in the device node but that requirement is not documented. Signed-off-by: Javier Martinez Canillas Signed-off-by: Rob Herring Documentation/devicetree/bindings/rtc/s3c-rtc.txt | 6 ++++++ 1 file changed, 6 insertions(+) commit 32e593b9c7be1a14d42ed288ab68a8e7b41ad873 Author: Fabio Estevam Date: Fri Feb 5 17:44:22 2016 -0200 serial: fsl-imx-uart: Fix typo in fsl,dte-mode description We should say "The uart works in DCE mode". Signed-off-by: Fabio Estevam Signed-off-by: Rob Herring Documentation/devicetree/bindings/serial/fsl-imx-uart.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4aff7b854611d91c5fefb1553eb4c328123095ae Author: Will Deacon Date: Wed Feb 3 18:00:58 2016 +0000 dt-bindings: arm, gic-v3: require that reserved cells are always 0 The arm,gic-v3 binding was written with good intentions and doesn't enforce interrupt-cells to be 3, therefore making it easy to extend the irq description in future if necessary: > Cells 4 and beyond are reserved for future use. Unfortunately, this sentence is immediately followed up with: > When the 1st cell has a value of 0 or 1, cells 4 and beyond act as > padding, and may be ignored. It is recommended that padding cells > have a value of 0. Consequently, any extensions to the PPI or SPI interrupt specifiers must be able to work with random crap from legacy DTs, effectively necessitating a new interrupt type in the first cell. Sigh. This patch fixes the text so that additional, reserved cells are required to be zero. This looks like a reasonable thing to require and is already satisifed by the .dts files in-tree. Cc: Mark Rutland Cc: Marc Zyngier Signed-off-by: Will Deacon Acked-by: Marc Zyngier Acked-by: Mark Rutland Signed-off-by: Rob Herring .../devicetree/bindings/interrupt-controller/arm,gic-v3.txt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 29f1bf34ed38222372365657b9498af2e3f8c208 Merge: 5952cc7 1ecb4ae Author: Linus Torvalds Date: Fri Feb 12 13:12:27 2016 -0800 Merge branch 'akpm'(patches from Andrew) Merge fixes from Andrew Morton: "10 fixes" The lockdep hlist conversion is in the locking tree too, waiting for the next merge window. Andrew thought it should go in now. I'll take it, since it fixes a real problem and looks trivially correct (famous last words). * emailed patches from Andrew Morton : arch/x86/Kconfig: CONFIG_X86_UV should depend on CONFIG_EFI mm: fix pfn_t vs highmem kernel/locking/lockdep.c: convert hash tables to hlists mm,thp: fix spellos in describing __HAVE_ARCH_FLUSH_PMD_TLB_RANGE mm,thp: khugepaged: call pte flush at the time of collapse mm/backing-dev.c: fix error path in wb_init() mm, dax: check for pmd_none() after split_huge_pmd() vsprintf: kptr_restrict is okay in IRQ when 2 mm: fix filemap.c kernel doc warning ubsan: cosmetic fix to Kconfig text commit 75c1657e1d50730dc0130a67977f7831a4e241f4 Author: Leon Romanovsky Date: Thu Feb 11 21:09:57 2016 +0200 IB/mlx5: Fix RC transport send queue overhead computation Fix the RC QPs send queue overhead computation to take into account two additional segments in the WQE which are needed for registration operations. The ATOMIC and UMR segments can't coexist together, so chose maximum out of them. The commit 9e65dc371b5c ("IB/mlx5: Fix RC transport send queue overhead computation") was intended to update RC transport as commit messages states, but added the code to UC transport. Fixes: 9e65dc371b5c ("IB/mlx5: Fix RC transport send queue overhead computation") Signed-off-by: Kamal Heib Signed-off-by: Leon Romanovsky Reviewed-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/qp.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 08bc327629cbd63bb2f66677e4b33b643695097c Author: Alex Estrin Date: Thu Feb 11 16:30:51 2016 -0500 IB/ipoib: fix for rare multicast join race condition A narrow window for race condition still exist between multicast join thread and *dev_flush workers. A kernel crash caused by prolong erratic link state changes was observed (most likely a faulty cabling): [167275.656270] BUG: unable to handle kernel NULL pointer dereference at 0000000000000020 [167275.665973] IP: [] ipoib_mcast_join+0xae/0x1d0 [ib_ipoib] [167275.674443] PGD 0 [167275.677373] Oops: 0000 [#1] SMP ... [167275.977530] Call Trace: [167275.982225] [] ? ipoib_mcast_free+0x200/0x200 [ib_ipoib] [167275.992024] [] ipoib_mcast_join_task+0x2a7/0x490 [ib_ipoib] [167276.002149] [] process_one_work+0x17b/0x470 [167276.010754] [] worker_thread+0x11b/0x400 [167276.019088] [] ? rescuer_thread+0x400/0x400 [167276.027737] [] kthread+0xcf/0xe0 Here was a hit spot: ipoib_mcast_join() { .............. rec.qkey = priv->broadcast->mcmember.qkey; ^^^^^^^ ..... } Proposed patch should prevent multicast join task to continue if link state change is detected. Signed-off-by: Alex Estrin Changes from v4: - as suggested by Doug Ledford, optimized spinlock usage, i.e. ipoib_mcast_join() is called with lock held. Changes from v3: - sync with priv->lock before flag check. Chages from v2: - Move check for OPER_UP flag state to mcast_join() to ensure no event worker is in progress. - minor style fixes. Changes from v1: - No need to lock again if error detected. Signed-off-by: Doug Ledford drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) commit bca71ba0343d28d953d74149d9161ab65a520dd6 Author: Masahiro Yamada Date: Tue Jan 26 18:09:21 2016 +0900 i2c: uniphier: fix typos in error messages Signed-off-by: Masahiro Yamada Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-uniphier-f.c | 2 +- drivers/i2c/busses/i2c-uniphier.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit e6244deed843bc001697f37e5beb1c0daf4f46a4 Author: Tony Lindgren Date: Wed Feb 10 15:02:45 2016 -0800 i2c: omap: Fix PM regression with deferred probe for pm_runtime_reinit Commit 5de85b9d57ab ("PM / runtime: Re-init runtime PM states at probe error and driver unbind") introduced pm_runtime_reinit() that is used to reinitialize PM runtime after -EPROBE_DEFER. This allows shutting down the device after a failed probe. However, for drivers using pm_runtime_use_autosuspend() this can cause a state where suspend callback is never called after -EPROBE_DEFER. On the following device driver probe, hardware state is different from the PM runtime state causing omap_device to produce the following error: omap_device_enable() called from invalid state 1 And with omap_device and omap hardware being picky for PM, this will block any deeper idle states in hardware. The solution is to fix the drivers to follow the PM runtime documentation: 1. For sections of code that needs the device disabled, use pm_runtime_put_sync_suspend() if pm_runtime_set_autosuspend() has been set. 2. For driver exit code, use pm_runtime_dont_use_autosuspend() before pm_runtime_put_sync() if pm_runtime_use_autosuspend() has been set. Fixes: 5de85b9d57ab ("PM / runtime: Re-init runtime PM states at probe error and driver unbind") Signed-off-by: Tony Lindgren Acked-by: Ulf Hansson Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-omap.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 38714fbd299f992080a11b977f609136ec8530c2 Author: Han Xu Date: Fri Feb 12 05:13:25 2016 +0000 MAINTAINERS: update Han's email Update my email address from freescale to nxp. Signed-off-by: Han Xu Signed-off-by: Brian Norris MAINTAINERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5952cc779eba58e9c3e0280cb646683e6de4b799 Merge: 0df34ad a5ebb87d Author: Linus Torvalds Date: Fri Feb 12 09:48:55 2016 -0800 Merge tag 'mmc-v4.5-rc2' of git://git.linaro.org/people/ulf.hansson/mmc Pull MMC fixes from Ulf Hansson: "Here are some mmc fixes intended for v4.5 rc4. MMC core: - Fix an sysfs ABI regression - Return an error in a specific error path dealing with mmc ioctls MMC host: - sdhci-pci|acpi: Fix card detect race for Intel BXT/APL - sh_mmcif: Correct TX DMA channel allocation - mmc_spi: Fix error handling for dma mapping errors - sdhci-of-at91: Fix an unbalance issue for the runtime PM usage count - pxamci: Fix the device-tree probe deferral path - pxamci: Fix read-only GPIO polarity" * tag 'mmc-v4.5-rc2' of git://git.linaro.org/people/ulf.hansson/mmc: Revert "mmc: block: don't use parameter prefix if built as module" mmc: sdhci-acpi: Fix card detect race for Intel BXT/APL mmc: sdhci-pci: Fix card detect race for Intel BXT/APL mmc: sdhci: Allow override of get_cd() called from sdhci_request() mmc: sdhci: Allow override of mmc host operations mmc: sh_mmcif: Correct TX DMA channel allocation mmc: block: return error on failed mmc_blk_get() mmc: pxamci: fix the device-tree probe deferral path mmc: mmc_spi: add checks for dma mapping error mmc: sdhci-of-at91: fix pm runtime unbalanced issue in error path mmc: pxamci: fix again read-only gpio detection polarity commit 0df34ad9b703222ead899465b054070758b317f1 Merge: 14379cd 86c2ee1 Author: Linus Torvalds Date: Fri Feb 12 09:42:05 2016 -0800 Merge tag 'sound-4.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "In this rc, we've got more volume than previous rc, unsurprisingly; the majority of updates in ASoC are about Intel drivers, and another major changes are the continued plumbing of ALSA timer bugs revealed by syzkaller fuzzer. Hopefully both settle down now. Other than that, HD-audio received a couple of code fixes as well as the usual quirks, and various small fixes are found for FireWire devices, ASoC codecs and drivers" * tag 'sound-4.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (50 commits) ASoC: arizona: fref must be limited in pseudo-fractional mode ASoC: sigmadsp: Fix missleading return value ALSA: timer: Fix race at concurrent reads ALSA: firewire-digi00x: Drop bogus const type qualifier on dot_scrt() ALSA: hda - Fix bad dereference of jack object ALSA: timer: Fix race between stop and interrupt ALSA: timer: Fix wrong instance passed to slave callbacks ASoC: Intel: Add module tags for common match module ASoC: Intel: Load the atom DPCM driver only ASoC: Intel: Create independent acpi match module ASoC: Intel: Revert "ASoC: Intel: fix ACPI probe regression with Atom DPCM driver" ALSA: dummy: Implement timer backend switching more safely ALSA: hda - Fix speaker output from VAIO AiO machines Revert "ALSA: hda - Fix noise on Gigabyte Z170X mobo" ALSA: firewire-tascam: remove needless member for control and status message ALSA: firewire-tascam: remove a flag for controller ALSA: firewire-tascam: add support for FW-1804 ALSA: firewire-tascam: fix NULL pointer dereference when model identification fails ALSA: hda - Fix static checker warning in patch_hdmi.c ASoC: Intel: Skylake: Remove autosuspend delay ... commit 14379cdc763dee2b92276ee15e9c1644df1f017a Merge: 4c05121 b82fe6d Author: Linus Torvalds Date: Fri Feb 12 09:39:34 2016 -0800 Merge tag 'fbdev-fixes-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux Pull fbdev fixes from Tomi Valkeinen: - fix omap2plus_defconfig to enable omapfb as it was in v4.4 - ocfb: fix timings for margins - s6e8ax0, da8xx-fb: fix compile warnings - mmp: fix build failure caused by bad printk parameters - imxfb: fix clock issue which kept the display off * tag 'fbdev-fixes-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: video: fbdev: imxfb: Provide a reset mechanism fbdev: mmp: print IRQ resource using %pR format string fbdev: da8xx-fb: remove incorrect type cast fbdev: s6e8ax0: avoid unused function warnings ocfb: fix tgdel and tvdel timing parameters ARM: omap2plus_defconfig: update display configs commit 4c05121e253beaf9f03cb31480f4aa676835404b Merge: c747f97 12ffbbe Author: Linus Torvalds Date: Fri Feb 12 09:32:37 2016 -0800 Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi Pull SCSI fixes from James Bottomley: "A set of seven fixes: Two regressions in the new hisi_sas arm driver, a blacklist entry for the marvell console which was causing a reset cascade without it, a race fix in the WRITE_SAME/DISCARD routines, a retry fix for the rdac driver, without which, it would prematurely return EIO and a couple of fixes for the hyper-v storvsc driver" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: block/sd: Return -EREMOTEIO when WRITE SAME and DISCARD are disabled SCSI: Add Marvell Console to VPD blacklist scsi_dh_rdac: always retry MODE SELECT on command lock violation storvsc: Use the specified target ID in device lookup storvsc: Install the storvsc specific timeout handler for FC devices hisi_sas: fix v1 hw check for slot error hisi_sas: add dependency for HAS_IOMEM commit c747f97c36c2fcc63768684eea89654855c83ecd Merge: df8c272 c92a428 Author: Linus Torvalds Date: Fri Feb 12 09:27:31 2016 -0800 Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux Pull drm amd fixes from Dave Airlie: "Been pretty quiet. This is an amdgpu fixes pull from AMD, a bunch of powerplay stability fixes, race fix, hibernate fix, and a possible circular locking fix" * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (21 commits) drm/amdgpu: fix issue with overlapping userptrs drm/radeon: hold reference to fences in radeon_sa_bo_new drm/amdgpu: remove unnecessary forward declaration drm/amdgpu: hold reference to fences in amdgpu_sa_bo_new (v2) drm/amdgpu: fix s4 resume drm/amdgpu/cz: plumb pg flags through to powerplay drm/amdgpu/tonga: plumb pg flags through to powerplay drma/dmgpu: move cg and pg flags into shared headers drm/amdgpu: remove unused cg defines drm/amdgpu: add a cgs interface to fetch cg and pg flags drm/amd/powerplay/tonga: disable vce pg drm/amd/powerplay/tonga: disable uvd pg drm/amd/powerplay/cz: disable vce pg drm/amd/powerplay/cz: disable uvd pg drm/amdgpu: be consistent with uvd cg flags drm/amdgpu: clean up vce pg flags for cz/st drm/amdgpu: handle vce pg flags properly drm/amdgpu: handle uvd pg flags properly drm/amdgpu/dpm/ci: switch over to the common pcie caps interface drm/amdgpu/cik: don't mess with aspm if gpu is root bus ... commit df8c2723a1eb568d42ebca806bec17377ae7e84c Merge: 27c9d77 613317b Author: Linus Torvalds Date: Fri Feb 12 09:24:48 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security Pull crypto fix from James Morris. * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: EVM: Use crypto_memneq() for digest comparisons commit 27c9d772e50731dfd682b4ea9459eccec2071c49 Merge: dfc8528 bc4ef75 Author: Linus Torvalds Date: Fri Feb 12 09:21:28 2016 -0800 Merge branch 'for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs Pull btrfs fixes from Chris Mason: "This has a few fixes from Filipe, along with a readdir fix from Dave that we've been testing for some time" * 'for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: btrfs: properly set the termination value of ctx->pos in readdir Btrfs: fix hang on extent buffer lock caused by the inode_paths ioctl Btrfs: remove no longer used function extent_read_full_page_nolock() Btrfs: fix page reading in extent_same ioctl leading to csum errors Btrfs: fix invalid page accesses in extent_same (dedup) ioctl commit dfc852864d747289d7ed393aab337637eda007be Merge: c05235d 8e0bd49 Author: Linus Torvalds Date: Fri Feb 12 09:17:03 2016 -0800 Merge tag 'xfs-fixes-for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs Pull xfs fix from Dve Chinner: "This contains a fix for an endian conversion issue in new CRC validation in log recovery that was discovered on a ppc64 platform" * tag 'xfs-fixes-for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs: xfs: fix endianness error when checking log block crc on big endian platforms commit cf26f1137333251f3515dea31f95775b99df0fd5 Author: Tony Lindgren Date: Fri Feb 12 08:56:52 2016 -0800 ARM: OMAP2+: Fix omap_device for module reload on PM runtime forbid If a driver PM runtime is disabled via sysfs, and the module is unloaded, PM runtime can't do anything to disable the device. Let's let the interconnect disable the device on BUS_NOTIFY_UNBOUND_DRIVER. Otherwise omap_device will produce and error on the following module reload. This can be easily tested with something like: # modprobe omap_hsmmc # echo on > /sys/devices/platform/68000000.ocp/4809c000.mmc/power/control # rmmod omap_hsmmc # modprobe omap_hsmmc Cc: Alan Stern Cc: Nishanth Menon Cc: Rafael J. Wysocki Cc: Tero Kristo Reported-by: Ulf Hansson Acked-by: Kevin Hilman Acked-by: Ulf Hansson Signed-off-by: Tony Lindgren arch/arm/mach-omap2/omap_device.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 08c78e9d61a857c9077240e7ddb67550c6f96d06 Author: Tony Lindgren Date: Fri Feb 12 08:56:52 2016 -0800 ARM: OMAP2+: Improve omap_device error for driver writers Drivers using pm_runtime_use_autosuspend() may not get disabled after -EPROBE_DEFER. On the following device driver probe, hardware state is different from the PM runtime state causing omap_device to produce the following error: omap_device_enable() called from invalid state 1 And with omap_device and omap hardware being picky for PM, this will block any deeper idle states in hardware. Let's add a proper error message so driver writers can easily fix their drivers for PM. In general, the solution is to fix the drivers to follow the PM runtime documentation: 1. For sections of code that needs the device disabled, use pm_runtime_put_sync_suspend() if pm_runtime_set_autosuspend() has been set. 2. For driver exit code, use pm_runtime_dont_use_autosuspend() before pm_runtime_put_sync() if pm_runtime_use_autosuspend() has been set. Let's not return with 0 from _od_runtime_resume() as that will eventually lead into new drivers with broken PM runtime that will block deeper idle states on omaps. Cc: Alan Stern Cc: Nishanth Menon Cc: Rafael J. Wysocki Cc: Tero Kristo Acked-by: Kevin Hilman Acked-by: Ulf Hansson Signed-off-by: Tony Lindgren arch/arm/mach-omap2/omap_device.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit a80a0eb70c358f8c7dda4bb62b2278dc6285217b Author: Yang Shi Date: Thu Feb 11 13:53:10 2016 -0800 arm64: make irq_stack_ptr more robust Switching between stacks is only valid if we are tracing ourselves while on the irq_stack, so it is only valid when in current and non-preemptible context, otherwise is is just zeroed off. Fixes: 132cd887b5c5 ("arm64: Modify stack trace and dump for use with irq_stack") Acked-by: James Morse Tested-by: James Morse Signed-off-by: Yang Shi Signed-off-by: Will Deacon arch/arm64/kernel/stacktrace.c | 13 ++++++------- arch/arm64/kernel/traps.c | 11 ++++++++++- 2 files changed, 16 insertions(+), 8 deletions(-) commit 2d99b55d378c996b9692a0c93dd25f4ed5d58934 Author: Hannes Reinecke Date: Fri Feb 12 09:39:15 2016 +0100 bio: return EINTR if copying to user space got interrupted Commit 35dc248383bbab0a7203fca4d722875bc81ef091 introduced a check for current->mm to see if we have a user space context and only copies data if we do. Now if an IO gets interrupted by a signal data isn't copied into user space any more (as we don't have a user space context) but user space isn't notified about it. This patch modifies the behaviour to return -EINTR from bio_uncopy_user() to notify userland that a signal has interrupted the syscall, otherwise it could lead to a situation where the caller may get a buffer with no data returned. This can be reproduced by issuing SG_IO ioctl()s in one thread while constantly sending signals to it. Fixes: 35dc248 [SCSI] sg: Fix user memory corruption when SG_IO is interrupted by a signal Signed-off-by: Johannes Thumshirn Signed-off-by: Hannes Reinecke Cc: stable@vger.kernel.org # v.3.11+ Signed-off-by: Jens Axboe block/bio.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit f8e68a7c9af5f8047f7f8295874bedf306063709 Author: Keith Busch Date: Thu Feb 11 13:05:47 2016 -0700 NVMe: Rate limit nvme IO warnings We don't need to spam the kernel logs with thousands of IO cancelling messages. We can infer all IO's are being cancelled with fewer, or even none at all. This patch rate limits the message and uses the debug log level as it is mainly used for testing purposes. Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ff23a2a15a2117245b4599c1352343c8b8fb4c43 Author: Keith Busch Date: Thu Feb 11 13:05:43 2016 -0700 NVMe: Poll device while still active during remove A device failure or link down wouldn't have been detected during namespace removal. This patch keeps the device in the list for polling so that the thread may see such failure and initiate a reset. The device is removed from the list after disable, so we can safely flush the reset work as it can't be requeued when disable completes. Signed-off-by: Keith Busch Reviewed-by: Christoph Hellwig Reviewed-by: Johannes Thumshirn Reviewed-by: Sagi Grimberg Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit ae1fba20015bca7401db2422fe18c9c049184163 Author: Keith Busch Date: Thu Feb 11 13:05:42 2016 -0700 NVMe: Requeue requests on suspended queues It's possible a request may get to the driver after the nvme queue was disabled. This has the request requeue if that happens. Note the request is still "started" by the driver, but requeuing will clear the start state for timeout handling. Signed-off-by: Keith Busch Reviewed-by: Christoph Hellwig Reviewed-by: Johannes Thumshirn Reviewed-by: Sagi Grimberg Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 5 +++++ 1 file changed, 5 insertions(+) commit fb724ed5c6175a2407b256d506c9e703c6bb62d4 Author: Emil Goode Date: Wed Feb 10 02:22:16 2016 +0100 wlcore: Fix regression in wlcore_set_partition() The commit 3719c17e1816 ("wlcore/wl18xx: fw logger over sdio") introduced a regression causing the wlcore to time out and go into recovery. Reverting the changes regarding write of the last partition size brings the module back to it's functional state. Fixes: 3719c17e1816 ("wlcore/wl18xx: fw logger over sdio") Reported-by: Ross Green Signed-off-by: Emil Goode [kvalo@codeaurora.org: improved commit log] Signed-off-by: Kalle Valo drivers/net/wireless/ti/wlcore/io.c | 8 ++++---- drivers/net/wireless/ti/wlcore/io.h | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) commit 86c2ee16704522a546c0ee1e8238096e3c391468 Merge: 397da2d f11aec0 Author: Takashi Iwai Date: Fri Feb 12 09:48:51 2016 +0100 Merge tag 'asoc-fix-v4.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Fixes for v4.5 A rather large batch of fixes here, almost all in the Intel driver. The changes that got merged in this merge window for Skylake were rather large and as well as issues that you'd expect in a large block of new code there were some problems created for older processors which needed fixing up. Things are largely settling down now hopefully. commit 613317bd212c585c20796c10afe5daaa95d4b0a1 Author: Ryan Ware Date: Thu Feb 11 15:58:44 2016 -0800 EVM: Use crypto_memneq() for digest comparisons This patch fixes vulnerability CVE-2016-2085. The problem exists because the vm_verify_hmac() function includes a use of memcmp(). Unfortunately, this allows timing side channel attacks; specifically a MAC forgery complexity drop from 2^128 to 2^12. This patch changes the memcmp() to the cryptographically safe crypto_memneq(). Reported-by: Xiaofei Rex Guo Signed-off-by: Ryan Ware Cc: stable@vger.kernel.org Signed-off-by: Mimi Zohar Signed-off-by: James Morris security/integrity/evm/evm_main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 37eda9df5bd8444263418495632ea6ec750f03f9 Author: Vineet Gupta Date: Wed Feb 10 06:52:07 2016 +0530 ARC: mm: Introduce explicit super page size support MMUv4 supports 2 concurrent page sizes: Normal and Super [4K to 16M] So far Linux supported a single super page size for a given Normal page, depending on the software page walking address split. e.g. we had 11:8:13 address split for 8K page, which meant super page was 2 ^(8+13) = 2M (given that THP size has to be PMD_SHIFT) Now we turn this around, by allowing multiple Super Pages in Kconfig (currently 2M and 16M only) and forcing page walker address split to PGDIR_SHIFT and PAGE_SHIFT For configs without Super page, things are same as before and PGDIR_SHIFT can be hacked to get non default address split The motivation for this change is a customer who needs 16M super page and a 8K Normal page combo. Signed-off-by: Vineet Gupta arch/arc/Kconfig | 19 ++++++++++++++++++ arch/arc/include/asm/pgtable.h | 45 ++++++++++++++++++++++++------------------ 2 files changed, 45 insertions(+), 19 deletions(-) commit 56263b4ceba90b1db77a6b31e22726f101bca807 Author: Eryu Guan Date: Fri Feb 12 01:23:00 2016 -0500 ext4: remove unused parameter "newblock" in convert_initialized_extent() The "newblock" parameter is not used in convert_initialized_extent(), remove it. Signed-off-by: Eryu Guan Signed-off-by: Theodore Ts'o fs/ext4/extents.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bcff24887d00bce102e0857d7b0a8c44a40f53d1 Author: Eryu Guan Date: Fri Feb 12 01:20:43 2016 -0500 ext4: don't read blocks from disk after extents being swapped I notice ext4/307 fails occasionally on ppc64 host, reporting md5 checksum mismatch after moving data from original file to donor file. The reason is that move_extent_per_page() calls __block_write_begin() and block_commit_write() to write saved data from original inode blocks to donor inode blocks, but __block_write_begin() not only maps buffer heads but also reads block content from disk if the size is not block size aligned. At this time the physical block number in mapped buffer head is pointing to the donor file not the original file, and that results in reading wrong data to page, which get written to disk in following block_commit_write call. This also can be reproduced by the following script on 1k block size ext4 on x86_64 host: mnt=/mnt/ext4 donorfile=$mnt/donor testfile=$mnt/testfile e4compact=~/xfstests/src/e4compact rm -f $donorfile $testfile # reserve space for donor file, written by 0xaa and sync to disk to # avoid EBUSY on EXT4_IOC_MOVE_EXT xfs_io -fc "pwrite -S 0xaa 0 1m" -c "fsync" $donorfile # create test file written by 0xbb xfs_io -fc "pwrite -S 0xbb 0 1023" -c "fsync" $testfile # compute initial md5sum md5sum $testfile | tee md5sum.txt # drop cache, force e4compact to read data from disk echo 3 > /proc/sys/vm/drop_caches # test defrag echo "$testfile" | $e4compact -i -v -f $donorfile # check md5sum md5sum -c md5sum.txt Fix it by creating & mapping buffer heads only but not reading blocks from disk, because all the data in page is guaranteed to be up-to-date in mext_page_mkuptodate(). Cc: stable@vger.kernel.org Signed-off-by: Eryu Guan Signed-off-by: Theodore Ts'o fs/ext4/move_extent.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) commit 46901760b46064964b41015d00c140c83aa05bcf Author: Insu Yun Date: Fri Feb 12 01:15:59 2016 -0500 ext4: fix potential integer overflow Since sizeof(ext_new_group_data) > sizeof(ext_new_flex_group_data), integer overflow could be happened. Therefore, need to fix integer overflow sanitization. Cc: stable@vger.kernel.org Signed-off-by: Insu Yun Signed-off-by: Theodore Ts'o fs/ext4/resize.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2a8d9cdcfee67469dc2a993f59a47467a5eb4adf Merge: 90a88d6 fb2d65d Author: James Bottomley Date: Thu Feb 11 21:50:48 2016 -0800 Merge remote-tracking branch 'mkp-scsi/4.5/scsi-fixes' into fixes commit 90a88d6ef88edcfc4f644dddc7eef4ea41bccf8b Author: James Bottomley Date: Wed Feb 10 08:03:26 2016 -0800 scsi: fix soft lockup in scsi_remove_target() on module removal This softlockup is currently happening: [ 444.088002] NMI watchdog: BUG: soft lockup - CPU#1 stuck for 22s! [kworker/1:1:29] [ 444.088002] Modules linked in: lpfc(-) qla2x00tgt(O) qla2xxx_scst(O) scst_vdisk(O) scsi_transport_fc libcrc32c scst(O) dlm configfs nfsd lockd grace nfs_acl auth_rpcgss sunrpc ed d snd_pcm_oss snd_mixer_oss snd_seq snd_seq_device dm_mod iTCO_wdt snd_hda_codec_realtek snd_hda_codec_generic gpio_ich iTCO_vendor_support ppdev snd_hda_intel snd_hda_codec snd_hda _core snd_hwdep tg3 snd_pcm snd_timer libphy lpc_ich parport_pc ptp acpi_cpufreq snd pps_core fjes parport i2c_i801 ehci_pci tpm_tis tpm sr_mod cdrom soundcore floppy hwmon sg 8250_ fintek pcspkr i915 drm_kms_helper uhci_hcd ehci_hcd drm fb_sys_fops sysimgblt sysfillrect syscopyarea i2c_algo_bit usbcore button video usb_common fan ata_generic ata_piix libata th ermal [ 444.088002] CPU: 1 PID: 29 Comm: kworker/1:1 Tainted: G O 4.4.0-rc5-2.g1e923a3-default #1 [ 444.088002] Hardware name: FUJITSU SIEMENS ESPRIMO E /D2164-A1, BIOS 5.00 R1.10.2164.A1 05/08/2006 [ 444.088002] Workqueue: fc_wq_4 fc_rport_final_delete [scsi_transport_fc] [ 444.088002] task: f6266ec0 ti: f6268000 task.ti: f6268000 [ 444.088002] EIP: 0060:[] EFLAGS: 00000286 CPU: 1 [ 444.088002] EIP is at _raw_spin_unlock_irqrestore+0x14/0x20 [ 444.088002] EAX: 00000286 EBX: f20d3800 ECX: 00000002 EDX: 00000286 [ 444.088002] ESI: f50ba800 EDI: f2146848 EBP: f6269ec8 ESP: f6269ec8 [ 444.088002] DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068 [ 444.088002] CR0: 8005003b CR2: 08f96600 CR3: 363ae000 CR4: 000006d0 [ 444.088002] Stack: [ 444.088002] f6269eec c066b0f7 00000286 f2146848 f50ba808 f50ba800 f50ba800 f2146a90 [ 444.088002] f2146848 f6269f08 f8f0a4ed f3141000 f2146800 f2146a90 f619fa00 00000040 [ 444.088002] f6269f40 c026cb25 00000001 166c6392 00000061 f6757140 f6136340 00000004 [ 444.088002] Call Trace: [ 444.088002] [] scsi_remove_target+0x167/0x1c0 [ 444.088002] [] fc_rport_final_delete+0x9d/0x1e0 [scsi_transport_fc] [ 444.088002] [] process_one_work+0x155/0x3e0 [ 444.088002] [] worker_thread+0x37/0x490 [ 444.088002] [] kthread+0x9b/0xb0 [ 444.088002] [] ret_from_kernel_thread+0x21/0x40 What appears to be happening is that something has pinned the target so it can't go into STARGET_DEL via final release and the loop in scsi_remove_target spins endlessly until that happens. The fix for this soft lockup is to not keep looping over a device that we've called remove on but which hasn't gone into DEL state. This patch will retain a simplistic memory of the last target and not keep looping over it. Reported-by: Sebastian Herbszt Tested-by: Sebastian Herbszt Fixes: 40998193560dab6c3ce8d25f4fa58a23e252ef38 Cc: stable@vger.kernel.org Signed-off-by: James Bottomley drivers/scsi/scsi_sysfs.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 802cf1f9f504e09f7118c9acc69ab3e825449e52 Author: Huaitong Han Date: Fri Feb 12 00:17:16 2016 -0500 ext4: add a line break for proc mb_groups display This patch adds a line break for proc mb_groups display. Signed-off-by: Huaitong Han Signed-off-by: Theodore Ts'o Reviewed-by: Andreas Dilger fs/ext4/mballoc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fdde368e7c2963e319f919fa57908537060847fc Author: Anton Protopopov Date: Thu Feb 11 23:57:21 2016 -0500 ext4: ioctl: fix erroneous return value The ext4_ioctl_setflags() function which is used in the ioctls EXT4_IOC_SETFLAGS and EXT4_IOC_FSSETXATTR may return the positive value EPERM instead of -EPERM in case of error. This bug was introduced by a recent commit 9b7365fc. The following program can be used to illustrate the wrong behavior: #include #include #include #include #include #define FS_IOC_GETFLAGS _IOR('f', 1, long) #define FS_IOC_SETFLAGS _IOW('f', 2, long) #define FS_IMMUTABLE_FL 0x00000010 int main(void) { int fd; long flags; fd = open("file", O_RDWR|O_CREAT, 0600); if (fd < 0) err(1, "open"); if (ioctl(fd, FS_IOC_GETFLAGS, &flags) < 0) err(1, "ioctl: FS_IOC_GETFLAGS"); flags |= FS_IMMUTABLE_FL; if (ioctl(fd, FS_IOC_SETFLAGS, &flags) < 0) err(1, "ioctl: FS_IOC_SETFLAGS"); warnx("ioctl returned no error"); return 0; } Running it gives the following result: $ strace -e ioctl ./test ioctl(3, FS_IOC_GETFLAGS, 0x7ffdbd8bfd38) = 0 ioctl(3, FS_IOC_SETFLAGS, 0x7ffdbd8bfd38) = 1 test: ioctl returned no error +++ exited with 0 +++ Running the program on a kernel with the bug fixed gives the proper result: $ strace -e ioctl ./test ioctl(3, FS_IOC_GETFLAGS, 0x7ffdd2768258) = 0 ioctl(3, FS_IOC_SETFLAGS, 0x7ffdd2768258) = -1 EPERM (Operation not permitted) test: ioctl: FS_IOC_SETFLAGS: Operation not permitted +++ exited with 1 +++ Signed-off-by: Anton Protopopov Signed-off-by: Theodore Ts'o fs/ext4/ioctl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 05145bd799e498ce4e3b5145894174ee881f02b0 Author: Jan Kara Date: Thu Feb 11 23:15:12 2016 -0500 ext4: fix scheduling in atomic on group checksum failure When block group checksum is wrong, we call ext4_error() while holding group spinlock from ext4_init_block_bitmap() or ext4_init_inode_bitmap() which results in scheduling while in atomic. Fix the issue by calling ext4_error() later after dropping the spinlock. CC: stable@vger.kernel.org Reported-by: Dmitry Vyukov Signed-off-by: Jan Kara Signed-off-by: Theodore Ts'o Reviewed-by: Darrick J. Wong fs/ext4/balloc.c | 7 ++++--- fs/ext4/ialloc.c | 6 ++++-- 2 files changed, 8 insertions(+), 5 deletions(-) commit 6b44d1e9bf3b850b433694d654709b4cbc9bc00e Merge: 89140fd 58a66db Author: Greg Kroah-Hartman Date: Thu Feb 11 20:10:58 2016 -0800 Merge tag 'phy-for-4.5-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/kishon/linux-phy into usb-linus Kishon writes: phy: for 4.5-rc *) Fix error handling code in phy core [phy_power_on()] *) phy-twl4030-usb fixes for unloading the module *) Restrict phy-hi6220-usb to HiSilicon arm64 Signed-off-by: Kishon Vijay Abraham I commit 1ecb4ae5f0aaf48b538b9e90b7b360215a2cf9ed Author: Andrew Morton Date: Thu Feb 11 16:13:20 2016 -0800 arch/x86/Kconfig: CONFIG_X86_UV should depend on CONFIG_EFI arch/x86/built-in.o: In function `uv_bios_call': (.text+0xeba00): undefined reference to `efi_call' Reported-by: kbuild test robot Suggested-by: "H. Peter Anvin" Cc: Ingo Molnar Reviewed-by: Matt Fleming Acked-by: Alex Thorlton Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/x86/Kconfig | 1 + 1 file changed, 1 insertion(+) commit db78c22230d0bcc8b27b81f05b39f104f08232c5 Author: Dan Williams Date: Thu Feb 11 16:13:17 2016 -0800 mm: fix pfn_t vs highmem The pfn_t type uses an unsigned long to store a pfn + flags value. On a 64-bit platform the upper 12 bits of an unsigned long are never used for storing the value of a pfn. However, this is not true on highmem platforms, all 32-bits of a pfn value are used to address a 44-bit physical address space. A pfn_t needs to store a 64-bit value. Link: https://bugzilla.kernel.org/show_bug.cgi?id=112211 Fixes: 01c8f1c44b83 ("mm, dax, gpu: convert vm_insert_mixed to pfn_t") Signed-off-by: Dan Williams Reported-by: Stuart Foster Reported-by: Julian Margetson Tested-by: Julian Margetson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/pfn.h | 2 +- include/linux/pfn_t.h | 19 +++++++++---------- kernel/memremap.c | 2 +- 3 files changed, 11 insertions(+), 12 deletions(-) commit 4a389810bc3cb0e73443104f0827e81e23cb1e12 Author: Andrew Morton Date: Thu Feb 11 16:13:14 2016 -0800 kernel/locking/lockdep.c: convert hash tables to hlists Mike said: : CONFIG_UBSAN_ALIGNMENT breaks x86-64 kernel with lockdep enabled, i. e : kernel with CONFIG_UBSAN_ALIGNMENT fails to load without even any error : message. : : The problem is that ubsan callbacks use spinlocks and might be called : before lockdep is initialized. Particularly this line in the : reserve_ebda_region function causes problem: : : lowmem = *(unsigned short *)__va(BIOS_LOWMEM_KILOBYTES); : : If i put lockdep_init() before reserve_ebda_region call in : x86_64_start_reservations kernel loads well. Fix this ordering issue permanently: change lockdep so that it uses hlists for the hash tables. Unlike a list_head, an hlist_head is in its initialized state when it is all-zeroes, so lockdep is ready for operation immediately upon boot - lockdep_init() need not have run. The patch will also save some memory. lockdep_init() and lockdep_initialized can be done away with now - a 4.6 patch has been prepared to do this. Reported-by: Mike Krinkin Suggested-by: Mike Krinkin Cc: Andrey Ryabinin Cc: Ingo Molnar Cc: Peter Zijlstra Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/lockdep.h | 4 ++-- kernel/locking/lockdep.c | 42 +++++++++++++++++++----------------------- 2 files changed, 21 insertions(+), 25 deletions(-) commit 6b75d14912f2d89a3539c0b3a100519e1eec9a63 Author: Vineet Gupta Date: Thu Feb 11 16:13:11 2016 -0800 mm,thp: fix spellos in describing __HAVE_ARCH_FLUSH_PMD_TLB_RANGE [akpm@linux-foundation.org: s/threshhold/threshold/] Signed-off-by: Vineet Gupta Cc: Kirill A. Shutemov Cc: Aneesh Kumar K.V Cc: Andrea Arcangeli Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/pgtable-generic.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6a6ac72fd6ea32594b316513e1826c3f6db4cc93 Author: Vineet Gupta Date: Thu Feb 11 16:13:09 2016 -0800 mm,thp: khugepaged: call pte flush at the time of collapse This showed up on ARC when running LMBench bw_mem tests as Overlapping TLB Machine Check Exception triggered due to STLB entry (2M pages) overlapping some NTLB entry (regular 8K page). bw_mem 2m touches a large chunk of vaddr creating NTLB entries. In the interim khugepaged kicks in, collapsing the contiguous ptes into a single pmd. pmdp_collapse_flush()->flush_pmd_tlb_range() is called to flush out NTLB entries for the ptes. This for ARC (by design) can only shootdown STLB entries (for pmd). The stray NTLB entries cause the overlap with the subsequent STLB entry for collapsed page. So make pmdp_collapse_flush() call pte flush interface not pmd flush. Note that originally all thp flush call sites in generic code called flush_tlb_range() leaving it to architecture to implement the flush for pte and/or pmd. Commit 12ebc1581ad11454 changed this by calling a new opt-in API flush_pmd_tlb_range() which made the semantics more explicit but failed to distinguish the pte vs pmd flush in generic code, which is what this patch fixes. Note that ARC can fixed w/o touching the generic pmdp_collapse_flush() by defining a ARC version, but that defeats the purpose of generic version, plus sementically this is the right thing to do. Fixes STAR 9000961194: LMBench on AXS103 triggering duplicate TLB exceptions with super pages Fixes: 12ebc1581ad11454 ("mm,thp: introduce flush_pmd_tlb_range") Signed-off-by: Vineet Gupta Reviewed-by: Aneesh Kumar K.V Acked-by: Kirill A. Shutemov Cc: Andrea Arcangeli Cc: [4.4] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/pgtable-generic.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 078c6c3a5e7dc53a9a23408cc32c83954abb5d0d Author: Rasmus Villemoes Date: Thu Feb 11 16:13:06 2016 -0800 mm/backing-dev.c: fix error path in wb_init() We need to use post-decrement to get percpu_counter_destroy() called on &wb->stat[0]. Moreover, the pre-decremebt would cause infinite out-of-bounds accesses if the setup code failed at i==0. Signed-off-by: Rasmus Villemoes Cc: Johannes Weiner Cc: Michal Hocko Cc: Vladimir Davydov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/backing-dev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6b9116a652bd9e0e2994505cfaaa5f66deaa2a05 Author: Kirill A. Shutemov Date: Thu Feb 11 16:13:03 2016 -0800 mm, dax: check for pmd_none() after split_huge_pmd() DAX implements split_huge_pmd() by clearing pmd. This simple approach reduces memory overhead, as we don't need to deposit page table on huge page mapping to make split_huge_pmd() never-fail. PTE table can be allocated and populated later on page fault from backing store. But one side effect is that have to check if pmd is pmd_none() after split_huge_pmd(). In most places we do this already to deal with parallel MADV_DONTNEED. But I found two call sites which is not affected by MADV_DONTNEED (due down_write(mmap_sem)), but need to have the check to work with DAX properly. Signed-off-by: Kirill A. Shutemov Cc: Dan Williams Cc: Matthew Wilcox Cc: Andrea Arcangeli Cc: Ross Zwisler Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/mprotect.c | 6 ++++-- mm/mremap.c | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) commit 7eb391299419a03cbe0fa5ab0e6b0932e42c7a36 Author: Jason A. Donenfeld Date: Thu Feb 11 16:13:00 2016 -0800 vsprintf: kptr_restrict is okay in IRQ when 2 The kptr_restrict flag, when set to 1, only prints the kernel address when the user has CAP_SYSLOG. When it is set to 2, the kernel address is always printed as zero. When set to 1, this needs to check whether or not we're in IRQ. However, when set to 2, this check is unneccessary, and produces confusing results in dmesg. Thus, only make sure we're not in IRQ when mode 1 is used, but not mode 2. [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: Jason A. Donenfeld Cc: Rasmus Villemoes Cc: Kees Cook Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/vsprintf.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit 62eb320ab077890dbbcc28343fa6432a82a10c35 Author: Randy Dunlap Date: Thu Feb 11 16:12:58 2016 -0800 mm: fix filemap.c kernel doc warning Add missing kernel-doc notation for function parameter 'gfp_mask' to fix kernel-doc warning. mm/filemap.c:1898: warning: No description found for parameter 'gfp_mask' Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/filemap.c | 1 + 1 file changed, 1 insertion(+) commit 7707535ab95e2231b6d7f2bfb4f27558e83c4dc2 Author: Yang Shi Date: Thu Feb 11 16:12:55 2016 -0800 ubsan: cosmetic fix to Kconfig text When enabling UBSAN_SANITIZE_ALL, the kernel image size gets increased significantly (~3x). So, it sounds better to have some note in Kconfig. And, fixed a typo. Signed-off-by: Yang Shi Acked-by: Andrey Ryabinin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/Kconfig.ubsan | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 5d589d81acf974d23af98044aac56c6339d659f8 Author: Robin Murphy Date: Tue Feb 9 11:04:45 2016 +0000 of/irq: Fix msi-map calculation for nonzero rid-base The existing msi-map code is fine for shifting the entire RID space upwards, but attempting finer-grained remapping reveals a bug. It turns out that we are mistakenly treating the msi-base part as an offset, not as a new base to remap onto, so things get squiffy when rid-base is nonzero. Fix this, and at the same time add a sanity check against having msi-map-mask clash with a nonzero rid-base, as that's another thing one can easily get wrong. CC: Signed-off-by: Robin Murphy Reviewed-by: Marc Zyngier Tested-by: Stuart Yoder Acked-by: Mark Rutland Acked-by: David Daney Signed-off-by: Rob Herring drivers/of/irq.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit ef2d4615c59efb312e531a5e949970f37ca1c841 Author: Keith Busch Date: Thu Feb 11 13:05:40 2016 -0700 NVMe: Allow request merges It is generally more efficient to submit larger IO. Signed-off-by: Keith Busch Reviewed-by: Johannes Thumshirn Reviewed-by: Sagi Grimberg Signed-off-by: Jens Axboe drivers/nvme/host/core.c | 1 - 1 file changed, 1 deletion(-) commit 4f76d0e49835d3da33aa54811157421f7061805e Author: Keith Busch Date: Thu Feb 11 13:05:39 2016 -0700 NVMe: Fix io incapable return values The function returns true when the controller can't handle IO. Signed-off-by: Keith Busch Reviewed-by: Sagi Grimberg Reviewed-by: Johannes Thumshirn Acked-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/nvme/host/nvme.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a59e0f5795fe52dad42a99c00287e3766153b312 Author: Keith Busch Date: Thu Feb 11 13:05:38 2016 -0700 blk-mq: End unstarted requests on dying queue Go directly to ending a request if it wasn't started. Previously, completing a request may invoke a driver callback for a request it didn't initialize. Signed-off-by: Keith Busch Reviewed-by: Sagi Grimberg Reviewed-by: Johannes Thumshirn Acked-by: Christoph Hellwig Signed-off-by: Jens Axboe block/blk-mq.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 5f009d3f8e6685fe8c6215082c1696a08b411220 Author: Keith Busch Date: Wed Feb 10 16:52:47 2016 -0700 block: Initialize max_dev_sectors to 0 The new queue limit is not used by the majority of block drivers, and should be initialized to 0 for the driver's requested settings to be used. Signed-off-by: Keith Busch Acked-by: Martin K. Petersen Reviewed-by: Sagi Grimberg Reviewed-by: Christoph Hellwig Signed-off-by: Jens Axboe block/blk-settings.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c05235d50f681bf685e7290cae05ab3b4fa493f3 Merge: da2f912 6ec9249a Author: Linus Torvalds Date: Thu Feb 11 11:25:55 2016 -0800 Merge tag 'gpio-v4.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio Pull GPIO fixes from Linus Walleij: - Probe errorpath fix for the Altera - irqchip ofnode pointer added to the DaVinci driver - controller instance number correction for DaVinci * tag 'gpio-v4.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: gpio: davinci: Fix the number of controllers allocated gpio: davinci: Add the missing of-node pointer gpio: gpio-altera: Remove gpiochip on probe failure. commit da2f912aef1106144c43b75f8719807dfad121b3 Merge: 5de6ac7 b1d353a Author: Linus Torvalds Date: Thu Feb 11 11:17:19 2016 -0800 Merge tag 'platform-drivers-x86-v4.5-3' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86 Pull x86 platform driver fixes from Darren Hart: "Just two small fixes for the 4.5-rc cycle: intel_scu_ipcutil: - underflow in scu_reg_access() intel-hid: - fix incorrect entries in intel_hid_keymap" * tag 'platform-drivers-x86-v4.5-3' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86: intel_scu_ipcutil: underflow in scu_reg_access() intel-hid: fix incorrect entries in intel_hid_keymap commit 5de6ac75d928358063f37c874a91ca1ef28ac308 Merge: 721675f a1b14d2 Author: Linus Torvalds Date: Thu Feb 11 11:00:34 2016 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Pull networking fixes from David Miller: 1) Fix BPF handling of branch offset adjustmnets on backjumps, from Daniel Borkmann. 2) Make sure selinux knows about SOCK_DESTROY netlink messages, from Lorenzo Colitti. 3) Fix openvswitch tunnel mtu regression, from David Wragg. 4) Fix ICMP handling of TCP sockets in syn_recv state, from Eric Dumazet. 5) Fix SCTP user hmacid byte ordering bug, from Xin Long. 6) Fix recursive locking in ipv6 addrconf, from Subash Abhinov Kasiviswanathan. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: bpf: fix branch offset adjustment on backjumps after patching ctx expansion vxlan, gre, geneve: Set a large MTU on ovs-created tunnel devices geneve: Relax MTU constraints vxlan: Relax MTU constraints flow_dissector: Fix unaligned access in __skb_flow_dissector when used by eth_get_headlen of: of_mdio: Add marvell, 88e1145 to whitelist of PHY compatibilities. selinux: nlmsgtab: add SOCK_DESTROY to the netlink mapping tables sctp: translate network order to host order when users get a hmacid enic: increment devcmd2 result ring in case of timeout tg3: Fix for tg3 transmit queue 0 timed out when too many gso_segs net:Add sysctl_max_skb_frags tcp: do not drop syn_recv on all icmp reports ipv6: fix a lockdep splat unix: correctly track in-flight fds in sending process user_struct update be2net maintainers' email addresses dwc_eth_qos: Reset hardware before PHY start ipv6: addrconf: Fix recursive spin lock call commit ee50aeac60ba5c4c7e072fbc0c9aa2043c8896e6 Author: Eran Ben Elisha Date: Thu Feb 11 10:24:42 2016 +0200 IB/core: Fix reading capability mask of the port info class When checking specific attribute from a bit mask, need to use bitwise AND and not logical AND, fixed that. Fixes: 145d9c541032 ('IB/core: Display extended counter set if available') Signed-off-by: Eran Ben Elisha Signed-off-by: Matan Barak Reviewed-by: Or Gerlitz Reviewed-by: Christoph Lameter Signed-off-by: Doug Ledford drivers/infiniband/core/sysfs.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit fa51b247d67b521e1a1103cad75eb7a666fc9ff9 Author: Rasmus Villemoes Date: Tue Feb 9 21:11:14 2016 +0100 net/mlx4: fix some error handling in mlx4_multi_func_init() The while loop after err_slaves should use post-decrement; otherwise we'll fail to do the kfrees for i==0, and will run into out-of-bounds accesses if the setup above failed already at i==0. [I'm not sure why one even bothers populating the ->vlan_filter array: mlx4.h isn't #included by anything outside drivers/net/ethernet/mellanox/mlx4/, and "git grep -C2 -w vlan_filter drivers/net/ethernet/mellanox/mlx4/" seems to suggest that the vlan_filter elements aren't used at all.] Signed-off-by: Rasmus Villemoes Signed-off-by: Doug Ledford drivers/net/ethernet/mellanox/mlx4/cmd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 004fa08d7aba2a13974446bf212a48c0b3b0d9fd Author: Ashok Kumar Date: Thu Feb 11 05:38:53 2016 -0800 irqchip/gic-v3-its: Fix double ICC_EOIR write for LPI in EOImode==1 When the GIC is using EOImode==1, the EOI is done immediately, leaving the deactivation to be performed when the EOI was previously done. Unfortunately, the ITS is not aware of the EOImode at all, and blindly EOIs the interrupt again. On most systems, this is ignored (despite being a programming error), but some others do raise a SError exception as there is no priority drop to perform for this interrupt. The fix is to stop trying to be clever, and always call into the underlying GIC to perform the right access, irrespective of the more we're in. [Marc: Reworked commit message] Fixes: 0b996fd35957a ("irqchip/GICv3: Convert to EOImode == 1") Cc: stable@vger.kernel.org Acked-by: Marc Zyngier Signed-off-by: Ashok Kumar Signed-off-by: Marc Zyngier drivers/irqchip/irq-gic-v3-its.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit a514379b0c77085074abf01c525a850f6d99926e Author: Matias Bjørling Date: Thu Feb 11 14:49:13 2016 +0100 null_blk: oops when initializing without lightnvm If the LightNVM subsystem is not compiled into the kernel, and the null_blk device driver requests lightnvm to be initialized. The call to nvm_register fails and the null_add_dev function cleans up the initialization. However, at this point the null block device has already been added to the nullb_list and thus a second cleanup will occur when the function has returned, that leads to a double call to blk_cleanup_queue. Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe drivers/block/null_blk.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit a5ebb87db84392edfd3142c3a6a78431d820a789 Author: Ulf Hansson Date: Thu Feb 11 16:42:58 2016 +0100 Revert "mmc: block: don't use parameter prefix if built as module" This reverts commit 829b6962f7e3cfc06f7c5c26269fd47ad48cf503. Revert this change as it causes a sysfs path to change and therefore introduces and ABI regression. More precisely Android's vold is not being able to access /sys/module/mmcblk/parameters/perdev_minors any more, since the path becomes changed to: "/sys/module/mmc_block/..." Fixes: 829b6962f7e3 ("mmc: block: don't use parameter prefix if built as module") Reported-by: John Stultz Cc: Andy Shevchenko Signed-off-by: Ulf Hansson drivers/mmc/card/block.c | 3 --- 1 file changed, 3 deletions(-) commit a53b8394ec3c67255928df6ee9cc99dd1cd452e3 Author: Javi Merino Date: Thu Feb 11 12:00:51 2016 +0000 thermal: cpu_cooling: fix out of bounds access in time_in_idle In __cpufreq_cooling_register() we allocate the arrays for time_in_idle and time_in_idle_timestamp to be as big as the number of cpus in this cpufreq device. However, in get_load() we access this array using the cpu number as index, which can result in an out of bound access. Index time_in_idle{,_timestamp} using the index in the cpufreq_device's allowed_cpus mask, as we do for the load_cpu array in cpufreq_get_requested_power() Reported-by: Nicolas Boichat Cc: Amit Daniel Kachhap Cc: Zhang Rui Cc: Eduardo Valentin Tested-by: Nicolas Boichat Acked-by: Viresh Kumar Signed-off-by: Javi Merino Signed-off-by: Eduardo Valentin drivers/thermal/cpu_cooling.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit 287e6611ab1eac76c2c5ebf6e345e04c80ca9c61 Author: Arnd Bergmann Date: Thu Feb 11 14:16:27 2016 +0100 libata: fix HDIO_GET_32BIT ioctl As reported by Soohoon Lee, the HDIO_GET_32BIT ioctl does not work correctly in compat mode with libata. I have investigated the issue further and found multiple problems that all appeared with the same commit that originally introduced HDIO_GET_32BIT handling in libata back in linux-2.6.8 and presumably also linux-2.4, as the code uses "copy_to_user(arg, &val, 1)" to copy a 'long' variable containing either 0 or 1 to user space. The problems with this are: * On big-endian machines, this will always write a zero because it stores the wrong byte into user space. * In compat mode, the upper three bytes of the variable are updated by the compat_hdio_ioctl() function, but they now contain uninitialized stack data. * The hdparm tool calling this ioctl uses a 'static long' variable to store the result. This means at least the upper bytes are initialized to zero, but calling another ioctl like HDIO_GET_MULTCOUNT would fill them with data that remains stale when the low byte is overwritten. Fortunately libata doesn't implement any of the affected ioctl commands, so this would only happen when we query both an IDE and an ATA device in the same command such as "hdparm -N -c /dev/hda /dev/sda" * The libata code for unknown reasons started using ATA_IOC_GET_IO32 and ATA_IOC_SET_IO32 as aliases for HDIO_GET_32BIT and HDIO_SET_32BIT, while the ioctl commands that were added later use the normal HDIO_* names. This is harmless but rather confusing. This addresses all four issues by changing the code to use put_user() on an 'unsigned long' variable in HDIO_GET_32BIT, like the IDE subsystem does, and by clarifying the names of the ioctl commands. Signed-off-by: Arnd Bergmann Reported-by: Soohoon Lee Tested-by: Soohoon Lee Cc: stable@vger.kernel.org Signed-off-by: Tejun Heo drivers/ata/libata-scsi.c | 11 +++++------ include/linux/ata.h | 4 ++-- 2 files changed, 7 insertions(+), 8 deletions(-) commit bc4ef7592f657ae81b017207a1098817126ad4cb Author: David Sterba Date: Fri Nov 13 13:44:28 2015 +0100 btrfs: properly set the termination value of ctx->pos in readdir The value of ctx->pos in the last readdir call is supposed to be set to INT_MAX due to 32bit compatibility, unless 'pos' is intentially set to a larger value, then it's LLONG_MAX. There's a report from PaX SIZE_OVERFLOW plugin that "ctx->pos++" overflows (https://forums.grsecurity.net/viewtopic.php?f=1&t=4284), on a 64bit arch, where the value is 0x7fffffffffffffff ie. LLONG_MAX before the increment. We can get to that situation like that: * emit all regular readdir entries * still in the same call to readdir, bump the last pos to INT_MAX * next call to readdir will not emit any entries, but will reach the bump code again, finds pos to be INT_MAX and sets it to LLONG_MAX Normally this is not a problem, but if we call readdir again, we'll find 'pos' set to LLONG_MAX and the unconditional increment will overflow. The report from Victor at (http://thread.gmane.org/gmane.comp.file-systems.btrfs/49500) with debugging print shows that pattern: Overflow: e Overflow: 7fffffff Overflow: 7fffffffffffffff PAX: size overflow detected in function btrfs_real_readdir fs/btrfs/inode.c:5760 cicus.935_282 max, count: 9, decl: pos; num: 0; context: dir_context; CPU: 0 PID: 2630 Comm: polkitd Not tainted 4.2.3-grsec #1 Hardware name: Gigabyte Technology Co., Ltd. H81ND2H/H81ND2H, BIOS F3 08/11/2015 ffffffff81901608 0000000000000000 ffffffff819015e6 ffffc90004973d48 ffffffff81742f0f 0000000000000007 ffffffff81901608 ffffc90004973d78 ffffffff811cb706 0000000000000000 ffff8800d47359e0 ffffc90004973ed8 Call Trace: [] dump_stack+0x4c/0x7f [] report_size_overflow+0x36/0x40 [] btrfs_real_readdir+0x69c/0x6d0 [] iterate_dir+0xa8/0x150 [] ? __fget_light+0x2d/0x70 [] SyS_getdents+0xba/0x1c0 Overflow: 1a [] ? iterate_dir+0x150/0x150 [] entry_SYSCALL_64_fastpath+0x12/0x83 The jump from 7fffffff to 7fffffffffffffff happens when new dir entries are not yet synced and are processed from the delayed list. Then the code could go to the bump section again even though it might not emit any new dir entries from the delayed list. The fix avoids entering the "bump" section again once we've finished emitting the entries, both for synced and delayed entries. References: https://forums.grsecurity.net/viewtopic.php?f=1&t=4284 Reported-by: Victor CC: stable@vger.kernel.org Signed-off-by: David Sterba Tested-by: Holger Hoffstätte Signed-off-by: Chris Mason fs/btrfs/delayed-inode.c | 3 ++- fs/btrfs/delayed-inode.h | 2 +- fs/btrfs/inode.c | 14 +++++++++++++- 3 files changed, 16 insertions(+), 3 deletions(-) commit 32aea2680de01f539d928112150279fdeeabca00 Author: Suman Tripathi Date: Sat Feb 6 11:25:24 2016 +0530 ahci_xgene: Implement the workaround to fix the missing of the edge interrupt for the HOST_IRQ_STAT. Due to H/W errata, the HOST_IRQ_STAT register misses the edge interrupt when clearing the HOST_IRQ_STAT register and hardware reporting the PORT_IRQ_STAT register happens to be at the same clock cycle. Signed-off-by: Suman Tripathi Signed-off-by: Tejun Heo drivers/ata/ahci_xgene.c | 47 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) commit d867b95f965457b9e85fb061ef8e3fdc029116ed Author: Suman Tripathi Date: Sat Feb 6 11:25:23 2016 +0530 ata: Remove the AHCI_HFLAG_EDGE_IRQ support from libahci. The flexibility to override the irq handles in the LLD's are already present, so controllers implementing a edge trigger latch can implement their own interrupt handler inside the driver. This patch removes the AHCI_HFLAG_EDGE_IRQ support from libahci and moves edge irq handling to ahci_xgene. tj: Minor update to description. Signed-off-by: Suman Tripathi Signed-off-by: Tejun Heo drivers/ata/ahci.h | 3 +-- drivers/ata/ahci_xgene.c | 40 +++++++++++++++++++++++++++++++++++++++- drivers/ata/libahci.c | 43 +------------------------------------------ 3 files changed, 41 insertions(+), 45 deletions(-) commit f070d6715509dafc0af223577c896fe3d204ca88 Author: Suman Tripathi Date: Sat Feb 6 11:25:22 2016 +0530 libahci: Implement the capability to override the generic ahci interrupt handler. This patch implements the capability to override the generic AHCI interrupt handler so that specific ahci drivers can implement their own custom interrupt handler routines. It also exports ahci_handle_port_intr so that custom irq_handler implementations can use it. tj: s/ahci_irq_handler/irq_handler/ and updated description. Signed-off-by: Suman Tripathi Signed-off-by: Tejun Heo drivers/ata/ahci.h | 2 ++ drivers/ata/libahci.c | 27 ++++++++++++++++++++------- 2 files changed, 22 insertions(+), 7 deletions(-) commit e972c37459c813190461dabfeaac228e00aae259 Author: Linus Walleij Date: Wed Feb 10 09:25:17 2016 +0100 ARM: 8519/1: ICST: try other dividends than 1 Since the dawn of time the ICST code has only supported divide by one or hang in an eternal loop. Luckily we were always dividing by one because the reference frequency for the systems using the ICSTs is 24MHz and the [min,max] values for the PLL input if [10,320] MHz for ICST307 and [6,200] for ICST525, so the loop will always terminate immediately without assigning any divisor for the reference frequency. But for the code to make sense, let's insert the missing i++ Reported-by: David Binderman Cc: stable@vger.kernel.org Signed-off-by: Linus Walleij Signed-off-by: Russell King arch/arm/common/icst.c | 1 + 1 file changed, 1 insertion(+) commit 111f2b87326199a736c3469265763a6be6e5528f Author: Krzysztof Adamski Date: Wed Feb 3 08:57:14 2016 +0100 pinctrl: sunxi: H3 requires irq_read_needs_mux It seems that on H3, just like on A10, when GPIOs are configured as external interrupt data registers does not contain their value. When value is read, GPIO function must be temporary switched to input for reads. Signed-off-by: Krzysztof Adamski Acked-by: Chen-Yu Tsai Acked-by: Maxime Ripard Signed-off-by: Linus Walleij drivers/pinctrl/sunxi/pinctrl-sun8i-h3.c | 1 + 1 file changed, 1 insertion(+) commit 3c5b1d92b3b02be07873d611a27950addff544d3 Author: Tirumalesh Chalamarla Date: Wed Feb 10 10:46:53 2016 -0800 arm64: KVM: Configure TCR_EL2.PS at runtime Setting TCR_EL2.PS to 40 bits is wrong on systems with less that less than 40 bits of physical addresses. and breaks KVM on systems where the RAM is above 40 bits. This patch uses ID_AA64MMFR0_EL1.PARange to set TCR_EL2.PS dynamically, just like we already do for VTCR_EL2.PS. [Marc: rewrote commit message, patch tidy up] Reviewed-by: Marc Zyngier Signed-off-by: Tirumalesh Chalamarla Signed-off-by: Marc Zyngier arch/arm64/include/asm/kvm_arm.h | 2 -- arch/arm64/kvm/hyp-init.S | 12 +++++++----- 2 files changed, 7 insertions(+), 7 deletions(-) commit f6c9b160233f9b5afe926b91b55589b706076640 Author: Heiko Carstens Date: Wed Feb 10 14:13:24 2016 +0100 s390/diag: avoid lockdep recursion The diagnose tracer will indirectly call back into the lockdep code when lockdep does not expect it (arch_spinlock). This causes lockdep to disable itself and therefore we don't have a working lock dependency validator anymore. This patch effectively disables tracing of diag 0x9c and 0x44 if lockdep is enabled. If however lockdep is enabled spinlocks are mainly implemented using a trylock variant, which will not issue any diag 0x9c or 0x44. So this change has hardly any effect on tracing except when arch_spinlock and friends are explicitly used. Reported-and-Tested-by: David Hildenbrand Signed-off-by: Heiko Carstens Reviewed-by: David Hildenbrand Acked-by: Martin Schwidefsky Signed-off-by: Martin Schwidefsky arch/s390/kernel/trace.c | 3 +++ 1 file changed, 3 insertions(+) commit 9d862ababb609439c5d6987f6d3ddd09e703aa0b Author: Stefan Haberland Date: Tue Dec 15 10:45:05 2015 +0100 s390/dasd: fix refcount for PAV reassignment Add refcount to the DASD device when a summary unit check worker is scheduled. This prevents that the device is set offline with worker in place. Cc: stable@vger.kernel.org Signed-off-by: Stefan Haberland Signed-off-by: Martin Schwidefsky drivers/s390/block/dasd_alias.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) commit 020bf042e5b397479c1174081b935d0ff15d1a64 Author: Stefan Haberland Date: Tue Dec 15 10:16:43 2015 +0100 s390/dasd: prevent incorrect length error under z/VM after PAV changes The channel checks the specified length and the provided amount of data for CCWs and provides an incorrect length error if the size does not match. Under z/VM with simulation activated the length may get changed. Having the suppress length indication bit set is stated as good CCW coding practice and avoids errors under z/VM. Cc: stable@vger.kernel.org Signed-off-by: Stefan Haberland Signed-off-by: Martin Schwidefsky drivers/s390/block/dasd_alias.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0986d97741150b307775d56f587a73ea873a4f4d Author: Christian Borntraeger Date: Tue Feb 9 16:23:39 2016 +0100 s390: fix DAT off memory access, e.g. on kdump commit 204ee2c56431 ("s390/irqflags: optimize irq restore") optimized irqrestore to really only care about interrupts and adapted the remaining low level users. One spot (memcpy_real) was not touched, though - fix it. Otherwise a kdump kernel will fail while reading the old kernel. As we re-enable irqs with a non-standard function we have to tell lockdep about that. Fixes: 204ee2c56431 ("s390/irqflags: optimize irq restore") Signed-off-by: Christian Borntraeger Signed-off-by: Martin Schwidefsky arch/s390/mm/maccess.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 49b245efab4498575379a36cfab9d7373df3b69a Merge: 1a485f4 1a1ebd5 Author: Thomas Gleixner Date: Thu Feb 11 11:47:55 2016 +0100 Merge tag 'gic-fixes-4.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into irq/urgent Pull GIC fixes from Marc for 4.5-rc4: - Two fixes addressing cascaded GICv1/GICv2 (affinity setting, EOImode) - One fix addressing possible missed interrupts on GICv3 commit 6a645dd87a5a506779810d7d9935c25fc2ef4687 Author: Adrian Hunter Date: Tue Feb 9 16:12:38 2016 +0200 mmc: sdhci-acpi: Fix card detect race for Intel BXT/APL Intel BXT/APL use a card detect GPIO however the host controller will not enable bus power unless it's card detect also reflects the presence of a card. Unfortunately those 2 things race which can result in commands not starting, after which the controller does nothing and there is a 10 second wait for the driver's 10-second timer to timeout. That is fixed by having the driver look also at the present state register to determine if the card is present. Consequently, provide a 'get_cd' mmc host operation for BXT/APL that does that. Signed-off-by: Adrian Hunter Cc: stable@vger.kernel.org # v4.4+ Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-acpi.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) commit 163cbe31e5163459908a41a2b4e0d33a28fd557a Author: Adrian Hunter Date: Tue Feb 9 16:12:37 2016 +0200 mmc: sdhci-pci: Fix card detect race for Intel BXT/APL Intel BXT/APL use a card detect GPIO however the host controller will not enable bus power unless it's card detect also reflects the presence of a card. Unfortunately those 2 things race which can result in commands not starting, after which the controller does nothing and there is a 10 second wait for the driver's 10-second timer to timeout. That is fixed by having the driver look also at the present state register to determine if the card is present. Consequently, provide a 'get_cd' mmc host operation for BXT/APL that does that. Signed-off-by: Adrian Hunter Cc: stable@vger.kernel.org # v4.4+ Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-pci-core.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) commit 8d28b7a72fe18bcdcdb047243ba8fec36b149955 Author: Adrian Hunter Date: Tue Feb 9 16:12:36 2016 +0200 mmc: sdhci: Allow override of get_cd() called from sdhci_request() Drivers may need to provide their own get_cd() mmc host op, but currently the internals of the current op (sdhci_get_cd()) are provided by sdhci_do_get_cd() which is also called from sdhci_request(). To allow override of the get_cd functionality, change sdhci_request() to call ->get_cd() instead of sdhci_do_get_cd(). Note, in the future the call to ->get_cd() will likely be removed from sdhci_request() since most drivers don't need actually it. However this change is being done now to facilitate a subsequent bug fix. Signed-off-by: Adrian Hunter Cc: stable@vger.kernel.org # v4.4+ Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bf60e592a1af4d6f65dd54593250183f14360eed Author: Adrian Hunter Date: Tue Feb 9 16:12:35 2016 +0200 mmc: sdhci: Allow override of mmc host operations In the past, fixes for specific hardware devices were implemented in sdhci using quirks. That approach is no longer accepted because the growing number of quirks was starting to make the code difficult to understand and maintain. One alternative to quirks, is to allow drivers to override the default mmc host operations. This patch makes it easy to do that, and it is needed for a subsequent bug fix, for which separate patches are provided. Signed-off-by: Adrian Hunter Cc: stable@vger.kernel.org # v4.4+ Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci.c | 3 ++- drivers/mmc/host/sdhci.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) commit f4d3d504198d464e406171cfa554a59bd4773d79 Author: Daniel Wagner Date: Wed Feb 10 10:21:21 2016 +0100 mips: Differentiate between 32 and 64 bit ELF header Depending on the configuration either the 32 or 64 bit version of elf_check_arch() is defined. parse_crash_elf{32|64}_headers() does some basic verification of the ELF header via vmcore_elf{32|64}_check_arch() which happen to map to elf_check_arch(). Since the implementation 32 and 64 bit version of elf_check_arch() differ, we use the wrong type: In file included from include/linux/elf.h:4:0, from fs/proc/vmcore.c:13: fs/proc/vmcore.c: In function 'parse_crash_elf64_headers': >> arch/mips/include/asm/elf.h:228:23: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types] struct elfhdr *__h = (hdr); \ ^ include/linux/crash_dump.h:41:37: note: in expansion of macro 'elf_check_arch' #define vmcore_elf64_check_arch(x) (elf_check_arch(x) || vmcore_elf_check_arch_cross(x)) ^ fs/proc/vmcore.c:1015:4: note: in expansion of macro 'vmcore_elf64_check_arch' !vmcore_elf64_check_arch(&ehdr) || ^ Therefore, we rather define vmcore_elf{32|64}_check_arch() as a basic machine check and use it also in binfm_elf?32.c as well. Signed-off-by: Daniel Wagner Suggested-by: Maciej W. Rozycki Reviewed-by: Maciej W. Rozycki Reported-by: Fengguang Wu Cc: linux-kernel@vger.kernel.org Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/12529/ Signed-off-by: Ralf Baechle arch/mips/include/asm/elf.h | 9 +++++++-- arch/mips/kernel/binfmt_elfn32.c | 2 +- arch/mips/kernel/binfmt_elfo32.c | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) commit 1a1ebd5fb1e203ee8cc73508cc7a38ac4b804596 Author: Tirumalesh Chalamarla Date: Thu Feb 4 10:45:25 2016 -0800 irqchip/gic-v3: Make sure read from ICC_IAR1_EL1 is visible on redestributor The ARM GICv3 specification mentions the need for dsb after a read from the ICC_IAR1_EL1 register: 4.1.1 Physical CPU Interface: The effects of reading ICC_IAR0_EL1 and ICC_IAR1_EL1 on the state of a returned INTID are not guaranteed to be visible until after the execution of a DSB. Not having this could result in missed interrupts, so let's add the required barrier. [Marc: fixed commit message] Acked-by: Marc Zyngier Signed-off-by: Tirumalesh Chalamarla Signed-off-by: Marc Zyngier arch/arm64/include/asm/arch_gicv3.h | 1 + 1 file changed, 1 insertion(+) commit 389a00d3ad02a06b5d6d692cce76fed6a3dae8b4 Author: Jon Hunter Date: Tue Feb 9 15:24:57 2016 +0000 irqchip/gic: Only set the EOImodeNS bit for the root controller EOImode1 is only used for the root controller and hence only the root controller uses the eoimode1 functions for handling interrupts. However, if the root controller supports EOImode1, then the EOImodeNS bit will be set for all GICs, enabling EOImode1. This is not what we want and this causes interrupts on non-root GICs to only be dropped in priority but never deactivated. Therefore, only set the EOImodeNS bit for the root controller. Acked-by: Marc Zyngier Signed-off-by: Jon Hunter Signed-off-by: Marc Zyngier drivers/irqchip/irq-gic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7bf29d3af6807d2a97a8b7d4627104a8da9bcdcb Author: Jon Hunter Date: Tue Feb 9 15:24:56 2016 +0000 irqchip/gic: Only populate set_affinity for the root controller Setting the affinity of an IRQ, it only applicable for the root interrupt controller and so only populate this operator for the root controller. Acked-by: Marc Zyngier Signed-off-by: Jon Hunter Signed-off-by: Marc Zyngier drivers/irqchip/irq-gic.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 8e7199c2c50fff1969302643171eaa33f1ca148f Author: Daniel Stone Date: Mon Feb 8 21:12:58 2016 +0000 component: remove device from master match list on failed add Calling component_add() may result in the completion of a set of devices, which will try to bring up a master. In bringing the master up, we populate its match array with the current set of children. If binding any of the devices fails, component_add() itself will fail, free the struct component entry, and return to the caller. The now-freed entry is never removed from the master's match array, and will later be used in a futile attempt to bind to freed memory. Bring component_add's behaviour on failure to bring up a master into line with component_del by removing the (to-be-freed) component from the master's match array. The specific case which broke was: - rockchip_drm_drv adds a component master - dwhdmi_rockchip adds a child component in probe (master incomplete) - rockchip_drm_vop adds two children in probe, which completes the set - inside component_add, we try to bring up the master, having populated the master's match array, and fail with EPROBE_DEFER from dwhdmi_rockchip; we delete the putative component - rockchip_drm_vop's probe fails and returns EPROBE_DEFER - we later re-probe rockchip_drm_vop and add the component; the master is complete, so we attempt to bring it up again - walking the match array, we find the previous child, whose master pointer doesn't match (as it has been freed in the meantime) - rockchip_drm_vop probe fails, and will never be attempted again Fixes: ffc30b74fd6d01588bd3fdebc3b1acc0857e6fc8 Signed-off-by: Daniel Stone Cc: Russell King Cc: Thierry Reding Cc: Laurent Pinchart Signed-off-by: Russell King drivers/base/component.c | 2 ++ 1 file changed, 2 insertions(+) commit 5327c7dbd1a7fd980608f44789076a636e5ee5fc Author: Quinn Tran Date: Wed Feb 10 18:59:14 2016 -0500 qla2xxx: use TARGET_SCF_USE_CPUID flag to indiate CPU Affinity Signed-off-by: Quinn Tran Reviewed-by: Christoph Hellwig Reviewed-by: Bart Van Assche Fixes: fb3269b ("qla2xxx: Add selective command queuing") Signed-off-by: Himanshu Madhani Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_target.c | 4 ++-- drivers/scsi/qla2xxx/tcm_qla2xxx.c | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) commit 9095adaab8c1d82707e4e9961b6ad79b62f3361b Author: Quinn Tran Date: Wed Feb 10 18:59:13 2016 -0500 target/transport: add flag to indicate CPU Affinity is observed Signed-off-by: Quinn Tran Reviewed-by: Christoph Hellwig Reviewed-by: Bart Van Assche Fixes: fb3269b ("qla2xxx: Add selective command queuing") Signed-off-by: Himanshu Madhani Signed-off-by: Nicholas Bellinger drivers/target/target_core_transport.c | 12 +++++++++--- include/target/target_core_base.h | 2 ++ 2 files changed, 11 insertions(+), 3 deletions(-) commit 2e498f25b0daa9dec761e3e880024ff7417f2445 Author: Nicholas Bellinger Date: Wed Feb 10 20:34:56 2016 -0800 target: Fix incorrect unmap_zeroes_data_store return This patch fixes an incorrect return of zero from the new unmap_zeroes_data_store() configfs store attribute handler introduced in v4.5-rc1, to use the correct 'count' bytes return value. Signed-off-by: Nicholas Bellinger drivers/target/target_core_configfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 43d871f029dadfff1bab1ebe24c4268b86801ca5 Merge: e410e34 0c0fe3b Author: Chris Mason Date: Wed Feb 10 16:51:38 2016 -0800 Merge branch 'integration-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/fdmanana/linux into for-linus-4.5 commit bf26927b2c0780609e6e5361d177cf10107065f3 Author: Peter Ujfalusi Date: Tue Feb 9 13:46:57 2016 +0200 ARM: DTS: am57xx-beagle-x15: Select SYS_CLK2 for audio clocks The tlv320aic3104 codec's master clock is coming from the SoC's CLKOUT2. Select the SYS_CLK2 (via divider) as parent clock for CLKOUT2 and select the same clock (SYS_CLK2) for McASP3 AHCLKX clock as well. SYS_CLK2 is sourced from an external oscillator running 22.5792MHz and it is coming in to the SoC via the X1_OSC1. Signed-off-by: Peter Ujfalusi Signed-off-by: Tony Lindgren arch/arm/boot/dts/am57xx-beagle-x15.dts | 4 ++++ 1 file changed, 4 insertions(+) commit a5b87513119248c87b9df938025d066af8ec8856 Author: Sudeep Holla Date: Mon Feb 8 21:55:53 2016 +0000 ARM: dts: am335x/am57xx: replace gpio-key,wakeup with wakeup-source property Commit 3efda00129bd ("ARM: dts: am335x: replace gpio-key,wakeup with wakeup-source property") replaces all the legacy "gpio-key,wakeup" with the unified "wakeup-source" property to prevent any further copy-paste duplication. However couple of use of these legacy property sneaked in during the merge window. This patch replaces them too. Cc: "Benoît Cousson" Cc: linux-omap@vger.kernel.org Signed-off-by: Sudeep Holla Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-shc.dts | 4 ++-- arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 4b550af519854421dfec9f7732cdddeb057134b2 Author: Anton Protopopov Date: Wed Feb 10 12:50:21 2016 -0500 cifs: fix erroneous return value The setup_ntlmv2_rsp() function may return positive value ENOMEM instead of -ENOMEM in case of kmalloc failure. Signed-off-by: Anton Protopopov CC: Stable Signed-off-by: Steve French fs/cifs/cifsencrypt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5f35dc47c1744110d4119c4aa2a00872e8a1217b Author: Ivaylo Dimitrov Date: Wed Feb 10 20:23:02 2016 +0200 ARM: OMAP2+: Set system_rev from ATAGS for n900 This fixed a regression with DT boot compared to legacy boot. Reviewed-by: Pali Rohár Tested-by: Pali Rohár Signed-off-by: Ivaylo Dimitrov [tony@atomide.com: edited patch subject to follow standard] Signed-off-by: Tony Lindgren arch/arm/mach-omap2/board-generic.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) commit f34d69c3e54908c97708d0d65075f7c6074fc87e Author: Insu Yun Date: Mon Feb 1 11:34:58 2016 -0500 cifs: fix potential overflow in cifs_compose_mount_options In worst case, "ip=" + sb_mountdata + ipv6 can be copied into mountdata. Therefore, for safe, it is better to add more size when allocating memory. Signed-off-by: Insu Yun Signed-off-by: Steve French fs/cifs/cifs_dfs_ref.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 997152f62751b7d16f1b864121c912fd19032bdf Author: Colin Ian King Date: Mon Jan 25 16:25:54 2016 +0000 cifs: remove redundant check for null string pointer server_RFC1001_name is declared as a RFC1001_NAME_LEN_WITH_NULL sized char array in struct TCP_Server_Info so the null pointer check on server_RFC1001_name is redundant and can be removed. Detected with smatch: fs/cifs/connect.c:2982 ip_rfc1001_connect() warn: this array is probably non-NULL. 'server->server_RFC1001_name' Signed-off-by: Colin Ian King Signed-off-by: Steve French fs/cifs/connect.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 721675fcf277cfd345117d3abae1c5590c5fdfd4 Merge: 74c7b2a 7425f41 Author: Linus Torvalds Date: Wed Feb 10 15:11:08 2016 -0800 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma Pull rdma fixes from Doug Ledford: "A few more minor fixes for rc3: - One fix to ipoib - One fix to core sysfs code - Four patches that resolve an oops found in testing of ocrdma and a couple other ocrdma issues" * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: RDMA/ocrdma: Fixing ocrdma debugfs directory remove RDMA/ocrdma: Fix pkey_index returned by driver in rq work completion RDMA/ocrdma: populate max_sge_rd in device attributes RDMA/ocrdma: Initialize stats resources in the driver before ib device registration. IB/sysfs: remove unused va_list args IB/IPoIB: Do not set skb truesize since using one linearskb commit c92a428f408b23215d1a27f652742094bfc50577 Merge: 388f7b1 cc1de6e Author: Dave Airlie Date: Thu Feb 11 08:39:07 2016 +1000 Merge branch 'drm-fixes-4.5' of git://people.freedesktop.org/~agd5f/linux into drm-fixes radeon and amdgpu fixes for 4.5. Highlights: - powerplay fixes for amdgpu - race fixes in the sub-allocator in radeon and amdgpu - hibernate fix for amdgpu - fix a possible circular locking in userptr handling in amdgpu * 'drm-fixes-4.5' of git://people.freedesktop.org/~agd5f/linux: (21 commits) drm/amdgpu: fix issue with overlapping userptrs drm/radeon: hold reference to fences in radeon_sa_bo_new drm/amdgpu: remove unnecessary forward declaration drm/amdgpu: hold reference to fences in amdgpu_sa_bo_new (v2) drm/amdgpu: fix s4 resume drm/amdgpu/cz: plumb pg flags through to powerplay drm/amdgpu/tonga: plumb pg flags through to powerplay drma/dmgpu: move cg and pg flags into shared headers drm/amdgpu: remove unused cg defines drm/amdgpu: add a cgs interface to fetch cg and pg flags drm/amd/powerplay/tonga: disable vce pg drm/amd/powerplay/tonga: disable uvd pg drm/amd/powerplay/cz: disable vce pg drm/amd/powerplay/cz: disable uvd pg drm/amdgpu: be consistent with uvd cg flags drm/amdgpu: clean up vce pg flags for cz/st drm/amdgpu: handle vce pg flags properly drm/amdgpu: handle uvd pg flags properly drm/amdgpu/dpm/ci: switch over to the common pcie caps interface drm/amdgpu/cik: don't mess with aspm if gpu is root bus ... commit a1b14d27ed0965838350f1377ff97c93ee383492 Author: Daniel Borkmann Date: Wed Feb 10 16:47:11 2016 +0100 bpf: fix branch offset adjustment on backjumps after patching ctx expansion When ctx access is used, the kernel often needs to expand/rewrite instructions, so after that patching, branch offsets have to be adjusted for both forward and backward jumps in the new eBPF program, but for backward jumps it fails to account the delta. Meaning, for example, if the expansion happens exactly on the insn that sits at the jump target, it doesn't fix up the back jump offset. Analysis on what the check in adjust_branches() is currently doing: /* adjust offset of jmps if necessary */ if (i < pos && i + insn->off + 1 > pos) insn->off += delta; else if (i > pos && i + insn->off + 1 < pos) insn->off -= delta; First condition (forward jumps): Before: After: insns[0] insns[0] insns[1] <--- i/insn insns[1] <--- i/insn insns[2] <--- pos insns[P] <--- pos insns[3] insns[P] `------| delta insns[4] <--- target_X insns[P] `-----| insns[5] insns[3] insns[4] <--- target_X insns[5] First case is if we cross pos-boundary and the jump instruction was before pos. This is handeled correctly. I.e. if i == pos, then this would mean our jump that we currently check was the patchlet itself that we just injected. Since such patchlets are self-contained and have no awareness of any insns before or after the patched one, the delta is correctly not adjusted. Also, for the second condition in case of i + insn->off + 1 == pos, means we jump to that newly patched instruction, so no offset adjustment are needed. That part is correct. Second condition (backward jumps): Before: After: insns[0] insns[0] insns[1] <--- target_X insns[1] <--- target_X insns[2] <--- pos <-- target_Y insns[P] <--- pos <-- target_Y insns[3] insns[P] `------| delta insns[4] <--- i/insn insns[P] `-----| insns[5] insns[3] insns[4] <--- i/insn insns[5] Second interesting case is where we cross pos-boundary and the jump instruction was after pos. Backward jump with i == pos would be impossible and pose a bug somewhere in the patchlet, so the first condition checking i > pos is okay only by itself. However, i + insn->off + 1 < pos does not always work as intended to trigger the adjustment. It works when jump targets would be far off where the delta wouldn't matter. But, for example, where the fixed insn->off before pointed to pos (target_Y), it now points to pos + delta, so that additional room needs to be taken into account for the check. This means that i) both tests here need to be adjusted into pos + delta, and ii) for the second condition, the test needs to be <= as pos itself can be a target in the backjump, too. Fixes: 9bac3d6d548e ("bpf: allow extended BPF programs access skb fields") Signed-off-by: Daniel Borkmann Signed-off-by: David S. Miller kernel/bpf/verifier.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 74c7b2af37ad431c3b69961a5cdbd0a92292c92a Merge: 4e54169 ff84dab Author: Linus Torvalds Date: Wed Feb 10 12:21:57 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input Pull input updates from Dmitry Torokhov: "Just small driver fixups" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: colibri-vf50-ts - add missing #include Input: adp5589 - fix row 5 handling for adp5589 Input: edt-ft5x06 - fix setting gain, offset, and threshold via device tree Input: vmmouse - fix absolute device registration Input: serio - drop warnings in case of EPROBE_DEFER from serio_find_driver() Input: cap11xx - add missing of_node_put Input: sirfsoc-onkey - allow modular build Input: xpad - remove unused function commit 4e54169986d5197cc51ee1069922364c9a92d1be Merge: fb0dc5f 342decf Author: Linus Torvalds Date: Wed Feb 10 12:04:59 2016 -0800 Merge branch 'for-4.5-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata Pull libata fixes from Tejun Heo: - PORTS_IMPL workaround for very early ahci controllers is misbehaving on new systems. Disabled on recent ahci versions. - Old-style PIO state machine had a horrible locking problem. Don't know how we've been getting away this far. Fixed. - Other device specific updates. * 'for-4.5-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata: ahci: Intel DNV device IDs SATA libata: fix sff host state machine locking while polling libata-sff: use WARN instead of BUG on illegal host state machine state libata: disable forced PORTS_IMPL for >= AHCI 1.3 libata: blacklist a Viking flash model for MWDMA corruption drivers: ata: wake port before DMA stop for ALPM commit fb0dc5f129bc2d4763bdc237b8df0e1708c03e1e Merge: 9aece75 9a2ddda Author: Linus Torvalds Date: Wed Feb 10 11:36:19 2016 -0800 Merge branch 'for-4.5-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup Pull cgroup fixes from Tejun Heo: - The destruction path of cgroup objects are asynchronous and multi-staged and some of them ended up destroying parents before children leading to failures in cpu and memory controllers. Ensure that parents are always destroyed after children. - cpuset mm node migration was performed synchronously while holding threadgroup and cgroup mutexes and the recent threadgroup locking update resulted in a possible deadlock. The migration is best effort and shouldn't have been performed under those locks to begin with. Made asynchronous. - Minor documentation fix. * 'for-4.5-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: Documentation: cgroup: Fix 'cgroup-legacy' -> 'cgroup-v1' cgroup: make sure a parent css isn't freed before its children cgroup: make sure a parent css isn't offlined before its children cpuset: make mm migration asynchronous commit f11aec0d7c835c3b83e74e3fd60d2e48a850c857 Merge: 733f4c7 2256b8d 61c4a1a ee43a1a f5ede8d 6bb7451 Author: Mark Brown Date: Wed Feb 10 19:23:09 2016 +0000 Merge remote-tracking branches 'asoc/fix/rt5659', 'asoc/fix/sigmadsp', 'asoc/fix/simple', 'asoc/fix/wm5110' and 'asoc/fix/wm8960' into asoc-linus commit 733f4c79deac86d5a509f130638a2a5a18a943ea Merge: cf0d6dd 9954859 ec3995d f212c6d f5f76ea 6d514c7 Author: Mark Brown Date: Wed Feb 10 19:23:07 2016 +0000 Merge remote-tracking branches 'asoc/fix/imx-spdif', 'asoc/fix/mtk', 'asoc/fix/mxs-saif', 'asoc/fix/qcom' and 'asoc/fix/rt286' into asoc-linus commit cf0d6dd9d3b48ac91c6eff472877ea961692aa19 Merge: 97b0d5c cde6bcd 01582a8 5e82d2b d2f916a 2935bf4 5c408fe Author: Mark Brown Date: Wed Feb 10 19:23:04 2016 +0000 Merge remote-tracking branches 'asoc/fix/amd', 'asoc/fix/arizona', 'asoc/fix/dpcm', 'asoc/fix/dwc', 'asoc/fix/fsl' and 'asoc/fix/fsl-ssi' into asoc-linus commit 97b0d5c9b22dd1531139538a3c0b2f6102f3237e Merge: 6719f65 b28785f Author: Mark Brown Date: Wed Feb 10 19:23:03 2016 +0000 Merge remote-tracking branch 'asoc/fix/rt5645' into asoc-linus commit 6719f657e420600443f1a78dcd987c82ece1f473 Merge: 7ff60f5 8ceffd2 Author: Mark Brown Date: Wed Feb 10 19:23:02 2016 +0000 Merge remote-tracking branch 'asoc/fix/intel-kconfig' into asoc-linus commit 7ff60f58e244a4f74589f5c5af1a1f5d4db227c3 Merge: 2022d24 38c079e Author: Mark Brown Date: Wed Feb 10 19:23:02 2016 +0000 Merge remote-tracking branch 'asoc/fix/intel' into asoc-linus commit 2022d24e2bc03639da2630b7299d723bf88fc487 Merge: 388f7b1 41d8002 Author: Mark Brown Date: Wed Feb 10 19:23:01 2016 +0000 Merge remote-tracking branch 'asoc/fix/dapm' into asoc-linus commit 01582a841493f28caf1688b2af4dafbcbee8135e Author: Richard Fitzgerald Date: Wed Feb 10 11:56:13 2016 +0000 ASoC: arizona: fref must be limited in pseudo-fractional mode When the FLL is in pseudo-fractional mode there is an additional limit on fref based on the fratio, to prevent aliasing around the Nyquist frequency. If fref exceeds this limit the refclk divider must be increased and the calculation tried again until a suitable combination of fref and fratio is found or we have to fall back to integer mode. This patch also adds some debug log prints around this code. Signed-off-by: Richard Fitzgerald Signed-off-by: Mark Brown sound/soc/codecs/arizona.c | 43 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) commit cc1de6e800c253172334f8774c419dc64401cd2e Author: Christian König Date: Mon Feb 8 10:57:22 2016 +0100 drm/amdgpu: fix issue with overlapping userptrs Otherwise we could try to evict overlapping userptr BOs in get_user_pages(), leading to a possible circular locking dependency. Signed-off-by: Christian König Acked-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c | 3 ++- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 19 +++++++++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) commit f6ff4f67cdf8455d0a4226eeeaf5af17c37d05eb Author: Nicolai Hähnle Date: Fri Feb 5 14:35:53 2016 -0500 drm/radeon: hold reference to fences in radeon_sa_bo_new An arbitrary amount of time can pass between spin_unlock and radeon_fence_wait_any, so we need to ensure that nobody frees the fences from under us. Based on the analogous fix for amdgpu. Signed-off-by: Nicolai Hähnle Reviewed-by: Christian König Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/radeon_sa.c | 5 +++++ 1 file changed, 5 insertions(+) commit b19763d0d867eb863953500a5c87f2fd663863b8 Author: Nicolai Hähnle Date: Fri Feb 5 10:49:50 2016 -0500 drm/amdgpu: remove unnecessary forward declaration Signed-off-by: Nicolai Hähnle Reviewed-by: Alex Deucher Reviewed-by: Christian König Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 -- 1 file changed, 2 deletions(-) commit a8d81b36267366603771431747438d18f32ae2d5 Author: Nicolai Hähnle Date: Fri Feb 5 10:59:43 2016 -0500 drm/amdgpu: hold reference to fences in amdgpu_sa_bo_new (v2) An arbitrary amount of time can pass between spin_unlock and fence_wait_any_timeout, so we need to ensure that nobody frees the fences from under us. A stress test (rapidly starting and killing hundreds of glxgears instances) ran into a deadlock in fence_wait_any_timeout after about an hour, and this race condition appears to be a plausible cause. v2: agd: rebase on upstream Signed-off-by: Nicolai Hähnle Reviewed-by: Alex Deucher Reviewed-by: Christian König Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit ca19852884c8937eed89560f924f5a34cfcc22af Author: Flora Cui Date: Thu Feb 4 15:10:08 2016 +0800 drm/amdgpu: fix s4 resume No need to re-init asic if it's already been initialized. Skip IB tests since kernel processes are frozen in thaw. Signed-off-by: Flora Cui Reviewed-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 9aece75c138d93bde79a2baeb9187a1109b4e952 Merge: 2178cbc d6e022f Author: Linus Torvalds Date: Wed Feb 10 11:04:05 2016 -0800 Merge branch 'for-4.5-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq Pull workqueue fixes from Tejun Heo: "Workqueue fixes for v4.5-rc3. - Remove a spurious triggering of flush dependency warning. - Officially break local execution guarantee of unbound work items and add a debug feature to flush out usages which depend on it. - Work around CPU -> NODE mapping becoming invalid on CPU offline. The branch is young but pushing out early as stable kernels are being affected" * 'for-4.5-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: workqueue: handle NUMA_NO_NODE for unbound pool_workqueue lookup workqueue: implement "workqueue.debug_force_rr_cpu" debug feature workqueue: schedule WORK_CPU_UNBOUND work on wq_unbound_cpumask CPUs Revert "workqueue: make sure delayed work run in local cpu" workqueue: skip flush dependency checks for legacy workqueues commit 61c4a1ac4d900e743af0b363fe520405939eab47 Author: Pascal Huerst Date: Wed Feb 10 15:59:28 2016 +0100 ASoC: sigmadsp: Fix missleading return value Forwarding the return value of i2c_master_send, leads to errors later on, since i2c_master_send returns the number of bytes transmittet. Check for ret < 0 instead and return 0 otherwise. Signed-off-by: Pascal Huerst Acked-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/sigmadsp-i2c.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit df9cd56421635433ee42798fdf09138367039732 Author: Linus Walleij Date: Wed Feb 3 14:47:08 2016 +0100 clk: versatile: mask VCO bits before writing The Versatile syscon ICST driver OR:s the bits into place but forgets to mask the previous value, making the code only work if the register is zero or giving haphazard results. Mask the 19 bits used by the Versatile syscon interface register. Regression caused and now fixed by yours truly. Cc: Michael Turquette Cc: Stephen Boyd Cc: linux-clk@vger.kernel.org Fixes: 179c8fb3c2a6 ("clk: versatile-icst: convert to use regmap") Signed-off-by: Linus Walleij Signed-off-by: Stephen Boyd drivers/clk/versatile/clk-icst.c | 3 +++ 1 file changed, 3 insertions(+) commit d6e022f1d207a161cd88e08ef0371554680ffc46 Author: Tejun Heo Date: Wed Feb 3 13:54:25 2016 -0500 workqueue: handle NUMA_NO_NODE for unbound pool_workqueue lookup When looking up the pool_workqueue to use for an unbound workqueue, workqueue assumes that the target CPU is always bound to a valid NUMA node. However, currently, when a CPU goes offline, the mapping is destroyed and cpu_to_node() returns NUMA_NO_NODE. This has always been broken but hasn't triggered often enough before 874bbfe600a6 ("workqueue: make sure delayed work run in local cpu"). After the commit, workqueue forcifully assigns the local CPU for delayed work items without explicit target CPU to fix a different issue. This widens the window where CPU can go offline while a delayed work item is pending causing delayed work items dispatched with target CPU set to an already offlined CPU. The resulting NUMA_NO_NODE mapping makes workqueue try to queue the work item on a NULL pool_workqueue and thus crash. While 874bbfe600a6 has been reverted for a different reason making the bug less visible again, it can still happen. Fix it by mapping NUMA_NO_NODE to the default pool_workqueue from unbound_pwq_by_node(). This is a temporary workaround. The long term solution is keeping CPU -> NODE mapping stable across CPU off/online cycles which is being worked on. Signed-off-by: Tejun Heo Reported-by: Mike Galbraith Cc: Tang Chen Cc: Rafael J. Wysocki Cc: Len Brown Cc: stable@vger.kernel.org Link: http://lkml.kernel.org/g/1454424264.11183.46.camel@gmail.com Link: http://lkml.kernel.org/g/1453702100-2597-1-git-send-email-tangchen@cn.fujitsu.com kernel/workqueue.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 342decff2b846b46fa61eb5ee40986fab79a9a32 Author: Alexandra Yates Date: Fri Feb 5 15:27:49 2016 -0800 ahci: Intel DNV device IDs SATA Adding Intel codename DNV platform device IDs for SATA. Signed-off-by: Alexandra Yates Signed-off-by: Tejun Heo Cc: stable@vger.kernel.org drivers/ata/ahci.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit ed8b0de5a33d2a2557dce7f9429dca8cb5bc5879 Author: Peter Jones Date: Mon Feb 8 14:48:15 2016 -0500 efi: Make efivarfs entries immutable by default "rm -rf" is bricking some peoples' laptops because of variables being used to store non-reinitializable firmware driver data that's required to POST the hardware. These are 100% bugs, and they need to be fixed, but in the mean time it shouldn't be easy to *accidentally* brick machines. We have to have delete working, and picking which variables do and don't work for deletion is quite intractable, so instead make everything immutable by default (except for a whitelist), and make tools that aren't quite so broad-spectrum unset the immutable flag. Signed-off-by: Peter Jones Tested-by: Lee, Chun-Yi Acked-by: Matthew Garrett Signed-off-by: Matt Fleming Documentation/filesystems/efivarfs.txt | 7 +++ drivers/firmware/efi/vars.c | 87 +++++++++++++++++++------- fs/efivarfs/file.c | 70 +++++++++++++++++++++ fs/efivarfs/inode.c | 30 +++++---- fs/efivarfs/internal.h | 3 +- fs/efivarfs/super.c | 9 ++- include/linux/efi.h | 2 + tools/testing/selftests/efivarfs/efivarfs.sh | 19 +++++- tools/testing/selftests/efivarfs/open-unlink.c | 72 ++++++++++++++++++++- 9 files changed, 258 insertions(+), 41 deletions(-) commit 8282f5d9c17fe15a9e658c06e3f343efae1a2a2f Author: Peter Jones Date: Mon Feb 8 14:48:14 2016 -0500 efi: Make our variable validation list include the guid All the variables in this list so far are defined to be in the global namespace in the UEFI spec, so this just further ensures we're validating the variables we think we are. Including the guid for entries will become more important in future patches when we decide whether or not to allow deletion of variables based on presence in this list. Signed-off-by: Peter Jones Tested-by: Lee, Chun-Yi Acked-by: Matthew Garrett Signed-off-by: Matt Fleming drivers/firmware/efi/efivars.c | 5 ++-- drivers/firmware/efi/vars.c | 52 +++++++++++++++++++++++++++--------------- include/linux/efi.h | 3 ++- 3 files changed, 38 insertions(+), 22 deletions(-) commit 0ad4ece5bbd4d2104564c7dbd477ae0c729d4fcc Author: Emmanuel Grumbach Date: Wed Feb 10 18:13:30 2016 +0200 iwlwifi: dvm: remove a wrong dependency on m This was wronly added when the dependency on IWLWIFI was removed. This fixes https://bugzilla.kernel.org/show_bug.cgi?id=112201 Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/Kconfig | 1 - 1 file changed, 1 deletion(-) commit ed3f9fd1e865975ceefdb2a43b453e090b1fd787 Author: Rasmus Villemoes Date: Tue Feb 9 21:11:13 2016 +0100 drm/i915: fix error path in intel_setup_gmbus() This fails to undo the setup for pin==0; moreover, something interesting happens if the setup failed already at pin==0. Signed-off-by: Rasmus Villemoes Fixes: f899fc64cda8 ("drm/i915: use GMBUS to manage i2c links") Cc: stable@vger.kernel.org Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1455048677-19882-3-git-send-email-linux@rasmusvillemoes.dk (cherry picked from commit 2417c8c03f508841b85bf61acc91836b7b0e2560) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_i2c.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e04a28d45ff343b47a4ffc4dee3a3e279e76ddfa Author: Will Deacon Date: Wed Feb 10 16:05:28 2016 +0000 arm64: debug: re-enable irqs before sending breakpoint SIGTRAP force_sig_info can sleep under an -rt kernel, so attempting to send a breakpoint SIGTRAP with interrupts disabled yields the following BUG: BUG: sleeping function called from invalid context at /kernel-source/kernel/locking/rtmutex.c:917 in_atomic(): 0, irqs_disabled(): 128, pid: 551, name: test.sh CPU: 5 PID: 551 Comm: test.sh Not tainted 4.1.13-rt13 #7 Hardware name: Freescale Layerscape 2085a RDB Board (DT) Call trace: dump_backtrace+0x0/0x128 show_stack+0x24/0x30 dump_stack+0x80/0xa0 ___might_sleep+0x128/0x1a0 rt_spin_lock+0x2c/0x40 force_sig_info+0xcc/0x210 brk_handler.part.2+0x6c/0x80 brk_handler+0xd8/0xe8 do_debug_exception+0x58/0xb8 This patch fixes the problem by ensuring that interrupts are enabled prior to sending the SIGTRAP if they were already enabled in the user context. Reported-by: Yang Shi Signed-off-by: Will Deacon arch/arm64/kernel/debug-monitors.c | 48 +++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 26 deletions(-) commit 39748841a719c9b4ca41cedc299ca7605a22051c Author: Lyude Date: Thu Feb 4 10:43:21 2016 -0500 drm/i915/skl: Fix typo in DPLL_CFGCR1 definition We accidentally point both cfgcr registers for the second shared DPLL to the same location in i915_reg.h. This results in a lot of hw pipe state mismatches whenever we try to do a modeset that requires allocating the DPLL to a CRTC: [drm:intel_pipe_config_compare [i915]] *ERROR* mismatch in dpll_hw_state.cfgcr1 (expected 0x80000168, found 0x000004a5) [drm:intel_pipe_config_compare [i915]] *ERROR* mismatch in base.adjusted_mode.crtc_clock (expected 108000, found 49500) [drm:intel_pipe_config_compare [i915]] *ERROR* mismatch in port_clock (expected 108000, found 49500) This usually ends up causing blank monitors, since the DPLL never can get set to the right clock. Fixes: 086f8e84a085 ("drm/i915: Prefix raw register defines with underscore") Signed-off-by: Lyude Cc: drm-intel-fixes@lists.freedesktop.org Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1454600601-21900-1-git-send-email-cpaul@redhat.com (cherry picked from commit da3b891b0fb88605bb2d16adaf1ef2a1f16403ba) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_reg.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a32ef81c9889c9554a3c4b465c4ee7b2d26c6b10 Author: Chris Paterson Date: Wed Feb 10 14:07:01 2016 +0000 mmc: sh_mmcif: Correct TX DMA channel allocation Commit 27cbd7e815a8 ("mmc: sh_mmcif: rework dma channel handling") introduced a typo causing the TX DMA channel allocation to be overwritten by the requested RX DMA channel. Fixes: 27cbd7e815a8 ("mmc: sh_mmcif: rework dma channel handling") Signed-off-by: Chris Paterson Acked-by: Laurent Pinchart Acked-by: Arnd Bergmann Signed-off-by: Ulf Hansson drivers/mmc/host/sh_mmcif.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3d849b02336be103d312c1574d6f7314d5c0bc9f Author: Lyude Date: Tue Feb 2 10:49:43 2016 -0500 drm/i915/skl: Don't skip mst encoders in skl_ddi_pll_select() We don't actually check for INTEL_OUTPUT_DP_MST at all in here, as a result we skip assigning a DPLL to any DP MST ports, which makes link training fail: [ 1442.933896] [drm:intel_power_well_enable] enabling DDI D power well [ 1442.933905] [drm:skl_set_power_well] Enabling DDI D power well [ 1442.933957] [drm:intel_mst_pre_enable_dp] 0 [ 1442.935474] [drm:intel_dp_set_signal_levels] Using signal levels 00000000 [ 1442.935477] [drm:intel_dp_set_signal_levels] Using vswing level 0 [ 1442.935480] [drm:intel_dp_set_signal_levels] Using pre-emphasis level 0 [ 1442.936190] [drm:intel_dp_set_signal_levels] Using signal levels 05000000 [ 1442.936193] [drm:intel_dp_set_signal_levels] Using vswing level 1 [ 1442.936195] [drm:intel_dp_set_signal_levels] Using pre-emphasis level 1 [ 1442.936858] [drm:intel_dp_set_signal_levels] Using signal levels 08000000 [ 1442.936862] [drm:intel_dp_set_signal_levels] Using vswing level 2 … [ 1442.998253] [drm:intel_dp_link_training_clock_recovery [i915]] *ERROR* too many full retries, give up [ 1442.998512] [drm:intel_dp_start_link_train [i915]] *ERROR* failed to train DP, aborting After which the pipe state goes completely out of sync: [ 70.075596] [drm:check_crtc_state] [CRTC:25] [ 70.075696] [drm:intel_pipe_config_compare [i915]] *ERROR* mismatch in ddi_pll_sel (expected 0x00000000, found 0x00000001) [ 70.075747] [drm:intel_pipe_config_compare [i915]] *ERROR* mismatch in shared_dpll (expected -1, found 0) [ 70.075798] [drm:intel_pipe_config_compare [i915]] *ERROR* mismatch in dpll_hw_state.ctrl1 (expected 0x00000000, found 0x00000021) [ 70.075840] [drm:intel_pipe_config_compare [i915]] *ERROR* mismatch in dpll_hw_state.cfgcr1 (expected 0x00000000, found 0x80400173) [ 70.075884] [drm:intel_pipe_config_compare [i915]] *ERROR* mismatch in dpll_hw_state.cfgcr2 (expected 0x00000000, found 0x000003a5) [ 70.075954] [drm:intel_pipe_config_compare [i915]] *ERROR* mismatch in base.adjusted_mode.crtc_clock (expected 262750, found 72256) [ 70.075999] [drm:intel_pipe_config_compare [i915]] *ERROR* mismatch in port_clock (expected 540000, found 148500) And if you're especially lucky, it keeps going downhill: [ 83.309256] Kernel panic - not syncing: Timeout: Not all CPUs entered broadcast exception handler [ 83.309265] [ 83.309265] ================================= [ 83.309266] [ INFO: inconsistent lock state ] [ 83.309267] 4.5.0-rc1Lyude-Test #265 Not tainted [ 83.309267] --------------------------------- [ 83.309268] inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage. [ 83.309270] Xorg/1194 [HC0[1]:SC0[0]:HE1:SE1] takes: [ 83.309293] (&(&dev_priv->uncore.lock)->rlock){?.-...}, at: [] gen9_write32+0x63/0x400 [i915] [ 83.309293] {IN-HARDIRQ-W} state was registered at: [ 83.309297] [] __lock_acquire+0x9c4/0x1d00 [ 83.309299] [] lock_acquire+0xce/0x1c0 [ 83.309302] [] _raw_spin_lock_irqsave+0x56/0x90 [ 83.309321] [] gen9_read32+0x52/0x3d0 [i915] [ 83.309332] [] gen8_irq_handler+0x27a/0x6a0 [i915] [ 83.309337] [] handle_irq_event_percpu+0x41/0x300 [ 83.309339] [] handle_irq_event+0x39/0x60 [ 83.309341] [] handle_edge_irq+0x74/0x130 [ 83.309344] [] handle_irq+0x73/0x120 [ 83.309346] [] do_IRQ+0x61/0x120 [ 83.309348] [] ret_from_intr+0x0/0x20 [ 83.309351] [] cpuidle_enter_state+0x105/0x330 [ 83.309353] [] cpuidle_enter+0x17/0x20 [ 83.309356] [] call_cpuidle+0x2a/0x50 [ 83.309358] [] cpu_startup_entry+0x26d/0x3a0 [ 83.309360] [] rest_init+0x13a/0x140 [ 83.309363] [] start_kernel+0x475/0x482 [ 83.309365] [] x86_64_start_reservations+0x2a/0x2c [ 83.309367] [] x86_64_start_kernel+0x13b/0x14a Fixes: 82d354370189 ("drm/i915/skl: Implementation of SKL DPLL programming") Signed-off-by: Lyude Cc: stable@vger.kernel.org Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1454428183-994-1-git-send-email-cpaul@redhat.com (cherry picked from commit 78385cb398748debb7ea2e36d6d2001830c172bc) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_ddi.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit b96d6a80c95815fd01e99a239cd515fc05e5f867 Author: Zubair Lutfullah Kakakhel Date: Wed Feb 10 13:56:25 2016 +0000 MIPS: Octeon: Update OCTEON_FEATURE_PCIE for Octeon III Currently the driver tries to probe the pci driver and oops. Add CN7XXX to case so that driver probes the pcie driver. Signed-off-by: Zubair Lutfullah Kakakhel Cc: david.daney@cavium.com Cc: matt.redfearn@imgtec.com Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/12530/ Signed-off-by: Ralf Baechle arch/mips/include/asm/octeon/octeon-feature.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 33bee520cbaee22118fb96ab500ba4cd4e8cb749 Author: Enrico Jorns Date: Tue Nov 24 16:29:22 2015 +0100 drm/imx: Add missing DRM_FORMAT_RGB565 to ipu_plane_formats DRM_FORMAT_RGB565 is missing from ipu_plane_formats. The support is there, just need to make it available to userspace. Signed-off-by: Enrico Jorns Signed-off-by: Philipp Zabel drivers/gpu/drm/imx/ipuv3-plane.c | 1 + 1 file changed, 1 insertion(+) commit 6c8b66ed0aaf888bfa2545796bf769c1c4593d58 Author: Lucas Stach Date: Tue Nov 3 12:02:17 2015 +0100 drm/imx: notify DRM core about CRTC vblank state Make sure the DRM core is aware that there will be no vblank interrupts incoming if the CRTC is disabled. That way the core will reject any attempts from userspace to wait on a vblank event on a disabled CRTC. Signed-off-by: Lucas Stach Signed-off-by: Philipp Zabel drivers/gpu/drm/imx/ipuv3-crtc.c | 2 ++ 1 file changed, 2 insertions(+) commit 596a65d152fdc777ee7a2c7cbea9a7916350bed1 Author: David Jander Date: Thu Jul 2 16:21:57 2015 +0200 gpu: ipu-v3: Reset IPU before activating IRQ If we don't come out of a clean reset, make sure no IRQ is fired before everything is setup by resetting the IPU before activating the interrupt handlers. Signed-off-by: David Jander Signed-off-by: Philipp Zabel drivers/gpu/ipu-v3/ipu-common.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 17e0521750399205f432966e602e125294879cdd Author: Philipp Zabel Date: Mon Jan 4 17:32:26 2016 +0100 gpu: ipu-v3: Do not bail out on missing optional port nodes The port nodes are documented as optional, treat them accordingly. Reported-by: Martin Fuzzey Reported-by: Chris Healy Signed-off-by: Philipp Zabel Fixes: 304e6be652e2 ("gpu: ipu-v3: Assign of_node of child platform devices to corresponding ports") drivers/gpu/ipu-v3/ipu-common.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) commit 3dcb1f55dfc7631695e69df4a0d589ce5274bd07 Author: Peter Jones Date: Mon Feb 8 14:48:13 2016 -0500 efi: Do variable name validation tests in utf8 Actually translate from ucs2 to utf8 before doing the test, and then test against our other utf8 data, instead of fudging it. Signed-off-by: Peter Jones Acked-by: Matthew Garrett Tested-by: Lee, Chun-Yi Signed-off-by: Matt Fleming drivers/firmware/efi/vars.c | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) commit e0d64e6a880e64545ad7d55786aa84ab76bac475 Author: Peter Jones Date: Mon Feb 8 14:48:12 2016 -0500 efi: Use ucs2_as_utf8 in efivarfs instead of open coding a bad version Translate EFI's UCS-2 variable names to UTF-8 instead of just assuming all variable names fit in ASCII. Signed-off-by: Peter Jones Acked-by: Matthew Garrett Tested-by: Lee, Chun-Yi Signed-off-by: Matt Fleming drivers/firmware/efi/efivars.c | 30 +++++++++++------------------- fs/efivarfs/super.c | 7 +++---- 2 files changed, 14 insertions(+), 23 deletions(-) commit 73500267c930baadadb0d02284909731baf151f7 Author: Peter Jones Date: Mon Feb 8 14:48:11 2016 -0500 lib/ucs2_string: Add ucs2 -> utf8 helper functions This adds ucs2_utf8size(), which tells us how big our ucs2 string is in bytes, and ucs2_as_utf8, which translates from ucs2 to utf8.. Signed-off-by: Peter Jones Tested-by: Lee, Chun-Yi Acked-by: Matthew Garrett Signed-off-by: Matt Fleming include/linux/ucs2_string.h | 4 +++ lib/ucs2_string.c | 62 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) commit b888d232142c0ac111c7e82d1731c6fbd56fc1fe Author: Anton Protopopov Date: Sun Feb 7 02:27:32 2016 -0200 [media] media: i2c/adp1653: probe: fix erroneous return value The adp1653_probe() function may return positive value EINVAL which is obviously wrong. Signed-off-by: Anton Protopopov Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/adp1653.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4f388a9210e2a2c1cd83a5580b74aa13876dbf14 Author: Wei Yongjun Date: Fri Feb 5 11:52:00 2016 -0200 [media] media: davinci_vpfe: fix missing unlock on error in vpfe_prepare_pipeline() Add the missing unlock before return from function vpfe_prepare_pipeline() in the error handling case. video->lock is lock/unlock in function vpfe_open(), and no need to unlock it here, so remove unlock video->lock. Signed-off-by: Wei Yongjun Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/davinci_vpfe/vpfe_video.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1902750b50757804775d56a1cfc9f827f734e755 Merge: 461547f 7e05915 Author: David S. Miller Date: Wed Feb 10 05:50:16 2016 -0500 Merge branch 'ovs-tunnel-mtu' David Wragg says: ==================== Set a large MTU on ovs-created tunnel devices Prior to 4.3, openvswitch tunnel vports (vxlan, gre and geneve) could transmit vxlan packets of any size, constrained only by the ability to send out the resulting packets. 4.3 introduced netdevs corresponding to tunnel vports. These netdevs have an MTU, which limits the size of a packet that can be successfully encapsulated. The default MTU values are low (1500 or less), which is awkwardly small in the context of physical networks supporting jumbo frames, and leads to a conspicuous change in behaviour for userspace. This patch series sets the MTU on openvswitch-created netdevs to be the relevant maximum (i.e. the maximum IP packet size minus any relevant overhead), effectively restoring the behaviour prior to 4.3. Where relevant, the limits on MTU values that can be directly set on the netdevs are also relaxed. Changes in v2: * Extend to all openvswitch tunnel types, i.e. gre and geneve as well * Use IP_MAX_MTU Changes in v3: * Fix block comment style ==================== Signed-off-by: David S. Miller commit 7e059158d57b79159eaf1f504825d19866ef2c42 Author: David Wragg Date: Wed Feb 10 00:05:58 2016 +0000 vxlan, gre, geneve: Set a large MTU on ovs-created tunnel devices Prior to 4.3, openvswitch tunnel vports (vxlan, gre and geneve) could transmit vxlan packets of any size, constrained only by the ability to send out the resulting packets. 4.3 introduced netdevs corresponding to tunnel vports. These netdevs have an MTU, which limits the size of a packet that can be successfully encapsulated. The default MTU values are low (1500 or less), which is awkwardly small in the context of physical networks supporting jumbo frames, and leads to a conspicuous change in behaviour for userspace. Instead, set the MTU on openvswitch-created netdevs to be the relevant maximum (i.e. the maximum IP packet size minus any relevant overhead), effectively restoring the behaviour prior to 4.3. Signed-off-by: David Wragg Signed-off-by: David S. Miller drivers/net/geneve.c | 18 ++++++++++++++---- drivers/net/vxlan.c | 11 ++++++++--- include/net/ip_tunnels.h | 1 + net/ipv4/ip_gre.c | 8 ++++++++ net/ipv4/ip_tunnel.c | 20 +++++++++++++++++--- net/openvswitch/vport-vxlan.c | 2 ++ 6 files changed, 50 insertions(+), 10 deletions(-) commit 55e5bfb53cff286c1c1ff49f51325dc15c7fea63 Author: David Wragg Date: Wed Feb 10 00:05:57 2016 +0000 geneve: Relax MTU constraints Allow the MTU of geneve devices to be set to large values, in order to exploit underlying networks with larger frame sizes. GENEVE does not have a fixed encapsulation overhead (an openvswitch rule can add variable length options), so there is no relevant maximum MTU to enforce. A maximum of IP_MAX_MTU is used instead. Encapsulated packets that are too big for the underlying network will get dropped on the floor. Signed-off-by: David Wragg Signed-off-by: David S. Miller drivers/net/geneve.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) commit 72564b59ffc438ea103b0727a921aaddce766728 Author: David Wragg Date: Wed Feb 10 00:05:55 2016 +0000 vxlan: Relax MTU constraints Allow the MTU of vxlan devices without an underlying device to be set to larger values (up to a maximum based on IP packet limits and vxlan overhead). Previously, their MTUs could not be set to higher than the conventional ethernet value of 1500. This is a very arbitrary value in the context of vxlan, and prevented vxlan devices from being able to take advantage of jumbo frames etc. The default MTU remains 1500, for compatibility. Signed-off-by: David Wragg Acked-by: Roopa Prabhu Signed-off-by: David S. Miller drivers/net/vxlan.c | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) commit 6ec9249a83b00a754af435ed57ad02ffed105d93 Author: Lokesh Vutla Date: Thu Jan 28 19:08:51 2016 +0530 gpio: davinci: Fix the number of controllers allocated Driver only needs to allocate for [ngpio / 32] controllers, as each controller handles 32 gpios. But the current driver allocates for ngpio of which the extra allocated are unused. Fix it be registering only the required number of controllers. Signed-off-by: Lokesh Vutla Signed-off-by: Keerthy Reviewed-by: Grygorii Strashko Signed-off-by: Linus Walleij drivers/gpio/gpio-davinci.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 310a7e60435151ccab6dc4bc64b4b3a93b89c0d1 Author: Keerthy Date: Thu Jan 28 19:08:50 2016 +0530 gpio: davinci: Add the missing of-node pointer Currently the first parameter of irq_domain_add_legacy is NULL. irq_find_host function returns NULL when we do not populate the of_node and hence irq_of_parse_and_map call fails whenever we want to request a gpio irq. This fixes the request_irq failures for gpio interrupts. Signed-off-by: Keerthy Reviewed-by: Grygorii Strashko Signed-off-by: Linus Walleij drivers/gpio/gpio-davinci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit aaa0bf22cb84c7b29c814f3fcf3951c747b904d6 Author: Wei Yongjun Date: Sat Feb 6 22:24:19 2016 +0800 MIPS: pci-mt7620: Fix return value check in mt7620_pci_probe() In case of error, the function devm_ioremap_resource() returns ERR_PTR() and never returns NULL. The NULL test in the return value check should be replaced with IS_ERR(). Signed-off-by: Wei Yongjun Acked-by: John Crispin Cc: Matthias Brugger Cc: linux-mips@linux-mips.org Cc: linux-mediatek@lists.infradead.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/12451/ Signed-off-by: Ralf Baechle arch/mips/pci/pci-mt7620.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 232f5dd78586a684a7364a486b934e19384189dc Author: Heiko Carstens Date: Tue Feb 9 12:03:31 2016 +0100 s390/oprofile: fix address range for asynchronous stack git commit dc7ee00d4771 ("s390: lowcore stack pointer offsets") introduced a regression in regard to s390_backtrace(). The stack pointer for the asynchronous stack in the lowcore now has an additional offset applied. This offset needs to be taken into account in the calculation for the low and high address for the stack. This bug was already partially fixed with commit 9cc5c206d9b4 ("s390/dumpstack: fix address ranges for asynchronous and panic stack"). This patch fixes it also for the oprofile code. Fixes: dc7ee00d4771 ("s390: lowcore stack pointer offsets") Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/oprofile/backtrace.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 1f8cbb9c8365061d8b866e9b4f4403e029d57989 Author: Heiko Carstens Date: Tue Feb 9 12:00:16 2016 +0100 s390/perf_event: fix address range for asynchronous stack git commit dc7ee00d4771 ("s390: lowcore stack pointer offsets") introduced a regression in regard to perf_callchain_kernel(). The stack pointer for the asynchronous stack in the lowcore now has an additional offset applied. This offset needs to be taken into account in the calculation for the low and high address for the stack. This bug was already partially fixed with 9cc5c206d9b4 ("s390/dumpstack: fix address ranges for asynchronous and panic stack"). This patch fixes it also for the perf_event code. Fixes: dc7ee00d4771 ("s390: lowcore stack pointer offsets") Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/kernel/perf_event.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit e0115875c04548255212ebd7dbd90bdbe1257f48 Author: Pratyush Anand Date: Fri Jan 29 10:50:28 2016 +0530 s390/stacktrace: add save_stack_trace_regs() Implement save_stack_trace_regs, so that a stack trace of a kprobe event can be obtained. Without this we see following warning: "save_stack_trace_regs() not implemented yet." when we execute: echo stacktrace > /sys/kernel/debug/tracing/trace_options echo "p kfree" >> /sys/kernel/debug/tracing/kprobe_events echo 1 > /sys/kernel/debug/tracing/events/kprobes/enable Reported-by: Chunyu Hu Signed-off-by: Pratyush Anand [heiko.carstens@de.ibm.com]: changed patch to use __save_stack_trace() Signed-off-by: Heiko Carstens Tested-by: Peter Oberparleiter Signed-off-by: Martin Schwidefsky arch/s390/kernel/stacktrace.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 66adce8f1f9f3bcd743a0e72c10aa850df8c5fa7 Author: Heiko Carstens Date: Mon Feb 1 14:14:04 2016 +0100 s390/stacktrace: save full stack traces save_stack_trace() only saves the stack trace of the current context (interrupt or process context). This is different to what other architectures like x86 do, which save the full stack trace across different contexts. Also extract a __save_stack_trace() helper function which will be used by a follow on patch. Signed-off-by: Heiko Carstens Tested-by: Peter Oberparleiter Signed-off-by: Martin Schwidefsky arch/s390/kernel/stacktrace.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) commit f6331aaccbd980a49bff1559d66abcbd46af5b0a Author: Heiko Carstens Date: Mon Feb 1 14:06:57 2016 +0100 s390/stacktrace: add missing end marker save_stack_trace() did not write the ULONG_MAX end marker if there is enough space left. So simply follow x86 and arm64. Signed-off-by: Heiko Carstens Tested-by: Peter Oberparleiter Signed-off-by: Martin Schwidefsky arch/s390/kernel/stacktrace.c | 2 ++ 1 file changed, 2 insertions(+) commit 9900c48c46d8bcf497972024c5fe366e6d9771f3 Author: Heiko Carstens Date: Mon Feb 1 10:13:05 2016 +0100 s390/stacktrace: fix address ranges for asynchronous and panic stack git commit dc7ee00d4771 ("s390: lowcore stack pointer offsets") introduced a regression in regard to save_stack_trace(). The stack pointer for the asynchronous and the panic stack in the lowcore now have an additional offset applied to them. This offset needs to be taken into account in the calculation for the low and high address for the stacks. This bug was already partially fixed with 9cc5c206d9b4 ("s390/dumpstack: fix address ranges for asynchronous and panic stack"). This patch fixes it also for the stacktrace code. Fixes: dc7ee00d4771 ("s390: lowcore stack pointer offsets") Signed-off-by: Heiko Carstens Tested-by: Peter Oberparleiter Signed-off-by: Martin Schwidefsky arch/s390/kernel/stacktrace.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 665ca9187c4087736fa57b0e00bcf33ea601fb6f Author: Heiko Carstens Date: Sun Jan 31 14:23:30 2016 +0100 s390/stacktrace: fix save_stack_trace_tsk() for current task The function save_stack_trace_tsk() did not consider that it can be used for tsk == current, for which the current stack pointer obviously cannot be found in the thread structure. Fix this and get the stack pointer with an inline assembly. This fixes e.g. the output of "cat /proc/self/stack". Before: [<0000000000000000>] (null) [] 0xffffffffffffffff After: [<000000000011b3ee>] save_stack_trace_tsk+0x56/0x98 [<0000000000366cde>] proc_pid_stack+0xae/0x108 [<00000000003636f0>] proc_single_show+0x70/0xc0 [<0000000000311fbc>] seq_read+0xcc/0x448 [<00000000002e7716>] __vfs_read+0x36/0x100 [<00000000002e872e>] vfs_read+0x76/0x130 [<00000000002e975e>] SyS_read+0x66/0xd8 [<000000000089490e>] system_call+0xd6/0x264 [] 0xffffffffffffffff Signed-off-by: Heiko Carstens Tested-by: Peter Oberparleiter Signed-off-by: Martin Schwidefsky arch/s390/kernel/stacktrace.c | 4 ++++ 1 file changed, 4 insertions(+) commit f00ab14c252ac459e86194747a1f580ab503c954 Author: Olof Johansson Date: Tue Feb 9 09:34:30 2016 -0800 mmc: block: return error on failed mmc_blk_get() This used to return -EFAULT, but the function above returns -EINVAL on the same condition so let's stick to that. The removal of error return on this path was introduced with b093410c9aef ('mmc: block: copy resp[] data on err for MMC_IOC_MULTI_CMD'). Fixes: b093410c9aef ('mmc: block: copy resp[] data on err for MMC_IOC_MULTI_CMD'). Signed-off-by: Olof Johansson Cc: Grant Grundler Signed-off-by: Ulf Hansson drivers/mmc/card/block.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit fe0e2304f560f81c1673711ac3f9a8c7c3cbb8be Author: Stephan Olbrich Date: Tue Feb 9 19:10:32 2016 +0100 spi: bcm2835aux: fix bitmask defines The bitmasks for txempty and idle interrupts were interchanged. Signed-off-by: Stephan Olbrich Reviewed-by: Eric Anholt Signed-off-by: Mark Brown drivers/spi/spi-bcm2835aux.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 58a66dba1beac2121d931cda4682ae4d40816af5 Author: Tony Lindgren Date: Mon Nov 30 21:39:54 2015 -0800 phy: twl4030-usb: Fix unbalanced pm_runtime_enable on module reload If we reload phy-twl4030-usb, we get a warning about unbalanced pm_runtime_enable. Let's fix the issue and also fix idling of the device on unload before we attempt to shut it down. If we don't properly idle the PHY before shutting it down on removal, the twl4030 ends up consuming about 62mW of extra power compared to running idle with the module loaded. Cc: stable@vger.kernel.org Cc: Bin Liu Cc: Felipe Balbi Cc: Kishon Vijay Abraham I Cc: NeilBrown Signed-off-by: Tony Lindgren Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-twl4030-usb.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit b241d31ef2f6a289d33dcaa004714b26e06f476f Author: Tony Lindgren Date: Mon Nov 30 21:39:53 2015 -0800 phy: twl4030-usb: Relase usb phy on unload Otherwise rmmod omap2430; rmmod phy-twl4030-usb; modprobe omap2430 will try to use a non-existing phy and oops: Unable to handle kernel paging request at virtual address b6f7c1f0 ... [] (devm_usb_get_phy_by_node) from [] (omap2430_musb_init+0x44/0x2b4 [omap2430]) [] (omap2430_musb_init [omap2430]) from [] (musb_init_controller+0x194/0x878 [musb_hdrc]) Cc: stable@vger.kernel.org Cc: Bin Liu Cc: Felipe Balbi Cc: Kishon Vijay Abraham I Cc: NeilBrown Signed-off-by: Tony Lindgren Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-twl4030-usb.c | 1 + 1 file changed, 1 insertion(+) commit b82fcabe212a11698fd4b3e604d2f81d929d22f6 Author: Shawn Lin Date: Thu Jan 28 16:14:18 2016 +0800 phy: core: fix wrong err handle for phy_power_on If phy_pm_runtime_get_sync failed but we already enable regulator, current code return directly without doing regulator_disable. This patch fix this problem and cleanup err handle of phy_power_on to be more readable. Fixes: 3be88125d85d ("phy: core: Support regulator ...") Cc: # v3.18+ Cc: Roger Quadros Cc: Axel Lin Signed-off-by: Shawn Lin Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-core.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit fb2d65d28918ef4f0caa1de3d8c7416949c28b41 Author: Todd Fujinaka Date: Tue Feb 9 21:02:07 2016 -0500 SCSI: Add Marvell configuration device to VPD blacklist The Marvell 91xx configuration device also needs to be on the VPD blacklist. [mkp: Match all revisions] Signed-off-by: Todd Fujinaka Signed-off-by: Martin K. Petersen drivers/scsi/scsi_devinfo.c | 1 + 1 file changed, 1 insertion(+) commit dec2b2849cfccf09822d6ce3f9bc84b8c8611152 Author: Vineet Gupta Date: Sun Feb 7 12:54:35 2016 +0530 ARCv2: intc: Allow interruption by lowest priority interrupt ARC HS Cores support configurable multiple interrupt priorities of upto 16 levels. There is processor "interrupt preemption threshhold" in STATUS32.E[4:1] And several places need to set this up: 1. seed value as kernel is booting 2. seed value for user space programs 3. Arg to SLEEP instruction in idle task (what interrupt prio can wake) 4. Per-IRQ line prioirty (i.e. what is the priority of interrupt raised by a peripheral or timer or perf counter... Currently above sites use the highest priority 0. This can be potential problem when multiple priorities are supported. e.g. user space could only be interrupted by P0 interrupt, not others... So turn this over and instead make default interruption level to be the lowest priority possible 15. This should be fine even if there are fewer priority levels configured (say two: P0 HIGH, P1 LOW) This feature also effectively disables FIRQ feature if present in hardware config. With old code, a P0 interrupt would be FIRQ, needing special handling (ISR or Register Banks) which is NOT supported yet. Now it not be P0 (P15 or whatever is lowest prio) so FIRQ is not triggered. Signed-off-by: Vineet Gupta arch/arc/include/asm/irqflags-arcv2.h | 7 ++++-- arch/arc/kernel/intc-arcv2.c | 41 ++++++++++++++++++++--------------- 2 files changed, 29 insertions(+), 19 deletions(-) commit 2178cbc68f3602dc0b5949b9be2c8383ad3d93ef Merge: 7cf91ad 8244062 Author: Linus Torvalds Date: Tue Feb 9 16:40:59 2016 -0800 Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux Pull module fixes from Rusty Russell: "Fix for async_probe module param added in 4.3 (clearly not widely used yet), and a much more interesting kallsyms race which has been around approximately forever. This fix is more invasive, and will require some care in backporting, but I hated all the bandaids I could think of, so... There are some more coming, which are only for breakages introduced this cycle (livepatch), but wanted these in now" * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux: modules: fix longstanding /proc/kallsyms vs module insertion race. module: wrapper for symbol name. modules: fix modparam async_probe request commit ff84dabe3c6ebba517086e1161145d70ff129665 Author: Geert Uytterhoeven Date: Tue Feb 9 10:32:53 2016 -0800 Input: colibri-vf50-ts - add missing #include drivers/input/touchscreen/colibri-vf50-ts.c: In function ‘vf50_ts_probe’: drivers/input/touchscreen/colibri-vf50-ts.c:302: error: implicit declaration of function ‘of_property_read_u32’ Signed-off-by: Geert Uytterhoeven Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/colibri-vf50-ts.c | 1 + 1 file changed, 1 insertion(+) commit 7008dafb02c858411d70b82c3aeb40f93b93c67a Author: Lars-Peter Clausen Date: Tue Feb 9 09:35:33 2016 -0800 Input: adp5589 - fix row 5 handling for adp5589 The adp5589 has row 5, don't skip it when creating the GPIO mapping. Otherwise the pin gets reserved as used and it is not possible to use it as a GPIO. Signed-off-by: Lars-Peter Clausen Acked-by: Michael Hennerich Signed-off-by: Dmitry Torokhov drivers/input/keyboard/adp5589-keys.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit dc262dfaaeda7617ae0b15b5ce1252a6cd102b19 Author: Philipp Zabel Date: Tue Feb 9 09:32:42 2016 -0800 Input: edt-ft5x06 - fix setting gain, offset, and threshold via device tree A recent patch broke parsing the gain, offset, and threshold parameters from device tree. Instead of setting the cached values and writing them to the correct registers during probe, it would write the values from DT into the register address variables and never write them to the chip during normal operation. Fixes: 2e23b7a96372 ("Input: edt-ft5x06 - use generic properties API") Signed-off-by: Philipp Zabel Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/edt-ft5x06.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) commit f303fccb82928790ec58eea82722bd5c54d300b3 Author: Tejun Heo Date: Tue Feb 9 17:59:38 2016 -0500 workqueue: implement "workqueue.debug_force_rr_cpu" debug feature Workqueue used to guarantee local execution for work items queued without explicit target CPU. The guarantee is gone now which can break some usages in subtle ways. To flush out those cases, this patch implements a debug feature which forces round-robin CPU selection for all such work items. The debug feature defaults to off and can be enabled with a kernel parameter. The default can be flipped with a debug config option. If you hit this commit during bisection, please refer to 041bd12e272c ("Revert "workqueue: make sure delayed work run in local cpu"") for more information and ping me. Signed-off-by: Tejun Heo Documentation/kernel-parameters.txt | 11 +++++++++++ kernel/workqueue.c | 23 +++++++++++++++++++++-- lib/Kconfig.debug | 15 +++++++++++++++ 3 files changed, 47 insertions(+), 2 deletions(-) commit ef557180447fa9a7a0affd3abb21ecceb4b5e125 Author: Mike Galbraith Date: Tue Feb 9 17:59:38 2016 -0500 workqueue: schedule WORK_CPU_UNBOUND work on wq_unbound_cpumask CPUs WORK_CPU_UNBOUND work items queued to a bound workqueue always run locally. This is a good thing normally, but not when the user has asked us to keep unbound work away from certain CPUs. Round robin these to wq_unbound_cpumask CPUs instead, as perturbation avoidance trumps performance. tj: Cosmetic and comment changes. WARN_ON_ONCE() dropped from empty (wq_unbound_cpumask AND cpu_online_mask). If we want that, it should be done when config changes. Signed-off-by: Mike Galbraith Signed-off-by: Tejun Heo kernel/workqueue.c | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) commit 26716ce124fce88f288f07738ef685d5dfe5c13f Author: Arnd Bergmann Date: Mon Jan 25 17:44:12 2016 +0100 thermal: allow u8500-thermal driver to be a module When the thermal subsystem is a loadable module, the u8500 driver fails to build: drivers/thermal/built-in.o: In function `db8500_thermal_probe': db8500_thermal.c:(.text+0x96c): undefined reference to `thermal_zone_device_register' drivers/thermal/built-in.o: In function `db8500_thermal_work': db8500_thermal.c:(.text+0xab4): undefined reference to `thermal_zone_device_update' This changes the symbol to a tristate, so Kconfig can track the dependency correctly. Signed-off-by: Arnd Bergmann Signed-off-by: Eduardo Valentin drivers/mfd/db8500-prcmu.c | 3 +++ drivers/thermal/Kconfig | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) commit 4d2f1794c07aae55b8f25f4d8aebcafc0d3e501d Author: Arnd Bergmann Date: Mon Jan 25 17:44:11 2016 +0100 thermal: allow spear-thermal driver to be a module When the thermal subsystem is a loadable module, the spear driver fails to build: drivers/thermal/built-in.o: In function `spear_thermal_exit': spear_thermal.c:(.text+0xf8): undefined reference to `thermal_zone_device_unregister' drivers/thermal/built-in.o: In function `spear_thermal_probe': spear_thermal.c:(.text+0x230): undefined reference to `thermal_zone_device_register' This changes the symbol to a tristate, so Kconfig can track the dependency correctly. Signed-off-by: Arnd Bergmann Signed-off-by: Eduardo Valentin drivers/thermal/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d612c64d1f4d6b2464993dfeafd9ec319f774188 Author: Arnd Bergmann Date: Mon Jan 25 17:44:10 2016 +0100 thermal: spear: use __maybe_unused for PM functions The spear thermal driver hides its suspend/resume function conditionally based on CONFIG_PM, but references them based on CONFIG_PM_SLEEP, so we get a warning if the former is set but the latter is not: thermal/spear_thermal.c:58:12: warning: 'spear_thermal_suspend' defined but not used [-Wunused-function] thermal/spear_thermal.c:75:12: warning: 'spear_thermal_resume' defined but not used [-Wunused-function] This removes the #ifdef and instead uses a __maybe_uninitialized annotation to avoid the warning and improve compile-time coverage. Signed-off-by: Arnd Bergmann Signed-off-by: Eduardo Valentin drivers/thermal/spear_thermal.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 397da2d0ab0d1398242622d80a74df7245395c63 Merge: b8cb375 4dff5c7 Author: Takashi Iwai Date: Tue Feb 9 23:08:37 2016 +0100 Merge branch 'topic/core-fixes' into for-linus commit 8b477ea56383dc8b838f1f8b506e4571c14ceb30 Author: Kuninori Morimoto Date: Thu Jan 28 02:45:08 2016 +0000 thermal: rcar: enable to use thermal-zone on DT This patch enables to use thermal-zone on DT if it was calles as "renesas,rcar-thermal-gen2". Previous style (= non thermal-zone) is still supported by "renesas,rcar-thermal" to keep compatibility for "git bisect". Signed-off-by: Kuninori Morimoto Signed-off-by: Eduardo Valentin .../devicetree/bindings/thermal/rcar-thermal.txt | 37 +++++++++++++++++- drivers/thermal/rcar_thermal.c | 45 +++++++++++++++++++--- 2 files changed, 75 insertions(+), 7 deletions(-) commit 42bbe400fbef6283a28227ea262a1145b27e957f Author: Laxman Dewangan Date: Mon Feb 8 18:58:34 2016 +0530 thermal: of: use for_each_available_child_of_node for child iterator Use for_each_available_child_of_node() for iterating over each available child instead of iterating over each child and then checking their status. Signed-off-by: Laxman Dewangan Signed-off-by: Eduardo Valentin drivers/thermal/of-thermal.c | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) commit 041bd12e272c53a35c54c13875839bcb98c999ce Author: Tejun Heo Date: Tue Feb 9 16:11:26 2016 -0500 Revert "workqueue: make sure delayed work run in local cpu" This reverts commit 874bbfe600a660cba9c776b3957b1ce393151b76. Workqueue used to implicity guarantee that work items queued without explicit CPU specified are put on the local CPU. Recent changes in timer broke the guarantee and led to vmstat breakage which was fixed by 176bed1de5bf ("vmstat: explicitly schedule per-cpu work on the CPU we need it to run on"). vmstat is the most likely to expose the issue and it's quite possible that there are other similar problems which are a lot more difficult to trigger. As a preventive measure, 874bbfe600a6 ("workqueue: make sure delayed work run in local cpu") was applied to restore the local CPU guarnatee. Unfortunately, the change exposed a bug in timer code which got fixed by 22b886dd1018 ("timers: Use proper base migration in add_timer_on()"). Due to code restructuring, the commit couldn't be backported beyond certain point and stable kernels which only had 874bbfe600a6 started crashing. The local CPU guarantee was accidental more than anything else and we want to get rid of it anyway. As, with the vmstat case fixed, 874bbfe600a6 is causing more problems than it's fixing, it has been decided to take the chance and officially break the guarantee by reverting the commit. A debug feature will be added to force foreign CPU assignment to expose cases relying on the guarantee and fixes for the individual cases will be backported to stable as necessary. Signed-off-by: Tejun Heo Fixes: 874bbfe600a6 ("workqueue: make sure delayed work run in local cpu") Link: http://lkml.kernel.org/g/20160120211926.GJ10810@quack.suse.cz Cc: stable@vger.kernel.org Cc: Mike Galbraith Cc: Henrique de Moraes Holschuh Cc: Daniel Bilik Cc: Jan Kara Cc: Shaohua Li Cc: Sasha Levin Cc: Ben Hutchings Cc: Thomas Gleixner Cc: Daniel Bilik Cc: Jiri Slaby Cc: Michal Hocko kernel/workqueue.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 39a169b62b415390398291080dafe63aec751e0a Author: Roman Pen Date: Tue Feb 9 12:33:35 2016 -0700 block: fix module reference leak on put_disk() call for cgroups throttle get_disk(),get_gendisk() calls have non explicit side effect: they increase the reference on the disk owner module. The following is the correct sequence how to get a disk reference and to put it: disk = get_gendisk(...); /* use disk */ owner = disk->fops->owner; put_disk(disk); module_put(owner); fs/block_dev.c is aware of this required module_put() call, but f.e. blkg_conf_finish(), which is located in block/blk-cgroup.c, does not put a module reference. To see a leakage in action cgroups throttle config can be used. In the following script I'm removing throttle for /dev/ram0 (actually this is NOP, because throttle was never set for this device): # lsmod | grep brd brd 5175 0 # i=100; while [ $i -gt 0 ]; do echo "1:0 0" > \ /sys/fs/cgroup/blkio/blkio.throttle.read_bps_device; i=$(($i - 1)); \ done # lsmod | grep brd brd 5175 100 Now brd module has 100 references. The issue is fixed by calling module_put() just right away put_disk(). Signed-off-by: Roman Pen Cc: Gi-Oh Kim Cc: Tejun Heo Cc: Jens Axboe Cc: linux-block@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jens Axboe block/blk-cgroup.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 7cf91adc0d38eb6cc8517ae45126ca7440177e61 Merge: b64e86c 8a3978a Author: Linus Torvalds Date: Tue Feb 9 10:15:16 2016 -0800 Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 Pull crypto fixes from Herbert Xu: "This fixes the following issues: API: - Fix async algif_skcipher, it was broken by recent fixes. - Fix potential race condition in algif_skcipher with ctx. - Fix potential memory corruption in algif_skcipher. - Add missing lock to crypto_user when doing an alg dump. Drivers: - marvell/cesa was testing the wrong variable for NULL after allocation. - Fix potential double-free in atmel-sha. - Fix illegal call to sleepin function from atomic context in atmel-sha" * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: crypto: marvell/cesa - fix test in mv_cesa_dev_dma_init() crypto: atmel-sha - remove calls of clk_prepare() from atomic contexts crypto: atmel-sha - fix atmel_sha_remove() crypto: algif_skcipher - Do not set MAY_BACKLOG on the async path crypto: algif_skcipher - Do not dereference ctx without socket lock crypto: algif_skcipher - Do not assume that req is unchanged crypto: user - lock crypto_alg_list on alg dump commit b64e86cdf6a9d772c47b8e594dd173b86270fd1b Author: J. Bruce Fields Date: Wed Jul 10 16:54:34 2013 -0400 scripts: add "prune-kernel" script to clean up old kernel images Long ago, Dave Jones complained about CONFIG_LOCALVERSION_AUTO: "I don't use the auto config, because I end up filling up /boot unless I go through and clean them out by hand every time I install a new one (which I do probably a dozen or so times a day). Is there some easy way to prune old builds I'm missing?" To which Bruce replied: "I run this by hand every now and then. I'm probably doing it all wrong" And if he is running it wrong, then so am I - because I've been using this script ever since. It is true that CONFIG_LOCALVERSION_AUTO easily ends up filling your /boot partition if you don't clean up old versions regularly, and this script helps make that easier. Checked with Bruce to see that it's fine to add this to the kernel scripts. Maybe people will come up with enhancements, but more importantly, this way I won't misplace this script whenever I install a new machine and start doing custom kernels for it. Signed-off-by: Linus Torvalds scripts/prune-kernel | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit bcaf669b4bdbad09888df086d266a34e293ace85 Author: Yang Shi Date: Mon Feb 8 09:13:09 2016 -0800 arm64: disable kasan when accessing frame->fp in unwind_frame When boot arm64 kernel with KASAN enabled, the below error is reported by kasan: BUG: KASAN: out-of-bounds in unwind_frame+0xec/0x260 at addr ffffffc064d57ba0 Read of size 8 by task pidof/499 page:ffffffbdc39355c0 count:0 mapcount:0 mapping: (null) index:0x0 flags: 0x0() page dumped because: kasan: bad access detected CPU: 2 PID: 499 Comm: pidof Not tainted 4.5.0-rc1 #119 Hardware name: Freescale Layerscape 2085a RDB Board (DT) Call trace: [] dump_backtrace+0x0/0x290 [] show_stack+0x24/0x30 [] dump_stack+0x8c/0xd8 [] kasan_report_error+0x558/0x588 [] kasan_report+0x60/0x70 [] __asan_load8+0x60/0x78 [] unwind_frame+0xec/0x260 [] get_wchan+0x110/0x160 [] do_task_stat+0xb44/0xb68 [] proc_tgid_stat+0x40/0x50 [] proc_single_show+0x88/0xd8 [] seq_read+0x370/0x770 [] __vfs_read+0xc8/0x1d8 [] vfs_read+0x94/0x168 [] SyS_read+0xb8/0x128 [] el0_svc_naked+0x24/0x28 Memory state around the buggy address: ffffffc064d57a80: 00 00 00 00 00 00 00 00 f1 f1 f1 f1 00 00 f4 f4 ffffffc064d57b00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >ffffffc064d57b80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ^ ffffffc064d57c00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ffffffc064d57c80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Since the shadow byte pointed by the report is 0, so it may mean it is just hit oob in non-current task. So, disable the instrumentation to silence these warnings. Acked-by: Andrey Ryabinin Signed-off-by: Yang Shi Signed-off-by: Will Deacon arch/arm64/kernel/stacktrace.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 21d147880e4895e645f890904784b079f1ba76f4 Author: Christoph Hellwig Date: Tue Feb 9 10:21:22 2016 -0700 nvme: fix Kconfig description for BLK_DEV_NVME_SCSI Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/nvme/host/Kconfig | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit d57d611505d911c6f9f81cd9bd6dbd293d66dd9f Author: Stephane Gasparini Date: Tue Feb 9 17:07:38 2016 +0100 kernel/fs: fix I/O wait not accounted for RW O_DSYNC When a process is doing Random Write with O_DSYNC flag the I/O wait are not accounted in the kernel (get_cpu_iowait_time_us). This is preventing the governor or the cpufreq driver to account for I/O wait and thus use the right pstate Signed-off-by: Stephane Gasparini Signed-off-by: Philippe Longepe Signed-off-by: Jens Axboe block/bio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3af5a67c86a30f8cd8bfd6202709be21cedd2756 Author: Paul Burton Date: Mon Feb 8 09:46:31 2016 -0800 MIPS: Fix early CM probing Commit c014d164f21d ("MIPS: Add platform callback before initializing the L2 cache") added a platform_early_l2_init function in order to allow platforms to probe for the CM before L2 initialisation is performed, so that CM GCRs are available to mips_sc_probe. That commit actually fails to do anything useful, since it checks mips_cm_revision to determine whether it should call mips_cm_probe but the result of mips_cm_revision will always be 0 until mips_cm_probe has been called. Thus the "early" mips_cm_probe call never occurs. Fix this & drop the useless weak platform_early_l2_init function by simply calling mips_cm_probe from setup_arch. For platforms that don't select CONFIG_MIPS_CM this will be a no-op, and for those that do it removes the requirement for them to call mips_cm_probe manually (although doing so isn't harmful for now). Signed-off-by: Paul Burton Reviewed-by: Alexander Sverdlin Cc: Andrzej Hajda Cc: Aaro Koskinen Cc: Masahiro Yamada Cc: Rob Herring Cc: Peter Hurley Cc: Leonid Yegoshin Cc: Jaedon Shin Cc: James Hogan Cc: Jonas Gorski Cc: Markos Chandras Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/12475/ Signed-off-by: Ralf Baechle arch/mips/kernel/setup.c | 1 + arch/mips/mm/sc-mips.c | 10 ---------- arch/mips/mti-malta/malta-init.c | 8 -------- 3 files changed, 1 insertion(+), 18 deletions(-) commit 461547f3158978c180d74484d58e82be9b8e7357 Author: Alexander Duyck Date: Tue Feb 9 02:49:54 2016 -0800 flow_dissector: Fix unaligned access in __skb_flow_dissector when used by eth_get_headlen This patch fixes an issue with unaligned accesses when using eth_get_headlen on a page that was DMA aligned instead of being IP aligned. The fact is when trying to check the length we don't need to be looking at the flow label so we can reorder the checks to first check if we are supposed to gather the flow label and then make the call to actually get it. v2: Updated path so that either STOP_AT_FLOW_LABEL or KEY_FLOW_LABEL can cause us to check for the flow label. Reported-by: Sowmini Varadhan Signed-off-by: Alexander Duyck Signed-off-by: David S. Miller net/core/flow_dissector.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 4dff5c7b7093b19c19d3a100f8a3ad87cb7cd9e7 Author: Takashi Iwai Date: Mon Feb 8 17:26:58 2016 +0100 ALSA: timer: Fix race at concurrent reads snd_timer_user_read() has a potential race among parallel reads, as qhead and qused are updated outside the critical section due to copy_to_user() calls. Move them into the critical section, and also sanitize the relevant code a bit. Cc: Signed-off-by: Takashi Iwai sound/core/timer.c | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) commit b8cb3750ce94d7610934465263850dcf40736bca Author: Geert Uytterhoeven Date: Sun Feb 7 15:14:15 2016 +0100 ALSA: firewire-digi00x: Drop bogus const type qualifier on dot_scrt() sound/firewire/digi00x/amdtp-dot.c:67: warning: type qualifiers ignored on function return type Drop the bogus "const" type qualifier on the return type of dot_scrt() to fix this. Signed-off-by: Geert Uytterhoeven Reviewed-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/digi00x/amdtp-dot.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2ebab40eb74a0225d5dfba72bfae317dd948fa2d Author: Takashi Iwai Date: Tue Feb 9 10:23:52 2016 +0100 ALSA: hda - Fix bad dereference of jack object The hda_jack_tbl entries are managed by snd_array for allowing multiple jacks. It's good per se, but the problem is that struct hda_jack_callback keeps the hda_jack_tbl pointer. Since snd_array doesn't preserve each pointer at resizing the array, we can't keep the original pointer but have to deduce the pointer at each time via snd_array_entry() instead. Actually, this resulted in the deference to the wrong pointer on codecs that have many pins such as CS4208. This patch replaces the pointer to the NID value as the search key. As an unexpected good side effect, this even simplifies the code, as only NID is needed in most cases. Cc: Signed-off-by: Takashi Iwai sound/pci/hda/hda_generic.c | 4 ++-- sound/pci/hda/hda_jack.c | 2 +- sound/pci/hda/hda_jack.h | 2 +- sound/pci/hda/patch_ca0132.c | 5 ++++- sound/pci/hda/patch_hdmi.c | 2 +- sound/pci/hda/patch_realtek.c | 2 +- sound/pci/hda/patch_sigmatel.c | 6 +++--- 7 files changed, 13 insertions(+), 10 deletions(-) commit ed8b1d6d2c741ab26d60d499d7fbb7ac801f0f51 Author: Takashi Iwai Date: Tue Feb 9 12:02:32 2016 +0100 ALSA: timer: Fix race between stop and interrupt A slave timer element also unlinks at snd_timer_stop() but it takes only slave_active_lock. When a slave is assigned to a master, however, this may become a race against the master's interrupt handling, eventually resulting in a list corruption. The actual bug could be seen with a syzkaller fuzzer test case in BugLink below. As a fix, we need to take timeri->timer->lock when timer isn't NULL, i.e. assigned to a master, while the assignment to a master itself is protected by slave_active_lock. BugLink: http://lkml.kernel.org/r/CACT4Y+Y_Bm+7epAb=8Wi=AaWd+DYS7qawX52qxdCfOfY49vozQ@mail.gmail.com Cc: Signed-off-by: Takashi Iwai sound/core/timer.c | 4 ++++ 1 file changed, 4 insertions(+) commit f5a952c08e842cb06eb5c65947ced9b5128a62ee Author: Aaro Koskinen Date: Wed Feb 3 21:35:29 2016 +0200 of: of_mdio: Add marvell, 88e1145 to whitelist of PHY compatibilities. Commit ae461131960b ("of: of_mdio: Add a whitelist of PHY compatibilities.") missed one compatible string used in in-tree DTBs: in OCTEON, for selected boards, the kernel DTB pruning code will overwrite the DTB compatible string with "marvell,88e1145", which is missing from the whitelist. Add it. The patch fixes broken networking on EdgeRouter Lite. Fixes: ae461131960b ("of: of_mdio: Add a whitelist of PHY compatibilities.") Signed-off-by: Aaro Koskinen Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller drivers/of/of_mdio.c | 1 + 1 file changed, 1 insertion(+) commit 44361a2cc13493fc41216d33bb9a562ec3a9cc4e Author: Roger Shimizu Date: Sat Feb 6 14:59:51 2016 +0900 ARM: dts: orion5x: fix the missing mtd flash on linkstation lswtgl MTD flash stores u-boot and u-boot environment on linkstation lswtgl. The latter one can be easily read/write by u-boot-tools package in Debian. Fixes: dc57844a736f ("ARM: dts: orion5x: add buffalo linkstation ls-wtgl") Signed-off-by: Roger Shimizu Reviewed-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts | 31 ++++++++++++++++++++++++ 1 file changed, 31 insertions(+) commit 9d021c9d1b4b774a35d8a03d58dbf029544debda Author: Heinrich Schuchardt Date: Sun Feb 7 19:34:26 2016 +0100 ARM: dts: kirkwood: use unique machine name for ds112 Downstream packages like Debian flash-kernel use /proc/device-tree/model to determine which dtb file to install. Hence each dts in the Linux kernel should provide a unique model identifier. Commit 2d0a7addbd10 ("ARM: Kirkwood: Add support for many Synology NAS devices") created the new files kirkwood-ds111.dts and kirkwood-ds112.dts using the same model identifier. This patch provides a unique model identifier for the Synology DiskStation DS112. Fixes: 2d0a7addbd10 ("ARM: Kirkwood: Add support for many Synology NAS devices") Signed-off-by: Heinrich Schuchardt Reviewed-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/kirkwood-ds112.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8a5fd56431fe1682e870bd6ab0c276e74befbeb9 Author: Dmitry Vyukov Date: Thu Feb 4 14:40:40 2016 +0100 locking/lockdep: Fix stack trace caching logic check_prev_add() caches saved stack trace in static trace variable to avoid duplicate save_trace() calls in dependencies involving trylocks. But that caching logic contains a bug. We may not save trace on first iteration due to early return from check_prev_add(). Then on the second iteration when we actually need the trace we don't save it because we think that we've already saved it. Let check_prev_add() itself control when stack is saved. There is another bug. Trace variable is protected by graph lock. But we can temporary release graph lock during printing. Fix this by invalidating cached stack trace when we release graph lock. Signed-off-by: Dmitry Vyukov Cc: Andrew Morton Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: glider@google.com Cc: kcc@google.com Cc: peter@hurleysoftware.com Cc: sasha.levin@oracle.com Link: http://lkml.kernel.org/r/1454593240-121647-1-git-send-email-dvyukov@google.com Signed-off-by: Ingo Molnar kernel/locking/lockdep.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit 08ff924e7fa7b826396f5ef1cb15656db7fb6545 Author: Lorenzo Colitti Date: Thu Feb 4 01:17:12 2016 +0900 selinux: nlmsgtab: add SOCK_DESTROY to the netlink mapping tables Without this, using SOCK_DESTROY in enforcing mode results in: SELinux: unrecognized netlink message type=21 for sclass=32 Signed-off-by: Lorenzo Colitti Signed-off-by: David S. Miller security/selinux/nlmsgtab.c | 1 + 1 file changed, 1 insertion(+) commit 7a84bd46647ff181eb2659fdc99590e6f16e501d Author: Xin Long Date: Wed Feb 3 23:33:30 2016 +0800 sctp: translate network order to host order when users get a hmacid Commit ed5a377d87dc ("sctp: translate host order to network order when setting a hmacid") corrected the hmacid byte-order when setting a hmacid. but the same issue also exists on getting a hmacid. We fix it by changing hmacids to host order when users get them with getsockopt. Fixes: Commit ed5a377d87dc ("sctp: translate host order to network order when setting a hmacid") Signed-off-by: Xin Long Acked-by: Marcelo Ricardo Leitner Signed-off-by: David S. Miller net/sctp/socket.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit ca7f41a4957b872577807169bd7464b36aae9b9c Author: Sandeep Pillai Date: Wed Feb 3 14:40:44 2016 +0530 enic: increment devcmd2 result ring in case of timeout Firmware posts the devcmd result in result ring. In case of timeout, driver does not increment the current result pointer and firmware could post the result after timeout has occurred. During next devcmd, driver would be reading the result of previous devcmd. Fix this by incrementing result even in case of timeout. Fixes: 373fb0873d43 ("enic: add devcmd2") Signed-off-by: Sandeep Pillai Signed-off-by: Govindarajulu Varadarajan <_govind@gmx.com> Signed-off-by: David S. Miller drivers/net/ethernet/cisco/enic/enic.h | 2 +- drivers/net/ethernet/cisco/enic/vnic_dev.c | 19 ++++++++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) commit b7d987295c74500b733a0ba07f9a9bcc4074fa83 Author: Siva Reddy Kallam Date: Wed Feb 3 14:09:38 2016 +0530 tg3: Fix for tg3 transmit queue 0 timed out when too many gso_segs tg3_tso_bug() can hit a condition where the entire tx ring is not big enough to segment the GSO packet. For example, if MSS is very small, gso_segs can exceed the tx ring size. When we hit the condition, it will cause tx timeout. tg3_tso_bug() is called to handle TSO and DMA hardware bugs. For TSO bugs, if tg3_tso_bug() cannot succeed, we have to drop the packet. For DMA bugs, we can still fall back to linearize the SKB and let the hardware transmit the TSO packet. This patch adds a function tg3_tso_bug_gso_check() to check if there are enough tx descriptors for GSO before calling tg3_tso_bug(). The caller will then handle the error appropriately - drop or lineraize the SKB. v2: Corrected patch description to avoid confusion. Signed-off-by: Siva Reddy Kallam Signed-off-by: Michael Chan Acked-by: Prashant Sreedharan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/tg3.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) commit 5f74f82ea34c0da80ea0b49192bb5ea06e063593 Author: Hans Westgaard Ry Date: Wed Feb 3 09:26:57 2016 +0100 net:Add sysctl_max_skb_frags Devices may have limits on the number of fragments in an skb they support. Current codebase uses a constant as maximum for number of fragments one skb can hold and use. When enabling scatter/gather and running traffic with many small messages the codebase uses the maximum number of fragments and may thereby violate the max for certain devices. The patch introduces a global variable as max number of fragments. Signed-off-by: Hans Westgaard Ry Reviewed-by: Håkon Bugge Acked-by: Eric Dumazet Signed-off-by: David S. Miller include/linux/skbuff.h | 1 + net/core/skbuff.c | 2 ++ net/core/sysctl_net_core.c | 10 ++++++++++ net/ipv4/tcp.c | 4 ++-- 4 files changed, 15 insertions(+), 2 deletions(-) commit e2e407dc093f530b771ee8bf8fe1be41e3cea8b3 Author: Matt Roper Date: Mon Feb 8 11:05:28 2016 -0800 drm/i915: Pretend cursor is always on for ILK-style WM calculations (v2) Due to our lack of two-step watermark programming, our driver has historically pretended that the cursor plane is always on for the purpose of watermark calculations; this helps avoid serious flickering when the cursor turns off/on (e.g., when the user moves the mouse pointer to a different screen). That workaround was accidentally dropped as we started working toward atomic watermark updates. Since we still aren't quite there yet with two-stage updates, we need to resurrect the workaround and treat the cursor as always active. v2: Tweak cursor width calculations slightly to more closely match the logic we used before the atomic overhaul began. (Ville) Cc: simdev11@outlook.com Cc: manfred.kitzbichler@gmail.com Cc: drm-intel-fixes@lists.freedesktop.org Reported-by: simdev11@outlook.com Reported-by: manfred.kitzbichler@gmail.com Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93892 Fixes: 43d59eda1 ("drm/i915: Eliminate usage of plane_wm_parameters from ILK-style WM code (v2)") Signed-off-by: Matt Roper Link: http://patchwork.freedesktop.org/patch/msgid/1454479611-6804-1-git-send-email-matthew.d.roper@intel.com (cherry picked from commit b2435692dbb709d4c8ff3b2f2815c9b8423b72bb) Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1454958328-30129-1-git-send-email-matthew.d.roper@intel.com drivers/gpu/drm/i915/intel_pm.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) commit 9cf7490360bf2c46a16b7525f899e4970c5fc144 Author: Eric Dumazet Date: Tue Feb 2 19:31:12 2016 -0800 tcp: do not drop syn_recv on all icmp reports Petr Novopashenniy reported that ICMP redirects on SYN_RECV sockets were leading to RST. This is of course incorrect. A specific list of ICMP messages should be able to drop a SYN_RECV. For instance, a REDIRECT on SYN_RECV shall be ignored, as we do not hold a dst per SYN_RECV pseudo request. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=111751 Fixes: 079096f103fa ("tcp/dccp: install syn_recv requests into ehash table") Reported-by: Petr Novopashenniy Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller include/net/tcp.h | 2 +- net/ipv4/tcp_ipv4.c | 11 ++++++++--- net/ipv6/tcp_ipv6.c | 5 +++-- 3 files changed, 12 insertions(+), 6 deletions(-) commit 0e954fea5be056d13945a124bdf2b7e358d1554d Merge: 60c7e2d 5a1d5ef Author: Stephen Boyd Date: Mon Feb 8 13:50:32 2016 -0800 Merge tag 'tegra-for-4.5-clk-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into clk-fixes Pull tegra fixes from Thierry Reding: clk: tegra: Fixes for v4.5-rc3 This set contains a bunch of miscellaneous fixes that have accumulated over the past couple of weeks, primarily for the Tegra210 support added in v4.5-rc1. * tag 'tegra-for-4.5-clk-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: clk: tegra: super: Fix sparse warnings for functions not declared as static clk: tegra: Fix sparse warnings for functions not declared as static clk: tegra: Fix sparse warning for pll_m clk: tegra: Use definition for pll_u override bit clk: tegra: Fix warning caused by pll_u failing to lock clk: tegra: Fix clock sources for Tegra210 EMC clk: tegra: Add the APB2APE audio clock on Tegra210 clk: tegra: Add missing of_node_put() clk: tegra: Fix PLLE SS coefficients clk: tegra: Fix typos around clearing PLLE bits during enable clk: tegra: Do not disable PLLE when under hardware control clk: tegra: Fix pllx dyn step calculation clk: tegra: pll: Fix potential sleeping-while-atomic clk: tegra: Fix the misnaming of nvenc from msenc clk: tegra: Fix naming of MISC registers clk: tegra: Remove improper flags for lock_enable clk: tegra: Fix divider on VI_I2C commit 50ab8ec74a153eb30db26529088bc57dd700b24c Author: Christoph Hellwig Date: Mon Feb 8 21:11:50 2016 +0100 nfs: fix nfs_size_to_loff_t See http: //www.infradead.org/rpr.html X-Evolution-Source: 1451162204.2173.11@leira.trondhjem.org Content-Transfer-Encoding: 8bit Mime-Version: 1.0 We support OFFSET_MAX just fine, so don't round down below it. Also switch to using min_t to make the helper more readable. Signed-off-by: Christoph Hellwig Fixes: 433c92379d9c ("NFS: Clean up nfs_size_to_loff_t()") Cc: stable@vger.kernel.org # 2.6.23+ Signed-off-by: Trond Myklebust include/linux/nfs_fs.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 765bdb406de4b6132e349c5d4e077866536a9cc0 Merge: 92e6edd afc6074 Author: Linus Torvalds Date: Mon Feb 8 10:32:30 2016 -0800 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm Pull KVM fixes from Paolo Bonzini: "KVM-ARM fixes, mostly coming from the PMU work" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: arm64: KVM: Fix guest dead loop when register accessor returns false arm64: KVM: Fix comments of the CP handler arm64: KVM: Fix wrong use of the CPSR MODE mask for 32bit guests arm64: KVM: Obey RES0/1 reserved bits when setting CPTR_EL2 arm64: KVM: Fix AArch64 guest userspace exception injection commit 92e6edd685a83f8fa922f3274c362a583deea784 Merge: 4ba6a2b 320549a Author: Linus Torvalds Date: Mon Feb 8 10:20:06 2016 -0800 Merge tag 'regmap-fix-v4.5-big-endian' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap Pull regmap fix from Mark Brown: "A single revert back to v4.4 endianness handling. Commit 29bb45f25ff3 ("regmap-mmio: Use native endianness for read/write") attempted to fix some long standing bugs in the MMIO implementation for big endian systems caused by duplicate byte swapping in both regmap and readl()/writel(). Sadly the fix makes things worse rather than better, so revert it for now" * tag 'regmap-fix-v4.5-big-endian' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap: regmap: mmio: Revert to v4.4 endianness handling commit 4ba6a2b28f111e4c9621487612056d10f3f4a6ca Author: Masahiro Yamada Date: Mon Feb 8 16:09:08 2016 +0900 scatterlist: fix a typo in comment block of sg_miter_stop() Fix the doubled "started" and tidy up the following sentences. Signed-off-by: Masahiro Yamada Signed-off-by: Linus Torvalds lib/scatterlist.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 52ba0746b3b44c86aee121babf3b2fd9b8f84090 Author: Ian Campbell Date: Mon Feb 8 16:02:06 2016 +0000 xen/arm: correctly handle DMA mapping of compound pages Currently xen_dma_map_page concludes that DMA to anything other than the head page of a compound page must be foreign, since the PFN of the page is that of the head. Fix the check to instead consider the whole of a compound page to be local if the PFN of the head passes the 1:1 check. We can never see a compound page which is a mixture of foreign and local sub-pages. The comment already correctly described the intention, but fixup the spelling and some grammar. This fixes the various SSH protocol errors which we have been seeing on the cubietrucks in our automated test infrastructure. This has been broken since commit 3567258d281b ("xen/arm: use hypercall to flush caches in map_page"), which was in v3.19-rc1. NB arch/arm64/.../xen/page-coherent.h also includes this file. Signed-off-by: Ian Campbell Reviewed-by: Stefano Stabellini Cc: xen-devel@lists.xenproject.org Cc: linux-arm-kernel@lists.infradead.org Cc: stable@vger.kernel.org # v3.19+ arch/arm/include/asm/xen/page-coherent.h | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) commit c9e2f531be000af652927ee0af3a0f24f8e9e046 Author: Juergen Gross Date: Mon Feb 8 15:30:19 2016 +0100 xen/scsiback: avoid warnings when adding multiple LUNs to a domain When adding more than one LUN to a frontend a warning for a failed assignment is issued in dom0 for each already existing LUN. Avoid this warning by checking for a LUN already existing when existence is allowed (scsiback_do_add_lun() called with try == 1). As the LUN existence check is needed now for a third time, factor it out into a function. This in turn leads to a more or less complete rewrite of scsiback_del_translation_entry() which will now return a proper error code in case of failure. Signed-off-by: Juergen Gross Reviewed-by: Boris Ostrovsky Signed-off-by: David Vrabel drivers/xen/xen-scsiback.c | 70 +++++++++++++++++++++++++++------------------- 1 file changed, 41 insertions(+), 29 deletions(-) commit f285aa8db7cc4432c1a03f8b55ff34fe96317c11 Author: Juergen Gross Date: Mon Feb 8 15:30:18 2016 +0100 xen/scsiback: correct frontend counting When adding a new frontend to xen-scsiback don't decrement the number of active frontends in case of no error. Doing so results in a failure when trying to remove the xen-pvscsi nexus even if no domain is using it. Signed-off-by: Juergen Gross Reviewed-by: Boris Ostrovsky Cc: stable@vger.kernel.org Signed-off-by: David Vrabel drivers/xen/xen-scsiback.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 5070fb14a0154f075c8b418e5bc58a620ae85a45 Author: Linus Walleij Date: Mon Feb 8 09:14:37 2016 +0100 ARM: 8517/1: ICST: avoid arithmetic overflow in icst_hz() When trying to set the ICST 307 clock to 25174000 Hz I ran into this arithmetic error: the icst_hz_to_vco() correctly figure out DIVIDE=2, RDW=100 and VDW=99 yielding a frequency of 25174000 Hz out of the VCO. (I replicated the icst_hz() function in a spreadsheet to verify this.) However, when I called icst_hz() on these VCO settings it would instead return 4122709 Hz. This causes an error in the common clock driver for ICST as the common clock framework will call .round_rate() on the clock which will utilize icst_hz_to_vco() followed by icst_hz() suggesting the erroneous frequency, and then the clock gets set to this. The error did not manifest in the old clock framework since this high frequency was only used by the CLCD, which calls clk_set_rate() without first calling clk_round_rate() and since the old clock framework would not call clk_round_rate() before setting the frequency, the correct values propagated into the VCO. After some experimenting I figured out that it was due to a simple arithmetic overflow: the divisor for 24Mhz reference frequency as reference becomes 24000000*2*(99+8)=0x132212400 and the "1" in bit 32 overflows and is lost. But introducing an explicit 64-by-32 bit do_div() and casting the divisor into (u64) we get the right frequency back, and the right frequency gets set. Tested on the ARM Versatile. Cc: stable@vger.kernel.org Cc: linux-clk@vger.kernel.org Cc: Pawel Moll Signed-off-by: Linus Walleij Signed-off-by: Russell King arch/arm/common/icst.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 117159f0b9d392fb433a7871426fad50317f06f7 Author: Takashi Iwai Date: Mon Feb 8 17:36:25 2016 +0100 ALSA: timer: Fix wrong instance passed to slave callbacks In snd_timer_notify1(), the wrong timer instance was passed for slave ccallback function. This leads to the access to the wrong data when an incompatible master is handled (e.g. the master is the sequencer timer and the slave is a user timer), as spotted by syzkaller fuzzer. This patch fixes that wrong assignment. BugLink: http://lkml.kernel.org/r/CACT4Y+Y_Bm+7epAb=8Wi=AaWd+DYS7qawX52qxdCfOfY49vozQ@mail.gmail.com Reported-by: Dmitry Vyukov Cc: Signed-off-by: Takashi Iwai sound/core/timer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit db5cffcd2bca5fafc4912446605101ec368d4d5f Author: Alex Deucher Date: Fri Feb 5 11:23:28 2016 -0500 drm/amdgpu/cz: plumb pg flags through to powerplay Enable vce and uvd pg based on single set of pg flags. Reviewed-by: Eric Huang Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 52b52a87814b4016bb324c0d1b45eb6e6f4cea3b Author: Alex Deucher Date: Fri Feb 5 11:11:51 2016 -0500 drm/amdgpu/tonga: plumb pg flags through to powerplay Enable vce and uvd pg based on single set of pg flags. Reviewed-by: Eric Huang Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit e3b04bc790ecd6d08d4699bc60b4f5a76f7f7b6b Author: Alex Deucher Date: Fri Feb 5 10:56:22 2016 -0500 drma/dmgpu: move cg and pg flags into shared headers So they can be used by powerplay. Reviewed-by: Eric Huang Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu.h | 32 ------- drivers/gpu/drm/amd/amdgpu/cik.c | 154 +++++++++++++++---------------- drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 4 +- drivers/gpu/drm/amd/amdgpu/cz_dpm.c | 6 +- drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 70 +++++++------- drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 10 +- drivers/gpu/drm/amd/amdgpu/kv_dpm.c | 8 +- drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c | 6 +- drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c | 4 +- drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c | 6 +- drivers/gpu/drm/amd/amdgpu/vce_v2_0.c | 4 +- drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 6 +- drivers/gpu/drm/amd/include/amd_shared.h | 32 +++++++ 13 files changed, 171 insertions(+), 171 deletions(-) commit b118af7012f9bd4bdbda12681ce66f91aabffd3f Author: Alex Deucher Date: Fri Feb 5 10:37:29 2016 -0500 drm/amdgpu: remove unused cg defines Leftover from radeon. Reviewed-by: Eric Huang Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu.h | 9 --------- 1 file changed, 9 deletions(-) commit 08d334087617ed9662d40db776c5d2c0a614315a Author: Alex Deucher Date: Fri Feb 5 10:34:28 2016 -0500 drm/amdgpu: add a cgs interface to fetch cg and pg flags Needed to pass the cg and pg info to powerplay. Reviewed-by: Eric Huang Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 6 ++++++ drivers/gpu/drm/amd/include/cgs_common.h | 2 ++ 2 files changed, 8 insertions(+) commit f997e6f21308f0627c46caed0315ee005ef4775a Author: Alex Deucher Date: Thu Feb 4 23:48:51 2016 -0500 drm/amd/powerplay/tonga: disable vce pg Not working reliably yet. Reviewed-by: Eric Huang Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c | 2 ++ 1 file changed, 2 insertions(+) commit 3d5afb41f82f55e6912678ea24d637b84c160d65 Author: Alex Deucher Date: Thu Feb 4 23:47:38 2016 -0500 drm/amd/powerplay/tonga: disable uvd pg Not working reliably yet. Reviewed-by: Eric Huang Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c | 3 +++ 1 file changed, 3 insertions(+) commit 67a0a0fd11524bd9943635168f8380b9906fb389 Author: Alex Deucher Date: Thu Feb 4 23:42:24 2016 -0500 drm/amd/powerplay/cz: disable vce pg Not working reliably yet. Reviewed-by: Eric Huang Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c | 3 +++ 1 file changed, 3 insertions(+) commit d4fdc08e251316e2e0710d02e65b4576ce7963d2 Author: Alex Deucher Date: Thu Feb 4 23:40:32 2016 -0500 drm/amd/powerplay/cz: disable uvd pg Not working reliably yet. Reviewed-by: Eric Huang Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c | 2 ++ 1 file changed, 2 insertions(+) commit 35e5912d0801184b57119383da003263a21eeed1 Author: Alex Deucher Date: Thu Feb 4 23:33:56 2016 -0500 drm/amdgpu: be consistent with uvd cg flags Don't do anything if the uvd cg flags are not set. Reviewed-by: Eric Huang Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c | 3 +++ drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c | 5 +++++ 2 files changed, 8 insertions(+) commit 0fd4af9e328c0f694d21a646232a7a62da7ec4ae Author: Alex Deucher Date: Thu Feb 4 23:31:32 2016 -0500 drm/amdgpu: clean up vce pg flags for cz/st It was already disabled elsewhere, make it offical. Reviewed-by: Eric Huang Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/vi.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 808a934fd47c1c4a1670069cbe2fae7c23068b14 Author: Alex Deucher Date: Thu Feb 4 23:29:45 2016 -0500 drm/amdgpu: handle vce pg flags properly Don't attempt to start/stop the vce block if pg is disabled. Reviewed-by: Eric Huang Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/vce_v2_0.c | 3 +++ drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 3 +++ 2 files changed, 6 insertions(+) commit b6df77fc5c42041a11ff094e5595d1e7379c917f Author: Alex Deucher Date: Thu Feb 4 23:26:56 2016 -0500 drm/amdgpu: handle uvd pg flags properly Don't attempt to start/stop the uvd block if pg is disabled. Reviewed-by: Eric Huang Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c | 5 ++++- drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c | 3 +++ drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c | 3 +++ 3 files changed, 10 insertions(+), 1 deletion(-) commit 50171ebecf87521056db2b3d5654c4348f32c9bd Author: Alex Deucher Date: Thu Feb 4 10:44:04 2016 -0500 drm/amdgpu/dpm/ci: switch over to the common pcie caps interface We already query this at driver init, so use that info. Also handles virtualization cases. Reviewed-by: monk liu Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/ci_dpm.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 76ecb2c75bc772050f2e0462b9cf0163cc43046e Author: Alex Deucher Date: Thu Feb 4 10:33:59 2016 -0500 drm/amdgpu/cik: don't mess with aspm if gpu is root bus Pcie registers may not be available in a virtualized environment. Reviewed-by: monk liu Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/cik.c | 3 +++ 1 file changed, 3 insertions(+) commit cd474ba0d6048aeefe6f1066a6bfb5eac36a2a81 Author: Alex Deucher Date: Thu Feb 4 10:21:23 2016 -0500 drm/amdgpu: add pcie cap module parameters (v2) Allows the user to force the supported pcie gen and lane config on both the asic and the chipset. Useful for debugging pcie problems and for virtualization where we may not be able to query the pcie bridge caps. Default to: gen: chipset 1/2, asic 1/2/3 lanes: 1/2/4/8/16 v2: fix bare metal case Reviewed-by: monk liu Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 + drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 147 ++++++++++++++++------------- drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 8 ++ 3 files changed, 92 insertions(+), 65 deletions(-) commit 44c3d0c1c0a880354e9de5d94175742e2c7c9683 Author: Eric Dumazet Date: Tue Feb 2 17:55:01 2016 -0800 ipv6: fix a lockdep splat Silence lockdep false positive about rcu_dereference() being used in the wrong context. First one should use rcu_dereference_protected() as we own the spinlock. Second one should be a normal assignation, as no barrier is needed. Fixes: 18367681a10bd ("ipv6 flowlabel: Convert np->ipv6_fl_list to RCU.") Reported-by: Dave Jones Signed-off-by: Eric Dumazet Acked-by: Hannes Frederic Sowa Signed-off-by: David S. Miller net/ipv6/ip6_flowlabel.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 415e3d3e90ce9e18727e8843ae343eda5a58fad6 Author: Hannes Frederic Sowa Date: Wed Feb 3 02:11:03 2016 +0100 unix: correctly track in-flight fds in sending process user_struct The commit referenced in the Fixes tag incorrectly accounted the number of in-flight fds over a unix domain socket to the original opener of the file-descriptor. This allows another process to arbitrary deplete the original file-openers resource limit for the maximum of open files. Instead the sending processes and its struct cred should be credited. To do so, we add a reference counted struct user_struct pointer to the scm_fp_list and use it to account for the number of inflight unix fds. Fixes: 712f4aad406bb1 ("unix: properly account for FDs passed over unix sockets") Reported-by: David Herrmann Cc: David Herrmann Cc: Willy Tarreau Cc: Linus Torvalds Suggested-by: Linus Torvalds Signed-off-by: Hannes Frederic Sowa Signed-off-by: David S. Miller include/net/af_unix.h | 4 ++-- include/net/scm.h | 1 + net/core/scm.c | 7 +++++++ net/unix/af_unix.c | 4 ++-- net/unix/garbage.c | 8 ++++---- 5 files changed, 16 insertions(+), 8 deletions(-) commit b3aff6ccbb1d25e506b60ccd9c559013903f3464 Author: Andre Przywara Date: Wed Feb 3 16:56:51 2016 +0000 KVM: arm/arm64: Fix reference to uninitialised VGIC Commit 4b4b4512da2a ("arm/arm64: KVM: Rework the arch timer to use level-triggered semantics") brought the virtual architected timer closer to the VGIC. There is one occasion were we don't properly check for the VGIC actually having been initialized before, but instead go on to check the active state of some IRQ number. If userland hasn't instantiated a virtual GIC, we end up with a kernel NULL pointer dereference: ========= Unable to handle kernel NULL pointer dereference at virtual address 00000000 pgd = ffffffc9745c5000 [00000000] *pgd=00000009f631e003, *pud=00000009f631e003, *pmd=0000000000000000 Internal error: Oops: 96000006 [#2] PREEMPT SMP Modules linked in: CPU: 0 PID: 2144 Comm: kvm_simplest-ar Tainted: G D 4.5.0-rc2+ #1300 Hardware name: ARM Juno development board (r1) (DT) task: ffffffc976da8000 ti: ffffffc976e28000 task.ti: ffffffc976e28000 PC is at vgic_bitmap_get_irq_val+0x78/0x90 LR is at kvm_vgic_map_is_active+0xac/0xc8 pc : [] lr : [] pstate: 20000145 .... ========= Fix this by bailing out early of kvm_timer_flush_hwstate() if we don't have a VGIC at all. Reported-by: Cosmin Gorgovan Acked-by: Marc Zyngier Signed-off-by: Andre Przywara Signed-off-by: Marc Zyngier Cc: # 4.4.x virt/kvm/arm/arch_timer.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit afc60743811828dfccc7aff94ac527c857630d4b Merge: 388f7b1 6327f35 Author: Paolo Bonzini Date: Mon Feb 8 16:20:51 2016 +0100 Merge tag 'kvm-arm-for-4.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into kvm-master KVM/ARM fixes for v4.5-rc2 A few random fixes, mostly coming from the PMU work by Shannon: - fix for injecting faults coming from the guest's userspace - cleanup for our CPTR_EL2 accessors (reserved bits) - fix for a bug impacting perf (user/kernel discrimination) - fix for a 32bit sysreg handling bug commit 8ceffd229f0ef130530c79654e95b5fa007ae639 Author: Vinod Koul Date: Mon Feb 8 10:45:39 2016 +0530 ASoC: Intel: Add module tags for common match module The match module lacked module license and description, so add it Acked-by: Pierre-Louis Bossart Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/common/sst-match-acpi.c | 3 +++ 1 file changed, 3 insertions(+) commit cfffcc66a89ab6d9961b2cde6cdab2ba056451ad Author: Pierre-Louis Bossart Date: Mon Feb 8 10:45:38 2016 +0530 ASoC: Intel: Load the atom DPCM driver only DPCM driver is recommended for BYT, CHT based platforms, so if CONFIG_SND_SST_IPC_ACPI is selected then don't compile the BYT Device IDs in common ACPI driver to avoid probe conflicts. Signed-off-by: Pierre-Louis Bossart Acked-by: Jie Yang Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/Kconfig | 4 ++-- sound/soc/intel/common/sst-acpi.c | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) commit 2dcffcee23a2bd491a8c4041db3a8041b23fa4eb Author: Vinod Koul Date: Mon Feb 8 10:45:37 2016 +0530 ASoC: Intel: Create independent acpi match module The ACPI match module is common to all three drivers, HSW, SKL and Atom-DPCM driver. But Atom-DPCM driver does not use common sst code so we cannot include the common SST module in Atom-DPCM driver. So the solution is to have a independent sst-match-acpi module which helps in matching for all the three drivers. Now all driver can be inbuilt in a single image This patch really fixes the regression introduced by the commit 95f098014815 ("ASoC: Intel: Move apci find machine routines") Acked-by: Jie Yang Acked-by: Pierre-Louis Bossart Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/Kconfig | 9 +++++++++ sound/soc/intel/common/Makefile | 4 +++- 2 files changed, 12 insertions(+), 1 deletion(-) commit 902c136fe4f72dfc2a616ad755c72f1ee407f79a Author: Vinod Koul Date: Mon Feb 8 10:45:36 2016 +0530 ASoC: Intel: Revert "ASoC: Intel: fix ACPI probe regression with Atom DPCM driver" This reverts commit dc901a354171 ("ASoC: Intel: fix ACPI probe regression with Atom DPCM driver") as the fix prevented the probe on HSW/BDW if Atom-DPCM was selected Acked-by: Jie Yang Acked-by: Pierre-Louis Bossart Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/common/Makefile | 5 ----- 1 file changed, 5 deletions(-) commit 07e7716c746dd4e43211903eac954a18192d3d14 Author: Robert Jarzmik Date: Mon Feb 8 15:17:57 2016 +0100 mmc: pxamci: fix the device-tree probe deferral path When the gpio driver is probed after the mmc one, the read/write gpio and card detection one return -EPROBE_DEFER. Unfortunately, the memory region remains requested, and upon the next probe, the probe will fail anyway with -EBUSY. Fix this by releasing the memory resource upon probe failure. More broadly, this patch uses devm_*() primitives whenever possible in the probe function. Signed-off-by: Robert Jarzmik Signed-off-by: Ulf Hansson drivers/mmc/host/pxamci.c | 35 +++++++++-------------------------- 1 file changed, 9 insertions(+), 26 deletions(-) commit b00663124c76f69e71d118d778842471e85c6f11 Author: Alexey Khoroshilov Date: Sat Feb 6 02:36:35 2016 +0300 mmc: mmc_spi: add checks for dma mapping error There is no checks for dma mapping errors in mmc_spi. Tha patch fixes that and by the way it adds dma_unmap_single(ones_dma) that was left on a failure path mmc_spi_probe(). Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov Signed-off-by: Ulf Hansson drivers/mmc/host/mmc_spi.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit 5cc6ce9ff27565949a1001a2889a8dd9fd09e772 Author: Anton Protopopov Date: Sat Feb 6 23:31:19 2016 -0500 netfilter: nft_counter: fix erroneous return values The nft_counter_init() and nft_counter_clone() functions should return negative error value -ENOMEM instead of positive ENOMEM. Signed-off-by: Anton Protopopov Signed-off-by: Pablo Neira Ayuso net/netfilter/nft_counter.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 08a7f5d3f5c38ed745c3e99ee91975f20562d272 Author: Arnd Bergmann Date: Fri Feb 5 10:20:21 2016 +0100 netfilter: tee: select NF_DUP_IPV6 unconditionally The NETFILTER_XT_TARGET_TEE option selects NF_DUP_IPV6 whenever IP6_NF_IPTABLES is enabled, and it ensures that it cannot be builtin itself if NF_CONNTRACK is a loadable module, as that is a dependency for NF_DUP_IPV6. However, NF_DUP_IPV6 can be enabled even if IP6_NF_IPTABLES is turned off, and it only really depends on IPV6. With the current check in tee_tg6, we call nf_dup_ipv6() whenever NF_DUP_IPV6 is enabled. This can however be a loadable module which is unreachable from a built-in xt_TEE: net/built-in.o: In function `tee_tg6': :(.text+0x67728): undefined reference to `nf_dup_ipv6' The bug was originally introduced in the split of the xt_TEE module into separate modules for ipv4 and ipv6, and two patches tried to fix it unsuccessfully afterwards. This is a revert of the the first incorrect attempt to fix it, going back to depending on IPV6 as the dependency, and we adapt the 'select' condition accordingly. Signed-off-by: Arnd Bergmann Fixes: bbde9fc1824a ("netfilter: factor out packet duplication for IPv4/IPv6") Fixes: 116984a316c3 ("netfilter: xt_TEE: use IS_ENABLED(CONFIG_NF_DUP_IPV6)") Fixes: 74ec4d55c4d2 ("netfilter: fix xt_TEE and xt_TPROXY dependencies") Signed-off-by: Pablo Neira Ayuso net/netfilter/Kconfig | 2 +- net/netfilter/xt_TEE.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit c58d6c93680f28ac58984af61d0a7ebf4319c241 Author: Phil Turnbull Date: Tue Feb 2 13:36:45 2016 -0500 netfilter: nfnetlink: correctly validate length of batch messages If nlh->nlmsg_len is zero then an infinite loop is triggered because 'skb_pull(skb, msglen);' pulls zero bytes. The calculation in nlmsg_len() underflows if 'nlh->nlmsg_len < NLMSG_HDRLEN' which bypasses the length validation and will later trigger an out-of-bound read. If the length validation does fail then the malformed batch message is copied back to userspace. However, we cannot do this because the nlh->nlmsg_len can be invalid. This leads to an out-of-bounds read in netlink_ack: [ 41.455421] ================================================================== [ 41.456431] BUG: KASAN: slab-out-of-bounds in memcpy+0x1d/0x40 at addr ffff880119e79340 [ 41.456431] Read of size 4294967280 by task a.out/987 [ 41.456431] ============================================================================= [ 41.456431] BUG kmalloc-512 (Not tainted): kasan: bad access detected [ 41.456431] ----------------------------------------------------------------------------- ... [ 41.456431] Bytes b4 ffff880119e79310: 00 00 00 00 d5 03 00 00 b0 fb fe ff 00 00 00 00 ................ [ 41.456431] Object ffff880119e79320: 20 00 00 00 10 00 05 00 00 00 00 00 00 00 00 00 ............... [ 41.456431] Object ffff880119e79330: 14 00 0a 00 01 03 fc 40 45 56 11 22 33 10 00 05 .......@EV."3... [ 41.456431] Object ffff880119e79340: f0 ff ff ff 88 99 aa bb 00 14 00 0a 00 06 fe fb ................ ^^ start of batch nlmsg with nlmsg_len=4294967280 ... [ 41.456431] Memory state around the buggy address: [ 41.456431] ffff880119e79400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 41.456431] ffff880119e79480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 41.456431] >ffff880119e79500: 00 00 00 00 fc fc fc fc fc fc fc fc fc fc fc fc [ 41.456431] ^ [ 41.456431] ffff880119e79580: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc [ 41.456431] ffff880119e79600: fc fc fc fc fc fc fc fc fc fc fb fb fb fb fb fb [ 41.456431] ================================================================== Fix this with better validation of nlh->nlmsg_len and by setting NFNL_BATCH_FAILURE if any batch message fails length validation. CAP_NET_ADMIN is required to trigger the bugs. Fixes: 9ea2aa8b7dba ("netfilter: nfnetlink: validate nfnetlink header from batch") Signed-off-by: Phil Turnbull Signed-off-by: Pablo Neira Ayuso net/netfilter/nfnetlink.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 59fd1214561921343305a0e9dc218bf3d40068f3 Author: Ingo Molnar Date: Mon Feb 8 08:47:48 2016 +0100 x86/mm/numa: Fix 32-bit memblock range truncation bug on 32-bit NUMA kernels The following commit: a0acda917284 ("acpi, numa, mem_hotplug: mark all nodes the kernel resides un-hotpluggable") Introduced numa_clear_kernel_node_hotplug(), which function is executed during early bootup, and which marks all currently reserved memblock regions as hot-memory-unswappable as well. y14sg1 reported that when running 32-bit NUMA kernels, the grsecurity/PAX kernel patch flagged a size overflow in this function: PAX: size overflow detected in function x86_numa_init arch/x86/mm/numa.c:691 [...] ... the reason for the overflow is that memblock_clear_hotplug() takes physical addresses as arguments, while the start/end variables used by numa_clear_kernel_node_hotplug() are 'unsigned long', which is 32-bit on PAE kernels, but which has 64-bit physical addresses. So on 32-bit PAE kernels that have physical memory above the 4GB boundary, we truncate a 64-bit physical address range to 32 bits and pass it to memblock_clear_hotplug(), which at minimum prevents the original memory-hotplug bugfix from working, but might have other side effects as well. The fix is to use the proper type to handle physical addresses, phys_addr_t. Reported-by: y14sg1 Cc: Andrew Morton Cc: Brad Spengler Cc: Chen Tang Cc: "H. Peter Anvin" Cc: Lai Jiangshan Cc: Linus Torvalds Cc: PaX Team Cc: Taku Izumi Cc: Tang Chen Cc: Thomas Gleixner Cc: Wen Congyang Cc: Yasuaki Ishimatsu Cc: Zhang Yanfei Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/mm/numa.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f15838e9cac8f78f0cc506529bb9d3b9fa589c1f Author: Andreas Schwab Date: Fri Feb 5 19:50:03 2016 +0100 powerpc: Fix dedotify for binutils >= 2.26 Since binutils 2.26 BFD is doing suffix merging on STRTAB sections. But dedotify modifies the symbol names in place, which can also modify unrelated symbols with a name that matches a suffix of a dotted name. To remove the leading dot of a symbol name we can just increment the pointer into the STRTAB section instead. Backport to all stables to avoid breakage when people update their binutils - mpe. Cc: stable@vger.kernel.org Signed-off-by: Andreas Schwab Signed-off-by: Michael Ellerman arch/powerpc/kernel/module_64.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0fd64e8213772829788309f269e15bcb28c34195 Author: Jani Nikula Date: Fri Feb 5 12:16:10 2016 +0200 drm/i915/dp: reduce missing TPS3 support errors to debug logging Per spec, TPS3 support is mandatory for downstream devices that support HBR2. We've therefore logged errors on HBR2 without TPS3 since commit 1da7d7131c35cde83f1bab8ec732b57b69bef814 Author: Jani Nikula Date: Thu Sep 3 11:16:08 2015 +0300 drm/i915: ignore link rate in TPS3 selection However, it seems there are real world devices out there that just aren't spec compliant, and still work at HBR2 using TPS2. So reduce the error message to debug logging. Cc: Ander Conselvan de Oliveira Cc: Sivakumar Thulasimani Reviewed-by: Sivakumar Thulasimani Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92932 Fixes: 1da7d7131c35 ("drm/i915: ignore link rate in TPS3 selection") Cc: drm-intel-fixes@lists.freedesktop.org Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1454667370-8001-2-git-send-email-jani.nikula@intel.com (cherry picked from commit bfcef5d2135ea1200ac1ea44661619ab8785c9f0) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_dp_link_training.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) commit bf039fa9357bdd26b3f115efd8af527523212069 Author: Jani Nikula Date: Fri Feb 5 12:16:09 2016 +0200 drm/i915/dp: abstract training pattern selection Make it cleaner to add more checks in the function. No functional changes. Cc: Ander Conselvan de Oliveira Cc: Sivakumar Thulasimani Reviewed-by: Sivakumar Thulasimani Cc: drm-intel-fixes@lists.freedesktop.org # dependency on the next patch Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1454667370-8001-1-git-send-email-jani.nikula@intel.com (cherry picked from commit 23a5110dc619073b57d90c36eae383f51df03aac) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_dp_link_training.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) commit bfadcded516b121546a2d7bbfea1abe3ce946517 Author: Jani Nikula Date: Thu Feb 4 18:52:47 2016 +0200 drm/i915/dsi: skip gpio element execution when not supported Skip v3 gpio element because the support is not there, and skip gpio element on non-vlv because the sideband code is vlv specific. v2: the gpio stuff is currently only supported on vlv (Ville) Cc: drm-intel-fixes@lists.freedesktop.org Fixes: 2a33d93486f2 ("drm/i915/bios: add support for MIPI sequence block v3") Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1454604767-2440-1-git-send-email-jani.nikula@intel.com (cherry picked from commit 96afef1d5adee8722549c8c2b788d656ea2ecf21) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_dsi_panel_vbt.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 26f6f2d301c1fb46acb1138ee155125815239b0d Author: Jani Nikula Date: Thu Feb 4 12:50:50 2016 +0200 drm/i915/dsi: don't pass arbitrary data to sideband Since sequence block v2 the second byte contains flags other than just pull up/down. Don't pass arbitrary data to the sideband interface. The rest may or may not work for sequence block v2, but there should be no harm done. Cc: stable@vger.kernel.org Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/ebe3c2eee623afc4b3a134533b01f8d591d13f32.1454582914.git.jani.nikula@intel.com (cherry picked from commit 4e1c63e3761b84ec7d87c75b58bbc8bcf18e98ee) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_dsi_panel_vbt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4db3a2448ec8902310acb78de39b6227a9a56ac8 Author: Jani Nikula Date: Thu Feb 4 12:50:49 2016 +0200 drm/i915/dsi: defend gpio table against out of bounds access Do not blindly trust the VBT data used for indexing. Cc: stable@vger.kernel.org Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/cc32d40c2b47f2d2151811855ac2c3dabab1d57d.1454582914.git.jani.nikula@intel.com (cherry picked from commit 5d2d0a12d3d08bf50434f0b5947bb73bac04b941) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_dsi_panel_vbt.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 949d0b51bebce8e26cf9b57dbb59178ad3dc9832 Author: Matt Roper Date: Wed Jan 6 09:53:41 2016 -0800 drm/i915/bxt: Don't save/restore eDP panel power during suspend (v3) Our attempts save/restore panel power state in i915_suspend.c are causing unclaimed register warnings on BXT since the registers for this platform differ from older platforms. The big hammer suspend/resume shouldn't be necessary for PP since the connector/encoder hooks should already handle this. In theory we could remove this for all platforms, but in practice it's likely that would cause some regressions since older platforms with LVDS may have incomplete PP handling. For now we'll leave the PCH save/restore alone and change the non-PCH branch to only operate on gen <= 4 so that BXT and future platforms aren't included. v2: Typo fix: s/||/&&/ v3: Change non-PCH condition to a gen <= 4 test rather than listing VLV/CHV/BXT as specific platforms to exclude; should be more future-proof as we add new platforms. (Daniel) Cc: Vandana Kannan Cc: Jani Nikula Cc: Daniel Vetter Cc: drm-intel-fixes@lists.freedesktop.org Signed-off-by: Matt Roper Reviewed-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1452102821-17190-1-git-send-email-matthew.d.roper@intel.com (cherry picked from commit e1ea07542352be468e901173c7a1beeee404d696) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_suspend.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 93232aeb304bc22d1bbd2b3ff2ebb485a408cb8d Author: Chris Wilson Date: Fri Jan 22 18:32:31 2016 +0000 drm/i915: Allow i915_gem_object_get_page() on userptr as well commit 033908aed5a596f6202c848c6bbc8a40fb1a8490 Author: Dave Gordon Date: Thu Dec 10 18:51:23 2015 +0000 drm/i915: mark GEM object pages dirty when mapped & written by the CPU introduced a check into i915_gem_object_get_dirty_pages() that returned a NULL pointer when called with a bad object, one that was not backed by shmemfs. This WARN was too strict as we can work on all struct page backed objects, and resulted in a WARN + GPF for existing userspace. In order to differentiate the various types of objects, add a new flags field to the i915_gem_object_ops struct to describe their capabilities, with the first flag being whether the object has struct pages. v2: Drop silly const before an integer in the structure declaration. Testcase: igt/gem_userptr_blits/relocations Reported-and-tested-by: Kristian Høgsberg Kristensen Signed-off-by: Chris Wilson Cc: Dave Gordon Cc: Kristian Høgsberg Kristensen Cc: Daniel Vetter Reviewed-by: Dave Gordon Reviewed-by: Kristian Høgsberg Kristensen Tested-by: Michal Winiarski Signed-off-by: Rodrigo Vivi Fixes: 033908aed5a5 ("drm/i915: mark GEM object pages dirty when mapped & written by the CPU") Link: http://patchwork.freedesktop.org/patch/msgid/1453487551-16799-1-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit de4726649b6b1d7f3f02b2031ee99e067cb71e2d) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_drv.h | 4 ++++ drivers/gpu/drm/i915/i915_gem.c | 3 ++- drivers/gpu/drm/i915/i915_gem_userptr.c | 3 ++- 3 files changed, 8 insertions(+), 2 deletions(-) commit ddce57a6f0a2d8d1bfacfa77f06043bc760403c2 Author: Takashi Iwai Date: Tue Feb 2 15:27:36 2016 +0100 ALSA: dummy: Implement timer backend switching more safely Currently the selected timer backend is referred at any moment from the running PCM callbacks. When the backend is switched, it's possible to lead to inconsistency from the running backend. This was pointed by syzkaller fuzzer, and the commit [7ee96216c31a: ALSA: dummy: Disable switching timer backend via sysfs] disabled the dynamic switching for avoiding the crash. This patch improves the handling of timer backend switching. It keeps the reference to the selected backend during the whole operation of an opened stream so that it won't be changed by other streams. Together with this change, the hrtimer parameter is reenabled as writable now. NOTE: this patch also turned out to fix the still remaining race. Namely, ops was still replaced dynamically at dummy_pcm_open: static int dummy_pcm_open(struct snd_pcm_substream *substream) { .... dummy->timer_ops = &dummy_systimer_ops; if (hrtimer) dummy->timer_ops = &dummy_hrtimer_ops; Since dummy->timer_ops is common among all streams, and when the replacement happens during accesses of other streams, it may lead to a crash. This was actually triggered by syzkaller fuzzer and KASAN. This patch rewrites the code not to use the ops shared by all streams any longer, too. BugLink: http://lkml.kernel.org/r/CACT4Y+aZ+xisrpuM6cOXbL21DuM0yVxPYXf4cD4Md9uw0C3dBQ@mail.gmail.com Reported-by: Dmitry Vyukov Cc: Signed-off-by: Takashi Iwai sound/drivers/dummy.c | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) commit 3b2b9ead32142b4cf55ea2793e5e4f7b63c04818 Author: Stephen Boyd Date: Mon Dec 14 09:42:57 2015 +0000 nvmem: qfprom: Specify LE device endianness The qfprom is a little endian device, but so far we've been relying on the regmap mmio bus handling this for us without explicitly stating that fact. After commit 4a98da2164cf (regmap-mmio: Use native endianness for read/write, 2015-10-29), the regmap mmio bus will read/write with the __raw_*() IO accessors, instead of using the readl/writel() APIs that do proper byte swapping for little endian devices. So if we're running on a big endian processor and haven't specified the endianness explicitly in the regmap config or in DT, we're going to switch from doing little endian byte swapping to big endian accesses without byte swapping, leading to some confusing results. Specify the endianness explicitly so that the regmap core properly byte swaps the accesses for us. Cc: Rajendra Nayak Cc: Kevin Hilman Cc: Tyler Baker Cc: Simon Arlott Cc: Mark Brown Signed-off-by: Stephen Boyd Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman drivers/nvmem/qfprom.c | 1 + 1 file changed, 1 insertion(+) commit 2f9ba5b2f8420e0e5712080dafc773f7dd47c3df Author: Srinivas Kandagatla Date: Mon Dec 14 09:42:38 2015 +0000 nvmem: core: return error for non word aligned access nvmem providers have restrictions on register strides, so return error when users attempt to read/write buffers with sizes which are less than word size. Without this patch the userspace would continue to try as it does not get any error from the nvmem core, resulting in a hang or endless loop in userspace. Reported-by: Ariel D'Alessandro Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman drivers/nvmem/core.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 00cd29b799e3449f0c68b1cc77cd4a5f95b42d17 Author: James Bottomley Date: Wed Jan 13 08:10:31 2016 -0800 klist: fix starting point removed bug in klist iterators The starting node for a klist iteration is often passed in from somewhere way above the klist infrastructure, meaning there's no guarantee the node is still on the list. We've seen this in SCSI where we use bus_find_device() to iterate through a list of devices. In the face of heavy hotplug activity, the last device returned by bus_find_device() can be removed before the next call. This leads to Dec 3 13:22:02 localhost kernel: WARNING: CPU: 2 PID: 28073 at include/linux/kref.h:47 klist_iter_init_node+0x3d/0x50() Dec 3 13:22:02 localhost kernel: Modules linked in: scsi_debug x86_pkg_temp_thermal kvm_intel kvm irqbypass crc32c_intel joydev iTCO_wdt dcdbas ipmi_devintf acpi_power_meter iTCO_vendor_support ipmi_si imsghandler pcspkr wmi acpi_cpufreq tpm_tis tpm shpchp lpc_ich mfd_core nfsd nfs_acl lockd grace sunrpc tg3 ptp pps_core Dec 3 13:22:02 localhost kernel: CPU: 2 PID: 28073 Comm: cat Not tainted 4.4.0-rc1+ #2 Dec 3 13:22:02 localhost kernel: Hardware name: Dell Inc. PowerEdge R320/08VT7V, BIOS 2.0.22 11/19/2013 Dec 3 13:22:02 localhost kernel: ffffffff81a20e77 ffff880613acfd18 ffffffff81321eef 0000000000000000 Dec 3 13:22:02 localhost kernel: ffff880613acfd50 ffffffff8107ca52 ffff88061176b198 0000000000000000 Dec 3 13:22:02 localhost kernel: ffffffff814542b0 ffff880610cfb100 ffff88061176b198 ffff880613acfd60 Dec 3 13:22:02 localhost kernel: Call Trace: Dec 3 13:22:02 localhost kernel: [] dump_stack+0x44/0x55 Dec 3 13:22:02 localhost kernel: [] warn_slowpath_common+0x82/0xc0 Dec 3 13:22:02 localhost kernel: [] ? proc_scsi_show+0x20/0x20 Dec 3 13:22:02 localhost kernel: [] warn_slowpath_null+0x1a/0x20 Dec 3 13:22:02 localhost kernel: [] klist_iter_init_node+0x3d/0x50 Dec 3 13:22:02 localhost kernel: [] bus_find_device+0x51/0xb0 Dec 3 13:22:02 localhost kernel: [] scsi_seq_next+0x2d/0x40 [...] And an eventual crash. It can actually occur in any hotplug system which has a device finder and a starting device. We can fix this globally by making sure the starting node for klist_iter_init_node() is actually a member of the list before using it (and by starting from the beginning if it isn't). Reported-by: Ewan D. Milne Tested-by: Ewan D. Milne Cc: stable@vger.kernel.org Signed-off-by: James Bottomley Signed-off-by: Greg Kroah-Hartman lib/klist.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit ff978b09f973db0d0597704eba350a994d7729e6 Author: Theodore Ts'o Date: Mon Feb 8 00:54:26 2016 -0500 ext4 crypto: move context consistency check to ext4_file_open() In the case where the per-file key for the directory is cached, but root does not have access to the key needed to derive the per-file key for the files in the directory, we allow the lookup to succeed, so that lstat(2) and unlink(2) can suceed. However, if a program tries to open the file, it will get an ENOKEY error. Signed-off-by: Theodore Ts'o fs/ext4/file.c | 9 +++++++++ fs/ext4/namei.c | 8 ++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) commit 4ac31d18e4125eb2970e69069a15308cbb8e4486 Author: John Ogness Date: Thu Jan 28 11:29:08 2016 +0100 dmaengine: edma: fix residue race for cyclic When retrieving the residue value, the SRC/DST fields of the active PaRAM are read to determine the current position of the DMA engine. However, the AM335x Technical Reference Manual states: 11.3.3.6 Parameter Set Updates After the TR is read from the PaRAM (and is in the process of being submitted to the EDMA3TC), the following fields are updated as needed: ... SRC DST This means SRC/DST is incremented even though the DMA transfer may not have started yet or is in progress. Thus if the reader of the residue accesses the DMA buffer too quickly, the CPU is misinformed about the data that has been successfully processed. The CCSTAT.ACTV register is a boolean that is set if any TR is being processed by either the EMDA3CC or EDMA3TC. By polling this register it is possible to ensure that the residue value returned is valid for immediate processing. However, since the DMA engine may be active, polling may never hit a moment where no TR is being processed. To handle this, the SRC/DST is also polled to see if it changes. And as a last resort, a max loop count for the busy waiting exists to avoid an infinite loop. Signed-off-by: John Ogness Acked-by: Peter Ujfalusi Signed-off-by: Vinod Koul drivers/dma/edma.c | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) commit 3efaf2a9a053bce452cec8d4c14f7ad6912215c9 Author: Andy Shevchenko Date: Fri Jan 29 16:27:07 2016 +0200 dmaengine: dw: pci: add ID for WildcatPoint PCH WildcatPoint PCH as seen on MacBook 12-inch (Early 2015) has PCI enabled DesignWare DMA controller. Enable it by adding its ID to the corresponding driver. Reported-by: Leif Liddy BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=110901 Signed-off-by: Andy Shevchenko Signed-off-by: Vinod Koul drivers/dma/dw/pci.c | 4 ++++ 1 file changed, 4 insertions(+) commit c8053b58762745d93930826b60a4073854a15ce5 Author: Greg Kroah-Hartman Date: Sun Feb 7 18:22:54 2016 -0800 Revert "8250: uniphier: allow modular build with 8250 console" This reverts commit d56edd7ed0ed46a8043ee3040ededbd190818ccf, it shouldn't have been applied, it was fixed properly with commit 71f50c6d9a2276f3ec85384bffe2aee1962f4669 ("of: drop symbols declared by _OF_DECLARE() from modules") Reported-by: Masahiro Yamada Cc: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_uniphier.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 28b4c263961c47da84ed8b5be0b5116bad1133eb Author: Theodore Ts'o Date: Sun Feb 7 19:35:05 2016 -0500 ext4 crypto: revalidate dentry after adding or removing the key Add a validation check for dentries for encrypted directory to make sure we're not caching stale data after a key has been added or removed. Also check to make sure that status of the encryption key is updated when readdir(2) is executed. Signed-off-by: Theodore Ts'o fs/ext4/crypto.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ fs/ext4/dir.c | 6 ++++++ fs/ext4/ext4.h | 1 + fs/ext4/namei.c | 18 ++++++++++++++++++ 4 files changed, 81 insertions(+) commit 8e0bd4925bf693520295de403483efad4dc5cc16 Author: Darrick J. Wong Date: Mon Feb 8 11:03:58 2016 +1100 xfs: fix endianness error when checking log block crc on big endian platforms Since the checksum function and the field are both __le32, don't perform endian conversion when comparing the two. This fixes mount failures on ppc64. Signed-off-by: Darrick J. Wong Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/xfs_log_recover.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 388f7b1d6e8ca06762e2454d28d6c3c55ad0fe95 Author: Linus Torvalds Date: Sun Feb 7 15:38:30 2016 -0800 Linux 4.5-rc3 Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c17dfb019d52d933a595778d085f83d2b3b34edb Merge: 63fee12 381a65c Author: Linus Torvalds Date: Sun Feb 7 15:23:20 2016 -0800 Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC fixes from Olof Johansson: "The first real batch of fixes for this release cycle, so there are a few more than usual. Most of these are fixes and tweaks to board support (DT bugfixes, etc). I've also picked up a couple of small cleanups that seemed innocent enough that there was little reason to wait (const/ __initconst and Kconfig deps). Quite a bit of the changes on OMAP were due to fixes to no longer write to rodata from assembly when ARM_KERNMEM_PERMS was enabled, but there were also other fixes. Kirkwood had a bunch of gpio fixes for some boards. OMAP had RTC fixes on OMAP5, and Nomadik had changes to MMC parameters in DT. All in all, mostly the usual mix of various fixes" * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (46 commits) ARM: multi_v7_defconfig: enable DW_WATCHDOG ARM: nomadik: fix up SD/MMC DT settings ARM64: tegra: Add chosen node for tegra132 norrin ARM: realview: use "depends on" instead of "if" after prompt ARM: tango: use "depends on" instead of "if" after prompt ARM: tango: use const and __initconst for smp_operations ARM: realview: use const and __initconst for smp_operations bus: uniphier-system-bus: revive tristate prompt arm64: dts: Add missing DMA Abort interrupt to Juno bus: vexpress-config: Add missing of_node_put ARM: dts: am57xx: sbc-am57x: correct Eth PHY settings ARM: dts: am57xx: cl-som-am57x: fix CPSW EMAC pinmux ARM: dts: am57xx: sbc-am57x: fix UART3 pinmux ARM: dts: am57xx: cl-som-am57x: update SPI Flash frequency ARM: dts: am57xx: cl-som-am57x: set HOST mode for USB2 ARM: dts: am57xx: sbc-am57x: fix SB-SOM EEPROM I2C address ARM: dts: LogicPD Torpedo: Revert Duplicative Entries ARM: dts: am437x: pixcir_tangoc: use correct flags for irq types ARM: dts: am4372: fix irq type for arm twd and global timer ARM: dts: at91: sama5d4 xplained: fix phy0 IRQ type ... commit 63fee123da6a05b48695599c4349ab5de97da5e2 Merge: 46df55c 65d3b04 Author: Linus Torvalds Date: Sun Feb 7 15:17:47 2016 -0800 Merge branch 'mailbox-devel' of git://git.linaro.org/landing-teams/working/fujitsu/integration Pull mailbox fixes from Jassi Brar: - fix getting element from the pcc-channels array by simply indexing into it - prevent building mailbox-test driver for archs that don't have IOMEM * 'mailbox-devel' of git://git.linaro.org/landing-teams/working/fujitsu/integration: mailbox: Fix dependencies for !HAS_IOMEM archs mailbox: pcc: fix channel calculation in get_pcc_channel() commit aa7b45378059a3eba1529d76f6d0b367ba614646 Author: Sathya Perla Date: Tue Feb 2 08:10:10 2016 -0500 update be2net maintainers' email addresses be2net maintainers' email addresses changed from avagotech.com to broadcom.com starting today. While updating the list, I'm also adding Somnath's name to the list. Signed-off-by: Sathya Perla Signed-off-by: David S. Miller MAINTAINERS | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit c44d9b1181cf34e0860c72cc8a00e0c47417aac0 Author: Takashi Iwai Date: Sun Feb 7 09:38:26 2016 +0100 ALSA: hda - Fix speaker output from VAIO AiO machines Some Sony VAIO AiO models (VGC-JS4EF and VGC-JS25G, both with PCI SSID 104d:9044) need the same quirk to make the speaker working properly. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=112031 Cc: Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 1 + 1 file changed, 1 insertion(+) commit 1f55c718c290616889c04946864a13ef30f64929 Author: Herton R. Krzesinski Date: Thu Jan 14 17:56:58 2016 -0200 pty: make sure super_block is still valid in final /dev/tty close Considering current pty code and multiple devpts instances, it's possible to umount a devpts file system while a program still has /dev/tty opened pointing to a previosuly closed pty pair in that instance. In the case all ptmx and pts/N files are closed, umount can be done. If the program closes /dev/tty after umount is done, devpts_kill_index will use now an invalid super_block, which was already destroyed in the umount operation after running ->kill_sb. This is another "use after free" type of issue, but now related to the allocated super_block instance. To avoid the problem (warning at ida_remove and potential crashes) for this specific case, I added two functions in devpts which grabs additional references to the super_block, which pty code now uses so it makes sure the super block structure is still valid until pty shutdown is done. I also moved the additional inode references to the same functions, which also covered similar case with inode being freed before /dev/tty final close/shutdown. Signed-off-by: Herton R. Krzesinski Cc: stable@vger.kernel.org # 2.6.29+ Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/pty.c | 9 ++++++--- fs/devpts/inode.c | 20 ++++++++++++++++++++ include/linux/devpts_fs.h | 4 ++++ 3 files changed, 30 insertions(+), 3 deletions(-) commit 2831c89f42dcde440cfdccb9fee9f42d54bbc1ef Author: Herton R. Krzesinski Date: Mon Jan 11 12:07:43 2016 -0200 pty: fix possible use after free of tty->driver_data This change fixes a bug for a corner case where we have the the last release from a pty master/slave coming from a previously opened /dev/tty file. When this happens, the tty->driver_data can be stale, due to all ptmx or pts/N files having already been closed before (and thus the inode related to these files, which tty->driver_data points to, being already freed/destroyed). The fix here is to keep a reference on the opened master ptmx inode. We maintain the inode referenced until the final pty_unix98_shutdown, and only pass this inode to devpts_kill_index. Signed-off-by: Herton R. Krzesinski Cc: # 2.6.29+ Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/pty.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) commit 7dde55787b43a8f2b4021916db38d90c03a2ec64 Author: Jeremy McNicoll Date: Tue Feb 2 13:00:45 2016 -0800 tty: Add support for PCIe WCH382 2S multi-IO card WCH382 2S board is a PCIe card with 2 DB9 COM ports detected as Serial controller: Device 1c00:3253 (rev 10) (prog-if 05 [16850]) Signed-off-by: Jeremy McNicoll Cc: stable Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_pci.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit b4a512b8bf7185787e291cddad3b6457b2367120 Author: Arnd Bergmann Date: Wed Jan 13 21:59:23 2016 +0100 serial/omap: mark wait_for_xmitr as __maybe_unused The wait_for_xmitr() function is only used if CONFIG_CONSOLE_POLL or CONFIG_SERIAL_OMAP_CONSOLE are set, but when both are disabled, the compiler warns about it being unused: drivers/tty/serial/omap-serial.c:1168:13: warning: 'wait_for_xmitr' defined but not used [-Wunused-func We could add more #ifdefs to work around it, but adding __maybe_unused seems nicer. Signed-off-by: Arnd Bergmann Fixes: 2172076d2399 ("serial/omap-serial: Deinline wait_for_xmitr, save 165 bytes") Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/omap-serial.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 308bbc9ab838d0ace0298268c7970ba9513e2c65 Author: Peter Hurley Date: Tue Jan 12 15:14:46 2016 -0800 serial: omap: Prevent DoS using unprivileged ioctl(TIOCSRS485) The omap-serial driver emulates RS485 delays using software timers, but neglects to clamp the input values from the unprivileged ioctl(TIOCSRS485). Because the software implementation busy-waits, malicious userspace could stall the cpu for ~49 days. Clamp the input values to < 100ms. Fixes: 4a0ac0f55b18 ("OMAP: add RS485 support") Cc: # 3.12+ Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/omap-serial.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit d56edd7ed0ed46a8043ee3040ededbd190818ccf Author: Arnd Bergmann Date: Wed Jan 13 23:33:59 2016 +0100 8250: uniphier: allow modular build with 8250 console The recently added uniphier 8250 port driver supports early console probing, and it supports being built as a module, but the combination of the two fails to link: ERROR: "early_serial8250_setup" [drivers/tty/serial/8250/8250_uniphier.ko] undefined! Given that earlycon support in a loadable module makes no sense, making that code conditional on 'MODULE' is a correct solution. Signed-off-by: Arnd Bergmann Fixes: b8d20e06eaad ("serial: 8250_uniphier: add earlycon support") Acked-by: Masahiro Yamada Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_uniphier.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 46df55ceeaf3d28689242de2dd722857b7ea341f Merge: dacd53c 89140fd Author: Linus Torvalds Date: Sat Feb 6 22:14:46 2016 -0800 Merge tag 'usb-4.5-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb Pull USB fixes from Greg KH: "Here are some USB fixes for 4.5-rc3. The usual, xhci fixes for reported issues, combined with some small gadget driver fixes, and a MAINTAINERS file update. All have been in linux-next with no reported issues" * tag 'usb-4.5-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: xhci: harden xhci_find_next_ext_cap against device removal xhci: Fix list corruption in urb dequeue at host removal usb: host: xhci-plat: fix NULL pointer in probe for device tree case usb: xhci-mtk: fix AHB bus hang up caused by roothubs polling usb: xhci-mtk: fix bpkts value of LS/HS periodic eps not behind TT usb: xhci: apply XHCI_PME_STUCK_QUIRK to Intel Broxton-M platforms usb: xhci: set SSIC port unused only if xhci_suspend succeeds usb: xhci: add a quirk bit for ssic port unused usb: xhci: handle both SSIC ports in PME stuck quirk usb: dwc3: gadget: set the OTG flag in dwc3 gadget driver. Revert "xhci: don't finish a TD if we get a short-transfer event mid TD" MAINTAINERS: fix my email address usb: dwc2: Fix probe problem on bcm2835 Revert "usb: dwc2: Move reset into dwc2_get_hwparams()" usb: musb: ux500: Fix NULL pointer dereference at system PM usb: phy: mxs: declare variable with initialized value usb: phy: msm: fix error handling in probe. commit dacd53c80525809cc9ce85e3a4ad409d15209f2a Merge: 5af9c2e 5982557 Author: Linus Torvalds Date: Sat Feb 6 22:13:16 2016 -0800 Merge tag 'staging-4.5-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging Pull staging and IIO driver fixes from Greg KH: "Here are some IIO and staging driver fixes for 4.5-rc3. All of them, except one, are for IIO drivers, and one is for a speakup driver fix caused by some earlier patches, to resolve a reported build failure" * tag 'staging-4.5-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: Staging: speakup: Fix allyesconfig build on mn10300 iio: dht11: Use boottime iio: ade7753: avoid uninitialized data iio: pressure: mpl115: fix temperature offset sign iio: imu: Fix dependencies for !HAS_IOMEM archs staging: iio: Fix dependencies for !HAS_IOMEM archs iio: adc: Fix dependencies for !HAS_IOMEM archs iio: inkern: fix a NULL dereference on error iio:adc:ti_am335x_adc Fix buffered mode by identifying as software buffer. iio: light: acpi-als: Report data as processed iio: dac: mcp4725: set iio name property in sysfs iio: add HAS_IOMEM dependency to VF610_ADC iio: add IIO_TRIGGER dependency to STK8BA50 iio: proximity: lidar: correct return value iio-light: Use a signed return type for ltr501_match_samp_freq() commit 7326fffb712f09a315bc73cc1ee63843f59b8bd4 Author: Alexander Usyskin Date: Sun Jan 17 12:25:01 2016 +0200 mei: validate request value in client notify request ioctl This patch address a possible security issue: The request field in client notify request ioctl comes from user space as u32 and is downcasted to u8 with out validation. Check request field to have approved values MEI_HBM_NOTIFICATION_STAR/STOP Cc: #4.3+ Signed-off-by: Alexander Usyskin Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/main.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit d7236ac368212bd6fc8b45f050136ee53e6a6f2d Author: Swapnil Nagle Date: Thu Feb 4 11:45:17 2016 -0500 qla2xxx: Use ATIO type to send correct tmr response The function value inside se_cmd can change if the TMR is cancelled. Use original ATIO Type to correctly determine CTIO response. Signed-off-by: Swapnil Nagle Signed-off-by: Himanshu Madhani Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_target.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cb43285ff7039fe3c4b0bc476e6d6569c31104f3 Author: Quinn Tran Date: Thu Feb 4 11:45:16 2016 -0500 qla2xxx: Fix stale pointer access. [ Upstream Commit 84e32a06f4f8756ce9ec3c8dc7e97896575f0771 ] Commit 84e32a0 ("qla2xxx: Use pci_enable_msix_range() instead of pci_enable_msix()") introduced a regression when target mode is enabled. In qla24xx_enable_msix(), ha->max_rsp_queues was incorrectly set to a value higher than the number of response queues allocated causing an invalid dereference. Specifically here in qla2x00_init_rings(): *rsp->in_ptr = 0; Add additional check to make sure the pointer is valid. following call stack will be seen ---- 8< ---- RIP: 0010:[] [] qla2x00_init_rings+0xdc/0x320 [qla2xxx] RSP: 0018:ffff880429447dd8 EFLAGS: 00010082 .... Call Trace: [] qla2x00_abort_isp+0x170/0x6b0 [qla2xxx] [] qla2x00_do_dpc+0x357/0x7f0 [qla2xxx] [] ? qla2x00_relogin+0x260/0x260 [qla2xxx] [] kthread+0xc9/0xe0 [] ? flush_kthread_worker+0x90/0x90 [] ret_from_fork+0x3f/0x70 [] ? flush_kthread_worker+0x90/0x90 ---- 8< ---- Cc: Signed-off-by: Quinn Tran Signed-off-by: Himanshu Madhani Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_init.c | 10 +++++----- drivers/scsi/qla2xxx/qla_isr.c | 4 ++-- drivers/scsi/qla2xxx/qla_mid.c | 4 ++-- drivers/scsi/qla2xxx/qla_os.c | 6 ++++++ drivers/scsi/qla2xxx/qla_tmpl.c | 16 ++++++++++++++++ 5 files changed, 31 insertions(+), 9 deletions(-) commit e9036d0662360cd4c79578565ce422ed5872f301 Author: Peter Hurley Date: Fri Feb 5 10:49:36 2016 -0800 tty: Drop krefs for interrupted tty lock When the tty lock is interrupted on attempted re-open, 2 tty krefs are still held. Drop extra kref before returning failure from tty_lock_interruptible(), and drop lookup kref before returning failure from tty_open(). Fixes: 0bfd464d3fdd ("tty: Wait interruptibly for tty lock on reopen") Reported-by: Dmitry Vyukov Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_io.c | 3 +-- drivers/tty/tty_mutex.c | 7 ++++++- 2 files changed, 7 insertions(+), 3 deletions(-) commit 0633e123465b61a12a262b742bebf2a9945f7964 Author: Arnd Bergmann Date: Mon Feb 1 17:29:45 2016 +0100 target/user: Fix cast from pointer to phys_addr_t The uio_mem structure has a member that is a phys_addr_t, but can be a number of other types too. The target core driver attempts to assign a pointer from vmalloc() to it, by casting it to phys_addr_t, but that causes a warning when phys_addr_t is longer than a pointer: drivers/target/target_core_user.c: In function 'tcmu_configure_device': drivers/target/target_core_user.c:906:22: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] This adds another cast to uintptr_t to shut up the warning. A nicer fix might be to have additional fields in uio_mem for the different purposes, so we can assign a pointer directly. Signed-off-by: Arnd Bergmann Signed-off-by: Nicholas Bellinger drivers/target/target_core_user.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 57dae19065bde296dfdf08b8e46c102a671ff741 Author: Nicholas Bellinger Date: Fri Jan 29 00:07:25 2016 -0800 target: Drop legacy se_cmd->task_stop_comp + REQUEST_STOP usage With CMD_T_FABRIC_STOP + se_cmd->cmd_wait_set usage in place, go ahead and drop left-over CMD_T_REQUEST_STOP checks in target_complete_cmd() and unused target_stop_cmd(). Reviewed-by: Christoph Hellwig Cc: Quinn Tran Cc: Himanshu Madhani Cc: Sagi Grimberg Cc: Hannes Reinecke Cc: Andy Grover Cc: Mike Christie Signed-off-by: Nicholas Bellinger drivers/target/target_core_internal.h | 1 - drivers/target/target_core_transport.c | 37 ---------------------------------- include/target/target_core_base.h | 4 ---- 3 files changed, 42 deletions(-) commit 310d3d314be7f0a84011ebdc4bdccbcae9755a87 Author: Nicholas Bellinger Date: Fri Feb 5 14:51:36 2016 -0800 target: Fix race with SCF_SEND_DELAYED_TAS handling This patch fixes a race between setting of SCF_SEND_DELAYED_TAS in transport_send_task_abort(), and check of the same bit in transport_check_aborted_status(). It adds a __transport_check_aborted_status() version that is used by target_execute_cmd() when se_cmd->t_state_lock is held, and a transport_check_aborted_status() wrapper for all other existing callers. Also, it handles the case where the check happens before transport_send_task_abort() gets called. For this, go ahead and set SCF_SEND_DELAYED_TAS early when necessary, and have transport_send_task_abort() send the abort. Cc: Quinn Tran Cc: Himanshu Madhani Cc: Sagi Grimberg Cc: Christoph Hellwig Cc: Hannes Reinecke Cc: Andy Grover Cc: Mike Christie Cc: stable@vger.kernel.org # 3.10+ Signed-off-by: Nicholas Bellinger drivers/target/target_core_transport.c | 53 ++++++++++++++++++++++++++-------- 1 file changed, 41 insertions(+), 12 deletions(-) commit 09954bad448791ef01202351d437abdd9497a804 Author: Jiri Kosina Date: Sat Feb 6 23:00:22 2016 +0100 floppy: refactor open() flags handling In case /dev/fdX is open with O_NDELAY / O_NONBLOCK, floppy_open() immediately succeeds, without performing any further media / controller preparations. That's "correct" wrt. the NODELAY flag, but is hardly correct wrt. the rest of the floppy driver, that is not really O_NONBLOCK ready, at all. Therefore it's not too surprising, that subsequent attempts to work with the filedescriptor produce bad results. Namely, syzkaller tool has been able to livelock mmap() on the returned fd to keep waiting on the page unlock bit forever. Quite frankly, I have trouble defining what non-blocking behavior would be for floppies. Is waiting ages for the driver to actually succeed reading a sector blocking operation? Is waiting for drive motor to start blocking operation? How about in case of virtualized floppies? One option would be returning EWOULDBLOCK in case O_NDLEAY / O_NONBLOCK is being passed to open(). That has a theoretical potential of breaking some arcane and archaic userspace though. Let's take a more conservative aproach, and accept the O_NDLEAY flag, and let the driver behave as usual. While at it, clean up a bit handling of !(mode & (FMODE_READ|FMODE_WRITE)) case and return EINVAL instead of succeeding as well. Spotted by syzkaller tool. Reported-by: Dmitry Vyukov Tested-by: Dmitry Vyukov Signed-off-by: Jiri Kosina drivers/block/floppy.c | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) commit d76d65fd26951498144029c24852c4d54ee512d9 Author: Larry Finger Date: Mon Feb 1 12:58:54 2016 -0600 rtlwifi: fix broken VHT support When using a 5G-capable device with VHT (802.11ac) rates enabled was not working (packets were not delivered) and the following mac80211 warning was printed: WARNING: CPU: 3 PID: 2253 at net/mac80211/rate.c:625 ieee80211_get_tx_rates+0x22e/0x620 [mac80211]() Modules linked in: rtl8821ae btcoexist rtl_pci rtlwifi fuse drbg ansi_cprng ctr ccm bnep bluetooth af_packet nfs fscache vboxpci(O) vboxnetadp(O) vboxne tflt(O) vboxdrv(O) arc4 snd_hda_codec_generic x86_pkg_temp_thermal rtsx_pci_sdmmc mmc_core rtsx_pci_ms kvm_intel memstick iwlmvm kvm mac80211 snd_hda_intel snd_hda_cod ec snd_hwdep snd_hda_core irqbypass snd_pcm iwlwifi crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel aes_x86_64 snd_timer lrw gf128mul glue_h elper ablk_helper cryptd snd cfg80211 pcspkr serio_raw e1000e rtsx_pci lpc_ich ptp xhci_pci mfd_core pps_core xhci_hcd soundcore toshiba_acpi thermal sparse_keymap wmi toshiba_bluetooth rfkill acpi_cpufreq battery ac processor dm_mod i915 i2c_algo_bit drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops drm sr_mod cdrom video button sg autofs4 [last unloaded: rtlwifi] CPU: 3 PID: 2253 Comm: Timer Tainted: G W O 4.5.0-rc1-wl+ #79 Hardware name: TOSHIBA TECRA A50-A/TECRA A50-A, BIOS Version 4.20 04/17/2014 ffffffffa05c4be6 ffff8802262036d8 ffffffff813d7912 0000000000000000 ffff880226203710 ffffffff8106bcb6 ffff8800c6831300 ffff8800c6831330 0000000000000000 ffff8800c683133c ffff880065923638 ffff880226203720 Call Trace: [] dump_stack+0x4b/0x79 [] warn_slowpath_common+0x86/0xc0 [] warn_slowpath_null+0x1a/0x20 [] ieee80211_get_tx_rates+0x22e/0x620 [mac80211] [] ? rtl_is_special_data+0x32/0x240 [rtlwifi] [] ? rate_control_get_rate+0xce/0x150 [mac80211] [] ? trace_hardirqs_on+0xd/0x10 [] ? __local_bh_enable_ip+0x65/0xd0 Signed-off-by: Kalle Valo drivers/net/wireless/realtek/rtlwifi/rc.c | 5 +++++ 1 file changed, 5 insertions(+) commit 3647bc35bd427610a70eb83c58c5e834262badfa Author: Rabin Vincent Date: Tue Feb 2 09:39:02 2016 +0100 dwc_eth_qos: Reset hardware before PHY start The hardware reset is currently done after phy_start() is called, leading to a race where we can lose the link status if the phy state machine calls dwceqos_adjust_link() before we reset the MAC registers. Acked-by: Lars Persson Signed-off-by: Rabin Vincent Signed-off-by: David S. Miller drivers/net/ethernet/synopsys/dwc_eth_qos.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 16186a82de1fdd868255448274e64ae2616e2640 Author: subashab@codeaurora.org Date: Tue Feb 2 02:11:10 2016 +0000 ipv6: addrconf: Fix recursive spin lock call A rcu stall with the following backtrace was seen on a system with forwarding, optimistic_dad and use_optimistic set. To reproduce, set these flags and allow ipv6 autoconf. This occurs because the device write_lock is acquired while already holding the read_lock. Back trace below - INFO: rcu_preempt self-detected stall on CPU { 1} (t=2100 jiffies g=3992 c=3991 q=4471) <6> Task dump for CPU 1: <2> kworker/1:0 R running task 12168 15 2 0x00000002 <2> Workqueue: ipv6_addrconf addrconf_dad_work <6> Call trace: <2> [] el1_irq+0x68/0xdc <2> [] _raw_write_lock_bh+0x20/0x30 <2> [] __ipv6_dev_ac_inc+0x64/0x1b4 <2> [] addrconf_join_anycast+0x9c/0xc4 <2> [] __ipv6_ifa_notify+0x160/0x29c <2> [] ipv6_ifa_notify+0x50/0x70 <2> [] addrconf_dad_work+0x314/0x334 <2> [] process_one_work+0x244/0x3fc <2> [] worker_thread+0x2f8/0x418 <2> [] kthread+0xe0/0xec v2: do addrconf_dad_kick inside read lock and then acquire write lock for ipv6_ifa_notify as suggested by Eric Fixes: 7fd2561e4ebdd ("net: ipv6: Add a sysctl to make optimistic addresses useful candidates") Cc: Eric Dumazet Cc: Erik Kline Cc: Hannes Frederic Sowa Signed-off-by: Subash Abhinov Kasiviswanathan Acked-by: Hannes Frederic Sowa Acked-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv6/addrconf.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 8a3978ad55fb4c0564d285fb2f6cdee2313fce01 Author: Boris BREZILLON Date: Fri Feb 5 17:45:48 2016 +0100 crypto: marvell/cesa - fix test in mv_cesa_dev_dma_init() We are checking twice if dma->cache_pool is not NULL but are never testing dma->padding_pool value. Cc: stable@vger.kernel.org Signed-off-by: Boris Brezillon Signed-off-by: Herbert Xu drivers/crypto/marvell/cesa.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c033042aa8f69894df37dabcaa0231594834a4e4 Author: Cyrille Pitchen Date: Fri Feb 5 13:45:13 2016 +0100 crypto: atmel-sha - remove calls of clk_prepare() from atomic contexts clk_prepare()/clk_unprepare() must not be called within atomic context. This patch calls clk_prepare() once for all from atmel_sha_probe() and clk_unprepare() from atmel_sha_remove(). Then calls of clk_prepare_enable()/clk_disable_unprepare() were replaced by calls of clk_enable()/clk_disable(). Cc: stable@vger.kernel.org Signed-off-by: Cyrille Pitchen Reported-by: Matthias Mayr Signed-off-by: Herbert Xu drivers/crypto/atmel-sha.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) commit d961436c11482e974b702c8324426208f00cd7c4 Author: Cyrille Pitchen Date: Fri Feb 5 13:45:12 2016 +0100 crypto: atmel-sha - fix atmel_sha_remove() Since atmel_sha_probe() uses devm_xxx functions to allocate resources, atmel_sha_remove() should no longer explicitly release them. Cc: stable@vger.kernel.org Signed-off-by: Cyrille Pitchen Fixes: b0e8b3417a62 ("crypto: atmel - use devm_xxx() managed function") Signed-off-by: Herbert Xu drivers/crypto/atmel-sha.c | 7 ------- 1 file changed, 7 deletions(-) commit dad41997063723eaf5f77bc2015606a5a9bce320 Author: Herbert Xu Date: Wed Feb 3 21:39:27 2016 +0800 crypto: algif_skcipher - Do not set MAY_BACKLOG on the async path The async path cannot use MAY_BACKLOG because it is not meant to block, which is what MAY_BACKLOG does. On the other hand, both the sync and async paths can make use of MAY_SLEEP. Cc: stable@vger.kernel.org Signed-off-by: Herbert Xu crypto/algif_skcipher.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 6454c2b83f719057069777132b13949e4c6b6350 Author: Herbert Xu Date: Wed Feb 3 21:39:26 2016 +0800 crypto: algif_skcipher - Do not dereference ctx without socket lock Any access to non-constant bits of the private context must be done under the socket lock, in particular, this includes ctx->req. This patch moves such accesses under the lock, and fetches the tfm from the parent socket which is guaranteed to be constant, rather than from ctx->req. Cc: stable@vger.kernel.org Signed-off-by: Herbert Xu crypto/algif_skcipher.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit ec69bbfb9902c32a5c1492f2b1b8ad032a66d724 Author: Herbert Xu Date: Wed Feb 3 21:39:24 2016 +0800 crypto: algif_skcipher - Do not assume that req is unchanged The async path in algif_skcipher assumes that the crypto completion function will be called with the original request. This is not necessarily the case. In fact there is no need for this anyway since we already embed information into the request with struct skcipher_async_req. This patch adds a pointer to that struct and then passes it as the data to the callback function. Cc: stable@vger.kernel.org Signed-off-by: Herbert Xu Tested-by: Tadeusz Struk crypto/algif_skcipher.c | 60 +++++++++++++++++++++++-------------------------- 1 file changed, 28 insertions(+), 32 deletions(-) commit 63e41ebc6630f39422d87f8a4bade1e793f37a01 Author: Mathias Krause Date: Mon Feb 1 14:27:30 2016 +0100 crypto: user - lock crypto_alg_list on alg dump We miss to take the crypto_alg_sem semaphore when traversing the crypto_alg_list for CRYPTO_MSG_GETALG dumps. This allows a race with crypto_unregister_alg() removing algorithms from the list while we're still traversing it, thereby leading to a use-after-free as show below: [ 3482.071639] general protection fault: 0000 [#1] SMP [ 3482.075639] Modules linked in: aes_x86_64 glue_helper lrw ablk_helper cryptd gf128mul ipv6 pcspkr serio_raw virtio_net microcode virtio_pci virtio_ring virtio sr_mod cdrom [last unloaded: aesni_intel] [ 3482.075639] CPU: 1 PID: 11065 Comm: crconf Not tainted 4.3.4-grsec+ #126 [ 3482.075639] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.7.5-20140531_083030-gandalf 04/01/2014 [ 3482.075639] task: ffff88001cd41a40 ti: ffff88001cd422c8 task.ti: ffff88001cd422c8 [ 3482.075639] RIP: 0010:[] [] strncpy+0x13/0x30 [ 3482.075639] RSP: 0018:ffff88001f713b60 EFLAGS: 00010202 [ 3482.075639] RAX: ffff88001f6c4430 RBX: ffff88001f6c43a0 RCX: ffff88001f6c4430 [ 3482.075639] RDX: 0000000000000040 RSI: fefefefefefeff16 RDI: ffff88001f6c4430 [ 3482.075639] RBP: ffff88001f713b60 R08: ffff88001f6c4470 R09: ffff88001f6c4480 [ 3482.075639] R10: 0000000000000002 R11: 0000000000000246 R12: ffff88001ce2aa28 [ 3482.075639] R13: ffff880000093700 R14: ffff88001f5e4bf8 R15: 0000000000003b20 [ 3482.075639] FS: 0000033826fa2700(0000) GS:ffff88001e900000(0000) knlGS:0000000000000000 [ 3482.075639] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 3482.075639] CR2: ffffffffff600400 CR3: 00000000139ec000 CR4: 00000000001606f0 [ 3482.075639] Stack: [ 3482.075639] ffff88001f713bd8 ffffffff936ccd00 ffff88001e5c4200 ffff880000093700 [ 3482.075639] ffff88001f713bd0 ffffffff938ef4bf 0000000000000000 0000000000003b20 [ 3482.075639] ffff88001f5e4bf8 ffff88001f5e4848 0000000000000000 0000000000003b20 [ 3482.075639] Call Trace: [ 3482.075639] [] crypto_report_alg+0xc0/0x3e0 [ 3482.075639] [] ? __alloc_skb+0x16f/0x300 [ 3482.075639] [] crypto_dump_report+0x6a/0x90 [ 3482.075639] [] netlink_dump+0x147/0x2e0 [ 3482.075639] [] __netlink_dump_start+0x159/0x190 [ 3482.075639] [] crypto_user_rcv_msg+0xc3/0x130 [ 3482.075639] [] ? crypto_report_alg+0x3e0/0x3e0 [ 3482.075639] [] ? alg_test_crc32c+0x120/0x120 [ 3482.075639] [] ? __netlink_lookup+0xd5/0x120 [ 3482.075639] [] ? crypto_add_alg+0x1d0/0x1d0 [ 3482.075639] [] netlink_rcv_skb+0xe1/0x130 [ 3482.075639] [] crypto_netlink_rcv+0x28/0x40 [ 3482.075639] [] netlink_unicast+0x108/0x180 [ 3482.075639] [] netlink_sendmsg+0x541/0x770 [ 3482.075639] [] sock_sendmsg+0x21/0x40 [ 3482.075639] [] SyS_sendto+0xf3/0x130 [ 3482.075639] [] ? bad_area_nosemaphore+0x13/0x20 [ 3482.075639] [] ? __do_page_fault+0x80/0x3a0 [ 3482.075639] [] entry_SYSCALL_64_fastpath+0x12/0x6e [ 3482.075639] Code: 88 4a ff 75 ed 5d 48 0f ba 2c 24 3f c3 66 66 2e 0f 1f 84 00 00 00 00 00 55 48 85 d2 48 89 f8 48 89 f9 4c 8d 04 17 48 89 e5 74 15 <0f> b6 16 80 fa 01 88 11 48 83 de ff 48 83 c1 01 4c 39 c1 75 eb [ 3482.075639] RIP [] strncpy+0x13/0x30 To trigger the race run the following loops simultaneously for a while: $ while : ; do modprobe aesni-intel; rmmod aesni-intel; done $ while : ; do crconf show all > /dev/null; done Fix the race by taking the crypto_alg_sem read lock, thereby preventing crypto_unregister_alg() from modifying the algorithm list during the dump. This bug has been detected by the PaX memory sanitize feature. Cc: stable@vger.kernel.org Signed-off-by: Mathias Krause Cc: Steffen Klassert Cc: PaX Team Signed-off-by: Herbert Xu crypto/crypto_user.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 5af9c2e19da6514a1a50b07d97d93b74a7711873 Merge: 5d6a6a7 b6a515c Author: Linus Torvalds Date: Fri Feb 5 20:20:07 2016 -0800 Merge branch 'akpm' (patches from Andrew) Merge fixes from Andrew Morton: "22 fixes" * emailed patches from Andrew Morton : (22 commits) epoll: restrict EPOLLEXCLUSIVE to POLLIN and POLLOUT radix-tree: fix oops after radix_tree_iter_retry MAINTAINERS: trim the file triggers for ABI/API dax: dirty inode only if required thp: make deferred_split_scan() work again mm: replace vma_lock_anon_vma with anon_vma_lock_read/write ocfs2/dlm: clear refmap bit of recovery lock while doing local recovery cleanup um: asm/page.h: remove the pte_high member from struct pte_t mm, hugetlb: don't require CMA for runtime gigantic pages mm/hugetlb: fix gigantic page initialization/allocation mm: downgrade VM_BUG in isolate_lru_page() to warning mempolicy: do not try to queue pages from !vma_migratable() mm, vmstat: fix wrong WQ sleep when memory reclaim doesn't make any progress vmstat: make vmstat_update deferrable mm, vmstat: make quiet_vmstat lighter mm/Kconfig: correct description of DEFERRED_STRUCT_PAGE_INIT memblock: don't mark memblock_phys_mem_size() as __init dump_stack: avoid potential deadlocks mm: validate_mm browse_rb SMP race condition m32r: fix build failure due to SMP and MMU ... commit 5d6a6a75e0036a88ac17a844686e4a9ef926e493 Merge: 9b10882 b0b31a8 Author: Linus Torvalds Date: Fri Feb 5 19:52:57 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client Pull Ceph fixes from Sage Weil: "We have a few wire protocol compatibility fixes, ports of a few recent CRUSH mapping changes, and a couple error path fixes" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: libceph: MOSDOpReply v7 encoding libceph: advertise support for TUNABLES5 crush: decode and initialize chooseleaf_stable crush: add chooseleaf_stable tunable crush: ensure take bucket value is valid crush: ensure bucket id is valid before indexing buckets array ceph: fix snap context leak in error path ceph: checking for IS_ERR instead of NULL commit 9b108828ed25aff1239304437ec5fa8b9977a306 Merge: 22f6070 6739b3d Author: Linus Torvalds Date: Fri Feb 5 19:38:15 2016 -0800 Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux Pull drm fixes from Dave Airlie: "Fixes all over the place: - amdkfd: two static checker fixes - mst: a bunch of static checker and spec/hw interaction fixes - amdgpu: fix Iceland hw properly, and some fiji bugs, along with some write-combining fixes. - exynos: some regression fixes - adv7511: fix some EDID reading issues" * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (38 commits) drm/dp/mst: deallocate payload on port destruction drm/dp/mst: Reverse order of MST enable and clearing VC payload table. drm/dp/mst: move GUID storage from mgr, port to only mst branch drm/dp/mst: change MST detection scheme drm/dp/mst: Calculate MST PBN with 31.32 fixed point drm: Add drm_fixp_from_fraction and drm_fixp2int_ceil drm/mst: Add range check for max_payloads during init drm/mst: Don't ignore the MST PBN self-test result drm: fix missing reference counting decrease drm/amdgpu: disable uvd and vce clockgating on Fiji drm/amdgpu: remove exp hardware support from iceland drm/amdgpu: load MEC ucode manually on iceland drm/amdgpu: don't load MEC2 on topaz drm/amdgpu: drop topaz support from gmc8 module drm/amdgpu: pull topaz gmc bits into gmc_v7 drm/amdgpu: The VI specific EXE bit should only apply to GMC v8.0 above drm/amdgpu: iceland use CI based MC IP drm/amdgpu: move gmc7 support out of CIK dependency drm/amdgpu/gfx7: enable cp inst/reg error interrupts drm/amdgpu/gfx8: enable cp inst/reg error interrupts ... commit 22f60701d5527cd8a07e0651bc12e226cf38da79 Merge: dd6f86a 79e2f8d Author: Linus Torvalds Date: Fri Feb 5 18:11:23 2016 -0800 Merge tag 'pm+acpi-4.5-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull power management and ACPI fixes from Rafael Wysocki: "These are: a fix for a recently introduced false-positive warnings about PM domain pointers being changed inappropriately (harmless but annoying), an MCH size workaround quirk for one more platform, a compiler warning fix (generic power domains framework), an ACPI LPSS (Intel SoCs) driver fixup and a cleanup of the ACPI CPPC core code. Specifics: - PM core fix to avoid false-positive warnings generated when the pm_domain field is cleared for a device that appears to be bound to a driver (Rafael Wysocki). - New MCH size workaround quirk for Intel Haswell-ULT (Josh Boyer). - Fix for an "unused function" compiler warning in the generic power domains framework (Ulf Hansson). - Fixup for the ACPI driver for Intel SoCs (acpi-lpss) to set the PM domain pointer of a device properly in one place that was overlooked by a recent PM core update (Andy Shevchenko). - Removal of a redundant function declaration in the ACPI CPPC core code (Timur Tabi)" * tag 'pm+acpi-4.5-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: PM: Avoid false-positive warnings in dev_pm_domain_set() PM / Domains: Silence compiler warning for an unused function ACPI / CPPC: remove redundant mbox_send_message() declaration ACPI / LPSS: set PM domain via helper setter PNP: Add Haswell-ULT to Intel MCH size workaround commit b6a515c8a0f6c2010a52793b43a79520bc95f994 Author: Jason Baron Date: Fri Feb 5 15:37:04 2016 -0800 epoll: restrict EPOLLEXCLUSIVE to POLLIN and POLLOUT In the current implementation of the EPOLLEXCLUSIVE flag (added for 4.5-rc1), if epoll waiters create different POLL* sets and register them as exclusive against the same target fd, the current implementation will stop waking any further waiters once it finds the first idle waiter. This means that waiters could miss wakeups in certain cases. For example, when we wake up a pipe for reading we do: wake_up_interruptible_sync_poll(&pipe->wait, POLLIN | POLLRDNORM); So if one epoll set or epfd is added to pipe p with POLLIN and a second set epfd2 is added to pipe p with POLLRDNORM, only epfd may receive the wakeup since the current implementation will stop after it finds any intersection of events with a waiter that is blocked in epoll_wait(). We could potentially address this by requiring all epoll waiters that are added to p be required to pass the same set of POLL* events. IE the first EPOLL_CTL_ADD that passes EPOLLEXCLUSIVE establishes the set POLL* flags to be used by any other epfds that are added as EPOLLEXCLUSIVE. However, I think it might be somewhat confusing interface as we would have to reference count the number of users for that set, and so userspace would have to keep track of that count, or we would need a more involved interface. It also adds some shared state that we'd have store somewhere. I don't think anybody will want to bloat __wait_queue_head for this. I think what we could do instead, is to simply restrict EPOLLEXCLUSIVE such that it can only be specified with EPOLLIN and/or EPOLLOUT. So that way if the wakeup includes 'POLLIN' and not 'POLLOUT', we can stop once we hit the first idle waiter that specifies the EPOLLIN bit, since any remaining waiters that only have 'POLLOUT' set wouldn't need to be woken. Likewise, we can do the same thing if 'POLLOUT' is in the wakeup bit set and not 'POLLIN'. If both 'POLLOUT' and 'POLLIN' are set in the wake bit set (there is at least one example of this I saw in fs/pipe.c), then we just wake the entire exclusive list. Having both 'POLLOUT' and 'POLLIN' both set should not be on any performance critical path, so I think that's ok (in fs/pipe.c its in pipe_release()). We also continue to include EPOLLERR and EPOLLHUP by default in any exclusive set. Thus, the user can specify EPOLLERR and/or EPOLLHUP but is not required to do so. Since epoll waiters may be interested in other events as well besides EPOLLIN, EPOLLOUT, EPOLLERR and EPOLLHUP, these can still be added by doing a 'dup' call on the target fd and adding that as one normally would with EPOLL_CTL_ADD. Since I think that the POLLIN and POLLOUT events are what we are interest in balancing, I think that the 'dup' thing could perhaps be added to only one of the waiter threads. However, I think that EPOLLIN, EPOLLOUT, EPOLLERR and EPOLLHUP should be sufficient for the majority of use-cases. Since EPOLLEXCLUSIVE is intended to be used with a target fd shared among multiple epfds, where between 1 and n of the epfds may receive an event, it does not satisfy the semantics of EPOLLONESHOT where only 1 epfd would get an event. Thus, it is not allowed to be specified in conjunction with EPOLLEXCLUSIVE. EPOLL_CTL_MOD is also not allowed if the fd was previously added as EPOLLEXCLUSIVE. It seems with the limited number of flags to not be as interesting, but this could be relaxed at some further point. Signed-off-by: Jason Baron Tested-by: Madars Vitolins Cc: Michael Kerrisk Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Al Viro Cc: Eric Wong Cc: Jonathan Corbet Cc: Andy Lutomirski Cc: Hagen Paul Pfeifer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/eventpoll.c | 38 ++++++++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 6 deletions(-) commit 732042821cfa106b3c20b9780e4c60fee9d68900 Author: Konstantin Khlebnikov Date: Fri Feb 5 15:37:01 2016 -0800 radix-tree: fix oops after radix_tree_iter_retry Helper radix_tree_iter_retry() resets next_index to the current index. In following radix_tree_next_slot current chunk size becomes zero. This isn't checked and it tries to dereference null pointer in slot. Tagged iterator is fine because retry happens only at slot 0 where tag bitmask in iter->tags is filled with single bit. Fixes: 46437f9a554f ("radix-tree: fix race in gang lookup") Signed-off-by: Konstantin Khlebnikov Cc: Matthew Wilcox Cc: Hugh Dickins Cc: Ohad Ben-Cohen Cc: Jeremiah Mahler Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/radix-tree.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit b14fd334ff3dc47b31c3592c166af5ea42b204d3 Author: Michael Kerrisk (man-pages) Date: Fri Feb 5 15:36:58 2016 -0800 MAINTAINERS: trim the file triggers for ABI/API Commit ea8f8fc8631 ("MAINTAINERS: add linux-api for review of API/ABI changes") added file triggers for various paths that likely indicated API/ABI changes. However, catching all changes in Documentation/ABI/ and include/uapi/ produces a large volume of mail to linux-api, rather than only API/ABI changes. Drop those two entries, but leave include/linux/syscalls.h and kernel/sys_ni.c to catch syscall-related changes. [josh@joshtriplett.org: redid changelog] Signed-off-by: Michael Kerrisk Acked-by: Shuah khan Cc: Josh Triplett Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds MAINTAINERS | 2 -- 1 file changed, 2 deletions(-) commit d2b2a28e640489df64cc50123f4c3c47d9ad7d13 Author: Dmitry Monakhov Date: Fri Feb 5 15:36:55 2016 -0800 dax: dirty inode only if required Signed-off-by: Dmitry Monakhov Reviewed-by: Jan Kara Reviewed-by: Ross Zwisler Cc: Matthew Wilcox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/dax.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ae026204a2b9060817503408906b35cefd824420 Author: Kirill A. Shutemov Date: Fri Feb 5 15:36:53 2016 -0800 thp: make deferred_split_scan() work again We need to iterate over split_queue, not local empty list to get anything split from the shrinker. Fixes: e3ae19535c66 ("thp: limit number of object to scan on deferred_split_scan()") Signed-off-by: Kirill A. Shutemov Cc: Andrea Arcangeli Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/huge_memory.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 12352d3cae2cebe18805a91fab34b534d7444231 Author: Konstantin Khlebnikov Date: Fri Feb 5 15:36:50 2016 -0800 mm: replace vma_lock_anon_vma with anon_vma_lock_read/write Sequence vma_lock_anon_vma() - vma_unlock_anon_vma() isn't safe if anon_vma appeared between lock and unlock. We have to check anon_vma first or call anon_vma_prepare() to be sure that it's here. There are only few users of these legacy helpers. Let's get rid of them. This patch fixes anon_vma lock imbalance in validate_mm(). Write lock isn't required here, read lock is enough. And reorders expand_downwards/expand_upwards: security_mmap_addr() and wrapping-around check don't have to be under anon vma lock. Link: https://lkml.kernel.org/r/CACT4Y+Y908EjM2z=706dv4rV6dWtxTLK9nFg9_7DhRMLppBo2g@mail.gmail.com Signed-off-by: Konstantin Khlebnikov Reported-by: Dmitry Vyukov Acked-by: Kirill A. Shutemov Cc: Andrea Arcangeli Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/rmap.h | 14 ------------- mm/mmap.c | 55 ++++++++++++++++++++++++---------------------------- 2 files changed, 25 insertions(+), 44 deletions(-) commit c95a51807b730e4681e2ecbdfd669ca52601959e Author: xuejiufei Date: Fri Feb 5 15:36:47 2016 -0800 ocfs2/dlm: clear refmap bit of recovery lock while doing local recovery cleanup When recovery master down, dlm_do_local_recovery_cleanup() only remove the $RECOVERY lock owned by dead node, but do not clear the refmap bit. Which will make umount thread falling in dead loop migrating $RECOVERY to the dead node. Signed-off-by: xuejiufei Reviewed-by: Joseph Qi Cc: Mark Fasheh Cc: Joel Becker Cc: Junxiao Bi Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/dlm/dlmrecovery.c | 2 ++ 1 file changed, 2 insertions(+) commit 012a4163be4559d406ed2d7f2aa459538eb8b686 Author: Nicolai Stange Date: Fri Feb 5 15:36:44 2016 -0800 um: asm/page.h: remove the pte_high member from struct pte_t Commit 16da306849d0 ("um: kill pfn_t") introduced a compile warning for defconfig (SUBARCH=i386): arch/um/kernel/skas/mmu.c:38:206: warning: right shift count >= width of type [-Wshift-count-overflow] Aforementioned patch changes the definition of the phys_to_pfn() macro from ((pfn_t) ((p) >> PAGE_SHIFT)) to ((p) >> PAGE_SHIFT) This effectively changes the phys_to_pfn() expansion's type from unsigned long long to unsigned long. Through the callchain init_stub_pte() => mk_pte(), the expansion of phys_to_pfn() is (indirectly) fed into the 'phys' argument of the pte_set_val(pte, phys, prot) macro, eventually leading to (pte).pte_high = (phys) >> 32; This results in the warning from above. Since UML only deals with 32 bit addresses, the upper 32 bits from 'phys' used to be always zero anyway. Also, all page protection flags defined by UML don't use any bits beyond bit 9. Since the contents of a PTE are defined within architecture scope only, the ->pte_high member can be safely removed. Remove the ->pte_high member from struct pte_t. Rename ->pte_low to ->pte. Adapt the pte helper macros in arch/um/include/asm/page.h. Noteworthy is the pte_copy() macro where a smp_wmb() gets dropped. This write barrier doesn't seem to be paired with any read barrier though and thus, was useless anyway. Fixes: 16da306849d0 ("um: kill pfn_t") Signed-off-by: Nicolai Stange Cc: Dan Williams Cc: Richard Weinberger Cc: Nicolai Stange Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/um/include/asm/page.h | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) commit 080fe2068e1c7f19f565b30b78baf78edf16a980 Author: Vlastimil Babka Date: Fri Feb 5 15:36:41 2016 -0800 mm, hugetlb: don't require CMA for runtime gigantic pages Commit 944d9fec8d7a ("hugetlb: add support for gigantic page allocation at runtime") has added the runtime gigantic page allocation via alloc_contig_range(), making this support available only when CONFIG_CMA is enabled. Because it doesn't depend on MIGRATE_CMA pageblocks and the associated infrastructure, it is possible with few simple adjustments to require only CONFIG_MEMORY_ISOLATION instead of full CONFIG_CMA. After this patch, alloc_contig_range() and related functions are available and used for gigantic pages with just CONFIG_MEMORY_ISOLATION enabled. Note CONFIG_CMA selects CONFIG_MEMORY_ISOLATION. This allows supporting runtime gigantic pages without the CMA-specific checks in page allocator fastpaths. Signed-off-by: Vlastimil Babka Cc: Luiz Capitulino Cc: Kirill A. Shutemov Cc: Zhang Yanfei Cc: Yasuaki Ishimatsu Cc: Joonsoo Kim Cc: Naoya Horiguchi Cc: Mel Gorman Cc: Davidlohr Bueso Cc: Hillf Danton Cc: Mike Kravetz Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/x86/mm/hugetlbpage.c | 4 ++-- include/linux/gfp.h | 6 +++--- mm/hugetlb.c | 2 +- mm/page_alloc.c | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) commit b4330afbed0cdceeba33c4945158c55771047e81 Author: Mike Kravetz Date: Fri Feb 5 15:36:38 2016 -0800 mm/hugetlb: fix gigantic page initialization/allocation Attempting to preallocate 1G gigantic huge pages at boot time with "hugepagesz=1G hugepages=1" on the kernel command line will prevent booting with the following: kernel BUG at mm/hugetlb.c:1218! When mapcount accounting was reworked, the setting of compound_mapcount_ptr in prep_compound_gigantic_page was overlooked. As a result, the validation of mapcount in free_huge_page fails. The "BUG_ON" checks in free_huge_page were also changed to "VM_BUG_ON_PAGE" to assist with debugging. Fixes: 53f9263baba69 ("mm: rework mapcount accounting to enable 4k mapping of THPs") Signed-off-by: Mike Kravetz Signed-off-by: Naoya Horiguchi Acked-by: Kirill A. Shutemov Acked-by: David Rientjes Tested-by: Vlastimil Babka Cc: "Aneesh Kumar K.V" Cc: Jerome Marchand Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/hugetlb.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit cf2a82ee432730ab25c21d054c67f296af4fc4bd Author: Kirill A. Shutemov Date: Fri Feb 5 15:36:36 2016 -0800 mm: downgrade VM_BUG in isolate_lru_page() to warning Calling isolate_lru_page() is wrong and shouldn't happen, but it not nessesary fatal: the page just will not be isolated if it's not on LRU. Let's downgrade the VM_BUG_ON_PAGE() to WARN_RATELIMIT(). Signed-off-by: Kirill A. Shutemov Cc: Dmitry Vyukov Cc: Vlastimil Babka Cc: David Rientjes Cc: Naoya Horiguchi Acked-by: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/vmscan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 77bf45e78050790d8f7fc30b87a0ca674bf6265a Author: Kirill A. Shutemov Date: Fri Feb 5 15:36:33 2016 -0800 mempolicy: do not try to queue pages from !vma_migratable() Maybe I miss some point, but I don't see a reason why we try to queue pages from non migratable VMAs. This testcase steps on VM_BUG_ON_PAGE() in isolate_lru_page(): #include #include #include #include #include #define SIZE 0x2000 int foo; int main() { int fd; char *p; unsigned long mask = 2; fd = open("/dev/sg0", O_RDWR); p = mmap(NULL, SIZE, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0); /* Faultin pages */ foo = p[0] + p[0x1000]; mbind(p, SIZE, MPOL_BIND, &mask, 4, MPOL_MF_MOVE | MPOL_MF_STRICT); return 0; } The only case when we can queue pages from such VMA is MPOL_MF_STRICT plus MPOL_MF_MOVE or MPOL_MF_MOVE_ALL for VMA which has pages on LRU, but gfp mask is not sutable for migaration (see mapping_gfp_mask() check in vma_migratable()). That's looks like a bug to me. Let's filter out non-migratable vma at start of queue_pages_test_walk() and go to queue_pages_pte_range() only if MPOL_MF_MOVE or MPOL_MF_MOVE_ALL flag is set. Signed-off-by: Kirill A. Shutemov Signed-off-by: Dmitry Vyukov Cc: Vlastimil Babka Cc: David Rientjes Cc: Naoya Horiguchi Cc: Michal Hocko Cc: Johannes Weiner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/mempolicy.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) commit 564e81a57f9788b1475127012e0fd44e9049e342 Author: Tetsuo Handa Date: Fri Feb 5 15:36:30 2016 -0800 mm, vmstat: fix wrong WQ sleep when memory reclaim doesn't make any progress Jan Stancek has reported that system occasionally hanging after "oom01" testcase from LTP triggers OOM. Guessing from a result that there is a kworker thread doing memory allocation and the values between "Node 0 Normal free:" and "Node 0 Normal:" differs when hanging, vmstat is not up-to-date for some reason. According to commit 373ccbe59270 ("mm, vmstat: allow WQ concurrency to discover memory reclaim doesn't make any progress"), it meant to force the kworker thread to take a short sleep, but it by error used schedule_timeout(1). We missed that schedule_timeout() in state TASK_RUNNING doesn't do anything. Fix it by using schedule_timeout_uninterruptible(1) which forces the kworker thread to take a short sleep in order to make sure that vmstat is up-to-date. Fixes: 373ccbe59270 ("mm, vmstat: allow WQ concurrency to discover memory reclaim doesn't make any progress") Signed-off-by: Tetsuo Handa Reported-by: Jan Stancek Acked-by: Michal Hocko Cc: Tejun Heo Cc: Cristopher Lameter Cc: Joonsoo Kim Cc: Arkadiusz Miskiewicz Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/backing-dev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ccde8bd4014eb2f01102f7a64f0fad3df193b758 Author: Michal Hocko Date: Fri Feb 5 15:36:27 2016 -0800 vmstat: make vmstat_update deferrable Commit 0eb77e988032 ("vmstat: make vmstat_updater deferrable again and shut down on idle") made vmstat_shepherd deferrable. vmstat_update itself is still useing standard timer which might interrupt idle task. This is possible because "mm, vmstat: make quiet_vmstat lighter" removed cancel_delayed_work from the quiet_vmstat. Change vmstat_work to use DEFERRABLE_WORK to prevent from pointless wakeups from the idle context. Acked-by: Christoph Lameter Signed-off-by: Michal Hocko Cc: Mike Galbraith Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/vmstat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f01f17d3705bb6081c9e5728078f64067982be36 Author: Michal Hocko Date: Fri Feb 5 15:36:24 2016 -0800 mm, vmstat: make quiet_vmstat lighter Mike has reported a considerable overhead of refresh_cpu_vm_stats from the idle entry during pipe test: 12.89% [kernel] [k] refresh_cpu_vm_stats.isra.12 4.75% [kernel] [k] __schedule 4.70% [kernel] [k] mutex_unlock 3.14% [kernel] [k] __switch_to This is caused by commit 0eb77e988032 ("vmstat: make vmstat_updater deferrable again and shut down on idle") which has placed quiet_vmstat into cpu_idle_loop. The main reason here seems to be that the idle entry has to get over all zones and perform atomic operations for each vmstat entry even though there might be no per cpu diffs. This is a pointless overhead for _each_ idle entry. Make sure that quiet_vmstat is as light as possible. First of all it doesn't make any sense to do any local sync if the current cpu is already set in oncpu_stat_off because vmstat_update puts itself there only if there is nothing to do. Then we can check need_update which should be a cheap way to check for potential per-cpu diffs and only then do refresh_cpu_vm_stats. The original patch also did cancel_delayed_work which we are not doing here. There are two reasons for that. Firstly cancel_delayed_work from idle context will blow up on RT kernels (reported by Mike): CPU: 1 PID: 0 Comm: swapper/1 Not tainted 4.5.0-rt3 #7 Hardware name: MEDION MS-7848/MS-7848, BIOS M7848W08.20C 09/23/2013 Call Trace: dump_stack+0x49/0x67 ___might_sleep+0xf5/0x180 rt_spin_lock+0x20/0x50 try_to_grab_pending+0x69/0x240 cancel_delayed_work+0x26/0xe0 quiet_vmstat+0x75/0xa0 cpu_idle_loop+0x38/0x3e0 cpu_startup_entry+0x13/0x20 start_secondary+0x114/0x140 And secondly, even on !RT kernels it might add some non trivial overhead which is not necessary. Even if the vmstat worker wakes up and preempts idle then it will be most likely a single shot noop because the stats were already synced and so it would end up on the oncpu_stat_off anyway. We just need to teach both vmstat_shepherd and vmstat_update to stop scheduling the worker if there is nothing to do. [mgalbraith@suse.de: cancel pending work of the cpu_stat_off CPU] Signed-off-by: Michal Hocko Reported-by: Mike Galbraith Acked-by: Christoph Lameter Signed-off-by: Mike Galbraith Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/vmstat.c | 68 +++++++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 46 insertions(+), 22 deletions(-) commit 1ce221036b83288358d8d5d5ff1784657b3ab4e9 Author: Vlastimil Babka Date: Fri Feb 5 15:36:21 2016 -0800 mm/Kconfig: correct description of DEFERRED_STRUCT_PAGE_INIT The description mentions kswapd threads, while the deferred struct page initialization is actually done by one-off "pgdatinitX" threads. Fix the description so that potentially users are not confused about pgdatinit threads using CPU after boot instead of kswapd. Signed-off-by: Vlastimil Babka Acked-by: Mel Gorman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/Kconfig | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 1f1ffb8a151e8c59899c78019f76cb8f64be13f5 Author: David Gibson Date: Fri Feb 5 15:36:19 2016 -0800 memblock: don't mark memblock_phys_mem_size() as __init At the moment memblock_phys_mem_size() is marked as __init, and so is discarded after boot. This is different from most of the memblock functions which are marked __init_memblock, and are only discarded after boot if memory hotplug is not configured. To allow for upcoming code which will need memblock_phys_mem_size() in the hotplug path, change it from __init to __init_memblock. Signed-off-by: David Gibson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memblock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d7ce36924344ace0dbdc855b1206cacc46b36d45 Author: Eric Dumazet Date: Fri Feb 5 15:36:16 2016 -0800 dump_stack: avoid potential deadlocks Some servers experienced fatal deadlocks because of a combination of bugs, leading to multiple cpus calling dump_stack(). The checksumming bug was fixed in commit 34ae6a1aa054 ("ipv6: update skb->csum when CE mark is propagated"). The second problem is a faulty locking in dump_stack() CPU1 runs in process context and calls dump_stack(), grabs dump_lock. CPU2 receives a TCP packet under softirq, grabs socket spinlock, and call dump_stack() from netdev_rx_csum_fault(). dump_stack() spins on atomic_cmpxchg(&dump_lock, -1, 2), since dump_lock is owned by CPU1 While dumping its stack, CPU1 is interrupted by a softirq, and happens to process a packet for the TCP socket locked by CPU2. CPU1 spins forever in spin_lock() : deadlock Stack trace on CPU1 looked like : NMI backtrace for cpu 1 RIP: _raw_spin_lock+0x25/0x30 ... Call Trace: tcp_v6_rcv+0x243/0x620 ip6_input_finish+0x11f/0x330 ip6_input+0x38/0x40 ip6_rcv_finish+0x3c/0x90 ipv6_rcv+0x2a9/0x500 process_backlog+0x461/0xaa0 net_rx_action+0x147/0x430 __do_softirq+0x167/0x2d0 call_softirq+0x1c/0x30 do_softirq+0x3f/0x80 irq_exit+0x6e/0xc0 smp_call_function_single_interrupt+0x35/0x40 call_function_single_interrupt+0x6a/0x70 printk+0x4d/0x4f printk_address+0x31/0x33 print_trace_address+0x33/0x3c print_context_stack+0x7f/0x119 dump_trace+0x26b/0x28e show_trace_log_lvl+0x4f/0x5c show_stack_log_lvl+0x104/0x113 show_stack+0x42/0x44 dump_stack+0x46/0x58 netdev_rx_csum_fault+0x38/0x3c __skb_checksum_complete_head+0x6e/0x80 __skb_checksum_complete+0x11/0x20 tcp_rcv_established+0x2bd5/0x2fd0 tcp_v6_do_rcv+0x13c/0x620 sk_backlog_rcv+0x15/0x30 release_sock+0xd2/0x150 tcp_recvmsg+0x1c1/0xfc0 inet_recvmsg+0x7d/0x90 sock_recvmsg+0xaf/0xe0 ___sys_recvmsg+0x111/0x3b0 SyS_recvmsg+0x5c/0xb0 system_call_fastpath+0x16/0x1b Fixes: b58d977432c8 ("dump_stack: serialize the output from dump_stack()") Signed-off-by: Eric Dumazet Cc: Alex Thorlton Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/dump_stack.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit acf128d048c76aeaa99646bce3488d73be215f70 Author: Andrea Arcangeli Date: Fri Feb 5 15:36:13 2016 -0800 mm: validate_mm browse_rb SMP race condition The mmap_sem for reading in validate_mm called from expand_stack is not enough to prevent the argumented rbtree rb_subtree_gap information to change from under us because expand_stack may be running from other threads concurrently which will hold the mmap_sem for reading too. The argumented rbtree is updated with vma_gap_update under the page_table_lock so use it in browse_rb() too to avoid false positives. Signed-off-by: Andrea Arcangeli Reported-by: Dmitry Vyukov Tested-by: Dmitry Vyukov Cc: Konstantin Khlebnikov Cc: Oleg Nesterov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/mmap.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit af1ddcb5c63cfb9744c29e88db0bab6bb25ad76b Author: Sudip Mukherjee Date: Fri Feb 5 15:36:10 2016 -0800 m32r: fix build failure due to SMP and MMU One of the randconfig build failed with the error: arch/m32r/kernel/smp.c: In function 'smp_flush_tlb_mm': arch/m32r/kernel/smp.c:283:20: error: subscripted value is neither array nor pointer nor vector mmc = &mm->context[cpu_id]; ^ arch/m32r/kernel/smp.c: In function 'smp_flush_tlb_page': arch/m32r/kernel/smp.c:353:20: error: subscripted value is neither array nor pointer nor vector mmc = &mm->context[cpu_id]; ^ arch/m32r/kernel/smp.c: In function 'smp_invalidate_interrupt': arch/m32r/kernel/smp.c:479:41: error: subscripted value is neither array nor pointer nor vector unsigned long *mmc = &flush_mm->context[cpu_id]; It turned out that CONFIG_SMP was defined but CONFIG_MMU was not defined. But arch/m32r/include/asm/mmu.h only defines mm_context_t as an array when both CONFIG_SMP and CONFIG_MMU are defined. And arch/m32r/kernel/smp.c is always using context as an array. So without MMU SMP can not work. Signed-off-by: Sudip Mukherjee Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/m32r/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 9c5a05bc350c29285a89d6e1f3b68c8c7f308207 Author: Ross Zwisler Date: Fri Feb 5 15:36:08 2016 -0800 block: fix pfn_mkwrite() DAX fault handler Previously the pfn_mkwrite() fault handler for raw block devices called bldev_dax_fault() -> __dax_fault() to do a full DAX page fault. Really what the pfn_mkwrite() fault handler needs to do is call dax_pfn_mkwrite() to make sure that the radix tree entry for the given PTE is marked as dirty so that a follow-up fsync or msync call will flush it durably to media. Fixes: 5a023cdba50c ("block: enable dax for raw block devices") Signed-off-by: Ross Zwisler Cc: Alexander Viro Cc: Dan Williams Cc: Dave Chinner Reviewed-by: Jan Kara Cc: Matthew Wilcox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/block_dev.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 823dd3224a07f618d652a7743c9603222d019de3 Author: Sasha Levin Date: Fri Feb 5 15:36:05 2016 -0800 signals: avoid random wakeups in sigsuspend() A random wakeup can get us out of sigsuspend() without TIF_SIGPENDING being set. Avoid that by making sure we were signaled, like sys_pause() does. Signed-off-by: Sasha Levin Acked-by: Oleg Nesterov Acked-by: Peter Zijlstra (Intel) Cc: Dmitry Vyukov Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/signal.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 0f4a943168f31d29a1701908931acaba518b131a Author: Nicholas Bellinger Date: Tue Jan 19 15:23:02 2016 -0800 target: Fix remote-port TMR ABORT + se_cmd fabric stop To address the bug where fabric driver level shutdown of se_cmd occurs at the same time when TMR CMD_T_ABORTED is happening resulting in a -1 ->cmd_kref, this patch adds a CMD_T_FABRIC_STOP bit that is used to determine when TMR + driver I_T nexus shutdown is happening concurrently. It changes target_sess_cmd_list_set_waiting() to obtain se_cmd->cmd_kref + set CMD_T_FABRIC_STOP, and drop local reference in target_wait_for_sess_cmds() and invoke extra target_put_sess_cmd() during Task Aborted Status (TAS) when necessary. Also, it adds a new target_wait_free_cmd() wrapper around transport_wait_for_tasks() for the special case within transport_generic_free_cmd() to set CMD_T_FABRIC_STOP, and is now aware of CMD_T_ABORTED + CMD_T_TAS status bits to know when an extra transport_put_cmd() during TAS is required. Note transport_generic_free_cmd() is expected to block on cmd->cmd_wait_comp in order to follow what iscsi-target expects during iscsi_conn context se_cmd shutdown. Cc: Quinn Tran Cc: Himanshu Madhani Cc: Sagi Grimberg Cc: Christoph Hellwig Cc: Hannes Reinecke Cc: Andy Grover Cc: Mike Christie Cc: stable@vger.kernel.org # 3.10+ Signed-off-by: Nicholas Bellinger drivers/target/target_core_tmr.c | 54 ++++++++---- drivers/target/target_core_transport.c | 145 +++++++++++++++++++++++++-------- include/target/target_core_base.h | 2 + 3 files changed, 150 insertions(+), 51 deletions(-) commit 79e2f8dd522873614eb31001745af487451a10de Merge: 9298230 e79aee4 53af16f Author: Rafael J. Wysocki Date: Sat Feb 6 00:34:01 2016 +0100 Merge branches 'pm-core' and 'pm-domains' * pm-core: PM: Avoid false-positive warnings in dev_pm_domain_set() ACPI / LPSS: set PM domain via helper setter * pm-domains: PM / Domains: Silence compiler warning for an unused function commit 929823040ab8609e88ae4acf32914dde0d063896 Merge: ed1f0ee 2db8f9a Author: Rafael J. Wysocki Date: Sat Feb 6 00:33:52 2016 +0100 Merge branches 'pnp' and 'acpi-cppc' * pnp: PNP: Add Haswell-ULT to Intel MCH size workaround * acpi-cppc: ACPI / CPPC: remove redundant mbox_send_message() declaration commit dd6f86af394160f01f8b6c5349752b63b9e95fcb Merge: ea5a273 ac75fe5 Author: Linus Torvalds Date: Fri Feb 5 12:46:38 2016 -0800 Merge tag 'media/v4.5-3' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media Pull media fixes from Mauro Carvalho Chehab: - vb2: fix a vb2_thread regression and DVB read() breakages - vsp1: fix compilation and links creation - s5k6a3: Fix VIDIOC_SUBDEV_G_FMT ioctl for TRY format - exynos4-is: fix a build issue, format negotiation and sensor detection - Fix a regression with pvrusb2 and ir-kbd-i2c - atmel-isi: fix debug message which only show the first format - tda1004x: fix a tuning bug if G_PROPERTY is called too early - saa7134-alsa: fix a bug at device unbinding/driver removal - Fix build of one driver if !HAS_DMA - soc_camera: cleanup control device on async_unbind * tag 'media/v4.5-3' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: [media] saa7134-alsa: Only frees registered sound cards [media] vb2-core: call threadio->fnc() if !VB2_BUF_STATE_ERROR [media] vb2: fix nasty vb2_thread regression [media] tda1004x: only update the frontend properties if locked [media] media: i2c: Don't export ir-kbd-i2c module alias [media] exynos4-is: make VIDEO_SAMSUNG_EXYNOS4_IS tristate [media] media: Kconfig: add dependency of HAS_DMA [media] exynos4-is: Wait for 100us before opening sensor [media] exynos4-is: Open shouldn't fail when sensor entity is not linked [media] s5k6a3: Fix VIDIOC_SUBDEV_G_FMT ioctl for TRY format [media] exynos4-is: fix a format string bug [media] drivers/media: vsp1_video: fix compile error [media] atmel-isi: fix debug message which only show the first format [media] soc_camera: cleanup control device on async_unbind [media] v4l: vsp1: Fix wrong entities links creation commit ea5a273c76f8ba3569705362b00c7d94fb92468e Merge: ed1741b 094fd3b Author: Linus Torvalds Date: Fri Feb 5 12:34:44 2016 -0800 Merge tag 'sound-4.5-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "This was a busy week and I had to prepare a pile of duct tapes for the bugs reported by syzkaller fuzzer in wide range of ALSA core APIs: timer, rawmidi, sequencer, and PCM OSS emulation. Let's see how many other holes we need to plug. Besides that, a few usual boring stuff, HD- and USB-audio quirks, have been added" * tag 'sound-4.5-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: timer: Fix leftover link at closing ALSA: seq: Fix lockdep warnings due to double mutex locks ALSA: rawmidi: Fix race at copying & updating the position ALSA: rawmidi: Make snd_rawmidi_transmit() race-free ALSA: hda - Add fixup for Mac Mini 7,1 model ALSA: hda/realtek - Support headset mode for ALC225 ALSA: hda/realtek - Support Dell headset mode for ALC225 ALSA: hda/realtek - New codec support of ALC225 ALSA: timer: Sync timer deletion at closing the system timer ALSA: timer: Fix link corruption due to double start or stop ALSA: seq: Fix yet another races among ALSA timer accesses ALSA: pcm: Fix potential deadlock in OSS emulation ALSA: rawmidi: Remove kernel WARNING for NULL user-space buffer check ALSA: seq: Fix race at closing in virmidi driver ALSA: emu10k1: correctly handling failed thread creation ALSA: usb-audio: Add quirk for Microsoft LifeCam HD-6000 ALSA: usb-audio: Add native DSD support for PS Audio NuWave DAC ALSA: usb-audio: Fix OPPO HA-1 vendor ID commit 7425f410ca6cffe81400906286f80e8e15d9b301 Author: Selvin Xavier Date: Fri Feb 5 20:06:40 2016 +0530 RDMA/ocrdma: Fixing ocrdma debugfs directory remove During the ocrdma device remove sequence, the debugfs directory tree of each ocrdma device needs to be removed. Use debugfs_remove_recursive instead of debugfs_remove. Signed-off-by: Selvin Xavier Signed-off-by: Doug Ledford drivers/infiniband/hw/ocrdma/ocrdma_stats.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit aff3ead9fa25b2a472d1a894365f66b28e1e2787 Author: Selvin Xavier Date: Fri Feb 5 20:06:39 2016 +0530 RDMA/ocrdma: Fix pkey_index returned by driver in rq work completion Currently returning the pkey value instead of pkey index. pkey index is always zero since ocrdma supports only default pkey. Signed-off-by: Selvin Xavier Signed-off-by: Doug Ledford drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 7d82df1663e8a66961954258f3a99701f0126e73 Author: Selvin Xavier Date: Fri Feb 5 20:06:38 2016 +0530 RDMA/ocrdma: populate max_sge_rd in device attributes max_sge_rd is used by some of the ULPs to calculate the maximum number of SGEs that can be used for RDMA READ. Populating this value in the response of query_device verb. Also, avoid checking the max_srq_sge while populating max_sge. Signed-off-by: Selvin Xavier Signed-off-by: Doug Ledford drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit fd98d89698855f6cf5650c014e5d3fca38783c8b Author: Selvin Xavier Date: Fri Feb 5 20:06:37 2016 +0530 RDMA/ocrdma: Initialize stats resources in the driver before ib device registration. In the latest kernel, process_mad hook of the driver can be invoked as soon as device is registered. In this hook, ocrdma driver is issuing a command to get the stats counters from the HW. This is triggering system crash since the statistics command resources are not allocated by the driver. Changing the sequence of initialization to avoid this crash. Signed-off-by: Selvin Xavier Signed-off-by: Doug Ledford drivers/infiniband/hw/ocrdma/ocrdma_main.c | 6 ++++++ drivers/infiniband/hw/ocrdma/ocrdma_stats.c | 14 ++++---------- drivers/infiniband/hw/ocrdma/ocrdma_stats.h | 2 ++ 3 files changed, 12 insertions(+), 10 deletions(-) commit 0cf1337e0b83c16de4e7e98dad3a6afce6043fea Author: Simon Horman Date: Fri Feb 5 14:10:13 2016 -0600 PCI: rcar: Add device tree support for r8a7793 Add "renesas,pcie-r8a7793" as a compatibility string for "renesas,pcie-rcar-gen2". This doesn't change the driver, so it does nothing by itself. But it does mean that checkpatch won't complain about a future patch that adds "renesas,pci-r8a7793" to a DT, which helps ensure that shipped DTs use documented compatibility strings. [bhelgaas: changelog] Signed-off-by: Simon Horman Signed-off-by: Bjorn Helgaas Acked-by: Rob Herring Documentation/devicetree/bindings/pci/rcar-pci.txt | 1 + 1 file changed, 1 insertion(+) commit a176cd304a8a07d6d9191126fd9bece4f67358c3 Author: Simon Horman Date: Fri Feb 5 14:10:04 2016 -0600 PCI: rcar: Add gen2 device tree support for r8a7793 Add "renesas,pci-r8a7793" as a compatibility string for "renesas,pci-rcar-gen2". This doesn't change the driver, so it does nothing by itself. But it does mean that checkpatch won't complain about a future patch that adds "renesas,pci-r8a7793" to a DT, which helps ensure that shipped DTs use documented compatibility strings. [bhelgaas: changelog] Signed-off-by: Simon Horman Signed-off-by: Bjorn Helgaas Acked-by: Rob Herring Documentation/devicetree/bindings/pci/pci-rcar-gen2.txt | 1 + 1 file changed, 1 insertion(+) commit ed1741b77c162ad7087949fda39af4ec8c33e663 Merge: df48ab3 d42d610 Author: Linus Torvalds Date: Fri Feb 5 11:20:15 2016 -0800 Merge git://www.linux-watchdog.org/linux-watchdog Pull watchdog fixes from Wim Van Sebroeck: "This fixes several Kconfig dependencies, a compilation warning in pcwd_usb, a failure to abort the sp805 wdt after a ping and the max63xx wdt's MODULE_LICENSE" * git://www.linux-watchdog.org/linux-watchdog: watchdog: Fix dependencies for !HAS_IOMEM archs watchdog: imgdpc: select WATCHDOG_CORE watchdog: tango: rename ARCH_TANGOX to ARCH_TANGO watchdog: pcwd_usb: fix compilation warning watchdog: sp805: ping fails to abort wdt reset watchdog: max63xx: make module's license marker match the header commit 6c361d10e0eb859233c71954abcd20d2d8700587 Author: Takashi Iwai Date: Fri Feb 5 20:12:24 2016 +0100 Revert "ALSA: hda - Fix noise on Gigabyte Z170X mobo" This reverts commit 0c25ad80408e95e0a4fbaf0056950206e95f726f. The original commit disabled the aamixer path due to the noise problem, but it turned out that some mobo with the same PCI SSID doesn't suffer from the issue, and the disabled function (analog loopback) is still demanded by users. Since the recent commit [e7fdd52779a6: ALSA: hda - Implement loopback control switch for Realtek and other codecs], we have the dynamic mixer switch to enable/disable the aamix path, and we don't have to disable the path statically any longer. So, let's revert the disablement, so that only the user suffering from the noise problem can turn off the aamix on the fly. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=108301 Reported-by: Cc: Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 8 -------- 1 file changed, 8 deletions(-) commit e6c058f9b2700a720d3fad0f6caad1d030c533ee Author: Ralf Baechle Date: Fri Feb 5 17:15:42 2016 +0100 MIPS: Wire up copy_file_range syscall. Signed-off-by: Ralf Baechle arch/mips/include/uapi/asm/unistd.h | 15 +++++++++------ arch/mips/kernel/scall32-o32.S | 1 + arch/mips/kernel/scall64-64.S | 1 + arch/mips/kernel/scall64-n32.S | 1 + arch/mips/kernel/scall64-o32.S | 1 + 5 files changed, 13 insertions(+), 6 deletions(-) commit eceb3e61c74356590f37cec89708770b333162c4 Author: Biao Huang Date: Wed Feb 3 09:24:45 2016 +0800 pinctrl: mediatek: fix direction control issue Since input-enable/disable and input-schmitt-enable/disable are workable when gpio direction is input, so add direction setting when do input-enable/disable and input-schmitt-enable/disable properties. Signed-off-by: Biao Huang Signed-off-by: Linus Walleij drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 2 ++ 1 file changed, 2 insertions(+) commit 56661a2ed5348f3d7a3ac8788656654dd50904cd Author: Takashi Sakamoto Date: Fri Feb 5 09:56:08 2016 +0900 ALSA: firewire-tascam: remove needless member for control and status message Commit 3beab0f844fa added a member for control and status message, while it's planned and not implemented yet. This commit removes it. Fixes: 3beab0f844fa('ALSA: firewire-tascam: add support for outgoing MIDI messages by asynchronous transaction') Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/tascam/tascam.h | 3 --- 1 file changed, 3 deletions(-) commit 61ebe499643703af517a8253662982f6f4764c92 Author: Takashi Sakamoto Date: Fri Feb 5 09:56:07 2016 +0900 ALSA: firewire-tascam: remove a flag for controller Currently, 'struct snd_tscm_spec' has a member named as 'is_controller' to identify MIDI controller. This member was originally added to skip parse control and status messages in isochronous packets for non-controller model. As long as I investigate, FW-1804 (non-controller) also transfers the control and status message, thus it becomes meaningless. This commit removes it. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/tascam/tascam.c | 3 --- sound/firewire/tascam/tascam.h | 1 - 2 files changed, 4 deletions(-) commit 3e78e1518e129407fae75c867e48828262b3ea6d Author: Takashi Sakamoto Date: Fri Feb 5 09:56:06 2016 +0900 ALSA: firewire-tascam: add support for FW-1804 This model supports: * maximum 12 PCM channels for PCM playback * maximum 18 PCM channels for PCM capture * 4 ports for MIDI playback * 4 ports for MIDI capture * control and status messages in tx isochronous packets * up to 96.0 kHz This commit adds support for the model. As the other supported models, all of available PCM channels are always enabled. As I described in commit c0949b278515da94, Ilya Zimnovich had investigated TASCAM FireWire series in 2011 with his FW-1804. In his report, this model has internal multiplexer and any software implementation can control it. Following to the design of ALSA firewire stack, this commit won't implement it. It should be in userspace via Linux fw character device. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/tascam/tascam.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 5d2560a427fc7c4050a320be62c4994705ca81b1 Author: Takashi Sakamoto Date: Fri Feb 5 09:56:05 2016 +0900 ALSA: firewire-tascam: fix NULL pointer dereference when model identification fails When unsupported models are connected, snd-firewire-tascam module causes NULL pointer dereference in fw_core_remove_address_handler() (due to list_del_rcu()). This commit prevents this bug. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/tascam/tascam-transaction.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 360a8245680053619205a3ae10e6bfe624a5da1d Author: David Henningsson Date: Fri Feb 5 09:05:41 2016 +0100 ALSA: hda - Fix static checker warning in patch_hdmi.c The static checker warning is: sound/pci/hda/patch_hdmi.c:460 hdmi_eld_ctl_get() error: __memcpy() 'eld->eld_buffer' too small (256 vs 512) I have a hard time figuring out if this can ever cause an information leak (I don't think so), but nonetheless it does not hurt to increase the robustness of the code. Fixes: 68e03de98507 ('ALSA: hda - hdmi: Do not expose eld data when eld is invalid') Reported-by: Dan Carpenter Signed-off-by: David Henningsson Cc: # v3.9+ Signed-off-by: Takashi Iwai sound/pci/hda/patch_hdmi.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 320549a22484952d88d4e0320218765b16cd2174 Author: Mark Brown Date: Fri Feb 5 11:22:04 2016 +0000 regmap: mmio: Revert to v4.4 endianness handling Commit 29bb45f25ff3 (regmap-mmio: Use native endianness for read/write) attempted to fix some long standing bugs in the MMIO implementation for big endian systems caused by duplicate byte swapping in both regmap and readl()/writel() which affected MIPS systems as when they are in big endian mode they flip the endianness of all registers in the system, not just the CPU. MIPS systems had worked around this by declaring regmap using IPs as little endian which is inaccurate, unfortunately the issue had not been reported. Sadly the fix makes things worse rather than better. By changing the behaviour to match the documentation it caused behaviour changes for other IPs which broke them and by using the __raw I/O accessors to avoid the endianness swapping in readl()/writel() it removed some memory ordering guarantees and could potentially generate unvirtualisable instructions on some architectures. Unfortunately sorting out all this mess in any half way sensible fashion was far too invasive to go in during an -rc cycle so instead let's go back to the old broken behaviour for v4.5, the better fixes are already queued for v4.6. This does mean that we keep the broken MIPS DTs for another release but that seems the least bad way of handling the situation. Reported-by: Johannes Berg Signed-off-by: Mark Brown arch/mips/boot/dts/brcm/bcm6328.dtsi | 1 + arch/mips/boot/dts/brcm/bcm7125.dtsi | 1 + arch/mips/boot/dts/brcm/bcm7346.dtsi | 1 + arch/mips/boot/dts/brcm/bcm7358.dtsi | 1 + arch/mips/boot/dts/brcm/bcm7360.dtsi | 1 + arch/mips/boot/dts/brcm/bcm7362.dtsi | 1 + arch/mips/boot/dts/brcm/bcm7420.dtsi | 1 + arch/mips/boot/dts/brcm/bcm7425.dtsi | 1 + arch/mips/boot/dts/brcm/bcm7435.dtsi | 1 + drivers/base/regmap/regmap-mmio.c | 16 ++++++++-------- 10 files changed, 17 insertions(+), 8 deletions(-) commit 75edb54a1dea5ea1c8d3d82e27dc9ee3070f5935 Author: Dmitry Vyukov Date: Thu Feb 4 16:27:50 2016 +0100 x86: Fix KASAN false positives in thread_saved_pc() thread_saved_pc() reads stack of a potentially running task. This can cause false KASAN stack-out-of-bounds reports, because the running task concurrently poisons and unpoisons own stack. The same happens in get_wchan(), and get get_wchan() was fixed by using READ_ONCE_NOCHECK(). Do the same here. Example KASAN report triggered by sysrq-t: BUG: KASAN: out-of-bounds in sched_show_task+0x306/0x3b0 at addr ffff880043c97c18 Read of size 8 by task syz-executor/23839 [...] page dumped because: kasan: bad access detected [...] Call Trace: [] __asan_report_load8_noabort+0x3e/0x40 [] sched_show_task+0x306/0x3b0 [] show_state_filter+0x124/0x1a0 [] fn_show_state+0x10/0x20 [] k_spec+0xa8/0xe0 [] kbd_event+0xb9f/0x4000 [] input_to_handler+0x3a7/0x4b0 [] input_pass_values.part.5+0x554/0x6b0 [] input_handle_event+0x2ac/0x1070 [] input_inject_event+0x237/0x280 [] evdev_write+0x478/0x680 [] __vfs_write+0x113/0x480 [] vfs_write+0x167/0x4a0 [] SyS_write+0x111/0x220 Signed-off-by: Dmitry Vyukov Acked-by: Andrey Ryabinin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: glider@google.com Cc: kasan-dev@googlegroups.com Cc: kcc@google.com Cc: linux-kernel@vger.kernel.org Cc: ryabinin.a.a@gmail.com Signed-off-by: Ingo Molnar arch/x86/include/asm/processor.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 12ffbbe94d8c0186daccc2e61d5ff87b15aa7bc6 Merge: 6344a5c 0fb5b1f Author: James Bottomley Date: Thu Feb 4 21:37:52 2016 -0800 Merge remote-tracking branch 'mkp-scsi/4.5/scsi-fixes' into fixes commit 6739b3d7bc18a5373efd863b11831e8f515fffe1 Merge: c745884 91a25e4 Author: Dave Airlie Date: Fri Feb 5 15:24:17 2016 +1000 Merge branch 'drm-fixes-mst' of git://people.freedesktop.org/~airlied/linux into drm-fixes displayport multistream fixes from AMD. * 'drm-fixes-mst' of git://people.freedesktop.org/~airlied/linux: drm/dp/mst: deallocate payload on port destruction drm/dp/mst: Reverse order of MST enable and clearing VC payload table. drm/dp/mst: move GUID storage from mgr, port to only mst branch drm/dp/mst: change MST detection scheme drm/dp/mst: Calculate MST PBN with 31.32 fixed point drm: Add drm_fixp_from_fraction and drm_fixp2int_ceil drm/mst: Add range check for max_payloads during init drm/mst: Don't ignore the MST PBN self-test result drm: fix missing reference counting decrease commit 91a25e463130c8e19bdb42f2d827836c7937992e Author: Mykola Lysenko Date: Wed Jan 27 09:39:36 2016 -0500 drm/dp/mst: deallocate payload on port destruction This is needed to properly deallocate port payload after downstream branch get unplugged. In order to do this unplugged MST topology should be preserved, to find first alive port on path to unplugged MST topology, and send payload deallocation request to branch device of found port. For this mstb and port kref's are used in reversed order to track when port and branch memory could be freed. Added additional functions to find appropriate mstb as described above. Signed-off-by: Mykola Lysenko Reviewed-by: Harry Wentland Cc: stable@vger.kernel.org Signed-off-by: Dave Airlie drivers/gpu/drm/drm_dp_mst_topology.c | 91 ++++++++++++++++++++++++++++++++--- 1 file changed, 83 insertions(+), 8 deletions(-) commit c175cd16df272119534058f28cbd5eeac6ff2d24 Author: Andrey Grodzovsky Date: Fri Jan 22 17:07:29 2016 -0500 drm/dp/mst: Reverse order of MST enable and clearing VC payload table. On DELL U3014 if you clear the table before enabling MST it sometimes hangs the receiver. Signed-off-by: Andrey Grodzovsky Reviewed-by: Harry Wentland Cc: stable@vger.kernel.org Acked-by: Alex Deucher Signed-off-by: Dave Airlie drivers/gpu/drm/drm_dp_mst_topology.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 5e93b8208d3c419b515fb75e2601931c027e12ab Author: Hersen Wu Date: Fri Jan 22 17:07:28 2016 -0500 drm/dp/mst: move GUID storage from mgr, port to only mst branch Previous implementation does not handle case below: boot up one MST branch to DP connector of ASIC. After boot up, hot plug 2nd MST branch to DP output of 1st MST, GUID is not created for 2nd MST branch. When downstream port of 2nd MST branch send upstream request, it fails because 2nd MST branch GUID is not available. New Implementation: only create GUID for MST branch and save it within Branch. Signed-off-by: Hersen Wu Reviewed-by: Harry Wentland Cc: stable@vger.kernel.org Acked-by: Alex Deucher Signed-off-by: Dave Airlie drivers/gpu/drm/drm_dp_mst_topology.c | 64 +++++++++++++++-------------------- include/drm/drm_dp_mst_helper.h | 25 ++++++-------- 2 files changed, 38 insertions(+), 51 deletions(-) commit cfcfa086d43ced33e1099b9befb12f17fca102e1 Author: Mykola Lysenko Date: Fri Jan 22 17:07:27 2016 -0500 drm/dp/mst: change MST detection scheme 1. Get edid for all connected MST displays, not only on logical ports, in the same thread as MST topology detection is done: There are displays that have branches inside w/o logical ports. So in case another SST display connected downstream system can end-up in situation when 3 DOWN requests sent: two for ‘remote i2c read’ and one for ‘enum path resources’, making slots full. 2. Call notification callback in one place in the end of topology discovery/update: This is done to reduce number of events sent to userspace in case complex topology discovery is going, adding multiple number of connectors; 3. Remove notification callback call from short pulse interrupt processing function: This is done in order not to block interrupt processing function, in case any MST request will be made from it. Notification will be send from topology discovery/update work item. Signed-off-by: Mykola Lysenko Reviewed-by: Harry Wentland Cc: stable@vger.kernel.org Acked-by: Alex Deucher Signed-off-by: Dave Airlie drivers/gpu/drm/drm_dp_mst_topology.c | 37 ++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 18 deletions(-) commit a9ebb3e46c7ef6112c0da466ef0954673ad36832 Author: Harry Wentland Date: Fri Jan 22 17:07:26 2016 -0500 drm/dp/mst: Calculate MST PBN with 31.32 fixed point Our PBN value overflows the 20 bits integer part of the 20.12 fixed point. We need to use 31.32 fixed point to avoid this. This happens with display clocks larger than 293122 (at 24 bpp), which we see with the Sharp (and similar) 4k tiled displays. Signed-off-by: Harry Wentland Cc: stable@vger.kernel.org Reviewed-by: Alex Deucher Signed-off-by: Dave Airlie drivers/gpu/drm/drm_dp_mst_topology.c | 67 ++++++++++++++++++++--------------- 1 file changed, 39 insertions(+), 28 deletions(-) commit 64566b5e767f9bc3161055ca1b443a51afb52aad Author: Harry Wentland Date: Fri Jan 22 17:07:25 2016 -0500 drm: Add drm_fixp_from_fraction and drm_fixp2int_ceil drm_fixp_from_fraction allows us to create a fixed point directly from a fraction, rather than creating fixed point values and dividing later. This avoids overflow of our 64 bit value for large numbers. drm_fixp2int_ceil allows us to return the ceiling of our fixed point value. [airlied: squash Jordan's fix] 32-bit-build-fix: Jordan Lazare Signed-off-by: Harry Wentland Cc: stable@vger.kernel.org Reviewed-by: Alex Deucher Signed-off-by: Dave Airlie include/drm/drm_fixed.h | 53 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 51 insertions(+), 2 deletions(-) commit 4d6a10da79fddcf7460299ab390da74ef2b592f6 Author: Imre Deak Date: Fri Jan 29 14:44:29 2016 +0200 drm/mst: Add range check for max_payloads during init max_payload is limited by the space we have in drm_dp_mst_topology_mgr::vcpi_mask,payload_mask. We need to track max_payloads+1 IDs in these masks, see drm_dp_mst_assign_payload_id(). Add a sanity check for this. Caught by coverity. Signed-off-by: Imre Deak Reviewed-by: David Weinehall Signed-off-by: Dave Airlie drivers/gpu/drm/drm_dp_mst_topology.c | 3 +++ 1 file changed, 3 insertions(+) commit 441388a8a73f905359e60518cfc18eca6aed2b6a Author: Imre Deak Date: Fri Jan 29 14:44:28 2016 +0200 drm/mst: Don't ignore the MST PBN self-test result Otherwise this call would have no effect. Caught by Coverity. Signed-off-by: Imre Deak Reviewed-by: David Weinehall Signed-off-by: Dave Airlie drivers/gpu/drm/drm_dp_mst_topology.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit dabe19540af9e563d526113bb102e1b9b9fa73f9 Author: Insu Yun Date: Mon Feb 1 11:08:29 2016 -0500 drm: fix missing reference counting decrease In drm_dp_mst_allocate_vcpi, it returns true in two paths, but in one path, there is no reference couting decrease. Signed-off-by: Insu Yun Cc: stable@vger.kernel.org Signed-off-by: Dave Airlie drivers/gpu/drm/drm_dp_mst_topology.c | 1 + 1 file changed, 1 insertion(+) commit c745884b30f96348f83ce59caf6798d8085daa77 Merge: ec71f12 6357b75 Author: Dave Airlie Date: Fri Feb 5 14:48:36 2016 +1000 Merge branch 'drm-fixes-4.5' of git://people.freedesktop.org/~agd5f/linux into drm-fixes - fix and enable iceland/topaz support - handle WC on platforms that don't support it * 'drm-fixes-4.5' of git://people.freedesktop.org/~agd5f/linux: drm/amdgpu: disable uvd and vce clockgating on Fiji drm/amdgpu: remove exp hardware support from iceland drm/amdgpu: load MEC ucode manually on iceland drm/amdgpu: don't load MEC2 on topaz drm/amdgpu: drop topaz support from gmc8 module drm/amdgpu: pull topaz gmc bits into gmc_v7 drm/amdgpu: The VI specific EXE bit should only apply to GMC v8.0 above drm/amdgpu: iceland use CI based MC IP drm/amdgpu: move gmc7 support out of CIK dependency drm/amdgpu/gfx7: enable cp inst/reg error interrupts drm/amdgpu/gfx8: enable cp inst/reg error interrupts drm/amdgpu: mask out WC from BO on unsupported arches drm/radeon: mask out WC from BO on unsupported arches drm: add helper to check for wc memory support drm/amdgpu: no need to load MC firmware on fiji commit ec71f1284ae4bb8e2cee27c3931449187a14fe68 Merge: 07c8fed 642f0f2 Author: Dave Airlie Date: Fri Feb 5 14:47:24 2016 +1000 Merge tag 'drm-amdkfd-fixes-2016-01-28' of git://people.freedesktop.org/~gabbayo/linux into drm-fixes two static checker fixes. * tag 'drm-amdkfd-fixes-2016-01-28' of git://people.freedesktop.org/~gabbayo/linux: drm/amdkfd: Remove unnecessary cast in kfree drm/amdgpu: fix non-ANSI declaration of amdgpu_amdkfd_gfx_*_get_functions() commit 07c8fedd701acb595d3520f522772bd40cc02e67 Merge: c6b431c 37e1106 Author: Dave Airlie Date: Fri Feb 5 14:45:44 2016 +1000 Merge branch 'exynos-drm-fixes' of git://git.kernel.org:/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-fixes Just regression fixes. - Fix build warning and error without PM configuration - Fix no display issue on Snow board reported by Michal Suchanek, http://www.spinics.net/lists/dri-devel/msg99473.html * 'exynos-drm-fixes' of git://git.kernel.org:/pub/scm/linux/kernel/git/daeinki/drm-exynos: drm/exynos: dp: Fix panel and bridge lookup logic drm: exynos: make PM functions as __maybe_unused drm/exynos: fix building without CONFIG_PM_SLEEP commit c6b431cc595b714c631866087b00dc2db9c5f450 Merge: 87d0f93 29ce4ed Author: Dave Airlie Date: Fri Feb 5 14:44:16 2016 +1000 Merge branch 'drm/adv7511' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux into drm-fixes misc adv7511 edid reading fixes. * 'drm/adv7511' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: drm: adv7511: it's HPD, not HDP drm: adv7511: mark ADV7511_REG_EDID_READ_CTRL volatile drm: adv7511: really enable interrupts for EDID detection commit 87d0f93961b201997b0d2d41af259e794a4e41b9 Merge: 36f90b0 f2e3051 Author: Dave Airlie Date: Fri Feb 5 14:43:35 2016 +1000 Merge tag 'drm-intel-fixes-2016-02-04' of git://anongit.freedesktop.org/drm-intel into drm-fixes misc i915 fixes. * tag 'drm-intel-fixes-2016-02-04' of git://anongit.freedesktop.org/drm-intel: drm/i915: refine qemu south bridge detection drm/i915: Remove select to deleted STOP_MACHINE from Kconfig drm/i915: Fix NULL plane->fb oops on SKL drm/i915: Don't reject primary plane windowing with color keying enabled on SKL+ drm/i915/dp: fall back to 18 bpp when sink capability is unknown drm/i915: Make sure DC writes are coherent on flush. commit 0fb5b1fb30fba3671dd5b1489d78e93e08d62e4e Author: Martin K. Petersen Date: Thu Feb 4 00:52:12 2016 -0500 block/sd: Return -EREMOTEIO when WRITE SAME and DISCARD are disabled When a storage device rejects a WRITE SAME command we will disable write same functionality for the device and return -EREMOTEIO to the block layer. -EREMOTEIO will in turn prevent DM from retrying the I/O and/or failing the path. Yiwen Jiang discovered a small race where WRITE SAME requests issued simultaneously would cause -EIO to be returned. This happened because any requests being prepared after WRITE SAME had been disabled for the device caused us to return BLKPREP_KILL. The latter caused the block layer to return -EIO upon completion. To overcome this we introduce BLKPREP_INVALID which indicates that this is an invalid request for the device. blk_peek_request() is modified to return -EREMOTEIO in that case. Reported-by: Yiwen Jiang Suggested-by: Mike Snitzer Reviewed-by: Hannes Reinicke Reviewed-by: Ewan Milne Reviewed-by: Yiwen Jiang Signed-off-by: Martin K. Petersen block/blk-core.c | 6 ++++-- drivers/scsi/sd.c | 4 ++-- include/linux/blkdev.h | 9 ++++++--- 3 files changed, 12 insertions(+), 7 deletions(-) commit 82c43310508eb19eb41fe7862e89afeb74030b84 Author: Mika Westerberg Date: Wed Jan 27 16:19:13 2016 +0200 SCSI: Add Marvell Console to VPD blacklist I have a Marvell 88SE9230 SATA Controller that has some sort of integrated console SCSI device attached to one of the ports. ata14: SATA link up 1.5 Gbps (SStatus 113 SControl 300) ata14.00: ATAPI: MARVELL VIRTUALL, 1.09, max UDMA/66 ata14.00: configured for UDMA/66 scsi 13:0:0:0: Processor Marvell Console 1.01 PQ: 0 ANSI: 5 Sending it VPD INQUIRY command seem to always fail with following error: ata14.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 ata14.00: irq_stat 0x40000001 ata14.00: cmd a0/01:00:00:00:01/00:00:00:00:00/a0 tag 2 dma 16640 in Inquiry 12 01 00 00 ff 00res 00/00:00:00:00:00/00:00:00:00:00/00 Emask 0x3 (HSM violation) ata14: hard resetting link This has been minor annoyance (only error printed on dmesg) until commit 09e2b0b14690 ("scsi: rescan VPD attributes") added call to scsi_attach_vpd() in scsi_rescan_device(). The commit causes the system to splat out following errors continuously without ever reaching the UI: ata14.00: configured for UDMA/66 ata14: EH complete ata14.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 ata14.00: irq_stat 0x40000001 ata14.00: cmd a0/01:00:00:00:01/00:00:00:00:00/a0 tag 6 dma 16640 in Inquiry 12 01 00 00 ff 00res 00/00:00:00:00:00/00:00:00:00:00/00 Emask 0x3 (HSM violation) ata14: hard resetting link ata14: SATA link up 1.5 Gbps (SStatus 113 SControl 300) ata14.00: configured for UDMA/66 ata14: EH complete ata14.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 ata14.00: irq_stat 0x40000001 ata14.00: cmd a0/01:00:00:00:01/00:00:00:00:00/a0 tag 7 dma 16640 in Inquiry 12 01 00 00 ff 00res 00/00:00:00:00:00/00:00:00:00:00/00 Emask 0x3 (HSM violation) Without in-depth understanding of SCSI layer and the Marvell controller, I suspect this happens because when the link goes down (because of an error) we schedule scsi_rescan_device() which again fails to read VPD data... ad infinitum. Since VPD data cannot be read from the device anyway we prevent the SCSI layer from even trying by blacklisting the device. This gets away the error and the system starts up normally. [mkp: Widened the match to all revisions of this device] Cc: Signed-off-by: Mika Westerberg Reported-by: Kirill A. Shutemov Reported-by: Alexander Duyck Signed-off-by: Martin K. Petersen drivers/scsi/scsi_devinfo.c | 1 + 1 file changed, 1 insertion(+) commit d2d06d4fe0f2cc2df9b17fefec96e6e1a1271d91 Author: Hannes Reinecke Date: Fri Jan 22 15:42:41 2016 +0100 scsi_dh_rdac: always retry MODE SELECT on command lock violation If MODE SELECT returns with sense '05/91/36' (command lock violation) it should always be retried without counting the number of retries. During an HBA upgrade or similar circumstances one might see a flood of MODE SELECT command from various HBAs, which will easily trigger the sense code and exceed the retry count. Cc: Signed-off-by: Hannes Reinecke Reviewed-by: Johannes Thumshirn Signed-off-by: Martin K. Petersen drivers/scsi/device_handler/scsi_dh_rdac.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 0c0fe3b0fa45082cd752553fdb3a4b42503a118e Author: Filipe Manana Date: Wed Feb 3 19:17:27 2016 +0000 Btrfs: fix hang on extent buffer lock caused by the inode_paths ioctl While doing some tests I ran into an hang on an extent buffer's rwlock that produced the following trace: [39389.800012] NMI watchdog: BUG: soft lockup - CPU#15 stuck for 22s! [fdm-stress:32166] [39389.800016] NMI watchdog: BUG: soft lockup - CPU#14 stuck for 22s! [fdm-stress:32165] [39389.800016] Modules linked in: btrfs dm_mod ppdev xor sha256_generic hmac raid6_pq drbg ansi_cprng aesni_intel i2c_piix4 acpi_cpufreq aes_x86_64 ablk_helper tpm_tis parport_pc i2c_core sg cryptd evdev psmouse lrw tpm parport gf128mul serio_raw pcspkr glue_helper processor button loop autofs4 ext4 crc16 mbcache jbd2 sd_mod sr_mod cdrom ata_generic virtio_scsi ata_piix libata virtio_pci virtio_ring crc32c_intel scsi_mod e1000 virtio floppy [last unloaded: btrfs] [39389.800016] irq event stamp: 0 [39389.800016] hardirqs last enabled at (0): [< (null)>] (null) [39389.800016] hardirqs last disabled at (0): [] copy_process+0x638/0x1a35 [39389.800016] softirqs last enabled at (0): [] copy_process+0x638/0x1a35 [39389.800016] softirqs last disabled at (0): [< (null)>] (null) [39389.800016] CPU: 14 PID: 32165 Comm: fdm-stress Not tainted 4.4.0-rc6-btrfs-next-18+ #1 [39389.800016] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS by qemu-project.org 04/01/2014 [39389.800016] task: ffff880175b1ca40 ti: ffff8800a185c000 task.ti: ffff8800a185c000 [39389.800016] RIP: 0010:[] [] queued_spin_lock_slowpath+0x57/0x158 [39389.800016] RSP: 0018:ffff8800a185fb80 EFLAGS: 00000202 [39389.800016] RAX: 0000000000000101 RBX: ffff8801710c4e9c RCX: 0000000000000101 [39389.800016] RDX: 0000000000000100 RSI: 0000000000000001 RDI: 0000000000000001 [39389.800016] RBP: ffff8800a185fb98 R08: 0000000000000001 R09: 0000000000000000 [39389.800016] R10: ffff8800a185fb68 R11: 6db6db6db6db6db7 R12: ffff8801710c4e98 [39389.800016] R13: ffff880175b1ca40 R14: ffff8800a185fc10 R15: ffff880175b1ca40 [39389.800016] FS: 00007f6d37fff700(0000) GS:ffff8802be9c0000(0000) knlGS:0000000000000000 [39389.800016] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [39389.800016] CR2: 00007f6d300019b8 CR3: 0000000037c93000 CR4: 00000000001406e0 [39389.800016] Stack: [39389.800016] ffff8801710c4e98 ffff8801710c4e98 ffff880175b1ca40 ffff8800a185fbb0 [39389.800016] ffffffff81091e11 ffff8801710c4e98 ffff8800a185fbc8 ffffffff81091895 [39389.800016] ffff8801710c4e98 ffff8800a185fbe8 ffffffff81486c5c ffffffffa067288c [39389.800016] Call Trace: [39389.800016] [] queued_read_lock_slowpath+0x46/0x60 [39389.800016] [] do_raw_read_lock+0x3e/0x41 [39389.800016] [] _raw_read_lock+0x3d/0x44 [39389.800016] [] ? btrfs_tree_read_lock+0x54/0x125 [btrfs] [39389.800016] [] btrfs_tree_read_lock+0x54/0x125 [btrfs] [39389.800016] [] ? btrfs_find_item+0xa7/0xd2 [btrfs] [39389.800016] [] btrfs_ref_to_path+0xd6/0x174 [btrfs] [39389.800016] [] inode_to_path+0x53/0xa2 [btrfs] [39389.800016] [] paths_from_inode+0x117/0x2ec [btrfs] [39389.800016] [] btrfs_ioctl+0xd5b/0x2793 [btrfs] [39389.800016] [] ? arch_local_irq_save+0x9/0xc [39389.800016] [] ? __this_cpu_preempt_check+0x13/0x15 [39389.800016] [] ? arch_local_irq_save+0x9/0xc [39389.800016] [] ? rcu_read_unlock+0x3e/0x5d [39389.800016] [] do_vfs_ioctl+0x42b/0x4ea [39389.800016] [] ? __fget_light+0x62/0x71 [39389.800016] [] SyS_ioctl+0x57/0x79 [39389.800016] [] entry_SYSCALL_64_fastpath+0x12/0x6f [39389.800016] Code: b9 01 01 00 00 f7 c6 00 ff ff ff 75 32 83 fe 01 89 ca 89 f0 0f 45 d7 f0 0f b1 13 39 f0 74 04 89 c6 eb e2 ff ca 0f 84 fa 00 00 00 <8b> 03 84 c0 74 04 f3 90 eb f6 66 c7 03 01 00 e9 e6 00 00 00 e8 [39389.800012] Modules linked in: btrfs dm_mod ppdev xor sha256_generic hmac raid6_pq drbg ansi_cprng aesni_intel i2c_piix4 acpi_cpufreq aes_x86_64 ablk_helper tpm_tis parport_pc i2c_core sg cryptd evdev psmouse lrw tpm parport gf128mul serio_raw pcspkr glue_helper processor button loop autofs4 ext4 crc16 mbcache jbd2 sd_mod sr_mod cdrom ata_generic virtio_scsi ata_piix libata virtio_pci virtio_ring crc32c_intel scsi_mod e1000 virtio floppy [last unloaded: btrfs] [39389.800012] irq event stamp: 0 [39389.800012] hardirqs last enabled at (0): [< (null)>] (null) [39389.800012] hardirqs last disabled at (0): [] copy_process+0x638/0x1a35 [39389.800012] softirqs last enabled at (0): [] copy_process+0x638/0x1a35 [39389.800012] softirqs last disabled at (0): [< (null)>] (null) [39389.800012] CPU: 15 PID: 32166 Comm: fdm-stress Tainted: G L 4.4.0-rc6-btrfs-next-18+ #1 [39389.800012] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS by qemu-project.org 04/01/2014 [39389.800012] task: ffff880179294380 ti: ffff880034a60000 task.ti: ffff880034a60000 [39389.800012] RIP: 0010:[] [] queued_write_lock_slowpath+0x62/0x72 [39389.800012] RSP: 0018:ffff880034a639f0 EFLAGS: 00000206 [39389.800012] RAX: 0000000000000101 RBX: ffff8801710c4e98 RCX: 0000000000000000 [39389.800012] RDX: 00000000000000ff RSI: 0000000000000000 RDI: ffff8801710c4e9c [39389.800012] RBP: ffff880034a639f8 R08: 0000000000000001 R09: 0000000000000000 [39389.800012] R10: ffff880034a639b0 R11: 0000000000001000 R12: ffff8801710c4e98 [39389.800012] R13: 0000000000000001 R14: ffff880172cbc000 R15: ffff8801710c4e00 [39389.800012] FS: 00007f6d377fe700(0000) GS:ffff8802be9e0000(0000) knlGS:0000000000000000 [39389.800012] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [39389.800012] CR2: 00007f6d3d3c1000 CR3: 0000000037c93000 CR4: 00000000001406e0 [39389.800012] Stack: [39389.800012] ffff8801710c4e98 ffff880034a63a10 ffffffff81091963 ffff8801710c4e98 [39389.800012] ffff880034a63a30 ffffffff81486f1b ffffffffa0672cb3 ffff8801710c4e00 [39389.800012] ffff880034a63a78 ffffffffa0672cb3 ffff8801710c4e00 ffff880034a63a58 [39389.800012] Call Trace: [39389.800012] [] do_raw_write_lock+0x72/0x8c [39389.800012] [] _raw_write_lock+0x3a/0x41 [39389.800012] [] ? btrfs_tree_lock+0x119/0x251 [btrfs] [39389.800012] [] btrfs_tree_lock+0x119/0x251 [btrfs] [39389.800012] [] ? rcu_read_unlock+0x5b/0x5d [btrfs] [39389.800012] [] ? btrfs_root_node+0xda/0xe6 [btrfs] [39389.800012] [] btrfs_lock_root_node+0x22/0x42 [btrfs] [39389.800012] [] btrfs_search_slot+0x1b8/0x758 [btrfs] [39389.800012] [] ? time_hardirqs_on+0x15/0x28 [39389.800012] [] btrfs_lookup_inode+0x31/0x95 [btrfs] [39389.800012] [] ? trace_hardirqs_on+0xd/0xf [39389.800012] [] ? mutex_lock_nested+0x397/0x3bc [39389.800012] [] __btrfs_update_delayed_inode+0x59/0x1c0 [btrfs] [39389.800012] [] __btrfs_commit_inode_delayed_items+0x194/0x5aa [btrfs] [39389.800012] [] ? _raw_spin_unlock+0x31/0x44 [39389.800012] [] __btrfs_run_delayed_items+0xa4/0x15c [btrfs] [39389.800012] [] btrfs_run_delayed_items+0x11/0x13 [btrfs] [39389.800012] [] btrfs_commit_transaction+0x234/0x96e [btrfs] [39389.800012] [] btrfs_sync_fs+0x145/0x1ad [btrfs] [39389.800012] [] btrfs_ioctl+0x11d2/0x2793 [btrfs] [39389.800012] [] ? arch_local_irq_save+0x9/0xc [39389.800012] [] ? __might_fault+0x4c/0xa7 [39389.800012] [] ? __might_fault+0x4c/0xa7 [39389.800012] [] ? arch_local_irq_save+0x9/0xc [39389.800012] [] ? rcu_read_unlock+0x3e/0x5d [39389.800012] [] do_vfs_ioctl+0x42b/0x4ea [39389.800012] [] ? __fget_light+0x62/0x71 [39389.800012] [] SyS_ioctl+0x57/0x79 [39389.800012] [] entry_SYSCALL_64_fastpath+0x12/0x6f [39389.800012] Code: f0 0f b1 13 85 c0 75 ef eb 2a f3 90 8a 03 84 c0 75 f8 f0 0f b0 13 84 c0 75 f0 ba ff 00 00 00 eb 0a f0 0f b1 13 ff c8 74 0b f3 90 <8b> 03 83 f8 01 75 f7 eb ed c6 43 04 00 5b 5d c3 0f 1f 44 00 00 This happens because in the code path executed by the inode_paths ioctl we end up nesting two calls to read lock a leaf's rwlock when after the first call to read_lock() and before the second call to read_lock(), another task (running the delayed items as part of a transaction commit) has already called write_lock() against the leaf's rwlock. This situation is illustrated by the following diagram: Task A Task B btrfs_ref_to_path() btrfs_commit_transaction() read_lock(&eb->lock); btrfs_run_delayed_items() __btrfs_commit_inode_delayed_items() __btrfs_update_delayed_inode() btrfs_lookup_inode() write_lock(&eb->lock); --> task waits for lock read_lock(&eb->lock); --> makes this task hang forever (and task B too of course) So fix this by avoiding doing the nested read lock, which is easily avoidable. This issue does not happen if task B calls write_lock() after task A does the second call to read_lock(), however there does not seem to exist anything in the documentation that mentions what is the expected behaviour for recursive locking of rwlocks (leaving the idea that doing so is not a good usage of rwlocks). Also, as a side effect necessary for this fix, make sure we do not needlessly read lock extent buffers when the input path has skip_locking set (used when called from send). Cc: stable@vger.kernel.org Signed-off-by: Filipe Manana fs/btrfs/backref.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 89140fdaf11aec81e93d5590a993720f2ef0d26e Author: Joe Lawrence Date: Wed Feb 3 12:51:12 2016 -0500 xhci: harden xhci_find_next_ext_cap against device removal xhci_find_next_ext_cap doesn't check for PCI hotplug removal and may use the PCI master abort bit pattern (~0) to calculate a new PCI address offset to read/write. The has lead to reproducable crashes when testing surprise removal during device initialization on a Stratus platform, at least after commit d5ddcdf4d672 ("xhci: rework xhci extended capability list parsing functions"). The crash is repeatable on a Stratus platform when injecting hardware faults to induce xHCI host controller hotplug during driver initialization. If a PCI read in xhci_find_next_ext_cap returns the master abort pattern, quirk_usb_handoff_xhci may start using a bogus ext_cap_offset to start searching more bogus PCI addresses. Signed-off-by: Joe Lawrence Acked-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-ext-caps.h | 4 ++++ 1 file changed, 4 insertions(+) commit df48ab3c2f5ffca88b7803ffbadd074bd5a0a2ef Merge: 5787c25 3e275c6 Author: Linus Torvalds Date: Thu Feb 4 14:09:55 2016 -0800 Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux Pull arm64 fixes from Will Deacon: "Nothing particularly interesting here, but all important fixes nonetheless: - Add missing PAN toggling in the futex code - Fix missing #include that briefly caused issues in -next - Allow changing of vmalloc permissions with set_memory_* (used by bpf)" * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: arm64: asm: Explicitly include linux/personality.h in asm/page.h arm64: futex.h: Add missing PAN toggling arm64: allow vmalloc regions to be set with set_memory_* commit 381a65c21aa1fcf4f3fafe70027b79b303bdb71d Author: Dinh Nguyen Date: Wed Feb 3 11:03:06 2016 -0600 ARM: multi_v7_defconfig: enable DW_WATCHDOG The watchdog timer on the SoCFPGA platform is the Synopsys Designware watchdog. Enable CONFIG_DW_WATCHDOG for the driver to get built. Signed-off-by: Dinh Nguyen Tested-by: Kevin Hilman Signed-off-by: Olof Johansson arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit 418d5516568b3fdbc4e7b53677dd78aed8514565 Author: Linus Walleij Date: Mon Feb 1 14:18:57 2016 +0100 ARM: nomadik: fix up SD/MMC DT settings The DTSI file for the Nomadik does not properly specify how the PL180 levelshifter is connected: the Nomadik actually needs all the five st,sig-dir-* flags set to properly control all lines out. Further this board supports full power cycling of the card, and since this variant has no hardware clock gating, it needs a ridiculously low frequency setting to keep up with the ever overflowing FIFO. The pin configuration set-up is a bit of a mystery, because of course these pins are a mix of inputs and outputs. However the reference implementation sets all pins to "output" with unspecified initial value, so let's do that here as well. Cc: stable@vger.kernel.org Signed-off-by: Linus Walleij Acked-by: Ulf Hansson Signed-off-by: Olof Johansson arch/arm/boot/dts/ste-nomadik-stn8815.dtsi | 37 ++++++++++++++++-------------- 1 file changed, 20 insertions(+), 17 deletions(-) commit 207b08b9426dfaa63fcfea4156be0acb5b46ee38 Merge: 5c82171 6a4290c Author: Greg Kroah-Hartman Date: Thu Feb 4 13:07:23 2016 -0800 Merge tag 'fixes-for-v4.5-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus Felipe writes: usb: fixes for v4.5-rc2 DWC3 got a fix for OTG Certification, DWC2 has two fixes for regressions on RasPI, MUSB has a NULL pointer dereference fix for ux500 platforms and two PHYs (MSM and MXS) got some minor fixes. While at that, I'm also adding a fix to my email address which has changed recently. commit 5787c25240c92df25f34c1abb7f76a96d8615034 Merge: 04d740d 9ea0641 Author: Linus Torvalds Date: Thu Feb 4 11:50:15 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md Pull MD fix from Shaohua Li: "As you know, Neil steps down from MD. I'm looking after it. Here are some patches queued. A build fix from Gayatri and several trival patches from me" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md: md-cluster: delete useless code md-cluster: fix missing memory free raid6/algos.c : bug fix : Add the missing definitions to the pq.h file MD: add myself as MD maintainer MD: rename some functions commit 04d740d5f5a3f37d69fef112b061340fcef6a26d Merge: b37a05c b85d990 Author: Linus Torvalds Date: Thu Feb 4 11:18:22 2016 -0800 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma Pull rdma fixes from Doug Ledford: - One minor fix to the ib core - Four minor fixes to the Mellanox drivers - Remove three deprecated drivers from staging/rdma now that all of Greg's queued changes to them are merged * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: staging/rdma: remove deprecated ipath driver staging/rdma: remove deprecated ehca driver staging/rdma: remove deprecated amso1100 driver IB/core: Set correct payload length for RoCEv2 over IPv6 IB/mlx5: Use MLX5_GET to correctly get end of padding mode IB/mlx5: Fix use of null pointer PD IB/mlx5: Fix reqlen validation in mlx5_ib_alloc_ucontext IB/mlx5: Add CREATE_CQ and CREATE_QP to uverbs_ex_cmd_mask commit ac75fe5d8fe4a0bf063be18fb29684405279e79e Author: Mauro Carvalho Chehab Date: Thu Feb 4 15:59:43 2016 -0200 [media] saa7134-alsa: Only frees registered sound cards That prevents this bug: [ 2382.269496] BUG: unable to handle kernel NULL pointer dereference at 0000000000000540 [ 2382.270013] IP: [] snd_card_free+0x36/0x70 [snd] [ 2382.270013] PGD 0 [ 2382.270013] Oops: 0002 [#1] SMP [ 2382.270013] Modules linked in: saa7134_alsa(-) tda1004x saa7134_dvb videobuf2_dvb dvb_core tda827x tda8290 tuner saa7134 tveeprom videobuf2_dma_sg videobuf2_memops videobuf2_v4l2 videobuf2_core v4l2_common videodev media auth_rpcgss nfsv4 dns_resolver nfs lockd grace sunrpc tun bridge stp llc ebtables ip6table_filter ip6_tables nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack it87 hwmon_vid snd_hda_codec_idt snd_hda_codec_generic iTCO_wdt iTCO_vendor_support snd_hda_intel snd_hda_codec snd_hwdep snd_hda_core snd_seq pcspkr i2c_i801 snd_seq_device snd_pcm snd_timer lpc_ich snd mfd_core soundcore binfmt_misc i915 video i2c_algo_bit drm_kms_helper drm r8169 ata_generic serio_raw pata_acpi mii i2c_core [last unloaded: videobuf2_memops] [ 2382.270013] CPU: 0 PID: 4899 Comm: rmmod Not tainted 4.5.0-rc1+ #4 [ 2382.270013] Hardware name: PCCHIPS P17G/P17G, BIOS 080012 05/14/2008 [ 2382.270013] task: ffff880039c38000 ti: ffff88003c764000 task.ti: ffff88003c764000 [ 2382.270013] RIP: 0010:[] [] snd_card_free+0x36/0x70 [snd] [ 2382.270013] RSP: 0018:ffff88003c767ea0 EFLAGS: 00010286 [ 2382.270013] RAX: ffff88003c767eb8 RBX: 0000000000000000 RCX: 0000000000006260 [ 2382.270013] RDX: ffffffffa020a060 RSI: ffffffffa0206de1 RDI: ffff88003c767eb0 [ 2382.270013] RBP: ffff88003c767ed8 R08: 0000000000019960 R09: ffffffff811a5412 [ 2382.270013] R10: ffffea0000d7c200 R11: 0000000000000000 R12: ffff88003c767ea8 [ 2382.270013] R13: 00007ffe760617f7 R14: 0000000000000000 R15: 0000557625d7f1e0 [ 2382.270013] FS: 00007f80bb1c0700(0000) GS:ffff88003f400000(0000) knlGS:0000000000000000 [ 2382.270013] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b [ 2382.270013] CR2: 0000000000000540 CR3: 000000003c00f000 CR4: 00000000000006f0 [ 2382.270013] Stack: [ 2382.270013] 000000003c767ed8 ffffffff00000000 ffff880000000000 ffff88003c767eb8 [ 2382.270013] ffff88003c767eb8 ffffffffa049a890 00007ffe76060060 ffff88003c767ef0 [ 2382.270013] ffffffffa049889d ffffffffa049a500 ffff88003c767f48 ffffffff8111079c [ 2382.270013] Call Trace: [ 2382.270013] [] saa7134_alsa_exit+0x1d/0x780 [saa7134_alsa] [ 2382.270013] [] SyS_delete_module+0x19c/0x1f0 [ 2382.270013] [] entry_SYSCALL_64_fastpath+0x12/0x71 [ 2382.270013] Code: 20 a0 48 c7 c6 e1 6d 20 a0 48 89 e5 41 54 53 4c 8d 65 d0 48 89 fb 48 83 ec 28 c7 45 d0 00 00 00 00 49 8d 7c 24 08 e8 7a 55 ed e0 <4c> 89 a3 40 05 00 00 48 89 df e8 eb fd ff ff 85 c0 75 1a 48 8d [ 2382.270013] RIP [] snd_card_free+0x36/0x70 [snd] [ 2382.270013] RSP [ 2382.270013] CR2: 0000000000000540 Cc: stable@vger.kernel.org Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7134/saa7134-alsa.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit b0b31a8ffe54abf0a455bcaee54dd92f08817164 Author: Ilya Dryomov Date: Wed Feb 3 15:25:48 2016 +0100 libceph: MOSDOpReply v7 encoding Empty request_redirect_t (struct ceph_request_redirect in the kernel client) is now encoded with a bool. NEW_OSDOPREPLY_ENCODING feature bit overlaps with already supported CRUSH_TUNABLES5. Signed-off-by: Ilya Dryomov Reviewed-by: Sage Weil include/linux/ceph/ceph_features.h | 5 ++++- net/ceph/osd_client.c | 10 ++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) commit 97db9a88186e3a7d3a1942370c836bf221d3ab90 Author: Ilya Dryomov Date: Mon Feb 1 17:08:33 2016 +0100 libceph: advertise support for TUNABLES5 Add TUNABLES5 feature (chooseleaf_stable tunable) to a set of features supported by default. Signed-off-by: Ilya Dryomov Reviewed-by: Sage Weil include/linux/ceph/ceph_features.h | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) commit b9b519b78cfbef9ed1b7aabca63eaaa9d1682a71 Author: Ilya Dryomov Date: Mon Feb 1 16:57:16 2016 +0100 crush: decode and initialize chooseleaf_stable Also add missing \n while at it. Signed-off-by: Ilya Dryomov Reviewed-by: Sage Weil net/ceph/osdmap.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) commit dc6ae6d8e7726bad4f1c87244b49cac851746c65 Author: Ilya Dryomov Date: Sun Jan 31 14:36:07 2016 +0100 crush: add chooseleaf_stable tunable Add a tunable to fix the bug that chooseleaf may cause unnecessary pg migrations when some device fails. Reflects ceph.git commit fdb3f664448e80d984470f32f04e2e6f03ab52ec. Signed-off-by: Ilya Dryomov Reviewed-by: Sage Weil include/linux/crush/crush.h | 8 +++++++- net/ceph/crush/mapper.c | 18 ++++++++++++++---- 2 files changed, 21 insertions(+), 5 deletions(-) commit 56a4f3091dceb7dfc14dc3ef1d5f59fe39ba4447 Author: Ilya Dryomov Date: Sun Jan 31 14:36:05 2016 +0100 crush: ensure take bucket value is valid Ensure that the take argument is a valid bucket ID before indexing the buckets array. Reflects ceph.git commit 93ec538e8a667699876b72459b8ad78966d89c61. Signed-off-by: Ilya Dryomov Reviewed-by: Sage Weil net/ceph/crush/mapper.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f224a6915f266921507bb6e50a82f87a3de5b4b5 Author: Ilya Dryomov Date: Sun Jan 31 14:35:59 2016 +0100 crush: ensure bucket id is valid before indexing buckets array We were indexing the buckets array without verifying the index was within the [0,max_buckets) range. This could happen because a multistep rule does not have enough buckets and has CRUSH_ITEM_NONE for an intermediate result, which would feed in CRUSH_ITEM_NONE and make us crash. Reflects ceph.git commit 976a24a326da8931e689ee22fce35feab5b67b76. Signed-off-by: Ilya Dryomov Reviewed-by: Sage Weil net/ceph/crush/mapper.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit db6aed70235b35a113e1b0e81cb293fd2e92de0f Author: Yan, Zheng Date: Tue Jan 26 23:05:37 2016 +0800 ceph: fix snap context leak in error path Signed-off-by: Yan, Zheng fs/ceph/file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1418bf076d08edd47a610ea3844c6f6012949a51 Author: Dan Carpenter Date: Tue Jan 26 12:24:44 2016 +0300 ceph: checking for IS_ERR instead of NULL ceph_osdc_alloc_request() returns NULL on error, it never returns error pointers. Fixes: 5be0389dac66 ('ceph: re-send AIO write request when getting -EOLDSNAP error') Signed-off-by: Dan Carpenter Signed-off-by: Ilya Dryomov fs/ceph/file.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bf64318564c43385ffc3d3dfedab5287bdf3dfdd Author: Matias Bjørling Date: Thu Feb 4 15:13:27 2016 +0100 lightnvm: allow to force mm initialization System block allows the device to initialize with its configured media manager. The system blocks is written to disk, and read again when media manager is determined. For this to work, the backend must store the data. Device drivers, such as null_blk, does not have any backend storage. This patch allows the media manager to be initialized without a storage backend. It also fix incorrect configuration of capabilities in null_blk, as it does not support get/set bad block interface. Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe drivers/block/null_blk.c | 2 +- drivers/lightnvm/core.c | 25 ++++++++++++++++--------- include/linux/lightnvm.h | 4 ++++ 3 files changed, 21 insertions(+), 10 deletions(-) commit 6dde1d6c9094a7c20a680aa2196ad6d032ec7ded Author: Matias Bjørling Date: Thu Feb 4 15:13:26 2016 +0100 lightnvm: check overflow and correct mlc pairs The specification currently limits the number of MLC pairs to 886. Make sure that a device is unable to be instantiate if more is configured. Also, previously the patch had the wrong math for copying MLC pairs, as it only copied half of the actual entries. Fixes: ca5927e7ab53 "lightnvm: introduce mlc lower page table mappings" Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe drivers/nvme/host/lightnvm.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 3704e098cc1a4c2cabcf4e1cfbbff38b4bfb1ea7 Author: Javier González Date: Thu Feb 4 15:13:25 2016 +0100 lightnvm: fix request intersection locking in rrpc This patch fixes an error on the calculation of intersecting logical addresses; it contemplates the case where a new request including several addresses intersects with a single locked address. This case is typical when multiple pages are sent in a new request, while GC - which at the moment sends one address at the time - is running. Signed-off-by: Javier González Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe drivers/lightnvm/rrpc.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit bba7f40a029c1e2966146e3a021b3deaf5639904 Author: Javier González Date: Thu Feb 4 15:13:24 2016 +0100 lightnvm: warn if irqs are disabled in lock laddr Add a warning if irqs are disabled when locking a new address in rrpc. The typical path to a new request does not disable irqs, but this is not guaranteed in the future. Signed-off-by: Javier González Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe drivers/lightnvm/rrpc.h | 2 ++ 1 file changed, 2 insertions(+) commit 16c6d048d7b74249a4387700887e8adb13028866 Author: Wenwei Tao Date: Thu Feb 4 15:13:23 2016 +0100 lightnvm: put bio before return The bio is not returned if the data page cannot be allocated. Signed-off-by: Wenwei Tao Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe drivers/lightnvm/rrpc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 094fd3be87b0f102589e2d5c3fa5d06b7e20496d Author: Takashi Iwai Date: Thu Feb 4 17:06:13 2016 +0100 ALSA: timer: Fix leftover link at closing In ALSA timer core, the active timer instance is managed in active_list linked list. Each element is added / removed dynamically at timer start, stop and in timer interrupt. The problem is that snd_timer_interrupt() has a thinko and leaves the element in active_list when it's the last opened element. This eventually leads to list corruption or use-after-free error. This hasn't been revealed because we used to delete the list forcibly in snd_timer_stop() in the past. However, the recent fix avoids the double-stop behavior (in commit [f784beb75ce8: ALSA: timer: Fix link corruption due to double start or stop]), and this leak hits reality. This patch fixes the link management in snd_timer_interrupt(). Now it simply unlinks no matter which stream is. BugLink: http://lkml.kernel.org/r/CACT4Y+Yy2aukHP-EDp8-ziNqNNmb-NTf=jDWXMP7jB8HDa2vng@mail.gmail.com Reported-by: Dmitry Vyukov Cc: Signed-off-by: Takashi Iwai sound/core/timer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1a485f4d2e28efd77075b2952926683d6c245633 Author: Shanker Donthineni Date: Mon Feb 1 20:19:44 2016 -0600 irqchip/gicv3-its: Fix memory leak in its_free_tables() The current ITS driver has a memory leak in its_free_tables(). It happens on tear down path of the driver when its_probe() call fails. its_free_tables() should free the exact number of pages that have been allocated, not just a single page as current code does. This patch records the memory size for each ITS_BASERn at the time of page allocation and uses the same size information when freeing pages to fix the issue. Signed-off-by: Shanker Donthineni Acked-by: Marc Zyngier Cc: Jason Cooper Cc: Vikram Sethi Cc: linux-arm-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/1454379584-21772-1-git-send-email-shankerd@codeaurora.org Signed-off-by: Thomas Gleixner drivers/irqchip/irq-gic-v3-its.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) commit 9f780dab7fb5618ee8bacbf6f91832374231c30c Author: Colin Ian King Date: Mon Jan 25 18:38:06 2016 +0000 IB/sysfs: remove unused va_list args _show_port_gid_attr performs a va_end on some unused va_list args. Clean this up by removing the args completely. Fixes: 470be516a226e8 ("IB/core: Add gid attributes to sysfs") Signed-off-by: Colin Ian King Reviewed-by: Ira Weiny Reviewed-by: Jason Gunthorpe Signed-off-by: Doug Ledford drivers/infiniband/core/sysfs.c | 2 -- 1 file changed, 2 deletions(-) commit bb6a777369449d15a4a890306d2f925cae720e1c Author: Carol L Soto Date: Wed Feb 3 15:55:37 2016 -0500 IB/IPoIB: Do not set skb truesize since using one linearskb We are seeing this warning: at net/core/skbuff.c:4174 and before commit a44878d10063 ("IB/ipoib: Use one linear skb in RX flow") skb truesize was not being set when ipoib was using just one skb. Removing this line avoids the warning when running tcp tests like iperf. Fixes: a44878d10063 ("IB/ipoib: Use one linear skb in RX flow") Signed-off-by: Carol L Soto Signed-off-by: Doug Ledford drivers/infiniband/ulp/ipoib/ipoib_ib.c | 2 -- 1 file changed, 2 deletions(-) commit 38c079e230f25969e7ce3501fa967b003a2abc39 Author: Vinod Koul Date: Wed Feb 3 17:59:54 2016 +0530 ASoC: Intel: Skylake: Remove autosuspend delay The driver used autosuspend delay to delay going to D3. But per HW recommendation we should go to D3 soon, so remove the delay from driver Signed-off-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl.c | 2 -- 1 file changed, 2 deletions(-) commit 6e3ffa00424e198d2f0c628e7575c5adefeda3d7 Author: Jeeja KP Date: Wed Feb 3 17:59:53 2016 +0530 ASoC: Intel: Skylake: Fix stereo DMIC record DMIC BE can have 2 or 4 channels supported. The DMIC fixup needs to take this into account. Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/boards/skl_rt286.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit de1fedf25b075664320010789ede2a0f9f4de07d Author: Jeeja KP Date: Wed Feb 3 17:59:52 2016 +0530 ASoC: Intel: Skylake: Add missing PRE/POST_PMU handlers for vmixer Some modules may be directly connected to a pipeline without a mixer module. For these modules, we require PRE_PMU and POST_PMU handler which will do bind between the pipelines, so add these missing handlers. Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-topology.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 6bd4cf855698312133b7776c77ee78af865608eb Author: Jeeja KP Date: Wed Feb 3 17:59:51 2016 +0530 ASoC: Intel: Skylake: Fix bind of source with multiple sinks skl_tplg_bind_sinks() takes only the first sink widget. This breaks in case we have multiple sinks for a module. So pass source widget to skl_tplg_bind_sinks() and bind for all sinks by calling this recursively Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-topology.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 9946f70906eebf2a305d0b189de52eec8ba39649 Author: Jeeja KP Date: Wed Feb 3 17:59:50 2016 +0530 ASoC: Intel: Skylake: Fix not to stop sink pipe in pga pmd event We should not stop the sink pipe in it's pmd handler for a mixin module as this module may still be connected to other pipes. This will be stopped and freed by current implementation on last connected pipe unbind. Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-topology.c | 3 --- 1 file changed, 3 deletions(-) commit 0c684c48257bc6033bdd3b942babef22d0a1852a Author: Jeeja KP Date: Wed Feb 3 17:59:49 2016 +0530 ASoC: Intel: Skylake: Fix the module state check condition For binding modules we should check if source or destination module is in UNINT state. We canot bind even if one of them is in this state. So update the check from logical AND to logical OR and do not bind modules for this case Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-messages.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9cf3049e21e4e6873aae45df19c11f7243e2f03f Author: Jeeja KP Date: Wed Feb 3 17:59:48 2016 +0530 ASoC: Intel: Skylake: Fix return of skl_get_queue_index In unbind modules, the skl_get_queue_index() can return error if the pin is dynamic and module is not bound yet. So instead of returning error this check should return success as modules is not yet bound. This will let the module be bound when connected pipes are enabled and will bind this as well. So change the return value to 0 Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-messages.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9ba8ffef9635c11102bc42d0f2d0a4213de273d5 Author: Dharageswari.R Date: Wed Feb 3 17:59:47 2016 +0530 ASoC: Intel: Skylake: Fix pipe memory allocation leak We check and allocate pipeline resources in one shot. That causes leaks if module creation fails later as that is not freed. So split the resource allocation into two, first check if resources are available and then add the resources upon successful creation. So two new functions are added for checking and current functions are re-purposed to only add the resources for memory and MCPS. Signed-off-by: Dharageswari.R Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-topology.c | 42 +++++++++++++++++++++++----------- 1 file changed, 29 insertions(+), 13 deletions(-) commit 7ca42f5ac5e0d8011086bcfa00e85aede42f0b78 Author: Guneshwor Singh Date: Wed Feb 3 17:59:46 2016 +0530 ASoC: Intel: Skylake: Fix mcps freeup after module unbind failure While cleaning resources on module pmd event, we check for return of skl_unbind_modules(). On failure this causes leak as all modules attached do not have resources freed. So ignore return value of module unbind and continue freeing resources. This makes dapm state and resources correct. Signed-off-by: Guneshwor Singh Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-topology.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit ee564d489cc47b1b6043bbe7e95464306d112cf5 Author: Guneshwor Singh Date: Wed Feb 3 17:59:45 2016 +0530 ASoC: Intel: Skylake: Fix delay wrap condition When delay reported by HW is equal to buffersize, it means the value is wrapped so we should report as 0. So add the condition to check this while reporting the delay from LPIB. Signed-off-by: Guneshwor Singh Signed-off-by: Dharageswari.R Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-pcm.c | 1 + 1 file changed, 1 insertion(+) commit 41556f68d1dd0b6bbf311a220523b034d2a040e7 Author: Vinod Koul Date: Wed Feb 3 17:59:44 2016 +0530 ASoC: Intel: Skylake: Fix the memory overwrite of tlv buffer TLV buffer can be smaller than the module data, so update the size of data to be copied before doing the copy. Also TLV header consists of two unsigned ints, this is also taken into account here and size modified to reflect this Suggested-by: Takashi Iwai Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-topology.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 1f2c450185b7b8d50d38d37ee30387ff4cd337f8 Author: Mauro Carvalho Chehab Date: Wed Feb 3 19:30:31 2016 -0200 [media] vb2-core: call threadio->fnc() if !VB2_BUF_STATE_ERROR changeset 70433a152f0 ("media: videobuf2: Refactor vb2_fileio_data and vb2_thread") broke videobuf2-dvb. The root cause is that, instead of calling threadio->fnc() for all types of events except for VB2_BUF_STATE_ERROR, it was calling it only for VB2_BUF_STATE_DONE. With that, the DVB thread were never called. Cc: stable@vger.kernel.org # Kernel >= 4.3 Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/videobuf2-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fac710e45d0b12443acd4d905c9acec27ab4ca14 Author: Hans Verkuil Date: Wed Jan 27 10:08:42 2016 -0200 [media] vb2: fix nasty vb2_thread regression The vb2_thread implementation was made generic and was moved from videobuf2-v4l2.c to videobuf2-core.c in commit af3bac1a. Unfortunately that clearly was never tested since it broke read() causing NULL address references. The root cause was confused handling of vb2_buffer vs v4l2_buffer (the pb pointer in various core functions). The v4l2_buffer no longer exists after moving the code into the core and it is no longer needed. However, the vb2_thread code passed a pointer to a vb2_buffer to the core functions were a v4l2_buffer pointer was expected and vb2_thread expected that the vb2_buffer fields would be filled in correctly. This is obviously wrong since v4l2_buffer != vb2_buffer. Note that the pb pointer is a void pointer, so no type-checking took place. This patch fixes this problem: 1) allow pb to be NULL for vb2_core_(d)qbuf. The vb2_thread code will use a NULL pointer here since they don't care about v4l2_buffer anyway. 2) let vb2_core_dqbuf pass back the index of the received buffer. This is all vb2_thread needs: this index is the index into the q->bufs array and vb2_thread just gets the vb2_buffer from there. 3) the fileio->b pointer (that originally contained a v4l2_buffer) is removed altogether since it is no longer needed. Tested with vivid and the cobalt driver. Cc: stable@vger.kernel.org # Kernel >= 4.3 Signed-off-by: Hans Verkuil Reported-by: Matthias Schwarzott Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/videobuf2-core.c | 95 +++++++++++++++----------------- drivers/media/v4l2-core/videobuf2-v4l2.c | 2 +- include/media/videobuf2-core.h | 3 +- 3 files changed, 46 insertions(+), 54 deletions(-) commit e8beb02343e7582980c6705816cd957cf4f74c7a Author: Mauro Carvalho Chehab Date: Wed Feb 3 17:33:48 2016 -0200 [media] tda1004x: only update the frontend properties if locked The tda1004x was updating the properties cache before locking. If the device is not locked, the data at the registers are just random values with no real meaning. This caused the driver to fail with libdvbv5, as such library calls GET_PROPERTY from time to time, in order to return the DVB stats. Tested with a saa7134 card 78: ASUSTeK P7131 Dual, vendor PCI ID: 1043:4862 Cc: stable@vger.kernel.org Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/tda1004x.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 41d80025a83b9c7a94f97ef25c4cd3345bdc3c5e Author: Lars-Peter Clausen Date: Wed Feb 3 21:59:50 2016 +0100 ASoC: dapm: Don't prefix autodisable widgets twice When a DAPM context has a prefix the autodisable widgets get prefixed twice, once for the control and once for the widget. To avoid this use the un-prefixed control name to construct the autodisable widget name. This change is purely cosmetic. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/soc-dapm.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 580df49eed6639263348af3ff60941ff14aa72c0 Merge: 9a96940 51fd2df Author: Ingo Molnar Date: Thu Feb 4 08:56:54 2016 +0100 Merge tag 'perf-urgent-for-mingo-2' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent Pull perf/urgent fix from Arnaldo Carvalho de Melo: - Fix 'perf stat' interval output values (Jiri Olsa) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 9a969403c34ffcc4c92118616665ae1c7eb5a650 Merge: b37a05c 270bde1 Author: Ingo Molnar Date: Thu Feb 4 08:55:00 2016 +0100 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: - tracepoint_error() can receive e=NULL, robustify it, fixes a problem noticed with a very specific combination: Machine with Intel PT (e.g. Broadwell), kernel with no perf_event_attr.context_switch feature (e.g. 4.2) and unreadable tracefs (for instance !root users), making the fallback from perf_event_attr.context_switch to the sched:sched_switch tracepoint to fail reading its info from tracefs, fix it. (Adrian Hunter) - Fix segfault in intel PT, by making it follow the 'struct thread' lifetime cycle checking expectations, noticed for instance, when processing perf.data files with Intel PT data using 'perf script' and when exiting 'perf report' (Adrian Hunter) - Fix CFI usage from .eh_frame and .debug_frame, which sometimes requires that we fallback from .eh_frame to .debug_frame in architectures such as PowerPC (Hemant Kumar) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit d7de413475f443957a0c1d256e405d19b3a2cb22 Author: Ralf Baechle Date: Thu Feb 4 01:24:40 2016 +0100 MIPS: Fix 64k page support for 32 bit kernels. TASK_SIZE was defined as 0x7fff8000UL which for 64k pages is not a multiple of the page size. Somewhere further down the math fails such that executing an ELF binary fails. Signed-off-by: Ralf Baechle Tested-by: Joshua Henderson arch/mips/include/asm/processor.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9ea064158f4e02e64890ee1261449b01e954e594 Merge: b37a05c fc2561e Author: Shaohua Li Date: Wed Feb 3 15:43:59 2016 -0800 Merge branch 'mymd/for-next' into mymd/for-linus commit 51fd2df1e882a3c2a3f4b6c9ff243a93c9046dba Author: Jiri Olsa Date: Wed Feb 3 08:43:56 2016 +0100 perf stat: Fix interval output values We broke interval data displays with commit: 3f416f22d1e2 ("perf stat: Do not clean event's private stats") This commit removed stats cleaning, which is important for '-r' option to carry counters data over the whole run. But it's necessary to clean it for interval mode, otherwise the displayed value is avg of all previous values. Before: $ perf stat -e cycles -a -I 1000 record # time counts unit events 1.000240796 75,216,287 cycles 2.000512791 107,823,524 cycles $ perf stat report # time counts unit events 1.000240796 75,216,287 cycles 2.000512791 91,519,906 cycles Now: $ perf stat report # time counts unit events 1.000240796 75,216,287 cycles 2.000512791 107,823,524 cycles Notice the second value being bigger (91,.. < 107,..). This could be easily verified by using perf script which displays raw stat data: $ perf script CPU THREAD VAL ENA RUN TIME EVENT 0 -1 23855779 1000209530 1000209530 1000240796 cycles 1 -1 33340397 1000224964 1000224964 1000240796 cycles 2 -1 15835415 1000226695 1000226695 1000240796 cycles 3 -1 2184696 1000228245 1000228245 1000240796 cycles 0 -1 97014312 2000514533 2000514533 2000512791 cycles 1 -1 46121497 2000543795 2000543795 2000512791 cycles 2 -1 32269530 2000543566 2000543566 2000512791 cycles 3 -1 7634472 2000544108 2000544108 2000512791 cycles The sum of the first 4 values is the first interval aggregated value: 23855779 + 33340397 + 15835415 + 2184696 = 75,216,287 The sum of the second 4 values minus first value is the second interval aggregated value: 97014312 + 46121497 + 32269530 + 7634472 - 75216287 = 107,823,524 Signed-off-by: Jiri Olsa Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1454485436-20639-1-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/stat.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit ebde1ca5a908b10312db4ecd7553e3ba039319ab Author: Nicholas Bellinger Date: Sat Jan 16 12:49:49 2016 -0800 target: Fix TAS handling for multi-session se_node_acls This patch fixes a bug in TMR task aborted status (TAS) handling when multiple sessions are connected to the same target WWPN endpoint and se_node_acl descriptor, resulting in TASK_ABORTED status to not be generated for aborted se_cmds on the remote port. This is due to core_tmr_handle_tas_abort() incorrectly comparing se_node_acl instead of se_session, for which the multi-session case is expected to be sharing the same se_node_acl. Instead, go ahead and update core_tmr_handle_tas_abort() to compare tmr_sess + cmd->se_sess in order to determine if the LUN_RESET was received on a different I_T nexus, and TASK_ABORTED status response needs to be generated. Reviewed-by: Christoph Hellwig Cc: Quinn Tran Cc: Himanshu Madhani Cc: Sagi Grimberg Cc: Hannes Reinecke Cc: Andy Grover Cc: Mike Christie Cc: stable@vger.kernel.org # 3.10+ Signed-off-by: Nicholas Bellinger drivers/target/target_core_tmr.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit a6d9bb1c9605cd4f44e2d8290dc4d0e88f20292d Author: Nicholas Bellinger Date: Mon Jan 11 21:53:05 2016 -0800 target: Fix LUN_RESET active TMR descriptor handling This patch fixes a NULL pointer se_cmd->cmd_kref < 0 refcount bug during TMR LUN_RESET with active TMRs, triggered during se_cmd + se_tmr_req descriptor shutdown + release via core_tmr_drain_tmr_list(). To address this bug, go ahead and obtain a local kref_get_unless_zero(&se_cmd->cmd_kref) for active I/O to set CMD_T_ABORTED, and transport_wait_for_tasks() followed by the final target_put_sess_cmd() to drop the local ->cmd_kref. Also add two new checks within target_tmr_work() to avoid CMD_T_ABORTED -> TFO->queue_tm_rsp() callbacks ahead of invoking the backend -> fabric put in transport_cmd_check_stop_to_fabric(). For good measure, also change core_tmr_release_req() to use list_del_init() ahead of se_tmr_req memory free. Reviewed-by: Quinn Tran Cc: Himanshu Madhani Cc: Sagi Grimberg Cc: Christoph Hellwig Cc: Hannes Reinecke Cc: Andy Grover Cc: Mike Christie Cc: stable@vger.kernel.org # 3.10+ Signed-off-by: Nicholas Bellinger drivers/target/target_core_tmr.c | 22 +++++++++++++++++++++- drivers/target/target_core_transport.c | 17 +++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) commit febe562c20dfa8f33bee7d419c6b517986a5aa33 Author: Nicholas Bellinger Date: Mon Jan 11 21:31:09 2016 -0800 target: Fix LUN_RESET active I/O handling for ACK_KREF This patch fixes a NULL pointer se_cmd->cmd_kref < 0 refcount bug during TMR LUN_RESET with active se_cmd I/O, that can be triggered during se_cmd descriptor shutdown + release via core_tmr_drain_state_list() code. To address this bug, add common __target_check_io_state() helper for ABORT_TASK + LUN_RESET w/ CMD_T_COMPLETE checking, and set CMD_T_ABORTED + obtain ->cmd_kref for both cases ahead of last target_put_sess_cmd() after TFO->aborted_task() -> transport_cmd_finish_abort() callback has completed. It also introduces SCF_ACK_KREF to determine when transport_cmd_finish_abort() needs to drop the second extra reference, ahead of calling target_put_sess_cmd() for the final kref_put(&se_cmd->cmd_kref). It also updates transport_cmd_check_stop() to avoid holding se_cmd->t_state_lock while dropping se_cmd device state via target_remove_from_state_list(), now that core_tmr_drain_state_list() is holding the se_device lock while checking se_cmd state from within TMR logic. Finally, move transport_put_cmd() release of SGL + TMR + extended CDB memory into target_free_cmd_mem() in order to avoid potential resource leaks in TMR ABORT_TASK + LUN_RESET code-paths. Also update target_release_cmd_kref() accordingly. Reviewed-by: Quinn Tran Cc: Himanshu Madhani Cc: Sagi Grimberg Cc: Christoph Hellwig Cc: Hannes Reinecke Cc: Andy Grover Cc: Mike Christie Cc: stable@vger.kernel.org # 3.10+ Signed-off-by: Nicholas Bellinger drivers/target/target_core_tmr.c | 69 ++++++++++++++++++++++------------ drivers/target/target_core_transport.c | 67 ++++++++++++++------------------- include/target/target_core_base.h | 1 + 3 files changed, 76 insertions(+), 61 deletions(-) commit 5c82171167adb8e4ac77b91a42cd49fb211a81a0 Author: Mathias Nyman Date: Tue Jan 26 17:50:12 2016 +0200 xhci: Fix list corruption in urb dequeue at host removal xhci driver frees data for all devices, both usb2 and and usb3 the first time usb_remove_hcd() is called, including td_list and and xhci_ring structures. When usb_remove_hcd() is called a second time for the second xhci bus it will try to dequeue all pending urbs, and touches td_list which is already freed for that endpoint. Cc: Reported-by: Joe Lawrence Tested-by: Joe Lawrence Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 2ad294d5f9d13d108c1e2f1a4be8542859ead134 Author: Gregory CLEMENT Date: Tue Jan 26 17:50:11 2016 +0200 usb: host: xhci-plat: fix NULL pointer in probe for device tree case During probe, in the device tree case, the data pointer associated to a compatible is dereferenced. However, not all the compatibles are associated to a private data pointer. The generic-xhci and the xhci-platform don't need them, this patch adds a test on the data pointer before accessing it, avoiding a kernel crash. Fixes: 4efb2f694114 ("usb: host: xhci-plat: add struct xhci_plat_priv") Cc: stable@vger.kernel.org Signed-off-by: Gregory CLEMENT Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-plat.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 882fa27f488ed3c4b67699d99e8c5ff64c7a9cd1 Author: Chunfeng Yun Date: Tue Jan 26 17:50:10 2016 +0200 usb: xhci-mtk: fix AHB bus hang up caused by roothubs polling when ip fails to enter sleep mode, register access protection will be disabled, at the same time if all clocks are disabled, access register will hang up AHB bus. the common case causes ip sleep failure is that after all ports enter U3 but before ip enters sleep mode, a port receives a resume signal('K'). this will happens when such as clicks mouse to try to do remote-wakeup to stop system enter suspend. so stop polling root hubs to avoid access xHCI register on bus suspend, and restart it when bus resumes. Signed-off-by: Chunfeng Yun Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-mtk.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit b765a16a11fad6b9c94fea7718c22692581e8d18 Author: Chunfeng Yun Date: Tue Jan 26 17:50:09 2016 +0200 usb: xhci-mtk: fix bpkts value of LS/HS periodic eps not behind TT when a LS or FS device doesn't connect though a HS hub, the @bPkts field of its periodic endpoint context should be set to 1. Signed-off-by: Chunfeng Yun Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-mtk-sch.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) commit ccc04afb72cddbdf7c0e1c17e92886405a71b754 Author: Lu Baolu Date: Tue Jan 26 17:50:08 2016 +0200 usb: xhci: apply XHCI_PME_STUCK_QUIRK to Intel Broxton-M platforms Intel Broxton M was verifed to require XHCI_PME_STUCK_QUIRK quirk as well. Cc: stable@vger.kernel.org Signed-off-by: Lu Baolu Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-pci.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 92149c930cce1865d0d4aca2ab07c2b4b197b418 Author: Lu Baolu Date: Tue Jan 26 17:50:07 2016 +0200 usb: xhci: set SSIC port unused only if xhci_suspend succeeds XHCI_SSIC_PORT_UNUSED quirk was applied to the xHCI host controllers in some Intel SoC chips. With this quirk applied, SSIC port is set to "unused" prior to xhci_suspend(). This may cause problem if host fails to suspend. In this case, the port is set to unused without host further entering D3, and the port will not be usable anymore. Cc: stable@vger.kernel.org Signed-off-by: Zhuang Jin Can Signed-off-by: Lu Baolu Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-pci.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 7e70cbffe236721051bbaff965e477df06dcb190 Author: Lu Baolu Date: Tue Jan 26 17:50:06 2016 +0200 usb: xhci: add a quirk bit for ssic port unused Two workarounds introduced by commit b8cb91e058cd ("xhci: Workaround for PME stuck issues in Intel xhci") and commit abce329c27b3 ("xhci: Workaround to get D3 working in Intel xHCI") share a single quirk bit XHCI_PME_STUCK_QUIRK. These two workarounds actually are different and might happen on different hardwares. Need to separate them by adding a quirk bit for the later. Cc: stable@vger.kernel.org Signed-off-by: Lu Baolu Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-pci.c | 79 ++++++++++++++++++++++++++------------------- drivers/usb/host/xhci.h | 1 + 2 files changed, 46 insertions(+), 34 deletions(-) commit fa89537783cb442263fa5a14df6c7693eaf32f11 Author: Lu Baolu Date: Tue Jan 26 17:50:05 2016 +0200 usb: xhci: handle both SSIC ports in PME stuck quirk Commit abce329c27b3 ("xhci: Workaround to get D3 working in Intel xHCI") adds a workaround for a limitation of PME storm caused by SSIC port in some Intel SoCs. This commit only handled one SSIC port, while there are actually two SSIC ports in the chips. This patch handles both SSIC ports. Without this fix, users still see PME storm. Cc: stable@vger.kernel.org # v4.2+ Signed-off-by: Zhuang Jin Can Signed-off-by: Lu Baolu Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-pci.c | 48 +++++++++++++++++++++++++++------------------ 1 file changed, 29 insertions(+), 19 deletions(-) commit 6a4290cc28be12d72d50644bd4bda1aede37cd41 Author: Jianqiang Tang Date: Wed Jan 20 14:09:39 2016 +0800 usb: dwc3: gadget: set the OTG flag in dwc3 gadget driver. This patch is needed in order to pass one test case defined in the OTG Automated Compliance Test specification. Specification location: http://www.usb.org/developers/onthego/otgeh_compliance_plan_1_2.pdf This test case uses PET Tool, and PET Tool is one USB hardware equipment provided by MQP Electronics. Test case id is 6.8.3 B-UUT Bypass Capacitance. We must set this otg flag in order to be able to return OTG descriptor during enumeration, otherwise this test case with failed with below error: "Get OTG descriptor request stalled". Signed-off-by: Jianqiang Tang Signed-off-by: Felipe Balbi drivers/usb/dwc3/gadget.c | 1 + 1 file changed, 1 insertion(+) commit a6835090716a85f2297668ba593bd00e1051e662 Author: Mathias Nyman Date: Tue Jan 26 17:50:04 2016 +0200 Revert "xhci: don't finish a TD if we get a short-transfer event mid TD" This reverts commit e210c422b6fd ("xhci: don't finish a TD if we get a short transfer event mid TD") Turns out that most host controllers do not follow the xHCI specs and never send the second event for the last TRB in the TD if there was a short event mid-TD. Returning the URB directly after the first short-transfer event is far better than never returning the URB. (class drivers usually timeout after 30sec). For the hosts that do send the second event we will go back to treating it as misplaced event and print an error message for it. The origial patch was sent to stable kernels and needs to be reverted from there as well Cc: stable@vger.kernel.org Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-ring.c | 10 ---------- 1 file changed, 10 deletions(-) commit a55f6286575863ebfa5577d4d3bb3b6f1dbd45ec Author: Felipe Balbi Date: Wed Feb 3 20:23:01 2016 +0200 MAINTAINERS: fix my email address As I'm not working for Texas Instruments anymore, balbi@ti.com isn't a valid address. I'll be using balbi@kernel.org at least for the time being. Acked-by: Greg Kroah-Hartman Signed-off-by: Felipe Balbi MAINTAINERS | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 7f042a8370a5bb7e29a6a6372e8180a56d44aa5c Author: Filipe Manana Date: Wed Jan 27 19:17:20 2016 +0000 Btrfs: remove no longer used function extent_read_full_page_nolock() Not needed after the previous patch named "Btrfs: fix page reading in extent_same ioctl leading to csum errors". Signed-off-by: Filipe Manana fs/btrfs/compression.c | 6 +----- fs/btrfs/extent_io.c | 45 +++++++++++---------------------------------- fs/btrfs/extent_io.h | 3 --- 3 files changed, 12 insertions(+), 42 deletions(-) commit 313140023026ae542ad76e7e268c56a1eaa2c28e Author: Filipe Manana Date: Wed Jan 27 18:37:47 2016 +0000 Btrfs: fix page reading in extent_same ioctl leading to csum errors In the extent_same ioctl, we were grabbing the pages (locked) and attempting to read them without bothering about any concurrent IO against them. That is, we were not checking for any ongoing ordered extents nor waiting for them to complete, which leads to a race where the extent_same() code gets a checksum verification error when it reads the pages, producing a message like the following in dmesg and making the operation fail to user space with -ENOMEM: [18990.161265] BTRFS warning (device sdc): csum failed ino 259 off 495616 csum 685204116 expected csum 1515870868 Fix this by using btrfs_readpage() for reading the pages instead of extent_read_full_page_nolock(), which waits for any concurrent ordered extents to complete and locks the io range. Also do better error handling and don't treat all failures as -ENOMEM, as that's clearly misleasing, becoming identical to the checks and operation of prepare_uptodate_page(). The use of extent_read_full_page_nolock() was required before commit f441460202cb ("btrfs: fix deadlock with extent-same and readpage"), as we had the range locked in an inode's io tree before attempting to read the pages. Fixes: f441460202cb ("btrfs: fix deadlock with extent-same and readpage") Cc: stable@vger.kernel.org # 4.2+ Signed-off-by: Filipe Manana fs/btrfs/ioctl.c | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) commit e0bd70c67bf996b360f706b6c643000f2e384681 Author: Filipe Manana Date: Wed Jan 27 10:20:58 2016 +0000 Btrfs: fix invalid page accesses in extent_same (dedup) ioctl In the extent_same ioctl we are getting the pages for the source and target ranges and unlocking them immediately after, which is incorrect because later we attempt to map them (with kmap_atomic) and access their contents at btrfs_cmp_data(). When we do such access the pages might have been relocated or removed from memory, which leads to an invalid memory access. This issue is detected on a kernel with CONFIG_DEBUG_PAGEALLOC=y which produces a trace like the following: 186736.677437] general protection fault: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC [186736.680382] Modules linked in: btrfs dm_flakey dm_mod ppdev xor raid6_pq sha256_generic hmac drbg ansi_cprng acpi_cpufreq evdev sg aesni_intel aes_x86_64 parport_pc ablk_helper tpm_tis psmouse parport i2c_piix4 tpm cryptd i2c_core lrw processor button serio_raw pcspkr gf128mul glue_helper loop autofs4 ext4 crc16 mbcache jbd2 sd_mod sr_mod cdrom ata_generic virtio_scsi ata_piix libata virtio_pci virtio_ring crc32c_intel scsi_mod e1000 virtio floppy [last unloaded: btrfs] [186736.681319] CPU: 13 PID: 10222 Comm: duperemove Tainted: G W 4.4.0-rc6-btrfs-next-18+ #1 [186736.681319] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS by qemu-project.org 04/01/2014 [186736.681319] task: ffff880132600400 ti: ffff880362284000 task.ti: ffff880362284000 [186736.681319] RIP: 0010:[] [] memcmp+0xb/0x22 [186736.681319] RSP: 0018:ffff880362287d70 EFLAGS: 00010287 [186736.681319] RAX: 000002c002468acf RBX: 0000000012345678 RCX: 0000000000000000 [186736.681319] RDX: 0000000000001000 RSI: 0005d129c5cf9000 RDI: 0005d129c5cf9000 [186736.681319] RBP: ffff880362287d70 R08: 0000000000000000 R09: 0000000000001000 [186736.681319] R10: ffff880000000000 R11: 0000000000000476 R12: 0000000000001000 [186736.681319] R13: ffff8802f91d4c88 R14: ffff8801f2a77830 R15: ffff880352e83e40 [186736.681319] FS: 00007f27b37fe700(0000) GS:ffff88043dda0000(0000) knlGS:0000000000000000 [186736.681319] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [186736.681319] CR2: 00007f27a406a000 CR3: 0000000217421000 CR4: 00000000001406e0 [186736.681319] Stack: [186736.681319] ffff880362287ea0 ffffffffa048d0bd 000000000009f000 0000000000001000 [186736.681319] 0100000000000000 ffff8801f2a77850 ffff8802f91d49b0 ffff880132600400 [186736.681319] 00000000000004f8 ffff8801c1efbe41 0000000000000000 0000000000000038 [186736.681319] Call Trace: [186736.681319] [] btrfs_ioctl+0x24cb/0x2731 [btrfs] [186736.681319] [] ? arch_local_irq_save+0x9/0xc [186736.681319] [] ? rcu_read_unlock+0x3e/0x5d [186736.681319] [] do_vfs_ioctl+0x42b/0x4ea [186736.681319] [] ? __fget_light+0x62/0x71 [186736.681319] [] SyS_ioctl+0x57/0x79 [186736.681319] [] entry_SYSCALL_64_fastpath+0x12/0x6f [186736.681319] Code: 0a 3c 6e 74 0d 3c 79 74 04 3c 59 75 0c c6 06 01 eb 03 c6 06 00 31 c0 eb 05 b8 ea ff ff ff 5d c3 55 31 c9 48 89 e5 48 39 d1 74 13 <0f> b6 04 0f 44 0f b6 04 0e 48 ff c1 44 29 c0 74 ea eb 02 31 c0 (gdb) list *(btrfs_ioctl+0x24cb) 0x5e0e1 is in btrfs_ioctl (fs/btrfs/ioctl.c:2972). 2967 dst_addr = kmap_atomic(dst_page); 2968 2969 flush_dcache_page(src_page); 2970 flush_dcache_page(dst_page); 2971 2972 if (memcmp(addr, dst_addr, cmp_len)) 2973 ret = BTRFS_SAME_DATA_DIFFERS; 2974 2975 kunmap_atomic(addr); 2976 kunmap_atomic(dst_addr); So fix this by making sure we keep the pages locked and respect the same locking order as everywhere else: get and lock the pages first and then lock the range in the inode's io tree (like for example at __btrfs_buffered_write() and extent_readpages()). If an ordered extent is found after locking the range in the io tree, unlock the range, unlock the pages, wait for the ordered extent to complete and repeat the entire locking process until no overlapping ordered extents are found. Cc: stable@vger.kernel.org # 4.2+ Signed-off-by: Filipe Manana fs/btrfs/ioctl.c | 90 +++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 76 insertions(+), 14 deletions(-) commit 3e275c64a973ba1554ef87f76c9f0f5b5221ab14 Author: Mark Brown Date: Thu Jan 28 12:18:28 2016 +0000 arm64: asm: Explicitly include linux/personality.h in asm/page.h asm/page.h uses READ_IMPLIES_EXEC from linux/personality.h but does not explicitly include it causing build failures in -next where whatever was causing it to be implicitly included has changed to remove that inclusion. Add an explicit inclusion to fix this. Signed-off-by: Mark Brown [will: moved #include inside #ifndef __ASSEMBLY__ block] Signed-off-by: Will Deacon arch/arm64/include/asm/page.h | 1 + 1 file changed, 1 insertion(+) commit 6357b75a5c356a9d8f91c614ab72ac5264a5932c Author: Alex Deucher Date: Tue Feb 2 18:22:24 2016 -0500 drm/amdgpu: disable uvd and vce clockgating on Fiji Doesn't work properly yet. Reviewed-by: Christian König Reviewed-by: Sonny Jiang Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/vi.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 192cb07f7928e8cb09a9851e6c0f7478baa3bc6d Author: John Youn Date: Mon Jan 11 16:32:28 2016 -0800 usb: dwc2: Fix probe problem on bcm2835 Fixes an issue found on Raspberry PI platform that prevents probe. Don't skip setting the force mode if it's already set. Fixes: 09c96980dc72 ("usb: dwc2: Add functions to set and clear force mode") Tested-by: Heiko Stuebner Tested-by: Douglas Anderson Signed-off-by: John Youn Reported-by: Stefan Wahren Reported-by: Remi Pommarel Tested-by: Stefan Wahren Tested-by: Remi Pommarel Signed-off-by: Felipe Balbi drivers/usb/dwc2/core.c | 6 ------ 1 file changed, 6 deletions(-) commit 03b32e4c9bd1b52fcf1e4304e7a704aa0315e398 Author: John Youn Date: Mon Jan 11 16:32:14 2016 -0800 Revert "usb: dwc2: Move reset into dwc2_get_hwparams()" This reverts commit 263b7fb557f7 ("usb: dwc2: Move reset into dwc2_get_hwparams()") due to regression found on bcm2835 platform. USB ethernet fails, due to being unable to pick up proper parameters when performing a plain reset before reading hw params. Below shows the results of the gnptxfsiz and hptxfsiz with and before and after reverting this (from Stefan Wahren): So here is the probe result before Patch 1 is applied: [ 1.283148] dwc2 20980000.usb: Configuration mismatch. dr_mode forced to host [ 1.313894] dwc2 20980000.usb: gnptxfsiz=00201000 [ 1.314104] dwc2 20980000.usb: hptxfsiz=00000000 [ 1.353908] dwc2 20980000.usb: 256 invalid for host_nperio_tx_fifo_size. Check HW configuration. [ 1.354262] dwc2 20980000.usb: 512 invalid for host_perio_tx_fifo_size. Check HW configuration. [ 1.394249] dwc2 20980000.usb: DWC OTG Controller [ 1.394561] dwc2 20980000.usb: new USB bus registered, assigned bus number 1 [ 1.394917] dwc2 20980000.usb: irq 33, io mem 0x00000000 And here is the probe result after Patch 1 is applied: [ 1.280107] dwc2 20980000.usb: Configuration mismatch. dr_mode forced to host [ 1.353949] dwc2 20980000.usb: gnptxfsiz=01001000 [ 1.354166] dwc2 20980000.usb: hptxfsiz=02002000 [ 1.434301] dwc2 20980000.usb: DWC OTG Controller [ 1.434616] dwc2 20980000.usb: new USB bus registered, assigned bus number 1 [ 1.434973] dwc2 20980000.usb: irq 33, io mem 0x00000000 Tested-by: Heiko Stuebner Tested-by: Douglas Anderson Signed-off-by: John Youn Reported-by: Stefan Wahren Reported-by: Remi Pommarel Tested-by: Stefan Wahren Tested-by: Remi Pommarel Signed-off-by: Felipe Balbi drivers/usb/dwc2/core.c | 8 -------- drivers/usb/dwc2/platform.c | 8 +++++++- 2 files changed, 7 insertions(+), 9 deletions(-) commit e79aee49bcf9ad005b3f2f4cf68b17dc2c22d9c2 Author: Rafael J. Wysocki Date: Sat Jan 30 12:54:29 2016 +0100 PM: Avoid false-positive warnings in dev_pm_domain_set() There is a WARN_ON() in dev_pm_domain_set() that triggers on attempts to set the pm_domain pointer for devices with a driver bound. However, that WARN_ON() triggers on attempts to clear the pointer too and the test it uses is based on checking the device's p->knode_driver pointer which still is set when the device bus type's/driver's ->remove callback has been executed. This leads to false-positive warnings when bus type code calls dev_pm_domain_set() to clear the pm_domain pointer after invoking the driver's ->remove() callback. To avoid those false-positives, make dev_pm_domain_set() check if the pointer passed to it is NULL and skip the warning in that case. Fixes: 989561de9b51 (PM / Domains: add setter for dev.pm_domain) Signed-off-by: Rafael J. Wysocki Tested-by: Andy Shevchenko Tested-by: Sinan Kaya Tested-by: Steven Rostedt Acked-by: Ulf Hansson drivers/base/power/common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b37a05c083c85c2657dca9bbe1f5d79dccf756d5 Merge: d5bfb96 12c9d70 Author: Linus Torvalds Date: Wed Feb 3 10:10:02 2016 -0800 Merge branch 'akpm' (patches from Andrew) Merge fixes from Andrew Morton: "18 fixes" [ The 18 fixes turned into 17 commits, because one of the fixes was a fix for another patch in the series that I just folded in by editing the patch manually - hopefully correctly - Linus ] * emailed patches from Andrew Morton : mm: fix memory leak in copy_huge_pmd() drivers/hwspinlock: fix race between radix tree insertion and lookup radix-tree: fix race in gang lookup mm/vmpressure.c: fix subtree pressure detection mm: polish virtual memory accounting mm: warn about VmData over RLIMIT_DATA Documentation: cgroup-v2: add memory.stat::sock description mm: memcontrol: drop superfluous entry in the per-memcg stats array drivers/scsi/sg.c: mark VMA as VM_IO to prevent migration proc: revert /proc//maps [stack:TID] annotation numa: fix /proc//numa_maps for hugetlbfs on s390 MAINTAINERS: update Seth email ocfs2/cluster: fix memory leak in o2hb_region_release lib/test-string_helpers.c: fix and improve string_get_size() tests thp: limit number of object to scan on deferred_split_scan() thp: change deferred_split_count() to return number of THP in queue thp: make split_queue per-node commit d5bfb96bdad3588961f49a6eff89a625fbaa12bf Merge: 86270c8 58c9d61 Author: Linus Torvalds Date: Wed Feb 3 10:04:58 2016 -0800 Merge tag 'for-linus-4.5-2' of git://git.code.sf.net/p/openipmi/linux-ipmi Pull IPMI fix from Corey Minyard: "Fix a compile error on IPMI when ACPI is disabled" * tag 'for-linus-4.5-2' of git://git.code.sf.net/p/openipmi/linux-ipmi: ipmi: put acpi.h with the other headers commit 79c5623f1cb85f33403eb9f1e45124e9f56181f8 Author: Ulf Hansson Date: Mon Jan 25 13:01:29 2016 +0100 usb: musb: ux500: Fix NULL pointer dereference at system PM The commit 7d32cdef5356 ("usb: musb: fail with error when no DMA controller set"), caused the core platform driver to correctly return an error code when fail probing. Unfurtante it also caused bug for a NULL pointer dereference, during system suspend for the ux500 driver. The reason is a lacking validation of the corresponding ->driver_data pointer, which won't be set when the musb core driver fails to probe (or haven't yet been probed). Fixes: 7d32cdef5356 ("usb: musb: fail with error when no DMA...") Acked-by: Linus Walleij Signed-off-by: Ulf Hansson Signed-off-by: Felipe Balbi drivers/usb/musb/ux500.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 63b121e3a3167df9fdb99633fd1c840c841b07b9 Author: Li Jun Date: Thu Jan 21 15:51:26 2016 +0800 usb: phy: mxs: declare variable with initialized value Initialize vbus_value to be 0 since it's possible not to assign any value before judgement. Acked-by: Peter Chen Signed-off-by: Felipe Balbi drivers/usb/phy/phy-mxs-usb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 86270c8d7b1e98cd0f1dc107446461c050149b67 Merge: 81b676b 71f50c6 Author: Linus Torvalds Date: Wed Feb 3 09:55:50 2016 -0800 Merge tag 'devicetree-fixes-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux Pull DeviceTree fixes from Rob Herring: - Fix build error with *_OF_DECLARE() when used in modules - Add missing platform maintainers for dts files in MAINTAINERS * tag 'devicetree-fixes-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: of: drop symbols declared by _OF_DECLARE() from modules MAINTAINERS: Add missing platform maintainers for dts files commit a38a08dfaaab978dced63aa9cad45f0f62e23a66 Author: Srinivas Kandagatla Date: Wed Jan 13 09:13:10 2016 +0000 usb: phy: msm: fix error handling in probe. This driver registers for extcon events as part of its probe, but never unregisters them in case of error in the probe path. There were multiple issues noticed due to this missing error handling. One of them is random crashes if the regulators are not ready yet by the time probe is invoked. Ivan's previous attempt [1] to fix this issue, did not really address all the failure cases like regualtor/get_irq failures. [1] https://lkml.org/lkml/2015/9/7/62 Without this patch the kernel would carsh with log: ... Unable to handle kernel paging request at virtual address 17d78410 pgd = ffffffc001a5c000 [17d78410] *pgd=00000000b6806003, *pud=00000000b6806003, *pmd=0000000000000000 Internal error: Oops: 96000005 [#1] PREEMPT SMP Modules linked in: CPU: 0 PID: 6 Comm: kworker/u8:0 Not tainted 4.4.0+ #48 Hardware name: Qualcomm Technologies, Inc. APQ 8016 SBC (DT) Workqueue: deferwq deferred_probe_work_func task: ffffffc03686e900 ti: ffffffc0368b0000 task.ti: ffffffc0368b0000 PC is at raw_notifier_chain_register+0x1c/0x44 LR is at extcon_register_notifier+0x88/0xc8 pc : [] lr : [] pstate: 80000085 sp : ffffffc0368b3a70 x29: ffffffc0368b3a70 x28: ffffffc03680c310 x27: ffffffc035518000 x26: ffffffc035518000 x25: ffffffc03bfa20e0 x24: ffffffc035580a18 x23: 0000000000000000 x22: ffffffc035518458 x21: ffffffc0355e9a60 x20: ffffffc035518000 x19: 0000000000000000 x18: 0000000000000028 x17: 0000000000000003 x16: ffffffc0018153c8 x15: 0000000000000001 x14: ffffffc03686f0f8 x13: ffffffc03686f0f8 x12: 0000000000000003 x11: 0000000000000001 x10: 0000000000000001 x9 : ffffffc03686f0f8 x8 : 0000e3872014c1a1 x7 : 0000000000000028 x6 : 0000000000000000 x5 : 0000000000000001 x4 : 0000000000000000 x3 : 00000000354fb170 x2 : 0000000017d78400 x1 : ffffffc0355e9a60 x0 : ffffffc0354fb268 Fixes: 591fc116f330 ("usb: phy: msm: Use extcon framework for VBUS and ID detection") CC: Stable Signed-off-by: Srinivas Kandagatla Signed-off-by: Felipe Balbi drivers/usb/phy/phy-msm-usb.c | 37 ++++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) commit 81b676bd87b3e098e06295a6dd523c02e7861e88 Merge: ef582d0 2370abd Author: Linus Torvalds Date: Wed Feb 3 09:36:41 2016 -0800 Merge tag 'nfs-for-4.5-3' of git://git.linux-nfs.org/projects/trondmy/linux-nfs Pull NFS client bugfix and cleanup from Trond Myklebust: "Bugfix: - pNFS: Fix for missing layoutreturn calls Cleanup: - pNFS: rename NFS_LAYOUT_RETURN_BEFORE_CLOSE for code clarity" * tag 'nfs-for-4.5-3' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: NFS: Cleanup - rename NFS_LAYOUT_RETURN_BEFORE_CLOSE pNFS: Fix missing layoutreturn calls commit ef582d095db13504a54b9bc57c9489e551441c2a Merge: 4643536 6ccd837 Author: Linus Torvalds Date: Wed Feb 3 09:31:34 2016 -0800 Merge tag 'trace-v4.5-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace Pull tracing fix from Steven Rostedt: "A cleanup to the stack tracer broke stack tracing on s390. Here's a simple fix to correct that issue" * tag 'trace-v4.5-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: tracing/stacktrace: Show entire trace if passed in function not found commit 464353647427793aef800503ec42acb68e95d9e2 Author: Hugh Dickins Date: Sat Jan 30 18:03:16 2016 -0800 mm: retire GUP WARN_ON_ONCE that outlived its usefulness Trinity is now hitting the WARN_ON_ONCE we added in v3.15 commit cda540ace6a1 ("mm: get_user_pages(write,force) refuse to COW in shared areas"). The warning has served its purpose, nobody was harmed by that change, so just remove the warning to generate less noise from Trinity. Which reminds me of the comment I wrongly left behind with that commit (but was spotted at the time by Kirill), which has since moved into a separate function, and become even more obscure: delete it. Reported-by: Dave Jones Suggested-by: Kirill A. Shutemov Signed-off-by: Hugh Dickins Signed-off-by: Linus Torvalds mm/gup.c | 4 +--- mm/memory.c | 5 ----- 2 files changed, 1 insertion(+), 8 deletions(-) commit 58c9d61f86e86ebe1e45ac7a0cd89a2c6299b034 Author: Tony Camuso Date: Tue Feb 2 13:57:24 2016 -0500 ipmi: put acpi.h with the other headers Enclosing '#include ' within '#ifdef CONFIG_ACPI' is unnecessary, since it has its own conditional compile for CONFIG_ACPI. Commit 0fbcf4af7c83 ("ipmi: Convert the IPMI SI ACPI handling to a platform device") exposed this as a problem for platforms that do not support ACPI when it introduced a call to ACPI_PTR() macro outside of the CONFIG_ACPI conditional compile. This would have been perfectly acceptable if acpi.h were not conditionally excluded for the non-acpi platform, because the conditional compile within acpi.h defines ACPI_PTR() to return NULL when compiled for non acpi platforms. Signed-off-by: Tony Camuso Fixed commit reference in header to conform to standard. Signed-off-by: Corey Minyard drivers/char/ipmi/ipmi_si_intf.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 12c9d70bd5056b3ae84746fca973c286f48384cc Author: Matthew Wilcox Date: Tue Feb 2 16:57:57 2016 -0800 mm: fix memory leak in copy_huge_pmd() We allocate a pgtable but do not attach it to anything if the PMD is in a DAX VMA, causing it to leak. We certainly try to not free pgtables associated with the huge zero page if the zero page is in a DAX VMA, so I think this is the right solution. This needs to be properly audited. Signed-off-by: Matthew Wilcox Cc: Dan Williams Acked-by: Kirill A. Shutemov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/huge_memory.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) commit c6400ba7e13a41539342f1b6e1f9e78419cb0148 Author: Matthew Wilcox Date: Tue Feb 2 16:57:55 2016 -0800 drivers/hwspinlock: fix race between radix tree insertion and lookup of_hwspin_lock_get_id() is protected by the RCU lock, which means that insertions can occur simultaneously with the lookup. If the radix tree transitions from a height of 0, we can see a slot with the indirect_ptr bit set, which will cause us to at least read random memory, and could cause other havoc. Fix this by using the newly introduced radix_tree_iter_retry(). Signed-off-by: Matthew Wilcox Cc: Hugh Dickins Cc: Ohad Ben-Cohen Cc: Konstantin Khlebnikov Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/hwspinlock/hwspinlock_core.c | 4 ++++ 1 file changed, 4 insertions(+) commit 46437f9a554fbe3e110580ca08ab703b59f2f95a Author: Matthew Wilcox Date: Tue Feb 2 16:57:52 2016 -0800 radix-tree: fix race in gang lookup If the indirect_ptr bit is set on a slot, that indicates we need to redo the lookup. Introduce a new function radix_tree_iter_retry() which forces the loop to retry the lookup by setting 'slot' to NULL and turning the iterator back to point at the problematic entry. This is a pretty rare problem to hit at the moment; the lookup has to race with a grow of the radix tree from a height of 0. The consequences of hitting this race are that gang lookup could return a pointer to a radix_tree_node instead of a pointer to whatever the user had inserted in the tree. Fixes: cebbd29e1c2f ("radix-tree: rewrite gang lookup using iterator") Signed-off-by: Matthew Wilcox Cc: Hugh Dickins Cc: Ohad Ben-Cohen Cc: Konstantin Khlebnikov Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/radix-tree.h | 16 ++++++++++++++++ lib/radix-tree.c | 12 ++++++++++-- 2 files changed, 26 insertions(+), 2 deletions(-) commit 3c1da7beeee02560cd0f0c66c5a59fce3c6746e3 Author: Vladimir Davydov Date: Tue Feb 2 16:57:49 2016 -0800 mm/vmpressure.c: fix subtree pressure detection When vmpressure is called for the entire subtree under pressure we mistakenly use vmpressure->scanned instead of vmpressure->tree_scanned when checking if vmpressure work is to be scheduled. This results in suppressing all vmpressure events in the legacy cgroup hierarchy. Fix it. Fixes: 8e8ae645249b ("mm: memcontrol: hook up vmpressure to socket pressure") Signed-off-by: Vladimir Davydov Acked-by: Johannes Weiner Acked-by: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/vmpressure.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 30bdbb78009e67767983085e302bec6d97afc679 Author: Konstantin Khlebnikov Date: Tue Feb 2 16:57:46 2016 -0800 mm: polish virtual memory accounting * add VM_STACK as alias for VM_GROWSUP/DOWN depending on architecture * always account VMAs with flag VM_STACK as stack (as it was before) * cleanup classifying helpers * update comments and documentation Signed-off-by: Konstantin Khlebnikov Tested-by: Sudip Mukherjee Cc: Cyrill Gorcunov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/filesystems/proc.txt | 4 ++-- include/linux/mm.h | 6 ++++-- include/linux/mm_types.h | 6 +++--- mm/internal.h | 23 +++++++++++++++++++---- 4 files changed, 28 insertions(+), 11 deletions(-) commit d977d56ce5b3e8842236f2f9e7483d4914c9592e Author: Konstantin Khlebnikov Date: Tue Feb 2 16:57:43 2016 -0800 mm: warn about VmData over RLIMIT_DATA This patch provides a way of working around a slight regression introduced by commit 84638335900f ("mm: rework virtual memory accounting"). Before that commit RLIMIT_DATA have control only over size of the brk region. But that change have caused problems with all existing versions of valgrind, because it set RLIMIT_DATA to zero. This patch fixes rlimit check (limit actually in bytes, not pages) and by default turns it into warning which prints at first VmData misuse: "mmap: top (795): VmData 516096 exceed data ulimit 512000. Will be forbidden soon." Behavior is controlled by boot param ignore_rlimit_data=y/n and by sysfs /sys/module/kernel/parameters/ignore_rlimit_data. For now it set to "y". [akpm@linux-foundation.org: tweak kernel-parameters.txt text[ Signed-off-by: Konstantin Khlebnikov Link: http://lkml.kernel.org/r/20151228211015.GL2194@uranus Reported-by: Christian Borntraeger Cc: Cyrill Gorcunov Cc: Linus Torvalds Cc: Vegard Nossum Cc: Peter Zijlstra Cc: Vladimir Davydov Cc: Andy Lutomirski Cc: Quentin Casasnovas Cc: Kees Cook Cc: Willy Tarreau Cc: Pavel Emelyanov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/kernel-parameters.txt | 5 +++++ mm/internal.h | 16 ++++++++++++++++ mm/mmap.c | 23 +++++++++++++++++------ 3 files changed, 38 insertions(+), 6 deletions(-) commit 4758e198ad3bcbc1c468e0632c53a63a7d201649 Author: Johannes Weiner Date: Tue Feb 2 16:57:41 2016 -0800 Documentation: cgroup-v2: add memory.stat::sock description Signed-off-by: Johannes Weiner Cc: Vladimir Davydov Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/cgroup-v2.txt | 4 ++++ 1 file changed, 4 insertions(+) commit c792e8240338e41eda4d06a3a71a7bb7af4e6156 Author: Johannes Weiner Date: Tue Feb 2 16:57:38 2016 -0800 mm: memcontrol: drop superfluous entry in the per-memcg stats array MEM_CGROUP_STAT_NSTATS is just a delimiter for cgroup1 statistics, not an actual array entry. Reuse it for the first cgroup2 stat entry, like in the event array. Fixes: b2807f07f4f8 ("mm: memcontrol: add "sock" to cgroup2 memory.stat") Signed-off-by: Johannes Weiner Cc: Vladimir Davydov Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memcontrol.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 461c7fa126794157484dca48e88effa4963e3af3 Author: Kirill A. Shutemov Date: Tue Feb 2 16:57:35 2016 -0800 drivers/scsi/sg.c: mark VMA as VM_IO to prevent migration Reduced testcase: #include #include #include #include #define SIZE 0x2000 int main() { int fd; void *p; fd = open("/dev/sg0", O_RDWR); p = mmap(NULL, SIZE, PROT_EXEC, MAP_PRIVATE | MAP_LOCKED, fd, 0); mbind(p, SIZE, 0, NULL, 0, MPOL_MF_MOVE); return 0; } We shouldn't try to migrate pages in sg VMA as we don't have a way to update Sg_scatter_hold::pages accordingly from mm core. Let's mark the VMA as VM_IO to indicate to mm core that the VMA is not migratable. Signed-off-by: Kirill A. Shutemov Reported-by: Dmitry Vyukov Acked-by: Vlastimil Babka Cc: Doug Gilbert Cc: David Rientjes Cc: Naoya Horiguchi Cc: "Kirill A. Shutemov" Cc: Shiraz Hashim Cc: Hugh Dickins Cc: Sasha Levin Cc: syzkaller Cc: Kostya Serebryany Cc: Alexander Potapenko Cc: James Bottomley Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/scsi/sg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 65376df582174ffcec9e6471bf5b0dd79ba05e4a Author: Johannes Weiner Date: Tue Feb 2 16:57:29 2016 -0800 proc: revert /proc//maps [stack:TID] annotation Commit b76437579d13 ("procfs: mark thread stack correctly in proc//maps") added [stack:TID] annotation to /proc//maps. Finding the task of a stack VMA requires walking the entire thread list, turning this into quadratic behavior: a thousand threads means a thousand stacks, so the rendering of /proc//maps needs to look at a million combinations. The cost is not in proportion to the usefulness as described in the patch. Drop the [stack:TID] annotation to make /proc//maps (and /proc//numa_maps) usable again for higher thread counts. The [stack] annotation inside /proc//task//maps is retained, as identifying the stack VMA there is an O(1) operation. Siddesh said: "The end users needed a way to identify thread stacks programmatically and there wasn't a way to do that. I'm afraid I no longer remember (or have access to the resources that would aid my memory since I changed employers) the details of their requirement. However, I did do this on my own time because I thought it was an interesting project for me and nobody really gave any feedback then as to its utility, so as far as I am concerned you could roll back the main thread maps information since the information is available in the thread-specific files" Signed-off-by: Johannes Weiner Cc: "Kirill A. Shutemov" Cc: Siddhesh Poyarekar Cc: Shaohua Li Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/filesystems/proc.txt | 9 ++---- fs/proc/task_mmu.c | 66 +++++++++++++------------------------- fs/proc/task_nommu.c | 49 ++++++++++++---------------- include/linux/mm.h | 3 +- mm/util.c | 27 +--------------- 5 files changed, 48 insertions(+), 106 deletions(-) commit 5c2ff95e41c9290d16556cd02e35b25d81be8fe0 Author: Michael Holzheu Date: Tue Feb 2 16:57:26 2016 -0800 numa: fix /proc//numa_maps for hugetlbfs on s390 When working with hugetlbfs ptes (which are actually pmds) is not valid to directly use pte functions like pte_present() because the hardware bit layout of pmds and ptes can be different. This is the case on s390. Therefore we have to convert the hugetlbfs ptes first into a valid pte encoding with huge_ptep_get(). Currently the /proc//numa_maps code uses hugetlbfs ptes without huge_ptep_get(). On s390 this leads to the following two problems: 1) The pte_present() function returns false (instead of true) for PROT_NONE hugetlb ptes. Therefore PROT_NONE vmas are missing completely in the "numa_maps" output. 2) The pte_dirty() function always returns false for all hugetlb ptes. Therefore these pages are reported as "mapped=xxx" instead of "dirty=xxx". Therefore use huge_ptep_get() to correctly convert the hugetlb ptes. Signed-off-by: Michael Holzheu Reviewed-by: Gerald Schaefer Cc: [4.3+] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/proc/task_mmu.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 0bb181c7ddc0340ef8d4a3b082b1f1bc7ae21636 Author: Seth Jennings Date: Tue Feb 2 16:57:23 2016 -0800 MAINTAINERS: update Seth email Update/unify my contact info. The old email address will no longer work soon. Signed-off-by: Seth Jennings Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds MAINTAINERS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a4a1dfa4bb8b1d76d1ed464432ed95bb5956408f Author: Joseph Qi Date: Tue Feb 2 16:57:21 2016 -0800 ocfs2/cluster: fix memory leak in o2hb_region_release o2hb_region_release currently doesn't free o2hb_debug_buf hr_db_elapsed_time and hr_db_pinned malloced in o2hb_debug_create. Also we should call debugfs_remove before freeing its data, to prevent the risk accessing debugfs rightly after its data has been freed. Signed-off-by: Joseph Qi Reviewed-by: Jiufei Xue Cc: Mark Fasheh Cc: Joel Becker Cc: Junxiao Bi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/cluster/heartbeat.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit 72676bb53f33fd0ef3a1484fc1ecfd306dc6ff40 Author: Vitaly Kuznetsov Date: Tue Feb 2 16:57:18 2016 -0800 lib/test-string_helpers.c: fix and improve string_get_size() tests Recently added commit 564b026fbd0d ("string_helpers: fix precision loss for some inputs") fixed precision issues for string_get_size() and broke tests. Fix and improve them: test both STRING_UNITS_2 and STRING_UNITS_10 at a time, better failure reporting, test small an huge values. Fixes: 564b026fbd0d28e9 ("string_helpers: fix precision loss for some inputs") Signed-off-by: Vitaly Kuznetsov Cc: Andy Shevchenko Cc: Rasmus Villemoes Cc: James Bottomley Cc: James Bottomley Cc: "James E.J. Bottomley" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/test-string_helpers.c | 67 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 49 insertions(+), 18 deletions(-) commit e3ae19535c665771e2c03cdd63df9bc4d6b37941 Author: Kirill A. Shutemov Date: Tue Feb 2 16:57:15 2016 -0800 thp: limit number of object to scan on deferred_split_scan() If we have a lot of pages in queue to be split, deferred_split_scan() can spend unreasonable amount of time under spinlock with disabled interrupts. Let's cap number of pages to split on scan by sc->nr_to_scan. Signed-off-by: Kirill A. Shutemov Reported-by: Andrea Arcangeli Reviewed-by: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Vlastimil Babka Cc: "Aneesh Kumar K.V" Cc: Johannes Weiner Cc: Michal Hocko Cc: Jerome Marchand Cc: Sasha Levin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/huge_memory.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit cb8d68ec16a511f8be7e1028fd8f869ef7c6a1a8 Author: Kirill A. Shutemov Date: Tue Feb 2 16:57:12 2016 -0800 thp: change deferred_split_count() to return number of THP in queue I've got meaning of shrinker::count_objects() wrong: it should return number of potentially freeable objects, which is not necessary correlate with freeable memory. Returning 256 per THP in queue is not reasonable: shrinker::scan_objects() never called with nr_to_scan > 128 in my setup. Let's return 1 per THP and correct scan_object accordingly. Signed-off-by: Kirill A. Shutemov Reviewed-by: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Vlastimil Babka Cc: "Aneesh Kumar K.V" Cc: Johannes Weiner Cc: Michal Hocko Cc: Jerome Marchand Cc: Sasha Levin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/huge_memory.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit a3d0a918502cc73af4f60da2cc4c5cac5573f183 Author: Kirill A. Shutemov Date: Tue Feb 2 16:57:08 2016 -0800 thp: make split_queue per-node Andrea Arcangeli suggested to make split queue per-node to improve scalability. Let's do it. Signed-off-by: Kirill A. Shutemov Suggested-by: Andrea Arcangeli Reviewed-by: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Vlastimil Babka Cc: "Aneesh Kumar K.V" Cc: Johannes Weiner Cc: Michal Hocko Cc: Jerome Marchand Cc: Sasha Levin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/mmzone.h | 6 ++++++ mm/huge_memory.c | 49 ++++++++++++++++++++++++++----------------------- mm/page_alloc.c | 5 +++++ 3 files changed, 37 insertions(+), 23 deletions(-) commit b85d9905a7ca128f24e3a4e60ff2a1b0cd58ae7c Author: Doug Ledford Date: Wed Feb 3 11:10:58 2016 -0500 staging/rdma: remove deprecated ipath driver This driver was moved to staging for eventual deletion. Time to complete that task. Signed-off-by: Doug Ledford MAINTAINERS | 6 - drivers/staging/rdma/Kconfig | 2 - drivers/staging/rdma/Makefile | 1 - drivers/staging/rdma/ipath/Kconfig | 16 - drivers/staging/rdma/ipath/Makefile | 37 - drivers/staging/rdma/ipath/TODO | 5 - drivers/staging/rdma/ipath/ipath_common.h | 851 -------- drivers/staging/rdma/ipath/ipath_cq.c | 483 ---- drivers/staging/rdma/ipath/ipath_debug.h | 99 - drivers/staging/rdma/ipath/ipath_diag.c | 551 ----- drivers/staging/rdma/ipath/ipath_dma.c | 179 -- drivers/staging/rdma/ipath/ipath_driver.c | 2784 ------------------------ drivers/staging/rdma/ipath/ipath_eeprom.c | 1183 ---------- drivers/staging/rdma/ipath/ipath_file_ops.c | 2619 ---------------------- drivers/staging/rdma/ipath/ipath_fs.c | 415 ---- drivers/staging/rdma/ipath/ipath_iba6110.c | 1939 ----------------- drivers/staging/rdma/ipath/ipath_init_chip.c | 1062 --------- drivers/staging/rdma/ipath/ipath_intr.c | 1271 ----------- drivers/staging/rdma/ipath/ipath_kernel.h | 1374 ------------ drivers/staging/rdma/ipath/ipath_keys.c | 270 --- drivers/staging/rdma/ipath/ipath_mad.c | 1521 ------------- drivers/staging/rdma/ipath/ipath_mmap.c | 174 -- drivers/staging/rdma/ipath/ipath_mr.c | 370 ---- drivers/staging/rdma/ipath/ipath_qp.c | 1079 --------- drivers/staging/rdma/ipath/ipath_rc.c | 1969 ----------------- drivers/staging/rdma/ipath/ipath_registers.h | 512 ----- drivers/staging/rdma/ipath/ipath_ruc.c | 733 ------- drivers/staging/rdma/ipath/ipath_sdma.c | 818 ------- drivers/staging/rdma/ipath/ipath_srq.c | 380 ---- drivers/staging/rdma/ipath/ipath_stats.c | 347 --- drivers/staging/rdma/ipath/ipath_sysfs.c | 1237 ----------- drivers/staging/rdma/ipath/ipath_uc.c | 547 ----- drivers/staging/rdma/ipath/ipath_ud.c | 579 ----- drivers/staging/rdma/ipath/ipath_user_pages.c | 228 -- drivers/staging/rdma/ipath/ipath_user_sdma.c | 874 -------- drivers/staging/rdma/ipath/ipath_user_sdma.h | 52 - drivers/staging/rdma/ipath/ipath_verbs.c | 2376 -------------------- drivers/staging/rdma/ipath/ipath_verbs.h | 941 -------- drivers/staging/rdma/ipath/ipath_verbs_mcast.c | 363 --- drivers/staging/rdma/ipath/ipath_wc_ppc64.c | 49 - drivers/staging/rdma/ipath/ipath_wc_x86_64.c | 144 -- 41 files changed, 30440 deletions(-) commit e581d111dad3781266ae1abe1d2848e69406deb5 Author: Doug Ledford Date: Wed Feb 3 11:08:53 2016 -0500 staging/rdma: remove deprecated ehca driver This driver was moved to staging for eventual deletion. Time to complete that task. Signed-off-by: Doug Ledford MAINTAINERS | 7 - drivers/staging/rdma/Kconfig | 2 - drivers/staging/rdma/Makefile | 1 - drivers/staging/rdma/ehca/Kconfig | 10 - drivers/staging/rdma/ehca/Makefile | 16 - drivers/staging/rdma/ehca/TODO | 4 - drivers/staging/rdma/ehca/ehca_av.c | 279 --- drivers/staging/rdma/ehca/ehca_classes.h | 481 ----- drivers/staging/rdma/ehca/ehca_classes_pSeries.h | 208 -- drivers/staging/rdma/ehca/ehca_cq.c | 397 ---- drivers/staging/rdma/ehca/ehca_eq.c | 189 -- drivers/staging/rdma/ehca/ehca_hca.c | 414 ---- drivers/staging/rdma/ehca/ehca_irq.c | 870 --------- drivers/staging/rdma/ehca/ehca_irq.h | 77 - drivers/staging/rdma/ehca/ehca_iverbs.h | 202 -- drivers/staging/rdma/ehca/ehca_main.c | 1118 ----------- drivers/staging/rdma/ehca/ehca_mcast.c | 131 -- drivers/staging/rdma/ehca/ehca_mrmw.c | 2202 --------------------- drivers/staging/rdma/ehca/ehca_mrmw.h | 127 -- drivers/staging/rdma/ehca/ehca_pd.c | 123 -- drivers/staging/rdma/ehca/ehca_qes.h | 260 --- drivers/staging/rdma/ehca/ehca_qp.c | 2256 ---------------------- drivers/staging/rdma/ehca/ehca_reqs.c | 953 --------- drivers/staging/rdma/ehca/ehca_sqp.c | 245 --- drivers/staging/rdma/ehca/ehca_tools.h | 155 -- drivers/staging/rdma/ehca/ehca_uverbs.c | 309 --- drivers/staging/rdma/ehca/hcp_if.c | 949 --------- drivers/staging/rdma/ehca/hcp_if.h | 265 --- drivers/staging/rdma/ehca/hcp_phyp.c | 82 - drivers/staging/rdma/ehca/hcp_phyp.h | 90 - drivers/staging/rdma/ehca/hipz_fns.h | 68 - drivers/staging/rdma/ehca/hipz_fns_core.h | 100 - drivers/staging/rdma/ehca/hipz_hw.h | 414 ---- drivers/staging/rdma/ehca/ipz_pt_fn.c | 289 --- drivers/staging/rdma/ehca/ipz_pt_fn.h | 289 --- 35 files changed, 13582 deletions(-) commit f5e741b7c7dddefa318b7f91af134f8ae2a342c1 Author: Doug Ledford Date: Wed Feb 3 11:06:23 2016 -0500 staging/rdma: remove deprecated amso1100 driver Driver was placed in staging for eventual removal, it is time to complete that task. Signed-off-by: Doug Ledford MAINTAINERS | 7 - drivers/staging/rdma/Kconfig | 2 - drivers/staging/rdma/Makefile | 1 - drivers/staging/rdma/amso1100/Kbuild | 6 - drivers/staging/rdma/amso1100/Kconfig | 15 - drivers/staging/rdma/amso1100/TODO | 4 - drivers/staging/rdma/amso1100/c2.c | 1240 ---------------------- drivers/staging/rdma/amso1100/c2.h | 547 ---------- drivers/staging/rdma/amso1100/c2_ae.c | 327 ------ drivers/staging/rdma/amso1100/c2_ae.h | 108 -- drivers/staging/rdma/amso1100/c2_alloc.c | 142 --- drivers/staging/rdma/amso1100/c2_cm.c | 458 -------- drivers/staging/rdma/amso1100/c2_cq.c | 437 -------- drivers/staging/rdma/amso1100/c2_intr.c | 219 ---- drivers/staging/rdma/amso1100/c2_mm.c | 377 ------- drivers/staging/rdma/amso1100/c2_mq.c | 175 --- drivers/staging/rdma/amso1100/c2_mq.h | 106 -- drivers/staging/rdma/amso1100/c2_pd.c | 90 -- drivers/staging/rdma/amso1100/c2_provider.c | 862 --------------- drivers/staging/rdma/amso1100/c2_provider.h | 182 ---- drivers/staging/rdma/amso1100/c2_qp.c | 1024 ------------------ drivers/staging/rdma/amso1100/c2_rnic.c | 652 ------------ drivers/staging/rdma/amso1100/c2_status.h | 158 --- drivers/staging/rdma/amso1100/c2_user.h | 82 -- drivers/staging/rdma/amso1100/c2_vq.c | 260 ----- drivers/staging/rdma/amso1100/c2_vq.h | 63 -- drivers/staging/rdma/amso1100/c2_wr.h | 1520 --------------------------- 27 files changed, 9064 deletions(-) commit 2e5dc73fe1c4befaf894ca357edb5443b82148b1 Merge: 2154cc0 7f0973e Author: Takashi Iwai Date: Wed Feb 3 14:52:41 2016 +0100 Merge branch 'topic/core-fixes' into for-linus commit 7f0973e973cd74aa40747c9d38844560cd184ee8 Author: Takashi Iwai Date: Wed Feb 3 08:32:44 2016 +0100 ALSA: seq: Fix lockdep warnings due to double mutex locks The port subscription code uses double mutex locks for source and destination ports, and this may become racy once when wrongly set up. It leads to lockdep warning splat, typically triggered by fuzzer like syzkaller, although the actual deadlock hasn't been seen, so far. This patch simplifies the handling by reducing to two single locks, so that no lockdep warning will be trigger any longer. By splitting to two actions, a still-in-progress element shall be added in one list while handling another. For ignoring this element, a new check is added in deliver_to_subscribers(). Along with it, the code to add/remove the subscribers list element was cleaned up and refactored. BugLink: http://lkml.kernel.org/r/CACT4Y+aKQXV7xkBW9hpQbzaDO7LrUvohxWh-UwMxXjDy-yBD=A@mail.gmail.com Reported-by: Dmitry Vyukov Tested-by: Dmitry Vyukov Cc: Signed-off-by: Takashi Iwai sound/core/seq/seq_clientmgr.c | 3 + sound/core/seq/seq_ports.c | 233 +++++++++++++++++++++++------------------ 2 files changed, 133 insertions(+), 103 deletions(-) commit 81f577542af15640cbcb6ef68baa4caa610cbbfc Author: Takashi Iwai Date: Wed Feb 3 14:41:22 2016 +0100 ALSA: rawmidi: Fix race at copying & updating the position The rawmidi read and write functions manage runtime stream status such as runtime->appl_ptr and runtime->avail. These point where to copy the new data and how many bytes have been copied (or to be read). The problem is that rawmidi read/write call copy_from_user() or copy_to_user(), and the runtime spinlock is temporarily unlocked and relocked while copying user-space. Since the current code advances and updates the runtime status after the spin unlock/relock, the copy and the update may be asynchronous, and eventually runtime->avail might go to a negative value when many concurrent accesses are done. This may lead to memory corruption in the end. For fixing this race, in this patch, the status update code is performed in the same lock before the temporary unlock. Also, the spinlock is now taken more widely in snd_rawmidi_kernel_read1() for protecting more properly during the whole operation. BugLink: http://lkml.kernel.org/r/CACT4Y+b-dCmNf1GpgPKfDO0ih+uZCL2JV4__j-r1kdhPLSgQCQ@mail.gmail.com Reported-by: Dmitry Vyukov Tested-by: Dmitry Vyukov Cc: Signed-off-by: Takashi Iwai sound/core/rawmidi.c | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) commit 06ab30034ed9c200a570ab13c017bde248ddb2a6 Author: Takashi Iwai Date: Sun Jan 31 11:57:41 2016 +0100 ALSA: rawmidi: Make snd_rawmidi_transmit() race-free A kernel WARNING in snd_rawmidi_transmit_ack() is triggered by syzkaller fuzzer: WARNING: CPU: 1 PID: 20739 at sound/core/rawmidi.c:1136 Call Trace: [< inline >] __dump_stack lib/dump_stack.c:15 [] dump_stack+0x6f/0xa2 lib/dump_stack.c:50 [] warn_slowpath_common+0xd9/0x140 kernel/panic.c:482 [] warn_slowpath_null+0x29/0x30 kernel/panic.c:515 [] snd_rawmidi_transmit_ack+0x275/0x400 sound/core/rawmidi.c:1136 [] snd_virmidi_output_trigger+0x4b1/0x5a0 sound/core/seq/seq_virmidi.c:163 [< inline >] snd_rawmidi_output_trigger sound/core/rawmidi.c:150 [] snd_rawmidi_kernel_write1+0x549/0x780 sound/core/rawmidi.c:1223 [] snd_rawmidi_write+0x543/0xb30 sound/core/rawmidi.c:1273 [] __vfs_write+0x113/0x480 fs/read_write.c:528 [] vfs_write+0x167/0x4a0 fs/read_write.c:577 [< inline >] SYSC_write fs/read_write.c:624 [] SyS_write+0x111/0x220 fs/read_write.c:616 [] entry_SYSCALL_64_fastpath+0x16/0x7a arch/x86/entry/entry_64.S:185 Also a similar warning is found but in another path: Call Trace: [< inline >] __dump_stack lib/dump_stack.c:15 [] dump_stack+0x6f/0xa2 lib/dump_stack.c:50 [] warn_slowpath_common+0xd9/0x140 kernel/panic.c:482 [] warn_slowpath_null+0x29/0x30 kernel/panic.c:515 [] rawmidi_transmit_ack+0x24a/0x3b0 sound/core/rawmidi.c:1133 [] snd_rawmidi_transmit_ack+0x51/0x80 sound/core/rawmidi.c:1163 [] snd_virmidi_output_trigger+0x2b6/0x570 sound/core/seq/seq_virmidi.c:185 [< inline >] snd_rawmidi_output_trigger sound/core/rawmidi.c:150 [] snd_rawmidi_kernel_write1+0x4bb/0x760 sound/core/rawmidi.c:1252 [] snd_rawmidi_write+0x543/0xb30 sound/core/rawmidi.c:1302 [] __vfs_write+0x113/0x480 fs/read_write.c:528 [] vfs_write+0x167/0x4a0 fs/read_write.c:577 [< inline >] SYSC_write fs/read_write.c:624 [] SyS_write+0x111/0x220 fs/read_write.c:616 [] entry_SYSCALL_64_fastpath+0x16/0x7a arch/x86/entry/entry_64.S:185 In the former case, the reason is that virmidi has an open code calling snd_rawmidi_transmit_ack() with the value calculated outside the spinlock. We may use snd_rawmidi_transmit() in a loop just for consuming the input data, but even there, there is a race between snd_rawmidi_transmit_peek() and snd_rawmidi_tranmit_ack(). Similarly in the latter case, it calls snd_rawmidi_transmit_peek() and snd_rawmidi_tranmit_ack() separately without protection, so they are racy as well. The patch tries to address these issues by the following ways: - Introduce the unlocked versions of snd_rawmidi_transmit_peek() and snd_rawmidi_transmit_ack() to be called inside the explicit lock. - Rewrite snd_rawmidi_transmit() to be race-free (the former case). - Make the split calls (the latter case) protected in the rawmidi spin lock. BugLink: http://lkml.kernel.org/r/CACT4Y+YPq1+cYLkadwjWa5XjzF1_Vki1eHnVn-Lm0hzhSpu5PA@mail.gmail.com BugLink: http://lkml.kernel.org/r/CACT4Y+acG4iyphdOZx47Nyq_VHGbpJQK-6xNpiqUjaZYqsXOGw@mail.gmail.com Reported-by: Dmitry Vyukov Tested-by: Dmitry Vyukov Cc: Signed-off-by: Takashi Iwai include/sound/rawmidi.h | 4 ++ sound/core/rawmidi.c | 98 ++++++++++++++++++++++++++++++++------------ sound/core/seq/seq_virmidi.c | 17 +++++--- 3 files changed, 88 insertions(+), 31 deletions(-) commit 2154cc0e2d4ae15132d005d17e473327c70c9a06 Author: Takashi Iwai Date: Wed Feb 3 12:32:51 2016 +0100 ALSA: hda - Add fixup for Mac Mini 7,1 model Mac Mini 7,1 model with CS4208 codec reports the headphone jack detection wrongly in an inverted way. Moreover, the advertised pins for the audio input and SPDIF output have actually no jack detection. This patch addresses these issues. The inv_jack_detect flag is set for fixing the headphone jack detection, and the pin configs for audio input and SPDIF output are marked as non-detectable. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=105161 Report-and-tested-by: moosotc@gmail.com Cc: Signed-off-by: Takashi Iwai sound/pci/hda/patch_cirrus.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit 74c81ecdc0e37b917d7c6358ed72dc8337d8900f Author: Ralf Baechle Date: Wed Feb 3 10:32:22 2016 +0100 MIPS: R6000: Don't allow 64k pages for R6000. The R6000 does not support 64k pages. Signed-off-by: Ralf Baechle arch/mips/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4cc9b9d627af2c443cf98e651e3738d84f991cec Author: Kailang Yang Date: Wed Feb 3 15:09:35 2016 +0800 ALSA: hda/realtek - Support headset mode for ALC225 Support headset mode for ALC225 platforms. Signed-off-by: Kailang Yang Cc: # v4.4+ Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 57 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) commit cfc5a845e62853edd36e564c23c64588f4adcae6 Author: Kailang Yang Date: Wed Feb 3 15:20:39 2016 +0800 ALSA: hda/realtek - Support Dell headset mode for ALC225 Dell create new platform with ALC298 codec. This patch will enable headset mode for ALC225/ALC3253 platform. Signed-off-by: Kailang Yang Cc: # v4.4+ Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 4231430da9607fb2eb7ea92f3b93ceef3bc2ed93 Author: Kailang Yang Date: Wed Feb 3 15:03:50 2016 +0800 ALSA: hda/realtek - New codec support of ALC225 Add new support for ALC225, yet another variant of ALC298 codec. Signed-off-by: Kailang Yang Cc: # 4.4+ Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 8244062ef1e54502ef55f54cced659913f244c3e Author: Rusty Russell Date: Wed Feb 3 16:55:26 2016 +1030 modules: fix longstanding /proc/kallsyms vs module insertion race. For CONFIG_KALLSYMS, we keep two symbol tables and two string tables. There's one full copy, marked SHF_ALLOC and laid out at the end of the module's init section. There's also a cut-down version that only contains core symbols and strings, and lives in the module's core section. After module init (and before we free the module memory), we switch the mod->symtab, mod->num_symtab and mod->strtab to point to the core versions. We do this under the module_mutex. However, kallsyms doesn't take the module_mutex: it uses preempt_disable() and rcu tricks to walk through the modules, because it's used in the oops path. It's also used in /proc/kallsyms. There's nothing atomic about the change of these variables, so we can get the old (larger!) num_symtab and the new symtab pointer; in fact this is what I saw when trying to reproduce. By grouping these variables together, we can use a carefully-dereferenced pointer to ensure we always get one or the other (the free of the module init section is already done in an RCU callback, so that's safe). We allocate the init one at the end of the module init section, and keep the core one inside the struct module itself (it could also have been allocated at the end of the module core, but that's probably overkill). Reported-by: Weilong Chen Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=111541 Cc: stable@kernel.org Signed-off-by: Rusty Russell include/linux/module.h | 19 +++++---- kernel/module.c | 112 ++++++++++++++++++++++++++++++------------------- 2 files changed, 79 insertions(+), 52 deletions(-) commit 2e7bac536106236104e9e339531ff0fcdb7b8147 Author: Rusty Russell Date: Wed Feb 3 16:55:26 2016 +1030 module: wrapper for symbol name. This trivial wrapper adds clarity and makes the following patch smaller. Cc: stable@kernel.org Signed-off-by: Rusty Russell kernel/module.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) commit 4355efbd80482a961cae849281a8ef866e53d55c Author: Luis R. Rodriguez Date: Wed Feb 3 16:55:26 2016 +1030 modules: fix modparam async_probe request Commit f2411da746985 ("driver-core: add driver module asynchronous probe support") added async probe support, in two forms: * in-kernel driver specification annotation * generic async_probe module parameter (modprobe foo async_probe) To support the generic kernel parameter parse_args() was extended via commit ecc8617053e0 ("module: add extra argument for parse_params() callback") however commit failed to f2411da746985 failed to add the required argument. This causes a crash then whenever async_probe generic module parameter is used. This was overlooked when the form in which in-kernel async probe support was reworked a bit... Fix this as originally intended. Cc: Hannes Reinecke Cc: Dmitry Torokhov Cc: stable@vger.kernel.org (4.2+) Signed-off-by: Luis R. Rodriguez Signed-off-by: Rusty Russell [minimized] kernel/module.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d896910f381737a139686eb3fa9e1c7ce8f59e52 Author: Geert Uytterhoeven Date: Fri Jan 15 14:40:24 2016 +0100 phy: Restrict phy-hi6220-usb to HiSilicon arm64 The HiSilicon Hi6220 USB PHY is available in HiSilicon Hi6220 SoCs only. Restrict it to HiSilicon arm64, unless compile-testing. Signed-off-by: Geert Uytterhoeven Signed-off-by: Kishon Vijay Abraham I drivers/phy/Kconfig | 1 + 1 file changed, 1 insertion(+) commit dba280b20bfd1c2bed8a07ce3f75a6da8ba7d247 Author: Alex Deucher Date: Tue Feb 2 16:24:20 2016 -0500 drm/amdgpu: remove exp hardware support from iceland It's working now. bug: https://bugs.freedesktop.org/show_bug.cgi?id=92270 Reviewed-by: Ken Wang Reviewed-by: Christian König Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 951e09624a9f417f0b64c872f71feb6738905086 Author: Alex Deucher Date: Tue Feb 2 16:22:15 2016 -0500 drm/amdgpu: load MEC ucode manually on iceland The smc doesn't handle it. Reviewed-by: Ken Wang Reviewed-by: Christian König Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) commit 97dde76a30c2e67fa5fb9cb6a4072c0178c9df26 Author: Alex Deucher Date: Tue Feb 2 11:15:41 2016 -0500 drm/amdgpu: don't load MEC2 on topaz Not validated. Reviewed-by: Ken Wang Reviewed-by: Christian König Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 4 ++-- drivers/gpu/drm/amd/amdgpu/iceland_smc.c | 12 +++--------- 2 files changed, 5 insertions(+), 11 deletions(-) commit 8878d8548ac7fae43cd6d82579f966eb8825e282 Author: Alex Deucher Date: Tue Feb 2 10:57:30 2016 -0500 drm/amdgpu: drop topaz support from gmc8 module topaz is actually gmc7. Reviewed-by: Ken Wang Reviewed-by: Christian König Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 28 +--------------------------- 1 file changed, 1 insertion(+), 27 deletions(-) commit 72b459c8f716ef03a8a0c78078547ce64d8d29a2 Author: Alex Deucher Date: Tue Feb 2 10:56:15 2016 -0500 drm/amdgpu: pull topaz gmc bits into gmc_v7 Add the topaz golden settings into the gmc7 module. Reviewed-by: Ken Wang Reviewed-by: Christian König Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) commit 8f3c162961fc2d92ec73a66496aab69eb2e19c36 Author: Ken Wang Date: Wed Feb 3 19:17:53 2016 +0800 drm/amdgpu: The VI specific EXE bit should only apply to GMC v8.0 above Reviewed-by: Christian König Reviewed-by: Alex Deucher Signed-off-by: Ken Wang Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 429c45deae6e57f1bb91bfb05b671063fb0cef60 Author: Ken Wang Date: Wed Feb 3 19:16:54 2016 +0800 drm/amdgpu: iceland use CI based MC IP Reviewed-by: Christian König Reviewed-by: Alex Deucher Signed-off-by: Ken Wang Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 10 +++++++++- drivers/gpu/drm/amd/amdgpu/vi.c | 7 ++++--- 2 files changed, 13 insertions(+), 4 deletions(-) commit e42d85261680edfc350a6c2a86b7fbb44a85014b Author: Alex Deucher Date: Tue Feb 2 10:59:53 2016 -0500 drm/amdgpu: move gmc7 support out of CIK dependency It's used by iceland which is VI. Reviewed-by: Ken Wang Reviewed-by: Christian König Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 53af16f79fbc3f06df76f6d82adcd4ed03b3d752 Author: Ulf Hansson Date: Mon Feb 1 14:52:41 2016 +0100 PM / Domains: Silence compiler warning for an unused function The only remaining caller of genpd_poweron() is conditionally compiled based on CONFIG_PM_GENERIC_DOMAINS_OF, so we get a warning when that is unset. By moving the locking/unlocking of the genpd outside genpd_poweron(), thus to the caller, genpd_poweron() becomes redundant. Within this context let's then rename the wrapper function, __genpd_poweron(), to genpd_poweron() as it will then be consistent with its friend genpd_poweroff(). This change silence the warning about the unused function. Reported-by: Arnd Bergmann Fixes: ea823c7cbffa "PM / Domains: Remove pm_genpd_poweron() API" Signed-off-by: Ulf Hansson Acked-by: Arnd Bergmann Cc: 4.4+ # 4.4+ Signed-off-by: Rafael J. Wysocki drivers/base/power/domain.c | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-) commit 2db8f9a1d86aa32a9cbf1a975882b4fa162f040f Author: Timur Tabi Date: Tue Jan 26 12:43:00 2016 -0600 ACPI / CPPC: remove redundant mbox_send_message() declaration Remove a redundant function declaration in cppc_acpi.h for mbox_send_message(). That function is defined in mailbox_client.h, which is already included. Signed-off-by: Timur Tabi Signed-off-by: Rafael J. Wysocki include/acpi/cppc_acpi.h | 1 - 1 file changed, 1 deletion(-) commit 5be6ada39f3f11a14fae9c6c328bcc78cf476e2e Author: Andy Shevchenko Date: Mon Feb 1 16:17:38 2016 +0200 ACPI / LPSS: set PM domain via helper setter The commit 989561de9b51 ("PM / Domains: add setter for dev.pm_domain") changed acpi_lpss.c module to use PM domain setter, though it missed one assignment. Add it here. Fixes: 989561de9b51 (PM / Domains: add setter for dev.pm_domain) Signed-off-by: Andy Shevchenko Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_lpss.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ed1f0eeebaeeb7f790e9e7642116a208581e5bfc Author: Josh Boyer Date: Wed Feb 3 01:00:29 2016 +0100 PNP: Add Haswell-ULT to Intel MCH size workaround Add device ID 0x0a04 for Haswell-ULT to the list of devices with MCH problems. From a Lenovo ThinkPad T440S: [ 0.188604] pnp: PnP ACPI init [ 0.189044] system 00:00: [mem 0x00000000-0x0009ffff] could not be reserved [ 0.189048] system 00:00: [mem 0x000c0000-0x000c3fff] could not be reserved [ 0.189050] system 00:00: [mem 0x000c4000-0x000c7fff] could not be reserved [ 0.189052] system 00:00: [mem 0x000c8000-0x000cbfff] could not be reserved [ 0.189054] system 00:00: [mem 0x000cc000-0x000cffff] could not be reserved [ 0.189056] system 00:00: [mem 0x000d0000-0x000d3fff] has been reserved [ 0.189058] system 00:00: [mem 0x000d4000-0x000d7fff] has been reserved [ 0.189060] system 00:00: [mem 0x000d8000-0x000dbfff] has been reserved [ 0.189061] system 00:00: [mem 0x000dc000-0x000dffff] has been reserved [ 0.189063] system 00:00: [mem 0x000e0000-0x000e3fff] could not be reserved [ 0.189065] system 00:00: [mem 0x000e4000-0x000e7fff] could not be reserved [ 0.189067] system 00:00: [mem 0x000e8000-0x000ebfff] could not be reserved [ 0.189069] system 00:00: [mem 0x000ec000-0x000effff] could not be reserved [ 0.189071] system 00:00: [mem 0x000f0000-0x000fffff] could not be reserved [ 0.189073] system 00:00: [mem 0x00100000-0xdf9fffff] could not be reserved [ 0.189075] system 00:00: [mem 0xfec00000-0xfed3ffff] could not be reserved [ 0.189078] system 00:00: [mem 0xfed4c000-0xffffffff] could not be reserved [ 0.189082] system 00:00: Plug and Play ACPI device, IDs PNP0c01 (active) [ 0.189216] system 00:01: [io 0x1800-0x189f] could not be reserved [ 0.189220] system 00:01: [io 0x0800-0x087f] has been reserved [ 0.189222] system 00:01: [io 0x0880-0x08ff] has been reserved [ 0.189224] system 00:01: [io 0x0900-0x097f] has been reserved [ 0.189226] system 00:01: [io 0x0980-0x09ff] has been reserved [ 0.189229] system 00:01: [io 0x0a00-0x0a7f] has been reserved [ 0.189231] system 00:01: [io 0x0a80-0x0aff] has been reserved [ 0.189233] system 00:01: [io 0x0b00-0x0b7f] has been reserved [ 0.189235] system 00:01: [io 0x0b80-0x0bff] has been reserved [ 0.189238] system 00:01: [io 0x15e0-0x15ef] has been reserved [ 0.189240] system 00:01: [io 0x1600-0x167f] has been reserved [ 0.189242] system 00:01: [io 0x1640-0x165f] has been reserved [ 0.189246] system 00:01: [mem 0xf8000000-0xfbffffff] could not be reserved [ 0.189249] system 00:01: [mem 0x00000000-0x00000fff] could not be reserved [ 0.189251] system 00:01: [mem 0xfed1c000-0xfed1ffff] has been reserved [ 0.189254] system 00:01: [mem 0xfed10000-0xfed13fff] has been reserved [ 0.189256] system 00:01: [mem 0xfed18000-0xfed18fff] has been reserved [ 0.189258] system 00:01: [mem 0xfed19000-0xfed19fff] has been reserved [ 0.189261] system 00:01: [mem 0xfed45000-0xfed4bfff] has been reserved [ 0.189264] system 00:01: Plug and Play ACPI device, IDs PNP0c02 (active) [....] [ 0.583653] resource sanity check: requesting [mem 0xfed10000-0xfed15fff], which spans more than pnp 00:01 [mem 0xfed10000-0xfed13fff] [ 0.583654] ------------[ cut here ]------------ [ 0.583660] WARNING: CPU: 0 PID: 1 at arch/x86/mm/ioremap.c:198 __ioremap_caller+0x2c5/0x380() [ 0.583661] Info: mapping multiple BARs. Your kernel is fine. [ 0.583662] Modules linked in: [ 0.583666] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.3.3-303.fc23.x86_64 #1 [ 0.583668] Hardware name: LENOVO 20AR001GXS/20AR001GXS, BIOS GJET86WW (2.36 ) 12/04/2015 [ 0.583670] 0000000000000000 0000000014cf7e59 ffff880214a1baf8 ffffffff813a625f [ 0.583673] ffff880214a1bb40 ffff880214a1bb30 ffffffff810a07c2 00000000fed10000 [ 0.583675] ffffc90000cb8000 0000000000006000 0000000000000000 ffff8800d6381040 [ 0.583678] Call Trace: [ 0.583683] [] dump_stack+0x44/0x55 [ 0.583686] [] warn_slowpath_common+0x82/0xc0 [ 0.583688] [] warn_slowpath_fmt+0x5c/0x80 [ 0.583692] [] ? iomem_map_sanity_check+0xba/0xd0 [ 0.583695] [] __ioremap_caller+0x2c5/0x380 [ 0.583698] [] ioremap_nocache+0x17/0x20 [ 0.583701] [] snb_uncore_imc_init_box+0x79/0xb0 [ 0.583705] [] uncore_pci_probe+0xd0/0x1b0 [ 0.583707] [] local_pci_probe+0x45/0xa0 [ 0.583710] [] pci_device_probe+0xfd/0x140 [ 0.583713] [] driver_probe_device+0x222/0x480 [ 0.583715] [] __driver_attach+0x84/0x90 [ 0.583717] [] ? driver_probe_device+0x480/0x480 [ 0.583720] [] bus_for_each_dev+0x6c/0xc0 [ 0.583722] [] driver_attach+0x1e/0x20 [ 0.583724] [] bus_add_driver+0x1eb/0x280 [ 0.583727] [] ? uncore_cpu_setup+0x12/0x12 [ 0.583729] [] driver_register+0x60/0xe0 [ 0.583733] [] __pci_register_driver+0x4c/0x50 [ 0.583736] [] intel_uncore_init+0xe2/0x2e6 [ 0.583738] [] ? uncore_cpu_setup+0x12/0x12 [ 0.583741] [] do_one_initcall+0xb3/0x200 [ 0.583745] [] ? parse_args+0x1a0/0x4a0 [ 0.583749] [] kernel_init_freeable+0x189/0x223 [ 0.583752] [] ? rest_init+0x80/0x80 [ 0.583754] [] kernel_init+0xe/0xe0 [ 0.583758] [] ret_from_fork+0x3f/0x70 [ 0.583760] [] ? rest_init+0x80/0x80 [ 0.583765] ---[ end trace 077c426a39e018aa ]--- 00:00.0 Host bridge [0600]: Intel Corporation Haswell-ULT DRAM Controller [8086:0a04] (rev 0b) Subsystem: Lenovo Device [17aa:220c] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- SERR- Kernel driver in use: hsw_uncore Link: https://bugzilla.redhat.com/show_bug.cgi?id=1300955 Tested-by: Signed-off-by: Josh Boyer Signed-off-by: Rafael J. Wysocki drivers/pnp/quirks.c | 1 + 1 file changed, 1 insertion(+) commit f146357f069e71aff8e474c625bcebcd3094b3ab Author: Takashi Iwai Date: Tue Feb 2 14:14:10 2016 +0100 ALSA: timer: Sync timer deletion at closing the system timer ALSA timer core framework has no sync point at stopping because it's called inside the spinlock. Thus we need a sync point at close for avoiding the stray timer task. This is simply done by implementing the close callback just calling del_timer_sync(). (It's harmless to call it unconditionally, as the core timer itself cares of the already deleted timer instance.) Signed-off-by: Takashi Iwai sound/core/timer.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 1c5e08099022942cd530c99f5f292c735acc288f Author: Moni Shoua Date: Thu Jan 28 17:51:50 2016 +0200 IB/core: Set correct payload length for RoCEv2 over IPv6 For GSI QP traffic, the count of the udp header bytes was missing from the IPv6 header, fix that. Fixes: 25f40220e56b ('IB/core: Initialize UD header structure with IP and UDP headers') Signed-off-by: Moni Shoua Signed-off-by: Doug Ledford drivers/infiniband/core/ud_header.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 01581fb89e5a6d41d06132aefe105a506f04ce1e Author: Maor Gottlieb Date: Thu Jan 28 17:51:49 2016 +0200 IB/mlx5: Use MLX5_GET to correctly get end of padding mode MLX5_GET64 was used on end_padding_mode, which is a 2-bit field. This is wrong as the calculated offset is incorrect. Using MLX5_GET instead of MLX5_GET64 to fix that. Fixes: 0fb2ed66a14c ('IB/mlx5: Add create and destroy functionality for Raw Packet QP') Signed-off-by: Maor Gottlieb Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/qp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 09f16cf59fbf825130c216c3af189253505dc9d9 Author: Majd Dibbiny Date: Thu Jan 28 17:51:48 2016 +0200 IB/mlx5: Fix use of null pointer PD When a Raw Ethernet QP is created, a NULL pointer PD could be used. Fixing that by only using the PD after validating it's valid. smatch also reported this error: drivers/infiniband/hw/mlx5/qp.c:1629 mlx5_ib_create_qp() error: we previously assumed 'pd' could be null (see line 1616) Fixes: 0fb2ed66a14c ('IB/mlx5: Add create and destroy functionality for Raw Packet QP') Signed-off-by: Majd Dibbiny Reported-by: Dan Carpenter Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/qp.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit a168a41c8147fe644f1144031a6ec27a1a13fe37 Author: Majd Dibbiny Date: Thu Jan 28 17:51:47 2016 +0200 IB/mlx5: Fix reqlen validation in mlx5_ib_alloc_ucontext Older libraries that don't have all the new req_v2 fields should be able to work as well. Today, if the library uses v2, it will fail to allocate context since the size of reqlen is smaller than the req_v2 size. Fix the validation to be with the original req_v2 size and not the current. Fixes: f72300c56c3b ('IB/mlx5: Expose CQE version to user-space') Signed-off-by: Majd Dibbiny Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/main.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit d4584ddfc97518a575ed538307e81e73456b8175 Author: Matan Barak Date: Thu Jan 28 17:51:46 2016 +0200 IB/mlx5: Add CREATE_CQ and CREATE_QP to uverbs_ex_cmd_mask The mlx5_ib driver supports the extended create_cq and create_qp user verbs. In the current mechanism, a vendor supporting an extended uverb should set the appropriate bit in the uverbs_ex_cmd_mask field. Adding the actual support by setting the required bits in order to support features like completion time-stamping and cross-channel. Fixes: 972ecb821379 ('IB/mlx5: Add create_cq extended command') Fixes: ddf9529be19c ('IB/core: Allow setting create flags in QP init attribute') Signed-off-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/main.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit ef720532ecc22a76fea4450bcc91ee054cde9bdb Author: Alex Deucher Date: Tue Feb 2 14:46:48 2016 -0500 drm/amdgpu/gfx7: enable cp inst/reg error interrupts Enable CP register/instruction error interrupts. Useful for debugging command stream problems. Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) commit 1d22a454ecda91c8b8c67ff2b07cdbdf7d26ede1 Author: Alex Deucher Date: Tue Feb 2 14:42:28 2016 -0500 drm/amdgpu/gfx8: enable cp inst/reg error interrupts Enable CP register/instruction error interrupts. Useful for debugging command stream problems. Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 292d4200a90715ac29f3763df27adb38a243868c Author: Pierre-Louis Bossart Date: Tue Feb 2 12:49:49 2016 -0600 ASoC: Intel: Atom: fix regression on compress DAI Commit a106804 ("ASoC: compress: Fix compress device direction check") added a dependency on the compress-cpu-dai channel_min field which was removed earlier by commit 77095796 ("ASoC: Intel: Atom: clean-up compressed DAI definition") as part of the baytrail cleanups. The net result was a regression at probe on all Atom platforms with no sound card created. Fix by adding explicit initialization for channel_min to 1 for the compress-cpu-dai. Reported-by: Tobias Mädel Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown sound/soc/intel/atom/sst-mfld-platform-pcm.c | 1 + 1 file changed, 1 insertion(+) commit 5e82d2be6ee53275c72e964507518d7964c82753 Author: Vinod Koul Date: Mon Feb 1 22:26:40 2016 +0530 ASoC: dpcm: fix the BE state on hw_free While performing hw_free, DPCM checks the BE state but leaves out the suspend state. The suspend state needs to be checked as well, as we might be suspended and then usermode closes rather than resuming the audio stream. This was found by a stress testing of system with playback in loop and killed after few seconds running in background and second script running suspend-resume test in loop Signed-off-by: Vinod Koul Acked-by: Liam Girdwood Signed-off-by: Mark Brown Cc: stable@vger.kernel.org sound/soc/soc-pcm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d2f916aaccaf7b3bc27df2fd6cfc00f6cda2f78d Author: Jon Medhurst (Tixy) Date: Mon Feb 1 15:54:37 2016 +0000 ASoC: dwc: Ensure i2s_reg_comp{1,2} is always initialised In the case that the driver is configured from device-tree i2s_reg_comp1 and i2s_reg_comp2 aren't initialised, breaking the driver. Fix this by unconditionally setting these values before checking for quirks. Fixes: a242cac1d3aa ("ASoC: dwc: add quirk to override COMP_PARAM_1 register") Signed-off-by: Jon Medhurst Signed-off-by: Mark Brown sound/soc/dwc/designware_i2s.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 270bde1e76f400d81f8d0ab68905a18ee17fa2e8 Author: Hemant Kumar Date: Tue Feb 2 20:56:46 2016 +0530 perf probe: Search both .eh_frame and .debug_frame sections for probe location 'perf probe' through debuginfo__find_probes() in util/probe-finder.c checks for the functions' frame descriptions in either .eh_frame section of an ELF or the .debug_frame. The check is based on whether either one of these sections is present. Depending on distro, toolchain defaults, architetcutre, build flags, etc., CFI might be found in either .eh_frame and/or .debug_frame. Sometimes, it may happen that, .eh_frame, even if present, may not be complete and may miss some descriptions. Therefore, to be sure, to find the CFI covering an address we will always have to investigate both if available. For e.g., in powerpc, this may happen: $ gcc -g bin.c -o bin $ objdump --dwarf ./bin <1><145>: Abbrev Number: 7 (DW_TAG_subprogram) <146> DW_AT_external : 1 <146> DW_AT_name : (indirect string, offset: 0x9e): main <14a> DW_AT_decl_file : 1 <14b> DW_AT_decl_line : 39 <14c> DW_AT_prototyped : 1 <14c> DW_AT_type : <0x57> <150> DW_AT_low_pc : 0x100007b8 If the .eh_frame and .debug_frame are checked for the same binary, we will find that, .eh_frame (although present) doesn't contain a description for "main" function. But, .debug_frame has a description: 000000d8 00000024 00000000 FDE cie=00000000 pc=100007b8..10000838 DW_CFA_advance_loc: 16 to 100007c8 DW_CFA_def_cfa_offset: 144 DW_CFA_offset_extended_sf: r65 at cfa+16 ... Due to this (since, perf checks whether .eh_frame is present and goes on searching for that address inside that frame), perf is unable to process the probes: # perf probe -x ./bin main Failed to get call frame on 0x100007b8 Error: Failed to add events. To avoid this issue, we need to check both the sections (.eh_frame and .debug_frame), which is done in this patch. Note that, we can always force everything into both .eh_frame and .debug_frame by: $ gcc bin.c -fasynchronous-unwind-tables -fno-dwarf2-cfi-asm -g -o bin Signed-off-by: Hemant Kumar Acked-by: Masami Hiramatsu Cc: linuxppc-dev@lists.ozlabs.org Cc: Mark Wielaard Cc: Naveen N. Rao Cc: Srikar Dronamraju Link: http://lkml.kernel.org/r/1454426806-13974-1-git-send-email-hemant@linux.vnet.ibm.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/probe-finder.c | 62 +++++++++++++++++++++++++----------------- tools/perf/util/probe-finder.h | 5 +++- 2 files changed, 41 insertions(+), 26 deletions(-) commit 811d61e384e24759372bb3f01772f3744b0a8327 Author: James Morse Date: Tue Feb 2 15:53:59 2016 +0000 arm64: futex.h: Add missing PAN toggling futex.h's futex_atomic_cmpxchg_inatomic() does not use the __futex_atomic_op() macro and needs its own PAN toggling. This was missed when the feature was implemented. Fixes: 338d4f49d6f ("arm64: kernel: Add support for Privileged Access Never") Signed-off-by: James Morse Signed-off-by: Will Deacon arch/arm64/include/asm/futex.h | 2 ++ 1 file changed, 2 insertions(+) commit 3a4acda1ecbd290973de08250d7dcdfaf5b2fe0f Author: Adrian Hunter Date: Mon Feb 1 03:21:04 2016 +0000 perf tools: Fix thread lifetime related segfaut in intel_pt intel_pt_process_auxtrace_info() creates a pt->unknown_thread thread that eventually needs to be freed by the last thread__put() on it, when its refcount hits zero, which may happen in intel_pt_process_auxtrace_info() error handling path and triggers the following segfault, which would happen as well at intel_pt_free, when tools using this intel_pt codebase frees up resources: # perf record -I -e intel_pt/tsc=1,noretcomp=1/u /bin/ls 0 a anaconda-ks.cfg bin perf.data perf.data.old perf-f23-bringup.todo [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.217 MB perf.data ] # # perf script -F event,comm,pid,tid,time,addr,ip,sym,dso,iregs Samples for 'instructions:u' event do not have IREGS attribute set. Cannot print 'iregs' field. intel_pt_synth_events: failed to synthesize 'instructions' event type Segmentation fault (core dumped) # The problem is: there's a union in 'struct thread' combines a list_head and a rb_node. The standard life cycle of a thread is: init rb_node in the constructor, insert it into machine->threads rbtree using rb_node, move it to machine->dead_threads using list_head, clean in the last thread__put: list_del_init(&thread->node). In the above command, it clean a thread before adding it into list, causes the above segfault. Since pt->unknown_thread will never live in an rbtree, initialize its list node so that when list_del_init() is done on it we don't segfault. After this patch: # perf script -F event,comm,pid,tid,time,addr,ip,sym,dso,iregs Samples for 'instructions:u' event do not have IREGS attribute set. Cannot print 'iregs' field. intel_pt_synth_events: failed to synthesize 'instructions' event type 0x248 [0x88]: failed to process type: 70 # Reported-by: Tong Zhang Reported-by: Wang Nan Signed-off-by: Adrian Hunter Tested-by: Arnaldo Carvalho de Melo Cc: Josh Poimboeuf Link: http://lkml.kernel.org/r/1454296865-19749-1-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/intel-pt.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 95f5c80050ad723163aa80dc8bffd48ef4afc6d5 Author: Ard Biesheuvel Date: Wed Jan 27 10:50:19 2016 +0100 arm64: allow vmalloc regions to be set with set_memory_* The range of set_memory_* is currently restricted to the module address range because of difficulties in breaking down larger block sizes. vmalloc maps PAGE_SIZE pages so it is safe to use as well. Update the function ranges and add a comment explaining why the range is restricted the way it is. Suggested-by: Laura Abbott Acked-by: Mark Rutland Signed-off-by: Ard Biesheuvel Signed-off-by: Will Deacon arch/arm64/mm/pageattr.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) commit a187f17f0e15a046aa5d7263b35df55230d92779 Author: Oded Gabbay Date: Sat Jan 30 07:59:34 2016 +0200 drm/amdgpu: mask out WC from BO on unsupported arches Reviewed-by: Christian König Reviewed-by: Michel Dänzer Signed-off-by: Oded Gabbay Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit c5244987394648913ae1a03879c58058a2fc2cee Author: Oded Gabbay Date: Sat Jan 30 07:59:33 2016 +0200 drm/radeon: mask out WC from BO on unsupported arches Reviewed-by: Christian König Reviewed-by: Michel Dänzer Signed-off-by: Oded Gabbay Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/radeon_object.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 4b0e4e4af6c6dc8354dcb72182d52c1bc55f12fc Author: Dave Airlie Date: Sat Jan 30 07:59:32 2016 +0200 drm: add helper to check for wc memory support Reviewed-by: Christian König Reviewed-by: Michel Dänzer Signed-off-by: Dave Airlie Signed-off-by: Oded Gabbay Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org include/drm/drm_cache.h | 9 +++++++++ 1 file changed, 9 insertions(+) commit 212c5a5e6ba61678be6b5fee576e38bccb50b613 Author: Sven Eckelmann Date: Tue Feb 2 08:12:26 2016 +0100 mac80211: minstrel: Change expected throughput unit back to Kbps The change from cur_tp to the function minstrel_get_tp_avg/minstrel_ht_get_tp_avg changed the unit used for the current throughput. For example in minstrel_ht the correct conversion between them would be: mrs->cur_tp / 10 == minstrel_ht_get_tp_avg(..). This factor 10 must also be included in the calculation of minstrel_get_expected_throughput and minstrel_ht_get_expected_throughput to return values with the unit [Kbps] instead of [10Kbps]. Otherwise routing algorithms like B.A.T.M.A.N. V will make incorrect decision based on these values. Its kernel based implementation expects expected_throughput always to have the unit [Kbps] and not sometimes [10Kbps] and sometimes [Kbps]. The same requirement has iw or olsrdv2's nl80211 based statistics module which retrieve the same data via NL80211_STA_INFO_TX_BITRATE. Cc: stable@vger.kernel.org Fixes: 6a27b2c40b48 ("mac80211: restructure per-rate throughput calculation into function") Signed-off-by: Sven Eckelmann Signed-off-by: Johannes Berg net/mac80211/rc80211_minstrel.c | 2 +- net/mac80211/rc80211_minstrel_ht.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) commit f84a93726e0c0c53b5b6dbee96623e7e53e06dd8 Author: Konstantin Khlebnikov Date: Fri Jan 29 11:35:12 2016 +0300 mac80211: minstrel_ht: fix out-of-bound in minstrel_ht_set_best_prob_rate Patch fixes this splat BUG: KASAN: slab-out-of-bounds in minstrel_ht_update_stats.isra.7+0x6e1/0x9e0 [mac80211] at addr ffff8800cee640f4 Read of size 4 by task swapper/3/0 Signed-off-by: Konstantin Khlebnikov Link: http://lkml.kernel.org/r/CALYGNiNyJhSaVnE35qS6UCGaSb2Dx1_i5HcRavuOX14oTz2P+w@mail.gmail.com Acked-by: Felix Fietkau Signed-off-by: Johannes Berg net/mac80211/rc80211_minstrel_ht.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 5a1d5eff3ede4de4482015a9999336051054283f Author: Jon Hunter Date: Fri Dec 4 17:04:25 2015 +0000 clk: tegra: super: Fix sparse warnings for functions not declared as static Sparse reports the following warnings for structures and functions that should be declared static: drivers/clk/tegra/clk-tegra-super-gen4.c:70:35: warning: symbol 'tegra_super_gen_info_gen4' was not declared. Should it be static? drivers/clk/tegra/clk-tegra-super-gen4.c:96:35: warning: symbol 'tegra_super_gen_info_gen5' was not declared. Should it be static? drivers/clk/tegra/clk-tegra-super-gen4.c:174:13: warning: symbol 'tegra_super_clk_init' was not declared. Should it be static? Fix this by making the above static. Signed-off-by: Jon Hunter Acked-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-tegra-super-gen4.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit fd360e20844aa8d1081eb28c72128abb7a5d3598 Author: Jon Hunter Date: Fri Dec 4 17:04:24 2015 +0000 clk: tegra: Fix sparse warnings for functions not declared as static Sparse reports the following warnings for functions in clk-tegra210.c that should be declared as static: drivers/clk/tegra/clk-tegra210.c:460:6: warning: symbol 'tegra210_pllcx_set_defaults' was not declared. Should it be static? drivers/clk/tegra/clk-tegra210.c:485:6: warning: symbol '_pllc_set_defaults' was not declared. Should it be static? drivers/clk/tegra/clk-tegra210.c:490:6: warning: symbol '_pllc2_set_defaults' was not declared. Should it be static? drivers/clk/tegra/clk-tegra210.c:495:6: warning: symbol '_pllc3_set_defaults' was not declared. Should it be static? drivers/clk/tegra/clk-tegra210.c:500:6: warning: symbol '_plla1_set_defaults' was not declared. Should it be static? drivers/clk/tegra/clk-tegra210.c:510:6: warning: symbol 'tegra210_plla_set_defaults' was not declared. Should it be static? drivers/clk/tegra/clk-tegra210.c:562:6: warning: symbol 'tegra210_plld_set_defaults' was not declared. Should it be static? drivers/clk/tegra/clk-tegra210.c:701:6: warning: symbol 'tegra210_plld2_set_defaults' was not declared. Should it be static? drivers/clk/tegra/clk-tegra210.c:709:6: warning: symbol 'tegra210_plldp_set_defaults' was not declared. Should it be static? drivers/clk/tegra/clk-tegra210.c:722:6: warning: symbol 'tegra210_pllc4_set_defaults' was not declared. Should it be static? drivers/clk/tegra/clk-tegra210.c:731:6: warning: symbol 'tegra210_pllre_set_defaults' was not declared. Should it be static? drivers/clk/tegra/clk-tegra210.c:844:6: warning: symbol 'tegra210_pllx_set_defaults' was not declared. Should it be static? drivers/clk/tegra/clk-tegra210.c:904:6: warning: symbol 'tegra210_pllmb_set_defaults' was not declared. Should it be static? drivers/clk/tegra/clk-tegra210.c:963:6: warning: symbol 'tegra210_pllp_set_defaults' was not declared. Should it be static? drivers/clk/tegra/clk-tegra210.c:1025:6: warning: symbol 'tegra210_pllu_set_defaults' was not declared. Should it be static? drivers/clk/tegra/clk-tegra210.c:1215:15: warning: symbol 'tegra210_clk_adjust_vco_min' was not declared. Should it be static? Fix this by declaring the above as static. Signed-off-by: Jon Hunter Acked-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-tegra210.c | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) commit d9e657919afe0794713b5ffb069f9f66c37bfe17 Author: Jon Hunter Date: Fri Dec 4 17:04:23 2015 +0000 clk: tegra: Fix sparse warning for pll_m Sparse generates the following warning for the pll_m params structure: drivers/clk/tegra/clk-tegra210.c:1569:10: warning: Initializer entry defined twice drivers/clk/tegra/clk-tegra210.c:1570:10: also defined here Fix this by correcting the index for the MISC1 register. Fixes: b31eba5ff3f7 ("clk: tegra: Add support for Tegra210 clocks") Signed-off-by: Jon Hunter Acked-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-tegra210.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2d5b6cf84a1764aa9837128bc1e6fd53cb0bb9c1 Author: Jon Hunter Date: Mon Dec 21 12:56:32 2015 +0000 clk: tegra: Use definition for pll_u override bit The definition, PLLU_BASE_OVERRIDE, for the pll_u OVERRIDE bit is defined but not used and when the OVERRIDE bit is cleared in tegra210_pll_init() the code directly uses the bit number. Therefore, use the definition, PLLU_BASE_OVERRIDE when clearing the OVERRIDE bit. Signed-off-by: Jon Hunter Acked-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-tegra210.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0649c3232be5b647dba50e2f6d31fe1306913ab2 Author: Jon Hunter Date: Mon Dec 21 12:56:31 2015 +0000 clk: tegra: Fix warning caused by pll_u failing to lock If the pll_u is not configured by the bootloader, then on kernel boot the following warning is seen: clk_pll_wait_for_lock: Timed out waiting for pll pll_u_vco lock tegra_init_from_table: Failed to enable pll_u_out1 ------------[ cut here ]------------ WARNING: at drivers/clk/tegra/clk.c:269 Modules linked in: CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.4.0-rc4-next-20151214+ #1 Hardware name: NVIDIA Tegra210 P2371 reference board (E.1) (DT) task: ffffffc0bc0a0000 ti: ffffffc0bc0a8000 task.ti: ffffffc0bc0a8000 PC is at tegra_init_from_table+0x140/0x164 LR is at tegra_init_from_table+0x140/0x164 pc : [] lr : [] pstate: 80000045 sp : ffffffc0bc0abd50 x29: ffffffc0bc0abd50 x28: ffffffc00090b8a8 x27: ffffffc000a06000 x26: ffffffc0bc019780 x25: ffffffc00086a708 x24: ffffffc00086a790 x23: ffffffc0006d7188 x22: ffffffc0bc010000 x21: 000000000000016e x20: ffffffc0bc00d100 x19: ffffffc000944178 x18: 0000000000000007 x17: 000000000000000e x16: 0000000000000001 x15: 0000000000000007 x14: 000000000000000e x13: 0000000000000013 x12: 000000000000001a x11: 000000000000004d x10: 0000000000000750 x9 : ffffffc0bc0a8000 x8 : ffffffc0bc0a07b0 x7 : 0000000000000001 x6 : 0000000002d5f0f8 x5 : 0000000000000000 x4 : 0000000000000000 x3 : 0000000000000002 x2 : ffffffc000996724 x1 : 0000000000000000 x0 : 0000000000000032 ---[ end trace cbd20ae519e92ced ]--- Call trace: [] tegra_init_from_table+0x140/0x164 [] tegra210_clock_apply_init_table+0x20/0x28 [] tegra_clocks_apply_init_table+0x18/0x24 [] do_one_initcall+0x90/0x194 [] kernel_init_freeable+0x148/0x1e8 [] kernel_init+0x10/0xdc [] ret_from_fork+0x10/0x40 clk_pll_wait_for_lock: Timed out waiting for pll pll_u_vco lock tegra_init_from_table: Failed to enable pll_u_out2 ------------[ cut here ]------------ pll_u can be either controlled by software or hardware and this is selected via the OVERRIDE bit in the pll_u base register. In the function tegra210_pll_init(), the OVERRIDE bit for pll_u is cleared, which selects hardware control of the pll. However, at the same time the pll_u clocks are populated in the init_table for tegra210 and so software will try to configure the pll_u if it is not already configured and hence, the above warning is seen when the pll fails to lock. Remove the pll_u clocks from the init_table so that software does not try to configure this pll on boot. Signed-off-by: Jon Hunter Acked-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-tegra210.c | 2 -- 1 file changed, 2 deletions(-) commit 4f8d44403079991a29e69f6aa25bb718ead418cb Author: Jon Hunter Date: Fri Dec 18 13:45:28 2015 +0000 clk: tegra: Fix clock sources for Tegra210 EMC The EMC clock sources for Tegra210 currently incorrectly include pll_c2 and pll_c3. However, both of these should have been pll_mb as shown in the TRM. If Tegra210 happens to be configured such that the pll_mb is the default clock for the EMC, as configured by the bootloader, then this will cause a system hang on boot. This is because the kernel will disable the pll_mb when disabling unused clock as it appears to be unused when it is not. Also add the additional pll_p clock source for the EMC. Signed-off-by: Jon Hunter Acked-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-tegra210.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 29569941688cdf647f953b2eb073aa6ec9dd3fc1 Author: Jon Hunter Date: Thu Jan 28 16:33:50 2016 +0000 clk: tegra: Add the APB2APE audio clock on Tegra210 The APB2APE clock for the audio subsystem is required for powering up the audio power domain and accessing the various modules in this subsystem on Tegra210 devices. Add this clock for Tegra210. Signed-off-by: Jon Hunter Signed-off-by: Thierry Reding drivers/clk/tegra/clk-id.h | 1 + drivers/clk/tegra/clk-tegra-periph.c | 1 + drivers/clk/tegra/clk-tegra210.c | 1 + include/dt-bindings/clock/tegra210-car.h | 2 +- 4 files changed, 4 insertions(+), 1 deletion(-) commit 047d6d8401c2d8f59ae5f478486096c13147ddf7 Author: Amitoj Kaur Chawla Date: Sun Jan 24 20:45:20 2016 +0530 clk: tegra: Add missing of_node_put() for_each_child_of_node() performs an of_node_get() on each iteration, so before breaking out of the loop an of_node_put() is required. Found using Coccinelle. The semantic patch used for this is as follows: // @@ expression e; local idexpression child; @@ for_each_child_of_node(root, child) { ... when != of_node_put(child) when != e = child ( return child; | + of_node_put(child); ? return ...; ) ... } // Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Thierry Reding drivers/clk/tegra/clk-emc.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 442f53fb1be44c00263ebb8e7c2eff19dd019037 Author: Mark Kuo Date: Thu Jan 14 14:26:42 2016 -0500 clk: tegra: Fix PLLE SS coefficients The PLLE SS coefficients are different between Tegra210 and Tegra114. Add SoC generation specific versions for Tegra114 and Tegra210 and use them in their respective ->enable() callbacks. Signed-off-by: Mark Kuo Signed-off-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-pll.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) commit fd2963b071c1346572285a274a6ae8f26a970c4d Author: Rhyland Klein Date: Thu Jan 14 14:24:37 2016 -0500 clk: tegra: Fix typos around clearing PLLE bits during enable While enabling PLLE on both Tegra114 and Tegra210, we should be clearing PLLE_MISC_VREG_BG_CTRL_MASK and PLLE_MISC_VREG_CTRL_MASK not setting them. This patch fixes both places where we incorrectly set instead of cleared those bits. Signed-off-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-pll.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f59b0168d3f3257f9bf0734563290acc3c9d972b Author: Mark Kuo Date: Thu Jan 14 14:24:36 2016 -0500 clk: tegra: Do not disable PLLE when under hardware control Software should not disable PLLE if PLLE is already put under hardware control. Signed-off-by: Mark Kuo Signed-off-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-pll.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) commit 3dad5c5fa1d24c3bbb3e9e8ac0c52f35e045b807 Author: Rhyland Klein Date: Thu Jan 14 14:24:35 2016 -0500 clk: tegra: Fix pllx dyn step calculation The logic for calculating the input rate used when figuring out the proper dynamic steps for pllx was incorrect. It is supposed to be calculated using parent_rate / m but it was just using the parent rate directly, therefore using the wrong step values. Signed-off-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-tegra210.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 3eb61566a6efc5a56ebe1e6b86519bc5e0b39003 Author: Andrew Bresticker Date: Thu Jan 14 14:24:34 2016 -0500 clk: tegra: pll: Fix potential sleeping-while-atomic Since the ->enable() callback is called with a spinlock held, we cannot call potentially blocking functions such as clk_get_rate() or clk_get_parent(), so use the unlocked versions instead. Signed-off-by: Andrew Bresticker [rklein: Adapted from ChromeOS patch, removing pllu_enable cleanup as it isn't present upstream] Signed-off-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-pll.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 736971bed20de137db9b418cc641c7d11336fffb Author: Rhyland Klein Date: Thu Jan 14 14:24:33 2016 -0500 clk: tegra: Fix the misnaming of nvenc from msenc When adding the nvenc clock, it was partially named msenc in the code. Since the msenc clock isn't present in Tegra210 and has been replaced by the nvenc clock, its misleading to see it present. Therefore, properly rename it. Signed-off-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-tegra-periph.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 474f2ba268f220e75ed7b9bfa7b977ade740d30c Author: Rhyland Klein Date: Thu Jan 14 14:24:32 2016 -0500 clk: tegra: Fix naming of MISC registers Some register for PLLM and PLLMB were named MISC0 but according to the TRM, they have different names. Sync up the names to make it easier to understand which register they are really referring to. Signed-off-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-tegra210.c | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) commit 6235f0ecc4ed799169b80f7317c7f974f7415320 Author: Andre Przywara Date: Mon Feb 1 17:39:20 2016 +0000 irqchip/sun4i: Fix compilation outside of arch/arm The Allwinner sunxi specific interrupt controller cannot be compiled for any architecture except arm: drivers/irqchip/irq-sun4i.c:25:26: fatal error: asm/mach/irq.h: No such file or directory compilation terminated. It turns out that this header is actually not needed for the driver, so remove it and allow compilation for other architectures like arm64. Signed-off-by: Andre Przywara Acked-by: Arnd Bergmann Cc: linux-arm-kernel@lists.infradead.org Cc: Jason Cooper Cc: Marc Zyngier Cc: Maxime Ripard Cc: Chen-Yu Tsai Cc: linux-sunxi@googlegroups.com Link: http://lkml.kernel.org/r/1454348370-3816-2-git-send-email-andre.przywara@arm.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-sun4i.c | 1 - 1 file changed, 1 deletion(-) commit 29ce4ed441d04a8931150f291c0f7d961690ab81 Author: Wolfram Sang Date: Mon Jan 4 03:33:47 2016 +0100 drm: adv7511: it's HPD, not HDP Fix this typo, consequently used over both files :) Signed-off-by: Wolfram Sang Acked-by: Lars-Peter Clausen Reviewed-by: Laurent Pinchart Tested-by: Archit Taneja drivers/gpu/drm/i2c/adv7511.c | 22 +++++++++++----------- drivers/gpu/drm/i2c/adv7511.h | 12 ++++++------ 2 files changed, 17 insertions(+), 17 deletions(-) commit cd38a33750ace4300ef91b9ad668baf07c3bfd2b Author: Wolfram Sang Date: Mon Jan 4 03:33:46 2016 +0100 drm: adv7511: mark ADV7511_REG_EDID_READ_CTRL volatile This register includes a counter which is decremented by the chip on I2C failures. Also, it is reset when powering down. Signed-off-by: Wolfram Sang Reviewed-by: Laurent Pinchart Tested-by: Archit Taneja drivers/gpu/drm/i2c/adv7511.c | 1 + 1 file changed, 1 insertion(+) commit d0be8584b01160eb6f49e77f8e9c1da286bb4ffb Author: Wolfram Sang Date: Mon Jan 4 03:33:45 2016 +0100 drm: adv7511: really enable interrupts for EDID detection The interrupts for EDID_READY or DDC_ERROR were never enabled in this driver, so reading EDID always timed out when chip was powered down and interrupts were used. Fix this and also remove clearing the interrupt flags, they are cleared in POWER_DOWN mode anyhow (unlike the interrupt enable flags) according to docs and my tests. Signed-off-by: Wolfram Sang Tested-by: Archit Taneja drivers/gpu/drm/i2c/adv7511.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) commit 0f26922fe5dc5724b1adbbd54b21bad03590b4f3 Author: zengtao Date: Tue Feb 2 11:38:34 2016 +0800 cputime: Prevent 32bit overflow in time[val|spec]_to_cputime() The datatype __kernel_time_t is u32 on 32bit platform, so its subject to overflows in the timeval/timespec to cputime conversion. Currently the following functions are affected: 1. setitimer() 2. timer_create/timer_settime() 3. sys_clock_nanosleep This can happen on MIPS32 and ARM32 with "Full dynticks CPU time accounting" enabled, which is required for CONFIG_NO_HZ_FULL. Enforce u64 conversion to prevent the overflow. Fixes: 31c1fc818715 ("ARM: Kconfig: allow full nohz CPU accounting") Signed-off-by: zengtao Reviewed-by: Arnd Bergmann Cc: Cc: stable@vger.kernel.org Link: http://lkml.kernel.org/r/1454384314-154784-1-git-send-email-prime.zeng@huawei.com Signed-off-by: Thomas Gleixner include/asm-generic/cputime_nsecs.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 2df9d58fcc0f20d812f390e0b97df69d70d3152f Author: Jisheng Zhang Date: Tue Feb 2 19:55:06 2016 +0800 mmc: sdhci-of-at91: fix pm runtime unbalanced issue in error path The device power usage counter is increased by pm_runtime_get_noresume but isn't decreased in err_add_host error path. Fix this issue by calling pm_runtime_put_noidle() in the error path to restore the device's power usage counter. Signed-off-by: Jisheng Zhang Acked-by: Ludovic Desroches Fixes: f5f17813ae9b ("mmc: sdhci-of-at91: add PM support) Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-of-at91.c | 1 + 1 file changed, 1 insertion(+) commit 41c89159a6ae5472d39ed8bded5b3b4e07a37944 Author: Robert Jarzmik Date: Fri Jan 29 00:21:26 2016 +0100 mmc: pxamci: fix again read-only gpio detection polarity The commit fixing the conversion of pxamci to slot-gpio API fixed the inverted the logic of the read-only gpio. Unfortunately, the commit was tested on a non-inverted gpio, and not on the inverted one. And the fix did work partially, by luck. This is the remaining missing part of the fix, trivial but still necessary. Fixes: Fixes: 26d49fe71953 ("mmc: pxamci: fix read-only gpio detection polarity") Reported-by: Andrea Adami Tested-by: Andrea Adami Signed-off-by: Robert Jarzmik Cc: stable@vger.kernel.org Signed-off-by: Ulf Hansson drivers/mmc/host/pxamci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 65d3b04a814679a31fe4d5edd19d89dd5b94fd40 Author: Richard Weinberger Date: Mon Jan 25 23:24:09 2016 +0100 mailbox: Fix dependencies for !HAS_IOMEM archs Not every arch has io memory. So, unbreak the build by fixing the dependencies. Signed-off-by: Richard Weinberger Signed-off-by: Jassi Brar drivers/mailbox/Kconfig | 1 + 1 file changed, 1 insertion(+) commit e9c8dc8ba96b165ae72daad3b1f27823c3aee628 Author: Alexey Klimov Date: Thu Dec 10 17:28:37 2015 +0000 mailbox: pcc: fix channel calculation in get_pcc_channel() This patch fixes the calculation of pcc_chan for non-zero id. After the compiler ignores the (unsigned long) cast the pcc_mbox_channels pointer is type-cast and then the type-cast offset is added which results in address outside of the range leading to the kernel crashing. We might add braces and make it: pcc_chan = (struct mbox_chan *) ((unsigned long) pcc_mbox_channels + (id * sizeof(*pcc_chan))); but let's go with array approach here and use id as index. Tested on Juno board. Signed-off-by: Alexey Klimov Acked-by: Sudeep Holla Acked-by: Ashwin Chaugule Signed-off-by: Jassi Brar drivers/mailbox/pcc.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit 7aa7047100113ec9f5e4e685f94223825bd74a7b Author: Maciej W. Rozycki Date: Sat Jan 30 09:08:28 2016 +0000 MIPS: traps.c: Correct microMIPS RDHWR emulation Fix the code to fetch and decode the whole 32-bit instruction. This only really matters with the `noulri' kernel parameter as all microMIPS processors are supposed to have all the hardware registers we support. Signed-off-by: Maciej W. Rozycki Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/12281/ Signed-off-by: Ralf Baechle arch/mips/kernel/traps.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 10f6d99f0fb186bbca1e9e2905d0d3693f941396 Author: Maciej W. Rozycki Date: Sat Jan 30 09:08:16 2016 +0000 MIPS: traps.c: Don't emulate RDHWR in the CpU #0 exception handler In the regular MIPS instruction set RDHWR is encoded with the SPECIAL3 (011111) major opcode. Therefore it cannot trigger the CpU (Coprocessor Unusable) exception, and certainly not for coprocessor 0, as the opcode does not overlap with any of the older ISA reservations, i.e. LWC0 (110000), SWC0 (111000), LDC0 (110100) or SDC0 (111100). The closest match might be SDC3 (111111), possibly causing a CpU #3 exception, however our code does not handle it anyway. A quick check with a MIPS I and a MIPS III processor: CPU0 revision is: 00000220 (R3000) CPU0 revision is: 00000440 (R4400SC) indeed indicates that the RI (Reserved Instruction) exception is triggered. It's only LL and SC that require emulation in the CpU #0 exception handler as they reuse the LWC0 and SWC0 opcodes respectively. In the microMIPS instruction set RDHWR is mandatory and triggering the RI exception is required on unimplemented or disabled register accesses. Therefore emulating the microMIPS instruction in the CpU #0 exception handler is not required either. Signed-off-by: Maciej W. Rozycki Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/12280/ Signed-off-by: Ralf Baechle arch/mips/kernel/traps.c | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) commit 34229b277480f46c1e9a19f027f30b074512e68b Merge: 2c92341 53729eb Author: Linus Torvalds Date: Mon Feb 1 15:56:08 2016 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Pull networking fixes from David Miller: "This looks like a lot but it's a mixture of regression fixes as well as fixes for longer standing issues. 1) Fix on-channel cancellation in mac80211, from Johannes Berg. 2) Handle CHECKSUM_COMPLETE properly in xt_TCPMSS netfilter xtables module, from Eric Dumazet. 3) Avoid infinite loop in UDP SO_REUSEPORT logic, also from Eric Dumazet. 4) Avoid a NULL deref if we try to set SO_REUSEPORT after a socket is bound, from Craig Gallek. 5) GRO key comparisons don't take lightweight tunnels into account, from Jesse Gross. 6) Fix struct pid leak via SCM credentials in AF_UNIX, from Eric Dumazet. 7) We need to set the rtnl_link_ops of ipv6 SIT tunnels before we register them, otherwise the NEWLINK netlink message is missing the proper attributes. From Thadeu Lima de Souza Cascardo. 8) Several Spectrum chip bug fixes for mlxsw switch driver, from Ido Schimmel 9) Handle fragments properly in ipv4 easly socket demux, from Eric Dumazet. 10) Don't ignore the ifindex key specifier on ipv6 output route lookups, from Paolo Abeni" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (128 commits) tcp: avoid cwnd undo after receiving ECN irda: fix a potential use-after-free in ircomm_param_request net: tg3: avoid uninitialized variable warning net: nb8800: avoid uninitialized variable warning net: vxge: avoid unused function warnings net: bgmac: clarify CONFIG_BCMA dependency net: hp100: remove unnecessary #ifdefs net: davinci_cpdma: use dma_addr_t for DMA address ipv6/udp: use sticky pktinfo egress ifindex on connect() ipv6: enforce flowi6_oif usage in ip6_dst_lookup_tail() netlink: not trim skb for mmaped socket when dump vxlan: fix a out of bounds access in __vxlan_find_mac net: dsa: mv88e6xxx: fix port VLAN maps fib_trie: Fix shift by 32 in fib_table_lookup net: moxart: use correct accessors for DMA memory ipv4: ipconfig: avoid unused ic_proto_used symbol bnxt_en: Fix crash in bnxt_free_tx_skbs() during tx timeout. bnxt_en: Exclude rx_drop_pkts hw counter from the stack's rx_dropped counter. bnxt_en: Ring free response from close path should use completion ring net_sched: drr: check for NULL pointer in drr_dequeue ... commit 2c923414d3963b959f65a8a6031972402e6a34a5 Merge: 29a8ea4 49a2045 Author: Linus Torvalds Date: Mon Feb 1 15:49:18 2016 -0800 Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 Pull crypto fixes from Herbert Xu: "This fixes the following issues: API: - algif_hash needs to wait for init operations to complete. - The has_key setting for shash was always true. Algorithms: - Add missing selections of CRYPTO_HASH. - Fix pkcs7 authentication. Drivers: - Fix stack alignment bug in chacha20-ssse3. - Fix performance regression in caam due to incorrect setting. - Fix potential compile-only build failure of stm32" * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: crypto: atmel-aes - remove calls of clk_prepare() from atomic contexts crypto: algif_hash - wait for crypto_ahash_init() to complete crypto: shash - Fix has_key setting hwrng: stm32 - Fix dependencies for !HAS_IOMEM archs crypto: ghash,poly1305 - select CRYPTO_HASH where needed crypto: chacha20-ssse3 - Align stack pointer to 64 bytes PKCS#7: Don't require SpcSpOpusInfo in Authenticode pkcs7 signatures crypto: caam - make write transactions bufferable on PPC platforms commit 29a8ea4fbe6beda81300835a739740c35c7abcab Merge: 36f90b0 76e9f0e Author: Linus Torvalds Date: Mon Feb 1 15:21:20 2016 -0800 Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm Pull libnvdimm fixes from Dan Williams: "1/ Fixes to the libnvdimm 'pfn' device that establishes a reserved area for storing a struct page array. 2/ Fixes for dax operations on a raw block device to prevent pagecache collisions with dax mappings. 3/ A fix for pfn_t usage in vm_insert_mixed that lead to a null pointer de-reference. These have received build success notification from the kbuild robot across 153 configs and pass the latest ndctl tests" * 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: phys_to_pfn_t: use phys_addr_t mm: fix pfn_t to page conversion in vm_insert_mixed block: use DAX for partition table reads block: revert runtime dax control of the raw block device fs, block: force direct-I/O for dax-enabled block devices devm_memremap_pages: fix vmem_altmap lifetime + alignment handling libnvdimm, pfn: fix restoring memmap location libnvdimm: fix mode determination for e820 devices commit 87bee0ecf01d2ed0d48bba1fb12c954f9476d243 Author: Florian Fainelli Date: Sun Jan 31 17:40:01 2016 -0800 MAINTAINERS: Remove stale entry for BCM33xx chips Commit 70371cef114ca ("MAINTAINERS: Add entry for BMIPS multiplatform kernel") supersedes this entry for BCM33xx. Fixes: 70371cef114ca ("MAINTAINERS: Add entry for BMIPS multiplatform kernel") Signed-off-by: Florian Fainelli Cc: blogic@openwrt.org Cc: cernekee@gmail.com Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/12301/ Signed-off-by: Ralf Baechle MAINTAINERS | 8 -------- 1 file changed, 8 deletions(-) commit 00fe56dca6a845d5f10ef0398eef26e559e8f98c Author: James Hogan Date: Mon Feb 1 13:50:37 2016 +0000 MIPS: Fix FPU disable with preemption The FPU should not be left enabled after a task context switch. This isn't usually a problem as the FPU enable bit is updated before returning to userland, however it can potentially mask kernel bugs, and in fact KVM assumes it won't happen and won't clear the FPU enable bit before returning to the guest, which allows the guest to use stale FPU context. Interrupts and exceptions save and restore most bits of the CP0 Status register which contains the FPU enable bit (CU1). When the kernel needs to enable or disable the FPU (for example due to attempted FPU use by userland, or the scheduler being invoked) both the actual Status register and the saved value in the userland context are updated. However this doesn't work correctly with full kernel preemption enabled, since the FPU enable bit can be cleared from within an interrupt when the scheduler is invoked, and only the userland context is updated, not the interrupt context. For example: 1) Enter kernel with FPU already enabled, TIF_USEDFPU=1, Status.CU1=1 saved. 2) Take a timer interrupt while in kernel mode, Status.CU1=1 saved. 3) Timer interrupt invokes scheduler to preempt the task, which clears TIF_USEDFPU, disables the FPU in Status register (Status.CU1=0), and the value stored in user context from step (1), but not the interrupt context from step (2). 4) When the process is scheduled back in again Status.CU1=0. 5) The interrupt context from step (2) is restored, which sets Status.CU1=1. So from user context point of view, preemption has re-enabled FPU! 6) If the scheduler is invoked again (via preemption or voluntarily) before returning to userland, TIF_USEDFPU=0 so the FPU is not disabled before the task context switch. 7) The next task resumes from the context switch with FPU enabled! The restoring of the Status register on return from interrupt/exception is already selective about which bits to restore, leaving the interrupt mask bits alone so enabling/disabling of CPU interrupt lines can persist. Extend this to also leave both the CU1 bit (FPU enable) and the FR bit (which specifies the FPU mode and gets changed with CU1). This prevents a stale Status value being restored in step (5) above and persisting through subsequent context switches. Also switch to the use of definitions from asm/mipsregs.h while we're at it. Since this change also affects the restoration of Status register on the path back to userland, it increases the sensitivity of the kernel to the problem of the FPU being left enabled, allowing it to propagate to userland, therefore a warning is also added to lose_fpu_inatomic() to point out any future reoccurances before they do any damage. Signed-off-by: James Hogan Reviewed-by: Paul Burton Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/12303/ Signed-off-by: Ralf Baechle arch/mips/include/asm/fpu.h | 4 ++++ arch/mips/include/asm/stackframe.h | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) commit 76e5846d3bdf59eb1010d5607003da2dc3910bb1 Author: James Hogan Date: Mon Feb 1 13:50:36 2016 +0000 MIPS: Properly disable FPU in start_thread() start_thread() (called for execve(2)) clears the TIF_USEDFPU flag without atomically disabling the FPU. With a preemptive kernel, an unfortunately timed preemption after this could result in another task (or KVM guest) being scheduled in with the FPU still enabled, since lose_fpu_inatomic() only turns it off if TIF_USEDFPU is set. Use lose_fpu(0) instead of the separate FPU / MSA management, which should do the right thing (drop FPU properly and atomically without saving state) and will be more future proof. Signed-off-by: James Hogan Reviewed-by: Paul Burton Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/12302/ Signed-off-by: Ralf Baechle arch/mips/kernel/process.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit f4dce1ffd2e30fa31756876ef502ce6d2324be35 Author: James Hogan Date: Mon Jan 25 20:32:03 2016 +0000 MIPS: Fix buffer overflow in syscall_get_arguments() Since commit 4c21b8fd8f14 ("MIPS: seccomp: Handle indirect system calls (o32)"), syscall_get_arguments() attempts to handle o32 indirect syscall arguments by incrementing both the start argument number and the number of arguments to fetch. However only the start argument number needs to be incremented. The number of arguments does not change, they're just shifted up by one, and in fact the output array is provided by the caller and is likely only n entries long, so reading more arguments overflows the output buffer. In the case of seccomp, this results in it fetching 7 arguments starting at the 2nd one, which overflows the unsigned long args[6] in populate_seccomp_data(). This clobbers the $s0 register from syscall_trace_enter() which __seccomp_phase1_filter() saved onto the stack, into which syscall_trace_enter() had placed its syscall number argument. This caused Chromium to crash. Credit goes to Milko for tracking it down as far as $s0 being clobbered. Fixes: 4c21b8fd8f14 ("MIPS: seccomp: Handle indirect system calls (o32)") Reported-by: Milko Leporis Signed-off-by: James Hogan Cc: linux-mips@linux-mips.org Cc: # 3.15- Patchwork: https://patchwork.linux-mips.org/patch/12213/ Signed-off-by: Ralf Baechle arch/mips/include/asm/syscall.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 5982557ac6ee5d36a02248be18a2ba945360d9f6 Merge: 48436e8 17a2f46 Author: Greg Kroah-Hartman Date: Mon Feb 1 13:08:26 2016 -0800 Merge tag 'iio-fixes-for-4.5b' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-linus Jonathan writes: Second set of IIO fixes for the 4.5 cycle. These ones are mostly dependent on patches from the recent merge cycle. * adc, imu and iio staging drivers - !HAS_IOMEM dependency fixes * dht11 - use boottime clock for time measurement to avoid incorrect measurements due to clock updates. * lidar - correct a return value for short i2c transfers. commit 48436e82fd2925a42293f670f3570b5c855c90c1 Merge: 8d9b39c 7e1da86 Author: Greg Kroah-Hartman Date: Mon Feb 1 13:07:38 2016 -0800 Merge tag 'iio-fixes-for-4.5a' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-linus Jonathan writes: First set of IIO fixes for the 4.5 cycle. This set comprises those not dependent on patches in the 4.5 merge cycle. A second set will follow shortly with ones that are. * core in kernel interfaces - fix a possible NULL dereference that is a theoretical possibility via odd usage of iio_channel_release. Pretty much a hardening of the interface, but observed in the wild with the twl4030_charger driver. * acpi-als - report the data as processed as it is in lux. This fixes a wrong use of the IIO ABI. However, old _raw version retained to avoid breaking any userspace in the wild that is relying on that (none known but it doesn't hurt us much to retain it) * ade7753 - fix some error handling to avoid use of unitialized data. * ltr501 - use a signed return type for ltr501_match_samp_freq so as to allow returning of an error code. * mcp4725 - set name field of struct iio_dev to ensure the sysfs name attribute doesn't give NULL. * mpl115 - temperature offset sign is wrong. * stk8ba50 - IIO_TRIGGER dependency added * ti_am335x_adc - Label buffer as a software buffer. It's actually a hybrid of a true hardware buffer feeding a kfifo, but the meaning of these fields has changed a little recently and in this case it should be labeled a software buffer ensure it is allowed to use the kfifo. * vf610_adc - HAS_IOMEM dependency commit 8d9b39c6499b113ef9218c80682de114beffe7bb Author: Samuel Thibault Date: Mon Feb 1 09:06:03 2016 +0100 Staging: speakup: Fix allyesconfig build on mn10300 mn10300 uses an mmio-driven uart. This is not supported by speakup, so prevent from enabling it. Signed-off-by: Samuel Thibault Signed-off-by: Greg Kroah-Hartman drivers/staging/speakup/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit aa5306a370a9384788d923e4eae15649f1f82671 Merge: 6c38892 aeb2ee5 Author: Olof Johansson Date: Mon Feb 1 12:27:18 2016 -0800 Merge tag 'vexpress-for-v4.5/fixes-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into fixes vexpress fixes for v4.5 Couple of minor fixes for vexpress platforms: 1. Add missing of_node_put in vexpress config bus 2. Add missing DMA-330 abort interrupt on Juno platforms * tag 'vexpress-for-v4.5/fixes-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux: arm64: dts: Add missing DMA Abort interrupt to Juno bus: vexpress-config: Add missing of_node_put Signed-off-by: Olof Johansson commit 6c388927a7db95c20a29ff6c26da29cb9a5555aa Merge: 7f7420f ff61ee8 Author: Olof Johansson Date: Mon Feb 1 12:24:31 2016 -0800 Merge tag 'mvebu-fixes-4.5-1' of git://git.infradead.org/linux-mvebu into fixes mvebu fixes for 4.5 (part 1) - Fix dts on buffalo linksations machines (gpios and leds) - Fix dts partition node according to new binding introduced in v4.5 * tag 'mvebu-fixes-4.5-1' of git://git.infradead.org/linux-mvebu: ARM: dts: orion5x: gpio pin fixes for linkstation lswtgl ARM: dts: kirkwood: gpio-leds fixes for linkstation ls-wvl/vl ARM: dts: kirkwood: gpio-leds fixes for linkstation ls-wxl/wsxl ARM: dts: kirkwood: gpio pin fixes for linkstation ls-wvl/vl ARM: dts: kirkwood: gpio pin fixes for linkstation ls-wxl/wsxl ARM: mvebu: ix4-300d: Add compatible property to "partitions" node ARM: mvebu: kirkwood: Add compatible property to "partitions" node Signed-off-by: Olof Johansson commit 7f7420f07ee2161e09e305e2d8a41069c3612942 Merge: b83132f ab342c7 Author: Olof Johansson Date: Mon Feb 1 12:22:52 2016 -0800 Merge tag 'omap-for-v4.5/fixes-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes Fixes for omaps with the most intrusive stuff being read-only data assembly fixes, the other things are mostly board related: - A series of omap assembly code fixes to fix issues with rodata with ARM_KERNMEM_PERMS enabled. We had several places writing to rodata, which is bad. The fix in most cases is to load the value from data section using a pointer. Let's also enable ARM_KERNMEM_PERMS so DEBUG_RODATA gets selected by default. And while testing things, I also added few more loadable driver modules to the defconfig that I seem to need quite often. - Fix a long standing omap5 RTC mystery and enable RTC where we need to ensure the SoC msecure pin is high so we can write to the RTC registers. - Fix irq types for am437x - A series of minor dts fixes for sbc-am57x and cl-som-am57x - Fixes for torpedo dts to make WLAN behave and to remove a duplicate i2c rate entry This series also includes few minor changes that are not stricly fixes, but would be good to get in during the early -rc cycle: - Remove legacy mailbox platform data that is no longer needed - Add the pdata-quirks needed for the new pwm-omap-dmtimer so people can use it - Enable ti,mbox-send-noirq that's needed by wkup_m3 driver - Enable SPLIT and DWARF4 in omap2plus_defconfig as it makes the initramfs quite a bit smaller * tag 'omap-for-v4.5/fixes-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: (23 commits) ARM: dts: am57xx: sbc-am57x: correct Eth PHY settings ARM: dts: am57xx: cl-som-am57x: fix CPSW EMAC pinmux ARM: dts: am57xx: sbc-am57x: fix UART3 pinmux ARM: dts: am57xx: cl-som-am57x: update SPI Flash frequency ARM: dts: am57xx: cl-som-am57x: set HOST mode for USB2 ARM: dts: am57xx: sbc-am57x: fix SB-SOM EEPROM I2C address ARM: dts: LogicPD Torpedo: Revert Duplicative Entries ARM: dts: am437x: pixcir_tangoc: use correct flags for irq types ARM: dts: am4372: fix irq type for arm twd and global timer ARM: dts: Fix wl12xx missing clocks that cause hangs ARM: OMAP: Add PWM dmtimer platform data quirks ARM: omap2plus_defconfig: Enable ARM_KERNMEM_PERMS and few loadable modules ARM: OMAP2+: Fix ppa_zero_params and ppa_por_params for rodata ARM: OMAP2+: Fix l2_inv_api_params for rodata ARM: OMAP2+: Fix save_secure_ram_context for rodata ARM: OMAP2+: Fix l2dis_3630 for rodata ARM: OMAP2+: Fix wait_dll_lock_timed for rodata ARM: OMAP2+: Remove legacy mailbox device instantiation ARM: dts: AM4372: Add ti,mbox-send-noirq to wkup_m3 mailbox ARM: dts: AM33xx: Add ti,mbox-send-noirq to wkup_m3 mailbox ... Signed-off-by: Olof Johansson commit b83132f76225fa2e61771ef999a884d02c2217fd Merge: 43acf83 e873cc0 Author: Olof Johansson Date: Mon Feb 1 12:21:15 2016 -0800 Merge tag 'at91-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nferre/linux-at91 into fixes First fixes for 4.5. Only DT changes: - sama5d4: error in DBGU index - addition of phy properties in several boards - at91sam9n12ek fix a panel compatible string * tag 'at91-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nferre/linux-at91: ARM: dts: at91: sama5d4 xplained: fix phy0 IRQ type ARM: dts: at91: sama5d4 xplained: properly mux phy interrupt ARM: dts: at91: sama5d4ek: add phy address and IRQ for macb0 ARM: dts: at91: sama5d2 xplained: add phy address and IRQ for macb0 ARM: dts: at91: at91sam9n12ek: fix panel compatible string ARM: dts: at91: sama5d4: fix instance id of DBGU Signed-off-by: Olof Johansson commit 43acf83166eb85082e03b25c9ccd4851e7203ea1 Author: Jon Hunter Date: Mon Jan 25 20:25:55 2016 +0000 ARM64: tegra: Add chosen node for tegra132 norrin The NVIDIA bootloader, nvtboot, expects the "chosen" node to be present in the device-tree blob and if it is not then it fails to boot the kernel. Add the chosen node so we can boot the kernel on Tegra132 Norrin with the nvtboot bootloader. Signed-off-by: Jon Hunter Acked-by: Thierry Reding Signed-off-by: Olof Johansson arch/arm64/boot/dts/nvidia/tegra132-norrin.dts | 2 ++ 1 file changed, 2 insertions(+) commit c65cd255e4b7dd529b9f35f7e4b05fe154adbb5f Author: Masahiro Yamada Date: Mon Jan 25 20:42:44 2016 +0900 ARM: realview: use "depends on" instead of "if" after prompt This platform recently moved to multi-platform, so missed the global fixup by commit e32465429490 ("ARM: use "depends on" for SoC configs instead of "if" after prompt"). Fix it now. Signed-off-by: Masahiro Yamada Signed-off-by: Olof Johansson arch/arm/mach-realview/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 990591ee39b6e2d0ad1f281a476c62cebbc7ee7c Author: Masahiro Yamada Date: Mon Jan 25 20:40:44 2016 +0900 ARM: tango: use "depends on" instead of "if" after prompt This platform was recently added, so missed the global fixup by commit e32465429490 ("ARM: use "depends on" for SoC configs instead of "if" after prompt"). Fix it now. Signed-off-by: Masahiro Yamada Acked-by: Marc Gonzalez Signed-off-by: Olof Johansson arch/arm/mach-tango/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit c38ac80eb4b0d0c78aad9b8978a3c0da3da01ead Author: Masahiro Yamada Date: Mon Jan 25 20:33:42 2016 +0900 ARM: tango: use const and __initconst for smp_operations This newly added code missed the global fixup by commit 75305275a721 ("ARM: use const and __initconst for smp_operations"). So fix it now. Signed-off-by: Masahiro Yamada Acked-by: Marc Gonzalez Signed-off-by: Olof Johansson arch/arm/mach-tango/platsmp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 567fdd9d91db09c0af563930253ef9dbb28ddb5b Author: Masahiro Yamada Date: Mon Jan 25 20:33:07 2016 +0900 ARM: realview: use const and __initconst for smp_operations This newly added code missed the global fixup by commit 75305275a721 ("ARM: use const and __initconst for smp_operations"). So fix it now. Also, add missing "static" qualifier. Signed-off-by: Masahiro Yamada Signed-off-by: Olof Johansson arch/arm/mach-realview/platsmp-dt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 047a555f95fec4bcb8adfc37eb6fb1026fb3026a Author: Masahiro Yamada Date: Sat Jan 23 23:06:28 2016 +0900 bus: uniphier-system-bus: revive tristate prompt At first, commit 4b7f48d395a7 ("bus: uniphier-system-bus: add UniPhier System Bus driver") introduced this driver as a tristate one. Then, commit 326ea45aa827 ("bus: uniphier: allow only built-in driver") temporarily made it boolean in order to fix a link error in case it is compiled as a module. The root cause was fixed by commit b80443c2211c ("of/platform: export of_default_bus_match_table"). Now this driver can really be a module. Signed-off-by: Masahiro Yamada Signed-off-by: Olof Johansson drivers/bus/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 17a2f46c3d8877fe2a0b6ff391d1df30e67892a6 Author: Abhilash Jindal Date: Wed Jan 27 17:46:02 2016 -0500 iio: dht11: Use boottime Wall time obtained from ktime_get_real_ns is susceptible to sudden jumps due to user setting the time or due to NTP. Boot time is constantly increasing time better suited for comparing two timestamps. Signed-off-by: Abhilash Jindal Reviewed-by: Harald Geyer Signed-off-by: Jonathan Cameron drivers/iio/humidity/dht11.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 8eee1d3ed5b6fc8e14389567c9a6f53f82bb7224 Author: Tejun Heo Date: Mon Feb 1 11:33:21 2016 -0500 libata: fix sff host state machine locking while polling The bulk of ATA host state machine is implemented by ata_sff_hsm_move(). The function is called from either the interrupt handler or, if polling, a work item. Unlike from the interrupt path, the polling path calls the function without holding the host lock and ata_sff_hsm_move() selectively grabs the lock. This is completely broken. If an IRQ triggers while polling is in progress, the two can easily race and end up accessing the hardware and updating state machine state at the same time. This can put the state machine in an illegal state and lead to a crash like the following. kernel BUG at drivers/ata/libata-sff.c:1302! invalid opcode: 0000 [#1] SMP DEBUG_PAGEALLOC KASAN Modules linked in: CPU: 1 PID: 10679 Comm: syz-executor Not tainted 4.5.0-rc1+ #300 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011 task: ffff88002bd00000 ti: ffff88002e048000 task.ti: ffff88002e048000 RIP: 0010:[] [] ata_sff_hsm_move+0x619/0x1c60 ... Call Trace: [] __ata_sff_port_intr+0x1e1/0x3a0 drivers/ata/libata-sff.c:1584 [] ata_bmdma_port_intr+0x71/0x400 drivers/ata/libata-sff.c:2877 [< inline >] __ata_sff_interrupt drivers/ata/libata-sff.c:1629 [] ata_bmdma_interrupt+0x253/0x580 drivers/ata/libata-sff.c:2902 [] handle_irq_event_percpu+0x108/0x7e0 kernel/irq/handle.c:157 [] handle_irq_event+0xa7/0x140 kernel/irq/handle.c:205 [] handle_edge_irq+0x1e3/0x8d0 kernel/irq/chip.c:623 [< inline >] generic_handle_irq_desc include/linux/irqdesc.h:146 [] handle_irq+0x10c/0x2a0 arch/x86/kernel/irq_64.c:78 [] do_IRQ+0x7d/0x1a0 arch/x86/kernel/irq.c:240 [] common_interrupt+0x8c/0x8c arch/x86/entry/entry_64.S:520 [< inline >] rcu_lock_acquire include/linux/rcupdate.h:490 [< inline >] rcu_read_lock include/linux/rcupdate.h:874 [] filemap_map_pages+0x131/0xba0 mm/filemap.c:2145 [< inline >] do_fault_around mm/memory.c:2943 [< inline >] do_read_fault mm/memory.c:2962 [< inline >] do_fault mm/memory.c:3133 [< inline >] handle_pte_fault mm/memory.c:3308 [< inline >] __handle_mm_fault mm/memory.c:3418 [] handle_mm_fault+0x2516/0x49a0 mm/memory.c:3447 [] __do_page_fault+0x376/0x960 arch/x86/mm/fault.c:1238 [] trace_do_page_fault+0xe8/0x420 arch/x86/mm/fault.c:1331 [] do_async_page_fault+0x14/0xd0 arch/x86/kernel/kvm.c:264 [] async_page_fault+0x28/0x30 arch/x86/entry/entry_64.S:986 Fix it by ensuring that the polling path is holding the host lock before entering ata_sff_hsm_move() so that all hardware accesses and state updates are performed under the host lock. Signed-off-by: Tejun Heo Reported-and-tested-by: Dmitry Vyukov Link: http://lkml.kernel.org/g/CACT4Y+b_JsOxJu2EZyEf+mOXORc_zid5V1-pLZSroJVxyWdSpw@mail.gmail.com Cc: stable@vger.kernel.org drivers/ata/libata-sff.c | 32 +++++++++++--------------------- 1 file changed, 11 insertions(+), 21 deletions(-) commit e502fb8f8801c9561c57397e7fd917187762324e Author: Tahsin Erdogan Date: Thu Jan 14 14:41:32 2016 -0800 deadline: remove unused struct member commit 63de428b139d3d31d86ebe25ae97b33f6540fb7e ("deadline-iosched: allow non-sequential batching") removed last use of last_sector. Signed-off-by: Tahsin Erdogan Reviewed-by: Jeff Moyer Signed-off-by: Jens Axboe block/deadline-iosched.c | 3 --- 1 file changed, 3 deletions(-) commit 90b90d06db0be30aeb89b6b4ab618d644211a85e Merge: ed0ae43 a0c80ef Author: Jens Axboe Date: Mon Feb 1 09:08:39 2016 -0700 Merge branch 'for-4.5/for-jens' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/linux-block into for-linus Locking fix from Jiri commit 329d88da4df9a96da43018aceabd3a06e6a7e7ae Author: Javier Martinez Canillas Date: Wed Jan 27 12:03:23 2016 -0200 [media] media: i2c: Don't export ir-kbd-i2c module alias This is a partial revert of commit ed8d1cf07cb16d ("[media] Export I2C module alias information in missing drivers") that exported the module aliases for the I2C drivers that were missing to make autoload to work. But there is a bug report [0] that auto load of the ir-kbd-i2c driver cause the Hauppauge HD-PVR driver to not behave correctly. This is a hdpvr latent bug that was just exposed by ir-kbd-i2c module autoloading working and will also happen if the I2C driver is built-in or a user calls modprobe to load the module and register the driver. But there is a regression experimented by users so until the real bug is fixed, let's not export the module alias for the ir-kbd-i2c driver even when this just masks the actual issue. [0]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=810726 Fixes: ed8d1cf07cb1 ("[media] Export I2C module alias information in missing drivers") Cc: # 4.3+ Signed-off-by: Javier Martinez Canillas drivers/media/i2c/ir-kbd-i2c.c | 1 - 1 file changed, 1 deletion(-) commit ec183d22cc284a7a1e17f0341219d8ec8ca070cc Author: Adrian Hunter Date: Tue Jan 26 14:05:20 2016 +0200 perf tools: tracepoint_error() can receive e=NULL, robustify it Fixes segmentation fault using, for instance: (gdb) run record -I -e intel_pt/tsc=1,noretcomp=1/u /bin/ls Starting program: /home/acme/bin/perf record -I -e intel_pt/tsc=1,noretcomp=1/u /bin/ls Missing separate debuginfos, use: dnf debuginfo-install glibc-2.22-7.fc23.x86_64 [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". Program received signal SIGSEGV, Segmentation fault. 0 x00000000004b9ea5 in tracepoint_error (e=0x0, err=13, sys=0x19b1370 "sched", name=0x19a5d00 "sched_switch") at util/parse-events.c:410 (gdb) bt #0 0x00000000004b9ea5 in tracepoint_error (e=0x0, err=13, sys=0x19b1370 "sched", name=0x19a5d00 "sched_switch") at util/parse-events.c:410 #1 0x00000000004b9fc5 in add_tracepoint (list=0x19a5d20, idx=0x7fffffffb8c0, sys_name=0x19b1370 "sched", evt_name=0x19a5d00 "sched_switch", err=0x0, head_config=0x0) at util/parse-events.c:433 #2 0x00000000004ba334 in add_tracepoint_event (list=0x19a5d20, idx=0x7fffffffb8c0, sys_name=0x19b1370 "sched", evt_name=0x19a5d00 "sched_switch", err=0x0, head_config=0x0) at util/parse-events.c:498 #3 0x00000000004bb699 in parse_events_add_tracepoint (list=0x19a5d20, idx=0x7fffffffb8c0, sys=0x19b1370 "sched", event=0x19a5d00 "sched_switch", err=0x0, head_config=0x0) at util/parse-events.c:936 #4 0x00000000004f6eda in parse_events_parse (_data=0x7fffffffb8b0, scanner=0x19a49d0) at util/parse-events.y:391 #5 0x00000000004bc8e5 in parse_events__scanner (str=0x663ff2 "sched:sched_switch", data=0x7fffffffb8b0, start_token=258) at util/parse-events.c:1361 #6 0x00000000004bca57 in parse_events (evlist=0x19a5220, str=0x663ff2 "sched:sched_switch", err=0x0) at util/parse-events.c:1401 #7 0x0000000000518d5f in perf_evlist__can_select_event (evlist=0x19a3b90, str=0x663ff2 "sched:sched_switch") at util/record.c:253 #8 0x0000000000553c42 in intel_pt_track_switches (evlist=0x19a3b90) at arch/x86/util/intel-pt.c:364 #9 0x00000000005549d1 in intel_pt_recording_options (itr=0x19a2c40, evlist=0x19a3b90, opts=0x8edf68 ) at arch/x86/util/intel-pt.c:664 #10 0x000000000051e076 in auxtrace_record__options (itr=0x19a2c40, evlist=0x19a3b90, opts=0x8edf68 ) at util/auxtrace.c:539 #11 0x0000000000433368 in cmd_record (argc=1, argv=0x7fffffffde60, prefix=0x0) at builtin-record.c:1264 #12 0x000000000049bec2 in run_builtin (p=0x8fa2a8 , argc=5, argv=0x7fffffffde60) at perf.c:390 #13 0x000000000049c12a in handle_internal_command (argc=5, argv=0x7fffffffde60) at perf.c:451 #14 0x000000000049c278 in run_argv (argcp=0x7fffffffdcbc, argv=0x7fffffffdcb0) at perf.c:495 #15 0x000000000049c60a in main (argc=5, argv=0x7fffffffde60) at perf.c:618 (gdb) Intel PT attempts to find the sched:sched_switch tracepoint but that seg faults if tracefs is not readable, because the error reporting structure is null, as errors are not reported when automatically adding tracepoints. Fix by checking before using. Committer note: This doesn't take place in a kernel that supports perf_event_attr.context_switch, that is the default way that will be used for tracking context switches, only in older kernels, like 4.2, in a machine with Intel PT (e.g. Broadwell) for non-priviledged users. Further info from a similar patch by Wang: The error is in tracepoint_error: it assumes the 'e' parameter is valid. However, there are many situation a parse_event() can be called without parse_events_error. See result of $ grep 'parse_events(.*NULL)' ./tools/perf/ -r' Signed-off-by: Adrian Hunter Tested-by: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Josh Poimboeuf Cc: Tong Zhang Cc: Wang Nan Cc: stable@vger.kernel.org # v4.4+ Fixes: 196581717d85 ("perf tools: Enhance parsing events tracepoint error output") Link: http://lkml.kernel.org/r/1453809921-24596-2-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/parse-events.c | 3 +++ 1 file changed, 3 insertions(+) commit f784beb75ce82f4136f8a0960d3ee872f7109e09 Author: Takashi Iwai Date: Sat Jan 30 23:09:08 2016 +0100 ALSA: timer: Fix link corruption due to double start or stop Although ALSA timer code got hardening for races, it still causes use-after-free error. This is however rather a corrupted linked list, not actually the concurrent accesses. Namely, when timer start is triggered twice, list_add_tail() is called twice, too. This ends up with the link corruption and triggers KASAN error. The simplest fix would be replacing list_add_tail() with list_move_tail(), but fundamentally it's the problem that we don't check the double start/stop correctly. So, the right fix here is to add the proper checks to snd_timer_start() and snd_timer_stop() (and their variants). BugLink: http://lkml.kernel.org/r/CACT4Y+ZyPRoMQjmawbvmCEDrkBD2BQuH7R09=eOkf5ESK8kJAw@mail.gmail.com Reported-by: Dmitry Vyukov Cc: Signed-off-by: Takashi Iwai sound/core/timer.c | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) commit 2cdc7b636d55cbcf42e1e6c8accd85e62d3e9ae8 Author: Takashi Iwai Date: Sat Jan 30 23:30:25 2016 +0100 ALSA: seq: Fix yet another races among ALSA timer accesses ALSA sequencer may open/close and control ALSA timer instance dynamically either via sequencer events or direct ioctls. These are done mostly asynchronously, and it may call still some timer action like snd_timer_start() while another is calling snd_timer_close(). Since the instance gets removed by snd_timer_close(), it may lead to a use-after-free. This patch tries to address such a race by protecting each snd_timer_*() call via the existing spinlock and also by avoiding the access to timer during close call. BugLink: http://lkml.kernel.org/r/CACT4Y+Z6RzW5MBr-HUdV-8zwg71WQfKTdPpYGvOeS7v4cyurNQ@mail.gmail.com Reported-by: Dmitry Vyukov Cc: Signed-off-by: Takashi Iwai sound/core/seq/seq_timer.c | 87 +++++++++++++++++++++++++++++++++++----------- 1 file changed, 67 insertions(+), 20 deletions(-) commit b248371628aad599a48540962f6b85a21a8a0c3f Author: Takashi Iwai Date: Sun Jan 31 10:32:37 2016 +0100 ALSA: pcm: Fix potential deadlock in OSS emulation There are potential deadlocks in PCM OSS emulation code while accessing read/write and mmap concurrently. This comes from the infamous mmap_sem usage in copy_from/to_user(). Namely, snd_pcm_oss_write() -> &runtime->oss.params_lock -> copy_to_user() -> &mm->mmap_sem mmap() -> &mm->mmap_sem -> snd_pcm_oss_mmap() -> &runtime->oss.params_lock Since we can't avoid taking params_lock from mmap code path, use trylock variant and aborts with -EAGAIN as a workaround of this AB/BA deadlock. BugLink: http://lkml.kernel.org/r/CACT4Y+bVrBKDG0G2_AcUgUQa+X91VKTeS4v+wN7BSHwHtqn3kQ@mail.gmail.com Reported-by: Dmitry Vyukov Cc: Signed-off-by: Takashi Iwai sound/core/oss/pcm_oss.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) commit cc85f7a634cfaf9f0713c6aa06d08817424db37a Author: Takashi Iwai Date: Mon Feb 1 12:04:55 2016 +0100 ALSA: rawmidi: Remove kernel WARNING for NULL user-space buffer check NULL user-space buffer can be passed even in a normal path, thus it's not good to spew a kernel warning with stack trace at each time. Just drop snd_BUG_ON() macro usage there. BugLink: http://lkml.kernel.org/r/CACT4Y+YfVJ3L+q0i-4vyQVyyPD7V=OMX0PWPi29x9Bo3QaBLdw@mail.gmail.com Reported-by: Dmitry Vyukov Cc: Signed-off-by: Takashi Iwai sound/core/rawmidi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2d1b5c08366acd46c35a2e9aba5d650cb5bf5c19 Author: Takashi Iwai Date: Mon Feb 1 12:06:42 2016 +0100 ALSA: seq: Fix race at closing in virmidi driver The virmidi driver has an open race at closing its assigned rawmidi device, and this may lead to use-after-free in snd_seq_deliver_single_event(). Plug the hole by properly protecting the linked list deletion and calling in the right order in snd_virmidi_input_close(). BugLink: http://lkml.kernel.org/r/CACT4Y+Zd66+w12fNN85-425cVQT=K23kWbhnCEcMB8s3us-Frw@mail.gmail.com Reported-by: Dmitry Vyukov Tested-by: Dmitry Vyukov Cc: Signed-off-by: Takashi Iwai sound/core/seq/seq_virmidi.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit a0c80efe5956ccce9fe7ae5c78542578c07bc20a Author: Jiri Kosina Date: Mon Feb 1 11:19:17 2016 +0100 floppy: fix lock_fdc() signal handling floppy_revalidate() doesn't perform any error handling on lock_fdc() result. lock_fdc() might actually be interrupted by a signal (it waits for fdc becoming non-busy interruptibly). In such case, floppy_revalidate() proceeds as if it had claimed the lock, but it fact it doesn't. In case of multiple threads trying to open("/dev/fdX"), this leads to serious corruptions all over the place, because all of a sudden there is no critical section protection (that'd otherwise be guaranteed by locked fd) whatsoever. While at this, fix the fact that the 'interruptible' parameter to lock_fdc() doesn't make any sense whatsoever, because we always wait interruptibly anyway. Most of the lock_fdc() callsites do properly handle error (and propagate EINTR), but floppy_revalidate() and floppy_check_events() don't. Fix this. Spotted by 'syzkaller' tool. Reported-by: Dmitry Vyukov Tested-by: Dmitry Vyukov Signed-off-by: Jiri Kosina drivers/block/floppy.c | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) commit aeb2ee5683e51305aff274d8b0a50af69b3ab310 Author: Robin Murphy Date: Thu Jan 7 12:01:59 2016 +0000 arm64: dts: Add missing DMA Abort interrupt to Juno The DMA-330 has an "irq_abort" interrupt line on which it signals faults separately from the "irq[n:0]" channel interrupts. On Juno, this is wired up to SPI 92; add it to the DT so that DMAC faults are correctly reported for the driver to reset the thing, rather than leaving it locked up and waiting to time out. CC: Liviu Dudau CC: Lorenzo Pieralisi Signed-off-by: Robin Murphy Signed-off-by: Sudeep Holla arch/arm64/boot/dts/arm/juno-base.dtsi | 1 + 1 file changed, 1 insertion(+) commit d99875eebfebec5432981273fac0547f3e34f2d7 Author: Amitoj Kaur Chawla Date: Fri Jan 22 23:38:38 2016 +0530 bus: vexpress-config: Add missing of_node_put for_each_compatible_node performs an of_node_get on each iteration, so to break out of the loop an of_node_put is required. Found using Coccinelle. The semantic patch used for this is as follows: // @@ expression e; local idexpression n; @@ for_each_compatible_node(n, ...) { ... when != of_node_put(n) when != e = n ( return n; + of_node_put(n); ? return ...; ) ... } // Acked-by: Liviu Dudau Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Sudeep Holla drivers/bus/vexpress-config.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit daf670bc9d36ba8b03e010f4bf798bebe08659fe Author: Geert Uytterhoeven Date: Sun Jan 24 22:39:04 2016 +0100 m68k/defconfig: Update defconfigs for v4.5-rc1 Signed-off-by: Geert Uytterhoeven arch/m68k/configs/amiga_defconfig | 9 +++++++++ arch/m68k/configs/apollo_defconfig | 9 +++++++++ arch/m68k/configs/atari_defconfig | 9 +++++++++ arch/m68k/configs/bvme6000_defconfig | 9 +++++++++ arch/m68k/configs/hp300_defconfig | 9 +++++++++ arch/m68k/configs/mac_defconfig | 9 +++++++++ arch/m68k/configs/multi_defconfig | 9 +++++++++ arch/m68k/configs/mvme147_defconfig | 9 +++++++++ arch/m68k/configs/mvme16x_defconfig | 9 +++++++++ arch/m68k/configs/q40_defconfig | 9 +++++++++ arch/m68k/configs/sun3_defconfig | 9 +++++++++ arch/m68k/configs/sun3x_defconfig | 9 +++++++++ 12 files changed, 108 insertions(+) commit 78832a88e67b4c5e71926949aff401d2a1241b15 Author: Geert Uytterhoeven Date: Fri Jan 15 14:31:30 2016 +0100 m68k: Wire up copy_file_range Signed-off-by: Geert Uytterhoeven Acked-by: Greg Ungerer arch/m68k/include/asm/unistd.h | 2 +- arch/m68k/include/uapi/asm/unistd.h | 1 + arch/m68k/kernel/syscalltable.S | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) commit 37e110625eeeaba83e8cb763ab7645f0678c6f8e Author: Javier Martinez Canillas Date: Fri Jan 29 12:09:31 2016 -0300 drm/exynos: dp: Fix panel and bridge lookup logic Commit a9fa852886fd ("drm/exynos: dp: add of_graph dt binding support for panel") made the Exynos DP DT binding more consistent since the OF graph could be used to lookup either a panel or a bridge device node. Before that commit, a panel would be looked up using a phandle and a bridge using the OF graph which made the DT binding not consistent. But the patch broke the later case since not finding a panel dev node would cause the driver's to do a probe deferral instead of attempting to lookup a bridge device node associated with the remote endpoint. So instead of returning a -EPROBE_DEFER if a panel is not found, check if there's a bridge and only do a probe deferral if both aren't found. Signed-off-by: Javier Martinez Canillas Tested-by: Michal Suchanek Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_dp_core.c | 55 +++++++++++++++------------------ 1 file changed, 25 insertions(+), 30 deletions(-) commit 010848a73fd87a481f263f7322e733f129ac398b Author: Arnd Bergmann Date: Wed Jan 20 11:33:37 2016 +0100 drm: exynos: make PM functions as __maybe_unused The newly added runtime-pm support for exynos-drm encloses the pm functions in an #ifdef, but not the functions that are called from them and nowhere else, which produces warnings: drm/exynos/exynos_drm_dsi.c:733:13: warning: 'exynos_dsi_disable_clock' defined but not used [-Wunused-function] static void exynos_dsi_disable_clock(struct exynos_dsi *dsi) ^ drm/exynos/exynos_drm_dsi.c:1291:13: warning: 'exynos_dsi_disable_irq' defined but not used [-Wunused-function] static void exynos_dsi_disable_irq(struct exynos_dsi *dsi) ^ This removes the #ifdef and instead marks the functions as __maybe_unused, so gcc can silently discard them and all called functions when CONFIG_PM is disabled. Signed-off-by: Arnd Bergmann Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_dsi.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit e0fea7e7b63108b31c043df0d5754bbd666d05c6 Author: Arnd Bergmann Date: Tue Nov 17 16:08:36 2015 +0100 drm/exynos: fix building without CONFIG_PM_SLEEP The runtime PM operations use the suspend/resume functions even when CONFIG_PM_SLEEP is not set, but this now fails for the exynos DRM driver: exynos_mixer.c:1289:61: error: 'exynos_mixer_resume' undeclared here (not in a function) SET_RUNTIME_PM_OPS(exynos_mixer_suspend, exynos_mixer_resume, NULL) This removes the #ifdef and instead marks the functions as __maybe_unused, which does the right thing in all cases and also looks nicer. Signed-off-by: Arnd Bergmann Reviewed-by: Krzysztof Kozlowski Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_mixer.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 36f90b0a2ddd60823fe193a85e60ff1906c2a9b3 Author: Linus Torvalds Date: Sun Jan 31 18:12:16 2016 -0800 Linux 4.5-rc2 Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d784ef581bd64ef7a3dac2d940fbf0c3fb9e26c8 Merge: 54e3f3e a89a798 Author: Linus Torvalds Date: Sun Jan 31 17:36:45 2016 -0800 Merge tag 'usb-4.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb Pull USB driver fixes from Greg KH: "Here are some small USB fixes and new device ids for 4.5-rc2. Nothing major here, full details are in the shortlog, and all of these have been in linux-next successfully" * tag 'usb-4.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: USB: option: fix Cinterion AHxx enumeration USB: mxu11x0: fix memory leak on usb_serial private data USB: serial: ftdi_sio: add support for Yaesu SCU-18 cable USB: serial: option: Adding support for Telit LE922 USB: serial: visor: fix crash on detecting device without write_urbs USB: visor: fix null-deref at probe USB: cp210x: add ID for IAI USB to RS485 adaptor usb: hub: do not clear BOS field during reset device cdc-acm:exclude Samsung phone 04e8:685d usb: cdc-acm: send zero packet for intel 7260 modem usb: cdc-acm: handle unlinked urb in acm read callback commit 54e3f3e30245abb0d47e3bc53a1b3c75434616f1 Merge: 8c4e378 6c55d9b Author: Linus Torvalds Date: Sun Jan 31 17:09:39 2016 -0800 Merge tag 'tty-4.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty Pull tty/serial fixes from Greg KH: "Here are some small tty/serial driver fixes for 4.5-rc2. They resolve a number of reported problems (the ioctl one specifically has been pointed out by numerous people) and one patch adds some new device ids for the 8250_pci driver. All have been in linux-next successfully" * tag 'tty-4.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: serial: 8250_pci: Add Intel Broadwell ports staging/speakup: Use tty_ldisc_ref() for paste kworker n_tty: Fix unsafe reference to "other" ldisc tty: Fix unsafe ldisc reference via ioctl(TIOCGETD) tty: Retry failed reopen if tty teardown in-progress tty: Wait interruptibly for tty lock on reopen commit 8c4e378e426d1b065a1e8d9f45b8bcc4905d3410 Merge: f3ca903 88867e3 Author: Linus Torvalds Date: Sun Jan 31 17:00:27 2016 -0800 Merge tag 'staging-4.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging Pull staging fixes from Greg KH: "Here are some small staging driver fixes for 4.5-rc2. One of them predated 4.4-final, but I missed that merge window due to the holliday. The others fix reported issues that have come up recently. The tty change is needed for the speakup driver fix and has the ack of the tty driver maintainer as well, i.e. myself :) All have been in linux-next with no reported issues" * tag 'staging-4.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: Staging: speakup: fix read scrolled-back VT Staging: speakup: Fix getting port information Revert "Staging: panel: usleep_range is preferred over udelay" iio: adis_buffer: Fix out-of-bounds memory access commit f3ca903fbbb0d26221a39cbebfe6dd4efbebd3ef Merge: 510ae0c 25cad69 Author: Linus Torvalds Date: Sun Jan 31 16:55:04 2016 -0800 Merge tag 'driver-core-4.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core Pull driver core fix from Greg KH: "Here's a single driver core fix that resolves an issue a lot of users have been hitting for a while now. It's been tested a lot and has been in linux-next successfully for a while" * tag 'driver-core-4.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: base/platform: Fix platform drivers with no probe callback commit 510ae0c994cb38fcf5033ad69eb8103552e335e8 Merge: d517be5 b0a119f Author: Linus Torvalds Date: Sun Jan 31 16:50:31 2016 -0800 Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus Pull MIPS fix from Ralf Baechle: "Just a single revert for a patch which I had upstreamed out of sequence" * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: Revert "MIPS: bcm63xx: nvram: Remove unused bcm63xx_nvram_get_psi_size() function" commit d517be5fcf1a7feb06ce3d5f28055ad1ce17030b Merge: dc799d0 7425637 Author: Linus Torvalds Date: Sun Jan 31 16:17:19 2016 -0800 Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 fixes from Thomas Gleixner: "A bit on the largish side due to a series of fixes for a regression in the x86 vector management which was introduced in 4.3. This work was started in December already, but it took some time to fix all corner cases and a couple of older bugs in that area which were detected while at it Aside of that a few platform updates for intel-mid, quark and UV and two fixes for in the mm code: - Use proper types for pgprot values to avoid truncation - Prevent a size truncation in the pageattr code when setting page attributes for large mappings" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (21 commits) x86/mm/pat: Avoid truncation when converting cpa->numpages to address x86/mm: Fix types used in pgprot cacheability flags translations x86/platform/quark: Print boundaries correctly x86/platform/UV: Remove EFI memmap quirk for UV2+ x86/platform/intel-mid: Join string and fix SoC name x86/platform/intel-mid: Enable 64-bit build x86/irq: Plug vector cleanup race x86/irq: Call irq_force_move_complete with irq descriptor x86/irq: Remove outgoing CPU from vector cleanup mask x86/irq: Remove the cpumask allocation from send_cleanup_vector() x86/irq: Clear move_in_progress before sending cleanup IPI x86/irq: Remove offline cpus from vector cleanup x86/irq: Get rid of code duplication x86/irq: Copy vectormask instead of an AND operation x86/irq: Check vector allocation early x86/irq: Reorganize the search in assign_irq_vector x86/irq: Reorganize the return path in assign_irq_vector x86/irq: Do not use apic_chip_data.old_domain as temporary buffer x86/irq: Validate that irq descriptor is still active x86/irq: Fix a race in x86_vector_free_irqs() ... commit dc799d0179baa7f62d2e73a8217a273ca82adbdf Merge: 7ab85d4 1ca8ec5 Author: Linus Torvalds Date: Sun Jan 31 15:49:06 2016 -0800 Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull timer fixes from Thomas Gleixner: "The timer departement delivers: - a regression fix for the NTP code along with a proper selftest - prevent a spurious timer interrupt in the NOHZ lowres code - a fix for user space interfaces returning the remaining time on architectures with CONFIG_TIME_LOW_RES=y - a few patches to fix COMPILE_TEST fallout" * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: tick/nohz: Set the correct expiry when switching to nohz/lowres mode clocksource: Fix dependencies for archs w/o HAS_IOMEM clocksource: Select CLKSRC_MMIO where needed tick/sched: Hide unused oneshot timer code kselftests: timers: Add adjtimex SETOFFSET validity tests ntp: Fix ADJ_SETOFFSET being used w/ ADJ_NANO itimers: Handle relative timers with CONFIG_TIME_LOW_RES proper posix-timers: Handle relative timers with CONFIG_TIME_LOW_RES proper timerfd: Handle relative timers with CONFIG_TIME_LOW_RES proper hrtimer: Handle remaining time proper for TIME_LOW_RES clockevents/tcb_clksrc: Prevent disabling an already disabled clock commit 7ab85d4a85160ea2ffc96b1255443cbc83be180f Merge: 29d14f0 840d6fe Author: Linus Torvalds Date: Sun Jan 31 15:44:04 2016 -0800 Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull scheduler fixes from Thomas Gleixner: "Three small fixes in the scheduler/core: - use after free in the numa code - crash in the numa init code - a simple spelling fix" * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: pid: Fix spelling in comments sched/numa: Fix use-after-free bug in the task_numa_compare sched: Fix crash in sched_init_numa() commit 29d14f083522e5bc762256f68227d267118946c8 Merge: bbfb239 28fb8a5 Author: Linus Torvalds Date: Sun Jan 31 15:38:27 2016 -0800 Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull perf fixes from Thomas Gleixner: "This is much bigger than typical fixes, but Peter found a category of races that spurred more fixes and more debugging enhancements. Work started before the merge window, but got finished only now. Aside of that this contains the usual small fixes to perf and tools. Nothing particular exciting" * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (43 commits) perf: Remove/simplify lockdep annotation perf: Synchronously clean up child events perf: Untangle 'owner' confusion perf: Add flags argument to perf_remove_from_context() perf: Clean up sync_child_event() perf: Robustify event->owner usage and SMP ordering perf: Fix STATE_EXIT usage perf: Update locking order perf: Remove __free_event() perf/bpf: Convert perf_event_array to use struct file perf: Fix NULL deref perf/x86: De-obfuscate code perf/x86: Fix uninitialized value usage perf: Fix race in perf_event_exit_task_context() perf: Fix orphan hole perf stat: Do not clean event's private stats perf hists: Fix HISTC_MEM_DCACHELINE width setting perf annotate browser: Fix behaviour of Shift-Tab with nothing focussed perf tests: Remove wrong semicolon in while loop in CQM test perf: Synchronously free aux pages in case of allocation failure ... commit bbfb239a106d41d793f58befdaf5c806e34ea97e Merge: 30e4c9a b4abf91 Author: Linus Torvalds Date: Sun Jan 31 15:29:37 2016 -0800 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 commit, which makes the rtmutex.wait_lock an irq safe lock. This prevents a potential deadlock which can be triggered by the rcu boosting code from rcu_read_unlock()" * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: rtmutex: Make wait_lock irq safe commit 53c520c2ab79e9f3765d24116ab54f6d5b3cd563 Author: Florian Westphal Date: Thu Jan 28 13:16:59 2016 +0100 netfilter: cttimeout: fix deadlock due to erroneous unlock/lock conversion The spin_unlock call should have been left as-is, revert. Fixes: b16c29191dc89bd ("netfilter: nf_conntrack: use safer way to lock all buckets") Reported-by: kernel test robot Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso net/netfilter/nfnetlink_cttimeout.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7c7bdf35991bb8f7cfaeaf22ea3a2f2d1967c166 Author: Pablo Neira Ayuso Date: Sun Jan 24 23:08:39 2016 +0100 netfilter: nfnetlink: use original skbuff when acking batches Since bd678e09dc17 ("netfilter: nfnetlink: fix splat due to incorrect socket memory accounting in skbuff clones"), we don't manually attach the sk to the skbuff clone anymore, so we have to use the original skbuff from netlink_ack() which needs to access the sk pointer. Fixes: bd678e09dc17 ("netfilter: nfnetlink: fix splat due to incorrect socket memory accounting in skbuff clones") Reported-by: Dmitry Vyukov Signed-off-by: Pablo Neira Ayuso net/netfilter/nfnetlink.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit d93c6258ee4255749c10012c50a31c08f4e9fb16 Author: Florian Westphal Date: Wed Jan 20 11:16:43 2016 +0100 netfilter: conntrack: resched in nf_ct_iterate_cleanup Ulrich reports soft lockup with following (shortened) callchain: NMI watchdog: BUG: soft lockup - CPU#1 stuck for 22s! __netif_receive_skb_core+0x6e4/0x774 process_backlog+0x94/0x160 net_rx_action+0x88/0x178 call_do_softirq+0x24/0x3c do_softirq+0x54/0x6c __local_bh_enable_ip+0x7c/0xbc nf_ct_iterate_cleanup+0x11c/0x22c [nf_conntrack] masq_inet_event+0x20/0x30 [nf_nat_masquerade_ipv6] atomic_notifier_call_chain+0x1c/0x2c ipv6_del_addr+0x1bc/0x220 [ipv6] Problem is that nf_ct_iterate_cleanup can run for a very long time since it can be interrupted by softirq processing. Moreover, atomic_notifier_call_chain runs with rcu readlock held. So lets call cond_resched() in nf_ct_iterate_cleanup and defer the call to a work queue for the atomic_notifier_call_chain case. We also need another cond_resched in get_next_corpse, since we have to deal with iter() always returning false, in that case get_next_corpse will walk entire conntrack table. Reported-by: Ulrich Weber Tested-by: Ulrich Weber Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso net/ipv6/netfilter/nf_nat_masquerade_ipv6.c | 74 +++++++++++++++++++++++++++-- net/netfilter/nf_conntrack_core.c | 5 ++ 2 files changed, 76 insertions(+), 3 deletions(-) commit 30e4c9ad04a7bec4a04b975ce1ad5541d74e1906 Merge: f25a96e c5b6352 Author: Linus Torvalds Date: Sun Jan 31 14:48:58 2016 -0800 Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull IRQ fixes from Ingo Molnar: "Mostly irqchip driver fixes, but also an irq core crash fix and a build fix" * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: irqchip/mxs: Add missing set_handle_irq() irqchip/atmel-aic: Fix wrong bit operation for IRQ priority irqchip/gic-v3-its: Recompute the number of pages on page size change base: Export platform_msi_domain_[alloc,free]_irqs of: MSI: Simplify irqdomain lookup irqdomain: Allow domain lookup with DOMAIN_BUS_WIRED token irqchip: Fix dependencies for archs w/o HAS_IOMEM irqchip/s3c24xx: Mark init_eint as __maybe_unused genirq: Validate action before dereferencing it in handle_irq_event_percpu() commit f25a96eada61ceeaa3ec1a0ed774c99f1d9d9060 Merge: 660f6fe 0b6ec8c Author: Linus Torvalds Date: Sun Jan 31 14:43:09 2016 -0800 Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull debugobjects fix from Ingo Molnar: "Bump up debugobjects pool limit that bigger s390 systems kept running into" * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: debugobjects: Allow bigger number of early boot objects commit 660f6fea425db4398a6c94747a5da9be8ca8989f Merge: bb47680 16ab8a5 Author: Linus Torvalds Date: Sun Jan 31 14:38:37 2016 -0800 Merge tag 'vfio-v4.5-rc2' of git://github.com/awilliam/linux-vfio Pull VFIO fix from Alex Williamson: "Use alternate group tracking for no-iommu" * tag 'vfio-v4.5-rc2' of git://github.com/awilliam/linux-vfio: vfio/noiommu: Don't use iommu_present() to track fake groups commit bb4768004b0a68a01fc1bc68f8f5f0f75ea584bb Merge: ad0b40fa 52795f6 Author: Linus Torvalds Date: Sun Jan 31 14:29:52 2016 -0800 Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux Pull i2c fixes from Wolfram Sang: "Here are two I2C driver regression fixes. piix4 gets a larger overhaul fixing the latest refactoring and also an older known issue as well. designware-pci gets a fix for a bad merge conflict resolution" * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: i2c: piix4: don't regress on bus names i2c: designware-pci: use IRQF_COND_SUSPEND flag i2c: piix4: Fully initialize SB800 before it is registered i2c: piix4: Fix SB800 locking commit ca0bb0798022732773752fee97bb633c6f3623d2 Author: wim.coekaerts@oracle.com Date: Fri Jan 29 09:39:38 2016 -0800 Add sun4v_wdt watchdog driver This driver adds sparc hypervisor watchdog support. The default timeout is 60 seconds and the range is between 1 and 31536000 seconds. Both watchdog-resolution and watchdog-max-timeout MD properties settings are supported. Signed-off-by: Wim Coekaerts Reviewed-by: Julian Calaby Reviewed-by: Guenter Roeck Signed-off-by: David S. Miller Documentation/watchdog/watchdog-parameters.txt | 4 + arch/sparc/kernel/hvcalls.S | 3 +- arch/sparc/kernel/sparc_ksyms_64.c | 1 + drivers/watchdog/Kconfig | 11 ++ drivers/watchdog/Makefile | 1 + drivers/watchdog/sun4v_wdt.c | 191 +++++++++++++++++++++++++ 6 files changed, 210 insertions(+), 1 deletion(-) commit 76e9f0ee52b0be5761e29847e0ef01f23f24f1df Author: Dan Williams Date: Fri Jan 22 09:43:28 2016 -0800 phys_to_pfn_t: use phys_addr_t A dma_addr_t is potentially smaller than a phys_addr_t on some archs. Don't truncate the address when doing the pfn conversion. Cc: Ross Zwisler Reported-by: Matthew Wilcox [willy: fix pfn_t_to_phys as well] Signed-off-by: Dan Williams include/linux/pfn_t.h | 4 ++-- kernel/memremap.c | 2 +- tools/testing/nvdimm/test/iomap.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit 03fc2da63b9a33dce784a2075c7e068bb97cbf69 Author: Dan Williams Date: Tue Jan 26 09:48:05 2016 -0800 mm: fix pfn_t to page conversion in vm_insert_mixed pfn_t_to_page() honors the flags in the pfn_t value to determine if a pfn is backed by a page. However, vm_insert_mixed() was originally written to use pfn_valid() to make this determination. To restore the old/correct behavior, ignore the pfn_t flags in the !pfn_t_devmap() case and fallback to trusting pfn_valid(). Fixes: 01c8f1c44b83 ("mm, dax, gpu: convert vm_insert_mixed to pfn_t") Cc: Dave Hansen Cc: David Airlie Reported-by: Tomi Valkeinen Tested-by: Tomi Valkeinen Signed-off-by: Dan Williams mm/memory.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit d42d6108711b142804b4710d4215efbf5f9b6e21 Author: Richard Weinberger Date: Mon Jan 25 23:24:14 2016 +0100 watchdog: Fix dependencies for !HAS_IOMEM archs Not every arch has io memory. So, unbreak the build by fixing the dependencies. Signed-off-by: Richard Weinberger Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/Kconfig | 3 +++ 1 file changed, 3 insertions(+) commit df1a3e64f79b3e277a22b2e789896f86c63eec1f Author: Arnd Bergmann Date: Mon Jan 25 17:06:27 2016 +0100 watchdog: imgdpc: select WATCHDOG_CORE The imgpdc_wdt driver can be built on all architectures with CONFIG_COMPILE_TEST, but fails if no other watchdog driver is enabled: drivers/watchdog/built-in.o: In function `pdc_wdt_remove': imgpdc_wdt.c:(.text+0x74): undefined reference to `watchdog_unregister_device' This adds the normal 'select WATCHDOG_CORE' that is needed to ensure the driver always builds cleanly. Signed-off-by: Arnd Bergmann Reviewed-by: James Hogan Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/Kconfig | 1 + 1 file changed, 1 insertion(+) commit c75f6c5ac0877e8d9728f680aa324e9adeff91e1 Author: Marc Gonzalez Date: Thu Jan 21 15:27:07 2016 +0100 watchdog: tango: rename ARCH_TANGOX to ARCH_TANGO This change was requested by arm-soc maintainer Kevin Hilman because the X in TANGOX is a wildcard. Signed-off-by: Marc Gonzalez Acked-by: Mans Rullgard Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 99f08ca84156f08b8545f7a5bfedfdd2452c4556 Author: Tomas Winkler Date: Tue Jan 19 15:51:04 2016 +0200 watchdog: pcwd_usb: fix compilation warning In function ‘usb_pcwd_probe’: drivers/watchdog/pcwd_usb.c:611:12: warning: variable ‘maxp’ set but not used [-Wunused-but-set-variable] int pipe, maxp; Signed-off-by: Tomas Winkler Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/pcwd_usb.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 55e071779c79890f43b75d4472243280e91581de Author: Sandeep Tripathy Date: Tue Jan 19 14:44:49 2016 +0530 watchdog: sp805: ping fails to abort wdt reset sp805 wdt asserts interrupt for the first expiry and reloads the counter. If wdt interrupt is set and count reaches zero then wdt reset event is generated. To get wdt reset at 't' timeout the driver loads wdt counter with 't/2'. A ping before time 't' *should* prevent wdt reset. Currently if ping is done after 't/2' then wdt interrupt condition gets set. On the next countdown of loadval wdt reset event occurs eventhough wdt was reloaded before the set timeout 't'. This patch clears the interrupt condition on ping. Signed-off-by: Sandeep Tripathy Acked-by: Viresh Kumar Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/sp805_wdt.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 29efefb9091dc7b58a2ac9d054c92295101e6bb2 Author: Uwe Kleine-König Date: Fri Jan 15 18:35:34 2016 +0100 watchdog: max63xx: make module's license marker match the header The header specifies GPL version 2 only, so make the MODULE_LICENSE string use the respective string for that. Signed-off-by: Uwe Kleine-König Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/max63xx_wdt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7e502e5bc546a8d8be188fa019fe6fcdf02e3c87 Author: Oren Givon Date: Mon Jan 25 12:00:42 2016 +0200 iwlwifi: fix name of ucode loaded for 8265 series Fix the name of the ucode being loaded for 8265 series to be: iwlwifi-8265-XX.ucode Signed-off-by: Oren Givon Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/iwl-8000.c | 42 +++++++++++++++++++++------ drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 6 ++-- 2 files changed, 37 insertions(+), 11 deletions(-) commit ed0ae43c9d5312932e1706e66506b2ba97fa7c93 Merge: 7ddc971 3db70a8 Author: Jens Axboe Date: Sat Jan 30 22:04:52 2016 -0700 Merge branch 'stable/for-jens-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen into for-linus commit 7ddc971f86aa0a4cee9f6886c356a052461957ae Author: Mike Krinkin Date: Sat Jan 30 19:09:59 2016 +0300 block: fix use-after-free in dio_bio_complete kasan reported the following error when i ran xfstest: [ 701.826854] ================================================================== [ 701.826864] BUG: KASAN: use-after-free in dio_bio_complete+0x41a/0x600 at addr ffff880080b95f94 [ 701.826870] Read of size 4 by task loop2/3874 [ 701.826879] page:ffffea000202e540 count:0 mapcount:0 mapping: (null) index:0x0 [ 701.826890] flags: 0x100000000000000() [ 701.826895] page dumped because: kasan: bad access detected [ 701.826904] CPU: 3 PID: 3874 Comm: loop2 Tainted: G B W L 4.5.0-rc1-next-20160129 #83 [ 701.826910] Hardware name: LENOVO 23205NG/23205NG, BIOS G2ET95WW (2.55 ) 07/09/2013 [ 701.826917] ffff88008fadf800 ffff88008fadf758 ffffffff81ca67bb 0000000041b58ab3 [ 701.826941] ffffffff830d1e74 ffffffff81ca6724 ffff88008fadf748 ffffffff8161c05c [ 701.826963] 0000000000000282 ffff88008fadf800 ffffed0010172bf2 ffffea000202e540 [ 701.826987] Call Trace: [ 701.826997] [] dump_stack+0x97/0xdc [ 701.827005] [] ? _atomic_dec_and_lock+0xc4/0xc4 [ 701.827014] [] ? __dump_page+0x32c/0x490 [ 701.827023] [] kasan_report_error+0x5f3/0x8b0 [ 701.827033] [] ? dio_bio_complete+0x41a/0x600 [ 701.827040] [] __asan_report_load4_noabort+0x59/0x80 [ 701.827048] [] ? dio_bio_complete+0x41a/0x600 [ 701.827053] [] dio_bio_complete+0x41a/0x600 [ 701.827057] [] ? blk_queue_exit+0x108/0x270 [ 701.827060] [] dio_bio_end_aio+0xa0/0x4d0 [ 701.827063] [] ? dio_bio_complete+0x600/0x600 [ 701.827067] [] ? blk_account_io_completion+0x316/0x5d0 [ 701.827070] [] bio_endio+0x79/0x200 [ 701.827074] [] blk_update_request+0x1df/0xc50 [ 701.827078] [] blk_mq_end_request+0x57/0x120 [ 701.827081] [] __blk_mq_complete_request+0x310/0x590 [ 701.827084] [] ? set_next_entity+0x2f8/0x2ed0 [ 701.827088] [] ? put_prev_entity+0x22d/0x2a70 [ 701.827091] [] blk_mq_complete_request+0x5b/0x80 [ 701.827094] [] loop_queue_work+0x273/0x19d0 [ 701.827098] [] ? finish_task_switch+0x1c8/0x8e0 [ 701.827101] [] ? trace_hardirqs_on_caller+0x18/0x6c0 [ 701.827104] [] ? lo_read_simple+0x890/0x890 [ 701.827108] [] ? debug_check_no_locks_freed+0x350/0x350 [ 701.827111] [] ? __hrtick_start+0x130/0x130 [ 701.827115] [] ? __schedule+0x936/0x20b0 [ 701.827118] [] ? kthread_worker_fn+0x3ed/0x8d0 [ 701.827121] [] ? kthread_worker_fn+0x21d/0x8d0 [ 701.827125] [] ? trace_hardirqs_on_caller+0x18/0x6c0 [ 701.827128] [] kthread_worker_fn+0x2af/0x8d0 [ 701.827132] [] ? __init_kthread_worker+0x170/0x170 [ 701.827135] [] ? _raw_spin_unlock_irqrestore+0x36/0x60 [ 701.827138] [] ? __init_kthread_worker+0x170/0x170 [ 701.827141] [] ? __init_kthread_worker+0x170/0x170 [ 701.827144] [] kthread+0x24b/0x3a0 [ 701.827148] [] ? kthread_create_on_node+0x4c0/0x4c0 [ 701.827151] [] ? trace_hardirqs_on+0xd/0x10 [ 701.827155] [] ? do_group_exit+0xdd/0x350 [ 701.827158] [] ? kthread_create_on_node+0x4c0/0x4c0 [ 701.827161] [] ret_from_fork+0x3f/0x70 [ 701.827165] [] ? kthread_create_on_node+0x4c0/0x4c0 [ 701.827167] Memory state around the buggy address: [ 701.827170] ffff880080b95e80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff [ 701.827172] ffff880080b95f00: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff [ 701.827175] >ffff880080b95f80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff [ 701.827177] ^ [ 701.827179] ffff880080b96000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff [ 701.827182] ffff880080b96080: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff [ 701.827183] ================================================================== The problem is that bio_check_pages_dirty calls bio_put, so we must not access bio fields after bio_check_pages_dirty. Fixes: 9b81c842355ac96097ba ("block: don't access bio->bi_error after bio_put()"). Signed-off-by: Mike Krinkin Cc: stable@vger.kernel.org Signed-off-by: Jens Axboe fs/direct-io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 19f97c98307115f5a6b0bbf84850c9c272ce5dd3 Author: Aneesh Kumar K.V Date: Fri Jan 29 22:32:49 2016 +0530 powerpc/book3s_32: Fix build error with checkpoint restart In file included from mm/vmscan.c:54:0: include/linux/swapops.h: In function ‘pte_to_swp_entry’: include/linux/swapops.h:69:2: error: implicit declaration of function ‘pte_swp_soft_dirty’ [-Werror=implicit-function-declaration] if (pte_swp_soft_dirty(pte)) ^ include/linux/swapops.h:70:3: error: implicit declaration of function ‘pte_swp_clear_soft_dirty’ [-Werror=implicit-function-declaration] pte = pte_swp_clear_soft_dirty(pte); We support soft dirty tracking only with book3s 64 for now. So change the Kconfig dependency accordingly. Also CHECKPOINT_RESTORE feature is not really dependent on SOFT_DIRTY. We track the dependency between MEM_SOFT_DIRTY and ARCH_SOFT_DIRTY through headers Fixes: 7207f43665b8 ("powerpc/mm: Add page soft dirty tracking") Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 53729eb174c1589f9185340ffe8c10b3f39f3ef3 Merge: 99b4dd9 cff10ce Author: David S. Miller Date: Sat Jan 30 15:32:42 2016 -0800 Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth Johan Hedberg says: ==================== pull request: bluetooth 2016-01-30 Here's a set of important Bluetooth fixes for the 4.5 kernel: - Two fixes to 6LoWPAN code (one fixing a potential crash) - Fix LE pairing with devices using both public and random addresses - Fix allocation of dynamic LE PSM values - Fix missing COMPATIBLE_IOCTL for UART line discipline Please let me know if there are any issues pulling. Thanks. ==================== Signed-off-by: David S. Miller commit d1a5f2b4d8a125943dcb6b032fc7eaefc2c78296 Author: Dan Williams Date: Thu Jan 28 20:25:31 2016 -0800 block: use DAX for partition table reads Avoid populating pagecache when the block device is in DAX mode. Otherwise these page cache entries collide with the fsync/msync implementation and break data durability guarantees. Cc: Jan Kara Cc: Jeff Moyer Cc: Christoph Hellwig Cc: Dave Chinner Cc: Andrew Morton Reported-by: Ross Zwisler Tested-by: Ross Zwisler Reviewed-by: Matthew Wilcox Signed-off-by: Dan Williams block/partition-generic.c | 18 +++++++++++++++--- fs/dax.c | 20 ++++++++++++++++++++ include/linux/dax.h | 11 +++++++++++ 3 files changed, 46 insertions(+), 3 deletions(-) commit 9f4736fe7ca804aa79b5916221bb13dfc6221a0f Author: Dan Williams Date: Thu Jan 28 20:13:39 2016 -0800 block: revert runtime dax control of the raw block device Dynamically enabling DAX requires that the page cache first be flushed and invalidated. This must occur atomically with the change of DAX mode otherwise we confuse the fsync/msync tracking and violate data durability guarantees. Eliminate the possibilty of DAX-disabled to DAX-enabled transitions for now and revisit this for the next cycle. Cc: Jan Kara Cc: Jeff Moyer Cc: Christoph Hellwig Cc: Dave Chinner Cc: Matthew Wilcox Cc: Andrew Morton Cc: Ross Zwisler Signed-off-by: Dan Williams block/ioctl.c | 38 -------------------------------------- fs/block_dev.c | 28 ---------------------------- include/linux/fs.h | 3 --- include/uapi/linux/fs.h | 1 - 4 files changed, 70 deletions(-) commit 65f87ee71852a754f7981d0653e7136039b8798a Author: Dan Williams Date: Mon Jan 25 17:23:18 2016 -0800 fs, block: force direct-I/O for dax-enabled block devices Similar to the file I/O path, re-direct all I/O to the DAX path for I/O to a block-device special file. Both regular files and device special files can use the common filp->f_mapping->host lookup to determing is DAX is enabled. Otherwise, we confuse the DAX code that does not expect to find live data in the page cache: ------------[ cut here ]------------ WARNING: CPU: 0 PID: 7676 at mm/filemap.c:217 __delete_from_page_cache+0x9f6/0xb60() Modules linked in: CPU: 0 PID: 7676 Comm: a.out Not tainted 4.4.0+ #276 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011 00000000ffffffff ffff88006d3f7738 ffffffff82999e2d 0000000000000000 ffff8800620a0000 ffffffff86473d20 ffff88006d3f7778 ffffffff81352089 ffffffff81658d36 ffffffff86473d20 00000000000000d9 ffffea0000009d60 Call Trace: [< inline >] __dump_stack lib/dump_stack.c:15 [] dump_stack+0x6f/0xa2 lib/dump_stack.c:50 [] warn_slowpath_common+0xd9/0x140 kernel/panic.c:482 [] warn_slowpath_null+0x29/0x30 kernel/panic.c:515 [] __delete_from_page_cache+0x9f6/0xb60 mm/filemap.c:217 [] delete_from_page_cache+0x112/0x200 mm/filemap.c:244 [] __dax_fault+0x859/0x1800 fs/dax.c:487 [] blkdev_dax_fault+0x26/0x30 fs/block_dev.c:1730 [< inline >] wp_pfn_shared mm/memory.c:2208 [] do_wp_page+0xc85/0x14f0 mm/memory.c:2307 [< inline >] handle_pte_fault mm/memory.c:3323 [< inline >] __handle_mm_fault mm/memory.c:3417 [] handle_mm_fault+0x2483/0x4640 mm/memory.c:3446 [] __do_page_fault+0x376/0x960 arch/x86/mm/fault.c:1238 [] trace_do_page_fault+0xe8/0x420 arch/x86/mm/fault.c:1331 [] do_async_page_fault+0x14/0xd0 arch/x86/kernel/kvm.c:264 [] async_page_fault+0x28/0x30 arch/x86/entry/entry_64.S:986 [] entry_SYSCALL_64_fastpath+0x16/0x7a arch/x86/entry/entry_64.S:185 ---[ end trace dae21e0f85f1f98c ]--- Fixes: 5a023cdba50c ("block: enable dax for raw block devices") Reported-by: Dmitry Vyukov Reported-by: Kirill A. Shutemov Suggested-by: Jan Kara Reviewed-by: Jan Kara Suggested-by: Matthew Wilcox Tested-by: Ross Zwisler Signed-off-by: Dan Williams include/linux/fs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b1d353ad3d5835b16724653b33c05124e1b5acf1 Author: Dan Carpenter Date: Tue Jan 26 12:24:25 2016 +0300 intel_scu_ipcutil: underflow in scu_reg_access() "count" is controlled by the user and it can be negative. Let's prevent that by making it unsigned. You have to have CAP_SYS_RAWIO to call this function so the bug is not as serious as it could be. Fixes: 5369c02d951a ('intel_scu_ipc: Utility driver for intel scu ipc') Signed-off-by: Dan Carpenter Cc: stable@vger.kernel.org Signed-off-by: Darren Hart drivers/platform/x86/intel_scu_ipcutil.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1c319e781e0ecc48228081558f38044a11c7a76e Author: Alex Hung Date: Wed Jan 27 21:35:00 2016 +0800 intel-hid: fix incorrect entries in intel_hid_keymap intel_hid_keymap contains a duplicate entry for KEY_HOME and an incorrect HID index for KEY_PAGEDOWN Reported-by: Pavel Bludov Signed-off-by: Alex Hung drivers/platform/x86/intel-hid.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 8a695db01dc2b07959628626bc3810c4c6ff2681 Author: Dave Jiang Date: Tue Jan 19 08:57:48 2016 -0700 dmaengine: IOATDMA: fix timer code that continues to restart channels during idle The timer_event() function seems to have a bug where it ends up marking the last entry as non-responding and eventually attempts to restart the channel. This also continuously happen when idle. What needs to happen is for us to make sure there are no descriptors active and then handle that case properly. We should only hit the "cleanup" stage if there are still active descriptors. Signed-off-by: Dave Jiang Signed-off-by: Vinod Koul drivers/dma/ioat/dma.c | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) commit 7e1da86339f29e445e40d41132c30741df8c19ad Author: Arnd Bergmann Date: Mon Jan 25 16:52:40 2016 +0100 iio: ade7753: avoid uninitialized data The ade7753_spi_read_reg_16() will either successfully read a value from SPI, or return a failure code without delivering data. However, the ade7753_stop_device() and ade7753_reset() functions use the returned data without checking for an error condition first. Gcc detects this as a possible bug and warns about it: drivers/staging/iio/meter/ade7753.c: In function 'ade7753_remove': drivers/staging/iio/meter/ade7753.c:348:6: error: 'val' may be used uninitialized in this function [-Werror=maybe-uninitialized] val |= BIT(4); /* AD converters can be turned off */ ^ drivers/staging/iio/meter/ade7753.c:345:6: note: 'val' was declared here u16 val; ^ drivers/staging/iio/meter/ade7753.c: In function 'ade7753_probe': drivers/staging/iio/meter/ade7753.c:222:6: error: 'val' may be used uninitialized in this function [-Werror=maybe-uninitialized] In both cases, we can avoids the warning by checking the return code before using the data. Signed-off-by: Arnd Bergmann Signed-off-by: Jonathan Cameron drivers/staging/iio/meter/ade7753.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 431386e783a3a6c8b7707bee32d18c353b8688b2 Author: Akinobu Mita Date: Thu Jan 21 01:07:31 2016 +0900 iio: pressure: mpl115: fix temperature offset sign According to the datasheet, the resolusion of temperature sensor is -5.35 counts/C. Temperature ADC is 472 counts at 25C. (https://www.sparkfun.com/datasheets/Sensors/Pressure/MPL115A1.pdf NOTE: This is older revision, but this information is removed from the latest datasheet from nxp somehow) Temp [C] = (Tadc - 472) / -5.35 + 25 = (Tadc - 605.750000) * -0.186915888 So the correct offset is -605.750000. Signed-off-by: Akinobu Mita Acked-by: Peter Meerwald-Stadler Cc: Signed-off-by: Jonathan Cameron drivers/iio/pressure/mpl115.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ddeb35cbd6221751f0197ffaa9500da31e8337f4 Author: Richard Weinberger Date: Mon Jan 25 23:24:15 2016 +0100 iio: imu: Fix dependencies for !HAS_IOMEM archs Not every arch has io memory. While the driver has correct dependencies the select statement will bypass the HAS_IOMEM dependency. So, unbreak the build by rendering it into a real dependency. Signed-off-by: Richard Weinberger Signed-off-by: Jonathan Cameron drivers/iio/imu/inv_mpu6050/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e884cebf9ea34f559bc78a474f3fccbc285dcb71 Author: Richard Weinberger Date: Mon Jan 25 23:24:03 2016 +0100 staging: iio: Fix dependencies for !HAS_IOMEM archs Not every arch has io memory. So, unbreak the build by fixing the dependencies. Signed-off-by: Richard Weinberger Acked-by: Geert Uytterhoeven Signed-off-by: Jonathan Cameron drivers/staging/iio/adc/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 0165c3005fd64f850b1bbfe2fd24b916a161b696 Author: Richard Weinberger Date: Mon Jan 25 23:24:05 2016 +0100 iio: adc: Fix dependencies for !HAS_IOMEM archs Not every arch has io memory. So, unbreak the build by fixing the dependencies. Signed-off-by: Richard Weinberger Signed-off-by: Jonathan Cameron drivers/iio/adc/Kconfig | 3 +++ 1 file changed, 3 insertions(+) commit d81dac3c1c5295c61b15293074ac2bd3254e1875 Author: Dan Carpenter Date: Tue Jan 26 12:25:21 2016 +0300 iio: inkern: fix a NULL dereference on error In twl4030_bci_probe() there are some failure paths where we call iio_channel_release() with a NULL pointer. (Apparently, that driver can opperate without a valid channel pointer). Let's fix it by adding a NULL check in iio_channel_release(). Fixes: 2202e1fc5a29 ('drivers: power: twl4030_charger: fix link problems when building as module') Signed-off-by: Dan Carpenter Cc: Signed-off-by: Jonathan Cameron drivers/iio/inkern.c | 2 ++ 1 file changed, 2 insertions(+) commit 49a20454e0eb907093ec564d4e8f3832bcbf9d53 Author: Cyrille Pitchen Date: Fri Jan 29 17:53:33 2016 +0100 crypto: atmel-aes - remove calls of clk_prepare() from atomic contexts clk_prepare()/clk_unprepare() must not be called within atomic context. This patch calls clk_prepare() once for all from atmel_aes_probe() and clk_unprepare() from atmel_aes_remove(). Then calls of clk_prepare_enable()/clk_disable_unprepare() were replaced by calls of clk_enable()/clk_disable(). Cc: stable@vger.kernel.org Signed-off-by: Cyrille Pitchen Reported-by: Matthias Mayr Signed-off-by: Herbert Xu drivers/crypto/atmel-aes.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit fe09786178f9df713a4b2dd6b93c0a722346bf5e Author: Wang, Rui Y Date: Wed Jan 27 17:08:37 2016 +0800 crypto: algif_hash - wait for crypto_ahash_init() to complete hash_sendmsg/sendpage() need to wait for the completion of crypto_ahash_init() otherwise it can cause panic. Cc: stable@vger.kernel.org Signed-off-by: Rui Wang Signed-off-by: Herbert Xu crypto/algif_hash.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 840d6fe7425ffb6a62d53b2759e01ae6daf90e4e Author: Zhen Lei Date: Sat Jan 30 10:04:17 2016 +0800 pid: Fix spelling in comments Accidentally discovered this typo when I studied this module. Signed-off-by: Zhen Lei Cc: Hanjun Guo Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tianhong Ding Cc: Xinwei Hu Cc: Zefan Li Link: http://lkml.kernel.org/r/1454119457-11272-1-git-send-email-thunder.leizhen@huawei.com Signed-off-by: Ingo Molnar kernel/pid.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 28fb8a5b6e233fc384fb27f9f91f811b40ba9cf8 Merge: 5fa7c8e 3f416f2 Author: Ingo Molnar Date: Sat Jan 30 09:15:49 2016 +0100 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 'perf stat' stddev reporting due to mistakenly cleaning event private stats (Jiri Olsa) - Fix 'perf test CQM' endless loop detected by 'gcc6 -Wmisleading-indentation' (Markus Trippelsdorf) - Fix behaviour of Shift-Tab when nothing is focussed in the annotate TUI browser, detected with gcc6 -Wmisleading-indentation (Markus Trippelsdorf) - Fix mem data cacheline hists browser width setting for unresolved addresses (Jiri Olsa) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 99b4dd9f2423130875ac486fe587cd103c64f753 Author: Yuchung Cheng Date: Fri Jan 29 15:11:50 2016 -0800 tcp: avoid cwnd undo after receiving ECN RFC 4015 section 3.4 says the TCP sender MUST refrain from reversing the congestion control state when the ACK signals congestion through the ECN-Echo flag. Currently we may not always do that when prior_ssthresh is reset upon receiving ACKs with ECE marks. This patch fixes that. Signed-off-by: Yuchung Cheng Signed-off-by: Neal Cardwell Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/tcp_input.c | 2 -- 1 file changed, 2 deletions(-) commit 3d45296ab96c2ec8308226b3350a6d9e48379870 Author: WANG Cong Date: Fri Jan 29 11:58:03 2016 -0800 irda: fix a potential use-after-free in ircomm_param_request self->ctrl_skb is protected by self->spinlock, we should not access it out of the lock. Move the debugging printk inside. Reported-by: Dmitry Vyukov Cc: Samuel Ortiz Signed-off-by: Cong Wang Signed-off-by: David S. Miller net/irda/ircomm/ircomm_param.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit eb7d78c9e7f6418932bd5fbee45eb46d5ab05002 Author: Dan Williams Date: Fri Jan 29 21:48:34 2016 -0800 devm_memremap_pages: fix vmem_altmap lifetime + alignment handling to_vmem_altmap() needs to return valid results until arch_remove_memory() completes. It also needs to be valid for any pfn in a section regardless of whether that pfn maps to data. This escape was a result of a bug in the unit test. The signature of this bug is that free_pagetable() fails to retrieve a vmem_altmap and goes off into the weeds: BUG: unable to handle kernel NULL pointer dereference at (null) IP: [] get_pfnblock_flags_mask+0x49/0x60 [..] Call Trace: [] free_hot_cold_page+0x97/0x1d0 [] __free_pages+0x2a/0x40 [] free_pagetable+0x8c/0xd4 [] remove_pagetable+0x37a/0x808 [] vmemmap_free+0x10/0x20 Fixes: 4b94ffdc4163 ("x86, mm: introduce vmem_altmap to augment vmemmap_populate()") Cc: Andrew Morton Reported-by: Jeff Moyer Signed-off-by: Dan Williams kernel/memremap.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) commit ae9d723e9fbe9fb28213b7df26475791428bf76a Merge: 84922d8 e434e04 Author: David S. Miller Date: Fri Jan 29 20:33:57 2016 -0800 Merge branch 'arnd-net-driver-fixes' Arnd Bergmann says: ==================== network driver fixes This is an updated series of fixes for the network device drivers that showed warnings in ARM randconfig. Changes since v1 are: dropped "net: macb: avoid uninitialized variables", already fixed in net-next dropped "net: fddi/defxx: avoid warning about uninitialized variable use", already fixed in net-next added missing barriers in "net: moxart: use correct accessors for DMA memory" clarified "net: bgmac: clarify CONFIG_BCMA dependency" changelog ==================== Signed-off-by: David S. Miller commit e434e04110704eb91acfecbd0fb8ca8e2da9c29b Author: Arnd Bergmann Date: Fri Jan 29 12:39:15 2016 +0100 net: tg3: avoid uninitialized variable warning The tg3_set_eeprom() function correctly initializes the 'start' variable, but gcc generates a false warning: drivers/net/ethernet/broadcom/tg3.c: In function 'tg3_set_eeprom': drivers/net/ethernet/broadcom/tg3.c:12057:4: warning: 'start' may be used uninitialized in this function [-Wmaybe-uninitialized] I have not come up with a way to restructure the code in a way that avoids the warning without making it less readable, so this adds an initialization for the declaration to shut up that warning. Signed-off-by: Arnd Bergmann Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/tg3.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8bdb290896d2ff22942c9c9f5bf19909329f3664 Author: Arnd Bergmann Date: Fri Jan 29 12:39:14 2016 +0100 net: nb8800: avoid uninitialized variable warning The nb8800_poll() function initializes the 'next' variable in the loop looking for new input data. We know this will be called at least once because 'budget' is a guaranteed to be a positive number when we enter the function, but the compiler doesn't know that and warns when the variable is used later: drivers/net/ethernet/aurora/nb8800.c: In function 'nb8800_poll': drivers/net/ethernet/aurora/nb8800.c:350:21: warning: 'next' may be used uninitialized in this function [-Wmaybe-uninitialized] Changing the 'while() {}' loop to 'do {} while()' makes it obvious to the compiler what is going on so it no longer warns. Signed-off-by: Arnd Bergmann Acked-by: Mans Rullgard Signed-off-by: David S. Miller drivers/net/ethernet/aurora/nb8800.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 57e7c8cef224af166b8ec932b5e383641418c005 Author: Arnd Bergmann Date: Fri Jan 29 12:39:13 2016 +0100 net: vxge: avoid unused function warnings When CONFIG_PCI_MSI is disabled, we get warnings about unused functions in the vxge driver: drivers/net/ethernet/neterion/vxge/vxge-main.c:2121:13: warning: 'adaptive_coalesce_tx_interrupts' defined but not used [-Wunused-function] drivers/net/ethernet/neterion/vxge/vxge-main.c:2149:13: warning: 'adaptive_coalesce_rx_interrupts' defined but not used [-Wunused-function] We could add another #ifdef here, but it's nicer to avoid those warnings for good by converting the existing #ifdef to if(IS_ENABLED()), which has the same effect but provides better compile-time coverage in general, and lets the compiler understand better when the function is intentionally unused. Signed-off-by: Arnd Bergmann Signed-off-by: David S. Miller drivers/net/ethernet/neterion/vxge/vxge-main.c | 31 ++++++++++---------------- 1 file changed, 12 insertions(+), 19 deletions(-) commit 1f820f538f7396db7fd40684b9c3620816acc5a3 Author: Arnd Bergmann Date: Fri Jan 29 12:39:12 2016 +0100 net: bgmac: clarify CONFIG_BCMA dependency The bgmac driver depends on BCMA_HOST_SOC, which is only used when CONFIG_BCMA is enabled. However, it is a bool option and can be set when CONFIG_BCMA=m, and then bgmac can be built-in, leading to an obvious link error: drivers/built-in.o: In function `bgmac_init': :(.init.text+0x7f2c): undefined reference to `__bcma_driver_register' drivers/built-in.o: In function `bgmac_exit': :(.exit.text+0x110a): undefined reference to `bcma_driver_unregister' To avoid this case, we need to depend on both BCMA and BCMA_SOC, as this patch does. I'm also trying to make the dependency more readable by splitting it into three lines, and adding a COMPILE_TEST alternative so we can test-build it in all configurations that support BCMA. The added dependency on FIXED_PHY addresses a related issue where we cannot call fixed_phy_register() when CONFIG_FIXED_PHY=m and CONFIG_BGMAC=y. Signed-off-by: Arnd Bergmann Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/Kconfig | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 747a11279a442b913a57bf38934879babab3b58b Author: Arnd Bergmann Date: Fri Jan 29 12:39:11 2016 +0100 net: hp100: remove unnecessary #ifdefs Building the hp100 ethernet driver causes warnings when both the PCI and EISA drivers are disabled: ethernet/hp/hp100.c: In function 'hp100_module_init': ethernet/hp/hp100.c:3047:2: warning: label 'out3' defined but not used [-Wunused-label] ethernet/hp/hp100.c: At top level: ethernet/hp/hp100.c:2828:13: warning: 'cleanup_dev' defined but not used [-Wunused-function] We can easily avoid the warnings and make the driver look slightly nicer by removing the #ifdefs that check for the CONFIG_PCI and CONFIG_EISA, as all the registration functions are designed to have no effect when the buses are disabled. Signed-off-by: Arnd Bergmann Signed-off-by: David S. Miller drivers/net/ethernet/hp/hp100.c | 18 ------------------ 1 file changed, 18 deletions(-) commit 84092996673211f16ef3b942a191d7952e9dfea9 Author: Arnd Bergmann Date: Fri Jan 29 12:39:10 2016 +0100 net: davinci_cpdma: use dma_addr_t for DMA address The davinci_cpdma mixes up physical addresses as seen from the CPU and DMA addresses as seen from a DMA master, since it can operate on both normal memory or an on-chip buffer. If dma_addr_t is different from phys_addr_t, this means we get a compile-time warning about the type mismatch: ethernet/ti/davinci_cpdma.c: In function 'cpdma_desc_pool_create': ethernet/ti/davinci_cpdma.c:182:48: error: passing argument 3 of 'dma_alloc_coherent' from incompatible pointer type [-Werror=incompatible-pointer-types] pool->cpumap = dma_alloc_coherent(dev, size, &pool->phys, In file included from ethernet/ti/davinci_cpdma.c:21:0: dma-mapping.h:398:21: note: expected 'dma_addr_t * {aka long long unsigned int *}' but argument is of type 'phys_addr_t * {aka unsigned int *}' static inline void *dma_alloc_coherent(struct device *dev, size_t size, This slightly restructures the code so the address we use for mapping RAM into a DMA address is always a dma_addr_t, avoiding the warning. The code is correct even if both types are 32-bit because the DMA master in this device only supports 32-bit addressing anyway, independent of the types that are used. We still assign this value to pool->phys, and that is wrong if the driver is ever used with an IOMMU, but that value appears to be never used, so there is no problem really. I've added a couple of comments about where we do things that are slightly violating the API. Signed-off-by: Arnd Bergmann Signed-off-by: David S. Miller drivers/net/ethernet/ti/davinci_cpdma.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 84922d8cd49c505dc0912f57f4ab1f8f33c7e118 Merge: 39a4867 1cdda91 Author: David S. Miller Date: Fri Jan 29 20:31:27 2016 -0800 Merge branch 'ipv6-sticky-pktinfo' Paolo Abeni says: ==================== ipv6: fix sticky pktinfo behaviour Currently: ip addr add dev eth0 2001:0010::1/64 ip addr add dev eth1 2001:0020::1/64 ping6 -I eth0 2001:0020::2 do not lead to the expected results, i.e. eth1 is used as the egress interface. This is due to two related issues in handling sticky pktinfo, used by ping6 to enforce the device binding: - ip6_dst_lookup_flow()/ip6_dst_lookup_tail() do not really enforce flowi6_oif match - ipv6 udp connect() just ignore flowi6_oif These patches address each issue individually. The kernel has never enforced the egress interface specified via the sticky pktinfo, except briefly between the commits 741a11d9e410 ("net: ipv6: Add RT6_LOOKUP_F_IFACE flag if oif is set") and d46a9d678e4c ("net: ipv6: Dont add RT6_LOOKUP_F_IFACE flag if saddr set"), but the ping6 tools was unaffected up to iputils-20100214, since before it used SO_BINDTODEVICE to enforce the egress interface. ==================== Signed-off-by: David S. Miller commit 1cdda91871470f15e79375991bd2eddc6e86ddb1 Author: Paolo Abeni Date: Fri Jan 29 12:30:20 2016 +0100 ipv6/udp: use sticky pktinfo egress ifindex on connect() Currently, the egress interface index specified via IPV6_PKTINFO is ignored by __ip6_datagram_connect(), so that RFC 3542 section 6.7 can be subverted when the user space application calls connect() before sendmsg(). Fix it by initializing properly flowi6_oif in connect() before performing the route lookup. Signed-off-by: Paolo Abeni Acked-by: Hannes Frederic Sowa Signed-off-by: David S. Miller net/ipv6/datagram.c | 3 +++ 1 file changed, 3 insertions(+) commit 6f21c96a78b835259546d8f3fb4edff0f651d478 Author: Paolo Abeni Date: Fri Jan 29 12:30:19 2016 +0100 ipv6: enforce flowi6_oif usage in ip6_dst_lookup_tail() The current implementation of ip6_dst_lookup_tail basically ignore the egress ifindex match: if the saddr is set, ip6_route_output() purposefully ignores flowi6_oif, due to the commit d46a9d678e4c ("net: ipv6: Dont add RT6_LOOKUP_F_IFACE flag if saddr set"), if the saddr is 'any' the first route lookup in ip6_dst_lookup_tail fails, but upon failure a second lookup will be performed with saddr set, thus ignoring the ifindex constraint. This commit adds an output route lookup function variant, which allows the caller to specify lookup flags, and modify ip6_dst_lookup_tail() to enforce the ifindex match on the second lookup via said helper. ip6_route_output() becames now a static inline function build on top of ip6_route_output_flags(); as a side effect, out-of-tree modules need now a GPL license to access the output route lookup functionality. Signed-off-by: Paolo Abeni Acked-by: Hannes Frederic Sowa Acked-by: David Ahern Signed-off-by: David S. Miller include/net/ip6_route.h | 12 ++++++++++-- net/ipv6/ip6_output.c | 6 +++++- net/ipv6/route.c | 7 +++---- 3 files changed, 18 insertions(+), 7 deletions(-) commit 39a4867a9b481afce3f28d2c7e216bdd6ff51417 Merge: aa3a022 f9ead9b Author: David S. Miller Date: Fri Jan 29 20:26:08 2016 -0800 Merge tag 'wireless-drivers-for-davem-2016-01-29' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers Kalle Valo says: ==================== iwlwifi * Fix support for 3168 device: * NVM version * firmware file name * device IDs * Fix a compilation warning in dvm calibration code * Fix the TPC (reduced Tx Power) code. This fixes performance issues * Add device IDs for 8265 rtx2x00 * fix monitor mode regression dating back to 4.1 brcmfmac * fix sdio initialisation related crash rtlwifi * rtl8821ae: Fix 5G failure when EEPROM is incorrectly encoded ath9k * ignore eeprom magic mismatch on flash based devices ==================== Signed-off-by: David S. Miller commit aa3a022094fac7f6e48050e139fa8a5a2e3265ce Author: Ken-ichirou MATSUZAWA Date: Fri Jan 29 10:45:50 2016 +0900 netlink: not trim skb for mmaped socket when dump We should not trim skb for mmaped socket since its buf size is fixed and userspace will read as frame which data equals head. mmaped socket will not call recvmsg, means max_recvmsg_len is 0, skb_reserve was not called before commit: db65a3aaf29e. Fixes: db65a3aaf29e (netlink: Trim skb to alloc size to avoid MSG_TRUNC) Signed-off-by: Ken-ichirou MATSUZAWA Signed-off-by: David S. Miller net/netlink/af_netlink.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 7256eac13b0e6884355cf40f75db05785d18f5da Author: Li RongQing Date: Fri Jan 29 09:43:47 2016 +0800 vxlan: fix a out of bounds access in __vxlan_find_mac The size of all_zeros_mac is 6 byte, but eth_hash() will access the 8 byte, and KASan reported the below bug: [ 8596.479031] BUG: KASan: out of bounds access in __vxlan_find_mac+0x24/0x100 at addr ffffffff841514c0 [ 8596.487647] Read of size 8 by task ip/52820 [ 8596.490818] Address belongs to variable all_zeros_mac+0x0/0x40 [ 8596.496051] CPU: 0 PID: 52820 Comm: ip Tainted: G WC 4.1.15 #1 [ 8596.503520] Hardware name: HP ProLiant DL380p Gen8, BIOS P70 02/10/2014 [ 8596.509365] ffffffff841514c0 ffff88007450f0b8 ffffffff822fa5e1 0000000000000032 [ 8596.516112] ffff88007450f150 ffff88007450f138 ffffffff812dd58c ffff88007450f1d8 [ 8596.522856] ffffffff81113b80 0000000000000282 0000000000000001 ffffffff8101ee4d [ 8596.529599] Call Trace: [ 8596.530858] [] dump_stack+0x4f/0x7b [ 8596.535080] [] kasan_report_error+0x3bc/0x3f0 [ 8596.540258] [] ? __lock_acquire+0x90/0x2140 [ 8596.545245] [] ? save_stack_trace+0x2d/0x80 [ 8596.550234] [] kasan_report+0x40/0x50 [ 8596.554647] [] ? __vxlan_find_mac+0x24/0x100 [ 8596.559729] [] __asan_load8+0x69/0xa0 [ 8596.564141] [] __vxlan_find_mac+0x24/0x100 [ 8596.569033] [] vxlan_fdb_create+0x9d/0x570 it can be fixed by enlarging the all_zeros_mac to 8 byte, although it is harmless; eth_hash() will be called in other place with the memory which is larger and equal to 8 byte. Signed-off-by: Li RongQing Signed-off-by: David S. Miller drivers/net/vxlan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit be1faa92e83b1252d9200c59d8c98aab44463f1e Author: Vivien Didelot Date: Thu Jan 28 16:54:37 2016 -0500 net: dsa: mv88e6xxx: fix port VLAN maps Currently the port based VLAN maps should be configured to allow every port to egress frames on all other ports, except themselves. The debugfs interface shows that they are misconfigured. For instance, a 7-port switch has the following content in the related register 0x06: GLOBAL GLOBAL2 SERDES 0 1 2 3 4 5 6 ... 6: 1fa4 1f0f 4 7f 7e 7d 7c 7b 7a 79 ... This means that port 3 is allowed to talk to port 2-6, but cannot talk to ports 0 and 1. With this fix, port 3 can correctly talk to all ports except 3 itself: GLOBAL GLOBAL2 SERDES 0 1 2 3 4 5 6 ... 6: 1fa4 1f0f 4 7e 7d 7b 77 6f 5f 3f ... Fixes: ede8098d0fef ("net: dsa: mv88e6xxx: bridges do not need an FID") Reported-by: Kevin Smith Signed-off-by: Vivien Didelot Reviewed-by: Andrew Lunn Tested-by: Kevin Smith Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a5829f536b3d11a57617e83d4bcb2b7d70671e98 Author: Alexander Duyck Date: Thu Jan 28 13:42:24 2016 -0800 fib_trie: Fix shift by 32 in fib_table_lookup The fib_table_lookup function had a shift by 32 that triggered a UBSAN warning. This was due to the fact that I had placed the shift first and then followed it with the check for the suffix length to ignore the undefined behavior. If we reorder this so that we verify the suffix is less than 32 before shifting the value we can avoid the issue. Reported-by: Toralf Förster Signed-off-by: Alexander Duyck Signed-off-by: David S. Miller net/ipv4/fib_trie.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 59a557be385b66c1da20e9cfc6ff6c2e676c6804 Author: Arnd Bergmann Date: Thu Jan 28 17:54:33 2016 +0100 net: moxart: use correct accessors for DMA memory The moxart ethernet driver confuses coherent DMA buffers with MMIO registers. moxart_ether.c: In function 'moxart_mac_setup_desc_ring': moxart_ether.c:146:428: error: passing argument 1 of '__fswab32' makes integer from pointer without a cast [-Werror=int-conversion] moxart_ether.c:74:39: warning: incorrect type in argument 3 (different address spaces) moxart_ether.c:74:39: expected void *cpu_addr moxart_ether.c:74:39: got void [noderef] *tx_desc_base This leaves the basic logic alone and uses normal pointers for the virtual address of the descriptor. As we cannot use readl/writel to access them, we also introduce our own moxart_desc_read moxart_desc_write helpers that perform the same endianess swap as the original code, but without the address space conversion. The barriers are made explicit here where needed: Even in the worst-case scenario, we just have to use a rmb() after checking ownership so we don't read any input data before we are sure it is value, and we use wmb() before transferring ownership back to the device. Signed-off-by: Arnd Bergmann Signed-off-by: David S. Miller drivers/net/ethernet/moxa/moxart_ether.c | 46 +++++++++++++++++++++----------- drivers/net/ethernet/moxa/moxart_ether.h | 4 +-- 2 files changed, 32 insertions(+), 18 deletions(-) commit 52b79e2bdf92b07b37c805c50811eaf69a33683d Author: Arnd Bergmann Date: Thu Jan 28 17:39:24 2016 +0100 ipv4: ipconfig: avoid unused ic_proto_used symbol When CONFIG_PROC_FS, CONFIG_IP_PNP_BOOTP, CONFIG_IP_PNP_DHCP and CONFIG_IP_PNP_RARP are all disabled, we get a warning about the ic_proto_used variable being unused: net/ipv4/ipconfig.c:146:12: error: 'ic_proto_used' defined but not used [-Werror=unused-variable] This avoids the warning, by making the definition conditional on whether a dynamic IP configuration protocol is configured. If not, we know that the value is always zero, so we can optimize away the variable and all code that depends on it. Signed-off-by: Arnd Bergmann Signed-off-by: David S. Miller net/ipv4/ipconfig.c | 4 ++++ 1 file changed, 4 insertions(+) commit a07100e00ac42a4474530ce17b4978c9e06bde55 Author: Quinn Tran Date: Mon Dec 7 19:48:57 2015 -0500 qla2xxx: Fix TMR ABORT interaction issue between qla2xxx and TCM During lun reset, TMR thread from TCM would issue abort to qla driver. At abort time, each command is in different state. Depending on the state, qla will use the TMR thread to trigger a command free(cmd_kref--) if command is not down at firmware. Signed-off-by: Quinn Tran Signed-off-by: Himanshu Madhani Cc: stable@vger.kernel.org # 3.10+ Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_target.c | 55 +++++++++++++++++++--------- drivers/scsi/qla2xxx/qla_target.h | 59 +++++++++++++++++------------- drivers/scsi/qla2xxx/tcm_qla2xxx.c | 73 ++++++++++++++++++++++++++++++++++++-- 3 files changed, 142 insertions(+), 45 deletions(-) commit dacb58221805bb72ec46a73826c9e59a587d7d68 Author: Himanshu Madhani Date: Wed Jan 20 15:42:58 2016 -0800 qla2xxx: Fix warning reported by static checker This patch fixes following warning drivers/scsi/qla2xxx/qla_target.c:3587 qlt_do_ctio_completion() warn: impossible condition '(logged_out == 41) => (0-1 == 41)' drivers/scsi/qla2xxx/qla_target.c 3580 case CTIO_PORT_LOGGED_OUT: 3581 case CTIO_PORT_UNAVAILABLE: 3582 { 3583 bool logged_out = (status & 0xFFFF); 3584 ql_dbg(ql_dbg_tgt_mgt, vha, 0xf059, 3585 "qla_target(%d): CTIO with %s status %x " 3586 "received (state %x, se_cmd %p)\n", vha->vp_idx, 3587 (logged_out == CTIO_PORT_LOGGED_OUT) ? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Bool cannot equal 0x26. 3588 "PORT LOGGED OUT" : "PORT UNAVAILABLE", Reported-by: Dan Carpenter Signed-off-by: Himanshu Madhani Signed-off-by: Giridhar Malavali Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_target.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 8a9ebe717a133ba7bc90b06047f43cc6b8bcb8b3 Author: Mike Christie Date: Mon Jan 18 14:09:27 2016 -0600 target: Fix WRITE_SAME/DISCARD conversion to linux 512b sectors In a couple places we are not converting to/from the Linux block layer 512 bytes sectors. 1. The request queue values and what we do are a mismatch of things: max_discard_sectors - This is in linux block layer 512 byte sectors. We are just copying this to max_unmap_lba_count. discard_granularity - This is in bytes. We are converting it to Linux block layer 512 byte sectors. discard_alignment - This is in bytes. We are just copying this over. The problem is that the core LIO code exports these values in spc_emulate_evpd_b0 and we use them to test request arguments in sbc_execute_unmap, but we never convert to the block size we export to the initiator. If we are not using 512 byte sectors then we are exporting the wrong values or are checks are off. And, for the discard_alignment/bytes case we are just plain messed up. 2. blkdev_issue_discard's start and number of sector arguments are supposed to be in linux block layer 512 byte sectors. We are currently passing in the values we get from the initiator which might be based on some other sector size. There is a similar problem in iblock_execute_write_same where the bio functions want values in 512 byte sectors but we are passing in what we got from the initiator. Signed-off-by: Mike Christie Cc: stable@vger.kernel.org # 3.10+ Signed-off-by: Nicholas Bellinger drivers/target/target_core_device.c | 44 +++++++++++++++++++++++++++ drivers/target/target_core_file.c | 29 ++++++------------ drivers/target/target_core_iblock.c | 58 +++++++++--------------------------- include/target/target_core_backend.h | 3 ++ 4 files changed, 70 insertions(+), 64 deletions(-) commit 3db70a853202c252a8ebefa71ccb088ad149cdd2 Author: Bob Liu Date: Wed Nov 25 17:52:55 2015 -0500 xen/blkfront: realloc ring info in blkif_resume Need to reallocate ring info in the resume path, because info->rinfo was freed in blkif_free(). And 'multi-queue-max-queues' backend reports may have been changed. Signed-off-by: Bob Liu Reported-and-Tested-by: Konrad Rzeszutek Wilk Signed-off-by: Konrad Rzeszutek Wilk drivers/block/xen-blkfront.c | 74 +++++++++++++++++++++++++++----------------- 1 file changed, 45 insertions(+), 29 deletions(-) commit 45eb570a0db3391c88cba04510a20fe7e4125497 Author: Dan Williams Date: Fri Jan 29 17:42:51 2016 -0800 libnvdimm, pfn: fix restoring memmap location This path was missed when turning on the memmap in pmem support. Permit 'pmem' as a valid location for the map. Reported-by: Jeff Moyer Signed-off-by: Dan Williams drivers/nvdimm/pfn_devs.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 0260a2f4e2cabb998f5add733e042a7375bca3b4 Merge: df3eb6c d612a57 Author: David S. Miller Date: Fri Jan 29 17:28:40 2016 -0800 Merge branch 'bnxt_en-fixes' Michael Chan says: ==================== bnxt_en: Bug fixes. 3 small bug fix patches for net. ==================== Signed-off-by: David S. Miller commit d612a579771385e08f7b665063b36bfa52c03ea3 Author: Michael Chan Date: Thu Jan 28 03:11:22 2016 -0500 bnxt_en: Fix crash in bnxt_free_tx_skbs() during tx timeout. The ring index j is not wrapped properly at the end of the ring, causing it to reference pointers past the end of the ring. For proper loop termination and to access the ring properly, we need to increment j and mask it before referencing the ring entry. Signed-off-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 8a4d4c8dde7a4119bce3fd8287dca193ff6356da Author: Michael Chan Date: Thu Jan 28 03:11:21 2016 -0500 bnxt_en: Exclude rx_drop_pkts hw counter from the stack's rx_dropped counter. This hardware counter is misleading as it counts dropped packets that don't match the hardware filters for unicast/broadcast/multicast. We will still report this counter in ethtool -S for diagnostics purposes. Signed-off-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt.c | 2 -- 1 file changed, 2 deletions(-) commit 74608fc98d2856fa7201a498b61c9dd9455b504a Author: Prashant Sreedharan Date: Thu Jan 28 03:11:20 2016 -0500 bnxt_en: Ring free response from close path should use completion ring Use completion ring for ring free response from firmware. The response will be the last entry in the ring and we can free the ring after getting the response. This will guarantee no spurious DMA to freed memory. Signed-off-by: Prashant Sreedharan Signed-off-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit df3eb6cd68924d5ea16032faecae7fb775f67883 Author: Bernie Harris Date: Thu Jan 28 16:30:51 2016 +1300 net_sched: drr: check for NULL pointer in drr_dequeue There are cases where qdisc_dequeue_peeked can return NULL, and the result is dereferenced later on in the function. Similarly to the other qdisc dequeue functions, check whether the skb pointer is NULL and if it is, goto out. Signed-off-by: Bernie Harris Reviewed-by: Cong Wang Signed-off-by: David S. Miller net/sched/sch_drr.c | 2 ++ 1 file changed, 2 insertions(+) commit 60c7e2d2edc7a2a3613540e18760a713359946f6 Merge: eac2d86 8931f8e Author: Stephen Boyd Date: Fri Jan 29 17:24:28 2016 -0800 Merge tag 'v4.5-rockchip-clkfixes1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into clk-fixes Pull rockchip fixes from Heiko Stuebner: Fixes for wrong register offsets in both rk3036 and rk3368. Also rename the external input for the emac on rk3036, which should still be ok to do, as that binding was only introduced during this merge-window. * tag 'v4.5-rockchip-clkfixes1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: clk: rockchip: rk3368: fix some clock gates clk: rockchip: rk3036: rename emac ext source clock clk: rockchip: rk3036: fix the div offset for emac clock clk: rockchip: rk3036: fix uarts clock error clk: rockchip: rk3036: fix the FLAGs for clock mux commit ad0b40fa944628d6f30b40266a599b285d70a266 Merge: ec1cc55 03590cb Author: Linus Torvalds Date: Fri Jan 29 16:16:12 2016 -0800 Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm Pull ARM fixes from Russell King: "Just one fix for a -fstack-protector-strong problem from Kees Cook, and adding the new copy_file_range syscall" * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: ARM: wire up copy_file_range() syscall ARM: 8500/1: fix atags_to_fdt with stack-protector-strong commit ec1cc55d6fa0b34029419634125fadc77dce1e88 Merge: 6b292a8 2d19fc6 Author: Linus Torvalds Date: Fri Jan 29 16:10:16 2016 -0800 Merge tag 'powerpc-4.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux Pull powerpc fixes from Michael Ellerman: - Wire up copy_file_range() syscall from Chandan Rajendra - Simplify module TOC handling from Alan Modra - Remove newly added extra definition of pmd_dirty from Stephen Rothwell - Allow user space to map rtas_rmo_buf from Vasant Hegde - Fix PE location code from Gavin Shan - Remove PPMU_HAS_SSLOT flag for Power8 from Madhavan Srinivasan - Fixup _HPAGE_CHG_MASK from Aneesh Kumar K.V * tag 'powerpc-4.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: powerpc/mm: Fixup _HPAGE_CHG_MASK powerpc/perf: Remove PPMU_HAS_SSLOT flag for Power8 powerpc/eeh: Fix PE location code powerpc/mm: Allow user space to map rtas_rmo_buf powerpc: Remove newly added extra definition of pmd_dirty powerpc: Simplify module TOC handling powerpc: Wire up copy_file_range() syscall commit 6b292a8abd8113410a25a179ac13a1a6e1c9d451 Merge: d3f71ae 9f3d6d7 Author: Linus Torvalds Date: Fri Jan 29 16:05:18 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux Pull s390 updates from Martin Schwidefsky: "An optimization for irq-restore, the SSM instruction is quite a bit slower than an if-statement and a STOSM. The copy_file_range system all is added. Cleanup for PCI and CIO. And a couple of bug fixes" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: s390/cio: update measurement characteristics s390/cio: ensure consistent measurement state s390/cio: fix measurement characteristics memleak s390/zcrypt: Fix cryptographic device id in kernel messages s390/pci: remove iomap sanity checks s390/pci: set error state for unusable functions s390/pci: fix bar check s390/pci: resize iomap s390/pci: improve ZPCI_* macros s390/pci: provide ZPCI_ADDR macro s390/pci: adjust IOMAP_MAX_ENTRIES s390/numa: move numa_init_late() from device to arch_initcall s390: remove all usages of PSW_ADDR_INSN s390: remove all usages of PSW_ADDR_AMODE s390: wire up copy_file_range syscall s390: remove superfluous memblock_alloc() return value checks s390/numa: allocate memory with correct alignment s390/irqflags: optimize irq restore s390/mm: use TASK_MAX_SIZE where applicable commit d3f71ae711cebdeaff12989761f48bd4230e83d5 Merge: 46552e6 e410e34 Author: Linus Torvalds Date: Fri Jan 29 15:46:49 2016 -0800 Merge branch 'for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs Pull btrfs fixes from Chris Mason: "Dave had a small collection of fixes to the new free space tree code, one of which was keeping our sysfs files more up to date with feature bits as different things get enabled (lzo, raid5/6, etc). I should have kept the sysfs stuff for rc3, since we always manage to trip over something. This time it was GFP_KERNEL from somewhere that is NOFS only. Instead of rebasing it out I've put a revert in, and we'll fix it properly for rc3. Otherwise, Filipe fixed a btrfs DIO race and Qu Wenruo fixed up a use-after-free in our tracepoints that Dave Jones reported" * 'for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: Revert "btrfs: synchronize incompat feature bits with sysfs files" btrfs: don't use GFP_HIGHMEM for free-space-tree bitmap kzalloc btrfs: sysfs: check initialization state before updating features Revert "btrfs: clear PF_NOFREEZE in cleaner_kthread()" btrfs: async-thread: Fix a use-after-free error for trace Btrfs: fix race between fsync and lockless direct IO writes btrfs: add free space tree to the cow-only list btrfs: add free space tree to lockdep classes btrfs: tweak free space tree bitmap allocation btrfs: tests: switch to GFP_KERNEL btrfs: synchronize incompat feature bits with sysfs files btrfs: sysfs: introduce helper for syncing bits with sysfs files btrfs: sysfs: add free-space-tree bit attribute btrfs: sysfs: fix typo in compat_ro attribute definition commit 46552e68acf71752c2330929cb97c644e4560155 Merge: ad233ac ad1ac94 Author: Linus Torvalds Date: Fri Jan 29 15:40:59 2016 -0800 Merge tag 'pm+acpi-4.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull power management and ACPI fixes from Rafael Wysocki: "These are: cpuidle fixes (including one fix for a recent regression), cpufreq fixes (including fixes for two issues introduced during the 4.2 cycle), generic power domains framework fixes (two locking fixes and one cleanup), one locking fix in the ACPI-based PCI hotplug framework (ACPIPHP), removal of one ACPI backlight blacklist entry that isn't necessary any more and a PM Kconfig cleanup. Specifics: - Fix a recent cpuidle core regression that broke suspend-to-idle on all systems where cpuidle drivers don't provide ->enter_freeze callbacks for any states (Sudeep Holla). - Drop an unnecessary symbol definition from the cpuidle core code handling coupled CPU cores (Anders Roxell). - Fix a race condition related to governor initialization and removal in the cpufreq core (Viresh Kumar). - Clean up the cpufreq core to use list_is_last() for checking if the given policy object is the last element of a list instead of open coding that in a clumsy way (Gautham R Shenoy). - Fix compiler warnings in the pxa2xx and cpufreq-dt cpufreq drivers (Arnd Bergmann). - Fix two locking issues and clean up a comment in the generic power domains framework (Ulf Hansson, Marek Szyprowski, Moritz Fischer). - Fix the error code path of one function in the ACPI-based PCI hotplug framework (ACPIPHP) that forgets to release a lock acquired previously (Insu Yun). - Drop the ACPI backlight blacklist entry for Dell Inspiron 5737 that is not necessary any more (Hans de Goede). - Clean up the top-level PM Kconfig to stop requiring APM emulation to depend on PM which in fact isn't necessary (Arnd Bergmann)" * tag 'pm+acpi-4.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: cpufreq: cpufreq-dt: avoid uninitialized variable warnings: cpufreq: pxa2xx: fix pxa_cpufreq_change_voltage prototype PM: APM_EMULATION does not depend on PM cpufreq: Use list_is_last() to check last entry of the policy list cpufreq: Fix NULL reference crash while accessing policy->governor_data cpuidle: coupled: remove unused define cpuidle_coupled_lock PM / Domains: Fix typo in comment PM / Domains: Fix potential deadlock while adding/removing subdomains ACPI / PCI / hotplug: unlock in error path in acpiphp_enable_slot() ACPI: Revert "ACPI / video: Add Dell Inspiron 5737 to the blacklist" cpuidle: fix fallback mechanism for suspend to idle in absence of enter_freeze PM / domains: fix lockdep issue for all subdomains commit ad233aca21509d337c78d32a50d2116cd6943031 Merge: 2973737 3867444 Author: Linus Torvalds Date: Fri Jan 29 15:19:42 2016 -0800 Merge branch 'stable/for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb Pull swiotlb patchlet from Konrad Rzeszutek Wilk: "One trivial patch. Another patch (from Fengguang) is already in your tree courtesy of Andrew Morton - but I would prefer not to rebase my tree. Hence the diff is very small" * 'stable/for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb: swiotlb: Make linux/swiotlb.h standalone includible MAINTAINERS: add git URL for swiotlb commit 29737370120b0570ac52e334cfc4117d68b3d044 Merge: f6a239a a39bb9a Author: Linus Torvalds Date: Fri Jan 29 15:13:48 2016 -0800 Merge branch 'stable/for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/mm Pull cleancache cleanups from Konrad Rzeszutek Wilk: "Simple cleanups" * 'stable/for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/mm: include/linux/cleancache.h: Clean up code cleancache: constify cleancache_ops structure commit f6a239a927905278fe378670d5d880f3aa157bdf Merge: f51d4d7 0d9bacb Author: Linus Torvalds Date: Fri Jan 29 15:05:49 2016 -0800 Merge tag 'iommu-fixes-v4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu Pull IOMMU fixes from Joerg Roedel: "Five patches queued up: - Two patches for the AMD and Intel IOMMU drivers to fix alias handling and ATS handling. - Fix build error with arm io-pgtable code - Two documentation fixes" * tag 'iommu-fixes-v4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: iommu: Update struct iommu_ops comments iommu/vt-d: Fix link to Intel IOMMU Specification iommu/amd: Correct the wrong setting of alias DTE in do_attach iommu/vt-d: Don't skip PCI devices when disabling IOTLB iommu/io-pgtable-arm: Fix io-pgtable-arm build failure commit f51d4d7826d64dee2c421267c7bd44c4d52805c5 Merge: a12883f 60dee3c Author: Linus Torvalds Date: Fri Jan 29 13:20:39 2016 -0800 Merge tag 'hwmon-for-linus-v4.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging Pull hwmon fixes from Guenter Roeck: - Use bit mask to calculate tdp limit in fam15h_power driver - Black-list Dell Studio XPS 8000 in dell-smm driver * tag 'hwmon-for-linus-v4.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: hwmon: (fam15h_power) Add bit masking for tdp_limit hwmon: (dell-smm) Blacklist Dell Studio XPS 8000 commit a12883f0af7a4ccc74381395fab5912784183efe Merge: 13d5699 6344a5c Author: Linus Torvalds Date: Fri Jan 29 13:14:45 2016 -0800 Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi Pull SCSI fixes from James Bottomley: "Four fixes: one to try to fix our repeated intermittent crashes in suspend/resume, one to correct a regression in the optimal I/O size reporting and a couple for randconfig build failures in the hisi_sas driver" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: SCSI: fix crashes in sd and sr runtime PM sd: Optimal I/O size is in bytes, not sectors hisi_sas: Restrict SCSI_HISI_SAS to arm64 hisi_sas: SCSI_HISI_SAS should depend on HAS_DMA commit 13d569900792fdc3a46dda48d1d2bf46febdc0bc Merge: b545443 d0e5fbb Author: Linus Torvalds Date: Fri Jan 29 12:56:08 2016 -0800 Merge branch 'for-linus' of git://git.kernel.dk/linux-block Pull block layer fix from Jens Axboe: "This just contains the fix for the split issue that we had in -rc1. It's been well tested at this point, so let's get it in mainline so we don't have the same split issue for -rc2" * 'for-linus' of git://git.kernel.dk/linux-block: block: fix bio splitting on max sectors commit ad1ac94767aa9d74c6533e33e768a14d2715162f Merge: 0bce39c 75274b3 b331bc2 a3d09c7 993e9fe Author: Rafael J. Wysocki Date: Fri Jan 29 21:45:17 2016 +0100 Merge branches 'pm-cpuidle', 'pm-cpufreq', 'pm-domains' and 'pm-sleep' * pm-cpuidle: cpuidle: coupled: remove unused define cpuidle_coupled_lock cpuidle: fix fallback mechanism for suspend to idle in absence of enter_freeze * pm-cpufreq: cpufreq: cpufreq-dt: avoid uninitialized variable warnings: cpufreq: pxa2xx: fix pxa_cpufreq_change_voltage prototype cpufreq: Use list_is_last() to check last entry of the policy list cpufreq: Fix NULL reference crash while accessing policy->governor_data * pm-domains: PM / Domains: Fix typo in comment PM / Domains: Fix potential deadlock while adding/removing subdomains PM / domains: fix lockdep issue for all subdomains * pm-sleep: PM: APM_EMULATION does not depend on PM commit 0bce39ccb2efab511dd1a08e3a3b4b5e1590ec9f Merge: 92e963f b186b4d 2c3033a Author: Rafael J. Wysocki Date: Fri Jan 29 21:44:53 2016 +0100 Merge branches 'acpi-video' and 'acpi-hotplug' * acpi-video: ACPI: Revert "ACPI / video: Add Dell Inspiron 5737 to the blacklist" * acpi-hotplug: ACPI / PCI / hotplug: unlock in error path in acpiphp_enable_slot() commit b83ef507d9e2bc25cea40b1fb13ebd1ca7c4969a Author: Kefeng Wang Date: Thu Jan 28 10:27:19 2016 +0800 ptp: ixp46x: use helpers for converting ns to timespec Convert the driver to use ns_to_timespec64() and timespec64_to_ns() instead of open coding the same logic. Signed-off-by: Kefeng Wang Acked-by: Richard Cochran Signed-off-by: David S. Miller drivers/ptp/ptp_ixp46x.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit b54544322e818c692e360fd37b0eb30ec8b3172f Merge: b943d0b 6639484 Author: Linus Torvalds Date: Fri Jan 29 12:34:39 2016 -0800 Merge tag 'sound-4.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "There are a few fixes in ALSA core for bugs that have been spotted by fuzzer. Also a temporary workaround for PowerPC (and possibly other) builds with incompatible ioctls was applied to compress API. Other than that, a few trivial fixes and quirks for FireWire BeBoB, USB-audio and HD-audio are found, too" * tag 'sound-4.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: hda - disable dynamic clock gating on Broxton before reset ALSA: hda - Add new GPU codec ID 0x10de0083 to snd-hda ALSA: dummy: Disable switching timer backend via sysfs ALSA: timer: fix SND_PCM_TIMER Kconfig text ALSA: Add missing dependency on CONFIG_SND_TIMER ALSA: bebob: Use a signed return type for get_formation_index ALSA: usb-audio: Fix TEAC UD-501/UD-503/NT-503 usb delay ALSA: compress: Disable GET_CODEC_CAPS ioctl for some architectures ALSA: seq: Degrade the error message for too many opens ALSA: seq: Fix incorrect sanity check at snd_seq_oss_synth_cleanup() commit b943d0b9c7c5162d81a1dc7e83315550131c7164 Merge: 704bb81 d8b8eb8 Author: Linus Torvalds Date: Fri Jan 29 12:28:45 2016 -0800 Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux Pull drm fixes from Dave Airlie: "Summary: - Misc amdgpu/radeon fixes - VC4 build fix - vmwgfx fix - misc rockchip fixes The etnaviv guys had an API feature they wanted in their first release, so I've merged that with their fixes" * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (41 commits) drm/vmwgfx: respect 'nomodeset' drm/amdgpu: only move pt bos in LRU list on success drm/radeon: fix DP audio support for APU with DCE4.1 display engine drm/radeon: Add a common function for DFS handling drm/radeon: cleaned up VCO output settings for DP audio drm/amd/powerplay: Update SMU firmware loading for Stoney drm/etnaviv: call correct function when trying to vmap a DMABUF drm/etnaviv: rename etnaviv_gem_vaddr to etnaviv_gem_vmap drm/etnaviv: fix get pages error path in etnaviv_gem_vaddr drm/etnaviv: fix memory leak in IOMMU init path drm/etnaviv: add further minor features and varyings count drm/etnaviv: add helper for comparing model/revision IDs drm/etnaviv: add helper to extract bitfields drm/etnaviv: use defined constants for the chip model drm/etnaviv: update common and state_hi xml.h files drm/etnaviv: ignore VG GPUs with FE2.0 drm/amdgpu: don't init fbdev if we don't have any connectors drm/radeon: only init fbdev if we have connectors drm/radeon: Ensure radeon bo is unreserved in radeon_gem_va_ioctl drm/etnaviv: fix failure path if model is zero ... commit 704bb813c2202f140d6c364a1703b0265473218f Merge: 26cd836 1c1ecf1 Author: Linus Torvalds Date: Fri Jan 29 12:24:05 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security Pull security layer fixes from James Morris: "The keys patch fixes a bug which is breaking kerberos, and the seccomp fix addresses a no_new_privs bypass" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: KEYS: Only apply KEY_FLAG_KEEP to a key if a parent keyring has it set seccomp: always propagate NO_NEW_PRIVS on tsync commit 21603fc45bdef3696f45d80a1c9d730e06b925c5 Author: Jörg Thalheim Date: Wed Jan 27 22:54:06 2016 +0100 tcp: Change reference to experimental CWND RFC. Signed-off-by: Jörg Thalheim Signed-off-by: David S. Miller include/net/tcp.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit de7d244d0a351f27cfef5f51088ea9a64054c948 Author: Nikolay Aleksandrov Date: Wed Jan 27 17:50:43 2016 +0100 macvlan: make operstate and carrier more accurate Currently when a macvlan is being initialized and the lower device is netif_carrier_ok(), the macvlan device doesn't run through rfc2863_policy() and is left with UNKNOWN operstate. Fix it by adding an unconditional linkwatch event for the new macvlan device. Similar fix is already used by the 8021q device (see register_vlan_dev()). Also fix the inconsistent state when the lower device has been down and its carrier was changed (when a device is down NETDEV_CHANGE doesn't get generated). The second issue can be seen f.e. when we have a macvlan on top of a 8021q device which has been down and its real device has been changing carrier states, after setting the 8021q device up, the macvlan device will have the same carrier state as it was before even though the 8021q can now have a different state. Example for case 1: 4: eth2: mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 $ ip l add l eth2 macvl0 type macvlan $ ip l set macvl0 up $ ip l sh macvl0 72: macvl0@eth2: mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT group default link/ether f6:0b:54:0a:9d:a3 brd ff:ff:ff:ff:ff:ff Example for case 2 (order is important): Prestate: eth2 UP/CARRIER, vlan1 down, vlan1-macvlan down $ ip l set vlan1-macvlan up $ ip l sh vlan1-macvlan 71: vlan1-macvlan@vlan1: mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT group default link/ether 4a:b8:44:56:b9:b9 brd ff:ff:ff:ff:ff:ff [ eth2 loses CARRIER before vlan1 has been UP-ed ] $ ip l sh eth2 4: eth2: mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000 link/ether 52:54:00:bf:57:16 brd ff:ff:ff:ff:ff:ff $ ip l sh vlan1-macvlan 71: vlan1-macvlan@vlan1: mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT group default link/ether 4a:b8:44:56:b9:b9 brd ff:ff:ff:ff:ff:ff $ ip l set vlan1 up $ ip l sh vlan1 70: vlan1@eth2: mtu 1500 qdisc noqueue state LOWERLAYERDOWN mode DEFAULT group default qlen 1000 link/ether 52:54:00:bf:57:16 brd ff:ff:ff:ff:ff:ff $ ip l sh vlan1-macvlan 71: vlan1-macvlan@vlan1: mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT group default link/ether 4a:b8:44:56:b9:b9 brd ff:ff:ff:ff:ff:ff vlan1-macvlan is still UP, still has carrier and is still in the same operstate as before. After the patch in case 1 macvl0 has state UP as it should and in case 2 vlan1-macvlan has state LOWERLAYERDOWN again as it should. Note that while the lower macvlan device is down their carrier and thus operstate can go out of sync but that will be fixed once the lower device goes up again. This behaviour seems to have been present since beginning of git history. Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller drivers/net/macvlan.c | 2 ++ 1 file changed, 2 insertions(+) commit 4d5cfcba2f6ec494d8810b9e3c0a7b06255c8067 Author: Parthasarathy Bhuvaragan Date: Wed Jan 27 11:35:59 2016 +0100 tipc: fix connection abort during subscription cancel In 'commit 7fe8097cef5f ("tipc: fix nullpointer bug when subscribing to events")', we terminate the connection if the subscription creation fails. In the same commit, the subscription creation result was based on the value of the subscription pointer (set in the function) instead of the return code. Unfortunately, the same function tipc_subscrp_create() handles subscription cancel request. For a subscription cancellation request, the subscription pointer cannot be set. Thus if a subscriber has several subscriptions and cancels any of them, the connection is terminated. In this commit, we terminate the connection based on the return value of tipc_subscrp_create(). Fixes: commit 7fe8097cef5f ("tipc: fix nullpointer bug when subscribing to events") Reviewed-by: Jon Maloy Signed-off-by: Parthasarathy Bhuvaragan Signed-off-by: David S. Miller net/tipc/subscr.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 286af315d3f153595ce718fb1e442891f14ed5c0 Author: Kefeng Wang Date: Wed Jan 27 17:34:37 2016 +0800 net: cavium: liquidio: use helpers ns_to_timespec64() Convert the driver to use ns_to_timespec64() to keep consistency with timespec64_to_ns() instead of open coding the same logic. Signed-off-by: Kefeng Wang Signed-off-by: David S. Miller drivers/net/ethernet/cavium/liquidio/lio_main.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 63e51b6a24f1bee5363056b7aee3a468b12c546b Author: Eric Dumazet Date: Tue Jan 26 16:59:42 2016 -0800 ipv4: early demux should be aware of fragments We should not assume a valid protocol header is present, as this is not the case for IPv4 fragments. Lets avoid extra cache line misses and potential bugs if we actually find a socket and incorrectly uses its dst. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/ip_input.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit eac2d86d60449bc9852f94853cc156897fe9e893 Author: Marc Gonzalez Date: Fri Jan 29 15:07:22 2016 +0100 clk: tango4: rename ARCH_TANGOX to ARCH_TANGO Requested by arm-soc maintainer Kevin Hilman in v9 review. http://article.gmane.org/gmane.linux.ports.arm.kernel/456331 Signed-off-by: Marc Gonzalez Signed-off-by: Stephen Boyd drivers/clk/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d22eb66b3cc3d7d486bc9fa8c6fdbce197eede5f Author: Axel Lin Date: Fri Dec 4 14:51:36 2015 +0800 clk: scpi: Fix checking return value of platform_device_register_simple() platform_device_register_simple() returns ERR_PTR on error. Signed-off-by: Axel Lin Signed-off-by: Stephen Boyd drivers/clk/clk-scpi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1ce133ec89027dc2dff6d0784564da27f1c21fdc Author: Stephen Boyd Date: Fri Jan 8 09:35:58 2016 -0800 clk: mvebu: Mark ioremapped memory as __iomem Silence the following sparse warning drivers/clk/mvebu/dove-divider.c:252:14: warning: incorrect type in assignment (different address spaces) drivers/clk/mvebu/dove-divider.c:252:14: expected void *base drivers/clk/mvebu/dove-divider.c:252:14: got void [noderef] * drivers/clk/mvebu/dove-divider.c:256:13: warning: incorrect type in argument 2 (different address spaces) drivers/clk/mvebu/dove-divider.c:256:13: expected void [noderef] *base drivers/clk/mvebu/dove-divider.c:256:13: got void *base drivers/clk/mvebu/dove-divider.c:257:25: warning: incorrect type in argument 1 (different address spaces) drivers/clk/mvebu/dove-divider.c:257:25: expected void volatile [noderef] *iomem_cookie drivers/clk/mvebu/dove-divider.c:257:25: got void *base Cc: Russell King Signed-off-by: Stephen Boyd drivers/clk/mvebu/dove-divider.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 23d11a58a9a60dcb52c8fc6494efce908b24c295 Author: Tejun Heo Date: Fri Jan 29 05:59:46 2016 -0500 workqueue: skip flush dependency checks for legacy workqueues fca839c00a12 ("workqueue: warn if memory reclaim tries to flush !WQ_MEM_RECLAIM workqueue") implemented flush dependency warning which triggers if a PF_MEMALLOC task or WQ_MEM_RECLAIM workqueue tries to flush a !WQ_MEM_RECLAIM workquee. This assumes that workqueues marked with WQ_MEM_RECLAIM sit in memory reclaim path and making it depend on something which may need more memory to make forward progress can lead to deadlocks. Unfortunately, workqueues created with the legacy create*_workqueue() interface always have WQ_MEM_RECLAIM regardless of whether they are depended upon memory reclaim or not. These spurious WQ_MEM_RECLAIM markings cause spurious triggering of the flush dependency checks. WARNING: CPU: 0 PID: 6 at kernel/workqueue.c:2361 check_flush_dependency+0x138/0x144() workqueue: WQ_MEM_RECLAIM deferwq:deferred_probe_work_func is flushing !WQ_MEM_RECLAIM events:lru_add_drain_per_cpu ... Workqueue: deferwq deferred_probe_work_func [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [] (show_stack) from [] (dump_stack+0x94/0xd4) [] (dump_stack) from [] (warn_slowpath_common+0x80/0xb0) [] (warn_slowpath_common) from [] (warn_slowpath_fmt+0x30/0x40) [] (warn_slowpath_fmt) from [] (check_flush_dependency+0x138/0x144) [] (check_flush_dependency) from [] (flush_work+0x50/0x15c) [] (flush_work) from [] (lru_add_drain_all+0x130/0x180) [] (lru_add_drain_all) from [] (migrate_prep+0x8/0x10) [] (migrate_prep) from [] (alloc_contig_range+0xd8/0x338) [] (alloc_contig_range) from [] (cma_alloc+0xe0/0x1ac) [] (cma_alloc) from [] (__alloc_from_contiguous+0x38/0xd8) [] (__alloc_from_contiguous) from [] (__dma_alloc+0x240/0x278) [] (__dma_alloc) from [] (arm_dma_alloc+0x54/0x5c) [] (arm_dma_alloc) from [] (dmam_alloc_coherent+0xc0/0xec) [] (dmam_alloc_coherent) from [] (ahci_port_start+0x150/0x1dc) [] (ahci_port_start) from [] (ata_host_start.part.3+0xc8/0x1c8) [] (ata_host_start.part.3) from [] (ata_host_activate+0x50/0x148) [] (ata_host_activate) from [] (ahci_host_activate+0x44/0x114) [] (ahci_host_activate) from [] (ahci_platform_init_host+0x1d8/0x3c8) [] (ahci_platform_init_host) from [] (tegra_ahci_probe+0x448/0x4e8) [] (tegra_ahci_probe) from [] (platform_drv_probe+0x50/0xac) [] (platform_drv_probe) from [] (driver_probe_device+0x214/0x2c0) [] (driver_probe_device) from [] (bus_for_each_drv+0x60/0x94) [] (bus_for_each_drv) from [] (__device_attach+0xb0/0x114) [] (__device_attach) from [] (bus_probe_device+0x84/0x8c) [] (bus_probe_device) from [] (deferred_probe_work_func+0x68/0x98) [] (deferred_probe_work_func) from [] (process_one_work+0x120/0x3f8) [] (process_one_work) from [] (worker_thread+0x38/0x55c) [] (worker_thread) from [] (kthread+0xdc/0xf4) [] (kthread) from [] (ret_from_fork+0x14/0x3c) Fix it by marking workqueues created via create*_workqueue() with __WQ_LEGACY and disabling flush dependency checks on them. Signed-off-by: Tejun Heo Reported-and-tested-by: Thierry Reding Link: http://lkml.kernel.org/g/20160126173843.GA11115@ulmo.nvidia.com Fixes: fca839c00a12 ("workqueue: warn if memory reclaim tries to flush !WQ_MEM_RECLAIM workqueue") include/linux/workqueue.h | 9 +++++---- kernel/workqueue.c | 3 ++- 2 files changed, 7 insertions(+), 5 deletions(-) commit 6ccd83714a009ee301b50c15f6c3a5dc1f30164c Author: Steven Rostedt Date: Fri Jan 29 10:22:41 2016 -0500 tracing/stacktrace: Show entire trace if passed in function not found When a max stack trace is discovered, the stack dump is saved. In order to not record the overhead of the stack tracer, the ip of the traced function is looked for within the dump. The trace is started from the location of that function. But if for some reason the ip is not found, the entire stack trace is then truncated. That's not very useful. Instead, print everything if the ip of the traced function is not found within the trace. This issue showed up on s390. Link: http://lkml.kernel.org/r/20160129102241.1b3c9c04@gandalf.local.home Fixes: 72ac426a5bb0 ("tracing: Clean up stack tracing and fix fentry updates") Cc: stable@vger.kernel.org # v4.3+ Reported-by: Heiko Carstens Tested-by: Heiko Carstens Signed-off-by: Steven Rostedt kernel/trace/trace_stack.c | 7 +++++++ 1 file changed, 7 insertions(+) commit f1d51595a2a54d725cd6a21dd54508335a14ab90 Author: Insu Yun Date: Fri Jan 29 10:56:11 2016 -0500 ALSA: emu10k1: correctly handling failed thread creation Since kthread_create can be failed, it needs to check whether error occurred and return error code. Signed-off-by: Insu Yun Signed-off-by: Takashi Iwai sound/pci/emu10k1/emu10k1_main.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 1b3c993a699bed282e47c3f7c49d539c331dae04 Author: Lev Lybin Date: Fri Jan 29 22:55:11 2016 +0700 ALSA: usb-audio: Add quirk for Microsoft LifeCam HD-6000 Microsoft LifeCam HD-6000 (045e:076f) requires the similar quirk for avoiding the stall due to the invalid sample rate reads. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=111491 Signed-off-by: Lev Lybin Cc: Signed-off-by: Takashi Iwai sound/usb/quirks.c | 1 + 1 file changed, 1 insertion(+) commit e410e34fad913dd568ec28d2a9949694324c14db Author: Chris Mason Date: Fri Jan 29 08:19:37 2016 -0800 Revert "btrfs: synchronize incompat feature bits with sysfs files" This reverts commit 14e46e04958df740c6c6a94849f176159a333f13. This ends up doing sysfs operations from deep in balance (where we should be GFP_NOFS) and under heavy balance load, we're making races against sysfs internals. Revert it for now while we figure things out. Signed-off-by: Chris Mason fs/btrfs/free-space-tree.c | 7 ------- fs/btrfs/ioctl.c | 4 ---- fs/btrfs/super.c | 4 ---- fs/btrfs/volumes.c | 2 -- 4 files changed, 17 deletions(-) commit 6c55d9b98335f7f6bd5f061866ff1633401f3a44 Author: Mika Westerberg Date: Fri Jan 29 16:49:47 2016 +0200 serial: 8250_pci: Add Intel Broadwell ports Some recent (early 2015) macbooks have Intel Broadwell where LPSS UARTs are PCI enumerated instead of ACPI. The LPSS UART block is pretty much same as used on Intel Baytrail so we can reuse the existing Baytrail setup code. Add both Broadwell LPSS UART ports to the list of supported devices. Signed-off-by: Leif Liddy Signed-off-by: Mika Westerberg Reviewed-by: Andy Shevchenko Reviewed-by: Heikki Krogerus Cc: stable Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_pci.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) commit f39ea2690bd61efec97622c48323f40ed6e16317 Author: Chris Bainbridge Date: Wed Jan 27 15:46:18 2016 +0000 mac80211: fix use of uninitialised values in RX aggregation Use kzalloc instead of kmalloc for struct tid_ampdu_rx to initialize the "removed" field (all others are initialized manually). That fixes: UBSAN: Undefined behaviour in net/mac80211/rx.c:932:29 load of value 2 is not a valid value for type '_Bool' CPU: 3 PID: 1134 Comm: kworker/u16:7 Not tainted 4.5.0-rc1+ #265 Workqueue: phy0 rt2x00usb_work_rxdone 0000000000000004 ffff880254a7ba50 ffffffff8181d866 0000000000000007 ffff880254a7ba78 ffff880254a7ba68 ffffffff8188422d ffffffff8379b500 ffff880254a7bab8 ffffffff81884747 0000000000000202 0000000348620032 Call Trace: [] dump_stack+0x45/0x5f [] ubsan_epilogue+0xd/0x40 [] __ubsan_handle_load_invalid_value+0x67/0x70 [] ieee80211_sta_reorder_release.isra.16+0x5ed/0x730 [] ieee80211_prepare_and_rx_handle+0xd04/0x1c00 [] __ieee80211_rx_handle_packet+0x1f3/0x750 [] ieee80211_rx_napi+0x447/0x990 While at it, convert to use sizeof(*tid_agg_rx) instead. Fixes: 788211d81bfdf ("mac80211: fix RX A-MPDU session reorder timer deletion") Cc: stable@vger.kernel.org Signed-off-by: Chris Bainbridge [reword commit message, use sizeof(*tid_agg_rx)] Signed-off-by: Johannes Berg net/mac80211/agg-rx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cb150b9d23be6ee7f3a0fff29784f1c5b5ac514d Author: Johannes Berg Date: Wed Jan 27 13:29:34 2016 +0100 cfg80211/wext: fix message ordering Since cfg80211 frequently takes actions from its netdev notifier call, wireless extensions messages could still be ordered badly since the wext netdev notifier, since wext is built into the kernel, runs before the cfg80211 netdev notifier. For example, the following can happen: 5: wlan1: mtu 1500 qdisc mq state DOWN group default link/ether 02:00:00:00:01:00 brd ff:ff:ff:ff:ff:ff 5: wlan1: link/ether when setting the interface down causes the wext message. To also fix this, export the wireless_nlevent_flush() function and also call it from the cfg80211 notifier. Cc: stable@vger.kernel.org Signed-off-by: Johannes Berg include/net/iw_handler.h | 6 ++++++ net/wireless/core.c | 2 ++ net/wireless/wext-core.c | 3 ++- 3 files changed, 10 insertions(+), 1 deletion(-) commit 8bf862739a7786ae72409220914df960a0aa80d8 Author: Johannes Berg Date: Wed Jan 27 12:37:52 2016 +0100 wext: fix message delay/ordering Beniamino reported that he was getting an RTM_NEWLINK message for a given interface, after the RTM_DELLINK for it. It turns out that the message is a wireless extensions message, which was sent because the interface had been connected and disconnection while it was deleted caused a wext message. For its netlink messages, wext uses RTM_NEWLINK, but the message is without all the regular rtnetlink attributes, so "ip monitor link" prints just rudimentary information: 5: wlan1: mtu 1500 qdisc mq state DOWN group default link/ether 02:00:00:00:01:00 brd ff:ff:ff:ff:ff:ff Deleted 5: wlan1: mtu 1500 qdisc noop state DOWN group default link/ether 02:00:00:00:01:00 brd ff:ff:ff:ff:ff:ff 5: wlan1: link/ether (from my hwsim reproduction) This can cause userspace to get confused since it doesn't expect an RTM_NEWLINK message after RTM_DELLINK. The reason for this is that wext schedules a worker to send out the messages, and the scheduling delay can cause the messages to get out to userspace in different order. To fix this, have wext register a netdevice notifier and flush out any pending messages when netdevice state changes. This fixes any ordering whenever the original message wasn't sent by a notifier itself. Cc: stable@vger.kernel.org Reported-by: Beniamino Galvani Signed-off-by: Johannes Berg net/wireless/wext-core.c | 51 +++++++++++++++++++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 11 deletions(-) commit ad32152eb26043d165eed9406cb9e2f7011f6b10 Author: Alex Deucher Date: Thu Jan 28 16:27:41 2016 -0500 drm/amdgpu: no need to load MC firmware on fiji Vbios does this for us on asic_init. Reviewed-by: Ken Wang >Qingqing.Wang@amd.com> Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit ad678b4ccd41aa51cf5f142c0e8cffe9d61fc2bf Author: Jurgen Kramer Date: Fri Jan 29 14:59:25 2016 +0100 ALSA: usb-audio: Add native DSD support for PS Audio NuWave DAC This patch adds native DSD support for the PS Audio NuWave DAC. Signed-off-by: Jurgen Kramer Cc: Signed-off-by: Takashi Iwai sound/usb/quirks.c | 1 + 1 file changed, 1 insertion(+) commit 5327d6ba975042fd3da50ac6e94d1e9551ebeaec Author: Jurgen Kramer Date: Fri Jan 29 14:49:55 2016 +0100 ALSA: usb-audio: Fix OPPO HA-1 vendor ID In my patch adding native DSD support for the Oppo HA-1, the wrong vendor ID got through. This patch fixes the vendor ID and aligns the comment. Fixes: a4eae3a506ea ('ALSA: usb: Add native DSD support for Oppo HA-1') Signed-off-by: Jurgen Kramer Cc: Signed-off-by: Takashi Iwai sound/usb/quirks.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 742563777e8da62197d6cb4b99f4027f59454735 Author: Matt Fleming Date: Fri Jan 29 11:36:10 2016 +0000 x86/mm/pat: Avoid truncation when converting cpa->numpages to address There are a couple of nasty truncation bugs lurking in the pageattr code that can be triggered when mapping EFI regions, e.g. when we pass a cpa->pgd pointer. Because cpa->numpages is a 32-bit value, shifting left by PAGE_SHIFT will truncate the resultant address to 32-bits. Viorel-Cătălin managed to trigger this bug on his Dell machine that provides a ~5GB EFI region which requires 1236992 pages to be mapped. When calling populate_pud() the end of the region gets calculated incorrectly in the following buggy expression, end = start + (cpa->numpages << PAGE_SHIFT); And only 188416 pages are mapped. Next, populate_pud() gets invoked for a second time because of the loop in __change_page_attr_set_clr(), only this time no pages get mapped because shifting the remaining number of pages (1048576) by PAGE_SHIFT is zero. At which point the loop in __change_page_attr_set_clr() spins forever because we fail to map progress. Hitting this bug depends very much on the virtual address we pick to map the large region at and how many pages we map on the initial run through the loop. This explains why this issue was only recently hit with the introduction of commit a5caa209ba9c ("x86/efi: Fix boot crash by mapping EFI memmap entries bottom-up at runtime, instead of top-down") It's interesting to note that safe uses of cpa->numpages do exist in the pageattr code. If instead of shifting ->numpages we multiply by PAGE_SIZE, no truncation occurs because PAGE_SIZE is a UL value, and so the result is unsigned long. To avoid surprises when users try to convert very large cpa->numpages values to addresses, change the data type from 'int' to 'unsigned long', thereby making it suitable for shifting by PAGE_SHIFT without any type casting. The alternative would be to make liberal use of casting, but that is far more likely to cause problems in the future when someone adds more code and fails to cast properly; this bug was difficult enough to track down in the first place. Reported-and-tested-by: Viorel-Cătălin Răpițeanu Acked-by: Borislav Petkov Cc: Sai Praneeth Prakhya Cc: Signed-off-by: Matt Fleming Link: https://bugzilla.kernel.org/show_bug.cgi?id=110131 Link: http://lkml.kernel.org/r/1454067370-10374-1-git-send-email-matt@codeblueprint.co.uk Signed-off-by: Thomas Gleixner arch/x86/mm/pageattr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6639484ddaf6707b41082c9fa9ca9af342df6402 Author: Libin Yang Date: Fri Jan 29 20:39:09 2016 +0800 ALSA: hda - disable dynamic clock gating on Broxton before reset On Broxton, to make sure the reset controller works properly, MISCBDCGE bit (bit 6) in CGCTL (0x48) of PCI configuration space need be cleared before reset and set back to 1 after reset. Otherwise, it may prevent the CORB/RIRB logic from being reset. Signed-off-by: Libin Yang Cc: # v4.4+ Signed-off-by: Takashi Iwai sound/pci/hda/hda_intel.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit b82fe6ddd782f847332aeabf8cab980852f61629 Author: Fabio Estevam Date: Tue Jan 19 11:10:57 2016 -0200 video: fbdev: imxfb: Provide a reset mechanism Currently when we boot the kernel on a mx25pdk the LCDC controller does not show the Linux logo on boot. This problem is well explained by Sascha Hauer: "Unfortunately this LCD controller does not have an enable bit. The controller starts directly when the clocks are enabled. If the clocks are enabled when the controller is not yet programmed with proper register values then it just goes into some undefined state. What I suspect is that the clocks already were enabled before driver probe, presumably by the bootloader, so the controller is already in undefined state when entering Linux. Now by dis/enabling the ipg clock you effectively reset the controller. Since you have programmed it with valid register values in the mean time it starts working after this reset." So do as suggested and force a reset of the LCDC hardware by enabling and disabling the IPG clock. With this change the Linux logo can be seen on boot on a mx25pdk. Signed-off-by: Fabio Estevam Signed-off-by: Tomi Valkeinen drivers/video/fbdev/imxfb.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit a588afc920bc50e894f6ae2874c4281c795e0979 Author: Tejun Heo Date: Fri Jan 29 07:06:53 2016 -0500 libata-sff: use WARN instead of BUG on illegal host state machine state ata_sff_hsm_move() triggers BUG if it sees a host state machine state that it dind't expect. The risk for data corruption when the condition occurs is low as it's highly unlikely that it would lead to spurious completion of commands. The BUG occasionally triggered for subtle race conditions in the driver. Let's downgrade it to WARN so that it doesn't kill the machine unnecessarily. Signed-off-by: Tejun Heo Cc: Dmitry Vyukov drivers/ata/libata-sff.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit c3a2da26e6216033456c1d5375cd1d2629d1fd09 Author: Arnd Bergmann Date: Mon Jan 25 16:03:01 2016 +0100 fbdev: mmp: print IRQ resource using %pR format string resource_size_t cannot be printed using the %x format string when we it is defined as u64: drivers/video/fbdev/mmp/hw/mmp_ctrl.c: In function 'mmphw_probe': drivers/video/fbdev/mmp/hw/mmp_ctrl.c:506:22: error: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'resource_size_t {aka long long unsigned int}' [-Werror=format=] dev_err(ctrl->dev, "%s: res %x - %x map failed\n", __func__, ^ drivers/video/fbdev/mmp/hw/mmp_ctrl.c:506:22: error: format '%x' expects argument of type 'unsigned int', but argument 5 has type 'resource_size_t {aka long long unsigned int}' [-Werror=format=] This changes the format string to %pR, which is interpreted by the printk implementation to pretty-print a resource structure. Signed-off-by: Arnd Bergmann Signed-off-by: Tomi Valkeinen drivers/video/fbdev/mmp/hw/mmp_ctrl.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit ef88ee4e2c98c11dab56b2845ade9270acb8e68b Author: Arnd Bergmann Date: Mon Jan 25 16:05:18 2016 +0100 fbdev: da8xx-fb: remove incorrect type cast The probe function correct passes a dma_addr_t pointer into dma_alloc_coherent(), but has a cast to resource_size_t, which might be different from dma_addr_t: drivers/video/fbdev/da8xx-fb.c: In function 'fb_probe': drivers/video/fbdev/da8xx-fb.c:1431:10: error: passing argument 3 of 'dma_alloc_coherent' from incompatible pointer type [-Werror=incompatible-pointer-types] This removes the cast, which avoids the warning. Signed-off-by: Arnd Bergmann Signed-off-by: Tomi Valkeinen drivers/video/fbdev/da8xx-fb.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit b54729b6cea7d1f46b1ed70cb7065c6bdefaa780 Author: Arnd Bergmann Date: Mon Jan 25 16:04:03 2016 +0100 fbdev: s6e8ax0: avoid unused function warnings The s6e8ax0 suspend/resume functions are hidden inside of an #ifdef when CONFIG_PM is set to avoid unused function warnings, but they call some other functions that nothing else calls, and we get warnings about those: drivers/video/fbdev/exynos/s6e8ax0.c:449:13: error: 's6e8ax0_sleep_in' defined but not used [-Werror=unused-function] drivers/video/fbdev/exynos/s6e8ax0.c:485:13: error: 's6e8ax0_display_off' defined but not used [-Werror=unused-function] This marks the PM functions as __maybe_unused so the compiler can silently drop them when they are not referenced. Signed-off-by: Arnd Bergmann Reviewed-by: Krzysztof Kozlowski Signed-off-by: Tomi Valkeinen drivers/video/fbdev/exynos/s6e8ax0.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) commit 0d9bacb6c8265e7aa75ac28ae9b5d7748065942f Author: Magnus Damm Date: Tue Jan 19 14:28:48 2016 +0900 iommu: Update struct iommu_ops comments Update the comments around struct iommu_ops to match current state and fix a few typos while at it. Signed-off-by: Magnus Damm Signed-off-by: Joerg Roedel include/linux/iommu.h | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit 87df1b2a2103b9019433da99be43a472c16647ab Author: Andrea Merello Date: Tue Jan 26 15:48:04 2016 +0100 ocfb: fix tgdel and tvdel timing parameters According to the ocfb documentation: Fix tgdel HW param should be left margin, not right. Fix tvdel HW param should upper margin, not lower. This seems to fix lock issues on certain monitors (tested on a slightly customized IP, but the FPGA guy said that it should be the same wrt this changes). Signed-off-by: Andrea Merello Acked-by: Stefan Kristiansson Signed-off-by: Tomi Valkeinen drivers/video/fbdev/ocfb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6f3cdb380f429af47ad6635568c22ba28df83a48 Author: Michael S. Tsirkin Date: Tue Jan 26 18:33:04 2016 +0200 iommu/vt-d: Fix link to Intel IOMMU Specification Looks like the VT-d spec at intel.com got moved. Update the link. Signed-off-by: Michael S. Tsirkin Signed-off-by: Joerg Roedel Documentation/Intel-IOMMU.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9b1a12d29109234d2b9718d04d4d404b7da4e794 Author: Baoquan He Date: Wed Jan 20 22:01:19 2016 +0800 iommu/amd: Correct the wrong setting of alias DTE in do_attach In below commit alias DTE is set when its peripheral is setting DTE. However there's a code bug here to wrongly set the alias DTE, correct it in this patch. commit e25bfb56ea7f046b71414e02f80f620deb5c6362 Author: Joerg Roedel Date: Tue Oct 20 17:33:38 2015 +0200 iommu/amd: Set alias DTE in do_attach/do_detach Signed-off-by: Baoquan He Tested-by: Mark Hounschell Cc: stable@vger.kernel.org # v4.4 Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4d0cb15fccd1db9dac0c964b2ccf10874e69f5b8 Author: Vineet Gupta Date: Fri Jan 29 16:47:44 2016 +0530 ARCv2: Check for LL-SC livelock only if LLSC is enabled Signed-off-by: Vineet Gupta arch/arc/kernel/setup.c | 1 + 1 file changed, 1 insertion(+) commit b89bd1f4fbaecaa842588a034f8a44f4a84597e4 Author: Vineet Gupta Date: Fri Jan 22 15:20:18 2016 +0530 ARC: shrink cpuinfo by not saving full timer BCR Signed-off-by: Vineet Gupta arch/arc/include/asm/arcregs.h | 3 +-- arch/arc/kernel/setup.c | 19 ++++++++++++------- 2 files changed, 13 insertions(+), 9 deletions(-) commit d584f0fb041d86b9605fae1f0ed9e268f217daa9 Author: Vineet Gupta Date: Fri Jan 22 14:27:50 2016 +0530 ARCv2: clocksource: Rename GRTC -> GFRC ... ... it is now called Global Free Running Counter Signed-off-by: Vineet Gupta arch/arc/Kconfig | 2 +- arch/arc/configs/vdk_hs38_smp_defconfig | 2 +- arch/arc/include/asm/mcip.h | 4 ++-- arch/arc/kernel/mcip.c | 10 +++++----- arch/arc/kernel/time.c | 8 ++++---- 5 files changed, 13 insertions(+), 13 deletions(-) commit da972fb13bc5a1baad450c11f9182e4cd0a091f6 Author: Jeremy McNicoll Date: Thu Jan 14 21:33:06 2016 -0800 iommu/vt-d: Don't skip PCI devices when disabling IOTLB Fix a simple typo when disabling IOTLB on PCI(e) devices. Fixes: b16d0cb9e2fc ("iommu/vt-d: Always enable PASID/PRI PCI capabilities before ATS") Cc: stable@vger.kernel.org # v4.4 Signed-off-by: Jeremy McNicoll Reviewed-by: Alex Williamson Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c5b635203032462603c503ecce91a7021c1ad44a Author: Oleksij Rempel Date: Fri Jan 29 10:57:53 2016 +0100 irqchip/mxs: Add missing set_handle_irq() The rework of the driver missed to move the call to set_handle_irq() into asm9260_of_init(). As a consequence no interrupt entry point is installed and no interrupts are delivered Solution is simple: Install the interrupt entry handler. Fixes: 7e4ac676ee ("irqchip/mxs: Add Alphascale ASM9260 support") Signed-off-by: Oleksij Rempel Cc: kernel@pengutronix.de Cc: jason@lakedaemon.net Cc: marc.zyngier@arm.com Cc: stable@vger.kernel.org Link: http://lkml.kernel.org/r/1454061473-24957-1-git-send-email-linux@rempel-privat.de Signed-off-by: Thomas Gleixner drivers/irqchip/irq-mxs.c | 1 + 1 file changed, 1 insertion(+) commit 8f6aff9858c45525345b92b2a88c2af776c64340 Author: Lada Trimasova Date: Wed Jan 27 11:10:32 2016 +0000 iommu/io-pgtable-arm: Fix io-pgtable-arm build failure Trying to build a kernel for ARC with both options CONFIG_COMPILE_TEST and CONFIG_IOMMU_IO_PGTABLE_LPAE enabled (e.g. as a result of "make allyesconfig") results in the following build failure: | CC drivers/iommu/io-pgtable-arm.o | linux/drivers/iommu/io-pgtable-arm.c: In | function ‘__arm_lpae_alloc_pages’: | linux/drivers/iommu/io-pgtable-arm.c:221:3: | error: implicit declaration of function ‘dma_map_single’ | [-Werror=implicit-function-declaration] | dma = dma_map_single(dev, pages, size, DMA_TO_DEVICE); | ^ | linux/drivers/iommu/io-pgtable-arm.c:221:42: | error: ‘DMA_TO_DEVICE’ undeclared (first use in this function) | dma = dma_map_single(dev, pages, size, DMA_TO_DEVICE); | ^ Since IOMMU_IO_PGTABLE_LPAE depends on DMA API, io-pgtable-arm.c should include linux/dma-mapping.h. This fixes the reported failure. Cc: Alexey Brodkin Cc: Vineet Gupta Cc: Joerg Roedel Signed-off-by: Lada Trimasova Signed-off-by: Will Deacon Signed-off-by: Joerg Roedel drivers/iommu/io-pgtable-arm.c | 1 + 1 file changed, 1 insertion(+) commit 9a2ddda572a002633a64b1ae5f4bc49cfcbf495f Author: W. Trevor King Date: Wed Jan 27 13:01:52 2016 -0800 Documentation: cgroup: Fix 'cgroup-legacy' -> 'cgroup-v1' This should have happened in 6255c46f (cgroup: rename cgroup documentations, 2016-01-11). Signed-off-by: W. Trevor King Signed-off-by: Tejun Heo Documentation/cgroup-v2.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c84f6b8bce8723d8232547d6a3a3ae0725511adb Author: Tomi Valkeinen Date: Fri Jan 29 12:08:24 2016 +0200 ARM: omap2plus_defconfig: update display configs omapfb and omapdrm were recently made independent of each other, and this required Kconfig option changes. This patch changes the omap2plus_defconfig to enable display similarly as before: omapfb and panel & encoder drivers as modules. Signed-off-by: Tomi Valkeinen Acked-by: Tony Lindgren arch/arm/configs/omap2plus_defconfig | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) commit cff10ce7b4f02718ffd25e3914e60559f5ef6ca0 Author: Johan Hedberg Date: Tue Jan 26 14:31:31 2016 -0500 Bluetooth: Fix incorrect removing of IRKs The commit cad20c278085d893ebd616cd20c0747a8e9d53c7 was supposed to fix handling of devices first using public addresses and then switching to RPAs after pairing. Unfortunately it missed a couple of key places in the code. 1. When evaluating which devices should be removed from the existing white list we also need to consider whether we have an IRK for them or not, i.e. a call to hci_find_irk_by_addr() is needed. 2. In smp_notify_keys() we should not be requiring the knowledge of the RPA, but should simply keep the IRK around if the other conditions require it. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann Cc: stable@vger.kernel.org # 4.4+ net/bluetooth/hci_request.c | 28 ++++++++++++++++++---------- net/bluetooth/smp.c | 16 ---------------- 2 files changed, 18 insertions(+), 26 deletions(-) commit a2342c5fe5f2810b8ef6a0826bd584aa709dd2c6 Author: Johan Hedberg Date: Tue Jan 26 17:19:11 2016 -0500 Bluetooth: L2CAP: Fix setting chan src info before adding PSM/CID At least the l2cap_add_psm() routine depends on the source address type being properly set to know what auto-allocation ranges to use, so the assignment to l2cap_chan needs to happen before this. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/l2cap_sock.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 92594a51120ebc6c2f556204fc73568c8f7cb0f4 Author: Johan Hedberg Date: Tue Jan 26 17:19:10 2016 -0500 Bluetooth: L2CAP: Fix auto-allocating LE PSM values The LE dynamic PSM range is different from BR/EDR (0x0080 - 0x00ff) and doesn't have requirements relating to parity, so separate checks are needed. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/l2cap_core.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit 114f9f1e038eb23935c20fb54f49f07caaa0546d Author: Johan Hedberg Date: Tue Jan 26 17:19:09 2016 -0500 Bluetooth: L2CAP: Introduce proper defines for PSM ranges Having proper defines makes the code a bit readable, it also avoids duplicating hard-coded values since these are also needed when auto-allocating PSM values (in a subsequent patch). Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann include/net/bluetooth/l2cap.h | 6 ++++++ net/bluetooth/l2cap_sock.c | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) commit 52795f6fdeb8a2b98373108ac2838c674bb2cbc4 Author: Jean Delvare Date: Wed Jan 27 14:40:33 2016 +0100 i2c: piix4: don't regress on bus names The I2C bus names are supposed to be stable as they can be used by userspace to uniquely identify a specific I2C bus. So restore the original names for all legacy (pre-SB800) devices. For SB800 devices and later, improve the names. "SDA" refers to the serial data pin of each SMBus port, it's an implementation detail the user doesn't need to know. Use "port" instead, which is easier to understand. Signed-off-by: Jean Delvare Reviewed-by: Mika Westerberg Tested-by: Christian Fetzer Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-piix4.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit 5fa7c8ec57f70a7b5c6fe269fa9c51b9e465989c Author: Peter Zijlstra Date: Tue Jan 26 15:25:15 2016 +0100 perf: Remove/simplify lockdep annotation Now that the perf_event_ctx_lock_nested() call has moved from put_event() into perf_event_release_kernel() the first reason is no longer valid as that can no longer happen. The second reason seems to have been invalidated when Al Viro made fput() unconditionally async in the following commit: 4a9d4b024a31 ("switch fput to task_work_add") such that munmap()->fput()->release()->perf_release() would no longer happen. Therefore, remove the annotation. This should increase the efficiency of lockdep coverage of perf locking. Suggested-by: Alexander Shishkin Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar kernel/events/core.c | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) commit c6e5b73242d2d9172ea880483bc4ba7ffca0cfb2 Author: Peter Zijlstra Date: Fri Jan 15 16:07:41 2016 +0200 perf: Synchronously clean up child events The orphan cleanup workqueue doesn't always catch orphans, for example, if they never schedule after they are orphaned. IOW, the event leak is still very real. It also wouldn't work for kernel counters. Doing it synchonously is a little hairy due to lock inversion issues, but is made to work. Patch based on work by Alexander Shishkin. Suggested-by: Alexander Shishkin Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Cc: vince@deater.net Signed-off-by: Ingo Molnar include/linux/perf_event.h | 3 - kernel/events/core.c | 174 ++++++++++++++++++++++----------------------- 2 files changed, 84 insertions(+), 93 deletions(-) commit 60beda849343494b2a598b927630bbe293c1cc6e Author: Peter Zijlstra Date: Tue Jan 26 14:55:02 2016 +0100 perf: Untangle 'owner' confusion There are two concepts of owner wrt an event and they are conflated: - event::owner / event::owner_list, used by prctl(.option = PR_TASK_PERF_EVENTS_{EN,DIS}ABLE). - the 'owner' of the event object, typically the file descriptor. Currently these two concepts are conflated, which gives trouble with scm_rights passing of file descriptors. Passing the event and then closing the creating task would render the event 'orphan' and would have it cleared out. Unlikely what is expectd. This patch untangles these two concepts by using PERF_EVENT_STATE_EXIT to denote the second type. Reported-by: Alexei Starovoitov Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar kernel/events/core.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit 45a0e07abf4933490a2d2f81b1a31fe267bd3561 Author: Peter Zijlstra Date: Tue Jan 26 13:09:48 2016 +0100 perf: Add flags argument to perf_remove_from_context() In preparation to adding more options, convert the boolean argument into a flags word. Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar kernel/events/core.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) commit 8ba289b8d4e4dbd1f971fbf0d2085e4776a4ba25 Author: Peter Zijlstra Date: Tue Jan 26 13:06:56 2016 +0100 perf: Clean up sync_child_event() sync_child_event() has outgrown its purpose, it does far too much. Bring it back to its named purpose. Rename __perf_event_exit_task() to perf_event_exit_event() to better reflect what it does and move the event->state assignment under the ctx->lock, like state changes ought to be. Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar kernel/events/core.c | 81 +++++++++++++++++++++++++--------------------------- 1 file changed, 39 insertions(+), 42 deletions(-) commit f47c02c0c8403963fbb8c3484e285727305d0f73 Author: Peter Zijlstra Date: Tue Jan 26 12:30:14 2016 +0100 perf: Robustify event->owner usage and SMP ordering Use smp_store_release() to clear event->owner and lockless_dereference() to observe it. Further use READ_ONCE() for all lockless reads. This changes perf_remove_from_owner() to leave event->owner cleared. Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar kernel/events/core.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 6e801e016917989ab8a7ddfc4229a15a5621622a Author: Peter Zijlstra Date: Tue Jan 26 12:17:08 2016 +0100 perf: Fix STATE_EXIT usage We should never attempt to enable a STATE_EXIT event. Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar kernel/events/core.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 07c4a776135ea6d808ea19aabeb51de6b8648402 Author: Peter Zijlstra Date: Tue Jan 26 12:15:37 2016 +0100 perf: Update locking order Update the locking order to note that ctx::lock nests inside of child_mutex, as per: perf_ioctl(): ctx::mutex -> perf_event_for_each(): event::child_mutex -> _perf_event_enable(): ctx::lock Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar kernel/events/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a0733e695b83a9c31f779e41dcaec8ef924716b5 Author: Peter Zijlstra Date: Tue Jan 26 12:14:40 2016 +0100 perf: Remove __free_event() There is but a single caller, remove the function - we already have _free_event(), the extra indirection is nonsensical.. Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar kernel/events/core.c | 45 ++++++++++++++++++++------------------------- 1 file changed, 20 insertions(+), 25 deletions(-) commit e03e7ee34fdd1c3ef494949a75cb8c61c7265fa9 Author: Alexei Starovoitov Date: Mon Jan 25 20:59:49 2016 -0800 perf/bpf: Convert perf_event_array to use struct file Robustify refcounting. Signed-off-by: Alexei Starovoitov Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Arnaldo Carvalho de Melo Cc: Daniel Borkmann Cc: David Ahern Cc: Jiri Olsa Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Cc: Wang Nan Cc: vince@deater.net Link: http://lkml.kernel.org/r/20160126045947.GA40151@ast-mbp.thefacebook.com Signed-off-by: Ingo Molnar include/linux/perf_event.h | 4 ++-- kernel/bpf/arraymap.c | 21 +++++++++++---------- kernel/events/core.c | 21 ++++++++++----------- kernel/trace/bpf_trace.c | 14 ++++++++++---- 4 files changed, 33 insertions(+), 27 deletions(-) commit 828b6f0e26170938d617e99a17177453be4d77a3 Author: Peter Zijlstra Date: Wed Jan 27 21:59:04 2016 +0100 perf: Fix NULL deref Dan reported: 1229 if (ctx->task == TASK_TOMBSTONE || 1230 !atomic_inc_not_zero(&ctx->refcount)) { 1231 raw_spin_unlock(&ctx->lock); 1232 ctx = NULL; ^^^^^^^^^^ ctx is NULL. 1233 } 1234 1235 WARN_ON_ONCE(ctx->task != task); ^^^^^^^^^^^^^^^^^ The patch adds a NULL dereference. Reported-by: Dan Carpenter Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Fixes: 63b6da39bb38 ("perf: Fix perf_event_exit_task() race") Signed-off-by: Ingo Molnar kernel/events/core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8f04b8536f0c94f8999b65cd1c6c7523116a00ae Author: Peter Zijlstra Date: Wed Jan 27 23:31:09 2016 +0100 perf/x86: De-obfuscate code Get rid of the 'onln' obfuscation. Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit e01d8718de4170373cd7fbf5cf6f9cb61cebb1e9 Author: Peter Zijlstra Date: Wed Jan 27 23:24:29 2016 +0100 perf/x86: Fix uninitialized value usage When calling intel_alt_er() with .idx != EXTRA_REG_RSP_* we will not initialize alt_idx and then use this uninitialized value to index an array. When that is not fatal, it can result in an infinite loop in its caller __intel_shared_reg_get_constraints(), with IRQs disabled. Alternative error modes are random memory corruption due to the cpuc->shared_regs->regs[] array overrun, which manifest in either get_constraints or put_constraints doing weird stuff. Only took 6 hours of painful debugging to find this. Neither GCC nor Smatch warnings flagged this bug. Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Kan Liang Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Fixes: ae3f011fc251 ("perf/x86/intel: Fix SLM MSR_OFFCORE_RSP1 valid_mask") Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f2e305108faba0c85eb4ba4066599decb675117e Author: Gerd Hoffmann Date: Mon Jan 25 12:02:28 2016 +0100 drm/i915: refine qemu south bridge detection The test for the qemu q35 south bridge added by commit "39bfcd52 drm/i915: more virtual south bridge detection" also matches on real hardware. Having the check for virtual systems last in the list is not enough to avoid that ... Refine the check by additionally verifying the pci subsystem id to see whenever it *really* is qemu. [ v2: fix subvendor tyops ] Reported-and-tested-by: Bjørn Mork Signed-off-by: Gerd Hoffmann Tested-by: Bruno Wolff III Cc: drm-intel-fixes@lists.freedesktop.org Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1453719748-10944-1-git-send-email-kraxel@redhat.com (cherry picked from commit 1e859111c128265f8d62b39ff322e42b1ddb5a20) drivers/gpu/drm/i915/i915_drv.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 428398e44a2762875c01a4d5c18932f1e84fdc17 Author: Andreas Ziegler Date: Mon Jan 25 12:41:19 2016 +0100 drm/i915: Remove select to deleted STOP_MACHINE from Kconfig Commit 5bab6f60cb4d ("drm/i915: Serialise updates to GGTT with access through GGTT on Braswell") depended upon a working stop_machine() and so forced the selection of STOP_MACHINE. However, commit 86fffe4a61dd ("kernel: remove stop_machine() Kconfig dependency") removed the option STOP_MACHINE from init/Kconfig and ensured that stop_machine() universally works. Due to the order in which the patches were applied, removing the select from DRM_I915 got lost during merging. Remove the now obsolete select statement. Signed-off-by: Andreas Ziegler Reviewed-by: Chris Wilson Link: http://patchwork.freedesktop.org/patch/msgid/1453722079-2604-1-git-send-email-andreas.ziegler@fau.de Cc: drm-intel-fixes@lists.freedesktop.org Signed-off-by: Daniel Vetter (cherry picked from commit 21fabbebff0e17c7698ed399cae23958c214cc82) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/Kconfig | 1 - 1 file changed, 1 deletion(-) commit 2850cfddfb052a552dfa19b75836a873e0ca1f50 Author: Ville Syrjälä Date: Tue Jan 19 18:23:17 2016 +0200 drm/i915: Fix NULL plane->fb oops on SKL In this atomic age, we can't trust the plane->fb pointer anymore. It might get update too late. Instead we are supposed to use the plane_state->fb pointer instead. Let's do that in intel_plane_obj_offset() and avoid problems from dereferencing the potentially stale plane->fb pointer. Paulo found this with 'kms_frontbuffer_tracking --show-hidden --run-subtest nop-1p-rte' but it can be reproduced with just plain old kms_setplane. I was too lazy to bisect this, so not sure exactly when it broke. The most obvious candidate commit ce7f17285639 ("drm/i915: Fix i915_ggtt_view_equal to handle rotation correctly") was actually still fine, so it must have broken some time after that. Here's the resulting fireworks: BUG: unable to handle kernel NULL pointer dereference at (null) IP: [] intel_fill_fb_ggtt_view+0x1b/0x15a [i915] PGD 8a5f6067 PUD 8a5f5067 PMD 0 Oops: 0000 [#1] PREEMPT SMP Modules linked in: i915 i2c_algo_bit drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops drm intel_gtt agpgart netconsole mousedev hid_generic psmouse usbhid atkbd libps2 coretemp hwmon efi_pstore intel_rapl iosf_mbi x86_pkg_temp_thermal efivars pcspkr e1000e sdhci_pci ptp pps_core sdhci i2c_i801 mmc_core i2c_hid hid i8042 serio evdev sch_fq_codel ip_tables x_tables ipv6 autofs4 CPU: 1 PID: 260 Comm: kms_plane Not tainted 4.4.0-skl+ #171 Hardware name: Intel Corporation Skylake Client platform/Skylake Y LPDDR3 RVP3, BIOS SKLSE2R1.R00.B104.B00.1511030553 11/03/2015 task: ffff88008bde2d80 ti: ffff88008a6ec000 task.ti: ffff88008a6ec000 RIP: 0010:[] [] intel_fill_fb_ggtt_view+0x1b/0x15a [i915] RSP: 0018:ffff88008a6efa10 EFLAGS: 00010086 RAX: 0000000000000001 RBX: ffff8801674f4240 RCX: 0000000000000014 RDX: ffff88008a7440c0 RSI: 0000000000000000 RDI: ffff88008a6efa40 RBP: ffff88008a6efa30 R08: ffff88008bde3598 R09: 0000000000000001 R10: ffff88008b782000 R11: 0000000000000000 R12: 0000000000000000 R13: ffff88008a7440c0 R14: 0000000000000000 R15: ffff88008a7449c0 FS: 00007fa0c07a28c0(0000) GS:ffff88016ec40000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000000 CR3: 000000008a6ff000 CR4: 00000000003406e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Stack: ffff8801674f4240 0000000000000000 ffff88008a7440c0 0000000000000000 ffff88008a6efaa0 ffffffffa02daf25 ffffffff814ec80e 0000000000070298 ffff8800850d0000 ffff88008a6efaa0 ffffffffa02c49c2 0000000000000002 Call Trace: [] intel_plane_obj_offset+0x2d/0xa9 [i915] [] ? _raw_spin_unlock_irqrestore+0x4b/0x60 [] ? gen9_write32+0x2e8/0x3b8 [i915] [] skl_update_plane+0x203/0x4c5 [i915] [] intel_plane_atomic_update+0x53/0x6a [i915] [] drm_atomic_helper_commit_planes_on_crtc+0x142/0x1d5 [drm_kms_helper] [] intel_atomic_commit+0x1262/0x1350 [i915] [] ? __drm_atomic_helper_crtc_duplicate_state+0x2f/0x41 [drm_kms_helper] [] ? drm_atomic_check_only+0x3e3/0x552 [drm] [] drm_atomic_commit+0x4d/0x52 [drm] [] drm_atomic_helper_update_plane+0xcb/0x118 [drm_kms_helper] [] __setplane_internal+0x1c8/0x224 [drm] [] drm_mode_setplane+0x14e/0x172 [drm] [] drm_ioctl+0x265/0x3ad [drm] [] ? drm_mode_cursor_common+0x158/0x158 [drm] [] ? current_kernel_time64+0x5e/0x98 [] ? trace_hardirqs_on_caller+0x17a/0x196 [] do_vfs_ioctl+0x42b/0x4ea [] ? __fget_light+0x4d/0x71 [] SyS_ioctl+0x43/0x61 [] entry_SYSCALL_64_fastpath+0x12/0x6f Cc: drm-intel-fixes@lists.freedesktop.org Cc: Paulo Zanoni Testcase: igt/kms_plane Reported-by: Paulo Zanoni Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1453220597-28973-1-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Daniel Vetter (cherry picked from commit e794129444aba459e9bedf5080bfb4605f933c32) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6f94b6dd006909a5ef6435cc0af557e945240f48 Author: Ville Syrjälä Date: Fri Jan 15 20:46:53 2016 +0200 drm/i915: Don't reject primary plane windowing with color keying enabled on SKL+ On SKL+ plane scaling is mutually exclusive with color keying. The code check for this, but during some refactoring the code got changed to also reject primary plane windowing when color keying is used. There is no such restriction in the hardware, so restore the original logic. Cc: Maarten Lankhorst Fixes: 061e4b8d650a ("drm/i915: clean up atomic plane check functions, v2.") Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1452883613-28549-1-git-send-email-ville.syrjala@linux.intel.com Cc: stable@vger.kernel.org Reviewed-by: Matt Roper Reviewed-by: Maarten Lankhorst (cherry picked from commit 693bdc28a733dba68b86af295e7509812fec35d9) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 5efd407674068dede403551bea3b0b134c32513a Author: Jani Nikula Date: Wed Jan 13 16:35:20 2016 +0200 drm/i915/dp: fall back to 18 bpp when sink capability is unknown Per DP spec, the source device should fall back to 18 bpp, VESA range RGB when the sink capability is unknown. Fix the color depth clamping. 18 bpp color depth should ensure full color range in automatic mode. The clamping has been HDMI specific since its introduction in commit 996a2239f93b03c5972923f04b097f65565c5bed Author: Daniel Vetter Date: Fri Apr 19 11:24:34 2013 +0200 drm/i915: Disable high-bpc on pre-1.4 EDID screens Cc: stable@vger.kernel.org Reported-and-tested-by: Dihan Wickremasuriya Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=105331 Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1452695720-7076-1-git-send-email-jani.nikula@intel.com (cherry picked from commit 013dd9e038723bbd2aa67be51847384b75be8253) drivers/gpu/drm/i915/intel_display.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) commit 935a0ff0e1ea62a116848c0a187b13838f7b9cee Author: Francisco Jerez Date: Wed Jan 13 18:59:39 2016 -0800 drm/i915: Make sure DC writes are coherent on flush. We need to set the DC FLUSH PIPE_CONTROL bit on Gen7+ to guarantee that writes performed via the HDC are visible in memory. Fixes an intermittent failure in a Piglit test that writes to a BO from a shader using GL atomic counters (implemented as HDC untyped atomics) and then expects the memory to read back the same value after mapping it on the CPU. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91298 Tested-by: Mark Janes Cc: Rodrigo Vivi Cc: stable@vger.kernel.org Signed-off-by: Francisco Jerez Reviewed-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1452740379-3194-1-git-send-email-currojerez@riseup.net (cherry picked from commit 965fd602a6436f689f4f2fe40a6789582778ccd5) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_lrc.c | 1 + drivers/gpu/drm/i915/intel_ringbuffer.c | 2 ++ 2 files changed, 3 insertions(+) commit 88867e3d0b7eea256c1cd432b0a3c7a21e8edf07 Author: Samuel Thibault Date: Mon Jan 25 01:32:08 2016 +0100 Staging: speakup: fix read scrolled-back VT Previously, speakup would always read the non-scrolled part of the VT, even when the VT is scrolled back with shift-page. This patch makes vt.c export screen_pos so that speakup can use it to properly access the content of the scrolled-back VT. This was tested with both vgacon and fbcon. Signed-off-by: Samuel Thibault Reviewed-by: Alan Cox Signed-off-by: Greg Kroah-Hartman drivers/staging/speakup/main.c | 21 +++++++++++++-------- drivers/tty/vt/vt.c | 1 + 2 files changed, 14 insertions(+), 8 deletions(-) commit 327b882d3bcc1fba82dbd39b5cf5a838c81218e2 Author: Samuel Thibault Date: Fri Jan 15 00:47:41 2016 +0100 Staging: speakup: Fix getting port information Commit f79b0d9c223c ("staging: speakup: Fixed warning instead of ") broke the port information in the speakup driver: SERIAL_PORT_DFNS only gets defined if asm/serial.h is included, and no other header includes asm/serial.h. We here make sure serialio.c does get the arch-specific definition of SERIAL_PORT_DFNS from asm/serial.h, if any. Along the way, this makes sure that we do have information for the requested serial port number (index) Fixes: f79b0d9c223c ("staging: speakup: Fixed warning instead of ") Signed-off-by: Samuel Thibault Cc: stable # 3.18 Signed-off-by: Greg Kroah-Hartman drivers/staging/speakup/serialio.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) commit b64438853f4c29f2235124a1c879b5e242d1ae19 Merge: a77ce1b e4bf797 Author: David S. Miller Date: Thu Jan 28 22:53:17 2016 -0800 Merge branch 'phylib-regressions-part-2' Andrew Lunn says: ==================== Part 2 of v4.5-rc1 phylib regression White list PHY compatible values which indicate PHYs. Issue a warning when one is encountered. Update the documentation to make it clear what is expected in the compatible string. v2: Fix Grammar, reword changelog, add Tested-by and Acked-by. ==================== Signed-off-by: David S. Miller commit e4bf797ac1dcd8582d31a158dbdea5b1fbad94e6 Author: Andrew Lunn Date: Thu Jan 28 02:30:30 2016 +0100 DT: phy.txt: Clarify expected compatible values PHY devices may only list compatibility with clause 22, 45, and if they need to be more specific, their PHY identifier values. No other compatible strings are allowed. Make this clear in the documentation, and remove examples where make/model compatible strings are listed. Signed-off-by: Andrew Lunn Acked-by: Florian Fainelli Signed-off-by: David S. Miller Documentation/devicetree/bindings/net/brcm,bcmgenet.txt | 4 ++-- Documentation/devicetree/bindings/net/mdio-mux-gpio.txt | 8 -------- Documentation/devicetree/bindings/net/mdio-mux.txt | 8 -------- Documentation/devicetree/bindings/net/phy.txt | 6 ++++-- 4 files changed, 6 insertions(+), 20 deletions(-) commit ae461131960b27d4be158d62a89d40977388d7a1 Author: Andrew Lunn Date: Thu Jan 28 02:30:29 2016 +0100 of: of_mdio: Add a whitelist of PHY compatibilities. Some phy nodes list a compatible value indicating the PHY make/model. This is never used to match the device to the driver. However it does confuse the code to separate a PHY from a generic MDIO device like a switch. Generic MDIO devices must have a compatible value, PHYs can list clause 22 or 45, but nothing else. Issue a warning if we find a compatible value known on the whitelist, and say it is a PHY. Fixes: a9049e0c513c ("mdio: Add support for mdio drivers.") Reported-by: Aaro Koskinen Reported-by: Olof Johansson Tested-by: Aaro Koskinen Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/of/of_mdio.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit a77ce1bc12d6e0c03e9cc5683bb657ae2f2bb9b5 Merge: ff5d749 4b2a4a9 Author: David S. Miller Date: Thu Jan 28 22:51:44 2016 -0800 Merge branch 'lan78xx-fixes' Woojung Huh says: ==================== lan78xx: update and fixes lan78xx: change to use updated phy-ignore-interrupts lan78xx: Add to handle mux control per chip id lan78xx: throttle TX path at slower than SuperSpeed USB ==================== Signed-off-by: David S. Miller commit 4b2a4a965331a8ce7303b43039ce43651ef80fb0 Author: Woojung.Huh@microchip.com Date: Wed Jan 27 22:57:54 2016 +0000 lan78xx: throttle TX path at slower than SuperSpeed USB Throttle TX path only at slower than SuperSpeed USB. SuperSpeed USB has enough bandwidth to maintain GigE. Signed-off-by: Woojung Huh Signed-off-by: David S. Miller drivers/net/usb/lan78xx.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit a0db7d10b76e98df0cb5d4ee1ec5b8e5fbe2038c Author: Woojung.Huh@microchip.com Date: Wed Jan 27 22:57:53 2016 +0000 lan78xx: Add to handle mux control per chip id Depends on chip, some EEPROM pins are muxed with LED function. Disable & restore LED function to access EEPROM. Signed-off-by: Woojung Huh Signed-off-by: David S. Miller drivers/net/usb/lan78xx.c | 98 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 71 insertions(+), 27 deletions(-) commit e4953910aee0c1a8f7f0fff598354948c2702900 Author: Woojung.Huh@microchip.com Date: Wed Jan 27 22:57:52 2016 +0000 lan78xx: change to use updated phy-ignore-interrupts Update lan78xx to use patch of commit 4f2aaf7dd95b ("Merge branch 'fix-phy-ignore-interrupts'"). Signed-off-by: Woojung Huh Signed-off-by: David S. Miller drivers/net/usb/lan78xx.c | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) commit ff5d749772018602c47509bdc0093ff72acd82ec Author: Eric Dumazet Date: Wed Jan 27 10:52:43 2016 -0800 tcp: beware of alignments in tcp_get_info() With some combinations of user provided flags in netlink command, it is possible to call tcp_get_info() with a buffer that is not 8-bytes aligned. It does matter on some arches, so we need to use put_unaligned() to store the u64 fields. Current iproute2 package does not trigger this particular issue. Fixes: 0df48c26d841 ("tcp: add tcpi_bytes_acked to tcp_info") Fixes: 977cb0ecf82e ("tcp: add pacing_rate information into tcp_info") Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/tcp.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 3ec622f40913ae036f218e5e7e92df9c1f1753d9 Author: Aaron Plattner Date: Thu Jan 28 14:07:38 2016 -0800 ALSA: hda - Add new GPU codec ID 0x10de0083 to snd-hda Vendor ID 0x10de0083 is used by a yet-to-be-named GPU chip. This chip also has the 2-ch audio swapping bug, so patch_nvhdmi is appropriate here. Signed-off-by: Aaron Plattner Signed-off-by: Takashi Iwai sound/pci/hda/patch_hdmi.c | 1 + 1 file changed, 1 insertion(+) commit b64a1cbef6df47c986ad622b5b2e4d3d1940070c Author: Sudip Mukherjee Date: Sat Jan 23 14:49:20 2016 +0530 Revert "Staging: panel: usleep_range is preferred over udelay" This reverts commit ebd43516d3879f882a403836bba8bc5791f26a28. We should not be sleeping inside spin_lock. Fixes: ebd43516d387 ("Staging: panel: usleep_range is preferred over udelay") Cc: Sirnam Swetha Signed-off-by: Sudip Mukherjee Reported-by: Huang, Ying Tested-by: Huang, Ying Cc: stable # 4.4 Signed-off-by: Greg Kroah-Hartman drivers/staging/panel/panel.c | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) commit 98441221708a092eb6d3d05142cf842a95aba152 Author: K. Y. Srinivasan Date: Wed Jan 27 18:22:45 2016 -0800 storvsc: Use the specified target ID in device lookup The current code assumes that there is only one target in device lookup. Fix this bug. This will alow us to correctly handle hot reomoval of LUNs. Signed-off-by: K. Y. Srinivasan Reviewed-by: Alex Ng Tested-by: Vivek Yadav Reviewed-by: Johannes Thumshirn Signed-off-by: Martin K. Petersen drivers/scsi/storvsc_drv.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit d791a8c60e9cbd1c4fecbc5c86ff59c7ffe137e8 Author: K. Y. Srinivasan Date: Wed Jan 27 18:22:44 2016 -0800 storvsc: Install the storvsc specific timeout handler for FC devices The default timeout routine used for FC transport is not suitable for FC devices managed by storvsc since FC devices managed by storvsc driver do not have an rport associated with them. Use the time out handler used for SCSI devices for FC devices as well. Signed-off-by: K. Y. Srinivasan Reviewed-by: Alex Ng Tested-by: Vivek Yadav Reviewed-by: Johannes Thumshirn Signed-off-by: Martin K. Petersen drivers/scsi/storvsc_drv.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 26cd83670f2f5a3d5b5514a1f7d96567cdb9558b Merge: 03c21cb 7fd1361 Author: Linus Torvalds Date: Thu Jan 28 17:00:50 2016 -0800 Merge tag 'trace-v4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace Pull minor tracing fixes from Steven Rostedt: "This includes three minor fixes, mostly due to cut-and-paste issues. The first is a cut and paste issue that changed the amount of stack to skip when tracing a stack dump from 0 to 6, which basically made the stack disappear for small stack traces. The second fix is just removing an unused field in a struct that is no longer used, and currently just wastes space. The third is another cut-and-paste fix that had a tracepoint recording the wrong field (it was recording the previous field a second time)" * tag 'trace-v4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: tracing/dma-buf/fence: Fix timeline str value on fence_annotate_wait_on ftrace: Remove unused nr_trampolines var tracing: Fix stacktrace skip depth in trace_buffer_unlock_commit_regs() commit 4f2c6ae5c64c353fb1b0425e4747e5603feadba1 Author: Ido Schimmel Date: Wed Jan 27 15:16:43 2016 +0100 switchdev: Require RTNL mutex to be held when sending FDB notifications When switchdev drivers process FDB notifications from the underlying device they resolve the netdev to which the entry points to and notify the bridge using the switchdev notifier. However, since the RTNL mutex is not held there is nothing preventing the netdev from disappearing in the middle, which will cause br_switchdev_event() to dereference a non-existing netdev. Make switchdev drivers hold the lock at the beginning of the notification processing session and release it once it ends, after notifying the bridge. Also, remove switchdev_mutex and fdb_lock, as they are no longer needed when RTNL mutex is held. Fixes: 03bf0c281234 ("switchdev: introduce switchdev notifier") Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum.h | 1 - drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 8 +++----- drivers/net/ethernet/rocker/rocker.c | 2 ++ net/bridge/br.c | 3 +-- net/switchdev/switchdev.c | 15 ++++++++------- 5 files changed, 14 insertions(+), 15 deletions(-) commit 7d0105b5334b9722b7d33acad613096dfcf3330e Author: Malcolm Crossley Date: Tue Jan 26 17:12:44 2016 +0000 xen-netfront: request Tx response events more often Trying to batch Tx response events results in poor performance because this delays freeing the transmitted skbs. Instead use the standard RING_FINAL_CHECK_FOR_RESPONSES() macro to be notified once the next Tx response is placed on the ring. Signed-off-by: Malcolm Crossley Signed-off-by: David Vrabel Signed-off-by: David S. Miller drivers/net/xen-netfront.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) commit 3b89624ab54b9dc2d92fc08ce2670e5f19ad8ec8 Author: Nicolas Schichan Date: Tue Jan 26 16:12:35 2016 +0100 net: mv643xx_eth: fix packet corruption with TSO and tiny unaligned packets. The code in txq_put_data() would use txq->tx_curr_desc to index the tso_hdrs/tso_hdrs_dma buffers, for less than 8 bytes unaligned fragments, which is already moved to the next descriptor at the beginning of the function. If that fragment was the last of the the skb, the next skb would use that same space to place the ip headers, overwritting that small fragment data. Fixes: 91986fd3d335 (net: mv643xx_eth: Ensure proper data alignment in TSO TX path) Signed-off-by: Nicolas Schichan Reviewed-by: Philipp Kirchhofer Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mv643xx_eth.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6ed742363b9c3d1d038f013591d57a606ae2c261 Author: Andrew Lunn Date: Tue Jan 26 15:12:30 2016 +0100 of: of_mdio: Ensure mdio device is a PHY of_phy_find_device() is used to find the phy device associated with a device node. It is expected the node is for a PHY device, but in fact it could of been probed as a generic MDIO device. Ensure the device is a PHY before returning it. Fixes: a9049e0c513c ("mdio: Add support for mdio drivers.") Reported-by: Aaro Koskinen Reported-by: Olof Johansson Signed-off-by: Andrew Lunn Tested-by: Aaro Koskinen Signed-off-by: David S. Miller drivers/of/of_mdio.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit bd7c5e31552c06f1186606de8914a135e55f6bac Merge: c731f0e 6736fde Author: David S. Miller Date: Thu Jan 28 16:05:45 2016 -0800 Merge tag 'mac80211-for-davem-2016-01-26' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211 Johannes Berg says: ==================== Here's a first set of fixes for the 4.5-rc cycle: * make regulatory messages much less verbose by default * various remain-on-channel fixes * scheduled scanning fixes with hardware restart * a PS-Poll handling fix; was broken just recently * bugfix to avoid buffering non-bufferable MMPDUs * world regulatory domain data fix * a fix for scanning causing other work to get stuck * hwsim: revert an older problematic patch that caused some userspace tools to have issues - not that big a deal as it's a debug only driver though ==================== Signed-off-by: David S. Miller commit d8b8eb829d4c30cd1e41a1ddc308a0e7c22169da Merge: 96c5d07 f0442df Author: Dave Airlie Date: Fri Jan 29 10:04:29 2016 +1000 Merge branch 'drm-rockchip-next-fixes-2016-01-22' of https://github.com/markyzq/kernel-drm-rockchip into drm-fixes Here are some fixes for drm/rockchip, these fixes base on drm-next. These fixes works on my popmetal(rk3288) board. About patch: drm/atomic-helper: Export framebuffer_changed() Daniel Vetter ack for merging it through rockchip git trees, so framebuffer_changed() can be reused by drm/rockchip. All others looks good, so I'd like you can land them. * 'drm-rockchip-next-fixes-2016-01-22' of https://github.com/markyzq/kernel-drm-rockchip: drm/rockchip: respect CONFIG_DRM_FBDEV_EMULATION drm/rockchip: fix wrong pitch/size using on gem drm/rockchip: explain why we can't wait_for_vblanks drm/rockchip: don't wait for vblank if fb hasn't changed drm/atomic-helper: Export framebuffer_changed() drm/rockchip/dsi: fix handling mipi_dsi_pixel_format_to_bpp result drm/rockchip: vop: fix mask when updating interrupts drm/rockchip: cleanup unnecessary export symbol drm/rockchip: Don't build rockchip_drm_vop as modules commit 96c5d076f0a5e2023ecdb44d8261f87641ee71e0 Author: Rob Clark Date: Wed Oct 15 15:00:47 2014 -0400 drm/vmwgfx: respect 'nomodeset' Signed-off-by: Rob Clark Reviewed-by: Thomas Hellstrom . Cc: stable@vger.kernel.org Signed-off-by: Dave Airlie drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 7 +++++++ 1 file changed, 7 insertions(+) commit c731f0e3493cc9031a0aceea6a50c70beed23e6d Author: Richard Weinberger Date: Mon Jan 25 23:24:12 2016 +0100 net: Fix dependencies for !HAS_IOMEM archs Not every arch has io memory. So, unbreak the build by fixing the dependencies. Signed-off-by: Richard Weinberger Signed-off-by: David S. Miller drivers/net/ethernet/ezchip/Kconfig | 1 + drivers/net/phy/Kconfig | 1 + 2 files changed, 2 insertions(+) commit d88270eef4b56bd7973841dd1fed387ccfa83709 Author: Neal Cardwell Date: Mon Jan 25 14:01:53 2016 -0800 tcp: fix tcp_mark_head_lost to check skb len before fragmenting This commit fixes a corner case in tcp_mark_head_lost() which was causing the WARN_ON(len > skb->len) in tcp_fragment() to fire. tcp_mark_head_lost() was assuming that if a packet has tcp_skb_pcount(skb) of N, then it's safe to fragment off a prefix of M*mss bytes, for any M < N. But with the tricky way TCP pcounts are maintained, this is not always true. For example, suppose the sender sends 4 1-byte packets and have the last 3 packet sacked. It will merge the last 3 packets in the write queue into an skb with pcount = 3 and len = 3 bytes. If another recovery happens after a sack reneging event, tcp_mark_head_lost() may attempt to split the skb assuming it has more than 2*MSS bytes. This sounds very counterintuitive, but as the commit description for the related commit c0638c247f55 ("tcp: don't fragment SACKed skbs in tcp_mark_head_lost()") notes, this is because tcp_shifted_skb() coalesces adjacent regions of SACKed skbs, and when doing this it preserves the sum of their packet counts in order to reflect the real-world dynamics on the wire. The c0638c247f55 commit tried to avoid problems by not fragmenting SACKed skbs, since SACKed skbs are where the non-proportionality between pcount and skb->len/mss is known to be possible. However, that commit did not handle the case where during a reneging event one of these weird SACKed skbs becomes an un-SACKed skb, which tcp_mark_head_lost() can then try to fragment. The fix is to simply mark the entire skb lost when this happens. This makes the recovery slightly more aggressive in such corner cases before we detect reordering. But once we detect reordering this code path is by-passed because FACK is disabled. Signed-off-by: Neal Cardwell Signed-off-by: Yuchung Cheng Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/tcp_input.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 2ad14a6ca2f5d6e73e58c463e1b9dacffda3387a Merge: 2081e78 8483d15 Author: Dave Airlie Date: Fri Jan 29 10:02:35 2016 +1000 Merge tag 'drm-vc4-fixes-2015-01-19' of http://github.com/anholt/linux into drm-fixes This pull request just includes the !CONFIG_PM_SLEEP build fix for vc4. * tag 'drm-vc4-fixes-2015-01-19' of http://github.com/anholt/linux: drm/vc4: Remove broken attempt at GPU reset using genpd. commit 2081e78a5cb2e14e4980a8aaddd8e4899cc7557b Merge: 55ce625 a0a5ab3 Author: Dave Airlie Date: Fri Jan 29 10:01:54 2016 +1000 Merge branch 'drm-etnaviv-fixes' of git://git.pengutronix.de/git/lst/linux into drm-fixes A bunch of etnaviv fixes for 4.5-rc. Most of them are fixing things in code paths that will only be hit if something goes wrong, which have been unearthed by more extensive testing. The only thing that doesn't really qualify as fixes is an UAPI extension that userspace wants to rely on being present, so I want to fast-track this into 4.5 before etnaviv ends up in a released kernel. * 'drm-etnaviv-fixes' of git://git.pengutronix.de/git/lst/linux: drm/etnaviv: call correct function when trying to vmap a DMABUF drm/etnaviv: rename etnaviv_gem_vaddr to etnaviv_gem_vmap drm/etnaviv: fix get pages error path in etnaviv_gem_vaddr drm/etnaviv: fix memory leak in IOMMU init path drm/etnaviv: add further minor features and varyings count drm/etnaviv: add helper for comparing model/revision IDs drm/etnaviv: add helper to extract bitfields drm/etnaviv: use defined constants for the chip model drm/etnaviv: update common and state_hi xml.h files drm/etnaviv: ignore VG GPUs with FE2.0 drm/etnaviv: fix failure path if model is zero drm/etnaviv: hold object lock while getting pages for coredump drm/etnaviv: remove owner assignment from platform_driver commit 8282f27449bf15548cb82c77b6e04ee0ab827bdc Author: Joe Stringer Date: Fri Jan 22 15:49:12 2016 -0800 inet: frag: Always orphan skbs inside ip_defrag() Later parts of the stack (including fragmentation) expect that there is never a socket attached to frag in a frag_list, however this invariant was not enforced on all defrag paths. This could lead to the BUG_ON(skb->sk) during ip_do_fragment(), as per the call stack at the end of this commit message. While the call could be added to openvswitch to fix this particular error, the head and tail of the frags list are already orphaned indirectly inside ip_defrag(), so it seems like the remaining fragments should all be orphaned in all circumstances. kernel BUG at net/ipv4/ip_output.c:586! [...] Call Trace: [] ? do_output.isra.29+0x1b0/0x1b0 [openvswitch] [] ovs_fragment+0xcc/0x214 [openvswitch] [] ? dst_discard_out+0x20/0x20 [] ? dst_ifdown+0x80/0x80 [] ? find_bucket.isra.2+0x62/0x70 [openvswitch] [] ? mod_timer_pending+0x65/0x210 [] ? __lock_acquire+0x3db/0x1b90 [] ? nf_conntrack_in+0x252/0x500 [nf_conntrack] [] ? __lock_is_held+0x54/0x70 [] do_output.isra.29+0xe3/0x1b0 [openvswitch] [] do_execute_actions+0xe11/0x11f0 [openvswitch] [] ? __lock_is_held+0x54/0x70 [] ovs_execute_actions+0x32/0xd0 [openvswitch] [] ovs_dp_process_packet+0x85/0x140 [openvswitch] [] ? __lock_is_held+0x54/0x70 [] ovs_execute_actions+0xb2/0xd0 [openvswitch] [] ovs_dp_process_packet+0x85/0x140 [openvswitch] [] ? ovs_ct_get_labels+0x49/0x80 [openvswitch] [] ovs_vport_receive+0x5d/0xa0 [openvswitch] [] ? __lock_acquire+0x3db/0x1b90 [] ? __lock_acquire+0x3db/0x1b90 [] ? __lock_acquire+0x3db/0x1b90 [] ? internal_dev_xmit+0x5/0x140 [openvswitch] [] internal_dev_xmit+0x6c/0x140 [openvswitch] [] ? internal_dev_xmit+0x5/0x140 [openvswitch] [] dev_hard_start_xmit+0x2b9/0x5e0 [] ? netif_skb_features+0xd1/0x1f0 [] __dev_queue_xmit+0x800/0x930 [] ? __dev_queue_xmit+0x50/0x930 [] ? mark_held_locks+0x71/0x90 [] ? neigh_resolve_output+0x106/0x220 [] dev_queue_xmit+0x10/0x20 [] neigh_resolve_output+0x178/0x220 [] ? ip_finish_output2+0x1ff/0x590 [] ip_finish_output2+0x1ff/0x590 [] ? ip_finish_output2+0x7e/0x590 [] ip_do_fragment+0x831/0x8a0 [] ? ip_copy_metadata+0x1b0/0x1b0 [] ip_fragment.constprop.49+0x43/0x80 [] ip_finish_output+0x17c/0x340 [] ? nf_hook_slow+0xe4/0x190 [] ip_output+0x70/0x110 [] ? ip_fragment.constprop.49+0x80/0x80 [] ip_local_out+0x39/0x70 [] ip_send_skb+0x19/0x40 [] ip_push_pending_frames+0x33/0x40 [] icmp_push_reply+0xea/0x120 [] icmp_reply.constprop.23+0x1ed/0x230 [] icmp_echo.part.21+0x4e/0x50 [] ? __lock_is_held+0x54/0x70 [] ? rcu_read_lock_held+0x5e/0x70 [] icmp_echo+0x36/0x70 [] icmp_rcv+0x271/0x450 [] ip_local_deliver_finish+0x127/0x3a0 [] ? ip_local_deliver_finish+0x41/0x3a0 [] ip_local_deliver+0x60/0xd0 [] ? ip_rcv_finish+0x560/0x560 [] ip_rcv_finish+0xdd/0x560 [] ip_rcv+0x283/0x3e0 [] ? match_held_lock+0x192/0x200 [] ? inet_del_offload+0x40/0x40 [] __netif_receive_skb_core+0x392/0xae0 [] ? process_backlog+0x8e/0x230 [] ? mark_held_locks+0x71/0x90 [] __netif_receive_skb+0x18/0x60 [] process_backlog+0x78/0x230 [] ? process_backlog+0xdd/0x230 [] net_rx_action+0x155/0x400 [] __do_softirq+0xcc/0x420 [] ? ip_finish_output2+0x217/0x590 [] do_softirq_own_stack+0x1c/0x30 [] do_softirq+0x4e/0x60 [] __local_bh_enable_ip+0xa8/0xb0 [] ip_finish_output2+0x240/0x590 [] ? ip_do_fragment+0x831/0x8a0 [] ip_do_fragment+0x831/0x8a0 [] ? ip_copy_metadata+0x1b0/0x1b0 [] ip_fragment.constprop.49+0x43/0x80 [] ip_finish_output+0x17c/0x340 [] ? nf_hook_slow+0xe4/0x190 [] ip_output+0x70/0x110 [] ? ip_fragment.constprop.49+0x80/0x80 [] ip_local_out+0x39/0x70 [] ip_send_skb+0x19/0x40 [] ip_push_pending_frames+0x33/0x40 [] raw_sendmsg+0x7d3/0xc30 [] ? __lock_acquire+0x3db/0x1b90 [] ? inet_sendmsg+0xc7/0x1d0 [] ? __lock_is_held+0x54/0x70 [] inet_sendmsg+0x10a/0x1d0 [] ? inet_sendmsg+0x5/0x1d0 [] sock_sendmsg+0x38/0x50 [] ___sys_sendmsg+0x25f/0x270 [] ? handle_mm_fault+0x8dd/0x1320 [] ? _raw_spin_unlock+0x27/0x40 [] ? __do_page_fault+0x1e2/0x460 [] ? __fget_light+0x66/0x90 [] __sys_sendmsg+0x42/0x80 [] SyS_sendmsg+0x12/0x20 [] entry_SYSCALL_64_fastpath+0x12/0x6f Code: 00 00 44 89 e0 e9 7c fb ff ff 4c 89 ff e8 e7 e7 ff ff 41 8b 9d 80 00 00 00 2b 5d d4 89 d8 c1 f8 03 0f b7 c0 e9 33 ff ff f 66 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 66 66 90 55 48 RIP [] ip_do_fragment+0x892/0x8a0 RSP Fixes: 7f8a436eaa2c ("openvswitch: Add conntrack action") Signed-off-by: Joe Stringer Signed-off-by: David S. Miller net/ipv4/ip_fragment.c | 1 + net/ipv4/netfilter/nf_defrag_ipv4.c | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) commit 55ce625fc5e3a87e46a14c2cb062a3579f79b7e0 Merge: 92e963f 28b8d66 Author: Dave Airlie Date: Fri Jan 29 10:00:45 2016 +1000 Merge branch 'drm-fixes-4.5' of git://people.freedesktop.org/~agd5f/linux into drm-fixes Misc radeon and amdgpu fixes: - SMU firmware loading fix for Stoney - DP audio fixes for DCE4.1 - Don't expose fbdev device if no connectors - fix page table LRU list update handling * 'drm-fixes-4.5' of git://people.freedesktop.org/~agd5f/linux: drm/amdgpu: only move pt bos in LRU list on success drm/radeon: fix DP audio support for APU with DCE4.1 display engine drm/radeon: Add a common function for DFS handling drm/radeon: cleaned up VCO output settings for DP audio drm/amd/powerplay: Update SMU firmware loading for Stoney drm/amdgpu: don't init fbdev if we don't have any connectors drm/radeon: only init fbdev if we have connectors drm/radeon: Ensure radeon bo is unreserved in radeon_gem_va_ioctl drm/amdgpu: fix next_rptr handling for debugfs drm/radeon: properly byte swap vce firmware setup drm/amdgpu: add a message to indicate when powerplay is enabled (v2) drm/amdgpu: fix amdgpu_bo_pin_restricted VRAM placing v2 drm/amd/amdgpu: Improve amdgpu_dpm* macros to avoid unexpected result (v2) drm/amdgpu: Allow the driver to load if amdgpu.powerplay=1 on asics without powerplay support drm/amdgpu: Use drm_calloc_large for VM page_tables array drm/amdgpu: Add some tweaks to gfx 8 soft reset drm/amdgpu: fix tonga smu resume commit 2cc5e4caf4b9815c1c877701c85f7b3b6bfbf783 Merge: 2baaa2d 47faa1e Author: David S. Miller Date: Thu Jan 28 15:59:33 2016 -0800 Merge branch 'sctp-transport-races' Xin Long says: ==================== fix the transport dead race check by using atomic_add_unless on refcnt sctp: fix the transport dead race check by using atomic_add_unless on refcnt sctp: hold transport before we access t->asoc in sctp proc sctp: remove the dead field of sctp_transport ==================== Signed-off-by: David S. Miller commit 47faa1e4c50ec26e6e75dcd1ce53f064bd45f729 Author: Xin Long Date: Fri Jan 22 01:49:09 2016 +0800 sctp: remove the dead field of sctp_transport After we use refcnt to check if transport is alive, the dead can be removed from sctp_transport. The traversal of transport_addr_list in procfs dump is using list_for_each_entry_rcu, no need to check if it has been freed. sctp_generate_t3_rtx_event and sctp_generate_heartbeat_event is protected by sock lock, it's not necessary to check dead, either. also, the timers are cancelled when sctp_transport_free() is called, that it doesn't wait for refcnt to reach 0 to cancel them. Signed-off-by: Xin Long Signed-off-by: Marcelo Ricardo Leitner Signed-off-by: David S. Miller include/net/sctp/structs.h | 3 +-- net/sctp/proc.c | 4 ---- net/sctp/sm_sideeffect.c | 12 ------------ net/sctp/transport.c | 4 +--- 4 files changed, 2 insertions(+), 21 deletions(-) commit fba4c330c5b9d1beeae08a42ed4430f5055e7f27 Author: Xin Long Date: Fri Jan 22 01:49:08 2016 +0800 sctp: hold transport before we access t->asoc in sctp proc Previously, before rhashtable, /proc assoc listing was done by read-locking the entire hash entry and dumping all assocs at once, so we were sure that the assoc wasn't freed because it wouldn't be possible to remove it from the hash meanwhile. Now we use rhashtable to list transports, and dump entries one by one. That is, now we have to check if the assoc is still a good one, as the transport we got may be being freed. Signed-off-by: Xin Long Reviewed-by: Marcelo Ricardo Leitner Signed-off-by: David S. Miller net/sctp/proc.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 1eed677933b816978abc4e3e18ecae5f254cb9be Author: Xin Long Date: Fri Jan 22 01:49:07 2016 +0800 sctp: fix the transport dead race check by using atomic_add_unless on refcnt Now when __sctp_lookup_association is running in BH, it will try to check if t->dead is set, but meanwhile other CPUs may be freeing this transport and this assoc and if it happens that __sctp_lookup_association checked t->dead a bit too early, it may think that the association is still good while it was already freed. So we fix this race by using atomic_add_unless in sctp_transport_hold. After we get one transport from hashtable, we will hold it only when this transport's refcnt is not 0, so that we can make sure t->asoc cannot be freed before we hold the asoc again. Note that sctp association is not freed using RCU so we can't use atomic_add_unless() with it as it may just be too late for that either. Fixes: 4f0087812648 ("sctp: apply rhashtable api to send/recv path") Reported-by: Vlad Yasevich Signed-off-by: Xin Long Signed-off-by: Marcelo Ricardo Leitner Signed-off-by: David S. Miller include/net/sctp/structs.h | 2 +- net/sctp/input.c | 17 +++++++++++------ net/sctp/transport.c | 4 ++-- 3 files changed, 14 insertions(+), 9 deletions(-) commit 2baaa2d1386bd9949877a74ffc0dc0f2c5394b85 Merge: 3b9e948 bbeeda2 Author: David S. Miller Date: Thu Jan 28 15:55:32 2016 -0800 Merge branch 'mlxsw-fixes' Jiri Pirko says: ==================== mlxsw: driver fixes Couple of various mlxsw driver fixes. ==================== Signed-off-by: David S. Miller commit bbeeda27abc516af51ddd93c555b6324559dbb3b Author: Ido Schimmel Date: Wed Jan 27 15:20:26 2016 +0100 mlxsw: reg: Use correct offset in field definiton The rx_lane, tx_lane and module fields in the PMLP register don't have an additional offset besides the base one (0x04), so set it to 0x00. Fixes: 4ec14b7634b2 ("mlxsw: Add interface to access registers and process events") Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/reg.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 3f47f867814cdb08cd43d4b82f95bfde4a9ae579 Author: Ido Schimmel Date: Wed Jan 27 15:20:25 2016 +0100 mlxsw: spectrum: Compare local ports instead of pointers When dumping the FDB we can't compare the actual pointers of the ports structs, as it's possible the struct represents a vPort instead of the underlying physical port. Solve this by comparing the local port number instead, as it's shared between the physical ports and all the vPorts on top of him. Fixes: 54a732018d8e ("mlxsw: spectrum: Adjust switchdev ops for VLAN devices") Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 304f51584f4591789539c0d37fc359bc129a4ff0 Author: Ido Schimmel Date: Wed Jan 27 15:20:24 2016 +0100 mlxsw: spectrum: Dump LAG FDB records only once LAG FDB records can only point to LAG devices or VLAN devices configured on top of them. Therefore, when dumping the FDB we shouldn't associate these records with the underlying physical ports. Fixes: 8a1ab5d76639 ("mlxsw: spectrum: Implement FDB add/remove/dump for LAG") Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit e43aca22ed039af235acc2ee0384f943c1fbfe83 Author: Ido Schimmel Date: Wed Jan 27 15:20:23 2016 +0100 mlxsw: spectrum: Use correct netdev when notifying bridge LAG FDB entries pointing to VLAN devices should be reported to the bridge with the matching VLAN device and not the underlying LAG device. Fixes: aac78a440887 ("mlxsw: spectrum: Adjust FDB notifications for VLAN devices") Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 004f85ea8258a2ffecdeecd154bdbe08409c13a4 Author: Ido Schimmel Date: Wed Jan 27 15:20:22 2016 +0100 mlxsw: spectrum: Don't report VLAN for 802.1D FDB entries When dumping the hardware FDB we should report entries pointing to VLAN devices with VLAN 0, as packets coming into the bridge are untagged. Likewise, pass FDB_{ADD,DEL} notifications with VLAN 0 for these devices. Fixes: 54a732018d8e ("mlxsw: spectrum: Adjust switchdev ops for VLAN devices") Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller .../ethernet/mellanox/mlxsw/spectrum_switchdev.c | 31 +++++++++++----------- 1 file changed, 16 insertions(+), 15 deletions(-) commit 45827d780aab533a777f965798018118b373cc0b Author: Ido Schimmel Date: Wed Jan 27 15:20:21 2016 +0100 mlxsw: spectrum: Notify bridge's FDB only based on learning_sync When we disable learning on bridge port we should still update the software bridge's FDB when entry pointing to this bridge port is aged-out. We can otherwise have an inconsistency between software and hardware tables. Fixes: 8a1ab5d76639 ("mlxsw: spectrum: Implement FDB add/remove/dump for LAG") Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit 454911333b1d86e1d58a557be271bc6b7e9e7f10 Author: Ido Schimmel Date: Wed Jan 27 15:20:20 2016 +0100 mlxsw: spectrum: Disable learning according to STP state When port is put into LISTENING state it shouldn't populate the FDB, so set the port's STP state in hardware to DISCARDING instead of LEARNING. It will therefore keep listening to BPDU packets, but discard other non-control packets and won't perform any learning. Fixes: 56ade8fe3fe1 ("mlxsw: spectrum: Add initial support for Spectrum ASIC") Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9cb026ebb8ab76829a8d8e4bbd057168ac38fb86 Author: Ido Schimmel Date: Wed Jan 27 15:20:19 2016 +0100 mlxsw: spectrum: Don't forward packets when STP state is DISABLED When STP state is set to DISABLED the port is assumed to be inactive, but currently we forward packets ingressing through it. Instead, set the port's STP state in hardware to DISCARDING, which means it doesn't forward packets or perform any learning, but it does trap control packets. However, these packets will be dropped by bridge code, which results in the expected behavior. Fixes: 56ade8fe3fe1 ("mlxsw: spectrum: Add initial support for Spectrum ASIC") Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 039c49a6e6cf673a2bec572b3360209ec418a152 Author: Ido Schimmel Date: Wed Jan 27 15:20:18 2016 +0100 mlxsw: spectrum: Flush FDB when leaving bridge As explained in previous commit, we should always take care of flushing the FDB in the driver and not rely on bridge code. We need to distinguish between two cases with regards to LAG: 1) Port is leaving LAG while LAG is bridged (or VLAN devices on top of it). In this case don't flush the FDB entries pointing to the LAG ID, as this will affect other ports still member in the LAG. Only flush the FDB when the last port in the LAG is leaving the bridge. 2) LAG device is leaving the bridge. In this case the CHANGEUPPER event is simply propagated to each member port, so make each port flush the FDB in its turn. Note that emptying a bridged LAG from ports creates an inconsistency between hardware and software. A user who later (< ageing_time) re-populates the LAG won't have any FDB entries pointing to the LAG ID in hardware, but they will be present in the software bridge's FDB. Currently there is no good solution to this problem, but this will be addressed by us in the future. In order to optimize the flushing process, flush by port or LAG ID if there are no VLAN interfaces on top of the port. Otherwise, flush using (Port / LAG ID, FID=VID} for each of the lower 4K FIDs. In the case of VLAN device simply flush using {Port / LAG ID, vFID} with the vFID to which the VLAN device is mapped to. Fixes: 56ade8fe3fe1 ("mlxsw: spectrum: Add initial support for Spectrum ASIC") Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 137 +++++++++++++++++++++++-- 1 file changed, 129 insertions(+), 8 deletions(-) commit 419332713581f0cbec6414f5e779afb79ddee3dd Author: Ido Schimmel Date: Wed Jan 27 15:20:17 2016 +0100 mlxsw: reg: Add the Switch Filtering DB Flush register When removing a net device from a bridge we should flush the FDB entries associated with this net device. Up until now, we relied upon bridge code to do that for us, but it is possible for user to prevent hardware from syncing with the software bridge (learning_sync=0), so we need to flush overselves. Add the Switch Filtering DB Flush (SFDF) register that is used to flush FDB entries according to different parameters (per-port, per-FID etc). Fixes: 56ade8fe3fe1 ("mlxsw: spectrum: Add initial support for Spectrum ASIC") Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/reg.h | 88 +++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) commit 4dc236c31733f5d2a3872c88cf12f607d7d36905 Author: Ido Schimmel Date: Wed Jan 27 15:20:16 2016 +0100 mlxsw: spectrum: Handle port leaving LAG while bridged It is possible for a user to remove a port from a LAG device, while the LAG device or VLAN devices on top of it are bridged. In these cases, bridge's teardown sequence is never issued, so we need to take care of it ourselves. When LAG's unlinking event is received by port netdev: 1) Traverse its vPorts list and make those member in a bridge leave it. They will be deleted later by LAG code. 2) Make the port netdev itself leave its bridge if member in one. Fixes: 0d65fc13042f ("mlxsw: spectrum: Implement LAG port join/leave") Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 30 +++++++++++++++++++--- drivers/net/ethernet/mellanox/mlxsw/spectrum.h | 1 + .../ethernet/mellanox/mlxsw/spectrum_switchdev.c | 8 ++++++ 3 files changed, 36 insertions(+), 3 deletions(-) commit 70f340df24518d36eeaefb6652d492f250115c19 Author: Cyrille Pitchen Date: Wed Jan 27 17:48:32 2016 +0100 spi: atmel: fix gpio chip-select in case of non-DT platform The non-DT platform that uses this driver (actually the AVR32) was taking a bad branch for determining if the IP would use gpio for CS. Adding the presence of DT as a condition fixes this issue. Fixes: 4820303480a1 ("spi: atmel: add support for the internal chip-select of the spi controller") Reported-by: Mans Rullgard Signed-off-by: Cyrille Pitchen [nicolas.ferre@atmel.com: extract from ml discussion] Signed-off-by: Nicolas Ferre Tested-by: Mans Rullgard Signed-off-by: Mark Brown Cc: stable@vger.kernel.org drivers/spi/spi-atmel.c | 1 + 1 file changed, 1 insertion(+) commit 6a3351b612b72c558910c88a43e2ef6d7d68bc97 Author: Peter Zijlstra Date: Mon Jan 25 14:09:54 2016 +0100 perf: Fix race in perf_event_exit_task_context() There is a race between perf_event_exit_task_context() and orphans_remove_work() which results in a use-after-free. We mark ctx->task with TASK_TOMBSTONE to indicate a context is 'dead', under ctx->lock. After which point event_function_call() on any event of that context will NOP A concurrent orphans_remove_work() will only hold ctx->mutex for the list iteration and not serialize against this. Therefore its possible that orphans_remove_work()'s perf_remove_from_context() call will fail, but we'll continue to free the event, with the result of free'd memory still being on lists and everything. Once perf_event_exit_task_context() gets around to acquiring ctx->mutex it too will iterate the event list, encounter the already free'd event and proceed to free it _again_. This fails with the WARN in free_event(). Plug the race by having perf_event_exit_task_context() hold ctx::mutex over the whole tear-down, thereby 'naturally' serializing against all other sites, including the orphan work. Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Cc: alexander.shishkin@linux.intel.com Cc: dsahern@gmail.com Cc: namhyung@kernel.org Link: http://lkml.kernel.org/r/20160125130954.GY6357@twins.programming.kicks-ass.net Signed-off-by: Ingo Molnar kernel/events/core.c | 50 +++++++++++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 21 deletions(-) commit 78cd2c748f459739ff864dd9308c0f6caf7f6e41 Author: Peter Zijlstra Date: Mon Jan 25 14:08:45 2016 +0100 perf: Fix orphan hole We should set event->owner before we install the event, otherwise there is a hole where the target task can fork() and we'll not inherit the event because it thinks the event is orphaned. Signed-off-by: Peter Zijlstra Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar kernel/events/core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 28b8d66e0c1cc6c02b8159ae44aec359e12feefa Author: Nicolai Hähnle Date: Wed Jan 27 11:04:19 2016 -0500 drm/amdgpu: only move pt bos in LRU list on success This fixes a race condition in the error case: since the pt bos have not necessarily been reserved in case of an error, we could move a pt bo that is currently in the middle of being evicted/moved by another process, which then resulted in a BUG_ON in ttm_bo_add_to_lru. Reviewed-by: Christian König Signed-off-by: Nicolai Hähnle Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a89a798a010e8fef66d1a85fa8b1f021304c7246 Merge: d8f00cd 4152b38 Author: Greg Kroah-Hartman Date: Thu Jan 28 08:32:42 2016 -0800 Merge tag 'usb-serial-4.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-linus Johan writes: USB-serial fixes for v4.5-rc2 Here are two fixes of crashes in the visor driver that could be triggered using bad (malicious) descriptors, a fix for two memory leaks in the new mxu11x0 driver, and an interface-blacklist fix for the option driver. Included are also some new device ids. Signed-off-by: Johan Hovold commit 2d19fc639516dc7b4184450b315c931d38549e61 Author: Aneesh Kumar K.V Date: Wed Jan 27 12:04:20 2016 +0530 powerpc/mm: Fixup _HPAGE_CHG_MASK This was wrongly updated by commit 7aa9a23c69ea ("powerpc, thp: remove infrastructure for handling splitting PMDs") during the last merge window. Fix it up. This could lead to incorrect behaviour in THP and/or mprotect(), at a minimum. Fixes: 7aa9a23c69ea ("powerpc, thp: remove infrastructure for handling splitting PMDs") Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/include/asm/book3s/64/hash.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 370f06c88528b3988fe24a372c10e1303bb94cf6 Author: Madhavan Srinivasan Date: Mon Jan 25 14:03:46 2016 +0530 powerpc/perf: Remove PPMU_HAS_SSLOT flag for Power8 Commit 7a7868326d77 ("powerpc/perf: Add an explict flag indicating presence of SLOT field") introduced the PPMU_HAS_SSLOT flag to remove the assumption that MMCRA[SLOT] was present when PPMU_ALT_SIPR was not set. That commit's changelog also mentions that Power8 does not support MMCRA[SLOT]. However when the Power8 PMU support was merged, it errnoeously included the PPMU_HAS_SSLOT flag. So remove PPMU_HAS_SSLOT from the Power8 flags. mpe: On systems where MMCRA[SLOT] exists, the field occupies bits 37:39 (IBM numbering). On Power8 bit 37 is reserved, and 38:39 overlap with the high bits of the Threshold Event Counter Mantissa. I am not aware of any published events which use the threshold counting mechanism, which would cause the mantissa bits to be set. So in practice this bug is unlikely to trigger. Fixes: e05b9b9e5c10 ("powerpc/perf: Power8 PMU support") Signed-off-by: Madhavan Srinivasan Signed-off-by: Michael Ellerman arch/powerpc/perf/power8-pmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 642f0f2a1563b5ab6f5de896f602177ac1f06652 Author: Amitoj Kaur Chawla Date: Mon Jan 25 23:03:57 2016 +0530 drm/amdkfd: Remove unnecessary cast in kfree Remove an unnecassary cast in the argument to kfree. Found using Coccinelle. The semantic patch used to find this is as follows: // @@ type T; expression *f; @@ - kfree((T *)(f)); + kfree(f); // Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/kfd_process.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f785d98711925aceb198fb96abd786fd19fad657 Author: Colin Ian King Date: Fri Jan 22 17:35:26 2016 +0000 drm/amdgpu: fix non-ANSI declaration of amdgpu_amdkfd_gfx_*_get_functions() amdgpu_amdkfd_gfx_7_get_functions and amdgpu_amdkfd_gfx_8_0_get_functions have no parameters, so use the normal void parameter convention to make them match their prototypes in the header file drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h Signed-off-by: Colin Ian King Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 39178bb2b3e78cfcb9b6311fa9e2b8d6e3cfe51f Author: Arnd Bergmann Date: Mon Jan 25 16:59:09 2016 +0100 pinctrl: nomadik: hide unused functions The nomadik pinctrl driver has two functions that are only used for debugfs output and are otherwise unused: drivers/pinctrl/nomadik/pinctrl-abx500.c:194:12: error: 'abx500_get_pull_updown' defined but not used drivers/pinctrl/nomadik/pinctrl-abx500.c:471:12: error: 'abx500_get_mode' defined but not used This makes the function definitions conditional to avoid the harmless warnings. Signed-off-by: Arnd Bergmann Signed-off-by: Linus Walleij drivers/pinctrl/nomadik/pinctrl-abx500.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit f5d0ca224a071d7077bbdae347cb514949d64fd9 Author: Lucas Stach Date: Tue Jan 12 15:04:30 2016 +0100 ARM: dts: imx6: remove bogus interrupt-parent from CAAM node The interrupt-parent property is not needed as it is inherited from the parent bus and in the case of the CAAM node actively points to the wrong interrupt controller (GIC instead of GPC). This leads to the CAAM IRQs not getting unmasked at the GPC level, leaving them unable to wake the CPU from wait mode, potentially impacting performance of the CAAM unit when CPUidle is enabled. Signed-off-by: Lucas Stach Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6qdl.dtsi | 1 - 1 file changed, 1 deletion(-) commit 7ee96216c31aabe1eb42fb91ff50dae9fcd014b2 Author: Takashi Iwai Date: Thu Jan 28 07:54:16 2016 +0100 ALSA: dummy: Disable switching timer backend via sysfs ALSA dummy driver can switch the timer backend between system timer and hrtimer via its hrtimer module option. This can be also switched dynamically via sysfs, but it may lead to a memory corruption when switching is done while a PCM stream is running; the stream instance for the newly switched timer method tries to access the memory that was allocated by another timer method although the sizes differ. As the simplest fix, this patch just disables the switch via sysfs by dropping the writable bit. BugLink: http://lkml.kernel.org/r/CACT4Y+ZGEeEBntHW5WHn2GoeE0G_kRrCmUh6=dWyy-wfzvuJLg@mail.gmail.com Reported-by: Dmitry Vyukov Cc: Signed-off-by: Takashi Iwai sound/drivers/dummy.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ac1efcfb35f73657ec1e28b1e8a3c895529c1108 Author: Randy Dunlap Date: Wed Jan 27 18:04:10 2016 -0800 ALSA: timer: fix SND_PCM_TIMER Kconfig text Fix spelling and typos for SND_PCM_TIMER. Signed-off-by: Randy Dunlap Signed-off-by: Takashi Iwai sound/core/Kconfig | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 60dee3ca27b3613e6519df52d02eadf71f853859 Author: Gioh Kim Date: Wed Jan 27 12:02:09 2016 +0100 hwmon: (fam15h_power) Add bit masking for tdp_limit Add bit masking to read ApmTdpLimit precisely Signed-off-by: Gioh Kim Acked-by: Borislav Petkov Acked-by: Huang Rui Signed-off-by: Guenter Roeck drivers/hwmon/fam15h_power.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 2370abdab530718b61afc222c51901bdc2884ee2 Author: Trond Myklebust Date: Wed Jan 27 20:32:50 2016 -0500 NFS: Cleanup - rename NFS_LAYOUT_RETURN_BEFORE_CLOSE NFS_LAYOUT_RETURN_BEFORE_CLOSE is being used to signal that a layoutreturn is needed, either due to a layout recall or to a layout error. Rename it to NFS_LAYOUT_RETURN_REQUESTED in order to clarify its purpose. Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 2 +- fs/nfs/flexfilelayout/flexfilelayoutdev.c | 2 +- fs/nfs/pnfs.c | 10 +++++----- fs/nfs/pnfs.h | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) commit d4f1b06d685d11ebdaccf11c0db1cb3c78736862 Author: Dmitry Torokhov Date: Sat Jan 16 10:04:49 2016 -0800 Input: vmmouse - fix absolute device registration We should set device's capabilities first, and then register it, otherwise various handlers already present in the kernel will not be able to connect to the device. Reported-by: Lauri Kasanen Cc: stable@vger.kernel.org Signed-off-by: Dmitry Torokhov drivers/input/mouse/vmmouse.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit 015bb5e134544492d840cee17d7442194cfb0fe4 Author: Grygorii Strashko Date: Sat Jan 16 10:35:47 2016 -0800 Input: serio - drop warnings in case of EPROBE_DEFER from serio_find_driver() Now serio_find_driver() will print warnings in case device_attach() returns -EPROBE_DEFER. Those warnings are obsolete, in genral, because: - DD core can report the same if required - since commit 013c074f8642 ("PM / sleep: prohibit devices probing during suspend/hibernation") the devices probing is prohibited during System suspend and deferred device will be carefully reprobed once Resume is finished. Hence, drop warnings in case of EPROBE_DEFER from serio_find_driver(). Signed-off-by: Grygorii Strashko Acked-by: Rafael J. Wysocki Signed-off-by: Dmitry Torokhov drivers/input/serio/serio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 497e1b3f6b6d3cf2206d15687eb7bfa0ab0e968d Author: Amitoj Kaur Chawla Date: Wed Jan 27 15:44:09 2016 -0800 Input: cap11xx - add missing of_node_put for_each_child_of_node performs an of_node_get on each iteration, so to break out of the loop an of_node_put is required. Found using Coccinelle. Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Dmitry Torokhov drivers/input/keyboard/cap11xx.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit af6e94634d0a77aa42a9fdee35abd00a95b4ca54 Author: Arnd Bergmann Date: Wed Jan 27 15:43:32 2016 -0800 Input: sirfsoc-onkey - allow modular build CONFIG_INPUT may itself be a loadable module, but the sirf power key driver is listed as 'bool', which makes it possible to select a broken configuration with the driver built-in but the subsystem not loaded. In this configuration, we get a link error: drivers/input/built-in.o: In function `sirfsoc_pwrc_isr': drivers/input/misc/sirfsoc-onkey.c:63: undefined reference to `input_event' drivers/input/built-in.o: In function `sirfsoc_pwrc_isr': include/linux/input.h:414: undefined reference to `input_event' drivers/input/built-in.o: In function `sirfsoc_pwrc_probe': drivers/input/misc/sirfsoc-onkey.c:132: undefined reference to `devm_input_allocate_device' drivers/input/misc/sirfsoc-onkey.c:139: undefined reference to `input_set_capability' drivers/input/misc/sirfsoc-onkey.c:161: undefined reference to `input_register_device' drivers/input/built-in.o: In function `sirfsoc_pwrc_report_event': drivers/input/misc/sirfsoc-onkey.c:48: undefined reference to `input_event' drivers/input/built-in.o: In function `sirfsoc_pwrc_report_event': include/linux/input.h:414: undefined reference to `input_event' drivers/input/built-in.o:(.debug_addr+0x24): undefined reference to `input_event' drivers/input/built-in.o:(.debug_addr+0xbc): undefined reference to `devm_input_allocate_device' drivers/input/built-in.o:(.debug_addr+0x104): undefined reference to `input_set_capability' drivers/input/built-in.o:(.debug_addr+0x128): undefined reference to `input_register_device' This marks the driver as 'tristate' so it becomes possible to have it in a loadable module, mainly to help with randconfig builds. We also have to add a missing semicolon here, which ended up not being needed in built-in mode because the following MODULE_DEVICE_TABLE is an empty macro followed by another semicolon then. Signed-off-by: Arnd Bergmann Signed-off-by: Dmitry Torokhov drivers/input/misc/Kconfig | 2 +- drivers/input/misc/sirfsoc-onkey.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit a6ed4a18ba6a6f5a01e024b9d221d6439bf6ca4c Author: Arnd Bergmann Date: Wed Jan 27 15:42:25 2016 -0800 Input: xpad - remove unused function There are two definitions of xpad_identify_controller(), one is used when CONFIG_JOYSTICK_XPAD_LEDS is set, but the other one is empty and never used, and we get a gcc warning about it: drivers/input/joystick/xpad.c:1210:13: warning: 'xpad_identify_controller' defined but not used [-Wunused-function] This removes the second definition. Signed-off-by: Arnd Bergmann Fixes: cae705baa40b ("Input: xpad - re-send LED command on present event") Signed-off-by: Dmitry Torokhov drivers/input/joystick/xpad.c | 1 - 1 file changed, 1 deletion(-) commit 1c1ecf172a4616cd8567182b99efa7a5df77f5d2 Merge: eee0450 103502a Author: James Morris Date: Thu Jan 28 10:53:54 2016 +1100 Merge tag 'seccomp-4.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux into for-linus commit eee045021fb22aeac7f5d6f2092430b530c880ee Author: David Howells Date: Wed Jan 27 01:02:03 2016 +0000 KEYS: Only apply KEY_FLAG_KEEP to a key if a parent keyring has it set KEY_FLAG_KEEP should only be applied to a key if the keyring it is being linked into has KEY_FLAG_KEEP set. To this end, partially revert the following patch: commit 1d6d167c2efcfe9539d9cffb1a1be9c92e39c2c0 Author: Mimi Zohar Date: Thu Jan 7 07:46:36 2016 -0500 KEYS: refcount bug fix to undo the change that made it unconditional (Mimi got it right the first time). Without undoing this change, it becomes impossible to delete, revoke or invalidate keys added to keyrings through __key_instantiate_and_link() where the keyring has itself been linked to. To test this, run the following command sequence: keyctl newring foo @s keyctl add user a a %:foo keyctl unlink %user:a %:foo keyctl clear %:foo With the commit mentioned above the third and fourth commands fail with EPERM when they should succeed. Reported-by: Stephen Gallager Signed-off-by: David Howells Acked-by: Mimi Zohar cc: Mimi Zohar cc: keyrings@vger.kernel.org cc: stable@vger.kernel.org Signed-off-by: James Morris security/keys/key.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 46560388c476c8471fde7712c10f9fad8d0d1875 Author: Ray Jui Date: Wed Jan 27 16:52:24 2016 -0600 PCI: iproc: Allow multiple devices except on PAXC Commit 943ebae781f5 ("PCI: iproc: Add PAXC interface support") only allowed device 0, which is a regression on BCMA-based platforms. All systems support only one device, a Root Port at 00:00.0, on the root bus. PAXC-based systems support only the Root Port (00:00.0) and a single device (with multiple functions) below it, e.g., 01:00.0, 01:00.1, etc. Non-PAXC systems support arbitrary devices below the Root Port. [bhelgaas: changelog, fold in removal of MAX_NUM_PAXC_PF check] Fixes: 943ebae781f5 ("PCI: iproc: Add PAXC interface support") Reported-by: Rafal Milecki Signed-off-by: Ray Jui Signed-off-by: Bjorn Helgaas drivers/pci/host/pcie-iproc.c | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) commit b331bc20d9281213f7fb67912638e0fb5baeb324 Author: Arnd Bergmann Date: Mon Jan 25 16:45:48 2016 +0100 cpufreq: cpufreq-dt: avoid uninitialized variable warnings: gcc warns quite a bit about values returned from allocate_resources() in cpufreq-dt.c: cpufreq-dt.c: In function 'cpufreq_init': cpufreq-dt.c:327:6: error: 'cpu_dev' may be used uninitialized in this function [-Werror=maybe-uninitialized] cpufreq-dt.c:197:17: note: 'cpu_dev' was declared here cpufreq-dt.c:376:2: error: 'cpu_clk' may be used uninitialized in this function [-Werror=maybe-uninitialized] cpufreq-dt.c:199:14: note: 'cpu_clk' was declared here cpufreq-dt.c: In function 'dt_cpufreq_probe': cpufreq-dt.c:461:2: error: 'cpu_clk' may be used uninitialized in this function [-Werror=maybe-uninitialized] cpufreq-dt.c:447:14: note: 'cpu_clk' was declared here The problem is that it's slightly hard for gcc to follow return codes across PTR_ERR() calls. This patch uses explicit assignments to the "ret" variable to make it easier for gcc to verify that the code is actually correct, without the need to add a bogus initialization. Signed-off-by: Arnd Bergmann Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq-dt.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit fb2a24a1c6457d21df9fae0dd66b20c63ba56077 Author: Arnd Bergmann Date: Mon Jan 25 16:44:38 2016 +0100 cpufreq: pxa2xx: fix pxa_cpufreq_change_voltage prototype There are two definitions of pxa_cpufreq_change_voltage, with slightly different prototypes after one of them had its argument marked 'const'. Now the other one (for !CONFIG_REGULATOR) produces a harmless warning: drivers/cpufreq/pxa2xx-cpufreq.c: In function 'pxa_set_target': drivers/cpufreq/pxa2xx-cpufreq.c:291:36: warning: passing argument 1 of 'pxa_cpufreq_change_voltage' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] ret = pxa_cpufreq_change_voltage(&pxa_freq_settings[idx]); ^ drivers/cpufreq/pxa2xx-cpufreq.c:205:12: note: expected 'struct pxa_freqs *' but argument is of type 'const struct pxa_freqs *' static int pxa_cpufreq_change_voltage(struct pxa_freqs *pxa_freq) ^ This changes the prototype in the same way as the other, which avoids the warning. Fixes: 03c229906311 (cpufreq: pxa: make pxa_freqs arrays const) Signed-off-by: Arnd Bergmann Acked-by: Viresh Kumar Cc: 4.2+ # 4.2+ Signed-off-by: Rafael J. Wysocki drivers/cpufreq/pxa2xx-cpufreq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 993e9fe1e70aedbb6e9670211f1ad56beea8373d Author: Arnd Bergmann Date: Mon Jan 25 16:48:28 2016 +0100 PM: APM_EMULATION does not depend on PM The APM emulation code does multiple things, and some of them depend on PM_SLEEP, while the battery management does not. However, selecting the symbol like SHARPSL_PM does causes a Kconfig warning: warning: (SHARPSL_PM && PMAC_APM_EMU) selects APM_EMULATION which has unmet direct dependencies (PM && SYS_SUPPORTS_APM_EMULATION) From all I can tell, this is completely harmless, and we can simply allow APM_EMULATION to be enabled here, even if PM is not. Signed-off-by: Arnd Bergmann Signed-off-by: Rafael J. Wysocki kernel/power/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2dadfd7564ef28391609c7ef896fd85218799012 Author: Gautham R Shenoy Date: Wed Jan 27 12:02:26 2016 +0530 cpufreq: Use list_is_last() to check last entry of the policy list Currently next_policy() explicitly checks if a policy is the last policy in the cpufreq_policy_list. Use the standard list_is_last primitive instead. Signed-off-by: Gautham R. Shenoy Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit e4b133cc4b30b48d488e4e4fffb132f173ce4358 Author: Viresh Kumar Date: Mon Jan 25 22:33:46 2016 +0530 cpufreq: Fix NULL reference crash while accessing policy->governor_data There is a race discovered by Juri, where we are able to: - create and read a sysfs file before policy->governor_data is being set to a non NULL value. OR - set policy->governor_data to NULL, and reading a file before being destroyed. And so such a crash is reported: Unable to handle kernel NULL pointer dereference at virtual address 0000000c pgd = edfc8000 [0000000c] *pgd=bfc8c835 Internal error: Oops: 17 [#1] SMP ARM Modules linked in: CPU: 4 PID: 1730 Comm: cat Not tainted 4.5.0-rc1+ #463 Hardware name: ARM-Versatile Express task: ee8e8480 ti: ee930000 task.ti: ee930000 PC is at show_ignore_nice_load_gov_pol+0x24/0x34 LR is at show+0x4c/0x60 pc : [] lr : [] psr: a0070013 sp : ee931dd0 ip : ee931de0 fp : ee931ddc r10: ee4bc290 r9 : 00001000 r8 : ef2cb000 r7 : ee4bc200 r6 : ef2cb000 r5 : c0af57b0 r4 : ee4bc2e0 r3 : 00000000 r2 : 00000000 r1 : c0928df4 r0 : ef2cb000 Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none Control: 10c5387d Table: adfc806a DAC: 00000051 Process cat (pid: 1730, stack limit = 0xee930210) Stack: (0xee931dd0 to 0xee932000) 1dc0: ee931dfc ee931de0 c058ae88 c058f1a4 1de0: edce3bc0 c07bfca4 edce3ac0 00001000 ee931e24 ee931e00 c01fcb90 c058ae48 1e00: 00000001 edce3bc0 00000000 00000001 ee931e50 ee8ff480 ee931e34 ee931e28 1e20: c01fb33c c01fcb0c ee931e8c ee931e38 c01a5210 c01fb314 ee931e9c ee931e48 1e40: 00000000 edce3bf0 befe4a00 ee931f78 00000000 00000000 000001e4 00000000 1e60: c00545a8 edce3ac0 00001000 00001000 befe4a00 ee931f78 00000000 00001000 1e80: ee931ed4 ee931e90 c01fbed8 c01a5038 ed085a58 00020000 00000000 00000000 1ea0: c0ad72e4 ee931f78 ee8ff488 ee8ff480 c077f3fc 00001000 befe4a00 ee931f78 1ec0: 00000000 00001000 ee931f44 ee931ed8 c017c328 c01fbdc4 00001000 00000000 1ee0: ee8ff480 00001000 ee931f44 ee931ef8 c017c65c c03deb10 ee931fac ee931f08 1f00: c0009270 c001f290 c0a8d968 ef2cb000 ef2cb000 ee8ff480 00000020 ee8ff480 1f20: ee8ff480 befe4a00 00001000 ee931f78 00000000 00000000 ee931f74 ee931f48 1f40: c017d1ec c017c2f8 c019c724 c019c684 ee8ff480 ee8ff480 00001000 befe4a00 1f60: 00000000 00000000 ee931fa4 ee931f78 c017d2a8 c017d160 00000000 00000000 1f80: 000a9f20 00001000 befe4a00 00000003 c000ffe4 ee930000 00000000 ee931fa8 1fa0: c000fe40 c017d264 000a9f20 00001000 00000003 befe4a00 00001000 00000000 Unable to handle kernel NULL pointer dereference at virtual address 0000000c 1fc0: 000a9f20 00001000 befe4a00 00000003 00000000 00000000 00000003 00000001 pgd = edfc4000 [0000000c] *pgd=bfcac835 1fe0: 00000000 befe49dc 000197f8 b6e35dfc 60070010 00000003 3065b49d 134ac2c9 [] (show_ignore_nice_load_gov_pol) from [] (show+0x4c/0x60) [] (show) from [] (sysfs_kf_seq_show+0x90/0xfc) [] (sysfs_kf_seq_show) from [] (kernfs_seq_show+0x34/0x38) [] (kernfs_seq_show) from [] (seq_read+0x1e4/0x4e4) [] (seq_read) from [] (kernfs_fop_read+0x120/0x1a0) [] (kernfs_fop_read) from [] (__vfs_read+0x3c/0xe0) [] (__vfs_read) from [] (vfs_read+0x98/0x104) [] (vfs_read) from [] (SyS_read+0x50/0x90) [] (SyS_read) from [] (ret_fast_syscall+0x0/0x1c) Code: e5903044 e1a00001 e3081df4 e34c1092 (e593300c) ---[ end trace 5994b9a5111f35ee ]--- Fix that by making sure, policy->governor_data is updated at the right places only. Cc: 4.2+ # 4.2+ Reported-and-tested-by: Juri Lelli Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq_governor.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 75274b33e779ae40a750bcb4bd0b07c4dfef4746 Author: Anders Roxell Date: Wed Jan 27 20:26:54 2016 +0100 cpuidle: coupled: remove unused define cpuidle_coupled_lock This was found with the -RT patch enabled, but the fix should apply to non-RT also. Used multi_v7_defconfig+PREEMPT_RT_FULL=y and this caused a compilation warning without this fix: ../drivers/cpuidle/coupled.c:122:21: warning: 'cpuidle_coupled_lock' defined but not used [-Wunused-variable] Signed-off-by: Anders Roxell Signed-off-by: Rafael J. Wysocki drivers/cpuidle/coupled.c | 1 - 1 file changed, 1 deletion(-) commit a3d09c73492e57a1189e410f67e4d2115b23a3a8 Author: Moritz Fischer Date: Wed Jan 27 08:29:27 2016 +0100 PM / Domains: Fix typo in comment Acked-by: Kevin Hilman Signed-off-by: Moritz Fischer Signed-off-by: Rafael J. Wysocki drivers/base/power/domain.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cdb300a041f5df1dfbde1367f95109b6449d1371 Author: Ulf Hansson Date: Wed Jan 27 09:10:37 2016 +0100 PM / Domains: Fix potential deadlock while adding/removing subdomains We must preserve the same order of how we acquire and release the lock for genpd, as otherwise we may encounter deadlocks. The power on phase of a genpd starts by acquiring its lock. Then it walks the hierarchy of its parent domains to be able to power on these first, as per design of genpd. From a locking perspective this means the locks of the parents becomes acquired after the lock of the subdomain. Let's fix pm_genpd_add|remove_subdomain() to maintain the same order of acquiring/releasing the genpd lock as being applied in the power on/off sequence. Signed-off-by: Ulf Hansson Signed-off-by: Rafael J. Wysocki drivers/base/power/domain.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit ee43a1a0cd2a8f33cddfa1323a60b5cfcf865ba0 Author: Aaro Koskinen Date: Sun Jan 24 00:36:40 2016 +0200 ASoC: simple-card: don't fail if sysclk setting is not supported Commit e22579713ae1 ("ASoC: simple card: set cpu-dai sysclk with mclk-fs") added sysclk / SND_SOC_CLOCK_OUT setting, that makes asoc_simple_card_hw_params fail if the operation is not supported, although the intention clearly was to ignore ENOTSUPP. Fix it. The patch fixes audio playback on Kirkwood / OpenRD client, where the following errors are seen: asoc-simple-card sound: ASoC: machine hw_params failed: -524 alsa-lib: /alsa-lib-1.0.28/src/pcm/pcm_hw.c:327:(snd_pcm_hw_hw_params) SNDRV_PCM_IOCTL_HW_PARAMS failed (-524): Unknown error 524 Fixes: e22579713ae1 ("ASoC: simple card: set cpu-dai sysclk with mclk-fs") Signed-off-by: Aaro Koskinen Reviewed-by: Andrew Lunn Signed-off-by: Mark Brown sound/soc/generic/simple-card.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 03c21cb775a313f1ff19be59c5d02df3e3526471 Merge: 075356c 481eaec Author: Linus Torvalds Date: Wed Jan 27 11:56:03 2016 -0800 Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost Pull virtio tests and fixes from Michael Tsirkin: "This fixes existing tests broken by barrier rework, and adds some new tests. Plus, there's a fix for an old bug in virtio-pci" * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: tools/virtio: add ringtest utilities sh: fix smp_store_mb for !SMP tools/virtio: use virt_xxx barriers virtio_pci: fix use after free on release commit b0a119fd990420d84baf8bc802bd2caf85edb464 Author: Ralf Baechle Date: Wed Jan 27 20:50:36 2016 +0100 Revert "MIPS: bcm63xx: nvram: Remove unused bcm63xx_nvram_get_psi_size() function" This reverts commit 5bdb102b3f9785cb88467bc7c75fa0f5cacc8dc5. Brian Norris is reporting: Ralf, Please revert this and send it to Linus (or else, I can send it myself). This is causing build failures, because I didn't take the rest of Simon's series yet. drivers/mtd/bcm63xxpart.c: In function 'bcm63xx_parse_cfe_partitions': drivers/mtd/bcm63xxpart.c:93:2: error: implicit declaration of function 'bcm63xx_nvram_get_psi_size' [-Werror=implicit-function-declaration] Signed-off-by: Ralf Baechle References: https://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20160126191607.GA111152%40google.com arch/mips/bcm63xx/nvram.c | 11 +++++++++++ arch/mips/include/asm/mach-bcm63xx/bcm63xx_nvram.h | 2 ++ 2 files changed, 13 insertions(+) commit 075356c1cf59e37368f60cd68bdc99a6e2e46d83 Merge: f0ce3ff 57adec8 Author: Linus Torvalds Date: Wed Jan 27 11:08:30 2016 -0800 Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux Pull arm64 fixes from Will Deacon: "The main thing here is to get us booting under qemu again after it turned out that not all of the PMU registers are emulated there, causing us to die early in boot. - Ensure we don't access PMU registers of the PMU is not implemented (fixes booting under QEMU) - Fix BUG_ON triggered during module loading with DEBUG_SET_MODULE_RONX - Ensure the kasan zero page is read-only - Hide __efistub_ symbol aliases from kallsyms, since they otherwise confuse the backtrace code - Ensure !PTE_WRITE kernel ptes are marked as read-only - defconfig updates based on requests and patches on the list - Other minor fixes (typos, build system)" * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: arm64: mm: avoid calling apply_to_page_range on empty range arm64: defconfig: updates for 4.5 arm64: errata: Add -mpc-relative-literal-loads to build flags Eliminate the .eh_frame sections from the aarch64 vmlinux and kernel modules arm64: Fix an enum typo in mm/dump.c arm64: Honour !PTE_WRITE in set_pte_at() for kernel mappings arm64: kernel: fix architected PMU registers unconditional access arm64: kasan: ensure that the KASAN zero page is mapped read-only arm64: hide __efistub_ aliases from kallsyms commit 57480484f9f7631738ef28b952eca3c9081c4291 Author: Jon Medhurst (Tixy) Date: Tue Jan 26 17:59:13 2016 +0000 component: Detach components when deleting master struct component_master_add_with_match calls find_components which, if any components already exist, it attaches to the master struct. However, if we later encounter an error the master struct is deleted, leaving components with a dangling pointer to it. If the error was a temporary one, e.g. for probe deferral, then when the master device is re-probed, it will fail to find the required components as they appear to already be attached to a master. Fix this by nulling components pointers to the master struct when it is deleted. This code is factored out into a separate function so it can be shared with component_master_del. Signed-off-by: Jon Medhurst Signed-off-by: Russell King drivers/base/component.c | 41 ++++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 19 deletions(-) commit f0ce3ff42e1eb2219d151e73219b9ad790ef52fb Merge: 119ae9b ed8e5a2 Author: Linus Torvalds Date: Wed Jan 27 10:50:42 2016 -0800 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm Pull KVM fixes from Paolo Bonzini: "s390 and POWER bug fixes, plus enabling the KVM-VFIO interface on s390" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: KVM doc: Fix KVM_SMI chapter number KVM: s390: fix memory overwrites when vx is disabled KVM: s390: Enable the KVM-VFIO device KVM: s390: fix guest fprs memory leak KVM: PPC: Fix ONE_REG AltiVec support KVM: PPC: Increase memslots to 512 KVM: PPC: Book3S PR: Remove unused variable 'vcpu_book3s' KVM: PPC: Fix emulation of H_SET_DABR/X on POWER8 KVM: PPC: Book3S HV: Handle unexpected traps in guest entry/exit code better commit 119ae9b7de212e5b31b09c2500a10096b3b5256f Author: Antonio Ospite Date: Wed Jan 27 13:37:34 2016 +0100 mailmap: redirect inactive address The email address is not active anymore, use Antonio's personal email address in case someone wants to get in touch for the code wrote for Amarula Solutions. Signed-off-by: Antonio Ospite Cc: Michael Trimarchi Signed-off-by: Linus Torvalds .mailmap | 1 + 1 file changed, 1 insertion(+) commit 16ab8a5cbea463e4d14bf0ce698f11fa64b70ae1 Author: Alex Williamson Date: Wed Jan 27 11:22:25 2016 -0700 vfio/noiommu: Don't use iommu_present() to track fake groups Using iommu_present() to determine whether an IOMMU group is real or fake has some problems. First, apparently Power systems don't register an IOMMU on the device bus, so the groups and containers get marked as noiommu and then won't bind to their actual IOMMU driver. Second, I expect we'll run into the same issue as we try to support vGPUs through vfio, since they're likely to emulate this behavior of creating an IOMMU group on a virtual device and then providing a vfio IOMMU backend tailored to the sort of isolation they provide, which won't necessarily be fully compatible with the IOMMU API. The solution here is to use the existing iommudata interface to IOMMU groups, which allows us to easily identify the fake groups we've created for noiommu purposes. The iommudata we set is purely arbitrary since we're only comparing the address, so we use the address of the noiommu switch itself. Reported-by: Alexey Kardashevskiy Reviewed-by: Alexey Kardashevskiy Tested-by: Alexey Kardashevskiy Tested-by: Anatoly Burakov Tested-by: Santosh Shukla Fixes: 03a76b60f8ba ("vfio: Include No-IOMMU mode") Signed-off-by: Alex Williamson drivers/vfio/vfio.c | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) commit 03590cb56d5df7367ccb9e6e0127593254401c42 Author: Russell King Date: Wed Jan 27 18:14:13 2016 +0000 ARM: wire up copy_file_range() syscall Add the copy_file_range() syscall to ARM. Signed-off-by: Russell King arch/arm/include/uapi/asm/unistd.h | 1 + arch/arm/kernel/calls.S | 1 + 2 files changed, 2 insertions(+) commit fe6fc1f132b4300c1f6defd43a5d673eb60a820d Author: Slava Grigorev Date: Tue Jan 26 17:35:57 2016 -0500 drm/radeon: fix DP audio support for APU with DCE4.1 display engine Properly setup the DFS divider for DP audio for DCE4.1. Signed-off-by: Slava Grigorev Reviewed-by: Alex Deucher Reviewed-by: Christian König Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/evergreen_hdmi.c | 10 +++++++++ drivers/gpu/drm/radeon/evergreend.h | 5 +++++ drivers/gpu/drm/radeon/radeon_atombios.c | 37 +++++++++++++++++++++++++------- 3 files changed, 44 insertions(+), 8 deletions(-) commit a64c9dab1c4d05c87ec8a1cb9b48915816462143 Author: Slava Grigorev Date: Tue Jan 26 16:56:25 2016 -0500 drm/radeon: Add a common function for DFS handling Move encoding of DFS (digital frequency synthesizer) divider into a separate function and improve calculation precision. Signed-off-by: Slava Grigorev Reviewed-by: Alex Deucher Reviewed-by: Christian König Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/dce6_afmt.c | 12 ++---------- drivers/gpu/drm/radeon/radeon_audio.c | 12 ++++++++++++ drivers/gpu/drm/radeon/radeon_audio.h | 1 + 3 files changed, 15 insertions(+), 10 deletions(-) commit c9a392eac18409f51a071520cf508c0b4ad990e2 Author: Slava Grigorev Date: Tue Jan 26 16:45:10 2016 -0500 drm/radeon: cleaned up VCO output settings for DP audio This is preparation for the fixes in the following patches. Signed-off-by: Slava Grigorev Reviewed-by: Alex Deucher Reviewed-by: Christian König Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/dce6_afmt.c | 2 +- drivers/gpu/drm/radeon/radeon.h | 2 +- drivers/gpu/drm/radeon/radeon_atombios.c | 12 +++++++----- drivers/gpu/drm/radeon/radeon_audio.c | 8 +------- 4 files changed, 10 insertions(+), 14 deletions(-) commit ab342c77fa60a30fce4d4228f88fd1b7bf566055 Author: Dmitry Lifshitz Date: Wed Dec 30 15:39:05 2015 +0200 ARM: dts: am57xx: sbc-am57x: correct Eth PHY settings Update Eth PHY settings to make it possible to run both phys at 1Gbps. Signed-off-by: Dmitry Lifshitz Signed-off-by: Tony Lindgren arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2fe8bab2b0b1ab72dc54814c5d904a1044b36acc Author: Dmitry Lifshitz Date: Wed Dec 30 15:39:04 2015 +0200 ARM: dts: am57xx: cl-som-am57x: fix CPSW EMAC pinmux Fix CPSW EMAC pinmux Signed-off-by: Dmitry Lifshitz Signed-off-by: Tony Lindgren arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5ddfc9fc9b2cd6be71bd002f0f36198d487d5085 Author: Dmitry Lifshitz Date: Wed Dec 30 15:39:03 2015 +0200 ARM: dts: am57xx: sbc-am57x: fix UART3 pinmux Fix UART3 pinmux. Signed-off-by: Dmitry Lifshitz Signed-off-by: Tony Lindgren arch/arm/boot/dts/am57xx-sbc-am57x.dts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e46c408fc74b96a562590bf7c7c2a2e18f88fb06 Author: Dmitry Lifshitz Date: Wed Dec 30 15:39:02 2015 +0200 ARM: dts: am57xx: cl-som-am57x: update SPI Flash frequency On-board SPI flash cat act at 48Mhz SPI bus frequency. Update the DT frequency property. Signed-off-by: Dmitry Lifshitz Signed-off-by: Tony Lindgren arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c71ff38e325fa41a610b051030db41d9cdf011ef Author: Dmitry Lifshitz Date: Wed Dec 30 15:39:01 2015 +0200 ARM: dts: am57xx: cl-som-am57x: set HOST mode for USB2 Setup USB2 to act in "HOST" mode by default. Signed-off-by: Dmitry Lifshitz Signed-off-by: Tony Lindgren arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bd73da8c3b9dd1cc8957bb2c90757fffb51b1396 Author: Dmitry Lifshitz Date: Wed Dec 30 15:39:00 2015 +0200 ARM: dts: am57xx: sbc-am57x: fix SB-SOM EEPROM I2C address Fix SB-SOM EEPROM I2C address Signed-off-by: Dmitry Lifshitz Signed-off-by: Tony Lindgren arch/arm/boot/dts/am57xx-sbc-am57x.dts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2dfdc7544219729ddf5c8e8404348b72e0d0d7c5 Author: Adam Ford Date: Fri Jan 1 10:38:28 2016 -0600 ARM: dts: LogicPD Torpedo: Revert Duplicative Entries Revert commit 7cd6ca770d1b ("ARM: dts: Change I2C2 and I2C3 to 400KHz for LogicPD Torpedo DM3730 devkit") It was already done and it is just a duplicate. Signed-off-by: Adam Ford Signed-off-by: Tony Lindgren arch/arm/boot/dts/logicpd-torpedo-som.dtsi | 8 -------- 1 file changed, 8 deletions(-) commit 95e7d03e086846df987121e6894f05aae44ff132 Author: Grygorii Strashko Date: Mon Dec 28 15:52:39 2015 +0200 ARM: dts: am437x: pixcir_tangoc: use correct flags for irq types Now IRQs for Pixcir Tangoc touchscreen are defined using IRQ_TYPE_NONE in am437x-gp-evm.dts and am43x-epos-evm.dts wich do not correspond HW. Hence, update am437x-gp-evm.dts and am43x-epos-evm.dts files and use correct flag IRQ_TYPE_EDGE_FALLING for irq types. While here, remove duplicated irq declaration for pixcir_ts@5c node in am437x-gp-evm.dts. Signed-off-by: Grygorii Strashko Signed-off-by: Tony Lindgren arch/arm/boot/dts/am437x-gp-evm.dts | 4 +--- arch/arm/boot/dts/am43x-epos-evm.dts | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) commit 84fb225ad257442d879a1f57c79184e31fb17aea Author: Grygorii Strashko Date: Mon Dec 28 15:52:04 2015 +0200 ARM: dts: am4372: fix irq type for arm twd and global timer As per ARM documentation PPI(0) ID27 - global timer interrupt is rising-edge sensitive. PPI(2) ID29 - twd interrupt is rising-edge sensitive. and the same is proved by GIC distributor register value GIC_DIST_CONFIG(0xC04) = 0x7DC00000. Hence, set IRQ triggering type to IRQ_TYPE_EDGE_RISING for ARM TWD and Global timers. Signed-off-by: Grygorii Strashko Signed-off-by: Tony Lindgren arch/arm/boot/dts/am4372.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 08b21d30c6f619aa3718620a7de91207d28bdbc5 Author: Rex Zhu Date: Thu Jan 21 19:24:44 2016 +0800 drm/amd/powerplay: Update SMU firmware loading for Stoney Fix firmware init on Stoney when powerplay is enabled. Signed-off-by: Rex Zhu Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/smumgr/cz_smumgr.c | 41 ++++++++++++++++++------ 1 file changed, 32 insertions(+), 9 deletions(-) commit d10d34aa7c49e75146fc7149363286348e75e530 Author: Marcel Holtmann Date: Mon Jan 25 08:44:03 2016 +0100 Bluetooth: Add missing COMPATIBLE_IOCTL for UART line discipline The HCIUARTGETDEVICE, HCIUARTSETFLAGS and HCIUARTGETFLAGS ioctl are missing the COMPATIBLE_IOCTL declaration. Signed-off-by: Marcel Holtmann Signed-off-by: Johan Hedberg fs/compat_ioctl.c | 3 +++ 1 file changed, 3 insertions(+) commit 103502a35cfce0710909da874f092cb44823ca03 Author: Jann Horn Date: Sat Dec 26 06:00:48 2015 +0100 seccomp: always propagate NO_NEW_PRIVS on tsync Before this patch, a process with some permissive seccomp filter that was applied by root without NO_NEW_PRIVS was able to add more filters to itself without setting NO_NEW_PRIVS by setting the new filter from a throwaway thread with NO_NEW_PRIVS. Signed-off-by: Jann Horn Cc: stable@vger.kernel.org Signed-off-by: Kees Cook kernel/seccomp.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit e1c0ebad3f77387c6684f8b7e86a4bbaca7577ac Author: Chris Mason Date: Wed Jan 27 06:38:45 2016 -0800 btrfs: don't use GFP_HIGHMEM for free-space-tree bitmap kzalloc This was copied incorrectly from the __vmalloc call. Signed-off-by: Chris Mason fs/btrfs/free-space-tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0b6ec8c0a3708f0a54b75ee1200772ec5226ec49 Author: Christian Borntraeger Date: Wed Jan 27 15:37:58 2016 +0100 debugobjects: Allow bigger number of early boot objects On my bigger s390 systems I always get "Out of memory. ODEBUG disabled". Since the number of objects is needed at compile time, we can not change the size dynamically before the caches etc are available. Doubling the size seems to do the trick. Since it is init data it will be freed anyway, this should be ok. Signed-off-by: Christian Borntraeger Link: http://lkml.kernel.org/r/1453905478-13409-1-git-send-email-borntraeger@de.ibm.com Signed-off-by: Thomas Gleixner lib/debugobjects.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a39bb9a0557a3fc860c3c9d67a7326b0d2f1bd66 Author: Chen Gang Date: Thu Jan 7 05:06:13 2016 +0800 include/linux/cleancache.h: Clean up code Let cleancache_fs_enabled() call cleancache_fs_enabled_mapping() directly. Remove redundant variable ret in cleancache_get_page(). Signed-off-by: Chen Gang Signed-off-by: Konrad Rzeszutek Wilk include/linux/cleancache.h | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit b3c6de492b9ea30a8dcc535d4dc2eaaf0bb3f116 Author: Julia Lawall Date: Thu Jan 21 16:47:29 2016 +0100 cleancache: constify cleancache_ops structure The cleancache_ops structure is never modified, so declare it as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Konrad Rzeszutek Wilk drivers/xen/tmem.c | 2 +- include/linux/cleancache.h | 2 +- mm/cleancache.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) commit d32a4e34348869a273a01139112a13fc6870f003 Merge: bf60920 3e4c5ef Author: Chris Mason Date: Wed Jan 27 05:48:23 2016 -0800 Merge branch 'dev/fst-followup' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux into for-linus-4.5 commit bf6092066f80840410e3401cd962b23d54a95713 Author: David Sterba Date: Wed Jan 27 14:06:29 2016 +0100 btrfs: sysfs: check initialization state before updating features If the mount phase is not finished, we can't update the sysfs files. Reported-by: Chris Mason Signed-off-by: David Sterba Signed-off-by: Chris Mason fs/btrfs/sysfs.c | 3 +++ 1 file changed, 3 insertions(+) commit f212c6d8c2b21c1e1d0158d38a7c37f4427f3848 Author: Mans Rullgard Date: Thu Jan 21 14:55:56 2016 +0000 ASoC: mxs-saif: fix clk_prepare() without matching clk_unprepare() The clk_prepare() call in hw_params() has no matching clk_unprepare(), leaving the clk with an ever-increasing prepare count. Moreover, hw_params() can be called multiple times which would again leave us with a runaway prepare count. Fix this by moving the clk_prepare() call to the startup() function and adding a shutdown() function with a matching clk_unprepare() as these operations are already correctly bracketed by soc-core. Signed-off-by: Mans Rullgard Signed-off-by: Mark Brown sound/soc/mxs/mxs-saif.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) commit 3a5242e648a8d009f0e0fd47867592e5265374b6 Author: Masahiro Yamada Date: Sun Jan 24 04:25:13 2016 +0900 pinctrl: pxa: export pxa2xx_pinctrl_init() Building pinctrl-pxa27x.c as a module causes a link error: ERROR: "pxa2xx_pinctrl_init" [drivers/pinctrl/pxa/pinctrl-pxa27x.ko] undefined! Signed-off-by: Masahiro Yamada Acked-by: Robert Jarzmik Signed-off-by: Linus Walleij drivers/pinctrl/pxa/pinctrl-pxa2xx.c | 1 + 1 file changed, 1 insertion(+) commit 00420a65fa2beb3206090ead86942484df2275f3 Author: Herbert Xu Date: Wed Jan 27 00:16:37 2016 +0800 crypto: shash - Fix has_key setting The has_key logic is wrong for shash algorithms as they always have a setkey function. So we should instead be testing against shash_no_setkey. Fixes: a5596d633278 ("crypto: hash - Add crypto_ahash_has_setkey") Cc: stable@vger.kernel.org Reported-by: Stephan Mueller Signed-off-by: Herbert Xu Tested-by: Stephan Mueller crypto/shash.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit f9ead9beef3f44be0db4b542a8c2ce698fb1530e Merge: 36efee8 69c7fda Author: Kalle Valo Date: Wed Jan 27 14:19:18 2016 +0200 Merge tag 'iwlwifi-for-kalle-2016-01-26_2' of https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes * Fix support for 3168 device + NVM version + firmware file name + device IDs * Fix a compilation warning in dvm calibration code * Fix the TPC (reduced Tx Power) code. This fixes performance issues * Device IDs for 8265 commit 49f34134aea74f19ca016f055d25ee55ec359dee Author: Milo Kim Date: Wed Jan 13 16:19:50 2016 +0900 irqchip/atmel-aic: Fix wrong bit operation for IRQ priority Atmel AIC has common structure for SMR (Source Mode Register). bit[6:5] Interrupt source type bit[2:0] Priority level Other bits are unused. To update new priority value, bit[2:0] should be cleared first and then new priority level can be written. However, aic_common_set_priority() helper clears source type bits instead of priority bits. This patch fixes wrong mask bit operation. Fixes: b1479ebb7720 "irqchip: atmel-aic: Add atmel AIC/AIC5 drivers" Signed-off-by: Milo Kim Acked-by: Boris Brezillon Cc: Jason Cooper Cc: Marc Zyngier Cc: Ludovic Desroches Cc: Nicholas Ferre Cc: stable@vger.kernel.org #v3.17+ Link: http://lkml.kernel.org/r/1452669592-3401-2-git-send-email-milo.kim@ti.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-atmel-aic-common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1ca8ec532fc2d986f1f4a319857bb18e0c9739b4 Author: Wanpeng Li Date: Wed Jan 27 19:26:07 2016 +0800 tick/nohz: Set the correct expiry when switching to nohz/lowres mode commit 0ff53d096422 sets the next tick interrupt to the last jiffies update, i.e. in the past, because the forward operation is invoked before the set operation. There is no resulting damage (yet), but we get an extra pointless tick interrupt. Revert the order so we get the next tick interrupt in the future. Fixes: commit 0ff53d096422 "tick: sched: Force tick interrupt and get rid of softirq magic" Signed-off-by: Wanpeng Li Cc: Peter Zijlstra Cc: Frederic Weisbecker Cc: stable@vger.kernel.org Link: http://lkml.kernel.org/r/1453893967-3458-1-git-send-email-wanpeng.li@hotmail.com Signed-off-by: Thomas Gleixner kernel/time/tick-sched.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9954859185c6e8359e71121037b627f1e294057d Author: Lars-Peter Clausen Date: Tue Jan 26 13:54:15 2016 +0100 ASoC: imx-spdif: Fix crash on suspend When registering a ASoC card the driver data of the parent device is set to point to the card. This driver data is used in the snd_soc_suspend()/resume() callbacks. The imx-spdif driver overwrites the driver data with custom data which causes snd_soc_suspend() to crash. Since the custom driver is not used anywhere simply deleting the line which sets the custom driver data fixes the issue. Fixes: 43ac946922b3 ("ASoC: imx-spdif: add snd_soc_pm_ops for spdif machine driver") Tested-by: Fabio Estevam Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/fsl/imx-spdif.c | 2 -- 1 file changed, 2 deletions(-) commit e873cc022ce5e2c04bbc53b5874494b657e29d3f Author: Nicolas Ferre Date: Wed Jan 27 11:03:02 2016 +0100 ARM: dts: at91: sama5d4 xplained: fix phy0 IRQ type For phy0 KSZ8081, the type of GPIO IRQ should be "level low" instead of "edge falling". Signed-off-by: Nicolas Ferre Fixes: 38153a017896 ("ARM: at91/dt: sama5d4: add dts for sama5d4 xplained board") Cc: # 4.1+ arch/arm/boot/dts/at91-sama5d4_xplained.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f505dba762ae826bb68978a85ee5c8ced7dea8d7 Author: Alexandre Belloni Date: Fri Jan 15 09:30:18 2016 +0100 ARM: dts: at91: sama5d4 xplained: properly mux phy interrupt No interrupt were received from the phy because PIOE 1 may not be properly muxed. It prevented proper link detection, especially since commit 321beec5047a ("net: phy: Use interrupts when available in NOLINK state") disables polling. Cc: # 4.4 Signed-off-by: Alexandre Belloni Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91-sama5d4_xplained.dts | 6 ++++++ 1 file changed, 6 insertions(+) commit aae6b18f5c95b9dc78de66d1e27e8afeee2763b7 Author: Wenyou Yang Date: Wed Jan 27 13:16:24 2016 +0800 ARM: dts: at91: sama5d4ek: add phy address and IRQ for macb0 On SAMA5D4EK board, the Ethernet doesn't work after resuming from the suspend state. Signed-off-by: Wenyou Yang [nicolas.ferre@atmel.com: adapt to newer kernel] Fixes: 38153a017896 ("ARM: at91/dt: sama5d4: add dts for sama5d4 xplained board") Cc: # 4.1+ Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91-sama5d4ek.dts | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 6c482fd15d4ff211ce0e63a628cbda17201b33a0 Author: Nicolas Ferre Date: Tue Jan 12 15:55:12 2016 +0100 ARM: dts: at91: sama5d2 xplained: add phy address and IRQ for macb0 After 57a38effa598 (net: phy: micrel: disable broadcast for KSZ8081/KSZ8091) the macb0 interface has difficulties to come back from power saving mode if address not explicitly set up. As the micrel phy on the board is actually configured to show up at address 1 we use this explicitly. Adding the phy node and its real address fixes the issue. The phy IRQ and associated pinmux node is also added. Signed-off-by: Nicolas Ferre Acked-by: Alexandre Belloni Cc: stable@vger.kernel.org # 4.4+ // manual merge needed arch/arm/boot/dts/at91-sama5d2_xplained.dts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 1a469ae2ced763fc0d4edb3c9d7b4188deee950c Author: Alexandre Belloni Date: Tue Jan 19 02:30:59 2016 +0100 ARM: dts: at91: at91sam9n12ek: fix panel compatible string Properly use qiaodian as the vendor prefix for the panel. Signed-off-by: Alexandre Belloni Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91sam9n12ek.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 929e883f2bfdf68d4bd3aec43912e956417005c7 Author: Mohamed Jamsheeth Hajanajubudeen Date: Fri Dec 11 17:06:26 2015 +0530 ARM: dts: at91: sama5d4: fix instance id of DBGU Change instance id of DBGU to 45. Signed-off-by: Mohamed Jamsheeth Hajanajubudeen Fixes: 7c661394c56c ("ARM: at91: dt: add device tree file for SAMA5D4 SoC") Cc: stable@vger.kernel.org # 3.18+ Signed-off-by: Nicolas Ferre arch/arm/boot/dts/sama5d4.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 73c13c83491142e2ee7850159fc73b5e0967806f Author: Phil Reid Date: Fri Jan 15 11:32:22 2016 +0800 gpio: gpio-altera: Remove gpiochip on probe failure. On failure to setup the irq altera_gpio_probe would return an error but not go to cleanup. This resulted in kernel fault "Unable to handle kernel paging request at virtual address xxxxxxxx" later on in of_gpiochip_find_and_xlate. Signed-off-by: Phil Reid Signed-off-by: Linus Walleij drivers/gpio/gpio-altera.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit f4f9edcf9b5289ed96113e79fa65a7bf27ecb096 Author: Peter Hurley Date: Sun Jan 10 22:40:58 2016 -0800 staging/speakup: Use tty_ldisc_ref() for paste kworker As the function documentation for tty_ldisc_ref_wait() notes, it is only callable from a tty file_operations routine; otherwise there is no guarantee the ref won't be NULL. The key difference with the VT's paste_selection() is that is an ioctl, where __speakup_paste_selection() is completely async kworker, kicked off from interrupt context. Fixes: 28a821c30688 ("Staging: speakup: Update __speakup_paste_selection() tty (ab)usage to match vt") Cc: Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/staging/speakup/selection.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 6d27a63caad3f13e96cf065d2d96828c2006be6b Author: Peter Hurley Date: Sun Jan 10 22:40:56 2016 -0800 n_tty: Fix unsafe reference to "other" ldisc Although n_tty_check_unthrottle() has a valid ldisc reference (since the tty core gets the ldisc ref in tty_read() before calling the line discipline read() method), it does not have a valid ldisc reference to the "other" pty of a pty pair. Since getting an ldisc reference for tty->link essentially open-codes tty_wakeup(), just replace with the equivalent tty_wakeup(). Cc: Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/n_tty.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 5c17c861a357e9458001f021a7afa7aab9937439 Author: Peter Hurley Date: Sun Jan 10 22:40:55 2016 -0800 tty: Fix unsafe ldisc reference via ioctl(TIOCGETD) ioctl(TIOCGETD) retrieves the line discipline id directly from the ldisc because the line discipline id (c_line) in termios is untrustworthy; userspace may have set termios via ioctl(TCSETS*) without actually changing the line discipline via ioctl(TIOCSETD). However, directly accessing the current ldisc via tty->ldisc is unsafe; the ldisc ptr dereferenced may be stale if the line discipline is changing via ioctl(TIOCSETD) or hangup. Wait for the line discipline reference (just like read() or write()) to retrieve the "current" line discipline id. Cc: Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_io.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) commit 7f22f6c935cda600660e623a411fe380015d28d9 Author: Peter Hurley Date: Sat Jan 9 21:13:45 2016 -0800 tty: Retry failed reopen if tty teardown in-progress A small window exists where a tty reopen will observe the tty just prior to imminent teardown (tty->count == 0); in this case, open() returns EIO to userspace. Instead, retry the open after checking for signals and yielding; this interruptible retry loop allows teardown to commence and initialize a new tty on retry. Never retry the BSD master pty reopen; there is no guarantee the pty pair teardown is imminent since the slave file descriptors may remain open indefinitely. Signed-off-by: Peter Hurley Cc: stable # 4.4 Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_io.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 0bfd464d3fdd5bb322f9cace4cc47f1796545cf7 Author: Peter Hurley Date: Sat Jan 9 21:13:44 2016 -0800 tty: Wait interruptibly for tty lock on reopen Allow a signal to interrupt the wait for a tty reopen; eg., if the tty has starting final close and is waiting for the device to drain. Signed-off-by: Peter Hurley Cc: stable # 4.4 Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_io.c | 8 +++++++- drivers/tty/tty_mutex.c | 8 ++++++++ include/linux/tty.h | 1 + 3 files changed, 16 insertions(+), 1 deletion(-) commit 61595dca742a9ba9a4c998b9af1f468adc816275 Author: Takashi Iwai Date: Wed Jan 27 07:05:56 2016 +0100 ALSA: Add missing dependency on CONFIG_SND_TIMER Since the build of PCM timer may be disabled via Kconfig now, each driver that provides a timer interface needs to set CONFIG_SND_TIMER explicitly. Otherwise it may get a build error due to missing symbol. Fixes: 90bbaf66ee7b ('ALSA: timer: add config item to export PCM timer disabling for expert') Reported-by: kbuild test robot Cc: # v4.4+ Signed-off-by: Takashi Iwai sound/isa/Kconfig | 4 ++++ sound/pci/Kconfig | 3 +++ sound/sparc/Kconfig | 1 + 3 files changed, 8 insertions(+) commit 13c13a6ad71f98c3b6189dfc89a9a743ab02a39a Author: Trond Myklebust Date: Tue Jan 26 23:12:11 2016 -0500 pNFS: Fix missing layoutreturn calls The layoutreturn code currently relies on pnfs_put_lseg() to initiate the RPC call when conditions are right. A problem arises when we want to free the layout segment from inside an inode->i_lock section (e.g. in pnfs_clear_request_commit()), since we cannot sleep. The workaround is to move the actual call to pnfs_send_layoutreturn() to pnfs_put_layout_hdr(), which doesn't have this restriction. Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 118 ++++++++++++++++++++++++++++------------------------------ 1 file changed, 56 insertions(+), 62 deletions(-) commit 0f28ede906a8ad44158a6ef9471a5a412343cced Author: John Garry Date: Wed Jan 27 01:31:17 2016 +0800 hisi_sas: fix v1 hw check for slot error Completion header bit CMPLT_HDR_RSPNS_XFRD flags whether the response frame is received into host memory, and not whether the response frame has an error. As such, change the decision on whether a slot has an error. Also redundant check on CMPLT_HDR_CMD_CMPLT_MSK is removed. Fixes: 27a3f229 ("hisi_sas: Add cq interrupt handler") Signed-off-by: John Garry Tested-by: Ricardo Salveti Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 0f92db53c10ab608874eea8bbe59491cea2f9a46 Author: John Garry Date: Tue Jan 26 19:59:12 2016 +0800 hisi_sas: add dependency for HAS_IOMEM Not every arch has io, so fix build by adding necessary dependency. Signed-off-by: John Garry Suggested-by: Richard Weinberger Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6344a5cd3e8acf6e9823046cebd00b16faacdb1a Merge: 13b4389 d0eb20a Author: James Bottomley Date: Tue Jan 26 17:44:42 2016 -0800 Merge remote-tracking branch 'mkp-scsi/4.5/scsi-fixes' into fixes commit 13b4389143413a1f18127c07f72c74cad5b563e8 Author: Alan Stern Date: Wed Jan 20 11:26:01 2016 -0500 SCSI: fix crashes in sd and sr runtime PM Runtime suspend during driver probe and removal can cause problems. The driver's runtime_suspend or runtime_resume callbacks may invoked before the driver has finished binding to the device or after the driver has unbound from the device. This problem shows up with the sd and sr drivers, and can cause disk or CD/DVD drives to become unusable as a result. The fix is simple. The drivers store a pointer to the scsi_disk or scsi_cd structure as their private device data when probing is finished, so we simply have to be sure to clear the private data during removal and test it during runtime suspend/resume. This fixes . Signed-off-by: Alan Stern Reported-by: Paul Menzel Reported-by: Erich Schubert Reported-by: Alexandre Rossi Tested-by: Paul Menzel Tested-by: Erich Schubert CC: Signed-off-by: James Bottomley drivers/scsi/sd.c | 7 +++++-- drivers/scsi/sr.c | 4 ++++ 2 files changed, 9 insertions(+), 2 deletions(-) commit 7e56f627768da4e6480986b5145dc3422bc448a5 Author: Gavin Shan Date: Wed Dec 2 16:25:32 2015 +1100 powerpc/eeh: Fix PE location code In eeh_pe_loc_get(), the PE location code is retrieved from the "ibm,loc-code" property of the device node for the bridge of the PE's primary bus. It's not correct because the property indicates the parent PE's location code. This reads the correct PE location code from "ibm,io-base-loc-code" or "ibm,slot-location-code" property of PE parent bus's device node. Cc: stable@vger.kernel.org # v3.16+ Fixes: 357b2f3dd9b7 ("powerpc/eeh: Dump PE location code") Signed-off-by: Gavin Shan Tested-by: Russell Currey Signed-off-by: Michael Ellerman arch/powerpc/kernel/eeh_pe.c | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) commit 7f66cd3f5420e7d11abd234033e7cb7a9738fc38 Author: Kees Cook Date: Tue Jan 26 01:18:13 2016 +0100 ARM: 8500/1: fix atags_to_fdt with stack-protector-strong Building with CONFIG_CC_STACKPROTECTOR_STRONG triggers protection code generation under CONFIG_ARM_ATAG_DTB_COMPAT but this is too early for being able to use any of the stack_chk code. Explicitly disable it for only the atags_to_fdt bits. Suggested-by: zhxihu Signed-off-by: Kees Cook Acked-by: Arnd Bergmann Signed-off-by: Russell King arch/arm/boot/compressed/Makefile | 9 +++++++++ 1 file changed, 9 insertions(+) commit 3625c2c234ef66acf21a72d47a5ffa94f6c5ebf2 Author: Jan Beulich Date: Tue Jan 26 04:15:18 2016 -0700 x86/mm: Fix types used in pgprot cacheability flags translations For PAE kernels "unsigned long" is not suitable to hold page protection flags, since _PAGE_NX doesn't fit there. This is the reason for quite a few W+X pages getting reported as insecure during boot (observed namely for the entire initrd range). Fixes: 281d4078be ("x86: Make page cache mode a real type") Signed-off-by: Jan Beulich Reviewed-by: Juergen Gross Cc: stable@vger.kernel.org Link: http://lkml.kernel.org/r/56A7635602000078000CAFF1@prv-mh.provo.novell.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/pgtable_types.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 9a4e7849b5e4e8742d71fa90fbf0722dd0710a56 Author: Russell King Date: Tue Jan 26 14:49:22 2016 +0000 component: fix crash on x86_64 with hda audio drivers Maarten reports that the addition of releasing match data to the component helper results in a general protection fault on x86_64. This is caused by the devm resources being freed in reverse order to their allocation, which caused a use-after-free of the match array. Switch the match array to be a more conventional kmalloc/kfree() affair, explicitly freeing it along with the parent match data structure. Reported-by: Maarten Lankhorst Fixes: ce657b1cddf1 ("component: add support for releasing match data") Signed-off-by: Russell King drivers/base/component.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit a0a5ab3e99b8e617221caabf074dcabd1659b9d8 Author: Lucas Stach Date: Mon Jan 25 15:47:28 2016 +0100 drm/etnaviv: call correct function when trying to vmap a DMABUF When trying to get the vmap address of an imported buffer, we must call into the appropriate helper function, to allow the exporter to establish the vmap, instead of trying to vmap the buffer on our own. Add an indirection through etnaviv_gem_ops to allow the correct implementation to be called. Signed-off-by: Lucas Stach drivers/gpu/drm/etnaviv/etnaviv_gem.c | 36 ++++++++++++++++++++--------- drivers/gpu/drm/etnaviv/etnaviv_gem.h | 1 + drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c | 8 +++++++ 3 files changed, 34 insertions(+), 11 deletions(-) commit ce3088fdb51eda7b9ef3d119e7c302c08428f274 Author: Lucas Stach Date: Tue Jan 26 18:10:32 2016 +0100 drm/etnaviv: rename etnaviv_gem_vaddr to etnaviv_gem_vmap This function follows the semantics of vmap() by returning NULL in case of an error. To make things less confusing rename it to make make both functions more closely related. Signed-off-by: Lucas Stach drivers/gpu/drm/etnaviv/etnaviv_drv.h | 2 +- drivers/gpu/drm/etnaviv/etnaviv_dump.c | 2 +- drivers/gpu/drm/etnaviv/etnaviv_gem.c | 2 +- drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) commit 9f07bb0d4ada68f05b2e51c10720d4688e6adea4 Author: Lucas Stach Date: Mon Jan 25 15:37:28 2016 +0100 drm/etnaviv: fix get pages error path in etnaviv_gem_vaddr In case that etnaviv_gem_get_pages is unable to get the required pages the object mutex needs to be unlocked. Also return NULL in this case instead of propagating the error, as callers of this function might not be prepared to handle a pointer error, but expect this call to follow the semantics of a plain vmap to return NULL in case of an error. Signed-off-by: Lucas Stach drivers/gpu/drm/etnaviv/etnaviv_dump.c | 2 +- drivers/gpu/drm/etnaviv/etnaviv_gem.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) commit 45d16a6d94580cd3c6baed69b5fe441ece599fc4 Author: Lucas Stach Date: Mon Jan 25 12:41:05 2016 +0100 drm/etnaviv: fix memory leak in IOMMU init path Plug in error handling to free any allocated ressources in the IOMMU init path. Signed-off-by: Lucas Stach drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 602eb48966d7b7f7e64dca8d9ea2842d83bfae73 Author: Russell King Date: Sun Jan 24 17:36:04 2016 +0000 drm/etnaviv: add further minor features and varyings count Export further minor feature bitmasks and the varyings count from the GPU specifications registers to userspace. Acked-by: Christian Gmeiner Signed-off-by: Russell King Signed-off-by: Lucas Stach drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 62 ++++++++++++++++++++++++++++++++++- drivers/gpu/drm/etnaviv/etnaviv_gpu.h | 9 +++++ include/uapi/drm/etnaviv_drm.h | 3 ++ 3 files changed, 73 insertions(+), 1 deletion(-) commit 472f79dcf21d34f4d667910002482efe3ca4ba34 Author: Russell King Date: Sun Jan 24 17:35:59 2016 +0000 drm/etnaviv: add helper for comparing model/revision IDs Add and use a helper for comparing the model and revision IDs. Acked-by: Christian Gmeiner Signed-off-by: Russell King Signed-off-by: Lucas Stach drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 52f36ba1d6134f5c1c45deb0da53442a5971358e Author: Russell King Date: Sun Jan 24 17:35:54 2016 +0000 drm/etnaviv: add helper to extract bitfields Add a helper to extract etnaviv bitfields from register values. Acked-by: Christian Gmeiner Signed-off-by: Russell King Signed-off-by: Lucas Stach drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 62 +++++++++++++++-------------------- 1 file changed, 27 insertions(+), 35 deletions(-) commit 507f899137f9e4f1405820b946063a6db78b2295 Author: Russell King Date: Sun Jan 24 17:35:48 2016 +0000 drm/etnaviv: use defined constants for the chip model Use the defined constants in common.xml.h for the chip model rather than coding these as hex numbers. Acked-by: Christian Gmeiner Signed-off-by: Russell King Signed-off-by: Lucas Stach drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) commit e2a2e263e06a0c153234b3e93fb85612d1c454d3 Author: Russell King Date: Sun Jan 24 17:35:43 2016 +0000 drm/etnaviv: update common and state_hi xml.h files Update the common and state_hi xml.h header files from the etnaviv repository. Acked-by: Christian Gmeiner Signed-off-by: Russell King Signed-off-by: Lucas Stach drivers/gpu/drm/etnaviv/common.xml.h | 59 +++++++++++++++++++++++++++++----- drivers/gpu/drm/etnaviv/state_hi.xml.h | 26 +++++++++++++-- 2 files changed, 75 insertions(+), 10 deletions(-) commit b98c66887ee1aec661dcb88fe17399d5d112ed98 Author: Russell King Date: Thu Jan 21 15:19:59 2016 +0000 drm/etnaviv: ignore VG GPUs with FE2.0 Ignore GPUs with a 2.0 front end. These have a different register layout for the front end, which provokes imprecise aborts from the register accesses in the 'gpu' debugfs file. Signed-off-by: Russell King Signed-off-by: Lucas Stach drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 9c41242817f4b6d908886c0fdb036d9246c50630 Author: Dan Williams Date: Sat Jan 23 15:34:10 2016 -0800 libnvdimm: fix mode determination for e820 devices Correctly display "safe" mode when a btt is established on a e820/memmap defined pmem namespace. Signed-off-by: Dan Williams drivers/nvdimm/namespace_devs.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 25cad69f21f5532d99e2ee73c8ab6512bcab614c Author: Martin Wilck Date: Mon Nov 30 12:50:05 2015 +0100 base/platform: Fix platform drivers with no probe callback Since b8b2c7d845d5, platform_drv_probe() is called for all platform devices. If drv->probe is NULL, and dev_pm_domain_attach() fails, platform_drv_probe() will return the error code from dev_pm_domain_attach(). This causes real_probe() to enter the "probe_failed" path and set dev->driver to NULL. Before b8b2c7d845d5, real_probe() would assume success if both dev->bus->probe and drv->probe were missing. As a result, a device and driver could be "bound" together just by matching their names; this doesn't work any more after b8b2c7d845d5. This may cause problems later for certain usage of platform_driver_register() and platform_device_register_simple(). I observed a panic while loading the tpm_tis driver with parameter "force=1" (i.e. registering tpm_tis as a platform driver), because tpm_tis_init's assumption that the device returned by platform_device_register_simple() was bound didn't hold any more (tpmm_chip_alloc() dereferences chip->pdev->driver, causing panic). This patch restores the previous (4.3.0 and earlier) behavior of platform_drv_probe() in the case when the associated platform driver has no "probe" function. Fixes: b8b2c7d845d5 ("base/platform: assert that dev_pm_domain callbacks are called unconditionally") Signed-off-by: Martin Wilck Cc: stable # 4.4 Cc: Martin Fuzzey Acked-by: Jarkko Sakkinen Signed-off-by: Greg Kroah-Hartman drivers/base/platform.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 57adec866c0440976c96a4b8f5b59fb411b1cacb Author: Mika Penttilä Date: Tue Jan 26 15:47:25 2016 +0000 arm64: mm: avoid calling apply_to_page_range on empty range Calling apply_to_page_range with an empty range results in a BUG_ON from the core code. This can be triggered by trying to load the st_drv module with CONFIG_DEBUG_SET_MODULE_RONX enabled: kernel BUG at mm/memory.c:1874! Internal error: Oops - BUG: 0 [#1] PREEMPT SMP Modules linked in: CPU: 3 PID: 1764 Comm: insmod Not tainted 4.5.0-rc1+ #2 Hardware name: ARM Juno development board (r0) (DT) task: ffffffc9763b8000 ti: ffffffc975af8000 task.ti: ffffffc975af8000 PC is at apply_to_page_range+0x2cc/0x2d0 LR is at change_memory_common+0x80/0x108 This patch fixes the issue by making change_memory_common (called by the set_memory_* functions) a NOP when numpages == 0, therefore avoiding the erroneous call to apply_to_page_range and bringing us into line with x86 and s390. Cc: Reviewed-by: Laura Abbott Acked-by: David Rientjes Signed-off-by: Mika Penttilä Signed-off-by: Will Deacon arch/arm64/mm/pageattr.c | 3 +++ 1 file changed, 3 insertions(+) commit 18aa60ce2751c95d3412ed06a58b8b6cfb6f88f2 Author: Marc Zyngier Date: Tue Jan 26 14:24:15 2016 +0000 irqchip/gic-v3-its: Recompute the number of pages on page size change When the programming of a GITS_BASERn register fails because of an unsupported ITS page size, we retry it with a smaller page size. Unfortunately, we don't recompute the number of allocated ITS pages, indicating the wrong value computed in the original allocation. A convenient fix is to free the pages we allocated, update the page size, and restart the allocation. This will ensure that we always allocate the right amount in the case of a device table, specially if we have to reduce the allocation order to stay within the boundaries of the ITS maximum allocation. Reported-and-tested-by: Ma Jun Signed-off-by: Marc Zyngier Cc: linux-arm-kernel@lists.infradead.org Cc: Jason Cooper Link: http://lkml.kernel.org/r/1453818255-1289-1-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-gic-v3-its.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit bb1a793125d9cc61f2d1cff92fe3927fec45d528 Author: Thomas Petazzoni Date: Tue Jan 26 13:52:27 2016 +0000 base: Export platform_msi_domain_[alloc,free]_irqs The new function platform_msi_domain_{alloc,free}_irqs are meant to be used in platform drivers, which can be built as modules. Therefore, it makes sense to export them to be used from kernel modules. Signed-off-by: Thomas Petazzoni Acked-by: Marc Zyngier Cc: Greg Kroah-Hartman Cc: Rob Herring Cc: Frank Rowand Cc: Grant Likely Cc: Jiang Liu Link: http://lkml.kernel.org/r/1453816347-32720-4-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner drivers/base/platform-msi.c | 2 ++ 1 file changed, 2 insertions(+) commit ed8e5a242826004d6dcf1c33775e08aa0d017c41 Author: Alexey Kardashevskiy Date: Tue Jan 19 16:12:28 2016 +1100 KVM doc: Fix KVM_SMI chapter number The KVM_SMI capability is following the KVM_S390_SET_IRQ_STATE capability which is "4.95", this changes the number of the KVM_SMI chapter to 4.96. Signed-off-by: Alexey Kardashevskiy Reviewed-by: David Gibson Signed-off-by: Paolo Bonzini Documentation/virtual/kvm/api.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b8bc3bde9c8c90500c648627d53f846642ff8639 Merge: 171b568 9abc2a0 Author: Paolo Bonzini Date: Tue Jan 26 16:28:36 2016 +0100 Merge tag 'kvm-s390-master-4.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD KVM: s390: Fixes for kvm/master (targeting 4.5) 1. Fallout of some bigger floating point/vector rework in s390 - memory leak -> stable 4.3+ - memory overwrite -> stable 4.4+ 2. enable KVM-VFIO for s390 commit d7023e62c5128bf9f150d792a3ea8c758cb431a3 Author: Richard Weinberger Date: Mon Jan 25 23:24:19 2016 +0100 clocksource: Fix dependencies for archs w/o HAS_IOMEM Not every arch has io memory. So, unbreak the build by fixing the dependencies. Signed-off-by: Richard Weinberger Cc: user-mode-linux-devel@lists.sourceforge.net Cc: Daniel Lezcano Link: http://lkml.kernel.org/r/1453760661-1444-21-git-send-email-richard@nod.at Signed-off-by: Thomas Gleixner drivers/clocksource/Kconfig | 7 +++++++ 1 file changed, 7 insertions(+) commit 2be6d9bfef53d185975b44fd808aece36595e83e Author: Arnd Bergmann Date: Mon Jan 25 17:02:49 2016 +0100 clocksource: Select CLKSRC_MMIO where needed The Tegra clocksource implementation uses the clocksource_mmio helper functions, but currently can be configured without them, which fails: drivers/clocksource/built-in.o: In function `tegra20_init_timer': :(.init.text+0xac): undefined reference to `clocksource_mmio_init' :(.init.text+0x140): undefined reference to `clocksource_mmio_readl_up' The same problem exists for Digicolor: drivers/clocksource/built-in.o: In function `digicolor_timer_init': :(.init.text+0xfa): undefined reference to `clocksource_mmio_init' :(.init.text+0x14c): undefined reference to `clocksource_mmio_readl_down' I've inspected the Kconfig file to look for other cases that I have not yet run into, and added an explicit 'select' to each one to ensure we can successfully link the drivers. Signed-off-by: Arnd Bergmann Cc: linux-arm-kernel@lists.infradead.org Cc: Daniel Lezcano Link: http://lkml.kernel.org/r/1453737776-1960372-1-git-send-email-arnd@arndb.de Signed-off-by: Thomas Gleixner drivers/clocksource/Kconfig | 5 +++++ 1 file changed, 5 insertions(+) commit 7809998ab1af22602a8463845108edc49dfb9ef0 Author: Arnd Bergmann Date: Mon Jan 25 16:41:49 2016 +0100 tick/sched: Hide unused oneshot timer code A couple of functions in kernel/time/tick-sched.c are only relevant for oneshot timer mode, i.e. when hires-timers or nohz mode are enabled. If both are disabled, we get gcc warnings about them: kernel/time/tick-sched.c:98:16: warning: 'tick_init_jiffy_update' defined but not used [-Wunused-function] static ktime_t tick_init_jiffy_update(void) ^ kernel/time/tick-sched.c:112:13: warning: 'tick_sched_do_timer' defined but not used [-Wunused-function] static void tick_sched_do_timer(ktime_t now) ^ kernel/time/tick-sched.c:134:13: warning: 'tick_sched_handle' defined but not used [-Wunused-function] static void tick_sched_handle(struct tick_sched *ts, struct pt_regs *regs) ^ This encloses the whole set of functions in an appropriate ifdef to avoid the warning and to make it clearer when they are used. Signed-off-by: Arnd Bergmann Cc: linux-arm-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/1453736525-1959191-1-git-send-email-arnd@arndb.de Signed-off-by: Thomas Gleixner kernel/time/tick-sched.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit e03a58c320e1103ebe97bda8ebdfcc5c9829c53f Author: John Stultz Date: Thu Jan 21 15:03:35 2016 -0800 kselftests: timers: Add adjtimex SETOFFSET validity tests Add some simple tests to check both valid and invalid offsets when using adjtimex's ADJ_SETOFFSET method. Signed-off-by: John Stultz Acked-by: Shuah Khan Cc: Sasha Levin Cc: Richard Cochran Cc: Prarit Bhargava Cc: Harald Hoyer Cc: Kay Sievers Cc: David Herrmann Link: http://lkml.kernel.org/r/1453417415-19110-3-git-send-email-john.stultz@linaro.org Signed-off-by: Thomas Gleixner tools/testing/selftests/timers/valid-adjtimex.c | 139 +++++++++++++++++++++++- 1 file changed, 138 insertions(+), 1 deletion(-) commit 14a0db3cdd114da757197193f66786e63649c91e Author: Marc Zyngier Date: Tue Jan 26 13:52:26 2016 +0000 of: MSI: Simplify irqdomain lookup So far, when trying to associate a device with its MSI domain, we first lookup the domain using a MSI token, and if this doesn't return anything useful, we pick up any domain matching the same node. This logic is broken for two reasons: 1) Only the generic MSI code (PCI or platform) sets this token to PCI/MSI or platform MSI. So we're guaranteed that if there is something to be found, we will find it with the first call. 2) If we have a convoluted situation where: - a single node implements both wired and MSI interrupts - MSI support for that HW hasn't been compiled in we'll end up using the wired domain for MSIs anyway, and things break badly. So let's just remove __of_get_msi_domain, and replace it by a direct call to irq_find_matching_host, because that's what we really want. Signed-off-by: Marc Zyngier Acked-by: Rob Herring Cc: Greg Kroah-Hartman Cc: Frank Rowand Cc: Grant Likely Cc: Thomas Petazzoni Cc: Jiang Liu Link: http://lkml.kernel.org/r/1453816347-32720-3-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner drivers/of/irq.c | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) commit 530cbe100ef7587aa5b5ac3a4b670cda4d50e598 Author: Marc Zyngier Date: Tue Jan 26 13:52:25 2016 +0000 irqdomain: Allow domain lookup with DOMAIN_BUS_WIRED token Let's take the (outlandish) example of an interrupt controller capable of handling both wired interrupts and PCI MSIs. With the current code, the PCI MSI domain is going to be tagged with DOMAIN_BUS_PCI_MSI, and the wired domain with DOMAIN_BUS_ANY. Things get hairy when we start looking up the domain for a wired interrupt (typically when creating it based on some firmware information - DT or ACPI). In irq_create_fwspec_mapping(), we perform the lookup using DOMAIN_BUS_ANY, which is actually used as a wildcard. This gives us one chance out of two to end up with the wrong domain, and we try to configure a wired interrupt with the MSI domain. Everything grinds to a halt pretty quickly. What we really need to do is to start looking for a domain that would uniquely identify a wired interrupt domain, and only use DOMAIN_BUS_ANY as a fallback. In order to solve this, let's introduce a new DOMAIN_BUS_WIRED token, which is going to be used exactly as described above. Of course, this depends on the irqchip to setup the domain bus_token, and nobody had to implement this so far. Only so far. Signed-off-by: Marc Zyngier Cc: Greg Kroah-Hartman Cc: Rob Herring Cc: Frank Rowand Cc: Grant Likely Cc: Thomas Petazzoni Cc: Jiang Liu Link: http://lkml.kernel.org/r/1453816347-32720-2-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner include/linux/irqdomain.h | 1 + kernel/irq/irqdomain.c | 11 ++++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) commit 0df337cf92c107fb515c9df6907052a97bd484b9 Author: Richard Weinberger Date: Mon Jan 25 23:24:17 2016 +0100 irqchip: Fix dependencies for archs w/o HAS_IOMEM Not every arch has io memory. So, unbreak the build by fixing the dependencies. Signed-off-by: Richard Weinberger Cc: user-mode-linux-devel@lists.sourceforge.net Cc: Jason Cooper Cc: Marc Zyngier Link: http://lkml.kernel.org/r/1453760661-1444-19-git-send-email-richard@nod.at Signed-off-by: Thomas Gleixner drivers/irqchip/Kconfig | 1 + 1 file changed, 1 insertion(+) commit eb249a11913d316fc1a27dd07a1e1e43bda9199d Author: Arnd Bergmann Date: Mon Jan 25 16:58:08 2016 +0100 irqchip/s3c24xx: Mark init_eint as __maybe_unused The init_eint array in the s3c24xx irqchip driver is used by every individual chip variant, but Kconfig allows building the driver when they are all disabled, and that leads to a harmless compile-time warning: drivers/irqchip/irq-s3c24xx.c:608:28: error: 'init_eint' defined but not used [-Werror=unused-variable] This marks the array as __maybe_unused to avoid the warning. Signed-off-by: Arnd Bergmann Acked-by: Marc Zyngier Cc: linux-arm-kernel@lists.infradead.org Cc: Jason Cooper Link: http://lkml.kernel.org/r/1453737499-1960073-1-git-send-email-arnd@arndb.de Signed-off-by: Thomas Gleixner drivers/irqchip/irq-s3c24xx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9abc2a08a7d665b02bdde974fd6c44aae86e923e Author: David Hildenbrand Date: Thu Jan 14 22:12:47 2016 +0100 KVM: s390: fix memory overwrites when vx is disabled The kernel now always uses vector registers when available, however KVM has special logic if support is really enabled for a guest. If support is disabled, guest_fpregs.fregs will only contain memory for the fpu. The kernel, however, will store vector registers into that area, resulting in crazy memory overwrites. Simply extending that area is not enough, because the format of the registers also changes. We would have to do additional conversions, making the code even more complex. Therefore let's directly use one place for the vector/fpu registers + fpc (in kvm_run). We just have to convert the data properly when accessing it. This makes current code much easier. Please note that vector/fpu registers are now always stored to vcpu->run->s.regs.vrs. Although this data is visible to QEMU and used for migration, we only guarantee valid values to user space when KVM_SYNC_VRS is set. As that is only the case when we have vector register support, we are on the safe side. Fixes: b5510d9b68c3 ("s390/fpu: always enable the vector facility if it is available") Cc: stable@vger.kernel.org # v4.4 d9a3a09af54d s390/kvm: remove dependency on struct save_area definition Signed-off-by: David Hildenbrand Signed-off-by: Christian Borntraeger [adopt to d9a3a09af54d] arch/s390/include/asm/kvm_host.h | 1 - arch/s390/kvm/kvm-s390.c | 126 +++++++++++++-------------------------- 2 files changed, 43 insertions(+), 84 deletions(-) commit 14b0b4ac37cbb3e57f564da30ece5626d1e3767a Author: Dong Jia Shi Date: Wed Jan 20 06:33:42 2016 +0100 KVM: s390: Enable the KVM-VFIO device The KVM-VFIO device is used by the QEMU VFIO device. It is used to record the list of in-use VFIO groups so that KVM can manipulate them. While we don't need this on s390 currently, let's try to be like everyone else. Signed-off-by: Dong Jia Shi Acked-by: Cornelia Huck Signed-off-by: Christian Borntraeger arch/s390/kvm/Kconfig | 1 + arch/s390/kvm/Makefile | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) commit 9c7ebb613bffea2feef4ec562ba1dbcaa810942b Author: David Hildenbrand Date: Fri Jan 22 14:55:56 2016 +0100 KVM: s390: fix guest fprs memory leak fprs is never freed, therefore resulting in a memory leak if kvm_vcpu_init() fails or the vcpu is destroyed. Fixes: 9977e886cbbc ("s390/kernel: lazy restore fpu registers") Cc: stable@vger.kernel.org # v4.3+ Reported-by: Eric Farman Signed-off-by: David Hildenbrand Reviewed-by: Eric Farman Signed-off-by: Christian Borntraeger arch/s390/kvm/kvm-s390.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 625b4a982788fefe1361daee2ea160192cd80572 Author: Richard Weinberger Date: Mon Jan 25 23:24:04 2016 +0100 hwrng: stm32 - Fix dependencies for !HAS_IOMEM archs Not every arch has io memory. So, unbreak the build by fixing the dependencies. Signed-off-by: Richard Weinberger Reviewed-by: Daniel Thompson Signed-off-by: Herbert Xu drivers/char/hw_random/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 578c60fbeb913e0f2aa49f37a04d475b615c8a8d Author: Arnd Bergmann Date: Mon Jan 25 17:51:21 2016 +0100 crypto: ghash,poly1305 - select CRYPTO_HASH where needed The ghash and poly1305 hash implementations can be enabled when CONFIG_CRYPTO_HASH is turned off, causing a link error: crypto/built-in.o: In function `ghash_mod_init': (.init.text+0xd0): undefined reference to `crypto_register_shash' crypto/built-in.o: In function `ghash_mod_exit': (.exit.text+0xb4): undefined reference to `crypto_unregister_shash' crypto/built-in.o: In function `poly1305_mod_init': (.init.text+0xb4): undefined reference to `crypto_register_shash' crypto/built-in.o: In function `poly1305_mod_exit': (.exit.text+0x98): undefined reference to `crypto_unregister_shash' This adds an explicit 'select', like all other hashes have it. Signed-off-by: Arnd Bergmann Signed-off-by: Herbert Xu crypto/Kconfig | 2 ++ 1 file changed, 2 insertions(+) commit 3f416f22d1e21709a631189ba169f76fd267b374 Author: Jiri Olsa Date: Wed Jan 20 12:56:34 2016 +0100 perf stat: Do not clean event's private stats Mel reported stddev reporting was broken due to following commit: 106a94a0f8c2 ("perf stat: Introduce read_counters function") This commit merged interval and overall counters reading into single read_counters function. The old interval code cleaned the stddev data for some reason (it's never displayed in interval mode) and the mentioned commit kept on cleaning the stddev data in merged function, which resulted in the stddev not being displayed. Removing the wrong stddev data cleanup init_stats call. Reported-and-Tested-by: Mel Gorman Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: stable@vger.kernel.org # v4.2+ Fixes: 106a94a0f8c2 ("perf stat: Introduce read_counters function") Link: http://lkml.kernel.org/r/1453290995-18485-4-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/stat.c | 1 - 1 file changed, 1 deletion(-) commit 0805909f59e02036a4e2660159f27dbf8b6084ac Author: Jiri Olsa Date: Wed Jan 20 12:56:33 2016 +0100 perf hists: Fix HISTC_MEM_DCACHELINE width setting Set correct width for unresolved mem_dcacheline addr. Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Don Zickus Cc: Namhyung Kim Cc: Peter Zijlstra Fixes: 9b32ba71ba90 ("perf tools: Add dcacheline sort") Link: http://lkml.kernel.org/r/1453290995-18485-3-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/hist.c | 2 ++ 1 file changed, 2 insertions(+) commit d4913cbd05bab685e49c8174896e563b2487d054 Author: Markus Trippelsdorf Date: Mon Dec 14 16:44:03 2015 +0100 perf annotate browser: Fix behaviour of Shift-Tab with nothing focussed The issue was pointed out by gcc-6's -Wmisleading-indentation. Signed-off-by: Markus Trippelsdorf Acked-by: Ingo Molnar Cc: Ben Hutchings Cc: Matt Fleming Cc: Peter Zijlstra Fixes: c97cf42219b7 ("perf top: Live TUI Annotation") Link: http://lkml.kernel.org/r/20151214154403.GB1409@x4 Signed-off-by: Arnaldo Carvalho de Melo tools/perf/ui/browsers/annotate.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit cf89813a5b514bff9b3b5e7eaf2090f22fba62e0 Author: Markus Trippelsdorf Date: Mon Dec 14 16:43:35 2015 +0100 perf tests: Remove wrong semicolon in while loop in CQM test The while loop was spinning. Fix by removing a semicolon. The issue was pointed out by gcc-6's -Wmisleading-indentation. Signed-off-by: Markus Trippelsdorf Reviewed-by: Matt Fleming Acked-by: Ingo Molnar Cc: Ben Hutchings Cc: Peter Zijlstra Fixes: 035827e9f2bd ("perf tests: Add Intel CQM test") Link: http://lkml.kernel.org/r/20151214154335.GA1409@x4 Signed-off-by: Arnaldo Carvalho de Melo tools/perf/arch/x86/tests/intel-cqm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 69c7fda40921c125eeeef6a827f6270ac6aa1baa Author: Gregory Greenman Date: Tue Dec 29 11:26:35 2015 +0200 iwlwifi: mvm: rs: fix TPC statistics handling FW behaviour changed and now updates driver about the used TPC reduction in the following cases: 1. In tx response, which is used mostly for a single frame case 2. In BA notification When tx aggregation fails with the initial rate, FW will send to the driver BA notification and will try to transmit with the next rate, but this time without tx power reduction. Thus, in case of a failure with the initial rate, driver will get two BA notifications, the first one with reduced tx power as in the LQ command and the second one with 0 power reduction. This patch adapts the TPC statistics according to the description above: 1. Use BA notifications instead of Tx response 2. For TPC only, drop the optimization which considers empty BA as one MPDU. The reason is that with TPC we want to recover very quickly from a bad power reduction and, therefore we'd like the success ratio to get an immediate hit when failing to get a BA, so we'd switch back to a lower or zero power reduction Signed-off-by: Gregory Greenman Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/fw-api-tx.h | 6 +- drivers/net/wireless/intel/iwlwifi/mvm/rs.c | 74 ++++++++++++++-------- drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 5 +- 3 files changed, 56 insertions(+), 29 deletions(-) commit ca296c571f6929e42dc0ac0bb5c81cdb5323362d Author: Oren Givon Date: Thu Jan 14 10:24:10 2016 +0200 iwlwifi: update support for 3168 series firmware and NVM Update the struct which defines the support for 3168 cards. Now it will search for a firmware of this format: iwlwifi-3168-XX.ucode Also, set the minimum version of the ucode to 20. Update the minimum NVM version and minimum NVM calibrations version of the 3168 series. Signed-off-by: Oren Givon Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/iwl-7000.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) commit 36efee8e9ccb60ddff95e4e9be6dab3c21b9a334 Merge: c72fc90 65dc1a5 Author: Kalle Valo Date: Tue Jan 26 15:41:30 2016 +0200 Merge ath-current from ath.git commit 9f3d6d7a40a178b8a5b5274f4e55fec8c30147c9 Author: Sebastian Ott Date: Mon Jan 25 10:32:51 2016 +0100 s390/cio: update measurement characteristics Per channel path measurement characteristics are obtained during channel path registration. However if some properties of a channel path change we don't update the measurement characteristics. Make sure to update the characteristics when we change the properties of a channel path or receive a notification from FW about such a change. Signed-off-by: Sebastian Ott Reviewed-by: Peter Oberparleiter Signed-off-by: Martin Schwidefsky drivers/s390/cio/chp.c | 12 +++++------- drivers/s390/cio/chsc.c | 17 +++++++++++++++-- 2 files changed, 20 insertions(+), 9 deletions(-) commit 61f0bfcf8020f02eb09adaef96745d1c1d1b3623 Author: Sebastian Ott Date: Mon Jan 25 10:31:33 2016 +0100 s390/cio: ensure consistent measurement state Make sure that in all cases where we could not obtain measurement characteristics the associated fields are set to invalid values. Note: without this change the "shared" capability of a channel path for which we could not obtain the measurement characteristics was incorrectly displayed as 0 (not shared). We will now correctly report "unknown" in this case. Signed-off-by: Sebastian Ott Reviewed-by: Peter Oberparleiter Signed-off-by: Martin Schwidefsky drivers/s390/cio/chp.c | 13 +++++-------- drivers/s390/cio/chsc.c | 12 ++++++++---- 2 files changed, 13 insertions(+), 12 deletions(-) commit 0d9bfe9123cfde59bf5c2e375b59d2a7d5061c4c Author: Sebastian Ott Date: Mon Jan 25 10:30:27 2016 +0100 s390/cio: fix measurement characteristics memleak Measurement characteristics are allocated during channel path registration but not freed during deregistration. Fix this by embedding these characteristics inside struct channel_path. Signed-off-by: Sebastian Ott Reviewed-by: Peter Oberparleiter Signed-off-by: Martin Schwidefsky drivers/s390/cio/chp.c | 6 +++--- drivers/s390/cio/chp.h | 2 +- drivers/s390/cio/chsc.c | 16 ++-------------- 3 files changed, 6 insertions(+), 18 deletions(-) commit d8f51227f33fbb34e1e54e315175268f54e573e7 Author: Ingo Tuchscherer Date: Fri Jan 22 16:18:29 2016 +0100 s390/zcrypt: Fix cryptographic device id in kernel messages Currently, on card response failures a combination of card domain and domain id is recorded in the kernel messages. According to the message description only the card id will be recorded. The domain id is not relevant, since the whole card including all domains is set offline. Signed-off-by: Ingo Tuchscherer Signed-off-by: Martin Schwidefsky drivers/s390/crypto/zcrypt_error.h | 15 +++++++++------ drivers/s390/crypto/zcrypt_msgtype50.c | 9 +++++---- drivers/s390/crypto/zcrypt_msgtype6.c | 20 ++++++++++---------- 3 files changed, 24 insertions(+), 20 deletions(-) commit f5e44f82c1848d8e55fb0061308f14c0884e5483 Author: Sebastian Ott Date: Fri Jan 22 14:11:21 2016 +0100 s390/pci: remove iomap sanity checks Since each iomap_entry handles only one bar of one pci function (even when disjunct ranges of a bar are mapped) the sanity check in pci_iomap_range is not needed and can be removed. Also convert the remaining BUG_ONs to WARN_ONs. Signed-off-by: Sebastian Ott Reviewed-by: Gerald Schaefer Signed-off-by: Martin Schwidefsky arch/s390/pci/pci.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) commit 8ead7efb6379354d0d31efb39342f4399c87cb67 Author: Sebastian Ott Date: Fri Jan 22 14:04:18 2016 +0100 s390/pci: set error state for unusable functions We receive special notifications from firmware when an error was detected and a pci function became unusable. Set the error_state accordingly to give device drivers a hint that they don't need to try error recovery. Suggested-by: Alexander Schmidt Signed-off-by: Sebastian Ott Reviewed-by: Gerald Schaefer Signed-off-by: Martin Schwidefsky arch/s390/pci/pci_event.c | 5 +++++ 1 file changed, 5 insertions(+) commit c0cabaddeeeab13db8ef4e275ab5c7c0e8746324 Author: Sebastian Ott Date: Fri Jan 22 14:03:06 2016 +0100 s390/pci: fix bar check Fix the check which bar space we should map to allow available bars only. Signed-off-by: Sebastian Ott Reviewed-by: Gerald Schaefer Signed-off-by: Martin Schwidefsky arch/s390/pci/pci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c506fff3d3a8a632e8eb2270680548ec415f0357 Author: Sebastian Ott Date: Fri Jan 22 14:01:44 2016 +0100 s390/pci: resize iomap On s390 we need to maintain a mapping between iomem addresses and arch specific function identifiers. Currently the mapping table is created as such that we could span the whole iomem address space. Since we can only map each bar space from each possible function we have an upper bound for the number of mapping entries. This reduces the size of the iomap from 256K to less than 4K (using the defconfig). Signed-off-by: Sebastian Ott Reviewed-by: Gerald Schaefer Signed-off-by: Martin Schwidefsky arch/s390/pci/pci.c | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) commit bf19c94d5caa100f22c20d756c57e3550c01cdb8 Author: Sebastian Ott Date: Fri Jan 22 13:59:35 2016 +0100 s390/pci: improve ZPCI_* macros Most of the constants defined in pci_io.h depend on each other and thus can be calculated. Signed-off-by: Sebastian Ott Reviewed-by: Gerald Schaefer Signed-off-by: Martin Schwidefsky arch/s390/include/asm/pci_io.h | 15 +++++++++------ arch/s390/pci/pci.c | 2 +- 2 files changed, 10 insertions(+), 7 deletions(-) commit 9e00caaea14b90a788c17a2e0c32108a3d7008ec Author: Sebastian Ott Date: Fri Jan 22 13:58:42 2016 +0100 s390/pci: provide ZPCI_ADDR macro Provide and use a ZPCI_ADDR macro as the complement of ZPCI_IDX to get rid of some constants in the code. Signed-off-by: Sebastian Ott Reviewed-by: Gerald Schaefer Signed-off-by: Martin Schwidefsky arch/s390/include/asm/pci_io.h | 1 + arch/s390/pci/pci.c | 10 +++------- 2 files changed, 4 insertions(+), 7 deletions(-) commit c2e1fcf3ec39de092e3e84b489b5c0cc39f6dd05 Author: Sebastian Ott Date: Fri Jan 22 13:57:34 2016 +0100 s390/pci: adjust IOMAP_MAX_ENTRIES ZPCI_IOMAP_MAX_ENTRIES is off by one. Let's adjust this for the sake of correctness. Signed-off-by: Sebastian Ott Reviewed-by: Gerald Schaefer Signed-off-by: Martin Schwidefsky arch/s390/include/asm/pci_io.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2d0f76a6ca1f2cdcffca7ce130f67ec61caa0999 Author: Michael Holzheu Date: Wed Jan 20 19:22:16 2016 +0100 s390/numa: move numa_init_late() from device to arch_initcall Commit 3e89e1c5ea ("hugetlb: make mm and fs code explicitly non-modular") moves hugetlb_init() from module_init to subsys_initcall. The hugetlb_init()->hugetlb_register_node() code accesses "node->dev.kobj" which is initialized in numa_init_late(). Since numa_init_late() is a device_initcall which is called *after* subsys_initcall the above mentioned patch breaks NUMA on s390. So fix this and move numa_init_late() to arch_initcall. Fixes: 3e89e1c5ea ("hugetlb: make mm and fs code explicitly non-modular") Reviewed-by: Heiko Carstens Signed-off-by: Michael Holzheu Signed-off-by: Martin Schwidefsky arch/s390/numa/numa.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 531d3067314f63d80936c565dcd0fa01c7a1760f Author: Will Deacon Date: Mon Jan 25 18:25:59 2016 +0000 arm64: defconfig: updates for 4.5 Based on requests, update our defconfig so that: - We don't build any modules - PL031 is enabled (RTC emulated by qemu) - Xen guest support is enabled - The Uniphier built-in I2C controller is enabled - PCI host controller drivers for the various arm64 SoCs are enabled - Device passthrough works on Seattle using SMMU and VFIO - The Hisilicon IRQ controller (mbigen) is enabled Signed-off-by: Will Deacon arch/arm64/configs/defconfig | 42 +++++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 17 deletions(-) commit 67dfa1751ce71e629aad7c438e1678ad41054677 Author: dann frazier Date: Mon Jan 25 16:52:16 2016 -0700 arm64: errata: Add -mpc-relative-literal-loads to build flags GCC6 (and Linaro's 2015.12 snapshot of GCC5) has a new default that uses adrp/ldr or adrp/add to address literal pools. When CONFIG_ARM64_ERRATUM_843419 is enabled, modules built with this toolchain fail to load: module libahci: unsupported RELA relocation: 275 This patch fixes the problem by passing '-mpc-relative-literal-loads' to the compiler. Cc: stable@vger.kernel.org Fixes: df057cc7b4fa ("arm64: errata: add module build workaround for erratum #843419") BugLink: http://bugs.launchpad.net/bugs/1533009 Acked-by: Ard Biesheuvel Suggested-by: Christophe Lyon Signed-off-by: Dann Frazier Signed-off-by: Will Deacon arch/arm64/Makefile | 1 + 1 file changed, 1 insertion(+) commit 728dabd6d1751cf5e0f8e0535891393da62396e9 Author: William Cohen Date: Thu Jan 21 22:56:26 2016 -0500 Eliminate the .eh_frame sections from the aarch64 vmlinux and kernel modules By default the aarch64 gcc generates .eh_frame sections. Unlike .debug_frame sections, the .eh_frame sections are loaded into memory when the associated code is loaded. On an example kernel being built with this default the .eh_frame section in vmlinux used an extra 1.7MB of memory. The x86 disables the creation of the .eh_frame section. The aarch64 should probably do the same to save some memory. Signed-off-by: William Cohen Signed-off-by: Will Deacon arch/arm64/Makefile | 1 + 1 file changed, 1 insertion(+) commit 07905298e4d5777eb58516cdc242f7ac1ca387a2 Author: Lucas Tanure Date: Mon Jan 25 19:30:23 2016 -0200 ALSA: bebob: Use a signed return type for get_formation_index The return type "unsigned int" was used by the get_formation_index function despite of the aspect that it will eventually return a negative error code. So, change to signed int and get index by reference in the parameters. Done with the help of Coccinelle. [Fix the missing braces suggested by Julia Lawall -- tiwai] Signed-off-by: Lucas Tanure Reviewed-by: Takashi Sakamoto Tested-by: Takashi Sakamoto Cc: Signed-off-by: Takashi Iwai sound/firewire/bebob/bebob_stream.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) commit 6736fde9672ff6717ac576e9bba2fd5f3dfec822 Author: Johannes Berg Date: Tue Jan 26 11:29:03 2016 +0100 rfkill: fix rfkill_fop_read wait_event usage The code within wait_event_interruptible() is called with !TASK_RUNNING, so mustn't call any functions that can sleep, like mutex_lock(). Since we re-check the list_empty() in a loop after the wait, it's safe to simply use list_empty() without locking. This bug has existed forever, but was only discovered now because all userspace implementations, including the default 'rfkill' tool, use poll() or select() to get a readable fd before attempting to read. Cc: stable@vger.kernel.org Fixes: c64fb01627e24 ("rfkill: create useful userspace interface") Reported-by: Dmitry Vyukov Signed-off-by: Johannes Berg net/rfkill/core.c | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) commit 4fa11ec726a32ea6dd768dbb2e2af3453a98ec0a Author: Sachin Kulkarni Date: Tue Jan 12 14:30:19 2016 +0530 mac80211: Requeue work after scan complete for all VIF types. During a sw scan ieee80211_iface_work ignores work items for all vifs. However after the scan complete work is requeued only for STA, ADHOC and MESH iftypes. This occasionally results in event processing getting delayed/not processed for iftype AP when it coexists with a STA. This can result in data halt and eventually disconnection on the AP interface. Cc: stable@vger.kernel.org Signed-off-by: Sachin Kulkarni Signed-off-by: Johannes Berg net/mac80211/ibss.c | 1 - net/mac80211/mesh.c | 11 ----------- net/mac80211/mesh.h | 4 ---- net/mac80211/mlme.c | 2 -- net/mac80211/scan.c | 12 +++++++++++- 5 files changed, 11 insertions(+), 19 deletions(-) commit b4abf91047cf054f203dcfac97e1038388826937 Author: Thomas Gleixner Date: Wed Jan 13 11:25:38 2016 +0100 rtmutex: Make wait_lock irq safe Sasha reported a lockdep splat about a potential deadlock between RCU boosting rtmutex and the posix timer it_lock. CPU0 CPU1 rtmutex_lock(&rcu->rt_mutex) spin_lock(&rcu->rt_mutex.wait_lock) local_irq_disable() spin_lock(&timer->it_lock) spin_lock(&rcu->mutex.wait_lock) --> Interrupt spin_lock(&timer->it_lock) This is caused by the following code sequence on CPU1 rcu_read_lock() x = lookup(); if (x) spin_lock_irqsave(&x->it_lock); rcu_read_unlock(); return x; We could fix that in the posix timer code by keeping rcu read locked across the spinlocked and irq disabled section, but the above sequence is common and there is no reason not to support it. Taking rt_mutex.wait_lock irq safe prevents the deadlock. Reported-by: Sasha Levin Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Paul McKenney kernel/futex.c | 18 +++---- kernel/locking/rtmutex.c | 135 +++++++++++++++++++++++++---------------------- 2 files changed, 81 insertions(+), 72 deletions(-) commit 481eaec37e91e2b33f17275901172f50ce2c71e8 Author: Michael S. Tsirkin Date: Thu Jan 21 14:44:10 2016 +0200 tools/virtio: add ringtest utilities This adds micro-benchmarks useful for tuning virtio ring layouts. Three layouts are currently implemented: - virtio 0.9 compatible one - an experimental extension bypassing the ring index, polling ring itself instead - an experimental extension bypassing avail and used ring completely Typical use: sh run-on-all.sh perf stat -r 10 --log-fd 1 -- ./ring It doesn't depend on the kernel directly, but it's handy to have as much virtio stuff as possible in one tree. Signed-off-by: Michael S. Tsirkin tools/virtio/ringtest/Makefile | 22 ++ tools/virtio/ringtest/README | 2 + tools/virtio/ringtest/main.c | 366 +++++++++++++++++++++++++++++++ tools/virtio/ringtest/main.h | 119 ++++++++++ tools/virtio/ringtest/ring.c | 272 +++++++++++++++++++++++ tools/virtio/ringtest/run-on-all.sh | 24 ++ tools/virtio/ringtest/virtio_ring_0_9.c | 316 ++++++++++++++++++++++++++ tools/virtio/ringtest/virtio_ring_poll.c | 2 + 8 files changed, 1123 insertions(+) commit fb9b050ce9695cf2769a850d94aa2ab39c8c3cd5 Author: Michael S. Tsirkin Date: Sun Dec 27 15:04:42 2015 +0200 sh: fix smp_store_mb for !SMP sh variant of smp_store_mb() calls xchg() on !SMP which is stronger than implied by both the name and the documentation. commit 90a3ccb0be538a914e6a5c51ae919762261563ad ("sh: define __smp_xxx, fix smp_store_mb for !SMP") was supposed to fix it but left the bug in place. Drop smp_store_mb, so that code in asm-generic/barrier.h will define it correctly depending on CONFIG_SMP. Signed-off-by: Michael S. Tsirkin arch/sh/include/asm/barrier.h | 1 - 1 file changed, 1 deletion(-) commit a7c490333df3cff5086ddf19a0837529304fa097 Author: Michael S. Tsirkin Date: Wed Jan 20 21:12:58 2016 +0200 tools/virtio: use virt_xxx barriers Fix build after API changes. Reported-by: Kamal Mostafa Signed-off-by: Michael S. Tsirkin tools/virtio/asm/barrier.h | 22 +++++++++++++--------- tools/virtio/linux/compiler.h | 9 +++++++++ tools/virtio/linux/kernel.h | 1 + 3 files changed, 23 insertions(+), 9 deletions(-) commit 2989be09a8a9d62a785137586ad941f916e08f83 Author: Michael S. Tsirkin Date: Thu Jan 14 16:00:41 2016 +0200 virtio_pci: fix use after free on release KASan detected a use-after-free error in virtio-pci remove code. In virtio_pci_remove(), vp_dev is still used after being freed in unregister_virtio_device() (in virtio_pci_release_dev() more precisely). To fix, keep a reference until cleanup is done. Fixes: 63bd62a08ca4 ("virtio_pci: defer kfree until release callback") Reported-by: Jerome Marchand Cc: stable@vger.kernel.org Cc: Sasha Levin Signed-off-by: Michael S. Tsirkin Tested-by: Jerome Marchand drivers/virtio/virtio_pci_common.c | 2 ++ 1 file changed, 2 insertions(+) commit 3b9e9488098a7cd91f4111962a49457cfc6557d2 Merge: c85e492 79febbc Author: David S. Miller Date: Mon Jan 25 22:51:42 2016 -0800 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-queue Jeff Kirsher says: ==================== Intel Wired LAN Driver Updates 2016-01-25 This series contains updates to i40e only and so I won't continue receiving patches to fix the same issue (again). Arnd fixes the driver from causing the compiler whining about uninitialized variables, so initialize those variables. Eric fixes the build errors/warnings which were introduced by Anjali when she added geneve support to i40e. ==================== Signed-off-by: David S. Miller commit 08c6e8cc66282a082484480c1a5641bc27d26c55 Author: Andy Shevchenko Date: Fri Jan 15 22:02:12 2016 +0200 i2c: designware-pci: use IRQF_COND_SUSPEND flag This is effectively reapplies the commit b0898fdaffb2 ("i2c: designware-pci: use IRQF_COND_SUSPEND flag") after the commit d80d134182ba ("i2c: designware: Move common probe code into i2c_dw_probe()"). Original message as follows. The mentioned flag fixes a warning on Intel Edison board since one of the I2C controller shares IRQ line with watchdog timer. Fixes: d80d134182ba (i2c: designware: Move common probe code into i2c_dw_probe()) Signed-off-by: Andy Shevchenko Acked-by: Jarkko Nikula Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-designware-core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 5a4ff9ec8d6edd2ab1cfe8ce6a080d6e57cbea9a Author: Guillaume Fougnies Date: Tue Jan 26 00:28:27 2016 +0100 ALSA: usb-audio: Fix TEAC UD-501/UD-503/NT-503 usb delay TEAC UD-501/UD-503/NT-503 fail to switch properly between different rate/format. Similar to 'Playback Design', this patch corrects the invalid clock source error for TEAC products and avoids complete freeze of the usb interface of 503 series. Signed-off-by: Guillaume Fougnies Cc: Signed-off-by: Takashi Iwai sound/usb/quirks.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) commit 83c60158ebf16417af28b338bc0380cf17f2b9f9 Author: Jean Delvare Date: Mon Jan 25 12:17:07 2016 +0100 i2c: piix4: Fully initialize SB800 before it is registered This closes a race window where I2C device drivers attempt to access I2C buses which aren't fully initialized yet. Signed-off-by: Jean Delvare Tested-by: Christian Fetzer Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-piix4.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) commit a28e35171cb1ff84197e8d271b65aaeb8c404827 Author: Jean Delvare Date: Fri Jan 22 14:12:02 2016 +0100 i2c: piix4: Fix SB800 locking We need a single mutex for all 4 shared SMBus ports on the SB800. A per-port mutex doesn't protect us from concurrent access. In theory the mutex should be per PCI device, however in practice we know that there's only ever a single instance of the device in a given system so we can use a global. Also take the mutex during initialization, as first port may be already in use when second port is initialized. Signed-off-by: Jean Delvare Tested-by: Christian Fetzer Reviewed-by: Mika Westerberg [wsa: made mutex static] Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-piix4.c | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) commit f49d45c973984eb805eb989b6220aa7c1ee30bc2 Author: Alex Deucher Date: Tue Jan 26 00:30:33 2016 -0500 drm/amdgpu: don't init fbdev if we don't have any connectors Don't init fbdev if we don't have connectors. E.g., if you have a PX laptop with the displays attached to an IGP with no driver support, you may end up with a blank screen rather than falling back to vesa, etc. Based on a similar radeon patch from Rob Clark. Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c | 4 ++++ 1 file changed, 4 insertions(+) commit f95429eccc570dc45d589c327bfcfddcdc3e8228 Author: Rob Clark Date: Mon Jan 25 18:06:48 2016 -0500 drm/radeon: only init fbdev if we have connectors This fixes an issue that was noticed on an optimus/prime laptop with a kernel that was old enough to not support the integrated intel gfx (which was driving all the outputs), but did have support for the discrete radeon gpu. The end result was not falling back to VESA and leaving the user with a black screen. (Plus it is kind of silly to create an framebuffer device if there are no outputs hooked up to the gpu.) Signed-off-by: Rob Clark Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon_display.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 80ad623edd2d0ccb47d85357ee31c97e6c684e82 Author: David Sterba Date: Mon Jan 25 11:02:06 2016 +0100 Revert "btrfs: clear PF_NOFREEZE in cleaner_kthread()" This reverts commit 696249132158014d594896df3a81390616069c5c. The cleaner thread can block freezing when there's a snapshot cleaning in progress and the other threads get suspended first. From the logs provided by Martin we're waiting for reading extent pages: kernel: PM: Syncing filesystems ... done. kernel: Freezing user space processes ... (elapsed 0.015 seconds) done. kernel: Freezing remaining freezable tasks ... kernel: Freezing of tasks failed after 20.003 seconds (1 tasks refusing to freeze, wq_busy=0): kernel: btrfs-cleaner D ffff88033dd13bc0 0 152 2 0x00000000 kernel: ffff88032ebc2e00 ffff88032e750000 ffff88032e74fa50 7fffffffffffffff kernel: ffffffff814a58df 0000000000000002 ffffea000934d580 ffffffff814a5451 kernel: 7fffffffffffffff ffffffff814a6e8f 0000000000000000 0000000000000020 kernel: Call Trace: kernel: [] ? bit_wait+0x2c/0x2c kernel: [] ? schedule+0x6f/0x7c kernel: [] ? schedule_timeout+0x2f/0xd8 kernel: [] ? timekeeping_get_ns+0xa/0x2e kernel: [] ? ktime_get+0x36/0x44 kernel: [] ? io_schedule_timeout+0x94/0xf2 kernel: [] ? io_schedule_timeout+0x94/0xf2 kernel: [] ? bit_wait_io+0x2c/0x30 kernel: [] ? __wait_on_bit+0x41/0x73 kernel: [] ? wait_on_page_bit+0x6d/0x72 kernel: [] ? autoremove_wake_function+0x2a/0x2a kernel: [] ? read_extent_buffer_pages+0x1bd/0x203 kernel: [] ? free_root_pointers+0x4c/0x4c kernel: [] ? btree_read_extent_buffer_pages.constprop.57+0x5a/0xe9 kernel: [] ? read_tree_block+0x2d/0x45 kernel: [] ? read_block_for_search.isra.34+0x22a/0x26b kernel: [] ? btrfs_set_path_blocking+0x1e/0x4a kernel: [] ? btrfs_search_slot+0x648/0x736 kernel: [] ? btrfs_lookup_extent_info+0xb7/0x2c7 kernel: [] ? walk_down_proc+0x9c/0x1ae kernel: [] ? walk_down_tree+0x40/0xa4 kernel: [] ? btrfs_drop_snapshot+0x2da/0x664 kernel: [] ? finish_task_switch+0x126/0x167 kernel: [] ? btrfs_clean_one_deleted_snapshot+0xa6/0xb0 kernel: [] ? cleaner_kthread+0x13e/0x17b kernel: [] ? btrfs_item_end+0x33/0x33 kernel: [] ? kthread+0x95/0x9d kernel: [] ? kthread_parkme+0x16/0x16 kernel: [] ? ret_from_fork+0x3f/0x70 kernel: [] ? kthread_parkme+0x16/0x16 As this affects a released kernel (4.4) we need a minimal fix for stable kernels. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=108361 Reported-by: Martin Ziegler CC: stable@vger.kernel.org # 4.4 CC: Jiri Kosina Signed-off-by: David Sterba Signed-off-by: Chris Mason fs/btrfs/disk-io.c | 1 - 1 file changed, 1 deletion(-) commit 0a95b851370b84a4b9d92ee6d1fa0926901d0454 Author: Qu Wenruo Date: Fri Jan 22 09:28:38 2016 +0800 btrfs: async-thread: Fix a use-after-free error for trace Parameter of trace_btrfs_work_queued() can be freed in its workqueue. So no one use use that pointer after queue_work(). Fix the user-after-free bug by move the trace line before queue_work(). Reported-by: Dave Jones Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: Chris Mason fs/btrfs/async-thread.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit de0ee0edb21fbab4c7afa3e94573ecfebfb0244e Author: Filipe Manana Date: Thu Jan 21 10:17:54 2016 +0000 Btrfs: fix race between fsync and lockless direct IO writes An fsync, using the fast path, can race with a concurrent lockless direct IO write and end up logging a file extent item that points to an extent that wasn't written to yet. This is because the fast fsync path collects ordered extents into a local list and then collects all the new extent maps to log file extent items based on them, while the direct IO write path creates the new extent map before it creates the corresponding ordered extent (and submitting the respective bio(s)). So fix this by making the direct IO write path create ordered extents before the extent maps and make the fast fsync path collect any new ordered extents after it collects the extent maps. Note that making the fsync handler call inode_dio_wait() (after acquiring the inode's i_mutex) would not work and lead to a deadlock when doing AIO, as through AIO we end up in a path where the fsync handler is called (through dio_aio_complete_work() -> dio_complete() -> vfs_fsync_range()) before the inode's dio counter is decremented (inode_dio_wait() waits for this counter to have a value of zero). Signed-off-by: Filipe Manana Signed-off-by: Chris Mason fs/btrfs/inode.c | 36 ++++++++++++++++++++++++++++-------- fs/btrfs/tree-log.c | 14 +++++++++++--- 2 files changed, 39 insertions(+), 11 deletions(-) commit 6b5aa88c861cf0e4156e490009e2018d4fc81109 Merge: a6111d1 14e46e0 Author: Chris Mason Date: Mon Jan 25 16:43:13 2016 -0800 Merge branch 'fix/fst-sysfs' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux into for-linus-4.5 Signed-off-by: Chris Mason commit 79febbc19b81b5242339bffb90e4dbea15015dde Author: Arnd Bergmann Date: Wed Jan 20 19:53:17 2016 -0800 net: i40e: shut up uninitialized variable warnings intel/i40e/i40e_txrx.c: In function 'i40e_xmit_frame_ring': intel/i40e/i40e_txrx.c:2367:20: error: 'oiph' may be used uninitialized in this function [-Werror=maybe-uninitialized] intel/i40e/i40e_txrx.c:2317:16: note: 'oiph' was declared here intel/i40e/i40e_txrx.c:2367:17: error: 'oudph' may be used uninitialized in this function [-Werror=maybe-uninitialized] intel/i40e/i40e_txrx.c:2316:17: note: 'oudph' was declared here Signed-off-by: Arnd Bergmann Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_txrx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5cae7615b613381a04d3dd06b8237234cc3f7cc9 Author: Eric Dumazet Date: Wed Jan 20 19:53:02 2016 -0800 i40e: fix build warnings Fixes following build warnings : drivers/net/ethernet/intel/i40e/i40e_main.c:7057:13: warning: 'i40e_sync_udp_filters_subtask' defined but not used [-Wunused-function] drivers/net/ethernet/intel/i40e/i40e_main.c:8524:13: warning: 'i40e_add_vxlan_port' defined but not used [-Wunused-function] drivers/net/ethernet/intel/i40e/i40e_main.c:8569:13: warning: 'i40e_del_vxlan_port' defined but not used [-Wunused-function] drivers/net/ethernet/intel/i40e/i40e_main.c:8604:13: warning: 'i40e_add_geneve_port' defined but not used [-Wunused-function] drivers/net/ethernet/intel/i40e/i40e_main.c:8651:13: warning: 'i40e_del_geneve_port' defined but not used [-Wunused-function] Fixes: 6a899024058d ("i40e: geneve tunnel offload support") Signed-off-by: Eric Dumazet Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_main.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) commit 566d1827df2ef0cbe921d3d6946ac3007b1a6938 Author: Tejun Heo Date: Fri Jan 15 15:13:05 2016 -0500 libata: disable forced PORTS_IMPL for >= AHCI 1.3 Some early controllers incorrectly reported zero ports in PORTS_IMPL register and the ahci driver fabricates PORTS_IMPL from the number of ports in those cases. This hasn't mattered but with the new nvme controllers there are cases where zero PORTS_IMPL is valid and should be honored. Disable the workaround for >= AHCI 1.3. Signed-off-by: Tejun Heo Reported-by: Andy Lutomirski Link: http://lkml.kernel.org/g/CALCETrU7yMvXEDhjAUShoHEhDwifJGapdw--BKxsP0jmjKGmRw@mail.gmail.com Cc: Sergei Shtylyov Cc: stable@vger.kernel.org drivers/ata/libahci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b00622fc34e9d45069bd6e328dfd47ea2ef61468 Author: Shikha Jain Date: Mon Jan 11 14:55:45 2016 -0800 libata: blacklist a Viking flash model for MWDMA corruption Viking flash model VRFDFC22048UCHC-TE causes data corruption in MWDMA mode. Cc: xe-kernel@external.cisco.com Signed-off-by: Shikha Jain Signed-off-by: Anil Veliyankara Madam Signed-off-by: Tejun Heo drivers/ata/libata-core.c | 1 + 1 file changed, 1 insertion(+) commit fb3296335500aaff61333df8eabbccf28761c79d Author: Danesh Petigara Date: Mon Jan 11 13:22:26 2016 -0800 drivers: ata: wake port before DMA stop for ALPM The AHCI driver code stops and starts port DMA engines at will without considering the power state of the particular port. The AHCI specification isn't very clear on how to handle this scenario, leaving implementation open to interpretation. Broadcom's STB SATA host controller is unable to handle port DMA controller restarts when the port in question is in low power mode. When a port enters partial or slumber mode, its PHY is powered down. When a controller restart is requested, the controller's internal state machine expects the PHY to be brought back up by software which never happens in this case, resulting in failures. To avoid this situation, logic is added to manually wake up the port just before its DMA engine is stopped, if the port happens to be in a low power state. HBA initiated power management ensures that the port eventually returns to its configured low power state, when the link is idle (as per the conditions listed in the spec). A new host flag is also added to ensure this logic is only exercised for hosts with the above limitation. tj: Formatting changes. Signed-off-by: Danesh Petigara Reviewed-by: Markus Mayer Signed-off-by: Tejun Heo drivers/ata/ahci.h | 1 + drivers/ata/ahci_brcmstb.c | 1 + drivers/ata/libahci.c | 23 ++++++++++++++++++++++- include/linux/libata.h | 1 + 4 files changed, 25 insertions(+), 1 deletion(-) commit 462b3f161beb62eeb290f4ec52f5ead29a2f8ac7 Author: Takashi Iwai Date: Mon Jan 25 13:59:21 2016 +0100 ALSA: compress: Disable GET_CODEC_CAPS ioctl for some architectures Some architectures like PowerPC can handle the maximum struct size in an ioctl only up to 13 bits, and struct snd_compr_codec_caps used by SNDRV_COMPRESS_GET_CODEC_CAPS ioctl overflows this limit. This problem was revealed recently by a powerpc change, as it's now treated as a fatal build error. This patch is a stop-gap for that: for architectures with less than 14 bit ioctl struct size, get rid of the handling of the relevant ioctl. We should provide an alternative equivalent ioctl code later, but for now just paper over it. Luckily, the compress API hasn't been used on such architectures, so the impact must be effectively zero. Reviewed-by: Mark Brown Acked-by: Sudip Mukherjee Cc: Signed-off-by: Takashi Iwai sound/core/compress_offload.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 0ea24daae053a9ba65d2f3eb20523002c1a8af38 Author: Adam Ford Date: Thu Jan 21 11:03:20 2016 -0600 ARM: dts: Fix wl12xx missing clocks that cause hangs The tcxo-clock-frequency binding is listed as optional, but without it the wl12xx used on the torpedo + wireless may hang. Scanning also appears broken without this patch. Signed-off-by: Adam Ford Fixes: 687c27676151 ("ARM: dts: Add minimal support for LogicPD Torpedo DM3730 devkit") Cc: stable@vger.kernel.org # v4.2+ Signed-off-by: Tony Lindgren arch/arm/boot/dts/logicpd-torpedo-som.dtsi | 1 + 1 file changed, 1 insertion(+) commit c85e4924452ae8225c8829f3fa8a2f7baa34bc5c Author: Haiyang Zhang Date: Mon Jan 25 09:49:31 2016 -0800 hv_netvsc: Fix book keeping of skb during batching process Since eliminating send_completion_tid from struct hv_netvsc_packet, we haven't add proper book keeping for the skb of the batched packet. This patch fixes this issue and allows the previous skb is properly freed. Otherwise, a panic may happen. Thanks to Simon Xiao for bisecting and analysis. Signed-off-by: Haiyang Zhang Reviewed-by: K. Y. Srinivasan Signed-off-by: David S. Miller drivers/net/hyperv/hyperv_net.h | 1 + drivers/net/hyperv/netvsc.c | 33 ++++++++++++++++++++++----------- 2 files changed, 23 insertions(+), 11 deletions(-) commit 757647e10e55c01fb7a9c4356529442e316a7c72 Author: Vitaly Kuznetsov Date: Mon Jan 25 16:00:41 2016 +0100 hv_netvsc: use skb_get_hash() instead of a homegrown implementation Recent changes to 'struct flow_keys' (e.g commit d34af823ff40 ("net: Add VLAN ID to flow_keys")) introduced a performance regression in netvsc driver. Is problem is, however, not the above mentioned commit but the fact that netvsc_set_hash() function did some assumptions on the struct flow_keys data layout and this is wrong. Get rid of netvsc_set_hash() by switching to skb_get_hash(). This change will also imply switching to Jenkins hash from the currently used Toeplitz but it seems there is no good excuse for Toeplitz to stay. Signed-off-by: Vitaly Kuznetsov Acked-by: Eric Dumazet Signed-off-by: David S. Miller drivers/net/hyperv/netvsc_drv.c | 67 ++--------------------------------------- 1 file changed, 3 insertions(+), 64 deletions(-) commit 87e57399e9d3606b08b0e1b2dd0f4aaa1d8ba365 Author: Thadeu Lima de Souza Cascardo Date: Mon Jan 25 11:29:19 2016 -0200 sit: set rtnl_link_ops before calling register_netdevice When creating a SIT tunnel with ip tunnel, rtnl_link_ops is not set before ipip6_tunnel_create is called. When register_netdevice is called, there is no linkinfo attribute in the NEWLINK message because of that. Setting rtnl_link_ops before calling register_netdevice fixes that. Signed-off-by: Thadeu Lima de Souza Cascardo Signed-off-by: David S. Miller net/ipv6/sit.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 05f3b50ea81d7af5479b55147ef98f8bbcd4a8b9 Author: Johannes Berg Date: Mon Jan 25 11:40:50 2016 +0100 net: fec: use CONFIG_ARM instead of CONFIG_ARCH_MXC/SOC_IMX28 As Arnd Bergmann points out, using CONFIG_ARCH_MXC and/or SOC_IMX28 is wrong if some other ARM platform uses this device - the operation of the driver would depend on an unrelated ARM platform that might or might not be set for multi-platform kernels. Prior to my previous patch, any other platforms using it would have been broken already due to having the cbd_datlen/cbd_sc fields in the wrong order, but byte ordering correctly, so no such platforms can exist and work today. In any case, it seems likely that only Freescale SoCs use this part, and those are little-endian on ARM, so CONFIG_ARM is safe for them. Signed-off-by: Johannes Berg Reviewed-by: Arnd Bergmann Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fec.h | 8 +++----- drivers/net/ethernet/freescale/fec_main.c | 3 +-- 2 files changed, 4 insertions(+), 7 deletions(-) commit 62f2aaabcf41b9e69d0356a7c1716b173241c105 Author: Sudip Mukherjee Date: Mon Jan 25 13:05:20 2016 +0530 defxx: fix build warning We are getting many build warnings about: 'bar_start' may be used uninitialized and 'bar_len' may be used uninitialized They are not actually uninitialized as dfx_get_bars() will initialize them properly. But still lets have them initialized just to satisfy the compiler (gcc 4.8.2). Signed-off-by: Sudip Mukherjee Acked-by: Maciej W. Rozycki Signed-off-by: David S. Miller drivers/net/fddi/defxx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 36df745536ab81956cf68329c8049ad07f4a0cf0 Author: Sudip Mukherjee Date: Mon Jan 25 11:43:09 2016 +0530 net: macb: fix build warning We are getting build warning about: macb.c:2889:13: warning: 'tx_clk' may be used uninitialized in this function macb.c:2888:11: warning: 'hclk' may be used uninitialized in this function In reality they are not used uninitialized as clk_init() will initialize them, this patch will just silence the warning. Signed-off-by: Sudip Mukherjee Acked-by: Nicolas Ferre Signed-off-by: David S. Miller drivers/net/ethernet/cadence/macb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5cfa30397bc3677250a3e71aebde7b40ecb2b25a Author: Johannes Berg Date: Sun Jan 24 16:52:37 2016 +0100 net: fec: make driver endian-safe The driver treats the device descriptors as CPU-endian, which appears to be correct with the default endianness on both ARM (typically LE) and PowerPC (typically BE) SoCs, indicating that the hardware block is generated differently. Add endianness annotations and byteswaps as necessary. It's not clear that the ifdef there really is correct and shouldn't just be #ifdef CONFIG_ARM, but I also can't test on anything but the i.MX6 HummingBoard where this gets it working with a BE kernel. Signed-off-by: Johannes Berg Signed-off-by: David S. Miller drivers/net/ethernet/freescale/Makefile | 3 + drivers/net/ethernet/freescale/fec.h | 40 ++++++--- drivers/net/ethernet/freescale/fec_main.c | 130 ++++++++++++++++-------------- 3 files changed, 101 insertions(+), 72 deletions(-) commit db0e51afa481088e6396f11e02018d64113a6578 Author: Russell King Date: Sun Jan 24 09:22:05 2016 +0000 net: dsa: fix mv88e6xxx switches Since commit 76e398a62712 ("net: dsa: use switchdev obj for VLAN add/del ops"), the Marvell 88E6xxx switch has been unable to pass traffic between ports - any received traffic is discarded by the switch. Taking a port out of bridge mode and configuring a vlan on it also the port to start passing traffic. With the debugfs files re-instated to allow debug of this issue by comparing the register settings between the working and non-working case, the reason becomes clear: GLOBAL GLOBAL2 SERDES 0 1 2 3 4 5 6 - 7: 1111 707f 2001 2 2 2 2 2 0 2 + 7: 1111 707f 2001 1 1 1 1 1 0 1 Register 7 for the ports is the default vlan tag register, and in the non-working setup, it has been set to 2, despite vlan 2 not being configured. This causes the switch to drop all packets coming in to these ports. The working setup has the default vlan tag register set to 1, which is the default vlan when none is configured. Inspection of the code reveals why. The code prior to this commit was: - for (vid = vlan->vid_begin; vid <= vlan->vid_end; ++vid) { ... - if (!err && vlan->flags & BRIDGE_VLAN_INFO_PVID) - err = ds->drv->port_pvid_set(ds, p->port, vid); but the new code is: + for (vid = vlan->vid_begin; vid <= vlan->vid_end; ++vid) { ... + } ... + if (pvid) + err = _mv88e6xxx_port_pvid_set(ds, port, vid); This causes the new code to always set the default vlan to one higher than the old code. Fix this. Fixes: 76e398a62712 ("net: dsa: use switchdev obj for VLAN add/del ops") Cc: Signed-off-by: Russell King Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 426f04684b30ced3632b29b41cb5c97dca500dca Author: Martin Roth Date: Sun Jan 24 00:56:19 2016 +0200 82xx: FCC: Fixing a bug causing to FCC port lock-up (second try) This is an additional patch to the one already submitted recently. The previous patch was not complete, and the FCC port lock-up scenario has been reproduced in lab. I had an opportunity to check the current patch in lab and the FCC port lock no longer freezes, while the previous patch still locks-up the FCC port. The current patch fixes a pointer arithmetic bug (second bug in the same line), which leads FCC port lock-up during underrun/collision handling. Within the tx_startup() function in mac-fcc.c, the address of last BD is not calculated correctly. As a result of wrong calculation of the last BD address, the next transmitted BD may be set to an area out of the transmit BD ring. This actually causes to port lock-up and it is not recoverable. Signed-off-by: Martin Roth Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fs_enet/mac-fcc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7e3b1207705c10ada363bbc7d0235730ce1f5b79 Merge: 143c6fe 20437f7 Author: Tony Lindgren Date: Mon Jan 25 10:46:21 2016 -0800 Merge branch 'enable-devices' into omap-for-v4.5/fixes commit 32b6170ca59ccf07d0e394561e54b2cd9726038c Author: Thomas Egerer Date: Mon Jan 25 12:58:44 2016 +0100 ipv4+ipv6: Make INET*_ESP select CRYPTO_ECHAINIV The ESP algorithms using CBC mode require echainiv. Hence INET*_ESP have to select CRYPTO_ECHAINIV in order to work properly. This solves the issues caused by a misconfiguration as described in [1]. The original approach, patching crypto/Kconfig was turned down by Herbert Xu [2]. [1] https://lists.strongswan.org/pipermail/users/2015-December/009074.html [2] http://marc.info/?l=linux-crypto-vger&m=145224655809562&w=2 Signed-off-by: Thomas Egerer Acked-by: Herbert Xu Signed-off-by: David S. Miller net/ipv4/Kconfig | 1 + net/ipv6/Kconfig | 1 + 2 files changed, 2 insertions(+) commit 20437f79f6627a31752f422688a6047c25cefcf1 Author: Neil Armstrong Date: Fri Jan 22 17:15:51 2016 +0100 ARM: OMAP: Add PWM dmtimer platform data quirks In order to set the currently platform dependent dmtimer functions pointers as platform data for the pwm-omap-dmtimer platform driver, add it to plat-omap auxdata_lookup table. Suggested-by: Tony Lindgren Signed-off-by: Neil Armstrong Signed-off-by: Tony Lindgren arch/arm/mach-omap2/pdata-quirks.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit 4ae2182b1e3407de369f8c5d799543b7db74221b Author: Sebastian Andrzej Siewior Date: Mon Jan 25 10:08:00 2016 -0600 PCI/AER: Flush workqueue on device remove to avoid use-after-free A Root Port's AER structure (rpc) contains a queue of events. aer_irq() enqueues AER status information and schedules aer_isr() to dequeue and process it. When we remove a device, aer_remove() waits for the queue to be empty, then frees the rpc struct. But aer_isr() references the rpc struct after dequeueing and possibly emptying the queue, which can cause a use-after-free error as in the following scenario with two threads, aer_isr() on the left and a concurrent aer_remove() on the right: Thread A Thread B -------- -------- aer_irq(): rpc->prod_idx++ aer_remove(): wait_event(rpc->prod_idx == rpc->cons_idx) # now blocked until queue becomes empty aer_isr(): # ... rpc->cons_idx++ # unblocked because queue is now empty ... kfree(rpc) mutex_unlock(&rpc->rpc_mutex) To prevent this problem, use flush_work() to wait until the last scheduled instance of aer_isr() has completed before freeing the rpc struct in aer_remove(). I reproduced this use-after-free by flashing a device FPGA and re-enumerating the bus to find the new device. With SLUB debug, this crashes with 0x6b bytes (POISON_FREE, the use-after-free magic number) in GPR25: pcieport 0000:00:00.0: AER: Multiple Corrected error received: id=0000 Unable to handle kernel paging request for data at address 0x27ef9e3e Workqueue: events aer_isr GPR24: dd6aa000 6b6b6b6b 605f8378 605f8360 d99b12c0 604fc674 606b1704 d99b12c0 NIP [602f5328] pci_walk_bus+0xd4/0x104 [bhelgaas: changelog, stable tag] Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Bjorn Helgaas CC: stable@vger.kernel.org drivers/pci/pcie/aer/aerdrv.c | 4 +--- drivers/pci/pcie/aer/aerdrv.h | 1 - drivers/pci/pcie/aer/aerdrv_core.c | 2 -- 3 files changed, 1 insertion(+), 6 deletions(-) commit 7fd13615992ae0fc132c9abb24511be43f3b5d9d Author: Gustavo Padovan Date: Thu Jan 21 09:48:14 2016 -0200 tracing/dma-buf/fence: Fix timeline str value on fence_annotate_wait_on timeline was wrongly assigned with ->get_driver_name(). Link: http://lkml.kernel.org/r/1453376895-30747-1-git-send-email-gustavo@padovan.org Signed-off-by: Gustavo Padovan Signed-off-by: Steven Rostedt include/trace/events/fence.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 186bac815227a4c26a0ad2f18c7450015d93ed0a Author: Matthew Dawson Date: Mon Jan 25 10:34:12 2016 -0500 drm/radeon: Ensure radeon bo is unreserved in radeon_gem_va_ioctl Found with lockdep while testing gpu reset. Reviewed-by: Christian König Signed-off-by: Matthew Dawson Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon_gem.c | 1 + 1 file changed, 1 insertion(+) commit 3e4c5efbb3ac7c9c4fb5f33b659fa98afe568ab1 Author: David Sterba Date: Mon Jan 25 16:47:10 2016 +0100 btrfs: add free space tree to the cow-only list Signed-off-by: David Sterba fs/btrfs/relocation.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 6b20e0ad2e39b77b7d4a48cc06c4de39768c7bb8 Author: David Sterba Date: Mon Jan 25 16:30:22 2016 +0100 btrfs: add free space tree to lockdep classes Signed-off-by: David Sterba fs/btrfs/disk-io.c | 1 + 1 file changed, 1 insertion(+) commit 5c408fee254633a5be69505bc86c6b034f871ab4 Author: Maciej S. Szmigiero Date: Mon Jan 18 20:07:44 2016 +0100 ASoC: fsl_ssi: remove explicit register defaults There is no guarantee that on fsl_ssi module load SSI registers will have their power-on-reset values. In fact, if the driver is reloaded the values in registers will be whatever they were set to previously. However, the cache needs to be fully populated at probe time to avoid non-atomic allocations during register access. Special case here is imx21-class SSI, since according to datasheet it don't have SACC{ST,EN,DIS} regs. This fixes hard lockup on fsl_ssi module reload, at least in AC'97 mode. Fixes: 05cf237972fe ("ASoC: fsl_ssi: Add driver suspend and resume to support MEGA Fast") Signed-off-by: Maciej S. Szmigiero Tested-by: Fabio Estevam Signed-off-by: Mark Brown sound/soc/fsl/fsl_ssi.c | 42 ++++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 20 deletions(-) commit ff61ee84e7aa5842d9e33c0b442f0b43a6a44eaf Author: Roger Shimizu Date: Fri Jan 22 00:00:36 2016 +0900 ARM: dts: orion5x: gpio pin fixes for linkstation lswtgl Here're a few gpio pin related fixes: - remove pinctrl-0 definition from pinctrl, since those pins are used in other places such as gpio-fan and regulators. - keep initial state of power led - fix for alarm pin of gpio-fan. Fixes: dc57844a736f ("ARM: dts: orion5x: add buffalo linkstation ls-wtgl") Signed-off-by: Roger Shimizu Reviewed-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit a63abe389d56f6f7b1541c2084b453c9dfdb89dc Author: Arnd Bergmann Date: Fri Dec 4 20:20:09 2015 -0200 [media] exynos4-is: make VIDEO_SAMSUNG_EXYNOS4_IS tristate With CONFIG_V4L2=m and VIDEO_SAMSUNG_EXYNOS4_IS=y, we can select the individual drivers as built-in code when that should not be possible: drivers/built-in.o: In function `s5pcsis_set_fmt': policy.c:(.text+0x13afdc): undefined reference to `v4l_bound_align_image' drivers/built-in.o: In function `s5pcsis_probe': policy.c:(.text+0x13b440): undefined reference to `v4l2_of_parse_endpoint' policy.c:(.text+0x13b72c): undefined reference to `v4l2_subdev_init' Changing VIDEO_SAMSUNG_EXYNOS4_IS to tristate means that the dependency from CONFIG_V4L2 propates to the individual Kconfig symbols and they can only be built as loadable modules if V4L2 or any other of the dependencies itself is a module. Signed-off-by: Arnd Bergmann Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/exynos4-is/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 71f50c6d9a2276f3ec85384bffe2aee1962f4669 Author: Masahiro Yamada Date: Fri Jan 22 01:33:51 2016 +0900 of: drop symbols declared by _OF_DECLARE() from modules The users of this macro (OF_EARLYCON_DECLARE, CLK_OF_DECLARE, IRQCHIP_DECLARE, etc.) are only parsed in the early boot stage. Such symbols contained in modules are never used. This commit fixes the link error introduced by commit b8d20e06eaad ("serial: 8250_uniphier: add earlycon support"); the combination of CONFIG_SERIAL_8250_UNIPHIER=m and CONFIG_SERIAL_8250_CONSOLE=y fails to link: ERROR: "early_serial8250_setup" [drivers/tty/serial/8250/8250_uniphier.ko] undefined! Fixes: b8d20e06eaad ("serial: 8250_uniphier: add earlycon support") Signed-off-by: Masahiro Yamada Acked-by: Arnd Bergmann Signed-off-by: Rob Herring include/linux/of.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e68d7c143a62f372303f132cc69510eaaa4f1e04 Author: Rob Herring Date: Thu Dec 10 17:38:23 2015 -0600 MAINTAINERS: Add missing platform maintainers for dts files Platform dts files need to be reviewed primarily by the platform maintainers as dts files typically go in thru their trees. Add the missing paths where there are existing maintainers listed. Signed-off-by: Rob Herring Acked-by: Krzysztof Kozlowski Acked-by: Santosh Shilimkar Reviewed-by: Viresh Kumar Acked-by: Florian Fainelli Acked-by: Robert Jarzmik Acked-by: Andy Gross Acked-by: Sudeep Holla Acked-by: Sebastian Hesselbarth Acked-by: Arnd Bergmann Acked-by: Dinh Nguyen MAINTAINERS | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) commit 0418138e2ffd90f4a00b263593f2e199db87321d Author: Roger Shimizu Date: Thu Jan 21 23:38:47 2016 +0900 ARM: dts: kirkwood: gpio-leds fixes for linkstation ls-wvl/vl The GPIOs controlling the LEDs, listed below, are active high, not low: - gpio-leds: "lswvl:red:alarm" pin - gpio-leds: "lswvl:red:func" pin - gpio-leds: "lswvl:amber:info" pin - gpio-leds: "lswvl:blue:func" pin - gpio-leds: "lswvl:red:hdderr{0,1}" pin Fixes: c43379e150aa ("ARM: dts: add buffalo linkstation ls-wvl/vl") Signed-off-by: Roger Shimizu Reviewed-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/kirkwood-lswvl.dts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit e98bd707e39d52d8bef8622e6e7b0ab4bd0ed8d0 Author: Roger Shimizu Date: Thu Jan 21 23:38:46 2016 +0900 ARM: dts: kirkwood: gpio-leds fixes for linkstation ls-wxl/wsxl The GPIOs controlling the LEDs, listed below, are active high, not low: - gpio-leds: "lswxl:blue:power" pin - gpio-leds: "lswxl:red:func" pin - gpio-leds: "lswxl:red:hdderr{0,1}" pin Fixes: e54e4b1b622e ("ARM: dts: add buffalo linkstation ls-wxl/wsxl") Signed-off-by: Roger Shimizu Reviewed-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/kirkwood-lswxl.dts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 6f86e9adc53b4c0a2a4283692216d119019f0b8d Author: Roger Shimizu Date: Thu Jan 21 23:38:45 2016 +0900 ARM: dts: kirkwood: gpio pin fixes for linkstation ls-wvl/vl For kirkwood, gpio pins starts from 32 are in the 2nd bank, so it should be converted to "gpio1 " in dts file. e.g. gpio 40 should be "gpio1 8" The pin/bank issue was found when discussing Debian Bug #810894 [https://bugs.debian.org/810894#47] Fixes: c43379e150aa ("ARM: dts: add buffalo linkstation ls-wvl/vl") Reported-by: Arnaud Patard (Rtp) Signed-off-by: Roger Shimizu Reviewed-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/kirkwood-lswvl.dts | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) commit 144e08abe80080c9c2cf0a06e40f1bc8150674eb Author: Roger Shimizu Date: Thu Jan 21 23:38:44 2016 +0900 ARM: dts: kirkwood: gpio pin fixes for linkstation ls-wxl/wsxl For kirkwood, gpio pins starts from 32 are in the 2nd bank, so it should be converted to "gpio1 " in dts file. e.g. gpio 40 should be "gpio1 8" Besides, a few other pin fixes for ls-wxl/wsxl, to match with mpp pin definition: - gpio-leds: "lswxl:blue:power" pin - gpio-leds: "lswxl:red:func" pin - gpio-leds: "lswxl:red:hdderr0" pin - gpio-leds: "lswxl:red:hdderr1" pin - gpio-fan: low/high/alarm pin The pin/bank issue was found when discussing Debian Bug #810894 [https://bugs.debian.org/810894#47] Fixes: e54e4b1b622e ("ARM: dts: add buffalo linkstation ls-wxl/wsxl") Reported-by: Arnaud Patard (Rtp) Signed-off-by: Roger Shimizu Reviewed-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/kirkwood-lswxl.dts | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) commit cbe09bd51bf23b42c3a94c5fb6815e1397c5fc3f Author: Eli Cooper Date: Fri Jan 22 00:24:08 2016 +0800 crypto: chacha20-ssse3 - Align stack pointer to 64 bytes This aligns the stack pointer in chacha20_4block_xor_ssse3 to 64 bytes. Fixes general protection faults and potential kernel panics. Cc: stable@vger.kernel.org Signed-off-by: Eli Cooper Acked-by: Martin Willi Signed-off-by: Herbert Xu arch/x86/crypto/chacha20-ssse3-x86_64.S | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 7ee7014d0eb6bcac679c0bd5fe9ce65bc4325648 Author: Peter Jones Date: Mon Jan 18 10:49:58 2016 -0500 PKCS#7: Don't require SpcSpOpusInfo in Authenticode pkcs7 signatures Dave Young reported: > Hi, > > I saw the warning "Missing required AuthAttr" when testing kexec, > known issue? Idea about how to fix it? > > The kernel is latest linus tree plus sevral patches from Toshi to > cleanup io resource structure. > > in function pkcs7_sig_note_set_of_authattrs(): > if (!test_bit(sinfo_has_content_type, &sinfo->aa_set) || > !test_bit(sinfo_has_message_digest, &sinfo->aa_set) || > (ctx->msg->data_type == OID_msIndirectData && > !test_bit(sinfo_has_ms_opus_info, &sinfo->aa_set))) { > pr_warn("Missing required AuthAttr\n"); > return -EBADMSG; > } > > The third condition below is true: > (ctx->msg->data_type == OID_msIndirectData && > !test_bit(sinfo_has_ms_opus_info, &sinfo->aa_set)) > > I signed the kernel with redhat test key like below: > pesign -c 'Red Hat Test Certificate' -i arch/x86/boot/bzImage -o /boot/vmlinuz-4.4.0-rc8+ -s --force And right he is! The Authenticode specification is a paragon amongst technical documents, and has this pearl of wisdom to offer: --------------------------------- Authenticode-Specific SignerInfo UnauthenticatedAttributes Structures The following Authenticode-specific data structures are present in SignerInfo authenticated attributes. SpcSpOpusInfo SpcSpOpusInfo is identified by SPC_SP_OPUS_INFO_OBJID (1.3.6.1.4.1.311.2.1.12) and is defined as follows: SpcSpOpusInfo ::= SEQUENCE { programName [0] EXPLICIT SpcString OPTIONAL, moreInfo [1] EXPLICIT SpcLink OPTIONAL, } --#public-- SpcSpOpusInfo has two fields: programName This field contains the program description: If publisher chooses not to specify a description, the SpcString structure contains a zero-length program name. If the publisher chooses to specify a description, the SpcString structure contains a Unicode string. moreInfo This field is set to an SPCLink structure that contains a URL for a Web site with more information about the signer. The URL is an ASCII string. --------------------------------- Which is to say that this is an optional *unauthenticated* field which may be present in the Authenticated Attribute list. This is not how pkcs7 is supposed to work, so when David implemented this, he didn't appreciate the subtlety the original spec author was working with, and missed the part of the sublime prose that says this Authenticated Attribute is an Unauthenticated Attribute. As a result, the code in question simply takes as given that the Authenticated Attributes should be authenticated. But this one should not, individually. Because it says it's not authenticated. It still has to hash right so the TBS digest is correct. So it is both authenticated and unauthenticated, all at once. Truly, a wonder of technical accomplishment. Additionally, pesign's implementation has always attempted to be compatible with the signatures emitted from contemporary versions of Microsoft's signtool.exe. During the initial implementation, Microsoft signatures always produced the same values for SpcSpOpusInfo - {U"Microsoft Windows", "http://www.microsoft.com"} - without regard to who the signer was. Sometime between Windows 8 and Windows 8.1 they stopped including the field in their signatures altogether, and as such pesign stopped producing them in commits c0c4da6 and d79cb0c, sometime around June of 2012. The theory here is that anything that breaks with pesign signatures would also be breaking with signtool.exe sigs as well, and that'll be a more noticed problem for firmwares parsing it, so it'll get fixed. The fact that we've done exactly this bug in Linux code is first class, grade A irony. So anyway, we should not be checking this field for presence or any particular value: if the field exists, it should be at the right place, but aside from that, as long as the hash matches the field is good. Signed-off-by: Peter Jones Tested-by: Dave Young Signed-off-by: Herbert Xu crypto/asymmetric_keys/pkcs7_parser.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit e7a7104e432c0db8469ca3568daf4f1d1afe3e73 Author: Horia Geant? Date: Tue Jan 12 17:59:29 2016 +0200 crypto: caam - make write transactions bufferable on PPC platforms Previous change (see "Fixes" tag) to the MCFGR register clears AWCACHE[0] ("bufferable" AXI3 attribute) (which is "1" at POR). This makes all writes non-bufferable, causing a ~ 5% performance drop for PPC-based platforms. Rework previous change such that MCFGR[AWCACHE]=4'b0011 (bufferable + cacheable) for all platforms. Note: For ARM-based platforms, AWCACHE[0] is ignored by the interconnect IP. Cc: # 4.3+ Fixes: f10967495144 ("crypto: caam - fix snooping for write transactions") Signed-off-by: Horia Geant? Signed-off-by: Herbert Xu drivers/crypto/caam/ctrl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 65dc1a5d1efb0ec54ffb715468070890d27d63fc Author: Felix Fietkau Date: Thu Jan 21 16:34:08 2016 +0100 ath9k_hw: ignore eeprom magic mismatch on flash based devices Many AR913x based devices (maybe others too) do not have a valid EEPROM magic in their calibration data partition. Fixes: 6fa658fd5ab2 ("ath9k: Simplify and fix eeprom endianness swapping") Signed-off-by: Felix Fietkau Acked-by: Martin Blumenstingl Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/eeprom.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit f6427760a29ba3fd968e27ea567b1ebdd500740b Author: Russell King Date: Sun Jan 24 17:32:13 2016 +0000 drm/etnaviv: fix failure path if model is zero Fix the failure path to call pm_runtime_mark_last_busy() when failing due to the model field being zero. Acked-by: Christian Gmeiner Signed-off-by: Russell King Signed-off-by: Lucas Stach drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 339073ef77e45e87ec4cc8671b2d2328dcfd31f0 Author: Lucas Stach Date: Fri Jan 22 12:03:03 2016 +0100 drm/etnaviv: hold object lock while getting pages for coredump While all objects that get coredumped have an active IOVA and thus pages already populated, etnaviv_gem_get_pages() still requires the object lock to be held. Signed-off-by: Lucas Stach drivers/gpu/drm/etnaviv/etnaviv_dump.c | 2 ++ 1 file changed, 2 insertions(+) commit 23a9d5dcb6ae114733fac4757b0b154571c21129 Author: Fabio Estevam Date: Fri Jan 8 11:52:04 2016 -0200 drm/etnaviv: remove owner assignment from platform_driver This platform_driver does not need to set an owner as it will be populated by the driver core. Generated by scripts/coccinelle/api/platform_no_drv_owner.cocci. Signed-off-by: Fabio Estevam Signed-off-by: Lucas Stach drivers/gpu/drm/etnaviv/etnaviv_drv.c | 1 - 1 file changed, 1 deletion(-) commit c72fc9093718a3f8597249863a1bac345ba00859 Author: Larry Finger Date: Wed Jan 20 21:58:39 2016 -0600 rtlwifi: rtl8821ae: Fix 5G failure when EEPROM is incorrectly encoded Recently, it has been reported that D-Link DWA-582 cards, which use an RTL8812AE chip are not able to scan for 5G networks. The problems started with kernel 4.2, which is the first version that had commit d10101a60372 ("rtlwifi: rtl8821ae: Fix problem with regulatory information"). With this patch, the driver went from setting a default channel plan to using the value derived from EEPROM. Bug reports at https://bugzilla.kernel.org/show_bug.cgi?id=111031 and https://bugzilla.redhat.com/show_bug.cgi?id=1279653 are examples of this problem. The problem was solved once I learned that the internal country code was resulting in a regulatory set with only 2.4 GHz channels. With the RTL8821AE chips available to me, the country code was such that both 2.4 and 5 GHz channels are allowed. The fix is to allow both bands even when the EEPROM is incorrectly encoded. Fixes: d10101a60372 ("rtlwifi: rtl8821ae: Fix problem with regulatory information") Signed-off-by: Larry Finger Cc: littlesmartguy@gmail.com Cc: gabe@codehaus.org Cc: Stable [v4.2+] Signed-off-by: Kalle Valo drivers/net/wireless/realtek/rtlwifi/regd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 262c741e0825b29447a9e53b6582afd6b14c3706 Author: Eli Cooper Date: Mon Jan 18 19:30:19 2016 +0800 rt2x00: fix monitor mode regression Since commit df1404650ccb ("mac80211: remove support for IFF_PROMISC") monitor mode for rt2x00 has been made effectively useless because the hardware filter is configured to drop packets whose intended recipient is not the device, regardless of the presence of monitor mode interfaces. This patch fixes this regression by adding explicit monitor mode support, and by configuring the hardware filter accordingly. Signed-off-by: Eli Cooper Acked-by: Stanislaw Gruszka Signed-off-by: Kalle Valo drivers/net/wireless/ralink/rt2x00/rt2400pci.c | 4 +++- drivers/net/wireless/ralink/rt2x00/rt2500pci.c | 4 +++- drivers/net/wireless/ralink/rt2x00/rt2500usb.c | 4 +++- drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 3 ++- drivers/net/wireless/ralink/rt2x00/rt2x00.h | 1 + drivers/net/wireless/ralink/rt2x00/rt2x00config.c | 5 +++++ drivers/net/wireless/ralink/rt2x00/rt2x00mac.c | 5 ----- drivers/net/wireless/ralink/rt2x00/rt61pci.c | 4 +++- drivers/net/wireless/ralink/rt2x00/rt73usb.c | 4 +++- 9 files changed, 23 insertions(+), 11 deletions(-) commit 14050118afee4d8bd81d22fefa3e986172b08bc6 Author: Rhyland Klein Date: Thu Jan 14 14:24:31 2016 -0500 clk: tegra: Remove improper flags for lock_enable Most PLL's don't actually have LOCK_ENABLE bits. However, most PLL's also had that flag set, which meant that the clk code was trying to enable locks, and inadvertantly flipping bits in other fields. For PLLM, ensure the correct register is used for the misc_register. PLL_MISC0 contains the EN_LCKDET bit which should be used for enabling the lock, and PLLM_MISC1 shouldn't be used at all. Lastly, remove some of the settings which would point to the EN_LCKDET bits for some PLLs. There is no need to enable the locks, and that is done as part of the set_defaults logic already. Signed-off-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-tegra210.c | 42 ++++++++++++++-------------------------- 1 file changed, 14 insertions(+), 28 deletions(-) commit 4152b387da81617c80cb2946b2d56e3958906b3e Author: John Ernberg Date: Mon Jan 25 12:27:17 2016 +0000 USB: option: fix Cinterion AHxx enumeration In certain kernel configurations where the cdc_ether and option drivers are compiled as modules there can occur a race condition in enumeration. This causes the option driver to enumerate the ethernet(wwan) interface as usb-serial interfaces. usb-devices output for the modem: T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 5 Spd=480 MxCh= 0 D: Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=1e2d ProdID=0055 Rev=00.00 S: Manufacturer=Cinterion S: Product=AHx C: #Ifs= 6 Cfg#= 1 Atr=e0 MxPwr=10mA I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option I: If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option I: If#= 4 Alt= 0 #EPs= 1 Cls=02(commc) Sub=06 Prot=00 Driver=cdc_ether I: If#= 5 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether Signed-off-by: John Ernberg Fixes: 1941138e1c02 ("USB: added support for Cinterion's products...") Cc: stable # v3.9: 8ff10bdb14a52 Signed-off-by: Johan Hovold drivers/usb/serial/option.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 420520766a796d36076111139ba1e4fb1aadeadd Author: Sudip Mukherjee Date: Wed Dec 30 11:26:03 2015 -0200 [media] media: Kconfig: add dependency of HAS_DMA The build of m32r allmodconfig fails with the error: drivers/media/v4l2-core/videobuf2-dma-contig.c:484:2: error: implicit declaration of function 'dma_get_cache_alignment' The build of videobuf2-dma-contig.c depends on HAS_DMA and it is correctly mentioned in the Kconfig but the symbol VIDEO_STI_BDISP also selects VIDEOBUF2_DMA_CONTIG, so it is trying to compile videobuf2-dma-contig.c even though HAS_DMA is not defined. Signed-off-by: Sudip Mukherjee Acked-by: Sakari Ailus Acked-by: Geert Uytterhoeven Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/Kconfig | 1 + 1 file changed, 1 insertion(+) commit a13ddcae4f0bc5e1de761895d0cae2010e1934af Author: Jacek Anaszewski Date: Mon Jan 18 14:10:27 2016 -0200 [media] exynos4-is: Wait for 100us before opening sensor Some user space use cases result in kernel hangup on the HIC_OPEN_SENSOR command write. In case when a minimalistic application is used for setting up the streaming, the hangups occur only occasionally. In case of GStreamer use cases it is always the case. Signed-off-by: Jacek Anaszewski Acked-by: Kyungmin Park Cc: Sylwester Nawrocki Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/exynos4-is/fimc-is.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 76775776a6e3dbe2dc8a84345dca4540969bc014 Author: Jacek Anaszewski Date: Mon Jan 18 14:10:26 2016 -0200 [media] exynos4-is: Open shouldn't fail when sensor entity is not linked In order to allow for automatic media device entities linking from the level of libv4l plugin the open system call shouldn't fail, as the libv4l plugins can begin their job not until it succeeds. This patch allows for leaving the pipeline not linked on open and postpones verifying it to the moment when streamon callback is called. Signed-off-by: Jacek Anaszewski Acked-by: Kyungmin Park Cc: Sylwester Nawrocki Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/exynos4-is/media-dev.c | 95 +++++++++++++++++++++------ 1 file changed, 76 insertions(+), 19 deletions(-) commit 4e63959e3773276cc49b488238bd583c53cf54e8 Author: Jacek Anaszewski Date: Mon Jan 18 14:10:25 2016 -0200 [media] s5k6a3: Fix VIDIOC_SUBDEV_G_FMT ioctl for TRY format VIDIOC_SUBDEV_G_FMT ioctl should return TRY format previously set with VIDIOC_SUBDEV_S_FMT. Currently it is not the case as only ACTIVE formats are saved in the driver. Since the driver doesn't alter hardware state in the set_fmt op anyway, the op can save the format in both TRY and ACTIVE case. Signed-off-by: Jacek Anaszewski Acked-by: Kyungmin Park Cc: Sylwester Nawrocki Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/s5k6a3.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 21e4903246029e221ee92e3be3653f2805fac898 Author: Rhyland Klein Date: Thu Jan 14 14:24:30 2016 -0500 clk: tegra: Fix divider on VI_I2C VI-I2C has 16 bits available for its divider. Switch the divider width to 16 instead of 8 so correct rates can be set. Signed-off-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-tegra-periph.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 293de94cd66cded940849545f47c701cc36c0931 Author: Geert Uytterhoeven Date: Mon Dec 21 11:33:45 2015 +0100 ARM: mvebu: ix4-300d: Add compatible property to "partitions" node As of commit e488ca9f8d4f62c2 ("doc: dt: mtd: partitions: add compatible property to "partitions" node"), the "partitions" subnode of an SPI FLASH device node must have a compatible property. The partitions are no longer detected if it is not present. Signed-off-by: Geert Uytterhoeven Acked-by: Brian Norris Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts | 1 + 1 file changed, 1 insertion(+) commit 84d92dd3b6b785a6737f0409a920de31fb83343a Author: Geert Uytterhoeven Date: Mon Dec 21 11:33:46 2015 +0100 ARM: mvebu: kirkwood: Add compatible property to "partitions" node As of commit e488ca9f8d4f62c2 ("doc: dt: mtd: partitions: add compatible property to "partitions" node"), the "partitions" subnode of an SPI FLASH device node must have a compatible property. The partitions are no longer detected if it is not present. Signed-off-by: Geert Uytterhoeven Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/kirkwood-pogoplug-series-4.dts | 1 + 1 file changed, 1 insertion(+) commit b3122023df935cf14bf951da98ca598d71b9f826 Author: Masanari Iida Date: Sun Jan 24 15:24:12 2016 +0900 arm64: Fix an enum typo in mm/dump.c This patch fixes a typo in mm/dump.c: "MODUELS_END_NR" should be "MODULES_END_NR". Signed-off-by: Masanari Iida Signed-off-by: Will Deacon arch/arm64/mm/dump.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 028635d6b5b42de0e0fe5f5c92e1b99868e81a29 Author: Mathieu OTHACEHE Date: Mon Jan 4 19:49:36 2016 +0100 USB: mxu11x0: fix memory leak on usb_serial private data On nominal execution, private data allocated on port_probe and attach are never freed. Add port_remove and release callbacks to free them respectively. Signed-off-by: Mathieu OTHACEHE Signed-off-by: Johan Hovold drivers/usb/serial/mxu11x0.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 76a563675485849f6f9ad5b30df220438b3628c1 Author: Rasmus Villemoes Date: Tue Dec 8 12:15:54 2015 -0200 [media] exynos4-is: fix a format string bug Ironically, 7d4020c3c400 ("[media] exynos4-is: fix some warnings when compiling on arm64") fixed some format string bugs but introduced a new one. buf_index is a simple int, so it should be printed with %d, not %pad (which is correctly used for dma_addr_t). Fixes: 7d4020c3c400 ("[media] exynos4-is: fix some warnings when compiling on arm64") Signed-off-by: Rasmus Villemoes Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/exynos4-is/fimc-isp-video.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1b4ca5aa9e0867f5cec40f9508dac7414f3b6998 Author: Anders Roxell Date: Thu Jan 14 22:09:43 2016 -0200 [media] drivers/media: vsp1_video: fix compile error This was found with the -RT patch enabled, but the fix should apply to non-RT also. Compilation error without this fix: ../drivers/media/platform/vsp1/vsp1_video.c: In function 'vsp1_pipeline_stopped': ../drivers/media/platform/vsp1/vsp1_video.c:524:2: error: expected expression before 'do' spin_unlock_irqrestore(&pipe->irqlock, flags); ^ Signed-off-by: Anders Roxell Reviewed-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vsp1/vsp1_video.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ac15bd63bbb24238f763ec5b24ee175ec301e8cd Author: Catalin Marinas Date: Thu Jan 7 16:07:20 2016 +0000 arm64: Honour !PTE_WRITE in set_pte_at() for kernel mappings Currently, set_pte_at() only checks the software PTE_WRITE bit for user mappings when it sets or clears the hardware PTE_RDONLY accordingly. The kernel ptes are written directly without any modification, relying solely on the protection bits in macros like PAGE_KERNEL. However, modifying kernel pte attributes via pte_wrprotect() would be ignored by set_pte_at(). Since pte_wrprotect() does not set PTE_RDONLY (it only clears PTE_WRITE), the new permission is not taken into account. This patch changes set_pte_at() to adjust the read-only permission for kernel ptes as well. As a side effect, existing PROT_* definitions used for kernel ioremap*() need to include PTE_DIRTY | PTE_WRITE. (additionally, white space fix for PTE_KERNEL_ROX) Acked-by: Andrey Ryabinin Tested-by: Ard Biesheuvel Signed-off-by: Catalin Marinas Reported-by: Ard Biesheuvel Signed-off-by: Will Deacon arch/arm64/include/asm/pgtable.h | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) commit f436b2ac90a095746beb6729b8ee8ed87c9eaede Author: Lorenzo Pieralisi Date: Wed Jan 13 14:50:03 2016 +0000 arm64: kernel: fix architected PMU registers unconditional access The Performance Monitors extension is an optional feature of the AArch64 architecture, therefore, in order to access Performance Monitors registers safely, the kernel should detect the architected PMU unit presence through the ID_AA64DFR0_EL1 register PMUVer field before accessing them. This patch implements a guard by reading the ID_AA64DFR0_EL1 register PMUVer field to detect the architected PMU presence and prevent accessing PMU system registers if the Performance Monitors extension is not implemented in the core. Cc: Peter Maydell Cc: Mark Rutland Cc: Fixes: 60792ad349f3 ("arm64: kernel: enforce pmuserenr_el0 initialization and restore") Signed-off-by: Lorenzo Pieralisi Reported-by: Guenter Roeck Tested-by: Guenter Roeck Signed-off-by: Will Deacon arch/arm64/kernel/head.S | 5 +++++ arch/arm64/mm/proc-macros.S | 12 ++++++++++++ arch/arm64/mm/proc.S | 4 ++-- 3 files changed, 19 insertions(+), 2 deletions(-) commit 7b1af9795773d745c2a8c7d4ca5f2936e8b6adfb Author: Ard Biesheuvel Date: Mon Jan 11 14:50:21 2016 +0100 arm64: kasan: ensure that the KASAN zero page is mapped read-only When switching from the early KASAN shadow region, which maps the entire shadow space read-write, to the permanent KASAN shadow region, which uses a zero page to shadow regions that are not subject to instrumentation, the lowest level table kasan_zero_pte[] may be reused unmodified, which means that the mappings of the zero page that it contains will still be read-write. So update it explicitly to map the zero page read only when we activate the permanent mapping. Acked-by: Andrey Ryabinin Acked-by: Catalin Marinas Signed-off-by: Ard Biesheuvel Signed-off-by: Will Deacon arch/arm64/mm/kasan_init.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 75feee3d9d51775072d3a04f47d4a439a4c4590e Author: Ard Biesheuvel Date: Fri Jan 15 13:28:57 2016 +0100 arm64: hide __efistub_ aliases from kallsyms Commit e8f3010f7326 ("arm64/efi: isolate EFI stub from the kernel proper") isolated the EFI stub code from the kernel proper by prefixing all of its symbols with __efistub_, and selectively allowing access to core kernel symbols from the stub by emitting __efistub_ aliases for functions and variables that the stub can access legally. As an unintended side effect, these aliases are emitted into the kallsyms symbol table, which means they may turn up in backtraces, e.g., ... PC is at __efistub_memset+0x108/0x200 LR is at fixup_init+0x3c/0x48 ... [] __efistub_memset+0x108/0x200 [] free_initmem+0x2c/0x40 [] kernel_init+0x20/0xe0 [] ret_from_fork+0x10/0x40 The backtrace in question has nothing to do with the EFI stub, but simply returns one of the several aliases of memset() that have been recorded in the kallsyms table. This is undesirable, since it may suggest to people who are not aware of this that the issue they are seeing is somehow EFI related. So hide the __efistub_ aliases from kallsyms, by emitting them as absolute linker symbols explicitly. The distinction between those and section relative symbols is completely irrelevant to these definitions, and to the final link we are performing when these definitions are being taken into account (the distinction is only relevant to symbols defined inside a section definition when performing a partial link), and so the resulting values are identical to the original ones. Since absolute symbols are ignored by kallsyms, this will result in these values to be omitted from its symbol table. After this patch, the backtrace generated from the same address looks like this: ... PC is at __memset+0x108/0x200 LR is at fixup_init+0x3c/0x48 ... [] __memset+0x108/0x200 [] free_initmem+0x2c/0x40 [] kernel_init+0x20/0xe0 [] ret_from_fork+0x10/0x40 Signed-off-by: Ard Biesheuvel Signed-off-by: Will Deacon arch/arm64/kernel/image.h | 40 +++++++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 15 deletions(-) commit 9b4b92645c5edf16b9e77c5956e13b040ba5ed0f Author: Josh Wu Date: Mon Nov 30 07:20:15 2015 -0200 [media] atmel-isi: fix debug message which only show the first format Correct the debug output message to show correct format. Signed-off-by: Josh Wu Signed-off-by: Guennadi Liakhovetski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/soc_camera/atmel-isi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e920ebc2f85848f7c21b2fe27a6ea9e798c63568 Author: Wolfram Sang Date: Mon Jan 4 10:48:24 2016 -0200 [media] soc_camera: cleanup control device on async_unbind I got the following WARN on a simple unbind/bind cycle: root@Lager:/sys/bus/i2c/drivers/adv7180# echo 6-0020 > unbind root@Lager:/sys/bus/i2c/drivers/adv7180# echo 6-0020 > bind [ 31.097652] adv7180 6-0020: chip found @ 0x20 (e6520000.i2c) [ 31.123744] ------------[ cut here ]------------ [ 31.128413] WARNING: CPU: 3 PID: 873 at drivers/media/platform/soc_camera/soc_camera.c:1463 soc_camera_async_bound+0x40/0xa0() [ 31.139896] CPU: 3 PID: 873 Comm: sh Not tainted 4.4.0-rc3-00062-ge8ae2c0b6bca2a #172 [ 31.147815] Hardware name: Generic R8A7790 (Flattened Device Tree) [ 31.154056] Backtrace: [ 31.156575] [] (dump_backtrace) from [] (show_stack+0x20/0x24) [ 31.164233] r6:c05c5b33 r5:00000009 r4:00000000 r3:00404100 [ 31.170017] [] (show_stack) from [] (dump_stack+0x78/0x94) [ 31.177344] [] (dump_stack) from [] (warn_slowpath_common+0x98/0xc4) [ 31.185518] r4:00000000 r3:00000000 [ 31.189172] [] (warn_slowpath_common) from [] (warn_slowpath_null+0x2c/0x34) [ 31.198043] r8:eb38df28 r7:eb38c5d0 r6:eb38de80 r5:e6962810 r4:eb38de80 [ 31.204898] [] (warn_slowpath_null) from [] (soc_camera_async_bound+0x40/0xa0) [ 31.213955] [] (soc_camera_async_bound) from [] (v4l2_async_test_notify+0x9c/0x108) [ 31.223430] r5:eb38c5ec r4:eb38de80 [ 31.227084] [] (v4l2_async_test_notify) from [] (v4l2_async_register_subdev+0x88/0xd0) [ 31.236822] r7:c07115c8 r6:c071160c r5:eb38c5ec r4:eb38de80 [ 31.242622] [] (v4l2_async_register_subdev) from [] (adv7180_probe+0x2c8/0x3a4) [ 31.251753] r8:00000000 r7:00000001 r6:eb38de80 r5:ea973400 r4:eb38de10 r3:00000000 [ 31.259660] [] (adv7180_probe) from [] (i2c_device_probe+0x1a0/0x1e4) This gets fixed by clearing the control device pointer on async_unbind. Signed-off-by: Wolfram Sang Signed-off-by: Guennadi Liakhovetski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/soc_camera/soc_camera.c | 2 ++ 1 file changed, 2 insertions(+) commit e03cdf22a2727c60307be6a729233edab3bfda9c Author: Greg Kroah-Hartman Date: Tue Jan 19 23:43:13 2016 -0800 USB: serial: ftdi_sio: add support for Yaesu SCU-18 cable Harald Linden reports that the ftdi_sio driver works properly for the Yaesu SCU-18 cable if the device ids are added to the driver. So let's add them. Reported-by: Harald Linden Cc: stable Signed-off-by: Greg Kroah-Hartman Signed-off-by: Johan Hovold drivers/usb/serial/ftdi_sio.c | 1 + drivers/usb/serial/ftdi_sio_ids.h | 1 + 2 files changed, 2 insertions(+) commit da10816e3d923565b470fec78a674baba794ed33 Author: Takashi Iwai Date: Mon Jan 25 11:24:56 2016 +0100 ALSA: seq: Degrade the error message for too many opens ALSA OSS sequencer spews a kernel error message ("ALSA: seq_oss: too many applications") when user-space tries to open more than the limit. This means that it can easily fill the log buffer. Since it's merely a normal error, it's safe to suppress it via pr_debug() instead. Cc: Signed-off-by: Takashi Iwai sound/core/seq/oss/seq_oss_init.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 599151336638d57b98d92338aa59c048e3a3e97d Author: Takashi Iwai Date: Mon Jan 25 11:01:47 2016 +0100 ALSA: seq: Fix incorrect sanity check at snd_seq_oss_synth_cleanup() ALSA sequencer OSS emulation code has a sanity check for currently opened devices, but there is a thinko there, eventually it spews warnings and skips the operation wrongly like: WARNING: CPU: 1 PID: 7573 at sound/core/seq/oss/seq_oss_synth.c:311 Fix this off-by-one error. Reported-by: Dmitry Vyukov Cc: Signed-off-by: Takashi Iwai sound/core/seq/oss/seq_oss_synth.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ff4e2494dc17b173468e1713fdf6237fd8578bc7 Author: Daniele Palmas Date: Tue Jan 12 17:22:06 2016 +0100 USB: serial: option: Adding support for Telit LE922 This patch adds support for two PIDs of LE922. Signed-off-by: Daniele Palmas Cc: stable Signed-off-by: Johan Hovold drivers/usb/serial/option.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit cb3232138e37129e88240a98a1d2aba2187ff57c Author: Vladis Dronov Date: Tue Jan 12 15:10:50 2016 +0100 USB: serial: visor: fix crash on detecting device without write_urbs The visor driver crashes in clie_5_attach() when a specially crafted USB device without bulk-out endpoint is detected. This fix adds a check that the device has proper configuration expected by the driver. Reported-by: Ralf Spenneberg Signed-off-by: Vladis Dronov Fixes: cfb8da8f69b8 ("USB: visor: fix initialisation of UX50/TH55 devices") Cc: stable Signed-off-by: Johan Hovold drivers/usb/serial/visor.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit cac9b50b0d75a1d50d6c056ff65c005f3224c8e0 Author: Johan Hovold Date: Tue Jan 12 12:05:20 2016 +0100 USB: visor: fix null-deref at probe Fix null-pointer dereference at probe should a (malicious) Treo device lack the expected endpoints. Specifically, the Treo port-setup hack was dereferencing the bulk-in and interrupt-in urbs without first making sure they had been allocated by core. Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") Cc: stable Signed-off-by: Johan Hovold drivers/usb/serial/visor.c | 5 +++++ 1 file changed, 5 insertions(+) commit f487c54ddd544e1c9172cd510954f697b77b76e3 Author: Peter Dedecker Date: Fri Jan 8 12:34:41 2016 +0100 USB: cp210x: add ID for IAI USB to RS485 adaptor Added the USB serial console device ID for IAI Corp. RCB-CV-USB USB to RS485 adaptor. Signed-off-by: Peter Dedecker Cc: stable Signed-off-by: Johan Hovold drivers/usb/serial/cp210x.c | 1 + 1 file changed, 1 insertion(+) commit 5017e1b15d4ca8dcc170dc6914f6b2d8cd492bdf Author: Javier Martinez Canillas Date: Tue Jan 19 11:45:12 2016 -0200 [media] v4l: vsp1: Fix wrong entities links creation The Media Control framework now requires entities to be registered with the media device before creating links so commit c7621b3044f7 ("[media] v4l: vsp1: separate links creation from entities init") separated link creation from entities init. But unfortunately that patch introduced a regression since wrong links were created causing a boot failure on Renesas boards. This patch fixes the boot issue and also the media graph was compared by Geert Uytterhoeven to make sure that the driver changes required by the Media Control framework next generation did not affect the graph. Reported-by: Geert Uytterhoeven Signed-off-by: Javier Martinez Canillas Tested-by: Geert Uytterhoeven Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vsp1/vsp1_drv.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 27f7ed2b11d42ab6d796e96533c2076ec220affc Author: Marcelo Ricardo Leitner Date: Fri Jan 22 18:29:49 2016 -0200 sctp: allow setting SCTP_SACK_IMMEDIATELY by the application This patch extends commit b93d6471748d ("sctp: implement the sender side for SACK-IMMEDIATELY extension") as it didn't white list SCTP_SACK_IMMEDIATELY on sctp_msghdr_parse(), causing it to be understood as an invalid flag and returning -EINVAL to the application. Note that the actual handling of the flag is already there in sctp_datamsg_from_user(). https://tools.ietf.org/html/rfc7053#section-7 Fixes: b93d6471748d ("sctp: implement the sender side for SACK-IMMEDIATELY extension") Signed-off-by: Marcelo Ricardo Leitner Acked-by: Vlad Yasevich Signed-off-by: David S. Miller net/sctp/socket.c | 2 ++ 1 file changed, 2 insertions(+) commit facc432faa59414bd7c60c307ff1645154a66c98 Author: Arnd Bergmann Date: Fri Jan 22 11:43:44 2016 +0100 net: simplify napi_synchronize() to avoid warnings The napi_synchronize() function is defined twice: The definition for SMP builds waits for other CPUs to be done, while the uniprocessor variant just contains a barrier and ignores its argument. In the mvneta driver, this leads to a warning about an unused variable when we lookup the NAPI struct of another CPU and then don't use it: ethernet/marvell/mvneta.c: In function 'mvneta_percpu_notifier': ethernet/marvell/mvneta.c:2910:30: error: unused variable 'other_port' [-Werror=unused-variable] There are no other CPUs on a UP build, so that code never runs, but gcc does not know this. The nicest solution seems to be to turn the napi_synchronize() helper into an inline function for the UP case as well, as that leads gcc to not complain about the argument being unused. Once we do that, we can also combine the two cases into a single function definition and use if(IS_ENABLED()) rather than #ifdef to make it look a bit nicer. The warning first came up in linux-4.4, but I failed to catch it earlier. Signed-off-by: Arnd Bergmann Fixes: f86428854480 ("net: mvneta: Statically assign queues to CPUs") Signed-off-by: David S. Miller include/linux/netdevice.h | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 9a368aff9cb370298fa02feeffa861f2db497c18 Author: Hannes Frederic Sowa Date: Fri Jan 22 01:39:43 2016 +0100 pptp: fix illegal memory access caused by multiple bind()s Several times already this has been reported as kasan reports caused by syzkaller and trinity and people always looked at RCU races, but it is much more simple. :) In case we bind a pptp socket multiple times, we simply add it to the callid_sock list but don't remove the old binding. Thus the old socket stays in the bucket with unused call_id indexes and doesn't get cleaned up. This causes various forms of kasan reports which were hard to pinpoint. Simply don't allow multiple binds and correct error handling in pptp_bind. Also keep sk_state bits in place in pptp_connect. Fixes: 00959ade36acad ("PPTP: PPP over IPv4 (Point-to-Point Tunneling Protocol)") Cc: Dmitry Kozlov Cc: Sasha Levin Cc: Dmitry Vyukov Reported-by: Dmitry Vyukov Cc: Dave Jones Reported-by: Dave Jones Signed-off-by: Hannes Frederic Sowa Signed-off-by: David S. Miller drivers/net/ppp/pptp.c | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) commit b5d7a06906a4875524f5c61c0b312828bf6737de Author: Iyappan Subramanian Date: Thu Jan 21 16:07:41 2016 -0800 drivers: net: xgene: fix extra IRQ issue For interrupt controller that doesn't support irq_disable and hardware with level interrupt, an extra interrupt may be pending. This patch fixes the issue by setting IRQ_DISABLE_UNLAZY flag for the interrupt line, as suggested by, 'commit e9849777d0e2 ("genirq: Add flag to force mask in disable_irq[_nosync]()")' Signed-off-by: Iyappan Subramanian Tested-by: Toan Le Signed-off-by: David S. Miller drivers/net/ethernet/apm/xgene/xgene_enet_main.c | 12 +++++++++--- drivers/net/ethernet/apm/xgene/xgene_enet_main.h | 1 + 2 files changed, 10 insertions(+), 3 deletions(-) commit fa0dc04df259ba2df3ce1920e9690c7842f8fa4b Author: Eric Dumazet Date: Sun Jan 24 13:53:50 2016 -0800 af_unix: fix struct pid memory leak Dmitry reported a struct pid leak detected by a syzkaller program. Bug happens in unix_stream_recvmsg() when we break the loop when a signal is pending, without properly releasing scm. Fixes: b3ca9b02b007 ("net: fix multithreaded signal handling in unix recv routines") Reported-by: Dmitry Vyukov Signed-off-by: Eric Dumazet Cc: Rainer Weikusat Signed-off-by: David S. Miller net/unix/af_unix.c | 1 + 1 file changed, 1 insertion(+) commit e256caa7d0515e301f8c8c6e7d1204a2b67b1381 Author: Vasant Hegde Date: Thu Jan 21 21:45:31 2016 +0530 powerpc/mm: Allow user space to map rtas_rmo_buf With commit 90a545e9 (restrict /dev/mem to idle io memory ranges) mapping rtas_rmo_buf from user space is failing. Hence we are not able to make RTAS syscall. This patch calls page_is_rtas_user_buf before calling iomem_is_exclusive in devmem_is_allowed(). This will allow user space to map rtas_rmo_buf and we are able to make RTAS syscall. Reported-by: Bharata B Rao CC: Nathan Fontenot Signed-off-by: Vasant Hegde Acked-by: Dan Williams Signed-off-by: Michael Ellerman arch/powerpc/mm/mem.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d8f00cd685f5c8e0def8593e520a7fef12c22407 Author: Du, Changbin Date: Mon Jan 18 21:02:42 2016 +0800 usb: hub: do not clear BOS field during reset device In function usb_reset_and_verify_device, the old BOS descriptor may still be used before allocating a new one. (usb_unlocked_disable_lpm function uses it under the situation that it fails to disable lpm.) So we cannot set the udev->bos to NULL before that, just keep what it was. It will be overwrite when allocating a new one. Crash log: BUG: unable to handle kernel NULL pointer dereference at 0000000000000010 IP: [] usb_enable_link_state+0x2d/0x2f0 Call Trace: [] ? usb_set_lpm_timeout+0x12b/0x140 [] usb_enable_lpm+0x81/0xa0 [] usb_disable_lpm+0xa8/0xc0 [] usb_unlocked_disable_lpm+0x2c/0x50 [] usb_reset_and_verify_device+0xc3/0x710 [] ? usb_sg_wait+0x13d/0x190 [] usb_reset_device+0x133/0x280 [] usb_stor_port_reset+0x61/0x70 [] usb_stor_invoke_transport+0x88/0x520 Signed-off-by: Du, Changbin Cc: stable Signed-off-by: Greg Kroah-Hartman drivers/usb/core/hub.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit e912e685f372ab62a2405a1acd923597f524e94a Author: Oliver Neukum Date: Mon Jan 18 15:45:18 2016 +0100 cdc-acm:exclude Samsung phone 04e8:685d This phone needs to be handled by a specialised firmware tool and is reported to crash irrevocably if cdc-acm takes it. Signed-off-by: Oliver Neukum CC: stable@vger.kernel.org Signed-off-by: Greg Kroah-Hartman drivers/usb/class/cdc-acm.c | 5 +++++ 1 file changed, 5 insertions(+) commit ffdb1e369a73b380fce95b05f8498d92c43842b4 Author: Lu Baolu Date: Wed Jan 6 15:10:04 2016 +0800 usb: cdc-acm: send zero packet for intel 7260 modem For Intel 7260 modem, it is needed for host side to send zero packet if the BULK OUT size is equal to USB endpoint max packet length. Otherwise, modem side may still wait for more data and cannot give response to host side. Signed-off-by: Konrad Leszczynski Signed-off-by: Lu Baolu Cc: stable@vger.kernel.org Signed-off-by: Greg Kroah-Hartman drivers/usb/class/cdc-acm.c | 6 ++++++ drivers/usb/class/cdc-acm.h | 1 + 2 files changed, 7 insertions(+) commit 19454462acb1bdef80542061bdc9b410e4ed1ff6 Author: Lu Baolu Date: Wed Dec 30 12:59:08 2015 +0800 usb: cdc-acm: handle unlinked urb in acm read callback In current acm driver, the bulk-in callback function ignores the URBs unlinked in usb core. This causes unexpected data loss in some cases. For example, runtime suspend entry will unlinked all urbs and set urb->status to -ENOENT even those urbs might have data not processed yet. Hence, data loss occurs. This patch lets bulk-in callback function handle unlinked urbs to avoid data loss. Signed-off-by: Tang Jian Qiang Signed-off-by: Lu Baolu Cc: stable@vger.kernel.org Acked-by: Oliver Neukum Signed-off-by: Greg Kroah-Hartman drivers/usb/class/cdc-acm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 6220f4ebd7b4db499238c2dc91268a9c473fd01c Author: Thorsten Leemhuis Date: Sun Jan 17 16:03:04 2016 +0100 hwmon: (dell-smm) Blacklist Dell Studio XPS 8000 Since Linux 4.0 the CPU fan speed is going up and down on Dell Studio XPS 8000 and 8100 for unknown reasons. The 8100 was already blacklisted in commit a4b45b25f18d ("hwmon: (dell-smm) Blacklist Dell Studio XPS 8100"). This patch blacklists the XPS 8000. Without further debugging on the affected machine, it is not possible to find the problem. For more details see https://bugzilla.kernel.org/show_bug.cgi?id=100121 Signed-off-by: Thorsten Leemhuis Acked-by: Pali Rohár Cc: stable@vger.kernel.org # v4.0+, will need backport Signed-off-by: Guenter Roeck drivers/hwmon/dell-smm-hwmon.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit fc2561ec0afcd89e2ec6f28a82a9219582844964 Author: Shaohua Li Date: Fri Jan 22 16:40:02 2016 -0800 md-cluster: delete useless code page->index already considers node offset. The node_offset calculation in write_sb_page is useless and confusion. Cc: Goldwyn Rodrigues Cc: NeilBrown Acked-by: Guoqing Jiang Signed-off-by: Shaohua Li drivers/md/bitmap.c | 4 ---- 1 file changed, 4 deletions(-) commit 4ac7a65f8070098187b1e2afa992848366aae079 Author: Shaohua Li Date: Fri Jan 22 15:54:42 2016 -0800 md-cluster: fix missing memory free There are several places we allocate dlm_lock_resource, but not free it. leave() need free a lock resource too (from Guoqing) Cc: Goldwyn Rodrigues Cc: Guoqing Jiang Cc: NeilBrown Signed-off-by: Shaohua Li drivers/md/md-cluster.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 6327f35a2010c06a3bc2bfb14202a38764fb9920 Author: Shannon Zhao Date: Wed Jan 13 17:16:41 2016 +0800 arm64: KVM: Fix guest dead loop when register accessor returns false Currently emulate_cp will return 0 (Handled) no matter what the accessor returns. If register accessor returns false, it will not skip current PC while emulate_cp return handled. Then guest will stuck in a dead loop. Reviewed-by: Marc Zyngier Signed-off-by: Shannon Zhao Signed-off-by: Marc Zyngier arch/arm64/kvm/sys_regs.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 7769db905bd2df08e844b645437f4729fc1c4d20 Author: Shannon Zhao Date: Wed Jan 13 17:16:40 2016 +0800 arm64: KVM: Fix comments of the CP handler Make sure the documentation reflects the actual name of the functions. Acked-by: Marc Zyngier Signed-off-by: Shannon Zhao Signed-off-by: Marc Zyngier arch/arm64/kvm/sys_regs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9586a2ea6806599c819a9e800581c2a698ef7467 Author: Shannon Zhao Date: Wed Jan 13 17:16:39 2016 +0800 arm64: KVM: Fix wrong use of the CPSR MODE mask for 32bit guests The values of CPSR MODE mask are different between aarch32 and aarch64. It should use the right one according to the execution state. Reviewed-by: Marc Zyngier Signed-off-by: Shannon Zhao Signed-off-by: Marc Zyngier arch/arm64/include/asm/kvm_emulate.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit a7e0ac295d964086af3bf98352614f33c381213e Author: Dave Martin Date: Tue Jan 19 16:20:18 2016 +0000 arm64: KVM: Obey RES0/1 reserved bits when setting CPTR_EL2 Some bits in CPTR are defined as RES1 in the architecture. Setting these bits to zero may unintentionally enable future architecture extensions, allowing guests to use them without supervision by the host. This would be bad: for forwards compatibility, this patch makes sure the affected bits are always written with 1, not 0. This patch only addresses CPTR_EL2. Initialisation of other system registers may still need review. Reviewed-by: Marc Zyngier Signed-off-by: Dave Martin Signed-off-by: Marc Zyngier arch/arm64/include/asm/kvm_arm.h | 1 + arch/arm64/kvm/hyp/switch.c | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) commit 8fc153cda9c9e6aed2a4a7235970dd6c6cb6e954 Author: Marc Zyngier Date: Wed Jan 6 18:29:19 2016 +0000 arm64: KVM: Fix AArch64 guest userspace exception injection At the moment, our fault injection is pretty limited. We always generate a SYNC exception into EL1, as if the fault was actually from EL1h, no matter how it was generated. This is obviously wrong, as EL0 can generate faults of its own (not to mention the pretty-much unused EL1t mode). This patch fixes it by implementing section D1.10.2 of the ARMv8 ARM, and in particular table D1-7 ("Vector offsets from vector table base address"), which describes which vector to use depending on the source exception level and type (synchronous, IRQ, FIQ or SError). Reviewed-by: Christoffer Dall Tested-by: Shannon Zhao Signed-off-by: Marc Zyngier arch/arm64/kvm/inject_fault.c | 38 +++++++++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) commit 92e963f50fc74041b5e9e744c330dca48e04f08d Author: Linus Torvalds Date: Sun Jan 24 13:06:47 2016 -0800 Linux 4.5-rc1 Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9baa03982b06a62ac817b4983f2da7ca66d4f331 Author: Oren Givon Date: Thu Jan 21 11:11:11 2016 +0200 iwlwifi: add device ID for 8265 Signed-off-by: Oren Givon Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 1 + 1 file changed, 1 insertion(+) commit 7b08c67fa5ae66c2d07fd506de57de67b7a7e5d6 Author: Oren Givon Date: Thu Jan 21 11:18:34 2016 +0200 iwlwifi: add new 3168 series devices support Add new sub-system PCI IDs to the 3168 series. Added 0x2010, 0x2050 and 0x2150 sub-system IDs. Signed-off-by: Oren Givon Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 3 +++ 1 file changed, 3 insertions(+) commit e2464688b59c6ae9928f385dabf5355e30cff298 Merge: e1c1087 07d17f0 Author: Linus Torvalds Date: Sun Jan 24 12:50:56 2016 -0800 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 MIPS for 4.5 plus some 4.4 fixes. The executive summary: - ATH79 platform improvments, use DT bindings for the ATH79 USB PHY. - Avoid useless rebuilds for zboot. - jz4780: Add NEMC, BCH and NAND device tree nodes - Initial support for the MicroChip's DT platform. As all the device drivers are missing this is still of limited use. - Some Loongson3 cleanups. - The unavoidable whitespace polishing. - Reduce clock skew when synchronizing the CPU cycle counters on CPU startup. - Add MIPS R6 fixes. - Lots of cleanups across arch/mips as fallout from KVM. - Lots of minor fixes and changes for IEEE 754-2008 support to the FPU emulator / fp-assist software. - Minor Ralink, BCM47xx and bcm963xx platform support improvments. - Support SMP on BCM63168" * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (84 commits) MIPS: zboot: Add support for serial debug using the PROM MIPS: zboot: Avoid useless rebuilds MIPS: BMIPS: Enable ARCH_WANT_OPTIONAL_GPIOLIB MIPS: bcm63xx: nvram: Remove unused bcm63xx_nvram_get_psi_size() function MIPS: bcm963xx: Update bcm_tag field image_sequence MIPS: bcm963xx: Move extended flash address to bcm_tag header file MIPS: bcm963xx: Move Broadcom BCM963xx image tag data structure MIPS: bcm63xx: nvram: Use nvram structure definition from header file MIPS: bcm963xx: Add Broadcom BCM963xx board nvram data structure MAINTAINERS: Add KVM for MIPS entry MIPS: KVM: Add missing newline to kvm_err() MIPS: Move KVM specific opcodes into asm/inst.h MIPS: KVM: Use cacheops.h definitions MIPS: Break down cacheops.h definitions MIPS: Use EXCCODE_ constants with set_except_vector() MIPS: Update trap codes MIPS: Move Cause.ExcCode trap codes to mipsregs.h MIPS: KVM: Make kvm_mips_{init,exit}() static MIPS: KVM: Refactor added offsetof()s MIPS: KVM: Convert EXPORT_SYMBOL to _GPL ... commit e1c10879ed59436cde537b723545430b04d4dec0 Merge: 81f05fe 6b31de3 Author: Linus Torvalds Date: Sun Jan 24 12:45:35 2016 -0800 Merge tag 'platform-drivers-x86-v4.5-2' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86 Pull x86 platform driver updates from Darren Hart: "Emergency travel prevented me from completing my final testing on this until today. Nothing here that couldn't wait until RC1 fixes, but I thought it best to get it out sooner rather than later as it does contain a build warning fix. Summary: A build warning fix, MAINTAINERS cleanup, and a new DMI quirk: ideapad-laptop: - Add Lenovo Yoga 700 to no_hw_rfkill dmi list MAINTAINERS: - Combine multiple telemetry entries intel_telemetry_debugfs: - Fix unused warnings in telemetry debugfs" * tag 'platform-drivers-x86-v4.5-2' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86: ideapad-laptop: Add Lenovo Yoga 700 to no_hw_rfkill dmi list MAINTAINERS: Combine multiple telemetry entries intel_telemetry_debugfs: Fix unused warnings in telemetry debugfs commit 81f05fee8c063cfc1614ddba1ce88cb1129f263d Merge: c52cb43 98d9450 Author: Linus Torvalds Date: Sun Jan 24 12:43:06 2016 -0800 Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux Pull thermal management updates from Zhang Rui: "The top merge commit was re-generated yesterday because two topic branches were dropped from this pull request in the last minute due to some unaddressed comments. All the other material has been in linux-next for quite a while. Specifics: - Enhance thermal core to handle unexpected device cooling states after fresh boot and system resume. From Zhang Rui and Chen Yu. - Several fixes and cleanups on Rockchip and RCAR thermal drivers. From Caesar Wang and Kuninori Morimoto. - Add Broxton support for Intel processor thermal reporting device driver. From Amy Wiles" * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux: thermal: trip_point_temp_store() calls thermal_zone_device_update() thermal: rcar: rcar_thermal_get_temp() return error if strange temp thermal: rcar: check irq possibility in rcar_thermal_irq_xxx() thermal: rcar: check every rcar_thermal_update_temp() return value thermal: rcar: move rcar_thermal_dt_ids to upside thermal: rockchip: Support the RK3399 SoCs in thermal driver thermal: rockchip: Support the RK3228 SoCs in thermal driver dt-bindings: rockchip-thermal: Support the RK3228/RK3399 SoCs compatible thermal: rockchip: fix a trivial typo Thermal: Enable Broxton SoC thermal reporting device thermal: constify pch_dev_ops structure Thermal: do thermal zone update after a cooling device registered Thermal: handle thermal zone device properly during system sleep Thermal: initialize thermal zone device correctly commit c52cb4311f20538fcb69420e55a19ac622546a08 Merge: 00e3f5c a333e4b Author: Linus Torvalds Date: Sun Jan 24 12:39:09 2016 -0800 Merge tag 'for-linus-4.5-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs Pull 9p updates from Eric Van Hensbergen: "Sorry for the last minute pull request, there's was a change that didn't get pulled into for-next until two weeks ago and I wanted to give it some bake time. Summary: Rework and error handling fixes, primarily in the fscatch and fd transports" * tag 'for-linus-4.5-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs: fs/9p: use fscache mutex rather than spinlock 9p: trans_fd, bail out if recv fcall if missing 9p: trans_fd, read rework to use p9_parse_header net/9p: Add device name details on error commit 00e3f5cc305c8a056a22cecedab3a71d59dae1fc Merge: 772950e 7e01726 Author: Linus Torvalds Date: Sun Jan 24 12:34:13 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client Pull Ceph updates from Sage Weil: "The two main changes are aio support in CephFS, and a series that fixes several issues in the authentication key timeout/renewal code. On top of that are a variety of cleanups and minor bug fixes" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: libceph: remove outdated comment libceph: kill off ceph_x_ticket_handler::validity libceph: invalidate AUTH in addition to a service ticket libceph: fix authorizer invalidation, take 2 libceph: clear messenger auth_retry flag if we fault libceph: fix ceph_msg_revoke() libceph: use list_for_each_entry_safe ceph: use i_size_{read,write} to get/set i_size ceph: re-send AIO write request when getting -EOLDSNAP error ceph: Asynchronous IO support ceph: Avoid to propagate the invalid page point ceph: fix double page_unlock() in page_mkwrite() rbd: delete an unnecessary check before rbd_dev_destroy() libceph: use list_next_entry instead of list_entry_next ceph: ceph_frag_contains_value can be boolean ceph: remove unused functions in ceph_frag.h commit 772950ed21c36f4157ff34e7d10fb61975f64558 Merge: 587198b 01b9b0b Author: Linus Torvalds Date: Sun Jan 24 12:31:12 2016 -0800 Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6 Pull SMB3 fixes from Steve French: "A collection of CIFS/SMB3 fixes. It includes a couple bug fixes, a few for improved debugging of cifs.ko and some improvements to the way cifs does key generation. I do have some additional bug fixes I expect in the next week or two (to address a problem found by xfstest, and some fixes for SMB3.11 dialect, and a couple patches that just came in yesterday that I am reviewing)" * 'for-next' of git://git.samba.org/sfrench/cifs-2.6: cifs_dbg() outputs an uninitialized buffer in cifs_readdir() cifs: fix race between call_async() and reconnect() Prepare for encryption support (first part). Add decryption and encryption key generation. Thanks to Metze for helping with this. cifs: Allow using O_DIRECT with cache=loose cifs: Make echo interval tunable cifs: Check uniqueid for SMB2+ and return -ESTALE if necessary Print IP address of unresponsive server cifs: Ratelimit kernel log messages commit 6b31de3e698582fe0b8f7f4bab15831b73204800 Author: Josh Boyer Date: Sun Jan 24 10:46:42 2016 -0500 ideapad-laptop: Add Lenovo Yoga 700 to no_hw_rfkill dmi list Like the Yoga 900 models the Lenovo Yoga 700 does not have a hw rfkill switch, and trying to read the hw rfkill switch through the ideapad module causes it to always reported blocking breaking wifi. This commit adds the Lenovo Yoga 700 to the no_hw_rfkill dmi list, fixing the wifi breakage. BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1295272 Tested-by: Cc: stable@vger.kernel.org Signed-off-by: Josh Boyer Signed-off-by: Darren Hart drivers/platform/x86/ideapad-laptop.c | 7 +++++++ 1 file changed, 7 insertions(+) commit f1fc3cd8984d9e6bd77c342be1aba1c883de16d8 Author: Souvik Kumar Chakravarty Date: Thu Jan 21 09:30:50 2016 +0530 MAINTAINERS: Combine multiple telemetry entries This patch combines all the telemetry file entries in MAINTAINERS via wildcard. Signed-off-by: Souvik Kumar Chakravarty Signed-off-by: Darren Hart MAINTAINERS | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 7885f2f94489d566559274891cc1400cbc059b10 Author: Souvik Kumar Chakravarty Date: Wed Jan 20 12:20:46 2016 +0530 intel_telemetry_debugfs: Fix unused warnings in telemetry debugfs This patch fixes compile time warnings when CONFIG_PM_SLEEP is undefined. In this case sleep related counters are unused. Signed-off-by: Souvik Kumar Chakravarty Signed-off-by: Darren Hart drivers/platform/x86/intel_telemetry_debugfs.c | 2 ++ 1 file changed, 2 insertions(+) commit 587198ba5206cdf0d30855f7361af950a4172cd6 Author: Christoph Lameter Date: Fri Jan 22 10:46:14 2016 -0600 vmstat: Remove BUG_ON from vmstat_update If we detect that there is nothing to do just set the flag and do not check if it was already set before. Races really do not matter. If the flag is set by any code then the shepherd will start dealing with the situation and reenable the vmstat workers when necessary again. Since commit 0eb77e988032 ("vmstat: make vmstat_updater deferrable again and shut down on idle") quiet_vmstat might update cpu_stat_off and mark a particular cpu to be handled by vmstat_shepherd. This might trigger a VM_BUG_ON in vmstat_update because the work item might have been sleeping during the idle period and see the cpu_stat_off updated after the wake up. The VM_BUG_ON is therefore misleading and no more appropriate. Moreover it doesn't really suite any protection from real bugs because vmstat_shepherd will simply reschedule the vmstat_work anytime it sees a particular cpu set or vmstat_update would do the same from the worker context directly. Even when the two would race the result wouldn't be incorrect as the counters update is fully idempotent. Reported-by: Sasha Levin Signed-off-by: Christoph Lameter Acked-by: Michal Hocko Cc: Johannes Weiner Cc: Tetsuo Handa Cc: Andrew Morton Signed-off-by: Linus Torvalds mm/vmstat.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) commit 07d17f09691e549fac0101333eebe0161a472b50 Merge: dbb9831 2549cc9 Author: Ralf Baechle Date: Sun Jan 24 04:14:40 2016 +0100 Merge branch '4.4-fixes' into mips-for-linux-next commit dbb983145312efba5f7928af1b180a0d83423150 Author: Alban Bedel Date: Thu Dec 10 10:57:21 2015 +0100 MIPS: zboot: Add support for serial debug using the PROM As most platforms implement the PROM serial interface prom_putchar() add a simple bridge to allow re-using this code for zboot. Signed-off-by: Alban Bedel Cc: Alex Smith Cc: Andrew Bresticker Cc: Wu Zhangjin Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11811/ Signed-off-by: Ralf Baechle arch/mips/Kconfig | 4 ++++ arch/mips/boot/compressed/Makefile | 1 + arch/mips/boot/compressed/uart-prom.c | 7 +++++++ 3 files changed, 12 insertions(+) commit 25f66096ac0cbb8e757e6ce3f78665eedb946b17 Author: Alban Bedel Date: Thu Dec 10 10:57:20 2015 +0100 MIPS: zboot: Avoid useless rebuilds Add dummy.o to the targets list, and fill targets automatically from $(vmlinuzobjs) to avoid having to maintain two lists. When building with XZ compression copy ashldi3.c to the build directory to use a different object file for the kernel and zboot. Without this the same object file need to be build with different flags which cause a rebuild at every run. Signed-off-by: Alban Bedel Cc: linux-mips@linux-mips.org Cc: Alex Smith Cc: Wu Zhangjin Cc: Andrew Bresticker Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11810/ Signed-off-by: Ralf Baechle arch/mips/boot/compressed/Makefile | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit a7b43812ae5ec90afde8ed540b1a92405a54a519 Author: Florian Fainelli Date: Wed Jan 6 10:51:05 2016 -0800 MIPS: BMIPS: Enable ARCH_WANT_OPTIONAL_GPIOLIB Allow BMIPS_GENERIC supported platforms to build GPIO controller drivers. Signed-off-by: Florian Fainelli Reviewed-by: Dragan Stancevic Cc: cernekee@gmail.com Cc: jaedon.shin@gmail.com Cc: gregory.0xf0@gmail.com Cc: Florian Fainelli Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/12019/ Signed-off-by: Ralf Baechle arch/mips/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 5bdb102b3f9785cb88467bc7c75fa0f5cacc8dc5 Author: Simon Arlott Date: Sun Dec 13 22:50:13 2015 +0000 MIPS: bcm63xx: nvram: Remove unused bcm63xx_nvram_get_psi_size() function Remove bcm63xx_nvram_get_psi_size() as it now has no users. Signed-off-by: Simon Arlott Cc: David Woodhouse Cc: Brian Norris Cc: Kevin Cernekee Cc: Florian Fainelli Cc: Jonas Gorski Cc: Linux Kernel Mailing List Cc: MIPS Mailing List Cc: MTD Maling List Patchwork: https://patchwork.linux-mips.org/patch/11836/ Signed-off-by: Ralf Baechle arch/mips/bcm63xx/nvram.c | 11 ----------- arch/mips/include/asm/mach-bcm63xx/bcm63xx_nvram.h | 2 -- 2 files changed, 13 deletions(-) commit 696569f759cdebc7da67666fc4f962eaee13562b Author: Simon Arlott Date: Sun Dec 13 22:48:44 2015 +0000 MIPS: bcm963xx: Update bcm_tag field image_sequence The "dual_image" and "inactive_flag" fields should be merged into a single "image_sequence" field. Signed-off-by: Simon Arlott Cc: David Woodhouse Cc: Brian Norris Cc: Kevin Cernekee Cc: Florian Fainelli Cc: Jonas Gorski Cc: Linux Kernel Mailing List Cc: MIPS Mailing List Cc: MTD Maling List Patchwork: https://patchwork.linux-mips.org/patch/11834/ Signed-off-by: Ralf Baechle include/linux/bcm963xx_tag.h | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 1f29cb19cb7c3bea870d7da02ec23823af9d636e Author: Simon Arlott Date: Sun Dec 13 22:47:55 2015 +0000 MIPS: bcm963xx: Move extended flash address to bcm_tag header file The extended flash address needs to be subtracted from bcm_tag flash image offsets. Move this value to the bcm_tag header file. Renamed define name to consistently use bcm963xx for flash layout which should be considered a property of the board and not the SoC (i.e. bcm63xx could theoretically be used on a board without CFE or any flash). Signed-off-by: Simon Arlott Cc: David Woodhouse Cc: Brian Norris Cc: Kevin Cernekee Cc: Florian Fainelli Cc: Jonas Gorski Cc: Linux Kernel Mailing List Cc: MIPS Mailing List Cc: MTD Maling List Patchwork: https://patchwork.linux-mips.org/patch/11833/ Signed-off-by: Ralf Baechle drivers/mtd/bcm63xxpart.c | 6 ++---- include/linux/bcm963xx_tag.h | 5 +++++ 2 files changed, 7 insertions(+), 4 deletions(-) commit 8fce60b8d0c62363c29d64efb0cceb98519f0350 Author: Simon Arlott Date: Sun Dec 13 22:46:59 2015 +0000 MIPS: bcm963xx: Move Broadcom BCM963xx image tag data structure Move Broadcom BCM963xx image tag data structure to include/linux/ so that drivers outside of mach-bcm63xx can use it. Signed-off-by: Simon Arlott Cc: David Woodhouse Cc: Brian Norris Cc: Kevin Cernekee Cc: Florian Fainelli Cc: Jonas Gorski Cc: Linux Kernel Mailing List Cc: MIPS Mailing List Cc: MTD Maling List Patchwork: https://patchwork.linux-mips.org/patch/11832/ Signed-off-by: Ralf Baechle MAINTAINERS | 1 + arch/mips/include/asm/mach-bcm63xx/bcm963xx_tag.h | 96 ---------------------- drivers/mtd/bcm63xxpart.c | 2 +- include/linux/bcm963xx_tag.h | 98 +++++++++++++++++++++++ 4 files changed, 100 insertions(+), 97 deletions(-) commit 5a8b0b13b66608650e41994f4b9d3c8b9d258e8f Author: Simon Arlott Date: Sun Dec 13 22:46:15 2015 +0000 MIPS: bcm63xx: nvram: Use nvram structure definition from header file Use the common definition of the nvram structure from the header file include/linux/bcm963xx_nvram.h instead of maintaining a separate copy. Read the version 5 size of nvram data from memory and then call the new checksum verification function from the header file. Signed-off-by: Simon Arlott Cc: David Woodhouse Cc: Brian Norris Cc: Kevin Cernekee Cc: Florian Fainelli Cc: Jonas Gorski Cc: Linux Kernel Mailing List Cc: MIPS Mailing List Cc: MTD Maling List Patchwork: https://patchwork.linux-mips.org/patch/11831/ Signed-off-by: Ralf Baechle arch/mips/bcm63xx/nvram.c | 35 +++-------------------------------- 1 file changed, 3 insertions(+), 32 deletions(-) commit 3271e6103189c5294acb06ffa504cc5495457fbf Author: Simon Arlott Date: Sun Dec 13 22:45:30 2015 +0000 MIPS: bcm963xx: Add Broadcom BCM963xx board nvram data structure Broadcom BCM963xx boards have multiple nvram variants across different SoCs with additional checksum fields added whenever the size of the nvram was extended. Add this structure as a header file so that multiple drivers can use it. Signed-off-by: Simon Arlott Cc: David Woodhouse Cc: Brian Norris Cc: Kevin Cernekee Cc: Florian Fainelli Cc: Jonas Gorski Cc: Linux Kernel Mailing List Cc: MIPS Mailing List Cc: MTD Maling List Patchwork: https://patchwork.linux-mips.org/patch/11830/ Signed-off-by: Ralf Baechle MAINTAINERS | 1 + include/linux/bcm963xx_nvram.h | 112 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 113 insertions(+) commit 048ccca8c1c8f583deec3367d7df521bb1f542ae Merge: b3e27d5 34356f6 Author: Linus Torvalds Date: Sat Jan 23 18:45:06 2016 -0800 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma Pull rdma updates from Doug Ledford: "Initial roundup of 4.5 merge window patches - Remove usage of ib_query_device and instead store attributes in ib_device struct - Move iopoll out of block and into lib, rename to irqpoll, and use in several places in the rdma stack as our new completion queue polling library mechanism. Update the other block drivers that already used iopoll to use the new mechanism too. - Replace the per-entry GID table locks with a single GID table lock - IPoIB multicast cleanup - Cleanups to the IB MR facility - Add support for 64bit extended IB counters - Fix for netlink oops while parsing RDMA nl messages - RoCEv2 support for the core IB code - mlx4 RoCEv2 support - mlx5 RoCEv2 support - Cross Channel support for mlx5 - Timestamp support for mlx5 - Atomic support for mlx5 - Raw QP support for mlx5 - MAINTAINERS update for mlx4/mlx5 - Misc ocrdma, qib, nes, usNIC, cxgb3, cxgb4, mlx4, mlx5 updates - Add support for remote invalidate to the iSER driver (pushed through the RDMA tree due to dependencies, acknowledged by nab) - Update to NFSoRDMA (pushed through the RDMA tree due to dependencies, acknowledged by Bruce)" * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: (169 commits) IB/mlx5: Unify CQ create flags check IB/mlx5: Expose Raw Packet QP to user space consumers {IB, net}/mlx5: Move the modify QP operation table to mlx5_ib IB/mlx5: Support setting Ethernet priority for Raw Packet QPs IB/mlx5: Add Raw Packet QP query functionality IB/mlx5: Add create and destroy functionality for Raw Packet QP IB/mlx5: Refactor mlx5_ib_qp to accommodate other QP types IB/mlx5: Allocate a Transport Domain for each ucontext net/mlx5_core: Warn on unsupported events of QP/RQ/SQ net/mlx5_core: Add RQ and SQ event handling net/mlx5_core: Export transport objects IB/mlx5: Expose CQE version to user-space IB/mlx5: Add CQE version 1 support to user QPs and SRQs IB/mlx5: Fix data validation in mlx5_ib_alloc_ucontext IB/sa: Fix netlink local service GFP crash IB/srpt: Remove redundant wc array IB/qib: Improve ipoib UD performance IB/mlx4: Advertise RoCE v2 support IB/mlx4: Create and use another QP1 for RoCEv2 IB/mlx4: Enable send of RoCE QP1 packets with IP/UDP headers ... commit bfd3d532e23f23cdc7101e85fcd8eb70c40d627c Author: James Hogan Date: Wed Dec 16 23:49:41 2015 +0000 MAINTAINERS: Add KVM for MIPS entry I've pretty much been maintaining KVM for MIPS for a while now. Lets make it more official (and make sure I get Cc'd on relevant patches). Signed-off-by: James Hogan Cc: Paolo Bonzini Cc: Gleb Natapov Cc: linux-mips@linux-mips.org Cc: kvm@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11898/ Signed-off-by: Ralf Baechle MAINTAINERS | 8 ++++++++ 1 file changed, 8 insertions(+) commit f7fdcb601051883f0b4df2797d92035849424c4e Author: James Hogan Date: Wed Dec 16 23:49:39 2015 +0000 MIPS: KVM: Add missing newline to kvm_err() Add missing newline to end of kvm_err string when guest PMAP couldn't be allocated. Signed-off-by: James Hogan Cc: Gleb Natapov Cc: Paolo Bonzini Cc: kvm@vger.kernel.org Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/11896/ Signed-off-by: Ralf Baechle arch/mips/kvm/mips.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b2c5963577efdaef7bf2445c06e8048926c472a5 Author: James Hogan Date: Wed Dec 16 23:49:38 2015 +0000 MIPS: Move KVM specific opcodes into asm/inst.h The header arch/mips/kvm/opcode.h defines a few extra opcodes which aren't in arch/mips/include/uapi/asm/inst.h. There's nothing KVM specific about them, so lets move them into inst.h where they belong and delete the header. Note that mfmcz_op is renamed to mfmc0_op to match the instruction set manual, and wait_op was already added to inst.h in commit b0a3eae2b943 ("MIPS: inst.h: define COP0 wait op"), merged in v3.16-rc1. Signed-off-by: James Hogan Cc: Paolo Bonzini Cc: Gleb Natapov Cc: linux-mips@linux-mips.org Cc: kvm@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11895/ Signed-off-by: Ralf Baechle arch/mips/include/uapi/asm/inst.h | 3 ++- arch/mips/kvm/emulate.c | 7 +++---- arch/mips/kvm/opcode.h | 22 ---------------------- arch/mips/kvm/trap_emul.c | 1 - 4 files changed, 5 insertions(+), 28 deletions(-) commit f4956f620d065d8fa4d7a890cad548549e0b91ea Author: James Hogan Date: Wed Dec 16 23:49:37 2015 +0000 MIPS: KVM: Use cacheops.h definitions Drop the custom cache operation code definitions used by KVM for emulating guest CACHE instructions, and switch to use the existing definitions in . Signed-off-by: James Hogan Cc: Paolo Bonzini Cc: Gleb Natapov Cc: kvm@vger.kernel.org Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/11893/ Signed-off-by: Ralf Baechle arch/mips/kvm/emulate.c | 30 ++++++++---------------------- 1 file changed, 8 insertions(+), 22 deletions(-) commit 5fa393c8571953d6d428062c3572ec3ddbb1eec8 Author: James Hogan Date: Wed Dec 16 23:49:36 2015 +0000 MIPS: Break down cacheops.h definitions Most of the cache op codes defined in cacheops.h are split into a 2-bit cache identifier, and a 3-bit cache op code which does largely the same thing semantically regardless of the cache identifier. To allow the use of these definitions by KVM for decoding cache ops, break the definitions down into parts where it makes sense to do so, and add masks for the Cache and Op field within the cache op. Signed-off-by: James Hogan Cc: linux-mips@linux-mips.org Cc: Paolo Bonzini Cc: Gleb Natapov Cc: kvm@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11892/ Signed-off-by: Ralf Baechle arch/mips/include/asm/cacheops.h | 106 +++++++++++++++++++++++---------------- 1 file changed, 64 insertions(+), 42 deletions(-) commit 1b505defe051749150ae699483cfcde3191d9a76 Author: James Hogan Date: Wed Dec 16 23:49:35 2015 +0000 MIPS: Use EXCCODE_ constants with set_except_vector() The first argument to set_except_vector is the ExcCode, which we now have definitions for. Lets make use of them. Signed-off-by: James Hogan Cc: Paolo Bonzini Cc: Gleb Natapov Cc: linux-mips@linux-mips.org Cc: kvm@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11894/ Signed-off-by: Ralf Baechle arch/mips/kernel/cpu-bugs64.c | 8 +++---- arch/mips/kernel/traps.c | 52 +++++++++++++++++++++---------------------- 2 files changed, 30 insertions(+), 30 deletions(-) commit 044c9bb816433c196a5776ac4834c23eced205e7 Author: James Hogan Date: Wed Dec 16 23:49:34 2015 +0000 MIPS: Update trap codes Add a few missing trap codes. [ralf@linux-mips.org: Drop removal of exception codes. I don't care what the incomplete architecture spec says; it can't change existing hardware and VCEI is supported indeed.] Signed-off-by: James Hogan Cc: linux-mips@linux-mips.org Cc: Paolo Bonzini Cc: Gleb Natapov Cc: kvm@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11890/ Signed-off-by: Ralf Baechle arch/mips/include/asm/mipsregs.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 16d100db245ab34d975e080f39e4cc4ed09b3820 Author: James Hogan Date: Wed Dec 16 23:49:33 2015 +0000 MIPS: Move Cause.ExcCode trap codes to mipsregs.h Move the Cause.ExcCode trap code definitions from kvm_host.h to mipsregs.h, since they describe architectural bits rather than KVM specific constants, and change the prefix from T_ to EXCCODE_. Signed-off-by: James Hogan Cc: Paolo Bonzini Cc: Gleb Natapov Cc: linux-mips@linux-mips.org Cc: kvm@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11891/ Signed-off-by: Ralf Baechle arch/mips/include/asm/kvm_host.h | 28 ---------------- arch/mips/include/asm/mipsregs.h | 24 ++++++++++++++ arch/mips/kvm/emulate.c | 71 ++++++++++++++++++++-------------------- arch/mips/kvm/interrupt.c | 8 ++--- arch/mips/kvm/mips.c | 32 +++++++++--------- 5 files changed, 80 insertions(+), 83 deletions(-) commit 2db9d233860e638fecd4b6c519c880bee98ba5eb Author: James Hogan Date: Wed Dec 16 23:49:32 2015 +0000 MIPS: KVM: Make kvm_mips_{init,exit}() static The module init and exit functions have no need to be global, so make them static. Signed-off-by: James Hogan Cc: Paolo Bonzini Cc: Gleb Natapov Cc: kvm@vger.kernel.org Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/11889/ Signed-off-by: Ralf Baechle arch/mips/kvm/mips.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 088ec208d69474c784ed969206f6af323dea025b Author: James Hogan Date: Wed Dec 16 23:49:31 2015 +0000 MIPS: KVM: Refactor added offsetof()s When calculating the offsets into the commpage for dynamically translated mtc0/mfc0 guest instructions, multiple offsetof()s are added together to find the offset of the specific register in the mips_coproc, within the commpage. Simplify each of these cases to a single offsetof() to find the offset of the specific register within the commpage. Signed-off-by: James Hogan Cc: Paolo Bonzini Cc: Gleb Natapov Cc: linux-mips@linux-mips.org Cc: kvm@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11888/ Signed-off-by: Ralf Baechle arch/mips/kvm/dyntrans.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit cb1b447f0c369a248895aa28ec668dc3dd130f3f Author: James Hogan Date: Wed Dec 16 23:49:30 2015 +0000 MIPS: KVM: Convert EXPORT_SYMBOL to _GPL Export symbols only to GPL modules to match other KVM symbols in virt/kvm/ and arch/*/kvm/. Signed-off-by: James Hogan Cc: Paolo Bonzini Cc: Gleb Natapov Cc: linux-mips@linux-mips.org Cc: kvm@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11887/ Signed-off-by: Ralf Baechle arch/mips/kvm/callback.c | 2 +- arch/mips/kvm/tlb.c | 36 ++++++++++++++++++------------------ 2 files changed, 19 insertions(+), 19 deletions(-) commit e318f0fd37b630ea02dd9147beb1224789dc197f Author: James Hogan Date: Wed Dec 16 23:49:29 2015 +0000 MIPS: KVM: Drop unused kvm_mips_host_tlb_inv_index() The function kvm_mips_host_tlb_inv_index() is unused, so drop it completely. Signed-off-by: James Hogan Cc: Ralf Baechle Cc: Gleb Natapov Cc: Paolo Bonzini Cc: linux-mips@linux-mips.org Cc: kvm@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11886/ Signed-off-by: Ralf Baechle arch/mips/include/asm/kvm_host.h | 1 - arch/mips/kvm/tlb.c | 37 ------------------------------------- 2 files changed, 38 deletions(-) commit 9fd4af639b8585a0c9949e6e3ffc8e2c829dedb5 Author: James Hogan Date: Wed Dec 16 23:49:28 2015 +0000 MIPS: Move definition of DC bit to mipsregs.h The CAUSEB_DC and CAUSEF_DC definitions used by KVM are defined in asm/kvm_host.h, but all the other Cause register field definitions are found in asm/mipsregs.h. Lets reunite the DC bit definitions with its friends in mipsregs.h. Signed-off-by: James Hogan Cc: Paolo Bonzini Cc: Gleb Natapov Cc: linux-mips@linux-mips.org Cc: kvm@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11885/ Signed-off-by: Ralf Baechle arch/mips/include/asm/kvm_host.h | 3 --- arch/mips/include/asm/mipsregs.h | 2 ++ 2 files changed, 2 insertions(+), 3 deletions(-) commit 4c53e6b985c65aa7e6e038ed83d0ba10e72201e8 Author: James Hogan Date: Wed Dec 16 23:49:27 2015 +0000 MIPS: KVM: Drop some unused definitions from kvm_host.h Some definitions in the MIPS asm/kvm_host.h are completely unused, so lets drop them. MS_TO_NS is no longer used since commit e30492bbe95a ("MIPS: KVM: Rewrite count/compare timer emulation"). The others don't appear ever to have been used. Signed-off-by: James Hogan Cc: Paolo Bonzini Cc: Gleb Natapov Cc: kvm@vger.kernel.org Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/11884/ Signed-off-by: Ralf Baechle arch/mips/include/asm/kvm_host.h | 5 ----- 1 file changed, 5 deletions(-) commit caa1faa7aba68feed22129f68e4de499846a971b Author: James Hogan Date: Wed Dec 16 23:49:26 2015 +0000 MIPS: KVM: Trivial whitespace and style fixes A bunch of misc whitespace and style fixes within arch/mips/kvm/. Signed-off-by: James Hogan Cc: Paolo Bonzini Cc: Ralf Baechle Cc: Gleb Natapov Cc: kvm@vger.kernel.org Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/11883/ Signed-off-by: Ralf Baechle arch/mips/Kconfig | 3 ++- arch/mips/include/asm/kvm_host.h | 2 +- arch/mips/kvm/emulate.c | 8 +++----- arch/mips/kvm/locore.S | 12 ++++++------ arch/mips/kvm/tlb.c | 4 ++-- 5 files changed, 14 insertions(+), 15 deletions(-) commit 097d5638cb4289c86a4a47bda6a0fe8c2b338ae7 Author: Joshua Henderson Date: Wed Jan 13 18:15:47 2016 -0700 MIPS: pic32mzda: Add initial PIC32MZDA Starter Kit defconfig This adds an initial default config that enables all available PIC32 drivers and is enough for booting a PIC32MZDA Starter Kit. Signed-off-by: Joshua Henderson Cc: linux-kernel@vger.kernel.org Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/12105/ Signed-off-by: Ralf Baechle arch/mips/configs/pic32mzda_defconfig | 89 +++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) commit 842b6b16f5178c66da0959a935dafa80a979b745 Author: Joshua Henderson Date: Wed Jan 13 18:15:46 2016 -0700 MIPS: dts: Add initial DTS for the PIC32MZDA Starter Kit This adds basic DTS configuration for the PIC32MZDA chip and in turn the PIC32MZDA Starter Kit. Signed-off-by: Joshua Henderson Cc: Rob Herring Cc: Pawel Moll Cc: Mark Rutland Cc: Ian Campbell Cc: Kumar Gala Cc: Andrew Bresticker Cc: Paul Burton Cc: linux-kernel@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: devicetree@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/12104/ Signed-off-by: Ralf Baechle arch/mips/boot/dts/Makefile | 1 + arch/mips/boot/dts/pic32/Makefile | 12 ++ arch/mips/boot/dts/pic32/pic32mzda-clk.dtsi | 236 +++++++++++++++++++++++ arch/mips/boot/dts/pic32/pic32mzda.dtsi | 281 ++++++++++++++++++++++++++++ arch/mips/boot/dts/pic32/pic32mzda_sk.dts | 151 +++++++++++++++ arch/mips/pic32/Kconfig | 16 ++ 6 files changed, 697 insertions(+) commit 2572f00db8a68bb46001678c1c98ad8b70e04b31 Author: Joshua Henderson Date: Wed Jan 13 18:15:39 2016 -0700 MIPS: Add support for PIC32MZDA platform This adds support for the Microchip PIC32 MIPS microcontroller with the specific variant PIC32MZDA. PIC32MZDA is based on the MIPS m14KEc core and boots using device tree. This includes an early pin setup and early clock setup needed prior to device tree being initialized. In additon, an interface is provided to synchronize access to registers shared across several peripherals. Signed-off-by: Joshua Henderson Cc: linux-kernel@vger.kernel.org Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/12097/ Signed-off-by: Ralf Baechle arch/mips/Kbuild.platforms | 1 + arch/mips/Kconfig | 9 + .../include/asm/mach-pic32/cpu-feature-overrides.h | 32 +++ arch/mips/include/asm/mach-pic32/irq.h | 22 ++ arch/mips/include/asm/mach-pic32/pic32.h | 44 ++++ arch/mips/include/asm/mach-pic32/spaces.h | 24 ++ arch/mips/pic32/Kconfig | 35 +++ arch/mips/pic32/Makefile | 6 + arch/mips/pic32/Platform | 7 + arch/mips/pic32/common/Makefile | 5 + arch/mips/pic32/common/irq.c | 21 ++ arch/mips/pic32/common/reset.c | 62 +++++ arch/mips/pic32/pic32mzda/Makefile | 9 + arch/mips/pic32/pic32mzda/config.c | 126 ++++++++++ arch/mips/pic32/pic32mzda/early_clk.c | 106 ++++++++ arch/mips/pic32/pic32mzda/early_console.c | 171 +++++++++++++ arch/mips/pic32/pic32mzda/early_pin.c | 275 +++++++++++++++++++++ arch/mips/pic32/pic32mzda/early_pin.h | 241 ++++++++++++++++++ arch/mips/pic32/pic32mzda/init.c | 156 ++++++++++++ arch/mips/pic32/pic32mzda/pic32mzda.h | 29 +++ arch/mips/pic32/pic32mzda/time.c | 73 ++++++ include/linux/platform_data/sdhci-pic32.h | 22 ++ 22 files changed, 1476 insertions(+) commit 9b9c2cd44322ed9bc536eedf7d9a5e38e1eb4081 Author: Joshua Henderson Date: Wed Jan 13 18:15:38 2016 -0700 dt/bindings: Add bindings for PIC32/MZDA platforms This adds support for the Microchip PIC32 platform along with the specific variant PIC32MZDA on a PIC32MZDA Starter Kit. Signed-off-by: Joshua Henderson Acked-by: Rob Herring Cc: Pawel Moll Cc: Mark Rutland Cc: Ian Campbell Cc: Kumar Gala Cc: linux-kernel@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: devicetree@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/12096/ Signed-off-by: Ralf Baechle .../bindings/mips/pic32/microchip,pic32mzda.txt | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) commit aaa8666ada780e8a4a60870aa4379e5e29e395f3 Author: Cristian Birsan Date: Wed Jan 13 18:15:35 2016 -0700 IRQCHIP: irq-pic32-evic: Add support for PIC32 interrupt controller This adds support for the interrupt controller present on PIC32 class devices. It handles all internal and external interrupts. This controller exists outside of the CPU core and is the arbitrator of all interrupts (including interrupts from the CPU itself) before they are presented to the CPU. The following features are supported: - DT properties for EVIC and for devices/peripherals that use interrupt lines - Persistent and non-persistent interrupt handling - irqdomain and generic chip support - Configuration of external interrupt edge polarity Signed-off-by: Cristian Birsan Signed-off-by: Joshua Henderson Acked-by: Thomas Gleixner Cc: Jason Cooper Cc: Marc Zyngier Cc: linux-kernel@vger.kernel.org Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/12092/ Signed-off-by: Ralf Baechle drivers/irqchip/Kconfig | 5 + drivers/irqchip/Makefile | 1 + drivers/irqchip/irq-pic32-evic.c | 324 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 330 insertions(+) commit edf2194dc9b9b527d003c47051bd4b09b61ddd55 Author: Cristian Birsan Date: Wed Jan 13 18:15:34 2016 -0700 dt/bindings: Add bindings for PIC32 interrupt controller Document the devicetree bindings for the interrupt controller on Microchip PIC32 class devices. Signed-off-by: Cristian Birsan Signed-off-by: Joshua Henderson Acked-by: Rob Herring Cc: Thomas Gleixner Cc: Jason Cooper Cc: Marc Zyngier Cc: Rob Herring Cc: Pawel Moll Cc: Mark Rutland Cc: Ian Campbell Cc: Kumar Gala Cc: linux-kernel@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: devicetree@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/12093/ Signed-off-by: Ralf Baechle .../interrupt-controller/microchip,pic32-evic.txt | 67 ++++++++++++++++++++++ 1 file changed, 67 insertions(+) commit 70ce14bfc9fdb9b6af84ac492e9d3311551618a5 Author: Álvaro Fernández Rojas Date: Sun Jan 17 11:02:35 2016 +0100 MIPS: bmips: Improve BCM6368 device tree Add brcm,bcm6358-leds node to bcm6368.dtsi Add reboot support (syscon-reboot as defined in BCM6328) Signed-off-by: Álvaro Fernández Rojas Reviewed-by: Florian Fainelli Cc: f.fainelli@gmail.com Cc: jogo@openwrt.org Cc: cernekee@gmail.com Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Cc: devicetree@vger.kernel.org Cc: Álvaro Fernández Rojas Patchwork: https://patchwork.linux-mips.org/patch/12117/ Signed-off-by: Ralf Baechle arch/mips/boot/dts/brcm/bcm6368.dtsi | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit db66dbbbfd8ded204a97d090357aff582968fcf5 Author: Álvaro Fernández Rojas Date: Sun Jan 17 11:02:34 2016 +0100 MIPS: bmips: Improve BCM6328 device tree Adds bcm6328-leds node to bcm6328.dtsi Signed-off-by: Álvaro Fernández Rojas Reviewed-by: Florian Fainelli Cc: jogo@openwrt.org Cc: cernekee@gmail.com Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Cc: devicetree@vger.kernel.org Cc: Álvaro Fernández Rojas Patchwork: https://patchwork.linux-mips.org/patch/12116/ Signed-off-by: Ralf Baechle arch/mips/boot/dts/brcm/bcm6328.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) commit 555fae60b2bbb2d6282d82c5321d3adfa85b22ae Author: James Hogan Date: Tue Dec 22 13:56:39 2015 +0000 MIPS: ptrace: Drop cp0_tcstatus from regoffset_table[] The cp0_tcstatus member of struct pt_regs was removed along with the rest of SMTC in v3.16, commit b633648c5ad3 ("MIPS: MT: Remove SMTC support"), however recent uprobes support in v4.3 added back a reference to it in the regoffset_table[] in ptrace.c. Remove it. Signed-off-by: James Hogan Fixes: 40e084a506eb ("MIPS: Add uprobes support.") Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/11920/ Signed-off-by: Ralf Baechle arch/mips/kernel/ptrace.c | 3 --- 1 file changed, 3 deletions(-) commit 8cbe4b5cbc6fe7cecfc74af82559f50ee3a7e417 Author: Linus Walleij Date: Tue Dec 22 15:41:44 2015 +0100 MIPS: TXx9: iocled: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Signed-off-by: Linus Walleij Cc: linux-mips@linux-mips.org Cc: linux-gpio@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11925/ Signed-off-by: Ralf Baechle arch/mips/txx9/generic/setup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8eb248fa8b3a3ff4174a33b797f2712fe4fed660 Author: Linus Walleij Date: Tue Dec 22 15:41:19 2015 +0100 MIPS: RB532: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Signed-off-by: Linus Walleij Cc: linux-mips@linux-mips.org Cc: linux-gpio@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11924/ Signed-off-by: Ralf Baechle arch/mips/rb532/gpio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6ea6b7faf0fbc7f2bb55277befe478c0a66659fc Author: Linus Walleij Date: Tue Dec 22 15:41:01 2015 +0100 MIPS: TXx9: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Signed-off-by: Linus Walleij Cc: linux-mips@linux-mips.org Cc: linux-gpio@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11923/ Signed-off-by: Ralf Baechle arch/mips/kernel/gpio_txx9.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 249e573d99ab590e19bd23f084f8c6540daa7b06 Author: Linus Walleij Date: Tue Dec 22 15:40:27 2015 +0100 MIPS: ar7: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Signed-off-by: Linus Walleij Acked-by: Florian Fainelli Cc: Alban Bedel Cc: linux-mips@linux-mips.org Cc: linux-gpio@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11922/ Signed-off-by: Ralf Baechle arch/mips/ar7/gpio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7b42c00a95c02d962b18f8ed8bf59b65ae58d3ee Author: Linus Walleij Date: Tue Dec 22 15:40:02 2015 +0100 MIPS: Alchemy: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Signed-off-by: Linus Walleij Cc: linux-mips@linux-mips.org Cc: linux-gpio@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11921/ Signed-off-by: Ralf Baechle arch/mips/alchemy/common/gpiolib.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 2549cc967ebb4043f3507b55e3dc579f44d3b516 Author: Jaedon Shin Date: Mon Dec 21 12:47:35 2015 +0900 MIPS: Fix macro typo Change the CONFIG_MIPS_CMDLINE_EXTEND to CONFIG_MIPS_CMDLINE_DTB_EXTEND to resolve the EXTEND_WITH_PROM macro. Signed-off-by: Jaedon Shin Fixes: 2024972ef533 ("MIPS: Make the kernel arguments from dtb available") Reviewed-by: Alexander Sverdlin Cc: Jonas Gorski Cc: Masahiro Yamada Cc: Paul Burton Cc: Aaro Koskinen Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/11909/ Signed-off-by: Ralf Baechle arch/mips/kernel/setup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 497e803ebf98ea88c7191e67333bfcc6ffd64bc6 Author: Matt Redfearn Date: Fri Dec 18 12:47:00 2015 +0000 MIPS: smp-cps: Ensure secondary cores start with EVA disabled The kernel currently assumes that a core will start up in legacy mode using the exception base provided through the CM GCR registers. If a core has been configured in hardware to start in EVA mode, these assumptions will fail. This patch ensures that secondary cores are initialized to meet these assumptions. Signed-off-by: Matt Redfearn Reviewed-by: Paul Burton Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/11907/ Signed-off-by: Ralf Baechle arch/mips/include/asm/mips-cm.h | 4 ++++ arch/mips/kernel/smp-cps.c | 3 +++ 2 files changed, 7 insertions(+) commit 2c3033a0664dfae91e1dee7fabac10f24354b958 Author: Insu Yun Date: Sat Jan 23 15:44:19 2016 -0500 ACPI / PCI / hotplug: unlock in error path in acpiphp_enable_slot() In acpiphp_enable_slot(), there is a missing unlock path when error occurred. It needs to be unlocked before returning an error. Signed-off-by: Insu Yun Cc: All applicable Signed-off-by: Rafael J. Wysocki drivers/pci/hotplug/acpiphp_glue.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit a68f376844605399cbd28b662d5ed213639f46f7 Author: Maciej W. Rozycki Date: Sat Jan 9 02:05:31 2016 +0000 MIPS: io.h: Define `ioremap_cache' Signed-off-by: Maciej W. Rozycki Cc: Brian Norris Cc: Rafał Miłecki Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/12040/ Signed-off-by: Ralf Baechle arch/mips/include/asm/io.h | 1 + 1 file changed, 1 insertion(+) commit 6d7b14151d7510ed434f2e587cdae9eca82fc123 Author: Maciej W. Rozycki Date: Fri Jan 22 05:21:47 2016 +0000 MIPS: math-emu: dsemul: Reduce `get_isa16_mode' clutter Signed-off-by: Maciej W. Rozycki Cc: Aurelien Jarno Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/12178/ Signed-off-by: Ralf Baechle arch/mips/math-emu/dsemul.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit 29e280034810efeb84ca67a535817cf45e7cd7fe Author: Maciej W. Rozycki Date: Fri Jan 22 05:21:34 2016 +0000 MIPS: inst.h: Fix some instruction descriptions Fix the description of the microMIPS NOP16 encoding or MM_NOP16, which is not equivalent to the MIPS16 NOP instruction. This is 0x0c00 and represents the microMIPS `MOVE16 $0, $0' operation, whereas MIPS16 NOP is encoded as 0x6500, representing `MOVE $0, $16'. Also fix a typo in `mm_fp0_format' description. Signed-off-by: Maciej W. Rozycki Cc: Aurelien Jarno Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/12177/ Signed-off-by: Ralf Baechle arch/mips/include/uapi/asm/inst.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6e1715f7c34d00dc94f3cecb2526ae3ff0b0649f Author: Maciej W. Rozycki Date: Fri Jan 22 05:21:13 2016 +0000 MIPS: math-emu: dsemul: Correct description of the emulation frame Remove irrelevant content from the description of the emulation frame in `mips_dsemul', referring to bare-metal configurations. Update the text, reflecting the change made with commit ba3049ed4086 ("MIPS: Switch FPU emulator trap to BREAK instruction."), where we switched from using an address error exception on an unaligned access to the use of a BREAK 514 instruction causing a breakpoint exception instead. Signed-off-by: Maciej W. Rozycki Cc: Aurelien Jarno Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/12176/ Signed-off-by: Ralf Baechle arch/mips/math-emu/dsemul.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit 69a1e6cbdf1f40d5dcae84c5a538d390b6d2c307 Author: Maciej W. Rozycki Date: Fri Jan 22 05:21:00 2016 +0000 MIPS: math-emu: Correct the emulation of microMIPS ADDIUPC instruction Emulate the microMIPS ADDIUPC instruction directly in `mips_dsemul'. If executed in the emulation frame, this instruction produces an incorrect result, because the value of the PC there is not the same as where the instruction originated. Reshape code so as to handle all microMIPS cases together. Signed-off-by: Maciej W. Rozycki Cc: Aurelien Jarno Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/12175/ Signed-off-by: Ralf Baechle arch/mips/include/uapi/asm/inst.h | 8 ++++++++ arch/mips/math-emu/dsemul.c | 24 ++++++++++++++++++++++-- 2 files changed, 30 insertions(+), 2 deletions(-) commit 733b8bc183f491e8263009edf8ef184fb44a6882 Author: Maciej W. Rozycki Date: Fri Jan 22 05:20:46 2016 +0000 MIPS: math-emu: Make microMIPS branch delay slot emulation work Complement commit 102cedc32a6e ("MIPS: microMIPS: Floating point support.") which introduced microMIPS FPU emulation, but did not adjust the encoding of the BREAK instruction used to terminate the branch delay slot emulation frame. Consequently the execution of any such frame is indeterminate and, depending on CPU configuration, will result in random code execution or an offending program being terminated with SIGILL. This is because the regular MIPS BREAK instruction is encoded with the 0 major and the 0xd minor opcode, however in the microMIPS instruction set this major/minor opcode pair denotes an encoding reserved for the DSP ASE. Instead the microMIPS BREAK instruction is encoded with the 0 major and the 0x7 minor opcode. Use the correct BREAK encoding for microMIPS FPU emulation then. Signed-off-by: Maciej W. Rozycki Cc: Aurelien Jarno Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/12174/ Signed-off-by: Ralf Baechle arch/mips/include/asm/fpu_emulator.h | 2 +- arch/mips/include/asm/mips-r2-to-r6-emul.h | 2 +- arch/mips/math-emu/dsemul.c | 11 +++++++---- 3 files changed, 9 insertions(+), 6 deletions(-) commit a87265cfedce49fa362030ae3e6ef047e08bc12c Author: Maciej W. Rozycki Date: Fri Jan 22 05:20:37 2016 +0000 MIPS: math-emu: dsemul: Fix ill formatting of microMIPS part Correct formatting breakage introduced with commit 102cedc32a6e ("MIPS: microMIPS: Floating point support."), so that further changes to this code can be consistent. Signed-off-by: Maciej W. Rozycki Cc: Aurelien Jarno Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/12173/ Signed-off-by: Ralf Baechle arch/mips/math-emu/dsemul.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) commit e4553573b37c3f72533683cb5f3a1ad300b18d37 Author: Maciej W. Rozycki Date: Fri Jan 22 05:20:26 2016 +0000 MIPS: math-emu: Correctly handle NOP emulation Fix an issue introduced with commit 9ab4471c9f1b ("MIPS: math-emu: Correct delay-slot exception propagation") where the emulation of a NOP instruction signals the need to terminate the emulation loop. This in turn, if the PC has not changed from the entry to the loop, will cause the kernel to terminate the program with SIGILL. Consider this program: static double div(double d) { do d /= 2.0; while (d > .5); return d; } int main(int argc, char **argv) { return div(argc); } which gets compiled to the following binary code: 00400490
: 400490: 44840000 mtc1 a0,$f0 400494: 3c020040 lui v0,0x40 400498: d44207f8 ldc1 $f2,2040(v0) 40049c: 46800021 cvt.d.w $f0,$f0 4004a0: 46220002 mul.d $f0,$f0,$f2 4004a4: 4620103c c.lt.d $f2,$f0 4004a8: 4501fffd bc1t 4004a0 4004ac: 00000000 nop 4004b0: 4620000d trunc.w.d $f0,$f0 4004b4: 03e00008 jr ra 4004b8: 44020000 mfc1 v0,$f0 4004bc: 00000000 nop Where the FPU emulator is used, depending on the number of command-line arguments this code will either run to completion or terminate with SIGILL. If no arguments are specified, then BC1T will not be taken, NOP will not be emulated and code will complete successfully. If one argument is specified, then BC1T will be taken once and NOP will be emulated. At this point the entry PC value will be 0x400498 and the new PC value, set by `mips_dsemul' will be 0x4004a0, the target of BC1T. The emulation loop will terminate, but SIGILL will not be issued, because the PC has changed. The FPU emulator will be entered again and on the second execution BC1T will not be taken, NOP will not be emulated and code will complete successfully. If two or more arguments are specified, then the first execution of BC1T will proceed as above. Upon reentering the FPU emulator the emulation loop will continue to BC1T, at which point the branch will be taken and NOP emulated again. At this point however the entry PC value will be 0x4004a0, the same as the target of BC1T. This will make the emulator conclude that execution has not advanced and therefore an unsupported FPU instruction has been encountered, and SIGILL will be sent to the process. Fix the problem by extending the internal API of `mips_dsemul', making it return -1 if no delay slot emulation frame has been made, the instruction has been handled and execution of the emulation loop needs to continue as if nothing happened. Remove code from `mips_dsemul' to reproduce steps made by the emulation loop at the conclusion of each iteration, as those will be reached normally now. Adjust call sites accordingly. Document the API. Signed-off-by: Maciej W. Rozycki Cc: Aurelien Jarno Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/12172/ Signed-off-by: Ralf Baechle arch/mips/math-emu/cp1emu.c | 4 ++++ arch/mips/math-emu/dsemul.c | 14 ++++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) commit 4f33f6c522948fffc345261896042b58dea23754 Author: Huacai Chen Date: Thu Jan 21 21:09:52 2016 +0800 MIPS: Fix some missing CONFIG_CPU_MIPSR6 #ifdefs Commit be0c37c985eddc4 (MIPS: Rearrange PTE bits into fixed positions.) defines fixed PTE bits for MIPS R2. Then, commit d7b631419b3d230a4d383 (MIPS: pgtable-bits: Fix XPA damage to R6 definitions.) adds the MIPS R6 definitions in the same way as MIPS R2. But some R6 #ifdefs in the later commit are missing, so in this patch I fix that. Signed-off-by: Huacai Chen Cc: Aurelien Jarno Cc: Steven J. Hill Cc: Fuxin Zhang Cc: Zhangjin Wu Cc: linux-mips@linux-mips.org Cc: stable@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/12164/ Signed-off-by: Ralf Baechle arch/mips/include/asm/pgtable.h | 4 ++-- arch/mips/mm/tlbex.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit db0dbd57d59ad02c8343c69e8c73e749c0515ec3 Author: Huacai Chen Date: Thu Jan 21 21:09:51 2016 +0800 MIPS: sync-r4k: reduce skew while synchronization While synchronization, count register will go backwards for the master. If synchronise_count_master() runs before synchronise_count_slave(), skew becomes even more. The skew is very harmful for CPU hotplug (CPU0 do synchronization with CPU1, then CPU0 do synchronization with CPU2 and CPU0's count goes backwards, so it will be out of sync with CPU1). After the commit cf9bfe55f24973a8f40e2 (MIPS: Synchronize MIPS count one CPU at a time), we needn't evaluate count_reference at the beginning of synchronise_count_master() any more. Thus, we evaluate the initcount (It seems like count_reference is redundant) in the 2nd loop. Since we write the count register in the last loop, we don't need additional barriers (the existing memory barriers are enough). Moreover, I think we loop 3 times is enough to get a primed instruction cache, this can also get less skew than looping 5 times. Comments are also updated in this patch. Signed-off-by: Huacai Chen Cc: Aurelien Jarno Cc: Steven J. Hill Cc: linux-mips@linux-mips.org Cc: Fuxin Zhang Cc: Zhangjin Wu Patchwork: https://patchwork.linux-mips.org/patch/12163/ Signed-off-by: Ralf Baechle arch/mips/kernel/sync-r4k.c | 32 ++++++++------------------------ 1 file changed, 8 insertions(+), 24 deletions(-) commit b3e27d5d4a29bcc8e057b496d5ef5194addaaac0 Merge: cc67375 03beaec Author: Linus Torvalds Date: Sat Jan 23 16:00:52 2016 -0800 Merge tag 'ntb-4.5' of git://github.com/jonmason/ntb Pull NTB updates from Jon Mason: "A new driver to support AMD NTB, a NTB performance test driver, NTB bugs fixes, and the ability to recover from running out of DMA descriptors" * tag 'ntb-4.5' of git://github.com/jonmason/ntb: NTB: Fix macro parameter conflict with field name NTB: Add support for AMD PCI-Express Non-Transparent Bridge ntb: ntb perf tool NTB: Address out of DMA descriptor issue with NTB NTB: Clear property bits in BAR value NTB: ntb_process_tx error path bug commit cc673757e24d018d64ff8038e28835db1e2902c4 Merge: fa7d9a1 e62e560 Author: Linus Torvalds Date: Sat Jan 23 12:24:56 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull final vfs updates from Al Viro: - The ->i_mutex wrappers (with small prereq in lustre) - a fix for too early freeing of symlink bodies on shmem (they need to be RCU-delayed) (-stable fodder) - followup to dedupe stuff merged this cycle * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: vfs: abort dedupe loop if fatal signals are pending make sure that freeing shmem fast symlinks is RCU-delayed wrappers for ->i_mutex access lustre: remove unused declaration commit fa7d9a1d286e6bab49ffa59cbd3c8b394ce54339 Merge: 20c759c 6d45c04 Author: Linus Torvalds Date: Sat Jan 23 11:47:13 2016 -0800 Merge tag 'nfs-for-4.5-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs Pull NFS client bugfixes and cleanups from Trond Myklebust: "Bugfixes: - pNFS/flexfiles: Fix an XDR encoding bug in layoutreturn - pNFS/flexfiles: Improve merging of errors in LAYOUTRETURN Cleanups: - NFS: Simplify nfs_request_add_commit_list() arguments" * tag 'nfs-for-4.5-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: pNFS/flexfiles: Fix an XDR encoding bug in layoutreturn NFS: Simplify nfs_request_add_commit_list() arguments pNFS/flexfiles: Improve merging of errors in LAYOUTRETURN commit 20c759ca98468d96d1fff8bd5e6753f458dbbfbd Merge: b82dde0 114bf37 Author: Linus Torvalds Date: Sat Jan 23 11:13:56 2016 -0800 Merge branch 'akpm' (patches from Andrew) Merge small final update from Andrew Morton: - DAX feature work: add fsync/msync support - kfree cleanup, MAINTAINERS update * emailed patches from Andrew Morton : MAINTAINERS: return arch/sh to maintained state, with new maintainers tree wide: use kvfree() than conditional kfree()/vfree() dax: never rely on bh.b_dev being set by get_block() xfs: call dax_pfn_mkwrite() for DAX fsync/msync ext4: call dax_pfn_mkwrite() for DAX fsync/msync ext2: call dax_pfn_mkwrite() for DAX fsync/msync dax: add support for fsync/sync mm: add find_get_entries_tag() dax: support dirty DAX entries in radix tree pmem: add wb_cache_pmem() to the PMEM API dax: fix conversion of holes to PMDs dax: fix NULL pointer dereference in __dax_dbg() commit 87f5fedb3bebbbb566f847dd0c567fcea49a36a6 Author: Lukasz Duda Date: Wed Jan 13 16:57:48 2016 +0100 Bluetooth: 6lowpan: Fix handling of uncompressed IPv6 packets This patch fixes incorrect handling of the 6lowpan packets that contain uncompressed IPv6 header. RFC4944 specifies a special dispatch for 6lowpan to carry uncompressed IPv6 header. This dispatch (1 byte long) has to be removed during reception and skb data pointer has to be moved. To correctly point in the beginning of the IPv6 header the dispatch byte has to be pulled off before packet can be processed by netif_rx_in(). Test scenario: IPv6 packets are not correctly interpreted by the network layer when IPv6 header is not compressed (e.g. ICMPv6 Echo Reply is not propagated correctly to the ICMPv6 layer because the extra byte will make the header look corrupted). Similar approach is done for IEEE 802.15.4. Signed-off-by: Lukasz Duda Signed-off-by: Glenn Ruben Bakke Acked-by: Jukka Rissanen Signed-off-by: Johan Hedberg Cc: stable@vger.kernel.org # 4.4+ net/bluetooth/6lowpan.c | 3 +++ 1 file changed, 3 insertions(+) commit 4c58f3282e3de43d34f8955f8eca676294380bf9 Author: Glenn Ruben Bakke Date: Wed Jan 13 16:41:42 2016 +0100 Bluetooth: 6lowpan: Fix kernel NULL pointer dereferences The fixes provided in this patch assigns a valid net_device structure to skb before dispatching it for further processing. Scenario #1: ============ Bluetooth 6lowpan receives an uncompressed IPv6 header, and dispatches it to netif. The following error occurs: Null pointer dereference error #1 crash log: [ 845.854013] BUG: unable to handle kernel NULL pointer dereference at 0000000000000048 [ 845.855785] IP: [] enqueue_to_backlog+0x56/0x240 ... [ 845.909459] Call Trace: [ 845.911678] [] netif_rx_internal+0x44/0xf0 The first modification fixes the NULL pointer dereference error by assigning dev to the local_skb in order to set a valid net_device before processing the skb by netif_rx_ni(). Scenario #2: ============ Bluetooth 6lowpan receives an UDP compressed message which needs further decompression by nhc_udp. The following error occurs: Null pointer dereference error #2 crash log: [ 63.295149] BUG: unable to handle kernel NULL pointer dereference at 0000000000000840 [ 63.295931] IP: [] udp_uncompress+0x320/0x626 [nhc_udp] The second modification fixes the NULL pointer dereference error by assigning dev to the local_skb in the case of a udp compressed packet. The 6lowpan udp_uncompress function expects that the net_device is set in the skb when checking lltype. Signed-off-by: Glenn Ruben Bakke Signed-off-by: Lukasz Duda Acked-by: Jukka Rissanen Signed-off-by: Johan Hedberg Cc: stable@vger.kernel.org # 4.4+ net/bluetooth/6lowpan.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 98d94507e10c3c0a5cfc1c3ac4df23e761f1b874 Merge: 20bbfaf 4511f71 ad74e46 Author: Zhang Rui Date: Sat Jan 23 11:43:27 2016 +0800 Merge branches 'thermal-intel', 'thermal-suspend-fix' and 'thermal-soc' into next commit d0e5fbb01a67e400e82fefe4896ea40c6447ab98 Author: Ming Lei Date: Sat Jan 23 08:05:33 2016 +0800 block: fix bio splitting on max sectors After commit e36f62042880(block: split bios to maxpossible length), bio can be splitted in the middle of a vector entry, then it is easy to split out one bio which size isn't aligned with block size, especially when the block size is bigger than 512. This patch fixes the issue by making the max io size aligned to logical block size. Fixes: e36f62042880(block: split bios to maxpossible length) Reported-by: Stefan Haberland Cc: Keith Busch Suggested-by: Linus Torvalds Signed-off-by: Ming Lei Signed-off-by: Jens Axboe block/blk-merge.c | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) commit b186b4dcb79b1914c3dadb27ac72dafaa4267998 Author: Hans de Goede Date: Fri Jan 22 11:41:05 2016 +0100 ACPI: Revert "ACPI / video: Add Dell Inspiron 5737 to the blacklist" The quirk to get "acpi_backlight=vendor" behavior by default on the Dell Inspiron 5737 was added before we started doing "acpi_backlight=native" by default on Win8 ready machines. Since we now avoid using acpi-video as backlight driver on these machines by default (using the native driver instead) we no longer need this quirk. Moreover the vendor driver does not work after a suspend/resume where as the native driver does. This reverts commit 08a56226d847 (ACPI / video: Add Dell Inspiron 5737 to the blacklist). Link: https://bugzilla.kernel.org/show_bug.cgi?id=111061 Cc: 3.19+ # 3.19+ Reported-and-tested-by: erusan@gmail.com Signed-off-by: Hans de Goede Signed-off-by: Rafael J. Wysocki drivers/acpi/video_detect.c | 8 -------- 1 file changed, 8 deletions(-) commit b82dde0230439215b55e545880e90337ee16f51a Merge: 79d2453 884a12a Author: Linus Torvalds Date: Fri Jan 22 17:35:38 2016 -0800 Merge tag 'please-pull-copy_file_range' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux Pull ia64 copy_file_range syscall update from Tony Luck: "Another release, another new syscall to wire up" * tag 'please-pull-copy_file_range' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux: [IA64] Enable copy_file_range syscall for ia64 commit 79d245327f61ff21e7b9427c61fded5442734233 Merge: 1b8ee1e 5f4900b Author: Linus Torvalds Date: Fri Jan 22 17:30:52 2016 -0800 Merge tag 'armsoc-tegra' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC support for Tegra platforms from Olof Johansson: "Here's a single-SoC topic branch that we've staged separately. Mainly because it was hard to sort the branch contents in a way that fit our existing branches due to some refactorings. The code has been in -next for quite a while, but we staged it in arm-soc a bit late, which is why we've kept it separate from the other updates and are sending it separately here" * tag 'armsoc-tegra' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: arm64: tegra: Add NVIDIA Jetson TX1 Developer Kit support arm64: tegra: Add NVIDIA P2597 I/O board support arm64: tegra: Add NVIDIA Jetson TX1 support arm64: tegra: Add NVIDIA P2571 board support arm64: tegra: Add NVIDIA P2371 board support arm64: tegra: Add NVIDIA P2595 I/O board support arm64: tegra: Add NVIDIA P2530 main board support arm64: tegra: Add Tegra210 support arm64: tegra: Add NVIDIA Tegra132 Norrin support arm64: tegra: Add Tegra132 support ARM: tegra: select USB_ULPI from EHCI rather than platform ARM: tegra: Ensure entire dcache is flushed on entering LP0/1 amba: Hide TEGRA_AHB symbol soc/tegra: Add Tegra210 support soc/tegra: Provide per-SoC Kconfig symbols commit e62e560fc8b65ef5debc9041a792d18a8f98b2ca Author: Darrick J. Wong Date: Fri Jan 22 16:58:28 2016 -0800 vfs: abort dedupe loop if fatal signals are pending If the program running dedupe receives a fatal signal during the dedupe loop, we should bail out to avoid tying up the system. Signed-off-by: Darrick J. Wong Signed-off-by: Al Viro fs/read_write.c | 3 +++ 1 file changed, 3 insertions(+) commit 1b8ee1ec413bce16b0fc0e43816588c288fdc229 Merge: 5430dfe 53c517a Author: Linus Torvalds Date: Fri Jan 22 17:26:00 2016 -0800 Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC fixes from Olof Johansson: "A few fixes for fallout that we didn't catch in time in -next, or smaller warning fixes that have been discovered since" * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: soc: qcom/spm: shut up uninitialized variable warning ARM: realview: fix device tree build ARM: debug-ll: fix BCM63xx entry for multiplatform ARM: dts: armadillo800eva Correct extal1 frequency to 24 MHz commit 5430dfe90db8a4443fa7f9b62c77e82f768dd797 Merge: 4adea1f b26a95d Author: Linus Torvalds Date: Fri Jan 22 17:20:30 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input Pull more input updates from Dmitry Torokhov: "The second round of updates for the input subsystem, mainly changes to xpad driver to better hanlde Xbox One controllers" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: gpio-keys - allow disabling individual buttons in DT Input: gpio-keys - allow setting input device name in DT Input: xpad - correct xbox one pad device name Input: atmel_mxt_ts - improve touchscreen size/orientation handling Input: xpad - use LED API when identifying wireless controllers Input: xpad - workaround dead irq_out after suspend/ resume Input: xpad - update Xbox One Force Feedback Support Input: xpad - correctly handle concurrent LED and FF requests Input: xpad - handle "present" and "gone" correctly Input: xpad - remove spurious events of wireless xpad 360 controller commit 4adea1fd2773a88c30ecd77d4e5d256fa40908e2 Merge: 2c9b3eb 60539fa Author: Linus Torvalds Date: Fri Jan 22 17:13:15 2016 -0800 Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi Pull more SCSI updates from James Bottomley: "This is mostly stuff which missed the first pull request because it needed to incubate longer. It's mainly made up of the ncr 5380 rework but also has a few assorted bug fixes" * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (88 commits) imm: Use new parport device model megaraid: Fix possible NULL pointer deference in mraid_mm_ioctl storvsc: Fix typo in MODULE_PARM_DESC cxgbi: Typo in MODULE_PARM_DESC 3w-xxxx: Pass through compat mode ioctls hisi_sas: Use u64 for qw0 in free_device_v1_hw() hisi_sas: Fix typo in setup_itct_v1_hw() hisi_sas: Fix v1 itct masks ipr: Fix out-of-bounds null overwrite scsi: add Synology to 1024 sector blacklist ncr5380: Add support for HP C2502 ncr5380: Fix wait for 53C80 registers registers after PDMA ncr5380: Enable PDMA for DTC chips ncr5380: Enable PDMA for NCR53C400A ncr5380: Use runtime register mapping ncr5380: Fix pseudo DMA transfers on 53C400 ncr5380: Cleanup whitespace and parentheses atari_NCR5380: Merge changes from NCR5380.c ncr5380: Merge changes from atari_NCR5380.c ncr5380: Fix whitespace in comments using regexp ... commit 114bf37e04d839b555b3dc460b5e6ce156f49cf0 Author: Rich Felker Date: Fri Jan 22 15:11:05 2016 -0800 MAINTAINERS: return arch/sh to maintained state, with new maintainers Add Yoshinori Sato and Rich Felker as maintainers for arch/sh (SUPERH). Signed-off-by: Rich Felker Signed-off-by: Yoshinori Sato Acked-by: D. Jeff Dionne Acked-by: Rob Landley Acked-by: Peter Zijlstra (Intel) Acked-by: Simon Horman Acked-by: Geert Uytterhoeven Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds MAINTAINERS | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 1d5cfdb076288df5eb95545a547a39905e95c930 Author: Tetsuo Handa Date: Fri Jan 22 15:11:02 2016 -0800 tree wide: use kvfree() than conditional kfree()/vfree() There are many locations that do if (memory_was_allocated_by_vmalloc) vfree(ptr); else kfree(ptr); but kvfree() can handle both kmalloc()ed memory and vmalloc()ed memory using is_vmalloc_addr(). Unless callers have special reasons, we can replace this branch with kvfree(). Please check and reply if you found problems. Signed-off-by: Tetsuo Handa Acked-by: Michal Hocko Acked-by: Jan Kara Acked-by: Russell King Reviewed-by: Andreas Dilger Acked-by: "Rafael J. Wysocki" Acked-by: David Rientjes Cc: "Luck, Tony" Cc: Oleg Drokin Cc: Boris Petkov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/arm/mm/dma-mapping.c | 11 ++------- drivers/acpi/apei/erst.c | 6 ++--- drivers/block/drbd/drbd_bitmap.c | 26 ++++++---------------- drivers/block/drbd/drbd_int.h | 3 --- drivers/char/mspec.c | 15 +++---------- drivers/gpu/drm/drm_hashtab.c | 5 +---- .../lustre/include/linux/libcfs/libcfs_private.h | 8 ++----- fs/coda/coda_linux.h | 3 +-- fs/jffs2/build.c | 8 ++----- fs/jffs2/fs.c | 5 +---- fs/jffs2/super.c | 5 +---- fs/udf/super.c | 7 +----- ipc/sem.c | 2 +- ipc/util.c | 11 +++------ ipc/util.h | 2 +- mm/percpu.c | 18 ++++++--------- net/ipv4/fib_trie.c | 4 +--- 17 files changed, 36 insertions(+), 103 deletions(-) commit eab95db69d334745d3034072f4a7204084136c88 Author: Ross Zwisler Date: Fri Jan 22 15:10:59 2016 -0800 dax: never rely on bh.b_dev being set by get_block() Previously in DAX we assumed that calls to get_block() would set bh.b_bdev, and we would then use that value even in error cases for debugging. This caused a NULL pointer dereference in __dax_dbg() which was fixed by a previous commit, but that commit only changed the one place where we were hitting an error. Instead, update dax.c so that we always initialize bh.b_bdev as best we can based on the information that DAX has. get_block() may or may not update to a new value, but this at least lets us get something helpful from bh.b_bdev for error messages and not have to worry about whether it was set by get_block() or not. Signed-off-by: Ross Zwisler Reported-by: Jan Kara Reviewed-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/dax.c | 3 +++ 1 file changed, 3 insertions(+) commit 5eb88dca9ce4546bdfca6e5defcd50fbe8ea8411 Author: Ross Zwisler Date: Fri Jan 22 15:10:56 2016 -0800 xfs: call dax_pfn_mkwrite() for DAX fsync/msync To properly support the new DAX fsync/msync infrastructure filesystems need to call dax_pfn_mkwrite() so that DAX can track when user pages are dirtied. Signed-off-by: Ross Zwisler Cc: "H. Peter Anvin" Cc: "J. Bruce Fields" Cc: "Theodore Ts'o" Cc: Alexander Viro Cc: Andreas Dilger Cc: Dave Chinner Cc: Ingo Molnar Cc: Jan Kara Cc: Jeff Layton Cc: Matthew Wilcox Cc: Thomas Gleixner Cc: Dan Williams Cc: Matthew Wilcox Cc: Dave Hansen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/xfs/xfs_file.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit d5be7a03b002a0faec136687ec03dbee6c579930 Author: Ross Zwisler Date: Fri Jan 22 15:10:53 2016 -0800 ext4: call dax_pfn_mkwrite() for DAX fsync/msync To properly support the new DAX fsync/msync infrastructure filesystems need to call dax_pfn_mkwrite() so that DAX can track when user pages are dirtied. Signed-off-by: Ross Zwisler Cc: "H. Peter Anvin" Cc: "J. Bruce Fields" Cc: "Theodore Ts'o" Cc: Alexander Viro Cc: Andreas Dilger Cc: Dave Chinner Cc: Ingo Molnar Cc: Jan Kara Cc: Jeff Layton Cc: Matthew Wilcox Cc: Thomas Gleixner Cc: Dan Williams Cc: Matthew Wilcox Cc: Dave Hansen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ext4/file.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 80b4adcafc076d4179431656b7e83afea99ddec8 Author: Ross Zwisler Date: Fri Jan 22 15:10:50 2016 -0800 ext2: call dax_pfn_mkwrite() for DAX fsync/msync To properly support the new DAX fsync/msync infrastructure filesystems need to call dax_pfn_mkwrite() so that DAX can track when user pages are dirtied. Signed-off-by: Ross Zwisler Cc: "H. Peter Anvin" Cc: "J. Bruce Fields" Cc: "Theodore Ts'o" Cc: Alexander Viro Cc: Andreas Dilger Cc: Dave Chinner Cc: Ingo Molnar Cc: Jan Kara Cc: Jeff Layton Cc: Matthew Wilcox Cc: Thomas Gleixner Cc: Dan Williams Cc: Matthew Wilcox Cc: Dave Hansen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ext2/file.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 9973c98ecfda3a1dfcab981665b5f1e39bcde64a Author: Ross Zwisler Date: Fri Jan 22 15:10:47 2016 -0800 dax: add support for fsync/sync To properly handle fsync/msync in an efficient way DAX needs to track dirty pages so it is able to flush them durably to media on demand. The tracking of dirty pages is done via the radix tree in struct address_space. This radix tree is already used by the page writeback infrastructure for tracking dirty pages associated with an open file, and it already has support for exceptional (non struct page*) entries. We build upon these features to add exceptional entries to the radix tree for DAX dirty PMD or PTE pages at fault time. [dan.j.williams@intel.com: fix dax_pmd_dbg build warning] Signed-off-by: Ross Zwisler Cc: "H. Peter Anvin" Cc: "J. Bruce Fields" Cc: "Theodore Ts'o" Cc: Alexander Viro Cc: Andreas Dilger Cc: Dave Chinner Cc: Ingo Molnar Cc: Jan Kara Cc: Jeff Layton Cc: Matthew Wilcox Cc: Thomas Gleixner Cc: Matthew Wilcox Cc: Dave Hansen Signed-off-by: Dan Williams Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/dax.c | 274 +++++++++++++++++++++++++++++++++++++++++++++++++--- include/linux/dax.h | 2 + mm/filemap.c | 6 ++ 3 files changed, 266 insertions(+), 16 deletions(-) commit 7e7f774984cd88c45c18e7ffaf0256c3e9118043 Author: Ross Zwisler Date: Fri Jan 22 15:10:44 2016 -0800 mm: add find_get_entries_tag() Add find_get_entries_tag() to the family of functions that include find_get_entries(), find_get_pages() and find_get_pages_tag(). This is needed for DAX dirty page handling because we need a list of both page offsets and radix tree entries ('indices' and 'entries' in this function) that are marked with the PAGECACHE_TAG_TOWRITE tag. Signed-off-by: Ross Zwisler Reviewed-by: Jan Kara Cc: "H. Peter Anvin" Cc: "J. Bruce Fields" Cc: "Theodore Ts'o" Cc: Alexander Viro Cc: Andreas Dilger Cc: Dave Chinner Cc: Ingo Molnar Cc: Jeff Layton Cc: Matthew Wilcox Cc: Thomas Gleixner Cc: Dan Williams Cc: Matthew Wilcox Cc: Dave Hansen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/pagemap.h | 3 +++ mm/filemap.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) commit f9fe48bece3af2d60e1bad65db4825f5a025dd36 Author: Ross Zwisler Date: Fri Jan 22 15:10:40 2016 -0800 dax: support dirty DAX entries in radix tree Add support for tracking dirty DAX entries in the struct address_space radix tree. This tree is already used for dirty page writeback, and it already supports the use of exceptional (non struct page*) entries. In order to properly track dirty DAX pages we will insert new exceptional entries into the radix tree that represent dirty DAX PTE or PMD pages. These exceptional entries will also contain the writeback addresses for the PTE or PMD faults that we can use at fsync/msync time. There are currently two types of exceptional entries (shmem and shadow) that can be placed into the radix tree, and this adds a third. We rely on the fact that only one type of exceptional entry can be found in a given radix tree based on its usage. This happens for free with DAX vs shmem but we explicitly prevent shadow entries from being added to radix trees for DAX mappings. The only shadow entries that would be generated for DAX radix trees would be to track zero page mappings that were created for holes. These pages would receive minimal benefit from having shadow entries, and the choice to have only one type of exceptional entry in a given radix tree makes the logic simpler both in clear_exceptional_entry() and in the rest of DAX. Signed-off-by: Ross Zwisler Cc: "H. Peter Anvin" Cc: "J. Bruce Fields" Cc: "Theodore Ts'o" Cc: Alexander Viro Cc: Andreas Dilger Cc: Dave Chinner Cc: Ingo Molnar Cc: Jan Kara Cc: Jeff Layton Cc: Matthew Wilcox Cc: Thomas Gleixner Cc: Dan Williams Cc: Matthew Wilcox Cc: Dave Hansen Cc: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/block_dev.c | 2 +- fs/inode.c | 2 +- include/linux/dax.h | 5 ++++ include/linux/fs.h | 3 +- include/linux/radix-tree.h | 9 ++++++ mm/filemap.c | 17 ++++++++---- mm/truncate.c | 69 ++++++++++++++++++++++++++-------------------- mm/vmscan.c | 9 +++++- mm/workingset.c | 4 +-- 9 files changed, 78 insertions(+), 42 deletions(-) commit 3f4a2670deea53e3765e24a7f46aafe6f077cb68 Author: Ross Zwisler Date: Fri Jan 22 15:10:37 2016 -0800 pmem: add wb_cache_pmem() to the PMEM API __arch_wb_cache_pmem() was already an internal implementation detail of the x86 PMEM API, but this functionality needs to be exported as part of the general PMEM API to handle the fsync/msync case for DAX mmaps. One thing worth noting is that we really do want this to be part of the PMEM API as opposed to a stand-alone function like clflush_cache_range() because of ordering restrictions. By having wb_cache_pmem() as part of the PMEM API we can leave it unordered, call it multiple times to write back large amounts of memory, and then order the multiple calls with a single wmb_pmem(). Signed-off-by: Ross Zwisler Cc: "H. Peter Anvin" Cc: "J. Bruce Fields" Cc: "Theodore Ts'o" Cc: Alexander Viro Cc: Andreas Dilger Cc: Dave Chinner Cc: Ingo Molnar Cc: Jan Kara Cc: Jeff Layton Cc: Matthew Wilcox Cc: Thomas Gleixner Cc: Dan Williams Cc: Matthew Wilcox Cc: Dave Hansen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/x86/include/asm/pmem.h | 11 ++++++----- include/linux/pmem.h | 22 +++++++++++++++++++++- 2 files changed, 27 insertions(+), 6 deletions(-) commit de14b9cb5e02b5daaea139590393af5ccccc4229 Author: Ross Zwisler Date: Fri Jan 22 15:10:34 2016 -0800 dax: fix conversion of holes to PMDs When we get a DAX PMD fault for a write it is possible that there could be some number of 4k zero pages already present for the same range that were inserted to service reads from a hole. These 4k zero pages need to be unmapped from the VMAs and removed from the struct address_space radix tree before the real DAX PMD entry can be inserted. For PTE faults this same use case also exists and is handled by a combination of unmap_mapping_range() to unmap the VMAs and delete_from_page_cache() to remove the page from the address_space radix tree. For PMD faults we do have a call to unmap_mapping_range() (protected by a buffer_new() check), but nothing clears out the radix tree entry. The buffer_new() check is also incorrect as the current ext4 and XFS filesystem code will never return a buffer_head with BH_New set, even when allocating new blocks over a hole. Instead the filesystem will zero the blocks manually and return a buffer_head with only BH_Mapped set. Fix this situation by removing the buffer_new() check and adding a call to truncate_inode_pages_range() to clear out the radix tree entries before we insert the DAX PMD. Signed-off-by: Ross Zwisler Reported-by: Dan Williams Tested-by: Dan Williams Reviewed-by: Jan Kara Cc: "H. Peter Anvin" Cc: "J. Bruce Fields" Cc: "Theodore Ts'o" Cc: Alexander Viro Cc: Andreas Dilger Cc: Dave Chinner Cc: Ingo Molnar Cc: Jeff Layton Cc: Matthew Wilcox Cc: Thomas Gleixner Cc: Matthew Wilcox Cc: Dave Hansen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/dax.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit d4bbe7068b60e9263f08c54e6c2a0166c0f37317 Author: Ross Zwisler Date: Fri Jan 22 15:10:31 2016 -0800 dax: fix NULL pointer dereference in __dax_dbg() In __dax_pmd_fault() we currently assume that get_block() will always set bh.b_bdev and we unconditionally dereference it in __dax_dbg(). This assumption isn't always true - when called for reads of holes ext4_dax_mmap_get_block() returns a buffer head where bh->b_bdev is never set. I hit this BUG while testing the DAX PMD fault path. Instead, initialize bh.b_bdev before passing bh into get_block(). It is possible that the filesystem's get_block() will update bh.b_bdev, and this is fine - we just want to initialize bh.b_bdev to something reasonable so that the calls to __dax_dbg() work and print something useful. Signed-off-by: Ross Zwisler Reported-by: Dan Williams Cc: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/dax.c | 1 + 1 file changed, 1 insertion(+) commit 800dc4f49cc002879e1e5e6b79926f86b60528e6 Author: Dan Williams Date: Fri Jan 22 09:20:37 2016 -0800 Revert "MIPS: Fix PAGE_MASK definition" This reverts commit 22b14523994588279ae9c5ccfe64073c1e5b3c00. It was originally sent in an earlier revision of the pfn_t patchset. Besides being broken, the warning is also fixed by PFN_FLAGS_MASK casting the PAGE_MASK to an unsigned long. Reported-by: Manuel Lauss Signed-off-by: Dan Williams Cc: linux-kernel@vger.kernel.org Cc: Linux-MIPS Cc: stable@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/12182/ Signed-off-by: Ralf Baechle arch/mips/include/asm/page.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3ed47db34f480df7caf44436e3e63e555351ae9a Author: Al Viro Date: Fri Jan 22 18:08:52 2016 -0500 make sure that freeing shmem fast symlinks is RCU-delayed Cc: stable@vger.kernel.org # v4.2+ Signed-off-by: Al Viro include/linux/shmem_fs.h | 5 +---- mm/shmem.c | 9 ++++----- 2 files changed, 5 insertions(+), 9 deletions(-) commit 5955102c9984fa081b2d570cfac75c97eecf8f3b Author: Al Viro Date: Fri Jan 22 15:40:57 2016 -0500 wrappers for ->i_mutex access parallel to mutex_{lock,unlock,trylock,is_locked,lock_nested}, inode_foo(inode) being mutex_foo(&inode->i_mutex). Please, use those for access to ->i_mutex; over the coming cycle ->i_mutex will become rwsem, with ->lookup() done with it held only shared. Signed-off-by: Al Viro arch/powerpc/platforms/cell/spufs/file.c | 4 +- arch/powerpc/platforms/cell/spufs/inode.c | 12 ++-- arch/s390/hypfs/inode.c | 8 +-- block/ioctl.c | 4 +- drivers/base/devtmpfs.c | 12 ++-- drivers/block/aoe/aoecmd.c | 4 +- drivers/block/drbd/drbd_debugfs.c | 4 +- drivers/char/mem.c | 4 +- drivers/char/ps3flash.c | 4 +- drivers/infiniband/hw/qib/qib_fs.c | 12 ++-- drivers/mtd/ubi/cdev.c | 4 +- drivers/oprofile/oprofilefs.c | 16 +++--- drivers/staging/lustre/lustre/llite/dir.c | 4 +- drivers/staging/lustre/lustre/llite/file.c | 16 +++--- drivers/staging/lustre/lustre/llite/llite_lib.c | 4 +- drivers/staging/lustre/lustre/llite/llite_nfs.c | 4 +- drivers/staging/lustre/lustre/llite/lloop.c | 4 +- drivers/staging/lustre/lustre/llite/rw.c | 4 +- drivers/staging/lustre/lustre/llite/rw26.c | 4 +- drivers/staging/lustre/lustre/llite/vvp_io.c | 4 +- drivers/staging/lustre/lustre/llite/vvp_page.c | 10 ++-- drivers/staging/rdma/ipath/ipath_fs.c | 8 +-- drivers/usb/gadget/function/f_printer.c | 4 +- drivers/usb/gadget/legacy/inode.c | 4 +- drivers/usb/gadget/udc/atmel_usba_udc.c | 12 ++-- drivers/video/fbdev/core/fb_defio.c | 4 +- fs/9p/vfs_file.c | 8 +-- fs/affs/file.c | 8 +-- fs/afs/flock.c | 4 +- fs/afs/write.c | 4 +- fs/attr.c | 2 +- fs/binfmt_misc.c | 12 ++-- fs/block_dev.c | 20 +++---- fs/btrfs/file.c | 42 +++++++------- fs/btrfs/inode.c | 4 +- fs/btrfs/ioctl.c | 38 ++++++------- fs/btrfs/relocation.c | 4 +- fs/btrfs/scrub.c | 4 +- fs/btrfs/xattr.c | 2 +- fs/cachefiles/interface.c | 4 +- fs/cachefiles/namei.c | 40 ++++++------- fs/ceph/cache.c | 4 +- fs/ceph/caps.c | 4 +- fs/ceph/dir.c | 4 +- fs/ceph/export.c | 4 +- fs/ceph/file.c | 18 +++--- fs/cifs/cifsfs.c | 4 +- fs/cifs/file.c | 12 ++-- fs/coda/dir.c | 4 +- fs/coda/file.c | 8 +-- fs/configfs/dir.c | 58 +++++++++---------- fs/configfs/file.c | 8 +-- fs/configfs/inode.c | 4 +- fs/dax.c | 6 +- fs/dcache.c | 4 +- fs/debugfs/inode.c | 22 ++++---- fs/devpts/inode.c | 12 ++-- fs/direct-io.c | 8 +-- fs/ecryptfs/inode.c | 32 +++++------ fs/ecryptfs/mmap.c | 4 +- fs/efivarfs/file.c | 4 +- fs/efivarfs/super.c | 4 +- fs/exec.c | 4 +- fs/exofs/file.c | 4 +- fs/exportfs/expfs.c | 12 ++-- fs/ext2/ioctl.c | 12 ++-- fs/ext4/ext4.h | 2 +- fs/ext4/extents.c | 20 +++---- fs/ext4/file.c | 18 +++--- fs/ext4/inode.c | 12 ++-- fs/ext4/ioctl.c | 20 +++---- fs/ext4/namei.c | 4 +- fs/ext4/super.c | 4 +- fs/f2fs/data.c | 4 +- fs/f2fs/file.c | 20 +++---- fs/fat/dir.c | 4 +- fs/fat/file.c | 12 ++-- fs/fuse/dir.c | 10 ++-- fs/fuse/file.c | 36 ++++++------ fs/gfs2/file.c | 4 +- fs/gfs2/inode.c | 4 +- fs/gfs2/quota.c | 8 +-- fs/hfs/dir.c | 4 +- fs/hfs/inode.c | 8 +-- fs/hfsplus/dir.c | 4 +- fs/hfsplus/inode.c | 8 +-- fs/hfsplus/ioctl.c | 4 +- fs/hostfs/hostfs_kern.c | 4 +- fs/hpfs/dir.c | 6 +- fs/hugetlbfs/inode.c | 12 ++-- fs/inode.c | 8 +-- fs/ioctl.c | 4 +- fs/jffs2/file.c | 4 +- fs/jfs/file.c | 6 +- fs/jfs/ioctl.c | 6 +- fs/jfs/super.c | 6 +- fs/kernfs/dir.c | 4 +- fs/libfs.c | 10 ++-- fs/locks.c | 6 +- fs/logfs/file.c | 8 +-- fs/namei.c | 74 ++++++++++++------------- fs/namespace.c | 10 ++-- fs/ncpfs/dir.c | 8 +-- fs/ncpfs/file.c | 4 +- fs/nfs/dir.c | 8 +-- fs/nfs/direct.c | 12 ++-- fs/nfs/file.c | 4 +- fs/nfs/inode.c | 8 +-- fs/nfs/nfs42proc.c | 8 +-- fs/nfs/nfs4file.c | 24 ++++---- fs/nfsd/nfs4proc.c | 4 +- fs/nfsd/nfs4recover.c | 12 ++-- fs/nfsd/nfsfh.h | 4 +- fs/nfsd/vfs.c | 4 +- fs/nilfs2/inode.c | 4 +- fs/nilfs2/ioctl.c | 4 +- fs/ntfs/dir.c | 4 +- fs/ntfs/file.c | 8 +-- fs/ntfs/quota.c | 6 +- fs/ntfs/super.c | 12 ++-- fs/ocfs2/alloc.c | 32 +++++------ fs/ocfs2/aops.c | 4 +- fs/ocfs2/dir.c | 4 +- fs/ocfs2/file.c | 12 ++-- fs/ocfs2/inode.c | 12 ++-- fs/ocfs2/ioctl.c | 12 ++-- fs/ocfs2/journal.c | 8 +-- fs/ocfs2/localalloc.c | 16 +++--- fs/ocfs2/move_extents.c | 16 +++--- fs/ocfs2/namei.c | 28 +++++----- fs/ocfs2/quota_global.c | 4 +- fs/ocfs2/refcounttree.c | 12 ++-- fs/ocfs2/resize.c | 8 +-- fs/ocfs2/suballoc.c | 12 ++-- fs/ocfs2/xattr.c | 14 ++--- fs/open.c | 12 ++-- fs/overlayfs/copy_up.c | 4 +- fs/overlayfs/dir.c | 12 ++-- fs/overlayfs/inode.c | 4 +- fs/overlayfs/readdir.c | 20 +++---- fs/overlayfs/super.c | 14 ++--- fs/proc/kcore.c | 4 +- fs/proc/self.c | 4 +- fs/proc/thread_self.c | 4 +- fs/pstore/inode.c | 6 +- fs/quota/dquot.c | 20 +++---- fs/read_write.c | 4 +- fs/readdir.c | 2 +- fs/reiserfs/dir.c | 4 +- fs/reiserfs/file.c | 4 +- fs/reiserfs/ioctl.c | 2 +- fs/reiserfs/xattr.c | 64 ++++++++++----------- fs/tracefs/inode.c | 34 ++++++------ fs/ubifs/dir.c | 18 +++--- fs/ubifs/file.c | 4 +- fs/ubifs/xattr.c | 4 +- fs/udf/file.c | 10 ++-- fs/udf/inode.c | 2 +- fs/utimes.c | 4 +- fs/xattr.c | 8 +-- fs/xfs/xfs_file.c | 6 +- fs/xfs/xfs_pnfs.c | 4 +- include/linux/fs.h | 29 +++++++++- ipc/mqueue.c | 8 +-- kernel/audit_fsnotify.c | 2 +- kernel/audit_watch.c | 2 +- kernel/events/core.c | 4 +- kernel/relay.c | 4 +- kernel/sched/core.c | 4 +- mm/filemap.c | 4 +- mm/shmem.c | 12 ++-- mm/swapfile.c | 12 ++-- net/sunrpc/cache.c | 10 ++-- net/sunrpc/rpc_pipe.c | 60 ++++++++++---------- security/inode.c | 10 ++-- security/integrity/ima/ima_main.c | 8 +-- security/selinux/selinuxfs.c | 4 +- 177 files changed, 908 insertions(+), 883 deletions(-) commit 884a12a5972fc867a93f7adf7a8ac2ade5d38fff Author: Tony Luck Date: Fri Jan 22 14:20:01 2016 -0800 [IA64] Enable copy_file_range syscall for ia64 New system call added in: 29732938a6289a15e907da234d6692a2ead71855 vfs: add copy_file_range syscall and vfs helper Signed-off-by: Tony Luck arch/ia64/include/asm/unistd.h | 2 +- arch/ia64/include/uapi/asm/unistd.h | 1 + arch/ia64/kernel/entry.S | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) commit 57b8f112cfe6622ddddb8c2641206bb5fa8a112d Author: Al Viro Date: Fri Jan 22 15:34:16 2016 -0500 lustre: remove unused declaration Signed-off-by: Al Viro drivers/staging/lustre/lustre/llite/llite_internal.h | 2 -- 1 file changed, 2 deletions(-) commit 2c9b3ebd5913c2d1371b749a8057ac32972b410d Merge: 48162a2 64a67d4 Author: Linus Torvalds Date: Fri Jan 22 12:04:21 2016 -0800 Merge tag 'mmc-v4.5-rc1' of git://git.linaro.org/people/ulf.hansson/mmc Pull MMC fixes from Ulf Hansson: "Here are some mmc fixes intended for v4.5 rc1. MMC core: - Restore reset-gpios to be optional in pwrseq_simple - Allow SDIO tuple for CISTPL_SDIO_STD - Print correct voltage value in debugfs - Enable tuning according to the actual timing - Limit SD card power limit according to cards capabilities MMC host: - tmio_mmc_dma: don't print invalid DMA cookie - mmci: Pick the correct variant and allow 8-bit mode for Nomadik" * tag 'mmc-v4.5-rc1' of git://git.linaro.org/people/ulf.hansson/mmc: mmc: pwrseq_simple: Make reset-gpios optional to match doc mmc: sdio_cis: fix unknown tuple for CISTPL_SDIO_STD mmc: debugfs: correct wrong voltage value mmc: tmio_mmc_dma: don't print invalid DMA cookie mmc: core: Enable tuning according to the actual timing mmc: mmci: support 8bit mode on the Nomadik mmc: mmci: fix an ages old detection error mmc: sd: limit SD card power limit according to cards capabilities commit 48162a203e1d0762569d9e7d2de153d9135b35f8 Merge: e7cc3ed 202736d Author: Linus Torvalds Date: Fri Jan 22 11:58:43 2016 -0800 Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 Pull crypto fixes from Herbert Xu: "This fixes the following issues: API: - A large number of bug fixes for the af_alg interface, credit goes to Dmitry Vyukov for discovering and reporting these issues. Algorithms: - sw842 needs to select crc32. - The soft dependency on crc32c is now in the correct spot. Drivers: - The atmel AES driver needs HAS_DMA. - The atmel AES driver was a missing break statement, fortunately it's only a debug function. - A number of bug fixes for the Intel qat driver" * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (24 commits) crypto: algif_skcipher - sendmsg SG marking is off by one crypto: crc32c - Fix crc32c soft dependency crypto: algif_skcipher - Load TX SG list after waiting crypto: atmel-aes - Add missing break to atmel_aes_reg_name crypto: algif_skcipher - Fix race condition in skcipher_check_key crypto: algif_hash - Fix race condition in hash_check_key crypto: CRYPTO_DEV_ATMEL_AES should depend on HAS_DMA lib: sw842: select crc32 crypto: af_alg - Forbid bind(2) when nokey child sockets are present crypto: algif_skcipher - Remove custom release parent function crypto: algif_hash - Remove custom release parent function crypto: af_alg - Allow af_af_alg_release_parent to be called on nokey path crypto: qat - update init_esram for C3xxx dev type crypto: qat - fix timeout issues crypto: qat - remove to call get_sram_bar_id for qat_c3xxx crypto: algif_skcipher - Add key check exception for cipher_null crypto: skcipher - Add crypto_skcipher_has_setkey crypto: algif_hash - Require setkey before accept(2) crypto: hash - Add crypto_ahash_has_setkey crypto: algif_skcipher - Add nokey compatibility path ... commit e7cc3edd1758f9aab39f5afcd988ffed55cb26ca Merge: 2101ae4 40ed944 Author: Linus Torvalds Date: Fri Jan 22 11:53:56 2016 -0800 Merge tag 'sound-fix-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "Here are lots of small fixes that have been collected since the previous pull. This time, not only trivial ones but fixes for some serious bugs are included: - Fix for CPU lockups by snd-hrtimer accesses - Fix for unsafe disconnection handling in ALSA timer code - Fix for Oops due to race at HD-audio module removal - Fixes for possible memory corruption via 32bit PCM and sequencer compat ioctls - Fix for regression in HD-audio generic model handling - Suppress kernel warnings for invalid TLV ioctls that may flood up - Fix the missing SSC clock handling for at73c213 - A pin fixup for ASUS N550JX" * tag 'sound-fix-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: timer: Introduce disconnect op to snd_timer_instance ALSA: timer: Handle disconnection more safely ALSA: hda - Flush the pending probe work at remove ALSA: hda - Fix missing module loading with model=generic option ALSA: hda - Degrade i915 binding failure message ALSA: at73c213: manage SSC clock ALSA: control: Avoid kernel warnings from tlv ioctl with numid 0 ALSA: seq: Fix snd_seq_call_port_info_ioctl in compat mode ALSA: pcm: Fix snd_pcm_hw_params struct copy in compat mode ALSA: hrtimer: Fix stall by hrtimer_cancel() ALSA: hda - Fix bass pin fixup for ASUS N550JX commit 2101ae42899a14fe7caa73114e2161e778328661 Merge: 391f2a1 a6111d1 Author: Linus Torvalds Date: Fri Jan 22 11:49:21 2016 -0800 Merge branch 'for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs Pull more btrfs updates from Chris Mason: "These are mostly fixes that we've been testing, but also we grabbed and tested a few small cleanups that had been on the list for a while. Zhao Lei's patchset also fixes some early ENOSPC buglets" * 'for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (21 commits) btrfs: raid56: Use raid_write_end_io for scrub btrfs: Remove unnecessary ClearPageUptodate for raid56 btrfs: use rbio->nr_pages to reduce calculation btrfs: Use unified stripe_page's index calculation btrfs: Fix calculation of rbio->dbitmap's size calculation btrfs: Fix no_space in write and rm loop btrfs: merge functions for wait snapshot creation btrfs: delete unused argument in btrfs_copy_from_user btrfs: Use direct way to determine raid56 write/recover mode btrfs: Small cleanup for get index_srcdev loop btrfs: Enhance chunk validation check btrfs: Enhance super validation check Btrfs: fix deadlock running delayed iputs at transaction commit time Btrfs: fix typo in log message when starting a balance btrfs: remove duplicate const specifier btrfs: initialize the seq counter in struct btrfs_device Btrfs: clean up an error code in btrfs_init_space_info() btrfs: fix iterator with update error in backref.c Btrfs: fix output of compression message in btrfs_parse_options() Btrfs: Initialize btrfs_root->highest_objectid when loading tree root and subvolume roots ... commit 41f2d9905646b1cd4be5852b273c06b6a6d23a80 Author: Christian König Date: Thu Jan 21 12:56:52 2016 +0100 drm/amdgpu: fix next_rptr handling for debugfs That somehow got lost. Signed-off-by: Christian König Reviewed-by: Chunming Zhou Acked-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 391f2a16b74b95da2f05a607f53213fc8ed24b8e Merge: d5ffdf8 68ce7bf Author: Linus Torvalds Date: Fri Jan 22 11:23:35 2016 -0800 Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 Pull ext4 updates from Ted Ts'o: "Some locking and page fault bug fixes from Jan Kara, some ext4 encryption fixes from me, and Li Xi's Project Quota commits" * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: fs: clean up the flags definition in uapi/linux/fs.h ext4: add FS_IOC_FSSETXATTR/FS_IOC_FSGETXATTR interface support ext4: add project quota support ext4: adds project ID support ext4 crypto: simplify interfaces to directory entry insert functions ext4 crypto: add missing locking for keyring_key access ext4: use pre-zeroed blocks for DAX page faults ext4: implement allocation of pre-zeroed blocks ext4: provide ext4_issue_zeroout() ext4: get rid of EXT4_GET_BLOCKS_NO_LOCK flag ext4: document lock ordering ext4: fix races of writeback with punch hole and zero range ext4: fix races between buffered IO and collapse / insert range ext4: move unlocked dio protection from ext4_alloc_file_blocks() ext4: fix races between page faults and hole punching commit d5ffdf8b4ac6e6db5702ba31870c476d5fa30660 Merge: eadee0c ee3804d Author: Linus Torvalds Date: Fri Jan 22 10:54:13 2016 -0800 Merge tag 'xfs-for-linus-4.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs Pull more xfs updates from Dave Chinner: "This is the second update for XFS that I mentioned in the original pull request last week. It contains a revert for a suspend regression in 4.4 and a fix for a long standing log recovery issue that has been further exposed by all the log recovery changes made in the original 4.5 merge. There is one more thing in this pull request - one that I forgot to merge into the origin. That is, pulling the XFS_IOC_FS[GS]ETXATTR ioctl up to the VFS level so that other filesystems can also use it for modifying project quota IDs Summary: - promotion of XFS_IOC_FS[GS]ETXATTR ioctl to the vfs level so that it can be shared with other filesystems. The ext4 project quota functionality is the first target for this. The commits in this series have not been updated with review or final SOB tags because the branch they were originally published in was needed by ext4. Those tags are: Reviewed-by: Theodore Ts'o Signed-off-by: Dave Chinner - Revert a change that is causing suspend failures. - Fix a use-after-free that can occur on log mount failures. Been around forever, but now exposed by other changes to log recovery made in the first 4.5 merge" * tag 'xfs-for-linus-4.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs: xfs: log mount failures don't wait for buffers to be released Revert "xfs: clear PF_NOFREEZE for xfsaild kthread" xfs: introduce per-inode DAX enablement xfs: use FS_XFLAG definitions directly fs: XFS_IOC_FS[SG]SETXATTR to FS_IOC_FS[SG]ETXATTR promotion commit eadee0ce6fd33defe449c97e671bf83fa230b5de Merge: 6fb11e6 117aa41 Author: Linus Torvalds Date: Fri Jan 22 10:24:03 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull more vfs updates from Al Viro: "Embarrassing braino fix + pipe page accounting + fixing an eyesore in find_filesystem() (checking that s1 is equal to prefix of s2 of given length can be done in many ways, but "compare strlen(s1) with length and then do strncmp()" is not a good one...)" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: [regression] fix braino in fs/dlm/user.c pipe: limit the per-user amount of pages allocated in pipes find_filesystem(): simplify comparison commit 6fb11e6508eac9d2e01ba748fc13afdd657224ab Merge: 3e1e21c b1b1e15 Author: Linus Torvalds Date: Fri Jan 22 09:54:34 2016 -0800 Merge branch 'akpm' (patches from Andrew) Merge misc fixes from Andrew Morton: "Six fixes" * emailed patches from Andrew Morton : ocfs2: NFS hangs in __ocfs2_cluster_lock due to race with ocfs2_unblock_lock reiserfs: fix dereference of ERR_PTR ratelimit: fix bug in time interval by resetting right begin time mm: fix kernel crash in khugepaged thread mm: fix mlock accouting thp: change pmd_trans_huge_lock() interface to return ptl commit 5cfa1e4e0deced0cccedb4b30facb8a8e68e209b Author: Hou Zhiqiang Date: Fri Jan 22 18:58:26 2016 +0800 spi/fsl-espi: Correct the maximum transaction length The maximum length during one transcation is 64KiB. Signed-off-by: Hou Zhiqiang Signed-off-by: Mark Brown drivers/spi/spi-fsl-espi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f8efca2f1783050368c71e978ee32d3aa692637b Author: Gao Pan Date: Mon Jan 18 15:44:01 2016 +0800 spi: imx: fix spi resource leak with dma transfer In spi_imx_dma_transfer(), when desc_rx = dmaengine_prep_slave_sg() fails, the context goes to label no_dma and then return. However, the memory allocated for desc_tx has not been freed yet, which leads to resource leak. Signed-off-by: Gao Pan Reviewed-by: Fugang Duan Signed-off-by: Mark Brown drivers/spi/spi-imx.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 6bb7451429084cefcb3a18fff809f7992595d2af Author: Stuart Henderson Date: Tue Jan 19 13:09:09 2016 +0000 ASoC: wm8960: Fix WM8960_SYSCLK_PLL mode With the introduction of WM8960_SYSCLK_AUTO mode, WM8960_SYSCLK_PLL mode was made unusable. Ensure we're not PLL mode before trying to use MCLK. Fixes: 3176bf2d7ccd ("ASoC: wm8960: update pll and clock setting function") Signed-off-by: Stuart Henderson Reviewed-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8960.c | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) commit 95826a37991de87659e21b3649f265a049724aa2 Author: Stuart Henderson Date: Tue Jan 19 13:09:08 2016 +0000 ASoC: wm8960: Fix input boost mixer left/right naming INBMIX1 controls LINPUTs and INBMIX2 controls RINPUTs, so fix the naming accordingly. Signed-off-by: Stuart Henderson Reviewed-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8960.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit f5ede8dcc3ec1fe5344f0d30717931a44e630631 Author: Richard Fitzgerald Date: Thu Jan 21 14:41:12 2016 +0000 ASoC: wm5110: Unregister compressed platform when driver is removed The driver was not unregistering the compressed platform in wm5110_remove(). If the codec is built as a module, this would lead to a NULL pointer deref if the module was unloaded and then re-probed. Signed-off-by: Richard Fitzgerald Signed-off-by: Mark Brown sound/soc/codecs/wm5110.c | 1 + 1 file changed, 1 insertion(+) commit c14a82c781f8df50c4c5215ab92affdc60d72c01 Author: Sudip Mukherjee Date: Thu Jan 21 17:27:59 2016 +0530 ASoC: Intel: Skylake: Fix memory leak If snd_soc_tplg_component_load() fails we just printed an error message and returned the error code but we missed releasing the firmware. Signed-off-by: Sudip Mukherjee Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-topology.c | 1 + 1 file changed, 1 insertion(+) commit 53c517a83741718e35dd0494eb271c3c6e3820e5 Merge: 00affca c61f30a Author: Olof Johansson Date: Fri Jan 22 08:28:23 2016 -0800 Merge tag 'renesas-fixes-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into fixes Renesas ARM Based SoC Fixes for v4.5 Correct extal1 frequency of armadillo800eva board * tag 'renesas-fixes-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: dts: armadillo800eva Correct extal1 frequency to 24 MHz Signed-off-by: Olof Johansson commit 143c6fe3a415edf2dde3f507b3a00998b4c4001e Author: Tony Lindgren Date: Tue Jan 12 08:11:04 2016 -0800 ARM: omap2plus_defconfig: Enable ARM_KERNMEM_PERMS and few loadable modules With recent omap assembly fixes for CONFIG_DEBUG_RODATA, we can now use DEBUG_RODATA. Let's enable ARM_KERNMEM_PERMS so that DEBUG_RODATA gets selected by default. This way we can make sure any related issues are caught early. And while testing things on various devices, I noticed we're missing few loadable modules to make things more usable: - USB Ethernet for smsc75xx, we only have smsc97xx right now - Basic USB serial drivers for things like ftdi and pl2303 ports - Blinking leds with pca963x Signed-off-by: Tony Lindgren arch/arm/configs/omap2plus_defconfig | 8 ++++++++ 1 file changed, 8 insertions(+) commit 4da597d16602d14405b71a18d45e1c59f28f0fd2 Author: Tony Lindgren Date: Thu Jan 14 12:20:48 2016 -0800 ARM: OMAP2+: Fix ppa_zero_params and ppa_por_params for rodata We don't want to write to .text so let's move ppa_zero_params and ppa_por_params to .data and access them via pointers. Note that I have not been able to test as we I don't have a HS omap4 to test with. The code has been changed in similar way as for omap3 though. Cc: Kees Cook Cc: Laura Abbott Cc: Nishanth Menon Cc: Richard Woodruff Cc: Russell King Cc: Tero Kristo Acked-by: Nicolas Pitre Cc: stable@vger.kernel.org # v4.0+ Fixes: 1e6b48116a95 ("ARM: mm: allow non-text sections to be non-executable") Signed-off-by: Tony Lindgren arch/arm/mach-omap2/sleep44xx.S | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) commit 0a0b13275558c32bbf6241464a7244b1ffd5afb3 Author: Tony Lindgren Date: Thu Jan 14 12:20:47 2016 -0800 ARM: OMAP2+: Fix l2_inv_api_params for rodata We don't want to write to .text, so let's move l2_inv_api_params to .data and access it via a pointer. Cc: Kees Cook Cc: Laura Abbott Cc: Nishanth Menon Cc: Richard Woodruff Cc: Russell King Cc: Tero Kristo Acked-by: Nicolas Pitre Cc: stable@vger.kernel.org # v4.0+ Fixes: 1e6b48116a95 ("ARM: mm: allow non-text sections to be non-executable") Signed-off-by: Tony Lindgren arch/arm/mach-omap2/sleep34xx.S | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit a5311d4d13df80bd71a9e47f9ecaf327f478fab1 Author: Tony Lindgren Date: Thu Jan 14 12:20:47 2016 -0800 ARM: OMAP2+: Fix save_secure_ram_context for rodata We don't want to write to .text and we can move save_secure_ram_context into .data as it all gets copied into SRAM anyways. Cc: Kees Cook Cc: Laura Abbott Cc: Nishanth Menon Cc: Richard Woodruff Cc: Russell King Cc: Sergei Shtylyov Cc: Tero Kristo Acked-by: Nicolas Pitre Cc: stable@vger.kernel.org # v4.0+ Fixes: 1e6b48116a95 ("ARM: mm: allow non-text sections to be non-executable") Signed-off-by: Tony Lindgren arch/arm/mach-omap2/sleep34xx.S | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit eeaf9646aca89d097861caa24d9818434e48810e Author: Tony Lindgren Date: Thu Jan 14 12:20:47 2016 -0800 ARM: OMAP2+: Fix l2dis_3630 for rodata We don't want to write to .text section. Let's move l2dis_3630 to .data and access it via a pointer. For calculating the offset, let's optimize out the add and do it in ldr/str as suggested by Nicolas Pitre . Cc: Kees Cook Cc: Laura Abbott Cc: Nishanth Menon Cc: Richard Woodruff Cc: Russell King Cc: Tero Kristo Cc: stable@vger.kernel.org # v4.0+ Acked-by: Nicolas Pitre Cc: stable@vger.kernel.org # v4.0+ Fixes: 1e6b48116a95 ("ARM: mm: allow non-text sections to be non-executable") Signed-off-by: Tony Lindgren arch/arm/mach-omap2/sleep34xx.S | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) commit d9db59103305eb5ec2a86369f32063e9921b6ac5 Author: Tony Lindgren Date: Thu Jan 14 12:20:47 2016 -0800 ARM: OMAP2+: Fix wait_dll_lock_timed for rodata We don't want to be writing to .text so it can be set rodata. Fix error "Unable to handle kernel paging request at virtual address c012396c" in wait_dll_lock_timed if CONFIG_DEBUG_RODATA is selected. As these counters are for debugging only and unused, we can just remove them. Cc: Kees Cook Cc: Laura Abbott Cc: Nishanth Menon Cc: Richard Woodruff Cc: Russell King Cc: Tero Kristo Acked-by: Nicolas Pitre Cc: stable@vger.kernel.org # v4.0+ Fixes: 1e6b48116a95 ("ARM: mm: allow non-text sections to be non-executable") Signed-off-by: Tony Lindgren arch/arm/mach-omap2/sleep34xx.S | 22 ---------------------- 1 file changed, 22 deletions(-) commit 79b134a22b6fc45f48bcc1c27d6bf05b3ede5e06 Author: David Sterba Date: Fri Jan 22 17:16:18 2016 +0100 btrfs: tweak free space tree bitmap allocation The requested bitmap size varies, observed numbers were < 4K up to 16K. Using vmalloc unconditionally would be too heavy, we'll try contiguous allocations first and fall back to vmalloc if there's no contig memory. Signed-off-by: David Sterba fs/btrfs/free-space-tree.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) commit 6d45c042f35ea9b27bf946380f74ff75d32280c9 Merge: 6272dcc 082fa37 Author: Trond Myklebust Date: Fri Jan 22 11:02:36 2016 -0500 Merge branch 'bugfixes' * bugfixes: pNFS/flexfiles: Fix an XDR encoding bug in layoutreturn pNFS/flexfiles: Improve merging of errors in LAYOUTRETURN commit 082fa37d1351a41afc491d44a1d095cb8d919aa2 Author: Trond Myklebust Date: Thu Jan 21 15:39:40 2016 -0500 pNFS/flexfiles: Fix an XDR encoding bug in layoutreturn We must not skip encoding the statistics, or the server will see an XDR encoding error. Signed-off-by: Trond Myklebust Cc: stable@vger.kernel.org # 4.0+ fs/nfs/flexfilelayout/flexfilelayout.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit cc78eb22885bba64445cde438ba098de0104920f Author: Alex Deucher Date: Fri Jan 22 00:13:15 2016 -0500 drm/radeon: properly byte swap vce firmware setup Firmware is LE. Need to properly byteswap some of the fields so they are interpreted correctly by the driver on BE systems. Reviewed-by: Christian König Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/vce_v1_0.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 9441f964f8e39374ab175e0a8fe870e1a2f02af1 Author: Alex Deucher Date: Wed Jan 20 12:15:09 2016 -0500 drm/amdgpu: add a message to indicate when powerplay is enabled (v2) Makes it clear to the user which power management path is in use. v2: make consistent with dpm Reviewed-by: Rex Zhu Reviewed-by: Tom St Denis Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/amd_powerplay.c | 5 +++++ 1 file changed, 5 insertions(+) commit 78d0e182b6c1f5336f6e8cbb197f403276dabc7f Author: Christian König Date: Tue Jan 19 12:48:14 2016 +0100 drm/amdgpu: fix amdgpu_bo_pin_restricted VRAM placing v2 We could pin BOs into invisible VRAM otherwise. v2: make logic more readable as suggested by Michel Cc: stable@vger.kernel.org Signed-off-by: Christian König Reviewed-by: Alex Deucher (v1) Reviewed-by: Rex Zhu (v1) Reviewed-by: Michel Dänzer drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 4b5ece24ce564176f8ad786ad02b681a373bc615 Author: Eric Huang Date: Tue Jan 19 14:28:56 2016 -0500 drm/amd/amdgpu: Improve amdgpu_dpm* macros to avoid unexpected result (v2) The two macros returns are values which probably are used in the expression of calculation. Without the brackets the result of the expression may be wrong. v2: agd: squash both patches together Reviewed-by: Alex Deucher Signed-off-by: Eric Huang drivers/gpu/drm/amd/amdgpu/amdgpu.h | 44 ++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 22 deletions(-) commit 8bb5ef79bc0f4016ecf79e8dce6096a3c63603e4 Author: Tejun Heo Date: Thu Jan 21 15:32:15 2016 -0500 cgroup: make sure a parent css isn't freed before its children There are three subsystem callbacks in css shutdown path - css_offline(), css_released() and css_free(). Except for css_released(), cgroup core didn't guarantee the order of invocation. css_offline() or css_free() could be called on a parent css before its children. This behavior is unexpected and led to bugs in cpu and memory controller. The previous patch updated ordering for css_offline() which fixes the cpu controller issue. While there currently isn't a known bug caused by misordering of css_free() invocations, let's fix it too for consistency. css_free() ordering can be trivially fixed by moving putting of the parent css below css_free() invocation. Signed-off-by: Tejun Heo Cc: Peter Zijlstra kernel/cgroup.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit aa226ff4a1ce79f229c6b7a4c0a14e17fececd01 Author: Tejun Heo Date: Thu Jan 21 15:31:11 2016 -0500 cgroup: make sure a parent css isn't offlined before its children There are three subsystem callbacks in css shutdown path - css_offline(), css_released() and css_free(). Except for css_released(), cgroup core didn't guarantee the order of invocation. css_offline() or css_free() could be called on a parent css before its children. This behavior is unexpected and led to bugs in cpu and memory controller. This patch updates offline path so that a parent css is never offlined before its children. Each css keeps online_cnt which reaches zero iff itself and all its children are offline and offline_css() is invoked only after online_cnt reaches zero. This fixes the memory controller bug and allows the fix for cpu controller. Signed-off-by: Tejun Heo Reported-and-tested-by: Christian Borntraeger Reported-by: Brian Christiansen Link: http://lkml.kernel.org/g/5698A023.9070703@de.ibm.com Link: http://lkml.kernel.org/g/CAKB58ikDkzc8REt31WBkD99+hxNzjK4+FBmhkgS+NVrC9vjMSg@mail.gmail.com Cc: Heiko Carstens Cc: Peter Zijlstra Cc: stable@vger.kernel.org include/linux/cgroup-defs.h | 6 ++++++ kernel/cgroup.c | 22 +++++++++++++++++----- 2 files changed, 23 insertions(+), 5 deletions(-) commit e93ad19d05648397ef3bcb838d26aec06c245dc0 Author: Tejun Heo Date: Tue Jan 19 12:18:41 2016 -0500 cpuset: make mm migration asynchronous If "cpuset.memory_migrate" is set, when a process is moved from one cpuset to another with a different memory node mask, pages in used by the process are migrated to the new set of nodes. This was performed synchronously in the ->attach() callback, which is synchronized against process management. Recently, the synchronization was changed from per-process rwsem to global percpu rwsem for simplicity and optimization. Combined with the synchronous mm migration, this led to deadlocks because mm migration could schedule a work item which may in turn try to create a new worker blocking on the process management lock held from cgroup process migration path. This heavy an operation shouldn't be performed synchronously from that deep inside cgroup migration in the first place. This patch punts the actual migration to an ordered workqueue and updates cgroup process migration and cpuset config update paths to flush the workqueue after all locks are released. This way, the operations still seem synchronous to userland without entangling mm migration with process management synchronization. CPU hotplug can also invoke mm migration but there's no reason for it to wait for mm migrations and thus doesn't synchronize against their completions. Signed-off-by: Tejun Heo Reported-and-tested-by: Christian Borntraeger Cc: stable@vger.kernel.org # v4.4+ include/linux/cpuset.h | 6 +++++ kernel/cgroup.c | 2 ++ kernel/cpuset.c | 71 ++++++++++++++++++++++++++++++++++---------------- 3 files changed, 57 insertions(+), 22 deletions(-) commit 1dff76b92f69051e579bdc131e01500da9fa2a91 Author: Gavin Guo Date: Wed Jan 20 12:36:58 2016 +0800 sched/numa: Fix use-after-free bug in the task_numa_compare The following message can be observed on the Ubuntu v3.13.0-65 with KASan backported: ================================================================== BUG: KASan: use after free in task_numa_find_cpu+0x64c/0x890 at addr ffff880dd393ecd8 Read of size 8 by task qemu-system-x86/3998900 ============================================================================= BUG kmalloc-128 (Tainted: G B ): kasan: bad access detected ----------------------------------------------------------------------------- INFO: Allocated in task_numa_fault+0xc1b/0xed0 age=41980 cpu=18 pid=3998890 __slab_alloc+0x4f8/0x560 __kmalloc+0x1eb/0x280 task_numa_fault+0xc1b/0xed0 do_numa_page+0x192/0x200 handle_mm_fault+0x808/0x1160 __do_page_fault+0x218/0x750 do_page_fault+0x1a/0x70 page_fault+0x28/0x30 SyS_poll+0x66/0x1a0 system_call_fastpath+0x1a/0x1f INFO: Freed in task_numa_free+0x1d2/0x200 age=62 cpu=18 pid=0 __slab_free+0x2ab/0x3f0 kfree+0x161/0x170 task_numa_free+0x1d2/0x200 finish_task_switch+0x1d2/0x210 __schedule+0x5d4/0xc60 schedule_preempt_disabled+0x40/0xc0 cpu_startup_entry+0x2da/0x340 start_secondary+0x28f/0x360 Call Trace: [] dump_stack+0x45/0x56 [] print_trailer+0xfd/0x170 [] object_err+0x36/0x40 [] kasan_report_error+0x1e9/0x3a0 [] kasan_report+0x40/0x50 [] ? task_numa_find_cpu+0x64c/0x890 [] __asan_load8+0x69/0xa0 [] ? find_next_bit+0xd8/0x120 [] task_numa_find_cpu+0x64c/0x890 [] task_numa_migrate+0x4ac/0x7b0 [] numa_migrate_preferred+0xb3/0xc0 [] task_numa_fault+0xb88/0xed0 [] do_numa_page+0x192/0x200 [] handle_mm_fault+0x808/0x1160 [] ? sched_clock_cpu+0x10d/0x160 [] ? native_load_tls+0x82/0xa0 [] __do_page_fault+0x218/0x750 [] ? hrtimer_try_to_cancel+0x76/0x160 [] ? schedule_hrtimeout_range_clock.part.24+0xf7/0x1c0 [] do_page_fault+0x1a/0x70 [] page_fault+0x28/0x30 [] ? do_sys_poll+0x1c4/0x6d0 [] ? enqueue_task_fair+0x4b6/0xaa0 [] ? sched_clock+0x9/0x10 [] ? resched_task+0x7a/0xc0 [] ? check_preempt_curr+0xb3/0x130 [] ? poll_select_copy_remaining+0x170/0x170 [] ? wake_up_state+0x10/0x20 [] ? drop_futex_key_refs.isra.14+0x1f/0x90 [] ? futex_requeue+0x3de/0xba0 [] ? do_futex+0xbe/0x8f0 [] ? read_tsc+0x9/0x20 [] ? ktime_get_ts+0x12d/0x170 [] ? timespec_add_safe+0x59/0xe0 [] SyS_poll+0x66/0x1a0 [] system_call_fastpath+0x1a/0x1f As commit 1effd9f19324 ("sched/numa: Fix unsafe get_task_struct() in task_numa_assign()") points out, the rcu_read_lock() cannot protect the task_struct from being freed in the finish_task_switch(). And the bug happens in the process of calculation of imp which requires the access of p->numa_faults being freed in the following path: do_exit() current->flags |= PF_EXITING; release_task() ~~delayed_put_task_struct()~~ schedule() ... ... rq->curr = next; context_switch() finish_task_switch() put_task_struct() __put_task_struct() task_numa_free() The fix here to get_task_struct() early before end of dst_rq->lock to protect the calculation process and also put_task_struct() in the corresponding point if finally the dst_rq->curr somehow cannot be assigned. Additional credit to Liang Chen who helped fix the error logic and add the put_task_struct() to the place it missed. Signed-off-by: Gavin Guo Signed-off-by: Peter Zijlstra (Intel) Cc: Andrea Arcangeli Cc: Andrew Morton Cc: Hugh Dickins Cc: Linus Torvalds Cc: Mel Gorman Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Cc: jay.vosburgh@canonical.com Cc: liang.chen@canonical.com Link: http://lkml.kernel.org/r/1453264618-17645-1-git-send-email-gavin.guo@canonical.com Signed-off-by: Ingo Molnar kernel/sched/fair.c | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) commit cbfe74a753e877b49dc54e9b04d5d42230ca0aed Author: Vineet Gupta Date: Fri Jan 8 12:29:10 2016 +0530 ARCv2: STAR 9000950267: Handle return from intr to Delay Slot #2 Returning to delay slot, riding an interrupti, had one loose end. AUX_USER_SP used for restoring user mode SP upon RTIE was not being setup from orig task's saved value, causing task to use wrong SP, leading to ProtV errors. The reason being: - INTERRUPT_EPILOGUE returns to a kernel trampoline, thus not expected to restore it - EXCEPTION_EPILOGUE is not used at all Fix that by restoring AUX_USER_SP explicitly in the trampoline. This was broken in the original workaround, but the error scenarios got reduced considerably since v3.14 due to following: 1. The Linuxthreads.old based userspace at the time caused many more exceptions in delay slot than the current NPTL based one. Infact with current userspace the error doesn't happen at all. 2. Return from interrupt (delay slot or otherwise) doesn't get exercised much after commit 4de0e52867d8 ("Really Re-enable interrupts to avoid deadlocks") since IRQ_ACTIVE.active being clear means most returns are as if from pure kernel (even for active interrupts) Infact the issue only happened in an experimental branch where I was tinkering with reverted 4de0e52867d8 Cc: stable@kernel.org # v4.2+ Fixes: 4255b07f2c9c ("ARCv2: STAR 9000793984: Handle return from intr to Delay Slot") Signed-off-by: Vineet Gupta arch/arc/kernel/entry-arcv2.S | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) commit dd4e17ab704269bce71402285f5e8b9ac24b1eff Author: John Stultz Date: Thu Jan 21 15:03:34 2016 -0800 ntp: Fix ADJ_SETOFFSET being used w/ ADJ_NANO Recently, in commit 37cf4dc3370f I forgot to check if the timeval being passed was actually a timespec (as is signaled with ADJ_NANO). This resulted in that patch breaking ADJ_SETOFFSET users who set ADJ_NANO, by rejecting valid timespecs that were compared with valid timeval ranges. This patch addresses this by checking for the ADJ_NANO flag and using the timepsec check instead in that case. Reported-by: Harald Hoyer Reported-by: Kay Sievers Fixes: 37cf4dc3370f "time: Verify time values in adjtimex ADJ_SETOFFSET to avoid overflow" Signed-off-by: John Stultz Cc: Sasha Levin Cc: Richard Cochran Cc: Prarit Bhargava Cc: David Herrmann Link: http://lkml.kernel.org/r/1453417415-19110-2-git-send-email-john.stultz@linaro.org Signed-off-by: Thomas Gleixner kernel/time/ntp.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit 00affcac69c7aae6c2cfcbc71f724e1c16d0b445 Author: Arnd Bergmann Date: Sun Jan 17 01:02:56 2016 +0100 soc: qcom/spm: shut up uninitialized variable warning gcc warns about the 'found' variable possibly being used uninitialized: drivers/soc/qcom/spm.c: In function 'spm_dev_probe': drivers/soc/qcom/spm.c:305:5: error: 'found' may be used uninitialized in this function [-Werror=maybe-uninitialized] However, the code is correct because we know that there is always at least one online CPU. This initializes the 'found' variable to zero before the loop so the compiler knows it does not have to warn about it. Signed-off-by: Arnd Bergmann drivers/soc/qcom/spm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8cce83ba5062a301a09e0920df813bbbdd3e9dbf Author: David Sterba Date: Fri Jan 22 10:28:24 2016 +0100 btrfs: tests: switch to GFP_KERNEL There's no reason to do GFP_NOFS in tests, it's not data-heavy and memory allocation failures would affect only developers or testers. Signed-off-by: David Sterba fs/btrfs/tests/btrfs-tests.c | 10 +++++----- fs/btrfs/tests/extent-io-tests.c | 12 ++++++------ fs/btrfs/tests/inode-tests.c | 8 ++++---- 3 files changed, 15 insertions(+), 15 deletions(-) commit 3e1e21c7bfcfa9bf06c07f48a13faca2f62b3339 Merge: 0a13dae a9cf828 Author: Linus Torvalds Date: Thu Jan 21 19:58:02 2016 -0800 Merge branch 'for-4.5/nvme' of git://git.kernel.dk/linux-block Pull NVMe updates from Jens Axboe: "Last branch for this series is the nvme changes. It's in a separate branch to avoid splitting too much between core and NVMe changes, since NVMe is still helping drive some blk-mq changes. That said, not a huge amount of core changes in here. The grunt of the work is the continued split of the code" * 'for-4.5/nvme' of git://git.kernel.dk/linux-block: (67 commits) uapi: update install list after nvme.h rename NVMe: Export NVMe attributes to sysfs group NVMe: Shutdown controller only for power-off NVMe: IO queue deletion re-write NVMe: Remove queue freezing on resets NVMe: Use a retryable error code on reset NVMe: Fix admin queue ring wrap nvme: make SG_IO support optional nvme: fixes for NVME_IOCTL_IO_CMD on the char device nvme: synchronize access to ctrl->namespaces nvme: Move nvme_freeze/unfreeze_queues to nvme core PCI/AER: include header file NVMe: Export namespace attributes to sysfs NVMe: Add pci error handlers block: remove REQ_NO_TIMEOUT flag nvme: merge iod and cmd_info nvme: meta_sg doesn't have to be an array nvme: properly free resources for cancelled command nvme: simplify completion handling nvme: special case AEN requests ... commit 0a13daedf7ffc71b0c374a036355da7fddb20d6d Merge: 6412035 a7fd9a4 Author: Linus Torvalds Date: Thu Jan 21 19:01:55 2016 -0800 Merge branch 'for-4.5/lightnvm' of git://git.kernel.dk/linux-block Pull lightnvm fixes and updates from Jens Axboe: "This should have been part of the drivers branch, but it arrived a bit late and wasn't based on the official core block driver branch. So they got a small scolding, but got a pass since it's still new. Hence it's in a separate branch. This is mostly pure fixes, contained to lightnvm/, and minor feature additions" * 'for-4.5/lightnvm' of git://git.kernel.dk/linux-block: (26 commits) lightnvm: ensure that nvm_dev_ops can be used without CONFIG_NVM lightnvm: introduce factory reset lightnvm: use system block for mm initialization lightnvm: introduce ioctl to initialize device lightnvm: core on-disk initialization lightnvm: introduce mlc lower page table mappings lightnvm: add mccap support lightnvm: manage open and closed blocks separately lightnvm: fix missing grown bad block type lightnvm: reference rrpc lun in rrpc block lightnvm: introduce nvm_submit_ppa lightnvm: move rq->error to nvm_rq->error lightnvm: support multiple ppas in nvm_erase_ppa lightnvm: move the pages per block check out of the loop lightnvm: sectors first in ppa list lightnvm: fix locking and mempool in rrpc_lun_gc lightnvm: put block back to gc list on its reclaim fail lightnvm: check bi_error in gc lightnvm: return the get_bb_tbl return value lightnvm: refactor end_io functions for sync ... commit 641203549a21ba6a701aecd05c3dfc969ec670cc Merge: 404a474 e93d12a Author: Linus Torvalds Date: Thu Jan 21 18:19:38 2016 -0800 Merge branch 'for-4.5/drivers' of git://git.kernel.dk/linux-block Pull block driver updates from Jens Axboe: "This is the block driver pull request for 4.5, with the exception of NVMe, which is in a separate branch and will be posted after this one. This pull request contains: - A set of bcache stability fixes, which have been acked by Kent. These have been used and tested for more than a year by the community, so it's about time that they got in. - A set of drbd updates from the drbd team (Andreas, Lars, Philipp) and Markus Elfring, Oleg Drokin. - A set of fixes for xen blkback/front from the usual suspects, (Bob, Konrad) as well as community based fixes from Kiri, Julien, and Peng. - A 2038 time fix for sx8 from Shraddha, with a fix from me. - A small mtip32xx cleanup from Zhu Yanjun. - A null_blk division fix from Arnd" * 'for-4.5/drivers' of git://git.kernel.dk/linux-block: (71 commits) null_blk: use sector_div instead of do_div mtip32xx: restrict variables visible in current code module xen/blkfront: Fix crash if backend doesn't follow the right states. xen/blkback: Fix two memory leaks. xen/blkback: make st_ statistics per ring xen/blkfront: Handle non-indirect grant with 64KB pages xen-blkfront: Introduce blkif_ring_get_request xen-blkback: clear PF_NOFREEZE for xen_blkif_schedule() xen/blkback: Free resources if connect_ring failed. xen/blocks: Return -EXX instead of -1 xen/blkback: make pool of persistent grants and free pages per-queue xen/blkback: get the number of hardware queues/rings from blkfront xen/blkback: pseudo support for multi hardware queues/rings xen/blkback: separate ring information out of struct xen_blkif xen/blkfront: correct setting for xen_blkif_max_ring_order xen/blkfront: make persistent grants pool per-queue xen/blkfront: Remove duplicate setting of ->xbdev. xen/blkfront: Cleanup of comments, fix unaligned variables, and syntax errors. xen/blkfront: negotiate number of queues/rings to be used with backend xen/blkfront: split per device io_lock ... commit 6f16886b7c050c934305b1f285c3458ff1b6e4e4 Author: Sudeep Holla Date: Thu Jan 21 11:19:29 2016 +0000 cpuidle: fix fallback mechanism for suspend to idle in absence of enter_freeze Commit 51164251f5c3 "sched / idle: Drop default_idle_call() fallback from call_cpuidle()" made find_deepest_state() return non-negative value and check all the states with index > 0. Also as a result, find_deepest_state() returns 0 even when enter_freeze callbacks are not implemented and enter_freeze_proper() is called which ends up crashing the kernel. This patch updates the check for index > 0 in cpuidle_enter_freeze and cpuidle_idle_call(when idle_should_freeze is true) to restore the suspend-to-idle functionality in absence of enter_freeze callback. Fixes: 51164251f5c3 "sched / idle: Drop default_idle_call() fallback from call_cpuidle()" Signed-off-by: Sudeep Holla Signed-off-by: Rafael J. Wysocki drivers/cpuidle/cpuidle.c | 2 +- kernel/sched/idle.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 0106ef5146f9e89e4dc9354f308ecaddb9617310 Author: Marek Szyprowski Date: Wed Jan 20 10:13:42 2016 +0100 PM / domains: fix lockdep issue for all subdomains During genpd_poweron, genpd->lock is acquired recursively for each parent (master) domain, which are separate objects. This confuses lockdep, which considers every operation on genpd->lock as being done on the same lock class. This leads to the following false positive warning: ============================================= [ INFO: possible recursive locking detected ] 4.4.0-rc4-xu3s #32 Not tainted --------------------------------------------- swapper/0/1 is trying to acquire lock: (&genpd->lock){+.+...}, at: [] __genpd_poweron+0x64/0x108 but task is already holding lock: (&genpd->lock){+.+...}, at: [] genpd_dev_pm_attach+0x168/0x1b8 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&genpd->lock); lock(&genpd->lock); *** DEADLOCK *** May be due to missing lock nesting notation 3 locks held by swapper/0/1: #0: (&dev->mutex){......}, at: [] __driver_attach+0x48/0x98 #1: (&dev->mutex){......}, at: [] __driver_attach+0x58/0x98 #2: (&genpd->lock){+.+...}, at: [] genpd_dev_pm_attach+0x168/0x1b8 stack backtrace: CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.4.0-rc4-xu3s #32 Hardware name: SAMSUNG EXYNOS (Flattened Device Tree) [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [] (show_stack) from [] (dump_stack+0x84/0xc4) [] (dump_stack) from [] (__lock_acquire+0x1f88/0x215c) [] (__lock_acquire) from [] (lock_acquire+0xa4/0xd0) [] (lock_acquire) from [] (mutex_lock_nested+0x70/0x4d4) [] (mutex_lock_nested) from [] (__genpd_poweron+0x64/0x108) [] (__genpd_poweron) from [] (genpd_dev_pm_attach+0x170/0x1b8) [] (genpd_dev_pm_attach) from [] (platform_drv_probe+0x2c/0xac) [] (platform_drv_probe) from [] (driver_probe_device+0x208/0x2fc) [] (driver_probe_device) from [] (__driver_attach+0x94/0x98) [] (__driver_attach) from [] (bus_for_each_dev+0x68/0x9c) [] (bus_for_each_dev) from [] (bus_add_driver+0x1a0/0x218) [] (bus_add_driver) from [] (driver_register+0x78/0xf8) [] (driver_register) from [] (exynos_drm_register_drivers+0x28/0x74) [] (exynos_drm_register_drivers) from [] (exynos_drm_init+0x6c/0xc4) [] (exynos_drm_init) from [] (do_one_initcall+0x90/0x1dc) [] (do_one_initcall) from [] (kernel_init_freeable+0x158/0x1f8) [] (kernel_init_freeable) from [] (kernel_init+0x8/0xe8) [] (kernel_init) from [] (ret_from_fork+0x14/0x24) This patch replaces mutex_lock with mutex_lock_nested() and uses recursion depth to annotate each genpd->lock operation with separate lockdep subclass. Reported-by: Anand Moon Signed-off-by: Marek Szyprowski Tested-by: Anand Moon Tested-by: Tobias Jakobi Acked-by: Ulf Hansson Signed-off-by: Rafael J. Wysocki drivers/base/power/domain.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) commit b26a95d435190a44483f7fbad1328f825b7901d0 Merge: 009f773 809d951 Author: Dmitry Torokhov Date: Thu Jan 21 17:27:27 2016 -0800 Merge branch 'next' into for-linus Prepare second round of input updates for 4.5 merge window. commit b1b1e15ef6b80facf76d6757649dfd7295eda29f Author: Tariq Saeed Date: Thu Jan 21 16:40:39 2016 -0800 ocfs2: NFS hangs in __ocfs2_cluster_lock due to race with ocfs2_unblock_lock NFS on a 2 node ocfs2 cluster each node exporting dir. The lock causing the hang is the global bit map inode lock. Node 1 is master, has the lock granted in PR mode; Node 2 is in the converting list (PR -> EX). There are no holders of the lock on the master node so it should downconvert to NL and grant EX to node 2 but that does not happen. BLOCKED + QUEUED in lock res are set and it is on osb blocked list. Threads are waiting in __ocfs2_cluster_lock on BLOCKED. One thread wants EX, rest want PR. So it is as though the downconvert thread needs to be kicked to complete the conv. The hang is caused by an EX req coming into __ocfs2_cluster_lock on the heels of a PR req after it sets BUSY (drops l_lock, releasing EX thread), forcing the incoming EX to wait on BUSY without doing anything. PR has called ocfs2_dlm_lock, which sets the node 1 lock from NL -> PR, queues ast. At this time, upconvert (PR ->EX) arrives from node 2, finds conflict with node 1 lock in PR, so the lock res is put on dlm thread's dirty listt. After ret from ocf2_dlm_lock, PR thread now waits behind EX on BUSY till awoken by ast. Now it is dlm_thread that serially runs dlm_shuffle_lists, ast, bast, in that order. dlm_shuffle_lists ques a bast on behalf of node 2 (which will be run by dlm_thread right after the ast). ast does its part, sets UPCONVERT_FINISHING, clears BUSY and wakes its waiters. Next, dlm_thread runs bast. It sets BLOCKED and kicks dc thread. dc thread runs ocfs2_unblock_lock, but since UPCONVERT_FINISHING set, skips doing anything and reques. Inside of __ocfs2_cluster_lock, since EX has been waiting on BUSY ahead of PR, it wakes up first, finds BLOCKED set and skips doing anything but clearing UPCONVERT_FINISHING (which was actually "meant" for the PR thread), and this time waits on BLOCKED. Next, the PR thread comes out of wait but since UPCONVERT_FINISHING is not set, it skips updating the l_ro_holders and goes straight to wait on BLOCKED. So there, we have a hang! Threads in __ocfs2_cluster_lock wait on BLOCKED, lock res in osb blocked list. Only when dc thread is awoken, it will run ocfs2_unblock_lock and things will unhang. One way to fix this is to wake the dc thread on the flag after clearing UPCONVERT_FINISHING Orabug: 20933419 Signed-off-by: Tariq Saeed Signed-off-by: Santosh Shilimkar Reviewed-by: Wengang Wang Reviewed-by: Mark Fasheh Cc: Joel Becker Cc: Junxiao Bi Reviewed-by: Joseph Qi Cc: Eric Ren Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/dlmglue.c | 6 ++++++ 1 file changed, 6 insertions(+) commit ff7d080e528d8faf5bc175fd9909889af03e1566 Author: Sudip Mukherjee Date: Thu Jan 21 16:40:36 2016 -0800 reiserfs: fix dereference of ERR_PTR reiserfs_iget() returns either NULL or error code in ERR_PTR. And we were only checking for NULL, so in case of some other error we will try to dereference the ERR_PTR(-errno) thinking it to be a valid pointer. Signed-off-by: Sudip Mukherjee Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/reiserfs/super.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c2594bc37f4464bc74f2c119eb3269a643400aa0 Author: Jaewon Kim Date: Thu Jan 21 16:55:07 2016 -0800 ratelimit: fix bug in time interval by resetting right begin time rs->begin in ratelimit is set in two cases. 1) when rs->begin was not initialized 2) when rs->interval was passed For case #2, current ratelimit sets the begin to 0. This incurrs improper suppression. The begin value will be set in the next ratelimit call by 1). Then the time interval check will be always false, and rs->printed will not be initialized. Although enough time passed, ratelimit may return 0 if rs->printed is not less than rs->burst. To reset interval properly, begin should be jiffies rather than 0. For an example code below: static DEFINE_RATELIMIT_STATE(mylimit, 1, 1); for (i = 1; i <= 10; i++) { if (__ratelimit(&mylimit)) printk("ratelimit test count %d\n", i); msleep(3000); } test result in the current code shows suppression even there is 3 seconds sleep. [ 78.391148] ratelimit test count 1 [ 81.295988] ratelimit test count 2 [ 87.315981] ratelimit test count 4 [ 93.336267] ratelimit test count 6 [ 99.356031] ratelimit test count 8 [ 105.376367] ratelimit test count 10 Signed-off-by: Jaewon Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/ratelimit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 16fd0fe4aa92d0d621ecfe21de86f7fdcfa41947 Author: yalin wang Date: Thu Jan 21 16:40:30 2016 -0800 mm: fix kernel crash in khugepaged thread This crash is caused by NULL pointer deference, in page_to_pfn() marco, when page == NULL : Unable to handle kernel NULL pointer dereference at virtual address 00000000 Internal error: Oops: 94000006 [#1] SMP Modules linked in: CPU: 1 PID: 26 Comm: khugepaged Tainted: G W 4.3.0-rc6-next-20151022ajb-00001-g32f3386-dirty #3 PC is at khugepaged+0x378/0x1af8 LR is at khugepaged+0x418/0x1af8 Process khugepaged (pid: 26, stack limit = 0xffffffc079638020) Call trace: khugepaged+0x378/0x1af8 kthread+0xdc/0xf4 ret_from_fork+0xc/0x40 Code: 35001700 f0002c60 aa0703e3 f9009fa0 (f94000e0) ---[ end trace 637503d8e28ae69e ]--- Kernel panic - not syncing: Fatal exception CPU2: stopping CPU: 2 PID: 0 Comm: swapper/2 Tainted: G D W 4.3.0-rc6-next-20151022ajb-00001-g32f3386-dirty #3 Hardware name: linux,dummy-virt (DT) [akpm@linux-foundation.org: fix fat-fingered merge resolution] Signed-off-by: yalin wang Acked-by: Vlastimil Babka Acked-by: Kirill A. Shutemov Acked-by: David Rientjes Cc: Cyrill Gorcunov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/trace/events/huge_memory.h | 12 ++++++------ mm/huge_memory.c | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) commit 7162a1e87b3e380133dadc7909081bb70d0a7041 Author: Kirill A. Shutemov Date: Thu Jan 21 16:40:27 2016 -0800 mm: fix mlock accouting Tetsuo Handa reported underflow of NR_MLOCK on munlock. Testcase: #include #include #include #define BASE ((void *)0x400000000000) #define SIZE (1UL << 21) int main(int argc, char *argv[]) { void *addr; system("grep Mlocked /proc/meminfo"); addr = mmap(BASE, SIZE, PROT_READ | PROT_WRITE, MAP_ANONYMOUS | MAP_PRIVATE | MAP_LOCKED | MAP_FIXED, -1, 0); if (addr == MAP_FAILED) printf("mmap() failed\n"), exit(1); munmap(addr, SIZE); system("grep Mlocked /proc/meminfo"); return 0; } It happens on munlock_vma_page() due to unfortunate choice of nr_pages data type: __mod_zone_page_state(zone, NR_MLOCK, -nr_pages); For unsigned int nr_pages, implicitly casted to long in __mod_zone_page_state(), it becomes something around UINT_MAX. munlock_vma_page() usually called for THP as small pages go though pagevec. Let's make nr_pages signed int. Similar fixes in 6cdb18ad98a4 ("mm/vmstat: fix overflow in mod_zone_page_state()") used `long' type, but `int' here is OK for a count of the number of sub-pages in a huge page. Fixes: ff6a6da60b89 ("mm: accelerate munlock() treatment of THP pages") Signed-off-by: Kirill A. Shutemov Reported-by: Tetsuo Handa Tested-by: Tetsuo Handa Cc: Michel Lespinasse Acked-by: Michal Hocko Cc: [4.4+] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/mlock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b6ec57f4b92e9bae4617f7d98a054d45370284bb Author: Kirill A. Shutemov Date: Thu Jan 21 16:40:25 2016 -0800 thp: change pmd_trans_huge_lock() interface to return ptl After THP refcounting rework we have only two possible return values from pmd_trans_huge_lock(): success and failure. Return-by-pointer for ptl doesn't make much sense in this case. Let's convert pmd_trans_huge_lock() to return ptl on success and NULL on failure. Signed-off-by: Kirill A. Shutemov Suggested-by: Linus Torvalds Cc: Minchan Kim Acked-by: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/proc/task_mmu.c | 12 ++++++++---- include/linux/huge_mm.h | 16 ++++++++-------- mm/huge_memory.c | 24 ++++++++++++++---------- mm/memcontrol.c | 6 ++++-- mm/mincore.c | 3 ++- 5 files changed, 36 insertions(+), 25 deletions(-) commit 5610b1254e3689b6ef8ebe2db260709a74da06c8 Author: Huacai Chen Date: Thu Jan 21 21:09:50 2016 +0800 MIPS: hpet: Choose a safe value for the ETIME check This patch is borrowed from x86 hpet driver and explaind below: Due to the overly intelligent design of HPETs, we need to workaround the problem that the compare value which we write is already behind the actual counter value at the point where the value hits the real compare register. This happens for two reasons: 1) We read out the counter, add the delta and write the result to the compare register. When a NMI hits between the read out and the write then the counter can be ahead of the event already. 2) The write to the compare register is delayed by up to two HPET cycles in AMD chipsets. We can work around this by reading back the compare register to make sure that the written value has hit the hardware. But that is bad performance wise for the normal case where the event is far enough in the future. As we already know that the write can be delayed by up to two cycles we can avoid the read back of the compare register completely if we make the decision whether the delta has elapsed already or not based on the following calculation: cmp = event - actual_count; If cmp is less than 64 HPET clock cycles, then we decide that the event has happened already and return -ETIME. That covers the above #1 and #2 problems which would cause a wait for HPET wraparound (~306 seconds). Signed-off-by: Huacai Chen Cc: Aurelien Jarno Cc: Steven J. Hill Cc: Fuxin Zhang Cc: Zhangjin Wu Cc: Huacai Chen Cc: linux-mips@linux-mips.org Cc: stable@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/12162/ Signed-off-by: Ralf Baechle arch/mips/loongson64/loongson-3/hpet.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 5754843225f78ac7cbe142a6899890a9733a5a5d Author: Huacai Chen Date: Thu Jan 21 21:09:49 2016 +0800 MIPS: Loongson-3: Fix SMP_ASK_C0COUNT IPI handler When Core-0 handle SMP_ASK_C0COUNT IPI, we should make other cores to see the result as soon as possible (especially when Store-Fill-Buffer is enabled). Otherwise, C0_Count syncronization makes no sense. BTW, array is more suitable than per-cpu variable for syncronization, and there is a corner case should be avoid: C0_Count of Core-0 can be really 0. Signed-off-by: Huacai Chen Cc: Aurelien Jarno Cc: Steven J. Hill Cc: Fuxin Zhang Cc: Zhangjin Wu Cc: Huacai Chen Cc: linux-mips@linux-mips.org Cc: Patchwork: https://patchwork.linux-mips.org/patch/12160/ Signed-off-by: Ralf Baechle arch/mips/loongson64/loongson-3/smp.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) commit 5188129b8c9f58ba089bfd3809a163a8c087c797 Author: Huacai Chen Date: Thu Jan 21 21:09:48 2016 +0800 MIPS: Loongson-3: Improve -march option and move it to Platform If GCC >= 4.9 and Binutils >=2.25, we use -march=loongson3a, otherwise we use -march=mips64r2, this can slightly improve performance. Besides, arch/mips/loongson64/Platform is a better location rather than arch/ mips/Makefile. Signed-off-by: Huacai Chen Cc: Aurelien Jarno Cc: Steven J. Hill Cc: Fuxin Zhang Cc: Zhangjin Wu Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/12161/ Signed-off-by: Ralf Baechle arch/mips/Makefile | 10 ---------- arch/mips/loongson64/Platform | 21 +++++++++++++++++++++ 2 files changed, 21 insertions(+), 10 deletions(-) commit 6e52684467b2c135e07e638469cd1d78bd8286ac Author: Huacai Chen Date: Thu Jan 21 21:09:47 2016 +0800 MIPS: Cleanup the unused __arch_local_irq_restore() function In history, __arch_local_irq_restore() is only used by SMTC. However, SMTC support has been removed since 3.16, this patch remove the unused function. Signed-off-by: Huacai Chen Cc: Aurelien Jarno Cc: Steven J. Hill Cc: Fuxin Zhang Cc: Zhangjin Wu Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/12159/ Signed-off-by: Ralf Baechle arch/mips/include/asm/irqflags.h | 30 ------------------------------ arch/mips/lib/mips-atomic.c | 30 +----------------------------- 2 files changed, 1 insertion(+), 59 deletions(-) commit 03beaec80d57e7a540b1990188f8a97a076da6de Author: Allen Hubbe Date: Thu Jan 21 12:53:50 2016 -0500 NTB: Fix macro parameter conflict with field name If the parameter given to the macro is replaced throughout the macro as it is evaluated. The intent is that the macro parameter should replace the only the first parameter to container_of(). However, the way the macro was written, it would also inadvertantly replace a structure field name. If a parameter of any other name is given to the macro, it will fail to compile, if the structure does not contain a field of the same name. At worst, it will compile, and hide improper access of an unintended field in the structure. Change the macro parameter name, so it does not conflict with the structure field name. Signed-off-by: Allen Hubbe Acked-by: Dave Jiang Signed-off-by: Jon Mason drivers/ntb/hw/intel/ntb_hw_intel.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit a1b3695820aa490e58915d720a1438069813008b Author: Xiangliang Yu Date: Thu Jan 21 19:47:05 2016 +0800 NTB: Add support for AMD PCI-Express Non-Transparent Bridge This adds support for AMD's PCI-Express Non-Transparent Bridge (NTB) device on the Zeppelin platform. The driver connnects to the standard NTB sub-system interface, with modification to add hooks for power management in a separate patch. The AMD NTB device has 3 memory windows, 16 doorbell, 16 scratch-pad registers, and supports up to 16 PCIe lanes running a Gen3 speeds. Signed-off-by: Xiangliang Yu Reviewed-by: Allen Hubbe Signed-off-by: Jon Mason MAINTAINERS | 6 + drivers/ntb/hw/Kconfig | 1 + drivers/ntb/hw/Makefile | 1 + drivers/ntb/hw/amd/Kconfig | 7 + drivers/ntb/hw/amd/Makefile | 1 + drivers/ntb/hw/amd/ntb_hw_amd.c | 1143 +++++++++++++++++++++++++++++++++++++++ drivers/ntb/hw/amd/ntb_hw_amd.h | 217 ++++++++ 7 files changed, 1376 insertions(+) commit f0442df2156a2171e40f1643c60103e6333f4e7e Author: John Keeping Date: Thu Jan 21 18:19:34 2016 +0000 drm/rockchip: respect CONFIG_DRM_FBDEV_EMULATION If DRM_FBDEV_EMULATION is not selected in the config then we can save a bit of space by not including the framebuffer code. Signed-off-by: John Keeping drivers/gpu/drm/rockchip/Makefile | 3 ++- drivers/gpu/drm/rockchip/rockchip_drm_fbdev.h | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) commit 1a40b95374f680625318ab61d81958e949e0afe3 Author: Mike Frysinger Date: Mon Jan 18 06:32:30 2016 -0500 sparc: Fix system call tracing register handling. A system call trace trigger on entry allows the tracing process to inspect and potentially change the traced process's registers. Account for that by reloading the %g1 (syscall number) and %i0-%i5 (syscall argument) values. We need to be careful to revalidate the range of %g1, and reload the system call table entry it corresponds to into %l7. Reported-by: Mike Frysinger Signed-off-by: David S. Miller Tested-by: Mike Frysinger arch/sparc/kernel/entry.S | 17 +++++++++++++++++ arch/sparc/kernel/syscalls.S | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) commit c10910c323bb9e7fc53ba25c83d1adeb9fb20878 Author: David S. Miller Date: Thu Jan 21 15:51:17 2016 -0800 sparc: Hook up copy_file_range syscall. Signed-off-by: David S. Miller arch/sparc/include/uapi/asm/unistd.h | 3 ++- arch/sparc/kernel/systbls_32.S | 2 +- arch/sparc/kernel/systbls_64.S | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) commit 6a84f57241e1fb9fb6772256f538d1073359a32d Author: Gayatri Kammela Date: Thu Jan 21 14:02:39 2016 -0800 raid6/algos.c : bug fix : Add the missing definitions to the pq.h file Adding these pr_info and pr_err definitions so as to allow code to be compiled successfully for testing in userspace, since the printk has been replaced by pr_info and pr_err in algos.c Absence of these definitions result in the compilation errors such as ' undefined reference to `pr_info' ' ' undefined reference to `pr_err' ' Cc: NeilBrown Cc: Anton Blanchard Cc: Fenghua Yu Signed-off-by: Gayatri Kammela Signed-off-by: Shaohua Li include/linux/raid/pq.h | 2 ++ 1 file changed, 2 insertions(+) commit 117aa41e8020fe493bbb677ebe828c3a4b380185 Author: Al Viro Date: Thu Jan 21 17:41:23 2016 -0500 [regression] fix braino in fs/dlm/user.c it's "bugger off if we got ERR_PTR", not the other way round... Signed-off-by: Bob Peterson Signed-off-by: Al Viro fs/dlm/user.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4877be9019baaf1432f9117bff4873e4ad518d91 Author: Johannes Weiner Date: Thu Jan 21 15:56:28 2016 -0500 net: sock: remove dead cgroup methods from struct proto The cgroup methods are no longer used after baac50bbc3cd ("net: tcp_memcontrol: simplify linkage between socket and page counter"). The hunk to delete them was included in the original patch but must have gotten lost during conflict resolution on the way upstream. Fixes: baac50bbc3cd ("net: tcp_memcontrol: simplify linkage between socket and page counter") Signed-off-by: Johannes Weiner Signed-off-by: David S. Miller include/net/sock.h | 12 ------------ 1 file changed, 12 deletions(-) commit 4850d43143e72563556b9ba371e26b2b48599321 Author: Suman Anna Date: Mon Sep 14 18:37:12 2015 -0500 ARM: OMAP2+: Remove legacy mailbox device instantiation The legacy-style mailbox device creation is supported currently only for OMAP3, as all other SoCs are DT-boot only. Even on this SoC, there are no client drivers that utilize these mailbox devices. So, clean up the legacy-style mailbox device instantiation logic. The mailbox devices are already present and supported for the DT boot on OMAP3. Signed-off-by: Suman Anna Signed-off-by: Tony Lindgren arch/arm/mach-omap2/devices.c | 28 ---------------------------- 1 file changed, 28 deletions(-) commit cf19f3ab89de1c088387ce744b0d4723be35b068 Author: Keerthy Date: Fri Jul 17 16:08:02 2015 -0500 ARM: dts: AM4372: Add ti,mbox-send-noirq to wkup_m3 mailbox Add ti,mbox-send-noirq to wkup_m3 mailbox so that messages using wkup_m3 mailbox are sent without triggering any further interrupts. This is required to be able to send multiple messages to the WkupM3 after the mailbox usage logic adjustment in the wkup_m3_ipc driver. Signed-off-by: Keerthy Acked-by: Dave Gerlach [s-anna@ti.com: revise commit description] Signed-off-by: Suman Anna Signed-off-by: Tony Lindgren arch/arm/boot/dts/am4372.dtsi | 1 + 1 file changed, 1 insertion(+) commit 2800971f731e4491b71f44bf311452ab0f94a062 Author: Dave Gerlach Date: Fri Jul 17 16:08:01 2015 -0500 ARM: dts: AM33xx: Add ti,mbox-send-noirq to wkup_m3 mailbox Add ti,mbox-send-noirq to wkup_m3 mailbox so that messages using wkup_m3 mailbox are sent without triggering any further interrupts. This is needed to achieve lower power numbers during CPU idle on AM33xx. Signed-off-by: Dave Gerlach [s-anna@ti.com: revise commit description] Signed-off-by: Suman Anna Signed-off-by: Tony Lindgren arch/arm/boot/dts/am33xx.dtsi | 1 + 1 file changed, 1 insertion(+) commit 404a47410c26a115123885977053e9a1a4460929 Merge: eae2177 9fd4470 Author: Linus Torvalds Date: Thu Jan 21 13:02:41 2016 -0800 Merge branch 'uaccess' (batched user access infrastructure) Expose an interface to allow users to mark several accesses together as being user space accesses, allowing batching of the surrounding user space access markers (SMAP on x86, PAN on arm64, domain register switching on arm). This is currently only used for the user string lenth and copying functions, where the SMAP overhead on x86 drowned the actual user accesses (only noticeable on newer microarchitectures that support SMAP in the first place, of course). * user access batching branch: Use the new batched user accesses in generic user string handling Add 'unsafe' user access functions for batched accesses x86: reorganize SMAP handling in user space accesses commit 6272dcc6beebbc2d8cf4165b628169e878f143e0 Author: Anna Schumaker Date: Fri Jan 15 16:54:15 2016 -0500 NFS: Simplify nfs_request_add_commit_list() arguments I noticed that all the callers of this function pass cinfo->mds->list as an argument in addition to the cinfo structure itself. Let's get rid of the extra argument, since it doesn't seem to be adding anything. Signed-off-by: Anna Schumaker Signed-off-by: Trond Myklebust fs/nfs/filelayout/filelayout.c | 2 +- fs/nfs/internal.h | 2 +- fs/nfs/write.c | 7 +++---- 3 files changed, 5 insertions(+), 6 deletions(-) commit b819ed4b2afcaf86a370a004d7b2252f981f0c50 Author: Trond Myklebust Date: Thu Jan 21 14:48:49 2016 -0500 pNFS/flexfiles: Improve merging of errors in LAYOUTRETURN When we hit 22 errors, we start to overflow the memory buffers allocated to the LAYOUTRETURN errors. The issue is that currently, RPC call reply ordering determines how successful we are in merging errors that refer to contiguous READ or WRITE requests. Fix is to use an insertion sort to help detect contiguity. Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayoutdev.c | 99 +++++++++++++------------------ 1 file changed, 40 insertions(+), 59 deletions(-) commit eae21770b4fed5597623aad0d618190fa60426ff Merge: e9f57eb 9f273c2 Author: Linus Torvalds Date: Thu Jan 21 12:32:08 2016 -0800 Merge branch 'akpm' (patches from Andrew) Merge third patch-bomb from Andrew Morton: "I'm pretty much done for -rc1 now: - the rest of MM, basically - lib/ updates - checkpatch, epoll, hfs, fatfs, ptrace, coredump, exit - cpu_mask simplifications - kexec, rapidio, MAINTAINERS etc, etc. - more dma-mapping cleanups/simplifications from hch" * emailed patches from Andrew Morton : (109 commits) MAINTAINERS: add/fix git URLs for various subsystems mm: memcontrol: add "sock" to cgroup2 memory.stat mm: memcontrol: basic memory statistics in cgroup2 memory controller mm: memcontrol: do not uncharge old page in page cache replacement Documentation: cgroup: add memory.swap.{current,max} description mm: free swap cache aggressively if memcg swap is full mm: vmscan: do not scan anon pages if memcg swap limit is hit swap.h: move memcg related stuff to the end of the file mm: memcontrol: replace mem_cgroup_lruvec_online with mem_cgroup_online mm: vmscan: pass memcg to get_scan_count() mm: memcontrol: charge swap to cgroup2 mm: memcontrol: clean up alloc, online, offline, free functions mm: memcontrol: flatten struct cg_proto mm: memcontrol: rein in the CONFIG space madness net: drop tcp_memcontrol.c mm: memcontrol: introduce CONFIG_MEMCG_LEGACY_KMEM mm: memcontrol: allow to disable kmem accounting for cgroup2 mm: memcontrol: account "kmem" consumers in cgroup2 memory controller mm: memcontrol: move kmem accounting code to CONFIG_MEMCG mm: memcontrol: separate kmem code from legacy tcp accounting code ... commit e9f57ebcba563e0cd532926cab83c92bb4d79360 Merge: 5c89e9e 84889d4 Author: Linus Torvalds Date: Thu Jan 21 12:20:46 2016 -0800 Merge branch 'overlayfs-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs Pull overlayfs updates from Miklos Szeredi: "This contains several bug fixes and a new mount option 'default_permissions' that allows read-only exported NFS filesystems to be used as lower layer" * 'overlayfs-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs: ovl: check dentry positiveness in ovl_cleanup_whiteouts() ovl: setattr: check permissions before copy-up ovl: root: copy attr ovl: move super block magic number to magic.h ovl: use a minimal buffer in ovl_copy_xattr ovl: allow zero size xattr ovl: default permissions commit 5c89e9ea7ef1feaa147325b2ab47a89a147fb903 Merge: d434215 0b5da8d Author: Linus Torvalds Date: Thu Jan 21 12:14:24 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse Pull fuse updates from Miklos Szeredi: "This adds SEEK_HOLE and SEEK_DATA support in lseek" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse: fuse: add support for SEEK_HOLE and SEEK_DATA in lseek commit 0a9c453eef65fed569757e21423400cfcd55e206 Author: Teresa Remmet Date: Wed Jan 20 13:40:35 2016 +0100 net: phy: smsc: Fix disabling energy detect mode When the lan87xx_read_status function is getting called the energy detect mode is enabled again even if it has been disabled by device tree. Added private struct to check the energy detect status. Signed-off-by: Teresa Remmet Signed-off-by: David S. Miller drivers/net/phy/smsc.c | 54 ++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 44 insertions(+), 10 deletions(-) commit 8e0c2ab262b804f87d26499695e6bfa5f366780c Merge: 2c83229 e308cb8 Author: David S. Miller Date: Thu Jan 21 12:04:59 2016 -0800 Merge branch 'mvneta-multi-clk' Jisheng Zhang says: ==================== net: mvneta: support more than one clk Some platforms may provide more than one clk for the mvneta IP, for example Marvell BG4CT provides "core" clk for the mac core, and "axi" clk for the AXI bus logic. This series tries to addess the "more than one clk" issue. Note: to support BG4CT, we have lots of refactor work to do, eg. BG4CT doesn't have mbus concept etc. Since v2: - Name the optional clock as "bus", which is a bit more flexible. Since v1: - Add Thomas Acks to patch1 and patch2. - make sure the headers are really sorted (some headers are still unsorted in v1). - disable axi clk before disabling core clk, Thank Thomas. - update dt binding as Thomas suggested. ==================== Signed-off-by: David S. Miller commit e308cb835c56e7a8b93664797925549a42df8e68 Author: Jisheng Zhang Date: Wed Jan 20 19:27:25 2016 +0800 net: mvneta: update clocks property and document additional clock-names Signed-off-by: Jisheng Zhang Acked-by: Rob Herring Signed-off-by: David S. Miller Documentation/devicetree/bindings/net/marvell-armada-370-neta.txt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 15cc4a4a99ebfbbb696e85dca30680b522811a44 Author: Jisheng Zhang Date: Wed Jan 20 19:27:24 2016 +0800 net: mvneta: get optional bus clk Some platforms may provide more than one clk for the mvneta IP, for example Marvell BG4CT provides one clk for the mac core, and one clk for the AXI bus logic. Obviously this bus clk also need to be enabled. This patch adds this optional "bus" clk support. Signed-off-by: Jisheng Zhang Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mvneta.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 2804ba4edef5b4de01d4c580eb9ab4000f822a53 Author: Jisheng Zhang Date: Wed Jan 20 19:27:23 2016 +0800 net: mvneta: Try to get named core clock first Some platforms may provide more than one clk for the mvneta IP, for example Marvell BG4CT provides one clk for the mac core, and one clk for the AXI bus logic. To support for more than one clock, we'll need to distinguish between the clock by name. Change clock probing to first try to get "core" clock before falling back to unnamed clock. Signed-off-by: Jisheng Zhang Acked-by: Thomas Petazzoni Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mvneta.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 0e03f563a04207cc8e5db6afe63309a585995de7 Author: Jisheng Zhang Date: Wed Jan 20 19:27:22 2016 +0800 net: mvneta: sort the headers in alphabetic order Sorting the headers in alphabetic order will help to reduce the conflict when adding new headers in the future. Signed-off-by: Jisheng Zhang Acked-by: Thomas Petazzoni Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mvneta.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit 2c832293e09be2f998ea916650927c8ccd5b4b3b Author: Jisheng Zhang Date: Wed Jan 20 16:36:25 2016 +0800 net: mvneta: fix trivial cut-off issue in mvneta_ethtool_update_stats When s->type is T_REG_64, the high 32bits are lost in val. This patch fixes this trivial issue. Signed-off-by: Jisheng Zhang Fixes: 9b0cdefa4cd5 ("net: mvneta: add ethtool statistics") Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mvneta.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 48189d6aaf1ed1b382666289a94a50e5269a8946 Author: yankejian Date: Wed Jan 20 16:00:19 2016 +0800 net: hns: enet specifies a reference to dsaf This patch replace the assoication between dsaf and enet from string matching to object reference. It requires the DTS to be updated within BIOS. Thanks god it can be done for all released boards. Signed-off-by: Kejian Yan Acked-by: Rob Herring Acked-by: Yisen Zhuang Signed-off-by: David S. Miller .../devicetree/bindings/net/hisilicon-hns-dsaf.txt | 5 +---- .../devicetree/bindings/net/hisilicon-hns-nic.txt | 7 ++++--- arch/arm64/boot/dts/hisilicon/hip05_hns.dtsi | 19 +++++++++---------- drivers/net/ethernet/hisilicon/hns/hnae.c | 17 +++++++---------- drivers/net/ethernet/hisilicon/hns/hnae.h | 7 +++++-- drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c | 4 ++++ drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c | 10 +--------- drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.h | 1 + drivers/net/ethernet/hisilicon/hns/hns_enet.c | 15 +++++++++------ drivers/net/ethernet/hisilicon/hns/hns_enet.h | 2 +- 10 files changed, 42 insertions(+), 45 deletions(-) commit d43421565bf0510d35e6a39ebf96586ad486f3aa Merge: 859e762 9662e32 Author: Linus Torvalds Date: Thu Jan 21 11:52:16 2016 -0800 Merge tag 'pci-v4.5-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci Pull PCI updates from Bjorn Helgaas: "PCI changes for the v4.5 merge window: Enumeration: - Simplify config space size computation (Bjorn Helgaas) - Avoid iterating through ROM outside the resource window (Edward O'Callaghan) - Support PCIe devices with short cfg_size (Jason S. McMullan) - Add Netronome vendor and device IDs (Jason S. McMullan) - Limit config space size for Netronome NFP6000 family (Jason S. McMullan) - Add Netronome NFP4000 PF device ID (Simon Horman) - Limit config space size for Netronome NFP4000 (Simon Horman) - Print warnings for all invalid expansion ROM headers (Vladis Dronov) Resource management: - Fix minimum allocation address overwrite (Christoph Biedl) PCI device hotplug: - acpiphp_ibm: Fix null dereferences on null ibm_slot (Colin Ian King) - pciehp: Always protect pciehp_disable_slot() with hotplug mutex (Guenter Roeck) - shpchp: Constify hpc_ops structure (Julia Lawall) - ibmphp: Remove unneeded NULL test (Julia Lawall) Power management: - Make ASPM sysfs link_state_store() consistent with link_state_show() (Andy Lutomirski) Virtualization - Add function 1 DMA alias quirk for Lite-On/Plextor M6e/Marvell 88SS9183 (Tim Sander) MSI: - Remove empty pci_msi_init_pci_dev() (Bjorn Helgaas) - Mark PCIe/PCI (MSI) IRQ cascade handlers as IRQF_NO_THREAD (Grygorii Strashko) - Initialize MSI capability for all architectures (Guilherme G. Piccoli) - Relax msi_domain_alloc() to support parentless MSI irqdomains (Liu Jiang) ARM Versatile host bridge driver: - Remove unused pci_sys_data structures (Lorenzo Pieralisi) Broadcom iProc host bridge driver: - Hide CONFIG_PCIE_IPROC (Arnd Bergmann) - Do not use 0x in front of %pap (Dmitry V. Krivenok) - Update iProc PCIe device tree binding (Ray Jui) - Add PAXC interface support (Ray Jui) - Add iProc PCIe MSI device tree binding (Ray Jui) - Add iProc PCIe MSI support (Ray Jui) Freescale i.MX6 host bridge driver: - Use gpio_set_value_cansleep() (Fabio Estevam) - Add support for active-low reset GPIO (Petr Štetiar) HiSilicon host bridge driver: - Add support for HiSilicon Hip06 PCIe host controllers (Gabriele Paoloni) Intel VMD host bridge driver: - Export irq_domain_set_info() for module use (Keith Busch) - x86/PCI: Allow DMA ops specific to a PCI domain (Keith Busch) - Use 32 bit PCI domain numbers (Keith Busch) - Add driver for Intel Volume Management Device (VMD) (Keith Busch) Qualcomm host bridge driver: - Document PCIe devicetree bindings (Stanimir Varbanov) - Add Qualcomm PCIe controller driver (Stanimir Varbanov) - dts: apq8064: add PCIe devicetree node (Stanimir Varbanov) - dts: ifc6410: enable PCIe DT node for this board (Stanimir Varbanov) Renesas R-Car host bridge driver: - Add support for R-Car H3 to pcie-rcar (Harunobu Kurokawa) - Allow DT to override default window settings (Phil Edworthy) - Convert to DT resource parsing API (Phil Edworthy) - Revert "PCI: rcar: Build pcie-rcar.c only on ARM" (Phil Edworthy) - Remove unused pci_sys_data struct from pcie-rcar (Phil Edworthy) - Add runtime PM support to pcie-rcar (Phil Edworthy) - Add Gen2 PHY setup to pcie-rcar (Phil Edworthy) - Add gen2 fallback compatibility string for pci-rcar-gen2 (Simon Horman) - Add gen2 fallback compatibility string for pcie-rcar (Simon Horman) Synopsys DesignWare host bridge driver: - Simplify control flow (Bjorn Helgaas) - Make config accessor override checking symmetric (Bjorn Helgaas) - Ensure ATU is enabled before IO/conf space accesses (Stanimir Varbanov) Miscellaneous: - Add of_pci_get_host_bridge_resources() stub (Arnd Bergmann) - Check for PCI_HEADER_TYPE_BRIDGE equality, not bitmask (Bjorn Helgaas) - Fix all whitespace issues (Bogicevic Sasa) - x86/PCI: Simplify pci_bios_{read,write} (Geliang Tang) - Use to_pci_dev() instead of open-coding it (Geliang Tang) - Use kobj_to_dev() instead of open-coding it (Geliang Tang) - Use list_for_each_entry() to simplify code (Geliang Tang) - Fix typos in (Thomas Petazzoni) - x86/PCI: Clarify AMD Fam10h config access restrictions comment (Tomasz Nowicki)" * tag 'pci-v4.5-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (58 commits) PCI: Add function 1 DMA alias quirk for Lite-On/Plextor M6e/Marvell 88SS9183 PCI: Limit config space size for Netronome NFP4000 PCI: Add Netronome NFP4000 PF device ID x86/PCI: Add driver for Intel Volume Management Device (VMD) PCI/AER: Use 32 bit PCI domain numbers x86/PCI: Allow DMA ops specific to a PCI domain irqdomain: Export irq_domain_set_info() for module use PCI: host: Add of_pci_get_host_bridge_resources() stub genirq/MSI: Relax msi_domain_alloc() to support parentless MSI irqdomains PCI: rcar: Add Gen2 PHY setup to pcie-rcar PCI: rcar: Add runtime PM support to pcie-rcar PCI: designware: Make config accessor override checking symmetric PCI: ibmphp: Remove unneeded NULL test ARM: dts: ifc6410: enable PCIe DT node for this board ARM: dts: apq8064: add PCIe devicetree node PCI: hotplug: Use list_for_each_entry() to simplify code PCI: rcar: Remove unused pci_sys_data struct from pcie-rcar PCI: hisi: Add support for HiSilicon Hip06 PCIe host controllers PCI: Avoid iterating through memory outside the resource window PCI: acpiphp_ibm: Fix null dereferences on null ibm_slot ... commit 859e762544902c3e09b3f8d994aab80ea5ff5042 Merge: 96461fd ff01c94 Author: Linus Torvalds Date: Thu Jan 21 11:45:02 2016 -0800 Merge tag 'pwm/for-4.5-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 contains a new driver for OMAP (using the dual-mode timers) as well as an assortment of fixes all across the board" * tag 'pwm/for-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm: pwm: Mark all devices as "might sleep" pwm: omap-dmtimer: Potential NULL dereference on error pwm: add HAS_IOMEM dependency to PWM_FSL_FTM pwm: Add PWM driver for OMAP using dual-mode timers pwm: rcar: Improve accuracy of frequency division setting pwm: lpc32xx: return ERANGE, if requested period is not supported pwm: lpc32xx: fix and simplify duty cycle and period calculations pwm: lpc32xx: make device usable with common clock framework pwm: lpc32xx: correct number of PWM channels from 2 to 1 dt: lpc32xx: pwm: update documentation of LPC32xx PWM device dt: lpc32xx: pwm: correct LPC32xx PWM device node example pwm: fsl-ftm: Fix clock enable/disable when using PM pwm: lpss: Rework the sequence of programming PWM_SW_UPDATE pwm: lpss: Select core part automatically pwm: lpss: Update PWM setting for Broxton pwm: bcm2835: Fix email address specification pwm: bcm2835: Prevent division by zero pwm: bcm2835: Calculate scaler in ->config() pwm: lpss: Remove ->free() callback commit 96461fdb3ace6753d29eaa43387bcd6d540710e9 Merge: 278e5ac f9f3f86 Author: Linus Torvalds Date: Thu Jan 21 11:33:36 2016 -0800 Merge tag 'cris-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/jesper/cris Pull CRIS updates from Jesper Nilsson: "Just some fixups for section mismatches from Guenter" * tag 'cris-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/jesper/cris: cris: Fix section mismatches in architecture startup code cris: debugport: Fix section mismatches commit 278e5acae1321978686e85ca92906054a36aa19b Merge: 30f0530 2f1b007 Author: Linus Torvalds Date: Thu Jan 21 11:27:34 2016 -0800 Merge tag 'for-4.5' of git://git.osdn.jp/gitroot/uclinux-h8/linux Pull h8300 updates from Yoshinori Sato: - Add KGDB support - zImage fix - various cleanup * tag 'for-4.5' of git://git.osdn.jp/gitroot/uclinux-h8/linux: h8300: System call entry enable interrupt. h8300: show_stack cleanup h8300: Restraint of warning. h8300: Add KGDB support. irqchip: renesas-h8s: Replace ctrl_outw/ctrl_inw with writew/readw h8300: signal stack fix h8300: Add LZO compression h8300: zImage alignment fix clk: h8300: Remove "sh73a0-" part from compatible value h8300: zImage alignment fix commit e62a123b8ef7c5dc4db2c16383d506860ad21b47 Author: Eric Dumazet Date: Thu Jan 21 08:02:54 2016 -0800 tcp: fix NULL deref in tcp_v4_send_ack() Neal reported crashes with this stack trace : RIP: 0010:[] tcp_v4_send_ack+0x41/0x20f ... CR2: 0000000000000018 CR3: 000000044005c000 CR4: 00000000001427e0 ... [] tcp_v4_reqsk_send_ack+0xa5/0xb4 [] tcp_check_req+0x2ea/0x3e0 [] tcp_rcv_state_process+0x850/0x2500 [] tcp_v4_do_rcv+0x141/0x330 [] sk_backlog_rcv+0x21/0x30 [] tcp_recvmsg+0x75d/0xf90 [] inet_recvmsg+0x80/0xa0 [] sock_aio_read+0xee/0x110 [] do_sync_read+0x6f/0xa0 [] SyS_read+0x1e1/0x290 [] system_call_fastpath+0x16/0x1b The problem here is the skb we provide to tcp_v4_send_ack() had to be parked in the backlog of a new TCP fastopen child because this child was owned by the user at the time an out of window packet arrived. Before queuing a packet, TCP has to set skb->dev to NULL as the device could disappear before packet is removed from the queue. Fix this issue by using the net pointer provided by the socket (being a timewait or a request socket). IPv6 is immune to the bug : tcp_v6_send_response() already gets the net pointer from the socket if provided. Fixes: 168a8f58059a ("tcp: TCP Fast Open Server - main code path") Reported-by: Neal Cardwell Signed-off-by: Eric Dumazet Cc: Jerry Chu Cc: Yuchung Cheng Acked-by: Neal Cardwell Signed-off-by: David S. Miller net/ipv4/tcp_ipv4.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit 35e2d1152b22eae99c961affbe85374bef05a775 Author: Jesse Gross Date: Wed Jan 20 16:22:47 2016 -0800 tunnels: Allow IPv6 UDP checksums to be correctly controlled. When configuring checksums on UDP tunnels, the flags are different for IPv4 vs. IPv6 (and reversed). However, when lightweight tunnels are enabled the flags used are always the IPv4 versions, which are ignored in the IPv6 code paths. This uses the correct IPv6 flags, so checksums can be controlled appropriately. Fixes: a725e514 ("vxlan: metadata based tunneling for IPv6") Fixes: abe492b4 ("geneve: UDP checksum configuration via netlink") Signed-off-by: Jesse Gross Acked-by: Jiri Benc Signed-off-by: David S. Miller drivers/net/geneve.c | 4 ++-- drivers/net/vxlan.c | 23 ++++++++++++++++------- 2 files changed, 18 insertions(+), 9 deletions(-) commit 4f2aaf7dd95b2f82a01469049d4aee8071bcd935 Merge: ceb6560 49f7a47 Author: David S. Miller Date: Thu Jan 21 10:48:51 2016 -0800 Merge branch 'fix-phy-ignore-interrupts' Florian Fainelli says: ==================== net: phy: Finally fix PHY_IGNORE_INTERRUPTS This patch series finally fixes how PHY_IGNORE_INTERRUPTS are treated by avoiding to poll the PHY *and* getting notified from link state changes by the Ethernet MAC interrupt service routine. Tested with bcmgenet since this is the HW that I have access to. Targetting the "net" tree since these are bugfixes, but I would like Woojun and Andrew to take a look and test that on their respective HW setups as well. ==================== Signed-off-by: David S. Miller commit 49f7a471e4d172fc80140beccf6b3409b117b130 Author: Florian Fainelli Date: Mon Jan 18 19:33:08 2016 -0800 net: bcmgenet: Properly configure PHY to ignore interrupt By the time we execute bcmgenet_mii_probe(), the MDIO bus structure has long been allocated and registered. Overirring the PHY interrupt using the MDIO bus structure has no chance to work anymore, because of_mdiobus_register() has call phy_device_create() for use, which copied the MDIO bus address's irq for the PHY into the PHY device "irq" member. Since we do have a proper reference to a PHY device in bcmgenet_mii_probe(), just assign the desired IRQ value here. Fixes: aa09677cba42 ("net: bcmgenet: add MDIO routines") Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/genet/bcmmii.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit deccd16f91f930af8e91ffbbfc839d0ad8da999d Author: Florian Fainelli Date: Mon Jan 18 19:33:07 2016 -0800 net: phy: Fix phy_mac_interrupt() Commit 5ea94e7686a3 ("phy: add phy_mac_interrupt()") to use with PHY_IGNORE_INTERRUPT added a cancel_work_sync() into phy_mac_interrupt() which is allowed to sleep, whereas phy_mac_interrupt() is expected to be callable from interrupt context. Now that we have fixed how the PHY state machine treats PHY_IGNORE_INTERRUPT with respect to state changes, we can just set the new link state, and queue the PHY state machine for execution so it is going to read the new link state. For that to work properly, we need to update phy_change() not to try to invoke any interrupt callbacks if we have configured the PHY device for PHY_IGNORE_INTERRUPT, because that PHY device and its driver are not required to implement those. Fixes: 5ea94e7686a3 ("phy: add phy_mac_interrupt() to use with PHY_IGNORE_INTERRUPT") Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/phy.c | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) commit d5c3d84657db57bd23ecd58b97f1c99dd42a7b80 Author: Florian Fainelli Date: Mon Jan 18 19:33:06 2016 -0800 net: phy: Avoid polling PHY with PHY_IGNORE_INTERRUPTS Commit 2c7b49212a86 ("phy: fix the use of PHY_IGNORE_INTERRUPT") changed a hunk in phy_state_machine() in the PHY_RUNNING case which was not needed. The change essentially makes the PHY library treat PHY devices with PHY_IGNORE_INTERRUPT to keep polling for the PHY device, even though the intent is not to do it. Fix this by reverting that specific hunk, which makes the PHY state machine wait for state changes, and stay in the PHY_RUNNING state for as long as needed. Fixes: 2c7b49212a86 ("phy: fix the use of PHY_IGNORE_INTERRUPT") Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/phy.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) commit ceb6560a4cf3a2667209e6869f4fb8f6da6ef55f Author: Sudip Mukherjee Date: Thu Jan 21 10:42:31 2016 +0530 net/irda: bfin_sir: remove duplicate defines The defconfig build of blackfin is failing with the error: arch/blackfin/include/asm/bfin_serial.h:269:0: warning: "port_membase" redefined drivers/net/irda/bfin_sir.h:85:0: note: this is the location of the previous definition arch/blackfin/include/asm/bfin_serial.h:382:0: warning: "get_lsr_cache" redefined drivers/net/irda/bfin_sir.h:86:0: note: this is the location of the previous definition arch/blackfin/include/asm/bfin_serial.h:383:0: warning: "put_lsr_cache" redefined drivers/net/irda/bfin_sir.h:87:0: note: this is the location of the previous definition port_membase, get_lsr_cache, put_lsr_cache are already defined in the architecture files, no need to define them again in the driver. Signed-off-by: Sudip Mukherjee Signed-off-by: David S. Miller drivers/net/irda/bfin_sir.h | 3 --- 1 file changed, 3 deletions(-) commit 7e01726a6853e032536ed7e75c1e1232872ff318 Author: Ilya Dryomov Date: Mon Jan 18 16:53:31 2016 +0100 libceph: remove outdated comment MClientMount{,Ack} are long gone. The receipt of bare monmap doesn't actually indicate a mount success as we are yet to authenticate at that point in time. Signed-off-by: Ilya Dryomov net/ceph/mon_client.c | 4 ---- 1 file changed, 4 deletions(-) commit f6cdb2928df87c2277ec691101e5843db6cb96ea Author: Ilya Dryomov Date: Fri Jan 15 13:20:01 2016 +0100 libceph: kill off ceph_x_ticket_handler::validity With it gone, no need to preserve ceph_timespec in process_one_ticket() either. Signed-off-by: Ilya Dryomov Reviewed-by: Sage Weil net/ceph/auth_x.c | 6 ++---- net/ceph/auth_x.h | 1 - 2 files changed, 2 insertions(+), 5 deletions(-) commit 187d131dd983fb1ab1c5d0d9ee98ab6511f252cd Author: Ilya Dryomov Date: Thu Jan 14 17:31:51 2016 +0100 libceph: invalidate AUTH in addition to a service ticket If we fault due to authentication, we invalidate the service ticket we have and request a new one - the idea being that if a service rejected our authorizer, it must have expired, despite mon_client's attempts at periodic renewal. (The other possibility is that our ticket is too new and the service hasn't gotten it yet, in which case invalidating isn't necessary but doesn't hurt.) Invalidating just the service ticket is not enough, though. If we assume a failure on mon_client's part to renew a service ticket, we have to assume the same for the AUTH ticket. If our AUTH ticket is bad, we won't get any service tickets no matter how hard we try, so invalidate AUTH ticket along with the service ticket. Signed-off-by: Ilya Dryomov Reviewed-by: Sage Weil net/ceph/auth_x.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) commit 6abe097db59e1a5af7f082709f38bd95c54ccca1 Author: Ilya Dryomov Date: Thu Jan 14 16:35:35 2016 +0100 libceph: fix authorizer invalidation, take 2 Back in 2013, commit 4b8e8b5d78b8 ("libceph: fix authorizer invalidation") tried to fix authorizer invalidation issues by clearing validity field. However, nothing ever consults this field, so it doesn't force us to request any new secrets in any way and therefore we never get out of the exponential backoff mode: [ 129.973812] libceph: osd2 192.168.122.1:6810 connect authorization failure [ 130.706785] libceph: osd2 192.168.122.1:6810 connect authorization failure [ 131.710088] libceph: osd2 192.168.122.1:6810 connect authorization failure [ 133.708321] libceph: osd2 192.168.122.1:6810 connect authorization failure [ 137.706598] libceph: osd2 192.168.122.1:6810 connect authorization failure ... AFAICT this was the case at the time 4b8e8b5d78b8 was merged, too. Using timespec solely as a bool isn't nice, so introduce a new have_key flag, specifically for this purpose. Signed-off-by: Ilya Dryomov Reviewed-by: Sage Weil net/ceph/auth_x.c | 27 ++++++++++++++++++++++----- net/ceph/auth_x.h | 1 + 2 files changed, 23 insertions(+), 5 deletions(-) commit f6330cc1f04b7dcb84b572d402cdacf7e275a022 Author: Ilya Dryomov Date: Wed Jan 13 14:32:57 2016 +0100 libceph: clear messenger auth_retry flag if we fault Commit 20e55c4cc758 ("libceph: clear messenger auth_retry flag when we authenticate") got us only half way there. We clear the flag if the second attempt succeeds, but it also needs to be cleared if that attempt fails, to allow for the exponential backoff to kick in. Otherwise, if ->should_authenticate() thinks our keys are valid, we will busy loop, incrementing auth_retry to no avail: process_connect ffff880079a63830 got BADAUTHORIZER attempt 1 process_connect ffff880079a63830 got BADAUTHORIZER attempt 2 process_connect ffff880079a63830 got BADAUTHORIZER attempt 3 process_connect ffff880079a63830 got BADAUTHORIZER attempt 4 process_connect ffff880079a63830 got BADAUTHORIZER attempt 5 ... Signed-off-by: Ilya Dryomov Reviewed-by: Sage Weil net/ceph/messenger.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 67645d7619738e51c668ca69f097cb90b5470422 Author: Ilya Dryomov Date: Mon Dec 28 13:18:34 2015 +0300 libceph: fix ceph_msg_revoke() There are a number of problems with revoking a "was sending" message: (1) We never make any attempt to revoke data - only kvecs contibute to con->out_skip. However, once the header (envelope) is written to the socket, our peer learns data_len and sets itself to expect at least data_len bytes to follow front or front+middle. If ceph_msg_revoke() is called while the messenger is sending message's data portion, anything we send after that call is counted by the OSD towards the now revoked message's data portion. The effects vary, the most common one is the eventual hang - higher layers get stuck waiting for the reply to the message that was sent out after ceph_msg_revoke() returned and treated by the OSD as a bunch of data bytes. This is what Matt ran into. (2) Flat out zeroing con->out_kvec_bytes worth of bytes to handle kvecs is wrong. If ceph_msg_revoke() is called before the tag is sent out or while the messenger is sending the header, we will get a connection reset, either due to a bad tag (0 is not a valid tag) or a bad header CRC, which kind of defeats the purpose of revoke. Currently the kernel client refuses to work with header CRCs disabled, but that will likely change in the future, making this even worse. (3) con->out_skip is not reset on connection reset, leading to one or more spurious connection resets if we happen to get a real one between con->out_skip is set in ceph_msg_revoke() and before it's cleared in write_partial_skip(). Fixing (1) and (3) is trivial. The idea behind fixing (2) is to never zero the tag or the header, i.e. send out tag+header regardless of when ceph_msg_revoke() is called. That way the header is always correct, no unnecessary resets are induced and revoke stands ready for disabled CRCs. Since ceph_msg_revoke() rips out con->out_msg, introduce a new "message out temp" and copy the header into it before sending. Cc: stable@vger.kernel.org # 4.0+ Reported-by: Matt Conner Signed-off-by: Ilya Dryomov Tested-by: Matt Conner Reviewed-by: Sage Weil include/linux/ceph/messenger.h | 2 +- net/ceph/messenger.c | 76 ++++++++++++++++++++++++++++++++---------- 2 files changed, 59 insertions(+), 19 deletions(-) commit 10bcee149f62e7c5122f79aefc30d610b413280b Author: Geliang Tang Date: Fri Dec 18 23:33:30 2015 +0800 libceph: use list_for_each_entry_safe Use list_for_each_entry_safe() instead of list_for_each_safe() to simplify the code. Signed-off-by: Geliang Tang [idryomov@gmail.com: nuke call to list_splice_init() as well] Signed-off-by: Ilya Dryomov net/ceph/messenger.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) commit 99c88e6900fb05d267ae9f6d5e15dc7192ba6f8d Author: Yan, Zheng Date: Wed Dec 30 11:32:46 2015 +0800 ceph: use i_size_{read,write} to get/set i_size Cap message from MDS can update i_size. In that case, we don't hold i_mutex. So it's unsafe to directly access inode->i_size while holding i_mutex. Signed-off-by: Yan, Zheng fs/ceph/addr.c | 5 ++--- fs/ceph/cache.c | 8 +++----- fs/ceph/file.c | 30 ++++++++++++++++-------------- fs/ceph/inode.c | 8 ++++---- 4 files changed, 25 insertions(+), 26 deletions(-) commit 5be0389dac662995eade757ec678931f0be23d33 Author: Yan, Zheng Date: Thu Dec 24 08:44:20 2015 +0800 ceph: re-send AIO write request when getting -EOLDSNAP error When receiving -EOLDSNAP from OSD, we need to re-send corresponding write request. Due to locking issue, we can send new request inside another OSD request's complete callback. So we use worker to re-send request for AIO write. Signed-off-by: Yan, Zheng fs/ceph/file.c | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 86 insertions(+), 4 deletions(-) commit c8fe9b17d055fe80e1a1591f5900ce41fbf6b796 Author: Yan, Zheng Date: Wed Dec 23 21:23:38 2015 +0800 ceph: Asynchronous IO support The basic idea of AIO support is simple, just call kiocb::ki_complete() in OSD request's complete callback. But there are several special cases. when IO span multiple objects, we need to wait until all OSD requests are complete, then call kiocb::ki_complete(). Error handling in this case is tricky too. For simplify, AIO both span multiple objects and extends i_size are not allowed. Another special case is check EOF for reading (other client can write to the file and extend i_size concurrently). For simplify, the direct-IO/AIO code path does do the check, fallback to normal syn read instead. Signed-off-by: Yan, Zheng fs/ceph/file.c | 397 ++++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 278 insertions(+), 119 deletions(-) commit 458c4703aea04674f0b5f63b43cf5669a602a110 Author: Minfei Huang Date: Sat Dec 19 10:54:59 2015 +0800 ceph: Avoid to propagate the invalid page point The variant pagep will still get the invalid page point, although ceph fails in function ceph_update_writeable_page. To fix this issue, Assigne the page to pagep until there is no failure in function ceph_update_writeable_page. Signed-off-by: Minfei Huang Signed-off-by: Yan, Zheng fs/ceph/addr.c | 1 - 1 file changed, 1 deletion(-) commit f9cac5ac08b630c87c56671ce99a80310cffb2c6 Author: Yan, Zheng Date: Thu Dec 17 15:36:39 2015 +0800 ceph: fix double page_unlock() in page_mkwrite() ceph_update_writeable_page() unlocks the page on errors, so page_mkwrite() should not unlock the page again. Signed-off-by: Yan, Zheng fs/ceph/addr.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 1761b22966e61494f51be76bc3b10e9c1ff809ad Author: Markus Elfring Date: Mon Nov 23 20:16:45 2015 +0100 rbd: delete an unnecessary check before rbd_dev_destroy() The rbd_dev_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 Signed-off-by: Ilya Dryomov drivers/block/rbd.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 17ddc49b9c5c8847be745d13d91259248d59114b Author: Geliang Tang Date: Mon Nov 16 21:46:32 2015 +0800 libceph: use list_next_entry instead of list_entry_next list_next_entry has been defined in list.h, so I replace list_entry_next with it. Signed-off-by: Geliang Tang Signed-off-by: Ilya Dryomov net/ceph/messenger.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 79a3ed2e98557a2844e75c203e742f9c229ad1d3 Author: Yaowei Bai Date: Tue Nov 17 14:52:19 2015 +0800 ceph: ceph_frag_contains_value can be boolean This patch makes ceph_frag_contains_value return bool to improve readability due to this particular function only using either one or zero as its return value. No functional change. Signed-off-by: Yaowei Bai Signed-off-by: Yan, Zheng include/linux/ceph/ceph_frag.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eade1fe75fd3ad89c10d011969c0eed8f13e28e0 Author: Yaowei Bai Date: Tue Nov 17 14:52:18 2015 +0800 ceph: remove unused functions in ceph_frag.h These functions were introduced in commit 3d14c5d2b ("ceph: factor out libceph from Ceph file system"). Howover, there's no user of these functions since then, so remove them for simplicity. Signed-off-by: Yaowei Bai Signed-off-by: Yan, Zheng include/linux/ceph/ceph_frag.h | 35 ----------------------------------- 1 file changed, 35 deletions(-) commit 14e46e04958df740c6c6a94849f176159a333f13 Author: David Sterba Date: Thu Jan 21 18:54:41 2016 +0100 btrfs: synchronize incompat feature bits with sysfs files The files under /sys/fs/UUID/features get out of sync with the actual incompat bits set for the filesystem if they change after mount (eg. the LZO compression). Synchronize the feature bits with the sysfs files representing them right after we set/clear them. Signed-off-by: David Sterba fs/btrfs/free-space-tree.c | 7 +++++++ fs/btrfs/ioctl.c | 4 ++++ fs/btrfs/super.c | 4 ++++ fs/btrfs/volumes.c | 2 ++ 4 files changed, 17 insertions(+) commit 45c815f06b80031659c63d7b93e580015d6024dd Author: Alexander Shishkin Date: Tue Jan 19 17:14:29 2016 +0200 perf: Synchronously free aux pages in case of allocation failure We are currently using asynchronous deallocation in the error path in AUX mmap code, which is unnecessary and also presents a problem for users that wish to probe for the biggest possible buffer size they can get: they'll get -EINVAL on all subsequent attemts to allocate a smaller buffer before the asynchronous deallocation callback frees up the pages from the previous unsuccessful attempt. Currently, gdb does that for allocating AUX buffers for Intel PT traces. More specifically, overwrite mode of AUX pmus that don't support hardware sg (some implementations of Intel PT, for instance) is limited to only one contiguous high order allocation for its buffer and there is no way of knowing its size without trying. This patch changes error path freeing to be synchronous as there won't be any contenders for the AUX pages at that point. Reported-by: Markus Metzger Signed-off-by: Alexander Shishkin Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Cc: vince@deater.net Link: http://lkml.kernel.org/r/1453216469-9509-1-git-send-email-alexander.shishkin@linux.intel.com Signed-off-by: Ingo Molnar kernel/events/ring_buffer.c | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) commit 0e1eb0a1f5530bd751fe5bd2c62caa470aaa9643 Author: Stephane Eranian Date: Thu Jan 7 08:25:46 2016 +0100 perf/x86: add Intel SkyLake uncore IMC PMU support This patch enables the uncore_imc PMU for Intel SkyLake Desktop processors (Core i7-6700, model 94). It is possible to compute memory read/write bandwidth using: $ perf stat -a -e uncore_imc/data_reads/,uncore_imc/data_writes/ .... Signed-off-by: Stephane Eranian Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Vince Weaver Cc: kan.liang@intel.com Link: http://lkml.kernel.org/r/1452151546-8853-1-git-send-email-eranian@google.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_uncore.c | 3 +++ arch/x86/kernel/cpu/perf_event_intel_uncore.h | 1 + arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c | 20 ++++++++++++++++++++ 3 files changed, 24 insertions(+) commit 63b6da39bb38e8f1a1ef3180d32a39d6baf9da84 Author: Peter Zijlstra Date: Thu Jan 14 16:05:37 2016 +0100 perf: Fix perf_event_exit_task() race There is a race against perf_event_exit_task() vs event_function_call(),find_get_context(),perf_install_in_context() (iow, everyone). Since there is no permanent marker on a context that its dead, it is quite possible that we access (and even modify) a context after its passed through perf_event_exit_task(). For instance, find_get_context() might find the context still installed, but by the time we get to perf_install_in_context() it might already have passed through perf_event_exit_task() and be considered dead, we will however still add the event to it. Solve this by marking a ctx dead by setting its ctx->task value to -1, it must be !0 so we still know its a (former) task context. Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar kernel/events/core.c | 151 +++++++++++++++++++++++++++++---------------------- 1 file changed, 85 insertions(+), 66 deletions(-) commit c97f473643a9d3e618c0f0426b926bc3a3e23944 Author: Peter Zijlstra Date: Thu Jan 14 10:51:03 2016 +0100 perf: Add more assertions Try to trigger warnings before races do damage. Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar kernel/events/core.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit fae3fde65138b6071b1b0e0b567d4058a8b6a88c Author: Peter Zijlstra Date: Mon Jan 11 15:00:50 2016 +0100 perf: Collapse and fix event_function_call() users There is one common bug left in all the event_function_call() users, between loading ctx->task and getting to the remote_function(), ctx->task can already have been changed. Therefore we need to double check and retry if ctx->task != current. Insert another trampoline specific to event_function_call() that checks for this and further validates state. This also allows getting rid of the active/inactive functions. Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar include/linux/perf_event.h | 2 +- kernel/events/core.c | 365 +++++++++++++++++++----------------------- kernel/events/hw_breakpoint.c | 2 +- 3 files changed, 168 insertions(+), 201 deletions(-) commit 32132a3d0d5d6f127388be3e3fd7759f798c2eb4 Author: Peter Zijlstra Date: Mon Jan 11 15:40:59 2016 +0100 perf: Specialize perf_event_exit_task() The perf_remove_from_context() usage in __perf_event_exit_task() is different from the other usages in that this site has already detached and scheduled out the task context. This will stand in the way of stronger assertions checking the (task) context scheduling invariants. Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar kernel/events/core.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) commit 39a4364076921511e212bc42f94fbf062c989576 Author: Peter Zijlstra Date: Mon Jan 11 12:46:35 2016 +0100 perf: Fix task context scheduling There is a very nasty problem wrt disabling the perf task scheduling hooks. Currently we {set,clear} ctx->is_active on every __perf_event_task_sched_{in,out}, _however_ this means that if we disable these calls we'll have task contexts with ->is_active set that are not active and 'active' task contexts without ->is_active set. This can result in event_function_call() looping on the ctx->is_active condition basically indefinitely. Resolve this by changing things such that contexts without events do not set ->is_active like we used to. From this invariant it trivially follows that if there are no (task) events, every task ctx is inactive and disabling the context switch hooks is harmless. This leaves two places that need attention (and already had accumulated weird and wonderful hacks to work around, without recognising this actual problem). Namely: - perf_install_in_context() will need to deal with installing events in an inactive context, meaning it cannot rely on ctx-is_active for its IPIs. - perf_remove_from_context() will have to mark a context as inactive when it removes the last event. For specific detail, see the patch/comments. Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Dmitry Vyukov Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar kernel/events/core.c | 155 ++++++++++++++++++++++++++++++--------------------- 1 file changed, 91 insertions(+), 64 deletions(-) commit 63e30d3e52d4d85854ce6c761ffc6ab55209a630 Author: Peter Zijlstra Date: Fri Jan 8 11:39:10 2016 +0100 perf: Make ctx->is_active and cpuctx->task_ctx consistent For no apparent reason and to great confusion the rules for ctx->is_active and cpuctx->task_ctx are different. This means that its not always possible to find all active (task) contexts. Fix this such that if ctx->is_active gets set, we also set (or verify) cpuctx->task_ctx. Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar kernel/events/core.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) commit 25432ae96a9889774a05bf5f0f6fd8dbcdec5e72 Author: Peter Zijlstra Date: Fri Jan 8 11:05:09 2016 +0100 perf: Optimize perf_sched_events() usage It doesn't make sense to take up-to _4_ references on perf_sched_events() per event, avoid doing this. Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar kernel/events/core.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) commit aee7dbc45f8aa976913de9b352fa6da816f1f3cd Author: Peter Zijlstra Date: Fri Jan 8 10:45:11 2016 +0100 perf: Simplify/fix perf_event_enable() event scheduling Like perf_enable_on_exec(), perf_event_enable() event scheduling has problems respecting the context hierarchy when trying to schedule events (for example, it will try and add a pinned event without first removing existing flexible events). So simplify it by using the new ctx_resched() call which will DTRT. Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar kernel/events/core.c | 31 +++++-------------------------- 1 file changed, 5 insertions(+), 26 deletions(-) commit 8833d0e286c12fd4456089a7a553faf4921e4b08 Author: Peter Zijlstra Date: Fri Jan 8 10:02:37 2016 +0100 perf: Use task_ctx_sched_out() We have a function that does exactly what we want here, use it. This reduces the amount of cpuctx->task_ctx muckery. Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar kernel/events/core.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 3e349507d12de93b08b0aa814fc2aa0dee91c5ba Author: Peter Zijlstra Date: Fri Jan 8 10:01:18 2016 +0100 perf: Fix perf_enable_on_exec() event scheduling There are two problems with the current perf_enable_on_exec() event scheduling: - the newly enabled events will be immediately scheduled irrespective of their ctx event list order. - there's a hole in the ctx->lock between scheduling the events out and putting them back on. Esp. the latter issue is a real problem because a hole in event scheduling leaves the thing in an observable inconsistent state, confusing things. Fix both issues by first doing the enable iteration and at the end, when there are newly enabled events, reschedule the ctx in one go. Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar kernel/events/core.c | 47 +++++++++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 20 deletions(-) commit 5947f6576e2edee1189b00bf5b2a3f2c653caa6b Author: Peter Zijlstra Date: Fri Jan 8 09:43:38 2016 +0100 perf: Remove stale comment The comment here is horribly out of date, remove it. Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar kernel/events/core.c | 7 ------- 1 file changed, 7 deletions(-) commit 70a0165752944e0be0b1de4a9020473079962c18 Author: Peter Zijlstra Date: Fri Jan 8 09:29:16 2016 +0100 perf: Fix cgroup scheduling in perf_enable_on_exec() There is a comment that states that perf_event_context_sched_in() will also switch in the cgroup events, I cannot find it does so. Therefore all the resulting logic goes out the window too. Clean that up. Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar kernel/events/core.c | 31 +++++++------------------------ 1 file changed, 7 insertions(+), 24 deletions(-) commit 7e41d17753e6e0da55d343997454dd4fbe8d28a8 Author: Peter Zijlstra Date: Fri Jan 8 09:21:40 2016 +0100 perf: Fix cgroup event scheduling There appears to be a problem in __perf_event_task_sched_in() wrt cgroup event scheduling. The normal event scheduling order is: CPU pinned Task pinned CPU flexible Task flexible And since perf_cgroup_sched*() only schedules the cpu context, we must call this _before_ adding the task events. Note: double check what happens on the ctx switch optimization where the task ctx isn't scheduled. Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar kernel/events/core.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) commit c994d6136738fd8b24a79f5ad8df40a6a79e2cf7 Author: Peter Zijlstra Date: Fri Jan 8 09:20:23 2016 +0100 perf: Add lockdep assertions Make various bugs easier to see. Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar kernel/events/core.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 444e75169872f668eb890f19ec1f32dfc632e704 Author: David Sterba Date: Thu Jan 21 18:50:40 2016 +0100 btrfs: sysfs: introduce helper for syncing bits with sysfs files The files under /sys/fs/UUID/features get out of sync with the actual incompat bits set for the filesystem if they change after mount. We're going to sync them and need a helper to do that. Signed-off-by: David Sterba fs/btrfs/sysfs.c | 30 ++++++++++++++++++++++++++++++ fs/btrfs/sysfs.h | 3 +++ 2 files changed, 33 insertions(+) commit 3b5bb73bd88d1d90163c91e7cad50b12725dbb1c Author: David Sterba Date: Thu Jan 21 18:36:46 2016 +0100 btrfs: sysfs: add free-space-tree bit attribute The incompat bit representing the newly added free space tree feature is missing. Right now it will be listed only among features supported by the module, not per-fs. Signed-off-by: David Sterba fs/btrfs/sysfs.c | 2 ++ 1 file changed, 2 insertions(+) commit 34356f64ac0df2326fa50e2d4bca6f7c03ed16c1 Author: Leon Romanovsky Date: Tue Dec 29 17:01:30 2015 +0200 IB/mlx5: Unify CQ create flags check The create_cq() can receive creation flags which were used differently by two commits which added create_cq extended command and cross-channel. The merged code caused to not accept any flags at all. This patch unifies the check into one function and one return error code. Fixes: 972ecb821379 ("IB/mlx5: Add create_cq extended command") Fixes: 051f263098a9 ("IB/mlx5: Add driver cross-channel support") Signed-off-by: Leon Romanovsky Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/cq.c | 9 +-------- drivers/infiniband/hw/mlx5/mlx5_ib.h | 3 ++- 2 files changed, 3 insertions(+), 9 deletions(-) commit ad5f8e964cd0a88c746577aab2c6ea26e3b26673 Author: majd@mellanox.com Date: Thu Jan 14 19:13:08 2016 +0200 IB/mlx5: Expose Raw Packet QP to user space consumers Added Raw Packet QP modify functionality which will enable user space consumers to use it. Since Raw Packet QP is built of SQ and RQ sub-objects, therefore Raw Packet QP state changes are implemented by changing the state of the sub-objects. Signed-off-by: Majd Dibbiny Reviewed-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/qp.c | 139 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 127 insertions(+), 12 deletions(-) commit 427c1e7bcd7e5cd62160fcda0ce215ebbe0da3a1 Author: majd@mellanox.com Date: Thu Jan 14 19:13:07 2016 +0200 {IB, net}/mlx5: Move the modify QP operation table to mlx5_ib When modifying a QP, the desired operation was determined in the mlx5_core using a transition table that takes the current state, the final state, and returns the desired operation. Since this logic will be used for Raw Packet QP, move the operation table to the mlx5_ib. Signed-off-by: Majd Dibbiny Reviewed-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/qp.c | 53 ++++++++++++++++++++++++---- drivers/net/ethernet/mellanox/mlx5/core/qp.c | 48 ++----------------------- include/linux/mlx5/qp.h | 3 +- 3 files changed, 50 insertions(+), 54 deletions(-) commit 75850d0bcece42416ba81bd38e4c719f101c832d Author: majd@mellanox.com Date: Thu Jan 14 19:13:06 2016 +0200 IB/mlx5: Support setting Ethernet priority for Raw Packet QPs When the user changes the Address Vector(AV) in the modify QP, he provides an SL. This SL should be translated to Ethernet Priority by taking the 3 LSB bits, and modify the QP's TIS according to this Ethernet priority. Signed-off-by: Majd Dibbiny Reviewed-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/qp.c | 38 ++++++++++++++++++++-- drivers/net/ethernet/mellanox/mlx5/core/transobj.c | 12 +++++++ include/linux/mlx5/mlx5_ifc.h | 9 ++++- include/linux/mlx5/transobj.h | 2 ++ 4 files changed, 57 insertions(+), 4 deletions(-) commit 6d2f89df04b796e7dcc4f9f8dc0d8f04ad7f144b Author: majd@mellanox.com Date: Thu Jan 14 19:13:05 2016 +0200 IB/mlx5: Add Raw Packet QP query functionality Since Raw Packet QP is composed of RQ and SQ, the IB QP's state is derived from the sub-objects. Therefore we need to query each one of the sub-objects, and decide on the IB QP's state. Signed-off-by: Majd Dibbiny Reviewed-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/qp.c | 191 ++++++++++++++++++--- drivers/net/ethernet/mellanox/mlx5/core/transobj.c | 24 +++ include/linux/mlx5/qp.h | 11 +- include/linux/mlx5/transobj.h | 2 + 4 files changed, 205 insertions(+), 23 deletions(-) commit 0fb2ed66a14c8c34096d6a8cff5112356c5e9ea2 Author: majd@mellanox.com Date: Thu Jan 14 19:13:04 2016 +0200 IB/mlx5: Add create and destroy functionality for Raw Packet QP This patch adds support for Raw Packet QP for the mlx5 device. Raw Packet QP, unlike other QP types, has no matching mlx5_core_qp object but rather it is built of RQ/SQ/TIR/TIS/TD mlx5_core object. Since the SQ and RQ work-queue (WQ) buffers are not contiguous like other QPs, we allocate separate buffers in the user-space and pass the address of each one of them separately to the kernel. Signed-off-by: Majd Dibbiny Reviewed-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/mlx5_ib.h | 28 ++- drivers/infiniband/hw/mlx5/qp.c | 354 +++++++++++++++++++++++++++++++++-- drivers/infiniband/hw/mlx5/user.h | 1 + 3 files changed, 365 insertions(+), 18 deletions(-) commit 19098df2da784c851532c78bd570cb1c8f4aff52 Author: majd@mellanox.com Date: Thu Jan 14 19:13:03 2016 +0200 IB/mlx5: Refactor mlx5_ib_qp to accommodate other QP types Extract specific IB QP fields to mlx5_ib_qp_trans structure. The mlx5_core QP object resides in mlx5_ib_qp_base, which all QP types inherit from. When we need to find mlx5_ib_qp using mlx5_core QP (event handling and co), we use a pointer that resides in mlx5_ib_qp_base. In addition, we delete all redundant fields that weren't used anywhere in the code: -doorbell_qpn -sq_max_wqes_per_wr -sq_spare_wqes Signed-off-by: Majd Dibbiny Reviewed-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/mlx5_ib.h | 38 +++++--- drivers/infiniband/hw/mlx5/odp.c | 29 +++--- drivers/infiniband/hw/mlx5/qp.c | 175 +++++++++++++++++++++-------------- 3 files changed, 147 insertions(+), 95 deletions(-) commit 146d2f1af3245a10b13eef263687e54f4e253d1d Author: majd@mellanox.com Date: Thu Jan 14 19:13:02 2016 +0200 IB/mlx5: Allocate a Transport Domain for each ucontext Transport Domain groups several TIS and TIR object. By grouping these object, it defines wheather local loopback packets that are sent from the TIS objects in the group are received by the TIR objects in the same group. Allocate a Transport Domain(TD) for each user context to be used in the future by Raw Packet QP for Self-Loopback Control. Signed-off-by: Majd Dibbiny Reviewed-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/main.c | 16 +++++++++++++++- drivers/infiniband/hw/mlx5/mlx5_ib.h | 3 +++ 2 files changed, 18 insertions(+), 1 deletion(-) commit a14c2d4beee5633081d344f130b81e5ee76e4585 Author: majd@mellanox.com Date: Thu Jan 14 19:13:01 2016 +0200 net/mlx5_core: Warn on unsupported events of QP/RQ/SQ When an event arrives on QP/RQ/SQ, check whether it's supported, and print a warning message otherwise. Signed-off-by: Majd Dibbiny Reviewed-by: Matan Barak Signed-off-by: Doug Ledford drivers/net/ethernet/mellanox/mlx5/core/qp.c | 52 ++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) commit e2013b212f9f201c71fc5826ce41f39ebece0852 Author: majd@mellanox.com Date: Thu Jan 14 19:13:00 2016 +0200 net/mlx5_core: Add RQ and SQ event handling RQ/SQ will be used to implement IB verbs QPs, so the IB QP affiliated events are affiliated also with SQs and RQs. Since SQ, RQ and QP resource numbers do not share the same name space, a queue type field was added to the event data to specify the SW object that the event is affiliated with. Signed-off-by: Majd Dibbiny Reviewed-by: Matan Barak Signed-off-by: Doug Ledford drivers/net/ethernet/mellanox/mlx5/core/eq.c | 1 + drivers/net/ethernet/mellanox/mlx5/core/qp.c | 126 +++++++++++++++++++++++---- include/linux/mlx5/device.h | 12 ++- include/linux/mlx5/driver.h | 8 +- include/linux/mlx5/qp.h | 8 ++ 5 files changed, 132 insertions(+), 23 deletions(-) commit 8d7f9ecb371a15e48754fa816e3f716517df7b13 Author: majd@mellanox.com Date: Thu Jan 14 19:12:59 2016 +0200 net/mlx5_core: Export transport objects To be used by mlx5_ib in the following patches for implementing RAW PACKET QP. Add mlx5_core_ prefix to alloc and delloc transport_domain since they are exposed now. Signed-off-by: Majd Dibbiny Reviewed-by: Matan Barak Signed-off-by: Doug Ledford drivers/net/ethernet/mellanox/mlx5/core/en.h | 2 +- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 6 +- drivers/net/ethernet/mellanox/mlx5/core/srq.c | 2 +- drivers/net/ethernet/mellanox/mlx5/core/transobj.c | 14 +++- drivers/net/ethernet/mellanox/mlx5/core/transobj.h | 72 --------------------- include/linux/mlx5/transobj.h | 74 ++++++++++++++++++++++ 6 files changed, 90 insertions(+), 80 deletions(-) commit f72300c56c3bedac5fdb22cdc90f6633dc858c84 Author: Haggai Abramovsky Date: Thu Jan 14 19:12:58 2016 +0200 IB/mlx5: Expose CQE version to user-space Per user context, work with CQE version that both the user-space and the kernel support. Report this CQE version via the response of the alloc_ucontext command. Signed-off-by: Haggai Abramovsky Reviewed-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/main.c | 15 +++++++++++---- drivers/infiniband/hw/mlx5/user.h | 8 +++++++- 2 files changed, 18 insertions(+), 5 deletions(-) commit cfb5e088e26ae0e12064171f645ed022cf6d55b9 Author: Haggai Abramovsky Date: Thu Jan 14 19:12:57 2016 +0200 IB/mlx5: Add CQE version 1 support to user QPs and SRQs Enforce working with CQE version 1 when the user supports CQE version 1 and asked to work this way. If the user still works with CQE version 0, then use the default CQE version to tell the Firmware that the user still works in the older mode. After this patch, the kernel still reports CQE version 0. Signed-off-by: Haggai Abramovsky Reviewed-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/mlx5_ib.h | 23 ++++++++++++++ drivers/infiniband/hw/mlx5/qp.c | 14 ++++++++ drivers/infiniband/hw/mlx5/srq.c | 41 ++++++++++++++++++++---- drivers/infiniband/hw/mlx5/user.h | 44 +++++++++++++++++++++++++- drivers/net/ethernet/mellanox/mlx5/core/main.c | 4 --- drivers/net/ethernet/mellanox/mlx5/core/qp.c | 7 ---- drivers/net/ethernet/mellanox/mlx5/core/srq.c | 2 -- 7 files changed, 114 insertions(+), 21 deletions(-) commit dfbee8598d24668b882bcc97d28d5108441cc88a Author: Haggai Abramovsky Date: Thu Jan 14 19:12:56 2016 +0200 IB/mlx5: Fix data validation in mlx5_ib_alloc_ucontext The wrong buffer size was passed to ib_is_udata_cleared. Signed-off-by: Haggai Abramovsky Reviewed-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/main.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 2deeb4772971e56d5bdac0bd3375d5eadaa827fd Author: Kaike Wan Date: Thu Jan 21 08:41:31 2016 -0500 IB/sa: Fix netlink local service GFP crash The rdma netlink local service registers a handler to handle RESOLVE response and another handler to handle SET_TIMEOUT request. The first thing these handlers do is to call netlink_capable() to check the access right of the received skb to make sure that the sender has root access. Under normal conditions, such responses and requests will be directly forwarded to the handlers without going through the netlink_dump pathway (see ibnl_rcv_msg() in drivers/infiniband/core/netlink.c). However, a user application could send a RESOLVE request (not response) to the local service, which will fall into the netlink_dump pathway, where a new skb will be created without initializing the control block. This new skb will be eventually forwarded to the local service RESOLVE response handler. Unfortunately, netlink_capable() will cause general protection fault if the skb's control block is not initialized. This patch will address the problem by checking the skb first. Signed-off-by: Kaike Wan Reported-by: Dmitry Vyukov Signed-off-by: Doug Ledford drivers/infiniband/core/sa_query.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 40ed9444cd2421cceedb35bb8d8ff913a5ae1ac3 Author: Takashi Iwai Date: Thu Jan 21 17:43:08 2016 +0100 ALSA: timer: Introduce disconnect op to snd_timer_instance Instead of the previous ugly hack, introduce a new op, disconnect, to snd_timer_instance object for handling the wake up of pending tasks more cleanly. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=109431 Signed-off-by: Takashi Iwai include/sound/timer.h | 1 + sound/core/timer.c | 23 +++++++++++------------ 2 files changed, 12 insertions(+), 12 deletions(-) commit 230323dac060123c340cf75997971145a42661ee Author: Takashi Iwai Date: Thu Jan 21 17:19:31 2016 +0100 ALSA: timer: Handle disconnection more safely Currently ALSA timer device doesn't take the disconnection into account very well; it merely unlinks the timer device at disconnection callback but does nothing else. Because of this, when an application accessing the timer device is disconnected, it may release the resource before actually closed. In most cases, it results in a warning message indicating a leftover timer instance like: ALSA: timer xxxx is busy? But basically this is an open race. This patch tries to address it. The strategy is like other ALSA devices: namely, - Manage card's refcount at each open/close - Wake up the pending tasks at disconnection - Check the shutdown flag appropriately at each possible call Note that this patch has one ugly hack to handle the wakeup of pending tasks. It'd be cleaner to introduce a new disconnect op to snd_timer_instance ops. But since it would lead to internal ABI breakage and it eventually increase my own work when backporting to stable kernels, I took a different path to implement locally in timer.c. A cleanup patch will follow at next for 4.5 kernel. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=109431 Cc: # v3.15+ Signed-off-by: Takashi Iwai sound/core/timer.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) commit ff01c944cfa939f3474c28d88223213494aedf0b Author: Thierry Reding Date: Thu Jan 21 15:04:59 2016 +0100 pwm: Mark all devices as "might sleep" Commit d1cd21427747 ("pwm: Set enable state properly on failed call to enable") introduced a mutex that is needed to protect internal state of PWM devices. Since that mutex is acquired in pwm_set_polarity() and in pwm_enable() and might potentially block, all PWM devices effectively become "might sleep". It's rather pointless to keep the .can_sleep field around, but given that there are external users let's postpone the removal for the next release cycle. Signed-off-by: Thierry Reding drivers/pwm/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 64a67d4762ce3ce4c9466eadd152d825fbf84967 Author: Martin Fuzzey Date: Wed Jan 20 16:08:03 2016 +0100 mmc: pwrseq_simple: Make reset-gpios optional to match doc The DT binding doc says reset-gpios is an optional property but the code currently bails out if it is omitted. This is a regression since it breaks previously working device trees. Fix it by restoring the original documented behaviour. Fixes: ce037275861e ("mmc: pwrseq_simple: use GPIO descriptors array API") Tested-by: Tony Lindgren Signed-off-by: Martin Fuzzey Signed-off-by: Ulf Hansson drivers/mmc/core/pwrseq_simple.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) commit 6551b8c9b76ec3cee1386dbeeab528c019fd732c Author: Linus Walleij Date: Thu Jan 21 13:04:47 2016 +0100 ARM: realview: fix device tree build As it happens, two obj-$(CONFIG_FOO) += foo.o variables are above obj-y := core.o, which doesn't work: the += directives need to add something to the build and doesn't work if obj-y is not set first, so move the obj-y to be on top and everything builds nicely again. Signed-off-by: Linus Walleij Signed-off-by: Arnd Bergmann arch/arm/mach-realview/Makefile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 2256b8d2ff6c8e994161ab15b6e6d0314d3174ae Author: Arnd Bergmann Date: Wed Jan 20 12:46:24 2016 +0100 ASoC: rt5659: avoid unused variable warning for rt5659_acpi_match The newly added rt5659 codec driver unconditionally defines an ACPI device match table but then uses ACPI_PTR() to remove the only reference to it, so we get a harmless build warning: sound/soc/codecs/rt5659.c:4200:30: warning: 'rt5659_acpi_match' defined but not used [-Wunused-variable] static struct acpi_device_id rt5659_acpi_match[] = { This changes both the OF match table and the ACPI match table to follow the same style, using ACPI_PTR/of_match_ptr to make the reference conditional, and using an #ifdef to hide the table. This also adds the missing MODULE_DEVICE_TABLE for the OF case and adapts the formatting to the same style. Signed-off-by: Arnd Bergmann Signed-off-by: Mark Brown sound/soc/codecs/rt5659.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) commit b28785fa9cede0d4f47310ca0dd2a4e1d50478b5 Author: Bard Liao Date: Thu Jan 21 13:13:40 2016 +0800 ASoC: rt5645: fix the shift bit of IN1 boost The shift bit of IN1 boost gain control is 12. Signed-off-by: Bard Liao Signed-off-by: Mark Brown Cc: stable@vger.kernel.org sound/soc/codecs/rt5645.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6d514c720219a4c0e1c2612c1d830592bfaf5a03 Author: Bard Liao Date: Thu Jan 21 14:10:48 2016 +0800 ASoC: rt286: fix capture doesn't work at some cases RT286_CBJ_CTRL1(0x4f) bit 10 is needed for headset capture. It will be turned off when "VREF" widget is on and be turned on when bias level is ON. It is odd. And if "VREF" is turned on in bias level is ON, RT286_CBJ_CTRL1(0x4f) bit 10 will be turned off. This patch move the bit control from rt286_set_bias_level and rt298_vref_event to rt286_jack_detect. So it will be turned on once a jack is plugged in. Signed-off-by: Bard Liao Signed-off-by: Mark Brown sound/soc/codecs/rt286.c | 26 +++----------------------- 1 file changed, 3 insertions(+), 23 deletions(-) commit 22c43f36b5cf22a7e4506cb3a53f3ad2a43f60f7 Author: Andy Shevchenko Date: Wed Jan 20 22:13:41 2016 +0200 x86/platform/quark: Print boundaries correctly When we print values, such as @size, we have to understand that it's derived from [begin .. end] as: size = end - begin + 1 On the opposite the @end is derived from the rest as: end = begin + size - 1 Correct the IMR code to print values correctly. Note that @__end_rodata actually points to the next address after the aligned .rodata section. Signed-off-by: Andy Shevchenko Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Ong, Boon Leong Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1453320821-64328-1-git-send-email-andriy.shevchenko@linux.intel.com Signed-off-by: Ingo Molnar arch/x86/platform/intel-quark/imr.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) commit 0e2bce7411542fa336ef49041471ea3e7dc911f8 Author: Stephen Rothwell Date: Thu Jan 21 13:05:20 2016 +1100 powerpc: Remove newly added extra definition of pmd_dirty Commit d5d6a443b243 ("arch/powerpc/include/asm/pgtable-ppc64.h: add pmd_[dirty|mkclean] for THP") added a new identical definition of pmd_dirty(). Remove it again. Cc: Minchan Kim Cc: Andrew Morton Signed-off-by: Stephen Rothwell Signed-off-by: Michael Ellerman arch/powerpc/include/asm/book3s/64/pgtable.h | 1 - 1 file changed, 1 deletion(-) commit c153693d7eb9eeb28478aa2deaaf0b4e7b5ff5e9 Author: Alan Modra Date: Fri Jan 15 20:52:22 2016 +1100 powerpc: Simplify module TOC handling PowerPC64 uses the symbol .TOC. much as other targets use _GLOBAL_OFFSET_TABLE_. It identifies the value of the GOT pointer (or in powerpc parlance, the TOC pointer). Global offset tables are generally local to an executable or shared library, or in the kernel, module. Thus it does not make sense for a module to resolve a relocation against .TOC. to the kernel's .TOC. value. A module has its own .TOC., and indeed the powerpc64 module relocation processing ignores the kernel value of .TOC. and instead calculates a module-local value. This patch removes code involved in exporting the kernel .TOC., tweaks modpost to ignore an undefined .TOC., and the module loader to twiddle the section symbol so that .TOC. isn't seen as undefined. Note that if the kernel was compiled with -msingle-pic-base then ELFv2 would not have function global entry code setting up r2. In that case the module call stubs would need to be modified to set up r2 using the kernel .TOC. value, requiring some of this code to be reinstated. mpe: Furthermore a change in binutils master (not yet released) causes the current way we handle the TOC to no longer work when building with MODVERSIONS=y and RELOCATABLE=n. The symptom is that modules can not be loaded due to there being no version found for TOC. Cc: stable@vger.kernel.org # 3.16+ Signed-off-by: Alan Modra Signed-off-by: Michael Ellerman arch/powerpc/kernel/misc_64.S | 28 ---------------------------- arch/powerpc/kernel/module_64.c | 12 +++++++++--- scripts/mod/modpost.c | 3 ++- 3 files changed, 11 insertions(+), 32 deletions(-) commit d7f9ee60a6ebc263861a1d8c06acf100495201b7 Author: Chandan Rajendra Date: Wed Jan 13 22:20:22 2016 +0530 powerpc: Wire up copy_file_range() syscall Test runs on a ppc64 BE guest succeeded using modified fstests. Also tested on ppc64 LE using a home made test - mpe. Signed-off-by: Chandan Rajendra Signed-off-by: Michael Ellerman arch/powerpc/include/asm/systbl.h | 1 + arch/powerpc/include/asm/unistd.h | 2 +- arch/powerpc/include/uapi/asm/unistd.h | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) commit 30f05309bde49295e02e45c7e615f73aa4e0ccc2 Merge: 3549d82 db2b52f Author: Linus Torvalds Date: Wed Jan 20 19:06:49 2016 -0800 Merge tag 'pm+acpi-4.5-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: "This includes fixes on top of the previous batch of PM+ACPI updates and some new material as well. From the new material perspective the most significant are the driver core changes that should allow USB devices to stay suspended over system suspend/resume cycles if they have been runtime-suspended already beforehand. Apart from that, ACPICA is updated to upstream revision 20160108 (cosmetic mostly, but including one fixup on top of the previous ACPICA update) and there are some devfreq updates the didn't make it before (due to timing). A few recent regressions are fixed, most importantly in the cpuidle menu governor and in the ACPI backlight driver and some x86 platform drivers depending on it. Some more bugs are fixed and cleanups are made on top of that. Specifics: - Modify the driver core and the USB subsystem to allow USB devices to stay suspended over system suspend/resume cycles if they have been runtime-suspended already beforehand and fix some bugs on top of these changes (Tomeu Vizoso, Rafael Wysocki). - Update ACPICA to upstream revision 20160108, including updates of the ACPICA's copyright notices, a code fixup resulting from a regression fix that was necessary in the upstream code only (the regression fixed by it has never been present in Linux) and a compiler warning fix (Bob Moore, Lv Zheng). - Fix a recent regression in the cpuidle menu governor that broke it on practically all architectures other than x86 and make a couple of optimizations on top of that fix (Rafael Wysocki). - Clean up the selection of cpuidle governors depending on whether or not the kernel is configured for tickless systems (Jean Delvare). - Revert a recent commit that introduced a regression in the ACPI backlight driver, address the problem it attempted to fix in a different way and revert one more cosmetic change depending on the problematic commit (Hans de Goede). - Add two more ACPI backlight quirks (Hans de Goede). - Fix a few minor problems in the core devfreq code, clean it up a bit and update the MAINTAINERS information related to it (Chanwoo Choi, MyungJoo Ham). - Improve an error message in the ACPI fan driver (Andy Lutomirski). - Fix a recent build regression in the cpupower tool (Shreyas Prabhu)" * tag 'pm+acpi-4.5-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (32 commits) cpuidle: menu: Avoid pointless checks in menu_select() sched / idle: Drop default_idle_call() fallback from call_cpuidle() cpupower: Fix build error in cpufreq-info cpuidle: Don't enable all governors by default cpuidle: Default to ladder governor on ticking systems time: nohz: Expose tick_nohz_enabled ACPICA: Update version to 20160108 ACPICA: Silence a -Wbad-function-cast warning when acpi_uintptr_t is 'uintptr_t' ACPICA: Additional 2016 copyright changes ACPICA: Reduce regression fix divergence from upstream ACPICA ACPI / video: Add disable_backlight_sysfs_if quirk for the Toshiba Satellite R830 ACPI / video: Revert "thinkpad_acpi: Use acpi_video_handles_brightness_key_presses()" ACPI / video: Document acpi_video_handles_brightness_key_presses() a bit ACPI / video: Fix using an uninitialized mutex / list_head in acpi_video_handles_brightness_key_presses() ACPI / video: Revert "ACPI / video: driver must be registered before checking for keypresses" ACPI / fan: Improve acpi_device_update_power error message ACPI / video: Add disable_backlight_sysfs_if quirk for the Toshiba Portege R700 cpuidle: menu: Fix menu_select() for CPUIDLE_DRIVER_STATE_START == 0 MAINTAINERS: Add devfreq-event entry MAINTAINERS: Add missing git repository and directory for devfreq ... commit 3549d82279370295a11f1dec0284a9922c903b9a Merge: 9638685 6575a9c Author: Linus Torvalds Date: Wed Jan 20 19:00:46 2016 -0800 Merge tag 'renesas-sh-drivers-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas Pull SH driver updates from Simon Horman: "Clean up the clock API on legacy SH to make it more similar to the Common Clock Framework. This will avoid different behaviour in drivers shared between legacy and CCF-based platforms (e.g. SCIF)" * tag 'renesas-sh-drivers-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: drivers: sh: clk: Avoid crashes when passing NULL clocks drivers: sh: clk: Remove obsolete and unused clk_round_parent() commit 8034e1efcb330d2aecef8cbf8a83f206270c1775 Merge: bffae69 b16c291 Author: David S. Miller Date: Wed Jan 20 18:56:44 2016 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf commit bffae6975e00b78e86bcd694ab4c8c48216572a3 Author: Xin Long Date: Wed Jan 20 16:12:33 2016 +0800 net: change tcp_syn_retries documentation Documentation should be kept consistent with the code: static int tcp_syn_retries_max = MAX_TCP_SYNCNT; #define MAX_TCP_SYNCNT 127 Signed-off-by: Xin Long Signed-off-by: David S. Miller Documentation/networking/ip-sysctl.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 81e8f2e930fe76b9814c71b9d87c30760b5eb705 Author: Manfred Rudigier Date: Wed Jan 20 11:22:28 2016 +0100 net: dp83640: Fix tx timestamp overflow handling. PHY status frames are not reliable, the PHY may not be able to send them during heavy receive traffic. This overflow condition is signaled by the PHY in the next status frame, but the driver did not make use of it. Instead it always reported wrong tx timestamps to user space after an overflow happened because it assigned newly received tx timestamps to old packets in the queue. This commit fixes this issue by clearing the tx timestamp queue every time an overflow happens, so that no timestamps are delivered for overflow packets. This way time stamping will continue correctly after an overflow. Signed-off-by: Manfred Rudigier Acked-by: Richard Cochran Signed-off-by: David S. Miller drivers/net/phy/dp83640.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 7c1306723ee916ea9f1fa7d9e4c7a6d029ca7aaf Author: Eric Dumazet Date: Wed Jan 20 16:25:01 2016 -0800 net: diag: support v4mapped sockets in inet_diag_find_one_icsk() Lorenzo reported that we could not properly find v4mapped sockets in inet_diag_find_one_icsk(). This patch fixes the issue. Reported-by: Lorenzo Colitti Signed-off-by: Eric Dumazet Acked-by: Lorenzo Colitti Signed-off-by: David S. Miller net/ipv4/inet_diag.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) commit ce87fc6ce3f9f4488546187e3757cf666d9d4a2a Author: Jesse Gross Date: Wed Jan 20 17:59:49 2016 -0800 gro: Make GRO aware of lightweight tunnels. GRO is currently not aware of tunnel metadata generated by lightweight tunnels and stored in the dst. This leads to two possible problems: * Incorrectly merging two frames that have different metadata. * Leaking of allocated metadata from merged frames. This avoids those problems by comparing the tunnel information before merging, similar to how we handle other metadata (such as vlan tags), and releasing any state when we are done. Reported-by: John Fixes: 2e15ea39 ("ip_gre: Add support to collect tunnel metadata.") Signed-off-by: Jesse Gross Acked-by: Eric Dumazet Acked-by: Thomas Graf Signed-off-by: David S. Miller include/net/dst_metadata.h | 18 ++++++++++++++++++ net/core/dev.c | 7 +++++-- 2 files changed, 23 insertions(+), 2 deletions(-) commit 9638685e32af961943b679fcb72d4ddd458eb18f Merge: 03d7d12 ce96cb7 Author: Linus Torvalds Date: Wed Jan 20 18:42:30 2016 -0800 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: "Driver updates for ARM SoCs. Some for SoC-family code under drivers/soc, but also some other driver updates that don't belong anywhere else. We also bring in the drivers/reset code through arm-soc. Some of the larger updates: - Qualcomm support for SMEM, SMSM, SMP2P. All used to communicate with other parts of the chip/board on these platforms, all proprietary protocols that don't fit into other subsystems and live in drivers/soc for now. - System bus driver for UniPhier - Driver for the TI Wakeup M3 IPC device - Power management for Raspberry PI + Again a bunch of other smaller updates and patches" * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (38 commits) bus: uniphier: allow only built-in driver ARM: bcm2835: clarify RASPBERRYPI_FIRMWARE dependency MAINTAINERS: Drop Kumar Gala from QCOM bus: uniphier-system-bus: add UniPhier System Bus driver ARM: bcm2835: add rpi power domain driver dt-bindings: add rpi power domain driver bindings ARM: bcm2835: Define two new packets from the latest firmware. drivers/soc: make mediatek/mtk-scpsys.c explicitly non-modular soc: mediatek: SCPSYS: Add regulator support MAINTAINERS: Change QCOM entries soc: qcom: smd-rpm: Add existing platform support memory/tegra: Add number of TLB lines for Tegra124 reset: hi6220: fix modular build soc: qcom: Introduce WCNSS_CTRL SMD client ARM: qcom: select ARM_CPU_SUSPEND for power management MAINTAINERS: Add rules for Qualcomm dts files soc: qcom: enable smsm/smp2p modular build serial: msm_serial: Make config tristate soc: qcom: smp2p: Qualcomm Shared Memory Point to Point soc: qcom: smsm: Add driver for Qualcomm SMSM ... commit 03d7d12415e3a4791994e566f1245838bc505c6b Merge: f9cd69f a25682e Author: Linus Torvalds Date: Wed Jan 20 18:35:00 2016 -0800 Merge tag 'armsoc-defconfig64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM 64-bit defconfig updates from Olof Johansson: "As mentioned earlier, we usually bake this into the general "arm64" branch, but this release we have partitioned up the updates a bit more. Most of these updates are enabling new SoCs in the single defconfig for 64-bit, Renesas R8A7795, a number of Tegra options, Socionext Uniphier and a handful of new options for other platforms as well" * tag 'armsoc-defconfig64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: arm64: mediatek: enable MTK_TIMER arm64: defconfig: add CS2000 support arm64: defconfig: Add Renesas R-Car SATA driver for R-Car Gen3 SoCs arm64: defconfig: enable UniPhier SoCs support arm64: add Kconfig entry for Socionext UniPhier SoC family arm64: defconfig: add Renesas sound and AK4613 support arm64: defconfig: add Renesas R-Car DMAC driver support arm64: defconfig: Enable Renesas R-Car I2C Controller arm64: defconfig: enable EthernetAVB arm64: defconfig: Enable GPIO of Renesas R-Car Gen3 SoC arm64: berlin: add the pinctrl dependency for Marvell Berlin SoCs arm64: defconfig: renesas: Enable Renesas r8a7795 SoC arm64: defconfig: Enable printk timestamps arm64: defconfig: Enable squashfs support arm64: defconfig: Enable sdhci-tegra driver arm64: defconfig: Enable serial-tegra driver arm64: defconfig: Enable tegra-apbdma driver arm64: defconfig: Do not disable Tegra AHB driver arm64: defconfig: Enable Tegra210 support commit f9cd69fe5eb6347b4de56458d0378bc0fa44bce9 Merge: 62c79bb 2f6b99e Author: Linus Torvalds Date: Wed Jan 20 18:29:13 2016 -0800 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: "As usual, a bunch of commits, mostly adding drivers and other options to defconfigs because it makes sense to have them enabled on various development or product boards. Too much to enumerate each here. There's an introduction of a pxa_defconfig, since PXA finally will allow building a shared kernel for all boards. With this, we can hopefully remove a bunch of individual defconfigs down the road but it requires a bit of real life testing and transition period" * tag 'armsoc-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (65 commits) ARM: Add CONFIG_DEPRECATED_PARAM_STRUCT to netwinder_defconfig ARM: multi_v7_defconfig: Add rockchip audio support arm: multi_v7_defconfig: Add virtio drivers ARM: zx_defconfig: remove CONFIG_MMC_DW_IDMAC ARM: versatile: enable the right LEDs ARM: pxa: add defconfig covering all the boards ARM: versatile: select some defaults in defconfig ARM: multi_v7_defconfig: Enable fan, sensors and audio for Odroid XU3 ARM: bcm2835: enable auxiliary spi driver in defconfig ARM: bcm2835: enable all bcm2835-relevant in defconfig ARM: default to multi_v7_defconfig ARM: multi_v7_defconfig: enable rk808 clkout module ARM: multi_v7_defconfig: enable rockchip crypto module ARM: multi_v7_defconfig: enable Rockchip io-domain driver ARM: multi_v7_defconfig: Enable generic SoC internal OMAP regulators ARM: multi_v7_defconfig: Enable AM437x PMIC TPS65218 ARM: multi_v7_defconfig: enable TPS65217 regulator ARM: realview: select apropriate targets ARM: defconfig: qcom: Enable SSBI drivers ARM: defconfig: Update qcom_defconfig ... commit 62c79bb3a99fb46a8624f9c7e86fa5ee2f936360 Merge: 6d1c244 d07822a Author: Linus Torvalds Date: Wed Jan 20 18:21:32 2016 -0800 Merge tag 'armsoc-dt64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM 64-bit DT updates from Olof Johansson: "This is the first release where we split up the 64-bit contributions a bit more, and in particular we are having a separate DT branch for them. Contents: - New devices added to Broadcom NorthStar2 - Misc fixes for Exynos7 boards - QCOM updates for MSM8916 - Rockchip tweaks for rk3368 SoC and eval board - A series of fixes for APM X-Gene v1 and v2 - Renesas R8A7795 CPU/PSCI additions - Marvell Berlin4CT PSCI, cpuidle, watchdog portions - Freescale LS1043a SoC and dev board support + some treewide or other misc changes" * tag 'armsoc-dt64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (104 commits) dts/ls2080a: Update DTSI to add support of SP805 WDT Documentation: DT: Add entry for ARM SP805-WDT arm64: dts: X-Gene v2: I2C1 clock is always on arm64: dts: X-Gene v1: I2C0 clock is always on arm64: dts: Fix to use standard DT node names for X-Gene 1 and X-Gene 2 platforms arm64: dts: hikey: add label properties to UARTs arm64: dts: apq8016-sbc: add label properties for UART, I2C, and SPI arm64: dts: apq8016-sbc: enable UART0 on LS connector arm64: dts: juno: Add idle-states to device tree arm64: dts: Added syscon-reboot node for FSL's LS2080A SoC arm64: dts: add LS1043a-RDB board support arm64: dts: add Freescale LS1043a SoC support Documentation: DT: Add entry for Freescale LS1043a-RDB board arm64: dts: uniphier: add PH1-LD10 SoC/board support arm64: renesas: r8a7795: fix SATA clock assignment arm64: dts: salvator-x: Enable SATA controller arm64: dts: r8a7795: Add SATA controller node arm64: renesas: r8a7795: add internal delay for i2c IPs arm64: renesas: salvator-x: Add board part number to DT bindings arm64: dts: r8a7795: Add pmu device nodes ... commit 6d1c244803f2c013fb9c31b0904c01f1830b73ab Merge: 1305eda7 4dd041b Author: Linus Torvalds Date: Wed Jan 20 18:16:29 2016 -0800 Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM DT updates from Olof Johansson: "As usual, the bulk of this release is again DT file contents. There's a huge number of changes here, and it's challenging to give a crisp overview of just what is in here. To start with: New boards: - TI-based DM3730 from LogicPD (Torpedo) - Cosmic+ M4 (nommu) initial support (Freescale Vybrid) - Raspberry Pi 2 DT files - Watchdog on Meson8b - Veyron-mickey (ASUS Chromebit) DTS - Rockchip rk3228 SoC and eval board - Sigma Designs Tango4 Improvements: - Improved support for Qualcomm APQ8084, including Sony Xperia Z DT files - Misc new devices for Rockchip rk3036 and rk3288 - Allwinner updates for misc SoCs and systems ... and a _large_ number of other changes across the field. Devices added to SoC DTSI and board DTS files for a number of SoC vendors, new product boards on already-supported SoCs, cleanups and refactorings of existing DTS/DTSI files and a bunch of other changes" * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (469 commits) ARM: dts: compulab: add new board description ARM: versatile: add the syscon LEDs to the DT dts: vt8500: Fix errors in SDHC node for WM8505 ARM: dts: imx6q: clean up unused ipu2grp ARM: dts: silk: Add compatible property to "partitions" node ARM: dts: gose: Add compatible property to "partitions" node ARM: dts: porter: Add compatible property to "partitions" node ARM: dts: koelsch: Add compatible property to "partitions" node ARM: dts: lager: Add compatible property to "partitions" node ARM: dts: bockw: Add compatible property to "partitions" node ARM: dts: meson8b: Add watchdog node Documentation: watchdog: Add new bindings for meson8b ARM: meson: Add status LED for Odroid-C1 ARM: dts: uniphier: fix a typo in comment block ARM: bcm2835: Add the auxiliary clocks to the device tree. ARM: bcm2835: Add devicetree for bcm2836 and Raspberry Pi 2 B ARM: bcm2835: Move the CPU/peripheral include out of common RPi DT. ARM: bcm2835: Split the DT for peripherals from the DT for the CPU ARM: realview: set up cache correctly on the PB11MPCore ARM: dts: Unify G2D device node with other devices on exynos4 ... commit 1305eda751d7df3069b1fcb6f62036185acd24a0 Merge: 6b5a12d d6bd057 Author: Linus Torvalds Date: Wed Jan 20 18:10:05 2016 -0800 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: "Updates for new platform support: - New platform: Tango4 from Sigma Designs. - Broadcom BCM2836 (Raspberry Pi 2 SoC) - Enable cpufreq on Freescale i.MX7D - Rockchip: SMP support for rk3036, general support for rk3228 - SMP support on Broadcom Kona and NSP - Cleanups for OMAP removing legacy IOMMU data + a bunch of misc fixes and tweaks for various platforms" * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (46 commits) ARM: tango: Fix UP build issues ARM: tango: pass ARM arch level for smc.S ARM: bcm2835: Add Kconfig support for bcm2836 ARM: OMAP2+: Add support for dm814x and dra62x usb ARM: OMAP2+: Add mmc hwmod entries for dm814x ARM: OMAP2+: Update 81xx clock and power domains for default, active and sgx ARM: OMAP2+: Fix SoC detection for dra62x j5-eco ARM: tango4: Initial platform support ARM: bcm2835: Add a compat string for bcm2836 machine probe dt-bindings: Add root properties for Raspberry Pi 2 ARM: imx: select SRC for i.MX7 ARM: uniphier: select PINCTRL ARM: OMAP2+: Remove device creation for omap-pcm-audio ARM: OMAP1: Remove device creation for omap-pcm-audio ARM: rockchip: enable support for RK3228 SoCs ARM: rockchip: use const and __initconst for rk3036 smp_operations ARM: zynq: Select ARCH_HAS_RESET_CONTROLLER ARM: BCM: Add SMP support for Broadcom 4708 ARM: BCM: Add SMP support for Broadcom NSP ARM: BCM: Clean up SMP support for Broadcom Kona ... commit 6b5a12dbca7a8681ecb78dbebaedc1f8364ebd10 Merge: 5083c54 2cb58c0 Author: Linus Torvalds Date: Wed Jan 20 18:03:56 2016 -0800 Merge tag 'armsoc-multiplatform' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC multiplatform code updates from Arnd Bergmann: "This branch is the culmination of 5 years of effort to bring the ARMv6 and ARMv7 platforms together such that they can all be enabled and boot the same kernel. It has been a tremendous amount of cleanup and refactoring by a huge number of people, and creation of several new (and major) subsystems to better abstract out all the platform details in an appropriate manner. The bulk of this branch is a large patchset from Arnd that brings several of the more minor and older platforms we have closer to multiplatform support. Among these are MMP, S3C64xx, Orion5x, mv78xx0 and realview Much of this is moving around header files from old mach directories, but there are also some cleanup patches of debug_ll (lowlevel debug per-platform options) and other parts. Linus Walleij also has some patchs to clean up the older ARM Realview platforms by finally introducing DT support, and Rob Herring has some for ARM Versatile which is now DT-only. Both of these platforms are now multiplatform. Finally, a couple of patches from Russell for Dove PMU, and a fix from Valentin Rothberg for Exynos ADC, which were rebased on top of the series to avoid conflicts" * tag 'armsoc-multiplatform' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (75 commits) ARM: realview: don't select SMP_ON_UP for UP builds ARM: s3c: simplify s3c_irqwake_{e,}intallow definition ARM: s3c64xx: fix pm-debug compilation iio: exynos-adc: fix irqf_oneshot.cocci warnings ARM: realview: build realview-dt SMP support only when used ARM: realview: select apropriate targets ARM: realview: clean up header files ARM: realview: make all header files local ARM: no longer make CPU targets visible separately ARM: integrator: use explicit core module options ARM: realview: enable multiplatform ARM: make default platform work for NOMMU ARM: debug-ll: move DEBUG_LL_UART_EFM32 to correct Kconfig location ARM: defconfig: use correct debug_ll settings ARM: versatile: convert to multi-platform ARM: versatile: merge mach code into a single file ARM: versatile: switch to DT only booting and remove legacy code ARM: versatile: add DT based PCI detection ARM: pxa: mark ezx structures as __maybe_unused ARM: pxa: mark raumfeld init functions as __maybe_unused ... commit 5083c54264d21bf9b8a4766068f51581854d772c Merge: 0c58282 0ef917f Author: Linus Torvalds Date: Wed Jan 20 17:55:20 2016 -0800 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 smallish number of general cleanup commits this release cycle. Some of these are minor tweaks: - shmobile change of binding for their GIC (using arm,pl390 now) - ARCH_RENESAS introduction - Misc other renesas updates There's also a couple of treewide commits from Masahiro Yamada cleaning up const/__initconst for SMP operation structs and a switch to using "depends on" instead of if-constructs on most of the Kconfig platform targets" * tag 'armsoc-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: staging: board: armadillo800eva: Use "arm,pl390" staging: board: kzm9d: Use "arm,pl390" ARM: shmobile: r8a7778 dtsi: Use "arm,pl390" for GIC ARM: shmobile: emev2 dtsi: Use "arm,pl390" for GIC ARM: shmobile: r8a7740 dtsi: Use "arm,pl390" for GIC ARM: shmobile: r7s72100 dtsi: Use "arm,pl390" for GIC ARM: use "depends on" for SoC configs instead of "if" after prompt ARM/clocksource: use automatic DT probing for ux500 PRCMU ARM: use const and __initconst for smp_operations ARM: hisi: do not export smp_operations structures ARM: mvebu: remove unused mach/gpio.h ARM: shmobile: Remove legacy mach/irqs.h ARM: shmobile: Introduce ARCH_RENESAS MAINTAINERS: Remove link to oss.renesas.com which is closed commit 0c582826a158d9cab69b9cc66d637aee73fed0dc Merge: e3de671 08ceca8 Author: Linus Torvalds Date: Wed Jan 20 17:44:16 2016 -0800 Merge tag 'armsoc-fixes-nc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull non-urgent ARM SoC fixes from Olof Johansson: "As usual, we queue up a few fixes that don't seem urgent enough to go in through -rc. - MAINTAINERS updates to add a list for brcmstb and fix a typo - A handful of fixes for OMAP 81xx, a recently resurrected platform so these can't be considered real regressions and thus got queued. - A couple of other small fixes for scoop, sa1100 and davinci" * tag 'armsoc-fixes-nc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: ARM: OMAP2+: Fix randconfig build warning for dm814_pllss_data ARM: sa1100/simpad: Be sure to clamp return value ARM: scoop: Be sure to clamp return value ARM: davinci: fix a problematic usage of WARN() ARM: davinci: only select WT cache if cache is enabled ARM: OMAP2+: Remove useless check for legacy booting for dm814x ARM: OMAP2+: Enable GPIO for dm814x ARM: dts: Fix dm814x pinctrl address and mask ARM: dts: Fix dm8148 control modules ranges ARM: OMAP2+: Fix timer entries for dm814x ARM: dts: Fix some mux and divider clocks to get dm814x-evm booting ARM: OMAP2+: Add DPPLS clock manager for dm814x clk: ti: Add few dm814x clock aliases ARM: dts: Fix dm814x entries for pllss and prcm MAINTAINERS: gpio-brcmstb: Remove stray '>' MAINTAINERS: brcmstb: Include Broadcom internal mailing-list commit e3de671dd6784e30821e64f67f854b90b4496a68 Merge: 71e4634 040b323 Author: Linus Torvalds Date: Wed Jan 20 17:30:20 2016 -0800 Merge tag 'asm-generic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic Pull asm-generic updates from Arnd Bergmann: "The asm-generic tree this time contains one series from Nicolas Pitre that makes the optimized do_div() implementation from the ARM architecture available to all architectures. This also adds stricter type checking for callers of do_div, which has uncovered a number of bugs in existing code, and fixes up the ones we have found" * tag 'asm-generic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic: ARM: asm/div64.h: adjust to generic codde __div64_32(): make it overridable at compile time __div64_const32(): abstract out the actual 128-bit cross product code do_div(): generic optimization for constant divisor on 32-bit machines div64.h: optimize do_div() for power-of-two constant divisors mtd/sm_ftl.c: fix wrong do_div() usage drm/mgag200/mgag200_mode.c: fix wrong do_div() usage hid-sensor-hub.c: fix wrong do_div() usage ti/fapll: fix wrong do_div() usage ti/clkt_dpll: fix wrong do_div() usage tegra/clk-divider: fix wrong do_div() usage imx/clk-pllv2: fix wrong do_div() usage imx/clk-pllv1: fix wrong do_div() usage nouveau/nvkm/subdev/clk/gk20a.c: fix wrong do_div() usage commit 71e4634e00119b2fb8dd0da99b3f5ebbb49cc872 Merge: 19a3dd7 fab683e Author: Linus Torvalds Date: Wed Jan 20 17:20:53 2016 -0800 Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending Pull SCSI target updates from Nicholas Bellinger: "The highlights this round include: - Introduce configfs support for unlocked configfs_depend_item() (krzysztof + andrezej) - Conversion of usb-gadget target driver to new function registration interface (andrzej + sebastian) - Enable qla2xxx FC target mode support for Extended Logins (himansu + giridhar) - Enable qla2xxx FC target mode support for Exchange Offload (himansu + giridhar) - Add qla2xxx FC target mode irq affinity notification + selective command queuing. (quinn + himanshu) - Fix iscsi-target deadlock in se_node_acl configfs deletion (sagi + nab) - Convert se_node_acl configfs deletion + se_node_acl->queue_depth to proper se_session->sess_kref + target_get_session() usage. (hch + sagi + nab) - Fix long-standing race between se_node_acl->acl_kref get and get_initiator_node_acl() lookup. (hch + nab) - Fix target/user block-size handling, and make sure netlink reaches all network namespaces (sheng + andy) Note there is an outstanding bug-fix series for remote I_T nexus port TMR LUN_RESET has been posted and still being tested, and will likely become post -rc1 material at this point" * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (56 commits) scsi: qla2xxxx: avoid type mismatch in comparison target/user: Make sure netlink would reach all network namespaces target: Obtain se_node_acl->acl_kref during get_initiator_node_acl target: Convert ACL change queue_depth se_session reference usage iscsi-target: Fix potential dead-lock during node acl delete ib_srpt: Convert acl lookup to modern get_initiator_node_acl usage tcm_fc: Convert acl lookup to modern get_initiator_node_acl usage tcm_fc: Wait for command completion before freeing a session target: Fix a memory leak in target_dev_lba_map_store() target: Support aborting tasks with a 64-bit tag usb/gadget: Remove set-but-not-used variables target: Remove an unused variable target: Fix indentation in target_core_configfs.c target/user: Allow user to set block size before enabling device iser-target: Fix non negative ERR_PTR isert_device_get usage target/fcoe: Add tag support to tcm_fc qla2xxx: Check for online flag instead of active reset when transmitting responses qla2xxx: Set all queues to 4k qla2xxx: Disable ZIO at start time. qla2xxx: Move atioq to a different lock to reduce lock contention ... commit e3c4abdb3bc9b76bedd416ecc5c27633a2f8afed Author: Mark Yao Date: Wed Sep 23 12:34:34 2015 +0800 drm/rockchip: fix wrong pitch/size using on gem args->pitch and args->size may not be set by userspace, sometimes userspace only malloc args and not memset args to zero, then args->pitch and args->size is random, it is very danger to use pitch/size on gem. pitch's type is u32, and min_pitch's type is int, example, pitch is 0xffffffff, then pitch < min_pitch return true, then gem will alloc very very big bufffer, it would eat all the memory and cause kernel crash. Stop using pitch/size from args, calc them from other args. Signed-off-by: Mark Yao drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit 19a3dd7621af01b7e44a70d16beab59326c38824 Author: Dan Williams Date: Wed Jan 20 14:37:22 2016 -0800 Do not enable CONFIG_IO_STRICT_DEVMEM by default Larry Finger reports: "My PowerBook G4 Aluminum with a 32-bit PPC processor fails to boot for the 4.4-git series". This is likely due to X still needing /dev/mem access on this platform. CONFIG_IO_STRICT_DEVMEM is not yet safe to turn on when CONFIG_STRICT_DEVMEM=y. Remove the default so that old configurations do not change behavior. Fixes: 90a545e98126 ("restrict /dev/mem to idle io memory ranges") Reported-by: Larry Finger Tested-by: Larry Finger Link: http://marc.info/?l=linux-kernel&m=145332012023825&w=2 Acked-by: Kees Cook Cc: Arnd Bergmann Cc: Ingo Molnar Cc: Russell King Cc: Andrew Morton Cc: Greg Kroah-Hartman Signed-off-by: Dan Williams Signed-off-by: Linus Torvalds lib/Kconfig.debug | 1 - 1 file changed, 1 deletion(-) commit 9f273c24ec5f4a6f785bb83e931b3808a07b459e Author: Fengguang Wu Date: Wed Jan 20 15:03:25 2016 -0800 MAINTAINERS: add/fix git URLs for various subsystems Add/fix git URLs for various subsystems Add git URL for at91 Add git URL for Rockchip Add git URL for ARM64 Update git URL for ath6kl Add git URL for backlight Add git URL for chrome Add git URL for cris Add git URL for cryptodev Update git URL for DLM Add git URL for eCryptfs Add git URL for ext4 Add git URL for hwspinlock Add git URL for integrity Add git URL for IPVS Add git URL for nfsd Add git URL for KVM/s390 Add git URL for kgdb Add git URL for nvdimm Add git URL for metag Add git URL for wireless drivers Add git URL for devicetree Update git URL for PCMCIA Update git URL for pstore Update git URL for ath10k Add git URL for hexagon Add git URL for reset Add git URL for s390 Fix tree format for SAMSUNG thermal Add git URL for md Add git URL for squashfs Add git URL for swiotlb Add git URL for xtensa Fix tree format for TPM Add git URL for UML Add git URL for VFIO Add git URL for vhost Update git URL for XFS Fix MIC maintainers entry Signed-off-by: Fengguang Wu Acked-by: Alexandre Belloni Acked-by: Nicolas Ferre Acked-by: Catalin Marinas Acked-by: Kalle Valo Acked-by: Cornelia Huck Acked-by: James Hogan Acked-by: Dominik Brodowski Signed-off-by: Dan Carpenter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds MAINTAINERS | 53 ++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 42 insertions(+), 11 deletions(-) commit b2807f07f4f87362925b8a5b8cbb7b624da10f03 Author: Johannes Weiner Date: Wed Jan 20 15:03:22 2016 -0800 mm: memcontrol: add "sock" to cgroup2 memory.stat Provide statistics on how much of a cgroup's memory footprint is made up of socket buffers from network connections owned by the group. Signed-off-by: Johannes Weiner Cc: Michal Hocko Cc: Vladimir Davydov Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memcontrol.h | 5 ++++- mm/memcontrol.c | 6 ++++++ 2 files changed, 10 insertions(+), 1 deletion(-) commit 587d9f726aaec52157e4156e50363dbe6cb82bdb Author: Johannes Weiner Date: Wed Jan 20 15:03:19 2016 -0800 mm: memcontrol: basic memory statistics in cgroup2 memory controller Provide a cgroup2 memory.stat that provides statistics on LRU memory and fault event counters. More consumers and breakdowns will follow. Signed-off-by: Johannes Weiner Acked-by: Vladimir Davydov Cc: Michal Hocko Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/cgroup-v2.txt | 56 +++++++++++++++++++++++++++++++++++++ mm/memcontrol.c | 68 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 124 insertions(+) commit 44b7a8d33d666268062e0f725d5f14813a63a6ea Author: Johannes Weiner Date: Wed Jan 20 15:03:16 2016 -0800 mm: memcontrol: do not uncharge old page in page cache replacement Changing page->mem_cgroup of a live page is tricky and fragile. In particular, the memcg writeback code relies on that mapping being stable and users of mem_cgroup_replace_page() not overlapping with dirtyable inodes. Page cache replacement doesn't have to do that, though. Instead of being clever and transferring the charge from the old page to the new, force-charge the new page and leave the old page alone. A temporary overcharge won't matter in practice, and the old page is going to be freed shortly after this anyway. And this is not performance critical. Signed-off-by: Johannes Weiner Cc: Michal Hocko Cc: Vladimir Davydov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memcontrol.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) commit 3e24b19dd5ff0587674ac7578cc11ef079708327 Author: Vladimir Davydov Date: Wed Jan 20 15:03:13 2016 -0800 Documentation: cgroup: add memory.swap.{current,max} description The rationale of separate swap counter is given by Johannes Weiner. Signed-off-by: Vladimir Davydov Acked-by: Johannes Weiner Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/cgroup-v2.txt | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) commit 5ccc5abaaf6f9242cc63342c5286990233f392fa Author: Vladimir Davydov Date: Wed Jan 20 15:03:10 2016 -0800 mm: free swap cache aggressively if memcg swap is full Swap cache pages are freed aggressively if swap is nearly full (>50% currently), because otherwise we are likely to stop scanning anonymous when we near the swap limit even if there is plenty of freeable swap cache pages. We should follow the same trend in case of memory cgroup, which has its own swap limit. Signed-off-by: Vladimir Davydov Acked-by: Johannes Weiner Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/swap.h | 6 ++++++ mm/memcontrol.c | 22 ++++++++++++++++++++++ mm/memory.c | 3 ++- mm/swapfile.c | 2 +- mm/vmscan.c | 2 +- 5 files changed, 32 insertions(+), 3 deletions(-) commit d8b38438a0bcb362c396f49d8279ef7b505917f4 Author: Vladimir Davydov Date: Wed Jan 20 15:03:07 2016 -0800 mm: vmscan: do not scan anon pages if memcg swap limit is hit We don't scan anonymous memory if we ran out of swap, neither should we do it in case memcg swap limit is hit, because swap out is impossible anyway. Signed-off-by: Vladimir Davydov Acked-by: Johannes Weiner Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/swap.h | 6 ++++++ mm/memcontrol.c | 13 +++++++++++++ mm/vmscan.c | 2 +- 3 files changed, 20 insertions(+), 1 deletion(-) commit 6f2cb2f17700a39567cf3e9a2e95041def5f3688 Author: Vladimir Davydov Date: Wed Jan 20 15:03:05 2016 -0800 swap.h: move memcg related stuff to the end of the file The following patches will add more functions to the memcg section of include/linux/swap.h. Some of them will need values defined below the current location of the section. So let's move the section to the end of the file. No functional changes intended. Signed-off-by: Vladimir Davydov Acked-by: Johannes Weiner Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/swap.h | 70 ++++++++++++++++++++++++++++------------------------ 1 file changed, 38 insertions(+), 32 deletions(-) commit eb01aaab43084f1c919ce66183fea005033351b9 Author: Vladimir Davydov Date: Wed Jan 20 15:03:02 2016 -0800 mm: memcontrol: replace mem_cgroup_lruvec_online with mem_cgroup_online mem_cgroup_lruvec_online() takes lruvec, but it only needs memcg. Since get_scan_count(), which is the only user of this function, now possesses pointer to memcg, let's pass memcg directly to mem_cgroup_online() instead of picking it out of lruvec and rename the function accordingly. Signed-off-by: Vladimir Davydov Acked-by: Johannes Weiner Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memcontrol.h | 27 ++++++++++----------------- mm/vmscan.c | 2 +- 2 files changed, 11 insertions(+), 18 deletions(-) commit 3337767850b490eec5ca822f871241c981664737 Author: Vladimir Davydov Date: Wed Jan 20 15:02:59 2016 -0800 mm: vmscan: pass memcg to get_scan_count() memcg will come in handy in get_scan_count(). It can already be used for getting swappiness immediately in get_scan_count() instead of passing it around. The following patches will add more memcg-related values, which will be used there. Signed-off-by: Vladimir Davydov Acked-by: Johannes Weiner Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/vmscan.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) commit 37e84351198be087335ad2b2253b35c7cc76a5ad Author: Vladimir Davydov Date: Wed Jan 20 15:02:56 2016 -0800 mm: memcontrol: charge swap to cgroup2 This patchset introduces swap accounting to cgroup2. This patch (of 7): In the legacy hierarchy we charge memsw, which is dubious, because: - memsw.limit must be >= memory.limit, so it is impossible to limit swap usage less than memory usage. Taking into account the fact that the primary limiting mechanism in the unified hierarchy is memory.high while memory.limit is either left unset or set to a very large value, moving memsw.limit knob to the unified hierarchy would effectively make it impossible to limit swap usage according to the user preference. - memsw.usage != memory.usage + swap.usage, because a page occupying both swap entry and a swap cache page is charged only once to memsw counter. As a result, it is possible to effectively eat up to memory.limit of memory pages *and* memsw.limit of swap entries, which looks unexpected. That said, we should provide a different swap limiting mechanism for cgroup2. This patch adds mem_cgroup->swap counter, which charges the actual number of swap entries used by a cgroup. It is only charged in the unified hierarchy, while the legacy hierarchy memsw logic is left intact. The swap usage can be monitored using new memory.swap.current file and limited using memory.swap.max. Note, to charge swap resource properly in the unified hierarchy, we have to make swap_entry_free uncharge swap only when ->usage reaches zero, not just ->count, i.e. when all references to a swap entry, including the one taken by swap cache, are gone. This is necessary, because otherwise swap-in could result in uncharging swap even if the page is still in swap cache and hence still occupies a swap entry. At the same time, this shouldn't break memsw counter logic, where a page is never charged twice for using both memory and swap, because in case of legacy hierarchy we uncharge swap on commit (see mem_cgroup_commit_charge). Signed-off-by: Vladimir Davydov Acked-by: Johannes Weiner Cc: Michal Hocko Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memcontrol.h | 1 + include/linux/swap.h | 6 +++ mm/memcontrol.c | 118 ++++++++++++++++++++++++++++++++++++++++++--- mm/shmem.c | 4 ++ mm/swap_state.c | 5 ++ mm/swapfile.c | 4 +- 6 files changed, 128 insertions(+), 10 deletions(-) commit 0b8f73e104285a4badf9d768d1c39b06d77d1f97 Author: Johannes Weiner Date: Wed Jan 20 15:02:53 2016 -0800 mm: memcontrol: clean up alloc, online, offline, free functions The creation and teardown of struct mem_cgroup is fairly messy and that has attracted mistakes and subtle bugs before. The main cause for this is that there is no clear model about what needs to happen when, and that attracts more chaos. So create one: 1. mem_cgroup_alloc() should allocate struct mem_cgroup and its auxiliary members and initialize work items, locks etc. so that the object it returns is fully initialized and in a neutral state. 2. mem_cgroup_css_alloc() will use mem_cgroup_alloc() to obtain a new memcg object and configure it and the system according to the role of the new memory-controlled cgroup in the hierarchy. 3. mem_cgroup_css_online() is no longer needed to synchronize with iterators, but it verifies css->id which isn't available earlier. 4. mem_cgroup_css_offline() implements stuff that needs to happen upon the user-visible destruction of a cgroup, which includes stopping all user interfacing as well as releasing certain structures when continued memory consumption would be unexpected at that point. 5. mem_cgroup_css_free() prepares the system and the memcg object for the object's disappearance, neutralizes its state, and then gives it back to mem_cgroup_free(). 6. mem_cgroup_free() releases struct mem_cgroup and auxiliary memory. [arnd@arndb.de: fix SLOB build regression] Signed-off-by: Johannes Weiner Acked-by: Vladimir Davydov Cc: Michal Hocko Signed-off-by: Arnd Bergmann Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memcontrol.h | 3 - mm/memcontrol.c | 257 +++++++++++++++------------------------------ 2 files changed, 84 insertions(+), 176 deletions(-) commit 0db1529817b7b16226421f01470c5ba982c5f302 Author: Johannes Weiner Date: Wed Jan 20 15:02:50 2016 -0800 mm: memcontrol: flatten struct cg_proto There are no more external users of struct cg_proto, flatten the structure into struct mem_cgroup. Since using those struct members doesn't stand out as much anymore, add cgroup2 static branches to make it clearer which code is legacy. Suggested-by: Vladimir Davydov Signed-off-by: Johannes Weiner Acked-by: Vladimir Davydov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memcontrol.h | 14 ++++++-------- mm/memcontrol.c | 33 +++++++++++++++------------------ 2 files changed, 21 insertions(+), 26 deletions(-) commit d886f4e483ce63a3304adc9eda87031b93341c28 Author: Johannes Weiner Date: Wed Jan 20 15:02:47 2016 -0800 mm: memcontrol: rein in the CONFIG space madness What CONFIG_INET and CONFIG_LEGACY_KMEM guard inside the memory controller code is insignificant, having these conditionals is not worth the complication and fragility that comes with them. [akpm@linux-foundation.org: rework mem_cgroup_css_free() statement ordering] Signed-off-by: Johannes Weiner Cc: Michal Hocko Acked-by: Vladimir Davydov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memcontrol.h | 14 +++++------- init/Kconfig | 21 +++--------------- mm/memcontrol.c | 53 ++++------------------------------------------ mm/vmpressure.c | 2 -- 4 files changed, 12 insertions(+), 78 deletions(-) commit d55f90bfab40e3b5db323711d28186ff09461692 Author: Vladimir Davydov Date: Wed Jan 20 15:02:44 2016 -0800 net: drop tcp_memcontrol.c tcp_memcontrol.c only contains legacy memory.tcp.kmem.* file definitions and mem_cgroup->tcp_mem init/destroy stuff. This doesn't belong to network subsys. Let's move it to memcontrol.c. This also allows us to reuse generic code for handling legacy memcg files. Signed-off-by: Vladimir Davydov Acked-by: Johannes Weiner Cc: "David S. Miller" Acked-by: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/net/tcp_memcontrol.h | 10 --- mm/memcontrol.c | 98 +++++++++++++++++++-- net/ipv4/Makefile | 1 - net/ipv4/sysctl_net_ipv4.c | 1 - net/ipv4/tcp_ipv4.c | 1 - net/ipv4/tcp_memcontrol.c | 200 ------------------------------------------- net/ipv6/tcp_ipv6.c | 1 - 7 files changed, 90 insertions(+), 222 deletions(-) commit 489c2a20a414351fe0813a727c34600c0f7292ae Author: Johannes Weiner Date: Wed Jan 20 15:02:41 2016 -0800 mm: memcontrol: introduce CONFIG_MEMCG_LEGACY_KMEM Let the user know that CONFIG_MEMCG_KMEM does not apply to the cgroup2 interface. This also makes legacy-only code sections stand out better. [arnd@arndb.de: mm: memcontrol: only manage socket pressure for CONFIG_INET] Signed-off-by: Johannes Weiner Cc: Michal Hocko Cc: Tejun Heo Acked-by: Vladimir Davydov Signed-off-by: Arnd Bergmann Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memcontrol.h | 4 ++-- init/Kconfig | 10 +++++++++- mm/memcontrol.c | 18 +++++++++--------- mm/vmpressure.c | 2 ++ net/ipv4/Makefile | 2 +- 5 files changed, 23 insertions(+), 13 deletions(-) commit 04823c833b3eaef7816e28e3727124394f6bb3c3 Author: Vladimir Davydov Date: Wed Jan 20 15:02:38 2016 -0800 mm: memcontrol: allow to disable kmem accounting for cgroup2 Kmem accounting might incur overhead that some users can't put up with. Besides, the implementation is still considered unstable. So let's provide a way to disable it for those users who aren't happy with it. To disable kmem accounting for cgroup2, pass cgroup.memory=nokmem at boot time. Signed-off-by: Vladimir Davydov Acked-by: Johannes Weiner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/kernel-parameters.txt | 1 + mm/memcontrol.c | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) commit 52c29b04823cb1bab2805336b80866325fe2bc3f Author: Johannes Weiner Date: Wed Jan 20 15:02:35 2016 -0800 mm: memcontrol: account "kmem" consumers in cgroup2 memory controller The original cgroup memory controller has an extension to account slab memory (and other "kernel memory" consumers) in a separate "kmem" counter, once the user set an explicit limit on that "kmem" pool. However, this includes various consumers whose sizes are directly linked to userspace activity. Accounting them as an optional "kmem" extension is problematic for several reasons: 1. It leaves the main memory interface with incomplete semantics. A user who puts their workload into a cgroup and configures a memory limit does not expect us to leave holes in the containment as big as the dentry and inode cache, or the kernel stack pages. 2. If the limit set on this random historical subgroup of consumers is reached, subsequent allocations will fail even when the main memory pool available to the cgroup is not yet exhausted and/or has reclaimable memory in it. 3. Calling it 'kernel memory' is misleading. The dentry and inode caches are no more 'kernel' (or no less 'user') memory than the page cache itself. Treating these consumers as different classes is a historical implementation detail that should not leak to users. So, in addition to page cache, anonymous memory, and network socket memory, account the following memory consumers per default in the cgroup2 memory controller: - threadinfo - task_struct - task_delay_info - pid - cred - mm_struct - vm_area_struct and vm_region (nommu) - anon_vma and anon_vma_chain - signal_struct - sighand_struct - fs_struct - files_struct - fdtable and fdtable->full_fds_bits - dentry and external_name - inode for all filesystems. This should give us reasonable memory isolation for most common workloads out of the box. Signed-off-by: Johannes Weiner Acked-by: Michal Hocko Cc: Tejun Heo Acked-by: Vladimir Davydov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memcontrol.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) commit 127424c86bb6cb87f0b563d9fdcfbbaf3c86ecec Author: Johannes Weiner Date: Wed Jan 20 15:02:32 2016 -0800 mm: memcontrol: move kmem accounting code to CONFIG_MEMCG The cgroup2 memory controller will account important in-kernel memory consumers per default. Move all necessary components to CONFIG_MEMCG. Signed-off-by: Johannes Weiner Acked-by: Vladimir Davydov Cc: Michal Hocko Cc: Arnd Bergmann Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/list_lru.h | 4 +-- include/linux/memcontrol.h | 7 +++-- include/linux/sched.h | 4 +-- include/linux/slab.h | 2 +- include/linux/slab_def.h | 3 +- include/linux/slub_def.h | 2 +- mm/list_lru.c | 12 ++++---- mm/memcontrol.c | 69 +++++++++++++++++++++++++++------------------- mm/slab.h | 6 ++-- mm/slab_common.c | 10 +++---- mm/slub.c | 10 +++---- 11 files changed, 72 insertions(+), 57 deletions(-) commit 3893e302f6a377c4ef0f077f190bf760bf84e0be Author: Johannes Weiner Date: Wed Jan 20 15:02:29 2016 -0800 mm: memcontrol: separate kmem code from legacy tcp accounting code The cgroup2 memory controller will include important in-kernel memory consumers per default, including socket memory, but it will no longer carry the historic tcp control interface. Separate the kmem state init from the tcp control interface init in preparation for that. Signed-off-by: Johannes Weiner Acked-by: Michal Hocko Cc: Tejun Heo Acked-by: Vladimir Davydov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memcontrol.c | 33 ++++++++++++--------------------- 1 file changed, 12 insertions(+), 21 deletions(-) commit 8e0a891213fbddcec231c9d1d7577c320c77a25a Author: Johannes Weiner Date: Wed Jan 20 15:02:26 2016 -0800 mm: memcontrol: group kmem init and exit functions together Put all the related code to setup and teardown the kmem accounting state into the same location. No functional change intended. Signed-off-by: Johannes Weiner Acked-by: Michal Hocko Cc: Tejun Heo Acked-by: Vladimir Davydov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memcontrol.c | 157 +++++++++++++++++++++++++++----------------------------- 1 file changed, 76 insertions(+), 81 deletions(-) commit 567e9ab2e614e55feca20e8bcb54b629e9cc1a3b Author: Johannes Weiner Date: Wed Jan 20 15:02:24 2016 -0800 mm: memcontrol: give the kmem states more descriptive names On any given memcg, the kmem accounting feature has three separate states: not initialized, structures allocated, and actively accounting slab memory. These are represented through a combination of the kmem_acct_activated and kmem_acct_active flags, which is confusing. Convert to a kmem_state enum with the states NONE, ALLOCATED, and ONLINE. Then rename the functions to modify the state accordingly. This follows the nomenclature of css object states more closely. Signed-off-by: Johannes Weiner Acked-by: Michal Hocko Cc: Tejun Heo Acked-by: Vladimir Davydov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memcontrol.h | 15 ++++++++----- mm/memcontrol.c | 52 ++++++++++++++++++++++------------------------ mm/slab_common.c | 4 ++-- mm/vmscan.c | 2 +- 4 files changed, 38 insertions(+), 35 deletions(-) commit b15aac110a45c52d7f47ab8ee2d68f98044cfe6c Author: Johannes Weiner Date: Wed Jan 20 15:02:21 2016 -0800 mm: memcontrol: remove double kmem page_counter init The kmem page_counter's limit is initialized to PAGE_COUNTER_MAX inside mem_cgroup_css_online(). There is no need to repeat this from memcg_propagate_kmem(). Signed-off-by: Johannes Weiner Acked-by: Michal Hocko Cc: Tejun Heo Acked-by: Vladimir Davydov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memcontrol.c | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) commit 6d378dac7c4905db38f8127c4e618f0f627a4ced Author: Johannes Weiner Date: Wed Jan 20 15:02:18 2016 -0800 mm: memcontrol: drop unused @css argument in memcg_init_kmem This series adds accounting of the historical "kmem" memory consumers to the cgroup2 memory controller. These consumers include the dentry cache, the inode cache, kernel stack pages, and a few others that are pointed out in patch 7/8. The footprint of these consumers is directly tied to userspace activity in common workloads, and so they have to be part of the minimally viable configuration in order to present a complete feature to our users. The cgroup2 interface of the memory controller is far from complete, but this series, along with the socket memory accounting series, provides the final semantic changes for the existing memory knobs in the cgroup2 interface, which is scheduled for initial release in the next merge window. This patch (of 8): Remove unused css argument frmo memcg_init_kmem() Signed-off-by: Johannes Weiner Acked-by: Michal Hocko Cc: Tejun Heo Acked-by: Vladimir Davydov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/net/tcp_memcontrol.h | 3 ++- mm/memcontrol.c | 6 +++--- net/ipv4/tcp_memcontrol.c | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) commit 545b5e2ad4771d23d4c67d0bcc18babd2070df13 Author: Arnd Bergmann Date: Wed Jan 20 15:02:15 2016 -0800 memstick: use sector_div instead of do_div do_div is the wrong way to divide a sector_t, as it is less efficient when sector_t is 32-bit wide. With the upcoming do_div optimizations, the kernel starts warning about this: drivers/memstick/core/ms_block.c: In function 'msb_io_work': include/asm-generic/div64.h:207:28: warning: comparison of distinct pointer types lacks a cast This changes the code to use sector_div instead, which always produces optimal code. Signed-off-by: Arnd Bergmann Cc: Maxim Levitsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/memstick/core/ms_block.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8e99469ab0f821bea77625cd4775ca529d4ca7d4 Author: Geliang Tang Date: Wed Jan 20 15:02:12 2016 -0800 dma-mapping: use offset_in_page macro Use offset_in_page macro instead of (addr & ~PAGE_MASK). Signed-off-by: Geliang Tang Acked-by: Will Deacon Cc: Christian Borntraeger Cc: Joerg Roedel Cc: Sebastian Ott Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/dma-mapping.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 20d666e41166f8023ff3d960e832d87ded18c5c4 Author: Christoph Hellwig Date: Wed Jan 20 15:02:09 2016 -0800 dma-mapping: remove This wasn't an asm-generic header to start with, and can be merged into dma-mapping.h trivially. Signed-off-by: Christoph Hellwig Cc: "David S. Miller" Cc: Aurelien Jacquiot Cc: Chris Metcalf Cc: David Howells Cc: Geert Uytterhoeven Cc: Haavard Skinnemoen Cc: Hans-Christian Egtvedt Cc: Helge Deller Cc: James Hogan Cc: Jesper Nilsson Cc: Koichi Yasutake Cc: Ley Foon Tan Cc: Mark Salter Cc: Mikael Starvik Cc: Steven Miao Cc: Vineet Gupta Cc: Christian Borntraeger Cc: Joerg Roedel Cc: Sebastian Ott Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/xtensa/include/asm/dma-mapping.h | 2 -- drivers/base/dma-mapping.c | 3 +-- include/asm-generic/dma-coherent.h | 32 -------------------------------- include/linux/dma-mapping.h | 34 ++++++++++++++++++++++++++++------ 4 files changed, 29 insertions(+), 42 deletions(-) commit e1c7e324539ada3b2b13ca2898bcb4948a9ef9db Author: Christoph Hellwig Date: Wed Jan 20 15:02:05 2016 -0800 dma-mapping: always provide the dma_map_ops based implementation Move the generic implementation to now that all architectures support it and remove the HAVE_DMA_ATTR Kconfig symbol now that everyone supports them. [valentinrothberg@gmail.com: remove leftovers in Kconfig] Signed-off-by: Christoph Hellwig Cc: "David S. Miller" Cc: Aurelien Jacquiot Cc: Chris Metcalf Cc: David Howells Cc: Geert Uytterhoeven Cc: Haavard Skinnemoen Cc: Hans-Christian Egtvedt Cc: Helge Deller Cc: James Hogan Cc: Jesper Nilsson Cc: Koichi Yasutake Cc: Ley Foon Tan Cc: Mark Salter Cc: Mikael Starvik Cc: Steven Miao Cc: Vineet Gupta Cc: Christian Borntraeger Cc: Joerg Roedel Cc: Sebastian Ott Signed-off-by: Valentin Rothberg Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/DMA-API-HOWTO.txt | 10 - .../features/io/dma_map_attrs/arch-support.txt | 40 --- arch/Kconfig | 3 - arch/alpha/Kconfig | 1 - arch/alpha/include/asm/dma-mapping.h | 2 - arch/arc/Kconfig | 1 - arch/arc/include/asm/dma-mapping.h | 2 - arch/arm/Kconfig | 1 - arch/arm/include/asm/dma-mapping.h | 7 - arch/arm64/Kconfig | 1 - arch/arm64/include/asm/dma-mapping.h | 2 - arch/avr32/Kconfig | 1 - arch/avr32/include/asm/dma-mapping.h | 2 - arch/blackfin/Kconfig | 1 - arch/blackfin/include/asm/dma-mapping.h | 2 - arch/c6x/Kconfig | 1 - arch/c6x/include/asm/dma-mapping.h | 2 - arch/cris/Kconfig | 1 - arch/cris/include/asm/dma-mapping.h | 2 - arch/frv/Kconfig | 1 - arch/frv/include/asm/dma-mapping.h | 2 - arch/h8300/Kconfig | 1 - arch/h8300/include/asm/dma-mapping.h | 2 - arch/hexagon/Kconfig | 1 - arch/hexagon/include/asm/dma-mapping.h | 2 - arch/ia64/Kconfig | 1 - arch/ia64/include/asm/dma-mapping.h | 2 - arch/m68k/Kconfig | 1 - arch/m68k/include/asm/dma-mapping.h | 2 - arch/metag/Kconfig | 1 - arch/metag/include/asm/dma-mapping.h | 2 - arch/microblaze/Kconfig | 1 - arch/microblaze/include/asm/dma-mapping.h | 2 - arch/mips/Kconfig | 1 - arch/mips/include/asm/dma-mapping.h | 2 - arch/mn10300/Kconfig | 1 - arch/mn10300/include/asm/dma-mapping.h | 2 - arch/nios2/Kconfig | 1 - arch/openrisc/Kconfig | 3 - arch/openrisc/include/asm/dma-mapping.h | 2 - arch/parisc/Kconfig | 1 - arch/parisc/include/asm/dma-mapping.h | 2 - arch/powerpc/Kconfig | 1 - arch/powerpc/include/asm/dma-mapping.h | 2 - arch/s390/Kconfig | 1 - arch/s390/include/asm/dma-mapping.h | 2 - arch/sh/Kconfig | 1 - arch/sh/include/asm/dma-mapping.h | 2 - arch/sparc/Kconfig | 1 - arch/sparc/include/asm/dma-mapping.h | 2 - arch/tile/Kconfig | 1 - arch/tile/include/asm/dma-mapping.h | 3 - arch/unicore32/Kconfig | 1 - arch/unicore32/include/asm/dma-mapping.h | 2 - arch/x86/Kconfig | 1 - arch/x86/include/asm/dma-mapping.h | 2 - arch/xtensa/Kconfig | 1 - arch/xtensa/include/asm/dma-mapping.h | 2 - drivers/gpu/drm/Kconfig | 4 +- drivers/gpu/drm/imx/Kconfig | 2 +- drivers/gpu/drm/rcar-du/Kconfig | 2 +- drivers/gpu/drm/shmobile/Kconfig | 2 +- drivers/gpu/drm/sti/Kconfig | 2 +- drivers/gpu/drm/tilcdc/Kconfig | 2 +- drivers/gpu/drm/vc4/Kconfig | 2 +- drivers/media/platform/Kconfig | 1 - include/asm-generic/dma-mapping-broken.h | 95 ------ include/asm-generic/dma-mapping-common.h | 358 ------------------- include/linux/dma-attrs.h | 10 - include/linux/dma-mapping.h | 379 ++++++++++++++++++++- 70 files changed, 369 insertions(+), 633 deletions(-) commit bd38118f9c57b22f57f9c2fccca4a82aef15cc5f Author: Christoph Hellwig Date: Wed Jan 20 15:02:02 2016 -0800 tile: uninline dma_set_mask We'll soon merge into and the reference to dma_capable in the tile dma_set_mask would create a circular dependency. Fix this by moving the implementation out of line. Signed-off-by: Christoph Hellwig Cc: Chris Metcalf Cc: Christian Borntraeger Cc: Joerg Roedel Cc: Sebastian Ott Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/tile/include/asm/dma-mapping.h | 29 +---------------------------- arch/tile/kernel/pci-dma.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 28 deletions(-) commit 30081d8ea47d521e8804398b25f59b8e49a2ed0b Author: Christoph Hellwig Date: Wed Jan 20 15:01:59 2016 -0800 sparc: use generic dma_set_mask Sparc already uses the same code as the generic code for the PCI implementation but just fails the call sbus. This moves to the generic implemenation which eventually return -EIO due to the NULL dma_mask pointer in the device. Signed-off-by: Christoph Hellwig Cc: "David S. Miller" Cc: Christian Borntraeger Cc: Joerg Roedel Cc: Sebastian Ott Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/sparc/include/asm/dma-mapping.h | 15 --------------- 1 file changed, 15 deletions(-) commit 5348c1e9e0dc2b62a484c4b74a8d1d59aa9620a4 Author: Christoph Hellwig Date: Wed Jan 20 15:01:56 2016 -0800 metag: convert to dma_map_ops Signed-off-by: Christoph Hellwig Cc: James Hogan Cc: Christian Borntraeger Cc: Joerg Roedel Cc: Sebastian Ott Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/metag/Kconfig | 1 + arch/metag/include/asm/dma-mapping.h | 179 +---------------------------------- arch/metag/kernel/dma.c | 146 +++++++++++++++++++++------- 3 files changed, 117 insertions(+), 209 deletions(-) commit 340f3039acd67ec7750e36bd327caadadaacaaf4 Author: Christoph Hellwig Date: Wed Jan 20 15:01:53 2016 -0800 m68k: convert to dma_map_ops Signed-off-by: Christoph Hellwig Cc: Geert Uytterhoeven Cc: Christian Borntraeger Cc: Joerg Roedel Cc: Sebastian Ott Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/m68k/Kconfig | 1 + arch/m68k/include/asm/dma-mapping.h | 112 ++---------------------------------- arch/m68k/kernel/dma.c | 61 +++++++++----------- 3 files changed, 32 insertions(+), 142 deletions(-) commit f151341ca00e0418f98a5131e1a4a2a3ec219653 Author: Christoph Hellwig Date: Wed Jan 20 15:01:50 2016 -0800 mn10300: convert to dma_map_ops Signed-off-by: Christoph Hellwig Cc: David Howells Cc: Christian Borntraeger Cc: Joerg Roedel Cc: Sebastian Ott Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/mn10300/Kconfig | 2 + arch/mn10300/include/asm/dma-mapping.h | 161 +-------------------------------- arch/mn10300/mm/dma-alloc.c | 67 ++++++++++++-- 3 files changed, 67 insertions(+), 163 deletions(-) commit 79387179e2e4fede52326e4c4e26145dbd6b505c Author: Christoph Hellwig Date: Wed Jan 20 15:01:47 2016 -0800 parisc: convert to dma_map_ops Signed-off-by: Christoph Hellwig Tested-by: Helge Deller Acked-by: Helge Deller Cc: Christian Borntraeger Cc: Joerg Roedel Cc: Sebastian Ott Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/parisc/Kconfig | 2 + arch/parisc/include/asm/dma-mapping.h | 189 ++-------------------------------- arch/parisc/kernel/drivers.c | 2 +- arch/parisc/kernel/pci-dma.c | 92 ++++++++++------- drivers/parisc/ccio-dma.c | 57 +++++----- drivers/parisc/sba_iommu.c | 52 +++++----- 6 files changed, 124 insertions(+), 270 deletions(-) commit eae075196305549513335c2fc7d5d63712246bfd Author: Christoph Hellwig Date: Wed Jan 20 15:01:44 2016 -0800 frv: convert to dma_map_ops Signed-off-by: Christoph Hellwig Cc: David Howells Cc: Christian Borntraeger Cc: Joerg Roedel Cc: Sebastian Ott Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/frv/Kconfig | 2 + arch/frv/include/asm/dma-mapping.h | 132 ++-------------------------------- arch/frv/mb93090-mb00/pci-dma-nommu.c | 72 ++++++++++++------- arch/frv/mb93090-mb00/pci-dma.c | 74 ++++++++++++------- 4 files changed, 101 insertions(+), 179 deletions(-) commit 5a1a67f1d7fef42eaa5a4cc3d48094fbec75d685 Author: Christoph Hellwig Date: Wed Jan 20 15:01:41 2016 -0800 nios2: convert to dma_map_ops Signed-off-by: Christoph Hellwig Cc: Ley Foon Tan Cc: Christian Borntraeger Cc: Joerg Roedel Cc: Sebastian Ott Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/nios2/Kconfig | 1 + arch/nios2/include/asm/dma-mapping.h | 123 ++--------------------------- arch/nios2/mm/dma-mapping.c | 149 +++++++++++++++++++---------------- 3 files changed, 87 insertions(+), 186 deletions(-) commit e20dd88995dffe262934f355b3e96daa2458b331 Author: Christoph Hellwig Date: Wed Jan 20 15:01:38 2016 -0800 cris: convert to dma_map_ops Signed-off-by: Christoph Hellwig Cc: Mikael Starvik Cc: Jesper Nilsson Cc: Christian Borntraeger Cc: Joerg Roedel Cc: Sebastian Ott Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/cris/Kconfig | 1 + arch/cris/arch-v32/drivers/pci/dma.c | 54 +++++++++--- arch/cris/include/asm/dma-mapping.h | 161 ++--------------------------------- 3 files changed, 51 insertions(+), 165 deletions(-) commit 4605f04b2893fb5498b31c54e8f21da2fc4cc736 Author: Christoph Hellwig Date: Wed Jan 20 15:01:35 2016 -0800 c6x: convert to dma_map_ops [dan.carpenter@oracle.com: C6X: fix build breakage] Signed-off-by: Christoph Hellwig Cc: Mark Salter Cc: Aurelien Jacquiot Cc: Christian Borntraeger Cc: Joerg Roedel Cc: Sebastian Ott Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/c6x/Kconfig | 2 + arch/c6x/include/asm/dma-mapping.h | 98 ++++---------------------------------- arch/c6x/kernel/dma.c | 95 +++++++++++++++++------------------- arch/c6x/mm/dma-coherent.c | 10 ++-- 4 files changed, 58 insertions(+), 147 deletions(-) commit 6f62097583e799040d6d18909b670b1e4dbb614d Author: Christoph Hellwig Date: Wed Jan 20 15:01:32 2016 -0800 blackfin: convert to dma_map_ops Signed-off-by: Christoph Hellwig Cc: Steven Miao Cc: Christian Borntraeger Cc: Joerg Roedel Cc: Sebastian Ott Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/blackfin/Kconfig | 1 + arch/blackfin/include/asm/dma-mapping.h | 127 +------------------------------- arch/blackfin/kernel/dma-mapping.c | 52 +++++++++---- 3 files changed, 43 insertions(+), 137 deletions(-) commit a34a517ac96c6910a3a0aab9513035bfbed0020c Author: Christoph Hellwig Date: Wed Jan 20 15:01:29 2016 -0800 avr32: convert to dma_map_ops Signed-off-by: Christoph Hellwig Cc: Haavard Skinnemoen Cc: Hans-Christian Egtvedt Cc: Christian Borntraeger Cc: Joerg Roedel Cc: Sebastian Ott Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/avr32/Kconfig | 1 + arch/avr32/include/asm/dma-mapping.h | 342 +---------------------------------- arch/avr32/mm/dma-coherent.c | 115 ++++++++---- 3 files changed, 85 insertions(+), 373 deletions(-) commit 052c96dbe33b032b949510ca724ed54d02e1255c Author: Christoph Hellwig Date: Wed Jan 20 15:01:26 2016 -0800 arc: convert to dma_map_ops [vgupta@synopsys.com: ARC: dma mapping fixes #2] Signed-off-by: Christoph Hellwig Cc: Vineet Gupta Cc: Christian Borntraeger Cc: Joerg Roedel Cc: Sebastian Ott Signed-off-by: Vineet Gupta Cc: Carlos Palminha Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/arc/Kconfig | 1 + arch/arc/include/asm/dma-mapping.h | 187 +------------------------------------ arch/arc/mm/dma.c | 152 ++++++++++++++++++++---------- 3 files changed, 110 insertions(+), 230 deletions(-) commit 0d4a619b64bad7117947a84a10c17a2b8f14d252 Author: Christoph Hellwig Date: Wed Jan 20 15:01:22 2016 -0800 dma-mapping: make the generic coherent dma mmap implementation optional This series converts all remaining architectures to use dma_map_ops and the generic implementation of the DMA API. This not only simplifies the code a lot, but also prepares for possible future changes like more generic non-iommu dma_ops implementations or generic per-device dma_map_ops. This patch (of 16): We have a couple architectures that do not want to support this code, so add another Kconfig symbol that disables the code similar to what we do for the nommu case. Signed-off-by: Christoph Hellwig Cc: Haavard Skinnemoen Cc: Hans-Christian Egtvedt Cc: Steven Miao Cc: Ley Foon Tan Cc: David Howells Cc: Koichi Yasutake Cc: Chris Metcalf Cc: "David S. Miller" Cc: Aurelien Jacquiot Cc: Geert Uytterhoeven Cc: Helge Deller Cc: James Hogan Cc: Jesper Nilsson Cc: Mark Salter Cc: Mikael Starvik Cc: Vineet Gupta Cc: Christian Borntraeger Cc: Joerg Roedel Cc: Sebastian Ott Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/Kconfig | 3 +++ drivers/base/dma-mapping.c | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) commit f9ed89e17ee7d1f5f25615bb0080b9a3ff1bb5f0 Author: Fengguang Wu Date: Wed Jan 20 15:01:19 2016 -0800 iio: core: fix ptr_ret.cocci warnings drivers/iio/industrialio-sw-trigger.c:169: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 Cc: Joel Becker Cc: Lars-Peter Clausen Cc: Christoph Hellwig Cc: Hartmut Knaack Cc: Octavian Purdila Cc: Paul Bolle Cc: Adriana Reus Cc: Daniel Baluta Cc: Cristina Opriceana Cc: Peter Meerwald Cc: Alexander Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/iio/industrialio-sw-trigger.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 90d6cd51af1aa275a302846b35b9638c870d2af5 Author: Andrew Morton Date: Wed Jan 20 15:01:16 2016 -0800 fs/adfs/adfs.h: tidy up comments Lots of needless 80-col overflows. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/adfs/adfs.h | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) commit e458bcd16f5bec6f19b60ef957b4f88af95aa78a Author: Andrew Morton Date: Wed Jan 20 15:01:13 2016 -0800 fs/overlayfs/super.c needs pagemap.h i386 allmodconfig: In file included from fs/overlayfs/super.c:10:0: fs/overlayfs/super.c: In function 'ovl_fill_super': include/linux/fs.h:898:36: error: 'PAGE_CACHE_SIZE' undeclared (first use in this function) #define MAX_LFS_FILESIZE (((loff_t)PAGE_CACHE_SIZE << (BITS_PER_LONG-1))-1) ^ fs/overlayfs/super.c:939:19: note: in expansion of macro 'MAX_LFS_FILESIZE' sb->s_maxbytes = MAX_LFS_FILESIZE; ^ include/linux/fs.h:898:36: note: each undeclared identifier is reported only once for each function it appears in #define MAX_LFS_FILESIZE (((loff_t)PAGE_CACHE_SIZE << (BITS_PER_LONG-1))-1) ^ fs/overlayfs/super.c:939:19: note: in expansion of macro 'MAX_LFS_FILESIZE' sb->s_maxbytes = MAX_LFS_FILESIZE; ^ Cc: Miklos Szeredi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/overlayfs/super.c | 1 + 1 file changed, 1 insertion(+) commit 2954e440be7305134be632a94536b412899490f7 Author: Yaowei Bai Date: Wed Jan 20 15:01:11 2016 -0800 ipc/shm.c: is_file_shm_hugepages() can be boolean Make is_file_shm_hugepages() return bool to improve readability due to this particular function only using either one or zero as its return value. No functional change. Signed-off-by: Yaowei Bai Acked-by: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/shm.h | 6 +++--- ipc/shm.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) commit 06af1c52c9ea234e0b1266cc0b52c3e0c6c8fe9f Author: Bongkyu Kim Date: Wed Jan 20 15:01:08 2016 -0800 lz4: fix wrong compress buffer size for 64-bits The current lz4 compress buffer is 16kb on 32-bits, 32kb on 64-bits system. But, lz4 needs only 16kb on both. On 64-bits, this causes wasted cpu cycles for additional memset during every compression. In case of lz4hc, the current buffer size is (256kb + 8) on 32-bits, (512kb + 16) on 64-bits. But, lz4hc needs only (256kb + 2 * pointer) on both. This patch fixes these wrong compress buffer sizes for 64-bits. Signed-off-by: Bongkyu Kim Cc: Chanho Min Cc: Yann Collet Cc: Kyungsik Lee Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/lz4.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a3b609ef9f8b1dbfe97034ccad6cd3fe71fbe7ab Author: Mateusz Guzik Date: Wed Jan 20 15:01:05 2016 -0800 proc read mm's {arg,env}_{start,end} with mmap semaphore taken. Only functions doing more than one read are modified. Consumeres happened to deal with possibly changing data, but it does not seem like a good thing to rely on. Signed-off-by: Mateusz Guzik Acked-by: Cyrill Gorcunov Cc: Alexey Dobriyan Cc: Jarod Wilson Cc: Jan Stancek Cc: Al Viro Cc: Anshuman Khandual Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/proc/base.c | 13 ++++++++++--- mm/util.c | 16 ++++++++++++---- 2 files changed, 22 insertions(+), 7 deletions(-) commit ddf1d398e517e660207e2c807f76a90df543a217 Author: Mateusz Guzik Date: Wed Jan 20 15:01:02 2016 -0800 prctl: take mmap sem for writing to protect against others An unprivileged user can trigger an oops on a kernel with CONFIG_CHECKPOINT_RESTORE. proc_pid_cmdline_read takes mmap_sem for reading and obtains args + env start/end values. These get sanity checked as follows: BUG_ON(arg_start > arg_end); BUG_ON(env_start > env_end); These can be changed by prctl_set_mm. Turns out also takes the semaphore for reading, effectively rendering it useless. This results in: kernel BUG at fs/proc/base.c:240! invalid opcode: 0000 [#1] SMP Modules linked in: virtio_net CPU: 0 PID: 925 Comm: a.out Not tainted 4.4.0-rc8-next-20160105dupa+ #71 Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 task: ffff880077a68000 ti: ffff8800784d0000 task.ti: ffff8800784d0000 RIP: proc_pid_cmdline_read+0x520/0x530 RSP: 0018:ffff8800784d3db8 EFLAGS: 00010206 RAX: ffff880077c5b6b0 RBX: ffff8800784d3f18 RCX: 0000000000000000 RDX: 0000000000000002 RSI: 00007f78e8857000 RDI: 0000000000000246 RBP: ffff8800784d3e40 R08: 0000000000000008 R09: 0000000000000001 R10: 0000000000000000 R11: 0000000000000001 R12: 0000000000000050 R13: 00007f78e8857800 R14: ffff88006fcef000 R15: ffff880077c5b600 FS: 00007f78e884a740(0000) GS:ffff88007b200000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b CR2: 00007f78e8361770 CR3: 00000000790a5000 CR4: 00000000000006f0 Call Trace: __vfs_read+0x37/0x100 vfs_read+0x82/0x130 SyS_read+0x58/0xd0 entry_SYSCALL_64_fastpath+0x12/0x76 Code: 4c 8b 7d a8 eb e9 48 8b 9d 78 ff ff ff 4c 8b 7d 90 48 8b 03 48 39 45 a8 0f 87 f0 fe ff ff e9 d1 fe ff ff 4c 8b 7d 90 eb c6 0f 0b <0f> 0b 0f 0b 66 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 RIP proc_pid_cmdline_read+0x520/0x530 ---[ end trace 97882617ae9c6818 ]--- Turns out there are instances where the code just reads aformentioned values without locking whatsoever - namely environ_read and get_cmdline. Interestingly these functions look quite resilient against bogus values, but I don't believe this should be relied upon. The first patch gets rid of the oops bug by grabbing mmap_sem for writing. The second patch is optional and puts locking around aformentioned consumers for safety. Consumers of other fields don't seem to benefit from similar treatment and are left untouched. This patch (of 2): The code was taking the semaphore for reading, which does not protect against readers nor concurrent modifications. The problem could cause a sanity checks to fail in procfs's cmdline reader, resulting in an OOPS. Note that some functions perform an unlocked read of various mm fields, but they seem to be fine despite possible modificaton. Signed-off-by: Mateusz Guzik Acked-by: Cyrill Gorcunov Cc: Alexey Dobriyan Cc: Jarod Wilson Cc: Jan Stancek Cc: Al Viro Cc: Anshuman Khandual Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/sys.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit bf76f73c5f6554df1bd337aea5b3ea561f09632c Author: Daniel Axtens Date: Wed Jan 20 15:00:58 2016 -0800 powerpc: enable UBSAN support This hooks up UBSAN support for PowerPC. So far it's found some interesting cases where we don't properly sanitise input to shifts, including one in our futex handling. Nothing critical, but interesting and worth fixing. [valentinrothberg@gmail.com: arch/powerpc/Kconfig: fix typo in select statement] Signed-off-by: Daniel Axtens Cc: Andrey Ryabinin Cc: Benjamin Herrenschmidt Tested-by: Andrew Donnellan Acked-by: Michael Ellerman Signed-off-by: Valentin Rothberg Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/powerpc/Kconfig | 1 + arch/powerpc/kernel/Makefile | 8 +++++++- arch/powerpc/kernel/vdso32/Makefile | 1 + arch/powerpc/kernel/vdso64/Makefile | 1 + arch/powerpc/xmon/Makefile | 1 + 5 files changed, 11 insertions(+), 1 deletion(-) commit c6d308534aef6c99904bf5862066360ae067abc4 Author: Andrey Ryabinin Date: Wed Jan 20 15:00:55 2016 -0800 UBSAN: run-time undefined behavior sanity checker UBSAN uses compile-time instrumentation to catch undefined behavior (UB). Compiler inserts code that perform certain kinds of checks before operations that could cause UB. If check fails (i.e. UB detected) __ubsan_handle_* function called to print error message. So the most of the work is done by compiler. This patch just implements ubsan handlers printing errors. GCC has this capability since 4.9.x [1] (see -fsanitize=undefined option and its suboptions). However GCC 5.x has more checkers implemented [2]. Article [3] has a bit more details about UBSAN in the GCC. [1] - https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gcc/Debugging-Options.html [2] - https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html [3] - http://developerblog.redhat.com/2014/10/16/gcc-undefined-behavior-sanitizer-ubsan/ Issues which UBSAN has found thus far are: Found bugs: * out-of-bounds access - 97840cb67ff5 ("netfilter: nfnetlink: fix insufficient validation in nfnetlink_bind") undefined shifts: * d48458d4a768 ("jbd2: use a better hash function for the revoke table") * 10632008b9e1 ("clockevents: Prevent shift out of bounds") * 'x << -1' shift in ext4 - http://lkml.kernel.org/r/<5444EF21.8020501@samsung.com> * undefined rol32(0) - http://lkml.kernel.org/r/<1449198241-20654-1-git-send-email-sasha.levin@oracle.com> * undefined dirty_ratelimit calculation - http://lkml.kernel.org/r/<566594E2.3050306@odin.com> * undefined roundown_pow_of_two(0) - http://lkml.kernel.org/r/<1449156616-11474-1-git-send-email-sasha.levin@oracle.com> * [WONTFIX] undefined shift in __bpf_prog_run - http://lkml.kernel.org/r/ WONTFIX here because it should be fixed in bpf program, not in kernel. signed overflows: * 32a8df4e0b33f ("sched: Fix odd values in effective_load() calculations") * mul overflow in ntp - http://lkml.kernel.org/r/<1449175608-1146-1-git-send-email-sasha.levin@oracle.com> * incorrect conversion into rtc_time in rtc_time64_to_tm() - http://lkml.kernel.org/r/<1449187944-11730-1-git-send-email-sasha.levin@oracle.com> * unvalidated timespec in io_getevents() - http://lkml.kernel.org/r/ * [NOTABUG] signed overflow in ktime_add_safe() - http://lkml.kernel.org/r/ [akpm@linux-foundation.org: fix unused local warning] [akpm@linux-foundation.org: fix __int128 build woes] Signed-off-by: Andrey Ryabinin Cc: Peter Zijlstra Cc: Sasha Levin Cc: Randy Dunlap Cc: Rasmus Villemoes Cc: Jonathan Corbet Cc: Michal Marek Cc: Thomas Gleixner Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: Yury Gribov Cc: Dmitry Vyukov Cc: Konstantin Khlebnikov Cc: Kostya Serebryany Cc: Johannes Berg Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/ubsan.txt | 84 +++++++ Makefile | 3 +- arch/x86/Kconfig | 1 + arch/x86/boot/Makefile | 1 + arch/x86/boot/compressed/Makefile | 1 + arch/x86/entry/vdso/Makefile | 1 + arch/x86/realmode/rm/Makefile | 1 + drivers/firmware/efi/libstub/Makefile | 1 + include/linux/sched.h | 3 + lib/Kconfig.debug | 2 + lib/Kconfig.ubsan | 29 +++ lib/Makefile | 3 + lib/ubsan.c | 456 ++++++++++++++++++++++++++++++++++ lib/ubsan.h | 84 +++++++ mm/kasan/Makefile | 1 + scripts/Makefile.lib | 6 + scripts/Makefile.ubsan | 17 ++ 17 files changed, 693 insertions(+), 1 deletion(-) commit 68920c973254c5b71a684645c5f6f82d6732c5d6 Author: Andrey Ryabinin Date: Wed Jan 20 15:00:51 2016 -0800 net/mac80211/debugfs.c: prevent build failure with CONFIG_UBSAN=y With upcoming CONFIG_UBSAN the following BUILD_BUG_ON in net/mac80211/debugfs.c starts to trigger: BUILD_BUG_ON(hw_flag_names[NUM_IEEE80211_HW_FLAGS] != (void *)0x1); It seems, that compiler instrumentation causes some code deoptimizations. Because of that GCC is not being able to resolve condition in BUILD_BUG_ON() at compile time. We could make size of hw_flag_names array unspecified and replace the condition in BUILD_BUG_ON() with following: ARRAY_SIZE(hw_flag_names) != NUM_IEEE80211_HW_FLAGS That will have the same effect as before (adding new flag without updating array will trigger build failure) except it doesn't fail with CONFIG_UBSAN. As a bonus this patch slightly decreases size of hw_flag_names array. Signed-off-by: Andrey Ryabinin Cc: Johannes Berg Cc: "David S. Miller" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds net/mac80211/debugfs.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 5c9cf8af2e77388f1da81c39237fb4f20c2f85d5 Author: Andrey Ryabinin Date: Wed Jan 20 15:00:48 2016 -0800 kernel: printk: specify alignment for struct printk_log On architectures that have support for efficient unaligned access struct printk_log has 4-byte alignment. Specify alignment attribute in type declaration. The whole point of this patch is to fix deadlock which happening when UBSAN detects unaligned access in printk() thus UBSAN recursively calls printk() with logbuf_lock held by top printk() call. Signed-off-by: Andrey Ryabinin Cc: Peter Zijlstra Cc: Sasha Levin Cc: Randy Dunlap Cc: Rasmus Villemoes Cc: Jonathan Corbet Cc: Michal Marek Cc: Thomas Gleixner Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: Yury Gribov Cc: Dmitry Vyukov Cc: Konstantin Khlebnikov Cc: Kostya Serebryany Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/printk/printk.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 41662f5cc55335807d39404371cfcbb1909304c4 Author: Kees Cook Date: Wed Jan 20 15:00:45 2016 -0800 sysctl: enable strict writes SYSCTL_WRITES_WARN was added in commit f4aacea2f5d1 ("sysctl: allow for strict write position handling"), and released in v3.16 in August of 2014. Since then I can find only 1 instance of non-zero offset writing[1], and it was fixed immediately in CRIU[2]. As such, it appears safe to flip this to the strict state now. [1] https://www.google.com/search?q="when%20file%20position%20was%20not%200" [2] http://lists.openvz.org/pipermail/criu/2015-April/019819.html Signed-off-by: Kees Cook Cc: "Eric W. Biederman" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/sysctl/kernel.txt | 15 +++++++-------- kernel/sysctl.c | 2 +- 2 files changed, 8 insertions(+), 9 deletions(-) commit a460bece027301e079b9e53c5e0f67c8e3eaebc1 Author: Davidlohr Bueso Date: Wed Jan 20 15:00:42 2016 -0800 rbtree: use READ_ONCE in RB_EMPTY_ROOT With commit d72da4a4d97 ("rbtree: Make lockless searches non-fatal") our rbtrees provide weak guarantees that allows us to do lockless (and very speculative) reads of the tree. Such readers cannot see partial stores on nodes, ie left/right as well as root. As such, similar to the WRITE_ONCE semantics when doing rotations, use READ_ONCE when checking the root node in RB_EMPTY_ROOT. Signed-off-by: Davidlohr Bueso Acked-by: Peter Zijlstra (Intel) Cc: Michel Lespinasse Cc: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/rbtree.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a253f1eee6c471d5418983ca9aa9c756e7db5db9 Author: Geliang Tang Date: Wed Jan 20 15:00:39 2016 -0800 rapidio: use kobj_to_dev() Use kobj_to_dev() instead of open-coding it. Signed-off-by: Geliang Tang Acked-by: "Bounine, Alexandre" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/rapidio/rio-sysfs.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 978e30c9b46161c792ecdad0091fd017b21b8ca5 Author: Xunlei Pang Date: Wed Jan 20 15:00:36 2016 -0800 kexec: move some memembers and definitions within the scope of CONFIG_KEXEC_FILE Move the stuff currently only used by the kexec file code within CONFIG_KEXEC_FILE (and CONFIG_KEXEC_VERIFY_SIG). Also move internal "struct kexec_sha_region" and "struct kexec_buf" into "kexec_internal.h". Signed-off-by: Xunlei Pang Cc: "Eric W. Biederman" Cc: Dave Young Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/x86/kernel/machine_kexec_64.c | 2 ++ include/linux/kexec.h | 62 +++++++++++++++----------------------- kernel/kexec_file.c | 2 ++ kernel/kexec_internal.h | 21 +++++++++++++ 4 files changed, 50 insertions(+), 37 deletions(-) commit 2b24692b9235cb82b6f735b7a4c4137211ddf005 Author: Geliang Tang Date: Wed Jan 20 15:00:34 2016 -0800 kernel/kexec_core.c: use list_for_each_entry_safe in kimage_free_page_list Use list_for_each_entry_safe() instead of list_for_each_safe() to simplify the code. Signed-off-by: Geliang Tang Cc: Dave Young Cc: Vivek Goyal Acked-by: Baoquan He Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/kexec_core.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit cdf4b3fa03bab157d2d70d4de65bb7ae319b084f Author: Xunlei Pang Date: Wed Jan 20 15:00:31 2016 -0800 kexec: set KEXEC_TYPE_CRASH before sanity_check_segment_list() sanity_check_segment_list() checks KEXEC_TYPE_CRASH flag to ensure all the segments of the loaded crash kernel are within the kernel crash resource limits, so set the flag beforehand. Signed-off-by: Xunlei Pang Acked-by: Dave Young Cc: Eric Biederman Cc: Vivek Goyal Acked-by: Baoquan He Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/kexec.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 9425676a363c0976e3d43dda792dc4711a651d1d Author: Rasmus Villemoes Date: Wed Jan 20 15:00:28 2016 -0800 kernel/cpu.c: make set_cpu_* static inlines Almost all callers of the set_cpu_* functions pass an explicit true or false. Making them static inline thus replaces the function calls with a simple set_bit/clear_bit, saving some .text. Signed-off-by: Rasmus Villemoes Acked-by: Rusty Russell Cc: Greg Kroah-Hartman Cc: Michael Ellerman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/cpumask.h | 43 +++++++++++++++++++++++++++++++++++++++---- kernel/cpu.c | 34 ---------------------------------- 2 files changed, 39 insertions(+), 38 deletions(-) commit 5aec01b834fd6f8ca49d1aeede665b950d0c148e Author: Rasmus Villemoes Date: Wed Jan 20 15:00:25 2016 -0800 kernel/cpu.c: eliminate cpu_*_mask Replace the variables cpu_possible_mask, cpu_online_mask, cpu_present_mask and cpu_active_mask with macros expanding to expressions of the same type and value, eliminating some indirection. Signed-off-by: Rasmus Villemoes Acked-by: Rusty Russell Cc: Greg Kroah-Hartman Cc: Michael Ellerman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/cpumask.h | 8 ++++---- kernel/cpu.c | 8 -------- 2 files changed, 4 insertions(+), 12 deletions(-) commit 848e239155a17c5373e52278ff9a13b29867ea8a Author: Rasmus Villemoes Date: Wed Jan 20 15:00:22 2016 -0800 drivers/base/cpu.c: use __cpu_*_mask directly The only user of the lvalue-ness of the cpu_*_mask variables is in drivers/base/cpu.c, and that is mostly a work-around for the fact that not even const variables can be used in static initialization. Now that the underlying struct cpumasks are exposed we can take their address. Signed-off-by: Rasmus Villemoes Acked-by: Rusty Russell Acked-by: Greg Kroah-Hartman Cc: Michael Ellerman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/base/cpu.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 4b804c85dc37db6c108832b28cd54673ff7ee037 Author: Rasmus Villemoes Date: Wed Jan 20 15:00:19 2016 -0800 kernel/cpu.c: export __cpu_*_mask Exporting the cpumasks __cpu_possible_mask and friends will allow us to remove the extra indirection through the cpu_*_mask variables. It will also allow the set_cpu_* functions to become static inlines, which will give a .text reduction. Signed-off-by: Rasmus Villemoes Acked-by: Rusty Russell Cc: Greg Kroah-Hartman Cc: Michael Ellerman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/cpumask.h | 4 ++++ kernel/cpu.c | 14 +++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) commit c4c54dd1caf1393c529e7ea1f18b4342c796a49c Author: Rasmus Villemoes Date: Wed Jan 20 15:00:16 2016 -0800 kernel/cpu.c: change type of cpu_possible_bits and friends Change cpu_possible_bits and friends (online, present, active) from being bitmaps that happen to have the right size to actually being struct cpumasks. Also rename them to __cpu_xyz_mask. This is mostly a small cleanup in preparation for exporting them and, eventually, eliminating the extra indirection through the cpu_xyz_mask variables. Signed-off-by: Rasmus Villemoes Acked-by: Rusty Russell Cc: Greg Kroah-Hartman Cc: Michael Ellerman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/cpu.c | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) commit a0512164278b11deb3b07bf14e72f8b979b07aa6 Author: Rasmus Villemoes Date: Wed Jan 20 15:00:13 2016 -0800 powerpc/fadump: rename cpu_online_mask member of struct fadump_crash_info_header The four cpumasks cpu_{possible,online,present,active}_bits are exposed readonly via the corresponding const variables cpu_xyz_mask. But they are also accessible for arbitrary writing via the exposed functions set_cpu_xyz. There's quite a bit of code throughout the kernel which iterates over or otherwise accesses these bitmaps, and having the access go via the cpu_xyz_mask variables is nowadays [1] simply a useless indirection. It may be that any problem in CS can be solved by an extra level of indirection, but that doesn't mean every extra indirection solves a problem. In this case, it even necessitates some minor ugliness (see 4/6). Patch 1/6 is new in v2, and fixes a build failure on ppc by renaming a struct member, to avoid problems when the identifier cpu_online_mask becomes a macro later in the series. The next four patches eliminate the cpu_xyz_mask variables by simply exposing the actual bitmaps, after renaming them to discourage direct access - that still happens through cpu_xyz_mask, which are now simply macros with the same type and value as they used to have. After that, there's no longer any reason to have the setter functions be out-of-line: The boolean parameter is almost always a literal true or false, so by making them static inlines they will usually compile to one or two instructions. For a defconfig build on x86_64, bloat-o-meter says we save ~3000 bytes. We also save a little stack (stackdelta says 127 functions have a 16 byte smaller stack frame, while two grow by that amount). Mostly because, when iterating over the mask, gcc typically loads the value of cpu_xyz_mask into a callee-saved register and from there into %rdi before each find_next_bit call - now it can just load the appropriate immediate address into %rdi before each call. [1] See Rusty's kind explanation http://thread.gmane.org/gmane.linux.kernel/2047078/focus=2047722 for some historic context. This patch (of 6): As preparation for eliminating the indirect access to the various global cpu_*_bits bitmaps via the pointer variables cpu_*_mask, rename the cpu_online_mask member of struct fadump_crash_info_header to simply online_mask, thus allowing cpu_online_mask to become a macro. Signed-off-by: Rasmus Villemoes Acked-by: Michael Ellerman Cc: Greg Kroah-Hartman Cc: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/powerpc/include/asm/fadump.h | 2 +- arch/powerpc/kernel/fadump.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit c428fbdbf3e9515bfe686881ffdba862dbd8cb6f Author: Dmitry Safonov <0x7f454c46@gmail.com> Date: Wed Jan 20 15:00:10 2016 -0800 exit: remove unneeded declaration of exit_mm() Signed-off-by: Dmitry Safonov <0x7f454c46@gmail.com> Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/exit.c | 2 -- 1 file changed, 2 deletions(-) commit ac94b6e3ba858b8de1dfe3f77ad215af7b648545 Author: Jann Horn Date: Wed Jan 20 15:00:08 2016 -0800 fs/coredump: prevent "" / "." / ".." core path components Let %h and %e print empty values as "!", "." as "!" and ".." as "!.". This prevents hostnames and comm values that are empty or consist of one or two dots from changing the directory level at which the corefile will be stored. Consider the case where someone decides to sort coredumps by hostname with a core pattern like "/cores/%h/core.%e.%p.%t" or so. In this case, hostnames "" and "." would cause the coredump to land directly in /cores, which is not what the intent behind the core pattern is, and ".." would cause the coredump to land in /. Yeah, there probably aren't many people who do that, but I still don't want this edgecase to be kind of broken. It seems very unlikely that this caused security issues anywhere, so I'm not requesting a stable backport. [akpm@linux-foundation.org: tweak code comment] Signed-off-by: Jann Horn Acked-by: Kees Cook Cc: Alexander Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/coredump.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit caaee6234d05a58c5b4d05e7bf766131b810a657 Author: Jann Horn Date: Wed Jan 20 15:00:04 2016 -0800 ptrace: use fsuid, fsgid, effective creds for fs access checks By checking the effective credentials instead of the real UID / permitted capabilities, ensure that the calling process actually intended to use its credentials. To ensure that all ptrace checks use the correct caller credentials (e.g. in case out-of-tree code or newly added code omits the PTRACE_MODE_*CREDS flag), use two new flags and require one of them to be set. The problem was that when a privileged task had temporarily dropped its privileges, e.g. by calling setreuid(0, user_uid), with the intent to perform following syscalls with the credentials of a user, it still passed ptrace access checks that the user would not be able to pass. While an attacker should not be able to convince the privileged task to perform a ptrace() syscall, this is a problem because the ptrace access check is reused for things in procfs. In particular, the following somewhat interesting procfs entries only rely on ptrace access checks: /proc/$pid/stat - uses the check for determining whether pointers should be visible, useful for bypassing ASLR /proc/$pid/maps - also useful for bypassing ASLR /proc/$pid/cwd - useful for gaining access to restricted directories that contain files with lax permissions, e.g. in this scenario: lrwxrwxrwx root root /proc/13020/cwd -> /root/foobar drwx------ root root /root drwxr-xr-x root root /root/foobar -rw-r--r-- root root /root/foobar/secret Therefore, on a system where a root-owned mode 6755 binary changes its effective credentials as described and then dumps a user-specified file, this could be used by an attacker to reveal the memory layout of root's processes or reveal the contents of files he is not allowed to access (through /proc/$pid/cwd). [akpm@linux-foundation.org: fix warning] Signed-off-by: Jann Horn Acked-by: Kees Cook Cc: Casey Schaufler Cc: Oleg Nesterov Cc: Ingo Molnar Cc: James Morris Cc: "Serge E. Hallyn" Cc: Andy Shevchenko Cc: Andy Lutomirski Cc: Al Viro Cc: "Eric W. Biederman" Cc: Willy Tarreau Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/proc/array.c | 2 +- fs/proc/base.c | 21 +++++++++++---------- fs/proc/namespaces.c | 4 ++-- include/linux/ptrace.h | 24 +++++++++++++++++++++++- kernel/events/core.c | 2 +- kernel/futex.c | 2 +- kernel/futex_compat.c | 2 +- kernel/kcmp.c | 4 ++-- kernel/ptrace.c | 39 +++++++++++++++++++++++++++++++-------- mm/process_vm_access.c | 2 +- security/commoncap.c | 7 ++++++- 11 files changed, 80 insertions(+), 29 deletions(-) commit 3dfb7d8cdbc7ea0c2970450e60818bb3eefbad69 Author: Jann Horn Date: Wed Jan 20 15:00:01 2016 -0800 security: let security modules use PTRACE_MODE_* with bitmasks It looks like smack and yama weren't aware that the ptrace mode can have flags ORed into it - PTRACE_MODE_NOAUDIT until now, but only for /proc/$pid/stat, and with the PTRACE_MODE_*CREDS patch, all modes have flags ORed into them. Signed-off-by: Jann Horn Acked-by: Kees Cook Acked-by: Casey Schaufler Cc: Oleg Nesterov Cc: Ingo Molnar Cc: James Morris Cc: "Serge E. Hallyn" Cc: Andy Shevchenko Cc: Andy Lutomirski Cc: Al Viro Cc: "Eric W. Biederman" Cc: Willy Tarreau Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds security/smack/smack_lsm.c | 8 +++----- security/yama/yama_lsm.c | 4 ++-- 2 files changed, 5 insertions(+), 7 deletions(-) commit 570ac9337b5c13dbf46ca6758c376e2e13e8956f Author: Oleg Nesterov Date: Wed Jan 20 14:59:58 2016 -0800 ptrace: task_stopped_code(ptrace => true) can't see TASK_STOPPED task task_stopped_code()->task_is_stopped_or_traced() doesn't look right, the traced task must never be TASK_STOPPED. We can not add WARN_ON(task_is_stopped(p)), but this is only because do_wait() can race with PTRACE_ATTACH from another thread. [akpm@linux-foundation.org: teeny cleanup] Signed-off-by: Oleg Nesterov Cc: Andrey Ryabinin Cc: Roland McGrath Acked-by: Tejun Heo Cc: Pedro Alves Cc: Jan Kratochvil Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/exit.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 7c3b00e06d731a28fc3d17ed02ba250642b15b81 Author: Oleg Nesterov Date: Wed Jan 20 14:59:55 2016 -0800 ptrace: make wait_on_bit(JOBCTL_TRAPPING_BIT) in ptrace_attach() killable ptrace_attach() can hang waiting for STOPPED -> TRACED transition if the tracee gets frozen in between, change wait_on_bit() to use TASK_KILLABLE. This doesn't really solve the problem(s) and we probably need to fix the freezer. In particular, note that this means that pm freezer will fail if it races attach-to-stopped-task. And otoh perhaps we can just remove JOBCTL_TRAPPING_BIT altogether, it is not clear if we really need to hide this transition from debugger, WNOHANG after PTRACE_ATTACH can fail anyway if it races with SIGCONT. Signed-off-by: Oleg Nesterov Reported-by: Andrey Ryabinin Cc: Roland McGrath Acked-by: Tejun Heo Cc: Pedro Alves Cc: Jan Kratochvil Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/ptrace.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 8992de4cec126c6703ece0747239d071dbce725f Author: Julia Lawall Date: Wed Jan 20 14:59:52 2016 -0800 fat: constify fatent_operations structures The fatent_operations structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Acked-by: OGAWA Hirofumi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/fat/fat.h | 2 +- fs/fat/fatent.c | 24 ++++++++++++------------ 2 files changed, 13 insertions(+), 13 deletions(-) commit 28016128d37a46d89ac5d9a450709284148989d6 Author: Namjae Jeon Date: Wed Jan 20 14:59:49 2016 -0800 Documentation/filesystems/vfat.txt: update the limitation for fat fallocate Update the limitation for fat fallocate. Signed-off-by: Namjae Jeon Signed-off-by: Amit Sahrawat Cc: OGAWA Hirofumi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/filesystems/vfat.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 16fab2015099a937e1a771f2785c5dd3445fe483 Author: Namjae Jeon Date: Wed Jan 20 14:59:46 2016 -0800 fat: permit to return phy block number by fibmap in fallocated region Make the fibmap call return the proper physical block number for any offset request in the fallocated range. Signed-off-by: Namjae Jeon Signed-off-by: Amit Sahrawat Cc: OGAWA Hirofumi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/fat/cache.c | 79 +++++++++++++++++++++++++++++++++++++++------------------- fs/fat/dir.c | 2 +- fs/fat/fat.h | 5 +++- fs/fat/inode.c | 31 ++++++++++++++++++++--- 4 files changed, 87 insertions(+), 30 deletions(-) commit 7e0f236b5b9cc23aa004eb58ee2201f294d0422a Author: Namjae Jeon Date: Wed Jan 20 14:59:43 2016 -0800 fat: skip cluster allocation on fallocated region Skip new cluster allocation after checking i_blocks limit in _fat_get_block, because the blocks are already allocated in fallocated region. Signed-off-by: Namjae Jeon Signed-off-by: Amit Sahrawat Cc: OGAWA Hirofumi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/fat/inode.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit b13bb33eacb7266d66a3adf03adaa0886d091789 Author: Namjae Jeon Date: Wed Jan 20 14:59:41 2016 -0800 fat: add fat_fallocate operation Implement preallocation via the fallocate syscall on VFAT partitions. This patch is based on an earlier patch of the same name which had some issues detailed below and did not get accepted. Refer https://lkml.org/lkml/2007/12/22/130. a) The preallocated space was not persistent when the FALLOC_FL_KEEP_SIZE flag was set. It will deallocate cluster at evict time. b) There was no need to zero out the clusters when the flag was set Instead of doing an expanding truncate, just allocate clusters and add them to the fat chain. This reduces preallocation time. Compatibility with windows: There are no issues when FALLOC_FL_KEEP_SIZE is not set because it just does an expanding truncate. Thus reading from the preallocated area on windows returns null until data is written to it. When a file with preallocated area using the FALLOC_FL_KEEP_SIZE was written to on windows, the windows driver freed-up the preallocated clusters and allocated new clusters for the new data. The freed up clusters gets reflected in the free space available for the partition which can be seen from the Volume properties. The windows chkdsk tool also does not report any errors on a disk containing files with preallocated space. And there is also no issue using linux fat fsck. because discard preallocated clusters at repair time. Signed-off-by: Namjae Jeon Signed-off-by: Amit Sahrawat Cc: OGAWA Hirofumi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/fat/fat.h | 1 + fs/fat/file.c | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ fs/fat/inode.c | 34 ++++++++++++++++++++++++++++++-- 3 files changed, 94 insertions(+), 2 deletions(-) commit a3082d526f2d406d4b488e49a508a0062a23314f Author: OGAWA Hirofumi Date: Wed Jan 20 14:59:38 2016 -0800 fat: add simple validation for directory inode This detects simple corruption cases of directory, and tries to avoid further damage to user data. And performance impact of this validation should be very low, or not measurable. Signed-off-by: OGAWA Hirofumi Reported-by: Vegard Nossum Tested-by: Vegard Nossum Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/fat/inode.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit a513d86983164a1f74a226ab7006deffbf63907e Author: Jan Kara Date: Wed Jan 20 14:59:35 2016 -0800 fat: allow time_offset to be up to 24 hours Currently we limit values of time_offset mount option to be between -12 and 12 hours. However e.g. zone GMT+12 can have a DST correction on top which makes the total time difference 13 hours. Update the checks in mount option parsing to allow offset of upto 24 hours to allow for unusual cases. Signed-off-by: Jan Kara Reported-by: Volker Kuhlmann Acked-by: OGAWA Hirofumi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/fat/inode.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 2c35dea279351f2ad74a99126b29f9f5394ccc04 Author: Geliang Tang Date: Wed Jan 20 14:59:32 2016 -0800 fs/hfs/catalog.c: use list_for_each_entry in hfs_cat_delete Use list_for_each_entry() instead of list_for_each() to simplify the code. Signed-off-by: Geliang Tang Reviewed-by: Vyacheslav Dubeyko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/hfs/catalog.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit f057f3b226a5c513aafaa5ece94f3a7f363215c5 Author: Yaowei Bai Date: Wed Jan 20 14:59:29 2016 -0800 init/do_mounts: initrd_load() can be boolean Make initrd_load() return bool due to this particular function only using either one or zero as its return value. No functional change. Signed-off-by: Yaowei Bai Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds init/do_mounts.h | 4 ++-- init/do_mounts_initrd.c | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) commit 31c025b5fece8d0fdc88920065fbc1ff7e4a78b1 Author: Yaowei Bai Date: Wed Jan 20 14:59:27 2016 -0800 init/main.c: obsolete_checksetup can be boolean Make obsolete_checksetup() return bool due to this particular function only using either one or zero as its return value. No functional change. Signed-off-by: Yaowei Bai Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds init/main.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit df0108c5da561c66c333bb46bfe3c1fc65905898 Author: Jason Baron Date: Wed Jan 20 14:59:24 2016 -0800 epoll: add EPOLLEXCLUSIVE flag Currently, epoll file descriptors or epfds (the fd returned from epoll_create[1]()) that are added to a shared wakeup source are always added in a non-exclusive manner. This means that when we have multiple epfds attached to a shared fd source they are all woken up. This creates thundering herd type behavior. Introduce a new 'EPOLLEXCLUSIVE' flag that can be passed as part of the 'event' argument during an epoll_ctl() EPOLL_CTL_ADD operation. This new flag allows for exclusive wakeups when there are multiple epfds attached to a shared fd event source. The implementation walks the list of exclusive waiters, and queues an event to each epfd, until it finds the first waiter that has threads blocked on it via epoll_wait(). The idea is to search for threads which are idle and ready to process the wakeup events. Thus, we queue an event to at least 1 epfd, but may still potentially queue an event to all epfds that are attached to the shared fd source. Performance testing was done by Madars Vitolins using a modified version of Enduro/X. The use of the 'EPOLLEXCLUSIVE' flag reduce the length of this particular workload from 860s down to 24s. Sample epoll_clt text: EPOLLEXCLUSIVE Sets an exclusive wakeup mode for the epfd file descriptor that is being attached to the target file descriptor, fd. Thus, when an event occurs and multiple epfd file descriptors are attached to the same target file using EPOLLEXCLUSIVE, one or more epfds will receive an event with epoll_wait(2). The default in this scenario (when EPOLLEXCLUSIVE is not set) is for all epfds to receive an event. EPOLLEXCLUSIVE may only be specified with the op EPOLL_CTL_ADD. Signed-off-by: Jason Baron Tested-by: Madars Vitolins Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Al Viro Cc: Michael Kerrisk Cc: Eric Wong Cc: Jonathan Corbet Cc: Andy Lutomirski Cc: Hagen Paul Pfeifer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/eventpoll.c | 24 +++++++++++++++++++++--- include/uapi/linux/eventpoll.h | 3 +++ 2 files changed, 24 insertions(+), 3 deletions(-) commit 6b10df4257367dd0ead49f88df473972c00a8b5c Author: Vladimir Zapolskiy Date: Wed Jan 20 14:59:21 2016 -0800 checkpatch: fix a number of COMPLEX_MACRO false positives A simple search over the kernel souce displays a number of correctly defined multiline macro, which generally are used as an array element initializer: % find ../linux -type f | xargs grep -B1 -H '^[:space]*\[.*\\$' However checkpatch.pl unexpectedly complains about all these macro definitions: % ./scripts/checkpatch.pl --types COMPLEX_MACRO -f include/linux/perf/arm_pmu.h ERROR: Macros with complex values should be enclosed in parentheses +#define PERF_MAP_ALL_UNSUPPORTED \ + [0 ... PERF_COUNT_HW_MAX - 1] = HW_OP_UNSUPPORTED The change intends to fix this type of false positives by flattening only array members and skipping array element designators. Signed-off-by: Vladimir Zapolskiy Acked-by: Joe Perches Cc: Andy Whitcroft Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 62e15a6daab0f6b3e8233e976201bce9faecaaf7 Author: Joe Perches Date: Wed Jan 20 14:59:18 2016 -0800 checkpatch: improve macros with flow control test The current test excludes any macro with ## concatenation from being reported with hidden flow control. Some macros are used with return or goto statements along with ##args or ##__VA_ARGS__. A somewhat common case is a logging macro like pr_info(fmt, ...) then a return or goto statement. Check the concatenated variable for args or __VA_ARGS__ and allow those macros to also be reported when they contain a return or goto. Signed-off-by: Joe Perches Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 938224b5e596c1c30d968ffd927a578ea7c4f45b Author: Joe Perches Date: Wed Jan 20 14:59:15 2016 -0800 checkpatch: warn when casting constants to c90 int or longer types Linus Torvalds wrote: > I can't but help to react that this: > #define IOMMU_ERROR_CODE (~(unsigned long) 0) > Not that this *matters*, but it's a bit odd to have to cast constants > to perfectly regular C types. So add a test that looks for constants that are cast to standard C90 int or longer types and suggest using C90 "6.4.4.1 Integer constants" integer-suffixes instead. Miscellanea: o Add a --fix option too Signed-off-by: Joe Perches Suggested-by: Andrew Morton Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) commit f5948701891322770ad6ede317da5fc9cf33d2f0 Author: Chris Metcalf Date: Wed Jan 20 14:59:12 2016 -0800 lib/clz_tab.c: put in lib-y rather than obj-y The clz table (__clz_tab) in lib/clz_tab.c is also provided as part of libgcc.a, and many architectures link against libgcc. To allow the linker to avoid a multiple-definition link failure, clz_tab.o has to be in lib/lib.a rather than lib/builtin.o. The specific issue is that libgcc.a comes before lib/builtin.o on vmlinux.o's link command line, so its _clz.o is pulled to satisfy __clz_tab, and then when the remainder of lib/builtin.o is pulled in to satisfy all the other dependencies, the __clz_tab symbols conflict. By putting clz_tab.o in lib.a, the linker can simply avoid pulling it into vmlinux.o when this situation arises. The definitions of __clz_tab are the same in libgcc.a and in the kernel; arguably we could also simply rename the kernel version, but it's unlikely the libgcc version will ever change to become incompatible, so just using it seems reasonably safe. Signed-off-by: Chris Metcalf Acked-by: David S. Miller Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 243c2137cda52599f6112f52b6be5e61fa6536ae Author: Adam Barth Date: Wed Jan 20 14:59:09 2016 -0800 include/linux/radix-tree.h: fix error in docs about locks This text refers to the "first 7 functions", which was correct when written but became incorrect when Johannes Weiner added another function to the list in 139e561660fe ("lib: radix_tree: tree node interface"). Change the text to correctly refer to the first 8 functions. Signed-off-by: Adam Barth Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/radix-tree.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7aaf4c3e1235cca77dcc1c5a0848687e7d26a42f Author: Andy Shevchenko Date: Wed Jan 20 14:59:07 2016 -0800 test_hexdump: print statistics at the end Like others test are doing print the gathered statistics after test module is finished. Return from the module based on the result. Signed-off-by: Andy Shevchenko Acked-by: Rasmus Villemoes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/test_hexdump.c | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) commit 1dacd9ddd359eed63b210bd9b5000c2cfae287ff Author: Andy Shevchenko Date: Wed Jan 20 14:59:04 2016 -0800 test_hexdump: test all possible group sizes for overflow Currently the only one combination is tested for overflow, i.e. rowsize = 16, groupsize = 1, len = 1. Do various test to go through all possible branches. Signed-off-by: Andy Shevchenko Cc: Rasmus Villemoes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/test_hexdump.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) commit cc77a719a5cfd419d057277fd0fdfca568bcfdd2 Author: Andy Shevchenko Date: Wed Jan 20 14:59:01 2016 -0800 test_hexdump: check all bytes in real buffer After processing by hex_dump_to_buffer() check all the parts to be expected. Part 1. The actual expected hex dump with or without ASCII part. Part 2. Check if the buffer is dirty beyond needed. Part 3. Return code should be as expected. This is done by using comparison of the return code and memcmp() against the test buffer. We fill the buffer by FILL_CHAR ('#') characters, so, we expect to have a tail of the buffer will be left untouched. The terminating NUL is also checked by memcmp(). Signed-off-by: Andy Shevchenko Cc: Rasmus Villemoes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/test_hexdump.c | 38 +++++++++++++++++--------------------- 1 file changed, 17 insertions(+), 21 deletions(-) commit 7047d813718c8e40929b7267a8d20cbf212f8565 Author: Andy Shevchenko Date: Wed Jan 20 14:58:58 2016 -0800 test_hexdump: switch to memcmp() Better to use memcmp() against entire buffer to check that nothing is happened to the data in the tail. Signed-off-by: Andy Shevchenko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/test_hexdump.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit ad27a7559a85309a4775389d012f3728c92f5eb0 Author: Andy Shevchenko Date: Wed Jan 20 14:58:56 2016 -0800 test_hexdump: replace magic numbers by their meaning The magic numbers of the length are converted to their actual meaning, such as end of the buffer with and without ASCII part. We don't touch the rest of the magic constants that will be removed in the following commits. Signed-off-by: Andy Shevchenko Cc: Rasmus Villemoes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/test_hexdump.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) commit a3d601fcc2f94fd1583053a1b1aea5de66ffc79c Author: Andy Shevchenko Date: Wed Jan 20 14:58:53 2016 -0800 test_hexdump: go through all possible lengths of buffer When test for overflow do iterate the buffer length in a range 0 .. BUF_SIZE. Signed-off-by: Andy Shevchenko Cc: Rasmus Villemoes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/test_hexdump.c | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) commit 3db4a987180acfba3bc117575bfedb81e055778c Author: Andy Shevchenko Date: Wed Jan 20 14:58:50 2016 -0800 test_hexdump: define FILL_CHAR constant Define a character to fill the test buffers. Though the character should be printable since it's used when errors are reported. It should neither be from hex digit [a-fA-F0-9] dictionary nor space. It is recommended not to use one which is present in ASCII part of the test data. Later on we might switch to unprintable character to make test case more robust. Signed-off-by: Andy Shevchenko Suggested-by: Rasmus Villemoes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/test_hexdump.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) commit 87977ca6bcd051b8bd20adff0a023548ff25902c Author: Andy Shevchenko Date: Wed Jan 20 14:58:47 2016 -0800 test_hexdump: introduce test_hexdump_prepare_test() helper The function prepares the expected result in the provided buffer. Signed-off-by: Andy Shevchenko Acked-by: Rasmus Villemoes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/test_hexdump.c | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) commit 60b2e8f4f71a21b96306a8a3ea4dd345ea3bfb46 Author: Andy Shevchenko Date: Wed Jan 20 14:58:44 2016 -0800 test_hexdump: rename to test_hexdump The test suite currently doesn't cover many corner cases when hex_dump_to_buffer() runs into overflow. Refactor and amend test suite to cover most of the cases. This patch (of 9): Just to follow the scheme that most of the test modules are using. There is no fuctional change. Signed-off-by: Andy Shevchenko Acked-by: Rasmus Villemoes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/Makefile | 2 +- lib/test-hexdump.c | 180 ----------------------------------------------------- lib/test_hexdump.c | 180 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 181 insertions(+), 181 deletions(-) commit 1f330c3279004dd83fcbac5669a858366c51e058 Author: Stephen Boyd Date: Wed Jan 20 14:58:41 2016 -0800 drivers/firmware/broadcom/bcm47xx_nvram.c: use __ioread32_copy() instead of open-coding Now that we have a generic library function for this, replace the open-coded instance. Signed-off-by: Stephen Boyd Cc: Hauke Mehrtens Cc: Cc: Paul Walmsley Cc: Bjorn Andersson Cc: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/firmware/broadcom/bcm47xx_nvram.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) commit c431e678127578c1b86fe976556d79dd669ad953 Author: Stephen Boyd Date: Wed Jan 20 14:58:38 2016 -0800 drivers/soc/qcom/smd.c: use __ioread32_copy() instead of open-coding it Now that we have a generic library function for this, replace the open-coded instance. Signed-off-by: Stephen Boyd Reviewed-by: Bjorn Andersson Cc: Cc: David Howells Cc: Hauke Mehrtens Cc: Paul Walmsley Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/soc/qcom/smd.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) commit a9aec5881b9d4aca184b29d33484a6a58d23f7f2 Author: Stephen Boyd Date: Wed Jan 20 14:58:35 2016 -0800 lib/iomap_copy.c: add __ioread32_copy() Some drivers need to read data out of iomem areas 32-bits at a time. Add an API to do this. Signed-off-by: Stephen Boyd Cc: Bjorn Andersson Cc: Cc: David Howells Cc: Hauke Mehrtens Cc: Paul Walmsley Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/io.h | 1 + lib/iomap_copy.c | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) commit ef5c16b85b2a6d55ae12a8d7125f3908c8d271d4 Author: Stephen Boyd Date: Wed Jan 20 14:58:32 2016 -0800 arch/frv/include/asm/io.h: accept const void pointers for read{b,w,l}() The SMD driver is reading and writing chunks of data to iomem, and there's an __iowrite32_copy() function for the writing part, but no __ioread32_copy() function for the reading part. This series adds __ioread32_copy() and uses it in two places. This patch (of 4): The frv port uses compiler builtins, __builtin_read*(), for the I/O read routines. Unfortunately, these don't accept const void pointers although the generic ASM implementations do, so generic code passing const pointers to these APIs cause compilers to emit warnings. Add wrapper functions that cast away the const to avoid the warnings. Signed-off-by: Stephen Boyd Cc: David Howells Cc: Cc: Bjorn Andersson Cc: Hauke Mehrtens Cc: Paul Walmsley Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/frv/include/asm/io.h | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) commit 564b026fbd0d28e9f70fb3831293d2922bb7855b Author: James Bottomley Date: Wed Jan 20 14:58:29 2016 -0800 string_helpers: fix precision loss for some inputs It was noticed that we lose precision in the final calculation for some inputs. The most egregious example is size=3000 blk_size=1900 in units of 10 should yield 5.70 MB but in fact yields 3.00 MB (oops). This is because the current algorithm doesn't correctly account for all the remainders in the logarithms. Fix this by doing a correct calculation in the remainders based on napier's algorithm. Additionally, now we have the correct result, we have to account for arithmetic rounding because we're printing 3 digits of precision. This means that if the fourth digit is five or greater, we have to round up, so add a section to ensure correct rounding. Finally account for all possible inputs correctly, including zero for block size. Fixes: b9f28d863594c429e1df35a0474d2663ca28b307 Signed-off-by: James Bottomley Reported-by: Vitaly Kuznetsov Cc: [delay until after 4.4 release] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/string_helpers.c | 63 +++++++++++++++++++++++++++++++++++----------------- 1 file changed, 43 insertions(+), 20 deletions(-) commit a4cc3c3c7356ded3eba5905f94279382a05d9c96 Author: Martin Kepplinger Date: Wed Jan 20 14:58:26 2016 -0800 ./CREDITS: add credit information for Martin Kepplinger Signed-off-by: Martin Kepplinger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds CREDITS | 10 ++++++++++ 1 file changed, 10 insertions(+) commit be17bddc6907f65b0a9f0ff77200a6d403ac41d1 Author: Joe Perches Date: Wed Jan 20 14:58:24 2016 -0800 scripts/get_maintainer.pl: handle file names beginning with ./ The problem is that get_maintainer.pl doesn't work if you have a ./ prefix on the filename. For example, if you type: ./scripts/get_maintainer.pl -f ./drivers/usb/usb-skeleton.c then the current code only includes LKML and people from the git log, it doesn't include Greg or the linux-usb list. Reported-by: Dan Carpenter Cc: Joe Perches Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/get_maintainer.pl | 4 ++++ 1 file changed, 4 insertions(+) commit 75339d825ae5b1cd5bd6d4b1db3b4b7c12d7b3e9 Author: Randy Dunlap Date: Wed Jan 20 14:58:21 2016 -0800 misc: ibmasm: fix build errors Fix build when CONFIG_SERIAL_8250=m and CONFIG_IBM_ASM=y. Fixes these build errors: drivers/built-in.o: In function `ibmasm_remove_one': module.c:(.text+0xf6874): undefined reference to `ibmasm_unregister_uart' drivers/built-in.o: In function `ibmasm_init_one': module.c:(.text+0xf6c37): undefined reference to `ibmasm_register_uart' Signed-off-by: Randy Dunlap Cc: Max Asbock Cc: Vernon Mauery Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/misc/Kconfig | 1 + 1 file changed, 1 insertion(+) commit c102f07ca0b04f2cb49cfc161c83f6239d17f491 Author: Junil Lee Date: Wed Jan 20 14:58:18 2016 -0800 zsmalloc: fix migrate_zspage-zs_free race condition record_obj() in migrate_zspage() does not preserve handle's HANDLE_PIN_BIT, set by find_aloced_obj()->trypin_tag(), and implicitly (accidentally) un-pins the handle, while migrate_zspage() still performs an explicit unpin_tag() on the that handle. This additional explicit unpin_tag() introduces a race condition with zs_free(), which can pin that handle by this time, so the handle becomes un-pinned. Schematically, it goes like this: CPU0 CPU1 migrate_zspage find_alloced_obj trypin_tag set HANDLE_PIN_BIT zs_free() pin_tag() obj_malloc() -- new object, no tag record_obj() -- remove HANDLE_PIN_BIT set HANDLE_PIN_BIT unpin_tag() -- remove zs_free's HANDLE_PIN_BIT The race condition may result in a NULL pointer dereference: Unable to handle kernel NULL pointer dereference at virtual address 00000000 CPU: 0 PID: 19001 Comm: CookieMonsterCl Tainted: PC is at get_zspage_mapping+0x0/0x24 LR is at obj_free.isra.22+0x64/0x128 Call trace: get_zspage_mapping+0x0/0x24 zs_free+0x88/0x114 zram_free_page+0x64/0xcc zram_slot_free_notify+0x90/0x108 swap_entry_free+0x278/0x294 free_swap_and_cache+0x38/0x11c unmap_single_vma+0x480/0x5c8 unmap_vmas+0x44/0x60 exit_mmap+0x50/0x110 mmput+0x58/0xe0 do_exit+0x320/0x8dc do_group_exit+0x44/0xa8 get_signal+0x538/0x580 do_signal+0x98/0x4b8 do_notify_resume+0x14/0x5c This patch keeps the lock bit in migration path and update value atomically. Signed-off-by: Junil Lee Signed-off-by: Minchan Kim Acked-by: Vlastimil Babka Cc: Sergey Senozhatsky Cc: [4.1+] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/zsmalloc.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) commit dcd6c87cc59af1b4fe7664b35c6344bbe1c9928f Author: Guenter Roeck Date: Wed Jan 20 14:58:15 2016 -0800 mm: arch: remove duplicate definitions of MADV_FREE Commits 21f55b018ba5 ("arch/*/include/uapi/asm/mman.h: : let MADV_FREE have same value for all architectures") and ef58978f1eaa ("mm: define MADV_FREE for some arches") both defined MADV_FREE, but did not use the same values. This results in build errors such as ./arch/alpha/include/uapi/asm/mman.h:53:0: error: "MADV_FREE" redefined ./arch/alpha/include/uapi/asm/mman.h:50:0: note: this is the location of the previous definition for the affected architectures. Fixes: 21f55b018ba5 ("arch/*/include/uapi/asm/mman.h: : let MADV_FREE have same value for all architectures") Fixes: ef58978f1eaa ("mm: define MADV_FREE for some arches") Signed-off-by: Guenter Roeck Cc: Chen Gang Cc: Minchan Kim Acked-by: Helge Deller [parisc] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/alpha/include/uapi/asm/mman.h | 1 - arch/mips/include/uapi/asm/mman.h | 1 - arch/parisc/include/uapi/asm/mman.h | 1 - arch/xtensa/include/uapi/asm/mman.h | 1 - 4 files changed, 4 deletions(-) commit f4be6153cca6c88eaf1e52931d9a010ad4ad940e Author: Kirill A. Shutemov Date: Wed Jan 20 14:58:12 2016 -0800 fs/proc/task_mmu.c: add workaround for old compilers For THP=n, HPAGE_PMD_NR in smaps_account() expands to BUILD_BUG(). That's fine since this codepath is eliminated by modern compilers. But older compilers have not that efficient dead code elimination. It causes problem at least with gcc 4.1.2 on m68k: fs/built-in.o: In function `smaps_account': task_mmu.c:(.text+0x4f8fa): undefined reference to `__compiletime_assert_471' Let's replace HPAGE_PMD_NR with 1 << compound_order(page). Signed-off-by: Kirill A. Shutemov Reported-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/proc/task_mmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0b9b6fff7b4caf5838550151d15b389aaa217707 Author: Kirill A. Shutemov Date: Wed Jan 20 14:58:09 2016 -0800 thp: fix interrupt unsafe locking in split_huge_page() split_queue_lock can be taken from interrupt context in some cases, but I forgot to convert locking in split_huge_page() to interrupt-safe primitives. Let's fix this. lockdep output: ====================================================== [ INFO: SOFTIRQ-safe -> SOFTIRQ-unsafe lock order detected ] 4.4.0+ #259 Tainted: G W ------------------------------------------------------ syz-executor/18183 [HC0[0]:SC0[2]:HE0:SE0] is trying to acquire: (split_queue_lock){+.+...}, at: free_transhuge_page+0x24/0x90 mm/huge_memory.c:3436 and this task is already holding: (slock-AF_INET){+.-...}, at: spin_lock_bh include/linux/spinlock.h:307 (slock-AF_INET){+.-...}, at: lock_sock_fast+0x45/0x120 net/core/sock.c:2462 which would create a new lock dependency: (slock-AF_INET){+.-...} -> (split_queue_lock){+.+...} but this new dependency connects a SOFTIRQ-irq-safe lock: (slock-AF_INET){+.-...} ... which became SOFTIRQ-irq-safe at: mark_irqflags kernel/locking/lockdep.c:2799 __lock_acquire+0xfd8/0x4700 kernel/locking/lockdep.c:3162 lock_acquire+0x1dc/0x430 kernel/locking/lockdep.c:3585 __raw_spin_lock include/linux/spinlock_api_smp.h:144 _raw_spin_lock+0x33/0x50 kernel/locking/spinlock.c:151 spin_lock include/linux/spinlock.h:302 udp_queue_rcv_skb+0x781/0x1550 net/ipv4/udp.c:1680 flush_stack+0x50/0x330 net/ipv6/udp.c:799 __udp4_lib_mcast_deliver+0x694/0x7f0 net/ipv4/udp.c:1798 __udp4_lib_rcv+0x17dc/0x23e0 net/ipv4/udp.c:1888 udp_rcv+0x21/0x30 net/ipv4/udp.c:2108 ip_local_deliver_finish+0x2b3/0xa50 net/ipv4/ip_input.c:216 NF_HOOK_THRESH include/linux/netfilter.h:226 NF_HOOK include/linux/netfilter.h:249 ip_local_deliver+0x1c4/0x2f0 net/ipv4/ip_input.c:257 dst_input include/net/dst.h:498 ip_rcv_finish+0x5ec/0x1730 net/ipv4/ip_input.c:365 NF_HOOK_THRESH include/linux/netfilter.h:226 NF_HOOK include/linux/netfilter.h:249 ip_rcv+0x963/0x1080 net/ipv4/ip_input.c:455 __netif_receive_skb_core+0x1620/0x2f80 net/core/dev.c:4154 __netif_receive_skb+0x2a/0x160 net/core/dev.c:4189 netif_receive_skb_internal+0x1b5/0x390 net/core/dev.c:4217 napi_skb_finish net/core/dev.c:4542 napi_gro_receive+0x2bd/0x3c0 net/core/dev.c:4572 e1000_clean_rx_irq+0x4e2/0x1100 drivers/net/ethernet/intel/e1000e/netdev.c:1038 e1000_clean+0xa08/0x24a0 drivers/net/ethernet/intel/e1000/e1000_main.c:3819 napi_poll net/core/dev.c:5074 net_rx_action+0x7eb/0xdf0 net/core/dev.c:5139 __do_softirq+0x26a/0x920 kernel/softirq.c:273 invoke_softirq kernel/softirq.c:350 irq_exit+0x18f/0x1d0 kernel/softirq.c:391 exiting_irq ./arch/x86/include/asm/apic.h:659 do_IRQ+0x86/0x1a0 arch/x86/kernel/irq.c:252 ret_from_intr+0x0/0x20 arch/x86/entry/entry_64.S:520 arch_safe_halt ./arch/x86/include/asm/paravirt.h:117 default_idle+0x52/0x2e0 arch/x86/kernel/process.c:304 arch_cpu_idle+0xa/0x10 arch/x86/kernel/process.c:295 default_idle_call+0x48/0xa0 kernel/sched/idle.c:92 cpuidle_idle_call kernel/sched/idle.c:156 cpu_idle_loop kernel/sched/idle.c:252 cpu_startup_entry+0x554/0x710 kernel/sched/idle.c:300 rest_init+0x192/0x1a0 init/main.c:412 start_kernel+0x678/0x69e init/main.c:683 x86_64_start_reservations+0x2a/0x2c arch/x86/kernel/head64.c:195 x86_64_start_kernel+0x158/0x167 arch/x86/kernel/head64.c:184 to a SOFTIRQ-irq-unsafe lock: (split_queue_lock){+.+...} which became SOFTIRQ-irq-unsafe at: mark_irqflags kernel/locking/lockdep.c:2817 __lock_acquire+0x146e/0x4700 kernel/locking/lockdep.c:3162 lock_acquire+0x1dc/0x430 kernel/locking/lockdep.c:3585 __raw_spin_lock include/linux/spinlock_api_smp.h:144 _raw_spin_lock+0x33/0x50 kernel/locking/spinlock.c:151 spin_lock include/linux/spinlock.h:302 split_huge_page_to_list+0xcc0/0x1c50 mm/huge_memory.c:3399 split_huge_page include/linux/huge_mm.h:99 queue_pages_pte_range+0xa38/0xef0 mm/mempolicy.c:507 walk_pmd_range mm/pagewalk.c:50 walk_pud_range mm/pagewalk.c:90 walk_pgd_range mm/pagewalk.c:116 __walk_page_range+0x653/0xcd0 mm/pagewalk.c:204 walk_page_range+0xfe/0x2b0 mm/pagewalk.c:281 queue_pages_range+0xfb/0x130 mm/mempolicy.c:687 migrate_to_node mm/mempolicy.c:1004 do_migrate_pages+0x370/0x4e0 mm/mempolicy.c:1109 SYSC_migrate_pages mm/mempolicy.c:1453 SyS_migrate_pages+0x640/0x730 mm/mempolicy.c:1374 entry_SYSCALL_64_fastpath+0x16/0x7a arch/x86/entry/entry_64.S:185 other info that might help us debug this: Possible interrupt unsafe locking scenario: CPU0 CPU1 ---- ---- lock(split_queue_lock); local_irq_disable(); lock(slock-AF_INET); lock(split_queue_lock); lock(slock-AF_INET); Signed-off-by: Kirill A. Shutemov Reported-by: Dmitry Vyukov Acked-by: David Rientjes Reviewed-by: Aneesh Kumar K.V Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/huge_memory.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 290e0e0f2b54b2eed5018f921c585bb694f9e68a Author: Jean Delvare Date: Wed Jan 20 14:58:06 2016 -0800 lib/libcrc32c.c: fix build warning Fix the following build warning: lib/libcrc32c.c:42:5: warning: no previous prototype for "crc32c" [-Wmissing-prototypes] u32 crc32c(u32 crc, const void *address, unsigned int length) ^ Signed-off-by: Jean Delvare Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/libcrc32c.c | 1 + 1 file changed, 1 insertion(+) commit d0eb20a863ba7dc1d3f4b841639671f134560be2 Author: Martin K. Petersen Date: Wed Jan 20 11:01:23 2016 -0500 sd: Optimal I/O size is in bytes, not sectors Commit ca369d51b3e1 ("block/sd: Fix device-imposed transfer length limits") accidentally switched optimal I/O size reporting from bytes to block layer sectors. Signed-off-by: Martin K. Petersen Reported-by: Christian Borntraeger Tested-by: Christian Borntraeger Fixes: ca369d51b3e1649be4a72addd6d6a168cfb3f537 Cc: stable@vger.kernel.org # 4.4+ Reviewed-by: James E.J. Bottomley Reviewed-by: Ewan D. Milne Reviewed-by: Matthew R. Ochs drivers/scsi/sd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c142ce0d3c6b070c248cef4bbe3a0f58cfd61f3f Author: Geert Uytterhoeven Date: Fri Jan 15 14:39:09 2016 +0100 hisi_sas: Restrict SCSI_HISI_SAS to arm64 The HiSilicon SAS HBA is available in HiSilicon arm64 SoCs only. Restrict it to arm64, unless compile-testing. Signed-off-by: Geert Uytterhoeven Reviewed-by: John Garry Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/Kconfig | 1 + 1 file changed, 1 insertion(+) commit fb7a6ae7554f15b5b0b7f31b02ed4ef40a8c2eb6 Author: Geert Uytterhoeven Date: Fri Jan 15 14:39:08 2016 +0100 hisi_sas: SCSI_HISI_SAS should depend on HAS_DMA If NO_DMA=y: ERROR: "dma_map_sg" [drivers/scsi/hisi_sas/hisi_sas_v1_hw.ko] undefined! ERROR: "dma_pool_alloc" [drivers/scsi/hisi_sas/hisi_sas_v1_hw.ko] undefined! ERROR: "dma_unmap_sg" [drivers/scsi/hisi_sas/hisi_sas_v1_hw.ko] undefined! ERROR: "dma_unmap_sg" [drivers/scsi/hisi_sas/hisi_sas_main.ko] undefined! ERROR: "dma_set_mask" [drivers/scsi/hisi_sas/hisi_sas_main.ko] undefined! ERROR: "dma_map_sg" [drivers/scsi/hisi_sas/hisi_sas_main.ko] undefined! ERROR: "dma_pool_destroy" [drivers/scsi/hisi_sas/hisi_sas_main.ko] undefined! ERROR: "dma_free_coherent" [drivers/scsi/hisi_sas/hisi_sas_main.ko] undefined! ERROR: "dma_pool_free" [drivers/scsi/hisi_sas/hisi_sas_main.ko] undefined! ERROR: "dma_alloc_coherent" [drivers/scsi/hisi_sas/hisi_sas_main.ko] undefined! ERROR: "dma_pool_alloc" [drivers/scsi/hisi_sas/hisi_sas_main.ko] undefined! ERROR: "dma_supported" [drivers/scsi/hisi_sas/hisi_sas_main.ko] undefined! ERROR: "dma_pool_create" [drivers/scsi/hisi_sas/hisi_sas_main.ko] undefined! Add a dependency on HAS_DMA to fix this. Signed-off-by: Geert Uytterhoeven Reviewed-by: John Garry Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/Kconfig | 1 + 1 file changed, 1 insertion(+) commit db2b52f75250c88ee3c6ba3d91bef38f3f1a1e8c Merge: f11aef6 38cb76a Author: Rafael J. Wysocki Date: Thu Jan 21 00:43:29 2016 +0100 Merge branch 'pm-tools' * pm-tools: cpupower: Fix build error in cpufreq-info commit f11aef69b235bc30c323776d75ac23b43aac45bb Merge: fa8bb45 5bb1729 Author: Rafael J. Wysocki Date: Thu Jan 21 00:43:21 2016 +0100 Merge branch 'pm-cpuidle' * pm-cpuidle: cpuidle: menu: Avoid pointless checks in menu_select() sched / idle: Drop default_idle_call() fallback from call_cpuidle() cpuidle: Don't enable all governors by default cpuidle: Default to ladder governor on ticking systems time: nohz: Expose tick_nohz_enabled cpuidle: menu: Fix menu_select() for CPUIDLE_DRIVER_STATE_START == 0 commit fa8bb4518771b19460a318fbab3eb36c81db3a50 Merge: 6efd3f8 250dfa0 Author: Rafael J. Wysocki Date: Thu Jan 21 00:43:13 2016 +0100 Merge branch 'pm-devfreq' * pm-devfreq: MAINTAINERS: Add devfreq-event entry MAINTAINERS: Add missing git repository and directory for devfreq PM / devfreq: Do not show statistics if it's not ready. PM / devfreq: Modify the indentation of trans_stat sysfs for readability PM / devfreq: Set the freq_table of devfreq device PM / devfreq: Add show_one macro to delete the duplicate code PM / devfreq: event: Fix the error and warning from script/checkpatch.pl PM / devfreq: event: Remove the error log of devfreq_event_get_edev_by_phandle() commit 6efd3f8cde1d6acc20a715ac6ea17e01421742df Merge: a72aea7 3ded910 Author: Rafael J. Wysocki Date: Thu Jan 21 00:42:59 2016 +0100 Merge branch 'pm-core' * pm-core: driver core: Avoid NULL pointer dereferences in device_is_bound() platform: Do not detach from PM domains on shutdown USB / PM: Allow USB devices to remain runtime-suspended when sleeping PM / sleep: Go direct_complete if driver has no callbacks PM / Domains: add setter for dev.pm_domain device core: add device_is_bound() commit a72aea722f1b43442c9e219de824d5975dcdaa61 Merge: 6799060 770188f b21f2e8 f972799 Author: Rafael J. Wysocki Date: Thu Jan 21 00:41:59 2016 +0100 Merge branches 'acpica', 'acpi-video' and 'acpi-fan' * acpica: ACPICA: Update version to 20160108 ACPICA: Silence a -Wbad-function-cast warning when acpi_uintptr_t is 'uintptr_t' ACPICA: Additional 2016 copyright changes ACPICA: Reduce regression fix divergence from upstream ACPICA * acpi-video: ACPI / video: Add disable_backlight_sysfs_if quirk for the Toshiba Satellite R830 ACPI / video: Revert "thinkpad_acpi: Use acpi_video_handles_brightness_key_presses()" ACPI / video: Document acpi_video_handles_brightness_key_presses() a bit ACPI / video: Fix using an uninitialized mutex / list_head in acpi_video_handles_brightness_key_presses() ACPI / video: Revert "ACPI / video: driver must be registered before checking for keypresses" ACPI / video: Add disable_backlight_sysfs_if quirk for the Toshiba Portege R700 * acpi-fan: ACPI / fan: Improve acpi_device_update_power error message commit 386744425e35e04984c6e741c7750fd6eef1a9df Author: Thierry Reding Date: Wed Jul 1 14:17:58 2015 +0200 swiotlb: Make linux/swiotlb.h standalone includible This header file uses the enum dma_data_direction and struct page types without explicitly including the corresponding header files. This makes it rely on the includer to have included the proper headers before. To fix this, include linux/dma-direction.h and forward-declare struct page. The swiotlb_free() function is also annotated __init, therefore requires linux/init.h to be included as well. Signed-off-by: Thierry Reding Signed-off-by: Konrad Rzeszutek Wilk include/linux/swiotlb.h | 3 +++ 1 file changed, 3 insertions(+) commit 973abd30a14681543ea1edb80eb5ef04bf0bb021 Author: Fengguang Wu Date: Fri Dec 18 15:51:59 2015 +0800 MAINTAINERS: add git URL for swiotlb CC: Konrad Rzeszutek Wilk Signed-off-by: Fengguang Wu Signed-off-by: Konrad Rzeszutek Wilk MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit c2f662ebb69fb48bf62881a456aa7fa53e38d771 Author: Shaohua Li Date: Wed Jan 20 14:00:45 2016 -0800 MD: add myself as MD maintainer Cc: NeilBrown Signed-off-by: Shaohua Li MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit 849674e4fb175e47b7504249f7367367b18fe6a1 Author: Shaohua Li Date: Wed Jan 20 13:52:20 2016 -0800 MD: rename some functions These short function names are hard to search. Rename them to make vim happy. Signed-off-by: Shaohua Li drivers/md/faulty.c | 18 +++++++++--------- drivers/md/raid1.c | 21 +++++++++++---------- drivers/md/raid10.c | 20 ++++++++++---------- drivers/md/raid5.c | 45 +++++++++++++++++++++++---------------------- 4 files changed, 53 insertions(+), 51 deletions(-) commit 9fa686068a32ddf256df03982b3e3967c18654a8 Merge: 90bf353 6bf6410 Author: Linus Torvalds Date: Wed Jan 20 10:15:21 2016 -0800 Merge tag 'dmaengine-fix-4.5-rc1' of git://git.infradead.org/users/vkoul/slave-dma Pull dmaengine fixes from Vinod Koul: "Here is my second pull request for this window: A few driver fixes have piled up and one missed rcar bindings patch which got somehow lost in for-linus branch so cherry-picked that one. Fixes are for dw, at_hdmac, edma" * tag 'dmaengine-fix-4.5-rc1' of git://git.infradead.org/users/vkoul/slave-dma: dmaengine: rcar-dmac: Document SoC specific bindings dmaengine: at_xdmac: fix resume for cyclic transfers dmaengine: dw: fix cyclic transfer callbacks dmaengine: dw: fix cyclic transfer setup dmaengine: edma: Fix paRAM slot allocation for entry channel 0 commit 90bf353bc1451b71067b12541db08ab7774723eb Merge: af75d51 3f984cb Author: Linus Torvalds Date: Wed Jan 20 10:10:23 2016 -0800 Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild Pull misc kbuild updates from Michal Marek: - Fix for make O=... perf-tar* - make tags revamp and fix for the fallout. Patch for warnings about line breaks inside DEFINE_PER_CPU macros is pending - New coccinelle test * 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: coccinelle: tests: unsigned value cannot be lesser than zero tags: Unify emacs and exuberant rules tags: Drop the _PE rule tags: Do not try to index defconfigs tags: Process Kconfig files in a single pass tags: Fix erroneous pattern match in a comment aic7xxx: Avoid name collision with tags: Treat header files as C code package Makefile: fix perf-tar targets when outdir is set scripts/tags.sh: Teach tags about more powerpc macros commit ba2d084055fd3f67af120070f5620173efd867c8 Author: David Sterba Date: Wed Jan 20 19:07:04 2016 +0100 btrfs: sysfs: fix typo in compat_ro attribute definition Signed-off-by: David Sterba fs/btrfs/sysfs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit af75d517a8b83cea88d8039beca1213813eb35f0 Merge: d9569f0 5b61c7b Author: Linus Torvalds Date: Wed Jan 20 09:55:50 2016 -0800 Merge branch 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild Pull kconfig updates from Michal Marek: - Fix for make xconfig segfault - Handle long strings in config symbol values - Fix for mixing boolean and kconfig ternary type * 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: kconfig: fix qconf segfault by deleting heap objects kconfig: return 'false' instead of 'no' in bool function kconfig: allow kconfig to handle longer path names commit 9662e32c810ad3e6ce49832d5f585a54f8fbdbdb Merge: 904f664 bd79008 Author: Bjorn Helgaas Date: Wed Jan 20 11:48:25 2016 -0600 Merge branch 'pci/trivial' into next * pci/trivial: PCI: shpchp: Constify hpc_ops structure PCI: Use kobj_to_dev() instead of open-coding it PCI: Use to_pci_dev() instead of open-coding it PCI: Fix all whitespace issues PCI/MSI: Fix typos in commit 904f664b585cc9f3dc134a8c0dd08e9bce6c10bc Merge: 3a6384b 8b9b963 c2e771b Author: Bjorn Helgaas Date: Wed Jan 20 11:47:54 2016 -0600 Merge branches 'pci/iommu' and 'pci/misc' into next * pci/iommu: PCI: Add function 1 DMA alias quirk for Lite-On/Plextor M6e/Marvell 88SS9183 * pci/misc: PCI: Limit config space size for Netronome NFP4000 PCI: Add Netronome NFP4000 PF device ID commit 8b9b963e55a8a8eadf604c0d60b97249c468e706 Author: Tim Sander Date: Tue Jan 19 14:32:29 2016 -0600 PCI: Add function 1 DMA alias quirk for Lite-On/Plextor M6e/Marvell 88SS9183 Add function 1 DMA alias quirk for Lite-On/Plextor M6e/Marvell 88SS9183. Signed-off-by: Tim Sander Signed-off-by: Bjorn Helgaas Acked-by: Alex Williamson drivers/pci/quirks.c | 4 ++++ 1 file changed, 4 insertions(+) commit d9569f003cfc0228e132749ae6fd81cb29dc6c70 Merge: 0cf0305 7599ea8 Author: Linus Torvalds Date: Wed Jan 20 09:45:43 2016 -0800 Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild Pull kbuild updates from Michal Marek: - Make -m in makefiles work like -y and fix the fallout - Minor genksyms fix - Fix race with make -j install modules_install - Move -Wsign-compare from make W=1 to W=2 - Other minor fixes * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: kbuild: Demote 'sign-compare' warning to W=2 Makefile: revert "Makefile: Document ability to make file.lst and file.S" partially kbuild: Do not run modules_install and install in paralel genksyms: Handle string literals with spaces in reference files fixdep: constify strrcmp arguments ath10k: Fix build with CONFIG_THERMAL=m Revert "drm: Hack around CONFIG_AGP=m build failures" kbuild: Allow to specify composite modules with modname-m staging/ad7606: Actually build the interface modules commit 0cf0305fffcf8df0998b70d0e922b7a3a5976182 Author: David Howells Date: Wed Jan 20 10:29:00 2016 +0000 FRV: Mark architecture orphaned Mark the FRV architecture orphaned in the MAINTAINERS file. Signed-off-by: David Howells Signed-off-by: Linus Torvalds MAINTAINERS | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 4a121096db9cf2cac8ce37aca2231e1e09a04e8f Author: Simon Horman Date: Mon Jan 18 10:04:33 2016 +0900 MAINTAINERS: Update mailing list for Renesas SoC Development Update the mailing list used for development of support for Renesas SoCs and related drivers. Up until now the linux-sh mailing list has been used, however, Renesas SoCs are now much wider than the SH architecture and there is some desire from some for the linux-sh list to refocus on discussion of the work on the SH architecture. Signed-off-by: Simon Horman Acked-by: Yoshihiro Shimoda Acked-by: Magnus Damm Acked-by: Geert Uytterhoeven Acked-by: Wolfram Sang Acked-by: Laurent Pinchart Acked-by: Rich Felker Acked-by: Sergei Shtylyov Signed-off-by: Linus Torvalds MAINTAINERS | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 629d9d1cafbd49cb374561a5a7d7724c4d6b2567 Author: Arnd Bergmann Date: Mon Jan 18 21:50:26 2016 +0100 mm: avoid uninitialized variable in tracepoint A newly added tracepoint in the hugepage code uses a variable in the error handling that is not initialized at that point: include/trace/events/huge_memory.h:81:230: error: 'isolated' may be used uninitialized in this function [-Werror=maybe-uninitialized] The result is relatively harmless, as the trace data will in rare cases contain incorrect data. This works around the problem by adding an explicit initialization. Signed-off-by: Arnd Bergmann Fixes: 7d2eba0557c1 ("mm: add tracepoint for scanning pages") Reviewed-by: Ebru Akagunduz Acked-by: David Rientjes Cc: Kirill A. Shutemov Signed-off-by: Linus Torvalds mm/huge_memory.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 991f86d7ae4e1f8c15806e62f97af519e3cdd860 Author: Takashi Iwai Date: Wed Jan 20 17:19:02 2016 +0100 ALSA: hda - Flush the pending probe work at remove As HD-audio driver does deferred probe internally via workqueue, the driver might go into the mixed state doing both probe and remove when the module gets unloaded during the probe work. This eventually triggers an Oops, unsurprisingly. For avoiding this race, we just need to flush the pending probe work explicitly before actually starting the resource release. Bugzilla: https://bugzilla.opensuse.org/show_bug.cgi?id=960710 Cc: # v3.17+ Signed-off-by: Takashi Iwai sound/pci/hda/hda_intel.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit a6111d11b8b5364d02ea2e881c81ce39d004eb32 Author: Zhao Lei Date: Tue Jan 12 17:52:13 2016 +0800 btrfs: raid56: Use raid_write_end_io for scrub No need to create additional end_io function for scrub, it increased code size and introduced some un-unified lines, as: raid_write_parity_end_io(): int err = bio->bi_error; if (bio->bi_error) raid_write_end_io(): int err = bio->bi_error; if (err) This patch combines them. Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/raid56.c | 32 +++++--------------------------- 1 file changed, 5 insertions(+), 27 deletions(-) commit 748f4ef4c6708e733da077a1980923b9d19db78a Author: Zhao Lei Date: Tue Jan 12 17:22:13 2016 +0800 btrfs: Remove unnecessary ClearPageUptodate for raid56 PageUptodate flag already initialized to 0 for new page, no need to set it again. Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/raid56.c | 2 -- 1 file changed, 2 deletions(-) commit 915e22903cb34619c1a1462ca4248add96fa41d7 Author: Zhao Lei Date: Tue Mar 3 20:42:48 2015 +0800 btrfs: use rbio->nr_pages to reduce calculation We can use rbio->stripe_npages to reduce unnecessary calculation in many code place. Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/raid56.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) commit b7178a5f0372a51260cf6e74d828e315e43dfc86 Author: Zhao Lei Date: Tue Mar 3 20:38:46 2015 +0800 btrfs: Use unified stripe_page's index calculation We are using different index calculation method for stripe_page in current code: 1: (rbio->stripe_len / PAGE_CACHE_SIZE) * stripe_index + page_index 2: DIV_ROUND_UP(rbio->stripe_len, PAGE_CACHE_SIZE) * stripe_index + page_index 3: DIV_ROUND_UP(rbio->stripe_len * stripe_index, PAGE_CACHE_SIZE) + page_index ... They can get same result when stripe_len align to PAGE_CACHE_SIZE, this is why current code can work, intruduce and use a common function for calculation is a better choose. Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/raid56.c | 43 +++++++++++++++++++++---------------------- 1 file changed, 21 insertions(+), 22 deletions(-) commit bfca9a6d4b1322ba36235e8a652f05a9668ef59b Author: Zhao Lei Date: Mon Dec 8 19:55:57 2014 +0800 btrfs: Fix calculation of rbio->dbitmap's size calculation Current code is trying to calculate rbio->dbitmap's size to make it align to sizeof(long), but implement haven't achived this object, it is align to sizeof(char) instead. This patch fixed above calculation, and use sizeof(long) instead of fixed "8" to increate compatibility. Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/raid56.c | 4 ++-- fs/btrfs/scrub.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit e1746e8381cd2af421f75557b5cae3604fc18b35 Author: Zhao Lei Date: Tue Dec 1 18:39:40 2015 +0800 btrfs: Fix no_space in write and rm loop I see no_space in v4.4-rc1 again in xfstests generic/102. It happened randomly in some node only. (one of 4 phy-node, and a kvm with non-virtio block driver) By bisect, we can found the first-bad is: commit bdced438acd8 ("block: setup bi_phys_segments after splitting")' But above patch only triggered the bug by making bio operation faster(or slower). Main reason is in our space_allocating code, we need to commit page writeback before wait it complish, this patch fixed above bug. BTW, there is another reason for generic/102 fail, caused by disable default mixed-blockgroup, I'll fix it in xfstests. Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/extent-tree.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 0bc19f9031e0c59770286f82b8561c1d35064a65 Author: Zhao Lei Date: Wed Jan 6 18:56:36 2016 +0800 btrfs: merge functions for wait snapshot creation wait_for_snapshot_creation() is in same group with oher two: btrfs_start_write_no_snapshoting() btrfs_end_write_no_snapshoting() Rename wait_for_snapshot_creation() and move it into same place with other two. Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/ctree.h | 1 + fs/btrfs/extent-tree.c | 20 ++++++++++++++++++++ fs/btrfs/inode.c | 22 +--------------------- 3 files changed, 22 insertions(+), 21 deletions(-) commit ee22f0c4ec428e7f16d3c5fa1d55fd7860cb304a Author: Zhao Lei Date: Wed Jan 6 18:47:31 2016 +0800 btrfs: delete unused argument in btrfs_copy_from_user size_t write_bytes is not necessary for btrfs_copy_from_user(), delete it. Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/file.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit bca8e988043e39483afd7872a2641f03ed7201a6 Author: Takashi Iwai Date: Wed Jan 20 15:46:44 2016 +0100 ALSA: hda - Fix missing module loading with model=generic option When the generic codec driver is specified via model option or such, the hda driver doesn't try to load the generic driver module but still loads the codec-specific driver, and this ends up with the binding failure. This patch fixes it by moving the generic module request in the common helper code. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=111021 Cc: # v4.4+ Signed-off-by: Takashi Iwai sound/pci/hda/hda_bind.c | 42 ++++++++++++++++++++++++++++++++---------- 1 file changed, 32 insertions(+), 10 deletions(-) commit 2f1b0077a9604eda130ffb0313c2f1e9db424269 Author: Yoshinori Sato Date: Fri Jan 15 23:51:51 2016 +0900 h8300: System call entry enable interrupt. Signed-off-by: Yoshinori Sato arch/h8300/kernel/entry.S | 1 + 1 file changed, 1 insertion(+) commit bf24eec39a6b0df1fcc1ff92db39fe2f2a60f737 Author: Yoshinori Sato Date: Fri Jan 15 17:07:32 2016 +0900 h8300: show_stack cleanup - fix stack limit. h8300's stack not aligned 4byte. - pritty output form. Signed-off-by: Yoshinori Sato arch/h8300/include/asm/traps.h | 2 +- arch/h8300/kernel/traps.c | 20 ++++++++------------ 2 files changed, 9 insertions(+), 13 deletions(-) commit db903b462b3e7a0cbd4bace485d0d4ba27344ec7 Author: Yoshinori Sato Date: Fri Jan 15 13:28:18 2016 +0900 h8300: Restraint of warning. Signed-off-by: Yoshinori Sato arch/h8300/include/asm/io.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 96ff2d7081cfc50e5493e9a5ac7c58bfa2ea41d3 Author: Yoshinori Sato Date: Wed Jan 20 23:27:30 2016 +0900 h8300: Add KGDB support. Signed-off-by: Yoshinori Sato arch/h8300/Kconfig | 1 + arch/h8300/include/asm/kgdb.h | 45 ++++++++++++++ arch/h8300/kernel/Makefile | 2 + arch/h8300/kernel/entry.S | 18 ++++++ arch/h8300/kernel/kgdb.c | 135 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 201 insertions(+) commit bed2e98e1f4db8b827df507abc30be7b11b0613d Author: Takashi Iwai Date: Wed Jan 20 15:00:26 2016 +0100 ALSA: hda - Degrade i915 binding failure message Currently HD-audio driver on Intel Skylake or Broxteon gives an error message when binding with i915 audio component fails. However, this isn't any serious error on a system without Intel graphics. Indeed there are such systems, where a third-party codec (e.g. Creative) is put on the mobo while using other discrete GPU (e.g. Nvidia). Printing a kernel "error" message is overreaction in such a case. This patch downgrades the print level for that message. For systems that mandate the i915 binding (e.g. Haswell or Broadwell HDMI/DP), another kernel error message is shown in addition to make clear what went wrong. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=111021 Signed-off-by: Takashi Iwai sound/hda/hdac_i915.c | 2 +- sound/pci/hda/hda_intel.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) commit be13326058e79c0b3d8caea5e7d1b34286c09487 Author: Guenter Roeck Date: Tue Dec 15 20:30:37 2015 -0800 irqchip: renesas-h8s: Replace ctrl_outw/ctrl_inw with writew/readw Commit 13ae42a3b1c1 ("h8300: Rename ctlr_out/in[bwl] to raw_read/write[bwl]") changed the function names, but not all callers, resulting in drivers/irqchip/irq-renesas-h8s.c: In function ‘h8s_disable_irq’: drivers/irqchip/irq-renesas-h8s.c:43:9: error: implicit declaration of function ‘ctrl_inw’ drivers/irqchip/irq-renesas-h8s.c:44:2: error: implicit declaration of function ‘ctrl_outw’ Fixes: 13ae42a3b1c1 ("h8300: Rename ctlr_out/in[bwl] to raw_read/write[bwl]") Cc: Daniel Lezcano Signed-off-by: Guenter Roeck drivers/irqchip/irq-renesas-h8s.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 9ee05bb627c08eae8b854c9fa1d77e75188954b6 Author: Yoshinori Sato Date: Sat Dec 5 21:36:53 2015 +0900 h8300: signal stack fix Signed-off-by: Yoshinori Sato arch/h8300/kernel/signal.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 42b510eb56dea96150dfc0747d4b2486b7fa72e0 Author: Yoshinori Sato Date: Fri Dec 4 01:20:57 2015 +0900 h8300: Add LZO compression Signed-off-by: Yoshinori Sato arch/h8300/Kconfig | 2 ++ arch/h8300/boot/compressed/Makefile | 11 ++++++++--- arch/h8300/boot/compressed/misc.c | 6 ++++++ 3 files changed, 16 insertions(+), 3 deletions(-) commit af3da5798d7b9d3dc7412cb5e1d4ed106dcecefc Author: Yoshinori Sato Date: Sun Nov 15 23:11:09 2015 +0900 h8300: zImage alignment fix Missing alignment for .data section. Sometime bootup failed. Signed-off-by: Yoshinori Sato arch/h8300/boot/compressed/vmlinux.lds | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit c4eb32b1eeec0d9ee5af2d83f21fa7193961f61c Author: Geert Uytterhoeven Date: Mon Jun 29 11:42:58 2015 +0200 clk: h8300: Remove "sh73a0-" part from compatible value Drop the bogus "sh73a0-" part (accidentally copied from shmobile?) from the compatible value. Signed-off-by: Geert Uytterhoeven Documentation/devicetree/bindings/clock/renesas,h8300-div-clock.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3724d3188980cc7416d81acc9bee21161ee20ebd Author: Yoshinori Sato Date: Sun Nov 15 23:11:09 2015 +0900 h8300: zImage alignment fix Missing alignment for .data section. Sometime bootup failed. Signed-off-by: Yoshinori Sato arch/h8300/boot/compressed/vmlinux.lds | 1 + 1 file changed, 1 insertion(+) commit 202736d99b7f29279db9da61587f11a08a04a9c6 Author: Herbert Xu Date: Tue Jan 19 21:23:57 2016 +0800 crypto: algif_skcipher - sendmsg SG marking is off by one We mark the end of the SG list in sendmsg and sendpage and unmark it on the next send call. Unfortunately the unmarking in sendmsg is off-by-one, leading to an SG list that is too short. Fixes: 0f477b655a52 ("crypto: algif - Mark sgl end at the end of data") Cc: stable@vger.kernel.org Signed-off-by: Herbert Xu crypto/algif_skcipher.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit b16c29191dc89bd877af99a7b04ce4866728a3e0 Author: Sasha Levin Date: Mon Jan 18 19:23:51 2016 -0500 netfilter: nf_conntrack: use safer way to lock all buckets When we need to lock all buckets in the connection hashtable we'd attempt to lock 1024 spinlocks, which is way more preemption levels than supported by the kernel. Furthermore, this behavior was hidden by checking if lockdep is enabled, and if it was - use only 8 buckets(!). Fix this by using a global lock and synchronize all buckets on it when we need to lock them all. This is pretty heavyweight, but is only done when we need to resize the hashtable, and that doesn't happen often enough (or at all). Signed-off-by: Sasha Levin Acked-by: Jesper Dangaard Brouer Reviewed-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso include/net/netfilter/nf_conntrack_core.h | 8 +++---- net/netfilter/nf_conntrack_core.c | 38 +++++++++++++++++++++++-------- net/netfilter/nf_conntrack_helper.c | 2 +- net/netfilter/nf_conntrack_netlink.c | 2 +- net/netfilter/nfnetlink_cttimeout.c | 4 ++-- 5 files changed, 35 insertions(+), 19 deletions(-) commit 07cbeea5412fa82543cbdba94ca94799fdb7bf55 Author: Shawn Lin Date: Wed Jan 20 16:17:04 2016 +0800 mmc: sdio_cis: fix unknown tuple for CISTPL_SDIO_STD CISTPL_SDIO_STD(0x91) is a known tuple, but sdio_cis don't define it, so we get the warning below while probing several sdio wifi cards. Refer to SDIO spec, it's not needed to parse the tuple, so this patch make it a known one. [ 4.098980] mmc2: queuing unknown CIS tuple 0x91 (3 bytes) [ 4.099033] mmc2: new ultra high speed SDR104 SDIO card at address 0001 Signed-off-by: Shawn Lin Signed-off-by: Ulf Hansson drivers/mmc/core/sdio_cis.c | 1 + 1 file changed, 1 insertion(+) commit fab683eb12e71ac6057dc42dc7d1e5e71e5cba5e Author: Arnd Bergmann Date: Wed Jan 20 11:47:14 2016 +0100 scsi: qla2xxxx: avoid type mismatch in comparison A recent bug fix added code that does bool logged_out = (status & 0xFFFF); if (logged_out == CTIO_PORT_LOGGED_OUT) ... This looks wrong because we are comparing a boolean with an integer constant, ang gcc warns about it accordingly: drivers/scsi/qla2xxx/qla_target.c: In function 'qlt_do_ctio_completion': drivers/scsi/qla2xxx/qla_target.c:3587:20: warning: comparison of constant '41' with boolean expression is always false [-Wbool-compare] (logged_out == CTIO_PORT_LOGGED_OUT) ? The correct fix is presumably to make that variable an 'int'. Signed-off-by: Arnd Bergmann Fixes: 71cdc0796465 ("qla2xxx: Delete session if initiator is gone from FW") Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_target.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 20c08b362f4b0c41103fe9d75c61ca348d021441 Author: Sheng Yang Date: Wed Jan 13 17:26:13 2016 -0800 target/user: Make sure netlink would reach all network namespaces The current code only allow netlink to reach the initial network namespace, which caused trouble for any client running inside container. This patch would make sure TCMU netlink would work for all network namespaces. Signed-off-by: Sheng Yang Acked-by: Andy Grover Signed-off-by: Nicholas Bellinger drivers/target/target_core_user.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 21aaa23b0ebbd19334fa461370c03cbb076b3295 Author: Nicholas Bellinger Date: Thu Jan 7 22:09:27 2016 -0800 target: Obtain se_node_acl->acl_kref during get_initiator_node_acl This patch addresses a long standing race where obtaining se_node_acl->acl_kref in __transport_register_session() happens a bit too late, and leaves open the potential for core_tpg_del_initiator_node_acl() to hit a NULL pointer dereference. Instead, take ->acl_kref in core_tpg_get_initiator_node_acl() while se_portal_group->acl_node_mutex is held, and move the final target_put_nacl() from transport_deregister_session() into transport_free_session() so that fabric driver login failure handling using the modern method to still work as expected. Also, update core_tpg_get_initiator_node_acl() to take an extra reference for dynamically generated acls for demo-mode, before returning to fabric caller. Also update iscsi-target sendtargets special case handling to use target_tpg_has_node_acl() when checking if demo_mode_discovery == true during discovery lookup. Note the existing wait_for_completion(&acl->acl_free_comp) in core_tpg_del_initiator_node_acl() does not change. Cc: Sagi Grimberg Cc: Christoph Hellwig Cc: Hannes Reinecke Cc: Andy Grover Cc: Mike Christie Signed-off-by: Nicholas Bellinger drivers/target/iscsi/iscsi_target.c | 2 +- drivers/target/target_core_tpg.c | 42 +++++++++++++++++++++++++++++++++- drivers/target/target_core_transport.c | 19 ++++++++++----- include/target/target_core_fabric.h | 2 ++ 4 files changed, 57 insertions(+), 8 deletions(-) commit d36ad77f702356afb1009d2987b0ab55da4c7d57 Author: Nicholas Bellinger Date: Thu Jan 7 22:15:06 2016 -0800 target: Convert ACL change queue_depth se_session reference usage This patch converts core_tpg_set_initiator_node_queue_depth() to use struct se_node_acl->acl_sess_list when performing explicit se_tpg_tfo->shutdown_session() for active sessions, in order for new se_node_acl->queue_depth to take effect. This follows how core_tpg_del_initiator_node_acl() currently works when invoking se_tpg_tfo->shutdown-session(), and ahead of the next patch to take se_node_acl->acl_kref during lookup, the extra get_initiator_node_acl() can go away. In order to achieve this, go ahead and change target_get_session() to use kref_get_unless_zero() and propigate up the return value to know when a session is already being released. This is because se_node_acl->acl_group is already protecting se_node_acl->acl_group reference via configfs, and shutdown within core_tpg_del_initiator_node_acl() won't occur until sys_write() to core_tpg_set_initiator_node_queue_depth() attribute returns back to user-space. Also, drop the left-over iscsi-target hack, and obtain se_portal_group->session_lock in lio_tpg_shutdown_session() internally. Remove iscsi-target wrapper and unused se_tpg + force parameters and associated code. Reported-by: Christoph Hellwig Cc: Sagi Grimberg Cc: Hannes Reinecke Cc: Andy Grover Cc: Mike Christie Signed-off-by: Nicholas Bellinger drivers/target/iscsi/iscsi_target_configfs.c | 29 ++--- drivers/target/iscsi/iscsi_target_tpg.c | 10 -- drivers/target/iscsi/iscsi_target_tpg.h | 2 - drivers/target/target_core_tpg.c | 152 ++++++++------------------- drivers/target/target_core_transport.c | 4 +- include/target/target_core_fabric.h | 5 +- 6 files changed, 56 insertions(+), 146 deletions(-) commit 26a99c19f810b2593410899a5b304b21b47428a6 Author: Nicholas Bellinger Date: Tue Jan 19 16:15:27 2016 -0800 iscsi-target: Fix potential dead-lock during node acl delete This patch is a iscsi-target specific bug-fix for a dead-lock that can occur during explicit struct se_node_acl->acl_group se_session deletion via configfs rmdir(2), when iscsi-target time2retain timer is still active. It changes iscsi-target to obtain se_portal_group->session_lock internally using spin_in_locked() to check for the specific se_node_acl configfs shutdown rmdir(2) case. Note this patch is intended for stable, and the subsequent v4.5-rc patch converts target_core_tpg.c to use proper se_sess->sess_kref reference counting for both se_node_acl deletion + se_node_acl->queue_depth se_session restart. Reported-by:: Sagi Grimberg Cc: Christoph Hellwig Cc: Hannes Reinecke Cc: Andy Grover Cc: Mike Christie Cc: stable@vger.kernel.org # 3.10+ Signed-off-by: Nicholas Bellinger drivers/target/iscsi/iscsi_target_configfs.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) commit 3568459a51136f418ca8cad48a0db3803010148a Author: Mans Rullgard Date: Sun Jan 17 22:31:02 2016 +0000 ALSA: at73c213: manage SSC clock Since commit 49af54ff0fc7 ("misc: atmel-ssc: prepare clock only when request") the SSC driver expects clients to manage the SSC clock. This updates the at73c213 driver to enable the SSC clock whenever it is needed. Signed-off-by: Mans Rullgard Signed-off-by: Takashi Iwai sound/spi/at73c213.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit ad1ba2a0c453db255f04b17101db6d05c44d8467 Author: Zhao Lei Date: Tue Dec 15 18:18:09 2015 +0800 btrfs: Use direct way to determine raid56 write/recover mode Old code used bbio->raid_map to determine whether in raid56 write/recover operation, because we didn't't have bbio->map_type. Now we have direct way for this condition, rid of using the function-relative data, and make the code more readable. Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/volumes.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 94a97dfeb61e32a213ca5519b063076c5201c5b2 Author: Zhao Lei Date: Wed Dec 9 21:03:49 2015 +0800 btrfs: Small cleanup for get index_srcdev loop 1: Adjust condition in loop to make less TAB 2: Move btrfs_put_bbio()'s line for combine, and makes logic clean. Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/volumes.c | 42 ++++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 22 deletions(-) commit f04b772bfc17f502703794f4d100d12155c1a1a9 Author: Qu Wenruo Date: Tue Dec 15 09:14:37 2015 +0800 btrfs: Enhance chunk validation check Enhance chunk validation: 1) Num_stripes We already have such check but it's only in super block sys chunk array. Now check all on-disk chunks. 2) Chunk logical It should be aligned to sector size. This behavior should be *DOUBLE CHECKED* for 64K sector size like PPC64 or AArch64. Maybe we can found some hidden bugs. 3) Chunk length Same as chunk logical, should be aligned to sector size. 4) Stripe length It should be power of 2. 5) Chunk type Any bit out of TYPE_MAS | PROFILE_MASK is invalid. With all these much restrict rules, several fuzzed image reported in mail list should no longer cause kernel panic. Reported-by: Vegard Nossum Signed-off-by: Qu Wenruo Signed-off-by: Chris Mason fs/btrfs/volumes.c | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) commit 319e4d0661e5323c9f9945f0f8fb5905e5fe74c3 Author: Qu Wenruo Date: Tue Dec 15 09:14:36 2015 +0800 btrfs: Enhance super validation check Enhance btrfs_check_super_valid() function by the following points: 1) Restrict sector/node size check Not the old max/min valid check, but also check if it's a power of 2. So some bogus number like 12K node size won't pass now. 2) Super flag check For now, there is still some inconsistency between kernel and btrfs-progs super flags. And considering btrfs-progs may add new flags for super block, this check will only output warning. 3) Better root alignment check Now root bytenr is checked against sector size. 4) Move some check into btrfs_check_super_valid(). Like node size vs leaf size check, and PAGESIZE vs sectorsize check. And magic number check. Reported-by: Vegard Nossum Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: Chris Mason fs/btrfs/disk-io.c | 97 +++++++++++++++++++++++++++--------------------------- 1 file changed, 48 insertions(+), 49 deletions(-) commit c2d6cb1636d235257086f939a8194ef0bf93af6e Author: Filipe Manana Date: Fri Jan 15 11:05:12 2016 +0000 Btrfs: fix deadlock running delayed iputs at transaction commit time While running a stress test I ran into a deadlock when running the delayed iputs at transaction time, which produced the following report and trace: [ 886.399989] ============================================= [ 886.400871] [ INFO: possible recursive locking detected ] [ 886.401663] 4.4.0-rc6-btrfs-next-18+ #1 Not tainted [ 886.402384] --------------------------------------------- [ 886.403182] fio/8277 is trying to acquire lock: [ 886.403568] (&fs_info->delayed_iput_sem){++++..}, at: [] btrfs_run_delayed_iputs+0x36/0xbf [btrfs] [ 886.403568] [ 886.403568] but task is already holding lock: [ 886.403568] (&fs_info->delayed_iput_sem){++++..}, at: [] btrfs_run_delayed_iputs+0x36/0xbf [btrfs] [ 886.403568] [ 886.403568] other info that might help us debug this: [ 886.403568] Possible unsafe locking scenario: [ 886.403568] [ 886.403568] CPU0 [ 886.403568] ---- [ 886.403568] lock(&fs_info->delayed_iput_sem); [ 886.403568] lock(&fs_info->delayed_iput_sem); [ 886.403568] [ 886.403568] *** DEADLOCK *** [ 886.403568] [ 886.403568] May be due to missing lock nesting notation [ 886.403568] [ 886.403568] 3 locks held by fio/8277: [ 886.403568] #0: (sb_writers#11){.+.+.+}, at: [] __sb_start_write+0x5f/0xb0 [ 886.403568] #1: (&sb->s_type->i_mutex_key#15){+.+.+.}, at: [] btrfs_file_write_iter+0x73/0x408 [btrfs] [ 886.403568] #2: (&fs_info->delayed_iput_sem){++++..}, at: [] btrfs_run_delayed_iputs+0x36/0xbf [btrfs] [ 886.403568] [ 886.403568] stack backtrace: [ 886.403568] CPU: 6 PID: 8277 Comm: fio Not tainted 4.4.0-rc6-btrfs-next-18+ #1 [ 886.403568] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS by qemu-project.org 04/01/2014 [ 886.403568] 0000000000000000 ffff88009f80f770 ffffffff8125d4fd ffffffff82af1fc0 [ 886.403568] ffff88009f80f830 ffffffff8108e5f9 0000000200000000 ffff88009fd92290 [ 886.403568] 0000000000000000 ffffffff82af1fc0 ffffffff829cfb01 00042b216d008804 [ 886.403568] Call Trace: [ 886.403568] [] dump_stack+0x4e/0x79 [ 886.403568] [] __lock_acquire+0xd42/0xf0b [ 886.403568] [] ? __module_address+0xdf/0x108 [ 886.403568] [] lock_acquire+0x10d/0x194 [ 886.403568] [] ? lock_acquire+0x10d/0x194 [ 886.403568] [] ? btrfs_run_delayed_iputs+0x36/0xbf [btrfs] [ 886.489542] [] down_read+0x3e/0x4d [ 886.489542] [] ? btrfs_run_delayed_iputs+0x36/0xbf [btrfs] [ 886.489542] [] btrfs_run_delayed_iputs+0x36/0xbf [btrfs] [ 886.489542] [] btrfs_commit_transaction+0x8f5/0x96e [btrfs] [ 886.489542] [] flush_space+0x435/0x44a [btrfs] [ 886.489542] [] ? reserve_metadata_bytes+0x26a/0x384 [btrfs] [ 886.489542] [] reserve_metadata_bytes+0x28d/0x384 [btrfs] [ 886.489542] [] ? btrfs_block_rsv_refill+0x58/0x96 [btrfs] [ 886.489542] [] btrfs_block_rsv_refill+0x70/0x96 [btrfs] [ 886.489542] [] btrfs_evict_inode+0x394/0x55a [btrfs] [ 886.489542] [] evict+0xa7/0x15c [ 886.489542] [] iput+0x1d3/0x266 [ 886.489542] [] btrfs_run_delayed_iputs+0x8f/0xbf [btrfs] [ 886.489542] [] btrfs_commit_transaction+0x8f5/0x96e [btrfs] [ 886.489542] [] ? signal_pending_state+0x31/0x31 [ 886.489542] [] btrfs_alloc_data_chunk_ondemand+0x1d7/0x288 [btrfs] [ 886.489542] [] btrfs_check_data_free_space+0x40/0x59 [btrfs] [ 886.489542] [] btrfs_delalloc_reserve_space+0x1e/0x4e [btrfs] [ 886.489542] [] btrfs_direct_IO+0x10c/0x27e [btrfs] [ 886.489542] [] generic_file_direct_write+0xb3/0x128 [ 886.489542] [] btrfs_file_write_iter+0x229/0x408 [btrfs] [ 886.489542] [] ? __lock_is_held+0x38/0x50 [ 886.489542] [] __vfs_write+0x7c/0xa5 [ 886.489542] [] vfs_write+0xa0/0xe4 [ 886.489542] [] SyS_write+0x50/0x7e [ 886.489542] [] entry_SYSCALL_64_fastpath+0x12/0x6f [ 1081.852335] INFO: task fio:8244 blocked for more than 120 seconds. [ 1081.854348] Not tainted 4.4.0-rc6-btrfs-next-18+ #1 [ 1081.857560] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. [ 1081.863227] fio D ffff880213f9bb28 0 8244 8240 0x00000000 [ 1081.868719] ffff880213f9bb28 00ffffff810fc6b0 ffffffff0000000a ffff88023ed55240 [ 1081.872499] ffff880206b5d400 ffff880213f9c000 ffff88020a4d5318 ffff880206b5d400 [ 1081.876834] ffffffff00000001 ffff880206b5d400 ffff880213f9bb40 ffffffff81482ba4 [ 1081.880782] Call Trace: [ 1081.881793] [] schedule+0x7f/0x97 [ 1081.883340] [] rwsem_down_write_failed+0x2d5/0x325 [ 1081.895525] [] ? trace_hardirqs_on_caller+0x16/0x1ab [ 1081.897419] [] call_rwsem_down_write_failed+0x13/0x20 [ 1081.899251] [] ? call_rwsem_down_write_failed+0x13/0x20 [ 1081.901063] [] ? __down_write_nested.isra.0+0x1f/0x21 [ 1081.902365] [] down_write+0x43/0x57 [ 1081.903846] [] ? btrfs_alloc_data_chunk_ondemand+0x1f6/0x288 [btrfs] [ 1081.906078] [] btrfs_alloc_data_chunk_ondemand+0x1f6/0x288 [btrfs] [ 1081.908846] [] ? mark_held_locks+0x56/0x6c [ 1081.910409] [] btrfs_check_data_free_space+0x40/0x59 [btrfs] [ 1081.912482] [] btrfs_delalloc_reserve_space+0x1e/0x4e [btrfs] [ 1081.914597] [] btrfs_direct_IO+0x10c/0x27e [btrfs] [ 1081.919037] [] generic_file_direct_write+0xb3/0x128 [ 1081.920754] [] btrfs_file_write_iter+0x229/0x408 [btrfs] [ 1081.922496] [] ? __lock_is_held+0x38/0x50 [ 1081.923922] [] __vfs_write+0x7c/0xa5 [ 1081.925275] [] vfs_write+0xa0/0xe4 [ 1081.926584] [] SyS_write+0x50/0x7e [ 1081.927968] [] entry_SYSCALL_64_fastpath+0x12/0x6f [ 1081.985293] INFO: lockdep is turned off. [ 1081.986132] INFO: task fio:8249 blocked for more than 120 seconds. [ 1081.987434] Not tainted 4.4.0-rc6-btrfs-next-18+ #1 [ 1081.988534] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. [ 1081.990147] fio D ffff880218febbb8 0 8249 8240 0x00000000 [ 1081.991626] ffff880218febbb8 00ffffff81486b8e ffff88020000000b ffff88023ed75240 [ 1081.993258] ffff8802120a9a00 ffff880218fec000 ffff88020a4d5318 ffff8802120a9a00 [ 1081.994850] ffffffff00000001 ffff8802120a9a00 ffff880218febbd0 ffffffff81482ba4 [ 1081.996485] Call Trace: [ 1081.997037] [] schedule+0x7f/0x97 [ 1081.998017] [] rwsem_down_write_failed+0x2d5/0x325 [ 1081.999241] [] ? finish_wait+0x6d/0x76 [ 1082.000306] [] call_rwsem_down_write_failed+0x13/0x20 [ 1082.001533] [] ? call_rwsem_down_write_failed+0x13/0x20 [ 1082.002776] [] ? __down_write_nested.isra.0+0x1f/0x21 [ 1082.003995] [] down_write+0x43/0x57 [ 1082.005000] [] ? btrfs_alloc_data_chunk_ondemand+0x1f6/0x288 [btrfs] [ 1082.007403] [] btrfs_alloc_data_chunk_ondemand+0x1f6/0x288 [btrfs] [ 1082.008988] [] btrfs_fallocate+0x7c1/0xc2f [btrfs] [ 1082.010193] [] ? percpu_down_read+0x4e/0x77 [ 1082.011280] [] ? __sb_start_write+0x5f/0xb0 [ 1082.012265] [] ? __sb_start_write+0x5f/0xb0 [ 1082.013021] [] vfs_fallocate+0x170/0x1ff [ 1082.013738] [] ioctl_preallocate+0x89/0x9b [ 1082.014778] [] do_vfs_ioctl+0x40a/0x4ea [ 1082.015778] [] ? SYSC_newfstat+0x25/0x2e [ 1082.016806] [] ? __fget_light+0x4d/0x71 [ 1082.017789] [] SyS_ioctl+0x57/0x79 [ 1082.018706] [] entry_SYSCALL_64_fastpath+0x12/0x6f This happens because we can recursively acquire the semaphore fs_info->delayed_iput_sem when attempting to allocate space to satisfy a file write request as shown in the first trace above - when committing a transaction we acquire (down_read) the semaphore before running the delayed iputs, and when running a delayed iput() we can end up calling an inode's eviction handler, which in turn commits another transaction and attempts to acquire (down_read) again the semaphore to run more delayed iput operations. This results in a deadlock because if a task acquires multiple times a semaphore it should invoke down_read_nested() with a different lockdep class for each level of recursion. Fix this by simplifying the implementation and use a mutex instead that is acquired by the cleaner kthread before it runs the delayed iputs instead of always acquiring a semaphore before delayed references are run from anywhere. Fixes: d7c151717a1e (btrfs: Fix NO_SPACE bug caused by delayed-iput) Cc: stable@vger.kernel.org # 4.1+ Signed-off-by: Filipe Manana Signed-off-by: Chris Mason fs/btrfs/ctree.h | 2 +- fs/btrfs/disk-io.c | 5 ++++- fs/btrfs/extent-tree.c | 9 +++++---- fs/btrfs/inode.c | 2 -- 4 files changed, 10 insertions(+), 8 deletions(-) commit fedc00455ccc1f928066528da87b0c7b143de647 Author: Filipe Manana Date: Fri Jan 15 10:56:15 2016 +0000 Btrfs: fix typo in log message when starting a balance The recent change titled "Btrfs: Check metadata redundancy on balance" (already in linux-next) left a typo in a message for users: metatdata -> metadata. Signed-off-by: Filipe Manana Signed-off-by: Chris Mason fs/btrfs/volumes.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 326f784281fbbdcd91bb401b2a3e32132c0f5c72 Merge: acc3085 546bed6 Author: Chris Mason Date: Tue Jan 19 18:21:30 2016 -0800 Merge branch 'misc-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux into for-linus-4.5 commit acc308556c812485462b6b43843c3f64530dd843 Merge: 988f1f5 fb75d85 Author: Chris Mason Date: Tue Jan 19 18:21:00 2016 -0800 Merge branch 'misc-cleanups-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux into for-linus-4.5 commit 2b4015e9fb335aa6982a68dbe6e4158d6c1b10ee Merge: d36ccdb 4bef0a2 Author: Linus Torvalds Date: Tue Jan 19 17:54:15 2016 -0800 Merge tag 'platform-drivers-x86-v4.5-1' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86 Pull x86 platform driver updates from Darren Hart: "Add intel punit and telemetry driver for APL SoCs. Add intel-hid driver for various laptop hotkey support. Add asus-wireless radio control driver. Keyboard backlight support/improvements for ThinkPads, Vaio, and Toshiba. Several hotkey related fixes and improvements for dell and toshiba. Fix oops on dual GPU Macs in apple-gmux. A few new device IDs and quirks. Various minor config related build issues and cleanups. surface pro 4: - fix compare_const_fl.cocci warnings - Add support for Surface Pro 4 Buttons platform/x86: - Add Intel Telemetry Debugfs interfaces - Add Intel telemetry platform device - Add Intel telemetry platform driver - Add Intel Telemetry Core Driver - add NULL check for input parameters - add Intel P-Unit mailbox IPC driver - update acpi resource structure for Punit thinkpad_acpi: - Add support for keyboard backlight dell-wmi: - Process only one event on devices with interface version 0 - Check if Dell WMI descriptor structure is valid - Improve unknown hotkey handling - Use a C99-style array for bios_to_linux_keycode tc1100-wmi: - fix build warning when CONFIG_PM not enabled asus-wireless: - Add ACPI HID ATK4001 - Add Asus Wireless Radio Control driver asus-wmi: - drop to_platform_driver macro intel-hid: - new hid event driver for hotkeys sony-laptop: - Keyboard backlight control for some Vaio Fit models ideapad-laptop: - Add Lenovo ideapad Y700-17ISK to no_hw_rfkill dmi list apple-gmux: - Assign apple_gmux_data before registering toshiba_acpi: - Add rfkill dependency to ACPI_TOSHIBA entry - Fix keyboard backlight sysfs entries not being updated - Add WWAN RFKill support - Add support for WWAN devices - Fix blank screen at boot if transflective backlight is supported - Propagate the hotkey value via genetlink toshiba_bluetooth: - Add missing newline in toshiba_bluetooth_present function" * tag 'platform-drivers-x86-v4.5-1' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86: (29 commits) surface pro 4: fix compare_const_fl.cocci warnings surface pro 4: Add support for Surface Pro 4 Buttons platform:x86: Add Intel Telemetry Debugfs interfaces platform:x86: Add Intel telemetry platform device platform:x86: Add Intel telemetry platform driver platform/x86: Add Intel Telemetry Core Driver intel_punit_ipc: add NULL check for input parameters thinkpad_acpi: Add support for keyboard backlight dell-wmi: Process only one event on devices with interface version 0 dell-wmi: Check if Dell WMI descriptor structure is valid tc1100-wmi: fix build warning when CONFIG_PM not enabled asus-wireless: Add ACPI HID ATK4001 platform/x86: Add Asus Wireless Radio Control driver asus-wmi: drop to_platform_driver macro intel-hid: new hid event driver for hotkeys Keyboard backlight control for some Vaio Fit models platform/x86: Add rfkill dependency to ACPI_TOSHIBA entry platform:x86: add Intel P-Unit mailbox IPC driver intel_pmc_ipc: update acpi resource structure for Punit ideapad-laptop: Add Lenovo ideapad Y700-17ISK to no_hw_rfkill dmi list ... commit 4bef0a27e414f79e0200f33ab23adeb07965272e Author: Julia Lawall Date: Sun Dec 27 22:10:58 2015 +0100 surface pro 4: fix compare_const_fl.cocci warnings Move constants to the right of binary operators. Generated by: scripts/coccinelle/misc/compare_const_fl.cocci CC: Weng Xuetian Signed-off-by: Fengguang Wu Signed-off-by: Julia Lawall Signed-off-by: Darren Hart drivers/platform/x86/surfacepro3_button.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6d5ac6e1771e30137ba1a2898885102b8bc21851 Author: Weng Xuetian Date: Sun Jan 17 15:10:38 2016 -0800 surface pro 4: Add support for Surface Pro 4 Buttons Surface Pro 4 buttons are managed by a device with _HID "MSHW0040" different from Surface Pro 3. This commit adds MSHW0040 to id list to support the Surface Pro 4. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=109871 Signed-off-by: Weng Xuetian Acked-by: Chen Yu Signed-off-by: Darren Hart drivers/platform/x86/Kconfig | 4 ++-- drivers/platform/x86/surfacepro3_button.c | 10 ++++++---- 2 files changed, 8 insertions(+), 6 deletions(-) commit 87bee290998d062937eecf40ad409480e7281b0e Author: Souvik Kumar Chakravarty Date: Tue Jan 12 16:05:14 2016 +0530 platform:x86: Add Intel Telemetry Debugfs interfaces This implements debugfs interfaces for reading the telemetry samples from SSRAM and configuring firmware trace verbosity. Interface created under /sys/kernel/debug/telemetry soc_states: SoC Device and Low Power States pss_info: Info from the Primary SubSystem ioss_info: Info from IO SubSusytem pss_trace_verbosity: Read/Modify PSS F/W trace verbosity ioss_trace_verbosity: Read/Modify IOSS F/W trace verbosity. Signed-off-by: Souvik Kumar Chakravarty Signed-off-by: Darren Hart MAINTAINERS | 1 + drivers/platform/x86/Makefile | 3 +- drivers/platform/x86/intel_telemetry_debugfs.c | 1030 ++++++++++++++++++++++++ 3 files changed, 1033 insertions(+), 1 deletion(-) commit 48c1917088ba00af25a0afc13de7403d6a80b06d Author: Souvik Kumar Chakravarty Date: Tue Jan 12 16:02:54 2016 +0530 platform:x86: Add Intel telemetry platform device Telemetry Device is created by the pmc_ipc driver. Resources are populated according SSRAM region as indicated by the BIOS tables. Signed-off-by: Souvik Kumar Chakravarty Signed-off-by: Darren Hart drivers/platform/x86/intel_pmc_ipc.c | 96 ++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) commit 9d16b482b059d784137881f3ec4bb121c5a2e6ee Author: Souvik Kumar Chakravarty Date: Tue Jan 12 16:01:39 2016 +0530 platform:x86: Add Intel telemetry platform driver Telemetry platform driver implements the telemetry interfaces. Currently it supports ApolloLake. It uses the PUNIT and PMC IPC interfaces to configure the telemetry samples to read. The samples are read from a Secure SRAM region. Signed-off-by: Souvik Kumar Chakravarty Signed-off-by: Darren Hart MAINTAINERS | 1 + drivers/platform/x86/Makefile | 3 +- drivers/platform/x86/intel_telemetry_pltdrv.c | 1206 +++++++++++++++++++++++++ 3 files changed, 1209 insertions(+), 1 deletion(-) commit 378f956e3f93b7862d89f93411953758491b42cc Author: Souvik Kumar Chakravarty Date: Tue Jan 12 16:00:33 2016 +0530 platform/x86: Add Intel Telemetry Core Driver Intel PM Telemetry is a software mechanism via which various SoC PM and performance related parameters like PM counters, firmware trace verbosity, the status of different devices inside the SoC, etc. can be monitored and analyzed. The different samples that may be monitored can be configured at runtime via exported APIs. This patch adds the telemetry core driver that implements basic exported APIs. Signed-off-by: Souvik Kumar Chakravarty Signed-off-by: Darren Hart MAINTAINERS | 7 + arch/x86/include/asm/intel_telemetry.h | 147 +++++++++ drivers/platform/x86/Kconfig | 11 + drivers/platform/x86/Makefile | 1 + drivers/platform/x86/intel_telemetry_core.c | 464 ++++++++++++++++++++++++++++ 5 files changed, 630 insertions(+) commit 3fae75740faff4c6a66be7131838fda3ae92e280 Author: Qipeng Zha Date: Fri Jan 8 18:32:27 2016 +0800 intel_punit_ipc: add NULL check for input parameters intel_punit_ipc_command() maybe called when in or out data pointers are NULL. Signed-off-by: Qipeng Zha Signed-off-by: Darren Hart drivers/platform/x86/intel_punit_ipc.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit bb28f3d51ff5e1be541d057708011cc1efe6fae9 Author: Pali Rohár Date: Wed Dec 30 23:27:41 2015 +0100 thinkpad_acpi: Add support for keyboard backlight This patch adds support for controlling keyboard backlight via standard linux led class interface (::kbd_backlight). It uses ACPI HKEY device with MLCG and MLCS methods. Signed-off-by: Pali Rohár Tested-by: Fabio D'Urso Acked-by: Henrique de Moraes Holschuh Signed-off-by: Darren Hart drivers/platform/x86/thinkpad_acpi.c | 206 +++++++++++++++++++++++++++++++++++ 1 file changed, 206 insertions(+) commit 481fe5be821c3d04f986e4061de42e1209a62374 Author: Pali Rohár Date: Mon Jan 4 22:26:36 2016 +0100 dell-wmi: Process only one event on devices with interface version 0 BIOS/ACPI on devices with WMI interface version 0 does not clear buffer before filling it. So next time when BIOS/ACPI send WMI event which is smaller as previous then it contains garbage in buffer from previous event. BIOS/ACPI on devices with WMI interface version 1 clears buffer and sometimes send more events in buffer at one call. Since commit 83fc44c32ad8 ("dell-wmi: Update code for processing WMI events") dell-wmi process all events in buffer (and not just first). To prevent reading garbage from the buffer we process only the first event on devices with WMI interface version 0. Signed-off-by: Pali Rohár Tested-by: Gabriele Mazzotta Signed-off-by: Darren Hart drivers/platform/x86/dell-wmi.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 595773a493e360bdb4306a1a78669996c4842bc2 Author: Pali Rohár Date: Mon Jan 4 22:26:35 2016 +0100 dell-wmi: Check if Dell WMI descriptor structure is valid After examining existing DSDT ACPI tables of more laptops and looking into Dell WMI document mentioned in ML dicussion archived at http://www.spinics.net/lists/platform-driver-x86/msg07220.html we will parse and check WMI descriptor if contains expected data. It is because WMI descriptor contains interface version number and it is needed to know in next commit. Signed-off-by: Pali Rohár Tested-by: Gabriele Mazzotta Signed-off-by: Darren Hart drivers/platform/x86/dell-wmi.c | 80 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 78 insertions(+), 2 deletions(-) commit 75d7e7d7a8f4966cb8b1da54a1c74fb2a97ae8fc Author: Colin Ian King Date: Wed Jan 6 18:02:59 2016 +0000 tc1100-wmi: fix build warning when CONFIG_PM not enabled Conditionally declare suspend_data on CONFIG_PM to avoid the following warning when CONFIG_OM is not enabled: drivers/platform/x86/tc1100-wmi.c:55:27: warning: 'suspend_data' defined but not used [-Wunused-variable] Signed-off-by: Colin Ian King Signed-off-by: Darren Hart drivers/platform/x86/tc1100-wmi.c | 2 ++ 1 file changed, 2 insertions(+) commit b0a095fc193a5f257c3609b09298c0705fc32c0b Author: João Paulo Rechi Vita Date: Tue Jan 5 08:26:01 2016 -0500 asus-wireless: Add ACPI HID ATK4001 As reported in https://bugzilla.kernel.org/show_bug.cgi?id=98931#c22 in the Asus UX31A the Asus Wireless Radio Control device (ASHS) uses the HID "ATK4001". Signed-off-by: João Paulo Rechi Vita Reported-by: Tasev Nikola Signed-off-by: Darren Hart drivers/platform/x86/asus-wireless.c | 1 + 1 file changed, 1 insertion(+) commit f6a6bbae0471fdfb824a86d1808eae33e8819254 Author: João Paulo Rechi Vita Date: Tue Jan 5 11:16:53 2016 -0500 platform/x86: Add Asus Wireless Radio Control driver Some Asus notebooks like the Asus E202SA and the Asus X555UB have a separate ACPI device for notifications from the airplane mode hotkey. This device is called "Wireless Radio Control" in Asus websites and ASHS in the DSDT, and its ACPI _HID is ATK4002 in the two models mentioned above. For these models, when the airplane mode hotkey (Fn+F2) is pressed, a query 0x0B is started in the Embedded Controller, and all this query does is a notify ASHS with the value 0x88 (for acpi_osi >= "Windows 2012"): Scope (_SB.PCI0.SBRG.EC0) { (...) Method (_Q0B, 0, NotSerialized) // _Qxx: EC Query { If ((MSOS () >= OSW8)) { Notify (ASHS, 0x88) // Device-Specific } Else { (...) } } } Signed-off-by: João Paulo Rechi Vita Reviewed-by: Andy Shevchenko Signed-off-by: Darren Hart MAINTAINERS | 6 +++ drivers/platform/x86/Kconfig | 14 ++++++ drivers/platform/x86/Makefile | 1 + drivers/platform/x86/asus-wireless.c | 83 ++++++++++++++++++++++++++++++++++++ 4 files changed, 104 insertions(+) commit f5b3f66548b72f8ab77fea5867bd45ad91ed2143 Author: Geliang Tang Date: Tue Dec 22 22:16:13 2015 +0800 asus-wmi: drop to_platform_driver macro to_platform_driver has been defined in platform_device.h, so drop this repetitive macro in asus-wmi.c. Signed-off-by: Geliang Tang Signed-off-by: Darren Hart drivers/platform/x86/asus-wmi.c | 3 --- 1 file changed, 3 deletions(-) commit ecc83e52b28c707da3e7fb8aa471417d9c0d1ec7 Author: Alex Hung Date: Fri Dec 18 23:31:10 2015 +0800 intel-hid: new hid event driver for hotkeys This driver supports various HID events including hotkeys. Dell XPS 13 9350 requires it for the wireless hotkey. Signed-off-by: Alex Hung Reviewed-and-tested-by: Andy Lutomirski [dvhart: Kconfig help typo fix and INPUT_SPARSEKMAP fix from Sedat Dilek] Signed-off-by: Darren Hart MAINTAINERS | 6 + drivers/platform/x86/Kconfig | 12 ++ drivers/platform/x86/Makefile | 1 + drivers/platform/x86/intel-hid.c | 289 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 308 insertions(+) commit c9ad1d9946e849ac3d8821d91e136d7fd728dec5 Author: John Keeping Date: Tue Jan 19 10:47:00 2016 +0000 drm/rockchip: explain why we can't wait_for_vblanks Signed-off-by: John Keeping drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit f2227f469782e55765deacb8ebcc7ec05fe04013 Author: John Keeping Date: Tue Jan 19 10:46:59 2016 +0000 drm/rockchip: don't wait for vblank if fb hasn't changed As commented in drm_atomic_helper_wait_for_vblanks(), userspace relies on cursor ioctls being unsynced. Converting the rockchip driver to atomic has significantly impacted cursor performance by making every cursor update wait for vblank. By skipping the vblank sync when the framebuffer has not changed (as is done in drm_atomic_helper_wait_for_vblanks()) we can avoid this for the common case of moving the cursor and only need to delay the cursor ioctl when the cursor icon changes. We cannot add the check on legacy_cursor_update since that results in the cursor bo being unreferenced while the hardware may still be reading it. Fully supporting unsynced cursor updates is left for the future when the atomic helper framework supports async updates. Signed-off-by: John Keeping Tested-by: Heiko Stuebner drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit c240906d36653944d5c049df7ce667a7e8bea6ac Author: John Keeping Date: Tue Jan 19 10:46:58 2016 +0000 drm/atomic-helper: Export framebuffer_changed() The Rockchip driver cannot use drm_atomic_helper_wait_for_vblanks() because it has hardware counters for neither vblanks nor scanlines. In order to simplify re-implementing the functionality for this driver, export the framebuffer_changed() helper so it can be reused. Signed-off-by: John Keeping Reviewed-by: Daniel Vetter drivers/gpu/drm/drm_atomic_helper.c | 24 ++++++++++++++++++++---- include/drm/drm_atomic_helper.h | 4 ++++ 2 files changed, 24 insertions(+), 4 deletions(-) commit 759c01142a5d0f364a462346168a56de28a80f52 Author: Willy Tarreau Date: Mon Jan 18 16:36:09 2016 +0100 pipe: limit the per-user amount of pages allocated in pipes On no-so-small systems, it is possible for a single process to cause an OOM condition by filling large pipes with data that are never read. A typical process filling 4000 pipes with 1 MB of data will use 4 GB of memory. On small systems it may be tricky to set the pipe max size to prevent this from happening. This patch makes it possible to enforce a per-user soft limit above which new pipes will be limited to a single page, effectively limiting them to 4 kB each, as well as a hard limit above which no new pipes may be created for this user. This has the effect of protecting the system against memory abuse without hurting other users, and still allowing pipes to work correctly though with less data at once. The limit are controlled by two new sysctls : pipe-user-pages-soft, and pipe-user-pages-hard. Both may be disabled by setting them to zero. The default soft limit allows the default number of FDs per process (1024) to create pipes of the default size (64kB), thus reaching a limit of 64MB before starting to create only smaller pipes. With 256 processes limited to 1024 FDs each, this results in 1024*64kB + (256*1024 - 1024) * 4kB = 1084 MB of memory allocated for a user. The hard limit is disabled by default to avoid breaking existing applications that make intensive use of pipes (eg: for splicing). Reported-by: socketpair@gmail.com Reported-by: Tetsuo Handa Mitigates: CVE-2013-4312 (Linux 2.0+) Suggested-by: Linus Torvalds Signed-off-by: Willy Tarreau Signed-off-by: Al Viro Documentation/sysctl/fs.txt | 23 ++++++++++++++++++++++ fs/pipe.c | 47 +++++++++++++++++++++++++++++++++++++++++++-- include/linux/pipe_fs_i.h | 4 ++++ include/linux/sched.h | 1 + kernel/sysctl.c | 14 ++++++++++++++ 5 files changed, 87 insertions(+), 2 deletions(-) commit d36ccdbd1ca1050ad4e7b9b16ced848132533f6e Merge: 7c24d9f 23567fd Author: Linus Torvalds Date: Tue Jan 19 16:02:31 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security Pull security subsystem update from James Morris: "A CVE fix and a maintainers file update" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: KEYS: Fix keyring ref leak in join_session_keyring() Fix the MAINTAINERS record for the certs/ directory commit 23567fd052a9abb6d67fe8e7a9ccdd9800a540f2 Author: Yevgeny Pats Date: Tue Jan 19 22:09:04 2016 +0000 KEYS: Fix keyring ref leak in join_session_keyring() This fixes CVE-2016-0728. If a thread is asked to join as a session keyring the keyring that's already set as its session, we leak a keyring reference. This can be tested with the following program: #include #include #include #include int main(int argc, const char *argv[]) { int i = 0; key_serial_t serial; serial = keyctl(KEYCTL_JOIN_SESSION_KEYRING, "leaked-keyring"); if (serial < 0) { perror("keyctl"); return -1; } if (keyctl(KEYCTL_SETPERM, serial, KEY_POS_ALL | KEY_USR_ALL) < 0) { perror("keyctl"); return -1; } for (i = 0; i < 100; i++) { serial = keyctl(KEYCTL_JOIN_SESSION_KEYRING, "leaked-keyring"); if (serial < 0) { perror("keyctl"); return -1; } } return 0; } If, after the program has run, there something like the following line in /proc/keys: 3f3d898f I--Q--- 100 perm 3f3f0000 0 0 keyring leaked-keyring: empty with a usage count of 100 * the number of times the program has been run, then the kernel is malfunctioning. If leaked-keyring has zero usages or has been garbage collected, then the problem is fixed. Reported-by: Yevgeny Pats Signed-off-by: David Howells Acked-by: Don Zickus Acked-by: Prarit Bhargava Acked-by: Jarod Wilson Signed-off-by: James Morris security/keys/process_keys.c | 1 + 1 file changed, 1 insertion(+) commit 800f20170dcf1dd7d89ce45cb9be930b359936d1 Author: Mattia Dongili Date: Mon Dec 14 21:12:32 2015 -0800 Keyboard backlight control for some Vaio Fit models SVF1521P6EW, SVF1521DCXW, SVF13N1L2ES and likely most SVF*. do not expose separate timeout controls in auto mode. Signed-off-by: Dominik Matta Signed-off-by: Mattia Dongili Signed-off-by: Darren Hart drivers/platform/x86/sony-laptop.c | 65 ++++++++++++++++++++++++++------------ 1 file changed, 45 insertions(+), 20 deletions(-) commit dc4522beb24352b371cfbfdcecb0c8def5a2455e Author: Azael Avalos Date: Mon Dec 14 13:00:59 2015 -0700 platform/x86: Add rfkill dependency to ACPI_TOSHIBA entry Commit 2fdde83443aa ("toshiba_acpi: Add WWAN RFKill support") added WWAN rfkill support to the driver, but the KConfig entry was not updated to add the RFKill dependency, causing a broken build if RFKill is not selected. This patch adds the RFKILL dependency to the KConfig entry, fixing the build issue. Signed-off-by: Azael Avalos Signed-off-by: Darren Hart drivers/platform/x86/Kconfig | 1 + 1 file changed, 1 insertion(+) commit fdca4f16f57da76a8e68047923588a87d1c01f0a Author: Qipeng Zha Date: Fri Dec 11 22:45:00 2015 +0800 platform:x86: add Intel P-Unit mailbox IPC driver This driver provides support for P-Unit mailbox IPC on Intel platforms. The heart of the P-Unit is the Foxton microcontroller and its firmware, which provide mailbox interface for power management usage. Signed-off-by: Qipeng Zha Reviewed-by: Andy Shevchenko Signed-off-by: Darren Hart MAINTAINERS | 4 +- arch/x86/include/asm/intel_punit_ipc.h | 101 ++++++++++ drivers/platform/x86/Kconfig | 6 + drivers/platform/x86/Makefile | 1 + drivers/platform/x86/intel_punit_ipc.c | 338 +++++++++++++++++++++++++++++++++ 5 files changed, 449 insertions(+), 1 deletion(-) commit 8cc7fb4a6523d4bdda87bba61f4dc742d3b5ba39 Author: Qipeng Zha Date: Fri Dec 11 22:44:59 2015 +0800 intel_pmc_ipc: update acpi resource structure for Punit BIOS restructure exported memory resources for Punit in acpi table, So update resources for Punit. Signed-off-by: Qipeng Zha Reviewed-by: Andy Shevchenko Signed-off-by: Darren Hart drivers/platform/x86/intel_pmc_ipc.c | 118 +++++++++++++++++++++++------------ 1 file changed, 78 insertions(+), 40 deletions(-) commit edde316acb5f07c04abf09a92f59db5d2efd14e2 Author: Josh Boyer Date: Wed Dec 9 21:12:52 2015 -0500 ideapad-laptop: Add Lenovo ideapad Y700-17ISK to no_hw_rfkill dmi list One of the newest ideapad models also lacks a physical hw rfkill switch, and trying to read the hw rfkill switch through the ideapad module causes it to always reported blocking breaking wifi. Fix it by adding this model to the DMI list. BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1286293 Cc: stable@vger.kernel.org Signed-off-by: Josh Boyer Signed-off-by: Darren Hart drivers/platform/x86/ideapad-laptop.c | 7 +++++++ 1 file changed, 7 insertions(+) commit cbc61f114af5fb078d84dc8864152f4db1712bc5 Author: Andy Lutomirski Date: Mon Nov 30 17:02:01 2015 -0800 dell-wmi: Improve unknown hotkey handling If DMI lists a hotkey that we don't recognize, log and ignore it instead of trying to map it to keycode 0. I haven't seen this happen, but it will help maintain the key map in the future and it will help avoid sending bogus events. This also improves the message that we log when we get an unknown key event. Signed-off-by: Andy Lutomirski Reviewed-by: Pali Rohár [dvhart: remove BUILD_BUG_ON per mutual agreement on list] Signed-off-by: Darren Hart drivers/platform/x86/dell-wmi.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) commit c1e1655bb892c6800af82c2d88c8063fce7b5c98 Author: Matthew Garrett Date: Mon Nov 16 21:38:40 2015 +0100 apple-gmux: Assign apple_gmux_data before registering Registering the handler after both GPUs will trigger a DDC switch for connector reprobing. This will oops if apple_gmux_data hasn't already been assigned. Reorder the code to do that. [Lukas: More generally, this commit fixes a race condition that is triggered by invoking a handler callback between the call to vga_switcheroo_register_handler() and the assignment of apple_gmux_data.] Tested-by: Pierre Moreau [MBP 5,3 2009 nvidia MCP79 + G96 pre-retina 15"] Tested-by: Paul Hordiienko [MBP 6,2 2010 intel ILK + nvidia GT216 pre-retina 15"] Tested-by: Lukas Wunner [MBP 9,1 2012 intel IVB + nvidia GK107 pre-retina 15"] Tested-by: William Brown [MBP 8,2 2011 intel SNB + amd turks pre-retina 15"] Tested-by: Bruno Bierbaumer [MBP 11,3 2013 intel HSW + nvidia GK107 retina 15"] Signed-off-by: Matthew Garrett Reviewed-by: Lukas Wunner Signed-off-by: Lukas Wunner Signed-off-by: Darren Hart drivers/platform/x86/apple-gmux.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 65e3cf9c0f05877f76eefcb4f005944dc5379fbf Author: Azael Avalos Date: Mon Nov 23 10:51:30 2015 -0700 toshiba_acpi: Fix keyboard backlight sysfs entries not being updated Certain Toshiba models with the second generation keyboard backlight (type 2) do not generate the keyboard backlight changed event (0x92), and thus, the sysfs entries are never being updated. This patch adds a workquee and a global boolean variable to address the issue. For those models that do generate the event, the sysfs entries are being updated via the *notify function and the boolean is set to true to avoid a second call to update the entries. For those models that do not generate the event, the workquee is used to update the sysfs entries and also to emulate the event via netlink, to make userspace aware of such change. Signed-off-by: Azael Avalos Signed-off-by: Darren Hart drivers/platform/x86/toshiba_acpi.c | 47 +++++++++++++++++++++++++++++++++---- 1 file changed, 43 insertions(+), 4 deletions(-) commit 503943e0e52bd3fbf014aa1d838ced37adb43121 Author: Maciej W. Rozycki Date: Fri Nov 13 00:48:29 2015 +0000 MIPS: Add IEEE Std 754 conformance mode selection Add an `ieee754=' kernel parameter to control IEEE Std 754 conformance mode. Use separate flags copied from the respective CPU feature flags, and adjusted according to the conformance mode selected, to make binaries requesting individual NaN encoding modes accepted or rejected as needed. Update the initial setting for FCSR and, in the full FPU emulation mode, its read-only mask accordingly. Accept the mode selection requested for legacy processors as well. As with the EF_MIPS_NAN2008 ELF file header flag adjust both ABS2008 and NAN2008 bits at the same time, to match the choice made for hardware currently implemented. Signed-off-by: Maciej W. Rozycki Cc: Andrew Morton Cc: Matthew Fortune Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11481/ Signed-off-by: Ralf Baechle Documentation/kernel-parameters.txt | 35 ++++++++++++ arch/mips/include/asm/elf.h | 4 ++ arch/mips/kernel/cpu-probe.c | 105 ++++++++++++++++++++++++++++++++---- arch/mips/kernel/elf.c | 12 +++-- 4 files changed, 142 insertions(+), 14 deletions(-) commit 93adeaf6dadcaed943a51ad9ea2d77e24e6d70a7 Author: Maciej W. Rozycki Date: Fri Nov 13 00:48:15 2015 +0000 MIPS: Determine the presence of IEEE Std 754-2008 features Determine the presence of and the amount of control available over IEEE Std 754-2008 features. In the case of a hardware FPU being used examine the FIR register for the presence of the HAS2008 bit and then the FCSR register for the writability of the ABS2008 and NAN2008 bits and the hardwired state of each of these bits if read-only. Update the initial FCSR contents used for threads and the FCSR writability mask accordingly. For full FPU emulation and MIPS32 or MIPS64 processors make the FCSR ABS2008 and NAN2008 bits writable. Signed-off-by: Maciej W. Rozycki Cc: Andrew Morton Cc: Matthew Fortune Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11480/ Signed-off-by: Ralf Baechle arch/mips/kernel/cpu-probe.c | 76 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 74 insertions(+), 2 deletions(-) commit 2b5e869ecfcb3112f7e1267cb0328f3ff6d49b18 Author: Maciej W. Rozycki Date: Fri Nov 13 00:48:02 2015 +0000 MIPS: ELF: Interpret the NAN2008 file header flag Handle the EF_MIPS_NAN2008 ELF file header flag and refuse execution where there is no support in the FPU for the NaN encoding mode requested by a binary invoked. Ensure that the setting of the bit in the binary matches one in any intepreter used. Set the thread's initial FCSR contents according to the value of the EF_MIPS_NAN2008. Set the values of the FCSR ABS2008 and NAN2008 bits both to the same value if possible, to take the approach taken with existing FPU hardware into account. As of now all implementations have both bits hardwired to the same value, that is both are fixed at 0 or both are fixed at 1, even though the architecture allows for implementations where the amount of control implemented with each of these two individual bits is independent of each other. Signed-off-by: Maciej W. Rozycki Cc: Andrew Morton Cc: Matthew Fortune Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11479/ Signed-off-by: Ralf Baechle arch/mips/include/asm/elf.h | 9 +++++--- arch/mips/kernel/elf.c | 56 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 3 deletions(-) commit eb4bc076ff94b82fce04f6db061de597f71bd129 Author: Maciej W. Rozycki Date: Fri Nov 13 00:47:48 2015 +0000 ELF: Also pass any interpreter's file header to `arch_check_elf' Also pass any interpreter's file header to `arch_check_elf' so that any architecture handler can have a look at it if needed. Signed-off-by: Maciej W. Rozycki Acked-by: Andrew Morton Acked-by: Al Viro Cc: Matthew Fortune Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11478/ Signed-off-by: Ralf Baechle arch/mips/include/asm/elf.h | 2 +- arch/mips/kernel/elf.c | 2 +- fs/binfmt_elf.c | 6 +++++- 3 files changed, 7 insertions(+), 3 deletions(-) commit 90d53a91fbd0c5a0882c29fa4279a3d2d700c76d Author: Maciej W. Rozycki Date: Fri Nov 13 00:47:28 2015 +0000 MIPS: math-emu: Add IEEE Std 754-2008 NaN encoding emulation Implement IEEE Std 754-2008 NaN encoding wired to the state of the FCSR.NAN2008 bit. Make the interpretation of the quiet bit in NaN data as follows: * in the legacy mode originally defined by the MIPS architecture the value of 1 denotes an sNaN whereas the value of 0 denotes a qNaN, * in the 2008 mode introduced with revision 5 of the MIPS architecture the value of 0 denotes an sNaN whereas the value of 1 denotes a qNaN, following the definition of the preferred NaN encoding introduced with IEEE Std 754-2008. In the 2008 mode, following the requirement of the said standard, quiet an sNaN where needed by setting the quiet bit to 1 and leaving all the NaN payload bits unchanged. Update format conversion operations according to the rules set by IEEE Std 754-2008 and the MIPS architecture. Specifically: * propagate NaN payload bits through conversions between floating-point formats such that as much information as possible is preserved and specifically a conversion from a narrower format to a wider format and then back to the original format does not change a qNaN payload in any way, * conversions from a floating-point to an integer format where the source is a NaN, infinity or a value that would convert to an integer outside the range of the result format produce, under the default exception handling, the respective values defined by the MIPS architecture. In full FPU emulation set the FIR.HAS2008 bit to 1, however do not make any further FCSR bits writable. Signed-off-by: Maciej W. Rozycki Cc: Andrew Morton Cc: Matthew Fortune Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11477/ Signed-off-by: Ralf Baechle arch/mips/kernel/cpu-probe.c | 2 ++ arch/mips/math-emu/dp_tint.c | 9 ++++++--- arch/mips/math-emu/dp_tlong.c | 9 ++++++--- arch/mips/math-emu/ieee754.c | 6 ++++-- arch/mips/math-emu/ieee754.h | 42 ++++++++++++++++++++++++++++------------- arch/mips/math-emu/ieee754dp.c | 12 ++++++++++-- arch/mips/math-emu/ieee754int.h | 12 ++++++------ arch/mips/math-emu/ieee754sp.c | 12 ++++++++++-- arch/mips/math-emu/sp_fdp.c | 13 ++++++++----- arch/mips/math-emu/sp_tint.c | 9 ++++++--- arch/mips/math-emu/sp_tlong.c | 9 ++++++--- 11 files changed, 93 insertions(+), 42 deletions(-) commit 198f70589e3c0f0f50da646152443787e959228f Author: Maciej W. Rozycki Date: Fri Nov 13 00:47:08 2015 +0000 MIPS: math-emu: Add IEEE Std 754-2008 ABS.fmt and NEG.fmt emulation Implement IEEE Std 754-2008 non-arithmetic ABS.fmt and NEG.fmt emulation wired to the state of the FCSR.ABS2008 bit. In the non-arithmetic mode the sign bit is altered according to the operation requested regardless of the datum encoded in the input operand, no other bits are changed, the resulting bit pattern is written to the output operand and no exception is ever signalled. Signed-off-by: Maciej W. Rozycki Cc: Andrew Morton Cc: Matthew Fortune Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11476/ Signed-off-by: Ralf Baechle arch/mips/math-emu/dp_simple.c | 38 +++++++++++++++++++++++++------------- arch/mips/math-emu/sp_simple.c | 38 +++++++++++++++++++++++++------------- 2 files changed, 50 insertions(+), 26 deletions(-) commit 9519ef37a4a4e9c3c2d7d89ecbecfaf3c839208a Author: Maciej W. Rozycki Date: Fri Nov 13 00:46:55 2015 +0000 MIPS: Define the legacy-NaN and 2008-NaN features Allocate CPU option bits and define macros for the legacy-NaN and 2008-NaN IEEE Std 754 MIPS architecture features. Unconditionally mark the legacy-NaN feature as present across hardware and emulated floating-point configurations. Signed-off-by: Maciej W. Rozycki Cc: Andrew Morton Cc: Matthew Fortune Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11475/ Signed-off-by: Ralf Baechle arch/mips/include/asm/cpu-features.h | 7 +++++++ arch/mips/include/asm/cpu.h | 2 ++ arch/mips/kernel/cpu-probe.c | 2 ++ 3 files changed, 11 insertions(+) commit 2ed02dd415aee71a8bf4c621a9bd65c256642b96 Author: Maciej W. Rozycki Date: Fri Nov 13 00:46:44 2015 +0000 MIPS: Use a union to access the ELF file header Rewrite `arch_elf_pt_proc' and `arch_check_elf' using a union to access the ELF file header. Signed-off-by: Maciej W. Rozycki Cc: Andrew Morton Cc: Matthew Fortune Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11474/ Signed-off-by: Ralf Baechle arch/mips/kernel/elf.c | 40 ++++++++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 14 deletions(-) commit a0fd81a9df67e3863a297c45c2f74b3bd2224a5d Author: John Crispin Date: Mon Jan 4 20:28:13 2016 +0100 MAINTAINERS: add myself as Ralink MIPS architecture maintainer Signed-off-by: John Crispin Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/11998/ Signed-off-by: Ralf Baechle MAINTAINERS | 6 ++++++ 1 file changed, 6 insertions(+) commit 9ca44355f05ad90a274a33b597e0d1b22d310205 Author: John Crispin Date: Mon Jan 4 20:28:12 2016 +0100 MAINTAINERS: Add myself as Lantiq MIPS architecture maintainer Signed-off-by: John Crispin Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/11997/ Signed-off-by: Ralf Baechle MAINTAINERS | 6 ++++++ 1 file changed, 6 insertions(+) commit 7e5873d3755c791e9e4ad2e189164575c978e01c Author: John Crispin Date: Mon Jan 4 20:24:01 2016 +0100 MIPS: pci: Add MT7620a PCIE driver The "a" version of the MT7620 has single port PCIE bus. The driver is straightforward without any special magic required. The driver works on MT7620 and MT7628. There are a few magic values that get written to the pcie phy and a register of which we only know the name. I marked these places as vodoo in the comments above the code. Signed-off-by: John Crispin Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/11996/ Signed-off-by: Ralf Baechle arch/mips/pci/Makefile | 1 + arch/mips/pci/pci-mt7620.c | 426 +++++++++++++++++++++++++++++++++++++++++++++ arch/mips/ralink/Kconfig | 1 + 3 files changed, 428 insertions(+) commit 3b2e7c7c83873f4c073d501c2fff80518e264240 Author: John Crispin Date: Mon Jan 4 20:24:00 2016 +0100 MIPS: ralink: Add a few missing clocks Signed-off-by: John Crispin Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/11995/ Signed-off-by: Ralf Baechle arch/mips/ralink/mt7620.c | 3 +++ arch/mips/ralink/rt305x.c | 1 + arch/mips/ralink/rt3883.c | 1 + 3 files changed, 5 insertions(+) commit 3bca798b859c75063b3b4e65f6b019c7a4bd53ef Author: John Crispin Date: Mon Jan 4 20:23:59 2016 +0100 MIPS: ralink: Fix vendor string for mt7620 Ralink was acquired by Mediatek. Represent this in the cpuinfo. It apparently confused people. Signed-off-by: John Crispin Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/11994/ Signed-off-by: Ralf Baechle arch/mips/ralink/mt7620.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0af3a40f09a2a85089037a0b5b51471fa48b229e Author: John Crispin Date: Mon Jan 4 20:23:58 2016 +0100 MIPS: ralink: Fix invalid assignment of SoC type Commit 418d29c87061 ("MIPS: ralink: Unify SoC id handling") introduced broken code. We obviously need to assign the value. Signed-off-by: John Crispin Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/11993/ Signed-off-by: Ralf Baechle arch/mips/ralink/rt288x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fad2522272ed5ed451d2d7b1dc547ddf3781cc7e Author: John Crispin Date: Mon Jan 4 20:23:57 2016 +0100 MIPS: ralink: fix USB frequency scaling Commit 418d29c87061 ("MIPS: ralink: Unify SoC id handling") was not fully correct. The logic for the SoC check got inverted. We need to check if it is not a MT76x8. Signed-off-by: John Crispin Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/11992/ Signed-off-by: Ralf Baechle arch/mips/ralink/mt7620.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e906a5f67e5a3337d696ec848e9c28fc68b39aa3 Author: John Crispin Date: Mon Jan 4 20:23:56 2016 +0100 MIPS: ralink: MT7688 pinmux fixes A few fixes to the pinmux data, 2 new muxes and a minor whitespace cleanup. Signed-off-by: John Crispin Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/11991/ Signed-off-by: Ralf Baechle arch/mips/ralink/mt7620.c | 80 +++++++++++++++++++++++++++++------------------ 1 file changed, 50 insertions(+), 30 deletions(-) commit 1df7addb9671ace5fbae4daa45b0755cebefb1dc Author: John Crispin Date: Mon Jan 4 20:23:55 2016 +0100 MIPS: ralink: add MT7621 support MT7621 is based on a 1004k core. This patch adds support for the SoC. The timer and IRQ is just boiler plate as GIC has recently been moved to generic places in the kernel and just works. Signed-off-by: John Crispin Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/11990/ Signed-off-by: Ralf Baechle arch/mips/include/asm/mach-ralink/irq.h | 9 + arch/mips/include/asm/mach-ralink/mt7621.h | 38 ++++ .../asm/mach-ralink/mt7621/cpu-feature-overrides.h | 65 ++++++ arch/mips/ralink/Kconfig | 11 + arch/mips/ralink/Makefile | 8 +- arch/mips/ralink/Platform | 5 + arch/mips/ralink/irq-gic.c | 25 +++ arch/mips/ralink/mt7621.c | 226 +++++++++++++++++++++ arch/mips/ralink/timer-gic.c | 24 +++ 9 files changed, 410 insertions(+), 1 deletion(-) commit 2761f83cad764f2b13ca3d7fb2f3fb5bedae1cd3 Author: John Crispin Date: Mon Jan 4 20:23:54 2016 +0100 MIPS: ralink: add a symbol for INTC Some of the newer SoCs use the GIC. This patch splits the INTC out into its own symbol, allowing us to add the gic code in the following patch. Signed-off-by: John Crispin Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/11989/ Signed-off-by: Ralf Baechle arch/mips/ralink/Kconfig | 4 ++++ arch/mips/ralink/Makefile | 2 ++ 2 files changed, 6 insertions(+) commit 663148e48a661d759369b726261d160486b68e75 Author: John Crispin Date: Sun Jan 3 16:26:04 2016 +0100 Documentation: DT: net: add docs for ralink/mediatek SoC ethernet binding Add three files. ralink,rt2880-net.txt descibes the actual frame engine and the other two describe the switch forntend bindings. Signed-off-by: John Crispin Signed-off-by: Felix Fietkau Signed-off-by: Michael Lee Cc: devicetree@vger.kernel.org Cc: David S. Miller Cc: netdev@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: linux-mediatek@lists.infradead.org Cc: John Crispin Cc: Felix Fietkau Cc: Michael Lee Cc: steven.liu@mediatek.com Cc: Fred.Chang@mediatek.com Patchwork: https://patchwork.linux-mips.org/patch/11970/ Signed-off-by: Ralf Baechle .../bindings/net/mediatek,mt7620-gsw.txt | 26 +++++++++ .../devicetree/bindings/net/ralink,rt2880-net.txt | 61 ++++++++++++++++++++++ .../devicetree/bindings/net/ralink,rt3050-esw.txt | 32 ++++++++++++ 3 files changed, 119 insertions(+) commit 3d1f664ab940382e7faa597fdfefed4acb163afc Author: Rafał Miłecki Date: Fri Jan 1 15:30:03 2016 +0100 MIPS: BCM47xx: Support SPROM prefixes on other platforms BCM47XX platform has specific PCI setup because all buses share the same domain. It's different e.g. on ARM ARCH_BCM_5301X where each PCI bus gets its own domain (they are handled by iProc PCIe controller driver). As we want to make SPROM driver more generic, let's add an exception for BCM47xx. It was tested on BCM4706 (MIPS) and BCM4708A0 (ARM). Signed-off-by: Rafał Miłecki Cc: Hauke Mehrtens Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/11969/ Signed-off-by: Ralf Baechle arch/mips/bcm47xx/sprom.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 7c24d9f3b27b198c3c4dfc8327a25fb077a96219 Merge: 99e38df ed8a9d2c Author: Linus Torvalds Date: Tue Jan 19 15:03:34 2016 -0800 Merge branch 'for-4.5/core' of git://git.kernel.dk/linux-block Pull core block updates from Jens Axboe: "We don't have a lot of core changes this time around, it's mostly in drivers, which will come in a subsequent pull. The cores changes include: - blk-mq - Prep patch from Christoph, changing blk_mq_alloc_request() to take flags instead of just using gfp_t for sleep/nosleep. - Doc patch from me, clarifying the difference between legacy and blk-mq for timer usage. - Fixes from Raghavendra for memory-less numa nodes, and a reuse of CPU masks. - Cleanup from Geliang Tang, using offset_in_page() instead of open coding it. - From Ilya, rename request_queue slab to it reflects what it holds, and a fix for proper use of bdgrab/put. - A real fix for the split across stripe boundaries from Keith. We yanked a broken version of this from 4.4-rc final, this one works. - From Mike Krinkin, emit a trace message when we split. - From Wei Tang, two small cleanups, not explicitly clearing memory that is already cleared" * 'for-4.5/core' of git://git.kernel.dk/linux-block: block: use bd{grab,put}() instead of open-coding block: split bios to max possible length block: add call to split trace point blk-mq: Avoid memoryless numa node encoded in hctx numa_node blk-mq: Reuse hardware context cpumask for tags blk-mq: add a flags parameter to blk_mq_alloc_request Revert "blk-flush: Queue through IO scheduler when flush not required" block: clarify blk_add_timer() use case for blk-mq bio: use offset_in_page macro block: do not initialise statics to 0 or NULL block: do not initialise globals to 0 or NULL block: rename request_queue slab cache commit f9a6ed62c406544d33b1873c0260ef9272ddc215 Author: Sagi Grimberg Date: Tue Jan 12 13:19:50 2016 +0200 IB/srpt: Remove redundant wc array No usage after the conversion to the new CQ API. Signed-off-by: Sagi Grimberg Reviewed-by: Bart Van Assche Reviewed-by: Christoph Hellwig Signed-off-by: Doug Ledford drivers/infiniband/ulp/srpt/ib_srpt.h | 2 -- 1 file changed, 2 deletions(-) commit 8483d152db61c5baf5452b844ef65b96ee9a6cfb Author: Eric Anholt Date: Mon Dec 21 16:11:44 2015 -0800 drm/vc4: Remove broken attempt at GPU reset using genpd. I've tested and confirmed that it doesn't actually work. We'll need to sort out how to do this properly later, but for now just remove it since it also caused build breakage due to using CONFIG_PM_SLEEP functions without our Kconfig depending on PM_SLEEP. Signed-off-by: Eric Anholt Acked-by: Sudip Mukherjee drivers/gpu/drm/vc4/vc4_v3d.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) commit 967bcfc0f5744c1553545883bbb43df1d41cbb5c Author: Mike Marciniszyn Date: Thu Dec 24 11:19:23 2015 -0500 IB/qib: Improve ipoib UD performance Based on profiling, UD performance drops in case of processes in a single client due to excess context switches when the progress workqueue is scheduled. This is solved by modifying the heuristic to select the direct progress instead of the scheduling progress via the workqueue when UD-like situations are detected in the heuristic. Reviewed-by: Vinit Agnihotri Signed-off-by: Mike Marciniszyn Signed-off-by: Doug Ledford drivers/infiniband/hw/qib/qib_verbs.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 4ed088e6c2aa2b7b0479791c7251696b541bfa39 Author: Matan Barak Date: Thu Jan 14 17:50:43 2016 +0200 IB/mlx4: Advertise RoCE v2 support Advertise RoCE v2 support in port_immutable attributes according to the hardware's capabilities. This enables the verbs stack to use RoCE v2 mode. Signed-off-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx4/main.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit e1b866c677d69334e2981b19696b7e3d88dff707 Author: Moni Shoua Date: Thu Jan 14 17:50:42 2016 +0200 IB/mlx4: Create and use another QP1 for RoCEv2 The mlx4 driver uses a special QP to implement the GSI QP. This kind of QP allows to build the InfiniBand headers in software. When mlx4 hardware builds the packet, it calculates the ICRC and puts it at the end of the payload. However, this ICRC calculation depends on the QP configuration, which is determined when the QP is modified (roce_mode during INIT->RTR). When receiving a packet, the ICRC verification doesn't depend on this configuration. Therefore, using two GSI QPs for send (one for each RoCE version) and one GSI QP for receive are required. Signed-off-by: Moni Shoua Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx4/mlx4_ib.h | 7 ++ drivers/infiniband/hw/mlx4/qp.c | 159 ++++++++++++++++++++++++++++++----- 2 files changed, 147 insertions(+), 19 deletions(-) commit 3ef967a4affeef7bb3b7713dcfed6518b99737c6 Author: Moni Shoua Date: Thu Jan 14 17:50:41 2016 +0200 IB/mlx4: Enable send of RoCE QP1 packets with IP/UDP headers RoCEv2 packets are sent over IP/UDP protocols. The mlx4 driver uses a type of RAW QP to send packets for QP1 and therefore needs to build the network headers below BTH in software. This patch adds option to build QP1 packets with IP and UDP headers if RoCEv2 is requested. Signed-off-by: Moni Shoua Signed-off-by: Doug Ledford drivers/infiniband/core/ud_header.c | 2 +- drivers/infiniband/hw/mlx4/qp.c | 60 +++++++++++++++++++++++++++++++------ include/rdma/ib_pack.h | 4 +-- 3 files changed, 54 insertions(+), 12 deletions(-) commit 71a39bbbfc5931310073ecbbdbe6d0fa92501fe4 Author: Moni Shoua Date: Thu Jan 14 17:50:40 2016 +0200 IB/mlx4: Enable RoCE v2 when the IB device is added If the hardware supports RoCE v2, we configure the hardware UDP port according to the RoCE v2 Annex when mlx4_ib device is added. Signed-off-by: Moni Shoua Signed-off-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx4/main.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 3b5daf28ac4bb9354b7d2f10ce5942cad23e979a Author: Moni Shoua Date: Thu Jan 14 17:50:39 2016 +0200 IB/mlx4: Support modify_qp for RoCE v2 In order to support modify_qp for RoCE v2, we need to set the gid_type in the QP context. Signed-off-by: Moni Shoua Signed-off-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx4/qp.c | 37 ++++++++++++++++++++++++++++++++++--- include/linux/mlx4/qp.h | 2 +- 2 files changed, 35 insertions(+), 4 deletions(-) commit 7ead4bcb1b788732516755ef84ef1272d3e152eb Author: Moni Shoua Date: Thu Jan 14 17:50:38 2016 +0200 IB/core: Add definition for the standard RoCE V2 UDP port This will be used in hardware device driver when building QP or AH contexts. Signed-off-by: Moni Shoua Signed-off-by: Matan Barak Signed-off-by: Doug Ledford include/rdma/ib_verbs.h | 1 + 1 file changed, 1 insertion(+) commit 3f723f42d9d625bb9ecfe923d19d1d42da775797 Author: Moni Shoua Date: Thu Jan 14 17:50:37 2016 +0200 net/mlx4_core: Add support for RoCE v2 entropy In RoCE v2 we need to choose a source UDP port, we do so by using entropy over the source and dest QPNs. Signed-off-by: Moni Shoua Signed-off-by: Matan Barak Signed-off-by: Doug Ledford drivers/net/ethernet/mellanox/mlx4/qp.c | 26 ++++++++++++++++++++++++++ include/linux/mlx4/qp.h | 13 ++++++++++++- 2 files changed, 38 insertions(+), 1 deletion(-) commit fca83006294a6356705781eee31da1658fd411a5 Author: Moni Shoua Date: Thu Jan 14 17:50:36 2016 +0200 net/mlx4_core: Add support for configuring RoCE v2 UDP port In order to support RoCE v2, the hardware needs to be configured to classify certain UDP packets as RoCE v2 packets and pass it through its RoCE pipeline. This patch enables configuring this UDP port. Signed-off-by: Moni Shoua Signed-off-by: Matan Barak Signed-off-by: Doug Ledford drivers/net/ethernet/mellanox/mlx4/fw.c | 16 +++++++++++++++- include/linux/mlx4/device.h | 1 + 2 files changed, 16 insertions(+), 1 deletion(-) commit 7e57b85c444c3c1bf3550aa6890666fc4353bd33 Author: Moni Shoua Date: Thu Jan 14 17:50:35 2016 +0200 IB/mlx4: Add support for setting RoCEv2 gids in hardware To tell hardware about a gid with type RoCEv2, software needs a new modifier to the SET_PORT command: MLX4_SET_PORT_ROCE_ADDR. This can replace the old method, MLX4_SET_PORT_GID_TABLE, for RoCEv1 gids. Signed-off-by: Moni Shoua Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx4/main.c | 63 +++++++++++++++++++++++++++++++++++++-- include/linux/mlx4/cmd.h | 3 +- 2 files changed, 62 insertions(+), 4 deletions(-) commit 1da494cbc0d922f192f1c5cc96c8794a8171c3c0 Author: Moni Shoua Date: Thu Jan 14 17:50:34 2016 +0200 net/mlx4_core: Configure mlx4 hardware for mixed RoCE v1/v2 modes If the hardware supports RoCE v2 (mixed with RoCE v1) mode, we enable it. This is necessary in order to support RoCE v2. Signed-off-by: Moni Shoua Signed-off-by: Matan Barak Signed-off-by: Doug Ledford drivers/net/ethernet/mellanox/mlx4/mlx4.h | 5 ++++- drivers/net/ethernet/mellanox/mlx4/port.c | 7 +++++++ 2 files changed, 11 insertions(+), 1 deletion(-) commit b699a859d17b3a7a8edc5441ee99d245dfd9f86c Author: Moni Shoua Date: Thu Jan 14 17:50:33 2016 +0200 IB/mlx4: Add gid_type to GID properties IB core driver adds a property of type to struct ib_gid_attr. The mlx4 driver should take that in consideration when modifying or querying the hardware gid table. Signed-off-by: Moni Shoua Signed-off-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx4/main.c | 17 +++++++++++++---- drivers/infiniband/hw/mlx4/mlx4_ib.h | 1 + 2 files changed, 14 insertions(+), 4 deletions(-) commit d8ae914196d35bbc0c459aec6de588ba585a1c3e Author: Moni Shoua Date: Thu Jan 14 17:50:32 2016 +0200 net/mlx4: Query RoCE support Query the RoCE support from firmware using the appropriate firmware commands. Downstream patches will read these capabilities and act accordingly. Signed-off-by: Moni Shoua Signed-off-by: Doug Ledford drivers/net/ethernet/mellanox/mlx4/fw.c | 23 +++++++++++++++++++++++ include/linux/mlx4/device.h | 10 +++++++--- 2 files changed, 30 insertions(+), 3 deletions(-) commit 5fe1043da84887369d32459514f2c7d98ff37936 Author: Christoph Hellwig Date: Thu Jan 7 23:53:41 2016 -0800 svc_rdma: use local_dma_lkey We now alwasy have a per-PD local_dma_lkey available. Make use of that fact in svc_rdma and stop registering our own MR. Signed-off-by: Christoph Hellwig Reviewed-by: Sagi Grimberg Reviewed-by: Jason Gunthorpe Reviewed-by: Chuck Lever Reviewed-by: Steve Wise Acked-by: J. Bruce Fields Signed-off-by: Doug Ledford include/linux/sunrpc/svc_rdma.h | 2 -- net/sunrpc/xprtrdma/svc_rdma_backchannel.c | 2 +- net/sunrpc/xprtrdma/svc_rdma_recvfrom.c | 4 ++-- net/sunrpc/xprtrdma/svc_rdma_sendto.c | 6 ++--- net/sunrpc/xprtrdma/svc_rdma_transport.c | 36 ++++-------------------------- 5 files changed, 10 insertions(+), 40 deletions(-) commit 5d252f90a800cee5bc57c76d636ae60464f7a887 Author: Chuck Lever Date: Thu Jan 7 14:50:10 2016 -0500 svcrdma: Add class for RDMA backwards direction transport To support the server-side of an NFSv4.1 backchannel on RDMA connections, add a transport class that enables backward direction messages on an existing forward channel connection. Signed-off-by: Chuck Lever Acked-by: Bruce Fields Signed-off-by: Doug Ledford include/linux/sunrpc/svc_rdma.h | 5 + net/sunrpc/xprt.c | 1 + net/sunrpc/xprtrdma/Makefile | 2 +- net/sunrpc/xprtrdma/svc_rdma_backchannel.c | 371 +++++++++++++++++++++++++++++ net/sunrpc/xprtrdma/svc_rdma_recvfrom.c | 52 ++++ net/sunrpc/xprtrdma/svc_rdma_transport.c | 14 +- net/sunrpc/xprtrdma/transport.c | 30 ++- net/sunrpc/xprtrdma/xprt_rdma.h | 15 ++ 8 files changed, 475 insertions(+), 15 deletions(-) commit 03fe9931536fe4782e9e34f7f499d588acd2015b Author: Chuck Lever Date: Thu Jan 7 14:50:02 2016 -0500 svcrdma: Define maximum number of backchannel requests Extra resources for handling backchannel requests have to be pre-allocated when a transport instance is created. Set up additional fields in svcxprt_rdma to track these resources. The max_requests fields are elements of the RPC-over-RDMA protocol, so they should be u32. To ensure that unsigned arithmetic is used everywhere, some other fields in the svcxprt_rdma struct are updated. Signed-off-by: Chuck Lever Acked-by: Bruce Fields Signed-off-by: Doug Ledford include/linux/sunrpc/svc_rdma.h | 13 ++++++++++--- net/sunrpc/xprtrdma/svc_rdma.c | 6 ++++-- net/sunrpc/xprtrdma/svc_rdma_transport.c | 24 ++++++++++++++---------- 3 files changed, 28 insertions(+), 15 deletions(-) commit ba986c96f907a513215fb7f1c0a89261c97251ca Author: Chuck Lever Date: Thu Jan 7 14:49:53 2016 -0500 svcrdma: Make map_xdr non-static Pre-requisite to use map_xdr in the backchannel code. Signed-off-by: Chuck Lever Acked-by: Bruce Fields Signed-off-by: Doug Ledford include/linux/sunrpc/svc_rdma.h | 2 ++ net/sunrpc/xprtrdma/svc_rdma_sendto.c | 14 +++++++------- 2 files changed, 9 insertions(+), 7 deletions(-) commit 78da2b3cea05b059d23814509bb46a29101e0f77 Author: Chuck Lever Date: Thu Jan 7 14:49:45 2016 -0500 svcrdma: Remove last two __GFP_NOFAIL call sites Clean up. These functions can otherwise fail, so check for page allocation failures too. Signed-off-by: Chuck Lever Acked-by: Bruce Fields Signed-off-by: Doug Ledford net/sunrpc/xprtrdma/svc_rdma_sendto.c | 5 ++++- net/sunrpc/xprtrdma/svc_rdma_transport.c | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) commit 39b09a1a121cb22820c374f4e92f7ca34be1b75d Author: Chuck Lever Date: Thu Jan 7 14:49:37 2016 -0500 svcrdma: Add gfp flags to svc_rdma_post_recv() svc_rdma_post_recv() allocates pages for receive buffers on-demand. It uses GFP_KERNEL so the allocator tries hard, and may sleep. But I'm about to add a call to svc_rdma_post_recv() from a function that may not sleep. Since all svc_rdma_post_recv() call sites can tolerate its failure, allow it to fail if the page allocator returns nothing. Longer term, receive buffers, being a finite resource per-connection, should be pre-allocated and re-used. Signed-off-by: Chuck Lever Acked-by: Bruce Fields Signed-off-by: Doug Ledford include/linux/sunrpc/svc_rdma.h | 2 +- net/sunrpc/xprtrdma/svc_rdma_sendto.c | 2 +- net/sunrpc/xprtrdma/svc_rdma_transport.c | 8 +++++--- 3 files changed, 7 insertions(+), 5 deletions(-) commit 71810ef3271d1a06f7002c55c7e354d8c3233762 Author: Chuck Lever Date: Thu Jan 7 14:49:28 2016 -0500 svcrdma: Remove unused req_map and ctxt kmem_caches Clean up. Signed-off-by: Chuck Lever Acked-by: Bruce Fields Signed-off-by: Doug Ledford include/linux/sunrpc/svc_rdma.h | 1 + net/sunrpc/xprtrdma/svc_rdma.c | 35 ----------------------------------- net/sunrpc/xprtrdma/xprt_rdma.h | 7 ------- 3 files changed, 1 insertion(+), 42 deletions(-) commit 2fe81b239dbb00d0a2fd8858ac9dd4ef4a8841ee Author: Chuck Lever Date: Thu Jan 7 14:49:20 2016 -0500 svcrdma: Improve allocation of struct svc_rdma_req_map To ensure this allocation cannot fail and will not sleep, pre-allocate the req_map structures per-connection. Signed-off-by: Chuck Lever Acked-by: Bruce Fields Signed-off-by: Doug Ledford include/linux/sunrpc/svc_rdma.h | 8 ++- net/sunrpc/xprtrdma/svc_rdma_sendto.c | 6 +-- net/sunrpc/xprtrdma/svc_rdma_transport.c | 85 ++++++++++++++++++++++++++++---- 3 files changed, 84 insertions(+), 15 deletions(-) commit cc886c9ff1607eda04062bdcec963e2f8e6a3eb1 Author: Chuck Lever Date: Thu Jan 7 14:49:12 2016 -0500 svcrdma: Improve allocation of struct svc_rdma_op_ctxt When the maximum payload size of NFS READ and WRITE was increased by commit cc9a903d915c ("svcrdma: Change maximum server payload back to RPCSVC_MAXPAYLOAD"), the size of struct svc_rdma_op_ctxt increased to over 6KB (on x86_64). That makes allocating one of these from a kmem_cache more likely to fail in situations when system memory is exhausted. Since I'm about to add a caller where this allocation must always work _and_ it cannot sleep, pre-allocate ctxts for each connection. Another motivation for this change is that NFSv4.x servers are required by specification not to drop NFS requests. Pre-allocating memory resources reduces the likelihood of a drop. Signed-off-by: Chuck Lever Acked-by: Bruce Fields Signed-off-by: Doug Ledford include/linux/sunrpc/svc_rdma.h | 6 +- net/sunrpc/xprtrdma/svc_rdma_transport.c | 102 +++++++++++++++++++++++++++---- 2 files changed, 94 insertions(+), 14 deletions(-) commit ced4ac0c4f7819d586b559a2ed7244e4f78ac3d0 Author: Chuck Lever Date: Thu Jan 7 14:49:03 2016 -0500 svcrdma: Clean up process_context() Be sure the completed ctxt is put in every path. The xprt enqueue can take a while, so put the completed ctxt back in circulation _before_ enqueuing the xprt. Remove/disable debugging. Signed-off-by: Chuck Lever Acked-by: Bruce Fields Signed-off-by: Doug Ledford net/sunrpc/xprtrdma/svc_rdma_transport.c | 44 +++++++++++++++----------------- 1 file changed, 21 insertions(+), 23 deletions(-) commit 3d61677c4d5f40529fb26c8f45c0d3a1bba47c66 Author: Chuck Lever Date: Thu Jan 7 14:48:55 2016 -0500 svcrdma: Clean up rdma_create_xprt() kzalloc is used here, so setting the atomic fields to zero is unnecessary. sc_ord is set again in handle_connect_req. The other fields are re-initialized in svc_rdma_accept(). Signed-off-by: Chuck Lever Acked-by: Bruce Fields Signed-off-by: Doug Ledford net/sunrpc/xprtrdma/svc_rdma_transport.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) commit c3efe7500add077f79d37b18e9c66df6621409b6 Author: Matan Barak Date: Mon Jan 4 10:49:54 2016 +0200 IB/core: Use hop-limit from IP stack for RoCE Previously, IPV6_DEFAULT_HOPLIMIT was used as the hop limit value for RoCE. Fixing that by taking ip4_dst_hoplimit and ip6_dst_hoplimit as hop limit values. Signed-off-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/core/addr.c | 9 ++++++++- drivers/infiniband/core/cm.c | 1 + drivers/infiniband/core/cma.c | 12 +++++------- drivers/infiniband/core/verbs.c | 16 +++++++--------- drivers/infiniband/hw/ocrdma/ocrdma_ah.c | 3 ++- include/rdma/ib_addr.h | 4 +++- 6 files changed, 26 insertions(+), 19 deletions(-) commit f7f4b23e27f7561330ef13f93dbe8f2dc410efa7 Author: Matan Barak Date: Mon Jan 4 10:49:53 2016 +0200 IB/core: Rename rdma_addr_find_dmac_by_grh rdma_addr_find_dmac_by_grh resolves dmac, vlan_id and if_index and downsteram patch will also add hop_limit as an output parameter, thus we rename it to rdma_addr_find_l2_eth_by_grh. Signed-off-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/core/addr.c | 7 ++++--- drivers/infiniband/core/verbs.c | 18 +++++++++--------- drivers/infiniband/hw/ocrdma/ocrdma_ah.c | 6 +++--- include/rdma/ib_addr.h | 5 +++-- 4 files changed, 19 insertions(+), 17 deletions(-) commit 4bfdf635c668869c69fd18ece37ec66fb6f38fcf Author: Bart Van Assche Date: Fri Jan 1 13:17:46 2016 +0100 IB/cm: Fix a recently introduced deadlock ib_send_cm_drep() calls cm_enter_timewait() while holding a spinlock that can be locked from inside an interrupt handler. Hence do not enable interrupts inside cm_enter_timewait() if called with interrupts disabled. This patch fixes e.g. the following deadlock: Acked-by: Erez Shitrit ================================= [ INFO: inconsistent lock state ] 4.4.0-rc7+ #1 Tainted: G E --------------------------------- inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage. swapper/8/0 [HC1[1]:SC0[0]:HE0:SE1] takes: (&(&cm_id_priv->lock)->rlock){?.+...}, at: [] cm_establish+0x 74/0x1b0 [ib_cm] {HARDIRQ-ON-W} state was registered at: [] mark_held_locks+0x71/0x90 [] trace_hardirqs_on_caller+0xa7/0x1c0 [] trace_hardirqs_on+0xd/0x10 [] _raw_spin_unlock_irq+0x2b/0x40 [] cm_enter_timewait+0xae/0x100 [ib_cm] [] ib_send_cm_drep+0xb6/0x190 [ib_cm] [] srp_cm_handler+0x128/0x1a0 [ib_srp] [] cm_process_work+0x20/0xf0 [ib_cm] [] cm_dreq_handler+0x135/0x2c0 [ib_cm] [] cm_work_handler+0x75/0xd0 [ib_cm] [] process_one_work+0x1bd/0x460 [] worker_thread+0x118/0x420 [] kthread+0xe4/0x100 [] ret_from_fork+0x3f/0x70 irq event stamp: 1672286 hardirqs last enabled at (1672283): [] poll_idle+0x10/0x80 hardirqs last disabled at (1672284): [] common_interrupt+0x84/0x89 softirqs last enabled at (1672286): [] _local_bh_enable+0x1c/0x50 softirqs last disabled at (1672285): [] irq_enter+0x47/0x70 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&(&cm_id_priv->lock)->rlock); lock(&(&cm_id_priv->lock)->rlock); *** DEADLOCK *** no locks held by swapper/8/0. stack backtrace: CPU: 8 PID: 0 Comm: swapper/8 Tainted: G E 4.4.0-rc7+ #1 Hardware name: Dell Inc. PowerEdge R430/03XKDV, BIOS 1.0.2 11/17/2014 ffff88045af5e950 ffff88046e503a88 ffffffff81251c1b 0000000000000007 0000000000000006 0000000000000003 ffff88045af5ddc0 ffff88046e503ad8 ffffffff810a32f4 0000000000000000 0000000000000000 0000000000000001 Call Trace: [] dump_stack+0x4f/0x74 [] print_usage_bug+0x184/0x190 [] mark_lock_irq+0xf2/0x290 [] mark_lock+0x115/0x1b0 [] mark_irqflags+0x15c/0x170 [] __lock_acquire+0x1ef/0x560 [] lock_acquire+0x62/0x80 [] _raw_spin_lock_irqsave+0x43/0x60 [] cm_establish+0x74/0x1b0 [ib_cm] [] ib_cm_notify+0x31/0x100 [ib_cm] [] srpt_qp_event+0x54/0xd0 [ib_srpt] [] mlx4_ib_qp_event+0x72/0xc0 [mlx4_ib] [] mlx4_qp_event+0x69/0xd0 [mlx4_core] [] mlx4_eq_int+0x51e/0xd50 [mlx4_core] [] mlx4_msi_x_interrupt+0xf/0x20 [mlx4_core] [] handle_irq_event_percpu+0x40/0x110 [] handle_irq_event+0x3f/0x70 [] handle_edge_irq+0x79/0x120 [] handle_irq+0x5d/0x130 [] do_IRQ+0x6d/0x130 [] common_interrupt+0x89/0x89 [] cpuidle_enter_state+0xcf/0x200 [] cpuidle_enter+0x12/0x20 [] call_cpuidle+0x36/0x60 [] cpuidle_idle_call+0x63/0x110 [] cpu_idle_loop+0xfa/0x130 [] cpu_startup_entry+0xe/0x10 [] start_secondary+0x83/0x90 Fixes: commit be4b499323bf ("IB/cm: Do not queue work to a device that's going away") Signed-off-by: Bart Van Assche Cc: Erez Shitrit Cc: stable Signed-off-by: Doug Ledford drivers/infiniband/core/cm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 19f57298f03825e36aefc866d8472b43780538d4 Author: Bart Van Assche Date: Thu Dec 31 09:56:43 2015 +0100 IB/srpt: Fix the RDMA completion handlers Avoid that the following kernel crash is triggered when processing an RDMA completion: BUG: unable to handle kernel paging request at 0000000100000198 IP: [] __lock_acquire+0xa2/0x560 Call Trace: [] lock_acquire+0x62/0x80 [] _raw_spin_lock_irqsave+0x43/0x60 [] srpt_rdma_read_done+0x57/0x120 [ib_srpt] [] __ib_process_cq+0x43/0xc0 [ib_core] [] ib_cq_poll_work+0x25/0x70 [ib_core] [] process_one_work+0x1bd/0x460 [] worker_thread+0x118/0x420 [] kthread+0xe4/0x100 [] ret_from_fork+0x3f/0x70 Fixes: commit 59fae4deaad3 ("IB/srpt: chain RDMA READ/WRITE requests"). Signed-off-by: Bart Van Assche Reviewed-by: Christoph Hellwig Reviewed-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/ulp/srpt/ib_srpt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2ee177e945e000a40b520ea667fd4fbe7a61634e Author: Bart Van Assche Date: Thu Dec 31 09:56:03 2015 +0100 irq_poll: Fix irq_poll_sched() The IRQ_POLL_F_SCHED bit is set as long as polling is ongoing. This means that irq_poll_sched() must proceed if this bit has not yet been set. Fixes: commit ea51190c0315 ("irq_poll: fold irq_poll_sched_prep into irq_poll_sched"). Signed-off-by: Bart Van Assche Reviewed-by: Christoph Hellwig Reviewed-by: Sagi Grimberg Signed-off-by: Doug Ledford lib/irq_poll.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9506902b7be2d8ccc235c14ccaec7f07b2c7d520 Author: Matan Barak Date: Wed Dec 30 16:14:18 2015 +0200 IB/core: Fix dereference before check Sparse complains about dereference before check. Fixing this by moving the check before the dereference. Fixes: 200298326b27 ('IB/core: Validate route when we init ah') Signed-off-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/core/addr.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 2e2cdace5a26507a564d319a1338920a838ef52e Author: Matan Barak Date: Wed Dec 30 16:14:17 2015 +0200 IB/core: Eliminate sparse false context imbalance warning When write_gid function needs to do a sleep-able operation, it unlocks table->rwlock and then relocks it. Sparse complains about context imbalance. This is safe as write_gid is always called with table->rwlock. write_gid protects from simultaneous writes to this GID entry by setting the GID_TABLE_ENTRY_INVALID flag. Fixes: 9c584f049596 ('IB/core: Change per-entry lock in RoCE GID table to one lock') Signed-off-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/core/cache.c | 1 + 1 file changed, 1 insertion(+) commit 6e2a51a0f7c89a22169f366d23d5f213b7b7edaf Author: Hal Rosenstock Date: Tue Dec 29 05:43:43 2015 -0500 IB/core: sysfs.c: Fix PerfMgt ClassPortInfo handling Port number is not part of ClassPortInfo attribute but is still needed as a parameter when invoking process_mad. To properly handle this attribute, port_num is added as a parameter to get_counter_table and get_perf_mad was changed not to store port_num in the attribute itself when it's querying the ClassPortInfo attribute. This handles issue pointed out by Matan Barak Fixes: 145d9c541032 ('IB/core: Display extended counter set if available') Signed-off-by: Hal Rosenstock Acked-by: Matan Barak Acked-by: Ira Weiny Reviewed-by: Christoph Lameter Signed-off-by: Doug Ledford drivers/infiniband/core/sysfs.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit b6aeb980f1e143f3237365710290b199e9363eeb Author: Bart Van Assche Date: Tue Dec 29 10:45:03 2015 +0100 IB/core: Remove set-but-not-used variable from ib_sg_to_pages() Detected this by building the IB core with W=1. See also patch "IB core: Fix ib_sg_to_pages()" (commit 8f5ba10ed40a). Signed-off-by: Bart Van Assche Cc: Sagi Grimberg Cc: Christoph Hellwig Reviewed-by: Leon Romanovsky Acked-by: Sagi Grimberg Reviewed-by: Christoph Hellwig Signed-off-by: Doug Ledford drivers/infiniband/core/verbs.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit c876a1b7dd6da5dd2d54990fa2772cbfe3779726 Author: Leon Romanovsky Date: Sat Jan 9 13:06:25 2016 +0200 IB/mlx5: Fix passing casted pointer in mlx5_query_port_roce Fix static checker warning: drivers/infiniband/hw/mlx5/main.c:149 mlx5_query_port_roce() warn: passing casted pointer '&props->qkey_viol_cntr' to 'mlx5_query_nic_vport_qkey_viol_cntr()' 32 vs 16. Fixes: 3f89a643eb29 ("IB/mlx5: Extend query_device/port to support RoCE") Reported-by: Dan Carpenter Signed-off-by: Leon Romanovsky Reviewed-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/main.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit d53e11fdf0538a972ad4f1e5ec315d3e35c1aae9 Author: Christoph Hellwig Date: Tue Jan 5 22:46:12 2016 -0800 IB/mad: use CQ abstraction Remove the local workqueue to process mad completions and use the CQ API instead. Signed-off-by: Christoph Hellwig Reviewed-by: Hal Rosenstock Reviewed-by: Ira Weiny Reviewed-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/core/mad.c | 162 +++++++++++++------------------------ drivers/infiniband/core/mad_priv.h | 2 +- 2 files changed, 59 insertions(+), 105 deletions(-) commit ca281265c02f342fed4927b4e98e377d9318881f Author: Christoph Hellwig Date: Mon Jan 4 14:15:58 2016 +0100 IB/mad: pass ib_mad_send_buf explicitly to the recv_handler Stop abusing wr_id and just pass the parameter explicitly. Signed-off-by: Christoph Hellwig Reviewed-by: Hal Rosenstock Reviewed-by: Ira Weiny Reviewed-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/core/cm.c | 1 + drivers/infiniband/core/mad.c | 18 ++++++++++-------- drivers/infiniband/core/sa_query.c | 7 ++++--- drivers/infiniband/core/user_mad.c | 1 + drivers/infiniband/ulp/srpt/ib_srpt.c | 1 + include/rdma/ib_mad.h | 2 ++ 6 files changed, 19 insertions(+), 11 deletions(-) commit 39f426553ea30f4449d022577fd6494c265ef3ef Author: Lucas Tanure Date: Tue Jan 19 12:06:30 2016 -0200 infiniband: Replace memset with eth_zero_addr Use eth_zero_addr to assign the zero address to the given address array instead of memset when second argument is address of zero. Signed-off-by: Lucas Tanure Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx4/ah.c | 2 +- drivers/infiniband/hw/nes/nes_utils.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 50ca6ed21e7c389c250ee30b0bb4df66157a1115 Author: Leon Romanovsky Date: Tue Jan 19 11:11:24 2016 +0200 IB/mlx5: Delete locally redefined variable Fix the following sparse warning: drivers/infiniband/hw/mlx5/main.c:1061:29: warning: symbol 'pfn' shadows an earlier one drivers/infiniband/hw/mlx5/main.c:1030:21: originally declared here Fixes: d69e3bcf7976 ('IB/mlx5: Mmap the HCA's core clock register to user-space') Signed-off-by: Leon Romanovsky Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/main.c | 4 ---- 1 file changed, 4 deletions(-) commit f25bf1977f7a968e85fe8ab99252b8132c6cf8c4 Author: Moni Shoua Date: Thu Jan 14 17:48:07 2016 +0200 net/mlx4: Remove unused macro The macro mlx4_foreach_non_ib_transport_port() is not used anywhere. Remove it. Fixes: aa9a2d51a3e7 ("mlx4: Activate RoCE/SRIOV") Signed-off-by: Moni Shoua Signed-off-by: Doug Ledford include/linux/mlx4/device.h | 4 ---- 1 file changed, 4 deletions(-) commit 1049f138166ad6ca2e1c8edd2317a71f5b21b9fe Author: Moni Shoua Date: Thu Jan 14 17:47:38 2016 +0200 IB/mlx4: Take source mac from AH instead from the port In commit dbf727de7440 ("IB/core: Use GID table in AH creation and dmac resolution") we copy source mac to mlx4_ah from the attributes of gid at ib_ah_attr.grh.sgid_index. Now we can use it. Signed-off-by: Moni Shoua Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx4/qp.c | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) commit 4e4081673445485aa6bc90383bdb83e7a96cc48a Author: Matan Barak Date: Thu Jan 14 17:47:02 2016 +0200 IB/mlx4: Initialize hop_limit when creating address handle Hop limit value wasn't copied from attributes when ah was created. This may influence packets for unconnected services to get dropped in routers when endpoints are not in the same subnet. Fixes: fa417f7b520e ("IB/mlx4: Add support for IBoE") Signed-off-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx4/ah.c | 1 + 1 file changed, 1 insertion(+) commit 9f17768611ebf81dfac69948dd12622b6f2e45fc Author: Leon Romanovsky Date: Thu Jan 14 08:11:40 2016 +0200 IB/mlx5: Expose correct maximum number of CQE capacity Maximum number of EQE capacity per CQ was mistakenly exposed as CQE. Fix that. Fixes: 938fe83c8dcb ("net/mlx5_core: New device capabilities handling") Signed-off-by: Leon Romanovsky Cc: Reviewed-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 28de1f74374da4f0f628b14bbccb07e5637d00b1 Author: Hariprasad S Date: Wed Jan 13 10:03:14 2016 +0530 iw_cxgb4: Take clip reference before starting IPv6 listen The h/w is designed in such a way that, if you do anything IPv6 related, a valid clip entry must be there. So take clip reference before creating IPv6 listening servers, and then if we fail to create server, release the clip entry. Signed-off-by: Hariprasad Shenai Acked-by: Steve Wise Signed-off-by: Doug Ledford drivers/infiniband/hw/cxgb4/cm.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) commit 4275a5b20043005ec6ceee67c1d352e798b0f5a1 Author: Hariprasad S Date: Tue Jan 12 16:33:22 2016 +0530 iw_cxgb4: Fixes GW-Basic labels to meaningful error names Reported-by: Dan Carpenter Signed-off-by: Hariprasad Shenai Signed-off-by: Doug Ledford drivers/infiniband/hw/cxgb4/device.c | 45 ++++++++++++++---------------------- 1 file changed, 17 insertions(+), 28 deletions(-) commit 82b1df1b083ff1b1c45fcdf5a844351cdca03ed8 Author: Hariprasad S Date: Tue Jan 12 16:33:21 2016 +0530 iw_cxgb4: Fixes static checker warning in c4iw_rdev_open() Commit c5dfb000b904 ("iw_cxgb4: Pass qid range to user space driver") from Dec 11, 2015, leads to the following static checker warning: drivers/infiniband/hw/cxgb4/device.c:857 c4iw_rdev_open() warn: variable dereferenced before check 'rdev->status_page' Also we weren't deallocating ocqp pool in error path when failed to allocate status page. Fixing it too. Fixes: c5dfb000b904 ("iw_cxgb4: Pass qid range to user space driver") Reported-by: Dan Carpenter Signed-off-by: Hariprasad Shenai Signed-off-by: Doug Ledford drivers/infiniband/hw/cxgb4/device.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit a7d0e959fab832d0614d0e144cb01cbb87d36258 Author: Dan Carpenter Date: Tue Jan 12 12:29:21 2016 +0300 IB/cma: allocating too much memory in make_cma_ports() The issue here is that there is a cut and paste bug. When we allocate cma_dev_group->default_ports_group we use "sizeof(*cma_dev_group->ports)" instead of "sizeof(*cma_dev_group->default_ports_group)". We're bumping up against the 80 character limit so I introduced a new local pointer "ports_group" to get around that. Fixes: 045959db65c6 ('IB/cma: Add configfs for rdma_cm') Signed-off-by: Dan Carpenter Acked-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/core/cma_configfs.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit bc1251e6d9420fec4c6b328bcf9ea4e5bdecd30d Author: Dan Carpenter Date: Tue Jan 12 12:27:43 2016 +0300 RDMA/nes: checking for NULL instead of IS_ERR nes_reg_phys_mr() returns ERR_PTRs on error. It doesn't return NULL. This bug has been there for a while, but we recently changed from calling a function pointer to calling nes_reg_phys_mr() directly so now Smatch is able to detect the bug. Signed-off-by: Dan Carpenter Reviewed-by: Christoph Hellwig Signed-off-by: Doug Ledford drivers/infiniband/hw/nes/nes_cm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit fbbeb8632bf0b46ab44cfcedc4654cd7831b7161 Author: Vinit Agnihotri Date: Mon Jan 11 12:57:25 2016 -0500 IB/qib: Support creating qps with GFP_NOIO flag The current code is problematic when the QP creation and ipoib is used to support NFS and NFS desires to do IO for paging purposes. In that case, the GFP_KERNEL allocation in qib_qp.c causes a deadlock in tight memory situations. This fix adds support to create queue pair with GFP_NOIO flag for connected mode only to cleanly fail the create queue pair in those situations. Cc: # 3.16+ Reviewed-by: Mike Marciniszyn Signed-off-by: Vinit Agnihotri Signed-off-by: Doug Ledford drivers/infiniband/hw/qib/qib_qp.c | 46 ++++++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 14 deletions(-) commit 5f2f3cad8b878b23f17a11dd5af4f4a2cc41c797 Author: Sowmini Varadhan Date: Mon Jan 18 16:12:09 2016 -0500 sunvnet: Initialize network_header and transport_header in vnet_rx_one() vnet_fullcsum() accesses ip_hdr() and transport header to compute the checksum for IPv4 packets, so these need to be initialized in skb created in vnet_rx_one(). Signed-off-by: Sowmini Varadhan Signed-off-by: David S. Miller drivers/net/ethernet/sun/sunvnet.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) commit b4ace4f1ae07691b4f6ea9f3e92efbec083df058 Author: Craig Gallek Date: Tue Jan 19 14:27:08 2016 -0500 soreuseport: fix NULL ptr dereference SO_REUSEPORT after bind Marc Dionne discovered a NULL pointer dereference when setting SO_REUSEPORT on a socket after it is bound. This patch removes the assumption that at least one socket in the reuseport group is bound with the SO_REUSEPORT option before other bind calls occur. Fixes: e32ea7e74727 ("soreuseport: fast reuseport UDP socket selection") Reported-by: Marc Dionne Signed-off-by: Craig Gallek Tested-by: Marc Dionne Signed-off-by: David S. Miller include/net/sock_reuseport.h | 2 +- net/core/sock_reuseport.c | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) commit e0045bf80f62779ba75ba04513020d60e59f5298 Author: Hante Meuleman Date: Tue Jan 19 12:39:24 2016 +0100 brcmfmac: fix sdio sg table alloc crash With commit 7d34b0560567 ("brcmfmac: Move all module parameters to one place") a bug was introduced causing a null pointer exception. This patch fixes the bug by initializing the sg table till after the settings have been initialized. Fixes: 7d34b0560567 ("brcmfmac: Move all module parameters to one place") Reported-by: Marc Zyngier Tested-by: Marc Zyngier Reviewed-by: Arend Van Spriel Reviewed-by: Franky (Zhenhui) Lin Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo .../wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 40 ++++++++-------------- .../wireless/broadcom/brcm80211/brcmfmac/sdio.c | 5 +++ .../wireless/broadcom/brcm80211/brcmfmac/sdio.h | 1 + 3 files changed, 21 insertions(+), 25 deletions(-) commit b7e2d195cc523bd92ed7a64aac089421dbab2a2d Author: Arnd Bergmann Date: Mon Jan 18 20:39:56 2016 +0100 ssb: mark ssb_bus_register as __maybe_unused The SoC variant of the ssb code is now optional like the other ones, which means we can build the framwork without any front-end, but that results in a warning: drivers/ssb/main.c:616:12: warning: 'ssb_bus_register' defined but not used [-Wunused-function] This annotates the ssb_bus_register function as __maybe_unused to shut up the warning. A configuration like this will not work on any hardware of course, but we still want this to silently build without warnings if the configuration is allowed in the first place. Signed-off-by: Arnd Bergmann Fixes: 845da6e58e19 ("ssb: add Kconfig entry for compiling SoC related code") Acked-by: Michael Buesch Signed-off-by: Kalle Valo drivers/ssb/main.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit e7828b28a5de056a29c60fb4e5e4799f5e667427 Author: Michael Büsch Date: Mon Jan 18 17:53:03 2016 +0100 ssb: Set linux-wireless as MAINTAINERS list ssb patches go through the linux-wireless tree. Set the list to linux-wireless, so linux-wireless patchwork can catch the patches. Signed-off-by: Michael Buesch Signed-off-by: Kalle Valo MAINTAINERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5dc3b7b9eb7efbd0dd57cef50ed29c2a709bf51b Author: Felix Fietkau Date: Fri Jan 15 16:00:30 2016 +0100 brcmfmac: add missing include linux/module.h is required for defining module parameters Signed-off-by: Felix Fietkau Signed-off-by: Kalle Valo drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c | 1 + 1 file changed, 1 insertion(+) commit 52a82e23b9f2a9e1d429c5207f8575784290d008 Author: Ursula Braun Date: Tue Jan 19 10:41:33 2016 +0100 af_iucv: Validate socket address length in iucv_sock_bind() Signed-off-by: Ursula Braun Reported-by: Dmitry Vyukov Reviewed-by: Evgeny Cherkashin Signed-off-by: David S. Miller net/iucv/af_iucv.c | 3 +++ 1 file changed, 3 insertions(+) commit 65487fdc0c8072b6ac32ed30fab34de4e66ace55 Author: Ira Weiny Date: Sun Jan 3 22:44:25 2016 -0500 IB/sysfs: Fix sparse warning on attr_id Attributed ID was declared as an int while the value should really be big endian 16. Fixes: 35c4cbb17811 ("IB/core: Create get_perf_mad function in sysfs.c") Reported-by: Bart Van Assche Signed-off-by: Ira Weiny Reviewed-by: Bart Van Assche Reviewed-by: Christoph Lameter Reviewed-by: Hal Rosenstock Signed-off-by: Doug Ledford drivers/infiniband/core/sysfs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9781808c632860fcd82b8e371539a7458ce83548 Author: Devesh Sharma Date: Thu Dec 24 13:14:08 2015 -0500 RDMA/be2net: Remove open and close entry points Recently Dough Ledford reported a deadlock happening between ocrdma-load sequence and NetworkManager service issueing "open" on be2net interface. The deadlock happens when any be2net hook (e.g. open/close) is called in parallel to insmod ocrdma.ko. A. be2net is sending administrative open/close event to ocrdma holding device_list_mutex. It does this from ndo_open/ndo_stop hooks of be2net. So sequence of locks is rtnl_lock---> device_list lock B. When new ocrdma roce device gets registered, infiniband stack now takes rtnl_lock in ib_register_device() in GID initialization routines. So sequence of locks in this path is device_list lock ---> rtnl_lock. This improper locking sequence causes deadlock. In order to resolve the above deadlock condition, ocrdma intorduced a patch to stop listening to administrative open/close events generated from be2net driver. It now depends on link-state-change async-event generated from CNA. This change leaves behind dead code which used to generate administrative open/close events. This patch cleans-up all that dead code from be2net. Reported-by: Doug Ledford CC: Sathya Perla Signed-off-by: Padmanabh Ratnakar Signed-off-by: Selvin Xavier Signed-off-by: Devesh Sharma Signed-off-by: Doug Ledford drivers/net/ethernet/emulex/benet/be.h | 2 -- drivers/net/ethernet/emulex/benet/be_main.c | 4 ---- drivers/net/ethernet/emulex/benet/be_roce.c | 36 ----------------------------- drivers/net/ethernet/emulex/benet/be_roce.h | 4 +--- 4 files changed, 1 insertion(+), 45 deletions(-) commit 3b1ea43009f2aca9f8ff0dd6540f6701e0871baf Author: Devesh Sharma Date: Thu Dec 24 13:14:07 2015 -0500 RDMA/ocrdma: Depend on async link events from CNA Recently Dough Ledford reported a deadlock happening between ocrdma-load sequence and NetworkManager service issuing "open" on be2net interface. The deadlock happens when any be2net hook (e.g. open/close) is called in parallel to insmod ocrdma.ko. A. be2net is sending administrative open/close event to ocrdma holding device_list_mutex. It does this from ndo_open/ndo_stop hooks of be2net. So sequence of locks is rtnl_lock---> device_list lock B. When new ocrdma roce device gets registered, infiniband stack now takes rtnl_lock in ib_register_device() in GID initialization routines. So sequence of locks in this path is device_list lock ---> rtnl_lock. This improper locking sequence causes deadlock. With this patch we stop using administrative open and close events injected by be2net driver. These events were used to dispatch PORT_ACTIVE and PORT_ERROR events to the IB-stack. This patch implements a logic to receive async-link-events generated from CNA whenever link-state-change is detected. Now on, these async-events will be used to dispatch PORT_ACTIVE and PORT_ERROR events to IB-stack. Depending on async-events from CNA removes the need to hold device-list-mutex and thus breaks the busy-wait scenario. Reported-by: Doug Ledford CC: Sathya Perla Signed-off-by: Padmanabh Ratnakar Signed-off-by: Selvin Xavier Signed-off-by: Devesh Sharma Signed-off-by: Doug Ledford drivers/infiniband/hw/ocrdma/ocrdma.h | 10 ++++++ drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 42 ++++++++++++++++++++----- drivers/infiniband/hw/ocrdma/ocrdma_hw.h | 4 ++- drivers/infiniband/hw/ocrdma/ocrdma_main.c | 34 ++++++++++++++------ drivers/infiniband/hw/ocrdma/ocrdma_sli.h | 49 ++++++++++++++++++++++++++--- drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 2 +- 6 files changed, 119 insertions(+), 22 deletions(-) commit d310a344e18c1d9a6a2ab11ef15f2954418c493d Author: Devesh Sharma Date: Thu Dec 24 13:14:06 2015 -0500 RDMA/ocrdma: Dispatch only port event when port state changes Dispatch only port event to IB stack when port state changes. Don't explicitly modify qps to error. Let application listen to port events on async event queue or let QP fail with retry-exceeded completion error. Signed-off-by: Padmanabh Ratnakar Signed-off-by: Devesh Sharma Signed-off-by: Doug Ledford drivers/infiniband/hw/ocrdma/ocrdma_main.c | 23 ----------------------- 1 file changed, 23 deletions(-) commit a2addf94a8f05171ecb98ac22d335bde09ed9f36 Author: Devesh Sharma Date: Thu Dec 24 13:14:05 2015 -0500 RDMA/ocrdma: Fix vlan-id assignment in qp parameters vlan-id is wrongly getting as 0 when PFC is enabled. Set vlan-id configured by user in QP parameters. In case vlan interface is not used, flash a warning to user to configure vlan and assign vlan-id as 0 in qp params. Fixes: dbf727de7440 ('IB/core: Use GID table in AH creation and dmac resolution') Cc: Matan Barak Signed-off-by: Devesh Sharma Signed-off-by: Doug Ledford drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit ed0dfffd7dcd3f517b1507929642c2aed4ef00fb Author: Eric Dumazet Date: Tue Jan 19 08:36:43 2016 -0800 udp: fix potential infinite loop in SO_REUSEPORT logic Using a combination of connected and un-connected sockets, Dmitry was able to trigger soft lockups with his fuzzer. The problem is that sockets in the SO_REUSEPORT array might have different scores. Right after sk2=socket(), setsockopt(sk2,...,SO_REUSEPORT, on) and bind(sk2, ...), but _before_ the connect(sk2) is done, sk2 is added into the soreuseport array, with a score which is smaller than the score of first socket sk1 found in hash table (I am speaking of the regular UDP hash table), if sk1 had the connect() done, giving a +8 to its score. hash bucket [X] -> sk1 -> sk2 -> NULL sk1 score = 14 (because it did a connect()) sk2 score = 6 SO_REUSEPORT fast selection is an optimization. If it turns out the score of the selected socket does not match score of first socket, just fallback to old SO_REUSEPORT logic instead of trying to be too smart. Normal SO_REUSEPORT users do not mix different kind of sockets, as this mechanism is used for load balance traffic. Fixes: e32ea7e74727 ("soreuseport: fast reuseport UDP socket selection") Reported-by: Dmitry Vyukov Signed-off-by: Eric Dumazet Cc: Craig Gallek Acked-by: Craig Gallek Signed-off-by: David S. Miller net/ipv4/udp.c | 32 +++++++++++++++++++++----------- net/ipv6/udp.c | 32 +++++++++++++++++++++----------- 2 files changed, 42 insertions(+), 22 deletions(-) commit 649367735ee5dedb128d9fac0b86ba7e0fe7ae3b Author: Matan Barak Date: Thu Jan 7 11:19:29 2016 +0200 IB/cma: Fix RDMA port validation for iWarp cma_validate_port wrongly assumed that Ethernet devices are RoCE devices and thus their ndev should be matched in the GID table. This broke the iWarp support. Fixing that matching the ndev only if we work on a RoCE port. Cc: # 4.4.x- Fixes: abae1b71dd37 ('IB/cma: cma_validate_port should verify the port and netdevice') Reported-by: Hariprasad Shenai Tested-by: Hariprasad Shenai Signed-off-by: Matan Barak Reviewed-by: Steve Wise Signed-off-by: Doug Ledford drivers/infiniband/core/cma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 09dc9cd6528f5b52bcbd3292a6312e762c85260f Author: Mike Marciniszyn Date: Thu Jan 7 16:44:10 2016 -0500 IB/qib: fix mcast detach when qp not attached The code produces the following trace: [1750924.419007] general protection fault: 0000 [#3] SMP [1750924.420364] Modules linked in: nfnetlink autofs4 rpcsec_gss_krb5 nfsv4 dcdbas rfcomm bnep bluetooth nfsd auth_rpcgss nfs_acl dm_multipath nfs lockd scsi_dh sunrpc fscache radeon ttm drm_kms_helper drm serio_raw parport_pc ppdev i2c_algo_bit lpc_ich ipmi_si ib_mthca ib_qib dca lp parport ib_ipoib mac_hid ib_cm i3000_edac ib_sa ib_uverbs edac_core ib_umad ib_mad ib_core ib_addr tg3 ptp dm_mirror dm_region_hash dm_log psmouse pps_core [1750924.420364] CPU: 1 PID: 8401 Comm: python Tainted: G D 3.13.0-39-generic #66-Ubuntu [1750924.420364] Hardware name: Dell Computer Corporation PowerEdge 860/0XM089, BIOS A04 07/24/2007 [1750924.420364] task: ffff8800366a9800 ti: ffff88007af1c000 task.ti: ffff88007af1c000 [1750924.420364] RIP: 0010:[] [] qib_mcast_qp_free+0x11/0x50 [ib_qib] [1750924.420364] RSP: 0018:ffff88007af1dd70 EFLAGS: 00010246 [1750924.420364] RAX: 0000000000000001 RBX: ffff88007b822688 RCX: 000000000000000f [1750924.420364] RDX: ffff88007b822688 RSI: ffff8800366c15a0 RDI: 6764697200000000 [1750924.420364] RBP: ffff88007af1dd78 R08: 0000000000000001 R09: 0000000000000000 [1750924.420364] R10: 0000000000000011 R11: 0000000000000246 R12: ffff88007baa1d98 [1750924.420364] R13: ffff88003ecab000 R14: ffff88007b822660 R15: 0000000000000000 [1750924.420364] FS: 00007ffff7fd8740(0000) GS:ffff88007fc80000(0000) knlGS:0000000000000000 [1750924.420364] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [1750924.420364] CR2: 00007ffff597c750 CR3: 000000006860b000 CR4: 00000000000007e0 [1750924.420364] Stack: [1750924.420364] ffff88007b822688 ffff88007af1ddf0 ffffffffa0132429 000000007af1de20 [1750924.420364] ffff88007baa1dc8 ffff88007baa0000 ffff88007af1de70 ffffffffa00cb313 [1750924.420364] 00007fffffffde88 0000000000000000 0000000000000008 ffff88003ecab000 [1750924.420364] Call Trace: [1750924.420364] [] qib_multicast_detach+0x1e9/0x350 [ib_qib] [1750924.568035] [] ? ib_uverbs_modify_qp+0x323/0x3d0 [ib_uverbs] [1750924.568035] [] ib_detach_mcast+0x31/0x50 [ib_core] [1750924.568035] [] ib_uverbs_detach_mcast+0x93/0x170 [ib_uverbs] [1750924.568035] [] ib_uverbs_write+0xc6/0x2c0 [ib_uverbs] [1750924.568035] [] ? apparmor_file_permission+0x18/0x20 [1750924.568035] [] ? security_file_permission+0x23/0xa0 [1750924.568035] [] vfs_write+0xb4/0x1f0 [1750924.568035] [] SyS_write+0x49/0xa0 [1750924.568035] [] system_call_fastpath+0x1a/0x1f [1750924.568035] Code: 66 2e 0f 1f 84 00 00 00 00 00 31 c0 5d c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 0f 1f 44 00 00 55 48 89 e5 53 48 89 fb 48 8b 7f 10 ff 8f 40 01 00 00 74 0e 48 89 df e8 8e f8 06 e1 5b 5d c3 0f [1750924.568035] RIP [] qib_mcast_qp_free+0x11/0x50 [ib_qib] [1750924.568035] RSP [1750924.650439] ---[ end trace 73d5d4b3f8ad4851 ] The fix is to note the qib_mcast_qp that was found. If none is found, then return EINVAL indicating the error. Cc: Reviewed-by: Dennis Dalessandro Reported-by: Jason Gunthorpe Signed-off-by: Mike Marciniszyn Signed-off-by: Doug Ledford drivers/infiniband/hw/qib/qib_verbs_mcast.c | 35 +++++++++++++---------------- 1 file changed, 15 insertions(+), 20 deletions(-) commit 50be28de6febbec4535fad2cf0870afbc524e735 Author: Erez Shitrit Date: Thu Jan 7 09:28:08 2016 +0200 IB/IPoIB: Fix kernel panic on multicast flow ipoib_mcast_restart_task calls ipoib_mcast_remove_list with the parameter mcast->dev. That mcast is a temporary (used as an iterator) variable that may be uninitialized. There is no need to send the variable dev to the function, as each mcast has its dev as a member in the mcast struct. This causes the next panic: RIP: 0010: ipoib_mcast_leave+0x6d/0xf0 [ib_ipoib] RSP: 0018: EFLAGS: 00010246 RAX: f0201 RBX: 24e00 RCX: 00000 .... .... Stack: Call Trace: ipoib_mcast_remove_list+0x3a/0x70 [ib_ipoib] ipoib_mcast_restart_task+0x3bb/0x520 [ib_ipoib] process_one_work+0x164/0x470 worker_thread+0x11d/0x420 ... Fixes: 5a0e81f6f483 ('IB/IPoIB: factor out common multicast list removal code') Signed-off-by: Erez Shitrit Reported-by: Doron Tsur Reviewed-by: Christoph Lameter Signed-off-by: Doug Ledford drivers/infiniband/ulp/ipoib/ipoib.h | 2 +- drivers/infiniband/ulp/ipoib/ipoib_main.c | 3 +-- drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 8 ++++---- 3 files changed, 6 insertions(+), 7 deletions(-) commit 3466904d38ff1e63f0a19cb31166db67f2d05c61 Author: Jordan Lazare Date: Mon Jan 18 17:00:03 2016 -0500 drm/amdgpu: Allow the driver to load if amdgpu.powerplay=1 on asics without powerplay support Avoid setting pp_enabled if there is no powerplay implementation. Signed-off-by: Jordan Lazare Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) commit 99e38df892234aa985185fc776647bad6f9bd7a7 Merge: a200dcb 3270425 Author: Linus Torvalds Date: Tue Jan 19 09:35:06 2016 -0800 Merge tag 'iommu-updates-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu Pull IOMMU updates from Joerg Roedel: "The updates include: - Small code cleanups in the AMD IOMMUv2 driver - Scalability improvements for the DMA-API implementation of the AMD IOMMU driver. This is just a starting point, but already showed some good improvements in my tests. - Removal of the unused Renesas IPMMU/IPMMUI driver - Updates for ARM-SMMU include: * Some fixes to get the driver working nicely on Broadcom hardware * A change to the io-pgtable API to indicate the unit in which to flush (all callers converted, with Ack from Laurent) * Use of devm_* for allocating/freeing the SMMUv3 buffers - Some other small fixes and improvements for other drivers" * tag 'iommu-updates-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (46 commits) iommu/vt-d: Fix up error handling in alloc_iommu iommu/vt-d: Check the return value of iommu_device_create() iommu/amd: Remove an unneeded condition iommu/amd: Preallocate dma_ops apertures based on dma_mask iommu/amd: Use trylock to aquire bitmap_lock iommu/amd: Make dma_ops_domain->next_index percpu iommu/amd: Relax locking in dma_ops path iommu/amd: Initialize new aperture range before making it visible iommu/amd: Build io page-tables with cmpxchg64 iommu/amd: Allocate new aperture ranges in dma_ops_alloc_addresses iommu/amd: Optimize dma_ops_free_addresses iommu/amd: Remove need_flush from struct dma_ops_domain iommu/amd: Iterate over all aperture ranges in dma_ops_area_alloc iommu/amd: Flush iommu tlb in dma_ops_free_addresses iommu/amd: Rename dma_ops_domain->next_address to next_index iommu/amd: Remove 'start' parameter from dma_ops_area_alloc iommu/amd: Flush iommu tlb in dma_ops_aperture_alloc() iommu/amd: Retry address allocation within one aperture iommu/amd: Move aperture_range.offset to another cache-line iommu/amd: Add dma_ops_aperture_alloc() function ... commit 9571e1d84042f5670df9fabdcbe7dd5da3abe43e Author: Michel Dänzer Date: Tue Jan 19 17:59:46 2016 +0900 drm/amdgpu: Use drm_calloc_large for VM page_tables array It can be big, depending on the VM address space size, which is tunable via the vm_size module parameter. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93721 Reviewed-by: Christian König Signed-off-by: Michel Dänzer Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 558041d8d21b48287224dd0e32cf19563c77607c Author: Al Viro Date: Tue Jan 19 11:40:44 2016 -0500 find_filesystem(): simplify comparison Signed-off-by: Al Viro fs/filesystems.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 32704253dc008dfedead71da016b00d10cd1854f Merge: afd2ff9 7cd7578 89ae54b e7479a1 ae50dc4 6d6c7e5 1fb260b bc84745 Author: Joerg Roedel Date: Tue Jan 19 15:30:43 2016 +0100 Merge branches 's390', 'arm/renesas', 'arm/msm', 'arm/shmobile', 'arm/smmu', 'x86/amd' and 'x86/vt-d' into next commit 5bb1729cbdfbe974ad6385be94b14afbac97e19f Author: Rafael J. Wysocki Date: Sat Jan 16 00:56:34 2016 +0100 cpuidle: menu: Avoid pointless checks in menu_select() If menu_select() cannot find a suitable state to return, it will return the state index stored in data->last_state_idx. This means that it is pointless to look at the states whose indices are less than or equal to data->last_state_idx in the main loop, so don't do that. Given that those checks are done on every idle state selection, this change can save quite a bit of completely unnecessary overhead. Signed-off-by: Rafael J. Wysocki Acked-by: Ingo Molnar Tested-by: Sudeep Holla drivers/cpuidle/governors/menu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 51164251f5c35e6596130ef0de94ffe65fe441e0 Author: Rafael J. Wysocki Date: Sat Jan 16 00:54:53 2016 +0100 sched / idle: Drop default_idle_call() fallback from call_cpuidle() After commit 9c4b2867ed7c (cpuidle: menu: Fix menu_select() for CPUIDLE_DRIVER_STATE_START == 0) it is clear that menu_select() cannot return negative values. Moreover, ladder_select_state() will never return a negative value too, so make find_deepest_state() return non-negative values too and drop the default_idle_call() fallback from call_cpuidle(). This eliminates one branch from the idle loop and makes the governors and find_deepest_state() handle the case when all states have been disabled from sysfs consistently. Signed-off-by: Rafael J. Wysocki Acked-by: Peter Zijlstra (Intel) Acked-by: Ingo Molnar Tested-by: Sudeep Holla drivers/cpuidle/cpuidle.c | 6 +++--- kernel/sched/idle.c | 6 ------ 2 files changed, 3 insertions(+), 9 deletions(-) commit 9cb1ccecb69d133e014b7be4de2609f689398c07 Author: Heiko Carstens Date: Mon Jan 18 13:12:19 2016 +0100 s390: remove all usages of PSW_ADDR_INSN Yet another leftover from the 31 bit era. The usual operation "y = x & PSW_ADDR_INSN" with the PSW_ADDR_INSN mask is a nop for CONFIG_64BIT. Therefore remove all usages and hope the code is a bit less confusing. Signed-off-by: Heiko Carstens Reviewed-by: David Hildenbrand arch/s390/include/asm/ptrace.h | 4 ++-- arch/s390/kernel/debug.c | 2 +- arch/s390/kernel/dumpstack.c | 9 ++++----- arch/s390/kernel/early.c | 2 +- arch/s390/kernel/ftrace.c | 2 +- arch/s390/kernel/kprobes.c | 6 +++--- arch/s390/kernel/perf_event.c | 12 +++++------- arch/s390/kernel/process.c | 10 +++++----- arch/s390/kernel/ptrace.c | 6 ++---- arch/s390/kernel/stacktrace.c | 11 +++++------ arch/s390/kernel/traps.c | 9 ++++----- arch/s390/kvm/guestdbg.c | 4 ++-- arch/s390/mm/fault.c | 4 ++-- arch/s390/oprofile/backtrace.c | 9 ++++----- 14 files changed, 41 insertions(+), 49 deletions(-) commit fecc868a668774b0fc666728c3f5d9f6fceefe64 Author: Heiko Carstens Date: Mon Jan 18 12:49:44 2016 +0100 s390: remove all usages of PSW_ADDR_AMODE This is a leftover from the 31 bit area. For CONFIG_64BIT the usual operation "y = x | PSW_ADDR_AMODE" is a nop. Therefore remove all usages of PSW_ADDR_AMODE and make the code a bit less confusing. Signed-off-by: Heiko Carstens Reviewed-by: David Hildenbrand arch/s390/include/asm/processor.h | 4 ++-- arch/s390/include/asm/ptrace.h | 2 +- arch/s390/kernel/early.c | 6 +++--- arch/s390/kernel/ipl.c | 4 ++-- arch/s390/kernel/kprobes.c | 10 +++++----- arch/s390/kernel/process.c | 2 +- arch/s390/kernel/setup.c | 16 ++++++---------- arch/s390/kernel/signal.c | 13 ++++++------- arch/s390/kernel/traps.c | 2 +- arch/s390/mm/fault.c | 2 +- 10 files changed, 28 insertions(+), 33 deletions(-) commit 696aafd36905a90af87c64d1278f91e39e66ae1e Author: Heiko Carstens Date: Tue Jan 19 10:19:02 2016 +0100 s390: wire up copy_file_range syscall Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/include/uapi/asm/unistd.h | 3 ++- arch/s390/kernel/compat_wrapper.c | 1 + arch/s390/kernel/syscalls.S | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) commit cd17e153af499c74d7e347c8ad7eab273f55f20b Author: Heiko Carstens Date: Fri Jan 15 14:52:59 2016 +0100 s390: remove superfluous memblock_alloc() return value checks memblock_alloc() and memblock_alloc_base() will panic on their own if they can't find free memory. Therefore remove some pointless checks. Signed-off-by: Heiko Carstens Acked-by: Michael Holzheu Signed-off-by: Martin Schwidefsky arch/s390/kernel/crash_dump.c | 2 -- arch/s390/kernel/smp.c | 2 -- arch/s390/numa/numa.c | 2 -- 3 files changed, 6 deletions(-) commit ef1f7fd7eba19eb64fc424355eb9d4e49ca06fb1 Author: Heiko Carstens Date: Fri Jan 15 14:50:25 2016 +0100 s390/numa: allocate memory with correct alignment Allocating memory with a requested minimum alignment of 1 is wrong since pg_data_t contains a spinlock which requires an alignment of 4 bytes. Therefore fix this and ask for an alignment of 8 bytes like it is guarenteed for all kmalloc requests. Signed-off-by: Heiko Carstens Acked-by: Michael Holzheu Signed-off-by: Martin Schwidefsky arch/s390/numa/numa.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 204ee2c5643199a25181ec04ea645d00709c2a5a Author: Christian Borntraeger Date: Mon Jan 11 09:17:18 2016 +0100 s390/irqflags: optimize irq restore The ssm instruction takes longer that stnsm/stosm as it is often used to modify DAT and PER. We know that irqsave/irqrestore only deals with external and I/O interrupts and we know that irqrestore can transition only from disabled->disabled or disabled->enabled, so we can use the faster stosm. Signed-off-by: Christian Borntraeger arch/s390/include/asm/irqflags.h | 9 +++++++-- arch/s390/mm/init.c | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) commit a9d7ab97812cf2cf9fd7c980205ae35f58c52cf5 Author: Dominik Dingel Date: Mon Jan 11 11:47:12 2016 +0100 s390/mm: use TASK_MAX_SIZE where applicable To improve readability we can use TASK_MAX_SIZE when we just check for the upper limit. All places explicitly dealing with 3 vs 4 level pgtables were left unchanged. Signed-off-by: Dominik Dingel Reviewed-By: Sascha Silbe arch/s390/mm/mmap.c | 12 ++++++------ arch/s390/mm/pgtable.c | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) commit d394f2d9d8e1e7b4959819344baf67b5995da9b0 Author: Alex Thorlton Date: Fri Dec 11 14:59:45 2015 -0600 x86/platform/UV: Remove EFI memmap quirk for UV2+ Commit a5d90c923bcf ("x86/efi: Quirk out SGI UV") added a quirk to efi_apply_memmap_quirks to force SGI UV systems to fall back to the old EFI memmap mechanism. We have a BIOS fix for this issue on all systems except for UV1. This commit fixes up the EFI quirk/MMR mapping code so that we only apply the special case to UV1 hardware. Signed-off-by: Alex Thorlton Reviewed-by: Matt Fleming Cc: Dimitri Sivanich Cc: H. Peter Anvin Cc: Hedi Berriche Cc: Len Brown Cc: Linus Torvalds Cc: Mike Travis Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-efi@vger.kernel.org Link: http://lkml.kernel.org/r/1449867585-189233-2-git-send-email-athorlton@sgi.com Signed-off-by: Ingo Molnar arch/x86/kernel/apic/x2apic_uv_x.c | 5 ++++- arch/x86/platform/efi/quirks.c | 17 +++++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) commit fb75d857a31d600cc0c37b8c7d914014f7fa3f9a Author: Colin Ian King Date: Tue Jan 19 00:05:28 2016 +0000 btrfs: remove duplicate const specifier duplicate const is redundant so remove it Signed-off-by: Colin Ian King Signed-off-by: David Sterba fs/btrfs/volumes.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0036e74686344f1051afc3107740140abfd03616 Author: Chuanxiao Dong Date: Mon Jan 18 10:35:19 2016 +0100 mmc: debugfs: correct wrong voltage value Correct the wrong voltage value shown in debugfs for mmc/sd/sdio. Signed-off-by: Chuanxiao Dong Signed-off-by: Pawel Wodkowski Fixes: 42cd95a0603e ("mmc: core: debugfs: Add signal_voltage to ios dump") Signed-off-by: Ulf Hansson drivers/mmc/core/debugfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fd7f6727102a1ccf6b4c1dfcc631f9b546526b26 Author: Jean Delvare Date: Mon Jan 18 17:06:05 2016 +0100 crypto: crc32c - Fix crc32c soft dependency I don't think it makes sense for a module to have a soft dependency on itself. This seems quite cyclic by nature and I can't see what purpose it could serve. OTOH libcrc32c calls crypto_alloc_shash("crc32c", 0, 0) so it pretty much assumes that some incarnation of the "crc32c" hash algorithm has been loaded. Therefore it makes sense to have the soft dependency there (as crc-t10dif does.) Cc: stable@vger.kernel.org Cc: Tim Chen Cc: "David S. Miller" Signed-off-by: Jean Delvare Signed-off-by: Herbert Xu crypto/crc32c_generic.c | 1 - lib/libcrc32c.c | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) commit 4f0414e54e4d1893c6f08260693f8ef84c929293 Author: Herbert Xu Date: Mon Jan 18 18:46:10 2016 +0800 crypto: algif_skcipher - Load TX SG list after waiting We need to load the TX SG list in sendmsg(2) after waiting for incoming data, not before. Cc: stable@vger.kernel.org Reported-by: Dmitry Vyukov Signed-off-by: Herbert Xu Tested-by: Dmitry Vyukov crypto/algif_skcipher.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit e31835ad3abc6809703d3bbd2400bdd6285f8fea Author: Herbert Xu Date: Tue Jan 19 09:05:43 2016 +0800 crypto: atmel-aes - Add missing break to atmel_aes_reg_name The debug function atmel_aes_reg_name was missing a break for AES_GCMHR. Reported-by: David Binderman Signed-off-by: Herbert Xu drivers/crypto/atmel-aes.c | 1 + 1 file changed, 1 insertion(+) commit 9c03ee147193645be4c186d3688232fa438c57c7 Author: Raghavendra K T Date: Sat Jan 16 00:31:23 2016 +0530 sched: Fix crash in sched_init_numa() The following PowerPC commit: c118baf80256 ("arch/powerpc/mm/numa.c: do not allocate bootmem memory for non existing nodes") avoids allocating bootmem memory for non existent nodes. But when DEBUG_PER_CPU_MAPS=y is enabled, my powerNV system failed to boot because in sched_init_numa(), cpumask_or() operation was done on unallocated nodes. Fix that by making cpumask_or() operation only on existing nodes. [ Tested with and w/o DEBUG_PER_CPU_MAPS=y on x86 and PowerPC. ] Reported-by: Jan Stancek Tested-by: Jan Stancek Signed-off-by: Raghavendra K T Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: Link: http://lkml.kernel.org/r/1452884483-11676-1-git-send-email-raghavendra.kt@linux.vnet.ibm.com Signed-off-by: Ingo Molnar kernel/sched/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b000de5848441bc4e99c662fe1fd1b854151a84e Author: Andy Shevchenko Date: Fri Jan 15 22:11:08 2016 +0200 x86/platform/intel-mid: Join string and fix SoC name Join string back to make grepping a bit easier. While here, lowering case for Penwell SoC name in one case to be aligned with the rest messages. Signed-off-by: Andy Shevchenko Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Mika Westerberg Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1452888668-147116-2-git-send-email-andriy.shevchenko@linux.intel.com Signed-off-by: Ingo Molnar arch/x86/platform/intel-mid/intel-mid.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 3fda5bb420e79b357328b358409e4c547d8f0a18 Author: Andy Shevchenko Date: Fri Jan 15 22:11:07 2016 +0200 x86/platform/intel-mid: Enable 64-bit build Intel Tangier SoC is known to have 64-bit dual core CPU. Enable 64-bit build for it. The kernel has been tested on Intel Edison board: Linux buildroot 4.4.0-next-20160115+ #25 SMP Fri Jan 15 22:03:19 EET 2016 x86_64 GNU/Linux processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 74 model name : Genuine Intel(R) CPU 4000 @ 500MHz stepping : 8 Signed-off-by: Andy Shevchenko Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Mika Westerberg Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1452888668-147116-1-git-send-email-andriy.shevchenko@linux.intel.com Signed-off-by: Ingo Molnar arch/x86/Kconfig | 3 +-- arch/x86/kernel/head64.c | 8 ++++++++ 2 files changed, 9 insertions(+), 2 deletions(-) commit f5540ecb8910cb2bc923c50b4ca5e7a50a9bf775 Merge: 10a0c0f 96b9e70 Author: Ingo Molnar Date: Tue Jan 19 08:30:48 2016 +0100 Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent Pull perf tools improvements and fixes from Arnaldo Carvalho de Melo: User visible bug fixes: - Fix reading of build-id from vDSO (Ben Hutchings) - Fix processing samples for guests, noticed with 'perf kvm', but noticeable as well via other tools, such as 'perf top' (Ravi Bangoria) Build infrastructure: - Add feature-dump target and FEATURES_DUMP make variable, to allow reusing the feature detection results among multiple tools/ living codebases, such as perf and lib/bpf (Jiri Olsa) - 'make -C tools/perf build-test' improvements, making it more paralelizable and allowing building it outside of the source tree, using O= (Wang Nan) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit d8d803867ac13117b8f6c6572474ab1c90e9036b Author: David Howells Date: Thu Jan 14 15:50:20 2016 +0000 Fix the MAINTAINERS record for the certs/ directory Fix the MAINTAINERS record for the certs/ directory to have the new keyrings mailing list and also to be authoritative for the sign-file tool Signed-off-by: David Howells Acked-by: David Woodhouse Signed-off-by: James Morris MAINTAINERS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a200dcb34693084e56496960d855afdeaaf9578f Merge: d05d82f 43e361f Author: Linus Torvalds Date: Mon Jan 18 16:44:24 2016 -0800 Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost Pull virtio barrier rework+fixes from Michael Tsirkin: "This adds a new kind of barrier, and reworks virtio and xen to use it. Plus some fixes here and there" * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: (44 commits) checkpatch: add virt barriers checkpatch: check for __smp outside barrier.h checkpatch.pl: add missing memory barriers virtio: make find_vqs() checkpatch.pl-friendly virtio_balloon: fix race between migration and ballooning virtio_balloon: fix race by fill and leak s390: more efficient smp barriers s390: use generic memory barriers xen/events: use virt_xxx barriers xen/io: use virt_xxx barriers xenbus: use virt_xxx barriers virtio_ring: use virt_store_mb sh: move xchg_cmpxchg to a header by itself sh: support 1 and 2 byte xchg virtio_ring: update weak barriers to use virt_xxx Revert "virtio_ring: Update weak barriers to use dma_wmb/rmb" asm-generic: implement virt_xxx memory barriers x86: define __smp_xxx xtensa: define __smp_xxx tile: define __smp_xxx ... commit 38cb76a307821f76c7f9dff7449f73aeb014d5cc Author: Shreyas B. Prabhu Date: Mon Jan 18 20:44:43 2016 +0530 cpupower: Fix build error in cpufreq-info Fix the following build error by including limits.h - utils/cpufreq-info.c: In function ‘get_latency’: utils/cpufreq-info.c:437:29: error: ‘UINT_MAX’ undeclared (first use in this function) if (!latency || latency == UINT_MAX) { ^ Signed-off-by: Shreyas B. Prabhu Fixes: e98f033f94f3 (cpupower: fix how "cpupower frequency-info" interprets latency) Signed-off-by: Rafael J. Wysocki tools/power/cpupower/utils/cpufreq-info.c | 1 + 1 file changed, 1 insertion(+) commit ee3804d9f94c5a391c66386b70b9fe5a58775507 Merge: 4c931f7 85bec54 Author: Dave Chinner Date: Tue Jan 19 08:28:36 2016 +1100 Merge branch 'xfs-misc-fixes-for-4.5-3' into for-next commit 85bec5460ad8e05e0a8d70fb0f6750eb719ad092 Author: Dave Chinner Date: Tue Jan 19 08:28:10 2016 +1100 xfs: log mount failures don't wait for buffers to be released Recently I've been seeing xfs/051 fail on 1k block size filesystems. Trying to trace the events during the test lead to the problem going away, indicating that it was a race condition that lead to this ASSERT failure: XFS: Assertion failed: atomic_read(&pag->pag_ref) == 0, file: fs/xfs/xfs_mount.c, line: 156 ..... [] xfs_free_perag+0x87/0xb0 [] xfs_mountfs+0x4d9/0x900 [] xfs_fs_fill_super+0x3bf/0x4d0 [] mount_bdev+0x180/0x1b0 [] xfs_fs_mount+0x15/0x20 [] mount_fs+0x38/0x170 [] vfs_kern_mount+0x67/0x120 [] do_mount+0x218/0xd60 [] SyS_mount+0x8b/0xd0 When I finally caught it with tracing enabled, I saw that AG 2 had an elevated reference count and a buffer was responsible for it. I tracked down the specific buffer, and found that it was missing the final reference count release that would put it back on the LRU and hence be found by xfs_wait_buftarg() calls in the log mount failure handling. The last four traces for the buffer before the assert were (trimmed for relevance) kworker/0:1-5259 xfs_buf_iodone: hold 2 lock 0 flags ASYNC kworker/0:1-5259 xfs_buf_ioerror: hold 2 lock 0 error -5 mount-7163 xfs_buf_lock_done: hold 2 lock 0 flags ASYNC mount-7163 xfs_buf_unlock: hold 2 lock 1 flags ASYNC This is an async write that is completing, so there's nobody waiting for it directly. Hence we call xfs_buf_relse() once all the processing is complete. That does: static inline void xfs_buf_relse(xfs_buf_t *bp) { xfs_buf_unlock(bp); xfs_buf_rele(bp); } Now, it's clear that mount is waiting on the buffer lock, and that it has been released by xfs_buf_relse() and gained by mount. This is expected, because at this point the mount process is in xfs_buf_delwri_submit() waiting for all the IO it submitted to complete. The mount process, however, is waiting on the lock for the buffer because it is in xfs_buf_delwri_submit(). This waits for IO completion, but it doesn't wait for the buffer reference owned by the IO to go away. The mount process collects all the completions, fails the log recovery, and the higher level code then calls xfs_wait_buftarg() to free all the remaining buffers in the filesystem. The issue is that on unlocking the buffer, the scheduler has decided that the mount process has higher priority than the the kworker thread that is running the IO completion, and so immediately switched contexts to the mount process from the semaphore unlock code, hence preventing the kworker thread from finishing the IO completion and releasing the IO reference to the buffer. Hence by the time that xfs_wait_buftarg() is run, the buffer still has an active reference and so isn't on the LRU list that the function walks to free the remaining buffers. Hence we miss that buffer and continue onwards to tear down the mount structures, at which time we get find a stray reference count on the perag structure. On a non-debug kernel, this will be ignored and the structure torn down and freed. Hence when the kworker thread is then rescheduled and the buffer released and freed, it will access a freed perag structure. The problem here is that when the log mount fails, we still need to quiesce the log to ensure that the IO workqueues have returned to idle before we run xfs_wait_buftarg(). By synchronising the workqueues, we ensure that all IO completions are fully processed, not just to the point where buffers have been unlocked. This ensures we don't end up in the situation above. cc: # 3.18 Signed-off-by: Dave Chinner Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/xfs_buf.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 3e85286e75224fa3f08bdad20e78c8327742634e Author: Dave Chinner Date: Tue Jan 19 08:21:46 2016 +1100 Revert "xfs: clear PF_NOFREEZE for xfsaild kthread" This reverts commit 24ba16bb3d499c49974669cd8429c3e4138ab102 as it prevents machines from suspending. This regression occurs when the xfsaild is idle on entry to suspend, and so there s no activity to wake it from it's idle sleep and hence see that it is supposed to freeze. Hence the freezer times out waiting for it and suspend is cancelled. There is no obvious fix for this short of freezing the filesystem properly, so revert this change for now. cc: # 4.4 Signed-off-by: Dave Chinner Acked-by: Jiri Kosina Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/xfs_trans_ail.c | 1 - 1 file changed, 1 deletion(-) commit 4c931f770d327f4851917828a1682d030b53d021 Merge: dde7f55 58f88ca Author: Dave Chinner Date: Tue Jan 19 08:16:08 2016 +1100 Merge branch 'xfs-setxattr-promotion' into for-next commit d05d82f7110b08fd36178a641b69a1f206e1142b Merge: d90f351 00d27c6 Author: Linus Torvalds Date: Mon Jan 18 12:57:18 2016 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile Pull arch/tile updates from Chris Metcalf: "This is a grab bag of changes that includes some NOHZ and context-tracking related changes, some debugging improvements, JUMP_LABEL support, and some fixes for tilepro allmodconfig support. We also remove the now-unused node_has_online_mem() definitions both for tile's asm/topology.h as well as in linux/topology.h itself" * git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile: numa: remove stale node_has_online_mem() define arch/tile: move user_exit() to early kernel entry sequence tile: fix bug in setting PT_FLAGS_DISABLE_IRQ on kernel entry tile: fix tilepro casts for readl, writel, etc tile: fix a -Wframe-larger-than warning tile: include the syscall number in the backtrace MAINTAINERS: add git URL for tile arch/tile: adopt prepare_exit_to_usermode() model from x86 tile/jump_label: add jump label support for TILE-Gx tile: define a macro ktext_writable_addr to get writable kernel text address commit d90f351a9bec6af3e8e7cefbbff94072461c3c9a Merge: c1a198d 238d1c6 Author: Linus Torvalds Date: Mon Jan 18 12:50:55 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/egtvedt/linux-avr32 Pull AVR32 updates from Hans-Christian Noren Egtvedt. * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/egtvedt/linux-avr32: mmc: atmel: get rid of struct mci_dma_data mmc: atmel-mci: restore dma on AVR32 avr32: wire up missing syscalls avr32: wire up accept4 syscall commit c1a198d9235b9e7d6942027374e44f78ebdcb455 Merge: 48f58ba 988f1f5 Author: Linus Torvalds Date: Mon Jan 18 12:44:40 2016 -0800 Merge branch 'for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs Pull btrfs updates from Chris Mason: "This has our usual assortment of fixes and cleanups, but the biggest change included is Omar Sandoval's free space tree. It's not the default yet, mounting -o space_cache=v2 enables it and sets a readonly compat bit. The tree can actually be deleted and regenerated if there are any problems, but it has held up really well in testing so far. For very large filesystems (30T+) our existing free space caching code can end up taking a huge amount of time during commits. The new tree based code is faster and less work overall to update as the commit progresses. Omar worked on this during the summer and we'll hammer on it in production here at FB over the next few months" * 'for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (73 commits) Btrfs: fix fitrim discarding device area reserved for boot loader's use Btrfs: Check metadata redundancy on balance btrfs: statfs: report zero available if metadata are exhausted btrfs: preallocate path for snapshot creation at ioctl time btrfs: allocate root item at snapshot ioctl time btrfs: do an allocation earlier during snapshot creation btrfs: use smaller type for btrfs_path locks btrfs: use smaller type for btrfs_path lowest_level btrfs: use smaller type for btrfs_path reada btrfs: cleanup, use enum values for btrfs_path reada btrfs: constify static arrays btrfs: constify remaining structs with function pointers btrfs tests: replace whole ops structure for free space tests btrfs: use list_for_each_entry* in backref.c btrfs: use list_for_each_entry_safe in free-space-cache.c btrfs: use list_for_each_entry* in check-integrity.c Btrfs: use linux/sizes.h to represent constants btrfs: cleanup, remove stray return statements btrfs: zero out delayed node upon allocation btrfs: pass proper enum type to start_transaction() ... commit 383bf44d1a8b18de5c26ec2a48c6822681b50984 Author: Miroslav Benes Date: Thu Jan 14 11:35:53 2016 +0100 livepatch: change the error message in asm/livepatch.h header files If anyone includes asm/livepatch.h when CONFIG_LIVEPATCH=n the build fails with the existing error message. Change it to something saner. [jkosina@suse.cz: fixed changelog typo spotted by Josh] Suggested-by: Andrew Morton Signed-off-by: Miroslav Benes Acked-by: Josh Poimboeuf Signed-off-by: Jiri Kosina arch/s390/include/asm/livepatch.h | 2 +- arch/x86/include/asm/livepatch.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 48f58ba9cbffd3945fbc4d7f45b75cf4801a60b7 Merge: 7f36f1b b064d0d Author: Linus Torvalds Date: Mon Jan 18 12:35:14 2016 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Pull more networking fixes from David Miller: 1) Fix brcmfmac build with older gcc, from Arend van Spriel. 2) IRQ values unintentionally truncated to u8 in mlx5 driver, from Doron Tsur. 3) Fix build warnings wrt tcp cgroup changes, from Geert Uytterhoeven. 4) Limit deep recursion in ovs stack, from Hannes Frederic Sowa. 5) at803x phy driver bug fixes from, Martin Blumenstingl. 6) Fix TSO handling in hns driver, from Daode Huang * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (22 commits) ovs: limit ovs recursions in ovs_execute_actions to not corrupt stack team: Replace rcu_read_lock with a mutex in team_vlan_rx_kill_vid net: hns: bug fix about hisilicon TSO BD mode brcmfmac: fix BRCMF_FW_NVRAM_DEF macro for older gcc compilers net: phy: at803x: Add the interrupt register bit definitions net: phy: at803x: Clean up duplicate register definitions net: phy: at803x: Allow specifying the RGMII RX clock delay via phy mode net: phy: at803x: Don't set gbit features for the AR8030 phy arm64: bpf: add extra pass to handle faulty codegen arm64: insn: remove BUG_ON from codegen sctp: the temp asoc's transports should not be hashed/unhashed net/mlx5_core: Fix trimming down IRQ number tcp_memcontrol: Forward declare cgroup_subsys and mem_cgroup stucts batman-adv: Drop immediate orig_node free function batman-adv: Drop immediate batadv_hard_iface free function batman-adv: Drop immediate neigh_ifinfo free function batman-adv: Drop immediate batadv_hardif_neigh_node free function batman-adv: Drop immediate batadv_neigh_node free function batman-adv: Drop immediate batadv_orig_ifinfo free function batman-adv: Avoid recursive call_rcu for batadv_nc_node ... commit 7f36f1b2a8c4f55f8226ed6c8bb4ed6de11c4015 Merge: c38dec7 e04a2bd Author: Linus Torvalds Date: Mon Jan 18 12:28:57 2016 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide Pull IDE updates from David Miller: "Just a few small changes this merge window, marking ops const, printf string type fixes, etc" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide: drivers/ide: make ide-scan-pci.c driver explicitly non-modular ide: constify ide_dma_ops structures ide: silence some underflow warnings commit c38dec71664dadb15094151f53886abb69f8f9e6 Merge: d43fb9f 079062b Author: Linus Torvalds Date: Mon Jan 18 12:10:45 2016 -0800 Merge tag 'rtc-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux Pull RTC updates from Alexandre Belloni: "Core: - fix module reference count in rtc-proc - Replace simple_strtoul by kstrtoul New driver: - Epson RX8010SJ Subsystem wide cleanups: - use %ph for short hex dumps - constify *_chip_ops structures Drivers: - abx80x: Microcrystal rv1805 support, alarm support - cmos: prevent kernel warning on IRQ flags mismatch - s5m: various cleanups - rv8803: rx8900 compatibility, small error path fix - sunxi: various cleanups - lpc32xx: remove irq > NR_IRQS check from probe() - imxdi: fix spelling mistake in warning message - ds1685: don't try to micromanage sysfs output size - da9063: avoid writing undefined data to rtc - gemini: Remove unnecessary platform_set_drvdata() - efi: add efi_procfs in efi_rtc_ops - pcf8523: refuse to write dates later than 2099" * tag 'rtc-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (24 commits) rtc: cmos: prevent kernel warning on IRQ flags mismatch rtc: rtc-ds2404: constify ds2404_chip_ops structures rtc: s5m: Make register configuration per S2MPS device to remove exceptions rtc: s5m: Add separate field for storing auto-cleared mask in register config rtc: s5m: Cleanup by removing useless 'rtc' prefix from fields rtc: Replace simple_strtoul by kstrtoul rtc: abx80x: add alarm support rtc: abx80x: Add Microcrystal rv1805 support rtc: v3020: constify v3020_chip_ops structures rtc: rv8803: Extend compatibility with the rx8900 rtc: rv8803: fix handling return value of i2c_smbus_read_byte_data rtc: Add Epson RX8010SJ RTC driver rtc: lpc32xx: remove irq > NR_IRQS check from probe() rtc: imxdi: fix spelling mistake in warning message rtc: ds1685: don't try to micromanage sysfs output size rtc: use %ph for short hex dumps rtc: da9063: avoid writing undefined data to rtc rtc: sunxi: use of_device_get_match_data rtc: sunxi: constify the data_year_param structure rtc: sunxi: fix signedness issues ... commit 6c54809977de3c9e2ef9e9934a2c6625f7e161e7 Author: Arnd Bergmann Date: Mon Jan 18 10:45:00 2016 +0100 ARM: debug-ll: fix BCM63xx entry for multiplatform During my randconfig build testing, I found that a kernel with DEBUG_AT91_UART and ARCH_BCM_63XX fails to build: arch/arm/include/debug/at91.S:18:0: error: "CONFIG_DEBUG_UART_VIRT" redefined [-Werror] It turns out that the DEBUG_UART_BCM63XX option is enabled whenever the ARCH_BCM_63XX is, and that breaks multiplatform kernels because we then end up using the UART address from BCM63XX rather than the one we actually configured (if any). This changes the BCM63XX options to only have one Kconfig option, and only enable that if the user explicitly turns it on. Signed-off-by: Arnd Bergmann Fixes: b51312bebfa4 ("ARM: BCM63XX: add low-level UART debug support") Cc: stable@vger.kernel.org arch/arm/Kconfig.debug | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) commit d43fb9f3c5dff281dd72bea5cd2e91386fdc33a8 Merge: 5807fca 6f6abd3 Author: Linus Torvalds Date: Mon Jan 18 11:58:31 2016 -0800 Merge tag 'fbdev-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux Pull fbdev updates from Tomi Valkeinen: "Summary: - pxafb: device-tree support - An unsafe kernel parameter 'lockless_register_fb' for debugging problems happening while inside the console lock - Small miscellaneous fixes & cleanups - omapdss: add writeback support functions - Separation of omapfb and omapdrm (see below) About the separation of omapfb and omapdrm, see http://permalink.gmane.org/gmane.comp.video.dri.devel/143151 for longer story. The short version: omapfb and omapdrm have shared low level drivers (omapdss and panel drivers), making further development of omapdrm difficult. After these patches omapfb and omapdrm have their own versions of the drivers, which are more or less direct copies for now but will diverge soon. This also means that omapfb (everything under drivers/video/fbdev/omap2/) is now in maintenance mode, and all new development will be done for omapdrm (drivers/gpu/drm/omapdrm/)" * tag 'fbdev-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (49 commits) video: fbdev: pxafb: fix out of memory error path drm/omap: make omapdrm select OMAP2_DSS drm/omap: move omapdss & displays under omapdrm omapfb: move vrfb into omapfb omapfb: take omapfb's private omapdss into use omapfb/displays: change CONFIG_DISPLAY_* to CONFIG_FB_OMAP2_* omapfb/dss: change CONFIG_OMAP* to CONFIG_FB_OMAP* omapdss: remove CONFIG_OMAP2_DSS_VENC from omapdss.h omapfb: copy omapdss & displays for omapfb omapfb: allow compilation only if DRM_OMAP is disabled fbdev: omap2: panel-dpi: simplify gpio setting fbdev: omap2: panel-dpi: in .disable first disable backlight then display OMAPDSS: DSS: fix a warning message video: omapdss: delete unneeded of_node_put OMAPDSS: DISPC: Remove boolean comparisons OMAPDSS: DSI: cleanup DSI_IRQ_ERROR_MASK define OMAPDSS: remove extra out == NULL checks OMAPDSS: change internal dispc functions to static OMAPDSS: make a two dss feat funcs internal to omapdss OMAPDSS: remove extra EXPORT_SYMBOLs ... commit 00d27c6336b00345724b2510f7c5b8cee3055f02 Author: Chris Metcalf Date: Tue Jan 5 11:22:10 2016 -0500 numa: remove stale node_has_online_mem() define This isn't used anywhere, so delete it. Looks like the last usage (in x86-specific code) was removed by Tejun in 2011 in commit bd6709a91a59 ("x86, NUMA: Make 32bit use common NUMA init path"). Signed-off-by: Chris Metcalf arch/tile/include/asm/topology.h | 3 --- include/linux/topology.h | 4 ---- 2 files changed, 7 deletions(-) commit 1bb50cad45f4a3fb9a339006d76efc50f70eed5b Author: Chris Metcalf Date: Wed Dec 23 17:13:04 2015 -0500 arch/tile: move user_exit() to early kernel entry sequence This ensures that we always notify context tracking that we have exited from user space no matter how we enter the kernel. It is similar to how arm64 handles context tracking, for example. This allows the removal of all the exception_enter() calls that were added in commit 49e4e15619cd ("tile: support CONTEXT_TRACKING and thus NOHZ_FULL"). Signed-off-by: Chris Metcalf arch/tile/kernel/intvec_32.S | 5 ++++- arch/tile/kernel/intvec_64.S | 5 ++++- arch/tile/kernel/ptrace.c | 15 --------------- arch/tile/kernel/single_step.c | 3 --- arch/tile/kernel/traps.c | 13 ++++--------- arch/tile/kernel/unaligned.c | 13 ++++--------- arch/tile/mm/fault.c | 3 --- 7 files changed, 16 insertions(+), 41 deletions(-) commit 9ce815ed50bbc518526106071f395deacaf94ad7 Author: Chris Metcalf Date: Wed Dec 23 15:02:47 2015 -0500 tile: fix bug in setting PT_FLAGS_DISABLE_IRQ on kernel entry This flag value is saved in ptregs and used to decide whether to disable irqs when returning from the kernel. Commit 1168df528fe4 ("tile: don't assume user privilege is zero") performed a bad merge from some KVM-enabled code that had not yet been upstreamed. The only issue with the old code is that we will read the interrupt mask in more conditions than we need to (e.g., coming from user space when user space has the Interrupt Critical Section bit set, or coming from a guest kernel), which is a slow multi-cycle operation. This change saves those few cycles in the common case. Signed-off-by: Chris Metcalf arch/tile/kernel/intvec_64.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit acfb699e3d757b349251ea19b8173220008d1c9e Author: Chris Metcalf Date: Mon Dec 21 13:03:03 2015 -0500 tile: fix tilepro casts for readl, writel, etc Missing parentheses could cause an argument of the form "integer + pointer" to get cast to "(long)integer + pointer" and remain a pointer type, causing compiler warnings. Signed-off-by: Chris Metcalf arch/tile/include/asm/io.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit f3a26163fa8f36344bf01707529052aea20368e8 Author: Chris Metcalf Date: Mon Dec 21 12:14:24 2015 -0500 tile: fix a -Wframe-larger-than warning The warning occurs in setup.c, where it is known that it can't be a problem, but it's still a good idea to silence the warning. The onstack array is converted from an s32 to a u8, which still is plenty of range for the values being managed there. Signed-off-by: Chris Metcalf arch/tile/kernel/setup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5ac65abd48b6d3c62ec17dc4c28830513dd605e0 Author: Chris Metcalf Date: Thu Dec 17 15:01:38 2015 -0500 tile: include the syscall number in the backtrace This information is easily available in the backtrace data and can be helpful when trying to figure out the backtrace, particularly if we're early in kernel entry or late in kernel exit. Signed-off-by: Chris Metcalf arch/tile/kernel/stack.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) commit 7fa129ccb92c982ee8947d7fe004d7fd4f0691b9 Author: Fengguang Wu Date: Fri Dec 18 10:15:37 2015 -0500 MAINTAINERS: add git URL for tile Signed-off-by: Fengguang Wu Signed-off-by: Chris Metcalf MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit 583b24a210ada7e88fc12aaf50024975ec882816 Author: Chris Metcalf Date: Tue Sep 22 14:49:41 2015 -0400 arch/tile: adopt prepare_exit_to_usermode() model from x86 This change is a prerequisite change for TASK_ISOLATION but also stands on its own for readability and maintainability. The existing tile do_work_pending() was called in a loop from assembly on the slow path; this change moves the loop into C code as well. For the x86 version see commit c5c46f59e4e7 ("x86/entry: Add new, comprehensible entry and exit handlers written in C"). This change exposes a pre-existing bug on the older tilepro platform; the singlestep processing is done last, but on tilepro (unlike tilegx) we enable interrupts while doing that processing, so we could in theory miss a signal or other asynchronous event. A future change could fix this by breaking the singlestep work into a "prepare" step done in the main loop, and a "trigger" step done after exiting the loop. Since this change is intended as purely a restructuring change, we call out the bug explicitly now, but don't yet fix it. Signed-off-by: Chris Metcalf arch/tile/include/asm/processor.h | 2 +- arch/tile/include/asm/thread_info.h | 8 +++- arch/tile/kernel/intvec_32.S | 46 +++++++-------------- arch/tile/kernel/intvec_64.S | 49 +++++++---------------- arch/tile/kernel/process.c | 79 +++++++++++++++++++------------------ 5 files changed, 77 insertions(+), 107 deletions(-) commit e04a2bd6d8c95608cbb2c803ee2875cebfd89f52 Author: Paul Gortmaker Date: Wed Dec 9 16:45:51 2015 -0500 drivers/ide: make ide-scan-pci.c driver explicitly non-modular The Kconfig for this support is currently: config IDEPCI_PCIBUS_ORDER bool "Probe IDE PCI devices in the PCI bus order (DEPRECATED)" ...meaning that it currently is not being built as a module by anyone. Lets change the initcall to be the equivalent device_initcall, so that when reading the driver code, there is no doubt it is builtin-only. Unlike other similar changes, we leave the module.h header to be included since this code interacts with other drivers and needs to know what a struct module is. Cc: "David S. Miller" Cc: linux-ide@vger.kernel.org Signed-off-by: Paul Gortmaker Signed-off-by: David S. Miller drivers/ide/ide-scan-pci.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit b5a608fb28c84ef3e569b6929e58977f4e2ce480 Author: Julia Lawall Date: Sun Nov 15 21:36:30 2015 +0100 ide: constify ide_dma_ops structures The ide_dma_ops structures are never modified, so declare these as const, as is already done for the others. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: David S. Miller drivers/ide/it821x.c | 2 +- drivers/ide/trm290.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 0860bf94712f34f5920193004dfed25408f078b1 Author: Dan Carpenter Date: Fri Nov 13 17:34:01 2015 +0300 ide: silence some underflow warnings Back in the day we used to just say this code was root only so it was ok that the bounds checking was sloppy. These days it annoys static checkers so we fix it. In the original code "c > INT_MAX" was never true since "c" was an int. I am not sure what was intended so I left it alone. But because I made "c" unsigned it means we don't have a warning any more. The second warning is that we cap "i" but allow negatives leading to an underflow of the ide_disks_chs[] array. The third set of warnings is because these values come from the user and we cap most of the upper bounds but allow negative values. Negative cylinders doesn't make sense. drivers/ide/ide.c:262 ide_set_disk_chs() warn: impossible condition '(c > ((~0 >> 1))) => (s32min-s32max > s32max)' drivers/ide/ide.c:270 ide_set_disk_chs() warn: check 'ide_disks_chs[i]' for negative offsets 'i' = s32min. extra = 's32min-19' drivers/ide/ide.c:271 ide_set_disk_chs() warn: no lower bound on 'h' Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller drivers/ide/ide.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit b064d0d88ae5280c7e878f79d0c9a8e2876a4d14 Author: Hannes Frederic Sowa Date: Mon Jan 18 18:03:48 2016 +0100 ovs: limit ovs recursions in ovs_execute_actions to not corrupt stack It was seen that defective configurations of openvswitch could overwrite the STACK_END_MAGIC and cause a hard crash of the kernel because of too many recursions within ovs. This problem arises due to the high stack usage of openvswitch. The rest of the kernel is fine with the current limit of 10 (RECURSION_LIMIT). We use the already existing recursion counter in ovs_execute_actions to implement an upper bound of 5 recursions. Cc: Pravin Shelar Cc: Simon Horman Cc: Eric Dumazet Cc: Simon Horman Signed-off-by: Hannes Frederic Sowa Signed-off-by: David S. Miller net/openvswitch/actions.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) commit 60a6531bfe49555581ccd65f66a350cc5693fcde Author: Ido Schimmel Date: Mon Jan 18 17:30:22 2016 +0200 team: Replace rcu_read_lock with a mutex in team_vlan_rx_kill_vid We can't be within an RCU read-side critical section when deleting VLANs, as underlying drivers might sleep during the hardware operation. Therefore, replace the RCU critical section with a mutex. This is consistent with team_vlan_rx_add_vid. Fixes: 3d249d4ca7d0 ("net: introduce ethernet teaming device") Acked-by: Jiri Pirko Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller drivers/net/team/team.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 918f618f564e208dd181d8ac7525694ccf4bc097 Author: huangdaode Date: Mon Jan 18 17:24:16 2016 +0800 net: hns: bug fix about hisilicon TSO BD mode The current upstreaming code fails to set the tso_mode register when initilizes, when processes large size packets, the default 4 bd is not enough, so this patch initilizes it and set the default value to 8 bds Signed-off-by: Daode Huang Signed-off-by: David S. Miller drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c | 13 +++++++++++-- drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.h | 3 +++ drivers/net/ethernet/hisilicon/hns/hns_dsaf_reg.h | 5 +++++ 3 files changed, 19 insertions(+), 2 deletions(-) commit 23195ec00503c6c29daea5b6c780787c0b5f1bf3 Author: Arend van Spriel Date: Sat Jan 16 16:39:13 2016 +0100 brcmfmac: fix BRCMF_FW_NVRAM_DEF macro for older gcc compilers With gcc < 4.3 __UNIQUE_ID does not create unique ids with the macro BRCMF_FW_NVRAM_DEF. Fix this by removing the MODULE_FIRMWARE instance for the nvram file. This file is not in linux-firmware repo so it may not be needed anyway. Otherwise consider this as a temporary fix. Reported-by: Geert Uytterhoeven Signed-off-by: Arend van Spriel Acked-by: Kalle Valo Tested-by: Geert Uytterhoeven Signed-off-by: David S. Miller drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 6bf641039f96e0c0cf3b10ae9ba12039d1a01122 Author: Simon Horman Date: Thu Nov 12 10:53:59 2015 +0900 dmaengine: rcar-dmac: Document SoC specific bindings In general Renesas hardware is not documented to the extent where the relationship between IP blocks on different SoCs can be assumed although they may appear to operate the same way. Furthermore the documentation typically does not specify a version for individual IP blocks. For these reasons a convention of using the SoC name in place of a version and providing SoC-specific compat strings has been adopted. Although not universally liked this convention is used in the bindings for most drivers for Renesas hardware. The purpose of this patch is to update the Renesas R-Car DMA Controller driver to follow this convention. Cc: devicetree@vger.kernel.org Cc: Magnus Damm Cc: Laurent Pinchart Signed-off-by: Simon Horman Acked-by: Geert Uytterhoeven Acked-by: Rob Herring Signed-off-by: Vinod Koul Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit c0bcdbdff3ff73a54161fca3cb8b6cdbd0bb8762 Author: Takashi Iwai Date: Mon Jan 18 14:12:40 2016 +0100 ALSA: control: Avoid kernel warnings from tlv ioctl with numid 0 When a TLV ioctl with numid zero is handled, the driver may spew a kernel warning with a stack trace at each call. The check was intended obviously only for a kernel driver, but not for a user interaction. Let's fix it. This was spotted by syzkaller fuzzer. Reported-by: Dmitry Vyukov Cc: Signed-off-by: Takashi Iwai sound/core/control.c | 2 ++ 1 file changed, 2 insertions(+) commit 9586495dc3011a80602329094e746dbce16cb1f1 Author: Nicolas Boichat Date: Mon Jan 18 21:35:01 2016 +0800 ALSA: seq: Fix snd_seq_call_port_info_ioctl in compat mode This reverts one hunk of commit ef44a1ec6eee ("ALSA: sound/core: use memdup_user()"), which replaced a number of kmalloc followed by memcpy with memdup calls. In this case, we are copying from a struct snd_seq_port_info32 to a struct snd_seq_port_info, but the latter is 4 bytes longer than the 32-bit version, so we need to separate kmalloc and copy calls. Fixes: ef44a1ec6eee ('ALSA: sound/core: use memdup_user()') Signed-off-by: Nicolas Boichat Cc: Signed-off-by: Takashi Iwai sound/core/seq/seq_compat.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 43c54b8c7cfe22f868a751ba8a59abf1724160b1 Author: Nicolas Boichat Date: Mon Jan 18 21:35:00 2016 +0800 ALSA: pcm: Fix snd_pcm_hw_params struct copy in compat mode This reverts one hunk of commit ef44a1ec6eee ("ALSA: sound/core: use memdup_user()"), which replaced a number of kmalloc followed by memcpy with memdup calls. In this case, we are copying from a struct snd_pcm_hw_params32 to a struct snd_pcm_hw_params, but the latter is 4 bytes longer than the 32-bit version, so we need to separate kmalloc and copy calls. This actually leads to an out-of-bounds memory access later on in sound/soc/soc-pcm.c:soc_pcm_hw_params() (detected using KASan). Fixes: ef44a1ec6eee ('ALSA: sound/core: use memdup_user()') Signed-off-by: Nicolas Boichat Cc: Signed-off-by: Takashi Iwai sound/core/pcm_compat.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 611dcadb01c89d1d3521450c05a4ded332e5a32d Author: Songjun Wu Date: Mon Jan 18 11:14:44 2016 +0100 dmaengine: at_xdmac: fix resume for cyclic transfers When having cyclic transfers, the channel was paused when performing suspend but was not correctly resumed. Signed-off-by: Songjun Wu Signed-off-by: Ludovic Desroches Fixes: e1f7c9eee707 ("dmaengine: at_xdmac: creation of the atmel eXtended DMA Controller driver") Cc: # 4.1 and later Signed-off-by: Vinod Koul drivers/dma/at_xdmac.c | 3 +++ 1 file changed, 3 insertions(+) commit 2ba1fe7a06d3624f9a7586d672b55f08f7c670f3 Author: Takashi Iwai Date: Mon Jan 18 13:52:47 2016 +0100 ALSA: hrtimer: Fix stall by hrtimer_cancel() hrtimer_cancel() waits for the completion from the callback, thus it must not be called inside the callback itself. This was already a problem in the past with ALSA hrtimer driver, and the early commit [fcfdebe70759: ALSA: hrtimer - Fix lock-up] tried to address it. However, the previous fix is still insufficient: it may still cause a lockup when the ALSA timer instance reprograms itself in its callback. Then it invokes the start function even in snd_timer_interrupt() that is called in hrtimer callback itself, results in a CPU stall. This is no hypothetical problem but actually triggered by syzkaller fuzzer. This patch tries to fix the issue again. Now we call hrtimer_try_to_cancel() at both start and stop functions so that it won't fall into a deadlock, yet giving some chance to cancel the queue if the functions have been called outside the callback. The proper hrtimer_cancel() is called in anyway at closing, so this should be enough. Reported-and-tested-by: Dmitry Vyukov Cc: Signed-off-by: Takashi Iwai sound/core/hrtimer.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 35b815392a6b6c268baf3b63d7f2ba350597024f Author: Pablo Neira Ayuso Date: Mon Jan 18 13:52:29 2016 +0100 netfilter: nf_tables_netdev: fix error path in module initialization Unregister the chain type and return error, otherwise this leaks the subscription to the netdevice notifier call chain. Signed-off-by: Pablo Neira Ayuso net/netfilter/nf_tables_netdev.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit d6b3347bf178266259af64b1f27b5cf54acf62c8 Author: Eric Dumazet Date: Fri Jan 15 08:21:32 2016 -0800 netfilter: xt_TCPMSS: handle CHECKSUM_COMPLETE in tcpmss_tg6() In case MSS option is added in TCP options, skb length increases by 4. IPv6 needs to update skb->csum if skb has CHECKSUM_COMPLETE, otherwise kernel complains loudly in netdev_rx_csum_fault() with a stack dump. Signed-off-by: Eric Dumazet Signed-off-by: Pablo Neira Ayuso net/netfilter/xt_TCPMSS.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 1822793a523e5d5730b19cc21160ff1717421bc8 Author: Herbert Xu Date: Fri Jan 15 22:02:20 2016 +0800 crypto: algif_skcipher - Fix race condition in skcipher_check_key We need to lock the child socket in skcipher_check_key as otherwise two simultaneous calls can cause the parent socket to be freed. Cc: stable@vger.kernel.org Signed-off-by: Herbert Xu crypto/algif_skcipher.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit ad46d7e33219218605ea619e32553daf4f346b9f Author: Herbert Xu Date: Fri Jan 15 22:01:08 2016 +0800 crypto: algif_hash - Fix race condition in hash_check_key We need to lock the child socket in hash_check_key as otherwise two simultaneous calls can cause the parent socket to be freed. Cc: stable@vger.kernel.org Signed-off-by: Herbert Xu crypto/algif_hash.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit cbafd643be4c01d9df994175d5e2fa8b3b1b86bb Author: Geert Uytterhoeven Date: Fri Jan 15 14:48:06 2016 +0100 crypto: CRYPTO_DEV_ATMEL_AES should depend on HAS_DMA If NO_DMA=y: ERROR: "dma_unmap_sg" [drivers/crypto/atmel-aes.ko] undefined! ERROR: "dma_map_sg" [drivers/crypto/atmel-aes.ko] undefined! Add a dependency on HAS_DMA to fix this. Signed-off-by: Geert Uytterhoeven Signed-off-by: Herbert Xu drivers/crypto/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 5b57167749274961baf15ed1f05a4996b3ab0487 Author: Arnd Bergmann Date: Wed Jan 13 23:24:02 2016 +0100 lib: sw842: select crc32 The sw842 library code was merged in linux-4.1 and causes a very rare randconfig failure when CONFIG_CRC32 is not set: lib/built-in.o: In function `sw842_compress': oid_registry.c:(.text+0x12ddc): undefined reference to `crc32_be' lib/built-in.o: In function `sw842_decompress': oid_registry.c:(.text+0x137e4): undefined reference to `crc32_be' This adds an explict 'select CRC32' statement, similar to what the other users of the crc32 code have. In practice, CRC32 is always enabled anyway because over 100 other symbols select it. Cc: stable@vger.kernel.org Signed-off-by: Arnd Bergmann Fixes: 2da572c959dd ("lib: add software 842 compression/decompression") Acked-by: Dan Streetman Signed-off-by: Herbert Xu lib/Kconfig | 2 ++ 1 file changed, 2 insertions(+) commit a6a48c565f6f112c6983e2a02b1602189ed6e26e Author: Herbert Xu Date: Wed Jan 13 15:03:32 2016 +0800 crypto: af_alg - Forbid bind(2) when nokey child sockets are present This patch forbids the calling of bind(2) when there are child sockets created by accept(2) in existence, even if they are created on the nokey path. This is needed as those child sockets have references to the tfm object which bind(2) will destroy. Cc: stable@vger.kernel.org Signed-off-by: Herbert Xu crypto/af_alg.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) commit d7b65aee1e7b4c87922b0232eaba56a8a143a4a0 Author: Herbert Xu Date: Wed Jan 13 15:01:06 2016 +0800 crypto: algif_skcipher - Remove custom release parent function This patch removes the custom release parent function as the generic af_alg_release_parent now works for nokey sockets too. Cc: stable@vger.kernel.org Signed-off-by: Herbert Xu crypto/algif_skcipher.c | 43 +++---------------------------------------- 1 file changed, 3 insertions(+), 40 deletions(-) commit f1d84af1835846a5a2b827382c5848faf2bb0e75 Author: Herbert Xu Date: Wed Jan 13 15:00:36 2016 +0800 crypto: algif_hash - Remove custom release parent function This patch removes the custom release parent function as the generic af_alg_release_parent now works for nokey sockets too. Cc: stable@vger.kernel.org Signed-off-by: Herbert Xu crypto/algif_hash.c | 43 +++---------------------------------------- 1 file changed, 3 insertions(+), 40 deletions(-) commit 6a935170a980024dd29199e9dbb5c4da4767a1b9 Author: Herbert Xu Date: Wed Jan 13 14:59:03 2016 +0800 crypto: af_alg - Allow af_af_alg_release_parent to be called on nokey path This patch allows af_alg_release_parent to be called even for nokey sockets. Cc: stable@vger.kernel.org Signed-off-by: Herbert Xu crypto/af_alg.c | 9 ++++++++- include/crypto/if_alg.h | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) commit 70401f4edc331c3c8068fc13b93d784a72de053e Author: Tadeusz Struk Date: Fri Jan 8 10:19:54 2016 -0800 crypto: qat - update init_esram for C3xxx dev type There is no esram on C3xxx devices so we don't need to wait for it to initialize. Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/qat_hal.c | 3 +++ 1 file changed, 3 insertions(+) commit c0e77a11ffcadb98d4c0a24ab760ab1bbb7e0680 Author: Pingchao Yang Date: Thu Jan 7 09:39:46 2016 +0800 crypto: qat - fix timeout issues Change the variable times data type and timeout conditon since the value of times should be -1 after loop. Signed-off-by: Yang Pingchao Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/qat_hal.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 91a93eafea3310e7e4ab482327d34b68ad7bfdaa Author: Pingchao Yang Date: Wed Jan 6 17:56:34 2016 +0800 crypto: qat - remove to call get_sram_bar_id for qat_c3xxx Reported-by : Struk, Tadeusz Signed-off-by: Yang Pingchao Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/qat_hal.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 6e8d8ecf438792ecf7a3207488fb4eebc4edb040 Author: Herbert Xu Date: Mon Jan 11 21:29:41 2016 +0800 crypto: algif_skcipher - Add key check exception for cipher_null This patch adds an exception to the key check so that cipher_null users may continue to use algif_skcipher without setting a key. Cc: stable@vger.kernel.org Signed-off-by: Herbert Xu crypto/algif_skcipher.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a1383cd86a062fc798899ab20f0ec2116cce39cb Author: Herbert Xu Date: Mon Jan 11 21:26:50 2016 +0800 crypto: skcipher - Add crypto_skcipher_has_setkey This patch adds a way for skcipher users to determine whether a key is required by a transform. Cc: stable@vger.kernel.org Signed-off-by: Herbert Xu crypto/skcipher.c | 2 ++ include/crypto/skcipher.h | 7 +++++++ 2 files changed, 9 insertions(+) commit 6de62f15b581f920ade22d758f4c338311c2f0d4 Author: Herbert Xu Date: Fri Jan 8 21:31:04 2016 +0800 crypto: algif_hash - Require setkey before accept(2) Hash implementations that require a key may crash if you use them without setting a key. This patch adds the necessary checks so that if you do attempt to use them without a key that we return -ENOKEY instead of proceeding. This patch also adds a compatibility path to support old applications that do acept(2) before setkey. Cc: stable@vger.kernel.org Signed-off-by: Herbert Xu crypto/algif_hash.c | 201 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 193 insertions(+), 8 deletions(-) commit a5596d6332787fd383b3b5427b41f94254430827 Author: Herbert Xu Date: Fri Jan 8 21:28:26 2016 +0800 crypto: hash - Add crypto_ahash_has_setkey This patch adds a way for ahash users to determine whether a key is required by a crypto_ahash transform. Cc: stable@vger.kernel.org Signed-off-by: Herbert Xu crypto/ahash.c | 5 ++++- crypto/shash.c | 4 +++- include/crypto/hash.h | 6 ++++++ 3 files changed, 13 insertions(+), 2 deletions(-) commit a0fa2d037129a9849918a92d91b79ed6c7bd2818 Author: Herbert Xu Date: Mon Jan 4 13:36:12 2016 +0900 crypto: algif_skcipher - Add nokey compatibility path This patch adds a compatibility path to support old applications that do acept(2) before setkey. Cc: stable@vger.kernel.org Signed-off-by: Herbert Xu crypto/algif_skcipher.c | 149 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 144 insertions(+), 5 deletions(-) commit 37766586c965d63758ad542325a96d5384f4a8c9 Author: Herbert Xu Date: Mon Jan 4 13:35:18 2016 +0900 crypto: af_alg - Add nokey compatibility path This patch adds a compatibility path to support old applications that do acept(2) before setkey. Cc: stable@vger.kernel.org Signed-off-by: Herbert Xu crypto/af_alg.c | 13 ++++++++++++- include/crypto/if_alg.h | 2 ++ 2 files changed, 14 insertions(+), 1 deletion(-) commit a383292c86663bbc31ac62cc0c04fc77504636a6 Author: Herbert Xu Date: Wed Dec 30 20:24:17 2015 +0800 crypto: af_alg - Fix socket double-free when accept fails When we fail an accept(2) call we will end up freeing the socket twice, once due to the direct sk_free call and once again through newsock. This patch fixes this by removing the sk_free call. Cc: stable@vger.kernel.org Reported-by: Dmitry Vyukov Signed-off-by: Herbert Xu crypto/af_alg.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit c840ac6af3f8713a71b4d2363419145760bd6044 Author: Herbert Xu Date: Wed Dec 30 11:47:53 2015 +0800 crypto: af_alg - Disallow bind/setkey/... after accept(2) Each af_alg parent socket obtained by socket(2) corresponds to a tfm object once bind(2) has succeeded. An accept(2) call on that parent socket creates a context which then uses the tfm object. Therefore as long as any child sockets created by accept(2) exist the parent socket must not be modified or freed. This patch guarantees this by using locks and a reference count on the parent socket. Any attempt to modify the parent socket will fail with EBUSY. Cc: stable@vger.kernel.org Reported-by: Dmitry Vyukov Signed-off-by: Herbert Xu crypto/af_alg.c | 35 ++++++++++++++++++++++++++++++++--- include/crypto/if_alg.h | 8 +++----- 2 files changed, 35 insertions(+), 8 deletions(-) commit dd504589577d8e8e70f51f997ad487a4cb6c026f Author: Herbert Xu Date: Fri Dec 25 15:40:05 2015 +0800 crypto: algif_skcipher - Require setkey before accept(2) Some cipher implementations will crash if you try to use them without calling setkey first. This patch adds a check so that the accept(2) call will fail with -ENOKEY if setkey hasn't been done on the socket yet. Cc: stable@vger.kernel.org Reported-by: Dmitry Vyukov Signed-off-by: Herbert Xu Tested-by: Dmitry Vyukov crypto/algif_skcipher.c | 48 +++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 41 insertions(+), 7 deletions(-) commit 6f6abd360603aff043352db90c28748c8c46560e Author: Robert Jarzmik Date: Sat Dec 19 13:14:31 2015 +0100 video: fbdev: pxafb: fix out of memory error path As seen by Julia, the initial allocation memory is not checked anymore after commit "video: fbdev: pxafb: initial devicetree conversion". Introduce back the removed test. Reported-by: Julia Lawall Signed-off-by: Robert Jarzmik Signed-off-by: Tomi Valkeinen drivers/video/fbdev/pxafb.c | 2 ++ 1 file changed, 2 insertions(+) commit db8948e653e12b218058bb6696f4a33fa7845f64 Author: Takashi Iwai Date: Mon Jan 18 09:17:30 2016 +0100 ALSA: hda - Fix bass pin fixup for ASUS N550JX ASUS N550JX (PCI SSID 1043:13df) requires the same fixup for a bass speaker output pin as other N550 models. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=110001 Cc: Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 1 + 1 file changed, 1 insertion(+) commit 5807fcaa9bf7dd87241df739161c119cf78a6bc4 Merge: 2d663b5 acb2cfd Author: Linus Torvalds Date: Sun Jan 17 19:13:15 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security Pull security subsystem updates from James Morris: - EVM gains support for loading an x509 cert from the kernel (EVM_LOAD_X509), into the EVM trusted kernel keyring. - Smack implements 'file receive' process-based permission checking for sockets, rather than just depending on inode checks. - Misc enhancments for TPM & TPM2. - Cleanups and bugfixes for SELinux, Keys, and IMA. * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (41 commits) selinux: Inode label revalidation performance fix KEYS: refcount bug fix ima: ima_write_policy() limit locking IMA: policy can be updated zero times selinux: rate-limit netlink message warnings in selinux_nlmsg_perm() selinux: export validatetrans decisions gfs2: Invalid security labels of inodes when they go invalid selinux: Revalidate invalid inode security labels security: Add hook to invalidate inode security labels selinux: Add accessor functions for inode->i_security security: Make inode argument of inode_getsecid non-const security: Make inode argument of inode_getsecurity non-const selinux: Remove unused variable in selinux_inode_init_security keys, trusted: seal with a TPM2 authorization policy keys, trusted: select hash algorithm for TPM2 chips keys, trusted: fix: *do not* allow duplicate key options tpm_ibmvtpm: properly handle interrupted packet receptions tpm_tis: Tighten IRQ auto-probing tpm_tis: Refactor the interrupt setup tpm_tis: Get rid of the duplicate IRQ probing code ... commit 8a7b6a778a8519a879c7b6764a11c0d39eead95f Author: Dave Jiang Date: Wed Jan 13 13:29:48 2016 -0700 ntb: ntb perf tool Providing raw performance data via a tool that directly access data from NTB w/o any software overhead. This allows measurement of the hardware performance limit. In revision one we are only doing single direction CPU and DMA writes. Eventually we will provide bi-directional writes. The measurement using DMA engine for NTB performance measure does not measure the raw performance of DMA engine over NTB due to software overhead. But it should provide the peak performance through the Linux DMA driver. Signed-off-by: Dave Jiang Tested-by: Allen Hubbe Signed-off-by: Jon Mason drivers/ntb/test/Kconfig | 8 + drivers/ntb/test/Makefile | 1 + drivers/ntb/test/ntb_perf.c | 748 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 757 insertions(+) commit 2d663b55816e5c1d211a77fff90687053fe78aac Merge: 25eedab cb74ed2 Author: Linus Torvalds Date: Sun Jan 17 18:48:49 2016 -0800 Merge branch 'upstream' of git://git.infradead.org/users/pcmoore/audit Pull audit updates from Paul Moore: "Seven audit patches for 4.5, all very minor despite the diffstat. The diffstat churn for linux/audit.h can be attributed to needing to reshuffle the linux/audit.h header to fix the seccomp auditing issue (see the commit description for details). Besides the seccomp/audit fix, most of the fixes are around trying to improve the connection with the audit daemon and a Kconfig simplification. Nothing crazy, and everything passes our little audit-testsuite" * 'upstream' of git://git.infradead.org/users/pcmoore/audit: audit: always enable syscall auditing when supported and audit is enabled audit: force seccomp event logging to honor the audit_enabled flag audit: Delete unnecessary checks before two function calls audit: wake up threads if queue switched from limited to unlimited audit: include auditd's threads in audit_log_start() wait exception audit: remove audit_backlog_wait_overflow audit: don't needlessly reset valid wait time commit 25eedabe019851bc513abd601ed514df524cb482 Author: Linus Torvalds Date: Sun Jan 17 18:33:15 2016 -0800 vm: fix incorrect unlock error path in madvise_free_huge_pmd Commit b8d3c4c3009d ("mm/huge_memory.c: don't split THP page when MADV_FREE syscall is called") introduced this new function, but got the error handling for when pmd_trans_huge_lock() fails wrong. In the failure case, the lock has not been taken, and we should not unlock on the way out. Cc: Minchan Kim Cc: Andrew Morton Signed-off-by: Linus Torvalds mm/huge_memory.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c671e1e30259da587d7a0162895200601979ee65 Author: Dave Airlie Date: Mon Jan 18 09:10:42 2016 +1000 drm/vc4: fix warning in validate printf. This just fixes a warning on 64-bit builds: drivers/gpu/drm/vc4/vc4_validate.c: In function ‘validate_gl_shader_rec’: drivers/gpu/drm/vc4/vc4_validate.c:864:12: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘size_t {aka long unsigned int}’ [-Wformat=] Reported-by: Linus Torvalds Signed-off-by: Dave Airlie Signed-off-by: Linus Torvalds drivers/gpu/drm/vc4/vc4_validate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c61f30a255550bbfc6b83c1ca720661489cac4c0 Author: Geert Uytterhoeven Date: Fri Dec 18 11:51:36 2015 +0100 ARM: dts: armadillo800eva Correct extal1 frequency to 24 MHz On r8a7740/armadillo, actual clock rates are ca. 4% lower than reported by /sys/kernel/debug/clk/clk_summary. Correct the extal1 frequency from 25 MHz to 24 MHz to fix this. This matches the Armadillo-800 EVA Product Manual, which claims the main crystal runs at 24 MHz, and the old legacy/reference board code. Fixes: 25aa7ba3fdfb ("ARM: shmobile: armadillo800eva: Sync DTS") Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7740-armadillo800eva.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 484bb6c969523aa547d854bb57104339ee4aa800 Author: Andrzej Hajda Date: Thu Jan 14 09:59:02 2016 +0100 drm/rockchip/dsi: fix handling mipi_dsi_pixel_format_to_bpp result The function can return negative value so it should be assigned to signed variable. The problem has been detected using patch scripts/coccinelle/tests/unsigned_lesser_than_zero.cocci. Signed-off-by: Andrzej Hajda Reviewed-by: Chris Zhong drivers/gpu/drm/rockchip/dw-mipi-dsi.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit c7647f8681feeb6c0957e3cf5daed1fbf8b3a5af Author: John Keeping Date: Tue Jan 12 18:05:18 2016 +0000 drm/rockchip: vop: fix mask when updating interrupts Commit dbb3d94 (drm/rockchip: vop: move interrupt registers into vop_data) introduced new macros for updating the interrupt control registers but these always use the mask from the register definition without refining it for the particular bits that are being changed. This means that whenever we enable/disable a particular interrupt we end up disabling all of the others as a side effect. Signed-off-by: John Keeping drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit 63087aae5a7976a4557d16873146eae03948ec74 Author: Mark Yao Date: Tue Jan 12 16:04:39 2016 +0800 drm/rockchip: cleanup unnecessary export symbol Now rockchip_drm_vop.c is build into rockchipdrm.ko, so no need to export following symbol anymore: rockchip_drm_dma_attach_device rockchip_drm_dma_detach_device rockchip_drm_dma_attach_device rockchip_drm_dma_detach_device rockchip_register_crtc_funcs rockchip_unregister_crtc_funcs rockchip_fb_get_gem_obj Signed-off-by: Mark Yao drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 4 ---- drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 1 - 2 files changed, 5 deletions(-) commit ce90d092bcd96b646b370121f0f1508270627f98 Author: Mark Yao Date: Tue Jan 12 15:51:12 2016 +0800 drm/rockchip: Don't build rockchip_drm_vop as modules rockchip_drm_vop's module init had moved to rockchip_vop_reg.c so no need to build rockchip_drm_vop.ko Signed-off-by: Mark Yao drivers/gpu/drm/rockchip/Makefile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit e6e4a556161b709c01f14b033c86dfefe28c2d3c Author: Martin Blumenstingl Date: Fri Jan 15 01:55:24 2016 +0100 net: phy: at803x: Add the interrupt register bit definitions Also use them instead of a magic value when enabling the interrupts. Signed-off-by: Martin Blumenstingl Signed-off-by: David S. Miller drivers/net/phy/at803x.c | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) commit a46bd63bc13b2190b343706d78deab220d5c4d45 Author: Martin Blumenstingl Date: Fri Jan 15 01:55:23 2016 +0100 net: phy: at803x: Clean up duplicate register definitions Signed-off-by: Martin Blumenstingl Signed-off-by: David S. Miller drivers/net/phy/at803x.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) commit 2e5f9f281ee8369f56d403b4a52942f19b6978f8 Author: Martin Blumenstingl Date: Fri Jan 15 01:55:22 2016 +0100 net: phy: at803x: Allow specifying the RGMII RX clock delay via phy mode at803x currently automatically enables the RGMII TX clock delay when the phy interface mode is PHY_INTERFACE_MODE_RGMII_TXID. The same should be done when PHY_INTERFACE_MODE_RGMII_ID is specified. Use a similar logic to enable the RGMII RX clock delay as well. at803x_context_{save,restore} were not touched because these are only used on AR8030 which is a RMII phy (RGMII clock delays are irrelevant). Signed-off-by: Martin Blumenstingl Signed-off-by: David S. Miller drivers/net/phy/at803x.c | 63 +++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 54 insertions(+), 9 deletions(-) commit e15bb4c64ddbf62122ef906732b96ae31135f156 Author: Martin Blumenstingl Date: Fri Jan 15 01:55:21 2016 +0100 net: phy: at803x: Don't set gbit features for the AR8030 phy The 8030 is only a "RMII Fast Ethernet PHY", thus it must not have the SUPPORTED_1000* bits set. Signed-off-by: Martin Blumenstingl Signed-off-by: David S. Miller drivers/net/phy/at803x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 42ff712bc0c3d7cd60d29b319aecd2d2c8cc75d4 Author: Zi Shen Lim Date: Wed Jan 13 23:33:22 2016 -0800 arm64: bpf: add extra pass to handle faulty codegen Code generation functions in arch/arm64/kernel/insn.c previously BUG_ON invalid parameters. Following change of that behavior, now we need to handle the error case where AARCH64_BREAK_FAULT is returned. Instead of error-handling on every emit() in JIT, we add a new validation pass at the end of JIT compilation. There's no point in running JITed code at run-time only to trap due to AARCH64_BREAK_FAULT. Instead, we drop this failed JIT compilation and allow the system to gracefully fallback on the BPF interpreter. Signed-off-by: Zi Shen Lim Suggested-by: Alexei Starovoitov Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller arch/arm64/net/bpf_jit_comp.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) commit c94ae4f7c5ec6b6fddde1c08809d5e32a963d7f3 Author: Zi Shen Lim Date: Wed Jan 13 23:33:21 2016 -0800 arm64: insn: remove BUG_ON from codegen During code generation, we used to BUG_ON unknown/unsupported encoding or invalid parameters. Instead, now we report these as errors and simply return the instruction AARCH64_BREAK_FAULT. Users of these codegen helpers should check for and handle this failure condition as appropriate. Otherwise, unhandled codegen failure will result in trapping at run-time due to AARCH64_BREAK_FAULT, which is arguably better than a BUG_ON. Signed-off-by: Zi Shen Lim Acked-by: Will Deacon Signed-off-by: David S. Miller arch/arm64/kernel/insn.c | 165 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 112 insertions(+), 53 deletions(-) commit dd7445ad6be3809565272b0e724f2f00c2de1989 Author: Xin Long Date: Sat Jan 16 20:17:17 2016 +0800 sctp: the temp asoc's transports should not be hashed/unhashed Re-establish the previous behavior and avoid hashing temporary asocs by checking t->asoc->temp in sctp_(un)hash_transport. Also, remove the check of t->asoc->temp in __sctp_lookup_association, since they are never hashed now. Fixes: 4f0087812648 ("sctp: apply rhashtable api to send/recv path") Signed-off-by: Xin Long Acked-by: Marcelo Ricardo Leitner Reported-by: Vlad Yasevich Signed-off-by: David S. Miller net/sctp/endpointola.c | 2 +- net/sctp/input.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) commit 984065055e6e39f8dd812529e11922374bd39352 Merge: 12768c1 1df59b8 Author: Linus Torvalds Date: Sun Jan 17 13:40:25 2016 -0800 Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux Pull drm updates from Dave Airlie: "This is the main drm pull request for 4.5. I don't think I've missed anything too major, I'm mostly back at work now but I'll probably get some sleep in 5 years time. Summary: New drivers: - etnaviv: GPU driver for the 3D core on the Vivante core used in numerous ARM boards. Highlights: Core: - Atomic suspend/resume helpers - Move the headers to using userspace friendlier types. - Documentation updates - Lots of struct_mutex removal. - Bunch of DP MST fixes from AMD. Panel: - More DSI helpers - Support for some new basic panels i915: - Basic Kabylake support - DP link training and detect code refactoring - fbc/psr fixes - FIFO underrun fixes - SDE interrupt handling fixes - dma-buf/fence support in pageflip path. - GPU side for MST audio support radeon/amdgpu: - Drop UMS support - GPUVM/Scheduler optimisations - Initial Powerplay support for Tonga/Fiji/CZ/ST - ACP audio prerequisites nouveau: - GK20a instmem improvements - PCIE link speed change support msm: - DSI support for msm8960/apq8064 tegra: - Host1X support for Tegra210 SoC vc4: - 3D acceleration support armada: - Get rid of struct mutex tda998x: - Atomic modesetting support - TMDS clock limitations omapdrm: - Atomic modesetting support - improved TILER performance rockchip: - RK3036 VOP support - Atomic modesetting support - Synopsys DW MIPI DSI support exynos: - Runtime PM support - of_graph binding for DP panels - Cleanup of IPP code - Configurable plane support - Kernel panic fixes at release time" * 'drm-next' of git://people.freedesktop.org/~airlied/linux: (711 commits) drm/fb_cma_helper: Remove implicit call to disable_unused_functions drm/amdgpu: add missing irq.h include drm/vmwgfx: Fix a width / pitch mismatch on framebuffer updates drm/vmwgfx: Fix an incorrect lock check drm: nouveau: fix nouveau_debugfs_init prototype drm/nouveau/pci: fix check in nvkm_pcie_set_link drm/amdgpu: validate duplicates first drm/amdgpu: move VM page tables to the LRU end on CS v2 drm/ttm: add ttm_bo_move_to_lru_tail function v2 drm/ttm: fix adding foreign BOs to the swap LRU drm/ttm: fix adding foreign BOs to the LRU during init v2 drm/radeon: use kobj_to_dev() drm/amdgpu: use kobj_to_dev() drm/amdgpu/cz: force vce clocks when sclks are forced drm/amdgpu/cz: force uvd clocks when sclks are forced drm/amdgpu/cz: add code to enable forcing VCE clocks drm/amdgpu/cz: add code to enable forcing UVD clocks drm/amdgpu: fix lost sync_to if scheduler is enabled. drm/amd/powerplay: fix static checker warning for return meaningless value. drm/sysfs: use kobj_to_dev() ... commit 12768c1e2c83b05ea1658470045789a14b6edf4c Merge: a4eff16 1b1fe54 Author: Linus Torvalds Date: Sun Jan 17 13:31:50 2016 -0800 Merge tag 'linux-kselftest-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest Pull kselftest updates from Shuah Khan: "This 14 patch update: - adds a new test for intel_pstate driver - adds empty string and async test cases to firmware class tests - fixes and cleans up several existing tests" * tag 'linux-kselftest-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: selftests: firmware: add empty string and async tests firmware: actually return NULL on failed request_firmware_nowait() test: firmware_class: add asynchronous request trigger test: firmware_class: use kstrndup() where appropriate test: firmware_class: report errors properly on failure selftests/seccomp: fix 32-bit build warnings add breakpoints/.gitignore add ptrace/.gitignore update .gitignore in selftests/timers update .gitignore in selftests/vm tools, testing, add test for intel_pstate driver selftest/ipc: actually test it selftests/capabilities: actually test it selftests/capabilities: clean up for Makefile commit a4eff16c54886c11972d6396ce8447b99e097343 Merge: 0cbeafb b0e5513 Author: Linus Torvalds Date: Sun Jan 17 13:20:54 2016 -0800 Merge branch 'parisc-4.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux Pull parsic updates from Helge Deller: "This patchset includes two major fixes which are both scheduled for stable: First, __ARCH_SI_PREAMBLE_SIZE was defined with a wrong value. Second, huge page pte and TLB changes needed protection with a spinlock. Other than that there are just some trivial optimizations and cleanups" * 'parisc-4.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux: parisc: Protect huge page pte changes with spinlocks parisc: Imporove debug info about space registers and TLB configuration parisc: Drop parisc-specific NSIGTRAP define parisc: Fix __ARCH_SI_PREAMBLE_SIZE parisc: Reduce overhead of parisc_requires_coherency() parisc: Initialize PCI bridge cache line and default latency commit 1df59b8497f47495e873c23abd6d3d290c730505 Merge: 28f0360 48ea1e3 Author: Dave Airlie Date: Mon Jan 18 07:02:19 2016 +1000 Merge tag 'drm-intel-next-fixes-2016-01-14' of git://anongit.freedesktop.org/drm-intel into drm-next misc i915 fixes all over the place. * tag 'drm-intel-next-fixes-2016-01-14' of git://anongit.freedesktop.org/drm-intel: drm/i915/gen9: Set PIN_ZONE_4G end to 4GB - 1 page drm/i915: Widen return value for reservation_object_wait_timeout_rcu to long. drm/i915: intel_hpd_init(): Fix suspend/resume reprobing drm/i915: shut up gen8+ SDE irq dmesg noise, again drm/i915: Restore inhibiting the load of the default context drm/i915: Tune down rpm wakelock debug checks drm/i915: Avoid writing relocs with addresses in non-canonical form drm/i915: Move Braswell stop_machine GGTT insertion workaround commit 28f03607bb2e7a3dab71d0a377fd13f6ed3ebb9f Merge: e9c5e74 4314e19 Author: Dave Airlie Date: Mon Jan 18 07:01:16 2016 +1000 Merge tag 'topic/drm-misc-2016-01-17' of git://anongit.freedesktop.org/drm-intel into drm-next Since your main drm-next pull isn't out of the door yet I figured I might as well flush out drm-misc instead of delaying for 4.6. It's really just random stuff all over, biggest thing probably connector_mask tracking from Maarten. * tag 'topic/drm-misc-2016-01-17' of git://anongit.freedesktop.org/drm-intel: (24 commits) drm/fb_cma_helper: Remove implicit call to disable_unused_functions drm/sysfs: use kobj_to_dev() drm/i915: Init power domains early in driver load drm: Do not set connector->encoder in drivers apple-gmux: Add initial documentation drm: move MODULE_PARM_DESC to other file drm/edid: index CEA/HDMI mode tables using the VIC drm/atomic: Remove drm_atomic_connectors_for_crtc. drm/i915: Update connector_mask during readout, v2. drm: Remove opencoded drm_gem_object_release_handle() drm: Do not set outparam on error during GEM handle allocation drm/docs: more leftovers from the big vtable documentation pile drm/atomic-helper: Reject legacy flips on a disabled pipe drm/atomic: add connector mask to drm_crtc_state. drm/tegra: Use __drm_atomic_helper_reset_connector for subclassing connector state, v2. drm/atomic: Add __drm_atomic_helper_connector_reset, v2. drm/i915: Set connector_state->connector using the helper. drm: Use a normal idr allocation for the obj->name drm: Only bump object-reference count when adding first handle drm: Balance error path for GEM handle allocation ... commit 0cbeafb245ca568bc0765645aa64f0451b716657 Merge: 58cf279a 06b031d Author: Linus Torvalds Date: Sun Jan 17 12:58:52 2016 -0800 Merge branch 'akpm' (patches from Andrew) Merge second patch-bomb from Andrew Morton: - more MM stuff: - Kirill's page-flags rework - Kirill's now-allegedly-fixed THP rework - MADV_FREE implementation - DAX feature work (msync/fsync). This isn't quite complete but DAX is new and it's good enough and the guys have a handle on what needs to be done - I expect this to be wrapped in the next week or two. - some vsprintf maintenance work - various other misc bits * emailed patches from Andrew Morton : (145 commits) printk: change recursion_bug type to bool lib/vsprintf: factor out %pN[F] handler as netdev_bits() lib/vsprintf: refactor duplicate code to special_hex_number() printk-formats.txt: remove unimplemented %pT printk: help pr_debug and pr_devel to optimize out arguments lib/test_printf.c: test dentry printing lib/test_printf.c: add test for large bitmaps lib/test_printf.c: account for kvasprintf tests lib/test_printf.c: add a few number() tests lib/test_printf.c: test precision quirks lib/test_printf.c: check for out-of-bound writes lib/test_printf.c: don't BUG lib/kasprintf.c: add sanity check to kvasprintf lib/vsprintf.c: warn about too large precisions and field widths lib/vsprintf.c: help gcc make number() smaller lib/vsprintf.c: expand field_width to 24 bits lib/vsprintf.c: eliminate potential race in string() lib/vsprintf.c: move string() below widen_string() lib/vsprintf.c: pull out padding code from dentry_name() printk: do cond_resched() between lines while outputting to consoles ... commit 58cf279acac3080ce03eeea5ca268210b3165fe1 Merge: 6606b34 c474e34 Author: Linus Torvalds Date: Sun Jan 17 12:32:01 2016 -0800 Merge tag 'gpio-v4.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio Pull GPIO updates from Linus Walleij: "Here is the bulk of GPIO changes for v4.5. Notably there are big refactorings mostly by myself, aimed at getting the gpio_chip into a shape that makes me believe I can proceed to preserve state for a proper userspace ABI (character device) that has already been proposed once, but resulted in the feedback that I need to go back and restructure stuff. So I've been restructuring stuff. On the way I ran into brokenness (return code from the get_value() callback) and had to fix it. Also, refactored generic GPIO to be simpler. Some of that is still waiting to trickle down from the subsystems all over the kernel that provide random gpio_chips, I've touched every single GPIO driver in the kernel now, oh man I didn't know I was responsible for so much... Apart from that we're churning along as usual. I took some effort to test and retest so it should merge nicely and we shook out a couple of bugs in -next. Infrastructural changes: - In struct gpio_chip, rename the .dev node to .parent to better reflect the fact that this is not the GPIO struct device abstraction. We will add that soon so this would be totallt confusing. - It was noted that the driver .get_value() callbacks was sometimes reporting negative -ERR values to the gpiolib core, expecting them to be propagated to consumer gpiod_get_value() and gpio_get_value() calls. This was not happening, so as there was a mess of drivers returning negative errors and some returning "anything else than zero" to indicate that a line was active. As some would have bit 31 set to indicate "line active" it clashed with negative error codes. This is fixed by the largeish series clamping values in all drivers with !!value to [0,1] and then augmenting the code to propagate error codes to consumers. (Includes some ACKed patches in other subsystems.) - Add a void *data pointer to struct gpio_chip. The container_of() design pattern is indeed very nice, but we want to reform the struct gpio_chip to be a non-volative, stateless business, and keep states internal to the gpiolib to be able to hold on to the state when adding a proper userspace ABI (character device) further down the road. To achieve this, drivers need a handle at the internal state that is not dependent on their struct gpio_chip() so we add gpiochip_add_data() and gpiochip_get_data() following the pattern of many other subsystems. All the "use gpiochip data pointer" patches transforms drivers to this scheme. - The Generic GPIO chip header has been merged into the general header, and the custom header for that removed. Instead of having a separate mm_gpio_chip struct for these generic drivers, merge that into struct gpio_chip, simplifying the code and removing the need for separate and confusing includes. Misc improvements: - Stabilize the way GPIOs are looked up from the ACPI legacy specification. - Incremental driver features for PXA, PCA953X, Lantiq (patches from the OpenWRT community), RCAR, Zynq, PL061, 104-idi-48 New drivers: - Add a GPIO chip to the ALSA SoC AC97 driver. - Add a new Broadcom NSP SoC driver (this lands in the pinctrl dir, but the branch is merged here too to account for infrastructural changes). - The sx150x driver now supports the sx1502" * tag 'gpio-v4.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (220 commits) gpio: generic: make bgpio_pdata always visible gpiolib: fix chip order in gpio list gpio: mpc8xxx: Do not use gpiochip_get_data() in mpc8xxx_gpio_save_regs() gpio: mm-lantiq: Do not use gpiochip_get_data() in ltq_mm_save_regs() gpio: brcmstb: Allow building driver for BMIPS_GENERIC gpio: brcmstb: Set endian flags for big-endian MIPS gpio: moxart: fix build regression gpio: xilinx: Do not use gpiochip_get_data() in xgpio_save_regs() leds: pca9532: use gpiochip data pointer leds: tca6507: use gpiochip data pointer hid: cp2112: use gpiochip data pointer bcma: gpio: use gpiochip data pointer avr32: gpio: use gpiochip data pointer video: fbdev: via: use gpiochip data pointer gpio: pch: Optimize pch_gpio_get() Revert "pinctrl: lantiq: Implement gpio_chip.to_irq" pinctrl: nsp-gpio: use gpiochip data pointer pinctrl: vt8500-wmt: use gpiochip data pointer pinctrl: exynos5440: use gpiochip data pointer pinctrl: at91-pio4: use gpiochip data pointer ... commit 6606b342febfd470b4a33acb73e360eeaca1d9bb Merge: a016af2 ac36856 Author: Linus Torvalds Date: Sun Jan 17 12:15:38 2016 -0800 Merge git://www.linux-watchdog.org/linux-watchdog Pull watchdog updates from Wim Van Sebroeck: "This adds following items: - watchdog restart handler support - watchdog reboot notifier support - watchdog sysfs attributes - support for the following new devices: AMD Mullins platform, AMD Carrizo platform, meson8b SoC, CSRatlas7, TS-4800, Alphascale asm9260-wdt, Zodiac, Sigma Designs SMP86xx/SMP87xx - Changes in refcounting for the watchdog core - watchdog core improvements - and small fixes" * git://www.linux-watchdog.org/linux-watchdog: (60 commits) watchdog: asm9260: remove __init and __exit annotations watchdog: Drop pointer to watchdog device from struct watchdog_device watchdog: ziirave: Use watchdog infrastructure to create sysfs attributes watchdog: Add support for creating driver specific sysfs attributes watchdog: kill unref/ref ops watchdog: stmp3xxx: Remove unused variables watchdog: add MT7621 watchdog support hwmon: (sch56xx) Drop watchdog driver data reference count callbacks watchdog: da9055_wdt: Drop reference counting watchdog: da9052_wdt: Drop reference counting watchdog: Separate and maintain variables based on variable lifetime watchdog: diag288: Stop re-using watchdog core internal flags watchdog: Create watchdog device in watchdog_dev.c watchdog: qcom-wdt: Do not set 'dev' in struct watchdog_device watchdog: mena21: Do not use device pointer from struct watchdog_device watchdog: gpio: Do not use device pointer from struct watchdog_device watchdog: tangox: Print info message using pointer to platform device watchdog: bcm2835_wdt: Drop log message if watchdog is stopped devicetree: watchdog: add binding for Sigma Designs SMP8642 watchdog watchdog: add support for Sigma Designs SMP86xx/SMP87xx ... commit a016af2e70bfca23f2f5de7d8708157b86ea374d Merge: e535d74 c3b1681 Author: Linus Torvalds Date: Sun Jan 17 12:05:31 2016 -0800 Merge tag 'sound-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound updates from Takashi Iwai: "We've had quite busy weeks in this cycle. Looking at ALSA core, the significant changes are a few fixes wrt timer and sequencer ioctls that have been revealed by fuzzer recently. Other than that, ASoC core got a few updates about DAI link handling, but these are rather straightforward refactoring. In drivers scene, ASoC received quite lots of new drivers in addition to bunch of updates for still ongoing Intel Skylake support and topology API. HD-audio gained a new HDMI/DP hotplug notification via component. FireWire got a pile of code refactoring/updates with SCS.1x driver integration. More highlights are shown below. [ NOTE: this contains also many commits for DRM. This is due to the pull of drm stable branch into sound tree, as the base of i915 audio component work for HD-audio. The highlights below don't contain these DRM changes, as these are supposed to be pulled via drm tree in anyway sooner or later. ] Core: - Handful fixes to harden ALSA timer and sequencer ioctls against races reported by syzkaller fuzzer - Irq description string can be unique to each card; only for HD-audio for now ASoC: - Conversion of the array of DAI links to a list for supporting dynamically adding and removing DAI links - Topology API enhancements to make everything more component based and being able to specify PCM links via topology - Some more fixes for the topology code, though it is still not final and ready for enabling in production; we really need to get to the point where that can be done - A pile of changes for Intel SkyLake drivers which hopefully deliver some useful initial functionality for systems with this chipset, though there is more work still to come - Lots of new features and cleanups for the Renesas drivers - ANC support for WM5110 - New drivers: Imagination Technologies IPs, Atmel class D speaker, Cirrus CS47L24 and WM1831, Dialog DA7128, Realtek RT5659 and RT56156, Rockchip RK3036, TI PC3168A, and AMD ACP - Rename PCM1792a driver to be generic pcm179x HD-Audio: - Use audio component for i915 HDMI/DP hotplug handling - On-demand binding with i915 driver - bdl_pos_adj parameter adjustment for Baytrail controllers - Enable power_save_node for CX20722; this shouldn't lead to regression, hopefully - Kabylake HDMI/DP codec support - Quirks for Lenovo E50-80, Dell Latitude E-series, and other Dell machines - A few code refactoring FireWire: - Lots of code cleanup and refactoring - Integrate the support of SCS.1x devices into snd-oxfw driver; snd-scs1x driver is obsoleted USB-audio: - Fix possible NULL dereference at disconnection - A regression fix for Native Instruments devices Misc: - A few code cleanups of fm801 driver" * tag 'sound-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (722 commits) ALSA: timer: Code cleanup ALSA: timer: Harden slave timer list handling ALSA: hda - Add fixup for Dell Latitidue E6540 ALSA: timer: Fix race among timer ioctls ALSA: hda - add codec support for Kabylake display audio codec ALSA: timer: Fix double unlink of active_list ALSA: usb-audio: Fix mixer ctl regression of Native Instrument devices ALSA: hda - fix the headset mic detection problem for a Dell laptop ALSA: hda - Fix white noise on Dell Latitude E5550 ALSA: hda_intel: add card number to irq description ALSA: seq: Fix race at timer setup and close ALSA: seq: Fix missing NULL check at remove_events ioctl ALSA: usb-audio: Avoid calling usb_autopm_put_interface() at disconnect ASoC: hdac_hdmi: remove unused hdac_hdmi_query_pin_connlist ASoC: AMD: Add missing include file ALSA: hda - Fixup inverted internal mic for Lenovo E50-80 ALSA: usb: Add native DSD support for Oppo HA-1 ASoC: Make aux_dev more like a generic component ASoC: bcm2835: cleanup includes by ordering them alphabetically ASoC: AMD: Manage ACP 2.x SRAM banks power ... commit e535d74bc50df2357d3253f8f3ca48c66d0d892a Merge: ece6267 ec3fc58 Author: Linus Torvalds Date: Sun Jan 17 11:55:07 2016 -0800 Merge tag 'docs-4.5' of git://git.lwn.net/linux Pull documentation updates from Jon Corbet: "A relatively boring cycle in the docs tree. There's a few kernel-doc fixes and various document tweaks. One patch reaches out of the documentation subtree to fix a comment in init/do_mounts_rd.c. There didn't seem to be anybody more appropriate to take that one, so I accepted it" * tag 'docs-4.5' of git://git.lwn.net/linux: (29 commits) thermal: add description for integral_cutoff unit Documentation: update libhugetlbfs site url Documentation: Explain pci=conf1,conf2 more verbosely DMA-API: fix confusing sentence in Documentation/DMA-API.txt Documentation: translations: update linux cross reference link Documentation: fix typo in CodingStyle init, Documentation: Remove ramdisk_blocksize mentions Documentation-getdelays: Apply a recommendation from "checkpatch.pl" in main() Documentation: HOWTO: update versions from 3.x to 4.x Documentation: remove outdated references from translations Doc: treewide: Fix grammar "a" to "an" Documentation: cpu-hotplug: Fix sysfs mount instructions can-doc: Add hint about getting timestamps Fix CFQ I/O scheduler parameter name in documentation Documentation: arm: remove dead links from Marvell Berlin docs Documentation: HOWTO: update code cross reference link Doc: Docbook/iio: Fix typo in iio.tmpl DocBook: make index.html generation less verbose by default DocBook: Cleanup: remove an unused $(call) line DocBook: Add a help message for DOCBOOKS env var ... commit 0b6e26ce89391327d955a756a7823272238eb867 Author: Doron Tsur Date: Sun Jan 17 11:25:47 2016 +0200 net/mlx5_core: Fix trimming down IRQ number With several ConnectX-4 cards installed on a server, one may receive irqn > 255 from the kernel API, which we mistakenly trim to 8bit. This causes EQ creation failure with the following stack trace: [] dump_stack+0x48/0x64 [] __setup_irq+0x3a1/0x4f0 [] request_threaded_irq+0x120/0x180 [] ? mlx5_eq_int+0x450/0x450 [mlx5_core] [] mlx5_create_map_eq+0x1e4/0x2b0 [mlx5_core] [] alloc_comp_eqs+0xb1/0x180 [mlx5_core] [] mlx5_dev_init+0x5e9/0x6e0 [mlx5_core] [] init_one+0x99/0x1c0 [mlx5_core] [] local_pci_probe+0x4c/0xa0 Fixing it by changing of the irqn type from u8 to unsigned int to support values > 255 Fixes: 61d0e73e0a5a ('net/mlx5_core: Use the the real irqn in eq->irqn') Reported-by: Jiri Pirko Signed-off-by: Doron Tsur Signed-off-by: Matan Barak Signed-off-by: David S. Miller drivers/infiniband/hw/mlx5/cq.c | 2 +- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 6 +++--- drivers/net/ethernet/mellanox/mlx5/core/main.c | 3 ++- include/linux/mlx5/cq.h | 2 +- include/linux/mlx5/driver.h | 5 +++-- 5 files changed, 10 insertions(+), 8 deletions(-) commit cdb00777ffadb15b06627dd6c3f716a02f6b36e8 Author: Geert Uytterhoeven Date: Sun Jan 17 11:30:37 2016 +0100 tcp_memcontrol: Forward declare cgroup_subsys and mem_cgroup stucts In file included from net/ipv4/tcp_ipv4.c:77 (and many more): include/net/tcp_memcontrol.h:5: warning: ‘struct cgroup_subsys’ declared inside parameter list include/net/tcp_memcontrol.h:5: warning: its scope is only this definition or declaration, which is probably not what you want Add forward declarations for all used structures to fix this. Signed-off-by: Geert Uytterhoeven Signed-off-by: David S. Miller include/net/tcp_memcontrol.h | 3 +++ 1 file changed, 3 insertions(+) commit 51cbb5242a41700a3f250ecfb48dcfb7e4375ea4 Author: Thomas Gleixner Date: Thu Jan 14 16:54:48 2016 +0000 itimers: Handle relative timers with CONFIG_TIME_LOW_RES proper As Helge reported for timerfd we have the same issue in itimers. We return remaining time larger than the programmed relative time to user space in case of CONFIG_TIME_LOW_RES=y. Use the proper function to adjust the extra time added in hrtimer_start_range_ns(). Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Helge Deller Cc: John Stultz Cc: linux-m68k@lists.linux-m68k.org Cc: dhowells@redhat.com Cc: stable@vger.kernel.org Link: http://lkml.kernel.org/r/20160114164159.528222587@linutronix.de Signed-off-by: Thomas Gleixner kernel/time/itimer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 572c39172684c3711e4a03c9a7380067e2b0661c Author: Thomas Gleixner Date: Thu Jan 14 16:54:47 2016 +0000 posix-timers: Handle relative timers with CONFIG_TIME_LOW_RES proper As Helge reported for timerfd we have the same issue in posix timers. We return remaining time larger than the programmed relative time to user space in case of CONFIG_TIME_LOW_RES=y. Use the proper function to adjust the extra time added in hrtimer_start_range_ns(). Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Helge Deller Cc: John Stultz Cc: linux-m68k@lists.linux-m68k.org Cc: dhowells@redhat.com Cc: stable@vger.kernel.org Link: http://lkml.kernel.org/r/20160114164159.450510905@linutronix.de Signed-off-by: Thomas Gleixner kernel/time/posix-timers.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b62526ed11a1fe3861ab98d40b7fdab8981d788a Author: Thomas Gleixner Date: Thu Jan 14 16:54:46 2016 +0000 timerfd: Handle relative timers with CONFIG_TIME_LOW_RES proper Helge reported that a relative timer can return a remaining time larger than the programmed relative time on parisc and other architectures which have CONFIG_TIME_LOW_RES set. This happens because we add a jiffie to the resulting expiry time to prevent short timeouts. Use the new function hrtimer_expires_remaining_adjusted() to calculate the remaining time. It takes that extra added time into account for relative timers. Reported-and-tested-by: Helge Deller Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: John Stultz Cc: linux-m68k@lists.linux-m68k.org Cc: dhowells@redhat.com Cc: stable@vger.kernel.org Link: http://lkml.kernel.org/r/20160114164159.354500742@linutronix.de Signed-off-by: Thomas Gleixner fs/timerfd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 203cbf77de59fc8f13502dcfd11350c6d4a5c95f Author: Thomas Gleixner Date: Thu Jan 14 16:54:46 2016 +0000 hrtimer: Handle remaining time proper for TIME_LOW_RES If CONFIG_TIME_LOW_RES is enabled we add a jiffie to the relative timeout to prevent short sleeps, but we do not account for that in interfaces which retrieve the remaining time. Helge observed that timerfd can return a remaining time larger than the relative timeout. That's not expected and breaks userland test programs. Store the information that the timer was armed relative and provide functions to adjust the remaining time. To avoid bloating the hrtimer struct make state a u8, which as a bonus results in better code on x86 at least. Reported-and-tested-by: Helge Deller Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: John Stultz Cc: linux-m68k@lists.linux-m68k.org Cc: dhowells@redhat.com Cc: stable@vger.kernel.org Link: http://lkml.kernel.org/r/20160114164159.273328486@linutronix.de Signed-off-by: Thomas Gleixner include/linux/hrtimer.h | 34 +++++++++++++++++++++++++++--- kernel/time/hrtimer.c | 55 ++++++++++++++++++++++++++++++++---------------- kernel/time/timer_list.c | 2 +- 3 files changed, 69 insertions(+), 22 deletions(-) commit 78c5b2c66758f2dad354fcc59c529954e07f078e Merge: 6c3f5ae 42eff6a Author: David S. Miller Date: Sun Jan 17 01:01:51 2016 -0500 Merge tag 'batman-adv-fix-for-davem' of git://git.open-mesh.org/linux-merge Antonio Quartulli says: ==================== pull request [net]: batman-adv 20160117 here you have a bunch of patches intended for net. This patchset is provided by Sven Eckelmann and it is basically fixing 2 major issues that exist in several parts of the code - that is why we have 8 patches. The first bugfix (patch 1 and 2) is preventing call_rcu from being invoked recursively. This would deceive any user waiting on rcu_barrier() because the latter won't be able to wait for the nested invocation thus triggering any sort of undefined behaviours. The second bugfix (patches from 3 to 8) prevents the code from freeing rcu protected objects without waiting for the proper grace period. This issue can potentially lead to wrong memory access and thus kernel crashes. Unfortunately this bogus code pattern was copy/pasted all around the place when developing new features, therefore Sven diligently created several patches to address each component independently. Given that such bugs were introduced quite some time ago, all the patches except patch 5 should be considered for submission to stable. Included changes: - avoid recursive invocations of call_rcu() which would fool users waiting on rcu_barrier() - prevent immediate kfree of objects used in rcu protected contexts ==================== Signed-off-by: David S. Miller commit 06b031de22d28ae76b2e5bfaf22c56a265a1e106 Author: Sergey Senozhatsky Date: Fri Jan 15 16:59:23 2016 -0800 printk: change recursion_bug type to bool `recursion_bug' is used as recursion_bug toggle, so make it `bool'. Signed-off-by: Sergey Senozhatsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/printk/printk.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 5b17aecfcdd3dc82c237677f5efc9a44deeaa39e Author: Andy Shevchenko Date: Fri Jan 15 16:59:20 2016 -0800 lib/vsprintf: factor out %pN[F] handler as netdev_bits() Move switch case to the netdev_features_string() and rename it to netdev_bits(). In the future we can extend it as needed. Here we replace the fallback of %pN from '%p' with possible flags to sticter '0x%p' without any flags variation. Signed-off-by: Andy Shevchenko Cc: Rasmus Villemoes Cc: Joe Perches Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/vsprintf.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) commit 3cab1e711297c4fbc526ca9b802ef61894c06545 Author: Andy Shevchenko Date: Fri Jan 15 16:59:18 2016 -0800 lib/vsprintf: refactor duplicate code to special_hex_number() special_hex_number() is a helper to print a fixed size type in a hex format with '0x' prefix, zero padding, and small letters. In the module we have already several copies of such code. Consolidate them under special_hex_number() helper. There are couple of differences though. It seems nobody cared about the output in case of CONFIG_KALLSYMS=n, when printing symbol address, because the asked field width is not enough to care last 2 characters in the string represantation of the pointer. Fixed here. The %pNF specifier used to be allowed with a specific field width, though there is neither any user of it nor mention the possibility in the documentation. Signed-off-by: Andy Shevchenko Cc: Rasmus Villemoes Cc: Joe Perches Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/vsprintf.c | 53 +++++++++++++++++++++++++++-------------------------- 1 file changed, 27 insertions(+), 26 deletions(-) commit 64c734be70c0091fa069baf5f2e58db54368f1b3 Author: Rasmus Villemoes Date: Fri Jan 15 16:59:15 2016 -0800 printk-formats.txt: remove unimplemented %pT %pT for task->comm has been proposed (several times, I think), but is not actually implemented. Remove it from printk-formats.txt and add it back if/when it gets implemented. Signed-off-by: Rasmus Villemoes Reviewed-by: Andy Shevchenko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/printk-formats.txt | 9 --------- 1 file changed, 9 deletions(-) commit fe22cd9b7c980b8b948ec85f034a8668c57ec867 Author: Aaron Conole Date: Fri Jan 15 16:59:12 2016 -0800 printk: help pr_debug and pr_devel to optimize out arguments Currently, pr_debug and pr_devel will not elide function call arguments appearing in calls to the no_printk for these macros. This is because all side effects must be honored before proceeding to the 0-value assignment in no_printk. The behavior is contrary to documentation found in the CodingStyle and the header file where these functions are declared. This patch corrects that behavior by shunting out the call to no_printk completely. The format string is still checked by gcc for correctness, but no code seems to be emitted in common cases. [akpm@linux-foundation.org: remove braces, per Joe] Fixes: 5264f2f75d86 ("include/linux/printk.h: use and neaten no_printk") Signed-off-by: Aaron Conole Reported-by: Dmitry Vyukov Cc: Joe Perches Cc: Jason Baron Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/printk.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 251c72345579b82df59eddfa184af53d6830959c Author: Rasmus Villemoes Date: Fri Jan 15 16:59:09 2016 -0800 lib/test_printf.c: test dentry printing Signed-off-by: Rasmus Villemoes Cc: Al Viro Cc: Andy Shevchenko Cc: Ingo Molnar Cc: Joe Perches Cc: Kees Cook Cc: Maurizio Lombardi Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/test_printf.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit 857cca4d565d85857597ccf0b6f72cf0f06e046c Author: Rasmus Villemoes Date: Fri Jan 15 16:59:06 2016 -0800 lib/test_printf.c: add test for large bitmaps Following "lib/vsprintf.c: expand field_width to 24 bits", let's add a test to see that we now actually support bitmaps with 65536 bits. Signed-off-by: Rasmus Villemoes Acked-by: Kees Cook Cc: Al Viro Cc: Andy Shevchenko Cc: Ingo Molnar Cc: Joe Perches Cc: Maurizio Lombardi Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/test_printf.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit b79a7db37d560c9e4b6fdb5314cb8b226a2d6567 Author: Rasmus Villemoes Date: Fri Jan 15 16:59:02 2016 -0800 lib/test_printf.c: account for kvasprintf tests These should also count as performed tests. Signed-off-by: Rasmus Villemoes Acked-by: Kees Cook Cc: Al Viro Cc: Andy Shevchenko Cc: Ingo Molnar Cc: Joe Perches Cc: Maurizio Lombardi Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/test_printf.c | 1 + 1 file changed, 1 insertion(+) commit 1ca8e8ebe991ff628d7e03ad4b5a11817a9655d5 Author: Rasmus Villemoes Date: Fri Jan 15 16:58:59 2016 -0800 lib/test_printf.c: add a few number() tests This adds a few tests to test_number, one of which serves to document another deviation from POSIX/C99 (printing 0 with an explicit precision of 0). Signed-off-by: Rasmus Villemoes Cc: Al Viro Cc: Andy Shevchenko Cc: Ingo Molnar Cc: Joe Perches Cc: Kees Cook Cc: Maurizio Lombardi Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/test_printf.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit f176eb4ce9d433184178d37a598ffdfe1cee1463 Author: Rasmus Villemoes Date: Fri Jan 15 16:58:56 2016 -0800 lib/test_printf.c: test precision quirks The kernel's printf doesn't follow the standards in a few corner cases (which are probably mostly irrelevant). Add tests that document the current behaviour. Signed-off-by: Rasmus Villemoes Cc: Al Viro Cc: Andy Shevchenko Cc: Ingo Molnar Cc: Joe Perches Cc: Kees Cook Cc: Maurizio Lombardi Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/test_printf.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) commit 331e4deb6dfdac50d3f9c4ccbc41b1427335e212 Author: Rasmus Villemoes Date: Fri Jan 15 16:58:53 2016 -0800 lib/test_printf.c: check for out-of-bound writes Add a few padding bytes on either side of the test buffer, and check that these (and the part of the buffer not used) are untouched by vsnprintf. Signed-off-by: Rasmus Villemoes Acked-by: Kees Cook Cc: Al Viro Cc: Andy Shevchenko Cc: Ingo Molnar Cc: Joe Perches Cc: Maurizio Lombardi Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/test_printf.c | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) commit fd0515d50ff33865d0f8cdd74510e8bd1aee88ac Author: Rasmus Villemoes Date: Fri Jan 15 16:58:50 2016 -0800 lib/test_printf.c: don't BUG BUG is a completely unnecessarily big hammer, and we're more likely to get the internal bug reported if we just pr_err() and ensure the test suite fails. Signed-off-by: Rasmus Villemoes Acked-by: Kees Cook Cc: Al Viro Cc: Andy Shevchenko Cc: Ingo Molnar Cc: Joe Perches Cc: Maurizio Lombardi Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/test_printf.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 8e2a2bfdb86ecb2421e3dd18d0fbbb42f2d943ad Author: Rasmus Villemoes Date: Fri Jan 15 16:58:47 2016 -0800 lib/kasprintf.c: add sanity check to kvasprintf kasprintf relies on being able to replay the formatting and getting the same result (in particular, the same length). This will almost always work, but it is possible that the object pointed to by a %s or %p argument changed under us (so we might get truncated output). Add a somewhat paranoid sanity check and let's see if it ever triggers. Signed-off-by: Rasmus Villemoes Cc: Al Viro Cc: Andy Shevchenko Cc: Ingo Molnar Cc: Joe Perches Cc: Kees Cook Cc: Maurizio Lombardi Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/kasprintf.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 4d72ba014b4b0913f448ccaaaa2e8b39c54e3738 Author: Rasmus Villemoes Date: Fri Jan 15 16:58:44 2016 -0800 lib/vsprintf.c: warn about too large precisions and field widths The field width is overloaded to pass some extra information for some %p extensions (e.g. #bits for %pb). But we might silently truncate the passed value when we stash it in struct printf_spec (see e.g. "lib/vsprintf.c: expand field_width to 24 bits"). Hopefully 23 value bits should now be enough for everybody, but if not, let's make some noise. Do the same for the precision. In both cases, clamping seems more sensible than truncating. While, according to POSIX, "A negative precision is taken as if the precision were omitted.", the kernel's printf has always treated that case as if the precision was 0, so we use that as lower bound. For the field width, the smallest representable value is actually -(1<<23), but a negative field width means 'set the LEFT flag and use the absolute value', so we want the absolute value to fit. Signed-off-by: Rasmus Villemoes Cc: Al Viro Cc: Andy Shevchenko Cc: Ingo Molnar Cc: Joe Perches Cc: Kees Cook Cc: Maurizio Lombardi Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/vsprintf.c | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) commit 1c7a8e622e84c9164dd665f5ad4879eac71bdc1e Author: Rasmus Villemoes Date: Fri Jan 15 16:58:41 2016 -0800 lib/vsprintf.c: help gcc make number() smaller One consequence of the reorganization of struct printf_spec to make field_width 24 bits was that number() gained about 180 bytes. Since spec is never passed to other functions, we can help gcc make number() lose most of that extra weight by using local variables for the field width and precision. Reviewed-by: Andy Shevchenko Signed-off-by: Rasmus Villemoes Cc: Al Viro Cc: Ingo Molnar Cc: Joe Perches Cc: Kees Cook Cc: Maurizio Lombardi Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/vsprintf.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) commit d048419311ff16ba420f4b1bdf93a3d74057b53a Author: Rasmus Villemoes Date: Fri Jan 15 16:58:37 2016 -0800 lib/vsprintf.c: expand field_width to 24 bits Maurizio Lombardi reported a problem [1] with the %pb extension: It doesn't work for sufficiently large bitmaps, since the size is stashed in the field_width field of the struct printf_spec, which is currently an s16. Concretely, this manifested itself in /sys/bus/pseudo/drivers/scsi_debug/map being empty, since the bitmap printer got a size of 0, which is the 16 bit truncation of the actual bitmap size. We do want to keep struct printf_spec at 8 bytes so that it can cheaply be passed by value. The qualifier field is only used for internal bookkeeping in format_decode, so we might as well use a local variable for that. This gives us an additional 8 bits, which we can then use for the field width. To stay in 8 bytes, we need to do a little rearranging and make the type member a bitfield as well. For consistency, change all the members to bit fields. gcc doesn't generate much worse code with these changes (in fact, bloat-o-meter says we save 300 bytes - which I think is a little surprising). I didn't find a BUILD_BUG/compiletime_assertion/... which would work outside function context, so for now I just open-coded it. [1] http://thread.gmane.org/gmane.linux.kernel/2034835 [akpm@linux-foundation.org: avoid open-coded BUILD_BUG_ON] Signed-off-by: Rasmus Villemoes Reported-by: Maurizio Lombardi Acked-by: Tejun Heo Cc: Al Viro Cc: Andy Shevchenko Cc: Ingo Molnar Cc: Joe Perches Cc: Kees Cook Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/vsprintf.c | 42 ++++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 20 deletions(-) commit 34fc8b9076254513e00607134792a1b67483d2cf Author: Rasmus Villemoes Date: Fri Jan 15 16:58:34 2016 -0800 lib/vsprintf.c: eliminate potential race in string() If the string corresponding to a %s specifier can change under us, we might end up copying a \0 byte to the output buffer. There might be callers who expect the output buffer to contain a genuine C string whose length is exactly the snprintf return value (assuming truncation hasn't happened or has been checked for). We can avoid this by only passing over the source string once, stopping the first time we meet a nul byte (or when we reach the given precision), and then letting widen_string() handle left/right space padding. As a small bonus, this code reuse also makes the generated code slightly smaller. Signed-off-by: Rasmus Villemoes Cc: Al Viro Cc: Andy Shevchenko Cc: Ingo Molnar Cc: Joe Perches Cc: Kees Cook Cc: Maurizio Lombardi Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/vsprintf.c | 28 +++++++++------------------- 1 file changed, 9 insertions(+), 19 deletions(-) commit 95508cfa10503bbe5adb78bd1b2b56a01ab3dd2d Author: Rasmus Villemoes Date: Fri Jan 15 16:58:31 2016 -0800 lib/vsprintf.c: move string() below widen_string() This is pure code movement, making sure the widen_string() helper is defined before the string() function. Signed-off-by: Rasmus Villemoes Cc: Al Viro Cc: Andy Shevchenko Cc: Ingo Molnar Cc: Joe Perches Cc: Kees Cook Cc: Maurizio Lombardi Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/vsprintf.c | 62 +++++++++++++++++++++++++++++----------------------------- 1 file changed, 31 insertions(+), 31 deletions(-) commit cfccde04e28d26e9f102e535b7358bf6cf3bc6fb Author: Rasmus Villemoes Date: Fri Jan 15 16:58:28 2016 -0800 lib/vsprintf.c: pull out padding code from dentry_name() Pull out the logic in dentry_name() which handles field width space padding, in preparation for reusing it from string(). Rename the widen() helper to move_right(), since it is used for handling the !(flags & LEFT) case. Signed-off-by: Rasmus Villemoes Cc: Al Viro Cc: Andy Shevchenko Cc: Ingo Molnar Cc: Joe Perches Cc: Kees Cook Cc: Maurizio Lombardi Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/vsprintf.c | 46 +++++++++++++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 15 deletions(-) commit 8d91f8b15361dfb438ab6eb3b319e2ded43458ff Author: Tejun Heo Date: Fri Jan 15 16:58:24 2016 -0800 printk: do cond_resched() between lines while outputting to consoles @console_may_schedule tracks whether console_sem was acquired through lock or trylock. If the former, we're inside a sleepable context and console_conditional_schedule() performs cond_resched(). This allows console drivers which use console_lock for synchronization to yield while performing time-consuming operations such as scrolling. However, the actual console outputting is performed while holding irq-safe logbuf_lock, so console_unlock() clears @console_may_schedule before starting outputting lines. Also, only a few drivers call console_conditional_schedule() to begin with. This means that when a lot of lines need to be output by console_unlock(), for example on a console registration, the task doing console_unlock() may not yield for a long time on a non-preemptible kernel. If this happens with a slow console devices, for example a serial console, the outputting task may occupy the cpu for a very long time. Long enough to trigger softlockup and/or RCU stall warnings, which in turn pile more messages, sometimes enough to trigger the next cycle of warnings incapacitating the system. Fix it by making console_unlock() insert cond_resched() between lines if @console_may_schedule. Signed-off-by: Tejun Heo Reported-by: Calvin Owens Acked-by: Jan Kara Cc: Dave Jones Cc: Kyle McMartin Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/console.h | 1 + kernel/panic.c | 3 +-- kernel/printk/printk.c | 35 ++++++++++++++++++++++++++++++++++- 3 files changed, 36 insertions(+), 3 deletions(-) commit 81cc26f2bd11ba4421a17a2d5cebe4bba206c239 Author: Thierry Reding Date: Fri Jan 15 16:58:21 2016 -0800 printk: only unregister boot consoles when necessary Boot consoles are typically replaced by proper consoles during the boot process. This can be problematic if the boot console data is part of the init section that is reclaimed late during boot. If the proper console does not register before this point in time, the boot console will need to be removed (so that the freed memory is not accessed), leaving the system without output for some time. There are various reasons why the proper console may not register early enough, such as deferred probe or the driver being a loadable module. If that happens, there is some amount of time where no console messages are visible to the user, which in turn can mean that they won't see crashes or other potentially useful information. To avoid this situation, only remove the boot console when it resides in the init section. Code exists to replace the boot console by the proper console when it is registered, keeping a seamless transition between the boot and proper consoles. Signed-off-by: Thierry Reding Cc: Arnd Bergmann Cc: Greg Kroah-Hartman Cc: Joe Perches Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/printk/printk.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) commit 979559362516bb0f5424505c607210ac054e30ae Author: Thierry Reding Date: Fri Jan 15 16:58:18 2016 -0800 asm/sections: add helpers to check for section data Add a helper to check if an object (given an address and a size) is part of a section (given beginning and end addresses). For convenience, also provide a helper that performs this check for __init data using the __init_begin and __init_end limits. Signed-off-by: Thierry Reding Cc: Arnd Bergmann Cc: Greg Kroah-Hartman Cc: Joe Perches Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/asm-generic/sections.h | 65 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) commit b493c34309cb4aebc44272897067ebf54cb07271 Author: Andrew Morton Date: Fri Jan 15 16:58:16 2016 -0800 kernel/stop_machine.c: remove CONFIG_SMP dependencies stop_machine.o is only built if CONFIG_SMP=y, so this ifdef always evaluates to true. [akpm@linux-foundation.org: remove now-unneeded ifdef] Reported-by: Valentin Rothberg Cc: Chris Wilson Cc: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/stop_machine.c | 4 ---- 1 file changed, 4 deletions(-) commit b2113a417c4f414eb19c11a6a72abedabd81dc1b Author: Riku Voipio Date: Fri Jan 15 16:58:13 2016 -0800 uselib: default depending if libc5 was used uselib hasn't been used since libc5; glibc does not use it. Deprecate uselib a bit more, by making the default y only if libc5 was widely used on the plaform. This makes arm64 kernel built with defconfig slightly smaller bloat-o-meter: add/remove: 0/3 grow/shrink: 0/2 up/down: 0/-1390 (-1390) function old new delta kernel_config_data 18164 18162 -2 uselib_flags 20 - -20 padzero 216 192 -24 sys_uselib 380 - -380 load_elf_library 964 - -964 Signed-off-by: Riku Voipio Reviewed-by: Josh Triplett Acked-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds init/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dfffa587a6bcd84f2087f88e11600b0e8b0aa1ee Author: Viresh Kumar Date: Fri Jan 15 16:58:10 2016 -0800 err.h: add (missing) unlikely() to IS_ERR_OR_NULL() IS_ERR_VALUE() already contains it and so we need to add this only to the !ptr check. That will allow users of IS_ERR_OR_NULL(), to not add this compiler flag. Signed-off-by: Viresh Kumar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/err.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit da48d094ce5d7c7dcdad9011648a81c42fd1c2ef Author: Will Deacon Date: Fri Jan 15 16:58:07 2016 -0800 Kconfig: remove HAVE_LATENCYTOP_SUPPORT As illustrated by commit a3afe70b83fd ("[S390] latencytop s390 support."), HAVE_LATENCYTOP_SUPPORT is defined by an architecture to advertise an implementation of save_stack_trace_tsk. However, as of 9212ddb5eada ("stacktrace: provide save_stack_trace_tsk() weak alias") a dummy implementation is provided if STACKTRACE=y. Given that LATENCYTOP already depends on STACKTRACE_SUPPORT and selects STACKTRACE, we can remove HAVE_LATENCYTOP_SUPPORT altogether. Signed-off-by: Will Deacon Acked-by: Heiko Carstens Cc: Vineet Gupta Cc: Russell King Cc: James Hogan Cc: Michal Simek Cc: Helge Deller Acked-by: Michael Ellerman Cc: "David S. Miller" Cc: Guan Xuetao Cc: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/arc/Kconfig | 3 --- arch/arm/Kconfig | 5 ----- arch/metag/Kconfig | 3 --- arch/microblaze/Kconfig | 3 --- arch/parisc/Kconfig | 3 --- arch/powerpc/Kconfig | 3 --- arch/s390/Kconfig | 3 --- arch/sh/Kconfig | 3 --- arch/sparc/Kconfig | 4 ---- arch/unicore32/Kconfig | 3 --- arch/x86/Kconfig | 3 --- lib/Kconfig.debug | 1 - 12 files changed, 37 deletions(-) commit 3f1bfd94136ecb85889e6e22893c08e8a9c697c2 Author: Yaowei Bai Date: Fri Jan 15 16:58:04 2016 -0800 include/linux/kdev_t.h: remove new_valid_dev() As all new_valid_dev() checks have been removed it's time to drop new_valid_dev() itself. No functional change. Signed-off-by: Yaowei Bai Cc: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/kdev_t.h | 5 ----- 1 file changed, 5 deletions(-) commit 4c416f42ee961cbea1e1d9de27a7acb571e62622 Author: Yaowei Bai Date: Fri Jan 15 16:58:01 2016 -0800 fs/stat.c: drop the last new_valid_dev check New_valid_dev() always returns true, so that's unnecessary to perform new_valid_dev() checks in some filesystems. Most checks of new_valid_dev() have been removed so let's drop this last one and then we can remove new_valid_dev() from the source code. No functional change. Signed-off-by: Yaowei Bai Cc: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/stat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8f57e4d930d48217268315898212518d4d3e0773 Author: Michal Nazarewicz Date: Fri Jan 15 16:57:58 2016 -0800 include/linux/kernel.h: change abs() macro so it uses consistent return type Rewrite abs() so that its return type does not depend on the architecture and no unexpected type conversion happen inside of it. The only conversion is from unsigned to signed type. char is left as a return type but treated as a signed type regradless of it's actual signedness. With the old version, int arguments were promoted to long and depending on architecture a long argument might result in s64 or long return type (which may or may not be the same). This came after some back and forth with Nicolas. The current macro has different return type (for the same input type) depending on architecture which might be midly iritating. An alternative version would promote to int like so: #define abs(x) __abs_choose_expr(x, long long, \ __abs_choose_expr(x, long, \ __builtin_choose_expr( \ sizeof(x) <= sizeof(int), \ ({ int __x = (x); __x<0?-__x:__x; }), \ ((void)0)))) I have no preference but imagine Linus might. :] Nicolas argument against is that promoting to int causes iconsistent behaviour: int main(void) { unsigned short a = 0, b = 1, c = a - b; unsigned short d = abs(a - b); unsigned short e = abs(c); printf("%u %u\n", d, e); // prints: 1 65535 } Then again, no sane person expects consistent behaviour from C integer arithmetic. ;) Note: __builtin_types_compatible_p(unsigned char, char) is always false, and __builtin_types_compatible_p(signed char, char) is also always false. Signed-off-by: Michal Nazarewicz Reviewed-by: Nicolas Pitre Cc: Srinivas Pandruvada Cc: Wey-Yi Guy Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/iio/industrialio-core.c | 9 +++---- drivers/net/wireless/intel/iwlwifi/dvm/calib.c | 2 +- include/linux/kernel.h | 36 +++++++++++++------------- 3 files changed, 23 insertions(+), 24 deletions(-) commit b8a0255db958b8f70c5267dda152e93b6fda1778 Author: Vasily Kulikov Date: Fri Jan 15 16:57:55 2016 -0800 include/linux/poison.h: use POISON_POINTER_DELTA for poison pointers TIMER_ENTRY_STATIC and TAIL_MAPPING are defined as poison pointers which should point to nowhere. Redefine them using POISON_POINTER_DELTA arithmetics to make sure they really point to non-mappable area declared by the target architecture. Signed-off-by: Vasily Kulikov Acked-by: Thomas Gleixner Cc: Solar Designer Cc: "Kirill A. Shutemov" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/poison.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b0e551313ebde17764f3a5ed273df524d1e7e690 Author: Helge Deller Date: Thu Nov 26 21:14:02 2015 +0100 parisc: Protect huge page pte changes with spinlocks PA-RISC doesn't have atomic instructions to modify page table entries, so it takes spinlock in the TLB handler and modifies the page table entry non-atomically. If you modify the page table entry without the spinlock, you may race with TLB handler on another CPU and your modification may be lost. Protect against that with usage of purge_tlb_start() and purge_tlb_end() which handles the TLB spinlock. Signed-off-by: Helge Deller Cc: stable@vger.kernel.org # v4.4 arch/parisc/include/asm/hugetlb.h | 20 +++---------- arch/parisc/mm/hugetlbpage.c | 60 +++++++++++++++++++++++++++++++-------- 2 files changed, 52 insertions(+), 28 deletions(-) commit 8931f8e02979e4180566907019d432527c80abf7 Author: Jianqun xu Date: Thu Jan 7 17:18:07 2016 +0800 clk: rockchip: rk3368: fix some clock gates Reference to the Rockchip RK3368 TRM v1.1, some clock gates need to be updated. Signed-off-by: Jianqun xu Signed-off-by: Caesar Wang Signed-off-by: Heiko Stuebner drivers/clk/rockchip/clk-rk3368.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit 3d667920bc8fc0c3b39e4e740352d9367fa4916e Author: Xing Zheng Date: Thu Jan 7 20:17:36 2016 +0800 clk: rockchip: rk3036: rename emac ext source clock There is only support rmii in the RK3036, so we should use the correct ext clock name as described in the TRM. Signed-off-by: Xing Zheng [update dt-binding document as well] Signed-off-by: Heiko Stuebner Documentation/devicetree/bindings/clock/rockchip,rk3036-cru.txt | 2 +- drivers/clk/rockchip/clk-rk3036.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit c40519350e1d7db03e35e57509352c55948648ba Author: Xing Zheng Date: Thu Jan 7 20:17:35 2016 +0800 clk: rockchip: rk3036: fix the div offset for emac clock Due to reference to old version TRM, there are incorrect emac clock node. The SEL_21_9 is used for the parent div, the SEL_21_4 is used for the child div. Signed-off-by: Xing Zheng Signed-off-by: Heiko Stuebner drivers/clk/rockchip/clk-rk3036.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b29de2de5049e064d172862b1feeddeb650c3ee8 Author: Xing Zheng Date: Thu Jan 7 20:17:34 2016 +0800 clk: rockchip: rk3036: fix uarts clock error Due to a copy-paste error the uart1 and uart2 clock div set incorrect, fix it. Signed-off-by: Xing Zheng Signed-off-by: Heiko Stuebner drivers/clk/rockchip/clk-rk3036.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 99222c9e4de7feb22c93b19a92b35fcdad73ed42 Author: Xing Zheng Date: Thu Jan 7 20:17:33 2016 +0800 clk: rockchip: rk3036: fix the FLAGs for clock mux The DFLAGS are used for the clock dividers, the CLKSEL_CON flags of COMPOSITE_NODIV type should be MFLAGS. Signed-off-by: Xing Zheng Signed-off-by: Heiko Stuebner drivers/clk/rockchip/clk-rk3036.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 42eff6a617e23b691f8e4467f4687ed7245a92db Author: Sven Eckelmann Date: Tue Jan 5 12:06:20 2016 +0100 batman-adv: Drop immediate orig_node free function It is not allowed to free the memory of an object which is part of a list which is protected by rcu-read-side-critical sections without making sure that no other context is accessing the object anymore. This usually happens by removing the references to this object and then waiting until the rcu grace period is over and no one (allowedly) accesses it anymore. But the _now functions ignore this completely. They free the object directly even when a different context still tries to access it. This has to be avoided and thus these functions must be removed and all functions have to use batadv_orig_node_free_ref. Fixes: 72822225bd41 ("batman-adv: Fix rcu_barrier() miss due to double call_rcu() in TT code") Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/originator.c | 11 ----------- net/batman-adv/originator.h | 1 - net/batman-adv/translation-table.c | 28 +++++++++++++--------------- 3 files changed, 13 insertions(+), 27 deletions(-) commit b4d922cfc9c08318eeb77d53b7633740e6b0efb0 Author: Sven Eckelmann Date: Tue Jan 5 12:06:25 2016 +0100 batman-adv: Drop immediate batadv_hard_iface free function It is not allowed to free the memory of an object which is part of a list which is protected by rcu-read-side-critical sections without making sure that no other context is accessing the object anymore. This usually happens by removing the references to this object and then waiting until the rcu grace period is over and no one (allowedly) accesses it anymore. But the _now functions ignore this completely. They free the object directly even when a different context still tries to access it. This has to be avoided and thus these functions must be removed and all functions have to use batadv_hardif_free_ref. Fixes: 89652331c00f ("batman-adv: split tq information in neigh_node struct") Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/hard-interface.h | 12 ------------ net/batman-adv/originator.c | 15 +++++++-------- 2 files changed, 7 insertions(+), 20 deletions(-) commit ae3e1e36e3cb6c686a7a2725af20ca86aa46d62a Author: Sven Eckelmann Date: Tue Jan 5 12:06:24 2016 +0100 batman-adv: Drop immediate neigh_ifinfo free function It is not allowed to free the memory of an object which is part of a list which is protected by rcu-read-side-critical sections without making sure that no other context is accessing the object anymore. This usually happens by removing the references to this object and then waiting until the rcu grace period is over and no one (allowedly) accesses it anymore. But the _now functions ignore this completely. They free the object directly even when a different context still tries to access it. This has to be avoided and thus these functions must be removed and all functions have to use batadv_neigh_ifinfo_free_ref. Fixes: 89652331c00f ("batman-adv: split tq information in neigh_node struct") Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/originator.c | 34 ++++++++++------------------------ 1 file changed, 10 insertions(+), 24 deletions(-) commit f63896928760a7c3ce9c5d3f882ba9f10ae73ad0 Author: Sven Eckelmann Date: Tue Jan 5 12:06:23 2016 +0100 batman-adv: Drop immediate batadv_hardif_neigh_node free function It is not allowed to free the memory of an object which is part of a list which is protected by rcu-read-side-critical sections without making sure that no other context is accessing the object anymore. This usually happens by removing the references to this object and then waiting until the rcu grace period is over and no one (allowedly) accesses it anymore. But the _now functions ignore this completely. They free the object directly even when a different context still tries to access it. This has to be avoided and thus these functions must be removed and all functions have to use batadv_hardif_neigh_free_ref. Fixes: cef63419f7db ("batman-adv: add list of unique single hop neighbors per hard-interface") Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/originator.c | 46 +++++++++++++-------------------------------- 1 file changed, 13 insertions(+), 33 deletions(-) commit 2baa753c276f27f8e844637561ad597867aa6fb6 Author: Sven Eckelmann Date: Tue Jan 5 12:06:22 2016 +0100 batman-adv: Drop immediate batadv_neigh_node free function It is not allowed to free the memory of an object which is part of a list which is protected by rcu-read-side-critical sections without making sure that no other context is accessing the object anymore. This usually happens by removing the references to this object and then waiting until the rcu grace period is over and no one (allowedly) accesses it anymore. But the _now functions ignore this completely. They free the object directly even when a different context still tries to access it. This has to be avoided and thus these functions must be removed and all functions have to use batadv_neigh_node_free_ref. Fixes: 89652331c00f ("batman-adv: split tq information in neigh_node struct") Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/originator.c | 33 ++++++++++----------------------- 1 file changed, 10 insertions(+), 23 deletions(-) commit deed96605f5695cb945e0b3d79429581857a2b9d Author: Sven Eckelmann Date: Tue Jan 5 12:06:21 2016 +0100 batman-adv: Drop immediate batadv_orig_ifinfo free function It is not allowed to free the memory of an object which is part of a list which is protected by rcu-read-side-critical sections without making sure that no other context is accessing the object anymore. This usually happens by removing the references to this object and then waiting until the rcu grace period is over and no one (allowedly) accesses it anymore. But the _now functions ignore this completely. They free the object directly even when a different context still tries to access it. This has to be avoided and thus these functions must be removed and all functions have to use batadv_orig_ifinfo_free_ref. Fixes: 7351a4822d42 ("batman-adv: split out router from orig_node") Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/originator.c | 59 ++++++++++++++++++++++++--------------------- 1 file changed, 31 insertions(+), 28 deletions(-) commit 44e8e7e91d6c7c7ab19688750f7257292640d1a0 Author: Sven Eckelmann Date: Tue Jan 5 12:06:19 2016 +0100 batman-adv: Avoid recursive call_rcu for batadv_nc_node The batadv_nc_node_free_ref function uses call_rcu to delay the free of the batadv_nc_node object until no (already started) rcu_read_lock is enabled anymore. This makes sure that no context is still trying to access the object which should be removed. But batadv_nc_node also contains a reference to orig_node which must be removed. The reference drop of orig_node was done in the call_rcu function batadv_nc_node_free_rcu but should actually be done in the batadv_nc_node_release function to avoid nested call_rcus. This is important because rcu_barrier (e.g. batadv_softif_free or batadv_exit) will not detect the inner call_rcu as relevant for its execution. Otherwise this barrier will most likely be inserted in the queue before the callback of the first call_rcu was executed. The caller of rcu_barrier will therefore continue to run before the inner call_rcu callback finished. Fixes: d56b1705e28c ("batman-adv: network coding - detect coding nodes and remove these after timeout") Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/network-coding.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) commit 63b399272294e7a939cde41792dca38c549f0484 Author: Sven Eckelmann Date: Thu Jan 14 15:28:19 2016 +0100 batman-adv: Avoid recursive call_rcu for batadv_bla_claim The batadv_claim_free_ref function uses call_rcu to delay the free of the batadv_bla_claim object until no (already started) rcu_read_lock is enabled anymore. This makes sure that no context is still trying to access the object which should be removed. But batadv_bla_claim also contains a reference to backbone_gw which must be removed. The reference drop of backbone_gw was done in the call_rcu function batadv_claim_free_rcu but should actually be done in the batadv_claim_release function to avoid nested call_rcus. This is important because rcu_barrier (e.g. batadv_softif_free or batadv_exit) will not detect the inner call_rcu as relevant for its execution. Otherwise this barrier will most likely be inserted in the queue before the callback of the first call_rcu was executed. The caller of rcu_barrier will therefore continue to run before the inner call_rcu callback finished. Fixes: 23721387c409 ("batman-adv: add basic bridge loop avoidance code") Signed-off-by: Sven Eckelmann Acked-by: Simon Wunderlich Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/bridge_loop_avoidance.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit 9d0be85d4e2cfa2519ae16efe7ff4a7150c43c0b Author: Jonathan Cameron Date: Fri Jan 1 18:05:34 2016 +0000 iio:adc:ti_am335x_adc Fix buffered mode by identifying as software buffer. Whilst this part has a hardware buffer, the identifcation that IIO cares about is the userspace facing end. It this case we push individual elements from the hardware fifo into the software interface (specifically a kfifo) rather than providing direct reads through to a hardware buffer (as we still do in the sca3000 for example). Technically the original specification as a hardware buffer could be considered wrong, but it didn't matter until the patch listed below. Result is that any attempt to enable the buffer will return -EINVAL Fixes: 225d59adf1c8 ("iio: Specify supported modes for buffers") Cc: Signed-off-by: Jonathan Cameron drivers/iio/adc/ti_am335x_adc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fa34e6dd44d7c02c8a8468ce4a52a7506f907bef Author: Gabriele Mazzotta Date: Tue Jan 12 16:21:39 2016 +0100 iio: light: acpi-als: Report data as processed As per the ACPI specification (Revision 5.0) [1], the data coming from the sensor represent the ambient light illuminance reading expressed in lux. So use IIO_CHAN_INFO_PROCESSED to signify that the data are pre-processed. However, to keep backward ABI compatibility, the IIO_CHAN_INFO_RAW bit is not removed. [1] http://www.acpi.info/DOWNLOADS/ACPIspec50.pdf This issue has also been responsible for at least one userspace bug report hence marking what is a small semantic fix really for stable. [2] https://github.com/hadess/iio-sensor-proxy/issues/46 Signed-off-by: Gabriele Mazzotta Cc: Signed-off-by: Jonathan Cameron drivers/iio/light/acpi-als.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 6c3f5aef1159a278b54642ebc0bbb5cdab7630cf Author: Ivan Vecera Date: Fri Jan 15 13:45:28 2016 +0100 bna: fix Rx data corruption with VLAN stripping enabled and MTU > 4096 The multi-buffer Rx mode implemented in the past introduced a regression that causes a data corruption for received VLAN traffic when VLAN tag stripping is enabled. This mode is supported only be newer chipsets (1860) and is enabled when MTU > 4096. When this mode is enabled Rx queue contains buffers with fixed size 2048 bytes. Any incoming packet larger than 2048 is divided into multiple buffers that are attached as skb frags in polling routine. The driver assumes that all buffers associated with a packet except the last one is fully used (e.g. packet with size 5000 are divided into 3 buffers 2048 + 2048 + 904 bytes) and ignores true size reported in completions. This assumption is usually true but not when VLAN packet is received and VLAN tag stripping is enabled. In this case the first buffer is 2044 bytes long but as the driver always assumes 2048 bytes then 4 extra random bytes are included between the first and the second frag. Additionally the driver sets checksum as correct so the packet is properly processed by the core. The driver needs to check the size of used space in each Rx buffer reported by FW and not blindly use the fixed value. Cc: Rasesh Mody Signed-off-by: Ivan Vecera Reviewed-by: Rasesh Mody Signed-off-by: David S. Miller drivers/net/ethernet/brocade/bna/bnad.c | 37 +++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 13 deletions(-) commit ece6267878aed4eadff766112f1079984315d8c8 Merge: d45187a 3da834e Author: Linus Torvalds Date: Fri Jan 15 18:21:28 2016 -0800 Merge tag 'clk-for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux Pull clk framework updates from Michael Turquette: "The clk framework and driver changes for 4.5 look pretty typical. The bulk of the changes are to clk controller drivers, though some improvements to the core and some re-usable blocks/templates also received some love. In this past cycle the clk maintainers developed a good workflow for handling the common case of patch submissions containing a new drivers, new shared Device Tree header and a new Device Tree binding description. This requires coordination with the Device Tree maintainers and with the architecture maintainers (typically the arm-soc tree in our case). This explains the increase in changes to include/dt-bindings/... and to Documentation/devicetree/bindings/clock/... coming from the clk tree. The same commits can be expected to come through those trees on occasion, through the use of shared, immutable branches" * tag 'clk-for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (125 commits) clk: remove duplicated COMMON_CLK_NXP record from clk/Kconfig clk: fix clk-gpio.c with optional clock= DT property clk: rockchip: fix section mismatches with new child-clocks clk: gpio: handle error codes for of_clk_get_parent_count() clk: gpio: fix memory leak clk: shmobile: r8a7795: Add SATA0 clock clk: bcm2835: Add PWM clock support clk: bcm2835: Support for clock parent selection clk: bcm2835: add a round up ability to the clock divisor clk: lpc32xx: add common clock framework driver clk: lpc18xx: add NXP specific COMMON_CLK_NXP configuration symbol dt-bindings: clock: add NXP LPC32xx clock list for consumers dt-bindings: clock: add description of LPC32xx USB clock controller dt-bindings: clock: add description of LPC32xx clock controller clk: rockchip: rk3036: include downstream muxes into fractional dividers clk: add flag for clocks that need to be enabled on rate changes clk: rockchip: Allow the RK3288 SPDIF clocks to change their parent clk: rockchip: include downstream muxes into fractional dividers clk: rockchip: handle mux dependency of fractional dividers clk: bcm2835: Add a driver for the auxiliary peripheral clock gates. ... commit d45187aaf0e256d23da2f7694a7826524499aa31 Merge: 4e5448a e5b6c15 Author: Linus Torvalds Date: Fri Jan 15 18:12:18 2016 -0800 Merge branch 'dmi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging Pull dmi updates from Jean Delvare. * 'dmi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging: firmware: dmi_scan: Save SMBIOS Type 9 System Slots firmware: dmi_scan: Fix dmi_find_device description firmware: dmi_scan: Clarify dmi_save_extended_devices firmware: dmi_scan: Optimize dmi_save_extended_devices commit 6611d8d76132f86faa501de9451a89bf23fb2371 Author: Martijn Coenen Date: Fri Jan 15 16:57:49 2016 -0800 memcg: only free spare array when readers are done A spare array holding mem cgroup threshold events is kept around to make sure we can always safely deregister an event and have an array to store the new set of events in. In the scenario where we're going from 1 to 0 registered events, the pointer to the primary array containing 1 event is copied to the spare slot, and then the spare slot is freed because no events are left. However, it is freed before calling synchronize_rcu(), which means readers may still be accessing threshold->primary after it is freed. Fixed by only freeing after synchronize_rcu(). Signed-off-by: Martijn Coenen Cc: Johannes Weiner Acked-by: Michal Hocko Cc: Vladimir Davydov Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memcontrol.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 98fd1ef4241ce0c700a174dd3e33c643b4774690 Author: Naoya Horiguchi Date: Fri Jan 15 16:57:46 2016 -0800 mm: soft-offline: exit with failure for non anonymous thp Currently memory_failure() doesn't handle non anonymous thp case, because we can hardly expect the error handling to be successful, and it can just hit some corner case which results in BUG_ON or something severe like that. This is also the case for soft offline code, so let's make it in the same way. Orignal code has a MF_COUNT_INCREASED check before put_hwpoison_page(), but it's unnecessary because get_any_page() is already called when running on this code, which takes a refcount of the target page regardress of the flag. So this patch also removes it. [akpm@linux-foundation.org: fix build] Signed-off-by: Naoya Horiguchi Cc: Andi Kleen Cc: "Kirill A. Shutemov" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memory-failure.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit acc14dc4bd484f1fc8c227dd9fc2a1e592312d2b Author: Naoya Horiguchi Date: Fri Jan 15 16:57:43 2016 -0800 mm: soft-offline: clean up soft_offline_page() soft_offline_page() has some deeply indented code, that's the sign of demand for cleanup. So let's do this. No functionality change. Signed-off-by: Naoya Horiguchi Cc: Andi Kleen Cc: "Kirill A. Shutemov" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memory-failure.c | 78 ++++++++++++++++++++++++++++++++--------------------- 1 file changed, 47 insertions(+), 31 deletions(-) commit 4aae8d1c051ea00b456da6811bc36d1f69de5445 Author: Mike Kravetz Date: Fri Jan 15 16:57:40 2016 -0800 mm/hugetlbfs: unmap pages if page fault raced with hole punch Page faults can race with fallocate hole punch. If a page fault happens between the unmap and remove operations, the page is not removed and remains within the hole. This is not the desired behavior. The race is difficult to detect in user level code as even in the non-race case, a page within the hole could be faulted back in before fallocate returns. If userfaultfd is expanded to support hugetlbfs in the future, this race will be easier to observe. If this race is detected and a page is mapped, the remove operation (remove_inode_hugepages) will unmap the page before removing. The unmap within remove_inode_hugepages occurs with the hugetlb_fault_mutex held so that no other faults will be processed until the page is removed. The (unmodified) routine hugetlb_vmdelete_list was moved ahead of remove_inode_hugepages to satisfy the new reference. [akpm@linux-foundation.org: move hugetlb_vmdelete_list()] Signed-off-by: Mike Kravetz Cc: Hugh Dickins Cc: Naoya Horiguchi Cc: Hillf Danton Cc: Davidlohr Bueso Cc: Dave Hansen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/hugetlbfs/inode.c | 144 +++++++++++++++++++++++++++------------------------ 1 file changed, 75 insertions(+), 69 deletions(-) commit 9aacdd354d197ad64685941b36d28ea20ab88757 Author: Mike Kravetz Date: Fri Jan 15 16:57:37 2016 -0800 fs/hugetlbfs/inode.c: fix bugs in hugetlb_vmtruncate_list() Hillf Danton noticed bugs in the hugetlb_vmtruncate_list routine. The argument end is of type pgoff_t. It was being converted to a vaddr offset and passed to unmap_hugepage_range. However, end was also being used as an argument to the vma_interval_tree_foreach controlling loop. In addition, the conversion of end to vaddr offset was incorrect. hugetlb_vmtruncate_list is called as part of a file truncate or fallocate hole punch operation. When truncating a hugetlbfs file, this bug could prevent some pages from being unmapped. This is possible if there are multiple vmas mapping the file, and there is a sufficiently sized hole between the mappings. The size of the hole between two vmas (A,B) must be such that the starting virtual address of B is greater than (ending virtual address of A << PAGE_SHIFT). In this case, the pages in B would not be unmapped. If pages are not properly unmapped during truncate, the following BUG is hit: kernel BUG at fs/hugetlbfs/inode.c:428! In the fallocate hole punch case, this bug could prevent pages from being unmapped as in the truncate case. However, for hole punch the result is that unmapped pages will not be removed during the operation. For hole punch, it is also possible that more pages than desired will be unmapped. This unnecessary unmapping will cause page faults to reestablish the mappings on subsequent page access. Fixes: 1bfad99ab (" hugetlbfs: hugetlb_vmtruncate_list() needs to take a range")Reported-by: Hillf Danton Signed-off-by: Mike Kravetz Cc: Hugh Dickins Cc: Naoya Horiguchi Cc: Davidlohr Bueso Cc: Dave Hansen Cc: [4.3] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/hugetlbfs/inode.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) commit 9f8bdb3f3dad3f8f20df3e8903316cd5bb1c408e Author: Hugh Dickins Date: Fri Jan 15 16:57:34 2016 -0800 mm: make swapoff more robust against soft dirty Both s390 and powerpc have hit the issue of swapoff hanging, when CONFIG_HAVE_ARCH_SOFT_DIRTY and CONFIG_MEM_SOFT_DIRTY ifdefs were not quite as x86_64 had them. I think it would be much clearer if HAVE_ARCH_SOFT_DIRTY was just a Kconfig option set by architectures to determine whether the MEM_SOFT_DIRTY option should be offered, and the actual code depend upon CONFIG_MEM_SOFT_DIRTY alone. But won't embark on that change myself: instead make swapoff more robust, by using pte_swp_clear_soft_dirty() on each pte it encounters, without an explicit #ifdef CONFIG_MEM_SOFT_DIRTY. That being a no-op, whether the bit in question is defined as 0 or the asm-generic fallback is used, unless soft dirty is fully turned on. Why "maybe" in maybe_same_pte()? Rename it pte_same_as_swp(). Signed-off-by: Hugh Dickins Reviewed-by: Aneesh Kumar K.V Acked-by: Cyrill Gorcunov Cc: Laurent Dufour Cc: Michael Ellerman Cc: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/swapfile.c | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) commit 88f306b68cbb36e500da4b9601b2e3d13dd683c4 Author: Kirill A. Shutemov Date: Fri Jan 15 16:57:31 2016 -0800 mm: fix locking order in mm_take_all_locks() Dmitry Vyukov has reported[1] possible deadlock (triggered by his syzkaller fuzzer): Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&hugetlbfs_i_mmap_rwsem_key); lock(&mapping->i_mmap_rwsem); lock(&hugetlbfs_i_mmap_rwsem_key); lock(&mapping->i_mmap_rwsem); Both traces points to mm_take_all_locks() as a source of the problem. It doesn't take care about ordering or hugetlbfs_i_mmap_rwsem_key (aka mapping->i_mmap_rwsem for hugetlb mapping) vs. i_mmap_rwsem. huge_pmd_share() does memory allocation under hugetlbfs_i_mmap_rwsem_key and allocator can take i_mmap_rwsem if it hit reclaim. So we need to take i_mmap_rwsem from all hugetlb VMAs before taking i_mmap_rwsem from rest of VMAs. The patch also documents locking order for hugetlbfs_i_mmap_rwsem_key. [1] http://lkml.kernel.org/r/CACT4Y+Zu95tBs-0EvdiAKzUOsb4tczRRfCRTpLr4bg_OP9HuVg@mail.gmail.com Signed-off-by: Kirill A. Shutemov Reported-by: Dmitry Vyukov Reviewed-by: Michal Hocko Cc: Peter Zijlstra Cc: Andrea Arcangeli Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/hugetlbfs/inode.c | 2 +- mm/mmap.c | 25 ++++++++++++++++++++----- mm/rmap.c | 31 ++++++++++++++++--------------- 3 files changed, 37 insertions(+), 21 deletions(-) commit d645fc0eabbe783d34a14fbb31768ad8571f0ad4 Author: Liang Chen Date: Fri Jan 15 16:57:28 2016 -0800 mm: mempolicy: skip non-migratable VMAs when setting MPOL_MF_LAZY MPOL_MF_LAZY is not visible from userspace since a720094ded8c ("mm: mempolicy: Hide MPOL_NOOP and MPOL_MF_LAZY from userspace for now"), but it should still skip non-migratable VMAs such as VM_IO, VM_PFNMAP, and VM_HUGETLB VMAs, and avoid useless overhead of minor faults. Signed-off-by: Liang Chen Signed-off-by: Gavin Guo Acked-by: Rik van Riel Cc: Mel Gorman Cc: Andi Kleen Cc: Vlastimil Babka Cc: David Rientjes Cc: Naoya Horiguchi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/mempolicy.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f16f091b5916857de2aa36724a15d4bd5e16e9d8 Author: Alexander Kuleshov Date: Fri Jan 15 16:57:25 2016 -0800 mm/page_alloc.c: remove unused struct zone *z variable Remove unused struct zone *z variable which appeared in 86051ca5eaf5 ("mm: fix usemap initialization"). Signed-off-by: Alexander Kuleshov Acked-by: Kirill A. Shutemov Acked-by: Vlastimil Babka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/page_alloc.c | 2 -- 1 file changed, 2 deletions(-) commit 7f43add451d2a0d235074b72d254ae266a6a023f Author: Wang Xiaoqiang Date: Fri Jan 15 16:57:22 2016 -0800 mm/mlock.c: change can_do_mlock return value type to boolean Since can_do_mlock only return 1 or 0, so make it boolean. No functional change. [akpm@linux-foundation.org: update declaration in mm.h] Signed-off-by: Wang Xiaoqiang Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/mm.h | 2 +- mm/mlock.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) commit 61e165578dc7ec4ee044e9ca581a315d9ca9c656 Author: Wang Xiaoqiang Date: Fri Jan 15 16:57:19 2016 -0800 mm/vmalloc.c: use macro IS_ALIGNED to judge the aligment Just cleanup, no functional change. Signed-off-by: Wang Xiaoqiang Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/vmalloc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 654a0dd0953fcd87ff7bbb468fb889f0eb67df33 Author: Tejun Heo Date: Fri Jan 15 16:57:16 2016 -0800 cgroup, memcg, writeback: drop spurious rcu locking around mem_cgroup_css_from_page() In earlier versions, mem_cgroup_css_from_page() could return non-root css on a legacy hierarchy which can go away and required rcu locking; however, the eventual version simply returns the root cgroup if memcg is on a legacy hierarchy and thus doesn't need rcu locking around or in it. Remove spurious rcu lockings. Signed-off-by: Tejun Heo Reported-by: Johannes Weiner Cc: Michal Hocko Cc: Vladimir Davydov Cc: Jens Axboe Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/fs-writeback.c | 2 -- mm/memcontrol.c | 3 --- 2 files changed, 5 deletions(-) commit 6f8d2b8a262c6b71e1464d488f41cccf9aafbc07 Author: Wang Xiaoqiang Date: Fri Jan 15 16:57:13 2016 -0800 mm/page_isolation: do some cleanup in "undo_isolate_page_range" Use "IS_ALIGNED" to judge the alignment, rather than directly judging. Signed-off-by: Wang Xiaoqiang Cc: Naoya Horiguchi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/page_isolation.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 036fbb21de7c74d5637bf41110c47005363f3000 Author: Kirill A. Shutemov Date: Fri Jan 15 16:57:11 2016 -0800 memblock: fix section mismatch allmodconfig produces following warning for me: WARNING: vmlinux.o(.text.unlikely+0x10314): Section mismatch in reference from the function movable_node_is_enabled() to the variable .meminit.data:movable_node_enabled The function movable_node_is_enabled() references the variable __meminitdata movable_node_enabled. This is often because movable_node_is_enabled lacks a __meminitdata annotation or the annotation of movable_node_enabled is wrong. Let's mark the function with __meminit. It fixes the warning. Signed-off-by: Kirill A. Shutemov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memblock.h | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit fef8953ae4e2b87392434a1a3774694c3f8164f6 Author: Dominik Dingel Date: Fri Jan 15 16:57:07 2016 -0800 s390/mm: enable fixup_user_fault retrying By passing a non-null flag we allow fixup_user_fault to retry, which enables userfaultfd. As during these retries we might drop the mmap_sem we need to check if that happened and redo the complete chain of actions. Signed-off-by: Dominik Dingel Reviewed-by: Andrea Arcangeli Cc: "Kirill A. Shutemov" Cc: Martin Schwidefsky Cc: Christian Borntraeger Cc: "Jason J. Herne" Cc: David Rientjes Cc: Eric B Munson Cc: Naoya Horiguchi Cc: Mel Gorman Cc: Heiko Carstens Cc: Dominik Dingel Cc: Paolo Bonzini Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/s390/mm/pgtable.c | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) commit 4a9e1cda274893eca7d178d7dc265503ccb9d87a Author: Dominik Dingel Date: Fri Jan 15 16:57:04 2016 -0800 mm: bring in additional flag for fixup_user_fault to signal unlock During Jason's work with postcopy migration support for s390 a problem regarding gmap faults was discovered. The gmap code will call fixup_user_fault which will end up always in handle_mm_fault. Till now we never cared about retries, but as the userfaultfd code kind of relies on it. this needs some fix. This patchset does not take care of the futex code. I will now look closer at this. This patch (of 2): With the introduction of userfaultfd, kvm on s390 needs fixup_user_fault to pass in FAULT_FLAG_ALLOW_RETRY and give feedback if during the faulting we ever unlocked mmap_sem. This patch brings in the logic to handle retries as well as it cleans up the current documentation. fixup_user_fault was not having the same semantics as filemap_fault. It never indicated if a retry happened and so a caller wasn't able to handle that case. So we now changed the behaviour to always retry a locked mmap_sem. Signed-off-by: Dominik Dingel Reviewed-by: Andrea Arcangeli Cc: "Kirill A. Shutemov" Cc: Martin Schwidefsky Cc: Christian Borntraeger Cc: "Jason J. Herne" Cc: David Rientjes Cc: Eric B Munson Cc: Naoya Horiguchi Cc: Mel Gorman Cc: Heiko Carstens Cc: Dominik Dingel Cc: Paolo Bonzini Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/s390/mm/pgtable.c | 8 +++++--- include/linux/mm.h | 5 +++-- kernel/futex.c | 2 +- mm/gup.c | 30 +++++++++++++++++++++++++----- 4 files changed, 34 insertions(+), 11 deletions(-) commit c046c321cb4a0bdac9fb922db3859893ca556d27 Author: Dan Williams Date: Fri Jan 15 16:57:01 2016 -0800 dax: re-enable dax pmd mappings Now that the get_user_pages() path knows how to handle dax-pmd mappings, remove the protections that disabled dax-pmd support. Tests available from github.com/pmem/ndctl: make TESTS="lib/test-dax.sh lib/test-mmap.sh" check Signed-off-by: Dan Williams Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/Kconfig | 3 ++- fs/dax.c | 8 ++------ 2 files changed, 4 insertions(+), 7 deletions(-) commit cbb38e41a931aaae5b2fef3b1c74d0d6f866b698 Author: Dan Williams Date: Fri Jan 15 16:56:58 2016 -0800 dax: provide diagnostics for pmd mapping failures There is a wide gamut of conditions that can trigger the dax pmd path to fallback to pte mappings. Ideally we'd have a syscall interface to determine mapping characteristics after the fact. In the meantime provide debug messages. Signed-off-by: Dan Williams Suggested-by: Matthew Wilcox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/dax.c | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 57 insertions(+), 8 deletions(-) commit 3565fce3a6597e91b8dee3e8e36ebf70f8b7ef9b Author: Dan Williams Date: Fri Jan 15 16:56:55 2016 -0800 mm, x86: get_user_pages() for dax mappings A dax mapping establishes a pte with _PAGE_DEVMAP set when the driver has established a devm_memremap_pages() mapping, i.e. when the pfn_t return from ->direct_access() has PFN_DEV and PFN_MAP set. Later, when encountering _PAGE_DEVMAP during a page table walk we lookup and pin a struct dev_pagemap instance to keep the result of pfn_to_page() valid until put_page(). Signed-off-by: Dan Williams Tested-by: Logan Gunthorpe Cc: Dave Hansen Cc: Mel Gorman Cc: Peter Zijlstra Cc: Andrea Arcangeli Cc: Thomas Gleixner Cc: Ingo Molnar Cc: "H. Peter Anvin" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/x86/include/asm/pgtable.h | 7 ++++ arch/x86/mm/gup.c | 57 ++++++++++++++++++++++++++++++-- include/linux/huge_mm.h | 10 +++++- include/linux/mm.h | 59 +++++++++++++++++++++++---------- kernel/memremap.c | 12 +++++++ mm/gup.c | 30 +++++++++++++++-- mm/huge_memory.c | 75 +++++++++++++++++++++++++++++++++--------- mm/swap.c | 1 + 8 files changed, 212 insertions(+), 39 deletions(-) commit 5c7fb56e5e3f7035dd798a8e1adee639f87043e5 Author: Dan Williams Date: Fri Jan 15 16:56:52 2016 -0800 mm, dax: dax-pmd vs thp-pmd vs hugetlbfs-pmd A dax-huge-page mapping while it uses some thp helpers is ultimately not a transparent huge page. The distinction is especially important in the get_user_pages() path. pmd_devmap() is used to distinguish dax-pmds from pmd_huge() and pmd_trans_huge() which have slightly different semantics. Explicitly mark the pmd_trans_huge() helpers that dax needs by adding pmd_devmap() checks. [kirill.shutemov@linux.intel.com: fix regression in handling mlocked pages in __split_huge_pmd()] Signed-off-by: Dan Williams Cc: Dave Hansen Cc: Mel Gorman Cc: Peter Zijlstra Cc: Andrea Arcangeli Cc: Matthew Wilcox Signed-off-by: Kirill A. Shutemov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/x86/include/asm/pgtable.h | 9 ++++++++- include/linux/huge_mm.h | 5 +++-- include/linux/mm.h | 7 +++++++ mm/huge_memory.c | 38 +++++++++++++++++++++----------------- mm/memory.c | 8 ++++---- mm/mprotect.c | 5 +++-- mm/pgtable-generic.c | 2 +- 7 files changed, 47 insertions(+), 27 deletions(-) commit 5c2c2587b13235bf8b5c9027589f22eff68bdf49 Author: Dan Williams Date: Fri Jan 15 16:56:49 2016 -0800 mm, dax, pmem: introduce {get|put}_dev_pagemap() for dax-gup get_dev_page() enables paths like get_user_pages() to pin a dynamically mapped pfn-range (devm_memremap_pages()) while the resulting struct page objects are in use. Unlike get_page() it may fail if the device is, or is in the process of being, disabled. While the initial lookup of the range may be an expensive list walk, the result is cached to speed up subsequent lookups which are likely to be in the same mapped range. devm_memremap_pages() now requires a reference counter to be specified at init time. For pmem this means moving request_queue allocation into pmem_alloc() so the existing queue usage counter can track "device pages". ZONE_DEVICE pages always have an elevated count and will never be on an lru reclaim list. That space in 'struct page' can be redirected for other uses, but for safety introduce a poison value that will always trip __list_add() to assert. This allows half of the struct list_head storage to be reclaimed with some assurance to back up the assumption that the page count never goes to zero and a list_add() is never attempted. Signed-off-by: Dan Williams Tested-by: Logan Gunthorpe Cc: Dave Hansen Cc: Matthew Wilcox Cc: Ross Zwisler Cc: Alexander Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/nvdimm/pmem.c | 6 ++++-- include/linux/list.h | 11 ++++++++++ include/linux/memremap.h | 49 ++++++++++++++++++++++++++++++++++++++++++-- include/linux/mm_types.h | 5 +++++ kernel/memremap.c | 53 ++++++++++++++++++++++++++++++++++++++++++++---- lib/list_debug.c | 9 ++++++++ 6 files changed, 125 insertions(+), 8 deletions(-) commit 468ded03c07e0f2b5f05332bc255add47b1b0dee Author: Dan Williams Date: Fri Jan 15 16:56:46 2016 -0800 libnvdimm, pmem: move request_queue allocation earlier in probe Before the dynamically allocated struct pages from devm_memremap_pages() can be put to use outside the driver, we need a mechanism to track whether they are still in use at teardown. Towards that goal reorder the initialization sequence to allow the 'q_usage_counter' from the request_queue to be used by the devm_memremap_pages() implementation (in subsequent patches). Signed-off-by: Dan Williams Cc: Ross Zwisler Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/nvdimm/pmem.c | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) commit f25748e3c34eb8bb54853e9adba2d3dcf030503c Author: Dan Williams Date: Fri Jan 15 16:56:43 2016 -0800 mm, dax: convert vmf_insert_pfn_pmd() to pfn_t Similar to the conversion of vm_insert_mixed() use pfn_t in the vmf_insert_pfn_pmd() to tag the resulting pte with _PAGE_DEVICE when the pfn is backed by a devm_memremap_pages() mapping. Signed-off-by: Dan Williams Cc: Dave Hansen Cc: Matthew Wilcox Cc: Alexander Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/x86/include/asm/pgtable.h | 5 +++++ arch/x86/mm/pat.c | 5 +++-- fs/dax.c | 2 +- include/asm-generic/pgtable.h | 6 ++++-- include/linux/huge_mm.h | 2 +- include/linux/pfn_t.h | 8 ++++++++ mm/huge_memory.c | 11 +++++++---- mm/memory.c | 2 +- 8 files changed, 30 insertions(+), 11 deletions(-) commit 01c8f1c44b83a0825b573e7c723b033cece37b86 Author: Dan Williams Date: Fri Jan 15 16:56:40 2016 -0800 mm, dax, gpu: convert vm_insert_mixed to pfn_t Convert the raw unsigned long 'pfn' argument to pfn_t for the purpose of evaluating the PFN_MAP and PFN_DEV flags. When both are set it triggers _PAGE_DEVMAP to be set in the resulting pte. There are no functional changes to the gpu drivers as a result of this conversion. Signed-off-by: Dan Williams Cc: Dave Hansen Cc: David Airlie Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/x86/include/asm/pgtable.h | 5 +++++ drivers/gpu/drm/exynos/exynos_drm_gem.c | 4 +++- drivers/gpu/drm/gma500/framebuffer.c | 4 +++- drivers/gpu/drm/msm/msm_gem.c | 4 +++- drivers/gpu/drm/omapdrm/omap_gem.c | 7 +++++-- drivers/gpu/drm/ttm/ttm_bo_vm.c | 4 +++- fs/dax.c | 2 +- include/linux/mm.h | 2 +- include/linux/pfn_t.h | 27 +++++++++++++++++++++++++++ mm/memory.c | 16 ++++++++++------ 10 files changed, 61 insertions(+), 14 deletions(-) commit 69660fd797c3e52f7f20478a27687f293d1a41be Author: Dan Williams Date: Fri Jan 15 16:56:37 2016 -0800 x86, mm: introduce _PAGE_DEVMAP _PAGE_DEVMAP is a hardware-unused pte bit that will later be used in the get_user_pages() path to identify pfns backed by the dynamic allocation established by devm_memremap_pages. Upon seeing that bit the gup path will lookup and pin the allocation while the pages are in use. Since the _PAGE_DEVMAP bit is > 32 it must be cast to u64 instead of a pteval_t to allow pmd_flags() usage in the realmode boot code to build. Signed-off-by: Dan Williams Cc: Thomas Gleixner Cc: Ingo Molnar Cc: "H. Peter Anvin" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/x86/include/asm/pgtable_types.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 6d8113c75a72f80164cc68b1af45f1608f9a36c6 Author: Dan Williams Date: Fri Jan 15 16:56:35 2016 -0800 frv: fix compiler warning from definition of __pmd() Take into account that the pmd_t type is a array inside a struct, so it needs two levels of brackets to initialize. Otherwise, a usage of __pmd generates a warning: include/linux/mm.h:986:2: warning: missing braces around initializer [-Wmissing-braces] Signed-off-by: Dan Williams Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/frv/include/asm/page.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 888cdbc2c9a76a0e450f533b1957cdbfe7d483d5 Author: Dan Williams Date: Fri Jan 15 16:56:32 2016 -0800 hugetlb: fix compile error on tile Inlude asm/pgtable.h to get the definition for pud_t to fix: include/linux/hugetlb.h:203:29: error: unknown type name 'pud_t' Signed-off-by: Dan Williams Cc: Liviu Dudau Cc: Sudeep Holla Cc: Lorenzo Pieralisi Cc: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/hugetlb.h | 1 + 1 file changed, 1 insertion(+) commit 083fc21409ca053102cb4421007cc740e128817e Author: Dan Williams Date: Fri Jan 15 16:56:29 2016 -0800 avr32: convert to asm-generic/memory_model.h Switch avr32/include/asm/page.h to use the common defintions for pfn_to_page(), page_to_pfn(), and ARCH_PFN_OFFSET. Signed-off-by: Dan Williams Cc: Haavard Skinnemoen Cc: Hans-Christian Egtvedt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/avr32/include/asm/page.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit d2c0f041e1bb1260629ecea2161adb9778945aa3 Author: Dan Williams Date: Fri Jan 15 16:56:26 2016 -0800 libnvdimm, pfn, pmem: allocate memmap array in persistent memory Use the new vmem_altmap capability to enable the pmem driver to arrange for a struct page memmap to be established in persistent memory. [linux@roeck-us.net: mn10300: declare __pfn_to_phys() to fix build error] Signed-off-by: Dan Williams Cc: Christoph Hellwig Cc: Dave Chinner Cc: Ross Zwisler Signed-off-by: Guenter Roeck Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/ia64/include/asm/page.h | 1 + arch/mn10300/include/asm/page.h | 1 + drivers/nvdimm/pfn_devs.c | 3 +-- drivers/nvdimm/pmem.c | 19 +++++++++++++++++-- 4 files changed, 20 insertions(+), 4 deletions(-) commit 4b94ffdc4163bae1ec73b6e977ffb7a7da3d06d3 Author: Dan Williams Date: Fri Jan 15 16:56:22 2016 -0800 x86, mm: introduce vmem_altmap to augment vmemmap_populate() In support of providing struct page for large persistent memory capacities, use struct vmem_altmap to change the default policy for allocating memory for the memmap array. The default vmemmap_populate() allocates page table storage area from the page allocator. Given persistent memory capacities relative to DRAM it may not be feasible to store the memmap in 'System Memory'. Instead vmem_altmap represents pre-allocated "device pages" to satisfy vmemmap_alloc_block_buf() requests. Signed-off-by: Dan Williams Reported-by: kbuild test robot Cc: Thomas Gleixner Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: Dave Hansen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/x86/mm/init_64.c | 33 ++++++++++++++---- drivers/nvdimm/pmem.c | 6 ++-- include/linux/memory_hotplug.h | 3 +- include/linux/memremap.h | 39 +++++++++++++++++++--- include/linux/mm.h | 9 ++++- kernel/memremap.c | 72 +++++++++++++++++++++++++++++++++++++-- mm/memory_hotplug.c | 67 ++++++++++++++++++++++++++----------- mm/page_alloc.c | 11 +++++- mm/sparse-vmemmap.c | 76 ++++++++++++++++++++++++++++++++++++++++-- mm/sparse.c | 8 +++-- 10 files changed, 282 insertions(+), 42 deletions(-) commit 9476df7d80dfc425b37bfecf1d89edf8ec81fcb6 Author: Dan Williams Date: Fri Jan 15 16:56:19 2016 -0800 mm: introduce find_dev_pagemap() There are several scenarios where we need to retrieve and update metadata associated with a given devm_memremap_pages() mapping, and the only lookup key available is a pfn in the range: 1/ We want to augment vmemmap_populate() (called via arch_add_memory()) to allocate memmap storage from pre-allocated pages reserved by the device driver. At vmemmap_alloc_block_buf() time it grabs device pages rather than page allocator pages. This is in support of devm_memremap_pages() mappings where the memmap is too large to fit in main memory (i.e. large persistent memory devices). 2/ Taking a reference against the mapping when inserting device pages into the address_space radix of a given inode. This facilitates unmap_mapping_range() and truncate_inode_pages() operations when the driver is tearing down the mapping. 3/ get_user_pages() operations on ZONE_DEVICE memory require taking a reference against the mapping so that the driver teardown path can revoke and drain usage of device pages. Signed-off-by: Dan Williams Tested-by: Logan Gunthorpe Cc: Christoph Hellwig Cc: Dave Chinner Cc: Ross Zwisler Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/nvdimm/pmem.c | 2 +- include/linux/io.h | 15 --------- include/linux/memremap.h | 38 ++++++++++++++++++++++ kernel/memremap.c | 85 +++++++++++++++++++++++++++++++++++++++++++----- 4 files changed, 116 insertions(+), 24 deletions(-) commit 260ae3f7db614a5c4aa4b773599f99adc1d9859e Author: Dan Williams Date: Fri Jan 15 16:56:17 2016 -0800 mm: skip memory block registration for ZONE_DEVICE Prevent userspace from trying and failing to online ZONE_DEVICE pages which are meant to never be onlined. For example on platforms with a udev rule like the following: SUBSYSTEM=="memory", ACTION=="add", ATTR{state}=="offline", ATTR{state}="online" ...will generate futile attempts to online the ZONE_DEVICE sections. Example kernel messages: Built 1 zonelists in Node order, mobility grouping on. Total pages: 1004747 Policy zone: Normal online_pages [mem 0x248000000-0x24fffffff] failed Signed-off-by: Dan Williams Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/base/memory.c | 13 +++++++++++++ include/linux/mm.h | 12 ++++++++++++ 2 files changed, 25 insertions(+) commit 34c0fd540e79fb49ef9ce864dae1058cca265780 Author: Dan Williams Date: Fri Jan 15 16:56:14 2016 -0800 mm, dax, pmem: introduce pfn_t For the purpose of communicating the optional presence of a 'struct page' for the pfn returned from ->direct_access(), introduce a type that encapsulates a page-frame-number plus flags. These flags contain the historical "page_link" encoding for a scatterlist entry, but can also denote "device memory". Where "device memory" is a set of pfns that are not part of the kernel's linear mapping by default, but are accessed via the same memory controller as ram. The motivation for this new type is large capacity persistent memory that needs struct page entries in the 'memmap' to support 3rd party DMA (i.e. O_DIRECT I/O with a persistent memory source/target). However, we also need it in support of maintaining a list of mapped inodes which need to be unmapped at driver teardown or freeze_bdev() time. Signed-off-by: Dan Williams Cc: Christoph Hellwig Cc: Dave Hansen Cc: Ross Zwisler Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/powerpc/sysdev/axonram.c | 9 +++--- drivers/block/brd.c | 7 +++-- drivers/nvdimm/pmem.c | 13 ++++++--- drivers/s390/block/dcssblk.c | 11 ++++--- fs/dax.c | 11 ++++--- include/linux/blkdev.h | 5 ++-- include/linux/pfn.h | 9 ++++++ include/linux/pfn_t.h | 67 +++++++++++++++++++++++++++++++++++++++++++ kernel/memremap.c | 7 +++++ 9 files changed, 116 insertions(+), 23 deletions(-) commit ba049e93aef7e8c571567088b1b73f4f5b99272a Author: Dan Williams Date: Fri Jan 15 16:56:11 2016 -0800 kvm: rename pfn_t to kvm_pfn_t To date, we have implemented two I/O usage models for persistent memory, PMEM (a persistent "ram disk") and DAX (mmap persistent memory into userspace). This series adds a third, DAX-GUP, that allows DAX mappings to be the target of direct-i/o. It allows userspace to coordinate DMA/RDMA from/to persistent memory. The implementation leverages the ZONE_DEVICE mm-zone that went into 4.3-rc1 (also discussed at kernel summit) to flag pages that are owned and dynamically mapped by a device driver. The pmem driver, after mapping a persistent memory range into the system memmap via devm_memremap_pages(), arranges for DAX to distinguish pfn-only versus page-backed pmem-pfns via flags in the new pfn_t type. The DAX code, upon seeing a PFN_DEV+PFN_MAP flagged pfn, flags the resulting pte(s) inserted into the process page tables with a new _PAGE_DEVMAP flag. Later, when get_user_pages() is walking ptes it keys off _PAGE_DEVMAP to pin the device hosting the page range active. Finally, get_page() and put_page() are modified to take references against the device driver established page mapping. Finally, this need for "struct page" for persistent memory requires memory capacity to store the memmap array. Given the memmap array for a large pool of persistent may exhaust available DRAM introduce a mechanism to allocate the memmap from persistent memory. The new "struct vmem_altmap *" parameter to devm_memremap_pages() enables arch_add_memory() to use reserved pmem capacity rather than the page allocator. This patch (of 18): The core has developed a need for a "pfn_t" type [1]. Move the existing pfn_t in KVM to kvm_pfn_t [2]. [1]: https://lists.01.org/pipermail/linux-nvdimm/2015-September/002199.html [2]: https://lists.01.org/pipermail/linux-nvdimm/2015-September/002218.html Signed-off-by: Dan Williams Acked-by: Christoffer Dall Cc: Paolo Bonzini Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/arm/include/asm/kvm_mmu.h | 5 ++-- arch/arm/kvm/mmu.c | 10 ++++---- arch/arm64/include/asm/kvm_mmu.h | 3 ++- arch/mips/include/asm/kvm_host.h | 6 ++--- arch/mips/kvm/emulate.c | 2 +- arch/mips/kvm/tlb.c | 14 +++++------ arch/powerpc/include/asm/kvm_book3s.h | 4 +-- arch/powerpc/include/asm/kvm_ppc.h | 2 +- arch/powerpc/kvm/book3s.c | 6 ++--- arch/powerpc/kvm/book3s_32_mmu_host.c | 2 +- arch/powerpc/kvm/book3s_64_mmu_host.c | 2 +- arch/powerpc/kvm/e500.h | 2 +- arch/powerpc/kvm/e500_mmu_host.c | 8 +++--- arch/powerpc/kvm/trace_pr.h | 2 +- arch/x86/kvm/iommu.c | 11 ++++---- arch/x86/kvm/mmu.c | 37 +++++++++++++-------------- arch/x86/kvm/mmu_audit.c | 2 +- arch/x86/kvm/paging_tmpl.h | 6 ++--- arch/x86/kvm/vmx.c | 2 +- arch/x86/kvm/x86.c | 2 +- include/linux/kvm_host.h | 37 +++++++++++++-------------- include/linux/kvm_types.h | 2 +- virt/kvm/kvm_main.c | 47 ++++++++++++++++++----------------- 23 files changed, 110 insertions(+), 104 deletions(-) commit 16da306849d0335af7c353ec14121cf422433d33 Author: Dan Williams Date: Fri Jan 15 16:56:08 2016 -0800 um: kill pfn_t The core has developed a need for a "pfn_t" type [1]. Convert the usage of pfn_t by usermode-linux to an unsigned long, and update pfn_to_phys() to drop its expectation of a typed pfn. [1]: https://lists.01.org/pipermail/linux-nvdimm/2015-September/002199.html Signed-off-by: Dan Williams Cc: Dave Hansen Cc: Jeff Dike Cc: Richard Weinberger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/um/include/asm/page.h | 7 +++---- arch/um/include/asm/pgtable-3level.h | 4 ++-- arch/um/include/asm/pgtable.h | 2 +- 3 files changed, 6 insertions(+), 7 deletions(-) commit 59bf4fb9d386601cbaa70a9b00159abb846dedaa Author: Toshi Kani Date: Fri Jan 15 16:56:05 2016 -0800 dax: Split pmd map when fallback on COW An infinite loop of PMD faults was observed when attempted to mlock() a private read-only PMD mmap'd range of a DAX file. __dax_pmd_fault() simply returns with VM_FAULT_FALLBACK when falling back to PTE on COW. However, __handle_mm_fault() returns without falling back to handle_pte_fault() because a PMD map is present in this case. Change __dax_pmd_fault() to split the PMD map, if present, before returning with VM_FAULT_FALLBACK. Signed-off-by: Toshi Kani Signed-off-by: Dan Williams Cc: Kirill A. Shutemov Cc: Matthew Wilcox Cc: Ross Zwisler Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/dax.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 01871e59af5cc1cbf290ad6b4b95cd2f0cec9e8c Author: Ross Zwisler Date: Fri Jan 15 16:56:02 2016 -0800 mm, dax: fix livelock, allow dax pmd mappings to become writeable Prior to this change DAX PMD mappings that were made read-only were never able to be made writable again. This is because the code in insert_pfn_pmd() that calls pmd_mkdirty() and pmd_mkwrite() would skip these calls if the PMD already existed in the page table. Instead, if we are doing a write always mark the PMD entry as dirty and writeable. Without this code we can get into a condition where we mark the PMD as read-only, and then on a subsequent write fault we get into an infinite loop of PMD faults where we try unsuccessfully to make the PMD writeable. Signed-off-by: Ross Zwisler Signed-off-by: Dan Williams Reported-by: Jeff Moyer Reported-by: Toshi Kani Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/huge_memory.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit b2e0d1625e193b40cbbd45b799f82d54d34e015c Author: Dan Williams Date: Fri Jan 15 16:55:59 2016 -0800 dax: fix lifetime of in-kernel dax mappings with dax_map_atomic() The DAX implementation needs to protect new calls to ->direct_access() and usage of its return value against the driver for the underlying block device being disabled. Use blk_queue_enter()/blk_queue_exit() to hold off blk_cleanup_queue() from proceeding, or otherwise fail new mapping requests if the request_queue is being torn down. This also introduces blk_dax_ctl to simplify the interface from fs/dax.c through dax_map_atomic() to bdev_direct_access(). [willy@linux.intel.com: fix read() of a hole] Signed-off-by: Dan Williams Reviewed-by: Jeff Moyer Cc: Jan Kara Cc: Jens Axboe Cc: Dave Chinner Cc: Ross Zwisler Cc: Matthew Wilcox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/block_dev.c | 13 ++-- fs/dax.c | 208 ++++++++++++++++++++++++++++++------------------- include/linux/blkdev.h | 17 +++- 3 files changed, 150 insertions(+), 88 deletions(-) commit fe683adabfe6629c0b6db32bbbc1ce6cacbf2117 Author: Dan Williams Date: Fri Jan 15 16:55:56 2016 -0800 dax: guarantee page aligned results from bdev_direct_access() If a ->direct_access() implementation ever returns a map count less than PAGE_SIZE, catch the error in bdev_direct_access(). This simplifies error checking in upper layers. Signed-off-by: Dan Williams Reported-by: Ross Zwisler Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/block_dev.c | 2 ++ fs/dax.c | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) commit 0e749e54244eec87b2a3cd0a4314e60bc6781115 Author: Dan Williams Date: Fri Jan 15 16:55:53 2016 -0800 dax: increase granularity of dax_clear_blocks() operations dax_clear_blocks is currently performing a cond_resched() after every PAGE_SIZE memset. We need not check so frequently, for example md-raid only calls cond_resched() at stripe granularity. Also, in preparation for introducing a dax_map_atomic() operation that temporarily pins a dax mapping move the call to cond_resched() to the outer loop. The worst case latency between calls to cond_resched() after this change is 500us the average latency is 133us. This is up from a 10us max and 4us average. Signed-off-by: Dan Williams Reviewed-by: Jan Kara Reviewed-by: Jeff Moyer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/dax.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) commit 52db400fcd50216dd8511a0880b936235755836f Author: Dan Williams Date: Fri Jan 15 16:55:49 2016 -0800 pmem, dax: clean up clear_pmem() To date, we have implemented two I/O usage models for persistent memory, PMEM (a persistent "ram disk") and DAX (mmap persistent memory into userspace). This series adds a third, DAX-GUP, that allows DAX mappings to be the target of direct-i/o. It allows userspace to coordinate DMA/RDMA from/to persistent memory. The implementation leverages the ZONE_DEVICE mm-zone that went into 4.3-rc1 (also discussed at kernel summit) to flag pages that are owned and dynamically mapped by a device driver. The pmem driver, after mapping a persistent memory range into the system memmap via devm_memremap_pages(), arranges for DAX to distinguish pfn-only versus page-backed pmem-pfns via flags in the new pfn_t type. The DAX code, upon seeing a PFN_DEV+PFN_MAP flagged pfn, flags the resulting pte(s) inserted into the process page tables with a new _PAGE_DEVMAP flag. Later, when get_user_pages() is walking ptes it keys off _PAGE_DEVMAP to pin the device hosting the page range active. Finally, get_page() and put_page() are modified to take references against the device driver established page mapping. Finally, this need for "struct page" for persistent memory requires memory capacity to store the memmap array. Given the memmap array for a large pool of persistent may exhaust available DRAM introduce a mechanism to allocate the memmap from persistent memory. The new "struct vmem_altmap *" parameter to devm_memremap_pages() enables arch_add_memory() to use reserved pmem capacity rather than the page allocator. This patch (of 25): Both __dax_pmd_fault, and clear_pmem() were taking special steps to clear memory a page at a time to take advantage of non-temporal clear_page() implementations. However, x86_64 does not use non-temporal instructions for clear_page(), and arch_clear_pmem() was always incurring the cost of __arch_wb_cache_pmem(). Clean up the assumption that doing clear_pmem() a page at a time is more performant. Signed-off-by: Dan Williams Reported-by: Dave Hansen Reviewed-by: Ross Zwisler Reviewed-by: Jeff Moyer Cc: "H. Peter Anvin" Cc: Alexander Viro Cc: Andrea Arcangeli Cc: Christoffer Dall Cc: Christoph Hellwig Cc: Dave Chinner Cc: David Airlie Cc: Ingo Molnar Cc: Jan Kara Cc: Jeff Dike Cc: Jens Axboe Cc: Kirill A. Shutemov Cc: Logan Gunthorpe Cc: Matthew Wilcox Cc: Mel Gorman Cc: Paolo Bonzini Cc: Peter Zijlstra Cc: Richard Weinberger Cc: Thomas Gleixner Cc: Toshi Kani Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/x86/include/asm/pmem.h | 7 +------ fs/dax.c | 4 +--- 2 files changed, 2 insertions(+), 9 deletions(-) commit bd56086f10186e2c205429cc12b16e43aacb1c7e Author: Kirill A. Shutemov Date: Fri Jan 15 16:55:46 2016 -0800 thp: fix split_huge_page() after mremap() of THP Sasha Levin has reported KASAN out-of-bounds bug[1]. It points to "if (!is_swap_pte(pte[i]))" in unfreeze_page_vma() as a problematic access. The cause is that split_huge_page() doesn't handle THP correctly if it's not allingned to PMD boundary. It can happen after mremap(). Test-case (not always triggers the bug): #define _GNU_SOURCE #include #include #include #define MB (1024UL*1024) #define SIZE (2*MB) #define BASE ((void *)0x400000000000) int main() { char *p; p = mmap(BASE, SIZE, PROT_READ | PROT_WRITE, MAP_FIXED | MAP_PRIVATE | MAP_ANONYMOUS | MAP_POPULATE, -1, 0); if (p == MAP_FAILED) perror("mmap"), exit(1); p = mremap(BASE, SIZE, SIZE, MREMAP_FIXED | MREMAP_MAYMOVE, BASE + SIZE + 8192); if (p == MAP_FAILED) perror("mremap"), exit(1); system("echo 1 > /sys/kernel/debug/split_huge_pages"); return 0; } The patch fixes freeze and unfreeze paths to handle page table boundary crossing. It also makes mapcount vs count check in split_huge_page_to_list() stricter: - after freeze we don't expect any subpage mapped as we remove them from rmap when setting up migration entries; - count must be 1, meaning only caller has reference to the page; [1] https://gist.github.com/sashalevin/c67fbea55e7c0576972a Signed-off-by: Kirill A. Shutemov Reported-by: Sasha Levin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/huge_memory.c | 70 +++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 49 insertions(+), 21 deletions(-) commit b8d3c4c3009d42869dc03a1da0efc2aa687d0ab4 Author: Minchan Kim Date: Fri Jan 15 16:55:42 2016 -0800 mm/huge_memory.c: don't split THP page when MADV_FREE syscall is called We don't need to split THP page when MADV_FREE syscall is called if [start, len] is aligned with THP size. The split could be done when VM decide to free it in reclaim path if memory pressure is heavy. With that, we could avoid unnecessary THP split. For the feature, this patch changes pte dirtness marking logic of THP. Now, it marks every ptes of pages dirty unconditionally in splitting, which makes MADV_FREE void. So, instead, this patch propagates pmd dirtiness to all pages via PG_dirty and restores pte dirtiness from PG_dirty. With this, if pmd is clean(ie, MADV_FREEed) when split happens(e,g, shrink_page_list), all of pages are clean too so we could discard them. Signed-off-by: Minchan Kim Cc: Kirill A. Shutemov Cc: Hugh Dickins Cc: Andrea Arcangeli Cc: "James E.J. Bottomley" Cc: "Kirill A. Shutemov" Cc: Shaohua Li Cc: Cc: Andy Lutomirski Cc: Arnd Bergmann Cc: Benjamin Herrenschmidt Cc: Catalin Marinas Cc: Chen Gang Cc: Chris Zankel Cc: Daniel Micay Cc: Darrick J. Wong Cc: David S. Miller Cc: Helge Deller Cc: Ivan Kokshaysky Cc: Jason Evans Cc: Johannes Weiner Cc: KOSAKI Motohiro Cc: Matt Turner Cc: Max Filippov Cc: Mel Gorman Cc: Michael Kerrisk Cc: Michal Hocko Cc: Mika Penttil Cc: Ralf Baechle Cc: Richard Henderson Cc: Rik van Riel Cc: Roland Dreier Cc: Russell King Cc: Shaohua Li Cc: Will Deacon Cc: Wu Fengguang Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/huge_mm.h | 3 ++ mm/huge_memory.c | 87 ++++++++++++++++++++++++++++++++++++++++++++++--- mm/madvise.c | 8 ++++- 3 files changed, 92 insertions(+), 6 deletions(-) commit 05ee26d9e7e29ab026995eab79be3c6e8351908c Author: Minchan Kim Date: Fri Jan 15 16:55:37 2016 -0800 arch/arm64/include/asm/pgtable.h: add pmd_mkclean for THP MADV_FREE needs pmd_dirty and pmd_mkclean for detecting recent overwrite of the contents since MADV_FREE syscall is called for THP page. This patch adds pmd_mkclean for THP page MADV_FREE support. Signed-off-by: Minchan Kim Cc: "James E.J. Bottomley" Cc: "Kirill A. Shutemov" Cc: Shaohua Li Cc: Cc: Andrea Arcangeli Cc: Andy Lutomirski Cc: Arnd Bergmann Cc: Benjamin Herrenschmidt Cc: Catalin Marinas Cc: Chen Gang Cc: Chris Zankel Cc: Daniel Micay Cc: Darrick J. Wong Cc: David S. Miller Cc: Helge Deller Cc: Hugh Dickins Cc: Ivan Kokshaysky Cc: Jason Evans Cc: Johannes Weiner Cc: KOSAKI Motohiro Cc: Kirill A. Shutemov Cc: Matt Turner Cc: Max Filippov Cc: Mel Gorman Cc: Michael Kerrisk Cc: Michal Hocko Cc: Mika Penttil Cc: Ralf Baechle Cc: Richard Henderson Cc: Rik van Riel Cc: Roland Dreier Cc: Russell King Cc: Shaohua Li Cc: Will Deacon Cc: Wu Fengguang Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/arm64/include/asm/pgtable.h | 1 + 1 file changed, 1 insertion(+) commit 44842045e4baaf406db2954dd2e07152fa61528d Author: Minchan Kim Date: Fri Jan 15 16:55:33 2016 -0800 arch/arm/include/asm/pgtable-3level.h: add pmd_mkclean for THP MADV_FREE needs pmd_dirty and pmd_mkclean for detecting recent overwrite of the contents since MADV_FREE syscall is called for THP page. This patch adds pmd_mkclean for THP page MADV_FREE support. Signed-off-by: Minchan Kim Cc: Catalin Marinas Cc: Will Deacon Cc: Russell King Cc: "James E.J. Bottomley" Cc: "Kirill A. Shutemov" Cc: Shaohua Li Cc: Cc: Andrea Arcangeli Cc: Andy Lutomirski Cc: Arnd Bergmann Cc: Benjamin Herrenschmidt Cc: Chen Gang Cc: Chris Zankel Cc: Daniel Micay Cc: Darrick J. Wong Cc: David S. Miller Cc: Helge Deller Cc: Hugh Dickins Cc: Ivan Kokshaysky Cc: Jason Evans Cc: Johannes Weiner Cc: KOSAKI Motohiro Cc: Kirill A. Shutemov Cc: Matt Turner Cc: Max Filippov Cc: Mel Gorman Cc: Michael Kerrisk Cc: Michal Hocko Cc: Mika Penttil Cc: Ralf Baechle Cc: Richard Henderson Cc: Rik van Riel Cc: Roland Dreier Cc: Shaohua Li Cc: Wu Fengguang Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/arm/include/asm/pgtable-3level.h | 1 + 1 file changed, 1 insertion(+) commit d5d6a443b24304711fe83b312d29ff26cfa03f0c Author: Minchan Kim Date: Fri Jan 15 16:55:29 2016 -0800 arch/powerpc/include/asm/pgtable-ppc64.h: add pmd_[dirty|mkclean] for THP MADV_FREE needs pmd_dirty and pmd_mkclean for detecting recent overwrite of the contents since MADV_FREE syscall is called for THP page. This patch adds pmd_dirty and pmd_mkclean for THP page MADV_FREE support. Signed-off-by: Minchan Kim Cc: Benjamin Herrenschmidt Cc: "James E.J. Bottomley" Cc: "Kirill A. Shutemov" Cc: Shaohua Li Cc: Cc: Andrea Arcangeli Cc: Andy Lutomirski Cc: Arnd Bergmann Cc: Catalin Marinas Cc: Chen Gang Cc: Chris Zankel Cc: Daniel Micay Cc: Darrick J. Wong Cc: David S. Miller Cc: Helge Deller Cc: Hugh Dickins Cc: Ivan Kokshaysky Cc: Jason Evans Cc: Johannes Weiner Cc: KOSAKI Motohiro Cc: Kirill A. Shutemov Cc: Matt Turner Cc: Max Filippov Cc: Mel Gorman Cc: Michael Kerrisk Cc: Michal Hocko Cc: Mika Penttil Cc: Ralf Baechle Cc: Richard Henderson Cc: Rik van Riel Cc: Roland Dreier Cc: Russell King Cc: Shaohua Li Cc: Will Deacon Cc: Wu Fengguang Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/powerpc/include/asm/book3s/64/pgtable.h | 2 ++ 1 file changed, 2 insertions(+) commit 79cedb8f62f116e72079c4d424edbc3d90302333 Author: Minchan Kim Date: Fri Jan 15 16:55:24 2016 -0800 arch/sparc/include/asm/pgtable_64.h: add pmd_[dirty|mkclean] for THP MADV_FREE needs pmd_dirty and pmd_mkclean for detecting recent overwrite of the contents since MADV_FREE syscall is called for THP page. This patch adds pmd_dirty and pmd_mkclean for THP page MADV_FREE support. Signed-off-by: Minchan Kim Cc: "James E.J. Bottomley" Cc: "Kirill A. Shutemov" Cc: Shaohua Li Cc: Cc: Andrea Arcangeli Cc: Andy Lutomirski Cc: Arnd Bergmann Cc: Benjamin Herrenschmidt Cc: Catalin Marinas Cc: Chen Gang Cc: Chris Zankel Cc: Daniel Micay Cc: Darrick J. Wong Cc: David S. Miller Cc: Helge Deller Cc: Hugh Dickins Cc: Ivan Kokshaysky Cc: Jason Evans Cc: Johannes Weiner Cc: KOSAKI Motohiro Cc: Kirill A. Shutemov Cc: Matt Turner Cc: Max Filippov Cc: Mel Gorman Cc: Michael Kerrisk Cc: Michal Hocko Cc: Mika Penttil Cc: Ralf Baechle Cc: Richard Henderson Cc: Rik van Riel Cc: Roland Dreier Cc: Russell King Cc: Shaohua Li Cc: Will Deacon Cc: Wu Fengguang Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/sparc/include/asm/pgtable_64.h | 9 +++++++++ 1 file changed, 9 insertions(+) commit 590a471ce92355bc6c93a48769e8616b80071991 Author: Minchan Kim Date: Fri Jan 15 16:55:20 2016 -0800 arch/x86/include/asm/pgtable.h: add pmd_[dirty|mkclean] for THP MADV_FREE needs pmd_dirty and pmd_mkclean for detecting recent overwrite of the contents since MADV_FREE syscall is called for THP page. This patch adds pmd_dirty and pmd_mkclean for THP page MADV_FREE support. Signed-off-by: Minchan Kim Cc: "James E.J. Bottomley" Cc: "Kirill A. Shutemov" Cc: Shaohua Li Cc: Cc: Andrea Arcangeli Cc: Andy Lutomirski Cc: Arnd Bergmann Cc: Benjamin Herrenschmidt Cc: Catalin Marinas Cc: Chen Gang Cc: Chris Zankel Cc: Daniel Micay Cc: Darrick J. Wong Cc: David S. Miller Cc: Helge Deller Cc: Hugh Dickins Cc: Ivan Kokshaysky Cc: Jason Evans Cc: Johannes Weiner Cc: KOSAKI Motohiro Cc: Kirill A. Shutemov Cc: Matt Turner Cc: Max Filippov Cc: Mel Gorman Cc: Michael Kerrisk Cc: Michal Hocko Cc: Mika Penttil Cc: Ralf Baechle Cc: Richard Henderson Cc: Rik van Riel Cc: Roland Dreier Cc: Russell King Cc: Shaohua Li Cc: Will Deacon Cc: Wu Fengguang Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/x86/include/asm/pgtable.h | 5 +++++ 1 file changed, 5 insertions(+) commit 337ed7eb5fada305c7d5bf168cf5032f825faddf Author: Minchan Kim Date: Fri Jan 15 16:55:15 2016 -0800 mm/ksm.c: mark stable page dirty The MADV_FREE patchset changes page reclaim to simply free a clean anonymous page with no dirty ptes, instead of swapping it out; but KSM uses clean write-protected ptes to reference the stable ksm page. So be sure to mark that page dirty, so it's never mistakenly discarded. [hughd@google.com: adjusted comments] Signed-off-by: Minchan Kim Acked-by: Hugh Dickins Cc: "James E.J. Bottomley" Cc: "Kirill A. Shutemov" Cc: Shaohua Li Cc: Cc: Andrea Arcangeli Cc: Andy Lutomirski Cc: Arnd Bergmann Cc: Benjamin Herrenschmidt Cc: Catalin Marinas Cc: Chen Gang Cc: Chris Zankel Cc: Daniel Micay Cc: Darrick J. Wong Cc: David S. Miller Cc: Helge Deller Cc: Ivan Kokshaysky Cc: Jason Evans Cc: Johannes Weiner Cc: KOSAKI Motohiro Cc: Kirill A. Shutemov Cc: Matt Turner Cc: Max Filippov Cc: Mel Gorman Cc: Michael Kerrisk Cc: Michal Hocko Cc: Mika Penttil Cc: Ralf Baechle Cc: Richard Henderson Cc: Rik van Riel Cc: Roland Dreier Cc: Russell King Cc: Shaohua Li Cc: Will Deacon Cc: Wu Fengguang Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/ksm.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 10853a039208c4afaa322a7d802456c8dca222f4 Author: Minchan Kim Date: Fri Jan 15 16:55:11 2016 -0800 mm: move lazily freed pages to inactive list MADV_FREE is a hint that it's okay to discard pages if there is memory pressure and we use reclaimers(ie, kswapd and direct reclaim) to free them so there is no value keeping them in the active anonymous LRU so this patch moves them to inactive LRU list's head. This means that MADV_FREE-ed pages which were living on the inactive list are reclaimed first because they are more likely to be cold rather than recently active pages. An arguable issue for the approach would be whether we should put the page to the head or tail of the inactive list. I chose head because the kernel cannot make sure it's really cold or warm for every MADV_FREE usecase but at least we know it's not *hot*, so landing of inactive head would be a comprimise for various usecases. This fixes suboptimal behavior of MADV_FREE when pages living on the active list will sit there for a long time even under memory pressure while the inactive list is reclaimed heavily. This basically breaks the whole purpose of using MADV_FREE to help the system to free memory which is might not be used. Signed-off-by: Minchan Kim Acked-by: Hugh Dickins Acked-by: Michal Hocko Cc: Johannes Weiner Cc: Mel Gorman Cc: Rik van Riel Cc: Shaohua Li Cc: "James E.J. Bottomley" Cc: "Kirill A. Shutemov" Cc: Cc: Andrea Arcangeli Cc: Andy Lutomirski Cc: Arnd Bergmann Cc: Benjamin Herrenschmidt Cc: Catalin Marinas Cc: Chen Gang Cc: Chris Zankel Cc: Daniel Micay Cc: Darrick J. Wong Cc: David S. Miller Cc: Helge Deller Cc: Ivan Kokshaysky Cc: Jason Evans Cc: KOSAKI Motohiro Cc: Kirill A. Shutemov Cc: Matt Turner Cc: Max Filippov Cc: Michael Kerrisk Cc: Mika Penttil Cc: Ralf Baechle Cc: Richard Henderson Cc: Roland Dreier Cc: Russell King Cc: Will Deacon Cc: Wu Fengguang Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/swap.h | 1 + mm/madvise.c | 2 ++ mm/swap.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+) commit 64b42bc1cfdf6e2c3ab7315f2ff56c31cd257370 Author: Minchan Kim Date: Fri Jan 15 16:55:06 2016 -0800 mm/madvise.c: free swp_entry in madvise_free When I test below piece of code with 12 processes(ie, 512M * 12 = 6G consume) on my (3G ram + 12 cpu + 8G swap, the madvise_free is siginficat slower (ie, 2x times) than madvise_dontneed. loop = 5; mmap(512M); while (loop--) { memset(512M); madvise(MADV_FREE or MADV_DONTNEED); } The reason is lots of swapin. 1) dontneed: 1,612 swapin 2) madvfree: 879,585 swapin If we find hinted pages were already swapped out when syscall is called, it's pointless to keep the swapped-out pages in pte. Instead, let's free the cold page because swapin is more expensive than (alloc page + zeroing). With this patch, it reduced swapin from 879,585 to 1,878 so elapsed time 1) dontneed: 6.10user 233.50system 0:50.44elapsed 2) madvfree: 6.03user 401.17system 1:30.67elapsed 2) madvfree + below patch: 6.70user 339.14system 1:04.45elapsed Signed-off-by: Minchan Kim Acked-by: Michal Hocko Acked-by: Hugh Dickins Cc: "James E.J. Bottomley" Cc: "Kirill A. Shutemov" Cc: Shaohua Li Cc: Cc: Andrea Arcangeli Cc: Andy Lutomirski Cc: Arnd Bergmann Cc: Benjamin Herrenschmidt Cc: Catalin Marinas Cc: Chen Gang Cc: Chris Zankel Cc: Daniel Micay Cc: Darrick J. Wong Cc: David S. Miller Cc: Helge Deller Cc: Ivan Kokshaysky Cc: Jason Evans Cc: Johannes Weiner Cc: KOSAKI Motohiro Cc: Kirill A. Shutemov Cc: Matt Turner Cc: Max Filippov Cc: Mel Gorman Cc: Michael Kerrisk Cc: Mika Penttil Cc: Ralf Baechle Cc: Richard Henderson Cc: Rik van Riel Cc: Roland Dreier Cc: Russell King Cc: Shaohua Li Cc: Will Deacon Cc: Wu Fengguang Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/madvise.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) commit 21f55b018ba57897f4d3590ecbe11516bdc540af Author: Chen Gang Date: Fri Jan 15 16:55:02 2016 -0800 arch/*/include/uapi/asm/mman.h: : let MADV_FREE have same value for all architectures For uapi, need try to let all macros have same value, and MADV_FREE is added into main branch recently, so need redefine MADV_FREE for it. At present, '8' can be shared with all architectures, so redefine it to '8'. [sudipm.mukherjee@gmail.com: correct uniform value of MADV_FREE] Signed-off-by: Chen Gang Signed-off-by: Minchan Kim Acked-by: Hugh Dickins Cc: Ralf Baechle Cc: Arnd Bergmann Cc: Richard Henderson Cc: Ivan Kokshaysky Cc: Matt Turner Cc: "James E.J. Bottomley" Cc: Helge Deller Cc: Chris Zankel Cc: Max Filippov Cc: Roland Dreier Cc: Darrick J. Wong Cc: David S. Miller Cc: "Kirill A. Shutemov" Cc: Shaohua Li Cc: Cc: Andrea Arcangeli Cc: Andy Lutomirski Cc: Arnd Bergmann Cc: Benjamin Herrenschmidt Cc: Catalin Marinas Cc: Daniel Micay Cc: Jason Evans Cc: Johannes Weiner Cc: KOSAKI Motohiro Cc: Kirill A. Shutemov Cc: Mel Gorman Cc: Michael Kerrisk Cc: Michal Hocko Cc: Mika Penttil Cc: Rik van Riel Cc: Russell King Cc: Shaohua Li Cc: Will Deacon Cc: Wu Fengguang Signed-off-by: Sudip Mukherjee Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/alpha/include/uapi/asm/mman.h | 1 + arch/mips/include/uapi/asm/mman.h | 1 + arch/parisc/include/uapi/asm/mman.h | 1 + arch/xtensa/include/uapi/asm/mman.h | 1 + include/uapi/asm-generic/mman-common.h | 2 +- 5 files changed, 5 insertions(+), 1 deletion(-) commit ef58978f1eaab140081ec1808d96ee06e933e760 Author: Minchan Kim Date: Fri Jan 15 16:54:57 2016 -0800 mm: define MADV_FREE for some arches Most architectures use asm-generic, but alpha, mips, parisc, xtensa need their own definitions. This patch defines MADV_FREE for them so it should fix build break for their architectures. Maybe, I should split and feed pieces to arch maintainers but included here for mmotm convenience. [gang.chen.5i5j@gmail.com: let MADV_FREE have same value for all architectures] Signed-off-by: Minchan Kim Acked-by: Max Filippov Cc: Wu Fengguang Cc: Michael Kerrisk Cc: Richard Henderson Cc: Ivan Kokshaysky Cc: "James E.J. Bottomley" Cc: Helge Deller Cc: Ralf Baechle Cc: Chris Zankel Cc: "Kirill A. Shutemov" Cc: Shaohua Li Cc: Cc: Andrea Arcangeli Cc: Andy Lutomirski Cc: Arnd Bergmann Cc: Benjamin Herrenschmidt Cc: Catalin Marinas Cc: Chen Gang Cc: Daniel Micay Cc: Darrick J. Wong Cc: David S. Miller Cc: Hugh Dickins Cc: Jason Evans Cc: Johannes Weiner Cc: KOSAKI Motohiro Cc: Kirill A. Shutemov Cc: Matt Turner Cc: Mel Gorman Cc: Michal Hocko Cc: Mika Penttil Cc: Rik van Riel Cc: Roland Dreier Cc: Russell King Cc: Shaohua Li Cc: Will Deacon Signed-off-by: Chen Gang Acked-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/alpha/include/uapi/asm/mman.h | 1 + arch/mips/include/uapi/asm/mman.h | 1 + arch/parisc/include/uapi/asm/mman.h | 1 + arch/xtensa/include/uapi/asm/mman.h | 1 + 4 files changed, 4 insertions(+) commit 854e9ed09dedf0c19ac8640e91bcc74bc3f9e5c9 Author: Minchan Kim Date: Fri Jan 15 16:54:53 2016 -0800 mm: support madvise(MADV_FREE) Linux doesn't have an ability to free pages lazy while other OS already have been supported that named by madvise(MADV_FREE). The gain is clear that kernel can discard freed pages rather than swapping out or OOM if memory pressure happens. Without memory pressure, freed pages would be reused by userspace without another additional overhead(ex, page fault + allocation + zeroing). Jason Evans said: : Facebook has been using MAP_UNINITIALIZED : (https://lkml.org/lkml/2012/1/18/308) in some of its applications for : several years, but there are operational costs to maintaining this : out-of-tree in our kernel and in jemalloc, and we are anxious to retire it : in favor of MADV_FREE. When we first enabled MAP_UNINITIALIZED it : increased throughput for much of our workload by ~5%, and although the : benefit has decreased using newer hardware and kernels, there is still : enough benefit that we cannot reasonably retire it without a replacement. : : Aside from Facebook operations, there are numerous broadly used : applications that would benefit from MADV_FREE. The ones that immediately : come to mind are redis, varnish, and MariaDB. I don't have much insight : into Android internals and development process, but I would hope to see : MADV_FREE support eventually end up there as well to benefit applications : linked with the integrated jemalloc. : : jemalloc will use MADV_FREE once it becomes available in the Linux kernel. : In fact, jemalloc already uses MADV_FREE or equivalent everywhere it's : available: *BSD, OS X, Windows, and Solaris -- every platform except Linux : (and AIX, but I'm not sure it even compiles on AIX). The lack of : MADV_FREE on Linux forced me down a long series of increasingly : sophisticated heuristics for madvise() volume reduction, and even so this : remains a common performance issue for people using jemalloc on Linux. : Please integrate MADV_FREE; many people will benefit substantially. How it works: When madvise syscall is called, VM clears dirty bit of ptes of the range. If memory pressure happens, VM checks dirty bit of page table and if it found still "clean", it means it's a "lazyfree pages" so VM could discard the page instead of swapping out. Once there was store operation for the page before VM peek a page to reclaim, dirty bit is set so VM can swap out the page instead of discarding. One thing we should notice is that basically, MADV_FREE relies on dirty bit in page table entry to decide whether VM allows to discard the page or not. IOW, if page table entry includes marked dirty bit, VM shouldn't discard the page. However, as a example, if swap-in by read fault happens, page table entry doesn't have dirty bit so MADV_FREE could discard the page wrongly. For avoiding the problem, MADV_FREE did more checks with PageDirty and PageSwapCache. It worked out because swapped-in page lives on swap cache and since it is evicted from the swap cache, the page has PG_dirty flag. So both page flags check effectively prevent wrong discarding by MADV_FREE. However, a problem in above logic is that swapped-in page has PG_dirty still after they are removed from swap cache so VM cannot consider the page as freeable any more even if madvise_free is called in future. Look at below example for detail. ptr = malloc(); memset(ptr); .. .. .. heavy memory pressure so all of pages are swapped out .. .. var = *ptr; -> a page swapped-in and could be removed from swapcache. Then, page table doesn't mark dirty bit and page descriptor includes PG_dirty .. .. madvise_free(ptr); -> It doesn't clear PG_dirty of the page. .. .. .. .. heavy memory pressure again. .. In this time, VM cannot discard the page because the page .. has *PG_dirty* To solve the problem, this patch clears PG_dirty if only the page is owned exclusively by current process when madvise is called because PG_dirty represents ptes's dirtiness in several processes so we could clear it only if we own it exclusively. Firstly, heavy users would be general allocators(ex, jemalloc, tcmalloc and hope glibc supports it) and jemalloc/tcmalloc already have supported the feature for other OS(ex, FreeBSD) barrios@blaptop:~/benchmark/ebizzy$ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 12 On-line CPU(s) list: 0-11 Thread(s) per core: 1 Core(s) per socket: 1 Socket(s): 12 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 2 Stepping: 3 CPU MHz: 3200.185 BogoMIPS: 6400.53 Virtualization: VT-x Hypervisor vendor: KVM Virtualization type: full L1d cache: 32K L1i cache: 32K L2 cache: 4096K NUMA node0 CPU(s): 0-11 ebizzy benchmark(./ebizzy -S 10 -n 512) Higher avg is better. vanilla-jemalloc MADV_free-jemalloc 1 thread records: 10 records: 10 avg: 2961.90 avg: 12069.70 std: 71.96(2.43%) std: 186.68(1.55%) max: 3070.00 max: 12385.00 min: 2796.00 min: 11746.00 2 thread records: 10 records: 10 avg: 5020.00 avg: 17827.00 std: 264.87(5.28%) std: 358.52(2.01%) max: 5244.00 max: 18760.00 min: 4251.00 min: 17382.00 4 thread records: 10 records: 10 avg: 8988.80 avg: 27930.80 std: 1175.33(13.08%) std: 3317.33(11.88%) max: 9508.00 max: 30879.00 min: 5477.00 min: 21024.00 8 thread records: 10 records: 10 avg: 13036.50 avg: 33739.40 std: 170.67(1.31%) std: 5146.22(15.25%) max: 13371.00 max: 40572.00 min: 12785.00 min: 24088.00 16 thread records: 10 records: 10 avg: 11092.40 avg: 31424.20 std: 710.60(6.41%) std: 3763.89(11.98%) max: 12446.00 max: 36635.00 min: 9949.00 min: 25669.00 32 thread records: 10 records: 10 avg: 11067.00 avg: 34495.80 std: 971.06(8.77%) std: 2721.36(7.89%) max: 12010.00 max: 38598.00 min: 9002.00 min: 30636.00 In summary, MADV_FREE is about much faster than MADV_DONTNEED. This patch (of 12): Add core MADV_FREE implementation. [akpm@linux-foundation.org: small cleanups] Signed-off-by: Minchan Kim Acked-by: Michal Hocko Acked-by: Hugh Dickins Cc: Mika Penttil Cc: Michael Kerrisk Cc: Johannes Weiner Cc: Rik van Riel Cc: Mel Gorman Cc: KOSAKI Motohiro Cc: Jason Evans Cc: Daniel Micay Cc: "Kirill A. Shutemov" Cc: Shaohua Li Cc: Cc: Andy Lutomirski Cc: "James E.J. Bottomley" Cc: "Kirill A. Shutemov" Cc: "Shaohua Li" Cc: Andrea Arcangeli Cc: Arnd Bergmann Cc: Benjamin Herrenschmidt Cc: Catalin Marinas Cc: Chen Gang Cc: Chris Zankel Cc: Darrick J. Wong Cc: David S. Miller Cc: Helge Deller Cc: Ivan Kokshaysky Cc: Matt Turner Cc: Max Filippov Cc: Ralf Baechle Cc: Richard Henderson Cc: Roland Dreier Cc: Russell King Cc: Shaohua Li Cc: Will Deacon Cc: Wu Fengguang Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/rmap.h | 2 + include/linux/vm_event_item.h | 1 + include/uapi/asm-generic/mman-common.h | 1 + mm/madvise.c | 170 +++++++++++++++++++++++++++++++++ mm/rmap.c | 36 ++++++- mm/swap_state.c | 5 +- mm/vmscan.c | 14 ++- mm/vmstat.c | 1 + 8 files changed, 221 insertions(+), 9 deletions(-) commit 17ec4cd985780a7e30aa45bb8f272237c12502a4 Author: Jerome Marchand Date: Fri Jan 15 16:54:48 2016 -0800 zram: don't call idr_remove() from zram_remove() The use of idr_remove() is forbidden in the callback functions of idr_for_each(). It is therefore unsafe to call idr_remove in zram_remove(). This patch moves the call to idr_remove() from zram_remove() to hot_remove_store(). In the detroy_devices() path, idrs are removed by idr_destroy(). This solves an use-after-free detected by KASan. [akpm@linux-foundation.org: fix coding stype, per Sergey] Signed-off-by: Jerome Marchand Acked-by: Sergey Senozhatsky Cc: Minchan Kim Cc: [4.2+] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/block/zram/zram_drv.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 8749cfea11f3fffe8f7cad891470a77b36e0185f Author: Vladimir Davydov Date: Fri Jan 15 16:54:45 2016 -0800 mm: add page_check_address_transhuge() helper page_referenced_one() and page_idle_clear_pte_refs_one() duplicate the code for looking up pte of a (possibly transhuge) page. Move this code to a new helper function, page_check_address_transhuge(), and make the above mentioned functions use it. This is just a cleanup, no functional changes are intended. Signed-off-by: Vladimir Davydov Reviewed-by: Kirill A. Shutemov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/rmap.h | 19 +++++++++ mm/page_idle.c | 63 ++++------------------------ mm/rmap.c | 115 +++++++++++++++++++++++++++++++-------------------- 3 files changed, 99 insertions(+), 98 deletions(-) commit d965432234db94ee8e185f8fd8e3181bed7459fd Author: Kirill A. Shutemov Date: Fri Jan 15 16:54:43 2016 -0800 thp: increase split_huge_page() success rate During freeze_page(), we remove the page from rmap. It munlocks the page if it was mlocked. clear_page_mlock() uses thelru cache, which temporary pins the page. Let's drain the lru cache before checking page's count vs. mapcount. The change makes mlocked page split on first attempt, if it was not pinned by somebody else. Signed-off-by: Kirill A. Shutemov Cc: Sasha Levin Acked-by: Vlastimil Babka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/huge_memory.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 49071d436b51b58aeaf7abcd1877f38ca0146e31 Author: Kirill A. Shutemov Date: Fri Jan 15 16:54:40 2016 -0800 thp: add debugfs handle to split all huge pages Writing 1 into 'split_huge_pages' will try to find and split all huge pages in the system. This is useful for debuging. [akpm@linux-foundation.org: fix printk text, per Vlastimil] Signed-off-by: Kirill A. Shutemov Cc: Sasha Levin Cc: Andrea Arcangeli Acked-by: Vlastimil Babka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/huge_memory.c | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) commit b20ce5e03b936be077463015661dcf52be274e5b Author: Kirill A. Shutemov Date: Fri Jan 15 16:54:37 2016 -0800 mm: prepare page_referenced() and page_idle to new THP refcounting Both page_referenced() and page_idle_clear_pte_refs_one() assume that THP can only be mapped with PMD, so there's no reason to look on PTEs for PageTransHuge() pages. That's no true anymore: THP can be mapped with PTEs too. The patch removes PageTransHuge() test from the functions and opencode page table check. [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: Kirill A. Shutemov Cc: Vladimir Davydov Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Naoya Horiguchi Cc: Sasha Levin Cc: Minchan Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/huge_mm.h | 5 --- include/linux/mm.h | 23 ++++++---- mm/huge_memory.c | 73 ++++++++---------------------- mm/page_idle.c | 65 +++++++++++++++++++++++---- mm/rmap.c | 117 +++++++++++++++++++++++++++++++++--------------- mm/util.c | 14 ++++++ 6 files changed, 185 insertions(+), 112 deletions(-) commit e90309c9f7722db4ff5bce3b9e6e04d1460f2553 Author: Kirill A. Shutemov Date: Fri Jan 15 16:54:33 2016 -0800 thp: allow mlocked THP again Before THP refcounting rework, THP was not allowed to cross VMA boundary. So, if we have THP and we split it, PG_mlocked can be safely transferred to small pages. With new THP refcounting and naive approach to mlocking we can end up with this scenario: 1. we have a mlocked THP, which belong to one VM_LOCKED VMA. 2. the process does munlock() on the *part* of the THP: - the VMA is split into two, one of them VM_LOCKED; - huge PMD split into PTE table; - THP is still mlocked; 3. split_huge_page(): - it transfers PG_mlocked to *all* small pages regrardless if it blong to any VM_LOCKED VMA. We probably could munlock() all small pages on split_huge_page(), but I think we have accounting issue already on step two. Instead of forbidding mlocked pages altogether, we just avoid mlocking PTE-mapped THPs and munlock THPs on split_huge_pmd(). This means PTE-mapped THPs will be on normal lru lists and will be split under memory pressure by vmscan. After the split vmscan will detect unevictable small pages and mlock them. With this approach we shouldn't hit situation like described above. Signed-off-by: Kirill A. Shutemov Cc: Sasha Levin Cc: Aneesh Kumar K.V Cc: Jerome Marchand Cc: Vlastimil Babka Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/gup.c | 6 +++-- mm/huge_memory.c | 37 ++++++++++++++++++++++++------ mm/memory.c | 6 ++--- mm/mlock.c | 68 +++++++++++++++++++++++++++++++++++++++----------------- mm/rmap.c | 3 +++ mm/swap.c | 1 + 6 files changed, 88 insertions(+), 33 deletions(-) commit a46e63764eb6d0252ab4e96f96ad447594673274 Author: Kirill A. Shutemov Date: Fri Jan 15 16:54:30 2016 -0800 thp: update documentation The patch updates Documentation/vm/transhuge.txt to reflect changes in THP design. Signed-off-by: Kirill A. Shutemov Acked-by: Jerome Marchand Cc: Sasha Levin Cc: Aneesh Kumar K.V Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/vm/transhuge.txt | 151 ++++++++++++++++++++++++++--------------- 1 file changed, 96 insertions(+), 55 deletions(-) commit 61f5d698cc97600e813ca5cf8e449b1ea1c11492 Author: Kirill A. Shutemov Date: Fri Jan 15 16:54:26 2016 -0800 mm: re-enable THP All parts of THP with new refcounting are now in place. We can now allow to enable THP. Signed-off-by: Kirill A. Shutemov Tested-by: Sasha Levin Tested-by: Aneesh Kumar K.V Acked-by: Jerome Marchand Cc: Vlastimil Babka Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9a982250f773cc8c76f1eee68a770b7cbf2faf78 Author: Kirill A. Shutemov Date: Fri Jan 15 16:54:17 2016 -0800 thp: introduce deferred_split_huge_page() Currently we don't split huge page on partial unmap. It's not an ideal situation. It can lead to memory overhead. Furtunately, we can detect partial unmap on page_remove_rmap(). But we cannot call split_huge_page() from there due to locking context. It's also counterproductive to do directly from munmap() codepath: in many cases we will hit this from exit(2) and splitting the huge page just to free it up in small pages is not what we really want. The patch introduce deferred_split_huge_page() which put the huge page into queue for splitting. The splitting itself will happen when we get memory pressure via shrinker interface. The page will be dropped from list on freeing through compound page destructor. Signed-off-by: Kirill A. Shutemov Tested-by: Sasha Levin Tested-by: Aneesh Kumar K.V Acked-by: Vlastimil Babka Acked-by: Jerome Marchand Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/huge_mm.h | 5 ++ include/linux/mm.h | 5 ++ include/linux/mm_types.h | 2 + mm/huge_memory.c | 139 +++++++++++++++++++++++++++++++++++++++++++++-- mm/migrate.c | 1 + mm/page_alloc.c | 27 ++++++--- mm/rmap.c | 7 ++- 7 files changed, 174 insertions(+), 12 deletions(-) commit 248db92da13f25073e7ebbd5fb95615aafd771d1 Author: Kirill A. Shutemov Date: Fri Jan 15 16:54:14 2016 -0800 migrate_pages: try to split pages on queuing We are not able to migrate THPs. It means it's not enough to split only PMD on migration -- we need to split compound page under it too. Signed-off-by: Kirill A. Shutemov Tested-by: Aneesh Kumar K.V Acked-by: Jerome Marchand Cc: Sasha Levin Cc: Vlastimil Babka Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/mempolicy.c | 42 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 4 deletions(-) commit e9b61f19858a5d6c42ce2298cf138279375d0d9b Author: Kirill A. Shutemov Date: Fri Jan 15 16:54:10 2016 -0800 thp: reintroduce split_huge_page() This patch adds implementation of split_huge_page() for new refcountings. Unlike previous implementation, new split_huge_page() can fail if somebody holds GUP pin on the page. It also means that pin on page would prevent it from bening split under you. It makes situation in many places much cleaner. The basic scheme of split_huge_page(): - Check that sum of mapcounts of all subpage is equal to page_count() plus one (caller pin). Foll off with -EBUSY. This way we can avoid useless PMD-splits. - Freeze the page counters by splitting all PMD and setup migration PTEs. - Re-check sum of mapcounts against page_count(). Page's counts are stable now. -EBUSY if page is pinned. - Split compound page. - Unfreeze the page by removing migration entries. Signed-off-by: Kirill A. Shutemov Tested-by: Sasha Levin Tested-by: Aneesh Kumar K.V Acked-by: Jerome Marchand Cc: Vlastimil Babka Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/huge_mm.h | 7 +- include/linux/pagemap.h | 13 +- mm/huge_memory.c | 374 +++++++++++++++++++++++++++++++++++++++++++++++- mm/internal.h | 26 +++- mm/rmap.c | 40 +----- 5 files changed, 415 insertions(+), 45 deletions(-) commit 4e41a30c6d506c884d3da9aeb316352e70679d4b Author: Naoya Horiguchi Date: Fri Jan 15 16:54:07 2016 -0800 mm: hwpoison: adjust for new thp refcounting Some mm-related BUG_ON()s could trigger from hwpoison code due to recent changes in thp refcounting rule. This patch fixes them up. In the new refcounting, we no longer use tail->_mapcount to keep tail's refcount, and thereby we can simplify get/put_hwpoison_page(). And another change is that tail's refcount is not transferred to the raw page during thp split (more precisely, in new rule we don't take refcount on tail page any more.) So when we need thp split, we have to transfer the refcount properly to the 4kB soft-offlined page before migration. thp split code goes into core code only when precheck (total_mapcount(head) == page_count(head) - 1) passes to avoid useless split, where we assume that one refcount is held by the caller of thp split and the others are taken via mapping. To meet this assumption, this patch moves thp split part in soft_offline_page() after get_any_page(). [akpm@linux-foundation.org: remove unneeded #define, per Kirill] Signed-off-by: Naoya Horiguchi Acked-by: Kirill A. Shutemov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/mm.h | 2 +- mm/memory-failure.c | 73 +++++++++++++++-------------------------------------- 2 files changed, 22 insertions(+), 53 deletions(-) commit d96b339f453997f2f08c52da3f41423be48c978f Author: Naoya Horiguchi Date: Fri Jan 15 16:54:03 2016 -0800 mm: soft-offline: check return value in second __get_any_page() call I saw the following BUG_ON triggered in a testcase where a process calls madvise(MADV_SOFT_OFFLINE) on thps, along with a background process that calls migratepages command repeatedly (doing ping-pong among different NUMA nodes) for the first process: Soft offlining page 0x60000 at 0x700000600000 __get_any_page: 0x60000 free buddy page page:ffffea0001800000 count:0 mapcount:-127 mapping: (null) index:0x1 flags: 0x1fffc0000000000() page dumped because: VM_BUG_ON_PAGE(atomic_read(&page->_count) == 0) ------------[ cut here ]------------ kernel BUG at /src/linux-dev/include/linux/mm.h:342! invalid opcode: 0000 [#1] SMP DEBUG_PAGEALLOC Modules linked in: cfg80211 rfkill crc32c_intel serio_raw virtio_balloon i2c_piix4 virtio_blk virtio_net ata_generic pata_acpi CPU: 3 PID: 3035 Comm: test_alloc_gene Tainted: G O 4.4.0-rc8-v4.4-rc8-160107-1501-00000-rc8+ #74 Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 task: ffff88007c63d5c0 ti: ffff88007c210000 task.ti: ffff88007c210000 RIP: 0010:[] [] put_page+0x5c/0x60 RSP: 0018:ffff88007c213e00 EFLAGS: 00010246 Call Trace: put_hwpoison_page+0x4e/0x80 soft_offline_page+0x501/0x520 SyS_madvise+0x6bc/0x6f0 entry_SYSCALL_64_fastpath+0x12/0x6a Code: 8b fc ff ff 5b 5d c3 48 89 df e8 b0 fa ff ff 48 89 df 31 f6 e8 c6 7d ff ff 5b 5d c3 48 c7 c6 08 54 a2 81 48 89 df e8 a4 c5 01 00 <0f> 0b 66 90 66 66 66 66 90 55 48 89 e5 41 55 41 54 53 48 8b 47 RIP [] put_page+0x5c/0x60 RSP The root cause resides in get_any_page() which retries to get a refcount of the page to be soft-offlined. This function calls put_hwpoison_page(), expecting that the target page is putback to LRU list. But it can be also freed to buddy. So the second check need to care about such case. Fixes: af8fae7c0886 ("mm/memory-failure.c: clean up soft_offline_page()") Signed-off-by: Naoya Horiguchi Cc: Sasha Levin Cc: Aneesh Kumar K.V Cc: Vlastimil Babka Cc: Jerome Marchand Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Cc: [3.9+] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memory-failure.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4d2fa965483f4c39bd097ff9bbf3efe62d4cf367 Author: Kirill A. Shutemov Date: Fri Jan 15 16:54:00 2016 -0800 thp, mm: split_huge_page(): caller need to lock page We're going to use migration entries instead of compound_lock() to stabilize page refcounts. Setup and remove migration entries require page to be locked. Some of split_huge_page() callers already have the page locked. Let's require everybody to lock the page before calling split_huge_page(). Signed-off-by: Kirill A. Shutemov Tested-by: Sasha Levin Tested-by: Aneesh Kumar K.V Acked-by: Vlastimil Babka Acked-by: Jerome Marchand Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memory-failure.c | 8 +++++++- mm/migrate.c | 8 ++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) commit ba98828088ad3ffa7ee4d5b017c291934fcbaeb9 Author: Kirill A. Shutemov Date: Fri Jan 15 16:53:56 2016 -0800 thp: add option to setup migration entries during PMD split We are going to use migration PTE entries to stabilize page counts. If the page is mapped with PMDs we need to split the PMD and setup migration entries. It's reasonable to combine these operations to avoid double-scanning over the page table. Signed-off-by: Kirill A. Shutemov Tested-by: Sasha Levin Tested-by: Aneesh Kumar K.V Acked-by: Vlastimil Babka Acked-by: Jerome Marchand Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/huge_memory.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) commit eef1b3ba053aa68967d294c80a50c4a26db30f52 Author: Kirill A. Shutemov Date: Fri Jan 15 16:53:53 2016 -0800 thp: implement split_huge_pmd() Original split_huge_page() combined two operations: splitting PMDs into tables of PTEs and splitting underlying compound page. This patch implements split_huge_pmd() which split given PMD without splitting other PMDs this page mapped with or underlying compound page. Without tail page refcounting, implementation of split_huge_pmd() is pretty straight-forward. Signed-off-by: Kirill A. Shutemov Tested-by: Sasha Levin Tested-by: Aneesh Kumar K.V Acked-by: Jerome Marchand Cc: Vlastimil Babka Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/huge_mm.h | 11 ++++- mm/huge_memory.c | 124 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 134 insertions(+), 1 deletion(-) commit e81c48024f43b4aabe1ec4709786fa1f96814717 Author: Kirill A. Shutemov Date: Fri Jan 15 16:53:49 2016 -0800 mm, numa: skip PTE-mapped THP on numa fault We're going to have THP mapped with PTEs. It will confuse numabalancing. Let's skip them for now. Signed-off-by: Kirill A. Shutemov Tested-by: Sasha Levin Tested-by: Aneesh Kumar K.V Acked-by: Jerome Marchand Cc: Vlastimil Babka Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memory.c | 6 ++++++ 1 file changed, 6 insertions(+) commit e1534ae95004d6a307839a44eed40389d608c935 Author: Kirill A. Shutemov Date: Fri Jan 15 16:53:46 2016 -0800 mm: differentiate page_mapped() from page_mapcount() for compound pages Let's define page_mapped() to be true for compound pages if any sub-pages of the compound page is mapped (with PMD or PTE). On other hand page_mapcount() return mapcount for this particular small page. This will make cases like page_get_anon_vma() behave correctly once we allow huge pages to be mapped with PTE. Most users outside core-mm should use page_mapcount() instead of page_mapped(). Signed-off-by: Kirill A. Shutemov Tested-by: Sasha Levin Tested-by: Aneesh Kumar K.V Acked-by: Jerome Marchand Cc: Vlastimil Babka Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/arc/mm/cache.c | 4 ++-- arch/arm/mm/flush.c | 2 +- arch/mips/mm/c-r4k.c | 3 ++- arch/mips/mm/cache.c | 2 +- arch/mips/mm/init.c | 6 +++--- arch/sh/mm/cache-sh4.c | 2 +- arch/sh/mm/cache.c | 8 ++++---- arch/xtensa/mm/tlb.c | 2 +- fs/proc/page.c | 4 ++-- include/linux/mm.h | 15 +++++++++++++-- mm/filemap.c | 2 +- 11 files changed, 31 insertions(+), 19 deletions(-) commit 53f9263baba69fc1630e3c780c4d11b72643f962 Author: Kirill A. Shutemov Date: Fri Jan 15 16:53:42 2016 -0800 mm: rework mapcount accounting to enable 4k mapping of THPs We're going to allow mapping of individual 4k pages of THP compound. It means we need to track mapcount on per small page basis. Straight-forward approach is to use ->_mapcount in all subpages to track how many time this subpage is mapped with PMDs or PTEs combined. But this is rather expensive: mapping or unmapping of a THP page with PMD would require HPAGE_PMD_NR atomic operations instead of single we have now. The idea is to store separately how many times the page was mapped as whole -- compound_mapcount. This frees up ->_mapcount in subpages to track PTE mapcount. We use the same approach as with compound page destructor and compound order to store compound_mapcount: use space in first tail page, ->mapping this time. Any time we map/unmap whole compound page (THP or hugetlb) -- we increment/decrement compound_mapcount. When we map part of compound page with PTE we operate on ->_mapcount of the subpage. page_mapcount() counts both: PTE and PMD mappings of the page. Basically, we have mapcount for a subpage spread over two counters. It makes tricky to detect when last mapcount for a page goes away. We introduced PageDoubleMap() for this. When we split THP PMD for the first time and there's other PMD mapping left we offset up ->_mapcount in all subpages by one and set PG_double_map on the compound page. These additional references go away with last compound_mapcount. This approach provides a way to detect when last mapcount goes away on per small page basis without introducing new overhead for most common cases. [akpm@linux-foundation.org: fix typo in comment] [mhocko@suse.com: ignore partial THP when moving task] Signed-off-by: Kirill A. Shutemov Tested-by: Aneesh Kumar K.V Acked-by: Jerome Marchand Cc: Sasha Levin Cc: Aneesh Kumar K.V Cc: Jerome Marchand Cc: Vlastimil Babka Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/mm.h | 26 +++++++++++- include/linux/mm_types.h | 1 + include/linux/page-flags.h | 36 +++++++++++++++++ include/linux/rmap.h | 4 +- mm/debug.c | 5 ++- mm/huge_memory.c | 2 +- mm/hugetlb.c | 4 +- mm/memcontrol.c | 8 ++++ mm/memory.c | 2 +- mm/migrate.c | 2 +- mm/page_alloc.c | 13 ++++-- mm/rmap.c | 98 +++++++++++++++++++++++++++++++++++----------- 12 files changed, 166 insertions(+), 35 deletions(-) commit 4b471e8898c3d0f5c97a3c73ac32d0549fe01c87 Author: Kirill A. Shutemov Date: Fri Jan 15 16:53:39 2016 -0800 mm, thp: remove infrastructure for handling splitting PMDs With new refcounting we don't need to mark PMDs splitting. Let's drop code to handle this. Signed-off-by: Kirill A. Shutemov Tested-by: Sasha Levin Tested-by: Aneesh Kumar K.V Acked-by: Vlastimil Babka Acked-by: Jerome Marchand Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds .../vm/pmdp_splitting_flush/arch-support.txt | 40 ------------- fs/proc/task_mmu.c | 8 +-- include/asm-generic/pgtable.h | 9 --- include/linux/huge_mm.h | 21 ++----- mm/gup.c | 12 +--- mm/huge_memory.c | 67 ++++++---------------- mm/memcontrol.c | 13 +---- mm/memory.c | 18 +----- mm/mincore.c | 2 +- mm/mremap.c | 15 +++-- mm/page_idle.c | 3 +- mm/pgtable-generic.c | 12 ---- mm/rmap.c | 4 +- 13 files changed, 41 insertions(+), 183 deletions(-) commit 1f19617d775879c0863e697fb648154e56918051 Author: Kirill A. Shutemov Date: Fri Jan 15 16:53:35 2016 -0800 x86, thp: remove infrastructure for handling splitting PMDs With new refcounting we don't need to mark PMDs splitting. Let's drop code to handle this. Signed-off-by: Kirill A. Shutemov Tested-by: Sasha Levin Acked-by: Jerome Marchand Cc: Aneesh Kumar K.V Cc: Vlastimil Babka Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/x86/include/asm/pgtable.h | 9 --------- arch/x86/include/asm/pgtable_types.h | 2 -- arch/x86/mm/gup.c | 13 +------------ arch/x86/mm/pgtable.c | 13 ------------- 4 files changed, 1 insertion(+), 36 deletions(-) commit 702b63ca328496d5577b6edb40d44fa6a6db8aa0 Author: Kirill A. Shutemov Date: Fri Jan 15 16:53:31 2016 -0800 tile, thp: remove infrastructure for handling splitting PMDs With new refcounting we don't need to mark PMDs splitting. Let's drop code to handle this. Signed-off-by: Kirill A. Shutemov Cc: Sasha Levin Cc: Aneesh Kumar K.V Cc: Jerome Marchand Cc: Vlastimil Babka Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/tile/include/asm/pgtable.h | 10 ---------- 1 file changed, 10 deletions(-) commit 99f1bc0116ccfe28058dc83a6a6895d97dd300d3 Author: Kirill A. Shutemov Date: Fri Jan 15 16:53:28 2016 -0800 sparc, thp: remove infrastructure for handling splitting PMDs With new refcounting we don't need to mark PMDs splitting. Let's drop code to handle this. Signed-off-by: Kirill A. Shutemov Cc: Sasha Levin Cc: Aneesh Kumar K.V Cc: Jerome Marchand Cc: Vlastimil Babka Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/sparc/include/asm/pgtable_64.h | 16 ---------------- arch/sparc/mm/fault_64.c | 3 --- arch/sparc/mm/gup.c | 2 +- 3 files changed, 1 insertion(+), 20 deletions(-) commit fecffad25458f0217e3d34613be09faaca208bad Author: Kirill A. Shutemov Date: Fri Jan 15 16:53:24 2016 -0800 s390, thp: remove infrastructure for handling splitting PMDs With new refcounting we don't need to mark PMDs splitting. Let's drop code to handle this. pmdp_splitting_flush() is not needed too: on splitting PMD we will do pmdp_clear_flush() + set_pte_at(). pmdp_clear_flush() will do IPI as needed for fast_gup. Signed-off-by: Kirill A. Shutemov Cc: Sasha Levin Cc: Aneesh Kumar K.V Cc: Jerome Marchand Cc: Vlastimil Babka Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/s390/include/asm/pgtable.h | 16 +--------------- arch/s390/mm/gup.c | 11 +---------- arch/s390/mm/pgtable.c | 16 ---------------- 3 files changed, 2 insertions(+), 41 deletions(-) commit 7aa9a23c69eae5bfba4f1f92c58d89edc334c8ae Author: Kirill A. Shutemov Date: Fri Jan 15 16:53:21 2016 -0800 powerpc, thp: remove infrastructure for handling splitting PMDs With new refcounting we don't need to mark PMDs splitting. Let's drop code to handle this. pmdp_splitting_flush() is not needed too: on splitting PMD we will do pmdp_clear_flush() + set_pte_at(). pmdp_clear_flush() will do IPI as needed for fast_gup. Signed-off-by: Kirill A. Shutemov Tested-by: Aneesh Kumar K.V Reviewed-by: Aneesh Kumar K.V Cc: Sasha Levin Cc: Jerome Marchand Cc: Vlastimil Babka Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/powerpc/include/asm/book3s/64/hash-64k.h | 12 ------- arch/powerpc/include/asm/book3s/64/hash.h | 10 ++---- arch/powerpc/include/asm/book3s/64/pgtable.h | 4 --- arch/powerpc/mm/hugepage-hash64.c | 3 -- arch/powerpc/mm/hugetlbpage.c | 4 --- arch/powerpc/mm/pgtable_64.c | 49 --------------------------- 6 files changed, 2 insertions(+), 80 deletions(-) commit b27873702b0604dc4000811e6aa43e18457013de Author: Kirill A. Shutemov Date: Fri Jan 15 16:53:17 2016 -0800 mips, thp: remove infrastructure for handling splitting PMDs With new refcounting we don't need to mark PMDs splitting. Let's drop code to handle this. pmdp_splitting_flush() is not needed too: on splitting PMD we will do pmdp_clear_flush() + set_pte_at(). pmdp_clear_flush() will do IPI as needed for fast_gup. Signed-off-by: Kirill A. Shutemov Cc: Sasha Levin Cc: Aneesh Kumar K.V Cc: Jerome Marchand Cc: Vlastimil Babka Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/mips/include/asm/pgtable-bits.h | 10 ++++------ arch/mips/include/asm/pgtable.h | 18 ------------------ arch/mips/mm/gup.c | 13 +------------ arch/mips/mm/pgtable-64.c | 14 -------------- arch/mips/mm/tlbex.c | 1 - 5 files changed, 5 insertions(+), 51 deletions(-) commit 0ebd74461559320364a8228efd1c12d91dd68db3 Author: Kirill A. Shutemov Date: Fri Jan 15 16:53:14 2016 -0800 arm, thp: remove infrastructure for handling splitting PMDs With new refcounting we don't need to mark PMDs splitting. Let's drop code to handle this. pmdp_splitting_flush() is not needed too: on splitting PMD we will do pmdp_clear_flush() + set_pte_at(). pmdp_clear_flush() will do IPI as needed for fast_gup. [arnd@arndb.de: fix unterminated ifdef in header file] Signed-off-by: Kirill A. Shutemov Cc: Sasha Levin Cc: Aneesh Kumar K.V Cc: Jerome Marchand Cc: Vlastimil Babka Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Vlastimil Babka Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Arnd Bergmann Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/arm/include/asm/pgtable-3level.h | 9 --------- arch/arm/lib/uaccess_with_memcpy.c | 5 ++--- arch/arm/mm/flush.c | 15 --------------- 3 files changed, 2 insertions(+), 27 deletions(-) commit b7ed934a7c3fd4d2651eae81cb658cf1926ff54f Author: Kirill A. Shutemov Date: Fri Jan 15 16:53:10 2016 -0800 arm64, thp: remove infrastructure for handling splitting PMDs With new refcounting we don't need to mark PMDs splitting. Let's drop code to handle this. pmdp_splitting_flush() is not needed too: on splitting PMD we will do pmdp_clear_flush() + set_pte_at(). pmdp_clear_flush() will do IPI as needed for fast_gup. Signed-off-by: Kirill A. Shutemov Cc: Sasha Levin Cc: Aneesh Kumar K.V Cc: Jerome Marchand Cc: Vlastimil Babka Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/arm64/include/asm/pgtable.h | 8 -------- arch/arm64/mm/flush.c | 16 ---------------- 2 files changed, 24 deletions(-) commit 3ac808fdd2b835547af81de75c813cf7ba2ab58f Author: Kirill A. Shutemov Date: Fri Jan 15 16:53:07 2016 -0800 mm, thp: remove compound_lock() We are going to use migration entries to stabilize page counts. It means we don't need compound_lock() for that. Signed-off-by: Kirill A. Shutemov Tested-by: Sasha Levin Tested-by: Aneesh Kumar K.V Acked-by: Vlastimil Babka Acked-by: Jerome Marchand Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/mm.h | 35 ----------------------------------- include/linux/page-flags.h | 12 +----------- mm/debug.c | 3 --- mm/memcontrol.c | 11 +++-------- 4 files changed, 4 insertions(+), 57 deletions(-) commit f765f540598a129dc4bb6f698fd4acc92f296c14 Author: Kirill A. Shutemov Date: Fri Jan 15 16:53:03 2016 -0800 ksm: prepare to new THP semantics We don't need special code to stabilize THP. If you've got reference to any subpage of THP it will not be split under you. New split_huge_page() also accepts tail pages: no need in special code to get reference to head page. Signed-off-by: Kirill A. Shutemov Tested-by: Sasha Levin Tested-by: Aneesh Kumar K.V Acked-by: Vlastimil Babka Acked-by: Jerome Marchand Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/ksm.c | 57 ++++++++++----------------------------------------------- 1 file changed, 10 insertions(+), 47 deletions(-) commit 14d27abd1d12a64c89df1ce8c00ef1403226db5a Author: Kirill A. Shutemov Date: Fri Jan 15 16:53:00 2016 -0800 futex, thp: remove special case for THP in get_futex_key With new THP refcounting, we don't need tricks to stabilize huge page. If we've got reference to tail page, it can't split under us. This patch effectively reverts a5b338f2b0b1 ("thp: update futex compound knowledge"). Signed-off-by: Kirill A. Shutemov Tested-by: Sasha Levin Tested-by: Aneesh Kumar K.V Acked-by: Jerome Marchand Cc: Vlastimil Babka Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Tested-by: Artem Savkov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/futex.c | 63 +++++++++++++--------------------------------------------- 1 file changed, 14 insertions(+), 49 deletions(-) commit ddc58f27f9eee9117219936f77e90ad5b2e00e96 Author: Kirill A. Shutemov Date: Fri Jan 15 16:52:56 2016 -0800 mm: drop tail page refcounting Tail page refcounting is utterly complicated and painful to support. It uses ->_mapcount on tail pages to store how many times this page is pinned. get_page() bumps ->_mapcount on tail page in addition to ->_count on head. This information is required by split_huge_page() to be able to distribute pins from head of compound page to tails during the split. We will need ->_mapcount to account PTE mappings of subpages of the compound page. We eliminate need in current meaning of ->_mapcount in tail pages by forbidding split entirely if the page is pinned. The only user of tail page refcounting is THP which is marked BROKEN for now. Let's drop all this mess. It makes get_page() and put_page() much simpler. Signed-off-by: Kirill A. Shutemov Tested-by: Sasha Levin Tested-by: Aneesh Kumar K.V Acked-by: Vlastimil Babka Acked-by: Jerome Marchand Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/mips/mm/gup.c | 4 - arch/powerpc/mm/hugetlbpage.c | 13 +- arch/s390/mm/gup.c | 13 +- arch/sparc/mm/gup.c | 14 +-- arch/x86/mm/gup.c | 4 - include/linux/mm.h | 47 ++------ include/linux/mm_types.h | 17 +-- mm/gup.c | 34 +----- mm/huge_memory.c | 41 +------ mm/hugetlb.c | 2 +- mm/internal.h | 44 ------- mm/swap.c | 273 +++--------------------------------------- 12 files changed, 40 insertions(+), 466 deletions(-) commit ad0bed24e98bcae9952c2d1f663ec7cb6344a387 Author: Kirill A. Shutemov Date: Fri Jan 15 16:52:53 2016 -0800 thp: drop all split_huge_page()-related code We will re-introduce new version with new refcounting later in patchset. Signed-off-by: Kirill A. Shutemov Tested-by: Sasha Levin Tested-by: Aneesh Kumar K.V Acked-by: Jerome Marchand Cc: Vlastimil Babka Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/huge_mm.h | 28 +--- mm/huge_memory.c | 401 +----------------------------------------------- 2 files changed, 7 insertions(+), 422 deletions(-) commit 56a17b8836398ffab52c00dda8442f1680dc251b Author: Kirill A. Shutemov Date: Fri Jan 15 16:52:49 2016 -0800 mm: temporarily mark THP broken Up to this point we tried to keep patchset bisectable, but next patches are going to change how core of THP refcounting work. It would be beneficial to split the change into several patches and make it more reviewable. Unfortunately, I don't see how we can achieve that while keeping THP working. Let's hide THP under CONFIG_BROKEN for now and bring it back when new refcounting get established. Signed-off-by: Kirill A. Shutemov Tested-by: Sasha Levin Tested-by: Aneesh Kumar K.V Acked-by: Jerome Marchand Cc: Vlastimil Babka Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 122afea9626ab3f717b250a8dd3d5ebf57cdb56c Author: Kirill A. Shutemov Date: Fri Jan 15 16:52:46 2016 -0800 mm, vmstats: new THP splitting event The patch replaces THP_SPLIT with tree events: THP_SPLIT_PAGE, THP_SPLIT_PAGE_FAILED and THP_SPLIT_PMD. It reflects the fact that we are going to be able split PMD without the compound page and that split_huge_page() can fail. Signed-off-by: Kirill A. Shutemov Acked-by: Christoph Lameter Tested-by: Sasha Levin Tested-by: Aneesh Kumar K.V Acked-by: Jerome Marchand Acked-by: Vlastimil Babka Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/vm_event_item.h | 4 +++- mm/huge_memory.c | 2 +- mm/vmstat.c | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) commit 78ddc53473419073ffb2e91178001e87bc513524 Author: Kirill A. Shutemov Date: Fri Jan 15 16:52:42 2016 -0800 thp: rename split_huge_page_pmd() to split_huge_pmd() We are going to decouple splitting THP PMD from splitting underlying compound page. This patch renames split_huge_page_pmd*() functions to split_huge_pmd*() to reflect the fact that it doesn't imply page splitting, only PMD. Signed-off-by: Kirill A. Shutemov Tested-by: Sasha Levin Tested-by: Aneesh Kumar K.V Acked-by: Jerome Marchand Acked-by: Vlastimil Babka Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/powerpc/mm/subpage-prot.c | 2 +- arch/x86/kernel/vm86_32.c | 6 +++++- include/linux/huge_mm.h | 8 ++------ mm/gup.c | 2 +- mm/huge_memory.c | 32 +++++++++++--------------------- mm/memory.c | 2 +- mm/mempolicy.c | 2 +- mm/mprotect.c | 2 +- mm/mremap.c | 2 +- mm/pagewalk.c | 2 +- 10 files changed, 25 insertions(+), 35 deletions(-) commit b1caa957ae6da3142a73ba8c5c9b2ca821021f0f Author: Kirill A. Shutemov Date: Fri Jan 15 16:52:39 2016 -0800 khugepaged: ignore pmd tables with THP mapped with ptes Prepare khugepaged to see compound pages mapped with pte. For now we won't collapse the pmd table with such pte. khugepaged is subject for future rework wrt new refcounting. Signed-off-by: Kirill A. Shutemov Tested-by: Sasha Levin Tested-by: Aneesh Kumar K.V Acked-by: Jerome Marchand Acked-by: Vlastimil Babka Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/trace/events/huge_memory.h | 1 + mm/huge_memory.c | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) commit 7479df6da9506a624ae214588269ed42221494f9 Author: Kirill A. Shutemov Date: Fri Jan 15 16:52:35 2016 -0800 thp, mlock: do not allow huge pages in mlocked area With new refcounting THP can belong to several VMAs. This makes tricky to track THP pages, when they partially mlocked. It can lead to leaking mlocked pages to non-VM_LOCKED vmas and other problems. With this patch we will split all pages on mlock and avoid fault-in/collapse new THP in VM_LOCKED vmas. I've tried alternative approach: do not mark THP pages mlocked and keep them on normal LRUs. This way vmscan could try to split huge pages on memory pressure and free up subpages which doesn't belong to VM_LOCKED vmas. But this is user-visible change: we screw up Mlocked accouting reported in meminfo, so I had to leave this approach aside. We can bring something better later, but this should be good enough for now. Signed-off-by: Kirill A. Shutemov Tested-by: Sasha Levin Tested-by: Aneesh Kumar K.V Acked-by: Jerome Marchand Cc: Vlastimil Babka Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/gup.c | 3 ++- mm/huge_memory.c | 5 ++++- mm/memory.c | 3 ++- mm/mlock.c | 51 +++++++++++++++++++-------------------------------- 4 files changed, 27 insertions(+), 35 deletions(-) commit 7aef4172c7957d7e65fc172be4c99becaef855d4 Author: Kirill A. Shutemov Date: Fri Jan 15 16:52:32 2016 -0800 mm: handle PTE-mapped tail pages in gerneric fast gup implementaiton With new refcounting we are going to see THP tail pages mapped with PTE. Generic fast GUP rely on page_cache_get_speculative() to obtain reference on page. page_cache_get_speculative() always fails on tail pages, because ->_count on tail pages is always zero. Let's handle tail pages in gup_pte_range(). New split_huge_page() will rely on migration entries to freeze page's counts. Recheck PTE value after page_cache_get_speculative() on head page should be enough to serialize against split. Signed-off-by: Kirill A. Shutemov Tested-by: Sasha Levin Tested-by: Aneesh Kumar K.V Acked-by: Jerome Marchand Acked-by: Vlastimil Babka Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/gup.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 6742d293cbe01d6d87251c9d4dfa246f9833357f Author: Kirill A. Shutemov Date: Fri Jan 15 16:52:28 2016 -0800 mm: adjust FOLL_SPLIT for new refcounting We need to prepare kernel to allow transhuge pages to be mapped with ptes too. We need to handle FOLL_SPLIT in follow_page_pte(). Also we use split_huge_page() directly instead of split_huge_page_pmd(). split_huge_page_pmd() will gone. Signed-off-by: Kirill A. Shutemov Tested-by: Sasha Levin Tested-by: Aneesh Kumar K.V Acked-by: Vlastimil Babka Acked-by: Jerome Marchand Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/gup.c | 67 +++++++++++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 49 insertions(+), 18 deletions(-) commit 1f25fe20a76af0d960172fb104d4b13697cafa84 Author: Kirill A. Shutemov Date: Fri Jan 15 16:52:24 2016 -0800 mm, thp: adjust conditions when we can reuse the page on WP fault With new refcounting we will be able map the same compound page with PTEs and PMDs. It requires adjustment to conditions when we can reuse the page on write-protection fault. For PTE fault we can't reuse the page if it's part of huge page. For PMD we can only reuse the page if nobody else maps the huge page or it's part. We can do it by checking page_mapcount() on each sub-page, but it's expensive. The cheaper way is to check page_count() to be equal 1: every mapcount takes page reference, so this way we can guarantee, that the PMD is the only mapping. This approach can give false negative if somebody pinned the page, but that doesn't affect correctness. Signed-off-by: Kirill A. Shutemov Tested-by: Sasha Levin Tested-by: Aneesh Kumar K.V Acked-by: Jerome Marchand Acked-by: Vlastimil Babka Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/swap.h | 3 ++- mm/huge_memory.c | 12 +++++++++++- mm/swapfile.c | 3 +++ 3 files changed, 16 insertions(+), 2 deletions(-) commit f627c2f53786b0445abca47f6aa84c96a1fffec2 Author: Kirill A. Shutemov Date: Fri Jan 15 16:52:20 2016 -0800 memcg: adjust to support new THP refcounting As with rmap, with new refcounting we cannot rely on PageTransHuge() to check if we need to charge size of huge page form the cgroup. We need to get information from caller to know whether it was mapped with PMD or PTE. We do uncharge when last reference on the page gone. At that point if we see PageTransHuge() it means we need to unchange whole huge page. The tricky part is partial unmap -- when we try to unmap part of huge page. We don't do a special handing of this situation, meaning we don't uncharge the part of huge page unless last user is gone or split_huge_page() is triggered. In case of cgroup memory pressure happens the partial unmapped page will be split through shrinker. This should be good enough. Signed-off-by: Kirill A. Shutemov Tested-by: Sasha Levin Tested-by: Aneesh Kumar K.V Acked-by: Vlastimil Babka Acked-by: Jerome Marchand Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memcontrol.h | 16 +++++++----- kernel/events/uprobes.c | 7 +++--- mm/filemap.c | 8 +++--- mm/huge_memory.c | 32 +++++++++++++----------- mm/memcontrol.c | 62 +++++++++++++++++----------------------------- mm/memory.c | 28 ++++++++++----------- mm/shmem.c | 21 +++++++++------- mm/swapfile.c | 9 ++++--- mm/userfaultfd.c | 6 ++--- 9 files changed, 92 insertions(+), 97 deletions(-) commit d281ee6145183594788ab6d5b55f8d144e69eace Author: Kirill A. Shutemov Date: Fri Jan 15 16:52:16 2016 -0800 rmap: add argument to charge compound page We're going to allow mapping of individual 4k pages of THP compound page. It means we cannot rely on PageTransHuge() check to decide if map/unmap small page or THP. The patch adds new argument to rmap functions to indicate whether we want to operate on whole compound page or only the small page. [n-horiguchi@ah.jp.nec.com: fix mapcount mismatch in hugepage migration] Signed-off-by: Kirill A. Shutemov Tested-by: Sasha Levin Tested-by: Aneesh Kumar K.V Acked-by: Vlastimil Babka Acked-by: Jerome Marchand Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Naoya Horiguchi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/rmap.h | 12 +++++++++--- kernel/events/uprobes.c | 4 ++-- mm/huge_memory.c | 16 ++++++++-------- mm/hugetlb.c | 4 ++-- mm/ksm.c | 4 ++-- mm/memory.c | 14 +++++++------- mm/migrate.c | 8 ++++---- mm/rmap.c | 48 +++++++++++++++++++++++++++++++----------------- mm/swapfile.c | 4 ++-- mm/userfaultfd.c | 2 +- 10 files changed, 68 insertions(+), 48 deletions(-) commit afd9883f93b6d030682d7072852b50c5a1b17b63 Author: Kirill A. Shutemov Date: Fri Jan 15 16:52:13 2016 -0800 mm, proc: adjust PSS calculation The goal of this patchset is to make refcounting on THP pages cheaper with simpler semantics and allow the same THP compound page to be mapped with PMD and PTEs. This is required to get reasonable THP-pagecache implementation. With the new refcounting design it's much easier to protect against split_huge_page(): simple reference on a page will make you the deal. It makes gup_fast() implementation simpler and doesn't require special-case in futex code to handle tail THP pages. It should improve THP utilization over the system since splitting THP in one process doesn't necessary lead to splitting the page in all other processes have the page mapped. The patchset drastically lower complexity of get_page()/put_page() codepaths. I encourage people look on this code before-and-after to justify time budget on reviewing this patchset. This patch (of 37): With new refcounting all subpages of the compound page are not necessary have the same mapcount. We need to take into account mapcount of every sub-page. Signed-off-by: Kirill A. Shutemov Tested-by: Sasha Levin Tested-by: Aneesh Kumar K.V Acked-by: Jerome Marchand Acked-by: Vlastimil Babka Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Naoya Horiguchi Cc: Steve Capper Cc: Johannes Weiner Cc: Michal Hocko Cc: Christoph Lameter Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/proc/task_mmu.c | 47 +++++++++++++++++++++++++++++++---------------- 1 file changed, 31 insertions(+), 16 deletions(-) commit 685eaade56c66c806dbe8102f12e2926cf4ec870 Author: Kirill A. Shutemov Date: Fri Jan 15 16:52:10 2016 -0800 page-flags: drop __TestClearPage*() helpers Nobody uses them. Signed-off-by: Kirill A. Shutemov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/page-flags.h | 10 +--------- scripts/tags.sh | 2 -- 2 files changed, 1 insertion(+), 11 deletions(-) commit 1c290f642101e64f379e38ea0361d097c08e824d Author: Kirill A. Shutemov Date: Fri Jan 15 16:52:07 2016 -0800 mm: sanitize page->mapping for tail pages We don't define meaning of page->mapping for tail pages. Currently it's always NULL, which can be inconsistent with head page and potentially lead to problems. Let's poison the pointer to catch all illigal uses. page_rmapping(), page_mapping() and page_anon_vma() are changed to look on head page. The only illegal use I've caught so far is __GPF_COMP pages from sound subsystem, mapped with PTEs. do_shared_fault() is changed to use page_rmapping() instead of direct access to fault_page->mapping. Signed-off-by: Kirill A. Shutemov Reviewed-by: Jérôme Glisse Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Vlastimil Babka Cc: Christoph Lameter Cc: Naoya Horiguchi Cc: Steve Capper Cc: "Aneesh Kumar K.V" Cc: Johannes Weiner Cc: Michal Hocko Cc: Jerome Marchand Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/poison.h | 4 ++++ mm/huge_memory.c | 2 +- mm/memory.c | 2 +- mm/page_alloc.c | 6 ++++++ mm/util.c | 10 ++++++---- 5 files changed, 18 insertions(+), 6 deletions(-) commit 822cdd1152265d87fcfc974e06c3b68f762987fd Author: Kirill A. Shutemov Date: Fri Jan 15 16:52:03 2016 -0800 page-flags: look at head page if the flag is encoded in page->mapping PageAnon() and PageKsm() look at lower bits of page->mapping to check if the page is Anon or KSM. page->mapping can be overloaded in tail pages. Let's always look at head page to avoid false-positives. Signed-off-by: Kirill A. Shutemov Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Vlastimil Babka Cc: Christoph Lameter Cc: Naoya Horiguchi Cc: Steve Capper Cc: "Aneesh Kumar K.V" Cc: Johannes Weiner Cc: Michal Hocko Cc: Jerome Marchand Cc: Jérôme Glisse Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/page-flags.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit d2998c4de2937b964ea63aa2c08183f28462d532 Author: Kirill A. Shutemov Date: Fri Jan 15 16:52:00 2016 -0800 page-flags: define PG_uptodate behavior on compound pages We use PG_uptodate on head pages on transparent huge page. Let's use PF_NO_TAIL. Signed-off-by: Kirill A. Shutemov Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Vlastimil Babka Cc: Christoph Lameter Cc: Naoya Horiguchi Cc: Steve Capper Cc: "Aneesh Kumar K.V" Cc: Johannes Weiner Cc: Michal Hocko Cc: Jerome Marchand Cc: Jérôme Glisse Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/page-flags.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit b9d418170aefb020ebd4c60040d69c4399851aa3 Author: Kirill A. Shutemov Date: Fri Jan 15 16:51:56 2016 -0800 page-flags: define PG_uncached behavior on compound pages So far, only IA64 uses PG_uncached and only on non-compound pages. Signed-off-by: Kirill A. Shutemov Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Vlastimil Babka Cc: Christoph Lameter Cc: Naoya Horiguchi Cc: Steve Capper Cc: "Aneesh Kumar K.V" Cc: Johannes Weiner Cc: Michal Hocko Cc: Jerome Marchand Cc: Jérôme Glisse Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/page-flags.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e4f87d5d752d259b274681420b010c65006301a6 Author: Kirill A. Shutemov Date: Fri Jan 15 16:51:53 2016 -0800 page-flags: define PG_mlocked behavior on compound pages Transparent huge pages can be mlocked -- whole compund page at once. Something went wrong if we're trying to mlock() tail page. Let's use PF_NO_TAIL. Signed-off-by: Kirill A. Shutemov Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Vlastimil Babka Cc: Christoph Lameter Cc: Naoya Horiguchi Cc: Steve Capper Cc: "Aneesh Kumar K.V" Cc: Johannes Weiner Cc: Michal Hocko Cc: Jerome Marchand Cc: Jérôme Glisse Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/page-flags.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 50ea78d676d4282a403f956229505b9fddf69f3a Author: Kirill A. Shutemov Date: Fri Jan 15 16:51:49 2016 -0800 page-flags: define PG_swapcache behavior on compound pages Swap cannot handle compound pages so far. Transparent huge pages are split on the way to swap. Signed-off-by: Kirill A. Shutemov Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Vlastimil Babka Cc: Christoph Lameter Cc: Naoya Horiguchi Cc: Steve Capper Cc: "Aneesh Kumar K.V" Cc: Johannes Weiner Cc: Michal Hocko Cc: Jerome Marchand Cc: Jérôme Glisse Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/page-flags.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit da5efc408baefd686b0ee2cbd1353eb10ec71a0f Author: Kirill A. Shutemov Date: Fri Jan 15 16:51:46 2016 -0800 page-flags: define PG_swapbacked behavior on compound pages PG_swapbacked is used for transparent huge pages. For head pages only. Let's use PF_NO_TAIL policy. Signed-off-by: Kirill A. Shutemov Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Vlastimil Babka Cc: Christoph Lameter Cc: Naoya Horiguchi Cc: Steve Capper Cc: "Aneesh Kumar K.V" Cc: Johannes Weiner Cc: Michal Hocko Cc: Jerome Marchand Cc: Jérôme Glisse Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/page-flags.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit de09d31dd38a50fdce106c15abd68432eebbd014 Author: Kirill A. Shutemov Date: Fri Jan 15 16:51:42 2016 -0800 page-flags: define PG_reserved behavior on compound pages As far as I can see there's no users of PG_reserved on compound pages. Let's use PF_NO_COMPOUND here. Signed-off-by: Kirill A. Shutemov Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Vlastimil Babka Cc: Christoph Lameter Cc: Naoya Horiguchi Cc: Steve Capper Cc: "Aneesh Kumar K.V" Cc: Johannes Weiner Cc: Michal Hocko Cc: Jerome Marchand Cc: Jérôme Glisse Cc: Hillf Danton Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/page-flags.h | 3 ++- mm/hugetlb.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) commit c13985fa800312fdcd4c7d67a1f55abcbc2f6b7d Author: Kirill A. Shutemov Date: Fri Jan 15 16:51:39 2016 -0800 page-flags: define behavior of Xen-related flags on compound pages PG_pinned and PG_savepinned are about page table's pages which are never compound. I'm not so sure about PG_foreign, but it seems we shouldn't see compound pages there too. Let's use PF_NO_COMPOUND for all of them. Signed-off-by: Kirill A. Shutemov Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Vlastimil Babka Cc: Christoph Lameter Cc: Naoya Horiguchi Cc: Steve Capper Cc: "Aneesh Kumar K.V" Cc: Johannes Weiner Cc: Michal Hocko Cc: Jerome Marchand Cc: Jérôme Glisse Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/page-flags.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit dcb351cd095a3a1e1100b74f15a0100cf9a0c700 Author: Kirill A. Shutemov Date: Fri Jan 15 16:51:35 2016 -0800 page-flags: define behavior SL*B-related flags on compound pages SL*B uses compound pages and marks head pages with PG_slab. __SetPageSlab() and __ClearPageSlab() are never called for tail pages. The same situation with PG_slob_free in SLOB allocator. PF_NO_TAIL is appropriate for these flags. Signed-off-by: Kirill A. Shutemov Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Vlastimil Babka Cc: Christoph Lameter Cc: Naoya Horiguchi Cc: Steve Capper Cc: "Aneesh Kumar K.V" Cc: Johannes Weiner Cc: Michal Hocko Cc: Jerome Marchand Cc: Jérôme Glisse Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/page-flags.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 8cb38fabb6bc1ba8bcec83eaf04848d886b54d28 Author: Kirill A. Shutemov Date: Fri Jan 15 16:51:32 2016 -0800 page-flags: define behavior of LRU-related flags on compound pages Only head pages are ever on LRU. Let's use PF_HEAD policy to avoid any confusion for all LRU-related flags. Signed-off-by: Kirill A. Shutemov Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Vlastimil Babka Cc: Christoph Lameter Cc: Naoya Horiguchi Cc: Steve Capper Cc: "Aneesh Kumar K.V" Cc: Johannes Weiner Cc: Michal Hocko Cc: Jerome Marchand Cc: Jérôme Glisse Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/page-flags.h | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit df8c94d13c7e30f4471f8faa8d544809a0e52865 Author: Kirill A. Shutemov Date: Fri Jan 15 16:51:28 2016 -0800 page-flags: define behavior of FS/IO-related flags on compound pages It seems we don't have compound page on FS/IO path currently. Use PF_NO_COMPOUND to catch if we have. The odd exception is PG_dirty: sound uses compound pages and maps them with PTEs. PF_NO_COMPOUND triggers VM_BUG_ON() in set_page_dirty() on handling shared fault. Let's use PF_HEAD for PG_dirty. Signed-off-by: Kirill A. Shutemov Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Vlastimil Babka Cc: Christoph Lameter Cc: Naoya Horiguchi Cc: Steve Capper Cc: "Aneesh Kumar K.V" Cc: Johannes Weiner Cc: Michal Hocko Cc: Jerome Marchand Cc: Jérôme Glisse Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/page-flags.h | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) commit 48c935ad88f5be20eb5445a77c171351b1eb5111 Author: Kirill A. Shutemov Date: Fri Jan 15 16:51:24 2016 -0800 page-flags: define PG_locked behavior on compound pages lock_page() must operate on the whole compound page. It doesn't make much sense to lock part of compound page. Change code to use head page's PG_locked, if tail page is passed. This patch also gets rid of custom helper functions -- __set_page_locked() and __clear_page_locked(). They are replaced with helpers generated by __SETPAGEFLAG/__CLEARPAGEFLAG. Tail pages to these helper would trigger VM_BUG_ON(). SLUB uses PG_locked as a bit spin locked. IIUC, tail pages should never appear there. VM_BUG_ON() is added to make sure that this assumption is correct. [akpm@linux-foundation.org: fix fs/cifs/file.c] Signed-off-by: Kirill A. Shutemov Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Vlastimil Babka Cc: Christoph Lameter Cc: Naoya Horiguchi Cc: Steve Capper Cc: "Aneesh Kumar K.V" Cc: Johannes Weiner Cc: Michal Hocko Cc: Jerome Marchand Cc: Jérôme Glisse Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/cifs/file.c | 8 ++++---- include/linux/page-flags.h | 2 +- include/linux/pagemap.h | 25 ++++++++----------------- mm/filemap.c | 15 +++++++++------ mm/ksm.c | 2 +- mm/memory-failure.c | 2 +- mm/migrate.c | 2 +- mm/shmem.c | 4 ++-- mm/slub.c | 2 ++ mm/swap_state.c | 4 ++-- mm/vmscan.c | 2 +- 11 files changed, 32 insertions(+), 36 deletions(-) commit 95ad97554ac81b31139d4fe5ed8757a07087cd90 Author: Kirill A. Shutemov Date: Fri Jan 15 16:51:21 2016 -0800 page-flags: introduce page flags policies wrt compound pages This patch adds a third argument to macros which create function definitions for page flags. This argument defines how page-flags helpers behave on compound functions. For now we define four policies: - PF_ANY: the helper function operates on the page it gets, regardless if it's non-compound, head or tail. - PF_HEAD: the helper function operates on the head page of the compound page if it gets tail page. - PF_NO_TAIL: only head and non-compond pages are acceptable for this helper function. - PF_NO_COMPOUND: only non-compound pages are acceptable for this helper function. For now we use policy PF_ANY for all helpers, which matches current behaviour. We do not enforce the policy for TESTPAGEFLAG, because we have flags checked for random pages all over the kernel. Noticeable exception to this is PageTransHuge() which triggers VM_BUG_ON() for tail page. Signed-off-by: Kirill A. Shutemov Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Vlastimil Babka Cc: Christoph Lameter Cc: Naoya Horiguchi Cc: Steve Capper Cc: "Aneesh Kumar K.V" Cc: Johannes Weiner Cc: Michal Hocko Cc: Jerome Marchand Cc: Jérôme Glisse Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/mmdebug.h | 6 ++ include/linux/page-flags.h | 166 ++++++++++++++++++++++++++++----------------- lib/Kconfig.debug | 8 +++ 3 files changed, 116 insertions(+), 64 deletions(-) commit 0e6d31a7336f41ef0375f5398c79e54de8e219b6 Author: Kirill A. Shutemov Date: Fri Jan 15 16:51:17 2016 -0800 page-flags: move code around The preparation patch: we are going to use compound_head(), PageTail() and PageCompound() to define page-flags helpers. Let's define them before macros. We cannot user PageHead() helper in PageCompound() as it's not yet defined -- use test_bit(PG_head, &page->flags) instead. Signed-off-by: Kirill A. Shutemov Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Vlastimil Babka Cc: Christoph Lameter Cc: Naoya Horiguchi Cc: Steve Capper Cc: "Aneesh Kumar K.V" Cc: Johannes Weiner Cc: Michal Hocko Cc: Jerome Marchand Cc: Jérôme Glisse Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/page-flags.h | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) commit d8c1bdeb5d6b62b34a78391206a5e55e4a02d58f Author: Kirill A. Shutemov Date: Fri Jan 15 16:51:13 2016 -0800 page-flags: trivial cleanup for PageTrans* helpers Use TESTPAGEFLAG_FALSE() to get it a bit cleaner. Signed-off-by: Kirill A. Shutemov Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Dave Hansen Cc: Mel Gorman Cc: Rik van Riel Cc: Vlastimil Babka Cc: Christoph Lameter Cc: Naoya Horiguchi Cc: Steve Capper Cc: "Aneesh Kumar K.V" Cc: Johannes Weiner Cc: Michal Hocko Cc: Jerome Marchand Cc: Jérôme Glisse Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/page-flags.h | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) commit c2e771b02792d222cbcd9617fe71482a64f52647 Author: Simon Horman Date: Fri Dec 11 11:30:12 2015 +0900 PCI: Limit config space size for Netronome NFP4000 Like the NFP6000, the NFP4000 as an erratum where reading/writing to PCI config space addresses above 0x600 can cause the NFP to generate PCIe completion timeouts. Limit the NFP4000's PF's config space size to 0x600 bytes as is already done for the NFP6000. The NFP4000's VF is 0x6004 (PCI_DEVICE_ID_NETRONOME_NFP6000_VF), the same device ID as the NFP6000's VF. Thus, its config space is already limited by the existing use of quirk_nfp6000(). Signed-off-by: Simon Horman Signed-off-by: Bjorn Helgaas drivers/pci/quirks.c | 1 + 1 file changed, 1 insertion(+) commit 69874ec233871a62e1bc8c89e643993af93a8630 Author: Simon Horman Date: Fri Dec 11 11:30:11 2015 +0900 PCI: Add Netronome NFP4000 PF device ID Add the device ID for the PF of the NFP4000. The device ID for the VF, 0x6003, is already present as PCI_DEVICE_ID_NETRONOME_NFP6000_VF. Signed-off-by: Simon Horman Signed-off-by: Bjorn Helgaas include/linux/pci_ids.h | 1 + 1 file changed, 1 insertion(+) commit 3a6384ba105ebbb5e83d040a55bfad2fa43f3048 Merge: 4723584 185a383 Author: Bjorn Helgaas Date: Fri Jan 15 16:14:39 2016 -0600 Merge branch 'pci/host-vmd' into next * pci/host-vmd: x86/PCI: Add driver for Intel Volume Management Device (VMD) PCI/AER: Use 32 bit PCI domain numbers x86/PCI: Allow DMA ops specific to a PCI domain irqdomain: Export irq_domain_set_info() for module use genirq/MSI: Relax msi_domain_alloc() to support parentless MSI irqdomains commit 10475b34f4d71cf71cfe7c5d1f27d8ff3a4eb9bc Author: Jean Delvare Date: Mon Jan 11 17:43:02 2016 +0100 cpuidle: Don't enable all governors by default Since commit d6f346f2d2 (cpuidle: improve governor Kconfig options) the best cpuidle governor is selected automatically. There is little point in additionally selecting the other one as it will not be used, so don't select both governors by default. Being able to select more than one governor is still good for developers booting with cpuidle_sysfs_switch, though. This fixes the second half of kernel BZ #65531. Link: https://bugzilla.kernel.org/show_bug.cgi?id=65531 Signed-off-by: Jean Delvare Signed-off-by: Rafael J. Wysocki drivers/cpuidle/Kconfig | 2 -- 1 file changed, 2 deletions(-) commit 66a5f6b63996d8aa7cbe8841b38297bf3b338194 Author: Jean Delvare Date: Mon Jan 11 17:41:53 2016 +0100 cpuidle: Default to ladder governor on ticking systems The menu governor is currently the default on all systems. However the documentation claims that the ladder governor is preferred on ticking systems. So bump the rating of the ladder governor when NO_HZ is disabled, or when booting with nohz=off. This fixes the first half of kernel BZ #65531. Link: https://bugzilla.kernel.org/show_bug.cgi?id=65531 Signed-off-by: Jean Delvare Signed-off-by: Rafael J. Wysocki drivers/cpuidle/governors/ladder.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 46373a15f65fe862f31c19a484acdf551f2b442f Author: Jean Delvare Date: Mon Jan 11 17:40:31 2016 +0100 time: nohz: Expose tick_nohz_enabled The cpuidle subsystem needs it. Signed-off-by: Jean Delvare Reviewed-by: Thomas Gleixner Signed-off-by: Rafael J. Wysocki include/linux/tick.h | 2 ++ kernel/time/tick-sched.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) commit 4e5448a31d73d0e944b7adb9049438a09bc332cb Merge: 5a18d26 750afbf Author: Linus Torvalds Date: Fri Jan 15 13:33:12 2016 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Pull networking fixes from David Miller: "A quick set of bug fixes after there initial networking merge: 1) Netlink multicast group storage allocator only was tested with nr_groups equal to 1, make it work for other values too. From Matti Vaittinen. 2) Check build_skb() return value in macb and hip04_eth drivers, from Weidong Wang. 3) Don't leak x25_asy on x25_asy_open() failure. 4) More DMA map/unmap fixes in 3c59x from Neil Horman. 5) Don't clobber IP skb control block during GSO segmentation, from Konstantin Khlebnikov. 6) ECN helpers for ipv6 don't fixup the checksum, from Eric Dumazet. 7) Fix SKB segment utilization estimation in xen-netback, from David Vrabel. 8) Fix lockdep splat in bridge addrlist handling, from Nikolay Aleksandrov" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (26 commits) bgmac: Fix reversed test of build_skb() return value. bridge: fix lockdep addr_list_lock false positive splat net: smsc: Add support h8300 xen-netback: free queues after freeing the net device xen-netback: delete NAPI instance when queue fails to initialize xen-netback: use skb to determine number of required guest Rx requests net: sctp: Move sequence start handling into sctp_transport_get_idx() ipv6: update skb->csum when CE mark is propagated net: phy: turn carrier off on phy attach net: macb: clear interrupts when disabling them sctp: support to lookup with ep+paddr in transport rhashtable net: hns: fixes no syscon error when init mdio dts: hisi: fixes no syscon fault when init mdio net: preserve IP control block during GSO segmentation fsl/fman: Delete one function call "put_device" in dtsec_config() hip04_eth: fix missing error handle for build_skb failed 3c59x: fix another page map/single unmap imbalance 3c59x: balance page maps and unmaps x25_asy: Free x25_asy on x25_asy_open() failure. mlxsw: fix SWITCHDEV_OBJ_ID_PORT_MDB ... commit 5a18d263f8d27418c98b8e8551dadfe975c054e3 Merge: f689b74 36beca6 Author: Linus Torvalds Date: Fri Jan 15 13:28:12 2016 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc Pull sparc fixes from David Miller: "Two sparc bug fixes" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc: sparc64: Fix numa node distance initialization sparc64: fix incorrect sign extension in sys_sparc64_personality commit 770188f79e91771b95bd9b015fbbff19873bbea6 Author: Bob Moore Date: Fri Jan 15 08:17:20 2016 +0800 ACPICA: Update version to 20160108 Version 20160108 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki include/acpi/acpixf.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c11e5dd3eadf3abcddcc509605eb24c20c03fc6d Author: Lv Zheng Date: Fri Jan 15 08:17:11 2016 +0800 ACPICA: Silence a -Wbad-function-cast warning when acpi_uintptr_t is 'uintptr_t' Do not pass the return value of strtoul() to the ACPI_TO_POINTER() macro to avoid a -Wbad-function-cast warning. Signed-off-by: Sascha Wildner Signed-off-by: Lv Zheng [ rjw: Changelog ] Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/dbdisply.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit f689b742f217b2ffe7925f8a6521b208ee995309 Merge: 37cea93 be6bfc2 Author: Linus Torvalds Date: Fri Jan 15 13:18:47 2016 -0800 Merge tag 'powerpc-4.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux Pull powerpc updates from Michael Ellerman: "Core: - Ground work for the new Power9 MMU from Aneesh Kumar K.V - Optimise FP/VMX/VSX context switching from Anton Blanchard Misc: - Various cleanups from Krzysztof Kozlowski, John Ogness, Rashmica Gupta, Russell Currey, Gavin Shan, Daniel Axtens, Michael Neuling, Andrew Donnellan - Allow wrapper to work on non-english system from Laurent Vivier - Add rN aliases to the pt_regs_offset table from Rashmica Gupta - Fix module autoload for rackmeter & axonram drivers from Luis de Bethencourt - Include KVM guest test in all interrupt vectors from Paul Mackerras - Fix DSCR inheritance over fork() from Anton Blanchard - Make value-returning atomics & {cmp}xchg* & their atomic_ versions fully ordered from Boqun Feng - Print MSR TM bits in oops messages from Michael Neuling - Add TM signal return & invalid stack selftests from Michael Neuling - Limit EPOW reset event warnings from Vipin K Parashar - Remove the Cell QPACE code from Rashmica Gupta - Append linux_banner to exception information in xmon from Rashmica Gupta - Add selftest to check if VSRs are corrupted from Rashmica Gupta - Remove broken GregorianDay() from Daniel Axtens - Import Anton's context_switch2 benchmark into selftests from Michael Ellerman - Add selftest script to test HMI functionality from Daniel Axtens - Remove obsolete OPAL v2 support from Stewart Smith - Make enter_rtas() private from Michael Ellerman - PPR exception cleanups from Michael Ellerman - Add page soft dirty tracking from Laurent Dufour - Add support for Nvlink NPUs from Alistair Popple - Add support for kexec on 476fpe from Alistair Popple - Enable kernel CPU dlpar from sysfs from Nathan Fontenot - Copy only required pieces of the mm_context_t to the paca from Michael Neuling - Add a kmsg_dumper that flushes OPAL console output on panic from Russell Currey - Implement save_stack_trace_regs() to enable kprobe stack tracing from Steven Rostedt - Add HWCAP bits for Power9 from Michael Ellerman - Fix _PAGE_PTE breaking swapoff from Aneesh Kumar K.V - Fix _PAGE_SWP_SOFT_DIRTY breaking swapoff from Hugh Dickins - scripts/recordmcount.pl: support data in text section on powerpc from Ulrich Weigand - Handle R_PPC64_ENTRY relocations in modules from Ulrich Weigand cxl: - cxl: Fix possible idr warning when contexts are released from Vaibhav Jain - cxl: use correct operator when writing pcie config space values from Andrew Donnellan - cxl: Fix DSI misses when the context owning task exits from Vaibhav Jain - cxl: fix build for GCC 4.6.x from Brian Norris - cxl: use -Werror only with CONFIG_PPC_WERROR from Brian Norris - cxl: Enable PCI device ID for future IBM CXL adapter from Uma Krishnan Freescale: - Freescale updates from Scott: Highlights include moving QE code out of arch/powerpc (to be shared with arm), device tree updates, and minor fixes" * tag 'powerpc-4.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (149 commits) powerpc/module: Handle R_PPC64_ENTRY relocations scripts/recordmcount.pl: support data in text section on powerpc powerpc/powernv: Fix OPAL_CONSOLE_FLUSH prototype and usages powerpc/mm: fix _PAGE_SWP_SOFT_DIRTY breaking swapoff powerpc/mm: Fix _PAGE_PTE breaking swapoff cxl: Enable PCI device ID for future IBM CXL adapter cxl: use -Werror only with CONFIG_PPC_WERROR cxl: fix build for GCC 4.6.x powerpc: Add HWCAP bits for Power9 powerpc/powernv: Reserve PE#0 on NPU powerpc/powernv: Change NPU PE# assignment powerpc/powernv: Fix update of NVLink DMA mask powerpc/powernv: Remove misleading comment in pci.c powerpc: Implement save_stack_trace_regs() to enable kprobe stack tracing powerpc: Fix build break due to paca mm_context_t changes cxl: Fix DSI misses when the context owning task exits MAINTAINERS: Update Scott Wood's e-mail address powerpc/powernv: Fix minor off-by-one error in opal_mce_check_early_recovery() powerpc: Fix style of self-test config prompts powerpc/powernv: Only delay opal_rtc_read() retry when necessary ... commit c8100dc4643d80a94f074dfc8a2af3d3d327b7aa Author: Bob Moore Date: Fri Jan 15 08:17:03 2016 +0800 ACPICA: Additional 2016 copyright changes All tool/utility signons. Dual-license module header. Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acapps.h | 4 ++-- drivers/acpi/acpica/accommon.h | 2 +- drivers/acpi/acpica/acdebug.h | 2 +- drivers/acpi/acpica/acdispat.h | 2 +- drivers/acpi/acpica/acevents.h | 2 +- drivers/acpi/acpica/acglobal.h | 2 +- drivers/acpi/acpica/achware.h | 2 +- drivers/acpi/acpica/acinterp.h | 2 +- drivers/acpi/acpica/aclocal.h | 2 +- drivers/acpi/acpica/acmacros.h | 2 +- drivers/acpi/acpica/acnamesp.h | 2 +- drivers/acpi/acpica/acobject.h | 2 +- drivers/acpi/acpica/acopcode.h | 2 +- drivers/acpi/acpica/acparser.h | 2 +- drivers/acpi/acpica/acpredef.h | 2 +- drivers/acpi/acpica/acresrc.h | 2 +- drivers/acpi/acpica/acstruct.h | 2 +- drivers/acpi/acpica/actables.h | 2 +- drivers/acpi/acpica/acutils.h | 2 +- drivers/acpi/acpica/amlcode.h | 2 +- drivers/acpi/acpica/amlresrc.h | 2 +- drivers/acpi/acpica/dbcmds.c | 2 +- drivers/acpi/acpica/dbconvert.c | 2 +- drivers/acpi/acpica/dbdisply.c | 2 +- drivers/acpi/acpica/dbexec.c | 2 +- drivers/acpi/acpica/dbfileio.c | 2 +- drivers/acpi/acpica/dbhistry.c | 2 +- drivers/acpi/acpica/dbinput.c | 2 +- drivers/acpi/acpica/dbmethod.c | 2 +- drivers/acpi/acpica/dbnames.c | 2 +- drivers/acpi/acpica/dbobject.c | 2 +- drivers/acpi/acpica/dbstats.c | 2 +- drivers/acpi/acpica/dbtest.c | 2 +- drivers/acpi/acpica/dbutils.c | 2 +- drivers/acpi/acpica/dbxface.c | 2 +- drivers/acpi/acpica/dsargs.c | 2 +- drivers/acpi/acpica/dscontrol.c | 2 +- drivers/acpi/acpica/dsdebug.c | 2 +- drivers/acpi/acpica/dsfield.c | 2 +- drivers/acpi/acpica/dsinit.c | 2 +- drivers/acpi/acpica/dsmethod.c | 2 +- drivers/acpi/acpica/dsmthdat.c | 2 +- drivers/acpi/acpica/dsobject.c | 2 +- drivers/acpi/acpica/dsopcode.c | 2 +- drivers/acpi/acpica/dsutils.c | 2 +- drivers/acpi/acpica/dswexec.c | 2 +- drivers/acpi/acpica/dswload.c | 2 +- drivers/acpi/acpica/dswload2.c | 2 +- drivers/acpi/acpica/dswscope.c | 2 +- drivers/acpi/acpica/dswstate.c | 2 +- drivers/acpi/acpica/evevent.c | 2 +- drivers/acpi/acpica/evglock.c | 2 +- drivers/acpi/acpica/evgpe.c | 2 +- drivers/acpi/acpica/evgpeblk.c | 2 +- drivers/acpi/acpica/evgpeinit.c | 2 +- drivers/acpi/acpica/evgpeutil.c | 2 +- drivers/acpi/acpica/evhandler.c | 2 +- drivers/acpi/acpica/evmisc.c | 2 +- drivers/acpi/acpica/evregion.c | 2 +- drivers/acpi/acpica/evrgnini.c | 2 +- drivers/acpi/acpica/evsci.c | 2 +- drivers/acpi/acpica/evxface.c | 2 +- drivers/acpi/acpica/evxfevnt.c | 2 +- drivers/acpi/acpica/evxfgpe.c | 2 +- drivers/acpi/acpica/evxfregn.c | 2 +- drivers/acpi/acpica/exconfig.c | 2 +- drivers/acpi/acpica/exconvrt.c | 2 +- drivers/acpi/acpica/excreate.c | 2 +- drivers/acpi/acpica/exdebug.c | 2 +- drivers/acpi/acpica/exdump.c | 2 +- drivers/acpi/acpica/exfield.c | 2 +- drivers/acpi/acpica/exfldio.c | 2 +- drivers/acpi/acpica/exmisc.c | 2 +- drivers/acpi/acpica/exmutex.c | 2 +- drivers/acpi/acpica/exnames.c | 2 +- drivers/acpi/acpica/exoparg1.c | 2 +- drivers/acpi/acpica/exoparg2.c | 2 +- drivers/acpi/acpica/exoparg3.c | 2 +- drivers/acpi/acpica/exoparg6.c | 2 +- drivers/acpi/acpica/exprep.c | 2 +- drivers/acpi/acpica/exregion.c | 2 +- drivers/acpi/acpica/exresnte.c | 2 +- drivers/acpi/acpica/exresolv.c | 2 +- drivers/acpi/acpica/exresop.c | 2 +- drivers/acpi/acpica/exstore.c | 2 +- drivers/acpi/acpica/exstoren.c | 2 +- drivers/acpi/acpica/exstorob.c | 2 +- drivers/acpi/acpica/exsystem.c | 2 +- drivers/acpi/acpica/extrace.c | 2 +- drivers/acpi/acpica/exutils.c | 2 +- drivers/acpi/acpica/hwacpi.c | 2 +- drivers/acpi/acpica/hwesleep.c | 2 +- drivers/acpi/acpica/hwgpe.c | 2 +- drivers/acpi/acpica/hwpci.c | 2 +- drivers/acpi/acpica/hwregs.c | 2 +- drivers/acpi/acpica/hwsleep.c | 2 +- drivers/acpi/acpica/hwtimer.c | 2 +- drivers/acpi/acpica/hwvalid.c | 2 +- drivers/acpi/acpica/hwxface.c | 2 +- drivers/acpi/acpica/hwxfsleep.c | 2 +- drivers/acpi/acpica/nsaccess.c | 2 +- drivers/acpi/acpica/nsalloc.c | 2 +- drivers/acpi/acpica/nsarguments.c | 2 +- drivers/acpi/acpica/nsconvert.c | 2 +- drivers/acpi/acpica/nsdump.c | 2 +- drivers/acpi/acpica/nsdumpdv.c | 2 +- drivers/acpi/acpica/nseval.c | 2 +- drivers/acpi/acpica/nsinit.c | 2 +- drivers/acpi/acpica/nsload.c | 2 +- drivers/acpi/acpica/nsnames.c | 2 +- drivers/acpi/acpica/nsobject.c | 2 +- drivers/acpi/acpica/nsparse.c | 2 +- drivers/acpi/acpica/nspredef.c | 2 +- drivers/acpi/acpica/nsprepkg.c | 2 +- drivers/acpi/acpica/nsrepair.c | 2 +- drivers/acpi/acpica/nsrepair2.c | 2 +- drivers/acpi/acpica/nssearch.c | 2 +- drivers/acpi/acpica/nsutils.c | 2 +- drivers/acpi/acpica/nswalk.c | 2 +- drivers/acpi/acpica/nsxfeval.c | 2 +- drivers/acpi/acpica/nsxfname.c | 2 +- drivers/acpi/acpica/nsxfobj.c | 2 +- drivers/acpi/acpica/psargs.c | 2 +- drivers/acpi/acpica/psloop.c | 2 +- drivers/acpi/acpica/psobject.c | 2 +- drivers/acpi/acpica/psopcode.c | 2 +- drivers/acpi/acpica/psopinfo.c | 2 +- drivers/acpi/acpica/psparse.c | 2 +- drivers/acpi/acpica/psscope.c | 2 +- drivers/acpi/acpica/pstree.c | 2 +- drivers/acpi/acpica/psutils.c | 2 +- drivers/acpi/acpica/pswalk.c | 2 +- drivers/acpi/acpica/psxface.c | 2 +- drivers/acpi/acpica/rsaddr.c | 2 +- drivers/acpi/acpica/rscalc.c | 2 +- drivers/acpi/acpica/rscreate.c | 2 +- drivers/acpi/acpica/rsdump.c | 2 +- drivers/acpi/acpica/rsdumpinfo.c | 2 +- drivers/acpi/acpica/rsinfo.c | 2 +- drivers/acpi/acpica/rsio.c | 2 +- drivers/acpi/acpica/rsirq.c | 2 +- drivers/acpi/acpica/rslist.c | 2 +- drivers/acpi/acpica/rsmemory.c | 2 +- drivers/acpi/acpica/rsmisc.c | 2 +- drivers/acpi/acpica/rsserial.c | 2 +- drivers/acpi/acpica/rsutils.c | 2 +- drivers/acpi/acpica/rsxface.c | 2 +- drivers/acpi/acpica/tbdata.c | 2 +- drivers/acpi/acpica/tbfadt.c | 2 +- drivers/acpi/acpica/tbfind.c | 2 +- drivers/acpi/acpica/tbinstal.c | 2 +- drivers/acpi/acpica/tbprint.c | 2 +- drivers/acpi/acpica/tbutils.c | 2 +- drivers/acpi/acpica/tbxface.c | 2 +- drivers/acpi/acpica/tbxfload.c | 2 +- drivers/acpi/acpica/tbxfroot.c | 2 +- drivers/acpi/acpica/utaddress.c | 2 +- drivers/acpi/acpica/utalloc.c | 2 +- drivers/acpi/acpica/utbuffer.c | 2 +- drivers/acpi/acpica/utcache.c | 2 +- drivers/acpi/acpica/utcopy.c | 2 +- drivers/acpi/acpica/utdebug.c | 2 +- drivers/acpi/acpica/utdecode.c | 2 +- drivers/acpi/acpica/utdelete.c | 2 +- drivers/acpi/acpica/uterror.c | 2 +- drivers/acpi/acpica/uteval.c | 2 +- drivers/acpi/acpica/utexcep.c | 2 +- drivers/acpi/acpica/utglobal.c | 2 +- drivers/acpi/acpica/uthex.c | 2 +- drivers/acpi/acpica/utids.c | 2 +- drivers/acpi/acpica/utinit.c | 2 +- drivers/acpi/acpica/utlock.c | 2 +- drivers/acpi/acpica/utmath.c | 2 +- drivers/acpi/acpica/utmisc.c | 2 +- drivers/acpi/acpica/utmutex.c | 2 +- drivers/acpi/acpica/utnonansi.c | 2 +- drivers/acpi/acpica/utobject.c | 2 +- drivers/acpi/acpica/utosi.c | 2 +- drivers/acpi/acpica/utownerid.c | 2 +- drivers/acpi/acpica/utpredef.c | 2 +- drivers/acpi/acpica/utprint.c | 2 +- drivers/acpi/acpica/utresrc.c | 2 +- drivers/acpi/acpica/utstate.c | 2 +- drivers/acpi/acpica/utstring.c | 2 +- drivers/acpi/acpica/uttrack.c | 2 +- drivers/acpi/acpica/utuuid.c | 2 +- drivers/acpi/acpica/utxface.c | 2 +- drivers/acpi/acpica/utxferror.c | 2 +- drivers/acpi/acpica/utxfinit.c | 2 +- drivers/acpi/acpica/utxfmutex.c | 2 +- include/acpi/acbuffer.h | 2 +- include/acpi/acconfig.h | 2 +- include/acpi/acexcep.h | 2 +- include/acpi/acnames.h | 2 +- include/acpi/acoutput.h | 2 +- include/acpi/acpi.h | 2 +- include/acpi/acpiosxf.h | 2 +- include/acpi/acpixf.h | 2 +- include/acpi/acrestyp.h | 2 +- include/acpi/actbl.h | 2 +- include/acpi/actbl1.h | 2 +- include/acpi/actbl2.h | 2 +- include/acpi/actbl3.h | 2 +- include/acpi/actypes.h | 2 +- include/acpi/acuuid.h | 2 +- include/acpi/platform/acenv.h | 2 +- include/acpi/platform/acenvex.h | 2 +- include/acpi/platform/acgcc.h | 2 +- include/acpi/platform/aclinux.h | 2 +- include/acpi/platform/aclinuxex.h | 2 +- include/acpi/platform/acmsvcex.h | 2 +- include/acpi/platform/acwinex.h | 2 +- tools/power/acpi/common/cmfsize.c | 2 +- tools/power/acpi/common/getopt.c | 2 +- tools/power/acpi/os_specific/service_layers/oslibcfs.c | 2 +- tools/power/acpi/os_specific/service_layers/oslinuxtbl.c | 2 +- tools/power/acpi/os_specific/service_layers/osunixdir.c | 2 +- tools/power/acpi/os_specific/service_layers/osunixmap.c | 2 +- tools/power/acpi/os_specific/service_layers/osunixxf.c | 2 +- tools/power/acpi/tools/acpidump/acpidump.h | 2 +- tools/power/acpi/tools/acpidump/apdump.c | 2 +- tools/power/acpi/tools/acpidump/apfiles.c | 2 +- tools/power/acpi/tools/acpidump/apmain.c | 2 +- 223 files changed, 224 insertions(+), 224 deletions(-) commit 66e42ee57cf7fb39601100230ff5bba40513f71b Author: Lv Zheng Date: Fri Jan 15 08:16:57 2016 +0800 ACPICA: Reduce regression fix divergence from upstream ACPICA Linux has been fixed during 20151218 release cycle by reverting wrong code in the following commit: ACPICA commit: 071eff738c59eda1792ac24b3b688b61691d7e7c Subject: Add per-table execution of module-level code, early region handlers While upstream ACPICA fixes later in the following commit: ACPICA commit: bf6cfddb4784c349f781758981b207253b5a1252 Subject: Fix for module-level-code regression introduced in 20151218 This results in the divergences and this patch is meant to reduce such divergences. Lv Zheng. Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/nseval.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit b21f2e81bd3fd8ed260590e72901254bca2193cd Author: Hans de Goede Date: Thu Jan 14 14:24:39 2016 +0100 ACPI / video: Add disable_backlight_sysfs_if quirk for the Toshiba Satellite R830 The Toshiba Satellite R830 needs disable_backlight_sysfs_if=1, just like the Toshiba Portege R830. Add a quirk for this. Link: https://bugzilla.kernel.org/show_bug.cgi?id=21012 Cc: 4.2+ # 4.2+ Tested-by: To Do Signed-off-by: Hans de Goede Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_video.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 95565f884137e5d38caaa674a6813d854713e801 Author: Hans de Goede Date: Thu Jan 14 09:41:48 2016 +0100 ACPI / video: Revert "thinkpad_acpi: Use acpi_video_handles_brightness_key_presses()" acpi_video_handles_brightness_key_presses()'s may return false if the i915 driver is not loaded yet when thinkpad_acpi loads, and then return true after the i915 driver has loaded. This means that thinkpad_acpi cannot use it as is since thinkpad_acpi caches the return value. This reverts commit 7714687a2b2d ("thinkpad_acpi: Use acpi_video_handles_brightness_key_presses()"). Fixes: 7714687a2b2d "thinkpad_acpi: Use acpi_video_handles_brightness_key_presses()" Signed-off-by: Hans de Goede Acked-by: Darren Hart Acked-by: Henrique de Moraes Holschuh Signed-off-by: Rafael J. Wysocki drivers/platform/x86/thinkpad_acpi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 382d11639f7ca6d3ddca3a231267081bd29b45bd Author: Hans de Goede Date: Thu Jan 14 09:41:47 2016 +0100 ACPI / video: Document acpi_video_handles_brightness_key_presses() a bit Document that acpi_video_handles_brightness_key_presses()'s return value may change over time and should not be cached. Signed-off-by: Hans de Goede Signed-off-by: Rafael J. Wysocki include/acpi/video.h | 4 ++++ 1 file changed, 4 insertions(+) commit 14e9355363fc5bf98ba63875e117f29d1902d253 Author: Hans de Goede Date: Thu Jan 14 09:41:46 2016 +0100 ACPI / video: Fix using an uninitialized mutex / list_head in acpi_video_handles_brightness_key_presses() If acpi_video_handles_brightness_key_presses() was called before acpi_video_register(), it would use the video_list mutex / list_head uninitialized. This patch fixes this by using DEFINE_MUTEX / LIST_HEAD when declaring these, instead of initializing them runtime from acpi_video_register(). Fixes: 90b066b15eda "ACPI / video: Add a acpi_video_handles_brightness_key_presses() helper" Signed-off-by: Hans de Goede Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_video.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 970530cd00578d9dd9de45ecf297b28f6809c738 Author: Hans de Goede Date: Thu Jan 14 09:41:45 2016 +0100 ACPI / video: Revert "ACPI / video: driver must be registered before checking for keypresses" On systems with an intel video opcode region, the completion used in the patch this commit reverts will only complete if the i915 driver loads. If for some reason the i915 driver never loads calls to acpi_video_handles_brightness_key_presses() may be delayed indefinitely. This reverts commit aecbd9b1bff6 ("ACPI / video: driver must be registered before checking for keypresses") fixing this. This reintroduces a potential NULL pointer deref due to using an uninitalized mutex, this is fixed differently in a follow-up patch. Fixes: aecbd9b1bff6 (ACPI / video: driver must be registered before checking for keypresses) Signed-off-by: Hans de Goede Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_video.c | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) commit e5b6c1518878e157df4121c1caf70d9c470a6d31 Author: Jordan Hargrave Date: Fri Jan 15 22:08:45 2016 +0100 firmware: dmi_scan: Save SMBIOS Type 9 System Slots Save SMBIOS Type 9 System Slots during DMI scan. PCI address of onboard devices was already saved but not for slots. Signed-off-by: Jordan Hargrave Signed-off-by: Jean Delvare drivers/firmware/dmi_scan.c | 51 ++++++++++++++++++++++++++++++++------------- include/linux/dmi.h | 1 + 2 files changed, 37 insertions(+), 15 deletions(-) commit bfab8b48598f851dfeca2b40fd06969bf8634d37 Author: Jean Delvare Date: Fri Jan 15 22:08:44 2016 +0100 firmware: dmi_scan: Fix dmi_find_device description The description of dmi_find_device was apparently copied from a similar function in a different subsystem, but the parameter names were not adjusted as needed. Signed-off-by: Jean Delvare Cc: Andrey Panin drivers/firmware/dmi_scan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 45b9825708198311cbe00daf9d1a40098c12c45b Author: Jean Delvare Date: Fri Jan 15 22:08:44 2016 +0100 firmware: dmi_scan: Clarify dmi_save_extended_devices Get rid of the arbitrary 5-byte pointer offset, it served no purpose and made it harder to match the code with the SMBIOS specification. Signed-off-by: Jean Delvare Cc: Jordan Hargrave Cc: Narendra K drivers/firmware/dmi_scan.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 96e239434c629491e57a359a2f876b6d41476336 Author: Jean Delvare Date: Fri Jan 15 22:08:44 2016 +0100 firmware: dmi_scan: Optimize dmi_save_extended_devices Calling dmi_string_nosave isn't cheap, so avoid calling it twice in a row for the same string. Signed-off-by: Jean Delvare Cc: Jordan Hargrave Cc: Narendra K drivers/firmware/dmi_scan.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 750afbf8ee9c6a1c74a1fe5fc9852146b1d72687 Author: David S. Miller Date: Fri Jan 15 16:07:13 2016 -0500 bgmac: Fix reversed test of build_skb() return value. Fixes: f1640c3ddeec ("bgmac: fix a missing check for build_skb") Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bgmac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 37cea93b99d2d89bef3adcb4632d71e1f377c447 Merge: cc80fe0 d4f50ee Author: Linus Torvalds Date: Fri Jan 15 13:01:01 2016 -0800 Merge tag 'vfio-v4.5-rc1' of git://github.com/awilliam/linux-vfio Pull VFIO updates from Alex Williamson: - Fixes in AMD xgbe reset, spapr structure padding, type 1 flags (Dan Carpenter, Alexey Kardashevskiy, Pierre Morel) - Re-introduce no-iommu mode, with a user this time (Alex Williamson) * tag 'vfio-v4.5-rc1' of git://github.com/awilliam/linux-vfio: vfio/iommu_type1: make use of info.flags vfio: Include No-IOMMU mode vfio: Add explicit alignments in vfio_iommu_spapr_tce_create VFIO: platform: reset: fix a warning message condition commit f9727999694f76d329738614f2fd61d800509319 Author: Andy Lutomirski Date: Wed Jan 13 14:25:19 2016 -0800 ACPI / fan: Improve acpi_device_update_power error message On my laptop, I see "Setting initial power state" on boot. It's a firmware bug on my laptop, but the message made me think that the initial power state was bogus and the driver fixed it. The error actually means that the driver failed to set the initial power state. Fix the message. Signed-off-by: Andy Lutomirski Signed-off-by: Rafael J. Wysocki drivers/acpi/fan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit de588b8ff057d4de0751f337b930f90ca522bab2 Author: Hans de Goede Date: Mon Jan 11 14:46:17 2016 +0100 ACPI / video: Add disable_backlight_sysfs_if quirk for the Toshiba Portege R700 The Toshiba Portege R700 needs disable_backlight_sysfs_if=1, just like the Toshiba Portege R830. Add a quirk for this. Link: https://bugzilla.kernel.org/show_bug.cgi?id=21012 Cc: 4.2+ # 4.2+ Tested-by: Emma Reisz Signed-off-by: Hans de Goede Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_video.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit cc80fe0eefbbbd7b4e32f631bb2fa639d76af075 Merge: c7b6c5f 6e8b50d Author: Linus Torvalds Date: Fri Jan 15 12:49:44 2016 -0800 Merge tag 'nfsd-4.5' of git://linux-nfs.org/~bfields/linux Pull nfsd updates from Bruce Fields: "Smaller bugfixes and cleanup, including a fix for a failures of kerberized NFSv4.1 mounts, and Scott Mayhew's work addressing ACK storms that can affect some high-availability NFS setups" * tag 'nfsd-4.5' of git://linux-nfs.org/~bfields/linux: nfsd: add new io class tracepoint nfsd: give up on CB_LAYOUTRECALLs after two lease periods nfsd: Fix nfsd leaks sunrpc module references lockd: constify nlmsvc_binding structure lockd: use to_delayed_work nfsd: use to_delayed_work Revert "svcrdma: Do not send XDR roundup bytes for a write chunk" lockd: Register callbacks on the inetaddr_chain and inet6addr_chain nfsd: Register callbacks on the inetaddr_chain and inet6addr_chain sunrpc: Add a function to close temporary transports immediately nfsd: don't base cl_cb_status on stale information nfsd4: fix gss-proxy 4.1 mounts for some AD principals nfsd: fix unlikely NULL deref in mach_creds_match nfsd: minor consolidation of mach_cred handling code nfsd: helper for dup of possibly NULL string svcrpc: move some initialization to common code nfsd: fix a warning message nfsd: constify nfsd4_callback_ops structure nfsd: recover: constify nfsd4_client_tracking_ops structures svcrdma: Do not send XDR roundup bytes for a write chunk commit c7b6c5fe67d1519759de2014a2c44f50fb1426f3 Merge: 3c28c9c 39c01bf Author: Linus Torvalds Date: Fri Jan 15 12:41:32 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull vfs regression fix from Al Viro: "Fix for braino introduced in vfs.git#work.misc" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: amdkfd: Copy from the proper user command pointer commit c6894dec8ea9ae05747124dce98b3b5c2e69b168 Author: Nikolay Aleksandrov Date: Fri Jan 15 19:03:54 2016 +0100 bridge: fix lockdep addr_list_lock false positive splat After promisc mode management was introduced a bridge device could do dev_set_promiscuity from its ndo_change_rx_flags() callback which in turn can be called after the bridge's addr_list_lock has been taken (e.g. by dev_uc_add). This causes a false positive lockdep splat because the port interfaces' addr_list_lock is taken when br_manage_promisc() runs after the bridge's addr list lock was already taken. To remove the false positive introduce a custom bridge addr_list_lock class and set it on bridge init. A simple way to reproduce this is with the following: $ brctl addbr br0 $ ip l add l br0 br0.100 type vlan id 100 $ ip l set br0 up $ ip l set br0.100 up $ echo 1 > /sys/class/net/br0/bridge/vlan_filtering $ brctl addif br0 eth0 Splat: [ 43.684325] ============================================= [ 43.684485] [ INFO: possible recursive locking detected ] [ 43.684636] 4.4.0-rc8+ #54 Not tainted [ 43.684755] --------------------------------------------- [ 43.684906] brctl/1187 is trying to acquire lock: [ 43.685047] (_xmit_ETHER){+.....}, at: [] dev_set_rx_mode+0x1e/0x40 [ 43.685460] but task is already holding lock: [ 43.685618] (_xmit_ETHER){+.....}, at: [] dev_uc_add+0x27/0x80 [ 43.686015] other info that might help us debug this: [ 43.686316] Possible unsafe locking scenario: [ 43.686743] CPU0 [ 43.686967] ---- [ 43.687197] lock(_xmit_ETHER); [ 43.687544] lock(_xmit_ETHER); [ 43.687886] *** DEADLOCK *** [ 43.688438] May be due to missing lock nesting notation [ 43.688882] 2 locks held by brctl/1187: [ 43.689134] #0: (rtnl_mutex){+.+.+.}, at: [] rtnl_lock+0x17/0x20 [ 43.689852] #1: (_xmit_ETHER){+.....}, at: [] dev_uc_add+0x27/0x80 [ 43.690575] stack backtrace: [ 43.690970] CPU: 0 PID: 1187 Comm: brctl Not tainted 4.4.0-rc8+ #54 [ 43.691270] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.8.1-20150318_183358- 04/01/2014 [ 43.691770] ffffffff826a25c0 ffff8800369fb8e0 ffffffff81360ceb ffffffff826a25c0 [ 43.692425] ffff8800369fb9b8 ffffffff810d0466 ffff8800369fb968 ffffffff81537139 [ 43.693071] ffff88003a08c880 0000000000000000 00000000ffffffff 0000000002080020 [ 43.693709] Call Trace: [ 43.693931] [] dump_stack+0x4b/0x70 [ 43.694199] [] __lock_acquire+0x1e46/0x1e90 [ 43.694483] [] ? netlink_broadcast_filtered+0x139/0x3e0 [ 43.694789] [] ? nlmsg_notify+0x5a/0xc0 [ 43.695064] [] lock_acquire+0xe5/0x1f0 [ 43.695340] [] ? dev_set_rx_mode+0x1e/0x40 [ 43.695623] [] _raw_spin_lock_bh+0x45/0x80 [ 43.695901] [] ? dev_set_rx_mode+0x1e/0x40 [ 43.696180] [] dev_set_rx_mode+0x1e/0x40 [ 43.696460] [] dev_set_promiscuity+0x3c/0x50 [ 43.696750] [] br_port_set_promisc+0x25/0x50 [bridge] [ 43.697052] [] br_manage_promisc+0x8a/0xe0 [bridge] [ 43.697348] [] br_dev_change_rx_flags+0x1e/0x20 [bridge] [ 43.697655] [] __dev_set_promiscuity+0x132/0x1f0 [ 43.697943] [] __dev_set_rx_mode+0x82/0x90 [ 43.698223] [] dev_uc_add+0x5e/0x80 [ 43.698498] [] vlan_device_event+0x542/0x650 [8021q] [ 43.698798] [] notifier_call_chain+0x5d/0x80 [ 43.699083] [] raw_notifier_call_chain+0x16/0x20 [ 43.699374] [] call_netdevice_notifiers_info+0x6e/0x80 [ 43.699678] [] call_netdevice_notifiers+0x16/0x20 [ 43.699973] [] br_add_if+0x47e/0x4c0 [bridge] [ 43.700259] [] add_del_if+0x6e/0x80 [bridge] [ 43.700548] [] br_dev_ioctl+0xaf/0xc0 [bridge] [ 43.700836] [] dev_ifsioc+0x30c/0x3c0 [ 43.701106] [] dev_ioctl+0xf9/0x6f0 [ 43.701379] [] ? mntput_no_expire+0x5/0x450 [ 43.701665] [] ? mntput_no_expire+0xae/0x450 [ 43.701947] [] sock_do_ioctl+0x42/0x50 [ 43.702219] [] sock_ioctl+0x1e5/0x290 [ 43.702500] [] do_vfs_ioctl+0x2cb/0x5c0 [ 43.702771] [] SyS_ioctl+0x79/0x90 [ 43.703033] [] entry_SYSCALL_64_fastpath+0x16/0x7a CC: Vlad Yasevich CC: Stephen Hemminger CC: Bridge list CC: Andy Gospodarek CC: Roopa Prabhu Fixes: 2796d0c648c9 ("bridge: Automatically manage port promiscuous mode.") Reported-by: Andy Gospodarek Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller net/bridge/br_device.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 3c28c9ccafd8bfb30ede7f36bf099b071b977209 Merge: 4b43ea2 1501efa Author: Linus Torvalds Date: Fri Jan 15 12:28:00 2016 -0800 Merge tag 'md/4.5' of git://neil.brown.name/md Pull md updates from Neil Brown: "Mostly clustered-raid1 and raid5 journal updates. one Y2038 fix and other minor stuff. One patch removes me from the MAINTAINERS file and adds a record of my md maintainership to Credits" Many thanks to Neil, who has been around for a _looong_ time. * tag 'md/4.5' of git://neil.brown.name/md: (26 commits) md/raid: only permit hot-add of compatible integrity profiles Remove myself as MD Maintainer, and add to Credits. raid5-cache: handle journal hotadd in quiesce MD: add journal with array suspended md: set MD_HAS_JOURNAL in correct places md: Remove 'ready' field from mddev. md: remove unnecesary md_new_event_inintr raid5: allow r5l_io_unit allocations to fail raid5-cache: use a mempool for the metadata block raid5-cache: use a bio_set raid5-cache: add journal hot add/remove support drivers: md: use ktime_get_real_seconds() md: avoid warning for 32-bit sector_t raid5-cache: free meta_page earlier raid5-cache: simplify r5l_move_io_unit_list md: update comment for md_allow_write md-cluster: update comments for MD_CLUSTER_SEND_LOCKED_ALREADY md-cluster: Protect communication with mutexes md-cluster: Defer MD reloading to mddev->thread md-cluster: update the documentation ... commit 4b43ea2a7c763ab4a1fef69b7c7e2cb091fdea6c Merge: 7aca74e d3bd4e0 Author: Linus Torvalds Date: Fri Jan 15 12:14:47 2016 -0800 Merge tag 'regulator-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator Pull regulator updates from Mark Brown: "Aside from a fix for a spurious warning (which caused more problems than it fixed in the fixing really) this is all driver updates, including new drivers for Dialog PV88060/90 and TI LM363x and TPS65086 devices. The qcom_smd driver has had PM8916 and PMA8084 support added" * tag 'regulator-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (36 commits) regulator: core: remove some dead code regulator: core: use dev_to_rdev regulator: lp872x: Get rid of duplicate reference to DVS GPIO regulator: lp872x: Add missing of_match in regulators descriptions regulator: axp20x: Fix GPIO LDO enable value for AXP22x regulator: lp8788: constify regulator_ops structures regulator: wm8*: constify regulator_ops structures regulator: da9*: constify regulator_ops structures regulator: mt6311: Use REGCACHE_RBTREE regulator: tps65917/palmas: Add bypass ops for LDOs with bypass capability regulator: qcom-smd: Add support for PMA8084 regulator: qcom-smd: Add PM8916 support soc: qcom: documentation: Update SMD/RPM Docs regulator: pv88090: logical vs bitwise AND typo regulator: pv88090: Fix irq leak regulator: pv88090: new regulator driver regulator: wm831x-ldo: Use platform_register/unregister_drivers() regulator: wm831x-dcdc: Use platform_register/unregister_drivers() regulator: lp8788-ldo: Use platform_register/unregister_drivers() regulator: core: Fix nested locking of supplies ... commit f147d0b320f02e799a8eec4b95f9f989f65b8a34 Author: Yoshinori Sato Date: Sat Jan 16 00:05:09 2016 +0900 net: smsc: Add support h8300 Add H8/300 platform support for smc91x Signed-off-by: Yoshinori Sato Signed-off-by: David S. Miller drivers/net/ethernet/smsc/Kconfig | 4 ++-- drivers/net/ethernet/smsc/smc91x.h | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) commit 39c01bf933106296e43e46cdbd9edce13ae5a5b7 Author: Borislav Petkov Date: Fri Jan 15 19:26:44 2016 +0100 amdkfd: Copy from the proper user command pointer 8f1d57c17248 ("amdkfd: don't open-code memdup_user()") mistakenly uses an uninitialized local pointer, gcc complains: drivers/gpu/drm/amd/amdkfd/kfd_chardev.c: In function ‘kfd_ioctl_dbg_address_watch’: drivers/gpu/drm/amd/amdkfd/kfd_chardev.c:562:12: warning: ‘args_buff’ may be used uninitialized in this function [-Wmaybe-uninitialized] args_buff = memdup_user(args_buff, ^ Fix it. Signed-off-by: Borislav Petkov Cc: Al Viro Signed-off-by: Al Viro drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 7aca74e7c1bbd2beed50d7d77065f26457e35b03 Merge: 1d3671d bfbcfa7 Author: Linus Torvalds Date: Fri Jan 15 12:13:58 2016 -0800 Merge branch 'mailbox-for-next' of git://git.linaro.org/landing-teams/working/fujitsu/integration Pull mailbox fixlet from Jussi Brar. * 'mailbox-for-next' of git://git.linaro.org/landing-teams/working/fujitsu/integration: mailbox: constify mbox_chan_ops structure commit 973365dc2de93a79950d2d2483ca8fbc2ad2ca18 Merge: fb33118 9c6f3ff Author: David S. Miller Date: Fri Jan 15 15:13:19 2016 -0500 Merge branch 'xen-netback-fixes' David Vrabel says: ==================== xen-netback: use skb to determine number of required (etc.) "xen-netback: use skb to determine number of required" plus two other minor fixes I found down the back of the sofa. ==================== Signed-off-by: David S. Miller commit 9c6f3ffe8200327d1cf2aad2ff2b414adaacbe96 Author: David Vrabel Date: Fri Jan 15 14:55:36 2016 +0000 xen-netback: free queues after freeing the net device If a queue still has a NAPI instance added to the net device, freeing the queues early results in a use-after-free. The shouldn't ever happen because we disconnect and tear down all queues before freeing the net device, but doing this makes it obviously safe. Signed-off-by: David Vrabel Signed-off-by: David S. Miller drivers/net/xen-netback/interface.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) commit 4a658527271bce43afb1cf4feec89afe6716ca59 Author: David Vrabel Date: Fri Jan 15 14:55:35 2016 +0000 xen-netback: delete NAPI instance when queue fails to initialize When xenvif_connect() fails it may leave a stale NAPI instance added to the device. Make sure we delete it in the error path. Signed-off-by: David Vrabel Signed-off-by: David S. Miller drivers/net/xen-netback/interface.c | 1 + 1 file changed, 1 insertion(+) commit 99a2dea50d5deff134b6c346f53a3ad1f583ee96 Author: David Vrabel Date: Fri Jan 15 14:55:34 2016 +0000 xen-netback: use skb to determine number of required guest Rx requests Using the MTU or GSO size to determine the number of required guest Rx requests for an skb was subtly broken since these value may change at runtime. After 1650d5455bd2dc6b5ee134bd6fc1a3236c266b5b (xen-netback: always fully coalesce guest Rx packets) we always fully pack a packet into its guest Rx slots. Calculating the number of required slots from the packet length is then easy. Signed-off-by: David Vrabel Signed-off-by: David S. Miller drivers/net/xen-netback/netback.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) commit fb3311853c0f23391fc3441d49a46d076de57757 Author: Geert Uytterhoeven Date: Fri Jan 15 14:44:31 2016 +0100 net: sctp: Move sequence start handling into sctp_transport_get_idx() net/sctp/proc.c: In function ‘sctp_transport_get_idx’: net/sctp/proc.c:313: warning: ‘obj’ may be used uninitialized in this function This is currently a false positive, as all callers check for a zero offset first, and handle this case in the exact same way. Move the check and handling into sctp_transport_get_idx() to kill the compiler warning, and avoid future bugs. Signed-off-by: Geert Uytterhoeven Acked-by: Marcelo Ricardo Leitner Signed-off-by: David S. Miller net/sctp/proc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 34ae6a1aa0540f0f781dd265366036355fdc8930 Author: Eric Dumazet Date: Fri Jan 15 04:56:56 2016 -0800 ipv6: update skb->csum when CE mark is propagated When a tunnel decapsulates the outer header, it has to comply with RFC 6080 and eventually propagate CE mark into inner header. It turns out IP6_ECN_set_ce() does not correctly update skb->csum for CHECKSUM_COMPLETE packets, triggering infamous "hw csum failure" messages and stack traces. Signed-off-by: Eric Dumazet Acked-by: Herbert Xu Signed-off-by: David S. Miller include/net/inet_ecn.h | 19 ++++++++++++++++--- net/ipv6/xfrm6_mode_tunnel.c | 2 +- 2 files changed, 17 insertions(+), 4 deletions(-) commit 185a383ada2e7794b0e82e040223e741b24d2bf8 Author: Keith Busch Date: Tue Jan 12 13:18:10 2016 -0700 x86/PCI: Add driver for Intel Volume Management Device (VMD) The Intel Volume Management Device (VMD) is a Root Complex Integrated Endpoint that acts as a host bridge to a secondary PCIe domain. BIOS can reassign one or more Root Ports to appear within a VMD domain instead of the primary domain. The immediate benefit is that additional PCIe domains allow more than 256 buses in a system by letting bus numbers be reused across different domains. VMD domains do not define ACPI _SEG, so to avoid domain clashing with host bridges defining this segment, VMD domains start at 0x10000, which is greater than the highest possible 16-bit ACPI defined _SEG. This driver enumerates and enables the domain using the root bus configuration interface provided by the PCI subsystem. The driver provides configuration space accessor functions (pci_ops), bus and memory resources, an MSI IRQ domain with irq_chip implementation, and DMA operations necessary to use devices through the VMD endpoint's interface. VMD routes I/O as follows: 1) Configuration Space: BAR 0 ("CFGBAR") of VMD provides the base address and size for configuration space register access to VMD-owned root ports. It works similarly to MMCONFIG for extended configuration space. Bus numbering is independent and does not conflict with the primary domain. 2) MMIO Space: BARs 2 and 4 ("MEMBAR1" and "MEMBAR2") of VMD provide the base address, size, and type for MMIO register access. These addresses are not translated by VMD hardware; they are simply reservations to be distributed to root ports' memory base/limit registers and subdivided among devices downstream. 3) DMA: To interact appropriately with an IOMMU, the source ID DMA read and write requests are translated to the bus-device-function of the VMD endpoint. Otherwise, DMA operates normally without VMD-specific address translation. 4) Interrupts: Part of VMD's BAR 4 is reserved for VMD's MSI-X Table and PBA. MSIs from VMD domain devices and ports are remapped to appear as if they were issued using one of VMD's MSI-X table entries. Each MSI and MSI-X address of VMD-owned devices and ports has a special format where the address refers to specific entries in the VMD's MSI-X table. As with DMA, the interrupt source ID is translated to VMD's bus-device-function. The driver provides its own MSI and MSI-X configuration functions specific to how MSI messages are used within the VMD domain, and provides an irq_chip for independent IRQ allocation to relay interrupts from VMD's interrupt handler to the appropriate device driver's handler. 5) Errors: PCIe error message are intercepted by the root ports normally (e.g., AER), except with VMD, system errors (i.e., firmware first) are disabled by default. AER and hotplug interrupts are translated in the same way as endpoint interrupts. 6) VMD does not support INTx interrupts or IO ports. Devices or drivers requiring these features should either not be placed below VMD-owned root ports, or VMD should be disabled by BIOS for such endpoints. [bhelgaas: add VMD BAR #defines, factor out vmd_cfg_addr(), rework VMD resource setup, whitespace, changelog] Signed-off-by: Keith Busch Signed-off-by: Bjorn Helgaas Acked-by: Thomas Gleixner (IRQ-related parts) MAINTAINERS | 6 + arch/x86/Kconfig | 13 + arch/x86/include/asm/hw_irq.h | 5 + arch/x86/pci/Makefile | 2 + arch/x86/pci/vmd.c | 723 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 749 insertions(+) commit 28ef241f05c20c2f04b349d43c615438f7e6f811 Author: Keith Busch Date: Tue Jan 12 13:18:09 2016 -0700 PCI/AER: Use 32 bit PCI domain numbers The Intel Volume Management Device (VMD) supports 32-bit domain numbers. To accommodate this, use u32 instead of u16 to store domain numbers. [bhelgaas: changelog] Signed-off-by: Keith Busch Signed-off-by: Bjorn Helgaas drivers/pci/pcie/aer/aer_inject.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit d9c3d6ff227cbdf05399ba8303bdcd0d35bbfccb Author: Keith Busch Date: Tue Jan 12 13:18:08 2016 -0700 x86/PCI: Allow DMA ops specific to a PCI domain The Intel Volume Management Device (VMD) is a PCIe endpoint that acts as a host bridge to another PCI domain. When devices below the VMD perform DMA, the VMD replaces their DMA source IDs with its own source ID. Therefore, those devices require special DMA ops. Add interfaces to allow the VMD driver to set up dma_ops for the devices below it. [bhelgaas: remove "extern", add "static", changelog] Signed-off-by: Keith Busch Signed-off-by: Bjorn Helgaas arch/x86/include/asm/device.h | 10 ++++++++++ arch/x86/pci/common.c | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) commit 64bce3e8bfb3cf2cbc638296390af3e02e747347 Author: Keith Busch Date: Tue Jan 12 13:18:07 2016 -0700 irqdomain: Export irq_domain_set_info() for module use Export irq_domain_set_info() for module use. It will be used by the Volume Management Device driver. [bhelgaas: changelog] Signed-off-by: Keith Busch Signed-off-by: Bjorn Helgaas Acked-by: Thomas Gleixner kernel/irq/irqdomain.c | 1 + 1 file changed, 1 insertion(+) commit 1d3671df72e0fe28d7cc686cb432e87c06f4accc Merge: 875fc4f bb00c89 Author: Linus Torvalds Date: Fri Jan 15 11:51:51 2016 -0800 Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs Pull UDF fixes and quota cleanups from Jan Kara: "Several UDF fixes and some minor quota cleanups" * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs: udf: Check output buffer length when converting name to CS0 udf: Prevent buffer overrun with multi-byte characters quota: constify qtree_fmt_operations structures udf: avoid uninitialized variable use udf: Fix lost indirect extent block udf: Factor out code for creating indirect extent udf: limit the maximum number of indirect extents in a row udf: limit the maximum number of TD redirections fs: make quota/dquot.c explicitly non-modular fs: make quota/netlink.c explicitly non-modular commit 113c74d83eef870e43a0d9279044e9d5435f0d07 Author: Sjoerd Simons Date: Thu Jan 14 21:57:18 2016 +0100 net: phy: turn carrier off on phy attach The operstate of a networking device initially IF_OPER_UNKNOWN aka "unknown", updated on carrier state changes (with carrier state being on by default). This means it will stay unknown unless the carrier state goes to off at some point, which is not the case if the phy is already up/connected at startup. Explicitly turn off the carrier on phy attach, leaving the phy state machine to turn the carrier on when it has done the initial negotiation. Signed-off-by: Sjoerd Simons Signed-off-by: David S. Miller drivers/net/phy/phy_device.c | 5 +++++ 1 file changed, 5 insertions(+) commit 244683749e3c632ab45655098259d5514c179c8a Author: Nathan Sullivan Date: Thu Jan 14 13:27:27 2016 -0600 net: macb: clear interrupts when disabling them Disabling interrupts with the IDR register does not stop the macb hardware from asserting its interrupt line if there are interrupts pending. Always clear the interrupts using ISR, and be sure to write it on hardware that is not read-to-clear, like Zynq. Not doing so will cause interrupts when the driver doesn't expect them. Signed-off-by: Nathan Sullivan Acked-by: Nicolas Ferre Signed-off-by: David S. Miller drivers/net/ethernet/cadence/macb.c | 4 ++++ 1 file changed, 4 insertions(+) commit 875fc4f5ddf35605581f9a5900c14afef48611f2 Merge: 7d1fc01 7dfa461 Author: Linus Torvalds Date: Fri Jan 15 11:41:44 2016 -0800 Merge branch 'akpm' (patches from Andrew) Merge first patch-bomb from Andrew Morton: - A few hotfixes which missed 4.4 becasue I was asleep. cc'ed to -stable - A few misc fixes - OCFS2 updates - Part of MM. Including pretty large changes to page-flags handling and to thp management which have been buffered up for 2-3 cycles now. I have a lot of MM material this time. [ It turns out the THP part wasn't quite ready, so that got dropped from this series - Linus ] * emailed patches from Andrew Morton : (117 commits) zsmalloc: reorganize struct size_class to pack 4 bytes hole mm/zbud.c: use list_last_entry() instead of list_tail_entry() zram/zcomp: do not zero out zcomp private pages zram: pass gfp from zcomp frontend to backend zram: try vmalloc() after kmalloc() zram/zcomp: use GFP_NOIO to allocate streams mm: add tracepoint for scanning pages drivers/base/memory.c: fix kernel warning during memory hotplug on ppc64 mm/page_isolation: use macro to judge the alignment mm: fix noisy sparse warning in LIBCFS_ALLOC_PRE() mm: rework virtual memory accounting include/linux/memblock.h: fix ordering of 'flags' argument in comments mm: move lru_to_page to mm_inline.h Documentation/filesystems: describe the shared memory usage/accounting memory-hotplug: don't BUG() in register_memory_resource() hugetlb: make mm and fs code explicitly non-modular mm/swapfile.c: use list_for_each_entry_safe in free_swap_count_continuations mm: /proc/pid/clear_refs: no need to clear VM_SOFTDIRTY in clear_soft_dirty_pmd() mm: make sure isolate_lru_page() is never called for tail page vmstat: make vmstat_updater deferrable again and shut down on idle ... commit 65a5124a71e85c35fa8d047a471950325855dccf Author: Xin Long Date: Thu Jan 14 13:49:34 2016 +0800 sctp: support to lookup with ep+paddr in transport rhashtable Now, when we sendmsg, we translate the ep to laddr by selecting the first element of the list, and then do a lookup for a transport. But sctp_hash_cmp() will compare it against asoc addr_list, which may be a subset of ep addr_list, meaning that this chosen laddr may not be there, and thus making it impossible to find the transport. So we fix it by using ep + paddr to lookup transports in hashtable. In sctp_hash_cmp, if .ep is set, we will check if this ep == asoc->ep, or we will do the laddr check. Fixes: d6c0256a60e6 ("sctp: add the rhashtable apis for sctp global transport hashtable") Signed-off-by: Xin Long Acked-by: Marcelo Ricardo Leitner Reported-by: Vlad Yasevich Signed-off-by: David S. Miller net/sctp/input.c | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) commit 7dfa4612204b511c934ca2a0e4f306f9981bd9aa Author: Weijie Yang Date: Thu Jan 14 15:22:40 2016 -0800 zsmalloc: reorganize struct size_class to pack 4 bytes hole Reoder the pages_per_zspage field in struct size_class which can eliminate the 4 bytes hole between it and stats field. Signed-off-by: Weijie Yang Reviewed-by: Sergey Senozhatsky Cc: Minchan Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/zsmalloc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f58fb5e7f0ab05c9083869c1ec27854af2afc7b7 Author: Geliang Tang Date: Thu Jan 14 15:22:38 2016 -0800 mm/zbud.c: use list_last_entry() instead of list_tail_entry() list_last_entry*( has been defined in list.h, so replace list_tail_entry() with it. Signed-off-by: Geliang Tang Cc: Seth Jennings Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/zbud.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit e02d238c9852a91b30da9ea32ce36d1416cdc683 Author: Sergey Senozhatsky Date: Thu Jan 14 15:22:35 2016 -0800 zram/zcomp: do not zero out zcomp private pages Do not __GFP_ZERO allocated zcomp ->private pages. We keep allocated streams around and use them for read/write requests, so we supply a zeroed out ->private to compression algorithm as a scratch buffer only once -- the first time we use that stream. For the rest of IO requests served by this stream ->private usually contains some temporarily data from the previous requests. Signed-off-by: Sergey Senozhatsky Acked-by: Minchan Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/block/zram/zcomp_lz4.c | 4 ++-- drivers/block/zram/zcomp_lzo.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit 75d8947a36d0c9aedd69118d1f14bf424005c7c2 Author: Minchan Kim Date: Thu Jan 14 15:22:32 2016 -0800 zram: pass gfp from zcomp frontend to backend Each zcomp backend uses own gfp flag but it's pointless because the context they could be called is driven by upper layer(ie, zcomp frontend). As well, zcomp frondend could call them in different context. One context(ie, zram init part) is it should be better to make sure successful allocation other context(ie, further stream allocation part for accelarating I/O speed) is just optional so let's pass gfp down from driver (ie, zcomp frontend) like normal MM convention. [sergey.senozhatsky@gmail.com: add missing __vmalloc zero and highmem gfps] Signed-off-by: Minchan Kim Signed-off-by: Sergey Senozhatsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/block/zram/zcomp.c | 24 ++++++++++++++++-------- drivers/block/zram/zcomp.h | 2 +- drivers/block/zram/zcomp_lz4.c | 16 +++------------- drivers/block/zram/zcomp_lzo.c | 16 +++------------- 4 files changed, 23 insertions(+), 35 deletions(-) commit d913897abace843bba20249f3190167f7895e9c3 Author: Kyeongdon Kim Date: Thu Jan 14 15:22:29 2016 -0800 zram: try vmalloc() after kmalloc() When we're using LZ4 multi compression streams for zram swap, we found out page allocation failure message in system running test. That was not only once, but a few(2 - 5 times per test). Also, some failure cases were continually occurring to try allocation order 3. In order to make parallel compression private data, we should call kzalloc() with order 2/3 in runtime(lzo/lz4). But if there is no order 2/3 size memory to allocate in that time, page allocation fails. This patch makes to use vmalloc() as fallback of kmalloc(), this prevents page alloc failure warning. After using this, we never found warning message in running test, also It could reduce process startup latency about 60-120ms in each case. For reference a call trace : Binder_1: page allocation failure: order:3, mode:0x10c0d0 CPU: 0 PID: 424 Comm: Binder_1 Tainted: GW 3.10.49-perf-g991d02b-dirty #20 Call trace: dump_backtrace+0x0/0x270 show_stack+0x10/0x1c dump_stack+0x1c/0x28 warn_alloc_failed+0xfc/0x11c __alloc_pages_nodemask+0x724/0x7f0 __get_free_pages+0x14/0x5c kmalloc_order_trace+0x38/0xd8 zcomp_lz4_create+0x2c/0x38 zcomp_strm_alloc+0x34/0x78 zcomp_strm_multi_find+0x124/0x1ec zcomp_strm_find+0xc/0x18 zram_bvec_rw+0x2fc/0x780 zram_make_request+0x25c/0x2d4 generic_make_request+0x80/0xbc submit_bio+0xa4/0x15c __swap_writepage+0x218/0x230 swap_writepage+0x3c/0x4c shrink_page_list+0x51c/0x8d0 shrink_inactive_list+0x3f8/0x60c shrink_lruvec+0x33c/0x4cc shrink_zone+0x3c/0x100 try_to_free_pages+0x2b8/0x54c __alloc_pages_nodemask+0x514/0x7f0 __get_free_pages+0x14/0x5c proc_info_read+0x50/0xe4 vfs_read+0xa0/0x12c SyS_read+0x44/0x74 DMA: 3397*4kB (MC) 26*8kB (RC) 0*16kB 0*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 13796kB [minchan@kernel.org: change vmalloc gfp and adding comment about gfp] [sergey.senozhatsky@gmail.com: tweak comments and styles] Signed-off-by: Kyeongdon Kim Signed-off-by: Minchan Kim Acked-by: Sergey Senozhatsky Sergey Senozhatsky Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/block/zram/zcomp_lz4.c | 23 +++++++++++++++++++++-- drivers/block/zram/zcomp_lzo.c | 23 +++++++++++++++++++++-- 2 files changed, 42 insertions(+), 4 deletions(-) commit 3d5fe03a3ea013060ebba2a811aeb0f23f56aefa Author: Sergey Senozhatsky Date: Thu Jan 14 15:22:26 2016 -0800 zram/zcomp: use GFP_NOIO to allocate streams We can end up allocating a new compression stream with GFP_KERNEL from within the IO path, which may result is nested (recursive) IO operations. That can introduce problems if the IO path in question is a reclaimer, holding some locks that will deadlock nested IOs. Allocate streams and working memory using GFP_NOIO flag, forbidding recursive IO and FS operations. An example: inconsistent {IN-RECLAIM_FS-W} -> {RECLAIM_FS-ON-W} usage. git/20158 [HC0[0]:SC0[0]:HE1:SE1] takes: (jbd2_handle){+.+.?.}, at: start_this_handle+0x4ca/0x555 {IN-RECLAIM_FS-W} state was registered at: __lock_acquire+0x8da/0x117b lock_acquire+0x10c/0x1a7 start_this_handle+0x52d/0x555 jbd2__journal_start+0xb4/0x237 __ext4_journal_start_sb+0x108/0x17e ext4_dirty_inode+0x32/0x61 __mark_inode_dirty+0x16b/0x60c iput+0x11e/0x274 __dentry_kill+0x148/0x1b8 shrink_dentry_list+0x274/0x44a prune_dcache_sb+0x4a/0x55 super_cache_scan+0xfc/0x176 shrink_slab.part.14.constprop.25+0x2a2/0x4d3 shrink_zone+0x74/0x140 kswapd+0x6b7/0x930 kthread+0x107/0x10f ret_from_fork+0x3f/0x70 irq event stamp: 138297 hardirqs last enabled at (138297): debug_check_no_locks_freed+0x113/0x12f hardirqs last disabled at (138296): debug_check_no_locks_freed+0x33/0x12f softirqs last enabled at (137818): __do_softirq+0x2d3/0x3e9 softirqs last disabled at (137813): irq_exit+0x41/0x95 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(jbd2_handle); lock(jbd2_handle); *** DEADLOCK *** 5 locks held by git/20158: #0: (sb_writers#7){.+.+.+}, at: [] mnt_want_write+0x24/0x4b #1: (&type->i_mutex_dir_key#2/1){+.+.+.}, at: [] lock_rename+0xd9/0xe3 #2: (&sb->s_type->i_mutex_key#11){+.+.+.}, at: [] lock_two_nondirectories+0x3f/0x6b #3: (&sb->s_type->i_mutex_key#11/4){+.+.+.}, at: [] lock_two_nondirectories+0x66/0x6b #4: (jbd2_handle){+.+.?.}, at: [] start_this_handle+0x4ca/0x555 stack backtrace: CPU: 2 PID: 20158 Comm: git Not tainted 4.1.0-rc7-next-20150615-dbg-00016-g8bdf555-dirty #211 Call Trace: dump_stack+0x4c/0x6e mark_lock+0x384/0x56d mark_held_locks+0x5f/0x76 lockdep_trace_alloc+0xb2/0xb5 kmem_cache_alloc_trace+0x32/0x1e2 zcomp_strm_alloc+0x25/0x73 [zram] zcomp_strm_multi_find+0xe7/0x173 [zram] zcomp_strm_find+0xc/0xe [zram] zram_bvec_rw+0x2ca/0x7e0 [zram] zram_make_request+0x1fa/0x301 [zram] generic_make_request+0x9c/0xdb submit_bio+0xf7/0x120 ext4_io_submit+0x2e/0x43 ext4_bio_write_page+0x1b7/0x300 mpage_submit_page+0x60/0x77 mpage_map_and_submit_buffers+0x10f/0x21d ext4_writepages+0xc8c/0xe1b do_writepages+0x23/0x2c __filemap_fdatawrite_range+0x84/0x8b filemap_flush+0x1c/0x1e ext4_alloc_da_blocks+0xb8/0x117 ext4_rename+0x132/0x6dc ? mark_held_locks+0x5f/0x76 ext4_rename2+0x29/0x2b vfs_rename+0x540/0x636 SyS_renameat2+0x359/0x44d SyS_rename+0x1e/0x20 entry_SYSCALL_64_fastpath+0x12/0x6f [minchan@kernel.org: add stable mark] Signed-off-by: Sergey Senozhatsky Acked-by: Minchan Kim Cc: Kyeongdon Kim Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/block/zram/zcomp.c | 4 ++-- drivers/block/zram/zcomp_lz4.c | 2 +- drivers/block/zram/zcomp_lzo.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit 628a96e7d3b684baf5584462de32345e997d7dbe Merge: 9207f9d 28052e7 Author: David S. Miller Date: Fri Jan 15 14:40:04 2016 -0500 Merge branch 'hisi-fixes' Kejian Yan says: ==================== dts: hisi: fixes no syscon fault when init mdio This patchset fixes the bug that eth can't initial successful on hip05-D02 because the dts files doesn't match the source code. ==================== Signed-off-by: David S. Miller commit 28052e75834a84b006893735debedb8ee6b6cbc0 Author: yankejian Date: Wed Jan 13 15:09:59 2016 +0800 net: hns: fixes no syscon error when init mdio As dtsi files use the normal naming conventions using '-' instead of '_' inside of property names, the driver needs to update the phandle name strings of the of_parse_phandle func. Signed-off-by: Kejian Yan Signed-off-by: David S. Miller drivers/net/ethernet/hisilicon/hns_mdio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b70ce2ab41cb67ab3d661eda078f7c4029bbca95 Author: yankejian Date: Wed Jan 13 15:09:58 2016 +0800 dts: hisi: fixes no syscon fault when init mdio When linux start up, we get the log below: "Hi-HNS_MDIO 803c0000.mdio: no syscon hisilicon,peri-c-subctrl mdio_bus mdio@803c0000: mdio sys ctl reg has not maped" The source code about the subctrl is dealt syscon, but dts doesn't. It cause such fault, so this patch adds the syscon info on dts files to fixes it. Signed-off-by: Kejian Yan Acked-by: Rob Herring Signed-off-by: David S. Miller .../devicetree/bindings/arm/hisilicon/hisilicon.txt | 16 ++++++++++++++++ arch/arm64/boot/dts/hisilicon/hip05.dtsi | 5 +++++ arch/arm64/boot/dts/hisilicon/hip05_hns.dtsi | 4 ++-- 3 files changed, 23 insertions(+), 2 deletions(-) commit 9207f9d45b0ad071baa128e846d7e7ed85016df3 Author: Konstantin Khlebnikov Date: Fri Jan 8 15:21:46 2016 +0300 net: preserve IP control block during GSO segmentation Skb_gso_segment() uses skb control block during segmentation. This patch adds 32-bytes room for previous control block which will be copied into all resulting segments. This patch fixes kernel crash during fragmenting forwarded packets. Fragmentation requires valid IP CB in skb for clearing ip options. Also patch removes custom save/restore in ovs code, now it's redundant. Signed-off-by: Konstantin Khlebnikov Link: http://lkml.kernel.org/r/CALYGNiP-0MZ-FExV2HutTvE9U-QQtkKSoE--KN=JQE5STYsjAA@mail.gmail.com Signed-off-by: David S. Miller include/linux/skbuff.h | 3 ++- net/core/dev.c | 5 +++++ net/ipv4/ip_output.c | 1 + net/openvswitch/datapath.c | 5 +---- net/xfrm/xfrm_output.c | 2 ++ 5 files changed, 11 insertions(+), 5 deletions(-) commit 96b9e70b8e6cd65f71ee71889143976f3afb038a Author: Jiri Olsa Date: Fri Jan 15 04:00:18 2016 +0000 perf build: Introduce FEATURES_DUMP make variable Introducing FEATURES_DUMP make variable to provide features detection dump file and bypass the feature detection. The intention is to use this during build tests to skip repeated features detection, like: Get feature dump static build into /tmp/fd file: $ make feature-dump FEATURE_DUMP_COPY=/tmp/fd LDFLAGS=-static BUILD: Doing 'make -j4' parallel build Auto-detecting system features: ... dwarf: [ OFF ] SNIP FEATURE-DUMP file copied into /tmp/fd Use /tmp/fd to build perf: $ make FEATURES_DUMP=/tmp/fd LDFLAGS=-static $ file perf perf: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, for ... Suggested-by: Wang Nan Signed-off-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1452830421-77757-7-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Makefile.perf | 14 +++++++++++++- tools/perf/config/Makefile | 4 ++++ 2 files changed, 17 insertions(+), 1 deletion(-) commit b8e52be00ca7e7659e8ee172ce9e6f0c6af28ec8 Author: Jiri Olsa Date: Fri Jan 15 04:00:17 2016 +0000 perf build: Add feature-dump target To provide FEATURE-DUMP into $(FEATURE_DUMP_COPY) if defined, with no further action. Get feature dump of the current build: $ make feature-dump BUILD: Doing 'make -j4' parallel build Auto-detecting system features: ... dwarf: [ on ] FEATURE-DUMP file available in FEATURE-DUMP Get feature dump static build into /tmp/fd file: $ make feature-dump FEATURE_DUMP_COPY=/tmp/fd LDFLAGS=-static BUILD: Doing 'make -j4' parallel build Auto-detecting system features: ... dwarf: [ OFF ] SNIP FEATURE-DUMP file copied into /tmp/fd Suggested-by: Wang Nan Signed-off-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1452830421-77757-6-git-send-email-wangnan0@huawei.com Signed-off-by: Wang Nan Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Makefile.perf | 11 +++++++++++ 1 file changed, 11 insertions(+) commit c15e758c4bd7fbe38983e36258541ffcf81e1500 Author: Wang Nan Date: Fri Jan 15 04:00:16 2016 +0000 perf build: Pass O option to kernel makefile in build-test Kernel makefile only follows an 'O' option passed from command line explicitely. In build-test with 'O' option set, kernel makefile contaminate kernel source directory. Build test also fail if we don't create output directory manually. K_O_OPT is added and passed to kernel makefile if 'O' is passed to build-test. Signed-off-by: Wang Nan Tested-by: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Namhyung Kim Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1452830421-77757-5-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/make | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 68824de19a0b4cdc17193cb004c55d82c06af8bd Author: Wang Nan Date: Fri Jan 15 04:00:15 2016 +0000 perf build: Test correct path of perf in build-test If an 'O' is passed to 'make build-test', many 'test -x' and 'test -f' will fail because perf resides in a different directory. Fix this by computing PERF_OUT according to 'O' and test correct output files. For make_kernelsrc and make_kernelsrc_tools, set KBUILD_OUTPUT_DIR instead because the path is different from others ($(O)/perf vs $(O)/tools/perf). Signed-off-by: Wang Nan Tested-by: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Namhyung Kim Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1452830421-77757-4-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/make | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) commit eb807730c034090599135bc03578015ebf8974af Author: Wang Nan Date: Fri Jan 15 04:00:14 2016 +0000 perf build: Pass O option to Makefile.perf in build-test Unlike tools/perf/Makefile, tools/perf/Makefile.perf obey 'O' option when it is passed through cmdline only, due to code in tools/scripts/Makefile.include: ifneq ($(O),) ifeq ($(origin O), command line) ... ABSOLUTE_O := $(shell cd $(O) ; pwd) OUTPUT := $(ABSOLUTE_O)/$(if $(subdir),$(subdir)/) endif endif This patch passes 'O' to Makefile.perf through cmdline explicitly to make it follow O variable during build-test. 'make clean' should have identical 'O' option with 'make'. If not, config-clean may error. Signed-off-by: Wang Nan Tested-by: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Namhyung Kim Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1452830421-77757-3-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/make | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) commit 7be43dfb1e617b87bf2d936d82c026be39b43910 Author: Wang Nan Date: Wed Jan 13 12:17:14 2016 +0000 perf build: Set parallel making options build-test 'make build-test' is painful because of time consuming. In a full test, all test cases are built twice with tools/perf/Makefile and tools/perf/Makefile.perf. 'Makefile' automatically computes parallel options for make, but 'Makefile.perf' not, so all test cases is built with one job. It is very slow. This patch adds '-j' options to Makefile.perf testing. It computes parallel building options like what tools/perf/Makefile does, and pass '-j' option to Makefile.perf test. Signed-off-by: Wang Nan Acked-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Cc: Namhyung Kim Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1452687442-6186-2-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/make | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) commit 40c4a0f92aed570cc529a1e5c24c7e04a0ce8b85 Author: Ben Hutchings Date: Wed Jan 13 17:23:01 2016 +0000 perf symbols: Fix reading of build-id from vDSO We need to use the long name (the filename) when reading the build-id from a DSO. Using the short name doesn't work for (at least) vDSOs. Signed-off-by: Ben Hutchings Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20160113172301.GT28542@decadent.org.uk Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/symbol.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3caeaa562733c4836e61086ec07666635006a787 Author: Ravi Bangoria Date: Mon Dec 7 12:25:02 2015 +0530 perf kvm record/report: 'unprocessable sample' error while recording/reporting guest data While recording guest samples in host using perf kvm record, it will populate unprocessable sample error, though samples will be recorded properly. While generating report using perf kvm report, no samples will be processed and same error will populate. We have seen this behaviour with upstream perf(4.4-rc3) on x86 and ppc64 hardware. Reason behind this failure is, when it tries to fetch machine from rb_tree of machines, it fails. As a part of tracing a bug, we figured out that this code was incorrectly refactored in commit 54245fdc3576 ("perf session: Remove wrappers to machines__find"). This patch will change the functionality such that if it can't fetch machine in first trial, it will create one node of machine and add that to rb_tree. So next time when it tries to fetch same machine from rb_tree, it won't fail. Actually it was the case before refactoring of code in aforementioned commit. This patch is generated from acme perf/core branch. Below I've mention an example that demonstrate the behaviour before and after applying patch. Before applying patch: [Note: One needs to run guest before recording data in host] ravi@ravi-bangoria:~$ ./perf kvm record -a Warning: 5903 unprocessable samples recorded. Do you have a KVM guest running and not using 'perf kvm'? [ perf record: Captured and wrote 1.409 MB perf.data.guest (285 samples) ] ravi@ravi-bangoria:~$ ./perf kvm report --stdio Warning: 5903 unprocessable samples recorded. Do you have a KVM guest running and not using 'perf kvm'? # To display the perf.data header info, please use --header/--header-only options. # # Total Lost Samples: 0 # # Samples: 285 of event 'cycles' # Event count (approx.): 88715406 # # Overhead Command Shared Object Symbol # ........ ....... ............. ...... # # (For a higher level overview, try: perf report --sort comm,dso) # After applying patch: ravi@ravi-bangoria:~$ ./perf kvm record -a [ perf record: Captured and wrote 1.188 MB perf.data.guest (17 samples) ] ravi@ravi-bangoria:~$ ./perf kvm report --stdio # To display the perf.data header info, please use --header/--header-only options. # # Total Lost Samples: 0 # # Samples: 17 of event 'cycles' # Event count (approx.): 700746 # # Overhead Command Shared Object Symbol # ........ ....... ................ ...................... # 34.19% :5758 [unknown] [g] 0xffffffff818682ab 22.79% :5758 [unknown] [g] 0xffffffff812dc7f8 22.79% :5758 [unknown] [g] 0xffffffff818650d0 14.83% :5758 [unknown] [g] 0xffffffff8161a1b6 2.49% :5758 [unknown] [g] 0xffffffff818692bf 0.48% :5758 [unknown] [g] 0xffffffff81869253 0.05% :5758 [unknown] [g] 0xffffffff81869250 Signed-off-by: Ravi Bangoria Cc: Naveen N. Rao Cc: stable@vger.kernel.org # v3.19+ Fixes: 54245fdc3576 ("perf session: Remove wrappers to machines__find") Link: http://lkml.kernel.org/r/1449471302-11283-1-git-send-email-ravi.bangoria@linux.vnet.ibm.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/session.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 472358412b93025b13f39e46008af3ed9541ae2b Merge: c111e8b 4058937 47b975d Author: Bjorn Helgaas Date: Fri Jan 15 12:33:29 2016 -0600 Merge branches 'pci/hotplug' and 'pci/resource' into next * pci/hotplug: PCI: ibmphp: Remove unneeded NULL test PCI: hotplug: Use list_for_each_entry() to simplify code PCI: acpiphp_ibm: Fix null dereferences on null ibm_slot * pci/resource: PCI: Avoid iterating through memory outside the resource window PCI: Fix minimum allocation address overwrite commit c111e8bf6edfead5602aafa2cda937781737d4f9 Merge: 65d5b10 40704b1 67de2dc 5930fe4 668f472 581d943 Author: Bjorn Helgaas Date: Fri Jan 15 12:33:14 2016 -0600 Merge branches 'pci/host', 'pci/host-designware', 'pci/host-hisi', 'pci/host-qcom' and 'pci/host-rcar' into next * pci/host: PCI: host: Add of_pci_get_host_bridge_resources() stub PCI: host: Mark PCIe/PCI (MSI) IRQ cascade handlers as IRQF_NO_THREAD * pci/host-designware: PCI: designware: Make config accessor override checking symmetric PCI: designware: Simplify control flow * pci/host-hisi: PCI: hisi: Add support for HiSilicon Hip06 PCIe host controllers * pci/host-qcom: ARM: dts: ifc6410: enable PCIe DT node for this board ARM: dts: apq8064: add PCIe devicetree node PCI: qcom: Add Qualcomm PCIe controller driver PCI: qcom: Document PCIe devicetree bindings PCI: designware: Ensure ATU is enabled before IO/conf space accesses * pci/host-rcar: PCI: rcar: Add Gen2 PHY setup to pcie-rcar PCI: rcar: Add runtime PM support to pcie-rcar PCI: rcar: Remove unused pci_sys_data struct from pcie-rcar commit 40704b129092eafce9c754199aea5a1f55c47fbc Author: Arnd Bergmann Date: Fri Dec 18 16:02:41 2015 +0100 PCI: host: Add of_pci_get_host_bridge_resources() stub The pcie-rcar driver can be built for any ARM platform (for COMPILE_TEST) including those without CONFIG_OF enabled, and that results in a compile-time error: drivers/pci/host/pcie-rcar.c: In function 'rcar_pcie_parse_request_of_pci_ranges': drivers/pci/host/pcie-rcar.c:939:8: error: implicit declaration of function 'of_pci_get_host_bridge_resources' [-Werror=implicit-function-declaration] err = of_pci_get_host_bridge_resources(np, 0, 0xff, &pci->resources, &iobase); Add a of_pci_get_host_bridge_resources() stub function defined when CONFIG_OF_ADDRESS is disabled to allow compile-testing on all platforms. This mirrors what we do for other OF-specific functions. Fixes: 5d2917d469fa ("PCI: rcar: Convert to DT resource parsing API") Signed-off-by: Arnd Bergmann Signed-off-by: Bjorn Helgaas Acked-by: Wolfram Sang Acked-by: Simon Horman include/linux/of_pci.h | 7 +++++++ 1 file changed, 7 insertions(+) commit 546bed631203344611f42b2af1d224d2eedb4e6b Author: Sebastian Andrzej Siewior Date: Fri Jan 15 14:37:15 2016 +0100 btrfs: initialize the seq counter in struct btrfs_device I managed to trigger this: | INFO: trying to register non-static key. | the code is fine but needs lockdep annotation. | turning off the locking correctness validator. | CPU: 1 PID: 781 Comm: systemd-gpt-aut Not tainted 4.4.0-rt2+ #14 | Hardware name: ARM-Versatile Express | [<80307cec>] (dump_stack) | [<80070e98>] (__lock_acquire) | [<8007184c>] (lock_acquire) | [<80287800>] (btrfs_ioctl) | [<8012a8d4>] (do_vfs_ioctl) | [<8012ac14>] (SyS_ioctl) so I think that btrfs_device_data_ordered_init() is not invoked behind a macro somewhere. Fixes: 7cc8e58d53cd ("Btrfs: fix unprotected device's variants on 32bits machine") Signed-off-by: Sebastian Andrzej Siewior Reviewed-by: David Sterba Signed-off-by: David Sterba fs/btrfs/volumes.c | 1 + 1 file changed, 1 insertion(+) commit 0dc924c5f2a3c4d999e12feaccee5f970cea1315 Author: Dan Carpenter Date: Wed Jan 13 15:21:17 2016 +0300 Btrfs: clean up an error code in btrfs_init_space_info() If we return 1 here, then the caller treats it as an error and returns -EINVAL. It causes a static checker warning to treat positive returns as an error. Fixes: 1aba86d67f34 ('Btrfs: fix easily get into ENOSPC in mixed case') Signed-off-by: Dan Carpenter Signed-off-by: David Sterba fs/btrfs/extent-tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8e217858eea0d63de9d818f52fa98b5f9e502e5a Author: Geliang Tang Date: Wed Jan 13 22:08:01 2016 +0800 btrfs: fix iterator with update error in backref.c Fix the following error: fs/btrfs/backref.c:565:1-20: iterator with update on line 577 Fixes: a7ca422('btrfs: use list_for_each_entry* in backref.c') Signed-off-by: Geliang Tang Signed-off-by: David Sterba fs/btrfs/backref.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit b7c47bbb2d1856330f71ba04c8eb03b39aca87cd Author: Tsutomu Itoh Date: Wed Jan 6 17:03:40 2016 +0900 Btrfs: fix output of compression message in btrfs_parse_options() The compression message might not be correctly output. Fix it. [[before fix]] # mount -o compress /dev/sdb3 /test3 [ 996.874264] BTRFS info (device sdb3): disk space caching is enabled [ 996.874268] BTRFS: has skinny extents # mount | grep /test3 /dev/sdb3 on /test3 type btrfs (rw,relatime,compress=zlib,space_cache,subvolid=5,subvol=/) # mount -o remount,compress-force /dev/sdb3 /test3 [ 1035.075017] BTRFS info (device sdb3): force zlib compression [ 1035.075021] BTRFS info (device sdb3): disk space caching is enabled # mount | grep /test3 /dev/sdb3 on /test3 type btrfs (rw,relatime,compress-force=zlib,space_cache,subvolid=5,subvol=/) # mount -o remount,compress /dev/sdb3 /test3 [ 1053.679092] BTRFS info (device sdb3): disk space caching is enabled # mount | grep /test3 /dev/sdb3 on /test3 type btrfs (rw,relatime,compress=zlib,space_cache,subvolid=5,subvol=/) [[after fix]] # mount -o compress /dev/sdb3 /test3 [ 401.021753] BTRFS info (device sdb3): use zlib compression [ 401.021758] BTRFS info (device sdb3): disk space caching is enabled [ 401.021760] BTRFS: has skinny extents # mount | grep /test3 /dev/sdb3 on /test3 type btrfs (rw,relatime,compress=zlib,space_cache,subvolid=5,subvol=/) # mount -o remount,compress-force /dev/sdb3 /test3 [ 439.824624] BTRFS info (device sdb3): force zlib compression [ 439.824629] BTRFS info (device sdb3): disk space caching is enabled # mount | grep /test3 /dev/sdb3 on /test3 type btrfs (rw,relatime,compress-force=zlib,space_cache,subvolid=5,subvol=/) # mount -o remount,compress /dev/sdb3 /test3 [ 459.918430] BTRFS info (device sdb3): use zlib compression [ 459.918434] BTRFS info (device sdb3): disk space caching is enabled # mount | grep /test3 /dev/sdb3 on /test3 type btrfs (rw,relatime,compress=zlib,space_cache,subvolid=5,subvol=/) Signed-off-by: Tsutomu Itoh Signed-off-by: David Sterba fs/btrfs/super.c | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) commit f32e48e925964c4f8ab917850788a87e1cef3bad Author: Chandan Rajendra Date: Thu Jan 7 18:56:59 2016 +0530 Btrfs: Initialize btrfs_root->highest_objectid when loading tree root and subvolume roots The following call trace is seen when btrfs/031 test is executed in a loop, [ 158.661848] ------------[ cut here ]------------ [ 158.662634] WARNING: CPU: 2 PID: 890 at /home/chandan/repos/linux/fs/btrfs/ioctl.c:558 create_subvol+0x3d1/0x6ea() [ 158.664102] BTRFS: Transaction aborted (error -2) [ 158.664774] Modules linked in: [ 158.665266] CPU: 2 PID: 890 Comm: btrfs Not tainted 4.4.0-rc6-g511711a #2 [ 158.666251] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011 [ 158.667392] ffffffff81c0a6b0 ffff8806c7c4f8e8 ffffffff81431fc8 ffff8806c7c4f930 [ 158.668515] ffff8806c7c4f920 ffffffff81051aa1 ffff880c85aff000 ffff8800bb44d000 [ 158.669647] ffff8808863b5c98 0000000000000000 00000000fffffffe ffff8806c7c4f980 [ 158.670769] Call Trace: [ 158.671153] [] dump_stack+0x44/0x5c [ 158.671884] [] warn_slowpath_common+0x81/0xc0 [ 158.672769] [] warn_slowpath_fmt+0x47/0x50 [ 158.673620] [] create_subvol+0x3d1/0x6ea [ 158.674440] [] btrfs_mksubvol.isra.30+0x369/0x520 [ 158.675376] [] ? percpu_down_read+0x1a/0x50 [ 158.676235] [] btrfs_ioctl_snap_create_transid+0x101/0x180 [ 158.677268] [] btrfs_ioctl_snap_create+0x52/0x70 [ 158.678183] [] btrfs_ioctl+0x474/0x2f90 [ 158.678975] [] ? vma_merge+0xee/0x300 [ 158.679751] [] ? alloc_pages_vma+0x91/0x170 [ 158.680599] [] ? lru_cache_add_active_or_unevictable+0x22/0x70 [ 158.681686] [] ? selinux_file_ioctl+0xff/0x1d0 [ 158.682581] [] do_vfs_ioctl+0x2c1/0x490 [ 158.683399] [] ? security_file_ioctl+0x3e/0x60 [ 158.684297] [] SyS_ioctl+0x74/0x80 [ 158.685051] [] entry_SYSCALL_64_fastpath+0x12/0x6a [ 158.685958] ---[ end trace 4b63312de5a2cb76 ]--- [ 158.686647] BTRFS: error (device loop0) in create_subvol:558: errno=-2 No such entry [ 158.709508] BTRFS info (device loop0): forced readonly [ 158.737113] BTRFS info (device loop0): disk space caching is enabled [ 158.738096] BTRFS error (device loop0): Remounting read-write after error is not allowed [ 158.851303] BTRFS error (device loop0): cleaner transaction attach returned -30 This occurs because, Mount filesystem Create subvol with ID 257 Unmount filesystem Mount filesystem Delete subvol with ID 257 btrfs_drop_snapshot() Add root corresponding to subvol 257 into btrfs_transaction->dropped_roots list Create new subvol (i.e. create_subvol()) 257 is returned as the next free objectid btrfs_read_fs_root_no_name() Finds the btrfs_root instance corresponding to the old subvol with ID 257 in btrfs_fs_info->fs_roots_radix. Returns error since btrfs_root_item->refs has the value of 0. To fix the issue the commit initializes tree root's and subvolume root's highest_objectid when loading the roots from disk. Signed-off-by: Chandan Rajendra Signed-off-by: David Sterba fs/btrfs/disk-io.c | 27 +++++++++++++++++++++++++++ fs/btrfs/inode-map.c | 9 +-------- fs/btrfs/inode-map.h | 1 + fs/btrfs/ioctl.c | 4 ++++ 4 files changed, 33 insertions(+), 8 deletions(-) commit 95617d69326ce386c95e33db7aeb832b45ee9f8f Author: Jeff Mahoney Date: Wed Jun 3 10:55:48 2015 -0400 btrfs: cleanup, stop casting for extent_map->lookup everywhere Overloading extent_map->bdev to struct map_lookup * might have started out as a means to an end, but it's a pattern that's used all over the place now. Let's get rid of the casting and just add a union instead. Signed-off-by: Jeff Mahoney Signed-off-by: David Sterba fs/btrfs/dev-replace.c | 2 +- fs/btrfs/extent-tree.c | 2 +- fs/btrfs/extent_map.c | 2 +- fs/btrfs/extent_map.h | 10 +++++++++- fs/btrfs/scrub.c | 2 +- fs/btrfs/volumes.c | 24 ++++++++++++------------ 6 files changed, 25 insertions(+), 17 deletions(-) commit 2935bf43ef12a8d68b96776ec11155cfa120cb0d Author: Xiubo Li Date: Fri Jan 15 13:33:08 2016 +0800 ASoC: fsl: document DT compatible string "fsl,imx-audio-wm8960" The devicetree compatible string "fsl,imx-audio-wm8960" for fsl-asoc-card is missing. Signed-off-by: Xiubo Li Signed-off-by: Mark Brown Documentation/devicetree/bindings/sound/fsl-asoc-card.txt | 2 ++ 1 file changed, 2 insertions(+) commit ec3995da27e782cc407ce48101c98c19c9ce738d Author: Arnd Bergmann Date: Wed Jan 13 23:14:54 2016 +0100 ASoC: mediatek: add i2c dependency The newly added mediatek drivers for mt8173 select codes that depend on I2C, which cuases a build failure if I2C is disabled: warning: (SND_SOC_ADAU1761_I2C && SND_SOC_ADAU1781_I2C && SND_SOC_ADAU1977_I2C && SND_SOC_RT5677 && EXTCON_MAX14577 && EXTCON_MAX77693 && EXTCON_MAX77843 && BMC150_ACCEL_I2C && BMG160_I2C) selects REGMAP_I2C which has unmet direct dependencies (I2C) codecs/rt5645.c:3854:1: warning: data definition has no type or storage class codecs/rt5645.c:3854:1: error: type defaults to 'int' in declaration of 'module_i2c_driver' [-Werror=implicit-int] codecs/rt5677.c:5270:1: warning: data definition has no type or storage class 77_i2c_driver); codecs/rt5677.c:5270:1: error: type defaults to 'int' in declaration of 'module_i2c_driver' [-Werror=implicit-int] This adds an explicit dependency. Signed-off-by: Arnd Bergmann Acked-by: Koro Chen Signed-off-by: Mark Brown sound/soc/mediatek/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ebea7c0545d4d5e554b84c3ee8072f13c3fdd2ba Author: Arnd Bergmann Date: Wed Jan 13 21:51:29 2016 +0100 spi: fix counting in spi-loopback-test code These variables are always used uninitialized: drivers/spi/spi-loopback-test.c: In function 'spi_test_run_iter': drivers/spi/spi-loopback-test.c:768:17: warning: 'rx_count' may be used uninitialized in this function [-Wmaybe-uninitialized] drivers/spi/spi-loopback-test.c:762:17: warning: 'tx_count' may be used uninitialized in this function [-Wmaybe-uninitialized] Adding an explicit initialization seems to be the only workable solution here, to make the code behave correctly and build without warning. Fixes: 84e0c4e5e2c4 ("spi: add loopback test driver to allow for spi_master regression tests") Signed-off-by: Arnd Bergmann Acked-by: Geert Uytterhoeven Signed-off-by: Mark Brown drivers/spi/spi-loopback-test.c | 1 + 1 file changed, 1 insertion(+) commit 7776a69386179ea477f501aa222692b9856ec56c Author: Alex Deucher Date: Thu Oct 15 10:59:16 2015 -0400 drm/amdgpu: Add some tweaks to gfx 8 soft reset Reviewed-by: Junwei Zhang Reviewed-by: Christian König Reviewed-by: Ken Wang Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) commit e160e4db833c7e8587ec3c88efaed0d84f1bcf42 Author: Alex Deucher Date: Thu Jan 14 13:48:24 2016 -0500 drm/amdgpu: fix tonga smu resume Need to make sure smu buffers are pinned on resume. This matches what Fiji does. Cc: stable@vger.kernel.org Reviewed-by: Junwei Zhang Reviewed-by: Christian König Reviewed-by: Ken Wang Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/tonga_dpm.c | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) commit 02f1cc3c1a121c70cdf95e986f7f2fb4323cc5a3 Author: Felipe Balbi Date: Mon Jan 11 15:26:12 2016 -0600 ARM: omap2plus_defconfig: enable SPLIT and DWARF4 CONFIG_DEBUG_INFO_SPLIT will split debug info on .dwo files. This will generate a smaller vmlinux and smaller .ko modules, which will be easier to ship on certain products. CONFIG_DEBUG_INFO_DWARF4 will generate debug info in DWARF4 format, which ends up being larger, but improves the probability of resolving variables in optmized code. Signed-off-by: Felipe Balbi [tony@atomide.com: this makes initramfs quite a bit smaller] Signed-off-by: Tony Lindgren arch/arm/configs/omap2plus_defconfig | 2 ++ 1 file changed, 2 insertions(+) commit c08659d431b40ad5beb97d7dde49ad9796cb812c Author: H. Nikolaus Schaller Date: Tue Jan 5 13:01:37 2016 +0100 ARM: dts: omap5-board-common: enable rtc and charging of backup battery tested on OMP5432 EVM Cc: stable@vger.kernel.org # v4.4 Signed-off-by: H. Nikolaus Schaller Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap5-board-common.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) commit 171b5682aa8597174e80ec4128c87538103f2213 Merge: 45bdbcf b4d7f16 Author: Paolo Bonzini Date: Fri Jan 15 17:49:39 2016 +0100 Merge branch 'kvm-ppc-next' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc into HEAD commit c3b1681375dc6e71d89a3ae00cc3ce9e775a8917 Author: Takashi Iwai Date: Thu Jan 14 17:01:46 2016 +0100 ALSA: timer: Code cleanup This is a minor code cleanup without any functional changes: - Kill keep_flag argument from _snd_timer_stop(), as all callers pass only it false. - Remove redundant NULL check in _snd_timer_stop(). Signed-off-by: Takashi Iwai sound/core/timer.c | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) commit b5a663aa426f4884c71cd8580adae73f33570f0d Author: Takashi Iwai Date: Thu Jan 14 16:30:58 2016 +0100 ALSA: timer: Harden slave timer list handling A slave timer instance might be still accessible in a racy way while operating the master instance as it lacks of locking. Since the master operation is mostly protected with timer->lock, we should cope with it while changing the slave instance, too. Also, some linked lists (active_list and ack_list) of slave instances aren't unlinked immediately at stopping or closing, and this may lead to unexpected accesses. This patch tries to address these issues. It adds spin lock of timer->lock (either from master or slave, which is equivalent) in a few places. For avoiding a deadlock, we ensure that the global slave_active_lock is always locked at first before each timer lock. Also, ack and active_list of slave instances are properly unlinked at snd_timer_stop() and snd_timer_close(). Last but not least, remove the superfluous call of _snd_timer_stop() at removing slave links. This is a noop, and calling it may confuse readers wrt locking. Further cleanup will follow in a later patch. Actually we've got reports of use-after-free by syzkaller fuzzer, and this hopefully fixes these issues. Reported-by: Dmitry Vyukov Cc: Signed-off-by: Takashi Iwai sound/core/timer.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) commit cf52103a218744f3fd18111325c28e95aa9cd226 Author: Takashi Iwai Date: Fri Jan 15 12:59:25 2016 +0100 ALSA: hda - Add fixup for Dell Latitidue E6540 Another Dell model, another fixup entry: Latitude E6540 needs the same fixup as other Latitude E series as workaround for noise problems. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=104341 Cc: Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 1 + 1 file changed, 1 insertion(+) commit 98229aa36caa9c769b13565523de9b813013c703 Author: Thomas Gleixner Date: Thu Dec 31 16:30:54 2015 +0000 x86/irq: Plug vector cleanup race We still can end up with a stale vector due to the following: CPU0 CPU1 CPU2 lock_vector() data->move_in_progress=0 sendIPI() unlock_vector() set_affinity() assign_irq_vector() lock_vector() handle_IPI move_in_progress = 1 lock_vector() unlock_vector() move_in_progress == 1 So we need to serialize the vector assignment against a pending cleanup. The solution is rather simple now. We not only check for the move_in_progress flag in assign_irq_vector(), we also check whether there is still a cleanup pending in the old_domain cpumask. If so, we return -EBUSY to the caller and let him deal with it. Though we have to be careful in the cpu unplug case. If the cleanout has not yet completed then the following setaffinity() call would return -EBUSY. Add code which prevents this. Full context is here: http://lkml.kernel.org/r/5653B688.4050809@stratus.com Reported-and-tested-by: Joe Lawrence Signed-off-by: Thomas Gleixner Tested-by: Borislav Petkov Cc: Jiang Liu Cc: Jeremiah Mahler Cc: andy.shevchenko@gmail.com Cc: Guenter Roeck Cc: stable@vger.kernel.org #4.3+ Link: http://lkml.kernel.org/r/20151231160107.207265407@linutronix.de Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/vector.c | 63 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 53 insertions(+), 10 deletions(-) commit 90a2282e23f0522e4b3f797ad447c5e91bf7fe32 Author: Thomas Gleixner Date: Thu Dec 31 16:30:53 2015 +0000 x86/irq: Call irq_force_move_complete with irq descriptor First of all there is no point in looking up the irq descriptor again, but we also need the descriptor for the final cleanup race fix in the next patch. Make that change seperate. No functional difference. Signed-off-by: Thomas Gleixner Tested-by: Borislav Petkov Tested-by: Joe Lawrence Cc: Jiang Liu Cc: Jeremiah Mahler Cc: andy.shevchenko@gmail.com Cc: Guenter Roeck Cc: stable@vger.kernel.org #4.3+ Link: http://lkml.kernel.org/r/20151231160107.125211743@linutronix.de Signed-off-by: Thomas Gleixner arch/x86/include/asm/irq.h | 5 +++-- arch/x86/kernel/apic/vector.c | 11 +++++++---- arch/x86/kernel/irq.c | 2 +- 3 files changed, 11 insertions(+), 7 deletions(-) commit 56d7d2f4bbd00fb198b7907cb3ab657d06115a42 Author: Thomas Gleixner Date: Thu Dec 31 16:30:52 2015 +0000 x86/irq: Remove outgoing CPU from vector cleanup mask We want to synchronize new vector assignments with a pending cleanup. Remove a dying cpu from a pending cleanup mask. Signed-off-by: Thomas Gleixner Tested-by: Borislav Petkov Tested-by: Joe Lawrence Cc: Jiang Liu Cc: Jeremiah Mahler Cc: andy.shevchenko@gmail.com Cc: Guenter Roeck Cc: stable@vger.kernel.org #4.3+ Link: http://lkml.kernel.org/r/20151231160107.045961667@linutronix.de Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/vector.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) commit 5da0c1217f05d2ccc9a8ed6e6e5c23a8a1d24dd6 Author: Thomas Gleixner Date: Thu Dec 31 16:30:52 2015 +0000 x86/irq: Remove the cpumask allocation from send_cleanup_vector() There is no need to allocate a new cpumask for sending the cleanup vector. The old_domain mask is now protected by the vector_lock, so we can safely remove the offline cpus from it and send the IPI with the resulting mask. Signed-off-by: Thomas Gleixner Tested-by: Borislav Petkov Tested-by: Joe Lawrence Cc: Jiang Liu Cc: Jeremiah Mahler Cc: andy.shevchenko@gmail.com Cc: Guenter Roeck Cc: stable@vger.kernel.org #4.3+ Link: http://lkml.kernel.org/r/20151231160106.967993932@linutronix.de Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/vector.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) commit c1684f5035b60e9f98566493e869496fb5de1d89 Author: Thomas Gleixner Date: Thu Dec 31 16:30:51 2015 +0000 x86/irq: Clear move_in_progress before sending cleanup IPI send_cleanup_vector() fiddles with the old_domain mask unprotected because it relies on the protection by the move_in_progress flag. But this is fatal, as the flag is reset after the IPI has been sent. So a cpu which receives the IPI can still see the flag set and therefor ignores the cleanup request. If no other cleanup request happens then the vector stays stale on that cpu and in case of an irq removal the vector still persists. That can lead to use after free when the next cleanup IPI happens. Protect the code with vector_lock and clear move_in_progress before sending the IPI. This does not plug the race which Joe reported because: CPU0 CPU1 CPU2 lock_vector() data->move_in_progress=0 sendIPI() unlock_vector() set_affinity() assign_irq_vector() lock_vector() handle_IPI move_in_progress = 1 lock_vector() unlock_vector() move_in_progress == 1 The full fix comes with a later patch. Reported-and-tested-by: Joe Lawrence Signed-off-by: Thomas Gleixner Tested-by: Borislav Petkov Cc: Jiang Liu Cc: Jeremiah Mahler Cc: andy.shevchenko@gmail.com Cc: Guenter Roeck Cc: stable@vger.kernel.org #4.3+ Link: http://lkml.kernel.org/r/20151231160106.892412198@linutronix.de Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/vector.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 847667ef10356b824a11c853fc8a8b1b437b6a8d Author: Thomas Gleixner Date: Thu Dec 31 16:30:50 2015 +0000 x86/irq: Remove offline cpus from vector cleanup No point of keeping offline cpus in the cleanup mask. Signed-off-by: Thomas Gleixner Tested-by: Borislav Petkov Tested-by: Joe Lawrence Cc: Jiang Liu Cc: Jeremiah Mahler Cc: andy.shevchenko@gmail.com Cc: Guenter Roeck Cc: stable@vger.kernel.org #4.3+ Link: http://lkml.kernel.org/r/20151231160106.808642683@linutronix.de Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/vector.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit ab25ac02148b600e645f77cfb8b8ea415ed75bb4 Author: Thomas Gleixner Date: Thu Dec 31 16:30:49 2015 +0000 x86/irq: Get rid of code duplication Reusing an existing vector and assigning a new vector has duplicated code. Consolidate it. This is also a preparatory patch for finally plugging the cleanup race. Signed-off-by: Thomas Gleixner Tested-by: Borislav Petkov Tested-by: Joe Lawrence Cc: Jiang Liu Cc: Jeremiah Mahler Cc: andy.shevchenko@gmail.com Cc: Guenter Roeck Cc: stable@vger.kernel.org #4.3+ Link: http://lkml.kernel.org/r/20151231160106.721599216@linutronix.de Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/vector.c | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) commit 9ac15b7a8af4cf3337a101498c0ed690d23ade75 Author: Thomas Gleixner Date: Thu Dec 31 16:30:49 2015 +0000 x86/irq: Copy vectormask instead of an AND operation In the case that the new vector mask is a subset of the existing mask there is no point to do a AND operation of currentmask & newmask. The result is newmask. So we can simply copy the new mask to the current mask and be done with it. Preparatory patch for further consolidation. Signed-off-by: Thomas Gleixner Tested-by: Borislav Petkov Tested-by: Joe Lawrence Cc: Jiang Liu Cc: Jeremiah Mahler Cc: andy.shevchenko@gmail.com Cc: Guenter Roeck Cc: stable@vger.kernel.org #4.3+ Link: http://lkml.kernel.org/r/20151231160106.640253454@linutronix.de Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/vector.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3716fd27a604d61a91cda47083504971486b80f1 Author: Thomas Gleixner Date: Thu Dec 31 16:30:48 2015 +0000 x86/irq: Check vector allocation early __assign_irq_vector() uses the vector_cpumask which is assigned by apic->vector_allocation_domain() without doing basic sanity checks. That can result in a situation where the final assignement of a newly found vector fails in apic->cpu_mask_to_apicid_and(). So we have to do rollbacks for no reason. apic->cpu_mask_to_apicid_and() only fails if vector_cpumask & requested_cpumask & cpu_online_mask is empty. Check for this condition right away and if the result is empty try immediately the next possible cpu in the requested mask. So in case of a failure the old setting is unchanged and we can remove the rollback code. Signed-off-by: Thomas Gleixner Tested-by: Borislav Petkov Tested-by: Joe Lawrence Cc: Jiang Liu Cc: Jeremiah Mahler Cc: andy.shevchenko@gmail.com Cc: Guenter Roeck Cc: stable@vger.kernel.org #4.3+ Link: http://lkml.kernel.org/r/20151231160106.561877324@linutronix.de Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/vector.c | 38 +++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 13 deletions(-) commit 95ffeb4b5baca266e1d0d2bc90f1513e6f419cdd Author: Thomas Gleixner Date: Thu Dec 31 16:30:47 2015 +0000 x86/irq: Reorganize the search in assign_irq_vector Split out the code which advances the target cpu for the search so we can reuse it for the next patch which adds an early validation check for the vectormask which we get from the apic. Add comments while at it. Signed-off-by: Thomas Gleixner Tested-by: Borislav Petkov Tested-by: Joe Lawrence Cc: Jiang Liu Cc: Jeremiah Mahler Cc: andy.shevchenko@gmail.com Cc: Guenter Roeck Cc: stable@vger.kernel.org #4.3+ Link: http://lkml.kernel.org/r/20151231160106.484562040@linutronix.de Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/vector.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) commit 433cbd57d190a1cdd02f243df41c3d7f55ec4b94 Author: Thomas Gleixner Date: Thu Dec 31 16:30:46 2015 +0000 x86/irq: Reorganize the return path in assign_irq_vector Use an explicit goto for the cases where we have success in the search/update and return -ENOSPC if the search loop ends due to no space. Preparatory patch for fixes. No functional change. Signed-off-by: Thomas Gleixner Tested-by: Borislav Petkov Tested-by: Joe Lawrence Cc: Jiang Liu Cc: Jeremiah Mahler Cc: andy.shevchenko@gmail.com Cc: Guenter Roeck Cc: stable@vger.kernel.org #4.3+ Link: http://lkml.kernel.org/r/20151231160106.403491024@linutronix.de Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/vector.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) commit 8a580f70f6936ec095da217018cdeeb5835c0207 Author: Jiang Liu Date: Thu Dec 31 16:30:46 2015 +0000 x86/irq: Do not use apic_chip_data.old_domain as temporary buffer Function __assign_irq_vector() makes use of apic_chip_data.old_domain as a temporary buffer, which is in the way of using apic_chip_data.old_domain for synchronizing the vector cleanup with the vector assignement code. Use a proper temporary cpumask for this. [ tglx: Renamed the mask to searched_cpumask for clarity ] Signed-off-by: Jiang Liu Tested-by: Borislav Petkov Tested-by: Joe Lawrence Cc: Jeremiah Mahler Cc: andy.shevchenko@gmail.com Cc: Guenter Roeck Cc: stable@vger.kernel.org #4.3+ Link: http://lkml.kernel.org/r/1450880014-11741-1-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/vector.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 36f34c8c63da3e272fd66f91089228c22d2b6e8b Author: Thomas Gleixner Date: Thu Dec 31 16:30:45 2015 +0000 x86/irq: Validate that irq descriptor is still active In fixup_irqs() we unconditionally dereference the irq chip of an irq descriptor. The descriptor might still be valid, but already cleaned up, i.e. the chip removed. Add a check for this condition. Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Joe Lawrence Cc: Jeremiah Mahler Cc: Borislav Petkov Cc: andy.shevchenko@gmail.com Cc: Guenter Roeck Cc: stable@vger.kernel.org #4.3+ Link: http://lkml.kernel.org/r/20151231160106.236423282@linutronix.de Signed-off-by: Thomas Gleixner arch/x86/kernel/irq.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 111abeba67e0dbdc26537429de9155e4f1d807d8 Author: Jiang Liu Date: Thu Dec 31 16:30:44 2015 +0000 x86/irq: Fix a race in x86_vector_free_irqs() There's a race condition between x86_vector_free_irqs() { free_apic_chip_data(irq_data->chip_data); xxxxx //irq_data->chip_data has been freed, but the pointer //hasn't been reset yet irq_domain_reset_irq_data(irq_data); } and smp_irq_move_cleanup_interrupt() { raw_spin_lock(&vector_lock); data = apic_chip_data(irq_desc_get_irq_data(desc)); access data->xxxx // may access freed memory raw_spin_unlock(&desc->lock); } which may cause smp_irq_move_cleanup_interrupt() to access freed memory. Call irq_domain_reset_irq_data(), which clears the pointer with vector lock held. [ tglx: Free memory outside of lock held region. ] Signed-off-by: Jiang Liu Tested-by: Borislav Petkov Tested-by: Joe Lawrence Cc: Jeremiah Mahler Cc: andy.shevchenko@gmail.com Cc: Guenter Roeck Cc: stable@vger.kernel.org #4.3+ Link: http://lkml.kernel.org/r/1450880014-11741-3-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/vector.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit e23b257c293ce4bcc8cabb2aa3097b6ed8a8261a Author: Thomas Gleixner Date: Thu Jan 14 08:43:38 2016 +0100 x86/irq: Call chip->irq_set_affinity in proper context setup_ioapic_dest() calls irqchip->irq_set_affinity() completely unprotected. That's wrong in several aspects: - it opens a race window where irq_set_affinity() can be interrupted and the irq chip left in unconsistent state. - it triggers a lockdep splat when we fix the vector race for 4.3+ because vector lock is taken with interrupts enabled. The proper calling convention is irq descriptor lock held and interrupts disabled. Reported-and-tested-by: Borislav Petkov Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Jeremiah Mahler Cc: andy.shevchenko@gmail.com Cc: Guenter Roeck Cc: Joe Lawrence Cc: stable@vger.kernel.org Link: http://lkml.kernel.org/r/alpine.DEB.2.11.1601140919420.3575@nanos Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/io_apic.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit f02b4b72d12cbae7020a959e2ed0410a464b4cc4 Author: Alexandre Belloni Date: Fri Jan 15 11:34:21 2016 +0100 clockevents/tcb_clksrc: Prevent disabling an already disabled clock clockevents_exchange_device is calling clockevents_shutdown() on the new clockenvents device but it may have never been enabled in the first place. This results in the tcb clock being disabled without being enabled first: ------------[ cut here ]------------ WARNING: CPU: 0 PID: 1 at drivers/clk/clk.c:680 clk_disable+0x28/0x34() Modules linked in: CPU: 0 PID: 1 Comm: swapper Not tainted 4.4.0+ #6 Hardware name: Atmel AT91SAM9 [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [] (show_stack) from [] (warn_slowpath_common+0x78/0xa0) [] (warn_slowpath_common) from [] (warn_slowpath_null+0x18/0x20) [] (warn_slowpath_null) from [] (clk_disable+0x28/0x34) [] (clk_disable) from [] (tc_shutdown+0x38/0x4c) [] (tc_shutdown) from [] (clockevents_switch_state+0x38/0x6c) [] (clockevents_switch_state) from [] (clockevents_shutdown+0x10/0x24) [] (clockevents_shutdown) from [] (tick_check_new_device+0x84/0xac) [] (tick_check_new_device) from [] (clockevents_register_device+0x7c/0x108) [] (clockevents_register_device) from [] (tcb_clksrc_init+0x390/0x3e8) [] (tcb_clksrc_init) from [] (do_one_initcall+0x114/0x1d4) [] (do_one_initcall) from [] (kernel_init_freeable+0xfc/0x1b8) [] (kernel_init_freeable) from [] (kernel_init+0x8/0xe0) [] (kernel_init) from [] (ret_from_fork+0x14/0x24) ---[ end trace 0000000000000001 ]--- Check what state we were in before trying to disable the clock. Fixes: cf4541c101ea ("clockevents/drivers/tcb_clksrc: Migrate to new 'set-state' interface") Signed-off-by: Alexandre Belloni Cc: Nicolas Ferre Cc: Boris Brezillon Cc: linux-arm-kernel@lists.infradead.org Cc: Daniel Lezcano Cc: stable@vger.kernel.org Link: http://lkml.kernel.org/r/1452854061-30370-1-git-send-email-alexandre.belloni@free-electrons.com Signed-off-by: Thomas Gleixner drivers/clocksource/tcb_clksrc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 4314e19ef4ae0ba8872bd8610f6fef5e8743e236 Author: Maxime Ripard Date: Thu Jan 14 16:24:56 2016 +0100 drm/fb_cma_helper: Remove implicit call to disable_unused_functions The drm_fbdev_cma_init function always calls the drm_helper_disable_unused_functions. Since it's part of the usual probe process, all the drivers using that helper will end up having their encoder and CRTC disable functions called at probe if their device has not been reported as enabled. This could be fixed by reading out from the registers the current state of the device if it is enabled, but even that will not handle the case where the device is actually disabled. Moreover, the drivers using the atomic modesetting expect that their enable and disable callback to be called when the device is already enabled or disabled (respectively). We can however fix this issue by moving the call to drm_helper_disable_unused_functions out of drm_fbdev_cma_init and make the drivers needing it (all the drivers calling drm_fbdev_cma_init and not using the atomic modesetting) explicitly call it. Signed-off-by: Maxime Ripard Link: http://patchwork.freedesktop.org/patch/msgid/1452785109-6172-14-git-send-email-maxime.ripard@free-electrons.com Acked-by: Laurent Pinchart Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_fb_cma_helper.c | 3 --- drivers/gpu/drm/imx/imx-drm-core.c | 1 + drivers/gpu/drm/sti/sti_drv.c | 1 + drivers/gpu/drm/tilcdc/tilcdc_drv.c | 1 + 4 files changed, 3 insertions(+), 3 deletions(-) commit 7d1fc01afc5af35e5197e0e75abe900f6bd279b8 Merge: 0f0836b bcf4299 Author: Linus Torvalds Date: Thu Jan 14 17:04:19 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial Pull trivial tree updates from Jiri Kosina. * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: floppy: make local variable non-static exynos: fixes an incorrect header guard dt-bindings: fixes some incorrect header guards cpufreq-dt: correct dead link in documentation cpufreq: ARM big LITTLE: correct dead link in documentation treewide: Fix typos in printk Documentation: filesystem: Fix typo in fs/eventfd.c fs/super.c: use && instead of & for warn_on condition Documentation: fix sysfs-ptp lib: scatterlist: fix Kconfig description commit 0f0836b7eb1b9d14862ee40c7856227a3ead70db Merge: c2848f2 b56b36e Author: Linus Torvalds Date: Thu Jan 14 16:38:02 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching Pull livepatching updates from Jiri Kosina: - RO/NX attribute fixes for patch module relocations from Josh Poimboeuf. As part of this effort, module.c has been cleaned up as well and livepatching is piggy-backing on this cleanup. Rusty is OK with this whole lot going through livepatching tree. - symbol disambiguation support from Chris J Arges. That series is also Reviewed-by: Miroslav Benes but this came in only after I've alredy pushed out. Didn't want to rebase because of that, hence I am mentioning it here. - symbol lookup fix from Miroslav Benes * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching: livepatch: Cleanup module page permission changes module: keep percpu symbols in module's symtab module: clean up RO/NX handling. module: use a structure to encapsulate layout. gcov: use within_module() helper. module: Use the same logic for setting and unsetting RO/NX livepatch: function,sympos scheme in livepatch sysfs directory livepatch: add sympos as disambiguator field to klp_reloc livepatch: add old_sympos as disambiguator field to klp_func commit c2848f2eef4dd08b0fd2a8eba1694fd8e77ddb67 Merge: 75f26df 83f1bfd Author: Linus Torvalds Date: Thu Jan 14 16:20:42 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid Pull HID updates from Jiri Kosina: - appoint Benjamin Tissoires as co-maintainer / designated reviewer - sysfs report_descriptor visibility fix for unclaimed devices, from Andy Lutomirski - suspend/resume fixes for Sony driver from Frank Praznik - IRQ deadlock fix from Ioan-Adrian Ratiu - hid-i2c fixes affecting (at least) Yoga 900 from Mika Westerberg and Srinivas Pandruvada - a lot of new device support (especially, but not limited to, Wacom) and assorted small misc fixes - almost complete G920 support; the only bit that is missing is switching the device to HID mode automatically; Simon Wood and Michal Maly are working on it. * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (46 commits) Revert "INPUT: xpad: switch Logitech G920 Wheel into HID mode" HID: sensor-hub: Add quirk for Lenovo Yoga 900 with ITE Chips HID: Add new PID for Microchip Pick16F1454 HID: wacom: Use correct report to query pen ID from INTUOSHT2 devices HID: i2c-hid: Prevent sending reports from racing with device reset HID: use kobj_to_dev() HID: wiimote: use dev_to_wii() HID: add a new helper to_hid_driver() HID: use to_hid_device() HID: move to_hid_device() to hid.h HID: usbhid: use to_usb_device HID: corsair: Convert to use module_hid_driver HID: input: ignore the battery in OKLICK Laser BTmouse HID: wacom: Fix pad button range for CINTIQ_COMPANION_2 HID: wacom: Fix touchring value reporting HID: wacom: Report 'strip2' values in ABS_RY HID: wacom: Limit touchstrip data to 13 bits HID: wacom: bitwise vs logical ORs HID: wacom: Apply lowres quirk to BAMBOO_TOUCH devices HID: enable hid device to suspend/resume asynchronously ... commit 75f26df6ae6f8787fc6198609c8be17400a69e25 Merge: 63f729c 44aab3e Author: Linus Torvalds Date: Thu Jan 14 16:08:23 2016 -0800 Merge tag 'nfs-for-4.5-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs Pull NFS client updates from Trond Myklebust: "Highlights include: Stable fixes: - Fix a regression in the SunRPC socket polling code - Fix the attribute cache revalidation code - Fix race in __update_open_stateid() - Fix an lo->plh_block_lgets imbalance in layoutreturn - Fix an Oopsable typo in ff_mirror_match_fh() Features: - pNFS layout recall performance improvements. - pNFS/flexfiles: Support server-supplied layoutstats sampling period Bugfixes + cleanups: - NFSv4: Don't perform cached access checks before we've OPENed the file - Fix starvation issues with background flushes - Reclaim writes should be flushed as unstable writes if there are already entries in the commit lists - Various bugfixes from Chuck to fix NFS/RDMA send queue ordering problems - Ensure that we propagate fatal layoutget errors back to the application - Fixes for sundry flexfiles layoutstats bugs - Fix files/flexfiles to not cache invalidated layouts in the DS commit buckets" * tag 'nfs-for-4.5-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (68 commits) NFS: Fix a compile warning about unused variable in nfs_generic_pg_pgios() NFSv4: Fix a compile warning about no prototype for nfs4_ioctl() NFS: Use wait_on_atomic_t() for unlock after readahead SUNRPC: Fixup socket wait for memory NFSv4.1/pNFS: Cleanup constify struct pnfs_layout_range arguments NFSv4.1/pnfs: Cleanup copying of pnfs_layout_range structures NFSv4.1/pNFS: Cleanup pnfs_mark_matching_lsegs_invalid() NFSv4.1/pNFS: Fix a race in initiate_file_draining() NFSv4.1/pNFS: pnfs_error_mark_layout_for_return() must always return layout NFSv4.1/pNFS: pnfs_mark_matching_lsegs_return() should set the iomode NFSv4.1/pNFS: Use nfs4_stateid_copy for copying stateids NFSv4.1/pNFS: Don't pass stateids by value to pnfs_send_layoutreturn() NFS: Relax requirements in nfs_flush_incompatible NFSv4.1/pNFS: Don't queue up a new commit if the layout segment is invalid NFS: Allow multiple commit requests in flight per file NFS/pNFS: Fix up pNFS write reschedule layering violations and bugs SUNRPC: Fix a missing break in rpc_anyaddr() pNFS/flexfiles: Fix an Oopsable typo in ff_mirror_match_fh() NFS: Fix attribute cache revalidation NFS: Ensure we revalidate attributes before using execute_ok() ... commit 63f729cb4aa9a224cfd6bb35eab6b4556c29115d Merge: 10a0c0f e8ecde2 Author: Linus Torvalds Date: Thu Jan 14 16:03:57 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull vfs fix from Al Viro: "Don't put symlink bodies in pagecache into highmem" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: Make sure that highmem pages are not added to symlink page cache commit 7d2eba0557c18f7522b98befed98799990dd4fdb Author: Ebru Akagunduz Date: Thu Jan 14 15:22:19 2016 -0800 mm: add tracepoint for scanning pages This patch series makes swapin readahead up to a certain number to gain more thp performance and adds tracepoint for khugepaged_scan_pmd, collapse_huge_page, __collapse_huge_page_isolate. This patch series was written to deal with programs that access most, but not all, of their memory after they get swapped out. Currently these programs do not get their memory collapsed into THPs after the system swapped their memory out, while they would get THPs before swapping happened. This patch series was tested with a test program, it allocates 400MB of memory, writes to it, and then sleeps. I force the system to swap out all. Afterwards, the test program touches the area by writing and leaves a piece of it without writing. This shows how much swap in readahead made by the patch. Test results: After swapped out ------------------------------------------------------------------- | Anonymous | AnonHugePages | Swap | Fraction | ------------------------------------------------------------------- With patch | 90076 kB | 88064 kB | 309928 kB | %99 | ------------------------------------------------------------------- Without patch | 194068 kB | 192512 kB | 205936 kB | %99 | ------------------------------------------------------------------- After swapped in ------------------------------------------------------------------- | Anonymous | AnonHugePages | Swap | Fraction | ------------------------------------------------------------------- With patch | 201408 kB | 198656 kB | 198596 kB | %98 | ------------------------------------------------------------------- Without patch | 292624 kB | 192512 kB | 107380 kB | %65 | ------------------------------------------------------------------- This patch (of 3): Using static tracepoints, data of functions is recorded. It is good to automatize debugging without doing a lot of changes in the source code. This patch adds tracepoint for khugepaged_scan_pmd, collapse_huge_page and __collapse_huge_page_isolate. [dan.carpenter@oracle.com: add a missing tab] Signed-off-by: Ebru Akagunduz Acked-by: Kirill A. Shutemov Acked-by: Rik van Riel Cc: Naoya Horiguchi Cc: Andrea Arcangeli Cc: Joonsoo Kim Cc: Xie XiuQi Cc: Cyrill Gorcunov Cc: Mel Gorman Cc: David Rientjes Cc: Vlastimil Babka Cc: Aneesh Kumar K.V Cc: Hugh Dickins Cc: Johannes Weiner Cc: Michal Hocko Signed-off-by: Dan Carpenter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/trace/events/huge_memory.h | 136 ++++++++++++++++++++++++++++++ mm/huge_memory.c | 166 ++++++++++++++++++++++++++++++------- 2 files changed, 270 insertions(+), 32 deletions(-) commit cb5490a5eea415106d7438df440da5fb1e17318d Author: John Allen Date: Thu Jan 14 15:22:16 2016 -0800 drivers/base/memory.c: fix kernel warning during memory hotplug on ppc64 Fix a bug where a kernel warning is triggered when performing a memory hotplug on ppc64. This warning may also occur on any architecture that uses the memory_probe_store interface. WARNING: at drivers/base/memory.c:200 CPU: 9 PID: 13042 Comm: systemd-udevd Not tainted 4.4.0-rc4-00113-g0bd0f1e-dirty #7 NIP [c00000000055e034] pages_correctly_reserved+0x134/0x1b0 LR [c00000000055e7f8] memory_subsys_online+0x68/0x140 Call Trace: memory_subsys_online+0x68/0x140 device_online+0xb4/0x120 store_mem_state+0xb0/0x180 dev_attr_store+0x34/0x60 sysfs_kf_write+0x64/0xa0 kernfs_fop_write+0x17c/0x1e0 __vfs_write+0x40/0x160 vfs_write+0xb8/0x200 SyS_write+0x60/0x110 system_call+0x38/0xd0 The warning is triggered because there is a udev rule that automatically tries to online memory after it has been added. The udev rule varies from distro to distro, but will generally look something like: SUBSYSTEM=="memory", ACTION=="add", ATTR{state}=="offline", ATTR{state}="online" On any architecture that uses memory_probe_store to reserve memory, the udev rule will be triggered after the first section of the block is reserved and will subsequently attempt to online the entire block, interrupting the memory reservation process and causing the warning. This patch modifies memory_probe_store to add a block of memory with a single call to add_memory as opposed to looping through and adding each section individually. A single call to add_memory is protected by the mem_hotplug mutex which will prevent the udev rule from onlining memory until the reservation of the entire block is complete. Signed-off-by: John Allen Acked-by: Dave Hansen Cc: Nathan Fontenot Cc: Michael Ellerman Cc: Greg Kroah-Hartman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/base/memory.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) commit fec174d6699e2e39d34c7c6ee2fe360e518e68c0 Author: Naoya Horiguchi Date: Thu Jan 14 15:22:13 2016 -0800 mm/page_isolation: use macro to judge the alignment Signed-off-by: Wang Xiaoqiang Reviewed-by: Naoya Horiguchi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/page_isolation.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 543dfb2df8ebb3eb0b499eae1d63de1701a99b40 Author: Joshua Clayton Date: Thu Jan 14 15:22:10 2016 -0800 mm: fix noisy sparse warning in LIBCFS_ALLOC_PRE() Running sparse on drivers/staging/lustre results in dozens of warnings: include/linux/gfp.h:281:41: warning: odd constant _Bool cast (400000 becomes 1) Use "!!" to explicitly convert to bool and get rid of the warning. Signed-off-by: Joshua Clayton Cc: Mel Gorman Cc: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/gfp.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 84638335900f1995495838fe1bd4870c43ec1f67 Author: Konstantin Khlebnikov Date: Thu Jan 14 15:22:07 2016 -0800 mm: rework virtual memory accounting When inspecting a vague code inside prctl(PR_SET_MM_MEM) call (which testing the RLIMIT_DATA value to figure out if we're allowed to assign new @start_brk, @brk, @start_data, @end_data from mm_struct) it's been commited that RLIMIT_DATA in a form it's implemented now doesn't do anything useful because most of user-space libraries use mmap() syscall for dynamic memory allocations. Linus suggested to convert RLIMIT_DATA rlimit into something suitable for anonymous memory accounting. But in this patch we go further, and the changes are bundled together as: * keep vma counting if CONFIG_PROC_FS=n, will be used for limits * replace mm->shared_vm with better defined mm->data_vm * account anonymous executable areas as executable * account file-backed growsdown/up areas as stack * drop struct file* argument from vm_stat_account * enforce RLIMIT_DATA for size of data areas This way code looks cleaner: now code/stack/data classification depends only on vm_flags state: VM_EXEC & ~VM_WRITE -> code (VmExe + VmLib in proc) VM_GROWSUP | VM_GROWSDOWN -> stack (VmStk) VM_WRITE & ~VM_SHARED & !stack -> data (VmData) The rest (VmSize - VmData - VmStk - VmExe - VmLib) could be called "shared", but that might be strange beast like readonly-private or VM_IO area. - RLIMIT_AS limits whole address space "VmSize" - RLIMIT_STACK limits stack "VmStk" (but each vma individually) - RLIMIT_DATA now limits "VmData" Signed-off-by: Konstantin Khlebnikov Signed-off-by: Cyrill Gorcunov Cc: Quentin Casasnovas Cc: Vegard Nossum Acked-by: Linus Torvalds Cc: Willy Tarreau Cc: Andy Lutomirski Cc: Kees Cook Cc: Vladimir Davydov Cc: Pavel Emelyanov Cc: Peter Zijlstra Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/ia64/kernel/perfmon.c | 3 +-- fs/proc/task_mmu.c | 7 +++--- include/linux/mm.h | 13 +++------- include/linux/mm_types.h | 2 +- kernel/fork.c | 5 ++-- mm/debug.c | 4 +-- mm/mmap.c | 63 +++++++++++++++++++++++----------------------- mm/mprotect.c | 8 ++++-- mm/mremap.c | 7 +++--- 9 files changed, 54 insertions(+), 58 deletions(-) commit d30b5545bdcf802ffc24ec7dbc6dc4036f6e3820 Author: Florian Fainelli Date: Thu Jan 14 15:22:04 2016 -0800 include/linux/memblock.h: fix ordering of 'flags' argument in comments for_each_free_mem_range() and for_each_free_mem_range_reverse() both accept a 'flags' argument, the comment surrounding the macro placed the 'flags' documentation at the very end, while 'flags' is in fact the 3rd argument to the macro, so let's preserve natural ordering here. Fixes: fc6daaf931518 ("mm/memblock: add extra "flags" to memblock to allow selection of memory based on attribute") Signed-off-by: Florian Fainelli Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memblock.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d72ee911130631b50a8ccc615a7d4622c2062194 Author: Geliang Tang Date: Thu Jan 14 15:22:01 2016 -0800 mm: move lru_to_page to mm_inline.h Move lru_to_page() from internal.h to mm_inline.h. Signed-off-by: Geliang Tang Acked-by: Vlastimil Babka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/mm_inline.h | 2 ++ mm/internal.h | 2 -- mm/readahead.c | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) commit 0bc126d460453736c0e03d9da7ae0e9d4fcf86b3 Author: Rodrigo Freire Date: Thu Jan 14 15:21:58 2016 -0800 Documentation/filesystems: describe the shared memory usage/accounting The Shared Memory accounting support is present in Kernel since commit 4b02108ac1b3 ("mm: oom analysis: add shmem vmstat") and in userland free(1) since 2014. This patch updates the Documentation to reflect this change. Signed-off-by: Rodrigo Freire Acked-by: Vlastimil Babka Cc: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/filesystems/proc.txt | 2 ++ Documentation/filesystems/tmpfs.txt | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-) commit 6f754ba4cfcc044078d4836056ac45404e1b6e85 Author: Vitaly Kuznetsov Date: Thu Jan 14 15:21:55 2016 -0800 memory-hotplug: don't BUG() in register_memory_resource() Out of memory condition is not a bug and while we can't add new memory in such case crashing the system seems wrong. Propagating the return value from register_memory_resource() requires interface change. Signed-off-by: Vitaly Kuznetsov Reviewed-by: Igor Mammedov Acked-by: David Rientjes Cc: Tang Chen Cc: Naoya Horiguchi Cc: Xishi Qiu Cc: Sheng Yong Cc: Zhu Guihua Cc: Dan Williams Cc: David Vrabel Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memory_hotplug.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 3e89e1c5ea84211b99199c7636a7d73c50c6b512 Author: Paul Gortmaker Date: Thu Jan 14 15:21:52 2016 -0800 hugetlb: make mm and fs code explicitly non-modular The Kconfig currently controlling compilation of this code is: config HUGETLBFS bool "HugeTLB file system 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 gets moved to earlier levels when we use the more appropriate initcalls here. Originally I had the fs part and the mm part as separate commits, just by happenstance of the nature of how I detected these non-modular use cases. But that can possibly introduce regressions if the patch merge ordering puts the fs part 1st -- as the 0-day testing reported a splat at mount time. Investigating with "initcall_debug" showed that the delta was init_hugetlbfs_fs being called _before_ hugetlb_init instead of after. So both the fs change and the mm change are here together. In addition, it worked before due to luck of link order, since they were both in the same initcall category. So we now have the fs part using fs_initcall, and the mm part using subsys_initcall, which puts it one bucket earlier. It now passes the basic sanity test that failed in earlier 0-day testing. We delete the MODULE_LICENSE tag and capture that information at the top of the file alongside author comments, etc. We don't replace module.h with init.h since the file already has that. Also note that MODULE_ALIAS is a no-op for non-modular code. Signed-off-by: Paul Gortmaker Reported-by: kernel test robot Cc: Nadia Yvette Chambers Cc: Alexander Viro Cc: Naoya Horiguchi Reviewed-by: Mike Kravetz Cc: David Rientjes Cc: Hillf Danton Acked-by: Davidlohr Bueso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/hugetlbfs/inode.c | 27 ++------------------------- mm/hugetlb.c | 39 +-------------------------------------- 2 files changed, 3 insertions(+), 63 deletions(-) commit 0d576d20ccdeffbb7ba28053107fa6f838b67f3a Author: Geliang Tang Date: Thu Jan 14 15:21:49 2016 -0800 mm/swapfile.c: use list_for_each_entry_safe in free_swap_count_continuations Use list_for_each_entry_safe() instead of list_for_each_safe() to simplify the code. Signed-off-by: Geliang Tang Cc: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/swapfile.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 0e41e277971799bad2764ad4e6284817e9a6da5b Author: Oleg Nesterov Date: Thu Jan 14 15:21:46 2016 -0800 mm: /proc/pid/clear_refs: no need to clear VM_SOFTDIRTY in clear_soft_dirty_pmd() clear_soft_dirty_pmd() is called by clear_refs_write(CLEAR_REFS_SOFT_DIRTY), VM_SOFTDIRTY was already cleared before walk_page_range(). Signed-off-by: Oleg Nesterov Acked-by: Kirill A. Shutemov Acked-by: Cyrill Gorcunov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/proc/task_mmu.c | 3 --- 1 file changed, 3 deletions(-) commit bb5b8589767a300014ba21c5984e6a4d15f0702d Author: Kirill A. Shutemov Date: Thu Jan 14 15:21:43 2016 -0800 mm: make sure isolate_lru_page() is never called for tail page The VM_BUG_ON_PAGE() would catch such cases if any still exists. Signed-off-by: Kirill A. Shutemov Acked-by: Michal Hocko Acked-by: Vlastimil Babka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/vmscan.c | 1 + 1 file changed, 1 insertion(+) commit 0eb77e9880321915322d42913c3b53241739c8aa Author: Christoph Lameter Date: Thu Jan 14 15:21:40 2016 -0800 vmstat: make vmstat_updater deferrable again and shut down on idle Currently the vmstat updater is not deferrable as a result of commit ba4877b9ca51 ("vmstat: do not use deferrable delayed work for vmstat_update"). This in turn can cause multiple interruptions of the applications because the vmstat updater may run at Make vmstate_update deferrable again and provide a function that folds the differentials when the processor is going to idle mode thus addressing the issue of the above commit in a clean way. Note that the shepherd thread will continue scanning the differentials from another processor and will reenable the vmstat workers if it detects any changes. Fixes: ba4877b9ca51 ("vmstat: do not use deferrable delayed work for vmstat_update") Signed-off-by: Christoph Lameter Cc: Michal Hocko Cc: Johannes Weiner Cc: Tetsuo Handa Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/vmstat.h | 2 ++ kernel/sched/idle.c | 1 + mm/vmstat.c | 69 ++++++++++++++++++++++++++++++++------------------ 3 files changed, 47 insertions(+), 25 deletions(-) commit 686739f6af5e8d5687ffebbf1193ff066aada6d9 Author: Hugh Dickins Date: Thu Jan 14 15:21:37 2016 -0800 memcg: avoid vmpressure oops when memcg disabled A CONFIG_MEMCG=y kernel booted with "cgroup_disable=memory" crashes on a NULL memcg (but non-NULL root_mem_cgroup) when vmpressure kicks in. Here's the patch I use to avoid that, but you might prefer a test on mem_cgroup_disabled() somewhere. Signed-off-by: Hugh Dickins Acked-by: Johannes Weiner Cc: David S. Miller Cc: Vladimir Davydov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/vmpressure.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ef12947c9c5a96af549c49f10e5503f0612a397c Author: Johannes Weiner Date: Thu Jan 14 15:21:34 2016 -0800 mm: memcontrol: switch to the updated jump-label API According to the direct use of struct static_key is deprecated. Update the socket and slab accounting code accordingly. Signed-off-by: Johannes Weiner Acked-by: David S. Miller Reported-by: Jason Baron Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memcontrol.h | 8 ++++---- mm/memcontrol.c | 12 ++++++------ net/ipv4/tcp_memcontrol.c | 4 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) commit 8e8ae645249b85c8ed6c178557f8db8613a6bcc7 Author: Johannes Weiner Date: Thu Jan 14 15:21:32 2016 -0800 mm: memcontrol: hook up vmpressure to socket pressure Let the networking stack know when a memcg is under reclaim pressure so that it can clamp its transmit windows accordingly. Whenever the reclaim efficiency of a cgroup's LRU lists drops low enough for a MEDIUM or HIGH vmpressure event to occur, assert a pressure state in the socket and tcp memory code that tells it to curb consumption growth from sockets associated with said control group. Traditionally, vmpressure reports for the entire subtree of a memcg under pressure, which drops useful information on the individual groups reclaimed. However, it's too late to change the userinterface, so add a second reporting mode that reports on the level of reclaim instead of at the level of pressure, and use that report for sockets. vmpressure events are naturally edge triggered, so for hysteresis assert socket pressure for a second to allow for subsequent vmpressure events to occur before letting the socket code return to normal. This will likely need finetuning for a wider variety of workloads, but for now stick to the vmpressure presets and keep hysteresis simple. Signed-off-by: Johannes Weiner Acked-by: David S. Miller Reviewed-by: Vladimir Davydov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memcontrol.h | 32 ++++++++++++++++--- include/linux/vmpressure.h | 7 +++-- mm/memcontrol.c | 17 ++-------- mm/vmpressure.c | 78 +++++++++++++++++++++++++++++++++++----------- mm/vmscan.c | 10 +++++- 5 files changed, 104 insertions(+), 40 deletions(-) commit f7e1cb6ec51b041335b5ad4dd7aefb37a56d79a6 Author: Johannes Weiner Date: Thu Jan 14 15:21:29 2016 -0800 mm: memcontrol: account socket memory in unified hierarchy memory controller Socket memory can be a significant share of overall memory consumed by common workloads. In order to provide reasonable resource isolation in the unified hierarchy, this type of memory needs to be included in the tracking/accounting of a cgroup under active memory resource control. Overhead is only incurred when a non-root control group is created AND the memory controller is instructed to track and account the memory footprint of that group. cgroup.memory=nosocket can be specified on the boot commandline to override any runtime configuration and forcibly exclude socket memory from active memory resource control. Signed-off-by: Johannes Weiner Acked-by: David S. Miller Reviewed-by: Vladimir Davydov Acked-by: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/kernel-parameters.txt | 4 ++ include/linux/memcontrol.h | 9 ++- mm/memcontrol.c | 122 +++++++++++++++++++++++++++++------- 3 files changed, 110 insertions(+), 25 deletions(-) commit 1109208766d9fa7059a9b66ad488e66d99ce49af Author: Johannes Weiner Date: Thu Jan 14 15:21:26 2016 -0800 mm: memcontrol: move socket code for unified hierarchy accounting The unified hierarchy memory controller will account socket memory. Move the infrastructure functions accordingly. Signed-off-by: Johannes Weiner Acked-by: Michal Hocko Reviewed-by: Vladimir Davydov Acked-by: David S. Miller Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memcontrol.c | 148 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 74 insertions(+), 74 deletions(-) commit 7941d2145abc4def5583f9d8d0b2e02647b6d1de Author: Johannes Weiner Date: Thu Jan 14 15:21:23 2016 -0800 mm: memcontrol: do not account memory+swap on unified hierarchy The unified hierarchy memory controller doesn't expose the memory+swap counter to userspace, but its accounting is hardcoded in all charge paths right now, including the per-cpu charge cache ("the stock"). To avoid adding yet more pointless memory+swap accounting with the socket memory support in unified hierarchy, disable the counter altogether when in unified hierarchy mode. Signed-off-by: Johannes Weiner Acked-by: Michal Hocko Reviewed-by: Vladimir Davydov Acked-by: David S. Miller Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memcontrol.c | 44 +++++++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 19 deletions(-) commit 80e95fe0fdcde2812c341ad4209d62dc1a7af53b Author: Johannes Weiner Date: Thu Jan 14 15:21:20 2016 -0800 mm: memcontrol: generalize the socket accounting jump label The unified hierarchy memory controller is going to use this jump label as well to control the networking callbacks. Move it to the memory controller code and give it a more generic name. Signed-off-by: Johannes Weiner Acked-by: Michal Hocko Reviewed-by: Vladimir Davydov Acked-by: David S. Miller Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memcontrol.h | 3 +++ include/net/sock.h | 7 ------- mm/memcontrol.c | 3 +++ net/core/sock.c | 5 ----- net/ipv4/tcp_memcontrol.c | 4 ++-- 5 files changed, 8 insertions(+), 14 deletions(-) commit baac50bbc3cdfd184ebf586b1704edbfcee866df Author: Johannes Weiner Date: Thu Jan 14 15:21:17 2016 -0800 net: tcp_memcontrol: simplify linkage between socket and page counter There won't be any separate counters for socket memory consumed by protocols other than TCP in the future. Remove the indirection and link sockets directly to their owning memory cgroup. Signed-off-by: Johannes Weiner Reviewed-by: Vladimir Davydov Acked-by: David S. Miller Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memcontrol.h | 20 ++++--------- include/net/sock.h | 25 +++-------------- include/net/tcp.h | 4 +-- include/net/tcp_memcontrol.h | 1 - mm/memcontrol.c | 57 +++++++++++++++---------------------- net/core/sock.c | 52 +++++----------------------------- net/ipv4/tcp_ipv4.c | 7 +---- net/ipv4/tcp_memcontrol.c | 67 +++++++++++++++++--------------------------- net/ipv4/tcp_output.c | 4 +-- net/ipv6/tcp_ipv6.c | 3 -- 10 files changed, 69 insertions(+), 171 deletions(-) commit e805605c721021879a1469bdae45c6f80bc985f4 Author: Johannes Weiner Date: Thu Jan 14 15:21:14 2016 -0800 net: tcp_memcontrol: sanitize tcp memory accounting callbacks There won't be a tcp control soft limit, so integrating the memcg code into the global skmem limiting scheme complicates things unnecessarily. Replace this with simple and clear charge and uncharge calls--hidden behind a jump label--to account skb memory. Note that this is not purely aesthetic: as a result of shoehorning the per-memcg code into the same memory accounting functions that handle the global level, the old code would compare the per-memcg consumption against the smaller of the per-memcg limit and the global limit. This allowed the total consumption of multiple sockets to exceed the global limit, as long as the individual sockets stayed within bounds. After this change, the code will always compare the per-memcg consumption to the per-memcg limit, and the global consumption to the global limit, and thus close this loophole. Without a soft limit, the per-memcg memory pressure state in sockets is generally questionable. However, we did it until now, so we continue to enter it when the hard limit is hit, and packets are dropped, to let other sockets in the cgroup know that they shouldn't grow their transmit windows, either. However, keep it simple in the new callback model and leave memory pressure lazily when the next packet is accepted (as opposed to doing it synchroneously when packets are processed). When packets are dropped, network performance will already be in the toilet, so that should be a reasonable trade-off. As described above, consumption is now checked on the per-memcg level and the global level separately. Likewise, memory pressure states are maintained on both the per-memcg level and the global level, and a socket is considered under pressure when either level asserts as much. Signed-off-by: Johannes Weiner Reviewed-by: Vladimir Davydov Acked-by: David S. Miller Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memcontrol.h | 19 +++++++++----- include/net/sock.h | 64 ++++++---------------------------------------- include/net/tcp.h | 5 ++-- mm/memcontrol.c | 32 +++++++++++++++++++++++ net/core/sock.c | 26 +++++++++++-------- net/ipv4/tcp_output.c | 7 +++-- 6 files changed, 77 insertions(+), 76 deletions(-) commit 80f23124f57c77915a7b4201d8dcba38a38b23f0 Author: Johannes Weiner Date: Thu Jan 14 15:21:11 2016 -0800 net: tcp_memcontrol: simplify the per-memcg limit access tcp_memcontrol replicates the global sysctl_mem limit array per cgroup, but it only ever sets these entries to the value of the memory_allocated page_counter limit. Use the latter directly. Signed-off-by: Johannes Weiner Reviewed-by: Vladimir Davydov Acked-by: David S. Miller Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memcontrol.h | 1 - include/net/sock.h | 8 +++++--- net/ipv4/tcp_memcontrol.c | 8 -------- 3 files changed, 5 insertions(+), 12 deletions(-) commit af95d7df4059cfeab7e7c244f3564214aada7dad Author: Johannes Weiner Date: Thu Jan 14 15:21:08 2016 -0800 net: tcp_memcontrol: remove dead per-memcg count of allocated sockets The number of allocated sockets is used for calculations in the soft limit phase, where packets are accepted but the socket is under memory pressure. Since there is no soft limit phase in tcp_memcontrol, and memory pressure is only entered when packets are already dropped, this is actually dead code. Remove it. As this is the last user of parent_cg_proto(), remove that too. Signed-off-by: Johannes Weiner Acked-by: David S. Miller Reviewed-by: Vladimir Davydov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memcontrol.h | 1 - include/net/sock.h | 39 +++------------------------------------ net/ipv4/tcp_memcontrol.c | 3 --- 3 files changed, 3 insertions(+), 40 deletions(-) commit 3d596f7b907b0281b997cf30c92994a71ad0a1a9 Author: Johannes Weiner Date: Thu Jan 14 15:21:05 2016 -0800 net: tcp_memcontrol: protect all tcp_memcontrol calls by jump-label Move the jump-label from sock_update_memcg() and sock_release_memcg() to the callsite, and so eliminate those function calls when socket accounting is not enabled. This also eliminates the need for dummy functions because the calls will be optimized away if the Kconfig options are not enabled. Signed-off-by: Johannes Weiner Acked-by: David S. Miller Reviewed-by: Vladimir Davydov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memcontrol.h | 9 -------- mm/memcontrol.c | 56 +++++++++++++++++++++------------------------- net/core/sock.c | 9 ++------ net/ipv4/tcp.c | 3 ++- net/ipv4/tcp_ipv4.c | 4 +++- 5 files changed, 32 insertions(+), 49 deletions(-) commit 931f3f4beb031cd483c1c8ab159ef1f8bdbe8888 Author: Johannes Weiner Date: Thu Jan 14 15:21:02 2016 -0800 net: tcp_memcontrol: remove bogus hierarchy pressure propagation When a cgroup currently breaches its socket memory limit, it enters memory pressure mode for itself and its *ancestors*. This throttles transmission in unrelated sibling and cousin subtrees that have nothing to do with the breached limit. On the contrary, breaching a limit should make that group and its *children* enter memory pressure mode. But this happens already, albeit lazily: if an ancestor limit is breached, siblings will enter memory pressure on their own once the next packet arrives for them. So no additional hierarchy code is needed. Remove the bogus stuff. Signed-off-by: Johannes Weiner Acked-by: David S. Miller Reviewed-by: Vladimir Davydov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/net/sock.h | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) commit 8c2c2358b236530bc2c79b4c2a447cbdbc3d96d7 Author: Johannes Weiner Date: Thu Jan 14 15:20:59 2016 -0800 net: tcp_memcontrol: properly detect ancestor socket pressure When charging socket memory, the code currently checks only the local page counter for excess to determine whether the memcg is under socket pressure. But even if the local counter is fine, one of the ancestors could have breached its limit, which should also force this child to enter socket pressure. This currently doesn't happen. Fix this by using page_counter_try_charge() first. If that fails, it means that either the local counter or one of the ancestors are in excess of their limit, and the child should enter socket pressure. Fixes: 3e32cb2e0a12 ("mm: memcontrol: lockless page counters") Signed-off-by: Johannes Weiner Acked-by: David S. Miller Reviewed-by: Vladimir Davydov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/net/sock.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 7d828602e5ef3297a69392a2d31264e4ab9c8bb7 Author: Johannes Weiner Date: Thu Jan 14 15:20:56 2016 -0800 mm: memcontrol: export root_mem_cgroup A later patch will need this symbol in files other than memcontrol.c, so export it now and replace mem_cgroup_root_css at the same time. Signed-off-by: Johannes Weiner Acked-by: Michal Hocko Acked-by: David S. Miller Reviewed-by: Vladimir Davydov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memcontrol.h | 3 ++- mm/backing-dev.c | 2 +- mm/memcontrol.c | 5 ++--- 3 files changed, 5 insertions(+), 5 deletions(-) commit 036404183eb3ebff93dea7b572fc718e9d652c7f Author: Geliang Tang Date: Thu Jan 14 15:20:54 2016 -0800 mm/ksm.c: use list_for_each_entry_safe Use list_for_each_entry_safe() instead of list_for_each_safe() to simplify the code. Signed-off-by: Geliang Tang Cc: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/ksm.c | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) commit c8ad6302c2b664e73f0abb3517c16531e294b9d7 Author: Geliang Tang Date: Thu Jan 14 15:20:51 2016 -0800 mm/readahead.c, mm/vmscan.c: use lru_to_page instead of list_to_page list_to_page() in readahead.c is the same as lru_to_page() in vmscan.c. So I move lru_to_page to internal.h and drop list_to_page(). Signed-off-by: Geliang Tang Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/internal.h | 2 ++ mm/readahead.c | 8 +++----- mm/vmscan.c | 2 -- 3 files changed, 5 insertions(+), 7 deletions(-) commit 7546934570f48283b7fe64a56d1c984fcb1e341e Author: Joonsoo Kim Date: Thu Jan 14 15:20:48 2016 -0800 mm/compaction.c: __compact_pgdat() code cleanuup This patch uses is_via_compact_memory() to distinguish compaction from sysfs or sysctl. And, this patch also reduces indentation on compaction_defer_reset() by filtering these cases first before checking watermark. There is no functional change. Signed-off-by: Joonsoo Kim Acked-by: Yaowei Bai Acked-by: David Rientjes Acked-by: Vlastimil Babka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/compaction.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit a8ae49917077facbe4ed7b3a89bf025b1cefa0ed Author: Geliang Tang Date: Thu Jan 14 15:20:45 2016 -0800 mm/swapfile.c: use list_{next,first}_entry To make the intention clearer, use list_{next,first}_entry instead of list_entry(). Signed-off-by: Geliang Tang Cc: "Kirill A. Shutemov" Cc: Jerome Marchand Cc: Vlastimil Babka Cc: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/swapfile.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) commit 8c9c1701c7c23a57ebfd1a0b27b87053ae43cfb5 Author: Alexander Kuleshov Date: Thu Jan 14 15:20:42 2016 -0800 mm/memblock: introduce for_each_memblock_type() We already have the for_each_memblock() macro in which provides ability to iterate over memblock regions of a known type. The for_each_memblock() macro allows us to pass the pointer to the struct memblock_type, instead we need to pass name of the type. This patch introduces a new macro for_each_memblock_type() which allows us iterate over memblock regions with the given type when the type is unknown. Signed-off-by: Alexander Kuleshov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memblock.h | 5 +++++ mm/memblock.c | 32 ++++++++++++++++---------------- 2 files changed, 21 insertions(+), 16 deletions(-) commit f14516fbf0f6bec7d98c1cb5b5c73ccd2bb4a5e9 Author: Alexander Kuleshov Date: Thu Jan 14 15:20:39 2016 -0800 mm/memblock: remove rgnbase and rgnsize variables Remove rgnbase and rgnsize variables from memblock_overlaps_region(). We use these variables only for passing to the memblock_addrs_overlap() function and that's all. Let's remove them. Signed-off-by: Alexander Kuleshov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memblock.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 5020e285856cb406224e6f977fd893a006077806 Author: Michal Hocko Date: Thu Jan 14 15:20:36 2016 -0800 mm, oom: give __GFP_NOFAIL allocations access to memory reserves __GFP_NOFAIL is a big hammer used to ensure that the allocation request can never fail. This is a strong requirement and as such it also deserves a special treatment when the system is OOM. The primary problem here is that the allocation request might have come with some locks held and the oom victim might be blocked on the same locks. This is basically an OOM deadlock situation. This patch tries to reduce the risk of such a deadlocks by giving __GFP_NOFAIL allocations a special treatment and let them dive into memory reserves after oom killer invocation. This should help them to make a progress and release resources they are holding. The OOM victim should compensate for the reserves consumption. Signed-off-by: Michal Hocko Suggested-by: Andrea Arcangeli Cc: Mel Gorman Cc: Johannes Weiner Acked-by: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/page_alloc.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) commit 86760a2c6e827858f8eaf020b12b72b3210faf79 Author: Geliang Tang Date: Thu Jan 14 15:20:33 2016 -0800 mm/page_alloc.c: use list_for_each_entry in mark_free_pages() Use list_for_each_entry instead of list_for_each + list_entry to simplify the code. Signed-off-by: Geliang Tang Acked-by: Michal Hocko Acked-by: Mel Gorman Acked-by: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/page_alloc.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit a16601c5458eb702f26cd48b9e8e1a9471700e72 Author: Geliang Tang Date: Thu Jan 14 15:20:30 2016 -0800 mm/page_alloc.c: use list_{first,last}_entry instead of list_entry To make the intention clearer, use list_{first,last}_entry instead of list_entry. Signed-off-by: Geliang Tang Acked-by: Michal Hocko Acked-by: Mel Gorman Acked-by: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/page_alloc.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) commit 6ac0206bc0d13381e3ede3594bc0a3f8cd1d8ec9 Author: Mel Gorman Date: Thu Jan 14 15:20:28 2016 -0800 mm/page_alloc.c: remove unnecessary parameter from __rmqueue Commit 0aaa29a56e4f ("mm, page_alloc: reserve pageblocks for high-order atomic allocations on demand") added an unnecessary and unused parameter to __rmqueue. It was a parameter that was used in an earlier version of the patch and then left behind. This patch cleans it up. Signed-off-by: Mel Gorman Acked-by: Vlastimil Babka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/page_alloc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit cc292b0b43027cce9310a18ec3239b5e9b4ea301 Author: Seth Jennings Date: Thu Jan 14 15:20:24 2016 -0800 drivers/base/memory.c: rename remove_memory_block() to remove_memory_section() The function removes a section, not a block. Rename to reflect actual functionality. Signed-off-by: Seth Jennings Cc: Andrew Banman Cc: Daniel J Blueman Cc: Yinghai Lu Cc: Greg KH Cc: Russ Anderson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/base/memory.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 56c6b5d3acd8e0cfc302ff56f58c15fea27064de Author: Seth Jennings Date: Thu Jan 14 15:20:21 2016 -0800 drivers/base/memory.c: clean up section counting Right now, section_count is calculated in add_memory_block(). However, init_memory_block() increments section_count as well, which, at first, seems like it would lead to an off-by-one error. There is no harm done because add_memory_block() immediately overwrites the mem->section_count, but it is messy. This commit moves the increment out of the common init_memory_block() (called by both add_memory_block() and register_new_memory()) and adds it to register_new_memory(). Signed-off-by: Seth Jennings Cc: Andrew Banman Cc: Daniel J Blueman Cc: Yinghai Lu Cc: Greg KH Cc: Russ Anderson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/base/memory.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 84ad5802a33a4964a49b8f7d24d80a214a096b19 Author: Johannes Weiner Date: Thu Jan 14 15:20:18 2016 -0800 proc: meminfo: estimate available memory more conservatively The MemAvailable item in /proc/meminfo is to give users a hint of how much memory is allocatable without causing swapping, so it excludes the zones' low watermarks as unavailable to userspace. However, for a userspace allocation, kswapd will actually reclaim until the free pages hit a combination of the high watermark and the page allocator's lowmem protection that keeps a certain amount of DMA and DMA32 memory from userspace as well. Subtract the full amount we know to be unavailable to userspace from the number of free pages when calculating MemAvailable. Signed-off-by: Johannes Weiner Cc: Rik van Riel Cc: Mel Gorman Acked-by: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/proc/meminfo.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit a8d0143730d7b42c9fe6d1435d92ecce6863a62a Author: Johannes Weiner Date: Thu Jan 14 15:20:15 2016 -0800 mm: page_alloc: generalize the dirty balance reserve The dirty balance reserve that dirty throttling has to consider is merely memory not available to userspace allocations. There is nothing writeback-specific about it. Generalize the name so that it's reusable outside of that context. Signed-off-by: Johannes Weiner Cc: Rik van Riel Cc: Mel Gorman Acked-by: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/mmzone.h | 6 +++--- include/linux/swap.h | 1 - mm/page-writeback.c | 14 ++++++++++++-- mm/page_alloc.c | 21 +++------------------ 4 files changed, 18 insertions(+), 24 deletions(-) commit c20cd45eb01748f0fba77a504f956b000df4ea73 Author: Michal Hocko Date: Thu Jan 14 15:20:12 2016 -0800 mm: allow GFP_{FS,IO} for page_cache_read page cache allocation page_cache_read has been historically using page_cache_alloc_cold to allocate a new page. This means that mapping_gfp_mask is used as the base for the gfp_mask. Many filesystems are setting this mask to GFP_NOFS to prevent from fs recursion issues. page_cache_read is called from the vm_operations_struct::fault() context during the page fault. This context doesn't need the reclaim protection normally. ceph and ocfs2 which call filemap_fault from their fault handlers seem to be OK because they are not taking any fs lock before invoking generic implementation. xfs which takes XFS_MMAPLOCK_SHARED is safe from the reclaim recursion POV because this lock serializes truncate and punch hole with the page faults and it doesn't get involved in the reclaim. There is simply no reason to deliberately use a weaker allocation context when a __GFP_FS | __GFP_IO can be used. The GFP_NOFS protection might be even harmful. There is a push to fail GFP_NOFS allocations rather than loop within allocator indefinitely with a very limited reclaim ability. Once we start failing those requests the OOM killer might be triggered prematurely because the page cache allocation failure is propagated up the page fault path and end up in pagefault_out_of_memory. We cannot play with mapping_gfp_mask directly because that would be racy wrt. parallel page faults and it might interfere with other users who really rely on NOFS semantic from the stored gfp_mask. The mask is also inode proper so it would even be a layering violation. What we can do instead is to push the gfp_mask into struct vm_fault and allow fs layer to overwrite it should the callback need to be called with a different allocation context. Initialize the default to (mapping_gfp_mask | __GFP_FS | __GFP_IO) because this should be safe from the page fault path normally. Why do we care about mapping_gfp_mask at all then? Because this doesn't hold only reclaim protection flags but it also might contain zone and movability restrictions (GFP_DMA32, __GFP_MOVABLE and others) so we have to respect those. Signed-off-by: Michal Hocko Reported-by: Tetsuo Handa Acked-by: Jan Kara Acked-by: Vlastimil Babka Cc: Tetsuo Handa Cc: Mel Gorman Cc: Dave Chinner Cc: Mark Fasheh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/mm.h | 4 ++++ mm/filemap.c | 9 ++++----- mm/memory.c | 17 +++++++++++++++++ 3 files changed, 25 insertions(+), 5 deletions(-) commit fec4eb2c8d89bf8d18136df3d688c42b7959a057 Author: Yaowei Bai Date: Thu Jan 14 15:20:09 2016 -0800 mm/compaction: improve comment for compact_memory tunable knob handler sysctl_compaction_handler() is the handler function for compact_memory tunable knob under /proc/sys/vm, add the missing knob name to make this more accurate in comment. No functional change. Signed-off-by: Yaowei Bai Acked-by: Vlastimil Babka Acked-by: Michal Nazarewicz Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/compaction.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 9e08f57d684ac2f40685f55f659564bfd91a971e Author: Daniel Cashman Date: Thu Jan 14 15:20:06 2016 -0800 x86: mm: support ARCH_MMAP_RND_BITS x86: arch_mmap_rnd() uses hard-coded values, 8 for 32-bit and 28 for 64-bit, to generate the random offset for the mmap base address. This value represents a compromise between increased ASLR effectiveness and avoiding address-space fragmentation. Replace it with a Kconfig option, which is sensibly bounded, so that platform developers may choose where to place this compromise. Keep default values as new minimums. Signed-off-by: Daniel Cashman Cc: Russell King Acked-by: Kees Cook Cc: Ingo Molnar Cc: Jonathan Corbet Cc: Don Zickus Cc: Eric W. Biederman Cc: Heinrich Schuchardt Cc: Josh Poimboeuf Cc: Kirill A. Shutemov Cc: Naoya Horiguchi Cc: Andrea Arcangeli Cc: Mel Gorman Cc: Thomas Gleixner Cc: David Rientjes Cc: Mark Salyzyn Cc: Jeff Vander Stoep Cc: Nick Kralevich Cc: Catalin Marinas Cc: Will Deacon Cc: "H. Peter Anvin" Cc: Hector Marco-Gisbert Cc: Borislav Petkov Cc: Ralf Baechle Cc: Heiko Carstens Cc: Martin Schwidefsky Cc: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/x86/Kconfig | 16 ++++++++++++++++ arch/x86/mm/mmap.c | 12 ++++++------ 2 files changed, 22 insertions(+), 6 deletions(-) commit 8f0d3aa9de57662fe35d8bacfbd9d7ef85ffe98f Author: Daniel Cashman Date: Thu Jan 14 15:20:01 2016 -0800 arm64: mm: support ARCH_MMAP_RND_BITS arm64: arch_mmap_rnd() uses STACK_RND_MASK to generate the random offset for the mmap base address. This value represents a compromise between increased ASLR effectiveness and avoiding address-space fragmentation. Replace it with a Kconfig option, which is sensibly bounded, so that platform developers may choose where to place this compromise. Keep default values as new minimums. Signed-off-by: Daniel Cashman Cc: Russell King Acked-by: Kees Cook Cc: Ingo Molnar Cc: Jonathan Corbet Cc: Don Zickus Cc: Eric W. Biederman Cc: Heinrich Schuchardt Cc: Josh Poimboeuf Cc: Kirill A. Shutemov Cc: Naoya Horiguchi Cc: Andrea Arcangeli Cc: Mel Gorman Cc: Thomas Gleixner Cc: David Rientjes Cc: Mark Salyzyn Cc: Jeff Vander Stoep Cc: Nick Kralevich Cc: Catalin Marinas Cc: Will Deacon Cc: "H. Peter Anvin" Cc: Hector Marco-Gisbert Cc: Borislav Petkov Cc: Ralf Baechle Cc: Heiko Carstens Cc: Martin Schwidefsky Cc: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/arm64/Kconfig | 29 +++++++++++++++++++++++++++++ arch/arm64/mm/mmap.c | 8 ++++++-- 2 files changed, 35 insertions(+), 2 deletions(-) commit e0c25d958f78acfd5c97df5776eeba3e0684101b Author: Daniel Cashman Date: Thu Jan 14 15:19:57 2016 -0800 arm: mm: support ARCH_MMAP_RND_BITS arm: arch_mmap_rnd() uses a hard-code value of 8 to generate the random offset for the mmap base address. This value represents a compromise between increased ASLR effectiveness and avoiding address-space fragmentation. Replace it with a Kconfig option, which is sensibly bounded, so that platform developers may choose where to place this compromise. Keep 8 as the minimum acceptable value. [arnd@arndb.de: ARM: avoid ARCH_MMAP_RND_BITS for NOMMU] Signed-off-by: Daniel Cashman Cc: Russell King Acked-by: Kees Cook Cc: Ingo Molnar Cc: Jonathan Corbet Cc: Don Zickus Cc: Eric W. Biederman Cc: Heinrich Schuchardt Cc: Josh Poimboeuf Cc: Kirill A. Shutemov Cc: Naoya Horiguchi Cc: Andrea Arcangeli Cc: Mel Gorman Cc: Thomas Gleixner Cc: David Rientjes Cc: Mark Salyzyn Cc: Jeff Vander Stoep Cc: Nick Kralevich Cc: Catalin Marinas Cc: Will Deacon Cc: "H. Peter Anvin" Cc: Hector Marco-Gisbert Cc: Borislav Petkov Cc: Ralf Baechle Cc: Heiko Carstens Cc: Martin Schwidefsky Cc: Benjamin Herrenschmidt Signed-off-by: Arnd Bergmann Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/arm/Kconfig | 9 +++++++++ arch/arm/mm/mmap.c | 3 +-- 2 files changed, 10 insertions(+), 2 deletions(-) commit d07e22597d1d355829b7b18ac19afa912cf758d1 Author: Daniel Cashman Date: Thu Jan 14 15:19:53 2016 -0800 mm: mmap: add new /proc tunable for mmap_base ASLR Address Space Layout Randomization (ASLR) provides a barrier to exploitation of user-space processes in the presence of security vulnerabilities by making it more difficult to find desired code/data which could help an attack. This is done by adding a random offset to the location of regions in the process address space, with a greater range of potential offset values corresponding to better protection/a larger search-space for brute force, but also to greater potential for fragmentation. The offset added to the mmap_base address, which provides the basis for the majority of the mappings for a process, is set once on process exec in arch_pick_mmap_layout() and is done via hard-coded per-arch values, which reflect, hopefully, the best compromise for all systems. The trade-off between increased entropy in the offset value generation and the corresponding increased variability in address space fragmentation is not absolute, however, and some platforms may tolerate higher amounts of entropy. This patch introduces both new Kconfig values and a sysctl interface which may be used to change the amount of entropy used for offset generation on a system. The direct motivation for this change was in response to the libstagefright vulnerabilities that affected Android, specifically to information provided by Google's project zero at: http://googleprojectzero.blogspot.com/2015/09/stagefrightened.html The attack presented therein, by Google's project zero, specifically targeted the limited randomness used to generate the offset added to the mmap_base address in order to craft a brute-force-based attack. Concretely, the attack was against the mediaserver process, which was limited to respawning every 5 seconds, on an arm device. The hard-coded 8 bits used resulted in an average expected success rate of defeating the mmap ASLR after just over 10 minutes (128 tries at 5 seconds a piece). With this patch, and an accompanying increase in the entropy value to 16 bits, the same attack would take an average expected time of over 45 hours (32768 tries), which makes it both less feasible and more likely to be noticed. The introduced Kconfig and sysctl options are limited by per-arch minimum and maximum values, the minimum of which was chosen to match the current hard-coded value and the maximum of which was chosen so as to give the greatest flexibility without generating an invalid mmap_base address, generally a 3-4 bits less than the number of bits in the user-space accessible virtual address space. When decided whether or not to change the default value, a system developer should consider that mmap_base address could be placed anywhere up to 2^(value) bits away from the non-randomized location, which would introduce variable-sized areas above and below the mmap_base address such that the maximum vm_area_struct size may be reduced, preventing very large allocations. This patch (of 4): ASLR only uses as few as 8 bits to generate the random offset for the mmap base address on 32 bit architectures. This value was chosen to prevent a poorly chosen value from dividing the address space in such a way as to prevent large allocations. This may not be an issue on all platforms. Allow the specification of a minimum number of bits so that platforms desiring greater ASLR protection may determine where to place the trade-off. Signed-off-by: Daniel Cashman Cc: Russell King Acked-by: Kees Cook Cc: Ingo Molnar Cc: Jonathan Corbet Cc: Don Zickus Cc: Eric W. Biederman Cc: Heinrich Schuchardt Cc: Josh Poimboeuf Cc: Kirill A. Shutemov Cc: Naoya Horiguchi Cc: Andrea Arcangeli Cc: Mel Gorman Cc: Thomas Gleixner Cc: David Rientjes Cc: Mark Salyzyn Cc: Jeff Vander Stoep Cc: Nick Kralevich Cc: Catalin Marinas Cc: Will Deacon Cc: "H. Peter Anvin" Cc: Hector Marco-Gisbert Cc: Borislav Petkov Cc: Ralf Baechle Cc: Heiko Carstens Cc: Martin Schwidefsky Cc: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/sysctl/vm.txt | 29 +++++++++++++++++++ arch/Kconfig | 68 +++++++++++++++++++++++++++++++++++++++++++++ include/linux/mm.h | 11 ++++++++ kernel/sysctl.c | 22 +++++++++++++++ mm/mmap.c | 12 ++++++++ 5 files changed, 142 insertions(+) commit bc36f7017c39d1fe3c01aecd09cb2fe14753be90 Author: Piotr Kwapulinski Date: Thu Jan 14 15:19:50 2016 -0800 mm/mmap.c: remove incorrect MAP_FIXED flag comparison from mmap_region The following flag comparison in mmap_region makes no sense: if (!(vm_flags & MAP_FIXED)) return -ENOMEM; The condition is always false and thus the above "return -ENOMEM" is never executed. The vm_flags must not be compared with MAP_FIXED flag. The vm_flags may only be compared with VM_* flags. MAP_FIXED has the same value as VM_MAYREAD. Hitting the rlimit is a slow path and find_vma_intersection should realize that there is no overlapping VMA for !MAP_FIXED case pretty quickly. Signed-off-by: Piotr Kwapulinski Acked-by: Michal Hocko Cc: Oleg Nesterov Cc: Chris Metcalf Reviewed-by: Naoya Horiguchi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/mmap.c | 3 --- 1 file changed, 3 deletions(-) commit 9f6c399ddc369856d787bd43ccd43b19ed1e4e32 Author: Michal Hocko Date: Thu Jan 14 15:19:47 2016 -0800 mm, vmscan: consider isolated pages in zone_reclaimable_pages zone_reclaimable_pages counts how many pages are reclaimable in the given zone. This currently includes all pages on file lrus and anon lrus if there is an available swap storage. We do not consider NR_ISOLATED_{ANON,FILE} counters though which is not correct because these counters reflect temporarily isolated pages which are still reclaimable because they either get back to their LRU or get freed either by the page reclaim or page migration. The number of these pages might be sufficiently high to confuse users of zone_reclaimable_pages (e.g. mbind can migrate large ranges of memory at once). Signed-off-by: Michal Hocko Suggested-by: Johannes Weiner Acked-by: Johannes Weiner Reviewed-by: Vladimir Davydov Acked-by: David Rientjes Cc: Vlastimil Babka Cc: Mel Gorman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/vmscan.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit b832861cca231c0ef27e238b28788045da3262f2 Author: Andrew Morton Date: Thu Jan 14 15:19:44 2016 -0800 fs/block_dev.c:bdev_write_page(): use blk_queue_enter(..., GFP_NOIO) bdev_write_page() is used by swapout and by writepage where we cannot use __GFP_FS or __GFP_IO. So it is misleading to mention GFP_KERNEL here. blk_queue_enter() only actually looks at __GFP_DIRECT_RECLAIM, so no bugs were harmed in the making of this patch. Cc: Dan Williams Cc: Jens Axboe Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/block_dev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9ee11ba4251dddf1b0e507d184b25b1bd7820773 Author: Vladimir Davydov Date: Thu Jan 14 15:19:41 2016 -0800 memcg: do not allow to disable tcp accounting after limit is set There are two bits defined for cg_proto->flags - MEMCG_SOCK_ACTIVATED and MEMCG_SOCK_ACTIVE - both are set in tcp_update_limit, but the former is never cleared while the latter can be cleared by unsetting the limit. This allows to disable tcp socket accounting for new sockets after it was enabled by writing -1 to memory.kmem.tcp.limit_in_bytes while still guaranteeing that memcg_socket_limit_enabled static key will be decremented on memcg destruction. This functionality looks dubious, because it is not clear what a use case would be. By enabling tcp accounting a user accepts the price. If they then find the performance degradation unacceptable, they can always restart their workload with tcp accounting disabled. It does not seem there is any need to flip it while the workload is running. Besides, it contradicts to how kmem accounting API works: writing whatever to memory.kmem.limit_in_bytes enables kmem accounting for the cgroup in question, after which it cannot be disabled. Therefore one might expect that writing -1 to memory.kmem.tcp.limit_in_bytes just enables socket accounting w/o limiting it, which might be useful by itself, but it isn't true. Since this API peculiarity is not documented anywhere, I propose to drop it. This will allow to simplify the code by dropping cg_proto->flags. Signed-off-by: Vladimir Davydov Cc: Johannes Weiner Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memcontrol.h | 12 +----------- mm/memcontrol.c | 2 +- net/ipv4/tcp_memcontrol.c | 17 +++++------------ 3 files changed, 7 insertions(+), 24 deletions(-) commit 316bda0e6cc5f36f94b4af8bded16d642c90ad75 Author: Vladimir Davydov Date: Thu Jan 14 15:19:38 2016 -0800 vmscan: do not force-scan file lru if its absolute size is small We assume there is enough inactive page cache if the size of inactive file lru is greater than the size of active file lru, in which case we force-scan file lru ignoring anonymous pages. While this logic works fine when there are plenty of page cache pages, it fails if the size of file lru is small (several MB): in this case (lru_size >> prio) will be 0 for normal scan priorities, as a result, if inactive file lru happens to be larger than active file lru, anonymous pages of a cgroup will never get evicted unless the system experiences severe memory pressure, even if there are gigabytes of unused anonymous memory there, which is unfair in respect to other cgroups, whose workloads might be page cache oriented. This patch attempts to fix this by elaborating the "enough inactive page cache" check: it makes it not only check that inactive lru size > active lru size, but also that we will scan something from the cgroup at the current scan priority. If these conditions do not hold, we proceed to SCAN_FRACT as usual. Signed-off-by: Vladimir Davydov Acked-by: Johannes Weiner Acked-by: Michal Hocko Cc: Vlastimil Babka Cc: Mel Gorman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/vmscan.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 244d63ee345bd9d45c87f665ef5e3f7bcd5db45b Author: David Rientjes Date: Thu Jan 14 15:19:35 2016 -0800 mm, vmalloc: remove VM_VPAGES VM_VPAGES is unnecessary, it's easier to check is_vmalloc_addr() when reading /proc/vmallocinfo. [akpm@linux-foundation.org: remove VM_VPAGES reference via kvfree()] Signed-off-by: David Rientjes Cc: Tetsuo Handa Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/vmalloc.h | 1 - mm/vmalloc.c | 8 ++------ 2 files changed, 2 insertions(+), 7 deletions(-) commit 146693471f1df44115cf4aaf13c33618619ad855 Author: Geliang Tang Date: Thu Jan 14 15:19:32 2016 -0800 mm, thp: use list_first_entry_or_null() Simplify the code with list_first_entry_or_null(). Signed-off-by: Geliang Tang Acked-by: Kirill A. Shutemov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/pgtable-generic.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 8cee852ec53fb530f10ccabf1596734209ae336b Author: Jerome Marchand Date: Thu Jan 14 15:19:29 2016 -0800 mm, procfs: breakdown RSS for anon, shmem and file in /proc/pid/status There are several shortcomings with the accounting of shared memory (SysV shm, shared anonymous mapping, mapping of a tmpfs file). The values in /proc//status and <...>/statm don't allow to distinguish between shmem memory and a shared mapping to a regular file, even though theirs implication on memory usage are quite different: during reclaim, file mapping can be dropped or written back on disk, while shmem needs a place in swap. Also, to distinguish the memory occupied by anonymous and file mappings, one has to read the /proc/pid/statm file, which has a field for the file mappings (again, including shmem) and total memory occupied by these mappings (i.e. equivalent to VmRSS in the <...>/status file. Getting the value for anonymous mappings only is thus not exactly user-friendly (the statm file is intended to be rather efficiently machine-readable). To address both of these shortcomings, this patch adds a breakdown of VmRSS in /proc//status via new fields RssAnon, RssFile and RssShmem, making use of the previous preparatory patch. These fields tell the user the memory occupied by private anonymous pages, mapped regular files and shmem, respectively. Other existing fields in /status and /statm files are left without change. The /statm file can be extended in the future, if there's a need for that. Example (part of) /proc/pid/status output including the new Rss* fields: VmPeak: 2001008 kB VmSize: 2001004 kB VmLck: 0 kB VmPin: 0 kB VmHWM: 5108 kB VmRSS: 5108 kB RssAnon: 92 kB RssFile: 1324 kB RssShmem: 3692 kB VmData: 192 kB VmStk: 136 kB VmExe: 4 kB VmLib: 1784 kB VmPTE: 3928 kB VmPMD: 20 kB VmSwap: 0 kB HugetlbPages: 0 kB [vbabka@suse.cz: forward-porting, tweak changelog] Signed-off-by: Jerome Marchand Signed-off-by: Vlastimil Babka Acked-by: Konstantin Khlebnikov Acked-by: Michal Hocko Acked-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/filesystems/proc.txt | 13 +++++++++++-- fs/proc/task_mmu.c | 14 ++++++++++++-- 2 files changed, 23 insertions(+), 4 deletions(-) commit eca56ff906bdd0239485e8b47154a6e73dd9a2f3 Author: Jerome Marchand Date: Thu Jan 14 15:19:26 2016 -0800 mm, shmem: add internal shmem resident memory accounting Currently looking at /proc//status or statm, there is no way to distinguish shmem pages from pages mapped to a regular file (shmem pages are mapped to /dev/zero), even though their implication in actual memory use is quite different. The internal accounting currently counts shmem pages together with regular files. As a preparation to extend the userspace interfaces, this patch adds MM_SHMEMPAGES counter to mm_rss_stat to account for shmem pages separately from MM_FILEPAGES. The next patch will expose it to userspace - this patch doesn't change the exported values yet, by adding up MM_SHMEMPAGES to MM_FILEPAGES at places where MM_FILEPAGES was used before. The only user-visible change after this patch is the OOM killer message that separates the reported "shmem-rss" from "file-rss". [vbabka@suse.cz: forward-porting, tweak changelog] Signed-off-by: Jerome Marchand Signed-off-by: Vlastimil Babka Acked-by: Konstantin Khlebnikov Acked-by: Michal Hocko Acked-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/s390/mm/pgtable.c | 5 +---- fs/proc/task_mmu.c | 3 ++- include/linux/mm.h | 18 +++++++++++++++++- include/linux/mm_types.h | 7 ++++--- kernel/events/uprobes.c | 2 +- mm/memory.c | 30 ++++++++++-------------------- mm/oom_kill.c | 5 +++-- mm/rmap.c | 12 +++--------- 8 files changed, 41 insertions(+), 41 deletions(-) commit 48131e03ca4ed71d73fbe55c311a258c6fa2a090 Author: Vlastimil Babka Date: Thu Jan 14 15:19:23 2016 -0800 mm, proc: reduce cost of /proc/pid/smaps for unpopulated shmem mappings Following the previous patch, further reduction of /proc/pid/smaps cost is possible for private writable shmem mappings with unpopulated areas where the page walk invokes the .pte_hole function. We can use radix tree iterator for each such area instead of calling find_get_entry() in a loop. This is possible at the extra maintenance cost of introducing another shmem function shmem_partial_swap_usage(). To demonstrate the diference, I have measured this on a process that creates a private writable 2GB mapping of a partially swapped out /dev/shm/file (which cannot employ the optimizations from the prvious patch) and doesn't populate it at all. I time how long does it take to cat /proc/pid/smaps of this process 100 times. Before this patch: real 0m3.831s user 0m0.180s sys 0m3.212s After this patch: real 0m1.176s user 0m0.180s sys 0m0.684s The time is similar to the case where a radix tree iterator is employed on the whole mapping. Signed-off-by: Vlastimil Babka Cc: Hugh Dickins Cc: Jerome Marchand Cc: Konstantin Khlebnikov Acked-by: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/proc/task_mmu.c | 42 ++++++++++--------------------- include/linux/shmem_fs.h | 2 ++ mm/shmem.c | 65 ++++++++++++++++++++++++++++-------------------- 3 files changed, 53 insertions(+), 56 deletions(-) commit 6a15a37097c7e02390bb08d83dac433c9f10144f Author: Vlastimil Babka Date: Thu Jan 14 15:19:20 2016 -0800 mm, proc: reduce cost of /proc/pid/smaps for shmem mappings The previous patch has improved swap accounting for shmem mapping, which however made /proc/pid/smaps more expensive for shmem mappings, as we consult the radix tree for each pte_none entry, so the overal complexity is O(n*log(n)). We can reduce this significantly for mappings that cannot contain COWed pages, because then we can either use the statistics tha shmem object itself tracks (if the mapping contains the whole object, or the swap usage of the whole object is zero), or use the radix tree iterator, which is much more effective than repeated find_get_entry() calls. This patch therefore introduces a function shmem_swap_usage(vma) and makes /proc/pid/smaps use it when possible. Only for writable private mappings of shmem objects (i.e. tmpfs files) with the shmem object itself (partially) swapped outwe have to resort to the find_get_entry() approach. Hopefully such mappings are relatively uncommon. To demonstrate the diference, I have measured this on a process that creates a 2GB mapping and dirties single pages with a stride of 2MB, and time how long does it take to cat /proc/pid/smaps of this process 100 times. Private writable mapping of a /dev/shm/file (the most complex case): real 0m3.831s user 0m0.180s sys 0m3.212s Shared mapping of an almost full mapping of a partially swapped /dev/shm/file (which needs to employ the radix tree iterator). real 0m1.351s user 0m0.096s sys 0m0.768s Same, but with /dev/shm/file not swapped (so no radix tree walk needed) real 0m0.935s user 0m0.128s sys 0m0.344s Private anonymous mapping: real 0m0.949s user 0m0.116s sys 0m0.348s The cost is now much closer to the private anonymous mapping case, unless the shmem mapping is private and writable. Signed-off-by: Vlastimil Babka Cc: Hugh Dickins Cc: Jerome Marchand Cc: Konstantin Khlebnikov Acked-by: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/proc/task_mmu.c | 22 +++++++++++++-- include/linux/shmem_fs.h | 2 ++ mm/shmem.c | 70 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 92 insertions(+), 2 deletions(-) commit c261e7d94f0dd33a34b6cf98686e8b9699b62340 Author: Vlastimil Babka Date: Thu Jan 14 15:19:17 2016 -0800 mm, proc: account for shmem swap in /proc/pid/smaps Currently, /proc/pid/smaps will always show "Swap: 0 kB" for shmem-backed mappings, even if the mapped portion does contain pages that were swapped out. This is because unlike private anonymous mappings, shmem does not change pte to swap entry, but pte_none when swapping the page out. In the smaps page walk, such page thus looks like it was never faulted in. This patch changes smaps_pte_entry() to determine the swap status for such pte_none entries for shmem mappings, similarly to how mincore_page() does it. Swapped out shmem pages are thus accounted for. For private mappings of tmpfs files that COWed some of the pages, swaped out status of the original shmem pages is naturally ignored. If some of the private copies was also swapped out, they are accounted via their page table swap entries, so the resulting reported swap usage is then a sum of both swapped out private copies, and swapped out shmem pages that were not COWed. No double accounting can thus happen. The accounting is arguably still not as precise as for private anonymous mappings, since now we will count also pages that the process in question never accessed, but another process populated them and then let them become swapped out. I believe it is still less confusing and subtle than not showing any swap usage by shmem mappings at all. Swapped out counter might of interest of users who would like to prevent from future swapins during performance critical operation and pre-fault them at their convenience. Especially for larger swapped out regions the cost of swapin is much higher than a fresh page allocation. So a differentiation between pte_none vs. swapped out is important for those usecases. One downside of this patch is that it makes /proc/pid/smaps more expensive for shmem mappings, as we consult the radix tree for each pte_none entry, so the overal complexity is O(n*log(n)). I have measured this on a process that creates a 2GB mapping and dirties single pages with a stride of 2MB, and time how long does it take to cat /proc/pid/smaps of this process 100 times. Private anonymous mapping: real 0m0.949s user 0m0.116s sys 0m0.348s Mapping of a /dev/shm/file: real 0m3.831s user 0m0.180s sys 0m3.212s The difference is rather substantial, so the next patch will reduce the cost for shared or read-only mappings. In a less controlled experiment, I've gathered pids of processes on my desktop that have either '/dev/shm/*' or 'SYSV*' in smaps. This included the Chrome browser and some KDE processes. Again, I've run cat /proc/pid/smaps on each 100 times. Before this patch: real 0m9.050s user 0m0.518s sys 0m8.066s After this patch: real 0m9.221s user 0m0.541s sys 0m8.187s This suggests low impact on average systems. Note that this patch doesn't attempt to adjust the SwapPss field for shmem mappings, which would need extra work to determine who else could have the pages mapped. Thus the value stays zero except for COWed swapped out pages in a shmem mapping, which are accounted as usual. Signed-off-by: Vlastimil Babka Acked-by: Konstantin Khlebnikov Acked-by: Jerome Marchand Acked-by: Michal Hocko Cc: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/filesystems/proc.txt | 5 +++- fs/proc/task_mmu.c | 51 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 1 deletion(-) commit bf9683d6990589390b5178dafe8fd06808869293 Author: Vlastimil Babka Date: Thu Jan 14 15:19:14 2016 -0800 mm, documentation: clarify /proc/pid/status VmSwap limitations for shmem This series is based on Jerome Marchand's [1] so let me quote the first paragraph from there: There are several shortcomings with the accounting of shared memory (sysV shm, shared anonymous mapping, mapping to a tmpfs file). The values in /proc//status and statm don't allow to distinguish between shmem memory and a shared mapping to a regular file, even though their implications on memory usage are quite different: at reclaim, file mapping can be dropped or written back on disk while shmem needs a place in swap. As for shmem pages that are swapped-out or in swap cache, they aren't accounted at all. The original motivation for myself is that a customer found (IMHO rightfully) confusing that e.g. top output for process swap usage is unreliable with respect to swapped out shmem pages, which are not accounted for. The fundamental difference between private anonymous and shmem pages is that the latter has PTE's converted to pte_none, and not swapents. As such, they are not accounted to the number of swapents visible e.g. in /proc/pid/status VmSwap row. It might be theoretically possible to use swapents when swapping out shmem (without extra cost, as one has to change all mappers anyway), and on swap in only convert the swapent for the faulting process, leaving swapents in other processes until they also fault (so again no extra cost). But I don't know how many assumptions this would break, and it would be too disruptive change for a relatively small benefit. Instead, my approach is to document the limitation of VmSwap, and provide means to determine the swap usage for shmem areas for those who are interested and willing to pay the price, using /proc/pid/smaps. Because outside of ipcs, I don't think it's possible to currently to determine the usage at all. The previous patchset [1] did introduce new shmem-specific fields into smaps output, and functions to determine the values. I take a simpler approach, noting that smaps output already has a "Swap: X kB" line, where currently X == 0 always for shmem areas. I think we can just consider this a bug and provide the proper value by consulting the radix tree, as e.g. mincore_page() does. In the patch changelog I explain why this is also not perfect (and cannot be without swapents), but still arguably much better than showing a 0. The last two patches are adapted from Jerome's patchset and provide a VmRSS breakdown to RssAnon, RssFile and RssShm in /proc/pid/status. Hugh noted that this is a welcome addition, and I agree that it might help e.g. debugging process memory usage at albeit non-zero, but still rather low cost of extra per-mm counter and some page flag checks. [1] http://lwn.net/Articles/611966/ This patch (of 6): The documentation for /proc/pid/status does not mention that the value of VmSwap counts only swapped out anonymous private pages, and not swapped out pages of the underlying shmem objects (for shmem mappings). This is not obvious, so document this limitation. Signed-off-by: Vlastimil Babka Acked-by: Konstantin Khlebnikov Acked-by: Michal Hocko Acked-by: Jerome Marchand Acked-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/filesystems/proc.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 5b80287a65da927742c6d43b1369bd5ed133aad1 Author: Yaowei Bai Date: Thu Jan 14 15:19:11 2016 -0800 mm/mmzone.c: memmap_valid_within() can be boolean Make memmap_valid_within return bool due to this particular function only using either one or zero as its return value. No functional change. Signed-off-by: Yaowei Bai Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/mmzone.h | 6 +++--- mm/mmzone.c | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) commit 6219c2a2ec990f80a586216172c811a9099c5cdf Author: Geliang Tang Date: Thu Jan 14 15:19:08 2016 -0800 mm/vmalloc.c: use list_{next,first}_entry To make the intention clearer, use list_{next,first}_entry instead of list_entry. Signed-off-by: Geliang Tang Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/vmalloc.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 33d5310306ec244d96533da5f9183e05a7a51106 Author: Michal Hocko Date: Thu Jan 14 15:19:05 2016 -0800 mm/page_alloc.c: do not loop over ALLOC_NO_WATERMARKS without triggering reclaim __alloc_pages_slowpath is looping over ALLOC_NO_WATERMARKS requests if __GFP_NOFAIL is requested. This is fragile because we are basically relying on somebody else to make the reclaim (be it the direct reclaim or OOM killer) for us. The caller might be holding resources (e.g. locks) which block other other reclaimers from making any progress for example. Remove the retry loop and rely on __alloc_pages_slowpath to invoke all allowed reclaim steps and retry logic. We have to be careful about __GFP_NOFAIL allocations from the PF_MEMALLOC context even though this is a very bad idea to begin with because no progress can be gurateed at all. We shouldn't break the __GFP_NOFAIL semantic here though. It could be argued that this is essentially GFP_NOWAIT context which we do not support but PF_MEMALLOC is much harder to check for existing users because they might happen deep down the code path performed much later after setting the flag so we cannot really rule out there is no kernel path triggering this combination. Signed-off-by: Michal Hocko Acked-by: Mel Gorman Acked-by: David Rientjes Cc: Tetsuo Handa Acked-by: Vlastimil Babka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/page_alloc.c | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) commit fde82aaa731de8a23d817971f6080041a4917d06 Author: Michal Hocko Date: Thu Jan 14 15:19:03 2016 -0800 mm/page_alloc.c: get rid of __alloc_pages_high_priority() __alloc_pages_high_priority doesn't do anything special other than it calls get_page_from_freelist and loops around GFP_NOFAIL allocation until it succeeds. It would be better if the first part was done in __alloc_pages_slowpath where we modify the zonelist because this would be easier to read and understand. Opencoding the function into its only caller allows to simplify it a bit as well. This patch doesn't introduce any functional changes. [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: Michal Hocko Acked-by: Mel Gorman Acked-by: David Rientjes Acked-by: Vlastimil Babka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/page_alloc.c | 36 +++++++++--------------------------- 1 file changed, 9 insertions(+), 27 deletions(-) commit c00eb15a8914b8ba84032a36044a5aaf7f71709d Author: Yaowei Bai Date: Thu Jan 14 15:19:00 2016 -0800 mm/zonelist: enumerate zonelists array index Hardcoding index to zonelists array in gfp_zonelist() is not a good idea, let's enumerate it to improve readability. No functional change. [akpm@linux-foundation.org: coding-style fixes] [akpm@linux-foundation.org: fix CONFIG_NUMA=n build] [n-horiguchi@ah.jp.nec.com: fix warning in comparing enumerator] Signed-off-by: Yaowei Bai Cc: Michal Hocko Cc: David Rientjes Signed-off-by: Naoya Horiguchi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/gfp.h | 9 +++++---- include/linux/mmzone.h | 20 +++++++++----------- mm/page_alloc.c | 9 ++++----- 3 files changed, 18 insertions(+), 20 deletions(-) commit 06640290bfc6688062387f915c5df094e9872133 Author: Yaowei Bai Date: Thu Jan 14 15:18:57 2016 -0800 include/linux/mmzone.h: remove unused is_unevictable_lru() Since commit a0b8cab3b9b2 ("mm: remove lru parameter from __pagevec_lru_add and remove parts of pagevec API") there's no user of this function anymore, so remove it. Signed-off-by: Yaowei Bai Acked-by: Michal Hocko Acked-by: Hillf Danton Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/mmzone.h | 5 ----- 1 file changed, 5 deletions(-) commit b4ad0c7e004a2cc0e52790eff72f5176b59ca386 Author: Yaowei Bai Date: Thu Jan 14 15:18:54 2016 -0800 mm/memblock.c: memblock_is_memory()/reserved() can be boolean Make memblock_is_memory() and memblock_is_reserved return bool to improve readability due to these particular functions only using either one or zero as their return value. No functional change. Signed-off-by: Yaowei Bai Acked-by: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memblock.h | 4 ++-- mm/memblock.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit 719ff32162865522273d8fa975bf99b32875738b Author: Yaowei Bai Date: Thu Jan 14 15:18:51 2016 -0800 include/linux/hugetlb.h: is_file_hugepages() can be boolean Make is_file_hugepages() return bool to improve readability due to this particular function only using either one or zero as its return value. This patch also removed the if condition to make is_file_hugepages return directly. No functional change. Signed-off-by: Yaowei Bai Acked-by: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/hugetlb.h | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit ba5e9579433aefcdccdec207601e124d3bdf2a71 Author: yalin wang Date: Thu Jan 14 15:18:48 2016 -0800 mm: change mm_vmscan_lru_shrink_inactive() proto types Move node_id zone_idx shrink flags into trace function, so thay we don't need caculate these args if the trace is disabled, and will make this function have less arguments. Signed-off-by: yalin wang Reviewed-by: Steven Rostedt Acked-by: Vlastimil Babka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/trace/events/vmscan.h | 14 +++++++------- mm/vmscan.c | 7 ++----- 2 files changed, 9 insertions(+), 12 deletions(-) commit 8ef5849fa8a2c7894885e27ee8c8fe06e21a88fd Author: Joonsoo Kim Date: Thu Jan 14 15:18:45 2016 -0800 mm/cma: always check which page caused allocation failure Now, we have tracepoint in test_pages_isolated() to notify pfn which cannot be isolated. But, in alloc_contig_range(), some error path doesn't call test_pages_isolated() so it's still hard to know exact pfn that causes allocation failure. This patch change this situation by calling test_pages_isolated() in almost error path. In allocation failure case, some overhead is added by this change, but, allocation failure is really rare event so it would not matter. In fatal signal pending case, we don't call test_pages_isolated() because this failure is intentional one. There was a bogus outer_start problem due to unchecked buddy order and this patch also fix it. Before this patch, it didn't matter, because end result is same thing. But, after this patch, tracepoint will report failed pfn so it should be accurate. Signed-off-by: Joonsoo Kim Acked-by: Vlastimil Babka Acked-by: Michal Nazarewicz Cc: David Rientjes Cc: Minchan Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/page_alloc.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) commit 0f0848e5118a4cb2cb92cef0c3af6f647649ff47 Author: Joonsoo Kim Date: Thu Jan 14 15:18:42 2016 -0800 mm/page_isolation.c: add new tracepoint, test_pages_isolated cma allocation should be guranteeded to succeed. But sometimes it can fail in the current implementation. To track down the problem, we need to know which page is problematic and this new tracepoint will report it. Signed-off-by: Joonsoo Kim Acked-by: Michal Nazarewicz Acked-by: David Rientjes Cc: Minchan Kim Acked-by: Vlastimil Babka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/trace/events/page_isolation.h | 38 +++++++++++++++++++++++++++++++++++ mm/page_isolation.c | 5 +++++ 2 files changed, 43 insertions(+) commit fea85cff11de4377040deff0e85eb2793fb078aa Author: Joonsoo Kim Date: Thu Jan 14 15:18:39 2016 -0800 mm/page_isolation.c: return last tested pfn rather than failure indicator This is preparation step to report test failed pfn in new tracepoint to analyze cma allocation failure problem. There is no functional change in this patch. Signed-off-by: Joonsoo Kim Acked-by: David Rientjes Acked-by: Michal Nazarewicz Cc: Minchan Kim Acked-by: Vlastimil Babka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/page_isolation.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit 4a8c7bb59ac85b038c29adf6d32ff56e11fbb267 Author: Nathan Zimmer Date: Thu Jan 14 15:18:36 2016 -0800 mm/mempolicy.c: convert the shared_policy lock to a rwlock When running the SPECint_rate gcc on some very large boxes it was noticed that the system was spending lots of time in mpol_shared_policy_lookup(). The gamess benchmark can also show it and is what I mostly used to chase down the issue since the setup for that I found to be easier. To be clear the binaries were on tmpfs because of disk I/O requirements. We then used text replication to avoid icache misses and having all the copies banging on the memory where the instruction code resides. This results in us hitting a bottleneck in mpol_shared_policy_lookup() since lookup is serialised by the shared_policy lock. I have only reproduced this on very large (3k+ cores) boxes. The problem starts showing up at just a few hundred ranks getting worse until it threatens to livelock once it gets large enough. For example on the gamess benchmark at 128 ranks this area consumes only ~1% of time, at 512 ranks it consumes nearly 13%, and at 2k ranks it is over 90%. To alleviate the contention in this area I converted the spinlock to an rwlock. This allows a large number of lookups to happen simultaneously. The results were quite good reducing this consumtion at max ranks to around 2%. [akpm@linux-foundation.org: tidy up code comments] Signed-off-by: Nathan Zimmer Acked-by: David Rientjes Acked-by: Vlastimil Babka Cc: Nadia Yvette Chambers Cc: Naoya Horiguchi Cc: Mel Gorman Cc: "Aneesh Kumar K.V" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/hugetlbfs/inode.c | 2 +- include/linux/mempolicy.h | 2 +- mm/mempolicy.c | 30 +++++++++++++++++------------- 3 files changed, 19 insertions(+), 15 deletions(-) commit 8f235d1a3eb7198affe7cadf676a10afb8a46a1a Author: Chen Gang Date: Thu Jan 14 15:18:33 2016 -0800 mm: add PHYS_PFN, use it in __phys_to_pfn() __phys_to_pfn and __pfn_to_phys are symmetric, PHYS_PFN and PFN_PHYS are semmetric: - y = (phys_addr_t)x << PAGE_SHIFT - y >> PAGE_SHIFT = (phys_add_t)x - (unsigned long)(y >> PAGE_SHIFT) = x [akpm@linux-foundation.org: use macro arg name `x'] [arnd@arndb.de: include linux/pfn.h for PHYS_PFN definition] Signed-off-by: Chen Gang Cc: Oleg Nesterov Signed-off-by: Arnd Bergmann Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/asm-generic/memory_model.h | 4 +++- include/linux/pfn.h | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) commit 3aa2385111168187f24a6db04697c6fab0fab9b4 Author: yalin wang Date: Thu Jan 14 15:18:30 2016 -0800 mm/vmscan.c: change trace_mm_vmscan_writepage() proto type Move trace_reclaim_flags() into trace function, so that we don't need caculate these flags if the trace is disabled. Signed-off-by: yalin wang Reviewed-by: Steven Rostedt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/trace/events/vmscan.h | 7 +++---- mm/vmscan.c | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) commit 0b57d6ba0bd11a41a791cf6c5bbf3b55630dc70f Author: Chen Gang Date: Thu Jan 14 15:18:27 2016 -0800 mm/mmap.c: remove redundant local variables for may_expand_vm() Simplify may_expand_vm(). [akpm@linux-foundation.org: further simplification, per Naoya Horiguchi] Signed-off-by: Chen Gang Cc: Naoya Horiguchi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/mmap.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) commit ab7a5af7fd9cc38576b432690367bbabc8da99b2 Author: Alexey Klimov Date: Thu Jan 14 15:18:24 2016 -0800 mm/mlock.c: drop unneeded initialization in munlock_vma_pages_range() Before usage page pointer initialized by NULL is reinitialized by follow_page_mask(). Drop useless init of page pointer in the beginning of loop. Signed-off-by: Alexey Klimov Acked-by: Vlastimil Babka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/mlock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5d097056c9a017a3b720849efb5432f37acabbac Author: Vladimir Davydov Date: Thu Jan 14 15:18:21 2016 -0800 kmemcg: account certain kmem allocations to memcg Mark those kmem allocations that are known to be easily triggered from userspace as __GFP_ACCOUNT/SLAB_ACCOUNT, which makes them accounted to memcg. For the list, see below: - threadinfo - task_struct - task_delay_info - pid - cred - mm_struct - vm_area_struct and vm_region (nommu) - anon_vma and anon_vma_chain - signal_struct - sighand_struct - fs_struct - files_struct - fdtable and fdtable->full_fds_bits - dentry and external_name - inode for all filesystems. This is the most tedious part, because most filesystems overwrite the alloc_inode method. The list is far from complete, so feel free to add more objects. Nevertheless, it should be close to "account everything" approach and keep most workloads within bounds. Malevolent users will be able to breach the limit, but this was possible even with the former "account everything" approach (simply because it did not account everything in fact). [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: Vladimir Davydov Acked-by: Johannes Weiner Acked-by: Michal Hocko Cc: Tejun Heo Cc: Greg Thelen Cc: Christoph Lameter Cc: Pekka Enberg Cc: David Rientjes Cc: Joonsoo Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/powerpc/platforms/cell/spufs/inode.c | 2 +- drivers/staging/lustre/lustre/llite/super25.c | 3 ++- fs/9p/v9fs.c | 2 +- fs/adfs/super.c | 2 +- fs/affs/super.c | 2 +- fs/afs/super.c | 2 +- fs/befs/linuxvfs.c | 2 +- fs/bfs/inode.c | 2 +- fs/block_dev.c | 2 +- fs/btrfs/inode.c | 3 ++- fs/ceph/super.c | 4 ++-- fs/cifs/cifsfs.c | 2 +- fs/coda/inode.c | 6 +++--- fs/dcache.c | 5 +++-- fs/ecryptfs/main.c | 6 ++++-- fs/efs/super.c | 6 +++--- fs/exofs/super.c | 4 ++-- fs/ext2/super.c | 2 +- fs/ext4/super.c | 2 +- fs/f2fs/super.c | 5 +++-- fs/fat/inode.c | 2 +- fs/file.c | 7 ++++--- fs/fuse/inode.c | 4 ++-- fs/gfs2/main.c | 3 ++- fs/hfs/super.c | 4 ++-- fs/hfsplus/super.c | 2 +- fs/hostfs/hostfs_kern.c | 2 +- fs/hpfs/super.c | 2 +- fs/hugetlbfs/inode.c | 2 +- fs/inode.c | 2 +- fs/isofs/inode.c | 2 +- fs/jffs2/super.c | 2 +- fs/jfs/super.c | 2 +- fs/logfs/inode.c | 3 ++- fs/minix/inode.c | 2 +- fs/ncpfs/inode.c | 2 +- fs/nfs/inode.c | 2 +- fs/nilfs2/super.c | 3 ++- fs/ntfs/super.c | 4 ++-- fs/ocfs2/dlmfs/dlmfs.c | 2 +- fs/ocfs2/super.c | 2 +- fs/openpromfs/inode.c | 2 +- fs/proc/inode.c | 3 ++- fs/qnx4/inode.c | 2 +- fs/qnx6/inode.c | 2 +- fs/reiserfs/super.c | 3 ++- fs/romfs/super.c | 4 ++-- fs/squashfs/super.c | 3 ++- fs/sysv/inode.c | 2 +- fs/ubifs/super.c | 4 ++-- fs/udf/super.c | 3 ++- fs/ufs/super.c | 2 +- fs/xfs/kmem.h | 1 + fs/xfs/xfs_super.c | 4 ++-- include/linux/thread_info.h | 5 +++-- ipc/mqueue.c | 2 +- kernel/cred.c | 4 ++-- kernel/delayacct.c | 2 +- kernel/fork.c | 22 +++++++++++++--------- kernel/pid.c | 2 +- mm/nommu.c | 2 +- mm/rmap.c | 6 ++++-- mm/shmem.c | 2 +- net/socket.c | 2 +- net/sunrpc/rpc_pipe.c | 2 +- 65 files changed, 114 insertions(+), 92 deletions(-) commit 37f08dda29dac8a595999b8d3eaa9bf0f763dd9d Author: Vladimir Davydov Date: Thu Jan 14 15:18:18 2016 -0800 vmalloc: allow to account vmalloc to memcg Make vmalloc family functions allocate vmalloc area pages with alloc_kmem_pages so that if __GFP_ACCOUNT is set they will be accounted to memcg. This is needed, at least, to account alloc_fdmem allocations. Signed-off-by: Vladimir Davydov Acked-by: Johannes Weiner Cc: Michal Hocko Cc: Tejun Heo Cc: Greg Thelen Cc: Christoph Lameter Cc: Pekka Enberg Cc: David Rientjes Cc: Joonsoo Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/vmalloc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 230e9fc2860450fbb1f33bdcf9093d92d7d91f5b Author: Vladimir Davydov Date: Thu Jan 14 15:18:15 2016 -0800 slab: add SLAB_ACCOUNT flag Currently, if we want to account all objects of a particular kmem cache, we have to pass __GFP_ACCOUNT to each kmem_cache_alloc call, which is inconvenient. This patch introduces SLAB_ACCOUNT flag which if passed to kmem_cache_create will force accounting for every allocation from this cache even if __GFP_ACCOUNT is not passed. This patch does not make any of the existing caches use this flag - it will be done later in the series. Note, a cache with SLAB_ACCOUNT cannot be merged with a cache w/o SLAB_ACCOUNT, because merged caches share the same kmem_cache struct and hence cannot have different sets of SLAB_* flags. Thus using this flag will probably reduce the number of merged slabs even if kmem accounting is not used (only compiled in). Signed-off-by: Vladimir Davydov Suggested-by: Tejun Heo Acked-by: Johannes Weiner Acked-by: Michal Hocko Cc: Greg Thelen Cc: Christoph Lameter Cc: Pekka Enberg Cc: David Rientjes Cc: Joonsoo Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memcontrol.h | 15 +++++++-------- include/linux/slab.h | 5 +++++ mm/memcontrol.c | 8 +++++++- mm/slab.h | 5 +++-- mm/slab_common.c | 3 ++- mm/slub.c | 2 ++ 6 files changed, 26 insertions(+), 12 deletions(-) commit a9bb7e620efdfd29b6d1c238041173e411670996 Author: Vladimir Davydov Date: Thu Jan 14 15:18:12 2016 -0800 memcg: only account kmem allocations marked as __GFP_ACCOUNT Black-list kmem accounting policy (aka __GFP_NOACCOUNT) turned out to be fragile and difficult to maintain, because there seem to be many more allocations that should not be accounted than those that should be. Besides, false accounting an allocation might result in much worse consequences than not accounting at all, namely increased memory consumption due to pinned dead kmem caches. So this patch switches kmem accounting to the white-policy: now only those kmem allocations that are marked as __GFP_ACCOUNT are accounted to memcg. Currently, no kmem allocations are marked like this. The following patches will mark several kmem allocations that are known to be easily triggered from userspace and therefore should be accounted to memcg. Signed-off-by: Vladimir Davydov Acked-by: Johannes Weiner Acked-by: Michal Hocko Cc: Tejun Heo Cc: Greg Thelen Cc: Christoph Lameter Cc: Pekka Enberg Cc: David Rientjes Cc: Joonsoo Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/gfp.h | 9 +++++++++ include/linux/memcontrol.h | 2 ++ mm/page_alloc.c | 3 ++- 3 files changed, 13 insertions(+), 1 deletion(-) commit 20b5c30398639b458371c228abfda829854b61c5 Author: Vladimir Davydov Date: Thu Jan 14 15:18:08 2016 -0800 Revert "gfp: add __GFP_NOACCOUNT" This reverts commit 8f4fc071b192 ("gfp: add __GFP_NOACCOUNT"). Black-list kmem accounting policy (aka __GFP_NOACCOUNT) turned out to be fragile and difficult to maintain, because there seem to be many more allocations that should not be accounted than those that should be. Besides, false accounting an allocation might result in much worse consequences than not accounting at all, namely increased memory consumption due to pinned dead kmem caches. So it was decided to switch to the white-list policy. This patch reverts bits introducing the black-list policy. The white-list policy will be introduced later in the series. Signed-off-by: Vladimir Davydov Acked-by: Johannes Weiner Cc: Michal Hocko Cc: Tejun Heo Cc: Greg Thelen Cc: Christoph Lameter Cc: Pekka Enberg Cc: David Rientjes Cc: Joonsoo Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/gfp.h | 2 -- include/linux/memcontrol.h | 2 -- mm/kmemleak.c | 3 +-- 3 files changed, 1 insertion(+), 6 deletions(-) commit b2a209ffa605994cbe3c259c8584ba1576d3310c Author: Vladimir Davydov Date: Thu Jan 14 15:18:05 2016 -0800 Revert "kernfs: do not account ino_ida allocations to memcg" Currently, all kmem allocations (namely every kmem_cache_alloc, kmalloc, alloc_kmem_pages call) are accounted to memory cgroup automatically. Callers have to explicitly opt out if they don't want/need accounting for some reason. Such a design decision leads to several problems: - kmalloc users are highly sensitive to failures, many of them implicitly rely on the fact that kmalloc never fails, while memcg makes failures quite plausible. - A lot of objects are shared among different containers by design. Accounting such objects to one of containers is just unfair. Moreover, it might lead to pinning a dead memcg along with its kmem caches, which aren't tiny, which might result in noticeable increase in memory consumption for no apparent reason in the long run. - There are tons of short-lived objects. Accounting them to memcg will only result in slight noise and won't change the overall picture, but we still have to pay accounting overhead. For more info, see - http://lkml.kernel.org/r/20151105144002.GB15111%40dhcp22.suse.cz - http://lkml.kernel.org/r/20151106090555.GK29259@esperanza Therefore this patchset switches to the white list policy. Now kmalloc users have to explicitly opt in by passing __GFP_ACCOUNT flag. Currently, the list of accounted objects is quite limited and only includes those allocations that (1) are known to be easily triggered from userspace and (2) can fail gracefully (for the full list see patch no. 6) and it still misses many object types. However, accounting only those objects should be a satisfactory approximation of the behavior we used to have for most sane workloads. This patch (of 6): Revert 499611ed451508a42d1d7d ("kernfs: do not account ino_ida allocations to memcg"). Black-list kmem accounting policy (aka __GFP_NOACCOUNT) turned out to be fragile and difficult to maintain, because there seem to be many more allocations that should not be accounted than those that should be. Besides, false accounting an allocation might result in much worse consequences than not accounting at all, namely increased memory consumption due to pinned dead kmem caches. So it was decided to switch to the white-list policy. This patch reverts bits introducing the black-list policy. The white-list policy will be introduced later in the series. Signed-off-by: Vladimir Davydov Acked-by: Johannes Weiner Cc: Michal Hocko Cc: Tejun Heo Cc: Greg Thelen Cc: Christoph Lameter Cc: Pekka Enberg Cc: David Rientjes Cc: Joonsoo Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/kernfs/dir.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) commit 7aa0d22785deea2725a23716823edd96e65c2ff6 Author: Geliang Tang Date: Thu Jan 14 15:18:02 2016 -0800 mm/slab.c: add a helper function get_first_slab Add a new helper function get_first_slab() that get the first slab from a kmem_cache_node. Signed-off-by: Geliang Tang Acked-by: Christoph Lameter Acked-by: David Rientjes Cc: Pekka Enberg Cc: Joonsoo Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/slab.c | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) commit 73c0219d8eca4114d81626032055598bc0a17130 Author: Geliang Tang Date: Thu Jan 14 15:17:59 2016 -0800 mm/slab.c: use list_for_each_entry in cache_flusharray Simplify the code with list_for_each_entry(). Signed-off-by: Geliang Tang Acked-by: Christoph Lameter Cc: Pekka Enberg Cc: David Rientjes Cc: Joonsoo Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/slab.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit d8ad47d83f95abe2dfece1338633e376fec3bd31 Author: Geliang Tang Date: Thu Jan 14 15:17:56 2016 -0800 mm/slab.c use list_first_entry_or_null() Simplify the code with list_first_entry_or_null(). Signed-off-by: Geliang Tang Acked-by: Christoph Lameter Cc: Pekka Enberg Cc: David Rientjes Cc: Joonsoo Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/slab.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit 2bd03e49d66775da8cebdcc8d5bec7d68512ae87 Author: Andrew Morton Date: Thu Jan 14 15:17:53 2016 -0800 include/linux/dcache.h: remove semicolons from HASH_LEN_DECLARE A little cleanup - the invocation site provdes the semicolon. Cc: Rasmus Villemoes Cc: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/dcache.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3c973b0e71bff472545a2939ede2b567745d0c1c Author: Joseph Qi Date: Thu Jan 14 15:17:50 2016 -0800 ocfs2/dlm: cleanup redunant lksb flags in dlmcommon.h lksb flags are defined both in dlmapi.h and dlmcommon.h. So clean them up from dlmcommon.h. Signed-off-by: Joseph Qi Reviewed-by: Jiufei Xue Cc: Mark Fasheh Cc: Joel Becker Cc: Junxiao Bi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/dlm/dlmcommon.h | 11 ----------- 1 file changed, 11 deletions(-) commit 98e141f266040fea0864c23f1f37375cae5ff02a Author: Junxiao Bi Date: Thu Jan 14 15:17:47 2016 -0800 ocfs2: dlm: remove redundant code Found this when do patch review, remove to make it clear and save a little cpu time. Signed-off-by: Junxiao Bi Cc: Mark Fasheh Cc: Joel Becker Cc: Joseph Qi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/dlm/dlmrecovery.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 074a6c655f6da12cb1123c8a84bfd8d781138800 Author: Joseph Qi Date: Thu Jan 14 15:17:44 2016 -0800 ocfs2: access orphan dinode before delete entry in ocfs2_orphan_del In ocfs2_orphan_del, currently it finds and deletes entry first, and then access orphan dir dinode. This will have a problem once ocfs2_journal_access_di fails. In this case, entry will be removed from orphan dir, but in deed the inode hasn't been deleted successfully. In other words, the file is missing but not actually deleted. So we should access orphan dinode first like unlink and rename. Signed-off-by: Joseph Qi Reviewed-by: Jiufei Xue Cc: Mark Fasheh Cc: Joel Becker Reviewed-by: Junxiao Bi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/namei.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 32e493265b2be96404aaa478fb2913be29b06887 Author: xuejiufei Date: Thu Jan 14 15:17:41 2016 -0800 ocfs2/dlm: do not insert a new mle when another process is already migrating When two processes are migrating the same lockres, dlm_add_migration_mle() return -EEXIST, but insert a new mle in hash list. dlm_migrate_lockres() will detach the old mle and free the new one which is already in hash list, that will destroy the list. Signed-off-by: Jiufei Xue Reviewed-by: Joseph Qi Cc: Mark Fasheh Cc: Joel Becker Reviewed-by: Junxiao Bi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/dlm/dlmmaster.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit bef5502de074b6f6fa647b94b73155d675694420 Author: xuejiufei Date: Thu Jan 14 15:17:38 2016 -0800 ocfs2/dlm: ignore cleaning the migration mle that is inuse We have found that migration source will trigger a BUG that the refcount of mle is already zero before put when the target is down during migration. The situation is as follows: dlm_migrate_lockres dlm_add_migration_mle dlm_mark_lockres_migrating dlm_get_mle_inuse <<<<<< Now the refcount of the mle is 2. dlm_send_one_lockres and wait for the target to become the new master. <<<<<< o2hb detect the target down and clean the migration mle. Now the refcount is 1. dlm_migrate_lockres woken, and put the mle twice when found the target goes down which trigger the BUG with the following message: "ERROR: bad mle: ". Signed-off-by: Jiufei Xue Reviewed-by: Joseph Qi Cc: Mark Fasheh Cc: Joel Becker Cc: Junxiao Bi Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/dlm/dlmmaster.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) commit 1cce4df04f37d3f7b969e85528fa54f918a06f03 Author: Goldwyn Rodrigues Date: Thu Jan 14 15:17:35 2016 -0800 ocfs2: do not lock/unlock() inode DLM lock DLM does not cache locks. So, blocking lock and unlock will only make the performance worse where contention over the locks is high. Signed-off-by: Goldwyn Rodrigues Cc: Mark Fasheh Cc: Joel Becker Reviewed-by: Junxiao Bi Cc: Joseph Qi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/dlmglue.c | 8 -------- 1 file changed, 8 deletions(-) commit 1247017f43a93eae3d64b7c25f3637dc545f5a47 Author: jiangyiwen Date: Thu Jan 14 15:17:33 2016 -0800 ocfs2: fix slot overwritten if storage link down during mount The following case will lead to slot overwritten. N1 N2 mount ocfs2 volume, find and allocate slot 0, then set osb->slot_num to 0, begin to write slot info to disk mount ocfs2 volume, wait for super lock write block fail because of storage link down, unlock super lock got super lock and also allocate slot 0 then unlock super lock mount fail and then dismount, since osb->slot_num is 0, try to put invalid slot to disk. And it will succeed if storage link restores. N2 slot info is now overwritten Once another node say N3 mount, it will find and allocate slot 0 again, which will lead to mount hung because journal has already been locked by N2. so when write slot info failed, invalidate slot in advance to avoid overwrite slot. [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: Yiwen Jiang Reviewed-by: Joseph Qi Cc: Mark Fasheh Cc: Joel Becker Cc: Junxiao Bi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/slot_map.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit c372f2193a2e73d5936bf37259ae63ca388b4cbc Author: Xue jiufei Date: Thu Jan 14 15:17:29 2016 -0800 ocfs2/dlm: return appropriate value when dlm_grab() returns NULL dlm_grab() may return NULL when the node is doing unmount. When doing code review, we found that some dlm handlers may return error to caller when dlm_grab() returns NULL and make caller BUG or other problems. Here is an example: Node 1 Node 2 receives migration message from node 3, and send migrate request to others start unmounting receives migrate request from node 1 and call dlm_migrate_request_handler() unmount thread unregisters domain handlers and removes dlm_context from dlm_domains dlm_migrate_request_handlers() returns -EINVAL to node 1 Exit migration neither clearing the migration state nor sending assert master message to node 3 which cause node 3 hung. Signed-off-by: Jiufei Xue Reviewed-by: Joseph Qi Reviewed-by: Yiwen Jiang Cc: Mark Fasheh Cc: Joel Becker Cc: Junxiao Bi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/dlm/dlmmaster.c | 2 +- fs/ocfs2/dlm/dlmunlock.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 72865d92300a6ad20a8851887aeac4f41fd2c579 Author: Joseph Qi Date: Thu Jan 14 15:17:27 2016 -0800 ocfs2: clean up redundant NULL check before iput Since iput will take care the NULL check itself, NULL check before calling it is redundant. So clean them up. Signed-off-by: Joseph Qi Cc: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/alloc.c | 3 +-- fs/ocfs2/ioctl.c | 4 +--- fs/ocfs2/journal.c | 10 +++------- fs/ocfs2/localalloc.c | 10 +++------- fs/ocfs2/namei.c | 3 +-- fs/ocfs2/slot_map.c | 3 +-- fs/ocfs2/super.c | 3 +-- 7 files changed, 11 insertions(+), 25 deletions(-) commit b5560143385e18b4109ad6951c7719705e3dd995 Author: jiangyiwen Date: Thu Jan 14 15:17:23 2016 -0800 ocfs2/dlm: wait until DLM_LOCK_RES_SETREF_INPROG is cleared in dlm_deref_lockres_worker Commit f3f854648de6 ("ocfs2_dlm: Ensure correct ordering of set/clear refmap bit on lockres") still exists a race which can't ensure the ordering is exactly correct. Node1 Node2 Node3 umount, migrate lockres to Node2 migrate finished, send migrate request to Node3 received migrate request, create a migration_mle, respond to Node2. set DLM_LOCK_RES_SETREF_INPROG and send assert master to Node3 delete migration_mle in assert_master_handler, Node3 umount without response dlm_thread purge this lockres, send drop deref message to Node2 found the flag of DLM_LOCK_RES_SETREF_INPROG is set, dispatch dlm_deref_lockres_worker to clear refmap, but in function of dlm_deref_lockres_worker, only if node in refmap it wait DLM_LOCK_RES_SETREF_INPROG to be cleared. So worker is done successfully purge lockres, send assert master response to Node1, and finish umount set Node3 in refmap, and it won't be cleared forever, thus lead to umount hung so wait until DLM_LOCK_RES_SETREF_INPROG is cleared in dlm_deref_lockres_worker. Signed-off-by: Yiwen Jiang Reviewed-by: Joseph Qi Reviewed-by: Junxiao Bi Cc: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/dlm/dlmmaster.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9e62dc096ef39ccf45fc47e8612f3c5d361af038 Author: Julia Lawall Date: Thu Jan 14 15:17:21 2016 -0800 ocfs2: constify ocfs2_extent_tree_operations structures The ocfs2_extent_tree_operations structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Cc: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/alloc.c | 12 ++++++------ fs/ocfs2/alloc.h | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) commit 30bee898f86506893883ffb8db20d8101a29b5f5 Author: Xue jiufei Date: Thu Jan 14 15:17:18 2016 -0800 ocfs2/dlm: fix a race between purge and migration We found a race between purge and migration when doing code review. Node A put lockres to purgelist before receiving the migrate message from node B which is the master. Node A call dlm_mig_lockres_handler to handle this message. dlm_mig_lockres_handler dlm_lookup_lockres >>>>>> race window, dlm_run_purge_list may run and send deref message to master, waiting the response spin_lock(&res->spinlock); res->state |= DLM_LOCK_RES_MIGRATING; spin_unlock(&res->spinlock); dlm_mig_lockres_handler returns >>>>>> dlm_thread receives the response from master for the deref message and triggers the BUG because the lockres has the state DLM_LOCK_RES_MIGRATING with the following message: dlm_purge_lockres:209 ERROR: 6633EB681FA7474A9C280A4E1A836F0F: res M0000000000000000030c0300000000 in use after deref Signed-off-by: Jiufei Xue Reviewed-by: Joseph Qi Reviewed-by: Yiwen Jiang Cc: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/dlm/dlmrecovery.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit a84ac334dcb44c76f0b051513a6c27a2d747f883 Author: Junxiao Bi Date: Thu Jan 14 15:17:15 2016 -0800 ocfs2: o2hb: increase unsteady iterations When run multiple xattr test of ocfs2-test on a three-nodes cluster, mount failed sometimes with the following message. o2hb: Unable to stabilize heartbeart on region D18B775E758D4D80837E8CF3D086AD4A (xvdb) Stabilize heartbeat depends on the timing order to mount ocfs2 from cluster nodes and how fast the tcp connections are established. So increase unsteady interations to leave more time for it. Signed-off-by: Junxiao Bi Cc: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/cluster/heartbeat.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d6364627eff4c9a2035cebb3aec7415705ba117b Author: John Haxby Date: Thu Jan 14 15:17:12 2016 -0800 ocfs2: return non-zero st_blocks for inline data Some versions of tar assume that files with st_blocks == 0 do not contain any data and will skip reading them entirely. See also commit 9206c561554c ("ext4: return non-zero st_blocks for inline data"). Signed-off-by: John Haxby Reviewed-by: Mark Fasheh Cc: Joel Becker Acked-by: Gang He Reviewed-by: Junxiao Bi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/file.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 3eb5bdf0f47726e3ef0a875e0cce3cca462ee70d Author: Norton.Zhu Date: Thu Jan 14 15:17:09 2016 -0800 ocfs2: optimize bad declarations and redundant assignment In ocfs2_parse_options, a) it's better to declare variables(small size) outside of while loop; b) 'option' will be set by match_int, 'option = 0;' makes no sense, if match_int failed, it just goto bail and return. Signed-off-by: Norton.Zhu Reviewed-by: Joseph Qi Cc: Gang He Cc: Mark Fasheh Acked-by: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/super.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 2886357b24662fcf7dc138c9d5e3166e99a55750 Author: Arnd Bergmann Date: Thu Jan 14 15:17:05 2016 -0800 logfs: fix logfs build errors and dependencies Fix build errors that happen when CONFIG_LOGFS=y and CONFIG_MTD=m: fs/built-in.o: In function `logfs_mount': super.c:(.text+0x92a6f): undefined reference to `logfs_get_sb_mtd' fs/built-in.o: In function `logfs_get_sb_bdev': (.text+0x93530): undefined reference to `logfs_get_sb_mtd' This patch avoids the error by changing the dependencies of logfs in a way that we can no longer configure logfs as built-in when the MTD core is a loadable module, while leaving the dependency to require at least one of MTD or BLOCK to be enabled. Signed-off-by: Arnd Bergmann Signed-off-by: Randy Dunlap Cc: Michal Marek Cc: Peter Chen Cc: Randy Dunlap Cc: Joern Engel Cc: Prasad Joshi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/logfs/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2f632369ab795ebadc1a12a609e5bd4f80f31924 Author: Javier Martinez Canillas Date: Thu Jan 14 15:17:02 2016 -0800 modpost: don't add a trailing wildcard for OF module aliases Commit ac551828993e ("modpost: i2c aliases need no trailing wildcard") removed the wildcard at the end of the I2C module aliases because I2C devices have no IDs so the aliases are just arbitrary device names. This is also true for OF modaliases since a compatible string is used to define a specific IP hardware block. So the modalias should match a specific compatible string and not attempt to match a compatible string whose name matches the beginning of another one. For example, the following driver module: $ modinfo cros_ec_keyb | grep alias alias: platform:cros-ec-keyb alias: of:N*T*Cgoogle,cros-ec-keyb* will be tried to be loaded for an alias of:N*T*Cgoogle,cros-ec-keyb-v2 but there could be a different driver that supports the device for that compatible string so it's better to remove the trailing wildcard for OF. Also, remove the word "always" from the add_wildcard() function comment since that was carried from the time where a wildcard was always added at the end of the module alias for all the devices. Signed-off-by: Javier Martinez Canillas Suggested-by: Brian Norris Reviewed-by: Sjoerd Simons Cc: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/mod/file2alias.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit c510eff6bebaa244e577b8f499e86606b5e5d4c7 Author: Jeff Layton Date: Thu Jan 14 15:16:59 2016 -0800 fsnotify: destroy marks with call_srcu instead of dedicated thread At the time that this code was originally written, call_srcu didn't exist, so this thread was required to ensure that we waited for that SRCU grace period to settle before finally freeing the object. It does exist now however and we can much more efficiently use call_srcu to handle this. That also allows us to potentially use srcu_barrier to ensure that they are all of the callbacks have run before proceeding. In order to conserve space, we union the rcu_head with the g_list. This will be necessary for nfsd which will allocate marks from a dedicated slabcache. We have to be able to ensure that all of the objects are destroyed before destroying the cache. That's fairly Signed-off-by: Jeff Layton Cc: Eric Paris Reviewed-by: Jan Kara Cc: "Paul E. McKenney" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/notify/mark.c | 66 +++++++++------------------------------- include/linux/fsnotify_backend.h | 5 ++- 2 files changed, 18 insertions(+), 53 deletions(-) commit 1deaf9d19776916cd1c83191503bf327319a301a Author: Geliang Tang Date: Thu Jan 14 15:16:56 2016 -0800 fs/notify/inode_mark.c: use list_next_entry in fsnotify_unmount_inodes To make the intention clearer, use list_next_entry instead of list_entry. Signed-off-by: Geliang Tang Reviewed-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/notify/inode_mark.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 72214a24a7677d4c7501eecc9517ed681b5f2db2 Author: Sergey Senozhatsky Date: Thu Jan 14 15:16:53 2016 -0800 scripts/bloat-o-meter: fix python3 syntax error In Python3+ print is a function so the old syntax is not correct anymore: $ ./scripts/bloat-o-meter vmlinux.o vmlinux.o.old File "./scripts/bloat-o-meter", line 61 print "add/remove: %s/%s grow/shrink: %s/%s up/down: %s/%s (%s)" % \ ^ SyntaxError: invalid syntax Fix by calling print as a function. Tested on python 2.7.11, 3.5.1 Signed-off-by: Sergey Senozhatsky Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/bloat-o-meter | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit ea535e418c01837d07b6c94e817540f50bfdadb0 Author: Laura Abbott Date: Thu Jan 14 15:16:50 2016 -0800 dma-debug: switch check from _text to _stext In include/asm-generic/sections.h: /* * Usage guidelines: * _text, _data: architecture specific, don't use them in * arch-independent code * [_stext, _etext]: contains .text.* sections, may also contain * .rodata.* * and/or .init.* sections _text is not guaranteed across architectures. Architectures such as ARM may reuse parts which are not actually text and erroneously trigger a bug. Switch to using _stext which is guaranteed to contain text sections. Came out of https://lkml.kernel.org/g/<567B1176.4000106@redhat.com> Signed-off-by: Laura Abbott Reviewed-by: Kees Cook Cc: Russell King Cc: Arnd Bergmann Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/dma-debug.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 601f1db653217f205ffa5fb33514b4e1711e56d1 Author: Sudip Mukherjee Date: Thu Jan 14 15:16:47 2016 -0800 m32r: fix m32104ut_defconfig build fail The build of m32104ut_defconfig for m32r arch was failing for long long time with the error: ERROR: "memory_start" [fs/udf/udf.ko] undefined! ERROR: "memory_end" [fs/udf/udf.ko] undefined! ERROR: "memory_end" [drivers/scsi/sg.ko] undefined! ERROR: "memory_start" [drivers/scsi/sg.ko] undefined! ERROR: "memory_end" [drivers/i2c/i2c-dev.ko] undefined! ERROR: "memory_start" [drivers/i2c/i2c-dev.ko] undefined! As done in other architectures export the symbols to fix the error. Reported-by: Fengguang Wu Signed-off-by: Sudip Mukherjee Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/m32r/kernel/setup.c | 3 +++ 1 file changed, 3 insertions(+) commit e8ecde25f5e08f89b61d86c32bbb56b405e90c32 Author: Al Viro Date: Thu Jan 14 17:52:59 2016 -0500 Make sure that highmem pages are not added to symlink page cache inode_nohighmem() is sufficient to make sure that page_get_link() won't try to allocate a highmem page. Moreover, it is sufficient to make sure that page_symlink/__page_symlink won't do the same thing. However, any filesystem that manually preseeds the symlink's page cache upon symlink(2) needs to make sure that the page it inserts there won't be a highmem one. Fortunately, only nfs and shmem have run afoul of that... Signed-off-by: Al Viro Documentation/filesystems/porting | 6 +++++- fs/nfs/dir.c | 5 ++--- mm/shmem.c | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) commit 6e8b50d16a757d53f8817acecba97c5d4aa1cf65 Author: Jeff Layton Date: Tue Nov 17 06:52:23 2015 -0500 nfsd: add new io class tracepoint Add some new tracepoints in the nfsd read/write codepaths. The idea is that this will give us the ability to measure how long each phase of a read or write operation takes. Signed-off-by: Jeff Layton Signed-off-by: J. Bruce Fields fs/nfsd/nfsfh.h | 23 +++++++++++++++++++++++ fs/nfsd/trace.h | 41 +++++++++++++++++++++++++++++++++++++++++ fs/nfsd/vfs.c | 15 +++++++++++++++ 3 files changed, 79 insertions(+) commit 9c4b2867ed7c8c8784dd417ffd16e705e81eb145 Author: Rafael J. Wysocki Date: Thu Jan 14 23:24:22 2016 +0100 cpuidle: menu: Fix menu_select() for CPUIDLE_DRIVER_STATE_START == 0 Commit a9ceb78bc75c (cpuidle,menu: use interactivity_req to disable polling) exposed a bug in menu_select() causing it to return -1 on systems with CPUIDLE_DRIVER_STATE_START equal to zero, although it should have returned 0. As a result, idle states are not entered by CPUs on those systems. Namely, on the systems in question data->last_state_idx is initially equal to -1 and the above commit modified the condition that would have caused it to be changed to 0 to be less likely to trigger which exposed the problem. However, setting data->last_state_idx initially to -1 doesn't make sense at all and on the affected systems it should always be set to CPUIDLE_DRIVER_STATE_START (ie. 0) unconditionally, so make that happen. Fixes: a9ceb78bc75c (cpuidle,menu: use interactivity_req to disable polling) Reported-and-tested-by: Sudeep Holla Signed-off-by: Rafael J. Wysocki drivers/cpuidle/governors/menu.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) commit 250dfa05e5be98d7c8f246181da51165f83bbe62 Merge: afd2ff9 7dbded0 Author: Rafael J. Wysocki Date: Thu Jan 14 23:22:56 2016 +0100 Merge branch 'for-rafael' of https://git.kernel.org/pub/scm/linux/kernel/git/mzx/devfreq into pm-devfreq Pull devfreq changes for v4.5 from MyungJoo Ham. * 'for-rafael' of https://git.kernel.org/pub/scm/linux/kernel/git/mzx/devfreq: MAINTAINERS: Add devfreq-event entry MAINTAINERS: Add missing git repository and directory for devfreq PM / devfreq: Do not show statistics if it's not ready. PM / devfreq: Modify the indentation of trans_stat sysfs for readability PM / devfreq: Set the freq_table of devfreq device PM / devfreq: Add show_one macro to delete the duplicate code PM / devfreq: event: Fix the error and warning from script/checkpatch.pl PM / devfreq: event: Remove the error log of devfreq_event_get_edev_by_phandle() commit 36beca6571c941b28b0798667608239731f9bc3a Author: Nitin Gupta Date: Tue Jan 5 22:35:35 2016 -0800 sparc64: Fix numa node distance initialization Orabug: 22495713 Currently, NUMA node distance matrix is initialized only when a machine descriptor (MD) exists. However, sun4u machines (e.g. Sun Blade 2500) do not have an MD and thus distance values were left uninitialized. The initialization is now moved such that it happens on both sun4u and sun4v. Signed-off-by: Nitin Gupta Tested-by: Mikael Pettersson Signed-off-by: David S. Miller arch/sparc/mm/init_64.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 01b9b0b28626db4a47d7f48744d70abca9914ef1 Author: Vasily Averin Date: Thu Jan 14 13:41:14 2016 +0300 cifs_dbg() outputs an uninitialized buffer in cifs_readdir() In some cases tmp_bug can be not filled in cifs_filldir and stay uninitialized, therefore its printk with "%s" modifier can leak content of kernelspace memory. If old content of this buffer does not contain '\0' access bejond end of allocated object can crash the host. Signed-off-by: Vasily Averin Signed-off-by: Steve French CC: Stable fs/cifs/readdir.c | 1 + 1 file changed, 1 insertion(+) commit 820962dc700598ffe8cd21b967e30e7520c34748 Author: Rabin Vincent Date: Wed Dec 23 07:32:41 2015 +0100 cifs: fix race between call_async() and reconnect() cifs_call_async() queues the MID to the pending list and calls smb_send_rqst(). If smb_send_rqst() performs a partial send, it sets the tcpStatus to CifsNeedReconnect and returns an error code to cifs_call_async(). In this case, cifs_call_async() removes the MID from the list and returns to the caller. However, cifs_call_async() releases the server mutex _before_ removing the MID. This means that a cifs_reconnect() can race with this function and manage to remove the MID from the list and delete the entry before cifs_call_async() calls cifs_delete_mid(). This leads to various crashes due to the use after free in cifs_delete_mid(). Task1 Task2 cifs_call_async(): - rc = -EAGAIN - mutex_unlock(srv_mutex) cifs_reconnect(): - mutex_lock(srv_mutex) - mutex_unlock(srv_mutex) - list_delete(mid) - mid->callback() cifs_writev_callback(): - mutex_lock(srv_mutex) - delete(mid) - mutex_unlock(srv_mutex) - cifs_delete_mid(mid) <---- use after free Fix this by removing the MID in cifs_call_async() before releasing the srv_mutex. Also hold the srv_mutex in cifs_reconnect() until the MIDs are moved out of the pending list. Signed-off-by: Rabin Vincent Acked-by: Shirish Pargaonkar CC: Stable Signed-off-by: Steve French fs/cifs/connect.c | 2 +- fs/cifs/transport.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) commit 373512ec5c105ed09e3738196dcb257dfab65cba Author: Steve French Date: Fri Dec 18 13:05:30 2015 -0600 Prepare for encryption support (first part). Add decryption and encryption key generation. Thanks to Metze for helping with this. Reviewed-by: Stefan Metzmacher Signed-off-by: Steve French fs/cifs/cifsglob.h | 8 +++- fs/cifs/cifsproto.h | 5 ++- fs/cifs/connect.c | 2 +- fs/cifs/misc.c | 2 +- fs/cifs/smb2misc.c | 36 ++++++++++++++--- fs/cifs/smb2ops.c | 13 ++++-- fs/cifs/smb2pdu.c | 10 ++--- fs/cifs/smb2pdu.h | 8 ++-- fs/cifs/smb2proto.h | 3 +- fs/cifs/smb2transport.c | 102 +++++++++++++++++++++++++++++++++++++++++++++--- 10 files changed, 156 insertions(+), 33 deletions(-) commit 882137c4d64175e2bb38cd842e25d54e6de31da8 Author: Ross Lagerwall Date: Wed Dec 2 14:46:07 2015 +0000 cifs: Allow using O_DIRECT with cache=loose Currently O_DIRECT is supported with cache=none and cache=strict, but not cache=loose. Add support for using O_DIRECT when mounted with cache=loose. Signed-off-by: Ross Lagerwall Signed-off-by: Steve French fs/cifs/cifsfs.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit ec3fc58b1e7a32cc9f552b306f8dbb4454e83798 Author: Leo Yan Date: Wed Jan 13 15:21:05 2016 +0800 thermal: add description for integral_cutoff unit Add more explicitly description for unit of integral_cutoff which used by power allocator governor. Signed-off-by: Leo Yan Acked-by: Javi Merino Signed-off-by: Jonathan Corbet Documentation/thermal/sysfs-api.txt | 1 + 1 file changed, 1 insertion(+) commit ceec86ec06177f9eca684a489ddf630432023284 Author: SeongJae Park Date: Wed Jan 13 16:47:56 2016 +0900 Documentation: update libhugetlbfs site url The site for libhugetlbfs has moved from sourceforge to github. This commit updates the old url. Signed-off-by: SeongJae Park Acked-by: Mike Kravetz Signed-off-by: Jonathan Corbet Documentation/filesystems/proc.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit afd8c08446d6503adc1ccd2726a8e27f35d95b79 Author: Borislav Petkov Date: Wed Jan 13 16:48:51 2016 +0100 Documentation: Explain pci=conf1,conf2 more verbosely People complained that setting the PCI config space access mechanism through "pci=conf1" or "pci=conf2" on the command line is not really documented. Yeah, can you blame them? Look at what we have now. So try to improve the situation a bit by explaining what those "conf1" and "conf2" things actually mean. See http://wiki.osdev.org/PCI for more info. Suggested-by: Eric Morton Signed-off-by: Borislav Petkov [jc: Added the above URL to the document too] Signed-off-by: Jonathan Corbet Documentation/kernel-parameters.txt | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) commit 5d19c619ab3f0551864684f09c2a2f22ee972bef Author: Markus Elfring Date: Thu Jan 14 15:46:28 2016 +0100 fsl/fman: Delete one function call "put_device" in dtsec_config() The Coccinelle semantic patch script "deref_null.cocci" pointed a problem out in the implementation of the function "dtsec_config". A null pointer was assigned to the data structure member "tbiphy" of the variable "dtsec" if a matching device was not found. A call of the function "put_device" was unnecessary then because a previous call of the function "get_device" was not triggered. Thus remove the function call "put_device" after the printing of the desired error message. Signed-off-by: Markus Elfring Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fman/fman_dtsec.c | 1 - 1 file changed, 1 deletion(-) commit bf6f869f8c111ba265cd199c64b25c646987500a Author: Liu Jiang Date: Tue Jan 12 13:18:06 2016 -0700 genirq/MSI: Relax msi_domain_alloc() to support parentless MSI irqdomains Previously msi_domain_alloc() assumed MSI irqdomains always had parent irqdomains, but that's not true for the new Intel VMD devices. Relax msi_domain_alloc() to support parentless MSI irqdomains. Signed-off-by: Jiang Liu Signed-off-by: Keith Busch Signed-off-by: Bjorn Helgaas Acked-by: Thomas Gleixner kernel/irq/msi.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 10a0c0f0595b20efa127a1816670c64a3d0e4965 Merge: dcd1bfd 7030a7e Author: Linus Torvalds Date: Thu Jan 14 11:57:22 2016 -0800 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 changes: - fix lguest bug - fix /proc/meminfo output on certain configs - fix pvclock bug - fix reboot on certain iMacs by adding new reboot quirk - fix bootup crash - fix FPU boot line option parsing - add more x86 self-tests - small cleanups, documentation improvements, etc" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/cpu/amd: Remove an unneeded condition in srat_detect_node() x86/vdso/pvclock: Protect STABLE check with the seqcount x86/mm: Improve switch_mm() barrier comments selftests/x86: Test __kernel_sigreturn and __kernel_rt_sigreturn x86/reboot/quirks: Add iMac10,1 to pci_reboot_dmi_table[] lguest: Map switcher text R/O x86/boot: Hide local labels in verify_cpu() x86/fpu: Disable AVX when eagerfpu is off x86/fpu: Disable MPX when eagerfpu is off x86/fpu: Disable XGETBV1 when no XSAVE x86/fpu: Fix early FPU command-line parsing x86/mm: Use PAGE_ALIGNED instead of IS_ALIGNED selftests/x86: Disable the ldt_gdt_64 test for now x86/mm/pat: Make split_page_count() check for empty levels to fix /proc/meminfo output x86/boot: Double BOOT_HEAP_SIZE to 64KB x86/mm: Add barriers and document switch_mm()-vs-flush synchronization commit dcd1bfd50ab6952e8c60fd99d065d5be38b4b8b4 Merge: 747a9b0 1f16f11 Author: Linus Torvalds Date: Thu Jan 14 11:45:56 2016 -0800 Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull timer fixes from Ingo Molnar: "Three clocksource driver fixes" * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: clocksource/drivers/vt8500: Increase the minimum delta clocksource/drivers/fsl_ftm_timer: Fix CLKSRC_MMIO dependency clocksource/drivers: Fix dependencies for !HAS_IOMEM archs commit adfeb3e00e8e1b9fb4ad19eb7367e7c272d16003 Author: Steve French Date: Fri Dec 18 12:31:36 2015 -0600 cifs: Make echo interval tunable Currently the echo interval is set to 60 seconds using a macro. This setting determines the interval at which echo requests are sent to the server on an idling connection. This setting also affects the time required for a connection to an unresponsive server to timeout. Making this setting a tunable allows users to control the echo interval times as well as control the time after which the connecting to an unresponsive server times out. To set echo interval, pass the echo_interval=n mount option. Version four of the patch. v2: Change MIN and MAX timeout values v3: Remove incorrect comment in cifs_get_tcp_session v4: Fix bug in setting echo_intervalw Signed-off-by: Sachin Prabhu Acked-by: Shirish Pargaonkar fs/cifs/cifsfs.c | 2 ++ fs/cifs/cifsglob.h | 8 ++++++-- fs/cifs/connect.c | 35 ++++++++++++++++++++++++++--------- 3 files changed, 34 insertions(+), 11 deletions(-) commit a108471b5730b52017e73b58c9f486319d2ac308 Author: Ross Lagerwall Date: Wed Dec 2 14:46:08 2015 +0000 cifs: Check uniqueid for SMB2+ and return -ESTALE if necessary Commit 7196ac113a4f ("Fix to check Unique id and FileType when client refer file directly.") checks whether the uniqueid of an inode has changed when getting the inode info, but only when using the UNIX extensions. Add a similar check for SMB2+, since this can be done without an extra network roundtrip. Signed-off-by: Ross Lagerwall Signed-off-by: Steve French fs/cifs/inode.c | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) commit 747a9b0a08ae300b99b8aa7861bd3609f3b3e782 Merge: 32250e4 c366088 Author: Linus Torvalds Date: Thu Jan 14 11:39:09 2016 -0800 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, the biggest patch is one that decouples the kernel's list.h from tooling list.h" * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (23 commits) perf tools: Fallback to srcdir/Documentation/tips.txt perf ui/tui: Print helpline message as is perf tools: Set and pass DOCDIR to builtin-report.c perf tools: Add file_only config option to strlist perf tools: Add more usage tips perf record: Add --buildid-all option tools subcmd: Add missing NORETURN define for parse-options.h tools: Fix formatting of the "make -C tools" help message tools: Make list.h self-sufficient perf tools: Fix mmap2 event allocation in synthesize code perf stat: Fix recort_usage typo perf test: Reset err after using it hold errcode in hist testcases perf test: Fix false TEST_OK result for 'perf test hist' tools build: Add BPF feature check to test-all perf bpf: Fix build breakage due to libbpf tools: Move Makefile.arch from perf/config to tools/scripts perf tools: Fix PowerPC native building perf tools: Fix phony build target for build-test perf tools: Add -lutil in python lib list for broken python-config perf tools: Add missing sources to perf's MANIFEST ... commit 275516cdcfa42c603c79ea42d2a7d4288d950fea Author: Arnd Hannemann Date: Mon Nov 16 17:38:28 2015 +0100 Print IP address of unresponsive server Before this patch, only the hostname of the server is printed when it becomes unresponsive. This might not be helpful, if the IP-Address has changed since initial mount when the name was resolved (e.g. because the IPv6-Prefix changed). This patch adds the cached IP address of the unresponsive server, to the log message. Signed-off-by: Arnd Hannemann Signed-off-by: Steve French fs/cifs/connect.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit ec7147a99e33a9e4abad6fc6e1b40d15df045d53 Author: Jamie Bainbridge Date: Sat Nov 7 22:13:49 2015 +1000 cifs: Ratelimit kernel log messages Under some conditions, CIFS can repeatedly call the cifs_dbg() logging wrapper. If done rapidly enough, the console framebuffer can softlockup or "rcu_sched self-detected stall". Apply the built-in log ratelimiters to prevent such hangs. Signed-off-by: Jamie Bainbridge Signed-off-by: Steve French CC: Stable fs/cifs/cifs_debug.c | 2 +- fs/cifs/cifs_debug.h | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) commit 32250e4a5fa0b618044afa59fba01093a4bcb14a Merge: 5339f9d c698d63 Author: Linus Torvalds Date: Thu Jan 14 11:25:37 2016 -0800 Merge branch 'i2c/for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux Pull i2c updates from Wolfram Sang: "Quite some driver updates: - piix4 can now handle multiplexed adapters - brcmstb, xlr, eg20t, designware drivers support more SoCs - emev2 gained i2c slave support - img-scb and rcar got bigger refactoring to remove issues - lots of common driver updates i2c core changes: - new quirk flag when an adapter does not support clock stretching, so clients can be configured to avoid that if possible - added a helper function to retrieve timing parameters from firmware (with rcar being the first user) - "multi-master" DT binding added so drivers can adapt to this setting (like disabling PM to keep arbitration working) - RuntimePM for the logical adapter device is now always enabled by the core to ensure propagation from childs to the parent (the HW device) - new macro builtin_i2c_driver to reduce boilerplate" * 'i2c/for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (70 commits) i2c: create builtin_i2c_driver to avoid registration boilerplate i2c: imx: fix i2c resource leak with dma transfer dt-bindings: i2c: eeprom: add another EEPROM device dt-bindings: move I2C eeprom descriptions to the proper file i2c: designware: Do not require clock when SSCN and FFCN are provided DT: i2c: trivial-devices: Add Epson RX8010 and MPL3115 i2c: s3c2410: remove superfluous runtime PM calls i2c: always enable RuntimePM for the adapter device i2c: designware: retry transfer on transient failure i2c: ibm_iic: rename i2c_timings struct due to clash with generic version i2c: designware: Add support for AMD Seattle I2C i2c: imx: Remove unneeded comments i2c: st: use to_platform_device() i2c: designware: use to_pci_dev() i2c: brcmstb: Adding support for CM and DSL SoCs i2c: mediatek: fix i2c multi transfer issue in high speed mode i2c: imx: improve code readability i2c: imx: Improve message log when DMA is not used i2c: imx: add runtime pm support to improve the performance i2c: imx: init bus recovery info before adding i2c adapter ... commit 5339f9d4c2ceccab00b28d65bd5c2b2cd6a3de05 Merge: cf8d7e3 1832237 Author: Linus Torvalds Date: Thu Jan 14 11:13:28 2016 -0800 Merge tag 'devicetree-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux Pull DeviceTree updates from Rob Herring: - Rework and export the changeset API to make it available to users other than DT overlays - ARM secure devices binding - OCTEON USB binding - Clean-up of various SRAM binding docs - Various other binding doc updates * tag 'devicetree-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (21 commits) drivers/of: Export OF changeset functions Fix documentation for adp1653 DT ARM: psci: Fix indentation in DT bindings of/platform: export of_default_bus_match_table of/unittest: Show broken behaviour in the platform bus of: fix declaration of of_io_request_and_map of/address: replace printk(KERN_ERR ...) with pr_err(...) of/irq: optimize device node matching loop in of_irq_init() dt-bindings: tda998x: Document the required 'port' node. net/macb: bindings doc: Merge cdns-emac to macb dt-bindings: Misc fix for the ATH79 DDR controllers dt-bindings: Misc fix for the ATH79 MISC interrupt controllers Documentation: dt: Add bindings for Secure-only devices dt-bindings: ARM: add arm,cortex-a72 compatible string ASoC: Atmel: ClassD: add GCK's parent clock in DT binding DT: add Olimex to vendor prefixes Documentation: fsl-quadspi: Add fsl,ls1021-qspi compatible string Documentation/devicetree: document OCTEON USB bindings usb: misc: usb3503: Describe better how to bind clock to the hub dt-bindings: Consolidate SRAM bindings from all vendors ... commit 570540d50710ed192e98e2f7f74578c9486b6b05 Author: Thomas Gleixner Date: Wed Jan 13 14:07:25 2016 +0100 genirq: Validate action before dereferencing it in handle_irq_event_percpu() commit 71f64340fc0e changed the handling of irq_desc->action from CPU 0 CPU 1 free_irq() lock(desc) lock(desc) handle_edge_irq() if (desc->action) { handle_irq_event() action = desc->action unlock(desc) desc->action = NULL handle_irq_event_percpu(desc, action) action->xxx to CPU 0 CPU 1 free_irq() lock(desc) lock(desc) handle_edge_irq() if (desc->action) { handle_irq_event() unlock(desc) desc->action = NULL handle_irq_event_percpu(desc, action) action = desc->action action->xxx So if free_irq manages to set the action to NULL between the unlock and before the readout, we happily dereference a null pointer. We could simply revert 71f64340fc0e, but we want to preserve the better code generation. A simple solution is to change the action loop from a do {} while to a while {} loop. This is safe because we either see a valid desc->action or NULL. If the action is about to be removed it is still valid as free_irq() is blocked on synchronize_irq(). CPU 0 CPU 1 free_irq() lock(desc) lock(desc) handle_edge_irq() handle_irq_event(desc) set(INPROGRESS) unlock(desc) handle_irq_event_percpu(desc) action = desc->action desc->action = NULL while (action) { action->xxx ... action = action->next; sychronize_irq() while(INPROGRESS); lock(desc) clr(INPROGRESS) free(action) That's basically the same mechanism as we have for shared interrupts. action->next can become NULL while handle_irq_event_percpu() runs. Either it sees the action or NULL. It does not matter, because action itself cannot go away before the interrupt in progress flag has been cleared. Fixes: commit 71f64340fc0e "genirq: Remove the second parameter from handle_irq_event_percpu()" Reported-by: zyjzyj2000@gmail.com Signed-off-by: Thomas Gleixner Cc: Huang Shijie Cc: Jiang Liu Cc: Peter Zijlstra Cc: stable@vger.kernel.org Link: http://lkml.kernel.org/r/alpine.DEB.2.11.1601131224190.3575@nanos kernel/irq/handle.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit cf8d7e3850ee44dc2f0a69405d731af62528a948 Merge: 5c43019 9fb4116 Author: Linus Torvalds Date: Thu Jan 14 10:53:15 2016 -0800 Merge tag 'mfd-for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd Pull MFD updates from Lee Jones: "New Device Support: - Add support for s2mps15; sec-core - Add support for Lewisburg; lpc_ich - Add support for cs47l24 and wm1831; arizona New Functionality: - Allow user to select syscon register width; syscon Fix-ups: - Lots of Checkpatch fixes - Rename -pmic/-regulator; s2mps11 - Build driver components into a single module; wm8994-* - Better handing of IRQ during suspend/resume; as3722 - Constify things; da903x - Remove unused code; ab8500-core - Improve error handing; qcom_rpm - Simplify code: wm831x-otp, sta2x11-mfd - Improve locking; cros_ec_spi - Fix incorrect DT binding filename reference; arizona, palmas, snps-dwapb-gpio, wm8994 Bug Fixes: - Fix broken SYSFS 'show ID' call; wm831x-otp - Protect reads from non-existent registers; qcom-spmi-pmic - Repair build warnings; as3722 - Fix IRQ request ordering; arizona-irq - Ensure return value is boolean; ucb1x00-core, tps65010, tc6393xb, htc-egpio, dm355evm_msp, asic3" * tag 'mfd-for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (58 commits) mfd: davinci_voicecodec: Remove pointless 'out of memory' error message mfd: da9052-irq: Fix trivial 'space before comma' error mfd: da9052-i2c: Fix tabbing/whitespace issue mfd: da903x: Fix white space and split string issues mfd: cs5535-mfd: Add missing line spacing and make local array static mfd: cros_ec_spi: Repair comparison ordering issue mfd: cros_ec_i2c: Fix trivial 'tabs before spaces' whitespace issue. mfd: asic3: Fix a plethora of Checkpatch errors and warnings mfd: as3711: Repair OOM and 'line over 80 chars' formatting warnings mfd: arizona-i2c: Add blank line formatting after declaration mfd: arizona-core: msleep() is unreliable for anything <20ms use usleep_range() instead mfd: adp5520: Some trivial 'no space before tab' fixes mfd: ab8500-sysctrl: Fix Constify, printk => pr_info and formatting issues mfd: ab8500-gpadc: Squash a whole bunch of Checkpatch warnings and one error mfd: ab8500-debugfs: Clean-up non-conforming commenting and print formatting mfd: ab8500-core: Fix many warnings reported by Checkpatch mfd: ab2100-otp: Remove pointless 'out of memory' error message mfd: ab3100-core.c: Fix multiple warnings reported by Checkpatch mfd: aat2870-core: Remove unnecessary 'out of memory' message mfd: 88pm860x-core: Fix commenting and declaration spacing ... commit 5c43019f25977fb6119dff471d592321ed0d2333 Merge: c25949d 265b604 Author: Linus Torvalds Date: Thu Jan 14 10:45:11 2016 -0800 Merge tag 'for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply Pull power supply and reset updates from Sebastian Reichel: "I have mostly fixes in the power-supply tree for the 4.5 kernel. I should mention, that the top-most commit has not been in next, but it's a fix changing only a single register offset. Summary: - uncouple CONFIG_POWER_RESET from CONFIG_POWER_SUPPLY - misc fixes" * tag 'for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: power: bq27xxx_battery: Fix bq27541 AveragePower register address power: test_power: correctly handle empty writes power: generic-adc-battery: use to_delayed_work power: isp1704_charger: Fix isp1704_write() definition power: bq27xxx: fix register numbers of bq27500 power: bq27xxx: fix reading for bq27000 and bq27010 power: Fix unmet dependency on POWER_SUPPLY by POWER_RESET by uncoupling them power: bq27xxx_battery: Reorganize I2C into a module power: bq27xxx: don't fill system log by missing battery power: max8903_charger: set IRQF_ONESHOT if no primary handler is specified power/reset: at91-reset: add missing of_node_put power: ds2782_battery: constify ds278x_battery_ops structure power: bq2415x_charger: Delete unnecessary checks before the function call "of_node_put" commit efaea94aaf0decd55b15aa7068d4d516a352e56e Author: Pablo Neira Ayuso Date: Wed Jan 13 17:34:38 2016 +0100 netfilter: nft_ct: keep counters away from CONFIG_NF_CONNTRACK_LABELS This is accidental, they don't depend on the label infrastructure. Fixes: 48f66c905a97 ("netfilter: nft_ct: add byte/packet counter support") Reported-by: Arnd Bergmann Signed-off-by: Pablo Neira Ayuso Acked-by: Florian Westphal net/netfilter/nft_ct.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c25949d4cc22449414fe73bc930bdf650078e877 Merge: b14bf63 525e1ab Author: Linus Torvalds Date: Thu Jan 14 10:40:16 2016 -0800 Merge tag 'hsi-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi Pull HSI updates from Sebastian Reichel: "Misc fixes" * tag 'hsi-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi: HSI: omap_ssi_port: fix handling of_get_named_gpio result HSI: omap_ssi: fix handling ida_simple_get result HSI: Remove struct hsi_client private fields from kernel-doc commit b14bf630be972aceb0c8981f9794e612cbb141f7 Merge: 7fdec82 60d613d Author: Linus Torvalds Date: Thu Jan 14 10:34:33 2016 -0800 Merge tag 'backlight-for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight Pull backlight updates from Lee Jones: Fix-ups: - Take heed of GPIO default-on requests; gpio_backlight - Enable DT probing; tps65217_bl Bug Fixes: - Free resources in error path; pwm_bl - Fix uninitialised variable warning; adp8860_bl, adp8870_bl - Protect unconditional DT look-ups from non-DT platforms; pwm_bl - Fix backlight flicker; pwm_bl * tag 'backlight-for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight: backlight: pwm_bl: Free PWM requested by legacy API on error path backlight: adp8860: Fix another uninitialized variable use backlight: gpio-backlight: Use default-on on GPIO request backlight: pwm_bl: Fix broken PWM backlight for non-dt platforms backlight: tps65217_bl: Add MODULE_DEVICE_TABLE backlight: pwm_bl: Avoid backlight flicker when probed from DT backlight: adp88x0: Fix uninitialized variable use commit 525fd5a94e1be0776fa652df5c687697db508c91 Author: Dmitry V. Levin Date: Sun Dec 27 02:13:27 2015 +0300 sparc64: fix incorrect sign extension in sys_sparc64_personality The value returned by sys_personality has type "long int". It is saved to a variable of type "int", which is not a problem yet because the type of task_struct->pesonality is "unsigned int". The problem is the sign extension from "int" to "long int" that happens on return from sys_sparc64_personality. For example, a userspace call personality((unsigned) -EINVAL) will result to any subsequent personality call, including absolutely harmless read-only personality(0xffffffff) call, failing with errno set to EINVAL. Signed-off-by: Dmitry V. Levin Cc: Signed-off-by: David S. Miller arch/sparc/kernel/sys_sparc_64.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 83f1bfd6f57c422da70d1e296df1becc35c868be Merge: 7683355 64bebef 2cf8383 5d9374c 6cf2e31 5f008c9 73e7d63 b71b557 7775fb9 0bbfe28 Author: Jiri Kosina Date: Thu Jan 14 16:11:06 2016 +0100 Merge branches 'for-4.4/upstream-fixes', 'for-4.5/async-suspend', 'for-4.5/container-of-cleanups', 'for-4.5/core', 'for-4.5/i2c-hid', 'for-4.5/logitech', 'for-4.5/multitouch', 'for-4.5/sony', 'for-4.5/upstream' and 'for-4.5/wacom' into for-linus commit b7522056ec1a62a5f3246627e12ef48e6274c21c Author: Dmitry Safonov <0x7f454c46@gmail.com> Date: Wed Jan 13 18:39:58 2016 +0300 ftrace: Remove unused nr_trampolines var It's not needed & not used since introducing old_hash: commit fef5aeeee9e371 ("ftrace: Replace tramp_hash with old_*_hash to save space"). Link: http://lkml.kernel.org/r/1452699598-27610-1-git-send-email-0x7f454c46@gmail.com Signed-off-by: Dmitry Safonov <0x7f454c46@gmail.com> Signed-off-by: Steven Rostedt include/linux/ftrace.h | 1 - 1 file changed, 1 deletion(-) commit 7717c6be699975f6733d278b13b7c4295d73caf6 Author: Steven Rostedt (Red Hat) Date: Wed Jan 13 15:48:54 2016 -0500 tracing: Fix stacktrace skip depth in trace_buffer_unlock_commit_regs() While cleaning the stacktrace code I unintentially changed the skip depth of trace_buffer_unlock_commit_regs() from 0 to 6. kprobes uses this function, and with skipping 6 call backs, it can easily produce no stack. Here's how I tested it: # echo 'p:ext4_sync_fs ext4_sync_fs ' > /sys/kernel/debug/tracing/kprobe_events # echo 1 > /sys/kernel/debug/tracing/events/kprobes/enable # cat /sys/kernel/debug/trace sync-2394 [005] 502.457060: ext4_sync_fs: (ffffffff81317650) sync-2394 [005] 502.457063: kernel_stack: sync-2394 [005] 502.457086: ext4_sync_fs: (ffffffff81317650) sync-2394 [005] 502.457087: kernel_stack: sync-2394 [005] 502.457091: ext4_sync_fs: (ffffffff81317650) After putting back the skip stack to zero, we have: sync-2270 [000] 748.052693: ext4_sync_fs: (ffffffff81317650) sync-2270 [000] 748.052695: kernel_stack: => iterate_supers (ffffffff8126412e) => sys_sync (ffffffff8129c4b6) => entry_SYSCALL_64_fastpath (ffffffff8181f0b2) sync-2270 [000] 748.053017: ext4_sync_fs: (ffffffff81317650) sync-2270 [000] 748.053019: kernel_stack: => iterate_supers (ffffffff8126412e) => sys_sync (ffffffff8129c4b6) => entry_SYSCALL_64_fastpath (ffffffff8181f0b2) sync-2270 [000] 748.053381: ext4_sync_fs: (ffffffff81317650) sync-2270 [000] 748.053383: kernel_stack: => iterate_supers (ffffffff8126412e) => sys_sync (ffffffff8129c4b6) => entry_SYSCALL_64_fastpath (ffffffff8181f0b2) Cc: stable@vger.kernel.org # v4.4+ Fixes: 73dddbb57bb0 "tracing: Only create stacktrace option when STACKTRACE is configured" Reported-by: Brendan Gregg Tested-by: Brendan Gregg Signed-off-by: Steven Rostedt kernel/trace/trace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit af368027a49a751d6ff4ee9e3f9961f35bb4fede Author: Takashi Iwai Date: Wed Jan 13 17:48:01 2016 +0100 ALSA: timer: Fix race among timer ioctls ALSA timer ioctls have an open race and this may lead to a use-after-free of timer instance object. A simplistic fix is to make each ioctl exclusive. We have already tread_sem for controlling the tread, and extend this as a global mutex to be applied to each ioctl. The downside is, of course, the worse concurrency. But these ioctls aren't to be parallel accessible, in anyway, so it should be fine to serialize there. Reported-by: Dmitry Vyukov Tested-by: Dmitry Vyukov Cc: Signed-off-by: Takashi Iwai sound/core/timer.c | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) commit 238d1c6041ebcb5ce7c075b696f6cc9962991e94 Author: Mans Rullgard Date: Sat Jan 9 12:45:11 2016 +0000 mmc: atmel: get rid of struct mci_dma_data As struct mci_dma_data is now only used by AVR32, it is nothing but pointless indirection. Replace it with struct dw_dma_slave in the AVR32 platform code and with a void pointer elsewhere. Signed-off-by: Mans Rullgard Acked-by: Hans-Christian Noren Egtvedt Acked-by: Ludovic Desroches Acked-by: Ulf Hansson arch/avr32/mach-at32ap/at32ap700x.c | 21 ++++++++++----------- drivers/mmc/host/atmel-mci.c | 1 - include/linux/atmel-mci.h | 2 +- include/linux/platform_data/mmc-atmel-mci.h | 22 ---------------------- 4 files changed, 11 insertions(+), 35 deletions(-) commit 74843787158e9dff249f0528e7d4806102cc2c26 Author: Mans Rullgard Date: Sat Jan 9 12:45:10 2016 +0000 mmc: atmel-mci: restore dma on AVR32 Commit ecb89f2f5f3e7 ("mmc: atmel-mci: remove compat for non DT board when requesting dma chan") broke dma on AVR32 and any other boards not using DT. This restores a fallback mechanism for such cases. Signed-off-by: Mans Rullgard Acked-by: Hans-Christian Noren Egtvedt Acked-by: Ludovic Desroches Acked-by: Ulf Hansson arch/avr32/mach-at32ap/at32ap700x.c | 16 ++++++++++++++++ drivers/mmc/host/atmel-mci.c | 17 +++++++++++++++++ include/linux/atmel-mci.h | 2 ++ 3 files changed, 35 insertions(+) commit da629cf111a2b9a182d1b43f03f2cb0d3f258af4 Author: Helmut Schaa Date: Tue Jan 5 17:42:13 2016 +0100 mac80211: Don't buffer non-bufferable MMPDUs Non-bufferable MMPDUs are sent out to STAs even while in PS mode (for example probe responses). Applying filtered frame handling for these doesn't seem to make much sense and will only create more air utilization when the STA wakes up. Hence, apply filtered frame handling only for bufferable MMPDUs. Discovered while testing an old VOIP phone that started probing for APs while in PS mode. The mac80211/ath9k AP where the STA is associated would reply with a probe response but the phone sometimes moved to a new channel already and couldn't ack the probe response anymore. In that case mac80211 applied filtered frame handling for the un-acked probe response. Signed-off-by: Helmut Schaa Signed-off-by: Johannes Berg net/mac80211/status.c | 5 +++++ 1 file changed, 5 insertions(+) commit 2bc533bd9dcf48eaf4af6fb89a338734a9e8f76e Author: Eliad Peller Date: Tue Jan 5 16:28:06 2016 +0200 mac80211: handle sched_scan_stopped vs. hw restart race On hw restart, mac80211 might try to reconfigure already stopped sched scan, if ieee80211_sched_scan_stopped_work() wasn't scheduled yet. This in turn will keep the device driver with scheduled scan configured, while both mac80211 and cfg80211 will clear their sched scan state once the work is scheduled. Fix it by ignoring ieee80211_sched_scan_stopped() calls while in hw restart, and flush the work before starting the reconfiguration. Signed-off-by: Eliad Peller Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg net/mac80211/main.c | 1 + net/mac80211/scan.c | 8 ++++++++ 2 files changed, 9 insertions(+) commit 1a57081add2529fb4d8d11e7385990e7e550d30b Author: Emmanuel Grumbach Date: Sun Dec 20 13:50:00 2015 +0200 mac80211: fix PS-Poll handling My commit below broken PS-Poll handling. In case the driver has no frames buffered, driver_release_tids will be 0, but calling find_highest_prio_tid() with 0 as a parameter is not a good idea: fls(0) - 1 = -1. This bug caused mac80211 to think that frames were buffered in the driver which in turn was confused because mac80211 was asking to release frames that were not reported to exist. On iwlwifi, this led to the WARNING below: WARNING: CPU: 0 PID: 11230 at drivers/net/wireless/intel/iwlwifi/mvm/sta.c:1733 iwl_mvm_sta_modify_sleep_tx_count+0x2af/0x320 [iwlmvm]() ffffffffc0627c60 ffff8800069b7648 ffffffff81888913 0000000000000000 0000000000000000 ffff8800069b7688 ffffffff81089d6a ffff8800069b7678 0000000000000001 ffff88003b35abf0 ffff88000698b128 ffff8800069b76d4 Call Trace: [] dump_stack+0x4c/0x65 [] warn_slowpath_common+0x8a/0xc0 [] warn_slowpath_null+0x1a/0x20 [] iwl_mvm_sta_modify_sleep_tx_count+0x2af/0x320 [iwlmvm] [] iwl_mvm_mac_release_buffered_frames+0x31/0x40 [iwlmvm] [] ieee80211_sta_ps_deliver_response+0x6e6/0xd80 [mac80211] [] ieee80211_sta_ps_deliver_poll_response+0x26/0x30 [mac80211] [] ieee80211_rx_handlers+0xa83/0x2900 [mac80211] [] ieee80211_prepare_and_rx_handle+0x1ed/0xa70 [mac80211] [] ? sta_info_get_bss+0x5/0x4a0 [mac80211] [] ieee80211_rx_napi+0x586/0xcd0 [mac80211] [] iwl_mvm_rx_rx_mpdu+0x59e/0xc60 [iwlmvm] Fixes: 0ead2510f8ce ("mac80211: allow the driver to send EOSP when needed") Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg net/mac80211/sta_info.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 354210f8046cc801d6001f10c5c32967932b09a2 Author: Bob Copeland Date: Sat Dec 19 09:59:37 2015 -0500 Revert "mac80211_hwsim: support any address in userspace" This reverts commit cd37a90b2a417e5882414e19954eeed174aa4d29. Different userspace programs interpreted HWSIM_ATTR_ADDR_TRANSMITTER and HWSIM_ATTR_ADDR_RECEIVER differently: some expected it to be an unchanging hardware address that is tied to the radio despite which address is configured on the interface, while others expected to be a copy of the address in the frame (the configured address). The intent of the original authors is unclear. The latter interpretation doesn't really work properly with multiple vifs and broadcast frames. Also, as the TA is already in the frame, userspace programs can actually support configured addresses in the former interpretation by mapping between them and the supplied HWSIM_ATTR_ADDR_TRANSMITTER. So, in the interest of API stability, revert to the previous mode of operation and going forward use the former interpretation. Signed-off-by: Bob Copeland Signed-off-by: Johannes Berg drivers/net/wireless/mac80211_hwsim.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit b9f628fcc673ba582cc7a17c4fd9be01133e61bd Author: Eliad Peller Date: Wed Dec 16 15:45:45 2015 +0200 mac80211: clear local->sched_scan_req properly on reconfig On reconfig, in case of sched_scan_req->n_scan_plans > 1, local->sched_scan_req was never cleared, although cfg80211_sched_scan_stopped_rtnl() was called, resulting in local->sched_scan_req holding a stale and preventing further scheduled scan requests. Clear it explicitly in this case. Fixes: 42a7e82c6792 ("mac80211: Do not restart scheduled scan if multiple scan plans are set") Signed-off-by: Eliad Peller Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg net/mac80211/util.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 470f4d613b51806e15e055428234a04a99f076fc Author: Eliad Peller Date: Mon Dec 14 16:26:57 2015 +0200 mac80211: avoid ROC during hw restart Defer ROC requests during hw restart, as the driver might not be fully configured in this stage (e.g. channel contexts were not added yet) Signed-off-by: Eliad Peller Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg net/mac80211/main.c | 5 +++++ net/mac80211/offchannel.c | 4 ++++ net/mac80211/util.c | 11 +++++++++-- 3 files changed, 18 insertions(+), 2 deletions(-) commit c3826807bbb3de693208da4ecb9c9602de16c616 Author: Johannes Berg Date: Fri Dec 11 17:35:50 2015 +0100 regulatory: fix world regulatory domain data The rule definitions here aren't really valid, they would be rejected if it came from userspace due to the bandwidth specified being bigger than the rule's width. This is fairly much inconsequential since the other rules around them do enable the bandwidth, but express that better using the NL80211_RRF_AUTO_BW flag. Signed-off-by: Johannes Berg net/wireless/reg.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 94c4fd641e1bc438092f0214bb5ec77ea73b13cf Author: Dave Young Date: Sun Nov 15 15:31:05 2015 +0800 wireless: change cfg80211 regulatory domain info as debug messages cfg80211 module prints a lot of messages like below. Actually printing once is acceptable but sometimes it will print again and again, it looks very annoying. It is better to change these detail messages to debugging only. cfg80211: World regulatory domain updated: cfg80211: DFS Master region: unset cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time) cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A) cfg80211: (2457000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A) cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A) cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (N/A) cfg80211: (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s) cfg80211: (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s) cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A) cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A) The changes in this patch is to replace pr_info with pr_debug in function print_rd_rules and print_regdomain_info Signed-off-by: Dave Young [change some pr_err() statements to at least keep the alpha2] Signed-off-by: Johannes Berg net/wireless/reg.c | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) commit e6a8a3aaaac832f47092df93f46298251b136fc9 Author: Johannes Berg Date: Tue Dec 8 23:46:33 2015 +0100 mac80211: fix remain-on-channel cancellation Ilan's previous commit 1b894521e60c ("mac80211: handle HW ROC expired properly") neglected to take into account that hw_begun was now always set in the software implementation as well as the offloaded case. Fix hw_begun to only apply to the offloaded case to make the check in Ilan's commit safe and correct. Reported-by: Jouni Malinen Signed-off-by: Johannes Berg net/mac80211/offchannel.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit e9db45578706e216d9bb0fb5f459b137da54be63 Author: Johannes Berg Date: Tue Dec 8 13:16:41 2015 +0100 mac80211: recalculate SW ROC only when needed The current (new) code recalculates the new work timeout for software remain-on-channel whenever any item started. In two of the callers of ieee80211_handle_roc_started(), this is completely pointless since they're for hardware and will skip the recalculation entirely; it's necessary only in the case of having just added a new item to the list, as in the last remaining case the recalculation had just been done. This last case, however, is also problematic - if one of the items on the list actually expires during the recalc the list iteration outside becomes corrupted and crashes. Fix this by moving the recalculation to the only place where it's required. Signed-off-by: Johannes Berg net/mac80211/offchannel.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit d50f42384dbfcf5143de614710e132dc06cd2439 Author: Arnd Bergmann Date: Wed Jan 13 22:25:41 2016 +0100 mmc: tmio_mmc_dma: don't print invalid DMA cookie The tmio_mmc_start_dma_{rx,tx} function functions contain debug code that prints the dma cookie among other things. However, in case we fall back to PIO mode for some reason, the cookie variable is never initialized, and gcc warns about this: In file included from ../include/linux/printk.h:277:0, from ../include/linux/kernel.h:13, from ../include/linux/list.h:8, from ../include/linux/kobject.h:20, from ../include/linux/device.h:17, from ../drivers/mmc/host/tmio_mmc_dma.c:13: ../drivers/mmc/host/tmio_mmc_dma.c: In function 'tmio_mmc_start_dma': ../include/linux/dynamic_debug.h:86:3: warning: 'cookie' may be used uninitialized in this function [-Wmaybe-uninitialized] __dynamic_dev_dbg(&descriptor, dev, fmt, \ ^ ../drivers/mmc/host/tmio_mmc_dma.c:128:15: note: 'cookie' was declared here dma_cookie_t cookie; This modifies the dev_dbg() statements so we only print the cookie when we are already in the DMA path. Signed-off-by: Arnd Bergmann Signed-off-by: Ulf Hansson drivers/mmc/host/tmio_mmc_dma.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit e10c321977091f163eceedec0650e0ef4b3cf4bb Author: Carlo Caione Date: Wed Jan 13 09:36:55 2016 +0100 mmc: core: Enable tuning according to the actual timing While in sdhci_execute_tuning() the choice whether or not to enable the tuning is done on the actual timing, in the mmc_sdio_init_uhs_card() the check is done on the capability of the card. This difference is causing some issues with some SDIO cards in DDR50 mode where the CDM19 is wrongly issued. With this patch we modify the check in both mmc_(sd|sdio)_init_uhs_card() functions to take the proper decision only according to the actual timing specification. Cc: stable@vger.kernel.org Signed-off-by: Carlo Caione Signed-off-by: Ulf Hansson drivers/mmc/core/sd.c | 8 ++++---- drivers/mmc/core/sdio.c | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) commit f5abc767bffb953438074d5cc4723e6da8dbcf71 Author: Linus Walleij Date: Mon Jan 4 02:22:08 2016 +0100 mmc: mmci: support 8bit mode on the Nomadik The Nomadik variant supports 8bit mode for (e)MMC cards. Signed-off-by: Linus Walleij Signed-off-by: Ulf Hansson drivers/mmc/host/mmci.c | 1 + 1 file changed, 1 insertion(+) commit 0bcb7efdff63564e80fe84dd36a9fbdfbf6697a4 Author: Linus Walleij Date: Mon Jan 4 02:21:55 2016 +0100 mmc: mmci: fix an ages old detection error commit 4956e10903fd ("ARM: 6244/1: mmci: add variant data and default MCICLOCK support") added variant data for ARM, U300 and Ux500 variants. The Nomadik NHK8815/8820 variant was erroneously labeled as a U300 variant, and when the proper Nomadik variant was later introduced in commit 34fd421349ff ("ARM: 7378/1: mmci: add support for the Nomadik MMCI variant") this was not fixes. Let's say this fixes the latter commit as there was no proper Nomadik support until then. Cc: stable@vger.kernel.org Fixes: 34fd421349ff ("ARM: 7378/1: mmci: add support for the Nomadik...") Signed-off-by: Linus Walleij Signed-off-by: Ulf Hansson drivers/mmc/host/mmci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 91815d8aa7e2f45d30e51caa297061ad893628d9 Author: Libin Yang Date: Thu Jan 14 14:09:00 2016 +0800 ALSA: hda - add codec support for Kabylake display audio codec This patch adds codec ID (0x8086280b) for Kabylake display codec and apply the hsw fix-ups to Kabylake. Signed-off-by: Libin Yang Signed-off-by: Takashi Iwai sound/pci/hda/patch_hdmi.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 7030a7e9321166eef44c811fe4af4d460360d424 Author: Dan Carpenter Date: Wed Jan 13 15:39:40 2016 +0300 x86/cpu/amd: Remove an unneeded condition in srat_detect_node() Originally we calculated ht_nodeid as "ht_nodeid = apicid - boot_cpu_id;" so presumably it could be negative. But after commit: 01aaea1afbcd ('x86: introduce initial apicid') we use c->initial_apicid which is an unsigned short and thus always >= 0. It causes a static checker warning to test for impossible conditions so let's remove it. Signed-off-by: Dan Carpenter Cc: Andy Lutomirski Cc: Aravind Gopalakrishnan Cc: Borislav Petkov Cc: Hector Marco-Gisbert Cc: Huang Rui Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Yinghai Lu Link: http://lkml.kernel.org/r/20160113123940.GE19993@mwanda Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/amd.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 9fb41166076b197318807a5f1829911450b43218 Author: Lee Jones Date: Wed Oct 28 16:54:29 2015 +0000 mfd: davinci_voicecodec: Remove pointless 'out of memory' error message WARNING: Possible unnecessary 'out of memory' message + if (!davinci_vc) { + dev_dbg(&pdev->dev, total: 0 errors, 1 warnings, 154 lines checked Signed-off-by: Lee Jones drivers/mfd/davinci_voicecodec.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 997eea4691c5475765566dbaeb38bb60700c54bb Author: Lee Jones Date: Wed Oct 28 16:53:04 2015 +0000 mfd: da9052-irq: Fix trivial 'space before comma' error ERROR: space prohibited before that ',' (ctx:WxW) + da9052_free_irq(da9052, DA9052_IRQ_ADC_EOM , da9052); total: 1 errors, 0 warnings, 290 lines checked Cc: Support Opensource Signed-off-by: Lee Jones drivers/mfd/da9052-irq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5b7b2ac1529429c22aacc7cbd6704d6c267e8a9c Author: Lee Jones Date: Wed Oct 28 16:51:11 2015 +0000 mfd: da9052-i2c: Fix tabbing/whitespace issue WARNING: suspect code indent for conditional statements (8, 24) + if (!i2c_safe_reg(reg)) + return regmap_read(da9052->regmap, total: 0 errors, 1 warnings, 226 lines checked Cc: Support Opensource Signed-off-by: Lee Jones drivers/mfd/da9052-i2c.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8b2775787f2ef0959518206b9df0e6a83ef11496 Author: Lee Jones Date: Wed Oct 28 16:47:00 2015 +0000 mfd: da903x: Fix white space and split string issues While we're at it, let's also match the MODULE_LICENSE with the header. WARNING: please, no space before tabs + * ^IMike Rapoport $ WARNING: please, no space before tabs + * ^IEric Miao $ WARNING: quoted string split across lines +MODULE_AUTHOR("Eric Miao " + "Mike Rapoport "); total: 0 errors, 3 warnings, 574 lines checked Cc: Support Opensource Signed-off-by: Lee Jones drivers/mfd/da903x.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 740c19895917d9a25abea65fb20fb13af764ac09 Author: Lee Jones Date: Wed Oct 28 16:44:58 2015 +0000 mfd: cs5535-mfd: Add missing line spacing and make local array static WARNING: Missing a blank line after declarations + struct resource *res; + res = platform_get_resource(pdev, IORESOURCE_IO, 0); WARNING: char * array declaration might be better as static const + const char *acpi_clones[] = { "olpc-xo1-pm-acpi", "olpc-xo1-sci-acpi" }; total: 0 errors, 2 warnings, 192 lines checked Signed-off-by: Lee Jones drivers/mfd/cs5535-mfd.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 8827a642a4635d5e696037f9213cb1d015d4cec3 Author: Lee Jones Date: Wed Oct 28 16:42:45 2015 +0000 mfd: cros_ec_spi: Repair comparison ordering issue WARNING: Comparisons should place the constant on the right side of the test + BUG_ON(EC_MSG_PREAMBLE_COUNT > ec_dev->din_size); WARNING: Comparisons should place the constant on the right side of the test + BUG_ON(EC_MSG_PREAMBLE_COUNT > ec_dev->din_size); total: 0 errors, 2 warnings, 731 lines checked Signed-off-by: Lee Jones drivers/mfd/cros_ec_spi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2756db6c63662a179d1a59be2c0fa260dbd1b2fc Author: Lee Jones Date: Wed Oct 28 16:02:48 2015 +0000 mfd: cros_ec_i2c: Fix trivial 'tabs before spaces' whitespace issue. ERROR: code indent should use tabs where possible + ^Iec_dev = devm_kzalloc(dev, sizeof(*ec_dev), GFP_KERNEL);$ WARNING: please, no space before tabs + ^Iec_dev = devm_kzalloc(dev, sizeof(*ec_dev), GFP_KERNEL);$ WARNING: please, no spaces at the start of a line + ^Iec_dev = devm_kzalloc(dev, sizeof(*ec_dev), GFP_KERNEL);$ total: 1 errors, 2 warnings, 366 lines checked Signed-off-by: Lee Jones drivers/mfd/cros_ec_i2c.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d43c4290ff5c37e5ba8702301ad51786a37979ed Author: Lee Jones Date: Wed Oct 28 14:11:23 2015 +0000 mfd: asic3: Fix a plethora of Checkpatch errors and warnings ERROR: Macros with complex values should be enclosed in parentheses +#define INIT_CDEX(_name, _rate) \ + [ASIC3_CLOCK_##_name] = { \ + .cdex = CLOCK_CDEX_##_name, \ + .rate = _rate, \ + } WARNING: line over 80 characters + ASIC3_GPIO_INT_STATUS); WARNING: void function return statements are not generally useful + return; +} WARNING: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt + msleep(1); WARNING: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt + msleep(1); WARNING: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt + msleep(1); WARNING: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt + msleep(1); WARNING: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt + msleep(1); WARNING: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt + msleep(1); WARNING: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt + msleep(1); WARNING: line over 80 characters + asic->tmio_cnf = ioremap((ASIC3_SD_CONFIG_BASE >> asic->bus_shift) + WARNING: Prefer [subsystem eg: netdev]_err([subsystem]dev, ... then dev_err(dev, ... then p r_err(... to printk(KERN_ERR ... + printk(KERN_ERR "kzalloc failed\n"); WARNING: Possible unnecessary 'out of memory' message + if (asic == NULL) { + printk(KERN_ERR "kzalloc failed\n"); WARNING: Missing a blank line after declarations + int retval = 0; + retval = platform_driver_probe(&asic3_device_driver, asic3_probe); total: 1 errors, 13 warnings, 1081 lines checked Signed-off-by: Lee Jones drivers/mfd/asic3.c | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) commit ae487ae2ac56ebe02e12fed38047ed41e682ad9e Author: Lee Jones Date: Wed Oct 28 13:57:44 2015 +0000 mfd: as3711: Repair OOM and 'line over 80 chars' formatting warnings WARNING: Possible unnecessary 'out of memory' message + if (!pdata) { + dev_err(&client->dev, "Failed to allocate pdata\n"); WARNING: Possible unnecessary 'out of memory' message + if (!as3711) { + dev_err(&client->dev, "Memory allocation failed\n"); WARNING: line over 80 characters + dev_err(&client->dev, "regmap initialization failed: %d\n", ret); WARNING: line over 80 characters + /* We can reuse as3711_subdevs[], it will be copied in mfd_add_devices() */ WARNING: line over 80 characters + as3711_subdevs[AS3711_REGULATOR].platform_data = &pdata->regulator; WARNING: line over 80 characters + as3711_subdevs[AS3711_REGULATOR].pdata_size = sizeof(pdata->regulator); WARNING: line over 80 characters + as3711_subdevs[AS3711_BACKLIGHT].platform_data = &pdata->backlight; WARNING: line over 80 characters + as3711_subdevs[AS3711_BACKLIGHT].pdata_size = sizeof(pdata->backlight); total: 0 errors, 8 warnings, 236 lines checked Signed-off-by: Lee Jones drivers/mfd/as3711.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) commit 9f6e872a7003ea6b7f38bcfd5ee6c1e05b18672b Author: Lee Jones Date: Wed Oct 28 13:54:07 2015 +0000 mfd: arizona-i2c: Add blank line formatting after declaration WARNING: Missing a blank line after declarations + struct arizona *arizona = dev_get_drvdata(&i2c->dev); + arizona_dev_exit(arizona); total: 0 errors, 1 warnings, 120 lines checked Cc: patches@opensource.wolfsonmicro.com Acked-by: Charles Keepax Signed-off-by: Lee Jones drivers/mfd/arizona-i2c.c | 2 ++ 1 file changed, 2 insertions(+) commit b79a980f7161ca09855cc641091d1afe4ef08dd8 Author: Lee Jones Date: Wed Oct 28 12:42:30 2015 +0000 mfd: arizona-core: msleep() is unreliable for anything <20ms use usleep_range() instead WARNING: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt + msleep(1); WARNING: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt + msleep(5); WARNING: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt + msleep(1); WARNING: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt + msleep(1); total: 0 errors, 4 warnings, 1407 lines checked Cc: patches@opensource.wolfsonmicro.com Acked-by: Charles Keepax Signed-off-by: Lee Jones drivers/mfd/arizona-core.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 3103d44e4509f6da8b667d185b45eb0ae0beaa85 Author: Lee Jones Date: Wed Oct 28 12:21:12 2015 +0000 mfd: adp5520: Some trivial 'no space before tab' fixes WARNING: please, no space before tabs + * ^IMike Rapoport $ WARNING: please, no space before tabs + * ^IEric Miao $ WARNING: please, no space before tabs +^I.id_table ^I= adp5520_id,$ total: 0 errors, 3 warnings, 365 lines checked Cc: Michael Hennerich Signed-off-by: Lee Jones drivers/mfd/adp5520.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 63b4fd7502790b16257396cc0270fa698bdec2b1 Author: Lee Jones Date: Wed Oct 28 11:11:05 2015 +0000 mfd: ab8500-sysctrl: Fix Constify, printk => pr_info and formatting issues WARNING: char * array declaration might be better as static const + static char *pss[] = {"ab8500_ac", "pm2301", "ab8500_usb"}; WARNING: Prefer [subsystem eg: netdev]_info([subsystem]dev, ... then dev_info(dev, ... then pr_info(... to printk(KERN_INFO ... + printk(KERN_INFO WARNING: quoted string split across lines + "Charger \"%s\" is connected with known battery." + " Rebooting.\n", WARNING: quoted string split across lines + "unable to set sysClkReq%dRfClkBuf: " + "%d\n", j + 1, ret); total: 0 errors, 4 warnings, 199 lines checked Cc: Linus Walleij Signed-off-by: Lee Jones drivers/mfd/ab8500-sysctrl.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit df36442cfe2689e1b26c9633c17a28a9fe4e91ec Author: Lee Jones Date: Wed Oct 28 10:32:10 2015 +0000 mfd: ab8500-gpadc: Squash a whole bunch of Checkpatch warnings and one error WARNING: line over 80 characters +#define ADC_CH_IBAT_MIN (-6000) /* mA range measured by ADC for ib t*/ WARNING: line over 80 characters +#define ADC_CH_IBAT_MIN_V (-60) /* mV range measured by ADC for ibat*/ WARNING: suspect code indent for conditional statements (16, 20) + if (!strcmp(name, dev_name(gpadc->dev))) + return gpadc; WARNING: suspect code indent for conditional statements (0, 16) +if (ad_value < 0) { + dev_err(gpadc->dev, "GPADC raw value failed ch: %d\n", WARNING: quoted string split across lines + dev_err(gpadc->dev, "GPADC to voltage conversion failed ch:" + " %d AD: 0x%x\n", channel, ad_value); WARNING: Missing a blank line after declarations + int raw_data; + raw_data = ab8500_gpadc_double_read_raw(gpadc, channel, WARNING: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt + msleep(10); ERROR: else should follow close brace '}' + } + else WARNING: line over 80 characters + delay_max = 10000; /* large range to optimise sleep mode */ WARNING: line over 80 characters + gpadc->cal_data[ADC_INPUT_IBAT].gain = V_gain * V2A_gain; WARNING: line over 80 characters + gpadc = devm_kzalloc(&pdev->dev, sizeof(struct ab8500_gpadc), GFP_KERNEL); WARNING: Possible unnecessary 'out of memory' message + if (!gpadc) { + dev_err(&pdev->dev, "Error: No memory\n"); WARNING: space prohibited before semicolon + return ; WARNING: void function return statements are not generally useful + return ; +} WARNING: quoted string split across lines +MODULE_AUTHOR("Arun R Murthy, Daniel Willerud, Johan Palsson," + "M'boumba Cedric Madianga"); total: 1 errors, 14 warnings, 1089 lines checked Cc: Linus Walleij Signed-off-by: Lee Jones drivers/mfd/ab8500-gpadc.c | 145 +++++++++++++++++++++++---------------------- 1 file changed, 73 insertions(+), 72 deletions(-) commit de6a76933317a4dee9b33e1989623cf31098e2ff Author: Lee Jones Date: Wed Oct 28 09:27:32 2015 +0000 mfd: ab8500-debugfs: Clean-up non-conforming commenting and print formatting WARNING: Block comments use a trailing */ on a separate line + * not be accessed from here */ WARNING: Block comments use a trailing */ on a separate line + * not be accessed from here */ WARNING: Block comments use a trailing */ on a separate line + * the output is wanted in any case */ WARNING: Consecutive strings are generally better as a single string + " addr=0x%08X, mask=0x%X, shift=%d" "value=0x%X\n", total: 0 errors, 4 warnings, 3331 lines checked Cc: Linus Walleij Signed-off-by: Lee Jones drivers/mfd/ab8500-debugfs.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) commit 500e69a1011d66897a08e000d92bcfd39372337e Author: Lee Jones Date: Wed Oct 28 09:15:02 2015 +0000 mfd: ab8500-core: Fix many warnings reported by Checkpatch WARNING: Block comments use a trailing */ on a separate line + * */ WARNING: Block comments use a trailing */ on a separate line + * bank on higher 8 bits and reg in lower */ WARNING: Block comments use a trailing */ on a separate line + * bank on higher 8 bits and reg in lower */ WARNING: suspect code indent for conditional statements (8, 24) + if (unlikely(*offset == 17)) + *offset = 24; WARNING: suspect code indent for conditional statements (8, 24) + if (unlikely(*offset == 16)) + *offset = 25; WARNING: suspect code indent for conditional statements (8, 24) + if ((i == 3) && (*offset >= 24)) + *offset += 2; WARNING: ENOSYS means 'invalid syscall nr' and nothing else + return -ENOSYS; WARNING: static const char * array should probably be static const char * const + static const char *switch_off_status[] = { WARNING: static const char * array should probably be static const char * const + static const char *turn_on_status[] = { total: 0 errors, 9 warnings, 1867 lines checked Cc: Linus Walleij Signed-off-by: Lee Jones drivers/mfd/ab8500-core.c | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) commit 845b76f891999f98b7acb439768c9d50959d29e1 Author: Lee Jones Date: Wed Oct 28 09:08:22 2015 +0000 mfd: ab2100-otp: Remove pointless 'out of memory' error message WARNING: Possible unnecessary 'out of memory' message + if (!otp) { + dev_err(&pdev->dev, "could not allocate AB3100 OTP device\n"); total: 0 errors, 1 warnings, 250 lines checked Cc: Linus Walleij Signed-off-by: Lee Jones drivers/mfd/ab3100-otp.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 15544cab2880c6990704ff91c0f11c5ccc3aafad Author: Lee Jones Date: Tue Oct 27 16:19:31 2015 +0000 mfd: ab3100-core.c: Fix multiple warnings reported by Checkpatch WARNING: Missing a blank line after declarations + struct ab3100 *ab3100 = dev_get_drvdata(dev->parent); + if (!ab3100->startup_events_read) WARNING: Possible unnecessary 'out of memory' message + if (!ab3100) { + dev_err(&client->dev, "could not allocate AB3100 device\n"); WARNING: else is not generally useful after a break or return + break; + } else { total: 0 errors, 3 warnings, 996 lines checked Cc: Linus Walleij Signed-off-by: Lee Jones drivers/mfd/ab3100-core.c | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) commit 4374b20c6c4fa8533e932567be9cd8872286da95 Author: Lee Jones Date: Tue Oct 27 16:14:06 2015 +0000 mfd: aat2870-core: Remove unnecessary 'out of memory' message WARNING: Possible unnecessary 'out of memory' message + if (!aat2870) { + dev_err(&client->dev, total: 0 errors, 1 warnings, 524 lines checked Signed-off-by: Lee Jones drivers/mfd/aat2870-core.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit f90dff44641dedea02b1549a9dd5c00bae9230da Author: Lee Jones Date: Tue Oct 27 16:12:21 2015 +0000 mfd: 88pm860x-core: Fix commenting and declaration spacing Checkpatch output: WARNING: Block comments use a trailing */ on a separate line + * - turn off */ WARNING: Missing a blank line after declarations + int ret; + ret = i2c_add_driver(&pm860x_driver); total: 0 errors, 2 warnings, 1283 lines checked Signed-off-by: Lee Jones drivers/mfd/88pm860x-core.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 0b81995148f80f4fa0ce19e66d2e66abe82f456a Author: Charles Keepax Date: Fri Jan 8 11:29:42 2016 +0000 mfd: arizona: Add device tree binding documentation for new clock driver Specify the device tree binding for the input clocks to Arizona devices. Signed-off-by: Charles Keepax Acked-by: Rob Herring Signed-off-by: Lee Jones Documentation/devicetree/bindings/mfd/arizona.txt | 7 +++++++ 1 file changed, 7 insertions(+) commit 1b5420e1f587b05de49b36472fefad5949042d00 Author: Geliang Tang Date: Mon Dec 28 23:00:14 2015 +0800 mfd: Use to_i2c_client() instead of open-coding it Signed-off-by: Geliang Tang Signed-off-by: Lee Jones drivers/mfd/88pm80x.c | 4 ++-- drivers/mfd/88pm860x-core.c | 4 ++-- drivers/mfd/max14577.c | 4 ++-- drivers/mfd/max77686.c | 4 ++-- drivers/mfd/max77693.c | 4 ++-- drivers/mfd/max77843.c | 4 ++-- drivers/mfd/max8925-i2c.c | 4 ++-- drivers/mfd/max8997.c | 8 ++++---- drivers/mfd/max8998.c | 8 ++++---- drivers/mfd/sec-core.c | 4 ++-- 10 files changed, 24 insertions(+), 24 deletions(-) commit 5d1d147f040253cbdccc6dbdd14a002403cf8490 Author: Krzysztof Kozlowski Date: Fri Dec 4 10:10:05 2015 +0900 dt-bindings: regulator/mfd: Reorganize S2MPA01 bindings The mfd/s2mpa01.txt duplicates some of the information about bindings with old mfd/s2mps11.txt. Now common part exists entirely in mfd/samsung,sec-core.txt so: - add company prefix to file name (regulator/samsung,s2mpa01.txt), - remove duplicated information, - reorganize the contents to match style of regulator/samsung,s2mps11.txt. Signed-off-by: Krzysztof Kozlowski Acked-by: Mark Brown Acked-by: Rob Herring Signed-off-by: Lee Jones Documentation/devicetree/bindings/mfd/s2mpa01.txt | 90 ---------------------- .../devicetree/bindings/mfd/samsung,sec-core.txt | 4 +- .../bindings/regulator/samsung,s2mpa01.txt | 79 +++++++++++++++++++ 3 files changed, 82 insertions(+), 91 deletions(-) commit 27383ca93b58dfb552ff51fc55fe48006d3c7d99 Author: Krzysztof Kozlowski Date: Fri Dec 4 10:10:04 2015 +0900 dt-bindings: regulator/mfd: Reorganize S5M8767 bindings The regulator/s5m8767-regulator.txt duplicates some of the information about bindings with old mfd/s2mps11.txt. Now common part exists entirely in mfd/samsung,sec-core.txt so: - add company prefix to file name (regulator/samsung,s5m8767.txt), - remove duplicated information, - reorganize the contents to match style of regulator/samsung,s2mps11.txt. Signed-off-by: Krzysztof Kozlowski Acked-by: Mark Brown Acked-by: Rob Herring Signed-off-by: Lee Jones .../devicetree/bindings/mfd/samsung,sec-core.txt | 4 +- .../bindings/regulator/s5m8767-regulator.txt | 163 --------------------- .../bindings/regulator/samsung,s5m8767.txt | 145 ++++++++++++++++++ MAINTAINERS | 2 +- 4 files changed, 149 insertions(+), 165 deletions(-) commit a13c7c51fd91deb7a8a8535ff14fed283f1a2187 Author: Krzysztof Kozlowski Date: Fri Dec 4 10:10:03 2015 +0900 dt-bindings: regulator/clock/mfd: Reorganize S2MPS-family bindings Bindings for Samsung S2M and S5M family PMICs are in mess. They are spread over different files and subdirectories in a non-consistent way. The devices and respective drivers for them share a lot in common so everything could be organized in a more readable way. Reorganize the S2MPS11/13/14/15 Device Tree bindings to match the drivers for this family of devices: - move mfd/s2mps11.txt to mfd/samsung,sec-core.txt for the main MFD driver (common for entire family), - split clock block to clock/samsung,s2mps11.txt, - split regulator block to regulator/samsung,s2mps11.txt. Signed-off-by: Krzysztof Kozlowski Acked-by: Michael Turquette Acked-by: Rob Herring Acked-by: Mark Brown Signed-off-by: Lee Jones .../devicetree/bindings/clock/samsung,s2mps11.txt | 49 +++++++ Documentation/devicetree/bindings/mfd/s2mps11.txt | 153 --------------------- .../devicetree/bindings/mfd/samsung,sec-core.txt | 84 +++++++++++ .../bindings/regulator/samsung,s2mps11.txt | 102 ++++++++++++++ MAINTAINERS | 4 +- 5 files changed, 238 insertions(+), 154 deletions(-) commit f8e3a514bf98a94255bd1534a21aebaf795b7a13 Author: Linus Walleij Date: Tue Dec 22 15:47:05 2015 +0100 mfd: asic3: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Cc: Paul Parsons Signed-off-by: Linus Walleij Signed-off-by: Lee Jones drivers/mfd/asic3.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit fe0b486729e1ae837cf0afd1005d3c10a78f9807 Author: Linus Walleij Date: Tue Dec 22 15:47:31 2015 +0100 mfd: dm355evm_mps: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Signed-off-by: Linus Walleij Signed-off-by: Lee Jones drivers/mfd/dm355evm_msp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f7d623669648d2a8d7e81671294c26e480ddcc79 Author: Linus Walleij Date: Tue Dec 22 15:47:39 2015 +0100 mfd: htc-egpio: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Cc: Philipp Zabel Signed-off-by: Linus Walleij Signed-off-by: Lee Jones drivers/mfd/htc-egpio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2d5f72b85a8876088be77cee3a7bdee4c0259085 Author: Linus Walleij Date: Tue Dec 22 15:47:55 2015 +0100 mfd: tc6393xb: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Cc: Dmitry Baryshkov Signed-off-by: Linus Walleij Signed-off-by: Lee Jones drivers/mfd/tc6393xb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bf3de47f1af3dab8fb8c3a3bd21ada7de614b7de Author: Linus Walleij Date: Tue Dec 22 15:48:13 2015 +0100 mfd: tps65010: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. This also start to propagate the negative error code from the smbus call if there is one, as the last commit of this series will make the gpiolib core deal with that properly. Signed-off-by: Linus Walleij Signed-off-by: Lee Jones drivers/mfd/tps65010.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2895b2cad6e7a95104cf396e5330054453382ae1 Author: Mans Rullgard Date: Mon Jan 11 13:04:29 2016 +0000 dmaengine: dw: fix cyclic transfer callbacks Cyclic transfer callbacks rely on block completion interrupts which were disabled in commit ff7b05f29fd4 ("dmaengine/dw_dmac: Don't handle block interrupts"). This re-enables block interrupts so the cyclic callbacks can work. Other transfer types are not affected as they set the INT_EN bit only on the last block. Fixes: ff7b05f29fd4 ("dmaengine/dw_dmac: Don't handle block interrupts") Signed-off-by: Mans Rullgard Reviewed-by: Viresh Kumar Signed-off-by: Vinod Koul Cc: drivers/dma/dw/core.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) commit df3bb8a0e619d501cd13334c3e0586edcdcbc716 Author: Mans Rullgard Date: Mon Jan 11 13:04:28 2016 +0000 dmaengine: dw: fix cyclic transfer setup Commit 61e183f83069 ("dmaengine/dw_dmac: Reconfigure interrupt and chan_cfg register on resume") moved some channel initialisation to a new function which must be called before starting a transfer. This updates dw_dma_cyclic_start() to use dwc_dostart() like the other modes, thus ensuring dwc_initialize() gets called and removing some code duplication. Fixes: 61e183f83069 ("dmaengine/dw_dmac: Reconfigure interrupt and chan_cfg register on resume") Signed-off-by: Mans Rullgard Reviewed-by: Viresh Kumar Signed-off-by: Vinod Koul Cc: drivers/dma/dw/core.c | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) commit 7fdec82af6a9e190e53d07a1463d2a9ac49a8750 Merge: f9a03ae dde7f55 Author: Linus Torvalds Date: Wed Jan 13 21:15:18 2016 -0800 Merge tag 'xfs-for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs Pull xfs updates from Dave Chinner: "There's not a lot in this - the main addition is the CRC validation of the entire region of the log that the will be recovered, along with several log recovery fixes. Most of the rest is small bug fixes and cleanups. I have three bug fixes still pending, all that address recently fixed regressions that I will send to next week after they've had some time in for-next. Summary: - extensive CRC validation during log recovery - several log recovery bug fixes - Various DAX support fixes - AGFL size calculation fix - various cleanups in preparation for new functionality - project quota ENOSPC notification via netlink - tracing and debug improvements" * tag 'xfs-for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs: (26 commits) xfs: handle dquot buffer readahead in log recovery correctly xfs: inode recovery readahead can race with inode buffer creation xfs: eliminate committed arg from xfs_bmap_finish xfs: bmapbt checking on debug kernels too expensive xfs: add tracepoints to readpage calls xfs: debug mode log record crc error injection xfs: detect and trim torn writes during log recovery xfs: fix recursive splice read locking with DAX xfs: Don't use reserved blocks for data blocks with DAX XFS: Use a signed return type for suffix_kstrtoint() libxfs: refactor short btree block verification libxfs: pack the agfl header structure so XFS_AGFL_SIZE is correct libxfs: use a convenience variable instead of open-coding the fork xfs: fix log ticket type printing libxfs: make xfs_alloc_fix_freelist non-static xfs: make xfs_buf_ioend_async() static xfs: send warning of project quota to userspace via netlink xfs: get mp from bma->ip in xfs_bmap code xfs: print name of verifier if it fails libxfs: Optimize the loop for xfs_bitmap_empty ... commit f9a03ae123c92c1f45cd2ca88d0f6edd787be78c Merge: 1289ace 447135a Author: Linus Torvalds Date: Wed Jan 13 21:01:44 2016 -0800 Merge tag 'for-f2fs-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs Pull f2fs updates from Jaegeuk Kim: "This series adds two ioctls to control cached data and fragmented files. Most of the rest fixes missing error cases and bugs that we have not covered so far. Summary: Enhancements: - support an ioctl to execute online file defragmentation - support an ioctl to flush cached data - speed up shrinking of extent_cache entries - handle broken superblock - refector dirty inode management infra - revisit f2fs_map_blocks to handle more cases - reduce global lock coverage - add detecting user's idle time Major bug fixes: - fix data race condition on cached nat entries - fix error cases of volatile and atomic writes" * tag 'for-f2fs-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (87 commits) f2fs: should unset atomic flag after successful commit f2fs: fix wrong memory condition check f2fs: monitor the number of background checkpoint f2fs: detect idle time depending on user behavior f2fs: introduce time and interval facility f2fs: skip releasing nodes in chindless extent tree f2fs: use atomic type for node count in extent tree f2fs: recognize encrypted data in f2fs_fiemap f2fs: clean up f2fs_balance_fs f2fs: remove redundant calls f2fs: avoid unnecessary f2fs_balance_fs calls f2fs: check the page status filled from disk f2fs: introduce __get_node_page to reuse common code f2fs: check node id earily when readaheading node page f2fs: read isize while holding i_mutex in fiemap Revert "f2fs: check the node block address of newly allocated nid" f2fs: cover more area with nat_tree_lock f2fs: introduce max_file_blocks in sbi f2fs crypto: check CONFIG_F2FS_FS_XATTR for encrypted symlink f2fs: introduce zombie list for fast shrinking extent trees ... commit b4d7f161feb3015d6306e1d35b565c888ff70c9d Author: Greg Kurz Date: Wed Jan 13 18:28:17 2016 +0100 KVM: PPC: Fix ONE_REG AltiVec support The get and set operations got exchanged by mistake when moving the code from book3s.c to powerpc.c. Fixes: 3840edc8033ad5b86deee309c1c321ca54257452 Cc: stable@vger.kernel.org # 3.18+ Signed-off-by: Greg Kurz Signed-off-by: Paul Mackerras arch/powerpc/kvm/powerpc.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 1289ace5b4f70f1e68ce785735b82c7e483de863 Merge: d080827 abaee09 Author: Linus Torvalds Date: Wed Jan 13 19:37:36 2016 -0800 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 driver updates from the usual suspects (bfa, arcmsr, scsi_dh_alua, lpfc, storvsc, cxlflash). The major change is the addition of the hisi_sas driver, which is an ARM platform device for SAS. The other change of note is an enormous style transformation to the atp870u driver (which is our worst written SCSI driver)" * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (169 commits) cxlflash: Enable device id for future IBM CXL adapter cxlflash: Resolve oops in wait_port_offline cxlflash: Fix to resolve cmd leak after host reset cxlflash: Removed driver date print cxlflash: Fix to avoid virtual LUN failover failure cxlflash: Fix to escalate LINK_RESET also on port 1 storvsc: Tighten up the interrupt path storvsc: Refactor the code in storvsc_channel_init() storvsc: Properly support Fibre Channel devices storvsc: Fix a bug in the layout of the hv_fc_wwn_packet mvsas: Add SGPIO support to Marvell 94xx mpt3sas: A correction in unmap_resources hpsa: Add box and bay information for enclosure devices hpsa: Change SAS transport devices to bus 0. hpsa: fix path_info_show cciss: print max outstanding commands as a hex value scsi_debug: Increase the reported optimal transfer length lpfc: Update version to 11.0.0.10 for upstream patch set lpfc: Use kzalloc instead of kmalloc lpfc: Delete unnecessary checks before the function call "mempool_destroy" ... commit d080827f850ba4df5b955d5ca8c8c0fc92fe18c0 Merge: cbd88cd 8b63b6b Author: Linus Torvalds Date: Wed Jan 13 19:15:14 2016 -0800 Merge tag 'libnvdimm-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm Pull libnvdimm updates from Dan Williams: "The bulk of this has appeared in -next and independently received a build success notification from the kbuild robot. The 'for-4.5/block- dax' topic branch was rebased over the weekend to drop the "block device end-of-life" rework that Al would like to see re-implemented with a notifier, and to address bug reports against the badblocks integration. There is pending feedback against "libnvdimm: Add a poison list and export badblocks" received last week. Linda identified some localized fixups that we will handle incrementally. Summary: - Media error handling: The 'badblocks' implementation that originated in md-raid is up-levelled to a generic capability of a block device. This initial implementation is limited to being consulted in the pmem block-i/o path. Later, 'badblocks' will be consulted when creating dax mappings. - Raw block device dax: For virtualization and other cases that want large contiguous mappings of persistent memory, add the capability to dax-mmap a block device directly. - Increased /dev/mem restrictions: Add an option to treat all io-memory as IORESOURCE_EXCLUSIVE, i.e. disable /dev/mem access while a driver is actively using an address range. This behavior is controlled via the new CONFIG_IO_STRICT_DEVMEM option and can be overridden by the existing "iomem=relaxed" kernel command line option. - Miscellaneous fixes include a 'pfn'-device huge page alignment fix, block device shutdown crash fix, and other small libnvdimm fixes" * tag 'libnvdimm-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: (32 commits) block: kill disk_{check|set|clear|alloc}_badblocks libnvdimm, pmem: nvdimm_read_bytes() badblocks support pmem, dax: disable dax in the presence of bad blocks pmem: fail io-requests to known bad blocks libnvdimm: convert to statically allocated badblocks libnvdimm: don't fail init for full badblocks list block, badblocks: introduce devm_init_badblocks block: clarify badblocks lifetime badblocks: rename badblocks_free to badblocks_exit libnvdimm, pmem: move definition of nvdimm_namespace_add_poison to nd.h libnvdimm: Add a poison list and export badblocks nfit_test: Enable DSMs for all test NFITs md: convert to use the generic badblocks code block: Add badblock management for gendisks badblocks: Add core badblock management code block: fix del_gendisk() vs blkdev_ioctl crash block: enable dax for raw block devices block: introduce bdev_file_inode() restrict /dev/mem to idle io memory ranges arch: consolidate CONFIG_STRICT_DEVM in lib/Kconfig.debug ... commit 3da834e3e5a4a5d26882955298b55a9ed37a00bc Author: Vladimir Zapolskiy Date: Thu Jan 7 05:07:07 2016 +0200 clk: remove duplicated COMMON_CLK_NXP record from clk/Kconfig Presumably the second COMMON_CLK_NXP config option in drivers/clk/Kconfig appeared after a merge conflict resolution, remove the wrong record of two. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Michael Turquette drivers/clk/Kconfig | 5 ----- 1 file changed, 5 deletions(-) commit acb2cfdb316ddc3fac8183c0f71edd1680713b10 Merge: 607259e b197367 Author: James Morris Date: Thu Jan 14 12:11:58 2016 +1100 Merge branch 'upstream' of git://git.infradead.org/users/pcmoore/selinux into next commit 1501efadc524a0c99494b576923091589a52d2a4 Author: Dan Williams Date: Wed Jan 13 16:00:07 2016 -0800 md/raid: only permit hot-add of compatible integrity profiles It is not safe for an integrity profile to be changed while i/o is in-flight in the queue. Prevent adding new disks or otherwise online spares to an array if the device has an incompatible integrity profile. The original change to the blk_integrity_unregister implementation in md, commmit c7bfced9a671 "md: suspend i/o during runtime blk_integrity_unregister" introduced an immediate hang regression. This policy of disallowing changes the integrity profile once one has been established is shared with DM. Here is an abbreviated log from a test run that: 1/ Creates a degraded raid1 with an integrity-enabled device (pmem0s) [ 59.076127] 2/ Tries to add an integrity-disabled device (pmem1m) [ 90.489209] 3/ Retries with an integrity-enabled device (pmem1s) [ 205.671277] [ 59.076127] md/raid1:md0: active with 1 out of 2 mirrors [ 59.078302] md: data integrity enabled on md0 [..] [ 90.489209] md0: incompatible integrity profile for pmem1m [..] [ 205.671277] md: super_written gets error=-5 [ 205.677386] md/raid1:md0: Disk failure on pmem1m, disabling device. [ 205.677386] md/raid1:md0: Operation continuing on 1 devices. [ 205.683037] RAID1 conf printout: [ 205.684699] --- wd:1 rd:2 [ 205.685972] disk 0, wo:0, o:1, dev:pmem0s [ 205.687562] disk 1, wo:1, o:1, dev:pmem1s [ 205.691717] md: recovery of RAID array md0 Fixes: c7bfced9a671 ("md: suspend i/o during runtime blk_integrity_unregister") Cc: Cc: Mike Snitzer Reported-by: NeilBrown Signed-off-by: Dan Williams Signed-off-by: NeilBrown drivers/md/md.c | 28 ++++++++++++++++------------ drivers/md/md.h | 2 +- drivers/md/multipath.c | 6 +++--- drivers/md/raid1.c | 6 +++--- drivers/md/raid10.c | 6 +++--- 5 files changed, 26 insertions(+), 22 deletions(-) commit 7aafc405ce5b706195e5df26305a0241b01d8d06 Author: NeilBrown Date: Fri Jan 8 14:11:02 2016 +1100 Remove myself as MD Maintainer, and add to Credits. Signed-off-by: NeilBrown CREDITS | 1 + MAINTAINERS | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) commit 16a43f6a65002ba9a5b063764b4ad5d288a1c15e Author: Shaohua Li Date: Wed Jan 6 14:37:15 2016 -0800 raid5-cache: handle journal hotadd in quiesce Handle journal hotadd in quiesce to avoid creating duplicated threads. Signed-off-by: Shaohua Li Signed-off-by: NeilBrown drivers/md/raid5-cache.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 87d4d91616e4db9b8293ba9d9e5a2f3f0d0c8aa6 Author: Shaohua Li Date: Wed Jan 6 14:37:14 2016 -0800 MD: add journal with array suspended Hot add journal disk in recovery thread context brings a lot of trouble as IO could be running. Unlike spare disk hot add, adding journal disk with array suspended makes more sense and implmentation is much easier. Signed-off-by: Shaohua Li Signed-off-by: NeilBrown drivers/md/md.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit a62ab49eb502a07814f9942770893118c6281223 Author: Shaohua Li Date: Wed Jan 6 14:37:13 2016 -0800 md: set MD_HAS_JOURNAL in correct places Set MD_HAS_JOURNAL when a array is loaded or journal is initialized. This is to avoid the flags set too early in journal disk hotadd. Signed-off-by: Shaohua Li Signed-off-by: NeilBrown drivers/md/md.c | 9 +++++---- drivers/md/raid5-cache.c | 1 + 2 files changed, 6 insertions(+), 4 deletions(-) commit 60539fa3a1e3caf458a943b1a14154e3fa44d0d1 Merge: abaee09 a290dd5 Author: James Bottomley Date: Wed Jan 13 16:29:30 2016 -0800 Merge remote-tracking branch 'mkp-scsi/4.5/scsi-queue' into misc commit 265b60497a57da56a4be7d5c72983ae89dc0765e Author: Liu Xiang Date: Sat Jan 9 22:10:39 2016 +0800 power: bq27xxx_battery: Fix bq27541 AveragePower register address Currently in bq27541 driver, the average power register address is incorrectly set to 0x76, which would result in an error: bq27xxx-battery 2-0055: error reading average power register 10: -11 According to the bq27541 datasheet, fix this problem by setting the average power register address to 0x24. Fixes: d74534c27775 ("power: bq27xxx_battery: Add support for additional bq27xxx family devices") Signed-off-by: Liu Xiang Acked-by: Andrew F. Davis Signed-off-by: Sebastian Reichel drivers/power/bq27xxx_battery.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fda3bec12d0979aae3f02ee645913d66fbc8a26e Author: CQ Tang Date: Wed Jan 13 21:15:03 2016 +0000 iommu/vt-d: Fix 64-bit accesses to 32-bit DMAR_GSTS_REG This is a 32-bit register. Apparently harmless on real hardware, but causing justified warnings in simulation. Signed-off-by: CQ Tang Signed-off-by: David Woodhouse Cc: stable@vger.kernel.org drivers/iommu/dmar.c | 2 +- drivers/iommu/intel_irq_remapping.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit be6bfc29bc759670fb3a2519325c4ab2edf259c9 Merge: a61674b 44451d4 Author: Michael Ellerman Date: Thu Jan 14 09:55:01 2016 +1100 Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/scottwood/linux into next Freescale updates from Scott: "Highlights include moving QE code out of arch/powerpc (to be shared with arm), device tree updates, and minor fixes." commit 183223770ae8625df8966ed15811d1b3ee8720aa Author: Gavin Shan Date: Thu Nov 5 00:12:49 2015 +1100 drivers/of: Export OF changeset functions The PowerNV PCI hotplug driver is going to use the OF changeset to manage the changed device sub-tree. This exports those OF changeset functions for that. Signed-off-by: Gavin Shan Acked-by: Wolfram Sang Tested-by: Wolfram Sang Signed-off-by: Rob Herring drivers/of/dynamic.c | 65 ++++++++++++++++++++++++++++++++++--------------- drivers/of/of_private.h | 2 ++ drivers/of/overlay.c | 8 +++--- drivers/of/unittest.c | 4 --- 4 files changed, 52 insertions(+), 27 deletions(-) commit e93d12ae3be91d18b2a46deebb90a3f516db3d3c Author: Arnd Bergmann Date: Wed Jan 13 23:04:08 2016 +0100 null_blk: use sector_div instead of do_div Dividing a sector_t number should be done using sector_div rather than do_div to optimize the 32-bit sector_t case, and with the latest do_div optimizations, we now get a compile-time warning for this: arch/arm/include/asm/div64.h:32:95: note: expected 'uint64_t * {aka long long unsigned int *}' but argument is of type 'sector_t * {aka long unsigned int *}' drivers/block/null_blk.c:521:81: warning: comparison of distinct pointer types lacks a cast This changes the newly added code to use sector_div. It is a simplified version of the original patch, as Linus Torvalds pointed out that we should not be using an expensive division function in the first place. This version was suggested by Matias Bjorling. Signed-off-by: Arnd Bergmann Cc: Matias Bjorling Fixes: b2b7e00148a2 ("null_blk: register as a LightNVM device") Signed-off-by: Jens Axboe drivers/block/null_blk.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit e9c5e7402dad6f4f04c2430db6f283512bcd4392 Author: Dave Airlie Date: Thu Jan 14 08:07:55 2016 +1000 drm/amdgpu: add missing irq.h include this fixes the build on arm. Signed-off-by: Dave Airlie drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 1 + 1 file changed, 1 insertion(+) commit d6f7a18c8adcb77ca9bfff2d7fb152ac685b73fd Merge: 06249e6 c74d8eb Author: Dave Airlie Date: Thu Jan 14 07:59:21 2016 +1000 Merge branch 'exynos-drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-next This 2nd pull request includes the following, - add configurable plane support and relevant cleanups. - fixup kernel panic issue at drm releasing. - remove unnecessary codes. This has been delayed to resolve a critical issue - which incurrs a kernel panic when driver is released - and review it. * 'exynos-drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos: drm/exynos: fix kernel panic issue at drm releasing drm/exynos: crtc: do not wait for the scanout completion drm/exynos: mixer: properly update all planes on the same vblank event drm/exynos: crtc: rework atomic_{begin,flush} drm/exynos: mixer: unify a check for video-processor window drm/exynos: mixer: also allow ARGB1555 and ARGB4444 drm/exynos: mixer: refactor layer setup drm/exynos: mixer: remove all static blending setup drm/exynos: mixer: set window priority based on zpos drm/exynos: make zpos property configurable drm/exynos: rename zpos to index commit 06249e69324209b41ba017f476764eba347b1127 Merge: c7753e9 c33246d Author: Dave Airlie Date: Thu Jan 14 07:58:06 2016 +1000 Merge branch 'drm-etnaviv-fixes' of git://git.pengutronix.de/git/lst/linux into drm-next etnaviv fixes. * 'drm-etnaviv-fixes' of git://git.pengutronix.de/git/lst/linux: drm/etnaviv: fix workaround for GC500 drm/etnaviv: unlock on error in etnaviv_gem_get_iova() commit c7753e905b510ed07efa2a2ade5a2cec0c394d66 Merge: a50e2bf 84e0540 Author: Dave Airlie Date: Thu Jan 14 07:57:24 2016 +1000 Merge branch 'drm-rockchip-next-2016-01-06' of https://github.com/markyzq/kernel-drm-rockchip into drm-next new rockchip bits. * 'drm-rockchip-next-2016-01-06' of https://github.com/markyzq/kernel-drm-rockchip: drm: rockchip: Support Synopsys DW MIPI DSI Documentation: dt-bindings: Add bindings for rk3288 DW MIPI DSI driver drm/rockchip: return a true clock rate to adjusted_mode commit a50e2bf5a0f674d62b69f51f6935a30e82bd015c Author: Thomas Hellstrom Date: Fri Jan 8 20:29:40 2016 +0100 drm/vmwgfx: Fix a width / pitch mismatch on framebuffer updates When the framebuffer is a vmwgfx dma buffer and a proxy surface is created, the vmw_kms_update_proxy() function requires that the proxy surface width and the framebuffer pitch are compatible, otherwise display corruption occurs as seen in gnome-shell/native with software 3D. Since the framebuffer pitch is determined by user-space, allocate a proxy surface the width of which is based on the framebuffer pitch rather than on the framebuffer width. Cc: Reported-by: Raphael Hertzog Tested-by: Mati Aharoni Signed-off-by: Thomas Hellstrom Reviewed-by: Brian Paul Signed-off-by: Dave Airlie drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit fb89ac5102ae2875d685c847e6b5dbc141622d43 Author: Thomas Hellstrom Date: Fri Jan 8 20:29:39 2016 +0100 drm/vmwgfx: Fix an incorrect lock check With CONFIG_SMP=n and CONFIG_DEBUG_SPINLOCK=y the vmwgfx kernel module would unconditionally throw a bug when checking for a held spinlock in the command buffer code. Fix this by using a lockdep check. Cc: Reported-and-tested-by: Tetsuo Handa Signed-off-by: Thomas Hellstrom Reviewed-by: Sinclair Yeh Signed-off-by: Dave Airlie drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 38b1751913c0244056205e456afc07d01fb2ee58 Author: Arnd Bergmann Date: Wed Jan 13 14:48:13 2016 +0100 drm: nouveau: fix nouveau_debugfs_init prototype The new debugfs initialization code fails to build when CONFIG_DEBUG_FS is disabled: In file included from /git/arm-soc/drivers/gpu/drm/nouveau/nouveau_drm.c:57:0: drivers/gpu/drm/nouveau/nouveau_debugfs.h: In function 'nouveau_debugfs_init': drivers/gpu/drm/nouveau/nouveau_debugfs.h:37:29: error: parameter name omitted nouveau_debugfs_init(struct nouveau_drm *) This fixes the prototypes so we can build it again. Signed-off-by: Arnd Bergmann Fixes: b126a200e9db ("drm/nouveau/debugfs: we need a ctrl object for debugfs") Signed-off-by: Dave Airlie drivers/gpu/drm/nouveau/nouveau_debugfs.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 25c80507dd9ed19a5eab9a847120865a17b198da Author: Karol Herbst Date: Tue Jan 12 22:52:14 2016 +0100 drm/nouveau/pci: fix check in nvkm_pcie_set_link v2: remove unneeded pci check Signed-off-by: Karol Herbst Signed-off-by: Dave Airlie drivers/gpu/drm/nouveau/nvkm/subdev/pci/pcie.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6cfd7775840cad7877b2b43e750105fa0933656b Merge: 8a0d560 d8e0cae Author: Dave Airlie Date: Thu Jan 14 07:56:07 2016 +1000 Merge branch 'drm-next-4.5' of git://people.freedesktop.org/~agd5f/linux into drm-next A few more misc things for radeon and amdgpu for 4.5: - TTM fixes for imported buffers - amdgpu fixes to avoid -ENOMEM in CS ioctl - CZ UVD and VCE clock force options for debugging video issues - A couple of ACP prerequisites - Misc fixes * 'drm-next-4.5' of git://people.freedesktop.org/~agd5f/linux: drm/amdgpu: validate duplicates first drm/amdgpu: move VM page tables to the LRU end on CS v2 drm/ttm: add ttm_bo_move_to_lru_tail function v2 drm/ttm: fix adding foreign BOs to the swap LRU drm/ttm: fix adding foreign BOs to the LRU during init v2 drm/radeon: use kobj_to_dev() drm/amdgpu: use kobj_to_dev() drm/amdgpu/cz: force vce clocks when sclks are forced drm/amdgpu/cz: force uvd clocks when sclks are forced drm/amdgpu/cz: add code to enable forcing VCE clocks drm/amdgpu/cz: add code to enable forcing UVD clocks drm/amdgpu: fix lost sync_to if scheduler is enabled. drm/amd/powerplay: fix static checker warning for return meaningless value. drm/amdgpu: add irq domain support drm/amdgpu/cgs: add an interface to access PCI resources commit cbd88cd4c07f9361914ab7fd7e21c9227986fe68 Merge: 928b3f1 c2ab728 Author: Linus Torvalds Date: Wed Jan 13 13:16:16 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux Pull s390 updates from Martin Schwidefsky: "Among the traditional bug fixes and cleanups are some improvements: - A tool to generated the facility lists, generating the bit fields by hand has been a source of bugs in the past - The spinlock loop is reordered to avoid bursts of hypervisor calls - Add support for the open-for-business interface to the service element - The get_cpu call is added to the vdso - A set of tracepoints is defined for the common I/O layer - The deprecated sclp_cpi module is removed - Update default configuration" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (56 commits) s390/sclp: fix possible control register corruption s390: fix normalization bug in exception table sorting s390/configs: update default configurations s390/vdso: optimize getcpu system call s390: drop smp_mb in vdso_init s390: rename struct _lowcore to struct lowcore s390/mem_detect: use unsigned longs s390/ptrace: get rid of long longs in psw_bits s390/sysinfo: add missing SYSIB 1.2.2 multithreading fields s390: get rid of CONFIG_SCHED_MC and CONFIG_SCHED_BOOK s390/Kconfig: remove pointless 64 bit dependencies s390/dasd: fix failfast for disconnected devices s390/con3270: testing return kzalloc retval s390/hmcdrv: constify hmcdrv_ftp_ops structs s390/cio: add NULL test s390/cio: Change I/O instructions from inline to normal functions s390/cio: Introduce common I/O layer tracepoints s390/cio: Consolidate inline assemblies and related data definitions s390/cio: Fix incorrect xsch opcode specification s390/cio: Remove unused inline assemblies ... commit e57e58bd390a6843db58560bf7b8341665d2e058 Author: David Woodhouse Date: Tue Jan 12 19:18:06 2016 +0000 iommu/vt-d: Fix mm refcounting to hold mm_count not mm_users Holding mm_users works OK for graphics, which was the first user of SVM with VT-d. However, it works less well for other devices, where we actually do a mmap() from the file descriptor to which the SVM PASID state is tied. In this case on process exit we end up with a recursive reference count: - The MM remains alive until the file is closed and the driver's release() call ends up unbinding the PASID. - The VMA corresponding to the mmap() remains intact until the MM is destroyed. - Thus the file isn't closed, even when exit_files() runs, because the VMA is still holding a reference to it. And the MM remains alive… To address this issue, we *stop* holding mm_users while the PASID is bound. We already hold mm_count by virtue of the MMU notifier, and that can be made to be sufficient. It means that for a period during process exit, the fun part of mmput() has happened and exit_mmap() has been called so the MM is basically defunct. But the PGD still exists and the PASID is still bound to it. During this period, we have to be very careful — exit_mmap() doesn't use mm->mmap_sem because it doesn't expect anyone else to be touching the MM (quite reasonably, since mm_users is zero). So we also need to fix the fault handler to just report failure if mm_users is already zero, and to temporarily bump mm_users while handling any faults. Additionally, exit_mmap() calls mmu_notifier_release() *before* it tears down the page tables, which is too early for us to flush the IOTLB for this PASID. And __mmu_notifier_release() removes every notifier from the list, so when exit_mmap() finally *does* tear down the mappings and clear the page tables, we don't get notified. So we work around this by clearing the PASID table entry in our MMU notifier release() callback. That way, the hardware *can't* get any pages back from the page tables before they get cleared. Hardware designers have confirmed that the resulting 'PASID not present' faults should be handled just as gracefully as 'page not present' faults, the important criterion being that they don't perturb the operation for any *other* PASID in the system. Signed-off-by: David Woodhouse Cc: stable@vger.kernel.org drivers/iommu/intel-svm.c | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) commit 928b3f12e5fea9d201bbc029d8d537ba7cc14fe7 Merge: 77a76b0 0f7f2f0 Author: Linus Torvalds Date: Wed Jan 13 12:49:04 2016 -0800 Merge tag 'please-pull-fixefi' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux Pull ia64 build fixes from Tony Luck: "The ARM guys broke the ia64 build ... but gave me fixes, so it's all good now" * tag 'please-pull-fixefi' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux: efi: include asm/early_ioremap.h not asm/efi.h to get early_memremap ia64: split off early_ioremap() declarations into asm/early_ioremap.h commit 701a0fd5231866db08cebcd502894699f49cb960 Author: wangweidong Date: Wed Jan 13 11:11:09 2016 +0800 hip04_eth: fix missing error handle for build_skb failed when build_skb failed, we should goto refill the buffer. Signed-off-by: Weidong Wang Acked-by: Ding Tainhong Signed-off-by: David S. Miller drivers/net/ethernet/hisilicon/hip04_eth.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit ee8413b01045c74340aa13ad5bdf905de32be736 Author: Takashi Iwai Date: Wed Jan 13 21:35:06 2016 +0100 ALSA: timer: Fix double unlink of active_list ALSA timer instance object has a couple of linked lists and they are unlinked unconditionally at snd_timer_stop(). Meanwhile snd_timer_interrupt() unlinks it, but it calls list_del() which leaves the element list itself unchanged. This ends up with unlinking twice, and it was caught by syzkaller fuzzer. The fix is to use list_del_init() variant properly there, too. Reported-by: Dmitry Vyukov Tested-by: Dmitry Vyukov Cc: Signed-off-by: Takashi Iwai sound/core/timer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a7fd9a4f3e8179bab31e4637236ebb0e0b7867c6 Author: Jens Axboe Date: Wed Jan 13 13:04:11 2016 -0700 lightnvm: ensure that nvm_dev_ops can be used without CONFIG_NVM null_blk defines an empty version of this ops structure if CONFIG_NVM isn't set, but it doesn't know the type. Move those bits out of the protection of CONFIG_NVM in the main lightnvm include. Signed-off-by: Jens Axboe include/linux/lightnvm.h | 121 +++++++++++++++++++++++++---------------------- 1 file changed, 64 insertions(+), 57 deletions(-) commit 1adbfc435f0897101443975fdbd20e8817ad5fd9 Merge: e752991 bab7c6c Author: David S. Miller Date: Wed Jan 13 14:57:42 2016 -0500 Merge tag 'batman-adv-fix-for-davem' of git://git.open-mesh.org/linux-merge Antonio Quartulli says: ==================== net: batman-adv 20160114 Included bugfixes: - avoid freeing batadv_hardif_neigh_node when still in use in other contexts - prevent lockdep splat in mcast_free during shutdown ==================== Signed-off-by: David S. Miller commit e752991a2e6a1dc33271a6299d5c1c8688f35f95 Merge: 3b780be 6e14441 Author: David S. Miller Date: Wed Jan 13 14:55:18 2016 -0500 Merge branch '3c59x-dma-fixes' Neil Horman says: ==================== 3c59x: Fix dma map/unmap imbalances recent enhancements to libdma revealed a few minor bugs in 3c59x, in which dma ranges were mapped as singles and unmaped as pages, or vice versa. These patches fix those up. Tested by myself with success ==================== Signed-off-by: David S. Miller commit 6e144419e4da11a9a4977c8d899d7247d94ca338 Author: Neil Horman Date: Wed Jan 13 12:43:54 2016 -0500 3c59x: fix another page map/single unmap imbalance libdma debug found another page map/unmap imbalance in 3c59x. Multi fragment frames are mapped such that the lead fragment was mapped as a single entry, while all other fragments were mapped as pages. However, on unmapping they were all unmapped as pages. Fix is pretty easy, just unmap the lead frag as a single entry, and bump the for loop initalization up by one so that all subsequent frags get unmapped as pages Signed-off-by: Neil Horman CC: "David S. Miller" CC: Steffen Klassert Signed-off-by: David S. Miller drivers/net/ethernet/3com/3c59x.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 7356f4e42490d91939521c70b04812d5a07bd0f2 Author: Neil Horman Date: Wed Jan 13 12:43:53 2016 -0500 3c59x: balance page maps and unmaps debug kernel noticed a screw up in 3c59x. skbs being mapped as page were being unmapped as singles. Easy fix. Tested by myself Signed-off-by: Neil Horman CC: Steffen Klassert Signed-off-by: David S. Miller drivers/net/ethernet/3com/3c59x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 77a76b04d2be1c45b8fd746b7ef754525029340c Merge: 50ae833 be0270e Author: Linus Torvalds Date: Wed Jan 13 11:46:37 2016 -0800 Merge tag 'media/v4.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media Pull second batch of media updates from Mauro Carvalho Chehab: "This is the second part of the media patches. It contains the media controller next generation patches, with is the result of one year of discussions and development. It also contains patches to enable media controller support at the DVB subsystem. The goal is to improve the media controller to allow proper support for other types of Video4Linux devices (radio and TV ones) and to extend the media controller functionality to allow it to be used by other subsystems like DVB, ALSA and IIO. In order to use the new functionality, a new ioctl is needed (MEDIA_IOC_G_TOPOLOGY). As we're still discussing how to pack the struct fields of this ioctl in order to avoid compat32 issues, I decided to add a patch at the end of this series commenting out the new ioctl, in order to postpone the addition of the new ioctl to the next Kernel version (4.6). With that, no userspace visible changes should happen at the media controller API, as the existing ioctls are untouched. Yet, it helps DVB, ALSA and IIO developers to develop and test the patches adding media controller support there, as the core will contain all required internal changes to allow adding support for devices that belong to those subsystems" * tag 'media/v4.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (177 commits) [media] Postpone the addition of MEDIA_IOC_G_TOPOLOGY [media] mxl111sf: Add a tuner entity [media] dvbdev: create links on devices with multiple frontends [media] media-entitiy: add a function to create multiple links [media] dvb-usb-v2: postpone removal of media_device [media] dvbdev: Add RF connector if needed [media] dvbdev: remove two dead functions if !CONFIG_MEDIA_CONTROLLER_DVB [media] call media_device_init() before registering the V4L2 device [media] uapi/media.h: Use u32 for the number of graph objects [media] media-entity: don't sleep at media_device_register_entity() [media] media-entity: increase max number of PADs [media] media-entity.h: document the remaining functions [media] media-device.h: use just one u32 counter for object ID [media] media-entity.h fix documentation for several parameters [media] DocBook: document media_entity_graph_walk_cleanup() [media] move documentation to the header files [media] media: Move MEDIA_ENTITY_MAX_PADS from media-entity.h to media-entity.c [media] media: Remove pre-allocated entity enumeration bitmap [media] staging: v4l: davinci_vpbe: Use the new media graph walk interface [media] staging: v4l: omap4iss: Use the new media graph walk interface ... commit 50ae833e471fe1a1a906a0342bdaa690e69fcc19 Merge: ac53b2e cabeea9 Author: Linus Torvalds Date: Wed Jan 13 11:38:27 2016 -0800 Merge tag 'spi-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi Pull spi updates from Mark Brown: "A quiet release for SPI, not even many driver updates: - Add a dummy loopback driver for use in exercising framework features during development. - Move the test utilities to tools/ and add support for transferring data to and from a file instead of stdin and stdout to spidev_test. - Support for Mediatek MT2701 and Renesas AG5 deices" * tag 'spi-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (69 commits) spi: loopback: fix typo in MODULE_PARM_DESC spi: sun4i: Prevent chip-select from being activated twice before a transfer spi: loopback-test: spi_check_rx_ranges can get always done spi: loopback-test: rename method spi_test_fill_tx to spi_test_fill_pattern spi: loopback-test: write rx pattern also when running without tx_buf spi: fsl-espi: expose maximum transfer size limit spi: expose master transfer size limitation. spi: zynq: use to_platform_device() spi: cadence: use to_platform_device() spi: mediatek: Add spi support for mt2701 IC spi: mediatek: merge all identical compat to mtk_common_compat spi: mtk: Add bindings for mediatek MT2701 soc platform spi: mediatek: Prevent overflows in FIFO transfers spi: s3c64xx: Remove unused platform_device_id entries spi: use to_spi_device spi: dw: Use SPI_TMOD_TR rather than magic const 0 to set tmode spi: imx: defer spi initialization, if DMA engine is spi: imx: return error from dma channel request spi: imx: enable loopback only for ECSPI controller family spi: imx: fix loopback mode setup after controller reset ... commit ac53b2e053fffc74372da94e734b92f37e70d32c Merge: cf09112 9146cbd Author: Linus Torvalds Date: Wed Jan 13 11:25:54 2016 -0800 Merge tag 'for-linus-20160112' of git://git.infradead.org/linux-mtd Pull MTD updates from Brian Norris: "Generic MTD: - populate the MTD device 'of_node' field (and get a proper 'of_node' symlink in sysfs) This yielded some new helper functions, and changes across a variety of drivers - partitioning cleanups, to prepare for better device-tree based partitioning in the future Eliminate a lot of boilerplate for drivers that want to use OF-based partition parsing The DT bindings for this didn't settle yet, so most non-cleanup portions are deferred for a future release NAND: - embed a struct mtd_info inside struct nand_chip This is really long overdue; too many drivers have to do the same silly boilerplate to allocate and link up two "independent" structs, when in fact, everyone is assuming there is an exact 1:1 relationship between a NAND chips struct and its underlying MTD. This aids improved helpers and should make certain abstractions easier in the future. Also causes a lot of churn, helped along by some automated code transformations - add more core support for detecting (and "correcting") bitflips in erased pages; requires opt-in by drivers, but at least we kill a few bad implementations and hopefully stave off future ones - pxa3xx_nand: cleanups, a few fixes, and PM improvements - new JZ4780 NAND driver SPI NOR: - provide default erase function, for controllers that just want to send the SECTOR_ERASE command directly - fix some module auto-loading issues with device tree ("jedec,spi-nor") - error handling fixes - new Mediatek QSPI flash driver Other: - cfi: force valid geometry Kconfig (finally!) This one used to trip up randconfigs occasionally, since bots aren't deterred by big scary "advanced configuration" menus More? Probably. See the commit logs" * tag 'for-linus-20160112' of git://git.infradead.org/linux-mtd: (168 commits) mtd: jz4780_nand: replace if/else blocks with switch/case mtd: nand: jz4780: Update ecc correction error codes mtd: nandsim: use nand_get_controller_data() mtd: jz4780_nand: remove useless mtd->priv = chip assignment staging: mt29f_spinand: make use of nand_set/get_controller_data() helpers mtd: nand: make use of nand_set/get_controller_data() helpers ARM: make use of nand_set/get_controller_data() helpers mtd: nand: add helpers to access ->priv mtd: nand: jz4780: driver for NAND devices on JZ4780 SoCs mtd: nand: jz4740: remove custom 'erased check' implementation mtd: nand: diskonchip: remove custom 'erased check' implementation mtd: nand: davinci: remove custom 'erased check' implementation mtd: nand: use nand_check_erased_ecc_chunk in default ECC read functions mtd: nand: return consistent error codes in ecc.correct() implementations doc: dt: mtd: new binding for jz4780-{nand,bch} mtd: cfi_cmdset_0001: fixing memory leak and handling failed kmalloc mtd: spi-nor: wait until lock/unlock operations are ready mtd: tests: consolidate kmalloc/memset 0 call to kzalloc jffs2: use to_delayed_work mtd: nand: assign reasonable default name for NAND drivers ... commit cf09112d160e6db21ff8427ce696f819b957423b Merge: 1c5ff2a bb0dceb Author: Linus Torvalds Date: Wed Jan 13 11:19:24 2016 -0800 Merge tag 'for-linus-4.5' of git://git.code.sf.net/p/openipmi/linux-ipmi Pull ipmi updates from Corey Minyard: "Some minor changes that have been in linux-next for a while" * tag 'for-linus-4.5' of git://git.code.sf.net/p/openipmi/linux-ipmi: ipmi: Remove unnecessary pci_disable_device. char: ipmi: Drop owner assignment from i2c_driver ipmi: constify some struct and char arrays commit 1c5ff2ab7bba6757e7663302c5905e6404de324a Merge: d6a3227 009f773 Author: Linus Torvalds Date: Wed Jan 13 11:14:05 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input Pull input updates from Dmitry Torokhov: - new driver for eGalaxTouch serial touchscreen - new driver for TS-4800 touchscreen - an update for Goodix touchscreen driver - PS/2 mouse module was reworked to limit number of protocols we try on pass-through ports to speed up their detection time - wacom_w8001 touchscreen driver now reports pen and touch via separate instances of input devices - other driver changes * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (42 commits) Input: elantech - mark protocols v2 and v3 as semi-mt Input: wacom_w8001 - drop use of ABS_MT_TOOL_TYPE Input: gpio-keys - fix check for disabling unsupported keys Input: omap-keypad - remove dead check Input: ti_am335x_tsc - fix HWPEN interrupt handling Input: omap-keypad - set tasklet data earlier Input: rohm_bu21023 - fix handling of retrying firmware update Input: ALPS - report v3 pinnacle trackstick device only if is present Input: ALPS - detect trackstick presence for v7 protocol Input: pcap_ts - use to_delayed_work Input: bma150 - constify bma150_cfg structure Input: i8042 - add Fujitsu Lifebook U745 to the nomux list Input: egalax_ts_serial - fix potential NULL dereference on error Input: uinput - sanity check on ff_effects_max and EV_FF Input: uinput - rework ABS validation Input: uinput - add new UINPUT_DEV_SETUP and UI_ABS_SETUP ioctl Input: goodix - use "inverted_[xy]" flags instead of "rotated_screen" Input: goodix - add axis swapping and axis inversion support Input: goodix - use goodix_i2c_write_u8 instead of i2c_master_send Input: goodix - add power management support ... commit d6a322774cb7096ca683fc46ddc9482e02ee6133 Merge: 4c257ec 8b64843 Author: Linus Torvalds Date: Wed Jan 13 10:59:52 2016 -0800 Merge tag 'dmaengine-4.5-rc1' of git://git.infradead.org/users/vkoul/slave-dma Pull dmaengine updates from Vinod Koul: "This round we have few new features, new driver and updates to few drivers. The new features to dmaengine core are: - Synchronized transfer termination API to terminate the dmaengine transfers in synchronized and async fashion as required by users. We have its user now in ALSA dmaengine lib, img, at_xdma, axi_dmac drivers. - Universal API for channel request and start consolidation of request flows. It's user is ompa-dma driver. - Introduce reuse of descriptors and use in pxa_dma driver Add/Remove: - New STM32 DMA driver - Removal of unused R-Car HPB-DMAC driver Updates: - ti-dma-crossbar updates for supporting eDMA - tegra-apb pm updates - idma64 - mv_xor updates - ste_dma updates" * tag 'dmaengine-4.5-rc1' of git://git.infradead.org/users/vkoul/slave-dma: (54 commits) dmaengine: mv_xor: add suspend/resume support dmaengine: mv_xor: de-duplicate mv_chan_set_mode*() dmaengine: mv_xor: remove mv_xor_chan->current_type field dmaengine: omap-dma: Add support for DMA filter mapping to slave devices dmaengine: edma: Add support for DMA filter mapping to slave devices dmaengine: core: Introduce new, universal API to request a channel dmaengine: core: Move and merge the code paths using private_candidate dmaengine: core: Skip mask matching when it is not provided to private_candidate dmaengine: mdc: Correct terminate_all handling dmaengine: edma: Add probe callback to edma_tptc_driver dmaengine: dw: fix potential memory leak in dw_dma_parse_dt() dmaengine: stm32-dma: Fix unchecked deference of chan->desc dmaengine: sh: Remove unused R-Car HPB-DMAC driver dmaengine: usb-dmac: Document SoC specific compatibility strings ste_dma40: Delete an unnecessary variable initialisation in d40_probe() ste_dma40: Delete another unnecessary check in d40_probe() ste_dma40: Delete an unnecessary check before the function call "kmem_cache_destroy" dmaengine: tegra-apb: Free interrupts before killing tasklets dmaengine: tegra-apb: Update driver to use GFP_NOWAIT dmaengine: tegra-apb: Only save channel state for those in use ... commit a9cf8284b45110a4d98aea180a89c857e53bf850 Author: Mike Frysinger Date: Sun Jan 10 20:14:11 2016 -0500 uapi: update install list after nvme.h rename Commit 9d99a8dda154 ("nvme: move hardware structures out of the uapi version of nvme.h") renamed nvme.h to nvme_ioctl.h, but the uapi list still refers to nvme.h. People trying to install the headers hit a failure as the header no longer exists. Cc: stable@vger.kernel.org Signed-off-by: Mike Frysinger Reviewed-by: Christoph Hellwig Signed-off-by: Jens Axboe include/uapi/linux/Kbuild | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0f7f2f0c0fcbe5e2bcba707a628ebaedfe2be4b4 Author: Ard Biesheuvel Date: Tue Jan 12 14:22:46 2016 +0100 efi: include asm/early_ioremap.h not asm/efi.h to get early_memremap The code in efi.c uses early_memremap(), but relies on a transitive include rather than including asm/early_ioremap.h directly, since this header did not exist on ia64. Commit f7d924894265 ("arm64/efi: refactor EFI init and runtime code for reuse by 32-bit ARM") attempted to work around this by including asm/efi.h, which transitively includes asm/early_ioremap.h on most architectures. However, since asm/efi.h does not exist on ia64 either, this is not much of an improvement. Now that we have created an asm/early_ioremap.h for ia64, we can just include it directly. Reported-by: Guenter Roeck Signed-off-by: Ard Biesheuvel Signed-off-by: Tony Luck drivers/firmware/efi/efi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 809267708557ed5575831282f719ca644698084b Author: Ard Biesheuvel Date: Tue Jan 12 14:22:45 2016 +0100 ia64: split off early_ioremap() declarations into asm/early_ioremap.h Unlike x86, arm64 and ARM, ia64 does not declare its implementations of early_ioremap/early_iounmap/early_memremap/early_memunmap in a header file called This complicates the use of these functions in generic code, since the header cannot be included directly, and we have to rely on transitive includes, which is fragile. So create a for ia64, and move the existing definitions into it. Signed-off-by: Ard Biesheuvel Signed-off-by: Tony Luck arch/ia64/include/asm/early_ioremap.h | 10 ++++++++++ arch/ia64/include/asm/io.h | 5 +---- 2 files changed, 11 insertions(+), 4 deletions(-) commit 4c257ec37bc365614933c7f0a7fe9b0688dfd1e7 Merge: 39272dd ed6dc53 Author: Linus Torvalds Date: Wed Jan 13 10:23:36 2016 -0800 Merge tag 'char-misc-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc Pull char/misc updates from Greg KH: "Here's the big set of char/misc patches for 4.5-rc1. Nothing major, lots of different driver subsystem updates, full details in the shortlog. All of these have been in linux-next for a while" * tag 'char-misc-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (71 commits) mei: fix fasync return value on error parport: avoid assignment in if parport: remove unneeded space parport: change style of NULL comparison parport: remove unnecessary out of memory message parport: remove braces parport: quoted strings should not be split parport: code indent should use tabs parport: fix coding style parport: EXPORT_SYMBOL should follow function parport: remove trailing white space parport: fix a trivial typo coresight: Fix a typo in Kconfig coresight: checking for NULL string in coresight_name_match() Drivers: hv: vmbus: Treat Fibre Channel devices as performance critical Drivers: hv: utils: fix hvt_op_poll() return value on transport destroy Drivers: hv: vmbus: fix the building warning with hyperv-keyboard extcon: add Maxim MAX3355 driver Drivers: hv: ring_buffer: eliminate hv_ringbuffer_peek() Drivers: hv: remove code duplication between vmbus_recvpacket()/vmbus_recvpacket_raw() ... commit 39272dde8ffcfd1322209e05f3f8fa4d14f796de Merge: 67ad058 841e3ed Author: Linus Torvalds Date: Wed Jan 13 10:13:36 2016 -0800 Merge tag 'staging-4.5-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 pull request for 4.5-rc1. Lots of cleanups and fixes here, not as many as some releases, but 800+ isn't that bad. Full details in the shortlog. All of these have been in linux-next for a while" * tag 'staging-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (843 commits) Revert "arm64: dts: Add dts files to enable ION on Hi6220 SoC." staging: gdm724x: constify tty_port_operations structs staging: gdm72xx: add userspace data struct staging: gdm72xx: Replace timeval with ktime_t iio: adc: ina2xx: Fix incorrect report of data endianness to userspace. iio: light: us5182d: Refactor read_raw function iio: light: us5182d: Add interrupt support and events iio: light: us5182d: Fix enable status inconcistency iio: Make IIO value formating function globally available. staging: emxx_udc: use list_first_entry_or_null() staging/emxx_udc: fix 64-bit warnings STAGING: COMEDI: Using kernel types in plx9080.h STAGING: COMEDI: Added spaces around binary operators in plx9080.h STAGING: COMEDI: Fixed format of comments in plx9080.h staging: comedi: comedilib.h: Coding style warning fix for block comments staging: comedi: s526: add macros for counter control reg values staging: comedi: s526: replace counter mode bitfield struct staging: comedi: check for more errors for zero-length write staging: comedi: simplify returned errors for comedi_write() staging: comedi: return error on "write" if no command set up ... commit 67ad058d97b8cff441211b791d97e5f776b81210 Merge: 237f38c 041497e Author: Linus Torvalds Date: Wed Jan 13 10:02:05 2016 -0800 Merge tag 'tty-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty Pull tty/serial updates from Greg KH: "Here is the big serial/tty driver update for 4.5-rc1. Lots of driver updates and some tty core changes. All of these have been in linux-next and the details are in the shortlog" * tag 'tty-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (127 commits) drivers/tty/serial: delete unused MODULE_DEVICE_TABLE from atmel_serial.c serial: sh-sci: Remove cpufreq notifier to fix crash/deadlock serial: 8250: of: Fix the driver and actually compile the 8250_of tty: amba-pl011: use iotype instead of access_32b to track 32-bit I/O tty: amba-pl011: fix earlycon register offsets serial: sh-sci: Drop the sci_fck clock fallback sh: sh7734: Correct SCIF type for BRG sh: Remove sci_ick clock alias sh: Rename sci_ick and sci_fck clock to fck serial: sh-sci: Add support for optional BRG on (H)SCIF serial: sh-sci: Add support for optional external (H)SCK input serial: sh-sci: Prepare for multiple sampling clock sources serial: sh-sci: Correct SCIF type on R-Car for BRG serial: sh-sci: Correct SCIF type on RZ/A1H serial: sh-sci: Replace struct sci_port_info by type/regtype encoding serial: sh-sci: Add BRG register definitions serial: sh-sci: Take into account sampling rate for max baud rate serial: sh-sci: Merge sci_scbrr_calc() and sci_baud_calc_hscif() serial: sh-sci: Avoid calculating the receive margin for HSCIF serial: sh-sci: Improve bit rate error calculation for HSCIF ... commit 237f38c3b3ab08eadecc89b7c9647b1cdb996bbe Merge: 6799060 60d77b3 Author: Linus Torvalds Date: Wed Jan 13 09:26:40 2016 -0800 Merge tag 'usb-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb Pull USB updates from Greg KH: "Here is the big USB drivers update for 4.5-rc1. Lots of gadget driver updates and fixes, like usual, and a mix of other USB driver updates as well. Full details in the shortlog. All of these have been in linux-next for a while" * tag 'usb-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (191 commits) MAINTAINERS: change my email address USB: usbmon: remove assignment from IS_ERR argument USB: mxu11x0: drop redundant function name from error messages USB: mxu11x0: fix debug-message typos USB: mxu11x0: rename usb-serial driver USB: mxu11x0: fix modem-control handling on B0-transitions USB: mxu11x0: fix memory leak on firmware download USB: mxu11x0: fix memory leak in port-probe error path USB: serial: add Moxa UPORT 11x0 driver USB: cp210x: add ID for ELV Marble Sound Board 1 usb: chipidea: otg: use usb autosuspend to suspend bus for HNP usb: chipidea: host: set host to be null after hcd is freed usb: chipidea: removing of_find_property usb: chipidea: implement platform shutdown callback usb: chipidea: clean up CONFIG_USB_CHIPIDEA_DEBUG reference usb: chipidea: delete static debug support usb: chipidea: support debugfs without CONFIG_USB_CHIPIDEA_DEBUG usb: chipidea: udc: improve error handling on _hardware_enqueue usb: chipidea: udc: _ep_queue and _hw_queue cleanup usb: dwc3: of-simple: fix build warning on !PM ... commit ed8a9d2c816e0b0a2c5a605505e0f09ae9010dd6 Author: Ilya Dryomov Date: Fri Nov 20 22:18:43 2015 +0100 block: use bd{grab,put}() instead of open-coding - bd_acquire() and bd_forget() open-code bdgrab() and bdput() - raw driver uses igrab() but never checks its return value and always holds another ref from bind_set() while calling it, so it's equivalent to bdgrab() Signed-off-by: Ilya Dryomov Signed-off-by: Jens Axboe drivers/char/raw.c | 2 +- fs/block_dev.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) commit d8e0cae645504a787b05abfb91afee8cd7fa1701 Author: Christian König Date: Mon Jan 11 15:35:22 2016 +0100 drm/amdgpu: validate duplicates first Most VM BOs end up in the duplicates list, validate it first make -ENOMEM less likely. Signed-off-by: Christian König Reviewed-by: Chunming Zhou Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit eceb8a1562db6fc3e1c21cd54a4be0189aa1d0e3 Author: Christian König Date: Mon Jan 11 15:35:21 2016 +0100 drm/amdgpu: move VM page tables to the LRU end on CS v2 This makes it less likely to run into an ENOMEM because VM page tables are evicted last. v2: move the BOs in the LRU tail after validation Signed-off-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 7 ++++++- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 27 +++++++++++++++++++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) commit ab74961810ba7935b5f9643da10daaa36690f48e Author: Christian König Date: Mon Jan 11 15:35:20 2016 +0100 drm/ttm: add ttm_bo_move_to_lru_tail function v2 This allows the drivers to move a BO to the end of the LRU without removing and adding it again. v2: Make it more robust, handle pinned and swapable BOs as well. Reviewed-by: Thomas Hellstrom Signed-off-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/ttm/ttm_bo.c | 21 +++++++++++++++++++++ include/drm/ttm/ttm_bo_api.h | 10 ++++++++++ 2 files changed, 31 insertions(+) commit ed704a43e84cc536081423dcd3491acf2791aaeb Author: Christian König Date: Mon Jan 11 15:35:19 2016 +0100 drm/ttm: fix adding foreign BOs to the swap LRU It doesn't make any sense to try to swap out imported BOs. Reviewed-by: Thomas Hellstrom Signed-off-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/ttm/ttm_bo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 33d48cf8256f2b72e4082a7996c04bf1e78fce81 Author: Christian König Date: Mon Jan 11 15:35:18 2016 +0100 drm/ttm: fix adding foreign BOs to the LRU during init v2 If we import a BO with an external reservation object we don't reserve/unreserve it. So we never add it to the LRU causing a possible denial of service. v2: fix typo in commit message Reviewed-by: Thomas Hellstrom Signed-off-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/ttm/ttm_bo.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit e3837b00b6bb2b0344dd28c601edda8eba42de7f Author: Geliang Tang Date: Wed Jan 13 22:48:43 2016 +0800 drm/radeon: use kobj_to_dev() Use kobj_to_dev() instead of open-coding it. Signed-off-by: Geliang Tang Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon_pm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cc29ec874b3727e3f5a606bd1875e34f6e3f1593 Author: Geliang Tang Date: Wed Jan 13 22:48:42 2016 +0800 drm/amdgpu: use kobj_to_dev() Use kobj_to_dev() instead of open-coding it. Signed-off-by: Geliang Tang Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 403664bbf840e80a45c4b97115ac518b40487f91 Author: Alex Deucher Date: Fri Dec 18 11:33:30 2015 -0500 drm/amdgpu/cz: force vce clocks when sclks are forced Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/cz_dpm.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) commit 5f57642672dd90e3183efcd9e6afbff1305a133a Author: Alex Deucher Date: Fri Dec 18 11:28:49 2015 -0500 drm/amdgpu/cz: force uvd clocks when sclks are forced Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/cz_dpm.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit 044c0629b55d73235161557a48870d663d0072f5 Author: Alex Deucher Date: Fri Dec 18 11:25:16 2015 -0500 drm/amdgpu/cz: add code to enable forcing VCE clocks VCE DPM works similarly to SCLK DPM. Add a similar interface for VCE for forcing the VCE clocks. Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/cz_dpm.c | 98 ++++++++++++++++++++++++++++++++++++- drivers/gpu/drm/amd/amdgpu/cz_dpm.h | 1 + 2 files changed, 98 insertions(+), 1 deletion(-) commit d83b1e8132f91ba9e038b5206dc81d32ecac1f75 Author: Alex Deucher Date: Fri Dec 18 11:06:42 2015 -0500 drm/amdgpu/cz: add code to enable forcing UVD clocks UVD DPM works similarly to SCLK DPM. Add a similar interface for UVD for forcing the UVD clocks. Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/cz_dpm.c | 129 ++++++++++++++++++++++++++++++++++++ drivers/gpu/drm/amd/amdgpu/cz_dpm.h | 1 + 2 files changed, 130 insertions(+) commit 3b780bed3138c2a8061c218df7e321beec9a6ec9 Author: David S. Miller Date: Wed Jan 13 11:45:39 2016 -0500 x25_asy: Free x25_asy on x25_asy_open() failure. Based upon a report by Dmitry Vyukov. Signed-off-by: David S. Miller drivers/net/wan/x25_asy.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 888c9e33e4c5a503285921046c621f7c73199d2f Author: Chunming Zhou Date: Wed Jan 13 12:55:18 2016 +0800 drm/amdgpu: fix lost sync_to if scheduler is enabled. when scheduler is enabled, the semaphore isn't used at all. Signed-off-by: Chunming Zhou Reviewed-by: Christian König Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit f3b5cb3e68952d4a721cc733e03eeb5151dcaa1e Author: Rex Zhu Date: Mon Jan 11 11:25:18 2016 +0800 drm/amd/powerplay: fix static checker warning for return meaningless value. The return value should be either negative or zero, no positive. Signed-off-by: Rex Zhu Reviewed-by: Alex Deucher drivers/gpu/drm/amd/powerplay/smumgr/tonga_smumgr.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit d122cbf1a310d962cef45c2f161b8dc3ec1475a3 Author: Geliang Tang Date: Wed Jan 13 22:48:41 2016 +0800 drm/sysfs: use kobj_to_dev() Use kobj_to_dev() instead of open-coding it. Link: http://patchwork.freedesktop.org/patch/msgid/3fea991541fbfc4ffece2c174adeb02cb9436c90.1452696179.git.geliangtang@163.com Signed-off-by: Geliang Tang drivers/gpu/drm/drm_sysfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 00ae40e71d85ea3fed1b906951ffd80e0321a96d Author: Dan Carpenter Date: Wed Jan 13 15:28:23 2016 +0300 mlxsw: fix SWITCHDEV_OBJ_ID_PORT_MDB There is a missing break statement so we always return -EOPNOTSUPP. Fixes: 3a49b4fde2a1 ('mlxsw: Adding layer 2 multicast support') Signed-off-by: Dan Carpenter Acked-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 1 + 1 file changed, 1 insertion(+) commit b8e429a2feac623a34e21099a4a69de29b6d873e Author: David S. Miller Date: Wed Jan 13 10:28:06 2016 -0500 genetlink: Fix off-by-one in genl_allocate_reserve_groups() The bug fix for adding n_groups to the computation forgot to adjust ">=" to ">" to keep the condition correct. Signed-off-by: David S. Miller net/netlink/genetlink.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 038a75afc54d4b4dc9794213bb16e88c1a31a752 Merge: 9e35fdc c31ecf6 Author: Jens Axboe Date: Wed Jan 13 08:20:36 2016 -0700 Merge branch 'stable/for-jens-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen into for-4.5/drivers Konrad writes: The pull is based on converting the backend driver into an multiqueue driver and exposing more than one queue to the frontend. As such we had to modify the frontend and also fix a bunch of bugs around this. The original work is based on Arianna Avanzini's work as an OPW intern. Bob took over the work and had been massaging it for quite some time. Also included are are features to 64KB page support for ARM and various bug-fixes. commit f5949141a21ee16edf1beaf95cbae7e419171ab5 Author: Daniel Vetter Date: Wed Jan 13 11:55:28 2016 +0100 drm/i915: Init power domains early in driver load Since commit ac9b8236551d1177fd07b56aef9b565d1864420d Author: Ville Syrjälä Date: Fri Nov 27 18:55:26 2015 +0200 drm/i915: Introduce a gmbus power domain gmbus also needs the power domain infrastructure right from the start, since as soon as we register the i2c controllers someone can use them. v2: Adjust cleanup paths too (Chris). v3: Rebase onto -nightly (totally bogus tree I had lying around) and also move dpio init head (Ville). v4: Ville instead suggested to move gmbus setup later in the sequence, since it's only needed by the modeset code. v5: Move even close to the actual user, right next to the comment that states where we really need gmbus (and interrupts!). Cc: Ville Syrjälä Cc: Patrik Jakobsson Cc: Imre Deak Cc: Jani Nikula Cc: Meelis Roos Cc: Chris Wilson Fixes: ac9b8236551d ("drm/i915: Introduce a gmbus power domain") Cc: stable@vger.kernel.org References: http://www.spinics.net/lists/intel-gfx/msg83075.html Signed-off-by: Daniel Vetter Reviewed-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1452682528-19437-1-git-send-email-daniel.vetter@ffwll.ch Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_dma.c | 6 +++--- drivers/gpu/drm/i915/intel_display.c | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) commit c474e348778bdf5b453a2cdff4b2b1f9e000f343 Author: Arnd Bergmann Date: Sat Jan 9 22:16:42 2016 +0100 gpio: generic: make bgpio_pdata always visible Board files that define their own bgpio_pdata are broken when CONFIG_GPIO_GENERIC is disabled and the bgpio_pdata structure definition is hidden by the #ifdef: arch/arm/mach-clps711x/board-autcpu12.c:148:15: error: variable 'autcpu12_mmgpio_pdata' has initializer but incomplete type static struct bgpio_pdata autcpu12_mmgpio_pdata __initdata = { arch/arm/mach-clps711x/board-autcpu12.c:149:2: error: unknown field 'base' specified in initializer .base = AUTCPU12_MMGPIO_BASE, Since the board files should generally not care what drivers are enabled, this makes the structure definition visible again. Signed-off-by: Arnd Bergmann Fixes: 0f4630f3720e ("gpio: generic: factor into gpio_chip struct") Signed-off-by: Linus Walleij include/linux/gpio/driver.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit cb74ed278f8054fddf79ed930495b9e214f7c7b2 Author: Paul Moore Date: Wed Jan 13 09:18:55 2016 -0500 audit: always enable syscall auditing when supported and audit is enabled To the best of our knowledge, everyone who enables audit at compile time also enables syscall auditing; this patch simplifies the Kconfig menus by removing the option to disable syscall auditing when audit is selected and the target arch supports it. Signed-off-by: Paul Moore init/Kconfig | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) commit 96368701e1c89057bbf39222e965161c68a85b4b Author: Paul Moore Date: Wed Jan 13 09:18:55 2016 -0500 audit: force seccomp event logging to honor the audit_enabled flag Previously we were emitting seccomp audit records regardless of the audit_enabled setting, a deparature from the rest of audit. This patch makes seccomp auditing consistent with the rest of the audit record generation code in that when audit_enabled=0 nothing is logged by the audit subsystem. The bulk of this patch is moving the CONFIG_AUDIT block ahead of the CONFIG_AUDITSYSCALL block in include/linux/audit.h; the only real code change was in the audit_seccomp() definition. Signed-off-by: Tony Jones Signed-off-by: Paul Moore include/linux/audit.h | 204 +++++++++++++++++++++++++------------------------- 1 file changed, 104 insertions(+), 100 deletions(-) commit d865e573b8a4f30fbb74fa7666ca81e3132eb547 Author: Markus Elfring Date: Wed Jan 13 09:18:55 2016 -0500 audit: Delete unnecessary checks before two function calls The functions consume_skb() and kfree_skb() test whether their argument is NULL and then return immediately. Thus the tests around their calls are not needed. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring [PM: tweak patch prefix] Signed-off-by: Paul Moore kernel/audit.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 1194b994bec308433cc84ffdb92fd668713b8f93 Author: Richard Guy Briggs Date: Wed Jan 13 09:18:54 2016 -0500 audit: wake up threads if queue switched from limited to unlimited If the audit_backlog_limit is changed from a limited value to an unlimited value (zero) while the queue was overflowed, wake up the audit_backlog_wait queue to allow those processes to continue. Signed-off-by: Richard Guy Briggs Signed-off-by: Paul Moore kernel/audit.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f48a942926c58e4b2dfc3f21c58579d5435841ef Author: Richard Guy Briggs Date: Wed Jan 13 09:15:19 2016 -0500 audit: include auditd's threads in audit_log_start() wait exception Should auditd spawn threads, allow all members of its thread group to use the audit_backlog_limit reserves to bypass the queue limits too. Signed-off-by: Richard Guy Briggs [PM: minor upstream merge tweaks] Signed-off-by: Paul Moore kernel/audit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eb8baf6aa3ba1fcb1c1fd2cc57e31195a42689fd Author: Paul Moore Date: Wed Jan 13 09:15:18 2016 -0500 audit: remove audit_backlog_wait_overflow It seems much more obvious and readable to simply use "0". Signed-off-by: Paul Moore kernel/audit.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit c4b7a7755f91081e430bbd58fec77194b05f834b Author: Richard Guy Briggs Date: Wed Jan 13 09:15:18 2016 -0500 audit: don't needlessly reset valid wait time After auditd has recovered from an overflowed queue, the first process that doesn't use reserves to make it through the queue checks should reset the audit backlog wait time to the configured value. After that, there is no need to keep resetting it. Signed-off-by: Richard Guy Briggs Signed-off-by: Paul Moore kernel/audit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d20313b2c407a90fb60eca99d73c47a75bb42e08 Author: Peter Ujfalusi Date: Mon Jan 11 10:38:01 2016 +0200 dmaengine: edma: Fix paRAM slot allocation for entry channel 0 edma_alloc_slot was not checking the channel mapping support existence when slot 0 has been requested (used as entry slot for channel/event 0). Signed-off-by: Peter Ujfalusi Signed-off-by: Vinod Koul drivers/dma/edma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f90d2d37fb933773c9945c5939ae87aea2343057 Author: Florian Westphal Date: Tue Jan 12 17:07:05 2016 +0100 netfilter: ipset: allow a 0 netmask with hash_netiface type Jozsef says: The correct behaviour is that if we have ipset create test1 hash:net,iface ipset add test1 0.0.0.0/0,eth0 iptables -A INPUT -m set --match-set test1 src,src then the rule should match for any traffic coming in through eth0. This removes the -EINVAL runtime test to make matching work in case packet arrived via the specified interface. Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1297092 Signed-off-by: Florian Westphal Acked-by: Jozsef Kadlecsik Signed-off-by: Pablo Neira Ayuso net/netfilter/ipset/ip_set_hash_netiface.c | 4 ---- 1 file changed, 4 deletions(-) commit 4b8c4eddfc941a38e5bc716a37e8c4292cefaa6d Author: Florian Westphal Date: Mon Jan 11 22:49:32 2016 +0100 netfilter: nft_byteorder: avoid unneeded le/be conversion steps David points out that we to three le/be conversions instead of just one. Doesn't matter on x86_64 w. gcc, but other architectures might be less lucky. Since it also simplifies code just follow his advice. Fixes: c0f3275f5cb ("nftables: byteorder: provide le/be 64 bit conversion helper") Suggested-by: David Laight Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso net/netfilter/nft_byteorder.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 1ca2cf8c4167c2016d9716998b4f89c4e79d1f89 Author: Axel Lin Date: Tue Jan 12 15:55:17 2016 +0800 ASoC: rt5659: Fix irq leak Use devm_request_threaded_irq to ensure the irq is freed when unload the module. The rt5659->i2c is no longer used after this conversion, thus remove it as well. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/rt5659.c | 16 ++++------------ sound/soc/codecs/rt5659.h | 1 - 2 files changed, 4 insertions(+), 13 deletions(-) commit cde6bcd584b1b910d6ee8d6eb968ea5d20815444 Author: Dan Carpenter Date: Wed Jan 13 15:20:02 2016 +0300 ASoC: AMD: free memory on error Static checkers complain if we don't free "adata" before returning. Fixes: 7c31335a03b6 ('ASoC: AMD: add AMD ASoC ACP 2.x DMA driver') Signed-off-by: Dan Carpenter Signed-off-by: Mark Brown sound/soc/amd/acp-pcm-dma.c | 1 + 1 file changed, 1 insertion(+) commit eb47fe8033d6c2013ce47ec44f39fa0092aa8551 Author: Thierry Reding Date: Mon Nov 16 18:19:53 2015 +0100 drm: Do not set connector->encoder in drivers An encoder is associated with a connector by the DRM core as a result of setting up a configuration. Drivers using the atomic or legacy helpers should never set up this link, even if it is a static one. While at it, try to catch this kind of error in the future by adding a WARN_ON() in drm_mode_connector_attach_encoder(). Note that this doesn't cover all the cases, since drivers could set this up after attaching. Drivers that use the atomic helpers will get a warning later on, though, so hopefully the two combined cover enough to help people avoid this in the future. Cc: Russell King Cc: Philipp Zabel Cc: Laurent Pinchart Cc: Liviu Dudau Cc: Mark yao Signed-off-by: Thierry Reding Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1447694393-24700-1-git-send-email-thierry.reding@gmail.com drivers/gpu/drm/bridge/dw_hdmi.c | 2 -- drivers/gpu/drm/drm_crtc.c | 14 ++++++++++++++ drivers/gpu/drm/i2c/tda998x_drv.c | 1 - drivers/gpu/drm/imx/parallel-display.c | 2 -- drivers/gpu/drm/shmobile/shmob_drm_crtc.c | 2 -- 5 files changed, 14 insertions(+), 7 deletions(-) commit bab7c6c3deac70966a3000402c0ea6d0c20edd15 Author: Sven Eckelmann Date: Tue Jan 5 12:06:17 2016 +0100 batman-adv: Fix list removal of batadv_hardif_neigh_node The neigh_list with batadv_hardif_neigh_node objects is accessed with only rcu_read_lock in batadv_hardif_neigh_get and batadv_iv_neigh_print. Thus it is not allowed to kfree the object before the rcu grace period ends (which may still protects context accessing this object). Therefore the object has first to be removed from the neigh_list and then it has either wait with synchronize_rcu or call_rcu till the grace period ends before it can be freed. Fixes: cef63419f7db ("batman-adv: add list of unique single hop neighbors per hard-interface") Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/originator.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) commit af63cf51b7f960aa73b32bac683cd4078f08fa0e Author: Simon Wunderlich Date: Mon Nov 30 17:34:01 2015 +0100 batman-adv: fix lockdep splat when doing mcast_free While testing, we got something like this: WARNING: CPU: 0 PID: 238 at net/batman-adv/multicast.c:142 batadv_mcast_mla_tt_retract+0x94/0x205 [batman_adv]() [...] Call Trace: [] dump_stack+0x4b/0x64 [] warn_slowpath_common+0xbc/0x120 [] ? batadv_mcast_mla_tt_retract+0x94/0x205 [batman_adv] [] warn_slowpath_null+0x15/0x20 [] batadv_mcast_mla_tt_retract+0x94/0x205 [batman_adv] [] batadv_mcast_free+0x36/0x39 [batman_adv] [] batadv_mesh_free+0x7d/0x13f [batman_adv] [] batadv_softif_free+0x15/0x25 [batman_adv] [...] Signed-off-by: Simon Wunderlich Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/multicast.c | 2 ++ 1 file changed, 2 insertions(+) commit 78fd8c7288e0a4bba3ad1d69caf9396a6b69cb00 Author: Andy Lutomirski Date: Mon Jan 4 15:14:28 2016 -0800 x86/vdso/pvclock: Protect STABLE check with the seqcount If the clock becomes unstable while we're reading it, we need to bail. We can do this by simply moving the check into the seqcount loop. Reported-by: Marcelo Tosatti Signed-off-by: Andy Lutomirski Cc: Alexander Graf Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Paolo Bonzini Cc: Peter Zijlstra Cc: Radim Krcmar Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/755dcedb17269e1d7ce12a9a713dea303835137e.1451949191.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/vdso/vclock_gettime.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit c698d639f72b55686ec3518d2bc8dc5f2eca9354 Author: Paul Gortmaker Date: Sun Dec 13 15:33:19 2015 -0500 i2c: create builtin_i2c_driver to avoid registration boilerplate In commit f309d4443130bf814e991f836e919dca22df37ae ("platform_device: better support builtin boilerplate avoidance") we introduced the builtin_driver macro. Here we use that support and extend it to I2C driver registration, so where a driver is clearly non-modular and builtin-only, we can register it in a similar fashion. And existing code that is clearly non-modular can be updated with the simple mapping of module_i2c_driver(...) ---> builtin_i2c_driver(...) We've essentially cloned the former to make the latter, and taken out the remove/module_exit parts since those never get used in a non-modular build of the code. A similar thing was done in commit b4eb6cdbbd13698704863f680c643c569909e1c2 ("PCI: Add builtin_pci_driver() to avoid registration boilerplate"). Signed-off-by: Paul Gortmaker Signed-off-by: Wolfram Sang include/linux/i2c.h | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) commit 96098df125c0a966631ec114081d8f5630a0e4b8 Author: Julien Grossholtz Date: Thu Jan 7 16:46:45 2016 -0500 gpiolib: fix chip order in gpio list In some situations the gpio_list order is not correct. As a consequence gpiochip_find_base returns the same base number twice. This happens when a first ship is added with manual base number, then other ships are added using automatic base number. To prevent this behaviour, this patch add the new chip after the last element of the gpio list. Signed-off-by: Julien Grossholtz Signed-off-by: Linus Walleij drivers/gpio/gpiolib.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit d9812780a020bcec44565b5950b2a8b31afb5545 Author: Russell King Date: Sat Jan 2 10:06:29 2016 +0000 mmc: sd: limit SD card power limit according to cards capabilities The SD card specification allows cards to error out a SWITCH command where the requested function in a group is not supported. The spec provides for a set of capabilities which indicate which functions are supported. In the case of the power limit, requesting an unsupported power level via the SWITCH command fails, resulting in the power level remaining at the power-on default of 0.72W, even though the host and card may support higher powers levels. This has been seen with SanDisk 8GB cards, which support the default 0.72W and 1.44W (200mA and 400mA) in combination with an iMX6 host, supporting up to 2.88W (800mA). This currently causes us to try to set a power limit function value of '3' (2.88W) which the card errors out on, and thereby causes the power level to remain at 0.72W rather than the desired 1.44W. Arrange to limit the selected current limit by the capabilities reported by the card to avoid the SWITCH command failing. Select the highest current limit that the host and card combination support. Signed-off-by: Russell King Fixes: a39ca6ae0a08 ("mmc: core: Simplify and fix for SD switch processing") Signed-off-by: Ulf Hansson drivers/mmc/core/sd.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) commit 4eaffdd5a5fe6ff9f95e1ab4de1ac904d5e0fa8b Author: Andy Lutomirski Date: Tue Jan 12 12:47:40 2016 -0800 x86/mm: Improve switch_mm() barrier comments My previous comments were still a bit confusing and there was a typo. Fix it up. Reported-by: Peter Zijlstra Signed-off-by: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Dave Hansen Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Rik van Riel Cc: Thomas Gleixner Cc: stable@vger.kernel.org Fixes: 71b3c126e611 ("x86/mm: Add barriers and document switch_mm()-vs-flush synchronization") Link: http://lkml.kernel.org/r/0a0b43cdcdd241c5faaaecfbcc91a155ddedc9a1.1452631609.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/include/asm/mmu_context.h | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit c36608843adf4674c462e49f63b64b2987d0ba0b Merge: 0bd106d 34b7b0f Author: Ingo Molnar Date: Wed Jan 13 10:36:03 2016 +0100 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: New, user visible features: - Add --buildid-all option to 'perf record' to avoid processing samples, just collecting build-ids for _all_ the DSOs that appears in PERF_RECORD_MMAP records (Namhyung Kim) - Add some more usage tips to appear in the hists browser (top & report) (Namhyung Kim, Andi Kleen) - Fix mmap2 event allocation in synthesize code, where we were allocating space just for PERF_RECORD_MMAP, the older variant, which could lead to corner case problems (Wang Nan) Infrastructure fixes: - Make list.h self-sufficient, removing one more reference to kernel headers that lead to recent breakage when some rculist change was made in the kernel sources. (Josh Poimboeuf) Add missing NORETURN define for parse-options.h in tools/lib/subcmd (Josh Poimboeuf) - Fallback to srcdir/Documentation/ when not finding tips.txt elsewhere (Namhyung Kim) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 65cacec1ba908a153cfb19c4de596a108f95970c Author: Andy Lutomirski Date: Tue Jan 12 11:56:15 2016 -0800 selftests/x86: Test __kernel_sigreturn and __kernel_rt_sigreturn The vdso-based sigreturn mechanism is fragile and isn't used by modern glibc so, if we break it, we'll only notice when someone tests an unusual libc. Add an explicit selftest. [ I wrote this while debugging a Bionic breakage -- my first guess was that I had somehow messed up sigreturn. I've caused problems in that code before, and it's really easy to fail to notice it because there's nothing on a modern distro that needs vdso-based sigreturn. ] Signed-off-by: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Shuah Khan Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/32946d714156879cd8e5d8eab044cd07557ed558.1452628504.git.luto@kernel.org Signed-off-by: Ingo Molnar tools/testing/selftests/x86/Makefile | 3 +- tools/testing/selftests/x86/vdso_restorer.c | 88 +++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+), 1 deletion(-) commit 78179989a06636d8362e2eee01b261d02b1500d2 Author: Guenter Roeck Date: Thu Jan 7 08:25:24 2016 -0800 gpio: mpc8xxx: Do not use gpiochip_get_data() in mpc8xxx_gpio_save_regs() Commit 709d71a17c33 ("gpio: mpc8xxx: use gpiochip data pointer") replaces the use of container_of() with gpiochip_get_data(). However, the data pointer is not yet set by the time the save_regs function is called. Fixes: 709d71a17c33 ("gpio: mpc8xxx: use gpiochip data pointer") Cc: Uwe Kleine-König Cc: Alexander Stein Signed-off-by: Guenter Roeck Signed-off-by: Linus Walleij drivers/gpio/gpio-mpc8xxx.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 95c761705ef5c2f094c56c4b779e74958246f2aa Author: Guenter Roeck Date: Thu Jan 7 08:24:58 2016 -0800 gpio: mm-lantiq: Do not use gpiochip_get_data() in ltq_mm_save_regs() Commit 6aa7dbfa2877 ("gpio: mm-lantiq: use gpiochip data pointer") replaces the use of container_of() with gpiochip_get_data(). However, the data pointer is not yet set by the time the save_regs function is called. Fixes: 6aa7dbfa2877 ("gpio: mm-lantiq: use gpiochip data pointer") Cc: Ricardo Ribalda Delgado Cc: John Crispin Signed-off-by: Guenter Roeck Signed-off-by: Linus Walleij drivers/gpio/gpio-mm-lantiq.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 48ea1e32c39db94c59b63580b965222c7782112f Author: Michel Thierry Date: Mon Jan 11 11:39:27 2016 +0000 drm/i915/gen9: Set PIN_ZONE_4G end to 4GB - 1 page Kernel and userspace are able to handle 4GB (1<<32) address space range, but "A32 Stateless Model" is not. According to documentation, A32 accesses are based on General State Base Address and bound checking is in place. Because size field (instruction State Base Address) limitation, it is not possible to address full 4GB memory region. A32 Stateless Model is used by some libraries and without this patch, the last page of 4GB address space is not accessible in 32bit processes. Reported-by: Artur Harasimiuk Signed-off-by: Michel Thierry Link: http://patchwork.freedesktop.org/patch/msgid/1452512367-23614-1-git-send-email-michel.thierry@intel.com Cc: drm-intel-fixes@lists.freedesktop.org Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter (cherry picked from commit 1892faa9ec5d51b07d646cbd5597cd30e049aa51) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_gem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit de0513365cff619335a59417dea1d1ca665c2cfd Author: Maarten Lankhorst Date: Tue Dec 8 15:52:56 2015 +0100 drm/i915: Widen return value for reservation_object_wait_timeout_rcu to long. This fixes a spurious warning from an integer overflow on 64-bits systems. The function may return MAX_SCHEDULE_TIMEOUT which gets truncated to -1. Explicitly handling this by casting to lret fixes it. Signed-off-by: Maarten Lankhorst Reported-and-tested-by: Joseph Yasi Tested-by: Andreas Reis Reviewed-by: Daniel Vetter Cc: drm-intel-fixes@lists.freedesktop.org Fixes: 3c28ff22f6e20c ("i915: wait for fence in prepare_plane_fb") Link: http://patchwork.freedesktop.org/patch/msgid/5666EEC8.2000403@linux.intel.com (cherry picked from commit bcf8be279c79df6a8a17d9c3e1f9bc926444a87c) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit 2dc2f761dea65069485110d24eaa5b0d5d808b07 Author: Lyude Date: Thu Jan 7 10:43:28 2016 -0500 drm/i915: intel_hpd_init(): Fix suspend/resume reprobing This fixes reprobing of display connectors on resume. After some talking with danvet on IRC, I learned that calling drm_helper_hpd_irq_event() does actually trigger a full reprobe of each connector's status. It turns out this is the actual reason reprobing on resume hasn't been working (this was observed on a T440s): - We call hpd_init() - We check each connector for a couple of things before marking connector->polled with DRM_CONNECTOR_POLL_HPD, one of which is an active encoder. Of course, a disconnected port won't have an active encoder, so we don't add the flag to any of the connectors. - We call drm_helper_hpd_irq_event() - drm_helper_irq_event() checks each connector for the DRM_CONNECTOR_POLL_HPD flag. The only one that has it is eDP-1, so we skip reprobing each connector except that one. In addition, we also now avoid setting connector->polled to DRM_CONNECTOR_POLL_HPD for MST connectors, since their reprobing is handled by the mst helpers. This is probably what was originally intended to happen here. Changes since V1: * Use the explanation of the issue as the commit message instead * Change the title of the commit, since this does more then just stop a check for an encoder now * Add "Fixes" line for the patch that introduced this regression * Don't enable DRM_CONNECTOR_POLL_HPD for mst connectors Changes since V2: * Put patch changelog above Signed-off-by * Follow Daniel Vetter's suggestion for making the code here a bit more legible Fixes: 0e32b39ceed6 ("drm/i915: add DP 1.2 MST support (v0.7)") Cc: stable@vger.kernel.org Signed-off-by: Lyude Link: http://patchwork.freedesktop.org/patch/msgid/1452181408-14777-1-git-send-email-cpaul@redhat.com Signed-off-by: Daniel Vetter (cherry picked from commit 07c519134417d92c2e1a536e2b66d4ffff4b3be0) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_hotplug.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit ccda3a728f7098523998079e789b8135746bf8a8 Author: Jani Nikula Date: Thu Jan 7 10:29:10 2016 +0200 drm/i915: shut up gen8+ SDE irq dmesg noise, again We still keep getting [ 4.249930] [drm:gen8_irq_handler [i915]] *ERROR* The master control interrupt lied (SDE)! This reverts commit 820da7ae46332fa709b171eb7ba57cbd023fa6df Author: Jani Nikula Date: Wed Nov 25 16:47:23 2015 +0200 Revert "drm/i915: shut up gen8+ SDE irq dmesg noise" which in itself is a revert, so this is just doing commit 97e5ed1111dcc5300a0f59a55248cd243937a8ab Author: Daniel Vetter Date: Fri Oct 23 10:56:12 2015 +0200 drm/i915: shut up gen8+ SDE irq dmesg noise all over again. I'll stop pretending I understand what's going on like I did when I thought I'd fixed this for good in commit 6a39d7c986be4fd18eb019e9cdbf774ec36c9f77 Author: Jani Nikula Date: Wed Nov 25 16:47:22 2015 +0200 drm/i915: fix the SDE irq dmesg warnings properly Reported-by: Chris Wilson Reference: http://mid.gmane.org/20151213124945.GA5715@nuc-i3427.alporthouse.com Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92084 Cc: drm-intel-fixes@lists.freedesktop.org Fixes: 820da7ae4633 ("Revert "drm/i915: shut up gen8+ SDE irq dmesg noise"") Acked-by: Chris Wilson Acked-by: Daniel Vetter Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1452155350-14658-1-git-send-email-jani.nikula@intel.com (cherry picked from commit 2dfb0b816d224379efc534764388745c474abeb4) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_irq.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 06ef83a705a98da63797a5a570220b6ca36febd4 Author: Chris Wilson Date: Fri Nov 27 13:28:55 2015 +0000 drm/i915: Restore inhibiting the load of the default context Following a GPU reset, we may leave the context in a poorly defined state, and reloading from that context will leave the GPU flummoxed. For secondary contexts, this will lead to that context being banned - but currently it is also causing the default context to become banned, leading to turmoil in the shared state. This is a regression from commit 6702cf16e0ba8b0129f5aa1b6609d4e9c70bc13b [v4.1] Author: Ben Widawsky Date: Mon Mar 16 16:00:58 2015 +0000 drm/i915: Initialize all contexts which quietly introduced the removal of the MI_RESTORE_INHIBIT on the default context. v2: Mark the global default context as uninitialized on GPU reset so that the context-local workarounds are reloaded upon re-enabling. Signed-off-by: Chris Wilson Cc: Michel Thierry Cc: Mika Kuoppala Cc: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1448630935-27377-1-git-send-email-chris@chris-wilson.co.uk Reviewed-by: Mika Kuoppala Cc: stable@vger.kernel.org [danvet: This seems to fix a gpu hand on after the first resume, resulting in any future suspend operation failing with -EIO because the gpu seems to be in a funky state. Somehow this patch fixes that.] Signed-off-by: Daniel Vetter (cherry picked from commit 42f1cae8c079bcceb3cff079fddc3ff8852c788f) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_gem_context.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 5751d0f6c54f32ee19a55d30b1255aa8ab30390e Author: Daniel Vetter Date: Tue Jan 5 17:54:07 2016 +0100 drm/i915: Tune down rpm wakelock debug checks They're causing massive amounts of dmesg noise and hence CI noise all over the place. Enabling them for a bit was good enough to refresh our task list of what's still needed to enable rpm by default. To make sure we're not forgetting to make this noisy again add a FIXME comment. Fixes: da5827c36607 ("drm/i915: add assert_rpm_wakelock_held helper") Cc: Imre Deak Cc: drm-intel-fixes@lists.freedesktop.org Cc: Chris Wilson Acked-by: Chris Wilson Link: http://patchwork.freedesktop.org/patch/msgid/1452012847-4737-1-git-send-email-daniel.vetter@ffwll.ch Signed-off-by: Daniel Vetter (cherry picked from commit becd9ca2de656ccd8d02c434742388aead336147) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_drv.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 5f008c98598b80a64d7d8dc93b6c82af18783ac3 Author: Jiri Kosina Date: Wed Jan 13 09:43:46 2016 +0100 Revert "INPUT: xpad: switch Logitech G920 Wheel into HID mode" This reverts commit 27b9d5a254dcbc6095404c1bab7c335419601eb8. I am reverting this one, while keeping the rest of the G920 support in, so that it immediately starts working once proper HID-mode switching is implemented. Quoting Dmitry Torokhov for rationale: == It is wrong. Aside form the fact that IMO xpad.c is the wrong place for this code to be in, why are we waiting for the input device to be opened by userspace before we do the switch instead of doing it immediately? == Several people (Simon Wood and Michal Maly) expressed the intent to work on proper HID switching in a short term. Signed-off-by: Jiri Kosina drivers/input/joystick/xpad.c | 16 ---------------- 1 file changed, 16 deletions(-) commit a5f0edf63bdff339fab5bb35729e0a41e7fe31c1 Author: Michał Winiarski Date: Tue Dec 29 18:24:52 2015 +0100 drm/i915: Avoid writing relocs with addresses in non-canonical form According to PRM, some parts of HW require the addresses to be in a canonical form, where bits [63:48] == [47]. Let's convert addresses to canonical form prior to relocating and return converted offsets to userspace. We also need to make sure that userspace is using addresses in canonical form in case of softpin. v2: Whitespace fixup, gen8_canonical_addr description (Chris, Ville) v3: Rebase on top of softpin, fix a hole in relocate_entry, s/expect/require (Chris) v4: Handle softpin in validate_exec_list (Chris) v5: Convert back to canonical form at copy_to_user time (Chris) v6: Don't use struct exec_object2 in place of exec_object v7: Use sign_extend64 for converting to canonical form (Joonas), reject non-canonical and non-page-aligned offset for softpin (Chris) v8: Convert back to non-canonical form in a function, split the test for EXEC_OBJECT_PINNED (Chris) v9: s/canonial/canonical, drop accidental double newline (Chris) Cc: Chris Wilson Cc: Michel Thierry Cc: Ville Syrjälä Signed-off-by: Michał Winiarski Link: http://patchwork.freedesktop.org/patch/msgid/1451409892-13708-1-git-send-email-michal.winiarski@intel.com Testcase: igt/gem_bad_reloc/negative-reloc-blt Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92699 Cc: drm-intel-fixes@lists.freedesktop.org Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter (cherry picked from commit 934acce3c069a3d8b14085957248444145d9ec1b) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_gem_execbuffer.c | 52 +++++++++++++++++++++++++++--- 1 file changed, 48 insertions(+), 4 deletions(-) commit 7dbded06efe41367163e903331ef45bd765a62a4 Author: Chanwoo Choi Date: Thu Nov 5 13:30:18 2015 +0900 MAINTAINERS: Add devfreq-event entry This patch adds the devfreq-event[1] entry to review the patches as just supporter. Patches will be picked up by Myungjoo Ham on devfreq git repository. [1] https://lkml.org/lkml/2015/1/25/573 Signed-off-by: Chanwoo Choi Signed-off-by: Myungjoo Ham MAINTAINERS | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 6a3cd7220364ad9e92c926600500f225c02ae3ac Author: Chanwoo Choi Date: Thu Nov 5 13:30:17 2015 +0900 MAINTAINERS: Add missing git repository and directory for devfreq This patch adds the missing git repository infomation and directory for devfreq. When using get_maintainer.pl, the result should include the correct maintainer information. Suggested-by: Joe Perches [cw00.chio: Add missing directory for devfreq] Signed-off-by: Chanwoo Choi Signed-off-by: Myungjoo Ham MAINTAINERS | 3 +++ 1 file changed, 3 insertions(+) commit 34bd322070a41898b032f59a0dfd345627fc1e7e Author: MyungJoo Ham Date: Mon Nov 23 15:45:36 2015 +0900 PM / devfreq: Do not show statistics if it's not ready. Before this patch for a device without statistics support, $ cat trans_stat From : To : time(ms) Total transitions : 0 $ After this patch applied for such a device, $ cat trans_stat Not Supported. $ Signed-off-by: MyungJoo Ham drivers/devfreq/devfreq.c | 2 ++ 1 file changed, 2 insertions(+) commit d7df1e464749650056f511e75b3d4e53cfac5d53 Author: Chanwoo Choi Date: Thu Nov 19 16:28:46 2015 +0900 PM / devfreq: Modify the indentation of trans_stat sysfs for readability This patch modifies the indentation of 'trans_stat' sysfs to improve readability. The 1GHz is 1000,000,000. So it needs the least 10 position to show the GHz unit. - Before apply this patch, -sh-3.2# cat trans_stat From : To :50000000100000000133000000200000000400000000 time(ms) *50000000: 0 0 0 0 7 1817635 100000000: 4 0 0 0 4 1590 133000000: 1 4 0 0 7 975 200000000: 2 2 7 0 1 2655 400000000: 0 2 5 12 0 1860 Total transition : 58 - After apply this patch, -sh-3.2# cat trans_stat From : To : 50000000 100000000 133000000 200000000 400000000 time(ms) * 50000000: 0 0 0 0 7 14405 100000000: 4 0 0 0 3 2015 133000000: 2 3 0 0 7 1020 200000000: 1 2 7 0 0 2970 400000000: 0 2 5 10 0 1575 Total transition : 53 Signed-off-by: Chanwoo Choi Signed-off-by: MyungJoo Ham drivers/devfreq/devfreq.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 0ec09ac2cebe9769491a470c33edff0f873ff79d Author: Chanwoo Choi Date: Wed Nov 18 14:49:02 2015 +0900 PM / devfreq: Set the freq_table of devfreq device This patch initialize the freq_table array of each devfreq device by using the devfreq_set_freq_table(). If freq_table is NULL, the devfreq framework is not able to support the frequency transtion information through sysfs. The OPP core uses the integer type for the number of opps in the opp list and uses the 'unsigned long' type for each frequency. So, this patch modifies the type of some variable as following: - the type of freq_table : unsigned int -> unsigned long - the type of max_state : unsigned int -> int - Corrected types, format strings, mutex usages by MyungJoo Signed-off-by: Chanwoo Choi Signed-off-by: MyungJoo Ham drivers/devfreq/devfreq.c | 50 +++++++++++++++++++++++++++++++++++++++++++++-- include/linux/devfreq.h | 2 +- 2 files changed, 49 insertions(+), 3 deletions(-) commit 3104fa3081126c9bda35793af5f335d0ee0d5818 Author: Chanwoo Choi Date: Fri Nov 13 19:25:28 2015 +0900 PM / devfreq: Add show_one macro to delete the duplicate code This patch adds the 'show_one' macro to simplify the duplicate code of both max_freq_show() and min_freq_show(). Signed-off-by: Chanwoo Choi Signed-off-by: MyungJoo Ham drivers/devfreq/devfreq.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) commit e54916c6e1d0b939999eb38011202dd9064d5788 Author: Chanwoo Choi Date: Thu Nov 19 17:03:44 2015 +0900 PM / devfreq: event: Fix the error and warning from script/checkpatch.pl This patch just fixes following error and warning by using scripts/checkpatch.pl. - Follwoing issue from checkpatch.pl: ERROR: space prohibited before that close parenthesis ')' + if (count < 0 ) { WARNING: line over 80 characters + ptr = devres_alloc(devm_devfreq_event_release, sizeof(*ptr), GFP_KERNEL); Signed-off-by: Chanwoo Choi Signed-off-by: MyungJoo Ham drivers/devfreq/devfreq-event.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit df678ff7531990ba11cc0b921609a7e229d1323c Author: Chanwoo Choi Date: Tue Nov 17 14:25:06 2015 +0900 PM / devfreq: event: Remove the error log of devfreq_event_get_edev_by_phandle() This patch just removes the error log when devfreq_event_get_edev_by_phandle() fail to get the instance of devfreq-event device. It is related to sequence of the probe() of each driver. So, this error log might show the always during kernel booting. Each driver using this function can show the appropriate error log. Signed-off-by: Chanwoo Choi Signed-off-by: MyungJoo Ham drivers/devfreq/devfreq-event.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) commit 809d9516da73345cca587743b57e45e9095d851e Author: Laxman Dewangan Date: Wed Jan 13 00:14:19 2016 -0800 Input: gpio-keys - allow disabling individual buttons in DT Add support to disable buttons from DT via status property if given button is not supported on given platforms. This will help re-using existing dtsi files across multiple platforms. Signed-off-by: Laxman Dewangan Signed-off-by: Dmitry Torokhov drivers/input/keyboard/gpio_keys.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c4dc5f8c953f23d45329abc8b8e04f0c1e314a75 Author: Laxman Dewangan Date: Tue Jan 12 22:56:40 2016 -0800 Input: gpio-keys - allow setting input device name in DT Allow specifying name if input device via device tree property. This helps userspace code to get name and perform proper event to key mapping in some cases (for example, on Android). Signed-off-by: Laxman Dewangan Signed-off-by: Dmitry Torokhov Documentation/devicetree/bindings/input/gpio-keys.txt | 1 + drivers/input/keyboard/gpio_keys.c | 2 ++ 2 files changed, 3 insertions(+) commit f246c941549c715a66a4477c3053569b2f5b8823 Author: Nicholas Bellinger Date: Thu Jan 7 22:19:21 2016 -0800 ib_srpt: Convert acl lookup to modern get_initiator_node_acl usage This patch does a simple conversion of ib_srpt code to use proper modern core_tpg_get_initiator_node_acl() lookup using se_node_acl->acl_kref, and drops the legacy internal list usage from srpt_lookup_acl(). This involves doing transport_init_session() earlier, and making sure transport_free_session() is called during a se_node_acl lookup failure to drop the last ->acl_kref. Also, it adds a minor backwards-compat hack to avoid the potential for user-space wrt node-acl WWPN formatting by simply stripping off '0x' prefix from ch->sess_name, and retrying once if core_tpg_get_initiator_node_acl() fails. Finally, go ahead and drop port_acl_list port_acl_lock since they are no longer used. Cc: Vu Pham Cc: Sagi Grimberg Cc: Christoph Hellwig Cc: Hannes Reinecke Cc: Andy Grover Signed-off-by: Nicholas Bellinger drivers/infiniband/ulp/srpt/ib_srpt.c | 103 ++++++++++------------------------ drivers/infiniband/ulp/srpt/ib_srpt.h | 8 --- 2 files changed, 30 insertions(+), 81 deletions(-) commit 7fbef3d0c2f6063ed12e7f3d74ba2a49111154f9 Author: Nicholas Bellinger Date: Thu Jan 7 22:17:16 2016 -0800 tcm_fc: Convert acl lookup to modern get_initiator_node_acl usage This patch does a simple conversion of tcm_fc code to use proper modern core_tpg_get_initiator_node_acl() lookup using se_node_acl->acl_kref, and drops the legacy list walk from ft_acl_get(). Note the original lookup also took node_name into account, but since ft_init_nodeacl() only ever sets port_name for se_node_acl->acl_group within configfs, this is purely a mechanical change. As per HCH, go ahead and fold ft_acl_get() into original caller. Cc: Vasu Dev Cc: Sagi Grimberg Cc: Christoph Hellwig Cc: Hannes Reinecke Cc: Andy Grover Signed-off-by: Nicholas Bellinger drivers/target/tcm_fc/tcm_fc.h | 1 - drivers/target/tcm_fc/tfc_conf.c | 25 ------------------------- drivers/target/tcm_fc/tfc_sess.c | 25 ++++++++++++++++--------- 3 files changed, 16 insertions(+), 35 deletions(-) commit c4a359a0049f2e17b012b31e801e96566f6391e5 Author: Takashi Iwai Date: Wed Jan 13 07:20:13 2016 +0100 ALSA: usb-audio: Fix mixer ctl regression of Native Instrument devices The commit [da6d276957ea: ALSA: usb-audio: Add resume support for Native Instruments controls] brought a regression where the Native Instrument audio devices don't get the correct value at update due to the missing shift at writing. This patch addresses it. Fixes: da6d276957ea ('ALSA: usb-audio: Add resume support for Native Instruments controls') Reported-and-tested-by: Owen Williams Cc: Signed-off-by: Takashi Iwai sound/usb/mixer_quirks.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0a1f90a982e85f4921bed606a6b41a24f4de2ae1 Author: Hui Wang Date: Wed Jan 13 11:51:38 2016 +0800 ALSA: hda - fix the headset mic detection problem for a Dell laptop The machine uses codec alc255, and the pin configuration value for pin 0x14 on this machine is 0x90171130 which is not in the pin quirk table yet. Cc: stable@vger.kernel.org BugLink: https://bugs.launchpad.net/bugs/1533461 Signed-off-by: Hui Wang Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 4 ++++ 1 file changed, 4 insertions(+) commit f1640c3ddeec12804bc9a21feee85fc15aca95f6 Author: wangweidong Date: Wed Jan 13 11:06:41 2016 +0800 bgmac: fix a missing check for build_skb when build_skb failed, it may occure a NULL pointer. So add a 'NULL check' for it. Signed-off-by: Weidong Wang Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bgmac.c | 5 +++++ 1 file changed, 5 insertions(+) commit ddb5388ffd0ad75d07e7b78181a0b579824ba6f0 Merge: ccdf6ce 6799060 Author: David S. Miller Date: Wed Jan 13 00:21:27 2016 -0500 Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux commit 67990608c8b95d2b8ccc29932376ae73d5818727 Merge: c17488d a889f76 Author: Linus Torvalds Date: Tue Jan 12 20:25:09 2016 -0800 Merge tag 'pm+acpi-4.5-rc1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull oower management and ACPI updates from Rafael Wysocki: "As far as the number of commits goes, ACPICA takes the lead this time, followed by cpufreq and the device properties framework changes. The most significant new feature is the debugfs-based interface to the ACPICA's AML debugger added in the previous cycle and a new user space tool for accessing it. On the cpufreq front, the core is updated to handle governors more efficiently, particularly on systems where a single cpufreq policy object is shared between multiple CPUs, and there are quite a few changes in drivers (intel_pstate, cpufreq-dt etc). The device properties framework is updated to handle built-in (ie included in the kernel itself) device properties better, among other things by adding a fallback mechanism that will allow drivers to provide default properties to be used in case the plaform firmware doesn't provide the properties expected by them. The Operating Performance Points (OPP) framework gets new DT bindings and debugfs support. A new cpufreq driver for ST platforms is added and the ACPI driver for AMD SoCs will now support the APM X-Gene ACPI I2C device. The rest is mostly fixes and cleanups all over. Specifics: - Add a debugfs-based interface for interacting with the ACPICA's AML debugger introduced in the previous cycle and a new user space tool for that, fix some bugs related to the AML debugger and clean up the code in question (Lv Zheng, Dan Carpenter, Colin Ian King, Markus Elfring). - Update ACPICA to upstream revision 20151218 including a number of fixes and cleanups in the ACPICA core (Bob Moore, Lv Zheng, Labbe Corentin, Prarit Bhargava, Colin Ian King, David E Box, Rafael Wysocki). In particular, the previously added erroneous support for the _SUB object is dropped, the concatenate operator will support all ACPI objects now, the Debug Object handling is improved, the SuperName handling of parameters being control methods is fixed, the ObjectType operator handling is updated to follow ACPI 5.0A and the handling of CondRefOf and RefOf is updated accordingly, module- level code will be executed after loading each ACPI table now (instead of being run once after all tables containing AML have been loaded), the Operation Region handlers management is updated to fix some reported problems and a the ACPICA code in the kernel is more in line with the upstream now. - Update the ACPI backlight driver to provide information on whether or not it will generate key-presses for brightness change hotkeys and update some platform drivers (dell-wmi, thinkpad_acpi) to use that information to avoid sending double key-events to users pace for these, add new ACPI backlight quirks (Hans de Goede, Aaron Lu, Adrien Schildknecht). - Improve the ACPI handling of interrupt GPIOs (Christophe Ricard). - Fix the handling of the list of device IDs of device objects found in the ACPI namespace and add a helper for checking if there is a device object for a given device ID (Lukas Wunner). - Change the logic in the ACPI namespace scanning code to create struct acpi_device objects for all ACPI device objects found in the namespace even if _STA fails for them which helps to avoid device enumeration problems on Microsoft Surface 3 (Aaron Lu). - Add support for the APM X-Gene ACPI I2C device to the ACPI driver for AMD SoCs (Loc Ho). - Fix the long-standing issue with the DMA controller on Intel SoCs where ACPI tables have no power management support for the DMA controller itself, but it can be powered off automatically when the last (other) device on the SoC is powered off via ACPI and clean up the ACPI driver for Intel SoCs (acpi-lpss) after previous attempts to fix that problem (Andy Shevchenko). - Assorted ACPI fixes and cleanups (Andy Lutomirski, Colin Ian King, Javier Martinez Canillas, Ken Xue, Mathias Krause, Rafael Wysocki, Sinan Kaya). - Update the device properties framework for better handling of built-in properties, add support for built-in properties to the platform bus type, update the MFD subsystem's handling of device properties and add support for passing default configuration data as device properties to the intel-lpss MFD drivers, convert the designware I2C driver to use the unified device properties API and add a fallback mechanism for using default built-in properties if the platform firmware fails to provide the properties as expected by drivers (Andy Shevchenko, Mika Westerberg, Heikki Krogerus, Andrew Morton). - Add new Device Tree bindings to the Operating Performance Points (OPP) framework and update the exynos4412 DT binding accordingly, introduce debugfs support for the OPP framework (Viresh Kumar, Bartlomiej Zolnierkiewicz). - Migrate the mt8173 cpufreq driver to the new OPP bindings (Pi-Cheng Chen). - Update the cpufreq core to make the handling of governors more efficient, especially on systems where policy objects are shared between multiple CPUs (Viresh Kumar, Rafael Wysocki). - Fix cpufreq governor handling on configurations with CONFIG_HZ_PERIODIC set (Chen Yu). - Clean up the cpufreq core code related to the boost sysfs knob support and update the ACPI cpufreq driver accordingly (Rafael Wysocki). - Add a new cpufreq driver for ST platforms and corresponding Device Tree bindings (Lee Jones). - Update the intel_pstate driver to allow the P-state selection algorithm used by it to depend on the CPU ID of the processor it is running on, make it use a special P-state selection algorithm (with an IO wait time compensation tweak) on Atom CPUs based on the Airmont and Silvermont cores so as to reduce their energy consumption and improve intel_pstate documentation (Philippe Longepe, Srinivas Pandruvada). - Update the cpufreq-dt driver to support registering cooling devices that use the (P * V^2 * f) dynamic power draw formula where V is the voltage, f is the frequency and P is a constant coefficient provided by Device Tree and update the arm_big_little cpufreq driver to use that support (Punit Agrawal). - Assorted cpufreq driver (cpufreq-dt, qoriq, pcc-cpufreq, blackfin-cpufreq) updates (Andrzej Hajda, Hongtao Jia, Jacob Tanenbaum, Markus Elfring). - cpuidle core tweaks related to polling and measured_us calculation (Rik van Riel). - Removal of modularity from a few cpuidle drivers (clps711x, ux500, exynos) that cannot be built as modules in practice (Paul Gortmaker). - PM core update to prevent devices from being probed during system suspend/resume which is generally problematic and may lead to inconsistent behavior (Grygorii Strashko). - Assorted updates of the PM core and related code (Julia Lawall, Manuel Pégourié-Gonnard, Maruthi Bayyavarapu, Rafael Wysocki, Ulf Hansson). - PNP bus type updates (Christophe Le Roy, Heiner Kallweit). - PCI PM code cleanups (Jarkko Nikula, Julia Lawall). - cpupower tool updates (Jacob Tanenbaum, Thomas Renninger)" * tag 'pm+acpi-4.5-rc1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (177 commits) PM / clk: don't leave clocks enabled when driver not bound i2c: dw: Add APM X-Gene ACPI I2C device support ACPI / APD: Add APM X-Gene ACPI I2C device support ACPI / LPSS: change 'does not have' to 'has' in comment Revert "dmaengine: dw: platform: provide platform data for Intel" dmaengine: dw: return immediately from IRQ when DMA isn't in use dmaengine: dw: platform: power on device on shutdown ACPI / LPSS: override power state for LPSS DMA device PM / OPP: Use snprintf() instead of sprintf() Documentation: cpufreq: intel_pstate: enhance documentation ACPI, PCI, irq: remove redundant check for null string pointer ACPI / video: driver must be registered before checking for keypresses cpufreq-dt: fix handling regulator_get_voltage() result cpufreq: governor: Fix negative idle_time when configured with CONFIG_HZ_PERIODIC PM / sleep: Add support for read-only sysfs attributes ACPI: Fix white space in a structure definition ACPI / SBS: fix inconsistent indenting inside if statement PNP: respect PNP_DRIVER_RES_DO_NOT_CHANGE when detaching ACPI / PNP: constify device IDs ACPI / PCI: Simplify acpi_penalize_isa_irq() ... commit c17488d06666153a14dd3f21bd10eba58383f6c1 Merge: 34a9304 5156dca Author: Linus Torvalds Date: Tue Jan 12 20:04:15 2016 -0800 Merge tag 'trace-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace Pull tracing updates from Steven Rostedt: "Not much new with tracing for this release. Mostly just clean ups and minor fixes. Here's what else is new: - A new TRACE_EVENT_FN_COND macro, combining both _FN and _COND for those that want both. - New selftest to test the instance create and delete - Better debug output when ftrace fails" * tag 'trace-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (24 commits) ftrace: Fix the race between ftrace and insmod ftrace: Add infrastructure for delayed enabling of module functions x86: ftrace: Fix the comments for ftrace_modify_code_direct() tracing: Fix comment to use tracing_on over tracing_enable metag: ftrace: Fix the comments for ftrace_modify_code sh: ftrace: Fix the comments for ftrace_modify_code() ia64: ftrace: Fix the comments for ftrace_modify_code() ftrace: Clean up ftrace_module_init() code ftrace: Join functions ftrace_module_init() and ftrace_init_module() tracing: Introduce TRACE_EVENT_FN_COND macro tracing: Use seq_buf_used() in seq_buf_to_user() instead of len bpf: Constify bpf_verifier_ops structure ftrace: Have ftrace_ops_get_func() handle RCU and PER_CPU flags too ftrace: Remove use of control list and ops ftrace: Fix output of enabled_functions for showing tramp ftrace: Fix a typo in comment ftrace: Show all tramps registered to a record on ftrace_bug() ftrace: Add variable ftrace_expected for archs to show expected code ftrace: Add new type to distinguish what kind of ftrace_bug() tracing: Update cond flag when enabling or disabling a trigger ... commit 34a9304a96d6351c2d35dcdc9293258378fc0bd8 Merge: aee3bfa 6255c46 Author: Linus Torvalds Date: Tue Jan 12 19:20:32 2016 -0800 Merge branch 'for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup Pull cgroup updates from Tejun Heo: - cgroup v2 interface is now official. It's no longer hidden behind a devel flag and can be mounted using the new cgroup2 fs type. Unfortunately, cpu v2 interface hasn't made it yet due to the discussion around in-process hierarchical resource distribution and only memory and io controllers can be used on the v2 interface at the moment. - The existing documentation which has always been a bit of mess is relocated under Documentation/cgroup-v1/. Documentation/cgroup-v2.txt is added as the authoritative documentation for the v2 interface. - Some features are added through for-4.5-ancestor-test branch to enable netfilter xt_cgroup match to use cgroup v2 paths. The actual netfilter changes will be merged through the net tree which pulled in the said branch. - Various cleanups * 'for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: cgroup: rename cgroup documentations cgroup: fix a typo. cgroup: Remove resource_counter.txt in Documentation/cgroup-legacy/00-INDEX. cgroup: demote subsystem init messages to KERN_DEBUG cgroup: Fix uninitialized variable warning cgroup: put controller Kconfig options in meaningful order cgroup: clean up the kernel configuration menu nomenclature cgroup_pids: fix a typo. Subject: cgroup: Fix incomplete dd command in blkio documentation cgroup: kill cgrp_ss_priv[CGROUP_CANFORK_COUNT] and friends cpuset: Replace all instances of time_t with time64_t cgroup: replace unified-hierarchy.txt with a proper cgroup v2 documentation cgroup: rename Documentation/cgroups/ to Documentation/cgroup-legacy/ cgroup: replace __DEVEL__sane_behavior with cgroup2 fs type commit aee3bfa3307cd0da2126bdc0ea359dabea5ee8f7 Merge: c597b6b 415b6f1 Author: Linus Torvalds Date: Tue Jan 12 18:57:02 2016 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next Pull networking updates from Davic Miller: 1) Support busy polling generically, for all NAPI drivers. From Eric Dumazet. 2) Add byte/packet counter support to nft_ct, from Floriani Westphal. 3) Add RSS/XPS support to mvneta driver, from Gregory Clement. 4) Implement IPV6_HDRINCL socket option for raw sockets, from Hannes Frederic Sowa. 5) Add support for T6 adapter to cxgb4 driver, from Hariprasad Shenai. 6) Add support for VLAN device bridging to mlxsw switch driver, from Ido Schimmel. 7) Add driver for Netronome NFP4000/NFP6000, from Jakub Kicinski. 8) Provide hwmon interface to mlxsw switch driver, from Jiri Pirko. 9) Reorganize wireless drivers into per-vendor directories just like we do for ethernet drivers. From Kalle Valo. 10) Provide a way for administrators "destroy" connected sockets via the SOCK_DESTROY socket netlink diag operation. From Lorenzo Colitti. 11) Add support to add/remove multicast routes via netlink, from Nikolay Aleksandrov. 12) Make TCP keepalive settings per-namespace, from Nikolay Borisov. 13) Add forwarding and packet duplication facilities to nf_tables, from Pablo Neira Ayuso. 14) Dead route support in MPLS, from Roopa Prabhu. 15) TSO support for thunderx chips, from Sunil Goutham. 16) Add driver for IBM's System i/p VNIC protocol, from Thomas Falcon. 17) Rationalize, consolidate, and more completely document the checksum offloading facilities in the networking stack. From Tom Herbert. 18) Support aborting an ongoing scan in mac80211/cfg80211, from Vidyullatha Kanchanapally. 19) Use per-bucket spinlock for bpf hash facility, from Tom Leiming. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1375 commits) net: bnxt: always return values from _bnxt_get_max_rings net: bpf: reject invalid shifts phonet: properly unshare skbs in phonet_rcv() dwc_eth_qos: Fix dma address for multi-fragment skbs phy: remove an unneeded condition mdio: remove an unneed condition mdio_bus: NULL dereference on allocation error net: Fix typo in netdev_intersect_features net: freescale: mac-fec: Fix build error from phy_device API change net: freescale: ucc_geth: Fix build error from phy_device API change bonding: Prevent IPv6 link local address on enslaved devices IB/mlx5: Add flow steering support net/mlx5_core: Export flow steering API net/mlx5_core: Make ipv4/ipv6 location more clear net/mlx5_core: Enable flow steering support for the IB driver net/mlx5_core: Initialize namespaces only when supported by device net/mlx5_core: Set priority attributes net/mlx5_core: Connect flow tables net/mlx5_core: Introduce modify flow table command net/mlx5_core: Managing root flow table ... commit c597b6bcd5c624534afc3df65cdc42bb05173bca Merge: 60b7eca 48d62764 Author: Linus Torvalds Date: Tue Jan 12 18:51:14 2016 -0800 Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 Pull crypto update from Herbert Xu: "Algorithms: - Add RSA padding algorithm Drivers: - Add GCM mode support to atmel - Add atmel support for SAMA5D2 devices - Add cipher modes to talitos - Add rockchip driver for rk3288 - Add qat support for C3XXX and C62X" * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (103 commits) crypto: hifn_795x, picoxcell - use ablkcipher_request_cast crypto: qat - fix SKU definiftion for c3xxx dev crypto: qat - Fix random config build issue crypto: ccp - use to_pci_dev and to_platform_device crypto: qat - Rename dh895xcc mmp firmware crypto: 842 - remove WARN inside printk crypto: atmel-aes - add debug facilities to monitor register accesses. crypto: atmel-aes - add support to GCM mode crypto: atmel-aes - change the DMA threshold crypto: atmel-aes - fix the counter overflow in CTR mode crypto: atmel-aes - fix atmel-ctr-aes driver for RFC 3686 crypto: atmel-aes - create sections to regroup functions by usage crypto: atmel-aes - fix typo and indentation crypto: atmel-aes - use SIZE_IN_WORDS() helper macro crypto: atmel-aes - improve performances of data transfer crypto: atmel-aes - fix atmel_aes_remove() crypto: atmel-aes - remove useless AES_FLAGS_DMA flag crypto: atmel-aes - reduce latency of DMA completion crypto: atmel-aes - remove unused 'err' member of struct atmel_aes_dev crypto: atmel-aes - rework crypto request completion ... commit 60b7eca1dc2ec066916b3b7ac6ad89bea13cb9af Merge: 420d12d 4fdd1d5 Author: Linus Torvalds Date: Tue Jan 12 18:20:20 2016 -0800 Merge tag 'upstream-4.5-rc1' of git://git.infradead.org/linux-ubifs Pull UBI/UBIFS updates from Richard Weinberger: "This contains three changes - two cleanups and one UBI wear leveling improvement by Sebastian Siewior" * tag 'upstream-4.5-rc1' of git://git.infradead.org/linux-ubifs: ubifs: Use XATTR_*_PREFIX_LEN UBIFS: add a comment in key.h for unused parameter mtd: ubi: wl: avoid erasing a PEB which is empty commit 420d12d6ade1e9c02b98fb9a381a17d7ccc7d35e Merge: 4d58967 1609bac Author: Linus Torvalds Date: Tue Jan 12 18:15:34 2016 -0800 Merge tag 'configfs-for-linus' of git://git.infradead.org/users/hch/configfs Pull configfs updates from Christoph Hellwig: "I'm assisting Joel as co-maintainer and patch monkey now, and you will see pull reuquests from me for a while. Besides the MAINTAINERS update there is just a single change, which adds support for binary attributes to configfs, which are very similar to the sysfs binary attributes. Thanks to Pantelis Antoniou! You will see another actually bigger set of configfs changes in the SCSI target pull from Nic - those were merged before this new tree even existed" * tag 'configfs-for-linus' of git://git.infradead.org/users/hch/configfs: configfs: add myself as co-maintainer, updated git tree configfs: implement binary attributes commit 4d58967783611c5676820b8d47a9b6b0bb456995 Merge: 33caf82 a93a9983 Author: Linus Torvalds Date: Tue Jan 12 18:09:35 2016 -0800 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. Last window's set was short, but I warned that this one would be bigger, and so it is. We've got 19 patches: - A patch from Abhi Das to propagate the GFS2_DIF_SYSTEM bit so that newly added journals don't get flagged, deleted, and recreated by fsck.gfs2. - Two patches from Andreas Gruenbacher to improve GFS2 performance where extended attributes are involved. - A patch from Andy Price to fix a suspicious rcu dereference error. - Two patches from Ben Marzinski that rework how GFS2's NFS cookies are managed. This fixes readdir problems with nfs-over-gfs2. - A patch from Ben Marzinski that fixes a race in unmounting GFS2. - A set of four patches from me to move the resource group reservations inside the gfs2 inode to improve performance and fix a bug whereby get_write_access improperly prevented some operations like chown. - A patch from me to spinlock-protect the setting of system statfs file data. This was causing small discrepancies between df and du. - A patch from me to reintroduce a timeout while clearing glocks which was accidentally dropped some time ago. - A patch from me to wait for iopen glock dequeues in order to improve deleting of files that were unlinked from a different cluster node. - A patch from me to ensure metadata address spaces get truncated when an inode is evicted. - A patch from me to fix a bug in which a memory leak could occur in some error cases when inodes were trying to be created. - A patch to consistently use iopen glocks to transition from the unlinked state to the deleted state. - A patch to fix a glock reference count error when inode creation fails. - A patch from Junxiao Bi to fix an flock panic. - A patch from Markus Elfring that removes an unnecessary if" * tag 'gfs2-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2: gfs2: fix flock panic issue GFS2: Don't do glock put on when inode creation fails GFS2: Always use iopen glock for gl_deletes GFS2: Release iopen glock in gfs2_create_inode error cases GFS2: Truncate address space mapping when deleting an inode GFS2: Wait for iopen glock dequeues gfs2: clear journal live bit in gfs2_log_flush gfs2: change gfs2 readdir cookie gfs2: keep offset when splitting dir leaf blocks GFS2: Reintroduce a timeout in function gfs2_gl_hash_clear GFS2: Update master statfs buffer with sd_statfs_spin locked GFS2: Reduce size of incore inode GFS2: Make rgrp reservations part of the gfs2_inode structure GFS2: Extract quota data from reservations structure (revert 5407e24) gfs2: Extended attribute readahead optimization gfs2: Extended attribute readahead GFS2: Use rht_for_each_entry_rcu in glock_hash_walk GFS2: Delete an unnecessary check before the function call "iput" gfs2: Automatically set GFS2_DIF_SYSTEM flag on system files commit a61674bdfc7c2bf909c4010699607b62b69b7bec Author: Ulrich Weigand Date: Tue Jan 12 23:14:23 2016 +1100 powerpc/module: Handle R_PPC64_ENTRY relocations GCC 6 will include changes to generated code with -mcmodel=large, which is used to build kernel modules on powerpc64le. This was necessary because the large model is supposed to allow arbitrary sizes and locations of the code and data sections, but the ELFv2 global entry point prolog still made the unconditional assumption that the TOC associated with any particular function can be found within 2 GB of the function entry point: func: addis r2,r12,(.TOC.-func)@ha addi r2,r2,(.TOC.-func)@l .localentry func, .-func To remove this assumption, GCC will now generate instead this global entry point prolog sequence when using -mcmodel=large: .quad .TOC.-func func: .reloc ., R_PPC64_ENTRY ld r2, -8(r12) add r2, r2, r12 .localentry func, .-func The new .reloc triggers an optimization in the linker that will replace this new prolog with the original code (see above) if the linker determines that the distance between .TOC. and func is in range after all. Since this new relocation is now present in module object files, the kernel module loader is required to handle them too. This patch adds support for the new relocation and implements the same optimization done by the GNU linker. Cc: stable@vger.kernel.org Signed-off-by: Ulrich Weigand Signed-off-by: Michael Ellerman arch/powerpc/include/uapi/asm/elf.h | 2 ++ arch/powerpc/kernel/module_64.c | 27 +++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) commit 2e50c4bef77511b42cc226865d6bc568fa7f8769 Author: Ulrich Weigand Date: Tue Jan 12 23:14:22 2016 +1100 scripts/recordmcount.pl: support data in text section on powerpc If a text section starts out with a data blob before the first function start label, disassembly parsing doing in recordmcount.pl gets confused on powerpc, leading to creation of corrupted module objects. This was not a problem so far since the compiler would never create such text sections. However, this has changed with a recent change in GCC 6 to support distances of > 2GB between a function and its assoicated TOC in the ELFv2 ABI, exposing this problem. There is already code in recordmcount.pl to handle such data blobs on the sparc64 platform. This patch uses the same method to handle those on powerpc as well. Cc: stable@vger.kernel.org Acked-by: Steven Rostedt Signed-off-by: Ulrich Weigand Signed-off-by: Michael Ellerman scripts/recordmcount.pl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit c88c5d43732a0356f99e5e4d1ad62ab1ea516b81 Author: Russell Currey Date: Wed Jan 13 12:04:32 2016 +1100 powerpc/powernv: Fix OPAL_CONSOLE_FLUSH prototype and usages The recently added OPAL API call, OPAL_CONSOLE_FLUSH, originally took no parameters and returned nothing. The call was updated to accept the terminal number to flush, and returned various values depending on the state of the output buffer. The prototype has been updated and its usage in the OPAL kmsg dumper has been modified to support its new behaviour as an incremental flush. Signed-off-by: Russell Currey Signed-off-by: Michael Ellerman arch/powerpc/include/asm/opal.h | 2 +- arch/powerpc/platforms/powernv/opal-kmsg.c | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) commit 33caf82acf4dc420bf0f0136b886f7b27ecf90c5 Merge: ca9706a bbddca8 Author: Linus Torvalds Date: Tue Jan 12 17:11:47 2016 -0800 Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull misc vfs updates from Al Viro: "All kinds of stuff. That probably should've been 5 or 6 separate branches, but by the time I'd realized how large and mixed that bag had become it had been too close to -final to play with rebasing. Some fs/namei.c cleanups there, memdup_user_nul() introduction and switching open-coded instances, burying long-dead code, whack-a-mole of various kinds, several new helpers for ->llseek(), assorted cleanups and fixes from various people, etc. One piece probably deserves special mention - Neil's lookup_one_len_unlocked(). Similar to lookup_one_len(), but gets called without ->i_mutex and tries to avoid ever taking it. That, of course, means that it's not useful for any directory modifications, but things like getting inode attributes in nfds readdirplus are fine with that. I really should've asked for moratorium on lookup-related changes this cycle, but since I hadn't done that early enough... I *am* asking for that for the coming cycle, though - I'm going to try and get conversion of i_mutex to rwsem with ->lookup() done under lock taken shared. There will be a patch closer to the end of the window, along the lines of the one Linus had posted last May - mechanical conversion of ->i_mutex accesses to inode_lock()/inode_unlock()/inode_trylock()/ inode_is_locked()/inode_lock_nested(). To quote Linus back then: ----- | This is an automated patch using | | sed 's/mutex_lock(&\(.*\)->i_mutex)/inode_lock(\1)/' | sed 's/mutex_unlock(&\(.*\)->i_mutex)/inode_unlock(\1)/' | sed 's/mutex_lock_nested(&\(.*\)->i_mutex,[ ]*I_MUTEX_\([A-Z0-9_]*\))/inode_lock_nested(\1, I_MUTEX_\2)/' | sed 's/mutex_is_locked(&\(.*\)->i_mutex)/inode_is_locked(\1)/' | sed 's/mutex_trylock(&\(.*\)->i_mutex)/inode_trylock(\1)/' | | with a very few manual fixups ----- I'm going to send that once the ->i_mutex-affecting stuff in -next gets mostly merged (or when Linus says he's about to stop taking merges)" * 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (63 commits) nfsd: don't hold i_mutex over userspace upcalls fs:affs:Replace time_t with time64_t fs/9p: use fscache mutex rather than spinlock proc: add a reschedule point in proc_readfd_common() logfs: constify logfs_block_ops structures fcntl: allow to set O_DIRECT flag on pipe fs: __generic_file_splice_read retry lookup on AOP_TRUNCATED_PAGE fs: xattr: Use kvfree() [s390] page_to_phys() always returns a multiple of PAGE_SIZE nbd: use ->compat_ioctl() fs: use block_device name vsprintf helper lib/vsprintf: add %*pg format specifier fs: use gendisk->disk_name where possible poll: plug an unused argument to do_poll amdkfd: don't open-code memdup_user() cdrom: don't open-code memdup_user() rsxx: don't open-code memdup_user() mtip32xx: don't open-code memdup_user() [um] mconsole: don't open-code memdup_user_nul() [um] hostaudio: don't open-code memdup_user() ... commit ca9706a282943899981e83604f2ed13e88ce4239 Merge: fce205e e126758 Author: Linus Torvalds Date: Tue Jan 12 16:49:58 2016 -0800 Merge branch 'work.iov_iter' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull iov_iter infrastructure updates from Al Viro: "A couple of iov_iter updates" * 'work.iov_iter' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: iov_iter: export import_single_range() iov_iter: constify {csum_and_,}copy_to_iter() commit fce205e9da8e063aa1cf3d6583c1a9ed2b82f3f0 Merge: 065019a 2b3909f Author: Linus Torvalds Date: Tue Jan 12 16:30:34 2016 -0800 Merge branch 'work.copy_file_range' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull vfs copy_file_range updates from Al Viro: "Several series around copy_file_range/CLONE" * 'work.copy_file_range' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: btrfs: use new dedupe data function pointer vfs: hoist the btrfs deduplication ioctl to the vfs vfs: wire up compat ioctl for CLONE/CLONE_RANGE cifs: avoid unused variable and label nfsd: implement the NFSv4.2 CLONE operation nfsd: Pass filehandle to nfs4_preprocess_stateid_op() vfs: pull btrfs clone API to vfs layer locks: new locks_mandatory_area calling convention vfs: Add vfs_copy_file_range() support for pagecache copies btrfs: add .copy_file_range file operation x86: add sys_copy_file_range to syscall tables vfs: add copy_file_range syscall and vfs helper commit 85c017f2f1a6ae213b08c9d694202df8c912c614 Merge: 1c0276d 95162dc Author: Dmitry Torokhov Date: Tue Jan 12 16:29:13 2016 -0800 Merge branch 'xpad' into next Bring in update to xpad driver improves support of Xbox One and wireless controllers and fixes handling of concurrent requests to force feedback and LEDs. commit 95162dc8493ed92e5f7dcc8874e58c2ba3836b43 Author: Pavel Rojtberg Date: Tue Jan 12 14:35:51 2016 -0800 Input: xpad - correct xbox one pad device name Apparently the Covert Forces ID is not Covert Forces pad exclusive, but rather denotes a new firmware version that can be found on all new controllers and can be also updated on old hardware using Windows 10. see: https://github.com/paroj/xpad/issues/19 Signed-off-by: Pavel Rojtberg Signed-off-by: Dmitry Torokhov drivers/input/joystick/xpad.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 065019a38feab5f2659cbd44080d528f8dff0b00 Merge: 4f31d77 b4d629a Author: Linus Torvalds Date: Tue Jan 12 15:46:17 2016 -0800 Merge tag 'locks-v4.5-1' of git://git.samba.org/jlayton/linux Pull file locking updates from Jeff Layton: "File locking related changes for v4.5 (pile #1) Highlights: - new Kconfig option to allow disabling mandatory locking (which is racy anyway) - new tracepoints for setlk and close codepaths - fix for a long-standing bug in code that handles races between setting a POSIX lock and close()" * tag 'locks-v4.5-1' of git://git.samba.org/jlayton/linux: locks: rename __posix_lock_file to posix_lock_inode locks: prink more detail when there are leaked locks locks: pass inode pointer to locks_free_lock_context locks: sprinkle some tracepoints around the file locking code locks: don't check for race with close when setting OFD lock locks: fix unlock when fcntl_setlk races with a close fs: make locks.c explicitly non-modular locks: use list_first_entry_or_null() locks: Don't allow mounts in user namespaces to enable mandatory locking locks: Allow disabling mandatory locking at compile time commit 779ff75617099f4defe14e20443b95019a4c5ae8 Author: Keith Busch Date: Tue Jan 12 15:09:31 2016 -0700 NVMe: Export NVMe attributes to sysfs group Adds all controller information to attribute list exposed to sysfs, and appends the reset_controller attribute to it. The nvme device is created with this attribute list, so driver no long manages its attributes. Reported-by: Sujith Pandel Cc: Sujith Pandel Cc: David Milburn Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/core.c | 44 +++++++++++++++++++++++++++++++++----------- 1 file changed, 33 insertions(+), 11 deletions(-) commit e36f6204288088fda50d1c84830340ccb70f85ff Author: Keith Busch Date: Tue Jan 12 15:08:39 2016 -0700 block: split bios to max possible length This splits bio in the middle of a vector to form the largest possible bio at the h/w's desired alignment, and guarantees the bio being split will have some data. The criteria for splitting is changed from the max sectors to the h/w's optimal sector alignment if it is provided. For h/w that advertise their block storage's underlying chunk size, it's a big performance win to not submit commands that cross them. If sector alignment is not provided, this patch uses the max sectors as before. This addresses the performance issue commit d380561113 attempted to fix, but was reverted due to splitting logic error. Signed-off-by: Keith Busch Cc: Jens Axboe Cc: Ming Lei Cc: Kent Overstreet Cc: # 4.4.x- Signed-off-by: Jens Axboe block/blk-merge.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) commit 415b6f19e87e350b13585591859d4fdf50772229 Author: Arnd Bergmann Date: Tue Jan 12 16:05:08 2016 +0100 net: bnxt: always return values from _bnxt_get_max_rings Newly added code in the bnxt driver uses a couple of variables that are never initialized when CONFIG_BNXT_SRIOV is not set, and gcc correctly warns about that: In file included from include/linux/list.h:8:0, from include/linux/module.h:9, from drivers/net/ethernet/broadcom/bnxt/bnxt.c:10: drivers/net/ethernet/broadcom/bnxt/bnxt.c: In function 'bnxt_get_max_rings': include/linux/kernel.h:794:26: warning: 'cp' may be used uninitialized in this function [-Wmaybe-uninitialized] include/linux/kernel.h:794:26: warning: 'tx' may be used uninitialized in this function [-Wmaybe-uninitialized] drivers/net/ethernet/broadcom/bnxt/bnxt.c:5730:11: warning: 'rx' may be used uninitialized in this function [-Wmaybe-uninitialized] drivers/net/ethernet/broadcom/bnxt/bnxt.c:5736:6: note: 'rx' was declared here This changes the condition so that we fall back to using the PF data if VF is not available, and always initialize the variables to something useful. Signed-off-by: Arnd Bergmann Fixes: 6e6c5a57fbe1 ("bnxt_en: Modify bnxt_get_max_rings() to support shared or non shared rings.") Acked-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit 229394e8e62a4191d592842cf67e80c62a492937 Author: Rabin Vincent Date: Tue Jan 12 20:17:08 2016 +0100 net: bpf: reject invalid shifts On ARM64, a BUG() is triggered in the eBPF JIT if a filter with a constant shift that can't be encoded in the immediate field of the UBFM/SBFM instructions is passed to the JIT. Since these shifts amounts, which are negative or >= regsize, are invalid, reject them in the eBPF verifier and the classic BPF filter checker, for all architectures. Signed-off-by: Rabin Vincent Acked-by: Alexei Starovoitov Acked-by: Daniel Borkmann Signed-off-by: David S. Miller kernel/bpf/verifier.c | 10 ++++++++++ net/core/filter.c | 5 +++++ 2 files changed, 15 insertions(+) commit a5cdb68c2c10f0865122656833cd07636a4143ee Author: Keith Busch Date: Tue Jan 12 14:41:18 2016 -0700 NVMe: Shutdown controller only for power-off We don't need to shutdown a controller for a reset. A controller in a shutdown state may take longer to become ready than one that was simply disabled. This patch has the driver shut down a controller only if the device is about to be powered off or being removed. When taking the controller down for a reset reason, the controller will be disabled instead. Function names have been updated in this patch to reflect their changed semantics. Signed-off-by: Keith Busch Reviewed-by: Sagi Grimberg Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 40 +++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 21 deletions(-) commit db3cbfff5bcc0b9a82d8c71f00b9d60fad215871 Author: Keith Busch Date: Tue Jan 12 14:41:17 2016 -0700 NVMe: IO queue deletion re-write The nvme driver deletes IO queues asynchronously since this operation may potentially take an undesirable amount of time with a large number of queues if done serially. The driver used to manage coordinating asynchronous deletions. This patch simplifies that by leveraging the block layer rather than using kthread workers and chaining more complicated callbacks. Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 251 ++++++++++++++++-------------------------------- 1 file changed, 81 insertions(+), 170 deletions(-) commit ccdf6ce6a8dba374668ae9b4d763e19903611c38 Author: Matti Vaittinen Date: Mon Jan 11 14:26:19 2016 +0200 net: netlink: Fix multicast group storage allocation for families with more than one groups Multicast groups are stored in global buffer. Check for needed buffer size incorrectly compares buffer size to first id for family. This means that for families with more than one mcast id one may allocate too small buffer and end up writing rest of the groups to some unallocated memory. Fix the buffer size check to compare allocated space to last mcast id for the family. Tested on ARM using kernel 3.14 Signed-off-by: Matti Vaittinen Signed-off-by: David S. Miller net/netlink/genetlink.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4f31d774dd5239e563f22ffe1403292414e6f779 Merge: 1baa5ef 3e46b25 Author: Linus Torvalds Date: Tue Jan 12 13:27:18 2016 -0800 Merge branch 'for-linus-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml Pull UML updates from Richard Weinberger: "This contains beside of random fixes/cleanups two bigger changes: - seccomp support by Mickaël Salaün - IRQ rework by Anton Ivanov" * 'for-linus-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml: um: Use race-free temporary file creation um: Do not set unsecure permission for temporary file um: Fix build error and kconfig for i386 um: Add seccomp support um: Add full asm/syscall.h support selftests/seccomp: Remove the need for HAVE_ARCH_TRACEHOOK um: Fix ptrace GETREGS/SETREGS bugs um: link with -lpthread um: Update UBD to use pread/pwrite family of functions um: Do not change hard IRQ flags in soft IRQ processing um: Prevent IRQ handler reentrancy uml: flush stdout before forking uml: fix hostfs mknod() commit 1baa5efbeb6eb75de697f7b5931094be33f12005 Merge: c9bed1c 45bdbcf Author: Linus Torvalds Date: Tue Jan 12 13:22:12 2016 -0800 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm Pull KVM updates from Paolo Bonzini: "PPC changes will come next week. - s390: Support for runtime instrumentation within guests, support of 248 VCPUs. - ARM: rewrite of the arm64 world switch in C, support for 16-bit VM identifiers. Performance counter virtualization missed the boat. - x86: Support for more Hyper-V features (synthetic interrupt controller), MMU cleanups" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (115 commits) kvm: x86: Fix vmwrite to SECONDARY_VM_EXEC_CONTROL kvm/x86: Hyper-V SynIC timers tracepoints kvm/x86: Hyper-V SynIC tracepoints kvm/x86: Update SynIC timers on guest entry only kvm/x86: Skip SynIC vector check for QEMU side kvm/x86: Hyper-V fix SynIC timer disabling condition kvm/x86: Reorg stimer_expiration() to better control timer restart kvm/x86: Hyper-V unify stimer_start() and stimer_restart() kvm/x86: Drop stimer_stop() function kvm/x86: Hyper-V timers fix incorrect logical operation KVM: move architecture-dependent requests to arch/ KVM: renumber vcpu->request bits KVM: document which architecture uses each request bit KVM: Remove unused KVM_REQ_KICK to save a bit in vcpu->requests kvm: x86: Check kvm_write_guest return value in kvm_write_wall_clock KVM: s390: implement the RI support of guest kvm/s390: drop unpaired smp_mb kvm: x86: fix comment about {mmu,nested_mmu}.gva_to_gpa KVM: x86: MMU: Use clear_page() instead of init_shadow_page_table() arm/arm64: KVM: Detect vGIC presence at runtime ... commit 2c2277dc8e18eac8a59cdd0c62ca15106ab6f857 Author: Helge Deller Date: Wed Nov 25 22:43:45 2015 +0100 parisc: Imporove debug info about space registers and TLB configuration Signed-off-by: Helge Deller arch/parisc/include/asm/pdc.h | 2 +- arch/parisc/kernel/cache.c | 26 ++++++++++++++++++++++---- 2 files changed, 23 insertions(+), 5 deletions(-) commit bb0dcebef99fd024c0fb2703179bc7d1fd5ee995 Author: Dave Jones Date: Thu Nov 19 19:24:33 2015 -0500 ipmi: Remove unnecessary pci_disable_device. We call cleanup_one_si from ipmi_pci_remove, which calls ->addr_source_cleanup, which gets set to point to ipmi_pci_cleanup, which does a pci_disable_device. On return from this, we do a second pci_disable_device, which results in the trace below. ipmi_si 0000:00:16.0: disabling already-disabled device Call Trace: [] dump_stack+0x45/0x57 [] warn_slowpath_common+0x97/0xe0 [] warn_slowpath_fmt+0x46/0x50 [] pci_disable_device+0xb1/0xc0 [] ipmi_pci_remove+0x25/0x30 [ipmi_si] [] pci_device_remove+0x46/0xc0 [] __device_release_driver+0x7f/0xf0 [] driver_detach+0xb8/0xc0 [] bus_remove_driver+0x50/0xa0 [] driver_unregister+0x2e/0x60 [] pci_unregister_driver+0x25/0x90 [] cleanup_ipmi_si+0xd4/0xf0 [ipmi_si] [] SyS_delete_module+0x12a/0x200 [] system_call_fastpath+0x12/0x17 Signed-off-by: Dave Jones drivers/char/ipmi/ipmi_si_intf.c | 1 - 1 file changed, 1 deletion(-) commit aad756f869c445488f814a2bff9211d81c46535e Author: Krzysztof Kozlowski Date: Thu Nov 19 12:56:39 2015 +0900 char: ipmi: 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 drivers/char/ipmi/ipmi_ssif.c | 1 - 1 file changed, 1 deletion(-) commit 99ee67351bedf23fe6b969dd94cc2847b397cd20 Author: LABBE Corentin Date: Fri Nov 13 13:31:51 2015 +0100 ipmi: constify some struct and char arrays Lots of char arrays could be set as const since they contain only literal char arrays. We could in the same time make const some struct members who are pointer to those const char arrays. Signed-off-by: LABBE Corentin Signed-off-by: Corey Minyard drivers/char/ipmi/ipmi_msghandler.c | 7 ++++--- drivers/char/ipmi/ipmi_si_intf.c | 27 ++++++++++++++++----------- 2 files changed, 20 insertions(+), 14 deletions(-) commit fbdd9501a1123ae6d8d828d97df89bf122d951ca Author: Helge Deller Date: Sun Jan 10 09:36:24 2016 +0100 parisc: Drop parisc-specific NSIGTRAP define NIGTRAP is already defined in asm-generic/siginfo.h, so no need to define it ourselves. Signed-off-by: Helge Deller arch/parisc/include/uapi/asm/siginfo.h | 3 --- 1 file changed, 3 deletions(-) commit c9bed1cf51011c815d88288b774865d013ca78a8 Merge: 75777c1 a4cdb55 Author: Linus Torvalds Date: Tue Jan 12 13:05:36 2016 -0800 Merge tag 'for-linus-4.5-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.5-rc0: - Stolen ticks and PV wallclock support for arm/arm64 - Add grant copy ioctl to gntdev device" * tag 'for-linus-4.5-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: xen/gntdev: add ioctl for grant copy x86/xen: don't reset vcpu_info on a cancelled suspend xen/gntdev: constify mmu_notifier_ops structures xen/grant-table: constify gnttab_ops structure xen/time: use READ_ONCE xen/x86: convert remaining timespec to timespec64 in xen_pvclock_gtod_notify xen/x86: support XENPF_settime64 xen/arm: set the system time in Xen via the XENPF_settime64 hypercall xen/arm: introduce xen_read_wallclock arm: extend pvclock_wall_clock with sec_hi xen: introduce XENPF_settime64 xen/arm: introduce HYPERVISOR_platform_op on arm and arm64 xen: rename dom0_op to platform_op xen/arm: account for stolen ticks arm64: introduce CONFIG_PARAVIRT, PARAVIRT_TIME_ACCOUNTING and pv_time_ops arm: introduce CONFIG_PARAVIRT, PARAVIRT_TIME_ACCOUNTING and pv_time_ops missing include asm/paravirt.h in cputime.c xen: move xen_setup_runstate_info and get_runstate_snapshot to drivers/xen/time.c commit e60fc5aa608eb38b47ba4ee058f306f739eb70a0 Author: Helge Deller Date: Sun Jan 10 09:30:42 2016 +0100 parisc: Fix __ARCH_SI_PREAMBLE_SIZE On a 64bit kernel build the compiler aligns the _sifields union in the struct siginfo_t on a 64bit address. The __ARCH_SI_PREAMBLE_SIZE define compensates for this alignment and thus fixes the wait testcase of the strace package. The symptoms of a wrong __ARCH_SI_PREAMBLE_SIZE value is that _sigchld.si_stime variable is missed to be copied and thus after a copy_siginfo() will have uninitialized values. Signed-off-by: Helge Deller Cc: stable@vger.kernel.org arch/parisc/include/uapi/asm/siginfo.h | 4 ++++ 1 file changed, 4 insertions(+) commit fc6325750348272d10a8e39adb9fc0e89a667774 Author: Helge Deller Date: Sat Dec 12 18:22:03 2015 +0100 parisc: Reduce overhead of parisc_requires_coherency() Signed-off-by: Helge Deller arch/parisc/include/asm/processor.h | 17 ++++++++--------- arch/parisc/kernel/processor.c | 10 +++++++++- 2 files changed, 17 insertions(+), 10 deletions(-) commit 602c9c9a01a4f0ef091295ac75c74c7fe94d69a4 Author: Helge Deller Date: Mon Dec 21 10:00:49 2015 +0100 parisc: Initialize PCI bridge cache line and default latency PCI controllers and pci-pci bridges may have not been fully initialized regarding cache line and defaul latency. This partly reverts commit 5f0e9b4 ("parisc: Remove unused pcibios_init_bus()") Signed-off-by: Helge Deller arch/parisc/include/asm/pci.h | 1 + arch/parisc/kernel/pci.c | 26 ++++++++++++++++++++++++++ drivers/parisc/dino.c | 4 +++- drivers/parisc/lba_pci.c | 4 +++- 4 files changed, 33 insertions(+), 2 deletions(-) commit 75777c1855e10c010c9c3a21611d95dd9be01ab1 Merge: c3ce79d ca3060d Author: Linus Torvalds Date: Tue Jan 12 13:00:16 2016 -0800 Merge branch 'for-linux-next' of git://linux-c6x.org/git/projects/linux-c6x-upstreaming Pull tiny c6x update from Mark Salter. * 'for-linux-next' of git://linux-c6x.org/git/projects/linux-c6x-upstreaming: c6x: Use generic clkdev.h header commit 06928b3870d213cb42b00e2949419f2d44b9d45f Author: Rabin Vincent Date: Tue Jan 12 20:17:08 2016 +0100 net: bpf: reject invalid shifts On ARM64, a BUG() is triggered in the eBPF JIT if a filter with a constant shift that can't be encoded in the immediate field of the UBFM/SBFM instructions is passed to the JIT. Since these shifts amounts, which are negative or >= regsize, are invalid, reject them in the eBPF verifier and the classic BPF filter checker, for all architectures. Signed-off-by: Rabin Vincent Acked-by: Alexei Starovoitov Acked-by: Daniel Borkmann Signed-off-by: David S. Miller kernel/bpf/verifier.c | 10 ++++++++++ net/core/filter.c | 5 +++++ 2 files changed, 15 insertions(+) commit c3ce79d6a89e25fe0db1851b1b72e6d0dffc8a66 Merge: 01e9d22 ce657b1 Author: Linus Torvalds Date: Tue Jan 12 12:47:23 2016 -0800 Merge branch 'component' of git://ftp.arm.linux.org.uk/~rmk/linux-arm Pull component updates from Russell King: "Updates for the component helper merged last year. This update removes the old add_components method of detecting and looking up the components associated with a master device. Last time I checked during the 4.4-rc cycle, there were no users of the old interfaces, as has been the case for some time now. Breakage due to conflicting development is possible, in which case this pull will have to be reverted - however, these changes have been in linux-next since Dec 7th without any problems reported. Removal of that then allows us to change the way we track components internally, allowing us to release data that has been used for matching at the appropriate time, thereby allowing any resource leaks caused by that missing functionality to be resolved" * 'component' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: component: add support for releasing match data component: track components via array rather than list component: move check for unbound master into try_to_bring_up_masters() component: remove old add_components method commit 01e9d22638f387b5413163d1030169b6478c09c5 Merge: 541d284 6660800 Author: Linus Torvalds Date: Tue Jan 12 12:39:07 2016 -0800 Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm Pull ARM updates from Russell King: - UEFI boot and runtime services support for ARM from Ard Biesheuvel and Roy Franz. - DT compatibility with old atags booting protocol for Nokia N900 devices from Ivaylo Dimitrov. - PSCI firmware interface using new arm-smc calling convention from Jens Wiklander. - Runtime patching for udiv/sdiv instructions for ARMv7 CPUs that support these instructions from Nicolas Pitre. - L2x0 cache updates from Dirk B and Linus Walleij. - Randconfig fixes from Arnd Bergmann. - ARMv7M (nommu) updates from Ezequiel Garcia * 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: (34 commits) ARM: 8481/2: drivers: psci: replace psci firmware calls ARM: 8480/2: arm64: add implementation for arm-smccc ARM: 8479/2: add implementation for arm-smccc ARM: 8478/2: arm/arm64: add arm-smccc ARM: 8494/1: mm: Enable PXN when running non-LPAE kernel on LPAE processor ARM: 8496/1: OMAP: RX51: save ATAGS data in the early boot stage ARM: 8495/1: ATAGS: move save_atags() to arch/arm/include/asm/setup.h ARM: 8452/3: PJ4: make coprocessor access sequences buildable in Thumb2 mode ARM: 8482/1: l2x0: make it possible to disable outer sync from DT ARM: 8488/1: Make IPI_CPU_BACKTRACE a "non-secure" SGI ARM: 8487/1: Remove IPI_CALL_FUNC_SINGLE ARM: 8485/1: cpuidle: remove cpu parameter from the cpuidle_ops suspend hook ARM: 8484/1: Documentation: l2c2x0: Mention separate controllers explicitly ARM: 8483/1: Documentation: l2c: Rename l2cc to l2c2x0 ARM: 8477/1: runtime patch udiv/sdiv instructions into __aeabi_{u}idiv() ARM: 8476/1: VDSO: use PTR_ERR_OR_ZERO for vma check ARM: 8453/2: proc-v7.S: don't locate temporary stack space in .text section ARM: add UEFI stub support ARM: wire up UEFI init and runtime support ARM: only consider memblocks with NOMAP cleared for linear mapping ... commit 25646264e15af96c5c630fc742708b1eb3339222 Author: Keith Busch Date: Mon Jan 4 09:10:57 2016 -0700 NVMe: Remove queue freezing on resets NVMe submits all commands through the block layer now. This means we can let requests queue at the blk-mq hardware context since there is no path that bypasses this anymore so we don't need to freeze the queues anymore. The driver can simply stop the h/w queues from running during a reset instead. This also fixes a WARN in percpu_ref_reinit when the queue was unfrozen with requeued requests. Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/core.c | 7 ++----- drivers/nvme/host/nvme.h | 4 ++-- drivers/nvme/host/pci.c | 8 ++++---- 3 files changed, 8 insertions(+), 11 deletions(-) commit 1d49c38c4865c596b01b31a52540275c1bb383e7 Author: Keith Busch Date: Mon Jan 4 09:10:56 2016 -0700 NVMe: Use a retryable error code on reset A negative status has the "do not retry" bit set, which makes it not retryable. Use a fake status that can potentially be retried on reset. An aborted command's status is overridden by the timeout handler so that it won't be retried, which is necessary to keep initialization from getting into a reset loop. Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e3e9d50cd6ed392bb716e35c134d1e82707c51b4 Author: Keith Busch Date: Mon Jan 4 09:10:55 2016 -0700 NVMe: Fix admin queue ring wrap The tag set queue depth needs to be one less than the h/w queue depth so we don't wrap the circular buffer. This conforms to the specification defined "Full Queue" condition. Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 4490733250b8b272a6d3e66352dd7b8025409549 Author: Christoph Hellwig Date: Thu Dec 24 15:27:02 2015 +0100 nvme: make SG_IO support optional Translation SCSI commands to NVMe commands is rather pointless in general as applications must not expext to be able to use SCSI commands on a generic block device. Make the huge translation layer optional and hope no one will ever enable it in the future. Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/nvme/host/Kconfig | 11 +++++++++++ drivers/nvme/host/Makefile | 3 ++- drivers/nvme/host/core.c | 2 ++ 3 files changed, 15 insertions(+), 1 deletion(-) commit bfd8947194b2e2a53db82bbc7eb7c15d028c46db Author: Christoph Hellwig Date: Thu Dec 24 15:27:01 2015 +0100 nvme: fixes for NVME_IOCTL_IO_CMD on the char device Make sure we synchronize access to the namespaces list and grab a reference to the namespace before doing I/O. Make sure to reject the ioctl if multiple namespaces are present as it's entirely unsafe, and warn when using it even with a single namespace. Signed-off-by: Christoph Hellwig Reviewed-by: Sagi Grimberg Acked-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/core.c | 39 ++++++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) commit 69d3b8ac15a5eb938e6a01909f6cc8ae4b5d3a17 Author: Christoph Hellwig Date: Thu Dec 24 15:27:00 2015 +0100 nvme: synchronize access to ctrl->namespaces Currently traversal and modification of ctrl->namespaces happens completely unsynchronized, which can be fixed by the addition of a simple mutex. Note: nvme_dev_ioctl will be handled in the next patch. Signed-off-by: Christoph Hellwig Reviewed-by: Sagi Grimberg Acked-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/core.c | 17 +++++++++++++++++ drivers/nvme/host/nvme.h | 1 + 2 files changed, 18 insertions(+) commit 363c9aacb6c59bb63148dd115632880a4aed4d88 Author: Sagi Grimberg Date: Thu Dec 24 15:26:59 2015 +0100 nvme: Move nvme_freeze/unfreeze_queues to nvme core Nothing pci specific about them and We'll need them exported in other transports too. Signed-off-by: Sagi Grimberg Signed-off-by: Christoph Hellwig Acked-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/core.c | 28 ++++++++++++++++++++++++++++ drivers/nvme/host/nvme.h | 3 +++ drivers/nvme/host/pci.c | 32 ++------------------------------ 3 files changed, 33 insertions(+), 30 deletions(-) commit 541d284be0fcca3d3990e6dd89b091aec66849c6 Merge: fa5fd7c 5d7ee87 Author: Linus Torvalds Date: Tue Jan 12 12:29:25 2016 -0800 Merge tag 'arm64-perf' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux Pull arm[64] perf updates from Will Deacon: "In the past, I have funnelled perf updates through the respective architecture trees, but now that the arm/arm64 perf driver has been largely consolidated under drivers/perf/, it makes more sense to send a separate pull, particularly as I'm listed as maintainer for all the files involved. I offered the branch to arm-soc, but Arnd suggested that I just send it to you directly. So, here is the arm/arm64 perf queue for 4.5. The main features are described below, but the most useful change is from Drew, which advertises our architected event mapping in sysfs so that the perf tool is a lot more user friendly and no longer requires the use of magic hex constants for profiling common events. - Support for the CPU PMU in Cortex-A72 - Add sysfs entries to describe the architected events and their mappings for PMUv{1-3}" * tag 'arm64-perf' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: arm64: perf: add support for Cortex-A72 arm64: perf: add format entry to describe event -> config mapping ARM: perf: add format entry to describe event -> config mapping arm64: kernel: enforce pmuserenr_el0 initialization and restore arm64: perf: Correct Cortex-A53/A57 compatible values arm64: perf: Add event descriptions arm64: perf: Convert event enums to #defines arm: perf: Add event descriptions arm: perf: Convert event enums to #defines drivers/perf: kill armpmu_register commit fa5fd7c628412ee09ccf5e1d6eebe1dba916b8ee Merge: 19e2fc4 2a803c4 Author: Linus Torvalds Date: Tue Jan 12 12:23:33 2016 -0800 Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux Pull arm64 updates from Will Deacon: "Here is the core arm64 queue for 4.5. As you might expect, the Christmas break resulted in a number of patches not making the final cut, so 4.6 is likely to be larger than usual. There's still some useful stuff here, however, and it's detailed below. The EFI changes have been Reviewed-by Matt and the memblock change got an "OK" from akpm. Summary: - Support for a separate IRQ stack, although we haven't reduced the size of our thread stack just yet since we don't have enough data to determine a safe value - Refactoring of our EFI initialisation and runtime code into drivers/firmware/efi/ so that it can be reused by arch/arm/. - Ftrace improvements when unwinding in the function graph tracer - Document our silicon errata handling process - Cache flushing optimisation when mapping executable pages - Support for hugetlb mappings using the contiguous hint in the pte" * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (45 commits) arm64: head.S: use memset to clear BSS efi: stub: define DISABLE_BRANCH_PROFILING for all architectures arm64: entry: remove pointless SPSR mode check arm64: mm: move pgd_cache initialisation to pgtable_cache_init arm64: module: avoid undefined shift behavior in reloc_data() arm64: module: fix relocation of movz instruction with negative immediate arm64: traps: address fallout from printk -> pr_* conversion arm64: ftrace: fix a stack tracer's output under function graph tracer arm64: pass a task parameter to unwind_frame() arm64: ftrace: modify a stack frame in a safe way arm64: remove irq_count and do_softirq_own_stack() arm64: hugetlb: add support for PTE contiguous bit arm64: Use PoU cache instr for I/D coherency arm64: Defer dcache flush in __cpu_copy_user_page arm64: reduce stack use in irq_handler arm64: mm: ensure that the zero page is visible to the page table walker arm64: Documentation: add list of software workarounds for errata arm64: mm: place __cpu_setup in .text arm64: cmpxchg: Don't incldue linux/mmdebug.h arm64: mm: fold alternatives into .init ... commit 98070576c4f77509459c83cd2358617ef0769a38 Author: Takashi Iwai Date: Tue Jan 12 21:06:39 2016 +0100 ALSA: hda - Fix white noise on Dell Latitude E5550 Dell Latitude E5550 (1028:062c) has a white noise problem like other Latitude E models, and it gets fixed by the very same quirk as well. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=110591 Cc: # v4.1+ Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 1 + 1 file changed, 1 insertion(+) commit de65360be0239a63268de589c4189f8ee52dad6c Author: Heiner Kallweit Date: Tue Dec 22 19:09:05 2015 +0100 ALSA: hda_intel: add card number to irq description Currently the info in /proc/interrupts doesn't allow to figure out which interrupt belongs to which card (HDMI, PCH, ..). Therefore add card details to the interrupt description. With the patch the info in /proc/interrupts looks like this: PCI-MSI 442368-edge snd_hda_intel:card1 PCI-MSI 49152-edge snd_hda_intel:card0 NOTE: this patch adds the new irq_descr field snd_card struct that is filled automatically at a card object creation. This can be used generically for other drivers as well. The changes for others will follow later -- tiwai Signed-off-by: Heiner Kallweit Signed-off-by: Takashi Iwai include/sound/core.h | 1 + sound/core/init.c | 3 +++ sound/pci/hda/hda_intel.c | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) commit 43e361f23c49dbddf74f56ddf6cdd85c5dbff6da Author: Michael S. Tsirkin Date: Mon Jan 4 10:00:10 2016 +0200 checkpatch: add virt barriers Add virt_ barriers to list of barriers to check for presence of a comment. Signed-off-by: Michael S. Tsirkin Acked-by: Julian Calaby Acked-by: Joe Perches Acked-by: Peter Zijlstra (Intel) scripts/checkpatch.pl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f4073b0f6e11a5436d1162c623401c8f2f7cf783 Author: Michael S. Tsirkin Date: Mon Jan 4 09:54:51 2016 +0200 checkpatch: check for __smp outside barrier.h Introduction of __smp barriers cleans up a bunch of duplicate code, but it gives people an additional handle onto a "new" set of barriers - just because they're prefixed with __* unfortunately doesn't stop anyone from using it (as happened with other arch stuff before.) Add a checkpatch test so it will trigger a warning. Reported-by: Russell King Signed-off-by: Michael S. Tsirkin Acked-by: Julian Calaby Acked-by: Joe Perches Acked-by: Peter Zijlstra (Intel) scripts/checkpatch.pl | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 402c2553a24729688ba32453a9f6889e12754147 Author: Michael S. Tsirkin Date: Mon Jan 4 09:39:01 2016 +0200 checkpatch.pl: add missing memory barriers SMP-only barriers were missing in checkpatch.pl Refactor code slightly to make adding more variants easier. Signed-off-by: Michael S. Tsirkin Acked-by: Julian Calaby Acked-by: Joe Perches Acked-by: Peter Zijlstra (Intel) scripts/checkpatch.pl | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) commit f7ad26ff952b3ca2702d7da03aad0ab1f6c01d7c Author: Stefan Hajnoczi Date: Thu Dec 17 16:53:43 2015 +0800 virtio: make find_vqs() checkpatch.pl-friendly checkpatch.pl wants arrays of strings declared as follows: static const char * const names[] = { "vq-1", "vq-2", "vq-3" }; Currently the find_vqs() function takes a const char *names[] argument so passing checkpatch.pl's const char * const names[] results in a compiler error due to losing the second const. This patch adjusts the find_vqs() prototype and updates all virtio transports. This makes it possible for virtio_balloon.c, virtio_input.c, virtgpu_kms.c, and virtio_rpmsg_bus.c to use the checkpatch.pl-friendly type. Signed-off-by: Stefan Hajnoczi Signed-off-by: Michael S. Tsirkin Acked-by: Bjorn Andersson drivers/gpu/drm/virtio/virtgpu_kms.c | 2 +- drivers/misc/mic/card/mic_virtio.c | 2 +- drivers/remoteproc/remoteproc_virtio.c | 2 +- drivers/rpmsg/virtio_rpmsg_bus.c | 2 +- drivers/s390/virtio/kvm_virtio.c | 2 +- drivers/s390/virtio/virtio_ccw.c | 2 +- drivers/virtio/virtio_balloon.c | 2 +- drivers/virtio/virtio_input.c | 2 +- drivers/virtio/virtio_mmio.c | 2 +- drivers/virtio/virtio_pci_common.c | 4 ++-- drivers/virtio/virtio_pci_common.h | 2 +- drivers/virtio/virtio_pci_modern.c | 2 +- include/linux/virtio_config.h | 2 +- 13 files changed, 14 insertions(+), 14 deletions(-) commit 21ea9fb69e7c4b1b1559c3e410943d3ff248ffcb Author: Minchan Kim Date: Mon Dec 28 08:35:13 2015 +0900 virtio_balloon: fix race between migration and ballooning In balloon_page_dequeue, pages_lock should cover the loop (ie, list_for_each_entry_safe). Otherwise, the cursor page could be isolated by compaction and then list_del by isolation could poison the page->lru.{prev,next} so the loop finally could access wrong address like this. This patch fixes the bug. general protection fault: 0000 [#1] SMP Dumping ftrace buffer: (ftrace buffer empty) Modules linked in: CPU: 2 PID: 82 Comm: vballoon Not tainted 4.4.0-rc5-mm1-access_bit+ #1906 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011 task: ffff8800a7ff0000 ti: ffff8800a7fec000 task.ti: ffff8800a7fec000 RIP: 0010:[] [] balloon_page_dequeue+0x54/0x130 RSP: 0018:ffff8800a7fefdc0 EFLAGS: 00010246 RAX: ffff88013fff9a70 RBX: ffffea000056fe00 RCX: 0000000000002b7d RDX: ffff88013fff9a70 RSI: ffffea000056fe00 RDI: ffff88013fff9a68 RBP: ffff8800a7fefde8 R08: ffffea000056fda0 R09: 0000000000000000 R10: ffff8800a7fefd90 R11: 0000000000000001 R12: dead0000000000e0 R13: ffffea000056fe20 R14: ffff880138809070 R15: ffff880138809060 FS: 0000000000000000(0000) GS:ffff88013fc40000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b CR2: 00007f229c10e000 CR3: 00000000b8b53000 CR4: 00000000000006a0 Stack: 0000000000000100 ffff880138809088 ffff880138809000 ffff880138809060 0000000000000046 ffff8800a7fefe28 ffffffff812c86d3 ffff880138809020 ffff880138809000 fffffffffff91900 0000000000000100 ffff880138809060 Call Trace: [] leak_balloon+0x93/0x1a0 [] balloon+0x217/0x2a0 [] ? __schedule+0x31e/0x8b0 [] ? abort_exclusive_wait+0xb0/0xb0 [] ? update_balloon_stats+0xf0/0xf0 [] kthread+0xc9/0xe0 [] ? kthread_park+0x60/0x60 [] ret_from_fork+0x3f/0x70 [] ? kthread_park+0x60/0x60 Code: 8d 60 e0 0f 84 af 00 00 00 48 8b 43 20 a8 01 75 3b 48 89 d8 f0 0f ba 28 00 72 10 48 8b 03 f6 c4 08 75 2f 48 89 df e8 8c 83 f9 ff <49> 8b 44 24 20 4d 8d 6c 24 20 48 83 e8 20 4d 39 f5 74 7a 4c 89 RIP [] balloon_page_dequeue+0x54/0x130 RSP ---[ end trace 43cf28060d708d5f ]--- Kernel panic - not syncing: Fatal exception Dumping ftrace buffer: (ftrace buffer empty) Kernel Offset: disabled Cc: Signed-off-by: Minchan Kim Signed-off-by: Michael S. Tsirkin Acked-by: Rafael Aquini mm/balloon_compaction.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f68b992bbb474641881932c61c92dcfa6f5b3689 Author: Minchan Kim Date: Mon Dec 28 08:35:12 2015 +0900 virtio_balloon: fix race by fill and leak During my compaction-related stuff, I encountered a bug with ballooning. With repeated inflating and deflating cycle, guest memory( ie, cat /proc/meminfo | grep MemTotal) is decreased and couldn't be recovered. The reason is balloon_lock doesn't cover release_pages_balloon so struct virtio_balloon fields could be overwritten by race of fill_balloon(e,g, vb->*pfns could be critical). This patch fixes it in my test. Cc: Signed-off-by: Minchan Kim Signed-off-by: Michael S. Tsirkin drivers/virtio/virtio_balloon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 779a6a36961b50cd154da5705d9e6508f819cc4e Author: Michael S. Tsirkin Date: Sun Jan 10 13:19:38 2016 +0200 s390: more efficient smp barriers As per: lkml.kernel.org/r/20150921112252.3c2937e1@mschwide atomics imply a barrier on s390, so s390 should change smp_mb__before_atomic and smp_mb__after_atomic to barrier() instead of smp_mb() and hence should not use the generic versions. Suggested-by: Peter Zijlstra Suggested-by: Martin Schwidefsky Signed-off-by: Michael S. Tsirkin Acked-by: Martin Schwidefsky Acked-by: Peter Zijlstra (Intel) arch/s390/include/asm/barrier.h | 3 +++ 1 file changed, 3 insertions(+) commit a677f4869576eb177570ffee68598d2202de030f Author: Michael S. Tsirkin Date: Wed Jan 6 09:13:14 2016 +0200 s390: use generic memory barriers The s390 kernel is SMP to 99.99%, we just didn't bother with a non-smp variant for the memory-barriers. If the generic header is used we'd get the non-smp version for free. It will save a small amount of text space for CONFIG_SMP=n. Suggested-by: Martin Schwidefsky Signed-off-by: Michael S. Tsirkin Acked-by: Peter Zijlstra (Intel) arch/s390/include/asm/barrier.h | 3 --- 1 file changed, 3 deletions(-) commit 234927540e6ac82f5f083a11c3e860e346ed09bc Author: Michael S. Tsirkin Date: Sun Dec 27 18:02:16 2015 +0200 xen/events: use virt_xxx barriers drivers/xen/events/events_fifo.c uses rmb() to communicate with the other side. For guests compiled with CONFIG_SMP, smp_rmb would be sufficient, so rmb() here is only needed if a non-SMP guest runs on an SMP host. Switch to the virt_rmb barrier which serves this exact purpose. Pull in asm/barrier.h here to make sure the file is self-contained. Suggested-by: David Vrabel Signed-off-by: Michael S. Tsirkin Acked-by: David Vrabel Acked-by: Peter Zijlstra (Intel) drivers/xen/events/events_fifo.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 506b02eb1cf79838b76c6e3e43171cf960f01fc8 Author: Michael S. Tsirkin Date: Sun Dec 27 18:02:16 2015 +0200 xen/io: use virt_xxx barriers include/xen/interface/io/ring.h uses full memory barriers to communicate with the other side. For guests compiled with CONFIG_SMP, smp_wmb and smp_mb would be sufficient, so mb() and wmb() here are only needed if a non-SMP guest runs on an SMP host. Switch to virt_xxx barriers which serve this exact purpose. Signed-off-by: Michael S. Tsirkin Acked-by: David Vrabel Acked-by: Peter Zijlstra (Intel) include/xen/interface/io/ring.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 5bb0c9be2ac9a98513d43969e2b5c3d02cb271c8 Author: Michael S. Tsirkin Date: Sun Dec 27 18:02:16 2015 +0200 xenbus: use virt_xxx barriers drivers/xen/xenbus/xenbus_comms.c uses full memory barriers to communicate with the other side. For guests compiled with CONFIG_SMP, smp_wmb and smp_mb would be sufficient, so mb() and wmb() here are only needed if a non-SMP guest runs on an SMP host. Switch to virt_xxx barriers which serve this exact purpose. Signed-off-by: Michael S. Tsirkin Acked-by: David Vrabel Acked-by: Peter Zijlstra (Intel) drivers/xen/xenbus/xenbus_comms.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 788e5b3a5da24cc8d93ce2f7c6508181cd7d7fb6 Author: Michael S. Tsirkin Date: Thu Dec 17 12:20:39 2015 +0200 virtio_ring: use virt_store_mb We need a full barrier after writing out event index, using virt_store_mb there seems better than open-coding. As usual, we need a wrapper to account for strong barriers. It's tempting to use this in vhost as well, for that, we'll need a variant of smp_store_mb that works on __user pointers. Signed-off-by: Michael S. Tsirkin Acked-by: Peter Zijlstra (Intel) drivers/virtio/virtio_ring.c | 15 +++++++++------ include/linux/virtio_ring.h | 11 +++++++++++ 2 files changed, 20 insertions(+), 6 deletions(-) commit 9e3f84ce416663c84a191cb3ead300fc1a4adadc Author: Michael S. Tsirkin Date: Fri Jan 8 09:23:58 2016 +0200 sh: move xchg_cmpxchg to a header by itself Looks like future sh variants will support a 4-byte cas which will be used to implement 1 and 2 byte xchg. This is exactly what we do for llsc now, move the portable part of the code into a separate header so it's easy to reuse. Suggested-by: Rich Felker Signed-off-by: Michael S. Tsirkin Acked-by: Peter Zijlstra (Intel) arch/sh/include/asm/cmpxchg-llsc.h | 35 +------------------------- arch/sh/include/asm/cmpxchg-xchg.h | 51 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 34 deletions(-) commit 3226aad81aa670015a59e51458a0deb2d3bcb600 Author: Michael S. Tsirkin Date: Thu Jan 7 17:54:54 2016 +0200 sh: support 1 and 2 byte xchg This completes the xchg implementation for sh architecture. Note: The llsc variant is tricky since this only supports 4 byte atomics, the existing implementation of 1 byte xchg is wrong: we need to do a 4 byte cmpxchg and retry if any bytes changed meanwhile. Write this in C for clarity. Suggested-by: Rich Felker Signed-off-by: Michael S. Tsirkin Acked-by: Peter Zijlstra (Intel) arch/sh/include/asm/cmpxchg-grb.h | 22 +++++++++++++++ arch/sh/include/asm/cmpxchg-irq.h | 11 ++++++++ arch/sh/include/asm/cmpxchg-llsc.h | 58 +++++++++++++++++++++++--------------- arch/sh/include/asm/cmpxchg.h | 3 ++ 4 files changed, 72 insertions(+), 22 deletions(-) commit a65961272e1ebdb60804bbe2bb440481fcbd1c76 Author: Michael S. Tsirkin Date: Sun Dec 27 17:55:35 2015 +0200 virtio_ring: update weak barriers to use virt_xxx virtio ring uses smp_wmb on SMP and wmb on !SMP, the reason for the later being that it might be talking to another kernel on the same SMP machine. This is exactly what virt_xxx barriers do, so switch to these instead of homegrown ifdef hacks. Cc: Peter Zijlstra Cc: Alexander Duyck Signed-off-by: Michael S. Tsirkin Acked-by: Peter Zijlstra (Intel) include/linux/virtio_ring.h | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) commit d307fb16f788823b29aab9aa7e4821ac8a124b19 Author: Michael S. Tsirkin Date: Sun Dec 20 13:52:10 2015 +0200 Revert "virtio_ring: Update weak barriers to use dma_wmb/rmb" This reverts commit 9e1a27ea42691429e31f158cce6fc61bc79bb2e9. While that commit optimizes !CONFIG_SMP, it mixes up DMA and SMP concepts, making the code hard to figure out. A better way to optimize this is with the new __smp_XXX barriers. As a first step, go back to full rmb/wmb barriers for !SMP. We switch to __smp_XXX barriers in the next patch. Cc: Peter Zijlstra Cc: Alexander Duyck Signed-off-by: Michael S. Tsirkin Acked-by: Peter Zijlstra (Intel) include/linux/virtio_ring.h | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) commit 6a65d26385bf487926a0616650927303058551e3 Author: Michael S. Tsirkin Date: Sun Dec 27 18:23:01 2015 +0200 asm-generic: implement virt_xxx memory barriers Guests running within virtual machines might be affected by SMP effects even if the guest itself is compiled without SMP support. This is an artifact of interfacing with an SMP host while running an UP kernel. Using mandatory barriers for this use-case would be possible but is often suboptimal. In particular, virtio uses a bunch of confusing ifdefs to work around this, while xen just uses the mandatory barriers. To better handle this case, low-level virt_mb() etc macros are made available. These are implemented trivially using the low-level __smp_xxx macros, the purpose of these wrappers is to annotate those specific cases. These have the same effect as smp_mb() etc when SMP is enabled, but generate identical code for SMP and non-SMP systems. For example, virtual machine guests should use virt_mb() rather than smp_mb() when synchronizing against a (possibly SMP) host. Suggested-by: David Miller Signed-off-by: Michael S. Tsirkin Acked-by: Peter Zijlstra (Intel) Documentation/memory-barriers.txt | 28 +++++++++++++++++++++++----- include/asm-generic/barrier.h | 11 +++++++++++ 2 files changed, 34 insertions(+), 5 deletions(-) commit 1638fb72070f8faf2ac0787fafbb839d0c859d5b Author: Michael S. Tsirkin Date: Sun Dec 27 15:04:42 2015 +0200 x86: define __smp_xxx This defines __smp_xxx barriers for x86, for use by virtualization. smp_xxx barriers are removed as they are defined correctly by asm-generic/barriers.h Signed-off-by: Michael S. Tsirkin Acked-by: Arnd Bergmann Acked-by: Peter Zijlstra (Intel) Reviewed-by: Thomas Gleixner arch/x86/include/asm/barrier.h | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) commit 1ce790913b6ce67cd85235083aeb67898bad1a1f Author: Michael S. Tsirkin Date: Sun Dec 27 15:04:42 2015 +0200 xtensa: define __smp_xxx This defines __smp_xxx barriers for xtensa, for use by virtualization. smp_xxx barriers are removed as they are defined correctly by asm-generic/barriers.h Signed-off-by: Michael S. Tsirkin Acked-by: Arnd Bergmann Acked-by: Peter Zijlstra (Intel) arch/xtensa/include/asm/barrier.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d39886a7d31e0182f8b7e3b0e953e636b0af96fd Author: Michael S. Tsirkin Date: Sun Dec 27 15:04:42 2015 +0200 tile: define __smp_xxx This defines __smp_xxx barriers for tile, for use by virtualization. Some smp_xxx barriers are removed as they are defined correctly by asm-generic/barriers.h Note: for 32 bit, keep smp_mb__after_atomic around since it's faster than the generic implementation. Signed-off-by: Michael S. Tsirkin Acked-by: Arnd Bergmann Acked-by: Peter Zijlstra (Intel) arch/tile/include/asm/barrier.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 45d9b859411cb6d4dccc4e488336160acf9a6df5 Author: Michael S. Tsirkin Date: Sun Dec 27 15:04:42 2015 +0200 sparc: define __smp_xxx This defines __smp_xxx barriers for sparc, for use by virtualization. smp_xxx barriers are removed as they are defined correctly by asm-generic/barriers.h Signed-off-by: Michael S. Tsirkin Acked-by: Arnd Bergmann Acked-by: David S. Miller Acked-by: Peter Zijlstra (Intel) arch/sparc/include/asm/barrier_64.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 90a3ccb0be538a914e6a5c51ae919762261563ad Author: Michael S. Tsirkin Date: Sun Dec 27 15:04:42 2015 +0200 sh: define __smp_xxx, fix smp_store_mb for !SMP sh variant of smp_store_mb() calls xchg() on !SMP which is stronger than implied by both the name and the documentation. define __smp_store_mb instead: code in asm-generic/barrier.h will then define smp_store_mb correctly depending on CONFIG_SMP. Signed-off-by: Michael S. Tsirkin Acked-by: Arnd Bergmann Acked-by: Peter Zijlstra (Intel) arch/sh/include/asm/barrier.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 82b44496abd91781ed4120c3b0c1a3d111c3e28e Author: Michael S. Tsirkin Date: Sun Dec 27 15:04:42 2015 +0200 s390: define __smp_xxx This defines __smp_xxx barriers for s390, for use by virtualization. Some smp_xxx barriers are removed as they are defined correctly by asm-generic/barriers.h Note: smp_mb, smp_rmb and smp_wmb are defined as full barriers unconditionally on this architecture. Signed-off-by: Michael S. Tsirkin Acked-by: Arnd Bergmann Acked-by: Martin Schwidefsky Acked-by: Peter Zijlstra (Intel) arch/s390/include/asm/barrier.h | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit a60514bae72ee41b506b8702dfdd6eeeffe58556 Author: Michael S. Tsirkin Date: Sun Dec 27 15:04:42 2015 +0200 mips: define __smp_xxx This defines __smp_xxx barriers for mips, for use by virtualization. smp_xxx barriers are removed as they are defined correctly by asm-generic/barriers.h Note: the only exception is smp_mb__before_llsc which is mips-specific. We define both the __smp_mb__before_llsc variant (for use in asm/barriers.h) and smp_mb__before_llsc (for use elsewhere on this architecture). Signed-off-by: Michael S. Tsirkin Acked-by: Arnd Bergmann Acked-by: Peter Zijlstra (Intel) arch/mips/include/asm/barrier.h | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) commit afc22de0c0ca8b4697a8aec2bbb35d4cc385e7e0 Author: Michael S. Tsirkin Date: Sun Dec 27 15:04:42 2015 +0200 metag: define __smp_xxx This defines __smp_xxx barriers for metag, for use by virtualization. smp_xxx barriers are removed as they are defined correctly by asm-generic/barriers.h Note: as __smp_XX macros should not depend on CONFIG_SMP, they can not use the existing fence() macro since that is defined differently between SMP and !SMP. For this reason, this patch introduces a wrapper metag_fence() that doesn't depend on CONFIG_SMP. fence() is then defined using that, depending on CONFIG_SMP. Signed-off-by: Michael S. Tsirkin Acked-by: Arnd Bergmann Acked-by: James Hogan Acked-by: Peter Zijlstra (Intel) arch/metag/include/asm/barrier.h | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) commit eebd1b927822f13429ec09d0a48fe92716b22840 Author: Michael S. Tsirkin Date: Sun Dec 27 15:04:42 2015 +0200 ia64: define __smp_xxx This defines __smp_xxx barriers for ia64, for use by virtualization. smp_xxx barriers are removed as they are defined correctly by asm-generic/barriers.h This reduces the amount of arch-specific boiler-plate code. Signed-off-by: Michael S. Tsirkin Acked-by: Tony Luck Acked-by: Arnd Bergmann Acked-by: Peter Zijlstra (Intel) arch/ia64/include/asm/barrier.h | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) commit 27f6cabc0ebf9e452c3251bf0511c41cf2c75dde Author: Michael S. Tsirkin Date: Sun Dec 27 15:04:42 2015 +0200 blackfin: define __smp_xxx This defines __smp_xxx barriers for blackfin, for use by virtualization. smp_xxx barriers are removed as they are defined correctly by asm-generic/barriers.h Signed-off-by: Michael S. Tsirkin Acked-by: Arnd Bergmann Acked-by: Peter Zijlstra (Intel) arch/blackfin/include/asm/barrier.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2b1f3de10267dd1034d24f9e77dd5e8f07793925 Author: Michael S. Tsirkin Date: Sun Dec 27 15:04:42 2015 +0200 arm: define __smp_xxx This defines __smp_xxx barriers for arm, for use by virtualization. smp_xxx barriers are removed as they are defined correctly by asm-generic/barriers.h This reduces the amount of arch-specific boiler-plate code. Signed-off-by: Michael S. Tsirkin Acked-by: Arnd Bergmann Acked-by: Russell King Acked-by: Peter Zijlstra (Intel) arch/arm/include/asm/barrier.h | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) commit fd072df850e536bf46e9981be4be95961ce5eef3 Author: Michael S. Tsirkin Date: Sun Dec 27 15:04:42 2015 +0200 arm64: define __smp_xxx This defines __smp_xxx barriers for arm64, for use by virtualization. smp_xxx barriers are removed as they are defined correctly by asm-generic/barriers.h Note: arm64 does not support !SMP config, so smp_xxx and __smp_xxx are always equivalent. Signed-off-by: Michael S. Tsirkin Acked-by: Arnd Bergmann Acked-by: Peter Zijlstra (Intel) arch/arm64/include/asm/barrier.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 003472a93ad019bfd054a5cbb30c6eec7d0395a3 Author: Michael S. Tsirkin Date: Sun Dec 27 15:04:42 2015 +0200 powerpc: define __smp_xxx This defines __smp_xxx barriers for powerpc for use by virtualization. smp_xxx barriers are removed as they are defined correctly by asm-generic/barriers.h This reduces the amount of arch-specific boiler-plate code. Signed-off-by: Michael S. Tsirkin Acked-by: Arnd Bergmann Acked-by: Boqun Feng Acked-by: Peter Zijlstra (Intel) arch/powerpc/include/asm/barrier.h | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) commit a9e4252a9b147043142282ebb65da94dcb951e2a Author: Michael S. Tsirkin Date: Sun Dec 27 13:50:07 2015 +0200 asm-generic: add __smp_xxx wrappers On !SMP, most architectures define their barriers as compiler barriers. On SMP, most need an actual barrier. Make it possible to remove the code duplication for !SMP by defining low-level __smp_xxx barriers which do not depend on the value of SMP, then use them from asm-generic conditionally. Besides reducing code duplication, these low level APIs will also be useful for virtualization, where a barrier is sometimes needed even if !SMP since we might be talking to another kernel on the same SMP system. Both virtio and Xen drivers will benefit. The smp_xxx variants should use __smp_XXX ones or barrier() depending on SMP, identically for all architectures. We keep ifndef guards around them for now - once/if all architectures are converted to use the generic code, we'll be able to remove these. Suggested-by: Peter Zijlstra Signed-off-by: Michael S. Tsirkin Acked-by: Arnd Bergmann Acked-by: Peter Zijlstra (Intel) include/asm-generic/barrier.h | 91 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 82 insertions(+), 9 deletions(-) commit 300b06d4555305dc227748674f75970f2f84c224 Author: Michael S. Tsirkin Date: Mon Dec 21 09:22:18 2015 +0200 x86: reuse asm-generic/barrier.h As on most architectures, on x86 read_barrier_depends and smp_read_barrier_depends are empty. Drop the local definitions and pull the generic ones from asm-generic/barrier.h instead: they are identical. This is in preparation to refactoring this code area. Signed-off-by: Michael S. Tsirkin Acked-by: Arnd Bergmann Acked-by: Peter Zijlstra (Intel) Reviewed-by: Thomas Gleixner arch/x86/include/asm/barrier.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 577f183acc88645eae116326cc2203dc88ea730c Author: Michael S. Tsirkin Date: Mon Dec 21 09:22:18 2015 +0200 x86/um: reuse asm-generic/barrier.h On x86/um CONFIG_SMP is never defined. As a result, several macros match the asm-generic variant exactly. Drop the local definitions and pull in asm-generic/barrier.h instead. This is in preparation to refactoring this code area. Signed-off-by: Michael S. Tsirkin Acked-by: Arnd Bergmann Acked-by: Richard Weinberger Acked-by: Peter Zijlstra (Intel) arch/x86/um/asm/barrier.h | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) commit fa083e28f89a78b95ba8b7da86db40c13c60e95d Author: Michael S. Tsirkin Date: Mon Dec 21 09:22:18 2015 +0200 mips: reuse asm-generic/barrier.h On mips dma_rmb, dma_wmb, smp_store_mb, read_barrier_depends, smp_read_barrier_depends, smp_store_release and smp_load_acquire match the asm-generic variants exactly. Drop the local definitions and pull in asm-generic/barrier.h instead. This is in preparation to refactoring this code area. Signed-off-by: Michael S. Tsirkin Acked-by: Arnd Bergmann Acked-by: Peter Zijlstra (Intel) arch/mips/include/asm/barrier.h | 25 ++----------------------- 1 file changed, 2 insertions(+), 23 deletions(-) commit abe114d9f0a80f27bc5040cd2287dca80423d13e Author: Michael S. Tsirkin Date: Mon Dec 21 09:22:18 2015 +0200 metag: reuse asm-generic/barrier.h On metag dma_rmb, dma_wmb, smp_store_mb, read_barrier_depends, smp_read_barrier_depends, smp_store_release and smp_load_acquire match the asm-generic variants exactly. Drop the local definitions and pull in asm-generic/barrier.h instead. This is in preparation to refactoring this code area. Signed-off-by: Michael S. Tsirkin Acked-by: Arnd Bergmann Acked-by: James Hogan Acked-by: Peter Zijlstra (Intel) arch/metag/include/asm/barrier.h | 25 ++----------------------- 1 file changed, 2 insertions(+), 23 deletions(-) commit 90ff6a17d0e07d689886cba4244674bfd41e7a2d Author: Michael S. Tsirkin Date: Mon Dec 21 09:22:18 2015 +0200 arm64: reuse asm-generic/barrier.h On arm64 nop, read_barrier_depends, smp_read_barrier_depends smp_store_mb(), smp_mb__before_atomic and smp_mb__after_atomic match the asm-generic variants exactly. Drop the local definitions and pull in asm-generic/barrier.h instead. This is in preparation to refactoring this code area. Signed-off-by: Michael S. Tsirkin Acked-by: Arnd Bergmann Acked-by: Peter Zijlstra (Intel) arch/arm64/include/asm/barrier.h | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) commit 335390d6096f647311980f50312b304b377e616f Author: Michael S. Tsirkin Date: Mon Dec 21 09:22:18 2015 +0200 arm: reuse asm-generic/barrier.h On arm smp_store_mb, read_barrier_depends, smp_read_barrier_depends, smp_store_release, smp_load_acquire, smp_mb__before_atomic and smp_mb__after_atomic match the asm-generic variants exactly. Drop the local definitions and pull in asm-generic/barrier.h instead. This is in preparation to refactoring this code area. Signed-off-by: Michael S. Tsirkin Acked-by: Arnd Bergmann Acked-by: Russell King Acked-by: Peter Zijlstra (Intel) arch/arm/include/asm/barrier.h | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) commit 519be0438e6963b8efd2430e9d0595f5aeee915e Author: Michael S. Tsirkin Date: Mon Dec 21 09:22:18 2015 +0200 sparc: reuse asm-generic/barrier.h On sparc 64 bit dma_rmb, dma_wmb, smp_store_mb, smp_mb, smp_rmb, smp_wmb, read_barrier_depends and smp_read_barrier_depends match the asm-generic variants exactly. Drop the local definitions and pull in asm-generic/barrier.h instead. nop uses __asm__ __volatile but is otherwise identical to the generic version, drop that as well. This is in preparation to refactoring this code area. Note: nop() was in processor.h and not in barrier.h as on other architectures. Nothing seems to depend on it being there though. Signed-off-by: Michael S. Tsirkin Acked-by: Arnd Bergmann Acked-by: David S. Miller Acked-by: Peter Zijlstra (Intel) arch/sparc/include/asm/barrier_32.h | 1 - arch/sparc/include/asm/barrier_64.h | 21 ++------------------- arch/sparc/include/asm/processor.h | 3 --- 3 files changed, 2 insertions(+), 23 deletions(-) commit 21535aaed9e33b4cc485ab2245dd2958816ee916 Author: Michael S. Tsirkin Date: Mon Dec 21 09:22:18 2015 +0200 s390: reuse asm-generic/barrier.h On s390 read_barrier_depends, smp_read_barrier_depends smp_store_mb(), smp_mb__before_atomic and smp_mb__after_atomic match the asm-generic variants exactly. Drop the local definitions and pull in asm-generic/barrier.h instead. This is in preparation to refactoring this code area. Signed-off-by: Michael S. Tsirkin Acked-by: Arnd Bergmann Acked-by: Peter Zijlstra (Intel) arch/s390/include/asm/barrier.h | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit fbd7ec02363cee4264aca2cc46692c9322fd6b42 Author: Michael S. Tsirkin Date: Mon Dec 21 09:22:18 2015 +0200 powerpc: reuse asm-generic/barrier.h On powerpc read_barrier_depends, smp_read_barrier_depends smp_store_mb(), smp_mb__before_atomic and smp_mb__after_atomic match the asm-generic variants exactly. Drop the local definitions and pull in asm-generic/barrier.h instead. This is in preparation to refactoring this code area. Signed-off-by: Michael S. Tsirkin Acked-by: Arnd Bergmann Acked-by: Peter Zijlstra (Intel) Reviewed-by: Paul E. McKenney arch/powerpc/include/asm/barrier.h | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit 53a05ac15ee04b56ce02f0f831556e2fcdcce93f Author: Michael S. Tsirkin Date: Mon Dec 21 09:22:18 2015 +0200 ia64: reuse asm-generic/barrier.h On ia64 smp_rmb, smp_wmb, read_barrier_depends, smp_read_barrier_depends and smp_store_mb() match the asm-generic variants exactly. Drop the local definitions and pull in asm-generic/barrier.h instead. This is in preparation to refactoring this code area. Signed-off-by: Michael S. Tsirkin Acked-by: Tony Luck Acked-by: Arnd Bergmann Acked-by: Peter Zijlstra (Intel) arch/ia64/include/asm/barrier.h | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit 9505ec0825a09ea97426d026f2524d1cefa83a84 Author: Michael S. Tsirkin Date: Mon Dec 28 13:58:06 2015 +0200 ia64: rename nop->iosapic_nop asm-generic/barrier.h defines a nop() macro. To be able to use this header on ia64, we shouldn't call local functions/variables nop(). There's one instance where this breaks on ia64: rename the function to iosapic_nop to avoid the conflict. Signed-off-by: Michael S. Tsirkin Acked-by: Tony Luck Acked-by: Arnd Bergmann Acked-by: Peter Zijlstra (Intel) arch/ia64/kernel/iosapic.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 57f7c0370f386d5e0960e25d2c3ceb0b8e8c489d Author: Michael S. Tsirkin Date: Sun Dec 27 14:10:52 2015 +0200 asm-generic: guard smp_store_release/load_acquire Allow architectures to override smp_store_release and smp_load_acquire by guarding the defines in asm-generic/barrier.h with ifndef directives. This is in preparation to reusing asm-generic/barrier.h on architectures which have their own definition of these macros. Signed-off-by: Michael S. Tsirkin Acked-by: Arnd Bergmann Acked-by: Peter Zijlstra (Intel) include/asm-generic/barrier.h | 4 ++++ 1 file changed, 4 insertions(+) commit 5a1b26d7c629915446222ebe77d16567c98426ff Author: Davidlohr Bueso Date: Thu Dec 31 12:09:13 2015 +0200 lcoking/barriers, arch: Use smp barriers in smp_store_release() With commit b92b8b35a2e ("locking/arch: Rename set_mb() to smp_store_mb()") it was made clear that the context of this call (and thus set_mb) is strictly for CPU ordering, as opposed to IO. As such all archs should use the smp variant of mb(), respecting the semantics and saving a mandatory barrier on UP. Signed-off-by: Davidlohr Bueso Signed-off-by: Peter Zijlstra (Intel) Cc: Cc: Andrew Morton Cc: Benjamin Herrenschmidt Cc: Heiko Carstens Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tony Luck Cc: dave@stgolabs.net Link: http://lkml.kernel.org/r/1445975631-17047-3-git-send-email-dave@stgolabs.net Signed-off-by: Ingo Molnar Reviewed-by: Paul E. McKenney arch/ia64/include/asm/barrier.h | 2 +- arch/powerpc/include/asm/barrier.h | 2 +- arch/s390/include/asm/barrier.h | 2 +- include/asm-generic/barrier.h | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) commit 19e2fc4066d7e63e47adb6a70c77ba7d291b1972 Merge: 2945e9f 4693c24 Author: Linus Torvalds Date: Tue Jan 12 10:34:43 2016 -0800 Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu Pull m68knommu update from Greg Ungerer: "Only a single change, limiting the return values for coldfire gpio get function" * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu: m68k: coldfire/gpio: Be sure to clamp return value commit 2945e9f111e2f5f7d7b0f4af0a56b9f768db9fc8 Merge: c5c80bd eb37bc3 Author: Linus Torvalds Date: Tue Jan 12 10:33:51 2016 -0800 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: Provide __phys_to_pfn() and __pfn_to_phys() m68k/atari, m68k/sun3: Fix SCSI platform device registration when driver is modular m68k/defconfig: Update defconfigs for v4.4-rc1 m68k/mac: Kill psc_present commit 2f6b99ef1322e49aa05b16f4a7413f32631fb8fa Author: Marc Zyngier Date: Thu Jan 7 17:47:00 2016 +0000 ARM: Add CONFIG_DEPRECATED_PARAM_STRUCT to netwinder_defconfig Fed up with all that fancy new 64bit HW? Look no further! Get your NetWinder out of the closet (or in my case, the tip) and run -next on it! All it takes is a small defconfig change to be able to take the parameters from the bootloader... Signed-off-by: Marc Zyngier Signed-off-by: Olof Johansson arch/arm/configs/netwinder_defconfig | 1 + 1 file changed, 1 insertion(+) commit d3bd4e0a5fd40ae61fe0dc19f2cfa88c88bb761c Merge: 78ae902 92a513b Author: Mark Brown Date: Tue Jan 12 18:26:12 2016 +0000 Merge remote-tracking branch 'regulator/topic/wm831x' into regulator-next commit 78ae90255276d2cb9e4410df74b378cb9f8a8bbb Merge: 3fbd90b d761c90 ee01d0c fad2ba6 7f9354f c0ea88b Author: Mark Brown Date: Tue Jan 12 18:26:10 2016 +0000 Merge remote-tracking branches 'regulator/topic/pv88090', 'regulator/topic/qcom-smd', 'regulator/topic/tps6105x', 'regulator/topic/tps65086' and 'regulator/topic/tps65218' into regulator-next commit 3fbd90bf6b21453d235f533c5c5d335ecc1052eb Merge: 8bd31df 95dfead 47769cb 3ff3f51 b554e14 3c0a2f6 Author: Mark Brown Date: Tue Jan 12 18:26:07 2016 +0000 Merge remote-tracking branches 'regulator/topic/lp8788', 'regulator/topic/mt6311', 'regulator/topic/optional', 'regulator/topic/palmas' and 'regulator/topic/pv88060' into regulator-next commit 8bd31df8de3351465c5d202d1a6f0da5834726b9 Merge: 9fa2957 b0d6dd3 faa5cf3 70a7fb8 8a99cc6 Author: Mark Brown Date: Tue Jan 12 18:26:05 2016 +0000 Merge remote-tracking branches 'regulator/topic/const', 'regulator/topic/lm363x', 'regulator/topic/lockdep' and 'regulator/topic/lp872x' into regulator-next commit 9fa295742d4f3064b1faf8fbbbcba21969ec9df6 Merge: 353915f 70dc6da Author: Mark Brown Date: Tue Jan 12 18:26:05 2016 +0000 Merge remote-tracking branch 'regulator/topic/core' into regulator-next commit c5c80bd923d34f7dc70e7b23eb427cd284989a1b Merge: 03891f9 8083013 Author: Linus Torvalds Date: Tue Jan 12 10:26:03 2016 -0800 Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus Pull MIPS fixes from Ralf Baechle: "This is the final pull request for MIPS for 4.4. It fixes: - scripts/ld-version.sh parsing of ld version numbers that contain large numbers as components. - fix parsing of version numbers as used by Fedora's ld. Currently scripts/ld-version.sh is only being used by MIPS" [ This obviously missed 4.4, so getting merged now in the merge window for 4.5 instead ] * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: ld-version: Fix it on Fedora Fix ld-version.sh to handle large 3rd version part commit 353915f0b43fb156c3bf02d54d9f3dbdcbe66afe Merge: 3ad4b05 3cb99e2 aab3c3f Author: Mark Brown Date: Tue Jan 12 18:26:03 2016 +0000 Merge remote-tracking branches 'regulator/fix/axp20x' and 'regulator/fix/mt6311' into regulator-linus commit 3ad4b0517b6510a53d791f9ead531a08bda3bcdd Merge: 1683098 fa731ac Author: Mark Brown Date: Tue Jan 12 18:26:02 2016 +0000 Merge remote-tracking branch 'regulator/fix/core' into regulator-linus commit 5f4900bd8e2528ff783e329b193bfe8ce5638a98 Merge: d0ac611 336f79c Author: Olof Johansson Date: Tue Jan 12 10:15:01 2016 -0800 Merge tag 'tegra-for-4.5-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into late/tegra ARM: tegra: Devicetree changes for v4.5-rc1 This adds support for the Tegra132 Norrin and various Tegra210-based reference designs. There is also an initial device tree for the Jetson TX1 development kit. * tag 'tegra-for-4.5-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: arm64: tegra: Add NVIDIA Jetson TX1 Developer Kit support arm64: tegra: Add NVIDIA P2597 I/O board support arm64: tegra: Add NVIDIA Jetson TX1 support arm64: tegra: Add NVIDIA P2571 board support arm64: tegra: Add NVIDIA P2371 board support arm64: tegra: Add NVIDIA P2595 I/O board support arm64: tegra: Add NVIDIA P2530 main board support arm64: tegra: Add Tegra210 support arm64: tegra: Add NVIDIA Tegra132 Norrin support arm64: tegra: Add Tegra132 support clk: tegra: Add Tegra210 device tree binding Signed-off-by: Olof Johansson commit d0ac6119aaae419baf824b996d1690fbe926971e Merge: 3e91219 a262e87 Author: Olof Johansson Date: Tue Jan 12 10:14:52 2016 -0800 Merge tag 'tegra-for-4.5-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into late/tegra ARM: tegra: Core SoC changes for v4.5-rc1 The big thing here is Tegra210 support, which is really only the Kconfig symbol. Other than that there's a few miscellaneous fixes. * tag 'tegra-for-4.5-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: ARM: tegra: select USB_ULPI from EHCI rather than platform ARM: tegra: Ensure entire dcache is flushed on entering LP0/1 amba: Hide TEGRA_AHB symbol soc/tegra: Add Tegra210 support soc/tegra: Provide per-SoC Kconfig symbols Signed-off-by: Olof Johansson commit 3e9121950c92a65e33e0163d2ba111b4d9293d4c Merge: 31ade3b e324654 Author: Olof Johansson Date: Tue Jan 12 10:14:07 2016 -0800 Merge branch 'treewide/cleanup' into late/tegra * treewide/cleanup: ARM: use "depends on" for SoC configs instead of "if" after prompt ARM/clocksource: use automatic DT probing for ux500 PRCMU ARM: use const and __initconst for smp_operations ARM: hisi: do not export smp_operations structures Signed-off-by: Olof Johansson commit 7aaed57c5c2890634cfadf725173c7c68ea4cb4f Author: Eric Dumazet Date: Tue Jan 12 08:58:00 2016 -0800 phonet: properly unshare skbs in phonet_rcv() Ivaylo Dimitrov reported a regression caused by commit 7866a621043f ("dev: add per net_device packet type chains"). skb->dev becomes NULL and we crash in __netif_receive_skb_core(). Before above commit, different kind of bugs or corruptions could happen without major crash. But the root cause is that phonet_rcv() can queue skb without checking if skb is shared or not. Many thanks to Ivaylo Dimitrov for his help, diagnosis and tests. Reported-by: Ivaylo Dimitrov Tested-by: Ivaylo Dimitrov Signed-off-by: Eric Dumazet Cc: Remi Denis-Courmont Signed-off-by: David S. Miller net/phonet/af_phonet.c | 4 ++++ 1 file changed, 4 insertions(+) commit d461873272169a3fc3a8d155d7b1c92e9d97b419 Author: Lars Persson Date: Tue Jan 12 15:28:13 2016 +0100 dwc_eth_qos: Fix dma address for multi-fragment skbs The offset inside the fragment was not used for the dma address and silent data corruption resulted because TSO makes the checksum match. Fixes: 077742dac2c7 ("dwc_eth_qos: Add support for Synopsys DWC Ethernet QoS") Signed-off-by: Lars Persson Signed-off-by: David S. Miller drivers/net/ethernet/synopsys/dwc_eth_qos.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 47b356e499f26d330ab6ae4019e8c05f994be62d Author: Dan Carpenter Date: Tue Jan 12 12:36:21 2016 +0300 phy: remove an unneeded condition It used to be that bus->irq was a pointer but after e7f4dc3536a4 ('mdio: Move allocation of interrupts into core') it's an array inside the mdio struct, so it can never be NULL. Let's remove the check. Reviewed-by: Andrew Lunn Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller drivers/net/phy/phy_device.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1bc16addc0e92222958010537557b18e25a278c0 Author: Dan Carpenter Date: Tue Jan 12 12:35:34 2016 +0300 mdio: remove an unneed condition It used to be that mdio->irq was a pointer but after e7f4dc3536a4 ('mdio: Move allocation of interrupts into core') it's an array inside the mdio struct so it can never be NULL. Reviewed-by: Andrew Lunn Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller drivers/of/of_mdio.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 3567eb6af614dac436c4b16a8d426f9faed639b3 Author: Takashi Iwai Date: Tue Jan 12 15:36:27 2016 +0100 ALSA: seq: Fix race at timer setup and close ALSA sequencer code has an open race between the timer setup ioctl and the close of the client. This was triggered by syzkaller fuzzer, and a use-after-free was caught there as a result. This patch papers over it by adding a proper queue->timer_mutex lock around the timer-related calls in the relevant code path. Reported-by: Dmitry Vyukov Tested-by: Dmitry Vyukov Cc: Signed-off-by: Takashi Iwai sound/core/seq/seq_queue.c | 2 ++ 1 file changed, 2 insertions(+) commit db9107b4972bbcb81ee6bc12f365dbe8684b137c Author: Dan Carpenter Date: Tue Jan 12 12:34:36 2016 +0300 mdio_bus: NULL dereference on allocation error If bus = kzalloc() fails then we end up dereferencing bus when we do "bus->irq[i] = PHY_POLL;". The code is a little simpler if we reverse the NULL check and return directly on failure. Fixes: e7f4dc3536a4 ('mdio: Move allocation of interrupts into core') Signed-off-by: Dan Carpenter Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/phy/mdio_bus.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 3f984cb39907f87515d83657ecd471ae396a6c4a Author: Andrzej Hajda Date: Thu Jan 7 10:36:51 2016 +0100 coccinelle: tests: unsigned value cannot be lesser than zero Unsigned expressions cannot be lesser than zero. Presence of comparisons 'unsigned (<|<=|>|>=) 0' often indicates a bug, usually wrong type of variable. The patch beside finding such comparisons tries to eliminate false positives, mainly by bypassing range checks. gcc can detect such comparisons also using -Wtype-limits switch, but it warns also in correct cases, making too much noise. Signed-off-by: Andrzej Hajda Acked-by: Julia Lawall Signed-off-by: Michal Marek .../tests/unsigned_lesser_than_zero.cocci | 75 ++++++++++++++++++++++ 1 file changed, 75 insertions(+) commit 030e2c78d3a91dd0d27fef37e91950dde333eba1 Author: Takashi Iwai Date: Tue Jan 12 12:38:02 2016 +0100 ALSA: seq: Fix missing NULL check at remove_events ioctl snd_seq_ioctl_remove_events() calls snd_seq_fifo_clear() unconditionally even if there is no FIFO assigned, and this leads to an Oops due to NULL dereference. The fix is just to add a proper NULL check. Reported-by: Dmitry Vyukov Tested-by: Dmitry Vyukov Cc: Signed-off-by: Takashi Iwai sound/core/seq/seq_clientmgr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 34b7b0f95d41d2351a080e774d71085171db90e6 Author: Namhyung Kim Date: Sat Jan 9 19:16:29 2016 +0900 perf tools: Fallback to srcdir/Documentation/tips.txt Some people don't install perf, but just use compiled version in the source. Fallback to lookup the source directory for those poor guys. :) Signed-off-by: Namhyung Kim Cc: Andi Kleen Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/1452334589-8782-4-git-send-email-namhyung@kernel.org [ Make perf_tip() return NULL for ENOENT, making the fallback to really take place ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-report.c | 10 +++++++++- tools/perf/util/util.c | 11 ++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) commit 090cff3eae8f02395009972d01b5dfdb95bcc327 Author: Namhyung Kim Date: Mon Jan 11 19:53:14 2016 +0900 perf ui/tui: Print helpline message as is When a tip message contains a percent sign, it was treated printf format specifier so broken string was printed like below. Tip: Limit to show entries above 577nly: perf report --percent-limit 5 ^^^ As ui_browser__show receives format string, pass additional "%s" so that the help (tip) message can be printed as is. Tip: Limit to show entries above 5% only: perf report --percent-limit 5 Signed-off-by: Namhyung Kim Cc: Andi Kleen Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/1452509594-13616-1-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/ui/browsers/hists.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 84cfac7f05e110e803a45d99cff0ba0949cc8d58 Author: Namhyung Kim Date: Sat Jan 9 19:16:28 2016 +0900 perf tools: Set and pass DOCDIR to builtin-report.c It'll be used to locate perf document directory to find tips.txt in case it's not installed on the system. Signed-off-by: Namhyung Kim Cc: Andi Kleen Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/1452334589-8782-3-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Build | 1 + tools/perf/config/Makefile | 3 +++ 2 files changed, 4 insertions(+) commit dd8232bc9d13b729d92590b55befd14e49f81eca Author: Namhyung Kim Date: Sat Jan 9 19:16:27 2016 +0900 perf tools: Add file_only config option to strlist If strlist_config.dirname is present, the strlist__new() tries to load stirngs from dirname/list file first but if it failes it falls back to add 'list' as string. But sometimes it's not desired so adds new file_only field to prevent it. Signed-off-by: Namhyung Kim Cc: Andi Kleen Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/1452334589-8782-2-git-send-email-namhyung@kernel.org [ Add documentation for strlist_config::file_only, in the struct definition */ Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/strlist.c | 8 ++++++++ tools/perf/util/strlist.h | 9 ++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) commit 09f1985404aa99b9d1ad435fcb0dabd20d4ed498 Author: Namhyung Kim Date: Mon Jan 11 19:35:10 2016 +0900 perf tools: Add more usage tips Thanks to Andi Kleen for providing useful tips. Suggested-by: Andi Kleen Signed-off-by: Namhyung Kim Cc: Andi Kleen Cc: Brendan Gregg Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/1452508510-28316-1-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/tips.txt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 6156681b73f2fffe56493e9a50518c0cbfcd8ba3 Author: Namhyung Kim Date: Mon Jan 11 22:37:09 2016 +0900 perf record: Add --buildid-all option The --buildid-all option is to record build-id of all DSOs in the file. It might be very costly to postprocess samples to find which DSO hits. Signed-off-by: Namhyung Kim Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1452519429-31779-1-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-record.txt | 3 +++ tools/perf/builtin-record.c | 26 ++++++++++++++++++++------ 2 files changed, 23 insertions(+), 6 deletions(-) commit 24b1e5d7f552eb6da430d5264d671ba45d634804 Author: Josh Poimboeuf Date: Fri Dec 18 06:39:17 2015 -0600 tools subcmd: Add missing NORETURN define for parse-options.h parse-options.h uses the NORETURN macro without defining it. perf doesn't see a build error because it defines the macro in util.h before including parse-options.h. But any other tool including it will see an error. Define the macro in parse-options.h (if not already defined) so that other tools can include it. Signed-off-by: Josh Poimboeuf Cc: "H. Peter Anvin" Cc: Andi Kleen Cc: Andrew Morton Cc: Andy Lutomirski Cc: Bernd Petrovitsch Cc: Borislav Petkov Cc: Chris J Arges Cc: Jiri Slaby Cc: Linus Torvalds Cc: Michal Marek Cc: Namhyung Kim Cc: Pedro Alves Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: live-patching@vger.kernel.org Cc: x86@kernel.org Link: http://lkml.kernel.org/r/6c16294ac6dbe5e2ca28fd935fe4389996588564.1450442274.git.jpoimboe@redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/lib/subcmd/parse-options.h | 4 ++++ 1 file changed, 4 insertions(+) commit 20a7add8ca2165de909d430b9874eacc26a2166c Author: Josh Poimboeuf Date: Fri Dec 18 06:39:15 2015 -0600 tools: Fix formatting of the "make -C tools" help message Align the x86_energy_perf_policy line with the others and restore the original alphabetical sorting. Signed-off-by: Josh Poimboeuf Cc: "H. Peter Anvin" Cc: Andi Kleen Cc: Andrew Morton Cc: Andy Lutomirski Cc: Bernd Petrovitsch Cc: Borislav Petkov Cc: Chris J Arges Cc: Jiri Slaby Cc: Linus Torvalds Cc: Michal Marek Cc: Namhyung Kim Cc: Pedro Alves Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: live-patching@vger.kernel.org Cc: x86@kernel.org Link: http://lkml.kernel.org/r/572931227adbf1fc9ca96e1dae3ef2e89387feca.1450442274.git.jpoimboe@redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/Makefile | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) commit d1b39d41ebec2afc761ba6539b77a7fe1669ddae Author: Josh Poimboeuf Date: Fri Dec 18 06:39:16 2015 -0600 tools: Make list.h self-sufficient Commit 7f5f873c6a07 ("rculist: Use WRITE_ONCE() when deleting from reader-visible list") added the use of the WRITE_ONCE macro to the kernel version of list.h, which broke the stacktool build because the tools list.h includes the kernel list.h. Avoid this type of situation in the future and make list.h self-sufficient by copying the kernel list.h routines directly into tools list.h. This is a straight copy except for adjustments to the include statements and copying of the tools-specific list routines (list_del_range and list_for_each_from). Signed-off-by: Josh Poimboeuf Cc: "H. Peter Anvin" Cc: Andi Kleen Cc: Andrew Morton Cc: Andy Lutomirski Cc: Bernd Petrovitsch Cc: Borislav Petkov Cc: Chris J Arges Cc: Jiri Slaby Cc: Linus Torvalds Cc: Michal Marek Cc: Namhyung Kim Cc: Pedro Alves Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: live-patching@vger.kernel.org Cc: x86@kernel.org Link: http://lkml.kernel.org/r/59cdc19c6589d1b5ef43d83b0e2d5a4a40301374.1450442274.git.jpoimboe@redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/include/linux/list.h | 753 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 747 insertions(+), 6 deletions(-) commit 8b4970c41f88ad772771f87b1c82c395248a84d8 Author: Matias Bjørling Date: Tue Jan 12 07:49:39 2016 +0100 lightnvm: introduce factory reset Now that a device can be managed using the system blocks, a method to reset the device is necessary as well. This patch introduces logic to reset the device easily to factory state and exposes it through an ioctl. The ioctl takes the following flags: NVM_FACTORY_ERASE_ONLY_USER By default all blocks, except host-reserved blocks are erased upon factory reset. Instead of this, only erase host-reserved blocks. NVM_FACTORY_RESET_HOST_BLKS Mark host-reserved blocks to be erased and set their type to free. NVM_FACTORY_RESET_GRWN_BBLKS Mark "grown bad blocks" to be erased and set their type to free. Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe drivers/lightnvm/core.c | 34 ++++++++ drivers/lightnvm/sysblk.c | 179 ++++++++++++++++++++++++++++++++++++++++++ include/linux/lightnvm.h | 2 + include/uapi/linux/lightnvm.h | 19 +++++ 4 files changed, 234 insertions(+) commit b769207678176d590ea61ce7a64c9100925668b7 Author: Matias Bjørling Date: Tue Jan 12 07:49:38 2016 +0100 lightnvm: use system block for mm initialization Use system block information to register the appropriate media manager. This enables the LightNVM subsystem to instantiate a media manager selected by the user, instead of relying on automatic detection by each media manager loaded in the kernel. A device must now be initialized before it can proceed to initialize its media manager. Upon initialization, the configured media manager is automatically initialized as well. Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe drivers/lightnvm/core.c | 25 +++++++++++++++++++++++-- include/linux/lightnvm.h | 3 +++ 2 files changed, 26 insertions(+), 2 deletions(-) commit 5569615424613aa006005f18b03a3a12738a47d7 Author: Matias Bjørling Date: Tue Jan 12 07:49:37 2016 +0100 lightnvm: introduce ioctl to initialize device Based on the previous patch, we now introduce an ioctl to initialize the device using nvm_init_sysblock and create the necessary system blocks. The user may specify the media manager that they wish to instantiate on top. Default from user-space will be "gennvm". Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe drivers/lightnvm/core.c | 50 +++++++++++++++++++++++++++++++++++++++++++ include/uapi/linux/lightnvm.h | 11 ++++++++++ 2 files changed, 61 insertions(+) commit e3eb3799f7e0d0924ceeba672ab271865de2802d Author: Matias Bjørling Date: Tue Jan 12 07:49:36 2016 +0100 lightnvm: core on-disk initialization An Open-Channel SSD shall be initialized before use. To initialize, we define an on-disk format, that keeps a small set of metadata to bring up the media manager on top of the device. The initial step is introduced to allow a user to format the disks for a given media manager. During format, a system block is stored on one to three separate luns on the device. Each lun has the system block duplicated. During initialization, the system block can be retrieved and the appropriate media manager can initialized. The on-disk format currently covers (struct nvm_system_block): - Magic value "NVMS". - Monotonic increasing sequence number. - The physical block erase count. - Version of the system block format. - Media manager type. - Media manager superblock physical address. The interface provides three functions to manage the system block: int nvm_init_sysblock(struct nvm_dev *, struct nvm_sb_info *) int nvm_get_sysblock(struct nvm *dev, struct nvm_sb_info *) int nvm_update_sysblock(struct nvm *dev, struct nvm_sb_info *) Each implement a part of the logic to manage the system block. The initialization creates the first system blocks and mark them on the device. Get retrieves the latest system block by scanning all pages in the associated system blocks. The update sysblock writes new metadata and allocates new block if necessary. Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe drivers/lightnvm/Makefile | 2 +- drivers/lightnvm/core.c | 1 + drivers/lightnvm/sysblk.c | 562 ++++++++++++++++++++++++++++++++++++++++++ include/linux/lightnvm.h | 35 +++ include/uapi/linux/lightnvm.h | 1 + 5 files changed, 600 insertions(+), 1 deletion(-) commit ca5927e7ab5307965104ca58bbb29d110b1d4545 Author: Matias Bjørling Date: Tue Jan 12 07:49:35 2016 +0100 lightnvm: introduce mlc lower page table mappings NAND MLC memories have both lower and upper pages. When programming, both of these must be written, before data can be read. However, these lower and upper pages might not placed at even and odd flash pages, but can be skipped. Therefore each flash memory has its lower pages defined, which can then be used when programming and to know when padding are necessary. This patch implements the lower page definition in the specification, and exposes it through a simple lookup table at dev->lptbl. Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe drivers/lightnvm/core.c | 61 +++++++++++++++++++++++++++++++++++++++++++- drivers/nvme/host/lightnvm.c | 22 +++++++++++++++- include/linux/lightnvm.h | 20 +++++++++++++++ 3 files changed, 101 insertions(+), 2 deletions(-) commit f9a9995072904f2d67d649545f17f81e00f4985e Author: Matias Bjørling Date: Tue Jan 12 07:49:34 2016 +0100 lightnvm: add mccap support Some flash media has extended capabilities, such as programming SLC pages on MLC/TLC flash, erase/program suspend, scramble and encryption. MCCAP is introduced to detect support for these capabilities in the command set. Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe drivers/lightnvm/core.c | 1 + include/linux/lightnvm.h | 7 +++++++ 2 files changed, 8 insertions(+) commit ff0e498bfa185fad5e86c4c7a2db4f9648d2344f Author: Javier González Date: Tue Jan 12 07:49:33 2016 +0100 lightnvm: manage open and closed blocks separately LightNVM targets need to know the state of the flash block when doing flash optimizations. An example is implementing a write buffer to respect the flash page size. Currently, block state is not accounted for; the media manager only differentiates among free, bad and in-use blocks. This patch adds the logic in the generic media manager to enable targets manage blocks into open and close separately, and it implements such management in rrpc. It also adds a set of flags to describe the state of the block (open, closed, free, bad). In order to avoid taking two locks (nvm_lun and rrpc_lun) consecutively, we introduce lockless get_/put_block primitives so that the open and close list locks and future common logic is handled within the nvm_lun lock. Signed-off-by: Javier González Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe drivers/lightnvm/core.c | 14 +++++++ drivers/lightnvm/gennvm.c | 99 +++++++++++++++++++++++++++++------------------ drivers/lightnvm/rrpc.c | 38 +++++++++++++++--- drivers/lightnvm/rrpc.h | 12 +++++- include/linux/lightnvm.h | 25 ++++++++++-- 5 files changed, 142 insertions(+), 46 deletions(-) commit b5d4acd4cbf5029a2616084d9e9f392046d53a37 Author: Matias Bjørling Date: Tue Jan 12 07:49:32 2016 +0100 lightnvm: fix missing grown bad block type The get/set bad block interface defines good block, factory bad block, grown bad block, device reserved block, and host reserved block. Unfortunately the grown bad block was missing, leaving the offsets wrong for device and host side reserved blocks. This patch adds the missing type and corrects the offsets. Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe include/linux/lightnvm.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit d7a64d275b39e19c010cdfd8728cc64f14b59bda Author: Javier González Date: Tue Jan 12 07:49:31 2016 +0100 lightnvm: reference rrpc lun in rrpc block Currently, a rrpc block only points to its nvm_lun. If a user wants to find the associated rrpc lun, it will have to calculate the index and look it up manually. By referencing the rrpc lun directly, this step can be omitted, at the cost of a larger memory footprint. This is important for upcoming patches that implement write buffering in rrpc. Signed-off-by: Javier González Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe drivers/lightnvm/rrpc.c | 1 + drivers/lightnvm/rrpc.h | 1 + 2 files changed, 2 insertions(+) commit 09719b62fdab031e39b39a6470364a372abdf3f4 Author: Matias Bjørling Date: Tue Jan 12 07:49:30 2016 +0100 lightnvm: introduce nvm_submit_ppa Internal logic for both core and media managers, does not have a backing bio for issuing I/Os. Introduce nvm_submit_ppa to allow raw I/Os to be submitted to the underlying device driver. The function request the device, ppa, data buffer and its length and will submit the I/O synchronously to the device. The return value may therefore be used to detect any errors regarding the issued I/O. Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe drivers/lightnvm/core.c | 45 ++++++++++++++++++++++++++++++++++++++++++++- include/linux/lightnvm.h | 2 ++ 2 files changed, 46 insertions(+), 1 deletion(-) commit 72d256ecc5d0c8cbcc0bd5c6d983b434df556cb4 Author: Matias Bjørling Date: Tue Jan 12 07:49:29 2016 +0100 lightnvm: move rq->error to nvm_rq->error Instead of passing request error into the LightNVM modules, incorporate it into the nvm_rq. Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe drivers/lightnvm/core.c | 3 ++- drivers/lightnvm/gennvm.c | 6 +++--- drivers/lightnvm/rrpc.c | 2 +- include/linux/lightnvm.h | 4 +++- 4 files changed, 9 insertions(+), 6 deletions(-) commit 81e681d3f7424fc2f03b6269e15c63131473c98f Author: Matias Bjørling Date: Tue Jan 12 07:49:28 2016 +0100 lightnvm: support multiple ppas in nvm_erase_ppa Sometimes a user want to erase multiple PPAs at the same time. Extend nvm_erase_ppa to take multiple ppas and number of ppas to be erased. Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe drivers/lightnvm/core.c | 4 ++-- drivers/lightnvm/gennvm.c | 2 +- include/linux/lightnvm.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit 4b79beb4c36d697e940e9f70d72399c71230a418 Author: Wenwei Tao Date: Tue Jan 12 07:49:27 2016 +0100 lightnvm: move the pages per block check out of the loop There is no need to check whether dev's pages per block is beyond rrpc support every time we init a lun, we only need to check it once before enter the lun init loop. Signed-off-by: Wenwei Tao Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe drivers/lightnvm/rrpc.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 556755e941837ebc4b4859dd7f74f2ed2dd00fc7 Author: Matias Bjørling Date: Tue Jan 12 07:49:26 2016 +0100 lightnvm: sectors first in ppa list The Westlake controller requires that the PPA list has sectors defined sequentially. Currently, the PPA list is created with planes first, then sectors. Change this to sectors first, then planes. Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe drivers/lightnvm/core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit b262924be03d5d2ae735bc9a4b37eb2c613f61f8 Author: Wenwei Tao Date: Tue Jan 12 07:49:25 2016 +0100 lightnvm: fix locking and mempool in rrpc_lun_gc This patch fix two issues in rrpc_lun_gc 1. prio_list is protected by rrpc_lun's lock not nvm_lun's, so acquire rlun's lock instead of lun's before operate on the list. 2. we delete block from prio_list before allocating gcb, but gcb allocation may fail, we end without putting it back to the list, this makes the block won't get reclaimed in the future. To solve this issue, delete block after gcb allocation. Signed-off-by: Wenwei Tao Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe drivers/lightnvm/rrpc.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit d0ca798f960ad7d86f5186fe312c131d00563eb7 Author: Wenwei Tao Date: Tue Jan 12 07:49:24 2016 +0100 lightnvm: put block back to gc list on its reclaim fail We delete a block from the gc list before reclaim it, so put it back to the list on its reclaim fail, otherwise this block will not get reclaimed and be programmable in the future. Signed-off-by: Wenwei Tao Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe drivers/lightnvm/rrpc.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) commit 2b11c1b24e50a26d435f1d59955f1268053623b7 Author: Wenwei Tao Date: Tue Jan 12 07:49:23 2016 +0100 lightnvm: check bi_error in gc We should check last io completion status before starting another one. Signed-off-by: Wenwei Tao Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe drivers/lightnvm/rrpc.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 22513215b83d62a7f5e3494209b69d4d8c266ab8 Author: Matias Bjørling Date: Tue Jan 12 07:49:22 2016 +0100 lightnvm: return the get_bb_tbl return value During get_bb_tbl, a callback is used to allow an user-specific scan function to be called. The callback may return an error, and in that case, the return value is overridden. However, the callback error is needed when the fault is a user error and not a kernel error. For example, when a user tries to initialize the same device twice. The get_bb_tbl callback should be able to communicate this. Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe drivers/nvme/host/lightnvm.c | 5 ----- 1 file changed, 5 deletions(-) commit 91276162de9476b8ff32d9452e849210e5dd09e9 Author: Matias Bjørling Date: Tue Jan 12 07:49:21 2016 +0100 lightnvm: refactor end_io functions for sync To implement sync I/O support within the LightNVM core, the end_io functions are refactored to take an end_io function pointer instead of testing for initialized media manager, followed by calling its end_io function. Sync I/O can then be implemented using a callback that signal I/O completion. This is similar to the logic found in blk_to_execute_io(). By implementing it this way, the underlying device I/Os submission logic is abstracted away from core, targets, and media managers. Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe drivers/block/null_blk.c | 3 +-- drivers/lightnvm/core.c | 16 ++++++++++++++++ drivers/lightnvm/gennvm.c | 34 ++++++++++++++-------------------- drivers/lightnvm/rrpc.c | 6 ++---- drivers/nvme/host/lightnvm.c | 5 +---- include/linux/lightnvm.h | 12 ++++++++---- 6 files changed, 42 insertions(+), 34 deletions(-) commit abd805ec9f51f37db9da63dda44c3f4b4ae8ad57 Author: Matias Bjørling Date: Tue Jan 12 07:49:20 2016 +0100 lightnvm: refactor rqd ppa list into set/free A device may be driven in single, double or quad plane mode. In that case, the rqd must have either one, two, or four PPAs set for a single PPA sent to the device. Refactor this logic into their own functions to be shared by program/erase/read in the core. Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe drivers/lightnvm/core.c | 71 ++++++++++++++++++++++++++++++++++-------------- include/linux/lightnvm.h | 3 ++ 2 files changed, 53 insertions(+), 21 deletions(-) commit 069368e91879a3a640cfae4bdc1f9f8cc99c93a0 Author: Matias Bjørling Date: Tue Jan 12 07:49:19 2016 +0100 lightnvm: move ppa erase logic to core A device may function in single, dual or quad plane mode. The gennvm media manager manages this with explicit helpers. They convert a single ppa to 1, 2 or 4 separate ppas in a ppa list. To aid implementation of recovery and system blocks, this functionality can be moved directly into the core. Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe drivers/lightnvm/core.c | 67 ++++++++++++++++++++++++++++++++++++++++++++++ drivers/lightnvm/gennvm.c | 68 +++-------------------------------------------- include/linux/lightnvm.h | 3 +++ 3 files changed, 74 insertions(+), 64 deletions(-) commit c27278bddd75a3ee755c8e83c6bcc3fdd7271ef6 Author: Wenwei Tao Date: Tue Jan 12 07:49:18 2016 +0100 lightnvm: unlock rq and free ppa_list on submission fail When rrpc_write_ppalist_rq and rrpc_read_ppalist_rq succeed, we setup rq correctly, but nvm_submit_io may afterward fail since it cannot allocate request or nvme_nvm_command, we return error but forget to cleanup the previous work. Signed-off-by: Wenwei Tao Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe drivers/lightnvm/rrpc.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 3bfbc6adbc5031e8a5907baa5beb27b41637742a Author: Javier Gonzalez Date: Tue Jan 12 07:49:17 2016 +0100 lightnvm: add check after mempool allocation The mempool allocation might fail. Make sure to return error when it does, instead of causing a kernel panic. Signed-off-by: Javier Gonzalez Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe drivers/lightnvm/rrpc.c | 2 ++ 1 file changed, 2 insertions(+) commit bdded1552085b12d23c9be76147d2e96647a098f Author: Chao Yu Date: Tue Jan 12 07:49:16 2016 +0100 lightnvm: fix incorrect nr_free_blocks stat When initing bad block list in gennvm_block_bb, once we move bad block from free_list to bb_list, we should maintain both stat info nr_free_blocks and nr_bad_blocks. So this patch fixes to add missing operation related to nr_free_blocks. Signed-off-by: Chao Yu Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe drivers/lightnvm/gennvm.c | 1 + 1 file changed, 1 insertion(+) commit 3cd485b1f8e25a6534eb4c542e7eba1b944fbaaf Author: Wenwei Tao Date: Tue Jan 12 07:49:15 2016 +0100 lightnvm: fix bio submission issue Put bio when submission fails, since we get it before submission. And return error when backend device driver doesn't provide a submit_io method, thus we can end IO properly. Signed-off-by: Wenwei Tao Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe drivers/lightnvm/gennvm.c | 2 +- drivers/lightnvm/rrpc.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) commit c74d8eb5649386c2cfcd65cc960fd283ba876877 Author: Inki Dae Date: Tue Jan 5 19:50:31 2016 +0900 drm/exynos: fix kernel panic issue at drm releasing This patch fixes a kernel panic issue which happened when drm driver is closed while modetest. This issue could be reproduced easily by launching modetest with page flip repeatedly. The reason is that invalid drm_file object could be accessed by send_vblank_event function when finishing page flip if the drm_file object was removed by drm_release and there was a pended page flip event which was already committed to hardware. So this patch makes the pended page flip event to be cancelled by preclose callback which is called at front of drm_release function. Changelog v2: - free vblank event objects belonging to the request process, increment event space and decrease pending_update when cancelling the event Signed-off-by: Inki Dae Reviewed-by: Daniel Stone Acked-by: Daniel Vetter drivers/gpu/drm/exynos/exynos_drm_crtc.c | 26 ++++++++++++++++++++++++++ drivers/gpu/drm/exynos/exynos_drm_crtc.h | 4 ++++ drivers/gpu/drm/exynos/exynos_drm_drv.c | 5 +++++ 3 files changed, 35 insertions(+) commit d619894cf5c6a74a2e53a4701938dd4dd6736c60 Author: Inki Dae Date: Thu Dec 24 17:24:35 2015 +0900 drm/exynos: crtc: do not wait for the scanout completion This patch removes exynos_drm_crtc_complete_scanout function call which makes sure for overlay data to be updated to real hardware when drm driver is released. With atomic modeset support, it doesn't need the funtion anymore because atomic modeset interface makes sure that. Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_crtc.c | 23 ----------------------- drivers/gpu/drm/exynos/exynos_drm_crtc.h | 1 - drivers/gpu/drm/exynos/exynos_drm_fb.c | 3 --- 3 files changed, 27 deletions(-) commit 3dbaab16c4cddbbb03ad7ed1a0285605a9cc4016 Author: Marek Szyprowski Date: Tue Jan 5 13:52:52 2016 +0100 drm/exynos: mixer: properly update all planes on the same vblank event This patch also moves mixer_vsync_set_update() to newly introduced mixer_atomic_begin/flush callbacks. This ensures that all mixer planes will be updated on the same vsync event. Signed-off-by: Marek Szyprowski Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_mixer.c | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) commit d29c2c140787a1645306a11799e33adddf72e64f Author: Marek Szyprowski Date: Tue Jan 5 13:52:51 2016 +0100 drm/exynos: crtc: rework atomic_{begin,flush} Some CRTC drivers (like Exynos DRM Mixer) can handle blocking register updates only on per-device level, not per-plane level. This patch changes exynos_crts atomic_begin/atomic_flush callbacks to handle the entire crtc, instead of given planes, so driver can handle both cases on their own. Signed-off-by: Marek Szyprowski Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 14 ++++++++------ drivers/gpu/drm/exynos/exynos7_drm_decon.c | 14 ++++++++------ drivers/gpu/drm/exynos/exynos_drm_crtc.c | 20 ++++---------------- drivers/gpu/drm/exynos/exynos_drm_drv.h | 10 ++++------ drivers/gpu/drm/exynos/exynos_drm_fimd.c | 14 ++++++++------ 5 files changed, 32 insertions(+), 40 deletions(-) commit 5e68fef24fab07f4decc78d421838eb73b7e3931 Author: Marek Szyprowski Date: Wed Dec 16 13:21:48 2015 +0100 drm/exynos: mixer: unify a check for video-processor window Always use macro instead of hard-coded '2' value in conditions related to video processor window. Additional checks are not needed, because video layer is registered only when video processor is available. Signed-off-by: Marek Szyprowski Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_mixer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 26a7af3ed8a59c27ce125e7619272ca45630d000 Author: Tobias Jakobi Date: Wed Dec 16 13:21:47 2015 +0100 drm/exynos: mixer: also allow ARGB1555 and ARGB4444 Allow the remaining alpha formats now that blending is properly setup. Signed-off-by: Tobias Jakobi Signed-off-by: Marek Szyprowski Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_mixer.c | 6 ++++++ 1 file changed, 6 insertions(+) commit f657a9962070ae2502fcedf2c6568c393039d4c2 Author: Marek Szyprowski Date: Wed Dec 16 13:21:46 2015 +0100 drm/exynos: mixer: refactor layer setup Properly configure blending properties of given hardware layer based on the selected pixel format. Currently only per-pixel-based alpha is possible when respective pixel format has been selected. Configuration of global, per-plane alpha value, color key and background color will be added later. This patch is heavily inspired by earlier work done by Tobias Jakobi . Signed-off-by: Marek Szyprowski Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_mixer.c | 43 +++++++++++++++++++++++++++++++++++ drivers/gpu/drm/exynos/regs-mixer.h | 1 + 2 files changed, 44 insertions(+) commit 5bec01934a23bccfeaa22bf049af134ea80bd3b4 Author: Tobias Jakobi Date: Wed Dec 16 13:21:45 2015 +0100 drm/exynos: mixer: remove all static blending setup Previously blending setup was static and most of it was done in mixer_win_reset(). Signed-off-by: Tobias Jakobi Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_mixer.c | 23 ----------------------- 1 file changed, 23 deletions(-) commit a2cb911eb663b5820dab89f21ce698d68e7cc568 Author: Marek Szyprowski Date: Wed Dec 16 13:21:44 2015 +0100 drm/exynos: mixer: set window priority based on zpos 'zpos' plane property is configurable, so adjust hardware layers priority based on the zpos value. 'zpos' value shifted by one can be used directly as hw priority value and stored to the registers, because mixer accepts priority values from 1 to 15 (0 means that layer is disabled). This patch also changes the default layer priority to match already exposed initial zpos values. The initial configuration is now: [top] video > gfx layer1 > gfx layer0 [bottom]. Signed-off-by: Marek Szyprowski Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_mixer.c | 39 +++++++++++++++++++---------------- drivers/gpu/drm/exynos/regs-mixer.h | 3 +++ 2 files changed, 24 insertions(+), 18 deletions(-) commit 0ea724056262c2e29ac88c73bdf663412fed1ec3 Author: Marek Szyprowski Date: Wed Dec 16 13:21:43 2015 +0100 drm/exynos: make zpos property configurable This patch adds all infrastructure to make zpos plane property configurable from userspace. Signed-off-by: Marek Szyprowski Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_drv.h | 4 ++- drivers/gpu/drm/exynos/exynos_drm_plane.c | 51 ++++++++++++++++++++++++++++--- 2 files changed, 49 insertions(+), 6 deletions(-) commit 40bdfb0a4c4cd3f3af19171d31a6a7e8ab0cc1e7 Author: Marek Szyprowski Date: Wed Dec 16 13:21:42 2015 +0100 drm/exynos: rename zpos to index This patch renames zpos entry to index, because in most places it is used as index for selecting hardware layer/window instead of configurable layer position. This will later enable to make the zpos property configurable. Signed-off-by: Marek Szyprowski Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 10 +++++----- drivers/gpu/drm/exynos/exynos7_drm_decon.c | 10 +++++----- drivers/gpu/drm/exynos/exynos_drm_drv.h | 4 ++-- drivers/gpu/drm/exynos/exynos_drm_fimd.c | 10 +++++----- drivers/gpu/drm/exynos/exynos_drm_plane.c | 4 ++-- drivers/gpu/drm/exynos/exynos_drm_plane.h | 2 +- drivers/gpu/drm/exynos/exynos_drm_vidi.c | 2 +- drivers/gpu/drm/exynos/exynos_mixer.c | 14 +++++++------- 8 files changed, 28 insertions(+), 28 deletions(-) commit 7599ea8b4e25fd8dea26cb64f100cf265d1e6bf3 Author: Lee Jones Date: Tue Jan 12 14:24:18 2016 +0000 kbuild: Demote 'sign-compare' warning to W=2 Ideally, a kernel compile with W=1 enabled should complete cleanly; however, when we run one currently we are presented with ~25k warnings. 'sign-compare' accounts for ~22k of those ~25k. In this patch we're demoting 'sign-compare' warnings to W=2, with a view to fixing the remaining 3k W=1 warnings required for a clean build. Arnd adds: "As per our discussion, I'd add that this was inadvertedly introduced by Behan when he moved the clang specific warnings into an ifdef block and did not notice that -Wsign-compare was interpreted by both gcc and clang. Earlier, it was introduced in just the same way by Jan-Simon as part of 3d3d6b847420 ("kbuild: LLVMLinux: Adapt warnings for compilation with clang")." Acked-by: Arnd Bergmann Fixes: 26ea6bb1fef0 ("kbuild, LLVMLinux: Supress warnings unless W=1-3") Signed-off-by: Lee Jones Signed-off-by: Michal Marek scripts/Makefile.extrawarn | 2 ++ 1 file changed, 2 insertions(+) commit b0fb978e97f58ca930f7cafc4ddc264218710765 Author: Wang Nan Date: Tue Jan 12 10:12:04 2016 +0000 perf tools: Fix mmap2 event allocation in synthesize code perf_event__synthesize_mmap_events() issues mmap2 events, but the memory of that event is allocated using: mmap_event = malloc(sizeof(mmap_event->mmap) + machine->id_hdr_size); If path of mmap source file is long (near PATH_MAX), random crash would happen. Should use sizeof(mmap_event->mmap2). Fix two memory allocations. Signed-off-by: Wang Nan Reviewed-by: Masami Hiramatsu Acked-by: Jiri Olsa Cc: He Kuang Cc: Namhyung Kim Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1452593524-138970-1-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/event.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8a59f3ccbc11fcb222b046a64929dd473f7dff54 Author: Jiri Olsa Date: Tue Jan 12 10:35:29 2016 +0100 perf stat: Fix recort_usage typo Markus reported gcc 6 complains when compiling perf stat command: builtin-stat.c:1591:27: error: ‘recort_usage’ defined but not used [-Werror=unused-const-variable] static const char * const recort_usage[] = { ^~~~~~~~~~~~ I fixed the typo and realized we already export record_usage, so I also prefixed it with stat (and included report_usage). Reported-by: Markus Trippelsdorf Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1452591329-27620-1-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 6660800fb7fd0f66faecb3c550fe59709220ade5 Merge: 598bcc6 06312f4 Author: Russell King Date: Tue Jan 12 13:41:03 2016 +0000 Merge branch 'devel-stable' into for-linus commit 5c06d68bc2a174a6b82dce9f100f55173b9a5189 Author: Takashi Iwai Date: Tue Jan 12 14:03:33 2016 +0100 ALSA: usb-audio: Avoid calling usb_autopm_put_interface() at disconnect ALSA PCM may still have a leftover instance after disconnection and it delays its release. The problem is that the PCM close code path of USB-audio driver has a call of snd_usb_autosuspend(). This involves with the call of usb_autopm_put_interface() and it may lead to a kernel Oops due to the NULL object like: BUG: unable to handle kernel NULL pointer dereference at 0000000000000190 IP: [] usb_autopm_put_interface+0xf/0x30 PGD 0 Call Trace: [] snd_usb_autosuspend+0x14/0x20 [] snd_usb_pcm_close.isra.14+0x5c/0x90 [] snd_usb_playback_close+0xf/0x20 [] snd_pcm_release_substream.part.36+0x3a/0x90 [] snd_pcm_release+0xa3/0xb0 [] snd_disconnect_release+0xd0/0xe0 [] __fput+0x97/0x1d0 [] ____fput+0x9/0x10 [] task_work_run+0x72/0x90 [] do_exit+0x280/0xa80 [] do_group_exit+0x3a/0xa0 [] get_signal+0x1df/0x540 [] do_signal+0x23/0x620 [] ? do_readv_writev+0x128/0x200 [] prepare_exit_to_usermode+0x91/0xd0 [] syscall_return_slowpath+0x9a/0x120 [] ? __sys_recvmsg+0x5d/0x70 [] ? ktime_get_ts64+0x45/0xe0 [] ? SyS_poll+0x60/0xf0 [] int_ret_from_sys_call+0x25/0x8f We have already a check of disconnection in snd_usb_autoresume(), but the check is missing its counterpart. The fix is just to put the same check in snd_usb_autosuspend(), too. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=109431 Cc: Signed-off-by: Takashi Iwai sound/usb/card.c | 2 ++ 1 file changed, 2 insertions(+) commit 2f0c0b2d96b1205efb14347009748d786c2d9ba5 Author: Mario Kleiner Date: Fri Dec 18 20:24:06 2015 +0100 x86/reboot/quirks: Add iMac10,1 to pci_reboot_dmi_table[] Without the reboot=pci method, the iMac 10,1 simply hangs after printing "Restarting system" at the point when it should reboot. This fixes it. Signed-off-by: Mario Kleiner Cc: Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Dave Jones Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1450466646-26663-1-git-send-email-mario.kleiner.de@gmail.com Signed-off-by: Ingo Molnar arch/x86/kernel/reboot.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit e27d90e8be08d96b5e047cd01daf7e62c4fcab78 Author: Rusty Russell Date: Tue Dec 22 10:39:54 2015 +1030 lguest: Map switcher text R/O Pavel noted that lguest maps the switcher code executable and read-write. This is a bad idea for any kernel text, but particularly for text mapped at a fixed address. Create two vmas, one for the text (PAGE_KERNEL_RX) and another for the stacks (PAGE_KERNEL). Use VM_NO_GUARD to map them adjacent (as expected by the rest of the code). Reported-by: Pavel Machek Tested-by: Pavel Machek Signed-off-by: Rusty Russell Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/lguest.h | 4 ++- drivers/lguest/core.c | 74 +++++++++++++++++++++++++++++-------------- 2 files changed, 54 insertions(+), 24 deletions(-) commit aa0421410fc540832f0fd267ff0f2657c3276053 Author: Borislav Petkov Date: Sun Jan 3 23:38:53 2016 +0100 x86/boot: Hide local labels in verify_cpu() ... from the final ELF image's symbol table as they're not really needed there. Before: $ readelf -a vmlinux | grep verify_cpu 43: ffffffff810001a9 0 NOTYPE LOCAL DEFAULT 1 verify_cpu 45: ffffffff8100028f 0 NOTYPE LOCAL DEFAULT 1 verify_cpu_no_longmode 46: ffffffff810001de 0 NOTYPE LOCAL DEFAULT 1 verify_cpu_noamd 47: ffffffff8100022b 0 NOTYPE LOCAL DEFAULT 1 verify_cpu_check 48: ffffffff8100021c 0 NOTYPE LOCAL DEFAULT 1 verify_cpu_clear_xd 49: ffffffff81000263 0 NOTYPE LOCAL DEFAULT 1 verify_cpu_sse_test 50: ffffffff81000296 0 NOTYPE LOCAL DEFAULT 1 verify_cpu_sse_ok After: $ readelf -a vmlinux | grep verify_cpu 43: ffffffff810001a9 0 NOTYPE LOCAL DEFAULT 1 verify_cpu No functionality change. Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Dave Hansen Cc: Denys Vlasenko Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Quentin Casasnovas Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1451860733-21163-1-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/kernel/verify_cpu.S | 50 ++++++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 25 deletions(-) commit 394db20ca240741a08d472173db13d6f6a6e5a28 Author: yu-cheng yu Date: Wed Jan 6 14:24:54 2016 -0800 x86/fpu: Disable AVX when eagerfpu is off When "eagerfpu=off" is given as a command-line input, the kernel should disable AVX support. The Task Switched bit used for lazy context switching does not support AVX. If AVX is enabled without eagerfpu context switching, one task's AVX state could become corrupted or leak to other tasks. This is a bug and has bad security implications. This only affects systems that have AVX/AVX2/AVX512 and this issue will be found only when one actually uses AVX/AVX2/AVX512 _AND_ does eagerfpu=off. Reference: Intel Software Developer's Manual Vol. 3A Sec. 2.5 Control Registers: TS Task Switched bit (bit 3 of CR0) -- Allows the saving of the x87 FPU/ MMX/SSE/SSE2/SSE3/SSSE3/SSE4 context on a task switch to be delayed until an x87 FPU/MMX/SSE/SSE2/SSE3/SSSE3/SSE4 instruction is actually executed by the new task. Sec. 13.4.1 Using the TS Flag to Control the Saving of the X87 FPU and SSE State When the TS flag is set, the processor monitors the instruction stream for x87 FPU, MMX, SSE instructions. When the processor detects one of these instructions, it raises a device-not-available exeception (#NM) prior to executing the instruction. Signed-off-by: Yu-cheng Yu Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Quentin Casasnovas Cc: Ravi V. Shankar Cc: Sai Praneeth Prakhya Cc: Thomas Gleixner Cc: yu-cheng yu Link: http://lkml.kernel.org/r/1452119094-7252-5-git-send-email-yu-cheng.yu@intel.com Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/xstate.h | 11 ++++++----- arch/x86/kernel/fpu/init.c | 6 ++++++ 2 files changed, 12 insertions(+), 5 deletions(-) commit a5fe93a549c54838063d2952dd9643b0b18aa67f Author: yu-cheng yu Date: Wed Jan 6 14:24:53 2016 -0800 x86/fpu: Disable MPX when eagerfpu is off This issue is a fallout from the command-line parsing move. When "eagerfpu=off" is given as a command-line input, the kernel should disable MPX support. The decision for turning off MPX was made in fpu__init_system_ctx_switch(), which is after the selection of the XSAVE format. This patch fixes it by getting that decision done earlier in fpu__init_system_xstate(). Signed-off-by: Yu-cheng Yu Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Quentin Casasnovas Cc: Ravi V. Shankar Cc: Sai Praneeth Prakhya Cc: Thomas Gleixner Cc: yu-cheng yu Link: http://lkml.kernel.org/r/1452119094-7252-4-git-send-email-yu-cheng.yu@intel.com Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 1 + arch/x86/kernel/fpu/init.c | 56 +++++++++++++++++++++++++++++-------- arch/x86/kernel/fpu/xstate.c | 3 +- 3 files changed, 46 insertions(+), 14 deletions(-) commit eb7c5f872e697b0aebd846cf3a3328d71e9decb2 Author: yu-cheng yu Date: Wed Jan 6 14:24:52 2016 -0800 x86/fpu: Disable XGETBV1 when no XSAVE When "noxsave" is given as a command-line input, the kernel should disable XGETBV1. This issue currently does not cause any actual problems. XGETBV1 is only useful if we have something using the 'init optimization' (i.e. xsaveopt, xsaves). We already clear both of those in fpu__xstate_clear_all_cpu_caps(). But this is good for completeness. Signed-off-by: Yu-cheng Yu Reviewed-by: Dave Hansen Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Quentin Casasnovas Cc: Ravi V. Shankar Cc: Sai Praneeth Prakhya Cc: Thomas Gleixner Cc: yu-cheng yu Link: http://lkml.kernel.org/r/1452119094-7252-3-git-send-email-yu-cheng.yu@intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/xstate.c | 1 + 1 file changed, 1 insertion(+) commit 4f81cbafcce2c603db7865e9d0e461f7947d77d4 Author: yu-cheng yu Date: Wed Jan 6 14:24:51 2016 -0800 x86/fpu: Fix early FPU command-line parsing The function fpu__init_system() is executed before parse_early_param(). This causes wrong FPU configuration. This patch fixes this issue by parsing boot_command_line in the beginning of fpu__init_system(). With all four patches in this series, each parameter disables features as the following: eagerfpu=off: eagerfpu, avx, avx2, avx512, mpx no387: fpu nofxsr: fxsr, fxsropt, xmm noxsave: xsave, xsaveopt, xsaves, xsavec, avx, avx2, avx512, mpx, xgetbv1 noxsaveopt: xsaveopt noxsaves: xsaves Signed-off-by: Yu-cheng Yu Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Quentin Casasnovas Cc: Ravi V. Shankar Cc: Sai Praneeth Prakhya Cc: Thomas Gleixner Cc: yu-cheng yu Link: http://lkml.kernel.org/r/1452119094-7252-2-git-send-email-yu-cheng.yu@intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/init.c | 109 ++++++++++++++++----------------------------- 1 file changed, 38 insertions(+), 71 deletions(-) commit 45bdbcfdf241149642fb6c25ab0c209d59c371b7 Author: Huaitong Han Date: Tue Jan 12 16:04:20 2016 +0800 kvm: x86: Fix vmwrite to SECONDARY_VM_EXEC_CONTROL vmx_cpuid_tries to update SECONDARY_VM_EXEC_CONTROL in the VMCS, but it will cause a vmwrite error on older CPUs because the code does not check for the presence of CPU_BASED_ACTIVATE_SECONDARY_CONTROLS. This will get rid of the following trace on e.g. Core2 6600: vmwrite error: reg 401e value 10 (err 12) Call Trace: [] dump_stack+0x40/0x57 [] vmx_cpuid_update+0x5d/0x150 [kvm_intel] [] kvm_vcpu_ioctl_set_cpuid2+0x4c/0x70 [kvm] [] kvm_arch_vcpu_ioctl+0x903/0xfa0 [kvm] Fixes: feda805fe7c4ed9cf78158e73b1218752e3b4314 Cc: stable@vger.kernel.org Reported-by: Zdenek Kaspar Signed-off-by: Huaitong Han Signed-off-by: Paolo Bonzini arch/x86/kvm/vmx.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit b500f77baea576b74c3961613b67eaffcdf65c57 Author: Kefeng Wang Date: Tue Jan 12 10:19:30 2016 +0800 x86/mm: Use PAGE_ALIGNED instead of IS_ALIGNED Use PAGE_ALIGEND macro in to simplify code. Signed-off-by: Kefeng Wang Cc: Cc: Alexander Kuleshov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1452565170-11083-1-git-send-email-wangkefeng.wang@huawei.com Signed-off-by: Ingo Molnar arch/x86/mm/init_64.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 0f672809f91abd0aee01624ccad9199a62e3da7a Author: Andy Lutomirski Date: Mon Jan 11 17:23:32 2016 -0800 selftests/x86: Disable the ldt_gdt_64 test for now ldt_gdt.c relies on cross-cpu invalidation of SS to do one of its tests. On 32-bit builds, this works fine, but on 64-bit builds, it only works if the kernel has proper SS sigcontext handling for 64-bit user programs. Since the SS fixes are currently reverted, restrict the test case to 32 bits for now. In principle, I could change the test to use a different segment register, but it would be messy: CS can't point to the LDT for 64-bit code, and the other registers don't result in immediate faults because they aren't reloaded on kernel -> user transitions. When we fix sigcontext (in 4.6?), we can revert this. Signed-off-by: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Shuah Khan Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/231591d9122d282402d8f53175134f8db5b3bc73.1452561752.git.luto@kernel.org Signed-off-by: Ingo Molnar tools/testing/selftests/x86/Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit c9e0d39126af9e338495b719e9d565ca9ebcd4c5 Author: Dave Jones Date: Mon Jan 11 12:04:28 2016 -0500 x86/mm/pat: Make split_page_count() check for empty levels to fix /proc/meminfo output In CONFIG_PAGEALLOC_DEBUG=y builds, we disable 2M pages. Unfortunatly when we split up mappings during boot, split_page_count() doesn't take this into account, and starts decrementing an empty direct_pages_count[] level. This results in /proc/meminfo showing crazy things like: DirectMap2M: 18446744073709543424 kB Signed-off-by: Dave Jones Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Luis R. Rodriguez Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Toshi Kani Signed-off-by: Ingo Molnar arch/x86/mm/pageattr.c | 3 +++ 1 file changed, 3 insertions(+) commit c0c57019a65341f08858541d2740b74dee821cf1 Merge: 8c31902 ae8a521 Author: Ingo Molnar Date: Tue Jan 12 11:08:13 2016 +0100 Merge commit 'linus' into x86/urgent, to pick up recent x86 changes Signed-off-by: Ingo Molnar commit 0bd106d26dbe444160104b3153ca1652d2ab913b Merge: 5cb52b5 b0500c1 Author: Ingo Molnar Date: Tue Jan 12 11:01:16 2016 +0100 Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent Pull perf tooling fixes from Arnaldo Carvalho de Melo: " - Fix a few clean targets in tools/ (Jiri Olsa) - Add missing sources to perf's MANIFEST, fixing the out of tree build with 'make perf-tar*-src-pkg' tarballs (Jiri Olsa) - Fix bpf related build problems in PowerPC (Naveen N. Rao, Wang Nan) - 'make -C tools/perf build-test' fixes (Wang Nan) - Fix 'perf test hist' entry (Wang Nan) - Add BPF feature check to test-all, as in an environment with all other features enabled, BPF would be considered enabled without doing real feature check. (Wang Nan)" Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 1f16f116b01c110db20ab808562c8b8bc3ee3d6e Merge: 03724ac f9eccf2 Author: Thomas Gleixner Date: Tue Jan 12 11:01:12 2016 +0100 Merge branches 'clockevents/4.4-fixes' and 'clockevents/4.5-fixes' of http://git.linaro.org/people/daniel.lezcano/linux into timers/urgent Pull in fixes from Daniel Lezcano: - Fix the vt8500 timer leading to a system lock up when dealing with too small delta (Roman Volkov) - Select the CLKSRC_MMIO when the fsl_ftm_timer is enabled with COMPILE_TEST (Daniel Lezcano) - Prevent to compile timers using the 'iomem' API when the architecture has not HAS_IOMEM set (Richard Weinberger) commit 03891f9c853d5c4473224478a1e03ea00d70ff8d Merge: 47c62e4 385277b Author: Linus Torvalds Date: Mon Jan 11 22:25:00 2016 -0800 Merge tag 'dm-4.5-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm Pull device mapper updates from Mike Snitzer: - The most significant set of changes this cycle is the Forward Error Correction (FEC) support that has been added to the DM verity target. Google uses DM verity on all Android devices and it is believed that this FEC support will enable DM verity to recover from storage failures seen since DM verity was first deployed as part of Android. - A stable fix for a race in the destruction of DM thin pool's workqueue - A stable fix for hung IO if a DM snapshot copy hit an error - A few small cleanups in DM core and DM persistent data. - A couple DM thinp range discard improvements (address atomicity of finding a range and the efficiency of discarding a partially mapped thin device) - Add ability to debug DM bufio leaks by recording stack trace when a buffer is allocated. Upon detected leak the recorded stack is dumped. * tag 'dm-4.5-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: dm snapshot: fix hung bios when copy error occurs dm thin: bump thin and thin-pool target versions dm thin: fix race condition when destroying thin pool workqueue dm space map metadata: remove unused variable in brb_pop() dm verity: add ignore_zero_blocks feature dm verity: add support for forward error correction dm verity: factor out verity_for_bv_block() dm verity: factor out structures and functions useful to separate object dm verity: move dm-verity.c to dm-verity-target.c dm verity: separate function for parsing opt args dm verity: clean up duplicate hashing code dm btree: factor out need_insert() helper dm bufio: use BUG_ON instead of conditional call to BUG dm bufio: store stacktrace in buffers to help find buffer leaks dm bufio: return NULL to improve code clarity dm block manager: cleanup code that prints stacktrace dm: don't save and restore bi_private dm thin metadata: make dm_thin_find_mapped_range() atomic dm thin metadata: speed up discard of partially mapped volumes commit 47c62e4be78303ef52ffa8134026919d0890c5a9 Merge: 2c48712 c315259 Author: Linus Torvalds Date: Mon Jan 11 22:17:44 2016 -0800 Merge tag 'media/v4.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media Pull media updates from Mauro Carvalho Chehab: "The part of patches for Kernel 4.5. There's nothing really big here: - driver-specific headers for media devices were moved to separate directories, in order to make clear what headers belong to the core kABI and require documentation - Platform data for media drivers were moved from include/media to include/linux/platform_data/media - add a driver for cs3308 8-channel volume control, used on some high-end capture boards - lirc.h kAPI header were added at include/uapi/linux - Driver cleanups, new board additions and improvements" * tag 'media/v4.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (204 commits) [media] rc: sunxi-cir: Initialize the spinlock properly [media] rtl2832: do not filter out slave TS null packets [media] rtl2832: print reg number on error case [media] rtl28xxu: return demod reg page from driver cache [media] coda: enable MPEG-2 ES decoding [media] coda: don't start streaming without queued buffers [media] coda: hook up vidioc_prepare_buf [media] coda: relax coda_jpeg_check_buffer for trailing bytes [media] coda: make to_coda_video_device static [media] s5p-mfc: remove volatile attribute from MFC register addresses [media] s5p-mfc: merge together s5p_mfc_hw_call and s5p_mfc_hw_call_void [media] s5p-mfc: use spinlock to protect MFC context [media] s5p-mfc: remove unnecessary callbacks [media] s5p-mfc: make queue cleanup code common [media] s5p-mfc: use one implementation of s5p_mfc_get_new_ctx [media] s5p-mfc: constify s5p_mfc_codec_ops structures [media] au8522: Avoid memory leak for device config data [media] ir-lirc-codec.c: don't leak lirc->drv-rbuf [media] uvcvideo: small cleanup in uvc_video_clock_update() [media] uvcvideo: Fix reading the current exposure value of UVC ... commit 9d367eddf363553c7668ba92c3b9d187ec4f71f7 Merge: b6a0e72 03d84a5 Author: David S. Miller Date: Mon Jan 11 23:55:43 2016 -0500 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Conflicts: drivers/net/bonding/bond_main.c drivers/net/ethernet/mellanox/mlxsw/spectrum.h drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c The bond_main.c and mellanox switch conflicts were cases of overlapping changes. Signed-off-by: David S. Miller commit 2c487121e3c4f87e82cff493872675bde52e47fc Merge: d870a9d 522f17e Author: Linus Torvalds Date: Mon Jan 11 20:40:48 2016 -0800 Merge tag 'leds-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds Pull LED subsystem updates from Jacek Anaszewski: "Besides regular driver updates, we introduce a portion of LED core improvements, that allow to avoid the need for using work queues in the LED class drivers, that set brightness in a blocking way. Affected LED class drivers are being optimized accordingly. - LED core improvements: - use EXPORT_SYMBOL_GPL consistently, - add two new LED_BLINK_ flags, - rename brightness_set_sync op to brightness_set_blocking, - add led_set_brightness_nosleep{nopm} functions, - use set_brightness_work for the blocking op, - drivers shouldn't enforce SYNC/ASYNC brightness setting, - turn off the LED and wait for completion on unregistering LED class device, - add managed version of led_trigger_register, - add description of brightness setting API to the LED class doc. - Remove work queues from drivers: leds-tlc591xx, leds-88pm860x, leds-adp5520, leds-bd2802, leds-blinkm, leds-lm3533, leds-lm3642, leds-pca9532, leds-lp3944, leds-lp55xx, leds-lp8788, leds-lp8860, leds-pca955x, leds-pca963x, leds-wm831x, leds-da903x, leds-da9052, leds-dac124d085, leds-lt3593, leds-max8997, leds-mc13783, leds-regulator, leds-wm8350, leds-max77693, leds-aat1290, leds-ktd2692, leds-gpio, leds-pwm, leds-lm355x, leds-ns2. - Replace brightness_set op with a new brightness_set_blocking op to make the drivers compatible with led triggers: leds-ipaq-micro, leds-powernv. - Add missing of_node_put: leds-ktd2692, leds-aat1290, leds-max77693. - Make the driver explicitly non-modular: ledtrig-cpu, ledtrig-ide-disk, leds-syscon. - Improvements to leds-bcm6328: - reuse bcm6328_led_set() instead of copying its functionality, - swap LED ON and OFF definitions, - improve blink support, - simplify duplicated unlock in bcm6328_blink_set, - add little endian support, - remove unneded lock when checking initial LED status, - add HAS_IOMEM dependency, - code cleaning. - Improvements to leds-bcm6358: - use bcm6358_led_set() in order to get rid of the lock, - merge bcm6358_led_mode and bcm6358_led_set, - add little endian support, - remove unneded lock when checking initial LED status, - add HAS_IOMEM dependency, - remove unneeded busy status check. - Call led_pwm_set() in leds-pwm to enforce default LED_OFF. - Fix duration to be msec instead of jiffies: ledtrig-transient. - Removing NULL check: leds-powernv. - Use platform_register/unregister_drivers(): leds-sunfire. - Fix module license specification: ledtrig-oneshot. - Fix driver description and make license match the header: leds-pwm. - Remove checking for state < 1 in flash_strobe_store(): led-class-flash. - Use led_set_brightness_sync for torch brightness: v4l2-flash-led-class" * tag 'leds-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds: (68 commits) leds: add HAS_IOMEM dependency to LEDS_BCM6328/LEDS_BCM6358 leds: core: add managed version of led_trigger_register leds: bcm6358: remove unneeded busy status check leds: bcm6328: improve blink support leds: bcm6358: merge bcm6358_led_mode and bcm6358_led_set leds: bcm6328: simplify duplicated unlock in bcm6328_blink_set leds: bcm6358: add little endian support leds: bcm6328: add little endian support leds: bcm6358: remove unneded lock when checking initial LED status leds: bcm6358: Use bcm6358_led_set() in order to get rid of the lock leds: bcm6328: remove unneded lock when checking initial LED leds: bcm6328: code cleaning leds: syscon: Make the driver explicitly non-modular leds: ledtrig-ide-disk: Make the driver explicitly non-modular leds: ledtrig-cpu: Make the driver explicitly non-modular leds: sunfire: Use platform_register/unregister_drivers() leds: max77693: Add missing of_node_put leds: aat1290: Add missing of_node_put leds: powernv: Implement brightness_set_blocking op leds: ipaq-micro: Implement brightness_set_blocking op ... commit d870a9d5e31ea69a1ceb7555d0d79364c442c5c0 Merge: 2634bf2 1cac550 Author: Linus Torvalds Date: Mon Jan 11 20:36:20 2016 -0800 Merge tag 'edac_for_4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp Pull EDAC updates from Borislav Petkov: - hide EDAC workqueue from users (Borislav Petkov) - edac_subsys init/teardown cleanup (Borislav Petkov) - make mpc85xx-pci-edac a platform device (Scott Wood) - sb_edac KNL gen2 support (Jim Snow) - other small cleanups all over the place * tag 'edac_for_4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp: EDAC, i5100: Use to_delayed_work() MAINTAINERS: Fix EDAC repo URLs format EDAC, sb_edac: Set fixed DIMM width on Xeon Knights Landing EDAC: Rework workqueue handling EDAC: Make edac_device workqueue setup/teardown functions static EDAC: Remove edac_get_sysfs_subsys() error handling EDAC: Unexport and make edac_subsys static EDAC: Rip out the edac_subsys reference counting EDAC: Robustify workqueues destruction EDAC, mc_sysfs: Fix freeing bus' name EDAC, mpc85xx: Make mpc85xx-pci-edac a platform device EDAC, sb_edac: Add Knights Landing (Xeon Phi gen 2) support EDAC, sb_edac: Add support for duplicate device IDs EDAC, sb_edac: Virtualize several hard-coded functions EDAC, mv64x60: Use platform_register/unregister_drivers() EDAC, mpc85xx: Use platform_register/unregister_drivers() EDAC: Add DDR4 flag EDAC: Remove references to bluesmoke.sourceforge.net EDAC, pci: Remove old disabled code commit b6a0e72ad3cffabaf30b856deb58fbe64a0f36a8 Author: Tom Herbert Date: Mon Jan 11 10:19:10 2016 -0800 net: Fix typo in netdev_intersect_features Obviously need to 'or in NETIF_F_IP_CSUM and NETIF_F_IPV6_CSUM. Fixes: c8cd0989bd151f ("net: Eliminate NETIF_F_GEN_CSUM and NETIF_F_V[46]_CSUM") Reported-by: Jack Morgenstein Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/linux/netdevice.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2634bf2550f4dd7d2d4373725dbe4c4d2a6499fd Merge: e795e5f 91918d1 Author: Linus Torvalds Date: Mon Jan 11 20:28:38 2016 -0800 Merge tag 'hwmon-for-linus-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging Pull hwmon updates from Guenter Roeck: "Notable hwmon changes: - Add basic support for NCT6683 on Mitac boards - Add support for AMD new 15h processors to fam15h_power driver - Add pmbus client driver for LTC3815 - Remove htu21 driver (now supported by iio subsystem)" * tag 'hwmon-for-linus-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: hwmon: (nct6683) Add basic support for NCT6683 on Mitac boards hwmon: (ibmaem) constify aem_rw_sensor_template and aem_ro_sensor_template structures hwmon: (nct6683,nct6775) constify sensor_template_group structures MAINTAINERS: change the maintainer of fam15h_power driver hwmon: (fam15h_power) Add support for AMD new 15h processors hwmon: (pmbus) Add client driver for LTC3815 hwmon: (htu21) Remove driver commit 6bd6d5fa71138ef624e11ee97503435f2961d4ea Merge: 7937963 e47ad65 Author: David S. Miller Date: Mon Jan 11 23:27:26 2016 -0500 Merge branch 'mdio-build-failures' Andrew Lunn says: ==================== More mdio device build failure fixes These patches fix two build errors reported by Guenter Roeck ==================== Signed-off-by: David S. Miller commit e47ad65b1bcc5ede7fa2ae01619047585348563e Author: Andrew Lunn Date: Tue Jan 12 03:24:31 2016 +0100 net: freescale: mac-fec: Fix build error from phy_device API change dev has moved inside the new mdio structure. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fs_enet/mac-fec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5e431650f06a9d857fe1d61d92236fad678f7880 Author: Andrew Lunn Date: Tue Jan 12 03:24:30 2016 +0100 net: freescale: ucc_geth: Fix build error from phy_device API change dev has moved inside the new mdio structure. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/ethernet/freescale/ucc_geth.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6255c46fa03798cbd8addd98929aff7eef86ae02 Author: Tejun Heo Date: Mon Jan 11 23:10:44 2016 -0500 cgroup: rename cgroup documentations cgroup-legacy may be too loaded. Rename the docs so that they're postfixed with v1 and v2. * s/cgroup-legacy/cgroup-v1/ * s/cgroup.txt/cgroup-v2.txt/ Signed-off-by: Tejun Heo Documentation/cgroup-legacy/00-INDEX | 28 - Documentation/cgroup-legacy/blkio-controller.txt | 375 ------ Documentation/cgroup-legacy/cgroups.txt | 682 ----------- Documentation/cgroup-legacy/cpuacct.txt | 49 - Documentation/cgroup-legacy/cpusets.txt | 839 ------------- Documentation/cgroup-legacy/devices.txt | 116 -- Documentation/cgroup-legacy/freezer-subsystem.txt | 123 -- Documentation/cgroup-legacy/hugetlb.txt | 45 - Documentation/cgroup-legacy/memcg_test.txt | 280 ----- Documentation/cgroup-legacy/memory.txt | 876 -------------- Documentation/cgroup-legacy/net_cls.txt | 39 - Documentation/cgroup-legacy/net_prio.txt | 55 - Documentation/cgroup-legacy/pids.txt | 85 -- Documentation/cgroup-v1/00-INDEX | 28 + Documentation/cgroup-v1/blkio-controller.txt | 375 ++++++ Documentation/cgroup-v1/cgroups.txt | 682 +++++++++++ Documentation/cgroup-v1/cpuacct.txt | 49 + Documentation/cgroup-v1/cpusets.txt | 839 +++++++++++++ Documentation/cgroup-v1/devices.txt | 116 ++ Documentation/cgroup-v1/freezer-subsystem.txt | 123 ++ Documentation/cgroup-v1/hugetlb.txt | 45 + Documentation/cgroup-v1/memcg_test.txt | 280 +++++ Documentation/cgroup-v1/memory.txt | 876 ++++++++++++++ Documentation/cgroup-v1/net_cls.txt | 39 + Documentation/cgroup-v1/net_prio.txt | 55 + Documentation/cgroup-v1/pids.txt | 85 ++ Documentation/cgroup-v2.txt | 1293 +++++++++++++++++++++ Documentation/cgroup.txt | 1293 --------------------- 28 files changed, 4885 insertions(+), 4885 deletions(-) commit e795e5f4e01de550bd8947a7db910daaf7773198 Merge: 581dbc8 6cb07ab Author: Linus Torvalds Date: Mon Jan 11 20:14:34 2016 -0800 Merge tag 'regmap-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap Pull regmap updates from Mark Brown: "There's no real overall theme to the regmap changes for this release, it's a collection of individual features. The main bits are: - Support for 64 bit registers, mainly for MMIO use, from Xiubo Li. - Support for trigger type configuration for regmap-irq from Laxman Dewangan. - Use native physical I/O for MMIO register maps to avoid confusion with the conversions that readl() and writel() do to little endian on big endian systems (with some DT updates to fix some workarounds people were doing), code from Simon Arlott. - Use a binary search rather than iteraton to improve the runtime performance of the rbtree code from Nikesh Oswal" * tag 'regmap-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap: regmap: debugfs: Use seq_file for the access map regmap: irq: add support for configuration of trigger type regmap: use IS_ALIGNED instead of % to improve the performance regmap: cache: Move the num_reg_defaults check as early as possible regmap: cache: Add warning info for the cache check regmap: missing case statement regmap: shift wrapping bugs in 64 bit code regmap: cache: Add 64-bit mode support regmap: cache: To suppress the noise of checkpatch regmap: fix the warning about unused variable regmap: add 64-bit mode support regmap: mmio: Add regmap_mmio_get_min_stride regmap: mmio: remove the useless code regmap: Fix leftover from struct reg_default to struct reg_sequence change regmap: replace kmalloc with kmalloc_array regmap: replace kzalloc with kcalloc regmap: rbtree: When adding a reg do a bsearch for target node regmap-mmio: Use native endianness for read/write commit 581dbc8bfc47ab16c69a67cc20dafea378ddbc60 Merge: fb591fb 14da0a9 Author: Linus Torvalds Date: Mon Jan 11 20:05:39 2016 -0800 Merge tag 'pinctrl-v4.5-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 patches for the v4.5 series. Notably I have a patch to driver core from Stephen Boyd in the pull request, this has been ACKed by Greg so it should be OK. The internal API needed some tweaking to allow modular Qualcomm pin controllers. There is a bit of development history in here but it should all add up nicely and has boiled in linux-next. For example I merged in v4.4-rc5 to get rid of some nasty merge conflicts. Summary: - New drivers: - PXA2xx pin controller support - Broadcom NSP pin controller support - New subdrivers: - Samsung EXYNOS5410 support - Qualcomm MSM8996 support - Qualcomm PM8994 support - Qualcomm PM8994 MPP support - Allwinner sunxi H3 support - Allwinner sunxi A80 support - Rockchip RK3228 support - Rename the Cygnus pinctrl driver to "iproc" as it is more generic than was originally thought. - A bunch of Lantiq/Xway updates especially from the OpenWRT people. - Several refactorings for the Super-H SH PFC pin controllers. Adding SCIF_CLK support. - Several fixes to the Atlas 7 driver. - Various fixes all over the place" * tag 'pinctrl-v4.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (91 commits) pinctrl: mediatek: Modify pinctrl bindings for mt2701 Revert "pinctrl: qcom: make PMIC drivers bool" pinctrl: qcom: Use platform_irq_count() instead of of_irq_count() driver-core: platform: Add platform_irq_count() pinctrl: lantiq: 2 pins have the wrong mux list pinctrl: qcom: make PMIC drivers bool pinctrl: nsp-gpio: forever loop in nsp_gpio_get_strength() pinctrl: mediatek: convert to arch_initcall pinctrl: bcm2835: Fix memory leak in error path pinctrl: mediatek: add missing of_node_put pinctrl: rockchip: add missing of_node_put pinctrl: sh-pfc: add missing of_node_put pinctrl: sirf: add missing of_node_put pinctrl-tegra: add missing of_node_put pinctrl: sunxi: Add A80 special pin controller pinctrl: bcm/cygnys/iproc: fixup rebase issue pinctrl: fixup problematic flag MAINTAINERS: Add co-maintainer for Renesas Pin Controllers pinctrl: sh-pfc: r8a7791: add EtherAVB pin groups pinctrl: sh-pfc: r8a7795: Add SATA support ... commit fb591fbd0aee437faada42b0473835bcbaf0eb38 Merge: 8c93020 01a999e Author: Linus Torvalds Date: Mon Jan 11 19:39:09 2016 -0800 Merge tag 'mmc-v4.5' of git://git.linaro.org/people/ulf.hansson/mmc Pull MMC updates from Ulf Hansson: "MMC core: - Optimize boot time by detecting cards simultaneously - Make runtime resume default behavior for MMC/SD - Enable MMC/SD/SDIO devices to suspend/resume asynchronously - Allow more than 8 partitions per card - Introduce MMC_CAP2_NO_SDIO to prevent unsupported SDIO commands - Support the standard DT wakeup-source property - Fix driver strength switching for HS200 and HS400 - Fix switch command timeout - Fix invalid vdd in voltage switch power cycle for SDIO MMC host: - sdhci: Restore behavior when setting VDD via external regulator - sdhci: A couple of changes/fixes related to the dma support - sdhci-tegra: Add Tegra210 support - sdhci-tegra: Support for UHS-I cards including tuning support - sdhci-of-at91: Add PM support - sh_mmcif: Rework dma channel handling - mvsdio: Delete platform data code path" * tag 'mmc-v4.5' of git://git.linaro.org/people/ulf.hansson/mmc: (52 commits) mmc: dw_mmc: remove the unused quirks mmc: sdhci-pci: use to_pci_dev() mmc: cb710: use to_platform_device() mmc: tegra: use correct accessor for misc ctrl register mmc: tegra: enable UHS-I modes mmc: tegra: implement UHS tuning mmc: tegra: disable SPI_MODE_CLKEN mmc: tegra: implement module external clock change mmc: sdhci: restore behavior when setting VDD via external regulator mmc: It is not an error for the card to be removed while suspended mmc: block: Allow more than 8 partitions per card mmc: core: Optimize boot time by detecting cards simultaneously mmc: dw_mmc: use resource_size_t to store physical address mmc: core: fix __mmc_switch timeout caused by preempt mmc: usdhi6rol0: handle NULL data in timeout mmc: of_mmc_spi: Add IRQF_ONESHOT to interrupt flags mmc: mediatek: change some dev_err to dev_dbg mmc: enable MMC/SD/SDIO device to suspend/resume asynchronously mmc: sdhci: Fix sdhci_runtime_pm_bus_on/off() mmc: sdhci: 64-bit DMA actually has 4-byte alignment ... commit 8c930204ce76eddeb2e1af66a75f0ab2506c76e2 Merge: 367262c e39b2bb Author: Linus Torvalds Date: Mon Jan 11 19:33:59 2016 -0800 Merge branch 'for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata Pull libata updates from Tejun Heo: "Mostly low level driver specific changes. Two changes are somewhat noteworthy. First, Dan's patchset to support per-port msix interrupt handling for ahci, which was tried last cycle but had to be backed out due to a couple issues, is back and seems to be working fine. Second, libata exception handling now uses usleep_range() instead of msleep() for sleeps < 20ms which can make things snappier in some corner cases" * 'for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata: libata: skip debounce delay on link resume ata: ahci_brcmstb: disable DIPM support ata: ahci_brcmstb: enable support for ALPM drivers: libata-core: Use usleep_range() instead of msleep() for short sleeps (<20 ms) sata_sx4: correctly handling failed allocation ata: ahci_brcmstb: add support for MIPS-based platforms ahci: qoriq: Adjust the default register values on ls1021a ahci: qoriq: Update the default Rx watermark value ahci: qoriq: Adjust the default register values on ls1043a ahci: compile out msi/msix infrastructure ata: core: fix irq description on AHCI single irq systems ata: ahci_brcmstb: remove unused definitions ata: ahci_brcmstb: add a quirk for MIPS-based platforms ata: ahci_brcmstb: disable NCQ for MIPS-based platforms ata: sata_rcar: Remove obsolete platform_device_id entries sata_rcar: Add compatible string for r8a7795 ahci: kill 'intr_status' ahci: switch from 'threaded' to 'hardirq' interrupt handling ahci: per-port msix support commit 367262c1be4bbf23938175a93eb573b289a00027 Merge: 0f8c790 18fc93f Author: Linus Torvalds Date: Mon Jan 11 19:13:56 2016 -0800 Merge branch 'for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu Pull percpu updates from Tejun Heo: "Two trivial percpu patches for v4.5-rc1" * 'for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: percpu: remove PERCPU_ENOUGH_ROOM which is stale definition percpu: Remove unneeded return from void function commit 0f8c7901039f8b1366ae364462743c8f4125822e Merge: 3d116a6 6201171 Author: Linus Torvalds Date: Mon Jan 11 18:53:13 2016 -0800 Merge branch 'for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq Pull workqueue update from Tejun Heo: "Workqueue changes for v4.5. One cleanup patch and three to improve the debuggability. Workqueue now has a stall detector which dumps workqueue state if any worker pool hasn't made forward progress over a certain amount of time (30s by default) and also triggers a warning if a workqueue which can be used in memory reclaim path tries to wait on something which can't be. These should make workqueue hangs a lot easier to debug." * 'for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: workqueue: simplify the apply_workqueue_attrs_locked() workqueue: implement lockup detector watchdog: introduce touch_softlockup_watchdog_sched() workqueue: warn if memory reclaim tries to flush !WQ_MEM_RECLAIM workqueue commit 3d116a66ed9df0271b8d267093b3bfde2be19b3a Merge: b4cee21 d3b421c Author: Linus Torvalds Date: Mon Jan 11 18:28:06 2016 -0800 Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull irq updates from Thomas Gleixner: "The irq department provides: - Support for MSI to wire bridges and a first user of it - More ACPI support for ARM/GIC - A new TS-4800 interrupt controller driver - RCU based free of interrupt descriptors to support the upcoming Intel VMD technology without introducing a locking nightmare - The usual pile of fixes and updates to drivers and core code" * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (41 commits) irqchip/omap-intc: Add support for spurious irq handling irqchip/zevio: Use irq_data_get_chip_type() helper irqchip/omap-intc: Remove duplicate setup for IRQ chip type handler irqchip/ts4800: Add TS-4800 interrupt controller irqchip/ts4800: Add documentation for TS-4800 interrupt controller irq/platform-MSI: Increase the maximum MSIs the MSI framework can support irqchip/gicv2m: Miscellaneous fixes for v2m resources and SPI ranges irqchip/bcm2836: Make code more readable irqchip/bcm2836: Tolerate IRQs while no flag is set in ISR irqchip/bcm2836: Add SMP support for the 2836 irqchip/bcm2836: Fix initialization of the LOCAL_IRQ_CNT timers irqchip/gic-v2m: acpi: Introducing GICv2m ACPI support irqchip/gic-v2m: Refactor to prepare for ACPI support irqdomain: Introduce is_fwnode_irqchip helper acpi: pci: Setup MSI domain for ACPI based pci devices genirq/msi: Export functions to allow MSI domains in modules irqchip/mbigen: Implement the mbigen irq chip operation functions irqchip/mbigen: Create irq domain for each mbigen device irqchip/mgigen: Add platform device driver for mbigen device dt-bindings: Documents the mbigen bindings ... commit b4cee21ee057ff3e5c9014fb6a175bd932c5ce62 Merge: ae8a521 0141488 1b9f237 Author: Linus Torvalds Date: Mon Jan 11 18:06:43 2016 -0800 Merge branches 'timers-core-for-linus' and 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull timer updates - and a leftover fix - from Thomas Gleixner: "A rather large (commit wise) update from the timer side: - A bulk update to make compile tests work in the clocksource drivers - An overhaul of the h8300 timers - Some more Y2038 work - A few overflow prevention checks in the timekeeping/ntp code - The usual pile of fixes and improvements to the various clocksource/clockevent drivers and core code" Also: "A single fix for the posix-clock poll code which did not make it into 4.4" * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (84 commits) clocksource/drivers/acpi_pm: Convert to pr_* macros clocksource: Make clocksource validation work for all clocksources timekeeping: Cap adjustments so they don't exceed the maxadj value ntp: Fix second_overflow's input parameter type to be 64bits ntp: Change time_reftime to time64_t and utilize 64bit __ktime_get_real_seconds timekeeping: Provide internal function __ktime_get_real_seconds clocksource/drivers/h8300: Use ioread / iowrite clocksource/drivers/h8300: Initializer cleanup. clocksource/drivers/h8300: Simplify delta handling clocksource/drivers/h8300: Fix timer not overflow case clocksource/drivers/h8300: Change to overflow interrupt clocksource/drivers/lpc32: Correct pr_err() output format clocksource/drivers/arm_global_timer: Fix suspend resume clocksource/drivers/pistachio: Fix wrong calculated clocksource read value clockevents/drivers/arm_global_timer: Use writel_relaxed in gt_compare_set clocksource/drivers/dw_apb_timer: Inline apbt_readl and apbt_writel clocksource/drivers/dw_apb_timer: Use {readl|writel}_relaxed in critical path clocksource/drivers/dw_apb_timer: Fix apbt_readl return types clocksource/drivers/tango-xtal: Replace code by clocksource_mmio_init clocksource/drivers/h8300: Increase the compilation test coverage ... * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: posix-clock: Fix return code on the poll method's error path commit 1c0276d56737bd29b6d960611b625710c5cda080 Author: Nick Dyer Date: Sun Jan 10 18:29:34 2016 -0800 Input: atmel_mxt_ts - improve touchscreen size/orientation handling Both T100 and T9 handle range and orientation in a similar fashion. Reduce duplication between the two implementations. Signed-off-by: Nick Dyer Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/atmel_mxt_ts.c | 68 ++++++++++++-------------------- 1 file changed, 26 insertions(+), 42 deletions(-) commit 009f773836513960d3982e80c86e266d25528563 Merge: dd0d0d4 6544a1d Author: Dmitry Torokhov Date: Mon Jan 11 17:47:25 2016 -0800 Merge branch 'next' into for-linus Prepare first round of input updates for 4.5 merge window. commit ae8a52185e5c070cf4510b323dbc1b9e46b897d6 Merge: 0ffedcd d6b56b0 Author: Linus Torvalds Date: Mon Jan 11 17:45:32 2016 -0800 Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 platform updates from Ingo Molnar: "Two changes: - one to quirk-save/restore certain system MSRs across suspend/resume, to make certain Intel systems work better (Chen Yu) - and also to constify a read only structure (Julia Lawall)" * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/platform/calgary: Constify cal_chipset_ops structures x86/pm: Introduce quirk framework to save/restore extra MSR registers around suspend/resume commit 6544a1df11c48c8413071aac3316792e4678fbfb Author: Benjamin Tissoires Date: Mon Jan 11 17:35:38 2016 -0800 Input: elantech - mark protocols v2 and v3 as semi-mt When using a protocol v2 or v3 hardware, elantech uses the function elantech_report_semi_mt_data() to report data. This devices are rather creepy because if num_finger is 3, (x2,y2) is (0,0). Yes, only one valid touch is reported. Anyway, userspace (libinput) is now confused by these (0,0) touches, and detect them as palm, and rejects them. Commit 3c0213d17a09 ("Input: elantech - fix semi-mt protocol for v3 HW") was sufficient enough for xf86-input-synaptics and libinput before it has palm rejection. Now we need to actually tell libinput that this device is a semi-mt one and it should not rely on the actual values of the 2 touches. Cc: stable@vger.kernel.org Signed-off-by: Benjamin Tissoires Signed-off-by: Dmitry Torokhov drivers/input/mouse/elantech.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 000afe892ed6ff127745e7ab4fba4bc52248d6f4 Author: Masahiro Yamada Date: Mon Jan 4 19:34:14 2016 +0900 DMA-API: fix confusing sentence in Documentation/DMA-API.txt Change the phrase "handed off to the driver" to "handed off to the device" as in the paragraph below. Signed-off-by: Masahiro Yamada Signed-off-by: Jonathan Corbet Documentation/DMA-API.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit feb4d8887ed9b4d7997247a6f17759234564d553 Author: SeongJae Park Date: Fri Jan 1 12:54:37 2016 +0900 Documentation: translations: update linux cross reference link The old link to source code cross reference does not work now. Though the link has updated by commit 1d12554f0abbc7d17dce8d1b7b25f4e27555e6d7 ("Documentation: HOWTO: update code cross reference link"), there are few obsolete links yet. This commit update them. Signed-off-by: SeongJae Park Signed-off-by: Jonathan Corbet Documentation/ja_JP/HOWTO | 2 +- Documentation/kernel-docs.txt | 2 +- Documentation/ko_KR/HOWTO | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 9a2885e662bcbdcbc473f207b481c65b8620537b Author: Manuel Pégourié-Gonnard Date: Mon Dec 28 11:06:55 2015 +0100 Documentation: fix typo in CodingStyle Simple typo: "it" for "is". Signed-off-by: Manuel Pégourié-Gonnard Cc: Trivial Patch Monkey Signed-off-by: Jonathan Corbet Documentation/CodingStyle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0ffedcda63f56eaca99a77392b9f057dfb738817 Merge: 6896d9f 1f1a89a Author: Linus Torvalds Date: Mon Jan 11 17:16:01 2016 -0800 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 main changes in this cycle were: - make the debugfs 'kernel_page_tables' file read-only, as it only has read ops. (Borislav Petkov) - micro-optimize clflush_cache_range() (Chris Wilson) - swiotlb enhancements, which fixes certain KVM emulated devices (Igor Mammedov) - fix an LDT related debug message (Jan Beulich) - modularize CONFIG_X86_PTDUMP (Kees Cook) - tone down an overly alarming warning (Laura Abbott) - Mark variable __initdata (Rasmus Villemoes) - PAT additions (Toshi Kani)" * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/mm: Micro-optimise clflush_cache_range() x86/mm/pat: Change free_memtype() to support shrinking case x86/mm/pat: Add untrack_pfn_moved for mremap x86/mm: Drop WARN from multi-BAR check x86/LDT: Print the real LDT base address x86/mm/64: Enable SWIOTLB if system has SRAT memory regions above MAX_DMA32_PFN x86/mm: Introduce max_possible_pfn x86/mm/ptdump: Make (debugfs)/kernel_page_tables read-only x86/mm/mtrr: Mark the 'range_new' static variable in mtrr_calc_range_state() as __initdata x86/mm: Turn CONFIG_X86_PTDUMP into a module commit 6896d9f7e7ee98d772224a539b7581a1e6dd6b2c Merge: 671d553 e49a449 Author: Linus Torvalds Date: Mon Jan 11 16:56:38 2016 -0800 Merge branch 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 fpu updates from Ingo Molnar: "This cleans up the FPU fault handling methods to be more robust, and moves eligible variables to .init.data" * 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/fpu: Put a few variables in .init.data x86/fpu: Get rid of xstate_fault() x86/fpu: Add an XSTATE_OP() macro commit 3ded91041a762423bd49bb932ae2e36b65c6ae4b Author: Rafael J. Wysocki Date: Tue Jan 12 01:51:44 2016 +0100 driver core: Avoid NULL pointer dereferences in device_is_bound() If device_is_bound() is called on a device that's not been registered yet, it will attepmt to dereference dev->p which is NULL, so avoid that by checking dev->p in there against NULL. Fixes: 6b9cb42752da "device core: add device_is_bound()" Reported-and-tested-by: Guenter Roeck Tested-by: Tony Lindgren Signed-off-by: Rafael J. Wysocki drivers/base/dd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 671d5532aaad777782b66eff71bc4dfad25f942d Merge: 67c707e 0007bcc Author: Linus Torvalds Date: Mon Jan 11 16:46:20 2016 -0800 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: "The main changes in this cycle were: - Improved CPU ID handling code and related enhancements (Borislav Petkov) - RDRAND fix (Len Brown)" * 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86: Replace RDRAND forced-reseed with simple sanity check x86/MSR: Chop off lower 32-bit value x86/cpu: Fix MSR value truncation issue x86/cpu/amd, kvm: Satisfy guest kernel reads of IC_CFG MSR kvm: Add accessors for guest CPU's family, model, stepping x86/cpu: Unify CPU family, model, stepping calculation commit 67c707e451e12f59e57bca6cf33b5803cb74b022 Merge: 463eb8a 0105c8d Author: Linus Torvalds Date: Mon Jan 11 16:26:03 2016 -0800 Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 cleanups from Ingo Molnar: "The main changes in this cycle were: - code patching and cpu_has cleanups (Borislav Petkov) - paravirt cleanups (Juergen Gross) - TSC cleanup (Thomas Gleixner) - ptrace cleanup (Chen Gang)" * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: arch/x86/kernel/ptrace.c: Remove unused arg_offs_table x86/mm: Align macro defines x86/cpu: Provide a config option to disable static_cpu_has x86/cpufeature: Remove unused and seldomly used cpu_has_xx macros x86/cpufeature: Cleanup get_cpu_cap() x86/cpufeature: Move some of the scattered feature bits to x86_capability x86/paravirt: Remove paravirt ops pmd_update[_defer] and pte_update_defer x86/paravirt: Remove unused pv_apic_ops structure x86/tsc: Remove unused tsc_pre_init() hook x86: Remove unused function cpu_has_ht_siblings() x86/paravirt: Kill some unused patching functions commit 463eb8ac337bad30ace10835108a56df5817cc76 Merge: 88cbfd0 74b18e1 Author: Linus Torvalds Date: Mon Jan 11 16:25:41 2016 -0800 Merge branch 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull small x86 boot update from Ingo Molnar: "A single update to the MAINTAINERS file" * 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/tboot: Update maintainer list for Intel TXT commit a889f766dbb7d016b858e4dd157b06587fdb570f Merge: 8f053a5 600c395 Author: Rafael J. Wysocki Date: Tue Jan 12 01:12:40 2016 +0100 Merge branch 'powercap' * powercap: powercap: constify powercap_zone_ops and powercap_zone_constraint_ops structures commit 8f053a56dfa4be0cfcce49c7647adaa33196aae5 Merge: 9326806 a1e9ca6 e98f033 Author: Rafael J. Wysocki Date: Tue Jan 12 01:12:03 2016 +0100 Merge branches 'pm-sleep' and 'pm-tools' * pm-sleep: PM / sleep: Add support for read-only sysfs attributes * pm-tools: cpupower: fix how "cpupower frequency-info" interprets latency cpupower: rework the "cpupower frequency-info" command cpupower: Do not analyse offlined cpus cpupower: Provide STATIC variable in Makefile for debug builds cpupower: Fix precedence issue commit 932680692aeb115f84396ae7e44bf132c03635a1 Merge: b366f97 e219aaf Author: Rafael J. Wysocki Date: Tue Jan 12 01:11:35 2016 +0100 Merge branch 'pm-domains' * pm-domains: PM / Domains: export symbols to add/remove devices from genpd commit b366f976323d5d9ccb612e20afaaddf1fb84418d Merge: 7f4a370 a032d2d Author: Rafael J. Wysocki Date: Tue Jan 12 01:11:25 2016 +0100 Merge branch 'pm-cpufreq' * pm-cpufreq: (30 commits) Documentation: cpufreq: intel_pstate: enhance documentation cpufreq-dt: fix handling regulator_get_voltage() result cpufreq: governor: Fix negative idle_time when configured with CONFIG_HZ_PERIODIC cpufreq: mt8173: migrate to use operating-points-v2 bindings cpufreq: Simplify core code related to boost support cpufreq: acpi-cpufreq: Simplify boost-related code cpufreq: Make cpufreq_boost_supported() static blackfin-cpufreq: Mark cpu_set_cclk() as static blackfin-cpufreq: Change return type of cpu_set_cclk() to that of clk_set_rate() dt: cpufreq: st: Provide bindings for ST's CPUFreq implementation cpufreq: st: Provide runtime initialised driver for ST's platforms cpufreq: mt8173: Move resources allocation into ->probe() cpufreq: intel_pstate: Account for IO wait time cpufreq: intel_pstate: Account for non C0 time cpufreq: intel_pstate: Configurable algorithm to get target pstate cpufreq: mt8173: check return value of regulator_get_voltage() call cpufreq: mt8173: remove redundant regulator_get_voltage() call cpufreq: mt8173: add CPUFREQ_HAVE_GOVERNOR_PER_POLICY flag cpufreq: qoriq: Register cooling device based on device tree cpufreq: pcc-cpufreq: update default value of cpuinfo_transition_latency ... commit 7f4a3702bda0f9f5d34f0241cc81467a55162d7a Merge: a7da481 5ff24d6 Author: Rafael J. Wysocki Date: Tue Jan 12 01:11:14 2016 +0100 Merge branch 'pm-opp' * pm-opp: PM / OPP: Use snprintf() instead of sprintf() PM / OPP: Set cpu_dev->id in cpumask first PM / OPP: Fix parsing of opp-microvolt and opp-microamp properties PM / OPP: Parse 'opp--' bindings PM / OPP: Parse 'opp-supported-hw' binding PM / OPP: Add missing doc comments ARM: dts: exynos4412: Rename OPP nodes as opp@ PM / OPP: Rename OPP nodes as opp@ PM / OPP: Remove 'operating-points-names' binding PM / OPP: Add {opp-microvolt|opp-microamp}- binding PM / OPP: Add "opp-supported-hw" binding PM / OPP: Add debugfs support commit a7da4813429cf36abd042e6da72cc6641767d52f Merge: 92266e1 8459923 Author: Rafael J. Wysocki Date: Tue Jan 12 01:11:03 2016 +0100 Merge branch 'pm-cpuidle' * pm-cpuidle: drivers/cpuidle: make cpuidle-exynos.c explicitly non-modular drivers/cpuidle: make cpuidle-ux500.c explicitly non-modular drivers/cpuidle: make cpuidle-clps711x.c explicitly non-modular cpuidle,menu: smooth out measured_us calculation cpuidle,menu: use interactivity_req to disable polling cpuidle,x86: increase forced cut-off for polling to 20us commit 92266e1de4324a23359fe71678cb521987fea0c5 Merge: 4c170ed 76fc35d 4295733 Author: Rafael J. Wysocki Date: Tue Jan 12 01:10:52 2016 +0100 Merge branches 'pm-pci' and 'pm-core' * pm-pci: PCI / PM: Fix small typo in documentation PCI / PM: constify pci_platform_pm_ops structure * pm-core: PM / core: fix typo in documentation PM / runtime: Add new helper for conditional usage count incrementation MAINTAINERS: Add an entry for the PM core PM / runtime: Re-init runtime PM states at probe error and driver unbind PM / sleep: prohibit devices probing during suspend/hibernation commit 4c170ed1d9d66464361cb47853ffb9fa64ca5048 Merge: 476cc43 38a234b e0f03e8 Author: Rafael J. Wysocki Date: Tue Jan 12 01:10:36 2016 +0100 Merge branches 'acpi-pnp' and 'pnp' * acpi-pnp: ACPI / PNP: constify device IDs * pnp: PNP: respect PNP_DRIVER_RES_DO_NOT_CHANGE when detaching PNP: Add Broadwell to Intel MCH size workaround commit 476cc4333afb7cf3232c066d278c024b186e6d17 Merge: 42d287d 4528897 33ada67 a84bc8c Author: Rafael J. Wysocki Date: Tue Jan 12 01:10:19 2016 +0100 Merge branches 'acpi-pci', 'acpi-irq' and 'acpi-assorted' * acpi-pci: ACPI, PCI, irq: remove redundant check for null string pointer ACPI / PCI: Simplify acpi_penalize_isa_irq() ACPI, PCI, irq: remove interrupt number restriction ACPI, PCI, irq: remove interrupt count restriction * acpi-irq: ACPI / spi: attach GPIO IRQ from ACPI description to SPI device ACPI / gpio: Add irq_type when a GPIO is used as an interrupt ACPI: Rename acpi_gsi_get_irq_type to acpi_dev_get_irq_type and export symbol * acpi-assorted: ACPI / SBS: fix inconsistent indenting inside if statement ACPI: Fix build errors due objects compiled unconditionally commit 42d287d1a1e805ec98b5bdc4cca2660a56720ebd Merge: b12745c edc345d 76c599b 9d128ed cd7f84c Author: Rafael J. Wysocki Date: Tue Jan 12 01:10:03 2016 +0100 Merge branches 'acpi-scan', 'acpi-bus', 'acpi-osl' and 'acpi-pm' * acpi-scan: ACPI: Fix white space in a structure definition ACPI / utils: Add acpi_dev_present() ACPI / scan: Fix acpi_bus_id_list bookkeeping ACPI / scan: set status to 0 if _STA failed * acpi-bus: ACPI / bus: Show _OSC UUID when _OSC fails ACPI / bus: Tidy up _OSC error spacing * acpi-osl: ACPI / OSL: Add kerneldoc comments to memory mapping functions * acpi-pm: ACPI / PM: Support D3 COLD device in old BIOS for ZPODD commit b12745cce2c903ff8e84ebbd1f8632063156d194 Merge: f3a1bca aecbd9b Author: Rafael J. Wysocki Date: Tue Jan 12 01:09:27 2016 +0100 Merge branch 'acpi-video' * acpi-video: ACPI / video: driver must be registered before checking for keypresses ACPI / video: Add a quirk to force acpi-video backlight on SAMSUNG 530U4E/540U4E ACPI / video: Add quirks for the Dell Vostro V131 ACPI / video: Add a module option to disable the reporting of keypresses thinkpad_acpi: Use acpi_video_handles_brightness_key_presses() dell-wmi: Use acpi_video_handles_brightness_key_presses() ACPI / video: Add a acpi_video_handles_brightness_key_presses() helper commit f3a1bca09a1f4ac445434b97ed2a43e5c6449cf4 Merge: 51834d6 e3e9b57 Author: Rafael J. Wysocki Date: Tue Jan 12 01:09:14 2016 +0100 Merge branch 'acpica' * acpica: (43 commits) ACPICA: Drop Linux-specific waking vector functions ACPICA: Update version to 20151218 ACPICA: Add per-table execution of module-level code ACPICA: Add "root node" case to the ACPI name repair code ACPICA: Events: Introduce ACPI_REG_DISCONNECT invocation to acpi_ev_execute_reg_methods() ACPICA: Events: Enhance acpi_ev_execute_reg_method() to ensure no _REG evaluations can happen during OS early boot stages ACPICA: Events: Split acpi_ev_associate_reg_method() from region initialization code ACPICA: Events: Fix an issue that region object is re-attached to another scope when it is already attached ACPICA: Utilities: Reorder initialization code ACPICA: Events: Uses common_notify for address space handlers ACPICA: Events: Deploys acpi_ev_find_region_handler() ACPICA: Cleanup code related to the per-table module level improvement ACPICA: Update for CondRefOf and RefOf operators ACPICA: Update internal #defines for ObjectType operator. No functional change ACPICA: Update parameter type for ObjectType operator ACPICA: Parser: Fix for SuperName method invocation ACPICA: Parser: Add constants for internal namepath function ACPICA: iasl/Disassembler: Support ASL ElseIf operator ACPICA: Add new exception code, AE_IO_ERROR ACPICA: Tools: Add spacing and missing options in acpibin tool ... commit 51834d6ae9ae290482bff1389c304f244c7109ee Merge: 1e3f28a 59adb39 Author: Rafael J. Wysocki Date: Tue Jan 12 01:09:06 2016 +0100 Merge branch 'acpi-debug' * acpi-debug: ACPI / debugger: Fix a redundant mutex unlock issue in acpi_aml_open() ACPI / debugger: copy_to_user doesn't return errors ACPI / debugger: remove some unneeded conditions ACPI / debugger: Fix an issue a flag is modified without locking ACPI / debugger: Add module support for ACPI debugger tools/power/acpi: Add userspace AML interface support ACPI / debugger: Add IO interface to access debugger functionalities ACPICA: Debugger: Fix runtime stub issues of ACPI_DEBUGGER_EXEC using different stub mechanism ACPICA: Debugger: Convert some mechanisms to OSPM specific ACPICA: Debugger: Remove unnecessary status check commit 1e3f28a552c7acf6dd8acfe505beb4990e8cbd55 Merge: 9896528 d35818a Author: Rafael J. Wysocki Date: Tue Jan 12 01:08:47 2016 +0100 Merge branch 'acpi-soc' * acpi-soc: PM / clk: don't leave clocks enabled when driver not bound i2c: dw: Add APM X-Gene ACPI I2C device support ACPI / APD: Add APM X-Gene ACPI I2C device support ACPI / LPSS: change 'does not have' to 'has' in comment Revert "dmaengine: dw: platform: provide platform data for Intel" dmaengine: dw: return immediately from IRQ when DMA isn't in use dmaengine: dw: platform: power on device on shutdown ACPI / LPSS: override power state for LPSS DMA device ACPI / LPSS: power on when probe() and otherwise when remove() ACPI / LPSS: do delay for all LPSS devices when D3->D0 ACPI / LPSS: allow to use specific PM domain during ->probe() Revert "ACPI / LPSS: allow to use specific PM domain during ->probe()" device core: add BUS_NOTIFY_DRIVER_NOT_BOUND notification x86/platform/iosf_mbi: Remove duplicate definitions Conflicts: drivers/i2c/busses/i2c-designware-platdrv.c commit 989652871b06f1fb173bc5e8e2ea03bec8f8eeeb Merge: afd2ff9 f6740c1 Author: Rafael J. Wysocki Date: Tue Jan 12 01:07:46 2016 +0100 Merge branch 'device-properties' * device-properties: device property: avoid allocations of 0 length device property: the secondary fwnode needs to depend on the primary device property: add spaces to PROPERTY_ENTRY_STRING macro include/linux/property.h: fix build issues with gcc-4.4.4 i2c: designware: Convert to use unified device property API mfd: intel-lpss: Pass HSUART configuration via properties mfd: intel-lpss: Pass SDA hold time to I2C host controller driver mfd: intel-lpss: Add support for passing device properties mfd: core: propagate device properties to sub devices drivers driver core: Do not overwrite secondary fwnode with NULL if it is set driver core: platform: Add support for built-in device properties device property: Take a copy of the property set device property: Fallback to secondary fwnode if primary misses the property device property: return -EINVAL when property isn't found in ACPI device property: improve readability of macros device property: helper macros for property entry creation device property: keep single value inplace device property: refactor built-in properties support device property: rename helper functions device property: always check for fwnode type commit 2f10f1a7884e97a68e52c4b6f7866e29cf3fe7e6 Author: Hugh Dickins Date: Sat Jan 9 16:54:59 2016 -0800 powerpc/mm: fix _PAGE_SWP_SOFT_DIRTY breaking swapoff Swapoff after swapping hangs on the G5, when CONFIG_CHECKPOINT_RESTORE=y but CONFIG_MEM_SOFT_DIRTY is not set. That's because the non-zero _PAGE_SWP_SOFT_DIRTY bit, added by CONFIG_HAVE_ARCH_SOFT_DIRTY=y, is not discounted when CONFIG_MEM_SOFT_DIRTY is not set: so swap ptes cannot be recognized. (I suspect that the peculiar dependence of HAVE_ARCH_SOFT_DIRTY on CHECKPOINT_RESTORE in arch/powerpc/Kconfig comes from an incomplete attempt to solve this problem.) It's true that the relationship between CONFIG_HAVE_ARCH_SOFT_DIRTY and and CONFIG_MEM_SOFT_DIRTY is too confusing, and it's true that swapoff should be made more robust; but nevertheless, fix up the powerpc ifdefs as x86_64 and s390 (which met the same problem) have them, defining the bits as 0 if CONFIG_MEM_SOFT_DIRTY is not set. Fixes: 7207f43665b8 ("powerpc/mm: Add page soft dirty tracking") Signed-off-by: Hugh Dickins Reviewed-by: Cyrill Gorcunov Acked-by: Laurent Dufour Signed-off-by: Michael Ellerman arch/powerpc/include/asm/book3s/64/hash.h | 5 +++++ arch/powerpc/include/asm/book3s/64/pgtable.h | 9 ++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) commit 44734f23de2465c3c0d39e4a16df7735b23fd142 Author: Aneesh Kumar K.V Date: Mon Jan 11 21:19:34 2016 +0530 powerpc/mm: Fix _PAGE_PTE breaking swapoff Core kernel expects swp_entry_t to consist of only swap type and swap offset. We should not leak pte bits into swp_entry_t. This breaks swapoff which use the swap type and offset to build a swp_entry_t and later compare that to the swp_entry_t obtained from linux page table pte. Leaking pte bits into swp_entry_t breaks that comparison and results in us looping in try_to_unuse. The stack trace can be anywhere below try_to_unuse() in mm/swapfile.c, since swapoff is circling around and around that function, reading from each used swap block into a page, then trying to find where that page belongs, looking at every non-file pte of every mm that ever swapped. Fixes: 6a119eae942c ("powerpc/mm: Add a _PAGE_PTE bit") Reported-by: Hugh Dickins Suggested-by: Hugh Dickins Signed-off-by: Aneesh Kumar K.V Acked-by: Hugh Dickins Signed-off-by: Michael Ellerman arch/powerpc/include/asm/book3s/64/pgtable.h | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 88cbfd07119e394b9cbb1a4a764056c4b37e8378 Merge: 4f19b88 8705d60 Author: Linus Torvalds Date: Mon Jan 11 15:58:16 2016 -0800 Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 asm updates from Ingo Molnar: "The main changes in this cycle were: - vDSO and asm entry improvements (Andy Lutomirski) - Xen paravirt entry enhancements (Boris Ostrovsky) - asm entry labels enhancement (Borislav Petkov) - and other misc changes (Thomas Gleixner, me)" * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/vsdo: Fix build on PARAVIRT_CLOCK=y, KVM_GUEST=n Revert "x86/kvm: On KVM re-enable (e.g. after suspend), update clocks" x86/entry/64_compat: Make labels local x86/platform/uv: Include clocksource.h for clocksource_touch_watchdog() x86/vdso: Enable vdso pvclock access on all vdso variants x86/vdso: Remove pvclock fixmap machinery x86/vdso: Get pvclock data from the vvar VMA instead of the fixmap x86, vdso, pvclock: Simplify and speed up the vdso pvclock reader x86/kvm: On KVM re-enable (e.g. after suspend), update clocks x86/entry/64: Bypass enter_from_user_mode on non-context-tracking boots x86/asm: Add asm macros for static keys/jump labels x86/asm: Error out if asm/jump_label.h is included inappropriately context_tracking: Switch to new static_branch API x86/entry, x86/paravirt: Remove the unused usergs_sysret32 PV op x86/paravirt: Remove the unused irq_enable_sysexit pv op x86/xen: Avoid fast syscall path for Xen PV guests commit 447135a86659c646017b8e707c1243c186bf2dff Author: Jaegeuk Kim Date: Sat Jan 9 17:08:38 2016 -0800 f2fs: should unset atomic flag after successful commit If there is an error during commit, we should keep the flag in order to abort it. Signed-off-by: Jaegeuk Kim fs/f2fs/file.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 1663cae48ce3ce991c0e3f1a6fbdbd57f3dce9af Author: Jaegeuk Kim Date: Sat Jan 9 16:14:08 2016 -0800 f2fs: fix wrong memory condition check This patch fixes wrong decision for avaliable_free_memory. The return valus is already set as false, so we should consider true condition below only. Signed-off-by: Jaegeuk Kim fs/f2fs/node.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 42190d2a8663f3e181894dc4e37a1af06aab2cbb Author: Jaegeuk Kim Date: Sat Jan 9 13:45:17 2016 -0800 f2fs: monitor the number of background checkpoint This patch adds to show the number of background checkpoint. Signed-off-by: Jaegeuk Kim fs/f2fs/debug.c | 3 ++- fs/f2fs/f2fs.h | 4 +++- fs/f2fs/segment.c | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) commit d0239e1bf5204d602281f93c01d46bcf3531098d Author: Jaegeuk Kim Date: Fri Jan 8 16:57:48 2016 -0800 f2fs: detect idle time depending on user behavior This patch adds last time that user requested filesystem operations. This information is used to detect whether system is idle or not later. Signed-off-by: Jaegeuk Kim Documentation/ABI/testing/sysfs-fs-f2fs | 6 ++++++ fs/f2fs/data.c | 1 + fs/f2fs/dir.c | 4 ++++ fs/f2fs/f2fs.h | 15 +++++++++++++++ fs/f2fs/file.c | 12 ++++++++++++ fs/f2fs/gc.c | 1 - fs/f2fs/gc.h | 8 -------- fs/f2fs/segment.c | 2 +- fs/f2fs/super.c | 4 ++++ fs/f2fs/xattr.c | 1 + 10 files changed, 44 insertions(+), 10 deletions(-) commit af756bbccff85504ce05c63a50f80b9d7823c500 Author: Tony Lindgren Date: Mon Jan 11 14:35:24 2016 -0800 ARM: dts: Fix omap5 PMIC control lines for RTC writes The palmas PMIC has two control lines that need to be muxed properly for things to work. The sys_nirq pin is used for interrupts, and msecure pin is used for enabling writes to some PMIC registers. Without these pins configured properly things can fail in mysterious ways. For example, we can't update the RTC registers on palmas PMIC unless the msecure pin is configured. And this is probably the reason why we had RTC missing from the omap5 dts file. According to "OMAP5430 ES2.0 Data Manual [Public] VErsion A (Rev. F)" swps052f.pdf, mux mode 1 is for sys_drm_msecure so in theory there's should be no need to configure it as a GPIO pin. However, it seems there are some reliability issues using the msecure mux mode. And the TI trees configure the msecure pin as GPIO out high instead. As the PMIC only cares that the msecure line is high to allow access to the RTC registers, let's use a GPIO hog as suggested by Nishanth Menon . Also the use of the internal pull was considered but supposedly that may not be capable of keeping the line high in a noisy environment. If we ever see high security omap5 products in the mainline tree, those need to skip the msecure pin muxing and ignore setting the GPIO hog. Chances are the related pin mux registers are locked in that case and the msecure pin is managed by whatever software may be running in the ARM TrustZone. Who knows what the original intention of the msecure pin was. Maybe it was supposed to prevent the system time to be set back for some game demo modes to time out? Anyways, it seems that later PMICs like tps659037 have recycled this pin for "powerhold" and devices like beagle-x15 do not need changes to the msecure pin configuration. To avoid further confusion with TWL variant PMICs, beagle-x15 does not have a back-up battery for RTC palmas. Instead the mcp79410 RTC is used with rtc-ds1307 driver. There is a "powerhold" jumper j5 holes near the palmas PMIC, and shorting it seems to power up beagle-x15 automatically. It is unknown if it also has other side effects to the beagle-x15 power up sequence. Cc: stable@vger.kernel.org # v4.4 Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap5-board-common.dtsi | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit 4f19b8803bddbecbd8c3ac44a2cfadd9d2b85b8f Merge: af34520 c8f3e51 Author: Linus Torvalds Date: Mon Jan 11 15:37:06 2016 -0800 Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 apic updates from Ingo Molnar: "The main changes in this cycle were: - introduce optimized single IPI sending methods on modern APICs (Linus Torvalds, Thomas Gleixner) - kexec/crash APIC handling fixes and enhancements (Hidehiro Kawai) - extend lapic vector saving/restoring to the CMCI (MCE) vector as well (Juergen Gross) - various fixes and enhancements (Jake Oshins, Len Brown)" * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (23 commits) x86/irq: Export functions to allow MSI domains in modules Documentation: Document kernel.panic_on_io_nmi sysctl x86/nmi: Save regs in crash dump on external NMI x86/apic: Introduce apic_extnmi command line parameter kexec: Fix race between panic() and crash_kexec() panic, x86: Allow CPUs to save registers even if looping in NMI context panic, x86: Fix re-entrance problem due to panic on NMI x86/apic: Fix the saving and restoring of lapic vectors during suspend/resume x86/smpboot: Re-enable init_udelay=0 by default on modern CPUs x86/smp: Remove single IPI wrapper x86/apic: Use default send single IPI wrapper x86/apic: Provide default send single IPI wrapper x86/apic: Implement single IPI for apic_noop x86/apic: Wire up single IPI for apic_numachip x86/apic: Wire up single IPI for x2apic_uv x86/apic: Implement single IPI for x2apic_phys x86/apic: Wire up single IPI for bigsmp_apic x86/apic: Remove pointless indirections from bigsmp_apic x86/apic: Wire up single IPI for apic_physflat x86/apic: Remove pointless indirections from apic_physflat ... commit 6beceb5427aa8731f958d2484e0fd8ff21d604dc Author: Jaegeuk Kim Date: Fri Jan 8 15:51:50 2016 -0800 f2fs: introduce time and interval facility This patch adds time and interval arrays to store some timing variables. Signed-off-by: Jaegeuk Kim fs/f2fs/checkpoint.c | 2 +- fs/f2fs/f2fs.h | 21 ++++++++++++++++++++- fs/f2fs/segment.c | 2 +- fs/f2fs/super.c | 7 +++---- 4 files changed, 25 insertions(+), 7 deletions(-) commit 8a0d560f3e651808ae0a3d9ab9fe476e59de132b Author: Stephen Rothwell Date: Thu Dec 31 21:20:20 2015 +1100 drm/amdgpu/powerplay: include asm/div64.h for do_div() Fixes: 1e4854e96c35 ("drm/amdgpu/powerplay: implement thermal control for tonga.") Signed-off-by: Stephen Rothwell Signed-off-by: Dave Airlie drivers/gpu/drm/amd/powerplay/hwmgr/fiji_thermal.c | 2 +- drivers/gpu/drm/amd/powerplay/hwmgr/tonga_thermal.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit af345201ea948d0976d775958d8aa22fe5e5ba58 Merge: 4bd20db 0905f04 Author: Linus Torvalds Date: Mon Jan 11 15:13:38 2016 -0800 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 main changes in this cycle were: - tickless load average calculation enhancements (Byungchul Park) - vtime handling enhancements (Frederic Weisbecker) - scalability improvement via properly aligning a key structure field (Jiri Olsa) - various stop_machine() fixes (Oleg Nesterov) - sched/numa enhancement (Rik van Riel) - various fixes and improvements (Andi Kleen, Dietmar Eggemann, Geliang Tang, Hiroshi Shimamoto, Joonwoo Park, Peter Zijlstra, Waiman Long, Wanpeng Li, Yuyang Du)" * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (32 commits) sched/fair: Fix new task's load avg removed from source CPU in wake_up_new_task() sched/core: Move sched_entity::avg into separate cache line x86/fpu: Properly align size in CHECK_MEMBER_AT_END_OF() macro sched/deadline: Fix the earliest_dl.next logic sched/fair: Disable the task group load_avg update for the root_task_group sched/fair: Move the cache-hot 'load_avg' variable into its own cacheline sched/fair: Avoid redundant idle_cpu() call in update_sg_lb_stats() sched/core: Move the sched_to_prio[] arrays out of line sched/cputime: Convert vtime_seqlock to seqcount sched/cputime: Introduce vtime accounting check for readers sched/cputime: Rename vtime_accounting_enabled() to vtime_accounting_cpu_enabled() sched/cputime: Correctly handle task guest time on housekeepers sched/cputime: Clarify vtime symbols and document them sched/cputime: Remove extra cost in task_cputime() sched/fair: Make it possible to account fair load avg consistently sched/fair: Modify the comment about lock assumptions in migrate_task_rq_fair() stop_machine: Clean up the usage of the preemption counter in cpu_stopper_thread() stop_machine: Shift the 'done != NULL' check from cpu_stop_signal_done() to callers stop_machine: Kill cpu_stop_done->executed stop_machine: Change __stop_cpus() to rely on cpu_stop_queue_work() ... commit 2d30bb0b3889adf09b342722b2ce596c0763bc93 Author: Rafael J. Wysocki Date: Tue Jan 12 00:12:19 2016 +0100 platform: Do not detach from PM domains on shutdown Shutdown is carried out when the driver is still bound to the device, so it is incorrect to detach it from a PM domain (if any) at this point. Signed-off-by: Rafael J. Wysocki Reported-and-tested-by: Fabio Estevam Acked-by: Ulf Hansson drivers/base/platform.c | 1 - 1 file changed, 1 deletion(-) commit 4bd20db2c027eab7490e3c0466734738bef2dd24 Merge: 5cb52b5 feab21f Author: Linus Torvalds Date: Mon Jan 11 15:07:19 2016 -0800 Merge branch 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull RAS updates from Ingo Molnar: "Various x86 MCE fixes and small enhancements" * 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/mce: Make usable address checks Intel-only x86/mce: Add the missing memory error check on AMD x86/RAS: Remove mce.usable_addr x86/mce: Do not enter deferred errors into the generic pool twice commit 03d84a5f83a67e692af00a3d3901e7820e3e84d5 Author: Karl Heiss Date: Mon Jan 11 08:28:43 2016 -0500 bonding: Prevent IPv6 link local address on enslaved devices Commit 1f718f0f4f97 ("bonding: populate neighbour's private on enslave") undoes the fix provided by commit c2edacf80e15 ("bonding / ipv6: no addrconf for slaves separately from master") by effectively setting the slave flag after the slave has been opened. If the slave comes up quickly enough, it will go through the IPv6 addrconf before the slave flag has been set and will get a link local IPv6 address. In order to ensure that addrconf knows to ignore the slave devices on state change, set IFF_SLAVE before dev_open() during bonding enslavement. Fixes: 1f718f0f4f97 ("bonding: populate neighbour's private on enslave") Signed-off-by: Karl Heiss Signed-off-by: Jay Vosburgh Reviewed-by: Jarod Wilson Signed-off-by: Andy Gospodarek Signed-off-by: David S. Miller drivers/net/bonding/bond_main.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 7937963a02972281fd20c920db1a0344d947bb25 Merge: 23c09c2 038d2ef Author: David S. Miller Date: Mon Jan 11 17:48:54 2016 -0500 Merge branch 'mlx5-enhanced-flow-steering' Or Gerlitz says: ==================== net/mlx5_core: Enhance flow steering support v0 --> v1 changes: - fixed improperly formatted comments. - compare value of ib_spec->eth.mask.ether_type in network byte order in ('IB/mlx5: Add flow steering utilities'). v1 --> v2 changes: - made sure that service functions added in the IB driver are only static-fied on the last commit, to make sure bisection with -Werror works fine. v2 --> v3 changes: - squashed patches 11 and 12 into one patch, s.t Dave's comment on unused static functions gcc complaints during bisection is correctly addressed. v3 has been generated against net-next commit c9c9931 "Merge tag 'batman-adv-for-davem' of git://git.open-mesh.org/linux-merge" The series is signed by Matan who was revently assigned to a maintainer for the mlx5_core and IB drivers (this is a 4.5-rc1 change to the maintainers file coming from the rdma tree) -- as such I didn't see a neeed to add my signature (Or). This series adds three new functionalists to the driver flow-steering infrastructure: auto-grouped flow tables, chaining of flow tables and updates for the root flow table. 1. Auto-grouped flow tables - Flow table with auto grouping management. When a flow table is created, hints regarding the number of rule types and the number of rules are given in advance. Thus, a flow table is divided into #NUM_TYPES+1 groups each contains (#NUM_RULES)/(#NUM_TYPES+1) rules. The first #NUM_TYPES parts are groups which are filled if the added rule matches the group specification or the group is empty. The last part is filled by rules that can't fit any of the former groups. 2. Chaining flow tables - Flow tables from different priorities are chained together, if there is no match in flow table of priority i we continue searching for a match in priority i+1. This is both true if priorities i and i+1 belongs to the same namespace or not. 3. Updating the root flow table - the root flow table is the flow table with the lowest level. The hardware start searching for a match in the root flow table and continue according to the matches it find along the way. The first usage for the new functionality is flow steering for user-space ConnectX-4 offloaded HW Eth RX queues done through the mlx5 IB driver. When the mlx5 core driver is loaded, it opens three flow namespaces: 1. By-pass namespace (used by mlx5 IB driver). 2. Kernel namespace (used in order to get packets to the networking stack through mlx5 EN driver). 3. Leftovers namespace (used by mlx5 IB and future sniffer) The series is built as follows: Patch #1 introduces auto-grouped flow tables support. Patch #2 add utility functions for finding the next and the previous flow tables in different priorities. This is used in order to chain the flow tables in a downstream patch. Patch #3 introduces a firmware command for updating the root flow table. Patch #4 introduces modify flow table firmware command, this command is used when we want to change the next flow table of an existing flow table. This is used for chaining flow tables as well. Patch #5 connect/disconnect flow tables. This is actually the chaining process when we want to link flow tables. This means that if we couldn't find a match in the first flow table, we'll continue in the chained flow table. Patch #6 updates priority's attributes that is required for flow table level allocation. We update both the max_fts (the number of allowed FTs in the sub-tree of this priority) and the start_level (which is the first level we'll assign to the flow-tables created inside the priority). Patch #7 adds checking of required device capabilities. Some namespaces could be only created if the hardware supports certain attributes. This is especially true for the Bypass and leftovers namespaces. This adds a generic mechanism to check these required attributes. Patch #8 creates two additional namespaces: a. Bypass flow rules(has nine priorities) b. Leftovers packets(have one priority) - for unmatched packets. Patch #9 re-factors ipv4/ipv6 match fields in the mlx5 firmware interface header to be more clear. Patch #10 exports the flow steering API for mlx5_ib usage Patch #11 implements the required support in mlx5_ib in order to support the RDMA flow steering verbs. ==================== Signed-off-by: David S. Miller commit 038d2ef87572757861a177b19f9d489def2c48b8 Author: Maor Gottlieb Date: Mon Jan 11 10:26:07 2016 +0200 IB/mlx5: Add flow steering support Adding flow steering support by creating a flow-table per priority (if rules exist in the priority). mlx5_ib uses autogrouping and thus only creates the required destinations. Also includes adding of these flow steering utilities 1. Parsing verbs flow attributes hardware steering specs. 2. Check if flow is multicast - this is required in order to decide to which flow table will we add the steering rule. 3. Set outer headers in flow match criteria to zeros. Signed-off-by: Maor Gottlieb Signed-off-by: Moni Shoua Signed-off-by: Matan Barak Signed-off-by: David S. Miller drivers/infiniband/hw/mlx5/main.c | 463 +++++++++++++++++++++++++++++++++++ drivers/infiniband/hw/mlx5/mlx5_ib.h | 45 +++- include/linux/mlx5/fs.h | 10 + 3 files changed, 517 insertions(+), 1 deletion(-) commit b217ea25afd8910e7ec0abb556bcb312d397c8a6 Author: Maor Gottlieb Date: Mon Jan 11 10:26:06 2016 +0200 net/mlx5_core: Export flow steering API Add exports to flow steering API for mlx5_ib usage. The following functions are exported: 1. mlx5_create_auto_grouped_flow_table - used to create flow table with auto flow grouping management (create and destroy flow groups). In auto-grouped flow tables, we create groups automatically if needed (if we don't find an existing flow group with same match criteria when we add new rule). 2. mlx5_destroy_flow_table - used to destroy a flow table. 3. mlx5_add_flow_rule - used to add flow rule into a flow table. 4. mlx5_del_flow_rule - used to delete flow rule from its flow table. 5. mlx5_get_flow_namespace - used to get a handle to the required namespace sub-tree. Signed-off-by: Maor Gottlieb Signed-off-by: Moni Shoua Signed-off-by: Matan Barak Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 5 +++++ 1 file changed, 5 insertions(+) commit b4d1f032d75b2efb73304e8c12faa7149ad700c7 Author: Maor Gottlieb Date: Mon Jan 11 10:26:05 2016 +0200 net/mlx5_core: Make ipv4/ipv6 location more clear Change the mlx5 firmware interface header to make it more clear which bytes should be used by IPv4 or IPv6 addresses. Signed-off-by: Maor Gottlieb Signed-off-by: Moni Shoua Signed-off-by: Matan Barak Signed-off-by: David S. Miller include/linux/mlx5/mlx5_ifc.h | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) commit 4cbdd30ed5c8bc5cf40813b025b4fb57b376a592 Author: Maor Gottlieb Date: Mon Jan 11 10:26:04 2016 +0200 net/mlx5_core: Enable flow steering support for the IB driver When the driver is loaded, we create flow steering namespace for kernel bypass with nine priorities and another namespace for leftovers(in order to catch packets that weren't matched). Verbs applications will use these priorities. we found nine as a number that balances the requirements from the user and retains performance. The bypass namespace is used by verbs applications that want to bypass the kernel networking stack. The leftovers namespace is used by verbs applications and the sniffer in order to catch packets that weren't handled by any preceding rules. Signed-off-by: Maor Gottlieb Signed-off-by: Moni Shoua Signed-off-by: Matan Barak Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 55 +++++++++++++++++++---- include/linux/mlx5/device.h | 2 + include/linux/mlx5/fs.h | 2 + 3 files changed, 51 insertions(+), 8 deletions(-) commit 8d40d162c014dc3be316c5950b382d608aa2c8de Author: Maor Gottlieb Date: Mon Jan 11 10:26:03 2016 +0200 net/mlx5_core: Initialize namespaces only when supported by device Before we create the sub tree of a steering namespaces(kernel, bypass, leftovers) we check that the device has the required capabilities in order to create this subtree. Signed-off-by: Maor Gottlieb Signed-off-by: Moni Shoua Signed-off-by: Matan Barak Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 70 ++++++++++++++++------- 1 file changed, 49 insertions(+), 21 deletions(-) commit 655227edae4ca42e702db3b7ca490d098090e8fb Author: Maor Gottlieb Date: Mon Jan 11 10:26:02 2016 +0200 net/mlx5_core: Set priority attributes Each priority has two attributes: 1. max_ft - maximum allowed flow tables under this priority. 2. start_level - start level range of the flow tables in the priority. These attributes are set by traversing the tree nodes by DFS and set start level and max flow tables to each priority. Start level depends on the max flow tables of the prior priorities in the tree. The leaves of the trees have max_ft set in them. Each node accumulates the max_ft of its children and set it accordingly. Signed-off-by: Maor Gottlieb Signed-off-by: Moni Shoua Signed-off-by: Matan Barak Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 71 +++++++++++++++++------ drivers/net/ethernet/mellanox/mlx5/core/fs_core.h | 3 + 2 files changed, 55 insertions(+), 19 deletions(-) commit f90edfd279f35a5c62003eeee107f03f3b1544bc Author: Maor Gottlieb Date: Mon Jan 11 10:26:01 2016 +0200 net/mlx5_core: Connect flow tables Flow tables from different priorities should be chained together. When a packet arrives we search for a match in the by-pass flow tables (first we search for a match in priority 0 and if we don't find a match we move to the next priority). If we can't find a match in any of the bypass flow-tables, we continue searching in the flow-tables of the next priority, which are the kernel's flow tables. Setting the miss flow table in a new flow table to be the next one in the list is performed via create flow table API. If we want to change an existing flow table, for example in order to point from an existing flow table to the new next-in-list flow table, we use the modify flow table API. Signed-off-by: Maor Gottlieb Signed-off-by: Moni Shoua Signed-off-by: Matan Barak Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.c | 7 +- drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.h | 3 +- drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 104 ++++++++++++++++++++-- 3 files changed, 104 insertions(+), 10 deletions(-) commit 34a40e689393a6b13673ab395a9a4d063d249fe9 Author: Maor Gottlieb Date: Mon Jan 11 10:26:00 2016 +0200 net/mlx5_core: Introduce modify flow table command Introduce the modify flow table command. This command is used when we want to change the next flow table of an existing flow table. The next flow table is defined as the table we search (in order to find a match), if we couldn't find a match in any of the flow table entries in the current flow table. Signed-off-by: Maor Gottlieb Signed-off-by: Moni Shoua Signed-off-by: Matan Barak Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.c | 27 ++++++++++++ drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.h | 4 ++ include/linux/mlx5/mlx5_ifc.h | 56 ++++++++++++++++++++++-- 3 files changed, 83 insertions(+), 4 deletions(-) commit 2cc43b494a6c30ec0e554ea91ce763c97069e8cc Author: Maor Gottlieb Date: Mon Jan 11 10:25:59 2016 +0200 net/mlx5_core: Managing root flow table The root Flow Table for each Flow Table Type is defined, by default, as the Flow Table with level 0. In order not to use an empty flow tables and introduce new hops, but still preserve space for flow-tables that have a priority greater(lower number) than the current flow table, we introduce this new set root flow table command. This command tells the HW to start matching packets from the assigned root flow table. This command is used when we create new flow table with level lower than the current lowest flow table or it is the first flow table. Signed-off-by: Maor Gottlieb Signed-off-by: Moni Shoua Signed-off-by: Matan Barak Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.c | 18 +++++ drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.h | 2 + drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 97 ++++++++++++++++++++--- drivers/net/ethernet/mellanox/mlx5/core/fs_core.h | 6 ++ include/linux/mlx5/mlx5_ifc.h | 31 +++++++- 5 files changed, 144 insertions(+), 10 deletions(-) commit fdb6896fd97eb9d3efbd9f2e6ec1c0c5854bf542 Author: Maor Gottlieb Date: Mon Jan 11 10:25:58 2016 +0200 net/mlx5_core: Add utilities to find next and prev flow-tables Add two utility functions for find next and prev flow table. Find next flow table function gets priority and return the first flow table of the next priority in the tree. Find prev flow table return the last flow table of the previous priority in the tree. These utility functions are used for chaining flow table from different priorities. Signed-off-by: Maor Gottlieb Signed-off-by: Moni Shoua Signed-off-by: Matan Barak Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 67 +++++++++++++++++++++++ 1 file changed, 67 insertions(+) commit f0d22d1874730530a2ac304fd0888cb8a6864527 Author: Maor Gottlieb Date: Mon Jan 11 10:25:57 2016 +0200 net/mlx5_core: Introduce flow steering autogrouped flow table When user add rule to autogrouped flow table, we search for flow group with the same match criteria, if we don't find such group then we create new flow group with the required match criteria and insert the rule to this group. We divide the flow table into required_groups + 1, in order to reserve a part of the flow table for rules which don't match any existing group. Signed-off-by: Maor Gottlieb Signed-off-by: Moni Shoua Signed-off-by: Matan Barak Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 166 +++++++++++++++++++--- drivers/net/ethernet/mellanox/mlx5/core/fs_core.h | 5 + include/linux/mlx5/fs.h | 6 + 3 files changed, 158 insertions(+), 19 deletions(-) commit 40ba330227ad00b8c0cdf2f425736ff9549cc423 Author: Michal Kubeček Date: Mon Jan 11 07:50:30 2016 +0100 udp: disallow UFO for sockets with SO_NO_CHECK option Commit acf8dd0a9d0b ("udp: only allow UFO for packets from SOCK_DGRAM sockets") disallows UFO for packets sent from raw sockets. We need to do the same also for SOCK_DGRAM sockets with SO_NO_CHECK options, even if for a bit different reason: while such socket would override the CHECKSUM_PARTIAL set by ip_ufo_append_data(), gso_size is still set and bad offloading flags warning is triggered in __skb_gso_segment(). In the IPv6 case, SO_NO_CHECK option is ignored but we need to disallow UFO for packets sent by sockets with UDP_NO_CHECK6_TX option. Signed-off-by: Michal Kubecek Tested-by: Shannon Nelson Acked-by: Hannes Frederic Sowa Signed-off-by: David S. Miller net/ipv4/ip_output.c | 2 +- net/ipv6/ip6_output.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 3de03596dfeee48bc803c1d1a6daf60a459929f3 Author: John Fastabend Date: Sun Jan 10 21:38:44 2016 -0800 net: pktgen: fix null ptr deref in skb allocation Fix possible null pointer dereference that may occur when calling skb_reserve() on a null skb. Fixes: 879c7220e82 ("net: pktgen: Observe needed_headroom of the device") Signed-off-by: John Fastabend Signed-off-by: David S. Miller net/core/pktgen.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 5cb52b5e1654f3f1ed9c32e34456d98559c85aa0 Merge: 24af98c 3eb9ede Author: Linus Torvalds Date: Mon Jan 11 14:39:17 2016 -0800 Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull perf updates from Ingo Molnar: "Kernel side changes: - Intel Knights Landing support. (Harish Chegondi) - Intel Broadwell-EP uncore PMU support. (Kan Liang) - Core code improvements. (Peter Zijlstra.) - Event filter, LBR and PEBS fixes. (Stephane Eranian) - Enable cycles:pp on Intel Atom. (Stephane Eranian) - Add cycles:ppp support for Skylake. (Andi Kleen) - Various x86 NMI overhead optimizations. (Andi Kleen) - Intel PT enhancements. (Takao Indoh) - AMD cache events fix. (Vince Weaver) Tons of tooling changes: - Show random perf tool tips in the 'perf report' bottom line (Namhyung Kim) - perf report now defaults to --group if the perf.data file has grouped events, try it with: # perf record -e '{cycles,instructions}' -a sleep 1 [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 1.093 MB perf.data (1247 samples) ] # perf report # Samples: 1K of event 'anon group { cycles, instructions }' # Event count (approx.): 1955219195 # # Overhead Command Shared Object Symbol 2.86% 0.22% swapper [kernel.kallsyms] [k] intel_idle 1.05% 0.33% firefox libxul.so [.] js::SetObjectElement 1.05% 0.00% kworker/0:3 [kernel.kallsyms] [k] gen6_ring_get_seqno 0.88% 0.17% chrome chrome [.] 0x0000000000ee27ab 0.65% 0.86% firefox libxul.so [.] js::ValueToId<(js::AllowGC)1> 0.64% 0.23% JS Helper libxul.so [.] js::SplayTree::splay 0.62% 1.27% firefox libxul.so [.] js::GetIterator 0.61% 1.74% firefox libxul.so [.] js::NativeSetProperty 0.61% 0.31% firefox libxul.so [.] js::SetPropertyByDefining - Introduce the 'perf stat record/report' workflow: Generate perf.data files from 'perf stat', to tap into the scripting capabilities perf has instead of defining a 'perf stat' specific scripting support to calculate event ratios, etc. Simple example: $ perf stat record -e cycles usleep 1 Performance counter stats for 'usleep 1': 1,134,996 cycles 0.000670644 seconds time elapsed $ perf stat report Performance counter stats for '/home/acme/bin/perf stat record -e cycles usleep 1': 1,134,996 cycles 0.000670644 seconds time elapsed $ It generates PERF_RECORD_ userspace records to store the details: $ perf report -D | grep PERF_RECORD 0xf0 [0x28]: PERF_RECORD_THREAD_MAP nr: 1 thread: 27637 0x118 [0x12]: PERF_RECORD_CPU_MAP nr: 1 cpu: 65535 0x12a [0x40]: PERF_RECORD_STAT_CONFIG 0x16a [0x30]: PERF_RECORD_STAT -1 -1 0x19a [0x40]: PERF_RECORD_MMAP -1/0: [0xffffffff81000000(0x1f000000) @ 0xffffffff81000000]: x [kernel.kallsyms]_text 0x1da [0x18]: PERF_RECORD_STAT_ROUND [acme@ssdandy linux]$ An effort was made to make perf.data files generated like this to not generate cryptic messages when processed by older tools. The 'perf script' bits need rebasing, will go up later. - Make command line options always available, even when they depend on some feature being enabled, warning the user about use of such options (Wang Nan) - Support hw breakpoint events (mem:0xAddress) in the default output mode in 'perf script' (Wang Nan) - Fixes and improvements for supporting annotating ARM binaries, support ARM call and jump instructions, more work needed to have arch specific stuff separated into tools/perf/arch/*/annotate/ (Russell King) - Add initial 'perf config' command, for now just with a --list command to the contents of the configuration file in use and a basic man page describing its format, commands for doing edits and detailed documentation are being reviewed and proof-read. (Taeung Song) - Allows BPF scriptlets specify arguments to be fetched using DWARF info, using a prologue generated at compile/build time (He Kuang, Wang Nan) - Allow attaching BPF scriptlets to module symbols (Wang Nan) - Allow attaching BPF scriptlets to userspace code using uprobe (Wang Nan) - BPF programs now can specify 'perf probe' tunables via its section name, separating key=val values using semicolons (Wang Nan) Testing some of these new BPF features: Use case: get callchains when receiving SSL packets, filter then in the kernel, at arbitrary place. # cat ssl.bpf.c #define SEC(NAME) __attribute__((section(NAME), used)) struct pt_regs; SEC("func=__inet_lookup_established hnum") int func(struct pt_regs *ctx, int err, unsigned short port) { return err == 0 && port == 443; } char _license[] SEC("license") = "GPL"; int _version SEC("version") = LINUX_VERSION_CODE; # # perf record -a -g -e ssl.bpf.c ^C[ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.787 MB perf.data (3 samples) ] # perf script | head -30 swapper 0 [000] 58783.268118: perf_bpf_probe:func: (ffffffff816a0f60) hnum=0x1bb 8a0f61 __inet_lookup_established (/lib/modules/4.3.0+/build/vmlinux) 896def ip_rcv_finish (/lib/modules/4.3.0+/build/vmlinux) 8976c2 ip_rcv (/lib/modules/4.3.0+/build/vmlinux) 855eba __netif_receive_skb_core (/lib/modules/4.3.0+/build/vmlinux) 8565d8 __netif_receive_skb (/lib/modules/4.3.0+/build/vmlinux) 8572a8 process_backlog (/lib/modules/4.3.0+/build/vmlinux) 856b11 net_rx_action (/lib/modules/4.3.0+/build/vmlinux) 2a284b __do_softirq (/lib/modules/4.3.0+/build/vmlinux) 2a2ba3 irq_exit (/lib/modules/4.3.0+/build/vmlinux) 96b7a4 do_IRQ (/lib/modules/4.3.0+/build/vmlinux) 969807 ret_from_intr (/lib/modules/4.3.0+/build/vmlinux) 2dede5 cpu_startup_entry (/lib/modules/4.3.0+/build/vmlinux) 95d5bc rest_init (/lib/modules/4.3.0+/build/vmlinux) 1163ffa start_kernel ([kernel.vmlinux].init.text) 11634d7 x86_64_start_reservations ([kernel.vmlinux].init.text) 1163623 x86_64_start_kernel ([kernel.vmlinux].init.text) qemu-system-x86 9178 [003] 58785.792417: perf_bpf_probe:func: (ffffffff816a0f60) hnum=0x1bb 8a0f61 __inet_lookup_established (/lib/modules/4.3.0+/build/vmlinux) 896def ip_rcv_finish (/lib/modules/4.3.0+/build/vmlinux) 8976c2 ip_rcv (/lib/modules/4.3.0+/build/vmlinux) 855eba __netif_receive_skb_core (/lib/modules/4.3.0+/build/vmlinux) 8565d8 __netif_receive_skb (/lib/modules/4.3.0+/build/vmlinux) 856660 netif_receive_skb_internal (/lib/modules/4.3.0+/build/vmlinux) 8566ec netif_receive_skb_sk (/lib/modules/4.3.0+/build/vmlinux) 430a br_handle_frame_finish ([bridge]) 48bc br_handle_frame ([bridge]) 855f44 __netif_receive_skb_core (/lib/modules/4.3.0+/build/vmlinux) 8565d8 __netif_receive_skb (/lib/modules/4.3.0+/build/vmlinux) # - Use 'perf probe' various options to list functions, see what variables can be collected at any given point, experiment first collecting without a filter, then filter, use it together with 'perf trace', 'perf top', with or without callchains, if it explodes, please tell us! - Introduce a new callchain mode: "folded", that will list per line representations of all callchains for a give histogram entry, facilitating 'perf report' output processing by other tools, such as Brendan Gregg's flamegraph tools (Namhyung Kim) E.g: # perf report | grep -v ^# | head 18.37% 0.00% swapper [kernel.kallsyms] [k] cpu_startup_entry | ---cpu_startup_entry | |--12.07%--start_secondary | --6.30%--rest_init start_kernel x86_64_start_reservations x86_64_start_kernel # Becomes, in "folded" mode: # perf report -g folded | grep -v ^# | head -5 18.37% 0.00% swapper [kernel.kallsyms] [k] cpu_startup_entry 12.07% cpu_startup_entry;start_secondary 6.30% cpu_startup_entry;rest_init;start_kernel;x86_64_start_reservations;x86_64_start_kernel 16.90% 0.00% swapper [kernel.kallsyms] [k] call_cpuidle 11.23% call_cpuidle;cpu_startup_entry;start_secondary 5.67% call_cpuidle;cpu_startup_entry;rest_init;start_kernel;x86_64_start_reservations;x86_64_start_kernel 16.90% 0.00% swapper [kernel.kallsyms] [k] cpuidle_enter 11.23% cpuidle_enter;call_cpuidle;cpu_startup_entry;start_secondary 5.67% cpuidle_enter;call_cpuidle;cpu_startup_entry;rest_init;start_kernel;x86_64_start_reservations;x86_64_start_kernel 15.12% 0.00% swapper [kernel.kallsyms] [k] cpuidle_enter_state # The user can also select one of "count", "period" or "percent" as the first column. ... and lots of infrastructure enhancements, plus fixes and other changes, features I failed to list - 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: (271 commits) perf evlist: Add --trace-fields option to show trace fields perf record: Store data mmaps for dwarf unwind perf libdw: Check for mmaps also in MAP__VARIABLE tree perf unwind: Check for mmaps also in MAP__VARIABLE tree perf unwind: Use find_map function in access_dso_mem perf evlist: Remove perf_evlist__(enable|disable)_event functions perf evlist: Make perf_evlist__open() open evsels with their cpus and threads (like perf record does) perf report: Show random usage tip on the help line perf hists: Export a couple of hist functions perf diff: Use perf_hpp__register_sort_field interface perf tools: Add overhead/overhead_children keys defaults via string perf tools: Remove list entry from struct sort_entry perf tools: Include all tools/lib directory for tags/cscope/TAGS targets perf script: Align event name properly perf tools: Add missing headers in perf's MANIFEST perf tools: Do not show trace command if it's not compiled in perf report: Change default to use event group view perf top: Decay periods in callchains tools lib: Move bitmap.[ch] from tools/perf/ to tools/{lib,include}/ tools lib: Sync tools/lib/find_bit.c with the kernel ... commit 23c09c2640c1cb9cba919cf4f181ae99a46d53bc Merge: c8086f6 c6c3345 Author: David S. Miller Date: Mon Jan 11 17:32:56 2016 -0500 Merge branch 'bpf-next' Daniel Borkmann says: ==================== BPF update This set adds IPv6 support for bpf_skb_{set,get}_tunnel_key() helper. It also exports flags to user space that are being used in helpers and weren't exported thus far. For more details, please see the individual patches. ==================== Signed-off-by: David S. Miller commit c6c33454072fc9fe961e2b25f22a619e4fa98838 Author: Daniel Borkmann Date: Mon Jan 11 01:16:39 2016 +0100 bpf: support ipv6 for bpf_skb_{set,get}_tunnel_key After IPv6 support has recently been added to metadata dst and related encaps, add support for populating/reading it from an eBPF program. Commit d3aa45ce6b ("bpf: add helpers to access tunnel metadata") started with initial IPv4-only support back then (due to IPv6 metadata support not being available yet). To stay compatible with older programs, we need to test for the passed structure size. Also TOS and TTL support from the ip_tunnel_info key has been added. Tested with vxlan devs in collect meta data mode with IPv4, IPv6 and in compat mode over different network namespaces. Signed-off-by: Daniel Borkmann Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller include/uapi/linux/bpf.h | 10 ++++++- net/core/filter.c | 69 +++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 71 insertions(+), 8 deletions(-) commit 781c53bc5d5628065a46c70f02f5a0450f5842f4 Author: Daniel Borkmann Date: Mon Jan 11 01:16:38 2016 +0100 bpf: export helper function flags and reject invalid ones Export flags used by eBPF helper functions through UAPI, so they can be used by programs (instead of them redefining all flags each time or just using the hard-coded values). It also gives a better overview what flags are used where and we can further get rid of the extra macros defined in filter.c. Moreover, reject invalid flags. Signed-off-by: Daniel Borkmann Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller include/uapi/linux/bpf.h | 16 ++++++++++++++++ net/core/filter.c | 37 +++++++++++++++++++++++-------------- 2 files changed, 39 insertions(+), 14 deletions(-) commit 366f29311137ec9dc0cdd4ec675cc6fcaac104d6 Merge: 66530bd bffa731 Author: David S. Miller Date: Mon Jan 11 17:31:10 2016 -0500 Merge branch 'renesas-eth-fixes' Sergei Shtylyov says: ==================== Fix some dubious code in the Renesas Ethernet drivers Here's a set of 2 patches against DaveM's 'net.git' repo. While initializing EMAC the code tries to respect the duplex mode both programmed into ECMR and stored in its own private data -- this just can't be right. [1/2] ravb: stop reading ECMR in ravb_emac_init() [2/2] sh_eth: stop reading ECMR in sh_eth_dev_init() ==================== Signed-off-by: David S. Miller commit bffa731f8f44e0444afc56875a10fd07e9a08c6c Author: Sergei Shtylyov Date: Mon Jan 11 00:28:14 2016 +0300 sh_eth: stop reading ECMR in sh_eth_dev_init() The code in sh_eth_dev_init() twiddling the ECMR bits always looked a bit strange to me: if one intends to respect 'mdp->duplex', why save old value of the ECMR.DM bit? As all the other bits are zeroed anyway, we don't really need to read ECMR before writing to it. Signed-off-by: Sergei Shtylyov Signed-off-by: David S. Miller drivers/net/ethernet/renesas/sh_eth.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 1c1fa821199c707a193efd3bc93c4ac9357bafa0 Author: Sergei Shtylyov Date: Mon Jan 11 00:27:38 2016 +0300 ravb: stop reading ECMR in ravb_emac_init() The code in ravb_emac_init() twiddling the ECMR bits always looked a bit strange to me: if one intends to respect 'priv->duplex', why save old value of the ECMR.DM bit? As all the other bits are zeroed anyway, we don't really need to read ECMR before writing to it. Signed-off-by: Sergei Shtylyov Signed-off-by: David S. Miller drivers/net/ethernet/renesas/ravb_main.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 66530bdf85eb1d72a0c399665e09a2c2298501c6 Author: Jamal Hadi Salim Date: Sun Jan 10 11:47:01 2016 -0500 sched,cls_flower: set key address type when present only when user space passes the addresses should we consider their presence Signed-off-by: Jamal Hadi Salim Acked-by: Jiri Pirko Signed-off-by: David S. Miller net/sched/cls_flower.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 83d15e70c4d8909d722c0d64747d8fb42e38a48f Author: Neal Cardwell Date: Mon Jan 11 13:42:43 2016 -0500 tcp_yeah: don't set ssthresh below 2 For tcp_yeah, use an ssthresh floor of 2, the same floor used by Reno and CUBIC, per RFC 5681 (equation 4). tcp_yeah_ssthresh() was sometimes returning a 0 or negative ssthresh value if the intended reduction is as big or bigger than the current cwnd. Congestion control modules should never return a zero or negative ssthresh. A zero ssthresh generally results in a zero cwnd, causing the connection to stall. A negative ssthresh value will be interpreted as a u32 and will set a target cwnd for PRR near 4 billion. Oleksandr Natalenko reported that a system using tcp_yeah with ECN could see a warning about a prior_cwnd of 0 in tcp_cwnd_reduction(). Testing verified that this was due to tcp_yeah_ssthresh() misbehaving in this way. Reported-by: Oleksandr Natalenko Signed-off-by: Neal Cardwell Signed-off-by: Yuchung Cheng Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/tcp_yeah.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b0500c169b4069e40f03391c7280cd6eaf849e49 Author: Wang Nan Date: Mon Jan 11 13:48:03 2016 +0000 perf test: Reset err after using it hold errcode in hist testcases All hists test cases forget to reset err after using it to hold an error code. If error occure in setup_fake_machine() it incorrectly return TEST_OK. This patch fixes it. Suggested-and-Acked-by: Namhyung Kim Signed-off-by: Wang Nan Cc: Jiri Olsa Cc: Masami Hiramatsu Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1452520124-2073-13-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/hists_cumulate.c | 1 + tools/perf/tests/hists_filter.c | 1 + tools/perf/tests/hists_link.c | 1 + tools/perf/tests/hists_output.c | 1 + 4 files changed, 4 insertions(+) commit 71b3ee7e65ffb48135d875d9c36e3183b9ecffeb Author: Wang Nan Date: Mon Jan 11 13:48:02 2016 +0000 perf test: Fix false TEST_OK result for 'perf test hist' Commit 71d6de64fedd ("perf test: Fix hist testcases when kptr_restrict is on") solves a double free problem when 'perf test hist' calling setup_fake_machine(). However, the result is still incorrect. For example: $ ./perf test -v 'filtering hist entries' 25: Test filtering hist entries : --- start --- test child forked, pid 4186 Cannot create kernel maps test child finished with 0 ---- end ---- Test filtering hist entries: Ok In this case the body of this test is not get executed at all, but the result is 'Ok'. Actually, in setup_fake_machine() there's no need to create real kernel maps. What we want are the fake maps. This patch removes the machine__create_kernel_maps() in setup_fake_machine(), so it won't be affected by kptr_restrict setting. Test result: $ cat /proc/sys/kernel/kptr_restrict 1 $ ~/perf test -v hist 15: Test matching and linking multiple hists : --- start --- test child forked, pid 24031 test child finished with 0 ---- end ---- Test matching and linking multiple hists: Ok [SNIP] Suggested-and-Acked-by: Namhyung Kim Signed-off-by: Wang Nan Tested-by: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Masami Hiramatsu Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1452520124-2073-12-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/hists_common.c | 5 ----- 1 file changed, 5 deletions(-) commit 0c4d40d580752dd7d639208782f71e317b16be67 Author: Wang Nan Date: Mon Jan 11 13:48:01 2016 +0000 tools build: Add BPF feature check to test-all The test-all.c file doesn't check BPF related features. For an environment with all other features enabled, BPF would be considered enabled without doing real feature check. This patch adds test-bpf.c into test-all.c. Signed-off-by: Wang Nan Acked-by: Jiri Olsa Cc: Namhyung Kim Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1452520124-2073-11-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/build/feature/test-all.c | 5 +++++ 1 file changed, 5 insertions(+) commit d5ef3140351450d240f864208317f5665e7bbd1c Author: Naveen N. Rao Date: Mon Jan 11 13:48:00 2016 +0000 perf bpf: Fix build breakage due to libbpf perf build is currently (v4.4-rc5) broken on powerpc: bpf.c:28:4: error: #error __NR_bpf not defined. libbpf does not support your arch. # error __NR_bpf not defined. libbpf does not support your arch. ^ Fix this by including tools/scripts/Makefile.arch for the proper $ARCH macro. While at it, remove redundant LP64 macro definition. Also, since libbpf require $(srctree) now, detect the path of srctree like perf. Signed-off-by: Naveen N. Rao Acked-by: Jiri Olsa Cc: Sukadev Bhattiprolu Cc: Wang Nan Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1452520124-2073-10-git-send-email-wangnan0@huawei.com [Use tools/scripts/Makefile.arch] Signed-off-by: Wang Nan Signed-off-by: Arnaldo Carvalho de Melo tools/lib/bpf/Makefile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 935e6bd310f20d3371ae6bd6f01dd3430a4123b6 Author: Wang Nan Date: Mon Jan 11 13:47:58 2016 +0000 tools: Move Makefile.arch from perf/config to tools/scripts After this patch other directories can use this architecture detector without directly including it from perf's directory. Libbpf would utilize it to get proper $(ARCH) so it can receive correct uapi include directory. Tested-by: Naveen N. Rao Acked-by: Jiri Olsa Cc: Sukadev Bhattiprolu Cc: Zefan Li Cc: pi3orama@163.com Signed-off-by: Wang Nan Link: http://lkml.kernel.org/r/1452520124-2073-8-git-send-email-wangnan0@huawei.com [ Add missing srctree definition in tests/make ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/config/Makefile | 2 +- tools/perf/config/Makefile.arch | 18 ------------------ tools/perf/tests/make | 16 +++++++++++++++- tools/scripts/Makefile.arch | 18 ++++++++++++++++++ 4 files changed, 34 insertions(+), 20 deletions(-) commit 8f9e05fb298f16c0cda2e7e78b603331a79f9c10 Author: Wang Nan Date: Mon Jan 11 13:47:57 2016 +0000 perf tools: Fix PowerPC native building Checks BPF syscall number, turn off libbpf building on platform doesn't correctly support sys_bpf instead of blocking compiling. Reported-and-Tested-by: Naveen N. Rao Signed-off-by: Wang Nan Acked-by: Jiri Olsa Cc: Sukadev Bhattiprolu Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1452520124-2073-7-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/build/feature/test-bpf.c | 20 +++++++++++++++++++- tools/lib/bpf/bpf.c | 4 ++-- 2 files changed, 21 insertions(+), 3 deletions(-) commit 24af98c4cf5f5e69266e270c7f3fb34b82ff6656 Merge: 9061cbe 337f130 Author: Linus Torvalds Date: Mon Jan 11 14:18:38 2016 -0800 Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull locking updates from Ingo Molnar: "So we have a laundry list of locking subsystem changes: - continuing barrier API and code improvements - futex enhancements - atomics API improvements - pvqspinlock enhancements: in particular lock stealing and adaptive spinning - qspinlock micro-enhancements" * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: futex: Allow FUTEX_CLOCK_REALTIME with FUTEX_WAIT op futex: Cleanup the goto confusion in requeue_pi() futex: Remove pointless put_pi_state calls in requeue() futex: Document pi_state refcounting in requeue code futex: Rename free_pi_state() to put_pi_state() futex: Drop refcount if requeue_pi() acquired the rtmutex locking/barriers, arch: Remove ambiguous statement in the smp_store_mb() documentation lcoking/barriers, arch: Use smp barriers in smp_store_release() locking/cmpxchg, arch: Remove tas() definitions locking/pvqspinlock: Queue node adaptive spinning locking/pvqspinlock: Allow limited lock stealing locking/pvqspinlock: Collect slowpath lock statistics sched/core, locking: Document Program-Order guarantees locking, sched: Introduce smp_cond_acquire() and use it locking/pvqspinlock, x86: Optimize the PV unlock code path locking/qspinlock: Avoid redundant read of next pointer locking/qspinlock: Prefetch the next node cacheline locking/qspinlock: Use _acquire/_release() versions of cmpxchg() & xchg() atomics: Add test for atomic operations with _relaxed variants commit c8086f6d88f02aa8c87a71dca75fe5392d7679f7 Author: Jarod Wilson Date: Fri Jan 8 20:35:36 2016 -0500 bonding: make mii_status sysfs node consistent The spew in /proc/net/bonding/bond0 uses netif_carrier_ok() to determine mii_status, while /sys/class/net/bond0/bonding/mii_status looks at curr_active_slave, which doesn't actually seem to be set sometimes when the bond actually is up. A mode 4 bond configured via ifcfg-foo files on a Red Hat Enterprise Linux system, after boot, comes up clean and functional, but the sysfs node shows mii_status of down, while proc shows up. A simple enough fix here seems to be to use the same method for determining up or down in both places, and I'd opt for the one that seems to match reality. CC: Jay Vosburgh CC: Veaceslav Falico CC: Andy Gospodarek CC: netdev@vger.kernel.org Signed-off-by: Jarod Wilson Signed-off-by: David S. Miller drivers/net/bonding/bond_sysfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 649621e3d54439ae232d726d7beef295d3887a68 Author: Marcelo Ricardo Leitner Date: Fri Jan 8 11:00:54 2016 -0200 sctp: fix use-after-free in pr_debug statement Dmitry Vyukov reported a use-after-free in the code expanded by the macro debug_post_sfx, which is caused by the use of the asoc pointer after it was freed within sctp_side_effect() scope. This patch fixes it by allowing sctp_side_effect to clear that asoc pointer when the TCB is freed. As Vlad explained, we also have to cover the SCTP_DISPOSITION_ABORT case because it will trigger DELETE_TCB too on that same loop. Also, there were places issuing SCTP_CMD_INIT_FAILED and ASSOC_FAILED but returning SCTP_DISPOSITION_CONSUME, which would fool the scheme above. Fix it by returning SCTP_DISPOSITION_ABORT instead. The macro is already prepared to handle such NULL pointer. Reported-by: Dmitry Vyukov Signed-off-by: Marcelo Ricardo Leitner Acked-by: Vlad Yasevich Signed-off-by: David S. Miller net/sctp/sm_sideeffect.c | 11 ++++++----- net/sctp/sm_statefuns.c | 17 ++++------------- 2 files changed, 10 insertions(+), 18 deletions(-) commit 3167eea27b27b29d375ee6b34dd83035c04d5da8 Author: Wang Nan Date: Mon Jan 11 13:47:53 2016 +0000 perf tools: Fix phony build target for build-test make_kernelsrc and make_kernelsrc_tools are skiped if a previous build-test is done, because 'make build-test' creates two files with same names. To avoid this, they should be included in .PHONY list. Signed-off-by: Wang Nan Acked-by: Jiri Olsa Cc: Namhyung Kim Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1452520124-2073-3-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/make | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 11dc0c57ba8a935dec5a3240370941a4380721c4 Author: Wang Nan Date: Mon Jan 11 13:47:52 2016 +0000 perf tools: Add -lutil in python lib list for broken python-config On some system the perf-config is broken, causes link failure like this: /usr/lib64/python2.7/config/libpython2.7.a(posixmodule.o): In function `posix_forkpty': /opt/wangnan/yocto-build/tmp-eglibc/work/x86_64-oe-linux/python/2.7.3-r0.3.1/Python-2.7.3/./Modules/posixmodule.c:3816: undefined reference to `forkpty' /usr/lib64/python2.7/config/libpython2.7.a(posixmodule.o): In function `posix_openpty': /opt/wangnan/yocto-build/tmp-eglibc/work/x86_64-oe-linux/python/2.7.3-r0.3.1/Python-2.7.3/./Modules/posixmodule.c:3756: undefined reference to `openpty' collect2: error: ld returned 1 exit status make[1]: *** [/home/wangnan/kernel-hydrogen/tools/perf/out/perf] Error 1 make: *** [all] Error 2 $ python-config --libs -lpthread -ldl -lpthread -lutil -lm -lpython2.7 In this case a '-lutil' should be appended to -lpython2.7. (I know we have --start-group and --end-group. I can see them in command line of collect2 by strace. However it doesn't work. Seems I have a broken environment?) Signed-off-by: Wang Nan Cc: Jiri Olsa Cc: Namhyung Kim Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1452520124-2073-2-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/config/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f9eccf24615672896dc13251410c3f2f33a14f95 Author: Roman Volkov Date: Fri Jan 1 16:24:41 2016 +0300 clocksource/drivers/vt8500: Increase the minimum delta The vt8500 clocksource driver declares itself as capable to handle the minimum delay of 4 cycles by passing the value into clockevents_config_and_register(). The vt8500_timer_set_next_event() requires the passed cycles value to be at least 16. The impact is that userspace hangs in nanosleep() calls with small delay intervals. This problem is reproducible in Linux 4.2 starting from: c6eb3f70d448 ('hrtimer: Get rid of hrtimer softirq') From Russell King, more detailed explanation: "It's a speciality of the StrongARM/PXA hardware. It takes a certain number of OSCR cycles for the value written to hit the compare registers. So, if a very small delta is written (eg, the compare register is written with a value of OSCR + 1), the OSCR will have incremented past this value before it hits the underlying hardware. The result is, that you end up waiting a very long time for the OSCR to wrap before the event fires. So, we introduce a check in set_next_event() to detect this and return -ETIME if the calculated delta is too small, which causes the generic clockevents code to retry after adding the min_delta specified in clockevents_config_and_register() to the current time value. min_delta must be sufficient that we don't re-trip the -ETIME check - if we do, we will return -ETIME, forward the next event time, try to set it, return -ETIME again, and basically lock the system up. So, min_delta must be larger than the check inside set_next_event(). A factor of two was chosen to ensure that this situation would never occur. The PXA code worked on PXA systems for years, and I'd suggest no one changes this mechanism without access to a wide range of PXA systems, otherwise they're risking breakage." Cc: stable@vger.kernel.org Cc: Russell King Acked-by: Alexey Charkov Signed-off-by: Roman Volkov Signed-off-by: Daniel Lezcano drivers/clocksource/vt8500_timer.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit ac36856fe4321454b6789c019c96c3ec854094ed Author: Arnd Bergmann Date: Fri Jan 8 11:59:34 2016 +0100 watchdog: asm9260: remove __init and __exit annotations The probe and release functions in this driver are marked as __init and __exit, but this is wrong as indicated by this Kbuild error message: WARNING: vmlinux.o(.data+0x1d2308): Section mismatch in reference from the variable asm9260_wdt_driver to the function .init.text:asm9260_wdt_probe() This removes the annotations, to make the sysfs unbind attribute and deferred probing work. Signed-off-by: Arnd Bergmann Fixes: aae03dc98177 ("watchdog: add Alphascale asm9260-wdt driver") Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/asm9260_wdt.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 9061cbe62adeccf8c986883bcd40f4aeee59ea75 Merge: ddf1d62 3104fb3 Author: Linus Torvalds Date: Mon Jan 11 13:46:11 2016 -0800 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 changes in this cycle were: - Adding transitivity uniformly to rcu_node structure ->lock acquisitions. (This is implemented by the first two commits on top of v4.4-rc2 due to the pervasive nature of this change.) - Documentation updates, including RCU requirements. - Expedited grace-period changes. - Miscellaneous fixes. - Linked-list fixes, courtesy of KTSAN. - Torture-test updates. - Late-breaking fix to sysrq-generated crash. One thing I should note is that these pieces of documentation are fairly large files: .../RCU/Design/Requirements/Requirements.html | 2897 ++++++++++++++++++++ .../RCU/Design/Requirements/Requirements.htmlx | 2741 ++++++++++++++++++ and are written in HTML, not the usual .txt style. I hope they are fine" Paul McKenney explains the html docs: "For whatever it is worth, the reason for this unconventional choice was that attempts to do the diagrams in ASCII art failed miserably. And attempts to do ASCII art for the upcoming documentation of the data structures failed even more miserably" * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (49 commits) sysrq: Fix warning in sysrq generated crash. list: Add lockless list traversal primitives rcu: Make rcu_gp_init() be bool rather than int rcu: Move wakeup out from under rnp->lock rcu: Fix comment for rcu_dereference_raw_notrace rcu: Don't redundantly disable irqs in rcu_irq_{enter,exit}() rcu: Make cpu_needs_another_gp() be bool rcu: Eliminate unused rcu_init_one() argument rcu: Remove TINY_RCU bloat from pointless boot parameters torture: Place console.log files correctly from the get-go torture: Abbreviate console error dump rcutorture: Print symbolic name for ->gp_state rcutorture: Print symbolic name for rcu_torture_writer_state rcutorture: Remove CONFIG_RCU_USER_QS from rcutorture selftest doc rcutorture: Default grace period to three minutes, allow override rcutorture: Dump stack when GP kthread stalls rcutorture: Flag nonexistent RCU GP kthread rcutorture: Add batch number to script printout Documentation/memory-barriers.txt: Fix ACCESS_ONCE thinko documentation: Update RCU requirements based on expedited changes ... commit ddf1d6238dd13a3bd948e8fcb1109798ef0af49b Merge: 32fb378 764a5c6 Author: Linus Torvalds Date: Mon Jan 11 13:32:10 2016 -0800 Merge branch 'work.xattr' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull vfs xattr updates from Al Viro: "Andreas' xattr cleanup series. It's a followup to his xattr work that went in last cycle; -0.5KLoC" * 'work.xattr' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: xattr handlers: Simplify list operation ocfs2: Replace list xattr handler operations nfs: Move call to security_inode_listsecurity into nfs_listxattr xfs: Change how listxattr generates synthetic attributes tmpfs: listxattr should include POSIX ACL xattrs tmpfs: Use xattr handler infrastructure btrfs: Use xattr handler infrastructure vfs: Distinguish between full xattr names and proper prefixes posix acls: Remove duplicate xattr name definitions gfs2: Remove gfs2_xattr_acl_chmod vfs: Remove vfs_xattr_cmp commit 32fb378437a1d716e72a442237d7ead1f435ecf0 Merge: 19ccb28 fceef39 Author: Linus Torvalds Date: Mon Jan 11 13:13:23 2016 -0800 Merge branch 'work.symlinks' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull vfs RCU symlink updates from Al Viro: "Replacement of ->follow_link/->put_link, allowing to stay in RCU mode even if the symlink is not an embedded one. No changes since the mailbomb on Jan 1" * 'work.symlinks' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: switch ->get_link() to delayed_call, kill ->put_link() kill free_page_put_link() teach nfs_get_link() to work in RCU mode teach proc_self_get_link()/proc_thread_self_get_link() to work in RCU mode teach shmem_get_link() to work in RCU mode teach page_get_link() to work in RCU mode replace ->follow_link() with new method that could stay in RCU mode don't put symlink bodies in pagecache into highmem namei: page_getlink() and page_follow_link_light() are the same thing ufs: get rid of ->setattr() for symlinks udf: don't duplicate page_symlink_inode_operations logfs: don't duplicate page_symlink_inode_operations switch befs long symlinks to page_symlink_operations commit 19ccb28e296d5afa299db1003d37e5d37994d46e Merge: afd2ff9 a7f61e89 Author: Linus Torvalds Date: Mon Jan 11 12:54:03 2016 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull vfs compat_ioctl fixes from Al Viro: "This is basically Jann's patches from last week. I have _not_ included the stuff like switching i2c to ->compat_ioctl() into this one - those need more testing. Ideally I would like fs/compat_ioctl.c shrunk a lot, but that's a separate story" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: compat_ioctl: don't call do_ioctl under set_fs(KERNEL_DS) compat_ioctl: don't pass fd around when not needed compat_ioctl: don't look up the fd twice commit 0254e953537c92df3e7d0176f401a211e944fd61 Author: Guenter Roeck Date: Sun Jan 3 15:11:58 2016 -0800 watchdog: Drop pointer to watchdog device from struct watchdog_device The lifetime of the watchdog device pointer is different from the lifetime of its character device. Remove it entirely to avoid race conditions. Signed-off-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck Documentation/watchdog/watchdog-kernel-api.txt | 2 -- drivers/watchdog/watchdog_core.c | 8 ++++---- drivers/watchdog/watchdog_dev.c | 9 ++++----- include/linux/watchdog.h | 2 -- 4 files changed, 8 insertions(+), 13 deletions(-) commit 2c2f3080de7341f58a5d0e8ea31cc66dd369b8f4 Author: Guenter Roeck Date: Sun Jan 3 15:11:57 2016 -0800 watchdog: ziirave: Use watchdog infrastructure to create sysfs attributes The watchdog core now supports creating driver specific sysfs attributes when creating the watchdog device. Signed-off-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/ziirave_wdt.c | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) commit faa584757b63aad42d19f1c6a6eac2c848618f83 Author: Guenter Roeck Date: Sun Jan 3 15:11:56 2016 -0800 watchdog: Add support for creating driver specific sysfs attributes The Zodiac watchdog driver attaches additional sysfs attributes to the watchdog device. This has a number of problems: The watchdog device lifetime differs from the driver lifetime, and the device structure should therefore not be accessed from drivers. Also, creating sysfs attributes after driver registration results in a potential race condition if user space expects the attributes to exist but they don't exist yet. Add support for creating driver specific sysfs attributes to the watchdog core to solve the problems. Signed-off-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck Documentation/watchdog/watchdog-kernel-api.txt | 3 +++ drivers/watchdog/watchdog_dev.c | 5 +++-- include/linux/watchdog.h | 3 +++ 3 files changed, 9 insertions(+), 2 deletions(-) commit 62cd1c40ce1c7c16835b599751c7a002eb5bbdf5 Author: Tomas Winkler Date: Sun Jan 3 13:32:37 2016 +0200 watchdog: kill unref/ref ops ref/unref ops are not called at all so even marked them as deprecated is misleading, we need to just drop the API. Signed-off-by: Tomas Winkler Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck include/linux/watchdog.h | 2 -- 1 file changed, 2 deletions(-) commit 9ca128a99fa56f006fe6c5801896aea5e00f8479 Author: Fabio Estevam Date: Mon Jan 4 10:30:47 2016 -0200 watchdog: stmp3xxx: Remove unused variables Commit 8d2fa17151ea3 ("watchdog: stmp3xxx: Stop the watchdog on system halt") introduced the following build warning: drivers/watchdog/stmp3xxx_rtc_wdt.c: In function 'wdt_notify_sys': drivers/watchdog/stmp3xxx_rtc_wdt.c:78:29: warning: unused variable 'pdata' [-Wunused-variable] Remove the unused 'pdata' and 'dev' variables. Signed-off-by: Fabio Estevam Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/stmp3xxx_rtc_wdt.c | 3 --- 1 file changed, 3 deletions(-) commit dde7f55bd000696acc38296c21241971e1840142 Merge: 4922be5 7d6a13f Author: Dave Chinner Date: Tue Jan 12 07:04:30 2016 +1100 Merge branch 'xfs-misc-fixes-for-4.5-2' into for-next commit 7d6a13f023567d573ac362502bb702eda716e654 Author: Dave Chinner Date: Tue Jan 12 07:04:01 2016 +1100 xfs: handle dquot buffer readahead in log recovery correctly When we do dquot readahead in log recovery, we do not use a verifier as the underlying buffer may not have dquots in it. e.g. the allocation operation hasn't yet been replayed. Hence we do not want to fail recovery because we detect an operation to be replayed has not been run yet. This problem was addressed for inodes in commit d891400 ("xfs: inode buffers may not be valid during recovery readahead") but the problem was not recognised to exist for dquots and their buffers as the dquot readahead did not have a verifier. The result of not using a verifier is that when the buffer is then next read to replay a dquot modification, the dquot buffer verifier will only be attached to the buffer if *readahead is not complete*. Hence we can read the buffer, replay the dquot changes and then add it to the delwri submission list without it having a verifier attached to it. This then generates warnings in xfs_buf_ioapply(), which catches and warns about this case. Fix this and make it handle the same readahead verifier error cases as for inode buffers by adding a new readahead verifier that has a write operation as well as a read operation that marks the buffer as not done if any corruption is detected. Also make sure we don't run readahead if the dquot buffer has been marked as cancelled by recovery. This will result in readahead either succeeding and the buffer having a valid write verifier, or readahead failing and the buffer state requiring the subsequent read to resubmit the IO with the new verifier. In either case, this will result in the buffer always ending up with a valid write verifier on it. Note: we also need to fix the inode buffer readahead error handling to mark the buffer with EIO. Brian noticed the code I copied from there wrong during review, so fix it at the same time. Add comments linking the two functions that handle readahead verifier errors together so we don't forget this behavioural link in future. cc: # 3.12 - current Signed-off-by: Dave Chinner Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_dquot_buf.c | 36 ++++++++++++++++++++++++++++++------ fs/xfs/libxfs/xfs_inode_buf.c | 2 ++ fs/xfs/libxfs/xfs_quota_defs.h | 2 +- fs/xfs/libxfs/xfs_shared.h | 1 + fs/xfs/xfs_log_recover.c | 9 +++++++-- 5 files changed, 41 insertions(+), 9 deletions(-) commit b79f4a1c68bb99152d0785ee4ea3ab4396cdacc6 Author: Dave Chinner Date: Tue Jan 12 07:03:44 2016 +1100 xfs: inode recovery readahead can race with inode buffer creation When we do inode readahead in log recovery, we do can do the readahead before we've replayed the icreate transaction that stamps the buffer with inode cores. The inode readahead verifier catches this and marks the buffer as !done to indicate that it doesn't yet contain valid inodes. In adding buffer error notification (i.e. setting b_error = -EIO at the same time as as we clear the done flag) to such a readahead verifier failure, we can then get subsequent inode recovery failing with this error: XFS (dm-0): metadata I/O error: block 0xa00060 ("xlog_recover_do..(read#2)") error 5 numblks 32 This occurs when readahead completion races with icreate item replay such as: inode readahead find buffer lock buffer submit RA io .... icreate recovery xfs_trans_get_buffer find buffer lock buffer ..... fails verifier clear XBF_DONE set bp->b_error = -EIO release and unlock buffer icreate initialises buffer marks buffer as done adds buffer to delayed write queue releases buffer At this point, we have an initialised inode buffer that is up to date but has an -EIO state registered against it. When we finally get to recovering an inode in that buffer: inode item recovery xfs_trans_read_buffer find buffer lock buffer sees XBF_DONE is set, returns buffer sees bp->b_error is set fail log recovery! Essentially, we need xfs_trans_get_buf_map() to clear the error status of the buffer when doing a lookup. This function returns uninitialised buffers, so the buffer returned can not be in an error state and none of the code that uses this function expects b_error to be set on return. Indeed, there is an ASSERT(!bp->b_error); in the transaction case in xfs_trans_get_buf_map() that would have caught this if log recovery used transactions.... This patch firstly changes the inode readahead failure to set -EIO on the buffer, and secondly changes xfs_buf_get_map() to never return a buffer with an error state set so this first change doesn't cause unexpected log recovery failures. cc: # 3.12 - current Signed-off-by: Dave Chinner Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_inode_buf.c | 12 +++++++----- fs/xfs/xfs_buf.c | 7 +++++++ 2 files changed, 14 insertions(+), 5 deletions(-) commit 079062b28fb4c58e30d024fdf974e00de53158fd Author: Andy Shevchenko Date: Wed Dec 23 19:37:19 2015 +0200 rtc: cmos: prevent kernel warning on IRQ flags mismatch The Microsoft Surface 3 tablet shares interrupt line between RTC and one of SPI controllers. However, the rtc_cmos driver doesn't allow shared interrupts and user sees the following warning genirq: Flags mismatch irq 8. 00000080 (8086228E:02) vs. 00000000 (rtc0) ... [] pxa2xx_spi_probe+0x151/0x600 [spi_pxa2xx_platform] Allow RTC driver to use shared interrupts. Seems we are on the safe side to do just this simple change since cmos_interrupt() handler checks for the actual hardware status anyway. Signed-off-by: Andy Shevchenko Signed-off-by: Alexandre Belloni drivers/rtc/rtc-cmos.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c4c23f58a96dcce177c996511363b85bf114ae8f Author: Julia Lawall Date: Wed Dec 30 21:59:34 2015 +0100 rtc: rtc-ds2404: constify ds2404_chip_ops structures The ds2404_chip_ops structure is never modified, so declare it as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Alexandre Belloni drivers/rtc/rtc-ds2404.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8ae83b6f76fc74eb6535b9d331a3310a59c32f84 Author: Krzysztof Kozlowski Date: Wed Dec 30 13:47:27 2015 +0900 rtc: s5m: Make register configuration per S2MPS device to remove exceptions Before updating time and alarm the driver must set appropriate mask in UDR register. For that purpose the driver uses common register configuration and a lot of exceptions per device in the code. The exceptions are not obvious, for example except the change in the logic sometimes the fields are swapped (WUDR and AUDR between S2MPS14 and S2MPS15). This leads to quite complicated code. Try to make it more obvious by: 1. Documenting the UDR masks for devices and operations. 2. Adding fields in register configuration structure for each operation (read time, write time and alarm). 3. Splitting the configuration per S2MPS13, S2MPS14 and S2MPS15 thus removing exceptions for them. Signed-off-by: Krzysztof Kozlowski Reviewed-by: Alim Akhtar Tested-by: Alim Akhtar Acked-by: Lee Jones Signed-off-by: Alexandre Belloni drivers/rtc/rtc-s5m.c | 110 +++++++++++++++++++++++++++------------- include/linux/mfd/samsung/rtc.h | 2 + 2 files changed, 77 insertions(+), 35 deletions(-) commit 67a6025a77be7c6bcb4baeb9424509fcb4ca1e32 Author: Krzysztof Kozlowski Date: Wed Dec 30 13:47:26 2015 +0900 rtc: s5m: Add separate field for storing auto-cleared mask in register config Some devices from S2M/S5M family use different register update masks for different operations (alarm and register update). Now the driver uses common register configuration and a lot of exceptions per device in code. Before eliminating the exceptions and using specific register configuration for given device, make the auto-cleared mask a separate field. This is merely a refactoring. Signed-off-by: Krzysztof Kozlowski Reviewed-by: Alim Akhtar Tested-by: Alim Akhtar Signed-off-by: Alexandre Belloni drivers/rtc/rtc-s5m.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit a83a793ad433d24f67aba4d88169235379004235 Author: Krzysztof Kozlowski Date: Wed Dec 30 13:47:25 2015 +0900 rtc: s5m: Cleanup by removing useless 'rtc' prefix from fields Remove the 'rtc' prefix from some of the fields in struct s5m_rtc_reg_config because it is obvious - this is a RTC driver. No functional changes. Signed-off-by: Krzysztof Kozlowski Reviewed-by: Alim Akhtar Tested-by: Alim Akhtar Signed-off-by: Alexandre Belloni drivers/rtc/rtc-s5m.c | 40 +++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 21 deletions(-) commit f571287bda5390751ab4e4d5e3f54fa2d1788667 Author: LABBE Corentin Date: Thu Dec 17 14:11:04 2015 +0100 rtc: Replace simple_strtoul by kstrtoul The simple_strtoul function is obsolete. This patch replace it by kstrtoul. Since kstrtoul is more strict, it permits to filter some invalid input that simple_strtoul accept. For example: echo '1022xxx' > /sys/devices/pnp0/00:03/rtc/rtc0/max_user_freq cat /sys/devices/pnp0/00:03/rtc/rtc0/max_user_freq 1022 Signed-off-by: LABBE Corentin Signed-off-by: Alexandre Belloni drivers/rtc/rtc-sysfs.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 718a820a303ca60645ab703451ecfebf045c896b Author: Alexandre Belloni Date: Thu Dec 17 00:36:22 2015 +0100 rtc: abx80x: add alarm support Add alarm support to the abx80x driver. Signed-off-by: Alexandre Belloni drivers/rtc/rtc-abx80x.c | 145 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 141 insertions(+), 4 deletions(-) commit fca733a14ea549dbc4f759578704c48f5fb0ab45 Author: Alexandre Belloni Date: Thu Dec 17 00:36:21 2015 +0100 rtc: abx80x: Add Microcrystal rv1805 support Microcrystal RV-1805 is compatible with Abracon 1805. Signed-off-by: Alexandre Belloni drivers/rtc/rtc-abx80x.c | 1 + 1 file changed, 1 insertion(+) commit 7432a850b5139b24b9288416a2ae796e4da295d6 Author: Julia Lawall Date: Fri Dec 11 18:50:50 2015 +0100 rtc: v3020: constify v3020_chip_ops structures The v3020_chip_ops structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Alexandre Belloni drivers/rtc/rtc-v3020.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 78ef5f2d2d8c9234d80b4e01e8b736e7241cd5ce Author: Gregory CLEMENT Date: Fri Dec 11 12:43:05 2015 +0100 rtc: rv8803: Extend compatibility with the rx8900 The Seiko Epson's RTC RX8900 layout register is compatible with the RV8803. So let's add its ID in order to reuse the same driver. Signed-off-by: Gregory CLEMENT Signed-off-by: Alexandre Belloni drivers/rtc/rtc-rv8803.c | 1 + 1 file changed, 1 insertion(+) commit 68c85f2916222b15556ca44e2da0ee94f61f02da Author: Andrzej Hajda Date: Thu Dec 10 08:55:33 2015 +0100 rtc: rv8803: fix handling return value of i2c_smbus_read_byte_data The function can return negative values, so its result should be assigned to signed variable. 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 Signed-off-by: Alexandre Belloni drivers/rtc/rtc-rv8803.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ed13d89b08e392cd347aaa54ddc17f7d3e26b175 Author: Akshay Bhat Date: Thu Dec 3 14:41:21 2015 -0500 rtc: Add Epson RX8010SJ RTC driver This driver supports the following functions: - reading and setting time - alarms when connected to an IRQ - reading and clearing the voltage low flags Datasheet: http://www.epsondevice.com/docs/qd/en/DownloadServlet?id=ID000956 Signed-off-by: Akshay Bhat Signed-off-by: Alexandre Belloni drivers/rtc/Kconfig | 10 + drivers/rtc/Makefile | 1 + drivers/rtc/rtc-rx8010.c | 523 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 534 insertions(+) commit 529af7d1982562eafdc01760d44d990c7e3dcd82 Author: Vladimir Zapolskiy Date: Wed Dec 2 08:10:28 2015 +0200 rtc: lpc32xx: remove irq > NR_IRQS check from probe() If the driver is used on an ARM platform with SPARSE_IRQ defined, semantics of NR_IRQS is different (minimal value of virtual irqs) and by default it is set to 16, see arch/arm/include/asm/irq.h. This value may be less than the actual number of virtual irqs, which may break the driver initialization. The check removal allows to use the driver on such a platform, and, if irq controller driver works correctly, the check is not needed on legacy platforms. Fixes a runtime problem: rtc-lpc32xx 40024000.rtc: Can't get interrupt resource Signed-off-by: Vladimir Zapolskiy Signed-off-by: Alexandre Belloni drivers/rtc/rtc-lpc32xx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d5878a869fe8c272d3a843a47ef0716c91ba3e25 Author: Colin Ian King Date: Sat Nov 28 16:38:40 2015 +0000 rtc: imxdi: fix spelling mistake in warning message Minor issue, fix spelling mistake, happend -> happened Signed-off-by: Colin Ian King Signed-off-by: Alexandre Belloni drivers/rtc/rtc-imxdi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9c25a106c0dfc1656a147663c353e3805e6165da Author: Rasmus Villemoes Date: Tue Nov 24 14:51:24 2015 +0100 rtc: ds1685: don't try to micromanage sysfs output size ...and don't do it wrong. "not ok or N/A" has length 13. Add the trailing newline, and the snprintf return value will be 14. However, we lied to snprintf and told it that only 13 bytes were available. Hence snprintf has only written "not ok or N/" and a trailing '\0' to the buffer. Next we continue lying, this time to the upper sysfs layer, claiming that we wrote 14 meaningful bytes to the buffer. That'll make the upper layer copy "not ok or N/" plus two nul bytes to user space (one nul byte from snprintf, the other since sysfs takes care to clear the buffer before giving it to the ->show method). In the other cases, the claimed buffer size is closer to sufficient, but we'll still get a nul byte instead of a newline written to user space. There's absolutely no reason to try to predict the output size, and there's plenty of room in the buffer, so just use sprintf. Signed-off-by: Rasmus Villemoes Signed-off-by: Alexandre Belloni drivers/rtc/rtc-ds1685.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) commit ff67abd236ca7b65ea632f476f0f0cfc83aea711 Author: Rasmus Villemoes Date: Tue Nov 24 14:51:23 2015 +0100 rtc: use %ph for short hex dumps This makes the generated code slightly smaller. Signed-off-by: Rasmus Villemoes Signed-off-by: Alexandre Belloni drivers/rtc/rtc-ds1305.c | 8 ++------ drivers/rtc/rtc-ds1307.c | 17 ++++------------- drivers/rtc/rtc-ds1685.c | 12 +++++------- 3 files changed, 11 insertions(+), 26 deletions(-) commit 2ad2c17480b6208a35a4ffb937effe0ba1ed39de Author: Enrico Scholz Date: Fri Nov 27 13:02:55 2015 +0100 rtc: da9063: avoid writing undefined data to rtc driver did | static void da9063_tm_to_data(struct rtc_time *tm, u8 *data, | { | const struct da9063_compatible_rtc_regmap *config = rtc->config; | | data[RTC_SEC] &= ~config->rtc_count_sec_mask; | data[RTC_SEC] |= tm->tm_sec & config->rtc_count_sec_mask; | ... | } | ... | static int da9063_rtc_set_time(struct device *dev, struct rtc_time *tm) | { | ... | u8 data[RTC_DATA_LEN]; | int ret; | | da9063_tm_to_data(tm, data, rtc); which means that some bits of stack content (in 'data[]') was masked out and written to the RTC. Because da9063_tm_to_data() is used only by da9063_rtc_set_time() and da9063_rtc_set_alarm(), we can write fields directly. Signed-off-by: Enrico Scholz Acked-by: Steve Twiss Tested-by: Steve Twiss Signed-off-by: Alexandre Belloni drivers/rtc/rtc-da9063.c | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) commit 4d833d601332b00a1ef5f0249e97481d02f3ad02 Author: LABBE Corentin Date: Thu Nov 19 11:50:10 2015 +0100 rtc: sunxi: use of_device_get_match_data The usage of of_device_get_match_data reduce the code size a bit. Signed-off-by: LABBE Corentin Acked-by: Chen-Yu Tsai Signed-off-by: Alexandre Belloni drivers/rtc/rtc-sunxi.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 6ddab92faa2d7d7b38cb2b228f7fdfd1eecba5e2 Author: LABBE Corentin Date: Thu Nov 19 11:50:09 2015 +0100 rtc: sunxi: constify the data_year_param structure The data_year_param struct is never modified, so lets constify it. This permit to remove cast since of_device_id is const also. Signed-off-by: LABBE Corentin Acked-by: Chen-Yu Tsai Signed-off-by: Alexandre Belloni drivers/rtc/rtc-sunxi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit f8947feb2c0196dafa7683f557eb8dddfb1ae167 Author: LABBE Corentin Date: Thu Nov 19 11:50:08 2015 +0100 rtc: sunxi: fix signedness issues The variable year must be set as unsigned since it is used with sunxi_rtc_data_year{.min|.max} and as parameter of is_leap_year() which wait for unsigned int. Only tm_year is not unsigned, but it is long. This patch fix also the format of printing of min/max. (must use %u since they are unsigned) The parameter to of sunxi_rtc_setaie() must be set to uint since callers give always uint data. Signed-off-by: LABBE Corentin Acked-by: Chen-Yu Tsai Signed-off-by: Alexandre Belloni drivers/rtc/rtc-sunxi.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 3fc2c14acaf925768db37cf439c628bfa71dff09 Author: Nizam Haider Date: Sat Nov 14 01:51:29 2015 +0530 rtc: gemini: Remove unnecessary platform_set_drvdata() The driver core clears the driver data to NULL after device_release or on probe failure Signed-off-by: Nizam Haider Acked-by: Hans Ulli Kroll Signed-off-by: Alexandre Belloni drivers/rtc/rtc-gemini.c | 1 - 1 file changed, 1 deletion(-) commit 501385f2a783c0a6cc52c8b984892c57175857f9 Author: Geliang Tang Date: Sat Nov 7 12:00:22 2015 +0800 rtc: efi: add efi_procfs in efi_rtc_ops Add efi_procfs in efi_rtc_ops to show rtc-efi info in /proc/driver/rtc. Most of the code comes from efi_rtc_proc_show() in efirtc. Signed-off-by: Geliang Tang Signed-off-by: Alexandre Belloni drivers/rtc/rtc-efi.c | 66 +++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 62 insertions(+), 4 deletions(-) commit b01079be449b895913ce17a47933820af708d5dd Author: Geliang Tang Date: Sat Nov 7 12:00:21 2015 +0800 rtc: fix module reference count in rtc-proc rtc-proc.c is not built as a module. Thus, rather than dealing with THIS_MODULE's reference count, we should deal with rtc->owner's reference count. Signed-off-by: Geliang Tang Signed-off-by: Alexandre Belloni drivers/rtc/rtc-proc.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit fbbf53f70225c82ba877de780486be5bc81b29e2 Author: Uwe Kleine-König Date: Fri Nov 6 17:37:56 2015 +0100 rtc: pcf8523: refuse to write dates later than 2099 When the chip increments the YEAR register and it already holds bin2bcd(99) it reads as 0 afterwards. With this behaviour the last valid day (without trickery) that has a representation is 2099-12-31 23:59:59. So refuse to write later dates. Signed-off-by: Uwe Kleine-König Signed-off-by: Alexandre Belloni drivers/rtc/rtc-pcf8523.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit c60faa3afad0e926e63a39894489b64e9a8165df Merge: afd2ff9 a65e5ef Author: Alexandre Belloni Date: Mon Jan 11 20:19:40 2016 +0100 Merge tag 'ib-mfd-regulator-rtc-v4.5' into rtc-next Immutable branch between MFD, Regulator and RTC for the v4.5 merge window commit 03724ac3d48f8f0e3caf1d30fa134f8fd96c94e2 Author: Daniel Lezcano Date: Fri Jan 8 14:21:31 2016 +0100 clocksource/drivers/fsl_ftm_timer: Fix CLKSRC_MMIO dependency Select CLKSRC_MMIO when FSL_FTM_TIMER is enabled. Otherwise it fails to compile on i386 with COMPILE_TEST=y. " on i386: when CLKSRC_MMIO is not enabled: drivers/built-in.o: In function `ftm_timer_init': fsl_ftm_timer.c:(.init.text+0x6842): undefined reference to `clocksource_mmio_readl_up' fsl_ftm_timer.c:(.init.text+0x6855): undefined reference to `clocksource_mmio_init' " Reported-by: Randy Dunlap Signed-off-by: Daniel Lezcano drivers/clocksource/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 863ee050726b67db82869e8e4221a7385a28b067 Author: Richard Weinberger Date: Sat Jan 2 23:06:36 2016 +0100 clocksource/drivers: Fix dependencies for !HAS_IOMEM archs Not every arch has io memory. So, unbreak the build by fixing the dependencies. Signed-off-by: Richard Weinberger Signed-off-by: Daniel Lezcano drivers/clocksource/Kconfig | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 815ad8623695c7f2aafc216b923b131f1ee12df6 Merge: 56f2701 d0021d3 Author: Takashi Iwai Date: Mon Jan 11 16:24:58 2016 +0100 Merge tag 'asoc-v4.4-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next ASoC: Last updates for v4.5 A bunch more updates for v4.5, mainly driver work: - More topology API enhancements from Mengdong Lin working towards making everything more component based and being able to specify PCM links via topology. - Large sets driver updates from Cirrus, Intel (mainly more Skylake support) and Renesas. - New driver for AMD ACP - Rename PCM1792a driver to be generic pcm179x commit cabeea980879c2c701b0bd03f145c9f7dae17a63 Merge: 4f95307 47284e3 f05ca85 9d0c1c3 Author: Mark Brown Date: Mon Jan 11 16:48:38 2016 +0000 Merge remote-tracking branches 'spi/topic/sun4i', 'spi/topic/topcliff-pch' and 'spi/topic/zynq' into spi-next commit 4f9530705b7b9c977044accb035682d9f7df1cdd Merge: 41d5a70 bd6c164 d599af6 cc023478 ec7f9eb edd3899 Author: Mark Brown Date: Mon Jan 11 16:48:35 2016 +0000 Merge remote-tracking branches 'spi/topic/overlay', 'spi/topic/pxa2xx', 'spi/topic/s3c64xx', 'spi/topic/sh-msiof' and 'spi/topic/spidev' into spi-next commit 41d5a700514f133991db0d9d135e597b88b09775 Merge: 635b9b2 22de54a 8caad1d 15bcdefd 2f538c0 Author: Mark Brown Date: Mon Jan 11 16:48:33 2016 +0000 Merge remote-tracking branches 'spi/topic/lm70llp', 'spi/topic/loopback', 'spi/topic/mtk' and 'spi/topic/omap2-mcspi' into spi-next commit 635b9b2e6e177ff582afc9a629a3ea105158b98a Merge: 3c27892 6096828 4fe338c b541eef bf9af08 Author: Mark Brown Date: Mon Jan 11 16:48:31 2016 +0000 Merge remote-tracking branches 'spi/topic/dw', 'spi/topic/dw-mid', 'spi/topic/fsl-espi' and 'spi/topic/imx' into spi-next commit 3c2789239aaa9f999ea7319abe2dcf0042546e9b Merge: 9b17e80 4dde99b 1d3029c 9033a5f 21c015b Author: Mark Brown Date: Mon Jan 11 16:48:30 2016 +0000 Merge remote-tracking branches 'spi/topic/bcm63xx', 'spi/topic/butterfly', 'spi/topic/cadence' and 'spi/topic/davinci' into spi-next commit 9b17e80150f8c6300b49e5f073a9a28dae2299fb Merge: 174c211 218e0b5 Author: Mark Brown Date: Mon Jan 11 16:48:29 2016 +0000 Merge remote-tracking branch 'spi/topic/sunxi' into spi-next commit 174c21163d83f730f7e0194d4682d5149946a7f8 Merge: f30f072 d1eba93 Author: Mark Brown Date: Mon Jan 11 16:48:29 2016 +0000 Merge remote-tracking branch 'spi/topic/core' into spi-next commit f30f072a5f3c0b2b5aa0ab8a6ed6482fdf581d17 Merge: 1683098 de327e4 Author: Mark Brown Date: Mon Jan 11 16:48:27 2016 +0000 Merge remote-tracking branch 'spi/fix/mtk' into spi-linus commit 988f1f576d4f7531cb2175ee1b7cb7afd6d95d22 Merge: b28cf57 8cdc7c5 Author: Chris Mason Date: Mon Jan 11 08:39:28 2016 -0800 Merge branch 'for-chris-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/fdmanana/linux into for-linus-4.5 Signed-off-by: Chris Mason commit f5f76ea75dce553631ffb08abc44dcecb68e74d4 Author: Srinivas Kandagatla Date: Mon Jan 11 15:17:23 2016 +0000 ASoC: qcom: use correct device pointer in dma allocation dev pointer in struct snd_soc_pcm_runtime does not have dma_ops set. In v4.4 kernel dma_ops would end up pointing to dummy_dma_ops in such cases. So attempting to use such device in allocating coherent memory on aarch64 would fail. According to commit 1dccb598df549d892b6450c261da54cdd7af44b4 ("arm64: simplify dma_get_ops") The current behavior of dma_get_ops is to fall back to the global dma_ops when a device has not set its own dma_ops, but only for DT based systems. So, this patch fixes the driver to use correct device pointer while allocating coherent memory, and also deletes un-necessary dma_mask setup on soc_runtime->dev. Without this patch lpass driver would fail with below log: ... [ 6.541542] ADV7533: lpass_platform_alloc_buffer: Could not allocate DMA buffer [ 6.541914] apq8016-lpass-cpu 7708000.lpass-cpu: ASoC: pcm constructor failed: -12 [ 6.548216] qcom-apq8016-sbc 7702000.sound: ASoC: can't create pcm ADV7533 :-12 [ 6.555581] qcom-apq8016-sbc 7702000.sound: ASoC: failed to instantiate card -12 [ 6.566072] qcom-apq8016-sbc: probe of 7702000.sound failed with error -12 ... Signed-off-by: Srinivas Kandagatla Signed-off-by: Mark Brown sound/soc/qcom/lpass-platform.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) commit a193f07d1e3cda30513914b1e88967419a9dbd8c Author: Hans-Christian Egtvedt Date: Wed Jan 6 09:10:47 2016 +0100 avr32: wire up missing syscalls This patch adds three missing syscalls to AVR32: __NR_userfaultfd __NR_membarrier __NR_mlock2 Signed-off-by: Hans-Christian Egtvedt arch/avr32/include/uapi/asm/unistd.h | 3 +++ arch/avr32/kernel/syscall_table.S | 3 +++ 2 files changed, 6 insertions(+) commit 6067a0037ccad272e9697098ba9a5c9c3e109b70 Author: Mans Rullgard Date: Tue Jan 5 21:21:45 2016 +0000 avr32: wire up accept4 syscall The accept4 syscall is missing on AVR32. Fix this. Signed-off-by: Mans Rullgard Acked-by: Hans-Christian Noren Egtvedt arch/avr32/include/uapi/asm/unistd.h | 1 + arch/avr32/kernel/syscall_table.S | 1 + 2 files changed, 2 insertions(+) commit 3238ba01c235e3e9e12fc7bc6ac3f7d513e26a31 Author: Jiri Olsa Date: Mon Jan 11 11:54:51 2016 +0100 perf tools: Add missing sources to perf's MANIFEST Adding missing bitmap.[ch] sources to the MANIFEST file. Fixes building 'make perf-*-src-pkg' generated tarballs. Reported-by: Wang Nan Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Fixes: 915b0882c310 ("tools lib: Move bitmap.[ch] from tools/perf/ to tools/{lib,include}/") Link: http://lkml.kernel.org/r/1452509693-13452-5-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/MANIFEST | 2 ++ 1 file changed, 2 insertions(+) commit 24ee9b57b95fd4d6d0b89a47c3a8f1b145569d18 Author: Jiri Olsa Date: Mon Jan 11 11:54:50 2016 +0100 tools lockdep: Add *.cmd files clean up Add *.cmd files to be removed within clean target. Reported-by: Arnaldo Carvalho de Melo Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/1452509693-13452-4-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/lib/lockdep/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 22992a320807f8eb04b48407715aacbdedb00941 Author: Jiri Olsa Date: Mon Jan 11 11:54:49 2016 +0100 tools bpf: Add *.cmd files clean up Add *.cmd files to be removed within clean target. Reported-and-Tested-by: Arnaldo Carvalho de Melo Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/1452509693-13452-3-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/lib/bpf/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2f5a7f1d13df94b753794b69cc4c920f8bfb2128 Author: Jiri Olsa Date: Mon Jan 11 11:54:48 2016 +0100 tools: Add clean targets for tools directory Adding missing clean targets for following tools directories: lib/bpf lib/subcmd build This are now cleaned via 'make -C tools clean' command. Reported-and-Tested-by: Arnaldo Carvalho de Melo Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/1452509693-13452-2-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/Makefile | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 8c874cc140d667f84ae4642bb5b5e0d6396d2ca4 Author: Dave Jiang Date: Fri Jan 8 09:51:05 2016 -0700 NTB: Address out of DMA descriptor issue with NTB The transport right now does not handle the case where we run out of DMA descriptors. We just fail when we do not succeed. Adding code to retry for a bit attempting to use the DMA engine instead of instantly fail to CPU copy. Signed-off-by: Dave Jiang Reviewed-by: Allen Hubbe Signed-off-by: Jon Mason drivers/ntb/ntb_transport.c | 48 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 41 insertions(+), 7 deletions(-) commit 3d7b75fdae9c81dd71c7573dbc285af90e0924fa Author: Lukas Wunner Date: Mon Jan 11 00:08:35 2016 +0100 apple-gmux: Add initial documentation Document what I've learned so far about the gmux so that we can collaboratively reverse-engineer its remaining unknown bits without everyone having to start from scratch. The DOC sections are bound together in the gpu.tmpl DocBook under a new vga_switcheroo "Handlers" chapter. Eventually this should be amended with documentation about the four other handlers that exist so far (nouveau v1 DSM, nouveau Optimus DSM, radeon ATPX, amdgpu ATPX). Requires kernel-doc with asciidoc support. The EFI variable was reverse-engineered by Bruno Bierbaumer and Andreas Heider . Some of the remaining open questions: * How are vblank intervals synchronized on retinas to achieve seamless switching? Is the DP mux capable of this? It's not mentioned in the data sheets. Or is it done at the OS level, i.e. do we have to synchronize vblank intervals between DRM drivers? There's a signal coming from the panel connector and going into gmux, could this be the vblank signal as received by the panel to properly time the switch? * On retinas there's an I2C bus between gmux and the connector of the right I/O board, apparently leading to the Parade PS8401A HDMI repeater. What is this for, is it controlled via gmux registers? Data sheet: http://www.paradetech.com/products/jitter-cleaning-repeaters/ps8401/ * On retinas there's an I2C bus between gmux and the LED driver. Pre-retinas connected the LED driver to SMBUS. Are there additional gmux registers on retinas to control it? * The MacPro6,1 2013 also has a gmux, the same Renesas R4F2113 as the retina MacBook Pro. The Mac Pro doesn't have a built-in display, so what is its purpose? Power control of the dual FirePro GPUs? Switching of the external DP/Thunderbolt ports? The iFixit teardown clearly shows one TI HD3SS212 DisplayPort mux on the logic board next to one of the three Thunderbolt controllers. However six muxes would be necessary to switch all six ports between GPUs. The mux is probably necessary for one of the display configurations allowed by Apple, but which one? https://www.ifixit.com/Teardown/Mac+Pro+Late+2013+Teardown/20778 https://d3nevzfk7ii3be.cloudfront.net/igi/fELBTnt31QhnDsqq.huge https://support.apple.com/en-us/HT202801 * Registers we haven't decoded yet: 0x700 32 Bit configmap? 0x708 32 Bit power sequence? 0x712 8 Bit status of clock from panel on retinas? 0x713 8 Bit dito? 0x724 16 Bit backlight, raw value? 0x760 32 Bit backlight 0x764 32 Bit backlight 0x768 8 Bit backlight 0x76a 16 Bit backlight 0x76c 16 Bit backlight 0x76e 16 Bit backlight 0x77f edp/dp/hdmi probe? retina only. * Addition by Bruno Prémont : "Missing is also precise knowledge as to what the gmux depends on. From behavioral reports, it is somehow sensitive to VGA IO/MEM routing (it apparently needs the routing to go to integrated GPU, not discrete GPU). When the routing is inappropriate backlight control IO just reads back as 0xFF (and eventually gmux IO in general does so)." Signed-off-by: Lukas Wunner Acked-by: Darren Hart Link: http://patchwork.freedesktop.org/patch/msgid/da309e436fbeac886477d80376457b7d83ea4b2d.1452431795.git.lukas@wunner.de Signed-off-by: Daniel Vetter Documentation/DocBook/gpu.tmpl | 22 ++++++++ drivers/platform/x86/apple-gmux.c | 113 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 135 insertions(+) commit 5f2323658e4829ffb893553297e64795a90cbcd9 Author: Alex Deucher Date: Fri Nov 6 01:29:08 2015 -0500 drm/amdgpu: add irq domain support Hardware blocks on the GPU like ACP generate interrupts in the GPU interrupt controller, but are driven by a separate driver. Add an irq domain to the GPU driver so that blocks like ACP can register a Linux interrupt. Acked-by: Dave Airlie Acked-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 108 +++++++++++++++++++++++++++++--- drivers/gpu/drm/amd/amdgpu/amdgpu_irq.h | 9 +++ drivers/gpu/drm/amd/amdgpu/cik_ih.c | 6 ++ drivers/gpu/drm/amd/amdgpu/cz_ih.c | 7 +++ drivers/gpu/drm/amd/amdgpu/iceland_ih.c | 7 +++ drivers/gpu/drm/amd/amdgpu/tonga_ih.c | 7 +++ 6 files changed, 136 insertions(+), 8 deletions(-) commit ba228ac8f512c9cd09cb4245c424ab1632da0c24 Author: Alex Deucher Date: Wed Dec 23 11:25:43 2015 -0500 drm/amdgpu/cgs: add an interface to access PCI resources This provides an interface to get access to the base address of PCI resources (MMIO, DOORBELL, etc.). Only MMIO and DOORBELL are implemented right now. This is necessary to properly utilize shared drivers on platform devices. IP modules can use this interface to get the base address of the resource and add any additional offset and set the size when setting up the platform driver(s). Acked-by: Dave Airlie Acked-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 36 ++++++++++++++++++++++++++++++++ drivers/gpu/drm/amd/include/cgs_common.h | 34 ++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) commit 703872c2c53b57ac14563e64c2df086ef57690f9 Author: Dave Jiang Date: Thu Nov 19 14:00:54 2015 -0700 NTB: Clear property bits in BAR value The lower bits read from a BAR register will contain property bits that we do not care about. Clear those so that we can use the BAR values for limit and xlat registers. Reported-by: Conrad Meyer Signed-off-by: Dave Jiang Signed-off-by: Jon Mason drivers/ntb/hw/intel/ntb_hw_intel.c | 4 ++-- drivers/ntb/hw/intel/ntb_hw_intel.h | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) commit 179f912a39ac192d2281ecb10a66918ee20f5d73 Author: Jon Mason Date: Fri Dec 18 13:22:37 2015 -0500 NTB: ntb_process_tx error path bug The transmit overrun avoidance error path in ntb_process_tx accidentally swapped the first two values being passed to the tx_handler client. This could result in crashes in the ntb_netdev (or other out-of-tree NTB clients). Reported-by: Alex Depoutovitch Signed-off-by: Jon Mason drivers/ntb/ntb_transport.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 581d9434aa56b465c5abd82caf18937e9973ca42 Author: Phil Edworthy Date: Tue Jan 5 13:00:31 2016 +0000 PCI: rcar: Add Gen2 PHY setup to pcie-rcar For PCIe compliance, the PHY registers need setting as per the manual. Signed-off-by: Phil Edworthy Signed-off-by: Bjorn Helgaas Reviewed-by: Wolfram Sang drivers/pci/host/pcie-rcar.c | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) commit de1be9a8897cb35bee7617da8b6ddd7d144db332 Author: Phil Edworthy Date: Tue Jan 5 13:00:30 2016 +0000 PCI: rcar: Add runtime PM support to pcie-rcar If runtime PM is enabled in the kernel config, simply enable the clocks once during probe. Signed-off-by: Phil Edworthy Signed-off-by: Bjorn Helgaas Acked-by: Wolfram Sang drivers/pci/host/pcie-rcar.c | 44 ++++++++++++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 12 deletions(-) commit 67de2dc34cc30d334cb66ab4f466e80f04d5b618 Author: Bjorn Helgaas Date: Tue Jan 5 15:56:30 2016 -0600 PCI: designware: Make config accessor override checking symmetric Drivers based on the DesignWare core can override the config read accessors by supplying rd_own_conf() and rd_other_conf() function pointers. dw_pcie_rd_conf() calls dw_pcie_rd_own_conf() (for accesses to the root bus) or dw_pcie_rd_other_conf(): dw_pcie_rd_conf dw_pcie_rd_own_conf # if on root bus dw_pcie_rd_other_conf # if not on root bus Previously we checked for rd_other_conf() directly in dw_pcie_rd_conf(), but we checked for rd_own_conf() in dw_pcie_rd_own_conf(). Check for rd_other_conf() in dw_pcie_rd_other_conf() to make this symmetric with the rd_own_conf() checking, and similarly for the write path. No functional change intended. Signed-off-by: Bjorn Helgaas Acked-by: Pratyush Anand drivers/pci/host/pcie-designware.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit be0270ec89e6b9b49de7e533dd1f3a89ad34d205 Author: Mauro Carvalho Chehab Date: Mon Dec 28 12:03:47 2015 -0200 [media] Postpone the addition of MEDIA_IOC_G_TOPOLOGY There are a few discussions left with regards to this ioctl: 1) the name of the new structs will contain _v2_ on it? 2) what's the best alternative to avoid compat32 issues? Due to that, let's postpone the addition of this new ioctl to the next Kernel version, to give people more time to discuss it. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/v4l/media-ioc-g-topology.xml | 3 +++ drivers/media/media-device.c | 7 ++++++- include/uapi/linux/media.h | 6 +++++- 3 files changed, 14 insertions(+), 2 deletions(-) commit 4058937a40f73d46502f6042f87bc90f99bc36fe Author: Julia Lawall Date: Mon Jan 11 08:22:36 2016 -0600 PCI: ibmphp: Remove unneeded NULL test Remove unneeded NULL test. The index variable of list_for_each_entry is never NULL, as it is the structure that contains the list pointer. Generated by: scripts/coccinelle/iterators/itnull.cocci Signed-off-by: Fengguang Wu Signed-off-by: Julia Lawall Signed-off-by: Bjorn Helgaas CC: Geliang Tang drivers/pci/hotplug/ibmphp_core.c | 3 --- 1 file changed, 3 deletions(-) commit ce084d487c8a0731bff5739e735b7bb82b94e53b Author: Mauro Carvalho Chehab Date: Wed Dec 30 11:09:39 2015 -0200 [media] mxl111sf: Add a tuner entity While mxl111sf may have multiple frontends, it has just one tuner. Reflect that on the media graph. Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/dvbdev.h | 6 ++++++ drivers/media/usb/dvb-usb-v2/mxl111sf.c | 20 ++++++++++++++++++++ drivers/media/usb/dvb-usb-v2/mxl111sf.h | 5 +++++ 3 files changed, 31 insertions(+) commit a0cce2a05756c9308f59c0303afe2c199e0789b0 Author: Mauro Carvalho Chehab Date: Wed Dec 30 10:11:53 2015 -0200 [media] dvbdev: create links on devices with multiple frontends Devices like mxl111sf-based WinTV Aero-m have multiple frontends, all linked on the same demod. Currently, the dvb_create_graph() function is not smart enough to create multiple links. Fix it. Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/dvbdev.c | 57 +++++++++++++++++++++++++++++++---------- drivers/media/dvb-core/dvbdev.h | 7 +++++ 2 files changed, 51 insertions(+), 13 deletions(-) commit b01cc9ce7c13e0463575332dfa3171727f706afb Author: Mauro Carvalho Chehab Date: Wed Dec 30 09:45:48 2015 -0200 [media] media-entitiy: add a function to create multiple links Sometimes, it is desired to create 1:n and n:1 or even n:n links between different entities with the same function. This is actually needed to support DVB devices that have multiple frontends. While we could do a function like that internally at the DVB core, such function is generic enough to be at media-entity, and it could be useful on some other places. So, add such function. Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 65 ++++++++++++++++++++++++++++++++++++++++++++ include/media/media-entity.h | 51 ++++++++++++++++++++++++++++++++++ 2 files changed, 116 insertions(+) commit 33c6853347c13b7cf8d11c12714cd855a84bc992 Author: Mauro Carvalho Chehab Date: Tue Dec 29 16:45:21 2015 -0200 [media] dvb-usb-v2: postpone removal of media_device We should not remove the media_device until its last usage, or we may have use after free troubles. So, move the per-adapter media_device removal to happen at the end of the adapter removal code. Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/dvb-usb-v2/dvb_usb_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0230d60e4661d9ced6fb0b9a30f182ebdafbba7a Author: Mauro Carvalho Chehab Date: Tue Dec 29 11:52:23 2015 -0200 [media] dvbdev: Add RF connector if needed Several pure digital TV devices have a frontend with the tuner integrated on it. Add the RF connector when dvb_create_media_graph() is called on such devices. Tested with siano and dvb_usb_mxl111sf drivers. Signed-off-by: Mauro Carvalho Chehab drivers/media/common/siano/smsdvb-main.c | 2 +- drivers/media/dvb-core/dvbdev.c | 49 +++++++++++++++++++++++++++-- drivers/media/dvb-core/dvbdev.h | 20 ++++++++++-- drivers/media/usb/au0828/au0828-dvb.c | 2 +- drivers/media/usb/cx231xx/cx231xx-dvb.c | 2 +- drivers/media/usb/dvb-usb-v2/dvb_usb_core.c | 2 +- drivers/media/usb/dvb-usb/dvb-usb-dvb.c | 2 +- 7 files changed, 70 insertions(+), 9 deletions(-) commit 0820eb5c5510b0a5c25a17c8be5e40156ace4991 Author: Mauro Carvalho Chehab Date: Mon Dec 28 10:30:06 2015 -0200 [media] dvbdev: remove two dead functions if !CONFIG_MEDIA_CONTROLLER_DVB Those functions are used only if CONFIG_MEDIA_CONTROLLER_DVB. Without that, if !CONFIG_MEDIA_CONTROLLER_DVB, it would produce two warnings: drivers/media/dvb-core/dvbdev.c:219:12: warning: 'dvb_create_tsout_entity' defined but not used [-Wunused-function] static int dvb_create_tsout_entity(struct dvb_device *dvbdev, ^ drivers/media/dvb-core/dvbdev.c:264:12: warning: 'dvb_create_media_entity' defined but not used [-Wunused-function] static int dvb_create_media_entity(struct dvb_device *dvbdev, ^ Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/dvbdev.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 2e7508e40f6391762499d802226d8a31b0ea3944 Author: Mauro Carvalho Chehab Date: Mon Dec 28 09:24:23 2015 -0200 [media] call media_device_init() before registering the V4L2 device Currently, v4l2_device_register() doesn't use the media_device struct. So, calling media_device_init() could be called either before or after v4l2_device_register(). Yet, it is a good practice to initialize everything before calling the register functions. Also, the other drivers call media_device_init() before registering the V4L2 device. So, move the call for media_device_init() to happen earlier on exynos4-is and s3c-camif. This is just a cleanup patch. Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/exynos4-is/media-dev.c | 4 ++-- drivers/media/platform/s3c-camif/camif-core.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit 7c9d6731acf2816cd94e6c51f02ac8348dc7bb7e Author: Mauro Carvalho Chehab Date: Thu Dec 17 09:07:38 2015 -0200 [media] uapi/media.h: Use u32 for the number of graph objects While we need to keep a u64 alignment to avoid compat32 issues, having the number of entities/pads/links/interfaces represented by an u64 is incoherent with the ID number, with is an u32. In order to make it coherent, change those quantities to u32. Signed-off-by: Mauro Carvalho Chehab include/uapi/linux/media.h | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit ba0dd729bfc09e51af238a630deba70205442afe Author: Mauro Carvalho Chehab Date: Wed Dec 16 15:33:54 2015 -0200 [media] media-entity: don't sleep at media_device_register_entity() media_device_register_entity() is protected by a spin_lock. Calling ida_pre_get() with GFP_KERNEL may put it to sleep, with is a bad idea and causes this warning: [ 8812.397195] BUG: sleeping function called from invalid context at mm/slub.c:1287 [ 8812.397203] in_atomic(): 1, irqs_disabled(): 0, pid: 15179, name: modprobe [ 8812.397207] INFO: lockdep is turned off. [ 8812.397213] CPU: 2 PID: 15179 Comm: modprobe Tainted: G B 4.4.0-rc2+ #41 [ 8812.397218] Hardware name: /NUC5i7RYB, BIOS RYBDWi35.86A.0350.2015.0812.1722 08/12/2015 [ 8812.397222] 0000000000000000 ffff880314c77268 ffffffff818f8ba7 ffff8803b17dde00 [ 8812.397232] ffff880314c77290 ffffffff811c2ee5 ffff8803b17dde00 ffffffff8284dbc9 [ 8812.397241] 0000000000000507 ffff880314c772d0 ffffffff811c30d5 0000000041b58ab3 [ 8812.397250] Call Trace: [ 8812.397258] [] dump_stack+0x4b/0x64 [ 8812.397265] [] ___might_sleep+0x245/0x3a0 [ 8812.397270] [] __might_sleep+0x95/0x1a0 [ 8812.397276] [] ? ida_pre_get+0x113/0x250 [ 8812.397282] [] kmem_cache_alloc+0x197/0x250 [ 8812.397288] [] ida_pre_get+0x113/0x250 [ 8812.397293] [] ida_simple_get+0xa5/0x170 [ 8812.397298] [] ? ida_pre_get+0x250/0x250 [ 8812.397306] [] media_device_register_entity+0x171/0x420 [media] [ 8812.397318] [] v4l2_device_register_subdev+0x34f/0x640 [videodev] [ 8812.397324] [] v4l2_i2c_new_subdev_board+0x12a/0x250 [v4l2_common] [ 8812.397330] [] v4l2_i2c_new_subdev+0xd7/0x110 [v4l2_common] [ 8812.397337] [] ? v4l2_i2c_new_subdev_board+0x250/0x250 [v4l2_common] [ 8812.397347] [] au0828_card_analog_fe_setup+0x2e6/0x3f0 [au0828] [ 8812.397352] [] ? power_down+0xc4/0xc4 [ 8812.397361] [] ? au0828_tuner_callback+0x160/0x160 [au0828] [ 8812.397370] [] au0828_card_setup+0x11f/0x340 [au0828] [ 8812.397378] [] ? au0828_card_analog_fe_setup+0x3f0/0x3f0 [au0828] [ 8812.397384] [] ? msleep+0x7b/0xc0 [ 8812.397393] [] au0828_usb_probe+0x679/0xcf0 [au0828] [ 8812.397399] [] usb_probe_interface+0x45d/0x940 [ 8812.397406] [] driver_probe_device+0x454/0xd90 [ 8812.397411] [] ? driver_probe_device+0xd90/0xd90 [ 8812.397417] [] ? driver_probe_device+0xd90/0xd90 [ 8812.397422] [] __driver_attach+0x121/0x160 [ 8812.397427] [] bus_for_each_dev+0x11f/0x1a0 [ 8812.397433] [] ? subsys_dev_iter_exit+0x10/0x10 [ 8812.397439] [] ? _raw_spin_unlock+0x27/0x40 [ 8812.397445] [] driver_attach+0x3d/0x50 [ 8812.397450] [] bus_add_driver+0x4c9/0x770 [ 8812.397456] [] driver_register+0x18c/0x3b0 [ 8812.397462] [] ? __raw_spin_lock_init+0x32/0x100 [ 8812.397468] [] usb_register_driver+0x1f8/0x440 [ 8812.397473] [] ? 0xffffffffa0208000 [ 8812.397481] [] au0828_init+0xb7/0x1000 [au0828] [ 8812.397486] [] do_one_initcall+0x141/0x300 [ 8812.397492] [] ? try_to_run_init_process+0x40/0x40 [ 8812.397497] [] ? trace_hardirqs_on_caller+0x16/0x590 [ 8812.397502] [] ? kasan_unpoison_shadow+0x36/0x50 [ 8812.397507] [] ? kasan_unpoison_shadow+0x36/0x50 [ 8812.397512] [] ? kasan_unpoison_shadow+0x36/0x50 [ 8812.397517] [] ? __asan_register_globals+0x87/0xa0 [ 8812.397524] [] do_init_module+0x1d0/0x5a4 [ 8812.397530] [] load_module+0x6648/0x9d70 [ 8812.397535] [] ? symbol_put_addr+0x50/0x50 [ 8812.397546] [] ? module_frob_arch_sections+0x20/0x20 [ 8812.397552] [] ? open_exec+0x50/0x50 [ 8812.397559] [] ? ns_capable+0x5b/0xd0 [ 8812.397565] [] SyS_finit_module+0x108/0x130 [ 8812.397571] [] ? SyS_init_module+0x1f0/0x1f0 [ 8812.397576] [] ? lockdep_sys_exit_thunk+0x12/0x14 [ 8812.397582] [] entry_SYSCALL_64_fastpath+0x16/0x7a Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 430a672c83c3e2e9a96c777a874f345c8d21f929 Author: Mauro Carvalho Chehab Date: Wed Dec 16 15:18:25 2015 -0200 [media] media-entity: increase max number of PADs The DVB drivers may have 257 PADs. Get the next power of two that would accomodate that amount. Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 630c0e80c984c0a9a325430d62770fd49f93f9b9 Author: Mauro Carvalho Chehab Date: Wed Dec 16 15:15:18 2015 -0200 [media] media-entity.h: document the remaining functions There are two ancillary functions that are missing comments. While those are used only internally at media-entity.c, document them, for completeness. Signed-off-by: Mauro Carvalho Chehab include/media/media-entity.h | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 05b3b77cbbb01180b681bc9211f3d471123809ca Author: Mauro Carvalho Chehab Date: Wed Dec 16 14:28:01 2015 -0200 [media] media-device.h: use just one u32 counter for object ID Instead of using one u32 counter per type for object IDs, use just one counter. With such change, it makes sense to simplify the debug logs too. Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 35 +++++++++++++++-------------------- include/media/media-device.h | 10 ++-------- include/media/media-entity.h | 21 ++++++++++----------- 3 files changed, 27 insertions(+), 39 deletions(-) commit 03e493388415df701d4b9e362021a83529018a3b Author: Mauro Carvalho Chehab Date: Wed Dec 16 13:58:31 2015 -0200 [media] media-entity.h fix documentation for several parameters Several parameters added by the media_ent_enum patches were declared with wrong argument names: include/media/media-device.h:333: warning: No description found for parameter 'entity_internal_idx_max' include/media/media-device.h:354: warning: No description found for parameter 'ent_enum' include/media/media-device.h:354: warning: Excess function parameter 'e' description in 'media_entity_enum_init' include/media/media-device.h:333: warning: No description found for parameter 'entity_internal_idx_max' include/media/media-device.h:354: warning: No description found for parameter 'ent_enum' include/media/media-device.h:354: warning: Excess function parameter 'e' description in 'media_entity_enum_init' include/media/media-entity.h:397: warning: No description found for parameter 'ent_enum' include/media/media-entity.h:397: warning: Excess function parameter 'e' description in 'media_entity_enum_zero' include/media/media-entity.h:409: warning: No description found for parameter 'ent_enum' include/media/media-entity.h:409: warning: Excess function parameter 'e' description in 'media_entity_enum_set' include/media/media-entity.h:424: warning: No description found for parameter 'ent_enum' include/media/media-entity.h:424: warning: Excess function parameter 'e' description in 'media_entity_enum_clear' include/media/media-entity.h:441: warning: No description found for parameter 'ent_enum' include/media/media-entity.h:441: warning: Excess function parameter 'e' description in 'media_entity_enum_test' include/media/media-entity.h:458: warning: No description found for parameter 'ent_enum' include/media/media-entity.h:458: warning: Excess function parameter 'e' description in 'media_entity_enum_test_and_set' include/media/media-entity.h:474: warning: No description found for parameter 'ent_enum' include/media/media-entity.h:474: warning: Excess function parameter 'e' description in 'media_entity_enum_empty' include/media/media-entity.h:474: warning: Excess function parameter 'entity' description in 'media_entity_enum_empty' include/media/media-entity.h:489: warning: No description found for parameter 'ent_enum1' include/media/media-entity.h:489: warning: No description found for parameter 'ent_enum2' include/media/media-entity.h:489: warning: Excess function parameter 'e' description in 'media_entity_enum_intersects' include/media/media-entity.h:489: warning: Excess function parameter 'f' description in 'media_entity_enum_intersects' Fix them. Signed-off-by: Mauro Carvalho Chehab include/media/media-device.h | 6 ++++-- include/media/media-entity.h | 24 ++++++++++++------------ 2 files changed, 16 insertions(+), 14 deletions(-) commit aa360d3de3e5c8824d48e6e273d93ee69fb53cdf Author: Mauro Carvalho Chehab Date: Wed Dec 16 13:56:14 2015 -0200 [media] DocBook: document media_entity_graph_walk_cleanup() This function was added recently, but weren't documented. Add documentation for it. Signed-off-by: Mauro Carvalho Chehab include/media/media-entity.h | 6 ++++++ 1 file changed, 6 insertions(+) commit 92777994a52e6c1fe0a6156a8b49e83efea6fd2c Author: Mauro Carvalho Chehab Date: Wed Dec 16 13:53:04 2015 -0200 [media] move documentation to the header files Some exported functions were still documented at the .c file, instead of documenting at the .h one. Move the documentation to the right place, as we only use headers at media device-drivers.xml DocBook. Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 27 --------------------------- drivers/media/media-entity.c | 13 ------------- include/media/media-device.h | 6 ++++++ include/media/media-entity.h | 18 ++++++++++++++++-- 4 files changed, 22 insertions(+), 42 deletions(-) commit 0798ce4a386d605af9ddbed724a8f4c8cccc1dab Author: Sakari Ailus Date: Wed Dec 16 11:32:37 2015 -0200 [media] media: Move MEDIA_ENTITY_MAX_PADS from media-entity.h to media-entity.c This isn't really a part of any interface drivers are expected to use. In order to keep drivers from using it, hide it in media-entity.c. This was always an arbitrary number and should be removed in the long run. Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 5 +++++ include/media/media-entity.h | 7 ------- 2 files changed, 5 insertions(+), 7 deletions(-) commit 030e89ecab55b6e105e19fa830a7a7160237f19a Author: Sakari Ailus Date: Wed Dec 16 11:32:36 2015 -0200 [media] media: Remove pre-allocated entity enumeration bitmap The bitmaps for entity enumerations used to be statically allocated. Now that the drivers have been converted to use the new interface which explicitly initialises the enum objects, drop the pre-allocated bitmaps. Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 16 +++++----------- include/media/media-entity.h | 9 ++------- 2 files changed, 7 insertions(+), 18 deletions(-) commit bb0faebdc1d377705081fed67af3f3f3001ac7b8 Author: Sakari Ailus Date: Wed Dec 16 11:32:35 2015 -0200 [media] staging: v4l: davinci_vpbe: Use the new media graph walk interface The media graph walk requires initialisation and cleanup soon. Update the users to perform the soon necessary API calls. Signed-off-by: Sakari Ailus Cc: Prabhakar Lad Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/davinci_vpfe/vpfe_video.c | 37 ++++++++++++++++++------- drivers/staging/media/davinci_vpfe/vpfe_video.h | 1 + 2 files changed, 28 insertions(+), 10 deletions(-) commit 809fe79a5f59621202a30c248349a50765b98e1c Author: Sakari Ailus Date: Wed Dec 16 11:32:34 2015 -0200 [media] staging: v4l: omap4iss: Use the new media graph walk interface The media graph walk requires initialisation and cleanup soon. Update the users to perform the soon necessary API calls. Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/omap4iss/iss.c | 59 +++++++++++++++++++----------- drivers/staging/media/omap4iss/iss.h | 4 +- drivers/staging/media/omap4iss/iss_video.c | 33 +++++++++++++++-- drivers/staging/media/omap4iss/iss_video.h | 1 + 4 files changed, 70 insertions(+), 27 deletions(-) commit 6246b2a7ad1ffab5a712c38005b668f3e4ca2825 Author: Sakari Ailus Date: Wed Dec 16 11:32:33 2015 -0200 [media] staging: v4l: omap4iss: Use media entity enumeration interface Instead of using a bitmap directly in a driver, use the new media entity enumeration interface to perform the same. Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/omap4iss/iss.c | 15 +++++++++++---- drivers/staging/media/omap4iss/iss.h | 4 ++-- drivers/staging/media/omap4iss/iss_video.c | 23 ++++++++++++++++------- drivers/staging/media/omap4iss/iss_video.h | 4 ++-- 4 files changed, 31 insertions(+), 15 deletions(-) commit ad92b5cf35adc2d3ec0116f4744561d5405a0db7 Author: Sakari Ailus Date: Wed Dec 16 11:32:32 2015 -0200 [media] staging: v4l: omap4iss: Fix sub-device power management code The same bug was present in the omap4iss driver as was in the omap3isp driver. The code got copied to the omap4iss driver while broken. Fix the omap4iss driver as well. Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/omap4iss/iss.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 54b5a749b4f3010b3b657507b8ef1eee3a100b09 Author: Sakari Ailus Date: Wed Dec 16 11:32:31 2015 -0200 [media] v4l: vsp1: Use media entity enumeration interface Instead of using a bitmap directly in a driver, use the new media entity enumeration interface to perform the same. Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vsp1/vsp1_video.c | 45 ++++++++++++++++++++++---------- 1 file changed, 31 insertions(+), 14 deletions(-) commit 17d3d4058a61329a6a4384054da6a57c65c7e8ba Author: Sakari Ailus Date: Wed Dec 16 11:32:30 2015 -0200 [media] v4l: omap3isp: Use media entity enumeration interface Instead of using a bitmap directly in a driver, use the new media entity enumeration interface to perform the same. Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/omap3isp/isp.c | 21 +++++++++++++-------- drivers/media/platform/omap3isp/isp.h | 5 +++-- drivers/media/platform/omap3isp/ispccdc.c | 2 +- drivers/media/platform/omap3isp/ispvideo.c | 20 ++++++++++++++------ drivers/media/platform/omap3isp/ispvideo.h | 4 ++-- 5 files changed, 33 insertions(+), 19 deletions(-) commit 74a4133079f739eb2f4604263fdb974ce10120a8 Author: Sakari Ailus Date: Wed Dec 16 11:32:29 2015 -0200 [media] media: Keep using the same graph walk object for a given pipeline Initialise a given graph walk object once, and then keep using it whilst the same pipeline is running. Once the pipeline is stopped, release the graph walk object. Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 17 +++++++++++------ include/media/media-entity.h | 4 +++- 2 files changed, 14 insertions(+), 7 deletions(-) commit 29d8da02d13020a18929a30692d454bd863d4207 Author: Sakari Ailus Date: Wed Dec 16 11:32:28 2015 -0200 [media] media: Use entity enums in graph walk This will also mean that the necessary graph related data structures will be allocated dynamically, removing the need for maximum ID checks. Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 16 ++++++---------- include/media/media-entity.h | 4 ++-- 2 files changed, 8 insertions(+), 12 deletions(-) commit c1a5f1bc0b7a585efaeda40c1eb8f5f4bd9d328d Author: Sakari Ailus Date: Wed Dec 16 15:32:27 2015 +0200 [media] v4l: vsp1: Use the new media graph walk interface The media graph walk requires initialisation and cleanup soon. Update the users to perform the soon necessary API calls. Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vsp1/vsp1_video.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 08613c549ff5ac98d04d9dd28a4ffafa3918e2ca Author: Sakari Ailus Date: Wed Dec 16 11:32:26 2015 -0200 [media] v4l: xilinx: Use the new media graph walk interface The media graph walk requires initialisation and cleanup soon. Update the users to perform the soon necessary API calls. Signed-off-by: Sakari Ailus Cc: Hyun Kwon Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/xilinx/xilinx-dma.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit fd7e5309a5324c243cb285257a2e5e35d9bcaa56 Author: Sakari Ailus Date: Wed Dec 16 15:32:25 2015 +0200 [media] v4l: exynos4-is: Use the new media graph walk interface The media graph walk requires initialisation and cleanup soon. Update the users to perform the soon necessary API calls. Signed-off-by: Sakari Ailus Cc: Javier Martinez Canillas Cc: Kamil Debski Cc: Sylwester Nawrocki Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/exynos4-is/media-dev.c | 31 +++++++++++++++++---------- drivers/media/platform/exynos4-is/media-dev.h | 1 + 2 files changed, 21 insertions(+), 11 deletions(-) commit 28461451c0fc943fa9271e653483857f20d9b489 Author: Sakari Ailus Date: Wed Dec 16 11:32:24 2015 -0200 [media] v4l: omap3isp: Use the new media graph walk interface The media graph walk requires initialisation and cleanup soon. Update the users to perform the soon necessary API calls. Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/omap3isp/isp.c | 63 ++++++++++++++++++------------ drivers/media/platform/omap3isp/isp.h | 4 +- drivers/media/platform/omap3isp/ispvideo.c | 20 +++++++++- drivers/media/platform/omap3isp/ispvideo.h | 1 + 4 files changed, 61 insertions(+), 27 deletions(-) commit 106b9907c368e32d0b01d8ea682c44ef811e6e36 Author: Sakari Ailus Date: Wed Dec 16 15:32:23 2015 +0200 [media] media: Use the new media graph walk interface The media graph walk requires initialisation and cleanup soon. Update the users to perform the soon necessary API calls. Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit e03d220336dd69292370393f5eee98ac17eda308 Author: Sakari Ailus Date: Wed Dec 16 11:32:22 2015 -0200 [media] media: Amend media graph walk API by init and cleanup functions Add media_entity_graph_walk_init() and media_entity_graph_walk_cleanup() functions in order to dynamically allocate memory for the graph. This is not done in media_entity_graph_walk_start() as there are situations where e.g. correct error handling, that itself may not fail, requires successful graph walk. Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 27 +++++++++++++++++++++++++++ include/media/media-entity.h | 17 ++++++++++++----- 2 files changed, 39 insertions(+), 5 deletions(-) commit 5dd8775dc6b480f67be11108d7cd798fba724cab Author: Sakari Ailus Date: Wed Dec 16 11:32:21 2015 -0200 [media] media: Move media graph state for streamon/off to the pipeline The struct media_entity_graph was allocated in the stack, limiting the number of entities that could be reasonably allocated. Instead, move the struct to struct media_pipeline which is typically allocated using kmalloc() instead. The intent is to keep the enumeration around for later use for the duration of the streaming. As streaming is eventually stopped, an unfortunate memory allocation failure would prevent stopping the streaming. As no memory will need to be allocated, the problem is avoided altogether. Signed-off-by: Sakari Ailus Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 16 ++++++++-------- include/media/media-entity.h | 6 ++++++ 2 files changed, 14 insertions(+), 8 deletions(-) commit 434257f19ce0a6b635a84882257034ae79d2f274 Author: Sakari Ailus Date: Wed Dec 16 11:32:20 2015 -0200 [media] media: Add KernelDoc documentation for struct media_entity_graph KernelDoc doesn't appear to handle anonymous structs defined inside another gracefully. As the struct is internal to the framework graph walk algorithm, detailed documentation isn't seen very important. Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab include/media/media-entity.h | 9 +++++++++ 1 file changed, 9 insertions(+) commit 82c682905dbc9785f26711e34cb4d16ba3a798d7 Author: Sakari Ailus Date: Wed Dec 16 11:32:19 2015 -0200 [media] media: Move struct media_entity_graph definition up It will be needed in struct media_pipeline shortly. Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab include/media/media-entity.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit c8d54cd53b43c514fbd8d36abf0f2f00f719dd54 Author: Sakari Ailus Date: Wed Dec 16 11:44:32 2015 -0200 [media] media: Add an API to manage entity enumerations This is useful in e.g. knowing whether certain operations have already been performed for an entity. The users include the framework itself (for graph walking) and a number of drivers. Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 40 ++++++++++++ include/media/media-device.h | 15 +++++ include/media/media-entity.h | 141 ++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 188 insertions(+), 8 deletions(-) commit 665faa971d087e8b968ef75d04079a7a462ddfca Author: Sakari Ailus Date: Wed Dec 16 11:32:17 2015 -0200 [media] media: Introduce internal index for media entities The internal index can be used internally by the framework in order to keep track of entities for a purpose or another. The internal index is constant while it's registered to a media device, but the same index may be re-used once the entity having that index is unregistered. Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 17 +++++++++++++++++ include/media/media-device.h | 4 ++++ include/media/media-entity.h | 3 +++ 3 files changed, 24 insertions(+) commit 1630b832355399dd0dc4fcc2cadbcad47153a748 Author: Dan Carpenter Date: Tue Dec 15 09:04:14 2015 -0200 [media] v4l2-device: fix a missing error code We need to set "err = -ENOMEM" here. Fixes: 38b11f19667a ('[media] v4l2-core: create MC interfaces for devnodes') Signed-off-by: Dan Carpenter Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-device.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit a5c82e5622d1b7f479c9a43873c2c5ac1f67765c Author: Dan Carpenter Date: Tue Dec 15 09:00:40 2015 -0200 [media] media-device: copy_to/from_user() returns positive The copy_to/from_user() functions return the number of bytes *not* copied. They don't return error codes. Fixes: 4f6b3f363475 ('media] media-device: add support for MEDIA_IOC_G_TOPOLOGY ioctl') Signed-off-by: Dan Carpenter Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 8a95079668bf35b265d3bb6381b8badb5bfa826a Author: Javier Martinez Canillas Date: Fri Dec 11 20:57:09 2015 -0200 [media] media-device: set topology version 0 at media registration The G_TOPOLOGY ioctl is used to get a graph topology and since in the future a graph can be dynamically updated, there is a way to know the topology version so userspace can be aware that the graph has changed. The version 0 is reserved to indicate that the graph is static (i.e no graphs updates since the media device was registered). So, now that the media device initialization and registration has been split and the media device node is not exposed to user-space until all the entities have been registered and links created, it is safe to set a topology version 0 in media_device_register(). Suggested-by: Laurent Pinchart Suggested-by: Mauro Carvalho Chehab Signed-off-by: Javier Martinez Canillas Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 4 ++++ 1 file changed, 4 insertions(+) commit bdf5c198261cdda8dcc5375315afe9d8bf4d77d1 Author: Sakari Ailus Date: Mon Dec 28 01:45:00 2015 +0200 [media] v4l2-device: Register entity before calling subdev's registered ops Registering a V4L2 sub-device includes, among other things, registering the related media entity and calling the sub-device's registered op. Since patch "media: convert links from array to list", creating a link between two pads requires registering the entity first. If the registered() op involves link creation, the link list head will not be initialised before it is used. Resolve this by first registering the entity, then calling its registered() op. Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-device.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) commit 9f80679511b0544d1ed8c9bc2d80030183e9f1ed Author: Mauro Carvalho Chehab Date: Mon Dec 28 09:55:49 2015 -0200 [media] usb: check media device errors There are now two new warnings: drivers/media/usb/dvb-usb-v2/dvb_usb_core.c: In function 'dvb_usbv2_media_device_register': drivers/media/usb/dvb-usb-v2/dvb_usb_core.c:433:2: warning: ignoring return value of '__media_device_register', declared with attribute warn_unused_result [-Wunused-result] media_device_register(adap->dvb_adap.mdev); ^ drivers/media/usb/dvb-usb/dvb-usb-dvb.c: In function 'dvb_usb_media_device_register': drivers/media/usb/dvb-usb/dvb-usb-dvb.c:128:2: warning: ignoring return value of '__media_device_register', declared with attribute warn_unused_result [-Wunused-result] media_device_register(adap->dvb_adap.mdev); ^ Those are because the drivers are not properly checking if the media device init and register were succeeded. Fix it. Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/au0828/au0828-core.c | 16 ++++++++++++---- drivers/media/usb/cx231xx/cx231xx-cards.c | 13 ++++++++++--- drivers/media/usb/dvb-usb-v2/dvb_usb_core.c | 23 ++++++++++++++++------- drivers/media/usb/dvb-usb/dvb-usb-dvb.c | 22 ++++++++++++++++------ 4 files changed, 54 insertions(+), 20 deletions(-) commit 9832e155f1ed3030fdfaa19e72c06472dc2ecb1d Author: Javier Martinez Canillas Date: Fri Dec 11 20:57:08 2015 -0200 [media] media-device: split media initialization and registration The media device node is registered and so made visible to user-space before entities are registered and links created which means that the media graph obtained by user-space could be only partially enumerated if that happens too early before all the graph has been created. To avoid this race condition, split the media init and registration in separate functions and only register the media device node when all the pending subdevices have been registered, either explicitly by the driver or asynchronously using v4l2_async_register_subdev(). The media_device_register() had a check for drivers not filling dev and model fields but all drivers in mainline set them and not doing it will be a driver bug so change the function return to void and add a BUG_ON() for dev being NULL instead. Also, add a media_device_cleanup() function that will destroy the graph_mutex that is initialized in media_device_init(). [mchehab@osg.samsung.com: Fix compilation if !CONFIG_MEDIA_CONTROLLER and remove two warnings added by this changeset] Suggested-by: Sakari Ailus Signed-off-by: Javier Martinez Canillas Acked-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab drivers/media/common/siano/smsdvb-main.c | 1 + drivers/media/media-device.c | 37 +++++++++++++++++++++------ drivers/media/platform/exynos4-is/media-dev.c | 15 +++++------ drivers/media/platform/omap3isp/isp.c | 14 +++++----- drivers/media/platform/s3c-camif/camif-core.c | 15 +++++++---- drivers/media/platform/vsp1/vsp1_drv.c | 12 ++++----- drivers/media/platform/xilinx/xilinx-vipp.c | 12 +++------ drivers/media/usb/au0828/au0828-core.c | 29 +++++++++++---------- drivers/media/usb/cx231xx/cx231xx-cards.c | 32 +++++++++++------------ drivers/media/usb/dvb-usb-v2/dvb_usb_core.c | 23 +++++++++-------- drivers/media/usb/dvb-usb/dvb-usb-dvb.c | 25 ++++++++++-------- drivers/media/usb/siano/smsusb.c | 5 ++-- drivers/media/usb/uvc/uvc_driver.c | 11 +++++--- include/media/media-device.h | 26 +++++++++++++++++++ 14 files changed, 158 insertions(+), 99 deletions(-) commit 821ed3662913faca0653c201fa9e36fbab81f17c Author: Mauro Carvalho Chehab Date: Tue Dec 15 08:36:51 2015 -0200 [media] media-device: better lock media_device_unregister() If media_device_unregister() is called by two different drivers, a race condition may happen, as the check if the device is not registered is not protected. Move the spin_lock() to happen earlier in the function, in order to prevent such race condition. Reported-by: Shuah Khan Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) commit b2ed8af910a436e12038f8ec8ca6c039f43767a4 Author: Mauro Carvalho Chehab Date: Tue Dec 15 08:26:52 2015 -0200 [media] media-device: move media entity register/unregister functions media entity register and unregister functions are called by media device register/unregister. Move them to occur earlier, as we'll need an unlocked version of media_device_entity_unregister() and we don't want to add a function prototype without needing it. No functional changes. Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 160 +++++++++++++++++++++---------------------- 1 file changed, 80 insertions(+), 80 deletions(-) commit 223d19c56651a0204253035f9ed28834653d2b4b Author: Javier Martinez Canillas Date: Fri Dec 11 20:57:07 2015 -0200 [media] media-device: check before unregister if mdev was registered Most media functions that unregister, check if the corresponding register function succeed before. So these functions can safely be called even if a registration was never made or the component as already been unregistered. Add the same check to media_device_unregister() function for consistency. This will also allow to split the media_device_register() function in an initialization and registration functions without the need to change the generic cleanup functions and error code paths for all the media drivers. Suggested-by: Sakari Ailus Signed-off-by: Javier Martinez Canillas Acked-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 6 ++++++ 1 file changed, 6 insertions(+) commit cc4a82581cb604444b0f9f2e7d999624964695e2 Author: Mauro Carvalho Chehab Date: Tue Dec 15 08:01:13 2015 -0200 [media] media-entity: cache media_device on object removal As pointed by Dan, the commit f8fd4c61b5ae ("[media] media-entity: protect object creation/removal using spin lock")' leads to the following static checker warning: drivers/media/media-entity.c:781 media_remove_intf_link() error: dereferencing freed memory 'link' drivers/media/media-entity.c 777 void media_remove_intf_link(struct media_link *link) 778 { 779 spin_lock(&link->graph_obj.mdev->lock); 780 __media_remove_intf_link(link); 781 spin_unlock(&link->graph_obj.mdev->lock); In practice, I didn't see any troubles even with KASAN enabled. I guess gcc optimizer internally cached the mdev reference, instead of getting it twice. Yet, it is a very bad idea to rely on such optimization. So, let's fix the code. Reported-by: Dan Carpenter Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) commit 5c883edb5b2c34e96e57037c95f9a72c4feccc50 Author: Mauro Carvalho Chehab Date: Tue Dec 15 07:58:18 2015 -0200 [media] media-entity: use mutes for link setup Changeset f8fd4c61b5ae ("[media] media-entity: protect object creation/removal using spin lock") changed the object creation/removal protection to spin lock, as this is what's used on media-device, keeping the mutex reserved for graph traversal routines. However, it also changed the link setup, by mistake. This could cause troubles, as the link setup can affect the graph traversal, and this is likely the reason for a mutex there. So, revert media_entity_setup_link() to use mutex. Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 75c7e295707e7a9d13691377f2154dcbae9a25f8 Author: Mauro Carvalho Chehab Date: Sun Dec 13 09:00:00 2015 -0200 [media] media-devnode.h: document the remaining struct/functions There is one struct and two functions that were not documented. Add the corresponding kernel-doc documentation for them. Signed-off-by: Mauro Carvalho Chehab include/media/media-devnode.h | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) commit fe3c565e4cbcb2adeef063accc7852de739aaa36 Author: Mauro Carvalho Chehab Date: Sun Dec 13 08:40:45 2015 -0200 [media] media-devnode: move kernel-doc documentation to the header As we're using the headers file only for documentation, move the two kernel-doc macros to the header, and fix it to avoid warnings. Signed-off-by: Mauro Carvalho Chehab drivers/media/media-devnode.c | 24 ------------------------ include/media/media-devnode.h | 27 +++++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 24 deletions(-) commit b6e4ca8129ad65a0b1552586c1d42d2fd219661e Author: Mauro Carvalho Chehab Date: Sun Dec 13 08:36:58 2015 -0200 [media] media-device.h: document the last functions Add kernel-doc documentation for media_device_get_devres and media_device_find_devres. Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 7 ------- include/media/media-device.h | 22 ++++++++++++++++++++++ 2 files changed, 22 insertions(+), 7 deletions(-) commit 60266185d7f3eeae5714090e1e10840b96df91d2 Author: Mauro Carvalho Chehab Date: Sun Dec 13 08:20:46 2015 -0200 [media] media-entity.h: Document some ancillary functions Add a basic documentation for most ancillary functions. Signed-off-by: Mauro Carvalho Chehab include/media/media-entity.h | 58 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) commit 8aaf62b5b9bef73978973e4b825c7818528d3ca2 Author: Sakari Ailus Date: Sun Nov 29 17:20:02 2015 -0200 [media] media: Enforce single entity->pipe in a pipeline If a different entity->pipe in a pipeline was encountered, a warning was issued but the execution continued as if nothing had happened. Return an error instead right there. Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 677cb4bfc23e7fd8f49d2d10af64f171942fab84 Author: Mauro Carvalho Chehab Date: Sat Dec 12 10:56:13 2015 -0200 [media] DocBook: Document MEDIA_IOC_G_TOPOLOGY Add description for this new media controller ioctl. Signed-off-by: Mauro Carvalho Chehab .../DocBook/media/v4l/media-controller.xml | 1 + .../DocBook/media/v4l/media-ioc-g-topology.xml | 391 +++++++++++++++++++++ 2 files changed, 392 insertions(+) commit dc7339bf119111d5c08156980ea742fc4120ce19 Author: Mauro Carvalho Chehab Date: Sat Dec 12 10:54:45 2015 -0200 [media] DocBook: add a table for Media Controller interfaces Document the media controller interfaces at the media uAPI docbook. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/v4l/media-types.xml | 61 +++++++++++++++++++++++++ 1 file changed, 61 insertions(+) commit eb7d970aa0ab9964fe3200df4daf76c37d35f076 Author: Mauro Carvalho Chehab Date: Sat Dec 12 10:29:30 2015 -0200 [media] Docbook: media-types.xml: update the existing tables There were some changes on the media types that were not reflected on the types tables. Update them to reflect the upstream changes. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/v4l/media-types.xml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) commit 5fec921f49891e1343d60df3f6f40ceb52acdd42 Author: Mauro Carvalho Chehab Date: Sat Dec 12 09:56:07 2015 -0200 [media] DocBook: move data types to a separate section As MEDIA_IOC_G_TOPOLOGY shares the data types already declared for entities, pads and links, we should move those to a separate part of the document, and use cross-references where needed. So, move the following tables to a separate section at the DocBook: media-entity-type media-entity-flag media-pad-flag media-link-flag Signed-off-by: Mauro Carvalho Chehab .../DocBook/media/v4l/media-controller.xml | 3 + .../DocBook/media/v4l/media-ioc-enum-entities.xml | 104 ------------- .../DocBook/media/v4l/media-ioc-enum-links.xml | 56 ------- Documentation/DocBook/media/v4l/media-types.xml | 166 +++++++++++++++++++++ 4 files changed, 169 insertions(+), 160 deletions(-) commit b7870d692d7b0718f7153aed9e7a32f0119b525d Author: Mauro Carvalho Chehab Date: Sat Dec 12 08:59:14 2015 -0200 [media] DocBook: MC: add the concept of interfaces The Media Controller next generation patches added a new graph element type: interfaces. It also allows links between interfaces and entities. Update the docbook to reflect that. Signed-off-by: Mauro Carvalho Chehab .../DocBook/media/v4l/media-controller.xml | 40 ++++++++++++++-------- 1 file changed, 26 insertions(+), 14 deletions(-) commit fdc40b5e95ac6480f6160081774aa2ec24784ccb Author: Mauro Carvalho Chehab Date: Sat Dec 12 08:25:44 2015 -0200 [media] dvbdev: Document the new MC-related fields The Media Controller next gen patchset added several new fields to be used with it. Document them. Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/dvbdev.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit b3109d662d744c065f2a1da5e9b8d08f2189c2ac Author: Mauro Carvalho Chehab Date: Fri Dec 11 18:26:53 2015 -0200 [media] media.h: let be clear that tuners need to use connectors The V4L2 core won't be adding connectors to the tuners and other entities that need them. Let it be clear. Suggested-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab include/uapi/linux/media.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 82ae2a50597565cbb2c758b44a3f39adb158ef0a Author: Mauro Carvalho Chehab Date: Fri Dec 11 18:09:13 2015 -0200 [media] media: move MEDIA_LNK_FL_INTERFACE_LINK logic to link creation Instead of flagging an interface link as MEDIA_LNK_FL_INTERFACE_LINK only when returning to userspace, do it at link creation time. That would allow using such flag internally, and cleans up a little bit the code for G_TOPOLOGY ioctl. [mchehab@osg.samsung.com: folded with a fixup from Dan Carpenter, replacing & by &&] Suggested-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 3 --- drivers/media/media-entity.c | 4 ++-- 2 files changed, 2 insertions(+), 5 deletions(-) commit 313895fba2040c7f223db3d6aa6cb3b5c5022042 Author: Javier Martinez Canillas Date: Fri Dec 11 15:16:36 2015 -0200 [media] media-entity: remove unneded enclosing parenthesis Commit 86ee417578a2 ("[media] media: convert links from array to list") had many changes that were automated using coccinelle but the semantic patch was not smart enough to rely on operators precedence and avoid using unnecessary enclosing parenthesis. This patch removes them since are not needed. Suggested-by: Laurent Pinchart Signed-off-by: Javier Martinez Canillas Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1cb2f6f4b1652ad4e19894a4b4b82b0c2ea8a4b6 Author: Javier Martinez Canillas Date: Fri Dec 11 15:16:35 2015 -0200 [media] uvcvideo: register entity subdev on init The uvc_mc_register_entities() function iterated over the entities three times to initialize the entities, register the subdev for the ones whose type was UVC_TT_STREAMING and to create the entities links. But this can be simplied by merging the init and registration logic in a single loop. Suggested-by: Laurent Pinchart Signed-off-by: Javier Martinez Canillas Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/uvc/uvc_entity.c | 33 +++++++++------------------------ 1 file changed, 9 insertions(+), 24 deletions(-) commit 552faf4c083d8e86c6d86160ae3da0412280f690 Author: Javier Martinez Canillas Date: Fri Dec 11 15:16:34 2015 -0200 [media] uvcvideo: remove pads prefix from uvc_mc_create_pads_links() The function uvc_mc_create_pads_links() creates entities links but the "pads" prefix is redundant since the driver doesn't handle any other kind of link, so it can be removed. Suggested-by: Laurent Pinchart Signed-off-by: Javier Martinez Canillas Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/uvc/uvc_entity.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 1488eee3b46736eefd9aec1e9d944f7a828773b9 Author: Javier Martinez Canillas Date: Fri Dec 11 15:16:33 2015 -0200 [media] v4l: vsp1: use else if instead of continue when creating links The for loop in the vsp1_create_entities() function that create the links, checks the entity type and call the proper link creation function but then it uses continue to force the next iteration of the loop to take place and skipping code in between that creates links for different entities types. It is more readable and easier to understand if the if else constructs is used instead of the continue statement. Suggested-by: Laurent Pinchart Signed-off-by: Javier Martinez Canillas Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vsp1/vsp1_drv.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) commit d8a2cf41cc1c1b4af35eaf0414f83653b7b17c8b Author: Javier Martinez Canillas Date: Fri Dec 11 15:16:32 2015 -0200 [media] v4l: vsp1: remove pads prefix from *_create_pads_links() The functions that create entities links are called *_create_pads_links() but the "pads" prefix is redundant since the driver doesn't handle any other kind of link so it can be removed. Suggested-by: Laurent Pinchart Signed-off-by: Javier Martinez Canillas Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vsp1/vsp1_drv.c | 4 ++-- drivers/media/platform/vsp1/vsp1_rpf.c | 4 ++-- drivers/media/platform/vsp1/vsp1_rwpf.h | 4 ++-- drivers/media/platform/vsp1/vsp1_wpf.c | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) commit 04e021511abc189ca43f1f11ec53121b9345c9fa Author: Javier Martinez Canillas Date: Fri Dec 11 15:16:31 2015 -0200 [media] staging: omap4iss: remove pads prefix from *_create_pads_links() The functions that create ISS internal and external entities links are called *_create_pads_links() but the "pads" prefix is redundant since the driver doesn't handle any other kind of link so it can be removed. Suggested-by: Laurent Pinchart Signed-off-by: Javier Martinez Canillas Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/omap4iss/iss.c | 12 ++++++------ drivers/staging/media/omap4iss/iss_csi2.c | 4 ++-- drivers/staging/media/omap4iss/iss_csi2.h | 2 +- drivers/staging/media/omap4iss/iss_ipipeif.c | 4 ++-- drivers/staging/media/omap4iss/iss_ipipeif.h | 2 +- drivers/staging/media/omap4iss/iss_resizer.c | 4 ++-- drivers/staging/media/omap4iss/iss_resizer.h | 2 +- 7 files changed, 15 insertions(+), 15 deletions(-) commit 06a1368faf2184c71f086bfc13e81ea153d98798 Author: Javier Martinez Canillas Date: Fri Dec 11 15:16:30 2015 -0200 [media] omap3isp: consistently use v4l2_dev var in complete notifier The isp_subdev_notifier_complete() complete callback defines a struct v4l2_device *v4l2_dev to avoid needing two level of indirections to access the V4L2 subdevs but the var is not always used when possible as when calling v4l2_device_register_subdev_nodes(). So change that to consistently use the defined v4l2_dev pointer var. Suggested-by: Sakari Ailus Signed-off-by: Javier Martinez Canillas Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/omap3isp/isp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a64860e56b2f97bdcd367a6e10624cd0e51b5406 Author: Javier Martinez Canillas Date: Fri Dec 11 15:16:29 2015 -0200 [media] omap3isp: rename single labels to just error Commit bc36b30fe06b ("[media] omap3isp: separate links creation from entities init") moved the link creation logic from the entities init functions and so removed the error_link labels from the error paths. But after that, some functions have a single error label so it makes more sense to rename the label to just "error" in thi case. Suggested-by: Laurent Pinchart Signed-off-by: Javier Martinez Canillas Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/omap3isp/ispccdc.c | 4 ++-- drivers/media/platform/omap3isp/ispccp2.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit b285d5afcf80270fafc57b1a7f1ffab9e77e4686 Author: Javier Martinez Canillas Date: Fri Dec 11 15:16:28 2015 -0200 [media] omap3isp: remove pads prefix from isp_create_pads_links() The function that creates the links between ISP internal and external entities is called isp_create_pads_links() but the "pads" prefix is redundant since the driver doesn't handle any other kind of link so it can just be removed. While being there, fix the function's kernel-doc since is not using a proper format. Suggested-by: Laurent Pinchart Signed-off-by: Javier Martinez Canillas Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/omap3isp/isp.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit b5f6df0607b767fe48b179c6ccee204ee17c3373 Author: Javier Martinez Canillas Date: Fri Dec 11 15:16:27 2015 -0200 [media] omap3isp: remove per ISP module link creation functions The entities to video nodes links were created on separate functions for each ISP module but since the only thing that these functions do is to call media_create_pad_link(), there's no need for that indirection level and all link creation logic can be just inlined in the caller function. Also, since the only possible failure for the link creation is a memory allocation, there is no need for error messages since the core already reports a very verbose message in that case. Suggested-by: Laurent Pinchart Signed-off-by: Javier Martinez Canillas Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/omap3isp/isp.c | 56 +++++++++++++++++----------- drivers/media/platform/omap3isp/ispccdc.c | 14 ------- drivers/media/platform/omap3isp/ispccdc.h | 1 - drivers/media/platform/omap3isp/ispccp2.c | 14 ------- drivers/media/platform/omap3isp/ispccp2.h | 1 - drivers/media/platform/omap3isp/ispcsi2.c | 14 ------- drivers/media/platform/omap3isp/ispcsi2.h | 1 - drivers/media/platform/omap3isp/isppreview.c | 20 ---------- drivers/media/platform/omap3isp/isppreview.h | 1 - drivers/media/platform/omap3isp/ispresizer.c | 20 ---------- drivers/media/platform/omap3isp/ispresizer.h | 1 - 11 files changed, 35 insertions(+), 108 deletions(-) commit b3b7a9f138b7539c25e036d398616f6737b08ff7 Author: Mauro Carvalho Chehab Date: Fri Dec 11 16:07:57 2015 -0200 [media] media-device: Use u64 ints for pointers By using u64 integers and pointers, we can get rid of compat32 logic. So, let's do it! Suggested-by: Arnd Bergmann Suggested-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 77 +++++++++++++++++++++++--------------------- include/uapi/linux/media.h | 32 +++++++++--------- 2 files changed, 58 insertions(+), 51 deletions(-) commit d1b9da2d606ecec587177c4c90f1905c57538149 Author: Mauro Carvalho Chehab Date: Fri Dec 11 12:41:12 2015 -0200 [media] media-device.h: Let clearer that entity function must be initialized Improve the documentation to let it clear that the entity function must be initialized. Suggested-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab include/media/media-device.h | 4 ++++ include/uapi/linux/media.h | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) commit 829de29bfe5a0568831f1c52a760306d642d99d4 Author: Mauro Carvalho Chehab Date: Fri Dec 11 12:23:23 2015 -0200 [media] media: use unsigned for pad index The pad index is unsigned. Replace the occurences of it where pertinent. Suggested-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/omap3isp/ispccdc.c | 2 +- drivers/media/platform/omap3isp/ispccp2.c | 2 +- drivers/media/platform/omap3isp/ispcsi2.c | 2 +- drivers/media/platform/omap3isp/isppreview.c | 2 +- drivers/media/platform/omap3isp/ispresizer.c | 2 +- drivers/staging/media/davinci_vpfe/dm365_ipipeif.c | 2 +- drivers/staging/media/davinci_vpfe/dm365_isif.c | 2 +- drivers/staging/media/davinci_vpfe/dm365_resizer.c | 2 +- drivers/staging/media/omap4iss/iss_csi2.c | 2 +- drivers/staging/media/omap4iss/iss_ipipeif.c | 2 +- drivers/staging/media/omap4iss/iss_resizer.c | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) commit 1fc25d30a40c27b85510e6e598aec629532eb85c Author: Mauro Carvalho Chehab Date: Fri Dec 11 12:14:58 2015 -0200 [media] media-entity.h: move kernel-doc tags from media-entity.c Several additional functions are described at media-entity.c. Moving them to the header file, to make the code cleaner and to have all such macros at the same place. Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 163 +++---------------------------------------- include/media/media-entity.h | 136 +++++++++++++++++++++++++++++++++++- 2 files changed, 145 insertions(+), 154 deletions(-) commit c350ef830f2c3dfe80e9a777c8a64ac1fb186b9a Author: Mauro Carvalho Chehab Date: Fri Dec 11 11:55:40 2015 -0200 [media] media_entity: rename media_obj functions to *_create *_destroy Those media_obj_* functions are actually creating/destroying media graph objects. So, rename them to better represent what they're actually doing. No functional changes. This was created via this small shell script: for i in $(git grep -l media_gobj_init); do sed s,media_gobj_init,media_gobj_create,g <$i >a && mv a $i; done for i in $(git grep -l media_gobj_remove); do sed s,media_gobj_remove,media_gobj_destroy,g <$i >a && mv a $i; done Suggested-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 10 +++++----- drivers/media/media-entity.c | 26 +++++++++++++------------- include/media/media-entity.h | 4 ++-- 3 files changed, 20 insertions(+), 20 deletions(-) commit 58f69ee9da3a2486450dac626c352f69faf964e9 Author: Mauro Carvalho Chehab Date: Fri Dec 11 11:25:23 2015 -0200 [media] media_entity: get rid of a unused var > > > + if (rlink != link->reverse) { > > > + r++; > > > > The variable is incremented here but otherwise never used, you can remove it. Suggested-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 5abad22fd1402c23da1f6ade8cec59ac07a28fc5 Author: Mauro Carvalho Chehab Date: Fri Dec 11 11:19:38 2015 -0200 [media] media-entity: get rid of forward __media_entity_remove_link() declaration Move this function to happen earlier, in order to avoid a uneeded forward declaration. Suggested-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 67 +++++++++++++++++++++----------------------- 1 file changed, 32 insertions(+), 35 deletions(-) commit 97d0a70ae5e2391f213966a69c3b6f96f2c9f25b Author: Mauro Carvalho Chehab Date: Fri Dec 11 11:12:57 2015 -0200 [media] media: remove extra blank lines No functional changes. Suggested-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 3 --- include/media/media-device.h | 2 -- 2 files changed, 5 deletions(-) commit db7ee32aa1859c155e634a4d5c44b9cff4c9a6e5 Author: Mauro Carvalho Chehab Date: Fri Dec 11 11:06:08 2015 -0200 [media] media-device.h: Improve documentation and update it Now that we moved the content of the media-framework.txt into the kerneldoc documentation, move the per-function specific documentation to the corresponding functions and clean it up. It would be good if we had already the markdown kernel-doc patches merged upstream, but, while we doesn't have it, let's make it less ugly at device-drivers.xml. Signed-off-by: Mauro Carvalho Chehab include/media/media-device.h | 429 +++++++++++++++++++------------------------ include/media/media-entity.h | 148 +++++++++++++++ 2 files changed, 339 insertions(+), 238 deletions(-) commit f1fd3289e8c2b99cdf5c1c4426a7d28a809159c2 Author: Mauro Carvalho Chehab Date: Fri Dec 11 09:13:23 2015 -0200 [media] media-entity.h: convert media_entity_cleanup to inline This function was used in the past to free the links that were allocated by the media controller core. However, this is not needed anymore. We should likely get rid of the funcion on some function, but, for now, let's just convert into an inlined function and let the compiler to get rid of it. Suggested-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 6 ------ include/media/media-entity.h | 3 ++- 2 files changed, 2 insertions(+), 7 deletions(-) commit cc2dd94a051c8a467c66a258391cb980c3fb3312 Author: Mauro Carvalho Chehab Date: Fri Dec 11 08:21:39 2015 -0200 [media] DocBook: Move media-framework.txt contents to media-device.h Instead of using a text file, let's put it together with the struct documentation for the Media Controller. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/device-drivers.tmpl | 1 + Documentation/media-framework.txt | 373 ----------------------------- include/media/media-device.h | 378 ++++++++++++++++++++++++++++++ 3 files changed, 379 insertions(+), 373 deletions(-) commit 8ed8c88c460fa6ce71deb9847f78a5bff4dfcb0e Author: Mauro Carvalho Chehab Date: Fri Dec 11 08:02:19 2015 -0200 [media] media-entity.h: get rid of revision and group_id fields Both revision and group_id fields were never used and were always initialized to zero. Remove them. Suggested-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/v4l/media-ioc-enum-entities.xml | 13 ++----------- Documentation/media-framework.txt | 12 +++++------- drivers/media/media-device.c | 4 ++-- include/media/media-entity.h | 4 ---- 4 files changed, 9 insertions(+), 24 deletions(-) commit ab22e77cd3d3073c8cac51b59713ef635678dfbe Author: Mauro Carvalho Chehab Date: Fri Dec 11 07:44:40 2015 -0200 [media] media framework: rename pads init function to media_entity_pads_init() With the MC next gen rework, what's left for media_entity_init() is to just initialize the PADs. However, certain devices, like a FLASH led/light doesn't have any input or output PAD. So, there's no reason why calling media_entity_init() would be mandatory. Also, despite its name, what this function actually does is to initialize the PADs data. So, rename it to media_entity_pads_init() in order to reflect that. The media entity actual init happens during entity register, at media_device_register_entity(). We should move init of num_links and num_backlinks to it. Signed-off-by: Mauro Carvalho Chehab Documentation/media-framework.txt | 18 +++++++++++------- Documentation/video4linux/v4l2-framework.txt | 8 ++++---- Documentation/zh_CN/video4linux/v4l2-framework.txt | 8 ++++---- drivers/media/dvb-core/dvbdev.c | 4 ++-- drivers/media/dvb-frontends/au8522_decoder.c | 2 +- drivers/media/i2c/ad9389b.c | 2 +- drivers/media/i2c/adp1653.c | 2 +- drivers/media/i2c/adv7180.c | 2 +- drivers/media/i2c/adv7511.c | 2 +- drivers/media/i2c/adv7604.c | 2 +- drivers/media/i2c/adv7842.c | 2 +- drivers/media/i2c/as3645a.c | 2 +- drivers/media/i2c/cx25840/cx25840-core.c | 2 +- drivers/media/i2c/lm3560.c | 2 +- drivers/media/i2c/lm3646.c | 2 +- drivers/media/i2c/m5mols/m5mols_core.c | 2 +- drivers/media/i2c/mt9m032.c | 2 +- drivers/media/i2c/mt9p031.c | 2 +- drivers/media/i2c/mt9t001.c | 2 +- drivers/media/i2c/mt9v032.c | 2 +- drivers/media/i2c/noon010pc30.c | 2 +- drivers/media/i2c/ov2659.c | 2 +- drivers/media/i2c/ov9650.c | 2 +- drivers/media/i2c/s5c73m3/s5c73m3-core.c | 4 ++-- drivers/media/i2c/s5k4ecgx.c | 2 +- drivers/media/i2c/s5k5baf.c | 4 ++-- drivers/media/i2c/s5k6a3.c | 2 +- drivers/media/i2c/s5k6aa.c | 2 +- drivers/media/i2c/smiapp/smiapp-core.c | 6 +++--- drivers/media/i2c/tc358743.c | 2 +- drivers/media/i2c/tvp514x.c | 2 +- drivers/media/i2c/tvp7002.c | 2 +- drivers/media/media-device.c | 2 ++ drivers/media/media-entity.c | 11 ++++------- drivers/media/platform/exynos4-is/fimc-capture.c | 4 ++-- drivers/media/platform/exynos4-is/fimc-isp-video.c | 2 +- drivers/media/platform/exynos4-is/fimc-isp.c | 2 +- drivers/media/platform/exynos4-is/fimc-lite.c | 4 ++-- drivers/media/platform/exynos4-is/fimc-m2m.c | 2 +- drivers/media/platform/exynos4-is/mipi-csis.c | 2 +- drivers/media/platform/omap3isp/ispccdc.c | 2 +- drivers/media/platform/omap3isp/ispccp2.c | 2 +- drivers/media/platform/omap3isp/ispcsi2.c | 2 +- drivers/media/platform/omap3isp/isppreview.c | 2 +- drivers/media/platform/omap3isp/ispresizer.c | 2 +- drivers/media/platform/omap3isp/ispstat.c | 2 +- drivers/media/platform/omap3isp/ispvideo.c | 2 +- drivers/media/platform/s3c-camif/camif-capture.c | 4 ++-- drivers/media/platform/vsp1/vsp1_entity.c | 2 +- drivers/media/platform/vsp1/vsp1_video.c | 2 +- drivers/media/platform/xilinx/xilinx-dma.c | 2 +- drivers/media/platform/xilinx/xilinx-tpg.c | 2 +- drivers/media/usb/au0828/au0828-video.c | 6 +++--- drivers/media/usb/cx231xx/cx231xx-video.c | 4 ++-- drivers/media/usb/uvc/uvc_entity.c | 4 ++-- drivers/media/v4l2-core/tuner-core.c | 2 +- drivers/media/v4l2-core/v4l2-flash-led-class.c | 2 +- drivers/staging/media/davinci_vpfe/dm365_ipipe.c | 2 +- drivers/staging/media/davinci_vpfe/dm365_ipipeif.c | 2 +- drivers/staging/media/davinci_vpfe/dm365_isif.c | 2 +- drivers/staging/media/davinci_vpfe/dm365_resizer.c | 6 +++--- drivers/staging/media/davinci_vpfe/vpfe_video.c | 2 +- drivers/staging/media/omap4iss/iss_csi2.c | 2 +- drivers/staging/media/omap4iss/iss_ipipe.c | 2 +- drivers/staging/media/omap4iss/iss_ipipeif.c | 2 +- drivers/staging/media/omap4iss/iss_resizer.c | 2 +- drivers/staging/media/omap4iss/iss_video.c | 2 +- include/media/media-entity.h | 2 +- 68 files changed, 102 insertions(+), 99 deletions(-) commit b83e250833e6c40a9e92935ea6fc125b64792357 Author: Mauro Carvalho Chehab Date: Fri Dec 11 07:25:01 2015 -0200 [media] media-device: better name Kernelspace/Userspace links The __media_device_enum_links() copies links definitions from Kernelspace to userspace. It has to work with 3 structs that handle with links. Better name them to: link: Kernelspace internal link representation, of the type media_link; klink_desc: struct media_link_desc pointer to the kernel memory where the data will be filled; ulink_desc: struct media_link_desc pointer to the memory where the data will be copied to userspace. Suggested-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) commit 497e80cdf98ac72aaa1a4860b833920e1ba23aef Author: Mauro Carvalho Chehab Date: Fri Dec 11 07:23:09 2015 -0200 [media] media-device: put headers in alphabetic order It is better to keep the headers in alphabetic order. Suggested-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit db141a355d8914fe80c9e4a6c25c686f64d7e905 Author: Javier Martinez Canillas Date: Tue Sep 8 14:10:56 2015 -0300 [media] media-entity: init pads on entity init if was registered before If an entity is registered with a media device before is initialized with media_device_register_entity(), the number of pads won't be set so media_device_register_entity() won't create pad objects and add it to the media device pads list. Do this at entity initialization time if the entity was registered before so the graph is complete and correct regardless of the order in which the entities are initialized and registered. Suggested-by: Mauro Carvalho Chehab Signed-off-by: Javier Martinez Canillas Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 9033b1a47038fdba388fc13613de23508dccb075 Author: Mauro Carvalho Chehab Date: Wed Sep 9 08:23:51 2015 -0300 [media] media-device: use unsigned ints on some places The entity->num_pads are defined as u16. So, better to use an unsigned int, as this prevents additional warnings when W=2 (or W=1 on some architectures). The "i" counter at __media_device_get_topology() is also a monotonic counter that should never be below zero. So, make it unsigned too. Suggested-by: Sakari Ailus Acked-by: Hans Verkuil Reviewed-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 0b3b72df9018c0386293c2f529b91ed17448288a Author: Mauro Carvalho Chehab Date: Wed Sep 9 08:19:25 2015 -0300 [media] media_entity: remove gfp_flags argument We should not be creating device nodes at IRQ contexts. So, the only flags we'll be using will be GFP_KERNEL. Let's remove the gfp_flags, in order to make the interface simpler. If we ever need it, it would be easy to revert those changes. While here, remove an extra blank line. Suggested-by: Sakari Ailus Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/dvbdev.c | 3 +-- drivers/media/media-entity.c | 5 ++--- drivers/media/v4l2-core/v4l2-dev.c | 3 +-- include/media/media-entity.h | 4 +--- 4 files changed, 5 insertions(+), 10 deletions(-) commit 8ed071426ee48879024c350ae92fc41062039b13 Author: Mauro Carvalho Chehab Date: Sun Sep 6 13:38:23 2015 -0300 [media] dvbdev: Don't create indirect links Indirect links are those whose interface indirectly controls other functions. There are two interfaces that have indirect controls at the DVB side: - the network interface, which also controls the demux; - the DVR interface which also controls the demux. One could argue that the frontend control to the tuner is indirect. Well, that's debatable. There's no way to create subdev interfaces for tuner and demod, as those devices are tightly coupled. So, it was decided that just one interface is the best to control both entities, and there's no plan (or easy way) to decouple both. So, the DVB frontend interface should link to both entities. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/dvbdev.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 17813e2aa2f745545643df24af8f308bc36a04b0 Author: Mauro Carvalho Chehab Date: Sun Sep 6 13:28:48 2015 -0300 [media] dvbdev: move indirect links on dvr/demux to a separate function Cleanup the code a little bit by moving the routine that creates links between DVR and demux to the I/O entitis into a separate function. While here, fix the code to use strncmp() instead of strcmp(). Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/dvbdev.c | 50 +++++++++++++++++++++++++---------------- 1 file changed, 31 insertions(+), 19 deletions(-) commit bd3ed12be1e1262adcb733bcf63e5da4d8772774 Author: Mauro Carvalho Chehab Date: Sun Sep 6 12:30:43 2015 -0300 [media] DocBook: update entities documentation Due to the rename, the documentation became outdated. Update it to reflect what's there at media.h. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab .../DocBook/media/v4l/media-ioc-enum-entities.xml | 64 ++++++++++++++-------- 1 file changed, 40 insertions(+), 24 deletions(-) commit 4ca72efaeffd0d244c44307abc9d4cb11f8ad475 Author: Mauro Carvalho Chehab Date: Thu Dec 10 17:25:41 2015 -0200 [media] uapi/media.h: Rename entities types to functions Rename the userspace types from MEDIA_ENT_T_ to MEDIA_ENT_F_ and add the backward compatibility bits. The changes at the .c files was generated by the following coccinelle script: @@ @@ -MEDIA_ENT_T_UNKNOWN +MEDIA_ENT_F_UNKNOWN @@ @@ -MEDIA_ENT_T_DVB_BASE +MEDIA_ENT_F_DVB_BASE @@ @@ -MEDIA_ENT_T_V4L2_BASE +MEDIA_ENT_F_V4L2_BASE @@ @@ -MEDIA_ENT_T_V4L2_SUBDEV_BASE +MEDIA_ENT_F_V4L2_SUBDEV_BASE @@ @@ -MEDIA_ENT_T_CONNECTOR_BASE +MEDIA_ENT_F_CONNECTOR_BASE @@ @@ -MEDIA_ENT_T_V4L2_VIDEO +MEDIA_ENT_F_IO_V4L @@ @@ -MEDIA_ENT_T_V4L2_VBI +MEDIA_ENT_F_IO_VBI @@ @@ -MEDIA_ENT_T_V4L2_SWRADIO +MEDIA_ENT_F_IO_SWRADIO @@ @@ -MEDIA_ENT_T_V4L2_SUBDEV_UNKNOWN +MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN @@ @@ -MEDIA_ENT_T_CONN_RF +MEDIA_ENT_F_CONN_RF @@ @@ -MEDIA_ENT_T_CONN_SVIDEO +MEDIA_ENT_F_CONN_SVIDEO @@ @@ -MEDIA_ENT_T_CONN_COMPOSITE +MEDIA_ENT_F_CONN_COMPOSITE @@ @@ -MEDIA_ENT_T_CONN_TEST +MEDIA_ENT_F_CONN_TEST @@ @@ -MEDIA_ENT_T_V4L2_SUBDEV_SENSOR +MEDIA_ENT_F_CAM_SENSOR @@ @@ -MEDIA_ENT_T_V4L2_SUBDEV_FLASH +MEDIA_ENT_F_FLASH @@ @@ -MEDIA_ENT_T_V4L2_SUBDEV_LENS +MEDIA_ENT_F_LENS @@ @@ -MEDIA_ENT_T_V4L2_SUBDEV_DECODER +MEDIA_ENT_F_ATV_DECODER @@ @@ -MEDIA_ENT_T_V4L2_SUBDEV_TUNER +MEDIA_ENT_F_TUNER @@ @@ -MEDIA_ENT_T_DVB_DEMOD +MEDIA_ENT_F_DTV_DEMOD @@ @@ -MEDIA_ENT_T_DVB_DEMUX +MEDIA_ENT_F_TS_DEMUX @@ @@ -MEDIA_ENT_T_DVB_TSOUT +MEDIA_ENT_F_IO_DTV @@ @@ -MEDIA_ENT_T_DVB_CA +MEDIA_ENT_F_DTV_CA @@ @@ -MEDIA_ENT_T_DVB_NET_DECAP +MEDIA_ENT_F_DTV_NET_DECAP Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/dvbdev.c | 20 ++-- drivers/media/dvb-frontends/au8522_decoder.c | 2 +- drivers/media/i2c/adp1653.c | 2 +- drivers/media/i2c/adv7180.c | 2 +- drivers/media/i2c/as3645a.c | 2 +- drivers/media/i2c/cx25840/cx25840-core.c | 2 +- drivers/media/i2c/lm3560.c | 2 +- drivers/media/i2c/lm3646.c | 2 +- drivers/media/i2c/m5mols/m5mols_core.c | 2 +- drivers/media/i2c/noon010pc30.c | 2 +- drivers/media/i2c/ov2659.c | 2 +- drivers/media/i2c/ov9650.c | 2 +- drivers/media/i2c/s5c73m3/s5c73m3-core.c | 4 +- drivers/media/i2c/s5k4ecgx.c | 2 +- drivers/media/i2c/s5k5baf.c | 6 +- drivers/media/i2c/s5k6aa.c | 2 +- drivers/media/i2c/smiapp/smiapp-core.c | 2 +- drivers/media/i2c/tvp514x.c | 2 +- drivers/media/i2c/tvp7002.c | 2 +- drivers/media/media-device.c | 4 +- drivers/media/platform/xilinx/xilinx-dma.c | 2 +- drivers/media/usb/au0828/au0828-core.c | 4 +- drivers/media/usb/au0828/au0828-video.c | 8 +- drivers/media/usb/cx231xx/cx231xx-cards.c | 4 +- drivers/media/usb/cx231xx/cx231xx-video.c | 2 +- drivers/media/v4l2-core/tuner-core.c | 2 +- drivers/media/v4l2-core/v4l2-dev.c | 14 +-- drivers/media/v4l2-core/v4l2-flash-led-class.c | 2 +- drivers/media/v4l2-core/v4l2-subdev.c | 4 +- include/media/media-entity.h | 18 ++-- include/uapi/linux/media.h | 122 +++++++++++++------------ 31 files changed, 127 insertions(+), 121 deletions(-) commit d87cdb884486bfa795be99c83a5b3ac4d428ca84 Author: Mauro Carvalho Chehab Date: Sun Sep 6 10:59:08 2015 -0300 [media] media-device: export the entity function via new ioctl Now that entities have a main function, expose it via MEDIA_IOC_G_TOPOLOGY ioctl. Please notice that some entities may have secundary functions. Such use case will be addressed later, when we add support for the Media Controller properties. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 1 + include/uapi/linux/media.h | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) commit 0e576b76f5470a2f8b2287958a2b9a3dd0f56f10 Author: Mauro Carvalho Chehab Date: Sun Sep 6 09:33:39 2015 -0300 [media] media-entity.h: rename entity.type to entity.function Entities should have one or more functions. Calling it as a type proofed to not be correct, as an entity could eventually have more than one type. So, rename the field as function. Please notice that this patch doesn't extend support for multiple function entities. Such change will happen when we have real case drivers using it. No functional changes. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Documentation/video4linux/v4l2-framework.txt | 4 ++-- drivers/media/dvb-core/dvbdev.c | 14 +++++++------- drivers/media/dvb-frontends/au8522_decoder.c | 2 +- drivers/media/i2c/adp1653.c | 2 +- drivers/media/i2c/as3645a.c | 2 +- drivers/media/i2c/cx25840/cx25840-core.c | 2 +- drivers/media/i2c/lm3560.c | 2 +- drivers/media/i2c/lm3646.c | 2 +- drivers/media/i2c/m5mols/m5mols_core.c | 2 +- drivers/media/i2c/noon010pc30.c | 2 +- drivers/media/i2c/ov2659.c | 2 +- drivers/media/i2c/ov9650.c | 2 +- drivers/media/i2c/s5c73m3/s5c73m3-core.c | 4 ++-- drivers/media/i2c/s5k4ecgx.c | 2 +- drivers/media/i2c/s5k5baf.c | 6 +++--- drivers/media/i2c/s5k6aa.c | 2 +- drivers/media/i2c/smiapp/smiapp-core.c | 2 +- drivers/media/media-device.c | 6 +++--- drivers/media/platform/xilinx/xilinx-dma.c | 2 +- drivers/media/usb/au0828/au0828-core.c | 2 +- drivers/media/usb/au0828/au0828-video.c | 8 ++++---- drivers/media/usb/cx231xx/cx231xx-cards.c | 2 +- drivers/media/usb/cx231xx/cx231xx-video.c | 2 +- drivers/media/v4l2-core/tuner-core.c | 2 +- drivers/media/v4l2-core/v4l2-dev.c | 14 +++++++------- drivers/media/v4l2-core/v4l2-flash-led-class.c | 2 +- drivers/media/v4l2-core/v4l2-subdev.c | 6 +++--- include/media/media-entity.h | 9 +++++---- 28 files changed, 55 insertions(+), 54 deletions(-) commit 77328043d9e6feb12e53a4fc5485cf664d2878e4 Author: Mauro Carvalho Chehab Date: Fri Sep 4 16:08:24 2015 -0300 [media] media-entity: must check media_create_pad_link() Drivers should check if media_create_pad_link() actually worked. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab include/media/media-entity.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 4e26f3abafa9d0f635e105c8b9021f3b5bae6702 Author: Mauro Carvalho Chehab Date: Fri Sep 4 16:08:02 2015 -0300 [media] au0828: enforce check for graph creation If the graph creation fails, don't register the device. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/au0828/au0828-core.c | 58 +++++++++++++++++++++++----------- 1 file changed, 39 insertions(+), 19 deletions(-) commit ab232e46bf01db5c540a00f478853a3572b0b88b Author: Mauro Carvalho Chehab Date: Fri Sep 4 16:07:03 2015 -0300 [media] cx231xx: enforce check for graph creation If the graph creation fails, don't register the device. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/cx231xx/cx231xx-cards.c | 40 ++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 14 deletions(-) commit 5e5387df0491679fb1210b231173c5279061e9c4 Author: Mauro Carvalho Chehab Date: Fri Sep 4 15:34:19 2015 -0300 [media] media-entity: enforce check of interface and links creation Drivers should check if interfaces and interface links were created. Add a must_check for them. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab include/media/media-entity.h | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit 0d3ab8410dcb60aef2104231ba817037b3ba73bd Author: Mauro Carvalho Chehab Date: Fri Sep 4 15:33:46 2015 -0300 [media] dvb core: must check dvb_create_media_graph() If media controller is enabled and mdev is filled, it should ensure that the media graph will be properly initialized. Enforce that. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/common/siano/smsdvb-main.c | 6 +++++- drivers/media/dvb-core/dvbdev.h | 2 +- drivers/media/usb/au0828/au0828-dvb.c | 8 +++++--- drivers/media/usb/cx231xx/cx231xx-dvb.c | 6 +++++- drivers/media/usb/dvb-usb-v2/dvb_usb_core.c | 4 +++- drivers/media/usb/dvb-usb/dvb-usb-dvb.c | 6 ++++-- 6 files changed, 23 insertions(+), 9 deletions(-) commit 13f6e8887a1f61764a05a3348476d38071201f08 Author: Mauro Carvalho Chehab Date: Fri Sep 4 15:39:43 2015 -0300 [media] v4l2 core: enable all interface links at init Interface links are normally enabled, meaning that the interfaces are bound to the entities. So, any ioctl send to the interface are reflected at the entities managed by the interface. However, when a device is used, other interfaces for the same hardware could be decoupled from the entities linked to them, because the hardware may have some parts busy. That's for example, what happens when an hybrid TV device is in use. If it is streaming analog TV or capturing signals from S-Video/Composite connectors, typically the digital part of the hardware can't be used and vice-versa. This is generally due to some internal hardware or firmware limitation, that it is not easily mapped via data pipelines. What the Kernel drivers do internally is that they decouple the hardware from the interface. So, all changes, if allowed, are done only at some interface cache, but not physically changed at the hardware. The usage is similar to the usage of the MEDIA_LNK_FL_ENABLED on data links. So, let's use the same flag to indicate if either the interface to entity link is bound/enabled or not. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-dev.c | 3 ++- drivers/media/v4l2-core/v4l2-device.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) commit 39d1ebc6092f8266fb788733ca92b8492b1d69f2 Author: Mauro Carvalho Chehab Date: Sun Aug 30 09:53:57 2015 -0300 [media] media-device: supress backlinks at G_TOPOLOGY ioctl Due to the graph traversal algorithm currently in usage, we need a copy of all data links. Those backlinks should not be send to userspace, as otherwise, all links there will be duplicated. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 3 +++ drivers/media/media-entity.c | 1 + include/media/media-entity.h | 2 ++ 3 files changed, 6 insertions(+) commit 28b6ba1106b5864e6bdd1b75840ccf5b1ca3d1b7 Author: Mauro Carvalho Chehab Date: Mon Aug 31 13:23:28 2015 -0300 [media] au0828: Create connector links Now that connectors are entities, we need to represent the connector links. Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/au0828/au0828-core.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit d1f337375aedb2999bdca24b40ba6e5c1a796eb4 Author: Mauro Carvalho Chehab Date: Mon Aug 31 11:43:09 2015 -0300 [media] au0828: add support for the connectors Depending on the input, an au0828 may have a different number of connectors. add entities to represent them. Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/au0828/au0828-core.c | 15 +++++++ drivers/media/usb/au0828/au0828-video.c | 76 ++++++++++++++++++++++++++++----- drivers/media/usb/au0828/au0828.h | 3 +- 3 files changed, 82 insertions(+), 12 deletions(-) commit 49a11518f84c6fda6b2740e592ce53e1a22311a3 Author: Mauro Carvalho Chehab Date: Mon Aug 31 11:41:29 2015 -0300 [media] media.h: create connector entities for hybrid TV devices Add entities to represent the connectors that exists inside a hybrid TV device. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab include/uapi/linux/media.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit c358e80d70d97efc144e7d496c92985ad74218a8 Author: Mauro Carvalho Chehab Date: Sat Aug 29 23:43:03 2015 -0300 [media] media-entity.h: document all the structs Only a few structs are documented on kernel-doc-nano format (the ones added by the MC next gen patches). Add a documentation for all structs, and ensure that they'll be producing the documentation at the Kernel's device driver DocBook. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab include/media/media-entity.h | 114 +++++++++++++++++++++++++++++++------------ 1 file changed, 84 insertions(+), 30 deletions(-) commit d9c21e3e4b459b45e11406b83ebde163181508a1 Author: Mauro Carvalho Chehab Date: Mon Aug 24 08:47:54 2015 -0300 [media] v4l2-core: create MC interfaces for devnodes V4L2 device (and subdevice) nodes should create an interface, if the Media Controller support is enabled. Please notice that radio devices should not create an entity, as radio input/output is either via wires or via ALSA. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-dev.c | 111 ++++++++++++++++++++++++++++------ drivers/media/v4l2-core/v4l2-device.c | 16 ++++- include/media/v4l2-dev.h | 1 + 3 files changed, 109 insertions(+), 19 deletions(-) commit f50d51661af375c40cae894753e8cd9b1fe82c65 Author: Mauro Carvalho Chehab Date: Fri Sep 4 15:10:29 2015 -0300 [media] dvbdev: returns error if graph object creation fails Right now, if something gets wrong at dvb_create_media_entity() or at dvb_create_media_graph(), the device will still be registered. Change the logic to properly handle it and free all media graph objects if something goes wrong at dvb_register_device(). Also, change the logic at dvb_create_media_graph() to return an error code if something goes wrong. It is up to the caller to implement the right logic and to call dvb_unregister_device() to unregister the already-created objects. While here, add a missing logic to unregister the created interfaces. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/dvbdev.c | 313 +++++++++++++++++++++++----------------- drivers/media/dvb-core/dvbdev.h | 7 +- drivers/media/media-device.c | 10 +- 3 files changed, 193 insertions(+), 137 deletions(-) commit eb83a5176801d53f9f78eff8c0bf03e627110206 Author: Mauro Carvalho Chehab Date: Thu Dec 10 15:29:22 2015 -0200 [media] media-entity: fix backlink removal on __media_entity_remove_link() The logic is testing if num_links==0 at the wrong place. Due to that, a backlink may be kept without removal, causing KASAN to complain about usage after free during either entity or link removal. Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit a9709e435454cf84d8971261ff8ded3a453b9b13 Author: Javier Martinez Canillas Date: Mon Aug 24 14:57:53 2015 -0300 [media] media: don't try to empty links list in media_entity_cleanup() The media_entity_cleanup() function only cleans up the entity links list but this operation is already made in media_device_unregister_entity(). In most cases this should be harmless (besides having duplicated code) since the links list would be empty so the iteration would not happen but the links list is initialized in media_device_register_entity() so if a driver fails to register an entity with a media device and clean up the entity in the error path, a NULL deference pointer error will happen. So don't try to empty the links list in media_entity_cleanup() since is either done already or haven't been initialized yet. Signed-off-by: Javier Martinez Canillas drivers/media/media-entity.c | 7 ------- 1 file changed, 7 deletions(-) commit 7e9a8ad57c097b7fe7ed9ba514f78789363aa6b8 Author: Mauro Carvalho Chehab Date: Thu Dec 10 10:58:04 2015 -0200 [media] au0828: postpone call to au0828_unregister_media_device() The DVB core needs to unregister the media device. So, we can't call au0828_unregister_media_device() before calling au0828_dvb_unregister(), otherwise the DVB MC free code (that will be implemented on the next patch) will fail. Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/au0828/au0828-core.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 04bf12c2d313478a3e5c9ff59a7ba92ce418bee6 Author: Mauro Carvalho Chehab Date: Thu Dec 10 09:16:34 2015 -0200 [media] dvbdev: enable all interface links at init Interface links are normally enabled, meaning that the interfaces are bound to the entities. So, any ioctl sent to the interface are reflected at the entities managed by the interface. However, when a device is in use, other interfaces for the same hardware could be decoupled from the entities linked to them, because the hardware may have some parts busy. That's for example, what happens when an hybrid TV device is in use. If it is streaming analog TV or capturing signals from S-Video/Composite connectors, typically the digital part of the hardware can't be used and vice-versa. This is generally due to some internal hardware or firmware limitation, that it is not easily mapped via data pipelines. What the Kernel drivers do internally is that they decouple the hardware from the interface. So, all changes, if allowed, are done only at some interface cache, but not physically changed at the hardware. The usage is similar to the usage of the MEDIA_LNK_FL_ENABLED on data links. So, let's use the same flag to indicate if either the interface to entity link is bound/enabled or not. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/dvbdev.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) commit 188d2d551244f4196b616c90f3411732a6ebb2ab Author: Mauro Carvalho Chehab Date: Mon Aug 31 13:23:03 2015 -0300 [media] tuner-core: add an input pad Tuners actually have at least one connector on its input. Add a PAD to connect it. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/dvbdev.c | 5 ++++- drivers/media/usb/au0828/au0828-core.c | 5 ++++- drivers/media/usb/cx231xx/cx231xx-cards.c | 2 +- drivers/media/v4l2-core/tuner-core.c | 8 +++++--- include/media/tuner.h | 8 ++++++++ 5 files changed, 22 insertions(+), 6 deletions(-) commit a08fad1ec80c69c79b3ffb6d84968b0952d32da1 Author: Mauro Carvalho Chehab Date: Wed Dec 9 19:47:35 2015 -0200 [media] media-entity: protect object creation/removal using spin lock Some parts of the media controller are using mutexes while others are using spin locks in order to protect creation and removal of elements in the graph. That's wrong! Also, the V4L2 core can remove graph elements on non-interactive context: BUG: sleeping function called from invalid context at include/linux/sched.h:2776 Fix it by always using spin locks for graph element addition/removal, just like entity creation/removal is protected at media-device.c Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 16 ++++++++-------- include/media/media-device.h | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) commit d47109fa45ee2dc4e0b2710a8225e6c3ac7ea9fd Author: Mauro Carvalho Chehab Date: Sat Aug 29 21:23:44 2015 -0300 [media] media-device: remove interfaces and interface links Just like what's done with entities, when the media controller is unregistered, release any interface and interface links that might still be there. Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 30 +++++++++++++++++++----------- drivers/media/media-entity.c | 6 +++++- include/media/media-entity.h | 1 + 3 files changed, 25 insertions(+), 12 deletions(-) commit a28971ad141bf41b8d6c24f8c4e8736be0c57677 Author: Mauro Carvalho Chehab Date: Sat Aug 29 19:07:09 2015 -0300 [media] remove interface links at media_entity_unregister() Interface links connected to an entity should be removed before the entity itself can be removed. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 7c4696a910d404eda3477e76a35c155a6b83ca3e Author: Mauro Carvalho Chehab Date: Mon Aug 24 08:46:46 2015 -0300 [media] media-entity: unregister entity links Add functions to explicitly unregister all entity links. This function is called automatically when an entity link is destroyed. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 23 +++++++++++++++++++++++ include/media/media-entity.h | 3 +++ 2 files changed, 26 insertions(+) commit 8309f47c32c04aae30698389073ec8c6d1b7e986 Author: Mauro Carvalho Chehab Date: Sun Aug 23 10:36:41 2015 -0300 [media] media-device: add support for MEDIA_IOC_G_TOPOLOGY ioctl Add support for the new MEDIA_IOC_G_TOPOLOGY ioctl, according with the RFC for the MC next generation. Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 158 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) commit 2521fdac28d0ceea659be1620fef96b1cbff09b6 Author: Mauro Carvalho Chehab Date: Sun Aug 23 09:40:26 2015 -0300 [media] media_device: add a topology version field Every time a graph object is added or removed, the version of the topology changes. That's a requirement for the new MEDIA_IOC_G_TOPOLOGY, in order to allow userspace to know that the topology has changed after a previous call to it. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 5 +++++ include/media/media-device.h | 4 ++++ 2 files changed, 9 insertions(+) commit 9155d859b6bec29cdbbd80a509be35de55115f00 Author: Mauro Carvalho Chehab Date: Sun Aug 23 08:00:33 2015 -0300 [media] media-device: add pads and links to media_device The MC next gen API sends objects to userspace grouped by their types. In the case of pads and links, in order to improve performance and have a simpler code, the best is to store them also on separate linked lists at MC. If we don't do that, we would need this kind of interaction to send data to userspace (code is in structured english): for each entity: for each pad: store pads for each entity: for each link: store link for each interface: for each link: store link With would require one nested loop for pads and two nested loops for links. By using separate linked lists for them, just one loop would be enough. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 2 ++ drivers/media/media-entity.c | 17 ++++++----------- include/media/media-device.h | 12 ++++++++++++ 3 files changed, 20 insertions(+), 11 deletions(-) commit 05bfa9fa1cda91953e1b5975b059542b83c5245c Author: Mauro Carvalho Chehab Date: Sun Aug 23 07:51:33 2015 -0300 [media] media: move mdev list init to gobj Let's control the topology changes inside the graph_object. So, move the addition and removal of interfaces/entities from the mdev lists to media_gobj_init() and media_gobj_remove(). The main reason is that mdev should have lists for all object types, as the new MC api will require to store objects in separate places. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 4 +--- drivers/media/media-entity.c | 15 ++++++++++++--- include/media/media-device.h | 4 ++-- include/media/media-entity.h | 3 +-- 4 files changed, 16 insertions(+), 10 deletions(-) commit cf975a4b40ec9a947dae614b23128f3984a2d324 Author: Mauro Carvalho Chehab Date: Sun Aug 23 07:51:22 2015 -0300 [media] media: Use a macro to interate between all interfaces Just like we do with entities, use a similar macro for the interfaces loop. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/dvbdev.c | 3 ++- include/media/media-device.h | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) commit c398bb6441949bd1f2acf5072116ecba143df03b Author: Mauro Carvalho Chehab Date: Sun Aug 23 08:28:21 2015 -0300 [media] uapi/media.h: Add MEDIA_IOC_G_TOPOLOGY ioctl Add a new ioctl that will report the entire topology on one go. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab include/media/media-entity.h | 2 + include/uapi/linux/media.h | 88 +++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 89 insertions(+), 1 deletion(-) commit 6c24d4602ebee64128f29944d776c19d4d53fb54 Author: Mauro Carvalho Chehab Date: Fri Aug 21 18:26:42 2015 -0300 [media] media: report if a pad is sink or source at debug msg Sometimes, it is important to see if the created pad is sink or source. Add info to track that. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit df2f94e563edcbcb4b8652d05a3789d03b395366 Author: Mauro Carvalho Chehab Date: Fri Aug 21 16:18:18 2015 -0300 [media] dvb: modify core to implement interfaces/entities at MC new gen The Media Controller New Generation redefines the types for both interfaces and entities to be used on DVB. Make the needed changes at the DVB core for all interfaces, entities and data and interface links to appear in the graph. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/dmxdev.c | 4 +- drivers/media/dvb-core/dvb_ca_en50221.c | 2 +- drivers/media/dvb-core/dvb_frontend.c | 2 +- drivers/media/dvb-core/dvb_net.c | 2 +- drivers/media/dvb-core/dvbdev.c | 146 +++++++++++++++++++++++++---- drivers/media/dvb-core/dvbdev.h | 9 +- drivers/media/firewire/firedtv-ci.c | 2 +- drivers/media/pci/bt8xx/dst_ca.c | 3 +- drivers/media/pci/ddbridge/ddbridge-core.c | 2 +- drivers/media/pci/ngene/ngene-core.c | 2 +- drivers/media/pci/ttpci/av7110.c | 2 +- drivers/media/pci/ttpci/av7110_av.c | 4 +- drivers/media/pci/ttpci/av7110_ca.c | 2 +- 13 files changed, 148 insertions(+), 34 deletions(-) commit 4ae1723af80ce5a23fa5bc6db1534265af0d6107 Author: Mauro Carvalho Chehab Date: Thu May 7 22:12:40 2015 -0300 [media] DocBook: update descriptions for the media controller entities Cleanup the media controller entities description: - remove MEDIA_ENT_T_DEVNODE and MEDIA_ENT_T_V4L2_SUBDEV entity types, as they don't mean anything; - add MEDIA_ENT_T_UNKNOWN with a proper description; - remove ALSA and FB entity types. Those should not be used, as the types are deprecated. We'll soon be adidng ALSA, but with a different entity namespace; - improve the description of some entities. Signed-off-by: Mauro Carvalho Chehab .../DocBook/media/v4l/media-ioc-enum-entities.xml | 47 ++++++++++------------ 1 file changed, 22 insertions(+), 25 deletions(-) commit 4376679a3426c88caba883bcaf4e9af04eba6d9d Author: Mauro Carvalho Chehab Date: Sat Aug 29 14:50:46 2015 -0300 [media] media.h: don't use legacy entity macros at Kernel Put the legacy MEDIA_ENT_* macros under a #ifndef __KERNEL__, in order to be sure that none of those old symbols are used inside the Kernel. Acked-by: Laurent Pinchart Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab include/uapi/linux/media.h | 2 ++ 1 file changed, 2 insertions(+) commit 687b4209c83e9b0633f794949c0bc6fb1401ccba Author: Mauro Carvalho Chehab Date: Thu May 7 22:12:39 2015 -0300 [media] media controller: get rid of entity subtype on Kernel Don't use anymore the type/subtype entity data/macros inside the Kernel. Acked-by: Hans Verkuil Acked-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab include/media/media-entity.h | 10 ---------- include/uapi/linux/media.h | 2 -- 2 files changed, 12 deletions(-) commit b50bde4e476dede4a28e9c8fdcd134da2f34ef2e Author: Mauro Carvalho Chehab Date: Thu May 7 22:12:38 2015 -0300 [media] v4l2-subdev: use MEDIA_ENT_T_UNKNOWN for new subdevs Instead of abusing MEDIA_ENT_T_V4L2_SUBDEV, initialize new subdev entities as MEDIA_ENT_T_UNKNOWN. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 6 ++++++ drivers/media/v4l2-core/v4l2-subdev.c | 2 +- include/uapi/linux/media.h | 14 ++++++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) commit bf4178a4c63443da1475c9c1bbb39963e75aa69b Author: Mauro Carvalho Chehab Date: Thu May 7 22:12:37 2015 -0300 [media] omap4iss: change the logic that checks if an entity is a subdev As we're getting rid of an specific number range for the V4L2 subdev, we need to replace the check for MEDIA_ENT_T_V4L2_SUBDEV by a macro. Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/omap4iss/iss_ipipe.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 14fae6fc53b2b390bbba650d60b9555e9f7f4f26 Author: Mauro Carvalho Chehab Date: Thu May 7 22:12:36 2015 -0300 [media] davinci_vbpe: stop MEDIA_ENT_T_V4L2_SUBDEV abuse This driver is abusing MEDIA_ENT_T_V4L2_SUBDEV: - it uses a hack to check if the remote entity is a subdev; - it still uses the legacy entity subtype check macro, that will be removed soon. Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/davinci_vpfe/dm365_ipipe.c | 9 ++++++--- drivers/staging/media/davinci_vpfe/vpfe_video.c | 5 ++--- 2 files changed, 8 insertions(+), 6 deletions(-) commit 26614b9bf8b534406835ea66732c12e6fd7b50fd Author: Mauro Carvalho Chehab Date: Thu May 7 22:12:35 2015 -0300 [media] s5k5baf: fix subdev type The driver creates two subdevs, one for the image sensor pixel array (and the related readout logic) and one for an ISP. The first subdev already uses the MEDIA_ENT_T_V4L2_SUBDEV_SENSOR type, but the second subdev isn't a sensor pixel array. So, rename the second subdev as MEDIA_ENT_T_V4L2_SUBDEV_UNKNOWN. Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/s5k5baf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cb716165536cde417de54de4657454bf39a8ba4d Author: Mauro Carvalho Chehab Date: Thu May 7 22:12:34 2015 -0300 [media] s5c73m3: fix subdev type This sensor driver is abusing MEDIA_ENT_T_V4L2_SUBDEV, creating some subdevs with a non-existing type. As this is a sensor driver, one of the entries is MEDIA_ENT_T_CAM_SENSOR. The other one will be using MEDIA_ENT_T_V4L2_SUBDEV_UNKNOWN, because the subdev is not any of the already existing types. Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/s5c73m3/s5c73m3-core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 59ecd59d782de82d8f2d2bfda2c28f87c0e8b35a Author: Mauro Carvalho Chehab Date: Thu May 7 22:12:33 2015 -0300 [media] omap3/omap4/davinci: get rid of MEDIA_ENT_T_V4L2_SUBDEV abuse On omap3/omap4/davinci drivers, MEDIA_ENT_T_V4L2_SUBDEV macro is abused in order to "simplify" the pad checks. Basically, it does a logical or of this macro, in order to check for a local index and if the entity is either a subdev or not. As we'll get rid of MEDIA_ENT_T_V4L2_SUBDEV macro, replace it by 2 << 16 where it occurs, and add a note saying that the code there is actually a hack. Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/omap3isp/ispccdc.c | 15 ++++++++----- drivers/media/platform/omap3isp/ispccp2.c | 13 +++++++---- drivers/media/platform/omap3isp/ispcsi2.c | 11 +++++++--- drivers/media/platform/omap3isp/isppreview.c | 15 ++++++++----- drivers/media/platform/omap3isp/ispresizer.c | 13 +++++++---- drivers/staging/media/davinci_vpfe/dm365_ipipeif.c | 13 +++++++---- drivers/staging/media/davinci_vpfe/dm365_isif.c | 13 +++++++---- drivers/staging/media/davinci_vpfe/dm365_resizer.c | 25 +++++++++++++--------- drivers/staging/media/davinci_vpfe/vpfe_video.c | 4 ++-- drivers/staging/media/omap4iss/iss_csi2.c | 11 +++++++--- drivers/staging/media/omap4iss/iss_ipipeif.c | 13 +++++++---- drivers/staging/media/omap4iss/iss_resizer.c | 11 +++++++--- 12 files changed, 106 insertions(+), 51 deletions(-) commit 3efdf62c5f68007020ef935ad2887e7fc4e31c36 Author: Mauro Carvalho Chehab Date: Thu May 7 22:12:32 2015 -0300 [media] media: use macros to check for V4L2 subdev entities Instead of relying on media subtype, use the new macros to detect if an entity is a subdev or an A/V DMA entity. Please note that most drivers assume that there's just AV_DMA or V4L2 subdevs. This is not true anymore, as we've added MC support for DVB, and there are plans to add support for ALSA and FB/DRM too. Ok, on the current pipelines supported by those drivers, just V4L stuff are there, but, assuming that some day a pipeline that also works with other subsystems will ever added, it is better to add explicit checks for the AV_DMA stuff. Acked-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/exynos4-is/common.c | 3 +-- drivers/media/platform/exynos4-is/fimc-capture.c | 5 ++--- drivers/media/platform/exynos4-is/fimc-isp-video.c | 3 +-- drivers/media/platform/exynos4-is/fimc-lite.c | 10 ++++------ drivers/media/platform/exynos4-is/media-dev.c | 7 +++---- drivers/media/platform/omap3isp/isp.c | 14 ++++++-------- drivers/media/platform/omap3isp/ispvideo.c | 7 +++---- drivers/media/platform/s3c-camif/camif-capture.c | 2 +- drivers/media/platform/vsp1/vsp1_video.c | 9 ++++----- drivers/media/platform/xilinx/xilinx-dma.c | 6 ++---- drivers/media/v4l2-core/v4l2-subdev.c | 2 +- drivers/staging/media/davinci_vpfe/vpfe_video.c | 6 +++--- drivers/staging/media/omap4iss/iss.c | 14 ++++++-------- drivers/staging/media/omap4iss/iss_video.c | 5 ++--- 14 files changed, 39 insertions(+), 54 deletions(-) commit fa17b46a6a01013f48c33934c09e02f51f099f2b Author: Mauro Carvalho Chehab Date: Fri Aug 21 12:17:40 2015 -0300 [media] media: add macros to check if subdev or V4L2 DMA As we'll be removing entity subtypes from the Kernel, we need to provide a way for drivers and core to check if a given entity is represented by a V4L2 subdev or if it is an V4L2 I/O entity (typically with DMA). Drivers that create entities that don't belong to any defined subdev category should use MEDIA_ENT_T_V4L2_SUBDEV_UNKNOWN. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab include/media/media-entity.h | 34 ++++++++++++++++++++++++++++++++++ include/uapi/linux/media.h | 3 +++ 2 files changed, 37 insertions(+) commit fef486a07d69cbcae81bf65a6817ff7383104a24 Author: Mauro Carvalho Chehab Date: Fri Aug 21 11:54:40 2015 -0300 [media] replace all occurrences of MEDIA_ENT_T_DEVNODE_DVB Now that interfaces and entities are distinct, it makes no sense of keeping something named as MEDIA_ENT_T_DEVNODE_DVB_foo. Made via this script: for i in $(git grep -l MEDIA_ENT_T|grep -v uapi/linux/media.h); do sed s,MEDIA_ENT_T_DEVNODE_DVB_,MEDIA_ENT_T_DVB_, <$i >a && mv a $i; done for i in $(git grep -l MEDIA_ENT_T|grep -v uapi/linux/media.h); do sed s,MEDIA_ENT_T_DVB_DVR,MEDIA_ENT_T_DVB_TSOUT, <$i >a && mv a $i; done for i in $(git grep -l MEDIA_ENT_T|grep -v uapi/linux/media.h); do sed s,MEDIA_ENT_T_DVB_FE,MEDIA_ENT_T_DVB_DEMOD, <$i >a && mv a $i; done for i in $(git grep -l MEDIA_ENT_T|grep -v uapi/linux/media.h); do sed s,MEDIA_ENT_T_DVB_NET,MEDIA_ENT_T_DVB_DEMOD_NET_DECAP, <$i >a && mv a $i; done Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/v4l/media-ioc-enum-entities.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit cf49066152c5b46c0b90f44593beda27997ca58b Author: Mauro Carvalho Chehab Date: Fri Aug 21 11:50:17 2015 -0300 [media] replace all occurrences of MEDIA_ENT_T_DEVNODE_V4L Now that interfaces and entities are distinct, it makes no sense of keeping something named as MEDIA_ENT_T_DEVNODE. This change was done with this script: for i in $(git grep -l MEDIA_ENT_T|grep -v uapi/linux/media.h); do sed s,MEDIA_ENT_T_DEVNODE_V4L,MEDIA_ENT_T_V4L2_VIDEO, <$i >a && mv a $i; done Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/v4l/media-ioc-enum-entities.xml | 2 +- drivers/media/platform/xilinx/xilinx-dma.c | 2 +- drivers/media/v4l2-core/v4l2-dev.c | 2 +- drivers/media/v4l2-core/v4l2-subdev.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) commit 32fdc0e1a87c1ed50f77a9e54413165282e99b8b Author: Mauro Carvalho Chehab Date: Fri Aug 21 11:40:34 2015 -0300 [media] uapi/media.h: Fix entity namespace Now that interfaces got created, we need to fix the entity namespace. So, let's create a consistent new namespace and add backward compatibility macros to keep the old namespace preserved. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/dvbdev.c | 26 +++++++------- include/uapi/linux/media.h | 76 ++++++++++++++++++++++++++++++----------- 2 files changed, 70 insertions(+), 32 deletions(-) commit 8ddb90d2e5dc1b80c538d371bfe361e1bae29297 Author: Mauro Carvalho Chehab Date: Fri Aug 21 09:32:38 2015 -0300 [media] dvbdev: add support for indirect interface links Some interfaces indirectly control multiple entities. Add support for those. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/dvbdev.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 57cf79b79b18d885c144889989b47149e23c8dc2 Author: Mauro Carvalho Chehab Date: Fri Aug 21 09:23:22 2015 -0300 [media] media: add a linked list to track interfaces by mdev The media device should list the interface objects, so add a linked list for those interfaces in struct media_device. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 1 + drivers/media/media-entity.c | 3 +++ include/media/media-device.h | 2 ++ include/media/media-entity.h | 3 +++ 4 files changed, 9 insertions(+) commit 8211b187ec6461e8d80a36304bd9fc087e3c490f Author: Mauro Carvalho Chehab Date: Fri Aug 21 08:20:22 2015 -0300 [media] dvbdev: add support for interfaces Now that the infrastruct for that is set, add support for interfaces. Please notice that we're missing two links: DVB FE intf -> tuner DVB demux intf -> dvr Those should be added latter, after having the entire graph set. With the current infrastructure, those should be added at dvb_create_media_graph(), but it would also require some extra core changes, to allow the function to enumerate the interfaces. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/dvbdev.c | 102 ++++++++++++++++++++++++++++++---------- drivers/media/dvb-core/dvbdev.h | 1 + 2 files changed, 79 insertions(+), 24 deletions(-) commit 1283f849dce2e64690e610216cd8dc3df9789bae Author: Mauro Carvalho Chehab Date: Fri Aug 28 15:43:36 2015 -0300 [media] media-entity: add a helper function to create interface As we'll be adding other interface types in the future, put the common interface create code on a separate function. Suggested-by: Hans Verkuil Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) commit 86e2662071d6f26704bb290317746149ce07be7a Author: Mauro Carvalho Chehab Date: Fri Aug 7 10:36:25 2015 -0300 [media] media: add support to link interfaces and entities Now that we have a new graph object called "interfaces", we need to be able to link them to the entities. Add a linked list to the interfaces to allow them to be linked to the entities. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 38 ++++++++++++++++++++++++++++++++++++++ include/media/media-entity.h | 9 +++++++++ 2 files changed, 47 insertions(+) commit 3c0e266fba5897c02c4bd23521a3271d338650ad Author: Mauro Carvalho Chehab Date: Fri Aug 21 08:45:34 2015 -0300 [media] media: make link debug printk more generic Remove entity name from the link as this exists only if the object type is PAD on both link ends. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) commit 4b8a3c08592ae0d530c87e2e1672ed8d9184dc09 Author: Mauro Carvalho Chehab Date: Thu Aug 20 09:10:07 2015 -0300 [media] media: make media_link more generic to handle interace links By adding an union at media_link, we get for free a way to represent interface->entity links. No need to change anything at the code, just at the internal header file. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab include/media/media-entity.h | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) commit 23615de5ee742f2f49833777ab015cf1a83fcbc3 Author: Mauro Carvalho Chehab Date: Thu Aug 20 08:21:35 2015 -0300 [media] media: make add link more generic The media_entity_add_link() function takes an entity as an argument just to get the list head. Make it more generic by changing the function argument to list_head. No functional changes. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 57208e5e25f263d27ea00e530c95f62071573cb7 Author: Mauro Carvalho Chehab Date: Fri Aug 7 06:55:40 2015 -0300 [media] media: convert links from array to list The entire logic that represent graph links were developed on a time where there were no needs to dynamic remove links. So, although links are created/removed one by one via some functions, they're stored as an array inside the entity struct. As the array may grow, there's a logic inside the code that checks if the amount of space is not enough to store the needed links. If it isn't the core uses krealloc() to change the size of the link, with is bad, as it leaves the memory fragmented. So, convert links into a list. Also, currently, both source and sink entities need the link at the graph traversal logic inside media_entity. So there's a logic duplicating all links. That makes it to spend twice the memory needed. This is not a big deal for today's usage, where the number of links are not big. Yet, if during the MC workshop discussions, it was said that IIO graphs could have up to 4,000 entities. So, we may want to remove the duplication on some future. The problem is that it would require a separate linked list to store the backlinks inside the entity, or to use a more complex algorithm to do graph backlink traversal, with is something that the current graph traversal inside the core can't cope with. So, let's postpone a such change if/when it is actually needed. It should also be noticed that the media_link structure uses 44 bytes on 32-bit architectures and 84 bytes on 64-bit architecture. It will thus be allocated out of the 64-bytes and 96-bytes pools respectively. That's a 12.5% memory waste on 64-bit architectures and 31.25% on 32-bit architecture. A linked list is less efficient than an array in this case, but this could later be optimized if we can get rid of the reverse links (with would reduce memory allocation by 50%). Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/dvb_frontend.c | 9 +-- drivers/media/media-device.c | 25 +++--- drivers/media/media-entity.c | 128 +++++++++++++++--------------- drivers/media/usb/au0828/au0828-core.c | 12 ++- drivers/media/usb/au0828/au0828-video.c | 8 +- drivers/media/usb/cx231xx/cx231xx-video.c | 8 +- include/media/media-entity.h | 10 +-- 7 files changed, 97 insertions(+), 103 deletions(-) commit 8f6d368f726bb4fa069af5ef5806f15ba6da6ad8 Author: Mauro Carvalho Chehab Date: Wed Aug 19 20:18:35 2015 -0300 [media] media: Don't accept early-created links Links are graph objects that represent the links of two already existing objects in the graph. While with the current implementation, it is possible to create the links earlier, It doesn't make any sense to allow linking two objects when they are not both created. So, remove the code that would be handling those early-created links and add a BUG_ON() to ensure that. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 7 ------- drivers/media/media-entity.c | 2 ++ 2 files changed, 2 insertions(+), 7 deletions(-) commit ada58ced508ffb75ff59f23b726ffc79ac2282fe Author: Javier Martinez Canillas Date: Thu Sep 3 09:00:27 2015 -0300 [media] smiapp: create pad links after subdev registration The smiapp driver creates the pads links before the media entity is registered with the media device. This doesn't work now that object IDs are used to create links so the media_device has to be set. Move entity registration logic before pads links creation. Signed-off-by: Javier Martinez Canillas Acked-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/smiapp/smiapp-core.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit c5a98cac6ecd78ca647c41cb25e3ea1835579d70 Author: Javier Martinez Canillas Date: Thu Sep 3 08:46:06 2015 -0300 [media] uvcvideo: create pad links after subdev registration The uvc driver creates the pads links before the media entity is registered with the media device. This doesn't work now that obj IDs are used to create links so the media_device has to be set. Move entities registration logic before pads links creation. Signed-off-by: Javier Martinez Canillas Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/uvc/uvc_entity.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) commit c7621b3044f705dd20019e82a8418491b8080327 Author: Javier Martinez Canillas Date: Thu Sep 3 12:19:25 2015 -0300 [media] v4l: vsp1: separate links creation from entities init The vsp1 driver initializes the entities and creates the pads links before the entities are registered with the media device. This doesn't work now that object IDs are used to create links so the media_device has to be set. Split out the pads links creation from the entity initialization so are made after the entities registration. Signed-off-by: Javier Martinez Canillas Acked-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vsp1/vsp1_drv.c | 14 ++++++++++-- drivers/media/platform/vsp1/vsp1_rpf.c | 29 ++++++++++++++++-------- drivers/media/platform/vsp1/vsp1_rwpf.h | 5 +++++ drivers/media/platform/vsp1/vsp1_wpf.c | 40 ++++++++++++++++++++------------- 4 files changed, 62 insertions(+), 26 deletions(-) commit 7213fe7eec174fb2b958ecc3ce04a6f811c2d4da Author: Javier Martinez Canillas Date: Thu Sep 3 11:20:34 2015 -0300 [media] v4l: vsp1: create pad links after subdev registration The vsp1 driver creates the pads links before the media entities are registered with the media device. This doesn't work now that object IDs are used to create links so the media_device has to be set. Move entities registration logic before pads links creation. Signed-off-by: Javier Martinez Canillas Acked-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vsp1/vsp1_drv.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 5837ceea11ca11339e49947aacbccb62f3646993 Author: Javier Martinez Canillas Date: Wed Sep 2 11:28:08 2015 -0300 [media] staging: omap4iss: separate links creation from entities init The omap4iss driver initializes the entities and creates the pads links before the entities are registered with the media device. This does not work now that object IDs are used to create links so the media_device has to be set. Split out the pads links creation from the entity initialization so are made after the entities registration. Signed-off-by: Javier Martinez Canillas Acked-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/omap4iss/iss.c | 101 ++++++++++++++++++--------- drivers/staging/media/omap4iss/iss_csi2.c | 35 +++++++--- drivers/staging/media/omap4iss/iss_csi2.h | 1 + drivers/staging/media/omap4iss/iss_ipipeif.c | 29 ++++---- drivers/staging/media/omap4iss/iss_ipipeif.h | 1 + drivers/staging/media/omap4iss/iss_resizer.c | 29 ++++---- drivers/staging/media/omap4iss/iss_resizer.h | 1 + 7 files changed, 132 insertions(+), 65 deletions(-) commit 68a57fa93a9f7776ab502db389469dd1ac6a1c66 Author: Javier Martinez Canillas Date: Fri Aug 28 06:28:33 2015 -0300 [media] omap3isp: create links after all subdevs have been bound The omap3isp driver parses the graph endpoints to know how many subdevices needs to be registered async and register notifiers callbacks for to know when these are bound and when the async registrations are completed. Currently the entities pad are linked with the correct ISP input interface when the subdevs are bound but it happens before entitities are registered with the media device so that won't work now that the entity links list is initialized on device registration. So instead creating the pad links when the subdevice is bound, create them on the complete callback once all the subdevices have been bound but only try to create for the ones that have a bus configuration set during bound. Signed-off-by: Javier Martinez Canillas Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/omap3isp/isp.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) commit f2f6da0d77027d05bf8a06eb8b80fe139f9cc853 Author: Javier Martinez Canillas Date: Wed Aug 26 09:24:45 2015 -0300 [media] omap3isp: separate links creation from entities init The omap3isp driver initializes the entities and creates the pads links before the entities are registered with the media device. This does not work now that object IDs are used to create links so the media_device has to be set. Split out the pads links creation from the entity initialization so the links are created after the entities have been registered with the media device. Suggested-by: Mauro Carvalho Chehab Signed-off-by: Javier Martinez Canillas Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/omap3isp/isp.c | 152 +++++++++++++++++---------- drivers/media/platform/omap3isp/ispccdc.c | 22 ++-- drivers/media/platform/omap3isp/ispccdc.h | 1 + drivers/media/platform/omap3isp/ispccp2.c | 22 ++-- drivers/media/platform/omap3isp/ispccp2.h | 1 + drivers/media/platform/omap3isp/ispcsi2.c | 22 ++-- drivers/media/platform/omap3isp/ispcsi2.h | 1 + drivers/media/platform/omap3isp/isppreview.c | 33 +++--- drivers/media/platform/omap3isp/isppreview.h | 1 + drivers/media/platform/omap3isp/ispresizer.c | 33 +++--- drivers/media/platform/omap3isp/ispresizer.h | 1 + 11 files changed, 185 insertions(+), 104 deletions(-) commit 27e543fa87deea308f0cc5224ab19e397b0a5ded Author: Mauro Carvalho Chehab Date: Thu Aug 20 09:07:34 2015 -0300 [media] media: add functions to allow creating interfaces Interfaces are different than entities: they represent a Kernel<->userspace interaction, while entities represent a piece of hardware/firmware/software that executes a function. Let's distinguish them by creating a separate structure to store the interfaces. Later patches should change the existing drivers and logic to split the current interface embedded inside the entity structure (device nodes) into a separate object of the graph. Acked-by: Hans Verkuil Reviewed-by: Javier Martinez Canillas Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 83 ++++++++++++++++++++++++++++++++++++++++++++ include/media/media-device.h | 2 ++ include/media/media-entity.h | 48 +++++++++++++++++++++++++ 3 files changed, 133 insertions(+) commit a1d2510ebd7a14f0d1a89c138101beaeac076dd2 Author: Mauro Carvalho Chehab Date: Thu Aug 20 07:43:07 2015 -0300 [media] uapi/media.h: Declare interface types for V4L2 and DVB Declare the interface types that will be used by the new G_TOPOLOGY ioctl that will be defined later on. For now, we need those types, as they'll be used on the internal structs associated with the new media_interface graph object defined on the next patch. Acked-by: Hans Verkuil Reviewed-by: Javier Martinez Canillas Signed-off-by: Mauro Carvalho Chehab include/uapi/linux/media.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit b42ff142b8d880427e8c30b05de71b841a67aaad Author: Javier Martinez Canillas Date: Wed Aug 19 12:35:22 2015 -0300 [media] media: remove media entity .parent field Now that the struct media_entity .parent field is unused, it can be safely removed. Since all the previous users were converted to use the .mdev field from the embedded struct media_gobj instead. Signed-off-by: Javier Martinez Canillas Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab include/media/media-entity.h | 1 - 1 file changed, 1 deletion(-) commit d10c98949d1a1fff14d750fe5162213bb5b39e11 Author: Javier Martinez Canillas Date: Wed Aug 19 12:35:21 2015 -0300 [media] media: use entity.graph_obj.mdev instead of .parent The struct media_entity has a .parent field that stores a pointer to the parent struct media_device. But recently a media_gobj was embedded into the entities and since struct media_gojb already has a pointer to a struct media_device in the .mdev field, the .parent field becomes redundant and can be removed. This patch replaces all the usage of .parent by .graph_obj.mdev so that field will become unused and can be removed on a later patch. No functional changes. The transformation was made using the following coccinelle spatch: @@ struct media_entity *me; @@ - me->parent + me->graph_obj.mdev @@ struct media_entity *link; @@ - link->source->entity->parent + link->source->entity->graph_obj.mdev @@ struct exynos_video_entity *ve; @@ - ve->vdev.entity.parent + ve->vdev.entity.graph_obj.mdev Suggested-by: Mauro Carvalho Chehab Signed-off-by: Javier Martinez Canillas Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 8 ++--- drivers/media/media-entity.c | 34 ++++++++++++---------- drivers/media/platform/exynos4-is/fimc-isp-video.c | 6 ++-- drivers/media/platform/exynos4-is/fimc-lite.c | 8 ++--- drivers/media/platform/exynos4-is/media-dev.c | 2 +- drivers/media/platform/exynos4-is/media-dev.h | 8 ++--- drivers/media/platform/omap3isp/isp.c | 4 +-- drivers/media/platform/omap3isp/ispvideo.c | 2 +- drivers/media/platform/vsp1/vsp1_video.c | 2 +- drivers/media/platform/xilinx/xilinx-dma.c | 2 +- drivers/staging/media/davinci_vpfe/vpfe_video.c | 6 ++-- drivers/staging/media/omap4iss/iss.c | 4 +-- drivers/staging/media/omap4iss/iss_video.c | 2 +- 13 files changed, 45 insertions(+), 43 deletions(-) commit 8df00a15817e3a252510ac914870214859325189 Author: Mauro Carvalho Chehab Date: Fri Aug 7 08:14:38 2015 -0300 [media] media: rename the function that create pad links With the new API, a link can be either between two PADs or between an interface and an entity. So, we need to use a better name for the function that create links between two pads. So, rename the such function to media_create_pad_link(). No functional changes. This patch was created via this shell script: for i in $(find drivers/media -name '*.[ch]' -type f) $(find drivers/staging/media -name '*.[ch]' -type f) $(find include/ -name '*.h' -type f) ; do sed s,media_entity_create_link,media_create_pad_link,g <$i >a && mv a $i; done Acked-by: Hans Verkuil Tested-by: Javier Martinez Canillas Signed-off-by: Mauro Carvalho Chehab Documentation/media-framework.txt | 2 +- drivers/media/dvb-core/dvbdev.c | 8 ++++---- drivers/media/i2c/s5c73m3/s5c73m3-core.c | 4 ++-- drivers/media/i2c/s5k5baf.c | 2 +- drivers/media/i2c/smiapp/smiapp-core.c | 4 ++-- drivers/media/media-entity.c | 4 ++-- drivers/media/platform/exynos4-is/media-dev.c | 16 ++++++++-------- drivers/media/platform/omap3isp/isp.c | 18 +++++++++--------- drivers/media/platform/omap3isp/ispccdc.c | 2 +- drivers/media/platform/omap3isp/ispccp2.c | 2 +- drivers/media/platform/omap3isp/ispcsi2.c | 2 +- drivers/media/platform/omap3isp/isppreview.c | 4 ++-- drivers/media/platform/omap3isp/ispresizer.c | 4 ++-- drivers/media/platform/s3c-camif/camif-core.c | 4 ++-- drivers/media/platform/vsp1/vsp1_drv.c | 4 ++-- drivers/media/platform/vsp1/vsp1_rpf.c | 2 +- drivers/media/platform/vsp1/vsp1_wpf.c | 2 +- drivers/media/platform/xilinx/xilinx-vipp.c | 4 ++-- drivers/media/usb/au0828/au0828-core.c | 6 +++--- drivers/media/usb/cx231xx/cx231xx-cards.c | 6 +++--- drivers/media/usb/uvc/uvc_entity.c | 2 +- drivers/staging/media/davinci_vpfe/dm365_ipipeif.c | 2 +- drivers/staging/media/davinci_vpfe/dm365_isif.c | 2 +- drivers/staging/media/davinci_vpfe/dm365_resizer.c | 8 ++++---- drivers/staging/media/davinci_vpfe/vpfe_mc_capture.c | 10 +++++----- drivers/staging/media/omap4iss/iss.c | 12 ++++++------ drivers/staging/media/omap4iss/iss_csi2.c | 2 +- drivers/staging/media/omap4iss/iss_ipipeif.c | 2 +- drivers/staging/media/omap4iss/iss_resizer.c | 2 +- include/media/media-entity.h | 2 +- 30 files changed, 72 insertions(+), 72 deletions(-) commit 39a956c4147e4f696f729916f677673e9a9dc7ab Author: Mauro Carvalho Chehab Date: Thu Aug 13 14:42:42 2015 -0300 [media] media: add a debug message to warn about gobj creation/removal It helps to check if the media controller is doing the right thing with the object creation and removal. No extra code/data will be produced if DEBUG or CONFIG_DYNAMIC_DEBUG is not enabled. Acked-by: Hans Verkuil Reviewed-by: Javier Martinez Canillas Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 68 +++++++++++++++++++++++++++++++++++++++++++- include/media/media-entity.h | 7 +++++ 2 files changed, 74 insertions(+), 1 deletion(-) commit 8f5a3188fbd13fdd5525fc6177cb19bf3996ee99 Author: Mauro Carvalho Chehab Date: Thu Aug 13 15:22:24 2015 -0300 [media] media: add messages when media device gets (un)registered We can only free the media device after being sure that no graph object is used. In order to help tracking it, let's add debug messages that will print when the media controller gets registered or unregistered. Acked-by: Hans Verkuil Reviewed-by: Javier Martinez Canillas Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 5 +++++ 1 file changed, 5 insertions(+) commit 6b6a42780597028135f82c96e42c6d2bcd83fbae Author: Mauro Carvalho Chehab Date: Fri Aug 14 12:54:36 2015 -0300 [media] media: use media_gobj inside links Just like entities and pads, links also need to have unique Object IDs along a given media controller. So, let's add a media_gobj inside it and initialize the object then a new link is created. Acked-by: Hans Verkuil Tested-by: Javier Martinez Canillas Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 9 +++++++++ drivers/media/media-entity.c | 9 +++++++++ include/media/media-device.h | 2 ++ include/media/media-entity.h | 3 +++ 4 files changed, 23 insertions(+) commit 18710dc67a433ed2c3ecaaffefd8e34502e53262 Author: Mauro Carvalho Chehab Date: Fri Aug 14 12:50:08 2015 -0300 [media] media: use media_gobj inside pads PADs also need unique object IDs that won't conflict with the entity object IDs. The pad objects are currently created via media_entity_init() and, once created, never change. While this will likely change in the future in order to support dynamic changes, for now we'll keep PADs as arrays and initialize the media_gobj embedded structs when registering the entity. Acked-by: Hans Verkuil Tested-by: Javier Martinez Canillas Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 11 +++++++++++ drivers/media/media-entity.c | 3 +++ include/media/media-device.h | 2 ++ include/media/media-entity.h | 3 +++ 4 files changed, 19 insertions(+) commit bfab2aacccfc144e2cceccb71ec89f1eff1b8c51 Author: Mauro Carvalho Chehab Date: Fri Aug 14 12:47:48 2015 -0300 [media] media: use media_gobj inside entities As entities are graph objects, let's embed media_gobj on it. That ensures an unique ID for entities that can be global along the entire media controller. For now, we'll keep the already existing entity ID. Such field need to be dropped at some point, but for now, let's not do this, to avoid needing to review all drivers and the userspace apps. Acked-by: Hans Verkuil Tested-by: Javier Martinez Canillas Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 8 +++----- drivers/media/media-entity.c | 7 ++++++- include/media/media-device.h | 3 ++- include/media/media-entity.h | 9 ++++----- 4 files changed, 15 insertions(+), 12 deletions(-) commit ec6e4c950621a1d0db1e9b015ede4a3938fdfd18 Author: Mauro Carvalho Chehab Date: Tue Aug 25 10:28:36 2015 -0300 [media] media: add a common struct to be embed on media graph objects Due to the MC API proposed changes, we'll need to have an unique object ID for all graph objects, and have some shared fields that will be common on all media graph objects. Right now, the only common object is the object ID, but other fields will be added later on. Acked-by: Hans Verkuil Reviewed-by: Javier Martinez Canillas Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 32 +++++++++++++++++++++++ include/media/media-entity.h | 61 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+) commit e0077cfdee9d249d3f85b9c7efd9e49d218093c8 Author: Javier Martinez Canillas Date: Wed Aug 19 12:35:20 2015 -0300 [media] omap3isp: get entity ID using media_entity_id() Accessing media_entity ID should now use media_entity_id() macro to obtain the entity ID, as a next patch will remove the .id field from struct media_entity . So, get rid of it, otherwise the omap3isp driver will fail to build. Signed-off-by: Javier Martinez Canillas Acked-by: Hans Verkuil Acked-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/omap3isp/isp.c | 7 +++++-- drivers/media/platform/omap3isp/ispccdc.c | 2 +- drivers/media/platform/omap3isp/ispvideo.c | 8 +++++--- 3 files changed, 11 insertions(+), 6 deletions(-) commit 1302d39c4a7e31b9844638acb45c784633015cfd Author: Javier Martinez Canillas Date: Wed Aug 19 12:35:19 2015 -0300 [media] staging: omap4iss: get entity ID using media_entity_id() Accessing media_entity ID should now use media_entity_id() macro to obtain the entity ID, as a next patch will remove the .id field from struct media_entity . So, get rid of it, otherwise the omap4iss driver will fail to build. Signed-off-by: Javier Martinez Canillas Acked-by: Hans Verkuil Acked-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/omap4iss/iss.c | 2 +- drivers/staging/media/omap4iss/iss_video.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit fa762394fd85c838ade769990478bc4e01fd95e8 Author: Mauro Carvalho Chehab Date: Fri Aug 14 10:42:05 2015 -0300 [media] media: create a macro to get entity ID Instead of accessing directly entity.id, let's create a macro, as this field will be moved into a common struct later on. Acked-by: Hans Verkuil Reviewed-by: Javier Martinez Canillas Acked-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 8 ++++---- drivers/media/media-entity.c | 8 ++++---- drivers/media/platform/vsp1/vsp1_video.c | 4 ++-- include/media/media-entity.h | 5 +++++ 4 files changed, 15 insertions(+), 10 deletions(-) commit 20fe0319de9aca71ba45e2f93c4a2a73dabde4da Author: Mauro Carvalho Chehab Date: Thu Aug 20 06:53:10 2015 -0300 [media] au0828: Fix the logic that enables the analog demoder link This logic was broken on the original patch, likely due to a cut-and-paste mistake. Fix it. Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/au0828/au0828-video.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 21a0654200f24208aadd7bdc80fcdec65d2eb64b Author: Mauro Carvalho Chehab Date: Wed Aug 19 06:57:59 2015 -0300 [media] Kconfig: Re-enable Media controller support for DVB This was depending on broken because we're working at the Media Controller API, with has... issues. As this got fixed, we can re-enable it. Signed-off-by: Mauro Carvalho Chehab drivers/media/Kconfig | 1 - 1 file changed, 1 deletion(-) commit 1809510715c4187fa7338204cac53e30326d5d04 Author: Mauro Carvalho Chehab Date: Thu Aug 6 09:25:57 2015 -0300 [media] media: get rid of unused "extra_links" param on media_entity_init() Currently, media_entity_init() creates an array with the links, allocated at init time. It provides a parameter (extra_links) that would allocate more links than the current needs, but this is not used by any driver. As we want to be able to do dynamic link allocation/removal, we'll need to change the implementation of the links. So, before doing that, let's first remove that extra unused parameter, in order to cleanup the interface first. Signed-off-by: Mauro Carvalho Chehab Acked-by: Sakari Ailus Acked-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab Documentation/media-framework.txt | 7 +++---- Documentation/video4linux/v4l2-framework.txt | 4 ++-- Documentation/zh_CN/video4linux/v4l2-framework.txt | 4 ++-- drivers/media/dvb-core/dvbdev.c | 2 +- drivers/media/dvb-frontends/au8522_decoder.c | 2 +- drivers/media/i2c/ad9389b.c | 2 +- drivers/media/i2c/adp1653.c | 2 +- drivers/media/i2c/adv7180.c | 2 +- drivers/media/i2c/adv7511.c | 2 +- drivers/media/i2c/adv7604.c | 2 +- drivers/media/i2c/adv7842.c | 2 +- drivers/media/i2c/as3645a.c | 2 +- drivers/media/i2c/cx25840/cx25840-core.c | 2 +- drivers/media/i2c/lm3560.c | 2 +- drivers/media/i2c/lm3646.c | 2 +- drivers/media/i2c/m5mols/m5mols_core.c | 2 +- drivers/media/i2c/mt9m032.c | 2 +- drivers/media/i2c/mt9p031.c | 2 +- drivers/media/i2c/mt9t001.c | 2 +- drivers/media/i2c/mt9v032.c | 2 +- drivers/media/i2c/noon010pc30.c | 2 +- drivers/media/i2c/ov2659.c | 2 +- drivers/media/i2c/ov9650.c | 2 +- drivers/media/i2c/s5c73m3/s5c73m3-core.c | 4 ++-- drivers/media/i2c/s5k4ecgx.c | 2 +- drivers/media/i2c/s5k5baf.c | 4 ++-- drivers/media/i2c/s5k6a3.c | 2 +- drivers/media/i2c/s5k6aa.c | 2 +- drivers/media/i2c/smiapp/smiapp-core.c | 4 ++-- drivers/media/i2c/tc358743.c | 2 +- drivers/media/i2c/tvp514x.c | 2 +- drivers/media/i2c/tvp7002.c | 2 +- drivers/media/media-entity.c | 18 ++++++++---------- drivers/media/platform/exynos4-is/fimc-capture.c | 4 ++-- drivers/media/platform/exynos4-is/fimc-isp-video.c | 2 +- drivers/media/platform/exynos4-is/fimc-isp.c | 2 +- drivers/media/platform/exynos4-is/fimc-lite.c | 4 ++-- drivers/media/platform/exynos4-is/fimc-m2m.c | 2 +- drivers/media/platform/exynos4-is/mipi-csis.c | 2 +- drivers/media/platform/omap3isp/ispccdc.c | 2 +- drivers/media/platform/omap3isp/ispccp2.c | 2 +- drivers/media/platform/omap3isp/ispcsi2.c | 2 +- drivers/media/platform/omap3isp/isppreview.c | 2 +- drivers/media/platform/omap3isp/ispresizer.c | 2 +- drivers/media/platform/omap3isp/ispstat.c | 2 +- drivers/media/platform/omap3isp/ispvideo.c | 2 +- drivers/media/platform/s3c-camif/camif-capture.c | 4 ++-- drivers/media/platform/vsp1/vsp1_entity.c | 2 +- drivers/media/platform/vsp1/vsp1_video.c | 2 +- drivers/media/platform/xilinx/xilinx-dma.c | 2 +- drivers/media/platform/xilinx/xilinx-tpg.c | 2 +- drivers/media/usb/au0828/au0828-video.c | 4 ++-- drivers/media/usb/cx231xx/cx231xx-video.c | 4 ++-- drivers/media/usb/uvc/uvc_entity.c | 4 ++-- drivers/media/v4l2-core/tuner-core.c | 2 +- drivers/media/v4l2-core/v4l2-flash-led-class.c | 2 +- drivers/staging/media/davinci_vpfe/dm365_ipipe.c | 2 +- drivers/staging/media/davinci_vpfe/dm365_ipipeif.c | 2 +- drivers/staging/media/davinci_vpfe/dm365_isif.c | 2 +- drivers/staging/media/davinci_vpfe/dm365_resizer.c | 6 +++--- drivers/staging/media/davinci_vpfe/vpfe_video.c | 2 +- drivers/staging/media/omap4iss/iss_csi2.c | 2 +- drivers/staging/media/omap4iss/iss_ipipe.c | 2 +- drivers/staging/media/omap4iss/iss_ipipeif.c | 2 +- drivers/staging/media/omap4iss/iss_resizer.c | 2 +- drivers/staging/media/omap4iss/iss_video.c | 2 +- include/media/media-entity.h | 2 +- 67 files changed, 89 insertions(+), 92 deletions(-) commit 0158e7b6a29f33a2c91cf045468958fbe8cb0b4c Author: Mauro Carvalho Chehab Date: Thu Jun 18 13:06:38 2015 -0300 [media] au0828: Cache the decoder info at au0828 dev structure Instead of seeking for the decoder every time analog stream is started, cache it. This simplifies the code a little bit. Requested-by: Hans Verkuil Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/au0828/au0828-cards.c | 4 ++++ drivers/media/usb/au0828/au0828-video.c | 19 +++++-------------- drivers/media/usb/au0828/au0828.h | 1 + 3 files changed, 10 insertions(+), 14 deletions(-) commit bed6919665072b1e5bad31a013d53798394e097c Author: Rafael Lourenço de Lima Chehab Date: Mon Jun 8 22:20:46 2015 -0300 [media] au0828: Add support for media controller Add support for analog and dvb tv using media controller. Signed-off-by: Rafael Lourenço de Lima Chehab Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/au8522_decoder.c | 17 +++++ drivers/media/dvb-frontends/au8522_priv.h | 12 ++++ drivers/media/usb/au0828/au0828-core.c | 98 ++++++++++++++++++++++++++++ drivers/media/usb/au0828/au0828-dvb.c | 10 +++ drivers/media/usb/au0828/au0828-video.c | 83 +++++++++++++++++++++++ drivers/media/usb/au0828/au0828.h | 6 ++ 6 files changed, 226 insertions(+) commit b28cf57246d5b797ba725bb033110c247f2c301f Merge: a305810 a7ca422 Author: Chris Mason Date: Mon Jan 11 06:08:37 2016 -0800 Merge branch 'misc-cleanups-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux into for-linus-4.5 Signed-off-by: Chris Mason commit e576d60bb21e7add884f052ff0e5c28ebf7b7461 Author: Shuah Khan Date: Fri Jun 5 17:11:54 2015 -0300 [media] media: define Media Controller API when CONFIG_MEDIA_CONTROLLER enabled Change to define Media Controller API when CONFIG_MEDIA_CONTROLLER is enabled. Define stubs for CONFIG_MEDIA_CONTROLLER disabled case. This will help avoid drivers needing to enclose Media Controller code within ifdef CONFIG_MEDIA_CONTROLLER block. Signed-off-by: Shuah Khan Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 4 ++++ include/media/media-device.h | 27 +++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) commit d062f91193dbd5a0c1d8469c8517ec8dd552c3f2 Author: Shuah Khan Date: Wed Jun 3 12:12:53 2015 -0300 [media] media: new media controller API for device resource support Add new media controller API to allocate media device as a device resource. When a media device is created on the main struct device which is the parent device for the interface device, it will be available to all drivers associated with that interface. For example, if a usb media device driver creates the media device on the main struct device which is common for all the drivers that control the media device, including the non-media ALSA driver, media controller API can be used to share access to the resources on the media device. This new interface provides the above described feature. A second interface that finds and returns the media device is added to allow drivers to find the media device created by any of the drivers associated with the device. Signed-off-by: Shuah Khan Signed-off-by: Mauro Carvalho Chehab drivers/media/media-device.c | 33 +++++++++++++++++++++++++++++++++ include/media/media-device.h | 2 ++ 2 files changed, 35 insertions(+) commit a3058101c17d2825f34a0ab5c37d93ead0f4d9dc Merge: 511711a ee592d0 Author: Chris Mason Date: Mon Jan 11 05:59:32 2016 -0800 Merge branch 'misc-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux into for-linus-4.5 commit d0021d3bdfe9d551859bca1f58da0e6be8e26043 Merge: d5221ab 2d4a326 Author: Mark Brown Date: Mon Jan 11 13:54:40 2016 +0000 Merge remote-tracking branch 'asoc/topic/wm8960' into asoc-next commit d5221ab6b289da82dcf73b475aaee6a3da5c4ca5 Merge: 5450487 3ae08dc Author: Mark Brown Date: Mon Jan 11 13:54:39 2016 +0000 Merge remote-tracking branch 'asoc/topic/rt5651' into asoc-next commit 5450487a0954f87607b14d52a71d44c147d2d0d5 Merge: 4aace4c 8012c98 4ab936d Author: Mark Brown Date: Mon Jan 11 13:54:38 2016 +0000 Merge remote-tracking branches 'asoc/topic/rcar' and 'asoc/topic/rockchip' into asoc-next commit 4aace4ce8d49e1ee46b9690a456752999e53fe92 Merge: d6c513e d44c611 f51e3d5 Author: Mark Brown Date: Mon Jan 11 13:54:36 2016 +0000 Merge remote-tracking branches 'asoc/topic/fsl-asrc' and 'asoc/topic/fsl-ssi' into asoc-next commit d6c513e8b6d0d18b7f47dd555d36c048e6c9ee82 Merge: e72ceb2 f644eb6 4acfa36 Author: Mark Brown Date: Mon Jan 11 13:54:35 2016 +0000 Merge remote-tracking branches 'asoc/topic/da7218' and 'asoc/topic/da7219' into asoc-next commit e72ceb2aca268af62384bd5c0fc7afdf678d49ec Merge: 188bdf7 7905f08 bb18f09 Author: Mark Brown Date: Mon Jan 11 13:54:34 2016 +0000 Merge remote-tracking branches 'asoc/topic/bcm2835' and 'asoc/topic/cleanup' into asoc-next commit 188bdf726877fb27530934baea90876dfc2012ba Merge: 551e13a4 83a40ce 7cb1dc8 Author: Mark Brown Date: Mon Jan 11 13:54:32 2016 +0000 Merge remote-tracking branches 'asoc/topic/adsp' and 'asoc/topic/amd' into asoc-next commit 551e13a4b94301e8a65e29b652935b81d8d32861 Merge: 51a545a 15b0f4d Author: Mark Brown Date: Mon Jan 11 13:54:32 2016 +0000 Merge remote-tracking branch 'asoc/topic/rt5645' into asoc-next commit 51a545a343a4af02c7c1f27822c9dc63b6a8280b Merge: a1916ff 0471cd9 Author: Mark Brown Date: Mon Jan 11 13:54:31 2016 +0000 Merge remote-tracking branch 'asoc/topic/pcm1792a' into asoc-next commit a1916ff3500db308bff5913996a62b0bf8c4a97e Merge: 2dd49f8 f2ed6b0 Author: Mark Brown Date: Mon Jan 11 13:54:31 2016 +0000 Merge remote-tracking branch 'asoc/topic/pcm-list' into asoc-next commit 2dd49f8e6f2029e1fd449d5e5190fd19fa0fa3d3 Merge: 804c0a9 3f80978 Author: Mark Brown Date: Mon Jan 11 13:54:30 2016 +0000 Merge remote-tracking branch 'asoc/topic/pcm' into asoc-next commit 804c0a9569bd383358680199a22404aafedcc993 Merge: fffe9b8 26eb5a9 Author: Mark Brown Date: Mon Jan 11 13:54:29 2016 +0000 Merge remote-tracking branch 'asoc/topic/arizona' into asoc-next commit fffe9b89d808782a7370b0f70c7271a9f65a261c Merge: 7b2f32c 822ad70 Author: Mark Brown Date: Mon Jan 11 13:54:29 2016 +0000 Merge tag 'asoc-v4.5' into asoc-next ASoC: Updates for v4.5 This is quite a busy release on the driver front with a lot of new drivers being added but comparatively quiet on the core side with only one big change going in and that a fairly straightforward refactoring. - Conversion of the array of DAI links to a list by Mengdong Lin, supporting dynamically adding and removing DAI links. - Some more fixes for the topology code, though it is still not final and ready for enabling in production. We really need to get to the point where that can be done. - A pile of changes for Intel SkyLake drivers which hopefully deliver some useful initial functionality for systems with this chipset, though there is more work still to come. - New drivers for a number of Imagination Technologies IPs. - Lots of new features and cleanups for the Renesas drivers. - ANC support for WM5110. - New driver for Atmel class D speaker drivers. - New drivers for Cirrus CS47L24 and WM1831. - New driver for Dialog DA7128. - New drivers for Realtek RT5659 and RT56156. - New driver for Rockchip RK3036. - New driver for TI PC3168A # gpg: Signature made Wed 23 Dec 2015 00:42:40 GMT using RSA key ID 5D5487D0 # gpg: Good signature from "Mark Brown " # gpg: aka "Mark Brown " # gpg: aka "Mark Brown " # gpg: aka "Mark Brown " # gpg: aka "Mark Brown " # gpg: aka "Mark Brown " # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 3F25 68AA C269 98F9 E813 A1C5 C3F4 36CA 30F5 D8EB # Subkey fingerprint: ADE6 68AA 6757 18B5 9FE2 9FEA 24D6 8B72 5D54 87D0 commit 7b2f32cc81e14149e2fe515f69f35f9e11e8ba5a Merge: b7f08d2 fe09dd8 Author: Mark Brown Date: Mon Jan 11 13:54:28 2016 +0000 Merge remote-tracking branch 'asoc/topic/intel' into asoc-next commit b7f08d29c9ef76fb4bc95385e3f90b51e0494a3b Merge: c8980d2 a106804 Author: Mark Brown Date: Mon Jan 11 13:54:27 2016 +0000 Merge remote-tracking branch 'asoc/fix/compress' into asoc-linus commit c8980d2c17e40767c0971e0200c645c198a96fe3 Merge: d672e98 2433872 Author: Mark Brown Date: Mon Jan 11 13:54:26 2016 +0000 Merge remote-tracking branch 'asoc/fix/arizona' into asoc-linus commit d672e98b9b718d66e41e6e11ae2668a04a87c3c5 Merge: 1683098 bc42f36 Author: Mark Brown Date: Mon Jan 11 13:54:26 2016 +0000 Merge tag 'asoc-fix-v4.4-rc8' into asoc-linus ASoC: Last minute fixes for v4.4 A few final fixes for v4.4, the main one being the two patches to the new Sky Lake drivers which fix a previous incorrect fix that went in during an earlier -rc. # gpg: Signature made Wed 06 Jan 2016 17:12:57 GMT using RSA key ID 5D5487D0 # gpg: Good signature from "Mark Brown " # gpg: aka "Mark Brown " # gpg: aka "Mark Brown " # gpg: aka "Mark Brown " # gpg: aka "Mark Brown " # gpg: aka "Mark Brown " # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 3F25 68AA C269 98F9 E813 A1C5 C3F4 36CA 30F5 D8EB # Subkey fingerprint: ADE6 68AA 6757 18B5 9FE2 9FEA 24D6 8B72 5D54 87D0 commit c3152592e70bbf023ec106ee9ea271e9060bc09a Merge: afd2ff9 768acf4 Author: Mauro Carvalho Chehab Date: Mon Jan 11 11:13:27 2016 -0200 Merge branch 'patchwork' into v4l_for_linus * patchwork: (204 commits) [media] rc: sunxi-cir: Initialize the spinlock properly [media] rtl2832: do not filter out slave TS null packets [media] rtl2832: print reg number on error case [media] rtl28xxu: return demod reg page from driver cache [media] coda: enable MPEG-2 ES decoding [media] coda: don't start streaming without queued buffers [media] coda: hook up vidioc_prepare_buf [media] coda: relax coda_jpeg_check_buffer for trailing bytes [media] coda: make to_coda_video_device static [media] s5p-mfc: remove volatile attribute from MFC register addresses [media] s5p-mfc: merge together s5p_mfc_hw_call and s5p_mfc_hw_call_void [media] s5p-mfc: use spinlock to protect MFC context [media] s5p-mfc: remove unnecessary callbacks [media] s5p-mfc: make queue cleanup code common [media] s5p-mfc: use one implementation of s5p_mfc_get_new_ctx [media] s5p-mfc: constify s5p_mfc_codec_ops structures [media] au8522: Avoid memory leak for device config data [media] ir-lirc-codec.c: don't leak lirc->drv-rbuf [media] uvcvideo: small cleanup in uvc_video_clock_update() [media] uvcvideo: Fix reading the current exposure value of UVC ... commit fe09dd8eb2310ec658f49a5431df2259f11cbe9e Author: Arnd Bergmann Date: Mon Jan 11 13:09:55 2016 +0100 ASoC: hdac_hdmi: remove unused hdac_hdmi_query_pin_connlist A recent rework removed the only user of the hdac_hdmi_query_pin_connlist function, so we now get a warning when building the hdac_hdmi driver: hdac_hdmi.c:313:12: warning: 'hdac_hdmi_query_pin_connlist' defined but not used [-Wunused-function] This removes the function, which makes the file build cleanly again. Signed-off-by: Arnd Bergmann Fixes: 15b914476bf2 ("ASoC: hdac_hdmi: Use list to add pins and converters") Signed-off-by: Mark Brown sound/soc/codecs/hdac_hdmi.c | 22 ---------------------- 1 file changed, 22 deletions(-) commit 7cb1dc810935fbf82ad06007dc7fb08d93c1e59f Author: Guenter Roeck Date: Mon Jan 11 02:41:05 2016 -0800 ASoC: AMD: Add missing include file arm:allmodconfig, s390:allmodconfig, sparc64:allmodconfig, and probably other builds fail with sound/soc/amd/acp-pcm-dma.c:83:2: error: implicit declaration of function ‘readl’ sound/soc/amd/acp-pcm-dma.c:88:2: error: implicit declaration of function ‘writel’ Include linux/io.h explicitly to fix the problem. Fixes: 7c31335a03b6a ("ASoC: AMD: add AMD ASoC ACP 2.x DMA driver") Cc: Maruthi Srinivas Bayyavarapu Signed-off-by: Guenter Roeck Signed-off-by: Mark Brown sound/soc/amd/acp-pcm-dma.c | 1 + 1 file changed, 1 insertion(+) commit 4dd041b6f68ad942b843038e4ff6932c6571ccad Merge: 0c6623e 8bc403b Author: Arnd Bergmann Date: Mon Jan 11 13:26:37 2016 +0100 Merge tag 'renesas-dt-fixes-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/dt Merge "Renesas ARM Based SoC DT Fixes for v4.5" from Simon Horman: * Add compatible property to "partitions" node As of commit e488ca9f8d4f62c2 ("doc: dt: mtd: partitions: add compatible property to "partitions" node"), which is in v4.4-rc6, the "partitions" subnode of an SPI FLASH device node must have a compatible property. The partitions are no longer detected if it is not present. * tag 'renesas-dt-fixes-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: dts: silk: Add compatible property to "partitions" node ARM: dts: gose: Add compatible property to "partitions" node ARM: dts: porter: Add compatible property to "partitions" node ARM: dts: koelsch: Add compatible property to "partitions" node ARM: dts: lager: Add compatible property to "partitions" node ARM: dts: bockw: Add compatible property to "partitions" node commit c2ab7282f0fcd11eea4d0ba45d1c65d89428c314 Author: Heiko Carstens Date: Thu Jan 7 13:37:22 2016 +0100 s390/sclp: fix possible control register corruption sclp_sync_wait() disables all external interrupt classes except for the service signal subclass. The static mask used for that however is wrong. It clears a couple of bits which shouldn't be cleared and on the other hand potentially does not clear bits which should be cleared. Fix this by using the same generic mask like we do it in our delay implementation. Signed-off-by: Heiko Carstens Reviewed-by: Gerald Schaefer Signed-off-by: Martin Schwidefsky drivers/s390/char/sclp.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit bcb7825a77f41c7dd91da6f7ac10b928156a322e Author: Ard Biesheuvel Date: Fri Jan 1 13:39:22 2016 +0100 s390: fix normalization bug in exception table sorting The normalization pass in the sorting routine of the relative exception table serves two purposes: - it ensures that the address fields of the exception table entries are fully ordered, so that no ambiguities arise between entries with identical instruction offsets (i.e., when two instructions that are exactly 8 bytes apart each have an exception table entry associated with them) - it ensures that the offsets of both the instruction and the fixup fields of each entry are relative to their final location after sorting. Commit eb608fb366de ("s390/exceptions: switch to relative exception table entries") ported the relative exception table format from x86, but modified the sorting routine to only normalize the instruction offset field and not the fixup offset field. The result is that the fixup offset of each entry will be relative to the original location of the entry before sorting, likely leading to crashes when those entries are dereferenced. Fixes: eb608fb366de ("s390/exceptions: switch to relative exception table entries") Signed-off-by: Ard Biesheuvel Cc: Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/mm/extable.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit cb14def6a9cae973ba6f702443c8fc589998279c Author: Heiko Carstens Date: Thu Jul 2 17:30:31 2015 +0200 s390/configs: update default configurations Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/configs/default_defconfig | 27 ++++++++++++--------------- arch/s390/configs/gcov_defconfig | 24 ++++++++++-------------- arch/s390/configs/performance_defconfig | 24 ++++++++++-------------- arch/s390/configs/zfcpdump_defconfig | 10 ++-------- arch/s390/defconfig | 30 +++++++++++++++++++++++++++--- 5 files changed, 61 insertions(+), 54 deletions(-) commit 249c543b97e1409b13fb9539b2f880e58ddd87cf Author: Martin Schwidefsky Date: Tue Jan 5 13:29:38 2016 +0100 s390/vdso: optimize getcpu system call Add the CPU number to the per-cpu vdso data page and add the __kernel_getcpu function to the vdso object to retrieve the CPU number in user space. Suggested-by: Heiko Carstens Reviewed-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/include/asm/vdso.h | 2 ++ arch/s390/kernel/asm-offsets.c | 2 ++ arch/s390/kernel/vdso.c | 9 +++++++- arch/s390/kernel/vdso32/Makefile | 2 +- arch/s390/kernel/vdso32/getcpu.S | 43 ++++++++++++++++++++++++++++++++++++ arch/s390/kernel/vdso32/vdso32.lds.S | 1 + arch/s390/kernel/vdso64/Makefile | 2 +- arch/s390/kernel/vdso64/getcpu.S | 42 +++++++++++++++++++++++++++++++++++ arch/s390/kernel/vdso64/vdso64.lds.S | 1 + 9 files changed, 101 insertions(+), 3 deletions(-) commit 8c31902cffc4d716450be549c66a67a8a3dd479c Author: H.J. Lu Date: Mon Jan 4 10:17:09 2016 -0800 x86/boot: Double BOOT_HEAP_SIZE to 64KB When decompressing kernel image during x86 bootup, malloc memory for ELF program headers may run out of heap space, which leads to system halt. This patch doubles BOOT_HEAP_SIZE to 64KB. Tested with 32-bit kernel which failed to boot without this patch. Signed-off-by: H.J. Lu Acked-by: H. Peter Anvin Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Cc: Signed-off-by: Ingo Molnar arch/x86/include/asm/boot.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0dab3e0e59ac3692e2f95cb37ba17d5dfb3d1e5f Author: Michael S. Tsirkin Date: Tue Jan 5 18:17:53 2016 +0200 s390: drop smp_mb in vdso_init The initial s390 vdso code is heavily influenced by the powerpc version which does have a smp_wmb in vdso_init right before the vdso_ready=1 assignment. s390 has no need for that. Signed-off-by: Michael S. Tsirkin Message-Id: <1452010645-25380-1-git-send-email-mst@redhat.com> Signed-off-by: Christian Borntraeger Signed-off-by: Martin Schwidefsky arch/s390/kernel/vdso.c | 2 -- 1 file changed, 2 deletions(-) commit c667aeacc16e0de9e205faa93f57121d6f691973 Author: Heiko Carstens Date: Thu Dec 31 10:29:00 2015 +0100 s390: rename struct _lowcore to struct lowcore Finally get rid of the leading underscore. I tried this already two or three years ago, however Michael Holzheu objected since this would break the crash utility (again). However Michael integrated support for the new name into the crash utility back then, so it doesn't break if the name will be changed now. So finally get rid of the ever confusing leading underscore. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/include/asm/lowcore.h | 6 +- arch/s390/include/asm/processor.h | 2 +- arch/s390/include/asm/vdso.h | 4 +- arch/s390/kernel/asm-offsets.c | 174 +++++++++++++++++++------------------- arch/s390/kernel/crash_dump.c | 4 +- arch/s390/kernel/ipl.c | 4 +- arch/s390/kernel/setup.c | 6 +- arch/s390/kernel/smp.c | 16 ++-- arch/s390/kernel/vdso.c | 6 +- arch/s390/kvm/interrupt.c | 4 +- arch/s390/kvm/priv.c | 2 +- arch/s390/mm/maccess.c | 4 +- 12 files changed, 116 insertions(+), 116 deletions(-) commit 423d5b364c108c00d98e3da9f72d598e8f2ef948 Author: Heiko Carstens Date: Thu Dec 31 10:07:21 2015 +0100 s390/mem_detect: use unsigned longs The memory detection code historically had to use unsigned long long since the machine reported the true memory size (>4GB) even if the virtual machine was running in ESA/390 mode. Since the old code is gone use unsigned long everywhere and also get rid of an unused ADDR2G define. (this patch converts all long longs within sclp_info to longs) There are many more possible conversions, however that can be done if somebody touches the corresponding code. Since people started to convert unrelated long types to long longs because of the types within struct sclp_info convert this now. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/include/asm/sclp.h | 8 ++++---- arch/s390/mm/mem_detect.c | 7 ++----- 2 files changed, 6 insertions(+), 9 deletions(-) commit cb951785a78c68bf802f5e3d9016b0205ddd24c2 Author: Heiko Carstens Date: Thu Dec 31 09:58:02 2015 +0100 s390/ptrace: get rid of long longs in psw_bits The long longs were introduced by me in order to have a working definition of the struct psw_bits also in 31 bit mode. Since that is gone also get rid of the long longs. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/include/asm/ptrace.h | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) commit 7022ec496005b47257b8c0a1c1a40df92df7c79f Author: Heiko Carstens Date: Wed Dec 30 13:42:37 2015 +0100 s390/sysinfo: add missing SYSIB 1.2.2 multithreading fields Add missing multithreading fields of SYSIB 1.2.2 (Basic-Machine CPUs) to the output of /proc/sysinfo. Also use bitfields for SYSIB 2.2.2 to simplify the C code a bit. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/include/asm/sysinfo.h | 17 +++++++++++++---- arch/s390/kernel/sysinfo.c | 15 ++++++++------- 2 files changed, 21 insertions(+), 11 deletions(-) commit 71b3c126e61177eb693423f2e18a1914205b165e Author: Andy Lutomirski Date: Wed Jan 6 12:21:01 2016 -0800 x86/mm: Add barriers and document switch_mm()-vs-flush synchronization When switch_mm() activates a new PGD, it also sets a bit that tells other CPUs that the PGD is in use so that TLB flush IPIs will be sent. In order for that to work correctly, the bit needs to be visible prior to loading the PGD and therefore starting to fill the local TLB. Document all the barriers that make this work correctly and add a couple that were missing. Signed-off-by: Andy Lutomirski Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Dave Hansen Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Cc: linux-mm@kvack.org Cc: stable@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/include/asm/mmu_context.h | 33 ++++++++++++++++++++++++++++++++- arch/x86/mm/tlb.c | 29 ++++++++++++++++++++++++++--- 2 files changed, 58 insertions(+), 4 deletions(-) commit 60d613d6aef4ae49988eeb3ad38af948c561db1e Author: Vladimir Zapolskiy Date: Sun Jun 14 17:32:14 2015 +0300 backlight: pwm_bl: Free PWM requested by legacy API on error path If pwm is requested by legacy pwm_request() and if the following backlight_device_register() call fails, add pwm_free() clean-up. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Lee Jones drivers/video/backlight/pwm_bl.c | 2 ++ 1 file changed, 2 insertions(+) commit 68adb7bfd66504e97364651fb7dac3f9c8aa8561 Author: Uma Krishnan Date: Mon Dec 7 16:03:32 2015 -0600 cxl: Enable PCI device ID for future IBM CXL adapter Add support for future IBM Coherent Accelerator (CXL) device with ID of 0x0601. Signed-off-by: Uma Krishnan Reviewed-by: Matthew R. Ochs Signed-off-by: Michael Ellerman drivers/misc/cxl/pci.c | 1 + 1 file changed, 1 insertion(+) commit 57f7c3932516b9f7908d9b0a24396112d0f4ca55 Author: Brian Norris Date: Fri Jan 8 10:30:10 2016 -0800 cxl: use -Werror only with CONFIG_PPC_WERROR Some developers really like to have -Werror enabled for their code, as it helps to ensure warning free code. Others don't want -Werror, as it (for example) can cause problems when newer (or older) compilers have different sets of warnings, or new warnings can appear just when turning up the warning level (e.g., make W=1 or W=2). Thus, it seems prudent to have the use of -Werror be configurable. It so happens that cxl is only built on PowerPC, and PowerPC already has a nice set of Kconfig options for this, under CONFIG_PPC_WERROR. So let's use that, and the world is a happy place again! (Note that PPC_WERROR defaults to =y, so the common case compile should still be enforcing -Werror.) Fixes: d3d73f4b38a8 ("cxl: Compile with -Werror") Signed-off-by: Brian Norris Signed-off-by: Michael Ellerman drivers/misc/cxl/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit aa09545589ceeff884421d8eb38d04963190afbe Author: Brian Norris Date: Fri Jan 8 10:30:09 2016 -0800 cxl: fix build for GCC 4.6.x GCC 4.6.3 does not support -Wno-unused-const-variable. Instead, use the kbuild infrastructure that checks if this options exists. Fixes: 2cd55c68c0a4 ("cxl: Fix build failure due to -Wunused-variable behaviour change") Suggested-by: Michal Marek Suggested-by: Arnd Bergmann Signed-off-by: Brian Norris Signed-off-by: Michael Ellerman drivers/misc/cxl/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e708c24cd01ce80b1609d8baccee40ccc3608a01 Author: Michael Ellerman Date: Mon Jan 11 13:59:04 2016 +1100 powerpc: Add HWCAP bits for Power9 In order to support Power9 we need two new HWCAP bits. We are merging these ahead of the cputable entry so that glibc can start referring to them. Signed-off-by: Michael Ellerman arch/powerpc/include/uapi/asm/cputable.h | 2 ++ 1 file changed, 2 insertions(+) commit 08f48f3234a79bca86c2283a166aec83bf52b265 Author: Alistair Popple Date: Mon Jan 11 16:53:50 2016 +1100 powerpc/powernv: Reserve PE#0 on NPU P8+ hardware reports all errors on PE#0. This patch ensures PE#0 is not assigned to NPU devices so that it can be used for EEH. Signed-off-by: Alistair Popple Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci-ioda.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit b521549a09ddfac3bed38e261168cda92d04ce81 Author: Alistair Popple Date: Mon Jan 11 16:53:49 2016 +1100 powerpc/powernv: Change NPU PE# assignment The P8+ hardware supports four partitionable endpoints (PEs) however the hardware reports all errors as occurring on PE#0. This means we need to reserve this PE for error handling (EEH) and not assign it to a NPU device, implying that some devices will need to share PEs. This patch changes the PE assignment for NPU devices such that NPU devices which connect to the same GPU are assigned to the same PE#. Signed-off-by: Alistair Popple Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci-ioda.c | 73 ++++++++++++++++++++++++++++--- 1 file changed, 66 insertions(+), 7 deletions(-) commit 419dbd5e1ff0e45a6e1d28c1f7b74d121d2a56e7 Author: Alistair Popple Date: Fri Jan 8 11:35:09 2016 +1100 powerpc/powernv: Fix update of NVLink DMA mask The emulated NVLink PCI devices share the same IODA2 TCE tables but only support a single TVT (instead of the normal two for PCI devices). This requires the kernel to manually replace windows with either the bypass or non-bypass window depending on what the driver has requested. Unfortunately an incorrect optimisation was made in pnv_pci_ioda_dma_set_mask() which caused updating of some NPU device PEs to be skipped in certain configurations due to an incorrect assumption that a NULL peer PE in the array indicated there were no more peers present. This patch fixes the problem by ensuring all peer PEs are updated. Fixes: 5d2aa710e697 ("powerpc/powernv: Add support for Nvlink NPUs") Signed-off-by: Alistair Popple Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci-ioda.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 56f27013482c0803d978b667fe85de04ce9357cd Author: David Henningsson Date: Mon Jan 11 09:33:14 2016 +0100 ALSA: hda - Fixup inverted internal mic for Lenovo E50-80 Inform userspace that one channel of the internal mic has reversed polarity, so it does not attempt to add both channels together and end up with silence. Cc: stable@vger.kernel.org Reported-by: Andrzej Mendel Alsa-info: http://www.alsa-project.org/db/?f=3088f82a0cf977855f92af9db8ad406c04f71efa BugLink: https://bugs.launchpad.net/bugs/1529624 Signed-off-by: David Henningsson Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit a4eae3a506ea4a7d4474cd74e20b423fa8053d91 Author: Jurgen Kramer Date: Mon Jan 11 08:16:58 2016 +0100 ALSA: usb: Add native DSD support for Oppo HA-1 This patch adds native DSD support for the Oppo HA-1. It uses a XMOS chipset but they use their own vendor ID. Signed-off-by: Jurgen Kramer Cc: Signed-off-by: Takashi Iwai sound/usb/quirks.c | 1 + 1 file changed, 1 insertion(+) commit 5b61c7bd25f13daa58f2507991e87e990d7c6010 Author: Chris Bainbridge Date: Fri Jan 8 20:44:04 2016 +0000 kconfig: fix qconf segfault by deleting heap objects On Debian stable (qt-4.8.6) 'make xconfig' intermittently fails due to qconf segfaulting at exit time in QXcbEventReader. The cause of this is destructors on the heap objects never being called, so fix this by properly deleting the heap objects before exit. Signed-off-by: Chris Bainbridge Signed-off-by: Michal Marek scripts/kconfig/qconf.cc | 2 ++ 1 file changed, 2 insertions(+) commit 5f7e5445a2de848c66d2d80ba5479197e8287c33 Author: Peter Hutterer Date: Mon Jan 11 00:08:58 2016 -0800 Input: wacom_w8001 - drop use of ABS_MT_TOOL_TYPE As of e0361b70175 ("Input: wacom_w8001 - split the touch and pen devices into two devices") the touch events aren't multiplexed over the same device anymore, the use of ABS_MT_TOOL_TYPE is superfluous. And even before then it only ever sent MT_TOOL_TYPE_FINGER anyway. Signed-off-by: Peter Hutterer Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/wacom_w8001.c | 3 --- 1 file changed, 3 deletions(-) commit 02f22c004ff2ab0ce1f2fa3cc6a87cf20a4fed40 Author: Arnd Bergmann Date: Mon Nov 30 12:24:23 2015 +0100 backlight: adp8860: Fix another uninitialized variable use A recent patch I did fixed two potential uses of uninitialized variables in the adp8870 and adp8860 drivers. Unfortunately, I missed another one: drivers/video/backlight/adp8860_bl.c: In function 'adp8860_bl_ambient_light_level_show': drivers/video/backlight/adp8860_bl.c:570:11: warning: 'reg_val' may be used uninitialized in this function This does the same change as before in one additional function, and also changes the check for the return value in a way that avoids another false positive warning with a similar message. Signed-off-by: Arnd Bergmann Fixes: 6be3a5a9cd91 ("backlight: adp88x0: Fix uninitialized variable use") Acked-by: Michael Hennerich Acked-by: Jingoo Han Signed-off-by: Lee Jones drivers/video/backlight/adp8860_bl.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 2f4647a149943b1f87e46858e9f13e02010347f7 Author: Stefan Agner Date: Fri Oct 23 16:44:43 2015 -0700 backlight: gpio-backlight: Use default-on on GPIO request There are situations where the backlight should be on at boot time (e.g. if the boot loader already turned the display on). The DT bindings specify the "default-on" property for that purpose. Currently, the initial state of the GPIO at request time is always set to logical off (high or low depending on whether it is an active high or low GPIO). Since the GPIO is requested as an output, the GPIO will be driven low for a short period of time, which leads to a flickering display in the above use-case. Initialize the GPIO depending on the default-on property to be logical on or off. Signed-off-by: Stefan Agner Signed-off-by: Lee Jones drivers/video/backlight/gpio_backlight.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 0c7f3f92ffe8dc4e631b2f20c06543ec9f521f7c Author: Linus Walleij Date: Tue Dec 22 15:48:33 2015 +0100 mfd: ucb1x00-core: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Cc: Lee Jones Signed-off-by: Linus Walleij Signed-off-by: Lee Jones drivers/mfd/ucb1x00-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a5dca7dc7e80f0cb4dcc9251983fb51745541f48 Author: Charles Keepax Date: Mon Dec 14 10:19:12 2015 +0000 mfd: arizona: Update binding docs for selecting mono/stereo outputs Update the device tree binding documentation to include the wlf,out-mono property that is used to specify whether each output is a mono or stereo output. Signed-off-by: Charles Keepax Acked-by: Rob Herring Signed-off-by: Lee Jones Documentation/devicetree/bindings/mfd/arizona.txt | 6 ++++++ 1 file changed, 6 insertions(+) commit f199d39349beabcb1a374cb02e0845a0ae84f3fd Author: Charles Keepax Date: Mon Dec 14 10:19:11 2015 +0000 mfd: arizona: Add device tree binding to specify mono outputs Add device tree bindings to support specifying outputs from the chip as mono outputs. Whilst we are doing it change the out_mono pdata from a bool to an int, because Sparse gets upset about using ARRAY_SIZE on bools. Signed-off-by: Charles Keepax Signed-off-by: Lee Jones drivers/mfd/arizona-core.c | 10 ++++++++++ include/linux/mfd/arizona/pdata.h | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) commit 8726cacc7f38e7e122e6910fb0b979dcd1ca89d3 Author: Geert Uytterhoeven Date: Mon Dec 7 17:16:43 2015 +0100 mfd: da9063: Allow modular build Allow support for the DA9063 PMIC to be modular, cfr. DA9062, which allows to decrease size of multi-platform kernels (e.g. multi_v7_defconfig). Signed-off-by: Geert Uytterhoeven Acked-by: Steve Twiss Signed-off-by: Lee Jones drivers/mfd/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6c006b1b17f8841d83f09b2bc34227e2f9428872 Author: Charles Keepax Date: Wed Dec 16 13:53:59 2015 +0000 mfd: arizona: Request parent IRQ before we request child IRQs Currently the driver requests the boot done and control interface IRQs before it has requested its own IRQ line. This can cause problems on edge triggered IRQ systems as if an edge occurs before the parent IRQ is enabled it will be missed. Whilst we are changing the error handling remove an unused label as well. Signed-off-by: Charles Keepax Signed-off-by: Lee Jones drivers/mfd/arizona-irq.c | 57 ++++++++++++++++++++++------------------------- 1 file changed, 27 insertions(+), 30 deletions(-) commit 7d07d15abb606f6e0c611e9bc9a2de4745456e5f Author: Richard Fitzgerald Date: Tue Nov 3 15:08:34 2015 +0000 gpio: arizona: Support Cirrus Logic CS47L24 and WM1831 The CS47L24 and WM1831 codecs only have two GPIO lines, but are otherwise similar to the WM8280. Signed-off-by: Richard Fitzgerald Acked-by: Linus Walleij Signed-off-by: Lee Jones drivers/gpio/gpio-arizona.c | 4 ++++ 1 file changed, 4 insertions(+) commit 8777078015bb77f0561303b6dea23d40bd9f3053 Author: Philipp Zabel Date: Thu Dec 10 10:09:06 2015 +0100 backlight: pwm_bl: Fix broken PWM backlight for non-dt platforms Commit ee65ad0e2a9e ("backlight: pwm_bl: Avoid backlight flicker when probed from DT") tries to dereference the device of_node pointer unconditionally, causing a NULL pointer dereference on non-dt platforms. Fix it by replacing the phandle variable with a node variable and by checking that for NULL before dereferencing it. Reported-by: Robert Jarzmik Signed-off-by: Philipp Zabel Acked-by: Thierry Reding Tested-by: Robert Jarzmik Signed-off-by: Lee Jones drivers/video/backlight/pwm_bl.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit fcf13f0b9e4b54c51dff8366fc9a96d85129ff4c Author: Enric Balletbo i Serra Date: Sun Nov 29 17:29:46 2015 +0100 backlight: tps65217_bl: Add MODULE_DEVICE_TABLE The device table is required to load modules based on modaliases. Signed-off-by: Enric Balletbo i Serra Signed-off-by: Lee Jones drivers/video/backlight/tps65217_bl.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 668f4729837dabf2a774063da230915dbbd22e4d Author: Stanimir Varbanov Date: Tue Jan 5 15:38:25 2016 -0600 ARM: dts: ifc6410: enable PCIe DT node for this board Enable PCIe DT node and fill PCIe DT node with regulator, pinctrl and reset GPIO, to use the PCIe on the ifc6410 board. Signed-off-by: Stanimir Varbanov Signed-off-by: Bjorn Helgaas arch/arm/boot/dts/qcom-apq8064-ifc6410.dts | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit bcc74b0957d63394f873680cce705eacfb41eed0 Author: Stanimir Varbanov Date: Fri Dec 18 14:38:58 2015 +0200 ARM: dts: apq8064: add PCIe devicetree node Add the PCIe DT node so that it can probe and be used. Signed-off-by: Stanimir Varbanov Signed-off-by: Bjorn Helgaas arch/arm/boot/dts/qcom-apq8064.dtsi | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) commit a7b956fd38dd217dd78e3058110929f5ac914df1 Author: Arnd Bergmann Date: Tue Dec 8 16:21:05 2015 +0100 mfd: as3722: Mark PM functions as __maybe_unused The newly introduced as3722_i2c_suspend/resume functions are built unconditionally, but only used when power management is enabled, so we get a warning otherwise: drivers/mfd/as3722.c:427:12: warning: 'as3722_i2c_suspend' defined but not used [-Wunused-function] drivers/mfd/as3722.c:438:12: warning: 'as3722_i2c_resume' defined but not used [-Wunused-function] This marks them both as __maybe_unused, which avoids an ugly #ifdef and gives us best compile-time coverage. When they are unused, the compiler will silently drop the functions from its output. Signed-off-by: Arnd Bergmann Fixes: 35deff7eb212 ("mfd: as3722: Handle interrupts on suspend") Signed-off-by: Lee Jones drivers/mfd/as3722.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d91d76d84c3adf7ca04ef1932431d49f51edee5e Author: Thierry Reding Date: Wed Dec 2 17:28:11 2015 +0100 mfd: sta2x11: Use platform_register/unregister_drivers() These new helpers simplify implementing multi-driver modules and properly handle failure to register one driver by unregistering all previously registered drivers. Signed-off-by: Thierry Reding Signed-off-by: Lee Jones drivers/mfd/sta2x11-mfd.c | 36 ++++++++++-------------------------- 1 file changed, 10 insertions(+), 26 deletions(-) commit 742dcd115cb523f4b518bfcda870e10a027a8024 Author: Ivan T. Ivanov Date: Tue Nov 17 16:06:44 2015 -0800 mfd: qcom-spmi-pmic: Don't access non-existing registers Revision ID registers are available only on devices with Slave IDs that are even, so don't make access to unavailable registers. Signed-off-by: Ivan T. Ivanov [sboyd@codeaurora.org: Consider all slave ids that are even] Signed-off-by: Stephen Boyd Signed-off-by: Lee Jones drivers/mfd/qcom-spmi-pmic.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit a5656a708050bd3be5c3a3bc45297db21e88cecd Author: Rasmus Villemoes Date: Sun Dec 6 00:39:39 2015 +0100 mfd: wm831x: Fix broken wm831x_unique_id_show wm831x_unique_id_show currently displays an interesting pattern of '0' and '3' characters which isn't very useful (figuring out why is left as an exercise for the reader). Presumably "buf[i]" should have been "id[i] & 0xff". But while there, it is much simpler to simply use %phN and do all the formatting at once. Signed-off-by: Rasmus Villemoes Acked-by: Charles Keepax Signed-off-by: Lee Jones drivers/mfd/wm831x-otp.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit db2fb60cd35d2d03699e570906ced73b4c05586e Author: Damien Riegel Date: Mon Nov 30 10:59:47 2015 -0500 mfd: syscon: Add a DT property to set value width Currently syscon has a fixed configuration of 32 bits for register and values widths. In some cases, it would be desirable to be able to customize the value width. For example, certain boards (like the ones manufactured by Technologic Systems) have a FPGA that is memory-mapped, but its registers are only 16-bit wide. This patch adds an optional "reg-io-width" DT binding for syscon that allows to change the width for the data bus (i.e. val_bits). If this property is provided, it will also set the register stride to reg-io-width's value. If not provided, the default configuration is used. Signed-off-by: Damien Riegel Acked-by: Rob Herring Acked-by: Arnd Bergmann Signed-off-by: Lee Jones Documentation/devicetree/bindings/mfd/syscon.txt | 4 ++++ drivers/mfd/syscon.c | 13 +++++++++++++ 2 files changed, 17 insertions(+) commit 32e9725d9a87549eb8b2a6455de0bce9dc8385de Author: Charles Keepax Date: Thu Nov 26 17:40:17 2015 +0000 mfd: wm5110: Correct defaults for micbias control registers Signed-off-by: Charles Keepax Signed-off-by: Lee Jones drivers/mfd/wm5110-tables.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 6d6e44a953161e4ce60d1fe805d165d8290ce9e8 Author: Nicolas Boichat Date: Wed Nov 25 13:51:07 2015 +0800 mfd: cros ec: Lock the SPI bus while holding chipselect cros_ec_cmd_xfer_spi and cros_ec_pkt_xfer_spi generally work like this: - Pull CS down (active), wait a bit, then send a command - Wait for response (multiple requests) - Wait a while, pull CS up (inactive) These operations, individually, lock the SPI bus, but there is nothing preventing the SPI framework from interleaving messages intended for other devices as the bus is unlocked in between. This is a problem as the EC expects CS to be held low for the whole duration. Solution: Lock the SPI bus during the whole transaction, to make sure that no other messages can be interleaved. Signed-off-by: Nicolas Boichat Reviewed-by: Gwendal Grignou Signed-off-by: Lee Jones drivers/mfd/cros_ec_spi.c | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) commit 3698d7e7d221a5c90d4b55e96d0c8f98a8b4d7df Author: Philipp Zabel Date: Wed Nov 18 18:12:25 2015 +0100 backlight: pwm_bl: Avoid backlight flicker when probed from DT If the driver is probed from the device tree, and there is a phandle property set on it, and the enable GPIO is already configured as output, and the backlight is currently disabled, keep it disabled. If all these conditions are met, assume there will be some other driver that can enable the backlight at the appropriate time. Signed-off-by: Philipp Zabel Reviewed-by: Christian Gmeiner Tested-by: Heiko Stuebner Signed-off-by: Lee Jones drivers/video/backlight/pwm_bl.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) commit 86c68e2fb3eeb87ef716a0d61c5a346e9aee2ecb Author: Arnd Bergmann Date: Mon Nov 23 14:44:13 2015 +0100 backlight: adp88x0: Fix uninitialized variable use gcc correctly warns about both the adp8860 and adp8870 backlight drivers using an uninitialized variable in their error handling path: drivers/video/backlight/adp8870_bl.c: In function 'adp8870_bl_ambient_light_zone_store': drivers/video/backlight/adp8870_bl.c:811:11: warning: 'reg_val' may be used uninitialized in this function This changes the code to only write back the data if it was correctly read to start with. As a side-note, the drivers are mostly identical, so I think they should really be merged into one file to avoid having to fix every bug twice. Signed-off-by: Arnd Bergmann Acked-by: Michael Hennerich Signed-off-by: Lee Jones drivers/video/backlight/adp8860_bl.c | 10 ++++++---- drivers/video/backlight/adp8870_bl.c | 10 ++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) commit b0eab5b29a55fd9f31fad28df520337545c813ef Author: Russell Currey Date: Fri Jan 8 16:16:47 2016 +1100 powerpc/powernv: Remove misleading comment in pci.c PCI in powernv now supports quite a bit more than p5ioc2, so remove the outdated comment. Signed-off-by: Russell Currey Acked-by: Stewart Smith Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci.c | 2 -- 1 file changed, 2 deletions(-) commit 617cfc753049a4e1e161ae5e5e00e92d56be2b90 Author: Alexander Kuleshov Date: Sun Jan 10 21:26:57 2016 +0600 net/rtnetlink: remove unused sz_idx variable The sz_idx variable is defined in the rtnetlink_rcv_msg(), but not used anywhere. Let's remove it. Signed-off-by: Alexander Kuleshov Signed-off-by: David S. Miller net/core/rtnetlink.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 366ce60315292a579b8ceae2777102e1954a2024 Author: Ido Schimmel Date: Sun Jan 10 09:32:16 2016 +0100 mlxsw: spectrum: Add FDB lock to prevent session interleaving Dumping the FDB (invoked with a process context) or handling FDB notifications (polled periodicly in delayed work) might each entail multiple EMAD transcations due to the number of entries. While we only allow one EMAD transaction at a time, there is nothing stopping the dump and notification processing sessions from interleaving. However, this is forbidden by the hardware, so we need to make sure only one of these sessions can run at a time. Solve this by adding a mutex ('fdb_lock'), as both kernel threads can sleep while waiting for the response EMAD. Fixes: 56ade8fe3f ("mlxsw: spectrum: Add initial support for Spectrum ASIC") Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum.h | 1 + drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 5 +++++ 2 files changed, 6 insertions(+) commit 712f4aad406bb1ed67f3f98d04c044191f0ff593 Author: willy tarreau Date: Sun Jan 10 07:54:56 2016 +0100 unix: properly account for FDs passed over unix sockets It is possible for a process to allocate and accumulate far more FDs than the process' limit by sending them over a unix socket then closing them to keep the process' fd count low. This change addresses this problem by keeping track of the number of FDs in flight per user and preventing non-privileged processes from having more FDs in flight than their configured FD limit. Reported-by: socketpair@gmail.com Reported-by: Tetsuo Handa Mitigates: CVE-2013-4312 (Linux 2.0+) Suggested-by: Linus Torvalds Acked-by: Hannes Frederic Sowa Signed-off-by: Willy Tarreau Signed-off-by: David S. Miller include/linux/sched.h | 1 + net/unix/af_unix.c | 24 ++++++++++++++++++++---- net/unix/garbage.c | 13 ++++++++----- 3 files changed, 29 insertions(+), 9 deletions(-) commit 713d40248bde50fba40c5bf1b5dde6d5df02cfd0 Author: Guenter Roeck Date: Sun Jan 10 20:43:49 2016 -0800 net: bfin_mac: Use phy_find_first() instead of open-coding it Use phy_find_first() to find the first phy device instead of open-coding it. Cc: Andrew Lunn Signed-off-by: Guenter Roeck Signed-off-by: David S. Miller drivers/net/ethernet/adi/bfin_mac.c | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) commit 50ee63824f5e0702da9909b989cdda96a2128afb Merge: 3c6396d c5420eb1 Author: David S. Miller Date: Sun Jan 10 23:49:21 2016 -0500 Merge branch 'ovs-cleanups' Jean Sacren says: ==================== Trivial fix-ups for openvswitch This series does trivial fix-ups for openvswitch as follows: 1) Clean up the leftover of the unused function. 2) Fix up the twisted struct geneve_port member name. 3) Update the kernel doc to reflect the changes in struct vport. ==================== Signed-off-by: David S. Miller commit c5420eb12f8e26dd2951c5acc954ca4848f488cb Author: Jean Sacren Date: Sat Jan 9 16:07:11 2016 -0700 openvswitch: update kernel doc for struct vport commit be4ace6e6b1b ("openvswitch: Move dev pointer into vport itself") The commit above added @dev and moved @rcu to the bottom of struct vport, but the change was not reflected in the kernel doc. So let's update the kernel doc as well. Signed-off-by: Jean Sacren Cc: Thomas Graf Acked-by: Thomas Graf Signed-off-by: David S. Miller net/openvswitch/vport.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 2f7066ada15c865eeab5a3f6c69dcf58d196e349 Author: Jean Sacren Date: Sat Jan 9 16:07:10 2016 -0700 openvswitch: fix struct geneve_port member name commit 6b001e682e90 ("openvswitch: Use Geneve device.") The commit above introduced 'port_no' as the name for the member of struct geneve_port. The correct name should be 'dst_port' as described in the kernel doc. Let's fix that member name and all the pertinent instances so that both doc and code would be consistent. Signed-off-by: Jean Sacren Acked-by: Thomas Graf Signed-off-by: David S. Miller net/openvswitch/vport-geneve.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 5ea030429fed07ea47e45152202d6ecb24133374 Author: Jean Sacren Date: Sat Jan 9 16:07:09 2016 -0700 openvswitch: clean up unused function commit 6b001e682e90 ("openvswitch: Use Geneve device.") The commit above deleted the only call site of ovs_tunnel_route_lookup() and now that function is not used any more. So let's delete the function definition as well. Signed-off-by: Jean Sacren Acked-by: Thomas Graf Signed-off-by: David S. Miller net/openvswitch/vport.h | 20 -------------------- 1 file changed, 20 deletions(-) commit 3c6396d6309b446fe28c8c6b49fbb4fa22754650 Author: Guenter Roeck Date: Sat Jan 9 13:19:39 2016 -0800 net: ti: cpmac: Fix build error due to missed API change Commit 7f854420fbfe ("phy: Add API for {un}registering an mdio device to a bus") introduces an API to access mii_bus structures, but missed to update the TI cpamc driver. This results in the following error message. drivers/net/ethernet/ti/cpmac.c: In function 'cpmac_probe': drivers/net/ethernet/ti/cpmac.c:1119:18: error: 'struct mii_bus' has no member named 'phy_map' Fixes: 7f854420fbfe ("phy: Add API for {un}registering an mdio device to a bus") Cc: Andrew Lunn Signed-off-by: Guenter Roeck Acked-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/ethernet/ti/cpmac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e253e8fbab01059c25c6d091e4888c68a26691f5 Author: Guenter Roeck Date: Sun Jan 10 07:10:45 2016 -0800 net: tc35815: Drop unused variable Commit e7f4dc3536a4 ("mdio: Move allocation of interrupts into core") removes some code from tc_mii_init(), but does not remove a now unused variable. This results in the following build warning. drivers/net/ethernet/toshiba/tc35815.c: In function 'tc_mii_init': drivers/net/ethernet/toshiba/tc35815.c:670:6: warning: unused variable 'i' Fixes: e7f4dc3536a4 ("mdio: Move allocation of interrupts into core") Cc: Andrew Lunn Acked-by: Andrew Lunn Signed-off-by: Guenter Roeck Signed-off-by: David S. Miller drivers/net/ethernet/toshiba/tc35815.c | 1 - 1 file changed, 1 deletion(-) commit a05876b30cae6af79a5f0ff2cf5b42248aa0528f Author: Guenter Roeck Date: Sun Jan 10 07:10:44 2016 -0800 net: tc35815: Fix build error due to missed API change Commit 7f854420fbfe ("phy: Add API for {un}registering an mdio device to a bus") introduces an API to access mii_bus structures, but missed to update the tc35815 driver. This results in the following error message. drivers/net/ethernet/toshiba/tc35815.c: In function 'tc_mii_probe': drivers/net/ethernet/toshiba/tc35815.c:617:18: error: 'struct mii_bus' has no member named 'phy_map' drivers/net/ethernet/toshiba/tc35815.c:623:24: error: 'struct mii_bus' has no member named 'phy_map' Instead of looping over the list of phy addresses to find a phy chip, use phy_find_first(). While the intent of the original code was to return an error if more than one phy was specified, this code path was never executed because the loop aborted after finding the first phy. The original code is therefore semantically identical to phy_find_first(), thus it is simpler and more straightforward to use phy_find_first() directly. Fixes: 7f854420fbfe ("phy: Add API for {un}registering an mdio device to a bus") Cc: Andrew Lunn Signed-off-by: Guenter Roeck Acked-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/ethernet/toshiba/tc35815.c | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) commit 26706d43b82b881bd10ce1428516e4a411748ddb Author: Joshua Henderson Date: Sat Jan 9 04:54:21 2016 -0700 net: phy: Add support for SMSC LAN8740 PHY LAN8740 has a different phy_id than LAN8710/LAN8720. Signed-off-by: Joshua Henderson Signed-off-by: David S. Miller drivers/net/phy/smsc.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit 7d7f5d04c2b41672570fd1b6e4eb33dfbfb087e9 Merge: a78cb84 42e0ed0 Author: David S. Miller Date: Sun Jan 10 23:10:10 2016 -0500 Merge tag 'wireless-drivers-next-for-davem-2016-01-09' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next Kalle Valo says: ==================== brcmfmac * query features through firmware command * ARP offload through inet notifier * force probe to succeed for debugging purposes * random mac support for scheduled scan * support wowl upon net detect iwlwifi * bug fixes and improvements for firmware debug system * advertise support for Rx A-MSDU in A-MPDU * support -20.ucode * fix WoWLAN for iwldvm * preparations towards multiple Rx queues * platform power improvements for GO mode when no clients are associated ==================== Signed-off-by: David S. Miller commit 3e4006f0b86a5ae5eb0e8215f9a9e1db24506977 Author: Eric Dumazet Date: Fri Jan 8 09:35:51 2016 -0800 ipv6: tcp: add rcu locking in tcp_v6_send_synack() When first SYNACK is sent, we already hold rcu_read_lock(), but this is not true if a SYNACK is retransmitted, as a timer (soft) interrupt does not hold rcu_read_lock() Fixes: 45f6fad84cc30 ("ipv6: add complete rcu protection around np->opt") Reported-by: Dave Jones Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv6/tcp_ipv6.c | 2 ++ 1 file changed, 2 insertions(+) commit a78cb84c62c427807d917c5aa8797740f00b0bbe Author: Eric Dumazet Date: Fri Jan 8 08:37:20 2016 -0800 net: add scheduling point in recvmmsg/sendmmsg Applications often have to reduce number of datagrams they receive or send per system call to avoid starvation problems. Really the kernel should take care of this by using cond_resched(), so that applications can experiment bigger batch sizes. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/socket.c | 2 ++ 1 file changed, 2 insertions(+) commit 3d171f3907329d4b1ce31d5ec9c852c5f0269578 Author: Lubomir Rintel Date: Fri Jan 8 13:47:23 2016 +0100 ipv6: always add flag an address that failed DAD with DADFAILED The userspace needs to know why is the address being removed so that it can perhaps obtain a new address. Without the DADFAILED flag it's impossible to distinguish removal of a temporary and tentative address due to DAD failure from other reasons (device removed, manual address removal). Signed-off-by: Lubomir Rintel Acked-by: Hannes Frederic Sowa Signed-off-by: David S. Miller net/ipv6/addrconf.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 541b8e291f29e480fb9c6400ce796c2eaefe9229 Author: Fabio Estevam Date: Fri Jan 8 10:19:16 2016 -0200 net: lpc_eth: Remove unused variables Commit e7f4dc3536a400 ("mdio: Move allocation of interrupts into core") introduced the following build warnings: drivers/net/ethernet/nxp/lpc_eth.c: In function 'lpc_mii_init': drivers/net/ethernet/nxp/lpc_eth.c:865:1: warning: label 'err_out_1' defined but not used [-Wunused-label] drivers/net/ethernet/nxp/lpc_eth.c:826:20: warning: unused variable 'i' [-Wunused-variable] Remove the unused variables to fix them. Reported-by: Olof's autobuilder Signed-off-by: Fabio Estevam Acked-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/ethernet/nxp/lpc_eth.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit fdffd2e8c7b361a831dc023c22bb8f4685c241ac Author: Sudip Mukherjee Date: Fri Jan 8 16:58:15 2016 +0530 bfin_mac: fix error path While building blackfin defconfig we were getting a build warning: warning: label 'out_err_irq_alloc' defined but not used. Commit e7f4dc3536a4 ("mdio: Move allocation of interrupts into core") removed the label out_err_mdiobus_register but then mistakenly jumped to out_err_alloc. But it was actually supposed to jump to out_err_irq_alloc. Fixes: e7f4dc3536a4 ("mdio: Move allocation of interrupts into core") Cc: Andrew Lunn Signed-off-by: Sudip Mukherjee Signed-off-by: David S. Miller drivers/net/ethernet/adi/bfin_mac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 053842a8bffed47fab386954e2e9d0a00e13ae2c Author: Sudip Mukherjee Date: Fri Jan 8 16:58:14 2016 +0530 phy: fix blackfin build failure The build of blackfin defconfig is failing with the error: error: 'struct mii_bus' has no member named 'phy_map' A new API mdiobus_get_phy() was introduced and phy_map was removed but it was not changed here. Fixes: 7f854420fbfe ("phy: Add API for {un}registering an mdio device to a bus.") Cc: Andrew Lunn Signed-off-by: Sudip Mukherjee Acked-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/ethernet/adi/bfin_mac.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 89e7a154e01cffa325874e90cbb124057416de02 Author: Hariprasad Shenai Date: Fri Jan 8 12:21:25 2016 +0530 cxgb4: Fixes static checker warning in mps_tcam_show() The commit 115b56af88b5 ("cxgb4: Update mps_tcam output to include T6 fields") from Dec 23, 2015, leads to the following static checker warning: drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c:1735 mps_tcam_show() warn: we tested 'lookup_type' before and it was 'true' Fixing it. Reported-by: Dan Carpenter Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 35de3b1aa16842214e0cd7c6036daf4619294314 Author: Steven Rostedt Date: Tue Dec 8 13:50:56 2015 -0500 powerpc: Implement save_stack_trace_regs() to enable kprobe stack tracing It has come to my attention that kprobe event stack tracing does not work on powerpc. You can see with the following: # cd /sys/kernel/debug/tracing # echo stacktrace > trace_options # echo 'p kfree' > kprobe_events # echo 1 > events/kprobes/enable Will print the following warning: save_stack_trace_regs() not implemented yet. Although save_stack_trace() (which normal event stack traces use) is implemented, save_stack_trace_regs() which kprobe events use is not. This is a cheap attempt to implement that function. Note, This may have issues if a task tries to get a stack trace from another task with its regs, because it just passes in "current" to save_context_stack(). But this does solve the issue with stack tracing kprobe events. Reported-by: Chunyu Hu Signed-off-by: Steven Rostedt Signed-off-by: Michael Ellerman arch/powerpc/kernel/stacktrace.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 1f76f7315dd2ac7b462a36d2971a9328583b5eb7 Merge: 0652cb5 af72261 Author: David S. Miller Date: Sun Jan 10 22:21:32 2016 -0500 Merge branch 'emac-RK3036' Xing Zheng says: ==================== Add support emac for the RK3036 SoC platform We have supported the emac for RK3066/RK3188, but the RK3036 have some configuration different with them. We should let the driver of emac_rockchip compatible with other Rockchip SoCs. Changes in v2: - Separate DTS from patch series. ==================== Signed-off-by: David S. Miller commit af72261f33ee4958bb53e299746014f44e1134c4 Author: Xing Zheng Date: Fri Jan 8 09:35:02 2016 +0800 net: ethernet: arc: Add support emac for RK3036 The RK3036's GRFs offset are different with RK3066/RK3188, and need to set mac TX/RX clock before probe emac. Signed-off-by: Xing Zheng Signed-off-by: David S. Miller drivers/net/ethernet/arc/Kconfig | 4 ++-- drivers/net/ethernet/arc/emac_rockchip.c | 8 +++++++- 2 files changed, 9 insertions(+), 3 deletions(-) commit f4c9d3ee0334fd9c6c8f2c3a8bd7d0841880e127 Author: Xing Zheng Date: Fri Jan 8 09:35:01 2016 +0800 net: ethernet: arc: Keep emac compatibility for more Rockchip SoCs On the RK3066/RK3188, there was fixed GRF offset configuration to set emac and fixed DIV2 mac TX/RX clock. So, we need to easily set and fit to other SoCs (RK3036) which maybe have different GRF offset, and need adjust mac TX/RX clock. Signed-off-by: Xing Zheng Signed-off-by: David S. Miller drivers/net/ethernet/arc/emac_rockchip.c | 69 +++++++++++++++++++++----------- 1 file changed, 45 insertions(+), 24 deletions(-) commit c9bca2fe3ca6d6dac2a27eb8619955648369efed Author: Xing Zheng Date: Fri Jan 8 09:35:00 2016 +0800 net: ethernet: arc: Probe emac after set RMII clock After enter arc_emac_probe, emac will get_phy_id, phy_poll_reset and other connecting PHY via mdiobus_read, so we need to set correct ref clock rate for emac before probe emac. Signed-off-by: Xing Zheng Signed-off-by: David S. Miller drivers/net/ethernet/arc/emac_rockchip.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 0652cb5b8b228db53b686c735c64bdb9071979de Merge: 1f211a1 d2d6318 Author: David S. Miller Date: Sun Jan 10 22:19:19 2016 -0500 Merge branch 'bnxt_en-zeropad-fw-and-reset' Michael Chan says: ==================== bnxt_en: Zero pad fw messages and add fw reset. 2 patches related to firmware for net-next. ==================== Signed-off-by: David S. Miller commit d2d6318cb996f39112ba24ff23abe67578a611bc Author: Rob Swindell Date: Thu Jan 7 19:56:58 2016 -0500 bnxt_en: Reset embedded processor after applying firmware upgrade Use HWRM_FW_RESET command to request a self-reset of the embedded processor(s) after successfully applying a firmware update. For boot processor, the self-reset is currently deferred until the next PCIe reset. Signed-off-by: Rob Swindell Signed-off-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 46 +++++++++++++++++++++-- 1 file changed, 42 insertions(+), 4 deletions(-) commit d79979a103f7820d3107cdc04096e87b37f90008 Author: Michael Chan Date: Thu Jan 7 19:56:57 2016 -0500 bnxt_en: Zero pad firmware messages to 128 bytes. For future compatibility, zero pad all messages that the driver sends to the firmware to 128 bytes. If these messages are extended in the future with new byte enables, zero padding these messages now will guarantee future compatibility. Signed-off-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt.c | 3 +++ 1 file changed, 3 insertions(+) commit 1f211a1b929c804100e138c5d3d656992cfd5622 Author: Daniel Borkmann Date: Thu Jan 7 22:29:47 2016 +0100 net, sched: add clsact qdisc This work adds a generalization of the ingress qdisc as a qdisc holding only classifiers. The clsact qdisc works on ingress, but also on egress. In both cases, it's execution happens without taking the qdisc lock, and the main difference for the egress part compared to prior version of [1] is that this can be applied with _any_ underlying real egress qdisc (also classless ones). Besides solving the use-case of [1], that is, allowing for more programmability on assigning skb->priority for the mqprio case that is supported by most popular 10G+ NICs, it also opens up a lot more flexibility for other tc applications. The main work on classification can already be done at clsact egress time if the use-case allows and state stored for later retrieval f.e. again in skb->priority with major/minors (which is checked by most classful qdiscs before consulting tc_classify()) and/or in other skb fields like skb->tc_index for some light-weight post-processing to get to the eventual classid in case of a classful qdisc. Another use case is that the clsact egress part allows to have a central egress counterpart to the ingress classifiers, so that classifiers can easily share state (e.g. in cls_bpf via eBPF maps) for ingress and egress. Currently, default setups like mq + pfifo_fast would require for this to use, for example, prio qdisc instead (to get a tc_classify() run) and to duplicate the egress classifier for each queue. With clsact, it allows for leaving the setup as is, it can additionally assign skb->priority to put the skb in one of pfifo_fast's bands and it can share state with maps. Moreover, we can access the skb's dst entry (f.e. to retrieve tclassid) w/o the need to perform a skb_dst_force() to hold on to it any longer. In lwt case, we can also use this facility to setup dst metadata via cls_bpf (bpf_skb_set_tunnel_key()) without needing a real egress qdisc just for that (case of IFF_NO_QUEUE devices, for example). The realization can be done without any changes to the scheduler core framework. All it takes is that we have two a-priori defined minors/child classes, where we can mux between ingress and egress classifier list (dev->ingress_cl_list and dev->egress_cl_list, latter stored close to dev->_tx to avoid extra cacheline miss for moderate loads). The egress part is a bit similar modelled to handle_ing() and patched to a noop in case the functionality is not used. Both handlers are now called sch_handle_ingress() and sch_handle_egress(), code sharing among the two doesn't seem practical as there are various minor differences in both paths, so that making them conditional in a single handler would rather slow things down. Full compatibility to ingress qdisc is provided as well. Since both piggyback on TC_H_CLSACT, only one of them (ingress/clsact) can exist per netdevice, and thus ingress qdisc specific behaviour can be retained for user space. This means, either a user does 'tc qdisc add dev foo ingress' and configures ingress qdisc as usual, or the 'tc qdisc add dev foo clsact' alternative, where both, ingress and egress classifier can be configured as in the below example. ingress qdisc supports attaching classifier to any minor number whereas clsact has two fixed minors for muxing between the lists, therefore to not break user space setups, they are better done as two separate qdiscs. I decided to extend the sch_ingress module with clsact functionality so that commonly used code can be reused, the module is being aliased with sch_clsact so that it can be auto-loaded properly. Alternative would have been to add a flag when initializing ingress to alter its behaviour plus aliasing to a different name (as it's more than just ingress). However, the first would end up, based on the flag, choosing the new/old behaviour by calling different function implementations to handle each anyway, the latter would require to register ingress qdisc once again under different alias. So, this really begs to provide a minimal, cleaner approach to have Qdisc_ops and Qdisc_class_ops by its own that share callbacks used by both. Example, adding qdisc: # tc qdisc add dev foo clsact # tc qdisc show dev foo qdisc mq 0: root qdisc pfifo_fast 0: parent :1 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1 qdisc pfifo_fast 0: parent :2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1 qdisc pfifo_fast 0: parent :3 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1 qdisc pfifo_fast 0: parent :4 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1 qdisc clsact ffff: parent ffff:fff1 Adding filters (deleting, etc works analogous by specifying ingress/egress): # tc filter add dev foo ingress bpf da obj bar.o sec ingress # tc filter add dev foo egress bpf da obj bar.o sec egress # tc filter show dev foo ingress filter protocol all pref 49152 bpf filter protocol all pref 49152 bpf handle 0x1 bar.o:[ingress] direct-action # tc filter show dev foo egress filter protocol all pref 49152 bpf filter protocol all pref 49152 bpf handle 0x1 bar.o:[egress] direct-action A 'tc filter show dev foo' or 'tc filter show dev foo parent ffff:' will show an empty list for clsact. Either using the parent names (ingress/egress) or specifying the full major/minor will then show the related filter lists. Prior work on a mqprio prequeue() facility [1] was done mainly by John Fastabend. [1] http://patchwork.ozlabs.org/patch/512949/ Signed-off-by: Daniel Borkmann Acked-by: John Fastabend Signed-off-by: David S. Miller include/linux/netdevice.h | 4 +- include/linux/rtnetlink.h | 5 +++ include/uapi/linux/pkt_sched.h | 4 ++ net/Kconfig | 3 ++ net/core/dev.c | 82 +++++++++++++++++++++++++++++++++++---- net/sched/Kconfig | 14 +++++-- net/sched/cls_bpf.c | 2 +- net/sched/sch_ingress.c | 88 +++++++++++++++++++++++++++++++++++++++++- 8 files changed, 186 insertions(+), 16 deletions(-) commit ede5599753802b5733f671e5f14403ae1eadce5a Author: Andrew Lunn Date: Mon Jan 11 01:13:21 2016 +0100 ethernet: amd: au1000: Remove pointless warning The warning about being able to read any MDIO device, not just the attached ethernet devices PHY applies to all MDIO drivers. So remove it. This also removes a reference to a member in phy_device which has moved. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/ethernet/amd/au1000_eth.c | 3 --- 1 file changed, 3 deletions(-) commit 3fe01e2406ead2bdc4ae436254c66b5341c1e5c7 Author: Andrew Lunn Date: Mon Jan 11 00:57:43 2016 +0100 staging: netlogic: Fix build error due to missed API change Fix a number of build errors due to moving the phy_map and centralizing interrupt allocation. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/staging/netlogic/xlr_net.c | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) commit e574f39816f0227e3f43806952c8bc551d61770a Author: Guenter Roeck Date: Sun Jan 10 12:04:32 2016 -0800 net: ethernet: faraday: Use phy_find_first() instead of open coding it Use phy_find_first() to find the first phy device instead of open coding it. Cc: Andrew Lunn Signed-off-by: Guenter Roeck Acked-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/ethernet/faraday/ftgmac100.c | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) commit ee64f08ea9832b8127aeb808411e350bc4463399 Author: Guenter Roeck Date: Sun Jan 10 12:03:16 2016 -0800 net: ethernet: broadcom: Fix build errors Commit 7f854420fbfe ("phy: Add API for {un}registering an mdio device to a bus") introduces an API to access mii_bus structures, but missed to update the sb1250 driver. This results in the following build error. drivers/net/ethernet/broadcom/sb1250-mac.c: In function 'sbmac_mii_probe': drivers/net/ethernet/broadcom/sb1250-mac.c:2360:24: error: 'struct mii_bus' has no member named 'phy_map' Use phy_find_first() instead of open coding it. Commit 2220943a21e2 ("phy: Centralise print about attached phy") introduces the following build error. drivers/net/ethernet/broadcom/sb1250-mac.c: In function 'sbmac_mii_probe': drivers/net/ethernet/broadcom/sb1250-mac.c:2383:20: error: 'phydev' undeclared Fixes: 7f854420fbfe ("phy: Add API for {un}registering an mdio device to a bus") Fixes: 2220943a21e2 ("phy: Centralise print about attached phy") Cc: Andrew Lunn Signed-off-by: Guenter Roeck Acked-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/sb1250-mac.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit 57b4f7e68720e8a9f5e6e9e61446ec36822e4c57 Merge: b483666 a18c91d Author: Dave Airlie Date: Mon Jan 11 11:48:18 2016 +1000 Merge branch 'linux-4.5' of git://github.com/skeggsb/linux into drm-next - gk20a instmem fixes / improvements - more gm10x vs gm20x differences deal with - better support for high-frequency hdmi modes - pstate control interfaces moved to debugfs - support for pcie link speed changes - misc other fixes across the board * 'linux-4.5' of git://github.com/skeggsb/linux: (50 commits) drm/nouveau/pmu: prevent falcon from acking interrupts routed to the host drm/nouveau/perf: change pcie speed on pstate change drm/nouveau/perf: add fields for pci speed and width and use it for the pstates drm/nouveau/bios/perf: parse the pci speed from the bios for tesla and newer cards drm/nouveau/pci: implement pcie speed change for kepler+ drm/nouveau/pci: implement pcie speed change for Fermi drm/nouveau/pci: implement pcie speed change for tesla drm/nouveau/pci: implement generic code for pcie speed change drm/nouveau/pci: add gk104 variant drm/nouveau/pci: add gf106 variant drm/nouveau/kms: take mode_config mutex in connector hotplug path drm/nouveau/nouveau/perfmon: add interface files for current core voltage drm/nouveau/sysfs: remove pstate interface drm/nouveau/debugfs: add copy of sysfs pstate interface ported to debugfs drm/nouveau/debugfs: we need a ctrl object for debugfs drm/nouveau/debugfs: rename functions to indicate they are used inside drm drm/nouveau/debugfs: add infrastructure to add files with other fops than only read drm/nouveau/fifo/gf100: remove references to "daemon" drm/nouveau/fb/nv50: remove references to "daemon" drm/nouveau/clk: remove references to "daemon" ... commit a18c91decee6ba4fc252bf82108adc1207dd1f86 Author: Ben Skeggs Date: Mon Jan 11 10:29:08 2016 +1000 drm/nouveau/pmu: prevent falcon from acking interrupts routed to the host Signed-off-by: Ben Skeggs .../drm/nouveau/nvkm/subdev/pmu/fuc/gf100.fuc3.h | 1366 +++++++++--------- .../drm/nouveau/nvkm/subdev/pmu/fuc/gf119.fuc4.h | 1284 +++++++++-------- .../drm/nouveau/nvkm/subdev/pmu/fuc/gk208.fuc5.h | 338 +++-- .../drm/nouveau/nvkm/subdev/pmu/fuc/gt215.fuc3.h | 1516 ++++++++++---------- .../gpu/drm/nouveau/nvkm/subdev/pmu/fuc/kernel.fuc | 14 +- 5 files changed, 2252 insertions(+), 2266 deletions(-) commit f68f4c960a3f39bf1ca30313f690486361639745 Author: Karol Herbst Date: Tue Sep 15 18:49:32 2015 +0200 drm/nouveau/perf: change pcie speed on pstate change v2: remove error and only set link for pcie devices v6: remove check for pcie device Signed-off-by: Karol Herbst drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c | 3 +++ 1 file changed, 3 insertions(+) commit d3b378c09c7b81e9005c2118343f8b7feeaaca8b Author: Karol Herbst Date: Tue Sep 15 18:49:08 2015 +0200 drm/nouveau/perf: add fields for pci speed and width and use it for the pstates Signed-off-by: Karol Herbst drivers/gpu/drm/nouveau/include/nvkm/subdev/clk.h | 3 +++ drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c | 2 ++ 2 files changed, 5 insertions(+) commit c6e2f9bc0367c0e5c734bf8b3ab1ee097977f1e2 Author: Karol Herbst Date: Tue Sep 15 18:47:12 2015 +0200 drm/nouveau/bios/perf: parse the pci speed from the bios for tesla and newer cards Signed-off-by: Karol Herbst drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/perf.h | 2 ++ drivers/gpu/drm/nouveau/nvkm/subdev/bios/perf.c | 16 ++++++++++++++++ 2 files changed, 18 insertions(+) commit 3aba825ffa6615971bb5feae57806288c14d4096 Author: Karol Herbst Date: Tue Jan 5 21:44:52 2016 +0100 drm/nouveau/pci: implement pcie speed change for kepler+ v2: rename functions v3: remove pcie2 accessors v6: fix alignement and line width, also remove useless code Signed-off-by: Karol Herbst drivers/gpu/drm/nouveau/nvkm/subdev/pci/gk104.c | 189 ++++++++++++++++++++++++ 1 file changed, 189 insertions(+) commit 7c923844bf618d8d9cbe49901089915afba86f2e Author: Karol Herbst Date: Tue Jan 5 21:44:39 2016 +0100 drm/nouveau/pci: implement pcie speed change for Fermi v5: don't set kepler func pointers v6: fix alignment and line length drivers/gpu/drm/nouveau/nvkm/subdev/pci/gf100.c | 57 +++++++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/pci/gf106.c | 10 +++++ drivers/gpu/drm/nouveau/nvkm/subdev/pci/priv.h | 7 +++ 3 files changed, 74 insertions(+) commit 5cca4bdc0d0518b31c7bf8f5e8a895af01c4c90a Author: Karol Herbst Date: Tue Jan 5 21:44:18 2016 +0100 drm/nouveau/pci: implement pcie speed change for tesla v5: don't set fermi or kepler func pointers v6: fix alignment drivers/gpu/drm/nouveau/nvkm/subdev/pci/g84.c | 92 ++++++++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/pci/g94.c | 18 +++++ drivers/gpu/drm/nouveau/nvkm/subdev/pci/priv.h | 10 +++ 3 files changed, 120 insertions(+) commit bcc19d9bf5cd8d49428c487adced1aa101271b18 Author: Karol Herbst Date: Tue Sep 15 18:48:37 2015 +0200 drm/nouveau/pci: implement generic code for pcie speed change v2: rename and group functions v4: change copyright information move printing of pcie speeds into oneinit, rename all pcie functions to nvkm_pcie_* don't try to raise the pcie version when no higher one is supported v5: revert Copyright changes and rename nvkm_pcie_raise_version to nvkm_pcie_set_version v6: remove some useless pci_is_pcie checks and rework messages Signed-off-by: Karol Herbst drivers/gpu/drm/nouveau/include/nvkm/subdev/pci.h | 14 ++ drivers/gpu/drm/nouveau/nvkm/subdev/pci/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/pci/base.c | 14 ++ drivers/gpu/drm/nouveau/nvkm/subdev/pci/pcie.c | 165 ++++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/pci/priv.h | 16 +++ 5 files changed, 210 insertions(+) commit 28c80605757883016c11a13465bd0573848f2139 Author: Karol Herbst Date: Sun Aug 30 20:06:16 2015 +0200 drm/nouveau/pci: add gk104 variant v2: change email used in header v4: change Copyright information v5: revert Copyright changes Signed-off-by: Karol Herbst drivers/gpu/drm/nouveau/include/nvkm/subdev/pci.h | 1 + drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 20 ++++++------ drivers/gpu/drm/nouveau/nvkm/subdev/pci/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/pci/gk104.c | 39 +++++++++++++++++++++++ 4 files changed, 51 insertions(+), 10 deletions(-) commit bec4961e2af539b167b470909861bfb6d9c3c363 Author: Karol Herbst Date: Sun Sep 27 02:41:34 2015 +0200 drm/nouveau/pci: add gf106 variant v2: change email used in header v4: change Copyright information v5: revert Copyright changes Signed-off-by: Karol Herbst drivers/gpu/drm/nouveau/include/nvkm/subdev/pci.h | 1 + drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 10 +++--- drivers/gpu/drm/nouveau/nvkm/subdev/pci/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/pci/gf106.c | 39 +++++++++++++++++++++++ 4 files changed, 46 insertions(+), 5 deletions(-) commit 0a882cadbc63fd2da3994af7115b4ada2fcbd638 Author: Ben Skeggs Date: Fri Jan 8 08:56:51 2016 +1000 drm/nouveau/kms: take mode_config mutex in connector hotplug path fdo#93634 Signed-off-by: Ben Skeggs Cc: stable@vger.kernel.org drivers/gpu/drm/nouveau/nouveau_connector.c | 3 +++ 1 file changed, 3 insertions(+) commit 2e7db87dee8f4a731a560b1f6a2bc588f78823bf Author: Karol Herbst Date: Sun Sep 20 14:40:27 2015 +0200 drm/nouveau/nouveau/perfmon: add interface files for current core voltage Signed-off-by: Karol Herbst Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/device.h | 1 + drivers/gpu/drm/nouveau/nouveau_hwmon.c | 50 +++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) commit fcc95ce90fdd00b48252fe971ae1ea950bc63562 Author: Karol Herbst Date: Thu Jul 30 11:56:20 2015 +0200 drm/nouveau/sysfs: remove pstate interface Signed-off-by: Karol Herbst Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/Kbuild | 1 - drivers/gpu/drm/nouveau/nouveau_drm.c | 4 - drivers/gpu/drm/nouveau/nouveau_drm.h | 1 - drivers/gpu/drm/nouveau/nouveau_sysfs.c | 198 -------------------------------- drivers/gpu/drm/nouveau/nouveau_sysfs.h | 21 ---- 5 files changed, 225 deletions(-) commit 6e9fc177399f08446293fec7607913fdbc95e191 Author: Karol Herbst Date: Thu Jul 30 11:53:31 2015 +0200 drm/nouveau/debugfs: add copy of sysfs pstate interface ported to debugfs Signed-off-by: Karol Herbst Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nouveau_debugfs.c | 140 +++++++++++++++++++++++++++++- 1 file changed, 138 insertions(+), 2 deletions(-) commit b126a200e9dbd90fbe2148ee572dd0c2508be81f Author: Karol Herbst Date: Thu Jul 30 11:52:23 2015 +0200 drm/nouveau/debugfs: we need a ctrl object for debugfs Signed-off-by: Karol Herbst Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nouveau_debugfs.c | 28 ++++++++++++++++++++++++++++ drivers/gpu/drm/nouveau/nouveau_debugfs.h | 26 ++++++++++++++++++++++++++ drivers/gpu/drm/nouveau/nouveau_drm.c | 2 ++ drivers/gpu/drm/nouveau/nouveau_drm.h | 1 + 4 files changed, 57 insertions(+) commit 56c101af401f3c1f0c97bc98ad6f32e4d4a6b05a Author: Karol Herbst Date: Fri Jul 31 00:35:42 2015 +0200 drm/nouveau/debugfs: rename functions to indicate they are used inside drm We will need our own debugfs_init and cleanup functions, because nouveau_drm isn't ready while the DRM ones are called by DRM. Signed-off-by: Karol Herbst Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nouveau_debugfs.c | 4 ++-- drivers/gpu/drm/nouveau/nouveau_debugfs.h | 9 +++++---- drivers/gpu/drm/nouveau/nouveau_drm.c | 4 ++-- 3 files changed, 9 insertions(+), 8 deletions(-) commit 1b7ab1a1c3807523417fe4c20876546caf936242 Author: Karol Herbst Date: Wed Jul 29 13:44:21 2015 +0200 drm/nouveau/debugfs: add infrastructure to add files with other fops than only read v2: use the same object for private data as with the drm debugfs functions Signed-off-by: Karol Herbst Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nouveau_debugfs.c | 56 +++++++++++++++++++++++++++++-- 1 file changed, 53 insertions(+), 3 deletions(-) commit 9402aec5448fe0d307beb0dcebb2153cf9c23161 Author: Ben Skeggs Date: Mon Jan 4 12:24:46 2016 +1000 drm/nouveau/fifo/gf100: remove references to "daemon" Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bac34ed63571f9c1a0bd049c2c0b6997e2287882 Author: Ben Skeggs Date: Mon Jan 4 12:22:54 2016 +1000 drm/nouveau/fb/nv50: remove references to "daemon" Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 547dd2714ae2b76f4703666ab420dba8fee5de86 Author: Ben Skeggs Date: Mon Jan 4 12:17:52 2016 +1000 drm/nouveau/clk: remove references to "daemon" Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/clk.h | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gf100.c | 6 +++--- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk104.c | 6 +++--- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gt215.c | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) commit caf2be8a345f9edd00f54a77629ff7509b1d6c4b Author: Ilia Mirkin Date: Sat Jan 2 17:54:51 2016 -0500 drm/nouveau/gr/gf100: provide a bit more info for various errors Signed-off-by: Ilia Mirkin Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 78 +++++++++++++++++++++++--- 1 file changed, 69 insertions(+), 9 deletions(-) commit cf0912924fd799028470bb1ccccf4928c1cbc7a9 Author: Ben Skeggs Date: Mon Dec 21 09:27:49 2015 +1000 drm/nouveau/bios: parse 8.1 Gbps DP link rate From DCB 4.1 spec. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/bios/dcb.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 7d2813c437a094d8df4997ddc55d32f24f832757 Author: Ben Skeggs Date: Sat Dec 19 16:48:34 2015 +1000 drm/nouveau/ltc/gm204: split implementation from gm107 Differences from GM10x: - GM20x LTC count detection differs from GM10x - GM20x init doesn't require large page size setting Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/ltc.h | 1 + drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 6 +-- drivers/gpu/drm/nouveau/nvkm/subdev/ltc/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gm107.c | 10 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gm204.c | 63 +++++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/ltc/priv.h | 6 +++ 6 files changed, 79 insertions(+), 8 deletions(-) commit 4fb9c3f3e56c92a914db4fea39f3c302e3c786c3 Author: Ben Skeggs Date: Sat Dec 19 16:42:22 2015 +1000 drm/nouveau/ltc/gm107: use nvkm_mask to set cbc_ctrl1 resman and nvgpu both do this, presumably for good reason. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gm107.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e3d26d0860920080f9fa1fc10a9bd01d98a96261 Author: Ben Skeggs Date: Sat Dec 19 16:24:10 2015 +1000 drm/nouveau/ibus/gm204: split implementation from gk104 GM20x doesn't require the priv ring timeout bumps that GK/GM10x have. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/ibus.h | 1 + drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 4 +-- drivers/gpu/drm/nouveau/nvkm/subdev/ibus/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/ibus/gk104.c | 4 +-- drivers/gpu/drm/nouveau/nvkm/subdev/ibus/gm204.c | 40 ++++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/ibus/priv.h | 1 + 6 files changed, 47 insertions(+), 4 deletions(-) commit 5bf561eecaeeb23942c556f0e88ba82bdc5d04cb Author: Ben Skeggs Date: Tue Dec 15 19:22:49 2015 +1000 drm/nouveau/gr/gf100-: subclass nvkm_object to store channel pointer Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 28 ++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit f01c4e682c941ba70e0ebec44db754844a1b9b82 Author: Ben Skeggs Date: Mon Nov 9 09:21:27 2015 +1000 drm/nouveau/nvif: modify nvif_unvers/nvif_unpack macros to be more obvious Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/unpack.h | 34 +++++++------ drivers/gpu/drm/nouveau/nouveau_abi16.c | 4 +- drivers/gpu/drm/nouveau/nouveau_usif.c | 25 +++++----- drivers/gpu/drm/nouveau/nvkm/core/client.c | 8 ++-- drivers/gpu/drm/nouveau/nvkm/core/ioctl.c | 56 +++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/device/ctrl.c | 12 ++--- drivers/gpu/drm/nouveau/nvkm/engine/device/user.c | 16 ++++--- drivers/gpu/drm/nouveau/nvkm/engine/disp/base.c | 8 ++-- .../gpu/drm/nouveau/nvkm/engine/disp/basenv50.c | 4 +- .../gpu/drm/nouveau/nvkm/engine/disp/channv50.c | 4 +- .../gpu/drm/nouveau/nvkm/engine/disp/corenv50.c | 4 +- .../gpu/drm/nouveau/nvkm/engine/disp/cursnv50.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/dacnv50.c | 8 ++-- .../gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c | 4 +- .../gpu/drm/nouveau/nvkm/engine/disp/hdagt215.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmig84.c | 4 +- .../gpu/drm/nouveau/nvkm/engine/disp/hdmigf119.c | 4 +- .../gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c | 4 +- .../gpu/drm/nouveau/nvkm/engine/disp/hdmigt215.c | 4 +- .../gpu/drm/nouveau/nvkm/engine/disp/oimmnv50.c | 4 +- .../gpu/drm/nouveau/nvkm/engine/disp/ovlynv50.c | 4 +- .../gpu/drm/nouveau/nvkm/engine/disp/piornv50.c | 4 +- .../gpu/drm/nouveau/nvkm/engine/disp/rootgf119.c | 4 +- .../gpu/drm/nouveau/nvkm/engine/disp/rootnv04.c | 8 ++-- .../gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c | 16 ++++--- drivers/gpu/drm/nouveau/nvkm/engine/disp/sornv50.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/dma/user.c | 4 +- .../gpu/drm/nouveau/nvkm/engine/dma/usergf100.c | 3 +- .../gpu/drm/nouveau/nvkm/engine/dma/usergf119.c | 3 +- drivers/gpu/drm/nouveau/nvkm/engine/dma/usernv50.c | 3 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmag84.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv04.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv10.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv17.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv40.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv50.c | 4 +- .../gpu/drm/nouveau/nvkm/engine/fifo/gpfifog84.c | 4 +- .../gpu/drm/nouveau/nvkm/engine/fifo/gpfifogf100.c | 4 +- .../gpu/drm/nouveau/nvkm/engine/fifo/gpfifogk104.c | 4 +- .../gpu/drm/nouveau/nvkm/engine/fifo/gpfifonv50.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 9 ++-- drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 28 +++++------ drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv04.c | 4 +- 45 files changed, 186 insertions(+), 171 deletions(-) commit 13db6d6ea7190a377af31246016af66803766588 Author: Ben Skeggs Date: Sun Nov 8 12:26:01 2015 +1000 drm/nouveau/nvif: split out client interface definitions Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/class.h | 13 ------------- drivers/gpu/drm/nouveau/include/nvif/if0000.h | 12 ++++++++++++ drivers/gpu/drm/nouveau/nvkm/core/client.c | 1 + 3 files changed, 13 insertions(+), 13 deletions(-) commit 923bc416aa1a4be7d31b0388116965245b73c3e4 Author: Ben Skeggs Date: Sun Nov 8 12:23:16 2015 +1000 drm/nouveau/nvif: split out device interface definitions Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/cl0080.h | 45 +++++++++++++++++++++ drivers/gpu/drm/nouveau/include/nvif/class.h | 49 +---------------------- drivers/gpu/drm/nouveau/include/nvif/device.h | 2 +- drivers/gpu/drm/nouveau/nouveau_connector.c | 1 + drivers/gpu/drm/nouveau/nouveau_drm.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/device/user.c | 1 + 6 files changed, 50 insertions(+), 49 deletions(-) commit 845f27253c34204bb33acb7dfeeb9f7163443efb Author: Ben Skeggs Date: Sun Nov 8 12:16:40 2015 +1000 drm/nouveau/nvif: split out ctxdma interface definitions Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/cl0002.h | 66 +++++++++++++++++++ drivers/gpu/drm/nouveau/include/nvif/class.h | 74 +--------------------- drivers/gpu/drm/nouveau/nouveau_abi16.c | 1 + drivers/gpu/drm/nouveau/nouveau_chan.c | 1 + drivers/gpu/drm/nouveau/nouveau_drm.c | 1 + drivers/gpu/drm/nouveau/nv17_fence.c | 1 + drivers/gpu/drm/nouveau/nv50_display.c | 1 + drivers/gpu/drm/nouveau/nv50_fence.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/dma/user.c | 2 +- .../gpu/drm/nouveau/nvkm/engine/dma/usergf100.c | 2 +- .../gpu/drm/nouveau/nvkm/engine/dma/usergf119.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/dma/usernv50.c | 2 +- 12 files changed, 79 insertions(+), 75 deletions(-) commit 75445a4d6423e7f742fcfe2b06eee3ce9c7de4c0 Author: Ben Skeggs Date: Sun Nov 8 12:12:15 2015 +1000 drm/nouveau/nvif: split out perfmon interface definitions Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/class.h | 79 +-------------------------- drivers/gpu/drm/nouveau/include/nvif/if0002.h | 38 +++++++++++++ drivers/gpu/drm/nouveau/include/nvif/if0003.h | 33 +++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 2 + 4 files changed, 75 insertions(+), 77 deletions(-) commit 671e9696969d9f458164f836278445d46c3f5f38 Author: Ben Skeggs Date: Sun Nov 8 11:56:00 2015 +1000 drm/nouveau/nvif: split out device control interface definitions Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/class.h | 50 +---------------------- drivers/gpu/drm/nouveau/include/nvif/if0001.h | 46 +++++++++++++++++++++ drivers/gpu/drm/nouveau/nouveau_sysfs.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/device/ctrl.c | 1 + 4 files changed, 49 insertions(+), 49 deletions(-) commit 8ed1730ccd6cf2a84243456e371a5f4484be60f5 Author: Ben Skeggs Date: Sun Nov 8 11:28:26 2015 +1000 drm/nouveau/nvif: split out fifo interface definitions Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/cl006b.h | 11 +++ drivers/gpu/drm/nouveau/include/nvif/cl506e.h | 12 +++ drivers/gpu/drm/nouveau/include/nvif/cl506f.h | 13 ++++ drivers/gpu/drm/nouveau/include/nvif/cl826e.h | 14 ++++ drivers/gpu/drm/nouveau/include/nvif/cl826f.h | 15 ++++ drivers/gpu/drm/nouveau/include/nvif/cl906f.h | 14 ++++ drivers/gpu/drm/nouveau/include/nvif/cla06f.h | 21 ++++++ drivers/gpu/drm/nouveau/include/nvif/class.h | 87 +++------------------- drivers/gpu/drm/nouveau/nouveau_abi16.c | 1 + drivers/gpu/drm/nouveau/nouveau_chan.c | 4 + drivers/gpu/drm/nouveau/nouveau_drm.c | 1 + drivers/gpu/drm/nouveau/nouveau_fence.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/fifo/chang84.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmag84.c | 3 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv04.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv10.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv17.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv40.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv50.c | 1 + .../gpu/drm/nouveau/nvkm/engine/fifo/gpfifog84.c | 3 +- .../gpu/drm/nouveau/nvkm/engine/fifo/gpfifogf100.c | 1 + .../gpu/drm/nouveau/nvkm/engine/fifo/gpfifogk104.c | 1 + .../gpu/drm/nouveau/nvkm/engine/fifo/gpfifonv50.c | 1 + 23 files changed, 132 insertions(+), 78 deletions(-) commit 7568b106718165feacdf411f1b8f95ae4263456a Author: Ben Skeggs Date: Sun Nov 8 10:44:19 2015 +1000 drm/nouveau/nvif: split out display interface definitions Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/cl0046.h | 28 +++ drivers/gpu/drm/nouveau/include/nvif/cl5070.h | 99 ++++++++ drivers/gpu/drm/nouveau/include/nvif/cl507a.h | 11 + drivers/gpu/drm/nouveau/include/nvif/cl507b.h | 11 + drivers/gpu/drm/nouveau/include/nvif/cl507c.h | 12 + drivers/gpu/drm/nouveau/include/nvif/cl507d.h | 11 + drivers/gpu/drm/nouveau/include/nvif/cl507e.h | 12 + drivers/gpu/drm/nouveau/include/nvif/class.h | 258 ++++----------------- drivers/gpu/drm/nouveau/nouveau_connector.c | 1 + drivers/gpu/drm/nouveau/nouveau_display.c | 1 + drivers/gpu/drm/nouveau/nv50_display.c | 6 + drivers/gpu/drm/nouveau/nvkm/engine/disp/base.c | 1 + .../gpu/drm/nouveau/nvkm/engine/disp/basenv50.c | 1 + .../gpu/drm/nouveau/nvkm/engine/disp/channv50.c | 2 +- .../gpu/drm/nouveau/nvkm/engine/disp/corenv50.c | 1 + .../gpu/drm/nouveau/nvkm/engine/disp/cursnv50.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/disp/dacnv50.c | 2 +- .../gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c | 2 +- .../gpu/drm/nouveau/nvkm/engine/disp/hdagt215.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmig84.c | 2 +- .../gpu/drm/nouveau/nvkm/engine/disp/hdmigf119.c | 2 +- .../gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c | 2 +- .../gpu/drm/nouveau/nvkm/engine/disp/hdmigt215.c | 2 +- .../gpu/drm/nouveau/nvkm/engine/disp/oimmnv50.c | 1 + .../gpu/drm/nouveau/nvkm/engine/disp/ovlynv50.c | 1 + .../gpu/drm/nouveau/nvkm/engine/disp/piornv50.c | 2 +- .../gpu/drm/nouveau/nvkm/engine/disp/rootgf119.c | 3 +- .../gpu/drm/nouveau/nvkm/engine/disp/rootnv04.c | 1 + .../gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c | 3 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/sornv50.c | 2 +- 30 files changed, 261 insertions(+), 222 deletions(-) commit 538b269bc5edb9be1dfbb1ebdc50a2dab90e98cc Author: Ben Skeggs Date: Sun Nov 8 10:34:50 2015 +1000 drm/nouveau/nvif: split out nvsw interface definitons Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/class.h | 22 ++++------------------ drivers/gpu/drm/nouveau/include/nvif/if0004.h | 13 +++++++++++++ drivers/gpu/drm/nouveau/include/nvif/if0005.h | 4 ++++ drivers/gpu/drm/nouveau/nouveau_drm.c | 6 ++++-- drivers/gpu/drm/nouveau/nv04_fence.c | 2 ++ drivers/gpu/drm/nouveau/nvkm/engine/sw/nv04.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/sw/nvsw.c | 4 ++-- 7 files changed, 30 insertions(+), 22 deletions(-) commit 53a6df7785c1af55e11784ec18dfa0260898453d Author: Ben Skeggs Date: Sun Nov 8 10:15:09 2015 +1000 drm/nouveau/nvif: split out fermi interface definitions Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/cl9097.h | 44 ++++++++++++++++++ drivers/gpu/drm/nouveau/include/nvif/class.h | 62 ++++---------------------- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 1 + 3 files changed, 53 insertions(+), 54 deletions(-) commit 08f7633c1de8007c3735764d5ca0c1bde4239b84 Author: Ben Skeggs Date: Sun Nov 8 10:18:19 2015 +1000 drm/nouveau/nvif: move internal class identifiers to class.h Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/class.h | 11 ++++++++--- drivers/gpu/drm/nouveau/include/nvif/ioctl.h | 8 -------- drivers/gpu/drm/nouveau/nouveau_abi16.c | 16 ++++++++-------- drivers/gpu/drm/nouveau/nouveau_chan.c | 2 +- drivers/gpu/drm/nouveau/nouveau_sysfs.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/device/ctrl.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 4 ++-- drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c | 4 ++-- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv04.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv10.c | 4 ++-- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c | 4 ++-- 11 files changed, 28 insertions(+), 31 deletions(-) commit 21f560e990441a86a380c0e981c6017d6fd8360c Author: Ben Skeggs Date: Mon Nov 23 05:28:52 2015 +1000 drm/nouveau/gr/gm107-: make use of gpc_addr() macro for tpc ramchain setup Should be no functional change here. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpc.fuc | 5 +- .../drm/nouveau/nvkm/engine/gr/fuc/gpcgm107.fuc5.h | 332 ++++++++++----------- 2 files changed, 167 insertions(+), 170 deletions(-) commit b306712d924af4dd63e44a08eb78c779e2d04154 Author: Alexandre Courbot Date: Wed Nov 11 17:07:51 2015 +0900 drm/nouveau/instmem/gk20a: use DMA API CPU mapping Commit 69c4938249fb ("drm/nouveau/instmem/gk20a: use direct CPU access") tried to be smart while using the DMA-API by managing the CPU mappings of buffers allocated with the DMA-API by itself. In doing so, it relied on dma_to_phys() which is an architecture-private function not available everywhere. This broke the build on several architectures. Since there is no reliable and portable way to obtain the physical address of a DMA-API buffer, stop trying to be smart and just use the CPU mapping that the DMA-API can provide. This means that buffers will be CPU-mapped for all their life as opposed to when we need them, but anyway using the DMA-API here is a fallback for when no IOMMU is available so we should not expect optimal behavior. This makes the IOMMU and DMA-API implementations of instmem diverge enough that we should maybe put them into separate files... Signed-off-by: Alexandre Courbot Signed-off-by: Ben Skeggs .../gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c | 154 +++++++++------------ 1 file changed, 62 insertions(+), 92 deletions(-) commit 338840eed18e05209c0e9f20f818964a66fce053 Author: Alexandre Courbot Date: Mon Nov 9 16:37:53 2015 +0900 drm/nouveau/instmem/gk20a: fix race conditions The LRU list used for recycling CPU mappings was handling concurrency very poorly. For instance, if an instobj was acquired twice before being released once, it would end up into the LRU list even though there is still a client accessing it. This patch fixes this by properly counting how many clients are currently using a given instobj. While at it, we also raise errors when inconsistencies are detected, and factorize some code. Signed-off-by: Alexandre Courbot Signed-off-by: Ben Skeggs .../gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c | 66 ++++++++++++---------- 1 file changed, 37 insertions(+), 29 deletions(-) commit 5a9e822f8098e6aa7a8305627ca5dd09d87ef846 Author: Nicolas Chauvet Date: Mon Sep 28 17:08:13 2015 +0200 drm/nouveau/gk20a: Add MODULE_FIRMWARE for gk20a This patch is needed by initramfs tools to detect the required firmware files for the module. This patch tests for either TEGRA_124_SOC or TEGRA_132_SOC for the firmwares related to the Tegra K1 generation. v2: move the MODULE_FIRMWARE to the nvidia_platform.c file. This will avoid to test for NOUVEAU_PLATFORM_DRIVER Signed-off-by: Nicolas Chauvet Reviewed-by: Alexandre Courbot Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nouveau_platform.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit da4ee13cd5755a347f16e80e0a8583478c3fef5b Author: Vince Hsu Date: Mon Nov 16 15:38:30 2015 +0800 drm/nouveau/fifo/gk104: fix engine status register offset The offset should be 8 on Kepler and later. Signed-off-by: Vince Hsu Reviewed-by: Alexandre Courbot Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 864d55f4074885705768df01a2f56b0018eef191 Author: Ben Skeggs Date: Wed Nov 11 13:06:10 2015 +1000 drm/nouveau/ce/gk104: attempt at better handling of LAUNCHERR Very rough, no idea how correct it is at this point, but it prevents getteximage-depth from piglit from hanging the GPU. v2: updated with NV_PCE_FE_LAUNCHERR_REPORT values provided by NVIDIA Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/ce/gk104.c | 54 ++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 4 deletions(-) commit d40d0fd487375c66ed444ec2bbd5ffa5d64ebede Author: Ben Skeggs Date: Wed Nov 11 10:07:22 2015 +1000 drm/nouveau/fifo/gf100: fix race condition when updating engine runlists Similar in spirit to the gk104 fix with a similar title. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c | 20 ++++++++++++++++++-- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.h | 5 ++++- .../gpu/drm/nouveau/nvkm/engine/fifo/gpfifogf100.c | 8 ++++---- 3 files changed, 26 insertions(+), 7 deletions(-) commit 386ffd5e80d54fd6ecca0a81fc50abc97aeee73f Author: Ben Skeggs Date: Wed Nov 11 09:37:05 2015 +1000 drm/nouveau/fifo/gk104: fix race condition when updating engine runlists The CPU-side tracking of engine runlists was not protected by a lock, leading to list corruption, eventually causing runlist_update() to overrun the GPU-side runlist, triggering an OOPS. Fixes some of the issues noticed during parallel piglit runs. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 20 ++++++++++++++++++-- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.h | 5 ++++- .../gpu/drm/nouveau/nvkm/engine/fifo/gpfifogk104.c | 8 ++++---- 3 files changed, 26 insertions(+), 7 deletions(-) commit cfb4f929f7f8716af4de085da1d3881384644b81 Author: Ilia Mirkin Date: Thu Nov 5 02:33:40 2015 -0500 drm/nouveau/nvkm: add/remove 0's to make 7 (or 9)-nibble constants use 8 nibbles Signed-off-by: Ilia Mirkin Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk20a.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.c | 8 ++++---- drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv40.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) commit 700c18ca08bf79360c117e39490c74c681189b65 Author: Ilia Mirkin Date: Tue Nov 3 21:14:26 2015 -0500 drm/nouveau/kms: no need to check for empty edid before drm_detect_hdmi_monitor Signed-off-by: Ilia Mirkin Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nv50_display.c | 1 - 1 file changed, 1 deletion(-) commit 1299b6377b099bc4348d955930ebe1f0ee5ccc46 Author: Alexandre Courbot Date: Mon Oct 26 14:55:37 2015 +0900 drm/nouveau/core: fix return in error path of device probe We want to unlock nv_devices_mutex in this error path as well. Signed-off-by: Alexandre Courbot Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 1a0c96c075bb4517d4ce4fb6750ee0a3cf38714c Author: Ilia Mirkin Date: Tue Nov 3 21:00:11 2015 -0500 drm/nouveau/kms: allow 225/297MHz pixel clocks for HDMI on Fermi/Kepler Some Fermi's apparently alow allow 297MHz clocks, so create a parameter which allows end-users to set it themselves until we have a reliable way to determine the board's maximum pixel clocks. Signed-off-by: Ilia Mirkin Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nouveau_connector.c | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) commit 16ef53a93c107392cd652f47251954064fa171e6 Author: Hauke Mehrtens Date: Tue Nov 3 21:00:10 2015 -0500 drm/nouveau/disp: activate dual link TMDS links only when possible Without this patch a pixel clock rate above 165 MHz on a TMDS link is assumed to be dual link. This is true for DVI, but not for HDMI. HDMI supports no dual link, but it supports pixel clock rates above 165 MHz. Only activate Dual Link mode when it is actually possible and requested. Signed-off-by: Hauke Mehrtens [imirkin: check for hdmi monitor for computing proto, use sor ctrl to enable extra config bit] Signed-off-by: Ilia Mirkin Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nv50_display.c | 15 +++++++++++---- drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c | 2 +- 3 files changed, 13 insertions(+), 6 deletions(-) commit f6106efae5f4144b32f6c10de0dc3e7efc9181e3 Author: Eric Sandeen Date: Mon Jan 11 11:34:01 2016 +1100 xfs: eliminate committed arg from xfs_bmap_finish Calls to xfs_bmap_finish() and xfs_trans_ijoin(), and the associated comments were replicated several times across the attribute code, all dealing with what to do if the transaction was or wasn't committed. And in that replicated code, an ASSERT() test of an uninitialized variable occurs in several locations: error = xfs_attr_thing(&args); if (!error) { error = xfs_bmap_finish(&args.trans, args.flist, &committed); } if (error) { ASSERT(committed); If the first xfs_attr_thing() failed, we'd skip the xfs_bmap_finish, never set "committed", and then test it in the ASSERT. Fix this up by moving the committed state internal to xfs_bmap_finish, and add a new inode argument. If an inode is passed in, it is passed through to __xfs_trans_roll() and joined to the transaction there if the transaction was committed. xfs_qm_dqalloc() was a little unique in that it called bjoin rather than ijoin, but as Dave points out we can detect the committed state but checking whether (*tpp != tp). Addresses-Coverity-Id: 102360 Addresses-Coverity-Id: 102361 Addresses-Coverity-Id: 102363 Addresses-Coverity-Id: 102364 Signed-off-by: Eric Sandeen Reviewed-by: Christoph Hellwig Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_attr.c | 141 +++++++--------------------------------- fs/xfs/libxfs/xfs_attr_remote.c | 31 ++------- fs/xfs/libxfs/xfs_bmap.c | 6 +- fs/xfs/libxfs/xfs_bmap.h | 2 +- fs/xfs/xfs_bmap_util.c | 43 +++++------- fs/xfs/xfs_dquot.c | 13 ++-- fs/xfs/xfs_inode.c | 25 +++---- fs/xfs/xfs_iomap.c | 10 ++- fs/xfs/xfs_rtalloc.c | 3 +- fs/xfs/xfs_symlink.c | 12 +--- 10 files changed, 68 insertions(+), 218 deletions(-) commit b483666bb4939ee14501da9978e5f87e4aa22228 Merge: c11b898 13c240e Author: Dave Airlie Date: Mon Jan 11 10:00:38 2016 +1000 Merge branch 'drm-next-4.5' of git://people.freedesktop.org/~agd5f/linux into drm-next Misc fixes for amdgpu and radeon for 4.5. The bulk of the changes are smatch fixes and cleanups. This also includes the DP MST fixes from Mykola. Beyond that some fixes from Christian to avoid -ENOMEM errors in some corner cases in the CS ioctl, some suspend and resume fixes, and some powerplay fixes. * 'drm-next-4.5' of git://people.freedesktop.org/~agd5f/linux: (33 commits) drm/radeon: fix trivial typo in warning message radeon: r100: Silence 'may be used uninitialized' warnings drm/amdgpu: add warning to amdgpu_bo_gpu_offset() v2 drm/amd/powerplay: implement power down asic task for CZ drm/amd/powerplay: enable power down asic task. (v2) drm/amd/powerplay: enable set boot state task drm/amd/powerplay: add thermal control task when resume. drm/amdgpu: fix hex/decimal bug when show gpu load. drm/amdgpu: Show gpu load when display gpu performance for Fiji of VI. drm/amdgpu: Show gpu load when display gpu performance for Ci. drm/amd/powerplay: Reload and initialize the smc firmware on powerplay resume. drm/amd/powerplay: add powerplay valid check to avoid null point. (v2) drm/amd/powerplay: fix Smatch static checker warnings drm/amd/powerplay: fix Smatch static checker warnings with indenting (v2) drm/amd/powerplay: fix bug that NULL checks are reversed. amdgpu/dce11: Add test for crtc < 0 to various DCEv11 functions amdgpu/dce11: Remove division from dce_v11_0_vblank_wait() amdgpu/vce3: Simplify vce_v3_0_hw_init and ensure both rings default to not ready. amdgpu/vce3: Remove magic constants from harvest register masks. amdgpu/vce3: Simplify vce_v3_0_process_interrupt() ... commit 5c721d561dc6cded61e28425b30ca66aef09a14d Merge: 6c672c9 0c129bf Author: David S. Miller Date: Sun Jan 10 18:03:47 2016 -0500 Merge branch 'mdio-device-fixes' Andrew Lunn says: ==================== Fix breakage from mdio device These two patches fix MIPS platforms which got broken by the recent mdio device patchset. ==================== Signed-off-by: David S. Miller commit 0c129bf756f869dc386005c59c2f815305dccc86 Author: Andrew Lunn Date: Thu Jan 7 21:55:52 2016 +0100 net: ethernet-rgmii.c: Fix breakage from moving phdev bus The mdio device patches moved the bus member in phy_device into a substructure. This driver got missed. Fix it. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/staging/octeon/ethernet-rgmii.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 2a4fc4ea29fbe4c59cf67d73cca309d9fe7e1fa5 Author: Andrew Lunn Date: Thu Jan 7 21:55:51 2016 +0100 net: lantiq_etop.c: Use helper to find first phy Make use of the helper to find the first phy device. This also fixes the compile breakage. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/ethernet/lantiq_etop.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit 6c672c9bf44e718ccc8bb137032a57070980bb4e Author: Romain Perier Date: Thu Jan 7 21:13:28 2016 +0100 stmmac: Don't exit mdio registration when mdio subnode is not found in the DTS Originally, most of the platforms using this driver did not define an mdio subnode in the devicetree. Commit e34d65 ("stmmac: create of compatible mdio bus for stmmac driver") introduced a backward compatibily issue by using of_mdiobus_register explicitly with an mdio subnode. This patch fixes the issue by calling the function mdiobus_register, when mdio subnode is not found. The driver is now compatible with both modes. Fixes: e34d65696d2e ("stmmac: create of compatible mdio bus for stmmac driver") Signed-off-by: Romain Perier Tested-by: Phil Reid Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 320f1a4a175e7cd5d3f006f92b4d4d3e2cbb7bb5 Author: Sasha Levin Date: Thu Jan 7 14:52:43 2016 -0500 net: sctp: prevent writes to cookie_hmac_alg from accessing invalid memory proc_dostring() needs an initialized destination string, while the one provided in proc_sctp_do_hmac_alg() contains stack garbage. Thus, writing to cookie_hmac_alg would strlen() that garbage and end up accessing invalid memory. Fixes: 3c68198e7 ("sctp: Make hmac algorithm selection for cookie generation dynamic") Signed-off-by: Sasha Levin Signed-off-by: David S. Miller net/sctp/sysctl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 18715b261541f35ccede9b8686ee3ebaac697d38 Author: Kristian Evensen Date: Thu Jan 7 16:41:33 2016 +0100 net: qmi_wwan: Add SIMCom 7230E SIMCom 7230E is a QMI LTE module with support for most "normal" bands. Manual testing has showed that only interface five works. Cc: Bjørn Mork Signed-off-by: Kristian Evensen Acked-by: Bjørn Mork Signed-off-by: David S. Miller drivers/net/usb/qmi_wwan.c | 1 + 1 file changed, 1 insertion(+) commit 749f7df18689b113dc0d914e40122b37ddaeff41 Merge: 4156afa f8ffad6 Author: David S. Miller Date: Sun Jan 10 17:54:28 2016 -0500 Merge branch 'bpf-next' Daniel Borkmann says: ==================== BPF update Fixes a csum issue on ingress. As mentioned previously, net-next seems just fine imho. Later on, will follow up with couple of replacements like ovs_skb_postpush_rcsum() etc. Thanks! v1 -> v2: - Added patch 1 with helper - Implemented Hannes' idea to just use csum_partial, thanks! ==================== Signed-off-by: David S. Miller commit f8ffad69c9f8b8dfb0b633425d4ef4d2493ba61a Author: Daniel Borkmann Date: Thu Jan 7 15:50:23 2016 +0100 bpf: add skb_postpush_rcsum and fix dev_forward_skb occasions Add a small helper skb_postpush_rcsum() and fix up redirect locations that need CHECKSUM_COMPLETE fixups on ingress. dev_forward_skb() expects a proper csum that covers also Ethernet header, f.e. since 2c26d34bbcc0 ("net/core: Handle csum for CHECKSUM_COMPLETE VXLAN forwarding"), we also do skb_postpull_rcsum() after pulling Ethernet header off via eth_type_trans(). When using eBPF in a netns setup f.e. with vxlan in collect metadata mode, I can trigger the following csum issue with an IPv6 setup: [ 505.144065] dummy1: hw csum failure [...] [ 505.144108] Call Trace: [ 505.144112] [] dump_stack+0x44/0x5c [ 505.144134] [] netdev_rx_csum_fault+0x3a/0x40 [ 505.144142] [] __skb_checksum_complete+0xcf/0xe0 [ 505.144149] [] nf_ip6_checksum+0xb2/0x120 [ 505.144161] [] icmpv6_error+0x17e/0x328 [nf_conntrack_ipv6] [ 505.144170] [] ? ip6t_do_table+0x2fa/0x645 [ip6_tables] [ 505.144177] [] ? ipv6_get_l4proto+0x65/0xd0 [nf_conntrack_ipv6] [ 505.144189] [] nf_conntrack_in+0xc2/0x5a0 [nf_conntrack] [ 505.144196] [] ipv6_conntrack_in+0x1c/0x20 [nf_conntrack_ipv6] [ 505.144204] [] nf_iterate+0x5d/0x70 [ 505.144210] [] nf_hook_slow+0x66/0xc0 [ 505.144218] [] ipv6_rcv+0x3f2/0x4f0 [ 505.144225] [] ? ip6_make_skb+0x1b0/0x1b0 [ 505.144232] [] __netif_receive_skb_core+0x36b/0x9a0 [ 505.144239] [] ? __netif_receive_skb+0x18/0x60 [ 505.144245] [] __netif_receive_skb+0x18/0x60 [ 505.144252] [] process_backlog+0x9f/0x140 [ 505.144259] [] net_rx_action+0x145/0x320 [...] What happens is that on ingress, we push Ethernet header back in, either from cls_bpf or right before skb_do_redirect(), but without updating csum. The "hw csum failure" can be fixed by using the new skb_postpush_rcsum() helper for the dev_forward_skb() case to correct the csum diff again. Thanks to Hannes Frederic Sowa for the csum_partial() idea! Fixes: 3896d655f4d4 ("bpf: introduce bpf_clone_redirect() helper") Fixes: 27b29f63058d ("bpf: add bpf_redirect() helper") Signed-off-by: Daniel Borkmann Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller include/linux/skbuff.h | 17 +++++++++++++++++ net/core/filter.c | 17 +++++++++++++---- 2 files changed, 30 insertions(+), 4 deletions(-) commit fdc5432a7b44ab7de17141beec19d946b9344e91 Author: Daniel Borkmann Date: Thu Jan 7 15:50:22 2016 +0100 net, sched: add skb_at_tc_ingress helper Add a skb_at_tc_ingress() as this will be needed elsewhere as well and can hide the ugly ifdef. Signed-off-by: Daniel Borkmann Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller include/net/sch_generic.h | 9 +++++++++ net/sched/cls_bpf.c | 6 +----- 2 files changed, 10 insertions(+), 5 deletions(-) commit 4156afafcc4c522adfd59c694126edc30247b7ad Merge: d3517f1 b840d15 Author: David S. Miller Date: Sun Jan 10 17:32:09 2016 -0500 Merge branch 'tcp-keepalive-namespaceify' Nikolay Borisov says: ==================== Namespaceify tcp keepalive machinery The following patch series enables the tcp keepalive mechanism to be configured per net namespace. This is especially useful if you have multiple containers hosted on one node and one of them is under DoS- in such situations one thing which could be done is to configure the tcp keepalive settings such that connections for that particular container are being reset faster. Another scenario where not being able to control those knob comes per container is problematic is occurs the value of net.netfilter.nf_conntrack_tcp_timeout_established is set below the keepalive interval, in such situations the server won't send an RST packet resulting in applications not trying to reconnect and stale connection waiting. Changing the global keepalive value is a possible solution but it might interfere with other containers. The three patches gradually convert each of the affected knobs to be per netns. I thought it would be easier for review than put everything in one patch. If people deem it more appropriate to squash everything in one patch (maybe after review) I'd be more than happy to do it. The patches have been compile-tested on 4.4 and functionally tested on 3.12 and they work as expected. These are based off 4.4-rc8 ==================== Acked-by: "Eric W. Biederman" Signed-off-by: David S. Miller commit b840d15d39128d08ed4486085e5507d2617b9ae1 Author: Nikolay Borisov Date: Thu Jan 7 16:38:45 2016 +0200 ipv4: Namespecify the tcp_keepalive_intvl sysctl knob This is the final part required to namespaceify the tcp keep alive mechanism. Signed-off-by: Nikolay Borisov Signed-off-by: David S. Miller include/net/netns/ipv4.h | 1 + include/net/tcp.h | 5 +++-- net/ipv4/sysctl_net_ipv4.c | 14 +++++++------- net/ipv4/tcp_ipv4.c | 1 + net/ipv4/tcp_timer.c | 1 - 5 files changed, 12 insertions(+), 10 deletions(-) commit 9bd6861bd4326e3afd3f14a9ec8a723771fb20bb Author: Nikolay Borisov Date: Thu Jan 7 16:38:44 2016 +0200 ipv4: Namespecify tcp_keepalive_probes sysctl knob This is required to have full tcp keepalive mechanism namespace support. Signed-off-by: Nikolay Borisov Signed-off-by: David S. Miller include/net/netns/ipv4.h | 1 + include/net/tcp.h | 5 +++-- net/ipv4/sysctl_net_ipv4.c | 14 +++++++------- net/ipv4/tcp_ipv4.c | 1 + net/ipv4/tcp_timer.c | 1 - 5 files changed, 12 insertions(+), 10 deletions(-) commit 13b287e8d1cad951634389f85b8c9b816bd3bb1e Author: Nikolay Borisov Date: Thu Jan 7 16:38:43 2016 +0200 ipv4: Namespaceify tcp_keepalive_time sysctl knob Different net namespaces might have different requirements as to the keepalive time of tcp sockets. This might be required in cases where different firewall rules are in place which require tcp timeout sockets to be increased/decreased independently of the host. Signed-off-by: Nikolay Borisov Signed-off-by: David S. Miller include/net/netns/ipv4.h | 2 ++ include/net/tcp.h | 5 +++-- net/ipv4/sysctl_net_ipv4.c | 14 +++++++------- net/ipv4/tcp_ipv4.c | 2 ++ net/ipv4/tcp_timer.c | 1 - 5 files changed, 14 insertions(+), 10 deletions(-) commit 787d7ac308ff2279e4b2ea393ad4d990de486ef2 Author: Hannes Frederic Sowa Date: Thu Jan 7 14:28:39 2016 +0100 udp: restrict offloads to one namespace udp tunnel offloads tend to aggregate datagrams based on inner headers. gro engine gets notified by tunnel implementations about possible offloads. The match is solely based on the port number. Imagine a tunnel bound to port 53, the offloading will look into all DNS packets and tries to aggregate them based on the inner data found within. This could lead to data corruption and malformed DNS packets. While this patch minimizes the problem and helps an administrator to find the issue by querying ip tunnel/fou, a better way would be to match on the specific destination ip address so if a user space socket is bound to the same address it will conflict. Cc: Tom Herbert Cc: Eric Dumazet Signed-off-by: Hannes Frederic Sowa Signed-off-by: David S. Miller drivers/net/geneve.c | 2 +- drivers/net/vxlan.c | 2 +- include/net/protocol.h | 2 +- net/ipv4/fou.c | 2 +- net/ipv4/udp_offload.c | 10 +++++++--- 5 files changed, 11 insertions(+), 7 deletions(-) commit 2ac83cccabbc8d264c20ce11931d60e0e6ea3f53 Author: Geliang Tang Date: Sat Dec 12 21:36:57 2015 +0800 PCI: hotplug: Use list_for_each_entry() to simplify code Use list_for_each_entry() instead of list_for_each() to simplify the code. Signed-off-by: Geliang Tang Signed-off-by: Bjorn Helgaas drivers/pci/hotplug/ibmphp_core.c | 21 ++++++--------------- drivers/pci/hotplug/ibmphp_ebda.c | 24 +++++++++--------------- drivers/pci/hotplug/ibmphp_hpc.c | 18 ++++++++---------- drivers/pci/hotplug/ibmphp_res.c | 32 +++++++++----------------------- drivers/pci/hotplug/pci_hotplug_core.c | 4 +--- drivers/pci/hotplug/pcihp_skeleton.c | 7 ++----- drivers/pci/hotplug/rpadlpar_core.c | 7 +++---- drivers/pci/hotplug/rpaphp_core.c | 7 +++---- drivers/pci/hotplug/s390_pci_hpc.c | 7 +++---- drivers/pci/hotplug/shpchp_core.c | 7 ++----- 10 files changed, 46 insertions(+), 88 deletions(-) commit d3517f19f2c41f1b4e9b6a763c0cea3f7d72b589 Merge: c9c9931 4f5590f Author: David S. Miller Date: Sun Jan 10 16:50:21 2016 -0500 Merge branch 'mlxsw-layer2-multicast' Jiri Pirko says: ==================== mlxsw: Adding layer 2 multicast Elad says: This patchset add Linux hardware reflection for L2 multicast offload and add MC support in mlxsw. For every bridge MDB entry insertion, either by IGMP snooping or by static insertion/removal, a switchdev ops is been called. In mlxsw, a new multicast group (MID) is been created and ports are assigned. When all ports are removed, the multicast group is been deleted. --- v1->v2: - GFP_ATOMIC->GFP_KERNEL change in patch 7/8 ==================== Signed-off-by: David S. Miller commit 4f5590f8cd736768170818d1b7ea0075972e2701 Author: Elad Raz Date: Sun Jan 10 21:06:29 2016 +0100 switchdev: Adding IGMP snooping documentation Signed-off-by: Elad Raz Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller Documentation/networking/switchdev.txt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 3a49b4fde2a1384101bc80d66e41271bb37a66e7 Author: Elad Raz Date: Sun Jan 10 21:06:28 2016 +0100 mlxsw: Adding layer 2 multicast support Add SWITCHDEV_OBJ_ID_PORT_MDB switchdev ops support. On first MDB insertion creates a new multicast group (MID) and add members port to the MID. Also add new MDB entry for the flooding-domain (fid-vid) and link the MDB entry to the newly constructed MC group. Signed-off-by: Elad Raz Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Reviewed-by: Nikolay Aleksandrov Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 1 + drivers/net/ethernet/mellanox/mlxsw/spectrum.h | 13 ++ .../ethernet/mellanox/mlxsw/spectrum_switchdev.c | 176 +++++++++++++++++++++ 3 files changed, 190 insertions(+) commit e4b6f6931c0840b6a9505415bd02bd0c8520e4c9 Author: Elad Raz Date: Sun Jan 10 21:06:27 2016 +0100 mlxsw: Adding VID to FID translatation Adding a generic function that translate VID to FID. Signed-off-by: Elad Raz Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller .../ethernet/mellanox/mlxsw/spectrum_switchdev.c | 30 ++++++++++++++-------- 1 file changed, 19 insertions(+), 11 deletions(-) commit 53ae628316b8db6659bc8cef07698f624608c448 Author: Elad Raz Date: Sun Jan 10 21:06:26 2016 +0100 mlxsw: Changing the maximum number of multicast group to a define Signed-off-by: Elad Raz Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 2 +- drivers/net/ethernet/mellanox/mlxsw/spectrum.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) commit fabe5483226e9c804837374dadcb472325950e72 Author: Elad Raz Date: Sun Jan 10 21:06:25 2016 +0100 mlxsw: reg: Adding SMID register Adding back SMID register definition and packing. For each MC group a new SMID entry will be generated. Signed-off-by: Elad Raz Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/reg.h | 51 +++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) commit 5230b25f06da95032320d95e859eb95e463af12c Author: Elad Raz Date: Sun Jan 10 21:06:24 2016 +0100 mlxsw: reg: Add definition of multicast record for SFD register Multicast-related records have specific format in SFD register. Signed-off-by: Elad Raz Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/reg.h | 49 +++++++++++++++++++++++++++---- 1 file changed, 44 insertions(+), 5 deletions(-) commit f1fecb1d10ecc2f94d19e67827b9f678b36bfc61 Author: Elad Raz Date: Sun Jan 10 21:06:23 2016 +0100 bridge: Reflect MDB entries to hardware Offload MDB changes per port to hardware Signed-off-by: Elad Raz Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Reviewed-by: Nikolay Aleksandrov Signed-off-by: David S. Miller net/bridge/br_mdb.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit 4d41e12593a9a6c4aaf113d44c8c619067b2b0aa Author: Elad Raz Date: Sun Jan 10 21:06:22 2016 +0100 switchdev: Adding MDB entry offload Define HW multicast entry: MAC and VID. Using a MAC address simplifies support for both IPV4 and IPv6. Signed-off-by: Elad Raz Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller include/net/switchdev.h | 11 +++++++++++ net/switchdev/switchdev.c | 2 ++ 2 files changed, 13 insertions(+) commit 3e46b25376321db119bc8507ce8c8841c580e736 Author: Mickaël Salaün Date: Tue Dec 22 22:15:10 2015 +0100 um: Use race-free temporary file creation Open the memory mapped file with the O_TMPFILE flag when available. Signed-off-by: Mickaël Salaün Cc: Jeff Dike Cc: Richard Weinberger Acked-by: Tristan Schmelcher Signed-off-by: Richard Weinberger arch/um/os-Linux/mem.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 571d2f0c341fa15dbbb4fb73c80bd740ef37a9f0 Author: Mickaël Salaün Date: Tue Dec 22 22:15:09 2015 +0100 um: Do not set unsecure permission for temporary file Remove the insecure 0777 mode for temporary file to prohibit other users to change the executable mapped code. An attacker could gain access to the mapped file descriptor from the temporary file (before it is unlinked) in a read-only mode but it should not be accessible in write mode to avoid arbitrary code execution. To not change the hostfs behavior, the temporary file creation permission now depends on the current umask(2) and the implementation of mkstemp(3). Signed-off-by: Mickaël Salaün Cc: Jeff Dike Cc: Richard Weinberger Acked-by: Tristan Schmelcher Signed-off-by: Richard Weinberger arch/um/os-Linux/mem.c | 6 ------ 1 file changed, 6 deletions(-) commit 42d91f612c879627c925d3779c36877cd440f9f9 Author: Mickaël Salaün Date: Thu Dec 24 13:12:11 2015 +0100 um: Fix build error and kconfig for i386 Fix build error by generating elfcore.o only when ELF_CORE (depending on COREDUMP) is selected: arch/x86/um/built-in.o: In function `elf_core_write_extra_phdrs': (.text+0x3e62): undefined reference to `dump_emit' arch/x86/um/built-in.o: In function `elf_core_write_extra_data': (.text+0x3eef): undefined reference to `dump_emit' Fixes: 5d2acfc7b974 ("kconfig: make allnoconfig disable options behind EMBEDDED and EXPERT") Signed-off-by: Mickaël Salaün Cc: Jeff Dike Cc: Richard Weinberger Cc: Josh Triplett Cc: Paul E. McKenney Cc: Michal Marek Cc: Andrew Morton Cc: Linus Torvalds Signed-off-by: Richard Weinberger Reviewed-by: Josh Triplett arch/x86/um/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c50b4659e444b020657e01bdf769c965e5597cb0 Author: Mickaël Salaün Date: Tue Dec 29 21:35:47 2015 +0100 um: Add seccomp support This brings SECCOMP_MODE_STRICT and SECCOMP_MODE_FILTER support through prctl(2) and seccomp(2) to User-mode Linux for i386 and x86_64 subarchitectures. secure_computing() is called first in handle_syscall() so that the syscall emulation will be aborted quickly if matching a seccomp rule. This is inspired from Meredydd Luff's patch (https://gerrit.chromium.org/gerrit/21425). Signed-off-by: Mickaël Salaün Cc: Jeff Dike Cc: Richard Weinberger Cc: Ingo Molnar Cc: Kees Cook Cc: Andy Lutomirski Cc: Will Drewry Cc: Chris Metcalf Cc: Michael Ellerman Cc: James Hogan Cc: Meredydd Luff Cc: David Drysdale Signed-off-by: Richard Weinberger Acked-by: Kees Cook .../features/seccomp/seccomp-filter/arch-support.txt | 2 +- arch/um/Kconfig.common | 1 + arch/um/Kconfig.um | 16 ++++++++++++++++ arch/um/include/asm/thread_info.h | 2 ++ arch/um/kernel/skas/syscall.c | 5 +++++ 5 files changed, 25 insertions(+), 1 deletion(-) commit d8f8b8445648c267a24f30a72533e77cb6543f21 Author: Mickaël Salaün Date: Tue Dec 29 21:35:46 2015 +0100 um: Add full asm/syscall.h support Add subarchitecture-independent implementation of asm-generic/syscall.h allowing access to user system call parameters and results: * syscall_get_nr() * syscall_rollback() * syscall_get_error() * syscall_get_return_value() * syscall_set_return_value() * syscall_get_arguments() * syscall_set_arguments() * syscall_get_arch() provided by arch/x86/um/asm/syscall.h This provides the necessary syscall helpers needed by HAVE_ARCH_SECCOMP_FILTER plus syscall_get_error(). This is inspired from Meredydd Luff's patch (https://gerrit.chromium.org/gerrit/21425). Signed-off-by: Mickaël Salaün Cc: Jeff Dike Cc: Richard Weinberger Cc: Thomas Gleixner Cc: Ingo Molnar Cc: H. Peter Anvin Cc: Kees Cook Cc: Andy Lutomirski Cc: Will Drewry Cc: Meredydd Luff Cc: David Drysdale Signed-off-by: Richard Weinberger Acked-by: Kees Cook arch/um/include/asm/syscall-generic.h | 138 ++++++++++++++++++++++++++++++++++ arch/x86/um/asm/syscall.h | 1 + 2 files changed, 139 insertions(+) commit 4a0b88070406323487bad730d8945f482151a145 Author: Mickaël Salaün Date: Tue Dec 29 21:35:45 2015 +0100 selftests/seccomp: Remove the need for HAVE_ARCH_TRACEHOOK Some architectures do not implement PTRACE_GETREGSET nor PTRACE_SETREGSET (required by HAVE_ARCH_TRACEHOOK) but only implement PTRACE_GETREGS and PTRACE_SETREGS (e.g. User-mode Linux). This improve seccomp selftest portability for architectures without HAVE_ARCH_TRACEHOOK support by defining a new trigger HAVE_GETREGS. For now, this is only enabled for i386 and x86_64 architectures. This is required to be able to run this tests on User-mode Linux. Signed-off-by: Mickaël Salaün Cc: Jeff Dike Cc: Richard Weinberger Cc: Kees Cook Cc: Andy Lutomirski Cc: Will Drewry Cc: Shuah Khan Cc: Meredydd Luff Cc: David Drysdale Signed-off-by: Richard Weinberger Acked-by: Kees Cook tools/testing/selftests/seccomp/seccomp_bpf.c | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) commit e04c989eb785af61d2895d76d38c09166296f9c5 Author: Mickaël Salaün Date: Tue Dec 29 21:35:44 2015 +0100 um: Fix ptrace GETREGS/SETREGS bugs This fix two related bugs: * PTRACE_GETREGS doesn't get the right orig_ax (syscall) value * PTRACE_SETREGS can't set the orig_ax value (erased by initial value) Get rid of the now useless and error-prone get_syscall(). Fix inconsistent behavior in the ptrace implementation for i386 when updating orig_eax automatically update the syscall number as well. This is now updated in handle_syscall(). Signed-off-by: Mickaël Salaün Cc: Jeff Dike Cc: Richard Weinberger Cc: Thomas Gleixner Cc: Kees Cook Cc: Andy Lutomirski Cc: Will Drewry Cc: Thomas Meyer Cc: Nicolas Iooss Cc: Anton Ivanov Cc: Meredydd Luff Cc: David Drysdale Signed-off-by: Richard Weinberger Acked-by: Kees Cook arch/um/include/shared/os.h | 1 - arch/um/kernel/skas/syscall.c | 26 ++++++++++++++------------ arch/um/os-Linux/skas/process.c | 7 ------- arch/x86/um/ptrace_32.c | 8 +++----- 4 files changed, 17 insertions(+), 25 deletions(-) commit a7df4716d19594b7b3f106f0bc0ca1c548e508e6 Author: Vegard Nossum Date: Thu Dec 31 17:06:17 2015 +0100 um: link with -lpthread Similarly to commit fb1770aa78a43530940d0c2dd161e77bc705bdac, with gcc 5 on Ubuntu and CONFIG_STATIC_LINK=y I was seeing these linker errors: /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/librt.a(timer_create.o): In function `__timer_create_new': (.text+0xcd): undefined reference to `pthread_once' /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/librt.a(timer_create.o): In function `__timer_create_new': (.text+0x126): undefined reference to `pthread_attr_init' /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/librt.a(timer_create.o): In function `__timer_create_new': (.text+0x168): undefined reference to `pthread_attr_setdetachstate' [...] Obviously we also need -lpthread for librt.a. Cc: stable@vger.kernel.org # 4.4 Signed-off-by: Vegard Nossum Signed-off-by: Richard Weinberger scripts/link-vmlinux.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8c6157b6b30a765ec233a1be5f9446f24a5283de Author: Anton Ivanov Date: Mon Dec 21 18:54:00 2015 +0000 um: Update UBD to use pread/pwrite family of functions This decreases the number of syscalls per read/write by half. Signed-off-by: Anton Ivanov Signed-off-by: Richard Weinberger arch/um/drivers/ubd_kern.c | 27 +++++---------------------- arch/um/include/shared/os.h | 2 ++ arch/um/os-Linux/file.c | 19 +++++++++++++++++++ 3 files changed, 26 insertions(+), 22 deletions(-) commit 470a166e8c5a4da4be88545b1c4dde308abac5b2 Author: Anton Ivanov Date: Mon Dec 21 11:28:03 2015 +0000 um: Do not change hard IRQ flags in soft IRQ processing Software IRQ processing in generic architectures assumes that the exit out of hard IRQ may have re-enabled interrupts (some architectures may have an implicit EOI). It presumes them enabled and toggles the flags once more just in case unless this is turned off in the architecture specific hardirq.h by setting __ARCH_IRQ_EXIT_IRQS_DISABLED This patch adds this to UML where due to the way IRQs are handled it is an optimization (it works fine without it too). Signed-off-by: Anton Ivanov Signed-off-by: Richard Weinberger arch/um/include/asm/hardirq.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit d5e3f5cbe5cee7fe6da26566559a978547179b37 Author: Anton Ivanov Date: Mon Dec 21 11:28:02 2015 +0000 um: Prevent IRQ handler reentrancy The existing IRQ handler design in UML does not prevent reentrancy This is mitigated by fd-enable/fd-disable semantics for the IO portion of the UML subsystem. The timer, however, can and is re-entered resulting in very deep stack usage and occasional stack exhaustion. This patch prevents this by checking if there is a timer interrupt in-flight before processing any pending timer interrupts. Signed-off-by: Anton Ivanov Signed-off-by: Richard Weinberger arch/um/os-Linux/signal.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) commit 0754fb298f2f2719f0393491d010d46cfb25d043 Author: Vegard Nossum Date: Fri Dec 18 21:28:53 2015 +0100 uml: flush stdout before forking I was seeing some really weird behaviour where piping UML's output somewhere would cause output to get duplicated: $ ./vmlinux | head -n 40 Checking that ptrace can change system call numbers...Core dump limits : soft - 0 hard - NONE OK Checking syscall emulation patch for ptrace...Core dump limits : soft - 0 hard - NONE OK Checking advanced syscall emulation patch for ptrace...Core dump limits : soft - 0 hard - NONE OK Core dump limits : soft - 0 hard - NONE This is because these tests do a fork() which duplicates the non-empty stdout buffer, then glibc flushes the duplicated buffer as each child exits. A simple workaround is to flush before forking. Cc: stable@vger.kernel.org Signed-off-by: Vegard Nossum Signed-off-by: Richard Weinberger arch/um/os-Linux/start_up.c | 2 ++ 1 file changed, 2 insertions(+) commit 9f2dfda2f2f1c6181c3732c16b85c59ab2d195e0 Author: Vegard Nossum Date: Wed Dec 16 21:59:56 2015 +0100 uml: fix hostfs mknod() An inverted return value check in hostfs_mknod() caused the function to return success after handling it as an error (and cleaning up). It resulted in the following segfault when trying to bind() a named unix socket: Pid: 198, comm: a.out Not tainted 4.4.0-rc4 RIP: 0033:[<0000000061077df6>] RSP: 00000000daae5d60 EFLAGS: 00010202 RAX: 0000000000000000 RBX: 000000006092a460 RCX: 00000000dfc54208 RDX: 0000000061073ef1 RSI: 0000000000000070 RDI: 00000000e027d600 RBP: 00000000daae5de0 R08: 00000000da980ac0 R09: 0000000000000000 R10: 0000000000000003 R11: 00007fb1ae08f72a R12: 0000000000000000 R13: 000000006092a460 R14: 00000000daaa97c0 R15: 00000000daaa9a88 Kernel panic - not syncing: Kernel mode fault at addr 0x40, ip 0x61077df6 CPU: 0 PID: 198 Comm: a.out Not tainted 4.4.0-rc4 #1 Stack: e027d620 dfc54208 0000006f da981398 61bee000 0000c1ed daae5de0 0000006e e027d620 dfcd4208 00000005 6092a460 Call Trace: [<60dedc67>] SyS_bind+0xf7/0x110 [<600587be>] handle_syscall+0x7e/0x80 [<60066ad7>] userspace+0x3e7/0x4e0 [<6006321f>] ? save_registers+0x1f/0x40 [<6006c88e>] ? arch_prctl+0x1be/0x1f0 [<60054985>] fork_handler+0x85/0x90 Let's also get rid of the "cosmic ray protection" while we're at it. Fixes: e9193059b1b3 "hostfs: fix races in dentry_name() and inode_name()" Signed-off-by: Vegard Nossum Cc: Jeff Dike Cc: Al Viro Cc: stable@vger.kernel.org Signed-off-by: Richard Weinberger fs/hostfs/hostfs_kern.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 8679ee4204cfd5cf78b996508ccadc1ec6130f1a Author: Dmitry Torokhov Date: Wed Jan 6 14:20:07 2016 -0800 Input: gpio-keys - fix check for disabling unsupported keys Commit 4ea14a53d8f881034fa9e186653821c4e3d9a8fb ("Input: gpio-keys - report error when disabling unsupported key") tried let user know that they attempted to disable an unsupported key, unfortunately the check is wrong as it believes that all codes are invalid. Fix it by ensuring that keys that we try to disable are subset of keys (or switches) that device reports. Fixes: 4ea14a53d8f8 ("Input: gpio-keys - report error when disabling unsupported key") Reported-by: Ivaylo Dimitrov Tested-by: Ivaylo Dimitrov Signed-off-by: Dmitry Torokhov drivers/input/keyboard/gpio_keys.c | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) commit 2cfa2b191e56fd4c5c6ffb72e1d1e82ed225676d Author: Rami Rosen Date: Sat Jan 9 23:33:06 2016 +0200 cgroup: fix a typo. This patch fixes a typo in a comment in cgroup.c. Signed-off-by: Rami Rosen Signed-off-by: Tejun Heo kernel/cgroup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8b63b6bfc1a551acf154061699028c7032d7890c Merge: e07ecd7 55f5560 Author: Dan Williams Date: Sun Jan 10 07:53:55 2016 -0800 Merge branch 'for-4.5/block-dax' into for-4.5/libnvdimm commit eb37bc3f85b69f529d2ad06c41fad8dedd654c76 Author: Sudip Mukherjee Date: Wed Jan 6 10:48:54 2016 +1100 m68k: Provide __phys_to_pfn() and __pfn_to_phys() The defconfig build of m68k was failing with the error: implicit declaration of function '__pfn_to_phys' Other architectures have added , but if we do so here then we will also get redeclaration of some other functions. So it is better to copy these macros into page.h. Fixes: 0a3c3bf11240 ("x86, mm: introduce vmem_altmap to augment vmemmap_populate()") Signed-off-by: Sudip Mukherjee Cc: Dan Williams Reported-by: Guenter Roeck (m68knommu) [geert: Apply to page.h instead of page_mm.h to cover nommu, reword] Signed-off-by: Geert Uytterhoeven arch/m68k/include/asm/page.h | 3 +++ 1 file changed, 3 insertions(+) commit 2d522618c8d13abe87f8203dcb115bfcc555f88b Author: Finn Thain Date: Fri Dec 18 12:44:28 2015 +1100 m68k/atari, m68k/sun3: Fix SCSI platform device registration when driver is modular Fixes: 3ff228af84b5 ("atari_scsi: Convert to platform device") Fixes: 0d31f8759109 ("sun3_scsi: Convert to platform device") Reported-by: Michael Schmitz Signed-off-by: Finn Thain Signed-off-by: Geert Uytterhoeven arch/m68k/atari/config.c | 4 ++-- arch/m68k/sun3/config.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit f2ed6b07645ed29c1e090ead2e41066385cba3ea Author: Mengdong Lin Date: Wed Jan 6 13:29:31 2016 +0800 ASoC: Make aux_dev more like a generic component aux_dev is mainly used by the machine driver to specify analog devices, which are registered as codecs. Making it more like a generic component can help the machine driver to use it to specify any component with topology info by name. Details: - Remove the stub 'rtd_aux' array from the soc card. - Add a list 'aux_comp_list' to store the components of aux_devs. And add a list head 'list_aux' to struct snd_soc_component, for adding such components to the above list. - Add a 'init' ops to a component for machine specific init. soc_bind_aux_dev() will set it to be aux_dev's init. And it will be called when probing the component. - soc_bind_aux_dev() will also search components by name of an aux_dev, since it may not be a codec. - Move probing of aux_devs before checking new DAI links brought by topology. - Move removal of aux_devs later than removal of links. Because topology of aux components may register DAIs and the DAI drivers will go with removal of the aux components, we want soc_remove_link_dais() to remove the DAIs at first. Signed-off-by: Mengdong Lin Signed-off-by: Mark Brown include/sound/soc.h | 8 ++- sound/soc/soc-core.c | 146 +++++++++++++++++++++++++++------------------------ 2 files changed, 83 insertions(+), 71 deletions(-) commit 7905f08247131ac5d5c0e2f057e0cf19da40e5da Author: Martin Sperl Date: Sat Jan 9 09:25:53 2016 +0000 ASoC: bcm2835: cleanup includes by ordering them alphabetically Cleanup of includes so that they are ordered alphabetically. Signed-off-by: Martin Sperl Signed-off-by: Mark Brown sound/soc/bcm/bcm2835-i2s.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit c36d9b3f6de7c6aefed5fdf6ad752773bdafa60c Author: Maruthi Srinivas Bayyavarapu Date: Fri Jan 8 18:22:11 2016 -0500 ASoC: AMD: Manage ACP 2.x SRAM banks power ACP SRAM banks gets turned on when ACP is powered on. Not all banks are used for playback/capture. So, power on required banks during audio device open and power off during audio device close. Signed-off-by: Maruthi Bayyavarapu Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher Signed-off-by: Mark Brown sound/soc/amd/acp-pcm-dma.c | 94 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 87 insertions(+), 7 deletions(-) commit 1927da9355670d04889ce57716bbc671fdca4135 Author: Maruthi Srinivas Bayyavarapu Date: Fri Jan 8 18:22:10 2016 -0500 ASoC: AMD: add pm ops genpd will power off/on ACP to manage runtime ACP PM. ACP runtime PM hooks are added to get it deinitialized and initialized respectively, after it is powered off/on. When system goes to suspend when audio usecase is active, ACP will be powered off through genpd. When it resumes, ACP needs to be initialized and reconfigured. Signed-off-by: Maruthi Bayyavarapu Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher Signed-off-by: Mark Brown sound/soc/amd/acp-pcm-dma.c | 48 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) commit 7c31335a03b6afff1c474c693c3187f13b8587cc Author: Maruthi Srinivas Bayyavarapu Date: Fri Jan 8 18:22:09 2016 -0500 ASoC: AMD: add AMD ASoC ACP 2.x DMA driver ACP IP has internal DMA controller with multiple channels which can be programmed in cyclic/non cyclic manner. ACP can generate interrupt upon completion of DMA transfer, if required. The PCM driver provides the platform DMA component to ALSA core. Signed-off-by: Maruthi Bayyavarapu Reviewed-by: Alex Deucher Reviewed-by: Murali Krishna Vemuri Signed-off-by: Alex Deucher Signed-off-by: Mark Brown sound/soc/Kconfig | 1 + sound/soc/Makefile | 1 + sound/soc/amd/Kconfig | 4 + sound/soc/amd/Makefile | 3 + sound/soc/amd/acp-pcm-dma.c | 914 ++++++++++++++++++++++++++++++++++++++++++++ sound/soc/amd/acp.h | 118 ++++++ 6 files changed, 1041 insertions(+) commit 2fa86e94a383cd6dd6e34a10950ddc93c0bb173b Author: Maruthi Srinivas Bayyavarapu Date: Fri Jan 8 18:22:08 2016 -0500 ASoC: AMD : add ACP 2.2 register headers These are register headers for the ACP (Audio CoProcessor) v2.2 Signed-off-by: Maruthi Bayyavarapu Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher Signed-off-by: Mark Brown sound/soc/amd/include/acp_2_2_d.h | 609 ++++++++ sound/soc/amd/include/acp_2_2_enum.h | 1068 ++++++++++++++ sound/soc/amd/include/acp_2_2_sh_mask.h | 2292 +++++++++++++++++++++++++++++++ 3 files changed, 3969 insertions(+) commit f51e3d5372b4bf80006cdc1694a7656aba7c9b58 Author: Maciej S. Szmigiero Date: Sun Dec 20 21:31:48 2015 +0100 ASoC: fsl_ssi: mark some registers precious Mark some registers precious since their reads have side effects (like clearing flags). Signed-off-by: Maciej S. Szmigiero Reviewed-by: Fabio Estevam Signed-off-by: Mark Brown sound/soc/fsl/fsl_ssi.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 3f1c241f0f5f90046258e6b8d4aeb6463ffdc08e Author: Maciej S. Szmigiero Date: Sun Dec 20 21:30:25 2015 +0100 ASoC: fsl_ssi: mark SACNT register volatile SACNT register should be marked volatile since its WR and RD bits are cleared by SSI after completing the relevant operation. This unbreaks AC'97 register access. Fixes: 05cf237972fe ("ASoC: fsl_ssi: Add driver suspend and resume to support MEGA Fast") Signed-off-by: Maciej S. Szmigiero Reviewed-by: Fabio Estevam Signed-off-by: Mark Brown sound/soc/fsl/fsl_ssi.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 3637976b8975afb0a55a1fc88a2c320a2839a9da Author: Jeeja KP Date: Fri Dec 18 15:12:09 2015 +0530 ASoC: Intel: Skylake: Add Resume capability in PCM info. This patch adds pcm capability to support Resume. Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-pcm.c | 1 + 1 file changed, 1 insertion(+) commit 920982c93c26a9a94d1e90221953a2ce16e91c0b Author: Jeeja KP Date: Fri Dec 18 15:12:08 2015 +0530 ASoC: Intel: Skylake: Reconfigure Link stream on suspend/resume On suspend the link register are lost so we need to reconfigure them in resume. This patch adds the reconfiguration of the link register in trigger resume. Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-pcm.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) commit 748a1d5a3fb75e1102320214a8bde347d7b228c3 Author: Jeeja KP Date: Fri Dec 18 15:12:07 2015 +0530 ASoC: Intel: Skylake: Add DMA resume position in Trigger resume/suspend Use the DMA resume capability to resume the DMA position when stream is suspended/resumed. In suspend we save the position and when stream is resumed the stream needs to be started from the position when the stream was suspended using the new DMA resume capabilities Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-pcm.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) commit 1f4956fd96c98e3fbe9a2818014cf36854398db0 Author: Jeeja KP Date: Fri Dec 18 15:12:06 2015 +0530 ASoC: Intel: Skylake: enable interrupt as wake source in active suspend In active suspend, any HDA interrupt should wake the system. When device enters active suspend, we need to enable HDA controller interrupt as wake source. Similarly disable HDA controller interrupt as wake source when exiting active suspend. Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl.c | 4 ++++ 1 file changed, 4 insertions(+) commit c2e20cd8187cb576362e7c8ecb0b1c51eedb2686 Author: Vinod Koul Date: Fri Dec 18 15:12:05 2015 +0530 ASoC: Intel: Skylake: manage link power in active suspend When device enters active suspend, we should turn off the links as they are not in use. Similarly we need to bring back links when we exit active suspend. Signed-off-by: Jayachandran B Signed-off-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl.c | 2 ++ 1 file changed, 2 insertions(+) commit 721c3e36f774150f453216efcf5e1895577ac68c Author: Dharageswari.R Date: Fri Dec 18 15:12:04 2015 +0530 ASoC: Intel: Skylake: Use CGCTL.MISCBDCGE for Phrase detection notification Per HW recommendation, SW shall clear the CGCTL.MISCBDCGE and set it back once data is transferred. So clear this when we get the IPC and track using a driver flag, and set back on closure Signed-off-by: Dharageswari.R Signed-off-by: Jayachandran B Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-pcm.c | 13 +++++++++++++ sound/soc/intel/skylake/skl-sst-ipc.c | 15 +++++++++++++++ 2 files changed, 28 insertions(+) commit 0c8ba9d28518822d612de23fc9020b2a66a0228c Author: Jayachandran B Date: Fri Dec 18 15:12:03 2015 +0530 ASoC: Intel: Skylake: fix reset controller sequencing MISCBDCGE is a new register for Misc Backbone clock gate control which is useful to control while resetting the link and ensuring controller is in required state so add API to control it HW recommends that we reset with CGCTL.MISCBDCGE disabled, so add that while doing init chip and reset sequence. Signed-off-by: Jayachandran B Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-sst-ipc.h | 5 ++++ sound/soc/intel/skylake/skl.c | 55 +++++++++++++++++++++++++++++++++-- sound/soc/intel/skylake/skl.h | 3 ++ 3 files changed, 60 insertions(+), 3 deletions(-) commit 648e3a5bdddf8e7ad9c27450ac368b8bccd807a5 Merge: 15b9144 6706a19 Author: Mark Brown Date: Sun Jan 10 12:13:34 2016 +0000 Merge branch 'topic/hdac' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-intel commit a242cac1d3aa098fbe51097d2b1dcae8b662b761 Author: Maruthi Srinivas Bayyavarapu Date: Fri Jan 8 18:22:05 2016 -0500 ASoC: dwc: add quirk to override COMP_PARAM_1 register DWC for capture in ACP 2.x IP reports playback and capture capabilities though it supports only capture. Added a quirk to override default value to represent capture capability only. Signed-off-by: Maruthi Bayyavarapu Signed-off-by: Alex Deucher Signed-off-by: Mark Brown include/sound/designware_i2s.h | 1 + sound/soc/dwc/designware_i2s.c | 4 ++++ 2 files changed, 5 insertions(+) commit 68003e6cf2bbd239a322bd8a28dacfaf8174fdee Author: Mengdong Lin Date: Thu Dec 31 16:40:43 2015 +0800 ASoC: Support registering a DAI dynamically Define API snd_soc_register_dai() to add a DAI dynamically and create the DAI widgets. Topology can use this API to register DAIs when probing a component with topology info. These DAIs's playback & capture widgets will be freed when the sound card is unregistered and the DAIs will be freed when cleaning up the component. And a dobj is embedded into the struct snd_soc_dai_driver. Topology can use the dobj to find the DAI drivers created by it and free them when the topology component is removed. Signed-off-by: Mengdong Lin Signed-off-by: Mark Brown include/sound/soc-dai.h | 1 + include/sound/soc.h | 3 +++ sound/soc/soc-core.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+) commit 5e4fb372117f476e0c7f85418ed3e39506fbb75c Author: Mengdong Lin Date: Thu Dec 31 16:40:20 2015 +0800 ASoC: Define soc_add_dai() to add a DAI to a component Define soc_add_dai() as a wrapper to add a single DAI to a component. It can be reused to register a DAI dynamically by topology. Signed-off-by: Mengdong Lin Signed-off-by: Mark Brown sound/soc/soc-core.c | 88 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 52 insertions(+), 36 deletions(-) commit 6706a19747eb693ff35ce140f5cbee66dcfec0c4 Author: Vinod Koul Date: Fri Dec 18 15:12:02 2015 +0530 ALSA: hdac: add snd_hdac_ext_bus_link_power_up_all We have an API for powering down all links, we need a similar one for powering up links, so add for power up as well Signed-off-by: Jayachandran B Signed-off-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown include/sound/hdaudio_ext.h | 1 + sound/hda/ext/hdac_ext_controller.c | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) commit cf8fe58b1066cea668e030d0ab61e4b8eef8b219 Author: Jayachandran B Date: Fri Dec 18 15:12:01 2015 +0530 ALSA: hdac: Increase timeout value for link power check HW recommends 180us for worst case values for link power up delay, so change the current delay value from 50 (150us) to 150 (450us) Signed-off-by: Jayachandran B Signed-off-by: Vinod Koul Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown sound/hda/ext/hdac_ext_controller.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 88888155c555487037b894a97a2a4c6a8155cda0 Author: Jeeja KP Date: Fri Dec 18 15:12:00 2015 +0530 ALSA: hdac: couple the hda DMA stream in cleanup A stream is by default in coupled mode, in DSP operation we move it to decoupled mode. On cleanup HW expects that we leave it back to default state so couple the DMA on cleanup. Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown sound/hda/ext/hdac_ext_stream.c | 1 + 1 file changed, 1 insertion(+) commit a9c48f7f5906d02d4ec4aa50b1c20fccbce53eec Author: Jeeja KP Date: Fri Dec 18 15:11:59 2015 +0530 ALSA: hdac: Add support for hda DMA Resume capability Skylake sports new capability of DMA resume, DRSM where we can resume the DMA. This capability is defined by presence of AZX_DRSM_CAP_ID. If this capability is present, we use this capability. So we add: snd_hdac_ext_stream_drsm_enable() - DMA resume caps snd_hdac_ext_stream_set_dpibr() - set the DMA position snd_hdac_ext_stream_set_lpib() - set the lpib Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown include/sound/hda_register.h | 9 +++++ include/sound/hdaudio_ext.h | 14 ++++++++ sound/hda/ext/hdac_ext_controller.c | 6 ++++ sound/hda/ext/hdac_ext_stream.c | 71 +++++++++++++++++++++++++++++++++++++ 4 files changed, 100 insertions(+) commit 0471cd938e244e22f3ead77d2b82230f83e35f69 Author: Michael Trimarchi Date: Sun Jan 10 00:38:04 2016 +0100 ASoC: pcm1792a: Rename pcm1792a to pcm179x pcm1792a is compatible with pcm1795 and pcm1796 so it's better to have them under the common name pcm179x Signed-off-by: Michael Trimarchi Signed-off-by: Mark Brown .../devicetree/bindings/sound/pcm1792a.txt | 18 -- .../devicetree/bindings/sound/pcm179x.txt | 18 ++ sound/soc/codecs/Kconfig | 6 +- sound/soc/codecs/Makefile | 4 +- sound/soc/codecs/pcm1792a.c | 271 --------------------- sound/soc/codecs/pcm1792a.h | 27 -- sound/soc/codecs/pcm179x.c | 271 +++++++++++++++++++++ sound/soc/codecs/pcm179x.h | 27 ++ 8 files changed, 321 insertions(+), 321 deletions(-) commit 823733b91619aef5a2be21d0918ef6dd996de72a Author: Michael Trimarchi Date: Sun Jan 10 00:38:03 2016 +0100 ASoC: pcm1792a: Rename internal data and function to pcm179x Signed-off-by: Michael Trimarchi Signed-off-by: Mark Brown sound/soc/codecs/pcm1792a.c | 158 ++++++++++++++++++++++---------------------- sound/soc/codecs/pcm1792a.h | 6 +- 2 files changed, 82 insertions(+), 82 deletions(-) commit 4ab936d1aca69978dc738592a00e34f836bda1c3 Author: Michael Trimarchi Date: Sat Jan 9 23:47:58 2016 +0100 ASoC: rockchip: i2s: Add SNDRV_PCM_FMTBIT_S32_LE support Signed-off-by: Michael Trimarchi Signed-off-by: Mark Brown sound/soc/rockchip/rockchip_i2s.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 4fdd1d51ad5d059548c6539ac9d281f74d24bcbe Author: Richard Weinberger Date: Sat Jan 2 23:12:42 2016 +0100 ubifs: Use XATTR_*_PREFIX_LEN ...instead of open coding it. Signed-off-by: Richard Weinberger fs/ubifs/xattr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 170eb55f7d4ba9564736ba298a7d4985422db4cc Author: Dongsheng Yang Date: Tue Dec 22 09:22:01 2015 +0800 UBIFS: add a comment in key.h for unused parameter Add a comment in key.h to explain why we keep an unused parameter in key helpers. Signed-off-by: Dongsheng Yang Signed-off-by: Richard Weinberger fs/ubifs/key.h | 6 ++++++ 1 file changed, 6 insertions(+) commit 34b89df90374b631692132640c6b3dbef52f808d Author: Sebastian Siewior Date: Thu Nov 26 21:23:50 2015 +0100 mtd: ubi: wl: avoid erasing a PEB which is empty wear_leveling_worker() currently unconditionally puts a PEB on erase in the error case even it just been taken from the free_list and never used. In case the PEB was never used it can be put back on the free list saving a precious erase cycle. v1…v2: - to_leb_clean -> dst_leb_clean - use the nested option for ensure_wear_leveling() - do_sync_erase() can't go -ENOMEM so we can just go into RO-mode now. Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Richard Weinberger drivers/mtd/ubi/wl.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) commit 607259e17b37017e9ec0249a8b0a7d8b76b572aa Merge: aa98b94 1d6d167 Author: James Morris Date: Sun Jan 10 21:52:17 2016 +1100 Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity into ra-next commit c55281531282930de0aace46b2d6b22653937818 Author: Gao Pan Date: Fri Jan 8 13:33:15 2016 +0800 i2c: imx: fix i2c resource leak with dma transfer In i2c_imx_dma_xfer(), when dmaengine_submit() returns error, the context goto label err_submit and then return. However, the memory allocated for txdesc has not been freed yet, which leads to resource leak. Signed-off-by: Gao Pan Signed-off-by: Fugang Duan Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-imx.c | 1 + 1 file changed, 1 insertion(+) commit a570a27af4d781619dfb5139f3b760e964373c29 Author: Wolfram Sang Date: Thu Jan 7 21:51:00 2016 +0100 dt-bindings: i2c: eeprom: add another EEPROM device Signed-off-by: Wolfram Sang Acked-by: Rob Herring Signed-off-by: Wolfram Sang Documentation/devicetree/bindings/eeprom/eeprom.txt | 2 ++ 1 file changed, 2 insertions(+) commit f5e12d0d5bd4d2bc028bf3dda1732bde3824a008 Author: Wolfram Sang Date: Thu Jan 7 21:50:59 2016 +0100 dt-bindings: move I2C eeprom descriptions to the proper file EEPROMs can have additional properties, so they are not suitable for trivial-devices.txt. Move most bindings to the designated eeprom.txt. Add the missing "atmel,24c08" while doing that. Note that the remaining ones in trivial-devices need to be dealt with separately because of improper manufacturer names. Signed-off-by: Wolfram Sang Acked-by: Rob Herring Signed-off-by: Wolfram Sang Documentation/devicetree/bindings/eeprom/eeprom.txt | 19 ++++++++++++++----- .../devicetree/bindings/i2c/trivial-devices.txt | 13 ------------- 2 files changed, 14 insertions(+), 18 deletions(-) commit b33af11de236fd6e25f3716182f008039ec68e93 Author: Suravee Suthikulpanit Date: Mon Jan 4 09:17:35 2016 -0600 i2c: designware: Do not require clock when SSCN and FFCN are provided The current driver uses input clock source frequency to calculate values for [SS|FS]_[HC|LC] registers. However, when booting ACPI, we do not currently have a good way to provide the frequency information. Instead, we can leverage the SSCN and FFCN ACPI methods, which can be used to directly provide these values. So, the clock information should no longer be required during probing. However, since clk can be invalid, additional checks must be done where we are making use of it. Signed-off-by: Mika Westerberg Signed-off-by: Suravee Suthikulpanit Tested-by: Loc Ho Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-designware-core.c | 22 +++++++++++++------- drivers/i2c/busses/i2c-designware-platdrv.c | 31 +++++++++++++++++++---------- 2 files changed, 35 insertions(+), 18 deletions(-) commit fa5b0bfa26d54b9b94e5c2ff9c826d1e12d6ad3a Author: Akshay Bhat Date: Wed Dec 23 13:38:58 2015 -0500 DT: i2c: trivial-devices: Add Epson RX8010 and MPL3115 Signed-off-by: Akshay Bhat Signed-off-by: Wolfram Sang Documentation/devicetree/bindings/i2c/trivial-devices.txt | 2 ++ 1 file changed, 2 insertions(+) commit 2fe3e5189206f725b054e23b06762e50a7ab6276 Author: Wolfram Sang Date: Wed Dec 23 18:19:29 2015 +0100 i2c: s3c2410: remove superfluous runtime PM calls RuntimePM of the adapter device is now taken care of by the core. So, we can remove these calls. Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-s3c2410.c | 6 ------ 1 file changed, 6 deletions(-) commit 9f924169c0358f630f9b6d26bb3de97360d8647b Author: Wolfram Sang Date: Wed Dec 23 18:19:28 2015 +0100 i2c: always enable RuntimePM for the adapter device The adapter device is a logical device. Because of that, it already uses pm_runtime_no_callbacks() in the core. To ensure proper propagation from the children (i2c devices) to the parent of the adapter (the HW device), make sure RuntimePM is enabled in any case. Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang drivers/i2c/i2c-core.c | 3 +++ 1 file changed, 3 insertions(+) commit 8d22f309384cc410da91543f1eb30fe5daf91c3b Author: Baruch Siach Date: Wed Dec 23 18:43:24 2015 +0200 i2c: designware: retry transfer on transient failure Set the i2c_adapter retries field to a sensible value. This allows the i2c core to retry master_xfer() when it returns -EAGAIN. Currently the i2c-designware driver returns -EAGAIN only on Tx arbitration failure (DW_IC_TX_ARB_LOST). Reported-by: Rolland Chau Signed-off-by: Baruch Siach Acked-by: Andy Shevchenko Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-designware-core.c | 1 + 1 file changed, 1 insertion(+) commit 55f5560d8c18fe33fc169f8d244a9247dcac7612 Author: Dan Williams Date: Tue Jan 5 00:28:18 2016 -0800 block: kill disk_{check|set|clear|alloc}_badblocks These actions are completely managed by a block driver or can use the badblocks api directly. Signed-off-by: Dan Williams block/genhd.c | 42 ------------------------------------------ include/linux/genhd.h | 5 ----- 2 files changed, 47 deletions(-) commit 710d69cc99507803ed91b4ec7368fbd66d59f014 Author: Dan Williams Date: Mon Jan 4 23:31:24 2016 -0800 libnvdimm, pmem: nvdimm_read_bytes() badblocks support Support badblock checking in all the pmem read paths that do not go through the block layer. This protects info block reads (btt or pfn) as well as data reads to a pmem namespace via a btt instance. Signed-off-by: Dan Williams drivers/nvdimm/pmem.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 57f7f317abdd07954cb116280c88d18378afb33e Author: Dan Williams Date: Wed Jan 6 12:03:42 2016 -0800 pmem, dax: disable dax in the presence of bad blocks Longer term teach dax to punch "error" holes in mapping requests and deliver SIGBUS to applications that consume a bad pmem page. For now, simply disable the dax performance optimization in the presence of known errors. Signed-off-by: Dan Williams block/ioctl.c | 10 ++++++++++ drivers/nvdimm/pmem.c | 1 + 2 files changed, 11 insertions(+) commit c9c99311b55d4765cae35c652cb637747cc637b7 Merge: 12f1501 ed21d17 Author: David S. Miller Date: Sat Jan 9 21:48:36 2016 -0500 Merge tag 'batman-adv-for-davem' of git://git.open-mesh.org/linux-merge Antonio Quartulli says: ==================== Included changes: - increase internal module version - increase BLA wait periods to 6 - purge BLA backbone table when it is disabled - make sure post function is invoked only if sysfs value is changed - simplify code by removing useless NULL checks - various corrections to existing kerneldoc - minor cleanups ==================== Signed-off-by: David S. Miller commit 12f1501e7511958b3a7244e24f290803d0a3c41f Author: Jiri Pirko Date: Thu Jan 7 11:50:30 2016 +0100 mlxsw: spectrum: remove FDB entry in case we get unknown object notification It may happen that we get notification for FDB entry for object (port, lag, vport), which does not exist. Currently we ignore that, which only causes this being re-sent in next notification. The entry will never disappear. So get rid of it by simply removing it using SFD register. Signed-off-by: Jiri Pirko Reviewed-by: Ido Schimmel Signed-off-by: David S. Miller .../ethernet/mellanox/mlxsw/spectrum_switchdev.c | 38 +++++++++++++++++----- 1 file changed, 30 insertions(+), 8 deletions(-) commit 2fa9d45e16089b499909d807025f0d66b2442d57 Author: Jiri Pirko Date: Thu Jan 7 11:50:29 2016 +0100 mlxsw: spectrum: pass local_port to mlxsw_sp_port_fdb_uc_op Do not pass struct mlxsw_sp_port to mlxsw_sp_port_fdb_uc_op and rather just pass local_port. This is needed in case this is called from SFN process function and mlxsw_sp_port is not existent for particular local_port. Signed-off-by: Jiri Pirko Reviewed-by: Ido Schimmel Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit 07b9b37c227cb8d88d478b4a9c5634fee514ede1 Author: Nicolas Dichtel Date: Thu Jan 7 11:26:53 2016 +0100 vxlan: fix test which detect duplicate vxlan iface When a vxlan interface is created, the driver checks that there is not another vxlan interface with the same properties. To do this, it checks the existing vxlan udp socket. Since commit 1c51a9159dde, the creation of the vxlan socket is done only when the interface is set up, thus it breaks that test. Example: $ ip l a vxlan10 type vxlan id 10 group 239.0.0.10 dev eth0 dstport 0 $ ip l a vxlan11 type vxlan id 10 group 239.0.0.10 dev eth0 dstport 0 $ ip -br l | grep vxlan vxlan10 DOWN f2:55:1c:6a:fb:00 vxlan11 DOWN 7a:cb:b9:38:59:0d Instead of checking sockets, let's loop over the vxlan iface list. Fixes: 1c51a9159dde ("vxlan: fix race caused by dropping rtnl_unlock") Reported-by: Thomas Faivre Signed-off-by: Nicolas Dichtel Signed-off-by: David S. Miller drivers/net/vxlan.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 824b1a97400338e47ba7f878a42cd89d80cd5b81 Author: Sudip Mukherjee Date: Thu Jan 7 15:42:37 2016 +0530 net: plip: use new parport device model Modify plip driver to use the new parallel port device model. Signed-off-by: Sudip Mukherjee Signed-off-by: David S. Miller drivers/net/plip/plip.c | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) commit 29c6dd591bbd592472247441de9fa694acdabae8 Author: Oliver Neukum Date: Thu Jan 7 11:01:00 2016 +0100 cdc-acm: fix NULL pointer reference The union descriptor must be checked. Its usage was conditional before the parser was introduced. This is important, because many RNDIS device, which also use the common parser, have bogus extra descriptors. Signed-off-by: Oliver Neukum Tested-by: Vasily Galkin Signed-off-by: David S. Miller drivers/net/usb/cdc_ether.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit ab3f09fe16d158cb4f84e558c61ec5d6d601f2e0 Author: John Crispin Date: Mon Jan 4 20:36:38 2016 +0100 watchdog: add MT7621 watchdog support This patch adds support for the watchdog core found on newer MediaTek Wifi SoCs MT7621 and MT7628. There is no symbol for MT7628 as it is a subtype of MT7620 so we depend on that instead. Signed-off-by: John Crispin Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck .../devicetree/bindings/watchdog/mt7621-wdt.txt | 12 ++ drivers/watchdog/Kconfig | 7 + drivers/watchdog/Makefile | 1 + drivers/watchdog/mt7621_wdt.c | 186 +++++++++++++++++++++ 4 files changed, 206 insertions(+) commit e10624f8c09710b3b0740ea3847627ea02f55c39 Author: Dan Williams Date: Wed Jan 6 12:03:41 2016 -0800 pmem: fail io-requests to known bad blocks Check the sectors specified in a read bio to see if they hit a known bad block, and return an error code pmem_do_bvec(). Note that the ->rw_page() is not in a position to return errors. For now, copy the same layering violation present in zram_rw_page() to avoid crashes of the form: kernel BUG at mm/filemap.c:822! [..] Call Trace: [] page_endio+0x1e/0x60 [] mpage_end_io+0x39/0x60 [] bio_endio+0x3f/0x60 [] pmem_make_request+0x111/0x230 [nd_pmem] ...i.e. unlock a page that was already unlocked via pmem_rw_page() => page_endio(). Reported-by: Vishal Verma Signed-off-by: Dan Williams drivers/nvdimm/pmem.c | 46 +++++++++++++++++++++++++++++++++++++++------- 1 file changed, 39 insertions(+), 7 deletions(-) commit b95f5f4391fad65f1819c2404080b05ca95bdd92 Author: Dan Williams Date: Mon Jan 4 23:50:23 2016 -0800 libnvdimm: convert to statically allocated badblocks If a device will ever have badblocks it should always have a badblocks instance available. So, similar to md, embed a badblocks instance in pmem_device. This reduces pointer chasing in the i/o fast path, and simplifies the init path. Reported-by: Vishal Verma Signed-off-by: Dan Williams drivers/nvdimm/core.c | 57 +++++++++++++++------------------------------------ drivers/nvdimm/nd.h | 4 ++-- drivers/nvdimm/pmem.c | 10 ++++----- 3 files changed, 24 insertions(+), 47 deletions(-) commit 87ba05dff3510f9e058b35d3c3fa222b6f406ecc Author: Dan Williams Date: Sat Jan 9 07:48:43 2016 -0800 libnvdimm: don't fail init for full badblocks list If the badblocks list runs out of space it simply means that software is unable to intercept all errors. This is no different than the latent discovery of new badblocks case and should not be an initialization failure condition. Signed-off-by: Dan Williams drivers/nvdimm/core.c | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) commit 16263ff6c72eb4cc00aa287230144dda12ccad12 Author: Dan Williams Date: Mon Jan 4 23:50:23 2016 -0800 block, badblocks: introduce devm_init_badblocks Provide a devres interface for initializing a badblocks instance. The pmem driver has several scenarios where it will be beneficial to have this structure automatically freed when the device is disabled / fails probe. Signed-off-by: Dan Williams block/badblocks.c | 48 ++++++++++++++++++++++++++++++++++------------- include/linux/badblocks.h | 14 +++++++++++++- 2 files changed, 48 insertions(+), 14 deletions(-) commit 20a308f09e0d29ce6f5a4114cc476a998d569bfb Author: Dan Williams Date: Wed Jan 6 12:03:41 2016 -0800 block: clarify badblocks lifetime The badblocks list attached to a gendisk is allocated by the driver which equates to the driver owning the lifetime of the object. Do not automatically free it in del_gendisk(). This is in preparation for expanding the use of badblocks in libnvdimm drivers and introducing devm_init_badblocks(). Signed-off-by: Dan Williams block/badblocks.c | 2 ++ block/genhd.c | 5 ----- 2 files changed, 2 insertions(+), 5 deletions(-) commit d3b407fb3f782bd915db64e266010ea30a2d381e Author: Dan Williams Date: Wed Jan 6 12:19:22 2016 -0800 badblocks: rename badblocks_free to badblocks_exit For symmetry with badblocks_init() make it clear that this path only destroys incremental allocations of a badblocks instance, and does not free the badblocks instance itself. Signed-off-by: Dan Williams block/badblocks.c | 6 +++--- block/genhd.c | 2 +- drivers/md/md.c | 2 +- include/linux/badblocks.h | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) commit ad9a8bde2cb19f6876f964fc48acc8b6a2f325ff Author: Dan Williams Date: Wed Jan 6 12:03:41 2016 -0800 libnvdimm, pmem: move definition of nvdimm_namespace_add_poison to nd.h nd-core.h is private to the libnvdimm core internals and should not be used by drivers. Signed-off-by: Dan Williams drivers/nvdimm/nd-core.h | 2 -- drivers/nvdimm/nd.h | 2 ++ drivers/nvdimm/pmem.c | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) commit 0caeef63e6d2f866d85bb507bf63e0ce8ec91cef Author: Vishal Verma Date: Thu Dec 24 19:21:43 2015 -0700 libnvdimm: Add a poison list and export badblocks During region creation, perform Address Range Scrubs (ARS) for the SPA (System Physical Address) ranges to retrieve known poison locations from firmware. Add a new data structure 'nd_poison' which is used as a list in nvdimm_bus to store these poison locations. When creating a pmem namespace, if there is any known poison associated with its physical address space, convert the poison ranges to bad sectors that are exposed using the badblocks interface. Signed-off-by: Vishal Verma Signed-off-by: Dan Williams drivers/acpi/nfit.c | 203 ++++++++++++++++++++++++++++++++++++++++++++++ drivers/nvdimm/core.c | 187 ++++++++++++++++++++++++++++++++++++++++++ drivers/nvdimm/nd-core.h | 3 + drivers/nvdimm/nd.h | 6 ++ drivers/nvdimm/pmem.c | 6 ++ include/linux/libnvdimm.h | 1 + 6 files changed, 406 insertions(+) commit d26f73f083ed6fbea7fd3fdbacb527b7f3e75ac0 Author: Dan Williams Date: Wed Dec 30 15:01:19 2015 -0800 nfit_test: Enable DSMs for all test NFITs In preparation for getting a poison list using ARS DSMs, enable DSMs for all manufactured NFITs supplied by the test framework. Also, supply valid response data for ars_status. Signed-off-by: Vishal Verma Signed-off-by: Dan Williams tools/testing/nvdimm/test/nfit.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit fc974ee2bffdde47d1e4b220cf326952cc2c4794 Author: Vishal Verma Date: Thu Dec 24 19:20:34 2015 -0700 md: convert to use the generic badblocks code Retain badblocks as part of rdev, but use the accessor functions from include/linux/badblocks for all manipulation. Signed-off-by: Vishal Verma Signed-off-by: Dan Williams drivers/md/md.c | 516 +++----------------------------------------------------- drivers/md/md.h | 40 +---- 2 files changed, 28 insertions(+), 528 deletions(-) commit 99e6608c9e7414ae4f2168df8bf8fae3eb49e41f Author: Vishal Verma Date: Sat Jan 9 08:36:51 2016 -0800 block: Add badblock management for gendisks NVDIMM devices, which can behave more like DRAM rather than block devices, may develop bad cache lines, or 'poison'. A block device exposed by the pmem driver can then consume poison via a read (or write), and cause a machine check. On platforms without machine check recovery features, this would mean a crash. The block device maintaining a runtime list of all known sectors that have poison can directly avoid this, and also provide a path forward to enable proper handling/recovery for DAX faults on such a device. Use the new badblock management interfaces to add a badblocks list to gendisks. Signed-off-by: Vishal Verma Signed-off-by: Dan Williams block/genhd.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++ include/linux/genhd.h | 7 +++++ 2 files changed, 83 insertions(+) commit 97a249e98a72d6b79fb7350a8dd56b147e9d5bdb Author: Yong Li Date: Wed Jan 6 09:09:43 2016 +0800 iio: dac: mcp4725: set iio name property in sysfs Without this change, the name entity for mcp4725 is missing in /sys/bus/iio/devices/iio\:device*/name With this change, name is reported correctly Signed-off-by: Yong Li Cc: Signed-off-by: Jonathan Cameron drivers/iio/dac/mcp4725.c | 1 + 1 file changed, 1 insertion(+) commit 3eb9ede23bdd96e9ba60e2b4d4d17a7c35d58448 Merge: 9cc2617 775d8a1 Author: Ingo Molnar Date: Sat Jan 9 17:17:33 2016 +0100 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: New features: - Allow using trace events fields as sort order keys, making 'perf evlist --trace_fields' show those, and then the user can select a subset and use like: perf top -e sched:sched_switch -s prev_comm,next_comm That works as well in 'perf report' when handling files containing tracepoints. The default when just tracepoint events are found in a perf.data file is to format it like ftrace, using the libtraceevent formatters, plugins, etc (Namhyung Kim) - Add support in 'perf script' to process 'perf stat record' generated files, culminating in a python perf script that calculates CPI (Cycles per Instruction) (Jiri Olsa) - Show random perf tool tips in the 'perf report' bottom line (Namhyung Kim) - perf report now defaults to --group if the perf.data file has grouped events, try it with: # perf record -e '{cycles,instructions}' -a sleep 1 [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 1.093 MB perf.data (1247 samples) ] # perf report # Samples: 1K of event 'anon group { cycles, instructions }' # Event count (approx.): 1955219195 # # Overhead Command Shared Object Symbol 2.86% 0.22% swapper [kernel.kallsyms] [k] intel_idle 1.05% 0.33% firefox libxul.so [.] js::SetObjectElement 1.05% 0.00% kworker/0:3 [kernel.kallsyms] [k] gen6_ring_get_seqno 0.88% 0.17% chrome chrome [.] 0x0000000000ee27ab 0.65% 0.86% firefox libxul.so [.] js::ValueToId<(js::AllowGC)1> 0.64% 0.23% JS Helper libxul.so [.] js::SplayTree::splay 0.62% 1.27% firefox libxul.so [.] js::GetIterator 0.61% 1.74% firefox libxul.so [.] js::NativeSetProperty 0.61% 0.31% firefox libxul.so [.] js::SetPropertyByDefining User visible fixes: - Coect data mmaps so that the DWARF unwinder can handle usecases needing them, like softice (Jiri Olsa) - Decay callchains in fractal mode, fixing up cases where 'perf top -g' would show entries with more than 100% (Namhyung Kim) Infrastructure changes: - Sync tools/lib with the lib/ in the kernel sources for find_bit.c and move bitmap.[ch] from tools/perf/util/ to tools/lib/ (Arnaldo Carvalho de Melo) - No need to set attr.sample_freq in some 'perf test' entries that only want to deal with PERF_RECORD_ meta-events, improve a bit error output for CQM test (Arnaldo Carvalho de Melo) - Fix python binding build, adding some missing object files now required due to cpumap using find_bit stuff (Arnaldo Carvalho de Melo) - tools/build improvemnts (Jiri Olsa) - Add more files to cscope/ctags databases (Jiri Olsa) - Do not show 'trace' in 'perf help' if it is not compiled in (Jiri Olsa) - Make perf_evlist__open() open evsels with their cpus and threads, like perf record does, making them consistent (Adrian Hunter) - Fix pmu snapshot initialization bug (Stephane Eranian) - Add missing headers in perf's MANIFEST (Wang Nan) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 91918d13eb17b8c11a9b6b76bfdd7cc0efab4f50 Author: Guenter Roeck Date: Thu Feb 19 09:21:29 2015 -0800 hwmon: (nct6683) Add basic support for NCT6683 on Mitac boards Mitac microcode differs from Intel microcode. One key difference is that pwm values can be written. Detect vendor from customer ID field and no longer use DMI data to identify which microcode is running on the chip. Signed-off-by: Guenter Roeck drivers/hwmon/nct6683.c | 78 ++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 61 insertions(+), 17 deletions(-) commit 9e0e252a048b0ba5066f0dc15c3b2468ffe5c422 Author: Vishal Verma Date: Thu Dec 24 19:20:32 2015 -0700 badblocks: Add core badblock management code Take the core badblocks implementation from md, and make it generally available. This follows the same style as kernel implementations of linked lists, rb-trees etc, where you can have a structure that can be embedded anywhere, and accessor functions to manipulate the data. The only changes in this copy of the code are ones to generalize function/variable names from md-specific ones. Also add init and free functions. Signed-off-by: Vishal Verma Signed-off-by: Dan Williams block/Makefile | 2 +- block/badblocks.c | 561 ++++++++++++++++++++++++++++++++++++++++++++++ include/linux/badblocks.h | 53 +++++ 3 files changed, 615 insertions(+), 1 deletion(-) commit ac34f15e0c6d2fd58480052b6985f6991fb53bcc Author: Dan Williams Date: Tue Dec 29 14:02:29 2015 -0800 block: fix del_gendisk() vs blkdev_ioctl crash When tearing down a block device early in its lifetime, userspace may still be performing discovery actions like blkdev_ioctl() to re-read partitions. The nvdimm_revalidate_disk() implementation depends on disk->driverfs_dev to be valid at entry. However, it is set to NULL in del_gendisk() and fatally this is happening *before* the disk device is deleted from userspace view. There's no reason for del_gendisk() to clear ->driverfs_dev. That device is the parent of the disk. It is guaranteed to not be freed until the disk, as a child, drops its ->parent reference. We could also fix this issue locally in nvdimm_revalidate_disk() by using disk_to_dev(disk)->parent, but lets fix it globally since ->driverfs_dev follows the lifetime of the parent. Longer term we should probably just add a @parent parameter to add_disk(), and stop carrying this pointer in the gendisk. BUG: unable to handle kernel NULL pointer dereference at (null) IP: [] nvdimm_revalidate_disk+0x18/0x90 [libnvdimm] CPU: 2 PID: 538 Comm: systemd-udevd Tainted: G O 4.4.0-rc5 #2257 [..] Call Trace: [] rescan_partitions+0x87/0x2c0 [] ? __lock_is_held+0x49/0x70 [] __blkdev_reread_part+0x72/0xb0 [] blkdev_reread_part+0x25/0x40 [] blkdev_ioctl+0x4fd/0x9c0 [] ? current_kernel_time64+0x69/0xd0 [] block_ioctl+0x3d/0x50 [] do_vfs_ioctl+0x308/0x560 [] ? __audit_syscall_entry+0xb1/0x100 [] ? do_audit_syscall_entry+0x66/0x70 [] SyS_ioctl+0x79/0x90 [] entry_SYSCALL_64_fastpath+0x12/0x76 Reported-by: Robert Hu Signed-off-by: Dan Williams block/genhd.c | 1 - 1 file changed, 1 deletion(-) commit 5a023cdba50c5f5f2bc351783b3131699deb3937 Author: Dan Williams Date: Mon Nov 30 10:20:29 2015 -0800 block: enable dax for raw block devices If an application wants exclusive access to all of the persistent memory provided by an NVDIMM namespace it can use this raw-block-dax facility to forgo establishing a filesystem. This capability is targeted primarily to hypervisors wanting to provision persistent memory for guests. It can be disabled / enabled dynamically via the new BLKDAXSET ioctl. Cc: Jeff Moyer Cc: Christoph Hellwig Cc: Dave Chinner Cc: Andrew Morton Cc: Ross Zwisler Reported-by: kbuild test robot Reviewed-by: Jan Kara Signed-off-by: Dan Williams block/ioctl.c | 61 ++++++++++++++++++++++++++++ fs/block_dev.c | 103 ++++++++++++++++++++++++++++++++++++++++++++---- include/linux/fs.h | 11 ++++++ include/uapi/linux/fs.h | 2 + 4 files changed, 169 insertions(+), 8 deletions(-) commit 4ebb16ca9a06a54cdb2e7f2ce1e506fa4d432445 Author: Dan Williams Date: Wed Oct 28 07:48:19 2015 +0900 block: introduce bdev_file_inode() Similar to the file_inode() helper, provide a helper to lookup the inode for a raw block device itself. Cc: Al Viro Suggested-by: Jan Kara Reviewed-by: Jan Kara Reviewed-by: Jeff Moyer Signed-off-by: Dan Williams fs/block_dev.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) commit 90a545e981267e917b9d698ce07affd69787db87 Author: Dan Williams Date: Mon Nov 23 15:49:03 2015 -0800 restrict /dev/mem to idle io memory ranges This effectively promotes IORESOURCE_BUSY to IORESOURCE_EXCLUSIVE semantics by default. If userspace really believes it is safe to access the memory region it can also perform the extra step of disabling an active driver. This protects device address ranges with read side effects and otherwise directs userspace to use the driver. Persistent memory presents a large "mistake surface" to /dev/mem as now accidental writes can corrupt a filesystem. In general if a device driver is busily using a memory region it already informs other parts of the kernel to not touch it via request_mem_region(). /dev/mem should honor the same safety restriction by default. Debugging a device driver from userspace becomes more difficult with this enabled. Any application using /dev/mem or mmap of sysfs pci resources will now need to perform the extra step of either: 1/ Disabling the driver, for example: echo > /dev/bus//drivers//unbind 2/ Rebooting with "iomem=relaxed" on the command line 3/ Recompiling with CONFIG_IO_STRICT_DEVMEM=n Traditional users of /dev/mem like dosemu are unaffected because the first 1MB of memory is not subject to the IO_STRICT_DEVMEM restriction. Legacy X configurations use /dev/mem to talk to graphics hardware, but that functionality has since moved to kernel graphics drivers. Cc: Arnd Bergmann Cc: Russell King Cc: Andrew Morton Cc: Greg Kroah-Hartman Acked-by: Kees Cook Acked-by: Ingo Molnar Signed-off-by: Dan Williams kernel/resource.c | 11 +++++++++-- lib/Kconfig.debug | 23 ++++++++++++++++++++--- 2 files changed, 29 insertions(+), 5 deletions(-) commit 21266be9ed542f13436bd9c75316d43e1e84f6ae Author: Dan Williams Date: Thu Nov 19 18:19:29 2015 -0800 arch: consolidate CONFIG_STRICT_DEVM in lib/Kconfig.debug Let all the archs that implement devmem_is_allowed() opt-in to a common definition of CONFIG_STRICT_DEVM in lib/Kconfig.debug. Cc: Kees Cook Cc: Russell King Cc: Will Deacon Cc: Benjamin Herrenschmidt Cc: Martin Schwidefsky Cc: Thomas Gleixner Cc: "H. Peter Anvin" Cc: Andrew Morton Cc: Greg Kroah-Hartman Cc: "David S. Miller" Acked-by: Catalin Marinas Acked-by: Heiko Carstens [heiko: drop 'default y' for s390] Acked-by: Ingo Molnar Suggested-by: Arnd Bergmann Signed-off-by: Dan Williams arch/arm/Kconfig | 1 + arch/arm/Kconfig.debug | 14 -------------- arch/arm64/Kconfig | 1 + arch/arm64/Kconfig.debug | 14 -------------- arch/frv/Kconfig | 1 + arch/m32r/Kconfig | 1 + arch/powerpc/Kconfig | 1 + arch/powerpc/Kconfig.debug | 12 ------------ arch/s390/Kconfig | 1 + arch/s390/Kconfig.debug | 12 ------------ arch/tile/Kconfig | 4 +--- arch/unicore32/Kconfig | 1 + arch/unicore32/Kconfig.debug | 14 -------------- arch/x86/Kconfig | 1 + arch/x86/Kconfig.debug | 17 ----------------- lib/Kconfig.debug | 22 ++++++++++++++++++++++ 16 files changed, 31 insertions(+), 86 deletions(-) commit ed21d170e878b6b067a3216040b7b935c8007196 Author: Sven Eckelmann Date: Sun Sep 6 21:38:48 2015 +0200 batman-adv: Add kerneldoc for batadv_neigh_node::refcount Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/types.h | 1 + 1 file changed, 1 insertion(+) commit 8a3719a184cfd122eba9212c8d4a2fab5c9fb628 Author: Sven Eckelmann Date: Sun Sep 6 21:38:47 2015 +0200 batman-adv: Remove kerneldoc for missing struct members Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/types.h | 4 ---- 1 file changed, 4 deletions(-) commit 006a199d5d1d4e1666b0d8b4f51b5a978ddc6aab Author: Sven Eckelmann Date: Sun Sep 6 21:38:46 2015 +0200 batman-adv: Fix kerneldoc member names in for main structs Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/types.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 426fc6c8119820164dd44e99862dda85159eef93 Author: Sven Eckelmann Date: Sun Sep 6 21:38:45 2015 +0200 batman-adv: Fix kernel-doc parsing of main structs kernel-doc is not able to skip an #ifdef between the kernel documentation block and the start of the struct. Moving the #ifdef before the kernel doc block avoids this problem Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/types.h | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) commit cc69d3dbbbfa134df2a7e7a72da6484c5d34fb0d Author: Sven Eckelmann Date: Wed Oct 28 10:58:00 2015 +0100 batman-adv: Change ifconfig examples to iproute2 Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli Documentation/networking/batman-adv.txt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit e087f34f28d8597f7c82f079337939367ba96537 Author: Markus Elfring Date: Tue Nov 3 19:20:34 2015 +0100 batman-adv: Split a condition check Let us split a check for a condition at the beginning of the batadv_is_ap_isolated() function so that a direct return can be performed in this function if the variable "vlan" contained a null pointer. Signed-off-by: Markus Elfring Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/translation-table.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit f75a33aeed0776f52da05276c2ef98e16d680a6b Author: Markus Elfring Date: Tue Nov 3 19:20:34 2015 +0100 batman-adv: Delete an unnecessary check before the function call "batadv_softif_vlan_free_ref" The batadv_softif_vlan_free_ref() 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 Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/translation-table.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 8bbb7cb2324d6a5fb7ccdc4ab0099dc18b91b690 Author: Markus Elfring Date: Sun Nov 15 09:00:42 2015 +0100 batman-adv: Less checks in batadv_tvlv_unicast_send() * Let us return directly if a call of the batadv_orig_hash_find() function returned a null pointer. * Omit the initialisation for the variable "skb" at the beginning. * Replace an assignment by a call of the kfree_skb() function and delete the affected variable "ret" then. Signed-off-by: Markus Elfring Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/main.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) commit c799443ee13ef37221732839f1cca6f11c798b7a Author: Markus Elfring Date: Sun Nov 15 08:04:43 2015 +0100 batman-adv: Delete unnecessary checks before the function call "kfree_skb" The kfree_skb() function tests whether its argument is NULL and then returns immediately. Thus the test around the calls is not needed. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/main.c | 2 +- net/batman-adv/network-coding.c | 4 +--- net/batman-adv/send.c | 3 +-- 3 files changed, 3 insertions(+), 6 deletions(-) commit d737ccbed3e62dd45d631cf69183de005144d05b Author: Sven Eckelmann Date: Sun Sep 13 09:44:45 2015 +0200 batman-adv: Add function to convert string to batadv throughput The code to convert the throughput information from a string to the batman-adv internal (100Kibit/s) representation is duplicated in batadv_parse_gw_bandwidth. Move this functionality to its own function batadv_parse_throughput to reduce the code complexity. Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/gateway_common.c | 117 +++++++++++++++++----------------------- 1 file changed, 49 insertions(+), 68 deletions(-) commit 9e728e84389ba8317d1444bdf256e34ad467f3da Author: Simon Wunderlich Date: Tue Nov 17 14:11:26 2015 +0100 batman-adv: only call post function if something changed Currently, the post function is also called on errors or if there were no changes, which is redundant for the functions currently using these facilities. Signed-off-by: Simon Wunderlich Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/sysfs.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit e1544f3c87778ab4af9689d571570d6abfd2f6c2 Author: Simon Wunderlich Date: Mon Nov 9 16:20:53 2015 +0100 batman-adv: increase BLA wait periods to 6 If networks take a long time to come up, e.g. due to lossy links, then the bridge loop avoidance wait time to suppress broadcasts may not wait long enough and detect a backbone before the mesh is brought up. Increasing the wait period further to 60 seconds makes this scenario less likely. Signed-off-by: Simon Wunderlich Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/main.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d68081a24081f9a1910a41778a8411d924255471 Author: Simon Wunderlich Date: Mon Nov 9 16:20:52 2015 +0100 batman-adv: purge bridge loop avoidance when its disabled When bridge loop avoidance is disabled through sysfs, the internal datastructures are not disabled, but only BLA operations are disabled. To be sure that they are removed, purge the data immediately. That is especially useful if a firmwares network state is changed, and the BLA wait periods should restart on the new network. Signed-off-by: Simon Wunderlich Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/bridge_loop_avoidance.c | 20 ++++++++++++++++++++ net/batman-adv/bridge_loop_avoidance.h | 2 ++ net/batman-adv/sysfs.c | 4 +++- 3 files changed, 25 insertions(+), 1 deletion(-) commit 143d157c9ecfa09ed777bf33635eb27fabce3e0a Author: Marek Lindner Date: Sun Aug 9 23:56:50 2015 +0800 batman-adv: remove leftovers of unused BATADV_PRIMARIES_FIRST_HOP flag Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/bat_iv_ogm.c | 3 --- net/batman-adv/packet.h | 3 +-- 2 files changed, 1 insertion(+), 5 deletions(-) commit 008a374487070a391c12aa39288fd8511f822cab Author: Sven Eckelmann Date: Tue Nov 3 19:20:34 2015 +0100 batman-adv: Fix lockdep annotation of batadv_tlv_container_remove The function handles tlv containers and not tlv handlers. Thus the lockdep_assert_held has to check for the container_list lock. Fixes: 2c72d655b044 ("batman-adv: Annotate deleting functions with external lock via lockdep") Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4a4d045eb2c174472b68f366108bf76f1802f803 Author: Simon Wunderlich Date: Mon Nov 23 20:30:15 2015 +0100 batman-adv: Start new development cycle Signed-off-by: Simon Wunderlich Signed-off-by: Antonio Quartulli net/batman-adv/main.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bbddca8e8fac07ece3938e03526b5d00fa791a4c Author: NeilBrown Date: Thu Jan 7 16:08:20 2016 -0500 nfsd: don't hold i_mutex over userspace upcalls We need information about exports when crossing mountpoints during lookup or NFSv4 readdir. If we don't already have that information cached, we may have to ask (and wait for) rpc.mountd. In both cases we currently hold the i_mutex on the parent of the directory we're asking rpc.mountd about. We've seen situations where rpc.mountd performs some operation on that directory that tries to take the i_mutex again, resulting in deadlock. With some care, we may be able to avoid that in rpc.mountd. But it seems better just to avoid holding a mutex while waiting on userspace. It appears that lookup_one_len is pretty much the only operation that needs the i_mutex. So we could just drop the i_mutex elsewhere and do something like mutex_lock() lookup_one_len() mutex_unlock() In many cases though the lookup would have been cached and not required the i_mutex, so it's more efficient to create a lookup_one_len() variant that only takes the i_mutex when necessary. Signed-off-by: NeilBrown Signed-off-by: J. Bruce Fields Signed-off-by: Al Viro fs/namei.c | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++ fs/nfsd/nfs3xdr.c | 2 +- fs/nfsd/nfs4xdr.c | 8 +++--- fs/nfsd/vfs.c | 23 +++++++---------- include/linux/namei.h | 1 + 5 files changed, 86 insertions(+), 19 deletions(-) commit db39c16724d019029d7533561754d92bef1b389a Author: DengChao Date: Thu Nov 12 21:40:41 2015 +0800 fs:affs:Replace time_t with time64_t The affs code uses "time_t" and "get_seconds()". This will cause problems on 32-bit architectures in 2038 when time_t overflows. This patch replaces them with "time64_t" and "ktime_get_real_seconds()". This patch introduces expensive 64-bit divsion in "secs_to_datestamp()", considering this function is not called so often, the cost should be acceptable. Reviewed-by: Arnd Bergmann Signed-off-by: DengChao Signed-off-by: Al Viro fs/affs/affs.h | 2 +- fs/affs/amigaffs.c | 13 +++++++------ fs/affs/super.c | 2 +- 3 files changed, 9 insertions(+), 8 deletions(-) commit 8f5fed1e917588f946ad8882bd47a4093db0ff4c Author: Sasha Levin Date: Thu Jan 7 17:49:51 2016 -0500 fs/9p: use fscache mutex rather than spinlock We may sleep inside a the lock, so use a mutex rather than spinlock. Signed-off-by: Sasha Levin Signed-off-by: Al Viro fs/9p/cache.c | 8 ++++---- fs/9p/v9fs.h | 2 +- fs/9p/vfs_inode.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) commit 3cc4a84e026e8d61b7ffe4a7367ed09a555f2c5b Author: Eric Dumazet Date: Thu Dec 3 11:12:07 2015 -0800 proc: add a reschedule point in proc_readfd_common() User can pass an arbitrary large buffer to getdents(). It is typically a 32KB buffer used by libc scandir() implementation. When scanning /proc/{pid}/fd, we can hold cpu way too long, so add a cond_resched() to be kind with other tasks. We've seen latencies of more than 50ms on real workloads. Signed-off-by: Eric Dumazet Cc: Alexander Viro Signed-off-by: Al Viro fs/proc/fd.c | 1 + 1 file changed, 1 insertion(+) commit bc51b2a9193f917f2065313d9971d7d5e867bc81 Author: Julia Lawall Date: Fri Dec 11 17:03:26 2015 +0100 logfs: constify logfs_block_ops structures The logfs_block_ops structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Al Viro fs/logfs/logfs.h | 4 ++-- fs/logfs/readwrite.c | 4 ++-- fs/logfs/segment.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) commit 0dbf5f20652108106cb822ad7662c786baaa03ff Author: Stanislav Kinsburskiy Date: Tue Dec 15 19:41:31 2015 +0400 fcntl: allow to set O_DIRECT flag on pipe With packetized mode for pipes, it's not possible to set O_DIRECT on pipe file via sys_fcntl, because of unsupported sanity checks. Ability to set this flag will be used by CRIU to migrate packetized pipes. v2: Fixed typos and mode variable to check. Signed-off-by: Stanislav Kinsburskiy Signed-off-by: Al Viro fs/fcntl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 90330e689c32e5105265c461c54af6ecec3373fa Author: Abhi Das Date: Fri Dec 18 14:11:36 2015 -0600 fs: __generic_file_splice_read retry lookup on AOP_TRUNCATED_PAGE During testing, I discovered that __generic_file_splice_read() returns 0 (EOF) when aops->readpage fails with AOP_TRUNCATED_PAGE on the first page of a single/multi-page splice read operation. This EOF return code causes the userspace test to (correctly) report a zero-length read error when it was expecting otherwise. The current strategy of returning a partial non-zero read when ->readpage returns AOP_TRUNCATED_PAGE works only when the failed page is not the first of the lot being processed. This patch attempts to retry lookup and call ->readpage again on pages that had previously failed with AOP_TRUNCATED_PAGE. With this patch, my tests pass and I haven't noticed any unwanted side effects. This version removes the thrice-retry loop and instead indefinitely retries lookups on AOP_TRUNCATED_PAGE errors from ->readpage. This behavior is now similar to do_generic_file_read(). Signed-off-by: Abhi Das Reviewed-by: Jan Kara Cc: Bob Peterson Cc: Al Viro Signed-off-by: Al Viro fs/splice.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 0b2a6f231dcbc7bd543a5aaa23b0ea76ce16e585 Author: Richard Weinberger Date: Sat Jan 2 23:09:47 2016 +0100 fs: xattr: Use kvfree() ... instead of open coding it. Signed-off-by: Richard Weinberger Signed-off-by: Al Viro fs/xattr.c | 38 ++++++++++++++------------------------ 1 file changed, 14 insertions(+), 24 deletions(-) commit bdb97e91e0140230bda9a83f6dbaa29b0c2e0522 Author: Al Viro Date: Sat Jan 9 02:16:04 2016 -0500 [s390] page_to_phys() always returns a multiple of PAGE_SIZE Acked-by: Martin Schwidefsky Signed-off-by: Al Viro arch/s390/pci/pci_dma.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 041497eb721ddbdc1e690316976dd8ba7bc136a2 Author: Paul Gortmaker Date: Thu Dec 17 10:05:46 2015 -0500 drivers/tty/serial: delete unused MODULE_DEVICE_TABLE from atmel_serial.c In commit c39dfebc7798956fd2140ae6321786ff35da30c3 ("drivers/tty/serial: make serial/atmel_serial.c explicitly non-modular") we removed the code relating to modular support since it currently only supports built in. However, when redoing my build coverage for mips allmodconfig, which sets CONFIG_OF, I noticed a remaining line that needs to be removed, else we will get a build failure for an undefined module macro. Unfortunately this didn't appear for any of the other arch I tested more frequently, such as ARM. Since MODULE_DEVICE_TABLE is a no-op for non-modular code, we can just remove the offending line. Fixes: c39dfebc7798 ("drivers/tty/serial: make serial/atmel_serial.c explicitly non-modular") Cc: Nicolas Ferre Cc: Jiri Slaby Reported-by: Sudip Mukherjee Signed-off-by: Paul Gortmaker Acked-by: Nicolas Ferre Acked-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/atmel_serial.c | 2 -- 1 file changed, 2 deletions(-) commit 841e3ed977e0284e3680d6345d880a64e8072573 Author: Greg Kroah-Hartman Date: Fri Jan 8 21:00:08 2016 -0800 Revert "arm64: dts: Add dts files to enable ION on Hi6220 SoC." This reverts commit 59dfafd03fc67d38307d2ba30bbfdd1224b8a75d Mark Brown reports that the dts file should not be accepted at this time as it is not following the convention that has been agreed on for the ion drivers. Reported-by: Mark Brown Cc: Mark Rutland Cc: Chen Feng Cc: Yu Dongbin Signed-off-by: Greg Kroah-Hartman arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts | 1 - arch/arm64/boot/dts/hisilicon/hi6220-ion.dtsi | 20 -------------------- 2 files changed, 21 deletions(-) commit d86cdfcd5d7e1179e695977b7088882822f365c4 Merge: 01dd194 cda9fb0 Author: David S. Miller Date: Fri Jan 8 21:57:26 2016 -0500 Merge branch 'r8152-adjustments' Hayes Wang says: ==================== r8152: code adjustment Adjust test_bit(), clear_bit(), disable_aldps(), and enable_aldps(). ==================== Signed-off-by: David S. Miller commit cda9fb01dc3cafd718b2865b447e869bf6624ddd Author: hayeswang Date: Thu Jan 7 17:51:12 2016 +0800 r8152: adjust ALDPS function Replace disable_aldps() and enable_aldps() with aldps_en(). Signed-off-by: Hayes Wang Signed-off-by: David S. Miller drivers/net/usb/r8152.c | 72 +++++++++++++++++++++++-------------------------- 1 file changed, 34 insertions(+), 38 deletions(-) commit 216a8349d3a0dd1bc2afbcc821e374c8f929bd62 Author: hayeswang Date: Thu Jan 7 17:51:11 2016 +0800 r8152: use test_and_clear_bit Replace test_bit() followed by clear_bit() with test_and_clear_bit(). Signed-off-by: Hayes Wang Signed-off-by: David S. Miller drivers/net/usb/r8152.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) commit 5ee3c60c8d3b88cab6496c9b7d49a01576dd9cf9 Author: hayeswang Date: Thu Jan 7 17:12:17 2016 +0800 r8152: fix the wake event When the autosuspend is enabled and occurs before system suspend, we should wake the device before running system syspend. Then, we could change the wake event for system suspend. Otherwise, the device would resume the system when receiving any packet. Signed-off-by: Hayes Wang Signed-off-by: David S. Miller drivers/net/usb/r8152.c | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) commit b4c19f71252e3b6b8c6478fd712c592f00b11438 Author: Roosen Henri Date: Thu Jan 7 09:31:15 2016 +0100 phy: micrel: Fix finding PHY properties in MAC node for KSZ9031. Commit 651df2183543 ("phy: micrel: Fix finding PHY properties in MAC node.") only fixes finding PHY properties in MAC node for KSZ9021. This commit applies the same fix for KSZ9031. Fixes: 8b63ec1837fa ("phylib: Make PHYs children of their MDIO bus, not the bus' parent.") Acked-by: Andrew Lunn Signed-off-by: Henri Roosen Signed-off-by: David S. Miller drivers/net/phy/micrel.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit b1c1f23ef0c64fb7e54c5b44015640e068643023 Merge: 6757e6f 13bbdd3 Author: David S. Miller Date: Fri Jan 8 21:46:04 2016 -0500 Merge tag 'batman-adv-fix-for-davem' of git://git.open-mesh.org/linux-merge Antonio Quartulli says: ==================== Included change: - Fix invalid read while copying bat_iv.bcast_own by Sven Eckelmann ==================== Signed-off-by: David S. Miller commit 01dd194c387af5b3c4c1f6459d30f596565e466c Author: Daniel Borkmann Date: Wed Jan 6 22:32:16 2016 +0100 bpf: cleanup bpf_prog_run_{save,clear}_cb helpers Move the details behind the cb[] access into a small helper to decouple and make them generic for bpf_prog_run_save_cb()/bpf_prog_run_clear_cb() that was introduced via commit ff936a04e5f2 ("bpf: fix cb access in socket filter programs"). Also add a comment to better clarify what is done in bpf_skb_cb(). Signed-off-by: Daniel Borkmann Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller include/linux/filter.h | 39 +++++++++++++++++++++++++++++---------- 1 file changed, 29 insertions(+), 10 deletions(-) commit b351a0633e771676f94262a209ae28699eb26038 Merge: 9b59377 ad64b8b Author: David S. Miller Date: Fri Jan 8 21:30:50 2016 -0500 Merge branch 'net-sparse-warnings' Lance Richardson says: ==================== ipv4: fix various issues reported by sparse This trivial patch series addresses a number of endianness- and lock-related issues reported by sparse. ==================== Signed-off-by: David S. Miller commit ad64b8be71e3a37ea43745aa69817c4bcd489987 Author: Lance Richardson Date: Wed Jan 6 17:22:47 2016 -0500 ipv4: eliminate lock count warnings in ping.c Add lock release/acquire annotations to ping_seq_start() and ping_seq_stop() to satisfy sparse. Signed-off-by: Lance Richardson Signed-off-by: David S. Miller net/ipv4/ping.c | 2 ++ 1 file changed, 2 insertions(+) commit 0797cbd8e2741c69a4d416d8f669639a064db8d1 Author: Lance Richardson Date: Wed Jan 6 17:22:46 2016 -0500 ipv4: eliminate endianness warnings in ip_fib.h fib_multipath_hash() computes a hash using __be32 values, force cast these to u32 to pacify sparse. Signed-off-by: Lance Richardson Signed-off-by: David S. Miller include/net/ip_fib.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 30d3d83a7dcef7a26c5c48e548bdd6a76754cbcd Author: Lance Richardson Date: Wed Jan 6 17:22:45 2016 -0500 ipv4: fix endianness warnings in ip_tunnel_core.c Eliminate endianness mismatch warnings (reported by sparse) in this file by using appropriate nla_put_*()/nla_get_*() calls. Signed-off-by: Lance Richardson Signed-off-by: David S. Miller net/ipv4/ip_tunnel_core.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 263a3df18fa2c078ab3e8b14fece6cfa6053e86a Author: Al Viro Date: Thu Jan 7 10:04:37 2016 -0500 nbd: use ->compat_ioctl() Signed-off-by: Al Viro drivers/block/nbd.c | 1 + fs/compat_ioctl.c | 11 ----------- 2 files changed, 1 insertion(+), 11 deletions(-) commit 6108209c4ae964836f6bac5210f1c64153800b62 Merge: a1c6f057 a7f61e89 Author: Al Viro Date: Fri Jan 8 21:20:11 2016 -0500 Merge branch 'for-linus' into work.misc commit a7f61e89af73e9bf760826b20dba4e637221fcb9 Author: Jann Horn Date: Tue Jan 5 18:27:30 2016 +0100 compat_ioctl: don't call do_ioctl under set_fs(KERNEL_DS) This replaces all code in fs/compat_ioctl.c that translated ioctl arguments into a in-kernel structure, then performed do_ioctl under set_fs(KERNEL_DS), with code that allocates data on the user stack and can call the VFS ioctl handler under USER_DS. This is done as a hardening measure because the caller does not know what kind of ioctl handler will be invoked, only that no corresponding compat_ioctl handler exists and what the ioctl command number is. The accidental invocation of an unlocked_ioctl handler that unexpectedly calls copy_to_user could be a severe security issue. Signed-off-by: Jann Horn Signed-off-by: Al Viro fs/compat_ioctl.c | 130 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 68 insertions(+), 62 deletions(-) commit 66cf191f3eae4582a83cb4251b75b43bee95a999 Author: Al Viro Date: Thu Jan 7 09:53:30 2016 -0500 compat_ioctl: don't pass fd around when not needed Signed-off-by: Al Viro fs/compat_ioctl.c | 103 +++++++++++++++++++++++++++-------------------------- fs/internal.h | 7 ++++ fs/ioctl.c | 4 +-- include/linux/fs.h | 2 -- 4 files changed, 61 insertions(+), 55 deletions(-) commit b43417216e9ce55e1f1ab7c834c7ab43db0b53e1 Author: Jann Horn Date: Tue Jan 5 18:27:29 2016 +0100 compat_ioctl: don't look up the fd twice In code in fs/compat_ioctl.c that translates ioctl arguments into a in-kernel structure, then performs sys_ioctl, possibly under set_fs(KERNEL_DS), this commit changes the sys_ioctl calls to do_ioctl calls. do_ioctl is a new function that does the same thing as sys_ioctl, but doesn't look up the fd again. This change is made to avoid (potential) security issues because of ioctl handlers that accept one of the ioctl commands I2C_FUNCS, VIDEO_GET_EVENT, MTIOCPOS, MTIOCGET, TIOCGSERIAL, TIOCSSERIAL, RTC_IRQP_READ, RTC_EPOCH_READ. This can happen for multiple reasons: - The ioctl command number could be reused. - The ioctl handler might not check the full ioctl command. This is e.g. true for drm_ioctl. - The ioctl handler is very special, e.g. cuse_file_ioctl The real issue is that set_fs(KERNEL_DS) is used here, but that's fixed in a separate commit "compat_ioctl: don't call do_ioctl under set_fs(KERNEL_DS)". This change mitigates potential security issues by preventing a race that permits invocation of unlocked_ioctl handlers under KERNEL_DS through compat code even if a corresponding compat_ioctl handler exists. So far, no way has been identified to use this to damage kernel memory without having CAP_SYS_ADMIN in the init ns (with the capability, doing reads/writes at arbitrary kernel addresses should be easy through CUSE's ioctl handler with FUSE_IOCTL_UNRESTRICTED set). [AV: two missed sys_ioctl() taken care of] Signed-off-by: Jann Horn Signed-off-by: Al Viro fs/compat_ioctl.c | 122 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 68 insertions(+), 54 deletions(-) commit 9b59377b756670d9516e72276b6c4efa92137b5f Merge: 7d39721 48f66c9 Author: David S. Miller Date: Fri Jan 8 20:53:16 2016 -0500 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 updates for net-next, they are: 1) Release nf_tables objects on netns destructions via nft_release_afinfo(). 2) Destroy basechain and rules on netdevice removal in the new netdev family. 3) Get rid of defensive check against removal of inactive objects in nf_tables. 4) Pass down netns pointer to our existing nfnetlink callbacks, as well as commit() and abort() nfnetlink callbacks. 5) Allow to invert limit expression in nf_tables, so we can throttle overlimit traffic. 6) Add packet duplication for the netdev family. 7) Add forward expression for the netdev family. 8) Define pr_fmt() in conntrack helpers. 9) Don't leave nfqueue configuration on inconsistent state in case of errors, from Ken-ichirou MATSUZAWA, follow up patches are also from him. 10) Skip queue option handling after unbind. 11) Return error on unknown both in nfqueue and nflog command. 12) Autoload ctnetlink when NFQA_CFG_F_CONNTRACK is set. 13) Add new NFTA_SET_USERDATA attribute to store user data in sets, from Carlos Falgueras. 14) Add support for 64 bit byteordering changes nf_tables, from Florian Westphal. 15) Add conntrack byte/packet counter matching support to nf_tables, also from Florian. ==================== Signed-off-by: David S. Miller commit 385277bfb57faac44e92497104ba542cdd82d5fe Author: Mikulas Patocka Date: Fri Jan 8 19:07:55 2016 -0500 dm snapshot: fix hung bios when copy error occurs When there is an error copying a chunk dm-snapshot can incorrectly hold associated bios indefinitely, resulting in hung IO. The function copy_callback sets pe->error if there was error copying the chunk, and then calls complete_exception. complete_exception calls pending_complete on error, otherwise it calls commit_exception with commit_callback (and commit_callback calls complete_exception). The persistent exception store (dm-snap-persistent.c) assumes that calls to prepare_exception and commit_exception are paired. persistent_prepare_exception increases ps->pending_count and persistent_commit_exception decreases it. If there is a copy error, persistent_prepare_exception is called but persistent_commit_exception is not. This results in the variable ps->pending_count never returning to zero and that causes some pending exceptions (and their associated bios) to be held forever. Fix this by unconditionally calling commit_exception regardless of whether the copy was successful. A new "valid" parameter is added to commit_exception -- when the copy fails this parameter is set to zero so that the chunk that failed to copy (and all following chunks) is not recorded in the snapshot store. Also, remove commit_callback now that it is merely a wrapper around pending_complete. Signed-off-by: Mikulas Patocka Signed-off-by: Mike Snitzer Cc: stable@vger.kernel.org drivers/md/dm-exception-store.h | 2 +- drivers/md/dm-snap-persistent.c | 5 ++++- drivers/md/dm-snap-transient.c | 4 ++-- drivers/md/dm-snap.c | 20 +++++--------------- 4 files changed, 12 insertions(+), 19 deletions(-) commit 6b9b21073d3b250e17812cd562fffc9006962b39 Author: Jeff Layton Date: Tue Dec 8 07:23:48 2015 -0500 nfsd: give up on CB_LAYOUTRECALLs after two lease periods Have the CB_LAYOUTRECALL code treat NFS4_OK and NFS4ERR_DELAY returns equivalently. Change the code to periodically resend CB_LAYOUTRECALLS until the ls_layouts list is empty or the client returns a different error code. If we go for two lease periods without the list being emptied or the client sending a hard error, then we give up and clean out the list anyway. Signed-off-by: Jeff Layton Tested-by: Christoph Hellwig Signed-off-by: J. Bruce Fields fs/nfsd/nfs4layouts.c | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) commit c33e54fafacaf83b3e345aae0e241c1f152224a0 Author: Michael Ellerman Date: Sat Jan 9 08:25:01 2016 +1100 powerpc: Fix build break due to paca mm_context_t changes Commit 2fc251a8dda5 ("powerpc: Copy only required pieces of the mm_context_t to the paca") broke the build for CONFIG_PPC_STD_MMU_64=y and CONFIG_PPC_MM_SLICES=n. That only happens for a kernel built with 4K pages and HUGETLB disabled, which is why we missed it. Fix it by adding a mm_ctx_user_psize member to the paca and populating it in the appropriate places. Fixes: 2fc251a8dda5 ("powerpc: Copy only required pieces of the mm_context_t to the paca") Signed-off-by: Stephen Rothwell Signed-off-by: Michael Ellerman arch/powerpc/include/asm/paca.h | 2 ++ arch/powerpc/mm/hash_utils_64.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) commit b197367ed1ba81b0d26f7e7f76f61731ac6e5842 Author: Andreas Gruenbacher Date: Tue Jan 5 23:12:33 2016 +0100 selinux: Inode label revalidation performance fix Commit 5d226df4 has introduced a performance regression of about 10% in the UnixBench pipe benchmark. It turns out that the call to inode_security in selinux_file_permission can be moved below the zero-mask test and that inode_security_revalidate can be removed entirely, which brings us back to roughly the original performance. Signed-off-by: Andreas Gruenbacher Acked-by: Stephen Smalley Signed-off-by: Paul Moore security/selinux/hooks.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit 68ce7bfcd995a8a393b1b14fa67dbc16fa3dc784 Author: Theodore Ts'o Date: Fri Jan 8 16:01:25 2016 -0500 fs: clean up the flags definition in uapi/linux/fs.h Add an explanation for the flags used by FS_IOC_[GS]ETFLAGS and remind people that changes should be revised by linux-fsdevel and linux-api. Add flags that are used on-disk for ext4, and remove FS_DIRECTIO_FL since it was used only by gfs2 and support was removed in 2008 in commit c9f6a6bbc28 ("The ability to mark files for direct i/o access when opened normally is both unused and pointless, so this patch removes support for that feature.") Now we have _two_ remaining flags left. But since we want to discourage people from assigning new flags, that's OK. Signed-off-by: Theodore Ts'o include/uapi/linux/fs.h | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) commit 9b7365fc1c82038faa52d56173b20221cf422cbe Author: Li Xi Date: Fri Jan 8 16:01:22 2016 -0500 ext4: add FS_IOC_FSSETXATTR/FS_IOC_FSGETXATTR interface support This patch adds FS_IOC_FSSETXATTR/FS_IOC_FSGETXATTR ioctl interface support for ext4. The interface is kept consistent with XFS_IOC_FSGETXATTR/XFS_IOC_FSGETXATTR. Signed-off-by: Li Xi Signed-off-by: Theodore Ts'o Reviewed-by: Andreas Dilger Reviewed-by: Jan Kara fs/ext4/ext4.h | 47 +++++++ fs/ext4/ioctl.c | 376 +++++++++++++++++++++++++++++++++++++++++++------------- 2 files changed, 336 insertions(+), 87 deletions(-) commit 689c958cbe6be4f211b40747951a3ba2c73b6715 Author: Li Xi Date: Fri Jan 8 16:01:22 2016 -0500 ext4: add project quota support This patch adds mount options for enabling/disabling project quota accounting and enforcement. A new specific inode is also used for project quota accounting. [ Includes fix from Dan Carpenter to crrect error checking from dqget(). ] Signed-off-by: Li Xi Signed-off-by: Dmitry Monakhov Signed-off-by: Theodore Ts'o Reviewed-by: Andreas Dilger Reviewed-by: Jan Kara fs/ext4/ext4.h | 2 +- fs/ext4/super.c | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 61 insertions(+), 6 deletions(-) commit 040cb3786d9b25293b8b0b05b90da0f871e1eb9b Author: Li Xi Date: Fri Jan 8 16:01:21 2016 -0500 ext4: adds project ID support Signed-off-by: Li Xi Signed-off-by: Theodore Ts'o Reviewed-by: Andreas Dilger Reviewed-by: Jan Kara fs/ext4/ext4.h | 17 +++++++++++++---- fs/ext4/ialloc.c | 7 +++++++ fs/ext4/inode.c | 28 ++++++++++++++++++++++++++++ fs/ext4/namei.c | 19 +++++++++++++++++++ fs/ext4/super.c | 1 + 5 files changed, 68 insertions(+), 4 deletions(-) commit 56a04915df4e85b34b1c1613c64b87dd2283c26a Author: Theodore Ts'o Date: Fri Jan 8 16:00:31 2016 -0500 ext4 crypto: simplify interfaces to directory entry insert functions A number of functions include ext4_add_dx_entry, make_indexed_dir, etc. are being passed a dentry even though the only thing they use is the containing parent. We can shrink the code size slightly by making this replacement. This will also be useful in cases where we don't have a dentry as the argument to the directory entry insert functions. Signed-off-by: Theodore Ts'o fs/ext4/ext4.h | 3 +-- fs/ext4/inline.c | 10 ++++------ fs/ext4/namei.c | 15 ++++++--------- 3 files changed, 11 insertions(+), 17 deletions(-) commit 049f419399e937e333bf121b7b234888d804a25e Author: Phil Edworthy Date: Tue Jan 5 13:00:28 2016 +0000 PCI: rcar: Remove unused pci_sys_data struct from pcie-rcar The pci_sys_data struct was previously used by pci_common_init_dev() and by the ARM pcibios_align_resource(), but recent commits removed those uses: cbce7900598c ("PCI: designware: Make driver arch-agnostic") b3a72384fe29 ("ARM/PCI: Replace pci_sys_data->align_resource with global function pointer") cbce7900598c removed the use of pci_common_init_dev() by DesignWare drivers, including pcie-rcar.c, and b3a72384fe29 removed the use of struct pci_sys_data by the ARM pcibios_align_resource(). Remove struct pci_sys_data from pcie-rcar.c. [bhelgaas: changelog] Signed-off-by: Phil Edworthy Signed-off-by: Bjorn Helgaas drivers/pci/host/pcie-rcar.c | 9 --------- 1 file changed, 9 deletions(-) commit 13c240ef95e6569956ba9c731a650cecb3603f0e Author: Alexandre Demers Date: Thu Jan 7 19:22:44 2016 -0500 drm/radeon: fix trivial typo in warning message Reviewed-by: Christian König Signed-off-by: Alexandre Demers Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon_device.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1ef897e4645392c6c5230f2ae92c6bc658e44345 Author: Tim Gardner Date: Thu Jan 7 10:31:32 2016 -0700 radeon: r100: Silence 'may be used uninitialized' warnings CC [M] drivers/gpu/drm/radeon/r100.o In file included from drivers/gpu/drm/radeon/radeon_mode.h:37:0, from drivers/gpu/drm/radeon/radeon.h:80, from drivers/gpu/drm/radeon/r100.c:33: drivers/gpu/drm/radeon/r100.c: In function 'r100_bandwidth_update': include/drm/drm_fixed.h:64:13: warning: 'crit_point_ff.full' may be used uninitialized in this function [-Wmaybe-uninitialized] u64 tmp = ((u64)A.full << 13); ^ drivers/gpu/drm/radeon/r100.c:3153:63: note: 'crit_point_ff.full' was declared here fixed20_12 peak_disp_bw, mem_bw, pix_clk, pix_clk2, temp_ff, crit_point_ff; ^ drivers/gpu/drm/radeon/r100.c:3583:42: warning: 'disp_drain_rate.full' may be used uninitialized in this function [-Wmaybe-uninitialized] temp_ff.full = read_return_rate.full - disp_drain_rate.full; gcc version 5.3.1 20151219 (Ubuntu 5.3.1-4ubuntu1) Cc: Alex Deucher Cc: "Christian König" Cc: David Airlie Signed-off-by: Tim Gardner Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/r100.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 191caba6cc4c95ba282304a10a2a9cba85450317 Author: Christian König Date: Tue Dec 15 11:10:30 2015 +0100 drm/amdgpu: add warning to amdgpu_bo_gpu_offset() v2 Check if there really is a valid offset for the BO. v2: user WARN_ON_ONCE Signed-off-by: Christian König Reviewed-by: Michel Dänzer Reviewed-by: Alex Deucher (v1) Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 1 + 1 file changed, 1 insertion(+) commit 4d42fa492eb80aed28d2237efaee004453579556 Author: Rex Zhu Date: Tue Dec 29 11:23:16 2015 +0800 drm/amd/powerplay: implement power down asic task for CZ Signed-off-by: Rex Zhu Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c | 55 ++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) commit e1d32e607b5ce25a7852bef4ab4de2a80f30c546 Author: Rex Zhu Date: Tue Dec 29 11:22:34 2015 +0800 drm/amd/powerplay: enable power down asic task. (v2) v2: AGD: rebase on upstream Signed-off-by: Rex Zhu Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/eventmgr/eventtasks.c | 3 +-- drivers/gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c | 17 ++++++++++++++++- drivers/gpu/drm/amd/powerplay/inc/hardwaremanager.h | 2 ++ drivers/gpu/drm/amd/powerplay/inc/hwmgr.h | 6 ++++-- 4 files changed, 23 insertions(+), 5 deletions(-) commit 018462d015c5672de0be8045b1acff19f5df6010 Author: Rex Zhu Date: Tue Dec 29 11:19:14 2015 +0800 drm/amd/powerplay: enable set boot state task Signed-off-by: Rex Zhu Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/eventmgr/eventtasks.c | 6 ++++-- drivers/gpu/drm/amd/powerplay/eventmgr/psm.c | 3 +-- drivers/gpu/drm/amd/powerplay/eventmgr/psm.h | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) commit f556c2744a8e7508493cf409849d5a248ed3fb9d Author: Rex Zhu Date: Tue Dec 29 11:23:57 2015 +0800 drm/amd/powerplay: add thermal control task when resume. Signed-off-by: Rex Zhu Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/eventmgr/eventactionchains.c | 1 + 1 file changed, 1 insertion(+) commit ab4f4b14c36f7ae6fa204ca304477e42f6696453 Author: Rex Zhu Date: Wed Jan 6 17:17:53 2016 +0800 drm/amdgpu: fix hex/decimal bug when show gpu load. Reviewed-by: Alex Deucher Signed-off-by: Rex Zhu Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c | 10 +++++----- drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) commit 0cfd9f26975be88e8d902f9bc7070f98dfdfeea2 Author: Rex Zhu Date: Wed Jan 6 17:15:59 2016 +0800 drm/amdgpu: Show gpu load when display gpu performance for Fiji of VI. Reviewed-by: Alex Deucher Signed-off-by: Rex Zhu Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 9354573d76f599e05a34e0b468ffce681769115f Author: Rex Zhu Date: Wed Jan 6 17:08:46 2016 +0800 drm/amdgpu: Show gpu load when display gpu performance for Ci. Reviewed-by: Alex Deucher Signed-off-by: Rex Zhu Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/ci_dpm.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit e0b71a7eff644ca256aee6478bf220ba0a835bed Author: Rex Zhu Date: Tue Dec 29 10:25:19 2015 +0800 drm/amd/powerplay: Reload and initialize the smc firmware on powerplay resume. Reviewed-by: Alex Deucher Signed-off-by: Rex Zhu Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/amd_powerplay.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit a969e163a4ac1b0cfa2dc7ab890aaa9ab092951c Author: Rex Zhu Date: Tue Dec 29 13:56:03 2015 +0800 drm/amd/powerplay: add powerplay valid check to avoid null point. (v2) In case CONFIG_DRM_AMD_POWERPLAY is defined and amdgpu.powerplay=0. some functions in powrplay can also be called by DAL. and the input parameter is *adev. if just check point not NULL was not enough and will lead to NULL point error. V2: AGD: rebase on upstream Signed-off-by: Rex Zhu Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/amd_powerplay.c | 15 ++++++++++++--- drivers/gpu/drm/amd/powerplay/inc/pp_instance.h | 3 +++ 2 files changed, 15 insertions(+), 3 deletions(-) commit c15c8d70207d467bb4312d6ac5536c101246fdc6 Author: Rex Zhu Date: Wed Jan 6 16:48:38 2016 +0800 drm/amd/powerplay: fix Smatch static checker warnings 1. return -1 instead of -ENOMEM 2. The struct type mismatch warnings. Signed-off-by: Rex Zhu Reviewed-by: Alex Deucher Reviewed-by: Ken Wang Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.c | 2 +- .../gpu/drm/amd/powerplay/hwmgr/functiontables.c | 13 +++++----- drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c | 3 +++ .../gpu/drm/amd/powerplay/hwmgr/processpptables.c | 11 +++++++- drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c | 30 +++++++++++++--------- .../amd/powerplay/hwmgr/tonga_processpptables.c | 20 +++++++-------- drivers/gpu/drm/amd/powerplay/smumgr/fiji_smumgr.c | 2 +- .../gpu/drm/amd/powerplay/smumgr/tonga_smumgr.c | 2 +- 8 files changed, 51 insertions(+), 32 deletions(-) commit 75ac63dbc3b0f4d3af67a5857790749e954e2ba6 Author: Rex Zhu Date: Wed Jan 6 16:38:48 2016 +0800 drm/amd/powerplay: fix Smatch static checker warnings with indenting (v2) v2: AGD: rebase on upstream Signed-off-by: Rex Zhu Reviewed-by: Alex Deucher Reviewed-by: Ken Wang Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 2 +- drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.c | 51 +- .../gpu/drm/amd/powerplay/hwmgr/fiji_powertune.c | 12 +- .../gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c | 1 - drivers/gpu/drm/amd/powerplay/hwmgr/ppevvmath.h | 555 ++++++++++----------- drivers/gpu/drm/amd/powerplay/smumgr/fiji_smumgr.c | 8 +- 6 files changed, 312 insertions(+), 317 deletions(-) commit 53d3de140b668d37e1ebfe01c94ec36d369edcbf Author: Rex Zhu Date: Wed Jan 6 16:22:07 2016 +0800 drm/amd/powerplay: fix bug that NULL checks are reversed. && was used instead of ||. Signed-off-by: Rex Zhu Reviewed-by: Alex Deucher Reviewed-by: Ken Wang Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 5930fe4edee072d403cfbafa0aacca78587edd73 Author: Gabriele Paoloni Date: Fri Nov 27 01:17:05 2015 +0800 PCI: hisi: Add support for HiSilicon Hip06 PCIe host controllers Add support for the HiSilicon Hip06 SoC. Documentation has been updated to include Hip06. Add Gabriele Paoloni as maintainer of the driver. Signed-off-by: Gabriele Paoloni Signed-off-by: Bjorn Helgaas Reviewed-by: Zhou Wang .../devicetree/bindings/pci/hisilicon-pcie.txt | 8 +-- MAINTAINERS | 1 + drivers/pci/host/Kconfig | 5 +- drivers/pci/host/pcie-hisi.c | 76 ++++++++++++++++++---- 4 files changed, 73 insertions(+), 17 deletions(-) commit 9b72a388f5867f4a31113a41d24bbf1026611d7b Author: Chao Yu Date: Fri Jan 8 20:24:00 2016 +0800 f2fs: skip releasing nodes in chindless extent tree If there are no nodes in extent tree, let's skip releasing step to avoid any overhead of grabbing/releasing extent tree lock. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/extent_cache.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 68e353851002dc07555b067a0baff1cc2f709c04 Author: Chao Yu Date: Fri Jan 8 20:22:52 2016 +0800 f2fs: use atomic type for node count in extent tree 1. rename field in struct extent_tree from count to node_cnt for readability. 2. alter to use atomic type for node_cnt. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/extent_cache.c | 17 +++++++++-------- fs/f2fs/f2fs.h | 2 +- 2 files changed, 10 insertions(+), 9 deletions(-) commit da5af127a1a17bac121c6889c88cc90f8a278a84 Author: Chao Yu Date: Fri Jan 8 20:19:27 2016 +0800 f2fs: recognize encrypted data in f2fs_fiemap This patch fixes to teach f2fs_fiemap to recognize encrypted data. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 2c4db1a6f6b42e2a9fb611cbbeb71a3a9a358ee0 Author: Jaegeuk Kim Date: Thu Jan 7 14:15:04 2016 -0800 f2fs: clean up f2fs_balance_fs This patch adds one parameter to clean up all the callers of f2fs_balance_fs. Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 17 ++++++----------- fs/f2fs/f2fs.h | 2 +- fs/f2fs/file.c | 17 ++++++++--------- fs/f2fs/inline.c | 3 +-- fs/f2fs/inode.c | 2 +- fs/f2fs/namei.c | 22 +++++++++++----------- fs/f2fs/segment.c | 6 ++++-- fs/f2fs/xattr.c | 2 +- 8 files changed, 33 insertions(+), 38 deletions(-) commit 2a4b8e9fab9cea45d90179d9ee8e718c5ed26457 Author: Jaegeuk Kim Date: Thu Jan 7 13:52:34 2016 -0800 f2fs: remove redundant calls This patch removes redundant calls. Signed-off-by: Jaegeuk Kim fs/f2fs/file.c | 3 --- 1 file changed, 3 deletions(-) commit 12719ae14e57980ebf0a7baa63bc80494c76b192 Author: Jaegeuk Kim Date: Thu Jan 7 13:23:12 2016 -0800 f2fs: avoid unnecessary f2fs_balance_fs calls Only when node page is newly dirtied, it needs to check whether we need to do f2fs_gc. Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 4 ++-- fs/f2fs/f2fs.h | 4 ++-- fs/f2fs/inode.c | 19 ++++++++++--------- fs/f2fs/node.c | 26 ++++++++++++++------------ fs/f2fs/node.h | 4 ++-- fs/f2fs/super.c | 2 -- 6 files changed, 30 insertions(+), 29 deletions(-) commit 7612118ae8cdd36cbd74d873855d70252d2d49e3 Author: Jaegeuk Kim Date: Fri Jan 1 22:03:47 2016 -0800 f2fs: check the page status filled from disk After reading a page, we need to check whether there is any error. Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 0e022ea8fc49ed9c72ab9dcd9ca96414dc026184 Author: Chao Yu Date: Tue Jan 5 16:52:46 2016 +0800 f2fs: introduce __get_node_page to reuse common code There are duplicated code in between get_node_page and get_node_page_ra, introduce __get_node_page to includes common parts of these two, and export get_node_page and get_node_page_ra by reusing __get_node_page. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/node.c | 88 +++++++++++++++++++++++----------------------------------- 1 file changed, 35 insertions(+), 53 deletions(-) commit e84587250ab7e38b7d85e93a8c317e065e5c0a1f Author: Chao Yu Date: Fri Jan 8 20:13:37 2016 +0800 f2fs: check node id earily when readaheading node page Add node id check in ra_node_page and get_node_page_ra like get_node_page. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/node.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 9e35fdcb9cd54e381135310aae3d9bbb23cecda3 Author: Zhu Yanjun Date: Tue Jan 5 18:39:04 2016 +0800 mtip32xx: restrict variables visible in current code module The modified variables are only used in the file mtip32xx.c. As such, the static keyword is inserted to define that object to be only visible to the current code module during compilation. Signed-off-by: Zhu Yanjun Signed-off-by: Jens Axboe drivers/block/mtip32xx/mtip32xx.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 7d39721466175a075abc9662ca790fe81bf78864 Merge: 250fbf1 e19dcde Author: David S. Miller Date: Fri Jan 8 13:31:06 2016 -0500 Merge branch '10GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== 10GbE Intel Wired LAN Driver Updates 2016-01-08 This series contains updates to ixgbe only. Vasu provides three fixes for ixgbe, first assigns a minimum credit to a traffic class to resolve a Tx hang for CEE mode configuration. Second fix changes the driver to use netdev->fcoe_ddp_xid instead of our local IXGBE_FCOE_DDP_MAX, since it is correctly set for our different devices and avoids a DDP skip error on X550. Lastly fix the PFC configuration to include X550 devices. Emil provides a fix for reporting the speed in ethtool by using the stored value in out adapter structure. This is due to external drivers may end up with unknown speed when calling ethtool_get_settings(). Mark fixes the handling of any outer UDP checksum, by passing the skb up with CHECKSUM_NONE when an outer UDP checksum is set. This will cause the stack to check the checksum, also do not increment an error counter because we do not really know if there is an actual error. Ixgbe ATR was not handling IPv6 extended headers, so ATR is not being performed on such packets. Fix this by skipping extended headers when they are present. Usha fixes an issue with X550 and getting FDMI HBA attributes when FCoE support is enabled. Neerav fixes an issue for X550 when FCoE and SR-IOV are enabled, which the hardware generates MDD events. Resolve this by setting the expected values in the transmit context descriptors for FCoE/FIP frames and adding a flush after writing the RDLEN register. ==================== Signed-off-by: David S. Miller commit 1f1a89ac05f6e88aa341e86e57435fdbb1177c0c Author: Chris Wilson Date: Fri Jan 8 09:55:33 2016 +0000 x86/mm: Micro-optimise clflush_cache_range() Whilst inspecting the asm for clflush_cache_range() and some perf profiles that required extensive flushing of single cachelines (from part of the intel-gpu-tools GPU benchmarks), we noticed that gcc was reloading boot_cpu_data.x86_clflush_size on every iteration of the loop. We can manually hoist that read which perf regarded as taking ~25% of the function time for a single cacheline flush. Signed-off-by: Chris Wilson Reviewed-by: Ross Zwisler Acked-by: "H. Peter Anvin" Cc: Toshi Kani Cc: Borislav Petkov Cc: Luis R. Rodriguez Cc: Stephen Rothwell Cc: Sai Praneeth Link: http://lkml.kernel.org/r/1452246933-10890-1-git-send-email-chris@chris-wilson.co.uk Signed-off-by: Thomas Gleixner arch/x86/mm/pageattr.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 6757e6f5f44de32bc8cd0bb2dc800580380792db Author: Dan Carpenter Date: Fri Jan 8 14:04:04 2016 +0300 irda: toim3232-sir: delete some dead code I noticed this code because it has a typo in the module_param(), the "trs" at the end of "toim3232fliptrs" should be "rts". But it's dead code so instead of fixing it, I just deleted it. Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller drivers/net/irda/toim3232-sir.c | 10 ---------- 1 file changed, 10 deletions(-) commit 85f37d17b3f19cf9cde3fd7b90c7a30c97c04023 Author: Dan Carpenter Date: Fri Jan 8 13:58:50 2016 +0300 isdn: act200: fix MODULE_PARM_DESC() typo There is no "membase", it was "act_port" that was intended. Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller drivers/isdn/act2000/module.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 250fbf129e913781a7c9f8bb38d5aa30b4f0f947 Merge: a33ad9a 8cf60cf Author: David S. Miller Date: Fri Jan 8 13:17:31 2016 -0500 Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next Johan Hedberg says: ==================== pull request: bluetooth-next 2016-01-08 Here's one more bluetooth-next pull request for the 4.5 kernel: - Support for CRC check and promiscuous mode for CC2520 - Fixes to btmrvl driver - New ACPI IDs for hci_bcm driver - Limited Discovery support for the Bluetooth mgmt interface - Minor other cleanups here and there Please let me know if there are any issues pulling. Thanks. ==================== Signed-off-by: David S. Miller commit 47b975d234eac39f3a72e5496d5f6158d8b806d1 Author: Edward O'Callaghan Date: Fri Jan 8 12:16:04 2016 -0600 PCI: Avoid iterating through memory outside the resource window If the 'image' pointer has been advanced more than 'size', we've already iterated through memory outside the resource window. We have zero control over whatever we find in the option ROM, if it's even an option ROM and not just an accident of random data just happening to look like an option ROM. Signed-off-by: Edward O'Callaghan Signed-off-by: Bjorn Helgaas drivers/pci/rom.c | 3 +++ 1 file changed, 3 insertions(+) commit 1b47fd4551061ad6db5adf063d424aded798a7c9 Author: Colin Ian King Date: Sat Jan 2 00:27:01 2016 +0000 PCI: acpiphp_ibm: Fix null dereferences on null ibm_slot ibm_slot_from_id() can return null if the des header signature is not "aPCI" or if the kmalloc() for the return ACPI descriptor fails, causing potential null pointer dereferences on the return null descriptor. Handle the null case with appropriate check and error return. Signed-off-by: Colin Ian King Signed-off-by: Bjorn Helgaas drivers/pci/hotplug/acpiphp_ibm.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) commit bd7900825a3db4c4916fafb400c1f669120039d2 Author: Julia Lawall Date: Wed Dec 23 21:35:35 2015 +0100 PCI: shpchp: Constify hpc_ops structure The hpc_ops structure is never modified, so declare it as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Bjorn Helgaas drivers/pci/hotplug/shpchp.h | 4 ++-- drivers/pci/hotplug/shpchp_hpc.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit a290dd57926cb0c54eec7ea506885119e296b755 Author: Sudip Mukherjee Date: Tue Jan 5 18:10:50 2016 +0530 imm: Use new parport device model Modify imm driver to use the new parallel port device model. Signed-off-by: Sudip Mukherjee Reviewed-by: Matthew R. Ochs Signed-off-by: Martin K. Petersen drivers/scsi/imm.c | 50 +++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 43 insertions(+), 7 deletions(-) commit 554a60379aaa502def3c77ae1af69247588c020a Author: Geliang Tang Date: Wed Dec 23 20:28:13 2015 +0800 PCI: Use kobj_to_dev() instead of open-coding it Use kobj_to_dev() instead of open-coding it. Signed-off-by: Geliang Tang Signed-off-by: Bjorn Helgaas drivers/pci/pci-label.c | 4 ++-- drivers/pci/pci-sysfs.c | 40 +++++++++++++++------------------------- 2 files changed, 17 insertions(+), 27 deletions(-) commit f3d2f1655b543e2e8aaeaac0e1f6250c09fe1692 Author: Geliang Tang Date: Fri Jan 8 12:05:39 2016 -0600 PCI: Use to_pci_dev() instead of open-coding it Use to_pci_dev() instead of open-coding it. Signed-off-by: Geliang Tang Signed-off-by: Bjorn Helgaas drivers/pci/hotplug/shpchp_sysfs.c | 2 +- drivers/pci/pci.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit ac3e5fcae8ca658e7dcc3fdcd50af7e4779f58c1 Author: Andrey Smetanin Date: Wed Dec 23 16:54:00 2015 +0300 kvm/x86: Hyper-V SynIC timers tracepoints Trace the following Hyper SynIC timers events: * periodic timer start * one-shot timer start * timer callback * timer expiration and message delivery result * timer config setup * timer count setup * timer cleanup Signed-off-by: Andrey Smetanin CC: Gleb Natapov CC: Paolo Bonzini CC: Roman Kagan CC: Denis V. Lunev CC: qemu-devel@nongnu.org Signed-off-by: Paolo Bonzini arch/x86/kvm/hyperv.c | 27 +++++++- arch/x86/kvm/trace.h | 170 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 196 insertions(+), 1 deletion(-) commit 18659a9cb1885d00dd428f8857f7f628e54a45ee Author: Andrey Smetanin Date: Wed Dec 23 16:53:59 2015 +0300 kvm/x86: Hyper-V SynIC tracepoints Trace the following Hyper SynIC events: * set msr * set sint irq * ack sint * sint irq eoi Signed-off-by: Andrey Smetanin CC: Gleb Natapov CC: Paolo Bonzini CC: Roman Kagan CC: Denis V. Lunev CC: qemu-devel@nongnu.org Signed-off-by: Paolo Bonzini arch/x86/kvm/hyperv.c | 10 +++--- arch/x86/kvm/trace.h | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+), 5 deletions(-) commit f3b138c5d89a1f74a2b46adaa1067aea9a7e3cbb Author: Andrey Smetanin Date: Mon Dec 28 18:27:24 2015 +0300 kvm/x86: Update SynIC timers on guest entry only Consolidate updating the Hyper-V SynIC timers in a single place: on guest entry in processing KVM_REQ_HV_STIMER request. This simplifies the overall logic, and makes sure the most current state of msrs and guest clock is used for arming the timers (to achieve that, KVM_REQ_HV_STIMER has to be processed after KVM_REQ_CLOCK_UPDATE). Signed-off-by: Andrey Smetanin Reviewed-by: Roman Kagan CC: Gleb Natapov CC: Paolo Bonzini CC: Roman Kagan CC: Denis V. Lunev CC: qemu-devel@nongnu.org Signed-off-by: Paolo Bonzini arch/x86/kvm/hyperv.c | 38 +++++++++++++++++++------------------- arch/x86/kvm/x86.c | 6 ++++++ 2 files changed, 25 insertions(+), 19 deletions(-) commit 7be58a6488a9d36886d9423a1ed54fe104c7b182 Author: Andrey Smetanin Date: Mon Dec 28 18:27:23 2015 +0300 kvm/x86: Skip SynIC vector check for QEMU side QEMU zero-inits Hyper-V SynIC vectors. We should allow that, and don't reject zero values if set by the host. Signed-off-by: Andrey Smetanin Reviewed-by: Roman Kagan CC: Gleb Natapov CC: Paolo Bonzini CC: Roman Kagan CC: Denis V. Lunev CC: qemu-devel@nongnu.org Signed-off-by: Paolo Bonzini arch/x86/kvm/hyperv.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 23a3b201fd187f1e7af573b3794c3c5ebf7d2c06 Author: Andrey Smetanin Date: Mon Dec 28 18:27:22 2015 +0300 kvm/x86: Hyper-V fix SynIC timer disabling condition Hypervisor Function Specification(HFS) doesn't require to disable SynIC timer at timer config write if timer->count = 0. So drop this check, this allow to load timers MSR's during migration restore, because config are set before count in QEMU side. Also fix condition according to HFS doc(15.3.1): "It is not permitted to set the SINTx field to zero for an enabled timer. If attempted, the timer will be marked disabled (that is, bit 0 cleared) immediately." Signed-off-by: Andrey Smetanin Reviewed-by: Roman Kagan CC: Gleb Natapov CC: Paolo Bonzini CC: Roman Kagan CC: Denis V. Lunev CC: qemu-devel@nongnu.org Signed-off-by: Paolo Bonzini arch/x86/kvm/hyperv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0cdeabb1186fc3a6c7854f05cec7c99e32935ebc Author: Andrey Smetanin Date: Mon Dec 28 18:27:21 2015 +0300 kvm/x86: Reorg stimer_expiration() to better control timer restart Split stimer_expiration() into two parts - timer expiration message sending and timer restart/cleanup based on timer state(config). This also fixes a bug where a one-shot timer message whose delivery failed once would get lost for good. Signed-off-by: Andrey Smetanin Reviewed-by: Roman Kagan CC: Gleb Natapov CC: Paolo Bonzini CC: Roman Kagan CC: Denis V. Lunev CC: qemu-devel@nongnu.org Signed-off-by: Paolo Bonzini arch/x86/kvm/hyperv.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) commit f808495da56f28e94c6448125158f1175009fcfc Author: Andrey Smetanin Date: Mon Dec 28 18:27:20 2015 +0300 kvm/x86: Hyper-V unify stimer_start() and stimer_restart() This will be used in future to start Hyper-V SynIC timer in several places by one logic in one function. Changes v2: * drop stimer->count == 0 check inside stimer_start() * comment stimer_start() assumptions Signed-off-by: Andrey Smetanin Reviewed-by: Roman Kagan CC: Gleb Natapov CC: Paolo Bonzini CC: Roman Kagan CC: Denis V. Lunev CC: qemu-devel@nongnu.org Signed-off-by: Paolo Bonzini arch/x86/kvm/hyperv.c | 43 ++++++++++++++++++++----------------------- 1 file changed, 20 insertions(+), 23 deletions(-) commit 019b9781ccd667d4160f3636c8735e3baa085555 Author: Andrey Smetanin Date: Mon Dec 28 18:27:19 2015 +0300 kvm/x86: Drop stimer_stop() function The function stimer_stop() is called in one place so remove the function and replace it's call by function content. Signed-off-by: Andrey Smetanin Reviewed-by: Roman Kagan CC: Gleb Natapov CC: Paolo Bonzini CC: Roman Kagan CC: Denis V. Lunev CC: qemu-devel@nongnu.org Signed-off-by: Paolo Bonzini arch/x86/kvm/hyperv.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 1ac1b65ac199205724a8077d37ba7e64a1b7e77c Author: Andrey Smetanin Date: Mon Dec 28 18:27:18 2015 +0300 kvm/x86: Hyper-V timers fix incorrect logical operation Signed-off-by: Andrey Smetanin Reviewed-by: Roman Kagan CC: Gleb Natapov CC: Paolo Bonzini CC: Roman Kagan CC: Denis V. Lunev CC: qemu-devel@nongnu.org Signed-off-by: Paolo Bonzini arch/x86/kvm/hyperv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2860c4b1678646c99f5f1d77d026cd12ffd8a3a9 Author: Paolo Bonzini Date: Thu Jan 7 15:05:10 2016 +0100 KVM: move architecture-dependent requests to arch/ Since the numbers now overlap, it makes sense to enumerate them in asm/kvm_host.h rather than linux/kvm_host.h. Functions that refer to architecture-specific requests are also moved to arch/. Signed-off-by: Paolo Bonzini arch/powerpc/include/asm/kvm_host.h | 4 ++++ arch/s390/include/asm/kvm_host.h | 4 ++++ arch/x86/include/asm/kvm_host.h | 28 ++++++++++++++++++++++++ arch/x86/kvm/x86.c | 15 +++++++++++++ include/linux/kvm_host.h | 43 ++----------------------------------- virt/kvm/kvm_main.c | 10 --------- 6 files changed, 53 insertions(+), 51 deletions(-) commit 7296f62f0322d808362b21064deb34f20799c20d Author: Nicholas Krause Date: Tue Jan 5 14:32:54 2016 -0500 megaraid: Fix possible NULL pointer deference in mraid_mm_ioctl This adds the needed check after the call to the function mraid_mm_alloc_kioc in order to make sure that this function has not returned NULL and therefore makes sure we do not deference a NULL pointer if one is returned by mraid_mm_alloc_kioc. Further more add needed comments explaining that this function call can return NULL if the list head is empty for the pointer passed in order to allow furture users to understand this required pointer check. Signed-off-by: Nicholas Krause Acked-by: Sumit Saxena Signed-off-by: Martin K. Petersen drivers/scsi/megaraid/megaraid_mm.c | 4 ++++ 1 file changed, 4 insertions(+) commit 6662ba347b29b6df0756ffedb167fa4d89bab06f Author: Paolo Bonzini Date: Thu Jan 7 15:02:44 2016 +0100 KVM: renumber vcpu->request bits Leave room for 4 more arch-independent requests. Reviewed-by: Christian Borntraeger Signed-off-by: Paolo Bonzini include/linux/kvm_host.h | 59 ++++++++++++++++++++++++------------------------ 1 file changed, 29 insertions(+), 30 deletions(-) commit 0cd310437255be81cd2413407c1d61eb70286fe2 Author: Paolo Bonzini Date: Thu Jan 7 15:00:53 2016 +0100 KVM: document which architecture uses each request bit Reviewed-by: Christian Borntraeger Signed-off-by: Paolo Bonzini include/linux/kvm_host.h | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) commit 6c71f8ae155422a030b4c382cb985dde006ccc3f Author: Paolo Bonzini Date: Thu Jan 7 14:53:46 2016 +0100 KVM: Remove unused KVM_REQ_KICK to save a bit in vcpu->requests Suggested-by: Takuya Yoshikawa [Takuya moved all subsequent constants to fill the void, but that is useless in view of the following patches. So this change looks nothing like the original. - Paolo] Reviewed-by: Christian Borntraeger Signed-off-by: Paolo Bonzini include/linux/kvm_host.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d0ecb44dd459164d9d6e7a126024dc3c961a12ed Merge: 1dab134 c6e5f16 Author: Paolo Bonzini Date: Fri Jan 8 19:03:03 2016 +0100 Merge tag 'kvm-s390-next-4.5-3' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD KVM: s390: Feature and fix for 4.5 - allow the runtime instrumentation support inside the guests - remove a useless memory barrier commit 74e26784f1c50469585f483cf404c2b1d621c101 Author: Dan Carpenter Date: Fri Jan 8 14:02:04 2016 +0300 storvsc: Fix typo in MODULE_PARM_DESC The module_param is "storvsc_vcpus_per_sub_channel" so we need to use that for MODULE_PARM_DESC() as well. Signed-off-by: Dan Carpenter Reviewed-by: Matthew R. Ochs Signed-off-by: Martin K. Petersen drivers/scsi/storvsc_drv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 856690ca98059388f9f7e0afc8f0d7441a965e35 Author: Dan Carpenter Date: Fri Jan 8 14:01:36 2016 +0300 cxgbi: Typo in MODULE_PARM_DESC The module_param is "cxgb3i_rx_credit_thres" so the MODULE_PARM_DESC() should match that. Signed-off-by: Dan Carpenter Reviewed-by: Matthew R. Ochs Signed-off-by: Martin K. Petersen drivers/scsi/cxgbi/cxgb3i/cxgb3i.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4f44f35dd8cf0818c51f399611ef868ebfdaccba Author: Ryan C. Underwood Date: Thu Dec 24 21:45:27 2015 -0800 3w-xxxx: Pass through compat mode ioctls This allows 32-bit userspace tools (tw_cli, smartctl) to work on a 64-bit system. The command buffer is opaque to us, so, no word size problems. Signed-off-by: Ryan C. Underwood Reviewed-by: Shane Seymour Reviewed-by: Matthew R. Ochs Signed-off-by: Martin K. Petersen drivers/scsi/3w-xxxx.c | 3 +++ 1 file changed, 3 insertions(+) commit 4e09bff3301ac570cb5d68277e755f1759edfeb2 Author: John Garry Date: Mon Dec 21 19:35:09 2015 +0800 hisi_sas: Use u64 for qw0 in free_device_v1_hw() By reading in itct.qw0 into a 32b variable the top 32 bits were being lost. In practice this was OK as they were zeroes. Fixes: 27a3f229 ("hisi_sas: Add cq interrupt") Signed-off-by: John Garry Reviewed-by: Matthew R. Ochs Reviewed-by: Shane Seymour Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 9146cbd52b11d4ade62dba8f238ec5e421c3fa2b Author: Brian Norris Date: Thu Jan 7 09:53:08 2016 -0800 mtd: jz4780_nand: replace if/else blocks with switch/case Using switch/case helps make this logic more clear and more robust. With this structure: * it's clear that this driver only support ECC_{HW,SOFT,SOFT_BCH}; and * we can sanely handle new ECC unsupported modes (right now, this code makes incorrect assumptions about the possible values in the nand_ecc_modes_t enum; e.g., what happens with NAND_ECC_HW_OOB_FIRST?) Signed-off-by: Brian Norris Cc: Alex Smith Reviewed-by: Boris Brezillon Tested-by: Harvey Hunt Acked-by: Harvey Hunt drivers/mtd/nand/jz4780_nand.c | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) commit 6c1207b5b8422cdddf467b9fbef922c4c374d382 Author: Harvey Hunt Date: Fri Jan 8 16:45:17 2016 +0000 mtd: nand: jz4780: Update ecc correction error codes Update jz4780_bch_ecc_correct's return codes with appropriate values, as specified in /include/linux/mtd/nand.h. Signed-off-by: Harvey Hunt Cc: Alex Smith Cc: Boris Brezillon Cc: linux-kernel@vger.kernel.org Reviewed-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/jz4780_bch.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit a33ad9ac818ecd36fdaa3ad1f9c5471398f41647 Merge: 24759da 5602815 Author: David S. Miller Date: Fri Jan 8 12:44:21 2016 -0500 Merge branch '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== 40GbE Intel Wired LAN Driver Updates 2016-01-08 This series contains updates to i40e and i40evf only. Mitch adds a useful error message and return value when the VFs are being reset, since there is a brief window of time when the VF cannot be configured because they do not have a VSI to configure. Also made a driver change to allow the user to specify a zero MAC address for VFs, which causes the existing MAC address to be removed and allows the VF to use a random address (like libvirt). Sowmini Varadhan from Oracle adds similar functionality/fix to i40e that was added to ixgbe earlier. The fix attempts to look up the MAC address in the Open Firmware on systems that support it and use IDPROM on SPARC if no OF address is found. Anjali provides a fix the code path so that we do not call skb_set_hash() if the feature is disabled. Jesse removes a device ID that has never been productized and there are no plans to use it, so just remove it. ==================== Signed-off-by: David S. Miller commit 775d8a1b0d75211cc6123915c6b5b688f2002478 Author: Namhyung Kim Date: Thu Jan 7 09:12:29 2016 +0900 perf evlist: Add --trace-fields option to show trace fields To use dynamic sort keys, it might be good to add an option to see the list of field names. $ perf evlist -i perf.data.sched sched:sched_switch sched:sched_stat_wait sched:sched_stat_sleep sched:sched_stat_iowait sched:sched_stat_runtime sched:sched_process_fork sched:sched_wakeup sched:sched_wakeup_new sched:sched_migrate_task # Tip: use 'perf evlist --trace-fields' to show fields for tracepoint events $ perf evlist -i perf.data.sched --trace-fields sched:sched_switch: trace_fields: prev_comm,prev_pid,prev_prio,prev_state,next_comm,next_pid,next_prio sched:sched_stat_wait: trace_fields: comm,pid,delay sched:sched_stat_sleep: trace_fields: comm,pid,delay sched:sched_stat_iowait: trace_fields: comm,pid,delay sched:sched_stat_runtime: trace_fields: comm,pid,runtime,vruntime sched:sched_process_fork: trace_fields: parent_comm,parent_pid,child_comm,child_pid sched:sched_wakeup: trace_fields: comm,pid,prio,success,target_cpu sched:sched_wakeup_new: trace_fields: comm,pid,prio,success,target_cpu sched:sched_migrate_task: trace_fields: comm,pid,prio,orig_cpu,dest_cpu Committer notes: For another file, in verbose mode: # perf evlist -v --trace-fields sched:sched_switch: type: 2, size: 112, config: 0x10b, { sample_period, sample_freq }: 1, sample_type: IP|TID|TIME|CPU|PERIOD|RAW, disabled: 1, inherit: 1, mmap: 1, comm: 1, task: 1, sample_id_all: 1, exclude_guest: 1, mmap2: 1, comm_exec: 1, trace_fields: prev_comm,prev_pid,prev_prio,prev_state,next_comm,next_pid,next_prio # Signed-off-by: Namhyung Kim Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Wang Nan Link: http://lkml.kernel.org/r/1452125549-1511-5-git-send-email-namhyung@kernel.org [ Replaced 'trace_fields=' with 'trace_fields: ' to make the output consistent in -v mode ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-evlist.txt | 3 +++ tools/perf/builtin-evlist.c | 11 ++++++++++- tools/perf/util/evsel.c | 23 +++++++++++++++++++++++ tools/perf/util/evsel.h | 1 + 4 files changed, 37 insertions(+), 1 deletion(-) commit 5c0cf22477eaa890beeb4bc3554e5bebbea4b007 Author: Jiri Olsa Date: Thu Jan 7 14:30:22 2016 +0100 perf record: Store data mmaps for dwarf unwind Currently we don't synthesize data mmap by default. It depends on -d option, that enables data address sampling. But we've seen cases (softice) where DWARF unwinder went through non executable mmaps, which we need to lookup in MAP__VARIABLE tree. Making data mmaps to be synthesized for dwarf unwind as well. Reported-by: Noel Grandin Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20160107133022.GA32115@krava.brq.redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-record.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 0ba98149f8c8b6b2ba36be9938afb731fa719004 Author: Jiri Olsa Date: Thu Jan 7 10:14:02 2016 +0100 perf libdw: Check for mmaps also in MAP__VARIABLE tree We've seen cases (softice) where DWARF unwinder went through non executable mmaps, which we need to lookup in MAP__VARIABLE tree. Reported-and-Tested-by: Noel Grandin Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1452158050-28061-6-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/unwind-libdw.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 0ddf5246f70ecc04e1bb4c4dc2be65977d1c03a7 Author: Jiri Olsa Date: Thu Jan 7 10:14:01 2016 +0100 perf unwind: Check for mmaps also in MAP__VARIABLE tree We've seen cases (softice) where DWARF unwinder went through non executable mmaps, which we need to lookup in MAP__VARIABLE tree. Reported-and-Tested-by: Noel Grandin Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1452158050-28061-5-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/unwind-libunwind.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit f22ed827a8d5ff5a85e7c8e865baaaaf71a8d0cc Author: Jiri Olsa Date: Thu Jan 7 10:14:00 2016 +0100 perf unwind: Use find_map function in access_dso_mem The find_map helper is already there, so let's use it. Also we're going to introduce wider search in following patch, so it'll be easier to make this change on single place. Signed-off-by: Jiri Olsa Tested-by: Noel Grandin Cc: Adrian Hunter Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1452158050-28061-4-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/unwind-libunwind.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit d2190a8091124f832c8862ace3a3d7d70a2506a5 Author: Jiri Olsa Date: Thu Jan 7 10:13:58 2016 +0100 perf evlist: Remove perf_evlist__(enable|disable)_event functions Replacing them with perf_evsel__(enable|disable). Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: David Ahern Cc: Namhyung Kim Cc: Noel Grandin Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1452158050-28061-2-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/arch/x86/util/intel-bts.c | 4 ++-- tools/perf/arch/x86/util/intel-pt.c | 4 ++-- tools/perf/tests/keep-tracking.c | 2 +- tools/perf/tests/switch-tracking.c | 6 +++--- tools/perf/util/evlist.c | 42 ------------------------------------ tools/perf/util/evlist.h | 4 ---- 6 files changed, 8 insertions(+), 54 deletions(-) commit 23df7f798435796aff07d641456326b81cb34a77 Author: Adrian Hunter Date: Thu Jan 7 10:13:59 2016 +0100 perf evlist: Make perf_evlist__open() open evsels with their cpus and threads (like perf record does) 'perf record' uses perf_evsel__open() to open events and passes the evsel->cpus and evsel->threads. Many tests and some tools instead use perf_evlist__open() which passes instead evlist->cpus and evlist->threads. Make perf_evlist__open() follow the 'perf record' behaviour so that a consistent approach is taken. Signed-off-by: Adrian Hunter Cc: David Ahern Cc: Namhyung Kim Cc: Noel Grandin Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1452158050-28061-3-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evlist.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8fb88201b4303159638976c2c4c4769fc89d64d1 Author: John Garry Date: Mon Dec 21 19:35:08 2015 +0800 hisi_sas: Fix typo in setup_itct_v1_hw() We were doing a arithmetic comparison instead of logical shift by accident. Mis-programming the itct did not seem to make a difference to operation. Fixes: abda97c2fe874 ("hisi_sas: Add dev_found") Signed-off-by: John Garry Reviewed-by: Matthew R. Ochs Reviewed-by: Shane Seymour Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 8ceec33223f0cf8849d47dbe2203ce82c9875d09 Author: John Garry Date: Mon Dec 21 19:35:07 2015 +0800 hisi_sas: Fix v1 itct masks The mask fields are for quad-words, so add ULL suffix. Also unreferenced ITCT_HDR_BREAK_REPLY and ITCT_HDR_MAX_BURST are removed. Fixes: 50af155b6c ("hisi_sas: Add v1 hardware reg") Signed-off-by: John Garry Reviewed-by: Shane Seymour Reviewed-by: Matthew R. Ochs Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) commit e39b2bb3b72b999a04e8d295882be3255aca5ade Author: Danesh Petigara Date: Thu Jan 7 16:03:33 2016 -0800 libata: skip debounce delay on link resume The link resume logic uses a 200msec delay while debouncing the SControl register. The rationale behind that delay is to accommodate some PHYs that behave badly if their SStatus/ SControl registers are pounded immediately on resume. The Broadcom STB SATA PHY does not seem to have this issue. This patch introduces a new link flag that allows platforms to skip the debounce delay if it isn't needed. Signed-off-by: Danesh Petigara Signed-off-by: Florian Fainelli Signed-off-by: Tejun Heo drivers/ata/ahci_brcmstb.c | 1 + drivers/ata/libata-core.c | 3 ++- include/linux/libata.h | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) commit b4d629a39e104a8326d5b281ce07c21240c130c9 Author: Jeff Layton Date: Thu Jan 7 18:27:42 2016 -0500 locks: rename __posix_lock_file to posix_lock_inode ...a more descriptive name and we can drop the double underscore prefix. Signed-off-by: Jeff Layton Acked-by: "J. Bruce Fields" fs/locks.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit e24dadab08a2a38455434607f52b54a6dc990721 Author: Jeff Layton Date: Wed Jan 6 21:28:41 2016 -0500 locks: prink more detail when there are leaked locks Right now, we just get WARN_ON_ONCE, which is not particularly helpful. Have it dump some info about the locks and the inode to make it easier to track down leaked locks in the future. Signed-off-by: Jeff Layton Acked-by: "J. Bruce Fields" fs/locks.c | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) commit f27a0fe083bf46fef0d7045aa2e9a7e56e72d8d8 Author: Jeff Layton Date: Thu Jan 7 15:08:51 2016 -0500 locks: pass inode pointer to locks_free_lock_context ...so we can print information about it if there are leaked locks. Signed-off-by: Jeff Layton Acked-by: "J. Bruce Fields" fs/inode.c | 2 +- fs/locks.c | 4 +++- include/linux/fs.h | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) commit 1890910fd06fefbfa1cbeaf88357783914af71f6 Author: Jeff Layton Date: Wed Jan 6 21:26:10 2016 -0500 locks: sprinkle some tracepoints around the file locking code Add some tracepoints around the POSIX locking code. These were useful when tracking down problems when handling the race between setlk and close. Signed-off-by: Jeff Layton Acked-by: "J. Bruce Fields" fs/locks.c | 12 +++++-- include/trace/events/filelock.h | 77 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+), 3 deletions(-) commit 0752ba807b04ccd69cb4bc8bbf829a80ee208a3c Author: Jeff Layton Date: Fri Jan 8 07:30:43 2016 -0500 locks: don't check for race with close when setting OFD lock We don't clean out OFD locks on close(), so there's no need to check for a race with them here. They'll get cleaned out at the same time that flock locks are. Signed-off-by: Jeff Layton Acked-by: "J. Bruce Fields" fs/locks.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit ff3ce480e8b59fbc0f459476fe1b5451464592a5 Author: Bogicevic Sasa Date: Sun Dec 27 13:21:11 2015 -0800 PCI: Fix all whitespace issues Fix all whitespace issues (missing or needed whitespace) in all files in drivers/pci. Code is compiled with allyesconfig before and after code changes and objects are recorded and checked with objdiff and they are not changed after this commit. Signed-off-by: Bogicevic Sasa Signed-off-by: Bjorn Helgaas drivers/pci/access.c | 8 +- drivers/pci/host/pci-imx6.c | 2 +- drivers/pci/hotplug/acpi_pcihp.c | 10 +- drivers/pci/hotplug/acpiphp.h | 2 +- drivers/pci/hotplug/acpiphp_core.c | 14 +- drivers/pci/hotplug/acpiphp_glue.c | 2 +- drivers/pci/hotplug/acpiphp_ibm.c | 2 +- drivers/pci/hotplug/cpci_hotplug.h | 14 +- drivers/pci/hotplug/cpci_hotplug_core.c | 16 +- drivers/pci/hotplug/cpci_hotplug_pci.c | 10 +- drivers/pci/hotplug/cpcihp_generic.c | 12 +- drivers/pci/hotplug/cpcihp_zt5550.c | 14 +- drivers/pci/hotplug/cpqphp.h | 14 +- drivers/pci/hotplug/cpqphp_core.c | 32 +- drivers/pci/hotplug/cpqphp_ctrl.c | 200 ++++----- drivers/pci/hotplug/cpqphp_nvram.c | 92 ++-- drivers/pci/hotplug/cpqphp_pci.c | 84 ++-- drivers/pci/hotplug/cpqphp_sysfs.c | 6 +- drivers/pci/hotplug/ibmphp.h | 12 +- drivers/pci/hotplug/ibmphp_core.c | 30 +- drivers/pci/hotplug/ibmphp_ebda.c | 524 +++++++++++------------ drivers/pci/hotplug/ibmphp_hpc.c | 386 ++++++++--------- drivers/pci/hotplug/ibmphp_pci.c | 728 ++++++++++++++++---------------- drivers/pci/hotplug/ibmphp_res.c | 518 +++++++++++------------ drivers/pci/hotplug/pci_hotplug_core.c | 10 +- drivers/pci/hotplug/pciehp.h | 8 +- drivers/pci/hotplug/pciehp_core.c | 16 +- drivers/pci/hotplug/pcihp_skeleton.c | 24 +- drivers/pci/hotplug/rpaphp.h | 8 +- drivers/pci/hotplug/rpaphp_core.c | 2 +- drivers/pci/hotplug/rpaphp_pci.c | 2 +- drivers/pci/hotplug/rpaphp_slot.c | 2 +- drivers/pci/hotplug/sgi_hotplug.c | 6 +- drivers/pci/hotplug/shpchp.h | 10 +- drivers/pci/hotplug/shpchp_core.c | 28 +- drivers/pci/hotplug/shpchp_hpc.c | 2 +- drivers/pci/hotplug/shpchp_sysfs.c | 10 +- drivers/pci/pci.c | 2 +- drivers/pci/setup-bus.c | 2 +- 39 files changed, 1432 insertions(+), 1432 deletions(-) commit a333e4bf2556b93c908e56b39be7bbd555f1b6cc Author: Sasha Levin Date: Mon Nov 9 16:06:53 2015 -0500 fs/9p: use fscache mutex rather than spinlock We may sleep inside a the lock, so use a mutex rather than spinlock. Signed-off-by: Sasha Levin Signed-off-by: Eric Van Hensbergen fs/9p/cache.c | 8 ++++---- fs/9p/v9fs.h | 2 +- fs/9p/vfs_inode.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) commit 6ca92dd7aff899777a3081c5948409f4bdef7d38 Author: Danesh Petigara Date: Thu Jan 7 16:03:31 2016 -0800 ata: ahci_brcmstb: disable DIPM support The Broadcom STB SATA host controller does not support device initiated power management. Disable support for this feature so the driver never sends SETFEATURES commands to the device to enable/disable DIPM. Signed-off-by: Danesh Petigara Signed-off-by: Florian Fainelli Signed-off-by: Tejun Heo drivers/ata/ahci_brcmstb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6863caaf15fce962db0387e852b26d9fbf206cfe Author: Danesh Petigara Date: Thu Jan 7 16:03:30 2016 -0800 ata: ahci_brcmstb: enable support for ALPM Enable support for ALPM in the host controller's capabilities register. Also adjust the PLL timeout to give it enough time to lock when the port exits slumber mode. tj: minor style updates Signed-off-by: Danesh Petigara Signed-off-by: Florian Fainelli Signed-off-by: Tejun Heo drivers/ata/ahci_brcmstb.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) commit 14cbfbeb76540cc0c53fbb0ba34b3a4900ebe40f Author: Namhyung Kim Date: Thu Jan 7 20:41:53 2016 +0900 perf report: Show random usage tip on the help line Currently perf report only shows a help message "For a higher level overview, try: perf report --sort comm,dso" unconditionally (even if the sort keys were used). Add more help tips and show randomly. Load tips from ${prefix}/share/doc/perf-tip/tips.txt file. $ perf report | tail 0.10% swapper [kernel.vmlinux] [k] irq_exit 0.09% swapper [kernel.vmlinux] [k] flush_smp_call_function_queue 0.08% swapper [kernel.vmlinux] [k] native_write_msr_safe 0.03% swapper [kernel.vmlinux] [k] group_sched_in 0.01% perf [kernel.vmlinux] [k] native_write_msr_safe # # (Tip: Search options using a keyword: perf report -h ) # Signed-off-by: Namhyung Kim Acked-by: Ingo Molnar Cc: Andi Kleen Cc: David Ahern Cc: Jiri Olsa Cc: Masami Hiramatsu Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Wang Nan Link: http://lkml.kernel.org/r/1452166913-27046-1-git-send-email-namhyung@kernel.org [ Renamed it to perf_tip() and the parameter dirname to dirpath to fix the build on older distros ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Build | 1 + tools/perf/Documentation/tips.txt | 14 ++++++++++++++ tools/perf/Makefile.perf | 3 +++ tools/perf/builtin-report.c | 2 +- tools/perf/config/Makefile | 6 ++++++ tools/perf/perf.c | 4 ++++ tools/perf/util/util.c | 27 +++++++++++++++++++++++++++ tools/perf/util/util.h | 2 ++ 8 files changed, 58 insertions(+), 1 deletion(-) commit fc284be9d88528dd2a28d5471e40a6acde6c3036 Author: Namhyung Kim Date: Thu Jan 7 10:14:10 2016 +0100 perf hists: Export a couple of hist functions These are necessary for multi threaded sample processing: - hists__get__get_rotate_entries_in() - hists__collapse_insert_entry() - __hists__init() Signed-off-by: Namhyung Kim Cc: Adrian Hunter Cc: David Ahern Cc: Noel Grandin Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1452158050-28061-14-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/hist.c | 19 ++++++++++++------- tools/perf/util/hist.h | 5 +++++ 2 files changed, 17 insertions(+), 7 deletions(-) commit 21e6d8428664293f203be3004dcd8d70f68ebdb9 Author: Jiri Olsa Date: Thu Jan 7 10:14:09 2016 +0100 perf diff: Use perf_hpp__register_sort_field interface Using perf_hpp__register_sort_field interface instead of directly adding the entry. Signed-off-by: Jiri Olsa Acked-by: Namhyung Kim Cc: Adrian Hunter Cc: David Ahern Cc: Noel Grandin Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1452158050-28061-13-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-diff.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b97511c5bc94ef12613f485ab82f989df04088da Author: Jiri Olsa Date: Thu Jan 7 10:14:08 2016 +0100 perf tools: Add overhead/overhead_children keys defaults via string We currently set 'overhead' and 'overhead_children' as default sort keys within perf_hpp__init function by directly adding into the sort list. This patch adds 'overhead' and 'overhead_children' in text form into sort_keys and let them be added by standard sort dimension interface. We need to eliminate dirrect sort_list additions to be able to add support for hists specific sort keys. Signed-off-by: Jiri Olsa Acked-by: Namhyung Kim Cc: Adrian Hunter Cc: David Ahern Cc: Noel Grandin Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1452158050-28061-12-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/ui/hist.c | 12 ------------ tools/perf/util/sort.c | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 12 deletions(-) commit bb4ced29f5d5ff1d4d51b602dad34a0d15495a67 Author: Jiri Olsa Date: Thu Jan 7 10:14:07 2016 +0100 perf tools: Remove list entry from struct sort_entry It's no longer needed. Signed-off-by: Jiri Olsa Acked-by: Namhyung Kim Cc: Adrian Hunter Cc: David Ahern Cc: Noel Grandin Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1452158050-28061-11-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/sort.h | 2 -- 1 file changed, 2 deletions(-) commit 685c84154cef61dd7d961f36ab92f13c3ef5d354 Author: Jiri Olsa Date: Thu Jan 7 10:14:06 2016 +0100 perf tools: Include all tools/lib directory for tags/cscope/TAGS targets Besides lockdep we use all the 'tools/lib' code in perf, so include it completely in tags. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: David Ahern Cc: Namhyung Kim Cc: Noel Grandin Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1452158050-28061-10-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Makefile.perf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9cdbc409626b29ab30f06a6393db6763f040f753 Author: Jiri Olsa Date: Thu Jan 7 10:14:05 2016 +0100 perf script: Align event name properly Adding code to align event names, so we get aligned output in case of multiple events with different names. Before: $ perf script :13757 13757 163918.230829: cpu/mem-snp-none/P: ffff88085f20d010 :13757 13757 163918.230832: cpu/mem-loads,ldlat=30/P: 7f5a5f719f00 :13757 13757 163918.230835: cpu/mem-loads,ldlat=30/P: 7f5a5f719f00 :13758 13758 163918.230838: cpu/mem-snp-none/P: ffff88085f4ad810 :13758 13758 163918.154093: cpu/mem-stores/P: ffff88085bb53f28 :13757 13757 163918.155264: cpu/mem-snp-hitm/P: 601080 ... After: $ perf script :13757 13757 163918.228831: cpu/mem-snp-none/P: ffffffff81a841c0 :13757 13757 163918.228834: cpu/mem-loads,ldlat=30/P: 7f5a5f719f08 :13757 13757 163918.228837: cpu/mem-loads,ldlat=30/P: 7f5a5f719f08 :13758 13758 163918.228837: cpu/mem-snp-none/P: ffff88085f4ad800 :13758 13758 163918.154093: cpu/mem-stores/P: ffff88085bb53f28 :13757 13757 163918.155264: cpu/mem-snp-hitm/P: 601080 ... Signed-off-by: Jiri Olsa Acked-by: David Ahern Cc: Adrian Hunter Cc: Namhyung Kim Cc: Noel Grandin Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1452158050-28061-9-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-script.c | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) commit 2d7c03e6b0c604decae33b0ce03e69b79b2a39a1 Author: Wang Nan Date: Fri Jan 8 14:23:57 2016 +0000 perf tools: Add missing headers in perf's MANIFEST These lost headers are found in arm64 cross buildings, failing to build perf using tarballs generated using: $ make perf-targz-src-pkg Signed-off-by: Wang Nan Cc: Jiri Olsa Cc: Namhyung Kim Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1452263041-225488-3-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/MANIFEST | 2 ++ 1 file changed, 2 insertions(+) commit cbd08b7335c9d559f424dcef7bea333605597490 Author: Jiri Olsa Date: Thu Jan 7 10:14:04 2016 +0100 perf tools: Do not show trace command if it's not compiled in The trace command still appears in help message when you run simple 'perf' command. It's because the generate-cmdlist.sh does not care about the HAVE_LIBAUDIT_SUPPORT dependency of trace command and puts it into generated common_cmds array. Wrapping trace command under HAVE_LIBAUDIT_SUPPORT dependency, which will exclude it from common_cmds array if HAVE_LIBAUDIT_SUPPORT is not set. Signed-off-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Cc: Adrian Hunter Cc: David Ahern Cc: Namhyung Kim Cc: Noel Grandin Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1452158050-28061-8-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/command-list.txt | 2 +- tools/perf/util/generate-cmdlist.sh | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) commit 1e9abf8b03c8f9352f54171647296c41317679a4 Author: Namhyung Kim Date: Sun Nov 29 23:24:17 2015 +0900 perf report: Change default to use event group view The event group view feature is to see related events together. To use the group view, events should be recorded as a group with a dedicated syntax of surrounding events by braces (-e '{ evt1, evt2, ... }'). Also 'perf report' also requires the --group option to enable it. However it's almost always beneficial to use the group view to see the group events as it's more expressive. And I think it's more natural to see events together if they are recorded as a group. Thus this patch changes the default value to enable it. If users don't want to see like it and keep the original behavior, they can set the report.group config variable to false and/or use --no-group option in the 'perf report' command line. Requested-by: Ingo Molnar Signed-off-by: Namhyung Kim Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Taeung Song Link: http://lkml.kernel.org/r/1448807057-3506-1-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/symbol.c | 1 + 1 file changed, 1 insertion(+) commit 42b276a2351517409d55b1202a1fa8b05c0cdc99 Author: Namhyung Kim Date: Tue Jan 5 12:06:00 2016 +0900 perf top: Decay periods in callchains It missed to decay periods in callchains when decaying hist entries. This resulted in more than 100 percent overhead in callchains in the fractal style output. Reported-by: Arnaldo Carvalho de Melo Signed-off-by: Namhyung Kim Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1451963160-17196-1-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/callchain.c | 28 ++++++++++++++++++++++++++++ tools/perf/util/callchain.h | 1 + tools/perf/util/hist.c | 1 + 3 files changed, 30 insertions(+) commit 848c3920866fdb7b8b353408348df7929306e9be Author: Anil Veliyankara Madam Date: Thu Jan 7 21:18:52 2016 -0800 drivers: libata-core: Use usleep_range() instead of msleep() for short sleeps (<20 ms) Since msleep() may sleep longer than intended time for values less than 20ms, this patch allows the use of usleep_range for waits less that 20ms. usleep_range is a finer precision implementation of msleep and is designed to be a drop-in replacement for udelay where a precise sleep/busy-wait is unnecessary. More details can be found at http://lkml.org/lkml/2007/8/3/250 and in Documentation/timers/timers-howto.txt. This change has been done to improve the performace in PIO6 mode which is used by viking flash. Cc: xe-kernel@external.cisco.com Signed-off-by: Anil Veliyankara Madam Signed-off-by: Shikha Jain Signed-off-by: Tejun Heo drivers/ata/libata-core.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 915b0882c3108a21e9b3b5e176d3151ad522242d Author: Arnaldo Carvalho de Melo Date: Fri Jan 8 12:33:37 2016 -0300 tools lib: Move bitmap.[ch] from tools/perf/ to tools/{lib,include}/ So that lib/find_bit.c doesn't requires anything inside tools/perf/ Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: George Spelvin Cc: Namhyung Kim Cc: Rasmus Villemoes Cc: Wang Nan Cc: Yury Norov Link: http://lkml.kernel.org/n/tip-7lxe7jgohaac5faodndhdmvk@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/include/linux/bitmap.h | 68 ++++++++++++++++++++++++++++++++++ tools/lib/bitmap.c | 31 ++++++++++++++++ tools/perf/util/Build | 5 +++ tools/perf/util/bitmap.c | 31 ---------------- tools/perf/util/include/linux/bitmap.h | 68 ---------------------------------- tools/perf/util/python-ext-sources | 2 +- 6 files changed, 105 insertions(+), 100 deletions(-) commit 64af4e0da419ef9e9db0d34a3b5836adbf90a5e8 Author: Arnaldo Carvalho de Melo Date: Fri Jan 8 11:26:43 2016 -0300 tools lib: Sync tools/lib/find_bit.c with the kernel Need to move the bitmap.[ch] things from tools/perf/ to tools/lib, will be done in the next patches. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: George Spelvin Cc: Namhyung Kim Cc: Rasmus Villemoes Cc: Wang Nan Cc: Yury Norov Link: http://lkml.kernel.org/n/tip-5fys65wkd7gu8j7a7xgukc5t@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/lib/find_bit.c | 103 ++++++++++++++++----------------- tools/perf/util/include/linux/bitmap.h | 2 + 2 files changed, 51 insertions(+), 54 deletions(-) commit 552eb975b83756e3d95aeb5edaeb5c3c032b0021 Author: Arnaldo Carvalho de Melo Date: Fri Jan 8 10:46:52 2016 -0300 tools lib: Move find_next_bit.c to tools/lib/ The commit that introduced it should've moved it to the same place, plus the 'tools/' prefix, but instead moved it to a bogus tools/lib/util/ directory, being the only file there. Move it to tools/lib/find_bit.c, picking the name for the file where these routines live since: 8f6f19dd5143 ("lib: move find_last_bit to lib/find_next_bit.c") Next step is to make tools/lib/find_bit.c to differ from lib/find_bit.c just in removing what is not used by tools/. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: George Spelvin Cc: Namhyung Kim Cc: Rasmus Villemoes Cc: Wang Nan Cc: Yury Norov Link: http://lkml.kernel.org/n/tip-p391cex5mqvahp4pwrton87n@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/lib/find_bit.c | 89 ++++++++++++++++++++++++++++++++++++++ tools/lib/util/find_next_bit.c | 89 -------------------------------------- tools/perf/MANIFEST | 2 +- tools/perf/util/Build | 6 +-- tools/perf/util/python-ext-sources | 2 +- 5 files changed, 94 insertions(+), 94 deletions(-) commit 8083013fc3201b75535afc39338cc7d2cad32e37 Author: Michael S. Tsirkin Date: Thu Jan 7 19:55:24 2016 +0200 ld-version: Fix it on Fedora On Fedora 23, ld --version outputs: GNU ld version 2.25-15.fc23 But ld-version.sh fails to parse this, so e.g. mips build fails to enable VDSO, printing a warning that binutils >= 2.24 is required. To fix, teach ld-version to parse this format. Signed-off-by: Michael S. Tsirkin Cc: linux-kernel@vger.kernel.org Cc: Michal Marek Cc: linux-kbuild@vger.kernel.org Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/12023/ Signed-off-by: Ralf Baechle scripts/ld-version.sh | 2 ++ 1 file changed, 2 insertions(+) commit d9d8c4cf23e8badfa8d49fe66c6a49970f896689 Author: Dan Carpenter Date: Fri Jan 8 14:00:45 2016 +0300 drm: move MODULE_PARM_DESC to other file We moved the module options from drm_drv.c to drm_irq.c in 18882995713d ('drm: Move vblank related module options into drm_irq.c'). Let's move the MODULE_PARM_DESC()s as well so they're together. Signed-off-by: Dan Carpenter Link: http://patchwork.freedesktop.org/patch/msgid/20160108110045.GF32195@mwanda Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_drv.c | 4 ---- drivers/gpu/drm/drm_irq.c | 3 +++ 2 files changed, 3 insertions(+), 4 deletions(-) commit d9278b4c2c31603474eec19d9ea1dea6b3a81087 Author: Jani Nikula Date: Fri Jan 8 13:21:51 2016 +0200 drm/edid: index CEA/HDMI mode tables using the VIC Add a dummy entry to CEA/HDMI mode tables so they can be indexed directly using the VIC, avoiding a +1/-1 dance here and there. This adds clarity to the error checking for various functions that return the VIC on success and zero on failure; we can now explicitly check for 0 instead of just subtracting one from an unsigned type. Also add drm_valid_cea_vic() and drm_valid_hdmi_vic() helpers for checking valid VICs. v2: add drm_valid_cea_vic and drm_valid_hdmi_vic helpers (Ville) use { } instead of { 0 } for initializing the dummy modes Cc: Ville Syrjälä Cc: Alex Deucher Signed-off-by: Jani Nikula Reviewed-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1452252111-6439-1-git-send-email-jani.nikula@intel.com Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_edid.c | 94 ++++++++++++++++++++++++++-------------------- 1 file changed, 53 insertions(+), 41 deletions(-) commit 48f66c905a976bf0ff092fc24f08d9addd82a245 Author: Florian Westphal Date: Thu Jan 7 21:34:24 2016 +0100 netfilter: nft_ct: add byte/packet counter support If the accounting extension isn't present, we'll return a counter value of 0. Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso include/uapi/linux/netfilter/nf_tables.h | 2 ++ net/netfilter/nft_ct.c | 38 ++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) commit a1068045883ed4a18363a4ebad0c3d55e473b716 Author: Vinod Koul Date: Thu Jan 7 21:48:14 2016 +0530 ASoC: compress: Fix compress device direction check The detection of direction for compress was only taking into account codec capabilities and not CPU ones. Fix this by checking the CPU side capabilities as well Cc: Tested-by: Ashish Panwar Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/soc-compress.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) commit 15b914476bf24185534a59fb8e149d465ff79c59 Author: Subhransu S. Prusty Date: Wed Dec 9 21:46:10 2015 +0530 ASoC: hdac_hdmi: Use list to add pins and converters Future platforms may have a different set of pins/converters. So use lists to add pins and converters based on enumeration. Also it may be required to connect any converter to any pin dynamically as per different use cases (for example DP is connected to pin 6 on skylake board). So this will help in dynamically select and route. Fix the dai map as well to use the pin/cvt from list. Not enabling all dai maps for now. Signed-off-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/codecs/hdac_hdmi.c | 154 +++++++++++++++++++++++++++++-------------- 1 file changed, 106 insertions(+), 48 deletions(-) commit 44aab3e09ef947e546ee61c5082c41b86dd15e53 Author: Trond Myklebust Date: Fri Jan 8 08:12:47 2016 -0500 NFS: Fix a compile warning about unused variable in nfs_generic_pg_pgios() Signed-off-by: Trond Myklebust fs/nfs/pagelist.c | 3 --- 1 file changed, 3 deletions(-) commit 926ea40a7ee294767994b67eebff9fa015562902 Author: Trond Myklebust Date: Fri Jan 8 08:11:54 2016 -0500 NFSv4: Fix a compile warning about no prototype for nfs4_ioctl() Signed-off-by: Trond Myklebust fs/nfs/nfs4file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2d4a32602bc5d4d8f9a80c6b66a4e28d5f2d4798 Author: Zidan Wang Date: Fri Jan 8 16:57:02 2016 +0800 ASoC: wm8960: boost switch should be closed when using L/RINPUT1 L/RINPUT1 can line to Left/Right Boost Mixer through boost switch. If boost switch is open, there will be no voice when using L/RINPUT1. Signed-off-by: Zidan Wang Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8960.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit defbf708baf2a4cc4421699d02b57d7c3bb728b0 Author: Zidan Wang Date: Fri Jan 8 16:57:01 2016 +0800 ASoC: wm8960: add DAC mono mix kcontrol In normal operation, the left and right channel digital audio data is converted to analogue in two separate DACs. There is a mono-mix mode where the two audio channels are mixed together digitally and then converted to analogue using only one DAC, while the other DAC is switched off. The mono-mix signal can be selected to appear on both analogue output channels. The mono mix is automatically attenuated by 6dB to prevent clipping. Signed-off-by: Zidan Wang Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8960.c | 3 +++ 1 file changed, 3 insertions(+) commit 5307246015bceb2758f1eee078c6bdc8545ac91f Author: Subhransu S. Prusty Date: Wed Dec 9 21:46:09 2015 +0530 ASoC: hdac_hdmi: Fix to warn instead of err for no connected nids It is possible that some pin widget may return with no converter connected. So don't throw error if none are found to be connected. Instead print a warning and continue. Signed-off-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/codecs/hdac_hdmi.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 8caad1da223c361e2804b76d68405b1abe7886ff Author: Dan Carpenter Date: Fri Jan 8 13:48:51 2016 +0300 spi: loopback: fix typo in MODULE_PARM_DESC There should be an 's' on "dump_message" so it matches the module_param. Fixes: 84e0c4e5e2c4 ('spi: add loopback test driver to allow for spi_master regression tests') Signed-off-by: Dan Carpenter Signed-off-by: Mark Brown drivers/spi/spi-loopback-test.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 43c555ca4e7e1521ca500db7e372f67abb1378a2 Author: Sjoerd Simons Date: Fri Jan 8 13:16:46 2016 +0100 ARM: multi_v7_defconfig: Add rockchip audio support As the rockchip SPDIF driver landed for 4.4 and the required clock patches to make it work properly are scheduled for the 4.5 merge window it seems time to support for audio device found on rockchip boards in the defconfig as well. Signed-off-by: Sjoerd Simons Acked-by: Heiko Stuebner Signed-off-by: Arnd Bergmann arch/arm/configs/multi_v7_defconfig | 5 +++++ 1 file changed, 5 insertions(+) commit ce1e7989d989e36ee3b032d46aab28b7d5e30428 Author: Florian Westphal Date: Fri Jan 8 10:29:12 2016 +0100 netfilter: nft_byteorder: provide 64bit le/be conversion Needed to convert the (64bit) conntrack counters to BE ordering. Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso net/netfilter/nft_byteorder.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit e6d8ecac9e68265aee9be711c5bd29406129666f Author: Carlos Falgueras García Date: Tue Jan 5 14:03:32 2016 +0100 netfilter: nf_tables: Add new attributes into nft_set to store user data. User data is stored at after 'nft_set_ops' private data into 'data[]' flexible array. The field 'udata' points to user data and 'udlen' stores its length. Add new flag NFTA_SET_USERDATA. Signed-off-by: Carlos Falgueras García Signed-off-by: Pablo Neira Ayuso include/net/netfilter/nf_tables.h | 4 ++++ include/uapi/linux/netfilter/nf_tables.h | 2 ++ net/netfilter/nf_tables_api.c | 21 ++++++++++++++++++++- 3 files changed, 26 insertions(+), 1 deletion(-) commit eb075954e9fde114f57adc39a9ea6d379c13f81e Author: Ken-ichirou MATSUZAWA Date: Tue Jan 5 09:34:34 2016 +0900 netfilter: nfnetlink_log: just returns error for unknown command This patch stops processing options for unknown command. Signed-off-by: Ken-ichirou MATSUZAWA Signed-off-by: Pablo Neira Ayuso net/netfilter/nfnetlink_log.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 71b2e5f5ca3b163b90e487a96fd0cabbaf16792b Author: Ken-ichirou MATSUZAWA Date: Tue Jan 5 09:32:59 2016 +0900 netfilter: nfnetlink_queue: autoload nf_conntrack_netlink module NFQA_CFG_F_CONNTRACK config flag This patch enables to load nf_conntrack_netlink module if NFQA_CFG_F_CONNTRACK config flag is specified. Signed-off-by: Ken-ichirou MATSUZAWA Signed-off-by: Pablo Neira Ayuso net/netfilter/nfnetlink_queue.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 21c3c971d1eb5d5598ddb1eda2fc3e4d2c992182 Author: Ken-ichirou MATSUZAWA Date: Tue Jan 5 09:31:40 2016 +0900 netfilter: nfnetlink_queue: just returns error for unknown command This patch stops processing options for unknown command. Signed-off-by: Ken-ichirou MATSUZAWA Signed-off-by: Pablo Neira Ayuso net/netfilter/nfnetlink_queue.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 17bc6b4884340b045e779be38ba9f574256866a2 Author: Ken-ichirou MATSUZAWA Date: Tue Jan 5 09:29:54 2016 +0900 netfilter: nfnetlink_queue: don't handle options after unbind This patch stops processing after destroying a queue instance. Signed-off-by: Ken-ichirou MATSUZAWA Signed-off-by: Pablo Neira Ayuso net/netfilter/nfnetlink_queue.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 60d2c7f9ab1cac8b2d44307b660eb7813091dbf0 Author: Ken-ichirou MATSUZAWA Date: Tue Jan 5 09:28:05 2016 +0900 netfilter: nfnetlink_queue: validate dependencies to avoid breaking atomicity Check that dependencies are fulfilled before updating the queue instance, otherwise we can leave things in intermediate state on errors in nfqnl_recv_config(). Signed-off-by: Ken-ichirou MATSUZAWA Signed-off-by: Pablo Neira Ayuso net/netfilter/nfnetlink_queue.c | 72 ++++++++++++++++++----------------------- 1 file changed, 32 insertions(+), 40 deletions(-) commit e19dcdeb3527e996a96ea49d86cccce768b1079a Author: Mark Rustad Date: Wed Dec 9 14:55:37 2015 -0800 ixgbe: Make ATR recognize IPv6 extended headers Right now ATR is not handling IPv6 extended headers, so ATR is not being performed on such packets. Fix that by skipping extended headers when they are present. This also fixes a problem where the ATR code was not checking that the inner protocol was actually TCP before setting up the signature rules. Since the protocol check is intimately involved with the extended header processing as well, this all gets fixed together. Signed-off-by: Mark Rustad Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 47 +++++++++++++++++++++------ 1 file changed, 37 insertions(+), 10 deletions(-) commit 8b75451be1fc05b6ee3f9d0eaea0006d60caff89 Author: Neerav Parikh Date: Tue Dec 8 22:13:58 2015 -0800 ixgbe: Fix MDD events generated when FCoE+SRIOV are enabled When FCoE is enabled with SR-IOV on the X550 NIC the hardware generates MDD events. This patch fixes these by setting the expected values in the Tx context descriptors for FCoE/FIP frames and adding a flush after writing the RDLEN register. Signed-off-by: Neerav Parikh Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c | 5 ++++- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 3 +++ drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) commit b262a9a772eae649159fd2480992713a2dd2b3d3 Author: Usha Ketineni Date: Tue Dec 8 04:01:18 2015 -0800 ixgbe: Fix to get FDMI HBA attributes information with X550 Check whether the FCOE support is enabled for the devices to get the FDMI HBA attributes information instead of checking each device id. Also, add Model string information for X550. Signed-off-by: Usha Ketineni Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit d469251bfd06d15289c9dd5dd60b8ebf65785b03 Author: Mark Rustad Date: Fri Dec 4 11:26:43 2015 -0800 ixgbe: Correct handling of any outer UDP checksum setting If an outer UDP checksum is set, pass the skb up with CHECKSUM_NONE so that the stack will check the checksum. Do not increment an error counter, because we don't know that there is an actual error. Signed-off-by: Mark Rustad Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0e4d422f5f7249324ac8d1b8e12772e530787a66 Author: Emil Tantilov Date: Thu Dec 3 15:20:06 2015 -0800 ixgbe: do not call check_link for ethtool in ixgbe_get_settings() In ixgbe_get_settings() the link status and speed of the interface are determined based on a read from the LINKS register via the call to mac.ops.check.link(). This can cause issues where external drivers may end up with unknown speed when calling ethtool_get_setings(). Instead of calling the mac.ops.check_link() we can report the speed from the adapter structure which is populated by the driver. Signed-off-by: Emil Tantilov Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit cb78cf12d6e90f57f6e7d090867ef19b6a189dde Author: Vasu Dev Date: Mon Nov 23 10:31:25 2015 -0800 ixgbe: fix broken PFC with X550 PFC is configuration is skipped for X550 devices due to a incorrect device id check, fixing that to include X550 PFC configuration. Signed-off-by: Vasu Dev Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82599.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit f10166aba2def9bc6443290231c60f7e2f70129b Author: Vasu Dev Date: Mon Nov 23 10:31:01 2015 -0800 ixgbe: use correct FCoE DDP max check Use fcoe_ddp_xid from netdev as this is correctly set for different device IDs to avoid DDP skip error on X550 as "xid=0x20b out-of-range" Signed-off-by: Vasu Dev Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3efcb86e2da69989827066c231edb30ec10de932 Author: Vasu Dev Date: Mon Nov 23 10:30:51 2015 -0800 ixgbe: Fill at least min credits to a TC credit refills Currently credit_refill and credit_max could be zero for a TC and that is causing Tx hang for CEE mode configuration, so to fix that have at min credit assigned to a TC and that is as what IEEE mode already does. Change-ID: If652c133093a21e530f4e9eab09097976f57fb12 Signed-off-by: Vasu Dev Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit d5e2c954d3f56388b45879d3579f43960117a1f2 Author: Andre Przywara Date: Mon Jan 4 14:50:33 2016 +0000 arm: multi_v7_defconfig: Add virtio drivers To make multi_v7_defconfig really "multi", let's add virtio drivers to allow booting a default kernel as a KVM/QEMU guest. MACH_VIRT is already defined, so we just add VIRTIO_BLK, VIRTIO_NET and VIRTIO_CONSOLE to actually make this kernel useful in a guest. Signed-off-by: Andre Przywara Signed-off-by: Arnd Bergmann arch/arm/configs/multi_v7_defconfig | 8 ++++++++ 1 file changed, 8 insertions(+) commit 0c6623e35992c08d0462504253c669363d3f7ccb Author: Ilya Ledvich Date: Tue Dec 22 11:10:59 2015 +0200 ARM: dts: compulab: add new board description Add description for newly introduced Compulab devices: - CL-SOM-iMX7 - SBC-iMX7 Signed-off-by: Ilya Ledvich Acked-by: Rob Herring Signed-off-by: Arnd Bergmann .../devicetree/bindings/arm/compulab-boards.txt | 24 ++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) commit de2dbca289da0740c8887259b55cd9866c39833a Author: Shawn Lin Date: Mon Jan 4 11:18:56 2016 +0800 ARM: zx_defconfig: remove CONFIG_MMC_DW_IDMAC dw_mmc driver never use this macro, so remove it from zx_defconfig Signed-off-by: Shawn Lin Reviewed-by: Jun Nie Signed-off-by: Arnd Bergmann arch/arm/configs/zx_defconfig | 1 - 1 file changed, 1 deletion(-) commit 07ebfa59b9db40ae29fbf2ef24ba7dc5fa8a5dad Author: Linus Walleij Date: Tue Jan 5 15:02:08 2016 +0100 ARM: versatile: add the syscon LEDs to the DT The device tree version of Versatile AP/PB never had LED support so we are missing LEDs from our hardware boards. Add this as syscon LEDs like we did for Integrator and Juno. We need to spawn devices in the syscon with "simple-mfd" for this to work. Signed-off-by: Linus Walleij Signed-off-by: Arnd Bergmann arch/arm/boot/dts/versatile-ab.dts | 62 +++++++++++++++++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) commit 5255a847c30f309258325f5ce16f7ba35c04b2cd Author: Linus Walleij Date: Tue Jan 5 15:02:09 2016 +0100 ARM: versatile: enable the right LEDs The Versatile now only has device tree boot support, and the device tree version does not support CONFIG_LEDS_VERSATILE. Instead select CONFIG_LEDS_SYSCON and MFD_SYSCON, so we can get LEDs support from the same generic driver that drives most other ARM reference boards. Signed-off-by: Linus Walleij Signed-off-by: Arnd Bergmann arch/arm/configs/versatile_defconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 3168eb330b867f77238d68421c00e5b119f0609d Author: Robert Jarzmik Date: Sat Jan 2 21:00:57 2016 +0100 ARM: pxa: add defconfig covering all the boards Add a defconfig covering all known pxa board, ie. all selectable machine files in arch/arm/mach-pxa/*.c. This defconfig was built by doing : - aggregation of all known defconfigs by cat am200epdkit_defconfig cm_x2xx_defconfig cm_x300_defconfig colibri_pxa270_defconfig colibri_pxa300_defconfig corgi_defconfig em_x270_defconfig eseries_pxa_defconfig ezx_defconfig h5000_defconfig imote2_defconfig lpd270_defconfig lubbock_defconfig magician_defconfig mainstone_defconfig multi_v7_defconfig palmz72_defconfig pcm027_defconfig pxa255-idp_defconfig pxa3xx_defconfig raumfeld_defconfig spitz_defconfig trizeps4_defconfig viper_defconfig xcep_defconfig zeus_defconfig - manual make menuconfig to ensure : - all pxa implementation were selected - all drivers were transformed into modules rather than builtin => as a consequence this single kernel will rely on an initramfs => as kernel size matters on pxa, each machine can take the subset of modules required for it to work - all missed configurations are selected verified by : => grep -i pxa .config | grep "is not set" => this should only show the left on purpose options (either not selectable or sharpsl exception below) - CONFIG_PXA_SHARPSL was disabled This breaks the boot very early on any non Sharp platform, see head-sharpsl.S This defconfig was tested as booting up to the login phase on : - lubbock (pxa25x) - mainstone (pxa27x) - zylonite (pxa3xx) The completion of this work will require to : - parse manually all the arch/arm/mach-pxa/*c files, look for all platform devices added, and verify they are all in pxa_defconfig - do the same to ensure all pxa specific drivers (leds, gpio, ...) are included Signed-off-by: Robert Jarzmik Signed-off-by: Arnd Bergmann arch/arm/configs/pxa_defconfig | 783 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 783 insertions(+) commit 3c81e4e60a627afb7ac7b8dc855a88b02d9f0cca Merge: 03b9ee4 e9c478a Author: Arnd Bergmann Date: Fri Jan 8 11:43:57 2016 +0100 Merge tag 'meson-for-4.5/dts' of https://github.com/carlocaione/linux-meson into next/dt Merge "Amlogic DT changes for 4.5" from Carlo Caione: This pull request includes the Amlogic Meson8b DTS changes for v4.5 * tag 'meson-for-4.5/dts' of https://github.com/carlocaione/linux-meson: ARM: dts: meson8b: Add watchdog node Documentation: watchdog: Add new bindings for meson8b ARM: meson: Add status LED for Odroid-C1 commit 76833559eb9d0c8f8e4481ec82216609a91956c7 Author: Srinivas Pandruvada Date: Mon Dec 28 07:01:31 2015 -0800 HID: sensor-hub: Add quirk for Lenovo Yoga 900 with ITE Chips This needs same quirk as applied to other YOGA sensor hubs. Refer to commit 21589ebda681 ("HID: sensor-hub: Add in quirk for Lenovo Yogas with ITE") Signed-off-by: Srinivas Pandruvada Signed-off-by: Jiri Kosina drivers/hid/hid-ids.h | 1 + drivers/hid/hid-sensor-hub.c | 3 +++ 2 files changed, 4 insertions(+) commit 84f6ea1d86bfe578d2690db1631b9863a904a0df Author: Kristian Evensen Date: Wed Jan 6 15:08:53 2016 +0100 HID: Add new PID for Microchip Pick16F1454 There seems to be a new version of the Microchip Pick16F1454 with a different PID (0xf2f7). This device should also be ignored by the HID driver. The PID was observed with the second version of the Yepkit Ykush USB hub. Signed-off-by: Kristian Evensen Signed-off-by: Jiri Kosina drivers/hid/hid-core.c | 1 + drivers/hid/hid-ids.h | 1 + 2 files changed, 2 insertions(+) commit 56028154caafab34063324916095618b2cd30c73 Author: Jesse Brandeburg Date: Wed Dec 9 15:50:22 2015 -0800 i40e: remove forever unused ID Somehow an ID that has never been productized is in the code. There are no plans to use it, so just get rid of it. Change-ID: I59117d48ea9ee0360b0fe33833ac8092f8a24b4c Signed-off-by: Jesse Brandeburg Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_common.c | 1 - drivers/net/ethernet/intel/i40e/i40e_devids.h | 1 - drivers/net/ethernet/intel/i40e/i40e_main.c | 1 - drivers/net/ethernet/intel/i40evf/i40e_common.c | 1 - drivers/net/ethernet/intel/i40evf/i40e_devids.h | 1 - 5 files changed, 5 deletions(-) commit 857942fd1aa15edf7356a4a4bad5369c8e70a633 Author: Anjali Singhai Jain Date: Wed Dec 9 15:50:21 2015 -0800 i40e: Fix Rx hash reported to the stack by our driver If the driver calls skb_set_hash even with a zero hash, that indicates to the stack that the hash calculation is offloaded in hardware. So the Stack doesn't do a SW hash which is required for load balancing if the user decides to turn of rx-hashing on our device. This patch fixes the path so that we do not call skb_set_hash if the feature is disabled. Change-ID: Ic4debfa4ff91b5a72e447348a75768ed7a2d3e1b Signed-off-by: Anjali Singhai Jain Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_txrx.c | 54 ++++++++++++++------------- drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 54 ++++++++++++++------------- 2 files changed, 58 insertions(+), 50 deletions(-) commit 0bbfe28ad0fdc11dddae5fe6f6e4e91b7be06395 Author: Jason Gerecke Date: Wed Jan 6 13:25:53 2016 -0800 HID: wacom: Use correct report to query pen ID from INTUOSHT2 devices Unlike other tablets which are compatible with the wacom_intuos_irq handler, INTUOSHT2 devices provide pen ID with report ID 8 instead of 5. To ensure wacom_intuos_schedule_prox_event works as intended for these tablets, we must be sure it uses the correct report ID in this case. Signed-off-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_wac.c | 6 +++++- drivers/hid/wacom_wac.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) commit b499ffb0a22c6cd3762b44fd6489f7384f40437d Author: Sowmini Varadhan Date: Mon Dec 7 15:06:34 2015 -0500 i40e: Look up MAC address in Open Firmware or IDPROM This is the i40e equivalent of commit c762dff24c06 ("ixgbe: Look up MAC address in Open Firmware or IDPROM"). As with that fix, attempt to look up the MAC address in Open Firmware on systems that support it, and use IDPROM on SPARC if no OF address is found. In the case of the i40e there is an assumption that the default mac address has already been set up as the primary mac filter on probe, so if this filter is obtained from the Open Firmware or IDPROM, an explicit write is needed via i40e_aq_mac_address_write() and i40e_aq_add_macvlan() invocation. The I40E_FLAG_PF_MAC flag in the platform-private i40e_pf structure tracks whether a platform-specific mac address was found, in which case calls to i40e_aq_mac_address_write() and i40e_aq_add_macvlan() will be triggered. Reviewed-by: Martin K. Petersen Signed-off-by: Sowmini Varadhan Acked-by: Shannon Nelson Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e.h | 1 + drivers/net/ethernet/intel/i40e/i40e_main.c | 90 +++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+) commit efd8e39acc51cafe7dbc656ba63eea9034238ee7 Author: Mitch Williams Date: Tue Dec 22 15:34:43 2015 -0800 i40e: allow zero MAC address for VFs Allow the user to specify a zero MAC address for VFs. This removes the existing MAC address and allows the VF to use a random address. Libvirt does this normally when removing a VF from a VM. Signed-off-by: Mitch Williams Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 2d166c304065c57925278a69309f15a6a65eff97 Author: Mitch Williams Date: Tue Dec 22 15:34:42 2015 -0800 i40e: change log messages and error returns When VFs are being reset, there is a brief window of time when they cannot be configured because they don't have a VSI to configure. If a script is quick, it can fall through that window. To avoid defenestration, log a useful error message and return -EAGAIN. Signed-off-by: Mitch Williams Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 27 ++++++++++++++-------- 1 file changed, 18 insertions(+), 9 deletions(-) commit 42e0ed0d454c6ad7be67f2c18828391ecfdc9a62 Author: Hante Meuleman Date: Tue Jan 5 11:05:50 2016 +0100 brcmfmac: Do not handle link downs for ibss. Sometimes on module reload and reconnect to ibss a deauth from other station can be received. This is treated as a link down but for ibss this is wrong. It will close the interface and no data is possible. Ignore the firmware generated link down events in ibss mode, as ibss is always teared down by cfg80211. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 5ce96c0808ac8ad82f70b156ceb77ec2008c82e3 Author: Arend van Spriel Date: Tue Jan 5 11:05:49 2016 +0100 brcmfmac: use jiffies for timeout in btcoex The btcoex uses a timeout which was in milliseconds and got converted to jiffies upon using timer api. Instead, convert it to jiffies and treat it as such further. Reviewed-by: Hante Meuleman Reviewed-by: Franky (Zhenhui) Lin Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/broadcom/brcm80211/brcmfmac/btcoex.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) commit 63ce3d5db09324b56b739bfde5704799b0d6fd89 Author: Arend van Spriel Date: Tue Jan 5 11:05:48 2016 +0100 brcmfmac: use msecs_to_jiffies() in macro definitions Instead to having macro definition for millisecond timeout have the definition directly in jiffies. This makes the unit of the value immediately clear and may result in code that is bit more compact. Reviewed-by: Hante Meuleman Reviewed-by: Franky (Zhenhui) Lin Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo .../wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 2 +- .../wireless/broadcom/brcm80211/brcmfmac/cfg80211.h | 2 ++ .../net/wireless/broadcom/brcm80211/brcmfmac/core.c | 4 ++-- .../net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c | 4 ++-- drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c | 18 +++++++++--------- .../net/wireless/broadcom/brcm80211/brcmfmac/pcie.c | 7 +++---- .../net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 18 ++++++++---------- .../net/wireless/broadcom/brcm80211/brcmfmac/sdio.h | 4 ++-- drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c | 5 ++--- 9 files changed, 31 insertions(+), 33 deletions(-) commit 4011fc49969019eb5e20824285831d873e885f77 Author: Arend van Spriel Date: Tue Jan 5 11:05:47 2016 +0100 brcmfmac: change brcmf_sdio_wd_timer() prototype The function brcmf_sdio_wd_timer() has wdtick parameter. However, it is only called with two values and as such the parameter is replaced with boolean value indicating the timer should be active or not. Reviewed-by: Hante Meuleman Reviewed-by: Franky (Zhenhui) Lin Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo .../wireless/broadcom/brcm80211/brcmfmac/sdio.c | 33 ++++++++-------------- .../wireless/broadcom/brcm80211/brcmfmac/sdio.h | 2 +- 2 files changed, 13 insertions(+), 22 deletions(-) commit 5419f7f17d5b70a9b65ec849da69bb5f7253b863 Author: Hante Meuleman Date: Tue Jan 5 11:05:46 2016 +0100 brcmfmac: Reshuffle functions to avoid forward declarations Function prototype forward declarations are to be avoided. This patch shuffles some of the functions so the forward declarations can be removed. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo .../broadcom/brcm80211/brcmfmac/cfg80211.c | 1090 ++++++++++---------- 1 file changed, 537 insertions(+), 553 deletions(-) commit 3021ad9a4f009265e6063e617fb91306980af16c Author: Hante Meuleman Date: Tue Jan 5 11:05:45 2016 +0100 brcmfmac: Add wowl net detect support With wowl net detect it becomes possible to scan for specific ssids and wakeup once found. Reviewed-by: Arend Van Spriel Reviewed-by: Franky (Zhenhui) Lin Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo .../broadcom/brcm80211/brcmfmac/cfg80211.c | 142 +++++++++++++++++++-- .../broadcom/brcm80211/brcmfmac/cfg80211.h | 27 +++- .../broadcom/brcm80211/brcmfmac/fwil_types.h | 2 + 3 files changed, 155 insertions(+), 16 deletions(-) commit ff1cab374ad98f4b9f408525ca9c08992b4ed784 Author: Geert Uytterhoeven Date: Tue Jan 5 19:36:37 2016 +0100 serial: sh-sci: Remove cpufreq notifier to fix crash/deadlock The BSP team noticed that there is spin/mutex lock issue on sh-sci when CPUFREQ is used. The issue is that the notifier function may call mutex_lock() while the spinlock is held, which can lead to a BUG(). This may happen if CPUFREQ is changed while another CPU calls clk_get_rate(). Taking the spinlock was added to the notifier function in commit e552de2413edad1a ("sh-sci: add platform device private data"), to protect the list of serial ports against modification during traversal. At that time the Common Clock Framework didn't exist yet, and clk_get_rate() just returned clk->rate without taking a mutex. Note that since commit d535a2305facf9b4 ("serial: sh-sci: Require a device per port mapping."), there's no longer a list of serial ports to traverse, and taking the spinlock became superfluous. To fix the issue, just remove the cpufreq notifier: 1. The notifier doesn't work correctly: all it does is update stored clock rates; it does not update the divider in the hardware. The divider will only be updated when calling sci_set_termios(). I believe this was broken back in 2004, when the old drivers/char/sh-sci.c driver (where the notifier did update the divider) was replaced by drivers/serial/sh-sci.c (where the notifier just updated port->uartclk). Cfr. full-history-linux commits 6f8deaef2e9675d9 ("[PATCH] sh: port sh-sci driver to the new API") and 3f73fe878dc9210a ("[PATCH] Remove old sh-sci driver"). 2. On modern SoCs, the sh-sci parent clock rate is no longer related to the CPU clock rate anyway, so using a cpufreq notifier is futile. Signed-off-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sh-sci.c | 42 ------------------------------------------ 1 file changed, 42 deletions(-) commit f658f21c65d1d8a8c93d1a6505e86c285bb7897e Merge: c93a599 192d367 Author: Greg Kroah-Hartman Date: Thu Jan 7 21:04:46 2016 -0800 Merge branch 'scif-clk-sck-brg-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into tty-next Geert writes: Summary: - Clean up the naming of clocks in the sh-sci driver and its DT bindings, - Add support for the optional external clock on (H)SCI(F), where this pin can serve as a clock input, - Add support for the optional clock sources for the Baud Rate Generator for External Clock (BRG), as found on some SCIF variants and on HSCIF. commit d63c7dd5bcb9441af0526d370c43a65ca2c980d9 Author: Insu Yun Date: Wed Jan 6 12:44:01 2016 -0500 ipr: Fix out-of-bounds null overwrite Return value of snprintf is not bound by size value, 2nd argument. (https://www.kernel.org/doc/htmldocs/kernel-api/API-snprintf.html). Return value is number of printed chars, can be larger than 2nd argument. Therefore, it can write null byte out of bounds ofbuffer. Since snprintf puts null, it does not need to put additional null byte. Signed-off-by: Insu Yun Reviewed-by: Shane Seymour Signed-off-by: Martin K. Petersen drivers/scsi/ipr.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 9055082fb100cc66e20c048251d05159f5f2cfba Author: Mike Christie Date: Thu Jan 7 16:34:05 2016 -0600 scsi: add Synology to 1024 sector blacklist Another iscsi target that cannot handle large IOs, but does not tell us a limit. The Synology iSCSI targets report: Block limits VPD page (SBC): Write same no zero (WSNZ): 0 Maximum compare and write length: 0 blocks Optimal transfer length granularity: 0 blocks Maximum transfer length: 0 blocks Optimal transfer length: 0 blocks Maximum prefetch length: 0 blocks Maximum unmap LBA count: 0 Maximum unmap block descriptor count: 0 Optimal unmap granularity: 0 Unmap granularity alignment valid: 0 Unmap granularity alignment: 0 Maximum write same length: 0x0 blocks and the size of the command it can handle seems to depend on how much memory it can allocate at the time. This results in IO errors when handling large IOs. This patch just has us use the old 1024 default sectors for this target by adding it to the scsi blacklist. We do not have good contacs with this vendors, so I have not been able to try and fix on their side. I have posted this a long while back, but it was not merged. This version just fixes it up for merge/patch failures in the original version. Reported-by: Ancoron Luciferis Reported-by: Michael Meyers Signed-off-by: Mike Christie Signed-off-by: Martin K. Petersen Cc: # 4.1+ drivers/scsi/scsi_devinfo.c | 1 + 1 file changed, 1 insertion(+) commit 7f3697e24dc3820b10f445a4a7d914fc356012d1 Author: Jeff Layton Date: Thu Jan 7 16:38:10 2016 -0500 locks: fix unlock when fcntl_setlk races with a close Dmitry reported that he was able to reproduce the WARN_ON_ONCE that fires in locks_free_lock_context when the flc_posix list isn't empty. The problem turns out to be that we're basically rebuilding the file_lock from scratch in fcntl_setlk when we discover that the setlk has raced with a close. If the l_whence field is SEEK_CUR or SEEK_END, then we may end up with fl_start and fl_end values that differ from when the lock was initially set, if the file position or length of the file has changed in the interim. Fix this by just reusing the same lock request structure, and simply override fl_type value with F_UNLCK as appropriate. That ensures that we really are unlocking the lock that was initially set. While we're there, make sure that we do pop a WARN_ON_ONCE if the removal ever fails. Also return -EBADF in this event, since that's what we would have returned if the close had happened earlier. Cc: Alexander Viro Cc: Fixes: c293621bbf67 (stale POSIX lock handling) Reported-by: Dmitry Vyukov Signed-off-by: Jeff Layton Acked-by: "J. Bruce Fields" fs/locks.c | 51 ++++++++++++++++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 21 deletions(-) commit 35f8679f577ae5673a778598bcbe7b45cbec8923 Author: Dmitry Torokhov Date: Thu Jan 7 15:06:51 2016 -0800 Input: omap-keypad - remove dead check Commit da1f026b532ce944d74461497dc6d8c16456466e ("Keyboard: omap-keypad: use matrix_keypad.h") switched the driver to use matrix keypad infrastructure, which made array of keycodes to be unsigned short, and caused the test for negativity never trigger. This leads to the following static checker warning: drivers/input/keyboard/omap-keypad.c:158 omap_kp_tasklet() warn: 'keycodes[]' is never negative. Given that we did not care about this check for a few years already let's simply remove it. Reported-by: Dan Carpenter Acked-by: Aaro Koskinen Acked-by: Tony Lindgren Signed-off-by: Dmitry Torokhov drivers/input/keyboard/omap-keypad.c | 8 -------- 1 file changed, 8 deletions(-) commit 3b7474ec0d7150044f91e3af460067f79d466522 Author: Dave Gerlach Date: Thu Jan 7 11:13:34 2016 -0800 Input: ti_am335x_tsc - fix HWPEN interrupt handling Remove write to REG_IRQCLR and REG_IRQWAKEUP in interrupt handler for IRQENB_HW_PEN as the resume handler should and does clear REG_IRQWAKEUP. IRQENB_HW_PEN bit is set in irqclr so that all interrupts get cleared later so let IRQENB_HW_PEN be cleared by that. Without this patch wakeup events from TSC_ADC do not work because pending interrupts in TSC_ADC were causing HW_PEN interrupt, needed for wake from suspend modes, to get disabled immediately by IRQ handler after being enabled and preventing wake from happening. Signed-off-by: Dave Gerlach Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/ti_am335x_tsc.c | 2 -- 1 file changed, 2 deletions(-) commit ed6dc538e5a36a331b6256d54f435c80f6715460 Author: Tomas Winkler Date: Thu Jan 7 14:46:38 2016 +0200 mei: fix fasync return value on error fasync should return a negative value on error and not poll mask POLLERR. Cc: # 4.3+ Cc: Al Viro Reported-by: Al Viro Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/main.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit e35438196c6a1d8b206471d51e80c380e80e047b Author: Dave Chinner Date: Fri Jan 8 11:28:49 2016 +1100 xfs: bmapbt checking on debug kernels too expensive For large sparse or fragmented files, checking every single entry in the bmapbt on every operation is prohibitively expensive. Especially as such checks rarely discover problems during normal operations on high extent coutn files. Our regression tests don't tend to exercise files with hundreds of thousands to millions of extents, so mostly this isn't noticed. However, trying to run things like xfs_mdrestore of large filesystem dumps on a debug kernel quickly becomes impossible as the CPU is completely burnt up repeatedly walking the sparse file bmapbt that is generated for every allocation that is made. Hence, if the file has more than 10,000 extents, just don't bother with walking the tree to check it exhaustively. The btree code has checks that ensure that the newly inserted/removed/modified record is correctly ordered, so the entrie tree walk in thses cases has limited additional value. Signed-off-by: Dave Chinner Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_bmap.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 121e213eabad66c0453904d76e3eda193958acbd Author: Dave Chinner Date: Fri Jan 8 11:28:35 2016 +1100 xfs: add tracepoints to readpage calls This allows us to see page cache driven readahead in action as it passes through XFS. This helps to understand buffered read throughput problems such as readahead IO IO sizes being too small for the underlying device to reach max throughput. Signed-off-by: Dave Chinner Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/xfs_aops.c | 2 ++ fs/xfs/xfs_trace.h | 26 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) commit e3345db85068ddb937fc0ba40dfc39c293dad977 Author: Tomeu Vizoso Date: Thu Jan 7 16:46:15 2016 +0100 USB / PM: Allow USB devices to remain runtime-suspended when sleeping Have dev_pm_ops.prepare return 1 for USB devices and ports so that USB devices can remain runtime-suspended when the system goes to a sleep state, if their wakeup state is correct and they have runtime PM enabled. Signed-off-by: Tomeu Vizoso Reviewed-by: Ulf Hansson Acked-by: Alan Stern Signed-off-by: Rafael J. Wysocki drivers/usb/core/port.c | 6 ++++++ drivers/usb/core/usb.c | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-) commit aa8e54b559479d0cb7eb632ba443b8cacd20cd4b Author: Tomeu Vizoso Date: Thu Jan 7 16:46:14 2016 +0100 PM / sleep: Go direct_complete if driver has no callbacks If a suitable prepare callback cannot be found for a given device and its driver has no PM callbacks at all, assume that it can go direct to complete when the system goes to sleep. The reason for this is that there's lots of devices in a system that do no PM at all and there's no reason for them to prevent their ancestors to do direct_complete if they can support it. Signed-off-by: Tomeu Vizoso Reviewed-by: Ulf Hansson Signed-off-by: Rafael J. Wysocki drivers/base/dd.c | 3 +++ drivers/base/power/common.c | 3 +++ drivers/base/power/domain.c | 2 ++ drivers/base/power/main.c | 35 +++++++++++++++++++++++++++++++++++ drivers/base/power/power.h | 3 +++ include/linux/pm.h | 1 + 6 files changed, 47 insertions(+) commit 989561de9b5112999475b406557d9c7e9e59c041 Author: Tomeu Vizoso Date: Thu Jan 7 16:46:13 2016 +0100 PM / Domains: add setter for dev.pm_domain Adds a function that sets the pointer to dev_pm_domain in struct device and that warns if the device has already finished probing. The reason why we want to enforce that is because in the general case that can cause problems and also that we can simplify code quite a bit if we can always assume that. This patch also changes all current code that directly sets the dev.pm_domain pointer. Signed-off-by: Tomeu Vizoso Reviewed-by: Ulf Hansson Signed-off-by: Rafael J. Wysocki arch/arm/mach-omap2/omap_device.c | 7 ++++--- drivers/acpi/acpi_lpss.c | 5 ++++- drivers/acpi/device_pm.c | 5 +++-- drivers/base/power/clock_ops.c | 5 +++-- drivers/base/power/common.c | 21 +++++++++++++++++++++ drivers/base/power/domain.c | 6 ++++-- drivers/gpu/vga/vga_switcheroo.c | 11 ++++++----- drivers/misc/mei/pci-me.c | 5 +++-- drivers/misc/mei/pci-txe.c | 5 +++-- include/linux/pm_domain.h | 3 +++ 10 files changed, 54 insertions(+), 19 deletions(-) commit 6b9cb42752dafba3761dde0002ca58ca518b6311 Author: Tomeu Vizoso Date: Thu Jan 7 16:46:12 2016 +0100 device core: add device_is_bound() Adds a function that tells whether a device is already bound to a driver. This is needed to warn when there is an attempt to change the PM domain of a device that has finished probing already. The reason why we want to enforce that is because in the general case that can cause problems and also that we can simplify code quite a bit if we can always assume that. Signed-off-by: Tomeu Vizoso Reviewed-by: Ulf Hansson Acked-by: Greg Kroah-Hartman Signed-off-by: Rafael J. Wysocki drivers/base/dd.c | 18 ++++++++++++++++-- include/linux/device.h | 2 ++ 2 files changed, 18 insertions(+), 2 deletions(-) commit c4e4d631feb3be4ddf885e647127fddebb450334 Merge: 4295733 d35818a Author: Rafael J. Wysocki Date: Fri Jan 8 01:11:49 2016 +0100 Merge branch 'acpi-soc' into pm-core commit d35818a9153e7f230fd65dc935e001a1b9bc08ff Author: Andy Shevchenko Date: Thu Jan 7 12:49:31 2016 +0200 PM / clk: don't leave clocks enabled when driver not bound There is a new notification BUS_NOTIFY_DRIVER_NOT_BOUND that is issued when driver fails during binding. In such case pm_clk_notify(), when PM_CLK=n, leaves clocks enabled. Undo operations that have been done in BUS_NOTIFY_BIND_DRIVER case. Signed-off-by: Andy Shevchenko Signed-off-by: Rafael J. Wysocki drivers/base/power/clock_ops.c | 1 + 1 file changed, 1 insertion(+) commit abaee091a18c19ccd86feb1c8374585d82e96777 Merge: a2746fb 3f8d6f2 Author: James Bottomley Date: Thu Jan 7 15:51:13 2016 -0800 Merge branch 'jejb-scsi' into misc commit daaadd2283eb8bcae3b866592a9a1c807cc60605 Merge: 210c7c1 13331a5 Author: Trond Myklebust Date: Thu Jan 7 18:45:36 2016 -0500 Merge branch 'bugfixes' * bugfixes: SUNRPC: Fixup socket wait for memory SUNRPC: Fix a missing break in rpc_anyaddr() pNFS/flexfiles: Fix an Oopsable typo in ff_mirror_match_fh() NFS: Fix attribute cache revalidation NFS: Ensure we revalidate attributes before using execute_ok() NFS: Flush reclaim writes using FLUSH_COND_STABLE NFS: Background flush should not be low priority NFSv4.1/pnfs: Fixup an lo->plh_block_lgets imbalance in layoutreturn NFSv4: Don't perform cached access checks before we've OPENed the file NFS: Allow the combination pNFS and labeled NFS NFS42: handle layoutstats stateid error nfs: Fix race in __update_open_stateid() nfs: fix missing assignment in nfs4_sequence_done tracepoint commit 210c7c1750fdf769647d1d526c9ea34c412c9eee Author: Benjamin Coddington Date: Wed Jan 6 10:40:18 2016 -0500 NFS: Use wait_on_atomic_t() for unlock after readahead The use of wait_on_atomic_t() for waiting on I/O to complete before unlocking allows us to git rid of the NFS_IO_INPROGRESS flag, and thus the nfs_iocounter's flags member, and finally the nfs_iocounter altogether. The count of I/O is moved to the lock context, and the counter increment/decrement functions become simple enough to open-code. Signed-off-by: Benjamin Coddington [Trond: Fix up conflict with existing function nfs_wait_atomic_killable()] Signed-off-by: Trond Myklebust fs/nfs/file.c | 2 +- fs/nfs/inode.c | 18 ++++++++++++------ fs/nfs/internal.h | 9 ++------- fs/nfs/pagelist.c | 48 +++++++----------------------------------------- fs/nfs/write.c | 8 -------- include/linux/nfs_fs.h | 8 +------- 6 files changed, 23 insertions(+), 70 deletions(-) commit c93a59938c11f447ff2964ab3c317311778edf66 Author: Peter Ujfalusi Date: Fri Dec 18 15:00:49 2015 +0200 serial: 8250: of: Fix the driver and actually compile the 8250_of The 8250_of never compiled since in the Kconfig we have SERIAL_OF_PLATFORM but in the makefile we expect to have SERIAL_8250_OF... When the 8250_of.c is actually compiled we will have two errors: missing linux/nwpserial.h and 8250/8250.h. Fix those as well at the same time when enable the compilation of the driver. Signed-off-by: Peter Ujfalusi Fixes: afd7f88f1577 ("serial: 8250: move of_serial code to 8250 directory") Reported-by: Guenter Roeck CC: Arnd Bergmann Acked-by: Arnd Bergmann Acked-by: Jon Hunter Tested-by: Jon Hunter Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_of.c | 3 +-- drivers/tty/serial/8250/Makefile | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) commit de7ee9a20c7f617cbc5091e84855afcdeb19ba60 Author: Bart Van Assche Date: Tue Jan 5 14:47:58 2016 +0100 tcm_fc: Wait for command completion before freeing a session This patch avoids that the following kernel crash can occur with later patches in this patch series: general protection fault: 0000 [#1] SMP CPU: 0 PID: 6 Comm: kworker/u8:0 Not tainted 4.3.0-rc1-debug+ #1 Workqueue: tmr-fileio target_tmr_work [target_core_mod] Call Trace: [] lock_acquire+0x65/0x90 [] _raw_spin_lock_irqsave+0x4b/0x60 [] target_release_cmd_kref+0x2a/0xa0 [target_core_mod] [] target_put_sess_cmd+0x28/0x50 [target_core_mod] [] core_tmr_lun_reset+0x390/0x640 [target_core_mod] [] target_tmr_work+0x80/0xd0 [target_core_mod] [] process_one_work+0x19d/0x430 [] worker_thread+0x10f/0x460 [] kthread+0xea/0x100 [] ret_from_fork+0x3f/0x70 Signed-off-by: Bart Van Assche Cc: Christoph Hellwig Cc: Andy Grover Signed-off-by: Nicholas Bellinger drivers/target/tcm_fc/tfc_sess.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) commit f0a8afecb29ad0005e7e946228a0ef5422058b85 Author: Bart Van Assche Date: Tue Jan 5 14:47:17 2016 +0100 target: Fix a memory leak in target_dev_lba_map_store() strsep() modifies its first argument. Make the pointer passed to kfree() match the return value of kmalloc(). Fixes: 229d4f112fd6 (commit "target_core_alua: Referrals configfs integration") Signed-off-by: Bart Van Assche Cc: Hannes Reinecke Cc: Christoph Hellwig Cc: Andy Grover Cc: Sagi Grimberg Signed-off-by: Nicholas Bellinger drivers/target/target_core_configfs.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 5261d86c5ce5726f097ed5e4ea28c40684ebf8e4 Author: Bart Van Assche Date: Tue Jan 5 14:46:39 2016 +0100 target: Support aborting tasks with a 64-bit tag Avoid truncating the tag argument of target_submit_tmr() to a 32-bit number if the caller passes a 64-bit number. Signed-off-by: Bart Van Assche Cc: Christoph Hellwig Cc: Andy Grover Cc: Sagi Grimberg Signed-off-by: Nicholas Bellinger drivers/target/target_core_transport.c | 2 +- include/target/target_core_fabric.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 10c17c682691271777809373d9daaedd5810409e Author: Bart Van Assche Date: Tue Jan 5 14:46:03 2016 +0100 usb/gadget: Remove set-but-not-used variables Avoid that building with W=1 triggers compiler warnings about set-but-not-used variables. Signed-off-by: Bart Van Assche Cc: Felipe Balbi Cc: Andy Grover Cc: Christoph Hellwig Signed-off-by: Nicholas Bellinger drivers/usb/gadget/function/f_tcm.c | 16 ---------------- 1 file changed, 16 deletions(-) commit dba5ccc7a67713fccb7726057d8df826672a7257 Author: Bart Van Assche Date: Tue Jan 5 14:45:03 2016 +0100 target: Remove an unused variable The num_node_acls member in struct se_portal_group is modified by several functions but is never read. Hence remove it. Signed-off-by: Bart Van Assche Cc: Christoph Hellwig Cc: Andy Grover Cc: Sagi Grimberg Signed-off-by: Nicholas Bellinger drivers/target/target_core_tpg.c | 3 --- drivers/target/target_core_transport.c | 1 - include/target/target_core_base.h | 2 -- 3 files changed, 6 deletions(-) commit 9b3118ce8a942706f65cf5de82a6de967a9fbe74 Author: Bart Van Assche Date: Tue Jan 5 14:44:21 2016 +0100 target: Fix indentation in target_core_configfs.c Detected by smatch. Signed-off-by: Bart Van Assche Cc: Christoph Hellwig Cc: Andy Grover Cc: Sagi Grimberg Signed-off-by: Nicholas Bellinger drivers/target/target_core_configfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 81ee28de860095cc0c063b92eea53cb97771f796 Author: Sheng Yang Date: Mon Dec 28 11:57:39 2015 -0800 target/user: Allow user to set block size before enabling device The capability of setting hw_block_size was added along with 9c1cd1b68 "target/user: Only support full command pass-through", though default setting override the user specified value during the enabling of device, which called by target_configure_device() to set block_size matching hw_block_size, result in user not able to set different block size other than default 512. This patch would use existing hw_block_size value if already set, otherwise it would be set to default value(512). Update: Fix the coding style issue. (Drop unnecessary re-export of dev->dev_attrib.block_size - nab) Signed-off-by: Sheng Yang Cc: Andy Grover Signed-off-by: Nicholas Bellinger drivers/target/target_core_user.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 373a4cd7378220d3c5a69fd369b1d78fee3207b2 Author: Nicholas Bellinger Date: Wed Jan 6 10:25:43 2016 -0800 iser-target: Fix non negative ERR_PTR isert_device_get usage As reported by Dan, isert_create_device_ib_res() failure within isert_device_get() can potentially return a postive value, resulting in ERR_PTR() triggering a NULL pointer dereference. Caught by the static checker: drivers/infiniband/ulp/isert/ib_isert.c:423 isert_device_get() error: passing non negative 1 to ERR_PTR Reported-by: Dan Carpenter Cc: Sagi Grimberg Signed-off-by: Nicholas Bellinger drivers/infiniband/ulp/isert/ib_isert.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 091b70623e2b9caee1c27190c3a5614b3563a672 Author: Andy Grover Date: Mon Dec 21 18:48:05 2015 -0800 target/fcoe: Add tag support to tcm_fc Add the 'tag' attribute to FC node ACLs. This is not used by kernel code, but gives userspace a place to store a tag string. This is used to provide support for initiator groups in targetcli. Just copy iscsi's implementation for tcm_fc. A few other fabrics that support acls also need this, to be submitted separately after the holidays. Signed-off-by: Andy Grover Signed-off-by: Nicholas Bellinger drivers/target/tcm_fc/tfc_conf.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit 3bb67df5b5f880a1c9c1086308cf2b981d824da5 Author: Dilip Kumar Uppugandla Date: Thu Dec 17 14:57:11 2015 -0500 qla2xxx: Check for online flag instead of active reset when transmitting responses Driver has following initialization sequence for Target mode 1. Driver initialization starts 2. ISP Abort is scheduled when the target is enabled. qla2xxx [0000:04:00.0]-4807:25: ISP abort scheduled qla2xxx [0000:04:00.0]-00af:25: Performing ISP error recovery - ha=ffff880caa9e0000. 3. DPC thread starts the ISP Abort 4. While DPC is resetting the chip and initializing the firmware, we get async events from the firmware about P2P mode, LOOP UP and PORT UPDATE. 5. PRLI from a initiator is delivered to us followed by a PLOGI and then a SCSI command which creates a session. 6. If the SCSI command is a WRITE in this case, we issue XFR RDY and it gets dropped as can be seen with messages RESET-XFR because ISP Abort is still active qla2xxx [0000:04:00.0]-e902:25: RESET-XFR active/old-count/new-count = 1/1/1. 7. If the SCSI command is a READ, we issue RESPONSE and they get dropped as well because Abort is still active. qla2xxx [0000:04:00.0]-e901:25: RESET-RSP active/old-count/new-count = 1/1/1 8. Now eventually, ISP Abort finishes clearing the DPC flags. qla2xxx [0000:04:00.0]-8822:25: qla2x00_abort_isp succeeded. qla2xxx [0000:04:00.0]-4808:25: ISP abort end. 9. Since we dropped SCSI commands silently (without any responses sent to the initiator) initiator waits for a SCSI timeout (which is 60 seconds in our case), Sends an ABTS which fails since there no se_cmd found for the tag that ABTS is referencing as the commands were cleaned up in Step 6 and 7. 10. Initiator send an IO after the ABTS which succeed fine. To fix the above case, the following changes have been made: - To prevent target from dropping commands silently, use the online flag instead to check for an active chip reset. Once the port is online during a chip reset phase, we are good to process the commands. - Clean up qla2x00_restart_isp to not set the online flag and process ATIO as it is unnecessary. During a chip reset, interrupts are enabled only after setting the online flag to 1, so ATIO's won't be missed and hence no need to process ATIO's after setting the online flag. Signed-off-by: Dilip Kumar Uppugandla Signed-off-by: Himanshu Madhani Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_init.c | 34 ++++++++++++++++++++-------------- drivers/scsi/qla2xxx/qla_target.c | 34 +++++++++++++++++----------------- 2 files changed, 37 insertions(+), 31 deletions(-) commit e7b42e335f129f0685ab94bcd34104163df38323 Author: Quinn Tran Date: Thu Dec 17 14:57:09 2015 -0500 qla2xxx: Set all queues to 4k set ATIO/Request/Response Queues and Default number of outstanding command to 4k. Signed-off-by: Quinn Tran Signed-off-by: Himanshu Madhani Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_def.h | 3 ++- drivers/scsi/qla2xxx/qla_os.c | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) commit 481ce73342b190987c2553e8df0075c3df23632e Author: Quinn Tran Date: Thu Dec 17 14:57:08 2015 -0500 qla2xxx: Disable ZIO at start time. Signed-off-by: Quinn Tran Signed-off-by: Himanshu Madhani Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_target.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 2f424b9b36ad7062e9ade41a9fb034d21a9e4e4b Author: Quinn Tran Date: Thu Dec 17 14:57:07 2015 -0500 qla2xxx: Move atioq to a different lock to reduce lock contention 99% of the time the ATIOQ has SCSI command. The other 1% of time is something else. Most of the time this interrupt does not need to hold the hardware_lock. We're moving the ATIO interrupt thread to a different lock to reduce lock contention. Signed-off-by: Quinn Tran Signed-off-by: Himanshu Madhani Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_def.h | 1 + drivers/scsi/qla2xxx/qla_gbl.h | 1 + drivers/scsi/qla2xxx/qla_init.c | 6 ++- drivers/scsi/qla2xxx/qla_isr.c | 44 +++++++++++++---- drivers/scsi/qla2xxx/qla_os.c | 2 + drivers/scsi/qla2xxx/qla_target.c | 99 +++++++++++++++++++++++++++++++++------ drivers/scsi/qla2xxx/qla_target.h | 4 +- 7 files changed, 129 insertions(+), 28 deletions(-) commit fb3269baf4ecc2ce6d17d4eb537080035bdf6d5b Author: Quinn Tran Date: Thu Dec 17 14:57:06 2015 -0500 qla2xxx: Add selective command queuing queue work element to specific process lessen cache miss Signed-off-by: Quinn Tran Signed-off-by: Himanshu Madhani Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_isr.c | 2 +- drivers/scsi/qla2xxx/qla_target.c | 13 ++++++++++++- drivers/scsi/qla2xxx/tcm_qla2xxx.c | 4 ++-- drivers/target/target_core_transport.c | 5 ++++- include/target/target_core_base.h | 1 + 5 files changed, 20 insertions(+), 5 deletions(-) commit cdb898c52d1dfad4b4800b83a58b3fe5d352edde Author: Quinn Tran Date: Thu Dec 17 14:57:05 2015 -0500 qla2xxx: Add irq affinity notification Register to receive notification of when irq setting change occured. Signed-off-by: Quinn Tran Signed-off-by: Himanshu Madhani Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_def.h | 6 ++++ drivers/scsi/qla2xxx/qla_isr.c | 76 ++++++++++++++++++++++++++++++++++++++- drivers/scsi/qla2xxx/qla_target.c | 12 +++++++ 3 files changed, 93 insertions(+), 1 deletion(-) commit 7560151b6b3c1f4432c1c5b5b6496070d1f38484 Author: Quinn Tran Date: Thu Dec 17 14:57:04 2015 -0500 qla2xxx: Remove dependency on hardware_lock to reduce lock contention. Sessions management (add, deleted, modify) currently are serialized through the hardware_lock. Hardware_lock is a high traffic lock. This lock is accessed by both the transmit & receive sides. Sessions management is now moved off to another lock call sess_lock. This is done to reduce lock contention and increase traffic throughput. Signed-off-by: Quinn Tran Signed-off-by: Himanshu Madhani Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_def.h | 1 + drivers/scsi/qla2xxx/qla_os.c | 1 + drivers/scsi/qla2xxx/qla_target.c | 132 +++++++++++++++++++++++++------------ drivers/scsi/qla2xxx/tcm_qla2xxx.c | 28 ++++---- 4 files changed, 106 insertions(+), 56 deletions(-) commit 193b50b9d54a4fcb723a8005b29d8dd5518e3ae2 Author: Quinn Tran Date: Thu Dec 17 14:57:03 2015 -0500 qla2xxx: Replace QLA_TGT_STATE_ABORTED with a bit. Replace QLA_TGT_STATE_ABORTED state with a bit because the current state of the command is lost when an abort is requested by upper layer. Signed-off-by: Quinn Tran Signed-off-by: Himanshu Madhani Reviewed-by: Hannes Reinecke Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_target.c | 23 ++++++++++------------- drivers/scsi/qla2xxx/qla_target.h | 3 ++- 2 files changed, 12 insertions(+), 14 deletions(-) commit b7bd104e6f1c3be2bf881dc1ca7db40da3ee65fd Author: Alexei Potashnik Date: Thu Dec 17 14:57:02 2015 -0500 qla2xxx: Wait for all conflicts before ack'ing PLOGI Until now ack'ing of a new PLOGI has only been delayed if there was an existing session for the same WWN. Ack was released when the session deletion completed. If there was another WWN session with the same fc_id/loop_id pair (aka "conflicting session"), PLOGI was still ack'ed immediately. This potentially caused a problem when old session deletion logged fc_id/loop_id out of FW after new session has been established. Two work-arounds were attempted before: 1. Dropping PLOGIs until conflicting session goes away. 2. Detecting initiator being logged out of FW and issuing LOGO to force re-login. This patch introduces proper solution to the problem where PLOGI is held until either existing session with same WWN or any conflicting session goes away. Mechanism supports one session holding two PLOGI acks as well as one PLOGI ack being held by many sessions. Signed-off-by: Alexei Potashnik Acked-by: Quinn Tran Signed-off-by: Himanshu Madhani Reviewed-by: Hannes Reinecke Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_dbg.c | 4 +- drivers/scsi/qla2xxx/qla_def.h | 2 + drivers/scsi/qla2xxx/qla_os.c | 1 + drivers/scsi/qla2xxx/qla_target.c | 205 ++++++++++++++++++++++++++++++-------- drivers/scsi/qla2xxx/qla_target.h | 18 +++- 5 files changed, 180 insertions(+), 50 deletions(-) commit 71cdc07964651db51ddeea05245ac899357f0e71 Author: Alexei Potashnik Date: Thu Dec 17 14:57:01 2015 -0500 qla2xxx: Delete session if initiator is gone from FW 1. Initiator A is logged in with fc_id(1)/loop_id(1) 2. Initiator A re-logs in with fc_id(2)/loop_id(2) 3. Part of old session deletion async logoout for 1/1 is queued 4. Initiator B logs in with fc_id(1)/loop_id(1), starts passing data and creates session. 5. Async logo from 3 is processed by DPC and sent to FW Now initiator B has the session but is logged out from FW. This condition is detected first with CTIO error 29 at which point we should delete current session. During session deletion we will send LOGO to initiator to force re-login. Under rare circumstances initiator might be logged out of FW, not have driver session, but still think it's logged in. E.g. the above sequence plus session deletion due to re-config. Incoming commands will fail to create local session because initiator is not found in FW. In this case we also issue LOGO to initiator to force him re-login. Finally this patch fixes exchange leak when commands where received in logged out state. In this case loop_id must be set to FFFF when corresponding exchange is terminated. The patch modifies exchange termination to always use FFFF, since in certain scenarios it's impossible to tell whether command was received in logged in or logged out state. Signed-off-by: Alexei Potashnik Acked-by: Quinn Tran Signed-off-by: Himanshu Madhani Reviewed-by: Hannes Reinecke Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_def.h | 2 + drivers/scsi/qla2xxx/qla_os.c | 1 + drivers/scsi/qla2xxx/qla_target.c | 108 ++++++++++++++++++++++++++++++++------ drivers/scsi/qla2xxx/qla_target.h | 9 ++++ 4 files changed, 104 insertions(+), 16 deletions(-) commit 6eb54715b54bb8324f3293e49635277652730e55 Author: Himanshu Madhani Date: Thu Dec 17 14:57:00 2015 -0500 qla2xxx: Added interface to send explicit LOGO. This patch adds interface to send explicit LOGO explicit LOGO using using ELS commands from driver. Signed-off-by: Himanshu Madhani Signed-off-by: Giridhar Malavali Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_attr.c | 36 ++++++++ drivers/scsi/qla2xxx/qla_dbg.c | 5 +- drivers/scsi/qla2xxx/qla_def.h | 19 +++- drivers/scsi/qla2xxx/qla_gbl.h | 2 + drivers/scsi/qla2xxx/qla_inline.h | 2 + drivers/scsi/qla2xxx/qla_iocb.c | 187 ++++++++++++++++++++++++++++++++++++++ drivers/scsi/qla2xxx/qla_isr.c | 6 ++ 7 files changed, 253 insertions(+), 4 deletions(-) commit 03e8c680d9b3b68ddae648a6e2c91c381e90066f Author: Quinn Tran Date: Thu Dec 17 14:56:59 2015 -0500 qla2xxx: Add FW resource count in DebugFS. DebugFS now will show fw_resource_count node. FW Resource count Original TGT exchg count[0] current TGT exchg count[0] original Initiator Exchange count[2048] Current Initiator Exchange count[2048] Original IOCB count[2078] Current IOCB count[2067] MAX VP count[254] MAX FCF count[0] Signed-off-by: Quinn Tran Signed-off-by: Himanshu Madhani Reviewed-by: Hannes Reinecke Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_def.h | 13 +++++++--- drivers/scsi/qla2xxx/qla_dfs.c | 50 ++++++++++++++++++++++++++++++++++++++ drivers/scsi/qla2xxx/qla_gbl.h | 3 +-- drivers/scsi/qla2xxx/qla_init.c | 12 ++++----- drivers/scsi/qla2xxx/qla_mbx.c | 28 +++++++++------------ drivers/scsi/qla2xxx/qla_target.c | 4 +-- drivers/scsi/qla2xxx/tcm_qla2xxx.c | 2 +- 7 files changed, 81 insertions(+), 31 deletions(-) commit ce1025cd4b8eb7afe07c3625f2ad080d8bee7cc4 Author: Himanshu Madhani Date: Thu Dec 17 14:56:58 2015 -0500 qla2xxx: Enable Target counters in DebugFS. Following counters are added in target mode to help debugging efforts. Target Counters qla_core_sbt_cmd = 0 qla_core_ret_sta_ctio = 0 qla_core_ret_ctio = 0 core_qla_que_buf = 0 core_qla_snd_status = 0 core_qla_free_cmd = 0 num alloc iocb failed = 0 num term exchange sent = 0 num Q full sent = 0 Signed-off-by: Himanshu Madhani Signed-off-by: Giridhar Malavali Reviewed-by: Hannes Reinecke Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_dbg.c | 2 +- drivers/scsi/qla2xxx/qla_def.h | 15 ++++++++++ drivers/scsi/qla2xxx/qla_dfs.c | 56 ++++++++++++++++++++++++++++++++++++++ drivers/scsi/qla2xxx/qla_iocb.c | 1 + drivers/scsi/qla2xxx/qla_target.c | 7 +++++ drivers/scsi/qla2xxx/tcm_qla2xxx.c | 4 +++ 6 files changed, 84 insertions(+), 1 deletion(-) commit 2f56a7f1b5d8cf3d8bc84cc08dda09c991b698a7 Author: Himanshu Madhani Date: Thu Dec 17 14:56:57 2015 -0500 qla2xxx: Enable Exchange offload support. This patch enables Exchange offload support in Qlogic ISP. To enable exchange offload with Qlogic ISP24XX/25XX/26XX, set module parameter ql2xexchoffld to any non-zero number. This will alow ISP firmware to store exchange data structures used by firmware to host memory provided by driver. ISP firmware can supports upto 32k total active exchanges. Signed-off-by: Himanshu Madhani Signed-off-by: Giridhar Malavali Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_dbg.c | 9 +-- drivers/scsi/qla2xxx/qla_def.h | 12 +++- drivers/scsi/qla2xxx/qla_gbl.h | 5 ++ drivers/scsi/qla2xxx/qla_init.c | 7 +++ drivers/scsi/qla2xxx/qla_mbx.c | 118 ++++++++++++++++++++++++++++++++++++++++ drivers/scsi/qla2xxx/qla_os.c | 78 ++++++++++++++++++++++++++ 6 files changed, 222 insertions(+), 7 deletions(-) commit b0d6cabd355ae9c13c53680cfe8b5ae58a84d2c1 Author: Himanshu Madhani Date: Thu Dec 17 14:56:56 2015 -0500 qla2xxx: Enable Extended Logins support This patch enables Extended Logins support in Qlogic ISP. To enable extended login with Qlogic ISP24XX/25XX/26XX, set module parameter ql2xexlogins to any non-zero number. This will alow ISP firmware to store port database structure information of remote login sessions to host memory provided by driver. ISP firmware supports upto 16k total logins. Signed-off-by: Himanshu Madhani Signed-off-by: Giridhar Malavali Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_dbg.c | 9 ++- drivers/scsi/qla2xxx/qla_def.h | 13 ++++- drivers/scsi/qla2xxx/qla_gbl.h | 7 +++ drivers/scsi/qla2xxx/qla_init.c | 7 +++ drivers/scsi/qla2xxx/qla_mbx.c | 119 ++++++++++++++++++++++++++++++++++++++++ drivers/scsi/qla2xxx/qla_os.c | 76 +++++++++++++++++++++++++ 6 files changed, 224 insertions(+), 7 deletions(-) commit 1b1fe542b6f010cf6bc7e1c92805e1c0e133e007 Author: Brian Norris Date: Wed Dec 9 14:50:29 2015 -0800 selftests: firmware: add empty string and async tests Now that we've added a 'trigger_async_request' knob to test the request_firmware_nowait() API, let's use it. Also add tests for the empty ("") string, since there have been a couple errors in that handling already. Since we now have real ways that the sysfs write might fail, let's add the appropriate check on the 'echo' lines too. Signed-off-by: Brian Norris Acked-by: Kees Cook Signed-off-by: Shuah Khan tools/testing/selftests/firmware/fw_filesystem.sh | 29 ++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) commit 9fb6066d0de0353622ee572e2b0e979bd62bb657 Author: Woojung.Huh@microchip.com Date: Tue Jan 5 17:29:59 2016 +0000 net: lan78xx: Fix to write to OTP(One Time Programmable) per magic number. This patch fixes a bug writing to EEPROM in lan78xx_ethtool_set_eeprom() when asked to write to OTP. Signed-off-by: Woojung Huh Signed-off-by: David S. Miller drivers/net/usb/lan78xx.c | 55 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) commit 24759daa018f0fc8cccebc89d3dee0953e73785a Merge: 1235817 c505a38 Author: David S. Miller Date: Thu Jan 7 16:26:36 2016 -0500 Merge branch 'macb-usrio-cap' Neil Armstrong says: ==================== Add new capability and macb DT variant The first patch introduces a new capability bit to disable usage of the USRIO register on platform not implementing it thus avoiding some external imprecise aborts on ARM based platforms. The two last patchs adds a new macb variant compatible name using the capability, the NP4 SoC uses this particular hardware configuration. v1: http://lkml.kernel.org/r/1449485914-12883-1-git-send-email-narmstrong@baylibre.com v2: http://lkml.kernel.org/r/1449582726-6148-1-git-send-email-narmstrong@baylibre.com v3: http://lkml.kernel.org/r/1451898103-21868-1-git-send-email-narmstrong@baylibre.com v4: http://lkml.kernel.org/r/1451900573-22657-1-git-send-email-narmstrong@baylibre.com v5: switch SoC name to non-generic NP4 name ==================== Signed-off-by: David S. Miller commit c505a3820f6138d6a96fe729a599e3bd062fa6e6 Author: Neil Armstrong Date: Tue Jan 5 14:39:18 2016 +0100 dt-bindings: net: macb: Add NP4 macb variant Add NP4 macb SoC variant. Signed-off-by: Neil Armstrong Acked-by: Nicolas Ferre Acked-by: Rob Herring Signed-off-by: David S. Miller Documentation/devicetree/bindings/net/macb.txt | 1 + 1 file changed, 1 insertion(+) commit e611b5b851e60b028807644fb12911bba0eb601c Author: Neil Armstrong Date: Tue Jan 5 14:39:17 2016 +0100 net: macb: Add NP4 macb config using USRIO_DISABLED Declare a new NP4 SoC variant having USRIO_DISABLED as capability bit. Signed-off-by: Neil Armstrong Acked-by: Nicolas Ferre Signed-off-by: David S. Miller drivers/net/ethernet/cadence/macb.c | 6 ++++++ 1 file changed, 6 insertions(+) commit ce721a70219720f4c574a7e97f912c71a3510369 Author: Neil Armstrong Date: Tue Jan 5 14:39:16 2016 +0100 net: ethernet: cadence-macb: Add disabled usrio caps On some platforms, the macb integration does not use the USRIO register to configure the (R)MII port and clocks. When the register is not implemented and the MACB error signal is connected to the bus error, reading or writing to the USRIO register can trigger some Imprecise External Aborts on ARM platforms. Signed-off-by: Neil Armstrong Acked-by: Nicolas Ferre Signed-off-by: David S. Miller drivers/net/ethernet/cadence/macb.c | 27 +++++++++++++++------------ drivers/net/ethernet/cadence/macb.h | 1 + 2 files changed, 16 insertions(+), 12 deletions(-) commit 8cdc7c5b00d945a3c823fc4277af304abb9cb43d Author: Filipe Manana Date: Wed Jan 6 22:42:35 2016 +0000 Btrfs: fix fitrim discarding device area reserved for boot loader's use As of the 4.3 kernel release, the fitrim ioctl can now discard any region of a disk that is not allocated to any chunk/block group, including the first megabyte which is used for our primary superblock and by the boot loader (grub for example). Fix this by not allowing to trim/discard any region in the device starting with an offset not greater than min(alloc_start_mount_option, 1Mb), just as it was not possible before 4.3. A reproducer test case for xfstests follows. 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() { cd / 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 # Write to the [0, 64Kb[ and [68Kb, 1Mb[ ranges of the device. These ranges are # reserved for a boot loader to use (GRUB for example) and btrfs should never # use them - neither for allocating metadata/data nor should trim/discard them. # The range [64Kb, 68Kb[ is used for the primary superblock of the filesystem. $XFS_IO_PROG -c "pwrite -S 0xfd 0 64K" $SCRATCH_DEV | _filter_xfs_io $XFS_IO_PROG -c "pwrite -S 0xfd 68K 956K" $SCRATCH_DEV | _filter_xfs_io # Now mount the filesystem and perform a fitrim against it. _scratch_mount _require_batched_discard $SCRATCH_MNT $FSTRIM_PROG $SCRATCH_MNT # Now unmount the filesystem and verify the content of the ranges was not # modified (no trim/discard happened on them). _scratch_unmount echo "Content of the ranges [0, 64Kb] and [68Kb, 1Mb[ after fitrim:" od -t x1 -N $((64 * 1024)) $SCRATCH_DEV od -t x1 -j $((68 * 1024)) -N $((956 * 1024)) $SCRATCH_DEV status=0 exit Reported-by: Vincent Petry Reported-by: Andrei Borzenkov Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=109341 Fixes: 499f377f49f0 (btrfs: iterate over unused chunk space in FITRIM) Cc: stable@vger.kernel.org # 4.3+ Signed-off-by: Filipe Manana fs/btrfs/volumes.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit b9e24d30f66bafae9a3949250740f69239126e9f Merge: 954e953 d7b53fd Author: Arnd Bergmann Date: Thu Jan 7 22:11:36 2016 +0100 Merge Rockchip pmdomain fix into next/defconfig Commit e330eb86ba ("ARM: multi_v7_defconfig: enable Rockchip io-domain driver") turns on a driver that was broken on 4.4-rc3 and fixed in 4.4-rc4. This backmerges in the bugfix from mainline to keep the defconfig branch testable by itself. * commit 'd7b53fd9e37a': drm/rockchip: vop: Correct enabled clocks during setup drm/i915: Don't override output type for DDI HDMI drm/i915: Don't compare has_drrs strictly in pipe config drm/i915: Mark uneven memory banks on gen4 desktop as unknown swizzling commit aa8a7219d75a0bcbdfcf5c2b8b26573936baf369 Merge: 236c52c 62d7476 Author: Kalle Valo Date: Thu Jan 7 23:04:07 2016 +0200 Merge tag 'iwlwifi-next-for-kalle-2016-01-07_2' of https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next * bug fixes and improvements for firmware debug system (Golan and myself) * fixes for D0i3 (Eliad) * prevent muliple stations with the same MAC address * advertise support for Rx A-MSDU in A-MPDU * scan related fixes * support -20.ucode * fix WoWLAN for iwldvm * preparations towards multiple Rx queues * platform power improvements for GO mode when no clients are associated commit 5156dca34a3e1e1edac2d0dabf43d8632909b7aa Author: Qiu Peiyang Date: Fri Dec 25 14:46:00 2015 +0800 ftrace: Fix the race between ftrace and insmod We hit ftrace_bug report when booting Android on a 64bit ATOM SOC chip. Basically, there is a race between insmod and ftrace_run_update_code. After load_module=>ftrace_module_init, another thread jumps in to call ftrace_run_update_code=>ftrace_arch_code_modify_prepare =>set_all_modules_text_rw, to change all modules as RW. Since the new module is at MODULE_STATE_UNFORMED, the text attribute is not changed. Then, the 2nd thread goes ahead to change codes. However, load_module continues to call complete_formation=>set_section_ro_nx, then 2nd thread would fail when probing the module's TEXT. The patch fixes it by using notifier to delay the enabling of ftrace records to the time when module is at state MODULE_STATE_COMING. Link: http://lkml.kernel.org/r/567CE628.3000609@intel.com Signed-off-by: Qiu Peiyang Signed-off-by: Zhang Yanmin Signed-off-by: Steven Rostedt kernel/trace/ftrace.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) commit 236c52cac41a9168525bf7c22accdd12f8069a35 Merge: 7683fe0 9d5db23 Author: Kalle Valo Date: Thu Jan 7 22:54:46 2016 +0200 Merge ath-next from ath.git No major changes to list. commit 715780ae4bb76d6fd2f20eb78e2a9ba9769a6cdc Author: Brian Norris Date: Wed Dec 9 14:50:28 2015 -0800 firmware: actually return NULL on failed request_firmware_nowait() The kerneldoc for request_firmware_nowait() says that it may call the provided cont() callback with @fw == NULL, if the firmware request fails. However, this is not the case when called with an empty string (""). This case is short-circuited by the 'name[0] == '\0'' check introduced in commit 471b095dfe0d ("firmware_class: make sure fw requests contain a name"), so _request_firmware() never gets to set the fw to NULL. Noticed while using the new 'trigger_async_request' testing hook: # printf '\x00' > /sys/devices/virtual/misc/test_firmware/trigger_async_request [10553.726178] test_firmware: loading '' [10553.729859] test_firmware: loaded: 995209091 # printf '\x00' > /sys/devices/virtual/misc/test_firmware/trigger_async_request [10733.676184] test_firmware: loading '' [10733.679855] Unable to handle kernel NULL pointer dereference at virtual address 00000004 [10733.687951] pgd = ec188000 [10733.690655] [00000004] *pgd=00000000 [10733.694240] Internal error: Oops: 5 [#1] SMP ARM [10733.698847] Modules linked in: btmrvl_sdio btmrvl bluetooth sbs_battery nf_conntrack_ipv6 nf_defrag_ipv6 ip6table_filter ip6_tables asix usbnet mwifiex_sdio mwifiex cfg80211 jitterentropy_rng drbg joydev snd_seq_midi snd_seq_midi_event snd_rawmidi snd_seq snd_seq_device ppp_async ppp_generic slhc tun [10733.725670] CPU: 0 PID: 6600 Comm: bash Not tainted 4.4.0-rc4-00351-g63d0877 #178 [10733.733137] Hardware name: Rockchip (Device Tree) [10733.737831] task: ed24f6c0 ti: ee322000 task.ti: ee322000 [10733.743222] PC is at do_raw_spin_lock+0x18/0x1a0 [10733.747831] LR is at _raw_spin_lock+0x18/0x1c [10733.752180] pc : [] lr : [] psr: a00d0013 [10733.752180] sp : ee323df8 ip : ee323e20 fp : ee323e1c [10733.763634] r10: 00000051 r9 : b6f18000 r8 : ee323f80 [10733.768847] r7 : c089cebc r6 : 00000001 r5 : 00000000 r4 : ec0e6000 [10733.775360] r3 : dead4ead r2 : c06bd140 r1 : eef913b4 r0 : 00000000 [10733.781874] Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none [10733.788995] Control: 10c5387d Table: 2c18806a DAC: 00000051 [10733.794728] Process bash (pid: 6600, stack limit = 0xee322218) [10733.800549] Stack: (0xee323df8 to 0xee324000) [10733.804896] 3de0: ec0e6000 00000000 [10733.813059] 3e00: 00000001 c089cebc ee323f80 b6f18000 ee323e2c ee323e20 c054c204 c0065394 [10733.821221] 3e20: ee323e44 ee323e30 c02fec60 c054c1f8 ec0e7ec0 ec3fcfc0 ee323e5c ee323e48 [10733.829384] 3e40: c02fed08 c02fec48 c07dbf74 eeb05a00 ee323e8c ee323e60 c0253828 c02fecac [10733.837547] 3e60: 00000001 c0116950 ee323eac ee323e78 00000001 ec3fce00 ed2d9700 ed2d970c [10733.845710] 3e80: ee323e9c ee323e90 c02e873c c02537d4 ee323eac ee323ea0 c017bd40 c02e8720 [10733.853873] 3ea0: ee323ee4 ee323eb0 c017b250 c017bd00 00000000 00000000 f3e47a54 ec128b00 [10733.862035] 3ec0: c017b10c ee323f80 00000001 c000f504 ee322000 00000000 ee323f4c ee323ee8 [10733.870197] 3ee0: c011b71c c017b118 ee323fb0 c011bc90 becfa8d9 00000001 ec128b00 00000001 [10733.878359] 3f00: b6f18000 ee323f80 ee323f4c ee323f18 c011bc90 c0063950 ee323f3c ee323f28 [10733.886522] 3f20: c0063950 c0549138 00000001 ec128b00 00000001 ec128b00 b6f18000 ee323f80 [10733.894684] 3f40: ee323f7c ee323f50 c011bed8 c011b6ec c0135fb8 c0135f24 ec128b00 ec128b00 [10733.902847] 3f60: 00000001 b6f18000 c000f504 ee322000 ee323fa4 ee323f80 c011c664 c011be24 [10733.911009] 3f80: 00000000 00000000 00000001 b6f18000 b6e79be0 00000004 00000000 ee323fa8 [10733.919172] 3fa0: c000f340 c011c618 00000001 b6f18000 00000001 b6f18000 00000001 00000000 [10733.927334] 3fc0: 00000001 b6f18000 b6e79be0 00000004 00000001 00000001 8068a3f1 b6e79c84 [10733.935496] 3fe0: 00000000 becfa7dc b6de194d b6e20246 400d0030 00000001 7a4536e8 49bda390 [10733.943664] [] (do_raw_spin_lock) from [] (_raw_spin_lock+0x18/0x1c) [10733.951743] [] (_raw_spin_lock) from [] (fw_free_buf+0x24/0x64) [10733.959388] [] (fw_free_buf) from [] (release_firmware+0x68/0x74) [10733.967207] [] (release_firmware) from [] (trigger_async_request_store+0x60/0x124) [10733.976501] [] (trigger_async_request_store) from [] (dev_attr_store+0x28/0x34) [10733.985533] [] (dev_attr_store) from [] (sysfs_kf_write+0x4c/0x58) [10733.993437] [] (sysfs_kf_write) from [] (kernfs_fop_write+0x144/0x1a8) [10734.001689] [] (kernfs_fop_write) from [] (__vfs_write+0x3c/0xe4) After this patch: # printf '\x00' > /sys/devices/virtual/misc/test_firmware/trigger_async_request [ 32.126322] test_firmware: loading '' [ 32.129995] test_firmware: failed to async load firmware -bash: printf: write error: No such device Fixes: 471b095dfe0d ("firmware_class: make sure fw requests contain a name") Signed-off-by: Brian Norris Acked-by: Ming Lei Acked-by: Kees Cook Signed-off-by: Shuah Khan drivers/base/firmware_class.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit eb910947c82f93cee6ee00a59a4ed86f12cf6e7f Author: Brian Norris Date: Wed Dec 9 14:50:27 2015 -0800 test: firmware_class: add asynchronous request trigger We might want to test for bugs like that found in commit f9692b2699bd ("firmware: fix possible use after free on name on asynchronous request"), where the asynchronous request API had race conditions. Let's add a simple file that will launch the async request, then wait until it's complete and report the status. It's not a true async test (we're using a mutex + wait_for_completion(), so we can't get more than one going at the same time), but it does help make sure the basic API is sane, and it can catch some class of bugs. Signed-off-by: Brian Norris Cc: Luis R. Rodriguez Acked-by: Kees Cook Signed-off-by: Shuah Khan lib/test_firmware.c | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) commit be4a1326d12cce8df1f57017bf4112eaab437a38 Author: Brian Norris Date: Wed Dec 9 14:50:26 2015 -0800 test: firmware_class: use kstrndup() where appropriate We're essentially just doing an open-coded kstrndup(). The only differences are with what happens after the first '\0' character, but request_firmware() doesn't care about that. Suggested-by: Kees Cook Signed-off-by: Brian Norris Signed-off-by: Shuah Khan lib/test_firmware.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 47e0bbb7fa985a0f1b5794a8653fae4f8f49de77 Author: Brian Norris Date: Wed Dec 9 14:50:25 2015 -0800 test: firmware_class: report errors properly on failure request_firmware() failures currently won't get reported at all (the error code is discarded). What's more, we get confusing messages, like: # echo -n notafile > /sys/devices/virtual/misc/test_firmware/trigger_request [ 8280.311856] test_firmware: loading 'notafile' [ 8280.317042] test_firmware: load of 'notafile' failed: -2 [ 8280.322445] test_firmware: loaded: 0 # echo $? 0 Report the failures via write() errors, and don't say we "loaded" anything. Signed-off-by: Brian Norris Acked-by: Kees Cook Signed-off-by: Shuah Khan lib/test_firmware.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit b5bb6d3068eabb075ee7db09c73374f6db73ff4a Author: Kees Cook Date: Thu Dec 10 14:50:25 2015 -0800 selftests/seccomp: fix 32-bit build warnings The casting was done incorrectly for 32-bit builds. Fixed to use uintptr_t. Reported-by: Eric Adams Signed-off-by: Kees Cook Signed-off-by: Shuah Khan tools/testing/selftests/seccomp/test_harness.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit b7ffffbb46f205e7727a18bcc7a46c3c2b534f7c Author: Steven Rostedt (Red Hat) Date: Thu Jan 7 15:40:01 2016 -0500 ftrace: Add infrastructure for delayed enabling of module functions Qiu Peiyang pointed out that there's a race when enabling function tracing and loading a module. In order to make the modifications of converting nops in the prologue of functions into callbacks, the text needs to be converted from read-only to read-write. When enabling function tracing, the text permission is updated, the functions are modified, and then they are put back. When loading a module, the updates to convert function calls to mcount is done before the module text is set to read-only. But after it is done, the module text is visible by the function tracer. Thus we have the following race: CPU 0 CPU 1 ----- ----- start function tracing set text to read-write load_module add functions to ftrace set module text read-only update all functions to callbacks modify module functions too < Can't it's read-only > When this happens, ftrace detects the issue and disables itself till the next reboot. To fix this, a new DISABLED flag is added for ftrace records, which all module functions get when they are added. Then later, after the module code is all set, the records will have the DISABLED flag cleared, and they will be enabled if any callback wants all functions to be traced. Note, this doesn't add the delay to later. It simply changes the ftrace_module_init() to do both the setting of DISABLED records, and then immediately calls the enable code. This helps with testing this new code as it has the same behavior as previously. Another change will come after this to have the ftrace_module_enable() called after the text is set to read-only. Cc: Qiu Peiyang Signed-off-by: Steven Rostedt include/linux/ftrace.h | 6 +- kernel/trace/ftrace.c | 161 ++++++++++++++++++++++++++++++++----------------- 2 files changed, 110 insertions(+), 57 deletions(-) commit cdf88b4f45142f7c85a934f05b55a6c08e1d2414 Author: Yuan Sun Date: Thu Jan 7 14:54:02 2016 +0800 add breakpoints/.gitignore Signed-off-by: Yuan Sun Signed-off-by: Shuah Khan tools/testing/selftests/breakpoints/.gitignore | 1 + 1 file changed, 1 insertion(+) commit f4cbbcc28476cc6cbb3903fd794d62cc0710bd77 Author: Yuan Sun Date: Thu Jan 7 14:54:01 2016 +0800 add ptrace/.gitignore Signed-off-by: Yuan Sun Signed-off-by: Shuah Khan tools/testing/selftests/ptrace/.gitignore | 1 + 1 file changed, 1 insertion(+) commit 886187c4a12b5a75c146f8477d96e6b308cd0fe6 Author: Yuan Sun Date: Thu Jan 7 14:54:00 2016 +0800 update .gitignore in selftests/timers Signed-off-by: Yuan Sun Signed-off-by: Shuah Khan tools/testing/selftests/timers/.gitignore | 1 + 1 file changed, 1 insertion(+) commit 27f87a8775d264eaeb9b0c7ec11ae4d7a9d8b2ac Author: Yuan Sun Date: Thu Jan 7 14:53:59 2016 +0800 update .gitignore in selftests/vm Signed-off-by: Yuan Sun Signed-off-by: Shuah Khan tools/testing/selftests/vm/.gitignore | 5 +++++ 1 file changed, 5 insertions(+) commit c66b651ce60bb82d8f6fe8ca35e70f323e3a260c Author: Brian Norris Date: Thu Jan 7 11:06:46 2016 -0800 mtd: nandsim: use nand_get_controller_data() Commit d699ed250c07 ("mtd: nand: make use of nand_set/get_controller_data() helpers") overlooked some uses of nand_chip::priv. Signed-off-by: Brian Norris Reviewed-by: Boris Brezillon drivers/mtd/nand/nandsim.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) commit f118902490aa1c3a361e485dd38a7b28cd130d71 Author: Brian Norris Date: Thu Jan 7 10:02:59 2016 -0800 mtd: jz4780_nand: remove useless mtd->priv = chip assignment As of commit 2d3b77bac34b ("mtd: nand: update mtd_to_nand()"), this assignment isn't necessary, since struct mtd_info is embedded in struct nand_chip. Signed-off-by: Brian Norris Cc: Harvey Hunt Cc: Alex Smith Reviewed-by: Boris Brezillon drivers/mtd/nand/jz4780_nand.c | 1 - 1 file changed, 1 deletion(-) commit a831e67913e356be63d5bb0509fc1af3c4e6ceb4 Author: Arnaldo Carvalho de Melo Date: Thu Jan 7 16:59:27 2016 -0300 perf tests: Give a bit more information on the CQM test failure path Before: $ perf test -v cqm 48: Test intel cqm nmi context read : --- start --- test child forked, pid 1681 parse_events failed test child finished with -2 ---- end ---- Test intel cqm nmi context read: Skip $ After: $ perf test -v cqm 48: Test intel cqm nmi context read : --- start --- test child forked, pid 1681 parse_events failed, is "intel_cqm/llc_occupancy/" available? test child finished with -2 ---- end ---- Test intel cqm nmi context read: Skip $ Cc: Adrian Hunter Cc: David Ahern Cc: Jiri Olsa Cc: Matt Fleming Cc: Namhyung Kim Cc: Wang Nan Link: http://lkml.kernel.org/n/tip-eidpiv5x4nkbsx37xwikbnir@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/arch/x86/tests/intel-cqm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 239849dde350c9f7356974ca4f62171f50a2c86e Author: Arnaldo Carvalho de Melo Date: Thu Jan 7 16:51:58 2016 -0300 perf tests: No need to set attr.sample_freq for tracking !PERF_RECORD_SAMPLE We were asking for a 4kHz sample_freq, making the test fail needlessly when the system reduced /proc/sys/kernel/perf_event_max_sample_rate below that. Before: # perf test -vv dummy 23: Test using a dummy software event to keep tracking : --- start --- test child forked, pid 32421 ------------------------------------------------------------ perf_event_attr: type 1 size 112 config 0x9 { sample_period, sample_freq } 4000 sample_type IP|TID|ID|PERIOD sys_perf_event_open failed, error -22 Unable to open dummy and cycles event test child finished with -2 ---- end ---- Test using a dummy software event to keep tracking: Skip # [root@zoo ~]# cat /proc/sys/kernel/perf_event_max_sample_rate 1000 After: [root@zoo ~]# perf test dummy 23: Test using a dummy software event to keep tracking : Ok Cc: Adrian Hunter Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Wang Nan Link: http://lkml.kernel.org/n/tip-487iquegrs2379e5n0pi0tcp@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/keep-tracking.c | 1 - 1 file changed, 1 deletion(-) commit 372b212263998ae8e3b2f80ce52af3168d749158 Author: Arnaldo Carvalho de Melo Date: Thu Jan 7 16:47:11 2016 -0300 perf python: Add missing files to binding link list Fixing this problem, introduced recently: $ perf test python 16: Try 'import perf' in python, checking link problems : FAILED! In verbose mode we find out what is missing: $ perf test -v python 16: Try 'import perf' in python, checking link problems : --- start --- test child forked, pid 24894 Traceback (most recent call last): File "", line 1, in ImportError: /tmp/build/perf/python/perf.so: undefined symbol: find_next_bit test child finished with -1 ---- end ---- Try 'import perf' in python, checking link problems: FAILED! $ Cc: Adrian Hunter Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Wang Nan Fixes: f77b57ad4fc4 ("perf cpu_map: Add cpu_map__new_event function") Link: http://lkml.kernel.org/n/tip-rajx0zkz6czdrnvvwf0jp76p@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/python-ext-sources | 2 ++ 1 file changed, 2 insertions(+) commit 123581775336e91538e45cc00606692e1c410a66 Merge: 9e0efaf 711fdba Author: David S. Miller Date: Thu Jan 7 14:31:28 2016 -0500 Merge branch 'mdio-devices' Andrew Lunn says: ==================== Support MDIO devices The discussions about changing the way DSA probes switches resulted in the wish to have switches attached to an MDIO bus to be represented as an MDIO device. However the current code only supports PHYs on MDIO busses. This patchset remedies this problem. It consists of a number of cleanups, abstraction for accessing structure members, and refactoring, as well as adding the concept of a generic MDIO device and MDIO driver. v2: Added Reviewed-by from Florian Made phydev_name() an inline function Added phy_attached_info/phy_attached_print() for information about the attached phy. Removed now redundant irq setup from of_mdio.c Dropped hunks from PHYMII ioctl which prevented access to any address DSA carrier off before phy setup ==================== Signed-off-by: David S. Miller commit 711fdba37a3dd7ee487e28767f9f0e67144cbf80 Author: Andrew Lunn Date: Wed Jan 6 20:11:27 2016 +0100 mdio: Abstract device_remove() and device_free() Make device_free and device_remove operations in the mdio device structure, so the core code does not need to differentiate between phy devices and generic mdio devices. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/mdio_bus.c | 23 +++++++++-------------- drivers/net/phy/mdio_device.c | 2 ++ drivers/net/phy/phy_device.c | 18 ++++++++++++++++++ include/linux/mdio.h | 4 ++++ 4 files changed, 33 insertions(+), 14 deletions(-) commit a9049e0c513c4521dbfaa302af8ed08b3366b41f Author: Andrew Lunn Date: Wed Jan 6 20:11:26 2016 +0100 mdio: Add support for mdio drivers. Not all devices on an MDIO bus are PHYs. Meaning not all MDIO drivers are PHY drivers. Add support for generic MDIO drivers. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/Makefile | 2 +- drivers/net/phy/mdio_bus.c | 13 +++- drivers/net/phy/mdio_device.c | 169 ++++++++++++++++++++++++++++++++++++++++++ drivers/net/phy/phy_device.c | 27 ++++--- drivers/of/of_mdio.c | 33 +++++++++ include/linux/mdio.h | 50 +++++++++++++ include/linux/phy.h | 9 ++- 7 files changed, 286 insertions(+), 17 deletions(-) commit f89df3f381f1e1247ddccdf178f203c06fddf5ce Author: Andrew Lunn Date: Wed Jan 6 20:11:25 2016 +0100 mdio_bus: Add comment to mdiobus_scan() and __mdiobus_register() Make it clear that mdiobus_scan () will only find devices which have a vendor/product ID in registers 2 and 3. These are typically PHY devices. Other sort of MDIO devices, such as switches, are not expected to be found during the scan. Similarly, __mdiobus_register(), which calls mdiobus_scan() will only find PHY devices, and other sorts of MDIO devices are expected to be instantiated from device tree. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/mdio_bus.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) commit f03bc4ae552f30faa9bbee2d72bd1ee34667011a Author: Andrew Lunn Date: Wed Jan 6 20:11:24 2016 +0100 mdio_bus: Generalise of_mdiobus_link_phydev() This function should work with any sort of MDIO device which can be probed on the bus, not just PHY devices. So generalise it. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/mdio_bus.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) commit e76a4957c5ee5cf69cea89d450c29c536e77ce9e Author: Andrew Lunn Date: Wed Jan 6 20:11:23 2016 +0100 phy: Move phy specific bus match into phy_device Matching a driver to a device has both generic parts, and parts which are specific to PHY devices. Move the PHY specific parts into phy_device. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/mdio_bus.c | 38 ++++++++++++-------------------------- drivers/net/phy/phy_device.c | 28 ++++++++++++++++++++++++++++ include/linux/mdio.h | 1 + 3 files changed, 41 insertions(+), 26 deletions(-) commit be01da72b1b832b89fbdf59ae6f1b60e53ca2987 Author: Andrew Lunn Date: Wed Jan 6 20:11:22 2016 +0100 phy: Centralize setting driver module owner Rather than have each driver set the driver owner field, do it once in the core code. This will also help with later changes, when the device structure will move. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/amd.c | 1 - drivers/net/phy/aquantia.c | 4 ---- drivers/net/phy/at803x.c | 9 --------- drivers/net/phy/bcm63xx.c | 2 -- drivers/net/phy/bcm7xxx.c | 6 ------ drivers/net/phy/bcm87xx.c | 2 -- drivers/net/phy/broadcom.c | 12 ------------ drivers/net/phy/cicada.c | 2 -- drivers/net/phy/davicom.c | 4 ---- drivers/net/phy/dp83640.c | 3 +-- drivers/net/phy/dp83848.c | 2 -- drivers/net/phy/dp83867.c | 2 -- drivers/net/phy/et1011c.c | 1 - drivers/net/phy/icplus.c | 3 --- drivers/net/phy/lxt.c | 4 ---- drivers/net/phy/marvell.c | 13 ------------- drivers/net/phy/micrel.c | 13 ------------- drivers/net/phy/microchip.c | 2 -- drivers/net/phy/national.c | 1 - drivers/net/phy/phy_device.c | 13 +++++++------ drivers/net/phy/qsemi.c | 1 - drivers/net/phy/realtek.c | 5 ----- drivers/net/phy/smsc.c | 10 ---------- drivers/net/phy/ste10Xp.c | 2 -- drivers/net/phy/teranetics.c | 1 - drivers/net/phy/vitesse.c | 8 -------- include/linux/phy.h | 7 ++++--- 27 files changed, 12 insertions(+), 121 deletions(-) commit bc87922ff59d364a33e9bce0febdef21a7fbd2af Author: Andrew Lunn Date: Wed Jan 6 20:11:21 2016 +0100 phy: Move PHY PM operations into phy_device The MDIO PM operations are really PHY device PM operations. So move them into phy_device. This will be needed when we support devices on the mdio bus which are not PHYs. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/mdio_bus.c | 83 ++++---------------------------- drivers/net/phy/phy_device.c | 110 +++++++++++++++++++++++++++++++++++++++++++ include/linux/mdio.h | 2 +- 3 files changed, 121 insertions(+), 74 deletions(-) commit 0071f56e46dadb88dc3ad1f8d9cf9c3ae014735d Author: Andrew Lunn Date: Wed Jan 6 20:11:20 2016 +0100 dsa: Register netdev before phy When the phy is connected, an info message is printed. If the netdev it is attached to has not been registered yet, the name 'uninitialised' in the output. By registering the netdev first, then connecting they phy, we can avoid this. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller net/dsa/slave.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 5cf11beef2c4333b511ff9cef5285320616d938b Author: Andrew Lunn Date: Wed Jan 6 20:11:19 2016 +0100 phy_device: Move phy attributes into phy_device The mdio_bus exports three attributes: - PHY ID is the unique 32-bits identifier for a MDIO device implementing standard MII registers MII_PHYSID1/2, which is not guaranteed to be the case for non-standard compliant devices (e.g: Ethernet switches) - PHY interface describes the data-path of the PHY/MDIO device, which is not strictly a PHY thing, but is required and needed for PHY devices to function, a MDIO device could be a control device exclusively - PHY has fixups describes what the PHY driver may have done, so completely PHY specific These are all phy attributes, not generic mdio attributes. So move the attributes into the phy device code. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/mdio_bus.c | 42 ------------------------------------------ drivers/net/phy/phy_device.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 42 deletions(-) commit 7f854420fbfe9d49afe2ffb1df052cfe8e215541 Author: Andrew Lunn Date: Wed Jan 6 20:11:18 2016 +0100 phy: Add API for {un}registering an mdio device to a bus. Rather than have drivers directly manipulate the mii_bus structure, provide and API for registering and unregistering devices on an MDIO bus, and performing lookups. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/ethernet/amd/au1000_eth.c | 9 +++-- drivers/net/ethernet/broadcom/b44.c | 2 +- drivers/net/ethernet/broadcom/genet/bcmmii.c | 2 +- drivers/net/ethernet/broadcom/tg3.c | 30 +++++++-------- drivers/net/ethernet/ethoc.c | 4 +- drivers/net/ethernet/faraday/ftgmac100.c | 2 +- drivers/net/ethernet/freescale/fec_main.c | 7 +--- drivers/net/ethernet/samsung/sxgbe/sxgbe_mdio.c | 2 +- drivers/net/ethernet/smsc/smsc9420.c | 3 +- drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 2 +- drivers/net/ethernet/ti/davinci_mdio.c | 2 +- drivers/net/phy/mdio_bus.c | 46 ++++++++++++++++++++++- drivers/net/phy/phy_device.c | 21 +++++------ drivers/of/of_mdio.c | 2 +- include/linux/mdio.h | 8 ++++ include/linux/phy.h | 2 +- net/dsa/slave.c | 3 +- 17 files changed, 98 insertions(+), 49 deletions(-) commit 801a8ef54e8b21eb6699aaa88681259dafb1d1b5 Author: Andrew Lunn Date: Wed Jan 6 20:11:17 2016 +0100 of: phy: Only register a phy device for phys We will soon support devices other than phys on the mdio bus. Look at a child's compatibility string to determine if it is a phy, before registering a phy device. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/of/of_mdio.c | 41 ++++++++++++++++++++++++++++++++++------- 1 file changed, 34 insertions(+), 7 deletions(-) commit e5a03bfd873c29eb786655ef2e95e53ed242b404 Author: Andrew Lunn Date: Wed Jan 6 20:11:16 2016 +0100 phy: Add an mdio_device structure Not all devices attached to an MDIO bus are phys. So add an mdio_device structure to represent the generic parts of an mdio device, and place this structure into the phy_device. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/ethernet/agere/et131x.c | 30 ++++++------ drivers/net/ethernet/altera/altera_tse_main.c | 2 +- drivers/net/ethernet/broadcom/b44.c | 2 +- drivers/net/ethernet/broadcom/genet/bcmmii.c | 2 +- drivers/net/ethernet/broadcom/sb1250-mac.c | 4 +- drivers/net/ethernet/freescale/fman/fman_dtsec.c | 6 +-- drivers/net/ethernet/freescale/fman/fman_memac.c | 6 +-- drivers/net/ethernet/freescale/fs_enet/mac-fec.c | 2 +- drivers/net/ethernet/freescale/gianfar.c | 4 +- drivers/net/ethernet/freescale/ucc_geth.c | 4 +- drivers/net/ethernet/hisilicon/hns/hns_ethtool.c | 2 +- drivers/net/ethernet/marvell/mv643xx_eth.c | 2 +- drivers/net/ethernet/marvell/mvneta.c | 2 +- drivers/net/ethernet/smsc/smsc911x.c | 11 +++-- drivers/net/ethernet/smsc/smsc9420.c | 3 +- drivers/net/ethernet/ti/cpsw.c | 3 +- drivers/net/ethernet/ti/davinci_mdio.c | 2 +- drivers/net/ethernet/xilinx/xilinx_emaclite.c | 2 +- drivers/net/phy/at803x.c | 2 +- drivers/net/phy/bcm87xx.c | 4 +- drivers/net/phy/dp83640.c | 22 +++++---- drivers/net/phy/dp83867.c | 4 +- drivers/net/phy/fixed_phy.c | 10 ++-- drivers/net/phy/icplus.c | 18 +++---- drivers/net/phy/marvell.c | 7 +-- drivers/net/phy/mdio_bus.c | 12 ++--- drivers/net/phy/micrel.c | 12 ++--- drivers/net/phy/microchip.c | 4 +- drivers/net/phy/phy.c | 25 +++++----- drivers/net/phy/phy_device.c | 62 ++++++++++++------------ drivers/net/phy/smsc.c | 2 +- drivers/of/of_mdio.c | 6 +-- include/linux/mdio.h | 9 ++++ include/linux/phy.h | 26 +++++----- net/dsa/dsa.c | 2 +- 35 files changed, 165 insertions(+), 151 deletions(-) commit e7f4dc3536a40097f95103ddf98dd55b3a980f5b Author: Andrew Lunn Date: Wed Jan 6 20:11:15 2016 +0100 mdio: Move allocation of interrupts into core Have mdio_alloc() create the array of interrupt numbers, and initialize it to POLLING. This is what most MDIO drivers want, so allowing code to be removed from the drivers. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller arch/powerpc/platforms/82xx/ep8248e.c | 10 +--------- arch/powerpc/platforms/pasemi/gpio_mdio.c | 3 --- drivers/net/ethernet/8390/ax88796.c | 15 ++------------- drivers/net/ethernet/adi/bfin_mac.c | 11 +---------- drivers/net/ethernet/aeroflex/greth.c | 5 ----- drivers/net/ethernet/aeroflex/greth.h | 1 - drivers/net/ethernet/agere/et131x.c | 13 +------------ drivers/net/ethernet/altera/altera_tse_main.c | 13 +------------ drivers/net/ethernet/amd/au1000_eth.c | 7 ------- drivers/net/ethernet/broadcom/b44.c | 14 +------------- drivers/net/ethernet/broadcom/bcm63xx_enet.c | 9 --------- drivers/net/ethernet/broadcom/bgmac.c | 15 ++------------- drivers/net/ethernet/broadcom/genet/bcmmii.c | 10 ---------- drivers/net/ethernet/broadcom/sb1250-mac.c | 4 ---- drivers/net/ethernet/broadcom/tg3.c | 4 ---- drivers/net/ethernet/broadcom/tg3.h | 1 - drivers/net/ethernet/cadence/macb.c | 14 +------------- drivers/net/ethernet/dnet.c | 12 +----------- drivers/net/ethernet/ethoc.c | 14 +------------- drivers/net/ethernet/faraday/ftgmac100.c | 6 ------ drivers/net/ethernet/freescale/fec_main.c | 16 ++-------------- drivers/net/ethernet/freescale/fec_mpc52xx_phy.c | 4 ---- drivers/net/ethernet/freescale/fs_enet/mii-bitbang.c | 10 +--------- drivers/net/ethernet/freescale/fs_enet/mii-fec.c | 10 +--------- drivers/net/ethernet/freescale/fsl_pq_mdio.c | 2 -- drivers/net/ethernet/hisilicon/hns_mdio.c | 5 ----- drivers/net/ethernet/lantiq_etop.c | 14 +------------- drivers/net/ethernet/marvell/mvmdio.c | 10 +--------- drivers/net/ethernet/nxp/lpc_eth.c | 13 +------------ drivers/net/ethernet/rdc/r6040.c | 14 +------------- drivers/net/ethernet/renesas/sh_eth.c | 12 +----------- drivers/net/ethernet/smsc/smsc911x.c | 6 ++---- drivers/net/ethernet/smsc/smsc9420.c | 6 +----- drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 14 ++++---------- drivers/net/ethernet/synopsys/dwc_eth_qos.c | 15 ++------------- drivers/net/ethernet/ti/cpmac.c | 3 --- drivers/net/ethernet/toshiba/tc35815.c | 14 +------------- drivers/net/ethernet/xilinx/ll_temac.h | 1 - drivers/net/ethernet/xilinx/ll_temac_mdio.c | 2 -- drivers/net/ethernet/xilinx/xilinx_axienet.h | 2 -- drivers/net/ethernet/xilinx/xilinx_axienet_mdio.c | 2 -- drivers/net/ethernet/xilinx/xilinx_emaclite.c | 4 ---- drivers/net/phy/fixed_phy.c | 4 +--- drivers/net/phy/mdio-bcm-unimac.c | 11 +---------- drivers/net/phy/mdio-gpio.c | 2 +- drivers/net/phy/mdio-moxart.c | 7 ------- drivers/net/phy/mdio-mux.c | 3 +-- drivers/net/phy/mdio-octeon.c | 2 -- drivers/net/phy/mdio-sun4i.c | 12 +----------- drivers/net/phy/mdio_bus.c | 5 +++++ drivers/net/usb/ax88172a.c | 14 ++------------ drivers/net/usb/lan78xx.c | 11 +---------- drivers/of/of_mdio.c | 7 +------ include/linux/phy.h | 6 +++--- 54 files changed, 48 insertions(+), 396 deletions(-) commit 35d2aeac9810ca717a72a4ff0d8a20d349e73e55 Author: Andrew Lunn Date: Wed Jan 6 20:11:14 2016 +0100 phy: mdio-octeon: Use devm_mdiobus_alloc_size() Rather than use devm_kzalloc(), use the mdio helper function. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/mdio-octeon.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) commit 2220943a21e26d97d7fd8f83c004b947326b469d Author: Andrew Lunn Date: Wed Jan 6 20:11:13 2016 +0100 phy: Centralise print about attached phy Many Ethernet drivers contain the same netdev_info() print statement about the attached phy. Move it into the phy device code. Additionally add a varargs function which can be used to append additional information. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/ethernet/adi/bfin_mac.c | 6 ++---- drivers/net/ethernet/agere/et131x.c | 4 +--- drivers/net/ethernet/amd/au1000_eth.c | 4 +--- drivers/net/ethernet/broadcom/b44.c | 3 +-- drivers/net/ethernet/broadcom/bcm63xx_enet.c | 3 +-- drivers/net/ethernet/broadcom/sb1250-mac.c | 7 +++---- drivers/net/ethernet/broadcom/tg3.c | 10 +++------- drivers/net/ethernet/cadence/macb.c | 3 +-- drivers/net/ethernet/dnet.c | 4 +--- drivers/net/ethernet/freescale/fec_main.c | 4 +--- drivers/net/ethernet/lantiq_etop.c | 4 +--- drivers/net/ethernet/nxp/lpc_eth.c | 5 ++--- drivers/net/ethernet/rdc/r6040.c | 4 +--- drivers/net/ethernet/renesas/ravb_main.c | 3 +-- drivers/net/ethernet/renesas/sh_eth.c | 3 +-- drivers/net/ethernet/smsc/smsc911x.c | 4 +--- drivers/net/ethernet/smsc/smsc9420.c | 9 ++------- drivers/net/ethernet/synopsys/dwc_eth_qos.c | 12 +----------- drivers/net/ethernet/ti/cpsw.c | 4 ++-- drivers/net/ethernet/ti/davinci_emac.c | 5 +---- drivers/net/ethernet/toshiba/tc35815.c | 6 ++---- drivers/net/phy/phy_device.c | 27 +++++++++++++++++++++++++++ drivers/staging/netlogic/xlr_net.c | 3 +-- include/linux/phy.h | 4 ++++ net/dsa/slave.c | 5 ++--- 25 files changed, 64 insertions(+), 82 deletions(-) commit 053e7e169229adebbc27fc176c5369398e9f5eba Author: Andrew Lunn Date: Wed Jan 6 20:11:12 2016 +0100 phy: phy_{read|write}_mmd_indirect: get addr from phydev The address of the device can be determined from the phydev structure, rather than passing it as a parameter. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/bcm-phy-lib.c | 8 ++++---- drivers/net/phy/dp83867.c | 6 +++--- drivers/net/phy/microchip.c | 5 ++--- drivers/net/phy/phy.c | 36 ++++++++++++++---------------------- include/linux/phy.h | 7 ++----- 5 files changed, 25 insertions(+), 37 deletions(-) commit 04521bf840482af30a6ed54835cefadcecdd56da Author: Andrew Lunn Date: Wed Jan 6 20:11:11 2016 +0100 net: dnet: Use phy_find_first() helper Replace the open coded search for the first phy with a call to the existing helper function. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/ethernet/dnet.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit 84eff6d194df442bee62c129f2f47efb0dbd0468 Author: Andrew Lunn Date: Wed Jan 6 20:11:10 2016 +0100 phy: add phydev_name() wrapper Add a phydev_name() function, to help with moving some structure members from phy_device. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/ethernet/8390/ax88796.c | 2 +- drivers/net/ethernet/adi/bfin_mac.c | 4 ++-- drivers/net/ethernet/agere/et131x.c | 4 ++-- drivers/net/ethernet/amd/au1000_eth.c | 4 ++-- drivers/net/ethernet/broadcom/b44.c | 2 +- drivers/net/ethernet/broadcom/tg3.c | 4 ++-- drivers/net/ethernet/cadence/macb.c | 2 +- drivers/net/ethernet/dnet.c | 6 +++--- drivers/net/ethernet/faraday/ftgmac100.c | 2 +- drivers/net/ethernet/lantiq_etop.c | 4 ++-- drivers/net/ethernet/nxp/lpc_eth.c | 4 ++-- drivers/net/ethernet/rdc/r6040.c | 4 ++-- drivers/net/ethernet/renesas/ravb_main.c | 2 +- drivers/net/ethernet/renesas/sh_eth.c | 2 +- drivers/net/ethernet/samsung/sxgbe/sxgbe_mdio.c | 2 +- drivers/net/ethernet/smsc/smsc911x.c | 2 +- drivers/net/ethernet/smsc/smsc9420.c | 4 ++-- drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 2 +- drivers/net/ethernet/ti/davinci_emac.c | 2 +- drivers/net/ethernet/ti/davinci_mdio.c | 2 +- drivers/net/ethernet/ti/netcp_ethss.c | 4 ++-- drivers/net/ethernet/toshiba/tc35815.c | 4 ++-- drivers/net/phy/bcm7xxx.c | 2 +- drivers/net/phy/phy_device.c | 2 +- drivers/staging/netlogic/xlr_net.c | 6 +++--- include/linux/phy.h | 5 +++++ 26 files changed, 44 insertions(+), 39 deletions(-) commit 72ba48be3ec8e70937ad97d4420ef7144617c64b Author: Andrew Lunn Date: Wed Jan 6 20:11:09 2016 +0100 phy: Add phydev_err() and phydev_dbg() macros In preparation for moving some of the phy_device structure members, add macros for printing errors and debug information. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/at803x.c | 4 ++-- drivers/net/phy/bcm87xx.c | 5 +++-- drivers/net/phy/micrel.c | 16 +++++++++------- drivers/net/phy/phy.c | 5 +++-- include/linux/phy.h | 6 ++++++ 5 files changed, 23 insertions(+), 13 deletions(-) commit cd690e48f567642e1c1a2b67e592010e6456082a Author: Andrew Lunn Date: Wed Jan 6 20:11:08 2016 +0100 phy: Use phy_read() instead of mdiobus_read() Since we have a phydev, make use of it and the phy_read() function. This will help with later refactoring. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/ethernet/hisilicon/hns/hns_ethtool.c | 104 ++++++++--------------- 1 file changed, 36 insertions(+), 68 deletions(-) commit bac83c653799d7ea3f6cc4d7396d75adc5e0f778 Author: Andrew Lunn Date: Wed Jan 6 20:11:07 2016 +0100 mdio: Move mdiobus_read/write operatings into mdio.h These are logically MDIO operations, not phy operations, so move them into the mdio header. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller include/linux/mdio.h | 6 ++++++ include/linux/phy.h | 6 +----- 2 files changed, 7 insertions(+), 5 deletions(-) commit ccaa953e9fc7ebb90fba4e4815966683bef4866f Author: Andrew Lunn Date: Wed Jan 6 20:11:06 2016 +0100 phy: Consistently use addr for address on an MII bus Within phy.h, an address on an MII bus has been called both addr and phy_id. phy_id is particularly confusion, since it also means the ID found in register 3, if the device on the bus is a phy. Consistently use addr. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller include/linux/phy.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f07dcb90e4a9ccab9663a50847f255c9b0e2ada1 Author: Boris BREZILLON Date: Thu Dec 10 09:00:42 2015 +0100 staging: mt29f_spinand: make use of nand_set/get_controller_data() helpers New helpers have been added to avoid directly accessing chip->field. Use them where appropriate. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/staging/mt29f_spinand/mt29f_spinand.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit d699ed250c07384840263bbbf69cf7b90b45470c Author: Boris BREZILLON Date: Thu Dec 10 09:00:41 2015 +0100 mtd: nand: make use of nand_set/get_controller_data() helpers New helpers have been added to avoid directly accessing chip->field. Use them where appropriate. Signed-off-by: Boris Brezillon [Brian: fixed a few rebase conflicts] Signed-off-by: Brian Norris drivers/mtd/nand/ams-delta.c | 6 +-- drivers/mtd/nand/atmel_nand.c | 55 +++++++++++----------- drivers/mtd/nand/bcm47xxnflash/main.c | 2 +- drivers/mtd/nand/bcm47xxnflash/ops_bcm4706.c | 16 +++---- drivers/mtd/nand/bf5xx_nand.c | 2 +- drivers/mtd/nand/brcmnand/brcmnand.c | 30 ++++++------ drivers/mtd/nand/cafe_nand.c | 24 +++++----- drivers/mtd/nand/diskonchip.c | 70 ++++++++++++++-------------- drivers/mtd/nand/docg4.c | 40 ++++++++-------- drivers/mtd/nand/fsl_elbc_nand.c | 22 ++++----- drivers/mtd/nand/fsl_ifc_nand.c | 26 +++++------ drivers/mtd/nand/fsmc_nand.c | 2 +- drivers/mtd/nand/gpmi-nand/gpmi-nand.c | 28 +++++------ drivers/mtd/nand/hisi504_nand.c | 20 ++++---- drivers/mtd/nand/lpc32xx_mlc.c | 19 ++++---- drivers/mtd/nand/lpc32xx_slc.c | 20 ++++---- drivers/mtd/nand/mpc5121_nfc.c | 24 +++++----- drivers/mtd/nand/mxc_nand.c | 36 +++++++------- drivers/mtd/nand/nandsim.c | 4 +- drivers/mtd/nand/ndfc.c | 16 +++---- drivers/mtd/nand/orion_nand.c | 4 +- drivers/mtd/nand/pxa3xx_nand.c | 22 ++++----- drivers/mtd/nand/r852.c | 6 +-- drivers/mtd/nand/s3c2410.c | 4 +- drivers/mtd/nand/socrates_nand.c | 11 +++-- drivers/mtd/nand/txx9ndfmc.c | 8 ++-- 26 files changed, 260 insertions(+), 257 deletions(-) commit d9dccc68c5cae4ef7b4a617a93a87b11c6f0c53a Author: Boris BREZILLON Date: Thu Dec 10 09:00:40 2015 +0100 ARM: make use of nand_set/get_controller_data() helpers New helpers have been added to avoid directly accessing chip->field. Use them where appropriate. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris arch/arm/mach-ixp4xx/ixdp425-setup.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7ae6cfe8d24681bea5a4a4b7a04915ac08c09ba5 Author: Dan Carpenter Date: Thu Jan 7 09:55:14 2016 -0800 Input: omap-keypad - set tasklet data earlier It feels like we should set the tasklet data before enabling it. Signed-off-by: Dan Carpenter Signed-off-by: Dmitry Torokhov drivers/input/keyboard/omap-keypad.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 415a249f88fd263bed0f7cca86ecde8c57aba9dc Author: Dmitry Torokhov Date: Wed Jan 6 14:44:02 2016 -0800 Input: rohm_bu21023 - fix handling of retrying firmware update Because of the wrong condition we'd never retry firmware update. Acked-by: Yoichi Yuasa Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/rohm_bu21023.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1d6d167c2efcfe9539d9cffb1a1be9c92e39c2c0 Author: Mimi Zohar Date: Thu Jan 7 07:46:36 2016 -0500 KEYS: refcount bug fix This patch fixes the key_ref leak, removes the unnecessary KEY_FLAG_KEEP test before setting the flag, and cleans up the if/then brackets style introduced in commit: d3600bc KEYS: prevent keys from being removed from specified keyrings Reported-by: David Howells Signed-off-by: Mimi Zohar Acked-by: David Howells security/keys/key.c | 3 +-- security/keys/keyctl.c | 17 +++++++---------- 2 files changed, 8 insertions(+), 12 deletions(-) commit d39ddbd9ef70949bb78283a067e1b3366111dd90 Author: Boris BREZILLON Date: Thu Dec 10 09:00:39 2015 +0100 mtd: nand: add helpers to access ->priv Add two helpers to access the field reserved for private controller data. This makes it clearer what this field is reserved for and ease future refactoring. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris include/linux/mtd/nand.h | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 1d1e8cdc823b9c0ed9b51dffef59b874b0aac808 Author: Thomas Petazzoni Date: Mon Dec 21 14:13:08 2015 +0100 PCI/MSI: Fix typos in Fix two comment typos in the header. Signed-off-by: Thomas Petazzoni Signed-off-by: Bjorn Helgaas include/linux/msi.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6b9140f39c2aaf76791197fbab0839c0e4af56e8 Author: Sasha Levin Date: Tue Dec 22 12:43:36 2015 -0500 power: test_power: correctly handle empty writes Writing 0 length data into test_power makes it access an invalid array location and kill the system. Fixes: f17ef9b2d ("power: Make test_power driver more dynamic.") Signed-off-by: Sasha Levin Signed-off-by: Sebastian Reichel drivers/power/test_power.c | 2 ++ 1 file changed, 2 insertions(+) commit ae02ab00aa3c282a362af8c4496496970747ddf4 Author: Alex Smith Date: Mon Jan 4 12:34:43 2016 +0000 mtd: nand: jz4780: driver for NAND devices on JZ4780 SoCs Add a driver for NAND devices connected to the NEMC on JZ4780 SoCs, as well as the hardware BCH controller. DMA is not currently implemented. While older 47xx SoCs also have a BCH controller, they are incompatible with the one in the 4780 due to differing register/bit positions, which would make implementing a common driver for them quite messy. Signed-off-by: Alex Smith Cc: Zubair Lutfullah Kakakhel Cc: David Woodhouse Cc: linux-mtd@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Harvey Hunt Reviewed-by: Boris Brezillon [Brian: fixed a few small mistakes] Signed-off-by: Brian Norris drivers/mtd/nand/Kconfig | 7 + drivers/mtd/nand/Makefile | 1 + drivers/mtd/nand/jz4780_bch.c | 381 ++++++++++++++++++++++++++++++++++++ drivers/mtd/nand/jz4780_bch.h | 43 +++++ drivers/mtd/nand/jz4780_nand.c | 425 +++++++++++++++++++++++++++++++++++++++++ 5 files changed, 857 insertions(+) commit 62d7476d958ce06d7a10b02bdb30006870286fe2 Author: Emmanuel Grumbach Date: Tue Jan 5 15:25:43 2016 +0200 iwlwifi: pcie: properly configure the debug buffer size for 8000 8000 device family has a new debug engine that needs to be configured differently than 7000's. The debug engine's DMA works in chunks of memory and the size of the buffer really means the start of the last chunk. Since one chunk is 256-byte long, we should configure the device to write to buffer_size - 256. This fixes a situation were the device would write to memory it is not allowed to access. CC: [4.1+] Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) commit 9fb7807ce7f21cbab2b13db0183f7f71a75add5e Author: Emmanuel Grumbach Date: Tue Jan 5 09:35:21 2016 +0200 iwlwifi: mvm: fix memory leaks in error paths upon fw error dump When iwl_mvm_fw_error_dump fails, it needs to clear the state in mvm, which includes: * clear IWL_MVM_STATUS_DUMPING_FW_LOG * set mvm->fw_dump_trig to NULL * free the description While at it, remove a NULL check in iwl_mvm_free_fw_dump_desc since kfree is NULL safe. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/fw-dbg.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit a80c7a696610c537fd6e61489be9da0a995fc880 Author: Emmanuel Grumbach Date: Tue Jan 5 09:14:08 2016 +0200 iwlwifi: mvm: constify the parameters of a few functions in fw-dbg.c The debug functions of fw-dbg.c don't really need to modify the trigger and the description they receive as a parameter. Constify the pointers. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/iwl-trans.h | 4 ++-- drivers/net/wireless/intel/iwlwifi/mvm/fw-dbg.c | 8 ++++---- drivers/net/wireless/intel/iwlwifi/mvm/fw-dbg.h | 6 +++--- drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 6 +++--- drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 2 +- 5 files changed, 13 insertions(+), 13 deletions(-) commit be720d3fc049e14323f2ba637c053fe39d3e0157 Author: Johannes Berg Date: Tue Jan 5 16:16:31 2016 +0100 iwlwifi: mvm: check minimum temperature notification length This notification will be extended with extra data, so just check that it has a minimum length, not the exact length; we might later add handling for the extra fields added and have more code to handle both versions. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/tt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0eb1c968f3c1519505d20b62f782b4f4daf4f525 Author: Eliad Peller Date: Thu Dec 31 15:19:32 2015 +0200 iwlwifi: mvm: initialize gtkdata->mvm correctly gtkdata->mvm wasn't set in iwl_mvm_d0i3_update_keys, resulting in kernel panic in some flows (when mvm is actually used...) Fixes: a3f7ba5c8825 ("iwlwifi: update key params on d0i3 entrance/exit") Signed-off-by: Eliad Peller Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 1 + 1 file changed, 1 insertion(+) commit f5e28eac1a890e5a950cacfa3a4942a6d69462e6 Author: Johannes Berg Date: Sun Dec 6 14:58:08 2015 +0200 iwlwifi: mvm: check PN for CCMP/GCMP in the driver As we're working on multi-queue RX, we want to parallelise checking the PN in order to avoid having to serialise the RX processing. It may seem that doing parallel PN checking is insecure, but it turns out to be OK because queue assignment is done based on the data in the frame (IP/TCP) and thus cannot be manipulated by an attacker, since the data is encrypted and must first have been decrypted successfully. There are some corner cases, in particular when the peer starts using fragmentation which redirects the packet to the default queue. However this redirection is remembered (for the STA, per TID) and thus cannot be exploited by an attacker either. Leave checking on the default queue (queue 0) to mac80211, since we get fragmented packets there and those are subject to stricter checks during reassembly. Signed-off-by: Johannes Berg Signed-off-by: Sara Sharon Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 114 ++++++++++++++++++---- drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 46 +++++++++ drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 106 +++++++++++++++++--- drivers/net/wireless/intel/iwlwifi/mvm/sta.h | 12 +++ 4 files changed, 245 insertions(+), 33 deletions(-) commit bd6f5bd70012569dc626f50f3272b9f516cf20f8 Author: Ayala Beker Date: Sun Dec 20 09:27:50 2015 +0200 iwlwifi: mvm: don't ask beacons when P2P GO vif and no assoc sta The commit below called iwl_mvm_mac_ctxt_changed() to handle a case that the vif is a P2P GO. However iwl_mvm_mac_ctxt_cmd_go() ignores the number of associated stations and asks the FW to pass beacons anyways. Fix this by checking ap_assoc_sta_count parameter, in iwl_mvm_mac_ctxt_cmd_go() as well, and ask the FW to pass beacons only when there's at least one associated station. Signed-off-by: Ayala Beker Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | 44 ++++++++++------------- 1 file changed, 19 insertions(+), 25 deletions(-) commit 30433d3b9850140ceb801c5cc2013c7b408c33de Author: Johannes Berg Date: Thu Sep 24 18:14:55 2015 +0200 iwlwifi: mvm: prevent multiple stations with the same address As the device (and parts of the driver) cannot deal with having the same MAC address for two stations (on two virtual interfaces), add some explicit code to prevent this case. Note that in practice this cannot happen since the device doesn't support operating with two AP/GO interfaces at the same time either, and other scenarios for this are, while not impossible, not going to happen in practice. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 1 + 1 file changed, 1 insertion(+) commit b6c7d7209dc1f128fb5b9e07ee0bb2f808f86bab Author: Emmanuel Grumbach Date: Thu Dec 24 08:48:46 2015 +0200 iwlwifi: mvm: remove useless WARN_ON and rely on cfg80211's combination We advertise one STATION vif only, so this just can't happen. Remove this useless WARN_ON. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/power.c | 2 -- 1 file changed, 2 deletions(-) commit 909ddf0b812ecd5ff3a9d5a164134a3714101fdb Author: Johannes Berg Date: Mon Sep 21 14:09:17 2015 +0200 iwlwifi: mvm: support A-MSDU in A-MPDU Since A-MPDU deaggregation is done in hardware, and A-MSDU deaggregation is done in software, there's no reason not to support A-MSDU in A-MPDU; set the flag to support it. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 1 + 1 file changed, 1 insertion(+) commit a977a1507ce133201ac2f11b3fbf102a73a77244 Author: Golan Ben-Ami Date: Wed Nov 25 11:44:57 2015 +0200 iwlwifi: mvm: add a non-trigger window to fw dbg triggers Allow the user to configure a non-trigger session - a window between triggers in which the driver won't collect fw debug data. This can be useful when the frequent collection of fw data has an impact on the performance, such as debugging tx flows. Signed-off-by: Golan Ben-Ami Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/iwl-fw-file.h | 5 ++++- drivers/net/wireless/intel/iwlwifi/mvm/fw-dbg.h | 24 ++++++++++++++++++++++++ drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 3 +++ 3 files changed, 31 insertions(+), 1 deletion(-) commit 976f15a8ef53144731f7e431c9498aff9392c9cb Author: Emmanuel Grumbach Date: Mon Dec 28 15:22:28 2015 +0200 iwlwifi: mvm: dump the radio registers when the firmware crashes Dumping the content of the radio registers greatly helps to debug PHY issues, which can lead to TFD queue hang. Signed-off-by: Emmanuel Grumbach .../net/wireless/intel/iwlwifi/iwl-fw-error-dump.h | 2 ++ drivers/net/wireless/intel/iwlwifi/iwl-prph.h | 6 ++++ drivers/net/wireless/intel/iwlwifi/mvm/fw-dbg.c | 40 ++++++++++++++++++++-- 3 files changed, 46 insertions(+), 2 deletions(-) commit ca95ff3a9f9edea919a53a297a4cba178b6cdf5f Author: David Spinadel Date: Sun Jan 3 17:08:32 2016 +0200 iwlwifi: mvm: fix extended dwell time FW adds 10 msec for every dwell time in low band, so we need to set 10 msec less. Don't use extended dwell time when fragmented scan is needed because FW adds 3 msec per probe and it can easily exceed max out of channel time. Fixes: c3e230b167a9 ("iwlwifi: mvm: add extended dwell time") Signed-off-by: David Spinadel Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit 488c28e110e18466c99ffb1e2342498b42d3344e Author: Oren Givon Date: Wed Nov 25 11:17:41 2015 +0200 iwlwifi: nvm: fix loading default NVM file Fix loading the default NVM file, in the case where the requested NVM file isn't found in the file system. Signed-off-by: Oren Givon Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/nvm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f370f5cffe7ae8b92026c8d6cb2738b4d3aeed9c Author: Emmanuel Grumbach Date: Tue Jan 5 16:30:04 2016 +0200 iwlwifi: mvm: bump max API to 20 7265D and up are now able to handle -20.ucode. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/iwl-7000.c | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-8000.c | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-9000.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit ed0450cef00d2c76bcb8778721df947ba7ff4147 Author: Emmanuel Grumbach Date: Mon Jan 4 10:19:17 2016 +0200 iwlwifi: set max firmware version of 7265 to 17 Just like 7260, 7265 will not have firmware releases newer than iwlwifi-7265-17.ucode. 7265D is still supported in latest firmware releases. Fixes: 628a2918afe4 ("iwlwifi: separate firmware version for 7260 devices") Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/iwl-7000.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4ca87a5f58454711cc8cc550a7844efebd9bc001 Author: Emmanuel Grumbach Date: Sun Jan 3 22:23:40 2016 +0200 iwlwifi: mvm: reset mvm->scan_type when firmware is started If we don't reset the scan type when the firmware is started, we will think the firmware is still configured after the interface has been brought down. When we will bring it up again, we will not configure the scan type in firmware and it will crash with the following assert: 0x0000100A | ADVANCED_SYSASSERT Fixes: 355346ba3050 ("iwlwifi: mvm: configure scheduled scan according to traffic conditions") Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/fw.c | 1 + drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) commit 6fa52430f0b3a45a31fb706084288884532e857c Author: Matti Gottlieb Date: Mon Jan 4 13:38:41 2016 +0200 iwlwifi: mvm: change mcc update API New functionality for testing that is not relevant for this driver has been added. This required an API change. Add new cmd & response versions for the MCC update cmd & response. Add new TLV indicating that the FW is using the new API. Signed-off-by: Matti Gottlieb Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/iwl-fw-file.h | 4 ++ drivers/net/wireless/intel/iwlwifi/mvm/fw-api.h | 60 ++++++++++++++++++++++-- drivers/net/wireless/intel/iwlwifi/mvm/nvm.c | 52 +++++++++++++++----- 3 files changed, 100 insertions(+), 16 deletions(-) commit 1e3c3c3529a7d0455b38f74d287d296cb9c786aa Author: Emmanuel Grumbach Date: Sun Dec 13 09:35:30 2015 +0200 iwlwifi: mvm: let the firmware choose the antenna for beacons The firmware knows better what antenna to choose. Old firmware still need the setting, so use a flag to know if the driver should choose the antenna or if the firmware can do it iself. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/iwl-fw-file.h | 3 +++ drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | 9 ++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) commit 006bda75d81fd27a583a3b310e9444fea2aa6ef2 Author: Oren Givon Date: Thu Dec 17 14:17:00 2015 +0200 iwlwifi: update and fix 7265 series PCI IDs Update and fix some 7265 PCI IDs entries. CC: [3.13+] Signed-off-by: Oren Givon Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit a1cdb1c59c8c203de2731fc6910598ed19c97e41 Author: Emmanuel Grumbach Date: Sun Dec 20 08:45:40 2015 +0200 iwlwifi: dvm: fix WoWLAN My commit below introduced a mutex in the transport to prevent concurrent operations. To do so, it added a flag (is_down) to make sure the transport is in the right state. This uncoverred an bug that didn't cause any harm until now: iwldvm calls stop_device and then starts the firmware without calling start_hw in between. While this flow is fine from the device configuration point of view (register, etc...), it is now forbidden by the new is_down flag. This led to this error to appear: iwlwifi 0000:05:00.0: Can't start_fw since the HW hasn't been started and the suspend would fail. This fixes: https://bugzilla.kernel.org/show_bug.cgi?id=109591 CC: [4.3+] Reported-by: Bogdan Bogush Fixes=fa9f3281cbb1 ("iwlwifi: pcie: lock start_hw / start_fw / stop_device") Signed-off-by: Emmanuel Grumbach Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/dvm/lib.c | 3 +++ 1 file changed, 3 insertions(+) commit 2e4f81ee90e801017115afb7397198f65e512031 Author: Arnaldo Carvalho de Melo Date: Thu Jan 7 13:20:22 2016 -0300 perf test: No need for setting attr.sample_freq on the RECORD test We're not looking at PERF_RECORD_SAMPLE entries and now by default we use PERF_COUNT_SW_DUMMY, so just remove that setting. Cc: Adrian Hunter Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Wang Nan Link: http://lkml.kernel.org/n/tip-cly7cnotktv5rqao13pkorem@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/perf-record.c | 1 - 1 file changed, 1 deletion(-) commit 69ef8f475586974d3921c4799bfa75b8fef877a8 Author: Arnaldo Carvalho de Melo Date: Thu Jan 7 13:17:00 2016 -0300 perf test: Use "dummy" events in the PERF_RECORD_ test As we're test just the !PERF_RECORD_SAMPLE records. Cc: Adrian Hunter Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Wang Nan Link: http://lkml.kernel.org/n/tip-qp8radcz3il4q9wbnseh337d@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/perf-record.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 5bae0250237f7a5ec4355f9920701de247b8db91 Author: Arnaldo Carvalho de Melo Date: Thu Jan 7 13:14:56 2016 -0300 perf evlist: Introduce perf_evlist__new_dummy constructor For case where all we need is an evlist with just an "dummy" evsel, like in some 'perf test' entries. Cc: Adrian Hunter Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Wang Nan Link: http://lkml.kernel.org/n/tip-q52le0pblm2k3ncvyilelr9z@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evlist.c | 28 ++++++++++++++++++++++++++++ tools/perf/util/evlist.h | 3 +++ 2 files changed, 31 insertions(+) commit 6201171e3b2c02992e62448636631a0dfe4e9d20 Author: wanghaibin Date: Thu Jan 7 20:38:59 2016 +0800 workqueue: simplify the apply_workqueue_attrs_locked() If the apply_wqattrs_prepare() returns NULL, it has already cleaned up the related resources, so it can return directly and avoid calling the clean up function again. This doesn't introduce any functional changes. Signed-off-by: wanghaibin Signed-off-by: Tejun Heo kernel/workqueue.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit 218e0b575ffe6de1c93249871b25bbf570fe1cb5 Author: Marcus Weseloh Date: Tue Jan 5 21:46:20 2016 +0100 spi: sun4i: Prevent chip-select from being activated twice before a transfer The SPI core calls set_cs before a transfer, but the SUN4I_CTL_CS_MANUAL flag is only set in transfer_one. This leads to the following pattern on the chip-select line (with runtime power-management on every transfer, without it only on the first one): activate, deactivate, activate, transfer, deactivate Moving the configuration of the SUN4I_CTL_CS_MANUAL flag from transfer_one to set_cs removes the double activation. Signed-off-by: Marcus Weseloh Acked-by: Maxime Ripard Signed-off-by: Mark Brown drivers/spi/spi-sun4i.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 70dc6daff090afaab588e800fca3db59bfac694e Author: Dan Carpenter Date: Thu Jan 7 13:03:08 2016 +0300 regulator: core: remove some dead code Originally queue_delayed_work() used to negative error codes or 0 and 1 on success depending if the work was queued or not. It caused a lot of bugs where people treated all non-zero returns as failures so we changed it to return bool instead in d4283e937861 ('workqueue: make queueing functions return bool'). Now it never returns failure. Checking for negative values causes a static checker warning since it is impossible based on the bool type. Signed-off-by: Dan Carpenter Signed-off-by: Mark Brown drivers/regulator/core.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) commit 127d2868484b9769e08a8353e9e43023dcb8b9b3 Author: Geliang Tang Date: Fri Jan 1 22:59:11 2016 +0800 power: generic-adc-battery: use to_delayed_work Use to_delayed_work() instead of open-coding it. Signed-off-by: Geliang Tang Signed-off-by: Sebastian Reichel drivers/power/generic-adc-battery.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 88025632515adfb7fcfac15d087f155b719e78cd Author: Ivaylo Dimitrov Date: Fri Jan 1 13:03:29 2016 +0200 power: isp1704_charger: Fix isp1704_write() definition All calls to isp1704_write() are using parameter sequence of isp1704_write(isp, reg, val) but the function is defined as isp1704_write(isp, val, reg). Fix isp1704_write function definition so that the driver to be functional. Signed-off-by: Ivaylo Dimitrov Reviewed-by: Pali Rohár Signed-off-by: Sebastian Reichel drivers/power/isp1704_charger.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 099867a16a0fa9fd5aafc32e3b1a6f8a90f17834 Author: H. Nikolaus Schaller Date: Thu Dec 17 11:12:54 2015 +0100 power: bq27xxx: fix register numbers of bq27500 bug: according to data sheet some register numbers are wrong. tested: no Fixes: d74534c27775 ("power: bq27xxx_battery: Add support for additional bq27xxx family devices") Signed-off-by: H. Nikolaus Schaller Acked-by: Andrew F. Davis Signed-off-by: Sebastian Reichel drivers/power/bq27xxx_battery.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 549d7b317c761dbf4ed0c2945aec3acc9ca7ae14 Author: H. Nikolaus Schaller Date: Thu Dec 17 11:12:53 2015 +0100 power: bq27xxx: fix reading for bq27000 and bq27010 bug: the driver reports funny capacity values: root@letux:/sys/class/power_supply/bq27000-battery# cat uevent POWER_SUPPLY_NAME=bq27000-battery POWER_SUPPLY_STATUS=Charging POWER_SUPPLY_PRESENT=1 POWER_SUPPLY_VOLTAGE_NOW=3702000 POWER_SUPPLY_CURRENT_NOW=-464635 POWER_SUPPLY_CAPACITY=1536 <- over 100% is magic POWER_SUPPLY_CAPACITY_LEVEL=Normal POWER_SUPPLY_TEMP=311 POWER_SUPPLY_TIME_TO_FULL_NOW=10440 POWER_SUPPLY_TECHNOLOGY=Li-ion POWER_SUPPLY_CHARGE_FULL=805450 POWER_SUPPLY_CHARGE_NOW=1068 POWER_SUPPLY_CHARGE_FULL_DESIGN=8844998 <- battery has just 1200 mAh POWER_SUPPLY_CYCLE_COUNT=21 POWER_SUPPLY_ENERGY_NOW=0 POWER_SUPPLY_POWER_AVG=0 POWER_SUPPLY_HEALTH=Good POWER_SUPPLY_MANUFACTURER=Texas Instruments reason: the state of charge and the design capacity register are single byte only. The design capacity returns the higer order byte. tested: GTA04 with Openmoko/FIC HF08x battery (using hdq) Fixes: d74534c27775 ("power: bq27xxx_battery: Add support for additional bq27xxx family devices") Signed-off-by: H. Nikolaus Schaller Acked-by: Andrew F. Davis Reviewed-by: Pali Rohár Signed-off-by: Sebastian Reichel drivers/power/bq27xxx_battery.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit a02588a0efd6008f70ab69318ebacd79cbd3dc6b Author: Florian Fainelli Date: Wed Jan 6 10:55:23 2016 -0800 gpio: brcmstb: Allow building driver for BMIPS_GENERIC BMIPS_GENERIC (arch/mips/bmips) is the Kconfig symbol associated with Broadcom MIPS-based STB chips. Since this driver is perfectly usable on these platforms as well, allow using it. Signed-off-by: Florian Fainelli Acked-by: Gregory Fong Signed-off-by: Linus Walleij drivers/gpio/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ce5a7e81390b9ae28f8dc82505afa96c1787d312 Author: Florian Fainelli Date: Wed Jan 6 10:55:22 2016 -0800 gpio: brcmstb: Set endian flags for big-endian MIPS Broadcom MIPS-based STB chips endianness is configured by boot strap, which also reverses all bus endianness (i.e., big-endian CPU + big endian bus ==> native endian I/O). Other architectures (e.g., ARM) either do not support big endian, or else leave I/O in little endian mode. Signed-off-by: Florian Fainelli Acked-by: Gregory Fong Signed-off-by: Linus Walleij drivers/gpio/gpio-brcmstb.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) commit 780c43dd61a09ce7d9cdb1e7c33d3341ec471ff0 Author: Arnd Bergmann Date: Thu Jan 7 14:55:34 2016 +0100 gpio: moxart: fix build regression A cleanup patch replaced bgpio_chip with gpio_chip but missed two references to the bgpio_chip: drivers/gpio/gpio-moxart.c:60:19: error: use of undeclared identifier 'bgc'; did you mean 'gc'? gc->bgpio_data = bgc->read_reg(bgc->reg_set); drivers/gpio/gpio-moxart.c:35:20: note: 'gc' declared here drivers/gpio/gpio-moxart.c:60:33: error: use of undeclared identifier 'bgc'; did you mean 'gc'? gc->bgpio_data = bgc->read_reg(bgc->reg_set); This adds the missing change. Signed-off-by: Arnd Bergmann Fixes: 0f4630f3720e ("gpio: generic: factor into gpio_chip struct") Signed-off-by: Linus Walleij drivers/gpio/gpio-moxart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 691412b4438da1b77ff3078de0546023d244d841 Author: Kinglong Mee Date: Mon Jan 4 11:15:21 2016 +0800 nfsd: Fix nfsd leaks sunrpc module references Stefan Hajnoczi reports, nfsd leaks 3 references to the sunrpc module here: # echo -n "asdf 1234" >/proc/fs/nfsd/portlist bash: echo: write error: Protocol not supported Now stop nfsd and try unloading the kernel modules: # systemctl stop nfs-server # systemctl stop nfs # systemctl stop proc-fs-nfsd.mount # systemctl stop var-lib-nfs-rpc_pipefs.mount # rmmod nfsd # rmmod nfs_acl # rmmod lockd # rmmod auth_rpcgss # rmmod sunrpc rmmod: ERROR: Module sunrpc is in use # lsmod | grep rpc sunrpc 315392 3 It is caused by nfsd don't cleanup rpcb program for nfsd when destroying svc service after creating xprt fail. Reported-by: Stefan Hajnoczi Signed-off-by: Kinglong Mee Signed-off-by: J. Bruce Fields fs/nfsd/nfssvc.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 2a297450dd188a5d4e5e428c189b2de54f9073ba Author: Julia Lawall Date: Wed Dec 23 22:25:13 2015 +0100 lockd: constify nlmsvc_binding structure The nlmsvc_binding structure is never modified, so declare it as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: J. Bruce Fields fs/lockd/svc.c | 2 +- fs/nfsd/lockd.c | 2 +- include/linux/lockd/bind.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit ea44463f376236a0541288cb8d575ab6b50370d2 Author: Geliang Tang Date: Fri Jan 1 22:06:29 2016 +0800 lockd: use to_delayed_work Use to_delayed_work() instead of open-coding it. Signed-off-by: Geliang Tang Signed-off-by: J. Bruce Fields fs/lockd/svc.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 2e55f3ab45a0ef2e41548eae64e13b4bf39e5374 Author: Geliang Tang Date: Fri Jan 1 22:06:28 2016 +0800 nfsd: use to_delayed_work Use to_delayed_work() instead of open-coding it. Signed-off-by: Geliang Tang Signed-off-by: J. Bruce Fields fs/nfsd/nfs4state.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 3daa020f9bf803c03c6b6c895921e2b09fcd494a Author: J. Bruce Fields Date: Wed Dec 23 15:08:08 2015 -0500 Revert "svcrdma: Do not send XDR roundup bytes for a write chunk" This reverts commit 6f18dc893981e4daab29221d6a9771f3ce2dd8c5. Just as one example, it appears this code could do the wrong thing in the case of a two-byte NFS READ that crosses a page boundary. Chuck says: "In that case, nfsd would pass down an xdr_buf that has one byte in a page, one byte in another page, and a two-byte XDR pad. The logic introduced by this optimization would be fooled, and neither the second byte nor the XDR pad would be written to the client." Cc: Chuck Lever Signed-off-by: J. Bruce Fields net/sunrpc/xprtrdma/svc_rdma_sendto.c | 7 ------- 1 file changed, 7 deletions(-) commit 525e1abc6b5a7d8bd9006de1da6e99722305ea2b Author: Andrzej Hajda Date: Mon Sep 21 15:33:44 2015 +0200 HSI: omap_ssi_port: fix handling of_get_named_gpio 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 Signed-off-by: Sebastian Reichel drivers/hsi/controllers/omap_ssi_port.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 6bf6ded3008a407ccab5ad72eb59ab71b97cc290 Author: Andrzej Hajda Date: Mon Sep 21 15:33:43 2015 +0200 HSI: omap_ssi: fix handling ida_simple_get 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 Signed-off-by: Sebastian Reichel drivers/hsi/controllers/omap_ssi.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 03b9ee45bcebd1ea2811e7c90d13b6b69b0cce9b Author: Roman Volkov Date: Fri Jan 1 16:38:12 2016 +0300 dts: vt8500: Fix errors in SDHC node for WM8505 According to datasheet, the registers space of SDHC controller is 1Kb, not '0x1000', the correct value should be '0x400'. Bracket interrupt numbers individually per recommendations. Signed-off-by: Roman Volkov Signed-off-by: Arnd Bergmann arch/arm/boot/dts/wm8505.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4f4ba0e6afac4b181471f5f12bd87294bd8807f6 Author: Arnaldo Carvalho de Melo Date: Thu Jan 7 09:54:56 2016 -0300 perf tests: No need to set attr.sample_freq in the perf time to TSC test We were asking for a 4kHz sample_freq, making the test fail needlessly when the system reduced /proc/sys/kernel/perf_event_max_sample_rate below that. In this test we only look at the PERF_SAMPLE_TIME fields in PERF_RECORD_ meta events, no need to set sample_freq. Thanks to Namhyung for suggesting that max_sample_rate could be the reason for the test failure, seeing the 'perf test -vv' output I sent. Before: # echo 1000 > /proc/sys/kernel/perf_event_max_sample_rate # perf test TSC 45: Test converting perf time to TSC : FAILED! After: # perf test TSC 45: Test converting perf time to TSC : Ok # cat /proc/sys/kernel/perf_event_max_sample_rate 1000 Cc: Adrian Hunter Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/n/tip-lcob05qhawkuvsyuu9g1fld5@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/arch/x86/tests/perf-time-to-tsc.c | 1 - 1 file changed, 1 deletion(-) commit ee592d07716139ef7c3ea8049936cbc3aafbc533 Author: Sam Tygier Date: Wed Jan 6 08:46:12 2016 +0000 Btrfs: Check metadata redundancy on balance When converting a filesystem via balance check that metadata mode is at least as redundant as the data mode. For example give warning when: -dconvert=raid1 -mconvert=single Signed-off-by: Sam Tygier [ minor message reformatting ] Signed-off-by: David Sterba fs/btrfs/volumes.c | 7 +++++++ 1 file changed, 7 insertions(+) commit ca8a51b3a979d57b082b14eda38602b7f52d81d1 Author: David Sterba Date: Sat Oct 10 17:59:53 2015 +0200 btrfs: statfs: report zero available if metadata are exhausted There is one ENOSPC case that's very confusing. There's Available greater than zero but no file operation succeds (besides removing files). This happens when the metadata are exhausted and there's no possibility to allocate another chunk. In this scenario it's normal that there's still some space in the data chunk and the calculation in df reflects that in the Avail value. To at least give some clue about the ENOSPC situation, let statfs report zero value in Avail, even if there's still data space available. Current: /dev/sdb1 4.0G 3.3G 719M 83% /mnt/test New: /dev/sdb1 4.0G 3.3G 0 100% /mnt/test We calculate the remaining metadata space minus global reserve. If this is (supposedly) smaller than zero, there's no space. But this does not hold in practice, the exhausted state happens where's still some positive delta. So we apply some guesswork and compare the delta to a 4M threshold. (Practically observed delta was 2M.) We probably cannot calculate the exact threshold value because this depends on the internal reservations requested by various operations, so some operations that consume a few metadata will succeed even if the Avail is zero. But this is better than the other way around. Signed-off-by: David Sterba fs/btrfs/super.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit 8546b570511f428838129c00e701eda481cd7c13 Author: David Sterba Date: Tue Nov 10 18:54:03 2015 +0100 btrfs: preallocate path for snapshot creation at ioctl time We can also preallocate btrfs_path that's used during pending snapshot creation and avoid another late ENOMEM failure. Signed-off-by: David Sterba fs/btrfs/ioctl.c | 4 +++- fs/btrfs/transaction.c | 9 ++++----- fs/btrfs/transaction.h | 1 + 3 files changed, 8 insertions(+), 6 deletions(-) commit b0c0ea6338d5018e02d27c5315084fb1a5d099f6 Author: David Sterba Date: Tue Nov 10 18:54:00 2015 +0100 btrfs: allocate root item at snapshot ioctl time The actual snapshot creation is delayed until transaction commit. If we cannot get enough memory for the root item there, we have to fail the whole transaction commit which is bad. So we'll allocate the memory at the ioctl call and pass it along with the pending_snapshot struct. The potential ENOMEM will be returned to the caller of snapshot ioctl. Signed-off-by: David Sterba fs/btrfs/ioctl.c | 9 +++++++++ fs/btrfs/transaction.c | 9 +++------ fs/btrfs/transaction.h | 1 + 3 files changed, 13 insertions(+), 6 deletions(-) commit a1ee736268448d74af25737568e383acb84c3c18 Author: David Sterba Date: Tue Nov 10 18:53:56 2015 +0100 btrfs: do an allocation earlier during snapshot creation We can allocate pending_snapshot earlier and do not have to do cleanup in case of failure. Signed-off-by: David Sterba fs/btrfs/ioctl.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) commit 4fb72bf2e913ca3798afd9e226e2416918936e49 Author: David Sterba Date: Fri Nov 27 16:31:45 2015 +0100 btrfs: use smaller type for btrfs_path locks The values of btrfs_path::locks are 0 to 4, fit into a u8. Let's see: * overall size of btrfs_path drops down from 136 to 112 (-24 bytes), * better packing in a slab page +6 objects * the whole structure now fits to 2 cachelines * slight decrease in code size: text data bss dec hex filename 938731 43670 23144 1005545 f57e9 fs/btrfs/btrfs.ko.before 938203 43670 23144 1005017 f55d9 fs/btrfs/btrfs.ko.after (and the generated assembly does not change much) The main purpose is to decrease the size of the structure without affecting performance. The byte access is usually well behaving accross arches, the locks are not accessed frequently and sometimes just compared to zero. Note for further size reduction attempts: the slots could be made u16 but this might generate worse code on some arches (non-byte and non-int access). Also the range of operations on slots is wider compared to locks and the potential performance drop should be evaluated first. Signed-off-by: David Sterba fs/btrfs/ctree.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7853f15b2aeeb01c587168fc3f7f0ff76a3c9bfd Author: David Sterba Date: Fri Nov 27 16:31:42 2015 +0100 btrfs: use smaller type for btrfs_path lowest_level The level is 0..7, we can use smaller type. The size of btrfs_path is now 136 bytes from 144, which is +2 objects that fit into a 4k slab. Signed-off-by: David Sterba fs/btrfs/ctree.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dccabfad20880bc6c8be21b538df4293506b99f8 Author: David Sterba Date: Fri Nov 27 16:31:38 2015 +0100 btrfs: use smaller type for btrfs_path reada The possible values for reada are all positive and bounded, we can later save some bytes by storing it in u8. Signed-off-by: David Sterba fs/btrfs/ctree.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e4058b54d1e442b6b3eca949f0d63d49ba2b020d Author: David Sterba Date: Fri Nov 27 16:31:35 2015 +0100 btrfs: cleanup, use enum values for btrfs_path reada Replace the integers by enums for better readability. The value 2 does not have any meaning since a717531942f488209dded30f6bc648167bcefa72 "Btrfs: do less aggressive btree readahead" (2009-01-22). Signed-off-by: David Sterba fs/btrfs/ctree.c | 9 ++++----- fs/btrfs/ctree.h | 1 + fs/btrfs/extent-tree.c | 12 ++++++------ fs/btrfs/file-item.c | 4 ++-- fs/btrfs/inode-map.c | 2 +- fs/btrfs/inode.c | 8 ++++---- fs/btrfs/ioctl.c | 2 +- fs/btrfs/relocation.c | 12 ++++++------ fs/btrfs/scrub.c | 2 +- fs/btrfs/volumes.c | 6 +++--- fs/btrfs/xattr.c | 2 +- 11 files changed, 30 insertions(+), 30 deletions(-) commit 4d4ab6d6bc05ba65169de9a5391e6ccbe09d8719 Author: David Sterba Date: Thu Nov 19 11:42:31 2015 +0100 btrfs: constify static arrays There are a few statically initialized arrays that can be made const. The remaining (like file_system_type, sysfs attributes or prop handlers) do not allow that due to type mismatch when passed to the APIs or because the structures are modified through other members. Signed-off-by: David Sterba fs/btrfs/ctree.h | 2 +- fs/btrfs/inode.c | 2 +- fs/btrfs/ioctl.c | 2 +- fs/btrfs/super.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) commit 20e5506baf3fd651e245bc970d8c11a734ee1b8a Author: David Sterba Date: Thu Nov 19 11:42:28 2015 +0100 btrfs: constify remaining structs with function pointers * struct extent_io_ops * struct btrfs_free_space_op Signed-off-by: David Sterba fs/btrfs/free-space-cache.c | 2 +- fs/btrfs/free-space-cache.h | 2 +- fs/btrfs/inode-map.c | 4 ++-- fs/btrfs/inode.c | 4 ++-- fs/btrfs/tests/free-space-tests.c | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) commit 28f0779a3fd6ef015303780f0b9a92b24728bc4b Author: David Sterba Date: Thu Nov 19 11:42:24 2015 +0100 btrfs tests: replace whole ops structure for free space tests Preparatory work for making btrfs_free_space_op constant. In test_steal_space_from_bitmap_to_extent, we substitute use_bitmap with own version thus preventing constification. We can rework it so we replace the whole structure with the correct function pointers. Signed-off-by: David Sterba fs/btrfs/tests/free-space-tests.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit 1dab1345d885819a3a0d5d08ce0b5c2e12c65343 Author: Nicholas Krause Date: Wed Dec 30 13:08:46 2015 -0500 kvm: x86: Check kvm_write_guest return value in kvm_write_wall_clock This makes sure the wall clock is updated only after an odd version value is successfully written to guest memory. Signed-off-by: Nicholas Krause Signed-off-by: Paolo Bonzini arch/x86/kvm/x86.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit c6e5f166373a20a433c38a34bd16f2b62bd0864c Author: Fan Zhang Date: Thu Jan 7 18:24:29 2016 +0800 KVM: s390: implement the RI support of guest This patch adds runtime instrumentation support for KVM guest. We need to setup a save area for the runtime instrumentation-controls control block(RICCB) and implement the necessary interfaces to live migrate the guest settings. We setup the sie control block in a way, that the runtime instrumentation instructions of a guest are handled by hardware. We also add a capability KVM_CAP_S390_RI to make this feature opt-in as it needs migration support. Signed-off-by: Fan Zhang Acked-by: Cornelia Huck Signed-off-by: Christian Borntraeger arch/s390/include/asm/kvm_host.h | 3 ++- arch/s390/include/uapi/asm/kvm.h | 3 +++ arch/s390/kvm/kvm-s390.c | 22 ++++++++++++++++++++++ include/uapi/linux/kvm.h | 1 + 4 files changed, 28 insertions(+), 1 deletion(-) commit c57ee5faf4503b0cd586c3af663262a3d5599fc1 Author: Michael S. Tsirkin Date: Tue Jan 5 18:20:24 2016 +0200 kvm/s390: drop unpaired smp_mb smp_mb on vcpu destroy isn't paired with anything, violating pairing rules, and seems to be useless. Drop it. Signed-off-by: Michael S. Tsirkin Message-Id: <1452010811-25486-1-git-send-email-mst@redhat.com> Signed-off-by: Christian Borntraeger arch/s390/kvm/kvm-s390.c | 1 - 1 file changed, 1 deletion(-) commit a7ca42256d9fad572fb7f2c471514d7d3572b1db Author: Geliang Tang Date: Mon Dec 21 23:50:23 2015 +0800 btrfs: use list_for_each_entry* in backref.c Use list_for_each_entry*() to simplify the code. Signed-off-by: Geliang Tang Reviewed-by: David Sterba Signed-off-by: David Sterba fs/btrfs/backref.c | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) commit 7ae1681e126919e7119cebebde1d42df8d7a49b9 Author: Geliang Tang Date: Fri Dec 18 22:17:00 2015 +0800 btrfs: use list_for_each_entry_safe in free-space-cache.c Use list_for_each_entry_safe() instead of list_for_each_safe() to simplify the code. Signed-off-by: Geliang Tang Reviewed-by: David Sterba Signed-off-by: David Sterba fs/btrfs/free-space-cache.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) commit b69f2bef484844ccd9038a850cdcf562afff9d08 Author: Geliang Tang Date: Fri Dec 18 22:16:59 2015 +0800 btrfs: use list_for_each_entry* in check-integrity.c Use list_for_each_entry*() instead of list_for_each*() to simplify the code. Signed-off-by: Geliang Tang Reviewed-by: David Sterba Signed-off-by: David Sterba fs/btrfs/check-integrity.c | 105 +++++++++++---------------------------------- 1 file changed, 26 insertions(+), 79 deletions(-) commit ee22184b53c823f6956314c2815d4068e3820737 Author: Byongho Lee Date: Tue Dec 15 01:42:10 2015 +0900 Btrfs: use linux/sizes.h to represent constants We use many constants to represent size and offset value. And to make code readable we use '256 * 1024 * 1024' instead of '268435456' to represent '256MB'. However we can make far more readable with 'SZ_256MB' which is defined in the 'linux/sizes.h'. So this patch replaces 'xxx * 1024 * 1024' kind of expression with single 'SZ_xxxMB' if 'xxx' is a power of 2 then 'xxx * SZ_1M' if 'xxx' is not a power of 2. And I haven't touched to '4096' & '8192' because it's more intuitive than 'SZ_4KB' & 'SZ_8KB'. Signed-off-by: Byongho Lee Signed-off-by: David Sterba fs/btrfs/ctree.c | 2 +- fs/btrfs/ctree.h | 5 +- fs/btrfs/disk-io.c | 2 +- fs/btrfs/disk-io.h | 4 +- fs/btrfs/extent-tree.c | 29 +++--- fs/btrfs/extent_io.c | 2 +- fs/btrfs/free-space-cache.c | 10 +- fs/btrfs/inode-map.c | 2 +- fs/btrfs/inode.c | 22 ++--- fs/btrfs/ioctl.c | 23 +++-- fs/btrfs/send.h | 4 +- fs/btrfs/super.c | 2 +- fs/btrfs/tests/extent-io-tests.c | 11 ++- fs/btrfs/tests/free-space-tests.c | 186 ++++++++++++++++---------------------- fs/btrfs/tests/inode-tests.c | 2 +- fs/btrfs/volumes.c | 16 ++-- fs/btrfs/volumes.h | 2 +- 17 files changed, 147 insertions(+), 177 deletions(-) commit 7928d672ffb06085d06fe3c27a93549d37e53ab3 Author: David Sterba Date: Mon Nov 30 11:02:31 2015 +0100 btrfs: cleanup, remove stray return statements Signed-off-by: David Sterba fs/btrfs/disk-io.c | 1 - fs/btrfs/inode.c | 1 - fs/btrfs/locking.c | 2 -- fs/btrfs/raid56.c | 2 -- fs/btrfs/scrub.c | 2 -- fs/btrfs/volumes.c | 1 - 6 files changed, 9 deletions(-) commit 352dd9c8d3b34e406584c95be45cbc4f1ec5a405 Author: Alexandru Moise <00moses.alexander00@gmail.com> Date: Sun Oct 25 20:15:06 2015 +0000 btrfs: zero out delayed node upon allocation It's slightly cleaner to zero-out the delayed node upon allocation than to do it by hand in btrfs_init_delayed_node() for a few members Signed-off-by: Alexandru Moise <00moses.alexander00@gmail.com> Signed-off-by: David Sterba fs/btrfs/delayed-inode.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 575a75d6fabf6e1217204deca79aea26d6670a12 Author: Alexandru Moise <00moses.alexander00@gmail.com> Date: Sun Oct 25 19:35:44 2015 +0000 btrfs: pass proper enum type to start_transaction() Signed-off-by: Alexandru Moise <00moses.alexander00@gmail.com> Reviewed-by: David Sterba Signed-off-by: David Sterba fs/btrfs/transaction.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) commit 9780c4976f5518f805b32fc00ed045b636fe8fa8 Author: Alexandru Moise <00moses.alexander00@gmail.com> Date: Sun Oct 18 21:35:41 2015 +0000 btrfs: switch __btrfs_fs_incompat return type from int to bool Conform to __btrfs_fs_incompat() cast-to-bool (!!) by explicitly returning boolean not int. Signed-off-by: Alexandru Moise <00moses.alexander00@gmail.com> Signed-off-by: David Sterba fs/btrfs/ctree.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e40da0e58a208940bf3d1745f9bd8cf1e27904d4 Author: Byongho Lee Date: Tue May 19 23:46:45 2015 +0900 btrfs: remove unused inode argument from uncompress_inline() The inode argument is never used from the beginning, so remove it. Signed-off-by: Byongho Lee Reviewed-by: David Sterba Signed-off-by: David Sterba fs/btrfs/inode.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 100d57025cce6bf568a10660c0d884bcc64c580e Author: David Sterba Date: Tue Dec 8 14:39:32 2015 +0100 btrfs: don't use slab cache for struct btrfs_delalloc_work Although we prefer to use separate caches for various structs, it seems better not to do that for struct btrfs_delalloc_work. Objects of this type are allocated rarely, when transaction commit calls btrfs_start_delalloc_roots, requesting delayed iputs. The objects are temporary (with some IO involved) but still allocated and freed within __start_delalloc_inodes. Memory allocation failure is handled. The slab cache is empty most of the time (observed on several systems), so if we need to allocate a new slab object, the first one has to allocate a full page. In a potential case of low memory conditions this might fail with higher probability compared to using the generic slab caches. Signed-off-by: David Sterba fs/btrfs/inode.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) commit 0de270fa83d5a45664e3f2428d432145037ac432 Author: David Sterba Date: Tue Dec 1 18:09:12 2015 +0100 btrfs: drop duplicate prefix from scrub workqueues The helper btrfs_alloc_workqueue will add the "btrfs-" prefix. Signed-off-by: David Sterba fs/btrfs/scrub.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 93a3d46780b0f207f76608078eb965cf7b83902c Author: David Sterba Date: Mon Nov 30 17:27:09 2015 +0100 btrfs: verbose error when we find an unexpected item in sys_array Signed-off-by: David Sterba fs/btrfs/volumes.c | 3 +++ 1 file changed, 3 insertions(+) commit f5cdedd73fa71b74dcc42f2a11a5735d89ce7c4f Author: David Sterba Date: Mon Nov 30 17:27:06 2015 +0100 btrfs: handle invalid num_stripes in sys_array We can handle the special case of num_stripes == 0 directly inside btrfs_read_sys_array. The BUG_ON in btrfs_chunk_item_size is there to catch other unhandled cases where we fail to validate external data. A crafted or corrupted image crashes at mount time: BTRFS: device fsid 9006933e-2a9a-44f0-917f-514252aeec2c devid 1 transid 7 /dev/loop0 BTRFS info (device loop0): disk space caching is enabled BUG: failure at fs/btrfs/ctree.h:337/btrfs_chunk_item_size()! Kernel panic - not syncing: BUG! CPU: 0 PID: 313 Comm: mount Not tainted 4.2.5-00657-ge047887-dirty #25 Stack: 637af890 60062489 602aeb2e 604192ba 60387961 00000011 637af8a0 6038a835 637af9c0 6038776b 634ef32b 00000000 Call Trace: [<6001c86d>] show_stack+0xfe/0x15b [<6038a835>] dump_stack+0x2a/0x2c [<6038776b>] panic+0x13e/0x2b3 [<6020f099>] btrfs_read_sys_array+0x25d/0x2ff [<601cfbbe>] open_ctree+0x192d/0x27af [<6019c2c1>] btrfs_mount+0x8f5/0xb9a [<600bc9a7>] mount_fs+0x11/0xf3 [<600d5167>] vfs_kern_mount+0x75/0x11a [<6019bcb0>] btrfs_mount+0x2e4/0xb9a [<600bc9a7>] mount_fs+0x11/0xf3 [<600d5167>] vfs_kern_mount+0x75/0x11a [<600d710b>] do_mount+0xa35/0xbc9 [<600d7557>] SyS_mount+0x95/0xc8 [<6001e884>] handle_syscall+0x6b/0x8e Reported-by: Jiri Slaby Reported-by: Vegard Nossum CC: stable@vger.kernel.org # 3.19+ Signed-off-by: David Sterba fs/btrfs/volumes.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 35b3ad50baa4a5fc2ae616c0513d2987bfb52a85 Author: David Sterba Date: Mon Nov 30 16:51:29 2015 +0100 btrfs: better packing of btrfs_delayed_extent_op btrfs_delayed_extent_op can be packed in a better way, it's 40 bytes now and has 8 unused bytes. Reducing the level type to u8 makes it possible to squeeze it to the padding byte after key. The bitfields were switched to bool as there's space to store the full byte without increasing the whole structure, besides that the generated assembly is smaller. struct btrfs_delayed_extent_op { struct btrfs_disk_key key; /* 0 17 */ u8 level; /* 17 1 */ bool update_key; /* 18 1 */ bool update_flags; /* 19 1 */ bool is_data; /* 20 1 */ /* XXX 3 bytes hole, try to pack */ u64 flags_to_set; /* 24 8 */ /* size: 32, cachelines: 1, members: 6 */ /* sum members: 29, holes: 1, sum holes: 3 */ /* last cacheline: 32 bytes */ }; The final size is 32 bytes which gives +26 object per slab page. text data bss dec hex filename 938811 43670 23144 1005625 f5839 fs/btrfs/btrfs.ko.before 938747 43670 23144 1005561 f57f9 fs/btrfs/btrfs.ko.after Signed-off-by: David Sterba fs/btrfs/delayed-ref.c | 4 ++-- fs/btrfs/delayed-ref.h | 8 ++++---- fs/btrfs/extent-tree.c | 15 ++++++--------- fs/btrfs/extent-tree.h | 0 4 files changed, 12 insertions(+), 15 deletions(-) commit 8089fe62c6603860f6796ca80519b92391292f21 Author: David Sterba Date: Thu Nov 19 14:15:51 2015 +0100 btrfs: put delayed item hook into inode Inodes for delayed iput allocate a trivial helper structure, let's place the list hook directly into the inode and save a kmalloc (killing a __GFP_NOFAIL as a bonus) at the cost of increasing size of btrfs_inode. The inode can be put into the delayed_iputs list more than once and we have to keep the count. This means we can't use the list_splice to process a bunch of inodes because we'd lost track of the count if the inode is put into the delayed iputs again while it's processed. Signed-off-by: David Sterba fs/btrfs/btrfs_inode.h | 4 ++++ fs/btrfs/inode.c | 56 ++++++++++++++++++++++---------------------------- 2 files changed, 29 insertions(+), 31 deletions(-) commit c5ca87819d7f10625b0940b356adb8ac0f1080d7 Author: Zhao Lei Date: Thu Nov 19 17:26:22 2015 +0800 btrfs: Support convert to -d dup for btrfs-convert Since we will add support for -d dup for non-mixed filesystem, kernel need to support converting to this raid-type. This patch remove limitation of above case. Tested by following script: (combination of dup conversion with fsck): export TEST_DEV='/dev/vdc' export TEST_DIR='/var/ltf/tester/mnt' do_dup_test() { local m_from="$1" local d_from="$2" local m_to="$3" local d_to="$4" echo "Convert from -m $m_from -d $d_from to -m $m_to -d $d_to" umount "$TEST_DIR" &>/dev/null ./mkfs.btrfs -f -m "$m_from" -d "$d_from" "$TEST_DEV" >/dev/null || return 1 mount "$TEST_DEV" "$TEST_DIR" || return 1 cp -a /sbin/* "$TEST_DIR" [[ "$m_from" != "$m_to" ]] && { ./btrfs balance start -f -mconvert="$m_to" "$TEST_DIR" || return 1 } [[ "$d_from" != "$d_to" ]] && { local opt=() [[ "$d_to" == single ]] && opt+=("-f") ./btrfs balance start "${opt[@]}" -dconvert="$d_to" "$TEST_DIR" || return 1 } umount "$TEST_DIR" || return 1 ./btrfsck "$TEST_DEV" || return 1 echo return 0 } test_all() { for m_from in single dup; do for d_from in single dup; do for m_to in single dup; do for d_to in single dup; do do_dup_test "$m_from" "$d_from" "$m_to" "$d_to" || return 1 done done done done } test_all Signed-off-by: Zhao Lei Reviewed-by: David Sterba Signed-off-by: David Sterba fs/btrfs/volumes.c | 8 -------- 1 file changed, 8 deletions(-) commit be7bd730841e69fe8f70120098596f648cd1f3ff Author: Josef Bacik Date: Thu Oct 22 15:05:09 2015 -0400 Btrfs: igrab inode in writepage We hit this panic on a few of our boxes this week where we have an ordered_extent with an NULL inode. We do an igrab() of the inode in writepages, but weren't doing it in writepage which can be called directly from the VM on dirty pages. If the inode has been unlinked then we could have I_FREEING set which means igrab() would return NULL and we get this panic. Fix this by trying to igrab in btrfs_writepage, and if it returns NULL then just redirty the page and return AOP_WRITEPAGE_ACTIVATE; so the VM knows it wasn't successful. Thanks, Signed-off-by: Josef Bacik Reviewed-by: Liu Bo Signed-off-by: David Sterba fs/btrfs/inode.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) commit b2acdddfad13c38a1e8b927d83c3cf321f63601a Author: Anand Jain Date: Wed Oct 7 17:23:23 2015 +0800 Btrfs: add missing brelse when superblock checksum fails Looks like oversight, call brelse() when checksum fails. Further down the code, in the non error path, we do call brelse() and so we don't see brelse() in the goto error paths. Signed-off-by: Anand Jain Reviewed-by: David Sterba Signed-off-by: David Sterba fs/btrfs/disk-io.c | 1 + 1 file changed, 1 insertion(+) commit a4cdb556cae05cd3e7b602b3a44c01420c4e2258 Author: David Vrabel Date: Tue Dec 2 16:13:26 2014 +0000 xen/gntdev: add ioctl for grant copy Add IOCTL_GNTDEV_GRANT_COPY to allow applications to copy between user space buffers and grant references. This interface is similar to the GNTTABOP_copy hypercall ABI except the local buffers are provided using a virtual address (instead of a GFN and offset). To avoid userspace from having to page align its buffers the driver will use two or more ops if required. If the ioctl returns 0, the application must check the status of each segment with the segments status field. If the ioctl returns a -ve error code (EINVAL or EFAULT), the status of individual ops is undefined. Signed-off-by: David Vrabel Reviewed-by: Boris Ostrovsky drivers/xen/gntdev.c | 203 ++++++++++++++++++++++++++++++++++++++++++++++ include/uapi/xen/gntdev.h | 50 ++++++++++++ 2 files changed, 253 insertions(+) commit 9d5db23eecdb001ac26610d7a87ccdea566feee9 Author: Fengwei Yin Date: Sun Dec 20 21:20:41 2015 +0800 wcn36xx: split DMA mask register writing. Per comments from Bjorn Andersson , split DMA mask register writing as seperate patch in case we need bi-sect in the furture. Signed-off-by: Fengwei Yin Signed-off-by: Kalle Valo drivers/net/wireless/ath/wcn36xx/dxe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2ec7752fd9b9fe5924973390b784584e7481f52c Author: Fengwei Yin Date: Sun Dec 20 21:20:40 2015 +0800 wcn36xx: handle rx skb allocation failure to avoid system crash Lawrence reported that git clone could make system crash on a Qualcomm ARM soc based device (DragonBoard, 1G memory without swap) running 64bit Debian. It's turned out the crash is related with rx skb allocation failure. git could consume more than 600MB anonymous memory. And system is in extremely memory shortage case. But driver didn't handle the rx allocation failure case. This patch doesn't submit skb to upper layer if rx skb allocation fails. Instead, it reuse the old skb for rx DMA again. It's more like drop the packets if system is in memory shortage case. With this change, git clone is OOMed instead of system crash. Reported-by: King, Lawrence Signed-off-by: Fengwei Yin Signed-off-by: Kalle Valo drivers/net/wireless/ath/wcn36xx/dxe.c | 43 +++++++++++++++++----------------- 1 file changed, 22 insertions(+), 21 deletions(-) commit 19f2ce3f1114c5d59e5e4457ccdd15464070dc5f Author: Dan Carpenter Date: Sat Dec 19 13:59:19 2015 +0300 ath9k: fix ath9k_hw_nvram_check_version() There is a type bug so it always returns success. Fixes: 6fa658fd5ab2 ('ath9k: Simplify and fix eeprom endianness swapping') Signed-off-by: Dan Carpenter Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/eeprom.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 04a407f6b129b6e35de3250c313976a3a154476e Author: Loc Ho Date: Thu Dec 10 14:19:17 2015 -0700 i2c: dw: Add APM X-Gene ACPI I2C device support Enable APM X-Gene ACPI I2C device support by adding the corresponding ACPI ID. The platform ACPI APD corresponding change is required to provide the proper clock frequency input. Signed-off-by: Loc Ho Acked-by: Mika Westerberg Signed-off-by: Rafael J. Wysocki drivers/i2c/busses/i2c-designware-platdrv.c | 1 + 1 file changed, 1 insertion(+) commit b790eb20b8e4a5c913fc62c49562c821165b4fad Author: Loc Ho Date: Thu Dec 10 14:19:16 2015 -0700 ACPI / APD: Add APM X-Gene ACPI I2C device support Add APM X-Gene ACPI I2C device support by hooks into existent ACPI APD driver. To fully enable support, require another patch to add the X-Gene ACPI node into the DW I2C driver. Signed-off-by: Loc Ho Reviewed-by: Ken Xue Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_apd.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) commit fa9e93b11c6716b115f485f03930fa5a5c529e14 Author: Andy Shevchenko Date: Mon Dec 21 22:31:09 2015 +0200 ACPI / LPSS: change 'does not have' to 'has' in comment The LPSS DMA device has neither _PS0 nor _PS3 method. Fix the wording in the comment line. Signed-off-by: Andy Shevchenko Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_lpss.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bc0bb1fd5b0d72fba589b46be05c945171f9d6f3 Author: Andy Shevchenko Date: Fri Dec 4 23:49:25 2015 +0200 Revert "dmaengine: dw: platform: provide platform data for Intel" Since we have a work around to prevent a system hangup we don't need to provide a platform data explicitly anymore. This reverts commit 175267b389f781748e2bbb6c737e76b5c9bc4c88. Signed-off-by: Andy Shevchenko Acked-by: Vinod Koul Signed-off-by: Rafael J. Wysocki drivers/dma/dw/platform.c | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) commit 02a21b79acdb48b312f1351fd7cc728e66e81149 Author: Andy Shevchenko Date: Fri Dec 4 23:49:24 2015 +0200 dmaengine: dw: return immediately from IRQ when DMA isn't in use There is no need to bother the hardware when all channels are idle. We have not to get any interrupts. Signed-off-by: Andy Shevchenko Acked-by: Vinod Koul Signed-off-by: Rafael J. Wysocki drivers/dma/dw/core.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 3214658855c01a0dd62f02feb2ce79846524c6a0 Author: Andy Shevchenko Date: Fri Dec 4 23:49:23 2015 +0200 dmaengine: dw: platform: power on device on shutdown We have to call dw_dma_disable() to stop any ongoing transfer. On some platforms we can't do that since DMA device is powered off. Moreover we have no possibility at that point to check if the platform is affected or not. That's why we call pm_runtime_get_sync() / pm_runtime_put() unconditionally. On the other hand we can't use pm_runtime_suspended() because runtime PM framework is not fully used by the driver. Signed-off-by: Andy Shevchenko Acked-by: Vinod Koul Signed-off-by: Rafael J. Wysocki drivers/dma/dw/platform.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit eebb3e8d8aaf28f4bcaf12fd3645350bfd2f0b36 Author: Andy Shevchenko Date: Sat Dec 12 02:45:06 2015 +0100 ACPI / LPSS: override power state for LPSS DMA device This is a third approach to workaround long standing issue with LPSS on BayTrail. First one [1] was reverted since it didn't resolve the issue comprehensively. Second one [2] was rejected by internal review. The LPSS DMA controller does not have neither _PS0 nor _PS3 method. Moreover it can be powered off automatically whenever the last LPSS device goes down. In case of no power any access to the DMA controller will hang the system. The behaviour is reproduced on some HP laptops based on Intel BayTrail [3,4] as well as on ASuS T100TA transformer. Power on the LPSS island through the registers accessible in a specific way. [1] http://www.spinics.net/lists/linux-acpi/msg53963.html [2] https://bugzilla.redhat.com/attachment.cgi?id=1066779&action=diff [3] https://bugzilla.redhat.com/show_bug.cgi?id=1184273 [4] http://www.spinics.net/lists/dmaengine/msg01514.html Signed-off-by: Andy Shevchenko Signed-off-by: Rafael J. Wysocki arch/x86/Kconfig | 3 +- arch/x86/include/asm/iosf_mbi.h | 2 + drivers/acpi/acpi_lpss.c | 153 ++++++++++++++++++++++++++++++++++++++-- 3 files changed, 150 insertions(+), 8 deletions(-) commit 50e81e2f0b0a9fdb9e5bd515270680c7c281ce1f Author: Pawel Kulakowski Date: Fri Dec 18 10:48:57 2015 +0100 ath9k: Enable support for cloned SKBS Ath9k driver does not modify tx skbs, so SUPPORTS_CLONED_SKBS flag can be set. Enabling this flag significant reduce number of copy operation during TCP Tx. This is especially noticeable on platforms with slower CPU (lower CPU usage brings profits in better TCP Tx troughput results). Tested on MIPS with 560 MHz clock Without CLONED_SKBS flag: TCP Tx 145 Mb/s (iperf result) __copy_user_common consumes 12.9% of CPU (result from perf tool) 0% CPU Idle With CLONED_SKBS flag: TCP Tx 170 Mb/s (iperf result) __copy_user_common consumes 1.8% of CPU (result from perf tool) 12% CPU Idle Signed-off-by: Pawel Kulakowski Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/init.c | 1 + 1 file changed, 1 insertion(+) commit ea3ade75db690dc47c78a77d71dfd7c2df3bb15d Author: Lior David Date: Wed Dec 16 17:51:46 2015 +0200 wil6210: support for platform specific crash recovery Added a simple interface for platform to perform crash recovery. When firmware crashes, wil driver can notify the platform which can trigger a crash recovery process. During the process the platform can request a ram dump from the wil driver as well as control when firmware recovery will start. This interface allows the platform to implement a more advanced crash recovery, for example to reset dependent subsystems in proper order, or to provide its own notifications during the recovery process. Signed-off-by: Lior David Signed-off-by: Maya Erez Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/interrupt.c | 8 +++-- drivers/net/wireless/ath/wil6210/pcie_bus.c | 30 ++++++++++++++++-- drivers/net/wireless/ath/wil6210/wil6210.h | 1 + drivers/net/wireless/ath/wil6210/wil_crash_dump.c | 3 +- drivers/net/wireless/ath/wil6210/wil_platform.c | 3 +- drivers/net/wireless/ath/wil6210/wil_platform.h | 38 +++++++++++++++++++++-- 6 files changed, 73 insertions(+), 10 deletions(-) commit dea16eddb4753129dbcd8dc8d1a58ff0cc4ea38c Author: Hamad Kadmany Date: Wed Dec 16 17:51:45 2015 +0200 wil6210: fix kernel OOPS when stopping interface during Rx traffic When network interface is stopping, some resources may be already released by the network stack, and Rx frames cause kernel OOPS (observed one is in netfilter code) Proper solution is to drop packets pending in reorder buffer. Signed-off-by: Hamad Kadmany Signed-off-by: Vladimir Kondratiev Signed-off-by: Maya Erez Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/rx_reorder.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit e33a99e227e430a788467e5a85dc29f6df16b983 Author: Peter Oh Date: Thu Dec 31 15:26:20 2015 +0200 ath10k: set SM power save disabled to default value Use SMPS disabled as default because FW does not indicate any support of SMPS. This change will help STAs out that don’t support SMPS from sticking on 1SS, since they don’t have method to change it back to multiple chains. This change also should not affect power consumption of STAs supporting SMPS, because they are capable to switch the mode to dynamic or static either at the end of frame sequence or by using SMPS action frame. Signed-off-by: Peter Oh Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit bc8474549e94efddb5d5791af0a015d13115b67b Author: Joerg Roedel Date: Thu Jan 7 12:16:51 2016 +0100 iommu/vt-d: Fix up error handling in alloc_iommu Only check for error when iommu->iommu_dev has been assigned and only assign drhd->iommu when the function can't fail anymore. Signed-off-by: Joerg Roedel drivers/iommu/dmar.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 592033790e8276f7038efb480871598648464a01 Author: Nicholas Krause Date: Mon Jan 4 18:27:57 2016 -0500 iommu/vt-d: Check the return value of iommu_device_create() This adds the proper check to alloc_iommu to make sure that the call to iommu_device_create has completed successfully and if not return the error code to the caller after freeing up resources allocated previously. Signed-off-by: Nicholas Krause Signed-off-by: Joerg Roedel drivers/iommu/dmar.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 1fb260bc003d7c6196fc0ee3a169a2f6495d17fe Author: Dan Carpenter Date: Thu Jan 7 12:36:06 2016 +0300 iommu/amd: Remove an unneeded condition get_device_id() returns an unsigned short device id. It never fails and it never returns a negative so we can remove this condition. Signed-off-by: Dan Carpenter Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit c33246d793b5bb9d8be7c67918136c310185c23d Author: Lucas Stach Date: Wed Jan 6 14:36:40 2016 +0100 drm/etnaviv: fix workaround for GC500 The hardware description macros define the mask and shifts the wrong way around for the intended use, leading to the condition never being true and the chip revision ending up with the wrong value. Reported-by: Dan Carpenter Signed-off-by: Lucas Stach Acked-by: Christian Gmeiner drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 14da0a91bf4ac2a90d64446ddaa39a4869530f8c Author: Biao Huang Date: Mon Dec 28 15:09:03 2015 +0800 pinctrl: mediatek: Modify pinctrl bindings for mt2701 Signed-off-by: Biao Huang Acked-by: Rob Herring Reviewed-by: Mathias Brugger Signed-off-by: Linus Walleij Documentation/devicetree/bindings/pinctrl/pinctrl-mt65xx.txt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 0af2593b2ad125880a78d1bba966e450cc2330df Author: David Matlack Date: Wed Dec 30 08:26:17 2015 -0800 kvm: x86: fix comment about {mmu,nested_mmu}.gva_to_gpa The comment had the meaning of mmu.gva_to_gpa and nested_mmu.gva_to_gpa swapped. Fix that, and also add some details describing how each translation works. Signed-off-by: David Matlack Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit def840ede34ea1fa47494c62fba06479af2abbc1 Merge: 7749266 c7da6fa Author: Paolo Bonzini Date: Thu Jan 7 11:00:57 2016 +0100 Merge tag 'kvm-arm-for-4.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into kvm-next KVM/ARM changes for Linux v4.5 - Complete rewrite of the arm64 world switch in C, hopefully paving the way for more sharing with the 32bit code, better maintainability and easier integration of new features. Also smaller and slightly faster in some cases... - Support for 16bit VM identifiers - Various cleanups commit 4afaee3c2b7fb49d3ec1bcd89c7b960b5ae646b3 Author: Stephen Boyd Date: Wed Jan 6 17:12:49 2016 -0800 Revert "pinctrl: qcom: make PMIC drivers bool" This reverts commit bda7c4c2b9767ce2af4394754498662d62079af5. These drivers build as modules now that we use platform_irq_count() instead of of_irq_count(). Cc: Rob Herring Cc: Andy Gross Signed-off-by: Stephen Boyd Signed-off-by: Linus Walleij drivers/pinctrl/qcom/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a5ea13f025e7bf3bb280a22f5fe63b7159358932 Author: Stephen Boyd Date: Wed Jan 6 17:37:41 2016 -0800 pinctrl: qcom: Use platform_irq_count() instead of of_irq_count() of_irq_count() is not an exported symbol (and it shouldn't be used by platform drivers anyway) so use platform_irq_count() instead. This allows us to make the qcom pinctrl drivers modular again. Cc: Rob Herring Cc: Andy Gross Cc: Bjorn Andersson Signed-off-by: Stephen Boyd Signed-off-by: Linus Walleij drivers/pinctrl/qcom/pinctrl-spmi-gpio.c | 4 +++- drivers/pinctrl/qcom/pinctrl-spmi-mpp.c | 4 +++- drivers/pinctrl/qcom/pinctrl-ssbi-gpio.c | 9 ++++++--- drivers/pinctrl/qcom/pinctrl-ssbi-mpp.c | 9 ++++++--- 4 files changed, 18 insertions(+), 8 deletions(-) commit 4b83555d5098e73cf2c5ca7f86c17ca0ba3b968e Author: Stephen Boyd Date: Wed Jan 6 17:12:47 2016 -0800 driver-core: platform: Add platform_irq_count() A recent patch added calls to of_irq_count() in the qcom pinctrl drivers and that caused module build failures because of_irq_count() is not an exported symbol. We shouldn't export of_irq_count() to modules because it's an internal OF API that shouldn't be used by drivers. Platform drivers should use platform device APIs instead. Therefore, add a platform_irq_count() API that mirrors the of_irq_count() API so that platform drivers can stay DT agnostic. Cc: Andy Gross Acked-by: Rob Herring Acked-by: Greg Kroah-Hartman Signed-off-by: Linus Walleij drivers/base/platform.c | 20 ++++++++++++++++++++ include/linux/platform_device.h | 1 + 2 files changed, 21 insertions(+) commit 7683fe016c010a20b5f2d88b7d8dad198506f5f7 Author: Jia-Ju Bai Date: Mon Jan 4 15:55:38 2016 +0800 rt2x00pci: Disable memory-write-invalidate when the driver exits The driver calls pci_set_mwi to enable memory-write-invalidate when it is initialized, but does not call pci_clear_mwi when it is removed. Many other drivers calls pci_clear_mwi when pci_set_mwi is called, such as r8169, 8139cp and e1000. This patch adds pci_clear_mwi in error handling and removal procedure, which can fix the problem. Signed-off-by: Jia-Ju Bai Acked-by: Helmut Schaa Signed-off-by: Kalle Valo drivers/net/wireless/ralink/rt2x00/rt2x00pci.c | 2 ++ 1 file changed, 2 insertions(+) commit 8ba83d4daab9b71dd27da3765f34d1ffa1fee2ec Author: Arend van Spriel Date: Sat Jan 2 09:41:42 2016 +0100 brcmfmac: introduce module parameter to force successful probe The module parameter can be used to ensure the probe succeeds thus claiming the device and allowing post-mortem debugging in case of firmware crash. It is only available when select CONFIG_BRCMDBG. Reviewed-by: Hante Meuleman Reviewed-by: Franky (Zhenhui) Lin Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c | 11 ++++++++++- drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h | 13 +++++++++++++ drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c | 2 ++ 3 files changed, 25 insertions(+), 1 deletion(-) commit 7d34b05605676736c6695ccdcec547055d07468f Author: Hante Meuleman Date: Sat Jan 2 09:41:41 2016 +0100 brcmfmac: Move all module parameters to one place Module parameters are defined in several files. Move them in one place and make them device specific or global. This makes it easier to override device specific settings by external data like platform data in the future. Reviewed-by: Arend Van Spriel Reviewed-by: Franky (Zhenhui) Lin Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo .../wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 12 ++--- .../broadcom/brcm80211/brcmfmac/cfg80211.c | 13 ++--- .../wireless/broadcom/brcm80211/brcmfmac/common.c | 63 ++++++++++++++++++++++ .../wireless/broadcom/brcm80211/brcmfmac/common.h | 43 +++++++++++++++ .../wireless/broadcom/brcm80211/brcmfmac/core.c | 22 ++++---- .../wireless/broadcom/brcm80211/brcmfmac/core.h | 5 +- .../wireless/broadcom/brcm80211/brcmfmac/feature.c | 13 ++--- .../broadcom/brcm80211/brcmfmac/firmware.c | 16 +++--- .../broadcom/brcm80211/brcmfmac/fwsignal.c | 9 ++-- 9 files changed, 144 insertions(+), 52 deletions(-) commit 6a98d64a27de16f88b97a493577a5fb9d18ec000 Author: Hante Meuleman Date: Sat Jan 2 09:41:40 2016 +0100 brcmfmac: Fix warn trace on module unload while in ibss mode When the driver is being unloaded a situation can occur where the wirelesss core (cfg80211) wants to remove the ibss, but the state of brcmfmac has already been set to down. When an error is returned in that situation then that will result in a stack trace on removal of the wiphy object. This is avoided by returning 0 when device is down on a leave_ibss call. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit ec64241c9fd2873979cf9c05eeaaa4cabe12032a Author: Arend van Spriel Date: Sat Jan 2 09:41:39 2016 +0100 brcmfmac: obtain feature info using 'cap' firmware command Several features in the driver directly map to a firmware feature listed in response of the 'cap' firmware command. For those features this response will be examined instead of attempting individual firmware commands. Reviewed-by: Hante Meuleman Reviewed-by: Franky (Zhenhui) Lin Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Arend van Spriel Reviewed-by: Mathy Vanhoef Signed-off-by: Kalle Valo .../wireless/broadcom/brcm80211/brcmfmac/feature.c | 53 +++++++++++++--------- 1 file changed, 31 insertions(+), 22 deletions(-) commit 48ed16e86b282309afa1b911271cb39fbcfb9f06 Author: Hante Meuleman Date: Sat Jan 2 09:41:38 2016 +0100 brcmfmac: Add support for scheduled scan mac randomization Scheduled scan be requested to use mac randomization. This patch checks the flags and enables the randomization if desired. Reviewed-by: Arend Van Spriel Reviewed-by: Franky (Zhenhui) Lin Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo .../broadcom/brcm80211/brcmfmac/cfg80211.c | 54 +++++++++++++++++++--- .../wireless/broadcom/brcm80211/brcmfmac/feature.c | 10 ++++ .../wireless/broadcom/brcm80211/brcmfmac/feature.h | 4 +- .../broadcom/brcm80211/brcmfmac/fwil_types.h | 17 +++++++ 4 files changed, 77 insertions(+), 8 deletions(-) commit 3f5893d1b30a92f3fac1587750b2402c40d66651 Author: Hante Meuleman Date: Sat Jan 2 09:41:37 2016 +0100 brcmfmac: Add get_station support for IBSS When get_station is requested for IBSS then an error will be printed and no information will be returned. This patch adds IBSS specific get station information function. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo .../broadcom/brcm80211/brcmfmac/cfg80211.c | 51 ++++++++++++++++++++++ .../wireless/broadcom/brcm80211/brcmfmac/fwil.h | 1 + .../broadcom/brcm80211/brcmfmac/fwil_types.h | 17 ++++++++ 3 files changed, 69 insertions(+) commit 44129ed04b2b01c3ce9421bd3f530bd6d558e8cd Author: Franky Lin Date: Sat Jan 2 09:41:36 2016 +0100 brcmfmac: add arp offload ip address table configuration support Obtain ipv4 address through inetaddr notification for ARP offload host ip table configuration. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Hante Meuleman Signed-off-by: Franky Lin Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo .../wireless/broadcom/brcm80211/brcmfmac/core.c | 108 +++++++++++++++++++++ .../wireless/broadcom/brcm80211/brcmfmac/core.h | 2 + 2 files changed, 110 insertions(+) commit f7b7caa488eb209f1c63cc98104407c62753e406 Author: Alexey Khoroshilov Date: Sat Jan 2 02:12:38 2016 +0300 ipw2x00: add checks for dma mapping errors ipw2100_alloc_skb() and ipw2100_tx_send_data() do not check if mapping dma memory succeed. The patch adds the checks and failure handling. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov Signed-off-by: Kalle Valo drivers/net/wireless/intel/ipw2x00/ipw2100.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit ee548d4b1036aaba290a4eec68ba11590ad9cc73 Author: Amitkumar Karwar Date: Thu Dec 31 06:24:15 2015 -0800 mwifiex: reduce cloned skb queue size Driver supports Tx status ack feature. When hostapd/ wpa_supplicant asks for ack status of an EAPOL/ACTION frame, driver maintains a cloned skb for the packet until TX_STATUS event is received from firmware. Cloned skb queue gets flushed when connection is terminated or driver is unloaded. Let's reduce the queue size to avoid unnecessarily keeping memory allocated when environment is busy. Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/marvell/mwifiex/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 91442431c3f90d69e73f776847058d1ab2efdad1 Author: Xinming Hu Date: Thu Dec 31 06:24:14 2015 -0800 mwifiex: increase priority for critical message This patch increase the priority for some critical messages. Signed-off-by: Xinming Hu Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/marvell/mwifiex/pcie.c | 6 +++--- drivers/net/wireless/marvell/mwifiex/sdio.c | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) commit fdb1e28e05c9d1d6d9c3226e5443ad12e2032e00 Author: Xinming Hu Date: Thu Dec 31 06:24:12 2015 -0800 mwifiex: fix missing debug messages Some critical messages are missed until "adapter->dev" gets initialized in mwifiex_register_dev(). We will use pr_* print message instead of mwifiex_dbg at those places to resolve the problem. Signed-off-by: Xinming Hu Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/marvell/mwifiex/pcie.c | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) commit 50f85e220f6f51798429a3cc74e7c76d27513bef Author: Insu Yun Date: Wed Dec 30 11:01:44 2015 -0500 mwifiex: correctly handling kzalloc Since kzalloc can be failed in memory pressure, it needs to be handled, otherwise NULL dereference could be happened Signed-off-by: Insu Yun Signed-off-by: Kalle Valo drivers/net/wireless/marvell/mwifiex/sdio.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 9ec855cc9e17fe111e1f868027a75ac7ae849997 Author: Julia Lawall Date: Wed Dec 30 12:20:49 2015 +0100 iwlegacy: 4965-mac: constify il_sensitivity_ranges structure The il_sensitivity_ranges is never modified, so declare it as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Acked-by: Stanislaw Gruszka Signed-off-by: Kalle Valo drivers/net/wireless/intel/iwlegacy/4965-mac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit de06c1db255fb70301651a0255c6147e0036ea01 Author: Guenter Roeck Date: Wed Jan 6 16:20:10 2016 -0800 gpio: xilinx: Do not use gpiochip_get_data() in xgpio_save_regs() Commit 097d88e94c44 ("gpio: xilinx: use gpiochip data pointer") replaces the use of container_of() with gpiochip_get_data(). Unfortunately, the data pointer is not yet set by the time xgpio_save_regs() is called, causing a system hang. Fixes: 097d88e94c44 ("gpio: xilinx: use gpiochip data pointer") Signed-off-by: Guenter Roeck Signed-off-by: Linus Walleij drivers/gpio/gpio-xilinx.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 13bbdd370f67aef3351ad7bbc2fb624e3c23f905 Author: Sven Eckelmann Date: Sun Nov 29 01:48:57 2015 +0100 batman-adv: Fix invalid read while copying bat_iv.bcast_own batadv_iv_ogm_orig_del_if removes a part of the bcast_own which previously belonged to the now removed interface. This is done by copying all data which comes before the removed interface and then appending all the data which comes after the removed interface. The address calculation for the position of the data which comes after the removed interface assumed that the bat_iv.bcast_own is a pointer to a single byte datatype. But it is a pointer to unsigned long and thus the calculated position was wrong off factor sizeof(unsigned long). Fixes: 83a8342678a0 ("more basic routing code added (forwarding packets / bitarray added)") Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/bat_iv_ogm.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit d6bd05794f18673097ec5e62e577754649a5c632 Author: Marc Gonzalez Date: Wed Jan 6 10:27:43 2016 +0100 ARM: tango: Fix UP build issues Move SMP setup to platsmp.c for consistency with other platforms. Signed-off-by: Marc Gonzalez Signed-off-by: Olof Johansson arch/arm/mach-tango/Makefile | 4 +++- arch/arm/mach-tango/platsmp.c | 16 ++++++++++++++++ arch/arm/mach-tango/setup.c | 14 -------------- 3 files changed, 19 insertions(+), 15 deletions(-) commit 954e953c279f387df7a821a524420b32429254a7 Author: Linus Walleij Date: Tue Jan 5 09:59:20 2016 +0100 ARM: versatile: select some defaults in defconfig This updates the Versatile defconfig to: - Use NO_HZ_IDLE and HIGH_RES_TIMERS - Enable the I2C driver - Enable the SPI driver - Enable the RTC driver for DS1338 as found on the Versatile boards - Compile in the MMCI MMC driver, which is good if you want to mount a root FS on the MMC card without having to first load this module from an initramfs Patch tested on the Versatile AB, QEMU for Versatile AB and QEMU for Versatile PB. Cc: Rob Herring Signed-off-by: Linus Walleij Signed-off-by: Olof Johansson arch/arm/configs/versatile_defconfig | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 233919c97e9cc8fd9c3767da2abe0214c9575424 Author: Krzysztof Kozlowski Date: Wed Dec 23 19:37:17 2015 +0900 ARM: multi_v7_defconfig: Enable fan, sensors and audio for Odroid XU3 For Odroid XU3-family enable the: - PWM fan (to control the CPU fan using thermal subsystem), - TI INA231 sensors (provide power measurements of big.LITTLE cores, DRAM and GPU), - Samsung sound (for Odroid XU3 and Snow as well). Signed-off-by: Krzysztof Kozlowski Reviewed-by: Javier Martinez Canillas Signed-off-by: Olof Johansson arch/arm/configs/multi_v7_defconfig | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 9962b3d4f0788e8637211d7b999dcea60430df18 Author: Shawn Guo Date: Wed Dec 23 10:22:57 2015 +0800 ARM: dts: imx6q: clean up unused ipu2grp The pinctrl group ipu2grp is a leftover from the previous iomuxc DT cleanup. It's not used by anyone now. More importantly, it's getting in the way of saving the unnecessary pinfunc container node from the board dts files that include imx6q.dtsi. Let's clean it up. Signed-off-by: Shawn Guo Tested-by: Michael Trimarchi Signed-off-by: Olof Johansson arch/arm/boot/dts/imx6q.dtsi | 36 ------------------------------------ 1 file changed, 36 deletions(-) commit ce96cb7386a57b270648f9ba6003065329a26bd3 Merge: 326ea45 94af7a3 Author: Olof Johansson Date: Thu Jan 7 06:05:59 2016 +0100 Merge tag 'samsung-clk-exynos4-4.5' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into next/drivers Add a Security SubSystem (SSS) clock for Exynos4, needed by exynos-rng driver (Pseudo Random Number Generator). * tag 'samsung-clk-exynos4-4.5' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux: clk: samsung: exynos4: Add SSS gate clock commit 3b78fae793c027140cfe635ef216bf60aa6498f4 Author: Timur Tabi Date: Mon Jan 4 15:37:42 2016 -0600 tty: amba-pl011: use iotype instead of access_32b to track 32-bit I/O Instead of defining a new field in the uart_amba_port structure, use the existing iotype field of the uart_port structure, which is intended for this purpose. If we need to use 32-bit register access, we set iotype to UPIO_MEM32, otherwise we set it to UPIO_MEM. For early console, specify the "mmio32" option on the kernel command-line. Example: earlycon=pl011,mmio32,0x3ced1000 Signed-off-by: Timur Tabi Signed-off-by: Greg Kroah-Hartman Documentation/kernel-parameters.txt | 5 ++++- drivers/tty/serial/amba-pl011.c | 16 +++++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) commit cdf091ca2c3d6875e5f0fca28de4a6ca2f5273e6 Author: Russell King Date: Mon Jan 4 15:37:41 2016 -0600 tty: amba-pl011: fix earlycon register offsets The REG_x macros are indices into a table, not register offsets. Since earlycon does not have access to the vendor data, we can currently only support standard ARM PL011 devices. Signed-off-by: Russell King Tested-by: Huang Shijie Signed-off-by: Timur Tabi Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 9e0efaf6b41bf22c2eb81258fc2a6f1538a643e5 Merge: c7f5d10 51cb67c Author: David S. Miller Date: Wed Jan 6 22:54:18 2016 -0500 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net commit de1475cc53b2d6442443dcf5d66ed0fc50ed3c7e Author: Fan Li Date: Mon Jan 4 15:56:50 2016 +0800 f2fs: read isize while holding i_mutex in fiemap make sure the isize we read doesn't change during the process. Signed-off-by: Fan li Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 957efb0c2144cc5ff1795f43bf2d2ca430eaa227 Author: Jaegeuk Kim Date: Sat Jan 2 09:23:27 2016 -0800 Revert "f2fs: check the node block address of newly allocated nid" Original issue is fixed by: f2fs: cover more area with nat_tree_lock This reverts commit 24928634f81b1592e83b37dcd89ed45c28f12feb. fs/f2fs/node.c | 9 --------- 1 file changed, 9 deletions(-) commit a51311938e14c17f5a94d30baac9d7bec71f5858 Author: Jaegeuk Kim Date: Sat Jan 2 09:19:41 2016 -0800 f2fs: cover more area with nat_tree_lock There was a subtle bug on nat cache management which incurs wrong nid allocation or wrong block addresses when try_to_free_nats is triggered heavily. This patch enlarges the previous coverage of nat_tree_lock to avoid data race. Signed-off-by: Jaegeuk Kim fs/f2fs/node.c | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) commit 48bf35de3133996fbac2be16430cd4ea00fa8d38 Author: Boris BREZILLON Date: Wed Dec 30 20:41:29 2015 +0100 mtd: nand: jz4740: remove custom 'erased check' implementation The jz4740 driver is manually checking for 'erased pages' while correcting ECC bytes. This logic can now done by the core infrastructure, and can thus be removed from this driver. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/jz4740_nand.c | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) commit cc01e6075c7f5fee72746bb0ec763b84a46c3778 Author: Boris BREZILLON Date: Wed Dec 30 20:39:52 2015 +0100 mtd: nand: diskonchip: remove custom 'erased check' implementation The diskonchip driver is manually checking for 'erased pages' while correcting ECC bytes. This logic can now done by the core infrastructure, and can thus be removed from this driver. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/diskonchip.c | 38 +++----------------------------------- 1 file changed, 3 insertions(+), 35 deletions(-) commit bc29c95d2e51305ec611f29cc703c2fa0d2086de Author: Boris BREZILLON Date: Wed Dec 30 20:32:05 2015 +0100 mtd: nand: davinci: remove custom 'erased check' implementation The davinci driver is manually checking for 'erased pages' while correcting ECC bytes. This logic can now done by the core infrastructure, and can thus be removed from this driver. Signed-off-by: Boris Brezillon Tested-by: Franklin S Cooper Jr. Signed-off-by: Brian Norris drivers/mtd/nand/davinci_nand.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) commit 40cbe6eee97b706f27bcc4c6aa1018bbe4f1e577 Author: Boris BREZILLON Date: Wed Dec 30 20:32:04 2015 +0100 mtd: nand: use nand_check_erased_ecc_chunk in default ECC read functions The default NAND read functions are relying on the underlying controller driver to correct bitflips, but some of those controllers cannot properly fix bitflips in erased pages. Check for bitflips in erased pages in default core functions if the driver delegated the this check by setting the NAND_ECC_GENERIC_ERASED_CHECK flag. Signed-off-by: Boris Brezillon Tested-by: Franklin S Cooper Jr. Signed-off-by: Brian Norris drivers/mtd/nand/nand_base.c | 53 ++++++++++++++++++++++++++++++++++++++------ include/linux/mtd/nand.h | 10 +++++++++ 2 files changed, 56 insertions(+), 7 deletions(-) commit 6e9411923b8f4c0e568cbae0f35b7ee4eb989914 Author: Boris BREZILLON Date: Wed Dec 30 20:32:03 2015 +0100 mtd: nand: return consistent error codes in ecc.correct() implementations The error code returned by the ecc.correct() are not consistent over the all implementations. Document the expected behavior in include/linux/mtd/nand.h and fix offending implementations. [Brian: this looks like a bugfix for the ECC reporting in the bf5xx_nand driver, but we haven't seen any testing results for it] Signed-off-by: Boris Brezillon Tested-by: Franklin S Cooper Jr. Signed-off-by: Brian Norris drivers/mtd/nand/atmel_nand.c | 2 +- drivers/mtd/nand/bf5xx_nand.c | 20 ++++++++++++++------ drivers/mtd/nand/davinci_nand.c | 6 +++--- drivers/mtd/nand/jz4740_nand.c | 4 ++-- drivers/mtd/nand/mxc_nand.c | 4 ++-- drivers/mtd/nand/nand_bch.c | 2 +- drivers/mtd/nand/nand_ecc.c | 2 +- drivers/mtd/nand/omap2.c | 6 +++--- drivers/mtd/nand/r852.c | 4 ++-- include/linux/mtd/nand.h | 8 +++++++- include/linux/mtd/nand_bch.h | 2 +- 11 files changed, 37 insertions(+), 23 deletions(-) commit c6084cbce435fbf800f47026896137b3bae483c3 Author: Ondrej Zary Date: Sun Jan 3 16:06:19 2016 +1100 ncr5380: Add support for HP C2502 HP C2502 cards (based on 53C400A chips) use different magic numbers for software-based I/O address configuration than other cards. The configuration is also extended to allow setting the IRQ. Move the configuration to a new function magic_configure() and move magic the magic numbers into an array. Add new magic numbers for these HP cards and hp_c2502 module parameter to use them, e.g.: modprobe g_NCR5380 ncr_irq=7 ncr_addr=0x280 hp_c2502=1 Tested with HP C2502 and DTCT-436P. Signed-off-by: Ondrej Zary Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/g_NCR5380.c | 74 +++++++++++++++++++++++++++++++++++++----------- drivers/scsi/g_NCR5380.h | 1 + 2 files changed, 59 insertions(+), 16 deletions(-) commit 42fc6370c95df507b925b11372e8baa17eb0da41 Author: Ondrej Zary Date: Sun Jan 3 16:06:18 2016 +1100 ncr5380: Fix wait for 53C80 registers registers after PDMA The check for 53C80 registers accessibility was commented out because it was broken (inverted). Fix and enable it. Signed-off-by: Ondrej Zary Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/g_NCR5380.c | 37 ++++++------------------------------- 1 file changed, 6 insertions(+), 31 deletions(-) commit aeb51152bb55451f7a3ddb8c1ec4d4bc19d4a195 Author: Ondrej Zary Date: Sun Jan 3 16:06:17 2016 +1100 ncr5380: Enable PDMA for DTC chips Add I/O register mapping for DTC chips and enable PDMA mode. These chips have 16-bit wide HOST BUFFER register and it must be read by 16-bit accesses (we lose data otherwise). Large PIO transfers crash at least the DTCT-436P chip (all reads result in 0xFF) so this patch actually makes it work. The chip also crashes when we bang on the C400 host status register too heavily after PDMA write - a small udelay is needed. Tested on DTCT-436P and verified that it does not break 53C400A. Signed-off-by: Ondrej Zary Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/g_NCR5380.c | 38 +++++++++++++++++++++++++++++++------- drivers/scsi/g_NCR5380.h | 3 ++- 2 files changed, 33 insertions(+), 8 deletions(-) commit cecf3beef0ef311b5b375b6307fd5dc3f5dc3edb Author: Ondrej Zary Date: Sun Jan 3 16:06:16 2016 +1100 ncr5380: Enable PDMA for NCR53C400A Add I/O register mapping for NCR53C400A and enable PDMA mode to improve performance and fix non-working IRQ. Tested with HP C2502 (and user-space enabler). Signed-off-by: Ondrej Zary Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/g_NCR5380.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) commit 12150797d064e2936154a8c01be24ce1b0115cfe Author: Ondrej Zary Date: Sun Jan 3 16:06:15 2016 +1100 ncr5380: Use runtime register mapping Convert compile-time C400_ register mapping to runtime mapping. This removes the weird negative register offsets and allows adding additional mappings. While at it, convert read/write loops into insb/outsb. Signed-off-by: Ondrej Zary Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.h | 13 +------ drivers/scsi/g_NCR5380.c | 88 ++++++++++++++++++++++-------------------------- drivers/scsi/g_NCR5380.h | 12 ++++--- 3 files changed, 49 insertions(+), 64 deletions(-) commit f03946210d67be9a33ad63f6a0eed7cdf8c28334 Author: Ondrej Zary Date: Sun Jan 3 16:06:14 2016 +1100 ncr5380: Fix pseudo DMA transfers on 53C400 Pseudo-DMA (PDMA) has been broken for ages, resulting in hangs on 53C400-based cards. According to 53C400 datasheet, PDMA transfer length must be a multiple of 128. Check if that's true and use PIO if it's not. This makes PDMA work on 53C400 (Canon FG2-5202). Signed-off-by: Ondrej Zary Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/g_NCR5380.c | 4 ++++ 1 file changed, 4 insertions(+) commit 3d07d22b3d475ba9b0adfe083c537ee1ada034c8 Author: Finn Thain Date: Sun Jan 3 16:06:13 2016 +1100 ncr5380: Cleanup whitespace and parentheses Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 30 +++++++++++++++++++----------- drivers/scsi/atari_NCR5380.c | 26 +++++++++++++------------- 2 files changed, 32 insertions(+), 24 deletions(-) commit ac15c3bcbd5b989762487949963e2498da292803 Author: Finn Thain Date: Sun Jan 3 16:06:12 2016 +1100 atari_NCR5380: Merge changes from NCR5380.c In the past, atari_NCR5380.c was overlooked by those working on NCR5380.c and this caused needless divergence. All of the changes in this patch were taken from NCR5380.c. This removes some unimportant discrepancies between the two core driver forks so that 'diff' can be used to reveal the important ones, to facilitate reunification. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/atari_NCR5380.c | 84 +++++++++++++++++++++++++++----------------- 1 file changed, 52 insertions(+), 32 deletions(-) commit 0d2cf867e44278ec1a0ba4419d9718336d308acb Author: Finn Thain Date: Sun Jan 3 16:06:11 2016 +1100 ncr5380: Merge changes from atari_NCR5380.c In the past, NCR5380.c was overlooked by those working on atari_NCR5380.c and this caused needless divergence. All of the changes in this patch were taken from atari_NCR5380.c. This removes some unimportant discrepancies between the two core driver forks so that 'diff' can be used to reveal the important ones, to facilitate reunification. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 155 +++++++++++++++++++++++++++---------------------- 1 file changed, 87 insertions(+), 68 deletions(-) commit 594d4ba36c0a03967da37ee6e7675ede1a67abb4 Author: Finn Thain Date: Sun Jan 3 16:06:10 2016 +1100 ncr5380: Fix whitespace in comments using regexp Hanging indentation was a poor choice for the text inside comments. It has been used in the wrong places and done badly elsewhere. There is little consistency within any file. One fork of the core driver uses tabs for this indentation while the other uses spaces. Better to use flush-left alignment throughout. This patch is the result of the following substitution. It replaces tabs and spaces at the start of a comment line with a single space. perl -i -pe 's,^(\t*[/ ]\*)[ \t]+,$1 ,' drivers/scsi/{atari_,}NCR5380.c This removes some unimportant discrepancies between the two core driver forks so that the important ones become obvious, to facilitate reunification. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 204 +++++++++++++++++++++---------------------- drivers/scsi/atari_NCR5380.c | 106 +++++++++++----------- 2 files changed, 155 insertions(+), 155 deletions(-) commit aff0cf9a7e098ecf1651f6f3a8cb0fbe272d6cf4 Author: Finn Thain Date: Sun Jan 3 16:06:09 2016 +1100 ncr5380: Fix trailing whitespace using regexp This patch is the result of the following substitution. It removes any tabs and spaces at the end of a line. perl -i -pe 's,[\t ]+$,,' drivers/scsi/{atari_,}NCR5380.c This removes some unimportant discrepancies between the two core driver forks so that the important ones become obvious, to facilitate reunification. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 372 ++++++++++++++++++++++++------------------------- 1 file changed, 186 insertions(+), 186 deletions(-) commit c16df32e5f4c5c0bd8c8f6ade82141f2debddc3c Author: Finn Thain Date: Sun Jan 3 16:06:08 2016 +1100 ncr5380: Cleanup comments The CVS revision log is not nearly as useful as the history/history.git repo, so remove it. Roman's commentary at the top of his driver repeats the same information elsewhere in the file so remove it. Also remove some other redundant or obsolete comments. Both the driver and the datasheets confusingly refer to a DMA access for a SCSI WRITE command as a "DMA write". Similarly a SCSI READ command is called a "DMA read". This is the opposite of the usual convention. Thankfully, the chip documentation and driver code also use "DMA send" and "DMA receive", so adopt this terminology. This removes some unimportant discrepancies between the two core driver forks so that 'diff' can be used to reveal the important ones, to facilitate reunification. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 170 ++++++++++--------------------------------- drivers/scsi/atari_NCR5380.c | 109 ++++----------------------- 2 files changed, 54 insertions(+), 225 deletions(-) commit 0a4e36125451165847c6d4e7d5633d92e53f5c69 Author: Finn Thain Date: Sun Jan 3 16:06:07 2016 +1100 ncr5380: Fix soft lockups Because of the rudimentary design of the chip, it is necessary to poll the SCSI bus signals during PIO and this tends to hog the CPU. The driver will accept new commands while others execute, and this causes a soft lockup because the workqueue item will not terminate until the issue queue is emptied. When exercising dmx3191d using sequential IO from dd, the driver is sent 512 KiB WRITE commands and 128 KiB READs. For a PIO transfer, the rate is is only about 300 KiB/s, so these are long-running commands. And although PDMA may run at several MiB/s, interrupts are disabled for the duration of the transfer. Fix the unresponsiveness and soft lockup issues by calling cond_resched() after each command is completed and by limiting max_sectors for drivers that don't implement real DMA. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 6 ++++-- drivers/scsi/arm/cumana_1.c | 1 + drivers/scsi/arm/oak.c | 1 + drivers/scsi/atari_NCR5380.c | 6 ++++-- drivers/scsi/dmx3191d.c | 1 + drivers/scsi/dtc.c | 1 + drivers/scsi/g_NCR5380.c | 1 + drivers/scsi/mac_scsi.c | 1 + drivers/scsi/pas16.c | 1 + drivers/scsi/t128.c | 1 + 10 files changed, 16 insertions(+), 4 deletions(-) commit cd46140a9a2f8fe0208262dc5f4d1fba15c93063 Author: Finn Thain Date: Sun Jan 3 16:06:06 2016 +1100 atari_scsi, sun3_scsi: Remove global Scsi_Host pointer This refactoring removes two global Scsi_Host pointers. This improves consistency with other ncr5380 drivers. Adopting the same conventions as the other drivers makes them easier to read. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/atari_NCR5380.c | 5 +-- drivers/scsi/atari_scsi.c | 29 +++++++++--------- drivers/scsi/sun3_scsi.c | 72 +++++++++++--------------------------------- 3 files changed, 36 insertions(+), 70 deletions(-) commit b746545f8bb0c4280c247353d61ac93620f5ef17 Author: Finn Thain Date: Sun Jan 3 16:06:05 2016 +1100 atari_NCR5380: Eliminate HOSTNO macro Keep the two core driver forks in sync. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 71 +++++++++++++++--------------- drivers/scsi/atari_NCR5380.c | 102 ++++++++++++++++++++----------------------- 2 files changed, 84 insertions(+), 89 deletions(-) commit 6a6ff4ac0d2d2a706d2a55a35e42e7a77397e45a Author: Finn Thain Date: Sun Jan 3 16:06:04 2016 +1100 atari_NCR5380: Remove HOSTNO macro from printk() and seq_printf() calls Remove the HOSTNO macro that is peculiar to atari_NCR5380.c and contributes to the problem of divergence of the NCR5380 core drivers. Keep NCR5380.c in sync. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 17 +++++++++-------- drivers/scsi/atari_NCR5380.c | 23 +++++++++-------------- 2 files changed, 18 insertions(+), 22 deletions(-) commit 62717f537e1b325665711166c33cd2d06fd6a5cd Author: Finn Thain Date: Sun Jan 3 16:06:03 2016 +1100 ncr5380: Implement new eh_bus_reset_handler NCR5380.c lacks a sane eh_bus_reset_handler. The atari_NCR5380.c code is much better but it should not throw out the issue queue (that would be a host reset) and it neglects to set the result code for commands that it throws out. Fix these bugs and keep the two core drivers in sync. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 50 +++++++++++++++++++++++++++++++++++++++++++- drivers/scsi/atari_NCR5380.c | 39 ++++++++++++++++++++-------------- 2 files changed, 72 insertions(+), 17 deletions(-) commit 707d62b37fbb1de74da6e5cf263bcd8223ae3cf7 Author: Finn Thain Date: Sun Jan 3 16:06:02 2016 +1100 ncr5380: Fix EH during arbitration and selection During arbitration and selection, the relevant command is invisible to exception handlers and can be found only in a pointer on the stack of a different thread. When eh_abort_handler can't find a given command, it can't decide whether that command was completed already or is still in arbitration or selection phase. But it must return either SUCCESS (e.g. command completed earlier) or FAILED (could not abort the nexus, try bus reset). The solution is to make sure all commands belonging to the LLD are always visible to exception handlers. Add another scsi_cmnd pointer to the hostdata struct to track the command in arbitration or selection phase. Replace 'retain_dma_irq' with the new 'selecting' pointer, to bring atari_NCR5380.c into line with NCR5380.c. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 76 ++++++++++++++++++++++++++++++---------- drivers/scsi/NCR5380.h | 4 +-- drivers/scsi/atari_NCR5380.c | 82 ++++++++++++++++++++++++++++++++------------ 3 files changed, 119 insertions(+), 43 deletions(-) commit 8b00c3d5d40da0477fceffadcfbc2c09f24104d0 Author: Finn Thain Date: Sun Jan 3 16:06:01 2016 +1100 ncr5380: Implement new eh_abort_handler Introduce a new eh_abort_handler implementation. This one attempts to follow all of the rules relating to EH handlers. There is still a known bug: during selection, a command becomes invisible to the EH handlers because it only appears in a pointer on the stack of a different thread. This bug is addressed in a subsequent patch. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 163 +++++++++++++++++++++++++++++++++++++----- drivers/scsi/atari_NCR5380.c | 165 ++++++++++++++++++++++++++++++++++++++----- 2 files changed, 290 insertions(+), 38 deletions(-) commit f27db8eb98a19e0f1b5748f8aad9fb4a98301eb0 Author: Finn Thain Date: Sun Jan 3 16:06:00 2016 +1100 ncr5380: Fix autosense bugs NCR5380_information_transfer() may re-queue a command for autosense, after calling scsi_eh_prep_cmnd(). This creates several possibilities: 1. Reselection may intervene before the re-queued command gets processed. If the reconnected command then undergoes autosense, this causes the scsi_eh_save data from the previous command to be overwritten. 2. After NCR5380_information_transfer() calls scsi_eh_prep_cmnd(), a new REQUEST SENSE command may arrive. This would be queued ahead of any command already undergoing autosense, which means the scsi_eh_save data might be restored to the wrong command. 3. After NCR5380_information_transfer() calls scsi_eh_prep_cmnd(), eh_abort_handler() may abort the command. But the scsi_eh_save data is not discarded, which means the scsi_eh_save data might be incorrectly restored to the next REQUEST SENSE command issued. This patch adds a new autosense list so that commands that are re-queued because of a CHECK CONDITION result can be kept apart from the REQUEST SENSE commands that arrive via queuecommand. This patch also adds a function dedicated to dequeueing and preparing the next command for processing. By refactoring the main loop in this way, scsi_eh_save takes place when an autosense command is dequeued rather than when re-queued. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 194 ++++++++++++++++++++--------------- drivers/scsi/NCR5380.h | 2 + drivers/scsi/atari_NCR5380.c | 239 ++++++++++++++++++++++++------------------- 3 files changed, 249 insertions(+), 186 deletions(-) commit 677e01947e4a34ad97e9867af20435b8281c38e0 Author: Finn Thain Date: Sun Jan 3 16:05:59 2016 +1100 ncr5380: Refactor command completion Implement a 'complete_cmd' function to complete commands. This is needed by the following patch; the new function provides a site for the logic needed to correctly handle REQUEST SENSE commands. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 31 ++++++++++++++++++++++------- drivers/scsi/atari_NCR5380.c | 46 +++++++++++++++++++++++++++++--------------- 2 files changed, 55 insertions(+), 22 deletions(-) commit 32b26a104237c1ba3575a6c8d47e46060cc416fb Author: Finn Thain Date: Sun Jan 3 16:05:58 2016 +1100 ncr5380: Use standard list data structure The NCR5380 drivers have a home-spun linked list implementation for scsi_cmnd structs that uses cmd->host_scribble as a 'next' pointer. Adopt the standard list_head data structure and list operations instead. Remove the eh_abort_handler rather than convert it. Doing the conversion would only be churn because the existing EH handlers don't work and get replaced in a subsequent patch. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 214 ++++++-------------------------- drivers/scsi/NCR5380.h | 16 ++- drivers/scsi/arm/cumana_1.c | 1 + drivers/scsi/arm/oak.c | 1 + drivers/scsi/atari_NCR5380.c | 287 +++++++------------------------------------ drivers/scsi/atari_scsi.c | 1 + drivers/scsi/dmx3191d.c | 1 + drivers/scsi/dtc.c | 1 + drivers/scsi/g_NCR5380.c | 1 + drivers/scsi/mac_scsi.c | 1 + drivers/scsi/pas16.c | 1 + drivers/scsi/sun3_scsi.c | 1 + drivers/scsi/t128.c | 1 + 13 files changed, 106 insertions(+), 421 deletions(-) commit 5299b3caf525c5a6cdebbe162733c8ff1692c4d0 Author: Finn Thain Date: Sun Jan 3 16:05:57 2016 +1100 ncr5380: Remove redundant volatile qualifiers The hostdata struct is now protected by a spin lock so the volatile qualifiers are redundant. Remove them. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.h | 12 ++++++------ drivers/scsi/atari_NCR5380.c | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) commit 9903fa914aece320599e74b39ae6cf1bebe1a796 Author: Finn Thain Date: Sun Jan 3 16:05:56 2016 +1100 ncr5380: Remove LIST and REMOVE macros Printing command pointers can be useful when debugging queues. Other than that, the LIST and REMOVE macros are just clutter. These macros are redundant now that NDEBUG_QUEUES causes pointers to be printed, so remove them. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 19 ------------------- drivers/scsi/atari_NCR5380.c | 32 -------------------------------- 2 files changed, 51 deletions(-) commit 0d3d9a423cd9a4007908a7ec36bf1261e4e5b773 Author: Finn Thain Date: Sun Jan 3 16:05:55 2016 +1100 ncr5380: Use dsprintk() for queue debugging Print the command pointers in the log messages for debugging queue data structures. The LIST and REMOVE macros can then be removed. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 36 ++++++++++++++++++++++++------------ drivers/scsi/atari_NCR5380.c | 43 +++++++++++++++++++++++-------------------- 2 files changed, 47 insertions(+), 32 deletions(-) commit e8a601444297e336a7c4355f07b4bb386962894c Author: Finn Thain Date: Sun Jan 3 16:05:54 2016 +1100 ncr5380: Use shost_priv helper Make use of the shost_priv() helper. Remove HOSTDATA and SETUP_HOSTDATA macros because they harm readability. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 23 ++++++++++------------- drivers/scsi/atari_NCR5380.c | 20 +++++++------------- 2 files changed, 17 insertions(+), 26 deletions(-) commit dbb6b350695186b340e621f5edf4c31420f9ab23 Author: Finn Thain Date: Sun Jan 3 16:05:53 2016 +1100 ncr5380: Remove H_NO macro and introduce dsprintk Replace all H_NO and some HOSTNO macros (both peculiar to atari_NCR5380.c) with a new dsprintk macro that's more useful and more consistent. The new macro avoids a lot of boilerplate in new code in subsequent patches. Keep NCR5380.c in sync. Remaining HOSTNO macros are removed as side-effects of subsequent patches. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 9 +++++--- drivers/scsi/NCR5380.h | 5 ++++ drivers/scsi/atari_NCR5380.c | 54 ++++++++++++++++++++++---------------------- 3 files changed, 38 insertions(+), 30 deletions(-) commit e5c3fddfaa066e440315e713ddf8b60e9ac48cf7 Author: Finn Thain Date: Sun Jan 3 16:05:52 2016 +1100 ncr5380: Remove command list debug code Some NCR5380 hosts offer a .show_info method to access the contents of the various command list data structures from a procfs file. When NDEBUG is set, the same information is sent to the console during EH. The two core drivers, atari_NCR5380.c and NCR5380.c differ here. Because it is just for debugging, the easiest way to fix the discrepancy is simply remove this code. The only remaining users of NCR5380_show_info() and NCR5380_write_info() are drivers that define PSEUDO_DMA. The others have no use for the .show_info method, so don't initialize it. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 70 +++------------------------------ drivers/scsi/arm/oak.c | 2 - drivers/scsi/atari_NCR5380.c | 94 ++------------------------------------------ drivers/scsi/atari_scsi.c | 2 - drivers/scsi/g_NCR5380.c | 1 - drivers/scsi/sun3_scsi.c | 2 - 6 files changed, 9 insertions(+), 162 deletions(-) commit 11d2f63b9cf5665ce9dc425236b326dd327c4aa3 Author: Finn Thain Date: Sun Jan 3 16:05:51 2016 +1100 ncr5380: Change instance->host_lock to hostdata->lock NCR5380.c presently uses the instance->host_lock spin lock. Convert this to a new spin lock that protects the NCR5380_hostdata struct. atari_NCR5380.c previously used local_irq_save/restore() rather than a spin lock. Convert this to hostdata->lock in irq mode. For SMP platforms, the interrupt handler now also acquires the spin lock. This brings all locking in the two core drivers into agreement. Adding this locking also means that a bunch of volatile qualifiers can be removed from the members of the NCR5380_hostdata struct. This is done in a subsequent patch. Proper locking will allow the abort handler to locate a command being aborted. This is presently impossible if the abort handler is invoked when the command has been moved from a queue to a pointer on the stack. (If eh_abort_handler can't determine whether a command has been completed or is still being processed then it can't decide whether to return success or failure.) The hostdata spin lock is now held when calling NCR5380_select() and NCR5380_information_transfer(). Where possible, the lock is dropped for polling and PIO transfers. Clean up the now-redundant SELECT_ENABLE_REG writes, that used to provide limited mutual exclusion between information_transfer() and reselect(). Accessing hostdata->connected without data races means taking the lock; cleanup these accesses. The new spin lock falls away for m68k and other UP builds, so this should have little impact there. In the SMP case the new lock should be uncontested even when the SCSI bus is contested. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 82 ++++++++++++++++---------- drivers/scsi/NCR5380.h | 1 + drivers/scsi/atari_NCR5380.c | 135 ++++++++++++++++++------------------------- 3 files changed, 109 insertions(+), 109 deletions(-) commit be3f4121aa352d8fef77a57df4b5e106d7f9a917 Author: Finn Thain Date: Sun Jan 3 16:05:50 2016 +1100 ncr5380: Remove redundant ICR_ARBITRATION_LOST test and eliminate FLAG_DTC3181E Remove FLAG_DTC3181E. It was used to suppress a final Arbitration Lost (SEL asserted) test that isn't actually needed. The test was suppressed because it causes problems for DTC436 and DTC536 chips. It takes place after the host wins arbitration, so SEL has been asserted. These chips can't seem to tell whether it was the host or another bus device that did so. This questionable final test appears in a flow chart in an early NCR5380 datasheet. It was removed from later documents like the DP5380 datasheet. By the time this final test takes place, the driver has already tested the Arbitration Lost bit several times. The first test happens 3 us after BUS FREE (or longer due to register access delays). The protocol requires that a device stop signalling within 1.8 us after BUS FREE unless it won arbitration, in which case it must assert SEL, which is detected 1.2 us later by the first Arbitration Lost test. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 14 +------------- drivers/scsi/NCR5380.h | 1 - drivers/scsi/atari_NCR5380.c | 9 --------- drivers/scsi/dmx3191d.c | 2 +- drivers/scsi/g_NCR5380.c | 2 +- 5 files changed, 3 insertions(+), 25 deletions(-) commit e42d01518d006c4557e202bc9e8fdc41972fb49f Author: Finn Thain Date: Sun Jan 3 16:05:49 2016 +1100 atari_NCR5380: Fix queue_size limit When a target reports a QUEUE_FULL condition it causes the driver to update the 'queue_size' limit with the number of currently allocated tags. At least, that's what's supposed to happen, according to the comments. Unfortunately the terms in the assignment are swapped. Fix this and cleanup some obsolete comments. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/atari_NCR5380.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) commit aa2e2cb1dde0e72e039f94210fb17e73661a6351 Author: Finn Thain Date: Sun Jan 3 16:05:48 2016 +1100 ncr5380: Fix and cleanup scsi_host_template initializers Add missing .module initializer. Use distinct .proc_name values for the g_NCR5380 and g_NCR5380_mmio modules. Remove pointless CAN_QUEUE and CMD_PER_LUN override macros. Cleanup whitespace and code style. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/atari_scsi.c | 2 +- drivers/scsi/dmx3191d.c | 1 + drivers/scsi/dtc.c | 32 ++++++++++++++++---------------- drivers/scsi/dtc.h | 8 -------- drivers/scsi/g_NCR5380.c | 26 +++++++++++++------------- drivers/scsi/g_NCR5380.h | 10 ++-------- drivers/scsi/mac_scsi.c | 28 ++++++++++++++-------------- drivers/scsi/pas16.c | 32 ++++++++++++++++---------------- drivers/scsi/pas16.h | 8 -------- drivers/scsi/sun3_scsi.c | 6 +++--- drivers/scsi/t128.c | 32 ++++++++++++++++---------------- drivers/scsi/t128.h | 8 -------- 12 files changed, 82 insertions(+), 111 deletions(-) commit bf1a0c6f8f2c1959082f1b55b907dde100c87501 Author: Finn Thain Date: Sun Jan 3 16:05:47 2016 +1100 ncr5380: Fix NDEBUG_NO_DATAOUT flag NDEBUG_NO_DATAOUT should not disable DATA IN phases too. Fix this. (This bug has long been fixed in atari_NCR5380.c.) Signed-off-by: Finn Thain Tested-by: Ondrej Zary Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 161c0059a2a80aefe7000d9ab7ce5c36e5463b5f Author: Finn Thain Date: Sun Jan 3 16:05:46 2016 +1100 ncr5380: Cleanup #include directives Remove unused includes (stat.h, signal.h, proc_fs.h) and move includes needed by the core drivers into the common header (delay.h etc). Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 2 -- drivers/scsi/NCR5380.h | 4 ++++ drivers/scsi/arm/cumana_1.c | 4 ---- drivers/scsi/arm/oak.c | 2 -- drivers/scsi/atari_NCR5380.c | 5 ----- drivers/scsi/atari_scsi.c | 1 - drivers/scsi/dmx3191d.c | 5 ----- drivers/scsi/dtc.c | 4 +--- drivers/scsi/g_NCR5380.c | 6 ++---- drivers/scsi/mac_scsi.c | 1 - drivers/scsi/pas16.c | 4 ---- drivers/scsi/t128.c | 3 --- 12 files changed, 7 insertions(+), 34 deletions(-) commit e0783ed3660aecb83af580cdace583980b22809b Author: Finn Thain Date: Sun Jan 3 16:05:45 2016 +1100 ncr5380: Fix off-by-one bug in extended_msg[] bounds check Fix the array bounds check when transferring an extended message from the target. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 3 ++- drivers/scsi/atari_NCR5380.c | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) commit 72064a783b0c24dc4325295ffba949c115aff6d2 Author: Finn Thain Date: Sun Jan 3 16:05:44 2016 +1100 ncr5380: Standardize reselection handling Bring the two NCR5380_reselect() implementations into agreement. Replace infinite loops in atari_NCR5380.c with timeouts, as per NCR5380.c. Remove 'abort' flag in NCR5380.c as per atari_NCR5380.c -- if reselection fails, there may be no MESSAGE IN phase so don't attempt data transfer. During selection, don't interfere with the chip registers after a reselection interrupt intervenes. Clean up some trivial issues with code style, comments and printk. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 115 ++++++++++++++++++++++++------------------- drivers/scsi/atari_NCR5380.c | 50 +++++++++++-------- 2 files changed, 93 insertions(+), 72 deletions(-) commit 9db6024e55ee9b53c411d618e2a9476f6a130151 Author: Finn Thain Date: Sun Jan 3 16:05:43 2016 +1100 ncr5380: Replace READ_OVERRUNS macro with FLAG_NO_DMA_FIXUPS The workarounds for chip errata appear twice, in slightly different forms. One is used when defined(REAL_DMA) || defined(REAL_DMA_POLL), the other when defined(PSEUDO_DMA). In the PDMA case, the workarounds have been made conditional on FLAG_NO_DMA_FIXUPS. Do the same for the DMA case, to eliminate the READ_OVERRUNS macro. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) commit 55181be8ced18697e48f75d53028b9ee36522dba Author: Finn Thain Date: Sun Jan 3 16:05:42 2016 +1100 ncr5380: Replace redundant flags with FLAG_NO_DMA_FIXUP The flags DMA_WORKS_RIGHT, FLAG_NCR53C400 and FLAG_HAS_LAST_BYTE_SENT all mean the same thing, i.e. the chip is not a 538[01]. (More recent devices such as the 53C80 have a 'Last Byte Sent' bit in the Target Command Register as well as other fixes for End-of-DMA errata.) These flags have no additional meanings since previous cleanup patches eliminated the NCR53C400 macro, moved g_NCR5380-specific code out of the core driver and standardized interrupt handling. Use the FLAG_NO_DMA_FIXUP flag to suppress End-of-DMA errata workarounds, for those cards and drivers that make use of the TCR_LAST_BYTE_SENT bit. Remove the old flags. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 68 ++++++++++++++++-------------------------------- drivers/scsi/NCR5380.h | 4 +-- drivers/scsi/dtc.c | 4 +-- drivers/scsi/g_NCR5380.c | 2 +- 4 files changed, 25 insertions(+), 53 deletions(-) commit b32ade124494fc16eb19521ac310cbd5cb48dda8 Author: Finn Thain Date: Sun Jan 3 16:05:41 2016 +1100 ncr5380: Introduce NCR5380_poll_politely2 SCSI bus protocol sometimes requires monitoring two related conditions simultaneously. Enhance NCR5380_poll_politely() for this purpose, and put it to use in the arbitration algorithm. It will also find use in pseudo DMA. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 66 +++++++++++++++++++++++++------------------- drivers/scsi/atari_NCR5380.c | 62 ++++++++++++++++++++++++----------------- 2 files changed, 75 insertions(+), 53 deletions(-) commit cd400825c95d4b883232614255c4f35c53bf3582 Author: Finn Thain Date: Sun Jan 3 16:05:40 2016 +1100 ncr5380: Standardize interrupt handling Because interrupt handling is crucial to the core driver(s), all wrapper drivers need to agree on this code. This patch removes discrepancies. NCR5380_intr() in NCR5380.c has the following pointless loop that differs from the code in atari_NCR5380.c. done = 1; do { /* ... */ } while (!done); The 'done' flag gets cleared when a reconnected command is to be processed from the work queue. But in NCR5380.c, the flag is also used to cause the interrupt conditions to be re-examined. Perhaps this was because NCR5380_reselect() was expected to cause another interrupt, or perhaps the remaining present interrupt conditions need to be handled after the NCR5380_reselect() call? Actually, both possibilities are bogus, as is the loop itself. It seems have been overlooked in the hit-and-miss removal of scsi host instance list iteration many years ago; see history/history.git commit 491447e1fcff ("[PATCH] next NCR5380 updates") and commit 69e1a9482e57 ("[PATCH] fix up NCR5380 private data"). See also my earlier patch, "Always retry arbitration and selection". The datasheet says, "IRQ can be reset simply by reading the Reset Parity/Interrupt Register". So don't treat the chip IRQ like a level-triggered interrupt. Of the conditions that set the IRQ flag, some are level-triggered and some are edge-triggered, which means IRQ itself must be edge-triggered. Some interrupt conditions are latched and some are not. Before clearing the chip IRQ flag, clear all state that may cause it to be raised. That means clearing the DMA Mode and Busy Monitor bits in the Mode Register and clearing the host ID in the Select Enable register. Also clean up some printk's and some comments. Keep atari_NCR5380.c and NCR5380.c in agreement. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 185 ++++++++++++++++++++++++------------------- drivers/scsi/atari_NCR5380.c | 154 ++++++++++++++++++----------------- drivers/scsi/dtc.c | 8 -- drivers/scsi/g_NCR5380.c | 2 - 4 files changed, 178 insertions(+), 171 deletions(-) commit d1af9c7f4a69824440d2d755ddc3b861712ef024 Author: Finn Thain Date: Sun Jan 3 16:05:39 2016 +1100 ncr5380: Remove UNSAFE macro Configuring core drivers using macros like this one prevents re-unifying the core driver forks, and prevents implementing the core driver as a library or a platform driver. The UNSAFE macro in particular is a poor workaround for the problem of interrupt latency. Releasing the locks complicates things because then we would have to handle the possibility of EH handler invocation during a PDMA transfer. The comments say that instead of using this macro, "you're going to be better off twiddling with transfersize". I agree. Remove this stuff. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 15 --------------- drivers/scsi/dtc.c | 2 -- drivers/scsi/pas16.c | 1 - 3 files changed, 18 deletions(-) commit 010e89d18c4e66ab69d64bab439eba988d16fcc9 Author: Finn Thain Date: Sun Jan 3 16:05:38 2016 +1100 ncr5380: Standardize work queueing algorithm The complex main_running/queue_main mechanism is peculiar to atari_NCR5380.c. It isn't SMP safe and offers little value given that the work queue already offers concurrency management. Remove this complexity to bring atari_NCR5380.c closer to NCR5380.c. It is not a good idea to call the information transfer state machine from queuecommand because, according to Documentation/scsi/scsi_mid_low_api.txt that could happen in soft irq context. Fix this. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.h | 1 - drivers/scsi/atari_NCR5380.c | 80 ++++---------------------------------------- 2 files changed, 6 insertions(+), 75 deletions(-) commit 8d8601a757688386e914b922cc267a9244e0fdc9 Author: Finn Thain Date: Sun Jan 3 16:05:37 2016 +1100 ncr5380: Use work_struct instead of delayed_work Each host instance now has it's own work queue so the main() work item can sleep when necessary. That means we can use a simple work item rather than a delayed work item. This brings NCR5380.c closer to atari_NCR5380.c. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 12 +++++------- drivers/scsi/NCR5380.h | 1 - 2 files changed, 5 insertions(+), 8 deletions(-) commit 401e79fe8d9f0151ad99e6fd7c1bd2e178c84d25 Author: Finn Thain Date: Sun Jan 3 16:05:36 2016 +1100 ncr5380: Dont wait for BUS FREE after disconnect When there is a queued command and no connected command, NCR5380_select() is called and arbitration begins. The chip waits for BUS FREE once the MR_ARBITRATE bit in the mode register is enabled. That means there is no need to wait for BUS FREE after disconnecting. There is presently no polling for BUS FREE after sending an ABORT or other message that might lead to disconnection. It only happens after COMMAND COMPLETE or DISCONNECT messages, which seems inconsistent. Remove the polling for !BSY in the COMMAND COMPLETE and DISCONNECT cases. BTW, the comments say "avoid nasty timeouts" and perhaps BUS FREE polling was somehow helpful back in Linux v0.99.14u, when it was introduced. The relevant timeout is presently 1 second (for bus arbitration). Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 7 ------- drivers/scsi/atari_NCR5380.c | 11 ----------- 2 files changed, 18 deletions(-) commit 55500d9b08295e3b6016b53879dea1cb7787f1b0 Author: Finn Thain Date: Sun Jan 3 16:05:35 2016 +1100 atari_NCR5380: Use arbitration timeout Allow target selection to fail with a timeout instead of waiting in infinite loops. This gets rid of the unused NCR_TIMEOUT macro, it is more defensive and has proved helpful in debugging. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 44 ++++++++++++++++++---------------- drivers/scsi/atari_NCR5380.c | 57 +++++++++++++++++++------------------------- 2 files changed, 49 insertions(+), 52 deletions(-) commit 80d3eb6df46603e0b7e9a7361fe5b98383182c7f Author: Finn Thain Date: Sun Jan 3 16:05:34 2016 +1100 atari_NCR5380: Set do_abort() timeouts Use timeouts in do_abort() in atari_NCR5380.c instead of infinite loops. Also fix the kernel-doc comment. Keep the two core driver forks in sync. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 26 +++++++++++++------------- drivers/scsi/atari_NCR5380.c | 34 +++++++++++++++++++++------------- 2 files changed, 34 insertions(+), 26 deletions(-) commit f35d34744c85b2ea31a3fe624616c10229ff1fb3 Author: Finn Thain Date: Sun Jan 3 16:05:33 2016 +1100 ncr5380: Fix bus phase in do_abort() NCR5380_poll_politely() returns either 0 (success) or -ETIMEDOUT. However, in do_abort(), the return value is incorrectly taken to be the status register value. This means that the bus is put into DATA OUT phase instead of MESSAGE OUT. Fix this. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1cc160e1ba938d34581181517221913683031d29 Author: Finn Thain Date: Sun Jan 3 16:05:32 2016 +1100 ncr5380: Fix !REQ timeout in do_abort() NCR5380_poll_politely() never returns -1. That means do_abort() can fail to handle a timeout after waiting for the target to negate REQ. Fix this and cleanup other NCR5380_poll_politely() call sites. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 340b96126d8abf859aa8af2fed31ed11ef9f4600 Author: Finn Thain Date: Sun Jan 3 16:05:31 2016 +1100 ncr5380: Add missing break after case MESSAGE_REJECT MESSAGE REJECT does not imply DISCONNECT: the target is about to enter MESSAGE IN or MESSAGE OUT phase. This bug fix comes from atari_NCR5380.c. Unfortunately it never made it into the original NCR5380.c core driver. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 1 + 1 file changed, 1 insertion(+) commit 2f10e47ccf26301c7ca1127e2f6c3dfce45ff634 Author: Hannes Reinecke Date: Sun Jan 3 16:05:30 2016 +1100 ncr5380: Remove references to linked commands Some old drivers partially implemented support for linked commands using a "proposed" next_link pointer in struct scsi_cmnd that never actually existed. Remove this code. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 42 ------------------------------- drivers/scsi/atari_NCR5380.c | 60 -------------------------------------------- 2 files changed, 102 deletions(-) commit 1bb40589ea377894478653beb4c92b1b1b8a0659 Author: Finn Thain Date: Sun Jan 3 16:05:29 2016 +1100 ncr5380: Drop DEF_SCSI_QCMD macro Remove the DEF_SCSI_QCMD macro (already removed from atari_NCR5380.c). The lock provided by DEF_SCSI_QCMD is only needed for queue data structures. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 30 +++++++++++++++--------------- drivers/scsi/atari_NCR5380.c | 2 +- 2 files changed, 16 insertions(+), 16 deletions(-) commit 9dafbd939a224b96868fd8db6909662a4cab5957 Author: Finn Thain Date: Sun Jan 3 16:05:28 2016 +1100 ncr5380: Add missing lock in eh_abort_handler The host spin lock needs to be acquired by NCR5380_abort() before it calls NCR5380_select(). This patch doesn't actually fix the EH issues in this driver but it does avoid this: BUG: spinlock already unlocked on CPU#0, kworker/u4:1/14 lock: 0xc0c0f834, .magic: dead4ead, .owner: /-1, .owner_cpu: -1 CPU: 0 PID: 14 Comm: kworker/u4:1 Not tainted 3.15.5 #5 Workqueue: scsi_tmf_4 scmd_eh_abort_handler Call Trace: [ef885d70] [c0008acc] show_stack+0x70/0x1bc (unreliable) [ef885db0] [c0492a00] dump_stack+0x84/0x684 [ef885dc0] [c006f314] spin_dump+0xd0/0xe8 [ef885dd0] [c006f460] do_raw_spin_unlock+0xd4/0xd8 [ef885df0] [c0491c8c] _raw_spin_unlock_irq+0x10/0x3c [ef885e00] [f381fe3c] NCR5380_select+0x3e4/0x6e8 [dmx3191d] [ef885e40] [f382026c] NCR5380_abort+0x12c/0x190 [dmx3191d] [ef885e60] [c02fec9c] scmd_eh_abort_handler+0x100/0x460 [ef885e80] [c0046470] process_one_work+0x16c/0x420 [ef885ea0] [c0046870] worker_thread+0x14c/0x430 [ef885ed0] [c004e4f4] kthread+0xd8/0xec [ef885f40] [c00124d4] ret_from_kernel_thread+0x5c/0x64 Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit a2edc4a63b4f89016053fe5da3fdac3798f3e2ae Author: Finn Thain Date: Sun Jan 3 16:05:27 2016 +1100 ncr5380: Fix NCR5380_transfer_pio() result According to the SCSI-2 draft revision 10L, atari_NCR5380.c is correct when it says that the phase lines are valid up until ACK is negated following the transmission of the last byte in MESSAGE IN phase. This is true for all information transfer phases, from target to initiator. Sample the phase bits in STATUS_REG so that NCR5380_transfer_pio() can return the correct result. The return value is presently unused (perhaps because of bugs like this) but this change at least fixes the caller's phase variable, which is passed by reference. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 12 +++++++++--- drivers/scsi/atari_NCR5380.c | 11 ++++++----- 2 files changed, 15 insertions(+), 8 deletions(-) commit 686f3990e6a9111f97f2d385f4d1c1a5b0628c15 Author: Finn Thain Date: Sun Jan 3 16:05:26 2016 +1100 ncr5380: Rework disconnect versus poll logic The atari_NCR5380.c and NCR5380.c core drivers differ in their handling of target disconnection. This is partly because atari_NCR5380.c had all of the polling and sleeping removed to become entirely interrupt-driven, and it is partly because of damage done to NCR5380.c after atari_NCR5380.c was forked. See commit 37cd23b44929 ("Linux 2.1.105") in history/history.git. The polling changes that were made in v2.1.105 are questionable at best: if REQ is not already asserted when NCR5380_transfer_pio() is invoked, and if the expected phase is DATA IN or DATA OUT, the function will schedule main() to execute after USLEEP_SLEEP jiffies and then return. The problems here are the expected REQ timing and the sleep interval*. Avoid this issue by using NCR5380_poll_politely() instead of scheduling main(). The atari_NCR5380.c core driver requires the use of the chip interrupt and always permits target disconnection. It sets the cmd->device->disconnect flag when a device disconnects, but never tests this flag. The NCR5380.c core driver permits disconnection only when instance->irq != NO_IRQ. It sets the cmd->device->disconnect flag when a device disconnects and it tests this flag in a couple of places: 1. During NCR5380_information_transfer(), following COMMAND OUT phase, if !cmd->device->disconnect, the initiator will take a guess as to whether or not the target will then choose to go to MESSAGE IN phase and disconnect. If the driver guesses "yes", it will schedule main() to execute after USLEEP_SLEEP jiffies and then return there. Unfortunately the driver may guess "yes" even after it has denied the target the disconnection privilege. When the target does not disconnect, the sleep can be beneficial, assuming the sleep interval is appropriate (mostly it is not*). And even if the driver guesses "yes" correctly, and the target would then disconnect, the driver still has to go through the MESSAGE IN phase in order to get to BUS FREE phase. The main loop can do nothing useful until BUS FREE, and sleeping just delays the phase transition. 2. If !cmd->device->disconnect and REQ is not already asserted when NCR5380_information_transfer() is invoked, the function polls for REQ for USLEEP_POLL jiffies. If REQ is not asserted, it then schedules main() to execute after USLEEP_SLEEP jiffies and returns. The idea is apparently to yeild the CPU while waiting for REQ. This is conditional upon !cmd->device->disconnect, but there seems to be no rhyme or reason for that. For example, the flag may be unset because disconnection privilege was denied because the driver has no IRQ. Or the flag may be unset because the device has never needed to disconnect before. Or if the flag is set, disconnection may have no relevance to the present bus phase. Another deficiency of the existing algorithm is as follows. When the driver has no IRQ, it prevents disconnection, and generally polls and sleeps more than it would normally. Now, if the driver is going to poll anyway, why not allow the target to disconnect? That way the driver can do something useful with the bus instead of polling unproductively! Avoid this pointless latency, complexity and guesswork by using NCR5380_poll_politely() instead of scheduling main(). * For g_NCR5380, the time intervals for USLEEP_SLEEP and USLEEP_POLL are 200 ms and 10 ms, respectively. They are 20 ms and 200 ms respectively for the other NCR5380 drivers. There doesn't seem to be any reason for this discrepancy. The timing seems to have no relation to the type of adapter. Bizarrely, the timing in g_NCR5380 seems to relate only to one particular type of target device. This patch attempts to solve the problem for all NCR5380 drivers and all target devices. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 137 +++---------------------------------------- drivers/scsi/NCR5380.h | 11 ---- drivers/scsi/atari_NCR5380.c | 24 +++----- drivers/scsi/g_NCR5380.c | 4 -- 4 files changed, 15 insertions(+), 161 deletions(-) commit ff3d4578840fd96a50558edf02ca0178b9ebb652 Author: Finn Thain Date: Sun Jan 3 16:05:25 2016 +1100 ncr5380: Implement NCR5380_dma_xfer_len and remove LIMIT_TRANSFERSIZE macro Follow the example of the atari_NCR5380.c core driver and adopt the NCR5380_dma_xfer_len() hook. Implement NCR5380_dma_xfer_len() for dtc.c and g_NCR5380.c to take care of the limitations of these cards. Keep the default for drivers using PSEUDO_DMA. Eliminate the unused macro LIMIT_TRANSFERSIZE. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 34 ++++++---------------------------- drivers/scsi/arm/cumana_1.c | 3 +++ drivers/scsi/arm/oak.c | 2 ++ drivers/scsi/atari_NCR5380.c | 8 +++++--- drivers/scsi/dtc.c | 14 ++++++++++++++ drivers/scsi/dtc.h | 3 +++ drivers/scsi/g_NCR5380.c | 15 +++++++++++++++ drivers/scsi/g_NCR5380.h | 3 +++ drivers/scsi/mac_scsi.c | 1 + drivers/scsi/pas16.h | 2 ++ drivers/scsi/t128.h | 2 ++ 11 files changed, 56 insertions(+), 31 deletions(-) commit 1d3db59d59861481349437231c263b6c7a0eef78 Author: Finn Thain Date: Sun Jan 3 16:05:24 2016 +1100 ncr5380: Always retry arbitration and selection If NCR5380_select() returns -1, it means arbitration was lost or selection failed and should be retried. If the main loop simply terminates when there are still commands on the issue queue, they will remain queued until they expire. Fix this by clearing the 'done' flag after selection failure or lost arbitration. The "else break" clause in NCR5380_main() that gets removed here appears to be a vestige of a long-gone loop that iterated over host instances. See commit 491447e1fcff ("[PATCH] next NCR5380 updates") in history/history.git. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 3 +-- drivers/scsi/atari_NCR5380.c | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) commit ae753a3387504daa11b8779a00d37923f971c6d0 Author: Finn Thain Date: Sun Jan 3 16:05:23 2016 +1100 ncr5380: Eliminate selecting state Linux v2.1.105 changed the algorithm for polling for the BSY signal in NCR5380_select() and NCR5380_main(). Presently, this code has a bug. Back then, NCR5380_set_timer(hostdata, 1) meant reschedule main() after sleeping for 10 ms. Repeated 25 times this provided the recommended 250 ms selection time-out delay. This got broken when HZ became configurable. We could fix this but there's no need to reschedule the main loop. This BSY polling presently happens when the NCR5380_main() work queue item calls NCR5380_select(), which in turn schedules NCR5380_main(), which calls NCR5380_select() again, and so on. This algorithm is a deviation from the simpler one in atari_NCR5380.c. The extra complexity and state is pointless. There's no reason to stop selection half-way and return to to the main loop when the main loop can do nothing useful until selection completes. So just poll for BSY. We can sleep while polling now that we have a suitable workqueue. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 74 +++++++++----------------------------------- drivers/scsi/NCR5380.h | 2 -- drivers/scsi/atari_NCR5380.c | 49 +++++++++-------------------- 3 files changed, 29 insertions(+), 96 deletions(-) commit 2f854b82b001b5d05b4e1c81acb947f7bd9cee9f Author: Finn Thain Date: Sun Jan 3 16:05:22 2016 +1100 ncr5380: Sleep when polling, if possible When in process context, sleep during polling if doing so won't add significant latency. In interrupt context or if the lock is held, poll briefly then give up. Keep both core drivers in sync. Calibrate busy-wait iterations to allow for variation in chip register access times between different 5380 hardware implementations. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 84 +++++++++++++++++++++++++++----------------- drivers/scsi/NCR5380.h | 1 + drivers/scsi/atari_NCR5380.c | 62 +++++++++++++++++++++----------- 3 files changed, 94 insertions(+), 53 deletions(-) commit 0ad0eff98fec3c940ec199047ff580abaaa5bb1a Author: Finn Thain Date: Sun Jan 3 16:05:21 2016 +1100 ncr5380: Introduce unbound workqueue Allocate a work queue that will permit busy waiting and sleeping. This means NCR5380_init() can potentially fail, so add this error path. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 15 +++++++++++---- drivers/scsi/NCR5380.h | 1 + drivers/scsi/arm/cumana_1.c | 8 ++++++-- drivers/scsi/arm/oak.c | 8 ++++++-- drivers/scsi/atari_NCR5380.c | 8 +++++++- drivers/scsi/atari_scsi.c | 5 ++++- drivers/scsi/dmx3191d.c | 17 +++++++++++------ drivers/scsi/dtc.c | 11 +++++++++-- drivers/scsi/g_NCR5380.c | 31 +++++++++++++++---------------- drivers/scsi/mac_scsi.c | 5 ++++- drivers/scsi/pas16.c | 10 ++++++++-- drivers/scsi/sun3_scsi.c | 5 ++++- drivers/scsi/t128.c | 13 ++++++++++--- 13 files changed, 96 insertions(+), 41 deletions(-) commit e52bbd5ccf53d2a73e524adb26b6d8a4f810ccb4 Author: Finn Thain Date: Sun Jan 3 16:05:20 2016 +1100 ncr5380: Cleanup bogus {request,release}_region() calls Commit 8b801ead3d7a ("[ARM] rpc: update Acorn SCSI drivers to modern ecard interfaces") neglected to remove a request_region() call in cumana_1.c. Commit eda32612f7b2 ("[PATCH] give all LLDD driver a ->release method") in history/history.git added some pointless release_region() calls in dtc.c, pas16.c and t128.c. Fix these issues. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/arm/cumana_1.c | 6 ------ drivers/scsi/dtc.c | 2 -- drivers/scsi/pas16.c | 2 -- drivers/scsi/t128.c | 2 -- 4 files changed, 12 deletions(-) commit 4d029e9ae9c382b149b16632f49970d8b215e2da Author: Finn Thain Date: Sun Jan 3 16:05:19 2016 +1100 ncr5380: Eliminate USLEEP_WAITLONG delay Linux 2.1.105 introduced the USLEEP_WAITLONG delay, apparently "needed for Mustek scanners". It is intended to stall the issue queue for 5 seconds. There are a number of problems with this. 1. Only g_NCR5380 enables the delay, which implies that the other five drivers using the NCR5380.c core driver remain incompatible with Mustek scanners. 2. The delay is not implemented by atari_NCR5380.c, which is problematic for re-unifying the two core driver forks. 3. The delay is implemented using NCR5380_set_timer() which makes it unreliable. A new command queued by the mid-layer cancels the delay. 4. The delay is applied indiscriminately in several situations in which NCR5380_select() returns -1. These are-- reselection by the target, failure of the target to assert BSY, and failure of the target to assert REQ. It's clear from the comments that USLEEP_WAITLONG is not relevant to the reselection case. And reportedly, these scanners do not disconnect. 5. atari_NCR5380.c was forked before Linux 2.1.105, so it was spared some of the damage done to NCR5380.c. In this case, the atari_NCR5380.c core driver was more standard-compliant and may not have needed any workaround like the USLEEP_WAITLONG kludge. The compliance issue was addressed in the previous patch. If these scanners still don't work, we need a better solution. Retrying selection until EH aborts a command offers equivalent robustness. Bugs in the existing driver prevent EH working correctly but this is addressed in a subsequent patch. Remove USLEEP_WAITLONG. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 19 +++++-------------- drivers/scsi/g_NCR5380.c | 1 - 2 files changed, 5 insertions(+), 15 deletions(-) commit cf13b0837d7da2f3dce96e1f364fade13c8648ba Author: Finn Thain Date: Sun Jan 3 16:05:18 2016 +1100 ncr5380: Keep BSY asserted when entering SELECTION phase NCR5380.c is not compliant with the SCSI-2 standard (at least, not with the draft revision 10L that I have to refer to). The selection algorithm in atari_NCR5380.c is correct, so use that. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 8 +++++++- drivers/scsi/atari_NCR5380.c | 7 ++++--- 2 files changed, 11 insertions(+), 4 deletions(-) commit 1f1b0c74dfaf6264d239823ed5aeb8dcdd62838c Author: Finn Thain Date: Sun Jan 3 16:05:17 2016 +1100 ncr5380: Proceed with next command after NCR5380_select() calls scsi_done If a target disappears from the SCSI bus, NCR5380_select() may subsequently fail with a time-out. In this situation, scsi_done is called and NCR5380_select() returns 0. Both hostdata->connected and hostdata->selecting are NULL and the main loop should proceed with the next command in the issue queue. Clarify this logic. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 8 ++++++-- drivers/scsi/atari_NCR5380.c | 8 ++++---- 2 files changed, 10 insertions(+), 6 deletions(-) commit ac9399d09544525ff4713ab942cb44a7cea29a84 Author: Finn Thain Date: Sun Jan 3 16:05:16 2016 +1100 ncr5380: Always escalate bad target time-out in NCR5380_select() Remove the restart_select and targets_present variables introduced in Linux v1.1.38. The former was used only for a questionable debug printk and the latter "so we can call a select failure a retryable condition". Well, retrying select failure in general is a different problem to a target that doesn't assert BSY. We need to handle these two cases differently; the latter case can be left to the SCSI ML. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 13 ------------- drivers/scsi/NCR5380.h | 6 ------ drivers/scsi/atari_NCR5380.c | 13 ------------- 3 files changed, 32 deletions(-) commit 6323876f5539e808a293395b1960427c62d2436d Author: Finn Thain Date: Sun Jan 3 16:05:15 2016 +1100 ncr5380: Use return instead of goto in NCR5380_select() The "failed" label in NCR5380_select() is not helpful. Some failures return 0, others -1. Use return instead of goto to improve clarity and brevity, like atari_NCR5380.c does. Fix the relevant comments. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 30 ++++++++---------------------- drivers/scsi/atari_NCR5380.c | 6 +++--- 2 files changed, 11 insertions(+), 25 deletions(-) commit 206cc031ad591f2759ba4e82d35fbb2050a2648b Author: Finn Thain Date: Sun Jan 3 16:05:14 2016 +1100 ncr5380: Remove redundant register writes Remove the duplicate write to the Select Enable Register that appeared in v1.1.38. Also remove the redundant write to Initiator Command Register prior to calling do_abort(). Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 2 -- drivers/scsi/atari_NCR5380.c | 3 --- 2 files changed, 5 deletions(-) commit 9b68d3415b0838a80f9a32dbedd385bf5d83bef8 Author: Finn Thain Date: Sun Jan 3 16:05:13 2016 +1100 ncr5380: Remove unused hostdata->aborted flag The aborted flag was introduced in v1.1.38 but never used. Remove it. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 2 -- drivers/scsi/NCR5380.h | 1 - drivers/scsi/atari_NCR5380.c | 2 -- 3 files changed, 5 deletions(-) commit 3be1b3ea6de93b6b58c37dc3fafcf3ec228880ed Author: Finn Thain Date: Sun Jan 3 16:05:12 2016 +1100 ncr5380: Simplify bus reset handlers Make use of do_reset() in the bus reset handler in atari_NCR5380.c. The version in NCR5380.c already does so. Keep them in sync. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 20 +++++++++++--------- drivers/scsi/atari_NCR5380.c | 30 ++++++++++++------------------ 2 files changed, 23 insertions(+), 27 deletions(-) commit 9c3f0e2b52ada30fe72beec27b83e91e12566609 Author: Finn Thain Date: Sun Jan 3 16:05:11 2016 +1100 atari_NCR5380: Remove RESET_BOOT, CONFIG_ATARI_SCSI_TOSHIBA_DELAY and CONFIG_ATARI_SCSI_RESET_BOOT The atari_NCR5380.c core driver now takes care of bus reset upon driver initialization if required (same as NCR5380.c). Move the Toshiba CD-ROM support into the core driver, enabled with a host flag, so that all NCR5380 drivers can make use of it. Drop the RESET_BOOT macros and the ATARI_SCSI_RESET_BOOT and ATARI_SCSI_TOSHIBA_DELAY Kconfig symbols, which are now redundant. Remove the atari_scsi_reset_boot(), mac_scsi_reset_boot() and sun3_scsi_reset_boot() routines. None of this duplicated code is needed now that all drivers can use NCR5380_maybe_reset_bus(). This brings atari_scsi, mac_scsi and sun3_scsi into line with all of the other NCR5380 drivers. The bus reset may raise an interrupt. That would be new behaviour for atari_scsi only when CONFIG_ATARI_SCSI_RESET_BOOT=n. The ST DMA interrupt is not assigned to atari_scsi at this stage, so CONFIG_ATARI_SCSI_RESET_BOOT=y may well be problematic already. Regardless, do_reset() now raises and clears the interrupt within local_irq_save/restore which should avoid problems. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/Kconfig | 17 ------------ drivers/scsi/NCR5380.c | 17 ++++++++++-- drivers/scsi/NCR5380.h | 1 + drivers/scsi/atari_NCR5380.c | 22 ++++++++++----- drivers/scsi/atari_scsi.c | 60 ++++++---------------------------------- drivers/scsi/mac_scsi.c | 65 +++++++------------------------------------- drivers/scsi/sun3_scsi.c | 47 +------------------------------- 7 files changed, 51 insertions(+), 178 deletions(-) commit 636b1ec8575a60fb305ad6e3ede5e79d287754b6 Author: Finn Thain Date: Sun Jan 3 16:05:10 2016 +1100 atari_NCR5380: Reset bus on driver initialization if required Merge the bus reset code from NCR5380.c into atari_NCR5380.c. This allows for removal of a lot of duplicated code conditional on the RESET_BOOT macro (in the next patch). The atari_NCR5380.c fork lacks the do_reset() and NCR5380_poll_politely() routines from NCR5380.c, so introduce them. They are indispensible. Keep the two implementations in sync. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 33 ++++++++----- drivers/scsi/atari_NCR5380.c | 113 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 134 insertions(+), 12 deletions(-) commit 4d8c08c71ea261a31855e4919fa8b875cd507ef3 Author: Finn Thain Date: Sun Jan 3 16:05:09 2016 +1100 ncr5380: Move NCR53C400-specific code Move board-specific code like this, NCR5380_write(C400_CONTROL_STATUS_REG, CSR_BASE); from the core driver to the board driver. Eliminate the NCR53C400 macro from the core driver. Removal of all macros like this one will be necessary in order to have one core driver that can support all kinds of boards. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 18 ------------------ drivers/scsi/g_NCR5380.c | 21 ++++++++++++++++----- drivers/scsi/g_NCR5380.h | 6 ++---- 3 files changed, 18 insertions(+), 27 deletions(-) commit b6488f97d3b5b602a066956e58a1ba282456d79b Author: Finn Thain Date: Sun Jan 3 16:05:08 2016 +1100 ncr5380: Split NCR5380_init() into two functions This patch splits the NCR5380_init() function into two parts, similar to the scheme used with atari_NCR5380.c. This avoids two problems. Firstly, NCR5380_init() may perform a bus reset, which would cause the chip to assert IRQ. The chip is unable to mask its bus reset interrupt. Drivers can't call request_irq() before calling NCR5380_init(), because initialization must happen before the interrupt handler executes. If driver initialization causes an interrupt it may be problematic on some platforms. To avoid that, first move the bus reset code into NCR5380_maybe_reset_bus(). Secondly, NCR5380_init() contains some board-specific interrupt setup code for the NCR53C400 that does not belong in the core driver. In moving this code, better not re-order interrupt initialization and bus reset. Again, the solution is to move the bus reset code into NCR5380_maybe_reset_bus(). Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 34 ++++++++++++++++++++-------------- drivers/scsi/NCR5380.h | 1 + drivers/scsi/arm/cumana_1.c | 2 ++ drivers/scsi/arm/oak.c | 2 ++ drivers/scsi/dmx3191d.c | 2 ++ drivers/scsi/dtc.c | 2 ++ drivers/scsi/g_NCR5380.c | 2 ++ drivers/scsi/pas16.c | 2 ++ drivers/scsi/t128.c | 2 ++ 9 files changed, 35 insertions(+), 14 deletions(-) commit b01ec34895720348dab7eae6bfb28a5799130bce Author: Finn Thain Date: Sun Jan 3 16:05:07 2016 +1100 ncr5380: Remove NCR5380_instance_name macro This macro makes the code cryptic. Remove it. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 2 +- drivers/scsi/g_NCR5380.c | 7 ++++--- drivers/scsi/g_NCR5380.h | 2 -- 3 files changed, 5 insertions(+), 6 deletions(-) commit 54d8fe4425c9d3fdf8473c1833c6807b61c6e70e Author: Finn Thain Date: Sun Jan 3 16:05:06 2016 +1100 ncr5380: Remove NCR5380_local_declare and NCR5380_setup macros The NCR5380_local_declare and NCR5380_setup macros exist to define and initialize a particular local variable, to provide the address of the chip registers needed for the driver's implementation of its NCR5380_read/write register access macros. In cumana_1 and macscsi, these macros generate pointless code like this, struct Scsi_Host *_instance; _instance = instance; In pas16, the use of NCR5380_read/write in pas16_hw_detect() requires that the io_port local variable has been defined and initialized, but the NCR5380_local_declare and NCR5380_setup macros can't be used for that purpose because the Scsi_Host struct has not yet been instantiated. Moreover, these macros were removed from atari_NCR5380.c long ago and now they constitute yet another discrepancy between the two core driver forks. Remove these "optimizations". Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 60 +++++++-------------------------------------- drivers/scsi/arm/cumana_1.c | 6 ++--- drivers/scsi/arm/oak.c | 9 ++++--- drivers/scsi/dmx3191d.c | 6 ++--- drivers/scsi/dtc.c | 14 ++++------- drivers/scsi/dtc.h | 9 ++----- drivers/scsi/g_NCR5380.c | 27 ++++++++++---------- drivers/scsi/g_NCR5380.h | 30 +++++++++-------------- drivers/scsi/mac_scsi.c | 15 ++---------- drivers/scsi/pas16.c | 16 ++++++------ drivers/scsi/pas16.h | 11 ++------- drivers/scsi/t128.c | 26 ++++++++++---------- drivers/scsi/t128.h | 9 ++----- 13 files changed, 77 insertions(+), 161 deletions(-) commit c0965e6371fa50fdf5cc2291915de97412fb1ec9 Author: Finn Thain Date: Sun Jan 3 16:05:05 2016 +1100 ncr5380: Remove more pointless macros ASM macro is never defined. rtrc in pas16.c is not used. NCR5380_map_config, do_NCR5380_intr, do_t128_intr and do_pas16_intr are unused. NCR_NOT_SET harms readability. Remove them. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.h | 3 --- drivers/scsi/g_NCR5380.c | 29 ++++++++++++++--------------- drivers/scsi/g_NCR5380.h | 5 ----- drivers/scsi/pas16.c | 16 ---------------- drivers/scsi/pas16.h | 5 ----- drivers/scsi/t128.h | 4 ---- 6 files changed, 14 insertions(+), 48 deletions(-) commit 2f7dba9f7d8f8ece8f224bf26e9b2a06da2ed15c Author: Finn Thain Date: Sun Jan 3 16:05:04 2016 +1100 ncr5380: Eliminate PDEBUG*, TDEBUG* and DTCDEBUG* macros Replace {P,T,DTC}DEBUG_INIT with NDEBUG_INIT. Remove dead debugging code, including code that's conditional upon *DEBUG_TRANSFER. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/dtc.c | 18 ++++++------------ drivers/scsi/dtc.h | 27 --------------------------- drivers/scsi/pas16.c | 21 +++++++-------------- drivers/scsi/pas16.h | 16 ---------------- drivers/scsi/t128.c | 18 ++++++------------ drivers/scsi/t128.h | 16 ---------------- 6 files changed, 19 insertions(+), 97 deletions(-) commit d5f7e65df0d41982b1e9cbba9df04003ebb2178d Author: Finn Thain Date: Sun Jan 3 16:05:03 2016 +1100 ncr5380: Remove redundant static variable initializers Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Ondrej Zary Signed-off-by: Martin K. Petersen drivers/scsi/NCR5380.c | 2 +- drivers/scsi/dtc.c | 4 ++-- drivers/scsi/g_NCR5380.c | 4 ++-- drivers/scsi/pas16.c | 10 +++++----- drivers/scsi/sun3_scsi.c | 8 ++++---- drivers/scsi/t128.c | 4 ++-- 6 files changed, 16 insertions(+), 16 deletions(-) commit 6225a16a071c8636e9f6257183bb501479ad23c2 Author: Finn Thain Date: Sun Jan 3 16:05:02 2016 +1100 atari_scsi: Fix SCSI host ID setting The NVRAM location of this byte is 16, as documented in http://toshyp.atari.org/en/004009.html This was confirmed by Michael Schmitz, by setting the SCSI host ID under EmuTOS and then checking the value in /proc/driver/nvram and /dev/nvram under Linux. Signed-off-by: Finn Thain Reviewed-by: Hannes Reinecke Tested-by: Michael Schmitz Signed-off-by: Martin K. Petersen drivers/scsi/atari_scsi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ad74e46cb3ba9e706f91f3f71baf816d2d8e45db Author: Kuninori Morimoto Date: Tue Dec 15 01:19:53 2015 +0000 thermal: trip_point_temp_store() calls thermal_zone_device_update() trip_point_temp_store() updates trip temperature. It should call thermal_zone_device_update() immediately. Signed-off-by: Kuninori Morimoto Signed-off-by: Eduardo Valentin drivers/thermal/thermal_core.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 5440c40b900fa561add48a7e70e9c892f0551387 Author: Kuninori Morimoto Date: Tue Dec 15 01:18:13 2015 +0000 thermal: rcar: rcar_thermal_get_temp() return error if strange temp Signed-off-by: Kuninori Morimoto Signed-off-by: Eduardo Valentin drivers/thermal/rcar_thermal.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit ffbcdf8a759c6dde71c6c4f646a552f7637bcca7 Author: Kuninori Morimoto Date: Tue Dec 15 01:17:56 2015 +0000 thermal: rcar: check irq possibility in rcar_thermal_irq_xxx() Current rcar thermal driver sometimes checks irq possibility when it calls rcar_thermal_irq_enable/disable(), but sometimes not. This patch checks it inside rcar_thermal_irq_enable/disable(). Signed-off-by: Kuninori Morimoto Signed-off-by: Eduardo Valentin drivers/thermal/rcar_thermal.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit a1ade5653804b8eb9d14c5ba964da6d5c2f4cd30 Author: Kuninori Morimoto Date: Tue Dec 15 01:17:40 2015 +0000 thermal: rcar: check every rcar_thermal_update_temp() return value Every rcar_thermal_update_temp() return value will be checked. And also, rcar_thermal_get_temp() always call rcar_thermal_update_temp() by this patch. Signed-off-by: Kuninori Morimoto Signed-off-by: Eduardo Valentin drivers/thermal/rcar_thermal.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) commit ca1e4558fcca68a5ac2a4e0f7834f788f9f4ac8f Author: Kuninori Morimoto Date: Tue Dec 15 01:17:07 2015 +0000 thermal: rcar: move rcar_thermal_dt_ids to upside This patch is prepare for of-thermal support. Signed-off-by: Kuninori Morimoto Signed-off-by: Eduardo Valentin drivers/thermal/rcar_thermal.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit b0d70338bca22cb14367042a9d5cead116e7f2d9 Author: Caesar Wang Date: Thu Dec 3 16:48:43 2015 +0800 thermal: rockchip: Support the RK3399 SoCs in thermal driver The RK3399 SoCs have two Temperature Sensors, channel 0 is for CPU. channel 1 is for GPU. Signed-off-by: Caesar Wang Signed-off-by: Eduardo Valentin drivers/thermal/rockchip_thermal.c | 66 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) commit 7b02a5e782fa151a610c455ac06e5a998e9cb3f3 Author: Caesar Wang Date: Thu Dec 3 16:48:42 2015 +0800 thermal: rockchip: Support the RK3228 SoCs in thermal driver The RK3228 SoCs has one Temperature Sensor, channel 0 is for CPU. Signed-off-by: Caesar Wang Signed-off-by: Eduardo Valentin drivers/thermal/rockchip_thermal.c | 81 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) commit 4be02530fc76b4b01372dc03ab098674bf059f0b Author: Caesar Wang Date: Thu Dec 3 16:48:41 2015 +0800 dt-bindings: rockchip-thermal: Support the RK3228/RK3399 SoCs compatible This patchset attempts to new compatible for thermal founding on RK3228/RK3399 SoCs. Signed-off-by: Caesar Wang Acked-by: Rob Herring Signed-off-by: Eduardo Valentin Documentation/devicetree/bindings/thermal/rockchip-thermal.txt | 2 ++ 1 file changed, 2 insertions(+) commit 13c1cfda1a6cb0325029ce8bbb8d6483244d5c92 Author: Caesar Wang Date: Thu Dec 3 16:48:39 2015 +0800 thermal: rockchip: fix a trivial typo This patchset trys to dictate unified format for driver. Signed-off-by: Caesar Wang Signed-off-by: Eduardo Valentin drivers/thermal/rockchip_thermal.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) commit 1c2e54e1ed6f0a87ae628c520768a53dc60bc2f4 Author: Mike Snitzer Date: Wed Jan 6 14:13:40 2016 -0500 dm thin: bump thin and thin-pool target versions Commit 3d5f6733 ("dm thin metadata: speed up discard of partially mapped volumes"), or some other dm-thinp change during the Linux 4.5 development window, really should've bumped these target versions. Signed-off-by: Mike Snitzer drivers/md/dm-thin.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a2746fb16e41b7c8f02aa4d2605ecce97abbebbd Author: Manoj Kumar Date: Mon Dec 14 15:07:43 2015 -0600 cxlflash: Enable device id for future IBM CXL adapter This drop enables a future card with a device id of 0x0600 to be recognized by the cxlflash driver. As per the design, the Accelerator Function Unit (AFU) for this new IBM CXL Flash Adapter retains the same host interface as the previous generation. For the early prototypes of the new card, the driver with this change behaves exactly as the driver prior to this behaved with the earlier generation card. Therefore, no card specific programming has been added. These card specific changes can be staged in later if needed. Signed-off-by: Manoj N. Kumar Acked-by: Matthew R. Ochs Reviewed-by: Andrew Donnellan Signed-off-by: Martin K. Petersen drivers/scsi/cxlflash/main.c | 3 +++ drivers/scsi/cxlflash/main.h | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) commit b45cdbaf9f7f0486847c52f60747fb108724652a Author: Manoj Kumar Date: Mon Dec 14 15:07:23 2015 -0600 cxlflash: Resolve oops in wait_port_offline If an async error interrupt is generated, and the error requires the FC link to be reset, it cannot be performed in the interrupt context. So a work element is scheduled to complete the link reset in a process context. If either an EEH event or an escalation occurs in between when the interrupt is generated and the scheduled work is started, the MMIO space may no longer be available. This will cause an oops in the worker thread. [ 606.806583] NIP kthread_data+0x28/0x40 [ 606.806633] LR wq_worker_sleeping+0x30/0x100 [ 606.806694] Call Trace: [ 606.806721] 0x50 (unreliable) [ 606.806796] wq_worker_sleeping+0x30/0x100 [ 606.806884] __schedule+0x69c/0x8a0 [ 606.806959] schedule+0x44/0xc0 [ 606.807034] do_exit+0x770/0xb90 [ 606.807109] die+0x300/0x460 [ 606.807185] bad_page_fault+0xd8/0x150 [ 606.807259] handle_page_fault+0x2c/0x30 [ 606.807338] wait_port_offline.constprop.12+0x60/0x130 [cxlflash] To prevent the problem space area from being unmapped, when there is pending work, a mapcount (using the kref mechanism) is held. The mapcount is released only when the work is completed. The last reference release is tied to the unmapping service. Signed-off-by: Manoj N. Kumar Acked-by: Matthew R. Ochs Reviewed-by: Uma Krishnan Signed-off-by: Martin K. Petersen drivers/scsi/cxlflash/common.h | 2 ++ drivers/scsi/cxlflash/main.c | 27 ++++++++++++++++++++++++--- 2 files changed, 26 insertions(+), 3 deletions(-) commit ee91e332a6e6e9b939f60f6e1bd72fb2def5290d Author: Manoj Kumar Date: Mon Dec 14 15:07:02 2015 -0600 cxlflash: Fix to resolve cmd leak after host reset After a few iterations of resetting the card, either during EEH recovery, or a host_reset the following is seen in the logs. cxlflash 0008:00: cxlflash_queuecommand: could not get a free command At every reset of the card, the commands that are outstanding are being leaked. No effort is being made to reap these commands. A few more resets later, the above error message floods the logs and the card is rendered totally unusable as no free commands are available. Iterated through the 'cmd' queue and printed out the 'free' counter and found that on each reset certain commands were in-use and stayed in-use through subsequent resets. To resolve this issue, when the card is reset, reap all the commands that are active/outstanding. Signed-off-by: Manoj N. Kumar Acked-by: Matthew R. Ochs Reviewed-by: Andrew Donnellan Signed-off-by: Martin K. Petersen drivers/scsi/cxlflash/main.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) commit 85599218914dadad3347eaa4337e71f09f39e78f Author: Uma Krishnan Date: Mon Dec 14 15:06:33 2015 -0600 cxlflash: Removed driver date print Having a date for the driver requires it to be updated quite often. Removing the date which is not necessary. Also made use of the existing symbol to print the driver name. Signed-off-by: Uma Krishnan Reviewed-by: Andrew Donnellan Acked-by: Matthew R. Ochs Signed-off-by: Martin K. Petersen drivers/scsi/cxlflash/main.c | 3 +-- drivers/scsi/cxlflash/main.h | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) commit d5e26bb1d812ba74f29b6bcbc88c3dbfb3eed824 Author: Matthew R. Ochs Date: Mon Dec 14 14:55:44 2015 -0600 cxlflash: Fix to avoid virtual LUN failover failure Applications which use virtual LUN's that are backed by a physical LUN over both adapter ports may experience an I/O failure in the event of a link loss (e.g. cable pull). Virtual LUNs may be accessed through one or both ports of the adapter. This access is encoded in the translation entries that comprise the virtual LUN and used by the AFU for load-balancing I/O and handling failover scenarios. In a link loss scenario, even though the AFU is able to maintain connectivity to the LUN, it is up to the application to retry the failed I/O. When applications are unaware of the virtual LUN's underlying topology, they are unable to make a sound decision of when to retry an I/O and therefore are forced to make their reaction to a failed I/O absolute. The result is either a failure to retry I/O or increased latency for scenarios where a retry is pointless. To remedy this scenario, provide feedback back to the application on virtual LUN creation as to which ports the LUN may be accessed. LUN's spanning both ports are candidates for a retry in a presence of an I/O failure. Signed-off-by: Matthew R. Ochs Acked-by: Manoj Kumar Reviewed-by: Uma Krishnan Signed-off-by: Martin K. Petersen drivers/scsi/cxlflash/vlun.c | 2 ++ include/uapi/scsi/cxlflash_ioctl.h | 10 ++++++++++ 2 files changed, 12 insertions(+) commit a9be294ecb3b9dc82b15625631b153f871181d16 Author: Manoj Kumar Date: Mon Dec 14 14:55:09 2015 -0600 cxlflash: Fix to escalate LINK_RESET also on port 1 The original fix to escalate a 'login timed out' error to a LINK_RESET was only made for one of the two ports on the card. This fix resolves the same issue for the second port (port 1). Signed-off-by: Manoj N. Kumar Acked-by: Matthew R. Ochs Reviewed-by: Uma Krishnan Signed-off-by: Martin K. Petersen drivers/scsi/cxlflash/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit efbc57c0e6a92083fce03927736f5d389182935b Merge: 4b1af85 57c80e8 Author: Dmitry Torokhov Date: Wed Jan 6 17:31:06 2016 -0800 Merge branch 'goodix' into next Merge several improvements to Goodix touchscreen driver: - power management support - configuration upload - axis swapping and inversion commit 6f357de854a6dfb9ce0d5d65f3971cf3d0a4af6f Author: Alex Smith Date: Mon Jan 4 12:34:42 2016 +0000 doc: dt: mtd: new binding for jz4780-{nand,bch} Add DT bindings for NAND devices connected to the NEMC on JZ4780 SoCs, as well as the hardware BCH controller, used by the jz4780_{nand,bch} drivers. Signed-off-by: Alex Smith Cc: Zubair Lutfullah Kakakhel Cc: David Woodhouse Cc: linux-mtd@lists.infradead.org Cc: devicetree@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Harvey Hunt Acked-by: Rob Herring Reviewed-by: Boris Brezillon Signed-off-by: Brian Norris .../bindings/mtd/ingenic,jz4780-nand.txt | 86 ++++++++++++++++++++++ 1 file changed, 86 insertions(+) commit 33853ebd746f0e6aa262745376fde5d4995e0a87 Author: Insu Yun Date: Tue Dec 29 13:45:09 2015 -0500 mtd: cfi_cmdset_0001: fixing memory leak and handling failed kmalloc kmalloc needs to be handled when failing in memory pressure. Also, it has memory leak in error routine. Signed-off-by: Insu Yun Signed-off-by: Brian Norris drivers/mtd/chips/cfi_cmdset_0001.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 32321e950d8a237d7e8f3a9b76220007dfa87544 Author: Ezequiel García Date: Mon Dec 28 17:54:51 2015 -0300 mtd: spi-nor: wait until lock/unlock operations are ready On Micron and Numonyx devices, the status register write command (WRSR), raises a work-in-progress bit (WIP) on the status register. The datasheets for these devices specify that while the status register write is in progress, the status register WIP bit can still be read to check the end of the operation. This commit adds a wait_till_ready call on lock/unlock operations, which is required for Micron and Numonyx but should be harmless for others. This is needed to prevent applications from issuing erase or program operations before the unlock operation is completed. Reported-by: Stas Sergeev Signed-off-by: Ezequiel Garcia Signed-off-by: Brian Norris drivers/mtd/spi-nor/spi-nor.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 65d5b109d1ff0d173e1896081f38951eff21978e Merge: 800e07b a574795 5c5fb40 3bc2b23 a37b3ea Author: Bjorn Helgaas Date: Wed Jan 6 18:09:23 2016 -0600 Merge branches 'pci/host-generic', 'pci/host-imx6', 'pci/host-iproc' and 'pci/host-rcar' into next * pci/host-generic: PCI: generic,versatile: Remove unused pci_sys_data structures * pci/host-imx6: PCI: imx6: Add support for active-low reset GPIO PCI: imx6: Use gpio_set_value_cansleep() * pci/host-iproc: PCI: iproc: Add iProc PCIe MSI support PCI: iproc: Add iProc PCIe MSI device tree binding PCI: iproc: Add PAXC interface support PCI: iproc: Update iProc PCIe device tree binding PCI: iproc: Do not use 0x in front of %pap PCI: iproc: Hide CONFIG_PCIE_IPROC * pci/host-rcar: PCI: rcar: Add gen2 fallback compatibility string for pcie-rcar PCI: rcar: Add gen2 fallback compatibility string for pci-rcar-gen2 PCI: rcar: Add support for R-Car H3 to pcie-rcar Revert "PCI: rcar: Build pcie-rcar.c only on ARM" PCI: rcar: Convert to DT resource parsing API PCI: rcar: Allow DT to override default window settings commit 4b1af853646ca893fa686701d1605998fffcc82c Author: Pali Rohár Date: Wed Jan 6 15:58:56 2016 -0800 Input: ALPS - report v3 pinnacle trackstick device only if is present This patch moves v3 pinnacle code for trackstick detection from alps_hw_init_v3() to alps_set_protocol() so ALPS_DUALPOINT flag can be cleared before registering trackstick input device in kernel. Signed-off-by: Pali Rohár Acked-by: Hans de Goede Signed-off-by: Dmitry Torokhov drivers/input/mouse/alps.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit dae928ec3c29e7e16723c9c4c1299e00f4e9e949 Author: Pali Rohár Date: Wed Jan 6 15:50:08 2016 -0800 Input: ALPS - detect trackstick presence for v7 protocol This patch adds detection of trackstick for v7 protocol devices. Code in this patch is used in official Dell touchpad linux drivers for Dell models: Dell Latitude E5250/5250, E5450/5450, E5550/5550 Detection code and base reg for alps v3 rushmore and v7 devices is exacly same. Also user in bug https://bugzilla.kernel.org/show_bug.cgi?id=94801 reported that Toshiba Sattellite Z30-A-1DG has only alps v7 touchpad device without trackstick and kernel reports to userspace also redundant trackstick device. Signed-off-by: Pali Rohár Reviewed-by: Hans de Goede Tested-by: Alex Hung Signed-off-by: Dmitry Torokhov drivers/input/mouse/alps.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 3bc2b2348835f6edd33c383a2fbcf15fe3dac3b2 Author: Ray Jui Date: Wed Jan 6 18:04:35 2016 -0600 PCI: iproc: Add iProc PCIe MSI support Add PCIe MSI support for both PAXB and PAXC interfaces on all iProc-based platforms. The iProc PCIe MSI support deploys an event queue-based implementation. Each event queue is serviced by a GIC interrupt and can support up to 64 MSI vectors. Host memory is allocated for the event queues, and each event queue consists of 64 word-sized entries. MSI data is written to the lower 16-bit of each entry, whereas the upper 16-bit of the entry is reserved for the controller for internal processing. Each event queue is tracked by a head pointer and tail pointer. Head pointer indicates the next entry in the event queue to be processed by the driver and is updated by the driver after processing is done. The controller uses the tail pointer as the next MSI data insertion point. The controller ensures MSI data is flushed to host memory before updating the tail pointer and then triggering the interrupt. MSI IRQ affinity is supported by evenly distributing the interrupts to each CPU core. MSI vector is moved from one GIC interrupt to another in order to steer to the target CPU. Therefore, the actual number of supported MSI vectors is: M * 64 / N where M denotes the number of GIC interrupts (event queues), and N denotes the number of CPU cores. This iProc event queue-based MSI support should not be used with newer platforms with integrated MSI support in the GIC (e.g., giv2m or gicv3-its). [bhelgaas: fold in Kconfig fixes from Arnd Bergmann ] Signed-off-by: Ray Jui Signed-off-by: Bjorn Helgaas Reviewed-by: Anup Patel Reviewed-by: Vikram Prakash Reviewed-by: Scott Branden Reviewed-by: Marc Zyngier drivers/pci/host/Kconfig | 10 + drivers/pci/host/Makefile | 1 + drivers/pci/host/pcie-iproc-bcma.c | 1 + drivers/pci/host/pcie-iproc-msi.c | 675 +++++++++++++++++++++++++++++++++ drivers/pci/host/pcie-iproc-platform.c | 1 + drivers/pci/host/pcie-iproc.c | 26 ++ drivers/pci/host/pcie-iproc.h | 23 +- 7 files changed, 735 insertions(+), 2 deletions(-) commit 274d8cbde1bc3bdfb31c5d6a58113dff5cee4f87 Author: NeilBrown Date: Mon Jan 4 16:16:58 2016 +1100 md: Remove 'ready' field from mddev. This field is always set in tandem with ->pers, and when it is tested ->pers is also tested. So ->ready is not needed. It was needed once, but code rearrangement and locking changes have removed that needed. Signed-off-by: NeilBrown drivers/md/md.c | 5 +---- drivers/md/md.h | 2 -- 2 files changed, 1 insertion(+), 6 deletions(-) commit bb9ef71646606e51adfebdc94231fbbc862dbe28 Author: Guoqing Jiang Date: Mon Dec 28 10:46:38 2015 +0800 md: remove unnecesary md_new_event_inintr md_new_event had removed sysfs_notify since 'commit 72a23c211e45 ("Make sure all changes to md/sync_action are notified.")', so we can use md_new_event and delete md_new_event_inintr. Signed-off-by: Guoqing Jiang Signed-off-by: NeilBrown drivers/md/md.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) commit 6e75632ac34d2f63ab586880f7e9747bd9b708a6 Author: Nicholas Mc Guire Date: Thu Dec 31 16:21:22 2015 +0100 mtd: tests: consolidate kmalloc/memset 0 call to kzalloc This is an API consolidation only. The use of kmalloc + memset to 0 is equivalent to kzalloc. Signed-off-by: Nicholas Mc Guire Signed-off-by: Brian Norris drivers/mtd/tests/pagetest.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 43584c1d42acf54464907773b0b8b7596d7b0a29 Author: Geliang Tang Date: Fri Jan 1 22:06:27 2016 +0800 jffs2: use to_delayed_work Use to_delayed_work() instead of open-coding it. Signed-off-by: Geliang Tang Signed-off-by: Brian Norris fs/jffs2/wbuf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dced14675818bc9627febcc3159ffc1a0d88199d Author: Linus Walleij Date: Tue Dec 8 16:39:20 2015 +0100 leds: pca9532: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Riku Voipio Cc: Richard Purdie Cc: linux-leds@vger.kernel.org Acked-by: Jacek Anaszewski Signed-off-by: Linus Walleij drivers/leds/leds-pca9532.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 2a6643437083c4dc28169a706099cd22769be1f5 Author: Linus Walleij Date: Tue Dec 8 16:42:58 2015 +0100 leds: tca6507: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Riku Voipio Cc: Richard Purdie Cc: linux-leds@vger.kernel.org Acked-by: Jacek Anaszewski Signed-off-by: Linus Walleij drivers/leds/leds-tca6507.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 84530920de3c6ccb92c6661da784f6cdb66d3304 Author: Stephane Eranian Date: Wed Jan 6 19:50:01 2016 +0100 perf pmu: fix alias->snapshot missing initialization bug This patch fixes a bug in __perf_pmu__new_alias() whereby the alias->snapshot field was not initialized to false. This led to random alias->snapshot value for an alias and was breaking some measurements such as: $ perf stat -a -e uncore_imc/data_reads/ -I 1000 sleep 100 Because the event ended up being treated as snapshot mode, when it is not. Signed-off-by: Stephane Eranian Cc: Andi Kleen Cc: Jiri Olsa Cc: Kan Liang Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1452106201-13073-1-git-send-email-eranian@google.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/pmu.c | 1 + 1 file changed, 1 insertion(+) commit b8a1962d17b4e3cfdd7b7dc9ebd94affbcb4c1c5 Author: Jiri Olsa Date: Wed Jan 6 11:49:57 2016 +0100 perf script: Add stat-cpi.py script Adding stat-cpi.py as an example of how to do stat scripting. It computes the CPI metrics from cycles and instructions events. The CPI is based performance metric showing the Cycles Per Instructions ratio, which helps to identify cycles-hungry code. Following stat record/report/script combinations could be used: - get CPI for given workload $ perf stat -e cycles,instructions record ls SNIP Performance counter stats for 'ls': 2,904,431 cycles 3,346,878 instructions # 1.15 insns per cycle 0.001782686 seconds time elapsed $ perf script -s ./scripts/python/stat-cpi.py 0.001783: cpu -1, thread -1 -> cpi 0.867803 (2904431/3346878) $ perf stat -e cycles,instructions record ls | perf script -s ./scripts/python/stat-cpi.py SNIP 0.001730: cpu -1, thread -1 -> cpi 0.869026 (2928292/3369627) - get CPI systemwide: $ perf stat -e cycles,instructions -a -I 1000 record sleep 3 # time counts unit events 1.000158618 594,274,711 cycles (100.00%) 1.000158618 441,898,250 instructions 2.000350973 567,649,705 cycles (100.00%) 2.000350973 432,669,206 instructions 3.000559210 561,940,430 cycles (100.00%) 3.000559210 420,403,465 instructions 3.000670798 780,105 cycles (100.00%) 3.000670798 326,516 instructions $ perf script -s ./scripts/python/stat-cpi.py 1.000159: cpu -1, thread -1 -> cpi 1.344823 (594274711/441898250) 2.000351: cpu -1, thread -1 -> cpi 1.311972 (567649705/432669206) 3.000559: cpu -1, thread -1 -> cpi 1.336669 (561940430/420403465) 3.000671: cpu -1, thread -1 -> cpi 2.389178 (780105/326516) $ perf stat -e cycles,instructions -a -I 1000 record sleep 3 | perf script -s ./scripts/python/stat-cpi.py 1.000202: cpu -1, thread -1 -> cpi 1.035091 (940778881/908885530) 2.000392: cpu -1, thread -1 -> cpi 1.442600 (627493992/434974455) 3.000545: cpu -1, thread -1 -> cpi 1.353612 (741463930/547766890) 3.000622: cpu -1, thread -1 -> cpi 2.642110 (784083/296764) Signed-off-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1452077397-31958-4-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/scripts/python/stat-cpi.py | 77 +++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) commit 36e33c53f4b693d96fb8dd4529fe14306d4e3e76 Author: Jiri Olsa Date: Wed Jan 6 11:49:56 2016 +0100 perf script: Display stat events by default If no script is specified for stat data, display stat events in raw form. $ perf stat record ls SNIP Performance counter stats for 'ls': 0.851585 task-clock (msec) # 0.717 CPUs utilized 0 context-switches # 0.000 K/sec 0 cpu-migrations # 0.000 K/sec 114 page-faults # 0.134 M/sec 2,620,918 cycles # 3.078 GHz stalled-cycles-frontend stalled-cycles-backend 2,714,111 instructions # 1.04 insns per cycle 542,434 branches # 636.970 M/sec 15,946 branch-misses # 2.94% of all branches 0.001186954 seconds time elapsed $ perf script CPU THREAD VAL ENA RUN TIME EVENT -1 26185 851585 851585 851585 1186954 task-clock -1 26185 0 851585 851585 1186954 context-switches -1 26185 0 851585 851585 1186954 cpu-migrations -1 26185 114 851585 851585 1186954 page-faults -1 26185 2620918 853340 853340 1186954 cycles -1 26185 0 0 0 1186954 stalled-cycles-frontend -1 26185 0 0 0 1186954 stalled-cycles-backend -1 26185 2714111 853340 853340 1186954 instructions -1 26185 542434 853340 853340 1186954 branches -1 26185 15946 853340 853340 1186954 branch-misses Signed-off-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1452077397-31958-3-git-send-email-jolsa@kernel.org [ Rename 'time' parameter to 'tstamp' to fix build on older distros ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-script.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) commit 15d2b9956b41ffb5961b897bf61cdc09f722dfbf Author: Jiri Olsa Date: Wed Jan 6 11:49:55 2016 +0100 perf cpumap: Fix cpu conversion in cpu_map__from_entries We can't convert u16 cpu_map_entries::cpu[x] value directly to int, because it could hold -1, which would be converted as 65535. Adding special treatment for -1, which is not real cpu number, to be converted to (int -1). Reported-by: Arnaldo Carvalho de Melo Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Kan Liang Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1452077397-31958-2-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/cpumap.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) commit aef90263561a87ae6d9c6a0f4071d825ce636eef Author: Jiri Olsa Date: Tue Jan 5 22:09:11 2016 +0100 perf script: Add python support for stat events Add support to get stat events data in perf python scripts. The python script shall implement the following new interface to process stat data: def stat___[](cpu, thread, time, val, ena, run): - is called for every stat event for given counter, if user monitors 'cycles,instructions:u" following callbacks should be defined: def stat__cycles(cpu, thread, time, val, ena, run): def stat__instructions_u(cpu, thread, time, val, ena, run): def stat__interval(time): - is called for every interval with its time, in non interval mode it's called after last stat event with total measured time in ns The rest of the current interface stays untouched.. Please check example CPI metrics script in following patch with command line examples in changelogs. Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1452028152-26762-8-git-send-email-jolsa@kernel.org [ Rename 'time' parameters to 'tstamp', to fix the build in older distros ] Signed-off-by: Arnaldo Carvalho de Melo .../util/scripting-engines/trace-event-python.c | 115 +++++++++++++++++++-- 1 file changed, 109 insertions(+), 6 deletions(-) commit e099eba8c8df0f96e7cd6ddc5fc3151fe37be24e Author: Jiri Olsa Date: Tue Jan 5 22:09:09 2016 +0100 perf script: Add stat default handlers Implement struct scripting_ops::(process_stat|process_stat_interval) handlers - calling scripting handlers from stat events handlers. Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1452028152-26762-6-git-send-email-jolsa@kernel.org [ Rename 'time' parameters to 'tstamp', to fix the build in older distros ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-script.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) commit 8058a30ce174060a3c8156dc87b4d4ae39e8281b Author: Jiri Olsa Date: Tue Jan 5 22:09:08 2016 +0100 perf script: Add process_stat/process_stat_interval scripting interface Python and perl scripting code will define those callbacks and get stat data. Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1452028152-26762-5-git-send-email-jolsa@kernel.org [ Rename 'time' parameters to 'tstamp', to fix the build in older distros ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/trace-event.h | 4 ++++ 1 file changed, 4 insertions(+) commit 91a2c3d54fd4b5be4e25acc1d8c1cc9a28319774 Author: Jiri Olsa Date: Tue Jan 5 22:09:07 2016 +0100 perf script: Process stat config event Adding processing of stat config event and initialize stat_config object. Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1452028152-26762-4-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-script.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit cfc8874a485992491b865dde64965bb7c18c26b5 Author: Jiri Olsa Date: Tue Jan 5 22:09:06 2016 +0100 perf script: Process cpu/threads maps Adding processing of cpu/threads maps. Configuring session's evlist with these maps. Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1452028152-26762-3-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-script.c | 67 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) commit 6db1a5c190d6abe416ea36aa28a6c53e0b3bbd5e Author: Jiri Olsa Date: Tue Jan 5 22:09:05 2016 +0100 perf stat record: Keep sample_type 0 for pipe session For pipe sessions we need to keep sample_type zero, because script's perf_evsel__check_attr is triggered by sample_type != 0, and the check would fail on stat session. I was tempted to keep it zero unconditionally, but the pipe session is sufficient. In perf.data session we are guarded by HEADER_STAT feature. Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Kan Liang Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1452028152-26762-2-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 4c96bee03247c6eab27287fa66457a231b9fab79 Author: Namhyung Kim Date: Tue Jan 5 19:58:36 2016 +0900 perf report: Add documentation for dynamic sort keys Signed-off-by: Namhyung Kim Acked-by: Jiri Olsa Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Wang Nan Link: http://lkml.kernel.org/r/1451991518-25673-3-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-report.txt | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit 9735be24ec086fbccee321471cc21dedefa956a6 Author: Namhyung Kim Date: Tue Jan 5 19:58:35 2016 +0900 perf tools: Add all matching dynamic sort keys for field name When a perf.data file has multiple events, it's likely to be similar (tracepoint) events. In that case, they might have same field name so add all of them to sort keys instead of bailing out. Signed-off-by: Namhyung Kim Acked-by: Jiri Olsa Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Wang Nan Link: http://lkml.kernel.org/r/1451991518-25673-2-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/sort.c | 48 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 32 insertions(+), 16 deletions(-) commit 58683600dfe377c883eb8217b5a9bfcfe231b3ff Author: Jiri Olsa Date: Wed Dec 23 18:58:34 2015 +0100 perf build: Use FEATURE-DUMP in bpf subproject Using FEATURE-DUMP in bpf subproject for features detection in case bpf is built via perf. Keeping the current features detection otherwise. Signed-off-by: Jiri Olsa Tested-by: Wang Nan Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Zefan Li Cc: pi3orama Link: http://lkml.kernel.org/r/1450893514-9158-6-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/lib/bpf/Makefile | 4 ++++ tools/perf/Makefile.perf | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) commit 936d120d5f6406377e622da3167cafc811d053ea Author: Jiri Olsa Date: Wed Dec 23 18:58:33 2015 +0100 tools build feature: Use value assignment form for FEATURE-DUMP file Changing the contents of the FEATURE-DUMP file, so it looks like: feature-backtrace=1 feature-dwarf=0 feature-fortify-source=1 feature-sync-compare-and-swap=0 This way it could get included in sub projects, so they won't be forced to redo features detection. Also now storing the complete set of features. Signed-off-by: Jiri Olsa Tested-by: Wang Nan Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Zefan Li Cc: pi3orama Link: http://lkml.kernel.org/r/1450893514-9158-5-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/build/Makefile.feature | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) commit c6a5f88f335ec43d2850d62bc4924f719d265670 Author: Jiri Olsa Date: Wed Dec 23 18:58:32 2015 +0100 tools build feature: Introduce feature_assign macro The feature_assign macro generates feature value assignment for name, like: $(call feature_assign,dwarf) == feature-dwarf=1 This will be used more in following patches. Signed-off-by: Jiri Olsa Tested-by: Wang Nan Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Zefan Li Cc: pi3orama Link: http://lkml.kernel.org/r/1450893514-9158-4-git-send-email-jolsa@kernel.org [ Rename it to feature_assign, the original shorter name was misleading, to say the least ;-) ] Signed-off-by: Arnaldo Carvalho de Melo tools/build/Makefile.feature | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 76ee2ff342743e57cb6dc059d0aba90e0c4c9bfc Author: Jiri Olsa Date: Wed Dec 23 18:58:31 2015 +0100 tools build feature: Move dwarf post unwind choice output into perf We decide what dwarf unwind to choose way after the Makefile.feature makefile is included. The $(dwarf-post-unwind) is not even set at that time. For the same reason it was never included in FEATURE-DUMP file. Moving it into perf VF=1 verbose display. $ make VF=1 BUILD: Doing 'make -j4' parallel build Auto-detecting system features: ... dwarf: [ on ] ... ... LIBUNWIND_DIR: ... LIBDW_DIR: ... DWARF post unwind library: libunwind ... Signed-off-by: Jiri Olsa Tested-by: Wang Nan Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Zefan Li Cc: pi3orama Link: http://lkml.kernel.org/r/1450893514-9158-3-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/build/Makefile.feature | 9 --------- tools/perf/config/Makefile | 4 ++++ 2 files changed, 4 insertions(+), 9 deletions(-) commit d0018b495c0429af3efc1b54f16d291a9fa8b4be Author: Jiri Olsa Date: Wed Dec 23 18:58:30 2015 +0100 tools build feature: Fix feature_check_display_code typo This function is cursed.. ;-) Signed-off-by: Jiri Olsa Tested-by: Wang Nan Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Zefan Li Cc: pi3orama Link: http://lkml.kernel.org/r/1450893514-9158-2-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/build/Makefile.feature | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d49dadea78624353d1df660efb49f187bd5c5971 Author: Namhyung Kim Date: Wed Dec 23 02:07:10 2015 +0900 perf tools: Make 'trace' or 'trace_fields' sort key default for tracepoint events When an evlist contains tracepoint events only, use 'trace' sort key as default. If --raw-trace option was given, use 'trace_fields' instead. This will make users more convenient to see trace result. Suggested-and-Acked-by: Jiri Olsa Signed-off-by: Namhyung Kim Tested-by: Arnaldo Carvalho de Melo Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Wang Nan Link: http://lkml.kernel.org/r/1450804030-29193-14-git-send-email-namhyung@kernel.org [ Check evlist in get_default_sort_order() fixing a segfault in 'perf test hists' reported by Jiri Olsa ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/sort.c | 30 +++++++++++++++++++++++++----- tools/perf/util/sort.h | 1 + 2 files changed, 26 insertions(+), 5 deletions(-) commit 2e422fd1e4b0a1c0ca11d360be2147c87911dd1a Author: Namhyung Kim Date: Wed Dec 23 02:07:09 2015 +0900 perf tools: Add 'trace_fields' dynamic sort key The 'trace_fields' sort key is similar as 'trace' sort key, but it shows each fields separately. Each event will get different columns as their fields. $ perf report -s trace_fields --stdio # To display the perf.data header info, please use --header/--header-only options. # # # Total Lost Samples: 0 # # Samples: 20K of event 'kmem:kmalloc' # Event count (approx.): 20533 # # Overhead Command call_site ptr bytes_req bytes_alloc gfp_flags # ........ ....... .................. .................. ......... ........... ................... # 99.89% perf ffffffffa01d4396 0xffff8803ffb79720 96 96 GFP_NOFS|GFP_ZERO 0.06% sleep ffffffff8114e1cd 0xffff8803d228a000 4096 4096 GFP_KERNEL 0.03% perf ffffffff811d6ae6 0xffff8803f7678f00 240 256 GFP_KERNEL|GFP_ZERO 0.00% perf ffffffff812263c1 0xffff880406172380 128 128 GFP_KERNEL 0.00% perf ffffffff812264b9 0xffff8803ffac1600 504 512 GFP_KERNEL 0.00% perf ffffffff81226634 0xffff880401dc5280 28 32 GFP_KERNEL 0.00% sleep ffffffff81226da9 0xffff8803ffac3a00 392 512 GFP_KERNEL # Samples: 20K of event 'kmem:kfree' # Event count (approx.): 20597 # # Overhead call_site ptr # ........ .................. .................. # 99.58% ffffffffa01d85ad 0xffff8803ffb79720 0.07% ffffffff81443f5c 0xffff8803f7669400 0.02% ffffffff811d5753 0xffff8803f7678f00 0.01% ffffffff81443f5c 0xffff8803f766be00 0.01% ffffffff8114e359 0xffff8803d228a000 0.01% ffffffff81443f5c 0xffff8800d156dc00 0.01% ffffffff81443f5c 0xffff8803f7669400 0.01% ffffffff8114e359 0xffff8803d228a000 0.01% ffffffff8114e359 0xffff8803d228a000 0.01% ffffffff8114e359 0xffff8803d228a000 Signed-off-by: Namhyung Kim Acked-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Wang Nan Link: http://lkml.kernel.org/r/1450804030-29193-13-git-send-email-namhyung@kernel.org [ Combined with "perf tools: Fix segfault when using -s trace_fields" ] Link: http://lkml.kernel.org/r/1451991518-25673-1-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/sort.c | 47 ++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 38 insertions(+), 9 deletions(-) commit 361459f163fa1ec7ff4700ec876c3b7ff5f36cc6 Author: Namhyung Kim Date: Wed Dec 23 02:07:08 2015 +0900 perf tools: Skip dynamic fields not defined for current event When there are multiple events, each dynamic sort key is defined just for one event. In this case other events will always show "N/A" for those fields. But they are meaningless and consume precious screen width. Let's skip those undefined dynamic fields. $ perf record -e kmem:kmalloc,kmem:kfree -a sleep 1 $ perf report -s 'comm,kmalloc.*' --stdio # To display the perf.data header info, please use --header/--header-only options. # # # Total Lost Samples: 0 # # Samples: 20K of event 'kmem:kmalloc' # Event count (approx.): 20533 # # Overhead Command call_site ptr bytes_req bytes_alloc gfp_flags # ........ ....... .................. .................. ......... ........... ................... # 99.89% perf ffffffffa01d4396 0xffff8803ffb79720 96 96 GFP_NOFS|GFP_ZERO 0.06% sleep ffffffff8114e1cd 0xffff8803d228a000 4096 4096 GFP_KERNEL 0.03% perf ffffffff811d6ae6 0xffff8803f7678f00 240 256 GFP_KERNEL|GFP_ZERO 0.00% perf ffffffff812263c1 0xffff880406172380 128 128 GFP_KERNEL 0.00% perf ffffffff812264b9 0xffff8803ffac1600 504 512 GFP_KERNEL 0.00% perf ffffffff81226634 0xffff880401dc5280 28 32 GFP_KERNEL 0.00% sleep ffffffff81226da9 0xffff8803ffac3a00 392 512 GFP_KERNEL # Samples: 20K of event 'kmem:kfree' # Event count (approx.): 20597 # # Overhead Command # ........ .............. # 99.63% perf 0.14% sleep 0.11% irq/36-iwlwifi 0.11% kworker/u16:0 0.01% Xorg 0.00% firefox Signed-off-by: Namhyung Kim Acked-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Wang Nan Link: http://lkml.kernel.org/r/1450804030-29193-12-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/ui/browsers/hists.c | 7 ++++--- tools/perf/ui/gtk/hists.c | 4 ++-- tools/perf/ui/hist.c | 2 +- tools/perf/ui/stdio/hist.c | 6 +++--- tools/perf/util/hist.c | 2 +- tools/perf/util/hist.h | 14 ++++++++++++-- tools/perf/util/sort.c | 20 ++++++++++++++------ 7 files changed, 37 insertions(+), 18 deletions(-) commit 3b099bf5898ac1bf44d822f0bc15a7517e6fa117 Author: Namhyung Kim Date: Wed Dec 23 02:07:07 2015 +0900 perf tools: Support '.*' dynamic sort key Support '*' character for field name to add all (non-common) fields as sort keys easily. $ perf report -s 'switch.*' --stdio ... # Overhead prev_comm prev_pid prev_prio prev_state next_comm next_pid next_prio # ........ ........... ......... ......... .......... ............ ........ ......... # 3.82% swapper/0 0 120 0 netctl-auto 18711 120 3.75% netctl-auto 18711 120 1 swapper/0 0 120 2.24% swapper/1 0 120 0 netctl-auto 18709 120 2.24% netctl-auto 18709 120 1 swapper/1 0 120 1.80% swapper/2 0 120 0 rcu_preempt 7 120 1.80% swapper/2 0 120 0 netctl-auto 18711 120 1.80% rcu_preempt 7 120 1 swapper/2 0 120 1.80% netctl-auto 18711 120 1 swapper/2 0 120 ... Suggested-and-acked-by: Jiri Olsa Signed-off-by: Namhyung Kim Tested-by: Arnaldo Carvalho de Melo Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Wang Nan Link: http://lkml.kernel.org/r/1450804030-29193-11-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/sort.c | 49 ++++++++++++++++++++++++++++++++++--------------- 1 file changed, 34 insertions(+), 15 deletions(-) commit 5d0cff93bb7aa85349230d4e29902b2648640c53 Author: Namhyung Kim Date: Wed Dec 23 02:07:06 2015 +0900 perf tools: Support shortcuts for events in dynamic sort keys The dynamic sort key requires event name but specifying full event name is rather inconvenient. This patch adds more ways to identify the event in a more compact way. 1. If session has just one event, event name can be omitted. 2. Events can be accessed by index preceded by a percent sign. 3. A part of the name can be used, if it's not ambiguous. The partial name should not contain ':' in it. 4. Full system + event name is still used, it should contain ':'. So in the below example all does same thing: $ perf record -e sched:sched_switch -a sleep 1 $ perf report -s next_pid,next_comm $ perf report -s %1.next_pid,%1.next_comm $ perf report -s switch.next_pid,switch.next_comm $ perf report -s sched:sched_switch.next_pid,sched:sched_switch.next_comm Signed-off-by: Namhyung Kim Acked-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Wang Nan Link: http://lkml.kernel.org/r/1450804030-29193-10-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/sort.c | 107 ++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 87 insertions(+), 20 deletions(-) commit 053a3989e12fdf3be45c00ec1cb0ce09fba0ee4a Author: Namhyung Kim Date: Wed Dec 23 02:07:05 2015 +0900 perf report/top: Add --raw-trace option The --raw-trace option allows disabling pretty printing by the event's print_fmt or plugin. Besides that, each dynamic sort key now can receive a 'raw' suffix separated by '/' to ask for the raw trace of a specific field. $ perf report -s comm,kmem:kmalloc.gfp_flags ... # Overhead Command gfp_flags # ........ ....... ................... # 99.89% perf GFP_NOFS|GFP_ZERO 0.06% sleep GFP_KERNEL 0.03% perf GFP_KERNEL|GFP_ZERO 0.01% perf GFP_KERNEL Now $ perf report -s comm,kmem:kmalloc.gfp_flags --raw-trace or $ perf report -s comm,kmem:kmalloc.gfp_flags/raw ... # Overhead Command gfp_flags # ........ ....... .......... # 99.89% perf 32848 0.06% sleep 208 0.03% perf 32976 0.01% perf 208 Suggested-and-Acked-by: Jiri Olsa Signed-off-by: Namhyung Kim Tested-by: Arnaldo Carvalho de Melo Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Wang Nan Link: http://lkml.kernel.org/r/1450804030-29193-9-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-report.txt | 3 +++ tools/perf/Documentation/perf-top.txt | 3 +++ tools/perf/builtin-report.c | 2 ++ tools/perf/builtin-top.c | 2 ++ tools/perf/util/sort.c | 32 +++++++++++++++++++++++++++++--- tools/perf/util/symbol.h | 3 ++- 6 files changed, 41 insertions(+), 4 deletions(-) commit a34bb6a08d6020bde0475bc901793771858a1112 Author: Namhyung Kim Date: Wed Dec 23 02:07:04 2015 +0900 perf tools: Add 'trace' sort key The 'trace' sort key is to show tracepoint event output using either print fmt or plugin. For example sched_switch event (using plugin) will show output like below: # perf record -e sched:sched_switch -a usleep 10 [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.197 MB perf.data (69 samples) ] # $ perf report -s trace --stdio ... # Overhead Trace output # ........ ................................................... # 9.48% swapper/0:0 [120] R ==> transmission-gt:17773 [120] 9.48% transmission-gt:17773 [120] S ==> swapper/0:0 [120] 9.04% swapper/2:0 [120] R ==> transmission-gt:17773 [120] 8.92% transmission-gt:17773 [120] S ==> swapper/2:0 [120] 5.25% swapper/0:0 [120] R ==> kworker/0:1H:109 [100] 5.21% kworker/0:1H:109 [100] S ==> swapper/0:0 [120] 1.78% swapper/3:0 [120] R ==> transmission-gt:17773 [120] 1.78% transmission-gt:17773 [120] S ==> swapper/3:0 [120] 1.53% Xephyr:6524 [120] S ==> swapper/0:0 [120] 1.53% swapper/0:0 [120] R ==> Xephyr:6524 [120] 1.17% swapper/2:0 [120] R ==> irq/33-iwlwifi:233 [49] 1.13% irq/33-iwlwifi:233 [49] S ==> swapper/2:0 [120] Note that the 'trace' sort key works only for tracepoint events. If it's used to other type of events, just "N/A" will be printed. Suggested-and-acked-by: Jiri Olsa Signed-off-by: Namhyung Kim Tested-by: Arnaldo Carvalho de Melo Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Wang Nan Link: http://lkml.kernel.org/r/1450804030-29193-8-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/hist.h | 1 + tools/perf/util/sort.c | 76 +++++++++++++++++++++++++++++++++++++++----------- tools/perf/util/sort.h | 1 + 3 files changed, 62 insertions(+), 16 deletions(-) commit 60517d28fbd91629686dcf9a39aef4e068a3d5f6 Author: Namhyung Kim Date: Wed Dec 23 02:07:03 2015 +0900 perf tools: Try to show pretty printed output for dynamic sort keys Each tracepoint event has format string for print to improve readability. Try to parse the output and match the field name. If it finds one, use that for the result. If not, fallbacks to the original output. For example, sort on kmem:kmalloc.gfp_flags looks like below: (Note: libtraceevent plugins are not installed on my system. They might affect the output below) Before: # Overhead Command gfp_flags # ........ ....... .......... # 99.89% perf 32848 0.06% sleep 208 0.03% perf 32976 0.01% perf 208 After: # Overhead Command gfp_flags # ........ ....... ................... # 99.89% perf GFP_NOFS|GFP_ZERO 0.06% sleep GFP_KERNEL 0.03% perf GFP_KERNEL|GFP_ZERO 0.01% perf GFP_KERNEL Signed-off-by: Namhyung Kim Acked-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Wang Nan Link: http://lkml.kernel.org/r/1450804030-29193-7-git-send-email-namhyung@kernel.org [ Fixed clash with earlier, updated patch in this patchkit ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/hist.c | 1 + tools/perf/util/sort.c | 105 ++++++++++++++++++++++++++++++++++++++++++++++--- tools/perf/util/sort.h | 1 + 3 files changed, 102 insertions(+), 5 deletions(-) commit c7c2a5e40f17ab3b14716d4f08d03792a9b683e7 Author: Namhyung Kim Date: Wed Dec 23 02:07:02 2015 +0900 perf tools: Add dynamic sort key for tracepoint events The existing sort keys are less useful for tracepoint events in that they are always sampled at the same place, the function where the tracepoint is located. For example, a 'perf report' on sched:sched_switch event looks like the following: # Overhead Command Shared Object Symbol # ........ ............... ................ .............. # 47.22% swapper [kernel.vmlinux] [k] __schedule 21.67% transmission-gt [kernel.vmlinux] [k] __schedule 8.23% netctl-auto [kernel.vmlinux] [k] __schedule 5.53% kworker/0:1H [kernel.vmlinux] [k] __schedule 1.98% Xephyr [kernel.vmlinux] [k] __schedule 1.33% irq/33-iwlwifi [kernel.vmlinux] [k] __schedule 1.17% wpa_cli [kernel.vmlinux] [k] __schedule 1.13% rcu_preempt [kernel.vmlinux] [k] __schedule 0.85% ksoftirqd/0 [kernel.vmlinux] [k] __schedule 0.77% Timer [kernel.vmlinux] [k] __schedule In fact, tracepoints have meaningful information in their fields but there's no way to use in 'perf report' currently. The dynamic sort keys are introduced in this patc to overcome this limitation. The sched:sched_switch events have following fields: # sudo cat /sys/kernel/debug/tracing/events/sched/sched_switch/format name: sched_switch ID: 268 format: field:unsigned short common_type; offset:0; size:2; signed:0; field:unsigned char common_flags; offset:2; size:1; signed:0; field:unsigned char common_preempt_count; offset:3; size:1; signed:0; field:int common_pid; offset:4; size:4; signed:1; field:char prev_comm[16]; offset:8; size:16; signed:1; field:pid_t prev_pid; offset:24; size:4; signed:1; field:int prev_prio; offset:28; size:4; signed:1; field:long prev_state; offset:32; size:8; signed:1; field:char next_comm[16]; offset:40; size:16; signed:1; field:pid_t next_pid; offset:56; size:4; signed:1; field:int next_prio; offset:60; size:4; signed:1; print fmt: "prev_comm=%s prev_pid=%d prev_prio=%d prev_state=%s%s ==> next_comm=%s next_pid=%d next_prio=%d", REC->prev_comm, REC->prev_pid, REC->prev_prio, REC->prev_state & (2048-1) ? __print_flags(REC->prev_state & (2048-1), "|", { 1, "S"} , { 2, "D" }, { 4, "T" }, { 8, "t" }, { 16, "Z" }, { 32, "X" }, { 64, "x" }, { 128, "K"}, { 256, "W" }, { 512, "P" }, { 1024, "N" }) : "R", REC->prev_state & 2048 ? "+" : "", REC->next_comm, REC->next_pid, REC->next_prio With dynamic sort keys, you can use as a sort key. Those dynamic keys are checked and created on demand. For instance, below is to sort by next_pid field output on the same data file: $ perf report -s comm,sched:sched_switch.next_pid --stdio ... # Overhead Command next_pid # ........ ............... .......... # 21.23% transmission-gt 0 20.86% swapper 17773 6.62% netctl-auto 0 5.25% swapper 109 5.21% kworker/0:1H 0 1.98% Xephyr 0 1.98% swapper 6524 1.98% swapper 27478 1.37% swapper 27476 1.17% swapper 233 Multiple dynamic sort keys are also supported: $ perf report -s comm,sched:sched_switch.next_pid,sched:sched_switch.next_comm --stdio ... # Overhead Command next_pid next_comm # ........ ............... .......... ................ # 20.86% swapper 17773 transmission-gt 9.64% transmission-gt 0 swapper/0 9.16% transmission-gt 0 swapper/2 5.25% swapper 109 kworker/0:1H 5.21% kworker/0:1H 0 swapper/0 2.14% netctl-auto 0 swapper/2 1.98% netctl-auto 0 swapper/0 1.98% swapper 6524 Xephyr 1.98% swapper 27478 netctl-auto 1.78% transmission-gt 0 swapper/3 1.53% Xephyr 0 swapper/0 1.29% netctl-auto 0 swapper/1 1.29% swapper 27476 netctl-auto 1.21% netctl-auto 0 swapper/3 1.17% swapper 233 irq/33-iwlwifi Note that pid 0 exists for each cpu so have comm of 'swapper/N'. Signed-off-by: Namhyung Kim Acked-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Wang Nan Link: http://lkml.kernel.org/r/1450804030-29193-6-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/sort.c | 213 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 213 insertions(+) commit 40184c46a3055a97e2efa69da6f17c05bff4b776 Author: Namhyung Kim Date: Wed Dec 23 02:07:01 2015 +0900 perf tools: Pass evlist to setup_sorting() This is a preparation to support dynamic sort keys for tracepoint events. Dynamic sort keys can be created for specific fields in trace events so it needs the event information. Signed-off-by: Namhyung Kim Acked-by: Jiri Olsa Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Wang Nan Link: http://lkml.kernel.org/r/1450804030-29193-5-git-send-email-namhyung@kernel.org [ Moving the evlist creation earlier in top was split to a previous patch ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-annotate.c | 2 +- tools/perf/builtin-diff.c | 2 +- tools/perf/builtin-report.c | 2 +- tools/perf/builtin-top.c | 2 +- tools/perf/tests/hists_cumulate.c | 8 ++++---- tools/perf/tests/hists_filter.c | 2 +- tools/perf/tests/hists_link.c | 2 +- tools/perf/tests/hists_output.c | 10 +++++----- tools/perf/util/sort.c | 15 +++++++++------ tools/perf/util/sort.h | 5 +++-- 10 files changed, 27 insertions(+), 23 deletions(-) commit 54f8f40384ab940e15585afde5c278c8e7726214 Author: Namhyung Kim Date: Wed Dec 23 02:07:01 2015 +0900 perf top: Create the evlist sooner This is a preparation to support dynamic sort keys for tracepoint events. Dynamic sort keys can be created for specific fields in trace events so it needs the event information, so we need to pass the evlist to the sort routines, create it sooner so that the next patch can do that. Signed-off-by: Namhyung Kim Acked-by: Jiri Olsa Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Wang Nan Link: http://lkml.kernel.org/r/1450804030-29193-5-git-send-email-namhyung@kernel.org [ Split from the patch passing the evlist to the sort routines ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-top.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit be45d40efec96558c489579bbf93465e90b10abe Author: Namhyung Kim Date: Wed Dec 23 22:08:41 2015 +0900 tools lib traceevent: Factor out and export print_event_field[s]() The print_event_field() and print_event_fields() functions print basic information of a given field or event without the print format. They'll be used by dynamic sort keys later. Committer note: Rename it to pevent_print_field[s]() to get proper namespacing, as discussed with Steven Rostedt. Signed-off-by: Namhyung Kim Acked-by: Jiri Olsa Acked-by: Steven Rostedt Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/1450876121-22494-1-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/lib/traceevent/event-parse.c | 129 +++++++++++++++++++------------------ tools/lib/traceevent/event-parse.h | 4 ++ 2 files changed, 72 insertions(+), 61 deletions(-) commit 723928340c9d28d92dcaff8b8fbc9100a1cf9429 Author: Namhyung Kim Date: Thu Dec 24 11:16:17 2015 +0900 perf hist: Save raw_data/size for tracepoint events The raw_data and raw_size fields are to provide tracepoint specific information. They will be used by dynamic sort keys later. Signed-off-by: Namhyung Kim Acked-by: Jiri Olsa Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Wang Nan Link: http://lkml.kernel.org/r/1450923377-18641-1-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/hist.c | 24 ++++++++++++++++++++++++ tools/perf/util/sort.h | 2 ++ 2 files changed, 26 insertions(+) commit fd36f3dd79331b9610664b867ff205465bf9ce68 Author: Namhyung Kim Date: Wed Dec 23 02:06:58 2015 +0900 perf hist: Pass struct sample to __hists__add_entry() This is a preparation to add more info into the hist_entry. Also it already passes too many argument, so passing sample directly will reduce the overhead of the function call. Signed-off-by: Namhyung Kim Acked-by: Jiri Olsa Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Wang Nan Link: http://lkml.kernel.org/r/1450804030-29193-2-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-annotate.c | 7 +++++-- tools/perf/builtin-diff.c | 11 +++++------ tools/perf/tests/hists_link.c | 6 +++--- tools/perf/util/hist.c | 31 +++++++++++++++++-------------- tools/perf/util/hist.h | 4 ++-- 5 files changed, 32 insertions(+), 27 deletions(-) commit 47513c2ff86e2afd345a9aea3c5626f71cf2f4e9 Author: Linus Walleij Date: Tue Dec 8 16:26:28 2015 +0100 hid: cp2112: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: linux-input@vger.kernel.org Acked-by: Jiri Kosina Signed-off-by: Linus Walleij drivers/hid/hid-cp2112.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) commit 78d455a2e41fa3de9e1d2d3696cefcb7d6c9c5c4 Author: Linus Walleij Date: Tue Dec 8 16:17:02 2015 +0100 bcma: gpio: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Kalle Valo Cc: linux-wireless@vger.kernel.org Acked-by: Hauke Mehrtens Acked-by: Rafał Miłecki Signed-off-by: Linus Walleij drivers/bcma/driver_gpio.c | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) commit 95bf0951e415cf71654184fd6e8c711782b1f22a Author: Linus Walleij Date: Tue Dec 8 13:48:02 2015 +0100 avr32: gpio: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Haavard Skinnemoen Acked-by: Hans-Christian Noren Egtvedt Signed-off-by: Linus Walleij arch/avr32/mach-at32ap/pio.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 11680af7c8579fc37ac34bf16cb5ea49435054a4 Author: Linus Walleij Date: Tue Dec 8 23:20:57 2015 +0100 video: fbdev: via: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Florian Tobias Schandinat Acked-by: Tomi Valkeinen Signed-off-by: Linus Walleij drivers/video/fbdev/via/via-gpio.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) commit f7a8e38f07a17be90758559fe66fe7337096053f Author: Brian Norris Date: Tue Jan 5 10:39:45 2016 -0800 mtd: nand: assign reasonable default name for NAND drivers Commits such as commit 853f1c58c4b2 ("mtd: nand: omap2: show parent device structure in sysfs") attempt to rely on the core MTD code to set the MTD name based on the parent device. However, nand_base tries to set a different default name according to the flash name (e.g., extracted from the ONFI parameter page), which means NAND drivers will never make use of the MTD defaults. This is not the intention of commit 853f1c58c4b2. This results in problems when trying to use the cmdline partition parser, since the MTD name is different than expected. Let's fix this by providing a default NAND name, where possible. Note that this is not really a great default name in the long run, since this means that if there are multiple MTDs attached to the same controller device, they will have the same name. But that is an existing issue and requires future work on a better controller vs. flash chip abstraction to fix properly. Fixes: 853f1c58c4b2 ("mtd: nand: omap2: show parent device structure in sysfs") Reported-by: Heiko Schocher Signed-off-by: Brian Norris Reviewed-by: Boris Brezillon Tested-by: Heiko Schocher Cc: Heiko Schocher Cc: Frans Klaver Cc: drivers/mtd/nand/nand_base.c | 3 +++ 1 file changed, 3 insertions(+) commit 271dba4521aed0c37c063548f876b49f5cd64b2e Author: Filipe Manana Date: Tue Jan 5 16:24:05 2016 +0000 Btrfs: fix transaction handle leak on failure to create hard link If we failed to create a hard link we were not always releasing the the transaction handle we got before, resulting in a memory leak and preventing any other tasks from being able to commit the current transaction. Fix this by always releasing our transaction handle. Signed-off-by: Filipe Manana Reviewed-by: Liu Bo fs/btrfs/inode.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 8ff0ef996ca00028519c70e8d51d32bd37eb51dc Author: Grygorii Strashko Date: Thu Dec 10 21:18:20 2015 +0200 PCI: host: Mark PCIe/PCI (MSI) IRQ cascade handlers as IRQF_NO_THREAD On -RT and if kernel is booting with "threadirqs" cmd line parameter, PCIe/PCI (MSI) IRQ cascade handlers (like dra7xx_pcie_msi_irq_handler()) will be forced threaded and, as result, will generate warnings like this: WARNING: CPU: 1 PID: 82 at kernel/irq/handle.c:150 handle_irq_event_percpu+0x14c/0x174() irq 460 handler irq_default_primary_handler+0x0/0x14 enabled interrupts Backtrace: (warn_slowpath_common) from (warn_slowpath_fmt+0x38/0x40) (warn_slowpath_fmt) from (handle_irq_event_percpu+0x14c/0x174) (handle_irq_event_percpu) from (handle_irq_event+0x84/0xb8) (handle_irq_event) from (handle_simple_irq+0x90/0x118) (handle_simple_irq) from (generic_handle_irq+0x30/0x44) (generic_handle_irq) from (dra7xx_pcie_msi_irq_handler+0x7c/0x8c) (dra7xx_pcie_msi_irq_handler) from (irq_forced_thread_fn+0x28/0x5c) (irq_forced_thread_fn) from (irq_thread+0x128/0x204) This happens because all of them invoke generic_handle_irq() from the requested handler. generic_handle_irq() grabs raw_locks and thus needs to run in raw-IRQ context. This issue was originally reproduced on TI dra7-evem, but, as was identified during discussion [1], other hosts can also suffer from this issue. Fix all them at once by marking PCIe/PCI (MSI) IRQ cascade handlers IRQF_NO_THREAD explicitly. [1] http://lkml.kernel.org/r/1448027966-21610-1-git-send-email-grygorii.strashko@ti.com [bhelgaas: add stable tag, fix typos] Signed-off-by: Grygorii Strashko Signed-off-by: Bjorn Helgaas Acked-by: Lucas Stach (for imx6) CC: stable@vger.kernel.org CC: Kishon Vijay Abraham I CC: Jingoo Han CC: Kukjin Kim CC: Krzysztof Kozlowski CC: Richard Zhu CC: Thierry Reding CC: Stephen Warren CC: Alexandre Courbot CC: Simon Horman CC: Pratyush Anand CC: Michal Simek CC: "Sören Brinkmann" CC: Sebastian Andrzej Siewior drivers/pci/host/pci-dra7xx.c | 3 ++- drivers/pci/host/pci-exynos.c | 3 ++- drivers/pci/host/pci-imx6.c | 3 ++- drivers/pci/host/pci-tegra.c | 2 +- drivers/pci/host/pcie-rcar.c | 6 ++++-- drivers/pci/host/pcie-spear13xx.c | 3 ++- drivers/pci/host/pcie-xilinx.c | 3 ++- 7 files changed, 15 insertions(+), 8 deletions(-) commit b75d8063c09b5b4dc230dfbb2ddc1a50cf06b897 Author: Geliang Tang Date: Wed Nov 25 21:49:27 2015 +0800 target: use offset_in_page macro Use offset_in_page macro instead of (addr & ~PAGE_MASK). Signed-off-by: Geliang Tang Reviewed-by: Sagi Grimberg Reviewed-by: Johannes Thumshirn Signed-off-by: Nicholas Bellinger drivers/target/target_core_user.c | 2 +- drivers/target/tcm_fc/tfc_io.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) commit 234bdbc49d118431b1ebeee228bd1b3105f89e2a Author: Christophe Vu-Brugier Date: Wed Nov 18 09:22:58 2015 +0100 target: fix deprecated attribute names in dmesg The following message is displayed in dmesg when a deprecated attribute is set: "ignoring deprecated ##_name## attribute" This patch fixes the format to include the name of the deprecated attribute. Signed-off-by: Christophe Vu-Brugier Reviewed-by: Sagi Grimberg Signed-off-by: Nicholas Bellinger drivers/target/target_core_configfs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e6f41633cb79b55ead84b023c02035322c7827e7 Author: Jamie Pocas Date: Sun Nov 29 14:44:57 2015 -0800 target/sbc: Add LBPRZ attribute + control CDB emulation This change sets the LBPRZ flag in EVPD page b2h and READ CAPACITY (16) based on a new unmap_zeroes_data device attribute. This flag is set automatically for iblock based on underlying block device queue's discard_zeroes_data flag. Signed-off-by: Jamie Pocas Signed-off-by: Nicholas Bellinger drivers/target/target_core_configfs.c | 36 +++++++++++++++++++++++++++++++++++ drivers/target/target_core_device.c | 2 ++ drivers/target/target_core_iblock.c | 2 ++ drivers/target/target_core_sbc.c | 10 +++++++++- drivers/target/target_core_spc.c | 12 ++++++++++++ include/target/target_core_base.h | 3 +++ 6 files changed, 64 insertions(+), 1 deletion(-) commit ef8f46b549c2e425513ed568f18c827a37c08727 Author: Bart Van Assche Date: Thu Oct 22 15:56:25 2015 -0700 sbp-target: Remove a superfluous forward declaration Signed-off-by: Bart Van Assche Acked-by: Chris Boot Reviewed-by: Andy Grover Cc: Christoph Hellwig Cc: Hannes Reinecke Cc: Sagi Grimberg Signed-off-by: Nicholas Bellinger drivers/target/sbp/sbp_target.c | 2 -- 1 file changed, 2 deletions(-) commit 5a3425210ccee6a20e9b36f8a169b0e99bc6cbde Author: Bart Van Assche Date: Thu Oct 22 15:53:22 2015 -0700 iscsi-target: Fix indentation + spelling + unreachable code Modify indentation such that the 'smatch' tool no longer complains about incorrect indentation + unreachable code. Signed-off-by: Bart Van Assche Reviewed-by: Sagi Grimberg Reviewed-by: Andy Grover Signed-off-by: Nicholas Bellinger drivers/target/iscsi/iscsi_target.c | 5 +---- drivers/target/iscsi/iscsi_target_erl1.c | 7 +++---- drivers/target/iscsi/iscsi_target_parameters.c | 2 +- drivers/target/iscsi/iscsi_target_tmr.c | 2 +- 4 files changed, 6 insertions(+), 10 deletions(-) commit 8bc403b78ffb774d8dc944abb0826c46c0dca09d Author: Geert Uytterhoeven Date: Mon Dec 21 11:33:52 2015 +0100 ARM: dts: silk: Add compatible property to "partitions" node As of commit e488ca9f8d4f62c2 ("doc: dt: mtd: partitions: add compatible property to "partitions" node"), the "partitions" subnode of an SPI FLASH device node must have a compatible property. The partitions are no longer detected if it is not present. Signed-off-by: Geert Uytterhoeven Acked-by: Brian Norris Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7794-silk.dts | 1 + 1 file changed, 1 insertion(+) commit e5e6f9b4891af3617a76f5220f1efaf365f837da Author: Geert Uytterhoeven Date: Mon Dec 21 11:33:51 2015 +0100 ARM: dts: gose: Add compatible property to "partitions" node As of commit e488ca9f8d4f62c2 ("doc: dt: mtd: partitions: add compatible property to "partitions" node"), the "partitions" subnode of an SPI FLASH device node must have a compatible property. The partitions are no longer detected if it is not present. Signed-off-by: Geert Uytterhoeven Acked-by: Brian Norris Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7793-gose.dts | 1 + 1 file changed, 1 insertion(+) commit 947ef628414483b05eac32253f86ef7753fb4d4d Author: Geert Uytterhoeven Date: Mon Dec 21 11:33:50 2015 +0100 ARM: dts: porter: Add compatible property to "partitions" node As of commit e488ca9f8d4f62c2 ("doc: dt: mtd: partitions: add compatible property to "partitions" node"), the "partitions" subnode of an SPI FLASH device node must have a compatible property. The partitions are no longer detected if it is not present. Signed-off-by: Geert Uytterhoeven Acked-by: Brian Norris Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791-porter.dts | 1 + 1 file changed, 1 insertion(+) commit f6531bb50847af70aa95665e83873c455d7bf06e Author: Geert Uytterhoeven Date: Mon Dec 21 11:33:49 2015 +0100 ARM: dts: koelsch: Add compatible property to "partitions" node As of commit e488ca9f8d4f62c2 ("doc: dt: mtd: partitions: add compatible property to "partitions" node"), the "partitions" subnode of an SPI FLASH device node must have a compatible property. The partitions are no longer detected if it is not present. Signed-off-by: Geert Uytterhoeven Acked-by: Brian Norris Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791-koelsch.dts | 1 + 1 file changed, 1 insertion(+) commit b88ddbdd36859a4dc99bddd9b5730944187530c0 Author: Geert Uytterhoeven Date: Mon Dec 21 11:33:48 2015 +0100 ARM: dts: lager: Add compatible property to "partitions" node As of commit e488ca9f8d4f62c2 ("doc: dt: mtd: partitions: add compatible property to "partitions" node"), the "partitions" subnode of an SPI FLASH device node must have a compatible property. The partitions are no longer detected if it is not present. Signed-off-by: Geert Uytterhoeven Acked-by: Brian Norris Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7790-lager.dts | 1 + 1 file changed, 1 insertion(+) commit b66c1ebae17bf78eb915f1d22a82e1183b0deb8e Author: Geert Uytterhoeven Date: Mon Dec 21 11:33:47 2015 +0100 ARM: dts: bockw: Add compatible property to "partitions" node As of commit e488ca9f8d4f62c2 ("doc: dt: mtd: partitions: add compatible property to "partitions" node"), the "partitions" subnode of an SPI FLASH device node must have a compatible property. The partitions are no longer detected if it is not present. Signed-off-by: Geert Uytterhoeven Acked-by: Brian Norris Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7778-bockw.dts | 1 + 1 file changed, 1 insertion(+) commit ac75d8be9bed40b54be4e98fe6a521322d6cd891 Author: Bart Van Assche Date: Thu Oct 22 15:52:01 2015 -0700 target: Fix spelling + remove set-but-not-used variables Signed-off-by: Bart Van Assche Reviewed-by: Sagi Grimberg Reviewed-by: Andy Grover Reviewed-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger drivers/target/target_core_pr.c | 11 ++--------- drivers/target/target_core_tmr.c | 2 +- drivers/target/target_core_transport.c | 2 +- 3 files changed, 4 insertions(+), 11 deletions(-) commit 3460baa620685c20f5ee19afb6d99d26150c382c Author: Christoph Biedl Date: Wed Dec 23 16:51:57 2015 +0100 PCI: Fix minimum allocation address overwrite Commit 36e097a8a297 ("PCI: Split out bridge window override of minimum allocation address") claimed to do no functional changes but unfortunately did: The "min" variable is altered. At least the AVM A1 PCMCIA adapter was no longer detected, breaking ISDN operation. Use a local copy of "min" to restore the previous behaviour. [bhelgaas: avoid gcc "?:" extension for portability and readability] Fixes: 36e097a8a297 ("PCI: Split out bridge window override of minimum allocation address") Signed-off-by: Christoph Biedl Signed-off-by: Bjorn Helgaas CC: stable@vger.kernel.org # v3.14+ drivers/pci/bus.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit c7f5d105495a38ed09e70d825f75d9d7d5407264 Author: David S. Miller Date: Thu Nov 5 11:34:57 2015 -0500 net: Add eth_platform_get_mac_address() helper. A repeating pattern in drivers has become to use OF node information and, if not found, platform specific host information to extract the ethernet address for a given device. Currently this is done with a call to of_get_mac_address() and then some ifdef'd stuff for SPARC. Consolidate this into a portable routine, and provide the arch_get_platform_mac_address() weak function hook for all architectures to implement if they want. Signed-off-by: David S. Miller arch/sparc/kernel/idprom.c | 7 +++++++ include/linux/etherdevice.h | 3 +++ net/ethernet/eth.c | 31 +++++++++++++++++++++++++++++++ 3 files changed, 41 insertions(+) commit cdba756f5803a2f0a8bbc6605acc166dd817979e Author: Eric Dumazet Date: Wed Jan 6 06:53:50 2016 -0800 net: move ndo_features_check() close to ndo_start_xmit() TX fast path uses ndo_start_xmit(), ndo_features_check() and ndo_select_queue(). Move ndo_features_check() close to ndo_start_xmit() to increase data locality. All "struct net_device_ops" should now be using C99 initializers. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller include/linux/netdevice.h | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 03996f2064a5c5b7c1bd942794d622179acf2d61 Author: K. Y. Srinivasan Date: Wed Dec 23 13:15:51 2015 -0800 storvsc: Tighten up the interrupt path On the interrupt path, we repeatedly establish the pointer to the storvsc_device. While the compiler does inline get_in_stor_device() (and other static functions) in the call chain in the interrupt path, the compiler is repeatedly inlining the call to get_in_stor_device() each time it is invoked. The return value of get_in_stor_device() can be cached in the interrupt path since there is higher level serialization in place to ensure correct handling when the module unload races with the processing of an incoming message from the host. Optimize this code path by caching the pointer to storvsc_device and passing it as an argument. Signed-off-by: K. Y. Srinivasan Reviewed-by: Long Li Reviewed-by: Johannes Thumshirn Reviewed-by: Hannes Reinecke Tested-by: Alex Ng Signed-off-by: Martin K. Petersen drivers/scsi/storvsc_drv.c | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) commit 59635018f9b7ae8b3e304d7a5da6f628b5a1dcf6 Author: K. Y. Srinivasan Date: Wed Dec 23 13:15:50 2015 -0800 storvsc: Refactor the code in storvsc_channel_init() The function storvsc_channel_init() repeatedly interacts with the host to extract various channel properties. Refactor this code to eliminate code repetition. Signed-off-by: K. Y. Srinivasan Reviewed-by: Long Li Reviewed-by: Johannes Thumshirn Reviewed-by: Hannes Reinecke Tested-by: Alex Ng Signed-off-by: Martin K. Petersen drivers/scsi/storvsc_drv.c | 126 +++++++++++++++++---------------------------- 1 file changed, 46 insertions(+), 80 deletions(-) commit dac582417bc449b1f7f572d3f1dd9d23eec15cc9 Author: K. Y. Srinivasan Date: Wed Dec 23 13:15:49 2015 -0800 storvsc: Properly support Fibre Channel devices For FC devices managed by this driver, atttach the appropriate transport template. This will allow us to create the appropriate sysfs files for these devices. With this we can publish the wwn for both the port and the node. Signed-off-by: K. Y. Srinivasan Reviewed-by: Long Li Tested-by: Alex Ng Signed-off-by: Martin K. Petersen drivers/scsi/storvsc_drv.c | 181 +++++++++++++++++++++++++++++++++------------ 1 file changed, 134 insertions(+), 47 deletions(-) commit 83d1e8b9b51b06d79653293d0bf34ff2c61abe46 Author: K. Y. Srinivasan Date: Wed Dec 23 13:15:48 2015 -0800 storvsc: Fix a bug in the layout of the hv_fc_wwn_packet The hv_fc_wwn_packet is exchanged over vmbus. Make the definition in Linux match the Windows definition. Signed-off-by: K. Y. Srinivasan Reviewed-by: Johannes Thumshirn Reviewed-by: Long Li Reviewed-by: Hannes Reinecke Tested-by: Alex Ng Signed-off-by: Martin K. Petersen drivers/scsi/storvsc_drv.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 9e02d8caaf90077bc47e054e4c3a41736245a9f8 Author: Dan Carpenter Date: Wed Jan 6 12:59:10 2016 +0300 fsl/fman: double free on probe failure "priv" is allocated with devm_kzalloc() so freeing it here with kfree() will lead to a double free. Fixes: 3933961682a3 ('fsl/fman: Add FMan MAC driver') Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fman/mac.c | 1 - 1 file changed, 1 deletion(-) commit e06a03bdf8781d6a93a13d5bdf33d058ca498a86 Author: Dan Carpenter Date: Wed Jan 6 12:58:09 2016 +0300 fsl/fman: fix the pause_time test pause_time is unsigned so it can't be less than zero. The bug means that we allow invalid pause-times. Fixes: 57ba4c9b56d8 ('fsl/fman: Add FMan MAC support') Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fman/fman_dtsec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c56f5f1de3a6ab8ec985edbc358e1fd8d4e36a65 Author: Wilfried Weissmann Date: Sun Dec 27 20:21:19 2015 +0100 mvsas: Add SGPIO support to Marvell 94xx Add SGPIO support to Marvell 94xx. Signed-off-by: Wilfried Weissmann Reviewed-by: James Bottomley Signed-off-by: Martin K. Petersen drivers/scsi/mvsas/mv_94xx.c | 134 +++++++++++++++++++++++++++++++++++++++++++ drivers/scsi/mvsas/mv_94xx.h | 71 +++++++++++++++++++++++ drivers/scsi/mvsas/mv_init.c | 2 + drivers/scsi/mvsas/mv_sas.c | 13 +++++ drivers/scsi/mvsas/mv_sas.h | 5 ++ 5 files changed, 225 insertions(+) commit 9d9938854efcf2f21381b930bc1324e95640e0c4 Merge: ca9ea7a 3f37b26 Author: Takashi Iwai Date: Wed Jan 6 20:58:13 2016 +0100 Merge branch 'for-linus' into for-next Conflicts: drivers/gpu/drm/i915/intel_display.c sound/soc/intel/skylake/skl.h commit 5f985d88bac34e7f3b4403118eab072902a0b392 Author: Tomas Henzl Date: Wed Dec 23 14:21:47 2015 +0100 mpt3sas: A correction in unmap_resources It might happen that we try to free an already freed pointer. Reported-by: Maurizio Lombardi Signed-off-by: Tomas Henzl Acked-by: Chaitra P B Signed-off-by: Martin K. Petersen drivers/scsi/mpt3sas/mpt3sas_base.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit cca8f13b4fdaf3583e103ae7f96fda948839b265 Author: Don Brace Date: Tue Dec 22 10:36:48 2015 -0600 hpsa: Add box and bay information for enclosure devices Adding a new method to display enclosure device information. Reviewed-by: Justin Lindley Reviewed-by: Kevin Barnett Reviewed-by: Scott Teel Reviewed-by: Hannes Reinecke Signed-off-by: Don Brace Signed-off-by: Martin K. Petersen drivers/scsi/hpsa.c | 107 ++++++++++++++++++++++++++++++++++++++++++++---- drivers/scsi/hpsa_cmd.h | 13 ++++++ 2 files changed, 113 insertions(+), 7 deletions(-) commit 09371d623c9c3dc6ed7f53ec8ab01d25f0c6c697 Author: Don Brace Date: Tue Dec 22 10:36:42 2015 -0600 hpsa: Change SAS transport devices to bus 0. SAS transport places devices on bus 0 but driver was setting the bus to 3. Reviewed-by: Justin Lindley Reviewed-by: Kevin Barnett Reviewed-by: Scott Teel Reviewed-by: Matthew R. Ochs Reviewed-by: Hannes Reinecke Signed-off-by: Don Brace Signed-off-by: Martin K. Petersen drivers/scsi/hpsa.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2708f2957ce70037d3eab8a45523d4445404ecb4 Author: Don Brace Date: Tue Dec 22 10:36:36 2015 -0600 hpsa: fix path_info_show Left off some changes from Rasmus Villemoes where he changed snprintf to scnprintf. Suggested-by: Rasmus Villemoes Reviewed-by: Justin Lindley Reviewed-by: Kevin Barnett Reviewed-by: Scott Teel Reviewed-by: Rasmus Villemoes Reviewed-by: Hannes Reinecke Signed-off-by: Don Brace Signed-off-by: Martin K. Petersen drivers/scsi/hpsa.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 719255d0e29463ddba2d01a72c1e74092793103a Author: Dan Carpenter Date: Wed Jan 6 12:56:30 2016 +0300 mlxsw: core: remove an unnecessary condition We checked "err" on the lines before so we know it's zero here. These cause a static checker warning because checking known things can indicate a bug. Maybe there is a missing assignment or we are checking the wrong variable. Signed-off-by: Dan Carpenter Acked-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c406700cdf882b89cb036117414fcd8b0cc2656d Author: Jarod Wilson Date: Wed Jan 6 09:36:37 2016 -0500 ethernet/atheros/alx: sanitize buffer sizing and padding This is based on the work done by Przemek Rudy in bug 70761 at bugzilla.kernel.org, but with some work done to disentagle and clarify things a bit. Similar to Przemek's work and other drivers, we're adding a padding of 16 here, but we're also disentangling mtu size calculations from max buffer size calculations a bit, and adding ETH_HLEN to the value written into ALX_MTU. Hopefully, with a bit more consistency and clarity, things behave better here. Sadly, I can only test in my alx-driven E2200, which worked just fine before this patch. In comment #58 of bug 70761, Eugene A. Shatokhin reports that this patch does help considerably for a ROSA Linux user of his with an AR8162 network adapter when patched into a 4.1.x-based kernel, with several days of normal operation where wired network previously wasn't usable without setting MTU to 9000 as a work-around. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=70761 CC: "Eugene A. Shatokhin" CC: Przemek Rudy CC: Jay Cliburn CC: Chris Snook CC: netdev@vger.kernel.org Signed-off-by: Jarod Wilson Signed-off-by: David S. Miller drivers/net/ethernet/atheros/alx/hw.c | 10 +++++----- drivers/net/ethernet/atheros/alx/hw.h | 9 ++++++--- drivers/net/ethernet/atheros/alx/main.c | 7 +++---- 3 files changed, 14 insertions(+), 12 deletions(-) commit f637941b14055d5479bb43fc776e88a52cad33c9 Merge: 00ce3a1 fc1273a Author: David S. Miller Date: Wed Jan 6 14:42:42 2016 -0500 Merge branch 'mlxsw-vlan_filtering-offload' Jiri Pirko says: ==================== mlxsw: add offload support for vlan_filtering option Elad says: This patch adds SWITCHDEV_ATTR_ID_BRIDGE_VLAN_FILTERING port attribute. When a bridge is offloaded to hardware, the hardware can learn if the bridge is .1Q bridge (VLAN-aware) or not VLAN aware bridge. In order to toggle the mode a user can use sysfs: $ echo 1 > /sys/devices/virtual/net/br0/bridge/vlan_filtering or via iproute2: $ ip link set dev br0 type bridge vlan_filtering 1 --- v1->v2: small fix in patch #1 ==================== Signed-off-by: David S. Miller commit fc1273afb257663de034260f5b5fbbd8d79d6308 Author: Elad Raz Date: Wed Jan 6 13:01:11 2016 +0100 mlxsw: Remember untagged VLANs When a vlan is been configured, remeber the untagged mode of the vlan. When displaying the list of configured VLANs, show the untagged attribute. Signed-off-by: Elad Raz Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 8 ++++++++ drivers/net/ethernet/mellanox/mlxsw/spectrum.h | 1 + drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 9 ++++++++- 3 files changed, 17 insertions(+), 1 deletion(-) commit 26a4ea0f454c6714aeb2b1e295c1f8d76de94013 Author: Elad Raz Date: Wed Jan 6 13:01:10 2016 +0100 mlxsw: Disable vlan_filtering for non .1D bridge When a port is bridged, the bridge must be vlan aware bridge (.1Q) or the bridging should be on top of VLAN interfaces (.1D bridge). Signed-off-by: Elad Raz Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller .../ethernet/mellanox/mlxsw/spectrum_switchdev.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit e4a13055077af25d310f61f2b52a9bdfaba45eb6 Author: Elad Raz Date: Wed Jan 6 13:01:09 2016 +0100 mlxsw: Renaming local variable names for consistency Signed-off-by: Elad Raz Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 29edf44f858a3f923c16f9f5b1aa790e44b8feb9 Author: Elad Raz Date: Wed Jan 6 13:01:08 2016 +0100 mlxsw: Fixing vlans init range Initialize VLANs 0..4095 (Remove init for VID 4096). Signed-off-by: Elad Raz Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 404cdbf0894a0707dd19179d2e21a3ab37f33f54 Author: Elad Raz Date: Wed Jan 6 13:01:07 2016 +0100 bridge: add vlan filtering change for new bridged device Notifying hardware about newly bridged port vlan-aware changes. Signed-off-by: Elad Raz Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller net/bridge/br_vlan.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 6b72a770202a0ad843312436dd50ed4690d7cc65 Author: Elad Raz Date: Wed Jan 6 13:01:06 2016 +0100 bridge: add vlan filtering change notification Notifying hardware about bridge vlan-aware changes. Signed-off-by: Elad Raz Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller net/bridge/br_vlan.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) commit 81435c33e062cbd4508da6f64655cb0967eeb65f Author: Elad Raz Date: Wed Jan 6 13:01:05 2016 +0100 switchdev: add bridge vlan_filtering attribute Adding vlan_filtering attribute to allow hardware vendor to support vlan-aware bridges. Vlan_filtering is a per-bridge attribute. Signed-off-by: Elad Raz Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller include/net/switchdev.h | 2 ++ 1 file changed, 2 insertions(+) commit 08474cc1e6ea71237cab7e4a651a623c9dea1084 Author: Elad Raz Date: Wed Jan 6 13:01:04 2016 +0100 bridge: Propagate vlan add failure to user Disallow adding interfaces to a bridge when vlan filtering operation failed. Send the failure code to the user. Signed-off-by: Elad Raz Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller net/bridge/br_if.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit a1c6f05733c27ba7067c06c095f49e8732a5ae17 Author: Dmitry Monakhov Date: Mon Apr 13 16:31:37 2015 +0400 fs: use block_device name vsprintf helper Signed-off-by: Dmitry Monakhov Signed-off-by: Al Viro fs/btrfs/super.c | 4 +--- fs/buffer.c | 21 ++++++--------------- fs/ext2/xattr.c | 6 ++---- fs/ext4/page-io.c | 5 ++--- fs/ext4/xattr.c | 6 ++---- fs/f2fs/debug.c | 6 ++---- fs/gfs2/ops_fstype.c | 4 +--- fs/jbd2/transaction.c | 6 ++---- fs/minix/itree_v1.c | 9 ++++----- fs/minix/itree_v2.c | 9 ++++----- fs/nilfs2/super.c | 6 ++---- fs/reiserfs/journal.c | 24 ++++++++++-------------- fs/reiserfs/prints.c | 9 +++------ fs/reiserfs/procfs.c | 5 ++--- fs/squashfs/super.c | 7 +++---- fs/super.c | 4 +--- fs/xfs/xfs_buf.c | 8 ++------ 17 files changed, 49 insertions(+), 90 deletions(-) commit 1031bc589228ca35b3b6fb3dfe4656c0da5fbeb4 Author: Dmitry Monakhov Date: Mon Apr 13 16:31:35 2015 +0400 lib/vsprintf: add %*pg format specifier This allow to directly print block_device name. Currently one should use bdevname() with temporal char buffer. This is very ineffective because bloat stack usage for deep IO call-traces Example: %pg -> sda, sda1 or loop0p1 [AV: fixed a minor braino - position updates should not be dependent upon having reached the of buffer] Signed-off-by: Dmitry Monakhov Signed-off-by: Al Viro Documentation/printk-formats.txt | 6 ++++++ lib/vsprintf.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) commit 83a40ce993cda0757b102389e38446e79a2cc172 Author: Charles Keepax Date: Wed Jan 6 12:33:19 2016 +0000 ASoC: wm_adsp: Pull data through compressed read Data is read in blocks of up to one fragment is size from the circular buffer on the DSP and is re-packed to remove the padding byte that exists in the DSP memory map. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm5110.c | 1 + sound/soc/codecs/wm_adsp.c | 138 +++++++++++++++++++++++++++++++++++++++++++++ sound/soc/codecs/wm_adsp.h | 2 + 3 files changed, 141 insertions(+) commit 565ace464105cb9623cbf4eb9549d4b0c24166c9 Author: Charles Keepax Date: Wed Jan 6 12:33:18 2016 +0000 ASoC: wm_adsp: Add a handler for the compressed IRQ Here support is added for responding to DSP IRQs that are used to indicate data being available on the DSP. The idea is that we check the amount of data available upon receipt of an IRQ and on subsequent calls to the pointer callback we recheck once less than one fragment is available (to avoid excessive SPI traffic), if there is truely less than one fragment available we ack the last IRQ and wait for a new one. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm5110.c | 27 +++++++ sound/soc/codecs/wm_adsp.c | 188 +++++++++++++++++++++++++++++++++++++++++++++ sound/soc/codecs/wm_adsp.h | 3 + 3 files changed, 218 insertions(+) commit 424081f3c881ca3aef50cfa571e91863c10d952a Author: Dmitry Monakhov Date: Mon Apr 13 16:31:34 2015 +0400 fs: use gendisk->disk_name where possible gendisk with part==0 is obviously gendisk->disk_name. Signed-off-by: Dmitry Monakhov Signed-off-by: Al Viro fs/block_dev.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) commit 24338722cfa23fdf4e08c6189a11f7e3a902d86a Author: Charles Keepax Date: Wed Jan 6 15:15:37 2016 +0000 ASoC: wm5110: Fix PGA clear when disabling DRE We don't want to use a bypassed write in wm5110_clear_pga_volume, we might disable the DRE whilst the CODEC is powered down. A normal regmap_write will always go to the hardware (when not on cache_only) even if the written value matches the cache. As using a normal write will still achieve the desired behaviour of bring the cache and hardware in sync, this patch updates the function to use a normal write, which avoids issues when the CODEC is powered down. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown Cc: stable@vger.kernel.org sound/soc/codecs/wm5110.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 13331a551ab4df87f7a027d2cab392da96aba1de Author: Trond Myklebust Date: Wed Jan 6 08:57:06 2016 -0500 SUNRPC: Fixup socket wait for memory We're seeing hangs in the NFS client code, with loops of the form: RPC: 30317 xmit incomplete (267368 left of 524448) RPC: 30317 call_status (status -11) RPC: 30317 call_transmit (status 0) RPC: 30317 xprt_prepare_transmit RPC: 30317 xprt_transmit(524448) RPC: xs_tcp_send_request(267368) = -11 RPC: 30317 xmit incomplete (267368 left of 524448) RPC: 30317 call_status (status -11) RPC: 30317 call_transmit (status 0) RPC: 30317 xprt_prepare_transmit RPC: 30317 xprt_transmit(524448) Turns out commit ceb5d58b2170 ("net: fix sock_wake_async() rcu protection") moved SOCKWQ_ASYNC_NOSPACE out of sock->flags and into sk->sk_wq->flags, however it never tried to fix up the code in net/sunrpc. The new idiom is to use the flags in the RCU protected struct socket_wq. While we're at it, clear out the now redundant places where we set/clear SOCKWQ_ASYNC_NOSPACE and SOCK_NOSPACE. In principle, sk_stream_wait_memory() is supposed to set these for us, so we only need to clear them in the particular case of our ->write_space() callback. Fixes: ceb5d58b2170 ("net: fix sock_wake_async() rcu protection") Cc: Eric Dumazet Cc: stable@vger.kernel.org # 4.4 Signed-off-by: Trond Myklebust net/sunrpc/xprtsock.c | 49 +++++++++++++++++++++---------------------------- 1 file changed, 21 insertions(+), 28 deletions(-) commit 2a803c4db615d85126c5c7afd5849a3cfde71422 Author: Mark Rutland Date: Wed Jan 6 11:05:27 2016 +0000 arm64: head.S: use memset to clear BSS Currently we use an open-coded memzero to clear the BSS. As it is a trivial implementation, it is sub-optimal. Our optimised memset doesn't use the stack, is position-independent, and for the memzero case can use of DC ZVA to clear large blocks efficiently. In __mmap_switched the MMU is on and there are no live caller-saved registers, so we can safely call an uninstrumented memset. This patch changes __mmap_switched to use memset when clearing the BSS. We use the __pi_memset alias so as to avoid any instrumentation in all kernel configurations. Cc: Catalin Marinas Cc: Marc Zyngier Reviewed-by: Ard Biesheuvel Signed-off-by: Mark Rutland Signed-off-by: Will Deacon arch/arm64/kernel/head.S | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit b523e185bba36164ca48a190f5468c140d815414 Author: Ard Biesheuvel Date: Wed Dec 23 10:29:28 2015 +0100 efi: stub: define DISABLE_BRANCH_PROFILING for all architectures This moves the DISABLE_BRANCH_PROFILING define from the x86 specific to the general CFLAGS definition for the stub. This fixes build errors when building for arm64 with CONFIG_PROFILE_ALL_BRANCHES_ENABLED. Reviewed-by: Matt Fleming Reported-by: Will Deacon Signed-off-by: Ard Biesheuvel Signed-off-by: Will Deacon drivers/firmware/efi/libstub/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ee03353bc04f8e460cc4e3da80d9721d9ecb89f1 Author: Mark Rutland Date: Tue Jan 5 17:33:34 2016 +0000 arm64: entry: remove pointless SPSR mode check In work_pending, we may skip work if the stacked SPSR value represents anything other than an EL0 context. We then immediately invoke the kernel_exit 0 macro as part of ret_to_user, assuming a return to EL0. This is somewhat confusing. We use work_pending as part of the ret_to_user/ret_fast_syscall state machine. We only use ret_fast_syscall in the return from an SVC issued from EL0. We use ret_to_user for return from EL0 exception handlers and also for return from ret_from_fork in the case the task was not a kernel thread (i.e. it is a user task). Thus in all cases the stacked SPSR value must represent an EL0 context, and the check is redundant. This patch removes it, along with the now unused no_work_pending label. Cc: Chris Metcalf Acked-by: Catalin Marinas Signed-off-by: Mark Rutland Signed-off-by: Will Deacon arch/arm64/kernel/entry.S | 4 ---- 1 file changed, 4 deletions(-) commit 14de6c44d149c68df1800ded42bbab51485ef67a Author: Maarten Lankhorst Date: Mon Jan 4 12:53:20 2016 +0100 drm/atomic: Remove drm_atomic_connectors_for_crtc. Now that connector_mask is reliable there's no need for this function any more. Signed-off-by: Maarten Lankhorst Link: http://patchwork.freedesktop.org/patch/msgid/1451908400-25147-6-git-send-email-maarten.lankhorst@linux.intel.com Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic.c | 30 ------------------------------ drivers/gpu/drm/drm_atomic_helper.c | 10 ++++------ drivers/gpu/drm/vc4/vc4_crtc.c | 2 +- include/drm/drm_atomic.h | 4 ---- 4 files changed, 5 insertions(+), 41 deletions(-) commit 2aa974c92b9d0bb092a8f308d83dfe3c69041b01 Author: Maarten Lankhorst Date: Wed Jan 6 14:53:25 2016 +0100 drm/i915: Update connector_mask during readout, v2. drm/i915: Update connector_mask during readout, v2. The connector_mask may be used any time during the non-atomic .crtc_disable which is called before the full atomic state is set up and needs to be accurate for that reason. Changes since v1: - Update connector_mask in readout_hw_state and add a comment. Signed-off-by: Maarten Lankhorst Link: http://patchwork.freedesktop.org/patch/msgid/568D1C55.8010001@linux.intel.com Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) commit 8cf60cf238ce1bea38593321e6ea8561fc32e38d Author: Chin-Ran Lo Date: Wed Jan 6 06:34:38 2016 -0800 Bluetooth: btmrvl: don't send data to firmware while processing suspend Usually when driver sends data to firmware it receives TX_DONE (DN_LD_HOST_INT_STATUS) interrupt from firmware right away. It's also observed that some times the fireware could delay sending DN_LD_HOST_INT_STATUS interrupt. If driver sends data to firmware during suspend processing and the TX_DONE interrupt is delayed, it may come back at wrong time when SDIO host driver is in the middle of suspending. Block any data from stack while suspending. Also skip sending data that are already in driver tx_queue. Don't purge the skb queue on suspend to avoid intermittent music after system resumes from S3. Signed-off-by: Chin-Ran Lo Signed-off-by: Amitkumar Karwar Signed-off-by: Marcel Holtmann drivers/bluetooth/btmrvl_drv.h | 1 + drivers/bluetooth/btmrvl_main.c | 11 +++++++++-- drivers/bluetooth/btmrvl_sdio.c | 3 ++- 3 files changed, 12 insertions(+), 3 deletions(-) commit d716892f0827dd29ae2488ab3005dfc84ff8fed0 Author: Chin-Ran Lo Date: Wed Jan 6 06:34:37 2016 -0800 Bluetooth: btmrvl: max out host sleep parameter 'gap' For gpio=0xff (wake up host through SDIO interface) case, gap=0xff means no delay (same as gap=0) for incoming data packet to be sent to host after host sleep is activated. Change it to the maximum delay to reduce the chance that RX interrupt could be delivered while host controller suspends. Signed-off-by: Chin-Ran Lo Signed-off-by: Amitkumar Karwar Signed-off-by: Marcel Holtmann drivers/bluetooth/btmrvl_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 787b306cf3296bdce5c8559206b237c1ae107484 Author: Johannes Berg Date: Wed Jan 6 14:38:40 2016 +0100 Bluetooth: avoid rebuilding hci_sock all the time Instead, allow using string formatting with send_monitor_note() and access init_utsname(). Signed-off-by: Johannes Berg Signed-off-by: Marcel Holtmann net/bluetooth/hci_sock.c | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) commit ccec5ee302d5cbd0273eb1c79bc935a8e3f873c6 Author: Mateusz Guzik Date: Wed Jan 6 06:41:53 2016 +0100 poll: plug an unused argument to do_poll Number of fds is already known based on passed list. No functional changes. Signed-off-by: Mateusz Guzik Signed-off-by: Al Viro fs/select.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 8f1d57c172482c9a1568ec647fc5c2e64c6c6a57 Author: Al Viro Date: Sat Jan 2 15:06:19 2016 -0500 amdkfd: don't open-code memdup_user() Signed-off-by: Al Viro drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 33 +++++++------------------------- 1 file changed, 7 insertions(+), 26 deletions(-) commit abb0f6a79fe8eba7982b73313b8623259d78c3f6 Author: Al Viro Date: Sat Jan 2 14:59:38 2016 -0500 cdrom: don't open-code memdup_user() Signed-off-by: Al Viro drivers/cdrom/cdrom.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit 820351f05be93623c6e71b5d618f90f0deebc134 Author: Al Viro Date: Sat Jan 2 14:58:07 2016 -0500 rsxx: don't open-code memdup_user() Signed-off-by: Al Viro drivers/block/rsxx/core.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit 8ed6010d50ee010961ccecb4507470b244928603 Author: Al Viro Date: Sat Jan 2 14:56:33 2016 -0500 mtip32xx: don't open-code memdup_user() [folded a fix by Dan Carpenter] Signed-off-by: Al Viro drivers/block/mtip32xx/mtip32xx.c | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) commit ed94add00e290e675c36cef6767d7d1f51a02f28 Author: Dan Carpenter Date: Mon Jan 4 16:10:24 2016 +0300 drm/etnaviv: unlock on error in etnaviv_gem_get_iova() We have to drop a lock before returning -ENOMEM here. Fixes: a8c21a5451d8 ('drm/etnaviv: add initial etnaviv DRM driver') Signed-off-by: Dan Carpenter Acked-by: Russell King drivers/gpu/drm/etnaviv/etnaviv_gem.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 3104fb3dd45bb47ff1382d1c079c251710ddcae3 Merge: ee9a7d2 984cf35 Author: Ingo Molnar Date: Wed Jan 6 11:41:48 2016 +0100 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: - Adding transitivity uniformly to rcu_node structure ->lock acquisitions. (This is implemented by the first two commits on top of v4.4-rc2 due to the pervasive nature of this change.) - Documentation updates, including RCU requirements. - Expedited grace-period changes. - Miscellaneous fixes. - Linked-list fixes, courtesy of KTSAN. - Torture-test updates. - Late-breaking fix to sysrq-generated crash. Signed-off-by: Ingo Molnar commit 8012c983dd0cea8f5be5a02ca75fd8d437227a10 Author: Dan Carpenter Date: Wed Jan 6 12:38:41 2016 +0300 ASoC: rsnd: precedence error in rsnd_ssiu_init() The bitwise OR has higher precedence than ?: so the val2 was always set to 0x2. Fixes: b4c83b171557 ('ASoC: rsnd: add Multi channel support') Signed-off-by: Dan Carpenter Signed-off-by: Mark Brown sound/soc/sh/rcar/ssiu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d3b421cd07e4c0d4d6c0bbd55ca169c054fc081d Author: Sekhar Nori Date: Tue Dec 15 19:56:12 2015 +0530 irqchip/omap-intc: Add support for spurious irq handling Under some conditions, irq sorting procedure used by INTC can go wrong resulting in a spurious irq getting reported. If this condition is not handled, it results in endless stream of: unexpected IRQ trap at vector 00 messages from ack_bad_irq() Handle the spurious interrupt condition in omap-intc driver to prevent this. Measurements using kernel function profiler on AM335x EVM running at 720MHz show that after this patch omap_intc_handle_irq() takes about 37.4us against 34us before this patch. Signed-off-by: Sekhar Nori Acked-by: Tony Lindgren Cc: John Ogness Cc: Felipe Balbi Cc: Jason Cooper Cc: Marc Zyngier Link: http://lkml.kernel.org/r/9c78a6db02ac55f7af7371b417b6e414d2c3095b.1450188128.git.nsekhar@ti.com Cc: stable@vger.kernel.org Signed-off-by: Thomas Gleixner drivers/irqchip/irq-omap-intc.c | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) commit 9cc2617de5b9222abb39cd02e90d57dfea99c6d7 Author: Vince Weaver Date: Wed Dec 9 11:34:45 2015 -0500 perf/x86/amd: Remove l1-dcache-stores event for AMD This is a long standing bug with the l1-dcache-stores generic event on AMD machines. My perf_event testsuite has been complaining about this for years and I'm finally getting around to trying to get it fixed. The data_cache_refills:system event does not make sense for l1-dcache-stores. Maybe this was a typo and it was meant to be for l1-dcache-store-misses? In any case, the values returned are nowhere near correct for l1-dcache-stores and in fact the umask values for the event have completely changed with fam15h so it makes even less sense than ever. So just remove it. Signed-off-by: Vince Weaver Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/alpine.DEB.2.20.1512091134350.24311@vincent-weaver-1.umelst.maine.edu Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_amd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 77af0037de0a280eeabc632890de871f062ea7be Author: Harish Chegondi Date: Mon Dec 7 14:32:32 2015 -0800 perf/x86/intel/uncore: Add Knights Landing uncore PMU support Knights Landing uncore performance monitoring (perfmon) is derived from Haswell-EP uncore perfmon with several differences. One notable difference is in PCI device IDs. Knights Landing uses common PCI device ID for multiple instances of an uncore PMU device type. In Haswell-EP, each instance of a PMU device type has a unique device ID. Knights Landing uncore components that have performance monitoring units are UBOX, CHA, EDC, MC, M2PCIe, IRP and PCU. Perfmon registers in EDC, MC, IRP, and M2PCIe reside in the PCIe configuration space. Perfmon registers in UBOX, CHA and PCU are accessed via the MSR interface. For more details, please refer to the public document: https://software.intel.com/sites/default/files/managed/15/8d/IntelXeonPhi%E2%84%A2x200ProcessorPerformanceMonitoringReferenceManual_Volume1_Registers_v0%206.pdf Signed-off-by: Harish Chegondi Signed-off-by: Peter Zijlstra (Intel) Cc: Andi Kleen Cc: Arnaldo Carvalho de Melo Cc: Harish Chegondi Cc: Jiri Olsa Cc: Kan Liang Cc: Linus Torvalds Cc: Lukasz Anaczkowski Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Link: http://lkml.kernel.org/r/8ac513981264c3eb10343a3f523f19cc5a2d12fe.1449470704.git.harish.chegondi@intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_uncore.c | 15 + arch/x86/kernel/cpu/perf_event_intel_uncore.h | 3 + arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c | 2 +- .../x86/kernel/cpu/perf_event_intel_uncore_snbep.c | 480 +++++++++++++++++++++ 4 files changed, 499 insertions(+), 1 deletion(-) commit dae25530a44ad9e6523495ebc8b37bb0a1640490 Author: Harish Chegondi Date: Mon Dec 7 14:32:31 2015 -0800 perf/x86/intel/uncore: Remove hard coding of PMON box control MSR offset Call uncore_pci_box_ctl() function to get the PMON box control MSR offset instead of hard coding the offset. This would allow us to use this snbep_uncore_pci_init_box() function for other PCI PMON devices whose box control MSR offset is different from SNBEP_PCI_PMON_BOX_CTL. Signed-off-by: Harish Chegondi Signed-off-by: Peter Zijlstra (Intel) Cc: Andi Kleen Cc: Arnaldo Carvalho de Melo Cc: Harish Chegondi Cc: Jiri Olsa Cc: Kan Liang Cc: Linus Torvalds Cc: Lukasz Anaczkowski Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Link: http://lkml.kernel.org/r/872e8ef16cfc38e5ff3b45fac1094e6f1722e4ad.1449470704.git.harish.chegondi@intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_uncore_snbep.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 1e7b93906249a7ccca730be03168ace15f95709e Author: Harish Chegondi Date: Mon Dec 7 14:28:18 2015 -0800 perf/x86/intel: Add perf core PMU support for Intel Knights Landing Knights Landing core is based on Silvermont core with several differences. Like Silvermont, Knights Landing has 8 pairs of LBR MSRs. However, the LBR MSRs addresses match those of the Xeon cores' first 8 pairs of LBR MSRs Unlike Silvermont, Knights Landing supports hyperthreading. Knights Landing offcore response events config register mask is different from that of the Silvermont. This patch was developed based on a patch from Andi Kleen. For more details, please refer to the public document: https://software.intel.com/sites/default/files/managed/15/8d/IntelXeonPhi%E2%84%A2x200ProcessorPerformanceMonitoringReferenceManual_Volume1_Registers_v0%206.pdf Signed-off-by: Harish Chegondi Signed-off-by: Peter Zijlstra (Intel) Cc: Andi Kleen Cc: Arnaldo Carvalho de Melo Cc: Harish Chegondi Cc: Jiri Olsa Cc: Kan Liang Cc: Linus Torvalds Cc: Lukasz Anaczkowski Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Link: http://lkml.kernel.org/r/d14593c7311f78c93c9cf6b006be843777c5ad5c.1449517401.git.harish.chegondi@intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event.h | 2 + arch/x86/kernel/cpu/perf_event_intel.c | 62 ++++++++++++++++++++++++++++++ arch/x86/kernel/cpu/perf_event_intel_lbr.c | 14 +++++++ 3 files changed, 78 insertions(+) commit d6980ef32570e2a26e05b1183788f4b70f1f27d0 Author: Kan Liang Date: Thu Dec 3 16:00:11 2015 -0500 perf/x86/intel/uncore: Add Broadwell-EP uncore support The uncore subsystem for Broadwell-EP is similar to Haswell-EP. There are some differences in pci device IDs, box number and constraints. This patch extends the Broadwell-DE codes to support Broadwell-EP. Signed-off-by: Kan Liang Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Link: http://lkml.kernel.org/r/1449176411-9499-1-git-send-email-kan.liang@intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_uncore.c | 2 + .../x86/kernel/cpu/perf_event_intel_uncore_snbep.c | 152 ++++++++++++++++++++- 2 files changed, 149 insertions(+), 5 deletions(-) commit d3bcd64bbc35076a80c56918c905ddb167d097d8 Author: Huang Rui Date: Fri Dec 4 18:07:41 2015 +0800 perf/x86/rapl: Use unified perf_event_sysfs_show instead of special interface Actually, rapl_sysfs_show is a duplicate of perf_event_sysfs_show. We prefer to use the unified interface. Signed-off-by: Huang Rui Signed-off-by: Peter Zijlstra (Intel) Cc: Andy Lutomirski Cc: Arnaldo Carvalho de Melo Cc: Arnaldo Carvalho de Melo Cc: Borislav Petkov Cc: Dasaratharaman Chandramouli Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Robert Richter Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Link: http://lkml.kernel.org/r/1449223661-2437-1-git-send-email-ray.huang@amd.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_rapl.c | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) commit 673d188ba5b1cef6f9a41a5a18b490b2831c3ea5 Author: Stephane Eranian Date: Thu Dec 3 21:03:10 2015 +0100 perf/x86: Enable cycles:pp for Intel Atom This patch updates the PEBS support for Intel Atom to provide an alias for the cycles:pp event used by perf record/top by default nowadays. On Atom, only INST_RETIRED:ANY supports PEBS, so we use this event instead with a large cmask to count cycles. Given that Core2 has the same issue, we use the intel_pebs_aliases_core2() function for Atom as well. Signed-off-by: Stephane Eranian Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Vince Weaver Cc: kan.liang@intel.com Link: http://lkml.kernel.org/r/1449172990-30183-3-git-send-email-eranian@google.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel.c | 1 + arch/x86/kernel/cpu/perf_event_intel_ds.c | 2 ++ 2 files changed, 3 insertions(+) commit 1424a09a9e1839285e948d4ea9fdfca26c9a2086 Author: Stephane Eranian Date: Thu Dec 3 23:33:18 2015 +0100 perf/x86: fix PEBS issues on Intel Atom/Core2 This patch fixes broken PEBS support on Intel Atom and Core2 due to wrong pointer arithmetic in intel_pmu_drain_pebs_core(). The get_next_pebs_record_by_bit() was called on PEBS format fmt0 which does not use the pebs_record_nhm layout. Signed-off-by: Stephane Eranian Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Vince Weaver Cc: kan.liang@intel.com Fixes: 21509084f999 ("perf/x86/intel: Handle multiple records in the PEBS buffer") Link: http://lkml.kernel.org/r/1449182000-31524-3-git-send-email-eranian@google.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_ds.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 6fc2e83077b05a061afe9b24f2fdff7a0434eb67 Author: Stephane Eranian Date: Thu Dec 3 23:33:17 2015 +0100 perf/x86: Fix LBR related crashes on Intel Atom This patches fixes the LBR kernel crashes on Intel Atom. The kernel was assuming that if the CPU supports 64-bit format LBR, then it has an LBR_SELECT MSR. Atom uses 64-bit LBR format but does not have LBR_SELECT. That was causing NULL pointer dereferences in a couple of places. Signed-off-by: Stephane Eranian Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Vince Weaver Cc: kan.liang@intel.com Fixes: 96f3eda67fcf ("perf/x86/intel: Fix static checker warning in lbr enable") Link: http://lkml.kernel.org/r/1449182000-31524-2-git-send-email-eranian@google.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_lbr.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 61b87cae6361ea6af161c1ffa549898892707b19 Author: Stephane Eranian Date: Mon Dec 7 20:33:25 2015 +0100 perf/x86: Fix filter_events() bug with event mappings This patch fixes a bug in the filter_events() function. The patch fixes the bug whereby if some mappings did not exist, e.g., STALLED_CYCLES_FRONTEND, then any event after it in the attrs array would disappear from the published list of events in /sys/devices/cpu/events. This could be verified easily on any system post SNB (which do not publish STALLED_CYCLES_FRONTEND): $ ./perf stat -e cycles,ref-cycles true Performance counter stats for 'true': 1,217,348 cycles ref-cycles The problem is that in filter_events() there is an assumption that the argument (attrs) is organized in increasing continuous event indexes related to the event_map(). But if we remove the non-supported events by shifing the position in the array, then the lookup x86_pmu.event_map() needs to compensate for it, otherwise we are looking up the wrong index. This patch corrects this problem by compensating for the deleted events and with that ref-cycles reappears (here shown on Haswell): $ perf stat -e ref-cycles,cycles true Performance counter stats for 'true': 4,525,910 ref-cycles 1,064,920 cycles 0.002943888 seconds time elapsed Signed-off-by: Stephane Eranian Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Vince Weaver Cc: jolsa@kernel.org Cc: kan.liang@intel.com Fixes: 8300daa26755 ("perf/x86: Filter out undefined events from sysfs events attribute") Link: http://lkml.kernel.org/r/1449516805-6637-1-git-send-email-eranian@google.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 724697648eec540b2a7561089b1c87cb33e6a0eb Author: Andi Kleen Date: Fri Dec 4 03:50:52 2015 -0800 perf/x86: Use INST_RETIRED.PREC_DIST for cycles: ppp Add a new 'three-p' precise level, that uses INST_RETIRED.PREC_DIST as base. The basic mechanism of abusing the inverse cmask to get all cycles works the same as before. PREC_DIST is available on Sandy Bridge or later. It had some problems on Sandy Bridge, so we only use it on IvyBridge and later. I tested it on Broadwell and Skylake. PREC_DIST has special support for avoiding shadow effects, which can give better results compare to UOPS_RETIRED. The drawback is that PREC_DIST can only schedule on counter 1, but that is ok for cycle sampling, as there is normally no need to do multiple cycle sampling runs in parallel. It is still possible to run perf top in parallel, as that doesn't use precise mode. Also of course the multiplexing can still allow parallel operation. :pp stays with the previous event. Example: Sample a loop with 10 sqrt with old cycles:pp 0.14 │10: sqrtps %xmm1,%xmm0 <-------------- 9.13 │ sqrtps %xmm1,%xmm0 11.58 │ sqrtps %xmm1,%xmm0 11.51 │ sqrtps %xmm1,%xmm0 6.27 │ sqrtps %xmm1,%xmm0 10.38 │ sqrtps %xmm1,%xmm0 12.20 │ sqrtps %xmm1,%xmm0 12.74 │ sqrtps %xmm1,%xmm0 5.40 │ sqrtps %xmm1,%xmm0 10.14 │ sqrtps %xmm1,%xmm0 10.51 │ ↑ jmp 10 We expect all 10 sqrt to get roughly the sample number of samples. But you can see that the instruction directly after the JMP is systematically underestimated in the result, due to sampling shadow effects. With the new PREC_DIST based sampling this problem is gone and all instructions show up roughly evenly: 9.51 │10: sqrtps %xmm1,%xmm0 11.74 │ sqrtps %xmm1,%xmm0 11.84 │ sqrtps %xmm1,%xmm0 6.05 │ sqrtps %xmm1,%xmm0 10.46 │ sqrtps %xmm1,%xmm0 12.25 │ sqrtps %xmm1,%xmm0 12.18 │ sqrtps %xmm1,%xmm0 5.26 │ sqrtps %xmm1,%xmm0 10.13 │ sqrtps %xmm1,%xmm0 10.43 │ sqrtps %xmm1,%xmm0 0.16 │ ↑ jmp 10 Even with PREC_DIST there is still sampling skid and the result is not completely even, but systematic shadow effects are significantly reduced. The improvements are mainly expected to make a difference in high IPC code. With low IPC it should be similar. Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Cc: hpa@zytor.com Link: http://lkml.kernel.org/r/1448929689-13771-2-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event.c | 3 ++ arch/x86/kernel/cpu/perf_event.h | 3 +- arch/x86/kernel/cpu/perf_event_intel.c | 50 ++++++++++++++++++++++++++++--- arch/x86/kernel/cpu/perf_event_intel_ds.c | 6 ++++ 4 files changed, 57 insertions(+), 5 deletions(-) commit 442f5c74cbeaf54939980397ece59360c0a824e9 Author: Andi Kleen Date: Fri Dec 4 03:50:32 2015 -0800 perf/x86: Use INST_RETIRED.TOTAL_CYCLES_PS for cycles:pp for Skylake I added UOPS_RETIRED.ALL by mistake to the Skylake PEBS event list for cycles:pp. But the event is not documented for Skylake, and has some issues. The recommended replacement for cycles:pp is to use INST_RETIRED.ANY+pebs as a base, similar to what CPUs before Sandy Bridge did. This new event is called INST_RETIRED.TOTAL_CYCLES_PS. The event is not really new, but has been already used by perf before Sandy Bridge for the original cycles:p Note the SDM doesn't document that event either, but it's being documented in the latest version of the event list on: https://download.01.org/perfmon/SKL This patch does: - Remove UOPS_RETIRED.ALL from the Skylake PEBS event list - Add INST_RETIRED.ANY to the Skylake PEBS event list, and an table entry to allow cmask=16,inv=1 for cycles:pp - We don't need an extra entry for the base INST_RETIRED event, because it is already covered by the catch-all PEBS table entry. - Switch Skylake to use the Core2 PEBS alias (which is INST_RETIRED.TOTAL_CYCLES_PS) Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Cc: hpa@zytor.com Link: http://lkml.kernel.org/r/1448929689-13771-1-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel.c | 2 +- arch/x86/kernel/cpu/perf_event_intel_ds.c | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) commit 01330d7288e0050c5aaabc558059ff91589e67cd Author: Andi Kleen Date: Thu Dec 3 13:22:20 2015 -0800 perf/x86: Allow zero PEBS status with only single active event Normally we drop PEBS events with a zero status field. But when there is only a single PEBS event active we can assume the PEBS record is for that event. The PEBS buffer is always flushed when PEBS events are disabled, so there is no risk of mishandling state PEBS records this way. Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Link: http://lkml.kernel.org/r/1449177740-5422-2-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_ds.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 957ea1fdbcdb909e1540f06f06f1a9ce6e696efa Author: Andi Kleen Date: Thu Dec 3 13:22:19 2015 -0800 perf/x86: Remove warning for zero PEBS status The recent commit: 75f80859b130 ("perf/x86/intel/pebs: Robustify PEBS buffer drain") causes lots of warnings on different CPUs before Skylake when running PEBS intensive workloads. They can have a zero status field in the PEBS record when PEBS is racing with clearing of GLOBAl_STATUS. This also can cause hangs (it seems there are still problems with printk in NMI). Disable the warning, but still ignore the record. Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Link: http://lkml.kernel.org/r/1449177740-5422-1-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_ds.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 7b648018f628eee73450b71dc68ebb3c3865465e Author: Peter Zijlstra Date: Thu Dec 3 18:35:21 2015 +0100 perf/core: Collapse more IPI loops This patch collapses the two 'hard' cases, which are perf_event_{dis,en}able(). I cannot seem to convince myself the current code is correct. So starting with perf_event_disable(); we don't strictly need to test for event->state == ACTIVE, ctx->is_active is enough. If the event is not scheduled while the ctx is, __perf_event_disable() still does the right thing. Its a little less efficient to IPI in that case, over-all simpler. For perf_event_enable(); the same goes, but I think that's actually broken in its current form. The current condition is: ctx->is_active && event->state == OFF, that means it doesn't do anything when !ctx->active && event->state == OFF. This is wrong, it should still mark the event INACTIVE in that case, otherwise we'll still not try and schedule the event once the context becomes active again. This patch implements the two function using the new event_function_call() and does away with the tricky event->state tests. Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar kernel/events/core.c | 106 ++++++++++++++++----------------------------------- 1 file changed, 33 insertions(+), 73 deletions(-) commit 8b648436eb45c1f561164b24aafd35fb2bee9cfc Author: Thomas Petazzoni Date: Tue Dec 22 11:43:29 2015 +0100 dmaengine: mv_xor: add suspend/resume support This commit adds suspend/resume support to the mv_xor driver. The config and interrupt mask registers must be saved and restored, and upon resume, the MBus windows configuration must also be done again. Tested on Armada 388 GP, with a RAID 5 array, accessed before and after a suspend to RAM cycle. Based on work from Ofer Heifetz and Lior Amsalem. Signed-off-by: Thomas Petazzoni Signed-off-by: Vinod Koul drivers/dma/mv_xor.c | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++ drivers/dma/mv_xor.h | 1 + 2 files changed, 54 insertions(+) commit 81aafb3e0e16bcca060efa6b5e477e812e4154bc Author: Thomas Petazzoni Date: Tue Dec 22 11:43:28 2015 +0100 dmaengine: mv_xor: de-duplicate mv_chan_set_mode*() When commit 6f166312c6ea2 ("dmaengine: mv_xor: add support for a38x command in descriptor mode") added support for the descriptor mode available in Marvell Armada 38x and later SoCs, it added a new function mv_chan_set_mode_to_desc() which allows to configure a XOR channel to get the specific operation to be done from each individual DMA descriptor. However, this function was mainly a duplicate of the existing mv_chan_set_mode(), with just the operation being different. This commit re-organizes the code into a single mv_chan_set_mode() function, which takes the operation mode as argument, and the mv_xor_channel_add() function decides whether to use XOR_OPERATION_MODE_IN_DESC or XOR_OPERATION_MODE_XOR. Signed-off-by: Thomas Petazzoni Reviewed-by: Maxime Ripard Signed-off-by: Vinod Koul drivers/dma/mv_xor.c | 41 +++-------------------------------------- 1 file changed, 3 insertions(+), 38 deletions(-) commit 7cbafa09e1cdedac707104fff659f90966a02da5 Author: Thomas Petazzoni Date: Tue Dec 22 11:43:27 2015 +0100 dmaengine: mv_xor: remove mv_xor_chan->current_type field Since commit 3e4f52e2da9f6 ("dma: mv_xor: Simplify the DMA_MEMCPY operation"), this field is no longer used, so get rid of it. Signed-off-by: Thomas Petazzoni Reviewed-by: Maxime Ripard Signed-off-by: Vinod Koul drivers/dma/mv_xor.c | 1 - drivers/dma/mv_xor.h | 1 - 2 files changed, 2 deletions(-) commit 9cc96b0a211fd54f4bf314e7ef6e207ac5bce0c7 Merge: d64fe8e 12ca6ad Author: Ingo Molnar Date: Wed Jan 6 11:07:04 2016 +0100 Merge branch 'perf/urgent' into perf/core, to pick up fixes before applying new changes Signed-off-by: Ingo Molnar commit 0905f04eb21fc1c2e690bed5d0418a061d56c225 Author: Yuyang Du Date: Thu Dec 17 07:34:27 2015 +0800 sched/fair: Fix new task's load avg removed from source CPU in wake_up_new_task() If a newly created task is selected to go to a different CPU in fork balance when it wakes up the first time, its load averages should not be removed from the source CPU since they are never added to it before. The same is also applicable to a never used group entity. Fix it in remove_entity_load_avg(): when entity's last_update_time is 0, simply return. This should precisely identify the case in question, because in other migrations, the last_update_time is set to 0 after remove_entity_load_avg(). Reported-by: Steve Muckle Signed-off-by: Yuyang Du [peterz: cfs_rq_last_update_time] Signed-off-by: Peter Zijlstra (Intel) Cc: Dietmar Eggemann Cc: Juri Lelli Cc: Linus Torvalds Cc: Mike Galbraith Cc: Morten Rasmussen Cc: Patrick Bellasi Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Vincent Guittot Link: http://lkml.kernel.org/r/20151216233427.GJ28098@intel.com Signed-off-by: Ingo Molnar kernel/sched/fair.c | 38 ++++++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 10 deletions(-) commit 5a1078043f844074cbd53981432778a8d5dd56e9 Author: Jiri Olsa Date: Tue Dec 8 21:23:59 2015 +0100 sched/core: Move sched_entity::avg into separate cache line The sched_entity::avg collides with read-mostly sched_entity data. The perf c2c tool showed many read HITM accesses across many CPUs for sched_entity's cfs_rq and my_q, while having at the same time tons of stores for avg. After placing sched_entity::avg into separate cache line, the perf bench sched pipe showed around 20 seconds speedup. NOTE I cut out all perf events except for cycles and instructions from following output. Before: $ perf stat -r 5 perf bench sched pipe -l 10000000 # Running 'sched/pipe' benchmark: # Executed 10000000 pipe operations between two processes Total time: 270.348 [sec] 27.034805 usecs/op 36989 ops/sec ... 245,537,074,035 cycles # 1.433 GHz 187,264,548,519 instructions # 0.77 insns per cycle 272.653840535 seconds time elapsed ( +- 1.31% ) After: $ perf stat -r 5 perf bench sched pipe -l 10000000 # Running 'sched/pipe' benchmark: # Executed 10000000 pipe operations between two processes Total time: 251.076 [sec] 25.107678 usecs/op 39828 ops/sec ... 244,573,513,928 cycles # 1.572 GHz 187,409,641,157 instructions # 0.76 insns per cycle 251.679315188 seconds time elapsed ( +- 0.31% ) Signed-off-by: Jiri Olsa Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: Don Zickus Cc: Joe Mario Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1449606239-28602-1-git-send-email-jolsa@kernel.org Signed-off-by: Ingo Molnar include/linux/sched.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 25ec02f2c14466a4549c5dcc044b628c2cc46fde Author: Jiri Olsa Date: Mon Dec 21 15:25:30 2015 +0100 x86/fpu: Properly align size in CHECK_MEMBER_AT_END_OF() macro The CHECK_MEMBER_AT_END_OF(TYPE, MEMBER) checks whether MEMBER is last member of TYPE by evaluating: offsetof(TYPE::MEMBER) + sizeof(TYPE::MEMBER) == sizeof(TYPE) and ensuring TYPE::MEMBER is the last member of the TYPE. This condition breaks on structs that are padded to be aligned. This patch ensures the TYPE alignment is taken into account. This bug was revealed after adding cacheline alignment into struct sched_entity, which broke task_struct::thread check: CHECK_MEMBER_AT_END_OF(struct task_struct, thread); Signed-off-by: Jiri Olsa Signed-off-by: Peter Zijlstra (Intel) Cc: Dave Hansen Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1450707930-3445-1-git-send-email-jolsa@kernel.org Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/init.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) commit 7d92de3a8285ab3dfd68aa3a99823acd5b190444 Author: Wanpeng Li Date: Thu Dec 3 17:42:10 2015 +0800 sched/deadline: Fix the earliest_dl.next logic earliest_dl.next should cache deadline of the earliest ready task that is also enqueued in the pushable rbtree, as pull algorithm uses this information to find candidates for migration: if the earliest_dl.next deadline of source rq is earlier than the earliest_dl.curr deadline of destination rq, the task from the source rq can be pulled. However, current implementation only guarantees that earliest_dl.next is the deadline of the next ready task instead of the next pushable task; which will result in potentially holding both rqs' lock and find nothing to migrate because of affinity constraints. In addition, current logic doesn't update the next candidate for pushing in pick_next_task_dl(), even if the running task is never eligible. This patch fixes both problems by updating earliest_dl.next when pushable dl task is enqueued/dequeued, similar to what we already do for RT. Tested-by: Luca Abeni Signed-off-by: Wanpeng Li Signed-off-by: Peter Zijlstra (Intel) Acked-by: Juri Lelli Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1449135730-27202-1-git-send-email-wanpeng.li@hotmail.com Signed-off-by: Ingo Molnar kernel/sched/deadline.c | 59 ++++++------------------------------------------- 1 file changed, 7 insertions(+), 52 deletions(-) commit 567bee2803cb46caeb6011de5b738fde33dc3896 Merge: aa0b7ae 093e584 Author: Ingo Molnar Date: Wed Jan 6 11:02:29 2016 +0100 Merge branch 'sched/urgent' into sched/core, to pick up fixes before merging new patches Signed-off-by: Ingo Molnar commit 8705d603edd49f1cff165cd3b7998f4c7f098d27 Author: Andy Lutomirski Date: Tue Dec 29 20:12:18 2015 -0800 x86/vsdo: Fix build on PARAVIRT_CLOCK=y, KVM_GUEST=n arch/x86/built-in.o: In function `arch_setup_additional_pages': (.text+0x587): undefined reference to `pvclock_pvti_cpu0_va' KVM_GUEST selects PARAVIRT_CLOCK, so we can make pvclock_pvti_cpu0_va depend on KVM_GUEST. Signed-off-by: Andy Lutomirski Tested-by: Borislav Petkov Cc: Oleg Nesterov Cc: Kees Cook Link: http://lkml.kernel.org/r/444d38a9bcba832685740ea1401b569861d09a72.1451446564.git.luto@kernel.org Signed-off-by: Thomas Gleixner arch/x86/include/asm/pvclock.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9406de3e4362c379966dd114221e8159d9da5f32 Merge: 2a2d0f6 0f73f3e Author: Vinod Koul Date: Wed Jan 6 15:19:18 2016 +0530 Merge branch 'topic/ti-xbar' into for-linus commit 2a2d0f6386c0ec6f990d485324a09391a421c57a Merge: c8b9dd2 05e866b Author: Vinod Koul Date: Wed Jan 6 15:19:05 2016 +0530 Merge branch 'topic/tegra' into for-linus commit c8b9dd2b9e74ecf2539fe09e106db4ad1cc6677b Merge: 62ddae37 aea08a5 Author: Vinod Koul Date: Wed Jan 6 15:18:56 2016 +0530 Merge branch 'topic/stm32' into for-linus commit 62ddae372f6eba4815f53aad1ade32d3e4950a7c Merge: a6eaf23 aeb8974 Author: Vinod Koul Date: Wed Jan 6 15:18:44 2016 +0530 Merge branch 'topic/ste' into for-linus commit a6eaf23b050b642ec5e673be56a72bd9efb4fd69 Merge: c81bc96 4d42e95 Author: Vinod Koul Date: Wed Jan 6 15:18:36 2016 +0530 Merge branch 'topic/rcar' into for-linus commit c81bc9605627ccb9d7074f9ba68b3ffee427dc95 Merge: e3c3736 1a7cf7b Author: Vinod Koul Date: Wed Jan 6 15:18:19 2016 +0530 Merge branch 'topic/omap' into for-linus commit e3c373616a6ac4e18548b224f703f8d4c79a0c46 Merge: 9fd5ca5 2bb129e Author: Vinod Koul Date: Wed Jan 6 15:18:11 2016 +0530 Merge branch 'topic/ioatdma' into for-linus commit 9fd5ca5f04e4c735f66badb2e65aef30e8672247 Merge: d3f1e93 390c49f Author: Vinod Koul Date: Wed Jan 6 15:18:05 2016 +0530 Merge branch 'topic/idma' into for-linus commit d3f1e93ce8e00be19711c35f0c67c54a58aea559 Merge: 7c7b680 b1d6ab1 Author: Vinod Koul Date: Wed Jan 6 15:17:47 2016 +0530 Merge branch 'topic/async' into for-linus commit 7c7b680fa6b0866af2c4876da261bbfe710315d6 Merge: 5eec943 020c62a Author: Vinod Koul Date: Wed Jan 6 15:17:32 2016 +0530 Merge branch 'topic/univ_api' into for-linus commit 5eec94388db40ce45bec028af2e2f62df751c887 Merge: 0c328de d3651b8 Author: Vinod Koul Date: Wed Jan 6 15:17:16 2016 +0530 Merge branch 'topic/desc_reuse' into for-linus commit ca9ea7a5ffda53ce9e9f3e14b9b104d85db47c7d Merge: 3643b46 c7b60a8 Author: Takashi Iwai Date: Wed Jan 6 10:20:41 2016 +0100 Merge branch 'for-linus' into for-next commit 3643b46c381eda180df1ec68cd2ec5c79afd61f3 Author: Julia Lawall Date: Mon Jan 4 17:50:47 2016 +0100 ALSA: emux: constify nrpn_conv_table structures The nrpn_conv_table structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Takashi Iwai sound/synth/emux/emux_nrpn.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 2eb65d67afbf9364b525b657f1475d1a2cbc27de Author: Takashi Sakamoto Date: Thu Dec 31 13:58:14 2015 +0900 ALSA: dice: expand timeout to wait for Dice notification Some users have reported that their Dice based models generate ETIMEDOUT when starting PCM playback. It means that current timeout (=100msec) is not enough for their models to transfer notifications. This commit expands the timeout up to 2 sec. As a result, in a worst case, any operations to start AMDTP streams takes 2 sec or more. Then, in userspace, snd_pcm_hw_params(), snd_pcm_prepare(), snd_pcm_recover(), snd_rawmidi_open(), snd_seq_connect_from() and snd_seq_connect_to() may take the time. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/dice/dice-transaction.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a2875a92b8413b4d7eacf96802c9718aeeb0363f Author: Takashi Sakamoto Date: Thu Dec 31 13:58:13 2015 +0900 ALSA: dice: purge transaction initialization at timeout of Dice notification In previous commit, card registration is processed under situation with few bus reset. There's no need to add a workaround of transaction re-initialization at timeout. This commit purges the re-initialization. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/dice/dice-transaction.c | 31 ++++++++----------------------- 1 file changed, 8 insertions(+), 23 deletions(-) commit b59fb1900b4feedd2fa9256326e65b5632627465 Author: Takashi Sakamoto Date: Thu Dec 31 13:58:12 2015 +0900 ALSA: dice: postpone card registration Some models based on ASIC for Dice II series (STD, CP) change their hardware configurations after appearing on IEEE 1394 bus. This is due to interactions of boot loader (RedBoot), firmwares (eCos) and vendor's configurations. This causes current ALSA dice driver to get wrong information about the hardware's capability because its probe function runs just after detecting unit of the model. As long as I investigated, it takes a bit time (less than 1 second) to load the firmware after bootstrap. Just after loaded, the driver can get information about the unit. Then the hardware is initialized according to vendor's configurations. After, the got information becomes wrong. Between bootstrap, firmware loading and post configuration, some bus resets are observed. This commit offloads most processing of probe function into workqueue and schedules the workqueue after successive bus resets. This has an effect to get correct hardware information and avoid involvement to bus reset storm. For code simplicity, this change effects all of Dice-based models, i.e. Dice II, Dice Jr., Dice Mini and Dice III. I use a loose strategy to manage a race condition between the work and the bus reset. This is due to a specification of dice transaction. When bus reset occurs, registered address for the transaction is cleared. Drivers must re-register their own address again. While, this operation is required for the work because the work includes to wait for the transaction. This commit uses no lock primitives for the race condition. Instead, checking 'registered' member of 'struct snd_dice' avoid executing the work again. If sound card is not registered, the work can be scheduled again by bus reset handler. When .remove callback is executed, the sound card is going to be released. The work should not be pending or executed in the releasing. This commit uses cancel_delayed_work_sync() in .remove callback and wait till the pending work finished. After .remove callback, .update callback is not executed, therefore no works are scheduled again. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/dice/dice.c | 159 ++++++++++++++++++++++++++++++++------------- sound/firewire/dice/dice.h | 3 + 2 files changed, 117 insertions(+), 45 deletions(-) commit 4a47a87defa0a67312932a3aaee3516dcf66659b Author: Takashi Sakamoto Date: Thu Dec 31 13:58:11 2015 +0900 ALSA: dice: split subaddress check from category check Before allocating an instance of sound card, ALSA dice driver checks chip_ID_hi in Bus information block of Config ROM, then also checks subaddresses. The former operation reads cache of Config ROM in Linux FireWire subsystem, while the latter operation sends read transaction. The latter can be merged into initialization of transaction system. This commit splits these two operations to reduce needless transactions in probe processing. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/dice/dice-transaction.c | 90 ++++++++++++++++++++++++++-------- sound/firewire/dice/dice.c | 72 +++------------------------ 2 files changed, 78 insertions(+), 84 deletions(-) commit 84e05408fcfefb9b28050f701e1e94fe9f86804b Author: Chris Zhong Date: Wed Jan 6 16:12:54 2016 +0800 drm: rockchip: Support Synopsys DW MIPI DSI Add support for Synopsys DesignWare MIPI DSI controller which is embedded in the rk3288 SoCs. Signed-off-by: Chris Zhong Acked-by: Mark Yao drivers/gpu/drm/rockchip/Kconfig | 10 + drivers/gpu/drm/rockchip/Makefile | 1 + drivers/gpu/drm/rockchip/dw-mipi-dsi.c | 1194 +++++++++++++++++++++++++++ drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 3 + 4 files changed, 1208 insertions(+) commit 00ce3a15d811978fcb204a1a3f5f8c059096fa5e Author: Craig Gallek Date: Tue Jan 5 10:57:13 2016 -0500 soreuseport: change consume_skb to kfree_skb in error case Fixes: 538950a1b752 ("soreuseport: setsockopt SO_ATTACH_REUSEPORT_[CE]BPF") Suggested-by: Daniel Borkmann Signed-off-by: Craig Gallek Acked-by: Daniel Borkmann Signed-off-by: David S. Miller net/core/sock_reuseport.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1134158ba3d656b8dbc79a23d482129a531ba0ae Author: Craig Gallek Date: Tue Jan 5 15:08:07 2016 -0500 soreuseport: pass skb to secondary UDP socket lookup This socket-lookup path did not pass along the skb in question in my original BPF-based socket selection patch. The skb in the udpN_lib_lookup2 path can be used for BPF-based socket selection just like it is in the 'traditional' udpN_lib_lookup path. udpN_lib_lookup2 kicks in when there are greater than 10 sockets in the same hlist slot. Coincidentally, I chose 10 sockets per reuseport group in my functional test, so the lookup2 path was not excersised. This adds an additional set of tests with 20 sockets. Fixes: 538950a1b752 ("soreuseport: setsockopt SO_ATTACH_REUSEPORT_[CE]BPF") Fixes: 3ca8e4029969 ("soreuseport: BPF selection functional test") Suggested-by: Eric Dumazet Signed-off-by: Craig Gallek Acked-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/udp.c | 10 +++--- net/ipv6/udp.c | 10 +++--- tools/testing/selftests/net/reuseport_bpf.c | 47 +++++++++++++++++++++++++++++ 3 files changed, 59 insertions(+), 8 deletions(-) commit a20d86e7f96422d375dfa9ac0fe96ca4ce2aa647 Author: Chris Zhong Date: Wed Jan 6 12:03:54 2016 +0800 Documentation: dt-bindings: Add bindings for rk3288 DW MIPI DSI driver add device tree bindings for rk3288 specific Synopsys DW MIPI DSI driver Signed-off-by: Chris Zhong Acked-by: Rob Herring .../display/rockchip/dw_mipi_dsi_rockchip.txt | 60 ++++++++++++++++++++++ 1 file changed, 60 insertions(+) commit b59b8de3149736e5094cb786978a1ba8d6d55b34 Author: Chris Zhong Date: Wed Jan 6 12:03:53 2016 +0800 drm/rockchip: return a true clock rate to adjusted_mode Since the mipi dsi driver need to use the clock of vop to make the calculation of Blanking. But sometimes the clock driver can not set a accurate clock_rate for vop, get it by clk_round_rate before mode_set, so we can get the true value. Signed-off-by: Chris Zhong Acked-by: Mark Yao drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 5 +++++ 1 file changed, 5 insertions(+) commit f0138e2596f2994129451ee320ff8692cb7bc86b Author: Ido Schimmel Date: Tue Jan 5 11:36:40 2016 +0100 mlxsw: pci: Adjust value of CPU egress traffic class During initialization, when creating the send descriptor queues (SDQs), we specify the CPU egress traffic class of each SDQ. The maximum number of classes of this type is different in the two ASICs supported by this PCI driver. New firmware versions check this value is set correctly, which causes errors on the Spectrum ASIC, as its max exposed egress traffic class is lower than 7. Solve this by setting this field to 3, which is an acceptable value for both ASICs. Note that we currently do not expose the QoS capabilities of the ASICs, so setting this to an hardcoded value is OK for now. Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/pci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 56b87180cc59136e87a20c596566790cc88544b9 Merge: be78a69 49f2a47 Author: David S. Miller Date: Wed Jan 6 00:05:04 2016 -0500 Merge tag 'wireless-drivers-next-for-davem-2016-01-05' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next Kalle Valo says: ==================== brcfmac * fix IBSS which got broken over time * new USB id for bcm43242 dongle * arp offload configuration through inet notifier ath9k * add random number generator support (CONFIG_ATH9K_HWRNG) iwlwifi * Make scan parameters low latency aware * Fix in the NL80211_FEATURE_FULL_AP_CLIENT_STATE state case * Fix enable injection mode (Chaya Rachel) * Various cleanups (Dan / Julia / myself) * Allow to stay more time on popular channels (David Spinadel) * Bug fixes for D0i3 (Eliad / Luca) * Fixes for GO uAPSD (myself) * Start of TSO support (myself) * Rate control bug fixes (Eyal / Gregory) * Start the work on 9000 devices (Johannes / Sara / Oren) * Start the work on a new Tx queue allocation model (Liad) * Debug infrastructure enhancements (Golan) mwifiex * add a debugfs file for chip reset * advertise SMS4 cipher suite * increase ap and station interface limit to 3 * enable MSI support on newer pcie devices (8897 onwards) rtlwifi * fix lots of module parameter usage ==================== Signed-off-by: David S. Miller commit be78a690f50f38882220ceecda403478d477122e Author: Arnd Bergmann Date: Fri Jan 1 23:27:57 2016 +0100 net: hns: avoid uninitialized variable warning: gcc fails to see that the use of the 'last_offset' variable in hns_nic_reuse_page() is used correctly and issues a bogus warning: drivers/net/ethernet/hisilicon/hns/hns_enet.c: In function 'hns_nic_reuse_page': drivers/net/ethernet/hisilicon/hns/hns_enet.c:541:6: warning: 'last_offset' may be used uninitialized in this function [-Wmaybe-uninitialized] This simplifies the function to make it more obvious what is going on to both readers and compilers, which makes the warning go away. Signed-off-by: Arnd Bergmann Signed-off-by: David S. Miller drivers/net/ethernet/hisilicon/hns/hns_enet.c | 47 +++++++++++++-------------- 1 file changed, 22 insertions(+), 25 deletions(-) commit a72a5e2d34ec2921c0d9a7545093087e4cb90d0a Author: Florian Westphal Date: Tue Jan 5 22:17:55 2016 +0100 inet: kill unused skb_free op The only user was removed in commit 029f7f3b8701cc7a ("netfilter: ipv6: nf_defrag: avoid/free clone operations"). Signed-off-by: Florian Westphal Signed-off-by: David S. Miller include/net/inet_frag.h | 1 - net/ieee802154/6lowpan/reassembly.c | 1 - net/ipv4/inet_fragment.c | 10 +--------- net/ipv4/ip_fragment.c | 1 - net/ipv6/reassembly.c | 1 - 5 files changed, 1 insertion(+), 13 deletions(-) commit e07ecd76d4db7bda1e9495395b2110a3fe28845a Author: Dan Williams Date: Tue Jan 5 18:37:23 2016 -0800 libnvdimm: fix namespace object confusion in is_uuid_busy() When btt devices were re-worked to be child devices of regions this routine was overlooked. It mistakenly attempts to_nd_namespace_pmem() or to_nd_namespace_blk() conversions on btt and pfn devices. By luck to date we have happened to be hitting valid memory leading to a uuid miscompare, but a recent change to struct nd_namespace_common causes: BUG: unable to handle kernel NULL pointer dereference at 0000000000000001 IP: [] memcmp+0xc/0x40 [..] Call Trace: [] is_uuid_busy+0xc1/0x2a0 [libnvdimm] [] ? to_nd_blk_region+0x50/0x50 [libnvdimm] [] device_for_each_child+0x50/0x90 Cc: Signed-off-by: Dan Williams drivers/nvdimm/namespace_devs.c | 53 ++++++++++++++++++++++++++++++++++++++ drivers/nvdimm/region_devs.c | 56 ----------------------------------------- 2 files changed, 53 insertions(+), 56 deletions(-) commit 5ff24d601092b222340b28466e263b1c4559407e Author: Viresh Kumar Date: Tue Jan 5 16:15:54 2016 +0530 PM / OPP: Use snprintf() instead of sprintf() sprintf() can access memory outside of the range of the character array, and is risky in some situations. The driver specified prop_name string can be longer than NAME_MAX here (only an attacker will do that though) and so blindly copying it into the character array of size NAME_MAX isn't safe. Instead we must use snprintf() here. Reported-by: Geert Uytterhoeven Signed-off-by: Viresh Kumar Acked-by: Geert Uytterhoeven Acked-by: Stephen Boyd Signed-off-by: Rafael J. Wysocki drivers/base/power/opp/core.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 5036c3902054358ee293b8cecfea13342d8019e8 Author: Christoph Hellwig Date: Mon Dec 21 10:51:02 2015 +1100 raid5: allow r5l_io_unit allocations to fail And propagate the error up the stack so we can add the stripe to no_stripes_list and retry our log operation later. This avoids blocking raid5d due to reclaim, an it allows to get rid of the deadlock-prone GFP_NOFAIL allocation. shli: add missing mempool_destroy() Signed-off-by: Christoph Hellwig Signed-off-by: NeilBrown drivers/md/raid5-cache.c | 67 ++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 57 insertions(+), 10 deletions(-) commit e8deb6381051bf3ce9d817020e8ba972b405a070 Author: Christoph Hellwig Date: Mon Dec 21 10:51:02 2015 +1100 raid5-cache: use a mempool for the metadata block We only have a limited number in flight, so use a page based mempool. Signed-off-by: Christoph Hellwig Signed-off-by: NeilBrown drivers/md/raid5-cache.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit c38d29b33bb3b3c792f3cca8a973422bb1897ebf Author: Christoph Hellwig Date: Mon Dec 21 10:51:02 2015 +1100 raid5-cache: use a bio_set This allows us to make guaranteed forward progress. Signed-off-by: Christoph Hellwig Signed-off-by: NeilBrown drivers/md/raid5-cache.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) commit f6b6ec5cfac306c1eea66f074050864efcb11851 Author: Shaohua Li Date: Mon Dec 21 10:51:02 2015 +1100 raid5-cache: add journal hot add/remove support Add support for journal disk hot add/remove. Mostly trival checks in md part. The raid5 part is a little tricky. For hot-remove, we can't wait pending write as it's called from raid5d. The wait will cause deadlock. We simplily fail the hot-remove. A hot-remove retry can success eventually since if journal disk is faulty all pending write will be failed and finish. For hot-add, since an array supporting journal but without journal disk will be marked read-only, we are safe to hot add journal without stopping IO (should be read IO, while journal only handles write IO). Signed-off-by: Shaohua Li Signed-off-by: NeilBrown drivers/md/md.c | 42 ++++++++++++++++++++++++++++++------------ drivers/md/raid5-cache.c | 16 ++++++++++++---- drivers/md/raid5.c | 34 ++++++++++++++++++++++++++-------- 3 files changed, 68 insertions(+), 24 deletions(-) commit 9ebc6ef188a0656f3620835f9be7fe22c1644c1c Author: Deepa Dinamani Date: Mon Dec 21 10:51:01 2015 +1100 drivers: md: use ktime_get_real_seconds() get_seconds() API is not y2038 safe on 32 bit systems and the API is deprecated. Replace it with calls to ktime_get_real_seconds() API instead. Change mddev structure types to time64_t accordingly. 32 bit signed timestamps will overflow in the year 2038. Change the user interface mdu_array_info_s structure timestamps: ctime and utime values used in ioctls GET_ARRAY_INFO and SET_ARRAY_INFO to unsigned int. This will extend the field to last until the year 2106. The long term plan is to get rid of ctime and utime values in this structure as this information can be read from the on-disk meta data directly. Clamp the tim64_t timestamps to positive values with a max of U32_MAX when returning from GET_ARRAY_INFO ioctl to accommodate above changes in the data type of timestamps to unsigned int. v0.90 on disk meta data uses u32 for maintaining time stamps. So this will also last until year 2106. Assumption is that the usage of v0.90 will be deprecated by year 2106. Timestamp fields in the on disk meta data for v1.0 version already use 64 bit data types. Remove the truncation of the bits while writing to or reading from these from the disk. Signed-off-by: Deepa Dinamani Reviewed-by: Arnd Bergmann Signed-off-by: NeilBrown drivers/md/md.c | 18 +++++++++--------- drivers/md/md.h | 2 +- include/uapi/linux/raid/md_u.h | 4 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) commit 3312c951efaba55080958974047414576b9e5d63 Author: Arnd Bergmann Date: Mon Dec 21 10:51:01 2015 +1100 md: avoid warning for 32-bit sector_t When CONFIG_LBDAF is not set, sector_t is only 32-bits wide, which means we cannot have devices with more than 2TB, and the code that is trying to handle compatibility support for large devices in md version 0.90 is meaningless but also causes a compile-time warning: drivers/md/md.c: In function 'super_90_load': drivers/md/md.c:1029:19: warning: large integer implicitly truncated to unsigned type [-Woverflow] drivers/md/md.c: In function 'super_90_rdev_size_change': drivers/md/md.c:1323:17: warning: large integer implicitly truncated to unsigned type [-Woverflow] This adds a check for CONFIG_LBDAF to avoid even getting into this code path, and also adds an explicit cast to let the compiler know it doesn't have to warn about the truncation. Signed-off-by: Arnd Bergmann Signed-off-by: NeilBrown drivers/md/md.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit ad66d445ee5a5f548142b880e1642c711fbcacd1 Author: Christoph Hellwig Date: Mon Dec 21 10:51:01 2015 +1100 raid5-cache: free meta_page earlier Once the I/O completed we don't need the meta page anymore. As the iounits can live on for a long time this reduces memory pressure a bit. Signed-off-by: Christoph Hellwig Reviewed-by: Shaohua Li Signed-off-by: NeilBrown drivers/md/raid5-cache.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit 3848c0bcb09c7b78e6f4ae9f8fc8d6d9aecbd35a Author: Christoph Hellwig Date: Mon Dec 21 10:51:01 2015 +1100 raid5-cache: simplify r5l_move_io_unit_list It's only used for one kind of move, so make that explicit. Also clean up the code a bit by using list_for_each_safe. Signed-off-by: Christoph Hellwig Reviewed-by: Shaohua Li Signed-off-by: NeilBrown drivers/md/raid5-cache.c | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) commit abf3508d8faa281e01a780e022a6f43d1731fe0b Author: Guoqing Jiang Date: Mon Dec 21 10:51:01 2015 +1100 md: update comment for md_allow_write MD_CHANGE_CLEAN had been replaced with MD_CHANGE_PENDING after commit 070dc6 ("md: resolve confusion of MD_CHANGE_CLEAN"), so make the change accordingly. Signed-off-by: Guoqing Jiang Signed-off-by: NeilBrown drivers/md/md.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e19508fa4df896b115f5321c21ce7669559b0863 Author: Guoqing Jiang Date: Mon Dec 21 10:51:01 2015 +1100 md-cluster: update comments for MD_CLUSTER_SEND_LOCKED_ALREADY 1. fix unbalanced parentheses. 2. add more description about that MD_CLUSTER_SEND_LOCKED_ALREADY will be cleared after set it in add_new_disk. Signed-off-by: Guoqing Jiang Signed-off-by: NeilBrown drivers/md/md-cluster.c | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) commit 8b9277c81450de9d8081ff6571ac5986e6c83f49 Author: Guoqing Jiang Date: Mon Dec 21 10:51:00 2015 +1100 md-cluster: Protect communication with mutexes Communication can happen through multiple threads. It is possible that one thread steps over another threads sequence. So, we use mutexes to protect both the send and receive sequences. Send communication is locked through state bit, MD_CLUSTER_SEND_LOCK. Communication is locked with bit manipulation in order to allow "lock and hold" for the add operation. In case of an add operation, if the lock is held, MD_CLUSTER_SEND_LOCKED_ALREADY is set. When md_update_sb() calls metadata_update_start(), it checks (in a single statement to avoid races), if the communication is already locked. If yes, it merely returns zero, else it locks the token lockresource. Signed-off-by: Goldwyn Rodrigues Signed-off-by: NeilBrown drivers/md/md-cluster.c | 73 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 63 insertions(+), 10 deletions(-) commit 15858fa5b00c1067a8a8e53ea32f4a65f8bebbb8 Author: Guoqing Jiang Date: Mon Dec 21 10:51:00 2015 +1100 md-cluster: Defer MD reloading to mddev->thread Reloading of superblock must be performed under reconfig_mutex. However, this cannot be done with md_reload_sb because it would deadlock with the message DLM lock. So, we defer it in md_check_recovery() which is executed by mddev->thread. This introduces a new flag, MD_RELOAD_SB, which if set, will reload the superblock. And good_device_nr is also added to 'struct mddev' which is used to get the num of the good device within cluster raid. Signed-off-by: Goldwyn Rodrigues Signed-off-by: Guoqing Jiang Signed-off-by: NeilBrown drivers/md/md-cluster.c | 4 +++- drivers/md/md.c | 4 ++++ drivers/md/md.h | 4 ++++ 3 files changed, 11 insertions(+), 1 deletion(-) commit d323ef0f1a3e6d408eabacf0e91e2d741ffe1165 Author: Guoqing Jiang Date: Mon Dec 21 10:51:00 2015 +1100 md-cluster: update the documentation Update design documentation based on recent development. original version comes from Neil. Signed-off-by: Goldwyn Rodrigues Signed-off-by: Guoqing Jiang Signed-off-by: NeilBrown Documentation/md-cluster.txt | 314 +++++++++++++++++++++++++++++++------------ 1 file changed, 228 insertions(+), 86 deletions(-) commit f6a2dc64ee74477c966f5220b1f560ed6308d010 Author: Guoqing Jiang Date: Mon Dec 21 10:51:00 2015 +1100 md-cluster: append some actions when change bitmap from clustered to none For clustered raid, we need to do extra actions when change bitmap to none. 1. check if all the bitmap lock could be get or not, if yes then we can continue the change since cluster raid is only active in current node. Otherwise return fail and unlock the related bitmap locks 2. set nodes to 0 and then leave cluster environment. 3. release other nodes's bitmap lock. Signed-off-by: Guoqing Jiang Signed-off-by: NeilBrown drivers/md/md-cluster.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++++ drivers/md/md-cluster.h | 2 ++ drivers/md/md.c | 13 +++++++++++ 3 files changed, 72 insertions(+) commit 09afd2a8d6ad2c40f3c1ae0b3f83784864cf4c15 Author: Goldwyn Rodrigues Date: Mon Dec 21 10:51:00 2015 +1100 md-cluster: Allow spare devices to be marked as faulty If a spare device was marked faulty, it would not be reflected in receiving nodes because it would mark it as activated and continue. Continue the operation, so it may be set as faulty. Signed-off-by: Goldwyn Rodrigues Signed-off-by: NeilBrown drivers/md/md.c | 1 - 1 file changed, 1 deletion(-) commit 54a88392cdd84b4a739ce3a986bfabfaff67d9d2 Author: Goldwyn Rodrigues Date: Mon Dec 21 10:51:00 2015 +1100 md-cluster: Fix the remove sequence with the new MD reload code The remove disk message does not need metadata_update_start(), but can be an independent message. Signed-off-by: Goldwyn Rodrigues Signed-off-by: Guoqing Jiang Signed-off-by: NeilBrown drivers/md/md-cluster.c | 2 +- drivers/md/md.c | 9 +-------- 2 files changed, 2 insertions(+), 9 deletions(-) commit 659b254fa7392e32b59a30d4b61fb12c4cd440ff Author: Guoqing Jiang Date: Mon Dec 21 10:50:59 2015 +1100 md-cluster: remove a disk asynchronously from cluster environment For cluster raid, if one disk couldn't be reach in one node, then other nodes would receive the REMOVE message for the disk. In receiving node, we can't call md_kick_rdev_from_array to remove the disk from array synchronously since the disk might still be busy in this node. So let's set a ClusterRemove flag on the disk, then let the thread to do the removal job eventually. Signed-off-by: Guoqing Jiang Signed-off-by: Goldwyn Rodrigues Signed-off-by: NeilBrown drivers/md/md-cluster.c | 7 +++++-- drivers/md/md.c | 12 ++++++++++++ drivers/md/md.h | 1 + 3 files changed, 18 insertions(+), 2 deletions(-) commit ac277c6a8a39bc50f891a3477625330c276bd7f5 Author: Goldwyn Rodrigues Date: Mon Dec 21 10:50:59 2015 +1100 md-cluster: Avoid the resync ping-pong If a RESYNCING message with (0,0) has been sent before, do not send it again. This avoids a resync ping pong between the nodes. We read the bitmap lockresource's LVB to figure out the previous value of the RESYNCING message. Signed-off-by: Goldwyn Rodrigues Signed-off-by: NeilBrown drivers/md/md-cluster.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit b46020aa3a8a0f9c7324fe0af4aec4227f947a10 Author: Roman Gushchin Date: Mon Dec 21 10:50:59 2015 +1100 md/raid5: remove redundant check in stripe_add_to_batch_list() The stripe_add_to_batch_list() function is called only if stripe_can_batch() returned true, so there is no need for double check. Signed-off-by: Roman Gushchin Cc: Neil Brown Cc: linux-raid@vger.kernel.org Signed-off-by: NeilBrown drivers/md/raid5.c | 2 -- 1 file changed, 2 deletions(-) commit e576330033936d94a00068760a5744e27ce51a32 Merge: 887e9d3 a32d5b7 Author: Brian Norris Date: Tue Jan 5 16:04:40 2016 -0800 mtd: merge MTD development from v4.4 into for-v4.5 development Small conflict between some bugfixes for 4.4 and some refactoring for 4.5. Signed-off-by: Brian Norris commit 887e9d3a1f3e93a1c64294649c0dd301035a7892 Author: Stephen Rothwell Date: Mon Jan 4 10:32:54 2016 -0800 mtd: nand: fix for drop unnecessary partition parser data From Stephen: Hi Brian, After merging the l2-mtd tree, today's linux-next build (powerpc ppc44x_defconfig) failed like this: drivers/mtd/nand/ndfc.c: In function 'ndfc_chip_init': drivers/mtd/nand/ndfc.c:177:2: error: 'ppdata' undeclared (first use in this function) ppdata.of_node = flash_np; ^ Caused by commit a61ae81a1907 ("mtd: nand: drop unnecessary partition parser data") The flash node is already correctly assigned using the new helper (nand_set_flash_node()) so the correct fix is indeed to simply drop this line. Fixes: a61ae81a1907 ("mtd: nand: drop unnecessary partition parser data") Signed-off-by: Stephen Rothwell Signed-off-by: Brian Norris drivers/mtd/nand/ndfc.c | 1 - 1 file changed, 1 deletion(-) commit 116a489d78b30862a2dd04961d3ba98fe4704220 Author: Bjorn Helgaas Date: Tue Jan 5 15:48:11 2016 -0600 PCI: designware: Simplify control flow Return values immediately when possible to simplify the control flow. No functional change intended. Folded in unused variable removal as pointed out by Fabio Estevam , Arnd Bergmann , and Thierry Reding . Signed-off-by: Bjorn Helgaas Acked-by: Pratyush Anand drivers/pci/host/pcie-designware.c | 54 +++++++++++++------------------------- 1 file changed, 18 insertions(+), 36 deletions(-) commit 2fbf575867e5a181a3f3e5e29a2f0c205cca5fb3 Author: xypron.glpk@gmx.de Date: Tue Jan 5 10:12:49 2016 +0100 include/uapi/linux/sockios.h: mark SIOCRTMSG unused IOCTL SIOCRTMSG does nothing but return EINVAL. So comment it as unused. SIOCRTMSG is only used in: * net/ipv4/af_inet.c * include/uapi/linux/sockios.h inet_ioctl calls ip_rt_ioctl. ip_rt_ioctl only handles SIOCADDRT and SIOCDELRT and returns -EINVAL otherwise. Signed-off-by: Heinrich Schuchardt Signed-off-by: David S. Miller include/uapi/linux/sockios.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 82a823833f4e3769e82cdb4df1bc2234bc65b16c Author: Stanimir Varbanov Date: Fri Dec 18 14:38:57 2015 +0200 PCI: qcom: Add Qualcomm PCIe controller driver The PCIe driver reuses the Designware common code for host and MSI initialization, and also programs the Qualcomm application specific registers. [bhelgaas: remove COMPILE_TEST Kconfig dependency] Signed-off-by: Stanimir Varbanov Signed-off-by: Stanimir Varbanov Signed-off-by: Bjorn Helgaas MAINTAINERS | 7 + drivers/pci/host/Kconfig | 10 + drivers/pci/host/Makefile | 1 + drivers/pci/host/pcie-qcom.c | 616 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 634 insertions(+) commit 845d5ca26647258fea84353152c2bde759dfab5d Author: Stanimir Varbanov Date: Fri Dec 18 14:38:56 2015 +0200 PCI: qcom: Document PCIe devicetree bindings Document Qualcomm PCIe driver devicetree bindings. Signed-off-by: Stanimir Varbanov Signed-off-by: Stanimir Varbanov Signed-off-by: Bjorn Helgaas Acked-by: Rob Herring .../devicetree/bindings/pci/qcom,pcie.txt | 233 +++++++++++++++++++++ 1 file changed, 233 insertions(+) commit 93209d65c1d38f86ffb3f61a1214130b581a9709 Author: Michal Marek Date: Wed Oct 14 11:48:06 2015 +0200 tags: Unify emacs and exuberant rules The emacs rules were constantly lagging behind the exuberant ones. Use a single set of rules for both, to make the script easier to maintain. The language understood by both tools is basic regular expression with some limitations, which are documented in a comment. To be able to store the rules in an array and easily iterate over it, the script requires bash now. In the exuberant case, the change fixes some false matches in and also some too greedy matches in the arguments of the DECLARE_*/DEFINE_* macros. In the emacs case, several previously not working rules are matching now. Tested with these versions of the tools: Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert etags (GNU Emacs 24.5) Signed-off-by: Michal Marek scripts/tags.sh | 202 ++++++++++++++++++++++++++++++-------------------------- 1 file changed, 109 insertions(+), 93 deletions(-) commit a1ccdb63b5535dc3446b0a9efc6d97aca82c72ef Author: Michal Marek Date: Thu Oct 15 15:12:51 2015 +0200 tags: Drop the _PE rule We are not indexing the userspace tools, so the rules only match some false positives in the kernel code. Signed-off-by: Michal Marek scripts/tags.sh | 2 -- 1 file changed, 2 deletions(-) commit ab9ca615f5f4053417cba464015bf2d7334a2371 Author: Michal Marek Date: Thu Oct 15 11:14:02 2015 +0200 tags: Do not try to index defconfigs The defconfig files are in predictable locations, so there is no need to index them. Plus, the script was only looking for files named 'defconfig', which only works on a few architectures nowadays. Signed-off-by: Michal Marek scripts/tags.sh | 12 ------------ 1 file changed, 12 deletions(-) commit a281b8569e9eb4beb1651c92145271555ba05f0c Author: Michal Marek Date: Wed Oct 14 11:17:13 2015 +0200 tags: Process Kconfig files in a single pass Signed-off-by: Michal Marek scripts/tags.sh | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit c26206f23a19af299540880ccf80e5a7af0f7db6 Author: Michal Marek Date: Wed Oct 14 10:55:04 2015 +0200 tags: Fix erroneous pattern match in a comment Apparently, ctags applies the rules before deleting comments: ctags: Warning: include/linux/completion.h:22: null expansion of name pattern "\2" Work around this particular case by requiring the group to contain at least one character. Leave the other patters as they are, until a better solution is found. Signed-off-by: Michal Marek scripts/tags.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e594a178123eb77a3238a73ca35fabc98dec3599 Author: Michal Marek Date: Wed Oct 14 10:35:23 2015 +0200 aic7xxx: Avoid name collision with Rename the local definition of LIST_HEAD to BSD_LIST_HEAD. This fixes a ctags error if we apply the C rules to header files as well: ctags: Warning: drivers/scsi/aic7xxx/aic79xx.h:1072: null expansion of name pattern "\3" ctags: Warning: drivers/scsi/aic7xxx/aic7xxx.h:919: null expansion of name pattern "\3" Signed-off-by: Michal Marek drivers/scsi/aic7xxx/aic79xx.h | 4 ++-- drivers/scsi/aic7xxx/aic79xx_osm.h | 5 ----- drivers/scsi/aic7xxx/aic7xxx.h | 2 +- drivers/scsi/aic7xxx/aic7xxx_osm.h | 5 ----- drivers/scsi/aic7xxx/queue.h | 2 +- 5 files changed, 4 insertions(+), 14 deletions(-) commit d2fb5aeda926307e4d95e3e824146aee9943de59 Author: Michal Marek Date: Wed Oct 14 09:45:52 2015 +0200 tags: Treat header files as C code This allows to apply the same patters to both source and header files. The effect is mostly visible in the case of DECLARE_BITMAP, but there are small gains all over the place. There is also lots of random changes in the diff, I believe this is simply because there are still lots of unexpanded macros in the code and the C and C++ parsers fail and recover at different points. Also, qconf.h is parsed as C, but that's a negligible regression. Signed-off-by: Michal Marek scripts/tags.sh | 66 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 33 insertions(+), 33 deletions(-) commit 541140d43046ccd4e7b511846d22b3d3ca7367f3 Author: Subhransu S. Prusty Date: Wed Dec 9 21:46:08 2015 +0530 ASoC: hdac_hdmi: Fix to check num nodes correctly commit 3c83ac23253c ("ASoC: hdac_hdmi: check error return") fixes the static checker warning reported by Dan Carpenter: sound/soc/codecs/hdac_hdmi.c:416 hdac_hdmi_parse_and_map_nid() warn: unsigned 'hdac->num_nodes' is never less than zero. But it doesn't fix the issue completely. It's also a failure if no sub nodes found for an afg node. So modify the return condition appropriately. Signed-off-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/codecs/hdac_hdmi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1e8db97f0e5205c0f6fd20c9a4f38cd871bc467f Author: Martin Sperl Date: Tue Dec 22 18:03:25 2015 +0000 spi: loopback-test: spi_check_rx_ranges can get always done The spi_check_rx_ranges can always get executed independent of if we have a real loopback situation. Signed-off-by: Martin Sperl Signed-off-by: Mark Brown drivers/spi/spi-loopback-test.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) commit 1633bf118bfbc641a7d3a4bbb0b2b20c9c60f8d7 Merge: 33c1529 3d8c38a Author: David S. Miller Date: Tue Jan 5 14:11:51 2016 -0500 Merge branch 'mlx5e-tstamp' Saeed Mahameed says: ==================== Introduce mlx5 ethernet timestamping This patch series introduces the support for ConnectX-4 timestamping and the PTP kernel interface. Changes from V2: net/mlx5_core: Introduce access function to read internal_timer - Remove one line function - Change function name net/mlx5e: Add HW timestamping (TS) support: - Data path performance optimization (caching tstamp struct in rq,sq) - Change read/write_lock_irqsave to read/write_lock - Move ioctl functions to en_clock file - Changed overflow start algorithm according to comments from Richard - Move timestamp init/cleanup to open/close ndos. In details: 1st patch prevents the driver from modifying skb->data and SKB CB in device xmit function. 2nd patch adds the needed low level helpers for: - Fetching the hardware clock (hardware internal timer) - Parsing CQEs timestamps - Device frequency capability 3rd patch adds new en_clock.c file that handles all needed timestamping operations: - Internal clock structure initialization and other helper functions - Added the needed ioctl for setting/getting the current timestamping configuration. - used this configuration in RX/TX data path to fill the SKB with the timestamp. 4th patch Introduces PTP (PHC) support. ==================== Signed-off-by: David S. Miller commit 3d8c38af149309feb2541b995b3a45df170d6da3 Author: Eran Ben Elisha Date: Tue Dec 29 14:58:32 2015 +0200 net/mlx5e: Add PTP Hardware Clock (PHC) support Add a PHC support to the mlx5_en driver. Use reader/writer spinlocks to protect the timecounter since every packet received needs to call timecounter_cycle2time() when timestamping is enabled. This can become a performance bottleneck with RSS and multiple receive queues if normal spinlocks are used. The driver has been tested with both Documentation/ptp/testptp and the linuxptp project (http://linuxptp.sourceforge.net/) on a Mellanox ConnectX-4 card. Signed-off-by: Eran Ben Elisha Cc: Richard Cochran Signed-off-by: Saeed Mahameed Acked-by: Richard Cochran Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/Kconfig | 1 + drivers/net/ethernet/mellanox/mlx5/core/en.h | 3 + drivers/net/ethernet/mellanox/mlx5/core/en_clock.c | 100 +++++++++++++++++++++ .../net/ethernet/mellanox/mlx5/core/en_ethtool.c | 3 +- 4 files changed, 106 insertions(+), 1 deletion(-) commit ef9814deafd0c83a358d49e3709c3e16cc352118 Author: Eran Ben Elisha Date: Tue Dec 29 14:58:31 2015 +0200 net/mlx5e: Add HW timestamping (TS) support Add support for enable/disable HW timestamping for incoming and/or outgoing packets. To enable/disable HW timestamping appropriate ioctl should be used. Currently HWTSTAMP_FILTER_ALL/NONE and HWTSAMP_TX_ON/OFF only are supported. Make all relevant changes in RX/TX flows to consider TS request and plant HW timestamps into relevant structures. Add internal clock for converting hardware timestamp to nanoseconds. In addition, add a service task to catch internal clock overflow, to make sure timestamping is accurate. Signed-off-by: Eran Ben Elisha Signed-off-by: Saeed Mahameed Acked-by: Richard Cochran Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/Makefile | 2 +- drivers/net/ethernet/mellanox/mlx5/core/en.h | 23 +++ drivers/net/ethernet/mellanox/mlx5/core/en_clock.c | 187 +++++++++++++++++++++ .../net/ethernet/mellanox/mlx5/core/en_ethtool.c | 29 ++++ drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 19 ++- drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 9 + drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 12 ++ 7 files changed, 279 insertions(+), 2 deletions(-) commit b0844444590e18704644f707ea88bff1b976b0e7 Author: Eran Ben Elisha Date: Tue Dec 29 14:58:30 2015 +0200 net/mlx5_core: Introduce access function to read internal timer A preparation step which adds support for reading the hardware internal timer and the hardware timestamping from the CQE. In addition, advertize device_frequency_khz HCA capability. Signed-off-by: Eran Ben Elisha Signed-off-by: Saeed Mahameed Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/main.c | 13 +++++++++++++ drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h | 1 + include/linux/mlx5/device.h | 20 +++++++++++++++++--- include/linux/mlx5/mlx5_ifc.h | 6 +++--- 4 files changed, 34 insertions(+), 6 deletions(-) commit 34802a42b3528b0e18ea4517c8b23e1214a09332 Author: Achiad Shochat Date: Tue Dec 29 14:58:29 2015 +0200 net/mlx5e: Do not modify the TX SKB If the SKB is cloned, or has an elevated users count, someone else can be looking at it at the same time. Signed-off-by: Achiad Shochat Signed-off-by: Saeed Mahameed Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en.h | 5 +- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 5 +- drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 73 +++++++++++++---------- 3 files changed, 49 insertions(+), 34 deletions(-) commit 6cb07abcc318be8dfbec5d19bc982536d64106a9 Merge: a8d9934 75fb0aa 6399aea 8da61f2 Author: Mark Brown Date: Tue Jan 5 19:07:18 2016 +0000 Merge remote-tracking branches 'regmap/topic/mmio', 'regmap/topic/rbtree' and 'regmap/topic/seq' into regmap-next commit a8d99344c9ebc2f12232473f92beac2f894b6ea5 Merge: 8798975 782035e 7a78479 Author: Mark Brown Date: Tue Jan 5 19:07:17 2016 +0000 Merge remote-tracking branches 'regmap/topic/64bit' and 'regmap/topic/irq-type' into regmap-next commit 8798975bb645c0a0927b6f5f4a5964607ef932c1 Merge: 6cca671 fcac023 Author: Mark Brown Date: Tue Jan 5 19:07:16 2016 +0000 Merge remote-tracking branch 'regmap/topic/core' into regmap-next commit 6cca67129d526505567696813e2625b1caaa7abd Merge: 1683098 167f706 Author: Mark Brown Date: Tue Jan 5 19:07:16 2016 +0000 Merge remote-tracking branch 'regmap/topic/cache' into regmap-next commit 339ec3ce54e5c7137287dc807555ae69934b2d2a Author: Martin Sperl Date: Tue Dec 22 18:03:22 2015 +0000 spi: loopback-test: rename method spi_test_fill_tx to spi_test_fill_pattern Rename method spi_test_fill_tx to spi_test_fill_pattern to better describe what it does. Signed-off-by: Martin Sperl Signed-off-by: Mark Brown drivers/spi/spi-loopback-test.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit e6520a3c8877d02c471135afb371e79b04409ab8 Author: Martin Sperl Date: Tue Dec 22 18:03:21 2015 +0000 spi: loopback-test: write rx pattern also when running without tx_buf Currently the rx_buf does not get set with the SPI_TEST_PATTERN_UNWRITTEN when tx_buf == NULL in the transfer. Reorder code so that it gets done also under this specific condition. Signed-off-by: Martin Sperl Signed-off-by: Mark Brown drivers/spi/spi-loopback-test.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 8da61f24cc4a4a66ecae69aa9b9aa8fd989a8969 Author: Mark Brown Date: Tue Oct 20 15:40:59 2015 +0100 regmap: debugfs: Use seq_file for the access map Unlike the registers file we don't have any substantial performance concerns rendering the entire file (it involves no device accesses) so just use seq_printf() to simplify the code. Signed-off-by: Mark Brown drivers/base/regmap/regmap-debugfs.c | 69 ++++++++++-------------------------- 1 file changed, 18 insertions(+), 51 deletions(-) commit f644eb62fe88a2414e5e5c1bd80e20c881f5d86a Author: Adam Thomson Date: Tue Jan 5 18:15:33 2016 +0000 ASoC: da7218: Correct BCLK inversion for DSP DAI format mode By default the device latches data on the falling edge of the BCLK in DSP mode, whereas the expectation for normal BCLK is to latch on the rising edge. This updates the driver to invert the BCLK configuration for DSP mode, to align with expected behaviour. Signed-off-by: Adam Thomson Signed-off-by: Mark Brown sound/soc/codecs/da7218.c | 47 +++++++++++++++++++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 10 deletions(-) commit ee1e4e3f0d50aebdc6dac2a2cd4ae203ed2a75c1 Merge: 55fc205 d801836 Author: Mark Brown Date: Tue Jan 5 18:06:29 2016 +0000 Merge branch 'fix/intel' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-intel commit 17209dfb35a228e597a387bfc83b68093b247f78 Author: Stanimir Varbanov Date: Fri Dec 18 14:38:55 2015 +0200 PCI: designware: Ensure ATU is enabled before IO/conf space accesses Read back the ATU CR2 register to ensure ATU programming is effective before any subsequent I/O or config space accesses. Without this, PCI device enumeration is unreliable. [bhelgaas: changelog, comment] Signed-off-by: Stanimir Varbanov Signed-off-by: Bjorn Helgaas Acked-by: Pratyush Anand drivers/pci/host/pcie-designware.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 7a78479fd2acd25db7ecd1744d76f6841ec8a257 Author: Laxman Dewangan Date: Tue Dec 22 18:25:26 2015 +0530 regmap: irq: add support for configuration of trigger type Some of devices supports the trigger level for interrupt like rising/falling edge specially for GPIOs. The interrupt support of such devices may have uses the generic regmap irq framework for implementation. Add support to configure the trigger type device interrupt register via regmap-irq framework. The regmap-irq framework configures the trigger register only if the details of trigger type registers are provided. [Fixed use of terery operator for legibility -- broonie] Signed-off-by: Laxman Dewangan Signed-off-by: Mark Brown drivers/base/regmap/regmap-irq.c | 100 +++++++++++++++++++++++++++++++++++++++ include/linux/regmap.h | 16 +++++++ 2 files changed, 116 insertions(+) commit 33c152972e625bd29f083dda75a37263f8b95a41 Merge: 6a5ef90 c79c066 Author: David S. Miller Date: Tue Jan 5 12:24:06 2016 -0500 Merge branch 'sctp-transport-rhashtable' Xin Long says: ==================== sctp: use transport hashtable to replace association's with rhashtable for telecom center, the usual case is that a server is connected by thousands of clients. but if the server with only one enpoint(udp style) use the same sport and dport to communicate with every clients, and every assoc in server will be hashed in the same chain of global assoc hashtable due to currently we choose dport and sport as the hash key. when a packet is received, sctp_rcv try to find the assoc with sport and dport, since that chain is too long to find it fast, it make the performance turn to very low, some test data is as follow: in server: $./ss [start a udp style server there] in client: $./cc [start 2500 sockets to connect server with same port and different ip, and use one of them to send data to server] ===== test on net-next -- perf top server: 55.73% [kernel] [k] sctp_assoc_is_match 6.80% [kernel] [k] sctp_assoc_lookup_paddr 4.81% [kernel] [k] sctp_v4_cmp_addr 3.12% [kernel] [k] _raw_spin_unlock_irqrestore 1.94% [kernel] [k] sctp_cmp_addr_exact client: 46.01% [kernel] [k] sctp_endpoint_lookup_assoc 5.55% libc-2.17.so [.] __libc_calloc 5.39% libc-2.17.so [.] _int_free 3.92% libc-2.17.so [.] _int_malloc 3.23% [kernel] [k] __memset -- spent time time is 487s, send pkt is 10000000 we need to change the way to calculate the hash key, to use lport + rport + paddr as the hash key can avoid this issue. besides, this patchset will use transport hashtable to replace association hashtable to lookup with rhashtable api. get transport first then get association by t->asoc. and also it will make tcp style work better. ===== test with this patchset: -- perf top server: 15.98% [kernel] [k] _raw_spin_unlock_irqrestore 9.92% [kernel] [k] __pv_queued_spin_lock_slowpath 7.22% [kernel] [k] copy_user_generic_string 2.38% libpthread-2.17.so [.] __recvmsg_nocancel 1.88% [kernel] [k] sctp_recvmsg client: 11.90% [kernel] [k] sctp_hash_cmp 8.52% [kernel] [k] rht_deferred_worker 4.94% [kernel] [k] __pv_queued_spin_lock_slowpath 3.95% [kernel] [k] sctp_bind_addr_match 2.49% [kernel] [k] __memset -- spent time time is 22s, send pkt is 10000000 ==================== Signed-off-by: David S. Miller commit c79c0666915418f9c0f01a6d0e93179416fb0c9e Author: Xin Long Date: Wed Dec 30 23:50:50 2015 +0800 sctp: remove the local_bh_disable/enable in sctp_endpoint_lookup_assoc sctp_endpoint_lookup_assoc is called in the protection of sock lock there is no need to call local_bh_disable in this function. so remove them. Signed-off-by: Xin Long Signed-off-by: Marcelo Ricardo Leitner Signed-off-by: David S. Miller net/sctp/endpointola.c | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) commit b5eff7128366c4a7a9b502097a968ec9cae2bea2 Author: Xin Long Date: Wed Dec 30 23:50:49 2015 +0800 sctp: drop the old assoc hashtable of sctp transport hashtable will replace the association hashtable, so association hashtable is not used in sctp any more, so drop the codes about that. Signed-off-by: Xin Long Signed-off-by: Marcelo Ricardo Leitner Signed-off-by: David S. Miller include/net/sctp/sctp.h | 21 ---------------- include/net/sctp/structs.h | 5 ---- net/sctp/input.c | 61 ---------------------------------------------- net/sctp/protocol.c | 30 ++--------------------- net/sctp/sm_sideeffect.c | 2 -- net/sctp/socket.c | 6 +---- 6 files changed, 3 insertions(+), 122 deletions(-) commit 39f66a7dce3213fb0a0c6256929c816df27c7548 Author: Xin Long Date: Wed Dec 30 23:50:48 2015 +0800 sctp: apply rhashtable api to sctp procfs Traversal the transport rhashtable, get the association only once through the condition assoc->peer.primary_path != transport. Signed-off-by: Xin Long Signed-off-by: Marcelo Ricardo Leitner Signed-off-by: David S. Miller net/sctp/proc.c | 316 +++++++++++++++++++++++++++++++------------------------- 1 file changed, 173 insertions(+), 143 deletions(-) commit 4f0087812648b7611157ae22954acfaed820d24e Author: Xin Long Date: Wed Dec 30 23:50:47 2015 +0800 sctp: apply rhashtable api to send/recv path apply lookup apis to two functions, for __sctp_endpoint_lookup_assoc and __sctp_lookup_association, it's invoked in the protection of sock lock, it will be safe, but sctp_lookup_association need to call rcu_read_lock() and to detect the t->dead to protect it. Signed-off-by: Xin Long Signed-off-by: Marcelo Ricardo Leitner Signed-off-by: David S. Miller net/sctp/associola.c | 5 +++++ net/sctp/endpointola.c | 35 ++++++++--------------------------- net/sctp/input.c | 39 ++++++++++----------------------------- net/sctp/protocol.c | 6 ++++++ 4 files changed, 29 insertions(+), 56 deletions(-) commit d6c0256a60e685214cc8cc2b886809f11efc0084 Author: Xin Long Date: Wed Dec 30 23:50:46 2015 +0800 sctp: add the rhashtable apis for sctp global transport hashtable tranport hashtbale will replace the association hashtable to do the lookup for transport, and then get association by t->assoc, rhashtable apis will be used because of it's resizable, scalable and using rcu. lport + rport + paddr will be the base hashkey to locate the chain, with net to protect one netns from another, then plus the laddr to compare to get the target. this patch will provider the lookup functions: - sctp_epaddr_lookup_transport - sctp_addrs_lookup_transport hash/unhash functions: - sctp_hash_transport - sctp_unhash_transport init/destroy functions: - sctp_transport_hashtable_init - sctp_transport_hashtable_destroy Signed-off-by: Xin Long Signed-off-by: Marcelo Ricardo Leitner Signed-off-by: David S. Miller include/net/sctp/sctp.h | 11 ++++ include/net/sctp/structs.h | 5 ++ net/sctp/input.c | 131 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 147 insertions(+) commit 01a999e48995a35faaa513f811c335bce72917d6 Author: Jaehoon Chung Date: Thu Dec 24 18:41:03 2015 +0900 mmc: dw_mmc: remove the unused quirks Removed the unused quirks. These quirks don't used anywhere. Signed-off-by: Jaehoon Chung Signed-off-by: Ulf Hansson drivers/mmc/host/dw_mmc.c | 19 ------------------- include/linux/mmc/dw_mmc.h | 10 ++-------- 2 files changed, 2 insertions(+), 27 deletions(-) commit 923a231c871120c08a74a1fda397fed184334924 Author: Geliang Tang Date: Sun Dec 27 18:46:00 2015 +0800 mmc: sdhci-pci: use to_pci_dev() Use to_pci_dev() instead of open-coding it. Signed-off-by: Geliang Tang Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-pci-core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 12dd7fe2967a7e60e689e7e9a016b8288c8ea756 Author: Geliang Tang Date: Sun Dec 27 21:15:43 2015 +0800 mmc: cb710: use to_platform_device() Use to_platform_device() instead of open-coding it. Signed-off-by: Geliang Tang Signed-off-by: Ulf Hansson drivers/mmc/host/cb710-mmc.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 1b84def8bf86ae9a39940c12a20ce9a2dfd66d56 Author: Lucas Stach Date: Tue Dec 22 19:41:04 2015 +0100 mmc: tegra: use correct accessor for misc ctrl register The misc control register is 32bit wide, the used readw/writew accessors only mainipulate the low 16bit of this register. It currently doesn't matter as all the bit changed are located in the lower half, but together with the u32 variable used to hold the contents of the register it is seriously confusing. Switch to 32bit accessors to avoid any future breakage. Signed-off-by: Lucas Stach Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-tegra.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7ad2ed1dfcbed6f50923fc0afc24aac475bdc0b5 Author: Lucas Stach Date: Tue Dec 22 19:41:03 2015 +0100 mmc: tegra: enable UHS-I modes Keep the quirk bits, as Tegra30 and Tegra114 host have different levels of support for UHS-I modes and so need different spare bits to be set, but change the logic to be positive. Tegra210 needs a different tuning sequence than Tegra30+. Disable UHS modes until support for this is properly added. Signed-off-by: Lucas Stach Acked-by: Thierry Reding Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-tegra.c | 37 +++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 20 deletions(-) commit b541eef125fa3ae0df84572459af4e7084cb6343 Author: Michal Suchanek Date: Wed Dec 2 10:38:21 2015 +0000 spi: fsl-espi: expose maximum transfer size limit The fsl-espi hardware can trasfer at most 64K data so report teh limitation. Based on patch by Heiner Kallweit CC: Heiner Kallweit Signed-off-by: Michal Suchanek Signed-off-by: Mark Brown drivers/spi/spi-fsl-espi.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 4acad4aae10d1fa79a075b38b5c73772c44f576c Author: Michal Suchanek Date: Wed Dec 2 10:38:21 2015 +0000 spi: expose master transfer size limitation. On some SPI controllers it is not feasible to transfer arbitrary amount of data at once. When the limit on transfer size is a few kilobytes at least it makes sense to use the SPI hardware rather than reverting to gpio driver. The protocol drivers need a way to check that they do not sent overly long messages, though. Signed-off-by: Michal Suchanek Signed-off-by: Mark Brown include/linux/spi/spi.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 3f80978397f447973d278198e8bbde82826cb9c1 Author: Sanyog Kale Date: Tue Jan 5 17:14:49 2016 +0530 ASoC: pcm: allow delayed suspending request by users If a device would like to use delayed suspending then PM recommendation is to set ‘power.use_autosuspend’ flag. To allow users to do so we need to change runtime calls in core to use autosuspend counterparts. For user who do not wish to use delayed suspend not setting the device's ‘power.use_autosuspend’ flag will result in non-delayed suspend even with these APIs which incidentally is also the default behaviour, so only users will be impacted who opt in for this. Signed-off-by: Sanyog Kale Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/soc-pcm.c | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) commit 4acfa36be618eb8ac3aa39f473e7550710216435 Author: Adam Thomson Date: Tue Jan 5 15:05:36 2016 +0000 ASoC: da7219: Correct BCLK inversion for DSP DAI format mode By default the device latches data on the falling edge of the BCLK in DSP mode, whereas the expectation for normal BCLK is to latch on the rising edge. This updates the driver to invert the BCLK configuration for DSP mode, to align with expected behaviour. Signed-off-by: Adam Thomson Signed-off-by: Mark Brown sound/soc/codecs/da7219.c | 48 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 37 insertions(+), 11 deletions(-) commit 78b781ca0d35191ebf8d8cad8beec810270f0f2e Author: Johan Hedberg Date: Tue Jan 5 13:19:32 2016 +0200 Bluetooth: Add support for Start Limited Discovery command This patch implements the mgmt Start Limited Discovery command. Most of existing Start Discovery code is reused since the only difference is the presence of a 'limited' flag as part of the discovery state. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann include/net/bluetooth/hci_core.h | 1 + include/net/bluetooth/mgmt.h | 2 ++ net/bluetooth/hci_request.c | 11 ++++++--- net/bluetooth/mgmt.c | 53 +++++++++++++++++++++++++++++++++------- 4 files changed, 55 insertions(+), 12 deletions(-) commit 0d3b7f64c84d53658daf28e2f9772e38acb9340d Author: Johan Hedberg Date: Tue Jan 5 13:19:31 2016 +0200 Bluetooth: Change eir_has_data_type() to more generic eir_get_data() To make the EIR parsing helper more general purpose, make it return the found data and its length rather than just saying whether the data was present or not. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann include/net/bluetooth/hci_core.h | 30 ++++++++++++++++++++---------- net/bluetooth/hci_event.c | 6 +++--- net/bluetooth/mgmt.c | 3 ++- 3 files changed, 25 insertions(+), 14 deletions(-) commit 39b5be9b4233a9f212b98242bddf008f379b5122 Author: Will Deacon Date: Tue Jan 5 15:36:59 2016 +0000 arm64: mm: move pgd_cache initialisation to pgtable_cache_init Initialising the suppport for EFI runtime services requires us to allocate a pgd off the back of an early_initcall. On systems where the PGD_SIZE is smaller than PAGE_SIZE (e.g. 64k pages and 48-bit VA), the pgd_cache isn't initialised at this stage, and we panic with a NULL dereference during boot: Unable to handle kernel NULL pointer dereference at virtual address 00000000 __create_mapping.isra.5+0x84/0x350 create_pgd_mapping+0x20/0x28 efi_create_mapping+0x5c/0x6c arm_enable_runtime_services+0x154/0x1e4 do_one_initcall+0x8c/0x190 kernel_init_freeable+0x84/0x1ec kernel_init+0x10/0xe0 ret_from_fork+0x10/0x50 This patch fixes the problem by initialising the pgd_cache earlier, in the pgtable_cache_init callback, which sounds suspiciously like what it was intended for. Reported-by: Dennis Chen Signed-off-by: Will Deacon arch/arm64/include/asm/pgtable.h | 3 ++- arch/arm64/mm/pgd.c | 12 ++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) commit ed89c005b0f5caf5a1a1aac22ac3418e1340fd18 Author: Yuan Sun Date: Tue Jan 5 20:26:43 2016 +0800 cgroup: Remove resource_counter.txt in Documentation/cgroup-legacy/00-INDEX. Signed-off-by: Yuan Sun Signed-off-by: Tejun Heo Documentation/cgroup-legacy/00-INDEX | 2 -- 1 file changed, 2 deletions(-) commit dc17340e3041511850ff6ec7299551284d6c0eb1 Author: Pali Rohár Date: Sat Dec 26 00:37:16 2015 +0100 Fix documentation for adp1653 DT Property names do not match real names needed by driver itself. This patch fix this problem. Signed-off-by: Pali Rohár Acked-by: Pavel Machek Signed-off-by: Rob Herring Documentation/devicetree/bindings/media/i2c/adp1653.txt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 414ee536dfb51373c6c4c74dd7a7a65abdf5af51 Author: Geert Uytterhoeven Date: Tue Dec 15 10:55:59 2015 +0100 ARM: psci: Fix indentation in DT bindings Fix bogus indentation of the PSCI compatible values, reformat. Signed-off-by: Geert Uytterhoeven Acked-by: Lorenzo Pieralisi Acked-by: Mark Rutland Signed-off-by: Rob Herring Documentation/devicetree/bindings/arm/psci.txt | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) commit 8815b23aa0933653812e9c13c506f6f60fac474e Author: Chris Wilson Date: Tue Jan 5 09:42:31 2016 +0000 drm: Remove opencoded drm_gem_object_release_handle() drm_gem_handle_delete() contains its own version of drm_gem_object_release_handle(), so lets just call the release method instead. Reported-by: Ville Syrjälä Signed-off-by: Chris Wilson Cc: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1451986951-3703-2-git-send-email-chris@chris-wilson.co.uk Reviewed-by: Thierry Reding Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_gem.c | 55 +++++++++++++++++++++-------------------------- 1 file changed, 24 insertions(+), 31 deletions(-) commit 9649399e918f61788a6302a0f7d3c5ed34c2930c Author: Chris Wilson Date: Tue Jan 5 09:42:30 2016 +0000 drm: Do not set outparam on error during GEM handle allocation Good practice dictates that we do not leak stale information to our callers, and should avoid overwriting an outparam on an error path. Reported-by: Ville Syrjälä Signed-off-by: Chris Wilson Cc: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1451986951-3703-1-git-send-email-chris@chris-wilson.co.uk Reviewed-by: Thierry Reding Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_gem.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit df7d678bea8ba8904bdb293c8e96aa9488f7dbee Author: Daniel Vetter Date: Mon Jan 4 07:53:36 2016 +0100 drm/docs: more leftovers from the big vtable documentation pile Another pile of vfuncs from the old gpu.tmpl xml documentation that I've forgotten to delete. I spotted a few more things to clarify/extend in the new kerneldoc while going through this once more. v2: Spelling fixes (Thierry). v3: More spelling fixes and use Thierry's proposal to clarify why drivers need to validate modes both in ->mode_fixup and ->mode_valid. Cc: Laurent Pinchart Cc: Thierry Reding Acked-by: Thierry Reding Signed-off-by: Daniel Vetter Documentation/DocBook/gpu.tmpl | 188 ------------------------------- include/drm/drm_modeset_helper_vtables.h | 44 +++++++- 2 files changed, 41 insertions(+), 191 deletions(-) commit b80443c2211c7daaabd20fbbe9e7beb3fa3408e0 Author: Masahiro Yamada Date: Tue Jan 5 11:17:53 2016 +0900 of/platform: export of_default_bus_match_table Currently, drivers/bus/uniphier-system-bus.c is kept from being a module due to the unresolved reference to of_default_bus_match_table. Refer to commit 326ea45aa827 ("bus: uniphier: allow only built-in driver"). Signed-off-by: Masahiro Yamada Signed-off-by: Rob Herring drivers/of/platform.c | 1 + 1 file changed, 1 insertion(+) commit d2329fb576d2c7eb0824028d9c6d3d48fb90b11a Author: Grant Likely Date: Mon Jan 4 13:13:21 2016 +0100 of/unittest: Show broken behaviour in the platform bus Add a single resource to the test bus device to exercise the platform bus code a little more. This isn't strictly a devicetree test, but it is a corner case that the devicetree runs into. Until we've got platform device unittests, it can live here. It doesn't need to be an explicit text because the kernel will oops when it is wrong. Cc: Pantelis Antoniou Cc: Rob Herring Cc: Greg Kroah-Hartman Cc: Ricardo Ribalda Delgado Signed-off-by: Grant Likely [wsa: added the comment provided by Grant, rebased, and tested] Signed-off-by: Wolfram Sang Signed-off-by: Rob Herring drivers/of/unittest.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 166814d8413df49bf21293aacc808b2782cbd9a8 Author: Jean Delvare Date: Tue Jan 5 14:23:47 2016 +0100 gpio: pch: Optimize pch_gpio_get() The double negation is costly and can be avoided by shifting the register value before masking the requested bit. Signed-off-by: Jean Delvare Cc: Linus Walleij Signed-off-by: Linus Walleij drivers/gpio/gpio-pch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 83080a140874b6860b5191b375cfdad267eaa107 Author: Geliang Tang Date: Tue Jan 5 22:07:55 2016 +0800 regulator: core: use dev_to_rdev Use dev_to_rdev() instead of open-coding it. Signed-off-by: Geliang Tang Signed-off-by: Mark Brown drivers/regulator/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d44c6114da8c9e83407397d06b5cd909a1cc9135 Author: Zidan Wang Date: Thu Dec 24 11:42:11 2015 +0800 ASoC: fsl_asrc: sound is wrong after suspend/resume The register ASRCFG is volatile, but some bits need to be recovered after suspend/resume. Signed-off-by: Zidan Wang Acked-by: Nicolin Chen Signed-off-by: Mark Brown sound/soc/fsl/fsl_asrc.c | 7 +++++++ sound/soc/fsl/fsl_asrc.h | 7 +++++++ 2 files changed, 14 insertions(+) commit 446f59acb70b70a425ea4105277a71eb615327cd Author: Linus Walleij Date: Tue Jan 5 14:10:17 2016 +0100 Revert "pinctrl: lantiq: Implement gpio_chip.to_irq" This reverts commit 3e640743fee6e6a82ead1f163737755b2a965712. This commit needs to go into the pinctrl tree to avoid clashes. drivers/pinctrl/pinctrl-xway.c | 17 ----------------- 1 file changed, 17 deletions(-) commit 27cc78e3be3abb16ff77324624a6dfb410b3d338 Author: Linus Walleij Date: Thu Dec 10 19:02:26 2015 +0100 pinctrl: nsp-gpio: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Yendapally Reddy Dhananjaya Reddy Signed-off-by: Linus Walleij drivers/pinctrl/bcm/pinctrl-nsp-gpio.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) commit 5c809c63ab508423225f5aea00f82308a427b0f9 Author: Linus Walleij Date: Tue Dec 8 22:50:08 2015 +0100 pinctrl: vt8500-wmt: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Heiko Stuebner Signed-off-by: Linus Walleij drivers/pinctrl/vt8500/pinctrl-wmt.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit dbf09b0aa9e75222dda7aa4f2fcd3eca107cf450 Author: Linus Walleij Date: Tue Dec 8 22:27:19 2015 +0100 pinctrl: exynos5440: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Kukjin Kim Acked-by: Tomasz Figa Signed-off-by: Linus Walleij drivers/pinctrl/samsung/pinctrl-exynos5440.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 80036f88db18b98bc20f7321dbd5f9947576a2b2 Author: Linus Walleij Date: Tue Dec 8 22:12:11 2015 +0100 pinctrl: at91-pio4: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Ludovic Desroches Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-at91-pio4.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit 11aa679a6a0b20fe105a7a955a82153e255bae74 Author: Linus Walleij Date: Tue Dec 8 22:06:23 2015 +0100 pinctrl: mediatek: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Acked-by: Matthias Brugger Signed-off-by: Linus Walleij drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit cff4c7efbc2a1771af431edad6cf1df2a9d9dd46 Author: Linus Walleij Date: Tue Dec 8 10:31:35 2015 +0100 pinctrl: spear-plgpio: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: spear-devel@list.st.com Acked-by: Viresh Kumar Signed-off-by: Linus Walleij drivers/pinctrl/spear/pinctrl-plgpio.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 192d3507e2e65790f03ff43aeb1930ae097a8315 Author: Linus Walleij Date: Tue Dec 8 10:29:35 2015 +0100 pinctrl: sirf: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Barry Song Signed-off-by: Linus Walleij drivers/pinctrl/sirf/pinctrl-sirf.c | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) commit 9420023a5327f29a37cf0a6198bd7d8d80f9634c Author: Linus Walleij Date: Tue Dec 8 10:27:16 2015 +0100 pinctrl: sirf-atlas7: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Barry Song Signed-off-by: Linus Walleij drivers/pinctrl/sirf/pinctrl-atlas7.c | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) commit 7cb093c4bce3a145cc1586d4464cd362376c2cc6 Author: Linus Walleij Date: Tue Dec 8 10:24:54 2015 +0100 pinctrl: sh-pfc: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Geert Uytterhoeven Cc: Laurent Pinchart Signed-off-by: Linus Walleij drivers/pinctrl/sh-pfc/gpio.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) commit 88057d6e4a2a9c221bf81cfd18f25d0ff956af9e Author: Linus Walleij Date: Tue Dec 8 22:40:43 2015 +0100 pinctrl: sunxi: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Chen-Yu Tsai Acked-by: Maxime Ripard Signed-off-by: Linus Walleij drivers/pinctrl/sunxi/pinctrl-sunxi.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 9f57f81c129f0f9456f78f00235f70ac5e21e0f5 Author: Linus Walleij Date: Tue Dec 8 10:18:50 2015 +0100 pinctrl: samsung: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Tomasz Figa Signed-off-by: Linus Walleij drivers/pinctrl/samsung/pinctrl-samsung.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) commit 378596f99460ebd255dc3f5c1bc67a9ff09273f3 Author: Linus Walleij Date: Tue Dec 8 10:16:00 2015 +0100 pinctrl: ssbi-gpio: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Björn Andersson Signed-off-by: Linus Walleij drivers/pinctrl/qcom/pinctrl-ssbi-gpio.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit ed47941a17993cc455b1009a9810b85faa02c23f Author: Linus Walleij Date: Tue Dec 8 10:13:53 2015 +0100 pinctrl: ssbi-mpp: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Björn Andersson Signed-off-by: Linus Walleij drivers/pinctrl/qcom/pinctrl-ssbi-mpp.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 064761d1566617018567ed4d18bbb82519c01506 Author: Linus Walleij Date: Tue Dec 8 09:53:39 2015 +0100 pinctrl: spmi-mpp: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Björn Andersson Cc: Ivan T. Ivanov Signed-off-by: Linus Walleij drivers/pinctrl/qcom/pinctrl-spmi-mpp.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) commit c52d9df14ba75af351a2be7cc49f9e055192af93 Author: Linus Walleij Date: Tue Dec 8 09:51:47 2015 +0100 pinctrl: spmi: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Ivan T. Ivanov Cc: Björn Andersson Signed-off-by: Linus Walleij drivers/pinctrl/qcom/pinctrl-spmi-gpio.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) commit fded3f40bf96d14a8c5bc3e4593e7cdc5709ab88 Author: Linus Walleij Date: Tue Dec 8 09:49:18 2015 +0100 pinctrl: msm: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Stephen Boyd Cc: Björn Andersson Signed-off-by: Linus Walleij drivers/pinctrl/qcom/pinctrl-msm.c | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) commit 2e862a7bd63f57fcaa4a3a4929f51c56289f1f80 Author: Linus Walleij Date: Tue Dec 8 09:45:18 2015 +0100 pinctrl: st: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Srinivas Kandagatla Cc: Patrice Chotard Acked-by: Maxime Coquelin Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-st.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) commit 03bf81f1cb49a580d70b7514366760146c3da017 Author: Linus Walleij Date: Tue Dec 8 09:39:13 2015 +0100 pinctrl: rockchip: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Acked-by: Heiko Stuebner Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-rockchip.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) commit 3d18fb5c87576493a00fe51f09b6e82a17168177 Author: Linus Walleij Date: Tue Dec 8 09:37:00 2015 +0100 pinctrl: pistachio: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Acked-by: Andrew Bresticker Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-pistachio.c | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) commit 573718337f0359a935a276ce98996bbe062c926d Author: Linus Walleij Date: Tue Dec 8 09:35:14 2015 +0100 pinctrl: digicolor: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Acked-by: Baruch Siach Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-digicolor.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 014c1b3de3bec90df119e718d3f9f131747609bf Author: Linus Walleij Date: Tue Dec 8 09:33:30 2015 +0100 pinctrl: u300: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-coh901.c | 31 +++++++++++-------------------- 1 file changed, 11 insertions(+), 20 deletions(-) commit 370ea61134e9d13cef0dc671ce1fbc5a60756b59 Author: Linus Walleij Date: Tue Dec 8 09:27:45 2015 +0100 pinctrl: at91: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Jean-Christophe Plagniol-Villard Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-at91.c | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) commit f5bc3568db62c483049ce688baa06ff68dfb0fbd Author: Linus Walleij Date: Tue Dec 8 09:24:32 2015 +0100 pinctrl: as3722: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Andrew Bresticker Cc: Mallikarjun Kasoju Acked-by: Laxman Dewangan Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-as3722.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) commit 04d367231162560a51e875836a1f2ebf41780adf Author: Linus Walleij Date: Tue Dec 8 09:21:38 2015 +0100 pinctrl: amd: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Ken Xue Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-amd.c | 33 ++++++++++++++------------------- 1 file changed, 14 insertions(+), 19 deletions(-) commit de3d851beab55f36c7a555e313331c61bbb91f0b Author: Linus Walleij Date: Tue Dec 8 08:33:09 2015 +0100 pinctrl: adi2: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Acked-by: Sonic Zhang Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-adi2.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 2b016d2793d7b23d9fdfc55f5afc8fc6e6fd30eb Author: Linus Walleij Date: Tue Dec 8 08:29:43 2015 +0100 pinctrl: abx500: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Signed-off-by: Linus Walleij drivers/pinctrl/nomadik/pinctrl-abx500.c | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) commit 68ab0126001fb265c080b84e54b3c7c35e9d821d Author: Linus Walleij Date: Thu Dec 3 15:44:46 2015 +0100 pinctrl: nomadik: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Signed-off-by: Linus Walleij drivers/pinctrl/nomadik/pinctrl-nomadik.c | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) commit 827c93dae7275aaf7bfc2f1b41e1e6845751dda9 Author: Linus Walleij Date: Tue Dec 8 08:26:34 2015 +0100 pinctrl: meson: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Beniamino Galvani Cc: Carlo Caione Cc: Antoine Tenart Signed-off-by: Linus Walleij drivers/pinctrl/meson/pinctrl-meson.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) commit acfd4c633aa394ac0323bdb2be95f5b587c0ffbd Author: Linus Walleij Date: Tue Dec 8 00:18:59 2015 +0100 pinctrl: intel: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Acked-by: Mika Westerberg Acked-by: Heikki Krogerus Signed-off-by: Linus Walleij drivers/pinctrl/intel/pinctrl-intel.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit 0587d3db005c0bd838bfa0734cc611b4837c0f9d Author: Linus Walleij Date: Tue Dec 8 00:16:03 2015 +0100 pinctrl: cherryview: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Acked-by: Mika Westerberg Acked-by: Heikki Krogerus Signed-off-by: Linus Walleij drivers/pinctrl/intel/pinctrl-cherryview.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) commit e19a5f795c1c5be562cfee1c578c97890a755abc Author: Linus Walleij Date: Tue Dec 8 22:01:00 2015 +0100 pinctrl: bcm2835: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Stephen Warren Acked-by: Eric Anholt Signed-off-by: Linus Walleij drivers/pinctrl/bcm/pinctrl-bcm2835.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit bf9a5c96c87cf113e8e56df183a5f7c9af4a4c89 Author: Linus Walleij Date: Tue Dec 8 00:03:44 2015 +0100 pinctrl: baytrail: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Acked-by: Mika Westerberg Acked-by: Heikki Krogerus Signed-off-by: Linus Walleij drivers/pinctrl/intel/pinctrl-baytrail.c | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) commit c9f294ff6584782d20b4a766901a9cff7398bb20 Author: John Crispin Date: Mon Jan 4 22:27:57 2016 +0100 pinctrl: lantiq: 2 pins have the wrong mux list The latest vendor SDK contained this patch. Signed-off-by: John Crispin Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-xway.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 55fc205600ff3b529631cfe03b58645e3844bd92 Author: Jorge Fernandez Monteagudo Date: Mon Jan 4 17:20:30 2016 -0600 ASoC: Intel: Atom: Add support for HP ElitePad 1000 G2 The BIOS for the HP ElitePad 1000 G2 uses an unexpected HID, (INTCCFFD), add it to the white list of knowns HIDs. Signed-off-by: Jorge Fernandez Monteagudo Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown sound/soc/codecs/rt5640.c | 1 + sound/soc/intel/atom/sst/sst_acpi.c | 3 ++- sound/soc/intel/boards/bytcr_rt5640.c | 8 ++++++++ 3 files changed, 11 insertions(+), 1 deletion(-) commit 7762ef42d804050ae0ad3b99a2e407f50e039a1c Author: Pierre-Louis Bossart Date: Mon Jan 4 17:20:29 2016 -0600 ASoC: Intel: Atom: add support for RT5642 The machine driver is not loaded when the BIOS uses the 10EC5642 _HID. Add it to the white list of known _HIDs, codec_name is already taken care of by previous commit Tested on Asus T100TAF. Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown sound/soc/intel/atom/sst/sst_acpi.c | 2 ++ sound/soc/intel/boards/bytcr_rt5640.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) commit caf94ed8629afb82d61a82ce76fb314145933a40 Author: Pierre-Louis Bossart Date: Mon Jan 4 17:20:28 2016 -0600 ASoC: Intel: bytcr_rt5640: fixup DAI codec_name with HID Codec name is hard-coded in machine driver, pass information from actual ACPI HID to help support BIOS variations Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown sound/soc/intel/atom/sst/sst_acpi.c | 17 ++++++++++++----- sound/soc/intel/boards/bytcr_rt5640.c | 10 ++++++++++ 2 files changed, 22 insertions(+), 5 deletions(-) commit a032d2de0b5f17631844b34481c61cb799d0af6b Author: Srinivas Pandruvada Date: Wed Dec 30 17:45:19 2015 -0800 Documentation: cpufreq: intel_pstate: enhance documentation This is an attempt to make documentation more user friendly. Signed-off-by: Srinivas Pandruvada Reviewed-by: Doug Smythies Reviewed-by: Chen, Yu C Signed-off-by: Rafael J. Wysocki Documentation/cpu-freq/intel-pstate.txt | 241 ++++++++++++++++++++++++++------ 1 file changed, 199 insertions(+), 42 deletions(-) commit 2bd5bd15a51858866d792c678f0fe9280c4e8fa7 Author: Pierre-Louis Bossart Date: Mon Jan 4 17:20:24 2016 -0600 ASoC: Intel: add bytct-rt5651 machine driver based on bytcr-rt5640 with changes only on codec side Quirk logic is kept as placeholder. Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown sound/soc/intel/Kconfig | 12 ++ sound/soc/intel/atom/sst/sst_acpi.c | 3 + sound/soc/intel/boards/Makefile | 2 + sound/soc/intel/boards/bytcr_rt5651.c | 332 ++++++++++++++++++++++++++++++++++ 4 files changed, 349 insertions(+) commit dc901a3541717ca4963dd017eacf50a4c954609c Author: Pierre-Louis Bossart Date: Mon Jan 4 17:20:23 2016 -0600 ASoC: Intel: fix ACPI probe regression with Atom DPCM driver The commit 95f098014815b330838b1173d3d7bcea3b481242 "ASoC: Intel: Move apci find machine routines" introduced a regression in ACPI probe of the DPCM driver. Fix by conditionally compiling sst-acpi when the DPCM driver is not selected Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown sound/soc/intel/common/Makefile | 5 +++++ 1 file changed, 5 insertions(+) commit 45288978859119c019eff93f0cb838a0de100bcc Author: Colin Ian King Date: Tue Jan 5 10:57:11 2016 +0000 ACPI, PCI, irq: remove redundant check for null string pointer source is decleared as a 4 byte char array in struct acpi_pci_routing_table so !prt->source is a redundant null string pointer check. Detected with smatch: drivers/acpi/pci_irq.c:134 do_prt_fixups() warn: this array is probably non-NULL. 'prt->source' Signed-off-by: Colin Ian King Signed-off-by: Rafael J. Wysocki drivers/acpi/pci_irq.c | 3 --- 1 file changed, 3 deletions(-) commit aecbd9b1bff6afbe349921b406b99d285b412820 Author: Adrien Schildknecht Date: Mon Jan 4 23:22:28 2016 +0100 ACPI / video: driver must be registered before checking for keypresses acpi_video_handles_brightness_key_presses() may use an uninitialized mutex. The error has been reported by lockdep: DEBUG_LOCKS_WARN_ON(l->magic != l). The function assumes that the video driver has been registered before being called. As explained in the comment of acpi_video_init(), the registration of the video class may be defered and thus may not take place in the init function of the module. Use completion mechanisms to make sure that acpi_video_handles_brightness_key_presses() wait for the completion of acpi_video_register() before using the mutex. Also get rid of register_count since task completion can replace it. Signed-off-by: Adrien Schildknecht Reviewed-by: Hans de Goede Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_video.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) commit 0ec66e2d74aadaaee7e218861ca86effcd029435 Author: Pierre-Louis Bossart Date: Mon Jan 4 17:20:27 2016 -0600 ASoC: Intel: bytcr-rt5640: enable ASRC Sound is noisy when using BCLK as reference, enable ASRC in rt5640 codec Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown sound/soc/intel/boards/bytcr_rt5640.c | 5 +++++ 1 file changed, 5 insertions(+) commit 8937672cd120cc3a4842376f59a70a9a77b08d1d Merge: 51b2c42 bee3e02 Author: Mark Brown Date: Tue Jan 5 12:37:06 2016 +0000 Merge branch 'topic/rt5640' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-intel commit bee3e020247eb2573a85a0f558c4a13aba2b81fe Author: Jack Yu Date: Mon Jan 4 17:20:26 2016 -0600 ASoC: rt5640: add ASRC support Signed-off-by: Jack Yu Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown sound/soc/codecs/rt5640.c | 102 ++++++++++++++++++++++++++++++++++++++++++++++ sound/soc/codecs/rt5640.h | 17 ++++++++ 2 files changed, 119 insertions(+) commit 9d0c1c3332b49570454bb11e55d3c6c7993163da Author: Geliang Tang Date: Fri Jan 1 20:29:00 2016 +0800 spi: zynq: use to_platform_device() Use to_platform_device() instead of open-coding it. Signed-off-by: Geliang Tang Reviewed-by: Moritz Fischer Signed-off-by: Mark Brown drivers/spi/spi-zynqmp-gqspi.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 9033a5f9ac83538502a2bddc62311b09d966799e Author: Geliang Tang Date: Fri Jan 1 20:28:59 2016 +0800 spi: cadence: use to_platform_device() Use to_platform_device() instead of open-coding it. Signed-off-by: Geliang Tang Reviewed-by: Moritz Fischer Signed-off-by: Mark Brown drivers/spi/spi-cadence.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 15b0f4d4b169dde8ecc4e162bcd6cd145cb09fed Author: Bard Liao Date: Tue Jan 5 14:22:11 2016 +0800 ASoC: rt5645: improve IRQ reaction time for HS button IRQ reaction time is not immediate when headset putton is pressed. This patch shortens the reaction time. Signed-off-by: John Lin Signed-off-by: Bard Liao Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 1 + 1 file changed, 1 insertion(+) commit f930896967fa3f9ab16a6f87267b92798308d48f Author: Ard Biesheuvel Date: Tue Jan 5 10:18:52 2016 +0100 arm64: module: avoid undefined shift behavior in reloc_data() Compilers may engage the improbability drive when encountering shifts by a distance that is a multiple of the size of the operand type. Since the required bounds check is very simple here, we can get rid of all the fuzzy masking, shifting and comparing, and use the documented bounds directly. Reported-by: David Binderman Signed-off-by: Ard Biesheuvel Signed-off-by: Will Deacon arch/arm64/kernel/module.c | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) commit b24a557527f97ad88619d5bd4c8017c635056d69 Author: Ard Biesheuvel Date: Tue Jan 5 10:18:51 2016 +0100 arm64: module: fix relocation of movz instruction with negative immediate The test whether a movz instruction with a signed immediate should be turned into a movn instruction (i.e., when the immediate is negative) is flawed, since the value of imm is always positive. Also, the subsequent bounds check is incorrect since the limit update never executes, due to the fact that the imm_type comparison will always be false for negative signed immediates. Let's fix this by performing the sign test on sval directly, and replacing the bounds check with a simple comparison against U16_MAX. Signed-off-by: Ard Biesheuvel [will: tidied up use of sval, renamed MOVK enum value to MOVKZ] Signed-off-by: Will Deacon arch/arm64/kernel/module.c | 51 ++++++++++++++++------------------------------ 1 file changed, 18 insertions(+), 33 deletions(-) commit 598bcc6ea6ec4032d2ace8b1b43d11b4708af072 Merge: 0bed4b7 e679660 Author: Russell King Date: Tue Jan 5 11:07:28 2016 +0000 Merge branches 'misc' and 'misc-rc6' into for-linus commit 1609bac8af31f4a21bf330583c8a447e6f3d6155 Author: Christoph Hellwig Date: Mon Jan 4 12:33:13 2016 +0100 configfs: add myself as co-maintainer, updated git tree Signed-off-by: Christoph Hellwig Signed-off-by: Joel Becker MAINTAINERS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 09dd5f9e240e738b4d5e2e602c3b66659babf068 Author: Linus Walleij Date: Mon Dec 7 15:31:58 2015 +0100 gpio: fix misleading comment We are not relying on container_of() now that we have gpiochip_get_data(). Signed-off-by: Linus Walleij drivers/gpio/gpiolib.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4eab22e748b550045b8a98be3b72f31e22557605 Author: Linus Walleij Date: Tue Dec 8 10:41:44 2015 +0100 gpio: convert remaining users to gpiochip_add_data() For completion, sweep the floor from all gpiochip_add() usage so we can remove that function and get rid of the function wrapper gpiochip_add(). Signed-off-by: Linus Walleij drivers/gpio/gpio-ich.c | 2 +- drivers/gpio/gpio-iop.c | 2 +- drivers/gpio/gpio-janz-ttl.c | 2 +- drivers/gpio/gpio-ks8695.c | 2 +- drivers/gpio/gpio-loongson.c | 2 +- drivers/gpio/gpio-sa1100.c | 2 +- drivers/gpio/gpio-tegra.c | 2 +- drivers/gpio/gpio-twl6040.c | 2 +- drivers/gpio/gpio-vr41xx.c | 2 +- drivers/gpio/gpio-xtensa.c | 4 ++-- 10 files changed, 11 insertions(+), 11 deletions(-) commit 31a8944752f8a91d8591148f60cd6dfb08c4e415 Author: Linus Walleij Date: Mon Dec 7 15:29:53 2015 +0100 gpio: zynq: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Michal Simek Cc: Sören Brinkmann Signed-off-by: Linus Walleij drivers/gpio/gpio-zynq.c | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) commit 17758b0490e6ce100648f80cd611ef360a69432a Author: Linus Walleij Date: Mon Dec 7 15:27:49 2015 +0100 gpio: zx: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Jun Nie Signed-off-by: Linus Walleij drivers/gpio/gpio-zx.c | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) commit 9a3ad668a081163ad5108a6f5d3a7ddaa0390098 Author: Linus Walleij Date: Mon Dec 7 15:26:02 2015 +0100 gpio: zevio: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Fabian Vogt Signed-off-by: Linus Walleij drivers/gpio/gpio-zevio.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit e730a5953af4c54a50fb7712af4dd9468dedcd22 Author: Linus Walleij Date: Mon Dec 7 15:22:31 2015 +0100 gpio: xlp: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Kamlakant Patel Signed-off-by: Linus Walleij drivers/gpio/gpio-xlp.c | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) commit 097d88e94c44112327011f572c7fff82a44c1d54 Author: Linus Walleij Date: Mon Dec 7 15:20:17 2015 +0100 gpio: xilinx: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Michal Simek Cc: Sören Brinkmann Signed-off-by: Linus Walleij drivers/gpio/gpio-xilinx.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) commit ac9dc85eeaf2e8f19a1846979c4dc700d4fb54dc Author: Linus Walleij Date: Mon Dec 7 15:16:50 2015 +0100 gpio: xgene: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Feng Kan Signed-off-by: Linus Walleij drivers/gpio/gpio-xgene.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) commit 765aa58778a5726a026a72773dda4d97036d3d1d Author: Linus Walleij Date: Mon Dec 7 15:15:30 2015 +0100 gpio: wm8994: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: patches@opensource.wolfsonmicro.com Cc: Mark Brown Acked-by: Charles Keepax Signed-off-by: Linus Walleij drivers/gpio/gpio-wm8994.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) commit dfcdf7214ec921d792d93a4f5602da2073043073 Author: Linus Walleij Date: Mon Dec 7 15:13:39 2015 +0100 gpio: wm8350: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: patches@opensource.wolfsonmicro.com Cc: Mark Brown Acked-by: Charles Keepax Signed-off-by: Linus Walleij drivers/gpio/gpio-wm8350.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) commit 9b3c817b529e0bbe0d5a0a45e86e8647a729640c Author: Linus Walleij Date: Mon Dec 7 15:11:34 2015 +0100 gpio: wm831x: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: patches@opensource.wolfsonmicro.com Cc: Mark Brown Acked-by: Charles Keepax Signed-off-by: Linus Walleij drivers/gpio/gpio-wm831x.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) commit 9355879ea42b84914ab27064df6760b2a7db0883 Author: Linus Walleij Date: Mon Dec 7 15:09:57 2015 +0100 gpio: vx855: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Signed-off-by: Linus Walleij drivers/gpio/gpio-vx855.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 2a873c8d623023ecfde33542729bfb682fcd0f12 Author: Linus Walleij Date: Mon Dec 7 15:08:00 2015 +0100 gpio: viperboard: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Lars Poeschel Signed-off-by: Linus Walleij drivers/gpio/gpio-viperboard.c | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) commit 65389b490089fa387052b5946a4dc2f637eaeb9a Author: Linus Walleij Date: Mon Dec 7 15:03:30 2015 +0100 gpio: vf610: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Stefan Agner Signed-off-by: Linus Walleij drivers/gpio/gpio-vf610.c | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) commit 9af4f0ab8af889cebbfd4dd70d2aa469c4f161da Author: Linus Walleij Date: Mon Dec 7 15:01:14 2015 +0100 gpio: ucb1400: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Signed-off-by: Linus Walleij drivers/gpio/gpio-ucb1400.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 7020e7c513e91a2e18ab67935e657c4de17e9043 Author: Linus Walleij Date: Mon Dec 7 14:58:56 2015 +0100 gpio: tz1090: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: James Hogan Signed-off-by: Linus Walleij drivers/gpio/gpio-tz1090.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) commit 059e3972d00760e7d6dda54789fbbe05acf186a1 Author: Linus Walleij Date: Mon Dec 7 14:57:25 2015 +0100 gpio: tz1090-pdc: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: James Hogan Signed-off-by: Linus Walleij drivers/gpio/gpio-tz1090-pdc.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit 231a8680b78260f5d9905beaf36741fcf9940a29 Author: Linus Walleij Date: Mon Dec 7 14:55:07 2015 +0100 gpio: twl4030: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Roger Quadros Acked-by: Tony Lindgren Signed-off-by: Linus Walleij drivers/gpio/gpio-twl4030.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) commit 11ab89ac4d9f3fad9737e32f40f475fb9d301232 Author: Linus Walleij Date: Mon Dec 7 14:52:55 2015 +0100 gpio: ts5500: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Acked-by: Vivien Didelot Signed-off-by: Linus Walleij drivers/gpio/gpio-ts5500.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) commit ad8dd23c458fcc06c0b9045a6b7b8357f3e717b9 Author: Linus Walleij Date: Mon Dec 7 14:50:42 2015 +0100 gpio: tps65912: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Nicolas Saenz Julienne Cc: Margarita Olaya Signed-off-by: Linus Walleij drivers/gpio/gpio-tps65912.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) commit b7c17b1b97d3b5cbbcc0e902823b7ade5dbb4c4a Author: Linus Walleij Date: Mon Dec 7 14:48:49 2015 +0100 gpio: tps65910: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Acked-By: Rhyland Klein Acked-by: Laxman Dewangan Signed-off-by: Linus Walleij drivers/gpio/gpio-tps65910.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) commit 94a90370427fb927442c0a00180ddbaf08f577df Author: Linus Walleij Date: Mon Dec 7 14:46:45 2015 +0100 gpio: tps6586x: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Acked-by: Laxman Dewangan Signed-off-by: Linus Walleij drivers/gpio/gpio-tps6586x.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) commit 92a41e2f73879373a4ce2df4b2137d03ba1289ec Author: Linus Walleij Date: Mon Dec 7 14:43:28 2015 +0100 gpio: timberdale: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Signed-off-by: Linus Walleij drivers/gpio/gpio-timberdale.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit b0d384733c05906b807cbb9a1b732ad12b521dbe Author: Linus Walleij Date: Thu Dec 3 15:37:29 2015 +0100 gpio: tc3589x: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Signed-off-by: Linus Walleij drivers/gpio/gpio-tc3589x.c | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) commit 0ca8c5c4af758b2a8d763b33508f99a3116c3c01 Author: Linus Walleij Date: Mon Dec 7 14:41:02 2015 +0100 gpio: tb10x: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Christian Ruppert Signed-off-by: Linus Walleij drivers/gpio/gpio-tb10x.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) commit d27ad7a833443fe0c4247129ab97105f1d845cda Author: Linus Walleij Date: Mon Dec 7 14:38:36 2015 +0100 gpio: syscon: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Alexander Shiyan Signed-off-by: Linus Walleij drivers/gpio/gpio-syscon.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) commit 5b90b8c217e92ce9f027af5aa2cb12bdbbd2127a Author: Linus Walleij Date: Mon Dec 7 14:36:31 2015 +0100 gpio: sx150x: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Wei Chen Signed-off-by: Linus Walleij drivers/gpio/gpio-sx150x.c | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) commit c63b30b08971ad5894061841a2c7f012eea747c0 Author: Linus Walleij Date: Mon Dec 7 14:34:33 2015 +0100 gpio: stp-xway: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Martin Blumenstingl Signed-off-by: Linus Walleij drivers/gpio/gpio-stp-xway.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit b03c04a0aab1715ca8c501d41f9175a9047ef79f Author: Linus Walleij Date: Mon Dec 7 14:32:13 2015 +0100 gpio: stmpe: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Bhupesh Sharma Signed-off-by: Linus Walleij drivers/gpio/gpio-stmpe.c | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) commit 0b2c529a3b4d78d700c616e146411594a60cab18 Author: Linus Walleij Date: Mon Dec 7 14:29:48 2015 +0100 gpio: sta2x11: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Alessandro Rubini Signed-off-by: Linus Walleij drivers/gpio/gpio-sta2x11.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit c0ad184adb74d30b9010ecdec955d63481f79101 Author: Linus Walleij Date: Mon Dec 7 14:26:58 2015 +0100 gpio: spear-spics: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Shiraz Hashim Signed-off-by: Linus Walleij drivers/gpio/gpio-spear-spics.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit 8ca7f1fab866a0ce22c878cb824ba5f73c3e0556 Author: Linus Walleij Date: Mon Dec 7 14:24:24 2015 +0100 gpio: sch311x: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Acked-by: Bruno Randolf Signed-off-by: Linus Walleij drivers/gpio/gpio-sch311x.c | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) commit 737c8fccf1c5b2aae3c6d9a66dce17e35fc39b71 Author: Linus Walleij Date: Mon Dec 7 14:21:49 2015 +0100 gpio: sch: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Chang Rebecca Swee Fun Acked-by: Mika Westerberg Signed-off-by: Linus Walleij drivers/gpio/gpio-sch.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit ff4cd029c184f5dabdfe9e115bf657ebd6a2c0f3 Author: Linus Walleij Date: Mon Dec 7 14:19:19 2015 +0100 gpio: samsung: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Paul Bolle Cc: Kukjin Kim Acked-by: Tomasz Figa Signed-off-by: Linus Walleij drivers/gpio/gpio-samsung.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 78132252cc4c6cecec25491a7bcfb6567bf29147 Author: Linus Walleij Date: Mon Dec 7 14:16:19 2015 +0100 gpio: rdc321x: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Signed-off-by: Linus Walleij drivers/gpio/gpio-rdc321x.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit c7b6f457cb53bceece484f4c528d1c149995e6c7 Author: Linus Walleij Date: Mon Dec 7 14:12:45 2015 +0100 gpio: rcar: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Ulrich Hecht Cc: Geert Uytterhoeven Cc: Hisashi Nakamura Signed-off-by: Linus Walleij drivers/gpio/gpio-rcar.c | 33 ++++++++++++--------------------- 1 file changed, 12 insertions(+), 21 deletions(-) commit d660c68eb5b24051a4765d473765d9021a720975 Author: Linus Walleij Date: Mon Dec 7 14:08:12 2015 +0100 gpio: rc5t583: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Acked-by: Laxman Dewangan Signed-off-by: Linus Walleij drivers/gpio/gpio-rc5t583.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) commit 81d0c31d11846f282f08ff81219ff6b7230a78b1 Author: Linus Walleij Date: Mon Dec 7 11:42:22 2015 +0100 gpio: pxa: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Daniel Mack Acked-by: Robert Jarzmik Signed-off-by: Linus Walleij drivers/gpio/gpio-pxa.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit d81b37fcad764c7babd7dd858aeb1b9afd2df5cc Author: Linus Walleij Date: Mon Dec 7 11:37:33 2015 +0100 gpio: pl061: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Haojian Zhuang Signed-off-by: Linus Walleij drivers/gpio/gpio-pl061.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 510f48713711abed9a79aa405147687dd256d072 Author: Linus Walleij Date: Mon Dec 7 11:34:53 2015 +0100 gpio: pch: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Thierry Reding Cc: Daniel Krueger Reviewed-by: Jean Delvare Signed-off-by: Linus Walleij drivers/gpio/gpio-pch.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 597358e41070e03479a7724b16eb3c6c7ea50027 Author: Linus Walleij Date: Mon Dec 7 11:24:05 2015 +0100 gpio: pcf857x: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Grygorii Strashko Cc: George Cherian Cc: Laurent Pinchart Signed-off-by: Linus Walleij drivers/gpio/gpio-pcf857x.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 468e67f6eb7494e3c4d4d644f281d0ba0cc265c6 Author: Linus Walleij Date: Mon Dec 7 11:20:54 2015 +0100 gpio: pca953x: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Grygorii Strashko Cc: Markus Pargmann Cc: Toby Smith Signed-off-by: Linus Walleij drivers/gpio/gpio-pca953x.c | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) commit 5b68cc2d5963e2241d36f07c5f5964d54fa7bc6f Author: Linus Walleij Date: Mon Dec 7 11:18:17 2015 +0100 gpio: palmas: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Andrew Chew Cc: Stephen Warren Acked-by: Laxman Dewangan Signed-off-by: Linus Walleij drivers/gpio/gpio-palmas.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) commit d99f7aec6e8b4ffe10d6df71d17d2c5cbef2ac65 Author: Linus Walleij Date: Mon Dec 7 11:16:00 2015 +0100 gpio: omap: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Grygorii Strashko Cc: Tony Lindgren Acked-by: Santosh Shilimkar Signed-off-by: Linus Walleij drivers/gpio/gpio-omap.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit f5cc554e1cf17482781069b671090d3a35d5413b Author: Linus Walleij Date: Mon Dec 7 11:13:27 2015 +0100 gpio: octeon: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Reviewed-by: David Daney Signed-off-by: Linus Walleij drivers/gpio/gpio-octeon.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit bbe760041a05d51746f1b1cd658aaef91466bafc Author: Linus Walleij Date: Mon Dec 7 11:09:24 2015 +0100 gpio: mvebu: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Gregory CLEMENT Cc: Thomas Petazzoni Signed-off-by: Linus Walleij drivers/gpio/gpio-mvebu.c | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) commit a772a26da7cf605ed33382d7822ebfac18c6b1ef Author: Linus Walleij Date: Mon Dec 7 10:37:39 2015 +0100 gpio: msic: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Acked-by: Mathias Nyman Signed-off-by: Linus Walleij drivers/gpio/gpio-msic.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 709d71a17c3383eca79ce9142b8d4ddc0f8028d0 Author: Linus Walleij Date: Mon Dec 7 10:34:28 2015 +0100 gpio: mpc8xxx: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Uwe Kleine-König Acked-by: Alexander Stein Signed-off-by: Linus Walleij drivers/gpio/gpio-mpc8xxx.c | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) commit 837c2705a3d5adca3ff5532d9cb6215803bea5f2 Author: Linus Walleij Date: Mon Dec 7 10:25:36 2015 +0100 gpio: mpc5200: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Signed-off-by: Linus Walleij drivers/gpio/gpio-mpc5200.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) commit 6aa7dbfa28775189c53f6ac7f1bc4adf76c9d2ec Author: Linus Walleij Date: Mon Dec 7 10:19:29 2015 +0100 gpio: mm-lantiq: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Ricardo Ribalda Delgado Cc: John Crispin Signed-off-by: Linus Walleij drivers/gpio/gpio-mm-lantiq.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 47315578b9894140bef11e2b0fab55d2706e055c Author: Linus Walleij Date: Mon Dec 7 10:12:05 2015 +0100 gpio: ml-ioh: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Feng Tang Cc: Tomoya MORINAGA Signed-off-by: Linus Walleij drivers/gpio/gpio-ml-ioh.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 9e03cf0b12f19ef5dd8f113350e26b6d425ebbcb Author: Linus Walleij Date: Mon Dec 7 10:09:36 2015 +0100 gpio: mcp: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Sonic Zhang Acked-by: Alexander Stein Signed-off-by: Linus Walleij drivers/gpio/gpio-mcp23s08.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit cf90c9e35be883d8ebcca3d4a2b1044a234f24d8 Author: Linus Walleij Date: Mon Dec 7 10:07:07 2015 +0100 gpio: mc9s08dz60: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: wu guoxing Signed-off-by: Linus Walleij drivers/gpio/gpio-mc9s08dz60.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) commit 609f9692ccd7034aaf620a6cd4ec1b6fb9ba4c7b Author: Linus Walleij Date: Mon Dec 7 10:04:32 2015 +0100 gpio: mc33880: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Signed-off-by: Linus Walleij drivers/gpio/gpio-mc33880.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 01f76b267bdfaae5ead2fff5de7c80c81ffff1b4 Author: Linus Walleij Date: Mon Dec 7 10:01:36 2015 +0100 gpio: mb86s7x: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Acked-By: Jassi Brar Signed-off-by: Linus Walleij drivers/gpio/gpio-mb86s7x.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) commit 0788b6448067f51c53ef0514a82e3d89f91dfabd Author: Linus Walleij Date: Mon Dec 7 09:58:28 2015 +0100 gpio: max732x: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Nicholas Krause Cc: Marek Vasut Cc: Semen Protsenko Signed-off-by: Linus Walleij drivers/gpio/gpio-max732x.c | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) commit 5e45e019161977c70e236a043133cfa106cebbd9 Author: Linus Walleij Date: Mon Dec 7 09:27:05 2015 +0100 gpio: max730x: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Roland Stigge Signed-off-by: Linus Walleij drivers/gpio/gpio-max730x.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit f291e0063ba6c19ec3b60cce08293f78c0faf969 Author: Linus Walleij Date: Mon Dec 7 09:21:55 2015 +0100 gpio: lynxpoint: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Mathias Nyman Acked-by: Mika Westerberg Signed-off-by: Linus Walleij drivers/gpio/gpio-lynxpoint.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit a9bc97e43f56c0cf9a3f7528f0ed012fe352207c Author: Linus Walleij Date: Mon Dec 7 09:18:23 2015 +0100 gpio: lpc32xx: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Roland Stigge Acked-by: Vladimir Zapolskiy Signed-off-by: Linus Walleij drivers/gpio/gpio-lpc32xx.c | 33 ++++++++++++++------------------- 1 file changed, 14 insertions(+), 19 deletions(-) commit d3de31d467a13d50b4fc23407972cce61b2120a8 Author: Linus Walleij Date: Mon Dec 7 09:13:57 2015 +0100 gpio: lpc18xx: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Acked-by: Joachim Eastwood Signed-off-by: Linus Walleij drivers/gpio/gpio-lpc18xx.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) commit a2f33804657dbd347c4ae23c4e75dbfe950d89d4 Author: Linus Walleij Date: Mon Dec 7 09:10:13 2015 +0100 gpio: lp3943: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Milo Kim Signed-off-by: Linus Walleij drivers/gpio/gpio-lp3943.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) commit 1f89bccd7fe4f27b05b6404f24a35dcc5426817d Author: Linus Walleij Date: Mon Dec 7 09:06:22 2015 +0100 gpio: kempld: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Brunner Michael Cc: Guenter Roeck Signed-off-by: Linus Walleij drivers/gpio/gpio-kempld.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) commit 0a38fd94c20e6636c22630200a9cece122a89f0e Author: Linus Walleij Date: Mon Dec 7 09:03:09 2015 +0100 gpio: it87: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Diego Elio Pettenò Signed-off-by: Linus Walleij drivers/gpio/gpio-it87.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) commit 5c77c0212b97693219ead6dcddf7e036421012d7 Author: Linus Walleij Date: Sun Dec 6 10:55:28 2015 +0100 gpio: intel-mid: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: David Cohen Signed-off-by: Linus Walleij drivers/gpio/gpio-intel-mid.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) commit f372d5f59cc4879eee3efe19e309f95c4078d748 Author: Linus Walleij Date: Sun Dec 6 10:51:13 2015 +0100 gpio: f7188: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Andreas Bofjall Cc: Simon Guinot Signed-off-by: Linus Walleij drivers/gpio/gpio-f7188x.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) commit 6219e7bba9d52ea5d40cd50d0cfe6059c2630fab Author: Linus Walleij Date: Sun Dec 6 00:36:39 2015 +0100 gpio: em: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Geert Uytterhoeven Cc: Magnus Damm Signed-off-by: Linus Walleij drivers/gpio/gpio-em.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1880657a15842d2e617789f98a7a68f61c870592 Author: Linus Walleij Date: Sun Dec 6 00:32:16 2015 +0100 gpio: dln2: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Octavian Purdila Cc: Daniel Baluta Signed-off-by: Linus Walleij drivers/gpio/gpio-dln2.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) commit 72a1ca2cb9f415e01c2e6c1b84f172f188daf8d4 Author: Linus Walleij Date: Fri Dec 4 16:25:04 2015 +0100 gpio: davinci: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Grygorii Strashko Cc: Sekhar Nori Cc: Santosh Shilimkar Signed-off-by: Linus Walleij drivers/gpio/gpio-davinci.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) commit 552dd7959c7d2c4f60ea4fc1f06985db76ec2beb Author: Linus Walleij Date: Fri Dec 4 16:21:53 2015 +0100 gpio: da9055: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Ashish Jangam Signed-off-by: Linus Walleij drivers/gpio/gpio-da9055.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) commit 0f6082d2b811ec56c4f7ecdde80410e17cf04452 Author: Linus Walleij Date: Fri Dec 4 16:19:52 2015 +0100 gpio: da9052: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Ashish Jangam Signed-off-by: Linus Walleij drivers/gpio/gpio-da9052.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) commit c634fc19fe39f49a00d0e8e922a60ae24b8855b1 Author: Linus Walleij Date: Fri Dec 4 15:53:04 2015 +0100 gpio: cs5535: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Fabian Frederick Signed-off-by: Linus Walleij drivers/gpio/gpio-cs5535.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 435cc3d4286566c904c5ff63475ba9eb1e61e3e6 Author: Linus Walleij Date: Fri Dec 4 15:47:54 2015 +0100 gpio: crystalcove: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Shobhit Kumar Cc: Zhu, Lejun Signed-off-by: Linus Walleij drivers/gpio/gpio-crystalcove.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) commit e51b55236ca61a87bf8d1d61e8366726f7ea704c Author: Linus Walleij Date: Fri Dec 4 15:44:16 2015 +0100 gpio: bt8xx: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Michael Buesch Signed-off-by: Linus Walleij drivers/gpio/gpio-bt8xx.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit ba4a74485a32c1a5ea04e9ce9318cd73ed746fe2 Author: Linus Walleij Date: Fri Dec 4 15:39:50 2015 +0100 gpio: bcm-kona: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Markus Mayer Cc: Tim Kryger Cc: Matt Porter Signed-off-by: Linus Walleij drivers/gpio/gpio-bcm-kona.c | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) commit b4e97a61255cde7e5b2f2484140547ba37c7292c Author: Linus Walleij Date: Fri Dec 4 15:36:14 2015 +0100 gpio: ath79: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Acked-by: Alban Bedel Signed-off-by: Linus Walleij drivers/gpio/gpio-ath79.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) commit 18992d4ee577838e0fa006bad46d83cafccffbb3 Author: Linus Walleij Date: Fri Dec 4 15:31:31 2015 +0100 gpio: arizona: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Richard Fitzgerald Cc: Mark Brown Reviewed-by: Richard Fitzgerald Signed-off-by: Linus Walleij drivers/gpio/gpio-arizona.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) commit fb7228879a5a6552c9cd91561ca7c9b565a102aa Author: Linus Walleij Date: Fri Dec 4 15:29:41 2015 +0100 gpio: amdpt: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: YD Tseng Signed-off-by: Linus Walleij drivers/gpio/gpio-amdpt.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) commit 57683ec203a642e8fc8befac94c8341d237f5d54 Author: Linus Walleij Date: Fri Dec 4 15:26:35 2015 +0100 gpio: amd8111: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Dmitry Eremin-Solenikov Signed-off-by: Linus Walleij drivers/gpio/gpio-amd8111.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) commit 397d0773a9044c8df1be87e53840ab374932d80c Author: Linus Walleij Date: Fri Dec 4 15:16:43 2015 +0100 gpio: altera: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Tien Hock Loh Signed-off-by: Linus Walleij drivers/gpio/gpio-altera.c | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) commit f69255ce67b6e6f496d165b48231075262c9a225 Author: Linus Walleij Date: Fri Dec 4 15:05:34 2015 +0100 gpio: adp5588: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Jean-Francois Dagenais Signed-off-by: Linus Walleij drivers/gpio/gpio-adp5588.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) commit 5060e0e8934ca6685ea8bf185cbe0fa2118a946e Author: Linus Walleij Date: Fri Dec 4 15:01:50 2015 +0100 gpio: adp5520: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Signed-off-by: Linus Walleij drivers/gpio/gpio-adp5520.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 1e69c4fe2a67a63e6b392338dd01627ee26f9ca3 Author: Linus Walleij Date: Fri Dec 4 14:56:15 2015 +0100 gpio: adnp: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Signed-off-by: Linus Walleij drivers/gpio/gpio-adnp.c | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) commit b2afc6f3522c8f49a420cb77f5a9c51fe1d50e33 Author: Linus Walleij Date: Thu Dec 3 18:20:29 2015 +0100 gpio: 74x164: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Cc: Alexander Shiyan Signed-off-by: Linus Walleij drivers/gpio/gpio-74x164.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) commit d602ae90a35e66c418189e917395408dd2e85e20 Author: Linus Walleij Date: Thu Dec 3 18:18:06 2015 +0100 gpio: 104-idio-16: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Acked-by: William Breathitt Gray Signed-off-by: Linus Walleij drivers/gpio/gpio-104-idio-16.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) commit 1f36bec53f045c72707b40723d70d39ba1099122 Author: Linus Walleij Date: Thu Dec 3 15:31:48 2015 +0100 gpio: 104-idi-48: use gpiochip data pointer This makes the driver use the data pointer added to the gpio_chip to store a pointer to the state container instead of relying on container_of(). Acked-by: William Breathitt Gray Signed-off-by: Linus Walleij drivers/gpio/gpio-104-idi-48.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) commit 0f4630f3720e7e6e921bf525c8357fea7ef3dbab Author: Linus Walleij Date: Fri Dec 4 14:02:58 2015 +0100 gpio: generic: factor into gpio_chip struct The separate struct bgpio_chip has been a pain to handle, both by being confusingly similar in name to struct gpio_chip and for being contained inside a struct so that struct gpio_chip is contained in a struct contained in a struct, making several steps of dereferencing necessary. Make things simpler: include the fields directly into , #ifdef:ed for CONFIG_GENERIC_GPIO, and get rid of the altogether. Prefix some of the member variables with bgpio_* and add proper kerneldoc while we're at it. Modify all users to handle the change and use a struct gpio_chip directly. And while we're at it: replace all container_of() dereferencing by gpiochip_get_data() and registering the gpio_chip with gpiochip_add_data(). Cc: arm@kernel.org Cc: Alexander Shiyan Cc: Shawn Guo Cc: Sascha Hauer Cc: Kukjin Kim Cc: Alexandre Courbot Cc: Brian Norris Cc: Florian Fainelli Cc: Sudeep Holla Cc: Lorenzo Pieralisi Cc: Nicolas Pitre Cc: Olof Johansson Cc: Vladimir Zapolskiy Cc: Rabin Vincent Cc: linux-arm-kernel@lists.infradead.org Cc: linux-omap@vger.kernel.org Cc: linux-samsung-soc@vger.kernel.org Cc: bcm-kernel-feedback-list@broadcom.com Acked-by: Gregory Fong Acked-by: Liviu Dudau Acked-by: H Hartley Sweeten Acked-by: Tony Lindgren Acked-by: Krzysztof Kozlowski Acked-by: Lee Jones Signed-off-by: Linus Walleij arch/arm/mach-clps711x/board-autcpu12.c | 2 +- arch/arm/mach-clps711x/board-p720t.c | 2 +- arch/arm/mach-imx/mach-mx21ads.c | 2 +- arch/arm/mach-omap1/board-ams-delta.c | 2 +- arch/arm/mach-s3c64xx/mach-crag6410.c | 2 +- drivers/gpio/gpio-74xx-mmio.c | 37 ++-- drivers/gpio/gpio-brcmstb.c | 80 ++++----- drivers/gpio/gpio-clps711x.c | 28 +-- drivers/gpio/gpio-dwapb.c | 92 +++++----- drivers/gpio/gpio-ep93xx.c | 25 +-- drivers/gpio/gpio-etraxfs.c | 49 +++--- drivers/gpio/gpio-ge.c | 24 +-- drivers/gpio/gpio-generic.c | 292 +++++++++++++++----------------- drivers/gpio/gpio-grgpio.c | 73 ++++---- drivers/gpio/gpio-moxart.c | 29 ++-- drivers/gpio/gpio-mxc.c | 27 ++- drivers/gpio/gpio-mxs.c | 33 ++-- drivers/gpio/gpio-sodaville.c | 13 +- drivers/gpio/gpio-xgene-sb.c | 40 ++--- drivers/mfd/vexpress-sysreg.c | 8 +- include/linux/basic_mmio_gpio.h | 80 --------- include/linux/gpio/driver.h | 54 ++++++ 22 files changed, 442 insertions(+), 552 deletions(-) commit 3208b0f0c010b26e4d461a3bca59989d03ed9087 Author: Linus Walleij Date: Fri Dec 4 15:13:53 2015 +0100 gpio: of: provide optional of_mm_gpiochip_add_data() function In the same spirit as we add an optional void *data argument to the gpiochip_add_data() call, we need this also for of_mm_gpiochip_add(). Signed-off-by: Linus Walleij drivers/gpio/gpiolib-of.c | 12 +++++++----- include/linux/of_gpio.h | 10 ++++++++-- 2 files changed, 15 insertions(+), 7 deletions(-) commit b08ea35a3296ee25c4cb53a977b752266dafa2c2 Author: Linus Walleij Date: Thu Dec 3 15:14:13 2015 +0100 gpio: add a data pointer to gpio_chip This adds a void * pointer to gpio_chip so that driver can assign and retrieve some states. This is done to get rid of container_of() calls for gpio_chips embedded inside state containers, so we can remove the need to have the gpio_chip or later (planned) struct gpio_device be dynamically allocated at registration time, so that its struct device can be properly reference counted and not bound to its parent device (e.g. a platform_device) but instead live on after unregistration if it is opened by e.g. a char device or sysfs. The data is added with the new function gpiochip_add_data() and for compatibility we add static inline wrapper function gpiochip_add() that will call gpiochip_add_data() with NULL as argument. The latter will be removed once we have exorcised gpiochip_add() from the kernel. gpiochip_get_data() is added as a static inline accessor for drivers to quickly get their data out. Signed-off-by: Linus Walleij drivers/gpio/gpiolib.c | 10 ++++++---- include/linux/gpio/driver.h | 14 +++++++++++++- 2 files changed, 19 insertions(+), 5 deletions(-) commit 41d107ad92b4b8abf103b62269c34da80320f212 Author: Dan Carpenter Date: Tue Jan 5 12:56:37 2016 +0300 gpio: pxa: checking IS_ERR() instead of NULL irq_domain_add_legacy() returns NULL on error, it doesn't return error pointers. Fixes: 384ca3c6a28d ('gpio: pxa: change the interrupt management') Signed-off-by: Dan Carpenter Signed-off-by: Linus Walleij drivers/gpio/gpio-pxa.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit aab24a897cfba9dd371f6aac45dbcdae0b23def6 Author: Vegard Nossum Date: Fri Jan 1 17:34:05 2016 +0100 kconfig: return 'false' instead of 'no' in bool function menu_is_visible() is a bool function and should use boolean return values. "no" is a tristate value which happens to also have a value of 0, but we should nevertheless use the right symbol for it. This is a very minor cleanup with no semantic change. Fixes: 86e187ff9 ("kconfig: add an option to determine a menu's visibility") Cc: Arnaud Lacombe Cc: Mauro Carvalho Chehab Signed-off-by: Vegard Nossum Signed-off-by: Michal Marek scripts/kconfig/menu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4b63739efabc93d67d2b6812dd0cd41358fadf29 Author: Linus Walleij Date: Tue Jan 5 11:13:28 2016 +0100 gpio: generic: fix signedness bug found by cppcheck cppcheck reports this: (style) int result is returned as long value. If the return value is long to avoid loss of information, then you have loss of information. This can be fixed with (1UL << pin) but that is the same as using that already use 1UL so take this approach. Reported-by: David Binderman Signed-off-by: Linus Walleij drivers/gpio/gpio-generic.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 2039e6acaf94d83ec6b6d9f3d0bce7ea1f099918 Author: Toshi Kani Date: Tue Dec 22 17:54:24 2015 -0700 x86/mm/pat: Change free_memtype() to support shrinking case Using mremap() to shrink the map size of a VM_PFNMAP range causes the following error message, and leaves the pfn range allocated. x86/PAT: test:3493 freeing invalid memtype [mem 0x483200000-0x4863fffff] This is because rbt_memtype_erase(), called from free_memtype() with spin_lock held, only supports to free a whole memtype node in memtype_rbroot. Therefore, this patch changes rbt_memtype_erase() to support a request that shrinks the size of a memtype node for mremap(). memtype_rb_exact_match() is renamed to memtype_rb_match(), and is enhanced to support EXACT_MATCH and END_MATCH in @match_type. Since the memtype_rbroot tree allows overlapping ranges, rbt_memtype_erase() checks with EXACT_MATCH first, i.e. free a whole node for the munmap case. If no such entry is found, it then checks with END_MATCH, i.e. shrink the size of a node from the end for the mremap case. On the mremap case, rbt_memtype_erase() proceeds in two steps, 1) remove the node, and then 2) insert the updated node. This allows proper update of augmented values, subtree_max_end, in the tree. Signed-off-by: Toshi Kani Cc: Ingo Molnar Cc: H. Peter Anvin Cc: Borislav Petkov Cc: stsp@list.ru Cc: linux-mm@kvack.org Link: http://lkml.kernel.org/r/1450832064-10093-3-git-send-email-toshi.kani@hpe.com Signed-off-by: Thomas Gleixner arch/x86/mm/pat.c | 2 +- arch/x86/mm/pat_rbtree.c | 52 +++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 44 insertions(+), 10 deletions(-) commit d9fe4fab11976e56b2e992980bf6ce948bdf02ac Author: Toshi Kani Date: Tue Dec 22 17:54:23 2015 -0700 x86/mm/pat: Add untrack_pfn_moved for mremap mremap() with MREMAP_FIXED on a VM_PFNMAP range causes the following WARN_ON_ONCE() message in untrack_pfn(). WARNING: CPU: 1 PID: 3493 at arch/x86/mm/pat.c:985 untrack_pfn+0xbd/0xd0() Call Trace: [] dump_stack+0x45/0x57 [] warn_slowpath_common+0x86/0xc0 [] warn_slowpath_null+0x1a/0x20 [] untrack_pfn+0xbd/0xd0 [] unmap_single_vma+0x80e/0x860 [] unmap_vmas+0x55/0xb0 [] unmap_region+0xac/0x120 [] do_munmap+0x28a/0x460 [] move_vma+0x1b3/0x2e0 [] SyS_mremap+0x3b3/0x510 [] entry_SYSCALL_64_fastpath+0x12/0x71 MREMAP_FIXED moves a pfnmap from old vma to new vma. untrack_pfn() is called with the old vma after its pfnmap page table has been removed, which causes follow_phys() to fail. The new vma has a new pfnmap to the same pfn & cache type with VM_PAT set. Therefore, we only need to clear VM_PAT from the old vma in this case. Add untrack_pfn_moved(), which clears VM_PAT from a given old vma. move_vma() is changed to call this function with the old vma when VM_PFNMAP is set. move_vma() then calls do_munmap(), and untrack_pfn() is a no-op since VM_PAT is cleared. Reported-by: Stas Sergeev Signed-off-by: Toshi Kani Cc: Thomas Gleixner Cc: Ingo Molnar Cc: H. Peter Anvin Cc: Borislav Petkov Cc: linux-mm@kvack.org Link: http://lkml.kernel.org/r/1450832064-10093-2-git-send-email-toshi.kani@hpe.com Signed-off-by: Thomas Gleixner arch/x86/mm/pat.c | 10 ++++++++++ include/asm-generic/pgtable.h | 10 +++++++++- mm/mremap.c | 4 ++++ 3 files changed, 23 insertions(+), 1 deletion(-) commit 13e676be085341c1161c3daf535e98ec6d5d6e3c Author: Linus Walleij Date: Mon Dec 21 23:03:02 2015 +0100 fbdev: via-gpio: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Cc: Florian Tobias Schandinat Acked-by: Tomi Valkeinen Signed-off-by: Linus Walleij drivers/video/fbdev/via/via-gpio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 33203f5b94338564bceed3e0ce33028f4732ae5c Author: Linus Walleij Date: Tue Jan 5 10:23:28 2016 +0100 pinctrl: qcom: fix up errorpath This fixes up: commit 464231fb1fb1360399a2eb11479c47e39facb030 "pinctrl: ssbi-gpio: Be sure to clamp return value" commit b9164f049339006fafe8a52396e0f1997552214a "gpio: ssbi-mpp: Be sure to clamp return value" as I managed to screw up some of the logic when clamping the return values. Cc: Björn Andersson Signed-off-by: Linus Walleij drivers/pinctrl/qcom/pinctrl-ssbi-gpio.c | 4 ++-- drivers/pinctrl/qcom/pinctrl-ssbi-mpp.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit 4cba68507cf58db99752cf79198beb4a85a9f8ce Author: Daniel Vetter Date: Tue Dec 8 09:49:20 2015 +0100 drm/atomic-helper: Reject legacy flips on a disabled pipe We want this for consistency with existing page_flip semantics. Since this spurred quite a discussion on IRC also document why we reject event generation when the pipe is off: It's not that it's hard to implement, but userspace has a track recording which proves that it's way too easy to accidentally abuse and cause havoc. We want to make sure userspace doesn't get away with that. v2: Somehow thought we do reject events already, but that code only existed in my imagination ... Also suggestions from Thierry. Cc: Daniel Stone Cc: Ville Syrjälä Cc: Thierry Reding Reviewed-by: Daniel Stone Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449564561-3896-4-git-send-email-daniel.vetter@ffwll.ch drivers/gpu/drm/drm_atomic.c | 16 ++++++++++++++++ drivers/gpu/drm/drm_atomic_helper.c | 9 +++++++++ include/drm/drm_crtc.h | 3 ++- 3 files changed, 27 insertions(+), 1 deletion(-) commit 4cd9fa529d77dde8f760adb3d934dfac6e169b1e Author: Maarten Lankhorst Date: Mon Jan 4 12:53:18 2016 +0100 drm/atomic: add connector mask to drm_crtc_state. It can be useful to iterate over connectors without grabbing connection_mutex. It can also be used to see how many connectors are on a crtc without iterating over the list. Signed-off-by: Maarten Lankhorst Link: http://patchwork.freedesktop.org/patch/msgid/1451908400-25147-4-git-send-email-maarten.lankhorst@linux.intel.com Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic.c | 11 +++++++++++ include/drm/drm_crtc.h | 3 +++ 2 files changed, 14 insertions(+) commit 5459a2ad9da0c93161f31cfda5d39e23b64d50f8 Author: Maarten Lankhorst Date: Mon Jan 4 12:53:17 2016 +0100 drm/tegra: Use __drm_atomic_helper_reset_connector for subclassing connector state, v2. Changes since v1: - Do not reset if state allocation fails. Signed-off-by: Maarten Lankhorst Acked-by: Thierry Reding #irc Link: http://patchwork.freedesktop.org/patch/msgid/1451908400-25147-3-git-send-email-maarten.lankhorst@linux.intel.com Signed-off-by: Daniel Vetter drivers/gpu/drm/tegra/dsi.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit 4cd39917ddb2fb5691e05b13b13f1f2398343b3e Author: Maarten Lankhorst Date: Mon Jan 4 12:53:16 2016 +0100 drm/atomic: Add __drm_atomic_helper_connector_reset, v2. This is useful for drivers that subclass connector_state, like tegra. Changes since v1: - Docbook updates. Signed-off-by: Maarten Lankhorst Link: http://patchwork.freedesktop.org/patch/msgid/1451908400-25147-2-git-send-email-maarten.lankhorst@linux.intel.com Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic_helper.c | 30 ++++++++++++++++++++++++++---- include/drm/drm_atomic_helper.h | 2 ++ 2 files changed, 28 insertions(+), 4 deletions(-) commit 5350a031247680590724a1badc112d1217f721d6 Author: Maarten Lankhorst Date: Mon Jan 4 12:53:15 2016 +0100 drm/i915: Set connector_state->connector using the helper. The atomic helper sets connector_state->connector, which the i915 code didn't. This will become a problem when we start using it. Signed-off-by: Maarten Lankhorst Acked-by: Thierry Reding Link: http://patchwork.freedesktop.org/patch/msgid/1451908400-25147-1-git-send-email-maarten.lankhorst@linux.intel.com Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 0f646425b94a01606450eb03b3a8f3b5e03ea9b8 Author: Chris Wilson Date: Mon Jan 4 10:11:01 2016 +0000 drm: Use a normal idr allocation for the obj->name Unlike the handle, the name table uses a sleeping mutex rather than a spinlock. The allocation is in a normal context, and we can use the simpler sleeping gfp_t, rather than have to take from the atomic reserves. Signed-off-by: Chris Wilson Reviewed-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1451902261-25380-3-git-send-email-chris@chris-wilson.co.uk Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_gem.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 98a8883ad419128493b8cfab3982d58785deabda Author: Chris Wilson Date: Mon Jan 4 10:11:00 2016 +0000 drm: Only bump object-reference count when adding first handle We only need a single reference count for all handles (i.e. non-zero obj->handle_count) and so can trim a few atomic operations by only taking the reference on the first handle and dropping it after the last. Signed-off-by: Chris Wilson Reviewed-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1451902261-25380-2-git-send-email-chris@chris-wilson.co.uk Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_gem.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) commit 6984128d01cf935820a0563f3a00c6623ba58109 Author: Chris Wilson Date: Mon Jan 4 10:10:59 2016 +0000 drm: Balance error path for GEM handle allocation The current error path for failure when establishing a handle for a GEM object is unbalance, e.g. we call object_close() without calling first object_open(). Use the typical onion structure to only undo what has been set up prior to the error. Signed-off-by: Chris Wilson Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_gem.c | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) commit 7b8ad495d59280b634a7b546f4cdf58cf4d65f61 Author: Vaibhav Jain Date: Tue Nov 24 16:26:18 2015 +0530 cxl: Fix DSI misses when the context owning task exits Presently when a user-space process issues CXL_IOCTL_START_WORK ioctl we store the pid of the current task_struct and use it to get pointer to the mm_struct of the process, while processing page or segment faults from the capi card. However this causes issues when the thread that had originally issued the start-work ioctl exits in which case the stored pid is no more valid and the cxl driver is unable to handle faults as the mm_struct corresponding to process is no more accessible. This patch fixes this issue by using the mm_struct of the next alive task in the thread group. This is done by iterating over all the tasks in the thread group starting from thread group leader and calling get_task_mm on each one of them. When a valid mm_struct is obtained the pid of the associated task is stored in the context replacing the exiting one for handling future faults. The patch introduces a new function named get_mem_context that checks if the current task pointed to by ctx->pid is dead? If yes it performs the steps described above. Also a new variable cxl_context.glpid is introduced which stores the pid of the thread group leader associated with the context owning task. Reported-by: Matthew R. Ochs Reported-by: Frank Haverkamp Suggested-by: Ian Munsie Signed-off-by: Vaibhav Jain Acked-by: Ian Munsie Reviewed-by: Frederic Barrat Reviewed-by: Matthew R. Ochs Signed-off-by: Michael Ellerman drivers/misc/cxl/api.c | 2 +- drivers/misc/cxl/context.c | 6 ++- drivers/misc/cxl/cxl.h | 3 ++ drivers/misc/cxl/fault.c | 129 +++++++++++++++++++++++++++++++++------------ drivers/misc/cxl/file.c | 6 ++- 5 files changed, 109 insertions(+), 37 deletions(-) commit 6a5ef90c58daada158ba16ba330558efc3471491 Merge: ebb3cf4 3ca8e40 Author: David S. Miller Date: Mon Jan 4 22:49:59 2016 -0500 Merge branch 'faster-soreuseport' Craig Gallek says: ==================== Faster SO_REUSEPORT This series contains two optimizations for the SO_REUSEPORT feature: Faster lookup when selecting a socket for an incoming packet and the ability to select the socket from the group using a BPF program. This series only includes the UDP path. I plan to submit a follow-up including the TCP path if the implementation in this series is acceptable. Changes in v4: - pskb_may_pull is unnecessary with pskb_pull (per Alexei Starovoitov) Changes in v3: - skb_pull_inline -> pskb_pull (per Alexei Starovoitov) - reuseport_attach* -> sk_reuseport_attach* and simple return statement syntax change (per Daniel Borkmann) Changes in v2: - Fix ARM build; remove unnecessary include. - Handle case where protocol header is not in linear section (per Alexei Starovoitov). ==================== Signed-off-by: David S. Miller commit 3ca8e4029969d40ab90e3f1ecd83ab1cadd60fbb Author: Craig Gallek Date: Mon Jan 4 17:41:48 2016 -0500 soreuseport: BPF selection functional test This program will build classic and extended BPF programs and validate the socket selection logic when used with SO_ATTACH_REUSEPORT_CBPF and SO_ATTACH_REUSEPORT_EBPF. It also validates the re-programing flow and several edge cases. Signed-off-by: Craig Gallek Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller tools/testing/selftests/net/.gitignore | 1 + tools/testing/selftests/net/Makefile | 2 +- tools/testing/selftests/net/reuseport_bpf.c | 467 ++++++++++++++++++++++++++++ 3 files changed, 469 insertions(+), 1 deletion(-) commit 538950a1b7527a0a52ccd9337e3fcd304f027f13 Author: Craig Gallek Date: Mon Jan 4 17:41:47 2016 -0500 soreuseport: setsockopt SO_ATTACH_REUSEPORT_[CE]BPF Expose socket options for setting a classic or extended BPF program for use when selecting sockets in an SO_REUSEPORT group. These options can be used on the first socket to belong to a group before bind or on any socket in the group after bind. This change includes refactoring of the existing sk_filter code to allow reuse of the existing BPF filter validation checks. Signed-off-by: Craig Gallek Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller arch/alpha/include/uapi/asm/socket.h | 3 + arch/avr32/include/uapi/asm/socket.h | 3 + arch/frv/include/uapi/asm/socket.h | 3 + arch/ia64/include/uapi/asm/socket.h | 3 + arch/m32r/include/uapi/asm/socket.h | 3 + arch/mips/include/uapi/asm/socket.h | 3 + arch/mn10300/include/uapi/asm/socket.h | 3 + arch/parisc/include/uapi/asm/socket.h | 3 + arch/powerpc/include/uapi/asm/socket.h | 3 + arch/s390/include/uapi/asm/socket.h | 3 + arch/sparc/include/uapi/asm/socket.h | 3 + arch/xtensa/include/uapi/asm/socket.h | 3 + include/linux/filter.h | 2 + include/net/sock_reuseport.h | 10 ++- include/net/udp.h | 5 +- include/uapi/asm-generic/socket.h | 3 + net/core/filter.c | 121 +++++++++++++++++++++++++++------ net/core/sock.c | 29 ++++++++ net/core/sock_reuseport.c | 88 ++++++++++++++++++++++-- net/ipv4/udp.c | 14 ++-- net/ipv4/udp_diag.c | 4 +- net/ipv6/udp.c | 14 ++-- 22 files changed, 282 insertions(+), 44 deletions(-) commit e32ea7e747271a0abcd37e265005e97cc81d9df5 Author: Craig Gallek Date: Mon Jan 4 17:41:46 2016 -0500 soreuseport: fast reuseport UDP socket selection Include a struct sock_reuseport instance when a UDP socket binds to a specific address for the first time with the reuseport flag set. When selecting a socket for an incoming UDP packet, use the information available in sock_reuseport if present. This required adding an additional field to the UDP source address equality function to differentiate between exact and wildcard matches. The original use case allowed wildcard matches when checking for existing port uses during bind. The new use case of adding a socket to a reuseport group requires exact address matching. Performance test (using a machine with 2 CPU sockets and a total of 48 cores): Create reuseport groups of varying size. Use one socket from this group per user thread (pinning each thread to a different core) calling recvmmsg in a tight loop. Record number of messages received per second while saturating a 10G link. 10 sockets: 18% increase (~2.8M -> 3.3M pkts/s) 20 sockets: 14% increase (~2.9M -> 3.3M pkts/s) 40 sockets: 13% increase (~3.0M -> 3.4M pkts/s) This work is based off a similar implementation written by Ying Cai for implementing policy-based reuseport selection. Signed-off-by: Craig Gallek Signed-off-by: David S. Miller include/net/addrconf.h | 3 +- include/net/udp.h | 2 +- net/ipv4/udp.c | 119 +++++++++++++++++++++++++++++++-------- net/ipv6/inet6_connection_sock.c | 4 +- net/ipv6/udp.c | 48 +++++++++++++--- 5 files changed, 141 insertions(+), 35 deletions(-) commit ef456144da8ef507c8cf504284b6042e9201a05c Author: Craig Gallek Date: Mon Jan 4 17:41:45 2016 -0500 soreuseport: define reuseport groups struct sock_reuseport is an optional shared structure referenced by each socket belonging to a reuseport group. When a socket is bound to an address/port not yet in use and the reuseport flag has been set, the structure will be allocated and attached to the newly bound socket. When subsequent calls to bind are made for the same address/port, the shared structure will be updated to include the new socket and the newly bound socket will reference the group structure. Usually, when an incoming packet was destined for a reuseport group, all sockets in the same group needed to be considered before a dispatching decision was made. With this structure, an appropriate socket can be found after looking up just one socket in the group. This shared structure will also allow for more complicated decisions to be made when selecting a socket (eg a BPF filter). This work is based off a similar implementation written by Ying Cai for implementing policy-based reuseport selection. Signed-off-by: Craig Gallek Acked-by: Eric Dumazet Signed-off-by: David S. Miller include/net/sock.h | 2 + include/net/sock_reuseport.h | 20 +++++ net/core/Makefile | 2 +- net/core/sock_reuseport.c | 173 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 196 insertions(+), 1 deletion(-) commit ebb3cf41c1a49e334e3fe540ee24a1afb7ed30c4 Merge: 46f85a9 6c72a3d Author: David S. Miller Date: Mon Jan 4 22:07:58 2016 -0500 Merge branch 'mlxsw-fixes' Jiri Pirko says: ==================== mlxsw: couple of fixes Couple of fixes from Ido. ==================== Signed-off-by: David S. Miller commit 6c72a3d0d3e2b3055a04aa6124c2faa3420a30b1 Author: Ido Schimmel Date: Mon Jan 4 10:42:26 2016 +0100 mlxsw: spectrum: Change bridge port attributes only when bridged Bridge port attributes are offloaded to hardware when invoked with SELF flag set, but it really makes no sense to reflect them when port is not bridged. Allow a user to change these attribute only when port is bridged and initialize them correctly when joining or leaving a bridge. Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 17 +++++++++++------ .../net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 3 +++ 2 files changed, 14 insertions(+), 6 deletions(-) commit 5a8f45258eb2ff9da1ee68aad96b1189df8af50e Author: Ido Schimmel Date: Mon Jan 4 10:42:25 2016 +0100 mlxsw: spectrum: Set bridge status in appropriate functions Set the bridge status of physical ports in the appropriate functions, to be consistent with LAG join/leave and vPorts joining/leaving bridge. Also, remove the error messages in these two functions, as we already emit errors in both the single functions they call. Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) commit 78124078c404f3ab790d98d651f059f62d361659 Author: Ido Schimmel Date: Mon Jan 4 10:42:24 2016 +0100 mlxsw: spectrum: Return NOTIFY_BAD on bridge failure It is possible for us to fail when joining or leaving a bridge, so let the user know about that by returning NOTIFY_BAD, as already done for LAG join/leave and 802.1D bridges. Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 7b31abe70b29edb3005a6466f51b7a10f8413a01 Author: Ido Schimmel Date: Mon Jan 4 10:42:23 2016 +0100 mlxsw: spectrum: Initialize PVID only once We set PVID to 1 in mlxsw_sp_port_vlan_init(), so we can remove this statement. Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 1 - 1 file changed, 1 deletion(-) commit 46f85a9215d7352d886626e29c3fc3095bc5bec7 Author: Julia Lawall Date: Sun Jan 3 14:09:37 2016 +0100 chelsio: constify cphy_ops structures The cphy_ops structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb/cphy.h | 2 +- drivers/net/ethernet/chelsio/cxgb/mv88e1xxx.c | 2 +- drivers/net/ethernet/chelsio/cxgb/mv88x201x.c | 2 +- drivers/net/ethernet/chelsio/cxgb/my3126.c | 2 +- drivers/net/ethernet/chelsio/cxgb3/ael1002.c | 12 ++++++------ drivers/net/ethernet/chelsio/cxgb3/aq100x.c | 2 +- drivers/net/ethernet/chelsio/cxgb3/common.h | 2 +- drivers/net/ethernet/chelsio/cxgb3/vsc8211.c | 4 ++-- 8 files changed, 14 insertions(+), 14 deletions(-) commit 46678612e13027b0ea901664504f3bf347756125 Author: Arnd Bergmann Date: Fri Jan 1 14:55:24 2016 +0100 fsl/fman: allow modular build ARM allmodconfig fails because of the addition of the FMAN driver: drivers/built-in.o: In function `dtsec_restart_autoneg': binder.c:(.text+0x173328): undefined reference to `mdiobus_read' binder.c:(.text+0x173348): undefined reference to `mdiobus_write' drivers/built-in.o: In function `dtsec_config': binder.c:(.text+0x173d24): undefined reference to `of_phy_find_device' drivers/built-in.o: In function `init_phy': binder.c:(.text+0x1763b0): undefined reference to `of_phy_connect' drivers/built-in.o: In function `stop': binder.c:(.text+0x176014): undefined reference to `phy_stop' drivers/built-in.o: In function `start': binder.c:(.text+0x176078): undefined reference to `phy_start' The reason is that the driver uses PHYLIB, but that is a loadable module here, and fman itself is built-in. This patch makes it possible to configure fman as a module as well so we don't change the status of PHYLIB in an allmodconfig kernel, and it adds a 'select PHYLIB' statement to ensure that phylib is always built-in when fman is. The driver uses "builtin_platform_driver(fman_driver);", which means it cannot be unloaded, but it's still possible to have it as a loadable module that gets loaded once and never removed. Signed-off-by: Arnd Bergmann Fixes: 5adae51a64b8 ("fsl/fman: Add FMan MURAM support") Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fman/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 0efeff2905d0ea14f2ee83e6cefbda35ee8cf6fc Author: Arnd Bergmann Date: Fri Jan 1 13:18:48 2016 +0100 net: make ip6tunnel_xmit definition conditional Moving the caller of iptunnel_xmit_stats causes a build error in randconfig builds that disable CONFIG_INET: In file included from ../net/xfrm/xfrm_input.c:17:0: ../include/net/ip6_tunnel.h: In function 'ip6tunnel_xmit': ../include/net/ip6_tunnel.h:93:2: error: implicit declaration of function 'iptunnel_xmit_stats' [-Werror=implicit-function-declaration] iptunnel_xmit_stats(dev, pkt_len); The reason is that the iptunnel_xmit_stats definition is hidden inside #ifdef CONFIG_INET but the caller is not. We can change one or the other to fix it, and this patch adds a second #ifdef around ip6tunnel_xmit() to avoid seeing the invalid call. Signed-off-by: Arnd Bergmann Fixes: 039f50629b7f ("ip_tunnel: Move stats update to iptunnel_xmit()") Acked-by: Pravin B Shelar Signed-off-by: David S. Miller include/net/ip6_tunnel.h | 2 ++ 1 file changed, 2 insertions(+) commit 15ab90f400781a801017ea2bd8597e6eb3f39f79 Merge: 197c949 c6dc65d Author: David S. Miller Date: Mon Jan 4 21:48:15 2016 -0500 Merge tag 'nfc-next-4.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/nfc-next Samuel Ortiz says: ==================== NFC 4.5 pull request This is the first NFC pull request for 4.5 and it brings: - A new driver for the STMicroelectronics ST95HF NFC chipset. The ST95HF is an NFC digital transceiver with an embedded analog front-end and as such relies on the Linux NFC digital implementation. This is the 3rd user of the NFC digital stack. - ACPI support for the ST st-nci and st21nfca drivers. - A small improvement for the nfcsim driver, as we can now tune the Rx delay through sysfs. - A bunch of minor cleanups and small fixes from Christophe Ricard, for a few drivers and the NFC core code. ==================== Signed-off-by: David S. Miller commit f199b2605c25a0076cdd5c6a9e7eece77f95ce61 Author: Stephen Rothwell Date: Wed Dec 16 15:48:13 2015 +1100 i2c: ibm_iic: rename i2c_timings struct due to clash with generic version Fixes: e1dba01ca620 ("i2c: add generic routine to parse DT for timing information") Signed-off-by: Stephen Rothwell Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-ibm_iic.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 929ca89c305a6ed7a4149115be99af6d73c36918 Author: Andrzej Hajda Date: Wed Dec 30 12:18:42 2015 +0100 cpufreq-dt: fix handling regulator_get_voltage() result The function can return negative values so it should be assigned to signed type. The problem has been detected using proposed semantic patch scripts/coccinelle/tests/unsigned_lesser_than_zero.cocci. Link: http://permalink.gmane.org/gmane.linux.kernel/2038576 Signed-off-by: Andrzej Hajda Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq-dt.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 0df35026c6a527e65b53bc895ad672d648a248f3 Author: Chen Yu Date: Wed Dec 16 12:20:29 2015 +0800 cpufreq: governor: Fix negative idle_time when configured with CONFIG_HZ_PERIODIC It is reported that, with CONFIG_HZ_PERIODIC=y cpu stays at the lowest frequency even if the usage goes to 100%, neither ondemand nor conservative governor works, however performance and userspace work as expected. If set with CONFIG_NO_HZ_FULL=y, everything goes well. This problem is caused by improper calculation of the idle_time when the load is extremely high(near 100%). Firstly, cpufreq_governor uses get_cpu_idle_time to get the total idle time for specific cpu, then: 1.If the system is configured with CONFIG_NO_HZ_FULL, the idle time is returned by ktime_get, which is always increasing, it's OK. 2.However, if the system is configured with CONFIG_HZ_PERIODIC, get_cpu_idle_time might not guarantee to be always increasing, because it will leverage get_cpu_idle_time_jiffy to calculate the idle_time, consider the following scenario: At T1: idle_tick_1 = total_tick_1 - user_tick_1 sample period(80ms)... At T2: ( T2 = T1 + 80ms): idle_tick_2 = total_tick_2 - user_tick_2 Currently the algorithm is using (idle_tick_2 - idle_tick_1) to get the delta idle_time during the past sample period, however it CAN NOT guarantee that idle_tick_2 >= idle_tick_1, especially when cpu load is high. (Yes, total_tick_2 >= total_tick_1, and user_tick_2 >= user_tick_1, but how about idle_tick_2 and idle_tick_1? No guarantee.) So governor might get a negative value of idle_time during the past sample period, which might mislead the system that the idle time is very big(converted to unsigned int), and the busy time is nearly zero, which causes the governor to always choose the lowest cpufreq, then cause this problem. In theory there are two solutions: 1.The logic should not rely on the idle tick during every sample period, but be based on the busy tick directly, as this is how 'top' is implemented. 2.Or the logic must make sure that the idle_time is strictly increasing during each sample period, then there would be no negative idle_time anymore. This solution requires minimum modification to current code and this patch uses method 2. Link: https://bugzilla.kernel.org/show_bug.cgi?id=69821 Reported-by: Jan Fikar Signed-off-by: Chen Yu Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq_governor.c | 3 +++ 1 file changed, 3 insertions(+) commit a8036dfba94d2ddf70cc9d7e9c627b179f957299 Author: Colin Ian King Date: Sun Dec 6 22:19:40 2015 +0000 cciss: print max outstanding commands as a hex value The max outstanding commands is being printed with a 0x prefix to suggest it is a hex value, when in fact the integer decimal %d format specifier is being used and this is a bit confusing. Use %x instead to match the proceeding 0x prefix. Signed-off-by: Colin Ian King Signed-off-by: Martin K. Petersen drivers/block/cciss.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b360ada3f1534a37b264274cad55932d2a214ec3 Merge: 7ed88aa 2d7f61f Author: Michael Turquette Date: Mon Jan 4 16:16:45 2016 -0800 Merge tag 'tegra-for-4.5-clk' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into clk-next clk: tegra: Changes for v4.5-rc1 This set of changes adds support for the Tegra210 SoC and contains a couple fixes and cleanups. commit c5d641f92c9633f568740332989c067a0ba7d4dc Author: Li Bin Date: Sun Dec 6 10:02:58 2015 +0800 x86: ftrace: Fix the comments for ftrace_modify_code_direct() There is no need to worry about module and __init text disappearing case, because that ftrace has a module notifier that is called when a module is being unloaded and before the text goes away and this code grabs the ftrace_lock mutex and removes the module functions from the ftrace list, such that it will no longer do any modifications to that module's text, the update to make functions be traced or not is done under the ftrace_lock mutex as well. And by now, __init section codes should not been modified by ftrace, because it is black listed in recordmcount.c and ignored by ftrace. Link: http://lkml.kernel.org/r/1449367378-29430-6-git-send-email-huawei.libin@huawei.com Reviewed-by: Thomas Gleixner Suggested-by: Steven Rostedt Signed-off-by: Li Bin Signed-off-by: Steven Rostedt arch/x86/kernel/ftrace.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) commit d9be398afb2c3333716324352d062c50112e4e86 Author: Dmitry Torokhov Date: Wed Dec 16 14:24:58 2015 -0800 Input: xpad - use LED API when identifying wireless controllers When lighting up the segment identifying wireless controller, Instead of sending command directly to the controller, let's do it via LED API (usinf led_set_brightness) so that LED object state is in sync with controller state and we'll light up the correct segment on resume as well. Signed-off-by: Dmitry Torokhov drivers/input/joystick/xpad.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4220f7db1e424f2a086ad41217b5770cc9f003a9 Author: Pavel Rojtberg Date: Wed Dec 9 13:30:34 2015 -0800 Input: xpad - workaround dead irq_out after suspend/ resume The irq_out urb is dead after suspend/ resume on my x360 wr pad. (also reproduced by Zachary Lund [0]) Work around this by implementing suspend, resume, and reset_resume callbacks and properly shutting down URBs on suspend and restarting them on resume. [0]: https://github.com/paroj/xpad/issues/6 Signed-off-by: Pavel Rojtberg Signed-off-by: Dmitry Torokhov drivers/input/joystick/xpad.c | 175 +++++++++++++++++++++++++++++++++--------- 1 file changed, 137 insertions(+), 38 deletions(-) commit 197c949e7798fbf28cfadc69d9ca0c2abbf93191 Author: Eric Dumazet Date: Wed Dec 30 08:51:12 2015 -0500 udp: properly support MSG_PEEK with truncated buffers Backport of this upstream commit into stable kernels : 89c22d8c3b27 ("net: Fix skb csum races when peeking") exposed a bug in udp stack vs MSG_PEEK support, when user provides a buffer smaller than skb payload. In this case, skb_copy_and_csum_datagram_iovec(skb, sizeof(struct udphdr), msg->msg_iov); returns -EFAULT. This bug does not happen in upstream kernels since Al Viro did a great job to replace this into : skb_copy_and_csum_datagram_msg(skb, sizeof(struct udphdr), msg); This variant is safe vs short buffers. For the time being, instead reverting Herbert Xu patch and add back skb->ip_summed invalid changes, simply store the result of udp_lib_checksum_complete() so that we avoid computing the checksum a second time, and avoid the problematic skb_copy_and_csum_datagram_iovec() call. This patch can be applied on recent kernels as it avoids a double checksumming, then backported to stable kernels as a bug fix. Signed-off-by: Eric Dumazet Acked-by: Herbert Xu Signed-off-by: David S. Miller net/ipv4/udp.c | 6 ++++-- net/ipv6/udp.c | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) commit 15c3277ff60286860b3dc98651fc241875e678fa Author: Tom St Denis Date: Tue Dec 15 13:03:43 2015 -0500 amdgpu/dce11: Add test for crtc < 0 to various DCEv11 functions To be consistent with other DCE11 functions test for crtc < 0. Signed-off-by: Tom St Denis Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 9e4e1ae82f2479a32bee61132206367a710e961e Author: Tom St Denis Date: Tue Dec 15 13:01:49 2015 -0500 amdgpu/dce11: Remove division from dce_v11_0_vblank_wait() Mimics odd behaviour where (i++ % 100 == 0) is true in the first iteration of each loop... Signed-off-by: Tom St Denis Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 691ca86a3a15a9c5054edb3c517a1aeb40e9fadc Author: Tom St Denis Date: Tue Dec 15 10:55:34 2015 -0500 amdgpu/vce3: Simplify vce_v3_0_hw_init and ensure both rings default to not ready. Simplified the ring test and added logic to ensure rings are marked not ready by default. Signed-off-by: Tom St Denis Reviewed-by: Alex Deucher Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) commit 74af12762de65cbbc11e11501dacd652fae75de9 Author: Tom St Denis Date: Mon Jan 4 10:46:41 2016 -0500 amdgpu/vce3: Remove magic constants from harvest register masks. Signed-off-by: Tom St Denis Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 81da2edef935adc6091deb20963c29d8463f1440 Author: Tom St Denis Date: Tue Dec 15 10:42:39 2015 -0500 amdgpu/vce3: Simplify vce_v3_0_process_interrupt() Fold two cases into one for a LOC reduction. Signed-off-by: Tom St Denis Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit af18b0f7fb635e5b18d541bf05058723412d749f Author: Tom St Denis Date: Tue Dec 15 10:40:16 2015 -0500 amdgpu/vce3: Simplify vce_v3_0_soft_reset() LOC reduction and simplification. Signed-off-by: Tom St Denis Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) commit 92988e604b8a7c7d541396905433021eedfc28bb Author: Tom St Denis Date: Tue Dec 15 10:35:56 2015 -0500 amdgpu/vce3: Simplify idle and wait for idle code More LOC reductions in VCE3 code. This patch simplifies the is_idle and wait_for_idle logic. Signed-off-by: Tom St Denis Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 30 +++++------------------------- 1 file changed, 5 insertions(+), 25 deletions(-) commit 1dab5f067e1371e5ed88aa6c47a3cd800f061cfa Author: Tom St Denis Date: Tue Dec 15 10:21:46 2015 -0500 amdgpu/vce3: Cleanup harvest config function. Basic LOC reduction. Signed-off-by: Tom St Denis Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) commit e1de741529412f31cb53899307bd63286918c49c Author: Chunming Zhou Date: Tue Dec 29 11:57:38 2015 +0800 drm/amdgpu: fix NULL in vm_grab_id while S3 back vm_manager_fini shouldn't be in suspend phase. Signed-off-by: Chunming Zhou Reviewed-by: Ken Wang drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 1 - drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 1 - 2 files changed, 2 deletions(-) commit 815bc580fe4ebffc35cc837a775f5400f5a607c4 Merge: 98f40b3 1016a4a Author: David S. Miller Date: Mon Jan 4 16:50:50 2016 -0500 Merge branch 'r8169-hw-programming-typo-fixes' Chunhao Lin says: ==================== Fix some typos in setting hardware parameter The typos are in setting RTL8168DP, RTL8168EP and RTL8168H hardware parameters. This series of patch fix these typos. ==================== Signed-off-by: David S. Miller commit 1016a4a1f4018c9a1db411b38f46bd00b96f4e83 Author: Chun-Hao Lin Date: Tue Dec 29 22:13:39 2015 +0800 r8169:Correct the way of setting RTL8168DP ephy The original way is wrong, it always writes ephy reg 0x03. Signed-off-by: Chunhao Lin Signed-off-by: David S. Miller drivers/net/ethernet/realtek/r8169.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) commit c832c35f5f27f38b65d7d4d55906a3365ba6f33a Author: Chun-Hao Lin Date: Tue Dec 29 22:13:38 2015 +0800 r8169:Fix typo in setting RTL8168H PHY PFM mode. The PHY PFM register is in PHY page 0x0a44 register 0x11, not 0x14. Signed-off-by: Chunhao Lin Signed-off-by: David S. Miller drivers/net/ethernet/realtek/r8169.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 69f3dc379bef56f9fe3b815cd41a7ae34e2c9047 Author: Chun-Hao Lin Date: Tue Dec 29 22:13:37 2015 +0800 r8169:Fix typo in setting RTL8168EP and RTL8168H D3cold PFM mode The register for setting D3code PFM mode is MISC_1, not DLLPR. Signed-off-by: Chunhao Lin Reviewed-by: Francois Romieu Signed-off-by: David S. Miller drivers/net/ethernet/realtek/r8169.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 98f40b3e22aed519bc545ba3cc7d884ede9428c9 Author: Guillaume Nault Date: Tue Dec 29 13:06:59 2015 +0100 l2tp: rely on ppp layer for skb scrubbing Since 79c441ae505c ("ppp: implement x-netns support"), the PPP layer calls skb_scrub_packet() whenever the skb is received on the PPP device. Manually resetting packet meta-data in the L2TP layer is thus redundant. Signed-off-by: Guillaume Nault Signed-off-by: David S. Miller net/l2tp/l2tp_ppp.c | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) commit a1e9ca6967d68209c70e616a224efa89a6b86ca6 Author: Rafael J. Wysocki Date: Sat Jan 2 03:09:16 2016 +0100 PM / sleep: Add support for read-only sysfs attributes Some sysfs attributes in /sys/power/ should really be read-only, so add support for that, convert those attributes to read-only and drop the stub .show() routines from them. Original-by: Sergey Senozhatsky Signed-off-by: Rafael J. Wysocki kernel/power/main.c | 17 ++--------------- kernel/power/power.h | 9 +++++++++ 2 files changed, 11 insertions(+), 15 deletions(-) commit edc345d88462c78cd43d44e38efc9cadae4266f1 Author: Lukas Wunner Date: Fri Jan 1 22:52:15 2016 +0100 ACPI: Fix white space in a structure definition Add a missing space in the definition of struct acpi_device_bus_id. Signed-off-by: Lukas Wunner [ rjw: Subject and changelog ] Signed-off-by: Rafael J. Wysocki drivers/acpi/internal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7c9574f262a25c7ca0779df31098ba4e0c382e86 Author: Dan Carpenter Date: Mon Jan 4 23:44:24 2016 +0300 drm/amd/powerplay: precedence bug in init_non_clock_fields() The cast to uint8_t happens before the right shift so this always sets .m3arb to zero. The cast is actually a no-op so we can remove it. Fixes: 3bace3591493 ('drm/amd/powerplay: add hardware manager sub-component') Signed-off-by: Dan Carpenter Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/processpptables.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b92c26d1808ccd2acac17b660dce750ba9b0a0db Author: Dan Carpenter Date: Mon Jan 4 23:43:47 2016 +0300 drm/amdgpu/cgs: cleanup some indenting This code is indented too far. Also we normally use spaces to align if statement conditions. Signed-off-by: Dan Carpenter Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 2500a3c9e06d349defdca00f2efd7fab189ae72f Author: Dan Carpenter Date: Mon Jan 4 23:42:55 2016 +0300 drm/amd/powerplay: fix a reversed condition This test was reversed so it would end up leading to a NULL dereference. Fixes: 4630f0faae80 ('drm/amd/powerplay: add Carrizo smu support') Signed-off-by: Dan Carpenter Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/smumgr/cz_smumgr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a84bc8cfb2f2e2bb59f2ebdf531464c547f5026f Author: Colin Ian King Date: Fri Jan 1 23:53:45 2016 +0000 ACPI / SBS: fix inconsistent indenting inside if statement The indenting in acpi_battery_set_alarm is inconsistent and has been so since 2007; commit 94f6c0860139da9219255b8ff45ad42117dda859 ("ACPI: SBS: Add support for power_supply class (and sysfs)"). Minor fix for this, no code functionality change. Signed-off-by: Colin Ian King Signed-off-by: Rafael J. Wysocki drivers/acpi/sbs.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit e0f03e87fc6f27a8af9896f430f2945b3b1664c0 Author: Heiner Kallweit Date: Wed Dec 16 07:33:22 2015 +0100 PNP: respect PNP_DRIVER_RES_DO_NOT_CHANGE when detaching I have a device (Nuvoton 6779D Super-IO IR RC with nuvoton-cir driver) which works after initial boot but not any longer if I unload and re-load the driver module. Digging into the issue I found that unloading the driver calls pnp_disable_dev although the driver has flag PNP_DRIVER_RES_DO_NOT_CHANGE set. IMHO this is not right. Let's have a look at the call chain when probing a device: pnp_device_probe 1. attaches the device 2. if it's not active and PNP_DRIVER_RES_DO_NOT_CHANGE is not set it gets activated 3. probes driver I think pnp_device_remove should do it in reverse order and also respect PNP_DRIVER_RES_DO_NOT_CHANGE. Therefore: 1. call drivers remove callback 2. if device is active and PNP_DRIVER_RES_DO_NOT_CHANGE is not set disable it 3. detach device The change works for me and sounds logical to me. However I don't know the pnp driver in detail so I might be wrong. Signed-off-by: Heiner Kallweit Signed-off-by: Rafael J. Wysocki drivers/pnp/driver.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 04c67a90ab947560564f875033f0e06ddfa0c7af Merge: 6e898bf 7cf7247 Author: David S. Miller Date: Mon Jan 4 16:11:12 2016 -0500 Merge branch 'sh_eth-remove-BE-desc-support' Sergei Shtylyov says: ==================== sh_eth: remove unused BE descriptor support Here's a set of 2 patches against DaveM's 'net-next.git' repo plus the recently merged to 'net.git' repo fix for the 16-bit descriptor endianness. We get rid of ~30 LoCs and ~300 bytes of code. ==================== Signed-off-by: David S. Miller commit 7cf724770b78c1d4f24e23747ac03233a88af440 Author: Sergei Shtylyov Date: Mon Dec 28 02:10:47 2015 +0300 sh_eth: get rid of {cpu|edmac}_to_{edmac|cpu}() Now that {cpu|edmac}_to_{edmac|cpu}() functions boiled down to the mere {cpu|le32}_to_{le32|cpu}() calls, there's no need for these functions anymore, so just get rid of them. Signed-off-by: Sergei Shtylyov Acked-by: Simon Horman Signed-off-by: David S. Miller drivers/net/ethernet/renesas/sh_eth.c | 72 ++++++++++++++--------------------- 1 file changed, 29 insertions(+), 43 deletions(-) commit 888cc8c20cf265fcd1302f6c5d6be07628ba66c7 Author: Sergei Shtylyov Date: Mon Dec 28 02:07:08 2015 +0300 sh_eth: remove EDMAC_BIG_ENDIAN Commit 71557a37adb5 ("[netdrvr] sh_eth: Add SH7619 support") added support for the big-endian EDMAC descriptors. However, it was never used and never worked right until the recent driver fixes. I think we now can just remove this support, it was only burdening the driver from the start. It should be easy to do without disturbing the SH platform code, at least for now... Signed-off-by: Sergei Shtylyov Acked-by: Simon Horman Signed-off-by: David S. Miller drivers/net/ethernet/renesas/sh_eth.c | 18 ++---------------- drivers/net/ethernet/renesas/sh_eth.h | 1 - include/linux/sh_eth.h | 2 +- 3 files changed, 3 insertions(+), 18 deletions(-) commit 38a234b9f08883bbcb475b798e0a3d6b44bd37d7 Author: Mathias Krause Date: Sat Jan 2 11:30:09 2016 +0100 ACPI / PNP: constify device IDs Instead of re-creating the array on the stack each time is_cmos_rtc_device() gets called, make the array 'static const'. Signed-off-by: Mathias Krause Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_pnp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4922be51ef1a95ca6a38694cf0cde5dd0308a24e Merge: 7eeabbd a6d7636 Author: Dave Chinner Date: Tue Jan 5 08:08:47 2016 +1100 Merge branch 'xfs-dax-fixes-for-4.5' into for-next commit 7eeabbd4b6b69f3f6cb75730f17804b714bd853b Merge: 609adfc a841b64 Author: Dave Chinner Date: Tue Jan 5 08:08:35 2016 +1100 Merge branch 'xfs-misc-fixes-for-4.5' into for-next commit 0971686954f9cdde502c7bce4794c5ad53ea2e66 Author: Rafael J. Wysocki Date: Mon Jan 4 22:07:39 2016 +0100 ACPI / PCI: Simplify acpi_penalize_isa_irq() acpi_penalize_isa_irq() can be written in fewer lines of code, so do that. No functional change. Signed-off-by: Rafael J. Wysocki Works-for: Andy Shevchenko drivers/acpi/pci_link.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) commit 6e898bfd6e9e5cd0f7f8275ad4dc41a3acf7c75a Author: Geliang Tang Date: Fri Jan 1 23:48:57 2016 +0800 tilepro: use to_delayed_work Use to_delayed_work() instead of open-coding it. Signed-off-by: Geliang Tang Signed-off-by: David S. Miller drivers/net/ethernet/tile/tilepro.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit e3e9b577b477edbf50e6c1f93beee89f450f2b68 Author: Rafael J. Wysocki Date: Mon Jan 4 22:05:20 2016 +0100 ACPICA: Drop Linux-specific waking vector functions Commit f06147f9fbf1 (ACPICA: Hardware: Enable firmware waking vector for both 32-bit and 64-bit FACS) added three functions that aren't present in upstream ACPICA, acpi_hw_set_firmware_waking_vectors(), acpi_set_firmware_waking_vectors() and acpi_set_firmware_waking_vector64(), to allow Linux to use the previously existing API for setting the platform firmware waking vector. However, that wasn't necessary, since the ACPI sleep support code in Linux can be modified to use the upstream ACPICA's API easily and the additional functions may be dropped which reduces the code size and puts the kernel's ACPICA code more in line with the upstream. Make the changes as per the above. While at it, make the relevant function desctiption comments reflect the upstream ACPICA's ones. Signed-off-by: Rafael J. Wysocki Acked-by: Lv Zheng drivers/acpi/acpica/hwxfsleep.c | 96 ++++++++--------------------------------- drivers/acpi/sleep.c | 4 +- drivers/acpi/sleep.h | 6 +++ include/acpi/acpixf.h | 10 +---- 4 files changed, 28 insertions(+), 88 deletions(-) commit 48b874cce652a3aed8d57ead68ab9937fb488c52 Merge: c07f30a 068c9ec Author: David S. Miller Date: Mon Jan 4 15:54:41 2016 -0500 Merge branch 'bnxt_en-combined-rx-tx-channels' Michael Chan says: ==================== bnxt_en: Support combined and rx/tx channels. The bnxt hardware uses a completion ring for rx and tx events. The driver has to process the completion ring entries sequentially for the events. The current code only supports an rx/tx ring pair for each completion ring. This patch series add support for using a dedicated completion ring for rx only or tx only as an option configuarble using ethtool -L. The benefits for using dedicated completion rings are: 1. A burst of rx packets can cause delay in processing tx events if the completion ring is shared. If tx queue is stopped by BQL, this can cause delay in re-starting the tx queue. 2. A completion ring is sized according to the rx and tx ring size rounded up to the nearest power of 2. When the completion ring is shared, it is sized by adding the rx and tx ring sizes and then rounded to the next power of 2, often with a lot of wasted space. 3. Using dedicated completion ring, we can adjust the tx and rx coalescing parameters independently for rx and tx. ==================== Signed-off-by: David S. Miller commit 068c9ec62906b626a30526638fd36189b80b6464 Author: Michael Chan Date: Sat Jan 2 23:45:04 2016 -0500 bnxt_en: Modify ethtool -l|-L to support combined or rx/tx rings. The driver can support either all combined or all rx/tx rings. The default is combined, but the user can now select rx/tx rings. Signed-off-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 57 ++++++++++++++++++----- 1 file changed, 45 insertions(+), 12 deletions(-) commit 01657bcd078b924e4599a83acd402ea6f85a1e45 Author: Michael Chan Date: Sat Jan 2 23:45:03 2016 -0500 bnxt_en: Modify init sequence to support shared or non shared rings. Modify ring memory allocation and MSIX setup to support shared or non shared rings and do the proper mapping. Default is still to use shared rings. Signed-off-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt.c | 42 +++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 10 deletions(-) commit 6e6c5a57fbe1c77c2c55e266f87a83429adc3de7 Author: Michael Chan Date: Sat Jan 2 23:45:02 2016 -0500 bnxt_en: Modify bnxt_get_max_rings() to support shared or non shared rings. Add logic to calculate how many shared or non shared rings can be supported. Default is to use shared rings. Signed-off-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt.c | 96 +++++++++++++++++------ drivers/net/ethernet/broadcom/bnxt/bnxt.h | 4 +- drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 4 +- 3 files changed, 79 insertions(+), 25 deletions(-) commit b81a90d3028af92da61a61e2efd231a585180044 Author: Michael Chan Date: Sat Jan 2 23:45:01 2016 -0500 bnxt_en: Re-structure ring indexing and mapping. In order to support dedicated or shared completion rings, the ring indexing and mapping are re-structured as below: 1. bp->grp_info[] array index is 1:1 with bp->bnapi[] array index and completion ring index. 2. rx rings 0 to n will be mapped to completion rings 0 to n. 3. If tx and rx rings share completion rings, then tx rings 0 to m will be mapped to completion rings 0 to m. 4. If tx and rx rings use dedicated completion rings, then tx rings 0 to m will be mapped to completion rings n + 1 to n + m. 5. Each tx or rx ring will use the corresponding completion ring index for doorbell mapping and MSIX mapping. Signed-off-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt.c | 91 ++++++++++++++++++------------- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 2 + 2 files changed, 55 insertions(+), 38 deletions(-) commit 3b2b7d9db74adb95aa0bd029298a741333eb847e Author: Michael Chan Date: Sat Jan 2 23:45:00 2016 -0500 bnxt_en: Check for NULL rx or tx ring. Each bnxt_napi structure may no longer be having both an rx ring and a tx ring. Check for a valid ring before using it. Signed-off-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt.c | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) commit b6ab4b01f53b5f9e17dbd4f91c95fa5049fa2101 Author: Michael Chan Date: Sat Jan 2 23:44:59 2016 -0500 bnxt_en: Separate bnxt_{rx|tx}_ring_info structs from bnxt_napi struct. Currently, an rx and a tx ring are always paired with a completion ring. We want to restructure it so that it is possible to have a dedicated completion ring for tx or rx only. The bnxt hardware uses a completion ring for rx and tx events. The driver has to process the completion ring entries sequentially for the rx and tx events. Using a dedicated completion ring for rx only or tx only has these benefits: 1. A burst of rx packets can cause delay in processing tx events if the completion ring is shared. If tx queue is stopped by BQL, this can cause delay in re-starting the tx queue. 2. A completion ring is sized according to the rx and tx ring size rounded up to the nearest power of 2. When the completion ring is shared, it is sized by adding the rx and tx ring sizes and then rounded to the next power of 2, often with a lot of wasted space. 3. Using dedicated completion ring, we can adjust the tx and rx coalescing parameters independently for rx and tx. The first step is to separate the rx and tx ring structures from the bnxt_napi struct. In this patch, an rx ring and a tx ring will point to the same bnxt_napi struct to share the same completion ring. No change in ring assignment and mapping yet. Signed-off-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt.c | 147 +++++++++++++----------------- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 9 +- 2 files changed, 70 insertions(+), 86 deletions(-) commit 9f5545905fbcc069f6fa8030b866e967ec6a5c73 Author: Michael Chan Date: Sat Jan 2 23:44:58 2016 -0500 bnxt_en: Refactor bnxt_dbg_dump_states(). By adding 3 separate functions to dump the different ring states. Signed-off-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt.c | 50 ++++++++++++++++++++----------- 1 file changed, 33 insertions(+), 17 deletions(-) commit 609adfc2ed5ba16700f125da0b656248bd9d4316 Author: Brian Foster Date: Tue Jan 5 07:41:16 2016 +1100 xfs: debug mode log record crc error injection XFS now uses CRC verification over a limited section of the log to detect torn writes prior to a crash. This is difficult to test directly due to the timing and hardware requirements to cause a short write. Add a mechanism to inject CRC errors into log records to facilitate testing torn write detection during log recovery. This mechanism is dangerous and can result in filesystem corruption. Thus, it is only available in DEBUG mode for testing/development purposes. Set a non-zero value to the following sysfs entry to enable error injection: /sys/fs/xfs//log/log_badcrc_factor Once enabled, XFS intentionally writes an invalid CRC to a log record at some random point in the future based on the provided frequency. The filesystem immediately shuts down once the record has been written to the physical log to prevent metadata writeback (e.g., AIL insertion) once the log write completes. This helps reasonably simulate a torn write to the log as the affected record must be safe to discard. The next mount after the intentional shutdown requires log recovery and should detect and recover from the torn write. Note again that this _will_ result in data loss or worse. For testing and development purposes only! Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_log.c | 45 ++++++++++++++++++++++++++++++++++++++------- fs/xfs/xfs_log_priv.h | 3 +++ fs/xfs/xfs_sysfs.c | 36 ++++++++++++++++++++++++++++++++++++ 3 files changed, 77 insertions(+), 7 deletions(-) commit 7088c4136fa1cba26531fde40bdcfcf3d2ccd533 Author: Brian Foster Date: Tue Jan 5 07:40:16 2016 +1100 xfs: detect and trim torn writes during log recovery Certain types of storage, such as persistent memory, do not provide sector atomicity for writes. This means that if a crash occurs while XFS is writing log records, only part of those records might make it to the storage. This is problematic because log recovery uses the cycle value packed at the top of each log block to locate the head/tail of the log. This can lead to CRC verification failures during log recovery and an unmountable fs for a filesystem that is otherwise consistent. Update log recovery to incorporate log record CRC verification as part of the head/tail discovery process. Once the head is located via the traditional algorithm, run a CRC-only pass over the records up to the head of the log. If CRC verification fails, assume that the records are torn as a matter of policy and trim the head block back to the start of the first bad record. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_log_recover.c | 309 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 289 insertions(+), 20 deletions(-) commit 65a792e84f25d1436698f999224b2cf5d7594546 Author: Zhigang Lu Date: Wed Sep 30 10:11:45 2015 +0800 tile/jump_label: add jump label support for TILE-Gx Add the arch-specific code to support jump label for TILE-Gx. This code shares NOP instruction with ftrace, so we move it to a common header file. Reviewed-by: Chris Metcalf Signed-off-by: Zhigang Lu Signed-off-by: Chris Metcalf arch/tile/Kconfig | 1 + arch/tile/include/asm/insn.h | 59 +++++++++++++++++++++++++++++++++++ arch/tile/include/asm/jump_label.h | 58 ++++++++++++++++++++++++++++++++++ arch/tile/kernel/Makefile | 1 + arch/tile/kernel/ftrace.c | 11 +------ arch/tile/kernel/jump_label.c | 64 ++++++++++++++++++++++++++++++++++++++ 6 files changed, 184 insertions(+), 10 deletions(-) commit f419e6f63c5afea00d7c17ebf54f2d265f5c4d7e Author: Zhigang Lu Date: Wed Sep 30 09:53:47 2015 +0800 tile: define a macro ktext_writable_addr to get writable kernel text address It is used by kgdb, ftrace, kprobe and jump label, so we factor this out into a helper routine. Reviewed-by: Chris Metcalf Signed-off-by: Zhigang Lu Signed-off-by: Chris Metcalf arch/tile/include/asm/page.h | 10 ++++++++++ arch/tile/kernel/ftrace.c | 2 +- arch/tile/kernel/kgdb.c | 2 +- arch/tile/kernel/kprobes.c | 4 ++-- 4 files changed, 14 insertions(+), 4 deletions(-) commit d4f50ee2f5b45fc4d9e4142a52edf8b7935a9275 Author: Pierre Morel Date: Wed Dec 23 13:08:05 2015 +0100 vfio/iommu_type1: make use of info.flags The flags entry is there to tell the user that some optional information is available. Since we report the iova_pgsizes signal it to the user by setting the flags to VFIO_IOMMU_INFO_PGSIZES. Signed-off-by: Pierre Morel Signed-off-by: Alex Williamson drivers/vfio/vfio_iommu_type1.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 29663b0cc1d5b9b6e2f6caf41e86c599a0310def Author: Julia Lawall Date: Wed Dec 23 22:36:32 2015 +0100 mac802154: constify ieee802154_llsec_ops structure The ieee802154_llsec_ops structure is never modified, so declare it as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Acked-by: Alexander Aring Signed-off-by: Marcel Holtmann include/net/ieee802154_netdev.h | 2 +- net/mac802154/mac_cmd.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 2a6d7527b35cf987260800807e328d167aef22ac Author: Pierre-Loup A. Griffais Date: Wed Dec 9 13:40:37 2015 -0800 Input: xpad - update Xbox One Force Feedback Support There's apparently a serial number woven into both input and output packets; neglecting to specify a valid serial number causes the controller to ignore the rumble packets. The scale of the rumble was also apparently halved in the packets. The initialization packet had to be changed to allow force feedback to work. see https://github.com/paroj/xpad/issues/7 for details. Signed-off-by: Pavel Rojtberg Signed-off-by: Dmitry Torokhov drivers/input/joystick/xpad.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) commit 7fc595f4c02636eadaeeecfe7bbc45b57c173004 Author: Pavel Rojtberg Date: Wed Dec 9 11:57:01 2015 -0800 Input: xpad - correctly handle concurrent LED and FF requests Track the status of the irq_out URB to prevent submission iof new requests while current one is active. Failure to do so results in the "URB submitted while active" warning/stack trace. Store pending brightness and FF effect in the driver structure and replace it with the latest requests until the device is ready to process next request. Alternate serving LED vs FF requests to make sure one does not starve another. See [1] for discussion. Inspired by patch of Sarah Bessmer [2]. [1]: http://www.spinics.net/lists/linux-input/msg40708.html [2]: http://www.spinics.net/lists/linux-input/msg31450.html Signed-off-by: Pavel Rojtberg Signed-off-by: Dmitry Torokhov drivers/input/joystick/xpad.c | 322 +++++++++++++++++++++++++++++------------- 1 file changed, 223 insertions(+), 99 deletions(-) commit 90708ce22b4849194d195bad128e94a110426434 Author: Suravee Suthikulpanit Date: Tue Dec 15 15:55:53 2015 -0600 i2c: designware: Add support for AMD Seattle I2C Add device HID AMDI0510 to match the I2C controlers on AMD Seattle platform Signed-off-by: Suravee Suthikulpanit Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-designware-platdrv.c | 1 + 1 file changed, 1 insertion(+) commit 995e68a5ee6126a23dbfc1097b523c08a6b8bb65 Author: Fabio Estevam Date: Mon Jan 4 09:15:37 2016 -0200 i2c: imx: Remove unneeded comments These multi-lines comments do not follow the standard kernel coding style. In fact, they are not useful comments, so get rid of them. Signed-off-by: Fabio Estevam Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-imx.c | 12 ------------ 1 file changed, 12 deletions(-) commit 86f7ac77d4035e22ec7e58dcdb96327e2ecc3a9b Author: Chin-Ran Lo Date: Tue Dec 29 04:26:33 2015 -0800 Bluetooth: btmrvl: fix hung task warning dump It's been observed that when bluetooth driver fails to activate the firmware, below hung task warning dump is displayed after 120 seconds. [ 36.461022] Bluetooth: vendor=0x2df, device=0x912e, class=255, fn=2 [ 56.512128] Bluetooth: FW failed to be active in time! [ 56.517264] Bluetooth: Downloading firmware failed! [ 240.252176] INFO: task kworker/3:2:129 blocked for more than 120 seconds. [ 240.258931] Not tainted 3.18.0 #254 [ 240.262972] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. [ 240.270751] kworker/3:2 D ffffffc000205760 0 129 2 0x00000000 [ 240.277825] Workqueue: events request_firmware_work_func [ 240.283134] Call trace: [ 240.285581] [] __switch_to+0x80/0x8c [ 240.290693] [] __schedule+0x540/0x7b8 [ 240.295921] [] schedule+0x78/0x84 [ 240.300764] [] __mmc_claim_host+0xe8/0x1c8 [ 240.306395] [] sdio_claim_host+0x74/0x84 [ 240.311840] [] 0xffffffbffc163d08 [ 240.316685] [] 0xffffffbffc165104 [ 240.321524] [] mwifiex_dnld_fw+0x98/0x110 [mwifiex] [ 240.327918] [] mwifiex_remove_card+0x2c4/0x5fc [mwifiex] [ 240.334741] [] request_firmware_work_func+0x44/0x80 [ 240.341127] [] process_one_work+0x2ec/0x50c [ 240.346831] [] worker_thread+0x350/0x470 [ 240.352272] [] kthread+0xf0/0xfc [ 240.357019] 2 locks held by kworker/3:2/129: [ 240.361248] #0: ("events"){.+.+.+}, at: [] process_one_work+0x1f8/0x50c [ 240.369562] #1: ((&fw_work->work)){+.+.+.}, at: [] process_one_work+0x1f8/0x50c [ 240.378589] task PC stack pid father [ 240.384501] kworker/1:1 D ffffffc000205760 0 40 2 0x00000000 [ 240.391524] Workqueue: events mtk_atomic_work [ 240.395884] Call trace: [ 240.398317] [] __switch_to+0x80/0x8c [ 240.403448] [] lock_acquire+0x128/0x164 [ 240.408821] kworker/3:2 D ffffffc000205760 0 129 2 0x00000000 [ 240.415867] Workqueue: events request_firmware_work_func [ 240.421138] Call trace: [ 240.423589] [] __switch_to+0x80/0x8c [ 240.428688] [] __schedule+0x540/0x7b8 [ 240.433886] [] schedule+0x78/0x84 [ 240.438732] [] __mmc_claim_host+0xe8/0x1c8 [ 240.444361] [] sdio_claim_host+0x74/0x84 [ 240.449801] [] 0xffffffbffc163d08 [ 240.454649] [] 0xffffffbffc165104 [ 240.459486] [] mwifiex_dnld_fw+0x98/0x110 [mwifiex] [ 240.465882] [] mwifiex_remove_card+0x2c4/0x5fc [mwifiex] [ 240.472705] [] request_firmware_work_func+0x44/0x80 [ 240.479090] [] process_one_work+0x2ec/0x50c [ 240.484794] [] worker_thread+0x350/0x470 [ 240.490231] [] kthread+0xf0/0xfc This patch adds missing sdio_release_host() call so that wlan driver thread can claim sdio host. Fixes: 4863e4cc31d647e1 ("Bluetooth: btmrvl: release sdio bus after firmware is up") Signed-off-by: Chin-Ran Lo Signed-off-by: Amitkumar Karwar Signed-off-by: Marcel Holtmann drivers/bluetooth/btmrvl_sdio.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e2973769372a3de1c20249206db5ee93287a2230 Author: Mathias Krause Date: Sat Jan 2 23:23:56 2016 +0100 ASoC: rt5645: Constify ACPI device ids Constify the ACPI device ID array, no need to have it writable at runtime. Also drop the unused RT5645_INIT_REG_LEN define. Signed-off-by: Mathias Krause Cc: Bard Liao Cc: Oder Chiou Cc: John Lin Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit adbdeae5cece1d888a1542edfe9e1c6f8884fef8 Author: Heikki Krogerus Date: Mon Jan 4 14:23:22 2016 +0200 Bluetooth: hci_bcm: new ACPI IDs These are used at least by Acer with BCM43241. Signed-off-by: Heikki Krogerus Signed-off-by: Marcel Holtmann drivers/bluetooth/hci_bcm.c | 3 +++ 1 file changed, 3 insertions(+) commit d3d20725407955d0bb107939f23535d2e7dadbee Author: Heikki Krogerus Date: Mon Jan 4 14:23:21 2016 +0200 Bluetooth: hci_bcm: move all Broadcom ACPI IDs to BCM HCI driver The IDs should all be for Broadcom BCM43241 module, and hci_bcm is now the proper driver for them. This removes one of two different ways of handling PM with the module. Cc: Johannes Berg Signed-off-by: Heikki Krogerus Signed-off-by: Marcel Holtmann drivers/bluetooth/hci_bcm.c | 4 ++++ net/rfkill/rfkill-gpio.c | 4 ---- 2 files changed, 4 insertions(+), 4 deletions(-) commit 942e3d72a62dcfe5bf1569b179174718bbbcfbc3 Merge: 58baac0 506c0d6 Author: Trond Myklebust Date: Mon Jan 4 13:19:55 2016 -0500 Merge branch 'pnfs_generic' * pnfs_generic: NFSv4.1/pNFS: Cleanup constify struct pnfs_layout_range arguments NFSv4.1/pnfs: Cleanup copying of pnfs_layout_range structures NFSv4.1/pNFS: Cleanup pnfs_mark_matching_lsegs_invalid() NFSv4.1/pNFS: Fix a race in initiate_file_draining() NFSv4.1/pNFS: pnfs_error_mark_layout_for_return() must always return layout NFSv4.1/pNFS: pnfs_mark_matching_lsegs_return() should set the iomode NFSv4.1/pNFS: Use nfs4_stateid_copy for copying stateids NFSv4.1/pNFS: Don't pass stateids by value to pnfs_send_layoutreturn() NFS: Relax requirements in nfs_flush_incompatible NFSv4.1/pNFS: Don't queue up a new commit if the layout segment is invalid NFS: Allow multiple commit requests in flight per file NFS/pNFS: Fix up pNFS write reschedule layering violations and bugs NFSv4: List stateid information in the callback tracepoints NFSv4.1/pNFS: Don't return NFS4ERR_DELAY unnecessarily in CB_LAYOUTRECALL NFSv4.1/pNFS: Ensure we enforce RFC5661 Section 12.5.5.2.1 pNFS: If we have to delay the layout callback, mark the layout for return NFSv4.1/pNFS: Add a helper to mark the layout as returned pNFS: Ensure nfs4_layoutget_prepare returns the correct error commit 506c0d68269e90d354b3cbfc7523611b026c88d0 Author: Trond Myklebust Date: Mon Jan 4 13:04:47 2016 -0500 NFSv4.1/pNFS: Cleanup constify struct pnfs_layout_range arguments Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 6 +++--- fs/nfs/pnfs.h | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) commit e144e5391cf0881c9d64750dca8c592f6b5f0378 Author: Trond Myklebust Date: Mon Jan 4 12:52:53 2016 -0500 NFSv4.1/pnfs: Cleanup copying of pnfs_layout_range structures Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 4 ++-- fs/nfs/pnfs.h | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) commit 71b39854a500be0b80cb3bc05546a7962f387b5b Author: Trond Myklebust Date: Mon Jan 4 12:41:15 2016 -0500 NFSv4.1/pNFS: Cleanup pnfs_mark_matching_lsegs_invalid() Make it more obvious what we're returning... Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 4b0934baf9317e05c7568da1366a1d65f151d81f Author: Trond Myklebust Date: Mon Jan 4 11:28:11 2016 -0500 NFSv4.1/pNFS: Fix a race in initiate_file_draining() Peng Tao points out that the call to pnfs_mark_matching_lsegs_return() could race with pnfs_put_lseg(), in which case the layout segment is cleared, but no layoutreturn will be sent. Fix is to replace the call to pnfs_mark_matching_lsegs_invalid(). Reported-by: Peng Tao Signed-off-by: Trond Myklebust fs/nfs/callback_proc.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 10335556c9e6ed2e1949fb595b7775f475299832 Author: Trond Myklebust Date: Mon Jan 4 11:23:52 2016 -0500 NFSv4.1/pNFS: pnfs_error_mark_layout_for_return() must always return layout Fix a bug whereby if all the layout segments could be immediately freed, the call to pnfs_error_mark_layout_for_return() would never result in a layoutreturn. Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 26 ++++++++++++++++++++------ fs/nfs/pnfs.h | 2 +- 2 files changed, 21 insertions(+), 7 deletions(-) commit 5c97f5de2c7cd9e2a5f71bc7c53125d9a2833ca9 Author: Trond Myklebust Date: Mon Jan 4 11:53:04 2016 -0500 NFSv4.1/pNFS: pnfs_mark_matching_lsegs_return() should set the iomode If pnfs_mark_matching_lsegs_return() needs to mark a layout segment for return, then it must also set the return iomode. Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit 50f563ef5d418127a75ca9b7116232672bbd8aaf Author: Trond Myklebust Date: Mon Jan 4 12:22:46 2016 -0500 NFSv4.1/pNFS: Use nfs4_stateid_copy for copying stateids Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit ed429d6b934d44e25f23f8102375a103c6fc3996 Author: Trond Myklebust Date: Mon Jan 4 12:30:55 2016 -0500 NFSv4.1/pNFS: Don't pass stateids by value to pnfs_send_layoutreturn() A stateid is a structure, pass it as a pointer. Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 85a21eafbc2218ffba59b1dda2ce9d7148bf43d2 Author: Thierry Reding Date: Mon Jan 4 18:19:12 2016 +0100 drm/radeon: Drop unnecessary unsigned int < 0 check Unsigned integers can never be negative, so drop this check. Cc: Christian König Cc: Alex Deucher Signed-off-by: Thierry Reding Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon_kms.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c31ecf6c126dbc7f30234eaf6c4a079649a38de7 Author: Konrad Rzeszutek Wilk Date: Fri Dec 18 16:28:53 2015 -0500 xen/blkfront: Fix crash if backend doesn't follow the right states. We have split the setting up of all the resources in two steps: 1) talk_to_blkback - which figures out the num_ring_pages (from the default value of zero), sets up shadow and so 2) blkfront_connect - does the real part of filling out the internal structures. The problem is if we bypass the 1) step and go straight to 2) and call blkfront_setup_indirect where we use the macro BLK_RING_SIZE - which returns an negative value (because sz is zero - since num_ring_pages is zero - since it has never been set). We can fix this by making sure that we always have called talk_to_blkback before going to blkfront_connect. Or we could set in blkfront_probe info->nr_ring_pages = 1 to have a default value. But that looks odd - as we haven't actually negotiated any ring size. This patch changes XenbusStateConnected state to detect if we haven't done the initial handshake - and if so continue on as if were in XenbusStateInitWait state. We also roll the error recovery (freeing the structure) into talk_to_blkback error path - which is safe since that function is only called from blkback_changed. Signed-off-by: Konrad Rzeszutek Wilk drivers/block/xen-blkfront.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 93bb277f97a6d319361766bde228717faf4abdeb Author: Bob Liu Date: Thu Dec 10 09:16:48 2015 +0800 xen/blkback: Fix two memory leaks. This patch fixs two memleaks: backtrace: [] kmemleak_alloc+0x28/0x50 [] kmem_cache_alloc+0xbb/0x1d0 [] xen_blkbk_probe+0x58/0x230 [] xenbus_dev_probe+0x76/0x130 [] driver_probe_device+0x166/0x2c0 [] __device_attach_driver+0xac/0xb0 [] bus_for_each_drv+0x67/0x90 [] __device_attach+0xc7/0x120 [] device_initial_probe+0x13/0x20 [] bus_probe_device+0x9a/0xb0 [] device_add+0x3b1/0x5c0 [] device_register+0x1e/0x30 [] xenbus_probe_node+0x158/0x170 [] xenbus_dev_changed+0x1af/0x1c0 [] backend_changed+0x1b/0x20 [] xenwatch_thread+0xb6/0x160 unreferenced object 0xffff880007ba8ef8 (size 224): backtrace: [] kmemleak_alloc+0x28/0x50 [] __kmalloc+0xd3/0x1e0 [] frontend_changed+0x2c7/0x580 [] xenbus_otherend_changed+0xa2/0xb0 [] frontend_changed+0x10/0x20 [] xenwatch_thread+0xb6/0x160 [] kthread+0xd7/0xf0 [] ret_from_fork+0x3f/0x70 [] 0xffffffffffffffff unreferenced object 0xffff8800048dcd38 (size 224): The first leak is caused by not put() the be->blkif reference which we had gotten in xen_blkif_alloc(), while the second is us not freeing blkif->rings in the right place. Signed-off-by: Bob Liu Reported-and-Tested-by: Konrad Rzeszutek Wilk Signed-off-by: Konrad Rzeszutek Wilk drivers/block/xen-blkback/xenbus.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) commit db6fbc106786f26d95889c50c18b1f28aa543a17 Author: Bob Liu Date: Wed Dec 9 07:44:02 2015 +0800 xen/blkback: make st_ statistics per ring Make st_* statistics per ring and the VBD sysfs would iterate over all the rings. Note: xenvbd_sysfs_delif() is called in xen_blkbk_remove() before all rings are torn down, so it's safe. Signed-off-by: Bob Liu Signed-off-by: Konrad Rzeszutek Wilk --- v2: Aligned the variables on the same column. drivers/block/xen-blkback/blkback.c | 34 +++++++++++++--------------- drivers/block/xen-blkback/common.h | 20 ++++++++--------- drivers/block/xen-blkback/xenbus.c | 45 ++++++++++++++++++++++++++++--------- 3 files changed, 61 insertions(+), 38 deletions(-) commit 6cc5683390472c450fd69975d1283db79202667f Author: Julien Grall Date: Thu Aug 13 13:13:35 2015 +0100 xen/blkfront: Handle non-indirect grant with 64KB pages The minimal size of request in the block framework is always PAGE_SIZE. It means that when 64KB guest is support, the request will at least be 64KB. Although, if the backend doesn't support indirect descriptor (such as QDISK in QEMU), a ring request is only able to accommodate 11 segments of 4KB (i.e 44KB). The current frontend is assuming that an I/O request will always fit in a ring request. This is not true any more when using 64KB page granularity and will therefore crash during boot. On ARM64, the ABI is completely neutral to the page granularity used by the domU. The guest has the choice between different page granularity supported by the processors (for instance on ARM64: 4KB, 16KB, 64KB). This can't be enforced by the hypervisor and therefore it's possible to run guests using different page granularity. So we can't mandate the block backend to support indirect descriptor when the frontend is using 64KB page granularity and have to fix it properly in the frontend. The solution exposed below is based on modifying directly the frontend guest rather than asking the block framework to support smaller size (i.e < PAGE_SIZE). This is because the change is the block framework are not trivial as everything seems to relying on a struct *page (see [1]). Although, it may be possible that someone succeed to do it in the future and we would therefore be able to use it. Given that a block request may not fit in a single ring request, a second request is introduced for the data that cannot fit in the first one. This means that the second ring request should never be used on Linux if the page size is smaller than 44KB. To achieve the support of the extra ring request, the block queue size is divided by two. Therefore, the ring will always contain enough space to accommodate 2 ring requests. While this will reduce the overall performance, it will make the implementation more contained. The way forward to get better performance is to implement in the backend either indirect descriptor or multiple grants ring. Note that the parameters blk_queue_max_* helpers haven't been updated. The block code will set the mimimum size supported and we may be able to support directly any change in the block framework that lower down the minimal size of a request. [1] http://lists.xen.org/archives/html/xen-devel/2015-08/msg02200.html Signed-off-by: Julien Grall Acked-by: Roger Pau Monné Signed-off-by: Konrad Rzeszutek Wilk drivers/block/xen-blkfront.c | 228 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 212 insertions(+), 16 deletions(-) commit 2e073969d57f60fc0b863985779657624cbd4886 Author: Julien Grall Date: Thu Aug 13 19:23:10 2015 +0100 xen-blkfront: Introduce blkif_ring_get_request The code to get a request is always the same. Therefore we can factorize it in a single function. Signed-off-by: Julien Grall Acked-by: Roger Pau Monné Signed-off-by: Konrad Rzeszutek Wilk drivers/block/xen-blkfront.c | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) commit a6e7af1288eeb7fca8361356998d31a92a291531 Author: Jiri Kosina Date: Mon Oct 26 14:47:21 2015 +0900 xen-blkback: clear PF_NOFREEZE for xen_blkif_schedule() xen_blkif_schedule() kthread calls try_to_freeze() at the beginning of every attempt to purge the LRU. This operation can't ever succeed though, as the kthread hasn't marked itself as freezable. Before (hopefully eventually) kthread freezing gets converted to fileystem freezing, we'd rather mark xen_blkif_schedule() freezable (as it can generate I/O during suspend). Signed-off-by: Jiri Kosina Signed-off-by: Konrad Rzeszutek Wilk drivers/block/xen-blkback/blkback.c | 1 + 1 file changed, 1 insertion(+) commit 2d0382fac17cef20d507a0211b82e0942b2ab271 Author: Konrad Rzeszutek Wilk Date: Wed Nov 25 13:20:14 2015 -0500 xen/blkback: Free resources if connect_ring failed. With the multi-queue support we could fail at setting up some of the rings and fail the connection. That meant that all resources tied to rings[0..n-1] (where n is the ring that failed to be setup). Eventually the frontend will switch to the states and we will call xen_blkif_disconnect. However we do not want to be at the mercy of the frontend deciding when to change states. This allows us to do the cleanup right away and freeing resources. Signed-off-by: Konrad Rzeszutek Wilk drivers/block/xen-blkback/xenbus.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit bde21f73b9be146fda0c689f2724cda9d7737565 Author: Konrad Rzeszutek Wilk Date: Wed Nov 25 13:07:39 2015 -0500 xen/blocks: Return -EXX instead of -1 Lets return sensible values instead of -1. Signed-off-by: Konrad Rzeszutek Wilk drivers/block/xen-blkback/xenbus.c | 2 +- drivers/block/xen-blkfront.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit d4bf0065b7251afb723a29b2fd58f7c38f8ce297 Author: Bob Liu Date: Sat Nov 14 11:12:19 2015 +0800 xen/blkback: make pool of persistent grants and free pages per-queue Make pool of persistent grants and free pages per-queue/ring instead of per-device to get better scalability. Test was done based on null_blk driver: dom0: v4.2-rc8 16vcpus 10GB "modprobe null_blk" domu: v4.2-rc8 16vcpus 10GB [test] rw=read direct=1 ioengine=libaio bs=4k time_based runtime=30 filename=/dev/xvdb numjobs=16 iodepth=64 iodepth_batch=64 iodepth_batch_complete=64 group_reporting Results: iops1: After patch "xen/blkfront: make persistent grants per-queue". iops2: After this patch. Queues: 1 4 8 16 Iops orig(k): 810 1064 780 700 Iops1(k): 810 1230(~20%) 1024(~20%) 850(~20%) Iops2(k): 810 1410(~35%) 1354(~75%) 1440(~100%) With 4 queues after this commit we can get ~75% increase in IOPS, and performance won't drop if increasing queue numbers. Please find the respective chart in this link: https://www.dropbox.com/s/agrcy2pbzbsvmwv/iops.png?dl=0 Signed-off-by: Bob Liu Signed-off-by: Konrad Rzeszutek Wilk drivers/block/xen-blkback/blkback.c | 202 ++++++++++++++++-------------------- drivers/block/xen-blkback/common.h | 32 +++--- drivers/block/xen-blkback/xenbus.c | 21 ++-- 3 files changed, 118 insertions(+), 137 deletions(-) commit d62d86000316d7ef38e1c2e9602c3ce6d1cb57bd Author: Bob Liu Date: Sat Nov 14 11:12:17 2015 +0800 xen/blkback: get the number of hardware queues/rings from blkfront Backend advertises "multi-queue-max-queues" to front, also get the negotiated number from "multi-queue-num-queues" written by blkfront. Signed-off-by: Bob Liu Signed-off-by: Konrad Rzeszutek Wilk drivers/block/xen-blkback/blkback.c | 13 +++++++++++++ drivers/block/xen-blkback/common.h | 1 + drivers/block/xen-blkback/xenbus.c | 34 ++++++++++++++++++++++++++++------ 3 files changed, 42 insertions(+), 6 deletions(-) commit 2fb1ef4f1226ea6d6d3481036cabe01a4415b68c Author: Konrad Rzeszutek Wilk Date: Fri Dec 11 12:08:48 2015 -0500 xen/blkback: pseudo support for multi hardware queues/rings Preparatory patch for multiple hardware queues (rings). The number of rings is unconditionally set to 1, larger number will be enabled in "xen/blkback: get the number of hardware queues/rings from blkfront". Signed-off-by: Arianna Avanzini Signed-off-by: Bob Liu Signed-off-by: Konrad Rzeszutek Wilk --- v2: Align variables in the structures. drivers/block/xen-blkback/common.h | 3 +- drivers/block/xen-blkback/xenbus.c | 277 +++++++++++++++++++++++-------------- 2 files changed, 175 insertions(+), 105 deletions(-) commit 597957000ab5b1b38085c20868f3f7b9c305bae5 Author: Bob Liu Date: Sat Nov 14 11:12:15 2015 +0800 xen/blkback: separate ring information out of struct xen_blkif Split per ring information to an new structure "xen_blkif_ring", so that one vbd device can be associated with one or more rings/hardware queues. Introduce 'pers_gnts_lock' to protect the pool of persistent grants since we may have multi backend threads. This patch is a preparation for supporting multi hardware queues/rings. Signed-off-by: Arianna Avanzini Signed-off-by: Bob Liu Signed-off-by: Konrad Rzeszutek Wilk --- v2: Align the variables in the structure. drivers/block/xen-blkback/blkback.c | 235 ++++++++++++++++++++---------------- drivers/block/xen-blkback/common.h | 56 +++++---- drivers/block/xen-blkback/xenbus.c | 96 +++++++-------- 3 files changed, 215 insertions(+), 172 deletions(-) commit 45fc82642e54018740a25444d1165901501b601b Author: Peng Fan Date: Wed Nov 25 18:26:01 2015 +0800 xen/blkfront: correct setting for xen_blkif_max_ring_order According to this piece code: " pr_info("Invalid max_ring_order (%d), will use default max: %d.\n", xen_blkif_max_ring_order, XENBUS_MAX_RING_GRANT_ORDER); " if xen_blkif_max_ring_order is bigger that XENBUS_MAX_RING_GRANT_ORDER, need to set xen_blkif_max_ring_order using XENBUS_MAX_RING_GRANT_ORDER, but not 0. Signed-off-by: Peng Fan Cc: Boris Ostrovsky Cc: David Vrabel Cc: "Roger Pau Monné" Signed-off-by: Konrad Rzeszutek Wilk drivers/block/xen-blkfront.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 73716df7da4f60dd2d59a9302227d0394f1b8fcc Author: Bob Liu Date: Mon Nov 16 16:51:39 2015 -0500 xen/blkfront: make persistent grants pool per-queue Make persistent grants per-queue/ring instead of per-device, so that we can drop the 'dev_lock' and get better scalability. Test was done based on null_blk driver: dom0: v4.2-rc8 16vcpus 10GB "modprobe null_blk" domu: v4.2-rc8 16vcpus 10GB [test] rw=read direct=1 ioengine=libaio bs=4k time_based runtime=30 filename=/dev/xvdb numjobs=16 iodepth=64 iodepth_batch=64 iodepth_batch_complete=64 group_reporting Queues: 1 4 8 16 Iops orig(k): 810 1064 780 700 Iops patched(k): 810 1230(~20%) 1024(~20%) 850(~20%) Signed-off-by: Bob Liu Signed-off-by: Konrad Rzeszutek Wilk drivers/block/xen-blkfront.c | 110 +++++++++++++++++-------------------------- 1 file changed, 43 insertions(+), 67 deletions(-) commit 75f070b3967b0c3bf0e1bc43411b06bab6c2c2cd Author: Bob Liu Date: Mon Nov 16 16:25:33 2015 -0500 xen/blkfront: Remove duplicate setting of ->xbdev. We do the same exact operations a bit earlier in the function. Signed-off-by: Bob Liu Signed-off-by: Konrad Rzeszutek Wilk drivers/block/xen-blkfront.c | 1 - 1 file changed, 1 deletion(-) commit 6f03a7ff89485f0a7a559bf5c7631d2986c4ecfa Author: Konrad Rzeszutek Wilk Date: Mon Nov 16 15:14:41 2015 -0500 xen/blkfront: Cleanup of comments, fix unaligned variables, and syntax errors. Signed-off-by: Konrad Rzeszutek Wilk drivers/block/xen-blkfront.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit 28d949bcc28bbc2d206f9c3f69b892575e81c040 Author: Bob Liu Date: Sat Nov 14 11:12:14 2015 +0800 xen/blkfront: negotiate number of queues/rings to be used with backend The max number of hardware queues for xen/blkfront is set by parameter 'max_queues'(default 4), while it is also capped by the max value that the xen/blkback exposes through XenStore key 'multi-queue-max-queues'. The negotiated number is the smaller one and would be written back to xenstore as "multi-queue-num-queues", blkback needs to read this negotiated number. Signed-off-by: Bob Liu Signed-off-by: Konrad Rzeszutek Wilk drivers/block/xen-blkfront.c | 160 ++++++++++++++++++++++++++++++++----------- 1 file changed, 119 insertions(+), 41 deletions(-) commit 11659569f7202d0cb6553e81f9b8aa04dfeb94ce Author: Bob Liu Date: Sat Nov 14 11:12:13 2015 +0800 xen/blkfront: split per device io_lock After patch "xen/blkfront: separate per ring information out of device info", per-ring data is protected by a per-device lock ('io_lock'). This is not a good way and will effect the scalability, so introduce a per-ring lock ('ring_lock'). The old 'io_lock' is renamed to 'dev_lock' which protects the ->grants list and ->persistent_gnts_c which are shared by all rings. Note that in 'blkfront_probe' the 'blkfront_info' is setup via kzalloc so setting ->persistent_gnts_c to zero is not needed. Signed-off-by: Bob Liu Signed-off-by: Konrad Rzeszutek Wilk drivers/block/xen-blkfront.c | 73 ++++++++++++++++++++++++++++---------------- 1 file changed, 47 insertions(+), 26 deletions(-) commit 3df0e5059908b8fdba351c4b5dd77caadd95a949 Author: Bob Liu Date: Sat Nov 14 11:12:12 2015 +0800 xen/blkfront: pseudo support for multi hardware queues/rings Preparatory patch for multiple hardware queues (rings). The number of rings is unconditionally set to 1, larger number will be enabled in patch "xen/blkfront: negotiate number of queues/rings to be used with backend" so as to make review easier. Note that blkfront_gather_backend_features does not call blkfront_setup_indirect anymore (as that needs to be done per ring). That means that in blkif_recover/blkif_connect we have to do it in a loop (bounded by nr_rings). Signed-off-by: Bob Liu Signed-off-by: Konrad Rzeszutek Wilk drivers/block/xen-blkfront.c | 343 +++++++++++++++++++++++++------------------ 1 file changed, 198 insertions(+), 145 deletions(-) commit 7a11a334aa6af4c65c6a0d81b60c97fc18673532 Author: Mykola Lysenko Date: Fri Dec 25 16:14:48 2015 +0800 drm/dp/mst: fix in RAD element access This is needed to receive correct port number from RAD, so MSTB could be found Acked-by: Dave Airlie Signed-off-by: Mykola Lysenko Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/drm_dp_mst_topology.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 75af4c8c4c0f60d7ad135419805798f144e9baf9 Author: Mykola Lysenko Date: Fri Dec 25 16:14:47 2015 +0800 drm/dp/mst: fix in MSTB RAD initialization This fix is needed to support more then two branch displays, so RAD address consist at least of 2 elements Acked-by: Dave Airlie Signed-off-by: Mykola Lysenko Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/drm_dp_mst_topology.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 1f16ee7fa13649f4e55aa48ad31c3eb0722a62d3 Author: Mykola Lysenko Date: Fri Dec 18 17:14:43 2015 -0500 drm/dp/mst: always send reply for UP request We should always send reply for UP request in order to make downstream device clean-up resources appropriately. Issue was that reply for UP request was sent only once. Acked-by: Dave Airlie Signed-off-by: Mykola Lysenko Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/drm_dp_mst_topology.c | 30 +++++++++++------------------- include/drm/drm_dp_mst_helper.h | 2 -- 2 files changed, 11 insertions(+), 21 deletions(-) commit bd9343208704fcc70a5b919f228a7d26ae472727 Author: Mykola Lysenko Date: Fri Dec 18 17:14:42 2015 -0500 drm/dp/mst: process broadcast messages correctly In case broadcast message received in UP request, RAD cannot be used to identify message originator. Message should be parsed, originator should be found by GUID from parsed message. Also reply with broadcast in case broadcast message received (for now it is always broadcast) Acked-by: Dave Airlie Signed-off-by: Mykola Lysenko Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/drm_dp_mst_topology.c | 95 +++++++++++++++++++++++++++++++---- 1 file changed, 84 insertions(+), 11 deletions(-) commit 449278d9244277cbcaf04e0d2bb8b54797c3d5cd Author: Julia Lawall Date: Mon Jan 4 17:36:01 2016 +0100 hwmon: (ibmaem) constify aem_rw_sensor_template and aem_ro_sensor_template structures The aem_rw_sensor_template and aem_ro_sensor_template structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Guenter Roeck drivers/hwmon/ibmaem.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit ad6d950393138830edae2efcc500aa69b467b89c Author: Pablo Neira Ayuso Date: Sun Jan 3 22:41:24 2016 +0100 netfilter: nf_ct_helper: define pr_fmt() Signed-off-by: Pablo Neira Ayuso net/netfilter/nf_conntrack_ftp.c | 17 ++++++++--------- net/netfilter/nf_conntrack_irc.c | 7 ++++--- net/netfilter/nf_conntrack_sane.c | 19 +++++++++---------- net/netfilter/nf_conntrack_sip.c | 5 +++-- net/netfilter/nf_conntrack_tftp.c | 7 ++++--- 5 files changed, 28 insertions(+), 27 deletions(-) commit 39e6dea28adc874f7021e5580c13cab0b58407ea Author: Pablo Neira Ayuso Date: Wed Nov 25 13:39:38 2015 +0100 netfilter: nf_tables: add forward expression to the netdev family You can use this to forward packets from ingress to the egress path of the specified interface. This provides a fast path to bounce packets from one interface to another specific destination interface. Signed-off-by: Pablo Neira Ayuso include/uapi/linux/netfilter/nf_tables.h | 12 ++++ net/netfilter/Kconfig | 6 ++ net/netfilter/Makefile | 1 + net/netfilter/nft_fwd_netdev.c | 98 ++++++++++++++++++++++++++++++++ 4 files changed, 117 insertions(+) commit e679660dbb8347f275fe5d83a5dd59c1fb6c8e63 Author: Jens Wiklander Date: Mon Jan 4 15:46:47 2016 +0100 ARM: 8481/2: drivers: psci: replace psci firmware calls Switch to use a generic interface for issuing SMC/HVC based on ARM SMC Calling Convention. Removes now the now unused psci-call.S. Acked-by: Will Deacon Reviewed-by: Mark Rutland Tested-by: Mark Rutland Acked-by: Lorenzo Pieralisi Tested-by: Lorenzo Pieralisi Signed-off-by: Jens Wiklander Signed-off-by: Russell King arch/arm/Kconfig | 2 +- arch/arm/kernel/Makefile | 1 - arch/arm/kernel/psci-call.S | 31 ------------------------------- arch/arm64/kernel/Makefile | 2 +- arch/arm64/kernel/psci-call.S | 28 ---------------------------- drivers/firmware/psci.c | 23 +++++++++++++++++++++-- 6 files changed, 23 insertions(+), 64 deletions(-) commit 14457459f9ca2ff8521686168ea179edc3a56a44 Author: Jens Wiklander Date: Mon Jan 4 15:44:32 2016 +0100 ARM: 8480/2: arm64: add implementation for arm-smccc Adds implementation for arm-smccc and enables CONFIG_HAVE_SMCCC. Acked-by: Will Deacon Signed-off-by: Jens Wiklander Signed-off-by: Russell King arch/arm64/Kconfig | 1 + arch/arm64/kernel/Makefile | 2 +- arch/arm64/kernel/arm64ksyms.c | 5 +++++ arch/arm64/kernel/asm-offsets.c | 3 +++ arch/arm64/kernel/smccc-call.S | 43 +++++++++++++++++++++++++++++++++++++++++ 5 files changed, 53 insertions(+), 1 deletion(-) commit b329f95d70f3f955093e9a2b18ac1ed3587a8f73 Author: Jens Wiklander Date: Mon Jan 4 15:42:55 2016 +0100 ARM: 8479/2: add implementation for arm-smccc Adds implementation for arm-smccc and enables CONFIG_HAVE_SMCCC for architectures that may support arm-smccc. It's the responsibility of the caller to know if the SMC instruction is supported by the platform. Reviewed-by: Lars Persson Signed-off-by: Jens Wiklander Signed-off-by: Russell King arch/arm/Kconfig | 1 + arch/arm/kernel/Makefile | 2 ++ arch/arm/kernel/armksyms.c | 6 +++++ arch/arm/kernel/smccc-call.S | 62 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 71 insertions(+) commit 98dd64f34f47ce19b388d9015f767f48393a81eb Author: Jens Wiklander Date: Mon Jan 4 15:37:32 2016 +0100 ARM: 8478/2: arm/arm64: add arm-smccc Adds helpers to do SMC and HVC based on ARM SMC Calling Convention. CONFIG_HAVE_ARM_SMCCC is enabled for architectures that may support the SMC or HVC instruction. It's the responsibility of the caller to know if the SMC instruction is supported by the platform. This patch doesn't provide an implementation of the declared functions. Later patches will bring in implementations and set CONFIG_HAVE_ARM_SMCCC for ARM and ARM64 respectively. Reviewed-by: Lorenzo Pieralisi Signed-off-by: Jens Wiklander Signed-off-by: Russell King drivers/firmware/Kconfig | 3 ++ include/linux/arm-smccc.h | 104 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 107 insertions(+) commit 6a53b31349e7fbe6f742b7f09d7c2118d4fe81e3 Author: Arnd Bergmann Date: Fri Jan 1 14:07:41 2016 +0100 drm: powerplay: use div64_s64 instead of do_div The newly added code for Fiji creates a correct compiler warning about invalid use of the do_div macro: In file included from powerplay/hwmgr/ppatomctrl.c:31:0: drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/ppevvmath.h: In function 'fDivide': drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/ppevvmath.h:382:89: warning: comparison of distinct pointer types lacks a cast do_div(longlongX, longlongY); /*Q(32,32) divided by Q(16,16) = Q(16,16) Back to original format */ do_div() divides an unsigned 64-bit number by an unsigned 32-bit number. The code instead wants to divide two signed 64-bit numbers, which is done using the div64_s64 function. Reviewed-by: Thierry Reding Reviewed-by: Christian König Signed-off-by: Arnd Bergmann Fixes: 770911a3cfbb ("drm/amd/powerplay: add/update headers for Fiji SMU and DPM") Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/ppevvmath.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 793b796ebfcb3157fe80056a719096a550f0c7d0 Author: Al Viro Date: Sat Jan 2 14:53:28 2016 -0500 [um] mconsole: don't open-code memdup_user_nul() Signed-off-by: Al Viro arch/um/drivers/mconsole_kern.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) commit 1ceb36285c256347ffa062b7b1b593f801b6697b Author: Al Viro Date: Sat Jan 2 14:50:51 2016 -0500 [um] hostaudio: don't open-code memdup_user() Signed-off-by: Al Viro arch/um/drivers/hostaudio_kern.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit 80f8dccf95147f9668eee021425ecf3ff6432c51 Author: Al Viro Date: Sat Jan 2 14:29:23 2016 -0500 HFS wants 8Kb per-superblock allocation; just use kmalloc() ... rather than play with __get_free_pages() (and figuring out the allocation order, etc.) Signed-off-by: Al Viro fs/hfs/mdb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 76e8d7cb71d415581402dbc5c5bbbbcc28ca0e47 Author: Al Viro Date: Sat Jan 2 14:22:04 2016 -0500 jfs: microoptimize get_zeroed_page / virt_to_page get_zeroed_page does alloc_page and returns page_address of the result; subsequent virt_to_page will recover the page, but since the caller needs both page and its page_address() anyway, why bother going through that wrapper at all? Signed-off-by: Al Viro fs/jfs/jfs_logmgr.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 222e4adec52418dc1c80a30eff80b33ec954745e Author: Al Viro Date: Sat Jan 2 13:31:21 2016 -0500 ... and a couple in net/9p Signed-off-by: Al Viro net/9p/trans_virtio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 93bbf5831dd1742a98c57b6415ee84ce35425067 Author: Al Viro Date: Sat Jan 2 13:30:54 2016 -0500 md: more open-coded offset_in_page() Signed-off-by: Al Viro drivers/md/bcache/util.c | 2 +- drivers/md/dm-io.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 756d097b959aefe69a081496f84cfc14b1397a15 Author: Al Viro Date: Sat Jan 2 12:45:27 2016 -0500 dm-bufio: virt_to_phys() doesn't change remainder modulo PAGE_SIZE ... so virt_to_phys(p) & (PAGE_SIZE - 1) is a very odd way to spell offset_in_page(p). Signed-off-by: Al Viro drivers/md/dm-bufio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4e728cf8ffa2891913dd48e179c132fb9fa07e0e Author: Al Viro Date: Tue Dec 29 15:38:25 2015 -0500 hpfs: missing endianness annotation Signed-off-by: Al Viro fs/hpfs/map.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4802c5919a70661d5022710d88e311c3880cd0fd Author: Al Viro Date: Tue Dec 29 14:55:33 2015 -0500 drivers/mtd/maps/pcmciamtd.c: __iomem annotations Signed-off-by: Al Viro drivers/mtd/maps/pcmciamtd.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) commit 62fb4a155f745285d9b1640c3ef53bf90c12f17c Author: Al Viro Date: Sat Dec 26 22:33:24 2015 -0500 don't carry MAY_OPEN in op->acc_mode Signed-off-by: Al Viro fs/exec.c | 4 ++-- fs/namei.c | 21 +++++++++------------ fs/open.c | 5 +---- 3 files changed, 12 insertions(+), 18 deletions(-) commit b40ef8696fbbb1107fbe5f4afc21c357f16e5ffc Author: Al Viro Date: Mon Dec 14 18:44:44 2015 -0500 saner calling conventions for copy_mount_options() let it just return NULL, pointer to kernel copy or ERR_PTR(). Signed-off-by: Al Viro fs/compat.c | 21 ++++++++++----------- fs/internal.h | 2 +- fs/namespace.c | 35 +++++++++++++++++------------------ 3 files changed, 28 insertions(+), 30 deletions(-) commit cc4e719e83cd4149bc96b7e1d1a73fe61797df6e Author: Al Viro Date: Fri Dec 25 17:59:12 2015 -0500 fix the leak in integrity_read_file() Signed-off-by: Al Viro security/integrity/iint.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 7812bf173a0a65a1227fe207ba8683c0afecb5e8 Author: Al Viro Date: Fri Dec 25 12:33:26 2015 -0500 ppc: get rid of the remnants of __get_user64() When __get_user64() had been removed, its helper (__get_user64_nocheck) got missed. Signed-off-by: Al Viro arch/powerpc/include/asm/uaccess.h | 15 --------------- 1 file changed, 15 deletions(-) commit f5e6634ec04b6ed55be4e124277acde240323f2d Author: Al Viro Date: Fri Dec 25 10:04:47 2015 -0500 put the remnants of ..._user_ret() to rest they hadn't been used in last 15 years... Signed-off-by: Al Viro arch/blackfin/include/asm/uaccess.h | 6 ---- arch/m68k/include/asm/uaccess_no.h | 4 --- arch/mn10300/include/asm/uaccess.h | 15 --------- arch/sparc/include/asm/uaccess_32.h | 65 ------------------------------------- arch/sparc/include/asm/uaccess_64.h | 40 ----------------------- 5 files changed, 130 deletions(-) commit bb646cdb12e75d82258c2f2e7746d5952d3e321a Author: Al Viro Date: Thu Dec 24 00:16:30 2015 -0500 proc_pid_attr_write(): switch to memdup_user() Signed-off-by: Al Viro fs/proc/base.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) commit 70f6cbb6f9c95535acd327d1ac1ce5fd078cff1e Author: Al Viro Date: Thu Dec 24 00:13:10 2015 -0500 kernel/*: switch to memdup_user_nul() Signed-off-by: Al Viro kernel/sysctl.c | 79 +++++++++++++------------------------ kernel/trace/trace_events.c | 28 ++++--------- kernel/trace/trace_events_trigger.c | 15 +++---- kernel/user_namespace.c | 21 ++++------ 4 files changed, 48 insertions(+), 95 deletions(-) commit e4e85bb091d13afef7b1a10b4bd209b442be8863 Author: Al Viro Date: Thu Dec 24 00:12:09 2015 -0500 cciss: switch to memdup_user_nul() all we do to buffer is strncmp()... Signed-off-by: Al Viro drivers/block/cciss.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) commit f0fc86966253ad244f53841e3d8db2cf9f862019 Author: Al Viro Date: Thu Dec 24 00:10:20 2015 -0500 switch wireless debugfs ->write() instances to memdup_user_nul() again, it only parses the contents of the copied buffer, so get_zeroed_page() might as well had been kmalloc(), which makes it open-coded memdup_user_nul() Signed-off-by: Al Viro drivers/net/wireless/libertas/debugfs.c | 181 +++++++++++--------------------- drivers/net/wireless/mwifiex/debugfs.c | 82 +++++---------- 2 files changed, 89 insertions(+), 174 deletions(-) commit 8365a71946bb1075f5e0e6357fe0f0b92404d966 Author: Al Viro Date: Thu Dec 24 00:08:06 2015 -0500 selinuxfs: switch to memdup_user_nul() Nothing in there gives a damn about the buffer alignment - it just parses its contents. So the use of get_zeroed_page() doesn't buy us anything - might as well had been kmalloc(), which makes that code equivalent to open-coded memdup_user_nul() Signed-off-by: Al Viro security/selinux/selinuxfs.c | 114 ++++++++++++++++--------------------------- 1 file changed, 41 insertions(+), 73 deletions(-) commit 16e5c1fc36040e592128a164499bc25eb138a80f Author: Al Viro Date: Thu Dec 24 00:06:05 2015 -0500 convert a bunch of open-coded instances of memdup_user_nul() A _lot_ of ->write() instances were open-coding it; some are converted to memdup_user_nul(), a lot more remain... Signed-off-by: Al Viro arch/xtensa/platforms/iss/simdisk.c | 12 +-- drivers/net/wireless/ath/wil6210/debugfs.c | 12 +-- drivers/s390/char/vmcp.c | 11 +-- drivers/sbus/char/openprom.c | 13 +--- fs/afs/proc.c | 25 ++----- fs/cachefiles/daemon.c | 12 +-- fs/dlm/user.c | 11 +-- kernel/trace/blktrace.c | 12 +-- lib/dynamic_debug.c | 11 +-- net/rxrpc/ar-key.c | 24 ++---- security/smack/smackfs.c | 114 ++++++++--------------------- security/tomoyo/securityfs_if.c | 11 +-- 12 files changed, 71 insertions(+), 197 deletions(-) commit 7e935c7ca1e6c398f11edac5beabfc4348e3b3a4 Merge: c62432b e9d408e Author: Al Viro Date: Mon Jan 4 10:25:34 2016 -0500 Merge branch 'memdup_user_nul' into work.misc commit e9d408e107db9a554b36c3a79f67b37dd3e16da0 Author: Al Viro Date: Thu Dec 24 00:06:05 2015 -0500 new helper: memdup_user_nul() Similar to memdup_user(), except that allocated buffer is one byte longer and '\0' is stored after the copied data. Signed-off-by: Al Viro include/linux/string.h | 1 + mm/util.c | 31 +++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) commit bb00c898ad1ce40c4bb422a8207ae562e9aea7ae Author: Andrew Gabbasov Date: Thu Dec 24 10:25:33 2015 -0600 udf: Check output buffer length when converting name to CS0 If a name contains at least some characters with Unicode values exceeding single byte, the CS0 output should have 2 bytes per character. And if other input characters have single byte Unicode values, then the single input byte is converted to 2 output bytes, and the length of output becomes larger than the length of input. And if the input name is long enough, the output length may exceed the allocated buffer length. All this means that conversion from UTF8 or NLS to CS0 requires checking of output length in order to stop when it exceeds the given output buffer size. [JK: Make code return -ENAMETOOLONG instead of silently truncating the name] CC: stable@vger.kernel.org Signed-off-by: Andrew Gabbasov Signed-off-by: Jan Kara fs/udf/unicode.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit 81f351615772365d46ceeac3e50c9dd4e8f9dc89 Author: Bob Liu Date: Sat Nov 14 11:12:11 2015 +0800 xen/blkfront: separate per ring information out of device info Split per ring information to a new structure "blkfront_ring_info". A ring is the representation of a hardware queue, every vbd device can associate with one or more rings depending on how many hardware queues/rings to be used. This patch is a preparation for supporting real multi hardware queues/rings. We also add a backpointer to 'struct blkfront_info' (dev_info) which is not needed (we could use containers_of) but further patch ("xen/blkfront: pseudo support for multi hardware queues/rings") will make allocation of 'blkfront_ring_info' dynamic. Signed-off-by: Arianna Avanzini Signed-off-by: Bob Liu Signed-off-by: Konrad Rzeszutek Wilk drivers/block/xen-blkfront.c | 359 ++++++++++++++++++++++++------------------- 1 file changed, 197 insertions(+), 162 deletions(-) commit eb5df87fab0ae7114b83dc7f338b27d039374767 Author: Bob Liu Date: Sat Nov 14 11:12:10 2015 +0800 xen/blkif: document blkif multi-queue/ring extension Document the multi-queue/ring feature in terms of XenStore keys to be written by the backend and by the frontend. Signed-off-by: Bob Liu Signed-off-by: Konrad Rzeszutek Wilk include/xen/interface/io/blkif.h | 48 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) commit ad402b265ecf6fa22d04043b41444cdfcdf4f52d Author: Andrew Gabbasov Date: Thu Dec 24 10:25:32 2015 -0600 udf: Prevent buffer overrun with multi-byte characters udf_CS0toUTF8 function stops the conversion when the output buffer length reaches UDF_NAME_LEN-2, which is correct maximum name length, but, when checking, it leaves the space for a single byte only, while multi-bytes output characters can take more space, causing buffer overflow. Similar error exists in udf_CS0toNLS function, that restricts the output length to UDF_NAME_LEN, while actual maximum allowed length is UDF_NAME_LEN-2. In these cases the output can override not only the current buffer length field, causing corruption of the name buffer itself, but also following allocation structures, causing kernel crash. Adjust the output length checks in both functions to prevent buffer overruns in case of multi-bytes UTF8 or NLS characters. CC: stable@vger.kernel.org Signed-off-by: Andrew Gabbasov Signed-off-by: Jan Kara fs/udf/unicode.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 6a1f513776b78c994045287073e55bae44ed9f8c Author: Ouyang Zhaowei (Charles) Date: Wed May 6 09:47:04 2015 +0800 x86/xen: don't reset vcpu_info on a cancelled suspend On a cancelled suspend the vcpu_info location does not change (it's still in the per-cpu area registered by xen_vcpu_setup()). So do not call xen_hvm_init_shared_info() which would make the kernel think its back in the shared info. With the wrong vcpu_info, events cannot be received and the domain will hang after a cancelled suspend. Signed-off-by: Charles Ouyang Reviewed-by: Boris Ostrovsky Cc: Signed-off-by: David Vrabel arch/x86/xen/suspend.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 005ce0713006a76d2b0c924ce0e2629e5d8510c3 Author: Vegard Nossum Date: Sat Jan 2 14:04:40 2016 +0100 iio: add HAS_IOMEM dependency to VF610_ADC Ran into this on UML: drivers/built-in.o: In function `vf610_adc_probe': drivers/iio/adc/vf610_adc.c:744: undefined reference to `devm_ioremap_resource' devm_ioremap_resource() is defined only when HAS_IOMEM is selected. Signed-off-by: Vegard Nossum Cc: Signed-off-by: Jonathan Cameron drivers/iio/adc/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 01cc5235604d61018712c11a14d74230f6a38bf4 Author: Vegard Nossum Date: Sat Jan 2 14:04:39 2016 +0100 iio: add IIO_TRIGGER dependency to STK8BA50 Ran into this on UML: drivers/iio/accel/stk8ba50.c: In function ‘stk8ba50_data_rdy_trigger_set_state’: drivers/iio/accel/stk8ba50.c:163:9: error: implicit declaration of function ‘iio_trigger_get_drvdata’ [-Werror=implicit-function-declaration] iio_trigger_get_drvdata() is defined only when IIO_TRIGGER is selected. Signed-off-by: Vegard Nossum Cc: Signed-off-by: Jonathan Cameron drivers/iio/accel/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 03607ace807b414eab46323c794b6fb8fcc2d48c Author: Pantelis Antoniou Date: Thu Oct 22 23:30:04 2015 +0300 configfs: implement binary attributes ConfigFS lacked binary attributes up until now. This patch introduces support for binary attributes in a somewhat similar manner of sysfs binary attributes albeit with changes that fit the configfs usage model. Problems that configfs binary attributes fix are everything that requires a binary blob as part of the configuration of a resource, such as bitstream loading for FPGAs, DTBs for dynamically created devices etc. Look at Documentation/filesystems/configfs/configfs.txt for internals and howto use them. This patch is against linux-next as of today that contains Christoph's configfs rework. Signed-off-by: Pantelis Antoniou [hch: folded a fix from Geert Uytterhoeven ] [hch: a few tiny updates based on review feedback] Signed-off-by: Christoph Hellwig Documentation/filesystems/configfs/configfs.txt | 57 +++++- fs/configfs/configfs_internal.h | 14 +- fs/configfs/dir.c | 18 +- fs/configfs/file.c | 255 +++++++++++++++++++++++- fs/configfs/inode.c | 2 +- include/linux/configfs.h | 50 +++++ 6 files changed, 374 insertions(+), 22 deletions(-) commit ad84f56bf6d620fe6ed4d57ce6ec9945684d7f35 Author: Jungseung Lee Date: Tue Dec 29 05:47:00 2015 +0100 ARM: 8494/1: mm: Enable PXN when running non-LPAE kernel on LPAE processor The VMSA field of MMFR0 (bottom 4 bits) is incremented for each added feature. PXN is supported if the value is >= 4 and LPAE is supported if it is >= 5. In case a kernel with CONFIG_ARM_LPAE disabled is used on a processor that supports LPAE, we can still use PXN in short descriptors. So check for >= 4 not == 4. Signed-off-by: Jungseung Lee Acked-by: Catalin Marinas Signed-off-by: Ben Hutchings Signed-off-by: Russell King arch/arm/mm/mmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8c51b034938fb37b7ffc2e7c49a39b284f5c08c0 Author: Ivaylo Dimitrov Date: Fri Jan 1 12:49:36 2016 +0100 ARM: 8496/1: OMAP: RX51: save ATAGS data in the early boot stage This fixes a regression with device tree based booting compared to legacy booting for n900 to make the n900 legacy user space to also work with device tree based booting Signed-off-by: Ivaylo Dimitrov Signed-off-by: Russell King arch/arm/mach-omap2/board-generic.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 6e0306a97d18bb9bec71b1f3db0dbc6b14c5f51b Author: Ivaylo Dimitrov Date: Fri Jan 1 12:46:27 2016 +0100 ARM: 8495/1: ATAGS: move save_atags() to arch/arm/include/asm/setup.h So it can be used by code outside arch/arm/kernel/. Fix save_atags() declaration to match its definition while at it. Signed-off-by: Ivaylo Dimitrov Signed-off-by: Russell King arch/arm/include/asm/setup.h | 6 ++++++ arch/arm/kernel/atags.h | 6 ------ 2 files changed, 6 insertions(+), 6 deletions(-) commit 06312f44ad638c02e26c5f187c9ee8f94cbaa3a2 Merge: 527e931 81a0bc3 Author: Russell King Date: Tue Dec 22 12:53:32 2015 +0000 Merge tag 'arm32-efi-for-v4.5' of git://git.linaro.org/people/ard.biesheuvel/linux-arm into devel-stable This implements UEFI kernel support for 32-bit ARM, based on the existing arm64 support and existing generic early ioremap support. It is based on commit f7d924894265 ("arm64/efi: refactor EFI init and runtime code for reuse by 32-bit ARM"), which was pulled from the arm64 repo [1] as branch 'aarch64/efi' [1] git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git commit 51b2c4258f29d83120819a829a78345a3dac17c4 Author: Geliang Tang Date: Mon Dec 28 22:47:13 2015 +0800 ASoC: hdac_hdmi: use dev_to_hdac_dev and to_ehdac_device Use dev_to_hdac_dev() and to_ehdac_device() instead of open-coding. Signed-off-by: Geliang Tang Reviewed-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/codecs/hdac_hdmi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5008efc83bf85b647aa1cbc44718b1675bbb7444 Author: Ard Biesheuvel Date: Tue Dec 22 08:24:59 2015 +0100 ARM: 8452/3: PJ4: make coprocessor access sequences buildable in Thumb2 mode The PJ4 inline asm sequence to write to cp15 cannot be built in Thumb-2 mode, due to the way it performs arithmetic on the program counter, so it is built in ARM mode instead. However, building C files in ARM mode under CONFIG_THUMB2_KERNEL is problematic, since the instrumentation performed by subsystems like ftrace does not expect having to deal with interworking branches. Since the sequence in question is simply a poor man's ISB instruction, let's use a straight 'isb' instead when building in Thumb2 mode. Thumb2 implies V7, so 'isb' should always be supported in that case. Acked-by: Arnd Bergmann Acked-by: Nicolas Pitre Signed-off-by: Ard Biesheuvel Signed-off-by: Russell King arch/arm/kernel/Makefile | 1 - arch/arm/kernel/pj4-cp0.c | 4 ++++ 2 files changed, 4 insertions(+), 1 deletion(-) commit d1b98c23f7547cc37c8f230acbedb26f0d47e9e1 Author: Julia Lawall Date: Fri Jan 1 08:53:37 2016 +0100 quota: constify qtree_fmt_operations structures The qtree_fmt_operations structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Jan Kara fs/ocfs2/quota.h | 2 +- fs/ocfs2/quota_global.c | 2 +- fs/quota/quota_v2.c | 4 ++-- include/linux/dqblk_qtree.h | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) commit e9c478a93c113e0ee47f40b80962abe2e2feccc0 Author: Carlo Caione Date: Sun Nov 8 13:18:57 2015 +0100 ARM: dts: meson8b: Add watchdog node With this patch we add the watchdog node in the meson8b DTS file. Signed-off-by: Carlo Caione arch/arm/boot/dts/meson8b.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) commit ea22446a9d170bf7f32bd7f99036e17df918f054 Author: Carlo Caione Date: Sun Nov 8 13:18:56 2015 +0100 Documentation: watchdog: Add new bindings for meson8b We make the documentation not meson6 specific anymore and add the new binding for meson8b SoC. Signed-off-by: Carlo Caione Documentation/devicetree/bindings/watchdog/meson-wdt.txt | 13 +++++++++++++ Documentation/devicetree/bindings/watchdog/meson6-wdt.txt | 13 ------------- 2 files changed, 13 insertions(+), 13 deletions(-) commit c16d1fdb4ee4142351bdbd57222cdd5d5e25df94 Author: Edward Cragg Date: Fri Nov 27 09:45:28 2015 +0100 ARM: meson: Add status LED for Odroid-C1 Add the blue status LED to the Hardkernel Odroid C1 board DTS. Signed-off-by: Signed-off-by: Carlo Caione arch/arm/boot/dts/meson8b-odroidc1.dts | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 4f1b1519f7bec44ded3c2c4d46a2594c01446dc8 Author: Arnd Bergmann Date: Fri Jan 1 15:21:54 2016 +0100 udf: avoid uninitialized variable use A new warning has come up from a recent cleanup: fs/udf/inode.c: In function 'udf_setup_indirect_aext': fs/udf/inode.c:1927:28: warning: 'adsize' may be used uninitialized in this function [-Wmaybe-uninitialized] If the alloc_type is neither ICBTAG_FLAG_AD_SHORT nor ICBTAG_FLAG_AD_LONG, the value of adsize is undefined. Currently, callers of these functions make sure alloc_type is one of the two valid ones but for future proofing make sure we handle the case of invalid alloc type as well. This changes the code to return -EIOin that case. Signed-off-by: Arnd Bergmann Fixes: fcea62babc81 ("udf: Factor out code for creating indirect extent") Signed-off-by: Jan Kara fs/udf/inode.c | 4 ++++ 1 file changed, 4 insertions(+) commit d5ece1cb074b2c7082c9a2948ac598dd0ad40657 Author: James Hogan Date: Sat Dec 26 22:47:52 2015 +0000 Fix ld-version.sh to handle large 3rd version part The ld-version.sh script doesn't handle versions with large (>= 10) 3rd version components, because the 2nd component is only multiplied by 10 times that of the 3rd component. For example the following version string: GNU ld (Codescape GNU Tools 2015.06-05 for MIPS MTI Linux) 2.24.90 gives a bogus version number: 20000000 + 2400000 + 900000 = 23300000 Breakage, confusion and mole-whacking ensues. Increase the multipliers of the first two version components by a factor of 10 to give space for a 3rd components of up to 99, and update the sole user of ld-ifversion (MIPS VDSO) accordingly. Signed-off-by: James Hogan Acked-by: Guenter Roeck Reviewed-by: Andi Kleen Cc: Andi Kleen Cc: Michal Marek Cc: Guenter Roeck Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11931/ Signed-off-by: Ralf Baechle arch/mips/vdso/Makefile | 2 +- scripts/ld-version.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 522f17e1214cf112e62cff56150964d8b68b94b2 Author: Vegard Nossum Date: Sat Jan 2 14:05:49 2016 +0100 leds: add HAS_IOMEM dependency to LEDS_BCM6328/LEDS_BCM6358 Ran into this on UML: drivers/built-in.o: In function `bcm6328_leds_probe': drivers/leds/leds-bcm6328.c:340: undefined reference to `devm_ioremap_resource' drivers/built-in.o: In function `bcm6358_leds_probe': drivers/leds/leds-bcm6358.c:173: undefined reference to `devm_ioremap_resource' collect2: error: ld returned 1 exit status devm_ioremap_resource() is defined only when HAS_IOMEM is selected. Signed-off-by: Vegard Nossum Cc: Richard Purdie Cc: linux-leds@vger.kernel.org Signed-off-by: Jacek Anaszewski drivers/leds/Kconfig | 2 ++ 1 file changed, 2 insertions(+) commit 9534cc31dda2bb129480ce2db92bf7bc1ef470ed Author: Heiner Kallweit Date: Sat Jan 2 01:36:41 2016 +0100 leds: core: add managed version of led_trigger_register Complementing devm_led_classdev_register add a managed version of led_trigger_register. I omit a managed version of led_classdev_unregister as the equivalent devm_led_classdev_unregister isn't used in the kernel as of today. Signed-off-by: Heiner Kallweit Signed-off-by: Jacek Anaszewski drivers/leds/led-triggers.c | 28 ++++++++++++++++++++++++++++ include/linux/leds.h | 2 ++ 2 files changed, 30 insertions(+) commit 1259efaab84fbc0a307477e0d2734793aa556814 Author: Álvaro Fernández Rojas Date: Wed Dec 16 21:13:49 2015 +0100 leds: bcm6358: remove unneeded busy status check The busy status checking isn't needed while reading initial LED status. Signed-off-by: Álvaro Fernández Rojas Signed-off-by: Jacek Anaszewski drivers/leds/leds-bcm6358.c | 3 --- 1 file changed, 3 deletions(-) commit 1b85a5a5ef34a64c5c5edece1704bde62208f002 Author: Álvaro Fernández Rojas Date: Wed Dec 16 21:13:48 2015 +0100 leds: bcm6328: improve blink support BCM6328 controller has a margin of 20ms per blink step, which means that we can only set it to 20, 40, 60 ... 1260 ms (0x3f * 20ms). However, when checking if delay_on == delay_off, we were not considering the case when the user had set delay_on=20 and delay_off=21, since this will cause the driver to fallback to software blinking. This update fixes this issue and improves blink steps by rounding them in a more sensible way. Now 30-49ms is rounded to 40 ms, and previous behaviour implied 40-59ms being rounded to 40 ms. Signed-off-by: Álvaro Fernández Rojas Signed-off-by: Jacek Anaszewski drivers/leds/leds-bcm6328.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) commit 6e636a0a28ffb0a504ccda5146411b219a74cc7f Author: Álvaro Fernández Rojas Date: Tue Dec 15 21:03:52 2015 +0100 leds: bcm6358: merge bcm6358_led_mode and bcm6358_led_set bcm6358_led_mode is now only called by bcm6358_led_set, so merge both in one single function. Signed-off-by: Álvaro Fernández Rojas Signed-off-by: Jacek Anaszewski drivers/leds/leds-bcm6358.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) commit 143b77ce03b44779987109486212838df2f03cae Author: Álvaro Fernández Rojas Date: Tue Dec 15 21:03:51 2015 +0100 leds: bcm6328: simplify duplicated unlock in bcm6328_blink_set Instead of duplicating the unlock we can store the return value and use a single unlock before returning that value, which simplifies the code. Signed-off-by: Álvaro Fernández Rojas Signed-off-by: Jacek Anaszewski drivers/leds/leds-bcm6328.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 4ba113b6d4a4cec461e373aca44ce6bb2cb02476 Author: Álvaro Fernández Rojas Date: Tue Dec 15 21:03:50 2015 +0100 leds: bcm6358: add little endian support This adds little endian support while keeping big endian support. Signed-off-by: Álvaro Fernández Rojas Signed-off-by: Jacek Anaszewski drivers/leds/leds-bcm6358.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit a06cd4b76277bd319d65646481cb61aa3fd89b3b Author: Álvaro Fernández Rojas Date: Tue Dec 15 21:03:49 2015 +0100 leds: bcm6328: add little endian support This adds little endian support while keeping big endian support. Signed-off-by: Álvaro Fernández Rojas Signed-off-by: Jacek Anaszewski drivers/leds/leds-bcm6328.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 93a708dab8175c57977d5eec757dd559128f2353 Author: Álvaro Fernández Rojas Date: Tue Dec 15 21:03:48 2015 +0100 leds: bcm6358: remove unneded lock when checking initial LED status This lock isn't really needed, since we're only reading the register and changes made to other LEDs aren't relevant. Signed-off-by: Álvaro Fernández Rojas Signed-off-by: Jacek Anaszewski drivers/leds/leds-bcm6358.c | 3 --- 1 file changed, 3 deletions(-) commit 42273caa18600faede09be223310aabb8e54182e Author: Álvaro Fernández Rojas Date: Tue Dec 15 21:03:47 2015 +0100 leds: bcm6358: Use bcm6358_led_set() in order to get rid of the lock Replaces bcm6358_led_mode with bcm6358_led_set so we don't need to handle the lock. Signed-off-by: Álvaro Fernández Rojas Signed-off-by: Jacek Anaszewski drivers/leds/leds-bcm6358.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 0171dc6abbfab4a168f65498a73d18311cb606b5 Author: Álvaro Fernández Rojas Date: Tue Dec 15 21:03:46 2015 +0100 leds: bcm6328: remove unneded lock when checking initial LED This lock isn't really needed, since we're only reading the register and changes made to other LEDs aren't relevant. Signed-off-by: Álvaro Fernández Rojas Signed-off-by: Jacek Anaszewski drivers/leds/leds-bcm6328.c | 3 --- 1 file changed, 3 deletions(-) commit 41251e2469f081da0d7844c8c61400cf030b58ed Author: Álvaro Fernández Rojas Date: Tue Dec 15 21:03:45 2015 +0100 leds: bcm6328: code cleaning - Remove double whitespace - Add missing brackets - Add spinlock info Signed-off-by: Álvaro Fernández Rojas Signed-off-by: Jacek Anaszewski drivers/leds/leds-bcm6328.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit f7d98a65d031a0e08b102f4e5546bd5a45aa55dd Author: Paul Gortmaker Date: Sun Dec 13 16:45:51 2015 -0500 leds: syscon: Make the driver explicitly non-modular The Kconfig currently controlling compilation of this code is: drivers/leds/Kconfig:config LEDS_SYSCON drivers/leds/Kconfig: bool "LED support for LEDs on system controllers" ...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. We explicitly disallow a driver unbind, since that doesn't have a sensible use case anyway, and it allows us to drop the ".remove" code for non-modular drivers. Since module_platform_driver() uses the same init level priority as builtin_platform_driver() the init ordering remains unchanged with this commit. Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code. Cc: Richard Purdie Cc: linux-leds@vger.kernel.org Signed-off-by: Paul Gortmaker Signed-off-by: Jacek Anaszewski drivers/leds/leds-syscon.c | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) commit 067a8f3cad97f7b7d21ea05cbd2289aaa0f259df Author: Paul Gortmaker Date: Sun Dec 13 16:45:50 2015 -0500 leds: ledtrig-ide-disk: Make the driver explicitly non-modular The Kconfig for this driver is currently: config LEDS_TRIGGER_IDE_DISK bool "LED IDE Disk Trigger" ...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 also delete the MODULE_LICENSE tag etc. since all that information is already contained at the top of the file in the comments. Cc: Bryan Wu Cc: Richard Purdie Cc: linux-leds@vger.kernel.org Signed-off-by: Paul Gortmaker Signed-off-by: Jacek Anaszewski drivers/leds/trigger/ledtrig-ide-disk.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) commit 227a0ca17eadf339f489683ac2cf4eb33b2e5319 Author: Paul Gortmaker Date: Sun Dec 13 16:45:49 2015 -0500 leds: ledtrig-cpu: Make the driver explicitly non-modular The Kconfig for this driver is currently: config LEDS_TRIGGER_CPU bool "LED CPU Trigger" ...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 also delete the MODULE_LICENSE tag etc. since all that information is already contained at the top of the file in the comments. Cc: Bryan Wu Cc: Richard Purdie Cc: linux-leds@vger.kernel.org Signed-off-by: Paul Gortmaker Acked-by: Linus Walleij Signed-off-by: Jacek Anaszewski drivers/leds/trigger/ledtrig-cpu.c | 26 +------------------------- 1 file changed, 1 insertion(+), 25 deletions(-) commit 6e25e641e99beb5c3f92defae0a4288beee972f1 Author: Thierry Reding Date: Wed Dec 2 17:27:01 2015 +0100 leds: sunfire: Use platform_register/unregister_drivers() These new helpers simplify implementing multi-driver modules and properly handle failure to register one driver by unregistering all previously registered drivers. Signed-off-by: Thierry Reding Signed-off-by: Jacek Anaszewski drivers/leds/leds-sunfire.c | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) commit 8891161567eacfcf703b683798e17b1236096b2c Author: Jacek Anaszewski Date: Wed Nov 25 09:34:10 2015 +0100 leds: max77693: Add missing of_node_put Each break out of the for_each_available_child_of_node loop requires of_node_put(). This patch adds missing of_node_put() when loop breaks on conflicting values of led-sources DT property. Signed-off-by: Jacek Anaszewski Cc: Rob Herring Cc: Sakari Ailus drivers/leds/leds-max77693.c | 1 + 1 file changed, 1 insertion(+) commit 0c24199ca9dd0ec1eaddc49ec83ca97bc1f1c233 Author: Jacek Anaszewski Date: Wed Nov 25 09:22:19 2015 +0100 leds: aat1290: Add missing of_node_put The refcount of device_node increases after of_get_next_available_child() is called. Make sure it is decremented also in case of DT parsing error. Signed-off-by: Jacek Anaszewski Cc: Rob Herring Cc: Sakari Ailus drivers/leds/leds-aat1290.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit f5db6b8301bf11d8f5422ba8e6cff43add8bd861 Author: Jacek Anaszewski Date: Fri Nov 20 16:38:50 2015 +0100 leds: powernv: Implement brightness_set_blocking op Since brightness setting can sleep for this driver, implement brightness_set_blocking op, instead of brightness_set. It makes this driver compatible with LED triggers. Signed-off-by: Jacek Anaszewski Cc: Vasant Hegde drivers/leds/leds-powernv.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit ba1c8179c3b8e742eee65bc50bdd1396ac763e0e Author: Jacek Anaszewski Date: Fri Nov 20 16:47:51 2015 +0100 leds: ipaq-micro: Implement brightness_set_blocking op Since brightness setting can sleep for this driver, implement brightness_set_blocking op, instead of brightness_set. It makes this driver compatible with LED triggers. Signed-off-by: Jacek Anaszewski Reviewed-by: Linus Walleij drivers/leds/leds-ipaq-micro.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 5a7c536f26186c313e521502f942d5cdaf05b8ee Author: Saurabh Sengar Date: Mon Nov 23 14:58:16 2015 +0530 leds: powernv: removing NULL check No need to explicitly check for pointer to be null, of_prop_next_string anyways returns NULL, if passed pointer is NULL and hence loop will continue. Signed-off-by: Saurabh Sengar Acked-by: Vasant Hegde Signed-off-by: Jacek Anaszewski drivers/leds/leds-powernv.c | 2 -- 1 file changed, 2 deletions(-) commit b964c5ba6d52475d70e3550fbb3780ebabedf7db Author: Simon Arlott Date: Sun Nov 15 13:34:37 2015 +0000 leds: bcm6328: Swap LED ON and OFF definitions The values of BCM6328_LED_MODE_ON and BCM6328_LED_MODE_OFF were named for active low LEDs. These should be swapped so that they are named for the default case of active high LEDs. Signed-off-by: Simon Arlott Signed-off-by: Jacek Anaszewski drivers/leds/leds-bcm6328.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 9d3c0663df338357625e75e7bead3322f083778b Author: Simon Arlott Date: Mon Nov 16 20:24:59 2015 +0000 leds: bcm6328: Reuse bcm6328_led_set() instead of copying its functionality When ensuring a consistent initial LED state in bcm6328_led (as they may be blinking instead of on/off), the LED register is set using an inverted copy of bcm6328_led_set(). To avoid further errors relating to active low handling, call this function directly instead. As bcm6328_led_set() acquires the same spinlock again when updating the register, it is called after unlocking. Signed-off-by: Simon Arlott Signed-off-by: Jacek Anaszewski drivers/leds/leds-bcm6328.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit c29e650b3af272bedddc6c032148935e6f200cb7 Author: Jacek Anaszewski Date: Fri Nov 20 11:39:41 2015 +0100 leds: ns2: Remove work queue Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: Jacek Anaszewski Tested-by: Simon Guinot drivers/leds/leds-ns2.c | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) commit 49651c6c66c1e4c16708808233bb89e3bfebfed2 Author: Uwe Kleine-König Date: Mon Nov 25 21:43:45 2013 +0100 leds: pwm: fix driver description and make license match the header Signed-off-by: Uwe Kleine-König Signed-off-by: Jacek Anaszewski drivers/leds/leds-pwm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d1aa577f5e191d77d3ad62da93729b5af9532bb4 Author: Milo Kim Date: Fri Nov 20 17:03:00 2015 +0900 leds: turn off the LED and wait for completion on unregistering LED class device Workqueue, 'set_brightness_work' is used for scheduling brightness control. This workqueue is canceled when the LED class device is unregistered. Currently, LED subsystem handles like below. cancel_work_sync(&led_cdev->set_brightness_work) led_set_brightness(led_cdev, LED_OFF) However, this could be a problem. Workqueue is going to be canceled but LED device needs to be off. The worst case is null pointer access due to scheduling a workqueue. LED module is loaded. LED driver private data is allocated by using devm_zalloc(). LED module is unloaded. led_classdev_unregister() is called. cancel_work_sync() led_set_brightness(led_cdev, LED_OFF) schedule_work() if LED driver uses brightness_set_blocking() In the meantime, driver private data will be freed. ..scheduling.. brightness_set_blocking() callback is invoked. For the brightness control, LED driver tries to access private data but resource is removed! To avoid this problem, LED subsystem should turn off the brightness first and wait for completion. led_set_brightness(led_cdev, LED_OFF) flush_work(&led_cdev->set_brightness_work) It guarantees that LED driver turns off the brightness prior to resource management. Cc: linux-leds@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Milo Kim Signed-off-by: Jacek Anaszewski drivers/leds/led-class.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit abc196359bf91a53392d8fac272a4ea8a9ecc0c4 Author: Jacek Anaszewski Date: Wed Nov 18 16:32:37 2015 +0100 leds: flash: Remove checking for state < 1 in flash_strobe_store() Strobe state variable is declared as unsigned long, remove the check for values less than zero then. Signed-off-by: Jacek Anaszewski Reported-by: David Binderman drivers/leds/led-class-flash.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 77e7915b15bba2bf6edec6f258fb4158fef8e416 Author: Ingi Kim Date: Mon Nov 16 15:19:55 2015 +0100 leds: ktd2692: Add missing of_node_put The refcount of device_node increases after of_node_get() is called. So, a break out of the loop requires of_node_put(). This patch adds missing of_node_put() when loop breaks. Signed-off-by: Ingi Kim Acked-by: Rob Herring Signed-off-by: Jacek Anaszewski drivers/leds/leds-ktd2692.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit f16703360da7731a057df2ffa902306819c22398 Author: Markus Hofstaetter Date: Wed Nov 11 12:40:29 2015 +0100 leds: call led_pwm_set() in leds-pwm to enforce default LED_OFF Some PWMs are disabled by default or the default pin setting does not match the LED_OFF state (e.g., active-low leds). Hence, the driver may end up reporting 0 brightness, but the leds are actually on using full brightness, because it never enforces its default configuration. So enforce it by calling led_pwm_set() after successfully registering the device. Tested on a Phytec phyFLEX i.MX6Q board based on kernel v3.19.5. Signed-off-by: Markus Hofstaetter Tested-by: Markus Hofstaetter Signed-off-by: Jacek Anaszewski drivers/leds/leds-pwm.c | 1 + 1 file changed, 1 insertion(+) commit fb65ee94ee3ae8fde4922262f73dddea2172e3ef Author: Uwe Kleine-König Date: Thu Nov 12 10:20:39 2015 +0100 leds: triggers: oneshot: fix module license specification The header of this file fixes the license to GPL 2 only without the option to use later version. So use the string "GPL v2" that is to be used in this case. Signed-off-by: Uwe Kleine-König Acked-by: Fabio Baltieri Signed-off-by: Jacek Anaszewski drivers/leds/trigger/ledtrig-oneshot.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 22f933add429523923360e3d0c171c7df1bd4981 Author: Rob Herring Date: Tue Nov 10 17:10:17 2015 -0600 leds: ledtrig-transient: fix duration to be msec instead of jiffies The transient trigger duration is documented to be in msec units, but is actually in jiffies units. Other time based triggers are in msec units as well. Fix the timer setup to convert from msec. This could break an existing userspace that worked around this problem, but exposing jiffies to userspace is just wrong and would break anyway if HZ is changed. Signed-off-by: Rob Herring Cc: Shuah Khan Cc: Richard Purdie Cc: linux-leds@vger.kernel.org Signed-off-by: Jacek Anaszewski drivers/leds/trigger/ledtrig-transient.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit df8ff5d2e0f733aa6e866a6ba11a4c3376bb47f7 Author: Jacek Anaszewski Date: Thu Aug 20 15:53:10 2015 +0200 leds: lm355x: Remove work queue Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: Jacek Anaszewski Cc: Daniel Jeong Cc: G.Shark Jeong drivers/leds/leds-lm355x.c | 85 ++++++++++++++-------------------------------- 1 file changed, 26 insertions(+), 59 deletions(-) commit 9aa0762579df4f8f6259b7cd23a8540d00a970bf Author: Jacek Anaszewski Date: Thu Aug 20 15:52:51 2015 +0200 leds: pwm: remove work queue Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: Jacek Anaszewski Cc: Raphael Assenat drivers/leds/leds-pwm.c | 34 +++++++++++++--------------------- 1 file changed, 13 insertions(+), 21 deletions(-) commit d5b8a09000da3dcd79649293121afe4439153c7a Author: Jacek Anaszewski Date: Thu Aug 20 15:52:32 2015 +0200 leds: gpio: Remove work queue Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: Jacek Anaszewski Cc: Raphael Assenat drivers/leds/leds-gpio.c | 62 +++++++++++++++++------------------------------- 1 file changed, 22 insertions(+), 40 deletions(-) commit 0dd756f7677a519a1d52a94e74d179e0af39e2ec Author: Andrew Lunn Date: Thu Aug 20 12:59:45 2015 +0200 leds: wm8350: Remove work queue Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: Andrew Lunn Signed-off-by: Jacek Anaszewski Acked-by: Antonio Ospite Reviewed-by: Mark Brown drivers/leds/leds-wm8350.c | 64 ++++++++++++++++------------------------- include/linux/mfd/wm8350/pmic.h | 1 - 2 files changed, 25 insertions(+), 40 deletions(-) commit 77e85036389929356096f3a5c90bde782fe78f17 Author: Andrew Lunn Date: Thu Aug 20 12:55:39 2015 +0200 leds: regulator: Remove work queue Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: Andrew Lunn Acked-by: Antonio Ospite Signed-off-by: Jacek Anaszewski drivers/leds/leds-regulator.c | 46 +++++++++++-------------------------------- 1 file changed, 12 insertions(+), 34 deletions(-) commit 4330f2f26ee464f593dbd1a826016c369c69b74a Author: Andrew Lunn Date: Thu Aug 20 12:52:08 2015 +0200 leds: mc13783: Remove work queue Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: Andrew Lunn Signed-off-by: Jacek Anaszewski drivers/leds/leds-mc13783.c | 35 +++++++++-------------------------- 1 file changed, 9 insertions(+), 26 deletions(-) commit d1c5c5c2e30a20946ef6f6f757b21263b0b6c7e3 Author: Andrew Lunn Date: Tue Aug 11 09:58:47 2015 +0200 leds: max8997: Remove unneeded workqueue include Work queues are not used in this driver, so remove the include. Signed-off-by: Andrew Lunn drivers/leds/leds-max8997.c | 1 - 1 file changed, 1 deletion(-) commit a0011f1be78aec408803728359a7a181baa167bb Author: Andrew Lunn Date: Thu Aug 20 12:50:05 2015 +0200 leds: lt3593: Remove work queue Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: Andrew Lunn Cc: Daniel Mack Signed-off-by: Jacek Anaszewski drivers/leds/leds-lt3593.c | 33 ++++++++++----------------------- 1 file changed, 10 insertions(+), 23 deletions(-) commit 8ec108c03e3820d0fe0956204feea588ce2d3dbc Author: Andrew Lunn Date: Thu Aug 20 12:47:25 2015 +0200 leds: dac124d085: Remove work queue Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: Andrew Lunn Cc: Guennadi Liakhovetski Signed-off-by: Jacek Anaszewski drivers/leds/leds-dac124s085.c | 38 ++++++++++---------------------------- 1 file changed, 10 insertions(+), 28 deletions(-) commit 0a1f01d38504dcff0c66a3542e5bf60c1c4dad1f Author: Andrew Lunn Date: Thu Aug 20 12:45:23 2015 +0200 leds: da9052: Remove work queue Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: Andrew Lunn Signed-off-by: Jacek Anaszewski drivers/leds/leds-da9052.c | 39 ++++++++++++--------------------------- 1 file changed, 12 insertions(+), 27 deletions(-) commit 803bb384ba619f4e75892787a1d20d6b629c0c73 Author: Andrew Lunn Date: Thu Aug 20 12:43:49 2015 +0200 leds: da903x: Remove work queue Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: Andrew Lunn Signed-off-by: Jacek Anaszewski drivers/leds/leds-da903x.c | 46 ++++++++++++++++++---------------------------- 1 file changed, 18 insertions(+), 28 deletions(-) commit f633a512e8319a1bd428740deccf53b4dc5974e7 Author: Andrew Lunn Date: Thu Aug 20 12:40:45 2015 +0200 leds: wm831x: Remove work queue Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: Andrew Lunn Reviewed-by: Mark Brown Signed-off-by: Jacek Anaszewski drivers/leds/leds-wm831x-status.c | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) commit 5029a2e336e70035ed1d6f491f3348164cc36c3e Author: Andrew Lunn Date: Thu Aug 20 12:38:44 2015 +0200 leds: pca963x: Remove work queue Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: Andrew Lunn Signed-off-by: Jacek Anaszewski Acked-by: Dan Murphy Cc: Ricardo Ribalda drivers/leds/leds-pca963x.c | 80 +++++++++++++-------------------------------- 1 file changed, 23 insertions(+), 57 deletions(-) commit c3482b825022dbeefabff4dd917cb68069e6fd90 Author: Andrew Lunn Date: Thu Aug 20 12:32:35 2015 +0200 leds: pca955x: Remove work queue Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: Andrew Lunn Cc: Nate Case Signed-off-by: Jacek Anaszewski drivers/leds/leds-pca955x.c | 39 +++++++++------------------------------ 1 file changed, 9 insertions(+), 30 deletions(-) commit 7c4b10a2ebf81ccf6020cde6fdb554e5622195ff Author: Andrew Lunn Date: Thu Aug 20 12:28:26 2015 +0200 leds: lp8860: Remove work queue Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: Andrew Lunn Acked-by: Dan Murphy Signed-off-by: Jacek Anaszewski drivers/leds/leds-lp8860.c | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-) commit 64998371e008c718094a0fcb1e073570111a658f Author: Andrew Lunn Date: Thu Aug 20 12:27:05 2015 +0200 leds: lp8788: Remove work queue Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: Andrew Lunn Cc: Milo Kim Signed-off-by: Jacek Anaszewski drivers/leds/leds-lp8788.c | 48 ++++++++++++++++++++-------------------------- 1 file changed, 21 insertions(+), 27 deletions(-) commit 95b2af637e283e3d549c8a6af9f182b0bd972a2e Author: Andrew Lunn Date: Thu Aug 20 12:22:57 2015 +0200 leds: lp55xx: Remove work queue Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: Andrew Lunn Signed-off-by: Jacek Anaszewski Cc: Milo Kim drivers/leds/leds-lp5521.c | 11 ++++++----- drivers/leds/leds-lp5523.c | 10 +++++----- drivers/leds/leds-lp5562.c | 11 ++++++----- drivers/leds/leds-lp55xx-common.c | 12 +++++------- drivers/leds/leds-lp55xx-common.h | 6 ++---- drivers/leds/leds-lp8501.c | 11 ++++++----- 6 files changed, 30 insertions(+), 31 deletions(-) commit 525d6a65a2abe279889b019e2663b8a11bc4f90b Author: Andrew Lunn Date: Thu Aug 20 12:09:57 2015 +0200 leds: lp3944: Remove work queue Now the core implements the work queue, remove it from the driver, and switch to using brightness_set_blocking op. Signed-off-by: Andrew Lunn Acked-by: Antonio Ospite Signed-off-by: Jacek Anaszewski drivers/leds/leds-lp3944.c | 32 ++++++++------------------------ 1 file changed, 8 insertions(+), 24 deletions(-) commit 00a88a19d1d9b80e11ffe1a4f11dcabb93a75e45 Author: Andrew Lunn Date: Thu Aug 20 12:08:10 2015 +0200 leds: pca9532: Remove work queue for LEDs. Now the core implements the work queue, remove it from the driver, and switch to using brightness_set_blocking op. Signed-off-by: Andrew Lunn Signed-off-by: Jacek Anaszewski drivers/leds/leds-pca9532.c | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) commit bb58cc8141638d4dc9518f16a6fbed580c8729b8 Author: Andrew Lunn Date: Thu Aug 20 12:05:54 2015 +0200 leds: lm3642: Remove work queue Now the core implements the work queue, remove it from the driver, and switch to using brightness_set_blocking op. Signed-off-by: Andrew Lunn Cc: Daniel Jeong Cc: G.Shark Jeong Signed-off-by: Jacek Anaszewski drivers/leds/leds-lm3642.c | 73 ++++++++++++++-------------------------------- 1 file changed, 22 insertions(+), 51 deletions(-) commit a478851c1fedb55d3f1c782b214ed15728054bf1 Author: Andrew Lunn Date: Thu Aug 20 12:02:17 2015 +0200 leds: lm3533: Remove work queue Now the core implements the work queue, remove it from the driver, and switch to using brightness_set_blocking op. Signed-off-by: Andrew Lunn Signed-off-by: Jacek Anaszewski Cc: Johan Hovold drivers/leds/leds-lm3533.c | 30 ++++++------------------------ 1 file changed, 6 insertions(+), 24 deletions(-) commit 7e1761b0ade8a0d6ccda87b176ca4d562db546f9 Author: Andrew Lunn Date: Thu Aug 20 11:59:26 2015 +0200 leds: blinkm: Remove work queue Now the core implements the work queue, remove it from the driver, and switch to using brightness_set_blocking op. Signed-off-by: Andrew Lunn Cc: Jan-Simon Moeller Signed-off-by: Jacek Anaszewski drivers/leds/leds-blinkm.c | 87 +++++++++------------------------------------- 1 file changed, 17 insertions(+), 70 deletions(-) commit cd042f0106c132b5b9a93fd4eeff75dd5a34ff31 Author: Andrew Lunn Date: Thu Aug 20 11:57:07 2015 +0200 leds: bd2802: Remove work queue Now the core implements the work queue, remove it from the driver, and switch to using brightness_set_blocking op. Signed-off-by: Andrew Lunn Cc: Kim Kyuwon Signed-off-by: Jacek Anaszewski drivers/leds/leds-bd2802.c | 39 ++++++++++++++------------------------- 1 file changed, 14 insertions(+), 25 deletions(-) commit 64d44e5aed389b2ddfebaa4bdd1aa8025b552e7c Author: Andrew Lunn Date: Thu Aug 20 15:54:57 2015 +0200 leds: adp5520: Remove work queue Now the core implements the work queue, remove it from the driver, and switch to using brightness_set_blocking op. Signed-off-by: Andrew Lunn Cc: Michael Hennerich Signed-off-by: Jacek Anaszewski drivers/leds/leds-adp5520.c | 26 +++++--------------------- 1 file changed, 5 insertions(+), 21 deletions(-) commit 8824fefb59a3882963241e2e39d704af33708820 Author: Andrew Lunn Date: Thu Aug 20 11:50:34 2015 +0200 leds: 88pm860x: Remove work queue Now the core implements the work queue, remove it from the driver, and switch to using brightness_set_blocking op. Signed-off-by: Andrew Lunn Signed-off-by: Jacek Anaszewski drivers/leds/leds-88pm860x.c | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) commit d890389f89bcdd5c45023721a48f8da2da563ea3 Author: Andrew Lunn Date: Thu Aug 20 11:41:01 2015 +0200 leds: tlc591xx: Remove work queue Now the core implements the work queue, remove it from the driver, and switch to using brightness_set_blocking op. Signed-off-by: Andrew Lunn Signed-off-by: Jacek Anaszewski drivers/leds/leds-tlc591xx.c | 31 +++++++------------------------ 1 file changed, 7 insertions(+), 24 deletions(-) commit fa1706c42ec1b60c804a1214afc771bab0395aa3 Author: Jacek Anaszewski Date: Wed Oct 7 11:10:48 2015 +0200 media: flash: use led_set_brightness_sync for torch brightness LED subsystem shifted responsibility for choosing between SYNC or ASYNC way of setting brightness from drivers to the caller. Adapt the wrapper to those changes. Signed-off-by: Jacek Anaszewski Cc: linux-media@vger.kernel.org Acked-by: Sakari Ailus Acked-by: Pavel Machek Acked-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-flash-led-class.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 9d79a05e94d932774c5b143201a80963a4ddfbf8 Author: Jacek Anaszewski Date: Wed Oct 7 11:10:47 2015 +0200 leds: ktd2692: Remove work queue Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: Jacek Anaszewski Cc: Ingi Kim Acked-by: Sakari Ailus Acked-by: Pavel Machek drivers/leds/leds-ktd2692.c | 41 ++++++----------------------------------- 1 file changed, 6 insertions(+), 35 deletions(-) commit 269e92da8b0710ff58351c6d84eca2f77b8da3d4 Author: Jacek Anaszewski Date: Wed Oct 7 11:10:46 2015 +0200 leds: aat1290: Remove work queue Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: Jacek Anaszewski Acked-by: Sakari Ailus Acked-by: Pavel Machek drivers/leds/leds-aat1290.c | 50 ++++++++++++--------------------------------- 1 file changed, 13 insertions(+), 37 deletions(-) commit 7edc00d09da781d3556342a0aa6a5bc2eb386fc2 Author: Jacek Anaszewski Date: Wed Oct 7 11:10:45 2015 +0200 leds: max77693: Remove work queue Now the core implements the work queue, remove it from the drivers, and switch to using brightness_set_blocking op. Signed-off-by: Jacek Anaszewski Acked-by: Sakari Ailus Acked-by: Pavel Machek drivers/leds/leds-max77693.c | 57 +++++++------------------------------------- 1 file changed, 9 insertions(+), 48 deletions(-) commit 648da8ff4849c75061df4ee3d4ffb0ede286d729 Author: Jacek Anaszewski Date: Wed Oct 7 11:10:44 2015 +0200 Documentation: leds: Add description of brightness setting API This patch adds description of the LED subsystem API for setting an LED brightness. Signed-off-by: Jacek Anaszewski Acked-by: Sakari Ailus Documentation/leds/leds-class.txt | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 13ae79bbe4c214047f51623304d83b46eb02897d Author: Jacek Anaszewski Date: Wed Oct 7 11:10:43 2015 +0200 leds: core: Drivers shouldn't enforce SYNC/ASYNC brightness setting This patch removes SET_BRIGHTNESS_ASYNC and SET_BRIGHTNESS_SYNC flags. led_set_brightness() now calls led_set_brightness_nosleep() instead of choosing between sync and async op basing on the flags defined by the driver. From now on, if a user wants to make sure that brightness will be set synchronously, they have to use led_set_brightness_sync() API. It is now being made publicly available since it has become apparent that it is a caller who should decide whether brightness is to be set in a synchronous or an asynchronous way. Signed-off-by: Jacek Anaszewski Acked-by: Sakari Ailus drivers/leds/led-class-flash.c | 4 ---- drivers/leds/led-class.c | 2 -- drivers/leds/led-core.c | 32 +++++++++++++++++++------------- drivers/leds/leds.h | 13 ------------- include/linux/leds.h | 19 ++++++++++++++++--- 5 files changed, 35 insertions(+), 35 deletions(-) commit 1afcadfcd184c3b52e38bae15c247a5fa4a0e054 Author: Jacek Anaszewski Date: Mon Oct 19 09:04:01 2015 +0200 leds: core: Use set_brightness_work for the blocking op This patch makes LED core capable of setting brightness for drivers that implement brightness_set_blocking op. It removes from LED class drivers responsibility for using work queues on their own. In order to achieve this set_brightness_delayed callback is being modified to directly call one of available ops for brightness setting. led_set_brightness_async() function didn't set brightness in an asynchronous way in all cases. It was mistakenly assuming that all LED subsystem drivers used work queue in their brightness_set op, whereas only half of them did that. Since it has no users now, it is being removed. Signed-off-by: Jacek Anaszewski Acked-by: Sakari Ailus drivers/leds/led-core.c | 12 +++++++++++- drivers/leds/leds.h | 10 ---------- include/linux/leds.h | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) commit 81fe8e5b73e3f4de578ac7f53c1d956d4f58b8d4 Author: Jacek Anaszewski Date: Wed Oct 7 11:10:41 2015 +0200 leds: core: Add led_set_brightness_nosleep{nopm} functions This patch adds led_set_brightness_nosleep() and led_set_brightness_nopm() functions, that guarantee setting LED brightness in a non-blocking way. The latter is used from pm_ops context and doesn't modify the brightness cached in the struct led_classdev. Its execution always ends up with a call to brightness setting op - either directly or through a set_brightness_work, regardless of LED_SUSPENDED flag state. The patch also replaces led_set_brightness_async() with led_set_brightness_nosleep() in all places where the most vital was setting brightness in a non sleeping way but not necessarily asynchronously, which is not needed for non-blocking drivers. Signed-off-by: Jacek Anaszewski Acked-by: Sakari Ailus drivers/leds/led-class.c | 4 ++-- drivers/leds/led-core.c | 38 +++++++++++++++++++++++++++---- drivers/leds/leds.h | 4 ++++ drivers/leds/trigger/ledtrig-backlight.c | 8 +++---- drivers/leds/trigger/ledtrig-default-on.c | 2 +- drivers/leds/trigger/ledtrig-gpio.c | 6 ++--- drivers/leds/trigger/ledtrig-heartbeat.c | 4 ++-- drivers/leds/trigger/ledtrig-oneshot.c | 4 ++-- drivers/leds/trigger/ledtrig-transient.c | 8 +++---- 9 files changed, 55 insertions(+), 23 deletions(-) commit 437a4240f26461610cc0d90950b1c88348d9babe Author: Jacek Anaszewski Date: Wed Oct 7 11:10:40 2015 +0200 leds: Rename brightness_set_sync op to brightness_set_blocking The initial purpose of brightness_set_sync op, introduced along with the LED flash class extension, was to add a means for setting torch LED brightness as soon as possible, which couldn't have been guaranteed by brightness_set op. This patch renames the op to brightness_set_blocking, which describes its purpose in a more generic way. It is beneficial in view of the prospective changes in the LED core, aiming at removing the need for using work queues in LED class drivers that can sleep or use delays while setting brightness. Signed-off-by: Jacek Anaszewski Acked-by: Andrew Lunn Acked-by: Pavel Machek Acked-by: Sakari Ailus drivers/leds/led-class-flash.c | 2 +- drivers/leds/leds-aat1290.c | 2 +- drivers/leds/leds-ktd2692.c | 2 +- drivers/leds/leds-max77693.c | 2 +- drivers/leds/leds.h | 2 +- include/linux/leds.h | 4 ++-- 6 files changed, 7 insertions(+), 7 deletions(-) commit f1e80c07416adacc9ba1d9c5a4635c27b571f0df Author: Jacek Anaszewski Date: Wed Oct 7 11:10:39 2015 +0200 leds: core: Add two new LED_BLINK_ flags This patch adds LED_BLINK_BRIGHTNESS_CHANGE flag to indicate that blink brightness has changed, and LED_BLINK_DISABLE flag to indicate that blinking deactivation has been requested. In order to use the flags led_timer_function and set_brightness_delayed callbacks as well as led_set_brightness() function are being modified. The main goal of these modifications is to prepare set_brightness_work for extension of the scope of its responsibilities. Signed-off-by: Jacek Anaszewski Acked-by: Pavel Machek Acked-by: Sakari Ailus drivers/leds/led-core.c | 36 ++++++++++++++++++++++++++---------- include/linux/leds.h | 10 ++++++---- 2 files changed, 32 insertions(+), 14 deletions(-) commit 2806e2ff489975eb40eb5b363a689716e78fd116 Author: Jacek Anaszewski Date: Mon Sep 28 15:07:10 2015 +0200 leds: core: Use EXPORT_SYMBOL_GPL consistently LED core has a mixture of EXPORT_SYMBOL and EXPORT_SYMBOL_GPL macros. This patch fixes this discrepancy and switches to using EXPORT_SYMBOL_GPL for each exported function. Signed-off-by: Jacek Anaszewski Acked-by: Pavel Machek drivers/leds/led-core.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 78800558d104e003f9ae92e0107f1de39cf9de9f Author: Alex Smith Date: Thu Dec 3 12:02:22 2015 +0000 MIPS: dts: jz4780/ci20: Add NEMC, BCH and NAND device tree nodes Add device tree nodes for the NEMC and BCH to the JZ4780 device tree, and make use of them in the Ci20 device tree to add a node for the board's NAND. Note that since the pinctrl driver is not yet upstream, this includes neither pin configuration nor busy/write-protect GPIO pins for the NAND. Use of the NAND relies on the boot loader to have left the pins configured in a usable state, which should be the case when booted from the NAND. [ralf@linux-mips.org: fold in Geert Uytterhoeven's patch and acks from Harvey's latest version.] Signed-off-by: Alex Smith Signed-off-by: Harvey Hunt Reviewed-by: Boris Brezillon Cc: Zubair Lutfullah Kakakhel Cc: David Woodhouse Cc: Brian Norris Cc: Paul Burton Cc: Alex Smith Cc: linux-mtd@lists.infradead.org Cc: devicetree@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: linux-mtd@lists.infradead.org Patchwork: https://patchwork.linux-mips.org/patch/11695/ Patchwork: https://patchwork.linux-mips.org/patch/11914/ Patchwork: https://patchwork.linux-mips.org/patch/11985/ Signed-off-by: Ralf Baechle arch/mips/boot/dts/ingenic/ci20.dts | 64 ++++++++++++++++++++++++++++++++++ arch/mips/boot/dts/ingenic/jz4780.dtsi | 26 ++++++++++++++ 2 files changed, 90 insertions(+) commit 16580796f90531119adbd0913f5126d6369ad17b Author: Simon Arlott Date: Sun Nov 15 16:37:23 2015 +0000 MIPS: bmips: Support SMP on BCM63168 The BCM63168 requires the same CPU1 fix as BCM6368. Signed-off-by: Simon Arlott Cc: Kevin Cernekee Cc: Florian Fainelli Cc: linux-mips@linux-mips.org Cc: Linux Kernel Mailing List Patchwork: https://patchwork.linux-mips.org/patch/11487/ Signed-off-by: Ralf Baechle arch/mips/bmips/setup.c | 1 + 1 file changed, 1 insertion(+) commit fe8766dd6744de4501ad6d2f4b84094ee2828e3d Author: Alban Bedel Date: Tue Nov 17 21:52:01 2015 +0100 MIPS: ath79: Remove some unused code from setup.c Remove the unused defines for the reference clocks rate and the useless machine init function. Signed-off-by: Alban Bedel Cc: Felix Fietkau Cc: Qais Yousef Cc: Andrew Bresticker Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11505/ Signed-off-by: Ralf Baechle arch/mips/ath79/setup.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) commit c166fe78d0851708f75c2aed107e75a97809b494 Author: Alban Bedel Date: Tue Nov 17 20:34:55 2015 +0100 MIPS: ath79: Allow using ath79_ddr_wb_flush() from drivers Move the declaration of ath79_ddr_wb_flush() to asm/mach-ath79/ath79.h to allow using it from drivers. This is needed to move the CPU IRQ driver to drivers/irqchip. Signed-off-by: Alban Bedel Cc: Thomas Gleixner Cc: Jason Cooper Cc: Marc Zyngier Cc: Alexander Couzens Cc: Joel Porquet Cc: Andrew Bresticker Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11502/ Signed-off-by: Ralf Baechle arch/mips/ath79/common.h | 1 - arch/mips/include/asm/mach-ath79/ath79.h | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) commit f9a3e047bc80d7bc4823a18265ef1d19749d4446 Author: Alban Bedel Date: Tue Nov 17 20:34:53 2015 +0100 MIPS: ath79: Prepare moving the MISC driver to drivers/irqchip To prepare moving out of the arch directory rework the MISC implementation to use irq domains instead of hard coded IRQ numbers. Also remove the uses of the ath79_reset_base global pointer in the IRQ methods. Signed-off-by: Alban Bedel Cc: Thomas Gleixner Cc: Jason Cooper Cc: Marc Zyngier Cc: Alexander Couzens Cc: Joel Porquet Cc: Andrew Bresticker Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11506/ Signed-off-by: Ralf Baechle arch/mips/ath79/irq.c | 58 +++++++++++++++++++++++++-------------------------- 1 file changed, 28 insertions(+), 30 deletions(-) commit a797a0cf9c7b585b12810828b8f6581d48321ad5 Author: Alban Bedel Date: Tue Nov 17 20:34:52 2015 +0100 MIPS: ath79: Remove useless #ifdef CONFIG_IRQCHIP IRQCHIP is always enabled, so the #ifdef can just be removed. Signed-off-by: Alban Bedel Cc: Thomas Gleixner Cc: Jason Cooper Cc: Marc Zyngier Cc: Alexander Couzens Cc: Joel Porquet Cc: Andrew Bresticker Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11504/ Signed-off-by: Ralf Baechle arch/mips/ath79/irq.c | 3 --- 1 file changed, 3 deletions(-) commit 76654c7be21c1704607e9ed22cf5d18d430fd828 Author: Alban Bedel Date: Mon Nov 16 22:22:04 2015 +0100 MIPS: ath79: Enable the USB port on the TL-WR1043ND Signed-off-by: Alban Bedel Cc: linux-mips@linux-mips.org Cc: Rob Herring Cc: Pawel Moll Cc: Mark Rutland Cc: Ian Campbell Cc: Kumar Gala Cc: Kishon Vijay Abraham I Cc: devicetree@vger.kernel.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11499/ Signed-off-by: Ralf Baechle arch/mips/boot/dts/qca/ar9132_tl_wr1043nd_v1.dts | 8 ++++++++ 1 file changed, 8 insertions(+) commit 25ee4e47a316f55a1ceaa0deda8c5fa812cefeae Author: Alban Bedel Date: Mon Nov 16 22:22:03 2015 +0100 MIPS: ath79: Add the EHCI controller and USB phy to the AR9132 dtsi Signed-off-by: Alban Bedel Cc: Rob Herring Cc: Pawel Moll Cc: Mark Rutland Cc: Ian Campbell Cc: Kumar Gala Cc: Kishon Vijay Abraham I Cc: linux-mips@linux-mips.org Cc: devicetree@vger.kernel.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11498/ Signed-off-by: Ralf Baechle arch/mips/boot/dts/qca/ar9132.dtsi | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit c054761c6fdcfcbc9c2a3c48aa7b908b53a568a2 Author: Alban Bedel Date: Mon Nov 16 22:22:01 2015 +0100 devicetree: Add bindings for the ATH79 USB phy Signed-off-by: Alban Bedel Acked-by: Rob Herring Cc: Pawel Moll Cc: Mark Rutland Cc: Ian Campbell Cc: Kumar Gala Cc: Kishon Vijay Abraham I Cc: devicetree@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11496/ Signed-off-by: Ralf Baechle .../devicetree/bindings/phy/phy-ath79-usb.txt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 074726402b82f14ca377da0b4a4767674c3d1ff8 Author: Dan Carpenter Date: Mon Dec 21 16:13:04 2015 +0300 pwm: omap-dmtimer: Potential NULL dereference on error "omap" is NULL so we can't dereference it. Signed-off-by: Dan Carpenter Signed-off-by: Thierry Reding drivers/pwm/pwm-omap-dmtimer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 36d5be4bc9059f8123e818c8b63a4049cf1d0e0f Author: Vegard Nossum Date: Sat Jan 2 14:02:07 2016 +0100 pwm: add HAS_IOMEM dependency to PWM_FSL_FTM Ran into this on UML: drivers/built-in.o: In function `fsl_pwm_probe': linux/drivers/pwm/pwm-fsl-ftm.c:436: undefined reference to `devm_ioremap_resource' collect2: error: ld returned 1 exit status devm_ioremap_resource() is defined only when HAS_IOMEM is selected. Signed-off-by: Vegard Nossum Cc: Xiubo Li Cc: Alison Wang Cc: Jingchang Lu Cc: Sascha Hauer Cc: Yuan Yao Cc: Thierry Reding Signed-off-by: Thierry Reding drivers/pwm/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 427e0dc57db7046385ed7618ab24aa5c58dccab1 Author: Arnd Bergmann Date: Fri Jan 1 23:40:46 2016 +0100 gpiolib: always initialize *flags from of_get_named_gpio_flags The of_get_named_gpio_flags() function does nothing other than returning an error when CONFIG_OF_GPIO is disabled, but that causes spurious warnings about possible use of uninitialized variables in any code that does not check the of_get_named_gpio_flags() return value before trying to use the flags: drivers/input/misc/rotary_encoder.c: In function 'rotary_encoder_probe': drivers/input/misc/rotary_encoder.c:223:28: warning: 'flags' may be used uninitialized in this function [-Wmaybe-uninitialized] drivers/power/bq24735-charger.c: In function 'bq24735_charger_probe': drivers/power/bq24735-charger.c:227:12: warning: 'flags' may be used uninitialized in this function [-Wmaybe-uninitialized] drivers/power/sbs-battery.c: In function 'sbs_probe': drivers/power/sbs-battery.c:782:17: warning: 'gpio_flags' may be used uninitialized in this function [-Wmaybe-uninitialized] This changes the behavior of the inline helper to set the flags to zero when OF_GPIO is disabled, to avoid the warnings. In all cases I've encountered, we don't actually get to the place that uses the flags if CONFIG_OF is disabled because we won't enter the DT parser code. Signed-off-by: Arnd Bergmann Signed-off-by: Linus Walleij include/linux/of_gpio.h | 3 +++ 1 file changed, 3 insertions(+) commit 3a848662c75118e1ee4653e08e25943d8b4ab8b7 Author: Lukas Wunner Date: Sat Jan 2 18:47:17 2016 +0100 vga_switcheroo: Prettify documentation Fix indentation of vga_switcheroo sections in gpu.tmpl. Change section type of API documentation from "chapter" to "sect1" so that the individual functions no longer clutter up the ToC. Group together under a new "API" chapter. Fix wording "heretoforth" -> "henceforth". Signed-off-by: Lukas Wunner Signed-off-by: Daniel Vetter Documentation/DocBook/gpu.tmpl | 40 ++++++++++++++++++++-------------------- drivers/gpu/vga/vga_switcheroo.c | 2 +- 2 files changed, 21 insertions(+), 21 deletions(-) commit 69a0f89c0641668d402573a05b327ac8ed6d2560 Author: Julia Lawall Date: Wed Dec 30 22:20:30 2015 +0100 drm/dp/mst: constify drm_dp_mst_topology_cbs structures The drm_dp_mst_topology_cbs structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp_mst.c | 2 +- drivers/gpu/drm/radeon/radeon_dp_mst.c | 2 +- include/drm/drm_dp_mst_helper.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit d21b02af63fd90d5fd6b8042fa5fb25f5911128d Author: Geliang Tang Date: Sun Dec 27 18:45:58 2015 +0800 drm/gma500: use to_pci_dev() Use to_pci_dev() instead of open-coding it. Signed-off-by: Geliang Tang Signed-off-by: Daniel Vetter drivers/gpu/drm/gma500/power.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 58f88ca2df7270881de2034c8286233a89efe71c Author: Dave Chinner Date: Mon Jan 4 16:44:15 2016 +1100 xfs: introduce per-inode DAX enablement Rather than just being able to turn DAX on and off via a mount option, some applications may only want to enable DAX for certain performance critical files in a filesystem. This patch introduces a new inode flag to enable DAX in the v3 inode di_flags2 field. It adds support for setting and clearing flags in the di_flags2 field via the XFS_IOC_FSSETXATTR ioctl, and sets the S_DAX inode flag appropriately when it is seen. When this flag is set on a directory, it acts as an "inherit flag". That is, inodes created in the directory will automatically inherit the on-disk inode DAX flag, enabling administrators to set up directory heirarchies that automatically use DAX. Setting this flag on an empty root directory will make the entire filesystem use DAX by default. Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_format.h | 9 +++++++++ fs/xfs/xfs_inode.c | 32 +++++++++++++++++++++++--------- fs/xfs/xfs_ioctl.c | 18 +++++++++++++++++- fs/xfs/xfs_iops.c | 4 ++-- include/uapi/linux/fs.h | 1 + 5 files changed, 52 insertions(+), 12 deletions(-) commit e7b89481017b2111d188afd70bbd0da9e9b94cc9 Author: Dave Chinner Date: Mon Jan 4 16:44:15 2016 +1100 xfs: use FS_XFLAG definitions directly Now that the ioctls have been hoisted up to the VFS level, use the VFs definitions directly and remove the XFS specific definitions completely. Userspace is going to have to handle the change of this interface separately, so removing the definitions from xfs_fs.h is not an issue here at all. Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_format.h | 2 -- fs/xfs/libxfs/xfs_fs.h | 19 ------------ fs/xfs/xfs_inode.c | 32 ++++++++++---------- fs/xfs/xfs_ioctl.c | 74 +++++++++++++++++++++++----------------------- 4 files changed, 53 insertions(+), 74 deletions(-) commit 334e580a6f97e2e84d1c19a8679603956acaa622 Author: Dave Chinner Date: Mon Jan 4 16:44:15 2016 +1100 fs: XFS_IOC_FS[SG]SETXATTR to FS_IOC_FS[SG]ETXATTR promotion Hoist the ioctl definitions for the XFS_IOC_FS[SG]SETXATTR API from fs/xfs/libxfs/xfs_fs.h to include/uapi/linux/fs.h so that the ioctls can be used by all filesystems, not just XFS. This enables (initially) ext4 to use the ioctl to set project IDs on inodes. Based-on-patch-from: Li Xi Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_fs.h | 51 +++++++++++++++++-------------------------------- include/uapi/linux/fs.h | 32 +++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 33 deletions(-) commit e0afc4d6d0d3e7e5a99f691bc64ae7c74bea790e Author: Chao Yu Date: Thu Dec 31 14:35:37 2015 +0800 f2fs: introduce max_file_blocks in sbi Introduce max_file_blocks in sbi to store max block index of file in f2fs, it could be used to avoid unneeded calculation of max block index in runtime. Signed-off-by: Chao Yu [Jaegeuk Kim: fix overflow of sbi->max_file_blocks] Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 2 +- fs/f2fs/f2fs.h | 2 +- fs/f2fs/super.c | 7 ++++--- 3 files changed, 6 insertions(+), 5 deletions(-) commit a6d7636e8d0fd94fd1937db91d5b06a91fa85dde Author: Dave Chinner Date: Mon Jan 4 16:28:25 2016 +1100 xfs: fix recursive splice read locking with DAX Doing a splice read (generic/249) generates a lockdep splat because we recursively lock the inode iolock in this path: SyS_sendfile64 do_sendfile do_splice_direct splice_direct_to_actor do_splice_to xfs_file_splice_read <<<<<< lock here default_file_splice_read vfs_readv do_readv_writev do_iter_readv_writev xfs_file_read_iter <<<<<< then here The issue here is that for DAX inodes we need to avoid the page cache path and hence simply push it into the normal read path. Unfortunately, we can't tell down at xfs_file_read_iter() whether we are being called from the splice path and hence we cannot avoid the locking at this layer. Hence we simply have to drop the inode locking at the higher splice layer for DAX. Signed-off-by: Dave Chinner Tested-by: Ross Zwisler Signed-off-by: Dave Chinner fs/xfs/xfs_file.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) commit 3b0fe47805802216087259b07de691ef47ff6fbc Author: Dave Chinner Date: Mon Jan 4 16:22:45 2016 +1100 xfs: Don't use reserved blocks for data blocks with DAX Commit 1ca1915 ("xfs: Don't use unwritten extents for DAX") enabled the DAX allocation call to dip into the reserve pool in case it was converting unwritten extents rather than allocating blocks. This was a direct copy of the unwritten extent conversion code, but had an unintended side effect of allowing normal data block allocation to use the reserve pool. Hence normal block allocation could deplete the reserve pool and prevent unwritten extent conversion at ENOSPC, hence violating fallocate guarantees on preallocated space. Fix it by checking whether the incoming map from __xfs_get_blocks() spans an unwritten extent and only use the reserve pool if the allocation covers an unwritten extent. Signed-off-by: Dave Chinner Tested-by: Ross Zwisler Signed-off-by: Dave Chinner fs/xfs/xfs_iomap.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit a841b64df29b4c7e68ce564d752dfb2042db5404 Author: Markus Elfring Date: Mon Jan 4 16:13:21 2016 +1100 XFS: Use a signed return type for suffix_kstrtoint() The return type "unsigned long" was used by the suffix_kstrtoint() function even though it will eventually return a negative error code. Improve this implementation detail by using the type "int" instead. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring Reviewed-by: Eric Sandeen Signed-off-by: Dave Chinner fs/xfs/xfs_super.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c5ab131ba0df8c1f1f52ffa6214d60aafeeddbd0 Author: Darrick J. Wong Date: Mon Jan 4 16:13:21 2016 +1100 libxfs: refactor short btree block verification Create xfs_btree_sblock_verify() to verify short-format btree blocks (i.e. the per-AG btrees with 32-bit block pointers) instead of open-coding them. Signed-off-by: Darrick J. Wong Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_alloc_btree.c | 34 +++-------------------- fs/xfs/libxfs/xfs_btree.c | 58 ++++++++++++++++++++++++++++++++++++++++ fs/xfs/libxfs/xfs_btree.h | 3 +++ fs/xfs/libxfs/xfs_ialloc_btree.c | 26 +++--------------- 4 files changed, 67 insertions(+), 54 deletions(-) commit 96f859d52bcb1c6ea6f3388d39862bf7143e2f30 Author: Darrick J. Wong Date: Mon Jan 4 16:13:21 2016 +1100 libxfs: pack the agfl header structure so XFS_AGFL_SIZE is correct Because struct xfs_agfl is 36 bytes long and has a 64-bit integer inside it, gcc will quietly round the structure size up to the nearest 64 bits -- in this case, 40 bytes. This results in the XFS_AGFL_SIZE macro returning incorrect results for v5 filesystems on 64-bit machines (118 items instead of 119). As a result, a 32-bit xfs_repair will see garbage in AGFL item 119 and complain. Therefore, tell gcc not to pad the structure so that the AGFL size calculation is correct. cc: # 3.10 - 4.4 Signed-off-by: Darrick J. Wong Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_format.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6d3eb1eca0e35cc1c0c80eacb7e7fe23c0dbfb07 Author: Darrick J. Wong Date: Mon Jan 4 16:12:42 2016 +1100 libxfs: use a convenience variable instead of open-coding the fork Use a convenience variable instead of open-coding the inode fork. This isn't really needed for now, but will become important when we add the copy-on-write fork later. Signed-off-by: Darrick J. Wong Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_bmap.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) commit 9b434a347c3d0aab5a14911fc65531e792da3ae6 Author: Darrick J. Wong Date: Mon Jan 4 16:11:42 2016 +1100 xfs: fix log ticket type printing Update the log ticket reservation type printing code to reflect all the types of log tickets, to avoid incorrect debug output and avoid running off the end of the array. Signed-off-by: Darrick J. Wong Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_log.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 2e9101da6047796d7fdee292e10a5c23d5c8b7ee Author: Darrick J. Wong Date: Mon Jan 4 16:10:42 2016 +1100 libxfs: make xfs_alloc_fix_freelist non-static Since xfs_repair wants to use xfs_alloc_fix_freelist, remove the static designation. xfsprogs already has this; this simply brings the kernel up to date. Signed-off-by: Darrick J. Wong Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_alloc.c | 2 +- fs/xfs/libxfs/xfs_alloc.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) commit 211fe1a4db74141d2ea4a6dae0dc862b1d88f6b9 Author: Alexander Kuleshov Date: Mon Jan 4 16:10:42 2016 +1100 xfs: make xfs_buf_ioend_async() static There are no callers of the xfs_buf_ioend_async() function outside of the fs/xfs/xfs_buf.c. So, let's make it static. Signed-off-by: Alexander Kuleshov Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/xfs_buf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ffc671f1eaa80ee5388693ad78f8332fdea71b80 Author: Masatake YAMATO Date: Mon Jan 4 16:10:42 2016 +1100 xfs: send warning of project quota to userspace via netlink Linux's quota subsystem has an ability to handle project quota. This commit just utilizes the ability from xfs side. dbus-monitor and quota_nld shipped as part of quota-tools can be used for testing. See the patch posting on the XFS list for details on testing. Signed-off-by: Masatake YAMATO Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/xfs_trans_dquot.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) commit f1f96c4946590616812711ac19eb7a84be160877 Author: Eric Sandeen Date: Mon Jan 4 16:10:42 2016 +1100 xfs: get mp from bma->ip in xfs_bmap code In my earlier commit c29aad4 xfs: pass mp to XFS_WANT_CORRUPTED_GOTO I added some local mp variables with code which indicates that mp might be NULL. Coverity doesn't like this now, because the updated per-fs XFS_STATS macros dereference mp. I don't think this is actually a problem; from what I can tell, we cannot get to these functions with a null bma->tp, so my NULL check was probably pointless. Still, it's not super obvious. So switch this code to get mp from the inode on the xfs_bmalloca structure, with no conditional, because the functions are already using bmap->ip directly. Addresses-Coverity-Id: 1339552 Addresses-Coverity-Id: 1339553 Signed-off-by: Eric Sandeen Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_bmap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 233135b763db7c64d07b728a9c66745fb0376275 Author: Eric Sandeen Date: Mon Jan 4 16:10:19 2016 +1100 xfs: print name of verifier if it fails This adds a name to each buf_ops structure, so that if a verifier fails we can print the type of verifier that failed it. Should be a slight debugging aid, I hope. Signed-off-by: Eric Sandeen Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_alloc.c | 2 ++ fs/xfs/libxfs/xfs_alloc_btree.c | 1 + fs/xfs/libxfs/xfs_attr_leaf.c | 1 + fs/xfs/libxfs/xfs_attr_remote.c | 1 + fs/xfs/libxfs/xfs_bmap_btree.c | 1 + fs/xfs/libxfs/xfs_da_btree.c | 1 + fs/xfs/libxfs/xfs_dir2_block.c | 1 + fs/xfs/libxfs/xfs_dir2_data.c | 2 ++ fs/xfs/libxfs/xfs_dir2_leaf.c | 2 ++ fs/xfs/libxfs/xfs_dir2_node.c | 1 + fs/xfs/libxfs/xfs_dquot_buf.c | 1 + fs/xfs/libxfs/xfs_ialloc.c | 1 + fs/xfs/libxfs/xfs_ialloc_btree.c | 1 + fs/xfs/libxfs/xfs_inode_buf.c | 2 ++ fs/xfs/libxfs/xfs_sb.c | 2 ++ fs/xfs/libxfs/xfs_symlink_remote.c | 1 + fs/xfs/xfs_buf.h | 1 + fs/xfs/xfs_error.c | 4 ++-- 18 files changed, 24 insertions(+), 2 deletions(-) commit 1d4292bfdc77f4f7c520064be15d0c46bd025fd2 Author: Jia He Date: Mon Jan 4 16:10:19 2016 +1100 libxfs: Optimize the loop for xfs_bitmap_empty If there is any non zero bit in a long bitmap, it can jump out of the loop and finish the function as soon as possible. Signed-off-by: Jia He Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_bit.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit eed6b462fb2a2661a416c227be6498b0ea2a7aab Author: Brian Foster Date: Mon Jan 4 15:55:10 2016 +1100 xfs: refactor log record start detection into a new helper As part of the head/tail discovery process, log recovery locates the head block and then reverse seeks to find the start of the last active record in the log. This is non-trivial as the record itself could have wrapped around the end of the physical log. Log recovery torn write detection potentially needs to walk further behind the last record in the log, as multiple log I/Os can be in-flight at one time during a crash event. Therefore, refactor the reverse log record header search mechanism into a new helper that supports the ability to seek past an arbitrary number of log records (or until the tail is hit). Update the head/tail search mechanism to call the new helper, but otherwise there is no change in log recovery behavior. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_log_recover.c | 118 +++++++++++++++++++++++++++++++++-------------- 1 file changed, 83 insertions(+), 35 deletions(-) commit 6528250b712102a7481c28db535ef251459d1868 Author: Brian Foster Date: Mon Jan 4 15:55:10 2016 +1100 xfs: support a crc verification only log record pass Log recovery torn write detection uses CRC verification over a range of the active log to identify torn writes. Since the generic log recovery pass code implements a superset of the functionality required for CRC verification, it can be easily modified to support a CRC verification only pass. Create a new CRC pass type and update the log record processing helper to skip everything beyond CRC verification when in this mode. This pass will be invoked in subsequent patches to implement torn write detection. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_log_recover.h | 1 + fs/xfs/xfs_log_recover.c | 24 +++++++++++++++++++----- 2 files changed, 20 insertions(+), 5 deletions(-) commit d7f37692e38798797d415153bc186afb2bbac645 Author: Brian Foster Date: Mon Jan 4 15:55:10 2016 +1100 xfs: return start block of first bad log record during recovery Each log recovery pass walks from the tail block to the head block and processes records appropriately based on the associated log pass type. There are various failure conditions that can occur through this sequence, such as I/O errors, CRC errors, etc. Log torn write detection will perform CRC verification near the head of the log to detect torn writes and trim torn records from the log appropriately. As it is, xlog_do_recovery_pass() only returns an error code in the event of CRC failure, which isn't enough information to trim the head of the log. Update xlog_do_recovery_pass() to optionally return the start block of the associated record when an error occurs. This patch contains no functional changes. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_log_recover.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) commit b94fb2d1780d7cd9d55b21e2bb879a54ed3074cc Author: Brian Foster Date: Mon Jan 4 15:55:10 2016 +1100 xfs: refactor and open code log record crc check Log record CRC verification currently occurs during active log recovery, immediately before a log record is unpacked. Therefore, the CRC calculation code is buried within the data unpack function. CRC verification pass support only needs to go so far as check the CRC, but this is not easily allowed as the code is currently organized. Since we now have a new log record processing helper, pull the record CRC verification code out from the unpack helper and open-code it at the top of the new process helper. This facilitates the ability to modify how records are processed based on the type of the current pass. This patch contains no functional changes. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_log_recover.c | 72 +++++++++++++++++------------------------------- 1 file changed, 26 insertions(+), 46 deletions(-) commit 9d94901f6e17c4c75d9aeb9efd4213a736c2ef9c Author: Brian Foster Date: Mon Jan 4 15:55:10 2016 +1100 xfs: refactor log record unpack and data processing xlog_do_recovery_pass() duplicates a couple function calls related to processing log records because the function must handle wrapping around the end of the log if the head is behind the tail. This is implemented as separate loops. CRC verification pass support will modify how records are processed in both of these loops. Rather than continue to duplicate code, factor the calls that process a log record into a new helper and call that helper from both loops. This patch contains no functional changes. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_log_recover.c | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) commit a70f9fe52daa839d3925ac7e2dbd0ca758434493 Author: Brian Foster Date: Mon Jan 4 15:55:10 2016 +1100 xfs: detect and handle invalid iclog size set by mkfs XFS log records have separate fields for the record size and the iclog size used to write the record. mkfs.xfs zeroes the log and writes an unmount record to generate a clean log for the subsequent mount. The userspace record logging code has a bug where the iclog size (h_size) field of the log record is hardcoded to 32k, even if a log stripe unit is specified. The log record length is correctly extended to the stripe unit. Since the kernel log recovery code uses the h_size field to determine the log buffer size, this means that the kernel can attempt to read/process records larger than the buffer size and overrun the buffer. This has historically not been a problem because the kernel doesn't actually run through log recovery in the clean unmount case. Instead, the kernel detects that a single unmount record exists between the head and tail and pushes the tail forward such that the log is viewed as clean (head == tail). Once CRC verification is enabled, however, all records at the head of the log are verified for CRC errors and thus we are susceptible to overrun problems if the iclog field is not correct. While the core problem must be fixed in userspace, this is historical behavior that must be detected in the kernel to avoid severe side effects such as memory corruption and crashes. Update the log buffer size calculation code to detect this condition, warn the user and resize the log buffer based on the log stripe unit. Return a corruption error in cases where this does not look like a clean filesystem (i.e., the log record header indicates more than one operation). Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_log_recover.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) commit 4693c2493a9b2d0c5d407496ea107676a690f1c0 Author: Linus Walleij Date: Tue Dec 22 15:39:05 2015 +0100 m68k: coldfire/gpio: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Cc: Geert Uytterhoeven Cc: Greg Ungerer Signed-off-by: Linus Walleij Signed-off-by: Greg Ungerer arch/m68k/coldfire/gpio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 60d77b3d2229eaf29eddf0d7a7947c3c922b1a4d Author: Peter Chen Date: Fri Dec 25 15:54:32 2015 +0800 MAINTAINERS: change my email address Freescale has merged with NXP. Signed-off-by: Peter Chen Signed-off-by: Greg Kroah-Hartman MAINTAINERS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 46c236dc7d1212d7417e6fb0317f91c44c719322 Author: Julia Lawall Date: Sat Dec 26 22:57:44 2015 +0100 USB: usbmon: remove assignment from IS_ERR argument The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression e1,e2; statement S1,S2; @@ +e1 = e2; if (IS_ERR( e1 - = e2 )) S1 else S2 // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/usb/mon/mon_text.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit e0a7f1f04cd9bb13df7503ba7156ff0a37c9f460 Author: Sudip Mukherjee Date: Wed Oct 28 14:41:40 2015 +0530 parport: avoid assignment in if It is not an usual practise to assign some value to a variable in the if test condition. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/parport/share.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e732b93c3276548bfa903d79c2083b2c8dc552af Author: Sudip Mukherjee Date: Wed Oct 28 14:41:39 2015 +0530 parport: remove unneeded space checkpatch complains that space is prohibited between function name and open parenthesis '('. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/parport/share.c | 94 ++++++++++++++++++++++++------------------------- 1 file changed, 47 insertions(+), 47 deletions(-) commit b95b9d6cdecabfd99e074d6fda51dc962fd2a1cf Author: Sudip Mukherjee Date: Wed Oct 28 14:41:38 2015 +0530 parport: change style of NULL comparison checkpatch was complaining about NULL comparisons. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/parport/share.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 47ec57ec0e52839b92066567e6eb02fb1e60e603 Author: Sudip Mukherjee Date: Wed Oct 28 14:41:37 2015 +0530 parport: remove unnecessary out of memory message If kmalloc() or kzalloc() fails we will get sufficient messages in the logs, no need to print these extra messages. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/parport/share.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) commit 13efa75d4e5d467f685bd54df310919ae4dc8eac Author: Sudip Mukherjee Date: Wed Oct 28 14:41:36 2015 +0530 parport: remove braces checkpatch was complaining about braces for single statement block. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/parport/share.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit a162188f9ca940b84a9ea61d88b50a8f408e0c0c Author: Sudip Mukherjee Date: Wed Oct 28 14:41:35 2015 +0530 parport: quoted strings should not be split user visible strings should not be split as that affects the ability to grep. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/parport/share.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) commit b075e6f0510e12b38dbbb66141c5188e8c11ab8b Author: Sudip Mukherjee Date: Wed Oct 28 14:41:34 2015 +0530 parport: code indent should use tabs Code should be indented using tabs and not by space. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/parport/share.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7b7a0a30c985145bf4474639d832c94cd63059fa Author: Sudip Mukherjee Date: Wed Oct 28 14:41:33 2015 +0530 parport: fix coding style The multi-line comments were not according to the kernel coding style. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/parport/share.c | 69 +++++++++++++++++++++++++++++++------------------ 1 file changed, 44 insertions(+), 25 deletions(-) commit 27c6db2655502978c670bd15a1639066ff13c78c Author: Sudip Mukherjee Date: Wed Oct 28 14:41:32 2015 +0530 parport: EXPORT_SYMBOL should follow function All symbols were exported at the end of the file but they are supposed to be exported just after the function. And checkpatch was complaining about it. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/parport/share.c | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) commit 657e24d35479b3edd84706db082f5e18a2270631 Author: Sudip Mukherjee Date: Wed Oct 28 14:41:31 2015 +0530 parport: remove trailing white space Trailing white space is not accepted in kernel coding style. Remove them. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/parport/share.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit e952736586098063fcb734550429b8a81a2c5d25 Author: Geliang Tang Date: Wed Oct 28 14:41:30 2015 +0530 parport: fix a trivial typo s/regsiter/register/ Signed-off-by: Geliang Tang Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/parport/share.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 48346892ff2a2bd66301875ebffd408627419feb Merge: b40e9dc f7d7f59 Author: Greg Kroah-Hartman Date: Sun Jan 3 15:19:12 2016 -0800 Merge tag 'usb-serial-4.4-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-next Johan writes: USB-serial fixes for v4.4-rc8 Here's another device id for cp210x. Signed-off-by: Johan Hovold commit b40e9dc0b4967b198fefeabab0e2ba673c887ec3 Merge: daf2733 6ff9d27 Author: Greg Kroah-Hartman Date: Sun Jan 3 15:15:26 2016 -0800 Merge tag 'usb-serial-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-next Johan writes: USB-serial updates for v4.5-rc1 These updates add support for Moxa UPort 1100-series devices through a new mxu11x0 driver. The cp210x driver gains proper support for cp2108 devices by working around a couple of firmware bugs, and generic wait-until-sent support (e.g. for tcdrain) is also added. Included are also some general clean ups. Signed-off-by: Johan Hovold commit 502061f81d3eb4518d2e72178e494a8547788ad0 Author: Pablo Neira Ayuso Date: Sun Jan 3 21:02:18 2016 +0100 netfilter: nf_tables: add packet duplication to the netdev family You can use this to duplicate packets and inject them at the egress path of the specified interface. This duplication allows you to inspect traffic from the dummy or any other interface dedicated to this purpose. Signed-off-by: Pablo Neira Ayuso include/net/netfilter/nf_dup_netdev.h | 6 +++ net/netfilter/Kconfig | 16 ++++++ net/netfilter/Makefile | 6 +++ net/netfilter/nf_dup_netdev.c | 40 +++++++++++++++ net/netfilter/nft_dup_netdev.c | 97 +++++++++++++++++++++++++++++++++++ 5 files changed, 165 insertions(+) commit c7862a5f0de5f521c545f3436f0aa190964342dd Author: Pablo Neira Ayuso Date: Mon Dec 28 18:21:44 2015 +0100 netfilter: nft_limit: allow to invert matching criteria This patch allows you to invert the ratelimit matching criteria, so you can match packets over the ratelimit. This is required to support what hashlimit does. Signed-off-by: Pablo Neira Ayuso include/uapi/linux/netfilter/nf_tables.h | 6 ++++++ net/netfilter/nft_limit.c | 16 +++++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) commit 66e784130a48653fcc58ebd08b54ece4fbd86bbc Author: Geliang Tang Date: Sun Dec 27 21:15:42 2015 +0800 i2c: st: use to_platform_device() Use to_platform_device() instead of open-coding it. Signed-off-by: Geliang Tang Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-st.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 238c44a70c0637765709c78eeaddb2a3d3674b88 Author: Geliang Tang Date: Sun Dec 27 18:45:59 2015 +0800 i2c: designware: use to_pci_dev() Use to_pci_dev() instead of open-coding it. Signed-off-by: Geliang Tang Reviewed-by: Andy Shevchenko Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-designware-pcidrv.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e2e5a2c618373b55bbb2eca2a6e535dddd04412c Author: Kamal Dasu Date: Wed Dec 16 15:49:09 2015 -0500 i2c: brcmstb: Adding support for CM and DSL SoCs Broadcoms DSL, CM (cable modem)and STB I2C core implementation have 8 data in/out registers that can transfer 8 bytes or 32 bytes max. Cable and DSL "Peripheral" i2c cores use single byte per data register and the STB can use 4 byte per data register transfer. Adding support to take care of this difference. Accordingly added the compatible string for SoCs using the "Peripheral" I2C block. Signed-off-by: Kamal Dasu Reviewed-by: Florian Fainelli Signed-off-by: Wolfram Sang .../devicetree/bindings/i2c/i2c-brcmstb.txt | 2 +- drivers/i2c/busses/i2c-brcmstb.c | 80 +++++++++++++++------- 2 files changed, 57 insertions(+), 25 deletions(-) commit 8378d01f60a95d9205c6da47cb0cd2a594f7e07f Author: Liguo Zhang Date: Tue Dec 15 15:22:26 2015 +0800 i2c: mediatek: fix i2c multi transfer issue in high speed mode For mt8173 platform with auto restart support, when doing i2c multi transfer in high speed, we should ignore the first restart irq after the master code, otherwise the first transfer will be discarded. Signed-off-by: Liguo Zhang Reviewed-by: Eddie Huang Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-mt65xx.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) commit 6427e6c71c8b374761b661c4f355762794c171a1 Author: Petko Manolov Date: Sun Jan 3 17:36:38 2016 +0200 ima: ima_write_policy() limit locking There is no need to hold the ima_write_mutex for so long. We only need it around ima_parse_add_rule(). Changelog: - The return path now takes into account failed kmalloc() call. Reported-by: Al Viro Signed-off-by: Petko Manolov Signed-off-by: Mimi Zohar security/integrity/ima/ima_fs.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit e8e712916ceade419ab52900917ed568c7b3ec26 Author: Gao Pan Date: Mon Nov 2 17:05:30 2015 +0800 i2c: imx: improve code readability Replace of_get_named_gpio_flags with of_get_named_gpio because the latter has less parameters, which improves code readability. Signed-off-by: Fugang Duan Signed-off-by: Gao Pan Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-imx.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 5b6615398906150dea92fe67a1613a0151ddd0ba Author: Fabio Estevam Date: Sun Nov 1 14:22:51 2015 -0200 i2c: imx: Improve message log when DMA is not used When DMA cannot be used, it is better to state that the I2C controller will operate in PIO mode. Signed-off-by: Fabio Estevam Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-imx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 588eb93ea49f672cb3ff55d0a5c34df3e1afa7ec Author: Gao Pan Date: Fri Dec 11 10:24:09 2015 +0800 i2c: imx: add runtime pm support to improve the performance In our former i2c driver, i2c clk is enabled and disabled in xfer function, which contributes to power saving. However, the clk enable process brings a busy wait delay until the core is stable. As a result, the performance is sacrificed. To weigh the power consumption and i2c bus performance, runtime pm is the good solution for it. The clk is enabled when a i2c transfer starts, and disabled after a specifically defined delay. If CONFIG_PM is disabled the net result of this patch is that the clock is never disabled. Without the patch the test case (many eeprom reads) executes with approx: real 1m7.735s user 0m0.488s sys 0m20.040s With the patch the same test case (many eeprom reads) executes with approx: real 0m54.241s user 0m0.440s sys 0m5.920s Signed-off-by: Fugang Duan Signed-off-by: Gao Pan Acked-by: Uwe Kleine-König [wsa: sorted includes] Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-imx.c | 90 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 78 insertions(+), 12 deletions(-) commit a5f650182bcf956b2b0341575e8bff01e402224f Author: Gao Pan Date: Wed Dec 9 11:08:22 2015 +0800 i2c: imx: init bus recovery info before adding i2c adapter During driver probe, i2c_imx_init_recovery_info() must come before i2c_add_numbered_adapter(), because the get/set_scl() functions are assigned in i2c_register_adapter() under the conditon that bus recover_info are initialized. Otherwise, get/set_scl() function pointers never get assigned. In such case, when i2c_generic_gpio_recovery() is used for bus recovery, there will be kernel crash because bri->set_scl is NULL. The solution to this bug is moving i2c_imx_init_recovery_info() before i2c_register_adapter(). Signed-off-by: Gao Pan Signed-off-by: Fugang Duan Acked-by: Uwe Kleine-König Signed-off-by: Wolfram Sang Cc: stable@kernel.org drivers/i2c/busses/i2c-imx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9979e320b559264333a77c73131ae88cefca15e5 Author: Matt Ranostay Date: Sat Dec 26 20:56:30 2015 -0800 iio: proximity: lidar: correct return value lidar_i2c_xfer() function was never a non-positive value on error, and this correct that with a -EIO return code. Fixes: 366e65633cf4 ("iio: proximity: lidar: optimize i2c transactions") Signed-off-by: Matt Ranostay Signed-off-by: Jonathan Cameron drivers/iio/proximity/pulsedlight-lidar-lite-v2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 59869ebfe7a73771399b897e592a8618fa0e43d7 Author: Brad Campbell Date: Wed Dec 23 21:19:41 2015 -0500 ieee802154: cc2520: Check CRC & add promiscuous This patch adds checking the "CRC_OK" bit at the end of packets coming from the CC2520 radio. It also adds support for putting the radio in promiscuous mode (in which packets are not dropped if the CRC fails). In promiscuous mode the AUTOCRC flag is cleared so that the driver can pass the received CRC to the monitors. The radio now defaults to frame filtering (checking that the destination and PANID in the incoming packet matches the local node). This matches the other 15.4 radios and is what a user would expect to be the default. Other changes: 1. Adds LQI calculation 2. Makes #defines for relevant bit fields in CC2520 registers Signed-off-by: Brad Campbell Acked-by: Varka Bhadram Signed-off-by: Marcel Holtmann drivers/net/ieee802154/cc2520.c | 145 +++++++++++++++++++++++++++++++++------- 1 file changed, 122 insertions(+), 23 deletions(-) commit 7ed88aa2efa5422f9d93fd99f2a01c56e28a7409 Author: Russell King Date: Sat Jan 2 10:01:34 2016 +0000 clk: fix clk-gpio.c with optional clock= DT property When the clock DT property is not given, of_clk_get_parent_count() returns -ENOENT, which then tries to allocate -2 x 4 bytes of memory, which of course fails, causing the whole driver to fail to create the clock. This causes the SolidRun platforms to fail probing the SDHCI1 interface which is connected to the WiFi. Fix this by detecting errno codes, skipping the allocation, and fixing of_clk_gpio_gate_delayed_register_get() to handle a NULL parent_names array. Fixes: 80eeb1f0f757 ("clk: add gpio controlled clock multiplexer") Signed-off-by: Russell King Signed-off-by: Michael Turquette drivers/clk/clk-gpio.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) commit fa68e2777cbc410fafb4e45e92222a63f6e60e57 Author: Geliang Tang Date: Sat Jan 2 21:06:53 2016 -0800 Input: pcap_ts - use to_delayed_work Use to_delayed_work() instead of open-coding it. Signed-off-by: Geliang Tang Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/pcap_ts.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7ed5ff82c2f06965652f8d1a17c427ba8d363b92 Author: Julia Lawall Date: Sat Jan 2 21:04:30 2016 -0800 Input: bma150 - constify bma150_cfg structure The bma150_cfg structure is never modified, so declare it as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Dmitry Torokhov drivers/input/misc/bma150.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dd0d0d4de582a6a61c032332c91f4f4cb2bab569 Author: Aurélien Francillon Date: Sat Jan 2 20:39:54 2016 -0800 Input: i8042 - add Fujitsu Lifebook U745 to the nomux list Without i8042.nomux=1 the Elantech touch pad is not working at all on a Fujitsu Lifebook U745. This patch does not seem necessary for all U745 (maybe because of different BIOS versions?). However, it was verified that the patch does not break those (see opensuse bug 883192: https://bugzilla.opensuse.org/show_bug.cgi?id=883192). Signed-off-by: Aurélien Francillon Cc: stable@vger.kernel.org Signed-off-by: Dmitry Torokhov drivers/input/serio/i8042-x86ia64io.h | 7 +++++++ 1 file changed, 7 insertions(+) commit a77060f07ffc6ac978e280e738302f3e5572a99e Author: Christophe Le Roy Date: Fri Dec 11 09:13:42 2015 +0100 PNP: Add Broadwell to Intel MCH size workaround Add device ID 0x1604 for Broadwell to commit cb171f7abb9a ("PNP: Work around BIOS defects in Intel MCH area reporting"). >From a Lenovo ThinkPad T550: system 00:01: [io 0x1800-0x189f] could not be reserved system 00:01: [io 0x0800-0x087f] has been reserved system 00:01: [io 0x0880-0x08ff] has been reserved system 00:01: [io 0x0900-0x097f] has been reserved system 00:01: [io 0x0980-0x09ff] has been reserved system 00:01: [io 0x0a00-0x0a7f] has been reserved system 00:01: [io 0x0a80-0x0aff] has been reserved system 00:01: [io 0x0b00-0x0b7f] has been reserved system 00:01: [io 0x0b80-0x0bff] has been reserved system 00:01: [io 0x15e0-0x15ef] has been reserved system 00:01: [io 0x1600-0x167f] has been reserved system 00:01: [io 0x1640-0x165f] has been reserved system 00:01: [mem 0xf8000000-0xfbffffff] could not be reserved system 00:01: [mem 0xfed1c000-0xfed1ffff] has been reserved system 00:01: [mem 0xfed10000-0xfed13fff] has been reserved system 00:01: [mem 0xfed18000-0xfed18fff] has been reserved system 00:01: [mem 0xfed19000-0xfed19fff] has been reserved system 00:01: [mem 0xfed45000-0xfed4bfff] has been reserved system 00:01: Plug and Play ACPI device, IDs PNP0c02 (active) [...] resource sanity check: requesting [mem 0xfed10000-0xfed15fff], which spans more than pnp 00:01 [mem 0xfed10000-0xfed13fff] ------------[ cut here ]------------ WARNING: CPU: 2 PID: 1 at /build/linux-CrHvZ_/linux-4.2.6/arch/x86/mm/ioremap.c:198 __ioremap_caller+0x2ee/0x360() Info: mapping multiple BARs. Your kernel is fine. Modules linked in: CPU: 2 PID: 1 Comm: swapper/0 Not tainted 4.2.0-1-amd64 #1 Debian 4.2.6-1 Hardware name: LENOVO 20CKCTO1WW/20CKCTO1WW, BIOS N11ET34W (1.10 ) 08/20/2015 0000000000000000 ffffffff817e6868 ffffffff8154e2f6 ffff8802241efbf8 ffffffff8106e5b1 ffffc90000e98000 0000000000006000 ffffc90000e98000 0000000000006000 0000000000000000 ffffffff8106e62a ffffffff817e68c8 Call Trace: [] ? dump_stack+0x40/0x50 [] ? warn_slowpath_common+0x81/0xb0 [] ? warn_slowpath_fmt+0x4a/0x50 [] ? iomem_map_sanity_check+0xb3/0xc0 [] ? __ioremap_caller+0x2ee/0x360 [] ? snb_uncore_imc_init_box+0x66/0x90 [] ? uncore_pci_probe+0xc8/0x1a0 [] ? local_pci_probe+0x3f/0xa0 [] ? pci_device_probe+0xc4/0x110 [] ? driver_probe_device+0x1ee/0x450 [] ? __driver_attach+0x7b/0x80 [] ? driver_probe_device+0x450/0x450 [] ? bus_for_each_dev+0x5a/0x90 [] ? bus_add_driver+0x1f1/0x290 [] ? uncore_cpu_setup+0xc/0xc [] ? driver_register+0x5f/0xe0 [] ? intel_uncore_init+0xcc/0x2b0 [] ? uncore_cpu_setup+0xc/0xc [] ? do_one_initcall+0xce/0x200 [] ? parse_args+0x140/0x4e0 [] ? kernel_init_freeable+0x162/0x1e8 [] ? rest_init+0x80/0x80 [] ? kernel_init+0xe/0xf0 [] ? ret_from_fork+0x3f/0x70 [] ? rest_init+0x80/0x80 ---[ end trace 472e7959536abf12 ]--- 00:00.0 Host bridge: Intel Corporation Broadwell-U Host Bridge -OPI (rev 09) Subsystem: Lenovo Device 2223 Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- SERR- Kernel driver in use: bdw_uncore 00: 86 80 04 16 06 00 90 20 09 00 00 06 00 00 00 00 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 aa 17 23 22 30: 00 00 00 00 e0 00 00 00 00 00 00 00 00 00 00 00 Signed-off-by: Christophe Le Roy Signed-off-by: Rafael J. Wysocki drivers/pnp/quirks.c | 1 + 1 file changed, 1 insertion(+) commit 9d128ed17c672b1dffde4a328e9b3ee26d87a8f0 Author: Rafael J. Wysocki Date: Sat Jan 2 03:10:29 2016 +0100 ACPI / OSL: Add kerneldoc comments to memory mapping functions Add kerneldoc comments to acpi_os_map_iomem() and acpi_os_unmap_iomem() and explain why the latter needs the __ref annotation in one of them (as suggested by Mathias Krause). Signed-off-by: Rafael J. Wysocki Acked-by: Mathias Krause drivers/acpi/osl.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit 49dea76aebab80e3500cdafa5c4f4b01ec8c9c08 Merge: 0b2e788 5b73840 Author: Michael Turquette Date: Sat Jan 2 13:41:09 2016 -0800 Merge branch 'clk-rockchip' into clk-next commit 5b73840375e3eebeb7adf957ff64a96abdf4e1a1 Author: Heiko Stübner Date: Sat Dec 26 14:07:15 2015 +0100 clk: rockchip: fix section mismatches with new child-clocks To model the muxes downstream of fractional dividers we introduced the child property, allowing to describe a direct child clock. The first implementation seems to cause section warnings, as the core clock-tree is marked as initdata while the data pointed to from the child element is not. While there may be some way to also set that missing property in the inline notation I didn't find it, so to actually fix the issue for now move the sub-definitions into separate declarations that can have their own __initdata properties. Signed-off-by: Heiko Stuebner Signed-off-by: Michael Turquette drivers/clk/rockchip/clk-rk3036.c | 35 ++++++++++++++------ drivers/clk/rockchip/clk-rk3188.c | 70 ++++++++++++++++++++++++++++----------- drivers/clk/rockchip/clk-rk3288.c | 56 ++++++++++++++++++++++--------- drivers/clk/rockchip/clk.h | 2 +- 4 files changed, 116 insertions(+), 47 deletions(-) commit 7ee24eb508d61e5b74dcc80f644adfb5916f7580 Author: Wolfram Sang Date: Wed Dec 23 17:56:34 2015 +0100 i2c: rcar: disable PM in multi-master mode In multi master mode, the IP core needs to be always active for arbitration reasons. Get the config from DT and set up PM depending on the config. Acked-by: Geert Uytterhoeven Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-rcar.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) commit 42c0783b89ae4d41ab65e8b0f7ed8cf52e711554 Author: Wolfram Sang Date: Wed Dec 23 17:56:33 2015 +0100 i2c: rcar: remove macros dealing with flags These macros don't really hide complexity, but C idioms. Removing them makes the code easier to read IMO and make a planned extension easier. Acked-by: Geert Uytterhoeven Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-rcar.c | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) commit 0c739738a0eea868655ef26263d5350e6ab8cc69 Author: Wolfram Sang Date: Wed Dec 23 17:56:32 2015 +0100 i2c: document binding for multi-master case We need this binding because some I2C master drivers will need to adapt their PM settings for the arbitration circuitry. Acked-by: Geert Uytterhoeven Acked-by: Rob Herring Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang Documentation/devicetree/bindings/i2c/i2c.txt | 5 +++++ 1 file changed, 5 insertions(+) commit c20821a7f0a55377eccd88c89bd76a2cca22a1b4 Author: Sifan Naeem Date: Thu Nov 19 09:35:17 2015 +0000 i2c: img-scb: support repeated starts on IP v3.3 In version 3.3 of the IP when transaction halt is set, an interrupt will be generated after each byte of a transfer instead of after every transfer but before the stop bit. Due to this behaviour we have to be careful that every time we release the transaction halt we have to re-enable it straight away so that we only process a single byte, not doing so will result in all remaining bytes been processed and a stop bit being issued, which will prevent us having a repeated start. This change will have no effect on earlier versions of the IP. Signed-off-by: Sifan Naeem Acked-by: James Hogan Reviewed-by: James Hartley Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-img-scb.c | 45 ++++++++++++++++++++++++++++++++-------- 1 file changed, 36 insertions(+), 9 deletions(-) commit c7b0a7c10752fa9a30f719848f4350fa02fdb8e5 Author: Sifan Naeem Date: Thu Nov 19 09:35:16 2015 +0000 i2c: img-scb: add handle for Master halt interrupt Master halt is issued after each byte of a transaction is processed in IP version 3.3. Master halt will stall the bus by holding the SCK line low until the halt bit in the scb_general_control is cleared. After the last byte of a transfer is processed we can use the Master Halt interrupt to facilitate a repeated start transfer without issuing a stop bit. Signed-off-by: Sifan Naeem Reviewed-by: James Hartley Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-img-scb.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) commit dd29207e6ccf6ae705dc01c6db73f3a8cb641400 Author: Sifan Naeem Date: Thu Nov 19 09:35:15 2015 +0000 i2c: img-scb: add handle for stop detected interrupt Stop Detected interrupt is triggered when a Stop bit is detected on the bus, which indicates the end of the current transfer. When the end of a transfer is indicated by the Stop Detected interrupt, drain the FIFO and signal completion for the transaction. Signed-off-by: Sifan Naeem Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-img-scb.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit a8c5a8d8c9caa150f0e1faab3884ba48d9cd99fe Author: Sifan Naeem Date: Thu Nov 19 09:35:14 2015 +0000 i2c: img-scb: remove fifo EMPTYING interrupts handle Now that we are using the transaction halt interrupt to safely control repeated start transfers, we no longer need to handle the fifo emptying interrupts. Handling this interrupt along with Transaction Halt interrupt can cause erratic behaviour. Signed-off-by: Sifan Naeem Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-img-scb.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) commit c55ebe0e72737dd3d49f6fa3156313e1cab5dcab Author: Sifan Naeem Date: Thu Nov 19 09:35:13 2015 +0000 i2c: img-scb: support I2C_M_IGNORE_NAK This commit adds support for the I2C_M_IGNORE_NAK protocol modification. Such behaviour can only be implemented in atomic mode. So, if a transaction contains a message with such flag the drivers switches to atomic mode. The implementation consists simply in treating NAKs as ACKs. Signed-off-by: Sifan Naeem Acked-by: James Hogan Reviewed-by: James Hartley Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-img-scb.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) commit a5ae989957cbc3f3b7bc40677bd9e459c0917528 Author: Tejun Heo Date: Tue Dec 29 14:53:56 2015 -0500 cgroup: demote subsystem init messages to KERN_DEBUG These are noisy during boot and not all that interesting. Signed-off-by: Tejun Heo kernel/cgroup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a889331d759453fa7f424330f75ae4e2b9e02db4 Author: Pi-Cheng Chen Date: Sun Dec 27 14:21:57 2015 +0800 cpufreq: mt8173: migrate to use operating-points-v2 bindings Modify mt8173-cpufreq driver to get OPP-sharing information and set up OPP table provided by operating-points-v2 bindings. Signed-off-by: Pi-Cheng Chen Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/mt8173-cpufreq.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) commit c6f48119a1771c078dce0fca3ede77cd0062e2e4 Merge: 7a6c79f d9de19b Author: Rafael J. Wysocki Date: Sat Jan 2 00:49:05 2016 +0100 Merge branch 'pm-opp' into pm-cpufreq commit d9de19b1cc013433ad293365b5b3902ec73dfd60 Author: Pi-Cheng Chen Date: Mon Dec 28 21:06:17 2015 +0800 PM / OPP: Set cpu_dev->id in cpumask first Set cpu_dev->id in cpumask first when setting up cpumask for CPUs that share the same OPP table. This might be helpful when handling cpumask without the original CPU bitfield set. Signed-off-by: Pi-Cheng Chen Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/base/power/opp/cpu.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 4295733eee4e69eda432d95765b7762dc6013271 Author: Manuel Pégourié-Gonnard Date: Tue Dec 29 11:03:21 2015 +0100 PM / core: fix typo in documentation The documentation for detach() said attach. Signed-off-by: Manuel Pégourié-Gonnard Acked-by: Pavel Machek Signed-off-by: Rafael J. Wysocki drivers/base/power/common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 600c395bf6c4e44ec831e850d7f93ce53d7373be Author: Julia Lawall Date: Wed Dec 23 22:59:55 2015 +0100 powercap: constify powercap_zone_ops and powercap_zone_constraint_ops structures The powercap_zone_ops and powercap_zone_constraint_ops structures are never modified, so declare them as const. Most of the actual changes adjust indentation to accomodate the const keyword. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Rafael J. Wysocki drivers/powercap/intel_rapl.c | 4 ++-- drivers/powercap/powercap_sys.c | 18 +++++++++--------- include/linux/powercap.h | 4 ++-- 3 files changed, 13 insertions(+), 13 deletions(-) commit 1cac5503fbf751f121d0c9f96e69d1fdd3eb1471 Author: Geliang Tang Date: Fri Jan 1 22:59:07 2016 +0800 EDAC, i5100: Use to_delayed_work() Use to_delayed_work() instead of open-coding it. Signed-off-by: Geliang Tang Cc: linux-edac Link: http://lkml.kernel.org/r/58c0e319c7263a10b692100c657c06c42814aecf.1451659910.git.geliangtang@163.com Signed-off-by: Borislav Petkov drivers/edac/i5100_edac.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 2b3909f8a7fe94e0234850aa9d120cca15b6e1f7 Author: Darrick J. Wong Date: Sat Dec 19 00:56:05 2015 -0800 btrfs: use new dedupe data function pointer Now that the VFS encapsulates the dedupe ioctl, wire up btrfs to it. Signed-off-by: Darrick J. Wong Signed-off-by: Al Viro fs/btrfs/ctree.h | 2 + fs/btrfs/file.c | 1 + fs/btrfs/ioctl.c | 110 +++++++------------------------------------------------ 3 files changed, 16 insertions(+), 97 deletions(-) commit 54dbc15172375641ef03399e8f911d7165eb90fb Author: Darrick J. Wong Date: Sat Dec 19 00:55:59 2015 -0800 vfs: hoist the btrfs deduplication ioctl to the vfs Hoist the btrfs EXTENT_SAME ioctl up to the VFS and make the name more systematic (FIDEDUPERANGE). Signed-off-by: Darrick J. Wong Signed-off-by: Al Viro fs/compat_ioctl.c | 1 + fs/ioctl.c | 38 ++++++++++++++++++ fs/read_write.c | 100 ++++++++++++++++++++++++++++++++++++++++++++++++ include/linux/fs.h | 4 ++ include/uapi/linux/fs.h | 30 +++++++++++++++ 5 files changed, 173 insertions(+) commit d79bdd52d8be70d0e7024ac6715eee860a19834a Author: Darrick J. Wong Date: Sat Dec 19 00:55:52 2015 -0800 vfs: wire up compat ioctl for CLONE/CLONE_RANGE Signed-off-by: Darrick J. Wong Signed-off-by: Al Viro fs/compat_ioctl.c | 4 ++++ fs/read_write.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) commit 0b2e78865d92e2d70542cb1d4d7af1d4ea0a286d Author: Brian Norris Date: Wed Dec 16 10:35:03 2015 -0800 clk: gpio: handle error codes for of_clk_get_parent_count() We might make bad memory allocations if we get (e.g.) -ENOSYS from of_clk_get_parent_count(). Noticed by Coverity. Fixes: f66541ba02d5 ("clk: gpio: Get parent clk names in of_gpio_clk_setup()") Signed-off-by: Brian Norris Cc: Jyri Sarha Cc: Sergej Sawazki Cc: Stephen Boyd Signed-off-by: Michael Turquette drivers/clk/clk-gpio.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit c76eb11c8f0bae27aa4db9a18031a497ba6e2636 Author: Sudip Mukherjee Date: Wed Dec 23 12:03:59 2015 +0530 clk: gpio: fix memory leak If we fail to allocate parent_name then we are returning but we missed freeing data which has already been allocated. Signed-off-by: Sudip Mukherjee Signed-off-by: Michael Turquette drivers/clk/clk-gpio.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 3a9e6433a367211a172cb7b4d5b727c720bd0de0 Author: Chao Yu Date: Thu Dec 31 18:20:10 2015 +0800 f2fs crypto: check CONFIG_F2FS_FS_XATTR for encrypted symlink Add missed CONFIG_F2FS_FS_XATTR for encrypted symlink inode in order to avoid unneeded registry of ->{get,set,remove}xattr. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/namei.c | 2 ++ 1 file changed, 2 insertions(+) commit 7a6c79f2fe53dac9b7b290f3a4c56b0958e19201 Author: Rafael J. Wysocki Date: Sun Dec 27 00:27:38 2015 +0100 cpufreq: Simplify core code related to boost support Notice that the boost_supported field in struct cpufreq_driver is redundant, because the driver's ->set_boost callback may be left unset if "boost" is not supported. Moreover, the only driver populating the ->set_boost callback is acpi_cpufreq, so make it avoid populating that callback if "boost" is not supported, rework the core to check ->set_boost instead of boost_supported to verify "boost" support and drop boost_supported which isn't used any more. Signed-off-by: Rafael J. Wysocki Acked-by: Viresh Kumar drivers/cpufreq/acpi-cpufreq.c | 5 ++--- drivers/cpufreq/cpufreq.c | 22 +++++++--------------- include/linux/cpufreq.h | 1 - 3 files changed, 9 insertions(+), 19 deletions(-) commit 17135782b816383b426d280c350467b23ef9c10c Author: Rafael J. Wysocki Date: Sun Dec 27 00:25:35 2015 +0100 cpufreq: acpi-cpufreq: Simplify boost-related code The store_boost() routine is only used by store_cpb(), so move the code from it directly to that function and rename _store_boost() to set_boost() to make its name reflect the name of the driver callback pointing to it. Signed-off-by: Rafael J. Wysocki Acked-by: Viresh Kumar drivers/cpufreq/acpi-cpufreq.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) commit 41669da03060c5e55e9d3061ddede624f01d7262 Author: Rafael J. Wysocki Date: Sun Dec 27 00:23:48 2015 +0100 cpufreq: Make cpufreq_boost_supported() static cpufreq_boost_supported() is not used outside of cpufreq.c, so make it static. While at it, refactor it as a one-liner (which it really is). Signed-off-by: Rafael J. Wysocki Acked-by: Viresh Kumar drivers/cpufreq/cpufreq.c | 8 ++------ include/linux/cpufreq.h | 5 ----- 2 files changed, 2 insertions(+), 11 deletions(-) commit 6b0e2b32871b7c10c75d647b0295a092f918f3e7 Author: Bob Moore Date: Tue Dec 29 14:04:28 2015 +0800 ACPICA: Update version to 20151218 ACPICA commit e81cedadd3a847d40f30bc9c52dfe441620ed12f Version 20151218. Link: https://github.com/acpica/acpica/commit/e81cedad Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki include/acpi/acpixf.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2785ce8d0da1cac9d8f78615e116cf929e9a9123 Author: Bob Moore Date: Tue Dec 29 14:04:19 2015 +0800 ACPICA: Add per-table execution of module-level code ACPICA commit 071eff738c59eda1792ac24b3b688b61691d7e7c Execute any module-level code after each ACPI table (DSDT or SSDT) is loaded into the namespace (rather than after all AML tables have been loaded). This matches the behavior of other ACPI implementations and is required to support BIOS code that depends on this behavior. Link: https://github.com/acpica/acpica/commit/071eff73 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/nsload.c | 17 +++++++++++++++++ drivers/acpi/acpica/utxfinit.c | 8 +++++++- include/acpi/acpixf.h | 5 +++++ 3 files changed, 29 insertions(+), 1 deletion(-) commit 2247235379d9e9fa46f725a82e0c05ae96254007 Author: Bob Moore Date: Tue Dec 29 14:04:11 2015 +0800 ACPICA: Add "root node" case to the ACPI name repair code ACPICA commit 95b40b31aa8148629fbe5de0356725fc01298003 Special-case the namespace root node, it has an unusual name. This case can occur if there are errors during the execution of module-level code. Link: https://github.com/acpica/acpica/commit/95b40b31 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/utstring.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit d815346f7675e056d904fb3aad5a347e0bb58410 Author: Lv Zheng Date: Tue Dec 29 14:03:43 2015 +0800 ACPICA: Events: Introduce ACPI_REG_DISCONNECT invocation to acpi_ev_execute_reg_methods() ACPICA commit 1cf1a1e090f61f0c27f1dcf1905c7cc79a9c51c8 It is likely that we should synchronously invoke _REG(DISCONNECT) only when the acpi_remove_address_space_handler() is invoked because of dependencies. If it is invoked when the object is not referenced, problem may occur if the operation region fields accessed in _REG are no longer driven by any device driver. Noticed that _REG(CONNECT)/_REG(DISCONNECT) only mean to inform the AML of the handler availability, no return value is required for the caller. This patch only introduces ACPI_REG_DISCONNECT invaocation, but doesn't introduce a real change. Lv Zheng. Link: https://github.com/acpica/acpica/commit/1cf1a1e0 Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acevents.h | 4 ++-- drivers/acpi/acpica/aclocal.h | 1 + drivers/acpi/acpica/evregion.c | 26 +++++++++++++------------- drivers/acpi/acpica/evxfregn.c | 2 +- 4 files changed, 17 insertions(+), 16 deletions(-) commit efaed9be998b5ae0afb7458e057e5f4402b43fa0 Author: Lv Zheng Date: Tue Dec 29 14:03:08 2015 +0800 ACPICA: Events: Enhance acpi_ev_execute_reg_method() to ensure no _REG evaluations can happen during OS early boot stages ACPICA commit 31178590dde82368fdb0f6b0e466b6c0add96c57 We can ensure no early _REG evaluations by ensuring the following rules in acpi_ev_execute_reg_method(): 1. If an address space handler is installed during early stage, _REG(CONNECT) evaluations are blocked. This is achieved using acpi_gbl_reg_methods_enabled which is renamed from acpi_gbl_reg_methods_executed. 2. If _REG(CONNECT) has never been evalauted for the region object, _REG(DISCONNECT) evaluations are blocked. This is achieved by a new region object flag: AOPOBJ_REG_CONNECTED. Note that, after applying this patch, we can ensure _REG(DISCONNECT) is always paired to _REG(CONNECT). Lv Zheng Link: https://github.com/acpica/acpica/commit/31178590 Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acglobal.h | 2 +- drivers/acpi/acpica/acobject.h | 7 ++++--- drivers/acpi/acpica/evregion.c | 25 ++++++++++++++++++++++--- drivers/acpi/acpica/evxfregn.c | 33 --------------------------------- drivers/acpi/acpica/excreate.c | 3 ++- drivers/acpi/acpica/utinit.c | 1 - drivers/acpi/acpica/utxfinit.c | 1 + 7 files changed, 30 insertions(+), 42 deletions(-) commit 849c25719ac6acc7420515c7b6324f4248a13790 Author: Lv Zheng Date: Tue Dec 29 14:02:58 2015 +0800 ACPICA: Events: Split acpi_ev_associate_reg_method() from region initialization code ACPICA commit 87c85610250ff7141a84507f68dbc1e00f2936db This patch introduces a new region initialization function acpi_ev_associate_reg_method(), which is invoked to associate the _REG method to its related region object. Region object's default value assignments are also sorted by cleaning up the code using this new function. Lv Zheng. Link: https://github.com/acpica/acpica/commit/87c85610 Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acevents.h | 2 ++ drivers/acpi/acpica/evregion.c | 46 ++++++++++++++++++++++++++++++++++++++++++ drivers/acpi/acpica/evrgnini.c | 30 ++------------------------- drivers/acpi/acpica/excreate.c | 6 +++++- 4 files changed, 55 insertions(+), 29 deletions(-) commit 1d65d9a7b642b8d1eb201830e0c1cae6231b5c51 Author: Lv Zheng Date: Tue Dec 29 14:02:50 2015 +0800 ACPICA: Events: Fix an issue that region object is re-attached to another scope when it is already attached ACPICA commit 6ebcb24d3225b6c7715a3ce061c327b4c3a6b76e The logic in acpi_ev_attach_region() is not correct, it can break address space handler link. This patch fixes this problem. But be aware that this fix must be applied along with a region object race issue fix. Lv Zheng. Link: https://github.com/acpica/acpica/commit/6ebcb24d Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/evregion.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit 2e1beaf6a91998ad82e11a4c5a7b55b59396983b Author: Lv Zheng Date: Tue Dec 29 14:02:18 2015 +0800 ACPICA: Utilities: Reorder initialization code ACPICA commit 3894fa9d071343e6ebc7ea480255fa4f27a290be This patch re-orders initialization code in acpi_enable_subsystem() so that all hardware reduced stuffs can be collected together. Note this patch contains code from the following 2 ACPICA upstream commits so that the changes can be made clearer for the reviewers: https://github.com/acpica/acpica/commit/071eff73 https://github.com/acpica/acpica/commit/3894fa9d And additional change to remove the global variable and unused code fragments due to the test result. Lv Zheng. Link: https://github.com/acpica/acpica/commit/3894fa9d Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/utxfinit.c | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) commit aa6abd2be1cc7fa2593c8377f78420dec0a5d7a5 Author: Lv Zheng Date: Tue Dec 29 14:02:08 2015 +0800 ACPICA: Events: Uses common_notify for address space handlers ACPICA commit 5ea0fb75fdf1aa7c0aba067dfa4d5dc3a9279461 The address space handlers can be attached to not only Device but also Processor/thermal_zone objects, so it is better to use their common class 'CommonNotify' instead. Lv Zheng. Link: https://github.com/acpica/acpica/commit/5ea0fb75 Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/dbdisply.c | 6 +++--- drivers/acpi/acpica/evhandler.c | 12 +++++++----- drivers/acpi/acpica/evrgnini.c | 10 +--------- drivers/acpi/acpica/evxfregn.c | 4 ++-- 4 files changed, 13 insertions(+), 19 deletions(-) commit f31a99cefd05f798eee8b592e22175ff3fe1876b Author: Lv Zheng Date: Tue Dec 29 14:02:00 2015 +0800 ACPICA: Events: Deploys acpi_ev_find_region_handler() ACPICA commit b916a0a0ae9e81db1a85523c63ec6aa32d5c70c8 There are code fragments that can be substituted by acpi_ev_find_region_handler(). This patch cleans up these code fragments. Lv Zheng. Link: https://github.com/acpica/acpica/commit/b916a0a0 Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acevents.h | 5 +++ drivers/acpi/acpica/dbdisply.c | 30 ++++++++--------- drivers/acpi/acpica/evhandler.c | 58 ++++++++++++++------------------ drivers/acpi/acpica/evrgnini.c | 73 +++++++++++++++++------------------------ 4 files changed, 75 insertions(+), 91 deletions(-) commit 7b73806485ada16059ecc1851793dbe865181c53 Author: Bob Moore Date: Tue Dec 29 14:01:53 2015 +0800 ACPICA: Cleanup code related to the per-table module level improvement ACPICA commit 071eff738c59eda1792ac24b3b688b61691d7e7c This patch collects cleanups from per-table module level improvement. By splitting this patch from that commit, we can make per-table module level improvement clearer for the revewers. This is a no-op change. Link: https://github.com/acpica/acpica/commit/071eff73 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acglobal.h | 1 + drivers/acpi/acpica/evhandler.c | 113 +++++++++++++++++++++++++--------------- drivers/acpi/acpica/evregion.c | 6 +++ drivers/acpi/acpica/evrgnini.c | 2 +- drivers/acpi/acpica/exdump.c | 6 ++- drivers/acpi/acpica/utxfinit.c | 7 +++ 6 files changed, 91 insertions(+), 44 deletions(-) commit 3c5d3d2543b1c541b601af27998175c3ea8bb617 Author: Bob Moore Date: Tue Dec 29 14:01:46 2015 +0800 ACPICA: Update for CondRefOf and RefOf operators ACPICA commit 725c094f1a7a2ae28e623ee77be400af1c36b180 The SuperName parameters for these operators were incorrect. This represents two problems in the ACPI specification itself. Link: https://github.com/acpica/acpica/commit/725c094f Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acopcode.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f70008d368b6b5d6c35ecfd0615e1ad119c51aa0 Author: Bob Moore Date: Tue Dec 29 14:00:28 2015 +0800 ACPICA: Update internal #defines for ObjectType operator. No functional change ACPICA commit 5923a9be36b8cb1b62afa89fe217783c04c92ad3 To improve readability. Rename all *_TYPE_* defines related to ObjectType to *_OBJECT_TYPE_* Link: https://github.com/acpica/acpica/commit/5923a9be Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acopcode.h | 4 ++-- drivers/acpi/acpica/amlcode.h | 2 +- drivers/acpi/acpica/exoparg1.c | 2 +- drivers/acpi/acpica/psopcode.c | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) commit cca7a6ea0bcf20548369e73817eeb83118bc5604 Author: Bob Moore Date: Tue Dec 29 14:00:21 2015 +0800 ACPICA: Update parameter type for ObjectType operator ACPICA commit 67953304a34944548f2fa53a4b0786a5db0ca2ea The grammar for this operator changed in ACPI 5.0A, but it was not necessary to update the interpreter/parser until now. The UserTerm (method invocation) element was removed. Previously a SuperName, the lone argument now requires a new ARGP_ type. Link: https://github.com/acpica/acpica/commit/67953304 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acopcode.h | 2 +- drivers/acpi/acpica/amlcode.h | 3 ++- drivers/acpi/acpica/psargs.c | 5 +++-- 3 files changed, 6 insertions(+), 4 deletions(-) commit ae90fbf562d733a392c7a0ffefe1e09b5a31c99c Author: Bob Moore Date: Tue Dec 29 14:00:14 2015 +0800 ACPICA: Parser: Fix for SuperName method invocation ACPICA commit 4b86d1046d06e462dae83ebcd5a66cc132a08f8f SuperName parameters that are in fact control method invocations were not handled correctly by the parser. This change fixes the problem by identifying these properly as method invocations. This affects about 14 different ASL operators that contain SuperName parameters. ACPICA BZ 1002. Link: https://github.com/acpica/acpica/commit/4b86d104 Link: https://bugs.acpica.org/show_bug.cgi?id=1002 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/psargs.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 89438f96f2c6d31e1d7594714475c582afe03329 Author: Bob Moore Date: Tue Dec 29 14:00:07 2015 +0800 ACPICA: Parser: Add constants for internal namepath function ACPICA commit b216e39fe85feee955d29fe0a7190dd811e181ea Add true/false constants for the "PossibleMethodCall" parameter for acpi_ps_get_next_namepath. Link: https://github.com/acpica/acpica/commit/b216e39f Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acparser.h | 8 +++++++- drivers/acpi/acpica/psargs.c | 4 ++-- drivers/acpi/acpica/psloop.c | 8 ++++---- 3 files changed, 13 insertions(+), 7 deletions(-) commit 8d0b5b788f9e80707ea7dd5880d74227e6620d09 Author: Bob Moore Date: Tue Dec 29 14:00:00 2015 +0800 ACPICA: iasl/Disassembler: Support ASL ElseIf operator ACPICA commit 918a840d27d620942e0ecb69de320bb71ea86c5a ElseIf is a macro that resolves to an Else..If in the AML byte code. This support merges an Else followed immediately by an If to an ASL ElseIf operator. Simplifies decoded ASL, especially for large Switch statements. This patch only applies to iasl, and is no-op for Linux kernel. Link: https://github.com/acpica/acpica/commit/918a840d Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/aclocal.h | 1 + 1 file changed, 1 insertion(+) commit a6a0432e22280fe824e4d7f6a4e4a7b7860b535e Author: Bob Moore Date: Tue Dec 29 13:59:34 2015 +0800 ACPICA: Add new exception code, AE_IO_ERROR ACPICA commit dcaeaddfc11544f03e6323be4ac8ff8a1e014956 The intent for this exception is for low-level I/O operations, especially Clib functions. Link: https://github.com/acpica/acpica/commit/dcaeaddf Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki include/acpi/acexcep.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit adeb79dd6ea2e6dbee3e3b907109b22fb9d2f3fd Author: Colin Ian King Date: Tue Dec 29 13:59:27 2015 +0800 ACPICA: Tools: Add spacing and missing options in acpibin tool ACPICA commit e7c8ffbbef3f7ce340e012ae4db63ea16cd09714 The -e option is missing from the acpibin help options, so add this. Also, there should be spaces between the filenames for the -c and -d optios, so add this and expand the field size from 18 to 20 characters in the ACPI_OPTION macro. Link: https://github.com/acpica/acpica/commit/e7c8ffbb Signed-off-by: Colin Ian King Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acapps.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5920380c673367a1f348a75aadd45a65c40933f6 Author: Bob Moore Date: Tue Dec 29 13:58:27 2015 +0800 ACPICA: getopt: Comment update, no functional change ACPICA commit 0d784a90bc3aac75227c4459c3553de18b9ebe7a Document one of the option string operators. Link: https://github.com/acpica/acpica/commit/0d784a90 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki tools/power/acpi/common/getopt.c | 1 + 1 file changed, 1 insertion(+) commit ee387409ca7d74d83a26915a367bf9b033e29803 Author: Lv Zheng Date: Tue Dec 29 13:58:02 2015 +0800 ACPICA: Namespace: Add String -> ObjectReference conversion support ACPICA commit 80e60d72959bb51c5d08c8500d978607a42ed81d BIOS developers may accidently put the quotes around the name strings, which converts the object references in the packages indicated by the name strings into the data objects (strings). Such kind of error has been seen in _DEP control methods on some platforms. This patch implements a workaround to correct it. Reported by Bastien Nocera. Fixed by Lv Zheng. Link: https://github.com/acpica/acpica/commit/80e60d72 Reference: https://bugzilla.kernel.org/show_bug.cgi?id=106231 Reported-and-tested-by: Bastien Nocera Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acnamesp.h | 6 ++++ drivers/acpi/acpica/nsconvert.c | 75 +++++++++++++++++++++++++++++++++++++++++ drivers/acpi/acpica/nsrepair.c | 9 ++++- 3 files changed, 89 insertions(+), 1 deletion(-) commit 4debda539af12ebc55fc99102dca2861e5f325fd Author: Lv Zheng Date: Tue Dec 29 13:57:38 2015 +0800 ACPICA: Namespace: Add scope information to the simple object repair mechanism ACPICA commit 51cbd324420ca5e381cb2c57ce95139053518a35 The acpi_object_converter callbacks are lack in scope information to convert name_string. This patch fixes this issue by passing the evaluation method/object node to the converter callbacks. Lv Zheng. Link: https://github.com/acpica/acpica/commit/51cbd324 Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/aclocal.h | 3 ++- drivers/acpi/acpica/acnamesp.h | 6 ++++-- drivers/acpi/acpica/nsconvert.c | 12 ++++++++---- drivers/acpi/acpica/nsrepair.c | 4 ++-- 4 files changed, 16 insertions(+), 9 deletions(-) commit 50da9851d009a0a0d10064e73dd6704593333c72 Author: Bob Moore Date: Tue Dec 29 13:57:14 2015 +0800 ACPICA: Update for output of the Debug Object ACPICA commit b01414f5a822d0879aa9eba91541a21e7e501142 Improve output for the case of an Index() that refers to a Package element that has not been initialized. Link: https://github.com/acpica/acpica/commit/b01414f5 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/exdebug.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 973da572820c1c85ae828c2e090e9f902546ba96 Author: Bob Moore Date: Tue Dec 29 13:57:07 2015 +0800 ACPICA: Debug object: Fix output for a NULL object ACPICA commit e4414f067c726ef746dac990c0bae7f433045843 Was broken by addition of "null string" feature to emit simple blank lines. Link: https://github.com/acpica/acpica/commit/e4414f06 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/exdebug.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 5e568304a2971332bb7b80fd6cf2a0f77e487d32 Author: Bob Moore Date: Tue Dec 29 13:57:01 2015 +0800 ACPICA: Debug Object: Cleanup output ACPICA commit 05492c4a7d1e106eb871a5e1357ed564d25740e5 1) Make the timer value output optional 2) Allow empty lines via null string or simple newline 3) No need for the object type name for strings and integers 4) Miscellaneous cleanup of output Link: https://github.com/acpica/acpica/commit/05492c4a Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/exdebug.c | 67 ++++++++++++++++++++++++++++++------------- include/acpi/acpixf.h | 4 +++ 2 files changed, 51 insertions(+), 20 deletions(-) commit 7910617efb5188c0b8dedab1857b12d078957a79 Author: Bob Moore Date: Tue Dec 29 13:56:53 2015 +0800 ACPICA: Concatenate operator: Add extensions to support all ACPI objects ACPICA commit 3420c1f5e6c6dd4fe51be4d98da69b3197d608df Emits strings for all the object types besides int/str/buf. This simplifies and extends the usefulness of the Printf macros. Link: https://github.com/acpica/acpica/commit/3420c1f5 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acopcode.h | 2 +- drivers/acpi/acpica/exmisc.c | 41 ++++++++++++++++++++++++++++++++++++----- 2 files changed, 37 insertions(+), 6 deletions(-) commit 3727ec2a03d3581b2e0d326bedfb92706a9b4d0f Author: Bob Moore Date: Tue Dec 29 13:56:46 2015 +0800 ACPICA: acpiexec/acpinames: Update for error checking macros ACPICA commit 5bdfb4f43f4d315d23b31b39bac5a0b1ca420c2b Standardize naming, deploy in common header. Link: https://github.com/acpica/acpica/commit/5bdfb4f4 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acapps.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit c6c6069cad37952da71d2a24eb6ee0a87074b35c Author: Bob Moore Date: Tue Dec 29 13:56:14 2015 +0800 ACPICA: Add comment explaining _SUB removal ACPICA commit 81a89968f83bfc3b1d0f0f80f2da08ea69646053 Adds a lengthy comment to acpi_get_object_info explaining the removal of _SUB and why no complex methods can be added ever to this interface. Link: https://github.com/acpica/acpica/commit/81a89968 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/nsxfname.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 07cb390f43e7fd9daceb6a1e223a82c832f5f9ab Author: Bob Moore Date: Tue Dec 29 13:55:47 2015 +0800 ACPICA: Revert "acpi_get_object_info: Add support for ACPI 5.0 _SUB method." ACPICA commit e4743959b59ad93eab7310adf756adc930be0ddb This reverts commit 8e7a8753827660c3dd1f571f3185610402b756f0. The _SUB method was found to be problematic for this interface because some implementations use control methods. Therefore, it is being removed. Operations cannot be used because this interface is called during the device discovery scan and the region handlers are not fully installed at that time. Link: https://github.com/acpica/acpica/commit/e4743959 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acutils.h | 4 --- drivers/acpi/acpica/dbdisply.c | 48 +++++++++++------------------- drivers/acpi/acpica/nsxfname.c | 29 ++++-------------- drivers/acpi/acpica/utids.c | 67 ------------------------------------------ include/acpi/actypes.h | 6 ++-- 5 files changed, 24 insertions(+), 130 deletions(-) commit 4d16ca17483440376344abf4d7110ec7d47ed54b Author: Markus Elfring Date: Tue Dec 29 13:55:27 2015 +0800 ACPICA: Debugger: Remove some unecessary NULL checks ACPICA commit 36fcc1b98def3fb6e20cf5e877ffc3c1592d0140 Local strupr function already checks for NULL pointers. Original linux patch submitted by: Markus Elfring Link: https://github.com/acpica/acpica/commit/36fcc1b9 Signed-off-by: Markus Elfring Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/dbcmds.c | 9 ++------- drivers/acpi/acpica/dbinput.c | 4 +--- 2 files changed, 3 insertions(+), 10 deletions(-) commit 395ec731969c4bb0cc379a64809a5adab51126dd Author: Bob Moore Date: Tue Dec 29 13:55:05 2015 +0800 ACPICA: iasl/acpiexec: Update input file handling and verification ACPICA commit 3a6f2a516dd35a4daacbc5b5144d1db763ff2cb0 Improve and cleanup verification of ACPI tables within input files. Share more code between the disassembler and acpiexec. This patch only affects application debugger commands, thus it is a no-op chage for Linux kernel. Link: https://github.com/acpica/acpica/commit/3a6f2a51 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acapps.h | 10 +++++++--- drivers/acpi/acpica/dbinput.c | 7 +++---- drivers/acpi/acpica/exmisc.c | 4 ++-- drivers/acpi/acpica/tbutils.c | 8 +------- 4 files changed, 13 insertions(+), 16 deletions(-) commit 2ba7379b5abcaf2e0e7ece01b1e0c925e0057cd4 Author: Bob Moore Date: Tue Dec 29 13:54:58 2015 +0800 ACPICA: Disassembler/tools: Support for multiple ACPI tables in one file ACPICA commit 5be7dc4d0d69b2953d156f5bc4d3e8a65a390837 Matches the support in iASL and acpi_exec. Link: https://github.com/acpica/acpica/commit/5be7dc4d Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/Makefile | 1 - drivers/acpi/acpica/acapps.h | 39 ++--- drivers/acpi/acpica/acdebug.h | 5 +- drivers/acpi/acpica/aclocal.h | 7 + drivers/acpi/acpica/acutils.h | 12 -- drivers/acpi/acpica/dbfileio.c | 123 ++------------ drivers/acpi/acpica/dbinput.c | 19 ++- drivers/acpi/acpica/tbxfload.c | 2 +- drivers/acpi/acpica/utfileio.c | 359 ----------------------------------------- 9 files changed, 53 insertions(+), 514 deletions(-) commit 675dfa0af8414958a11645eb53413f8e5af2f142 Author: Bob Moore Date: Tue Dec 29 13:54:51 2015 +0800 ACPICA: acpiexec: Add support for AML files containing multiple tables ACPICA commit 301f16e4037275888f65b88aec7231c1cd64339f Add support for multi-AML-table files that originate from either acpixtract or iASL. Link: https://github.com/acpica/acpica/commit/301f16e4 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acutils.h | 4 ++++ drivers/acpi/acpica/utfileio.c | 23 +++++++++++++++++++++++ 2 files changed, 27 insertions(+) commit 5df2e3ed04862d9e6465b3b2748ef747d31c4bbc Author: Bob Moore Date: Tue Dec 29 13:54:44 2015 +0800 ACPICA: Split interpreter tracing functions to a new file ACPICA commit a3f85a7d26a52ee0d9103feb4fbec8d7b6ba4c11 Split out functions from exdebug.c to extrace.c Link: https://github.com/acpica/acpica/commit/a3f85a7d Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/Makefile | 3 +- drivers/acpi/acpica/exdebug.c | 325 ------------------------------------ drivers/acpi/acpica/extrace.c | 377 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 379 insertions(+), 326 deletions(-) commit 1fad87385e7e82f656fb661aef0f841e42991974 Author: Bob Moore Date: Tue Dec 29 13:54:36 2015 +0800 ACPICA: Core: Major update for code formatting, no functional changes ACPICA commit dfa394471f6c01b2ee9433dbc143ec70cb9bca72 Mostly indentation inconsistencies across the code. Split some long lines, etc. Link: https://github.com/acpica/acpica/commit/dfa39447 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/dbstats.c | 1 + drivers/acpi/acpica/dbutils.c | 1 + drivers/acpi/acpica/dsargs.c | 7 +- drivers/acpi/acpica/dsdebug.c | 5 +- drivers/acpi/acpica/dsfield.c | 39 ++++++----- drivers/acpi/acpica/dsinit.c | 2 +- drivers/acpi/acpica/dsmethod.c | 24 ++++--- drivers/acpi/acpica/dsmthdat.c | 20 +++--- drivers/acpi/acpica/dsobject.c | 19 ++--- drivers/acpi/acpica/dsopcode.c | 21 +++--- drivers/acpi/acpica/dsutils.c | 29 ++++---- drivers/acpi/acpica/dswexec.c | 19 ++--- drivers/acpi/acpica/dswload.c | 10 +-- drivers/acpi/acpica/dswload2.c | 10 +-- drivers/acpi/acpica/dswscope.c | 1 + drivers/acpi/acpica/evgpe.c | 2 +- drivers/acpi/acpica/evgpeblk.c | 1 + drivers/acpi/acpica/evgpeutil.c | 1 + drivers/acpi/acpica/evmisc.c | 5 +- drivers/acpi/acpica/evxface.c | 9 ++- drivers/acpi/acpica/evxfregn.c | 1 + drivers/acpi/acpica/exconfig.c | 8 +-- drivers/acpi/acpica/exconvrt.c | 9 ++- drivers/acpi/acpica/excreate.c | 10 +-- drivers/acpi/acpica/exdebug.c | 1 + drivers/acpi/acpica/exfield.c | 74 +++++++++++--------- drivers/acpi/acpica/exfldio.c | 35 ++++++---- drivers/acpi/acpica/exmisc.c | 10 +-- drivers/acpi/acpica/exnames.c | 4 +- drivers/acpi/acpica/exoparg1.c | 31 ++++++--- drivers/acpi/acpica/exoparg2.c | 12 ++-- drivers/acpi/acpica/exoparg3.c | 19 ++--- drivers/acpi/acpica/exoparg6.c | 1 + drivers/acpi/acpica/exprep.c | 25 ++++--- drivers/acpi/acpica/exregion.c | 13 ++-- drivers/acpi/acpica/exresnte.c | 2 +- drivers/acpi/acpica/exresolv.c | 10 +-- drivers/acpi/acpica/exresop.c | 43 +++++++----- drivers/acpi/acpica/exstore.c | 17 +++-- drivers/acpi/acpica/exstorob.c | 7 +- drivers/acpi/acpica/exsystem.c | 6 +- drivers/acpi/acpica/exutils.c | 7 +- drivers/acpi/acpica/hwesleep.c | 4 +- drivers/acpi/acpica/hwgpe.c | 7 +- drivers/acpi/acpica/hwsleep.c | 4 +- drivers/acpi/acpica/hwxfsleep.c | 1 + drivers/acpi/acpica/nsconvert.c | 18 +++-- drivers/acpi/acpica/nsdump.c | 3 + drivers/acpi/acpica/nsload.c | 1 - drivers/acpi/acpica/nsnames.c | 6 +- drivers/acpi/acpica/nsparse.c | 5 +- drivers/acpi/acpica/nsprepkg.c | 10 +-- drivers/acpi/acpica/nsrepair.c | 6 +- drivers/acpi/acpica/nsrepair2.c | 22 +++--- drivers/acpi/acpica/nsutils.c | 8 ++- drivers/acpi/acpica/nsxfeval.c | 4 +- drivers/acpi/acpica/nsxfname.c | 1 + drivers/acpi/acpica/nsxfobj.c | 6 +- drivers/acpi/acpica/psargs.c | 1 + drivers/acpi/acpica/psloop.c | 4 +- drivers/acpi/acpica/psparse.c | 8 +-- drivers/acpi/acpica/psutils.c | 4 +- drivers/acpi/acpica/pswalk.c | 1 + drivers/acpi/acpica/rsaddr.c | 4 +- drivers/acpi/acpica/rscalc.c | 81 +++++++++++----------- drivers/acpi/acpica/rscreate.c | 32 ++++----- drivers/acpi/acpica/rsdump.c | 6 ++ drivers/acpi/acpica/rslist.c | 9 +-- drivers/acpi/acpica/rsmisc.c | 22 +++--- drivers/acpi/acpica/rsutils.c | 42 ++++++----- drivers/acpi/acpica/rsxface.c | 2 +- drivers/acpi/acpica/tbdata.c | 1 + drivers/acpi/acpica/tbinstal.c | 4 +- drivers/acpi/acpica/tbprint.c | 1 + drivers/acpi/acpica/tbutils.c | 2 +- drivers/acpi/acpica/tbxfload.c | 1 + drivers/acpi/acpica/utcopy.c | 23 +++--- drivers/acpi/acpica/utdecode.c | 3 +- drivers/acpi/acpica/utdelete.c | 5 +- drivers/acpi/acpica/uterror.c | 10 +-- drivers/acpi/acpica/utfileio.c | 2 + drivers/acpi/acpica/utmath.c | 10 +-- drivers/acpi/acpica/utmisc.c | 11 +-- drivers/acpi/acpica/utmutex.c | 5 +- drivers/acpi/acpica/utnonansi.c | 4 +- drivers/acpi/acpica/utobject.c | 20 +++--- drivers/acpi/acpica/utosi.c | 11 +-- drivers/acpi/acpica/utownerid.c | 12 ++-- drivers/acpi/acpica/utpredef.c | 6 +- drivers/acpi/acpica/utprint.c | 15 ++-- drivers/acpi/acpica/utresrc.c | 8 +-- drivers/acpi/acpica/utstate.c | 3 + drivers/acpi/acpica/utstring.c | 1 + drivers/acpi/acpica/uttrack.c | 50 ++++++------- drivers/acpi/acpica/utxface.c | 2 - drivers/acpi/acpica/utxferror.c | 1 + drivers/acpi/acpica/utxfmutex.c | 6 +- tools/power/acpi/common/getopt.c | 1 + .../acpi/os_specific/service_layers/oslibcfs.c | 3 + tools/power/acpi/tools/acpidump/apfiles.c | 13 ++++ 100 files changed, 634 insertions(+), 493 deletions(-) commit 427cc61a4486fa80eccaad2bdfcc50cfd1b46625 Author: Insu Yun Date: Tue Dec 29 16:21:15 2015 -0500 sata_sx4: correctly handling failed allocation Since kzalloc can be failed in memory pressure, return error when failed. Signed-off-by: Insu Yun Signed-off-by: Tejun Heo drivers/ata/sata_sx4.c | 2 ++ 1 file changed, 2 insertions(+) commit cd162b35a29900b7e7a595c5ea70066cd5d47aee Author: Bob Moore Date: Tue Dec 29 13:54:28 2015 +0800 ACPICA: exmutex: General cleanup, restructured some code ACPICA commit c2a7d000b6be34313b1c50c8a718df16113f0f32 Should be no functional change. Link: https://github.com/acpica/acpica/commit/c2a7d000 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/exmutex.c | 80 +++++++++++++++++++++++++++++++------------ 1 file changed, 59 insertions(+), 21 deletions(-) commit c118abc55464fee761be3ea32b4d90db3a9d1bbe Author: LABBE Corentin Date: Tue Dec 29 13:54:04 2015 +0800 ACPICA: Add "const" to some functions that return fixed strings ACPICA commit 28645f8a113f346c8db103a4f7565fcba88c746f Most of the "get_name" - style functions can return "const char *" with no ill side-effects. Original linux patch from LABBE Corentin and backported to ACPICA. Link: https://github.com/acpica/acpica/commit/28645f8a Signed-off-by: LABBE Corentin Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acutils.h | 14 +++++++------- drivers/acpi/acpica/nsxfname.c | 2 +- drivers/acpi/acpica/utdecode.c | 29 +++++++++++++---------------- drivers/acpi/acpica/uthex.c | 2 +- 4 files changed, 22 insertions(+), 25 deletions(-) commit 33d3a2abbd7afd51d8dcf1e35756e13e6b89f2cb Author: David E. Box Date: Tue Dec 29 13:53:57 2015 +0800 ACPICA: Fix SyncLevel support interaction with method auto-serialization ACPICA commit 253e3c03efc1a495d2aa61eee09ab1d0842a3dce The control method auto-serialization can interfere with existing ASL code that makes use of Mutex/Method SyncLevel support. This change makes the auto-serialization transparent to the SyncLevel support and management. David Box. Link: https://github.com/acpica/acpica/commit/253e3c03 Signed-off-by: David E. Box Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/dsmethod.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit 0e166e4f67f544370328bf879694f7ed116c2563 Author: Lv Zheng Date: Tue Dec 29 13:53:50 2015 +0800 ACPICA: Debugger: reduce old external path format ACPICA commit 75c0da9e796bdf9bdd46d75f028a3e1779903214 In the error logs and debugger outputs, use new external path format that does not contain a trailing underscore. This patch takes care of acpi_ns_get_external_pathname() invocations, chaning them into acpi_ns_get_normalized_pathname(TRUE) where possible. Along with some error log fixes, the following debugger commands are fixed: resources, handlers, paths. Lv Zheng. Link: https://github.com/acpica/acpica/commit/75c0da9e Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/dbcmds.c | 2 +- drivers/acpi/acpica/dbdisply.c | 2 +- drivers/acpi/acpica/dbnames.c | 2 +- drivers/acpi/acpica/dbtest.c | 2 +- drivers/acpi/acpica/nsdump.c | 2 +- drivers/acpi/acpica/nseval.c | 2 +- drivers/acpi/acpica/nsinit.c | 3 ++- drivers/acpi/acpica/nssearch.c | 2 +- drivers/acpi/acpica/utaddress.c | 5 +++-- 9 files changed, 12 insertions(+), 10 deletions(-) commit ac9b64a046b6ee6a80d5985770432c2735085578 Author: Lv Zheng Date: Tue Dec 29 13:52:51 2015 +0800 ACPICA: Namespace: Fix wrong error log ACPICA commit 20228e39e125d92f9d80c6e07d3767b225d0536e The Info->Node in acpi_ns_init_one_device() may not be initialized. Even it is initialized, the redundant "._INI" can be seen for this log entry. This patch fixes this issue by using device_node instead. Lv Zheng. Link: https://github.com/acpica/acpica/commit/20228e39 Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/nsinit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a59b679ab85635737947310323f2f2bcfa0664a7 Author: Prarit Bhargava Date: Tue Dec 29 13:52:41 2015 +0800 ACPICA: acpi_get_sleep_type_data: Reduce warnings ACPICA commit 7bb77313091e52a846df4c9c2bea90be31bfb9d8 Eliminate warnings for "not found" _Sx errors, since these are optional. Original NOT_FOUND status is still returned. Original changes by Prarit Bhargava. ACPICA BZ 1208. Link: https://github.com/acpica/acpica/commit/7bb77313 Link: https://bugs.acpica.org/show_bug.cgi?id=1208 Signed-off-by: Prarit Bhargava Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/hwxface.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) commit 5431b6543fb45f6c61dbb1394c918f3bc5acefae Author: Lv Zheng Date: Tue Dec 29 13:52:32 2015 +0800 ACPICA: Linuxize: reduce divergences for 20151218 release The patch reduces source code differences between the Linux kernel and the ACPICA upstream so that the linuxized ACPICA 20151218 release can be applied with reduced human intervention. The pscode.c has already been out of sync for months, and it becomes more and more difficult to merge pscode.c changes, so instead of update the affected lines of pscode.c, this patch synchronizes entire pscode.c file. Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/dsfield.c | 8 +- drivers/acpi/acpica/dsutils.c | 4 +- drivers/acpi/acpica/exconvrt.c | 4 +- drivers/acpi/acpica/excreate.c | 5 +- drivers/acpi/acpica/exfield.c | 2 +- drivers/acpi/acpica/exmutex.c | 2 +- drivers/acpi/acpica/exoparg3.c | 6 +- drivers/acpi/acpica/hwgpe.c | 1 + drivers/acpi/acpica/nsrepair2.c | 2 +- drivers/acpi/acpica/psopcode.c | 604 +++++++++++++++++++------------------- drivers/acpi/acpica/rsmisc.c | 6 +- drivers/acpi/acpica/utobject.c | 4 +- include/acpi/platform/aclinuxex.h | 1 + 13 files changed, 325 insertions(+), 324 deletions(-) commit b17629dbf72d0718e88190d7f0a1d54be044799c Merge: 74bf8ef 59adb39 Author: Rafael J. Wysocki Date: Fri Jan 1 03:26:26 2016 +0100 Merge branch 'acpi-debug' into acpica commit 33ada67da352e138b6dbb372dccad6c3f13b15b2 Author: Christophe RICARD Date: Wed Dec 23 23:25:35 2015 +0100 ACPI / spi: attach GPIO IRQ from ACPI description to SPI device spi->irq was ignoring GpioInt property setting it to -1. acpi_dev_gpio_irq_get returns and configure the slave IRQ according to the ACPI slave node description. It is now inline with devicetree behavior. Acked-by: Mark Brown Signed-off-by: Christophe Ricard Acked-by: Mika Westerberg Signed-off-by: Rafael J. Wysocki drivers/spi/spi.c | 3 +++ 1 file changed, 3 insertions(+) commit 52044723cd27aed6dad655a3bdf6142a8239ce74 Author: Christophe RICARD Date: Wed Dec 23 23:25:34 2015 +0100 ACPI / gpio: Add irq_type when a GPIO is used as an interrupt When a GPIO is used as an interrupt in ACPI, the irq_type was not available for device driver. Make available polarity and triggering information in acpi_find_gpio by renaming acpi_gpio_info field active_low to polarity and adding triggering field (edge/level). For sanity, in gpiolib.c replace info.active_low by "info.polarity == GPIO_ACTIVE_LOW". Set the irq_type if necessary in acpi_dev_gpio_irq_get. Signed-off-by: Christophe Ricard Acked-by: Mika Westerberg Signed-off-by: Rafael J. Wysocki drivers/gpio/gpiolib-acpi.c | 33 +++++++++++++++++++++++++++------ drivers/gpio/gpiolib.c | 4 ++-- drivers/gpio/gpiolib.h | 3 ++- 3 files changed, 31 insertions(+), 9 deletions(-) commit 55a93417c27c6ad1022d5f1121004c494735e8fa Author: Christophe RICARD Date: Wed Dec 23 23:25:33 2015 +0100 ACPI: Rename acpi_gsi_get_irq_type to acpi_dev_get_irq_type and export symbol acpi_gsi_get_irq_type could be use out of GSI purpose. Rename and make it available as a resource function. Acked-by: Mika Westerberg Signed-off-by: Christophe Ricard Signed-off-by: Rafael J. Wysocki drivers/acpi/gsi.c | 21 +-------------------- drivers/acpi/resource.c | 26 ++++++++++++++++++++++++++ include/linux/acpi.h | 1 + 3 files changed, 28 insertions(+), 20 deletions(-) commit 1980eb9bd7d733ce089f9b154c08c2c71fb1f2a7 Author: Jaedon Shin Date: Thu Nov 26 11:56:29 2015 +0900 ata: ahci_brcmstb: add support for MIPS-based platforms The BCM7xxx ARM-based and MIPS-based platforms share a similar hardware block for AHCI SATA3. This new compatible string, "brcm,bcm7425-ahci", may be used for most MIPS-based platforms of 40nm process technology. Signed-off-by: Jaedon Shin Tested-by: Florian Fainelli Acked-by: Brian Norris Signed-off-by: Tejun Heo Documentation/devicetree/bindings/ata/brcm,sata-brcmstb.txt | 4 +++- drivers/ata/Kconfig | 2 +- drivers/ata/ahci_brcmstb.c | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) commit 49eb5208220a9eef7529decbdefd95e4b94a928b Author: Aaron Lu Date: Wed Dec 30 13:11:24 2015 +0800 ACPI / video: Add a quirk to force acpi-video backlight on SAMSUNG 530U4E/540U4E The native interface on SAMSUNG 530U4E/540U4E doesn't work even though the firmware claims Win8 compatible while the acpi_video interface works, add a quirk for this. Link: https://bugzilla.kernel.org/show_bug.cgi?id=108971 Reported-and-tested-by: adam bk Signed-off-by: Aaron Lu Signed-off-by: Rafael J. Wysocki drivers/acpi/video_detect.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 4b4b3b20e8e645be103cf737827372f86479867a Author: Hans de Goede Date: Tue Dec 22 19:09:52 2015 +0100 ACPI / video: Add quirks for the Dell Vostro V131 The Dell Vostro V131 has an especially broken acpi-video implementation. The backlight control bits work, but when the brightness is changed via the acpi-video interface the backlight flickers annoyingly before settling at the new brightness, switching to using the native interface fixes the flickering so add a quirk for this (the vendor interface has the same problem). Brightness keypresses reported through the acpi-video-bus are also broken, they get reported one event delayed, so if you press the brightness-up hotkey on the keyboard nothing happens, then if you press brightness-down, the previous brightness-up event gets reported. Since the keypresses are also reported via wmi (if active) and via atkbd (when wmi is not active) add a quirk to simply filter out the delayed (broken) events. Reported-and-tested-by: Michał Kępień Signed-off-by: Hans de Goede Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_video.c | 25 +++++++++++++++++++++++++ drivers/acpi/video_detect.c | 8 ++++++++ 2 files changed, 33 insertions(+) commit 05bc59a079eaa6c38b049473fe62fab84d934802 Author: Hans de Goede Date: Tue Dec 22 19:09:51 2015 +0100 ACPI / video: Add a module option to disable the reporting of keypresses Add a module option to disable the reporting of keypresses, in some buggy firmware implementatinon, the reported events are wrong. E.g. they lag reality by one event in the case triggering the writing of this patch. In this case it is better to not forward these wrong events to userspace (esp.) when there is another source of the same events which is not buggy. Note this is only intended to work around implementations which send events which are plain wrong. In some cases we get double events, e.g. from both acpi-video and the atkbd driver, in this case acpi-video is considered the canonical source, and the events from the other source should be filtered (using e.g. /lib/udev/hwdb.d/60-keyboard.hwdb). Signed-off-by: Hans de Goede Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_video.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) commit 7714687a2b2d4afcfac8c3bcc99ace16efa98882 Author: Hans de Goede Date: Tue Dec 22 19:09:50 2015 +0100 thinkpad_acpi: Use acpi_video_handles_brightness_key_presses() Use the new acpi_video_handles_brightness_key_presses function to check if we should report brightness key-presses. This makes the code both easier to read and makes it properly report key-presses when acpi-video is not reporting them for reasons other then the backlight type being vendor. Signed-off-by: Hans de Goede Acked-by: Henrique de Moraes Holschuh Signed-off-by: Rafael J. Wysocki drivers/platform/x86/thinkpad_acpi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 61679c725553ccffd8b281955186410550bd1eaf Author: Hans de Goede Date: Tue Dec 22 19:09:49 2015 +0100 dell-wmi: Use acpi_video_handles_brightness_key_presses() Use the new acpi_video_handles_brightness_key_presses function to check if we should report brightness key-presses. This makes the code both easier to read and makes it properly report key-presses when acpi-video is not reporting them for reasons other then the backlight type being vendor. Signed-off-by: Hans de Goede Acked-by: Pali Rohár Signed-off-by: Rafael J. Wysocki drivers/platform/x86/dell-wmi.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 90b066b15eda028ed44299f01236f8576dd8551d Author: Hans de Goede Date: Tue Dec 22 19:09:48 2015 +0100 ACPI / video: Add a acpi_video_handles_brightness_key_presses() helper Several drivers want to know if the acpi-video is generating key-presses for brightness change hotkeys to avoid sending double key-events to userspace for these. Currently these driver use this construct for this: if (acpi_video_get_backlight_type() == acpi_backlight_vendor) report_brightness_key_event(); This indirect way of detecting if acpi-video is active does not make the code easier to understand, and in some cases it is wrong because just because the preferred type != vendor does not mean that acpi-video is actually listening for brightness events, e.g. there may be no acpi-video bus on the system at all. This commit adds a acpi_video_handles_brightness_key_presses() helper function, making the code needing this functionality both easier to read and more correct. Signed-off-by: Hans de Goede Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_video.c | 12 ++++++++++++ include/acpi/video.h | 6 ++++++ 2 files changed, 18 insertions(+) commit 37c5939136d7ce42b36c5d5b46f5272903a68433 Author: Sinan Kaya Date: Wed Dec 9 11:18:28 2015 -0500 ACPI, PCI, irq: remove interrupt number restriction The ACPI compiler uses the extended format when used interrupt numbers are greater than 15. The extended IRQ syntax is 32 bits according to the ACPI spec. The code supports parsing the extended interrupt numbers. However, due to used data structure type; the code silently truncates interrupt numbers greater than 256. Acked-by: Bjorn Helgaas Signed-off-by: Sinan Kaya Signed-off-by: Rafael J. Wysocki drivers/acpi/pci_link.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b5bd0269547105046f2236d9895bd5e3038cc8bc Author: Sinan Kaya Date: Wed Dec 9 11:18:27 2015 -0500 ACPI, PCI, irq: remove interrupt count restriction Code currently supports 256 maximum interrupts at this moment. The patch is reconfiguring the penalty array as a dynamic list to remove this limitation. A new penalty linklist has been added for all other interrupts greater than 16. If an IRQ is not found in the link list, an IRQ info structure will be dynamically allocated on the first access and will be placed on the list for further reuse. The list will grow by the number of supported interrupts in the ACPI table rather than having a 256 hard limitation. Acked-by: Bjorn Helgaas Signed-off-by: Sinan Kaya Signed-off-by: Rafael J. Wysocki drivers/acpi/pci_link.c | 136 ++++++++++++++++++++++++++++++++++++------------ 1 file changed, 102 insertions(+), 34 deletions(-) commit f6740c1899d2ee2c4c9ec5301d4b712d4e706a79 Author: Andy Shevchenko Date: Tue Dec 29 13:07:50 2015 +0200 device property: avoid allocations of 0 length Arrays can not have zero elements by definition of the unified device properties. If such property comes from outside we should not allow it to pass. Otherwise memory allocation on 0 length will return non-NULL value, which we currently don't check. Prevent memory allocations of 0 length. Signed-off-by: Andy Shevchenko Signed-off-by: Rafael J. Wysocki drivers/base/property.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 0fb5902f2f9ec7996a0846087f3e69165ea9ce1e Author: Heikki Krogerus Date: Tue Dec 29 13:07:49 2015 +0200 device property: the secondary fwnode needs to depend on the primary This fixes NULL pointer dereference when the primary fwnode handle does not exist, for example with PCI devices that do not have ACPI companion. Signed-off-by: Heikki Krogerus Signed-off-by: Andy Shevchenko Signed-off-by: Rafael J. Wysocki drivers/base/property.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit aace7367bf83aef7baa021c7bcc9d2e331b040aa Author: Andy Shevchenko Date: Tue Dec 29 13:07:48 2015 +0200 device property: add spaces to PROPERTY_ENTRY_STRING macro Just a style fix, no functional changes. Signed-off-by: Andy Shevchenko Signed-off-by: Rafael J. Wysocki include/linux/property.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d76eebfa175e86383324ad2bbaf472866950398b Author: Andrew Morton Date: Fri Jan 1 02:07:09 2016 +0100 include/linux/property.h: fix build issues with gcc-4.4.4 gcc-4.4.4 has problems with initialization of anonymous unions: drivers/mfd/intel-lpss-acpi.c:30: error: unknown field 'value' specified in initializer work around this by crafting the initializers in a manner which the compiler can handle. Signed-off-by: Andrew Morton Signed-off-by: Rafael J. Wysocki include/linux/property.h | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit 137d09f002df7d4e52513d75f8910945a6c1bb08 Author: Jaegeuk Kim Date: Thu Dec 31 15:02:16 2015 -0800 f2fs: introduce zombie list for fast shrinking extent trees This patch removes refcount, and instead, adds zombie_list to shrink directly without radix tree traverse. Signed-off-by: Jaegeuk Kim fs/f2fs/extent_cache.c | 49 +++++++++++++++++++++---------------------------- fs/f2fs/f2fs.h | 3 ++- 2 files changed, 23 insertions(+), 29 deletions(-) commit c00ba5548500a6f5dfd3c0e0300b338b584018ba Author: Jaegeuk Kim Date: Thu Dec 31 15:24:14 2015 -0800 f2fs: monitor zombie_tree count This patch adds an entry to show the number of zombie extent_tree. Signed-off-by: Jaegeuk Kim fs/f2fs/debug.c | 5 +++-- fs/f2fs/f2fs.h | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) commit c07f30ad68053181b3e8a0e65b0630e12e844f91 Merge: 7b22a77 9c982e8 Author: David S. Miller Date: Thu Dec 31 18:20:10 2015 -0500 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net commit 9e256c722fa4ac42bef9eb6e43bb7fe3436cca04 Merge: 82d0f8b c1c5864 Author: Michael Turquette Date: Thu Dec 31 15:17:39 2015 -0800 Merge branch 'clk-renesas' into clk-next commit c1c5864d9490278715dda77db402e13f4428ffda Author: Ulrich Hecht Date: Thu Dec 24 11:14:18 2015 +0100 clk: shmobile: r8a7795: Add SATA0 clock Signed-off-by: Ulrich Hecht Signed-off-by: Geert Uytterhoeven Signed-off-by: Michael Turquette drivers/clk/shmobile/r8a7795-cpg-mssr.c | 1 + 1 file changed, 1 insertion(+) commit 2cb58c016673c4c8b8ec59e71c5ec4b2c6a76afb Author: Arnd Bergmann Date: Thu Dec 31 23:51:02 2015 +0100 ARM: realview: don't select SMP_ON_UP for UP builds When CONFIG_SMP is disabled, we get a warning from Kconfig: warning: (SOC_IMX31 && SOC_IMX35 && SOC_VF610 && REALVIEW_DT) selects SMP_ON_UP which has unmet direct dependencies (SMP && !XIP_KERNEL && MMU) This changes the REALVIEW_DT Kconfig entry to not select SMP_ON_UP unless SMP is also set. Signed-off-by: Arnd Bergmann arch/arm/mach-realview/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 326ea45aa827da6686c78b5907f9839f91ef5782 Author: Arnd Bergmann Date: Mon Dec 28 11:05:18 2015 +0100 bus: uniphier: allow only built-in driver Building the newly added uniphier system bus driver as a module causes a link error, so let's only allow it to be built-in for now, to fix allmodconfig: ERROR: "of_default_bus_match_table" [drivers/bus/uniphier-system-bus.ko] undefined! Signed-off-by: Arnd Bergmann drivers/bus/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 22a5b1ddd83b991b96cb635898e011cce48bf6f8 Author: Arnd Bergmann Date: Thu Dec 31 23:39:14 2015 +0100 ARM: bcm2835: clarify RASPBERRYPI_FIRMWARE dependency The firmware driver can be a loadable module, but the power domain can only be built-in, so we get a build error in an allmodconfig kernel: :(.text+0x17e59c): undefined reference to `rpi_firmware_property' :(.text+0x17e51c): undefined reference to `rpi_firmware_get' :(.text+0x17e244): undefined reference to `rpi_firmware_property' This changes the dependency to only allow the power domain code to be enabled when the firmware driver is built-in. Other users of the firmware driver may still be loadable modules and not everyone needs the power domains, so we don't change the firmware code. Signed-off-by: Arnd Bergmann drivers/soc/bcm/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 15bcdefdc71a791ce0308989ed3fc43b4f973c7f Author: Leilk Liu Date: Thu Dec 31 10:59:01 2015 +0800 spi: mediatek: Add spi support for mt2701 IC This patch adds spi support for mt2701 IC. Signed-off-by: Leilk Liu Signed-off-by: Mark Brown drivers/spi/spi-mt65xx.c | 3 +++ 1 file changed, 3 insertions(+) commit 4eaf6f730355ce3725dd8c98e62696ec4c507e9b Author: Leilk Liu Date: Thu Dec 31 10:59:00 2015 +0800 spi: mediatek: merge all identical compat to mtk_common_compat This patch merge all identical compat into on mtk_common_compat and used for all compatible soc. Signed-off-by: Leilk Liu Reviewed-by: Matthias Brugger Signed-off-by: Mark Brown drivers/spi/spi-mt65xx.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) commit 5c5e09f623d5984532a74b90d3d24e1caa99bc9f Author: Leilk Liu Date: Thu Dec 31 10:59:03 2015 +0800 spi: mtk: Add bindings for mediatek MT2701 soc platform This patch adds a DT binding documentation for the MT2701 soc. Signed-off-by: Leilk Liu Signed-off-by: Mark Brown Documentation/devicetree/bindings/spi/spi-mt65xx.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit c46a155bdf3c8877719aa63d1bf1d6e79e2a9764 Author: Jaegeuk Kim Date: Thu Dec 31 13:49:17 2015 -0800 f2fs: use IPU for fdatasync This patch fixes missing IPU condition when fdatasync is called. With this patch, fdatasync is able to avoid additional node writes for recovery. Signed-off-by: Jaegeuk Kim fs/f2fs/file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c11b8989635166c5a1e6aac1853a847bd664f8db Merge: 54255e8 9c8e566 Author: Dave Airlie Date: Fri Jan 1 07:41:52 2016 +1000 Merge tag 'omapdrm-4.5-resolved' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux into drm-next omapdrm changes for v4.5 * enable DRIVER_ATOMIC * improved TILER performance * cleanups preparing for DMAbuf import * fbdev emulation is now optional * minor fixes * tag 'omapdrm-4.5-resolved' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: drm/omap: remove obsolete manager assignment drm/omap: set DRIVER_ATOMIC for omapdrm drm/omap: remove unused plugin defines drm/omap: Use bitmaps for TILER placement drm: omapdrm: gem: Remove check for impossible condition drm: omapdrm: gem: Simplify error handling when creating GEM object drm: omapdrm: gem: Don't free mmap offset twice drm: omapdrm: gem: Fix GEM object destroy in error path drm: omapdrm: gem: Free the correct memory object drm: omapdrm: gem: Mask out private flags passed from userspace drm: omapdrm: gem: Move global usergart variable to omap_drm_private drm: omapdrm: gem: Group functions by purpose drm: omapdrm: gem: Remove forward declarations drm: omapdrm: gem: Remove unused function prototypes drm: omapdrm: Make fbdev emulation optional drm: omapdrm: Fix plane state free in plane reset handler drm: omapdrm: move omap_plane_reset() drm/omap: Use platform_register/unregister_drivers() drm: omapdrm: tiler: Remove unneded module alias for tiler commit 8d4ea29b6426470456ee9daee64bac55a3b13289 Author: Jaegeuk Kim Date: Thu Dec 31 13:08:02 2015 -0800 f2fs: write pending bios when cp_error is set When testing ioc_shutdown, put_super is able to be hanged by waiting for writebacking pages as follows. INFO: task umount:2723 blocked for more than 120 seconds. Tainted: G O 4.4.0-rc3+ #8 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. umount D ffff88000859f9d8 0 2723 2110 0x00000000 ffff88000859f9d8 0000000000000000 0000000000000000 ffffffff81e11540 ffff880078c225c0 ffff8800085a0000 ffff88007fc17440 7fffffffffffffff ffffffff818239f0 ffff88000859fb48 ffff88000859f9f0 ffffffff8182310c Call Trace: [] ? bit_wait+0x50/0x50 [] schedule+0x3c/0x90 [] schedule_timeout+0x2d9/0x430 [] ? mark_held_locks+0x6f/0xa0 [] ? ktime_get+0x7d/0x140 [] ? bit_wait+0x50/0x50 [] ? kvm_clock_get_cycles+0x25/0x30 [] ? ktime_get+0xac/0x140 [] ? bit_wait+0x50/0x50 [] io_schedule_timeout+0xa4/0x110 [] bit_wait_io+0x35/0x50 [] __wait_on_bit+0x5d/0x90 [] wait_on_page_bit+0xcb/0xf0 [] ? autoremove_wake_function+0x40/0x40 [] truncate_inode_pages_range+0x4bc/0x840 [] truncate_inode_pages_final+0x4d/0x60 [] f2fs_evict_inode+0x75/0x400 [f2fs] [] evict+0xbc/0x190 [] iput+0x229/0x2c0 [] f2fs_put_super+0x105/0x1a0 [f2fs] [] generic_shutdown_super+0x6a/0xf0 [] kill_block_super+0x27/0x70 [] kill_f2fs_super+0x20/0x30 [f2fs] [] deactivate_locked_super+0x43/0x70 [] deactivate_super+0x5c/0x60 [] cleanup_mnt+0x3f/0x90 [] __cleanup_mnt+0x12/0x20 [] task_work_run+0x73/0xa0 [] exit_to_usermode_loop+0xcc/0xd0 [] syscall_return_slowpath+0xcc/0xe0 [] int_ret_from_sys_call+0x25/0x9f Signed-off-by: Jaegeuk Kim fs/f2fs/checkpoint.c | 2 +- fs/f2fs/data.c | 2 +- fs/f2fs/node.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 138a2935dc9783b131d9647c3bddb22ae5c84d77 Author: Trond Myklebust Date: Thu Oct 1 17:17:06 2015 -0400 NFS: Relax requirements in nfs_flush_incompatible If two processes share the same credentials and NFSv4 open stateid, then allow them both to dirty the same page, even if their nfs_open_context differs. Signed-off-by: Trond Myklebust fs/nfs/internal.h | 6 ++++++ fs/nfs/pagelist.c | 6 ------ fs/nfs/write.c | 3 ++- 3 files changed, 8 insertions(+), 7 deletions(-) commit b20135d0b2431900a3a5395970ffb7e4f3767c8b Author: Trond Myklebust Date: Thu Dec 31 09:28:06 2015 -0500 NFSv4.1/pNFS: Don't queue up a new commit if the layout segment is invalid If the layout segment is invalid, then we should not be adding more write requests to the commit list. Instead, those writes should be replayed after requesting a new layout. Signed-off-by: Trond Myklebust fs/nfs/callback_proc.c | 2 ++ fs/nfs/direct.c | 12 ++++++++++++ fs/nfs/pnfs.c | 3 +++ fs/nfs/pnfs.h | 6 ++++++ fs/nfs/pnfs_nfs.c | 5 +++++ fs/nfs/write.c | 9 +++++++++ include/linux/nfs_xdr.h | 2 ++ 7 files changed, 39 insertions(+) commit 1f6fa26199bb164157fbf81f850df1991d10c959 Author: Jaegeuk Kim Date: Thu Dec 31 10:28:52 2015 -0800 f2fs: remove f2fs_bug_on in terms of max_depth There is no report on this bug_on case, but if malicious attacker changed this field intentionally, we can just reset it as a MAX value. Signed-off-by: Jaegeuk Kim fs/f2fs/dir.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 44451d4d8f0e35153b3e7e3d40e198f2cf9ac36a Author: Scott Wood Date: Thu Dec 31 12:57:26 2015 -0600 MAINTAINERS: Update Scott Wood's e-mail address Freescale is now NXP. I still work there, but I won't be using their mail system for Linux development. Signed-off-by: Scott Wood MAINTAINERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit af7cf057933f01dc7f33ddfb5e436ad598ed17ad Author: Trond Myklebust Date: Tue Sep 29 20:34:05 2015 -0400 NFS: Allow multiple commit requests in flight per file Allow synchronous RPC calls to wait for pending RPC calls to finish, but also allow asynchronous ones to just fire off another commit. With this patch, the xfstests generic/074 test completes in 226s instead of 242s Signed-off-by: Trond Myklebust fs/nfs/direct.c | 6 ----- fs/nfs/file.c | 2 +- fs/nfs/nfstrace.h | 1 - fs/nfs/pnfs_nfs.c | 5 +--- fs/nfs/write.c | 70 +++++++++++++++++++++++-------------------------- include/linux/nfs_fs.h | 1 - include/linux/nfs_xdr.h | 1 - 7 files changed, 35 insertions(+), 51 deletions(-) commit dc602dd706cb64036132a7903ead1c67d9a7bcb9 Author: Trond Myklebust Date: Thu Dec 31 11:44:06 2015 -0500 NFS/pNFS: Fix up pNFS write reschedule layering violations and bugs The flexfiles layout in particular, seems to want to poke around in the O_DIRECT flags when retransmitting. This patch sets up an interface to allow it to call back into O_DIRECT to handle retransmission correctly. It also fixes a potential bug whereby we could change the behaviour of O_DIRECT if an error is already pending. Signed-off-by: Trond Myklebust fs/nfs/direct.c | 21 +++++++++++++++------ fs/nfs/flexfilelayout/flexfilelayout.c | 13 +------------ fs/nfs/internal.h | 1 - fs/nfs/write.c | 6 ++++++ include/linux/nfs_xdr.h | 1 + 5 files changed, 23 insertions(+), 19 deletions(-) commit 9269d12b2d57d9e3d13036bb750762d1110d425c Author: Filipe Manana Date: Thu Dec 31 18:16:29 2015 +0000 Btrfs: fix number of transaction units required to create symlink We weren't accounting for the insertion of an inline extent item for the symlink inode nor that we need to update the parent inode item (through the call to btrfs_add_nondir()). So fix this by including two more transaction units. Signed-off-by: Filipe Manana fs/btrfs/inode.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit d50866d00fb39fcf72307001763ee9cc92625a43 Author: Filipe Manana Date: Thu Dec 31 18:08:24 2015 +0000 Btrfs: don't leave dangling dentry if symlink creation failed When we are creating a symlink we might fail with an error after we created its inode and added the corresponding directory indexes to its parent inode. In this case we end up never removing the directory indexes because the inode eviction handler, called for our symlink inode on the final iput(), only removes items associated with the symlink inode and not with the parent inode. Example: $ mkfs.btrfs -f /dev/sdi $ mount /dev/sdi /mnt $ touch /mnt/foo $ ln -s /mnt/foo /mnt/bar ln: failed to create symbolic link ‘bar’: Cannot allocate memory $ umount /mnt $ btrfsck /dev/sdi Checking filesystem on /dev/sdi UUID: d5acb5ba-31bd-42da-b456-89dca2e716e1 checking extents checking free space cache checking fs roots root 5 inode 258 errors 2001, no inode item, link count wrong unresolved ref dir 256 index 3 namelen 3 name bar filetype 7 errors 4, no inode ref found 131073 bytes used err is 1 total csum bytes: 0 total tree bytes: 131072 total fs tree bytes: 32768 total extent tree bytes: 16384 btree space waste bytes: 124305 file data blocks allocated: 262144 referenced 262144 btrfs-progs v4.2.3 So fix this by adding the directory index entries as the very last step of symlink creation. Signed-off-by: Filipe Manana fs/btrfs/inode.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit a879719b8c90e15c9e7fa7266d5e3c0ca962f9df Author: Filipe Manana Date: Thu Dec 31 18:07:59 2015 +0000 Btrfs: send, don't BUG_ON() when an empty symlink is found When a symlink is successfully created it always has an inline extent containing the source path. However if an error happens when creating the symlink, we can leave in the subvolume's tree a symlink inode without any such inline extent item - this happens if after btrfs_symlink() calls btrfs_end_transaction() and before it calls the inode eviction handler (through the final iput() call), the transaction gets committed and a crash happens before the eviction handler gets called, or if a snapshot of the subvolume is made before the eviction handler gets called. Sadly we can't just avoid this by making btrfs_symlink() call btrfs_end_transaction() after it calls the eviction handler, because the later can commit the current transaction before it removes any items from the subvolume tree (if it encounters ENOSPC errors while reserving space for removing all the items). So make send fail more gracefully, with an -EIO error, and print a message to dmesg/syslog informing that there's an empty symlink inode, so that the user can delete the empty symlink or do something else about it. Reported-by: Stephen R. van den Berg Signed-off-by: Filipe Manana fs/btrfs/send.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) commit 7b22a7788b0263f42f7232c5c05c503424ffa0ba Merge: ccac042 7ddb692 Author: David S. Miller Date: Thu Dec 31 12:22:45 2015 -0500 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-12-31 Here's (probably) the last bluetooth-next pull request for the 4.5 kernel: - Add support for BCM2E65 ACPI ID - Minor fixes/cleanups in the bcm203x & bfusb drivers - Minor debugfs related fix in 6lowpan code Please let me know if there are any issues pulling. Thanks. ==================== Signed-off-by: David S. Miller commit 765ff22d54591a24fe81f6a451b953f43e076ced Author: Arnd Bergmann Date: Tue Dec 29 13:43:35 2015 +0100 ARM: tango: pass ARM arch level for smc.S allmodconfig is broken by the addition of the -mcpu=cortex-a9 flag for smc.S: arch/arm/mach-tango/smc.S:1:0: warning: switch -mcpu=cortex-a9 conflicts with -march=armv6k switch This sets the flag in the same way that all other platforms do, to fix the compile error. Signed-off-by: Arnd Bergmann arch/arm/mach-tango/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit fc2f669e7d0ea9559cbdc229ff97f9fff5f8de4f Merge: 2bc75db 5234c34 Author: Arnd Bergmann Date: Thu Dec 31 17:00:24 2015 +0100 Merge tag 'bcm2835-soc-next-2015-12-28' of http://github.com/anholt/linux into next/soc Merge "BCM2835 SOC changes for 4.5" from Eric Anholt: This pull request includes the bcm2835 changes for 4.5 targeting the arm-soc next/soc branch. * tag 'bcm2835-soc-next-2015-12-28' of http://github.com/anholt/linux: ARM: bcm2835: Add Kconfig support for bcm2836 ARM: bcm2835: Add a compat string for bcm2836 machine probe dt-bindings: Add root properties for Raspberry Pi 2 Conflicts: arch/arm/mach-bcm/Kconfig commit 2bc75dbf14f8f3db56c1f546e65a90b5286614ad Merge: ed1c784 f74875d Author: Arnd Bergmann Date: Thu Dec 31 16:58:47 2015 +0100 Merge branch 'depends/usb-fixes' into next/soc This branch was merged into v4.4-rc5 and is needed for the bcm2836 support. Merging it first to avoid large-scale backmerge of rc5. * depends/usb-fixes: usb: dwc2: fix kernel oops during driver probe usb: phy: mxs: add "fsl,imx6ul-usbphy" compatible string usb: gadget: f_midi: fix leak on failed to enqueue out requests usb: gadget: f_midi: Transmit data only when IN ep is enabled usb: dwc2: make otg clk optional usb: dwc2: Return errors from PHY usb: dwc2: Make PHY optional usb: renesas_usbhs: gadget: Fix NULL pointer dereference in usbhsg_ep_dequeue() usb: kconfig: fix warning of select USB_OTG usb: gadget: pxa27x: fix suspend callback usb: gadget: functionfs: fix missing access_ok checks usb: musb: USB_TI_CPPI41_DMA requires dmaengine support commit ed1c7848dcadba2be07057e6810eb5825d0080d7 Merge: d6de5b0 f53850b Author: Arnd Bergmann Date: Thu Dec 31 16:24:09 2015 +0100 Merge tag 'omap-for-v4.5/81xx-soc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/soc Pull "reworked soc changes for ti81xx devices and minimal dra62x j5ec-evm support" from Tony Lindgren: Add minimal SoC support for dra62x also known as j5eco. As it's closely related to dm814x, we can treat it as a dm814x variant for now and do rest of the configuration with DTS just files. And let's add hwmod support for MMC and USB on dm814x and dra62x. * tag 'omap-for-v4.5/81xx-soc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP2+: Add support for dm814x and dra62x usb ARM: OMAP2+: Add mmc hwmod entries for dm814x ARM: OMAP2+: Update 81xx clock and power domains for default, active and sgx ARM: OMAP2+: Fix SoC detection for dra62x j5-eco commit d731afa46095b8372dbcfe10c6eae93bc7e3911a Merge: 4e33301 bf0dda3 Author: Arnd Bergmann Date: Thu Dec 31 17:31:56 2015 +0100 Merge tag 'samsung-dt-4.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into next/dt Merge "Samsung DeviceTree updates and improvements for 4.5" from Krzysztof Kozlowski: 1. eMMC/SDIO minor fixes usage of bindings on Snow and Peach Chromebooks. 2. Remove FIMD from Odroid XU3-family because on XU3 it cannot be used yet and on XU3-Lite and XU4 it is not supported. 3. Remove deprecated since June 2013 samsung,exynos5-hdmi. 4. Add support for Pseudo Random Generator on Exynos4 (Trats2 for now). This depends on new SSS clock. 5. Add rotator nodes for Exynos4 and Exynos5. 6. Switch DWC3_1 on Odroid XU3 and XU3-Lite to peripheral mode because now it cannot be used as OTG. 7. Cleanup the G2D usage on Exynos4 and add it to a proper domain in case of Exynos4210. 8. Put MDMA1 in proper domain on Exynos4210 as well. 9. Minor cleanups. * tag 'samsung-dt-4.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux: (21 commits) ARM: dts: Unify G2D device node with other devices on exynos4 ARM: dts: Add power domain to G2D device on exynos4210 ARM: dts: MDMA1 device belongs to LCD0 power domain on exynos4210 ARM: dts: Remove unneeded GPIO include in exynos4412-odroidu3 ARM: dts: exynos4210-universal_c210: Disable DMA for UARTs ARM: dts: Use peripheral mode for dwc3_1 on exynos5422-odroidxu3 ARM: dts: Add rotator node on exynos5420 ARM: dts: Add rotator node on exynos5250 ARM: dts: Fix power domain for sysmmu-rotator device on exynos4 ARM: dts: Add rotator nodes on exynos4 ARM: dts: Enable PRNG module on exynos4412-trats2 ARM: dts: Add PRNG module for exynos4 dt-bindings: remove deprecated compatible string from exynos-hdmi ARM: dts: Remove fimd node from exynos5422-odroidxu3-common ARM: dts: Mark eMMC as non-removable in exynos5250-snow-common ARM: dts: Remove broken-cd from eMMC node in exynos5420-peach-pi ARM: dts: Remove broken-cd from eMMC node in exynos5800-peach-pi ARM: dts: Mark SDIO as non-removable in exynos5250-snow-common ARM: dts: Mark SDIO as non-removable in exynos5420-peach-pit ARM: dts: Mark SDIO as non-removable in exynos5800-peach-pi ... commit 4e333015ed3eeaaa7869723b50ae7270ea178232 Author: Masahiro Yamada Date: Thu Dec 24 00:23:40 2015 +0900 ARM: dts: uniphier: fix a typo in comment block Signed-off-by: Masahiro Yamada Signed-off-by: Arnd Bergmann arch/arm/boot/dts/uniphier-ph1-ld6b.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 26922c59092c451f9888d0f1d1d72ebdafdc2628 Author: Arnd Bergmann Date: Wed Dec 16 18:07:49 2015 +0100 ARM: s3c: simplify s3c_irqwake_{e,}intallow definition For a long time, gcc has warned about odd configurations on s3c64xx: In file included from arch/arm/plat-samsung/pm.c:34:0: arch/arm/mach-s3c64xx/include/mach/pm-core.h:61:0: warning: "s3c_irqwake_eintallow" redefined #define s3c_irqwake_eintallow ((1 << 28) - 1) In file included from arch/arm/plat-samsung/pm.c:33:0: arch/arm/plat-samsung/include/plat/pm.h:49:0: note: this is the location of the previous definition #define s3c_irqwake_eintallow 0 The definitions of s3c_irqwake_intallow and s3c_irqwake_eintallow are a bit consistent between the various platforms. Things have become easier now that it's only s3c24xx and s3c64xx that use them at all, so I've tried to rearrange the definitions to make it more obvious what is going on. Signed-off-by: Arnd Bergmann Reviewed-by: Krzysztof Kozlowski arch/arm/mach-s3c24xx/include/mach/pm-core.h | 14 ++++++++++++++ arch/arm/mach-s3c24xx/irq-pm.c | 11 +---------- arch/arm/mach-s3c64xx/include/mach/pm-core.h | 6 +++++- arch/arm/plat-samsung/include/plat/pm.h | 8 -------- 4 files changed, 20 insertions(+), 19 deletions(-) commit b71976128c6ac7e083d624613aca43a1c5c7fcd3 Author: Arnd Bergmann Date: Wed Dec 16 16:32:24 2015 +0100 ARM: s3c64xx: fix pm-debug compilation I got one randconfig build that failed to compile plat-samsung/pm-debug.c on s3c64xx: In file included from arch/arm/plat-samsung/pm-debug.c:27:0: arch/arm/mach-s3c64xx/include/mach/pm-core.h: In function 's3c_pm_debug_init_uart': arch/arm/mach-s3c64xx/include/mach/pm-core.h:25:25: error: 'S3C_VA_SYS' undeclared (first use in this function) u32 tmp = __raw_readl(S3C_PCLK_GATE); arch/arm/mach-s3c64xx/include/mach/pm-core.h:25:25: note: each undeclared identifier is reported only once for each function it appears in arch/arm/mach-s3c64xx/include/mach/pm-core.h:39:2: error: implicit declaration of function 'udelay' [-Werror=implicit-function-declaration] udelay(10); I have not investigated why this does not show up much more often, I guess the headers are usually included from elsewhere, but adding explicit #include statements is an obvious fix. Signed-off-by: Arnd Bergmann Reviewed-by: Krzysztof Kozlowski arch/arm/mach-s3c64xx/include/mach/pm-core.h | 2 ++ 1 file changed, 2 insertions(+) commit ddc5c39af4e25d4d4eca925b792b372eedb778d8 Author: Eric Anholt Date: Tue Dec 15 15:35:59 2015 -0800 ARM: bcm2835: Add the auxiliary clocks to the device tree. These will be used for enabling UART1, SPI1, and SPI2. Signed-off-by: Eric Anholt Signed-off-by: Arnd Bergmann arch/arm/boot/dts/bcm283x.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) commit 80534f095f182d9067a9ea02073b37f771f77d40 Author: Eric Anholt Date: Thu Apr 16 15:26:45 2015 -0700 ARM: bcm2835: Add devicetree for bcm2836 and Raspberry Pi 2 B The Pi 2 B ends up like a Pi 1 B+, with the same peripherals and pinout, but the CPU and memory layout changed to use the 2836. Signed-off-by: Eric Anholt Signed-off-by: Arnd Bergmann arch/arm/boot/dts/Makefile | 3 +- arch/arm/boot/dts/bcm2836-rpi-2-b.dts | 35 ++++++++++++++++ arch/arm/boot/dts/bcm2836.dtsi | 78 +++++++++++++++++++++++++++++++++++ 3 files changed, 115 insertions(+), 1 deletion(-) commit 4b8c3907c3090d019efdeb02765db209927c0c4f Author: Eric Anholt Date: Wed Dec 16 15:55:12 2015 -0800 ARM: bcm2835: Move the CPU/peripheral include out of common RPi DT. For Raspberry Pi 2, we want to use the same general pin assignment bits, but need to use bcm2836.dtsi for the CPU instead. Signed-off-by: Eric Anholt Signed-off-by: Arnd Bergmann arch/arm/boot/dts/bcm2835-rpi-a-plus.dts | 1 + arch/arm/boot/dts/bcm2835-rpi-b-plus.dts | 1 + arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts | 1 + arch/arm/boot/dts/bcm2835-rpi-b.dts | 1 + arch/arm/boot/dts/bcm2835-rpi.dtsi | 2 -- 5 files changed, 4 insertions(+), 2 deletions(-) commit 548c3a39e0359383839d43d0cb435dbb4de101e3 Author: Eric Anholt Date: Wed Dec 16 13:24:40 2015 -0800 ARM: bcm2835: Split the DT for peripherals from the DT for the CPU The set of peripherals remained constant across bcm2835 (Raspberry Pi 1) and bcm2836 (Raspberry Pi 2), but the CPU was swapped out. Split the files so that we can include just peripheral setup in 2836. Signed-off-by: Eric Anholt Signed-off-by: Arnd Bergmann arch/arm/boot/dts/bcm2835.dtsi | 194 +------------------------------------- arch/arm/boot/dts/bcm283x.dtsi | 205 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 206 insertions(+), 193 deletions(-) commit 3027408a17660b491bc650cce0cb173c50045bbb Author: Martin Sperl Date: Fri Sep 11 11:22:06 2015 +0000 ARM: bcm2835: enable auxiliary spi driver in defconfig add the auxiliary spi driver to the default config Signed-off-by: Martin Sperl Signed-off-by: Eric Anholt Signed-off-by: Arnd Bergmann arch/arm/configs/bcm2835_defconfig | 1 + 1 file changed, 1 insertion(+) commit f58f3c3f3620c5f659da69a8ea288cee95aae17a Author: Stefan Wahren Date: Tue Oct 27 19:08:58 2015 +0100 ARM: bcm2835: enable all bcm2835-relevant in defconfig Rebuild bcm2835_defconfig using "make bcm2835_defconfig; make savedefconfig", and enable manually the following features: * all bcm2835-relevant drivers (MBOX, WDT, DMA, PWM, SND) * enable regular stackprotector because CONFIG_CC_STACKPROTECTOR disappear * enable some new dependencies in order to keep LED heartbeat ( CONFIG_NEW_LEDS, CONFIG_LEDS_CLASS, CONFIG_LEDS_TRIGGERS ) The following options were removed, because they are enabled implicit: CONFIG_RD_BZIP2, CONFIG_RD_LZMA, CONFIG_RD_XZ, CONFIG_RD_LZO, CONFIG_USB_DWC2_HOST, CONFIG_EXT4_FS, CONFIG_EXT4_FS_POSIX_ACL These options became obsolete: CONFIG_RESOURCE_COUNTERS, CONFIG_SCSI_MULTI_LUN Signed-off-by: Stefan Wahren Signed-off-by: Eric Anholt Acked-by: Stephen Warren Signed-off-by: Arnd Bergmann arch/arm/configs/bcm2835_defconfig | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) commit 5d2c585c7ddda2d5520e585768d0b3f66d04b59f Merge: 1a4af6e a09cd35 Author: Arnd Bergmann Date: Thu Dec 31 17:11:29 2015 +0100 Merge tag 'bcm2835-drivers-next-2015-12-28' of http://github.com/anholt/linux into next/drivers Pull "BCM2835 drivers changes for 4.5" from Eric Anholt: This pull request includes the bcm2835 changes for 4.5 targeting the arm-soc next/drivers branch. * tag 'bcm2835-drivers-next-2015-12-28' of http://github.com/anholt/linux: ARM: bcm2835: add rpi power domain driver dt-bindings: add rpi power domain driver bindings ARM: bcm2835: Define two new packets from the latest firmware. commit 1a4af6ea41392a1acd0ec27d2eeca0f61ee54b65 Merge: f625cb8 f74875d Author: Arnd Bergmann Date: Thu Dec 31 17:10:50 2015 +0100 Merge branch 'depends/usb-fixes' into next/drivers This is needed for the bcm2836 branch, pulling in the fixes that went into rc5 to avoid a larger backmerge. * depends/usb-fixes: usb: dwc2: fix kernel oops during driver probe usb: phy: mxs: add "fsl,imx6ul-usbphy" compatible string usb: gadget: f_midi: fix leak on failed to enqueue out requests usb: gadget: f_midi: Transmit data only when IN ep is enabled usb: dwc2: make otg clk optional usb: dwc2: Return errors from PHY usb: dwc2: Make PHY optional usb: renesas_usbhs: gadget: Fix NULL pointer dereference in usbhsg_ep_dequeue() usb: kconfig: fix warning of select USB_OTG usb: gadget: pxa27x: fix suspend callback usb: gadget: functionfs: fix missing access_ok checks usb: musb: USB_TI_CPPI41_DMA requires dmaengine support commit d07822a7ed2484908fb0d86f5f1dec27db0da439 Merge: d50a8b4 9ebf47b Author: Arnd Bergmann Date: Thu Dec 31 16:50:30 2015 +0100 Merge tag 'xgene-dts-fixes-for-v4.5' of https://github.com/AppliedMicro/xgene-next into next/dt64 Merge "Fixes for X-Gene DTS for v4.5" from Duc Dang: This patch set fixes the node names of X-Gene I2C, GPIO controller DT nodes; and also removes I2C clock nodes as the same clock is shared between 2 I2C controllers on X-Gene SoC. * tag 'xgene-dts-fixes-for-v4.5' of https://github.com/AppliedMicro/xgene-next: arm64: dts: X-Gene v2: I2C1 clock is always on arm64: dts: X-Gene v1: I2C0 clock is always on arm64: dts: Fix to use standard DT node names for X-Gene 1 and X-Gene 2 platforms commit ef2a27059226327228238a55208d8c11b80013c9 Author: Linus Walleij Date: Wed Dec 30 21:05:09 2015 +0100 ARM: realview: set up cache correctly on the PB11MPCore The L2 cache comes up in a "safe mode" on the PB11MPCore, as it has several issues. This sets it up properly with the right size and associativity, also requiring the outer sync to be disabled for the machine to boot properly. Cc: Russell King Cc: Arnd Bergmann Signed-off-by: Linus Walleij Signed-off-by: Arnd Bergmann arch/arm/boot/dts/arm-realview-pb11mp.dts | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit d50a8b4843f7160db6e44844b9d733e866c20a89 Author: Bhupesh Sharma Date: Mon Dec 28 15:31:24 2015 +0530 dts/ls2080a: Update DTSI to add support of SP805 WDT This patch updates the LS2080a DTSI (DTS Include) file to add support for eight SP805 Watchdog units which can be used to reset the eight Cortex-A57 cores available on LS2080A. Signed-off-by: Bhupesh Sharma Signed-off-by: Arnd Bergmann arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi | 56 ++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) commit 766faef1f4c0b37b2cb2c0de214dacf54e29ac05 Author: Bhupesh Sharma Date: Mon Dec 28 15:31:23 2015 +0530 Documentation: DT: Add entry for ARM SP805-WDT This patch adds a devicetree binding documentation for ARM's SP805 WatchDog Timer. Signed-off-by: Bhupesh Sharma Acked-by: Rob Herring Signed-off-by: Arnd Bergmann .../devicetree/bindings/watchdog/sp805-wdt.txt | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) commit f0dba77620368d154bff9542675c6844e4678761 Merge: d4e68fa f0ad435 Author: Arnd Bergmann Date: Thu Dec 31 16:27:45 2015 +0100 Merge tag 'davinci-for-v4.5/dts' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci into next/dt Merge "DaVinci device-tree updates for v4.5" from Sekhar Nori: EDMA device-tree updates including move to new EDMA bindings and EDMA support for MMC/SD and SPI. * tag 'davinci-for-v4.5/dts' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci: ARM: DTS: da850: Enable DMA for SPI1 ARM: DTS: da850: Add node for mmc1 ARM: DTS: da850: Enable DMA use for MMC0 ARM: DTS: da850: Enable eDMA1 ARM: DTS: da850: Use the new DT bindings for the eDMA3 ARM: DTS: da850: fix edma0 reg space commit d4e68fa37f73b7f8ccfd5929002b621a75725bb9 Merge: cad008b 43fe6de Author: Arnd Bergmann Date: Thu Dec 31 16:25:22 2015 +0100 Merge tag 'omap-for-v4.5/81xx-dts-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/dt Pull "reworked dts changes for ti81xx devices and minimal dra62x j5ec-evm support" from Tony Lindgren: Add minimal device tree support for dra62x also known j5eco. It is related to dm814x, just the clocks are a bit different and it has a different set of integrated devices. And let's get some basic dm814x and dra62x devices working as many of the devices are like on am33xx:: - pinctrl using the pinctrl defines as for am33xx - Updated EDMA bindings with support for using exma_xbar - MMC support for dm814x-evm, t410 and dra62x-j5eco-evm - USB support for dm814x-evm, t410 and dra62x-j5eco-evm This branch depends on an earlier omap-for-v4.5/81xx-fixes-signed branch that has dm814x dts fixes interlaced with SoC related fixes to keep things booting. The interlaced SoC and dts fixes were needed because of issues with the device tree defined clocks that just happened to work on bootloader timings for t410 earlier. * tag 'omap-for-v4.5/81xx-dts-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: (21 commits) ARM: dts: Add usb support for j5-eco evm ARM: dts: Add usb support for hp t410 ARM: dts: Add usb support for dm814x-evm ARM: dts: Add usb support for dm814x and dra62x ARM: dts: Enable emmc on hp t410 ARM: dts: Add mmc support for dra62x j5-eco evm ARM: dts: Add mmc support for dm8148-evm ARM: dts: Add mmc device entries for dm814x ARM: dts: Update edma bindings on dm814x to use edma_xbar ARM: dts: Add pinctrl macros for dm814x ARM: dts: Add minimal dra62x j5-eco evm support ARM: dts: Add basic support for dra62x j5-eco SoC ARM: OMAP2+: Remove useless check for legacy booting for dm814x ARM: OMAP2+: Enable GPIO for dm814x ARM: dts: Fix dm814x pinctrl address and mask ARM: dts: Fix dm8148 control modules ranges ARM: OMAP2+: Fix timer entries for dm814x ARM: dts: Fix some mux and divider clocks to get dm814x-evm booting ARM: OMAP2+: Add DPPLS clock manager for dm814x clk: ti: Add few dm814x clock aliases ... commit 08ceca8ea629828e4cb922c121b5c87681c97fb7 Merge: 1f33b01 dbb7e70 Author: Arnd Bergmann Date: Thu Dec 31 16:18:51 2015 +0100 Merge tag 'omap-for-v4.5/81xx-fix-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/fixes-non-critical Merge "reworked fix for earlier ti81xx changes for v4.5 merge window" from Tony Lindgren: Fix a randconfig build warning introduced in the earlier branch omap-for-v4.5/81xx-fixes-signed. * tag 'omap-for-v4.5/81xx-fix-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP2+: Fix randconfig build warning for dm814_pllss_data commit 32872c04ffd5a855c43802c5aa76c711eb021948 Author: Arnd Bergmann Date: Fri Dec 18 23:44:23 2015 +0100 ARM: default to multi_v7_defconfig versatile_defconfig has not been a reasonable default for a very long time, there is very little work happening on this platform and it's based on an old ARM926 CPU core. This changes the default to multi_v7_defconfig, which is much more relevant to anyone doing a build test on ARM, as it covers a wide range of platforms. Signed-off-by: Arnd Bergmann Acked-by: Will Deacon Reviewed-by: Linus Walleij arch/arm/Makefile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit f94c48d6c315a580b60b062c0360561b61faa311 Author: Dan Carpenter Date: Wed Dec 16 14:10:00 2015 +0300 wil6210: fix a warning message condition "iter" is -1 at the end of the loop and not zero. It means we don't print a warning message. Signed-off-by: Dan Carpenter Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5c352bf0880655e3a782f55a86fb172542c19a00 Author: Andrzej Hajda Date: Mon Dec 14 11:06:01 2015 +0100 ath9k_htc: fix handling return value of ath9k_hw_calibrate The function can return negative values in case of error. Its result should be then tested for such case. 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 Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/htc_drv_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d9d6a5ae2171576aa8f4a9669d1d02e99d830b77 Author: Rajkumar Manoharan Date: Wed Dec 16 16:52:19 2015 +0200 ath10k: reduce indentation by moving powersave check within function For devices that does not support PCI power save, force wake up API is used. So move powersave check inside force wakeup to reduce one level indentation. Signed-off-by: Rajkumar Manoharan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/pci.c | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) commit aa538aca9fb4a197464f5926c7b5d7050e9144b1 Author: Rajkumar Manoharan Date: Wed Dec 16 16:52:19 2015 +0200 ath10k: wake up device before accessing registers commit 1aaf8efba0ae ("ath10k: disable PCI PS for QCA988X and QCA99X0") partially reverts pci soc powersave support added by commit 77258d409ce4 ("ath10k: enable pci soc powersaving"). While reverting the change, pci wake up function is called after accessing pci registers instead of prior to access. The assumption is that chip is woken up before accessing its registers.Though this change does not fix any known issues, this might help to avoid unknown or low power platform specific issues. Signed-off-by: Rajkumar Manoharan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/pci.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 9c8e566e4930a00b51bee7766a5c188f20fdb16b Author: Tomi Valkeinen Date: Wed Nov 4 17:10:59 2015 +0200 drm/omap: remove obsolete manager assignment omap_encoder_update() assigns an overlay manager to dssdev->src->manager. This assignment is not needed, as the connections in the display chain have already been made at connect step. Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_encoder.c | 2 -- 1 file changed, 2 deletions(-) commit 728fea775caf6f72f6139f820df0917239333f1e Author: Tomi Valkeinen Date: Fri Oct 2 11:10:41 2015 +0300 drm/omap: set DRIVER_ATOMIC for omapdrm omapdrm supports atomic modesetting, and it seems to work ok. So let's set the flag to enable the atomic modesetting API support. Signed-off-by: Tomi Valkeinen Acked-by: Laurent Pinchart drivers/gpu/drm/omapdrm/omap_drv.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit b75e1513fcdbc6e8988a57bc0d9fc21f8c4d7b2c Author: Tomi Valkeinen Date: Fri Aug 28 11:23:03 2015 +0300 drm/omap: remove unused plugin defines Remove unused defines related to SGX plugin which are not used. Signed-off-by: Tomi Valkeinen Acked-by: Laurent Pinchart drivers/gpu/drm/omapdrm/omap_drv.h | 6 ------ include/uapi/drm/omap_drm.h | 6 ------ 2 files changed, 12 deletions(-) commit 0d6fa53fd80582cc0090fc1497545ab3e502bb5e Author: Andy Gross Date: Wed Aug 12 11:24:38 2015 +0300 drm/omap: Use bitmaps for TILER placement Modified Tiler placement to utilize bitmaps for bookkeeping and all placement algorithms. This resulted in a substantial savings in time for all Tiler reservation and free operations. Typical savings are in the range of 28% decrease in time taken with larger buffers showing a 80%+ decrease. Signed-off-by: Andy Gross Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_dmm_tiler.c | 14 +- drivers/gpu/drm/omapdrm/tcm-sita.c | 801 +++++++------------------------ drivers/gpu/drm/omapdrm/tcm.h | 26 +- 3 files changed, 204 insertions(+), 637 deletions(-) commit 73d77107b8e5eba57e831b414de7eeb75a719646 Author: Laurent Pinchart Date: Mon Dec 14 22:39:42 2015 +0200 drm: omapdrm: gem: Remove check for impossible condition The GEM object can't be tiled without a usergart as that condition is checked and considered as an error when creating the GEM object. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_gem.c | 3 --- 1 file changed, 3 deletions(-) commit 92b4b44538a034495fc598f61cc95f4e647adbd1 Author: Laurent Pinchart Date: Mon Dec 14 22:39:41 2015 +0200 drm: omapdrm: gem: Simplify error handling when creating GEM object The goto error statement end up just returning NULL without performing any cleanup, replace it with a direct return. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_gem.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 08b710f85cb835114257fe60c9f0ca5610c8ac29 Author: Laurent Pinchart Date: Mon Dec 14 22:39:40 2015 +0200 drm: omapdrm: gem: Don't free mmap offset twice The drm_gem_free_mmap_offset() call in omap_gem_free_object() is redundant as the same function is called from drm_gem_object_release(). Remove it. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_gem.c | 2 -- 1 file changed, 2 deletions(-) commit 74128a237eca99dbca6a8ca47f062b6791441221 Author: Laurent Pinchart Date: Mon Dec 14 22:39:39 2015 +0200 drm: omapdrm: gem: Fix GEM object destroy in error path Use the omap_gem_free_object() function to destroy the GEM object in the omap_gem_new_handle() error path instead of doing it manually (and incorrectly). Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_gem.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 00e9c7c7002de36dd247745c825d4663c65e0a5b Author: Laurent Pinchart Date: Mon Dec 14 22:39:38 2015 +0200 drm: omapdrm: gem: Free the correct memory object The GEM object free handler frees memory allocated by the driver using the pointer to the drm_gem_object instead of the pointer to the omap_gem_object that embeds it. This doesn't cause any issue in practice as the drm_gem_object is the first field of omap_gem_object, but would cause memory corruption if the structure layout changes. Fix it. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_gem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ef3f4e998240c33a9a424d5c1dbb045f2b919d43 Author: Laurent Pinchart Date: Mon Dec 14 22:39:36 2015 +0200 drm: omapdrm: gem: Mask out private flags passed from userspace The 8 high order bits of the buffer flags are reserved for internal use. Mask them out from the flags passed by userspace. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_drv.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit f4302747af0275813922a9fd24e1718bae2f1142 Author: Laurent Pinchart Date: Mon Dec 14 22:39:34 2015 +0200 drm: omapdrm: gem: Move global usergart variable to omap_drm_private The structure contains data related to a device instance, it shouldn't be a global variable. While at it rename the usergart structures with an omap_drm_ prefix. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_drv.h | 3 +++ drivers/gpu/drm/omapdrm/omap_gem.c | 54 +++++++++++++++++++++++--------------- 2 files changed, 36 insertions(+), 21 deletions(-) commit 7ef93b0aa85dd16632be29ae7b4bffd550c17d5a Author: Laurent Pinchart Date: Mon Dec 14 22:39:33 2015 +0200 drm: omapdrm: gem: Group functions by purpose Divide the GEM implementation in groups of functions to improve readability. No code change is performed by this commit. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_gem.c | 140 +++++++++++++++++++++++-------------- 1 file changed, 87 insertions(+), 53 deletions(-) commit b902f8f4d69094690accf4c483e9f176be525000 Author: Laurent Pinchart Date: Mon Dec 14 22:39:32 2015 +0200 drm: omapdrm: gem: Remove forward declarations Reorder functions to get rid of forward declarations Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_gem.c | 90 +++++++++++++++++++------------------- 1 file changed, 46 insertions(+), 44 deletions(-) commit 6405e414ddc684f87fec56a1cd6b06be898d69a9 Author: Laurent Pinchart Date: Mon Dec 14 22:39:31 2015 +0200 drm: omapdrm: gem: Remove unused function prototypes Several DRM core function prototypes refer to functions that don't exist anymore and are thus obviously never called. Remove them. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_gem.c | 6 ------ 1 file changed, 6 deletions(-) commit e1c1174f8d5602b497bd237b7a937b58b58e6b95 Author: Laurent Pinchart Date: Mon Dec 14 22:39:30 2015 +0200 drm: omapdrm: Make fbdev emulation optional Don't compile the fbdev emulation code when fbdev emulation support is disabled. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/Makefile | 3 ++- drivers/gpu/drm/omapdrm/omap_debugfs.c | 4 ++++ drivers/gpu/drm/omapdrm/omap_drv.c | 4 ---- drivers/gpu/drm/omapdrm/omap_drv.h | 10 ++++++++++ drivers/gpu/drm/omapdrm/omap_fbdev.c | 4 ++++ drivers/gpu/drm/omapdrm/omap_gem.c | 4 ++++ 6 files changed, 24 insertions(+), 5 deletions(-) commit f8ef29ee45664e86805d4359e352a0a9acbd1d13 Author: Laurent Pinchart Date: Mon Dec 14 22:39:29 2015 +0200 drm: omapdrm: Fix plane state free in plane reset handler The plane reset handler frees the plane state and allocates a new default state, but when doing so attempt to free the plane state using the base plane state pointer instead of casting it to the driver-specific state object that has been allocated. Fix it by using the omap_plane_atomic_destroy_state() function to destroy the plane state instead of duplicating the code. Signed-off-by: Laurent Pinchart [tomi.valkeinen@ti.com: move of the func into separate patch] Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_plane.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit e07323cf1bf2f45cf0e237f3d9990370d54fb714 Author: Tomi Valkeinen Date: Tue Dec 15 11:33:23 2015 +0200 drm: omapdrm: move omap_plane_reset() Move omap_plane_reset() function to avoid forward declarations in the next patch. Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_plane.c | 54 ++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 27 deletions(-) commit e1c49bdcdbe31008919ac81e08b46b14e30afd12 Author: Thierry Reding Date: Wed Dec 2 17:23:31 2015 +0100 drm/omap: Use platform_register/unregister_drivers() These new helpers simplify implementing multi-driver modules and properly handle failure to register one driver by unregistering all previously registered drivers. Signed-off-by: Thierry Reding Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_drv.c | 26 +++++++------------------- 1 file changed, 7 insertions(+), 19 deletions(-) commit d4182e35aa4ae358c024ca3d370fb3cc3da30eb7 Author: Luis de Bethencourt Date: Tue Oct 20 15:48:31 2015 +0100 drm: omapdrm: tiler: Remove unneded module alias for tiler omap_dmm_tiler.c can't be compiled as a module and it is built unconditionally as part of omapdrm. Since it can't be used as a module, there is no need for it to have an unused MODULE_ALIAS(). Signed-off-by: Luis de Bethencourt Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_dmm_tiler.c | 1 - 1 file changed, 1 deletion(-) commit 49f2a47d913184b97ef84b2e4fd438dbee341487 Author: Alexey Khoroshilov Date: Sat Dec 26 01:42:41 2015 +0300 prism54: fix checks for dma mapping errors prism54 checks for dma mapping errors by comparison returned address with zero, while pci_dma_mapping_error() should be used. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov Signed-off-by: Kalle Valo drivers/net/wireless/intersil/prism54/islpci_dev.c | 4 +++- drivers/net/wireless/intersil/prism54/islpci_eth.c | 5 +++-- drivers/net/wireless/intersil/prism54/islpci_mgt.c | 4 ++-- 3 files changed, 8 insertions(+), 5 deletions(-) commit e47301b06d5a65678690f04c2248fd181db1e59a Author: Uri Mashiach Date: Thu Dec 24 16:05:00 2015 +0200 wlcore/wl12xx: spi: fix NULL pointer dereference (Oops) Fix the below Oops when trying to modprobe wlcore_spi. The oops occurs because the wl1271_power_{off,on}() function doesn't check the power() function pointer. [ 23.401447] Unable to handle kernel NULL pointer dereference at virtual address 00000000 [ 23.409954] pgd = c0004000 [ 23.412922] [00000000] *pgd=00000000 [ 23.416693] Internal error: Oops: 80000007 [#1] SMP ARM [ 23.422168] Modules linked in: wl12xx wlcore mac80211 cfg80211 musb_dsps musb_hdrc usbcore usb_common snd_soc_simple_card evdev joydev omap_rng wlcore_spi snd_soc_tlv320aic23_i2c rng_core snd_soc_tlv320aic23 c_can_platform c_can can_dev snd_soc_davinci_mcasp snd_soc_edma snd_soc_omap omap_wdt musb_am335x cpufreq_dt thermal_sys hwmon [ 23.453253] CPU: 0 PID: 36 Comm: kworker/0:2 Not tainted 4.2.0-00002-g951efee-dirty #233 [ 23.461720] Hardware name: Generic AM33XX (Flattened Device Tree) [ 23.468123] Workqueue: events request_firmware_work_func [ 23.473690] task: de32efc0 ti: de4ee000 task.ti: de4ee000 [ 23.479341] PC is at 0x0 [ 23.482112] LR is at wl12xx_set_power_on+0x28/0x124 [wlcore] [ 23.488074] pc : [<00000000>] lr : [] psr: 60000013 [ 23.488074] sp : de4efe50 ip : 00000002 fp : 00000000 [ 23.500162] r10: de7cdd00 r9 : dc848800 r8 : bf27af00 [ 23.505663] r7 : bf27a1a8 r6 : dcbd8a80 r5 : dce0e2e0 r4 : dce0d2e0 [ 23.512536] r3 : 00000000 r2 : 00000000 r1 : 00000001 r0 : dc848810 [ 23.519412] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel [ 23.527109] Control: 10c5387d Table: 9cb78019 DAC: 00000015 [ 23.533160] Process kworker/0:2 (pid: 36, stack limit = 0xde4ee218) [ 23.539760] Stack: (0xde4efe50 to 0xde4f0000) [...] [ 23.665030] [] (wl12xx_set_power_on [wlcore]) from [] (wlcore_nvs_cb+0x118/0xa4c [wlcore]) [ 23.675604] [] (wlcore_nvs_cb [wlcore]) from [] (request_firmware_work_func+0x30/0x58) [ 23.685784] [] (request_firmware_work_func) from [] (process_one_work+0x1b4/0x4b4) [ 23.695591] [] (process_one_work) from [] (worker_thread+0x3c/0x4a4) [ 23.704124] [] (worker_thread) from [] (kthread+0xd4/0xf0) [ 23.711747] [] (kthread) from [] (ret_from_fork+0x14/0x3c) [ 23.719357] Code: bad PC value [ 23.722760] ---[ end trace 981be8510db9b3a9 ]--- Prevent oops by validationg power() pointer value before calling the function. Signed-off-by: Uri Mashiach Cc: stable@vger.kernel.org Acked-by: Igor Grinberg Signed-off-by: Kalle Valo drivers/net/wireless/ti/wlcore/io.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 3719c17e1816695f415dd3b4ddcb679f7dc617c8 Author: Shahar Patury Date: Tue Dec 22 14:30:06 2015 +0200 wlcore/wl18xx: fw logger over sdio Enable the FW Logger to work over the SDIO interface in addition to over UART interface. In the new design we use fw internal memory instead of packet ram that was used in older (wl12xx) design. This change reduces the impact on TP and stability. A new event was added to notify fw logger is ready for reading. Dynamic configuration to debugfs was added as well. Signed-off-by: Shahar Patury Signed-off-by: Guy Mishol Signed-off-by: Kalle Valo drivers/net/wireless/ti/wl18xx/event.c | 2 + drivers/net/wireless/ti/wl18xx/event.h | 1 + drivers/net/wireless/ti/wl18xx/main.c | 9 +-- drivers/net/wireless/ti/wlcore/cmd.h | 1 - drivers/net/wireless/ti/wlcore/debugfs.c | 60 ++++++++++++++++++++ drivers/net/wireless/ti/wlcore/event.c | 82 +++++++++++++++++++++++++++ drivers/net/wireless/ti/wlcore/event.h | 9 +++ drivers/net/wireless/ti/wlcore/io.c | 11 ++-- drivers/net/wireless/ti/wlcore/io.h | 4 +- drivers/net/wireless/ti/wlcore/main.c | 96 ++++---------------------------- drivers/net/wireless/ti/wlcore/rx.c | 1 - drivers/net/wireless/ti/wlcore/sysfs.c | 26 --------- drivers/net/wireless/ti/wlcore/wlcore.h | 3 - 13 files changed, 177 insertions(+), 128 deletions(-) commit 0510931ef5e89d67f1c87c792219733972069269 Author: Rafał Miłecki Date: Thu Dec 17 20:53:54 2015 +0100 bcma: use module_init for the main part of bus initialization So far we were using fs_initcall. It was (and still is) needed because struct bus_type has to be registered early. However main bus initialization has to happen later as it requires SPROM which depends on NVRAM which depends on mtd. Solve it by using fs_initcall only for bus_register call and module_init for the rest. It affects bcma only when built-in obviously. This was tested with BCM4706 and BCM5357C0 (BCM47XX), BCM4708A0 (ARCH_BCM_5301X) and BCM43225 (PCIe card with bcma as module). Signed-off-by: Rafał Miłecki Signed-off-by: Kalle Valo drivers/bcma/main.c | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) commit 54255e818ef7a5e968c0230bc75649a68932d8ca Author: Stephen Rothwell Date: Thu Dec 31 13:40:11 2015 +1100 drm/rockchip: vop: export vop_component_ops to modules Fixes: a67719d18229 ("drm/rockchip: vop: spilt register related into rockchip_reg_vop.c") Signed-off-by: Stephen Rothwell Acked-by: Mark Yao Signed-off-by: Dave Airlie drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 1 + 1 file changed, 1 insertion(+) commit ccac0425655918fccd0ffec47b2788cb1ac62d7b Merge: a3748a9 2b2427d Author: David S. Miller Date: Thu Dec 31 00:53:11 2015 -0500 Merge branch 'ethtool-phy-stats' Andrew Lunn says: ==================== Ethtool support for phy stats This patchset add ethtool support for reading statistics from the PHY. The Marvell and Micrel Phys are then extended to report receiver packet errors and idle errors. v2: Fix linking when phylib is not enabled. v3: Inline helpers into ethtool.c, so fixing when phylib is a module. v4: Add missing static ==================== Signed-off-by: David S. Miller commit 2b2427d06426a99bf5f57f28b6c2477e78577a5e Author: Andrew Lunn Date: Wed Dec 30 16:28:27 2015 +0100 phy: micrel: Add ethtool statistics counters The PHY counters receiver errors and errors while idle. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/micrel.c | 96 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) commit d2fa47d9dd5c5f82d78c4503cf33989f67e8aa64 Author: Andrew Lunn Date: Wed Dec 30 16:28:26 2015 +0100 phy: marvell: Add ethtool statistics counters The PHY counters receiver errors and errors while idle. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/marvell.c | 135 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) commit f3a4094558ddf8afa8bb58250d548e15e059c65a Author: Andrew Lunn Date: Wed Dec 30 16:28:25 2015 +0100 ethtool: Add phy statistics Ethernet PHYs can maintain statistics, for example errors while idle and receive errors. Add an ethtool mechanism to retrieve these statistics, using the same model as MAC statistics. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller include/linux/phy.h | 6 ++++ include/uapi/linux/ethtool.h | 3 ++ net/core/ethtool.c | 81 +++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 89 insertions(+), 1 deletion(-) commit 627ccd20b4ad3ba836472468208e2ac4dfadbf03 Author: Kent Overstreet Date: Sun Nov 29 18:47:01 2015 -0800 bcache: Change refill_dirty() to always scan entire disk if necessary Previously, it would only scan the entire disk if it was starting from the very start of the disk - i.e. if the previous scan got to the end. This was broken by refill_full_stripes(), which updates last_scanned so that refill_dirty was never triggering the searched_from_start path. But if we change refill_dirty() to always scan the entire disk if necessary, regardless of what last_scanned was, the code gets cleaner and we fix that bug too. Signed-off-by: Kent Overstreet Cc: stable@vger.kernel.org Signed-off-by: Jens Axboe drivers/md/bcache/writeback.c | 37 ++++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) commit 8d16ce540c94c9d366eb36fc91b7154d92d6397b Author: Stefan Bader Date: Sun Nov 29 18:44:49 2015 -0800 bcache: prevent crash on changing writeback_running Added a safeguard in the shutdown case. At least while not being attached it is also possible to trigger a kernel bug by writing into writeback_running. This change adds the same check before trying to wake up the thread for that case. Signed-off-by: Stefan Bader Cc: Kent Overstreet Cc: stable@vger.kernel.org Signed-off-by: Jens Axboe drivers/md/bcache/writeback.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d7076f21629f8f329bca4a44dc408d94670f49e2 Author: Gabriel de Perthuis Date: Sun Nov 29 18:40:23 2015 -0800 bcache: allows use of register in udev to avoid "device_busy" error. Allows to use register, not register_quiet in udev to avoid "device_busy" error. The initial patch proposed at https://lkml.org/lkml/2013/8/26/549 by Gabriel de Perthuis does not unlock the mutex and hangs the kernel. See http://thread.gmane.org/gmane.linux.kernel.bcache.devel/2594 for the discussion. Cc: Denis Bychkov Cc: Kent Overstreet Cc: Eric Wheeler Cc: Gabriel de Perthuis Cc: stable@vger.kernel.org Signed-off-by: Jens Axboe drivers/md/bcache/super.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 2ecf0cdb2b437402110ab57546e02abfa68a716b Author: Zheng Liu Date: Sun Nov 29 17:21:57 2015 -0800 bcache: unregister reboot notifier if bcache fails to unregister device In bcache_init() function it forgot to unregister reboot notifier if bcache fails to unregister a block device. This commit fixes this. Signed-off-by: Zheng Liu Tested-by: Joshua Schmid Tested-by: Eric Wheeler Cc: Kent Overstreet Cc: stable@vger.kernel.org Signed-off-by: Jens Axboe drivers/md/bcache/super.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 4d4d8573a8451acc9f01cbea24b7e55f04a252fe Author: Al Viro Date: Sun Nov 29 17:20:59 2015 -0800 bcache: fix a leak in bch_cached_dev_run() Signed-off-by: Al Viro Tested-by: Joshua Schmid Tested-by: Eric Wheeler Cc: Kent Overstreet Cc: stable@vger.kernel.org Signed-off-by: Jens Axboe drivers/md/bcache/super.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit fecaee6f20ee122ad75402c53d8278f9bb142ddc Author: Zheng Liu Date: Sun Nov 29 17:19:32 2015 -0800 bcache: clear BCACHE_DEV_UNLINK_DONE flag when attaching a backing device This bug can be reproduced by the following script: #!/bin/bash bcache_sysfs="/sys/fs/bcache" function clear_cache() { if [ ! -e $bcache_sysfs ]; then echo "no bcache sysfs" exit fi cset_uuid=$(ls -l $bcache_sysfs|head -n 2|tail -n 1|awk '{print $9}') sudo sh -c "echo $cset_uuid > /sys/block/sdb/sdb1/bcache/detach" sleep 5 sudo sh -c "echo $cset_uuid > /sys/block/sdb/sdb1/bcache/attach" } for ((i=0;i<10;i++)); do clear_cache done The warning messages look like below: [ 275.948611] ------------[ cut here ]------------ [ 275.963840] WARNING: at fs/sysfs/dir.c:512 sysfs_add_one+0xb8/0xd0() (Tainted: P W --------------- ) [ 275.979253] Hardware name: Tecal RH2285 [ 275.994106] sysfs: cannot create duplicate filename '/devices/pci0000:00/0000:00:09.0/0000:08:00.0/host4/target4:2:1/4:2:1:0/block/sdb/sdb1/bcache/cache' [ 276.024105] Modules linked in: bcache tcp_diag inet_diag ipmi_devintf ipmi_si ipmi_msghandler bonding 8021q garp stp llc ipv6 ext3 jbd loop sg iomemory_vsl(P) bnx2 microcode serio_raw i2c_i801 i2c_core iTCO_wdt iTCO_vendor_support i7core_edac edac_core shpchp ext4 jbd2 mbcache megaraid_sas pata_acpi ata_generic ata_piix dm_mod [last unloaded: scsi_wait_scan] [ 276.072643] Pid: 2765, comm: sh Tainted: P W --------------- 2.6.32 #1 [ 276.089315] Call Trace: [ 276.105801] [] ? warn_slowpath_common+0x87/0xc0 [ 276.122650] [] ? warn_slowpath_fmt+0x46/0x50 [ 276.139361] [] ? sysfs_add_one+0xb8/0xd0 [ 276.156012] [] ? sysfs_do_create_link+0x12b/0x170 [ 276.172682] [] ? sysfs_create_link+0x13/0x20 [ 276.189282] [] ? bcache_device_link+0xc1/0x110 [bcache] [ 276.205993] [] ? bch_cached_dev_attach+0x478/0x4f0 [bcache] [ 276.222794] [] ? bch_cached_dev_store+0x627/0x780 [bcache] [ 276.239680] [] ? alloc_pages_current+0xaa/0x110 [ 276.256594] [] ? sysfs_write_file+0xe5/0x170 [ 276.273364] [] ? vfs_write+0xb8/0x1a0 [ 276.290133] [] ? sys_write+0x51/0x90 [ 276.306368] [] ? system_call_fastpath+0x16/0x1b [ 276.322301] ---[ end trace 9f5d4fcdd0c3edfb ]--- [ 276.338241] ------------[ cut here ]------------ [ 276.354109] WARNING: at /home/wenqing.lz/bcache/bcache/super.c:720 bcache_device_link+0xdf/0x110 [bcache]() (Tainted: P W --------------- ) [ 276.386017] Hardware name: Tecal RH2285 [ 276.401430] Couldn't create device <-> cache set symlinks [ 276.401759] Modules linked in: bcache tcp_diag inet_diag ipmi_devintf ipmi_si ipmi_msghandler bonding 8021q garp stp llc ipv6 ext3 jbd loop sg iomemory_vsl(P) bnx2 microcode serio_raw i2c_i801 i2c_core iTCO_wdt iTCO_vendor_support i7core_edac edac_core shpchp ext4 jbd2 mbcache megaraid_sas pata_acpi ata_generic ata_piix dm_mod [last unloaded: scsi_wait_scan] [ 276.465477] Pid: 2765, comm: sh Tainted: P W --------------- 2.6.32 #1 [ 276.482169] Call Trace: [ 276.498610] [] ? warn_slowpath_common+0x87/0xc0 [ 276.515405] [] ? warn_slowpath_fmt+0x46/0x50 [ 276.532059] [] ? bcache_device_link+0xdf/0x110 [bcache] [ 276.548808] [] ? bch_cached_dev_attach+0x478/0x4f0 [bcache] [ 276.565569] [] ? bch_cached_dev_store+0x627/0x780 [bcache] [ 276.582418] [] ? alloc_pages_current+0xaa/0x110 [ 276.599341] [] ? sysfs_write_file+0xe5/0x170 [ 276.616142] [] ? vfs_write+0xb8/0x1a0 [ 276.632607] [] ? sys_write+0x51/0x90 [ 276.648671] [] ? system_call_fastpath+0x16/0x1b [ 276.664756] ---[ end trace 9f5d4fcdd0c3edfc ]--- We forget to clear BCACHE_DEV_UNLINK_DONE flag in bcache_device_attach() function when we attach a backing device first time. After detaching this backing device, this flag will be true and sysfs_remove_link() isn't called in bcache_device_unlink(). Then when we attach this backing device again, sysfs_create_link() will return EEXIST error in bcache_device_link(). So the fix is trival and we clear this flag in bcache_device_link(). Signed-off-by: Zheng Liu Tested-by: Joshua Schmid Tested-by: Eric Wheeler Cc: Kent Overstreet Cc: stable@vger.kernel.org Signed-off-by: Jens Axboe drivers/md/bcache/super.c | 2 ++ 1 file changed, 2 insertions(+) commit c5f1e5adf956e3ba82d204c7c141a75da9fa449a Author: Kent Overstreet Date: Sun Nov 29 17:18:33 2015 -0800 bcache: Add a cond_resched() call to gc Signed-off-by: Takashi Iwai Tested-by: Eric Wheeler Cc: Kent Overstreet Cc: stable@vger.kernel.org Signed-off-by: Jens Axboe drivers/md/bcache/btree.c | 1 + 1 file changed, 1 insertion(+) commit 2ef9ccbfcb90cf84bdba320a571b18b05c41101b Author: Zheng Liu Date: Sun Nov 29 17:17:05 2015 -0800 bcache: fix a livelock when we cause a huge number of cache misses Subject : [PATCH v2] bcache: fix a livelock in btree lock Date : Wed, 25 Feb 2015 20:32:09 +0800 (02/25/2015 04:32:09 AM) This commit tries to fix a livelock in bcache. This livelock might happen when we causes a huge number of cache misses simultaneously. When we get a cache miss, bcache will execute the following path. ->cached_dev_make_request() ->cached_dev_read() ->cached_lookup() ->bch->btree_map_keys() ->btree_root() <------------------------ ->bch_btree_map_keys_recurse() | ->cache_lookup_fn() | ->cached_dev_cache_miss() | ->bch_btree_insert_check_key() -| [If btree->seq is not equal to seq + 1, we should return EINTR and traverse btree again.] In bch_btree_insert_check_key() function we first need to check upgrade flag (op->lock == -1), and when this flag is true we need to release read btree->lock and try to take write btree->lock. During taking and releasing this write lock, btree->seq will be monotone increased in order to prevent other threads modify this in cache miss (see btree.h:74). But if there are some cache misses caused by some requested, we could meet a livelock because btree->seq is always changed by others. Thus no one can make progress. This commit will try to take write btree->lock if it encounters a race when we traverse btree. Although it sacrifice the scalability but we can ensure that only one can modify the btree. Signed-off-by: Zheng Liu Tested-by: Joshua Schmid Tested-by: Eric Wheeler Cc: Joshua Schmid Cc: Zhu Yanhai Cc: Kent Overstreet Cc: stable@vger.kernel.org Signed-off-by: Jens Axboe drivers/md/bcache/btree.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 0b161e6330e27c191a0ff0d44082ff7832a8c8a1 Author: Trond Myklebust Date: Wed Dec 30 18:14:06 2015 -0500 SUNRPC: Fix a missing break in rpc_anyaddr() The missing break means that we always return EAFNOSUPPORT when faced with a request for an IPv6 loopback address. Reported-by: coverity (CID 401987) Signed-off-by: Trond Myklebust net/sunrpc/clnt.c | 1 + 1 file changed, 1 insertion(+) commit 9a327405014f4ef4cdad67a0686db82b9f23c62c Author: Mika Westerberg Date: Mon Dec 21 15:26:31 2015 +0200 HID: i2c-hid: Prevent sending reports from racing with device reset When an i2c-hid device is resumed from system sleep the driver resets the device to be sure it is in known state. The device is expected to issue an interrupt when reset is complete. This reset might take few milliseconds to complete so if the HID driver on top (hid-rmi) starts to set up the device by sending feature reports etc. the device might not issue the reset complete interrupt anymore. Below is what happens to touchpad on Lenovo Yoga 900 during resume from system sleep: [ 24.790951] i2c_hid i2c-SYNA2B29:00: i2c_hid_hwreset [ 24.790973] i2c_hid i2c-SYNA2B29:00: i2c_hid_set_power [ 24.790982] i2c_hid i2c-SYNA2B29:00: __i2c_hid_command: cmd=22 00 00 08 [ 24.793011] i2c_hid i2c-SYNA2B29:00: resetting... [ 24.793016] i2c_hid i2c-SYNA2B29:00: __i2c_hid_command: cmd=22 00 00 01 Here i2c-hid sends reset command to the touchpad. [ 24.794012] i2c_hid i2c-SYNA2B29:00: input: 06 00 01 00 00 00 [ 24.794051] i2c_hid i2c-SYNA2B29:00: i2c_hid_set_or_send_report [ 24.794059] i2c_hid i2c-SYNA2B29:00: __i2c_hid_command: cmd=22 00 3f 03 0f 23 00 04 00 0f 01 Now hid-rmi puts the touchpad to correct mode by sending it a feature report. This makes the touchpad not to issue reset complete interrupt. [ 24.796092] i2c_hid i2c-SYNA2B29:00: __i2c_hid_command: waiting... i2c-hid starts to wait for the reset interrupt to trigger which never happens. [ 24.798304] i2c_hid i2c-SYNA2B29:00: i2c_hid_set_or_send_report [ 24.798313] i2c_hid i2c-SYNA2B29:00: __i2c_hid_command: cmd=25 00 17 00 09 01 42 00 2e 00 19 19 00 10 cc 06 74 04 0f 19 00 00 00 00 00 Yet another output report from hid-rmi driver. [ 29.795630] i2c_hid i2c-SYNA2B29:00: __i2c_hid_command: finished. [ 29.795637] i2c_hid i2c-SYNA2B29:00: failed to reset device. After 5 seconds i2c-hid driver times out. [ 29.795642] i2c_hid i2c-SYNA2B29:00: i2c_hid_set_power [ 29.795649] i2c_hid i2c-SYNA2B29:00: __i2c_hid_command: cmd=22 00 01 08 [ 29.797576] dpm_run_callback(): i2c_hid_resume+0x0/0xb0 returns -61 [ 29.797584] PM: Device i2c-SYNA2B29:00 failed to resume: error -61 After this the touchpad does not work anymore (and also resume itself gets slowed down because of the timeout). Prevent sending of feature/output reports while the device is being reset by adding a mutex which is held during that time. Reported-and-tested-by: Linus Torvalds Reported-by: Nish Aravamudan Suggested-by: Benjamin Tissoires Reviewed-by: Benjamin Tissoires Signed-off-by: Mika Westerberg Signed-off-by: Jiri Kosina drivers/hid/i2c-hid/i2c-hid.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) commit d8c5ed752e5b9aabad9ea8b53272b6abb4fa5235 Author: Julia Lawall Date: Wed Dec 30 12:28:49 2015 +0100 ALSA: dummy: constify dummy_timer_ops structures The dummy_timer_ops structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Takashi Iwai sound/drivers/dummy.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 55a8aeef6dbdb90f5ee97801b86c73ffd93e8afd Author: Julia Lawall Date: Wed Dec 30 11:44:53 2015 +0100 ALSA: cs5535audio: constify cs5535audio_dma_ops structures The cs5535audio_dma_ops structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Takashi Iwai sound/pci/cs5535audio/cs5535audio_pcm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 064e186f8fe7f5e1c59f74bc455ac3aa18efa503 Author: Julia Lawall Date: Wed Dec 30 11:21:57 2015 +0100 ALSA: atiixp: constify atiixp_dma_ops structures The atiixp_dma_ops structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Takashi Iwai sound/pci/atiixp.c | 6 +++--- sound/pci/atiixp_modem.c | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) commit a3748a9c7fc0e33ed1a5bcd6104098d9f63a61ed Merge: 1ab8c11 ab3a3b7 Author: David S. Miller Date: Wed Dec 30 16:34:53 2015 -0500 Merge branch '10GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== 10GbE Intel Wired LAN Driver Updates 2015-12-29 This series contains updates to ixgbe and ixgbevf. William Dauchy provides a fix for ixgbevf that was implemented for ixgbe, commit 5d6002b7b822c7 ("ixgbe: Fix handling of NAPI budget when multiple queues are enabled per vector"). The issue was that the polling routine would increase the budget for receive to at least 1 per queue if multiple queues were present, which resulted in receive packets being processed when the budget was 0. Emil provides minor cleanups for ixgbevf, one being that we need to check rx_itr_setting with == and not &, since it is not a mask. Added QSFP PHY support in ixgbe to allow for more accurate reporting of port settings. Fixed the max RSS limit for X550 which is 63, not 64. Veola fixes ixgbe ethtool reporting of backplane type interfaces as 1000/10000baseT link modes, instead, report the media as KR, KX or KX4 based on the backplane interface present. Mark cleans up redundancy in the setting of hw_enc_features that makes it appear that X550 has more encapsulation features than other devices. Also do not set NETIF_F_SG any longer since that is set by the register_netdev() call. Also fixed the X550EM_x revision check, which needs to check a value, not just a bit. Alex Duyck fixes additional bugs in ixgbe_clear_vf_vlans(), one being that the mask was using a divide instead of a modulus, which resulted in the mask bit being incorrectly set to 0 or 1 based on the value of the VF being tested. Alex also found that he was not consistent in using the "word" argument as an offset or as a register offset, so made the code consistently use word as the offset in the array. v2: dropped patch 8 of the original series, as it was undoing a part of the fix Alex Duyck was doing in patch 9 of the original series. Dropped based on feedback from Emil (the author). ==================== Signed-off-by: David S. Miller commit 1ab8c11f51c132fb366439f90abc83b42966ada7 Merge: da0bcb4 ab07ead Author: David S. Miller Date: Wed Dec 30 16:33:46 2015 -0500 Merge branch 'be2net-next' Sathya Perla says: ==================== be2net: patch set The following patch set contains some feature additions, code re-organization and cleanup and a few non-critical fixes. Pls consider applying this to the net-next tree. Thanks. v3 changes: add a default case to the switch statement in patch 5 to satisfy the compiler (-Wswitch). v2 changes: replaced an if/else block that checks for error values with a switch/case statement in patch 5. Patch 1 fixes VF link state transition from disabled to auto that did not work due to an issue in the FW. This issue could not be fixed in FW due to some backward compatibility issues it causes with released drivers. The issue has been fixed by introducing a new version (v2) of the cmd from 10.6 FW onwards. This patch adds support for v2 version of this cmd. Patch 2 reports a EOPNOTSUPP status to ethtool when the user tries to configure BE3/SRIOV in VEPA mode as it is not supported by the chip. Patch 3 cleansup FW flash image related constant definitions. Many of these definitions (such as section offset values) were defined in decimal format rather than hexa-decimal. This makes this part of the code un-readable. Also some defines related to BE2 are labeld "g2" and defines related to BE3 are labeled "g3". This patch cleans up all of this to make this code more readable. Patch 4 moves the FW cmd code to be_cmds.c. All code relating to FW cmds has been in be_cmds.[ch], excepting FW flash cmd related code. This patch moves these routines from be_main.c to be_cmds.c. Patch 5 adds a log message to report digital signature errors while flashing a FW image. From FW version 11.0 onwards, the FW supports a new "secure mode" feature (based on a jumper setting on the adapter.) In this mode, the FW image when flashed is authenticated with a digital signature. Patch 6 removes a line of code that has no effect. Patch 7 removes some unused variables. Patch 8 fixes port resource descriptor query via the GET_PROFILE FW cmd. An earlier commit passed a specific pf_num while issuing this cmd as FW returns descriptors for all functions when pf_num is zero. But, when pf_num is set to a non-zero value, FW does not return the port resource descriptor. This patch fixes this by setting pf_num to 0 while issuing the query cmd and adds code to pick the correct NIC resource descriptor from the list of descriptors returned by FW. Patch 9 adds support for ethtool get-dump feature. In the past when this option was not yet available, this feature was supported via the --register-dump option as a workaround. This patch removes support for FW-dump via --register-dump option as it is now available via --get-dump option. Even though the "ethtool --register-dump" cmd which used to work earlier, will now fail with ENOTSUPP error, we feel it is not an issue as this is used only for diagnostics purpose. Patch 10 bumps up the driver version. ==================== Signed-off-by: David S. Miller commit ab07ead53327ba574b84547a9c403fabab9e5a64 Author: Suresh Reddy Date: Wed Dec 30 01:29:05 2015 -0500 be2net: bump up the driver version to 11.0.0.0 Signed-off-by: Suresh Reddy Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fd7ff6f06a4eda894e309bf21c6f11fc86f08841 Author: Venkat Duvvuru Date: Wed Dec 30 01:29:04 2015 -0500 be2net: support ethtool get-dump option This patch adds support for ethtool's --get-dump option in be2net, to retrieve FW dump. In the past when this option was not yet available, this feature was supported via the --register-dump option as a workaround. This patch removes support for FW-dump via --register-dump option as it is now available via --get-dump option. Even though the "ethtool --register-dump" cmd which used to work earlier, will now fail with ENOTSUPP error, we feel it is not an issue as this is used only for diagnostics purpose. Signed-off-by: Venkat Duvvuru Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be.h | 1 + drivers/net/ethernet/emulex/benet/be_cmds.c | 38 ++++-------- drivers/net/ethernet/emulex/benet/be_cmds.h | 4 +- drivers/net/ethernet/emulex/benet/be_ethtool.c | 82 ++++++++++++++++---------- drivers/net/ethernet/emulex/benet/be_main.c | 3 + 5 files changed, 71 insertions(+), 57 deletions(-) commit 980df249bdab2adc8522d2178bfffceba79c5e6b Author: Suresh Reddy Date: Wed Dec 30 01:29:03 2015 -0500 be2net: fix port-res desc query of GET_PROFILE_CONFIG FW cmd Commit 72ef3a88fa8e ("be2net: set pci_func_num while issuing GET_PROFILE_CONFIG cmd") passed a specific pf_num while issuing a GET_PROFILE_CONFIG cmd as FW returns descriptors for all functions when pf_num is zero. But, when pf_num is set to a non-zero value, FW does not return the Port resource descriptor. This patch fixes this by setting pf_num to 0 while issuing the query cmd and adds code to pick the correct NIC resource descriptor from the list of descriptors returned by FW. Fixes: 72ef3a88fa8e ("be2net: set pci_func_num while issuing GET_PROFILE_CONFIG cmd") Signed-off-by: Suresh Reddy Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be.h | 4 +- drivers/net/ethernet/emulex/benet/be_cmds.c | 85 ++++++++++++++++------------- drivers/net/ethernet/emulex/benet/be_cmds.h | 11 +--- drivers/net/ethernet/emulex/benet/be_main.c | 16 ++++-- 4 files changed, 63 insertions(+), 53 deletions(-) commit 04e888de2d72b587f81a18e42cb9af2c020ef63b Author: Venkat Duvvuru Date: Wed Dec 30 01:29:02 2015 -0500 be2net: remove unused error variables eeh_error, fw_timeout, hw_error variables in the be_adapter structure are not used anymore. An earlier patch that introduced adapter->err_flags to store this information missed removing these variables. Signed-off-by: Venkat Duvvuru Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be.h | 4 ---- 1 file changed, 4 deletions(-) commit fdf81bfb7aab307146cdc33c1d741db324572ca3 Author: Sathya Perla Date: Wed Dec 30 01:29:01 2015 -0500 be2net: remove a line of code that has no effect This patch removes a line of code that changes adapter->recommended_prio value followed by yet another assignment. Also, the variable is used to store the vlan priority value that is already shifted to the PCP bits position in the vlan tag format. Hence, the name of this variable is changed to recommended_prio_bits. Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be.h | 2 +- drivers/net/ethernet/emulex/benet/be_cmds.c | 3 +-- drivers/net/ethernet/emulex/benet/be_main.c | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) commit 6b525782820f49079a0848f72d7a379f0c101cf8 Author: Suresh Reddy Date: Wed Dec 30 01:29:00 2015 -0500 be2net: log digital signature errors while flashing FW image (based on a jumper setting on the adapter.) In this mode, the FW image when flashed is authenticated with a digital signature. This patch logs appropriate error messages and return a status to ethtool when errors relating to FW image authentication occur. Signed-off-by: Suresh Reddy Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be_cmds.c | 14 +++++++++++++- drivers/net/ethernet/emulex/benet/be_cmds.h | 4 +++- 2 files changed, 16 insertions(+), 2 deletions(-) commit a23113b5f6db9804da185bab4137dfad5dab9dc8 Author: Suresh Reddy Date: Wed Dec 30 01:28:59 2015 -0500 be2net: move FW flash cmd code to be_cmds.c All code relating to FW cmds is in be_cmds.[ch] excepting FW flash cmd related code. This patch moves these routines from be_main.c to be_cmds.c Signed-off-by: Suresh Reddy Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be_cmds.c | 583 +++++++++++++++++++++++++++- drivers/net/ethernet/emulex/benet/be_cmds.h | 15 +- drivers/net/ethernet/emulex/benet/be_main.c | 564 --------------------------- 3 files changed, 578 insertions(+), 584 deletions(-) commit 8836ff48b92296bd70b2aa86883a245eaca7001a Author: Suresh Reddy Date: Wed Dec 30 01:28:58 2015 -0500 be2net: cleanup FW flash image related macro defines Many constant definitions relating to the FW-image layout (such as section offset values) were defined in decimal format rather than hexa-decimal. This makes this part of the code un-readable. Also some defines related to BE2 are labeld "g2" and defines related to BE3 are labeled "g3". This patch cleans up all of this to make this code more readable. Signed-off-by: Suresh Reddy Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be_cmds.h | 141 ++++++++++++++++------------ drivers/net/ethernet/emulex/benet/be_main.c | 78 +++++++-------- 2 files changed, 118 insertions(+), 101 deletions(-) commit ac0f5fba632023a39be26ac42afd5cfc1f2cc0b4 Author: Suresh Reddy Date: Wed Dec 30 01:28:57 2015 -0500 be2net: avoid configuring VEPA mode on BE3 BE3 chip doesn't support VEPA mode. Signed-off-by: Suresh Reddy Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be_main.c | 3 +++ 1 file changed, 3 insertions(+) commit d9d426af6bfb4b7f407191395fffbfe42b1ea129 Author: Suresh Reddy Date: Wed Dec 30 01:28:56 2015 -0500 be2net: fix VF link state transition from disabled to auto The VF link state setting transition from "disable" to "auto" does not work due to a bug in SET_LOGICAL_LINK_CONFIG_V1 cmd in FW. This issue could not be fixed in FW due to some backward compatibility issues it causes with some released drivers. The issue has been fixed by introducing a new version (v2) of the cmd from 10.6 FW onwards. In v2, to set the VF link state to auto, both PLINK_ENABLE and PLINK_TRACK bits have to be set to 1. The VF link state setting feature now works on Lancer chips too from FW ver 10.6.315.0 onwards. Signed-off-by: Suresh Reddy Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be_cmds.c | 35 +++++++++++++++++++++-------- drivers/net/ethernet/emulex/benet/be_cmds.h | 3 ++- 2 files changed, 28 insertions(+), 10 deletions(-) commit 732d56489f21c04f7bf60c675f7d152c9239a09c Author: Jaegeuk Kim Date: Tue Dec 29 15:46:33 2015 -0800 f2fs: fix f2fs_ioc_abort_volatile_write There are two rules to handle aborting volatile or atomic writes. 1. drop atomic writes - we don't need to keep any stale db data. 2. write journal data - we should keep the journal data with fsync for db recovery. Signed-off-by: Jaegeuk Kim fs/f2fs/file.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 4e0d836d5fb26d2cdbb75b0d16d98bef6b798490 Author: Chao Yu Date: Wed Dec 30 17:40:31 2015 +0800 f2fs: fix to skip recovering dot dentries in a readonly fs If filesystem is readonly, leave user message info instead of recovering inline dot inode. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/namei.c | 7 +++++++ 1 file changed, 7 insertions(+) commit ed3d12561a731b99b58c6c95151291cebf0b3feb Author: Jaegeuk Kim Date: Mon Dec 28 11:39:06 2015 -0800 f2fs: load largest extent all the time Otherwise, we can get mismatched largest extent information. One example is: 1. mount f2fs w/ extent_cache 2. make a small extent 3. umount 4. mount f2fs w/o extent_cache 5. update the largest extent 6. umount 7. mount f2fs w/ extent_cache 8. get the old extent made by #2 Signed-off-by: Jaegeuk Kim fs/f2fs/extent_cache.c | 18 +++++++++++++----- fs/f2fs/f2fs.h | 2 +- fs/f2fs/inode.c | 3 ++- 3 files changed, 16 insertions(+), 7 deletions(-) commit 819d9153d4c87329910a4cb01198610cd24ec62d Author: Jaegeuk Kim Date: Mon Dec 28 13:48:11 2015 -0800 f2fs: use i_size_read to get i_size We need to use i_size_read() to get inode->i_size. Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 8dc0d6a11e7d985dd466ce0a8c71eaea50dd7cc6 Author: Jaegeuk Kim Date: Thu Dec 24 16:13:09 2015 -0800 f2fs: early check broken symlink length in the encrypted case If link is broken, its len is zero, and we don't need to move forward. Signed-off-by: Jaegeuk Kim fs/f2fs/namei.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit e96248bb45d42375b23e1c083ec5a55151503e82 Author: Chao Yu Date: Thu Dec 24 18:11:32 2015 +0800 f2fs: clean up f2fs_ioc_write_checkpoint Use f2fs_sync_fs to clean up codes in f2fs_ioc_write_checkpoint. Signed-off-by: Chao Yu [Jaegeuk Kim: remove unused err variable] Signed-off-by: Jaegeuk Kim fs/f2fs/file.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) commit 179448bfe4cd201e98e728391c6b01b25c849fe8 Author: Yunlei He Date: Mon Dec 28 21:48:32 2015 +0800 f2fs: add a max block check for get_data_block_bmap This patch adds a max block check for get_data_block_bmap. Trinity test program will send a block number as parameter into ioctl_fibmap, which will be used in get_node_path(), when the block number large than f2fs max blocks, it will trigger kernel bug. Signed-off-by: Yunlei He Signed-off-by: Xue Liu [Jaegeuk Kim: fix missing condition, pointed by Chao Yu] Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 4 ++++ fs/f2fs/f2fs.h | 1 + fs/f2fs/super.c | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) commit 9a950d52b7f0e1c64c2cc70d350562fb18c8b451 Author: Fan Li Date: Sat Dec 26 18:07:41 2015 +0800 f2fs: fix bugs and simplify codes of f2fs_fiemap fix bugs: 1. len could be updated incorrectly when start+len is beyond isize. 2. If there is a hole consisting of more than two blocks, it could fail to add FIEMAP_EXTENT_LAST flag for the last extent. 3. If there is an extent beyond isize, when we search extents in a range that ends at isize, it will also return the extent beyond isize, which is outside the range. Signed-off-by: Fan li Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 80 ++++++++++++++++++++-------------------------------------- 1 file changed, 27 insertions(+), 53 deletions(-) commit 6d5a1495eebd441216dc96913a4270100b26e104 Author: Chao Yu Date: Thu Dec 24 18:04:56 2015 +0800 f2fs: let user being aware of IO error Sometimes we keep dumb when IO error occur in lower layer device, so user will not receive any error return value for some operation, but actually, the operation did not succeed. This sould be avoided, so this patch reports such kind of error to user. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/checkpoint.c | 17 +++++++---------- fs/f2fs/data.c | 23 +++++++++++++---------- fs/f2fs/f2fs.h | 2 +- fs/f2fs/file.c | 4 +++- fs/f2fs/gc.c | 4 +++- fs/f2fs/node.c | 5 +++++ 6 files changed, 32 insertions(+), 23 deletions(-) commit d53841740fd7feec170339203b198020ff100c58 Author: Chao Yu Date: Thu Dec 24 18:03:29 2015 +0800 f2fs: add missing f2fs_balance_fs in __recover_dot_dentries __recover_do_dentries will try to grab free space in storage, so fix to add missing f2fs_balance_fs here. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/namei.c | 2 ++ 1 file changed, 2 insertions(+) commit 06d6f2263913029ccd6199fd10e7dca525d348b1 Author: Jaegeuk Kim Date: Wed Dec 23 14:56:09 2015 -0800 f2fs: declare static function The __f2fs_commit_super is static. Signed-off-by: Jaegeuk Kim fs/f2fs/super.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b4d07a3e1a6e783132be7506aeb171dc5728f077 Author: Jaegeuk Kim Date: Wed Dec 23 13:48:58 2015 -0800 f2fs: avoid f2fs_lock_op in f2fs_write_begin If f2fs_write_begin is to update data, we can bypass calling f2fs_lock_op() in order to avoid the checkpoint latency in the write syscall. Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 42 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 8 deletions(-) commit 4aa69d5667914dd0844d98ad84804b79a4845fa3 Author: Jaegeuk Kim Date: Wed Dec 23 14:17:47 2015 -0800 f2fs: return early when trying to read null nid If get_node_page() gets zero nid, we can return early without getting a wrong page. For example, get_dnode_of_data() can try to do that. Signed-off-by: Jaegeuk Kim fs/f2fs/node.c | 4 ++++ 1 file changed, 4 insertions(+) commit 2aadac085cf0ca3e0295988d4d1dbdeafc15a9f6 Author: Jaegeuk Kim Date: Wed Dec 23 11:55:18 2015 -0800 f2fs: introduce prepare_write_begin to clean up This patch adds prepare_write_begin to clean f2fs_write_begin. The major role of this function is to convert any inline_data and allocate or find block address. Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 92 ++++++++++++++++++++++++++++++++++------------------------ 1 file changed, 54 insertions(+), 38 deletions(-) commit fba48a8b14f405afc5c80a93ed64a12607dd52c4 Author: Chao Yu Date: Wed Dec 23 17:51:35 2015 +0800 f2fs: don't convert inline inode when inline_data option is disable If inline_data option is disable, when truncating an inline inode with size which is not exceed maxinum inline size, we should not convert inline inode to regular one to avoid the overhead of synchronizing conversion. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/inline.c | 3 --- fs/f2fs/namei.c | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) commit c34f42e2cb2d27650549306de5ff36839e9177d6 Author: Chao Yu Date: Wed Dec 23 17:50:30 2015 +0800 f2fs: report error of do_checkpoint do_checkpoint and write_checkpoint can fail due to reasons like triggering in a readonly fs or encountering IO error of storage device. So it's better to report such error info to user, let user be aware of failure of doing checkpoint. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/checkpoint.c | 29 +++++++++++++++++++---------- fs/f2fs/f2fs.h | 2 +- fs/f2fs/file.c | 5 +++-- fs/f2fs/recovery.c | 2 +- fs/f2fs/segment.c | 5 +++-- fs/f2fs/super.c | 5 +++-- 6 files changed, 30 insertions(+), 18 deletions(-) commit 2a3407607028f7c780f1c20faa4e922bf631d340 Author: Jaegeuk Kim Date: Tue Dec 22 13:23:35 2015 -0800 f2fs: call f2fs_balance_fs only when node was changed If user tries to update or read data, we don't need to call f2fs_balance_fs which triggers f2fs_gc, which increases unnecessary long latency. Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 26 ++++++++++++++++++++++---- fs/f2fs/file.c | 26 +++++++++----------------- fs/f2fs/inline.c | 4 ++++ 3 files changed, 35 insertions(+), 21 deletions(-) commit 3104af35eb6a2452ccc9912997e7728777100de2 Author: Chao Yu Date: Wed Dec 23 17:11:43 2015 +0800 f2fs: reduce covered region of sbi->cp_rwsem in f2fs_map_blocks Only cover sbi->cp_rwsem on one dnode page's allocation and modification instead of multiple's in f2fs_map_blocks, it can reduce the covered region of cp_rwsem, then we can avoid potential long time delay for concurrent checkpointer. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 93bae099eaa0ae784fbe4d9eddcdc54fb5812466 Author: Jaegeuk Kim Date: Tue Dec 22 12:59:54 2015 -0800 f2fs: record node block allocation in dnode_of_data This patch introduces recording node block allocation in dnode_of_data. This information helps to figure out whether any node block is allocated during specific file operations. Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 1 + fs/f2fs/f2fs.h | 1 + fs/f2fs/node.c | 5 +++++ 3 files changed, 7 insertions(+) commit 00623e6bcf40b03b39f612cef9a744453cf3e2a8 Author: Jaegeuk Kim Date: Tue Dec 22 11:56:08 2015 -0800 f2fs: avoid unnecessary f2fs_gc for dir operations The f2fs_balance_fs doesn't need to cover f2fs_new_inode or f2fs_find_entry works. Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/namei.c | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) commit b9d777b85ff1ff79a1173190317b25bebc404ab4 Author: Jaegeuk Kim Date: Tue Dec 22 11:09:35 2015 -0800 f2fs: check inline_data flag at converting time We can check inode's inline_data flag when calling to convert it. Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 8 +++----- fs/f2fs/file.c | 58 ++++++++++++++++++++++---------------------------------- fs/f2fs/inline.c | 3 +++ 3 files changed, 29 insertions(+), 40 deletions(-) commit 74fd8d9927ef08db30a85f131a124152aeba66c7 Author: Jaegeuk Kim Date: Mon Dec 21 19:25:50 2015 -0800 f2fs: speed up shrinking extent tree entries If there is no candidates for shrinking slab entries, we don't need to traverse any trees at all. Reviewed-by: Chao Yu [Jaegeuk Kim: fix missing initialization reported by Yunlei He] Signed-off-by: Jaegeuk Kim fs/f2fs/extent_cache.c | 14 ++++++++++++++ fs/f2fs/f2fs.h | 1 + fs/f2fs/shrinker.c | 2 +- 3 files changed, 16 insertions(+), 1 deletion(-) commit fceef393a538134f03b778c5d2519e670269342f Author: Al Viro Date: Tue Dec 29 15:58:39 2015 -0500 switch ->get_link() to delayed_call, kill ->put_link() Signed-off-by: Al Viro Documentation/filesystems/Locking | 2 - Documentation/filesystems/porting | 6 +++ Documentation/filesystems/vfs.txt | 21 +++++---- drivers/staging/lustre/lustre/llite/symlink.c | 18 ++++---- fs/9p/vfs_inode.c | 9 ++-- fs/9p/vfs_inode_dotl.c | 9 ++-- fs/affs/symlink.c | 1 - fs/autofs4/symlink.c | 3 +- fs/btrfs/inode.c | 1 - fs/cifs/cifsfs.c | 1 - fs/cifs/cifsfs.h | 3 +- fs/cifs/link.c | 6 ++- fs/coda/cnode.c | 1 - fs/configfs/symlink.c | 17 ++++---- fs/ecryptfs/inode.c | 7 +-- fs/ext2/symlink.c | 1 - fs/ext4/symlink.c | 8 ++-- fs/f2fs/namei.c | 16 ++++--- fs/fuse/dir.c | 6 +-- fs/gfs2/inode.c | 8 ++-- fs/hostfs/hostfs_kern.c | 16 +++---- fs/jfs/symlink.c | 1 - fs/kernfs/symlink.c | 19 ++++---- fs/libfs.c | 9 ++-- fs/minix/inode.c | 1 - fs/namei.c | 63 +++++++++++---------------- fs/ncpfs/inode.c | 1 - fs/nfs/symlink.c | 6 +-- fs/nilfs2/namei.c | 1 - fs/ocfs2/symlink.c | 1 - fs/overlayfs/inode.c | 45 ++----------------- fs/proc/base.c | 8 ++-- fs/proc/inode.c | 16 +++---- fs/proc/namespaces.c | 3 +- fs/proc/self.c | 7 +-- fs/proc/thread_self.c | 7 +-- fs/reiserfs/namei.c | 1 - fs/squashfs/symlink.c | 1 - fs/sysv/inode.c | 1 - fs/xfs/xfs_iops.c | 6 +-- include/linux/delayed_call.h | 34 +++++++++++++++ include/linux/fs.h | 14 +++--- mm/shmem.c | 19 ++++---- 43 files changed, 206 insertions(+), 218 deletions(-) commit 1fd9a71076ccbcf731cf02408122600a6f2b5d17 Author: Geliang Tang Date: Wed Dec 30 22:16:37 2015 +0800 irqchip/zevio: Use irq_data_get_chip_type() helper Use irq_data_get_chip_type() instead of container_of(). Signed-off-by: Geliang Tang Cc: Jason Cooper Cc: Marc Zyngier Link: http://lkml.kernel.org/r/4cc3a3a7a74c7a1894892a85aa7eabbd1534fe96.1451484758.git.geliangtang@163.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-zevio.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit de327e4966cdbad2b7053c84a6f591fbdc54f7cb Author: Nicolas Boichat Date: Sun Dec 27 18:17:06 2015 +0800 spi: mediatek: Prevent overflows in FIFO transfers In the case where transfer length is not a multiple of 4, KASAN reports 2 out-of-bounds memory accesses: - mtk_spi_interrupt: ioread32_rep writes past the end of trans->rx_buf. - mtk_spi_fifo_transfer: iowrite32_rep reads past the end of xfer->tx_buf. Fix this by using memcpy on the remainder of the bytes. Signed-off-by: Nicolas Boichat Signed-off-by: Mark Brown drivers/spi/spi-mt65xx.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) commit 26eb5a9a6a8545ebb9d45de9e6d43e511b250839 Author: Charles Keepax Date: Tue Dec 29 09:49:19 2015 +0000 ASoC: arizona: Exit startup early if no runtime commit 9b8ef9f6b3fc ("ASoC: dapm: Add startup & shutdown for dai_links") Added support for calling startup on CODEC to CODEC links, however this is called with a NULL runtime pointer. There isn't really a sensible way to pass a valid runtime pointer to a CODEC to CODEC link at the moment, so we need to make the startup function safe for NULL runtimes. This patch returns from the Arizona startup function early if there is no runtime, this is perfectly safe as all the startup function does is set the PCM constraints for user-space which arn't relevant to a CODEC to CODEC link anyway. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/arizona.c | 3 +++ 1 file changed, 3 insertions(+) commit e5d9cfc6f5fe56caa44cefbc7ef4531c480d901d Author: Andrzej Hajda Date: Thu Dec 24 08:02:39 2015 +0100 ASoC: rsnd: fix usrcnt decrementing bug Field usrcnt is unsigned so it cannot be lesser than zero. The patch fixes the check, moves it to the beginning of the function and changes return value to -EIO in case of usercnt error. 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 Acked-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/ssi.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) commit cc023478dc8a3ab07828620dd80303fcd81fb227 Author: Sylwester Nawrocki Date: Tue Dec 29 18:34:40 2015 +0100 spi: s3c64xx: Remove unused platform_device_id entries s5pv210 and exynos4 are now DT only platforms hence these entries can now be safely removed from the match table. Signed-off-by: Sylwester Nawrocki Signed-off-by: Mark Brown drivers/spi/spi-s3c64xx.c | 6 ------ 1 file changed, 6 deletions(-) commit e116615b80bb89484ad4d55c752a00dd6379f95c Author: Charles Keepax Date: Tue Dec 29 16:25:14 2015 +0000 ASoC: wm5110: Use helper function to lock the DAPM mutex A couple of call sites were missed when the snd_soc_dapm_mutex_lock function was added this patch fixes those up. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm5110.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit 7ff6319e7da5c09f0ce86d122d46040807262325 Author: Bard Liao Date: Wed Dec 30 15:33:20 2015 +0800 ASoC: rt5645: use polling to support HS button The IRQ pin will keep high when the headset button is pressed. And keep low when the headset button is released. So, we need irq trigger at both edges. However, some platform can't support it. Therefore, we polling the register to report the button release event once a button presse event is received. To support the headset button detection function for those can't support both edges trigger platforms, we also need to invert the polarity of jack detection irq since we need to keep the IRQ pin low in normal case. Signed-off-by: John Lin Signed-off-by: Bard Liao Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) commit 2bc0bb5fe71dee6fdaf81ff81f6e739ff9f7ff19 Author: Filipe Manana Date: Wed Dec 30 02:42:30 2015 +0000 Btrfs: fix race between free space endio workers and space cache writeout While running a stress test I ran into the following trace/transaction abort: [471626.672243] ------------[ cut here ]------------ [471626.673322] WARNING: CPU: 9 PID: 19107 at fs/btrfs/extent-tree.c:3740 btrfs_write_dirty_block_groups+0x17c/0x214 [btrfs]() [471626.675492] BTRFS: Transaction aborted (error -2) [471626.676748] Modules linked in: btrfs dm_flakey dm_mod crc32c_generic xor raid6_pq nfsd auth_rpcgss oid_registry nfs_acl nfs lockd grace fscache sunrpc loop fuse parport_pc i2c_piix [471626.688802] CPU: 14 PID: 19107 Comm: fsstress Tainted: G W 4.3.0-rc5-btrfs-next-17+ #1 [471626.690148] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.8.1-0-g4adadbd-20150316_085822-nilsson.home.kraxel.org 04/01/2014 [471626.691901] 0000000000000000 ffff880016037cf0 ffffffff812566f4 ffff880016037d38 [471626.695009] ffff880016037d28 ffffffff8104d0a6 ffffffffa040c84e 00000000fffffffe [471626.697490] ffff88011fe855f8 ffff88000c484cb0 ffff88000d195000 ffff880016037d90 [471626.699201] Call Trace: [471626.699804] [] dump_stack+0x4e/0x79 [471626.701049] [] warn_slowpath_common+0x9f/0xb8 [471626.702542] [] ? btrfs_write_dirty_block_groups+0x17c/0x214 [btrfs] [471626.704326] [] warn_slowpath_fmt+0x48/0x50 [471626.705636] [] ? write_one_cache_group.isra.32+0x77/0x82 [btrfs] [471626.707048] [] btrfs_write_dirty_block_groups+0x17c/0x214 [btrfs] [471626.708616] [] commit_cowonly_roots+0x1d7/0x25a [btrfs] [471626.709950] [] btrfs_commit_transaction+0x4c4/0x991 [btrfs] [471626.711286] [] ? signal_pending_state+0x31/0x31 [471626.712611] [] btrfs_sync_fs+0x145/0x1ad [btrfs] [471626.715610] [] ? SyS_tee+0x226/0x226 [471626.716718] [] sync_fs_one_sb+0x20/0x22 [471626.717672] [] iterate_supers+0x75/0xc2 [471626.718800] [] sys_sync+0x52/0x80 [471626.719990] [] entry_SYSCALL_64_fastpath+0x12/0x6f [471626.721835] ---[ end trace baf57f43d76693f4 ]--- [471626.722954] BTRFS: error (device sdc) in btrfs_write_dirty_block_groups:3740: errno=-2 No such entry This is a very rare situation and it happened due to a race between a free space endio worker and writing the space caches for dirty block groups at a transaction's commit critical section. The steps leading to this are: 1) A task calls btrfs_commit_transaction() and starts the writeout of the space caches for all currently dirty block groups (i.e. it calls btrfs_start_dirty_block_groups()); 2) The previous step starts writeback for space caches; 3) When the writeback finishes it queues jobs for free space endio work queue (fs_info->endio_freespace_worker) that execute btrfs_finish_ordered_io(); 4) The task committing the transaction sets the transaction's state to TRANS_STATE_COMMIT_DOING and shortly after calls btrfs_write_dirty_block_groups(); 5) A free space endio job joins the transaction, through btrfs_join_transaction_nolock(), and updates a free space inode item in the root tree through btrfs_update_inode_fallback(); 6) Updating the free space inode item resulted in COWing one or more nodes/leaves of the root tree, and that resulted in creating a new metadata block group, which gets added to the transaction's list of dirty block groups (this is a very rare case); 7) The free space endio job has not released yet its transaction handle at this point, so the new metadata block group was not yet fully created (didn't go through btrfs_create_pending_block_groups() yet); 8) The transaction commit task sees the new metadata block group in the transaction's list of dirty block groups and processes it. When it attempts to update the block group's block group item in the extent tree, through write_one_cache_group(), it isn't able to find it and aborts the transaction with error -ENOENT - this is because the free space endio job hasn't yet released its transaction handle (which calls btrfs_create_pending_block_groups()) and therefore the block group item was not yet added to the extent tree. Fix this waiting for free space endio jobs if we fail to find a block group item in the extent tree and then retry once updating the block group item. Signed-off-by: Filipe Manana fs/btrfs/extent-tree.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit 86fb449b07b8215443a30782dca5755d5b8b0577 Author: Trond Myklebust Date: Wed Dec 30 10:57:01 2015 -0500 pNFS/flexfiles: Fix an Oopsable typo in ff_mirror_match_fh() Jeff reports seeing an Oops in ff_layout_alloc_lseg. Turns out copy+paste has played cruel tricks on a nested loop. Reported-by: Jeff Layton Cc: stable@vger.kernel.org # 4.3+ Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 511711af91f21d80b27f18b569352d6896562828 Author: Chris Mason Date: Wed Dec 30 07:52:35 2015 -0800 btrfs: don't run delayed references while we are creating the free space tree This is a short term solution to make sure btrfs_run_delayed_refs() doesn't change the extent tree while we are scanning it to create the free space tree. Longer term we need to synchronize scanning the block groups one by one, similar to what happens during a balance. Signed-off-by: Chris Mason fs/btrfs/ctree.h | 2 ++ fs/btrfs/disk-io.c | 24 ++++++++++++------------ fs/btrfs/extent-tree.c | 3 +++ fs/btrfs/free-space-tree.c | 15 +++++++++++---- 4 files changed, 28 insertions(+), 16 deletions(-) commit b4570aa994b8fdb3a9c04ed80a6cac69072d4d42 Author: Chris Mason Date: Wed Dec 30 07:37:26 2015 -0800 btrfs: fix compiling with CONFIG_BTRFS_DEBUG enabled. Merging in the free space tree deleted a variable needed when CONFIG_BTRFS_DEBUG=y Signed-off-by: Chris Mason fs/btrfs/extent-tree.c | 2 ++ 1 file changed, 2 insertions(+) commit f99551a2d39dc26ea03dc6761be11ac913eb2d57 Author: Larry Finger Date: Mon Dec 21 17:05:08 2015 -0600 rtlwifi: rtl_pci: Fix kernel panic In commit 38506ecefab9 (rtlwifi: rtl_pci: Start modification for new drivers), a bug was introduced that causes a NULL pointer dereference. As this bug only affects the infrequently used RTL8192EE and only under low-memory conditions, it has taken a long time for the bug to show up. The bug was reported on the linux-wireless mailing list and also at https://bugs.launchpad.net/ubuntu/+source/ubuntu-release-upgrader/ as bug #1527603 (kernel crashes due to rtl8192ee driver on ubuntu 15.10). Fixes: 38506ecefab9 ("rtlwifi: rtl_pci: Start modification for new drivers") Signed-off-by: Larry Finger Cc: Stable Signed-off-by: Kalle Valo drivers/net/wireless/realtek/rtlwifi/pci.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) commit d47762633fd2b2471868266d55acb6f3a5b4052b Author: Nicholas Mc Guire Date: Sat Dec 19 17:39:45 2015 +0100 rsi: bool tests do not need comparison This is an API consolidation only. Bool initializations should use true and false thus bool tests don't need an explicit comparison. Signed-off-by: Nicholas Mc Guire Signed-off-by: Kalle Valo drivers/net/wireless/rsi/rsi_91x_mgmt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 97d14b623c481126416f98dea9d40f650d518ee7 Author: Nicholas Mc Guire Date: Sat Dec 19 17:39:26 2015 +0100 rsi: consolidate kmalloc/memset 0 calls to kzalloc This is an API consolidation only. The use of kmalloc + memset to 0 is equivalent to kzalloc. Signed-off-by: Nicholas Mc Guire Signed-off-by: Kalle Valo drivers/net/wireless/rsi/rsi_91x_mgmt.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 7be0f5b5e169a566be9400481c21de32f147ccbe Author: Avinash Patil Date: Wed Dec 16 04:21:45 2015 -0800 mwifiex: enable MSI interrupt support in pcie Newer pcie devices (8897 onwards) support MSI. This patch enables it. Signed-off-by: Avinash Patil Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/marvell/mwifiex/pcie.c | 33 ++++++++++++++++++++++------- drivers/net/wireless/marvell/mwifiex/pcie.h | 1 + 2 files changed, 26 insertions(+), 8 deletions(-) commit f3b35f28096895f2438c10ef719ef67d2951a8c9 Author: Amitkumar Karwar Date: Wed Dec 16 04:21:44 2015 -0800 mwifiex: add missing check for PCIe8997 chipset This patch ensures mwifiex_pcie_txbd_empty() does take care of 8997 chipset. Fixes: 6d85ef00d9dfe ("mwifiex: add support for 8997 chipset") Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/marvell/mwifiex/pcie.h | 1 + 1 file changed, 1 insertion(+) commit ce0c58d998410fb91c63a70e749e98bb0e67eb67 Author: Amitkumar Karwar Date: Wed Dec 16 04:21:43 2015 -0800 mwifiex: fix PCIe register information for 8997 chipset This patch corrects some information in mwifiex_pcie_card_reg() structure for 8997 chipset Fixes: 6d85ef00d9dfe ("mwifiex: add support for 8997 chipset") Signed-off-by: Amitkumar Karwar Signed-off-by: Shengzhen Li Signed-off-by: Kalle Valo drivers/net/wireless/marvell/mwifiex/pcie.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 1d8f5c1385402552f29143a4793875393a360038 Author: chunfan chen Date: Wed Dec 16 04:21:42 2015 -0800 mwifiex: fix potential integer truncation At some places, ie length is truncated from u16 to u8 while storing it to driver's internal variable. This patch fixes the problem. Signed-off-by: chunfan chen Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/marvell/mwifiex/main.h | 6 +++--- drivers/net/wireless/marvell/mwifiex/sta_ioctl.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) commit ade14a7df796d4e86bd9d181193c883a57b13db0 Author: Trond Myklebust Date: Tue Dec 29 18:55:19 2015 -0500 NFS: Fix attribute cache revalidation If a NFSv4 client uses the cache_consistency_bitmask in order to request only information about the change attribute, timestamps and size, then it has not revalidated all attributes, and hence the attribute timeout timestamp should not be updated. Reported-by: Donald Buczek Cc: stable@vger.kernel.org Signed-off-by: Trond Myklebust fs/nfs/inode.c | 54 +++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 39 insertions(+), 15 deletions(-) commit b68d0ae7e58624c33f2eddab471fee55db27dbf9 Author: Larry Finger Date: Mon Dec 14 16:34:38 2015 -0600 rtlwifi: rtl8192cu: Add missing parameter setup This driver fails to copy the module parameter for software encryption to the locations used by the main code. Signed-off-by: Larry Finger Cc: Stable Signed-off-by: Kalle Valo drivers/net/wireless/realtek/rtlwifi/rtl8192cu/sw.c | 2 ++ 1 file changed, 2 insertions(+) commit b24f19f16b9e43f54218c07609b783ea8625406a Author: Larry Finger Date: Mon Dec 14 16:34:37 2015 -0600 rtlwifi: rtl8192ce: Fix handling of module parameters The module parameter for software encryption was never transferred to the location used by the driver. Signed-off-by: Larry Finger Cc: Stable Signed-off-by: Kalle Valo drivers/net/wireless/realtek/rtlwifi/rtl8192ce/sw.c | 2 ++ 1 file changed, 2 insertions(+) commit 7503efbd82c15c4070adffff1344e5169d3634b4 Author: Larry Finger Date: Mon Dec 14 16:34:36 2015 -0600 rtlwifi: rtl8192se: Fix module parameter initialization Two of the module parameter descriptions show incorrect default values. In addition the value for software encryption is not transferred to the locations used by the driver. Signed-off-by: Larry Finger Cc: Stable Signed-off-by: Kalle Valo drivers/net/wireless/realtek/rtlwifi/rtl8192se/sw.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit d4d60b4caaa5926e1b243070770968f05656107a Author: Larry Finger Date: Mon Dec 14 16:34:35 2015 -0600 rtlwifi: rtl8192de: Fix incorrect module parameter descriptions Two of the module parameters are listed with incorrect default values. Signed-off-by: Larry Finger Cc: Stable Signed-off-by: Kalle Valo drivers/net/wireless/realtek/rtlwifi/rtl8192de/sw.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 06f34572c6110e2e2d5e653a957f1d74db9e3f2b Author: Larry Finger Date: Mon Dec 14 16:34:34 2015 -0600 rtlwifi: rtl8188ee: Fix module parameter initialization In this driver, parameters disable_watchdog and sw_crypto are never copied into the locations used in the main code. While modifying the parameter handling, the copying of parameter msi_support is moved to be with the rest. Signed-off-by: Larry Finger Cc: Stable Signed-off-by: Kalle Valo drivers/net/wireless/realtek/rtlwifi/rtl8188ee/sw.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 78bae1de422a7f6f2b4b61f6a5c379e3d7f96f44 Author: Larry Finger Date: Mon Dec 14 16:34:33 2015 -0600 rtlwifi: rtl8821ae: Fix errors in parameter initialization This driver failed to copy parameters sw_crypto and disable_watchdog into the locations actually used by the driver. In addition, msi_support was initialized three times and one of them used the wrong variable. The initialization of parameter int_clear was moved so that it is near that of the rest of the parameters. Signed-off-by: Larry Finger Cc: Stable Signed-off-by: Kalle Valo drivers/net/wireless/realtek/rtlwifi/rtl8821ae/sw.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 793b09994211fbe0b5cd5f7b6dd8cc9b6256c3c6 Author: Larry Finger Date: Mon Dec 14 16:34:32 2015 -0600 rtlwifi: rtl8723ae: Fix initialization of module parameters This driver has some errors in the handling of module parameters. These include missing initialization for parameters msi_support and disable_watchdog. In addition, neither of these parameters nor sw_crypto are transferred into the locations used by the driver. A final fix is adding parameter msi to the module named and description macros. Signed-off-by: Larry Finger Cc: Stable Signed-off-by: Kalle Valo drivers/net/wireless/realtek/rtlwifi/rtl8723ae/sw.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 7079604ddb83f428359feace3aeaf8a9f435be4a Author: Larry Finger Date: Mon Dec 14 16:34:31 2015 -0600 rtlwifi: rtl8723be: Fix module parameter initialization This driver has a number of errors in the module initialization. These include the following: Parameter msi_support is stored in two places - one is removed. Paramters sw_crypto and disable_watchdog were never stored in the final locations, nor were they initialized properly. Signed-off-by: Larry Finger Cc: Stable Signed-off-by: Kalle Valo drivers/net/wireless/realtek/rtlwifi/rtl8723be/sw.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 84a38fb3167e6cc25c4acfcbb79aa0d800542fd7 Author: chunfan chen Date: Mon Dec 14 04:15:15 2015 -0800 mwifiex: fix WPA connection problem Device fails to connect to some AP's configured in WPA security mode. Currently IE buffer parsing logic in driver expects WPA IE to be present at the beginning of IE buffer. Otherwise connection is failed with 'incompatible network setting' error. This patch fixes the problem by improving IE buffer parsing logic. Signed-off-by: chunfan chen Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/marvell/mwifiex/sta_ioctl.c | 75 +++++++++++++++++------- 1 file changed, 53 insertions(+), 22 deletions(-) commit 19b0a71017aa6d14a32541b8917f1ddf00bad0cd Author: Amitkumar Karwar Date: Mon Dec 14 04:15:14 2015 -0800 mwifiex: use world for unidentified region code It's better to use world if region code from EEPROM is unidentied instead of forcing it to FCC Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/marvell/mwifiex/cmdevt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 610d0af8e8d227e5ecf17568817205a69a206a8f Author: Amitkumar Karwar Date: Mon Dec 14 04:15:13 2015 -0800 mwifiex: update region_code_index array This array contains list of supported region codes. It is changed to make it aligned with region code to country mapping table in driver. Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/marvell/mwifiex/cfp.c | 2 +- drivers/net/wireless/marvell/mwifiex/main.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 7f3f1245ffcde03e46b012119c12d8262e2d297a Author: chunfan chen Date: Mon Dec 14 04:15:12 2015 -0800 mwifiex: fix wake on disconnect feature Default gpio and gap is downloaded to firmware while configuring host sleep for wake on disconnect. We may have gpio and gap modified by user. This patch fixes the problem. Signed-off-by: chunfan chen Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/marvell/mwifiex/cfg80211.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 776f742040ca5eb6242c60f29ac73d5752a5b621 Author: Amitkumar Karwar Date: Mon Dec 14 04:15:11 2015 -0800 mwifiex: fix AMPDU not setup on TDLS link problem Sometimes AP sends TDLS setup response as AMSDU packet. As driver doesn't parse it and update peer station's 11n capability in this case, AMPDU doesn't get setup. This patch calls mwifiex_process_tdls_action_frame() in AMSDU Rx path to fix the problem. Signed-off-by: Amitkumar Karwar Signed-off-by: Cathy Luo Signed-off-by: Kalle Valo drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 76ae3e26ea4341cd18705b6f78d1dbf10bb9de35 Author: Amitkumar Karwar Date: Mon Dec 14 04:15:10 2015 -0800 mwifiex: add debugfs file for testing reset of card This provides an option for user to power cycle the card. It will be used to change the firmware without actually rebooting the system. Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/marvell/mwifiex/debugfs.c | 30 ++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) commit 47f336d7e0df3ef04f5bae0f5f37cdb0f09996e1 Author: Amitkumar Karwar Date: Mon Dec 14 04:15:09 2015 -0800 mwifiex: remove redundant timestamp assignment During AMSDU aggregation, we are already using timestamp value of a first packet being aggregated. This patch removes redundant ktime_get_real() call. Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/marvell/mwifiex/11n_aggr.c | 2 -- 1 file changed, 2 deletions(-) commit bd642acf3213c2856221b4f3e2fd84056578b4fd Author: Amitkumar Karwar Date: Mon Dec 14 04:15:08 2015 -0800 mwifiex: suppress "Rx of mgmt packet failed" message Block ACK action frames are dropped in driver. This error is expected in this case. Let's lower the priority of this message. Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/marvell/mwifiex/sta_rx.c | 2 +- drivers/net/wireless/marvell/mwifiex/uap_txrx.c | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) commit abffd274a243c5e5e72a39148c9dd36b26f7c6b7 Author: Xinming Hu Date: Mon Dec 14 04:15:07 2015 -0800 mwifiex: abort cac in del_station() handler When hostapd is killed with Ctrl+C before cac get completed, stop_ap handler will not be called, thus priv->wdev.cac_started flag remains set. Hostapd restart attempt will be failed in this case with device busy error. This patch aborts cac in del_station handler to handle this corner case. Signed-off-by: Xinming Hu Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/marvell/mwifiex/cfg80211.c | 5 +++++ 1 file changed, 5 insertions(+) commit b0922ffa706be2aa556f19fa6aa0fa983ec19bfa Author: Xinming Hu Date: Mon Dec 14 04:15:06 2015 -0800 mwifiex: increase supported wowlan pattern length Maximum supported wowlan pattern length has been increased from 20 to 40. Signed-off-by: Xinming Hu Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/marvell/mwifiex/fw.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c8ac6a8ee8e70c128d3d562704846c8cba91c61d Author: Xinming Hu Date: Mon Dec 14 04:15:05 2015 -0800 mwifiex: fix bug for wildcard-prefix wowlan pattern Wildcard prefix bytes are ignored while downloading packet pattern to firmware. As packet offset is not adjusted accordingly firmware end up matching the pattern at wrong offset. The packet offset is corrected in this patch. Signed-off-by: Xinming Hu Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/marvell/mwifiex/cfg80211.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 5eab677799743b75037efcfcb8c660dffa33f244 Author: Zhaoyang Liu Date: Mon Dec 14 04:15:04 2015 -0800 mwifiex: advertise SMS4 cipher suite This is needed to support WAPI functionality. Signed-off-by: Zhaoyang Liu Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/marvell/mwifiex/cfg80211.c | 1 + 1 file changed, 1 insertion(+) commit 5b13d3e1f9260878c06763a13129bc94e51b4c9c Author: Shengzhen Li Date: Mon Dec 14 04:15:03 2015 -0800 mwifiex: multiple bss support This patch fixes issues observed while starting 3 different bss simultaneously, eg, 2 AP + 1 STA or 3 AP Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/marvell/mwifiex/cfg80211.c | 20 ++++++++---- drivers/net/wireless/marvell/mwifiex/decl.h | 6 ++-- drivers/net/wireless/marvell/mwifiex/main.h | 42 ++++++++++++++++++++----- 3 files changed, 51 insertions(+), 17 deletions(-) commit eb5d912e156409a951460578de898270e1c89617 Author: Shengzhen Li Date: Mon Dec 14 04:15:02 2015 -0800 mwifiex: change ap and station interface limits ap/station interface limit has been changed to allow creating maximum 3 interfaces. Signed-off-by: Shengzhen Li Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/marvell/mwifiex/cfg80211.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 9236b4dd6bfabefcf2063544083a66cd5f3a738d Author: Heiko Carstens Date: Mon Dec 28 13:20:43 2015 +0100 s390: get rid of CONFIG_SCHED_MC and CONFIG_SCHED_BOOK Use CONFIG_TOPOLOGY which selects CONFIG_SCHED_* all over the place to reduce the random usage of the previous config options. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/Kconfig | 6 +++--- arch/s390/include/asm/topology.h | 6 +++--- arch/s390/kernel/Makefile | 2 +- arch/s390/kernel/sysinfo.c | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) commit c095a94932ceee19fe36942aa49df7276f9e30b5 Author: Heiko Carstens Date: Mon Dec 28 12:53:51 2015 +0100 s390/Kconfig: remove pointless 64 bit dependencies s390 is always 64 bit. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/Kconfig | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit c6fc7b6f8ca5d3d59446ce4ee870569355cfb04a Author: Stefan Haberland Date: Tue Dec 22 13:34:38 2015 +0100 s390/dasd: fix failfast for disconnected devices Enabling failfast should let request fail immediately if either an error occurred or the device gets disconnected. For disconnected devices new requests are not fetches from the block queue and therefore failfast is not triggered. Fix by letting the DASD driver fetch requests for disconnected devices with failfast active. Signed-off-by: Stefan Haberland Signed-off-by: Martin Schwidefsky drivers/s390/block/dasd.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit cf61393f4aa30f4c2a11cf2437d49ff4de6eb4fb Author: Pierre Morel Date: Mon Dec 21 15:31:06 2015 +0100 s390/con3270: testing return kzalloc retval Return value from kzalloc is not tested and using a null pointer would lead to crash. Even if this should not happen at this moment, we may let the system decide if there is a better choice. Signed-off-by: Pierre Morel Signed-off-by: Martin Schwidefsky drivers/s390/char/con3270.c | 2 ++ 1 file changed, 2 insertions(+) commit c967e1df169d033b2da74e979e91b6e297e194fa Author: Aya Mahfouz Date: Sun Dec 13 20:51:49 2015 +0200 s390/hmcdrv: constify hmcdrv_ftp_ops structs Constifies hmcdrv_ftp_ops structures in s390's char driver since they are not modified after their initialization. Detected and found using Coccinelle. Suggested-by: Julia Lawall Signed-off-by: Aya Mahfouz Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky drivers/s390/char/hmcdrv_ftp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 8cb708f3d35e78f00528caf2f681900d2c7883b8 Author: Julia Lawall Date: Sun Dec 20 12:15:52 2015 +0100 s390/cio: add NULL test Add NULL test on call to kzalloc. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @@ expression x; identifier fld; @@ * x = kzalloc(...); ... when != x == NULL x->fld // Signed-off-by: Julia Lawall Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky drivers/s390/char/con3215.c | 2 ++ 1 file changed, 2 insertions(+) commit ab3a3b7b0cf88021376d565c526aa27b1e105148 Author: Alexander Duyck Date: Wed Dec 23 09:00:35 2015 -0800 ixgbe: Fix bugs in ixgbe_clear_vf_vlans() When I had rewritten the code for ixgbe_clear_vf_vlans() it looks like I had transitioned back and forth between using word as an offset and using word as a register offset. As a result I honestly don't see how the code was working before other than the fact that resetting the VLANs on the VF like didn't do much to clear them. Another issue found is that the mask was using a divide instead of a modulus. As a result the mask bit was incorrectly being set to either bit 0 or 1 based on the value of the VF being tested. As a result the wrong VFs were having their VLANs cleared if they were enabled. I have updated the code so that word represents the offset in the array. This way we can use the modulus and xor operations and they will make sense instead of being performed on a 4 byte aligned value. I replaced the statement "(word % 2) ^ 1" with "~word % 2" in order to reduce the line length as the line exceeded 80 characters with the register name inserted. The two should be equivalent so the change should be safe. Reported-by: Emil Tantilov Signed-off-by: Alexander Duyck Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 3ca2b2506ec9a3b1615930a6810d30ec9aba10a1 Author: Mark Rustad Date: Fri Nov 20 13:12:17 2015 -0800 ixgbe: Correct X550EM_x revision check The X550EM_x revision check needs to check a value, not just a bit. Use a mask and check the value. Also remove the redundant check inside the ixgbe_enter_lplu_t_x550em, because it can only be called when both the mac type and revision check pass. Signed-off-by: Mark Rustad Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 2 +- drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 9 +++------ 2 files changed, 4 insertions(+), 7 deletions(-) commit e9ee3238f8a480bbca58e51d02a93628d7c1f265 Author: Emil Tantilov Date: Fri Nov 20 13:02:16 2015 -0800 ixgbe: fix RSS limit for X550 X550 allows for up to 64 RSS queues, but the driver can have max of 63 (-1 MSIX vector for link). On systems with >= 64 CPUs the driver will set the redirection table for all 64 queues which will result in packets being dropped. Signed-off-by: Emil Tantilov Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fb8ad4a592c627783dc18cc147c7f4de55cf318d Author: Mark Rustad Date: Wed Nov 18 15:37:04 2015 -0800 ixgbe: Clean up redundancy in hw_enc_features Clean up minor redundancy in the setting of hw_enc_features that makes it appears that X550 uniquely has more encapsulation features than other devices. The driver only supports one more feature, so make it look that way. No longer set NETIF_F_SG since that is set by the register_netdev call. Thanks to Alex Duyck for noticing this slight confusion. Reported-by: Alexander Duyck Signed-off-by: Mark Rustad Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 695b816d1aeb09505f499ec7cc5e90657c8c11ac Author: Veola Nazareth Date: Wed Nov 11 16:22:59 2015 -0700 ixgbe: report correct media type for KR, KX and KX4 interfaces Ethtool reports backplane type interfaces as 1000/10000baseT link modes. This has been corrected to report the media as KR, KX or KX4 based on the backplane interface present. Signed-off-by: Veola Nazareth Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 55 ++++++++++++++++++------ 1 file changed, 42 insertions(+), 13 deletions(-) commit af56b4d865bf40e031df9118b0663ebf406ff121 Author: Emil Tantilov Date: Mon Nov 9 15:07:12 2015 -0800 ixgbe: add support for QSFP PHY types in ixgbe_get_settings() Add missing QSFP PHY types to allow for more accurate reporting of port settings. Signed-off-by: Emil Tantilov Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 4 ++++ 1 file changed, 4 insertions(+) commit 9ad3d6f7eb300d464bfce2c80e7b1594f5e5eff9 Author: Emil Tantilov Date: Wed Nov 4 16:02:21 2015 -0800 ixgbevf: minor cleanups for ixgbevf_set_itr() adapter->rx_itr_setting is not a mask so check it with == instead of & do not default to 12K interrupts in ixgbevf_set_itr() There should be no functional effect from these changes. Signed-off-by: Emil Tantilov Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit d0f71afffa1c3d5a36a4a278f1dbbd2643176dc3 Author: William Dauchy Date: Fri Oct 30 18:16:30 2015 +0100 ixgbevf: Fix handling of NAPI budget when multiple queues are enabled per vector This is the same patch as for ixgbe but applied differently according to busy polling. See commit 5d6002b7b822c74 ("ixgbe: Fix handling of NAPI budget when multiple queues are enabled per vector") Signed-off-by: William Dauchy Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 2 ++ 1 file changed, 2 insertions(+) commit 9ebf47bb748c17ebb2f9dde9169ed7a7612c3137 Author: Duc Dang Date: Tue Dec 29 17:05:31 2015 -0800 arm64: dts: X-Gene v2: I2C1 clock is always on X-Gene v2 I2C0 and I2C1 controllers share the same clock enable register field. This patch remove clock node for I2C1 and leave I2C1 clock always on as having it toggled on/off will affect I2C0 operation. Signed-off-by: Duc Dang arch/arm64/boot/dts/apm/apm-shadowcat.dtsi | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) commit 0fe8588fcaac6fff08937a338feb8e3082fe9e57 Author: Duc Dang Date: Tue Dec 29 17:02:05 2015 -0800 arm64: dts: X-Gene v1: I2C0 clock is always on X-Gene v1 I2C0 and I2C1 controllers share the same clock enable register field. This patch remove clock node for I2C0 and leave I2C0 clock always on as having it toggled on/off will affect I2C1 operation. Signed-off-by: Duc Dang arch/arm64/boot/dts/apm/apm-storm.dtsi | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) commit 984cf355aeaa8f2eda3861b50d0e8d3e3f77e83b Author: Ani Sinha Date: Thu Dec 17 17:15:10 2015 -0800 sysrq: Fix warning in sysrq generated crash. Commit 984d74a72076a1 ("sysrq: rcu-ify __handle_sysrq") replaced spin_lock_irqsave() calls with rcu_read_lock() calls in sysrq. Since rcu_read_lock() does not disable preemption, faulthandler_disabled() in __do_page_fault() in x86/fault.c returns false. When the code later calls might_sleep() in the pagefault handler, we get the following warning: BUG: sleeping function called from invalid context at ../arch/x86/mm/fault.c:1187 in_atomic(): 0, irqs_disabled(): 0, pid: 4706, name: bash Preemption disabled at:[] printk+0x48/0x4a To fix this, we release the RCU read lock before we crash. Tested this patch on linux 3.18 by booting off one of our boards. Fixes: 984d74a72076a1 ("sysrq: rcu-ify __handle_sysrq") Signed-off-by: Ani Sinha Reviewed-by: Rik van Riel Signed-off-by: Paul E. McKenney drivers/tty/sysrq.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 93beff2c1455497f35c21c561d475be1101dbdc2 Author: Duc Dang Date: Tue Dec 29 15:20:10 2015 -0800 arm64: dts: Fix to use standard DT node names for X-Gene 1 and X-Gene 2 platforms Use devicetree standard node name for I2C (i2c@...), GFC GPIO (gpio@...), DW GPIO (gpio@...), Standby GPIO (gpio@...). The DT node name of USB (dwusb@...) still needs to be kept to maintain backward compatibility with old firmware. Signed-off-by: Duc Dang arch/arm64/boot/dts/apm/apm-shadowcat.dtsi | 11 ++++++----- arch/arm64/boot/dts/apm/apm-storm.dtsi | 8 ++++---- 2 files changed, 10 insertions(+), 9 deletions(-) commit df83690ec2af3a4201ca538cdb8e61f960109c4e Merge: 20f8e03 d4d3c6c Author: Dave Airlie Date: Wed Dec 30 07:18:12 2015 +1000 Merge branch 'drm-rockchip-next-2015-12-28' of https://github.com/markyzq/kernel-drm-rockchip into drm-next These patches convert drm/rockchip to atomic API and add rk3036 vop support. * 'drm-rockchip-next-2015-12-28' of https://github.com/markyzq/kernel-drm-rockchip: dt-bindings: add document for rk3036-vop drm/rockchip: vop: add rk3036 vop support drm/rockchip: vop: spilt scale regsters drm/rockchip: vop: spilt register related into rockchip_reg_vop.c drm/rockchip: vop: move interrupt registers into vop_data drm/rockchip: vop: merge vop cfg_done into vop_data drm/rockchip: dw_hdmi: use encoder enable function drm: bridge/dw_hdmi: add atomic API support drm/rockchip: direct config connecter gate and out_mode drm/rockchip: support atomic asynchronous commit drm/rockchip: Optimization vop mode set drm/rockchip: Convert to support atomic API drm/rockchip: vop: replace dpms with enable/disable drm/rockchip: Use new vblank api drm_crtc_vblank_* commit cd3417c8fc9504cc1afe944515f338aff9ec286b Author: Al Viro Date: Tue Dec 29 16:03:53 2015 -0500 kill free_page_put_link() all callers are better off with kfree_put_link() Signed-off-by: Al Viro fs/configfs/symlink.c | 12 ++++++------ fs/fuse/dir.c | 6 +++--- fs/kernfs/symlink.c | 12 ++++++------ fs/libfs.c | 6 ------ include/linux/fs.h | 1 - 5 files changed, 15 insertions(+), 22 deletions(-) commit da0bcb4e36411c1e9e327359c36507e2e04964a1 Author: Geliang Tang Date: Sun Dec 27 21:15:44 2015 +0800 net: hns: use to_platform_device() Use to_platform_device() instead of open-coding it. Signed-off-by: Geliang Tang Signed-off-by: David S. Miller drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit bd0ed561356db935d0b5a68e2be32d976e6963c4 Author: Geliang Tang Date: Sun Dec 27 18:45:57 2015 +0800 atm: solos-pci: use to_pci_dev() Use to_pci_dev() instead of open-coding it. Signed-off-by: Geliang Tang Signed-off-by: David S. Miller drivers/atm/solos-pci.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 5e7112590e7cd20f2a243c51ecd9016feb319996 Merge: 26a4d06 688ecfe Author: David S. Miller Date: Tue Dec 29 15:13:45 2015 -0500 Merge branch 'bpf_hash-locking' Ming Lei says: ==================== bpf: hash: use per-bucket spinlock This patchset tries to optimize ebpf hash map, and follows the idea: Both htab_map_update_elem() and htab_map_delete_elem() can be called from eBPF program, and they may be in kernel hot path, it isn't efficient to use a per-hashtable lock in this two helpers, so this patch converts the lock into per-bucket spinlock. With this patchset, looks the performance penalty from eBPF decreased a lot, see the following test: 1) run 'tools/biolatency' of bcc before running block test; 2) run fio to test block throught over /dev/nullb0, (randread, 16jobs, libaio, 4k bs) and the test box is one 24cores(dual sockets) VM server: - without patchset: 607K IOPS - with this patchset: 1184K IOPS - without running eBPF prog: 1492K IOPS TODO: - remove the per-hashtable atomic counter V2: - fix checking on buckets size V1: - fix the wrong 3/3 patch ==================== Signed-off-by: David S. Miller commit 688ecfe60220516e8b6707c832ec02e92522dd85 Author: tom.leiming@gmail.com Date: Tue Dec 29 22:40:27 2015 +0800 bpf: hash: use per-bucket spinlock Both htab_map_update_elem() and htab_map_delete_elem() can be called from eBPF program, and they may be in kernel hot path, so it isn't efficient to use a per-hashtable lock in this two helpers. The per-hashtable spinlock is used for protecting bucket's hlist, and per-bucket lock is just enough. This patch converts the per-hashtable lock into per-bucket spinlock, so that contention can be decreased a lot. Signed-off-by: Ming Lei Acked-by: Daniel Borkmann Signed-off-by: David S. Miller kernel/bpf/hashtab.c | 50 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 32 insertions(+), 18 deletions(-) commit 45d8390c56bd2851097736c1c20ad958880168df Author: tom.leiming@gmail.com Date: Tue Dec 29 22:40:26 2015 +0800 bpf: hash: move select_bucket() out of htab's spinlock The spinlock is just used for protecting the per-bucket hlist, so it isn't needed for selecting bucket. Acked-by: Daniel Borkmann Signed-off-by: Ming Lei Signed-off-by: David S. Miller kernel/bpf/hashtab.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 6591f1e6662dd595effb52a54e42a6d2d2b03e51 Author: tom.leiming@gmail.com Date: Tue Dec 29 22:40:25 2015 +0800 bpf: hash: use atomic count Preparing for removing global per-hashtable lock, so the counter need to be defined as aotmic_t first. Acked-by: Daniel Borkmann Signed-off-by: Ming Lei Signed-off-by: David S. Miller kernel/bpf/hashtab.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 3b8d058cfe6a3b14abee324f4c4b33e64bf61aeb Author: Guenter Roeck Date: Fri Dec 25 16:01:45 2015 -0800 hwmon: (sch56xx) Drop watchdog driver data reference count callbacks Reference counting is now implemented in the watchdog core and no longer required in watchdog drivers. Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/hwmon/sch56xx-common.c | 31 +------------------------------ 1 file changed, 1 insertion(+), 30 deletions(-) commit 43f676ace2e0591718ff493d290bc49b35ec2ffc Author: Guenter Roeck Date: Fri Dec 25 16:01:44 2015 -0800 watchdog: da9055_wdt: Drop reference counting Reference counting is now implemented in the watchdog core and no longer required in watchdog drivers. Since it was implememented a no-op, and since the local memory is allocated with devm_kzalloc(), the reference counting code in the driver really did not really work anyway, and this patch effectively fixes a bug which could cause a crash on unloading if the watchdog device was still open. Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/da9055_wdt.c | 24 ------------------------ 1 file changed, 24 deletions(-) commit 756d1e9247dff6d416b0c9e073247f5e808bb5fa Author: Guenter Roeck Date: Fri Dec 25 16:01:43 2015 -0800 watchdog: da9052_wdt: Drop reference counting Reference counting is now implemented in the watchdog core and no longer required in watchdog drivers. Since it was implememented a no-op, and since the local memory is allocated with devm_kzalloc(), the reference counting code in the driver really did not really work anyway, and this patch effectively fixes a bug which could cause a crash on unloading if the watchdog device was still open. Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/da9052_wdt.c | 24 ------------------------ 1 file changed, 24 deletions(-) commit b4ffb1909843b28f3b1b60197d517b123b7a9b66 Author: Guenter Roeck Date: Fri Dec 25 16:01:42 2015 -0800 watchdog: Separate and maintain variables based on variable lifetime All variables required by the watchdog core to manage a watchdog are currently stored in struct watchdog_device. The lifetime of those variables is determined by the watchdog driver. However, the lifetime of variables used by the watchdog core differs from the lifetime of struct watchdog_device. To remedy this situation, watchdog drivers can implement ref and unref callbacks, to be used by the watchdog core to lock struct watchdog_device in memory. While this solves the immediate problem, it depends on watchdog drivers to actually implement the ref/unref callbacks. This is error prone, often not implemented in the first place, or not implemented correctly. To solve the problem without requiring driver support, split the variables in struct watchdog_device into two data structures - one for variables associated with the watchdog driver, one for variables associated with the watchdog core. With this approach, the watchdog core can keep track of its variable lifetime and no longer depends on ref/unref callbacks in the driver. As a side effect, some of the variables originally in struct watchdog_driver are now private to the watchdog core and no longer visible in watchdog drivers. As a side effect of the changes made, an ioctl will now always fail with -ENODEV after a watchdog device was unregistered with the character device still open. Previously, it would only fail with -ENODEV in some situations. Also, ioctl operations are now atomic from driver perspective. With this change, it is now guaranteed that the driver will not unregister a watchdog between a timeout change and the subsequent ping. The 'ref' and 'unref' callbacks in struct watchdog_driver are no longer used and marked as deprecated. Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck Documentation/watchdog/watchdog-kernel-api.txt | 45 +-- drivers/watchdog/watchdog_core.c | 2 - drivers/watchdog/watchdog_dev.c | 383 +++++++++++++------------ include/linux/watchdog.h | 22 +- 4 files changed, 218 insertions(+), 234 deletions(-) commit e7d162faa6d067777548cb98d55206cf7cd3438e Author: Guenter Roeck Date: Fri Dec 25 16:01:41 2015 -0800 watchdog: diag288: Stop re-using watchdog core internal flags A watchdog driver should not use watchdog subsystem internal flags. Use a driver variable and flag instead to maintain the watchdog state and to determine if a suspend operation is possible or not. Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/diag288_wdt.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) commit 32ecc6392654a0db34b310e8924b5b2c3b8bf503 Author: Guenter Roeck Date: Fri Dec 25 16:01:40 2015 -0800 watchdog: Create watchdog device in watchdog_dev.c The watchdog character device is currently created in watchdog_dev.c, and the watchdog device in watchdog_core.c. This results in cross-dependencies, since device creation needs to know the watchdog character device number as well as the watchdog class, both of which reside in watchdog_dev.c. Create the watchdog device in watchdog_dev.c to simplify the code. Inspired by earlier patch set from Damien Riegel. Cc: Damien Riegel Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/watchdog_core.c | 33 ++++-------------- drivers/watchdog/watchdog_core.h | 4 +-- drivers/watchdog/watchdog_dev.c | 73 +++++++++++++++++++++++++++++++++------- 3 files changed, 69 insertions(+), 41 deletions(-) commit c6dc65d885b98898bf287aaf44e020077b41769f Author: Dan Carpenter Date: Wed Dec 23 23:45:27 2015 +0100 NFC: nci: memory leak in nci_core_conn_create() I've moved the check for "number_destination_params" forward a few lines to avoid leaking "cmd". Fixes: caa575a86ec1 ('NFC: nci: fix possible crash in nci_core_conn_create') Acked-by: Christophe Ricard Signed-off-by: Dan Carpenter Signed-off-by: Samuel Ortiz net/nfc/nci/core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 97b69788971de8af994ba570d56c455e79eaf35e Author: Christophe Ricard Date: Wed Dec 23 23:45:26 2015 +0100 nfc: pn544: Remove i2c client gpio irq configuration gpio irq is already configured by the core i2c layers when reaching the probe function Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/pn544/i2c.c | 35 +---------------------------------- 1 file changed, 1 insertion(+), 34 deletions(-) commit be103b714e4e6ad7316b0cb9b9d473ddedaf4ad6 Author: Christophe Ricard Date: Wed Dec 23 23:45:25 2015 +0100 nfc: nxp-nci: Remove i2c client gpio irq configuration gpio irq is already configured by the core i2c layers when reaching the probe function. Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/nxp-nci/i2c.c | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) commit 7be4fb643ef2d1058b897ba9dbe17bf5ced04391 Author: Christophe Ricard Date: Wed Dec 23 23:45:24 2015 +0100 nfc: microread: Fix header comment microread platform_data header had an NXP header. Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz include/linux/platform_data/microread.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3897de6a6eb74ff8f25c2021431bedd4ba138685 Author: Christophe Ricard Date: Wed Dec 23 23:45:23 2015 +0100 nfc: microread: Remove useless irq field In microread_i2c_phy, irq field is never used. Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/microread/i2c.c | 2 -- 1 file changed, 2 deletions(-) commit 0b0a264df5d3854c3e6411c28616d2148c897bad Author: Christophe Ricard Date: Wed Dec 23 23:45:22 2015 +0100 nfc: fdp: Move i2c client irq checking It is cleaner to check if the i2c_client irq is not configured properly before allocating any data. Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/fdp/i2c.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 397d6497bdf787b1a31e40322d6114a68c6a0455 Author: Christophe Ricard Date: Wed Dec 23 23:45:21 2015 +0100 MAINTAINERS: nfc: Add missing platform_data files references Add missing platform_data file from several NFC controller (microread, nfcmrvl, nxp-nci, st21nfca, st-nci) Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz MAINTAINERS | 5 +++++ 1 file changed, 5 insertions(+) commit 72c54c42b2943985505966ece29f2d45b0330f26 Author: Christophe Ricard Date: Wed Dec 23 23:45:20 2015 +0100 nfc: st21nfca: Add support for HCI event connectivity Add support for connectivity event Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st21nfca/se.c | 1 + 1 file changed, 1 insertion(+) commit 25960c2176112f39e8862e692e07cad918c06707 Author: Christophe Ricard Date: Wed Dec 23 23:45:19 2015 +0100 nfc: st-nci: Add support for HCI event connectivity Add support for connectivity event Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st-nci/se.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9afec6d3866b8451abcf1a7a1a381a3be6c83386 Author: Christophe Ricard Date: Wed Dec 23 23:45:18 2015 +0100 nfc: netlink: HCI event connectivity implementation Add support for missing HCI event EVT_CONNECTIVITY and forward it to userspace. Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz include/net/nfc/nfc.h | 1 + net/nfc/core.c | 13 +++++++++++++ net/nfc/netlink.c | 37 +++++++++++++++++++++++++++++++++++++ net/nfc/nfc.h | 1 + 4 files changed, 52 insertions(+) commit dfa4089b3a3f3ac8bea847f968c92b89fbbf107c Author: Christophe Ricard Date: Wed Dec 23 23:45:17 2015 +0100 NFC: st21nfca: Auto-select core module The core st21nca module is useless without the I2C access module. So hide NFC_ST21NFCA and select it automatically if either NFC_ST21NFCA_I2C is selected. This avoids presenting NFC_ST21NFCA when NFC_ST21NFCA_I2C can't be selected. Cc: Jean Delvare Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st21nfca/Kconfig | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) commit 9ba04ebf82ba26d848a74e0e1c72ddf09d5a1265 Author: Christophe Ricard Date: Wed Dec 23 23:45:16 2015 +0100 NFC: st-nci: Auto-select core module The core st-nci module is useless without either the I2C or the SPI access module. So hide NFC_ST_NCI and select it automatically if either NFC_ST_NCI_I2C or NFC_ST_NCI_SPI is selected. This avoids presenting NFC_ST_NCI when neither NFC_ST_NCI_I2C nor NFC_ST_NCI_SPI can be selected. Cc: Jean Delvare Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st-nci/Kconfig | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) commit 2a84193f14c4196ee94bf1d44c5f28bcabe7e840 Author: Christophe Ricard Date: Wed Dec 23 23:45:15 2015 +0100 NFC: nci: Fix error check of nci_hci_create_pipe() result net/nfc/nci/hci.c: In function nci_hci_connect_gate : net/nfc/nci/hci.c:679: warning: comparison is always false due to limited range of data type In case of error, nci_hci_create_pipe() returns NCI_HCI_INVALID_PIPE, and not a negative error code. Correct the check to fix this. Acked-by: Geert Uytterhoeven Reported-by: Dan Carpenter Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz net/nfc/nci/hci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4940d1c35535c32e6d6e950d91efa485eab41d76 Author: Christophe Ricard Date: Wed Dec 23 23:45:14 2015 +0100 nfc: st21nfca: Remove useless pr_info in st21nfca_hci_i2c_disable Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st21nfca/i2c.c | 1 - 1 file changed, 1 deletion(-) commit a6e57ec6d96914d874b8809e0e1432a4dff23e45 Author: Christophe Ricard Date: Wed Dec 23 23:45:13 2015 +0100 nfc: st21nfca: Code cleanup A few code cleanups, mostly empty lines removal. Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st21nfca/i2c.c | 1 - drivers/nfc/st21nfca/se.c | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) commit ba2c231cbcbd5fdd6335b0839f7bf4a08f208e4e Author: Christophe Ricard Date: Wed Dec 23 23:45:12 2015 +0100 nfc: st-nci: Code cleanup A few code cleanups, mostly empty lines removal. Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st-nci/i2c.c | 1 - drivers/nfc/st-nci/se.c | 1 - drivers/nfc/st-nci/spi.c | 3 +-- 3 files changed, 1 insertion(+), 4 deletions(-) commit dfa8070d7f641e1fb1b5e5fe643faddfa4869e07 Author: Christophe Ricard Date: Wed Dec 23 23:45:11 2015 +0100 nfc: st21nfca: Add support for acpi probing for i2c device. Add support for acpi probing. SMO2100 is used for st21nfca It has been tested with the following acpi node on Minnowboard Max: Note: Remove uicc-present or ese-present Package if one them is not supported. Device (NFC1) { Name (_ADR, Zero) // _ADR: Address Name (_HID, "SMO2100") // _HID: Hardware ID Name (_CID, "SMO2100") // _CID: Compatible ID Name (_DDN, "SMO NFC") // _DDN: DOS Device Name Name (_UID, One) // _UID: Unique ID Name (_DSD, Package (0x02) { /* Device Properties for _DSD */ ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), Package (0x02) { Package (0x02) { "uicc-present", 1 }, Package (0x02) { "ese-present", 1 } } }) Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Name (SBUF, ResourceTemplate () { I2cSerialBus (0x0001, ControllerInitiated, 400000, AddressingMode7Bit, "\\_SB.I2C7", 0x00, ResourceConsumer, ,) GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000, "\\_SB.GPO2", 0x00, ResourceConsumer, ,) { // Pin list 0x0001 } GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, "\\_SB.GPO2", 0x00, ResourceConsumer, ,) { // Pin list 0x0002, } }) Return (SBUF) /* \_SB_.I2C7.NFC1._CRS.SBUF */ } Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } } Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st21nfca/i2c.c | 51 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) commit 60cd6d89319f7f3854bad5f1bad570d9f135b03c Author: Christophe Ricard Date: Wed Dec 23 23:45:10 2015 +0100 nfc: st-nci: Add support for acpi probing for spi device. Add support for acpi probing. SMO2101 is used for st21nfcb It has been tested with the following acpi node on Minnowboard: Note: Remove uicc-present or ese-present Package if one of them is not supported. Device (NFC1) { Name (_ADR, Zero) // _ADR: Address Name (_HID, "SMO2101") // _HID: Hardware ID Name (_CID, "SMO2101") // _CID: Compatible ID Name (_DDN, "SMO NFC") // _DDN: DOS Device Name Name (_UID, One) // _UID: Unique ID Name (_DSD, Package (0x02) { /* Device Properties for _DSD */ ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), Package (0x02) { Package (0x02) { "uicc-present", 1 }, Package (0x02) { "ese-present", 1 } } }) Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Name (SBUF, ResourceTemplate () { SpiSerialBus (0, PolarityLow, FourWireMode, 8, ControllerInitiated, 4000000, ClockPolarityLow, ClockPhaseFirst, "\\_SB.SPI1", 0x00, ResourceConsumer, ,) GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000, "\\_SB.GPO2", 0x00, ResourceConsumer, ,) { // Pin list 0x0001 } GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, "\\_SB.GPO2", 0x00, ResourceConsumer, ,) { // Pin list 0x0002, } }) Return (SBUF) /* \_SB_.SPI1.NFC1._CRS.SBUF */ } Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } } Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st-nci/spi.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) commit ed6a2f3fb770acc18bba8c9bc86f09e95d7fc641 Author: Christophe Ricard Date: Wed Dec 23 23:45:09 2015 +0100 nfc: st-nci: Add support for acpi probing for i2c device. Add support for acpi probing. SMO2101 is used for st21nfcb SMO2102 is used for st21nfcc It has been tested with the following acpi node on Minnowboard: Note: Remove uicc-present or ese-present Package if one them is not supported. Device (NFC1) { Name (_ADR, Zero) // _ADR: Address Name (_HID, "SMO2101") // _HID: Hardware ID Name (_CID, "SMO2101") // _CID: Compatible ID Name (_DDN, "SMO NFC") // _DDN: DOS Device Name Name (_UID, One) // _UID: Unique ID Name (_DSD, Package (0x02) { /* Device Properties for _DSD */ ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), Package (0x02) { Package (0x02) { "uicc-present", 1 }, Package (0x02) { "ese-present", 1 } } }) Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Name (SBUF, ResourceTemplate () { I2cSerialBus (0x0008, ControllerInitiated, 400000, AddressingMode7Bit, "\\_SB.I2C7", 0x00, ResourceConsumer, ,) GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000, "\\_SB.GPO2", 0x00, ResourceConsumer, ,) { // Pin list 0x0001 } GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, "\\_SB.GPO2", 0x00, ResourceConsumer, ,) { // Pin list 0x0002, } }) Return (SBUF) /* \_SB_.I2C7.NFC1._CRS.SBUF */ } Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } } Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st-nci/i2c.c | 53 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) commit 04e99b71fe6e96476884b0e6d50bfe421dee9960 Author: Christophe Ricard Date: Wed Dec 23 23:45:08 2015 +0100 nfc: st21nfca: Add macro for gpio name Add macro definition for each gpio string for an easier code maintenance. Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st21nfca/i2c.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 4c62c208ab777b03b7539f31adb2f2da3b3d0b31 Author: Christophe Ricard Date: Wed Dec 23 23:45:07 2015 +0100 nfc: st-nci: Add macro for gpio name Add macro definition for each gpio string for an easier code maintenance. Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st-nci/i2c.c | 6 ++++-- drivers/nfc/st-nci/spi.c | 7 +++++-- 2 files changed, 9 insertions(+), 4 deletions(-) commit 39db2d214898baa55db39a54f8644ffc0535fe4a Author: Christophe Ricard Date: Wed Dec 23 23:45:06 2015 +0100 nfc: st21nfca: Group device table together Group device table at the same place in order to make the code easier to read and parse. Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st21nfca/i2c.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit 3252897f7a326a480e662c3b38a554fc35c6ad31 Author: Christophe Ricard Date: Wed Dec 23 23:45:05 2015 +0100 nfc: st-nci: Group device table together Group device table at the same place in order to make the code easier to read and parse. Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st-nci/i2c.c | 11 ++++++----- drivers/nfc/st-nci/spi.c | 12 ++++++------ 2 files changed, 12 insertions(+), 11 deletions(-) commit a21512d1b61c6aeeb05d74910078bc19059da87b Author: Christophe Ricard Date: Wed Dec 23 23:45:04 2015 +0100 nfc: pn544: Remove #ifdef CONFIG_OF All of_* APIs are safe if CONFIG_OF is not define. Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/pn544/i2c.c | 11 ----------- 1 file changed, 11 deletions(-) commit da5afe06d565ac03c27c6d173f5eaeb473ca1080 Author: Christophe Ricard Date: Wed Dec 23 23:45:03 2015 +0100 nfc: nxp-nci: Remove #ifdef CONFIG_OF All of_* APIs are safe if CONFIG_OF is not define. Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/nxp-nci/i2c.c | 11 ----------- 1 file changed, 11 deletions(-) commit 9135177fb6cda166c2f4b1f5441a2cefedcbf034 Author: Christophe Ricard Date: Wed Dec 23 23:45:02 2015 +0100 nfc: st21nfca: Remove unneeded CONFIG_OF switches DT headers already define NOOP routines when CONFIG_OF is not defined. Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st21nfca/i2c.c | 9 --------- 1 file changed, 9 deletions(-) commit 1faa65b0cf29dd23a8641805003bd58c5b3ab16c Author: Christophe Ricard Date: Wed Dec 23 23:45:01 2015 +0100 nfc: st-nci: Remove unneeded CONFIG_OF switches DT headers already define NOOP routines when CONFIG_OF is not defined. Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st-nci/i2c.c | 9 --------- drivers/nfc/st-nci/spi.c | 9 --------- 2 files changed, 18 deletions(-) commit 53eb5252bb71c77b46ed953a2bb16627804dd29d Author: Christophe Ricard Date: Wed Dec 23 23:45:00 2015 +0100 nfc: st-nci: Remove useless #include "ndlc.h" Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st-nci/ndlc.c | 1 - 1 file changed, 1 deletion(-) commit 88e2ce014fd3472825f70050aec6e8426667ae90 Author: Geliang Tang Date: Wed Dec 23 00:18:42 2015 +0800 NFC: trf7970a: use to_spi_device Use to_spi_device() instead of open-coding it. Signed-off-by: Geliang Tang Signed-off-by: Samuel Ortiz drivers/nfc/trf7970a.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 6b52d994b2763c87d67b0968fa746824f8855783 Author: Shikha Singh Date: Tue Dec 22 04:53:37 2015 -0500 NFC: st95hf: Fix build error This fixes a build error on the mn10300 architecture: drivers/nfc/st95hf/core.c:765:20: error: conflicting types for 'irq_handler' static irqreturn_t irq_handler(int irq, void *st95hfcontext) ^ In file included from arch/mn10300/include/asm/reset-regs.h:16:0, from arch/mn10300/include/asm/irq.h:18, from include/linux/irq.h:26, from arch/mn10300/include/asm/hardirq.h:16, from include/linux/hardirq.h:8, from include/linux/interrupt.h:12, from drivers/nfc/st95hf/core.c:23: arch/mn10300/include/asm/exceptions.h:107:24: note: previous declaration of 'irq_handler' was here extern asmlinkage void irq_handler(void); Signed-off-by: Shikha Singh Signed-off-by: Samuel Ortiz drivers/nfc/st95hf/core.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit ccf614f5c0eb8ac18cc3c04e3fc9fc09d76e1052 Author: Shikha Singh Date: Fri Nov 20 06:40:21 2015 -0500 DT: bindings: net: nfc: Add ST95HF binding doc This patch includes ST95HF binding doc that guides how to make node entry of ST95HF in DT file of any platform. Signed-off-by: Shikha Singh Signed-off-by: Samuel Ortiz .../devicetree/bindings/net/nfc/st95hf.txt | 50 ++++++++++++++++++++++ 1 file changed, 50 insertions(+) commit cab47333f0f75b685bce1facecb73bf3632e1360 Author: Shikha Singh Date: Tue Dec 22 00:03:30 2015 +0100 NFC: Add STMicroelectronics ST95HF driver This driver supports STMicroelectronics NFC Transceiver "ST95HF", in in initiator role to read/write ISO14443 Type 4A, ISO14443 Type 4B and ISO15693 Type5 tags. The ST95HF datasheet is available here: http://www.st.com/web/en/resource/technical/document/datasheet/DM00102056.pdf Signed-off-by: Shikha Singh Signed-off-by: Samuel Ortiz drivers/nfc/Kconfig | 1 + drivers/nfc/Makefile | 1 + drivers/nfc/st95hf/Kconfig | 10 + drivers/nfc/st95hf/Makefile | 6 + drivers/nfc/st95hf/core.c | 1273 +++++++++++++++++++++++++++++++++++++++++++ drivers/nfc/st95hf/spi.c | 167 ++++++ drivers/nfc/st95hf/spi.h | 64 +++ 7 files changed, 1522 insertions(+) commit ce2e56cdfbb010e22073d303161e74c144ebe731 Author: Shikha Singh Date: Fri Nov 20 06:40:19 2015 -0500 NFC: digital: Add Type4A tags support The definition of DIGITAL_PROTO_NFCA_RF_TECH is modified to support ISO14443 Type4A tags. Without this change it is not possible to start polling for ISO14443 Type4A tags from the initiator side. Signed-off-by: Shikha Singh Signed-off-by: Samuel Ortiz net/nfc/digital_core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 5a1f052d59c21b603bcbadeb296b1574a6cc2d6d Merge: 541c9a8 e5d15cb Author: Kalle Valo Date: Tue Dec 29 18:44:19 2015 +0200 Merge tag 'iwlwifi-next-for-kalle-2015-12-21' of https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next * Make scan parameters low latency aware (Avi Stern) * Fix in the NL80211_FEATURE_FULL_AP_CLIENT_STATE state case (Ayala) * Fix enable injection mode (Chaya Rachel) * Various cleanups (Dan / Julia / myself) * Allow to stay more time on popular channels (David Spinadel) * Bug fixes for D0i3 (Eliad / Luca) * Fixes for GO uAPSD (myself) * Start of TSO support (myself) * Rate control bug fixes (Eyal / Gregory) * Start the work on 9000 devices (Johannes / Sara / Oren) * Start the work on a new Tx queue allocation model (Liad) * Debug infrastructure enhancements (Golan) commit 48d627648141479c8be8acd110191072e24eba25 Author: Geliang Tang Date: Mon Dec 28 21:53:07 2015 +0800 crypto: hifn_795x, picoxcell - use ablkcipher_request_cast Use ablkcipher_request_cast() instead of open-coding it. Signed-off-by: Geliang Tang Signed-off-by: Herbert Xu drivers/crypto/hifn_795x.c | 4 ++-- drivers/crypto/picoxcell_crypto.c | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) commit 6ff9d2761b8655991f48f113f7edaefea5c92905 Author: Johan Hovold Date: Tue Dec 29 13:36:16 2015 +0100 USB: mxu11x0: drop redundant function name from error messages Drop redundant function name from a few error messages. Drop redundant error message when generic open fails. Signed-off-by: Johan Hovold drivers/usb/serial/mxu11x0.c | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-) commit 3645ea87b9cd50123054aa0fd2417f601c45566f Author: Johan Hovold Date: Tue Dec 29 13:36:15 2015 +0100 USB: mxu11x0: fix debug-message typos Fix a couple of debug-message typos, and do some minor clean ups. Signed-off-by: Johan Hovold drivers/usb/serial/mxu11x0.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) commit 554eb0f205959081361965d04361ef03ca0e066d Author: Johan Hovold Date: Tue Dec 29 13:36:14 2015 +0100 USB: mxu11x0: rename usb-serial driver Rename the usb-serial driver "mxu11x0" to match the USB driver name. Signed-off-by: Johan Hovold drivers/usb/serial/mxu11x0.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 9631595a253e62a2be7476f99a23ade786829d5f Author: Johan Hovold Date: Tue Dec 29 13:36:13 2015 +0100 USB: mxu11x0: fix modem-control handling on B0-transitions Make sure to raise DTR and RTS on transitions from B0 and leave the other bits unchanged. Signed-off-by: Johan Hovold drivers/usb/serial/mxu11x0.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e69f7a6724182e3f3a4f3d73e74c08dd8f657a9d Author: Johan Hovold Date: Tue Dec 29 13:36:12 2015 +0100 USB: mxu11x0: fix memory leak on firmware download Make sure to release the private data before returning -ENODEV after having downloaded the firmware during first probe. Clean up the error paths while at it. Signed-off-by: Johan Hovold drivers/usb/serial/mxu11x0.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) commit 924eccc73db2f64a24865d21ff11be8043b24375 Author: Johan Hovold Date: Tue Dec 29 13:36:11 2015 +0100 USB: mxu11x0: fix memory leak in port-probe error path Fix memory leak in port-probe error path by verifying the interrupt-in urb before allocating the private data. Signed-off-by: Johan Hovold drivers/usb/serial/mxu11x0.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) commit 01414888eaf725a677171605cb051b1c6311e6ab Author: Andy Shevchenko Date: Mon Dec 28 15:41:25 2015 +0200 clocksource/drivers/acpi_pm: Convert to pr_* macros Like it's already done in one place in the driver, convert the rest to use pr_* macros instead of printk(KERN_LEVEL) calls. While here, join strings to be one string for one line to make grep on them easier. There is no functional change. Signed-off-by: Andy Shevchenko Cc: Daniel Lezcano Link: http://lkml.kernel.org/r/1451310085-113182-1-git-send-email-andriy.shevchenko@linux.intel.com Signed-off-by: Thomas Gleixner drivers/clocksource/acpi_pm.c | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) commit 9abb0ecdee69a2577560cc283368e490da974934 Author: Laura Abbott Date: Mon Dec 21 12:01:14 2015 -0800 x86/mm: Drop WARN from multi-BAR check ioremapping multiple BARs produces a warning with a message "Your kernel is fine". This message mostly serves to comfort kernel developers. Users do not read the message, they only see the big scary warning which means something must be horribly broken with their system. Less dramatically, the warn also sets the taint flag which makes it difficult to differentiate problems. If the kernel is actually fine as the warning claims it doesn't make sense for it to be tainted. Change the WARN_ONCE to a pr_warn with the caller of the ioremap. Signed-off-by: Laura Abbott Link: http://lkml.kernel.org/r/1450728074-31029-1-git-send-email-labbott@fedoraproject.org Signed-off-by: Thomas Gleixner arch/x86/mm/ioremap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0d430e3fb3f7cdc13c0d22078b820f682821b45a Author: Jan Beulich Date: Tue Dec 22 08:42:44 2015 -0700 x86/LDT: Print the real LDT base address This was meant to print base address and entry count; make it do so again. Fixes: 37868fe113ff "x86/ldt: Make modify_ldt synchronous" Signed-off-by: Jan Beulich Acked-by: Andy Lutomirski Link: http://lkml.kernel.org/r/56797D8402000078000C24F0@prv-mh.provo.novell.com Signed-off-by: Thomas Gleixner arch/x86/kernel/process_64.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fee48dfcd76b21b9a7117c3014e1345697ff08ec Author: Milo Kim Date: Mon Dec 21 17:53:14 2015 +0900 irqchip/omap-intc: Remove duplicate setup for IRQ chip type handler Some OMAP interrupt controllers use generic level detection, so handle_level_irq() is used as the chip type handler. Allocated IRQ chip type handler doesn't need to set it again because irq_alloc_domain_generic_chips() has already registered it. Tested with BeagleBoneBlack Rev C. Signed-off-by: Milo Kim Cc: Tony Lindgren Cc: Jason Cooper Cc: Marc Zyngier Cc: linux-omap@vger.kernel.org Cc: linux-kernel@vger.kernel.org Link: http://lkml.kernel.org/r/1450687994-12580-1-git-send-email-milo.kim@ti.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-omap-intc.c | 1 - 1 file changed, 1 deletion(-) commit d01f8633d52e4dac5ee598b87d49fd23346ccfd6 Author: Damien Riegel Date: Mon Dec 21 15:11:23 2015 -0500 irqchip/ts4800: Add TS-4800 interrupt controller This commit adds support for the TS-4800 interrupt controller. This controller is instantiated in a companion FPGA, and multiplex interrupts for other FPGA IPs. As this component is external to the SoC, the SoC might need to reserve pins, so this controller is implemented as a platform driver and doesn't use the IRQCHIP_DECLARE construct. Signed-off-by: Damien Riegel Cc: Jason Cooper Cc: Marc Zyngier Cc: Rob Herring Cc: Pawel Moll Cc: Mark Rutland Cc: Ian Campbell Cc: Kumar Gala Cc: kernel@savoirfairelinux.com Link: http://lkml.kernel.org/r/1450728683-31416-2-git-send-email-damien.riegel@savoirfairelinux.com Signed-off-by: Thomas Gleixner drivers/irqchip/Kconfig | 6 ++ drivers/irqchip/Makefile | 1 + drivers/irqchip/irq-ts4800.c | 163 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 170 insertions(+) commit 0f6d785c847eeff55ae19546f5885156394be569 Author: Damien Riegel Date: Mon Dec 21 15:11:22 2015 -0500 irqchip/ts4800: Add documentation for TS-4800 interrupt controller This is an interrupt-controller implemented in an FPGA, to multiplex interrupts generated from other IPs. The FPGA usually uses a GPIO as a parent interrupt controller to notify that one of the multiplexed interrupts has triggered. Signed-off-by: Damien Riegel Acked-by: Rob Herring Cc: Jason Cooper Cc: Marc Zyngier Cc: Rob Herring Cc: Pawel Moll Cc: Mark Rutland Cc: Ian Campbell Cc: Kumar Gala Cc: kernel@savoirfairelinux.com Link: http://lkml.kernel.org/r/1450728683-31416-1-git-send-email-damien.riegel@savoirfairelinux.com Signed-off-by: Thomas Gleixner .../bindings/interrupt-controller/technologic,ts4800.txt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit aff5e06b0dda7704ff2fa45162cfc4dde316a6f1 Author: MaJun Date: Tue Dec 22 10:47:22 2015 +0800 irq/platform-MSI: Increase the maximum MSIs the MSI framework can support The current MSI framework can only support 256 platform MSIs. But on Hisilicon platform, some network related devices has about 500 wired interrupts. To support these devices and align with MSI-X increase the maximum to 2048 devices. Signed-off-by: Ma Jun Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: Link: http://lkml.kernel.org/r/1450752442-9392-1-git-send-email-majun258@huawei.com Signed-off-by: Thomas Gleixner drivers/base/platform-msi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5a1ff480f4ec40ace313c16b0543c7c6af09e227 Author: Suravee Suthikulpanit Date: Tue Dec 22 16:24:23 2015 -0800 irqchip/gicv2m: Miscellaneous fixes for v2m resources and SPI ranges This patch contain fixes for v2m resources and SPI ranges: * Fix off-by-one error when set up v2m resource end range in gicv2m_acpi_init(). * Fix the off-by-one print error for SPI range. * Use %pR to properly print resource range information. Both ACPI and DT should now print: GICv2m: range[mem 0xe1180000-0xe1180fff], SPI[64:319] Suggested-by: Bjorn Helgaas Signed-off-by: Suravee Suthikulpanit Cc: Lorenzo Pieralisi Cc: Will Deacon Cc: Catalin Marinas Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: Link: http://lkml.kernel.org/r/1450830263-28914-1-git-send-email-Suravee.Suthikulpanit@amd.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-gic-v2m.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 64103f061573e3d7670ba295b07919fb8fc7594c Author: Andrea Merello Date: Sat Dec 26 13:47:24 2015 -0800 irqchip/bcm2836: Make code more readable Avoid using hardcoded magics. We have a #define for this number. No functional changes. Signed-off-by: Andrea Merello Reviewed-by: Eric Anholt Signed-off-by: Eric Anholt Cc: linux-arm-kernel@lists.infradead.org Cc: Stephen Warren Cc: Lee Jones Cc: Florian Fainelli Cc: Jason Cooper Cc: Marc Zyngier Cc: linux-rpi-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/1451166444-11044-5-git-send-email-eric@anholt.net Signed-off-by: Thomas Gleixner drivers/irqchip/irq-bcm2836.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a51744ddcc62925ec4d3d3d3a8a13bdd2033af59 Author: Andrea Merello Date: Sat Dec 26 13:47:23 2015 -0800 irqchip/bcm2836: Tolerate IRQs while no flag is set in ISR On my RPi2 I got a lot of: unexpected IRQ trap at vector 00 This happens because bcm2836_arm_irqchip_handle_irq() is sometimes invoked even if the ISR is clear, and this case is not handled. This patch explicitly handle this case, fixing the kernel complaints about the bad IRQ lookup. Signed-off-by: Andrea Merello Reviewed-by: Eric Anholt Signed-off-by: Eric Anholt Cc: linux-arm-kernel@lists.infradead.org Cc: Stephen Warren Cc: Lee Jones Cc: Florian Fainelli Cc: Jason Cooper Cc: Marc Zyngier Cc: linux-rpi-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/1451166444-11044-4-git-send-email-eric@anholt.net Signed-off-by: Thomas Gleixner drivers/irqchip/irq-bcm2836.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 41f4988cc287e5f836d3f6620c9f900bc9b560e9 Author: Andrea Merello Date: Sat Dec 26 13:47:22 2015 -0800 irqchip/bcm2836: Add SMP support for the 2836 The firmware sets the secondaries spinning waiting for a non-NULL value to show up in the last IPI mailbox. The original SMP port from the downstream tree was done by Andrea, and Eric cleaned it up/rewrote it a few times from there. Signed-off-by: Andrea Merello Signed-off-by: Eric Anholt Cc: linux-arm-kernel@lists.infradead.org Cc: Stephen Warren Cc: Lee Jones Cc: Florian Fainelli Cc: Jason Cooper Cc: Marc Zyngier Cc: linux-rpi-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/1451166444-11044-3-git-send-email-eric@anholt.net Signed-off-by: Thomas Gleixner drivers/irqchip/irq-bcm2836.c | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) commit 401667bb8a2e0825090c5e6c15b899c1c36a4773 Author: Eric Anholt Date: Sat Dec 26 13:47:21 2015 -0800 irqchip/bcm2836: Fix initialization of the LOCAL_IRQ_CNT timers The irqchip's register area includes the the setup for the timer's scaling factors, and for the platform we want a fixed configuration of these registers. Signed-off-by: Eric Anholt Cc: linux-arm-kernel@lists.infradead.org Cc: Stephen Warren Cc: Lee Jones Cc: Florian Fainelli Cc: Jason Cooper Cc: Marc Zyngier Cc: linux-rpi-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/1451166444-11044-2-git-send-email-eric@anholt.net Signed-off-by: Thomas Gleixner drivers/irqchip/irq-bcm2836.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit 0105c8d8334fc941e0297ca6708fa57854114c0e Author: chengang@emindsoft.com.cn Date: Sat Dec 26 21:49:58 2015 +0800 arch/x86/kernel/ptrace.c: Remove unused arg_offs_table The related warning from gcc 6.0: arch/x86/kernel/ptrace.c:127:18: warning: ‘arg_offs_table’ defined but not used [-Wunused-const-variable] static const int arg_offs_table[] = { ^~~~~~~~~~~~~~ Signed-off-by: Chen Gang Link: http://lkml.kernel.org/r/1451137798-28701-1-git-send-email-chengang@emindsoft.com.cn Signed-off-by: Thomas Gleixner arch/x86/kernel/ptrace.c | 15 --------------- 1 file changed, 15 deletions(-) commit 1b9f23727abb92c5e58f139e7d180befcaa06fe0 Author: Richard Cochran Date: Tue Dec 22 22:19:58 2015 +0100 posix-clock: Fix return code on the poll method's error path The posix_clock_poll function is supposed to return a bit mask of POLLxxx values. However, in case the hardware has disappeared (due to hot plugging for example) this code returns -ENODEV in a futile attempt to throw an error at the file descriptor level. The kernel's file_operations interface does not accept such error codes from the poll method. Instead, this function aught to return POLLERR. The value -ENODEV does, in fact, contain the POLLERR bit (and almost all the other POLLxxx bits as well), but only by chance. This patch fixes code to return a proper bit mask. Credit goes to Markus Elfring for pointing out the suspicious signed/unsigned mismatch. Reported-by: Markus Elfring igned-off-by: Richard Cochran Cc: John Stultz Cc: Julia Lawall Link: http://lkml.kernel.org/r/1450819198-17420-1-git-send-email-richardcochran@gmail.com Cc: stable@vger.kernel.org Signed-off-by: Thomas Gleixner kernel/time/posix-clock.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5c4acd97e812de908cda97e2da02dead261915fa Merge: 92b86f9 d8e81cb Author: Thomas Gleixner Date: Tue Dec 29 10:25:20 2015 +0100 Merge tag 'irqchip-core-v4.5' of git://git.infradead.org/users/jcooper/linux into irq/core Pull irqchip core changes for v4.5 from Jason Cooper: - renesas-intc-irqpin: Remove platform code, improve clock handling - sunxi-nmi: Extend NMI support to include A80 commit caf05780f6ed5eb7fe168dbabd9a8d7cfb45d89b Merge: ef1ea03 5b63aa3 Author: Tomi Valkeinen Date: Tue Dec 29 11:09:13 2015 +0200 Merge omapdss split between omapdrm and omapfb Merge changes to create a separate copy of omapdss for omapdrm and omapfb. commit 92b86f92ed0307efbaea3c0e95520551848d3995 Merge: a4289dc 0644b3d Author: Thomas Gleixner Date: Tue Dec 29 10:08:45 2015 +0100 Merge branch 'irq/gic-v2m-acpi' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into irq/core Pull another round of GIC changes from Marc: ACPI support for GIV-v2m commit 5b63aa3feca79aebf14bc266690fd1d4a9ce4f2d Author: Tomi Valkeinen Date: Wed Dec 9 21:36:24 2015 +0200 drm/omap: make omapdrm select OMAP2_DSS Now that omapdss is only for omapdrm, we can change omapdrm to select OMAP2_DSS to enable omapdss if omapdrm is enabled, instead of omapdrm depending on omapdss. We can also change omapdss and the display drivers to depend on DRM_OMAP, so that they are only visible under omapdrm in menuconfig. Signed-off-by: Tomi Valkeinen Acked-by: Dave Airlie Acked-by: Rob Clark drivers/gpu/drm/omapdrm/Kconfig | 7 +++++-- drivers/gpu/drm/omapdrm/displays/Kconfig | 3 +-- 2 files changed, 6 insertions(+), 4 deletions(-) commit 9960aa7cb58caadef8edf3a2582e30664a6b68dd Author: Tomi Valkeinen Date: Wed Dec 9 20:26:00 2015 +0200 drm/omap: move omapdss & displays under omapdrm Now that omapfb has its own copy of omapdss and display drivers, we can move omapdss and display drivers which omapdrm uses to omapdrm's directory. We also need to change the main drm Makefile so that omapdrm directory is always entered, because omapdss has a file that can't be built as a module. Signed-off-by: Tomi Valkeinen Acked-by: Dave Airlie Acked-by: Rob Clark drivers/gpu/drm/Makefile | 2 +- drivers/gpu/drm/omapdrm/Kconfig | 3 +- drivers/gpu/drm/omapdrm/Makefile | 3 + drivers/gpu/drm/omapdrm/displays/Kconfig | 86 + drivers/gpu/drm/omapdrm/displays/Makefile | 14 + .../gpu/drm/omapdrm/displays/connector-analog-tv.c | 320 ++ drivers/gpu/drm/omapdrm/displays/connector-dvi.c | 398 ++ drivers/gpu/drm/omapdrm/displays/connector-hdmi.c | 348 ++ drivers/gpu/drm/omapdrm/displays/encoder-opa362.c | 278 + drivers/gpu/drm/omapdrm/displays/encoder-tfp410.c | 320 ++ .../gpu/drm/omapdrm/displays/encoder-tpd12s015.c | 379 ++ drivers/gpu/drm/omapdrm/displays/panel-dpi.c | 328 ++ drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c | 1388 +++++ .../omapdrm/displays/panel-lgphilips-lb035q02.c | 404 ++ .../drm/omapdrm/displays/panel-nec-nl8048hl11.c | 437 ++ .../drm/omapdrm/displays/panel-sharp-ls037v7dw01.c | 415 ++ .../drm/omapdrm/displays/panel-sony-acx565akm.c | 917 ++++ .../drm/omapdrm/displays/panel-tpo-td028ttec1.c | 511 ++ .../drm/omapdrm/displays/panel-tpo-td043mtea1.c | 686 +++ drivers/gpu/drm/omapdrm/dss/Kconfig | 135 + drivers/gpu/drm/omapdrm/dss/Makefile | 18 + drivers/gpu/drm/omapdrm/dss/apply.c | 1702 ++++++ drivers/gpu/drm/omapdrm/dss/core.c | 343 ++ drivers/gpu/drm/omapdrm/dss/dispc-compat.c | 667 +++ drivers/gpu/drm/omapdrm/dss/dispc-compat.h | 30 + drivers/gpu/drm/omapdrm/dss/dispc.c | 4234 +++++++++++++++ drivers/gpu/drm/omapdrm/dss/dispc.h | 918 ++++ drivers/gpu/drm/omapdrm/dss/dispc_coefs.c | 325 ++ drivers/gpu/drm/omapdrm/dss/display-sysfs.c | 356 ++ drivers/gpu/drm/omapdrm/dss/display.c | 338 ++ drivers/gpu/drm/omapdrm/dss/dpi.c | 899 ++++ drivers/gpu/drm/omapdrm/dss/dsi.c | 5607 ++++++++++++++++++++ drivers/gpu/drm/omapdrm/dss/dss-of.c | 183 + drivers/gpu/drm/omapdrm/dss/dss.c | 1329 +++++ drivers/gpu/drm/omapdrm/dss/dss.h | 468 ++ drivers/gpu/drm/omapdrm/dss/dss_features.c | 951 ++++ drivers/gpu/drm/omapdrm/dss/dss_features.h | 108 + drivers/gpu/drm/omapdrm/dss/hdmi.h | 370 ++ drivers/gpu/drm/omapdrm/dss/hdmi4.c | 839 +++ drivers/gpu/drm/omapdrm/dss/hdmi4_core.c | 904 ++++ drivers/gpu/drm/omapdrm/dss/hdmi4_core.h | 273 + drivers/gpu/drm/omapdrm/dss/hdmi5.c | 876 +++ drivers/gpu/drm/omapdrm/dss/hdmi5_core.c | 916 ++++ drivers/gpu/drm/omapdrm/dss/hdmi5_core.h | 304 ++ drivers/gpu/drm/omapdrm/dss/hdmi_common.c | 148 + drivers/gpu/drm/omapdrm/dss/hdmi_phy.c | 247 + drivers/gpu/drm/omapdrm/dss/hdmi_pll.c | 255 + drivers/gpu/drm/omapdrm/dss/hdmi_wp.c | 282 + drivers/gpu/drm/omapdrm/dss/manager-sysfs.c | 531 ++ drivers/gpu/drm/omapdrm/dss/manager.c | 263 + drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c | 225 + drivers/gpu/drm/omapdrm/dss/output.c | 267 + drivers/gpu/drm/omapdrm/dss/overlay-sysfs.c | 456 ++ drivers/gpu/drm/omapdrm/dss/overlay.c | 202 + drivers/gpu/drm/omapdrm/dss/pll.c | 389 ++ drivers/gpu/drm/omapdrm/dss/rfbi.c | 1078 ++++ drivers/gpu/drm/omapdrm/dss/sdi.c | 454 ++ drivers/gpu/drm/omapdrm/dss/venc.c | 997 ++++ drivers/gpu/drm/omapdrm/dss/video-pll.c | 211 + drivers/video/fbdev/omap2/Kconfig | 2 - drivers/video/fbdev/omap2/Makefile | 2 - drivers/video/fbdev/omap2/displays-new/Kconfig | 86 - drivers/video/fbdev/omap2/displays-new/Makefile | 14 - .../fbdev/omap2/displays-new/connector-analog-tv.c | 320 -- .../video/fbdev/omap2/displays-new/connector-dvi.c | 398 -- .../fbdev/omap2/displays-new/connector-hdmi.c | 348 -- .../fbdev/omap2/displays-new/encoder-opa362.c | 278 - .../fbdev/omap2/displays-new/encoder-tfp410.c | 320 -- .../fbdev/omap2/displays-new/encoder-tpd12s015.c | 379 -- drivers/video/fbdev/omap2/displays-new/panel-dpi.c | 328 -- .../video/fbdev/omap2/displays-new/panel-dsi-cm.c | 1388 ----- .../omap2/displays-new/panel-lgphilips-lb035q02.c | 404 -- .../omap2/displays-new/panel-nec-nl8048hl11.c | 437 -- .../omap2/displays-new/panel-sharp-ls037v7dw01.c | 415 -- .../omap2/displays-new/panel-sony-acx565akm.c | 917 ---- .../omap2/displays-new/panel-tpo-td028ttec1.c | 511 -- .../omap2/displays-new/panel-tpo-td043mtea1.c | 686 --- drivers/video/fbdev/omap2/dss/Kconfig | 135 - drivers/video/fbdev/omap2/dss/Makefile | 18 - drivers/video/fbdev/omap2/dss/apply.c | 1702 ------ drivers/video/fbdev/omap2/dss/core.c | 343 -- drivers/video/fbdev/omap2/dss/dispc-compat.c | 667 --- drivers/video/fbdev/omap2/dss/dispc-compat.h | 30 - drivers/video/fbdev/omap2/dss/dispc.c | 4234 --------------- drivers/video/fbdev/omap2/dss/dispc.h | 918 ---- drivers/video/fbdev/omap2/dss/dispc_coefs.c | 325 -- drivers/video/fbdev/omap2/dss/display-sysfs.c | 356 -- drivers/video/fbdev/omap2/dss/display.c | 338 -- drivers/video/fbdev/omap2/dss/dpi.c | 899 ---- drivers/video/fbdev/omap2/dss/dsi.c | 5607 -------------------- drivers/video/fbdev/omap2/dss/dss-of.c | 183 - drivers/video/fbdev/omap2/dss/dss.c | 1329 ----- drivers/video/fbdev/omap2/dss/dss.h | 468 -- drivers/video/fbdev/omap2/dss/dss_features.c | 951 ---- drivers/video/fbdev/omap2/dss/dss_features.h | 108 - drivers/video/fbdev/omap2/dss/hdmi.h | 370 -- drivers/video/fbdev/omap2/dss/hdmi4.c | 839 --- drivers/video/fbdev/omap2/dss/hdmi4_core.c | 904 ---- drivers/video/fbdev/omap2/dss/hdmi4_core.h | 273 - drivers/video/fbdev/omap2/dss/hdmi5.c | 876 --- drivers/video/fbdev/omap2/dss/hdmi5_core.c | 916 ---- drivers/video/fbdev/omap2/dss/hdmi5_core.h | 304 -- drivers/video/fbdev/omap2/dss/hdmi_common.c | 148 - drivers/video/fbdev/omap2/dss/hdmi_phy.c | 247 - drivers/video/fbdev/omap2/dss/hdmi_pll.c | 255 - drivers/video/fbdev/omap2/dss/hdmi_wp.c | 282 - drivers/video/fbdev/omap2/dss/manager-sysfs.c | 531 -- drivers/video/fbdev/omap2/dss/manager.c | 263 - drivers/video/fbdev/omap2/dss/omapdss-boot-init.c | 225 - drivers/video/fbdev/omap2/dss/output.c | 267 - drivers/video/fbdev/omap2/dss/overlay-sysfs.c | 456 -- drivers/video/fbdev/omap2/dss/overlay.c | 202 - drivers/video/fbdev/omap2/dss/pll.c | 389 -- drivers/video/fbdev/omap2/dss/rfbi.c | 1078 ---- drivers/video/fbdev/omap2/dss/sdi.c | 454 -- drivers/video/fbdev/omap2/dss/venc.c | 997 ---- drivers/video/fbdev/omap2/dss/video-pll.c | 211 - 117 files changed, 36333 insertions(+), 36333 deletions(-) commit 5ca28914b8b4371cfa56b6ee2dec68debb99718f Author: Tomi Valkeinen Date: Wed Dec 9 19:57:28 2015 +0200 omapfb: move vrfb into omapfb VRFB is only used by omapfb, so we can move it under omapfb's directory. Signed-off-by: Tomi Valkeinen Acked-by: Dave Airlie Acked-by: Rob Clark drivers/video/fbdev/omap2/Kconfig | 3 - drivers/video/fbdev/omap2/Makefile | 2 - drivers/video/fbdev/omap2/omapfb/Kconfig | 3 + drivers/video/fbdev/omap2/omapfb/Makefile | 1 + drivers/video/fbdev/omap2/omapfb/vrfb.c | 399 ++++++++++++++++++++++++++++++ drivers/video/fbdev/omap2/vrfb.c | 399 ------------------------------ 6 files changed, 403 insertions(+), 404 deletions(-) commit f3dab1e317ad9f22d8062382447a37febe5858d2 Author: Tomi Valkeinen Date: Wed Dec 9 19:32:27 2015 +0200 omapfb: take omapfb's private omapdss into use omapfb's private copy of omapdss is now ready to be used. This patch makes omapfb use its private omapdss and display drivers, and also makes omap_vout (which uses omapfb) to depend on omapfb. Signed-off-by: Tomi Valkeinen Acked-by: Dave Airlie Acked-by: Rob Clark drivers/media/platform/omap/Kconfig | 2 +- drivers/video/fbdev/omap2/Makefile | 2 +- drivers/video/fbdev/omap2/omapfb/Kconfig | 8 ++++++++ drivers/video/fbdev/omap2/omapfb/Makefile | 2 ++ 4 files changed, 12 insertions(+), 2 deletions(-) commit d232fd0407fea3d5964b36fdeaff2f18529e850e Author: Tomi Valkeinen Date: Wed Dec 9 19:27:48 2015 +0200 omapfb/displays: change CONFIG_DISPLAY_* to CONFIG_FB_OMAP2_* We need to change the config symbols of omapfb's private copy of the panel and encoder drivers so that we won't have config symbol conflicts. This patch changes the symbols from the panel and encoder drivers using simple replacement of DISPLAY_* to FB_OMAP2*. Signed-off-by: Tomi Valkeinen Acked-by: Dave Airlie Acked-by: Rob Clark drivers/video/fbdev/omap2/omapfb/displays/Kconfig | 32 +++++++++++----------- drivers/video/fbdev/omap2/omapfb/displays/Makefile | 28 +++++++++---------- 2 files changed, 30 insertions(+), 30 deletions(-) commit 35b522cfb00fae5d8d744fb2c50fc96c94592d44 Author: Tomi Valkeinen Date: Wed Dec 9 19:24:58 2015 +0200 omapfb/dss: change CONFIG_OMAP* to CONFIG_FB_OMAP* We need to change the config symbols of omapfb's private copy of omapdss so that we won't have config symbol conflicts. This patch changes the symbols from omapdss using simple replacement of CONFIG_OMAP* to CONFIG_FB_OMAP*. Signed-off-by: Tomi Valkeinen Acked-by: Dave Airlie Acked-by: Rob Clark drivers/video/fbdev/omap2/omapfb/dss/Kconfig | 46 ++++++++++------------ drivers/video/fbdev/omap2/omapfb/dss/Makefile | 22 +++++------ drivers/video/fbdev/omap2/omapfb/dss/core.c | 34 ++++++++-------- .../video/fbdev/omap2/omapfb/dss/dispc-compat.c | 8 ++-- drivers/video/fbdev/omap2/omapfb/dss/dispc.c | 4 +- .../video/fbdev/omap2/omapfb/dss/display-sysfs.c | 2 +- drivers/video/fbdev/omap2/omapfb/dss/dsi.c | 10 ++--- drivers/video/fbdev/omap2/omapfb/dss/dss.c | 6 +-- drivers/video/fbdev/omap2/omapfb/dss/dss.h | 10 ++--- drivers/video/fbdev/omap2/omapfb/dss/venc.c | 2 +- 10 files changed, 69 insertions(+), 75 deletions(-) commit fc6caa0b5b9b234fc9efff4342956d5d06112137 Author: Tomi Valkeinen Date: Wed Dec 9 19:23:44 2015 +0200 omapdss: remove CONFIG_OMAP2_DSS_VENC from omapdss.h We are about to make a private copy of omapdss for omapfb and for omapdrm. The omapdss.h file will still be shared for the time being. The copy will need to change the config symbols, and we happen to have one use of these config symbols in omapdss.h which needs to be removed. Luckily we can just delete the use of CONFIG_OMAP2_DSS_VENC from omapdss, as it's used only to hide extern declarations, and there's no harm to have those declarations even if CONFIG_OMAP2_DSS_VENC is not set. Signed-off-by: Tomi Valkeinen Acked-by: Dave Airlie Acked-by: Rob Clark include/video/omapdss.h | 2 -- 1 file changed, 2 deletions(-) commit f76ee892a99e68b55402b8d4b8aeffcae2aff34d Author: Tomi Valkeinen Date: Wed Dec 9 18:28:28 2015 +0200 omapfb: copy omapdss & displays for omapfb This patch makes a copy of the omapdss driver and the omap panel & encoder drivers for omapfb. The purpose is to separate omapdrm and omapfb drivers from each other. Note that this patch only does a direct copy of the files without any other modifications. The files are not yet used. The original files are in: drivers/video/fbdev/omap2/dss/ drivers/video/fbdev/omap2/displays-new/ Here's a more detailed explanation about this and the following patches, from the introduction mail of the patch series: A short background on the current status. We have the following entities: * omapdss, located in drivers/video/fbdev/omap2/dss/. This is a driver for the display subsystem IPs used on OMAP (and related) SoCs. It offers only a kernel internal API, and does not implement anything for fbdev or drm. * omapdss panels and encoders, located in drivers/video/fbdev/omap2/displays-new/. These are panel and external encoder drivers, which use APIs offered by omapdss driver. These also don't implement anything for fbdev or drm. * omapdrm, located in drivers/gpu/drm/omapdrm/. This is a drm driver, which uses omapdss and the panel/encoder drivers to operate the hardware. * omapfb, located in drivers/video/fbdev/omap2/omapfb/. This is an fbdev driver, which uses omapdss and the panel/encoder drivers to operate the hardware. * omap_vout, located in drivers/media/platform/omap/. This is a v4l2 driver, which uses omapdss and omapfb to implement a v4l2 API for the video overlays. So, on the top level, we have either omapdrm, or omapfb+omap_vout. Both of those use the same low level drivers. Without going to the historical details why the architecture is like that, I think it's finally time to change that. The situation with omapfb+omap_vout is that it still works, but no new features have been added for a long time, and I want to keep it working as it's still being used. At some point in the future I'd like to remove omapfb and omap_vout altogether. Omapdrm, on the other hand, is being actively developed. Sharing the low level parts with omapfb makes that development more difficult than it should be. It also "hides" half of the development, as everything happening in the low level parts resides under fbdev directory, not in the drm directory. I've been wanting to clean this up for a long time, but I haven't figured out a very good way to do it. I still haven't, but here's the best way I have come up with. This series makes a full copy of the low level parts, omapdss and panel/encoder drivers. Both omapfb+omap_vout and omapdrm will have their own versions. The copy omapfb+omap_vout get is a new copy, and the copy that omapdrm gets is just the current files moved. This way git will associate the omapdrm version with the old files. The omapfb+omap_vout versions won't be touched unless there are some big issues there. The omapdrm versions can be refactored and cleaned up, as the omapfb support code is no longer needed. We can perhaps also merge omapdss and omapdrm into the same kernel module. This series only does the copy, and the absolutely necessary parts. No further cleanups are done yet. Signed-off-by: Tomi Valkeinen Acked-by: Dave Airlie Acked-by: Rob Clark drivers/video/fbdev/omap2/omapfb/displays/Kconfig | 86 + drivers/video/fbdev/omap2/omapfb/displays/Makefile | 14 + .../omap2/omapfb/displays/connector-analog-tv.c | 320 ++ .../fbdev/omap2/omapfb/displays/connector-dvi.c | 398 ++ .../fbdev/omap2/omapfb/displays/connector-hdmi.c | 348 ++ .../fbdev/omap2/omapfb/displays/encoder-opa362.c | 278 + .../fbdev/omap2/omapfb/displays/encoder-tfp410.c | 320 ++ .../omap2/omapfb/displays/encoder-tpd12s015.c | 328 ++ .../video/fbdev/omap2/omapfb/displays/panel-dpi.c | 328 ++ .../fbdev/omap2/omapfb/displays/panel-dsi-cm.c | 1388 +++++ .../omapfb/displays/panel-lgphilips-lb035q02.c | 404 ++ .../omap2/omapfb/displays/panel-nec-nl8048hl11.c | 437 ++ .../omapfb/displays/panel-sharp-ls037v7dw01.c | 415 ++ .../omap2/omapfb/displays/panel-sony-acx565akm.c | 917 ++++ .../omap2/omapfb/displays/panel-tpo-td028ttec1.c | 511 ++ .../omap2/omapfb/displays/panel-tpo-td043mtea1.c | 686 +++ drivers/video/fbdev/omap2/omapfb/dss/Kconfig | 135 + drivers/video/fbdev/omap2/omapfb/dss/Makefile | 18 + drivers/video/fbdev/omap2/omapfb/dss/apply.c | 1702 ++++++ drivers/video/fbdev/omap2/omapfb/dss/core.c | 343 ++ .../video/fbdev/omap2/omapfb/dss/dispc-compat.c | 667 +++ .../video/fbdev/omap2/omapfb/dss/dispc-compat.h | 30 + drivers/video/fbdev/omap2/omapfb/dss/dispc.c | 4234 +++++++++++++++ drivers/video/fbdev/omap2/omapfb/dss/dispc.h | 918 ++++ drivers/video/fbdev/omap2/omapfb/dss/dispc_coefs.c | 325 ++ .../video/fbdev/omap2/omapfb/dss/display-sysfs.c | 356 ++ drivers/video/fbdev/omap2/omapfb/dss/display.c | 338 ++ drivers/video/fbdev/omap2/omapfb/dss/dpi.c | 899 ++++ drivers/video/fbdev/omap2/omapfb/dss/dsi.c | 5607 ++++++++++++++++++++ drivers/video/fbdev/omap2/omapfb/dss/dss-of.c | 183 + drivers/video/fbdev/omap2/omapfb/dss/dss.c | 1329 +++++ drivers/video/fbdev/omap2/omapfb/dss/dss.h | 468 ++ .../video/fbdev/omap2/omapfb/dss/dss_features.c | 951 ++++ .../video/fbdev/omap2/omapfb/dss/dss_features.h | 108 + drivers/video/fbdev/omap2/omapfb/dss/hdmi.h | 370 ++ drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c | 839 +++ drivers/video/fbdev/omap2/omapfb/dss/hdmi4_core.c | 904 ++++ drivers/video/fbdev/omap2/omapfb/dss/hdmi4_core.h | 273 + drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c | 876 +++ drivers/video/fbdev/omap2/omapfb/dss/hdmi5_core.c | 916 ++++ drivers/video/fbdev/omap2/omapfb/dss/hdmi5_core.h | 304 ++ drivers/video/fbdev/omap2/omapfb/dss/hdmi_common.c | 148 + drivers/video/fbdev/omap2/omapfb/dss/hdmi_phy.c | 247 + drivers/video/fbdev/omap2/omapfb/dss/hdmi_pll.c | 255 + drivers/video/fbdev/omap2/omapfb/dss/hdmi_wp.c | 282 + .../video/fbdev/omap2/omapfb/dss/manager-sysfs.c | 531 ++ drivers/video/fbdev/omap2/omapfb/dss/manager.c | 263 + .../fbdev/omap2/omapfb/dss/omapdss-boot-init.c | 225 + drivers/video/fbdev/omap2/omapfb/dss/output.c | 267 + .../video/fbdev/omap2/omapfb/dss/overlay-sysfs.c | 456 ++ drivers/video/fbdev/omap2/omapfb/dss/overlay.c | 202 + drivers/video/fbdev/omap2/omapfb/dss/pll.c | 389 ++ drivers/video/fbdev/omap2/omapfb/dss/rfbi.c | 1078 ++++ drivers/video/fbdev/omap2/omapfb/dss/sdi.c | 454 ++ drivers/video/fbdev/omap2/omapfb/dss/venc.c | 997 ++++ drivers/video/fbdev/omap2/omapfb/dss/video-pll.c | 211 + 56 files changed, 36276 insertions(+) commit 1c6aac92ee6cbb007ec0765956095357e7d4090c Author: Tomi Valkeinen Date: Wed Dec 9 18:21:58 2015 +0200 omapfb: allow compilation only if DRM_OMAP is disabled At the moment omapfb and omapdrm can be compiled at the same time, if both are modules. However, they can't be both loaded, as they use the same hardware. This has been mostly for compile testing. To make it clear that omapfb and omapdrm are mutually exclusive drivers, this patch makes omapfb available only if omapdrm is disabled. Signed-off-by: Tomi Valkeinen Acked-by: Dave Airlie Acked-by: Rob Clark drivers/video/fbdev/omap2/omapfb/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ef1ea03d7574273d39b6af49494b02e337992a62 Author: Uwe Kleine-König Date: Thu Dec 10 14:11:44 2015 +0100 fbdev: omap2: panel-dpi: simplify gpio setting gpiod_set_value_cansleep is a noop when the passed descriptor is NULL. So there is no need to duplicate the check for NULL; just call the function unconditionally instead. Signed-off-by: Uwe Kleine-König Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/displays-new/panel-dpi.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 7f496cfd6bd5a74c9cd50252b3a0141709cbf020 Author: Uwe Kleine-König Date: Thu Dec 10 14:11:43 2015 +0100 fbdev: omap2: panel-dpi: in .disable first disable backlight then display This makes .disable operate in reverse order compared to .enable. Signed-off-by: Uwe Kleine-König Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/displays-new/panel-dpi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 85d90b12518f3dfaed23e83dd8b163bc6271725e Author: Dan Carpenter Date: Fri Dec 4 16:14:58 2015 +0300 OMAPDSS: DSS: fix a warning message The WARN() macro has to take a condition. The current code will just print the stack trace and the function name instead of the intended warning message. Signed-off-by: Dan Carpenter Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/dss.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 9dec58e6c4d44175eaab64308c1bc27a2b5cb555 Author: Julia Lawall Date: Mon Oct 12 22:43:14 2015 +0200 video: omapdss: delete unneeded of_node_put Device node iterators perform an of_node_put on each iteration, so putting an of_node_put before a continue results in a double put. A simplified version of the semantic match that finds this problem is as follows (http://coccinelle.lip6.fr): // @@ expression root,e; local idexpression child; iterator i; @@ i(..., child, ...) { ... when != of_node_get(child) * of_node_put(child); ... * continue; } // Signed-off-by: Julia Lawall Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/omapdss-boot-init.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 0bcfdba6c0b76f5aabd55993a8a6fdf87a6ae3e1 Author: Luis de Bethencourt Date: Thu Oct 15 13:29:38 2015 +0100 OMAPDSS: DISPC: Remove boolean comparisons Boolean tests do not need explicit comparison to true or false. Signed-off-by: Luis de Bethencourt Acked-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/dispc-compat.c | 6 +++--- drivers/video/fbdev/omap2/dss/dispc.c | 6 +++--- drivers/video/fbdev/omap2/dss/manager.c | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) commit 00355412d1fb589503fb9d9b7631bb522d42ed4b Author: Dan Carpenter Date: Mon Nov 23 21:22:36 2015 +0300 OMAPDSS: DSI: cleanup DSI_IRQ_ERROR_MASK define DSI_IRQ_SYNC_LOST was ORed twice so we can remove one. Signed-off-by: Dan Carpenter Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/dsi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b742648c499444e6a3044c9e8afb08956c9ca75c Author: Tomi Valkeinen Date: Wed Nov 4 17:10:58 2015 +0200 OMAPDSS: remove extra out == NULL checks All the output drivers check for 'out' being NULL, but it can never be NULL. Remove the check. Signed-off-by: Tomi Valkeinen Acked-by: Laurent Pinchart drivers/video/fbdev/omap2/dss/dpi.c | 2 +- drivers/video/fbdev/omap2/dss/dsi.c | 2 +- drivers/video/fbdev/omap2/dss/hdmi4.c | 2 +- drivers/video/fbdev/omap2/dss/hdmi5.c | 2 +- drivers/video/fbdev/omap2/dss/rfbi.c | 2 +- drivers/video/fbdev/omap2/dss/sdi.c | 2 +- drivers/video/fbdev/omap2/dss/venc.c | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) commit 659041550100d2015d0ed28e3274267eeb664868 Author: Tomi Valkeinen Date: Wed Nov 4 17:10:57 2015 +0200 OMAPDSS: change internal dispc functions to static A bunch of dispc functions are only used inside dispc, so we can make them static. Signed-off-by: Tomi Valkeinen Acked-by: Laurent Pinchart drivers/video/fbdev/omap2/dss/dispc.c | 15 ++++++++++----- drivers/video/fbdev/omap2/dss/dss.h | 5 ----- 2 files changed, 10 insertions(+), 10 deletions(-) commit 98c2835ede2427badb3bf57974f155a0011193c7 Author: Tomi Valkeinen Date: Wed Nov 4 17:10:56 2015 +0200 OMAPDSS: make a two dss feat funcs internal to omapdss dss_feat_get_supported_displays() and dss_feat_get_supported_outputs() are not used outside omapdss, but are exported. We can thus remove the export and move the declarations to the omapdss internal header. Signed-off-by: Tomi Valkeinen Acked-by: Laurent Pinchart drivers/video/fbdev/omap2/dss/dss_features.c | 2 -- drivers/video/fbdev/omap2/dss/dss_features.h | 4 ++++ include/video/omapdss.h | 2 -- 3 files changed, 4 insertions(+), 4 deletions(-) commit f2d580a1b0f3c10c57fd89cd2e7389a4fa9b94f3 Author: Tomi Valkeinen Date: Wed Nov 4 17:10:55 2015 +0200 OMAPDSS: remove extra EXPORT_SYMBOLs The functions dispc_ovl_set_fifo_threshold and dispc_ovl_compute_fifo_thresholds are exported, but not declared in public headers, and thus are not used outside omapdss. So we can remove the EXPORT_SYMBOL()s. Signed-off-by: Tomi Valkeinen Acked-by: Laurent Pinchart drivers/video/fbdev/omap2/dss/dispc.c | 2 -- 1 file changed, 2 deletions(-) commit 98cd5796b37074fb6542b1c4042c2fd3862a6f77 Author: Tomi Valkeinen Date: Wed Nov 4 17:10:54 2015 +0200 OMAPDSS: add setup for WB capture mode in dispc_wb_setup() dispc_wb_setup() handles configuration only for mem-to-mem case. This patch adds the necessary configuration to handle also display capture mode. We need to set CAPTUREMODE to 0 (continuous capture), and WBDELAYCOUNT according to the vertical timings of the display, so that the WB FIFO has time to flush before the next frame starts. Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/dispc.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 4c055ce03b670664a8ac39878b219d94c8ef092f Author: Tomi Valkeinen Date: Wed Nov 4 17:10:53 2015 +0200 OMAPDSS: set WB capturemode for m2m mode In mem-to-mem mode WB CAPTUREMODE needs to be set to 1 (capture one frame). Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/dispc.c | 2 ++ 1 file changed, 2 insertions(+) commit 7d18bbee78d39f2a69929f59920205efeee864e2 Author: Tomi Valkeinen Date: Wed Nov 4 17:10:52 2015 +0200 OMAPDSS: fix rgb-to-yuv color conv coefs The color conversion coefficients for RGB to YUV conversion (used with writeback) don't result in the correct result. This patch sets the correct coefficients. Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/dispc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit fd2eac5a66e5830e99324ba65a33d883cfd31d9e Author: Tomi Valkeinen Date: Wed Nov 4 17:10:51 2015 +0200 OMAPDSS: skip pclk check for WB mem2mem When doing mem-to-mem writeback, there's no pixelclock. However, the code that calculates scaling factors check that there is a pixel clock. We can just skip the check when doing mem-to-mem writeback. Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/dispc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ecb0b366af3fb435b877d5648b363e069e97a754 Author: Tomi Valkeinen Date: Wed Nov 4 17:10:50 2015 +0200 OMAPDSS: configure WB mflag threshold Mflag thresholds for all pipelines are set in dispc_init_mflag(), but we are missing that for WB pipeline. Add WB configuration. Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/dispc.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit 65e116e17327bce9b75adb02574a6edf126f7ef2 Author: Tomi Valkeinen Date: Wed Nov 4 17:10:49 2015 +0200 OMAPDSS: configure WB fifo thresholds Fifo thresholds for all pipelines are set in dispc_init_fifos(), but we are missing it for WB pipeline. Add that. Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/dispc.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 5b354af9eda43f8941f0f28873e6ce2b99f68413 Author: Tomi Valkeinen Date: Wed Nov 4 17:10:48 2015 +0200 OMAPDSS: configure burst size for WB Burst size for all pipelines is set in dispc_configure_burst_sizes(), but we are missing WB pipe. So add that. Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/dispc.c | 2 ++ 1 file changed, 2 insertions(+) commit c2665c4150ece59f13dcc78b9012d297acd96358 Author: Tomi Valkeinen Date: Wed Nov 4 17:10:47 2015 +0200 OMAPDSS: handle WB channel in dispc_set/get_channel_out Add handling of OMAP_DSS_CHANNEL_WB to dispc_ovl_set_channel_out() and dispc_ovl_get_channel_out(). Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/dispc.c | 6 ++++++ 1 file changed, 6 insertions(+) commit d7df5ad44b1427598d7296b2c889988a63a4bce2 Author: Tomi Valkeinen Date: Wed Nov 4 17:10:46 2015 +0200 OMAPDSS: refactor dispc_ovl_get_channel_out Refactor dispc_ovl_get_channel_out() to a bit cleaner form, which makes it easier to add support for writeback in the following patch. Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/dispc.c | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) commit 249ad8a38ea30aa1c7bf91fca48341f89ff9f084 Author: Tomi Valkeinen Date: Wed Nov 4 17:10:45 2015 +0200 OMAPDSS: add OMAP_DSS_CHANNEL_WB to 'enum omap_channel' 'enum omap_channel' is missing the channel for writeback. Add that. Signed-off-by: Tomi Valkeinen include/video/omapdss.h | 1 + 1 file changed, 1 insertion(+) commit 20efbc35db42ba8164c42d36ed7ca32cd8184c2c Author: Tomi Valkeinen Date: Wed Nov 4 17:10:44 2015 +0200 OMAPDSS: add 'has_writeback' flag At the moment we have a function to get the number of writeback pipelines supported. However, the function is used in a wrong way, causing a wrong pipeline to get configured when trying to use WB. Also, we only have a single writeback pipeline on any of the DSS versions. To fix and simplify this, create a 'has_writeback' flag into the dispc driver, and after checking the flag, use OMAP_DSS_WB pipeline explicitly when calling the configuration functions. Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/dispc.c | 11 +++++++---- drivers/video/fbdev/omap2/dss/dss_features.c | 10 ---------- drivers/video/fbdev/omap2/dss/dss_features.h | 1 - 3 files changed, 7 insertions(+), 15 deletions(-) commit bae199cd3d4fde48a103570402d6d30ab7eb959e Author: Tomi Valkeinen Date: Wed Nov 4 17:10:43 2015 +0200 OMAPDSS: add num_wbs=1 to omap5 dss features OMAP5+ DSS has a writeback pipeline, but this was not specified in the features list for OMAP5 DSS. Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/dss_features.c | 1 + 1 file changed, 1 insertion(+) commit 06c525fe65c3da5e6e3ed5e1a03634968b3d56d6 Author: Tomi Valkeinen Date: Wed Nov 4 17:10:42 2015 +0200 OMAPDSS: add WB to register dump Add dumping of the writeback registers to the register dump function. Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/dispc.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) commit c2c06335ba9da4ce03c56c21fde4bd546af23edd Author: Tomi Valkeinen Date: Wed Nov 4 17:10:41 2015 +0200 OMAPDSS: fix DISPC_MFLAG_THRESHOLD_OFFSET for WB DISPC_MFLAG_THRESHOLD_OFFSET() is missing the offset for WB. Add the offset. Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/dispc.h | 2 ++ 1 file changed, 2 insertions(+) commit 0b2b093ad405b56a9e6f4f20a25da77ebfa9549c Author: Mathieu OTHACEHE Date: Mon Dec 28 21:21:25 2015 +0100 USB: serial: add Moxa UPORT 11x0 driver Add a driver which supports : - UPort 1110 : 1 port RS-232 USB to Serial Hub. - UPort 1130 : 1 port RS-422/485 USB to Serial Hub. - UPort 1130I : 1 port RS-422/485 USB to Serial Hub with Isolation. - UPort 1150 : 1 port RS-232/422/485 USB to Serial Hub. - UPort 1150I : 1 port RS-232/422/485 USB to Serial Hub with Isolation. This driver is based on GPL MOXA driver written by Hen Huang and available on MOXA website. The original driver was based on io_ti serial driver. Signed-off-by: Mathieu OTHACEHE Signed-off-by: Johan Hovold drivers/usb/serial/Kconfig | 16 + drivers/usb/serial/Makefile | 1 + drivers/usb/serial/mxu11x0.c | 995 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 1012 insertions(+) commit 20bbfaf72cb419cf2a864978df3fc36f1986046a Author: Amy Wiles Date: Wed Oct 14 08:09:14 2015 -0700 Thermal: Enable Broxton SoC thermal reporting device Signed-off-by: Amy Wiles Signed-off-by: Zhang Rui drivers/thermal/int340x_thermal/processor_thermal_device.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit a96bedf1b8e50c46d3b486294a8972c90aadc0cb Author: Julia Lawall Date: Sun Oct 11 13:01:28 2015 +0200 thermal: constify pch_dev_ops structure The pch_dev_ops structure is never modified. It is only stored in a field that is already declared as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Zhang Rui drivers/thermal/intel_pch_thermal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4511f7166a2deb5f7a578cf87fd2fe1ae83527e3 Author: Chen Yu Date: Fri Oct 30 16:32:10 2015 +0800 Thermal: do thermal zone update after a cooling device registered When a new cooling device is registered, we need to update the thermal zone to set the new registered cooling device to a proper state. This fixes a problem that the system is cool, while the fan devices are left running on full speed after boot, if fan device is registered after thermal zone device. Here is the history of why current patch looks like this: https://patchwork.kernel.org/patch/7273041/ CC: #3.18+ Reference:https://bugzilla.kernel.org/show_bug.cgi?id=92431 Tested-by: Manuel Krause Tested-by: szegad Tested-by: prash Tested-by: amish Reviewed-by: Javi Merino Signed-off-by: Zhang Rui Signed-off-by: Chen Yu drivers/thermal/thermal_core.c | 14 +++++++++++++- include/linux/thermal.h | 2 ++ 2 files changed, 15 insertions(+), 1 deletion(-) commit ff140fea847e1c2002a220571ab106c2456ed252 Author: Zhang Rui Date: Fri Oct 30 16:31:58 2015 +0800 Thermal: handle thermal zone device properly during system sleep Current thermal code does not handle system sleep well because 1. the cooling device cooling state may be changed during suspend 2. the previous temperature reading becomes invalid after resumed because it is got before system sleep 3. updating thermal zone device during suspending/resuming is wrong because some devices may have already been suspended or may have not been resumed. Thus, the proper way to do this is to cancel all thermal zone device update requirements during suspend/resume, and after all the devices have been resumed, reset and update every registered thermal zone devices. This also fixes a regression introduced by: Commit 19593a1fb1f6 ("ACPI / fan: convert to platform driver") Because, with above commit applied, all the fan devices are attached to the acpi_general_pm_domain, and they are turned on by the pm_domain automatically after resume, without the awareness of thermal core. CC: #3.18+ Reference: https://bugzilla.kernel.org/show_bug.cgi?id=78201 Reference: https://bugzilla.kernel.org/show_bug.cgi?id=91411 Tested-by: Manuel Krause Tested-by: szegad Tested-by: prash Tested-by: amish Tested-by: Matthias Reviewed-by: Javi Merino Signed-off-by: Zhang Rui Signed-off-by: Chen Yu drivers/thermal/thermal_core.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) commit bb431ba26c5cd0a17c941ca6c3a195a3a6d5d461 Author: Zhang Rui Date: Fri Oct 30 16:31:47 2015 +0800 Thermal: initialize thermal zone device correctly After thermal zone device registered, as we have not read any temperature before, thus tz->temperature should not be 0, which actually means 0C, and thermal trend is not available. In this case, we need specially handling for the first thermal_zone_device_update(). Both thermal core framework and step_wise governor is enhanced to handle this. And since the step_wise governor is the only one that uses trends, so it's the only thermal governor that needs to be updated. CC: #3.18+ Tested-by: Manuel Krause Tested-by: szegad Tested-by: prash Tested-by: amish Tested-by: Matthias Reviewed-by: Javi Merino Signed-off-by: Zhang Rui Signed-off-by: Chen Yu drivers/thermal/step_wise.c | 17 +++++++++++++++-- drivers/thermal/thermal_core.c | 19 +++++++++++++++++-- drivers/thermal/thermal_core.h | 1 + include/linux/thermal.h | 3 +++ 4 files changed, 36 insertions(+), 4 deletions(-) commit 5c5fc09a1157a11dbe84e6421c3e0b37d05238cb Author: Trond Myklebust Date: Mon Dec 28 19:30:05 2015 -0500 NFS: Ensure we revalidate attributes before using execute_ok() Donald Buczek reports that NFS clients can also report incorrect results for access() due to lack of revalidation of attributes before calling execute_ok(). Looking closely, it seems chdir() is afflicted with the same problem. Fix is to ensure we call nfs_revalidate_inode_rcu() or nfs_revalidate_inode() as appropriate before deciding to trust execute_ok(). Reported-by: Donald Buczek Link: http://lkml.kernel.org/r/1451331530-3748-1-git-send-email-buczek@molgen.mpg.de Signed-off-by: Trond Myklebust fs/nfs/dir.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) commit bf0dda345b0ee1af287f043857fc34ecfa206293 Author: Marek Szyprowski Date: Wed Nov 25 13:59:58 2015 +0100 ARM: dts: Unify G2D device node with other devices on exynos4 G2D device is always available and doesn't depend on any external (board specific) peripherals, so it can be unconditionally enabled. Signed-off-by: Marek Szyprowski Signed-off-by: Krzysztof Kozlowski arch/arm/boot/dts/exynos4210-origen.dts | 4 ---- arch/arm/boot/dts/exynos4210-smdkv310.dts | 4 ---- arch/arm/boot/dts/exynos4210.dtsi | 1 - arch/arm/boot/dts/exynos4412-odroid-common.dtsi | 4 ---- arch/arm/boot/dts/exynos4412-origen.dts | 4 ---- arch/arm/boot/dts/exynos4412-smdk4412.dts | 4 ---- arch/arm/boot/dts/exynos4x12.dtsi | 1 - 7 files changed, 22 deletions(-) commit 25cd01b223ba2cf6225b64de09622d570b3b3d34 Author: Marek Szyprowski Date: Wed Nov 25 13:55:26 2015 +0100 ARM: dts: Add power domain to G2D device on exynos4210 G2D device and it's SYSMMU belongs to LCD0 power domain on Exynos 4210, so add missing power-domains property to G2D device node (G2D's SYSMMU is already bound to LCD0 power domain). Signed-off-by: Marek Szyprowski Signed-off-by: Krzysztof Kozlowski arch/arm/boot/dts/exynos4210.dtsi | 1 + 1 file changed, 1 insertion(+) commit f99e9a77011c6b4960ff7cbe3909bee81099a986 Author: Marek Szyprowski Date: Thu Nov 26 13:49:47 2015 +0100 ARM: dts: MDMA1 device belongs to LCD0 power domain on exynos4210 On Exynos 4210 MDMA1 device belongs to LCD0 power domain, so add proper power-domains property. On Exynos 4x12, it belongs to TOP power domain, which is always enabled, thus require no assignment in exynos4x12.dtsi. Signed-off-by: Marek Szyprowski Signed-off-by: Krzysztof Kozlowski arch/arm/boot/dts/exynos4210.dtsi | 4 ++++ 1 file changed, 4 insertions(+) commit 42a966aa7198426620dfa8a28749f0c973fe3ab7 Author: Javier Martinez Canillas Date: Wed Nov 25 09:11:23 2015 -0300 ARM: dts: Remove unneeded GPIO include in exynos4412-odroidu3 The header is already included in the exynos4412-odroid-common DTSI so there's no need to do it again in the DTS file. Signed-off-by: Javier Martinez Canillas Signed-off-by: Krzysztof Kozlowski arch/arm/boot/dts/exynos4412-odroidu3.dts | 1 - 1 file changed, 1 deletion(-) commit e8d761b85e37bac136dc14e70bf871fd5fbf4443 Author: Marek Szyprowski Date: Mon Nov 16 15:36:54 2015 +0100 ARM: dts: exynos4210-universal_c210: Disable DMA for UARTs PDMA for UART devices seems not to be working properly on Exynos 4210 revision 0 used in Universal C210 boards, so disable it to let one to use UART devices (driver defaults to PIO mode if DMA is not present). Signed-off-by: Marek Szyprowski Signed-off-by: Krzysztof Kozlowski arch/arm/boot/dts/exynos4210-universal_c210.dts | 8 ++++++++ 1 file changed, 8 insertions(+) commit 997a2ec0a4297c5c4c14e1b1a9b01e04a0273ba6 Author: Marek Szyprowski Date: Thu Nov 19 12:51:22 2015 +0100 ARM: dts: Use peripheral mode for dwc3_1 on exynos5422-odroidxu3 DWC3 device found on Exynos SoCs cannot work in OTG mode alone, because it lacks some OTG related control part. OTG mode operation is possible only with external hardware logic (usually GPIO-based) specific to the board. Right now, however, there is no driver for such logic and no bindings, so the OTG mode is dysfunctional at all (this means that it doesn't work as a peripheral nor as a host). This patch sets the operation mode to peripheral to get DWC3_1 device at least somehow working. This can be later updated, when proper OTG driver and bindings get developed. Signed-off-by: Marek Szyprowski Signed-off-by: Krzysztof Kozlowski arch/arm/boot/dts/exynos5422-odroidxu3-lite.dts | 2 +- arch/arm/boot/dts/exynos5422-odroidxu3.dts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit e8769d3add46c4d0c7f313009ecec44e2faba117 Author: Marek Szyprowski Date: Fri Nov 13 14:29:46 2015 +0100 ARM: dts: Add rotator node on exynos5420 This patch adds device node for Rotator device and it's SYSMMU to Exynos 542x device tree file. Signed-off-by: Marek Szyprowski Reviewed-by: Krzysztof Kozlowski Signed-off-by: Krzysztof Kozlowski arch/arm/boot/dts/exynos5420.dtsi | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit d35e20d9760f810cb278f796e67f542091bdfa16 Author: Marek Szyprowski Date: Fri Nov 13 14:29:45 2015 +0100 ARM: dts: Add rotator node on exynos5250 This patch adds device node for Rotator device to Exynos 5250 device tree file. Signed-off-by: Marek Szyprowski Reviewed-by: Krzysztof Kozlowski Signed-off-by: Krzysztof Kozlowski arch/arm/boot/dts/exynos5250.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) commit 3398a187f074f96d1ecfb27aa33c2c922a72cb59 Author: Marek Szyprowski Date: Fri Nov 13 14:29:44 2015 +0100 ARM: dts: Fix power domain for sysmmu-rotator device on exynos4 Rotator device and it's SYSMMU belongs to different power domains on various Exynos4 SoC revisions: LCD0 for 4210 and TOP for 4x12. This patch fixes this by moving power-domains property to exynos4210.dtsi. TOP power domain is always enabled and it is not represented in DTS. Signed-off-by: Marek Szyprowski Reviewed-by: Krzysztof Kozlowski Signed-off-by: Krzysztof Kozlowski arch/arm/boot/dts/exynos4.dtsi | 1 - arch/arm/boot/dts/exynos4210.dtsi | 4 ++++ 2 files changed, 4 insertions(+), 1 deletion(-) commit 0c7e90b53997d558625085678848189206b4143e Author: Marek Szyprowski Date: Fri Nov 13 14:29:43 2015 +0100 ARM: dts: Add rotator nodes on exynos4 This patch adds device node for Rotator device to Exynos 4210 and 4x12 device tree files. Signed-off-by: Marek Szyprowski Reviewed-by: Krzysztof Kozlowski Signed-off-by: Krzysztof Kozlowski arch/arm/boot/dts/exynos4.dtsi | 9 +++++++++ arch/arm/boot/dts/exynos4210.dtsi | 4 ++++ arch/arm/boot/dts/exynos4x12.dtsi | 4 ++++ 3 files changed, 17 insertions(+) commit 4e730c0b9cae11b473fec583e5612d03f90fe495 Author: Krzysztof Kozlowski Date: Mon Oct 19 14:00:34 2015 +0900 ARM: dts: Enable PRNG module on exynos4412-trats2 Enable Pseudo Random Number Generator (PRNG) on Trats2 board. This allows using hardware random number generator: $ echo exynos > /sys/class/misc/hw_random/rng_current Signed-off-by: Krzysztof Kozlowski arch/arm/boot/dts/exynos4412-trats2.dts | 4 ++++ 1 file changed, 4 insertions(+) commit a452977c43fa316a17e79c6d094beeabf7226ce5 Author: Krzysztof Kozlowski Date: Mon Oct 19 14:00:33 2015 +0900 ARM: dts: Add PRNG module for exynos4 Add Pseudo Random Number Generator (PRNG) node of Security Sub System (SSS) to Exynos 4 DTSI. Signed-off-by: Krzysztof Kozlowski arch/arm/boot/dts/exynos4.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) commit ac785efa59b281f3e725c2e5144273298756a368 Merge: f038f58 94af7a3 Author: Krzysztof Kozlowski Date: Tue Dec 29 09:07:21 2015 +0900 Merge tag 'samsung-clk-exynos4-4.5' into next/dt Add a Security SubSystem (SSS) clock for Exynos4, needed by exynos-rng driver (Pseudo Random Number Generator). commit f038f586c368b1730f51edf2619010b3b348fada Author: Andrzej Hajda Date: Wed Nov 18 09:33:07 2015 +0100 dt-bindings: remove deprecated compatible string from exynos-hdmi samsung,exynos5-hdmi compatible was marked as deprecated in Jun 2013. It was never used since then. Signed-off-by: Andrzej Hajda Reviewed-by: Gustavo Padovan Signed-off-by: Krzysztof Kozlowski Documentation/devicetree/bindings/display/exynos/exynos_hdmi.txt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 616d289abac9c63f5a5a56c0deb088360f4aed06 Author: Marek Szyprowski Date: Tue Nov 10 11:24:09 2015 +0100 ARM: dts: Remove fimd node from exynos5422-odroidxu3-common FIMD device is not used at all on Exynos5422-based Odroid XU3-lite and XU4. XU3 board theorethically can support FIMD with DisplayPort connector, but due to hw limitation/design it doesn't work in most cases. It is also not even enabled in XU3 dts file. FIMD node was enabled mainly due to limitation of early Exynos DRM driver, which didn't initialize properly when no FIMD device was available. This node can be now safely removed from XU3-common dtsi and added layer to Odroid XU3 dts, when Display Port driver gets enabled. Signed-off-by: Marek Szyprowski Tested-by: Krzysztof Kozlowski Reviewed-by: Krzysztof Kozlowski Signed-off-by: Krzysztof Kozlowski arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi | 5 ----- 1 file changed, 5 deletions(-) commit 241658f44e120374932ad547d326be2420344943 Author: Javier Martinez Canillas Date: Thu Oct 15 18:51:13 2015 +0200 ARM: dts: Mark eMMC as non-removable in exynos5250-snow-common The eMMC is non-removable so mark it using the non-removable DT property to avoid having to redetect it after a suspend/resume. Also remove the card-detect-delay property that is not needed with non-removable. Signed-off-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski Reviewed-by: Tomeu Vizoso Tested-by: Tomeu Vizoso Reviewed-by: Alim Akhtar Signed-off-by: Krzysztof Kozlowski arch/arm/boot/dts/exynos5250-snow-common.dtsi | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit da8d3f39808ee487ca7fe62ce7f645815d9e2f3e Author: Javier Martinez Canillas Date: Thu Oct 15 18:51:12 2015 +0200 ARM: dts: Remove broken-cd from eMMC node in exynos5420-peach-pi The eMMC is non-removable so is marked with the non-removable DT property to avoid having to redetect it after a suspend/resume. But it also has the broken-cd property which is wrong since only one of the DT properties for card detection should be used. Also remove the card-detect-delay property that is not needed with non-removable. Signed-off-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski Reviewed-by: Alim Akhtar Tested-by: Alim Akhtar Signed-off-by: Krzysztof Kozlowski arch/arm/boot/dts/exynos5420-peach-pit.dts | 2 -- 1 file changed, 2 deletions(-) commit dbe2a40a12c2591e88714ccce796f6f62a1cc25f Author: Javier Martinez Canillas Date: Thu Oct 15 18:51:11 2015 +0200 ARM: dts: Remove broken-cd from eMMC node in exynos5800-peach-pi The eMMC is non-removable so is marked with the non-removable DT property to avoid having to redetect it after a suspend/resume. But it also has the broken-cd property which is wrong since only one of the DT properties for card detection should be used. Also remove the card-detect-delay property that is not needed with non-removable. Signed-off-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski Reviewed-by: Alim Akhtar Tested-by: Alim Akhtar Signed-off-by: Krzysztof Kozlowski arch/arm/boot/dts/exynos5800-peach-pi.dts | 2 -- 1 file changed, 2 deletions(-) commit 783482725f02b16f4737ef17decb9f2f91d482d5 Author: Javier Martinez Canillas Date: Thu Oct 15 18:51:10 2015 +0200 ARM: dts: Mark SDIO as non-removable in exynos5250-snow-common The Exynos5250 Snow Chromebooks have a Marvell WiFi SDIO chip which can't neither be removed nor be detected. But the node isn't marked as non-removable and instead has the broken-cd DT property. This causes the device to be removed when the system enters into a suspend state and the following warnings is shown after a resume: [ 181.944636] mmc2: error -2 during resume (card was removed?) Also remove the card-detect-delay property that is not needed with non-removable. Signed-off-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski Reviewed-by: Tomeu Vizoso Tested-by: Tomeu Vizoso Reviewed-by: Alim Akhtar Signed-off-by: Krzysztof Kozlowski arch/arm/boot/dts/exynos5250-snow-common.dtsi | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 29a2289debbd4758f80afb6d393701ddb09e296a Author: Javier Martinez Canillas Date: Thu Oct 15 18:51:09 2015 +0200 ARM: dts: Mark SDIO as non-removable in exynos5420-peach-pit The Exynos5420 Peach Pit Chromebook has a Marvell WiFi SDIO chip which can't neither be removed nor be detected. But the node isn't marked as non-removable and instead has the broken-cd DT property. This causes the device to be removed when the system enters into a suspend state and the following warnings is shown after a resume: [ 181.944636] mmc2: error -2 during resume (card was removed?) Also remove the card-detect-delay property that is not needed with non-removable. Signed-off-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski Reviewed-by: Alim Akhtar Signed-off-by: Krzysztof Kozlowski arch/arm/boot/dts/exynos5420-peach-pit.dts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 3752216286e283f55b2cd2f2cb7533895a02ee95 Author: Javier Martinez Canillas Date: Thu Oct 15 18:51:08 2015 +0200 ARM: dts: Mark SDIO as non-removable in exynos5800-peach-pi The Exynos5800 Peach Pi Chromebook has a Marvell WiFi SDIO chip which can't neither be removed nor be detected. But the node isn't marked as non-removable and instead has the broken-cd DT property. This causes the device to be removed when the system enters into a suspend state and the following warnings is shown after a resume: [ 181.944636] mmc2: error -2 during resume (card was removed?) Also remove the card-detect-delay property that is not needed with non-removable. Signed-off-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski Reviewed-by: Alim Akhtar Signed-off-by: Krzysztof Kozlowski arch/arm/boot/dts/exynos5800-peach-pi.dts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 0933b453f1c7104d873aacf8524f8ac380a7ed08 Author: Guenter Roeck Date: Thu Dec 24 14:22:04 2015 -0800 watchdog: qcom-wdt: Do not set 'dev' in struct watchdog_device The 'dev' pointer in struct watchdog_device is set by the watchdog core when registering the watchdog device and not by the driver. It points to the watchdog device, not its parent. Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/qcom-wdt.c | 1 - 1 file changed, 1 deletion(-) commit 073523662a821940383eb3bf4064c41b0e3dae0d Author: Guenter Roeck Date: Thu Dec 24 14:22:03 2015 -0800 watchdog: mena21: Do not use device pointer from struct watchdog_device The device pointer in struct watchdog_device has a different lifetime than the driver code and should not be used in drivers. Use the pointer to the parent device instead. Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/mena21_wdt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8a7b76be691fa30c7650b8e08aae8a7990c93779 Author: Guenter Roeck Date: Thu Dec 24 14:22:02 2015 -0800 watchdog: gpio: Do not use device pointer from struct watchdog_device The device pointer in struct watchdog_device has a different lifetime than the driver code and should not be used in drivers. Use the pointer to the parent device instead. Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/gpio_wdt.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 3d29f80813ba335a21b56debff8e4b92a2772a64 Author: Guenter Roeck Date: Thu Dec 24 14:22:01 2015 -0800 watchdog: tangox: Print info message using pointer to platform device The device pointer in struct watchdog_device should not be used by drivers and may be removed in the near future. Use the platform device pointer for info messages instead. Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/tangox_wdt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 92b3649525a5c3daf0b395b6daeaed1ce0d235c2 Author: Guenter Roeck Date: Thu Dec 24 14:22:00 2015 -0800 watchdog: bcm2835_wdt: Drop log message if watchdog is stopped Stopping a watchdog is a normal operation and does not warrant a log message. Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/bcm2835_wdt.c | 1 - 1 file changed, 1 deletion(-) commit 2bfc9beb61ed042c4c7632bd1c96c9dfbcedcc05 Author: Mans Rullgard Date: Wed Nov 18 17:55:42 2015 +0000 devicetree: watchdog: add binding for Sigma Designs SMP8642 watchdog This adds a binding for the watchdog in Sigma Designs SMP8642 and similar devices. Signed-off-by: Mans Rullgard Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck .../devicetree/bindings/watchdog/sigma,smp8642-wdt.txt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit dca536c433a20f916451d8318f4aa7158c0d811c Author: Mans Rullgard Date: Thu Nov 19 22:09:05 2015 +0000 watchdog: add support for Sigma Designs SMP86xx/SMP87xx This adds support for the Sigma Designs SMP86xx/SMP87xx family built-in watchdog. Signed-off-by: Mans Rullgard Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/Kconfig | 10 ++ drivers/watchdog/Makefile | 1 + drivers/watchdog/tangox_wdt.c | 225 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 236 insertions(+) commit 5c6bb88a1b8890225d83fd00d14cf10ae00df91f Author: Martyn Welch Date: Wed Nov 25 12:03:34 2015 +0000 Add binding documentation for Zodiac Watchdog Timer This patchs adds documentation for the binding of the Zodiac RAVE Switch Watchdog Processor. This is an i2c based watchdog. Cc: Pawel Moll Cc: Mark Rutland Cc: Ian Campbell Cc: Kumar Gala Cc: devicetree@vger.kernel.org Signed-off-by: Martyn Welch Acked-by: Rob Herring Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck .../devicetree/bindings/watchdog/ziirave-wdt.txt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit 2a7b753a285ebe1d067b1af98e5aad0cc981fffd Author: Martyn Welch Date: Tue Dec 1 15:32:47 2015 +0000 watchdog: Zodiac Aerospace RAVE Switch Watchdog Processor Driver This patch adds a driver for the Zodiac Aerospace RAVE Watchdog Procesor. This device implements a watchdog timer, accessible over I2C. Signed-off-by: Martyn Welch Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/Kconfig | 11 ++ drivers/watchdog/Makefile | 1 + drivers/watchdog/ziirave_wdt.c | 381 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 393 insertions(+) commit a62a7231899606655e98f060e52c4760cf556811 Author: Oleksij Rempel Date: Wed Nov 25 20:33:23 2015 +0100 DT: watchdog: add Alphascale asm9260 watchdog binding documentation. Signed-off-by: Oleksij Rempel Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck .../bindings/watchdog/alphascale-asm9260.txt | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) commit aae03dc981772ce8fca7eb4f899a22014bc4c38e Author: Oleksij Rempel Date: Wed Nov 25 20:33:22 2015 +0100 watchdog: add Alphascale asm9260-wdt driver Add WD support for Alphascale asm9260 SoC. This driver provide support for different function modes: - HW mode to trigger SoC reset on timeout - SW mode do soft reset if needed - DEBUG mode Signed-off-by: Oleksij Rempel Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/Kconfig | 10 + drivers/watchdog/Makefile | 1 + drivers/watchdog/asm9260_wdt.c | 403 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 414 insertions(+) commit bf9006399939762e6cd32445e848e56727df9d98 Author: Damien Riegel Date: Tue Dec 8 11:37:28 2015 -0500 watchdog: ts4800: add driver for TS-4800 watchdog This watchdog is instantiated in a FPGA that is memory mapped. It is made of only one register, called the feed register. Writing to this register will re-arm the watchdog for a given time (and enable it if it was disable). It can be disabled by writing a special value into it. It is part of a syscon block, and the watchdog register offset in this block varies from board to board. This offset is passed in the syscon property after the phandle to the syscon node. Signed-off-by: Damien Riegel Acked-by: Rob Herring Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck .../devicetree/bindings/watchdog/ts4800-wdt.txt | 25 +++ drivers/watchdog/Kconfig | 10 + drivers/watchdog/Makefile | 1 + drivers/watchdog/ts4800_wdt.c | 215 +++++++++++++++++++++ 4 files changed, 251 insertions(+) commit b466ee89509a1593441537f34c313edafe2ba47c Author: Guo Zeng Date: Wed Dec 2 03:37:47 2015 +0000 watchdog: atlas7: add watchdog driver of CSRatlas7 This patch adds watchdog driver for CSRatlas7 platform. On CSRatlas7, the 6th timer can act as a watchdog timer when the Watchdog mode is enabled. Signed-off-by: Guo Zeng Signed-off-by: William Wang Signed-off-by: Barry Song Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/Kconfig | 10 ++ drivers/watchdog/Makefile | 1 + drivers/watchdog/atlas7_wdt.c | 242 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 253 insertions(+) commit 71388840ec360e0489be7a75971b595c729b5323 Author: Carlo Caione Date: Sun Nov 8 13:18:55 2015 +0100 watchdog: meson: Add meson8b SoC specific data Add SoC specific data in the watchdog driver for the meson8b SoC. Signed-off-by: Carlo Caione Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/meson_wdt.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 943bf1f6466f81e3ac4322c6887a4f4d68452e7f Author: Carlo Caione Date: Sun Nov 8 13:18:54 2015 +0100 watchdog: meson: Enable meson SoC specific data With this patch we refactor the driver code to enable watchdog support for all platforms based on Amlogic meson SoCs. The new default timeout is also now chosen considering the maximum timeout allowed by the SoC. Signed-off-by: Carlo Caione Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/meson_wdt.c | 58 +++++++++++++++++++++++++++++++------------- 1 file changed, 41 insertions(+), 17 deletions(-) commit ca22e79f5667faf7f6ed238e04075aeff936bbab Author: Mingarelli, Thomas Date: Mon Dec 14 20:22:09 2015 +0000 watchdog: hpwdt: HP rebranding This patch is for the rebranding changes for the corporate split at HP. There are no functional changes with this patch. Signed-off-by: Tom Mingarelli Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/hpwdt.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 58baac0ac7cc13a690f6f7cea23accaf84e843a0 Merge: 8d0ed0c 4d0ac22 Author: Trond Myklebust Date: Mon Dec 28 14:49:41 2015 -0500 Merge branch 'flexfiles' * flexfiles: pNFS/flexfiles: Ensure we record layoutstats even if RPC is terminated early pNFS: Add flag to track if we've called nfs4_ff_layout_stat_io_start_read/write pNFS/flexfiles: Fix a statistics gathering imbalance pNFS/flexfiles: Don't mark the entire layout as failed, when returning it pNFS/flexfiles: Don't prevent flexfiles client from retrying LAYOUTGET pnfs/flexfiles: count io stat in rpc_count_stats callback pnfs/flexfiles: do not mark delay-like status as DS failure NFS41: map NFS4ERR_LAYOUTUNAVAILABLE to ENODATA nfs: only remove page from mapping if launder_page fails nfs: handle request add failure properly nfs: centralize pgio error cleanup nfs: clean up rest of reqs when failing to add one NFS41: pop some layoutget errors to application pNFS/flexfiles: Support server-supplied layoutstats sampling period commit 8d0ed0ca6381fea4a97f3b0f085cb1dfa0a50ec0 Merge: d135891 26ae9d1 Author: Trond Myklebust Date: Mon Dec 28 14:49:14 2015 -0500 Merge tag 'nfs-rdma-4.5' of git://git.linux-nfs.org/projects/anna/nfs-rdma NFS: NFSoRDMA Client Side Changes These patches mostly fix send queue ordering issues inside the NFSoRDMA client, but there are also two patches from Dan Carpenter fixing up smatch warnings. Signed-off-by: Anna Schumaker * tag 'nfs-rdma-4.5' of git://git.linux-nfs.org/projects/anna/nfs-rdma: xprtrdma: Revert commit e7104a2a9606 ('xprtrdma: Cap req_cqinit'). xprtrdma: Invalidate in the RPC reply handler xprtrdma: Add ro_unmap_sync method for all-physical registration xprtrdma: Add ro_unmap_sync method for FMR xprtrdma: Add ro_unmap_sync method for FRWR xprtrdma: Introduce ro_unmap_sync method xprtrdma: Move struct ib_send_wr off the stack xprtrdma: Disable RPC/RDMA backchannel debugging messages xprtrdma: xprt_rdma_free() must not release backchannel reqs xprtrdma: Fix additional uses of spin_lock_irqsave(rb_lock) xprtrdma: checking for NULL instead of IS_ERR() xprtrdma: clean up some curly braces commit e07db907eb80525874b7707c62cc6f5e975ef130 Author: Trond Myklebust Date: Mon Dec 28 14:07:23 2015 -0500 NFSv4: List stateid information in the callback tracepoints The stateid is extremely valuable when debugging. Signed-off-by: Trond Myklebust fs/nfs/callback_proc.c | 16 +++++++++--- fs/nfs/nfs4trace.h | 69 ++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 79 insertions(+), 6 deletions(-) commit e0d9243048fd18da695b8d3fe331176eac60866e Author: Trond Myklebust Date: Mon Dec 28 12:21:50 2015 -0500 NFSv4.1/pNFS: Don't return NFS4ERR_DELAY unnecessarily in CB_LAYOUTRECALL If the client is promising to return the layout ASAP, then there is no need to return DELAY and have the server retry. Instead default to the normal procedure described in RFC5661. Signed-off-by: Trond Myklebust fs/nfs/callback_proc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 41c9127d6d588138c66b2614ac596ea63313acca Author: Trond Myklebust Date: Mon Dec 28 12:57:53 2015 -0500 NFSv4.1/pNFS: Ensure we enforce RFC5661 Section 12.5.5.2.1 The RFC requires us to check if the server is recalling a stateid that we haven't yet received. If so, tell it to wait. Signed-off-by: Trond Myklebust fs/nfs/callback_proc.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit fc7ff36747b991d1be0d68987066ea87eedbb43e Author: Trond Myklebust Date: Mon Dec 28 10:28:59 2015 -0500 pNFS: If we have to delay the layout callback, mark the layout for return If the client needs to delay the layout callback, then speed up the recall process by marking the remaining layout segments to be actively returned by the client. Signed-off-by: Trond Myklebust fs/nfs/callback_proc.c | 14 ++++++++++++-- fs/nfs/pnfs.c | 4 +++- fs/nfs/pnfs.h | 3 +++ 3 files changed, 18 insertions(+), 3 deletions(-) commit 0654cc726fc6eed6dca915fb65ba7975716ea080 Author: Trond Myklebust Date: Mon Dec 28 11:48:14 2015 -0500 NFSv4.1/pNFS: Add a helper to mark the layout as returned This ensures that we don't reuse the stateid if a layout return or implied layout return means that we've returned all layout segments Signed-off-by: Trond Myklebust fs/nfs/callback_proc.c | 1 + fs/nfs/nfs4proc.c | 3 ++- fs/nfs/pnfs.c | 1 + fs/nfs/pnfs.h | 13 +++++++++++++ 4 files changed, 17 insertions(+), 1 deletion(-) commit ab7d763e477c5be33ac9cffc68e808bbd69371f7 Author: Trond Myklebust Date: Mon Dec 28 10:32:11 2015 -0500 pNFS: Ensure nfs4_layoutget_prepare returns the correct error If we're unable to perform the layoutget due to an invalid open stateid or a bulk recall, ensure that we return the error so that the caller can decide on an appropriate action. Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 4d0ac22109740c36174c5aac630876b2af0f6943 Author: Trond Myklebust Date: Tue Dec 22 15:32:00 2015 -0500 pNFS/flexfiles: Ensure we record layoutstats even if RPC is terminated early Currently, we will only record the layoutstats correctly if the RPC call successfully obtains a slot. If we exit before that happens, then we may find ourselves starting the busy timer through the call in ff_layout_(read|write)_prepare_layoutstats, but never stopping it. The same thing happens if we're doing DA-DS. The fix is to ensure that we catch these cases in the rpc_release() callback. Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 37 ++++++++++++++++++++++++++++------ 1 file changed, 31 insertions(+), 6 deletions(-) commit 37e9ed22b1552fa94ee7db2901a5e7d8bdf60b15 Author: Trond Myklebust Date: Tue Dec 22 12:30:24 2015 -0500 pNFS: Add flag to track if we've called nfs4_ff_layout_stat_io_start_read/write Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 95 +++++++++++++++++++++++++--------- include/linux/nfs_xdr.h | 2 + 2 files changed, 72 insertions(+), 25 deletions(-) commit 7eeea1679783e7c1c38074e8c562900b7e3d3dd7 Author: Trond Myklebust Date: Thu Dec 17 09:22:15 2015 -0500 pNFS/flexfiles: Fix a statistics gathering imbalance When we replay a failed read, write or commit to the dataserver, we need to ensure that we call ff_layout_read_prepare_v3(), ff_layout_write_prepare_v3 or ff_layout_commit_prepare_v3() so that we reset the statistics. Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b9fc773ef512dd3db71560463d0e5543c35fe976 Author: Trond Myklebust Date: Tue Dec 15 11:15:05 2015 -0500 pNFS/flexfiles: Don't mark the entire layout as failed, when returning it In pNFS/flexfiles, we want to return the layout without necessarily marking it as having completely failed. We therefore move the call to pnfs_layout_io_set_failed() out of pnfs_error_mark_layout_for_return(), and then ensura that pNFS/files layout calls it separately. Signed-off-by: Trond Myklebust fs/nfs/filelayout/filelayout.c | 1 + fs/nfs/pnfs.c | 3 --- 2 files changed, 1 insertion(+), 3 deletions(-) commit 2e5b29f0448be9ea8da3ee0412a2043fee59e131 Author: Trond Myklebust Date: Mon Dec 14 16:25:11 2015 -0500 pNFS/flexfiles: Don't prevent flexfiles client from retrying LAYOUTGET Fix a bug in which flexfiles clients are falling back to I/O through the MDS even when the FF_FLAGS_NO_IO_THRU_MDS flag is set. The flexfiles client will always report errors through the LAYOUTRETURN and/or LAYOUTERROR mechanisms, so it should normally be safe for it to retry the LAYOUTGET until it fails or succeeds. Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 4 ---- fs/nfs/flexfilelayout/flexfilelayoutdev.c | 16 ++++------------ fs/nfs/pnfs.c | 18 ++---------------- fs/nfs/pnfs.h | 21 --------------------- 4 files changed, 6 insertions(+), 53 deletions(-) commit 141b9b59ed8ae2602b2c285149ec8d4f6b05c4d9 Author: Peng Tao Date: Mon Dec 7 18:33:14 2015 -0500 pnfs/flexfiles: count io stat in rpc_count_stats callback If client ever restarts IO due to some errors, we'll endup mis-counting IO stats if we do the counting in .rpc_done callback. Move it to .rpc_count_stats callback that is only called when releasing RPC. Signed-off-by: Peng Tao Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) commit c22eeb8697352bd696300aabaf08eaff99bdb635 Author: Peng Tao Date: Mon Dec 7 17:31:38 2015 -0500 pnfs/flexfiles: do not mark delay-like status as DS failure We just need to delay and retry in these cases. Signed-off-by: Peng Tao Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 7c1e6e58e2aa8b95d1b9888db1945eb0a388efb9 Author: Peng Tao Date: Sat Dec 5 17:01:01 2015 +0800 NFS41: map NFS4ERR_LAYOUTUNAVAILABLE to ENODATA Instead of mapping it to EIO that is a fatal error and fails application. We'll go inband after getting NFS4ERR_LAYOUTUNAVAILABLE. Signed-off-by: Peng Tao Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit d6c843b96e1cb5199147e3281a724e3c0b69a9ab Author: Peng Tao Date: Sat Dec 5 16:20:43 2015 +0800 nfs: only remove page from mapping if launder_page fails Instead of dropping pages when write fails, only do it when we get fatal failure in launder_page write back. Signed-off-by: Peng Tao Signed-off-by: Trond Myklebust fs/nfs/file.c | 2 +- fs/nfs/write.c | 39 +++++++++++++++++++++++---------------- include/linux/nfs_fs.h | 14 +++++++++++++- 3 files changed, 37 insertions(+), 18 deletions(-) commit 0bcbf039f6b2bcefe4f5dada76079080edf9ecd0 Author: Peng Tao Date: Sat Dec 5 15:57:31 2015 +0800 nfs: handle request add failure properly When we fail to queue a read page to IO descriptor, we need to clean it up otherwise it is hanging around preventing nfs module from being removed. When we fail to queue a write page to IO descriptor, we need to clean it up and also save the failure status to open context. Then at file close, we can try to write pages back again and drop the page if it fails to writeback in .launder_page, which will be done in the next patch. Signed-off-by: Peng Tao Signed-off-by: Trond Myklebust fs/nfs/inode.c | 6 ++++++ fs/nfs/internal.h | 14 ++++++++++++++ fs/nfs/pnfs.c | 15 +++------------ fs/nfs/read.c | 41 +++++++++++++++++++++++------------------ fs/nfs/write.c | 22 +++++++++++++++++++++- 5 files changed, 67 insertions(+), 31 deletions(-) commit 2bff2288579f1e4af2f05a7f7443c85b7766d5ac Author: Peng Tao Date: Sat Dec 5 02:03:17 2015 +0800 nfs: centralize pgio error cleanup In case we fail during setting things up for read/write IO, set pg_error in IO descriptor and do the cleanup in nfs_pageio_add_request, where we clean up all pages that are still hanging around on the IO descriptor. Signed-off-by: Peng Tao Signed-off-by: Trond Myklebust fs/nfs/pagelist.c | 53 +++++++++++++++++++++++++++++------------------------ fs/nfs/pnfs.c | 12 ++++-------- 2 files changed, 33 insertions(+), 32 deletions(-) commit c18b96a1b8629db8cf5ac9f8974ccb4abcc209ab Author: Peng Tao Date: Sat Dec 5 01:59:56 2015 +0800 nfs: clean up rest of reqs when failing to add one If we fail to set up things before sending anything over wire, we need to clean up the reqs that are still attached to the IO descriptor. Signed-off-by: Peng Tao Signed-off-by: Trond Myklebust fs/nfs/pagelist.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) commit d600ad1f2bdbf97c4818dcc85b174f72c90c21bd Author: Peng Tao Date: Fri Dec 4 02:57:48 2015 +0800 NFS41: pop some layoutget errors to application For ERESTARTSYS/EIO/EROFS/ENOSPC/E2BIG in layoutget, we should just bail out instead of hiding the error and retrying inband IO. Change all the call sites to pop the error all the way up. Signed-off-by: Peng Tao Signed-off-by: Trond Myklebust fs/nfs/direct.c | 15 ++++++++++++++- fs/nfs/filelayout/filelayout.c | 17 +++++++++++++++-- fs/nfs/flexfilelayout/flexfilelayout.c | 25 ++++++++++++++++++++++--- fs/nfs/pagelist.c | 9 ++++++++- fs/nfs/pnfs.c | 24 ++++++++++++++++++------ fs/nfs/read.c | 2 +- 6 files changed, 78 insertions(+), 14 deletions(-) commit d0379a5d066a998b0210a81dc52e266ce4daaa36 Author: Trond Myklebust Date: Mon Nov 16 11:26:07 2015 -0500 pNFS/flexfiles: Support server-supplied layoutstats sampling period Some servers want to be able to control the frequency with which clients report layoutstats, for instance, in order to monitor QoS for a particular file or set of file. In order to support this, the flexfiles layout allows the server to pass this info as a hint in the layout payload. Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 16 +++++++++++++--- fs/nfs/flexfilelayout/flexfilelayout.h | 1 + 2 files changed, 14 insertions(+), 3 deletions(-) commit 494f74a26c14d10bb26a45218b50feb75bdedeca Author: Trond Myklebust Date: Mon Dec 28 13:34:59 2015 -0500 NFS: Flush reclaim writes using FLUSH_COND_STABLE If there are already writes queued up for commit, then don't flush just this page even if it is a reclaim issue. Signed-off-by: Trond Myklebust fs/nfs/write.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b0ac1bd2bbfd5e500432714e55a791c4d394047f Author: Trond Myklebust Date: Mon Dec 28 13:30:42 2015 -0500 NFS: Background flush should not be low priority Background flush is needed in order to satisfy the global page limits. Don't subvert by reducing the priority. This should also address a write starvation issue that was reported by Neil Brown. Signed-off-by: Trond Myklebust fs/nfs/write.c | 2 -- 1 file changed, 2 deletions(-) commit 1a093ceb053832c25b92f3cf26b957543c7baf9b Author: Trond Myklebust Date: Mon Dec 28 11:27:15 2015 -0500 NFSv4.1/pnfs: Fixup an lo->plh_block_lgets imbalance in layoutreturn Since commit 2d8ae84fbc32, nothing is bumping lo->plh_block_lgets in the layoutreturn path, so it should not be touched in nfs4_layoutreturn_release either. Fixes: 2d8ae84fbc32 ("NFSv4.1/pnfs: Remove redundant lo->plh_block_lgets...") Cc: stable@vger.kernel.org # 4.3+ Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 1 - 1 file changed, 1 deletion(-) commit 762674f86d0328d5dc923c966e209e1ee59663f2 Author: Trond Myklebust Date: Sat Dec 26 21:54:58 2015 -0500 NFSv4: Don't perform cached access checks before we've OPENed the file Donald Buczek reports that a nfs4 client incorrectly denies execute access based on outdated file mode (missing 'x' bit). After the mode on the server is 'fixed' (chmod +x) further execution attempts continue to fail, because the nfs ACCESS call updates the access parameter but not the mode parameter or the mode in the inode. The root cause is ultimately that the VFS is calling may_open() before the NFS client has a chance to OPEN the file and hence revalidate the access and attribute caches. Al Viro suggests: >>> Make nfs_permission() relax the checks when it sees MAY_OPEN, if you know >>> that things will be caught by server anyway? >> >> That can work as long as we're guaranteed that everything that calls >> inode_permission() with MAY_OPEN on a regular file will also follow up >> with a vfs_open() or dentry_open() on success. Is this always the >> case? > > 1) in do_tmpfile(), followed by do_dentry_open() (not reachable by NFS since > it doesn't have ->tmpfile() instance anyway) > > 2) in atomic_open(), after the call of ->atomic_open() has succeeded. > > 3) in do_last(), followed on success by vfs_open() > > That's all. All calls of inode_permission() that get MAY_OPEN come from > may_open(), and there's no other callers of that puppy. Reported-by: Donald Buczek Link: https://bugzilla.kernel.org/show_bug.cgi?id=109771 Link: http://lkml.kernel.org/r/1451046656-26319-1-git-send-email-buczek@molgen.mpg.de Cc: Al Viro Signed-off-by: Trond Myklebust fs/nfs/dir.c | 3 +++ 1 file changed, 3 insertions(+) commit f7d7f59ab124748156ea551edf789994f05da342 Author: Oliver Freyermuth Date: Mon Dec 28 18:37:38 2015 +0100 USB: cp210x: add ID for ELV Marble Sound Board 1 Add the USB device ID for ELV Marble Sound Board 1. Signed-off-by: Oliver Freyermuth Cc: stable Signed-off-by: Johan Hovold drivers/usb/serial/cp210x.c | 1 + 1 file changed, 1 insertion(+) commit 5913beaf0d70f97135ed7191c028fd88b3848864 Author: Pablo Neira Ayuso Date: Tue Dec 15 19:41:57 2015 +0100 netfilter: nfnetlink: pass down netns pointer to commit() and abort() callbacks Adapt callsites to avoid recurrent lookup of the netns pointer. Signed-off-by: Pablo Neira Ayuso include/linux/netfilter/nfnetlink.h | 4 ++-- net/netfilter/nf_tables_api.c | 6 ++---- net/netfilter/nfnetlink.c | 6 +++--- 3 files changed, 7 insertions(+), 9 deletions(-) commit 7b8002a1511fcbcb0596cac90d67ad5c8182d0aa Author: Pablo Neira Ayuso Date: Tue Dec 15 18:41:56 2015 +0100 netfilter: nfnetlink: pass down netns pointer to call() and call_rcu() Adapt callsites to avoid recurrent lookup of the netns pointer. Signed-off-by: Pablo Neira Ayuso include/linux/netfilter/nfnetlink.h | 8 +-- net/netfilter/ipset/ip_set_core.c | 108 +++++++++++++++-------------------- net/netfilter/nf_conntrack_netlink.c | 96 ++++++++++++++----------------- net/netfilter/nf_tables_api.c | 30 ++++------ net/netfilter/nfnetlink.c | 6 +- net/netfilter/nfnetlink_acct.c | 21 +++---- net/netfilter/nfnetlink_cthelper.c | 18 +++--- net/netfilter/nfnetlink_cttimeout.c | 42 ++++++-------- net/netfilter/nfnetlink_log.c | 15 ++--- net/netfilter/nfnetlink_queue.c | 36 +++++------- net/netfilter/nft_compat.c | 6 +- net/netfilter/xt_osf.c | 7 ++- 12 files changed, 173 insertions(+), 220 deletions(-) commit f4c756b4ea7d2921391febcaed4ce2511872a0e1 Author: Pablo Neira Ayuso Date: Tue Dec 15 19:40:50 2015 +0100 netfilter: nf_tables: remove check against removal of inactive objects The following sequence inside a batch, although not very useful, is valid: add table foo ... delete table foo This may be generated by some robot while applying some incremental upgrade, so remove the defensive checks against this. This patch keeps the check on the get/dump path by now, we have to replace the inactive flag by introducing object generations. Reported-by: Patrick McHardy Signed-off-by: Pablo Neira Ayuso net/netfilter/nf_tables_api.c | 29 +++++++++-------------------- 1 file changed, 9 insertions(+), 20 deletions(-) commit 5ebe0b0eec9d6f703b137f9b938c52f7b91dd9d6 Author: Pablo Neira Ayuso Date: Tue Dec 15 19:40:49 2015 +0100 netfilter: nf_tables: destroy basechain and rules on netdevice removal If the netdevice is destroyed, the resources that are attached should be released too as they belong to the device that is now gone. Suggested-by: Patrick McHardy Signed-off-by: Pablo Neira Ayuso include/net/netfilter/nf_tables.h | 5 +---- net/netfilter/nf_tables_api.c | 31 +++++++++++++++++++++------ net/netfilter/nf_tables_netdev.c | 45 ++++++++++++++++----------------------- 3 files changed, 44 insertions(+), 37 deletions(-) commit df05ef874b284d833c2d9795a6350c6a373ab6c9 Author: Pablo Neira Ayuso Date: Tue Dec 15 19:39:32 2015 +0100 netfilter: nf_tables: release objects on netns destruction We have to release the existing objects on netns removal otherwise we leak them. Chains are unregistered in first place to make sure no packets are walking on our rules and sets anymore. The object release happens by when we unregister the family via nft_release_afinfo() which is called from nft_unregister_afinfo() from the corresponding __net_exit path in every family. Reported-by: Patrick McHardy Signed-off-by: Pablo Neira Ayuso include/net/netfilter/nf_tables.h | 2 +- net/bridge/netfilter/nf_tables_bridge.c | 2 +- net/ipv4/netfilter/nf_tables_arp.c | 2 +- net/ipv4/netfilter/nf_tables_ipv4.c | 2 +- net/ipv6/netfilter/nf_tables_ipv6.c | 2 +- net/netfilter/nf_tables_api.c | 47 +++++++++++++++++++++++++++++++-- net/netfilter/nf_tables_inet.c | 2 +- net/netfilter/nf_tables_netdev.c | 2 +- 8 files changed, 52 insertions(+), 9 deletions(-) commit a639a8eecf2be962b5dcd38dedd8b6bd10c2354b Author: Joerg Roedel Date: Tue Dec 22 16:06:49 2015 +0100 iommu/amd: Preallocate dma_ops apertures based on dma_mask Preallocate between 4 and 8 apertures when a device gets it dma_mask. With more apertures we reduce the lock contention of the domain lock significantly. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 60 +++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 53 insertions(+), 7 deletions(-) commit 7b5e25b84eba25e78bce736a5c99649f7ff0f5c2 Author: Joerg Roedel Date: Tue Dec 22 13:38:12 2015 +0100 iommu/amd: Use trylock to aquire bitmap_lock First search for a non-contended aperture with trylock before spinning. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) commit 5f6bed50050625f1b76fa2c0dfd0ce887cb0420a Author: Joerg Roedel Date: Tue Dec 22 13:34:22 2015 +0100 iommu/amd: Make dma_ops_domain->next_index percpu Make this pointer percpu so that we start searching for new addresses in the range we last stopped and which is has a higher probability of being still in the cache. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 39 +++++++++++++++++++++++++++++---------- 1 file changed, 29 insertions(+), 10 deletions(-) commit 92d420ec028d24f18ce194149bd0a0a7c42029a3 Author: Joerg Roedel Date: Mon Dec 21 19:31:33 2015 +0100 iommu/amd: Relax locking in dma_ops path Remove the long holding times of the domain->lock and rely on the bitmap_lock instead. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 70 ++++++++--------------------------------------- 1 file changed, 11 insertions(+), 59 deletions(-) commit a73c1566655df0631de5070695e7a56cd3896fdc Author: Joerg Roedel Date: Mon Dec 21 19:25:56 2015 +0100 iommu/amd: Initialize new aperture range before making it visible Make sure the aperture range is fully initialized before it is visible to the address allocator. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) commit 7bfa5bd2708d096c79fc2c9f32de478ade7a013f Author: Joerg Roedel Date: Mon Dec 21 19:07:50 2015 +0100 iommu/amd: Build io page-tables with cmpxchg64 This allows to build up the page-tables without holding any locks. As a consequence it removes the need to pre-populate dma_ops page-tables. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) commit 266a3bd28f9842bac54f934df8dc9834799efbff Author: Joerg Roedel Date: Mon Dec 21 18:54:24 2015 +0100 iommu/amd: Allocate new aperture ranges in dma_ops_alloc_addresses It really belongs there and not in __map_single. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 29 ++++++++++------------------- 1 file changed, 10 insertions(+), 19 deletions(-) commit 4eeca8c5e72fad752eba9efc293c924d65faa86e Author: Joerg Roedel Date: Tue Dec 22 12:15:35 2015 +0100 iommu/amd: Optimize dma_ops_free_addresses Don't flush the iommu tlb when we free something behind the current next_bit pointer. Update the next_bit pointer instead and let the flush happen on the next wraparound in the allocation path. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit ab7032bb9c37f9d36ade2267a01a6edf8f2d41d7 Author: Joerg Roedel Date: Mon Dec 21 18:47:11 2015 +0100 iommu/amd: Remove need_flush from struct dma_ops_domain The flushing of iommu tlbs is now done on a per-range basis. So there is no need anymore for domain-wide flush tracking. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 30 ++++++------------------------ 1 file changed, 6 insertions(+), 24 deletions(-) commit 2a87442c5b9858cbfc43eb17da4331551d578d25 Author: Joerg Roedel Date: Mon Dec 21 18:34:47 2015 +0100 iommu/amd: Iterate over all aperture ranges in dma_ops_area_alloc This way we don't need to care about the next_index wrapping around in dma_ops_alloc_addresses. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) commit d41ab09896dcfc517a7aa050b5c8563b5682a71d Author: Joerg Roedel Date: Mon Dec 21 18:20:03 2015 +0100 iommu/amd: Flush iommu tlb in dma_ops_free_addresses Instead of setting need_flush, do the flush directly in dma_ops_free_addresses. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit ebaecb423bfa0f88487aa98238c89fd3df9734dc Author: Joerg Roedel Date: Mon Dec 21 18:11:32 2015 +0100 iommu/amd: Rename dma_ops_domain->next_address to next_index It points to the next aperture index to allocate from. We don't need the full address anymore because this is now tracked in struct aperture_range. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit 05ab49e0056a702b98345a548cc888be0ba9ddf8 Author: Joerg Roedel Date: Mon Dec 21 17:58:26 2015 +0100 iommu/amd: Remove 'start' parameter from dma_ops_area_alloc Parameter is not needed because the value is part of the already passed in struct dma_ops_domain. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit ccb50e03da72d943897e4629ec959c5ea0588ad8 Author: Joerg Roedel Date: Mon Dec 21 17:49:34 2015 +0100 iommu/amd: Flush iommu tlb in dma_ops_aperture_alloc() Since the allocator wraparound happens in this function now, flush the iommu tlb there too. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) commit 60e6a7cb44edf7f7daef6ca00e1c84f85bdf8084 Author: Joerg Roedel Date: Mon Dec 21 16:53:17 2015 +0100 iommu/amd: Retry address allocation within one aperture Instead of skipping to the next aperture, first try again in the current one. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) commit ae62d49c7a9303de868f4925d020719d00686411 Author: Joerg Roedel Date: Mon Dec 21 16:28:45 2015 +0100 iommu/amd: Move aperture_range.offset to another cache-line Moving it before the pte_pages array puts in into the same cache-line as the spin-lock and the bitmap array pointer. This should safe a cache-miss. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit a0f51447f4accd8f0f9420d8e617dd4e371504d7 Author: Joerg Roedel Date: Mon Dec 21 16:20:09 2015 +0100 iommu/amd: Add dma_ops_aperture_alloc() function Make this a wrapper around iommu_ops_area_alloc() for now and add more logic to this function later on. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 37 +++++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 12 deletions(-) commit b57c3c802e51e83620b739759c8bba829e231b57 Author: Joerg Roedel Date: Mon Dec 21 15:40:38 2015 +0100 iommu/amd: Pass correct shift to iommu_area_alloc() The page-offset of the aperture must be passed instead of 0. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 84b3a0bc88534d9e49d1642957f64db61a3aa5c4 Author: Joerg Roedel Date: Mon Dec 21 13:23:59 2015 +0100 iommu/amd: Flush the IOMMU TLB before the addresses are freed This allows to keep the bitmap_lock only for a very short period of time. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 53b3b65aa5befe9e96e8f8708a76208190a07e14 Author: Joerg Roedel Date: Mon Dec 21 13:14:52 2015 +0100 iommu/amd: Flush IOMMU TLB on __map_single error path There have been present PTEs which in theory could have made it to the IOMMU TLB. Flush the addresses out on the error path to make sure no stale entries remain. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 2 ++ 1 file changed, 2 insertions(+) commit 08c5fb938e05314b48fc12e697003e91d43c3c9d Author: Joerg Roedel Date: Mon Dec 21 13:04:49 2015 +0100 iommu/amd: Introduce bitmap_lock in struct aperture_range This lock only protects the address allocation bitmap in one aperture. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 007b74bab2739539bbc49bb9e3f022159dc2c279 Author: Joerg Roedel Date: Mon Dec 21 12:53:54 2015 +0100 iommu/amd: Move 'struct dma_ops_domain' definition to amd_iommu.c It is only used in this file anyway, so keep it there. Same with 'struct aperture_range'. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 40 ++++++++++++++++++++++++++++++++++++++++ drivers/iommu/amd_iommu_types.h | 40 ---------------------------------------- 2 files changed, 40 insertions(+), 40 deletions(-) commit a7fb668fd88c979e790f0c324a1a6d749a8c5a60 Author: Joerg Roedel Date: Mon Dec 21 12:50:54 2015 +0100 iommu/amd: Warn only once on unexpected pte value This prevents possible flooding of the kernel log. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit eed67d75b66748a498a0592d9704081a98509444 Author: Ross Zwisler Date: Wed Dec 23 14:53:27 2015 -0700 cgroup: Fix uninitialized variable warning Commit 1f7dd3e5a6e4 ("cgroup: fix handling of multi-destination migration from subtree_control enabling") introduced the following compiler warning: mm/memcontrol.c: In function ‘mem_cgroup_can_attach’: mm/memcontrol.c:4790:9: warning: ‘memcg’ may be used uninitialized in this function [-Wmaybe-uninitialized] mc.to = memcg; ^ Fix this by initializing 'memcg' to NULL. This was found using gcc (GCC) 4.9.2 20150212 (Red Hat 4.9.2-6). Signed-off-by: Ross Zwisler Signed-off-by: Tejun Heo mm/memcontrol.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d1358917f2eb530bc6a097937302282a428806f8 Author: Stefan Hajnoczi Date: Wed Dec 2 14:17:52 2015 +0800 SUNRPC: drop unused xs_reclassify_socketX() helpers xs_reclassify_socket4() and friends used to be called directly. xs_reclassify_socket() is called instead nowadays. The xs_reclassify_socketX() helper functions are empty when CONFIG_DEBUG_LOCK_ALLOC is not defined. Drop them since they have no callers. Note that AF_LOCAL still calls xs_reclassify_socketu() directly but is easily converted to generic xs_reclassify_socket(). Signed-off-by: Stefan Hajnoczi Signed-off-by: Trond Myklebust net/sunrpc/xprtsock.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) commit 99ade3c71b1e40e7174d6527709399a87f3d05e0 Author: Andrew Elble Date: Wed Dec 2 09:39:51 2015 -0500 nfs: machine credential support for additional operations Allow LAYOUTRETURN and DELEGRETURN to use machine credentials if the server supports it. Add request for OPEN_DOWNGRADE as the close path also uses that. Signed-off-by: Andrew Elble Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 20 ++++++++++++++++++++ include/linux/nfs_fs_sb.h | 1 + 2 files changed, 21 insertions(+) commit ed476752493bc997f1690516fdc0609ddcbaca82 Author: Wei Tang Date: Fri Dec 4 16:06:57 2015 +0800 nfs: do not initialise statics to 0 This patch fixes the checkpatch.pl error to nfs4sysctl.c: ERROR: do not initialise statics to 0 Signed-off-by: Wei Tang Signed-off-by: Trond Myklebust fs/nfs/nfs4sysctl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f4848303ce125999886535323a64db26dba68293 Author: Trond Myklebust Date: Sat Dec 26 18:03:07 2015 -0500 pNFS: Modify pnfs_update_layout tracepoints to use layout stateid Instead of displaying a layout segment pointer in these tracepoints, let's use the layout stateid, now that Olga gave us a set of tools for displaying them. Signed-off-by: Trond Myklebust fs/nfs/nfs4trace.c | 1 + fs/nfs/nfs4trace.h | 23 +++++++++++++++++------ fs/nfs/pnfs.c | 20 ++++++++++---------- 3 files changed, 28 insertions(+), 16 deletions(-) commit f2dd436edb2b38b555f3ff7257308bb56fa4eea5 Author: Trond Myklebust Date: Thu Oct 8 11:33:17 2015 -0400 NFSv4: Fix unused variable warnings in nfs4_init_*_client_string() Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 9a4bf31d05a801e2358d96f69b39fb8ce2c69dd8 Author: Jeff Layton Date: Thu Dec 10 10:41:58 2015 -0500 nfs: add new tracepoint for pnfs_update_layout pnfs_update_layout is really the "nexus" of layout handling. If it returns NULL then we end up going through the MDS. This patch adds some tracepoints to that function that allow us to determine the cause when we end up going through the MDS unexpectedly. Signed-off-by: Jeff Layton Signed-off-by: Trond Myklebust fs/nfs/nfs4trace.h | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++ fs/nfs/pnfs.c | 38 +++++++++++++++++++++++++++++------ include/linux/nfs4.h | 14 +++++++++++++ 3 files changed, 102 insertions(+), 6 deletions(-) commit 9759b0fb1d202e6bc9bdab10612189abc9389df8 Author: Olga Kornievskaia Date: Tue Nov 24 13:29:42 2015 -0500 Adding tracepoint to cached open Signed-off-by: Olga Kornievskaia Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 2 ++ fs/nfs/nfs4trace.h | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) commit 48c9579a1afe4315be4576ec4c0b24c2715da0e0 Author: Olga Kornievskaia Date: Tue Nov 24 13:29:41 2015 -0500 Adding stateid information to tracepoints Operations to which stateid information is added: close, delegreturn, open, read, setattr, layoutget, layoutcommit, test_stateid, write, lock, locku, lockt Format is "stateid=:", also "openstateid=", "layoutstateid=", and "lockstateid=" for open_file, layoutget, set_lock tracepoints. New function is added to internal.h, nfs_stateid_hash(), to compute the hash trace_nfs4_setattr() is moved from nfs4_do_setattr() to _nfs4_do_setattr() to get access to stateid. trace_nfs4_setattr and trace_nfs4_delegreturn are changed from INODE_EVENT to new event type, INODE_STATEID_EVENT which is same as INODE_EVENT but adds stateid information for locking tracepoints, moved trace_nfs4_set_lock() into _nfs4_do_setlk() to get access to stateid information, and removed trace_nfs4_lock_reclaim(), trace_nfs4_lock_expired() as they call into _nfs4_do_setlk() and both were previously same LOCK_EVENT type. Signed-off-by: Olga Kornievskaia Signed-off-by: Trond Myklebust fs/nfs/internal.h | 9 ++ fs/nfs/nfs4proc.c | 13 ++- fs/nfs/nfs4trace.h | 255 +++++++++++++++++++++++++++++++++++++++++++++++------ 3 files changed, 245 insertions(+), 32 deletions(-) commit 95864c9154c1385c33e6782f4467c8f1422c1c90 Author: Trond Myklebust Date: Sat Dec 26 15:06:03 2015 -0500 NFS: Allow the combination pNFS and labeled NFS Fix the nfs4_pnfs_open_bitmap so that it also allows for labeled NFS. Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 3 +++ 1 file changed, 3 insertions(+) commit 68d264cf02b076a2457aa77c044f5e41b6fa8086 Author: Peng Tao Date: Sun Dec 6 20:55:09 2015 -0500 NFS42: handle layoutstats stateid error When server returns layoutstats stateid error, we should invalidate client's layout so that next IO can trigger new layoutget. Signed-off-by: Peng Tao Signed-off-by: Trond Myklebust fs/nfs/nfs42proc.c | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) commit 361cad3c89070aeb37560860ea8bfc092d545adc Author: Andrew Elble Date: Wed Dec 2 09:20:57 2015 -0500 nfs: Fix race in __update_open_stateid() We've seen this in a packet capture - I've intermixed what I think was going on. The fix here is to grab the so_lock sooner. 1964379 -> #1 open (for write) reply seqid=1 1964393 -> #2 open (for read) reply seqid=2 __nfs4_close(), state->n_wronly-- nfs4_state_set_mode_locked(), changes state->state = [R] state->flags is [RW] state->state is [R], state->n_wronly == 0, state->n_rdonly == 1 1964398 -> #3 open (for write) call -> because close is already running 1964399 -> downgrade (to read) call seqid=2 (close of #1) 1964402 -> #3 open (for write) reply seqid=3 __update_open_stateid() nfs_set_open_stateid_locked(), changes state->flags state->flags is [RW] state->state is [R], state->n_wronly == 0, state->n_rdonly == 1 new sequence number is exposed now via nfs4_stateid_copy() next step would be update_open_stateflags(), pending so_lock 1964403 -> downgrade reply seqid=2, fails with OLD_STATEID (close of #1) nfs4_close_prepare() gets so_lock and recalcs flags -> send close 1964405 -> downgrade (to read) call seqid=3 (close of #1 retry) __update_open_stateid() gets so_lock * update_open_stateflags() updates state->n_wronly. nfs4_state_set_mode_locked() updates state->state state->flags is [RW] state->state is [RW], state->n_wronly == 1, state->n_rdonly == 1 * should have suppressed the preceding nfs4_close_prepare() from sending open_downgrade 1964406 -> write call 1964408 -> downgrade (to read) reply seqid=4 (close of #1 retry) nfs_clear_open_stateid_locked() state->flags is [R] state->state is [RW], state->n_wronly == 1, state->n_rdonly == 1 1964409 -> write reply (fails, openmode) Signed-off-by: Andrew Elble Cc: stable@vger,kernel.org Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 52618df95d0820be7add339068d3c42799393c09 Author: Andrew Elble Date: Wed Dec 2 09:19:43 2015 -0500 nfs: fix missing assignment in nfs4_sequence_done tracepoint status_flags not set Signed-off-by: Andrew Elble Signed-off-by: Trond Myklebust fs/nfs/nfs4trace.h | 1 + 1 file changed, 1 insertion(+) commit c3c2384c3ac073cdc2d8e3bbc89b55cdcf507b8f Author: Lucas Stach Date: Tue Dec 22 19:41:02 2015 +0100 mmc: tegra: implement UHS tuning This implements the UHS tuning sequence in a similar way to the one contained in the TRM. It deviates in the way how to check if the tap value is passing, by using the common Linux MMC function, which does not only check for data CRC errors, but also if the received block pattern is correct. Signed-off-by: Lucas Stach Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-tegra.c | 55 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) commit 74cd42bcad7486664d13b1b42bc81a399d7ed763 Author: Lucas Stach Date: Tue Dec 22 19:41:01 2015 +0100 mmc: tegra: disable SPI_MODE_CLKEN The Tegra30 and up TRM states that this bit should always be programmed to 0 by driver software. Signed-off-by: Lucas Stach Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-tegra.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit a8e326a911d3ca1b7480aca936956a4e89c4add5 Author: Lucas Stach Date: Tue Dec 22 19:41:00 2015 +0100 mmc: tegra: implement module external clock change Allow the the driver to change the clock supplied from the CAR directly, minimizing the need to divide the clock inside the SDMMC module itself. This allows for higher clock speeds than the default 48MHz supplied to the module and is a prerequisite to support DDR signaling modes, where the Tegra host needs to be run with a fixed internal divider of 2 for data to be sampled correctly. (Tegra K1 TRM v03p chapter 29.7.1.1) Also enable the broken preset value quirk as the preset values need to be adapted to the changed clocking. While Tegra114+ allows this through vendor registers, there is no such way for Tegra30. Takes the easy way out and keep things consistent between the different SoC generations by flagging the preset registers as unusable. Signed-off-by: Lucas Stach Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-tegra.c | 61 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 54 insertions(+), 7 deletions(-) commit 2cf83833fc9cff04c50e402260b724b3f001d737 Author: Geliang Tang Date: Sun Dec 27 17:25:24 2015 +0800 HID: use kobj_to_dev() Use kobj_to_dev() instead of open-coding it. Signed-off-by: Geliang Tang Signed-off-by: Jiri Kosina drivers/hid/hid-core.c | 2 +- drivers/hid/hid-roccat-arvo.c | 6 ++---- drivers/hid/hid-roccat-common.c | 6 ++---- drivers/hid/hid-roccat-isku.c | 6 ++---- drivers/hid/hid-roccat-kone.c | 12 ++++-------- drivers/hid/hid-roccat-koneplus.c | 12 ++++-------- drivers/hid/hid-roccat-kovaplus.c | 12 ++++-------- drivers/hid/hid-roccat-lua.c | 4 ++-- drivers/hid/hid-roccat-pyra.c | 15 +++++---------- drivers/hid/wacom_sys.c | 4 ++-- 10 files changed, 28 insertions(+), 51 deletions(-) commit d98ba98c4fbff91abb37eef628ccce0c218b4185 Author: Geliang Tang Date: Sun Dec 27 17:25:23 2015 +0800 HID: wiimote: use dev_to_wii() Use dev_to_wii() instead of open-coding it. Signed-off-by: Geliang Tang Signed-off-by: Jiri Kosina drivers/hid/hid-wiimote-modules.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit ba91a96718d17160890e161f702db6e60747248a Author: Geliang Tang Date: Sun Dec 27 17:25:22 2015 +0800 HID: add a new helper to_hid_driver() Add a new helper to_hid_driver() and use it in hid-core.c. Signed-off-by: Geliang Tang Signed-off-by: Jiri Kosina drivers/hid/hid-core.c | 7 +++---- include/linux/hid.h | 3 +++ 2 files changed, 6 insertions(+), 4 deletions(-) commit ee79a8f840a45d331bc33e55cbcc89bba417671c Author: Geliang Tang Date: Sun Dec 27 17:25:21 2015 +0800 HID: use to_hid_device() Use to_hid_device() instead of container_of(). Signed-off-by: Geliang Tang Signed-off-by: Jiri Kosina drivers/hid/hid-core.c | 14 +++++++------- drivers/hid/hid-cp2112.c | 8 ++++---- drivers/hid/hid-gt683r.c | 8 +++----- drivers/hid/hid-lenovo.c | 36 ++++++++++++++++++------------------ drivers/hid/hid-lg4ff.c | 4 ++-- drivers/hid/hid-multitouch.c | 4 ++-- drivers/hid/hid-ntrig.c | 32 ++++++++++++++++---------------- drivers/hid/hid-picolcd_leds.c | 4 ++-- drivers/hid/hid-prodikeys.c | 12 ++++++------ drivers/hid/hid-sony.c | 6 +++--- drivers/hid/hid-steelseries.c | 8 ++++---- drivers/hid/hid-wiimote.h | 3 +-- drivers/hid/wacom_sys.c | 16 ++++++++-------- 13 files changed, 76 insertions(+), 79 deletions(-) commit d8ce9bf5551bfea431893bdd0a943f24a5170828 Author: Geliang Tang Date: Sun Dec 27 17:25:20 2015 +0800 HID: move to_hid_device() to hid.h to_hid_device() macro is defined in both hid-lg4ff.c and hid-logitech-hidpp.c. So I move it to include/linux/hid.h. Signed-off-by: Geliang Tang Signed-off-by: Jiri Kosina drivers/hid/hid-lg4ff.c | 2 -- drivers/hid/hid-logitech-hidpp.c | 2 -- include/linux/hid.h | 3 +++ 3 files changed, 3 insertions(+), 4 deletions(-) commit 7775fb929d959eade7c705e27a0a759997463da8 Author: Geliang Tang Date: Wed Dec 23 21:26:53 2015 +0800 HID: usbhid: use to_usb_device Use to_usb_device() instead of open-coding it. Signed-off-by: Geliang Tang Signed-off-by: Jiri Kosina drivers/hid/usbhid/usbhid.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e3fed74894c725fb85d7315aa0c01df9b59b7a9d Author: Axel Lin Date: Wed Dec 16 16:56:39 2015 +0800 HID: corsair: Convert to use module_hid_driver Signed-off-by: Axel Lin Acked-by: Clément Vuchener Signed-off-by: Jiri Kosina drivers/hid/hid-corsair.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) commit 918f4cbd4340ddd1eb389cd8efa3b07ac74ec4c0 Author: Jisheng Zhang Date: Fri Dec 11 21:36:29 2015 +0800 mmc: sdhci: restore behavior when setting VDD via external regulator After commit 52221610dd84 ("mmc: sdhci: Improve external VDD regulator support"), for the VDD is supplied via external regulators, we ignore the code to convert a VDD voltage request into one of the standard SDHCI voltage levels, then program it in the SDHCI_POWER_CONTROL. This brings two issues: 1. SDHCI_QUIRK2_CARD_ON_NEEDS_BUS_ON quirk isn't handled properly any more. 2. What's more, once SDHCI_POWER_ON bit is set, some controllers such as the sdhci-pxav3 used in marvell berlin SoCs require the voltage levels programming in the SDHCI_POWER_CONTROL register, even the VDD is supplied by external regulator. So the host in marvell berlin SoCs still works fine after the commit. However, commit 3cbc6123a93d ("mmc: sdhci: Set SDHCI_POWER_ON with external vmmc") sets the SDHCI_POWER_ON bit, this would make the host in marvell berlin SoCs won't work any more with external vmmc. This patch restores the behavior when setting VDD through external regulator by moving the call of mmc_regulator_set_ocr() to the end of sdhci_set_power() function. After this patch, the sdcard on Marvell Berlin SoC boards work again. Signed-off-by: Jisheng Zhang Fixes: 52221610dd84 ("mmc: sdhci: Improve external VDD ...") Reviewed-by: Ludovic Desroches Tested-by: Ludovic Desroches Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci.c | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) commit 520322d92eab66b6fee562557fdd201b01cd6240 Author: Adrian Hunter Date: Mon Dec 14 15:51:27 2015 +0200 mmc: It is not an error for the card to be removed while suspended A card can be removed while it is runtime suspended. Do not print an error message. Signed-off-by: Adrian Hunter Signed-off-by: Ulf Hansson drivers/mmc/core/mmc.c | 2 +- drivers/mmc/core/sd.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 382c55f88ffeb218c446bf0c46d0fc25d2795fe2 Author: Colin Cross Date: Thu Oct 22 10:00:41 2015 -0700 mmc: block: Allow more than 8 partitions per card It is quite common for Android devices to utilize more then 8 partitions on internal eMMC storage. The vanilla kernel can support this via CONFIG_MMC_BLOCK_MINORS, however that solution caps the system to 256 minors total, which limits the number of mmc cards the system can support. This patch, which has been carried for quite awhile in the AOSP common tree, provides an alternative solution that doesn't seem to limit the total card count. So I wanted to submit it for consideration upstream. This patch sets the GENHD_FL_EXT_DEVT flag, which will allocate minor number in major 259 for partitions past disk->minors. It also removes the use of disk_devt to determine devidx from md->disk. md->disk->first_minor is always initialized from devidx and can always be used to recover it. Cc: Ulf Hansson Cc: Adrian Hunter Cc: Ben Hutchings Cc: Chuanxiao Dong Cc: Shawn Lin Cc: Austin S Hemmelgarn Cc: Arnd Bergmann Cc: Android Kernel Team Cc: linux-mmc@vger.kernel.org Signed-off-by: Colin Cross [jstultz: Added context to commit message] Signed-off-by: John Stultz Signed-off-by: Ulf Hansson drivers/mmc/card/block.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 520bd7a8b4152aacfbd34eb7f7a447354b631039 Author: Ulf Hansson Date: Tue Dec 1 10:35:29 2015 +0100 mmc: core: Optimize boot time by detecting cards simultaneously The mmc workqueue is an ordered workqueue, allowing only one work to execute per given time. As this workqueue is used for card detection, the conseqeunce is that cards will be detected one by one waiting for each other. Moreover, most of the time spent during card initialization is waiting for the card's internal firmware to be ready. From a CPU perspective this typically means waiting for a completion variable to be kicked via an IRQ-handler or waiting for a sleep timer to finish. This behaviour of detecting/initializing cards is sub-optimal, especially for SOCs having several controllers/cards. Let's convert to use the system_freezable_wq for the mmc detect works. This enables several works to be executed simultaneously and thus also cards to be detected like so. Tests on UX500, which holds two eMMC cards and an SD-card (actually also an SDIO card, currently not detected), shows a significant improved behaviour due to this change. Before this change, both the eMMC cards waited for the SD card to be initialized as its detect work entered the workqueue first. In some cases, depending on the characteristic of the SD-card, they got delayed 1-1.5 s. Additionally for the second eMMC, it needed to wait for the first eMMC to be initialized which added another 120-190 ms. Converting to the system_freezable_wq, removed these delays and made both the eMMC cards available far earlier in the boot sequence. Selecting the system_freezable_wq, in favour of for example the system_wq, is because we need card detection mechanism to be disabled once userspace are frozen during system PM. Currently the mmc core deal with this via PM notifiers, but following patches may utilize the behaviour of the system_freezable_wq, to simplify the use of the PM notifiers. Signed-off-by: Ulf Hansson Tested-by: Alan Cooper Tested-by: Shawn Lin drivers/mmc/core/core.c | 31 ++++++++----------------------- 1 file changed, 8 insertions(+), 23 deletions(-) commit 26a4d063b1357e3ad81b776eb89d4d82f101da2c Merge: f456882 fbc9a52 Author: David S. Miller Date: Mon Dec 28 00:57:29 2015 -0500 Merge branch 'bnxt_en-next' Michael Chan says: ==================== bnxt_en: Patches for net-next. Mainly clean-ups, optimizations, and updating to the latest firmware interface spec. ==================== Signed-off-by: David S. Miller commit fbc9a5237a767cada312cb07877d0992b1e34242 Author: David Christensen Date: Sun Dec 27 18:19:29 2015 -0500 bnxt_en: Add BCM57301 & BCM57402 devices. Added the PCI IDs for the BCM57301 and BCM57402 controllers. Signed-off-by: David Christensen Signed-off-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit c193554ecd050e63753aa0ec99c188800843bca2 Author: Michael Chan Date: Sun Dec 27 18:19:28 2015 -0500 bnxt_en: Update to Firmware interface spec 1.0.0. This interface will be forward compatible with future changes. Signed-off-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt.c | 33 +- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 8 +- drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h | 865 +++++++++--------------- drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c | 15 +- 4 files changed, 349 insertions(+), 572 deletions(-) commit b72d4a68c443e29cb59e15a1a9b2c2f4bf802831 Author: Michael Chan Date: Sun Dec 27 18:19:27 2015 -0500 bnxt_en: Keep track of the ring group resource. Newer firmware will return the ring group resource when we call hwrm_func_qcaps(). To be compatible with older firmware, use the number of tx rings as the number of ring groups if the older firmware returns 0. When determining how many rx rings we can support, take the ring group resource in account as well in _bnxt_get_max_rings(). Divide and assign the ring groups to VFs. Signed-off-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt.c | 11 ++++++++++- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 2 ++ drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c | 7 ++++++- 3 files changed, 18 insertions(+), 2 deletions(-) commit 4a21b49b34c01137a67bf0fe185c5d0fff747e4d Author: Michael Chan Date: Sun Dec 27 18:19:26 2015 -0500 bnxt_en: Improve VF resource accounting. We need to keep track of all resources, such as rx rings, tx rings, cmpl rings, rss contexts, stats contexts, vnics, after we have divided them for the VFs. Otherwise, subsequent ring changes on the PF may not work correctly. We adjust all max resources in struct bnxt_pf_info after they have been assigned to the VFs. There is no need to keep the separate max_pf_tx_rings and max_pf_rx_rings. When SR-IOV is disabled, we call bnxt_hwrm_func_qcaps() to restore the max resources for the PF. Signed-off-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt.c | 8 +++----- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 3 +-- drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c | 15 ++++++++------- 3 files changed, 12 insertions(+), 14 deletions(-) commit 92268c328a8dae4635b3deaca52a8ed329642219 Author: Michael Chan Date: Sun Dec 27 18:19:25 2015 -0500 bnxt_en: Cleanup bnxt_hwrm_func_cfg(). 1. Use local variable pf for repeated access to this pointer. 2. The 2nd argument num_vfs was unnecessarily declared as pointer to int. This function doesn't change num_vfs so change the argument to int. Signed-off-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c | 33 ++++++++++++------------- 1 file changed, 16 insertions(+), 17 deletions(-) commit 2bcfa6f6e7cf867e4aa623f84caea4bc413d38c9 Author: Michael Chan Date: Sun Dec 27 18:19:24 2015 -0500 bnxt_en: Check hardware resources before enabling NTUPLE. The hardware resources required to enable NTUPLE varies depending on how many rx channels are configured. We need to make sure we have the resources before we enable NTUPLE. Add bnxt_rfs_capable() to do the checking. In addition, we need to do the same checking in ndo_fix_features(). As the rx channels are changed using ethtool -L, we call netdev_update_features() to make the necessary adjustment for NTUPLE. Calling netdev_update_features() in netif_running() state but before calling bnxt_open_nic() would be a problem. To make this work, bnxt_set_features() has to be modified to test for BNXT_STATE_OPEN for the true hardware state instead of checking netif_running(). Signed-off-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt.c | 41 ++++++++++++++++++----- drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 2 ++ 2 files changed, 35 insertions(+), 8 deletions(-) commit 27e241896f2e21c96200df711659117923dec8a2 Author: Michael Chan Date: Sun Dec 27 18:19:23 2015 -0500 bnxt_en: Don't treat single segment rx frames as GRO frames. If hardware completes single segment rx frames, don't bother setting up all the GRO related fields. Pass the SKB up as a normal frame. Reviewed-by: vasundhara volam Signed-off-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 45019a180358c3cf290c3f3dc953c44f978d5527 Author: Michael Chan Date: Sun Dec 27 18:19:22 2015 -0500 bnxt_en: Allocate rx_cpu_rmap only if Accelerated RFS is enabled. Also, no need to check for bp->rx_nr_rings as it is always >= 1. If the allocation fails, it is not a fatal error and we can still proceed. Signed-off-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 665e350ddbfde88c5c18142dfd7b8c64556bc964 Author: Satish Baddipadige Date: Sun Dec 27 18:19:21 2015 -0500 bnxt_en: Increment checksum error counter only if NETIF_F_RXCSUM is set. rx_l4_csum_error is now incremented only when offload is enabled Signed-off-by: Satish Baddipadige Signed-off-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 2731d70fa9cbb62e45743171bf979784fb36778c Author: Rob Swindell Date: Sun Dec 27 18:19:20 2015 -0500 bnxt_en: Add support for upgrading APE/NC-SI firmware via Ethtool FLASHDEV NC-SI firmware of type apeFW (10) is now supported. Signed-off-by: Rob Swindell Signed-off-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 3 +++ 1 file changed, 3 insertions(+) commit edd0c2cc2b73ff21f356d6cbd3b5bf83e692ea9d Author: Michael Chan Date: Sun Dec 27 18:19:19 2015 -0500 bnxt_en: Optimize ring alloc and ring free functions. Remove the unnecessary "if" statement before the "for" statement: if (x) { for (i = 0; i < x; i++) ... } Also, change the ring free function to return void as it only returns 0. Signed-off-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt.c | 201 +++++++++++++----------------- 1 file changed, 87 insertions(+), 114 deletions(-) commit be58a0da1672391b246880450e990fe36d7ba24d Author: Jeffrey Huang Date: Sun Dec 27 18:19:18 2015 -0500 bnxt_en: support hwrm_func_drv_unrgtr command During remove_one, the driver should issue hwrm_func_drv_unrgtr command to inform firmware that this function has been unloaded. This is to let firmware keep track of driver present/absent state when driver is gracefully unloaded. A keep alive timer is needed later to keep track of driver state during abnormal shutdown. Signed-off-by: Jeffrey Huang Signed-off-by: Michael Chan Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnxt/bnxt.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit f45688280e19b61b5c15a17ebd8c3d9b60fa1252 Author: Julia Lawall Date: Sun Dec 27 22:01:29 2015 +0100 qlcnic: constify qlcnic_dcb_ops structures The qlcnic_dcb_ops structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: David S. Miller drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.c | 4 ++-- drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit ae498411651a42a56fc85fa0f1ab1eccd56db87a Merge: 032c5e8 5849333 Author: David S. Miller Date: Mon Dec 28 00:19:38 2015 -0500 Merge branch 'r8169-RTL8168H-PHY-fixes' Chunhao Lin says: ==================== r8169: Update RTL8168H PHY parameters Fix typo in setting PHY parameter and update the way of reading PHY register "rg_saw_cnt". ==================== Signed-off-by: David S. Miller commit 584933334b7a81f09637f28cbee759a1e24428db Author: Chun-Hao Lin Date: Thu Dec 24 21:15:27 2015 +0800 r8169:Update the way of reading RTL8168H PHY register "rg_saw_cnt" The vlaue of RTL8168H PHY register "rg_saw_cnt" only valid from bit0 to bit13. When read this register, add bitwise-anding its value with 0x3fff. Signed-off-by: Chunhao Lin Signed-off-by: David S. Miller drivers/net/ethernet/realtek/r8169.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e2e2788e4e96af1383a411335c5686a4b8c82496 Author: Chun-Hao Lin Date: Thu Dec 24 21:15:26 2015 +0800 r8169:Fix typo in setting RTL8168H PHY parameter In function "rtl8168h_2_hw_phy_config", there is a typo in setting RTL8168H PHY parameter. Signed-off-by: Chunhao Lin Signed-off-by: David S. Miller drivers/net/ethernet/realtek/r8169.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 032c5e82847a2214c3196a90f0aeba0ce252de58 Author: Thomas Falcon Date: Mon Dec 21 11:26:06 2015 -0600 Driver for IBM System i/p VNIC protocol This is a new device driver for a high performance SR-IOV assisted virtual network for IBM System p and IBM System i systems. The SR-IOV VF will be attached to the VIOS partition and mapped to the Linux client via the hypervisor's VNIC protocol that this driver implements. This driver is able to perform basic tx and rx, new features and improvements will be added as they are being developed and tested. Signed-off-by: Thomas Falcon Signed-off-by: John Allen Signed-off-by: David S. Miller MAINTAINERS | 7 + arch/powerpc/include/asm/hvcall.h | 20 + drivers/net/ethernet/ibm/Kconfig | 10 + drivers/net/ethernet/ibm/Makefile | 1 + drivers/net/ethernet/ibm/ibmvnic.c | 3585 ++++++++++++++++++++++++++++++++++++ drivers/net/ethernet/ibm/ibmvnic.h | 1046 +++++++++++ 6 files changed, 4669 insertions(+) commit 7b752fd3d03ff860aabb5ec89beca8880d942d0f Merge: 039f506 3933961 Author: David S. Miller Date: Sun Dec 27 20:51:40 2015 -0500 Merge branch 'fsl-fmain' Igal Liberman says: ==================== Freescale DPAA FMan The Freescale Data Path Acceleration Architecture (DPAA) is a set of hardware components on specific QorIQ multicore processors. This architecture provides the infrastructure to support simplified sharing of networking interfaces and accelerators by multiple CPU cores and the accelerators. One of the DPAA accelerators is the Frame Manager (FMan) which contains a series of hardware blocks: ports, Ethernet MACs, a multi user RAM (MURAM) and Storage Profile (SP). This patch set introduce the FMan drivers. Each driver configures and initializes the corresponding FMan hardware module (described above). The MAC driver offers support for three different types of MACs (eTSEC, TGEC, MEMAC). v9 --> v10: - Addressed feedback from David Miller Remove private CRC implementation - Addressed feedback from Kenneth Klette Jonassen: - Use Kernel PHY API to configure dTSEC TBI - Use Kernel PHY API to configure mEMAC PCS This patchset requires device tree update: https://patchwork.ozlabs.org/patch/559501/ - Addressed feedback from Andy Fleming v8 --> v9: No changes v7 --> v8: - Addressed feedback from David Miller - Support for ARM: - Device tree parsing - IO Accessors - Addressed compilation issue on non-PPC targets v6 --> v7: - Addressed compilation issue on non-PPC targets - Removed B4860 rev 1 support v5 --> v6: - Addressed feedback from Scott: - Moved kernel doc to source files - Removed a series of configurable settings - Miscellaneous code updates v4 --> v5: - Addressed feedback from David Miller: - Removed driver layering - Reduce namespace pollution - Reduce code complexity and size v3 --> v4: - Remove device_initcall call in driver registration (redundant) - Remove hot/cold labels - Minor update in FMan Clock read from device-tree - Update fixed-link support - Addressed feedback from Stephen Hemminger - Remove bogus blank line v2 --> v3: - Addressed feedback from Scott: - Remove typedefs - Remove unnecessary memory barriers - Remove unnecessary casting - Remove KConfig options - Remove early_params - Remove Hungarian notation - Remove __packed__ attribute and padding from structures - Remove unlikely attribute (where it's not needed) - Use proper error codes and remove unnecessary prints - Use proper values for sleep routines - Replace complex Macros with functions - Improve device tree processing code - Use symbolic defines - Add time-out in busy-wait loops - Removed exit code (loadable module support will be added later) - Fixed "fixed-link" issue raised by Joakim Tjernlund v1 --> v2: - Addressed feedback from Paul Bolle: - General feedback of FMan Driver layer - Remove Errata defines - Aligned comments to Kernel Doc - Remove Loadable Module support (not yet supported) - Removed not needed KConfig dependencies - Addressed feedback from Scott Wood - Use Kernel ioread/iowrite services - Squash FLIB source and header patches together This submission is based on the prior Freescale DPAA FMan V3,RFC submission. Several issues addresses in this submission: - Reduced MAC layering and complexity - Reduced code base - T1024/T2080 10G best effort support ==================== Signed-off-by: David S. Miller commit 3933961682a30ae7d405cda344c040a129fea422 Author: Igal Liberman Date: Mon Dec 21 02:21:30 2015 +0200 fsl/fman: Add FMan MAC driver This patch adds the Ethernet MAC driver supporting the three different types of MACs: dTSEC, tGEC and mEMAC. Signed-off-by: Igal Liberman Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fman/Makefile | 3 +- drivers/net/ethernet/freescale/fman/mac.c | 978 +++++++++++++++++++++++++++ drivers/net/ethernet/freescale/fman/mac.h | 97 +++ 3 files changed, 1077 insertions(+), 1 deletion(-) commit 18a6c85fcc78ddb63b0646a302e5ec8d6a9e29d6 Author: Igal Liberman Date: Mon Dec 21 02:21:29 2015 +0200 fsl/fman: Add FMan Port Support Add the Data Path Acceleration Architecture Frame Manger Port Driver. The FMan driver uses a module called "Port" to represent the physical TX and RX ports. Each FMan version has different number of physical ports. This patch adds The FMan Port configuration, initialization and runtime control routines for both TX and RX. Signed-off-by: Igal Liberman Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fman/Makefile | 2 +- drivers/net/ethernet/freescale/fman/fman_port.c | 1778 +++++++++++++++++++++++ drivers/net/ethernet/freescale/fman/fman_port.h | 151 ++ 3 files changed, 1930 insertions(+), 1 deletion(-) commit e81edc38eea52a7d707f3cebd121da2c40afc7f8 Author: Igal Liberman Date: Mon Dec 21 02:21:28 2015 +0200 fsl/fman: Add FMan SP support The Storage Profiles contain parameters that are used by the FMan for frame reception and transmission. Signed-off-by: Igal Liberman Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fman/Makefile | 2 +- drivers/net/ethernet/freescale/fman/fman_sp.c | 166 ++++++++++++++++++++++++++ drivers/net/ethernet/freescale/fman/fman_sp.h | 103 ++++++++++++++++ 3 files changed, 270 insertions(+), 1 deletion(-) commit 57ba4c9b56d898a955f95cb4091aeab28e902cac Author: Igal Liberman Date: Mon Dec 21 02:21:27 2015 +0200 fsl/fman: Add FMan MAC support Add the Data Path Acceleration Architecture Frame Manger MAC support. This patch adds The FMan MAC configuration, initialization and runtime control routines. This patch contains support for these types of MACs: - dTSEC: Three speed Ethernet controller (10/100/1000 Mbps) - tGEC: 10G Ethernet controller (10 Gbps) - mEMAC: Multi-rate Ethernet MAC (10/100/1000/10000 Mbps) Different FMan revisions have different type and number of MACs. Signed-off-by: Igal Liberman Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fman/Makefile | 3 +- drivers/net/ethernet/freescale/fman/fman_dtsec.c | 1453 ++++++++++++++++++++++ drivers/net/ethernet/freescale/fman/fman_dtsec.h | 59 + drivers/net/ethernet/freescale/fman/fman_mac.h | 278 +++++ drivers/net/ethernet/freescale/fman/fman_memac.c | 1170 +++++++++++++++++ drivers/net/ethernet/freescale/fman/fman_memac.h | 60 + drivers/net/ethernet/freescale/fman/fman_tgec.c | 786 ++++++++++++ drivers/net/ethernet/freescale/fman/fman_tgec.h | 55 + 8 files changed, 3863 insertions(+), 1 deletion(-) commit 414fd46e77626f4e1f89ab4be6b876ef91e89dfa Author: Igal Liberman Date: Mon Dec 21 02:21:26 2015 +0200 fsl/fman: Add FMan support Add the Data Path Acceleration Architecture Frame Manger Driver. The FMan embeds a series of hardware blocks that implement a group of Ethernet interfaces. This patch adds The FMan configuration, initialization and runtime control routines. The FMan driver supports several hardware versions differentiated by things like: - Different type of MACs - Number of MAC and ports - Available resources - Different hardware errata Signed-off-by: Igal Liberman Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fman/Makefile | 2 +- drivers/net/ethernet/freescale/fman/fman.c | 2871 ++++++++++++++++++++++++++ drivers/net/ethernet/freescale/fman/fman.h | 325 +++ 3 files changed, 3197 insertions(+), 1 deletion(-) commit 5adae51a64b8b72430fe2682c9656661551f4641 Author: Igal Liberman Date: Mon Dec 21 02:21:25 2015 +0200 fsl/fman: Add FMan MURAM support Add Frame Manager Multi-User RAM support. This internal FMan memory block is used by the FMan hardware modules, the management being made through the generic allocator. The FMan Internal memory, for example, is used for allocating transmit and receive FIFOs. Signed-off-by: Igal Liberman Signed-off-by: David S. Miller drivers/net/ethernet/freescale/Kconfig | 1 + drivers/net/ethernet/freescale/Makefile | 2 + drivers/net/ethernet/freescale/fman/Kconfig | 8 ++ drivers/net/ethernet/freescale/fman/Makefile | 5 + drivers/net/ethernet/freescale/fman/fman_muram.c | 158 +++++++++++++++++++++++ drivers/net/ethernet/freescale/fman/fman_muram.h | 51 ++++++++ 6 files changed, 225 insertions(+) commit d4d3c6cbc289d78a9f5b54378beb338eb35d927e Author: Mark Yao Date: Thu Dec 17 10:48:19 2015 +0800 dt-bindings: add document for rk3036-vop Cc: Rob Herring Cc: Pawel Moll Cc: Mark Rutland Cc: Ian Campbell Cc: Kumar Gala Cc: devicetree@vger.kernel.org Signed-off-by: Mark Yao Acked-by: Rob Herring Documentation/devicetree/bindings/display/rockchip/rockchip-vop.txt | 1 + 1 file changed, 1 insertion(+) commit f7673453506035a904b6fb7a36dd6fb101366cd7 Author: Mark Yao Date: Tue Dec 15 09:57:13 2015 +0800 drm/rockchip: vop: add rk3036 vop support RK3036 registers layout is quite difference with rk3288 layout, The IC design with different framework, rk3036 vop is VOP LITE, and rk3288 is VOP FULL. RK3036 support two overlay plane and one hwc plane, max output resolution is 1080p. it support IOMMU, and its IOMMU same as rk3288's. Signed-off-by: Mark Yao drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 296 ++++++++++++++++++---------- drivers/gpu/drm/rockchip/rockchip_vop_reg.h | 243 +++++++++++++---------- 2 files changed, 336 insertions(+), 203 deletions(-) commit 1194fffbb102b1683bcbfc893df20bbf8a038468 Author: Mark Yao Date: Tue Dec 15 09:08:43 2015 +0800 drm/rockchip: vop: spilt scale regsters There are two version scale control register found on vop, scale full version found on rk3288, support extension registers. and scale little version found on rk3036, only support common scale. Signed-off-by: Mark Yao drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 46 +++++++++++++++++++---------- drivers/gpu/drm/rockchip/rockchip_drm_vop.h | 14 +++++++-- drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 5 +++- 3 files changed, 47 insertions(+), 18 deletions(-) commit a67719d182291bf62c6093545b9af27f0431cbeb Author: Mark Yao Date: Tue Dec 15 08:58:26 2015 +0800 drm/rockchip: vop: spilt register related into rockchip_reg_vop.c No functional updates. Spilt register related into another file would be nice to multi vop driver, Signed-off-by: Mark Yao drivers/gpu/drm/rockchip/Makefile | 3 +- drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 325 +--------------------------- drivers/gpu/drm/rockchip/rockchip_drm_vop.h | 220 ++++++++++--------- drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 225 +++++++++++++++++++ drivers/gpu/drm/rockchip/rockchip_vop_reg.h | 124 +++++++++++ 5 files changed, 468 insertions(+), 429 deletions(-) commit dbb3d94444eaa56cb1a6c9790f2fbe14b14310aa Author: Mark Yao Date: Tue Dec 15 08:36:55 2015 +0800 drm/rockchip: vop: move interrupt registers into vop_data Move interrupt registers into vop_data, so it can use at multi-vop driver Signed-off-by: Mark Yao drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 81 ++++++++++++++++++++++++----- 1 file changed, 69 insertions(+), 12 deletions(-) commit 0cf33fe33d4e9fdbbdd0b93101b078b03d0ba9b5 Author: Mark Yao Date: Mon Dec 14 18:14:36 2015 +0800 drm/rockchip: vop: merge vop cfg_done into vop_data Move cfg_done register into vop_data, so it can use at multi-vop driver Signed-off-by: Mark Yao drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit a8eef71d38da2bb03e187d3284aac6d3e0540f0f Author: Mark Yao Date: Mon Nov 30 18:41:06 2015 +0800 drm/rockchip: dw_hdmi: use encoder enable function encoder.enable is more compatible to atomic api than encoder.prepare/commit Signed-off-by: Mark Yao drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) commit 2c5b2cccdbde278fb702893404a2ea20f81f0345 Author: Mark Yao Date: Mon Nov 30 18:33:40 2015 +0800 drm: bridge/dw_hdmi: add atomic API support Fill atomic needed funcs with default atomic helper library. Rockchip use dw_hdmi, and drm/rockchip will covert to atomic api, we need dw_hdmi support atomic funcs. Now another drm driver use dw_hdmi is imx, not yet atomic, so check DRIVER_ATOMIC at runtime to spilt atomic and not atomic. Signed-off-by: Mark Yao drivers/gpu/drm/bridge/dw-hdmi.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) commit d23f8cadf99b553eaa78544c53e96f3aec456530 Author: Markus Elfring Date: Mon Dec 21 22:12:26 2015 +0100 blackfin-cpufreq: Mark cpu_set_cclk() as static The cpu_set_cclk() function was only used in a single source file so far. Indicate this setting also by the corresponding linkage specifier. Signed-off-by: Markus Elfring Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/blackfin-cpufreq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a5810b4f078f4a41ff47668d7e3351b903ab959f Author: Markus Elfring Date: Mon Dec 21 21:56:27 2015 +0100 blackfin-cpufreq: Change return type of cpu_set_cclk() to that of clk_set_rate() The return type "unsigned long" was used by the cpu_set_cclk() function while the type "int" is provided by the clk_set_rate() function. Let us make this usage consistent. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/blackfin-cpufreq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d0e20d0ebfe40a4eba52bef2e1e03e91fce88528 Author: Mark Yao Date: Wed Dec 16 18:11:24 2015 +0800 drm/rockchip: direct config connecter gate and out_mode Both connecter gate and out_mode are not conflict with mode set configure. Direct setting connecter gate and out_mode, that allow connector do rockchip_drm_crtc_mode_config after mode set. Signed-off-by: Mark Yao drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 39 +++++++++++++---------------- 1 file changed, 18 insertions(+), 21 deletions(-) commit f32fad51eec51ad816cecdc3723ab443cd69b61f Author: Mark Yao Date: Wed Dec 16 18:09:38 2015 +0800 drm/rockchip: support atomic asynchronous commit If drm core requests a async commit, rockchip_drm_atomic_commit will schedule a work task to update later. Signed-off-by: Mark Yao drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 3 ++ drivers/gpu/drm/rockchip/rockchip_drm_drv.h | 10 ++++++ drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 54 ++++++++++++++++++++++------- 3 files changed, 54 insertions(+), 13 deletions(-) commit ce3887ed0d996e6353d739e8139b8e5faeb726d5 Author: Mark Yao Date: Wed Dec 16 18:08:17 2015 +0800 drm/rockchip: Optimization vop mode set Rk3288 vop timing registers is immediately register, when configure timing on display active time, will cause tearing. use dclk reset is not a good idea to avoid this tearing. we can avoid tearing by using standby register. Vop standby register will take effect at end of current frame, and go back to work immediately when exit standby. So we can use standby register to protect this context. Signed-off-by: Mark Yao drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 51 ++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 16 deletions(-) commit 63ebb9fa7ff06d194362ed4a5d0a31ac7612a89c Author: Mark Yao Date: Mon Nov 30 18:22:42 2015 +0800 drm/rockchip: Convert to support atomic API Rockchip vop not support hw vblank counter, needed check the committed register if it's really take effect. Signed-off-by: Mark Yao drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 5 +- drivers/gpu/drm/rockchip/rockchip_drm_drv.h | 3 +- drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 95 ++++ drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 657 +++++++++++----------------- 4 files changed, 363 insertions(+), 397 deletions(-) commit 0ad3675d9c8f7c7306c954a9c50dc12385d8a508 Author: Mark Yao Date: Mon Nov 9 11:33:16 2015 +0800 drm/rockchip: vop: replace dpms with enable/disable For vop, power by enable/disable is more suitable then legacy dpms function, and enable/disable more closely to the new atomic API. Signed-off-by: Mark Yao drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 37 ++++------------------------- 1 file changed, 4 insertions(+), 33 deletions(-) commit b5f7b75503efa5499080e51eb5c085fe1de1970d Author: Mark Yao Date: Mon Nov 23 15:21:08 2015 +0800 drm/rockchip: Use new vblank api drm_crtc_vblank_* No functional update, drm_vblank_* is the legacy version of drm_crtc_vblank_*. and use new api make driver more clean. Signed-off-by: Mark Yao drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 13 +++++++------ drivers/gpu/drm/rockchip/rockchip_drm_drv.h | 7 +++---- drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 24 +++++++++++------------- 3 files changed, 21 insertions(+), 23 deletions(-) commit fd8d8e63467c922be9ae4452cca2980d473477d9 Author: Bartlomiej Zolnierkiewicz Date: Thu Dec 17 19:04:38 2015 +0100 PM / OPP: Fix parsing of opp-microvolt and opp-microamp properties Commit 01fb4d3c39d3 ("PM / OPP: Parse 'opp--' bindings") broke support for parsing standard opp-microvolt and opp-microamp properties. Fix it by setting 'name' string to proper value for !prop cases. Fixes: 01fb4d3c39d3 ("PM / OPP: Parse 'opp-- 'bindings") Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/base/power/opp/core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9ad55cd9e600de238e3937705e642f0253f3bc42 Merge: a7def56 4157c2f Author: Rafael J. Wysocki Date: Mon Dec 28 01:34:35 2015 +0100 Merge back earlier cpufreq material for v4.5. commit 59adb3988ebeec012343317ac783d6a7935e0c83 Author: Lv Zheng Date: Fri Dec 25 11:22:32 2015 +0800 ACPI / debugger: Fix a redundant mutex unlock issue in acpi_aml_open() Fix a double mutex_unlock() issue where acpi_initialize_debugger() is called with the mutex already unlocked. Reported-by: Dan Carpenter Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_dbg.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ec74765d9f592715292b8b33689a6af6db4cf5c5 Author: Dan Carpenter Date: Thu Dec 24 10:24:37 2015 +0300 ACPI / debugger: copy_to_user doesn't return errors The copy_to/from_user() functions don't return error codes, they return the number of bytes remaining. We had intended to return -EFUALT here. We actually have already checked access_ok() in an earlier function so I don't think these functions will fail but let's fix it anyway. Signed-off-by: Dan Carpenter Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_dbg.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 436db5ce0d0e892d2f7327dd7ffd573c5fb9e6cb Author: Dan Carpenter Date: Thu Dec 24 10:23:03 2015 +0300 ACPI / debugger: remove some unneeded conditions "count" is unsigned so checking for less than zero here causes a static checker warning. And really it's better to let the access_ok() check fail if the user passes in a NULL "buf" pointer because -EFAULT is the correct error code. Signed-off-by: Dan Carpenter Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_dbg.c | 4 ---- 1 file changed, 4 deletions(-) commit 73af2d590ab1b7bc7c3fc3e6933d5dcd379c9c2e Author: Lv Zheng Date: Thu Dec 24 14:16:26 2015 +0800 ACPI / debugger: Fix an issue a flag is modified without locking There is one line of code, executed out of locking due to rebase mistakes. This patch fixes this issue. Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_dbg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e28ecca6eac40646780b83edab81a496cea3d220 Author: Sudip Mukherjee Date: Sun Dec 27 19:06:50 2015 +0530 gpio: fix warning about iterator We were getting build warning about "iterator" being used uninitialized. Use iterator properly to fix the build warning and in the process remove the variable "pos" which is not required now. Signed-off-by: Sudip Mukherjee Signed-off-by: Linus Walleij drivers/gpio/gpiolib.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) commit 62e21f5d90f162208e43b8a248b01e1a4a24ecbd Author: Geliang Tang Date: Sun Dec 27 21:15:47 2015 +0800 watchdog: cadence_wdt: use to_platform_device() Use to_platform_device() instead of open-coding it. Signed-off-by: Geliang Tang Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/cadence_wdt.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 8605fec1ce2a397f738f1c394be7847dacf31b0c Author: Uwe Kleine-König Date: Tue Dec 15 11:37:41 2015 +0100 watchdog: omap: don't disable the timer when it should be enabled early With the early_enable module parameter the watchdog can be started during driver probe time. If this is requested the bets are good that the timer is already running, so to narrow the gap where the timer is disabled only call the disable function when the timer shouldn't be started. Signed-off-by: Uwe Kleine-König Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/omap_wdt.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a6392490fbb18f71d228d9c517516fa78fb23883 Author: Uwe Kleine-König Date: Tue Dec 15 11:37:40 2015 +0100 watchdog: omap: don't disable runtime pm before starting device omap_wdt_start calls pm_runtime_get_sync so dropping a reference just before calling omap_wdt_start doesn't make much sense. Moreover there is no point to use the synchronous variant of pm_runtime_put because the driver doesn't care if the clock is disabled before or after omap_wdt_probe returns. Signed-off-by: Uwe Kleine-König Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/omap_wdt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3024e0d13b0f34536f94bf0d7cc11443beeee9c5 Author: Jisheng Zhang Date: Tue Dec 15 22:25:27 2015 +0800 watchdog: dw_wdt: fix signedness bug in dw_wdt_top_in_seconds() On 64bit platforms, "(1 << (16 + top)) / clk_get_rate(dw_wdt.clk)" is sign-extended to 64bit then converted to unsigned 64bit, finally divide the clk rate. If the top is the maximum TOP i.e 15, "(1 << (16 +15))" will be sign-extended to 0xffffffff80000000, then converted to unsigned 0xffffffff80000000, which is a huge number, thus the final result is wrong. We fix this issue by giving usigned value(1U in this case) at first. Let's assume clk rate is 25MHZ, Before the patch: dw_wdt_top_in_seconds(15) = -864612050 After the patch: dw_wdt_top_in_seconds(15) = 85 Signed-off-by: Jisheng Zhang Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/dw_wdt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5889f06bd31d542766046faa6b17d957c08e1484 Author: Li RongQing Date: Thu Dec 17 21:30:02 2015 +0800 watchdog: refuse to unload softdog module when its timer is running the softdog has static variables which are accessed if its timer is still running after the driver is unloaded. and lead to crash: $modprobe softdog $echo 1 >/dev/watchdog $modprobe -r softdog CPU 20 Unable to handle kernel paging request at virtual address Oops[#1]: CPU: 20 PID: 0 Comm: swapper/20 Not tainted 4.1.13-WR8.0.0.0_standard ... Modules linked in: [last unloaded: softdog] .... Call Trace: [] cascade+0x34/0xb0 [] run_timer_softirq+0x30c/0x368 [] __do_softirq+0x1ec/0x418 [] irq_exit+0x90/0x98 [] plat_irq_dispatch+0xa4/0x140 [] ret_from_irq+0x0/0x4 [] __r4k_wait+0x20/0x40 [] cpu_startup_entry+0x2a0/0x368 [] start_secondary+0x444/0x4d8 add the module ref when timer is running to avoid to unload the softdog module Signed-off-by: Li RongQing Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/softdog.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 8d2fa17151ea33a98b5f70839fd2ffa3bce51de5 Author: Harald Geyer Date: Sat Dec 12 14:32:15 2015 +0000 watchdog: stmp3xxx: Stop the watchdog on system halt This allows the system to actually halt even if userspace forgot to disable the watchdog first. Old behaviour was that the watchdog forced the system to boot again. Signed-off-by: Harald Geyer Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/stmp3xxx_rtc_wdt.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit bdecfcdb5461834aab24002bb18d3cbdd907b7fb Author: Huang Rui Date: Mon Nov 23 18:07:35 2015 +0800 sp5100_tco: fix the device check for SB800 and later chipsets For SB800 and later chipsets, the register definitions are the same with SB800. And for SB700 and older chipsets, the definitions should be same with SP5100/SB7x0. Signed-off-by: Huang Rui Cc: Denis Turischev Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/sp5100_tco.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) commit cca118fa2a0a94e0f0b3c8dd1dda922cdee45089 Author: Huang Rui Date: Mon Nov 23 18:07:36 2015 +0800 sp5100_tco: Add AMD Carrizo platform support sp5100_tco watchdog is also supported on AMD KernCZ chipset of Carrizo platform. Signed-off-by: Huang Rui Cc: Denis Turischev Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/sp5100_tco.c | 2 ++ 1 file changed, 2 insertions(+) commit 190aa4304de6fe2185d96392ddf56580fa133e99 Author: Denis Turischev Date: Tue Nov 24 10:46:12 2015 +0200 sp5100_tco: Add AMD Mullins platform support AMD Mullins watchdog is fully compatible to the previous Hudson chipset, reuse the existent sp5100_tco driver. Signed-off-by: Denis Turischev Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/sp5100_tco.c | 2 ++ 1 file changed, 2 insertions(+) commit 33b711269ade3f6bc9d9d15e4343e6fa922d999b Author: Pratyush Anand Date: Thu Dec 17 17:53:59 2015 +0530 watchdog: Read device status through sysfs attributes This patch adds following attributes to watchdog device's sysfs interface to read its different status. * state - reads whether device is active or not * identity - reads Watchdog device's identity string. * timeout - reads current timeout. * timeleft - reads timeleft before watchdog generates a reset * bootstatus - reads status of the watchdog device at boot * status - reads watchdog device's internal status bits * nowayout - reads whether nowayout feature was set or not Testing with iTCO_wdt: # cd /sys/class/watchdog/watchdog1/ # ls bootstatus dev device identity nowayout power state subsystem timeleft timeout uevent # cat identity iTCO_wdt # cat timeout 30 # cat state inactive # echo > /dev/watchdog1 # cat timeleft 26 # cat state active # cat bootstatus 0 # cat nowayout 0 Signed-off-by: Pratyush Anand Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck Documentation/ABI/testing/sysfs-class-watchdog | 51 +++++++++++ drivers/watchdog/Kconfig | 7 ++ drivers/watchdog/watchdog_core.c | 2 +- drivers/watchdog/watchdog_dev.c | 114 +++++++++++++++++++++++++ 4 files changed, 173 insertions(+), 1 deletion(-) commit 906d7a5cfeda508e7361f021605579a00cd82815 Author: Pratyush Anand Date: Thu Dec 17 17:53:58 2015 +0530 watchdog: Use static struct class watchdog_class in stead of pointer We need few sysfs attributes to know different status of a watchdog device. To do that, we need to associate .dev_groups with watchdog_class. So convert it from pointer to static. Putting this static struct in watchdog_dev.c, so that static device attributes defined in that file can be attached to it. Signed-off-by: Pratyush Anand Suggested-by: Guenter Roeck Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/watchdog_core.c | 15 ++------------- drivers/watchdog/watchdog_core.h | 2 +- drivers/watchdog/watchdog_dev.c | 26 ++++++++++++++++++++++---- 3 files changed, 25 insertions(+), 18 deletions(-) commit dc3799bb9ab2666fa19081121f05a4e573ecae12 Author: Andrew Donnellan Date: Mon Dec 21 18:28:37 2015 +1100 powerpc/powernv: Fix minor off-by-one error in opal_mce_check_early_recovery() Fix off-by-one error in opal_mce_check_early_recovery() when checking whether the NIP falls within OPAL space. Signed-off-by: Andrew Donnellan Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/opal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 759fb100b22473bebc46a0f10ca1af5acd79439d Author: Andrew Donnellan Date: Mon Dec 21 17:38:41 2015 +1100 powerpc: Fix style of self-test config prompts A few of the config prompts for powerpc self-tests have periods at the end, which is inconsistent with the rest of the prompts. Remove the periods. Signed-off-by: Andrew Donnellan Signed-off-by: Michael Ellerman arch/powerpc/Kconfig.debug | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 57a9039052aadf5833c40ab494d30d3755660a48 Author: Michael Neuling Date: Fri Dec 18 21:46:04 2015 +1100 powerpc/powernv: Only delay opal_rtc_read() retry when necessary Only delay opal_rtc_read() when busy and are going to retry. This has the advantage of possibly saving a massive 10ms off booting! Kudos to Stewart for noticing. Signed-off-by: Michael Neuling Reviewed-by: Stewart Smith Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/opal-rtc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit affddff69c55eb68969448f35f59054a370bc7c1 Author: Russell Currey Date: Fri Nov 27 17:23:07 2015 +1100 powerpc/powernv: Add a kmsg_dumper that flushes console output on panic On BMC machines, console output is controlled by the OPAL firmware and is only flushed when its pollers are called. When the kernel is in a panic state, it no longer calls these pollers and thus console output does not completely flush, causing some output from the panic to be lost. Output is only actually lost when the kernel is configured to not power off or reboot after panic (i.e. CONFIG_PANIC_TIMEOUT is set to 0) since OPAL flushes the console buffer as part of its power down routines. Before this patch, however, only partial output would be printed during the timeout wait. This patch adds a new kmsg_dumper which gets called at panic time to ensure panic output is not lost. It accomplishes this by calling OPAL_CONSOLE_FLUSH in the OPAL API, and if that is not available, the pollers are called enough times to (hopefully) completely flush the buffer. The flushing mechanism will only affect output printed at and before the kmsg_dump call in kernel/panic.c:panic(). As such, the "end Kernel panic" message may still be truncated as follows: >Call Trace: >[c000000f1f603b00] [c0000000008e9458] dump_stack+0x90/0xbc (unreliable) >[c000000f1f603b30] [c0000000008e7e78] panic+0xf8/0x2c4 >[c000000f1f603bc0] [c000000000be4860] mount_block_root+0x288/0x33c >[c000000f1f603c80] [c000000000be4d14] prepare_namespace+0x1f4/0x254 >[c000000f1f603d00] [c000000000be43e8] kernel_init_freeable+0x318/0x350 >[c000000f1f603dc0] [c00000000000bd74] kernel_init+0x24/0x130 >[c000000f1f603e30] [c0000000000095b0] ret_from_kernel_thread+0x5c/0xac >---[ end Kernel panic - not This functionality is implemented as a kmsg_dumper as it seems to be the most sensible way to introduce platform-specific functionality to the panic function. Signed-off-by: Russell Currey Reviewed-by: Andrew Donnellan Signed-off-by: Michael Ellerman arch/powerpc/include/asm/opal-api.h | 3 +- arch/powerpc/include/asm/opal.h | 3 ++ arch/powerpc/platforms/powernv/Makefile | 1 + arch/powerpc/platforms/powernv/opal-kmsg.c | 68 ++++++++++++++++++++++++++ arch/powerpc/platforms/powernv/opal-wrappers.S | 1 + arch/powerpc/platforms/powernv/opal.c | 3 ++ 6 files changed, 78 insertions(+), 1 deletion(-) commit 2fc251a8dda56b71ec491bee4c6897e3e12c0739 Author: Michael Neuling Date: Fri Dec 11 09:34:42 2015 +1100 powerpc: Copy only required pieces of the mm_context_t to the paca Currently we copy the whole mm_context_t to the paca but only access a few bits of it. This is wasteful of space paca and also takes quite some time in the hot path of context switching. This patch pulls in only the required bits from the mm_context_t to the paca and on context switch, copies only those. Benchmarking this (On top of Anton's recent MSR context switching changes [1]) using processes and yield shows an improvement of almost 3% on POWER8: http://ozlabs.org/~anton/junkcode/context_switch2.c ./context_switch2 --test=yield --process 0 0 1. https://lists.ozlabs.org/pipermail/linuxppc-dev/2015-October/135700.html Signed-off-by: Michael Neuling [mpe: Rename paca fields to be mm_ctx_foo rather than context_foo] Signed-off-by: Michael Ellerman arch/powerpc/include/asm/paca.h | 18 ++++++++++++++++-- arch/powerpc/kernel/asm-offsets.c | 8 ++++---- arch/powerpc/mm/hash_utils_64.c | 4 ++-- 3 files changed, 22 insertions(+), 8 deletions(-) commit e16a48845deefc417738b22a801e94486abd1d6f Author: Aya Mahfouz Date: Tue Dec 15 01:27:27 2015 +0200 staging: gdm724x: constify tty_port_operations structs Constifies tty_port_operations structure in the tty code of the gdm724x driver since it is not modified after its initialization. Detected and found using Coccinelle. Suggested-by: Julia Lawall Signed-off-by: Aya Mahfouz Signed-off-by: Greg Kroah-Hartman drivers/staging/gdm724x/gdm_tty.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d1052aa5692d08aa4a058507ff5721317d2bef75 Author: Wim de With Date: Fri Dec 11 10:25:13 2015 +0100 staging: gdm72xx: add userspace data struct This fixes the sparse warnings about dereferencing a userspace pointer. Once I updated the sparse annotations, I noticed a bug in gdm_wimax_ioctl() where we pass a user space pointer to gdm_update_fsm() which dereferences it. I fixed this. Signed-off-by: Wim de With Signed-off-by: Greg Kroah-Hartman drivers/staging/gdm72xx/gdm_wimax.c | 12 ++++++++---- drivers/staging/gdm72xx/wm_ioctl.h | 7 ++++++- 2 files changed, 14 insertions(+), 5 deletions(-) commit 2bc29a1abc5c1b89576f8ae864cce9c07d18fd44 Author: Arnd Bergmann Date: Wed Nov 25 16:09:10 2015 +0100 staging: gdm72xx: Replace timeval with ktime_t struct sdu_stamp in the gdm_sdio.h is a timeval type. 'struct timeval now' is used for calculating elapsed time. 32-bit systems using 'struct timeval' will break in the year 2038, so we have to replace that code with more appropriate types. This patch changes the gdm72xx driver to use ktime_t. ktime_get() is better than using do_gettimeofday(), because it uses the monotonic clock. ktime_sub are used to subtract two ktime variables. Build tested this by saying Y to WIMAX_GDM72XX. Signed-off-by: Tapasweni Pathak Reviewed-by: Arnd Bergmann Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/gdm72xx/gdm_sdio.c | 13 ++++++------- drivers/staging/gdm72xx/gdm_sdio.h | 4 ++-- 2 files changed, 8 insertions(+), 9 deletions(-) commit f744c423cacf8f9666d0390e5068813afff756e5 Merge: 9f9499a d590faf Author: Greg Kroah-Hartman Date: Sat Dec 26 17:07:06 2015 -0800 Merge tag 'iio-fixes-for-4.4c' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-linus Jonathan writes: 3rd set of IIO fixes for the 4.4 cycle. Only a single fix this time and for a bug that's been in the kernel since around about the start of 2013 (so no rush!) * Out-of-bounds memory access in adis core (Analog Devices IMUs) commit 02c34ccc1d2d528d2de2897881b97933363432b5 Merge: 35ea984 e8aab48 Author: Greg Kroah-Hartman Date: Sat Dec 26 17:05:25 2015 -0800 Merge tag 'iio-for-4.5c' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-next Jonathan writes: Third set of new stuff for IIO in the 4.5 cycle. New driver features - us5182 * Add interrupt support and rising / falling threshold events. Cleanups / fixes to new stuff / minor additions * Expose the IIO value formatting function for drivers to make use of internally. - ina2xx * Fix wrong channel order * Fix incorrect reporting of endianness * Adding documentation of ABI unique to this device - mma8452 * Drop an unused register description * Use an enum for the channel index to aid readability - sca3000 * Use standard NULL comparison style - us5182 * fix an inconsistency in status of enable (a bug with no real effect until above patches are applied) * refactor the read_raw function to improve maintainability / readability. commit 35ea984daccc60e6b9dd90074bb2f4f6b57e6309 Merge: e59ac74 c34c181 Author: Greg Kroah-Hartman Date: Sat Dec 26 17:03:33 2015 -0800 Merge tag 'iio-for-4.5b' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-next Jonathan writes: Second set of IIO new drivers, functionality and cleanups for the 4.5 cycle. The big one here is the configfs support which has been a long time in the works but should allow for cleaner ways to do instantiation of those elements of IIO that aren't directly connected to specific hardware. Lots of cool new stuff we can use this for in the works! New core stuff (basically all configfs support related) * Configfs support - Core support (was waiting for a configfs patch that went in around 4.4rc2) - A little fixlet to add a configfs.h to contain a reference to the configfs_subsystem structure. * Some infrastructure to simplify handling of software based triggers (i.e. ones with no actual hardware associated with them) * A high resolution timer based trigger. This has been around for years but until the configfs support was ready we didn't have a sensible way of instantiating instances of it (the method used for the sysfs_trigger has never been really satisfactory) New Device Support * AMS iAQ Volatile Organic Compounds sensor support. * Freescale imx7d ADC driver * Maxim MAX30100 oximeter driver (note that for these devices most of the smart stuff will be in userspace - effectively they are just light sensors with some interesting led synchronization as far as the kernel is concerned). * Microchip mcp3421 support added to the mcp3422 driver. * TI adc124s021 support added to the adc128s052 driver. * TI ina219, inda226 power monitors. Note that there is an existing hwmon driver for these parts, the usecase is somewhat different so it is unclear at this point if the hwmon driver will eventually be replaced by a bridge from this driver. In the meantime the Kconfig dependencies should prevent both from being built. New driver functionality * us8152d power management support. Cleanups, fixups * Use list_for_each_entry_safe instead of list_for_each_safe with the entry bit coded longhand. * Select IRQ_WORK for IIO_DUMMY_EVGEN. This is a fix that somehow got lost when the driver was moved so lets do it again. * st-accel - drop an unused define. * vz89x, lidar - optimize i2c transactions by using a single i2c tranfers instead of multiple calls where supported (fall back to smbus calls as before if not). * Use dev_get_platdata() in staging drivers: tsl2x7x, adcs and frequency drivers instead of direct access to the structure element. commit daf273350d96241752b00020940c07dc2cff2e0a Merge: f7dbd84 9955a78 Author: Greg Kroah-Hartman Date: Sat Dec 26 17:01:18 2015 -0800 Merge tag 'phy-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/kishon/linux-phy into usb-next Kishon writes: phy: for 4.5 *) new PHY driver for hi6220 usb and rcar gen3 usb2 *) deprecate phy-omap-control driver. phy-omap-control driver was added when there was no proper infrastructure for doing control module initialization. The phy-omap-control driver is not an 'actual' PHY driver and it was just a hack to do PHY related control module initialization. Now with SYSCON framework in the kernel, control module setttings can be done using APIs provided by syscon. *) usbphy-internal pll creates the needed 480MHz and is also a supply-clock back to the core clock-controller in Rockchip SoCs. This is now modeled as a real clock. *) calibrate mt65xx usb3 PHY for better eye diagram and receiver sensitivity. *) Miscellaneous cleanups. Signed-off-by: Kishon Vijay Abraham I commit f7dbd84fd49e487df68b3a95780c275d7da1891c Merge: 87cf558 8c100e7 Author: Greg Kroah-Hartman Date: Sat Dec 26 16:59:14 2015 -0800 Merge tag 'usb-ci-v4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb into usb-testing Peter writes: The chipidea changes for v4.5-rc1 - Delete static debug for chipidea driver. - Suspend USB core when A device tries to switch to peripheral mode, at former design, it just stopped SoF simply but USB core doesn't know it. - Several small changes. commit d7a26beb6fe65c62d986fdb3d83d5db03185f95d Merge: b9884d3 08a0a4f Author: Greg Kroah-Hartman Date: Sat Dec 26 16:58:05 2015 -0800 Merge tag 'extcon-next-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/extcon into char-misc-next Chanwoo writes: Update extcon for 4.5 Detailed description for patchset: 1. Add new MAX3355 extcon driver - Maxim Integrated MAX3355E chip integrates a charge pump and comparator to enable a system with an integrated USB OTG dual-role transceiver to function as an USB OTG dual-role device. 2. Update the extcon-arizona driver for jack detection - Add the device binding for the jack detection and add the documentation of extcon-arizona.c. 3. Fix the minor issue of extcon driver - Add IRQF_ONESHOT to interrupt flags of extcon-rt8973. - Fix the return value regmap_irq_get_virq() of extcon-max(14577|77693|77843).c driver by using script[1]. [1] http://permalink.gmane.org/gmane.linux.kernel/2046107 commit 87cf5586fdc91ea3b27739372af430b35b9c99db Merge: bfccd95 5072cfc Author: Greg Kroah-Hartman Date: Sat Dec 26 16:56:25 2015 -0800 Merge tag 'usb-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-next Felipe writes: usb: patches for v4.5 A ton of improvements to dwc2 have been made. The driver should be a lot more stable on v4.5 then ever before. Our good old dwc3 got a few cleanups and misc fixes and also added support to Xilinx's integration of this IP. Yoshihiro Shimoda gives us support for a new USB3 peripheral controller from Renesas. Other than these, the usual misc fixes all over the place. commit 59caaed7a72a0e3750dfb84636dae6b781559310 Author: Jenny Derzhavetz Date: Thu Dec 24 12:20:48 2015 +0200 IB/iser: Support the remote invalidation exception Declare that we support remote invalidation in case we are: 1. using fastreg method 2. always registering memory Detect the invalidated rkey from the work completion info so we won't invalidate it locally. The spec mandates that we must not rely on the target remote invalidate our rkey so we must check it upon a receive (scsi response) completion. Signed-off-by: Jenny Derzhavetz Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iscsi_iser.h | 3 ++ drivers/infiniband/ulp/iser/iser_initiator.c | 57 ++++++++++++++++++++++++++++ drivers/infiniband/ulp/iser/iser_memory.c | 1 + drivers/infiniband/ulp/iser/iser_verbs.c | 18 +++++++-- 4 files changed, 76 insertions(+), 3 deletions(-) commit 5234c34e4cd7695647ccc1cabb50c3e7720dd3fb Author: Eric Anholt Date: Tue Feb 24 15:07:55 2015 +0000 ARM: bcm2835: Add Kconfig support for bcm2836 This should be a complete port of bcm2835 functionality to bcm2836 (Raspberry Pi 2). Signed-off-by: Eric Anholt arch/arm/Kconfig.debug | 10 ++++++++-- arch/arm/mach-bcm/Kconfig | 9 +++++---- 2 files changed, 13 insertions(+), 6 deletions(-) commit 60befd2ea1c2061775838ea7bac5cc2b1353afd0 Author: Vladimir Zapolskiy Date: Tue Dec 22 16:37:28 2015 +0200 gpio: update gpiochip .get() callback description Since gpiochip .get() callback may return a negative error value, it strictly limits the range of possible non-error returned values to a subset of [30:0] bitmask, however on practice on success all gpiochip drivers return either 0 for low signal or 1 for high signal, this is assured by "gpio: *: Be sure to clamp return value" series of changes. To avoid any confusion, misinterpretation and potential errors while developing gpiochip drivers in future convert this implicit assumption to a mandatory rule. For output signals with unknown output signal state gpiochip drivers should return a negative error instead of 0. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Linus Walleij include/linux/gpio/driver.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 723a63034eaf10ad36eff28496667f8e2a9f5da3 Author: Linus Walleij Date: Mon Dec 21 23:10:12 2015 +0100 Revert "gpio: revert get() to non-errorprogating behaviour" This reverts commit 45ad7db90b42555c8107f18ec6d6a1e9bce34860. We have fixed all the drivers that were returning ambious values not clamped to [0,1] or an error code, so return the error propagating behaviour of the API. Signed-off-by: Linus Walleij drivers/gpio/gpiolib.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit 39e24ac3c309545f1308f0a5d770322b426339ab Author: Linus Walleij Date: Mon Dec 21 16:40:27 2015 +0100 pinctrl: sunxi: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Cc: Maxime Ripard Acked-by: Chen-Yu Tsai Signed-off-by: Linus Walleij drivers/pinctrl/sunxi/pinctrl-sunxi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b9164f049339006fafe8a52396e0f1997552214a Author: Linus Walleij Date: Mon Dec 21 16:36:17 2015 +0100 gpio: ssbi-mpp: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. This code was also double-inverting a bool which makes no sense so I removed that code and moved clamping toward the end. Cc: Björn Andersson Signed-off-by: Linus Walleij drivers/pinctrl/qcom/pinctrl-ssbi-mpp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 464231fb1fb1360399a2eb11479c47e39facb030 Author: Linus Walleij Date: Mon Dec 21 16:33:41 2015 +0100 pinctrl: ssbi-gpio: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Also, this code was double-inverting a bool. That makes no sense whatsoever, so I removed the double-invert. Cc: Björn Andersson Signed-off-by: Linus Walleij drivers/pinctrl/qcom/pinctrl-ssbi-gpio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 59663a4cc5270f618e2b99d719b492bb1020deb8 Author: Linus Walleij Date: Mon Dec 21 16:31:06 2015 +0100 pinctrl: spmi-mpp: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Cc: Björn Andersson Cc: Ivan T. Ivanov Signed-off-by: Linus Walleij drivers/pinctrl/qcom/pinctrl-spmi-mpp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 86c1a219c256a471535e360efc31611e1ae73a92 Author: Linus Walleij Date: Mon Dec 21 16:29:50 2015 +0100 pinctrl: spmi-gpio: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Cc: Ivan T. Ivanov Cc: Björn Andersson Signed-off-by: Linus Walleij drivers/pinctrl/qcom/pinctrl-spmi-gpio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e15736975955639daa8a913a5f2076ba1cef58a4 Author: Linus Walleij Date: Mon Dec 21 16:28:11 2015 +0100 pinctrl: xway: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Cc: Pramod Gurav Cc: John Crispin Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-xway.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 01a62834f983455806b9e522c33d2670b83b1e52 Author: Linus Walleij Date: Mon Dec 21 16:25:11 2015 +0100 pinctrl: coh901: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-coh901.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3bde87714e79c7ff342e98ccafca07d69d91c7b8 Author: Linus Walleij Date: Mon Dec 21 16:17:20 2015 +0100 pinctrl: baytrail: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Acked-by: Mika Westerberg Acked-by: Heikki Krogerus Signed-off-by: Linus Walleij drivers/pinctrl/intel/pinctrl-baytrail.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 80776df4f53e8e2463e57b7b9bc13298c443a393 Author: Linus Walleij Date: Mon Dec 21 14:58:52 2015 +0100 gpio: viperboard: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Cc: Lars Poeschel Signed-off-by: Linus Walleij drivers/gpio/gpio-viperboard.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c9d4ab030c6bdd3b7c7b0a9d4aeec7a8e1776fa5 Author: Linus Walleij Date: Mon Dec 21 14:56:04 2015 +0100 gpio: ucb1400: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Signed-off-by: Linus Walleij drivers/gpio/gpio-ucb1400.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 18df16692d2ecfac1b48d2036bf4ff7200c191cd Author: Linus Walleij Date: Mon Dec 21 14:54:59 2015 +0100 gpio: tz1090-pdc: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Acked-by: James Hogan Signed-off-by: Linus Walleij drivers/gpio/gpio-tz1090-pdc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9fa90796244aa6043d59c8e127845ff9e3b01485 Author: Linus Walleij Date: Mon Dec 21 11:48:48 2015 +0100 gpio: tz1090: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Acked-by: James Hogan Signed-off-by: Linus Walleij drivers/gpio/gpio-tz1090.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9e8014fcaf80cd9e49db2e551c16a1b6aaaf048f Author: Linus Walleij Date: Mon Dec 21 11:47:16 2015 +0100 gpio: twl4030: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. This also makes the driver start to return the error code, as the end of the series make this work. Cc: Roger Quadros Cc: Tony Lindgren Signed-off-by: Linus Walleij drivers/gpio/gpio-twl4030.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 27ca226711d4bb438349fe0575660a60ad56b357 Author: Linus Walleij Date: Mon Dec 21 11:42:30 2015 +0100 gpio: tc3589x: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Signed-off-by: Linus Walleij drivers/gpio/gpio-tc3589x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f2e13d2f6aaef281716db1fbe94ecb54fbfe5083 Author: Linus Walleij Date: Mon Dec 21 11:41:06 2015 +0100 gpio: sx150x: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. This also starts to propagate the error code from the I2C transaction as the end of the series adds support for that. Cc: Wei Chen Signed-off-by: Linus Walleij drivers/gpio/gpio-sx150x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8a240c311715c2e34f9a8d6e69d6f85a9f484c6d Author: Linus Walleij Date: Mon Dec 21 11:38:50 2015 +0100 gpio: sta2x11: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Cc: Alessandro Rubini Signed-off-by: Linus Walleij drivers/gpio/gpio-sta2x11.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6a681b61470e1daf4fd51581c21147f92fe7b75d Author: Linus Walleij Date: Mon Dec 21 11:36:28 2015 +0100 gpio: sa1100: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Cc: Russell King Cc: Dmitry Eremin-Solenikov Cc: Kristoffer Ericson Signed-off-by: Linus Walleij drivers/gpio/gpio-sa1100.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5b818fd18c7b81bb41c8a18943e562407ac95952 Author: Linus Walleij Date: Mon Dec 21 11:34:11 2015 +0100 gpio: pch: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Cc: Thierry Reding Cc: Daniel Krueger Cc: Jean Delvare Signed-off-by: Linus Walleij drivers/gpio/gpio-pch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 40f805806dfb761650080ee008aeb96c012a0e03 Author: Linus Walleij Date: Mon Dec 21 11:32:53 2015 +0100 gpio: pcf857x: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Also start returning the error code if something fails, as the end of the series augment the core to support this. Cc: Grygorii Strashko Cc: George Cherian Cc: Laurent Pinchart Signed-off-by: Linus Walleij drivers/gpio/gpio-pcf857x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit db30aaef313b4d5a2f6151e61e4f3ab5e0affae4 Author: Linus Walleij Date: Mon Dec 21 11:21:47 2015 +0100 gpio: msic: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Acked-by: Mathias Nyman Signed-off-by: Linus Walleij drivers/gpio/gpio-msic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c759174e73ab4a2190244c903649032ac748586d Author: Linus Walleij Date: Mon Dec 21 11:20:56 2015 +0100 gpio: mpc8xxx: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Cc: Uwe Kleine-König Cc: Alexander Stein Signed-off-by: Linus Walleij drivers/gpio/gpio-mpc8xxx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6f14dd6964288ecb4cad7d14b966e6d347ce128b Author: Linus Walleij Date: Mon Dec 21 11:18:44 2015 +0100 gpio: ml-ioh: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Cc: Feng Tang Cc: Tomoya MORINAGA Signed-off-by: Linus Walleij drivers/gpio/gpio-ml-ioh.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f96600873e368e9fae53c3485972db2252f9f12c Author: Linus Walleij Date: Mon Dec 21 11:12:55 2015 +0100 gpio: max732x: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Also start to propagate the error code here as the end of the series fixes this to work for all drivers. Cc: Semen Protsenko Reviewed-by: Marek Vasut Reviewed-by:Nicholas Krause Signed-off-by: Linus Walleij drivers/gpio/gpio-max732x.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2e6d84564c07452ed10a7601484765d37880cc3a Author: Linus Walleij Date: Mon Dec 21 11:10:06 2015 +0100 gpio: lpc32xx: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Cc: Roland Stigge Cc: Vladimir Zapolskiy Signed-off-by: Linus Walleij drivers/gpio/gpio-lpc32xx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit e9639436091a5c65c391d9b5e218eb5fbf30173d Author: Linus Walleij Date: Mon Dec 21 11:04:26 2015 +0100 gpio: kempld: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Cc: Brunner Michael Reviewed-by: Guenter Roeck Signed-off-by: Linus Walleij drivers/gpio/gpio-kempld.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 828240c27ad44dffc53d6d72794057297f58e28e Author: Linus Walleij Date: Mon Dec 21 11:03:33 2015 +0100 gpio: janz-ttl: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Cc: Ira W. Snyder Signed-off-by: Linus Walleij drivers/gpio/gpio-janz-ttl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4c628f3de69f66f429c108b27de9f6e82311636c Author: Linus Walleij Date: Mon Dec 21 11:00:56 2015 +0100 gpio: intel-mid: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Acked-by: David Cohen Signed-off-by: Linus Walleij drivers/gpio/gpio-intel-mid.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8388f2909c7e54678a4fe350382725c7d8ccfd85 Author: Linus Walleij Date: Mon Dec 21 10:46:18 2015 +0100 gpio: em: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Cc: Magnus Damm Acked-by: Geert Uytterhoeven Signed-off-by: Linus Walleij drivers/gpio/gpio-em.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5b8d8fb0fc7412a4a7ec884b9d3b744aca2c462f Author: Linus Walleij Date: Mon Dec 21 10:33:27 2015 +0100 gpio: davinci: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Cc: Sekhar Nori Cc: Santosh Shilimkar Reviewed-by: Grygorii Strashko Signed-off-by: Linus Walleij drivers/gpio/gpio-davinci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1f66adfb5eb81428bc1a5700cffd22ba8e772272 Author: Linus Walleij Date: Mon Dec 21 10:30:02 2015 +0100 gpio: da9052: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Cc: Ashish Jangam Signed-off-by: Linus Walleij drivers/gpio/gpio-da9052.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit b03539665d4bd4bdb2a7dd5f65cdbd7a24cc3f1c Author: Robert Elliott Date: Wed Dec 23 18:28:49 2015 -0600 init, Documentation: Remove ramdisk_blocksize mentions The brd driver has never supported the ramdisk_blocksize kernel parameter that was in the rd driver it replaced, so remove mention of this parameter from comments and Documentation. Commit 9db5579be4bb ("rewrite rd") replaced rd with brd, keeping a brd_blocksize variable in struct brd_device but never using it. Commit a2cba2913c76 ("brd: get rid of unused members from struct brd_device") removed the unused variable. Commit f5abc8e75815 ("Documentation/blockdev/ramdisk.txt: updates") removed mentions of ramdisk_blocksize from that file. Signed-off-by: Robert Elliott Signed-off-by: Jonathan Corbet Documentation/kernel-parameters.txt | 3 --- init/do_mounts_rd.c | 7 ------- 2 files changed, 10 deletions(-) commit aa98b942cbf305cf2abe5dc3aff11f579c7d7fdc Merge: 37babe4 81bd0d5 Author: James Morris Date: Sat Dec 26 16:11:13 2015 +1100 Merge branch 'smack-for-4.5' of https://github.com/cschaufler/smack-next into next commit 37babe4ec610ff288a60aa79619b3d2f00bcfd89 Merge: 3cb92fe 7631994 Author: James Morris Date: Sat Dec 26 16:07:31 2015 +1100 Merge branch 'upstream' of git://git.infradead.org/users/pcmoore/selinux into next commit 3cb92fe48138d225b8d0ceedf148642f9103f841 Merge: 5beb0c4 0112721 Author: James Morris Date: Sat Dec 26 16:06:53 2015 +1100 Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity into next commit 039f50629b7f860f36644ed1f34b27da9aa62f43 Author: Pravin B Shelar Date: Thu Dec 24 14:34:54 2015 -0800 ip_tunnel: Move stats update to iptunnel_xmit() By moving stats update into iptunnel_xmit(), we can simplify iptunnel_xmit() usage. With this change there is no need to call another function (iptunnel_xmit_stats()) to update stats in tunnel xmit code path. Signed-off-by: Pravin B Shelar Signed-off-by: David S. Miller drivers/net/geneve.c | 17 ++++++++--------- drivers/net/vxlan.c | 9 ++++----- include/net/ip6_tunnel.h | 17 ++++------------- include/net/ip_tunnels.h | 28 +++++++++++++++------------- include/net/udp_tunnel.h | 8 ++++---- net/ipv4/ip_gre.c | 7 +++---- net/ipv4/ip_tunnel.c | 7 ++----- net/ipv4/ip_tunnel_core.c | 9 +++++---- net/ipv4/ip_vti.c | 2 +- net/ipv4/udp_tunnel.c | 11 +++++------ net/ipv6/sit.c | 7 ++----- net/tipc/udp_media.c | 12 +++--------- 12 files changed, 56 insertions(+), 78 deletions(-) commit 2a5de720dcecbc7ba998bc1ae8f7b9cd7cb81654 Author: Tadeusz Struk Date: Wed Dec 23 07:36:28 2015 -0800 crypto: qat - fix SKU definiftion for c3xxx dev c3xxx doesn't have the esram BAR and only has 6 ue. Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.c | 22 ++++++---------------- drivers/crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.h | 5 ++--- 2 files changed, 8 insertions(+), 19 deletions(-) commit 1fa844e2ff914370a1c7f14bb854f220bfe87c73 Author: Tadeusz Struk Date: Wed Dec 23 06:49:58 2015 -0800 crypto: qat - Fix random config build issue Reported-by: kbuild test robot Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/adf_common_drv.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit c6c59bf2c0d60e67449190a8a95628ecd04b3969 Author: Geliang Tang Date: Wed Dec 23 20:49:01 2015 +0800 crypto: ccp - use to_pci_dev and to_platform_device Use to_pci_dev() and to_platform_device() instead of open-coding. Signed-off-by: Geliang Tang Signed-off-by: Herbert Xu drivers/crypto/ccp/ccp-pci.c | 8 ++++---- drivers/crypto/ccp/ccp-platform.c | 6 ++---- 2 files changed, 6 insertions(+), 8 deletions(-) commit a239c36e527e003ff15ad4335c2596de692aa2f4 Author: Ahsan Atta Date: Tue Dec 22 11:20:34 2015 -0800 crypto: qat - Rename dh895xcc mmp firmware Resending again. The fw name suppoed to be 895xcc instead of 895xxcc. Sorry for the noise. Rename dh895xcc mmp fw to make it consistent with other mmp images. Signed-off-by: Ahsan Atta Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bda7c4c2b9767ce2af4394754498662d62079af5 Author: Linus Walleij Date: Fri Dec 25 13:27:04 2015 +0100 pinctrl: qcom: make PMIC drivers bool commit ab4256cfeab91569e1d96e7f0014538fe0845259 "pinctrl: qcom: pmic-gpio/mpp: of_irq_count() == npins" made the Qualcomm PMIC pin control drivers make use of of_irq_count() which is not an exported function, making modular builds fail. Fix this by marking the drivers as compiled-in/bool. Cc: Stephen Boyd Cc: Andy Gross Cc: Mark Brown Signed-off-by: Linus Walleij drivers/pinctrl/qcom/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 82d0f8bc4b5765027fa3eb07cc32916b7b229ee0 Merge: 5b50c522 cfbab8f Author: Michael Turquette Date: Thu Dec 24 20:39:02 2015 -0800 Merge branch 'clk-bcm2835' into clk-next commit cfbab8fbab9c330aca963095a439c451ac97c0dd Author: Remi Pommarel Date: Sun Dec 6 17:22:48 2015 +0100 clk: bcm2835: Add PWM clock support Register the pwm clock for bcm2835. Signed-off-by: Remi Pommarel Reviewed-by: Eric Anholt Signed-off-by: Michael Turquette drivers/clk/bcm/clk-bcm2835.c | 13 +++++++++++++ include/dt-bindings/clock/bcm2835.h | 3 ++- 2 files changed, 15 insertions(+), 1 deletion(-) commit 6d18b8adbe679b5947aa822b676efff230acc5f6 Author: Remi Pommarel Date: Sun Dec 6 17:22:47 2015 +0100 clk: bcm2835: Support for clock parent selection Some bcm2835 clocks used by hardware (like "PWM" or "H264") can have multiple parent clocks. These clocks divide the rate of a parent which can be selected by setting the proper bits in the clock control register. Previously all these parents where handled by a mux clock. But a mux clock cannot be used because updating clock control register to select parent needs a password to be xor'd with the parent index. This patch get rid of mux clock and make these clocks handle their own parent, allowing them to select the one to use. Signed-off-by: Remi Pommarel Reviewed-by: Eric Anholt Signed-off-by: Michael Turquette drivers/clk/bcm/clk-bcm2835.c | 122 ++++++++++++++++++++++++++---------------- 1 file changed, 77 insertions(+), 45 deletions(-) commit 9c95b32ca09364e4687b72c4e17b78dc1c420026 Author: Remi Pommarel Date: Sun Dec 6 17:22:46 2015 +0100 clk: bcm2835: add a round up ability to the clock divisor Make bcm2835_clock_choose_div to optionally round up the chosen MASH divisor so that the resulting average rate will not be higher than the requested one. Signed-off-by: Remi Pommarel Reviewed-by: Eric Anholt Signed-off-by: Michael Turquette drivers/clk/bcm/clk-bcm2835.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) commit 0112721df4edbdd07b800813300d76811572f080 Author: Sasha Levin Date: Tue Dec 22 08:51:23 2015 -0500 IMA: policy can be updated zero times Commit "IMA: policy can now be updated multiple times" assumed that the policy would be updated at least once. If there are zero updates, the temporary list head object will get added to the policy list, and later dereferenced as an IMA policy object, which means that invalid memory will be accessed. Changelog: - Move list_empty() test to ima_release_policy(), before audit msg - Mimi Signed-off-by: Sasha Levin Signed-off-by: Mimi Zohar security/integrity/ima/ima.h | 1 + security/integrity/ima/ima_fs.c | 5 +++++ security/integrity/ima/ima_policy.c | 8 ++++++++ 3 files changed, 14 insertions(+) commit 5b50c522d51b748c06bd768d36f1a06f679f542b Merge: cf87a88 f7c82a6 Author: Michael Turquette Date: Thu Dec 24 12:34:29 2015 -0800 Merge branch 'clk-lpc32xx' into clk-next commit f7c82a60ba26c2f003662bcb2cff131021c1e828 Author: Vladimir Zapolskiy Date: Sun Dec 6 12:45:57 2015 +0200 clk: lpc32xx: add common clock framework driver Add support for all configurable clocks found on NXP LPC32xx SoC. The list contains several heterogenous groups of clocks: * system clocks including multiple dividers and muxes, * x397 PLL, HCLK PLL and USB PLL, * peripheral clocks inherited from rtc, hclk and pclk, * USB controller clocks: AHB slave, I2C, OTG, OHCI and device. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Michael Turquette drivers/clk/Kconfig | 6 + drivers/clk/nxp/Makefile | 1 + drivers/clk/nxp/clk-lpc32xx.c | 1569 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 1576 insertions(+) commit 8a896310a7ea5fa99fc89690bde7be404c7e1113 Author: Vladimir Zapolskiy Date: Sun Dec 6 12:45:56 2015 +0200 clk: lpc18xx: add NXP specific COMMON_CLK_NXP configuration symbol The change adds COMMON_CLK_NXP configuration symbol and enables it for NXP LPC18XX architecture, this is needed to reuse drivers/clk/nxp folder for NXP common clock framework drivers other than LPC18XX one. Signed-off-by: Vladimir Zapolskiy Acked-by: Joachim Eastwood Signed-off-by: Michael Turquette drivers/clk/Kconfig | 5 +++++ drivers/clk/Makefile | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) commit d26f4cc74f4d8da438db0ba7c00bc1ad7374a69f Author: Vladimir Zapolskiy Date: Sun Dec 6 12:45:55 2015 +0200 dt-bindings: clock: add NXP LPC32xx clock list for consumers The change adds a list of NXP LPC32xx clocks, which can be requested by clock consumers. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Michael Turquette include/dt-bindings/clock/lpc32xx-clock.h | 56 +++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) commit d3efc5ac5971674e405e270df8bb855fe2d5327b Author: Vladimir Zapolskiy Date: Sun Dec 6 12:45:54 2015 +0200 dt-bindings: clock: add description of LPC32xx USB clock controller NXP LPC32xx USB controller has a subdevice, which controls USB AHB slave, USB OTG, USB OHCI, USB device and I2C controller to USB phy clocks, this change adds description of the clock controller, for more details reference LPC32xx User's Manual, namely USB control, OTG clock control and OTG clock status registers. Signed-off-by: Vladimir Zapolskiy Acked-by: Rob Herring Signed-off-by: Michael Turquette .../bindings/clock/nxp,lpc3220-usb-clk.txt | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit 92e16f0fb2df652945ead20dd669fc5cf8fd1cff Author: Vladimir Zapolskiy Date: Sun Dec 6 12:45:53 2015 +0200 dt-bindings: clock: add description of LPC32xx clock controller NXP LPC32xx SoC has a clocking and power control unit (CPC) as a part of system control block (SCB). CPC is supplied by two external oscillators and it manages core and most of peripheral clocks, the change adds description of DT bindings for clock controller found on LPC32xx SoC series. Signed-off-by: Vladimir Zapolskiy Acked-by: Rob Herring Signed-off-by: Michael Turquette .../devicetree/bindings/clock/nxp,lpc3220-clk.txt | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) commit 0731de0dd95b251ed6cfb5f132486e52357fce53 Author: Dan Williams Date: Mon Dec 14 15:34:15 2015 -0800 libnvdimm, pfn: move 'memory mode' indication to sysfs 'Memory mode' is defined as the capability of a DAX mapping to be the source/target of DMA and other "direct I/O" scenarios. While it currently requires allocating 'struct page' for each page frame of persistent memory in the namespace it will not always be the case. Work continues on reducing the kernel's dependency on 'struct page'. Let's not maintain a suffix that is expected to lose meaning over time. In other words a future 'raw mode' pmem namespace may be as capable as today's 'memory mode' namespace. Undo the encoding of the mode in the device name and leave it to other tooling to determine the mode of the namespace from its attributes. Reported-by: Matthew Wilcox Signed-off-by: Dan Williams drivers/nvdimm/namespace_devs.c | 41 ++++++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 13 deletions(-) commit 9bfa84969dd52bf0aa635c4c8a67c81d75ffca37 Author: Dan Williams Date: Fri Dec 11 11:20:16 2015 -0800 tools/testing/libnvdimm: cleanup mock resource lookup Push the locking around get_nfit_res() into get_nfit_res(). Signed-off-by: Dan Williams tools/testing/nvdimm/test/iomap.c | 69 +++++++++++++-------------------------- 1 file changed, 23 insertions(+), 46 deletions(-) commit 3fa962686568a1617d174e3d2f5d522e963077c5 Author: Dan Williams Date: Sun Dec 13 11:35:52 2015 -0800 libnvdimm, pfn: fix nd_pfn_validate() return value handling The -ENODEV case indicates that the info-block needs to established. All other return codes cause nd_pfn_init() to abort. Signed-off-by: Dan Williams drivers/nvdimm/pmem.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit bb18f0976ef8db41f68b66623ce3b8a745adb0b8 Author: Geliang Tang Date: Wed Dec 23 21:03:39 2015 +0800 ASoC: twl6040, fsl: use to_platform_device Use to_platform_device() instead of open-coding it. Signed-off-by: Geliang Tang Signed-off-by: Mark Brown sound/soc/codecs/twl6040.c | 3 +-- sound/soc/fsl/mpc8610_hpcd.c | 3 +-- sound/soc/fsl/p1022_ds.c | 3 +-- sound/soc/fsl/p1022_rdk.c | 3 +-- 4 files changed, 4 insertions(+), 8 deletions(-) commit 4a5893cf67062be4f70196c3fe45cfda950ea308 Author: Zidan Wang Date: Thu Dec 24 14:58:03 2015 +0800 ASoC: wm8960: add kcontrol to select ADC data output add kcontrol to select ADC data output. Signed-off-by: Zidan Wang Signed-off-by: Mark Brown sound/soc/codecs/wm8960.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit abd7c894fc41a9a674354e10ed6c55413e1db077 Author: Adam Thomson Date: Wed Dec 23 13:50:04 2015 +0000 ASoC: da7219: Add regmap patch to support old silicon Initial silicon did not have master bias enabled by default, unlike later HW, so use regmap patch to align with newer defaults. Signed-off-by: Adam Thomson Signed-off-by: Mark Brown sound/soc/codecs/da7219.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) commit 76319946f321e30872dd72af7de867cb26e7a373 Author: Vladis Dronov Date: Thu Dec 24 11:09:41 2015 -0500 selinux: rate-limit netlink message warnings in selinux_nlmsg_perm() Any process is able to send netlink messages with invalid types. Make the warning rate-limited to prevent too much log spam. The warning is supposed to help to find misbehaving programs, so print the triggering command name and pid. Reported-by: Florian Weimer Signed-off-by: Vladis Dronov [PM: subject line tweak to make checkpatch.pl happy] Signed-off-by: Paul Moore security/selinux/hooks.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit f9df6458218f4fe8a1c3bf0af89c1fa9eaf0db39 Author: Andrew Perepechko Date: Thu Dec 24 11:09:41 2015 -0500 selinux: export validatetrans decisions Make validatetrans decisions available through selinuxfs. "/validatetrans" is added to selinuxfs for this purpose. This functionality is needed by file system servers implemented in userspace or kernelspace without the VFS layer. Writing "$oldcontext $newcontext $tclass $taskcontext" to /validatetrans is expected to return 0 if the transition is allowed and -EPERM otherwise. Signed-off-by: Andrew Perepechko CC: andrew.perepechko@seagate.com Acked-by: Stephen Smalley Signed-off-by: Paul Moore security/selinux/include/classmap.h | 2 +- security/selinux/include/security.h | 3 ++ security/selinux/selinuxfs.c | 80 +++++++++++++++++++++++++++++++++++++ security/selinux/ss/services.c | 34 ++++++++++++---- 4 files changed, 111 insertions(+), 8 deletions(-) commit f39814f60ad0fa982ac87a97af1fb0bde244c319 Author: Andreas Gruenbacher Date: Thu Dec 24 11:09:40 2015 -0500 gfs2: Invalid security labels of inodes when they go invalid When gfs2 releases the glock of an inode, it must invalidate all information cached for that inode, including the page cache and acls. Use the new security_inode_invalidate_secctx hook to also invalidate security labels in that case. These items will be reread from disk when needed after reacquiring the glock. Signed-off-by: Andreas Gruenbacher Acked-by: Bob Peterson Acked-by: Steven Whitehouse Cc: cluster-devel@redhat.com [PM: fixed spelling errors and description line lengths] Signed-off-by: Paul Moore fs/gfs2/glops.c | 2 ++ 1 file changed, 2 insertions(+) commit 5d226df4edfa0eb1e689e7ac2741cf261ff7cbf1 Author: Andreas Gruenbacher Date: Thu Dec 24 11:09:40 2015 -0500 selinux: Revalidate invalid inode security labels When fetching an inode's security label, check if it is still valid, and try reloading it if it is not. Reloading will fail when we are in RCU context which doesn't allow sleeping, or when we can't find a dentry for the inode. (Reloading happens via iop->getxattr which takes a dentry parameter.) When reloading fails, continue using the old, invalid label. Signed-off-by: Andreas Gruenbacher Acked-by: Stephen Smalley Signed-off-by: Paul Moore security/selinux/hooks.c | 76 +++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 68 insertions(+), 8 deletions(-) commit 6f3be9f562e3027c77bc4482ccf2cea8600a7f74 Author: Andreas Gruenbacher Date: Thu Dec 24 11:09:40 2015 -0500 security: Add hook to invalidate inode security labels Add a hook to invalidate an inode's security label when the cached information becomes invalid. Add the new hook in selinux: set a flag when a security label becomes invalid. Signed-off-by: Andreas Gruenbacher Reviewed-by: James Morris Acked-by: Stephen Smalley Signed-off-by: Paul Moore include/linux/lsm_hooks.h | 6 ++++++ include/linux/security.h | 5 +++++ security/security.c | 8 ++++++++ security/selinux/hooks.c | 30 ++++++++++++++++++++---------- security/selinux/include/objsec.h | 6 ++++++ 5 files changed, 45 insertions(+), 10 deletions(-) commit 83da53c5a34564a0a63b26f84293c6e2a639e1e4 Author: Andreas Gruenbacher Date: Thu Dec 24 11:09:39 2015 -0500 selinux: Add accessor functions for inode->i_security Add functions dentry_security and inode_security for accessing inode->i_security. These functions initially don't do much, but they will later be used to revalidate the security labels when necessary. Signed-off-by: Andreas Gruenbacher Acked-by: Stephen Smalley Signed-off-by: Paul Moore security/selinux/hooks.c | 97 ++++++++++++++++++++++++++++-------------------- 1 file changed, 56 insertions(+), 41 deletions(-) commit d6335d77a7622a88380f3f207cc1f727f878dd21 Author: Andreas Gruenbacher Date: Thu Dec 24 11:09:39 2015 -0500 security: Make inode argument of inode_getsecid non-const Make the inode argument of the inode_getsecid hook non-const so that we can use it to revalidate invalid security labels. Signed-off-by: Andreas Gruenbacher Acked-by: Stephen Smalley Signed-off-by: Paul Moore include/linux/audit.h | 8 ++++---- include/linux/lsm_hooks.h | 2 +- include/linux/security.h | 4 ++-- kernel/audit.c | 2 +- kernel/audit.h | 2 +- kernel/auditsc.c | 6 +++--- security/security.c | 2 +- security/selinux/hooks.c | 2 +- security/smack/smack_lsm.c | 2 +- 9 files changed, 15 insertions(+), 15 deletions(-) commit ea861dfd9e0e7e044a6e65fa02a14b9159b568da Author: Andreas Gruenbacher Date: Thu Dec 24 11:09:39 2015 -0500 security: Make inode argument of inode_getsecurity non-const Make the inode argument of the inode_getsecurity hook non-const so that we can use it to revalidate invalid security labels. Signed-off-by: Andreas Gruenbacher Acked-by: Stephen Smalley Signed-off-by: Paul Moore include/linux/lsm_hooks.h | 2 +- include/linux/security.h | 4 ++-- security/security.c | 2 +- security/selinux/hooks.c | 2 +- security/smack/smack_lsm.c | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) commit a44ca52ca6bd10ce588102789dde33f9fd6569cf Author: Andreas Gruenbacher Date: Thu Dec 24 11:09:39 2015 -0500 selinux: Remove unused variable in selinux_inode_init_security Signed-off-by: Andreas Gruenbacher Acked-by: Stephen Smalley Signed-off-by: Paul Moore security/selinux/hooks.c | 2 -- 1 file changed, 2 deletions(-) commit d7d3e25f40e950bdcec6d94faf9346b7a7d6e4bb Author: Hariprasad Shenai Date: Thu Dec 24 16:24:53 2015 +0530 cxgb4: Remove deprecated module parameters Remove deprecated module parameters, and mark one parameter as deprecated. Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 54 +------------------------ 1 file changed, 2 insertions(+), 52 deletions(-) commit a99c683e0cd2e55fa314de40ca5e329b05c6d166 Author: Hariprasad Shenai Date: Thu Dec 24 16:15:17 2015 +0530 cxgb4: Get TID calculation right for IPv6 mode CLIP is always enabled and hardware uses 2 TID entries instead of 4 for IPv6 in CLIP mode. Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 563c17cb20831d818fb27eedb7b3e883cd756135 Author: Markus Elfring Date: Thu Dec 24 11:05:32 2015 +0100 Documentation-getdelays: Apply a recommendation from "checkpatch.pl" in main() The script "checkpatch.pl" pointed out that assignments should usually not be performed within condition checks. Thus move the assignment for the variable "nl_sd" to a separate statement. Signed-off-by: Markus Elfring Signed-off-by: Jonathan Corbet Documentation/accounting/getdelays.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit b6e14040c8bd22cd70cf1fe0d70d382413012a4a Author: SeongJae Park Date: Tue Dec 15 10:22:58 2015 +0900 Documentation: HOWTO: update versions from 3.x to 4.x Versions in HOWTO was updated to 4.x by commit e4144fe5d47c91c92d36cdbd5f31ed8d6e3a57ab ("docs: update HOWTO for 3.x -> 4.x versioning") but not applied to Korean translation. This commit apply the change. Signed-off-by: SeongJae Park Acked-by: Minchan Kim Signed-off-by: Jonathan Corbet Documentation/ko_KR/HOWTO | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit 403a970cd383cb34d08c1c62b894e6d45ca93efc Author: SeongJae Park Date: Tue Dec 15 10:22:57 2015 +0900 Documentation: remove outdated references from translations Outdated link to linux-next wiki was removed by commit ace80793d16fb076381ba0e232d42295d98dae99 ("Documentation: remove outdated references to the linux-next wiki"). However, the change was not applied to translations. This commit apply the change to translations. Signed-off-by: SeongJae Park Acked-by: Minchan Kim Signed-off-by: Jonathan Corbet Documentation/ja_JP/HOWTO | 1 - Documentation/ko_KR/HOWTO | 1 - 2 files changed, 2 deletions(-) commit f0ad43539af41bc2f8baff9ce3237d368d55654e Author: Peter Ujfalusi Date: Thu Dec 17 15:27:52 2015 +0200 ARM: DTS: da850: Enable DMA for SPI1 Add the needed bindings so the SPI driver can use DMA with SPI1. Signed-off-by: Peter Ujfalusi Tested-by: Sushaanth Srirangapathi Signed-off-by: Sekhar Nori arch/arm/boot/dts/da850.dtsi | 2 ++ 1 file changed, 2 insertions(+) commit 3c497582e1e2e3baf88bc994dd1ce3e3422cb00b Author: Peter Ujfalusi Date: Thu Dec 17 15:27:51 2015 +0200 ARM: DTS: da850: Add node for mmc1 da850 has two MMC controller, MMCSD1 is served by eDMA1 Signed-off-by: Peter Ujfalusi Tested-by: Sushaanth Srirangapathi Signed-off-by: Sekhar Nori arch/arm/boot/dts/da850.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) commit 684892a2f10c1845a35b9cfa4c086d4254bb06ae Author: Peter Ujfalusi Date: Thu Dec 17 15:27:50 2015 +0200 ARM: DTS: da850: Enable DMA use for MMC0 Add the needed bindings for MMC0 in order to be able to utilize the DMA instead of PIO mode. Signed-off-by: Peter Ujfalusi Tested-by: Sushaanth Srirangapathi Signed-off-by: Sekhar Nori arch/arm/boot/dts/da850.dtsi | 2 ++ 1 file changed, 2 insertions(+) commit b47a8560695c552889923c71605000ac1f5e4b2d Author: Peter Ujfalusi Date: Thu Dec 17 15:27:49 2015 +0200 ARM: DTS: da850: Enable eDMA1 The eDMA1 in da850 has only one TPTC and for example MMC1 is HW events are handled by it. Signed-off-by: Peter Ujfalusi Tested-by: Sushaanth Srirangapathi Signed-off-by: Sekhar Nori arch/arm/boot/dts/da850-enbw-cmc.dts | 4 ++++ arch/arm/boot/dts/da850-evm.dts | 4 ++++ arch/arm/boot/dts/da850.dtsi | 17 +++++++++++++++++ 3 files changed, 25 insertions(+) commit 7a7faedde65307c364f831046ded1a7720d5a6fe Author: Peter Ujfalusi Date: Thu Dec 17 15:27:48 2015 +0200 ARM: DTS: da850: Use the new DT bindings for the eDMA3 Switch to use the ti,edma3-tpcc and ti,edma3-tptc binding for the eDMA3. With the new bindings boards can customize and tweak the DMA channel priority to match their needs. With the new binding the memcpy is safe to be used since with the old binding it was not possible for a driver to know which channel is allowed to be used as non HW triggered channel. Using the new binding will allow us to reserve PaRAM slots to be used by the DSP which was not possible before and prevented the da850 boards to be moved to DT only. Note that the DMA memcpy is disabled, it can be enabled by reserving channels for memcpy by adding the following property to the edma node: ti,edma-memcpy-channels = <20 21>; /* Reserving channel 20 and 21 for memcpy */ Signed-off-by: Peter Ujfalusi Tested-by: Sushaanth Srirangapathi Signed-off-by: Sekhar Nori arch/arm/boot/dts/da850-enbw-cmc.dts | 4 ++++ arch/arm/boot/dts/da850-evm.dts | 4 ++++ arch/arm/boot/dts/da850.dtsi | 26 +++++++++++++++++++++----- 3 files changed, 29 insertions(+), 5 deletions(-) commit dfaebb509b9240430aff9482881cdc29f929e7c2 Author: Peter Ujfalusi Date: Thu Dec 17 15:27:47 2015 +0200 ARM: DTS: da850: fix edma0 reg space The size of the eDMA0 CC register space is 0x8000 and not 0x10000. Signed-off-by: Peter Ujfalusi Tested-by: Sushaanth Srirangapathi Signed-off-by: Sekhar Nori arch/arm/boot/dts/da850.dtsi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ce6c1cd2c324c027de87d6c249298c9f93463ee8 Author: Dan Carpenter Date: Thu Dec 24 10:25:32 2015 +0300 pinctrl: nsp-gpio: forever loop in nsp_gpio_get_strength() There is a signedness bug here so the loop will never exit. Fixes: 8bfcbbbcabe0 ('pinctrl: nsp: add gpio-a driver support for Broadcom NSP SoC') Signed-off-by: Dan Carpenter Signed-off-by: Linus Walleij drivers/pinctrl/bcm/pinctrl-nsp-gpio.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a898c8358aecc9671aa9acbca00567e7387a62fb Merge: 6c741c7 023e06d Author: Linus Walleij Date: Thu Dec 24 09:54:53 2015 +0100 Merge tag 'samsung-drivers-4.5' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into devel Exynos-specific drivers for 4.5: 1. Add a pinctrl driver for Exynos5410. commit cf87a88f519777999bf5374809b34827bb4ab5dd Merge: a915e30 fee3103 Author: Michael Turquette Date: Wed Dec 23 23:23:18 2015 -0800 Merge tag 'sunxi-clocks-for-4.5' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux into clk-next Allwinner clocks changes for 4.5 Clock patches for the Allwinner SoCs: - H3 clocks - A10/A20 Video Engine clocks - DRAM gates - A80 special CPU clock commit 8c100e74409ad3bbcb8a1ccdff4540fc0aa7a0fc Author: Li Jun Date: Tue Dec 15 17:51:29 2015 +0800 usb: chipidea: otg: use usb autosuspend to suspend bus for HNP Directly manipulate the controller regsiter to suspend the usb bus for HNP is not the proper way, this should be done through the usbcore by usb autosuspend. So to start HNP, autosuspend support should be added for OTG devices interface driver if it's not enabled. Signed-off-by: Li Jun Signed-off-by: Peter Chen drivers/usb/chipidea/otg_fsm.c | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) commit 43a404577a93d236913b67e41758adf5b9a8f45d Author: Li Jun Date: Tue Dec 15 17:47:47 2015 +0800 usb: chipidea: host: set host to be null after hcd is freed Set ci->hcd and ci->otg.host to be null in host_stop since the hcd already freed. Signed-off-by: Li Jun Signed-off-by: Peter Chen drivers/usb/chipidea/host.c | 2 ++ 1 file changed, 2 insertions(+) commit 4b19b78aa6f1f57a997d93fa05df6724792a85ba Author: Saurabh Sengar Date: Wed Nov 18 09:40:12 2015 +0530 usb: chipidea: removing of_find_property call to of_find_property() before of_property_read_u32() is unnecessary. of_property_read_u32() anyway calls to of_find_property() only. Signed-off-by: Saurabh Sengar Signed-off-by: Peter Chen drivers/usb/chipidea/core.c | 57 +++++++++++++++++---------------------------- 1 file changed, 22 insertions(+), 35 deletions(-) commit b09b5224fe86b3c9adef1bd9f0bd81800e8ff0b3 Author: Andreas Fenkart Date: Thu Nov 12 14:14:40 2015 +0100 usb: chipidea: implement platform shutdown callback disable wakeup irq during shutdown, otherwise kexec fails for kernels that setup irq handlers before resetting the hardware Signed-off-by: Andreas Fenkart Signed-off-by: Peter Chen drivers/usb/chipidea/ci_hdrc_imx.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 3a35d59a69398b3b522d449404669624486d2b68 Author: Peter Chen Date: Tue Nov 3 16:21:20 2015 +0800 usb: chipidea: clean up CONFIG_USB_CHIPIDEA_DEBUG reference Since this configuration option has deleted, cleans up all its references. Signed-off-by: Peter Chen Reported-by: Valentin Rothberg Documentation/usb/chipidea.txt | 4 ++-- drivers/usb/chipidea/core.c | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) commit 383da2450c7150b4c470dab3759ab86532c65b78 Author: Peter Chen Date: Tue Oct 27 16:08:30 2015 +0800 usb: chipidea: delete static debug support Since we have dynamic debug support, delete static debug for chipidea Signed-off-by: Peter Chen drivers/usb/chipidea/Kconfig | 5 ----- drivers/usb/chipidea/Makefile | 2 -- 2 files changed, 7 deletions(-) commit 9d8c850d02b01f3e0157a8f9859fe3f04cab68fe Author: Peter Chen Date: Fri Oct 23 10:33:58 2015 +0800 usb: chipidea: support debugfs without CONFIG_USB_CHIPIDEA_DEBUG Since we need to mount debugfs to show/store the things we want to debug, it is duplicated to add another configuration to enable it. Meanwhile, with CONFIG_USB_CHIPIDEA_DEBUG, we can't support chipidea debugfs at runtime. Signed-off-by: Peter Chen Cc: Jun Li drivers/usb/chipidea/Makefile | 3 +-- drivers/usb/chipidea/ci.h | 3 +++ drivers/usb/chipidea/core.c | 1 - drivers/usb/chipidea/debug.c | 1 - drivers/usb/chipidea/debug.h | 30 ------------------------------ drivers/usb/chipidea/udc.c | 1 - 6 files changed, 4 insertions(+), 35 deletions(-) commit 779debdf26d4b49598e61e0c28ac97146a2b96fe Author: Felipe F. Tonello Date: Tue Oct 27 10:36:32 2015 +0000 usb: chipidea: udc: improve error handling on _hardware_enqueue _hardware_enqueue() didn't check for errors when using add_td_to_list() which can fail if dma_pool_alloc fails, thus causing a kernel panic when lastnode->ptr is NULL. Signed-off-by: Felipe F. Tonello Signed-off-by: Peter Chen drivers/usb/chipidea/udc.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) commit e46fed9fb3a12b1070e2cc5ad03a21b84f94408d Author: Felipe F. Tonello Date: Fri Sep 18 18:30:19 2015 +0100 usb: chipidea: udc: _ep_queue and _hw_queue cleanup Update comments to reflect current state of functions. Signed-off-by: Felipe F. Tonello Signed-off-by: Peter Chen drivers/usb/chipidea/udc.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit e26d2d21ff8e3e4f9768960a83e4b7be43f0aeed Author: Sagi Grimberg Date: Wed Dec 9 14:12:07 2015 +0200 IB/iser: Change the increment rkey flow logic When we enable remote invalidate support we won't want to perform local invalidates at the same time we do today, but we still need to get new rkeys. So, decouple the rkey update from the local invalidate and tie it to memory reg instead. Signed-off-by: Sagi Grimberg Signed-off-by: Jenny Derzhavetz Reviewed-by: Christoph Hellwig Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iser_memory.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 422bd0acb062cd0c14f2af61db76c4f598903ad3 Author: Jenny Derzhavetz Date: Wed Dec 9 14:12:06 2015 +0200 IB/isert: Support the remote invalidation exception We'll use remote invalidate, according to negotiation result during connection establishment. If the initiator declared that it supports the remote invalidate exception and the local HCA supports IB_DEVICE_MEM_MGT_EXTENSIONS then the target will use IB_WR_SEND_WITH_INV with the correct rkey for the response. Signed-off-by: Jenny Derzhavetz Signed-off-by: Sagi Grimberg Reviewed-by: Christoph Hellwig Signed-off-by: Doug Ledford drivers/infiniband/ulp/isert/ib_isert.c | 46 ++++++++++++++++++++++++++++----- drivers/infiniband/ulp/isert/ib_isert.h | 2 ++ 2 files changed, 41 insertions(+), 7 deletions(-) commit 13bce4821fb9d0bd2525e06d29025b6408bfdded Author: Jenny Derzhavetz Date: Wed Dec 9 14:12:05 2015 +0200 IB/isert: Declare correct flags when accepting a connection iser target does not support zero based virtual addresses and send with invalidate, so it should declare that it doesn't. Signed-off-by: Jenny Derzhavetz Signed-off-by: Sagi Grimberg Reviewed-by: Christoph Hellwig Signed-off-by: Doug Ledford drivers/infiniband/ulp/isert/ib_isert.c | 6 ++++++ 1 file changed, 6 insertions(+) commit c64941533f8bbb724d9f1cb99ba7c429d19a69a4 Author: Sagi Grimberg Date: Wed Dec 9 14:12:04 2015 +0200 IB/isert: Remove unused file iser_proto.h We don't need iser_proto.h anymore, remove it and move (non-protocol) declarations to ib_isert.h Signed-off-by: Sagi Grimberg Signed-off-by: Jenny Derzhavetz Reviewed-by: Christoph Hellwig Signed-off-by: Doug Ledford drivers/infiniband/ulp/isert/ib_isert.c | 1 - drivers/infiniband/ulp/isert/ib_isert.h | 32 ++++++++++++++++++++++++++++++ drivers/infiniband/ulp/isert/isert_proto.h | 31 ----------------------------- 3 files changed, 32 insertions(+), 32 deletions(-) commit d3cf81f9c805d599e91d1dcaebdd82ec17c299a6 Author: Sagi Grimberg Date: Wed Dec 9 14:12:03 2015 +0200 IB/iser,isert: Create and use new shared header The iser RDMA_CM negotiation protocol is shared by the initiator and the target, so have a shared header for the defines and structure. Move relevant items from the initiator and target headers. Signed-off-by: Sagi Grimberg Signed-off-by: Jenny Derzhavetz Reviewed-by: Christoph Hellwig Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iscsi_iser.h | 39 ++------------ drivers/infiniband/ulp/iser/iser_initiator.c | 8 +-- drivers/infiniband/ulp/iser/iser_verbs.c | 7 ++- drivers/infiniband/ulp/isert/ib_isert.c | 22 ++++---- drivers/infiniband/ulp/isert/ib_isert.h | 6 ++- drivers/infiniband/ulp/isert/isert_proto.h | 20 +------ include/scsi/iser.h | 78 ++++++++++++++++++++++++++++ 7 files changed, 106 insertions(+), 74 deletions(-) commit 1caa70d8a7c0e8427cb8381f29e759bda4ea2dcd Author: Jenny Derzhavetz Date: Wed Dec 9 14:12:02 2015 +0200 IB/iser: set intuitive values for mr_valid This parameter is described as "is mr valid indicator". In other words, it indicates whether memory registration is valid or not. So intuitive values would be: mr_valid=True, when memory registration is valid and mr_valid=False otherwise. Signed-off-by: Jenny Derzhavetz Signed-off-by: Sagi Grimberg Reviewed-by: Christoph Hellwig Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iser_memory.c | 8 ++++---- drivers/infiniband/ulp/iser/iser_verbs.c | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) commit b5f04b00f73d8f5d7755f5be7d05258641d99126 Author: Jenny Derzhavetz Date: Wed Dec 9 14:12:01 2015 +0200 IB/iser: Don't register memory for all immediate data writes When all the task data is sent as immediate data, we are allowed to use the local_dma_lkey as it is not sent to the wire. Signed-off-by: Jenny Derzhavetz Signed-off-by: Sagi Grimberg Reviewed-by: Christoph Hellwig Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iscsi_iser.h | 3 ++- drivers/infiniband/ulp/iser/iser_initiator.c | 5 +++-- drivers/infiniband/ulp/iser/iser_memory.c | 13 +++++++++---- 3 files changed, 14 insertions(+), 7 deletions(-) commit bfe066e256d55562b00c2d4897ae52e1545a084e Author: Sagi Grimberg Date: Wed Dec 9 14:12:00 2015 +0200 IB/iser: Reuse ib_sg_to_pages We have in iser iser_sg_to_page_vec which has exactly the same role as ib_sg_to_pages. Customize the page_vec to hold a fake MR so we can reuse ib_sg_to_pages. Signed-off-by: Sagi Grimberg Signed-off-by: Christoph Hellwig Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iscsi_iser.h | 5 +- drivers/infiniband/ulp/iser/iser_memory.c | 105 +++++++----------------------- 2 files changed, 25 insertions(+), 85 deletions(-) commit 08ff089b12182ee5c2233935df2e416db60083a6 Author: Roi Dayan Date: Wed Dec 9 14:11:59 2015 +0200 IB/iser: Fix module init not cleaning up on error flow Destroy workqueue on transport register error, also release kmem cache on workqueue allocation error. Signed-off-by: Roi Dayan Signed-off-by: Sagi Grimberg Reviewed-by: Christoph Hellwig Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iscsi_iser.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 46e741f4105320875f70b94abaa1e6b089c6c354 Author: Julia Lawall Date: Sun Nov 29 23:02:51 2015 +0100 IB/core: constify mmu_notifier_ops structures This mmu_notifier_ops structure is never modified, so declare it as const, like the other mmu_notifier_ops structures. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Reviewed-by: Haggai Eran Signed-off-by: Doug Ledford drivers/infiniband/core/umem_odp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2392a4cdcb8dfd9d04ab0192919a8c7e3f9e7b3e Author: Julia Lawall Date: Sat Nov 28 16:52:04 2015 +0100 IB/iser: constify iser_reg_ops structure The iser_reg_ops structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Acked-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iscsi_iser.h | 2 +- drivers/infiniband/ulp/iser/iser_memory.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit c419874c443a21ab75708bf0ddb74f2b0cf3c545 Author: Julia Lawall Date: Sat Nov 28 15:00:37 2015 +0100 RDMA/nes: constify nes_cm_ops structure The nes_cm_ops structure is never modified, so declare it as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Doug Ledford drivers/infiniband/hw/nes/nes_cm.c | 2 +- drivers/infiniband/hw/nes/nes_cm.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 88115fe7a0e45a200a6ae9d07e424c62fb13621a Author: Bodong Wang Date: Fri Dec 18 13:53:20 2015 +0200 IB/mlx5: report tx/rx checksum cap in query results This patch will report the tx/rx checksum cap for raw qp via the query device results. Signed-off-by: Bodong Wang Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/main.c | 4 ++++ 1 file changed, 4 insertions(+) commit ee37095044b85283c29cc4e7b254a7b30d411a9b Author: Leon Romanovsky Date: Thu Dec 17 09:31:53 2015 +0200 IB/mlx4: Convert kmalloc to kmalloc_array for checkpatch Convert kmalloc to be kmalloc_array to fix warnings below: WARNING: Prefer kmalloc_array over kmalloc with multiply + qp->sq.wrid = kmalloc(qp->sq.wqe_cnt * sizeof(u64), WARNING: Prefer kmalloc_array over kmalloc with multiply + qp->rq.wrid = kmalloc(qp->rq.wqe_cnt * sizeof(u64), WARNING: Prefer kmalloc_array over kmalloc with multiply + srq->wrid = kmalloc(srq->msrq.max * sizeof(u64), Signed-off-by: Leon Romanovsky Reviewed-by: Or Gerlitz Reviewed-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx4/qp.c | 4 ++-- drivers/infiniband/hw/mlx4/srq.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 9afc60dcc406b96d22dfd7e5986d2a9ee44812f0 Author: Leon Romanovsky Date: Thu Dec 17 09:31:52 2015 +0200 IB/mlx4: Suppress non-fatal memory allocations Failure in kmalloc memory allocations will throw a warning about it. Such warnings are not needed anymore, since in commit 0ef2f05c7e02 ("IB/mlx4: Use vmalloc for WR buffers when needed"), fallback mechanism from kmalloc() to __vmalloc() was added. Signed-off-by: Leon Romanovsky Reviewed-by: Or Gerlitz Reviewed-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx4/qp.c | 6 ++++-- drivers/infiniband/hw/mlx4/srq.c | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) commit da7525d2a9ae9d9d9af754441befcf2560f6cac3 Author: Eran Ben Elisha Date: Mon Dec 14 16:34:10 2015 +0200 IB/mlx5: Advertise atomic capabilities in query device In order to ensure IB spec atomic correctness in atomic operations, if HW is configured to host endianness, advertise IB_ATOMIC_HCA. if not, advertise IB_ATOMIC_NONE. Signed-off-by: Eran Ben Elisha Reviewed-by: Yishai Hadas Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/main.c | 28 +++++++++++++++++++++++++++- include/linux/mlx5/driver.h | 5 +++++ 2 files changed, 32 insertions(+), 1 deletion(-) commit f91e6d8941bf450f7842dfc1ed80e948aaa65e8c Author: Eran Ben Elisha Date: Mon Dec 14 16:34:09 2015 +0200 net/mlx5_core: Add setting ATOMIC endian mode HW is capable of 2 requestor endianness modes for standard 8 Bytes atomic: BE (0x0) and host endianness (0x1). Read the supported modes from hca atomic capabilities and configure HW to host endianness mode if supported. Signed-off-by: Eran Ben Elisha Reviewed-by: Yishai Hadas Signed-off-by: Doug Ledford drivers/net/ethernet/mellanox/mlx5/core/main.c | 57 +++++++++++++++++++++++++- include/linux/mlx5/mlx5_ifc.h | 22 ++++++---- 2 files changed, 70 insertions(+), 9 deletions(-) commit 67f1aee6f45059fd6b0f5b0ecb2c97ad0451f6b3 Author: Hariprasad S Date: Fri Dec 11 13:59:17 2015 +0530 iw_cxgb3: Fix incorrectly returning error on success The cxgb3_*_send() functions return NET_XMIT_ values, which are positive integers values. So don't treat positive return values as an error. Signed-off-by: Steve Wise Signed-off-by: Hariprasad Shenai Signed-off-by: Doug Ledford drivers/infiniband/hw/cxgb3/iwch_cm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c5dfb000b90442e52f735bef4c2fc3f67783eaeb Author: Hariprasad S Date: Fri Dec 11 13:02:01 2015 +0530 iw_cxgb4: Pass qid range to user space driver Enhances the t4_dev_status_page to pass the qid start and size attributes from iw_cxgb4 to libcxgb4. Bump the ABI Version to 3 -> To allow libcxgb4 to detect old drivers and revert to the old way of computing the qid ranges. Signed-off-by: Hariprasad Shenai Signed-off-by: Steve Wise Signed-off-by: Doug Ledford drivers/infiniband/hw/cxgb4/device.c | 4 ++++ drivers/infiniband/hw/cxgb4/t4.h | 7 +++++++ drivers/infiniband/hw/cxgb4/user.h | 2 +- 3 files changed, 12 insertions(+), 1 deletion(-) commit 0d6ed314de18b65a8063cbed450a2ca0c6a16c52 Author: Dean Luick Date: Thu Dec 10 16:52:30 2015 -0500 IB/mad: Ensure fairness in ib_mad_completion_handler It was found that when a process was rapidly sending MADs other processes could be hung in their unregister calls. This would happen when process A was injecting packets fast enough that the single threaded workqueue was never exiting ib_mad_completion_handler. Therefore when process B called flush_workqueue via the unregister call it would hang until process A stopped sending MADs. The fix is to periodically reschedule ib_mad_completion_handler after processing a large number of completions. The number of completions chosen was decided based on the defaults for the recv queue size. However, it was kept fixed such that increasing those queue sizes would not adversely affect fairness in the future. Reviewed-by: Ira Weiny Signed-off-by: Dean Luick Signed-off-by: Doug Ledford drivers/infiniband/core/mad.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 051f263098a90d208e2d20251bfd4834bc783214 Author: Leon Romanovsky Date: Sun Dec 20 12:16:11 2015 +0200 IB/mlx5: Add driver cross-channel support Add support of cross-channel functionality to mlx5 driver. This includes ability to ignore overrun for CQ which intended for cross-channel, export device capability and configure the QP to be sync master/slave queues. The cross-channel enabled QP supports combination of three possible properties: * WQE processing on the receive queue of this QP * WQE processing on the send queue of this QP * WQE are supported on the send queue Reviewed-by: Sagi Grimberg Signed-off-by: Leon Romanovsky Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/cq.c | 7 ++++- drivers/infiniband/hw/mlx5/main.c | 3 ++ drivers/infiniband/hw/mlx5/mlx5_ib.h | 16 +++++++++++ drivers/infiniband/hw/mlx5/qp.c | 54 +++++++++++++++++++++++++++++------- include/linux/mlx5/qp.h | 3 ++ 5 files changed, 72 insertions(+), 11 deletions(-) commit 8a06ce59a4cd034c52c59c44ff6b0785a3969409 Author: Leon Romanovsky Date: Sun Dec 20 12:16:10 2015 +0200 IB/core: Add cross-channel support The cross-channel feature allows to execute WQEs that involve synchronization of I/O operations’ on different QPs. This capability enables to program complex flows with a single function call, hereby significantly reducing overhead associated with I/O processing. Cross-channel operations support is indicated by HCA capability information. The queue pairs can be configured to work as a “sync master queue” or “sync slave queues”. The added flags are: 1. Device capability flag IB_DEVICE_CROSS_CHANNEL for the devices that can perform cross-channel operations. 2. CQ property flag IB_CQ_FLAGS_IGNORE_OVERRUN to disable CQ overrun check. This check is useless in cross-channel scenario. 3. QP property flags to indicate if queues are slave or master: * IB_QP_CREATE_MANAGED_SEND indicates that posted send work requests will not be executed immediately and requires enabling. * IB_QP_CREATE_MANAGED_RECV indicates that posted receive work requests will not be executed immediately and requires enabling. * IB_QP_CREATE_CROSS_CHANNEL declares the QP to work in cross-channel mode. If IB_QP_CREATE_MANAGED_SEND and IB_QP_CREATE_MANAGED_RECV are not provided, this QP will be sync master queue, else it will be sync slave. Reviewed-by: Sagi Grimberg Signed-off-by: Leon Romanovsky Signed-off-by: Doug Ledford drivers/infiniband/core/uverbs_cmd.c | 5 ++++- include/rdma/ib_verbs.h | 11 +++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) commit 7ca0bc53652382529b1cc1c39987cf93084d5828 Author: Leon Romanovsky Date: Sun Dec 20 12:16:09 2015 +0200 IB/core: Align coding style of ib_device_cap_flags structure Modify enum ib_device_cap_flags such that other patches which add new enum values pass strict checkpatch.pl checks. Reviewed-by: Sagi Grimberg Signed-off-by: Leon Romanovsky Signed-off-by: Doug Ledford include/rdma/ib_verbs.h | 60 ++++++++++++++++++++++++------------------------- 1 file changed, 30 insertions(+), 30 deletions(-) commit d69e3bcf79764ed833e0cc6e0645dc87589cec22 Author: Matan Barak Date: Tue Dec 15 20:30:13 2015 +0200 IB/mlx5: Mmap the HCA's core clock register to user-space In order to read the HCA's current cycles register, we need to map it to user-space. Add support to map this register via mmap command. Signed-off-by: Matan Barak Reviewed-by: Moshe Lazer Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/main.c | 28 ++++++++++++++++++++++++++++ drivers/infiniband/hw/mlx5/mlx5_ib.h | 4 +++- 2 files changed, 31 insertions(+), 1 deletion(-) commit b368d7cb8ceb77f481b066bd8be5fada82da7301 Author: Matan Barak Date: Tue Dec 15 20:30:12 2015 +0200 IB/mlx5: Add hca_core_clock_offset to udata in init_ucontext Pass hca_core_clock_offset to user-space is mandatory in order to let the user-space read the free-running clock register from the right offset in the memory mapped page. Passing this value is done by changing the vendor's command and response of init_ucontext to be in extensible form. Signed-off-by: Matan Barak Reviewed-by: Moshe Lazer Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/main.c | 37 ++++++++++++++++++++++++++++-------- drivers/infiniband/hw/mlx5/mlx5_ib.h | 3 +++ drivers/infiniband/hw/mlx5/user.h | 12 ++++++++++-- include/linux/mlx5/device.h | 7 +++++-- 4 files changed, 47 insertions(+), 12 deletions(-) commit 7c60bcbb68122b39fe3e92143abce01be75f3fa6 Author: Matan Barak Date: Tue Dec 15 20:30:11 2015 +0200 IB/mlx5: Add support for hca_core_clock and timestamp_mask Reporting the hca_core_clock (in kHZ) and the timestamp_mask in query_device extended verb. timestamp_mask is used by users in order to know what is the valid range of the raw timestamps, while hca_core_clock reports the clock frequency that is used for timestamps. Signed-off-by: Matan Barak Reviewed-by: Moshe Lazer Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/main.c | 2 ++ include/linux/mlx5/mlx5_ifc.h | 9 ++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) commit 301a721e1fcb890afc29997f46de9561686ed391 Author: Matan Barak Date: Tue Dec 15 20:30:10 2015 +0200 IB/core: Add ib_is_udata_cleared Extending core and vendor verb commands require us to check that the unknown part of the user's given command is all zeros. Adding ib_is_udata_cleared in order to do so. Signed-off-by: Matan Barak Reviewed-by: Haggai Eran Signed-off-by: Doug Ledford include/rdma/ib_verbs.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit 972ecb82137949be9649c7184782d00ff102a212 Author: Matan Barak Date: Tue Dec 15 20:30:09 2015 +0200 IB/mlx5: Add create_cq extended command In order to create a CQ that supports timestamp, mlx5 needs to support the extended create CQ command with the timestamp flag. Signed-off-by: Matan Barak Reviewed-by: Eli Cohen Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/cq.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 3045e409e403b35ea4e30393a97cb913c745b38d Author: Hongtao Jia Date: Tue Nov 24 14:52:47 2015 +0800 powerpc/mpc85xx: Add TMU device tree support for T1023/T1024 Also add nodes and properties for thermal management support. Meanwhile preprocessor support is needed using thermal of framework. Signed-off-by: Jia Hongtao Reviewed-by: Scott Wood Signed-off-by: Scott Wood arch/powerpc/boot/dts/fsl/t1023rdb.dts | 2 +- arch/powerpc/boot/dts/fsl/t1023si-post.dtsi | 86 +++++++++++++++++++++++++++++ arch/powerpc/boot/dts/fsl/t1024qds.dts | 2 +- arch/powerpc/boot/dts/fsl/t1024rdb.dts | 2 +- arch/powerpc/boot/dts/fsl/t1024si-post.dtsi | 2 +- arch/powerpc/boot/dts/fsl/t102xsi-pre.dtsi | 2 + 6 files changed, 92 insertions(+), 4 deletions(-) commit be489a3936349c5f68c8001f31580d697c474b98 Author: Hongtao Jia Date: Tue Nov 24 14:52:46 2015 +0800 powerpc/mpc85xx: Add TMU device tree support for T1040/T1042 Also add nodes and properties for thermal management support. Meanwhile preprocessor support is needed using thermal of framework. Signed-off-by: Jia Hongtao Reviewed-by: Scott Wood Signed-off-by: Scott Wood arch/powerpc/boot/dts/fsl/t1040d4rdb.dts | 2 +- arch/powerpc/boot/dts/fsl/t1040qds.dts | 2 +- arch/powerpc/boot/dts/fsl/t1040rdb.dts | 2 +- arch/powerpc/boot/dts/fsl/t1040si-post.dtsi | 94 +++++++++++++++++++++++++++++ arch/powerpc/boot/dts/fsl/t1042d4rdb.dts | 2 +- arch/powerpc/boot/dts/fsl/t1042qds.dts | 2 +- arch/powerpc/boot/dts/fsl/t1042rdb.dts | 2 +- arch/powerpc/boot/dts/fsl/t1042rdb_pi.dts | 2 +- arch/powerpc/boot/dts/fsl/t1042si-post.dtsi | 2 +- arch/powerpc/boot/dts/fsl/t104xsi-pre.dtsi | 4 ++ 10 files changed, 106 insertions(+), 8 deletions(-) commit 2330770797afa822652b541d81a17f0e04bcf598 Author: Hongtao Jia Date: Tue Nov 24 14:52:44 2015 +0800 dt-bindings: Add QorIQ TMU thermal bindings Add bindings documentation for TMU (Thermal Monitoring Unit) on QorIQ platform. Signed-off-by: Jia Hongtao Reviewed-by: Scott Wood Acked-by: Rob Herring Signed-off-by: Scott Wood .../devicetree/bindings/thermal/qoriq-thermal.txt | 63 ++++++++++++++++++++++ 1 file changed, 63 insertions(+) commit 6a29a42bb4f94355f463b680cc831f9773262264 Merge: aeb7ed1 10aa3b7 Author: David S. Miller Date: Wed Dec 23 22:34:45 2015 -0500 Merge branch 'cxgb4-T6-update' Hariprasad Shenai says: ==================== Update support for T6 adapters This patch changes updates the various code changes related to register, stats and hardware related changes for T6 family of adapters. This patch series has been created against net-next tree and includes patches on cxgb4 and cxgb4vf 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 commit 10aa3b78e9446b6d31262671dc1faed8d950d090 Author: Hariprasad Shenai Date: Wed Dec 23 22:47:19 2015 +0530 cxgb4vf: Update to 128 byte mailbox size for T6 adapter Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4vf/t4vf_defs.h | 1 + drivers/net/ethernet/chelsio/cxgb4vf/t4vf_hw.c | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) commit 2216d01432cb1589d1bfbd2722f2ec05cb26ea51 Author: Hariprasad Shenai Date: Wed Dec 23 22:47:18 2015 +0530 cxgb4: Update SGE context congestion map change for T6 adapter SGE context congestion map changed from 4 to 8 priority per port in T6 as there are only 2 channels. Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 1 + drivers/net/ethernet/chelsio/cxgb4/sge.c | 7 ++++--- drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 9 +++++++++ 3 files changed, 14 insertions(+), 3 deletions(-) commit 115b56af88b538147cf241d0f75a370a73009ed9 Author: Hariprasad Shenai Date: Wed Dec 23 22:47:17 2015 +0530 cxgb4: Update mps_tcam output to include T6 fields In T6, MPS classification has a 512 deep TCAM to do the match lookup. Each entry has 80x2b sets containing 48 bit MAC address, port number, VLAN Valid/ID, VNI, lookup type (outer or inner packet header). [71:48] bit locations are overloaded for outer vs. inner lookup types. Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c | 100 +++++++++++++++++---- drivers/net/ethernet/chelsio/cxgb4/t4_regs.h | 24 +++++ 2 files changed, 105 insertions(+), 19 deletions(-) commit 6df397539cb0200b237e9b7b1665d26d5e01d01a Author: Hariprasad Shenai Date: Wed Dec 23 22:47:16 2015 +0530 cxgb4: Update correct encoding of SGE Ingress DMA States for T6 adapter Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 59 ++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) commit e9faeab8d48fc8962e4a244a6097048acebde47b Author: Hariprasad Shenai Date: Wed Dec 23 22:47:15 2015 +0530 cxgb4: Update Congestion Channel map for T6 adapter Updating Congestion Channel/Priority Map in Congestion Manager Context for T6. In T6 port 0 is mapped to channel 0 and port 1 is mapped to channel 1. For 2 port T4/T5 adapter, port 0 is mapped to channel 0,1 and port 1 is mapped to channel 2,3 Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 676d6a753066e9b5ae6c0a6ce8ec8cf9dabc4352 Author: Hariprasad Shenai Date: Wed Dec 23 22:47:14 2015 +0530 cxgb4: Update register range and SGE registers for T6 adapter Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 5 +++-- drivers/net/ethernet/chelsio/cxgb4/sge.c | 15 +++++++++++++-- drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 16 +++++++++++----- drivers/net/ethernet/chelsio/cxgb4/t4_regs.h | 3 +++ 4 files changed, 30 insertions(+), 9 deletions(-) commit acac596286bcadda964d0e15dbbd8bdebedcaa41 Author: Hariprasad Shenai Date: Wed Dec 23 22:47:13 2015 +0530 cxgb4/cxgb4vf: Update Ingress padding boundary values for T6 adapter Ingress padding boundary values got changed for T6. T5: 0=32B 1=64B 2=128B 3=256B 4=512B 5=1024B 6=2048B 7=4096B T6: 0=8B 1=16B 2=32B 3=64B 4=128B 5=128B 6=256B 7=512B Updating the driver to set the correct boundary values in SGE_CONTROL to 32B. Also, need to take care of this fl alignment change when calculating the next packet offset. Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 1 + drivers/net/ethernet/chelsio/cxgb4/sge.c | 33 +------------- drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 62 +++++++++++++++++++++++++- drivers/net/ethernet/chelsio/cxgb4/t4_values.h | 3 ++ drivers/net/ethernet/chelsio/cxgb4vf/sge.c | 11 ++++- 5 files changed, 76 insertions(+), 34 deletions(-) commit 44588560d95c105cc9dfa82180a6f542adea9ac9 Author: Hariprasad Shenai Date: Wed Dec 23 22:47:12 2015 +0530 cxgb4: Update pm_stats for T6 adapter family Updated pm_stats code to display input FIFO wait (index 5) and read latency (index 7) counters for T6 adapters Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 1 + drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c | 30 ++++++++++++++++++++-- drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 7 +++-- drivers/net/ethernet/chelsio/cxgb4/t4_hw.h | 1 + 4 files changed, 35 insertions(+), 4 deletions(-) commit e894d720a5c501c4a2a01ae64f732046d1f48b76 Author: Hariprasad Shenai Date: Wed Dec 23 22:47:11 2015 +0530 cxgb4: Pass correct argument to t4_link_l1cfg() Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit aeb7ed14fe5df3a4ce019c8d4ce0b2922a091196 Author: Geliang Tang Date: Wed Dec 23 20:42:21 2015 +0800 bridge: use kobj_to_dev instead of to_dev kobj_to_dev has been defined in linux/device.h, so I replace to_dev with it. Signed-off-by: Geliang Tang Signed-off-by: David S. Miller net/bridge/br_sysfs_br.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 8099c9edfd96d91b1f01b31ca5270ba3bceb0c9b Author: Geliang Tang Date: Wed Dec 23 20:42:20 2015 +0800 bonding: drop unused to_dev macro in bond_sysfs.c to_dev is not used anymore so drop it. Signed-off-by: Geliang Tang Signed-off-by: David S. Miller drivers/net/bonding/bond_sysfs.c | 1 - 1 file changed, 1 deletion(-) commit f5e2ed022dff60d9023d997ed719531129cc1365 Author: Andrew Lunn Date: Wed Dec 23 13:23:17 2015 +0100 dsa: mv88e6xxx: Add Second back of statistics The 6320 family of switch chips has a second bank for statistics, but is missing three statistics in the port registers. Generalise and extend the code: * adding a field to the statistics table indicating the bank/register set where each statistics is. * add a function indicating if an individual statistics is available on this device * calculate at run time the sset_count. * return strings based on the available statistics of the device * return statistics based on the available statistics of the device * Add support for reading from the second bank. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 230 +++++++++++++++++++++++--------------------- drivers/net/dsa/mv88e6xxx.h | 8 ++ 2 files changed, 129 insertions(+), 109 deletions(-) commit ff5756d0d324b8215c3a498d398071094462f395 Merge: 2e4c8ba 09a0420 Author: David S. Miller Date: Wed Dec 23 22:06:39 2015 -0500 Merge branch 'sfc-vf' Bert Kenward says: ==================== sfc: additional virtual function support​ This introduces the client side of a mechanism to defer authorisation of operations, for example multicast subscription. Although primarily aimed at SRIOV VFs this can also apply to unprivileged PFs. Also handle reboot ordering corner cases better and reduce the level of some logging. v2: remove #ifdef DEBUG around new WARN_ON in mcdi.c. ==================== Signed-off-by: David S. Miller commit 09a04204f041caff7717a001a16c376f73be731b Author: Bert Kenward Date: Wed Dec 23 08:58:15 2015 +0000 sfc: Downgrade or remove some error messages Depending on configuration the NIC may return errors for unprivileged functions and/or VFs. Where these are expected and handled, reduce the level of any output. Signed-off-by: Bert Kenward Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 20 ++++++++++++++------ drivers/net/ethernet/sfc/efx.c | 7 ++++--- 2 files changed, 18 insertions(+), 9 deletions(-) commit 8c578368e862f6e3055ce5435942e31d72b1cbb2 Author: Tomáš Pilař Date: Wed Dec 23 08:57:51 2015 +0000 sfc: Downgrade EPERM messages from MCDI to debug When running in an unprivileged function we expect some MC commands to fail with permission errors. To avoid log spew downgrade these to debug only. Signed-off-by: Bert Kenward Signed-off-by: David S. Miller drivers/net/ethernet/sfc/mcdi.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit e65a510918d72a1606897186386123af001045ab Author: Bert Kenward Date: Wed Dec 23 08:57:36 2015 +0000 sfc: Make failed filter removal less noisy There are situations - mostly reset related - where our view of the filter table differs from the hardware. In this case we may try and remove filters that aren't actually installed. This isn't that interesting in most situations, so downgrade the logging. Signed-off-by: Bert Kenward Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 48 ++++++++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 17 deletions(-) commit acd43a9097f0f2bb806faeb292b49224ed91fcfb Author: Bert Kenward Date: Wed Dec 23 08:57:18 2015 +0000 sfc: Handle MCDI proxy authorisation For unprivileged functions operations can be authorised by an admin function. Extra steps are introduced to the MCDI protocol in this situation - the initial response from the MCDI tells us that the operation has been deferred, and we must retry when told. We then receive an event telling us to retry. Note that this provides only the functionality for the unprivileged functions, not the handling of the administrative side. Signed-off-by: Bert Kenward Signed-off-by: David S. Miller drivers/net/ethernet/sfc/mcdi.c | 154 +++++++++++++++++++++++++++++++++++++--- drivers/net/ethernet/sfc/mcdi.h | 9 +++ 2 files changed, 155 insertions(+), 8 deletions(-) commit ac28d179b8d9dd444490c078826bf33f735c2285 Author: Bert Kenward Date: Wed Dec 23 08:56:40 2015 +0000 sfc: Retry MCDI after NO_EVB_PORT error on a VF After reboot the vswitch configuration from the PF may not be complete before the VF attempts to restore filters. In that case we see NO_EVB_PORT errors from the MC. Retry up to a time limit or until a different result is seen. Signed-off-by: Bert Kenward Signed-off-by: David S. Miller drivers/net/ethernet/sfc/mcdi.c | 99 ++++++++++++++++++++++++++++++++++------- drivers/net/ethernet/sfc/mcdi.h | 1 + 2 files changed, 85 insertions(+), 15 deletions(-) commit 20f8e032e6dc7053ab803f488e2a8839cd2f69a6 Merge: ade1ba7 5b726e0 Author: Dave Airlie Date: Thu Dec 24 08:08:47 2015 +1000 Backmerge drm-fixes merge into Linus's tree into drm-next. This merges '5b726e06d6e8309e5c9ef4109a32caf27c71dfc8' into drm-next Just to resolve some merges to make Daniel's life easier. Signed-off-by: DAve Airlie commit 140e639f1a3ff052c3921818e2120fdfa4427681 Author: Chris Mason Date: Wed Dec 23 13:30:51 2015 -0800 btrfs: fix warning on uninit variable in btrfs_finish_chunk_alloc map->num_stripes really can't be zero, but just in case. Signed-off-by: Chris Mason fs/btrfs/volumes.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f0f76413d332d74446d0ee9535a29a900c4f63e4 Merge: a53fe25 f7d3d2f Author: Chris Mason Date: Wed Dec 23 13:29:09 2015 -0800 Merge branch 'freespace-4.5' into for-linus-4.5 commit a53fe2576955171449711933242d8fb1c13a7d5c Merge: bb9d687 e44081e Author: Chris Mason Date: Wed Dec 23 13:28:35 2015 -0800 Merge branch 'for-chris-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/fdmanana/linux into for-linus-4.5 commit bb9d687618695e8291f1e6209eb3211d231f97bb Merge: 13d5d15 cd716d8 Author: Chris Mason Date: Wed Dec 23 13:17:42 2015 -0800 Merge branch 'dev/simplify-set-bit' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux into for-linus-4.5 Signed-off-by: Chris Mason commit 13d5d15d6301f8e69a8fe8500f6ef732bfd44bd1 Merge: afa427c 39a27ec Author: Chris Mason Date: Wed Dec 23 13:11:27 2015 -0800 Merge branch 'dev/gfp-flags' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux into for-linus-4.5 commit afa427cf9d6ef64e73df68882cbabde0e6a61639 Merge: 4ef7675 35de6db Author: Chris Mason Date: Wed Dec 23 13:10:26 2015 -0800 Merge branch 'cleanup/misc-simplify' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux into for-linus-4.5 commit a915e30dd26ea5f3cc2e2c044aba38ee5973d3fa Merge: ce6dd26 b0158bb Author: Michael Turquette Date: Wed Dec 23 13:08:56 2015 -0800 Merge branch 'clk-rockchip' into clk-next commit 479f6a7fc64722d82e24db15b2d6ae7f2882377a Author: Raghav Dogra Date: Fri Oct 30 11:52:02 2015 +0530 powerpc/fsl_lbc: removal of dead code The condition check is not used. Signed-off-by: Raghav Dogra Signed-off-by: Scott Wood arch/powerpc/sysdev/fsl_lbc.c | 2 -- 1 file changed, 2 deletions(-) commit 145d9c5410324a6f64d8847f115e5f4fdfddce39 Author: Christoph Lameter Date: Mon Dec 21 08:20:29 2015 -0600 IB/core: Display extended counter set if available Check if the extended counters are available and if so create the proper extended and additional counters. Signed-off-by: Christoph Lameter Reviewed-by: Ira Weiny Reviewed-by: Hal Rosenstock Signed-off-by: Doug Ledford drivers/infiniband/core/sysfs.c | 110 ++++++++++++++++++++++++++++++++++++++-- include/rdma/ib_pma.h | 1 + 2 files changed, 108 insertions(+), 3 deletions(-) commit b2788ce575df94fb9b03e546980c4f916b24ef76 Author: Christoph Lameter Date: Mon Dec 21 08:20:28 2015 -0600 IB/core: Specify attribute_id in port_table_attribute Add the attr_id on port_table_attribute since we will have to add a different port_table_attribute for the extended attribute soon. Reviewed-by: Hal Rosenstock Signed-off-by: Christoph Lameter Reviewed-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/sysfs.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 35c4cbb178119bcacc720f54d32711da020805d5 Author: Christoph Lameter Date: Mon Dec 21 08:20:27 2015 -0600 IB/core: Create get_perf_mad function in sysfs.c Create a new function to retrieve performance management data from the existing code in get_pma_counter(). Reviewed-by: Hal Rosenstock Signed-off-by: Christoph Lameter Reviewed-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/sysfs.c | 62 ++++++++++++++++++++++++++--------------- 1 file changed, 40 insertions(+), 22 deletions(-) commit b0158bb27c7b6e9843f541c17b24dbd964b76db6 Author: Xing Zheng Date: Tue Dec 22 22:28:01 2015 +0100 clk: rockchip: rk3036: include downstream muxes into fractional dividers Use the newly introduced possibility to combine the fractional dividers with their downstream muxes for all fractional dividers on currently supported RK3036 SoCs. Signed-off-by: Xing Zheng Signed-off-by: Caesar Wang Signed-off-by: Heiko Stuebner Signed-off-by: Michael Turquette drivers/clk/rockchip/clk-rk3036.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) commit 2eb8c7104c648ad4bfae1f5333f98c09522149b5 Author: Heiko Stuebner Date: Tue Dec 22 22:27:58 2015 +0100 clk: add flag for clocks that need to be enabled on rate changes Some clocks need to be enabled to accept rate changes. This patch adds a new flag CLK_SET_RATE_UNGATE that lets clk_change_rate enable the clock before trying to change the rate and disable it again afterwards. This of course doesn't effect clocks that are already running at that point, as their refcount will only temporarily increase. Signed-off-by: Heiko Stuebner Tested-by: Sjoerd Simons Reviewed-by: Sjoerd Simons Signed-off-by: Michael Turquette drivers/clk/clk.c | 18 ++++++++++++++++++ include/linux/clk-provider.h | 1 + 2 files changed, 19 insertions(+) commit 84a8c541664b037a4d1fdc3151466b4ec45c37a5 Author: Sjoerd Simons Date: Tue Dec 22 22:28:02 2015 +0100 clk: rockchip: Allow the RK3288 SPDIF clocks to change their parent The clock branches leading to sclk_spdif and sclk_spdif_8ch on RK3288 SoCs only feed those clocks, allow those clocks to change their parents all the way up the hierarchy. Signed-off-by: Sjoerd Simons Signed-off-by: Heiko Stuebner Signed-off-by: Michael Turquette drivers/clk/rockchip/clk-rk3288.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 66746420898984a273ea08fa5926bd1640eaed3e Author: Heiko Stuebner Date: Tue Dec 22 22:28:00 2015 +0100 clk: rockchip: include downstream muxes into fractional dividers Use the newly introduced possibility to combine the fractional dividers with their downstream muxes for all fractional dividers on currently supported Rockchip SoCs. Signed-off-by: Heiko Stuebner Tested-by: Sjoerd Simons Reviewed-by: Sjoerd Simons Signed-off-by: Michael Turquette drivers/clk/rockchip/clk-rk3188.c | 80 +++++++++++++++++++-------------------- drivers/clk/rockchip/clk-rk3288.c | 66 ++++++++++++++++---------------- 2 files changed, 74 insertions(+), 72 deletions(-) commit 8ca1ca8f6039f19673fb61552f276b848539dbd6 Author: Heiko Stuebner Date: Tue Dec 22 22:27:59 2015 +0100 clk: rockchip: handle mux dependency of fractional dividers The fractional dividers of Rockchip SoCs contain an "auto-gating-feature" that requires the downstream mux to actually point to the fractional divider and the fractional divider gate to be enabled, for it to really accept changes to the divider ratio. The downstream muxes themselfs are not generic enough to include them directly into the fractional divider, as they have varying sources of parent clocks including not only clocks related to the fractional dividers but other clocks as well. To solve this, allow our clock branches to specify direct child clock- branches in the new child property, let the fractional divider register its downstream mux through this and add a clock notifier that temporarily switches the mux setting when it notices rate changes to the fractional divider. Signed-off-by: Heiko Stuebner Tested-by: Sjoerd Simons Reviewed-by: Sjoerd Simons Signed-off-by: Michael Turquette drivers/clk/rockchip/clk.c | 137 ++++++++++++++++++++++++++++++++++++++++----- drivers/clk/rockchip/clk.h | 19 +++++++ 2 files changed, 142 insertions(+), 14 deletions(-) commit c09befcbb2839420a13926ce04cde15d92ea338d Author: Or Gerlitz Date: Wed Dec 23 18:30:58 2015 +0200 MAINTAINERS: Assign maintainer to Mellanox mlx4 core and IB drivers The driver was written originally by Roland Dreier, currently there's no official maintainer. Yishai steps in as maintainer. Signed-off-by: Or Gerlitz Cc: Roland Dreier Signed-off-by: Doug Ledford MAINTAINERS | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit 595a4d8fc91890db170c27329bd9402f0206a917 Author: Or Gerlitz Date: Wed Dec 23 18:30:57 2015 +0200 MAINTAINERS: Assign new maintainers to Mellanox mlx5 core and IB drivers Matan and Leon step in as co-maintainers to replace Eli Cohen who wrote and maintained the core and IB drivers. Signed-off-by: Or Gerlitz Signed-off-by: Doug Ledford MAINTAINERS | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit ab67ed8de0250e9ad7956ff4d98c3c98858b6c3c Author: Christoph Hellwig Date: Wed Dec 23 19:12:54 2015 +0100 IB: remove the write-only usecnt field from struct ib_mr Signed-off-by: Christoph Hellwig Reviewed-by: Bart Van Assche Reviewed-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/core/uverbs_cmd.c | 6 ------ drivers/infiniband/core/verbs.c | 8 +------- drivers/infiniband/hw/cxgb3/iwch_provider.c | 3 --- drivers/infiniband/hw/cxgb4/mem.c | 3 --- drivers/staging/rdma/ehca/ehca_mrmw.c | 1 - include/rdma/ib_verbs.h | 1 - 6 files changed, 1 insertion(+), 21 deletions(-) commit 7cf9ff643b7f709173ca6ff6376fdff5b8d16124 Author: Christoph Hellwig Date: Wed Dec 23 19:12:53 2015 +0100 IB: remove the struct ib_phys_buf definition Signed-off-by: Christoph Hellwig Reviewed-by: Sagi Grimberg Reviewed-by: Jason Gunthorpe [core] Reviewed-by: Steve Wise Signed-off-by: Doug Ledford include/rdma/ib_verbs.h | 5 ----- 1 file changed, 5 deletions(-) commit 52f00dd3922810085f16cfc956a0c04671cb6513 Author: Christoph Hellwig Date: Wed Dec 23 19:12:52 2015 +0100 ehca: stop using struct ib_phys_buf And simplify the calling convention for full-memory registrations. Signed-off-by: Christoph Hellwig Reviewed-by: Sagi Grimberg Reviewed-by: Jason Gunthorpe [core] Reviewed-by: Steve Wise Signed-off-by: Doug Ledford drivers/staging/rdma/ehca/ehca_classes.h | 5 +- drivers/staging/rdma/ehca/ehca_mrmw.c | 94 +++++++++++++++----------------- 2 files changed, 46 insertions(+), 53 deletions(-) commit 33f0921934981f3489dd635095af73687a716747 Author: Christoph Hellwig Date: Wed Dec 23 19:12:51 2015 +0100 amso1100: fold c2_reg_phys_mr into c2_get_dma_mr Signed-off-by: Christoph Hellwig Reviewed-by: Sagi Grimberg Reviewed-by: Jason Gunthorpe [core] Reviewed-by: Steve Wise Signed-off-by: Doug Ledford drivers/staging/rdma/amso1100/c2_provider.c | 71 ++++++----------------------- 1 file changed, 14 insertions(+), 57 deletions(-) commit f64054d850720cf60dc4365249cfa0c9fd03ed65 Author: Christoph Hellwig Date: Wed Dec 23 19:12:50 2015 +0100 nes: simplify nes_reg_phys_mr calling conventions Just pass and address/size pair instead of an ib_phys_buf array. Signed-off-by: Christoph Hellwig Reviewed-by: Sagi Grimberg Reviewed-by: Jason Gunthorpe [core] Reviewed-by: Steve Wise Signed-off-by: Doug Ledford drivers/infiniband/hw/nes/nes_cm.c | 10 +-- drivers/infiniband/hw/nes/nes_verbs.c | 140 ++++++++-------------------------- drivers/infiniband/hw/nes/nes_verbs.h | 3 +- 3 files changed, 37 insertions(+), 116 deletions(-) commit 35cb3fc0260ad3d6522771f460c598d6740d2304 Author: Christoph Hellwig Date: Wed Dec 23 19:12:49 2015 +0100 cxgb3: simplify iwch_get_dma_wr Fold simplified versions of build_phys_page_list and iwch_register_phys_mem into iwch_get_dma_wr now that no other callers are left. Signed-off-by: Christoph Hellwig Reviewed-by: Sagi Grimberg Reviewed-by: Jason Gunthorpe [core] Reviewed-by: Steve Wise Signed-off-by: Doug Ledford drivers/infiniband/hw/cxgb3/iwch_mem.c | 71 ---------------------------- drivers/infiniband/hw/cxgb3/iwch_provider.c | 73 ++++++++++------------------- drivers/infiniband/hw/cxgb3/iwch_provider.h | 8 ---- 3 files changed, 26 insertions(+), 126 deletions(-) commit feb7c1e38bccfd18cc06677cb648ed2340788fe8 Author: Christoph Hellwig Date: Wed Dec 23 19:12:48 2015 +0100 IB: remove in-kernel support for memory windows Remove the unused ib_allow_mw and ib_bind_mw functions, remove the unused IB_WR_BIND_MW and IB_WC_BIND_MW opcodes and move ib_dealloc_mw into the uverbs module. Signed-off-by: Christoph Hellwig Reviewed-by: Sagi Grimberg Reviewed-by: Jason Gunthorpe [core] Reviewed-by: Steve Wise Signed-off-by: Doug Ledford Documentation/infiniband/core_locking.txt | 2 - drivers/infiniband/core/uverbs.h | 2 + drivers/infiniband/core/uverbs_cmd.c | 4 +- drivers/infiniband/core/uverbs_main.c | 13 ++++- drivers/infiniband/core/verbs.c | 36 ------------- drivers/infiniband/hw/cxgb3/iwch_cq.c | 4 -- drivers/infiniband/hw/cxgb3/iwch_provider.c | 1 - drivers/infiniband/hw/cxgb3/iwch_provider.h | 3 -- drivers/infiniband/hw/cxgb3/iwch_qp.c | 82 ---------------------------- drivers/infiniband/hw/cxgb4/cq.c | 3 -- drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 2 - drivers/infiniband/hw/cxgb4/provider.c | 1 - drivers/infiniband/hw/cxgb4/qp.c | 5 -- drivers/infiniband/hw/mlx4/cq.c | 3 -- drivers/infiniband/hw/mlx4/main.c | 1 - drivers/infiniband/hw/mlx4/mlx4_ib.h | 2 - drivers/infiniband/hw/mlx4/mr.c | 22 -------- drivers/infiniband/hw/mlx4/qp.c | 27 ---------- drivers/infiniband/hw/mlx5/cq.c | 3 -- drivers/infiniband/hw/mthca/mthca_cq.c | 3 -- drivers/infiniband/hw/nes/nes_verbs.c | 75 -------------------------- drivers/staging/rdma/amso1100/c2_cq.c | 3 -- drivers/staging/rdma/ehca/ehca_iverbs.h | 3 -- drivers/staging/rdma/ehca/ehca_main.c | 1 - drivers/staging/rdma/ehca/ehca_mrmw.c | 12 ----- drivers/staging/rdma/ehca/ehca_reqs.c | 1 - include/rdma/ib_verbs.h | 83 ----------------------------- 27 files changed, 16 insertions(+), 381 deletions(-) commit b7d3e0a94fe128912bbebf0ae68551c85fd2d429 Author: Christoph Hellwig Date: Wed Dec 23 19:12:47 2015 +0100 IB: remove support for phys MRs We have stopped using phys MRs in the kernel a while ago, so let's remove all the cruft used to implement them. Signed-off-by: Christoph Hellwig Reviewed-by: Sagi Grimberg Reviewed-by: Jason Gunthorpe [core] Reviewed-By: Devesh Sharma [ocrdma] Reviewed-by: Steve Wise Signed-off-by: Doug Ledford drivers/infiniband/hw/cxgb3/iwch_mem.c | 31 --- drivers/infiniband/hw/cxgb3/iwch_provider.c | 69 ------ drivers/infiniband/hw/cxgb3/iwch_provider.h | 4 - drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 11 - drivers/infiniband/hw/cxgb4/mem.c | 248 --------------------- drivers/infiniband/hw/cxgb4/provider.c | 2 - drivers/infiniband/hw/mthca/mthca_provider.c | 84 ------- drivers/infiniband/hw/nes/nes_cm.c | 7 +- drivers/infiniband/hw/nes/nes_verbs.c | 3 +- drivers/infiniband/hw/nes/nes_verbs.h | 5 + drivers/infiniband/hw/ocrdma/ocrdma_main.c | 1 - drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 163 -------------- drivers/infiniband/hw/ocrdma/ocrdma_verbs.h | 3 - drivers/infiniband/hw/qib/qib_mr.c | 51 +---- drivers/infiniband/hw/qib/qib_verbs.c | 1 - drivers/infiniband/hw/qib/qib_verbs.h | 4 - drivers/staging/rdma/amso1100/c2_provider.c | 1 - drivers/staging/rdma/ehca/ehca_iverbs.h | 11 - drivers/staging/rdma/ehca/ehca_main.c | 2 - drivers/staging/rdma/ehca/ehca_mrmw.c | 321 --------------------------- drivers/staging/rdma/ehca/ehca_mrmw.h | 5 - drivers/staging/rdma/hfi1/mr.c | 51 +---- drivers/staging/rdma/hfi1/verbs.c | 1 - drivers/staging/rdma/hfi1/verbs.h | 4 - drivers/staging/rdma/ipath/ipath_mr.c | 55 ----- drivers/staging/rdma/ipath/ipath_verbs.c | 1 - drivers/staging/rdma/ipath/ipath_verbs.h | 4 - include/rdma/ib_verbs.h | 16 +- 28 files changed, 15 insertions(+), 1144 deletions(-) commit a4d825a01e51b9c74d5a64237dd8b901822cf035 Author: Christoph Hellwig Date: Wed Dec 23 19:12:46 2015 +0100 IB: remove ib_query_mr This functionality has no users and was only supported by the staged out EHCA driver. Signed-off-by: Christoph Hellwig Reviewed-by: Sagi Grimberg Reviewed-by: Jason Gunthorpe [core] Reviewed-by: Steve Wise Signed-off-by: Doug Ledford drivers/infiniband/core/verbs.c | 7 ----- drivers/staging/rdma/ehca/ehca_iverbs.h | 2 -- drivers/staging/rdma/ehca/ehca_main.c | 1 - drivers/staging/rdma/ehca/ehca_mrmw.c | 49 --------------------------------- include/rdma/ib_verbs.h | 18 ------------ 5 files changed, 77 deletions(-) commit b1adc7146af54487bb2ce1cb3012e66a1bbd8e39 Author: Christoph Hellwig Date: Wed Dec 23 19:12:45 2015 +0100 IB: start documenting device capabilities Just IB_DEVICE_LOCAL_DMA_LKEY and IB_DEVICE_MEM_MGT_EXTENSIONS for now as I'm most familar with those. Signed-off-by: Christoph Hellwig Reviewed-by: Sagi Grimberg Reviewed-By: Jason Gunthorpe Signed-off-by: Doug Ledford include/rdma/ib_verbs.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 432c55fff402da3ad7716485e30e8c05010cfe68 Author: Christoph Lameter Date: Mon Dec 21 08:42:54 2015 -0600 IB/IPoIB: Move multicast specific code out of ipoib_main.c Code cleanup to move multicast specific code that checks for a sendonly join to ipoib_multicast.c. This allows the removal of the export of __ipoib_mcast_find(). Signed-off-by: Christoph Lameter Signed-off-by: Doug Ledford drivers/infiniband/ulp/ipoib/ipoib.h | 3 ++- drivers/infiniband/ulp/ipoib/ipoib_main.c | 13 +------------ drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 21 ++++++++++++++++++++- 3 files changed, 23 insertions(+), 14 deletions(-) commit 5a0e81f6f4838816a265b948a6439c9fcd76b017 Author: Christoph Lameter Date: Mon Dec 21 08:42:53 2015 -0600 IB/IPoIB: factor out common multicast list removal code Code cleanup to remove multicast specific code from ipoib_main.c The removal of a list of multicast groups occurs in three places. Create a new function ipoib_mcast_remove_list(). Use this new function in ipoib_main.c too. That in turn allows the dropping of two functions that were exported from ipoib_multicast.c for expiration of mc groups. Reviewed-by: Ira Weiny Signed-off-by: Christoph Lameter Signed-off-by: Doug Ledford drivers/infiniband/ulp/ipoib/ipoib.h | 3 +-- drivers/infiniband/ulp/ipoib/ipoib_main.c | 7 ++----- drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 24 ++++++++++++++---------- 3 files changed, 17 insertions(+), 17 deletions(-) commit 05a724bd44a68cd5c60bc4b949a946b57d4c9e55 Author: Chuyu Hu Date: Tue Dec 22 09:44:33 2015 -0500 tracing: Fix comment to use tracing_on over tracing_enable The file tracing_enable is obsolete and does not exist anymore. Replace the comment that references it with the proper tracing_on file. Link: http://lkml.kernel.org/r/1450787141-45544-1-git-send-email-chuhu@redhat.com Signed-off-by: Chuyu Hu Signed-off-by: Steven Rostedt kernel/trace/trace.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e9b349f0892622831edcfbb63f5b88473e88dbc6 Author: Li Bin Date: Sun Dec 6 10:02:55 2015 +0800 metag: ftrace: Fix the comments for ftrace_modify_code There is no need to worry about module and __init text disappearing case, because that ftrace has a module notifier that is called when a module is being unloaded and before the text goes away and this code grabs the ftrace_lock mutex and removes the module functions from the ftrace list, such that it will no longer do any modifications to that module's text, the update to make functions be traced or not is done under the ftrace_lock mutex as well. And by now, __init section codes should not been modified by ftrace, because it is black listed in recordmcount.c and ignored by ftrace. Link: http://lkml.kernel.org/r/1449367378-29430-3-git-send-email-huawei.libin@huawei.com Cc: linux-metag@vger.kernel.org Acked-by: James Hogan Suggested-by: Steven Rostedt Signed-off-by: Li Bin Signed-off-by: Steven Rostedt arch/metag/kernel/ftrace.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 5243238ad5c4a58a4d6c095c3318c36a7e18c08b Author: Li Bin Date: Sun Dec 6 10:02:57 2015 +0800 sh: ftrace: Fix the comments for ftrace_modify_code() There is no need to worry about module and __init text disappearing case, because that ftrace has a module notifier that is called when a module is being unloaded and before the text goes away and this code grabs the ftrace_lock mutex and removes the module functions from the ftrace list, such that it will no longer do any modifications to that module's text, the update to make functions be traced or not is done under the ftrace_lock mutex as well. And by now, __init section codes should not been modified by ftrace, because it is black listed in recordmcount.c and ignored by ftrace. Link: http://lkml.kernel.org/r/1449367378-29430-5-git-send-email-huawei.libin@huawei.com Cc: linux-sh@vger.kernel.org Suggested-by: Steven Rostedt Signed-off-by: Li Bin Signed-off-by: Steven Rostedt arch/sh/kernel/ftrace.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) commit cbbe12c43d8208b531c7be4d28a69c8137d19f21 Author: Li Bin Date: Fri Dec 4 15:27:43 2015 +0800 ia64: ftrace: Fix the comments for ftrace_modify_code() There is no need to worry about module and __init text disappearing case, because that ftrace has a module notifier that is called when a module is being unloaded and before the text goes away and this code grabs the ftrace_lock mutex and removes the module functions from the ftrace list, such that it will no longer do any modifications to that module's text, the update to make functions be traced or not is done under the ftrace_lock mutex as well. And by now, __init section codes should not been modified by ftrace, because it is black listed in recordmcount.c and ignored by ftrace. Link: http://lkml.kernel.org/r/1449214067-12177-2-git-send-email-huawei.libin@huawei.com Cc: linux-ia64@vger.kernel.org Acked-by: Tony Luck Suggested-by: Steven Rostedt Signed-off-by: Li Bin Signed-off-by: Steven Rostedt arch/ia64/kernel/ftrace.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) commit 97e9b4fca52bf4e2f7eed9463a0722f8e7afbe90 Author: Steven Rostedt (Red Hat) Date: Wed Dec 23 12:12:22 2015 -0500 ftrace: Clean up ftrace_module_init() code The start and end variables were only used when ftrace_module_init() was split up into multiple functions. No need to keep them around after the merger. Signed-off-by: Steven Rostedt kernel/trace/ftrace.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit b6b71f66a16a9212b853c168f6ec1f303c5c7a7d Author: Abel Vesa Date: Wed Dec 2 15:39:57 2015 +0100 ftrace: Join functions ftrace_module_init() and ftrace_init_module() Simple cleanup. No need for two functions here. The whole work can simply be done inside 'ftrace_module_init'. Link: http://lkml.kernel.org/r/1449067197-5718-1-git-send-email-abelvesa@linux.com Signed-off-by: Abel Vesa Signed-off-by: Steven Rostedt kernel/trace/ftrace.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) commit 2701121b8f4db4d69c327c0d8f8694ff2ce30ef7 Author: Denis Kirjanov Date: Mon Dec 14 23:18:05 2015 +0300 tracing: Introduce TRACE_EVENT_FN_COND macro TRACE_EVENT_FN can't be used in some circumstances like invoking trace functions from offlined CPU due to RCU usage. This patch adds the TRACE_EVENT_FN_COND macro to make such trace points conditional. Link: http://lkml.kernel.org/r/1450124286-4822-1-git-send-email-kda@linux-powerpc.org Signed-off-by: Denis Kirjanov Signed-off-by: Steven Rostedt include/linux/tracepoint.h | 4 ++++ include/trace/define_trace.h | 6 ++++++ include/trace/trace_events.h | 6 ++++++ 3 files changed, 16 insertions(+) commit ff078d8fc644722f7b163d79e8a03b00b9dc2385 Author: Jerry Snitselaar Date: Mon Nov 16 12:57:28 2015 -0700 tracing: Use seq_buf_used() in seq_buf_to_user() instead of len commit 5ac48378414d ("tracing: Use trace_seq_used() and seq_buf_used() instead of len") changed the tracing code to use trace_seq_used() and seq_buf_used() instead of using the seq_buf len directly to avoid overflow issues, but missed a spot in seq_buf_to_user() that makes use of s->len. Cleaned up the code a bit as well per suggestion of Steve Rostedt. Link: http://lkml.kernel.org/r/1447703848-2951-1-git-send-email-jsnitsel@redhat.com Signed-off-by: Jerry Snitselaar Signed-off-by: Steven Rostedt lib/seq_buf.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 27dff4e04199cf0ecf06239a26d0d225d3c046e9 Author: Julia Lawall Date: Fri Dec 11 18:35:59 2015 +0100 bpf: Constify bpf_verifier_ops structure This bpf_verifier_ops structure is never modified, like the other bpf_verifier_ops structures, so declare it as const. Done with the help of Coccinelle. Link: http://lkml.kernel.org/r/1449855359-13724-1-git-send-email-Julia.Lawall@lip6.fr Signed-off-by: Julia Lawall Signed-off-by: Steven Rostedt kernel/trace/bpf_trace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c68c0fa29341754de86b6e5317b6074f1e334581 Author: Steven Rostedt (Red Hat) Date: Tue Dec 1 13:28:16 2015 -0500 ftrace: Have ftrace_ops_get_func() handle RCU and PER_CPU flags too Jiri Olsa noted that the change to replace the control_ops did not update the trampoline for when running perf on a single CPU and with CONFIG_PREEMPT disabled (where dynamic ops, like perf, can use trampolines directly). The result was that perf function could be called when RCU is not watching as well as not handle the ftrace_local_disable(). Modify the ftrace_ops_get_func() to also check the RCU and PER_CPU ops flags and use the recursive function if they are set. The recursive function is modified to check those flags and execute the appropriate checks if they are set. Link: http://lkml.kernel.org/r/20151201134213.GA14155@krava.brq.redhat.com Reported-by: Jiri Olsa Patch-fixed-up-by: Jiri Olsa Tested-by: Jiri Olsa Signed-off-by: Steven Rostedt kernel/trace/ftrace.c | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) commit ba27f2bc731135a0396f3968bdddb54f3bc72e64 Author: Steven Rostedt (Red Hat) Date: Mon Nov 30 17:23:39 2015 -0500 ftrace: Remove use of control list and ops Currently perf has its own list function within the ftrace infrastructure that seems to be used only to allow for it to have per-cpu disabling as well as a check to make sure that it's not called while RCU is not watching. It uses something called the "control_ops" which is used to iterate over ops under it with the control_list_func(). The problem is that this control_ops and control_list_func unnecessarily complicates the code. By replacing FTRACE_OPS_FL_CONTROL with two new flags (FTRACE_OPS_FL_RCU and FTRACE_OPS_FL_PER_CPU) we can remove all the code that is special with the control ops and add the needed checks within the generic ftrace_list_func(). Signed-off-by: Steven Rostedt include/linux/ftrace.h | 35 +++++------ kernel/trace/ftrace.c | 126 ++++++++++++---------------------------- kernel/trace/trace.h | 2 - kernel/trace/trace_event_perf.c | 2 +- 4 files changed, 57 insertions(+), 108 deletions(-) commit 030f4e1cb86f059185572fd1678a55b5e8ff0d08 Author: Steven Rostedt (Red Hat) Date: Tue Dec 1 12:24:45 2015 -0500 ftrace: Fix output of enabled_functions for showing tramp When showing all tramps registered to a ftrace record in the file enabled_functions, it exits the loop with ops == NULL. But then it is suppose to show the function on the ops->trampoline and add_trampoline_func() is called with the given ops. But because ops is now NULL (to exit the loop), it always shows the static trampoline instead of the one that is really registered to the record. The call to add_trampoline_func() that shows the trampoline for the given ops needs to be called at every iteration. Fixes: 39daa7b9e895 "ftrace: Show all tramps registered to a record on ftrace_bug()" Signed-off-by: Steven Rostedt kernel/trace/ftrace.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit b8ec330a63eb39127f5cfcae5f8524e969ef9f94 Author: Li Bin Date: Mon Nov 30 18:23:36 2015 +0800 ftrace: Fix a typo in comment s/ARCH_SUPPORT_FTARCE_OPS/ARCH_SUPPORTS_FTRACE_OPS/ Link: http://lkml.kernel.org/r/1448879016-8659-1-git-send-email-huawei.libin@huawei.com Signed-off-by: Li Bin Signed-off-by: Steven Rostedt kernel/trace/ftrace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 768acf46e1320d6c41ed1b7c4952bab41c1cde79 Author: Chen-Yu Tsai Date: Tue Dec 22 02:27:35 2015 -0200 [media] rc: sunxi-cir: Initialize the spinlock properly The driver allocates the spinlock but fails to initialize it correctly. The kernel reports a BUG indicating bad spinlock magic when spinlock debugging is enabled. Call spin_lock_init() on it to initialize it correctly. Fixes: b4e3e59fb59c ("[media] rc: add sunxi-ir driver") Signed-off-by: Chen-Yu Tsai Acked-by: Hans de Goede Cc: stable@vger.kernel.org Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/sunxi-cir.c | 2 ++ 1 file changed, 2 insertions(+) commit e53505a802048dc0292609c56411ffdaad013c8e Author: Achiad Shochat Date: Wed Dec 23 18:47:25 2015 +0200 IB/mlx5: Support RoCE Advertise RoCE support for IB/core layer and set the hardware to work in RoCE mode. Signed-off-by: Achiad Shochat Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/main.c | 48 +++++++++++++++++++++++++++++++++++---- 1 file changed, 44 insertions(+), 4 deletions(-) commit 2811ba51b04958cd001b6409c9f70e8563376346 Author: Achiad Shochat Date: Wed Dec 23 18:47:24 2015 +0200 IB/mlx5: Add RoCE fields to Address Vector Set the address handle and QP address path fields according to the link layer type (IB/Eth). Signed-off-by: Achiad Shochat Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/ah.c | 32 +++++++++++++++++++++------ drivers/infiniband/hw/mlx5/main.c | 21 ++++++++++++++++++ drivers/infiniband/hw/mlx5/mlx5_ib.h | 5 +++-- drivers/infiniband/hw/mlx5/qp.c | 42 ++++++++++++++++++++++++++---------- include/linux/mlx5/qp.h | 21 ++++++++++++------ 5 files changed, 96 insertions(+), 25 deletions(-) commit 3cca26069a4b7f6d8fd3dc0ed707e795c22712e2 Author: Achiad Shochat Date: Wed Dec 23 18:47:23 2015 +0200 IB/mlx5: Support IB device's callbacks for adding/deleting GIDs These callbacks write into the mlx5 RoCE address table. Upon del_gid we write a zero'd GID. Signed-off-by: Achiad Shochat Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/main.c | 89 +++++++++++++++++++++++++++++++++++++++ include/linux/mlx5/device.h | 20 +++++++++ 2 files changed, 109 insertions(+) commit cb34be6da25f45034ef4ff6103d401b451165e39 Author: Achiad Shochat Date: Wed Dec 23 18:47:22 2015 +0200 IB/mlx5: Set network_hdr_type upon RoCE responder completion When handling a responder completion, if the link layer is Ethernet, set the work completion network_hdr_type field according to CQE's info and the IB_WC_WITH_NETWORK_HDR_TYPE flag. Signed-off-by: Achiad Shochat Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/cq.c | 17 +++++++++++++++++ include/linux/mlx5/device.h | 6 ++++++ 2 files changed, 23 insertions(+) commit 3f89a643eb29543af0838d37604bbc29a4e1eb60 Author: Achiad Shochat Date: Wed Dec 23 18:47:21 2015 +0200 IB/mlx5: Extend query_device/port to support RoCE Using the vport access functions to retrieve the Ethernet specific information and return this information in ib_query_device and ib_query_port. Signed-off-by: Achiad Shochat Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/main.c | 75 +++++++++++++++++++++++++++++++++++---- include/linux/mlx5/driver.h | 7 ---- 2 files changed, 69 insertions(+), 13 deletions(-) commit 9efa75254593d6ca3ae54bac8153f47e1a7cbcda Author: Achiad Shochat Date: Wed Dec 23 18:47:20 2015 +0200 net/mlx5_core: Introduce access functions to query vport RoCE fields Introduce access functions to query NIC vport system_image_guid, node_guid and qkey_viol_cntr. Signed-off-by: Achiad Shochat Signed-off-by: Doug Ledford drivers/net/ethernet/mellanox/mlx5/core/vport.c | 62 +++++++++++++++++++++++++ include/linux/mlx5/mlx5_ifc.h | 10 +++- include/linux/mlx5/vport.h | 5 ++ 3 files changed, 76 insertions(+), 1 deletion(-) commit 0de60af649533ad8d9aaeab1df710e6a728d45ea Author: Achiad Shochat Date: Wed Dec 23 18:47:19 2015 +0200 net/mlx5_core: Introduce access functions to enable/disable RoCE A mlx5 Ethernet port must be explicitly enabled for RoCE. When RoCE is not enabled on the port, the NIC will refuse to create QPs attached to it and incoming RoCE packets will be considered by the NIC as plain Ethernet packets. Signed-off-by: Achiad Shochat Signed-off-by: Doug Ledford drivers/net/ethernet/mellanox/mlx5/core/vport.c | 52 +++++++++++++++++++++++++ include/linux/mlx5/vport.h | 3 ++ 2 files changed, 55 insertions(+) commit e5f6175c5b66ce4986df7a69baae9913e8d4a430 Author: Achiad Shochat Date: Wed Dec 23 18:47:18 2015 +0200 net/mlx5_core: Break down the vport mac address query function Introduce a new function called mlx5_query_nic_vport_context(). This function gets all the NIC vport attributes from the device. The MAC address is just one of the NIC vport attributes, so mlx5_query_nic_vport_mac_address() is now just a wrapper function above mlx5_query_nic_vport_context(). More NIC vport attributes will be used in following commits. Signed-off-by: Achiad Shochat Signed-off-by: Doug Ledford drivers/net/ethernet/mellanox/mlx5/core/vport.c | 27 ++++++++++++++++--------- 1 file changed, 17 insertions(+), 10 deletions(-) commit fc24fc5e9530a4fde7feddaa543f5885af013461 Author: Achiad Shochat Date: Wed Dec 23 18:47:17 2015 +0200 IB/mlx5: Support IB device's callback for getting its netdev For Eth ports only: Maintain a net device pointer in mlx5_ib_device and update it upon NETDEV_REGISTER and NETDEV_UNREGISTER events if the net-device and IB device have the same PCI parent device. Implement the get_netdev callback to return this net device. Signed-off-by: Achiad Shochat Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/main.c | 64 +++++++++++++++++++++++++++++++++++- drivers/infiniband/hw/mlx5/mlx5_ib.h | 10 ++++++ 2 files changed, 73 insertions(+), 1 deletion(-) commit ebd61f68e1c79eab022c550f95cb8bf37cc925cb Author: Achiad Shochat Date: Wed Dec 23 18:47:16 2015 +0200 IB/mlx5: Support IB device's callback for getting the link layer Make the existing mlx5_ib_port_link_layer() signature match the ib device callback signature (add port_num parameter). Refactor it to use a sub function so that the link layer could be queried also before the ibdev is created. Signed-off-by: Achiad Shochat Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/main.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) commit 2e4c8baa66b3d3272ff82dfb5c8585cf1be88685 Merge: 83a7600 812787b Author: David S. Miller Date: Wed Dec 23 12:05:53 2015 -0500 Merge branch 'cxgb4-next' Hariprasad Shenai says: ==================== Trivial enhancements for cxgb4 This series adds a debug message if adapter isn't inserted in right PCI slot. Changes naming conventions for iSCSI rx queues, use node info while allocating rx queue and use napi_complete_done() api in napi handler. 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. Thanks V2: Dropped 'dcb_info' debug entry patch, since the same can be achieved using lldp tool. Based on review comments by Or Gerlitz and David Miller. ==================== Signed-off-by: David S. Miller commit 812787b8e4ea1a1c9144fe06ebf9b45371b2f5ce Author: Hariprasad Shenai Date: Wed Dec 23 11:29:56 2015 +0530 cxgb4: Use napi_complete_done() api in napi handler Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/sge.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0ac5b708e362bdbe7c16b67dc3cad41f69aeab3f Author: Hariprasad Shenai Date: Wed Dec 23 11:29:55 2015 +0530 cxgb4: Use the node info to alloc_ring() for RX queues Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/sge.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit f90ce56187e78f46560a6a31e39ee3209b1a9427 Author: Hariprasad Shenai Date: Wed Dec 23 11:29:54 2015 +0530 cxgb4: get naming correct for iscsi queues All the upper level protocols like rdma, iscsi have their own offload rx queues, so instead of using the generic naming convention be specific while naming them. Improves code readability Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 13 +++--- drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c | 8 ++-- drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 53 +++++++++++----------- drivers/net/ethernet/chelsio/cxgb4/sge.c | 2 +- 4 files changed, 38 insertions(+), 38 deletions(-) commit 547fd27241a887c1df020c5f8347e348540f0591 Author: Hariprasad Shenai Date: Wed Dec 23 11:29:53 2015 +0530 cxgb4: Warn if device doesn't have enough PCI bandwidth Check if the device get enough bandwidth from the entire PCI chain to satisfy its capabilities. This patch determines the PCIe device's bandwidth capabilities by reading its PCIe Link Capabilities registers and then call the pcie_get_minimum_link function to ensure that the adapter is hooked into a slot which is capable of providing the necessary bandwidth capabilities. Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 80 ++++++++++++++++++++++++- 1 file changed, 78 insertions(+), 2 deletions(-) commit 6c37157874aa2b153b722868bd984002fbcff6bb Author: Jan Kara Date: Wed Dec 23 18:05:03 2015 +0100 udf: Fix lost indirect extent block When inode ends with empty indirect extent block and we extended that file, udf_do_extend_file() ended up just overwriting pointer to it with another extent and thus effectively leaking the block and also corruptiong length of allocation descriptors. Fix the problem by properly following into next indirect extent when it is present. Signed-off-by: Jan Kara fs/udf/inode.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit fcea62babc8100aee79c716c81203c6d105b2da0 Author: Jan Kara Date: Wed Dec 23 14:21:13 2015 +0100 udf: Factor out code for creating indirect extent Factor out code for creating indirect extent from udf_add_aext(). It was mostly duplicated in two places. Also remove some opencoded versions of udf_write_aext(). Signed-off-by: Jan Kara fs/udf/balloc.c | 98 ++----------------------- fs/udf/inode.c | 217 +++++++++++++++++++++++++++++++------------------------ fs/udf/udfdecl.h | 4 + 3 files changed, 130 insertions(+), 189 deletions(-) commit 4020c18a94dda9a5a52059f00ae582eada67b810 Author: Antti Palosaari Date: Sun Dec 20 00:57:20 2015 -0200 [media] rtl2832: do not filter out slave TS null packets Do not remove slave TS NULL padding PID (0x1fff) by default as there is no real need. After that whole TS is passed to kernel sw PID filter. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/rtl2832.c | 12 ------------ 1 file changed, 12 deletions(-) commit 891e0559387e94292287f5c5d1c61cd39742f46b Author: Antti Palosaari Date: Mon Oct 5 21:16:39 2015 -0300 [media] rtl2832: print reg number on error case It is hard to debug possible I2C failures without knowing the possible register itself. Add register number to error printing. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/rtl2832.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 31d60f1bc589c8721b4287952ea8ebe4556e189d Author: Antti Palosaari Date: Mon Oct 5 20:46:37 2015 -0300 [media] rtl28xxu: return demod reg page from driver cache Return current active rtl2830/rtl2832 register page from the driver cache in order to reduce I2C I/O. Register page is already cached due to I2C write needs. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) commit d8e81cbd80121e6d06dc84076701c603324dd28a Merge: 86e57ca bbbb03c Author: Jason Cooper Date: Wed Dec 23 16:09:07 2015 +0000 Merge branch 'irqchip/sunxi' into irqchip/core commit 95847f4010c2e47790aa7f5064f5e3779fcec652 Author: Philipp Zabel Date: Wed Dec 2 14:58:54 2015 -0200 [media] coda: enable MPEG-2 ES decoding Hook up the MPEG-2 ES decoder. Signed-off-by: Philipp Zabel Signed-off-by: Kamil Debski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/coda/coda-common.c | 4 ++++ 1 file changed, 4 insertions(+) commit 49b966fa451c74bcb18fff415db0ae9b102fa33f Author: Philipp Zabel Date: Wed Dec 2 14:58:53 2015 -0200 [media] coda: don't start streaming without queued buffers We could support start streaming with an empty output queue for the BIT decoders due to the bitstream buffer which could still contain data at this point, but there is really no reason for userspace to expect this to work. Simplify the code by disallowing it. Signed-off-by: Philipp Zabel Signed-off-by: Kamil Debski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/coda/coda-common.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) commit bb757d7bd3019a0af1513efaf020495b82a43056 Author: Philipp Zabel Date: Wed Dec 2 14:58:52 2015 -0200 [media] coda: hook up vidioc_prepare_buf Signed-off-by: Philipp Zabel Signed-off-by: Kamil Debski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/coda/coda-common.c | 1 + 1 file changed, 1 insertion(+) commit d4de047b536cc0fe06521eda111f4a31a0844e11 Author: Philipp Zabel Date: Wed Dec 2 14:58:51 2015 -0200 [media] coda: relax coda_jpeg_check_buffer for trailing bytes coda_jpeg_check_buffer only cares about the buffer length and contents, so change the parameter type back from v4l2_vb2_buffer to just the vb2_buffer. Instead of just checking the first and last bytes for the SOI and EOI markers, relax the EOI marker check a bit and allow up to 32 trailing bytes after the EOI marker as hardware generated JPEGs sometimes contain some alignment overhead. Signed-off-by: Philipp Zabel Signed-off-by: Kamil Debski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/coda/coda-bit.c | 2 +- drivers/media/platform/coda/coda-jpeg.c | 26 ++++++++++++++++++++------ drivers/media/platform/coda/coda.h | 2 +- 3 files changed, 22 insertions(+), 8 deletions(-) commit 5542570ea9e7dfbd699dce3d542761926ef26712 Author: Philipp Zabel Date: Wed Dec 2 14:58:50 2015 -0200 [media] coda: make to_coda_video_device static This function is not used outside coda-common.c. Signed-off-by: Philipp Zabel Signed-off-by: Kamil Debski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/coda/coda-common.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 54774f8600687d03f74bc30295b9596be3e05e5a Author: Andrzej Hajda Date: Wed Dec 2 06:22:33 2015 -0200 [media] s5p-mfc: remove volatile attribute from MFC register addresses MFC register addresses are used only by writel/readl macros which already takes care of proper register accessing. Signed-off-by: Andrzej Hajda Signed-off-by: Kamil Debski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/s5p-mfc/s5p_mfc_opr.h | 488 +++++++++++++-------------- 1 file changed, 244 insertions(+), 244 deletions(-) commit fdd1d4b0a08d6d852ec419691e7b350c1ce92b66 Author: Andrzej Hajda Date: Wed Dec 2 06:22:32 2015 -0200 [media] s5p-mfc: merge together s5p_mfc_hw_call and s5p_mfc_hw_call_void Both macros can be merged into one. Signed-off-by: Andrzej Hajda Signed-off-by: Kamil Debski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/s5p-mfc/s5p_mfc.c | 38 ++++++++++++------------- drivers/media/platform/s5p-mfc/s5p_mfc_common.h | 8 +----- drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c | 16 +++++------ drivers/media/platform/s5p-mfc/s5p_mfc_dec.c | 12 ++++---- drivers/media/platform/s5p-mfc/s5p_mfc_enc.c | 20 ++++++------- drivers/media/platform/s5p-mfc/s5p_mfc_opr_v6.c | 16 +++++------ 6 files changed, 52 insertions(+), 58 deletions(-) commit 7969b12523668d764746e762b42793fd1aefcf13 Author: Andrzej Hajda Date: Wed Dec 2 06:22:31 2015 -0200 [media] s5p-mfc: use spinlock to protect MFC context MFC driver uses dev->irqlock spinlock to protect queues only, but many context fields require protection also - they can be accessed concurrently from IOCTLs and IRQ handler. The patch increases protection range of irqlock to those fields also. Signed-off-by: Andrzej Hajda Signed-off-by: Kamil Debski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/s5p-mfc/s5p_mfc.c | 15 +++------------ drivers/media/platform/s5p-mfc/s5p_mfc_common.h | 2 +- drivers/media/platform/s5p-mfc/s5p_mfc_dec.c | 13 +++++++------ drivers/media/platform/s5p-mfc/s5p_mfc_enc.c | 14 -------------- drivers/media/platform/s5p-mfc/s5p_mfc_opr_v5.c | 19 ------------------- drivers/media/platform/s5p-mfc/s5p_mfc_opr_v6.c | 18 ------------------ 6 files changed, 11 insertions(+), 70 deletions(-) commit 8eceb9a0070138ba6db805b38f46c46a926b37b8 Author: Andrzej Hajda Date: Wed Dec 2 06:22:30 2015 -0200 [media] s5p-mfc: remove unnecessary callbacks Many version specific functions are not called by common code, so there is no need to use callbacks. Additionally some of them are not used at all, so they can be safely removed. Signed-off-by: Andrzej Hajda Signed-off-by: Kamil Debski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/s5p-mfc/s5p_mfc_opr.h | 17 --------- drivers/media/platform/s5p-mfc/s5p_mfc_opr_v5.c | 38 -------------------- drivers/media/platform/s5p-mfc/s5p_mfc_opr_v6.c | 47 ------------------------- 3 files changed, 102 deletions(-) commit 62bbd72b099c7408a94f518d2274f906a43781ca Author: Andrzej Hajda Date: Wed Dec 2 06:22:29 2015 -0200 [media] s5p-mfc: make queue cleanup code common Code for queue cleanup has nothing specific to hardware version. Signed-off-by: Andrzej Hajda Signed-off-by: Kamil Debski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/s5p-mfc/s5p_mfc.c | 26 +++++++++++++++++-------- drivers/media/platform/s5p-mfc/s5p_mfc_common.h | 1 + drivers/media/platform/s5p-mfc/s5p_mfc_dec.c | 6 ++---- drivers/media/platform/s5p-mfc/s5p_mfc_enc.c | 6 ++---- drivers/media/platform/s5p-mfc/s5p_mfc_opr.h | 2 -- drivers/media/platform/s5p-mfc/s5p_mfc_opr_v5.c | 16 --------------- drivers/media/platform/s5p-mfc/s5p_mfc_opr_v6.c | 16 --------------- 7 files changed, 23 insertions(+), 50 deletions(-) commit 05d1d0f020d90afd6af48a98af1e9be846eed642 Author: Andrzej Hajda Date: Wed Dec 2 06:22:28 2015 -0200 [media] s5p-mfc: use one implementation of s5p_mfc_get_new_ctx Both version of MFC driver use functions with the same body and name. The patch moves them to common location. It also simplifies it. Signed-off-by: Andrzej Hajda Signed-off-by: Kamil Debski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/s5p-mfc/s5p_mfc.c | 20 ++++++++++++++++++++ drivers/media/platform/s5p-mfc/s5p_mfc_common.h | 1 + drivers/media/platform/s5p-mfc/s5p_mfc_opr_v5.c | 21 --------------------- drivers/media/platform/s5p-mfc/s5p_mfc_opr_v6.c | 24 ------------------------ 4 files changed, 21 insertions(+), 45 deletions(-) commit 4e9691aa40e36197be164b79c8a81d2702940e78 Author: Julia Lawall Date: Sun Nov 22 05:45:34 2015 -0200 [media] s5p-mfc: constify s5p_mfc_codec_ops structures The s5p_mfc_codec_ops structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Kamil Debski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/s5p-mfc/s5p_mfc_common.h | 2 +- drivers/media/platform/s5p-mfc/s5p_mfc_dec.c | 4 ++-- drivers/media/platform/s5p-mfc/s5p_mfc_dec.h | 2 +- drivers/media/platform/s5p-mfc/s5p_mfc_enc.c | 4 ++-- drivers/media/platform/s5p-mfc/s5p_mfc_enc.h | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) commit 59f65f495d0defb62032422d1adec841fc657213 Author: Julia Lawall Date: Sat Dec 19 21:48:59 2015 +0100 IB/usnic: delete unneeded IS_ERR test kzalloc doesn't return ERR_PTR, so there is no need to test for it. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @@ expression x,e; @@ * x = kzalloc(...) ... when != x = e * IS_ERR_OR_NULL(x) // Signed-off-by: Julia Lawall Reviewed-by: Dave Goodell Signed-off-by: Doug Ledford drivers/infiniband/hw/usnic/usnic_ib_verbs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 96390f62aaa79c2cc6a2054d6d48e7610966777d Author: Nelson Escobar Date: Wed Dec 9 10:42:19 2015 -0800 IB/usnic: Handle 0 counts in resource allocation Signed-off-by: Dave Goodell Reviewed-by: Reese Faucette Reviewed-by: Xuyang Wang Signed-off-by: Nelson Escobar Signed-off-by: Doug Ledford drivers/infiniband/hw/usnic/usnic_vnic.c | 54 +++++++++++++++++--------------- 1 file changed, 29 insertions(+), 25 deletions(-) commit dc92d14684c066f81f120e740ef38b87f37e0622 Author: Nelson Escobar Date: Wed Dec 9 10:42:18 2015 -0800 IB/usnic: Fix resource leak in error case Signed-off-by: Dave Goodell Reviewed-by: Reese Faucette Reviewed-by: Xuyang Wang Signed-off-by: Nelson Escobar Signed-off-by: Doug Ledford drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 89e5323c644e0b52f8b81b8e77a71e0d447f8c16 Author: Nelson Escobar Date: Wed Dec 9 10:42:17 2015 -0800 IB/usnic: Support more QP state transitions They were already implemented at a lower layer, but the upper level routine placed arbitrary restrictions on which transitions were permitted. Simplify the state machine logic to live wholly in usnic_ib_qp_grp_modify. Signed-off-by: Dave Goodell Reviewed-by: Reese Faucette Reviewed-by: Xuyang Wang Signed-off-by: Nelson Escobar Signed-off-by: Doug Ledford drivers/infiniband/hw/usnic/usnic_ib_verbs.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 2547a3663c5e765dfdc87009afde80643f586efe Author: Nelson Escobar Date: Wed Dec 9 10:42:16 2015 -0800 IB/usnic: Fix message typo Signed-off-by: Dave Goodell Reviewed-by: Reese Faucette Reviewed-by: Xuyang Wang Signed-off-by: Nelson Escobar Signed-off-by: Doug Ledford drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3ea728613931bfe0168b439a10de026faef275a0 Author: Nelson Escobar Date: Wed Dec 9 10:42:15 2015 -0800 IB/usnic: Fix incorrect cast in usnic_ib_fw_string_to_u64 Signed-off-by: Christian Benvenuti Signed-off-by: Nelson Escobar Reviewed-by: Dave Goodell Signed-off-by: Doug Ledford drivers/infiniband/hw/usnic/usnic_ib_verbs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1e67a64e9c992b3b6811f41cd492722ef7247b80 Author: Nelson Escobar Date: Wed Dec 9 10:42:14 2015 -0800 IB/usnic: Improve a failure message Signed-off-by: Nelson Escobar Reviewed-by: Dave Goodell Signed-off-by: Doug Ledford drivers/infiniband/hw/usnic/usnic_debugfs.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 638e9707470f1bd3676dd5f06b52996a8dcb09f5 Author: Nelson Escobar Date: Wed Dec 9 10:39:49 2015 -0800 IB/usnic: Remove unused prototype query_protocol() was added in commit 6b90a6d66b17 ("IB/Verbs: Implement new callback query_protocol()") and then removed in commit f9b22e355d38 ("IB/core: Convert core to use bitfield for caps"). This left behind an unused prototype. Signed-off-by: Nelson Escobar Reviewed-by: Dave Goodell Signed-off-by: Doug Ledford drivers/infiniband/hw/usnic/usnic_ib_verbs.h | 2 -- 1 file changed, 2 deletions(-) commit 39fc8830eb96a559be8554b8df1e0c31f375feaf Author: Jens Axboe Date: Wed Dec 23 08:42:59 2015 -0700 sx8: use real time for the command seconds Commit 8182503df1ba used monotonic time, but if the adapter is using the seconds for logging entries, then we'll get duplicate entries if the system is rebooted. Use real time instead. Reported-by: Arnd Bergmann Fixes: 8182503df1ba ("block: sx8.c: Replace timeval with ktime_t") Signed-off-by: Jens Axboe drivers/block/sx8.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c62432b40b5e03c25faf2c8f8547bba4908b8945 Author: Al Viro Date: Sun Dec 6 12:18:55 2015 -0500 [mips] switch pvc_proc_cleanup() to remove_proc_subtree() Signed-off-by: Al Viro arch/mips/lasat/picvue_proc.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) commit b25472f9b96159cc0b9b7ed449448805973cd789 Author: Al Viro Date: Sat Dec 5 22:04:48 2015 -0500 new helpers: no_seek_end_llseek{,_size}() Signed-off-by: Al Viro arch/sparc/kernel/mdesc.c | 20 ++-------------- arch/x86/kernel/cpuid.c | 24 +------------------- arch/x86/kernel/msr.c | 24 +------------------- drivers/char/nwflash.c | 31 +------------------------ drivers/net/wireless/ti/wlcore/debugfs.c | 17 +------------- drivers/s390/char/vmur.c | 15 +----------- drivers/s390/char/zcore.c | 13 +---------- drivers/usb/core/devices.c | 26 +-------------------- drivers/usb/core/devio.c | 26 +-------------------- drivers/usb/host/uhci-debug.c | 23 ++----------------- drivers/usb/misc/sisusbvga/sisusb.c | 16 +------------ fs/read_write.c | 39 ++++++++++++++++++++++++++++++++ include/linux/fs.h | 2 ++ 13 files changed, 54 insertions(+), 222 deletions(-) commit bee3c3c91865d520cb692689500df051e4ca3dd6 Author: Moni Shoua Date: Wed Dec 23 14:56:57 2015 +0200 IB/cma: Join and leave multicast groups with IGMP Since RoCEv2 is a protocol over IP header it is required to send IGMP join and leave requests to the network when joining and leaving multicast groups. Signed-off-by: Moni Shoua Signed-off-by: Doug Ledford drivers/infiniband/core/cma.c | 96 ++++++++++++++++++++++++++++++++++--- drivers/infiniband/core/multicast.c | 17 ++++++- include/rdma/ib_sa.h | 2 + 3 files changed, 106 insertions(+), 9 deletions(-) commit 25f40220e56b507fce186985c0ed2967b7f04596 Author: Moni Shoua Date: Wed Dec 23 14:56:56 2015 +0200 IB/core: Initialize UD header structure with IP and UDP headers ib_ud_header_init() is used to format InfiniBand headers in a buffer up to (but not with) BTH. For RoCE UDP ENCAP it is required that this function would be able to build also IP and UDP headers. Signed-off-by: Moni Shoua Signed-off-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/core/ud_header.c | 155 ++++++++++++++++++++++++++++++--- drivers/infiniband/hw/mlx4/qp.c | 7 +- drivers/infiniband/hw/mthca/mthca_qp.c | 2 +- include/rdma/ib_pack.h | 45 ++++++++-- 4 files changed, 188 insertions(+), 21 deletions(-) commit 045959db65c67d7189dc89ecddb5fa10aafa449d Author: Matan Barak Date: Wed Dec 23 14:56:55 2015 +0200 IB/cma: Add configfs for rdma_cm Users would like to control the behaviour of rdma_cm. For example, old applications which don't set the required RoCE gid type could be executed on RoCE V2 network types. In order to support this configuration, we implement a configfs for rdma_cm. In order to use the configfs, one needs to mount it and mkdir inside rdma_cm directory. The patch adds support for a single configuration file, default_roce_mode. The mode can either be "IB/RoCE v1" or "RoCE v2". Signed-off-by: Matan Barak Signed-off-by: Doug Ledford Documentation/ABI/testing/configfs-rdma_cm | 22 ++ drivers/infiniband/Kconfig | 9 + drivers/infiniband/core/Makefile | 2 + drivers/infiniband/core/cache.c | 24 +++ drivers/infiniband/core/cma.c | 108 +++++++++- drivers/infiniband/core/cma_configfs.c | 322 +++++++++++++++++++++++++++++ drivers/infiniband/core/core_priv.h | 24 +++ 7 files changed, 504 insertions(+), 7 deletions(-) commit 218a773f7632d8553638c76d3a5a8c77e82ccea1 Author: Matan Barak Date: Wed Dec 23 14:56:54 2015 +0200 IB/rdma_cm: Add wrapper for cma reference count Currently, cma users can't increase or decrease the cma reference count. This is necassary when setting cma attributes (like the default GID type) in order to avoid use-after-free errors. Adding cma_ref_dev and cma_deref_dev APIs. Signed-off-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/core/cma.c | 11 +++++++++-- drivers/infiniband/core/core_priv.h | 4 ++++ 2 files changed, 13 insertions(+), 2 deletions(-) commit c89e5b80245899fc51fb1d83880e2f5762fcf350 Author: Sudip Mukherjee Date: Wed Dec 23 21:05:26 2015 +0530 PCI/AER: include header file We are having build failure with sparc allmodconfig with the error: drivers/nvme/host/pci.c:15:0: include/linux/aer.h: In function 'pci_enable_pcie_error_reporting': include/linux/aer.h:49:10: error: 'EINVAL' undeclared (first use in this function) The file aer.h is using the error values but they are defined in errno.h. Include errno.h so that we have the definitions of the error codes. Fixes: a0a3408ee614 ("NVMe: Add pci error handlers") Cc: Keith Busch Signed-off-by: Sudip Mukherjee Signed-off-by: Jens Axboe include/linux/aer.h | 1 + 1 file changed, 1 insertion(+) commit 200298326b276d8dbeff204f7d407432100d9963 Author: Matan Barak Date: Wed Dec 23 14:56:53 2015 +0200 IB/core: Validate route when we init ah In order to make sure API users don't try to use SGIDs which don't conform to the routing table, validate the route before searching the RoCE GID table. Signed-off-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/core/addr.c | 175 ++++++++++++++++++++++--------- drivers/infiniband/core/cm.c | 10 +- drivers/infiniband/core/cma.c | 30 +++++- drivers/infiniband/core/sa_query.c | 75 +++++++++++-- drivers/infiniband/core/verbs.c | 48 ++++++--- drivers/infiniband/hw/ocrdma/ocrdma_ah.c | 2 +- include/rdma/ib_addr.h | 10 +- 7 files changed, 270 insertions(+), 80 deletions(-) commit 6020d7e5004cc8591d61d449e9285a6f08279541 Author: Matan Barak Date: Wed Dec 23 14:56:52 2015 +0200 IB/core: Move rdma_is_upper_dev_rcu to header file In order to validate the route, we need an easy way to check if a net-device belongs to our RDMA device. Move this helper function to a header file in order to make this check easier. Signed-off-by: Matan Barak Reviewed-by: Haggai Eran Signed-off-by: Doug Ledford drivers/infiniband/core/core_priv.h | 13 +++++++++++++ drivers/infiniband/core/roce_gid_mgmt.c | 20 ++++---------------- 2 files changed, 17 insertions(+), 16 deletions(-) commit c865f24628b9310e1815d59f723a34ea3df4890f Author: Somnath Kotur Date: Wed Dec 23 14:56:51 2015 +0200 IB/core: Add rdma_network_type to wc Providers should tell IB core the wc's network type. This is used in order to search for the proper GID in the GID table. When using HCAs that can't provide this info, IB core tries to deep examine the packet and extract the GID type by itself. We choose sgid_index and type from all the matching entries in RDMA-CM based on hint from the IP stack and we set hop_limit for the IP packet based on above hint from IP stack. Signed-off-by: Matan Barak Signed-off-by: Somnath Kotur Signed-off-by: Doug Ledford drivers/infiniband/core/addr.c | 14 +++++ drivers/infiniband/core/cma.c | 11 +++- drivers/infiniband/core/verbs.c | 123 ++++++++++++++++++++++++++++++++++++++-- include/rdma/ib_addr.h | 1 + include/rdma/ib_verbs.h | 44 ++++++++++++++ 5 files changed, 187 insertions(+), 6 deletions(-) commit 7766a99fdcd30c78fc8299db9102e3624232007c Author: Matan Barak Date: Wed Dec 23 14:56:50 2015 +0200 IB/core: Add ROCE_UDP_ENCAP (RoCE V2) type Adding RoCE v2 GID type and port type. Vendors which support this type will get their GID table populated with RoCE v2 GIDs automatically. Signed-off-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/core/cache.c | 1 + drivers/infiniband/core/roce_gid_mgmt.c | 3 ++- include/rdma/ib_verbs.h | 23 +++++++++++++++++++++-- 3 files changed, 24 insertions(+), 3 deletions(-) commit 470be516a226e851d62a8d3d31dc162500b84487 Author: Matan Barak Date: Wed Dec 23 14:56:49 2015 +0200 IB/core: Add gid attributes to sysfs This patch set adds attributes of net device and gid type to each GID in the GID table. Users that use verbs directly need to specify the GID index. Since the same GID could have different types or associated net devices, users should have the ability to query the associated GID attributes. Adding these attributes to sysfs. Signed-off-by: Matan Barak Signed-off-by: Doug Ledford Documentation/ABI/testing/sysfs-class-infiniband | 16 ++ drivers/infiniband/core/sysfs.c | 184 ++++++++++++++++++++++- 2 files changed, 198 insertions(+), 2 deletions(-) commit cb57bb849effcaa83addd739595d3dea3a5905fb Author: Matan Barak Date: Wed Dec 23 14:56:48 2015 +0200 IB/cm: Use the source GID index type Previosuly, cm and cma modules supported only IB and RoCE v1 GID type. In order to support multiple GID types, the gid_type is passed to cm_init_av_by_path and stored in the path record. The rdma cm client would use a default GID type that will be saved in rdma_id_private. Signed-off-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/core/cm.c | 25 ++++++++++++++++++++----- drivers/infiniband/core/cma.c | 2 ++ 2 files changed, 22 insertions(+), 5 deletions(-) commit b39ffa1df505378336a85064ad9ec403765bbb0b Author: Matan Barak Date: Wed Dec 23 14:56:47 2015 +0200 IB/core: Add gid_type to gid attribute In order to support multiple GID types, we need to store the gid_type with each GID. This is also aligned with the RoCE v2 annex "RoCEv2 PORT GID table entries shall have a "GID type" attribute that denotes the L3 Address type". The currently supported GID is IB_GID_TYPE_IB which is also RoCE v1 GID type. This implies that gid_type should be added to roce_gid_table meta-data. Signed-off-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/core/cache.c | 144 ++++++++++++++++++++---------- drivers/infiniband/core/cm.c | 2 +- drivers/infiniband/core/cma.c | 3 +- drivers/infiniband/core/core_priv.h | 4 + drivers/infiniband/core/device.c | 9 +- drivers/infiniband/core/multicast.c | 2 +- drivers/infiniband/core/roce_gid_mgmt.c | 60 +++++++++++-- drivers/infiniband/core/sa_query.c | 5 +- drivers/infiniband/core/uverbs_marshall.c | 1 + drivers/infiniband/core/verbs.c | 1 + include/rdma/ib_cache.h | 4 + include/rdma/ib_sa.h | 1 + include/rdma/ib_verbs.h | 11 ++- 13 files changed, 185 insertions(+), 62 deletions(-) commit cee3c4d0c56876f46f4584385603adb30a7cacf7 Author: Matan Barak Date: Wed Oct 28 16:52:41 2015 +0200 IB/core: don't search the GID table twice Previously, we've searched the GID table twice: first when we searched the table for a GID matching the proposed new one, and second when we didn't find a match, we searched again for an empty GID slot in the table. Instead, search the table once noting the first empty slot as we search for our target GID. Signed-off-by: Matan Barak Reviewed-by: Haggai Eran Signed-off-by: Doug Ledford drivers/infiniband/core/cache.c | 53 +++++++++++++++++++++++++++-------------- 1 file changed, 35 insertions(+), 18 deletions(-) commit 9c584f04959620e587b3b3d358076dab48a8893c Author: Matan Barak Date: Wed Oct 28 16:52:40 2015 +0200 IB/core: Change per-entry lock in RoCE GID table to one lock Previously, IB GID cached used a lock per entry. This could result in spending a lot of CPU cycles for locking and unlocking just in order to find a GID. Changing this in favor of one lock per a GID table. Signed-off-by: Matan Barak Reviewed-by: Haggai Eran Signed-off-by: Doug Ledford drivers/infiniband/core/cache.c | 143 +++++++++++++++++++++++++--------------- 1 file changed, 89 insertions(+), 54 deletions(-) commit f3906bd36087dd3440ecaf6e044690374d01f927 Author: Matan Barak Date: Wed Oct 28 16:52:39 2015 +0200 IB/core: Refactor GID cache's ib_dispatch_event Refactor ib_dispatch_event into a new function in order to avoid duplicating code in the next patch. Signed-off-by: Matan Barak Reviewed-by: Haggai Eran Signed-off-by: Doug Ledford drivers/infiniband/core/cache.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) commit 0751ddf77b6af2efe1041efb81141badd64efb65 Author: Scott Mayhew Date: Fri Dec 11 16:46:00 2015 -0500 lockd: Register callbacks on the inetaddr_chain and inet6addr_chain Register callbacks on inetaddr_chain and inet6addr_chain to trigger cleanup of lockd transport sockets when an ip address is deleted. Signed-off-by: Scott Mayhew Signed-off-by: J. Bruce Fields fs/lockd/svc.c | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 72 insertions(+), 2 deletions(-) commit 366849966f20a3d996a2160778861e348cc6a7c6 Author: Scott Mayhew Date: Fri Dec 11 16:45:59 2015 -0500 nfsd: Register callbacks on the inetaddr_chain and inet6addr_chain Register callbacks on inetaddr_chain and inet6addr_chain to trigger cleanup of nfsd transport sockets when an ip address is deleted. Signed-off-by: Scott Mayhew Signed-off-by: J. Bruce Fields fs/nfsd/nfssvc.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) commit c3d4879e01bec484f50a78c108341f039d470e96 Author: Scott Mayhew Date: Fri Dec 11 16:45:58 2015 -0500 sunrpc: Add a function to close temporary transports immediately Add a function svc_age_temp_xprts_now() to close temporary transports whose xpt_local matches the address passed in server_addr immediately instead of waiting for them to be closed by the timer function. The function is intended to be used by notifier_blocks that will be added to nfsd and lockd that will run when an ip address is deleted. This will eliminate the ACK storms and client hangs that occur in HA-NFS configurations where nfsd & lockd is left running on the cluster nodes all the time and the NFS 'service' is migrated back and forth within a short timeframe. Signed-off-by: Scott Mayhew Signed-off-by: J. Bruce Fields include/linux/sunrpc/svc_xprt.h | 1 + net/sunrpc/svc_xprt.c | 45 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) commit d4f72cb7fa4a3705f6675f2740f9713dc3400dd3 Author: J. Bruce Fields Date: Tue Nov 24 15:43:03 2015 -0700 nfsd: don't base cl_cb_status on stale information The rpc client we use to send callbacks may change occasionally. (In the 4.0 case, the client can use setclientid/setclientid_confirm to update the callback parameters. In the 4.1+ case, sessions and connections can come and go.) The update is done from the callback thread by nfsd4_process_cb_update, which shuts down the old rpc client and then creates a new one. The client shutdown kills any ongoing rpc calls. There won't be any new ones till the new one's created and the callback thread moves on. When an rpc encounters a problem that may suggest callback rpc's aren't working any longer, it normally sets NFSD4_CB_DOWN, so the server can tell the client something's wrong. But if the rpc notices CB_UPDATE is set, then the failure may just be a normal result of shutting down the callback client. Or it could just be a coincidence, but in any case, it means we're runing with the old about-to-be-discarded client, so the failure's not interesting. Signed-off-by: J. Bruce Fields fs/nfsd/nfs4callback.c | 4 ++++ 1 file changed, 4 insertions(+) commit 3ae08dc0fc805bc15c5629f9794599c1171dc571 Author: Bard Liao Date: Wed Dec 23 18:24:09 2015 +0800 ASoC: rt5651: add ACPI and OF support Add required tables and the binding document for ACPI and OF matching. Signed-off-by: Pierre-Louis Bossart Signed-off-by: Bard Liao Signed-off-by: Mark Brown Documentation/devicetree/bindings/sound/rt5651.txt | 41 ++++++++++++++++++++++ sound/soc/codecs/rt5651.c | 31 ++++++++++++++++ 2 files changed, 72 insertions(+) commit d1eba93bd0fcd3f699cb8d666bc97788ee85d557 Author: Geliang Tang Date: Wed Dec 23 00:18:41 2015 +0800 spi: use to_spi_device Use to_spi_device() instead of open-coding it. Signed-off-by: Geliang Tang Signed-off-by: Mark Brown drivers/spi/spi.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 8a99cc6ff5710780e3d9bfc41027c142725089e5 Author: Paul Kocialkowski Date: Wed Dec 23 11:58:35 2015 +0100 regulator: lp872x: Get rid of duplicate reference to DVS GPIO The lp872x structure holds a reference to the DVS GPIO, but it is never actually used anywhere, since a first reference exists from the lp872x_dvs structure. Signed-off-by: Paul Kocialkowski Signed-off-by: Mark Brown drivers/regulator/lp872x.c | 2 -- 1 file changed, 2 deletions(-) commit 1f97fe4777217123428e3212a95a67c0de7a0132 Author: Paul Kocialkowski Date: Wed Dec 23 11:58:34 2015 +0100 regulator: lp872x: Add missing of_match in regulators descriptions In order to select the regulators via of_find_regulator_by_node (and thus use them in devicetree), defining of_match for each regulator is required. Signed-off-by: Paul Kocialkowski Signed-off-by: Mark Brown drivers/regulator/lp872x.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 6096828e68cc15c0ddc5895036f07c62558b604c Author: Jisheng Zhang Date: Wed Dec 23 19:05:39 2015 +0800 spi: dw: Use SPI_TMOD_TR rather than magic const 0 to set tmode The TMODE available value is well defined and documented in the header file. Use it and remove the comment. Signed-off-by: Jisheng Zhang Signed-off-by: Mark Brown drivers/spi/spi-dw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b92c453d520ebf0703f8195e9f2c6e7522b85e1d Author: Thomas Gleixner Date: Wed Dec 23 12:35:21 2015 +0100 Revert "x86/kvm: On KVM re-enable (e.g. after suspend), update clocks" This reverts commit 677a73a9aa54. This patch was not meant to be merged and has issues. Revert it. Requested-by: Andy Lutomirski Cc: Borislav Petkov Signed-off-by: Thomas Gleixner arch/x86/kvm/x86.c | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 72 insertions(+), 3 deletions(-) commit b0918d9f476a8434b055e362b83fa4fd1d462c3f Author: Vegard Nossum Date: Fri Dec 11 15:54:16 2015 +0100 udf: limit the maximum number of indirect extents in a row udf_next_aext() just follows extent pointers while extents are marked as indirect. This can loop forever for corrupted filesystem. Limit number the of indirect extents we are willing to follow in a row. [JK: Updated changelog, limit, style] Signed-off-by: Vegard Nossum Cc: stable@vger.kernel.org Cc: Jan Kara Cc: Quentin Casasnovas Cc: Andrew Morton Signed-off-by: Jan Kara fs/udf/inode.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 5ca636b986eecce09d4935d490f8d16248b6ce08 Author: Dan Streetman Date: Mon Dec 21 12:52:10 2015 -0500 crypto: 842 - remove WARN inside printk Remove the WARN() from the beN_to_cpu macro, which is used as a param to a pr_debug() call. With a certain kernel config, this printk-in-printk results in the no_printk() macro trying to recursively call the no_printk() macro, and since macros can't recursively call themselves a build error results. Reported-by: Randy Dunlap Signed-off-by: Dan Streetman Signed-off-by: Herbert Xu lib/842/842_decompress.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) commit 4537992be7cb9954d19647bec4008ee39ad77217 Author: Cyrille Pitchen Date: Thu Dec 17 18:13:08 2015 +0100 crypto: atmel-aes - add debug facilities to monitor register accesses. This feature should not be enabled in release but can be usefull for developers who need to monitor register accesses at some specific places. Set the AES_FLAGS_DUMP_REG flag inside dd->flags to start monitoring the I/O accesses, clear it to stop monitoring. Signed-off-by: Cyrille Pitchen Signed-off-by: Herbert Xu drivers/crypto/atmel-aes.c | 115 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 114 insertions(+), 1 deletion(-) commit d4419548dba9575934fee6d9fa20a480257889b2 Author: Cyrille Pitchen Date: Thu Dec 17 18:13:07 2015 +0100 crypto: atmel-aes - add support to GCM mode This patch adds support to the GCM mode. Signed-off-by: Cyrille Pitchen Signed-off-by: Herbert Xu drivers/crypto/Kconfig | 1 + drivers/crypto/atmel-aes-regs.h | 10 + drivers/crypto/atmel-aes.c | 453 +++++++++++++++++++++++++++++++++++++++- 3 files changed, 462 insertions(+), 2 deletions(-) commit 129f8bb6bb882d6af49f83a1369215aeb0ccb95d Author: Cyrille Pitchen Date: Thu Dec 17 18:13:06 2015 +0100 crypto: atmel-aes - change the DMA threshold Increase the DMA threshold to 256: PIO accesses offer better performances than the DMA when processing small amounts of data. Signed-off-by: Cyrille Pitchen Signed-off-by: Herbert Xu drivers/crypto/atmel-aes.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fcac83656a3e3b15e7a16b4a64ee5067eecec446 Author: Cyrille Pitchen Date: Thu Dec 17 18:13:05 2015 +0100 crypto: atmel-aes - fix the counter overflow in CTR mode Depending on its hardware version, the AES IP provides either a 16 or a 32 bit counter. However the CTR mode expects the size of the counter to be the same as the size of the cipher block, ie 128 bits for AES. This patch detects and handles counter overflows. Signed-off-by: Cyrille Pitchen Signed-off-by: Herbert Xu drivers/crypto/atmel-aes.c | 117 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 115 insertions(+), 2 deletions(-) commit da7b850edb68ab6e3e3cc8593c6ce2c577b6b61c Author: Cyrille Pitchen Date: Thu Dec 17 18:13:04 2015 +0100 crypto: atmel-aes - fix atmel-ctr-aes driver for RFC 3686 crypto_rfc3686_alloc() in crypto/ctr.c expects to be used with a stream cipher (alg->cra_blocksize == 1). Signed-off-by: Cyrille Pitchen Signed-off-by: Herbert Xu drivers/crypto/atmel-aes.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e37a7e55505176ae83d376585c2ebd37d4258910 Author: Cyrille Pitchen Date: Thu Dec 17 18:13:03 2015 +0100 crypto: atmel-aes - create sections to regroup functions by usage This patch only creates sections to regroup functions by usage. This will help to integrate the GCM support patch later by making the difference between shared/common and specific code. Hence current sections are: - Shared functions: common code which will be reused by the GCM support. - CPU transfer: handles transfers monitored by the CPU (PIO accesses). - DMA transfer: handles transfers monitored by the DMA controller. - AES async block ciphers: dedicated to the already supported block ciphers - Probe functions: used to register all crypto algorithms. Signed-off-by: Cyrille Pitchen Signed-off-by: Herbert Xu drivers/crypto/atmel-aes.c | 210 +++++++++++++++++++++++---------------------- 1 file changed, 108 insertions(+), 102 deletions(-) commit afbac17e676fb3a8b8821e67e642f3bc1691f50a Author: Cyrille Pitchen Date: Thu Dec 17 18:13:02 2015 +0100 crypto: atmel-aes - fix typo and indentation Dummy patch to fix typo and indentation. Signed-off-by: Cyrille Pitchen Signed-off-by: Herbert Xu drivers/crypto/atmel-aes.c | 56 +++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 31 deletions(-) commit 2bfd04cde2b34e65d0954ff8372a7edf116afe41 Author: Cyrille Pitchen Date: Thu Dec 17 18:13:01 2015 +0100 crypto: atmel-aes - use SIZE_IN_WORDS() helper macro This is a dummy cosmetic patch. Signed-off-by: Cyrille Pitchen Signed-off-by: Herbert Xu drivers/crypto/atmel-aes.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bbe628ed897d728d38c4035381d12b2f308fac6f Author: Cyrille Pitchen Date: Thu Dec 17 18:13:00 2015 +0100 crypto: atmel-aes - improve performances of data transfer This patch totally reworks data transfer. 1 - DMA The new code now fully supports scatter-gather lists hence reducing the number of interrupts in some cases. Also buffer alignments are better managed to avoid useless copies. 2 - CPU The new code allows to use PIO accesses even when transferring more than one AES block, so futher patches could tune the DMA threshold (ATMEL_AES_DMA_THRESHOLD). Moreover, CPU transfers now have a chance to be processed synchronously, hence reducing the latency by avoiding context switches when possible (less interrupts to process, less scheduling of the 'done' task). Indeed the 'DATA READY' bit is polled only one time in the Interrupt Status Register before enabling then waiting for the associated interrupt. In some condition, this single poll is enough as the data have already been processed by the AES hardware and so are ready. Signed-off-by: Cyrille Pitchen Signed-off-by: Herbert Xu drivers/crypto/atmel-aes.c | 764 +++++++++++++++++++++++---------------------- 1 file changed, 386 insertions(+), 378 deletions(-) commit 2a377828914f98aabcfeb0cb620f9b7ab808d3af Author: Cyrille Pitchen Date: Thu Dec 17 17:48:46 2015 +0100 crypto: atmel-aes - fix atmel_aes_remove() Add missing call to atmel_aes_buff_cleanup(). Signed-off-by: Cyrille Pitchen Signed-off-by: Herbert Xu drivers/crypto/atmel-aes.c | 1 + 1 file changed, 1 insertion(+) commit 820599a0ea5f99112322011021e637c40f0048db Author: Cyrille Pitchen Date: Thu Dec 17 17:48:45 2015 +0100 crypto: atmel-aes - remove useless AES_FLAGS_DMA flag Since the 'done' task code was split into atmel_aes_cpu_complete() and atmel_aes_dma_complete(), the AES_FLAGS_DMA flag has become useless. Signed-off-by: Cyrille Pitchen Signed-off-by: Herbert Xu drivers/crypto/atmel-aes.c | 37 +++++++++++++++---------------------- 1 file changed, 15 insertions(+), 22 deletions(-) commit 13c7f876c2aac59863f6d28bd72e98bc45be3c9a Author: Cyrille Pitchen Date: Thu Dec 17 17:48:44 2015 +0100 crypto: atmel-aes - reduce latency of DMA completion atmel_aes_dma_callback() now directly calls the 'resume' callback instead of scheduling the done task, which in turn only calls the very same 'resume' callback. Signed-off-by: Cyrille Pitchen Signed-off-by: Herbert Xu drivers/crypto/atmel-aes.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bd5f43decd61b52210910b14f132f083923fa6fa Author: Cyrille Pitchen Date: Thu Dec 17 17:48:43 2015 +0100 crypto: atmel-aes - remove unused 'err' member of struct atmel_aes_dev This 'err' member was initialized to 0 but its value never changed. Signed-off-by: Cyrille Pitchen Signed-off-by: Herbert Xu drivers/crypto/atmel-aes.c | 5 ----- 1 file changed, 5 deletions(-) commit 10f12c1b86d8decf95e110cd2f7ec0c0e19801ec Author: Cyrille Pitchen Date: Thu Dec 17 17:48:42 2015 +0100 crypto: atmel-aes - rework crypto request completion This patch introduces a new callback 'resume' in the struct atmel_aes_dev. This callback is run to resume/complete the processing of the crypto request when woken up by I/O events such as AES interrupts or DMA completion. This callback will help implementing the GCM mode support in further patches. Signed-off-by: Cyrille Pitchen Signed-off-by: Herbert Xu drivers/crypto/atmel-aes.c | 74 +++++++++++++++++++++++++++++----------------- 1 file changed, 47 insertions(+), 27 deletions(-) commit 77dacf5fc511484eab47f802d7369c03175c2b9e Author: Cyrille Pitchen Date: Thu Dec 17 17:48:41 2015 +0100 crypto: atmel-aes - simplify the configuration of the AES IP This patch reworks the AES_FLAGS_* to simplify the configuration of the AES IP. Signed-off-by: Cyrille Pitchen Signed-off-by: Herbert Xu drivers/crypto/atmel-aes.c | 216 +++++++++++++++++++-------------------------- 1 file changed, 93 insertions(+), 123 deletions(-) commit 794595d2047a31702905b3666145c6a59bfee472 Author: Cyrille Pitchen Date: Thu Dec 17 17:48:40 2015 +0100 crypto: atmel-aes - remove useless write in the Control Register As claimed by the datasheet, writing 0 into the Control Register has no effet. So we remove this useless register access. Signed-off-by: Cyrille Pitchen Signed-off-by: Herbert Xu drivers/crypto/atmel-aes.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit ccbf72980b22b04f0b7afb2b82eb699ee7da635c Author: Cyrille Pitchen Date: Thu Dec 17 17:48:39 2015 +0100 crypto: atmel-aes - make crypto request queue management more generic This patch changes atmel_aes_handle_queue() to make it more generic. The function argument is now a pointer to struct crypto_async_request, which is the common base of struct ablkcipher_request and struct aead_request. Also this patch introduces struct atmel_aes_base_ctx which will be the common base of all the transformation contexts. Hence the very same queue will be used to manage both block cipher and AEAD requests (such as gcm and authenc implemented in further patches). Signed-off-by: Cyrille Pitchen Signed-off-by: Herbert Xu drivers/crypto/atmel-aes.c | 75 ++++++++++++++++++++++++++++++---------------- 1 file changed, 49 insertions(+), 26 deletions(-) commit cdfab4a7e3f16224e3a52dfe990a9bd870363690 Author: Cyrille Pitchen Date: Thu Dec 17 17:48:38 2015 +0100 crypto: atmel-aes - change atmel_aes_write_ctrl() signature This patch changes the signature of atmel_aes_write_ctrl() to make it more generic. This will be used by future patches when implementing new block cipher modes such as GCM. Especially atmel_aes_hw_init() is now called outside atmel_aes_write_ctrl(): this allows to call atmel_aes_write_ctrl() many times, still initializing the hardware only once. Indeed, the support of GCM will require to update the Mode Register and the IV when processing a single request. Signed-off-by: Cyrille Pitchen Signed-off-by: Herbert Xu drivers/crypto/atmel-aes.c | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) commit aab0a39b281e9a26ae991f0737f2fa6f710d0dab Author: Cyrille Pitchen Date: Thu Dec 17 17:48:37 2015 +0100 crypto: atmel-aes - propagate error from atmel_aes_hw_version_init() Before this patch atmel_aes_hw_version_init() had no returned value. However it calls atmel_aes_hw_init(), which may fail. So check the returned code of atmel_aes_hw_init() and propagate error if needed. Signed-off-by: Cyrille Pitchen Signed-off-by: Herbert Xu drivers/crypto/atmel-aes.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) commit 7f1cbbc5145fcd6f357cf8932e1d5410777f4d65 Author: Cyrille Pitchen Date: Thu Dec 17 17:48:36 2015 +0100 crypto: atmel-aes - remove unused header includes Hash headers have nothing to do with AES block ciphers. Signed-off-by: Cyrille Pitchen Signed-off-by: Herbert Xu drivers/crypto/atmel-aes.c | 3 --- 1 file changed, 3 deletions(-) commit 924a8bc79636692d43179ff2b08f25f11e82ab7f Author: Cyrille Pitchen Date: Thu Dec 17 17:48:35 2015 +0100 crypto: atmel-aes - fix unregistration order of crypto algorithms This dummy patch fixes atmel_aes_unregister_algs() so crypto algorithms are unregistered in the reverse order they were registered by atmel_aes_register_algs(). Signed-off-by: Cyrille Pitchen Signed-off-by: Herbert Xu drivers/crypto/atmel-aes.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 88efd9a999e032d68bccfb80c4b7446a217686de Author: Cyrille Pitchen Date: Thu Dec 17 17:48:34 2015 +0100 crypto: atmel-aes - change algorithm priorities Increase the algorithm priorities so the hardware acceleration is now preferred to the software computation: the "aes-generice" driver uses 100 as priority. Signed-off-by: Cyrille Pitchen Signed-off-by: Herbert Xu drivers/crypto/atmel-aes.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) commit c0b28d8c32a42c6a54b5ddee06ce078d99f93e51 Author: Cyrille Pitchen Date: Thu Dec 17 17:48:33 2015 +0100 crypto: atmel-aes - constify value argument of atmel_aes_write_n() atmel_aes_write_n() should not modify its value argument. Signed-off-by: Cyrille Pitchen Signed-off-by: Herbert Xu drivers/crypto/atmel-aes.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 973e209d743e22e9d514cd3378281608845456f6 Author: Leilei Zhao Date: Thu Dec 17 17:48:32 2015 +0100 crypto: atmel-aes - add new version Add new version of atmel-aes available with SAMA5D2 devices. Signed-off-by: Leilei Zhao Signed-off-by: Herbert Xu drivers/crypto/atmel-aes.c | 5 +++++ 1 file changed, 5 insertions(+) commit f80e39e0225c01ee68764ef7594c3a29ab5ebabb Merge: 59c8231 822ad70 Author: Takashi Iwai Date: Wed Dec 23 08:33:52 2015 +0100 Merge tag 'asoc-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next ASoC: Updates for v4.5 This is quite a busy release on the driver front with a lot of new drivers being added but comparatively quiet on the core side with only one big change going in and that a fairly straightforward refactoring. - Conversion of the array of DAI links to a list by Mengdong Lin, supporting dynamically adding and removing DAI links. - Some more fixes for the topology code, though it is still not final and ready for enabling in production. We really need to get to the point where that can be done. - A pile of changes for Intel SkyLake drivers which hopefully deliver some useful initial functionality for systems with this chipset, though there is more work still to come. - New drivers for a number of Imagination Technologies IPs. - Lots of new features and cleanups for the Renesas drivers. - ANC support for WM5110. - New driver for Atmel class D speaker drivers. - New drivers for Cirrus CS47L24 and WM1831. - New driver for Dialog DA7128. - New drivers for Realtek RT5659 and RT56156. - New driver for Rockchip RK3036. - New driver for TI PC3168A commit 59c8231089be96165735585694a801ae58ec6c95 Merge: de5126c 0fb0b82 Author: Takashi Iwai Date: Wed Dec 23 08:33:34 2015 +0100 Merge branch 'for-linus' into for-next Conflicts: drivers/gpu/drm/i915/intel_pm.c commit ade1ba7346070709856d7e38f8d1a77b7aa710aa Merge: fd3e14f 7447a2b Author: Dave Airlie Date: Wed Dec 23 14:22:09 2015 +1000 Merge tag 'drm-intel-next-2015-12-18' of git://anongit.freedesktop.org/drm-intel into drm-next - fix atomic watermark recomputation logic (Maarten) - modeset sequence fixes for LPT (Ville) - more kbl enabling&prep work (Rodrigo, Wayne) - first bits for mst audio - page dirty tracking fixes from Dave Gordon - new get_eld hook from Takashi, also included in the sound tree - fixup cursor handling when placed at address 0 (Ville) - refactor VBT parsing code (Jani) - rpm wakelock debug infrastructure ( Imre) - fbdev is pinned again (Chris) - tune the busywait logic to avoid wasting cpu cycles (Chris) * tag 'drm-intel-next-2015-12-18' of git://anongit.freedesktop.org/drm-intel: (81 commits) drm/i915: Update DRIVER_DATE to 20151218 drm/i915/skl: Default to noncoherent access up to F0 drm/i915: Only spin whilst waiting on the current request drm/i915: Limit the busy wait on requests to 5us not 10ms! drm/i915: Break busywaiting for requests on pending signals drm/i915: don't enable autosuspend on platforms without RPM support drm/i915/backlight: prefer dev_priv over dev pointer drm/i915: Disable primary plane if we fail to reconstruct BIOS fb (v2) drm/i915: Pin the ifbdev for the info->system_base GGTT mmapping drm/i915: Set the map-and-fenceable flag for preallocated objects drm/i915: mdelay(10) considered harmful drm/i915: check that we are in an RPM atomic section in GGTT PTE updaters drm/i915: add support for checking RPM atomic sections drm/i915: check that we hold an RPM wakelock ref before we put it drm/i915: add support for checking if we hold an RPM reference drm/i915: use assert_rpm_wakelock_held instead of opencoding it drm/i915: add assert_rpm_wakelock_held helper drm/i915: remove HAS_RUNTIME_PM check from RPM get/put/assert helpers drm/i915: get a permanent RPM reference on platforms w/o RPM support drm/i915: refactor RPM disabling due to RC6 being disabled ... commit fd3e14ffbd9ec7593ba4dafc9452a91373a4df05 Merge: 9116199 eafbbd9 Author: Dave Airlie Date: Wed Dec 23 14:15:26 2015 +1000 Merge branch 'drm-next-4.5' of git://people.freedesktop.org/~agd5f/linux into drm-next [airlied: fixup build problems on arm - added errno.h include] * 'drm-next-4.5' of git://people.freedesktop.org/~agd5f/linux: (152 commits) amd/powerplay: fix copy paste typo in hardwaremanager.c amd/powerplay: disable powerplay by default initially amd/powerplay: don't enable ucode fan control if vbios has no fan table drm/amd/powerplay: show gpu load when print gpu performance for Cz. (v2) drm/amd/powerplay: check whether need to enable thermal control. (v2) drm/amd/powerplay: add point check to avoid NULL point hang. drm/amdgpu/powerplay: Program a calculated value as Deep Sleep clock. drm/amd/powerplay: Don't return an error if fan table is missing drm/powerplay/hwmgr: log errors in tonga_hwmgr_backend_init drm/powerplay: add debugging output to processpptables.c drm/powerplay: add debugging output to tonga_processpptables.c amd/powerplay: Add structures required to report configuration change amd/powerplay: Fix get dal power level amd\powerplay Implement get dal power level drm/amd/powerplay: display gpu load when print performance for tonga. drm/amdgpu/powerplay: enable sysfs and debugfs interfaces late drm/amd/powerplay: move shared function of vi to hwmgr. (v2) drm/amd/powerplay: check whether enable dpm in powerplay. drm/amd/powerplay: fix bug that dpm funcs in debugfs/sysfs missing. drm/amd/powerplay: fix boolreturn.cocci warnings ... commit 5072cfc40a80cea3749fd3413b3896630d8c787e Author: Felipe Balbi Date: Tue Dec 22 21:56:10 2015 -0600 usb: dwc3: of-simple: fix build warning on !PM if we have a !PM kernel build, our runtime suspend/resume callbacks will be left defined but unused. Add a ifdef CONFIG_PM guard. Signed-off-by: Felipe Balbi drivers/usb/dwc3/dwc3-of-simple.c | 2 ++ 1 file changed, 2 insertions(+) commit d9261898a4b2c143c28568dc686a1becfc637a99 Author: John Youn Date: Tue Dec 22 12:23:20 2015 -0800 usb: dwc3: gadget: don't send extra ZLP If the request->length is zero, a ZLP should already be sent due to that and another ZLP is not needed to terminate the transfer. Fixes: 04c03d10e507 ("usb: dwc3: gadget: handle request->zero") Signed-off-by: John Youn Signed-off-by: Felipe Balbi drivers/usb/dwc3/gadget.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 746bfe63bba37ad55956b7377c9af494e7e28929 Author: Yoshihiro Shimoda Date: Mon Dec 21 18:40:04 2015 +0900 usb: gadget: renesas_usb3: add support for Renesas USB3.0 peripheral controller R-Car H3 has USB3.0 peripheral controllers. This controller's has the following features: - Supports super, high and full speed - Contains 30 pipes for bulk or interrupt transfer - Contains dedicated DMA controller This driver doesn't support the dedicated DMAC for now. Acked-by: Rob Herring Signed-off-by: Yoshihiro Shimoda Signed-off-by: Felipe Balbi .../devicetree/bindings/usb/renesas_usb3.txt | 23 + drivers/usb/gadget/udc/Kconfig | 11 + drivers/usb/gadget/udc/Makefile | 1 + drivers/usb/gadget/udc/renesas_usb3.c | 1975 ++++++++++++++++++++ 4 files changed, 2010 insertions(+) commit dbb7e70a69288980c8a89fdb5ffb97e06b806b19 Author: Tony Lindgren Date: Mon Dec 21 10:06:52 2015 -0800 ARM: OMAP2+: Fix randconfig build warning for dm814_pllss_data Fix warning for arch/arm/mach-omap2/prm_common.c:666:35: warning: ‘dm814_pllss_data’ defined but not used [-Wunused-variable]". This can happen if CONFIG_SOC_TI81XX is not selected. Signed-off-by: Tony Lindgren arch/arm/mach-omap2/prm_common.c | 2 ++ 1 file changed, 2 insertions(+) commit ce6dd266d535d66ac90abdd0241e7e5be4890568 Merge: 471a9ab 5e63dcc Author: Michael Turquette Date: Tue Dec 22 16:49:38 2015 -0800 Merge branch 'clk-bcm2835' into clk-next commit 5e63dcc74b3066659ea53aeefbee1fc1d79f4b6f Author: Eric Anholt Date: Tue Dec 15 15:35:58 2015 -0800 clk: bcm2835: Add a driver for the auxiliary peripheral clock gates. There are a pair of SPI masters and a mini UART that were last minute additions. As a result, they didn't get integrated in the same way as the other gates off of the VPU clock in CPRMAN. Signed-off-by: Eric Anholt Signed-off-by: Michael Turquette drivers/clk/bcm/Makefile | 1 + drivers/clk/bcm/clk-bcm2835-aux.c | 85 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+) commit 9f697864b37158b06ace36a34b02ea43cbb4fd04 Author: Eric Anholt Date: Tue Dec 15 15:35:57 2015 -0800 clk: bcm2835: Add bindings for the auxiliary peripheral clock gates. These will be used for enabling UART1, SPI1, and SPI2. Signed-off-by: Eric Anholt Acked-by: Rob Herring Signed-off-by: Michael Turquette .../bindings/clock/brcm,bcm2835-aux-clock.txt | 31 ++++++++++++++++++++++ include/dt-bindings/clock/bcm2835-aux.h | 17 ++++++++++++ 2 files changed, 48 insertions(+) commit 822ad70a2f5c420da5baa9f4354e6b7813ca6da9 Merge: 1b7e820 d0d1eed Author: Mark Brown Date: Wed Dec 23 00:38:14 2015 +0000 Merge remote-tracking branch 'asoc/topic/rt5677' into asoc-next commit 1b7e820462d58302280e5e97f01f3ab7351612fb Merge: b574a19 fec89f9 Author: Mark Brown Date: Wed Dec 23 00:38:12 2015 +0000 Merge tag 'asoc-v4.5' into asoc-next ASoC: Updates for v4.5 - Some more fixes for the topology code, though it is still not final and ready for enabling in production. We really need to get to the point where that can be done. - A pile of changes for Intel SkyLake drivers which hopefully deliver some useful initial functionality for systems with this chipset, though there is more work still to come. - New drivers for a number of Imagination Technologies IPs. - Lots of new features and cleanups for the Renesas drivers. - ANC support for WM5110. - New driver for Atmel class D speaker drivers. - New drivers for Cirrus CS47L24 and WM1831. - New driver for Dialog DA7128. - New drivers for Realtek RT5659 and RT56156. - New driver for Rockchip RK3036. # gpg: Signature made Wed 23 Dec 2015 00:36:01 GMT using RSA key ID 5D5487D0 # gpg: Oops: keyid_from_fingerprint: no pubkey # gpg: Oops: keyid_from_fingerprint: no pubkey # gpg: key 00000000 occurs more than once in the trustdb # gpg: key 16005C11: no public key for trusted key - skipped # gpg: key 16005C11 marked as ultimately trusted # gpg: Good signature from "Mark Brown " # gpg: aka "Mark Brown " # gpg: aka "Mark Brown " # gpg: aka "Mark Brown " # gpg: aka "Mark Brown " # gpg: aka "Mark Brown " commit b574a192bc4cd08e475800b16139e4cf6c8ffcac Merge: 4ef7675 3dd5fc0 Author: Mark Brown Date: Wed Dec 23 00:38:11 2015 +0000 Merge tag 'asoc-fix-v4.4-rc6' into asoc-linus ASoC: Fixes for v4.4 A collection of small driver specific fixes here, nothing that'll affect users who don't have the devices concerned. At least the wm8974 bug indicates that there's not too many users of some of these devices. # gpg: Signature made Wed 23 Dec 2015 00:25:40 GMT using RSA key ID 5D5487D0 # gpg: Oops: keyid_from_fingerprint: no pubkey # gpg: Oops: keyid_from_fingerprint: no pubkey # gpg: key 00000000 occurs more than once in the trustdb # gpg: key 16005C11: no public key for trusted key - skipped # gpg: key 16005C11 marked as ultimately trusted # gpg: Good signature from "Mark Brown " # gpg: aka "Mark Brown " # gpg: aka "Mark Brown " # gpg: aka "Mark Brown " # gpg: aka "Mark Brown " # gpg: aka "Mark Brown " commit d0d1eedd5ad345f16234311b375bf94d6c90e14b Author: Bard Liao Date: Fri Dec 18 10:16:23 2015 +0800 ASoC: rt5677: set PLL_CTRL2 non-volatile There is a status bit on RT5677_PLL1_CTRL2 and RT5677_PLL2_CTRL2. That's why those registers are set volatile. However, the status bit is currently not used by codec driver. So, it should be no problem if we set them non-volatile. The purpose of setting them non-volatile is to restore the setting after a syspend/resume cycle. Signed-off-by: Bard Liao Signed-off-by: Mark Brown sound/soc/codecs/rt5677.c | 2 -- 1 file changed, 2 deletions(-) commit fec89f9465b8858f91cc7041c5a64f0481c45a42 Merge: 2d850b1 0b170f7 47d358b fa1a51f Author: Mark Brown Date: Wed Dec 23 00:23:54 2015 +0000 Merge remote-tracking branches 'asoc/topic/wm8962', 'asoc/topic/wm8974' and 'asoc/topic/wm9713' into asoc-next commit 2d850b1e6cbeacd8be96313d74e9a7b10bdd3f0e Merge: 14418aa 319c325 4b6c56c b70381c 28b5df18 Author: Mark Brown Date: Wed Dec 23 00:23:52 2015 +0000 Merge remote-tracking branches 'asoc/topic/tegra', 'asoc/topic/topology', 'asoc/topic/wm8903' and 'asoc/topic/wm8904' into asoc-next commit 14418aa7d4395651645c5f36bfe42324e27e0360 Merge: d1587e3 9bdca82 e6e969f bfbcab7 0d3f3c9 Author: Mark Brown Date: Wed Dec 23 00:23:51 2015 +0000 Merge remote-tracking branches 'asoc/topic/samsung', 'asoc/topic/sh', 'asoc/topic/ssm2518' and 'asoc/topic/sti' into asoc-next commit d1587e345c4f93e0df805fc3e276ce4d3db97e21 Merge: 81b6863 166765e e2133b6 1aa844c Author: Mark Brown Date: Wed Dec 23 00:23:49 2015 +0000 Merge remote-tracking branches 'asoc/topic/rt286', 'asoc/topic/rt5616' and 'asoc/topic/rt5677' into asoc-next commit 81b6863cae0ca371ebe8bd176548be4d2741e6bb Merge: 9451a46 d1afdf3 18560a4 b4c83b1 5f4f276 5938448 Author: Mark Brown Date: Wed Dec 23 00:23:46 2015 +0000 Merge remote-tracking branches 'asoc/topic/pxa', 'asoc/topic/qcom', 'asoc/topic/rcar', 'asoc/topic/rk3036' and 'asoc/topic/rockchip' into asoc-next commit 9451a469280adb721e3eca5eb3526c3331c2847d Merge: b9546d0 a1e5e7e 5c27087 c1f2a34 Author: Mark Brown Date: Wed Dec 23 00:23:44 2015 +0000 Merge remote-tracking branches 'asoc/topic/kcontrol', 'asoc/topic/max98357a' and 'asoc/topic/mtk' into asoc-next commit b9546d09b178a8a6b3741958c85a18f2787ff37c Merge: 9764350 0bc5680 3950362 940a5a0 Author: Mark Brown Date: Wed Dec 23 00:23:43 2015 +0000 Merge remote-tracking branches 'asoc/topic/fsl-spdif', 'asoc/topic/img' and 'asoc/topic/intel' into asoc-next commit 9764350d712d8c0bfb41da5bfd52ba7458b245ec Merge: 64dc98d 906c7d6 0032e9d 34e684f 25e5ef9 a2a4d60 Author: Mark Brown Date: Wed Dec 23 00:23:40 2015 +0000 Merge remote-tracking branches 'asoc/topic/dpcm', 'asoc/topic/dwc', 'asoc/topic/fsl', 'asoc/topic/fsl-asrc' and 'asoc/topic/fsl-esai' into asoc-next commit 64dc98d374967ca1a17e0dfa1ec040d7f9d09e12 Merge: 38cfbc1 501f72e 3de7c42 800cff7 Author: Mark Brown Date: Wed Dec 23 00:23:39 2015 +0000 Merge remote-tracking branches 'asoc/topic/da7219', 'asoc/topic/dai-link' and 'asoc/topic/doc' into asoc-next commit 38cfbc12c84890ad790c36f9a8ca9527a3b99409 Merge: 8ebdab6 0f611e2 3f317c9 e05c25a Author: Mark Brown Date: Wed Dec 23 00:23:37 2015 +0000 Merge remote-tracking branches 'asoc/topic/atmel-classd', 'asoc/topic/const' and 'asoc/topic/da7218' into asoc-next commit 8ebdab65feea540984495a1a22f3d14d9b99af76 Merge: 1ab4f85 34015f5 95fe959 5547ba6 50860e1 Author: Mark Brown Date: Wed Dec 23 00:23:35 2015 +0000 Merge remote-tracking branches 'asoc/topic/ac97', 'asoc/topic/adsp', 'asoc/topic/ak4613' and 'asoc/topic/atmel' into asoc-next commit 1ab4f8519afc6aca3a9fb03a21b1d8625be43ebb Merge: 1033040 6b803c6 Author: Mark Brown Date: Wed Dec 23 00:23:34 2015 +0000 Merge remote-tracking branch 'asoc/topic/sunxi' into asoc-next commit 10330401d8a279b75e76912a2f3771008699de5a Merge: 89c172e 9761c0f Author: Mark Brown Date: Wed Dec 23 00:23:33 2015 +0000 Merge remote-tracking branch 'asoc/topic/rt5645' into asoc-next commit 89c172e2aa3063b3860ef1ace33e9a27c45a5aa7 Merge: a93202f a9b17a6 Author: Mark Brown Date: Wed Dec 23 00:23:33 2015 +0000 Merge remote-tracking branch 'asoc/topic/pcm3168a' into asoc-next commit a93202fa7b450a2783feecc571dcd0fee55c91c4 Merge: 3b88210 61b0088 Author: Mark Brown Date: Wed Dec 23 00:23:32 2015 +0000 Merge remote-tracking branch 'asoc/topic/pcm-list' into asoc-next commit 3b88210da3a6af69e8bc7a6237e72c6ef5a2ca45 Merge: 6b8bd8b 20bb018 Author: Mark Brown Date: Wed Dec 23 00:23:32 2015 +0000 Merge remote-tracking branch 'asoc/topic/dapm' into asoc-next commit 6b8bd8b2d7937fc633725c252c3a9ed9fff47098 Merge: 3dd5fc0 3451eb4 Author: Mark Brown Date: Wed Dec 23 00:23:31 2015 +0000 Merge remote-tracking branch 'asoc/topic/arizona' into asoc-next commit b0417a2870eff30cc102fbc34982b6ce06ce8c6f Author: Zhao Qiang Date: Tue Dec 15 10:41:18 2015 +0800 powerpc/p1010rdb: Update dts for pcie interrupt-map p1010rdb uses the irq[4:5] for inta and intb to pcie, it is active-high, so set it. Signed-off-by: Zhao Qiang Signed-off-by: Scott Wood arch/powerpc/boot/dts/fsl/p1010rdb.dtsi | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 2749539b4bf8231b3a20ad759ec8c559ec29292c Author: Scott Wood Date: Fri Dec 4 16:31:13 2015 -0600 powerpc/e6500: add locking to hugetlb e6500 has threads but does not have TLB write conditional. Thus, the hugetlb code needs to take the same lock that the normal TLB miss handlers take, to ensure that the tlbsx and tlbwe are atomic. Signed-off-by: Scott Wood arch/powerpc/mm/hugetlbpage-book3e.c | 46 ++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) commit 9d68e7accf28d0ffe5bf44aae4e64d744fa97337 Author: li pengbo Date: Thu Nov 19 10:52:04 2015 +0800 powerpc/85xx: Enable TWR_P102x in mpc85xx_basic_defconfig Enable TWR_P102x option by default in mpc85xx_basic_defconfig to support p1025twr board. Signed-off-by: Pengbo Li Signed-off-by: Scott Wood arch/powerpc/configs/mpc85xx_basic_defconfig | 1 + 1 file changed, 1 insertion(+) commit 433c858a61ac4192f821b71cd1370886e8395863 Author: Daniel Walker Date: Thu Nov 5 16:31:21 2015 -0800 powerpc/85xx: mpc85xx ADS: remove pci exclude This code was reworked in commit, 905e75c46dba5f3061049277e4eb7110beedba43 This change removed the fsl_add_bridge() which originally was above the addition of the pci_exclude_device function. I think the assumption was that the pci_exclude_device would prevent changes to the bridge PCI config after it's been added. It seems it wasn't fully tested on MPC85xx ADS because if you move the fsl_add_bridge() the pci_exclude_device is set in the machine description then you can never update the PCI Config since the exclude prevents it. This disrupts things like DMA. This issue was extensively debugged by David Beazley. Cc: xe-kernel@external.cisco.com Cc: dbeazley@cisco.com Cc: dwalker@fifo99.com Signed-off-by: Daniel Walker Signed-off-by: Scott Wood arch/powerpc/platforms/85xx/mpc85xx_ads.c | 15 --------------- 1 file changed, 15 deletions(-) commit 4e9de5e9701f4f9206fc25249729881f8394850d Author: Igal Liberman Date: Thu Nov 5 12:23:06 2015 +0200 powerpc/mpc85xx: Update B4 FMan MURAM size FMan V3H has 2 different MURAM sizes: In B4860/4420 the MURAM size is 512KB. In T4240 and T2080 the MURAM size is 384KB. The MURAM size in FMan V3H device tree is 384KB. This patch updates the MURAM size for B4 to 512KB. Signed-off-by: Igal Liberman Signed-off-by: Scott Wood arch/powerpc/boot/dts/fsl/b4si-post.dtsi | 5 +++++ 1 file changed, 5 insertions(+) commit f53850b5dc625ca37ae84b47f4f92b1d55df2aa0 Author: Tony Lindgren Date: Tue Dec 22 15:40:01 2015 -0800 ARM: OMAP2+: Add support for dm814x and dra62x usb The usb phys are different on dm814x compared to dm816x so we need to use the clkdcoldo output for usb. Cc: Paul Walmsley Signed-off-by: Tony Lindgren arch/arm/mach-omap2/omap_hwmod_81xx_data.c | 38 +++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 9 deletions(-) commit c757fda8937b30f0691f7ecfaaa2d3b977aee607 Author: Tony Lindgren Date: Tue Dec 22 15:39:41 2015 -0800 ARM: OMAP2+: Add mmc hwmod entries for dm814x Let's add mmc entries for dm814x. To do that, we need to rename some entries to be common for 81xx. Cc: Paul Walmsley Signed-off-by: Tony Lindgren arch/arm/mach-omap2/omap_hwmod_81xx_data.c | 93 ++++++++++++++++++++++++++---- 1 file changed, 83 insertions(+), 10 deletions(-) commit 418d4ebcfe45d0e88ea2a41f4d7a529eba0a4598 Author: Tony Lindgren Date: Tue Dec 22 15:39:52 2015 -0800 ARM: OMAP2+: Update 81xx clock and power domains for default, active and sgx These offsets seem to be common, so let's rename the defines. And let's set up the default_l3_slow_81xx_clkdm with active and default powerdomains for dm814x. These are needed for usb to work. Cc: Paul Walmsley Cc: Tero Kristo Signed-off-by: Tony Lindgren arch/arm/mach-omap2/clockdomains81xx_data.c | 29 +++++++++++++++-------------- arch/arm/mach-omap2/cm81xx.h | 6 +++--- arch/arm/mach-omap2/powerdomains3xxx_data.c | 10 ++++++---- 3 files changed, 24 insertions(+), 21 deletions(-) commit 34015f5e56c71bbdcf7189430ffb63ea67656a35 Author: Linus Walleij Date: Tue Dec 22 15:51:39 2015 +0100 ASoC: ac97: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Signed-off-by: Linus Walleij Signed-off-by: Mark Brown sound/soc/soc-ac97.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b70381c35f65bbe1a2339e2833a574f0473162fa Author: Linus Walleij Date: Tue Dec 22 15:50:49 2015 +0100 ASoC: wm8903: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Signed-off-by: Linus Walleij Signed-off-by: Mark Brown sound/soc/codecs/wm8903.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 95fe9597d2494e8c4c9064fca1e12d1c03733ae7 Author: Charles Keepax Date: Tue Dec 15 11:29:47 2015 +0000 ASoC: wm_adsp: Attach buffers and streams together The stream is created whilst the compressed stream is opened and a buffer is created when the DSP powers up. It is necessary at a point once both the DSP has powered up and the the stream has been opened to connect a stream to a buffer on the DSP. This is done in the trigger callback as this is after the DSP has been powered and obviously the stream must be open. Note that whilst the connect is currently trivial it is expected that this will get more complex when support for multiple buffers/streams per DSP is added. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm5110.c | 1 + sound/soc/codecs/wm_adsp.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++ sound/soc/codecs/wm_adsp.h | 1 + 3 files changed, 64 insertions(+) commit 2cd19bdbf83c4c70b2ee36d022c5ded2738d2e19 Author: Charles Keepax Date: Tue Dec 15 11:29:46 2015 +0000 ASoC: wm_adsp: Add code to locate and initialise compressed buffer Add code that locates and initialises the buffer of compressed data on the DSP if the firmware supported compressed data capture. The buffer struct (wm_adsp_compr_buf) is kept separate from the stream struct (wm_adsp_compr) this will allow much easier support of multiple streams of data from the one DSP in the future, although support for this will not be added in this patch chain. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm_adsp.c | 291 +++++++++++++++++++++++++++++++++++++++++++++ sound/soc/codecs/wm_adsp.h | 2 + 2 files changed, 293 insertions(+) commit 406abc95a0397e10eb6edcfe824b1a8bf6578a0b Author: Charles Keepax Date: Tue Dec 15 11:29:45 2015 +0000 ASoC: wm_adsp: Add support for opening a compressed stream Allow user-space to open a compressed stream, although no data will be passed yet, as part of this adding the ability to define supported capabilities per firmware and check these match the stream being opened. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm5110.c | 23 ++++++ sound/soc/codecs/wm_adsp.c | 194 ++++++++++++++++++++++++++++++++++++++++++++- sound/soc/codecs/wm_adsp.h | 13 +++ 3 files changed, 227 insertions(+), 3 deletions(-) commit dbb6b94339e82ad2532798ed80f2651d21d97975 Author: Charles Keepax Date: Tue Dec 15 11:29:44 2015 +0000 ALSA: compress: Add SND_AUDIOCODEC_BESPOKE When working with the compressed framework occasionally vendors will use esoteric internal audio formats. For such formats it doesn't really make sense to add an new define to the kernel as their use is not sufficiently general. This patch adds a new define SND_AUDIOCODEC_BESPOKE that vendors can use in such situations. Signed-off-by: Charles Keepax Acked-by: Vinod Koul Signed-off-by: Mark Brown include/uapi/sound/compress_params.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 14197095e14a4ad2afb6c8c1ca8e41852382481d Author: Charles Keepax Date: Tue Dec 15 11:29:43 2015 +0000 ASoC: wm_adsp: Factor out finding the location of an algorithm region Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm_adsp.c | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) commit 1d981e0a5af78339d55085041c6eb3b9a8626920 Author: Charles Keepax Date: Tue Dec 15 11:29:42 2015 +0000 ASoC: wm5110: Provide basic hookup for voice control Register a platform driver for the CODEC and add DAIs that will be used to connect a compressed record path for the voice control functionality. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/Kconfig | 1 + sound/soc/codecs/arizona.h | 2 +- sound/soc/codecs/wm5110.c | 46 +++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 47 insertions(+), 2 deletions(-) commit 3f97ab4cc2374f4c5543a0fea9d02dffc29188a8 Merge: bf4d065 6610550 Author: Mark Brown Date: Wed Dec 23 00:20:47 2015 +0000 Merge branch 'topic/cs47l24' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-adsp commit bf4d065f734b1a49a96e938e6856649ad3f02aa4 Merge: bc1765d 3451eb4 Author: Mark Brown Date: Wed Dec 23 00:20:30 2015 +0000 Merge branch 'topic/arizona' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-adsp commit 720d7aebcdffda29aa71e12f3b806dbf3aa20761 Author: Harninder Rai Date: Thu Nov 5 11:16:00 2015 +0800 powerpc/85xx: Add PCIe controller support for bsc9132qds 1. Use machine_arch_initcall to hook mpc85xx_common_publish_devices This can ensure before pcibios_init() is called, pci controllers have been probed and added to the hose_list. 2. Add a workaround for errata A-005434 For the BSC9132, PEX_PEXIWARn[TRGT] for all windows defaults to 0xF, which is mapped to CCSRBAR. However, for other products, 0xF is mapped to the local memory. Therefore, for the BSC9132, any default PCI Express access to the local memory (DDR) will now access the CCSRBAR. This patch changes the mapping of targets of inbound windows PEX_PEXIWARn[TRGT] to the Local address space – 0x0 (from 0xF). Signed-off-by: Harninder Rai Signed-off-by: Minghuan Lian Signed-off-by: Hou Zhiqiang Signed-off-by: Scott Wood arch/powerpc/platforms/85xx/bsc913x_qds.c | 8 +++++++- arch/powerpc/sysdev/fsl_pci.c | 13 +++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) commit 230dd6059a97965de8464db293c3e852da395986 Author: Harninder Rai Date: Thu Nov 5 11:15:59 2015 +0800 powerpc/fsl: Add PCI node in device tree of bsc9132qds Signed-off-by: Harninder Rai Signed-off-by: Minghuan Lian Signed-off-by: Hou Zhiqiang Signed-off-by: Scott Wood arch/powerpc/boot/dts/fsl/bsc9132qds.dts | 15 ++++++++++++++ arch/powerpc/boot/dts/fsl/bsc9132si-post.dtsi | 28 +++++++++++++++++++++++++++ arch/powerpc/boot/dts/fsl/bsc9132si-pre.dtsi | 1 + 3 files changed, 44 insertions(+) commit 501f72e9c5205b9d70d5d61e9b186ae7ba873f73 Author: Adam Thomson Date: Tue Dec 22 18:27:56 2015 +0000 ASoC: da7219: Remove support for 32KHz PLL mode PLL mode based on 32KHz master clock not supported in AB silicon so remove support from the driver. Signed-off-by: Adam Thomson Signed-off-by: Mark Brown sound/soc/codecs/da7219.c | 10 ++-------- sound/soc/codecs/da7219.h | 2 -- 2 files changed, 2 insertions(+), 10 deletions(-) commit 0aed64c1766d354c819a13a57d8673adaf2266eb Author: Adam Thomson Date: Tue Dec 22 18:27:55 2015 +0000 ASoC: da7219: Add support for 1.6V micbias level HW can provide 1.6V micbias level as well the existing levels already provided in the driver. This patch adds support for 1.6V to the DT binding. Signed-off-by: Adam Thomson Acked-by: Rob Herring Signed-off-by: Mark Brown Documentation/devicetree/bindings/sound/da7219.txt | 2 +- include/sound/da7219.h | 3 ++- sound/soc/codecs/da7219.c | 3 +++ 3 files changed, 6 insertions(+), 2 deletions(-) commit d8ef140dccc1645aa37a140ed7585458294210b8 Author: Adam Thomson Date: Tue Dec 22 18:27:54 2015 +0000 ASoC: da7219: Remove internal LDO features of codec In AB silicon, the internal LDO is not supported so remove DT and driver references to this (digital voltage direct from 'VDD' supply) Signed-off-by: Adam Thomson Acked-by: Rob Herring Signed-off-by: Mark Brown Documentation/devicetree/bindings/sound/da7219.txt | 6 ++- include/sound/da7219.h | 11 ----- sound/soc/codecs/da7219.c | 50 +--------------------- sound/soc/codecs/da7219.h | 7 --- 4 files changed, 6 insertions(+), 68 deletions(-) commit 9ff099790412cb46536efba02039b36d81300976 Author: Adam Thomson Date: Tue Dec 22 18:27:53 2015 +0000 ASoC: da7219: Update REFERENCES reg default, in-line with HW In current AB silicon, BIAS_EN field is enabled by default in the REFERENCES register, so the regmap default value should reflect this. Signed-off-by: Adam Thomson Signed-off-by: Mark Brown sound/soc/codecs/da7219.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9069bf9bc839d97e07fe17c336eab095c1065cec Author: Adam Thomson Date: Tue Dec 22 18:27:51 2015 +0000 ASoC: da7219: Disable regulators on probe() failure If codec probe() function fails after supplies have been enabled it should really tidy up and disable them again. This patch updates the probe function to do just that. Signed-off-by: Adam Thomson Signed-off-by: Mark Brown sound/soc/codecs/da7219.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) commit fdd50a8086422caa456b5f8abb631dda6c551744 Author: Adam Thomson Date: Tue Dec 22 18:27:52 2015 +0000 ASoC: da7219: Fix Sidetone to work regardless of DAI capture Previously Sidetone would operate only when capture to DAI was in progress, due to DAPM path configuration. There is no reason why this should not operate without DAI capture, so this patch updates the DAPM path accordingly. Signed-off-by: Adam Thomson Signed-off-by: Mark Brown sound/soc/codecs/da7219.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 25e5ef974c33f1e4a07a68bf830e6493ee6dab11 Author: Maciej S. Szmigiero Date: Sun Dec 20 21:34:29 2015 +0100 ASoC: fsl-asoc-card: use different route map for AC'97 mode fsl_ssi uses different stream names ("AC97 Playback" / "AC97 Capture") in AC'97 mode so in this case fsl-asoc-card route map should also be using them. Signed-off-by: Maciej S. Szmigiero Acked-by: Nicolin Chen Signed-off-by: Mark Brown sound/soc/fsl/fsl-asoc-card.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit fff6e03c7b659bfa2fa001b0ede71e4830a84b56 Author: Zidan Wang Date: Fri Dec 18 17:00:09 2015 +0800 ASoC: fsl_asrc: add support for 8-30kHz output sample rate Add 8kHz, 11.025kHz, 16kHz, 22.05kHz output sample rate support. According referance menual, "Limited support for the case when output sampling rates is between 8kHz and 30kHz. The limitation is the supported ratio (Fsin/Fsout) range as between 1/24 to 8." Signed-off-by: Zidan Wang Acked-by: Nicolin Chen Signed-off-by: Mark Brown sound/soc/fsl/fsl_asrc.c | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) commit 3cb99e2ea99a454c8837a55aac88753ef05fc1eb Author: Chen-Yu Tsai Date: Tue Dec 22 17:08:06 2015 +0800 regulator: axp20x: Fix GPIO LDO enable value for AXP22x The enable/disable values for GPIO LDOs are reversed. It seems no one noticed as AXP22x support was introduced recently, and no one was using the GPIO LDOs, either because no designs actually use them or board support hasn't caught up. Fixes: 1b82b4e4f954 ("regulator: axp20x: Add support for AXP22X regulators") Signed-off-by: Chen-Yu Tsai Signed-off-by: Mark Brown Cc: stable@vger.kernel.org drivers/regulator/axp20x-regulator.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 50860e1d17d1bc2f1a2ebfc5042f2af786e53ad6 Author: Songjun Wu Date: Tue Dec 22 14:06:42 2015 +0800 ASoC: atmel_wm8904: add snd_soc_pm_ops Sometimes the audio play can not be resumed after it is suspended. Add snd_soc_pm_ops to execute power management operations, then this issue is fixed. Signed-off-by: Songjun Wu Signed-off-by: Mark Brown sound/soc/atmel/atmel_wm8904.c | 1 + 1 file changed, 1 insertion(+) commit e2133b64820df302a8e3d00c7531018470cd63a9 Author: Bard Liao Date: Mon Dec 21 10:09:53 2015 +0800 ASoC: rt5616: rename some alsa control names Rename some alsa control name as what they should be. Signed-off-by: Bard Liao Signed-off-by: Mark Brown sound/soc/codecs/rt5616.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 3f317c9faabc546a503bc62e806fa2e8e93e76be Author: Julia Lawall Date: Sun Dec 20 12:15:53 2015 +0100 ASoC: Intel: add NULL test Add NULL test on call to devm_kzalloc. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @@ expression x; identifier fld; @@ * x = devm_kzalloc(...); ... when != x == NULL x->fld // Signed-off-by: Julia Lawall Signed-off-by: Mark Brown sound/soc/intel/baytrail/sst-baytrail-pcm.c | 2 ++ 1 file changed, 2 insertions(+) commit 18c94a043d6a466938f13761081a5cbee802dad1 Author: Julia Lawall Date: Sun Dec 20 12:15:51 2015 +0100 ASoC: omap-hdmi-audio: add NULL test Add NULL test on call to devm_kzalloc. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @@ expression x; identifier fld; @@ * x = devm_kzalloc(...); ... when != x == NULL x->fld // Signed-off-by: Julia Lawall Acked-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/omap/omap-hdmi-audio.c | 2 ++ 1 file changed, 2 insertions(+) commit 10974ccf04b096fd79ad90fd50276b79c069f2cc Author: Julia Lawall Date: Sun Dec 20 12:15:50 2015 +0100 ASoC: imx-pcm-dma: add NULL test Add NULL test on call to devm_kzalloc. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @@ expression x; @@ * x = devm_kzalloc(...); ... when != x == NULL *x // Signed-off-by: Julia Lawall Acked-by: Nicolin Chen Signed-off-by: Mark Brown sound/soc/fsl/imx-pcm-dma.c | 2 ++ 1 file changed, 2 insertions(+) commit 43fe6de38ea57bf3ef20e89d8bf9b799a7ff0c0b Author: Tony Lindgren Date: Tue Dec 22 16:01:41 2015 -0800 ARM: dts: Add usb support for j5-eco evm Add usb support for j5-eco evm. Cc: Felipe Balbi Signed-off-by: Tony Lindgren arch/arm/boot/dts/dra62x-j5eco-evm.dts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit 868e247851d53f8c15df34c45eced5824cd53052 Author: Tony Lindgren Date: Tue Dec 22 16:01:37 2015 -0800 ARM: dts: Add usb support for hp t410 Add usb support for hp t410 and a fixed regulator for the hub power. Cc: Felipe Balbi Signed-off-by: Tony Lindgren arch/arm/boot/dts/dm8148-t410.dts | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) commit 95dfead1ddb8e529b24a6a98e026d1886f3c0bdf Author: Julia Lawall Date: Sat Dec 19 16:43:22 2015 +0100 regulator: lp8788: constify regulator_ops structures The regulator_ops structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Acked-by: Milo Kim Signed-off-by: Mark Brown drivers/regulator/lp8788-buck.c | 4 ++-- drivers/regulator/lp8788-ldo.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit e032013fb6a3ce41e9af4612d7968ca8852714ce Author: Tony Lindgren Date: Tue Dec 22 16:01:16 2015 -0800 ARM: dts: Add usb support for dm814x-evm Add usb support for dm814x-evm Cc: Felipe Balbi Signed-off-by: Tony Lindgren arch/arm/boot/dts/dm8148-evm.dts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit 89639d9fa11e636f1b20681b2815db11123b6a73 Author: Tony Lindgren Date: Tue Dec 22 16:01:11 2015 -0800 ARM: dts: Add usb support for dm814x and dra62x The usb is very much like on am33xx, we just put the some of the componends under scm where they belong. Cc: Felipe Balbi Signed-off-by: Tony Lindgren arch/arm/boot/dts/dm814x.dtsi | 125 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) commit f24f1bdc02e5afaa977ebdd550ddbceafb3830ae Author: Tony Lindgren Date: Tue Dec 22 16:01:03 2015 -0800 ARM: dts: Enable emmc on hp t410 There's a 2GB emmc on hp t410 that's wired to the sd_2 interface. Note that we also need to configure the evtmux using edma_xbar for edma channels. Let's use the McASP2 channels like the original kernel seems to be doing, most likely the audio on t410 is different from dm814x-evm. Reviewed-by: Peter Ujfalusi Signed-off-by: Tony Lindgren arch/arm/boot/dts/dm8148-t410.dts | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) commit 4d810fb219ba4019585a1561e84da1f3276c90f4 Author: Tony Lindgren Date: Tue Dec 22 16:00:57 2015 -0800 ARM: dts: Add mmc support for dra62x j5-eco evm There's mmc interface on j5-eco evm that's wired to the sd_1 interface. Signed-off-by: Tony Lindgren arch/arm/boot/dts/dra62x-j5eco-evm.dts | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) commit 67b5e9ec96767204c5a210015bd3e9af1192e501 Author: Tony Lindgren Date: Tue Dec 22 16:00:51 2015 -0800 ARM: dts: Add mmc support for dm8148-evm There is a mmc slot on the dm8148-evm that's wired to the sd_1 interface. Signed-off-by: Tony Lindgren arch/arm/boot/dts/dm8148-evm.dts | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) commit 609e55745fd6dd670fed4cbb621f881d2d105162 Author: Tony Lindgren Date: Tue Dec 22 16:00:45 2015 -0800 ARM: dts: Add mmc device entries for dm814x Add mmc device entries for dm814x. Signed-off-by: Tony Lindgren arch/arm/boot/dts/dm814x.dtsi | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) commit 9a6404226508775c9576d5cc7f33cdee71fd09cc Author: Tony Lindgren Date: Tue Dec 22 16:00:37 2015 -0800 ARM: dts: Update edma bindings on dm814x to use edma_xbar The edma is the same as on am33xx, except it has four tptc instances. And we need the edma_xbar for at least mmc3, so let's use the edma_xbar and the new binding as suggested by Peter Ujfalusi . Reviewed-by: Peter Ujfalusi [tony@atomide.com: updated for ti,edma-memcpy-channels binding] Signed-off-by: Tony Lindgren arch/arm/boot/dts/dm814x.dtsi | 68 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 58 insertions(+), 10 deletions(-) commit b4d6df2a2324dbf567592d7995738950b5c325a5 Author: Tony Lindgren Date: Tue Dec 22 16:00:33 2015 -0800 ARM: dts: Add pinctrl macros for dm814x Let's add the DM814X_IOPAD macro the same way as we have for dm816x and am33xx as this allows comparing the registers with the documentation easily. The pinctrl bits are yet again different on dm814x. Cc: Linus Walleij Signed-off-by: Tony Lindgren arch/arm/boot/dts/dm814x.dtsi | 2 +- include/dt-bindings/pinctrl/dm814x.h | 48 ++++++++++++++++++++++++++++++++++++ include/dt-bindings/pinctrl/omap.h | 1 + 3 files changed, 50 insertions(+), 1 deletion(-) commit 124bfc66c5a7097de99987110a215f45e0e1fcd7 Author: Tony Lindgren Date: Tue Dec 22 16:00:28 2015 -0800 ARM: dts: Add minimal dra62x j5-eco evm support This allows us to boot dra62x j5-eco evm with NFSroot. Signed-off-by: Tony Lindgren arch/arm/boot/dts/Makefile | 3 ++- arch/arm/boot/dts/dra62x-j5eco-evm.dts | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) commit c46ab06101fdd3dcc5355f61e604c5d954cc263c Author: Tony Lindgren Date: Tue Dec 22 16:00:20 2015 -0800 ARM: dts: Add basic support for dra62x j5-eco SoC The dra762x j5-eco is similar to dm814x with a bit different clocks and devices. [tony@atomide.com: updated to leave out adpll clock driver references] Signed-off-by: Tony Lindgren arch/arm/boot/dts/dra62x-clocks.dtsi | 23 +++++++++++++++++++++++ arch/arm/boot/dts/dra62x.dtsi | 23 +++++++++++++++++++++++ 2 files changed, 46 insertions(+) commit b0d6dd3ba3c3f41bface6623a18d08439cb195bb Author: Julia Lawall Date: Sat Dec 19 16:31:24 2015 +0100 regulator: wm8*: constify regulator_ops structures The regulator_ops structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Acked-by: Charles Keepax Signed-off-by: Mark Brown drivers/regulator/wm831x-dcdc.c | 8 ++++---- drivers/regulator/wm831x-isink.c | 2 +- drivers/regulator/wm831x-ldo.c | 6 +++--- drivers/regulator/wm8350-regulator.c | 8 ++++---- drivers/regulator/wm8400-regulator.c | 4 ++-- drivers/regulator/wm8994-regulator.c | 4 ++-- 6 files changed, 16 insertions(+), 16 deletions(-) commit 71242b49a075a580980d9b7845f2c25450018601 Author: Julia Lawall Date: Sat Dec 19 16:07:09 2015 +0100 regulator: da9*: constify regulator_ops structures The regulator_ops structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Mark Brown drivers/regulator/da903x.c | 10 +++++----- drivers/regulator/da9052-regulator.c | 4 ++-- drivers/regulator/da9055-regulator.c | 4 ++-- drivers/regulator/da9062-regulator.c | 4 ++-- drivers/regulator/da9063-regulator.c | 4 ++-- drivers/regulator/da9210-regulator.c | 2 +- drivers/regulator/da9211-regulator.c | 2 +- 7 files changed, 15 insertions(+), 15 deletions(-) commit bfbcab7c2d8ab4cb52f0785d7381d20f39bb065b Author: Markus Elfring Date: Sun Dec 20 10:34:25 2015 +0100 ASoC: ssm2518: Use a signed return type for ssm2518_lookup_mcs() The return type "unsigned int" was used by the ssm2518_lookup_mcs() function even though it will eventually return a negative error code. Improve this implementation detail by deletion of the type modifier then. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring Signed-off-by: Mark Brown sound/soc/codecs/ssm2518.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b4c83b171557815a0b31a36805900cc9f21c9ee4 Author: Kuninori Morimoto Date: Thu Dec 17 03:00:10 2015 +0000 ASoC: rsnd: add Multi channel support This patch adds Multi channel support on Renesas R-Car sound. This patch is tested on Salvator-X board, but it can't use Multi channel, because supported format is different between codec chip and R-Car. Thus, it was tested on board which doesn't mount codec chip, with oscilloscope. Signed-off-by: Kuninori Morimoto Acked-by: Rob Herring Signed-off-by: Mark Brown .../devicetree/bindings/sound/renesas,rsnd.txt | 18 ++++ sound/soc/sh/rcar/core.c | 6 +- sound/soc/sh/rcar/gen.c | 3 + sound/soc/sh/rcar/rsnd.h | 15 ++- sound/soc/sh/rcar/ssi.c | 114 ++++++++++++++++++++- sound/soc/sh/rcar/ssiu.c | 55 ++++++++-- 6 files changed, 194 insertions(+), 17 deletions(-) commit e05c25a1af29d65260ed1458f2cc4a959030ebd2 Author: Adam Thomson Date: Thu Dec 3 17:10:07 2015 +0000 ASoC: da7218: Enable mic level detection reporting to user-space This patch adds support to the codec driver to handle mic level detect related IRQs, and report these to user-space using a uevent variable. The uevent variable string "EVENT=MIC_LEVEL_DETECT" is sent to user-space, if the mic level detect feature is enabled, and the audio captured at the chosen mic(s) is above a certain threshold. User-space can then handle the event accordingly (e.g. process audio capture stream). This method was chosen over ALSA control notification for a couple of reasons: 1) There's no requirement here for a control to read state from. The event is the only thing that's required and of interest. 2) tinyalsa support for control notifications does not exist so on platforms using this over alsa-lib there is a need to add code to support this event handling. Another possible option would be to use the standard Jack reporting framework but this really does not fit for this kind of event. Finally, use of the input device framework is not being encouraged, due to difficulties in enabling apps to access input devices, so this has also been avoided. Signed-off-by: Adam Thomson Signed-off-by: Mark Brown sound/soc/codecs/da7218.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) commit 6b803c611c66debd6fc454c9ed049822994a5885 Author: Hans de Goede Date: Tue Dec 22 23:00:17 2015 +0100 ASoC: sun4i-codec: Use proper output for external amp routes An external amp (if any) is connected to the external outputs of the SoC of course, rather then directly to the internal amp. Signed-off-by: Hans de Goede Signed-off-by: Mark Brown sound/soc/sunxi/sun4i-codec.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 27af4e488c6a2a8c4b6102e777c29fff467a3895 Author: Caesar Wang Date: Tue Dec 22 13:45:03 2015 +0800 ASoC: rt5616: add devicetree document for rt5616 Add the description for rt5616 codec. Signed-off-by: Caesar Wang Signed-off-by: Mark Brown Documentation/devicetree/bindings/sound/rt5616.txt | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit e17ff2de826f8c2153cf23c8bbd9097219a84fa9 Author: Caesar Wang Date: Tue Dec 22 13:45:02 2015 +0800 ASoC: rt5616: add an of_match table Add a device tree match table. This serves to make the driver's support of device tree more explicit. Signed-off-by: Caesar Wang Signed-off-by: Mark Brown sound/soc/codecs/rt5616.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit c1f2a342846fbfd49ddc06ad7f0684d2c45b419d Author: Koro Chen Date: Tue Dec 22 11:11:34 2015 +0800 ASoC: mediatek: Turn AFE on/off in runtime resume/suspend AFE is actually allowed to be turn on before configuration of DAIs since each DAI has its own enabling control. Turn on/off AFE in runtime resume/suspend to avoid AFE being shut down when closing a DAI while other DAIs are still active. Signed-off-by: Koro Chen Signed-off-by: Mark Brown sound/soc/mediatek/mtk-afe-pcm.c | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) commit 36ddd489b0669f8913c8eda192507f8267749917 Author: Axel Lin Date: Tue Dec 22 10:16:35 2015 +0800 ASoC: rt5616: Return error if device ID mismatch Signed-off-by: Axel Lin Acked-by: Bard Liao Signed-off-by: Mark Brown sound/soc/codecs/rt5616.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 68b813bf573c865c5a7b7f7090f535bf4e153c3a Author: Tony Lindgren Date: Tue Dec 22 15:39:29 2015 -0800 ARM: OMAP2+: Fix SoC detection for dra62x j5-eco We can boot dra62x j5-eco using the dm814x code as the clocks and devices are mapped in the device tree. The dra62x is also known as jacinto 5 eco. We may want to add separate soc_is macros for dra62x if needed, but this gets us to the point where we can boot dra62x with just dts changes. Let's also print out the unknown hawkeye register to make things a bit easier for new SoC variants. Signed-off-by: Tony Lindgren arch/arm/mach-omap2/id.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 9116199536878bb2fdd63d6064633d6e3f2cba22 Merge: f884a50 9736e98 Author: Dave Airlie Date: Wed Dec 23 09:21:12 2015 +1000 Merge branch 'drm-tda998x-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into drm-next These changes from Liviu add support for atomic mode setting, add the TMDS clock limitation according to the device, and ensure that we correctly clean up in the unbind function. * 'drm-tda998x-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: drm/i2c: tda998x: Add support for atomic modesetting drm/i2c: tda998x: increase the supported dotclock frequency to 165MHz for TDA19988 drm/i2c: tda998x: unregister the connector in the unbind function commit f884a507e631a1d8b270c8bfd95dbde813a0f447 Merge: 0239c75 0b8ebea Author: Dave Airlie Date: Wed Dec 23 09:19:58 2015 +1000 Merge branch 'drm-armada-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into drm-next These are the patches from Daniel Vetter, getting rid of struct_mutex from the Armada DRM driver. * 'drm-armada-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: drm/armada: use a private mutex to protect priv->linear drm/armada: drop struct_mutex from cursor paths drm/armada: don't grab dev->struct_mutex for in mmap offset ioctl drm/armada: plug leak in dumb_map_offset drm/armada: use unlocked gem unreferencing commit 7aa1aa6ecec2af19d9aa85430ce3e56119e21626 Author: Zhao Qiang Date: Mon Nov 30 10:48:57 2015 +0800 QE: Move QE from arch/powerpc to drivers/soc ls1 has qe and ls1 has arm cpu. move qe from arch/powerpc to drivers/soc/fsl to adapt to powerpc and arm Signed-off-by: Zhao Qiang Signed-off-by: Scott Wood MAINTAINERS | 5 +- arch/powerpc/Kconfig | 2 - arch/powerpc/include/asm/cpm.h | 2 +- arch/powerpc/include/asm/immap_qe.h | 491 ---------------- arch/powerpc/include/asm/qe.h | 790 -------------------------- arch/powerpc/include/asm/qe_ic.h | 139 ----- arch/powerpc/include/asm/ucc.h | 64 --- arch/powerpc/include/asm/ucc_fast.h | 244 -------- arch/powerpc/include/asm/ucc_slow.h | 277 --------- arch/powerpc/platforms/83xx/km83xx.c | 4 +- arch/powerpc/platforms/83xx/misc.c | 2 +- arch/powerpc/platforms/83xx/mpc832x_mds.c | 4 +- arch/powerpc/platforms/83xx/mpc832x_rdb.c | 4 +- arch/powerpc/platforms/83xx/mpc836x_mds.c | 4 +- arch/powerpc/platforms/83xx/mpc836x_rdk.c | 4 +- arch/powerpc/platforms/85xx/common.c | 2 +- arch/powerpc/platforms/85xx/corenet_generic.c | 2 +- arch/powerpc/platforms/85xx/mpc85xx_mds.c | 4 +- arch/powerpc/platforms/85xx/mpc85xx_rdb.c | 4 +- arch/powerpc/platforms/85xx/twr_p102x.c | 4 +- arch/powerpc/platforms/Kconfig | 11 - arch/powerpc/sysdev/Makefile | 2 - arch/powerpc/sysdev/cpm_common.c | 2 +- arch/powerpc/sysdev/qe_lib/Kconfig | 27 - arch/powerpc/sysdev/qe_lib/Makefile | 10 - arch/powerpc/sysdev/qe_lib/gpio.c | 317 ----------- arch/powerpc/sysdev/qe_lib/qe.c | 719 ----------------------- arch/powerpc/sysdev/qe_lib/qe_common.c | 235 -------- arch/powerpc/sysdev/qe_lib/qe_ic.c | 502 ---------------- arch/powerpc/sysdev/qe_lib/qe_ic.h | 103 ---- arch/powerpc/sysdev/qe_lib/qe_io.c | 192 ------- arch/powerpc/sysdev/qe_lib/ucc.c | 212 ------- arch/powerpc/sysdev/qe_lib/ucc_fast.c | 363 ------------ arch/powerpc/sysdev/qe_lib/ucc_slow.c | 374 ------------ arch/powerpc/sysdev/qe_lib/usb.c | 56 -- drivers/net/ethernet/freescale/fsl_pq_mdio.c | 2 +- drivers/net/ethernet/freescale/ucc_geth.c | 8 +- drivers/net/ethernet/freescale/ucc_geth.h | 8 +- drivers/soc/Kconfig | 1 + drivers/soc/Makefile | 1 + drivers/soc/fsl/Makefile | 6 + drivers/soc/fsl/qe/Kconfig | 38 ++ drivers/soc/fsl/qe/Makefile | 10 + drivers/soc/fsl/qe/gpio.c | 317 +++++++++++ drivers/soc/fsl/qe/qe.c | 719 +++++++++++++++++++++++ drivers/soc/fsl/qe/qe_common.c | 235 ++++++++ drivers/soc/fsl/qe/qe_ic.c | 503 ++++++++++++++++ drivers/soc/fsl/qe/qe_ic.h | 103 ++++ drivers/soc/fsl/qe/qe_io.c | 192 +++++++ drivers/soc/fsl/qe/ucc.c | 212 +++++++ drivers/soc/fsl/qe/ucc_fast.c | 363 ++++++++++++ drivers/soc/fsl/qe/ucc_slow.c | 374 ++++++++++++ drivers/soc/fsl/qe/usb.c | 56 ++ drivers/spi/spi-fsl-cpm.c | 2 +- drivers/tty/serial/ucc_uart.c | 2 +- drivers/usb/gadget/udc/fsl_qe_udc.c | 2 +- drivers/usb/host/fhci-hcd.c | 2 +- drivers/usb/host/fhci-hub.c | 2 +- drivers/usb/host/fhci-sched.c | 2 +- drivers/usb/host/fhci.h | 4 +- include/soc/fsl/qe/immap_qe.h | 491 ++++++++++++++++ include/soc/fsl/qe/qe.h | 790 ++++++++++++++++++++++++++ include/soc/fsl/qe/qe_ic.h | 139 +++++ include/soc/fsl/qe/ucc.h | 64 +++ include/soc/fsl/qe/ucc_fast.h | 244 ++++++++ include/soc/fsl/qe/ucc_slow.h | 277 +++++++++ 66 files changed, 5176 insertions(+), 5170 deletions(-) commit cad008b8a77e66b799db3aa128873542b3fb9256 Author: Marc Gonzalez Date: Tue Dec 15 10:39:19 2015 +0100 ARM: dts: tango4: Initial device trees This device tree was tested on a Sigma Designs SMP8758 Vantage-1172 Rev E1 development board. Signed-off-by: Marc Gonzalez Reviewed-by: Kevin Hilman Signed-off-by: Olof Johansson arch/arm/boot/dts/Makefile | 2 + arch/arm/boot/dts/tango4-common.dtsi | 130 ++++++++++++++++++++++++++++++ arch/arm/boot/dts/tango4-smp8758.dtsi | 31 +++++++ arch/arm/boot/dts/tango4-vantage-1172.dts | 37 +++++++++ 4 files changed, 200 insertions(+) commit d6de5b0294d74aefa16f78d050d1bcf6d5af84a7 Author: Marc Gonzalez Date: Tue Dec 15 10:41:13 2015 +0100 ARM: tango4: Initial platform support Support Sigma Designs ARM-based (specifically, Cortex-A9 MPCore r3p0) Tango4 "Secure Media Processor" platforms: smp8756, smp8758, smp8759 (8756 is single-core, the latter are dual-core). Note: 8758 vs 8759: same chip, different package. Support for older MIPS-based platforms can be found elsewhere: https://github.com/mansr/linux-tangox Signed-off-by: Marc Gonzalez Reviewed-by: Kevin Hilman Signed-off-by: Olof Johansson MAINTAINERS | 7 +++++++ arch/arm/Kconfig | 2 ++ arch/arm/Makefile | 1 + arch/arm/mach-tango/Kconfig | 12 ++++++++++++ arch/arm/mach-tango/Makefile | 2 ++ arch/arm/mach-tango/setup.c | 31 +++++++++++++++++++++++++++++++ arch/arm/mach-tango/smc.S | 9 +++++++++ arch/arm/mach-tango/smc.h | 5 +++++ 8 files changed, 69 insertions(+) commit 302c059f2e7bac7342f912bc77ff5bd6490c8edd Author: Zhao Qiang Date: Mon Nov 30 10:48:56 2015 +0800 QE: use subsys_initcall to init qe Use subsys_initcall to init qe to adapt ARM architecture. Remove qe_reset from PowerPC platform file. Signed-off-by: Zhao Qiang Signed-off-by: Scott Wood arch/powerpc/platforms/83xx/km83xx.c | 2 -- arch/powerpc/platforms/83xx/mpc832x_mds.c | 2 -- arch/powerpc/platforms/83xx/mpc832x_rdb.c | 2 -- arch/powerpc/platforms/83xx/mpc836x_mds.c | 2 -- arch/powerpc/platforms/83xx/mpc836x_rdk.c | 3 --- arch/powerpc/platforms/85xx/common.c | 1 - arch/powerpc/sysdev/qe_lib/qe.c | 13 +++++++++++++ 7 files changed, 13 insertions(+), 12 deletions(-) commit 1291e49e893703e04e129fe2e17e87af40757bf1 Author: Zhao Qiang Date: Mon Nov 30 10:48:55 2015 +0800 QE/CPM: move muram management functions to qe_common QE and CPM have the same muram, they use the same management functions. Now QE support both ARM and PowerPC, it is necessary to move QE to "driver/soc", so move the muram management functions from cpm_common to qe_common for preparing to move QE code to "driver/soc" Signed-off-by: Zhao Qiang Signed-off-by: Scott Wood arch/powerpc/include/asm/cpm.h | 47 +------ arch/powerpc/include/asm/qe.h | 50 +++++++ arch/powerpc/sysdev/Makefile | 1 + arch/powerpc/sysdev/cpm_common.c | 208 +---------------------------- arch/powerpc/sysdev/qe_lib/Makefile | 4 +- arch/powerpc/sysdev/qe_lib/qe_common.c | 235 +++++++++++++++++++++++++++++++++ 6 files changed, 290 insertions(+), 255 deletions(-) commit 0e6e01ff694ee222acc5a9184211678473c948e3 Author: Zhao Qiang Date: Mon Nov 30 10:48:54 2015 +0800 CPM/QE: use genalloc to manage CPM/QE muram Use genalloc to manage CPM/QE muram instead of rheap. Signed-off-by: Zhao Qiang Signed-off-by: Scott Wood arch/powerpc/include/asm/cpm.h | 3 + arch/powerpc/platforms/Kconfig | 4 +- arch/powerpc/sysdev/cpm_common.c | 126 +++++++++++++++++++++++++++------------ lib/genalloc.c | 2 +- 4 files changed, 94 insertions(+), 41 deletions(-) commit b26981c8f743d3cb64a6907eb1f5c6c4ba6ca672 Author: Zhao Qiang Date: Mon Nov 30 10:48:53 2015 +0800 genalloc:support allocating specific region Add new algo for genalloc, it reserve a specific region of memory Signed-off-by: Zhao Qiang Signed-off-by: Scott Wood include/linux/genalloc.h | 11 +++++++++++ lib/genalloc.c | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) commit de2dd0eb30af55d3893979d5641c50c7a8969c99 Author: Zhao Qiang Date: Mon Nov 30 10:48:52 2015 +0800 genalloc:support memory-allocation with bytes-alignment to genalloc Bytes alignment is required to manage some special RAM, so add gen_pool_first_fit_align to genalloc, meanwhile add gen_pool_alloc_algo to pass algo in case user layer using more than one algo, and pass data to gen_pool_first_fit_align(modify gen_pool_alloc as a wrapper) Signed-off-by: Zhao Qiang Signed-off-by: Scott Wood include/linux/genalloc.h | 27 +++++++++++++++++---- lib/genalloc.c | 61 +++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 78 insertions(+), 10 deletions(-) commit 7ca08a90cd7b4580610743791815fd2593fdfaa9 Merge: 250481d 12ec938 Author: Olof Johansson Date: Tue Dec 22 15:02:50 2015 -0800 Merge tag 'sunxi-dt-for-4.5-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux into next/dt Allwinner DT patches, round 2 Mostly some audio codec patches to enable it on more boards, and a bunch devices activation (Ethernet, touchscreen, backlights). One more board has been added too. * tag 'sunxi-dt-for-4.5-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux: ARM: dts: sun5i: Add dts file for the Empire Electronix D709 tablet ARM: dts: sun7i: Enable gmac on Wits Pro A20 DKT ARM: dt: sun7i: Enable audio codec on MK808C ARM: sunxi: dt: enable audio codec on mk802 ARM: dts: sun7i: Add PA gpio pin to Wexler TAB7200 tablet ARM: dts: sun7i: Add backlight node to Wexler TAB7200 tablet ARM: dts: sun7i: Enable touchscreen on Wexler TAB7200 tablet ARM: dts: sun7i: Enable PWM controller on Wexler TAB7200 tablet ARM: dts: sun4i: gemei-g9: Enable PA GPIO pin configuration ARM: dts: sun4i: Enable onboard codec used on the pov protab2-ips9 tablet ARM: dts: sun5i: Enable onboard codec used on the UTOO P66 tablet Signed-off-by: Olof Johansson commit 250481d3de1b9ccf8e82d044bde6216e4decc271 Merge: 8482981 ca6349a Author: Olof Johansson Date: Tue Dec 22 15:02:08 2015 -0800 Merge tag 'at91-4.5-dt2' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux into next/dt Second batch of DT changes for 4.5: - addition of sound nodes for sama5d2 and the xplained - addition of a new patform by Landis+Gyr: VInCo * tag 'at91-4.5-dt2' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: ARM: at91/dt: sama5d2 Xplained: add pdmic node ARM: at91/dt: sama5d2: add pdmic node ARM: at91/dt: Add Support for the L+G VInCo platform Signed-off-by: Olof Johansson commit f3afce26de53793dfeab74aabfbf4871ddab08d5 Merge: 2b8890b 31e98e0 Author: Olof Johansson Date: Tue Dec 22 15:00:22 2015 -0800 Merge tag 'imx-defconfig-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into next/defconfig The i.MX defconfig updates for 4.5: - Drop CONFIG_SOC_LS1021A support, as it needs LPAE which is not available with imx_v6_v7_defconfig. - Enable VF610_ADC, HDMI audio and PCI_MSI support * tag 'imx-defconfig-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: ARM: imx_v6_v7_defconfig: enable PCI_MSI ARM: imx_v6_v7_defconfig: Select HDMI audio support ARM: imx_v6_v7_defconfig: Select VF610_ADC ARM: imx_v6_v7_defconfig: Remove CONFIG_SOC_LS1021A Signed-off-by: Olof Johansson commit 84829814d65f24082483791b59c1dc5fa2daf75d Merge: a6dcb26 67fea0f Author: Olof Johansson Date: Tue Dec 22 14:59:55 2015 -0800 Merge tag 'imx-dt-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into next/dt The i.MX device tree updates for 4.5: - New boards support: imx51-ts4800, imx6q-novena, CompuLab imx7d SoM/SBC, vf610m4-cosmic - Add ADC device support for imx6ul and imx7d - Remove config space from PCIe controller ranges property for i.MX6 - Add Vivante GPU nodes for i.MX6 - Add DCU, LCD, and SATA devices for LS1021A - A series to update Ventana gw5xxx boards getting HDMI and LVDS to work simultaneously and devices like PWM and SPI added - Quite a few random cleanups and minor updates * tag 'imx-dt-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: (50 commits) ARM: dts: imx7d: sbc-imx7: add basic board support ARM: dts: imx7d: cl-som-imx7: add basic module support ARM: dts: TS-4800: add touchscreen support ARM: dts: ts-4800: Add LCD support ARM: dts: imx6q: add Novena board devicetree: bindings: Add vendor prefix for Kosagi ARM: dts: TS-4800: use weim IP to map the FPGA ARM: dts: TS-4800: drop uart rts/cts pin reservations ARM: dts: imx6: add Vivante GPU nodes ARM: dts: imx28: add alternate auart4 pinmux ARM: dts: ls1021a: add sata node to dts ARM: dts: TS-4800: add basic device tree of: documentation: add bindings documentation for TS-4800 of: add vendor prefix for Technologic Systems ARM: dts: imx7d-sdb: add ADC support ARM: dts: imx7d.dtsi: add ADC support ARM: dts: vf-colibri: add CAN support ARM: mxs: dt: cfa10057: fix backlight PWM ARM: dts: imx6qdl: move GIC to right location in DT ARM: dts: imx6qdl: add IPU aliases ... Signed-off-by: Olof Johansson commit 9d67d4624febcd14bd6719fb4913319f49201066 Merge: 45e2916 f1858b0 Author: Olof Johansson Date: Tue Dec 22 14:58:48 2015 -0800 Merge tag 'imx-soc-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into next/soc The i.MX SoC updates for 4.5: - Select HAVE_IMX_SRC for i.MX7 to avoid a randconfig build error - Enable cpufreq support on i.MX7D - A couple of random cleanup on iomux-imx31 and mach-imx6ul * tag 'imx-soc-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: ARM: imx: select SRC for i.MX7 ARM: mach-imx: iomux-imx31: fix spelling mistake in error message ARM: imx: enable cpufreq device on i.mx7d mach-imx/mach-imx6ul.c: proper constness with __initconst Signed-off-by: Olof Johansson commit 1f33b0131a15f4dc6b2fff9d3ef9d002070bda40 Author: Linus Walleij Date: Tue Dec 22 15:36:12 2015 +0100 ARM: sa1100/simpad: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Cc: arm@kernel.org Signed-off-by: Linus Walleij Signed-off-by: Olof Johansson arch/arm/mach-sa1100/simpad.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 86d5e657d27851beb0e3e7bf48f13263acc5196a Author: Linus Walleij Date: Tue Dec 22 15:35:47 2015 +0100 ARM: scoop: Be sure to clamp return value As we want gpio_chip .get() calls to be able to return negative error codes and propagate to drivers, we need to go over all drivers and make sure their return values are clamped to [0,1]. We do this by using the ret = !!(val) design pattern. Cc: arm@kernel.org Cc: Richard Purdie Signed-off-by: Linus Walleij Signed-off-by: Olof Johansson arch/arm/common/scoop.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2b8890bac2007c4b1e2b332ba025d68434a9b984 Author: Heiko Stübner Date: Mon Dec 21 22:22:28 2015 +0100 ARM: multi_v7_defconfig: enable rk808 clkout module The rk808 supplies two clock outputs with one going back into the soc as 32kHz supply, supplying some core soc clocks with it. The system can boot without it being present, but it is needed for example as source clock for the thermal driver. Signed-off-by: Heiko Stuebner Signed-off-by: Olof Johansson arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit 514cfd99c024e7d9500114336abc6d6f486dec4e Author: Heiko Stübner Date: Mon Dec 21 22:21:55 2015 +0100 ARM: multi_v7_defconfig: enable rockchip crypto module This enables the newly added hardware crypto module found for example on the rk3288. Signed-off-by: Heiko Stuebner Signed-off-by: Olof Johansson arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit e330eb86ba0b60bde39c5391d0b7f10010df557e Author: Heiko Stübner Date: Mon Dec 21 22:21:14 2015 +0100 ARM: multi_v7_defconfig: enable Rockchip io-domain driver The io-domain driver is necessary to notify the soc about voltages changes happening on supplying regulators. Probably the most important user right now is the mmc tuning code, where the soc needs to get notified when the voltage is dropped to the 1.8V point. As this option is necessary to sucessfully tune UHS cards etc, it should get built in. Signed-off-by: Heiko Stuebner Signed-off-by: Olof Johansson arch/arm/configs/multi_v7_defconfig | 2 ++ 1 file changed, 2 insertions(+) commit a6dcb2626483929466aeed6347a1e6504b2c20f2 Merge: ab7f0bb 6c95771 Author: Olof Johansson Date: Tue Dec 22 14:55:02 2015 -0800 Merge tag 'omap-for-v4.5/dt-pt2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/dt Second set of omap device tree changes for v4.5 merge window. This series updates the EDMA bindings based on the various fixes to split EDMA into separate independent devices. It also adds support for more devices on the CompuLab cm-t335 and LogicPD Torpedo boards, and enables the new bindings for qspi for am437x and dra7. There are also few dra7 regulator fixes, and change of gpoi-key,wakeup to wakeup-source. These depend on commit ae0add740cd0 ("dmaengine: edma: DT: Change reserved slot array from 16bit to 32bit type") already merged into mainline. * tag 'omap-for-v4.5/dt-pt2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP2+: LogicPD Torpedo: Add Touchscreen Support ARM: dts: DRA7-EVM: Add regulator-allow-bypass property for ldo9 ARM: dts: DRA72-EVM: Add regulator-allow-bypass property for ldo1 and ldo2 ARM: dts: AM4372: add entry for qspi mmap region ARM: dts: DRA7: add entry for qspi mmap region ARM: OMAP2+: LogicPD Torpedo: Revert Duplicative Entries ARM: OMAP2+: LogicPD Torpedo + Wireless: Add Bluetooth ARM: OMAP2+: LogicPD Torpedo: Add LCD Type 15 Support ARM: dts: cm-t335: add support for bluetooth ARM: dts: cm-t335: add support for DVI/LCD ARM: dts: cm-t335: add support for I2C GPIO expander ARM: dts: cm-t335: add support for SBC-T335 ARM: dts: cm-t335: add support for USB0 ARM: dts: omap: replace legacy *,wakeup property with wakeup-source ARM: dts: am335x: replace gpio-key,wakeup with wakeup-source property ARM: DTS: am437x: Use the new DT bindings for the eDMA3 ARM: DTS: am33xx: Use the new DT bindings for the eDMA3 dmaengine: edma: DT: Change reserved slot array from 16bit to 32bit type dmaengine: edma: DT: Change memcpy channel array from 16bit to 32bit type Signed-off-by: Olof Johansson commit f625cb8c6d9753e99eb4f7a3d52de5a705c88637 Merge: 9518f8a cdd5de5 Author: Olof Johansson Date: Tue Dec 22 14:54:03 2015 -0800 Merge tag 'omap-for-v4.5/wakeup-m3' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/drivers TI wakeup M3 IPC device driver for v4.5 merge window. This driver will eventually allow am33xx and am437x to support PM with their Cortex-M3 power management processor. This driver has been waiting to get merged for quite a while but has had dependencies to the remoteproc that are now out of the way. * tag 'omap-for-v4.5/wakeup-m3' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: soc: ti: Add wkup_m3_ipc driver Documentation: dt: add bindings for TI Wakeup M3 IPC device Signed-off-by: Olof Johansson commit 45e2916be242ccf50cdc6da7863245722a46ea9e Merge: 8907dba f2e6a0a Author: Olof Johansson Date: Tue Dec 22 14:49:17 2015 -0800 Merge tag 'omap-for-v4.5/soc-initcall' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/soc SoC changes for omaps for v4.5 merge window. The main change here is to change the omap initcall levels a bit to initialize things later to allow early device drivers at core_initcall level. This makes things easier for us as most clocks can be made into regular device drivers except for a few early clocks needed to initialize system timers. I wanted to have these changes sit in Linux next for a few weeks before sending out a pull request, and so far now issues have showed up. The other changes in this series are timer changes for making use of the new PWM driver, and timer changes to support more high security SoCs. Also few minor improvments for module autoidle settings for ti81xx spinbox and dra7 debug on uart4 in hwmod code. The rest is pretty much just removal of platform data for SoCs that are all device tree only nowadays. * tag 'omap-for-v4.5/soc-initcall' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP2+: Remove device creation for omap-pcm-audio ARM: OMAP1: Remove device creation for omap-pcm-audio ARM: OMAP2+: Change core_initcall levels to postcore_initcall ARM: DRA7: hwmod: Enable DEBUG_LL for UART4 ARM: OMAP: RX-51: fix a typo in log writing ARM: omap4: hwmod: Remove elm address space from hwmod data ARM: OMAP2+: timer: Remove secure timer for DRA7xx HS devices ARM: OMAP: dmtimer: check for fixed timers during config ARM: OMAP2+: Remove omap_mmu_dev_attr structure ARM: OMAP4: hwmod data: Remove legacy IOMMU attr and addrs ARM: OMAP3: hwmod data: Remove legacy IOMMU data ARM: OMAP2+: Remove legacy device instantiation of IOMMUs ARM: OMAP2+: Add hwmod spinbox support for dm816x ARM: OMAP: add DT support for ti,dm816-timer ARM: OMAP: dmtimer: Add clock source from DT Signed-off-by: Olof Johansson commit 882f3b3b916a01c703bf7516800a0dca741cd3e7 Merge: 182a2da c6333f9 Author: Doug Ledford Date: Tue Dec 22 17:03:15 2015 -0500 Merge branches '4.5/Or-cleanup' and '4.5/rdma-cq' into k.o/for-4.5 Signed-off-by: Doug Ledford Conflicts: drivers/infiniband/ulp/iser/iser_verbs.c commit 83a76006e06213160c4bb1e1a157e7707c504af6 Merge: f4cee3a 271c3b9 Author: David S. Miller Date: Tue Dec 22 17:03:06 2015 -0500 Merge branch 'bindtodevice_tw_rst' Florian Westphal says: ==================== tcp: honour SO_BINDTODEVICE for TW_RST case too This is V2, this time as a small series since I followed Erics advice to split this into smaller chunks, I hope this makes it easier to review. First patch adds inet_sk_transparent helper. Second patch contains an if/else swap that I split from the original TW_RST v1 one. Third patch is the actual change without the superfluous sock_net change. ==================== Signed-off-by: David S. Miller commit 271c3b9b7bdae09c7da467ac1ae96e3298754977 Author: Florian Westphal Date: Mon Dec 21 21:29:26 2015 +0100 tcp: honour SO_BINDTODEVICE for TW_RST case too Hannes points out that when we generate tcp reset for timewait sockets we pretend we found no socket and pass NULL sk to tcp_vX_send_reset(). Make it cope with inet tw sockets and then provide tw sk. This makes RSTs appear on correct interface when SO_BINDTODEVICE is used. Packetdrill test case: // want default route to be used, we rely on BINDTODEVICE `ip route del 192.0.2.0/24 via 192.168.0.2 dev tun0` 0.000 socket(..., SOCK_STREAM, IPPROTO_TCP) = 3 // test case still works due to BINDTODEVICE 0.001 setsockopt(3, SOL_SOCKET, SO_BINDTODEVICE, "tun0", 4) = 0 0.100...0.200 connect(3, ..., ...) = 0 0.100 > S 0:0(0) 0.200 < S. 0:0(0) ack 1 win 32792 0.200 > . 1:1(0) ack 1 0.210 close(3) = 0 0.210 > F. 1:1(0) ack 1 win 29200 0.300 < . 1:1(0) ack 2 win 46 // more data while in FIN_WAIT2, expect RST 1.300 < P. 1:1001(1000) ack 1 win 46 // fails without this change -- default route is used 1.301 > R 1:1(0) win 0 Reported-by: Hannes Frederic Sowa Signed-off-by: Florian Westphal Acked-by: Eric Dumazet Acked-by: Hannes Frederic Sowa Signed-off-by: David S. Miller net/ipv4/tcp_ipv4.c | 12 +++++++++--- net/ipv4/tcp_minisocks.c | 7 ++----- net/ipv6/tcp_ipv6.c | 6 ++++-- 3 files changed, 15 insertions(+), 10 deletions(-) commit e46787f0dd9385449fd77246d4fddb8634350af8 Author: Florian Westphal Date: Mon Dec 21 21:29:25 2015 +0100 tcp: send_reset: test for non-NULL sk first tcp_md5_do_lookup requires a full socket, so once we extend _send_reset() to also accept timewait socket we would have to change if (!sk && hash_location) to something like if ((!sk || !sk_fullsock(sk)) && hash_location) { ... } else { (sk && sk_fullsock(sk)) tcp_md5_do_lookup() } Switch the two branches: check if we have a socket first, then fall back to a listener lookup if we saw a md5 option (hash_location). Signed-off-by: Florian Westphal Acked-by: Eric Dumazet Acked-by: Hannes Frederic Sowa Signed-off-by: David S. Miller net/ipv4/tcp_ipv4.c | 11 +++++------ net/ipv6/tcp_ipv6.c | 6 +++--- 2 files changed, 8 insertions(+), 9 deletions(-) commit b1f0a0e99c58fbd7ea053ca36ba623718272b618 Author: Florian Westphal Date: Mon Dec 21 21:29:24 2015 +0100 net: add inet_sk_transparent() helper Avoids cluttering tcp_v4_send_reset when followup patch extends it to deal with timewait sockets. Suggested-by: Eric Dumazet Signed-off-by: Florian Westphal Acked-by: Eric Dumazet Acked-by: Hannes Frederic Sowa Signed-off-by: David S. Miller include/net/request_sock.h | 2 +- include/net/tcp.h | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) commit 182a2da0c768a9ec64abb0d6009667057f1c06af Author: Or Gerlitz Date: Fri Dec 18 10:59:50 2015 +0200 IB/core: Remove ib_query_device The copy of the attributes present on the device is now used by all consumers except for uverbs in case of serving user-space query, where dev->query_device is called. Signed-off-by: Or Gerlitz Signed-off-by: Doug Ledford drivers/infiniband/core/device.c | 19 ------------------- include/rdma/ib_verbs.h | 3 --- 2 files changed, 22 deletions(-) commit f4cee3af0dedf3270e6d615d772e3fbfa3200769 Author: Jiri Pirko Date: Tue Dec 22 09:43:07 2015 +0100 mlxsw: core: Use devm_kzalloc to allocate mlxsw_hwmon structure KASan reported use-after-free for the hwmon structure. So fix this by using devm_kzalloc and let the core take care about freeing the memory during device dettach. Reported-by: Ido Schimmel Fixes: 89309da39 ("mlxsw: core: Implement temperature hwmon interface") Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/core.c | 2 -- drivers/net/ethernet/mellanox/mlxsw/core.h | 4 ---- drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c | 9 ++------- 3 files changed, 2 insertions(+), 13 deletions(-) commit ab7f0bbba4fa173f901f04556cd885f5a81990bf Merge: 84658cb 91f6914 Author: Olof Johansson Date: Tue Dec 22 13:18:44 2015 -0800 Merge tag 'socfpga_dts_for_v4.5_part_2' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into next/dt SoCFPGA DTS update for v4.5, part 2 - clean up mcvevk dts file, replace space with tab - Disable SDMMC node in base socfpga.dtsi file * tag 'socfpga_dts_for_v4.5_part_2' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux: ARM: socfpga: dts: Enable MMC support at correct place in the DT ARM: socfpga: Repair incorrectly applied MCV patch Signed-off-by: Olof Johansson commit 8907dbaa363de87e5c6f48070e3d8b639477d5ba Merge: 9cdac4a e324654 Author: Olof Johansson Date: Tue Dec 22 13:10:00 2015 -0800 Merge branch 'treewide/cleanup' into next/soc Merge in cleanup to avoid internal conflicts with newly added code. * treewide/cleanup: ARM: use "depends on" for SoC configs instead of "if" after prompt ARM/clocksource: use automatic DT probing for ux500 PRCMU ARM: use const and __initconst for smp_operations ARM: hisi: do not export smp_operations structures Signed-off-by: Olof Johansson commit 0ac01488315bac92de1b2086d87607b7ef798e8c Merge: 9205a7a b8084e5 Author: Olof Johansson Date: Tue Dec 22 13:07:48 2015 -0800 Merge tag 'v4.5-rockchip-dts64-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/dt64 New node for the broadcast-timer of the rk3368, a non-critical fix for a regulator voltage and a typo fix. * tag 'v4.5-rockchip-dts64-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: arm64: dts: rockchip: Add the broadcast-timer for RK3368 SoC arm64: dts: rockchip: Fix typo in rk3368 sdmmc card detect pin name arm64: dts: rockchip: correct voltage range for rk3368-evb-act8846 board Signed-off-by: Olof Johansson commit 84658cbde8e3a7ef36f75a12929d49fedc0eff8c Merge: 12ee126 94cf32b Author: Olof Johansson Date: Tue Dec 22 13:07:11 2015 -0800 Merge tag 'v4.5-rockchip-dts32-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/dt Another new soc - the rk3228 quad-core cortex-a7, a new rk3036 board, support for the efuses on Rockchip socs and some improvements for rk3288 regulators. * tag 'v4.5-rockchip-dts32-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: ARM: dts: rockchip: add the kylin board for rk3036 ARM: dts: rockchip: add the sdio/sdmmc node for rk3036 ARM: dts: rockchip: fix the pinctrl bias settings for rk3036 ARM: dts: rockchip: add eFuse node for rk3188 SoCs ARM: dts: rockchip: add eFuse node for rk3066a SoCs ARM: dts: rockchip: add eFuse config of rk3288 SoC ARM: dts: rockchip: add rk3228-evb board ARM: dts: rockchip: add core rk3228 dtsi clk: rockchip: Add the clock ids of rk3288 eFuses ARM: dts: rockchip: Fix typo in rk3288 sdmmc card detect pin name ARM: dts: rockchip: fix voltage ranges for rk3288-evb-act8846 board ARM: dts: rockchip: move the public part to rk3288-evb common ARM: dts: rockchip: add 2 regulators for rk3288-evb-act8846 ARM: dts: rockchip: correct the name of REG8 for rk3288-evb-act8846 clk: rockchip: add dt-binding header for rk3228 clk: rockchip: add id for mipidsi sclk on rk3288 Signed-off-by: Olof Johansson commit 9cdac4a20a963d946f3ce13e6dd4943a780f5b54 Merge: f877df2 2608224 Author: Olof Johansson Date: Tue Dec 22 13:06:15 2015 -0800 Merge tag 'v4.5-rockchip-soc-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/soc SMP special case for the rk3036 and addition of the rk3228 quad-core Cortex-A7 cpu. * tag 'v4.5-rockchip-soc-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: ARM: rockchip: enable support for RK3228 SoCs ARM: rockchip: use const and __initconst for rk3036 smp_operations ARM: rockchip: add support smp for rk3036 Signed-off-by: Olof Johansson commit 12ee126d9140944abdf1ae76c169e49d22f4bd4e Merge: 4e9ab19 5743520 Author: Olof Johansson Date: Tue Dec 22 13:03:55 2015 -0800 Merge tag 'lpc18xx_dts_for_4.5' of https://github.com/manabian/linux-lpc into next/dt Device Tree additions for LPC18xx platform NXP LPC18xx EEPROM support plus board updates for CIAA board and EA4357 Dev kit. * tag 'lpc18xx_dts_for_4.5' of https://github.com/manabian/linux-lpc: ARM: dts: lpc4337-ciaa: add i2c0 and devices ARM: dts: lpc4337-ciaa: enable SCT-PWM ARM: dts: lpc4357-ea4357: add mma7455 i2c accelerometer ARM: dts: lpc4357: enable EEPROM memory ARM: dts: lpc18xx: add EEPROM memory node Signed-off-by: Olof Johansson commit 295ea80ea3c24a2660f8b44e971f3c19f9f34934 Merge: 8418f73 74b40b2 Author: Olof Johansson Date: Tue Dec 22 13:03:12 2015 -0800 Merge tag 'lpc18xx_defconfig_for_4.5' of https://github.com/manabian/linux-lpc into next/defconfig Defconfig additions for LPC18xx platform Add LPC18xx EEPROM driver and MMA7455 IIO driver for the accelerometer found on EA4357 Dev kit. * tag 'lpc18xx_defconfig_for_4.5' of https://github.com/manabian/linux-lpc: ARM: configs: lpc18xx: enable EEPROM NVMEM driver ARM: configs: lpc18xx: enable mma7455 IIO driver Signed-off-by: Olof Johansson commit 9518f8a46952743d4a0e1b112d55d4b5fbf30b8b Merge: f5ff6cc e50be5c Author: Olof Johansson Date: Tue Dec 22 13:02:28 2015 -0800 Merge tag 'v4.4-next-soc' of https://github.com/mbgg/linux-mediatek into next/drivers Change the scpsys to builtin_platform_driver_probe. Add regulator support for scpsys driver. * tag 'v4.4-next-soc' of https://github.com/mbgg/linux-mediatek: drivers/soc: make mediatek/mtk-scpsys.c explicitly non-modular soc: mediatek: SCPSYS: Add regulator support Signed-off-by: Olof Johansson commit a25682e2a19788ca1fc989ea079db8c5609cb885 Merge: 8bdd6f5 c050b45 Author: Olof Johansson Date: Tue Dec 22 13:02:00 2015 -0800 Merge tag 'v4.4-next-kconfig' of https://github.com/mbgg/linux-mediatek into next/config64 Enable mediatek clocksource driver by default as otherwise the system does not boot. * tag 'v4.4-next-kconfig' of https://github.com/mbgg/linux-mediatek: arm64: mediatek: enable MTK_TIMER Signed-off-by: Olof Johansson commit 2010b93e9317cc12acd20c4aed385af7f9d1681e Author: Lorenzo Colitti Date: Tue Dec 22 00:03:44 2015 +0900 net: tcp: deal with listen sockets properly in tcp_abort. When closing a listen socket, tcp_abort currently calls tcp_done without clearing the request queue. If the socket has a child socket that is established but not yet accepted, the child socket is then left without a parent, causing a leak. Fix this by setting the socket state to TCP_CLOSE and calling inet_csk_listen_stop with the socket lock held, like tcp_close does. Tested using net_test. With this patch, calling SOCK_DESTROY on a listen socket that has an established but not yet accepted child socket results in the parent and the child being closed, such that they no longer appear in sock_diag dumps. Reported-by: Eric Dumazet Signed-off-by: Lorenzo Colitti Acked-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/tcp.c | 5 +++++ 1 file changed, 5 insertions(+) commit 4e9ab19576bb9841ce4f4c8580b08f79369ed082 Merge: 2ea698c eb0fc0d Author: Olof Johansson Date: Tue Dec 22 13:00:45 2015 -0800 Merge tag 'v4.4-next-dts' of https://github.com/mbgg/linux-mediatek into next/dt Add regulators to the scpsys binding. Move the include of the reset contoller to include/dt-bindings/reset. Add basic support for mt2701 SoC and evaluation board. * tag 'v4.4-next-dts' of https://github.com/mbgg/linux-mediatek: dt-bindings: soc: Add supplies for Mediatek SCPSYS unit ARM: mediatek: DT: Move reset controller constants into common location ARM: dts: mediatek: add MT2701 basic support Document: DT: Add bindings for mediatek MT2701 SoC Platform Signed-off-by: Olof Johansson commit 9205a7ade810783a93d329c662fc0969ecc16afb Merge: 43ff5ea 05bdabe Author: Olof Johansson Date: Tue Dec 22 13:00:10 2015 -0800 Merge tag 'v4.4-next-arm64' of https://github.com/mbgg/linux-mediatek into next/dt64 Update psci support to the arm,psci-1.0 to mt8173 Add display PWM driver to mt8173 Add mediatek general porpose timer to mt8173 * tag 'v4.4-next-arm64' of https://github.com/mbgg/linux-mediatek: arm64: dts: mediatek: mt8173 PSCI-1.0 support arm64: dts: mt8173: add MT8173 display PWM driver support node arm64: dts: mt8173: add timer node Signed-off-by: Olof Johansson commit e7bc73cbb522c1704aafc428d5d9763c44666e38 Author: Jiri Pirko Date: Mon Dec 21 11:14:21 2015 +0100 mlxsw: core: Allow to reset temperature history via hwmon interface Add another sysfs hwmon attribute to expose possibility to reset temperature sensors history. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c | 37 +++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) commit 2ea698c63559e3a70f345b0060622a4169f2ed64 Merge: 0d639e0 8b44f5b Author: Olof Johansson Date: Tue Dec 22 12:56:14 2015 -0800 Merge tag 'mvebu-dt-4.5-3' of git://git.infradead.org/linux-mvebu into next/dt mvebu dt for 4.5 (part 3) Add dts for the following boards: - Zyxel NSA325 - PogoPlug series 4 Add GPU support for Dove Update boolean property to wakeup source for isil * tag 'mvebu-dt-4.5-3' of git://git.infradead.org/linux-mvebu: ARM: dts: armada: replace isil, irq2-can-wakeup-machine with wakeup-source property ARM: dts: enable GPU for SolidRun's Cubox ARM: dts: dove: add DT GPU support ARM: mvebu: kirkwood: add PogoPlug series 4 device tree ARM: mvebu: add kirkwood compatibles for cloudengine boards ARM: dts: kirkwood: Add DTS for Zyxel NSA325 Signed-off-by: Olof Johansson commit 0ef917f4fb8342fe2fd0b195f2d65223faf273a2 Merge: d7e4859 1474136 Author: Olof Johansson Date: Tue Dec 22 12:54:04 2015 -0800 Merge tag 'renesas-gic-cleanup-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/cleanup Renesas ARM Based SoC GIC Cleanup for v4.5 On several Renesas ARM SoCs, the GIC is described in DT as being a Cortex A9 GIC, while it's actually a PL390. This is not only stated in the documentation, but has been verified by reading the GICD_IIDR register. To correct this: 1. Update the DT compatible value to match reality, 2. Update the board staging drivers to match the above. * tag 'renesas-gic-cleanup-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: staging: board: armadillo800eva: Use "arm,pl390" staging: board: kzm9d: Use "arm,pl390" ARM: shmobile: r8a7778 dtsi: Use "arm,pl390" for GIC ARM: shmobile: emev2 dtsi: Use "arm,pl390" for GIC ARM: shmobile: r8a7740 dtsi: Use "arm,pl390" for GIC ARM: shmobile: r7s72100 dtsi: Use "arm,pl390" for GIC Signed-off-by: Olof Johansson commit 0d639e0a65af84a2cf636f1aaa7775131931356f Merge: 8eb1f10 d01c8be Author: Olof Johansson Date: Tue Dec 22 12:52:40 2015 -0800 Merge tag 'renesas-dt3-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/dt Third Round of Renesas ARM Based SoC DT Updates for v4.5 * Use SoC-specific usb-dmac and IPMMU compatibility strings * Add internal delay for i2c IPs * Add missing serial devices to r8a7793 * Enable DMA for r8a7793 serial devices * Add serial port config to chosen/stdout-path * Tidyup #sound-dai-cells settings for r8a7798/bockw * Remove deprecated #gpio-range-cells from r8a7793 * Add EtherAVB support to r8a7791 * Add MSIOF support to sh73a0 * tag 'renesas-dt3-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: (25 commits) ARM: shmobile: r8a779x: use SoC-specific usb-dmac compatibility strings ARM: shmobile: r8a7794: IPMMU compat string SoC part number update ARM: shmobile: r8a7793: IPMMU compat string SoC part number update ARM: shmobile: r8a7791: IPMMU compat string SoC part number update ARM: shmobile: r8a7790: IPMMU compat string SoC part number update ARM: shmobile: r8a7794: dtsi: add internal delay for i2c IPs ARM: shmobile: r8a7791: dtsi: add internal delay for i2c IPs ARM: shmobile: r8a7790: dtsi: add internal delay for i2c IPs ARM: shmobile: r8a7793: Describe DMA for the serial ports ARM: shmobile: r8a7793: Add missing serial devices to DT ARM: shmobile: lager dts: Add serial port config to chosen/stdout-path ARM: shmobile: porter dts: Add serial port config to chosen/stdout-path ARM: shmobile: silk dts: Add serial port config to chosen/stdout-path ARM: shmobile: gose dts: Add serial port config to chosen/stdout-path ARM: shmobile: bockw dts: Update console parameters ARM: shmobile: ape6evm dts: Add serial port config to chosen/stdout-path ARM: shmobile: alt dts: Add serial port config to chosen/stdout-path ARM: shmobile: koelsch dts: Add serial port config to chosen/stdout-path ARM: shmobile: r8a7778: tidyup #sound-dai-cells settings ARM: shmobile: bockw dts: Override #sound-dai-cells to zero ... Signed-off-by: Olof Johansson commit 43ff5eaf098829886b1210c677cbf000189a2597 Merge: 1c5d795 2eb2b50 Author: Olof Johansson Date: Tue Dec 22 12:51:21 2015 -0800 Merge tag 'renesas-arm64-dt3-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/dt64 Third Round of Renesas ARM64 Based SoC DT Updates for v4.5 * Enable SATA * Add salvator-x part number to DT bindings documentation * Enable all four A57 cores instead of just one * Enhanced audio support: - Use CS2000 as AUDIO_CLK_B - Set ak4613 In/Out pin as single-end * tag 'renesas-arm64-dt3-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: arm64: renesas: r8a7795: fix SATA clock assignment arm64: dts: salvator-x: Enable SATA controller arm64: dts: r8a7795: Add SATA controller node arm64: renesas: r8a7795: add internal delay for i2c IPs arm64: renesas: salvator-x: Add board part number to DT bindings arm64: dts: r8a7795: Add pmu device nodes arm64: dts: r8a7795: Add Cortex-A57 CPU cores arm64: dts: r8a7795: Add PSCI node arm64: renesas: salvator-x: use CS2000 as AUDIO_CLK_B arm64: renesas: salvator-x: set ak4613 In/Out pin as single-end Signed-off-by: Olof Johansson commit 8bdd6f54543413c8ce7a43e6a54dc03c689d7ba9 Merge: e9dd493 d3643e1 Author: Olof Johansson Date: Tue Dec 22 12:50:29 2015 -0800 Merge tag 'renesas-arm64-defconfig3-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/config64 Third Round of Renesas ARM64 Based SoC Defconfig Updates for v4.5 * Enable CS2000 and Renesas R-Car SATA driver * tag 'renesas-arm64-defconfig3-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: arm64: defconfig: add CS2000 support arm64: defconfig: Add Renesas R-Car SATA driver for R-Car Gen3 SoCs Signed-off-by: Olof Johansson commit 471a9abeb18f43cf437f58d3a13ed8f43b7dede7 Merge: 1807b34 63b8d92 Author: Michael Turquette Date: Tue Dec 22 12:34:39 2015 -0800 Merge branch 'clk-dove' into clk-next commit 63b8d92c793f8622227f70b0685a356d47178cfa Author: Russell King Date: Tue Dec 8 10:38:05 2015 +0000 clk: add Dove PLL divider support for GPU, VMeta and AXI clocks Add support for the Dove PLL dividers, which are used to generate the clocks for the AXI bus, as well as the GPU and VMeta peripherals. Signed-off-by: Russell King Signed-off-by: Michael Turquette drivers/clk/mvebu/Makefile | 2 +- drivers/clk/mvebu/dove-divider.c | 262 +++++++++++++++++++++++++++++++++++++++ drivers/clk/mvebu/dove-divider.h | 6 + drivers/clk/mvebu/dove.c | 6 + 4 files changed, 275 insertions(+), 1 deletion(-) commit f2830d09895a64ba7a1a2c6ef41106c72e3654b2 Author: Sebastian Andrzej Siewior Date: Sat Dec 19 12:55:43 2015 -0800 RDS: don't pretend to use cpu notifiers It looks like an attempt to use CPU notifier here which was never completed. Nobody tried to wire it up completely since 2k9. So I unwind this code and get rid of everything not required. Oh look! 19 lines were removed while code still does the same thing. Acked-by: Santosh Shilimkar Tested-by: Santosh Shilimkar Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: David S. Miller net/rds/page.c | 31 ++++++------------------------- 1 file changed, 6 insertions(+), 25 deletions(-) commit 1c5d7957042d034546bdad3161e0578afe8c24ef Merge: 5b30ffc 9e1dfb8 Author: Olof Johansson Date: Tue Dec 22 12:20:54 2015 -0800 Merge tag 'qcom-arm64-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux into next/dt64 Qualcomm ARM64 Updates for v4.5 * Add fixed rate oscillators to dts * Fixup PMIC alias and properties * Change 8916-MTP compatible to be compliant with new scheme * Fix 8x16 UART pinctrl configuration * Add SMEM, RPM/SMD, and PM8916 support on MSM8916 * tag 'qcom-arm64-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux: arm64: dts: Add PM8916 support on MSM8916 arm64: dts: qcom: Add RPM/SMD support on MSM8916 arm64: dts: qcom: Add MSM8916 SMEM nodes arm64: dts: set the default i2c pin drive strength to 16mA arm64: dts: fix the i2c aliasing to match to schematics. arm64: dts: qcom: msm8916: Add fixed rate on-board oscillators arm64: dts: qcom: Alias pm8916 on msm8916 devices arm64: dts: qcom: Make msm8916-mtp compatible string compliant arm64: dts: qcom: 8x16: UART1 and UART2 use DMA for RX and TX arm64: dts: qcom: 8x16: UART1 add CTS_N, RTS_N pin configurations Signed-off-by: Olof Johansson commit 8418f73b1931f86c4c96f3a97af0ffbb35f659ed Merge: 4f3ab84 4394810 Author: Olof Johansson Date: Tue Dec 22 12:20:15 2015 -0800 Merge tag 'qcom-defconfig-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux into next/defconfig Qualcomm ARM Based defconfig Updates for v4.5 * Enable newly supported devices on Qualcomm platforms * Enable HAVE_ARM_ARCH_TIMER * tag 'qcom-defconfig-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux: ARM: defconfig: qcom: Enable SSBI drivers ARM: defconfig: Update qcom_defconfig ARM: qcom_defconfig: Enable HAVE_ARM_ARCH_TIMER Signed-off-by: Olof Johansson commit 8eb1f10ee94abc4d6cd4bd4a3e4f240ec0054ba8 Merge: 960ac2d 4add107 Author: Olof Johansson Date: Tue Dec 22 12:17:48 2015 -0800 Merge tag 'qcom-dt-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux into next/dt Qualcomm ARM Based Device Tree Updates for v4.5 * Add support for Sony Xperia Z * Updates for Sony Honami board * Updates for APQ8064 generic platform * Updates for MSM8974 generic platform * Add fixed rate oscillators for MSM8960 and APQ8064 * Add documentation for SMSM and SMP2P * Fixup PMIC compat strings * Add support for SMEM, RPM/SMD on APQ8084 * Fixup compat on IFC5640 * tag 'qcom-dt-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux: (24 commits) arm: dts: Add support for PMA8084 on APQ8084 arm: dts: Add RPM/SMD support on APQ8084 arm: dts: Add APQ8084 SMEM nodes ARM: dts: qcom: apq8064-ifc6410 Use hardware flow control for GSBI6 arm: dts: qcom: apq8064: Add fixed rate on-board oscillators ARM: dts: qcom: msm8974: Add i2c8 node ARM: dts: qcom: msm8974: Disable wled and move it to honami arm: dts: qcom: Add generic PMIC gpio/MPP compat strings arm: dts: qcom: Add aliases for PMICs arm: dts: qcom: Update ifc6540 compat for qcom boot format arm: dts: qcom: Add board clocks ARM: dts: qcom: apq8064: Introduce Sony Xperia Z dts ARM: dts: qcom: apq8064: Introduce gsbi5 and gsbi5 serial node ARM: dts: qcom: apq8064: Declare all pm8921 regulators ARM: dts: qcom: apq8064: Add hwmutex and SMEM nodes dt-binding: soc: qcom: Introduce qcom, smp2p binding documentation dt-binding: soc: qcom: Add Qualcomm SMSM device tree documentation devicetree: Add hardware rng entry to qcom-apq8064.dtsi ARM: dts: qcom: msm8974-honami: Specify charging parameters ARM: dts: qcom: msm8974-honami: Add uSD slot nodes ... Signed-off-by: Olof Johansson commit f5ff6cc41df299db49b6263d145b3b2da9a91ad3 Author: Olof Johansson Date: Tue Dec 22 12:15:43 2015 -0800 MAINTAINERS: Drop Kumar Gala from QCOM commit bbeaa59598ca ("MAINTAINERS: Change QCOM entries") was supposed to drop Kumar, but didn't. Kumar acked the patch but I suspect Andy had a mistake in a rebase. Fix it up. Signed-off-by: Olof Johansson MAINTAINERS | 1 - 1 file changed, 1 deletion(-) commit 47ec7e0b7567f10da2975e05fa446be204dc2fcb Merge: 8483ff0 bbeaa59 Author: Olof Johansson Date: Tue Dec 22 12:10:37 2015 -0800 Merge tag 'qcom-soc-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux into next/drivers Qualcomm ARM Based SoC Updates for 4.5 * Add WCNSS_CTRL client * Various Kconfig changes to fix build issues * Update SoC Qualcomm MAINTAINERS entry * Add SMP2P, SMSM, and SMEM state machine drivers * Add SMD-RPM support for existing platforms * tag 'qcom-soc-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux: MAINTAINERS: Change QCOM entries soc: qcom: smd-rpm: Add existing platform support soc: qcom: Introduce WCNSS_CTRL SMD client ARM: qcom: select ARM_CPU_SUSPEND for power management MAINTAINERS: Add rules for Qualcomm dts files soc: qcom: enable smsm/smp2p modular build serial: msm_serial: Make config tristate soc: qcom: smp2p: Qualcomm Shared Memory Point to Point soc: qcom: smsm: Add driver for Qualcomm SMSM soc: qcom: Introduce common SMEM state machine code Signed-off-by: Olof Johansson commit 5c29482dd17835def5cb97918f8f83a881c9918a Author: Geliang Tang Date: Tue Dec 22 23:11:49 2015 +0800 net-sysfs: use to_net_dev in net_namespace() Use to_net_dev() instead of open-coding it. Signed-off-by: Geliang Tang Signed-off-by: David S. Miller net/core/net-sysfs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1807b34f951b5d79da172fee238a56ff0143157f Merge: b8f15e7 c5e949c Author: Michael Turquette Date: Tue Dec 22 10:35:09 2015 -0800 Merge tag 'clk-samsung-4.5' of git://linuxtv.org/snawrocki/samsung into clk-next drivers/clk/samsung updates (mostly bug fixes): - instantiation of the cpu clocks and addition of the GSCL IP parent clocks to the list of available consumer clocks for exynos542x SoCs; - MFC IP parent clock fix for exynos542x; - fix of locking bug in samsung/clk-cpu.c which caused system crashes with cpufreq enabled; - minor cleanup for s3c2410. commit b8f15e711904712e71d2aac3241f9669d0b62917 Merge: 4ef7675 fcd5ac1 Author: Michael Turquette Date: Tue Dec 22 10:34:10 2015 -0800 Merge commit 'fe5fa8fbd4d47f40a45fa29ee1abdb10cb061ec2' into clk-next commit fcd5ac1a4137aea367f6a41399a15e7cef1c0841 Merge: eaaa6fb c20737a Author: Michael Turquette Date: Tue Dec 22 10:22:25 2015 -0800 Merge tag 'imx-clk-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into clk-next The i.MX clock updates for 4.5: - Add is_prepared function callback for pllv3 clock driver - Use imx_check_clocks() on imx6ul and imx7d clock drivers to save some code - Add a core clock for imx7d to support generic cpufreq driver - Support imx6q clock routing with OSC to anaclk2/2b - To support more precise pixel clocks on imx5, allow ipu_di_sel clock selectors to influence the PLLs that they are derived from - A cleanup on imx25 OSC clock commit eaaa6fb53f2652760c1c512534fe3e71672a7d78 Merge: d90e149 dfff24b Author: Michael Turquette Date: Tue Dec 22 10:12:42 2015 -0800 Merge tag 'v4.5-rockchip-clk1_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into clk-next Rockchip clock changes for 4.5 containing - a new pll-type used on rk3036 and other Cortex-A7 socs - new clock-trees for rk3036 and rk3228 - switch rk3288 plls to slow mode on reboot - a bunch of new clock ids - some more critical clocks - wrong register offsets for the rk3368 cpuclks - allowing more than 2 parents for the cpuclk commit d90e149666258bc84e14c1c31c2064a345220cd7 Merge: 3837bd2 c5dae0d Author: Michael Turquette Date: Tue Dec 15 19:13:39 2015 -0800 Merge branch 'clk-shmobile-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into clk-next commit e9dd4939ac50f102c0437f1aafe46fc795442140 Merge: 2bf53f4 36d6e08 Author: Olof Johansson Date: Tue Dec 22 11:56:20 2015 -0800 Merge tag 'tegra-for-4.5-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into next/config64 ARM: tegra: Default configuration updates for v4.5-rc1 This set of patches enable various drivers and features required by 64-bit Tegra SoCs (Tegra132 and Tegra210). * tag 'tegra-for-4.5-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: arm64: defconfig: Enable printk timestamps arm64: defconfig: Enable squashfs support arm64: defconfig: Enable sdhci-tegra driver arm64: defconfig: Enable serial-tegra driver arm64: defconfig: Enable tegra-apbdma driver arm64: defconfig: Do not disable Tegra AHB driver arm64: defconfig: Enable Tegra210 support Signed-off-by: Olof Johansson commit 8483ff079d99e87c5da20767c0b894221019386f Merge: 4b7f48d e2127ae Author: Olof Johansson Date: Tue Dec 22 11:51:24 2015 -0800 Merge tag 'tegra-for-4.5-memory' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into next/drivers memory: tegra: Changes for v4.5-rc1 This is a single fix to improve performance of the SMMU on Tegra124. * tag 'tegra-for-4.5-memory' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: memory/tegra: Add number of TLB lines for Tegra124 Signed-off-by: Olof Johansson commit d317aa5893015d473c11a55bc3125ebd68648946 Merge: 076ef44 0d722ec Author: David S. Miller Date: Tue Dec 22 14:49:03 2015 -0500 Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== 100GbE Intel Wired LAN Driver Updates 2015-12-22 This series contains updates to fm10k only. Bruce cleans up the initialization of fm10k_workqueue at the global level, which fixes a checkpatch.pl error. Made several other cleanups of the driver, like making structures that do not change constant, remove unused code, cleanup code comments and use boolean states true/false instead of an integer since a bool is all that is needed. Jacob fixed the TLV format for little endian structures which are 4 byte aligned copy, so add an additional __aligned(4) and __packed to ensure that these structures are actually 4 byte aligned and packed correctly. Updated the driver to use ether_addr_equal() instead of memcmp() to compare MAC addresses. Alex Duyck cleans up the exception handling so all of the paths result in a similar state if we fail. Specifically the driver will now unload the mailbox interrupt, free the queue vectors and MSI-X, and then detach the interface. ==================== Signed-off-by: David S. Miller commit 4f3ab84156c37ded3423fa108fbcb101c778e86b Merge: 0b71b62 3bf834e Author: Olof Johansson Date: Tue Dec 22 11:48:45 2015 -0800 Merge tag 'renesas-defconfig-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/defconfig Renesas ARM Based SoC Defconfig Updates for v4.5 * multi_v7_defconfig and shmobile_defconfig: - Enable frame buffer console for armadillo800eva - Enable missing Renesas ARM support based on DTSes - Drop useless CONFIG_USB_RCAR_PHY=y * shmobile_defconfig only: - Enable CONFIG_PRINTK_TIME * tag 'renesas-defconfig-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: multi_v7_defconfig: Enable frame buffer console for armadillo800eva ARM: multi_v7_defconfig: Enable missing Renesas ARM support based on DTSes ARM: multi_v7_defconfig: Drop useless CONFIG_USB_RCAR_PHY=y ARM: shmobile: defconfig: Enable frame buffer console for armadillo800eva ARM: shmobile: defconfig: Enable missing support based on DTSes ARM: shmobile: defconfig: Drop useless CONFIG_USB_RCAR_PHY=y ARM: shmobile: defconfig: Enable CONFIG_PRINTK_TIME Signed-off-by: Olof Johansson Conflicts: arch/arm/configs/multi_v7_defconfig commit 0b71b62802004bfef8a450060d48f8e8fcc07ed3 Merge: 1c5a9b8 94c2317 Author: Olof Johansson Date: Tue Dec 22 11:47:27 2015 -0800 Merge tag 'at91-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/nferre/linux-at91 into next/defconfig First defconfig pull-request for 4.5: - a single patch to add watchdog drivers to sama5_defconfig * tag 'at91-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/nferre/linux-at91: ARM: at91/defconfig: enable watchdog drivers in sama5_defconfig Signed-off-by: Olof Johansson commit 960ac2dbeedee2d5b447037a54a8e18299f09860 Merge: 74386da 0a804b5 Author: Olof Johansson Date: Tue Dec 22 11:46:26 2015 -0800 Merge tag 'at91-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/nferre/linux-at91 into next/dt First batch of DT changes for 4.5: - addition of nodes for sama5d2 & sama5d4 - some fixes for i2c hold time, compatible stings - addition of a new patform by DENX: the MA5D4 SoM and EVK * tag 'at91-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/nferre/linux-at91: ARM: at91/dt: sama5d2 Xplained: pmic needs a specific sda hold time ARM: at91/dt: sama5d4: update i2c compatible string ARM: at91/dt: sama5d4 master clock can run at 200MHz now ARM: at91/dt: sama5d2: add watchdog node ARM: at91/dt: sama5d4: Add support for DENX MA5D4 SoM and EVK ARM: at91/dt: sama5d4: Add pinmux for 8-bit MMC0 bus ARM: at91/dt: sama5d4: Fix mmc0 pinmux comments Signed-off-by: Olof Johansson commit 4749edf82fac0a370fadb9ba9fdb14f5626056a7 Merge: a436848 5bcd927 Author: Olof Johansson Date: Tue Dec 22 11:40:17 2015 -0800 Merge tag 'davinci-for-v4.5/fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci into next/fixes-non-critical This pull request includes a fix for improper usage of WARN() and a fix for unmet 'select' dependencies. * tag 'davinci-for-v4.5/fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci: ARM: davinci: fix a problematic usage of WARN() ARM: davinci: only select WT cache if cache is enabled Signed-off-by: Olof Johansson commit cebfe5ca038e2a0f677b41e9682501708ffa2ff3 Author: Or Gerlitz Date: Fri Dec 18 10:59:49 2015 +0200 staging/o2iblnd: Avoid calling ib_query_device Instead, use the cached copy of the attributes present on the device. Signed-off-by: Or Gerlitz Signed-off-by: Doug Ledford drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) commit e3e45b1b43988b99007a9908ca0ba738b3fbd0ff Author: Or Gerlitz Date: Fri Dec 18 10:59:48 2015 +0200 xprtrdma: Avoid calling ib_query_device Instead, use the cached copy of the attributes present on the device. Signed-off-by: Or Gerlitz Signed-off-by: Doug Ledford net/sunrpc/xprtrdma/frwr_ops.c | 7 ++--- net/sunrpc/xprtrdma/svc_rdma_transport.c | 48 +++++++++++++------------------- net/sunrpc/xprtrdma/verbs.c | 24 ++++++---------- net/sunrpc/xprtrdma/xprt_rdma.h | 1 - 4 files changed, 30 insertions(+), 50 deletions(-) commit 0353261c12c3c40483921a872d74d2f90c1bd46b Author: Or Gerlitz Date: Fri Dec 18 10:59:47 2015 +0200 net/rds: Avoid calling ib_query_device Instead, use the cached copy of the attributes present on the device. Signed-off-by: Or Gerlitz Signed-off-by: Doug Ledford net/rds/ib.c | 34 +++++++++++----------------------- net/rds/iw.c | 23 +++++------------------ 2 files changed, 16 insertions(+), 41 deletions(-) commit 4a061b287b1eb58676875cc45929679911d1ca38 Author: Or Gerlitz Date: Fri Dec 18 10:59:46 2015 +0200 IB/ulps: Avoid calling ib_query_device Instead, use the cached copy of the attributes present on the device. Signed-off-by: Or Gerlitz Signed-off-by: Doug Ledford drivers/infiniband/ulp/ipoib/ipoib_cm.c | 19 ++++------- drivers/infiniband/ulp/ipoib/ipoib_ethtool.c | 14 +++------ drivers/infiniband/ulp/ipoib/ipoib_main.c | 21 +------------ drivers/infiniband/ulp/iser/iscsi_iser.c | 4 +-- drivers/infiniband/ulp/iser/iscsi_iser.h | 2 -- drivers/infiniband/ulp/iser/iser_memory.c | 9 +++--- drivers/infiniband/ulp/iser/iser_verbs.c | 38 ++++++++++------------ drivers/infiniband/ulp/isert/ib_isert.c | 47 +++++++++------------------- drivers/infiniband/ulp/isert/ib_isert.h | 1 - drivers/infiniband/ulp/srp/ib_srp.c | 32 ++++++------------- drivers/infiniband/ulp/srpt/ib_srpt.c | 15 ++++----- drivers/infiniband/ulp/srpt/ib_srpt.h | 3 -- 12 files changed, 63 insertions(+), 142 deletions(-) commit 86bee4c9c126b4f73e3f152cd43c806cac9135ad Author: Or Gerlitz Date: Fri Dec 18 10:59:45 2015 +0200 IB/core: Avoid calling ib_query_device Use the cached copy of the attributes present on the device, except for the case of a query originating from user-space, where we have to invoke the driver query_device entry, so they can fill in their udata. Signed-off-by: Or Gerlitz Signed-off-by: Doug Ledford drivers/infiniband/core/cm.c | 12 +----------- drivers/infiniband/core/cma.c | 8 -------- drivers/infiniband/core/fmr_pool.c | 20 ++------------------ drivers/infiniband/core/sysfs.c | 14 ++++---------- drivers/infiniband/core/uverbs_cmd.c | 23 ++++------------------- drivers/infiniband/core/verbs.c | 8 +------- 6 files changed, 12 insertions(+), 73 deletions(-) commit 3e153a93a1c12e3354dd38cca414fb51a15136a2 Author: Ira Weiny Date: Fri Dec 18 10:59:44 2015 +0200 IB/core: Save the device attributes on the device structure This way both the IB core and upper level drivers can access these cached device attributes rather than querying or caching them on their own. Signed-off-by: Ira Weiny Signed-off-by: Or Gerlitz Signed-off-by: Doug Ledford drivers/infiniband/core/device.c | 8 ++++++++ include/rdma/ib_verbs.h | 1 + 2 files changed, 9 insertions(+) commit 1c5a9b84a16420700a07956c3485f91be48799ce Author: Nishanth Menon Date: Mon Dec 14 12:43:00 2015 -0600 ARM: multi_v7_defconfig: Enable generic SoC internal OMAP regulators ABB and PBIAS are internal LDO control regulators that are needed for maintaining proper functionality of OMAP architecture SoCs. Enable the same. PBIAS is already enabled, so just enable ABB regulator as well. Signed-off-by: Nishanth Menon Signed-off-by: Olof Johansson arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit 7b5c01bb267b36eace99e87d5b7d8c369a184e1e Author: Nishanth Menon Date: Mon Dec 14 12:42:59 2015 -0600 ARM: multi_v7_defconfig: Enable AM437x PMIC TPS65218 Enable PMIC for AM437x platforms such as AM437x-sk similar to commit a186cf10da84 ("ARM: omap2plus_defconfig: enable TPS65218 configs"). This allows multi_v7_defconfig to boot up on AM437x-sk platform. Signed-off-by: Nishanth Menon Signed-off-by: Olof Johansson arch/arm/configs/multi_v7_defconfig | 2 ++ 1 file changed, 2 insertions(+) commit 74386da41d49bad0efc00ff41960067747098bff Merge: 69c8e66 2367cee Author: Olof Johansson Date: Tue Dec 22 11:29:28 2015 -0800 Merge tag 'sunxi-dt-for-4.5' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux into next/dt Allwinner DT changes for 4.5 Allwinner device-tree related patches for the 4.5 merge window. * Support for the H3 * Addition of the RSB to the relevant devices (sun8i, sun9i) * Addition of the Video Engine clocks for the older SoCs (sun4i, sun7i) * Addition of the DRAM gates for the older SoCs (sun4i, sun7i) * Addition of the audio codec to a bunch of boards * New board: ICNova SWAC * tag 'sunxi-dt-for-4.5' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux: (40 commits) ARM: dts: sun7i: Olimex A20-SOM-EVB: Enable mmc3 (baseboard SD socket) ARM: dts: sun7i: Olimex A20-SOM-EVB: Add LRADC keys ARM: dts: sun9i: cubieboard4: Enable Reduced Serial Bus controller ARM: dts: sun9i: cubieboard4: Enable consumer IR receiver ARM: dts: sun9i: cubieboard4: Enable LEDs ARM: dts: sun7i: Add VE (Video Engine) module clock node ARM: dts: sun4i: Add VE (Video Engine) module clock node ARM: dts: sun8i: Add Orange Pi Plus support ARM: dts: sunxi: Add Allwinner H3 DTSI ARM: dts: sun7i: Add DRAM gates ARM: dts: sun4i: Add DRAM gates ARM: dts: sun9i: Add NMI controller device node ARM: dts: sun9i: optimus: Enable Reduced Serial Bus controller ARM: dts: sun9i: Add Reduced Serial Bus controller device node to A80 dtsi ARM: dts: sun9i: optimus: Enable consumer IR receiver ARM: dts: sun9i: Add consumer IR receiver device node and pinmux settings ARM: dts: sun9i: optimus: Enable LED3 ARM: dts: sun9i: Add A80 R_PIO pin controller device node ARM: dts: sun9i: Add TODO comments for the main and low power clocks ARM: dts: sun9i: Add A80 PRCM clocks and reset control nodes ... Signed-off-by: Olof Johansson commit f877df2bcf916ce76851b0f0a669512aa8183446 Merge: d622bbf 8f039f9 Author: Olof Johansson Date: Tue Dec 22 11:28:30 2015 -0800 Merge tag 'zynq-soc-for-4.5' of https://github.com/Xilinx/linux-xlnx into next/soc arm: Xilinx Zynq patches for v4.5 - Select reset controller by default for Zynq * tag 'zynq-soc-for-4.5' of https://github.com/Xilinx/linux-xlnx: ARM: zynq: Select ARCH_HAS_RESET_CONTROLLER Signed-off-by: Olof Johansson commit 5b30ffc29d91b9b2cf2e6968f3aab60c97d15384 Merge: dd90caa bdd5739 Author: Olof Johansson Date: Tue Dec 22 11:27:29 2015 -0800 Merge tag 'zynqmp-dt-for-4.5' of https://github.com/Xilinx/linux-xlnx into next/dt64 arm: Xilinx ZynqMP dt patches for v4.5 - Label GPIO controller as interrupt controller * tag 'zynqmp-dt-for-4.5' of https://github.com/Xilinx/linux-xlnx: ARM64: zynqmp: DT: Add interrupt-controller property to GPIO Signed-off-by: Olof Johansson commit 69c8e667ff1a5702d7908db430ac091bd14a1cdb Merge: 3a86597 400b6a0 Author: Olof Johansson Date: Tue Dec 22 11:26:28 2015 -0800 Merge tag 'zynq-dt-for-4.5' of https://github.com/Xilinx/linux-xlnx into next/dt arm: Xilinx Zynq dt patches for v4.5 - Various small DT changes, GPIO, slcr, cpu label * tag 'zynq-dt-for-4.5' of https://github.com/Xilinx/linux-xlnx: ARM: dt: zynq: Add labels to cpu nodes to allow overriding OPPs. ARM: dts: zynq: describe SLCR as simple-mfd rather than simple-bus ARM: dts: zynq: replace gpio-key,wakeup with wakeup-source property ARM: zynq: DT: Add interrupt-controller property to GPIO Signed-off-by: Olof Johansson commit dd90caaca216b848e3093ebbd02bd4615de7e88b Author: Rob Herring Date: Thu Dec 10 15:21:13 2015 -0600 arm64: dts: hikey: add label properties to UARTs Add label properties to provide a way to identify UARTs based on their board or connector name. This follows naming convention in 96boards CE spec. Ports without external connections are not labelled. Signed-off-by: Rob Herring Signed-off-by: Olof Johansson arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts | 7 +++++++ 1 file changed, 7 insertions(+) commit 262c45d43f425c7907a4c9857e7f37c82234a3be Author: Rob Herring Date: Thu Dec 10 15:21:12 2015 -0600 arm64: dts: apq8016-sbc: add label properties for UART, I2C, and SPI Add label properties to provide a way to identify UART, I2C and SPI ports based on their connector names. This follows naming convention in 96boards CE spec. Ports without external connections are not labelled. Signed-off-by: Rob Herring Cc: Srinivas Kandagatla Cc: Andy Gross Acked-by: Kevin Hilman Tested-by: Kevin Hilman Signed-off-by: Olof Johansson arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) commit 700dfee1901872625d0190e32dd8b1d0e29d0850 Author: Rob Herring Date: Thu Dec 10 15:21:11 2015 -0600 arm64: dts: apq8016-sbc: enable UART0 on LS connector The LS UART0 is not used by anything else and should be enabled for expansion boards. Signed-off-by: Rob Herring Cc: Srinivas Kandagatla Cc: Andy Gross Signed-off-by: Olof Johansson arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) commit 28e10a8f3a03f39d087bb6180be2fb1f407664e5 Author: Jon Medhurst (Tixy) Date: Wed Dec 9 09:40:53 2015 +0000 arm64: dts: juno: Add idle-states to device tree This patch adds idle-states bindings data collected through a set of benchmarking experiments (latency and energy consumption) on Juno boards. Latencies data represents the worst case scenarios as required by the DT idle-states bindings. Signed-off-by: Jon Medhurst Acked-by: Lorenzo Pieralisi Signed-off-by: Olof Johansson arch/arm64/boot/dts/arm/juno-r1.dts | 28 ++++++++++++++++++++++++++++ arch/arm64/boot/dts/arm/juno.dts | 28 ++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) commit 4b7f48d395a7e3b11ded7695ac2b36d0685e0785 Author: Masahiro Yamada Date: Wed Dec 9 15:52:59 2015 +0900 bus: uniphier-system-bus: add UniPhier System Bus driver The UniPhier System Bus is an external bus that connects on-board devices to the UniPhier SoC. Each bank (chip select) is dynamically mapped to the CPU-viewed address base via the bus controller. The bus controller must be configured before any access to the bus. This driver parses the "ranges" property of the System Bus node and initialized the bus controller. After the bus becomes ready, devices below it are populated. Note: Each bank can be mapped anywhere in the supported address space; there is nothing preventing us from assigning bank 0 on 0x42000000, 0x43000000, or anywhere as long as such region is not used by others. So, the "ranges" is just one possible software configuration, which does not seem to fit in device tree because device tree is a hardware description language. However, of_translate_address() requires "ranges" in every bus node between CPUs and device mapped on the CPU address space. In other words, "ranges" properties must be statically defined in device tree. After some discussion, I decided the dynamic address reassignment by the driver is too bothersome. Instead, the device tree should provide a reasonable translation setup that the OS can rely on. Signed-off-by: Masahiro Yamada Acked-by: Rob Herring Acked-by: Arnd Bergmann Signed-off-by: Olof Johansson .../bindings/bus/uniphier-system-bus.txt | 66 +++++ MAINTAINERS | 1 + drivers/bus/Kconfig | 8 + drivers/bus/Makefile | 1 + drivers/bus/uniphier-system-bus.c | 281 +++++++++++++++++++++ 5 files changed, 357 insertions(+) commit c1be3c1fc6178ca48750b4e66f1acb7c22b64997 Author: Eric Anholt Date: Wed Dec 16 15:55:14 2015 -0800 ARM: bcm2835: Add a compat string for bcm2836 machine probe Supporting the 2836 requires using the new interrupt controller, which we have support for. Signed-off-by: Eric Anholt arch/arm/mach-bcm/board_bcm2835.c | 5 +++++ 1 file changed, 5 insertions(+) commit 57e5c6d95b2cde884634586d833b02f54ba1c79d Author: Eric Anholt Date: Tue Apr 21 09:42:21 2015 -0700 dt-bindings: Add root properties for Raspberry Pi 2 Signed-off-by: Eric Anholt Acked-by: Rob Herring Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt | 4 ++++ 1 file changed, 4 insertions(+) commit c7a5675f525c668ec4dabd06705d5243f0d9da90 Author: J. German Rivera Date: Fri Dec 4 16:56:04 2015 -0600 arm64: dts: Added syscon-reboot node for FSL's LS2080A SoC Added sys-reboot node to the FSL's LS2080A SoC DT to leverage the ARM-generic reboot mechanism for this SoC. This mechanism is enabled through CONFIG_POWER_RESET_SYSCON. Signed-off-by: J. German Rivera Signed-off-by: Li Yang Signed-off-by: Olof Johansson arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit ac0ca416340c2940c022eb4ddc89ffe5746c0f01 Author: Shaohui Xie Date: Fri Dec 4 16:56:03 2015 -0600 arm64: dts: add LS1043a-RDB board support Signed-off-by: Shaohui Xie Signed-off-by: Mingkai Hu Signed-off-by: Wenbin Song Signed-off-by: Hou Zhiqiang Signed-off-by: Li Yang Signed-off-by: Olof Johansson arch/arm64/boot/dts/freescale/Makefile | 1 + arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts | 116 ++++++++++++++++++++++ 2 files changed, 117 insertions(+) commit 6d453cd22357f19ae04fa9f65a90f7f23117f2aa Author: Mingkai Hu Date: Fri Dec 4 16:56:02 2015 -0600 arm64: dts: add Freescale LS1043a SoC support LS1043a is an SoC with 4 ARMv8 A53 cores and most other IP blocks are similar to LS1021a which also complies to Freescale Chassis 2.1 spec. Created LS1043a SoC DTSI file to be included by board level DTS files. Signed-off-by: Li Yang Signed-off-by: Hou Zhiqiang Signed-off-by: Mingkai Hu Signed-off-by: Wenbin Song Signed-off-by: Olof Johansson arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi | 527 +++++++++++++++++++++++++ 1 file changed, 527 insertions(+) commit 8dd1f63ba05fcd21a3fd8bbb688c567ad7ea09cb Author: Mingkai Hu Date: Fri Dec 4 16:56:01 2015 -0600 Documentation: DT: Add entry for Freescale LS1043a-RDB board Signed-off-by: Mingkai Hu Signed-off-by: Hou Zhiqiang Signed-off-by: Li Yang Signed-off-by: Olof Johansson Documentation/devicetree/bindings/arm/fsl.txt | 4 ++++ 1 file changed, 4 insertions(+) commit e8aab48b34d3bd069dfcf4ccb8f13ba8c98f7845 Author: Jonathan Cameron Date: Tue Dec 22 18:51:27 2015 +0000 iio: adc: ina2xx: Fix incorrect report of data endianness to userspace. This was extracted from a reposting of the driver after it had been applied to the IIO tree. I have fast tracked it as the driver will be in 4.5 and it would be nice to fix this trivial issue before it is. Signed-off-by: Jonathan Cameron drivers/iio/adc/ina2xx-adc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7441ccef339f87abc27afc4ccfc24c014d7360c9 Author: Jaegeuk Kim Date: Mon Dec 21 19:20:15 2015 -0800 f2fs: use atomic variable for total_extent_tree It would be better to use atomic variable for total_extent_tree. Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/debug.c | 5 +++-- fs/f2fs/extent_cache.c | 8 ++++---- fs/f2fs/f2fs.h | 2 +- fs/f2fs/node.c | 3 ++- fs/f2fs/shrinker.c | 3 ++- 5 files changed, 12 insertions(+), 9 deletions(-) commit a40a00318c7fcdd23e73cfffac0e33430a43a3e3 Author: Heiko Stübner Date: Fri Dec 18 19:30:59 2015 +0100 usb: dwc2: add shutdown callback to platform variant In specific conditions (involving usb hubs) dwc2 devices can create a lot of interrupts, even to the point of overwhelming devices running at low frequencies. Some devices need to do special clock handling at shutdown-time which may bring the system clock below the threshold of being able to handle the dwc2 interrupts. Disabling dwc2-irqs in a shutdown callbacks prevents reboots/poweroffs from getting stuck in such cases. The hsotg struct already contains an unused irq element, so we can just use it to store the irq number for the shutdown callback. Reviewed-by: Douglas Anderson Acked-by: John Youn Signed-off-by: Heiko Stuebner Signed-off-by: Felipe Balbi drivers/usb/dwc2/platform.c | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) commit 3837bd277abd08395588139759cbd56f00f14cb4 Author: Masahiro Yamada Date: Thu Nov 5 17:59:39 2015 +0900 clk: fix codying style of if ... else blocks This code is unreadable due to the blank line between if and else blocks. Signed-off-by: Masahiro Yamada Signed-off-by: Michael Turquette drivers/clk/clk-mux.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit ea4a8cb1c2b47570e77f4489659e2c653ca66f9e Author: Geliang Tang Date: Sat Dec 19 00:34:34 2015 +0800 usb: gadget: bcm63xx_udc: use list_for_each_entry_safe Use list_for_each_entry_safe() instead of list_for_each_safe() to simplify the code. Signed-off-by: Geliang Tang Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/bcm63xx_udc.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 9b1de75b5deea3e56bfb76d19d71ec599fcc803b Author: Adriana Reus Date: Mon Dec 14 14:24:47 2015 +0200 iio: light: us5182d: Refactor read_raw function A bit of refactoring for better readability. Moved and slightly reorganized all the activity necessary for reading als and proximity into a different function. This way the switch in read raw becomes clearer and more compact. Signed-off-by: Adriana Reus Signed-off-by: Jonathan Cameron drivers/iio/light/us5182d.c | 155 ++++++++++++++++++++++---------------------- 1 file changed, 78 insertions(+), 77 deletions(-) commit b6695254f800698faee4f30a8f0b199459ebeafe Author: Adriana Reus Date: Mon Dec 14 14:24:46 2015 +0200 iio: light: us5182d: Add interrupt support and events Add interrupt support for proximity. Add two threshold events to signal rising and falling directions. Signed-off-by: Adriana Reus Signed-off-by: Jonathan Cameron drivers/iio/light/us5182d.c | 271 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 270 insertions(+), 1 deletion(-) commit 39cee200c23eb3e28056011a1dec053beba4a18a Author: Uwe Kleine-König Date: Fri Dec 18 12:02:04 2015 +0100 usb: musb: core: call init and shutdown for the usb phy The phy's init routine must be called before it can be used. Do so in musb_init_controller and the matching shutdown in musb_remove. Signed-off-by: Uwe Kleine-König Signed-off-by: Felipe Balbi drivers/usb/musb/musb_core.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 8a0859b65b06ea07461271ce4f1fe25b48d1ec55 Author: Du, Changbin Date: Fri Dec 18 15:36:40 2015 +0800 usb: gadget: forbid queuing request to a disabled ep Queue a request to disabled ep doesn't make sense, and induce caller make mistakes. Here is a example for the android mtp gadget function driver. A mem corruption can happen on below senario. 1) On disconnect, mtp driver disable its EPs, 2) During send_file_work and receive_file_work, mtp queues a request to ep. (The mtp driver need improve its synchronization logic!) 3) mtp_function_unbind is invoked and all mtp requests are freed. 4) when udc process the request queued on step 2, will cause kernel NULL pointer dereference exception. Signed-off-by: Du, Changbin Signed-off-by: Felipe Balbi include/linux/usb/gadget.h | 3 +++ 1 file changed, 3 insertions(+) commit 6d76c92c2fcbee4fd1f6d7b375d71057c7a615b1 Author: Marek Vasut Date: Fri Dec 18 03:26:17 2015 +0100 usb: dwc2: gadget: Repair DSTS register decoding The "enumspd" field is located in register DSTS[2:1], but the code which checks the bitfield does not shift the value accordingly. This in turn causes incorrect detection of gadget link partner speed in dwc2_hsotg_irq_enumdone() . Shift the value accordingly to fix the problem with speed detection. Acked-by: John Youn Signed-off-by: Marek Vasut Cc: Felipe Balbi Cc: Greg Kroah-Hartman Cc: John Youn Signed-off-by: Felipe Balbi drivers/usb/dwc2/gadget.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 60c0288c72c980fb37ed4e48f68c9743a53b662c Author: John Youn Date: Thu Dec 17 11:18:41 2015 -0800 usb: dwc2: gadget: Remove call to dwc2_hsotg_init() Remove call to dwc2_hsotg_init() from dwc2_gadget_init(). The gadget_init function should not access any device registers because the mode isn't guaranteed here. Also, this is already called elsewhere before anything starts on the gadget so it is not necessary here. Signed-off-by: John Youn Signed-off-by: Felipe Balbi drivers/usb/dwc2/gadget.c | 2 -- 1 file changed, 2 deletions(-) commit 25362d318371e1e271dda24995ceabb8457b3b7c Author: John Youn Date: Thu Dec 17 11:18:27 2015 -0800 usb: dwc2: Remove redundant reset in probe Reset already happens before this so just force the dr_mode. Signed-off-by: John Youn Signed-off-by: Felipe Balbi drivers/usb/dwc2/platform.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 97e463886b873f62bea2293e7edf81fdb884b84f Author: John Youn Date: Thu Dec 17 11:18:13 2015 -0800 usb: dwc2: Reduce delay when forcing mode in reset The delay for force mode is only 25ms according to the databook. Signed-off-by: John Youn Signed-off-by: Felipe Balbi drivers/usb/dwc2/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 241729baa932a69cd203dbaa81abbb8af5b77b65 Author: John Youn Date: Thu Dec 17 11:17:59 2015 -0800 usb: dwc2: gadget: Replace dwc2_hsotg_corereset() The dwc2_core_reset() function exists in the core so use that one instead. Signed-off-by: John Youn Signed-off-by: Felipe Balbi drivers/usb/dwc2/gadget.c | 50 +---------------------------------------------- 1 file changed, 1 insertion(+), 49 deletions(-) commit 43e9034904dd37db7ed87fa8f5039c561c4004cd Author: John Youn Date: Thu Dec 17 11:17:45 2015 -0800 usb: dwc2: gadget: Use hw params from core Use the previously cached hw params in the gadget. This saves a reset and force mode in the gadget initialization during probe and makes getting the hardware parameters consistent between gadget and host. Signed-off-by: John Youn Signed-off-by: Felipe Balbi drivers/usb/dwc2/gadget.c | 41 ++++++++++++++++------------------------- 1 file changed, 16 insertions(+), 25 deletions(-) commit 58e9042f5f130bf3f9043cf75aa2632fc12140e6 Author: Adriana Reus Date: Mon Dec 14 14:24:45 2015 +0200 iio: light: us5182d: Fix enable status inconcistency When setting als only or proximity only modes make sure that we mark the other component as disabled. This fix is in preparation of adding event support because that will make it possible to switch between one-shot and continuous modes and not tracking these correctly may cause faulty behaviour (e.g wrongfully considering px enabled and not setting an appropriate mode in the chip). Signed-off-by: Adriana Reus Signed-off-by: Jonathan Cameron drivers/iio/light/us5182d.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit 55e1040e424b59063da627fb580ec953f4c01de7 Author: John Youn Date: Thu Dec 17 11:17:31 2015 -0800 usb: dwc2: Improve handling of host and device hwparams Adds separate functions to get the host and device specific hardware parameters. The functions check whether the parameters need to be read at all, depending on dr_mode, and forces the mode only if necessary. This saves some delays during probe. This also adds two device mode parameters that will be used by the gadget. Signed-off-by: John Youn Signed-off-by: Felipe Balbi drivers/usb/dwc2/core.c | 88 +++++++++++++++++++++++++++++++++++++------------ drivers/usb/dwc2/core.h | 3 ++ 2 files changed, 70 insertions(+), 21 deletions(-) commit 09c96980dc723462ed2eeacc945fed5bcb278f85 Author: John Youn Date: Thu Dec 17 11:17:12 2015 -0800 usb: dwc2: Add functions to set and clear force mode Added functions to set force mode for host and device. These functions will check the current mode and only force if needed thus avoiding unnecessary force mode delays. However clearing the mode is currently done unconditionally and with the delay in place. This is needed during the connector ID status change interrupt in order to ensure that the mode has changed properly. This preserves the old behavior only for this case. The warning comment about this is moved into the clear mode condition. Signed-off-by: John Youn Signed-off-by: Felipe Balbi drivers/usb/dwc2/core.c | 149 ++++++++++++++++++++++++++++++++++++++++-------- drivers/usb/dwc2/core.h | 2 + 2 files changed, 127 insertions(+), 24 deletions(-) commit 263b7fb557f797d9d4d1dcf93fb6bb2efc3f1d46 Author: John Youn Date: Thu Dec 17 11:16:58 2015 -0800 usb: dwc2: Move reset into dwc2_get_hwparams() The reset is required to get reset values of the hardware parameters but the force mode is not. Move the base reset into dwc2_get_hwparams() and do the reset and force mode afterwards. Signed-off-by: John Youn Signed-off-by: Felipe Balbi drivers/usb/dwc2/core.c | 8 ++++++++ drivers/usb/dwc2/platform.c | 10 +++------- 2 files changed, 11 insertions(+), 7 deletions(-) commit 1696d5ab99ef885ae62da5ad58f9eff16da7ff78 Author: John Youn Date: Thu Dec 17 11:16:45 2015 -0800 usb: dwc2: Move mode querying functions into core.h These functions should go in core.h where they can be called from core, device, or host. Signed-off-by: John Youn Reviewed-by: Douglas Anderson Tested-by: Douglas Anderson Signed-off-by: Felipe Balbi drivers/usb/dwc2/core.h | 12 ++++++++++++ drivers/usb/dwc2/hcd.h | 12 ------------ 2 files changed, 12 insertions(+), 12 deletions(-) commit 5268ed9d2e3b52f703f3661eef14cecbb2b572d4 Author: John Youn Date: Thu Dec 17 11:16:31 2015 -0800 usb: dwc2: Fix dr_mode validation The dr_mode parameter was being checked against how the dwc2 module was being configured at compile time. But it wasn't checked against the hardware capabilities, nor were the hardware capabilities checked against the compilation parameters. This commit adds those checks and adjusts dr_mode to an appropriate value, if needed. If the hardware capabilities and module compilation do not match then we fail as it wouldn't be possible to run properly. The hardware, module, and dr_mode, can each be set to host, device, or otg. Check that all these values are compatible and adjust the value of dr_mode if possible. The following table summarizes the behavior: actual HW MOD dr_mode dr_mode ------------------------------ HST HST any : HST HST DEV any : --- HST OTG any : HST DEV HST any : --- DEV DEV any : DEV DEV OTG any : DEV OTG HST any : HST OTG DEV any : DEV OTG OTG any : dr_mode Signed-off-by: John Youn Signed-off-by: Felipe Balbi drivers/usb/dwc2/platform.c | 82 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 69 insertions(+), 13 deletions(-) commit 6bea962053e76a4407f0d138184a8737eea960ee Author: John Youn Date: Thu Dec 17 11:16:17 2015 -0800 usb: dwc2: Add functions to check the HW OTG config Added functions to query the GHWCFG2.OTG_MODE. This tells us whether the controller hardware is configured for OTG, device-only, or host-only. Signed-off-by: John Youn Tested-by: Douglas Anderson Reviewed-by: Douglas Anderson Signed-off-by: Felipe Balbi drivers/usb/dwc2/core.c | 37 +++++++++++++++++++++++++++++++++++++ drivers/usb/dwc2/core.h | 13 +++++++++++++ 2 files changed, 50 insertions(+) commit b5d308abef1c5c0f24128845e41d414a8f8438f6 Author: John Youn Date: Thu Dec 17 11:16:03 2015 -0800 usb: dwc2: Add dwc2_core_reset() dwc2_core_reset() was previously renamed to dwc2_core_reset_and_dr_force_mode(). Now add back dwc2_core_reset() which performs only a basic core reset without forcing the mode. Signed-off-by: John Youn Signed-off-by: Felipe Balbi drivers/usb/dwc2/core.c | 22 ++++++++++++++++++++-- drivers/usb/dwc2/core.h | 1 + 2 files changed, 21 insertions(+), 2 deletions(-) commit 6d58f346a61ff50eda740e6216e9829e572d75c8 Author: John Youn Date: Thu Dec 17 11:15:49 2015 -0800 usb: dwc2: Rename dwc2_core_reset() Renamed dwc2_core_reset() to dwc2_core_reset_and_force_dr_mode(). This describes what it is doing more accurately. This is in preparation of introducing a plain dwc2_core_reset() function that only performs the reset and doesn't force the mode. Signed-off-by: John Youn Signed-off-by: Felipe Balbi drivers/usb/dwc2/core.c | 8 ++++---- drivers/usb/dwc2/core.h | 2 +- drivers/usb/dwc2/platform.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) commit b8ccc593eeeacde0e6794c4dcec0a57eba7356e6 Author: John Youn Date: Thu Dec 17 11:15:35 2015 -0800 usb: dwc2: Reorder AHBIDLE and CSFTRST in dwc2_core_reset() According to the databook, the core soft reset should be done before checking for AHBIDLE. The gadget version of core reset had it correct but the hcd version did not. This fixes the hcd version. Signed-off-by: John Youn Reviewed-by: Douglas Anderson Tested-by: Douglas Anderson Signed-off-by: Felipe Balbi drivers/usb/dwc2/core.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit 7d56cc2620f523eba7a831daa22186c8ae5bbdfe Author: Douglas Anderson Date: Thu Dec 17 11:15:21 2015 -0800 usb: dwc2: Avoid more calls to dwc2_core_reset() Calls to dwc2_core_reset() are currently very slow, taking at least 150ms (possibly more). It behooves us to take as many of these calls out as possible. It turns out that the calls in dwc2_fs_phy_init() and dwc2_hs_phy_init() should (as documented in the code) only be needed if we need to do a PHY SELECT. That means that if we see that we can avoid the PHY SELECT then we can avoid the reset. This patch appears to successfully bypass two resets (one per USB device) on rk3288-based ARM Chromebooks. Signed-off-by: Douglas Anderson Signed-off-by: John Youn Signed-off-by: Felipe Balbi drivers/usb/dwc2/core.c | 40 +++++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 17 deletions(-) commit 20bde643434d541bc5f662c5836a05e9e276eca3 Author: Yunzhi Li Date: Thu Dec 17 11:15:08 2015 -0800 usb: dwc2: reduce dwc2 driver probe time I found that the probe function of dwc2 driver takes much time when kernel boot up. There are many long delays in the probe function these take almost 1 second. This patch trying to reduce unnecessary delay time. In dwc2_core_reset() I see it use two at least 20ms delays to wait AHB idle and core soft reset, but dwc2 data book said that dwc2 core soft reset and AHB idle just need a few clocks (I think it refers to AHB clock, and AHB clock run at 150MHz in my RK3288 board), so 20ms is too long, delay 1us for wait AHB idle and soft reset is enough. And in dwc2_get_hwparams() it takes 150ms to wait ForceHostMode and ForceDeviceMode valid but in data book it said software must wait at least 25ms before the change to take effect, so I reduce this time to 25ms~50ms. By the way, is there any state bit show that the force mode take effect ? Could we poll curmod bit for figuring out if the change take effect ? It seems that usleep_range() at boot time will pick the longest value in the range. In dwc2_core_reset() there is a very long delay takes 200ms, and this function run twice when probe, could any one tell me is this delay time resonable ? I have tried this patch in my RK3288-evb board. It works well. Signed-off-by: Yunzhi Li Signed-off-by: Douglas Anderson Signed-off-by: John Youn Signed-off-by: Felipe Balbi drivers/usb/dwc2/core.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit f619473140df4e1a10f4c10f693d214807ebdb03 Author: Douglas Anderson Date: Thu Dec 17 11:14:54 2015 -0800 usb: dwc2: Speed dwc2_get_hwparams() on some host-only ports On some host-only DWC2 ports (like the one in rk3288) when we set GUSBCFG_FORCEHOSTMODE in GUSBCFG and then read back, we don't see the bit set. Presumably that's because the port is always forced to HOST mode so there's no reason to implement these status bits. Since we know dwc2_core_reset() is always called before dwc2_get_hwparams() and we know dwc2_core_reset() should have set GUSBCFG_FORCEHOSTMODE whenever hsotg->dr_mode == USB_DR_MODE_HOST, we can just check hsotg->dr_mode to decide that we can skip the delays in dwc2_get_hwparams(). Signed-off-by: Douglas Anderson Signed-off-by: John Youn Signed-off-by: Felipe Balbi drivers/usb/dwc2/core.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 0fe239bc190453fe82252c6d41a74e685730cd93 Author: Douglas Anderson Date: Thu Dec 17 11:14:40 2015 -0800 usb: dwc2: Avoid double-reset at boot time In (usb: dwc2: reset dwc2 core before dwc2_get_hwparams()) we added an extra reset to the probe path for the dwc2 USB controllers. This allowed proper detection of parameters even if the firmware had already used the USB part. Unfortunately, this extra reset is quite slow and is affecting boot speed. We can avoid the double-reset by skipping the extra reset that would happen just after the one we added. Logic that explains why this is safe: * As of the CL mentioned above, we now always call dwc2_core_reset() in dwc2_driver_probe() before dwc2_hcd_init(). * The only caller of dwc2_hcd_init() is dwc2_driver_probe(), so we're guaranteed that dwc2_core_reset() was called before dwc2_hdc_init(). * dwc2_hdc_init() is the only caller that passes an irq other than -1 to dwc2_core_init(). Thus if dwc2_core_init() is called with an irq other than -1 we're guaranteed that dwc2_core_reset was called before dwc2_core_init(). ...this allows us to remove the dwc2_core_reset() in dwc2_core_init() if irq is not < 0. Note that since "irq" wasn't used in the function dwc2_core_init() anyway and since select_phy was always set at exactly the same times we could avoid the reset, we remove "irq" and rename "select_phy" to "initial_setup" and adjust the callers accordingly. Signed-off-by: Douglas Anderson Signed-off-by: John Youn Signed-off-by: Felipe Balbi drivers/usb/dwc2/core.c | 29 ++++++++++++++++++----------- drivers/usb/dwc2/core.h | 2 +- drivers/usb/dwc2/hcd.c | 6 +++--- 3 files changed, 22 insertions(+), 15 deletions(-) commit cebfdbf329ae929ccb71632888a7c2100c3d1eeb Author: Yunzhi Li Date: Thu Dec 17 11:14:26 2015 -0800 usb: dwc2: reset dwc2 core before dwc2_get_hwparams() We initiate dwc2 usb controller in BIOS, dwc2_core_reset() should be called before dwc2_get_hwparams() to reset core registers to default value. Without this the FIFO setting might be incorrect because calculating FIFO size need power-on value of GRXFSIZ/GNPTXFSIZ/HPTXFSIZ registers. This patch could avoid warnning massage like in rk3288 platform: [ 2.074764] dwc2 ff580000.usb: 256 invalid for host_perio_tx_fifo_size. Check HW configuration. Signed-off-by: Yunzhi Li Signed-off-by: Douglas Anderson Signed-off-by: John Youn Signed-off-by: Felipe Balbi drivers/usb/dwc2/core.c | 2 +- drivers/usb/dwc2/core.h | 1 + drivers/usb/dwc2/platform.c | 6 ++++++ 3 files changed, 8 insertions(+), 1 deletion(-) commit 991824677fe0a555394d8093b64647dbd08b89b0 Author: Douglas Anderson Date: Thu Dec 17 11:14:12 2015 -0800 usb: dwc2: Restore GUSBCFG in dwc2_get_hwparams() Previously dwc2_get_hwparams() was changing GUSBCFG and not putting it back the way it was (specifically it set and cleared FORCEHOSTMODE). Since we want to move dwc2_core_reset() _before_ dwc2_get_hwparams() we should make sure dwc2_get_hwparams() isn't messing with things in a permanent way. Since we're now looking at GUSBCFG, it's obvious that we shouldn't need all the extra delays if FORCEHOSTMODE was already set. This will avoid some delays for any ports that have forced host mode. Signed-off-by: Douglas Anderson Signed-off-by: John Youn Signed-off-by: Felipe Balbi drivers/usb/dwc2/core.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit 3be99cd0e882dd2127b8cfe3942f5e464915aeba Author: Gregory Herrero Date: Mon Dec 7 12:07:31 2015 +0100 usb: dwc2: gadget: don't overwrite DCTL register on NAKEFF interrupts When receiving GINTSTS_GINNAKEFF or GINTSTS_GOUTNAKEFF interrupt, DCTL will be overwritten with DCTL_CGOUTNAK or DCTL_CGNPINNAK values. Instead of overwriting it, write only needed bits. It could cause an issue if GINTSTS_GINNAKEFF or GINTSTS_GOUTNAKEFF interrupt is received after dwc2 disabled pullup by writing DCTL_SFTDISCON bit. Pullup will then be re-enabled whereas it should not. Acked-by: John Youn Signed-off-by: Gregory Herrero Signed-off-by: Felipe Balbi drivers/usb/dwc2/gadget.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0676c7e734e3807f4e91f5d0edcaeed1f5ff412a Author: Du, Changbin Date: Fri Dec 4 15:38:23 2015 +0800 usb: dwc2: fix transfer stop programming for out endpoint To stop an out endpoint, software should set sets the Global OUT NAK, but not the Global Non-periodic IN NAK. This driver bug leads the out-ep failed be in disabled state with below error. dwc2_hsotg_ep_stop_xfr: timeout DOEPCTL.EPDisable Acked-by: John Youn Signed-off-by: Du, Changbin Signed-off-by: Felipe Balbi drivers/usb/dwc2/gadget.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit a5beaaf39455e4388251e95ef2ce6849cabf3393 Author: Baolin Wang Date: Sat Nov 21 15:44:53 2015 +0800 usb: gadget: Add the console support for usb-to-serial port It dose not work when we want to use the usb-to-serial port based on one usb gadget as a console. Thus this patch adds the console initialization to support this request. To avoid the re-entrance when transferring data with usb endpoint, it introduces a kthread to do the IO transmission. Signed-off-by: Baolin Wang Signed-off-by: Felipe Balbi drivers/usb/gadget/Kconfig | 6 + drivers/usb/gadget/function/u_serial.c | 258 +++++++++++++++++++++++++++++++++ 2 files changed, 264 insertions(+) commit 8182503df1baa077d1504cd192753b23530eb03c Author: Shraddha Barke Date: Tue Dec 22 14:02:19 2015 +0530 block: sx8.c: Replace timeval with ktime_t 32-bit systems using 'struct timeval' will break in the year 2038, in order to avoid that replace the code with more appropriate types. This patch replaces timeval with 64 bit ktime_t which is y2038 safe. Since st->timestamp is only interested in seconds, directly using time64_t here. Function ktime_get_seconds is used since it uses monotonic instead of real time and thus will not cause overflow. Signed-off-by: Shraddha Barke Signed-off-by: Jens Axboe drivers/block/sx8.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 2b9b6e86bca7209de02754fc84acf7ab3e78734e Author: Keith Busch Date: Tue Dec 22 10:10:45 2015 -0700 NVMe: Export namespace attributes to sysfs Exposes the NGUID, EUI-64, and NSID to sysfs entries under the disk's kobject. Signed-off-by: Keith Busch Reviewed-by: Sagi Grimberg Signed-off-by: Jens Axboe drivers/nvme/host/core.c | 69 ++++++++++++++++++++++++++++++++++++++++++++++-- drivers/nvme/host/nvme.h | 3 +++ 2 files changed, 70 insertions(+), 2 deletions(-) commit a0a3408ee614848c27b0d36c2fe490da3b387b8d Author: Keith Busch Date: Mon Dec 7 15:30:31 2015 -0700 NVMe: Add pci error handlers Requests enabling pcie aer support. Shuts down the controller on error detected with io frozen state prior to requesting slot reset; resumes controller after reset completes. Signed-off-by: Keith Busch Reviewed-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 54 ++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 44 insertions(+), 10 deletions(-) commit 7d2c2acac577959dbbddefefa91d1ba1b80460b3 Author: Andrew F. Davis Date: Mon Dec 14 16:35:57 2015 -0600 iio: Make IIO value formating function globally available. Make IIO value formating function globally available to allow IIO drivers to output values as the core does. Signed-off-by: Andrew F. Davis Signed-off-by: Jonathan Cameron drivers/iio/industrialio-core.c | 1 + include/linux/iio/iio.h | 2 ++ 2 files changed, 3 insertions(+) commit bbc758ec04c2f30805ce0fcdfbaa4c3445fafbae Author: Christoph Hellwig Date: Sat Nov 7 09:39:28 2015 +0100 block: remove REQ_NO_TIMEOUT flag This was added for the 'magic' AEN requests in the NVMe driver that never return. We now handle them purely inside the driver and don't need this core hack any more. Signed-off-by: Christoph Hellwig Acked-by: Keith Busch Signed-off-by: Jens Axboe block/blk-mq.c | 2 -- block/blk-timeout.c | 3 --- include/linux/blk_types.h | 2 -- 3 files changed, 7 deletions(-) commit f4800d6d1548e0d5ab94f2216d41d94282e2588c Author: Christoph Hellwig Date: Sat Nov 28 15:43:10 2015 +0100 nvme: merge iod and cmd_info Merge the two per-request structures in the nvme driver into a single one. Signed-off-by: Christoph Hellwig Acked-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 184 +++++++++++++++++++----------------------------- 1 file changed, 73 insertions(+), 111 deletions(-) commit bf68405705bd35c09ec1f7528718dce5af88daff Author: Christoph Hellwig Date: Mon Oct 26 17:12:51 2015 +0900 nvme: meta_sg doesn't have to be an array Signed-off-by: Christoph Hellwig Acked-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit eee417b0697827a6e120199b126b447af3c81b47 Author: Christoph Hellwig Date: Thu Nov 26 13:03:13 2015 +0100 nvme: properly free resources for cancelled command We need to move freeing of resources to the ->complete handler to ensure they are also freed when we cancel the command. Signed-off-by: Christoph Hellwig Acked-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 79 +++++++++++++++++++++++++------------------------ 1 file changed, 40 insertions(+), 39 deletions(-) commit aae239e1910ebc27ec9f7e8b25904a69626cf28c Author: Christoph Hellwig Date: Thu Nov 26 12:59:50 2015 +0100 nvme: simplify completion handling Now that all commands are executed as block layer requests we can remove the internal completion in the NVMe driver. Note that we can simply call blk_mq_complete_request to abort commands as the block layer will protect against double copletions internally. Signed-off-by: Christoph Hellwig Acked-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 141 +++++++++--------------------------------------- 1 file changed, 26 insertions(+), 115 deletions(-) commit adf68f21c15572c68d9fadae618a09cf324b9814 Author: Christoph Hellwig Date: Sat Nov 28 15:42:28 2015 +0100 nvme: special case AEN requests AEN requests are different from other requests in that they don't time out or can easily be cancelled. Because of that we should not use the blk-mq infrastructure but just special case them in the completion path. Signed-off-by: Christoph Hellwig Acked-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 75 ++++++++++++++++++++++++++----------------------- 1 file changed, 40 insertions(+), 35 deletions(-) commit e7a2a87d5938bbebe1637c82fbde94ea6be3ef78 Author: Christoph Hellwig Date: Mon Nov 16 10:39:48 2015 +0100 nvme: switch abort to blk_execute_rq_nowait And remove the now unused nvme_submit_cmd helper. Signed-off-by: Christoph Hellwig Acked-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 61 +++++++++++++++++++++---------------------------- 1 file changed, 26 insertions(+), 35 deletions(-) commit d8f32166a9c587e87a3a86f654c73d40b6b5df00 Author: Christoph Hellwig Date: Mon Nov 16 10:28:47 2015 +0100 nvme: switch delete SQ/CQ to blk_execute_rq_nowait Signed-off-by: Christoph Hellwig Acked-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 49 +++++++++++++++---------------------------------- 1 file changed, 15 insertions(+), 34 deletions(-) commit 7688faa6dd2c99ce5d66571d9ad65535ec39e8cb Author: Christoph Hellwig Date: Sat Nov 28 15:41:58 2015 +0100 nvme: factor out a few helpers from req_completion We'll need them in other places later. Signed-off-by: Christoph Hellwig Acked-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/core.c | 11 +++++++++++ drivers/nvme/host/nvme.h | 7 +++++++ drivers/nvme/host/pci.c | 12 ++---------- 3 files changed, 20 insertions(+), 10 deletions(-) commit 4680072003df14230e9eeeeefb617401012234a5 Author: Christoph Hellwig Date: Mon Nov 16 12:40:02 2015 +0100 nvme: fix admin queue depth The number in tag_set->queue depth includes the reserved tags. Signed-off-by: Christoph Hellwig Acked-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4b9d5b151046ff717819864f93cb8e012b347bce Author: Keith Busch Date: Fri Nov 20 09:13:30 2015 +0100 NVMe: Simplify metadata setup We no longer require the two-pass setup for block integrity. Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/core.c | 28 +++------------------------- 1 file changed, 3 insertions(+), 25 deletions(-) commit 53029b0441bbd263dbb2ee6429572b1732dad4de Author: Keith Busch Date: Sat Nov 28 15:41:02 2015 +0100 NVMe: Remove device management handles on remove We don't want to allow new references to open on a device that is removed. This ties the lifetime of these handles to the physical device's presence rather than to the open reference count. Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/core.c | 13 +++++++++---- drivers/nvme/host/nvme.h | 1 + drivers/nvme/host/pci.c | 1 + 3 files changed, 11 insertions(+), 4 deletions(-) commit 92f7a1624bbc2361b96db81de89aee1baae40da9 Author: Keith Busch Date: Fri Oct 23 11:42:02 2015 -0600 NVMe: Use unbounded work queue for all work Removes all usage of the global work queue so work can't be scheduled on two different work queues, and removes nvme's work queue singlethreadedness so controllers can be driven in parallel. Signed-off-by: Keith Busch [hch: keep the dead controller removal on the system workqueue to avoid deadlocks] Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 540c801c65eb58e05e0ca38b6fd644a83d7e2b33 Author: Keith Busch Date: Thu Oct 22 15:45:06 2015 -0600 NVMe: Implement namespace list scanning The NVMe 1.1 specification provides an identify mode to return a list of active namespaces. This is more efficient to discover which namespace identifiers are active on a controller, providing potentially significant improvement in scan time for controllers with sparesly populated namespaces. Signed-off-by: Keith Busch [hch: add quirk for the broken Qemu Identify implementation. To be relaxed later] Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/nvme/host/core.c | 80 ++++++++++++++++++++++++++++++++++++++++++------ drivers/nvme/host/nvme.h | 6 ++++ drivers/nvme/host/pci.c | 2 ++ 3 files changed, 79 insertions(+), 9 deletions(-) commit 6bf25d16410d8d95e3552f31c6a99e3fc3d31752 Author: Christoph Hellwig Date: Fri Nov 20 09:36:44 2015 +0100 nvme: switch abort_limit to an atomic_t There is no lock to sychronize access to the abort_limit field of struct nvme_ctrl, so switch it to an atomic_t. Signed-off-by: Christoph Hellwig Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/core.c | 2 +- drivers/nvme/host/nvme.h | 2 +- drivers/nvme/host/pci.c | 9 +++++---- 3 files changed, 7 insertions(+), 6 deletions(-) commit 5c8809e650772be87ba04595a8ccf278bab7b543 Author: Christoph Hellwig Date: Thu Nov 26 12:35:49 2015 +0100 nvme: remove dead controllers from a work item Compared to the kthread this gives us multiple call prevention for free. Signed-off-by: Christoph Hellwig Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) commit fd634f4142861e533ac57e88ece8e98ab5851edb Author: Christoph Hellwig Date: Thu Nov 26 12:42:26 2015 +0100 nvme: merge probe_work and reset_work If we're using two work queues we're always going to run into races where one item is tearing down what the other one is initializing. So insted merge the two work queues, and let the old probe_work also tear the controller down first if it was alive. Together with the better detection of the probe path using a flag this gives us a properly serialized reset/probe path that also doesn't accidentally trigger when two commands time out and the second one tries to reset the controller while the first reset is still in progress. Signed-off-by: Christoph Hellwig Acked-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 74 ++++++++++++++++++++++++++----------------------- 1 file changed, 39 insertions(+), 35 deletions(-) commit e1569a16180aef4311ff5fc54f54b23ae9e8a03e Author: Keith Busch Date: Thu Nov 26 12:11:07 2015 +0100 nvme: do not restart the request timeout if we're resetting the controller Otherwise we're never going to complete a command when it is restarted just after we completed all other outstanding commands in nvme_clear_queue. The controller must be disabled prior to completing a presumed lost command, do this by directly shutting down the controller before queueing the reset work, and return EH_HANDLED from the timeout handler after we shut the controller down. Signed-off-by: Keith Busch [hch: split and rebase] Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) commit 846cc05f95d599801f296d8599e82686ebd395f0 Author: Christoph Hellwig Date: Thu Nov 26 12:10:29 2015 +0100 nvme: simplify resets Don't delete the controller from dev_list before queuing a reset, instead just check for it being reset in the polling kthread. This allows to remove the dev_list_lock in various places, and in addition we can simply rely on checking the queue_work return value to see if we could reset a controller. Signed-off-by: Christoph Hellwig Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 39 +++++++++++++-------------------------- 1 file changed, 13 insertions(+), 26 deletions(-) commit 297465c873ae8c99180617ca904dc1a4a738f25d Author: Christoph Hellwig Date: Thu Nov 26 12:58:11 2015 +0100 nvme: add NVME_SC_CANCELLED To properly document how we are using a negative Linux error value to communicate request cancellations inside the driver. Signed-off-by: Christoph Hellwig Acked-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/nvme.h | 10 ++++++++++ drivers/nvme/host/pci.c | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) commit 31c7c7d2c9f17dc98a98c59c17e184bf164ee760 Author: Christoph Hellwig Date: Thu Oct 22 14:03:35 2015 +0200 nvme: merge nvme_abort_req and nvme_timeout We want to be able to return bettern error values frmo nvme_timeout, which is significantly easier if the two functions are merged. Also clean up and reduce the printk spew so that we only get one message per abort. Signed-off-by: Christoph Hellwig Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 47 ++++++++++++++++++----------------------------- 1 file changed, 18 insertions(+), 29 deletions(-) commit 4c9f748f0ee88447b28546991f60f43a7319aafd Author: Christoph Hellwig Date: Thu Oct 22 14:03:34 2015 +0200 nvme: don't take the I/O queue q_lock in nvme_timeout There is nothing it protects, but it makes lockdep unhappy in many different ways. Signed-off-by: Christoph Hellwig Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 77bf25ea70200cddf083f74b7f617e5f07fac8bd Author: Keith Busch Date: Thu Nov 26 12:21:29 2015 +0100 nvme: protect against simultaneous shutdown invocations Signed-off-by: Keith Busch [hch: split from a larger patch] Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 5 +++++ 1 file changed, 5 insertions(+) commit 7385014c073263b077442439299fad013edd4409 Author: Christoph Hellwig Date: Thu Oct 22 14:03:33 2015 +0200 nvme: only add a controller to dev_list after it's been fully initialized Without this we can easily get bad derferences on nvmeq->d_db when the nvme kthread tries to poll the CQs for controllers that are in half initialized state. Signed-off-by: Christoph Hellwig Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 51 +++++++++++++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 21 deletions(-) commit 749941f2365db8198b5d75c83a575ee6e55bf03b Author: Christoph Hellwig Date: Thu Nov 26 11:46:39 2015 +0100 nvme: only ignore hardware errors in nvme_create_io_queues Half initialized queues due to kernel error returns or timeout are still a good reason to give up on initializing a controller. Signed-off-by: Christoph Hellwig Acked-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) commit 287922eb0b186e2a5bf54fdd04b734c25c90035c Author: Christoph Hellwig Date: Fri Oct 30 20:57:30 2015 +0800 block: defer timeouts to a workqueue Timer context is not very useful for drivers to perform any meaningful abort action from. So instead of calling the driver from this useless context defer it to a workqueue as soon as possible. Note that while a delayed_work item would seem the right thing here I didn't dare to use it due to the magic in blk_add_timer that pokes deep into timer internals. But maybe this encourages Tejun to add a sensible API for that to the workqueue API and we'll all be fine in the end :) Contains a major update from Keith Bush: "This patch removes synchronizing the timeout work so that the timer can start a freeze on its own queue. The timer enters the queue, so timer context can only start a freeze, but not wait for frozen." Signed-off-by: Christoph Hellwig Acked-by: Keith Busch Signed-off-by: Jens Axboe block/blk-core.c | 8 ++++++++ block/blk-mq.c | 11 ++++++++--- block/blk-timeout.c | 8 ++++++-- block/blk.h | 2 +- include/linux/blkdev.h | 1 + 5 files changed, 24 insertions(+), 6 deletions(-) commit 6c741c74092c61465af206672ba567940a23d709 Author: Daniel Kurtz Date: Tue Dec 22 21:46:37 2015 +0800 pinctrl: mediatek: convert to arch_initcall Move pinctrl initialization earlier in boot so that real devices can find their pctldev without probe deferring. Note: We don't change mt6397 probe order in this patch, since MT6397 is mfd PMIC, which depends on pwrap on main AP to work. Since pmic-wrap itself is module_platform_driver, we keep it as module_init. A later patch will convert both pmic-wrap, and all functions of the MT6397 mfd to arch_initcall. Signed-off-by: Daniel Kurtz Signed-off-by: Linus Walleij drivers/pinctrl/mediatek/pinctrl-mt8127.c | 2 +- drivers/pinctrl/mediatek/pinctrl-mt8135.c | 2 +- drivers/pinctrl/mediatek/pinctrl-mt8173.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 5d7ee87708d4d86fcc32afc9552d05f7625d303d Author: Will Deacon Date: Tue Dec 22 14:45:35 2015 +0000 arm64: perf: add support for Cortex-A72 Cortex-A72 has a PMUv3 implementation that is compatible with the PMU implemented by Cortex-A57. This patch hooks up the new compatible string so that the Cortex-A57 event mappings are used. Signed-off-by: Will Deacon Documentation/devicetree/bindings/arm/pmu.txt | 1 + arch/arm64/kernel/perf_event.c | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) commit 57d74123954dfe70fad12724d19f743ed14cec90 Author: Will Deacon Date: Tue Dec 22 14:42:57 2015 +0000 arm64: perf: add format entry to describe event -> config mapping It's all very well providing an events directory to userspace that details our events in terms of "event=0xNN", but if we don't define how to encode the "event" field in the perf attr.config, then it's a waste of time. This patch adds a single format entry to describe that the event field occupies the bottom 10 bits of our config field on ARMv8 (PMUv3). Signed-off-by: Will Deacon arch/arm64/kernel/perf_event.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) commit abff083ce2046b4d55211c1db5992ec2dd391f3d Author: Will Deacon Date: Tue Dec 22 14:42:57 2015 +0000 ARM: perf: add format entry to describe event -> config mapping It's all very well providing an events directory to userspace that details our events in terms of "event=0xNN", but if we don't define how to encode the "event" field in the perf attr.config, then it's a waste of time. This patch adds a single format entry to describe that the event field occupies the bottom 8 bits of our config field on ARMv7. Signed-off-by: Will Deacon arch/arm/kernel/perf_event_v7.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) commit 7ddb69222d0fdc0bc83b60dbb21d9864ebf2907e Author: Syam Sidhardhan Date: Tue Dec 22 19:30:20 2015 +0530 Bluetooth: bfusb: Fix the return error code -ENOMEM is the appropriate error code instead of -EIO. Signed-off-by: Syam Sidhardhan Signed-off-by: Marcel Holtmann drivers/bluetooth/bfusb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f71e823b8776b3ce0073087d7b8ec8a7d31fe818 Author: Syam Sidhardhan Date: Tue Dec 22 19:30:19 2015 +0530 Bluetooth: bfusb: Remove redundant error message devm_kzalloc prints its own OOM message upon failure. Signed-off-by: Syam Sidhardhan Signed-off-by: Marcel Holtmann drivers/bluetooth/bfusb.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 17722e245b1eed116268338a0a05970bf797ce06 Author: Syam Sidhardhan Date: Tue Dec 22 19:30:18 2015 +0530 Bluetooth: bcm203x: Remove redundant error message devm_kzalloc prints its own OOM message upon failure. Signed-off-by: Syam Sidhardhan Signed-off-by: Marcel Holtmann drivers/bluetooth/bcm203x.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit a93a99838248bdab49db2eaac00236847670bc7f Author: Junxiao Bi Date: Tue Dec 22 08:06:08 2015 -0600 gfs2: fix flock panic issue Commit 4f6563677ae8 ("Move locks API users to locks_lock_inode_wait()") moved flock/posix lock identify code to locks_lock_inode_wait(), but missed to set fl_flags to FL_FLOCK which will cause kernel panic in locks_lock_inode_wait(). Fixes: 4f6563677ae8 ("Move locks API users to locks_lock_inode_wait()") Signed-off-by: Junxiao Bi Signed-off-by: Bob Peterson fs/gfs2/file.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 0d722ec8bf46cb6547d10e8c5d9b8b6498bc7f97 Author: Bruce Allan Date: Tue Dec 8 17:20:49 2015 -0800 fm10k: IS_ENABLED() is not appropriate for boolean kconfig option Tri-states need 'if IS_ENABLED()', booleans should use 'ifdef'. Signed-off-by: Bruce Allan Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_netdev.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit f632fed30f8e0c1b5c9de209f00145f516e7ad37 Author: Bruce Allan Date: Tue Dec 8 17:20:44 2015 -0800 fm10k: cleanup mailbox code comments etc Cleanup a number of issues with function header comments, lower-case acronyms (i.e. FIFO, TLV), duplicate comments and a stubbed-out header comment for fm10k_sm_mbx_init. Signed-off-by: Bruce Allan Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_mbx.c | 50 +++++++++++++++++----------- drivers/net/ethernet/intel/fm10k/fm10k_mbx.h | 4 +-- drivers/net/ethernet/intel/fm10k/fm10k_tlv.h | 4 +-- 3 files changed, 34 insertions(+), 24 deletions(-) commit f355bb51794af64ef583c259469a778e606d95bb Author: Bruce Allan Date: Tue Dec 8 15:51:11 2015 -0800 fm10k: use true/false for boolean get_host_state Signed-off-by: Bruce Allan Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_pci.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit e6f244d484793e0ce80101eb4a523ff08ad73172 Author: Bruce Allan Date: Tue Dec 8 15:51:04 2015 -0800 fm10k: remove unused struct element Signed-off-by: Bruce Allan Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_type.h | 1 - 1 file changed, 1 deletion(-) commit f329ad732b21dc86d477b47300805dd16178f9ca Author: Bruce Allan Date: Tue Dec 8 15:50:39 2015 -0800 fm10k: constify fm10k_mac_ops, fm10k_iov_ops and fm10k_info structures These structures never change so declare them as const. Signed-off-by: Bruce Allan Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_pf.c | 6 +++--- drivers/net/ethernet/intel/fm10k/fm10k_pf.h | 2 +- drivers/net/ethernet/intel/fm10k/fm10k_type.h | 8 ++++---- drivers/net/ethernet/intel/fm10k/fm10k_vf.c | 4 ++-- drivers/net/ethernet/intel/fm10k/fm10k_vf.h | 2 +- 5 files changed, 11 insertions(+), 11 deletions(-) commit 4e458cfb226bf9a0e211895370f06838495b2e97 Author: Bruce Allan Date: Tue Dec 8 15:50:34 2015 -0800 fm10k: address operator not needed when declaring function pointers Signed-off-by: Bruce Allan Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_pf.c | 58 ++++++++++++++--------------- drivers/net/ethernet/intel/fm10k/fm10k_vf.c | 38 +++++++++---------- 2 files changed, 48 insertions(+), 48 deletions(-) commit 6186ddf06dd270a09ca08cc3c182d4cd58cf0218 Author: Jacob Keller Date: Mon Nov 16 15:33:34 2015 -0800 fm10k: use ether_addr_equal instead of memcmp When comparing MAC addresses, use ether_addr_equal instead of memcmp to ETH_ALEN length. Found and replaced using the following sed: sed -e 's/memcmp\x28\(.*\), ETH_ALEN\x29/!ether_addr_equal\x28\1\x29/' Reported-by: Bruce Allan Signed-off-by: Jacob Keller Reviewed-by: Bruce Allan Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_pci.c | 2 +- drivers/net/ethernet/intel/fm10k/fm10k_pf.c | 2 +- drivers/net/ethernet/intel/fm10k/fm10k_tlv.c | 2 +- drivers/net/ethernet/intel/fm10k/fm10k_vf.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) commit 53653c6b91750debba6dc4503003c851257fd340 Author: Stefan Wahren Date: Mon Dec 21 00:44:04 2015 +0000 pinctrl: bcm2835: Fix memory leak in error path In case of an invalid pin value bcm2835_pctl_dt_node_to_map() would leak the pull configs of already assigned pins. So avoid this by calling the free map function in error case. Signed-off-by: Stefan Wahren Fixes: e1b2dc70cd5b ("pinctrl: add bcm2835 driver") Reviewed-by: Eric Anholt Signed-off-by: Linus Walleij drivers/pinctrl/bcm/pinctrl-bcm2835.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 09f8a82b6abbff279f41ac2892707d3f0f32d00c Author: Alexander Duyck Date: Tue Nov 10 09:40:30 2015 -0800 fm10k: Cleanup exception handling for changing queues This patch is meant to cleanup the exception handling for the paths where we reset the interrupts and then reconfigure them. In all of these paths we had very different levels of exception handling. I have updated the driver so that all of the paths should result in a similar state if we fail. Specifically the driver will now unload the mailbox interrupt, free the queue vectors and MSI-X, and then detach the interface. In addition for any of the PCIe related resets I have added a check with the hw_ready function to just make sure the registers are in a readable state prior to reopening the interface. Signed-off-by: Alexander Duyck Reviewed-by: Bruce Allan Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_netdev.c | 22 ++++++++-- drivers/net/ethernet/intel/fm10k/fm10k_pci.c | 53 +++++++++++++++++++------ 2 files changed, 59 insertions(+), 16 deletions(-) commit 4fc8a4b2a4dd7704d950a01b1afec5e86af60565 Author: Julia Lawall Date: Mon Dec 21 17:39:48 2015 +0100 pinctrl: mediatek: add missing of_node_put for_each_child_of_node performs an of_node_get on each iteration, so a return from the loop requires an of_node_put. A simplified version of the semantic patch that fixes this problem is as follows (http://coccinelle.lip6.fr): // @@ local idexpression n; expression e,e1; @@ for_each_child_of_node(e1,n) { ... ( of_node_put(n); | e = n | return n; | + of_node_put(n); ? return ...; ) ... } // Signed-off-by: Julia Lawall Signed-off-by: Linus Walleij drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 1 + 1 file changed, 1 insertion(+) commit f7a81b7f4e9830323a7bbee8c4c7ab4c7c7ff6f4 Author: Julia Lawall Date: Mon Dec 21 17:39:47 2015 +0100 pinctrl: rockchip: add missing of_node_put for_each_child_of_node performs an of_node_get on each iteration, so a return from the loop requires an of_node_put. A simplified version of the semantic patch that fixes this problem is as follows (http://coccinelle.lip6.fr): // @@ local idexpression n; expression e,e1; @@ for_each_child_of_node(e1,n) { ... ( of_node_put(n); | e = n | return n; | + of_node_put(n); ? return ...; ) ... } // Signed-off-by: Julia Lawall Reviewed-by: Heiko Stuebner Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-rockchip.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit d0b3ed4160201930b505ed9dedc4f80780ad4ff1 Author: Julia Lawall Date: Mon Dec 21 17:39:46 2015 +0100 pinctrl: sh-pfc: add missing of_node_put for_each_child_of_node performs an of_node_get on each iteration, so a goto out of the loop requires an of_node_put. A simplified version of the semantic patch that fixes this problem is as follows (http://coccinelle.lip6.fr): // @@ local idexpression n; expression e,e1; identifier l; @@ for_each_child_of_node(e1,n) { ... ( of_node_put(n); | e = n | return n; | + of_node_put(n); ? goto l; ) ... } l: ... when != n // Signed-off-by: Julia Lawall Reviewed-by: Laurent Pinchart Signed-off-by: Linus Walleij drivers/pinctrl/sh-pfc/pinctrl.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 2d98023c16048dc59aa54514b4b52da61aa66b13 Author: Julia Lawall Date: Mon Dec 21 17:39:45 2015 +0100 pinctrl: sirf: add missing of_node_put for_each_child_of_node performs an of_node_get on each iteration, so a return from the loop requires an of_node_put. A simplified version of the semantic patch that fixes this problem is as follows (http://coccinelle.lip6.fr): // @@ local idexpression n; expression e,e1; @@ for_each_child_of_node(e1,n) { ... ( of_node_put(n); | e = n | return n; | + of_node_put(n); ? return ...; ) ... } // Signed-off-by: Julia Lawall Signed-off-by: Linus Walleij drivers/pinctrl/sirf/pinctrl-sirf.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 21a8fe8863199fb7818521548e217646085fe3fd Author: Julia Lawall Date: Mon Dec 21 17:39:44 2015 +0100 pinctrl-tegra: add missing of_node_put for_each_child_of_node performs an of_node_get on each iteration, so a return from the loop requires an of_node_put. A simplified version of the semantic patch that fixes this problem is as follows (http://coccinelle.lip6.fr): // @@ local idexpression n; expression e,e1; @@ for_each_child_of_node(e1,n) { ... ( of_node_put(n); | e = n | return n; | + of_node_put(n); ? return ...; ) ... } // Signed-off-by: Julia Lawall Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-tegra-xusb.c | 4 +++- drivers/pinctrl/pinctrl-tegra.c | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) commit 67fea0f43d151a4688df1fa4c945f72a26dfb545 Author: Ilya Ledvich Date: Tue Dec 22 10:15:20 2015 +0200 ARM: dts: imx7d: sbc-imx7: add basic board support SBC-iMX7 is a single board computer designed for industrial and embedded applications. It is based on the Freescale i.MX7 system-on-chip. SBC-iMX7 is implemented with the CL-SOM-iMX7 System-on-Module providing most of the functions, and SB-SOM-iMX7 carrier board providing additional peripheral functions and connectors. http://www.compulab.co.il/products/sbcs/sbc-imx7-freescale-i-mx-7-single-board-computer/ http://www.compulab.co.il/products/computer-on-modules/cl-som-imx7-freescale-i-mx-7-system-on-module/ Add basic board support, including SD card as a secondary boot and storage device Signed-off-by: Ilya Ledvich Signed-off-by: Igor Grinberg arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/imx7d-sbc-imx7.dts | 42 ++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) commit 470f269ce3ff325d44bba94b3a746f87f56a387d Author: Ilya Ledvich Date: Tue Dec 22 10:15:19 2015 +0200 ARM: dts: imx7d: cl-som-imx7: add basic module support CL-SOM-iMX7 is a miniature System-on-Module (SoM) based on Freescale i.MX7 System-on-Chip family. http://www.compulab.co.il/products/computer-on-modules/cl-som-imx7-freescale-i-mx-7-system-on-module/ Add basic DT support for standalone module (without a carrier board): * Memory configuration * eMMC * 2x Gigabit Ethernet ports (FEC1 and FEC2) * I2C2 bus * EEPROM * PCA9555 GPIO extender * PMIC * UART1 * USB OTG port Signed-off-by: Ilya Ledvich Signed-off-by: Igor Grinberg arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/imx7d-cl-som-imx7.dts | 286 ++++++++++++++++++++++++++++++++ 2 files changed, 287 insertions(+) commit f736c596f439cc4e768579f61ba081192a38d4ac Author: Damien Riegel Date: Fri Dec 18 12:00:33 2015 -0500 ARM: dts: TS-4800: add touchscreen support This commit enables the touchscreen on TS-4800, using the ts4800-ts driver. Signed-off-by: Damien Riegel Signed-off-by: Shawn Guo arch/arm/boot/dts/imx51-ts4800.dts | 6 ++++++ 1 file changed, 6 insertions(+) commit 865fc4014d8745dedec81dc9a1ab9bcfaba1e792 Author: Damien Riegel Date: Fri Dec 18 12:00:32 2015 -0500 ARM: dts: ts-4800: Add LCD support This commit adds LCD support for the TS-4800. The panel is an Okaya RS800480T-7X0WQ and the timings have been extracted from Technologic Systems' tree. Signed-off-by: Damien Riegel Signed-off-by: Shawn Guo arch/arm/boot/dts/imx51-ts4800.dts | 102 +++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) commit 70a8c03bd9eea54fcd2616302403b80c20729db9 Author: Sean Cross Date: Fri Dec 18 06:29:50 2015 +0100 ARM: dts: imx6q: add Novena board Novena is an open-hardware laptop/desktop/bare board. See http://www.kosagi.com/w/index.php?title=Novena_Main_Page Signed-off-by: Sean Cross Signed-off-by: Marek Vasut Cc: Lucas Stach Reviewed-by: Fabio Estevam Signed-off-by: Shawn Guo arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/imx6q-novena.dts | 785 +++++++++++++++++++++++++++++++++++++ 2 files changed, 786 insertions(+) commit dc2c632272d5614b77359b24f77c0a80ddc3a962 Author: Geliang Tang Date: Sat Dec 19 16:22:51 2015 +0800 crypto: qat - use list_for_each_entry* Use list_for_each_entry*() instead of list_for_each*() to simplify the code. Signed-off-by: Geliang Tang Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/adf_ctl_drv.c | 13 ++++--------- drivers/crypto/qat/qat_common/qat_crypto.c | 28 ++++++++-------------------- 2 files changed, 12 insertions(+), 29 deletions(-) commit 577bc8fbdb3a8c93a6b45663299d08637bb7bfe7 Author: Sean Cross Date: Mon Dec 21 21:07:47 2015 +0800 devicetree: bindings: Add vendor prefix for Kosagi Add a vendor prefix for Sutajio Ko-Usagi PTE Ltd., which goes by the more common name of Kosagi. Signed-off-by: Sean Cross Signed-off-by: Marek Vasut Cc: Rob Herring Cc: Fabio Estevam Signed-off-by: Shawn Guo Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) commit ef41e4c56f6534cdba024769b3fd3421dd34070d Author: Damien Riegel Date: Thu Dec 17 16:16:53 2015 -0500 ARM: dts: TS-4800: use weim IP to map the FPGA Previously, the device tree mapped the FPGA like any other IPs inside the SoC, but it is actually mapped through the WEIM (Wireless External Interface Module). This patch updates the device tree to make use of it. About the timings: in the image provided by the manufacturer, only CS0GCR1 is changed. The other values are the default ones, but the WEIM bindings expect them to be all explicitly set in the device tree, so I just put the default values in the dt. Signed-off-by: Damien Riegel Signed-off-by: Shawn Guo arch/arm/boot/dts/imx51-ts4800.dts | 60 +++++++++++++++++++++++++------------- 1 file changed, 39 insertions(+), 21 deletions(-) commit 6989cc8fc7c161c661230a5dc80a690edbb28ab5 Author: Damien Riegel Date: Thu Dec 17 16:16:52 2015 -0500 ARM: dts: TS-4800: drop uart rts/cts pin reservations These pins are actually not routed for UARTs, they should not be reserved. Signed-off-by: Damien Riegel Signed-off-by: Shawn Guo arch/arm/boot/dts/imx51-ts4800.dts | 4 ---- 1 file changed, 4 deletions(-) commit 419e202b260ba5913affd7cb3c36f129c036e8f7 Author: Lucas Stach Date: Tue Dec 15 17:30:09 2015 +0100 ARM: dts: imx6: add Vivante GPU nodes This adds the device nodes for 2D, 3D and VG GPU cores. Signed-off-by: Russell King Signed-off-by: Lucas Stach Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6dl.dtsi | 5 +++++ arch/arm/boot/dts/imx6q.dtsi | 15 +++++++++++++++ arch/arm/boot/dts/imx6qdl.dtsi | 21 +++++++++++++++++++++ 3 files changed, 41 insertions(+) commit e4ae86e22edc1647f0ee0c2ab12ec05fce17d782 Author: LABBE Corentin Date: Thu Dec 17 13:45:42 2015 +0100 crypto: ux500 - Use precalculated hash from headers Precalculated hash for empty message are now present in hash headers. This patch just use them. Signed-off-by: LABBE Corentin Signed-off-by: Herbert Xu drivers/crypto/ux500/Kconfig | 2 ++ drivers/crypto/ux500/hash/hash_core.c | 20 ++------------------ 2 files changed, 4 insertions(+), 18 deletions(-) commit cfa1dd99d50198e40fae6a370508f75927a350f1 Author: Mans Rullgard Date: Fri Dec 11 13:36:26 2015 +0000 ARM: dts: imx28: add alternate auart4 pinmux Add auart4 2-pin configuration on auart0 rts/cts pads. Signed-off-by: Mans Rullgard Signed-off-by: Shawn Guo arch/arm/boot/dts/imx28.dtsi | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 318f05e5d7e508d95192ad840bb0c5b266d232ce Author: Tang Yuantian Date: Tue Dec 15 15:14:14 2015 +0800 ARM: dts: ls1021a: add sata node to dts Added sata node to ls1021aqds and ls1021atwr board to support sata function. Signed-off-by: Tang Yuantian Signed-off-by: Shawn Guo arch/arm/boot/dts/ls1021a-qds.dts | 4 ++++ arch/arm/boot/dts/ls1021a-twr.dts | 4 ++++ arch/arm/boot/dts/ls1021a.dtsi | 11 +++++++++++ 3 files changed, 19 insertions(+) commit b446ff229e1d760ef72ca20273d19dd786d0dacb Author: Damien Riegel Date: Fri Dec 11 12:08:14 2015 -0500 ARM: dts: TS-4800: add basic device tree This device tree adds support for TS-4800 by Technologic Systems. This board is based on MX51-babbage, but there are some subtle differences in the pins used, and there is an additional FPGA that is memory-mapped. More details here: http://wiki.embeddedarm.com/wiki/TS-4800 Signed-off-by: Damien Riegel Signed-off-by: Shawn Guo arch/arm/boot/dts/Makefile | 3 +- arch/arm/boot/dts/imx51-ts4800.dts | 180 +++++++++++++++++++++++++++++++++++++ 2 files changed, 182 insertions(+), 1 deletion(-) commit 7ee70f23e9f8f974914b0c6e16bf79882df560c8 Author: Damien Riegel Date: Fri Dec 11 12:08:13 2015 -0500 of: documentation: add bindings documentation for TS-4800 This adds the documentation for the TS-4800 by Technologic Systems. Signed-off-by: Damien Riegel Acked-by: Rob Herring Signed-off-by: Shawn Guo Documentation/devicetree/bindings/arm/technologic.txt | 6 ++++++ 1 file changed, 6 insertions(+) commit 328c9d7e532801dcaad5569364fe399b4eb52200 Author: Damien Riegel Date: Fri Dec 11 12:08:12 2015 -0500 of: add vendor prefix for Technologic Systems Signed-off-by: Damien Riegel Acked-by: Lee Jones Acked-by: Rob Herring Signed-off-by: Shawn Guo Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) commit 64b834324df7597cb9b44abe415d7b7dfd82ee0b Author: Haibo Chen Date: Tue Dec 8 18:26:23 2015 +0800 ARM: dts: imx7d-sdb: add ADC support Add ADC support for imx7d-sdb board. Signed-off-by: Haibo Chen Signed-off-by: Shawn Guo arch/arm/boot/dts/imx7d-sdb.dts | 10 ++++++++++ 1 file changed, 10 insertions(+) commit bdd75064d2b2068007f4fc5e26ac726e8617a090 Author: LABBE Corentin Date: Thu Dec 17 13:45:41 2015 +0100 crypto: ccp - Use precalculated hash from headers Precalculated hash for empty message are now present in hash headers. This patch just use them. Signed-off-by: LABBE Corentin Tested-by: Tom Lendacky Acked-by: Tom Lendacky Signed-off-by: Herbert Xu drivers/crypto/ccp/Kconfig | 2 ++ drivers/crypto/ccp/ccp-ops.c | 39 ++++++++------------------------------- 2 files changed, 10 insertions(+), 31 deletions(-) commit a3d19f2179e3e681341f03569d437bcc183129b2 Author: Haibo Chen Date: Tue Dec 8 18:26:22 2015 +0800 ARM: dts: imx7d.dtsi: add ADC support Add imx7d ADC support. Signed-off-by: Haibo Chen Signed-off-by: Shawn Guo arch/arm/boot/dts/imx7d.dtsi | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 2afa06cbf11ab6c2ca2d937ce712e4f40e58f7a3 Author: Stefan Agner Date: Wed Dec 2 14:11:47 2015 -0800 ARM: dts: vf-colibri: add CAN support Add Colibri standard pinmux for FlexCAN controller instances. CAN is not a standard Colibri feature, but the datasheet predefines pins which provide CAN (compatible across some modules). Hence, add the pinmux on module level. Signed-off-by: Stefan Agner Signed-off-by: Shawn Guo arch/arm/boot/dts/vf-colibri.dtsi | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit 234f82a70244f36f770b6f8567c51ba231b6bfcc Author: Alexandre Belloni Date: Wed Dec 2 22:35:22 2015 +0100 ARM: mxs: dt: cfa10057: fix backlight PWM The backlight PWM is actually pwm4. Signed-off-by: Alexandre Belloni Signed-off-by: Shawn Guo arch/arm/boot/dts/imx28-cfa10057.dts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8054b8005b9f5ae172dac79a49370bfcc027a0f5 Author: LABBE Corentin Date: Thu Dec 17 13:45:40 2015 +0100 crypto: n2 - Use precalculated hash from headers Precalculated hash for empty message are now present in hash headers. This patch just use them. Signed-off-by: LABBE Corentin Signed-off-by: Herbert Xu drivers/crypto/Kconfig | 3 +++ drivers/crypto/n2_core.c | 33 ++++++--------------------------- 2 files changed, 9 insertions(+), 27 deletions(-) commit 67157882a4eb9375a8fdf6948de2c61e0596a545 Author: Lucas Stach Date: Wed Dec 2 14:42:55 2015 +0100 ARM: dts: imx6qdl: move GIC to right location in DT No functional change, just moving the node to the place where it belongs according to its unit address. Signed-off-by: Lucas Stach Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6qdl.dtsi | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 41beef39cdc8f282844b001efb9e83363ccfdcc3 Author: Philipp Zabel Date: Wed Dec 2 14:42:22 2015 +0100 ARM: dts: imx6qdl: add IPU aliases This allows for consistent numbering of the IPU output and input ports. Signed-off-by: Philipp Zabel Signed-off-by: Lucas Stach Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6q.dtsi | 1 + arch/arm/boot/dts/imx6qdl.dtsi | 1 + 2 files changed, 2 insertions(+) commit d9cf0a125ed026a86f0eb256b60a17e682604522 Author: Lucas Stach Date: Mon Nov 30 18:00:10 2015 +0100 ARM: dts: imx6: remove config space from PCIe controller ranges property This has been moved to the reg property where it belongs for quite some time. The range has been unused by the kernel since then and with kernel 4.4 it's flagged as an unparsable range, as it does not comply to the PCI ranges DT binding. Fix this by removing the superfluous range. Signed-off-by: Lucas Stach Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6qdl.dtsi | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 09d3059adcaf29cd3c3810a083474e7c9d087905 Author: Shengjiu Wang Date: Thu Nov 26 10:39:30 2015 +0800 ARM: dts: imx6: Change the clock name for spba clock Audio IP need the spba clock, but original clock name "dma" is not accurate, so change it to name "spba". The audio driver has been using the new name "spba", the binding document has been updated. Signed-off-by: Shengjiu Wang Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6qdl.dtsi | 6 +++--- arch/arm/boot/dts/imx6sl.dtsi | 2 +- arch/arm/boot/dts/imx6sx.dtsi | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) commit edb3ed394bf4ac947d83397480b6262b9f2ff326 Author: Meng Yi Date: Wed Nov 25 14:46:07 2015 +0800 ARM: dts: ls1021a: Add a TFT LCD panel. Signed-off-by: Alison Wang Signed-off-by: Xiubo Li Signed-off-by: Jianwei Wang Signed-off-by: Meng Yi Signed-off-by: Shawn Guo arch/arm/boot/dts/ls1021a-twr.dts | 9 +++++++++ 1 file changed, 9 insertions(+) commit ab0087dfc29d5dad022c4f2831c63eb4b73e3210 Author: Meng Yi Date: Wed Nov 25 14:46:06 2015 +0800 ARM: dts: ls1021a: Add DCU dts node. Signed-off-by: Alison Wang Signed-off-by: Xiubo Li Signed-off-by: Jianwei Wang Signed-off-by: Meng Yi Signed-off-by: Shawn Guo arch/arm/boot/dts/ls1021a.dtsi | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 698e2ac5361f6fd7588afdd86becbfae0084e98a Author: Bai Ping Date: Tue Nov 24 18:25:15 2015 +0800 ARM: dts: imx: modify the clocks used by cpufreq driver As on i.MX7D, we using a virtual arm clk for CPU frequency scaling, so correct the clocks info used by the cpufreq driver. Signed-off-by: Bai Ping Acked-by: Lucas Stach Signed-off-by: Shawn Guo arch/arm/boot/dts/imx7d.dtsi | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 0c4c78de0417ced1da92351a3013e631860ea576 Author: LABBE Corentin Date: Thu Dec 17 13:45:39 2015 +0100 crypto: hash - add zero length message hash for shax and md5 Some crypto drivers cannot process empty data message and return a precalculated hash for md5/sha1/sha224/sha256. This patch add thoses precalculated hash in include/crypto. Signed-off-by: LABBE Corentin Signed-off-by: Herbert Xu crypto/md5.c | 6 ++++++ crypto/sha1_generic.c | 7 +++++++ crypto/sha256_generic.c | 16 ++++++++++++++++ include/crypto/md5.h | 2 ++ include/crypto/sha.h | 6 ++++++ 5 files changed, 37 insertions(+) commit 51d77dddfff4a554744bfa0e67cf571319635645 Author: Pingchao Yang Date: Wed Dec 16 14:09:50 2015 +0800 crypto: qat - fix some timeout tests Change the timeout condition since the times value would be -1 after running MAX_RETRY_TIMES. Reported-by: Dan Carpenter Signed-off-by: Yang Pingchao Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/qat_hal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 46621e6f84908bb9df494d5fc2bcd145041810d5 Author: Pingchao Yang Date: Wed Dec 16 10:39:40 2015 +0800 crypto: qat - fix CTX_ENABLES bits shift direction issue AE CTX bits should be 8-15 in CTX_ENABLES, so the mask value 0xff should be left shifted 0x8. Reported-by: Dan Carpenter Signed-off-by: Yang Pingchao Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/qat_hal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5319216dcfee14886abb2b7090e8fcf2e2d8a611 Author: Andrzej Zaborowski Date: Sat Dec 12 00:03:51 2015 -0500 crypto: rsa-pkcs1pad - don't allocate buffer on stack Avoid the s390 compile "warning: 'pkcs1pad_encrypt_sign_complete' uses dynamic stack allocation" reported by kbuild test robot. Don't use a flat zero-filled buffer, instead zero the contents of the SGL. Signed-off-by: Andrew Zaborowski Signed-off-by: Herbert Xu crypto/rsa-pkcs1pad.c | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) commit 3edf253c5de97861493325d1b1c2db04e39cfa77 Author: Tim Harvey Date: Thu Nov 19 12:02:24 2015 -0800 ARM: dts: imx: ventana: Add SPI support for GW52xx This addes support for SPI available on an off-board connector available on some models of the GW52xx. Signed-off-by: Tim Harvey Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6qdl-gw52xx.dtsi | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit aa2b21783b1321e9d7f3ee92eb8e034f41447569 Author: Tim Harvey Date: Thu Nov 19 12:02:03 2015 -0800 ARM: dts: imx: ventana: add PWM nodes for Ventana boards Ventana boards have an off-board connector with signals that can be pinmuxed as either GPIO or PWM. This patch adds pwm device-tree nodes in the disabled state which the bootloader can decide to enable based on bootloader config. Signed-off-by: Tim Harvey Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6qdl-gw51xx.dtsi | 36 +++++++++++++++++++++++++++++++++++ arch/arm/boot/dts/imx6qdl-gw52xx.dtsi | 24 +++++++++++++++++++++++ arch/arm/boot/dts/imx6qdl-gw53xx.dtsi | 24 +++++++++++++++++++++++ arch/arm/boot/dts/imx6qdl-gw54xx.dtsi | 36 +++++++++++++++++++++++++++++++++++ arch/arm/boot/dts/imx6qdl-gw551x.dtsi | 24 +++++++++++++++++++++++ arch/arm/boot/dts/imx6qdl-gw552x.dtsi | 24 +++++++++++++++++++++++ 6 files changed, 168 insertions(+) commit 058c0c1a441e9518ae4de207997a9b43380528ce Author: Afzal Mohammed Date: Sun Oct 25 23:20:56 2015 +0530 ARM: dts: vf6xx: Cosmic+: M4(nommu) initial support Minimal Cortex-M4 device tree to boot Linux to shell. M4 is booted via Cortex-A5 running Linux using Stefan Agner's "m4boot" utility. Signed-off-by: Afzal Mohammed Acked-by: Stefan Agner Signed-off-by: Shawn Guo arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/vf610m4-cosmic.dts | 90 ++++++++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+) commit 5f060c71aa204c49efc8c3b93819a39c40e883c6 Author: Cory Tusar Date: Wed Nov 18 22:54:40 2015 -0500 ARM: dts: vfxxx: Include support for dspi[23] functionality. Extend the existing Vybrid DSPI devicetree implementation to also describe the dspi2 and dspi3 functional blocks. Signed-off-by: Cory Tusar Acked-by: Stefan Agner Signed-off-by: Shawn Guo arch/arm/boot/dts/vfxxx.dtsi | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit 70f97128a158a596aeb82140ffacc8c18657baee Author: Marc Kleine-Budde Date: Wed Nov 11 14:32:44 2015 +0100 ARM: dts: imx25: add alias for pwm nodes This, together with the corresponding patch to pwm-imx.c, allows to order the pwm devices correctly. Signed-off-by: Marc Kleine-Budde Signed-off-by: Shawn Guo arch/arm/boot/dts/imx25.dtsi | 4 ++++ 1 file changed, 4 insertions(+) commit c1b99dedfd5edd242c79b2ad6050bade11ae333f Author: Markus Pargmann Date: Wed Nov 11 07:46:05 2015 +0100 ARM: dts: imx6dl: Fix gpt compatibles, remove imx6q-gpt imx6qdl.dtsi uses compatibles "fsl,imx6q-gpt", "fsl,imx31-gpt". imx6dl.dtsi uses compatibles "fsl,imx6dl-gpt", "fsl,imx6q-gpt" since commit 4e415ed8143f (ARM: dts: imx6dl: add imx6dl gpt specific compatible string) If imx6dl would be compatible with imx6q-gpt it would also have to be compatible with imx31-gpt which is currently missing. Based on the above mentioned patch I assume imx6q-gpt and imx6dl-gpt are not compatible. So imx6q-gpt should be removed as compatible. Signed-off-by: Markus Pargmann Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6dl.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e726a9fdde2863697f885a8bef8af38c3c759eb3 Author: Tim Harvey Date: Fri Nov 6 14:40:32 2015 -0800 ARM: dts: imx: ventana: Allow HDMI and LVDS to work simultaneously Currently it is not possible to have HDMI and LVDS working simultaneously, because both ports try to use PLL5. Move the LVDS clock parent to PLL3_USB_OTG, so that HDMI and LVDS can be driven from independent sources. With this change the LDB pixel clock goes to 68.57 MHz, which is still within the valid range for the displays supported by the Ventana boards. Signed-off-by: Tim Harvey Cc: Philipp Zabel Reviewed-by: Fabio Estevam Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6qdl-gw52xx.dtsi | 7 +++++++ arch/arm/boot/dts/imx6qdl-gw53xx.dtsi | 7 +++++++ arch/arm/boot/dts/imx6qdl-gw54xx.dtsi | 7 +++++++ 3 files changed, 21 insertions(+) commit a7668fda6b9987039e0dc0ea4e7262b019cce770 Author: Tim Harvey Date: Fri Nov 6 14:40:31 2015 -0800 ARM: dts: imx: ventana: fix GW53xx/GW54xx lvds channel Signed-off-by: Tim Harvey Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6qdl-gw53xx.dtsi | 2 +- arch/arm/boot/dts/imx6qdl-gw54xx.dtsi | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 70b6b438cc365d8d269339986e63ceb943e8d423 Author: Tim Harvey Date: Fri Nov 6 14:40:30 2015 -0800 ARM: dts: imx: ventana: GW54xx PMIC swbst reg always-on The GW54xx PMIC swbst regulator is used for LVDS power, CANbus xceiver and HDMI DDC and is enabled by the bootloader. Set the regulator to always-on so that Linux doesn't turn it off thinking its not needed. Signed-off-by: Tim Harvey Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6qdl-gw54xx.dtsi | 2 ++ 1 file changed, 2 insertions(+) commit b312e3600d8f02d9452fb9baa7b275d2d2587a8c Author: Uwe Kleine-König Date: Fri Nov 6 11:44:29 2015 +0100 ARM: dts: imx25-pinfunc: add some more pin configurations This patch adds some values that are needed for an out-of-tree device tree I'm currently working with. Signed-off-by: Uwe Kleine-König Signed-off-by: Shawn Guo arch/arm/boot/dts/imx25-pinfunc.h | 3 +++ 1 file changed, 3 insertions(+) commit aab8ec0c73cc0195a0b205003f2b9ed24177a6ac Author: Fabio Estevam Date: Wed Nov 4 10:54:50 2015 -0200 ARM: dts: imx6ul: Add ADC support Add support for ADC1. Signed-off-by: Fabio Estevam Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6ul.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit eb45ff74691bfec71af12b77215a9a33d521172a Author: Fabio Estevam Date: Tue Nov 3 14:25:36 2015 -0200 ARM: dts: imx6sx: Pass the 'adck-max-frequency' property Specify the 'adck-max-frequency' property in the adc nodes. According to Documentation/devicetree/bindings/iio/adc/vf610-adc.txt this is a recommended property. Signed-off-by: Fabio Estevam Acked-by: Fugang Duan Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6sx.dtsi | 4 ++++ 1 file changed, 4 insertions(+) commit 2b1a40e8d182a9f7779ba4fe54c5b73980c215b0 Author: Peter Chen Date: Wed Sep 30 10:17:17 2015 +0800 ARM: dts: imx6: change default burst size for USB It can improve the USB performance when choosing larger burst size at some systems (bus size is larger), there is no side effect if this burst size is larger than bus size. Signed-off-by: Peter Chen Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6qdl.dtsi | 8 ++++++++ arch/arm/boot/dts/imx6sl.dtsi | 6 ++++++ arch/arm/boot/dts/imx6sx.dtsi | 6 ++++++ arch/arm/boot/dts/imx6ul.dtsi | 4 ++++ 4 files changed, 24 insertions(+) commit 9493bf5458e936b88e5d3a33f9ed09bc5c1263b0 Author: Peter Chen Date: Wed Sep 30 10:17:16 2015 +0800 ARM: dts: imx6: set ahb-burst-config as 0 for USB After setting ahb burst configuration as 0, we can increase tx/rx burst size, it will improve the USB performance Signed-off-by: Peter Chen Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6qdl.dtsi | 4 ++++ arch/arm/boot/dts/imx6sl.dtsi | 3 +++ arch/arm/boot/dts/imx6sx.dtsi | 3 +++ arch/arm/boot/dts/imx6ul.dtsi | 2 ++ 4 files changed, 12 insertions(+) commit c89dcce4e11c1653ca7954a9dc2839b4d8cd6b4b Merge: 3a35e47 c20737a Author: Shawn Guo Date: Tue Dec 22 20:40:27 2015 +0800 Merge branch 'imx/clk' into imx/dt commit 8c2a029c7eff14510fed04cef2848c6d21ed92dd Author: Jacob Keller Date: Mon Nov 9 14:04:08 2015 -0800 fm10k: correctly pack TLV structures and explain reasoning The TLV format for little endian structures is actually 4 byte aligned copy. To this end, we need to add an additional __aligned(4) marker along with __packed to ensure that these structures are actually 4 byte aligned and packed correctly. Use of just __packed will not work as this will result in 1byte alignment which is incorrect. Add a comment explaining the reasoning behind why these structures need the special treatment. Signed-off-by: Jacob Keller Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_pf.h | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 07146e2ea8d878d3bfb8d7d3424350d447e0166f Author: Bruce Allan Date: Tue Nov 3 11:35:02 2015 -0800 fm10k: don't initialize fm10k_workqueue at global level Cleans up checkpatch GLOBAL_INITIALIZERS error Signed-off-by: Bruce Allan Signed-off-by: Jacob Keller Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_main.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 36f46d6d5cdef2308027261d633e96807d64d098 Author: Linus Walleij Date: Tue Dec 15 15:56:47 2015 +0100 ARM: 8482/1: l2x0: make it possible to disable outer sync from DT According to commit 2503a5ecd86c002506001eba432c524ea009fe7f "ARM: 6201/1: RealView: Do not use outer_sync() on ARM11MPCore boards with L220" Some PB11MPCore RealView core tiles have broken outer_sync. We got rid of the custom barriers from the machine by disabling outer sync, but that was just for the boardfile case. We have to be able to do the same in the device tree case. Since __l2c_init() is cloning and copying the L2C vtable, we pass an argument to this function to optionally numb the outer sync operation if desired, before initializing the cache. After this we can set up the cache correctly on the RealView PB11MPCore. This was tested on a PB11MPCore known to have the issue. Before this, spurious crashes would occur if we try to set up the cache properly, after this it boots rock solid. Cc: Arnd Bergmann Cc: devicetree@vger.kernel.org Acked-by: Rob Herring Signed-off-by: Linus Walleij Signed-off-by: Russell King Documentation/devicetree/bindings/arm/l2cc.txt | 3 +++ arch/arm/mm/cache-l2x0.c | 13 ++++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) commit e7273ff49acf58a5ca9c656f3f0a5dd713390853 Author: Marc Zyngier Date: Fri Dec 18 11:06:47 2015 +0100 ARM: 8488/1: Make IPI_CPU_BACKTRACE a "non-secure" SGI Having IPI_CPU_BACKTRACE as SGI15 may not work if the kernel is running in non-secure mode and that the secure firmware has decided to follow ARM's recommendations that SGI8-15 should be reserved for secure purpose. Now that we are "only" using SGI0-6, change IPI_CPU_BACKTRACE to use SGI7, which makes it more likely to work. Signed-off-by: Marc Zyngier Signed-off-by: Russell King arch/arm/kernel/smp.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 89d798b73dc64b3be2a653cabb4cb622675a9a36 Author: Marc Zyngier Date: Fri Dec 18 11:06:19 2015 +0100 ARM: 8487/1: Remove IPI_CALL_FUNC_SINGLE Since 9a46ad6d6df3 ("smp: make smp_call_function_many() use logic similar to smp_call_function_single()"), the core IPI handling has been simplified, and generic_smp_call_function_interrupt is now the same as generic_smp_call_function_single_interrupt. This means that one of IPI_CALL_FUNC and IPI_CALL_FUNC_SINGLE has become redundant. We can then safely drop IPI_CALL_FUNC_SINGLE, and use only IPI_CALL_FUNC. This has the advantage of reducing the number of SGI IDs we're using (a fairly scarse resource). Tested on a dual A7 board. Signed-off-by: Marc Zyngier Signed-off-by: Russell King arch/arm/include/asm/hardirq.h | 2 +- arch/arm/kernel/smp.c | 10 +--------- 2 files changed, 2 insertions(+), 10 deletions(-) commit f6419f240b15f967713c5cd6857dfba8fb390589 Author: Lorenzo Pieralisi Date: Thu Dec 17 11:22:45 2015 +0100 ARM: 8485/1: cpuidle: remove cpu parameter from the cpuidle_ops suspend hook The suspend() hook in the cpuidle_ops struct is always called on the cpu entering idle, which means that the cpu parameter passed to the suspend hook always corresponds to the local cpu, making it somewhat redundant. This patch removes the logical cpu parameter from the ARM cpuidle_ops.suspend hook and updates all the existing kernel implementations to reflect this change. Signed-off-by: Lorenzo Pieralisi Acked-by: Daniel Lezcano Reviewed-by: Lina Iyer Tested-by: Lina Iyer Tested-by: Jisheng Zhang [psci] Cc: Lina Iyer Cc: Daniel Lezcano Signed-off-by: Russell King arch/arm/include/asm/cpuidle.h | 2 +- arch/arm/kernel/cpuidle.c | 2 +- drivers/soc/qcom/spm.c | 10 +++++----- 3 files changed, 7 insertions(+), 7 deletions(-) commit d5f384de5bf16aa79095a1af5da65b9ffc3fe71d Author: Chris Wilson Date: Wed Nov 18 15:19:39 2015 +0000 drm/i915: Move Braswell stop_machine GGTT insertion workaround There was a silent conflict between commit 0a878716265e9af9f697264dc2e858fcc060d833 Author: Daniel Vetter Date: Thu Oct 15 14:23:01 2015 +0200 drm/i915: restore ggtt double-bind avoidance and commit 5bab6f60cb4d1417ad7c599166bcfec87529c1a2 Author: Chris Wilson Date: Fri Oct 23 18:43:32 2015 +0100 drm/i915: Serialise updates to GGTT with access through GGTT on Braswell thankfully caught by the extra WARN safegaurd in 0a878716. Since we now override the GGTT insert_pages callback when installing the aliasing ppgtt, we assert that the callback is the original ggtt routine. However, on Braswell we now use a different insertion routine to serialise access through the GGTT with updating the PTE and hence the conflict. To avoid the conflict, move the custom insertion routine for Braswell down a level. Reported-by: Ville Syrjälä Cc: Ville Syrjälä Cc: Michel Thierry Cc: Mika Kuoppala Link: http://patchwork.freedesktop.org/patch/msgid/1447859979-20107-1-git-send-email-chris@chris-wilson.co.uk Reviewed-by: Ville Syrjälä Tested-by: Ville Syrjälä Cc: drm-intel-fixes@lists.freedesktop.org Signed-off-by: Daniel Vetter (cherry picked from commit c140330b5e6b5bc2262ffb2f50bfeea06a482699) Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_gem_gtt.c | 50 +++++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 22 deletions(-) commit de5126cc3c0b0f291d08fa591dcdf237bc595a56 Author: Takashi Sakamoto Date: Tue Dec 22 09:15:46 2015 +0900 ALSA: oxfw: add stream format quirk for SCS.1 models As long as I investigate SCS.1m, this model reports to transfer/receive PCM data channels/MIDI conformant data channels in tx/rx AMDTP packet. There's a contradiction that this model actually has no analog/digital capture port for PCM frames and no physical MIDI ports. I guess that SCS.1d also has the contradiction. This model has no analog/digital ports for PCM frames and no physical MIDI ports, thus it requires no streaming functionality. This commit adds some modification codes to handle the contradiction, as much as possible. Unfortunately, this module adds one PCM playback substream for SCS.1d so as SCS.1m. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/oxfw/oxfw.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 9e2004f9cedf50469e62e3206bc3363913a972b4 Author: Takashi Sakamoto Date: Tue Dec 22 09:15:45 2015 +0900 ALSA: oxfw: obsolete scs1x module Now ALSA oxfw driver gains functionalities which scs1x module has. This commit obsoletes the scs1x module, and adds a line of MODULE_ALIAS to load oxfw module instead of scs1x module. In scs1x module, the name of 'shortname' field is fixed as 'SCS1x'. This field is used to name MIDI ports for both of SCS.1m and SCS.1d. This is not good because typically some SCS.1m and SCS.1d are used in the same system. It's better to distinguish them according to name of the ports. This commit applies model name in config ROM to the 'shortname'. For the name of 'driver' and 'longname', this commit uses the same way applied to the other models. This change may not bring disadvantages to users because userspace applications use ALSA rawmidi or seq interface and these interfaces are not influenced by them directly. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/Kconfig | 12 +- sound/firewire/Makefile | 2 - sound/firewire/oxfw/oxfw.c | 26 +++ sound/firewire/scs1x.c | 530 --------------------------------------------- 4 files changed, 27 insertions(+), 543 deletions(-) commit 6f5dcb28df50eafb2d554c84f14c33677a5b95bd Author: Takashi Sakamoto Date: Tue Dec 22 09:15:44 2015 +0900 ALSA: oxfw: add MIDI playback port for SCS.1 models This commit adds MIDI playback ports so that scs1x driver has. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/oxfw/oxfw-scs1x.c | 47 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) commit d7d20e77819f937a8e9bf0b12a21a12d33eb4b23 Author: Takashi Sakamoto Date: Tue Dec 22 09:15:43 2015 +0900 ALSA: oxfw: copy handlers of asynchronous transaction for MIDI playback This commit copies some functions of asynchronous transactions for MIDI playback, to merge scs1x module. The features of payload in asynchronous transaction are the same as captured MIDI messages. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/oxfw/oxfw-scs1x.c | 161 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 161 insertions(+) commit 8250427dc1a2f0a4f9de0ee5a3324fa6c75b44a1 Author: Takashi Sakamoto Date: Tue Dec 22 09:15:42 2015 +0900 ALSA: oxfw: add MIDI capture port for SCS.1 models This commit adds MIDI capture so that scs1x driver has. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/oxfw/oxfw-scs1x.c | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) commit 13b8b78c7fd65abf8b100cc05166cca1d10a1e80 Author: Takashi Sakamoto Date: Tue Dec 22 09:15:41 2015 +0900 ALSA: oxfw: copy handlers of asynchronous transaction for MIDI capture This commit copies some functions of asynchronous transactions for MIDI capture, to merge scs1x module. The features of payload in asynchronous transaction are: * System exclusive messages for SCS.1 are encoded without ID data. In this encoding scheme, 4 bits in LSB are available. The bits are squashed in payload byte. Thus, one payload byte transfers two MIDI messages. * The first byte of payload byte means: * 0x00: depending on second payload byte * 0xf9: including escaped system exclusive messages for SCS.1, up to 3 byte (= 6 MIDI messages) * the others: including MIDI 1.0 messages * the others: including escaped system exclusive messages for SCS.1, up to 64 bytes Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/oxfw/oxfw-scs1x.c | 83 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 82 insertions(+), 1 deletion(-) commit e3315b439c30c208582ac64e58f0c0d36b83181e Author: Takashi Sakamoto Date: Tue Dec 22 09:15:40 2015 +0900 ALSA: oxfw: allocate own address region for SCS.1 series When physical controls on SCS.1 models are operated, the models transfer MIDI messages in asynchronous transactions on IEEE 1394 bus. The models have a register to have an address for the transactions, and drivers can register own address for this purpose. This commit keeps a region of address, registers it and adds a handler for the transactions. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/oxfw/oxfw-scs1x.c | 65 +++++++++++++++++++++++++++++++++++++++- sound/firewire/oxfw/oxfw.h | 1 + 2 files changed, 65 insertions(+), 1 deletion(-) commit 3f47152a1c8f4d4c8ca18740bf3f1a7fff1b3fd9 Author: Takashi Sakamoto Date: Tue Dec 22 09:15:39 2015 +0900 ALSA: oxfw: add scs1x layer Stanton Controllers and Systems 1 (SCS.1) series is supported by ALSA scs1x driver. This driver just supports MIDI functionality. On the other hand, models in this series are based on OXFW971 and ALSA OXFW driver can support them. SCS.1 series has MIDI functionality to control its surface state such as LED lighting. When operating physical knobs and faders, the models generate MIDI messages. These MIDI messages are transferred by asynchronous transactions. These transactions are really model-specific and ALSA OXFW driver requires the functionality so as scs1x module implements. This commit adds scs1x layer as a preparation to merge scs1x driver to oxfw driver. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/oxfw/Makefile | 2 +- sound/firewire/oxfw/oxfw-scs1x.c | 26 ++++++++++++++++++++++++++ sound/firewire/oxfw/oxfw.c | 4 ++-- sound/firewire/oxfw/oxfw.h | 1 + 4 files changed, 30 insertions(+), 3 deletions(-) commit d6ce6bbd7d83453ce958cfc03b7250dbee3a431e Author: Takashi Sakamoto Date: Wed Dec 16 20:37:57 2015 +0900 ALSA: oxfw: rename a structure so that it means backward compatibility to old drivers In former commits, some model-specific members are split from the structure. The structure is just to keep names for compatibility to old drivers. This commit arranges name of the structure and localize it. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/oxfw/oxfw.c | 14 ++++++++++---- sound/firewire/oxfw/oxfw.h | 6 ------ 2 files changed, 10 insertions(+), 10 deletions(-) commit 3e2f45708eb59179444f992ba1dc60ccf2cbdacd Author: Takashi Sakamoto Date: Wed Dec 16 20:37:56 2015 +0900 ALSA: oxfw: move model-specific parameters from common structure In previous commit, some members are moved from 'struct snd_oxfw' because they're model-specific. There are also the other model-specific parameters in 'struct device_info'. This commit moves these members to model-specific structure. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/oxfw/oxfw-spkr.c | 60 +++++++++++++++++++++++------------------ sound/firewire/oxfw/oxfw.c | 16 +++-------- sound/firewire/oxfw/oxfw.h | 5 +--- 3 files changed, 39 insertions(+), 42 deletions(-) commit 40540de503929ebac3844c65fad2cd32ca15d3ce Author: Takashi Sakamoto Date: Wed Dec 16 20:37:55 2015 +0900 ALSA: oxfw: move model-specific members from common structure Currently, 'struct snd_oxfw' has some members for models supported by old firewire-speakers driver, while these members are useless to the other models. This commit allocates new memory block and moves these members to model-specific structure. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/oxfw/oxfw-spkr.c | 48 +++++++++++++++++++++++++++++------------ sound/firewire/oxfw/oxfw.h | 5 ----- 2 files changed, 34 insertions(+), 19 deletions(-) commit c582cc66b98af8130f4a26ccbd7e05d5aef2a96d Author: Takashi Sakamoto Date: Wed Dec 16 20:37:54 2015 +0900 ALSA: oxfw: enable to keep memory block for model-specific structure ALSA oxfw driver should have backward compatibility to old firewire-speakers driver. Additionally, in future commit, scs1x driver will be merged. It's nice to add a pointer to have a memory block for model-specific structures. This commit adds a member to 'struct snd_oxfw' for this aim. Deallocation is done at freeing ALSA card structure. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/oxfw/oxfw.c | 1 + sound/firewire/oxfw/oxfw.h | 1 + 2 files changed, 2 insertions(+) commit 260b31643691e8a58683a4ccc3bdf7abfd86f54a Author: Arnd Bergmann Date: Thu Nov 12 15:14:23 2015 +0100 mmc: dw_mmc: use resource_size_t to store physical address The dw_mmc driver stores the physical address of the MMIO registers in a pointer, which requires the use of type casts, and is actually broken if anyone ever has this device on a 32-bit SoC in registers above 4GB. Gcc warns about this possibility when the driver is built with ARM LPAE enabled: mmc/host/dw_mmc.c: In function 'dw_mci_edmac_start_dma': mmc/host/dw_mmc.c:702:17: warning: cast from pointer to integer of different size cfg.dst_addr = (dma_addr_t)(host->phy_regs + fifo_offset); ^ mmc/host/dw_mmc-pltfm.c: In function 'dw_mci_pltfm_register': mmc/host/dw_mmc-pltfm.c:63:19: warning: cast to pointer from integer of different size host->phy_regs = (void *)(regs->start); This changes the code to use resource_size_t, which gets rid of the warning, the bug and the useless casts. Signed-off-by: Arnd Bergmann Signed-off-by: Jaehoon Chung Signed-off-by: Ulf Hansson drivers/mmc/host/dw_mmc-pltfm.c | 2 +- drivers/mmc/host/dw_mmc.c | 2 +- include/linux/mmc/dw_mmc.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 3bbb0deea6d5c6d5ed38ae927a5bf9b0cd7c8639 Author: Chaotian Jing Date: Mon Nov 30 09:27:30 2015 +0800 mmc: core: fix __mmc_switch timeout caused by preempt there is a time window between __mmc_send_status() and time_afer(), on some eMMC chip, the timeout_ms is only 10ms, if this thread was scheduled out during this period, then, even card has already changes to transfer state by the result of CMD13, this part of code also treat it to timeout error. So, need calculate timeout first, then call __mmc_send_status(), if already timeout and card still in programing state, then treat it to the real timeout error. Signed-off-by: Chaotian Jing Signed-off-by: Ulf Hansson drivers/mmc/core/mmc_ops.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 05caee939f8d58d81e962071da85761e1e3a4c73 Author: Rabin Vincent Date: Fri Nov 27 12:59:11 2015 +0100 mmc: usdhi6rol0: handle NULL data in timeout Commit bb08a7d489bd ("mmc: usdhi6rol0: fix NULL pointer deref in debug print") fixed one NULL pointer dereference but unfortunately introduced another. "data" may be NULL if this is a command timeout for a command without any data, so we should only use it if we're actually waiting for data. Fixes: bb08a7d489bd ("mmc: usdhi6rol0: fix NULL pointer deref in debug print") Cc: stable@vger.kernel.org # v4.3 Signed-off-by: Rabin Vincent Signed-off-by: Ulf Hansson drivers/mmc/host/usdhi6rol0.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 60b71f607796f10ec8814312724759574398512b Author: saurabh Date: Wed Nov 25 23:56:24 2015 +0530 mmc: of_mmc_spi: Add IRQF_ONESHOT to interrupt flags If no primary handler is specified for threaded_irq then a default one is assigned which always returns IRQ_WAKE_THREAD. This handler requires the IRQF_ONESHOT, because the source of interrupt is not disabled Signed-off-by: Saurabh Sengar Signed-off-by: Ulf Hansson drivers/mmc/host/of_mmc_spi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2066fd285efdd201316e0236aec177354b39ee71 Author: Chaotian Jing Date: Tue Dec 1 20:12:34 2015 +0800 mmc: mediatek: change some dev_err to dev_dbg there are too many error logs shown when use CMD21/CMD19 to do tune, and it will appear at each resume time, print out so many logs to the uart console cost too mush time. so change it to dev_dbg. Signed-off-by: Chaotian Jing Signed-off-by: Ulf Hansson drivers/mmc/host/mtk-sd.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit ec076cd226c3d93565ede082a240e23b5090e36c Author: Fu, Zhonghui Date: Fri Dec 4 21:05:56 2015 +0800 mmc: enable MMC/SD/SDIO device to suspend/resume asynchronously Now, PM core supports asynchronous suspend/resume mode for devices during system suspend/resume, and the power state transition of one device may be completed in separate kernel thread. PM core ensures all power state transition dependency between devices. This patch enables MMC/SD/SDIO card and SDIO function devices to suspend/resume asynchronously. This will take advantage of multicore and improve system suspend/resume speed. After applying this patch and enabling all SDIO function's child devices to suspend/resume asynchronously on ASUS T100TA, the system suspend-to-idle time is reduced from 1645ms to 1108ms, and the system resume time is reduced from 940ms to 918ms. Signed-off-by: Zhonghui Fu Signed-off-by: Ulf Hansson drivers/mmc/core/bus.c | 2 ++ drivers/mmc/core/sdio_bus.c | 1 + 2 files changed, 3 insertions(+) commit 5c671c410c8704800f4f1673b6f572137e7e6ddd Author: Adrian Hunter Date: Thu Nov 26 14:00:50 2015 +0200 mmc: sdhci: Fix sdhci_runtime_pm_bus_on/off() sdhci has a legacy facility to prevent runtime suspend if the bus power is on. This is needed in cases where the power to the card is dependent on the bus power. It is controlled by a pair of functions: sdhci_runtime_pm_bus_on() and sdhci_runtime_pm_bus_off(). These functions use a boolean variable 'bus_on' to ensure changes are always paired. There is an additional check for 'runtime_suspended' which is the problem. In fact, its use is ill-conceived as the only requirement for the logic is that 'on' and 'off' are paired, which is actually broken by the check, for example if the bus power is turned on during runtime resume. So remove the check. Signed-off-by: Adrian Hunter Cc: stable@vger.kernel.org # v3.11+ Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 04a5ae6fdd018af29675eb8b6c2550c87f471570 Author: Adrian Hunter Date: Thu Nov 26 14:00:49 2015 +0200 mmc: sdhci: 64-bit DMA actually has 4-byte alignment The version 3.00 SDHCI spec. was a bit unclear about the required data alignment for 64-bit DMA, whereas the version 4.10 spec. uses different language and indicates that only 4-byte alignment is required rather than the 8-byte alignment currently implemented. That make no difference to SD and EMMC which invariably transfer data in sector-aligned blocks. However with SDIO, it results in using more DMA descriptors than necessary. Theoretically that slows DMA slightly although DMA is not the limiting factor for throughput, so there is no discernable impact on performance. Nevertheless, the driver should follw the spec unless there is good reason not to, so this patch corrects the alignment criterion. There is a more complicated criterion for the DMA descriptor table itself. However the table is allocated by dma_alloc_coherent() which allocates pages (i.e. aligned to a page boundary). For simplicity just check it is 8-byte aligned, but add a comment that some Intel controllers actually require 8-byte alignment even when using 32-bit DMA. Signed-off-by: Adrian Hunter Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci.c | 31 ++++++++++++------------------- drivers/mmc/host/sdhci.h | 21 ++++++++++++--------- 2 files changed, 24 insertions(+), 28 deletions(-) commit 347ea32dc118326c4f2636928239a29d192cc9b8 Author: Adrian Hunter Date: Thu Nov 26 14:00:48 2015 +0200 mmc: sdhci: Fix DMA descriptor with zero data length SDHCI has built-in DMA called ADMA2. ADMA2 uses a descriptor table to define DMA scatter-gather. Each desciptor can specify a data length up to 65536 bytes, however the length field is only 16-bits so zero means 65536. Consequently, putting zero when the size is zero must not be allowed. This patch fixes one case where zero data length could be set inadvertently. The problem happens because unaligned data gets split and the code did not consider that the remaining aligned portion might be zero length. That case really only happens for SDIO because SD and eMMC cards transfer blocks that are invariably sector- aligned. For SDIO, access to function registers is done by data transfer (CMD53) when the register is bigger than 1 byte. Generally registers are 4 bytes but 2-byte registers are possible. So DMA of 4 bytes or less can happen. When 32-bit DMA is used, the data alignment must be 4, so 4-byte transfers won't casue a problem, but a 2-byte transfer could. However with the introduction of 64-bit DMA, the data alignment for 64-bit DMA was made 8 bytes, so all 4-byte transfers not on 8-byte boundaries get "split" into a 4-byte chunk and a 0-byte chunk, thereby hitting the bug. In fact, a closer look at the SDHCI specs indicates that only the descriptor table requires 8-byte alignment for 64-bit DMA. That will be dealt with in a separate patch, but the potential for a 2-byte access remains, so this fix is needed anyway. Signed-off-by: Adrian Hunter Cc: stable@vger.kernel.org # v3.19+ Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit d9bfbb95ed598a09cf336adb0f190ee0ff802f0d Author: Adrian Hunter Date: Thu Nov 26 14:00:47 2015 +0200 mmc: sdio: Fix invalid vdd in voltage switch power cycle The 'ocr' parameter passed to mmc_set_signal_voltage() defines the power-on voltage used when power cycling after a failure to set the voltage. However, in the case of mmc_sdio_init_card(), the value passed has the R4_18V_PRESENT flag set which is not valid for power-on and results in an invalid vdd. Fix by passing the card's ocr value which does not have the flag. Signed-off-by: Adrian Hunter Cc: stable@vger.kernel.org # v3.13+ Signed-off-by: Ulf Hansson drivers/mmc/core/sdio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9d5de93f6d543b356e39e225988ef443a7bce34c Author: Adrian Hunter Date: Thu Nov 26 14:00:46 2015 +0200 mmc: sdhci: Do not BUG on invalid vdd The driver may not be able to set the power correctly but that is not a reason to BUG(). Signed-off-by: Adrian Hunter Reviewed-by: Venu Byravarasu Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 1ca896856281d3f1ad4f6f7d4e32e2943452de23 Author: Adrian Hunter Date: Thu Nov 26 14:00:45 2015 +0200 mmc: sdhci-pci: Do not default to 33 Ohm driver strength for Intel SPT In some cases, the stronger 33 Ohm driver strength must not be used so it is not a suitable default. Change it to the standard default 50 Ohm value. The patch applies to v4.2+ except the file name changed. It is drivers/mmc/host/sdhci-pci.c prior to v.4.4. Signed-off-by: Adrian Hunter Cc: stable@vger.kernel.org # v4.2+ Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-pci-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit adb24d42a516bca8b9741ed21206509daaab5b13 Author: Wenkai Du Date: Thu Nov 26 14:00:44 2015 +0200 mmc: mmc: Fix incorrect use of driver strength switching HS200 and HS400 Commit cc4f414c885c ("mmc: mmc: Add driver strength selection") added driver strength selection for eMMC HS200 and HS400 modes. That patch also set the driver stength when transitioning through High Speed mode to HS200/HS400, but driver strength is not defined for High Speed mode. While the JEDEC specification is not clear on this point it has been observed to cause problems for some eMMC, and removing the driver strength setting in this case makes it consistent with the normal use of High Speed mode. Signed-off-by: Wenkai Du Signed-off-by: Adrian Hunter Cc: stable@vger.kernel.org # v4.2+ Signed-off-by: Ulf Hansson drivers/mmc/core/mmc.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 100a606d54a087cfec54efbedba72f36e5a9cdf0 Author: Carlo Caione Date: Wed Nov 25 15:39:51 2015 +0100 mmc: core: Introduce MMC_CAP2_NO_SDIO cap This patch introduce a new MMC_CAP2_NO_SDIO cap used to tell the mmc core to not send SDIO specific commands. Signed-off-by: Carlo Caione Signed-off-by: Ulf Hansson drivers/mmc/core/core.c | 11 ++++++++--- include/linux/mmc/host.h | 1 + 2 files changed, 9 insertions(+), 3 deletions(-) commit 17da678368fac22375f0854c811034e311be23b5 Author: Linus Walleij Date: Wed Nov 25 14:57:57 2015 +0100 mmc: mvsdio: delete platform data code path There are no in-kernel users of the MVSDIO platform data method (instantiating from a board file) so just delete this code and make this a DT-only driver. We depend on OF and check that we have an OF node in probe(). Cc: Nicolas Pitre Cc: Andrew Lunn Cc: Sebastian Hesselbarth Signed-off-by: Linus Walleij Acked-by: Nicolas Pitre Acked-by: Andrew Lunn Signed-off-by: Ulf Hansson drivers/mmc/host/Kconfig | 1 + drivers/mmc/host/mvsdio.c | 63 +++++++++++------------------------------------ 2 files changed, 15 insertions(+), 49 deletions(-) commit 6d91439ae2d31c45706802e0a0716e25f9f97563 Author: Linus Walleij Date: Wed Nov 25 14:57:31 2015 +0100 mmc: mvsdio: delete platform data header This platform data struct is only used inside the MVSDIO driver, nowhere else in the entire kernel. Move the struct into the driver and delete the external header. Cc: Nicolas Pitre Cc: Andrew Lunn Cc: Sebastian Hesselbarth Signed-off-by: Linus Walleij Acked-by: Nicolas Pitre Acked-by: Andrew Lunn Signed-off-by: Ulf Hansson drivers/mmc/host/mvsdio.c | 7 ++++++- include/linux/platform_data/mmc-mvsdio.h | 18 ------------------ 2 files changed, 6 insertions(+), 19 deletions(-) commit 1ef5e49e46b919052474d9b54a15debc79ff0133 Author: yangbo lu Date: Wed Nov 25 10:05:37 2015 +0800 mmc: sdhci-of-esdhc: add/remove some quirks according to vendor version A previous patch had removed esdhc_of_platform_init() by mistake. static void esdhc_of_platform_init(struct sdhci_host *host) { u32 vvn; vvn = in_be32(host->ioaddr + SDHCI_SLOT_INT_STATUS); vvn = (vvn & SDHCI_VENDOR_VER_MASK) >> SDHCI_VENDOR_VER_SHIFT; if (vvn == VENDOR_V_22) host->quirks2 |= SDHCI_QUIRK2_HOST_NO_CMD23; if (vvn > VENDOR_V_22) host->quirks &= ~SDHCI_QUIRK_NO_BUSY_IRQ; } This patch is used to fix it by add/remove some quirks according to verdor version in probe. Signed-off-by: Yangbo Lu Fixes: f4932cfd22f1 ("mmc: sdhci-of-esdhc: support both BE and LE host controller") Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-of-esdhc.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 447dc0d20a69ebd59f335a096528634a40ea55c0 Author: ludovic.desroches@atmel.com Date: Mon Nov 23 16:27:32 2015 +0100 mmc: atmel-mci: atmci_convert_chksize depends on controller version The atmci_convert_chksize() function is no more valid for controller version 0x600 due to the introduction of '2 data' chunk size. Signed-off-by: Ludovic Desroches Signed-off-by: Ulf Hansson drivers/mmc/host/atmel-mci.c | 43 +++++++++++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 16 deletions(-) commit a1904f3cb6a881c6d3b6fa9427e0058e9ac23af6 Author: ludovic.desroches@atmel.com Date: Mon Nov 23 16:27:31 2015 +0100 MAINTAINERS: remove atmel-mci-regs.h file Remove atmel-mci-regs.h file since it has been merged in atmel-mci.c. Signed-off-by: Ludovic Desroches Signed-off-by: Ulf Hansson MAINTAINERS | 1 - 1 file changed, 1 deletion(-) commit ec8fc9cfa060fa41b84fdcf931b90ab2841a64bd Author: ludovic.desroches@atmel.com Date: Mon Nov 23 16:27:30 2015 +0100 mmc: atmel-mci: move atmel-mci-regs.h content in atmel-mci.c atmel-mci-regs.h is only included in atmel-mci.c so move its content in the driver and do some cleanup in these definitions to remove checkpatch errors. Signed-off-by: Ludovic Desroches Signed-off-by: Ulf Hansson drivers/mmc/host/atmel-mci-regs.h | 171 -------------------------------------- drivers/mmc/host/atmel-mci.c | 150 ++++++++++++++++++++++++++++++++- 2 files changed, 149 insertions(+), 172 deletions(-) commit fb0229dfec3df9247190f001f1b51d767f2ee035 Author: Arnd Bergmann Date: Fri Nov 20 11:28:42 2015 +0100 mmc: fix mmc_{un,}register_pm_notifier prototypes The mmc pm notifiers were recently reworked, but the new code produces a lot of warnings when CONFIG_PM_SLEEP is disabled: In file included from ../drivers/mmc/core/sdio_bus.c:27:0: drivers/mmc/core/core.h:97:13: warning: 'mmc_register_pm_notifier' defined but not used [-Wunused-function] The obvious solution is to add the 'inline' keyword at the function definition, as it should be for any function defined in a header file. Signed-off-by: Arnd Bergmann Fixes: 0e40be7c20e0 ("mmc: core: Refactor code to register the MMC PM notifier") Signed-off-by: Ulf Hansson drivers/mmc/core/core.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 260ecb3c915fae3d67bf0378016ae68929be3b0e Author: Haibo Chen Date: Tue Nov 10 17:43:30 2015 +0800 mmc: sdhci-esdhc-imx: correct the tuning-step setting Here we use '|=' to set the tuning-step, but before that, we should clear the tuning-step, otherwise we could got the wrong setting. Signed-off-by: Haibo Chen Acked-by: Dong Aisheng Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-esdhc-imx.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 27cbd7e815a8e223ff7c4fe56daca724101288ac Author: Arnd Bergmann Date: Mon Nov 16 17:08:41 2015 +0100 mmc: sh_mmcif: rework dma channel handling When compiling the sh_mmcif driver for ARM64, we currently get a harmless build warning: ../drivers/mmc/host/sh_mmcif.c: In function 'sh_mmcif_request_dma_one': ../drivers/mmc/host/sh_mmcif.c:417:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] (void *)pdata->slave_id_tx : ^ ../drivers/mmc/host/sh_mmcif.c:418:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] (void *)pdata->slave_id_rx; This could be worked around by adding another cast to uintptr_t, but I decided to simplify the code a little more to avoid that. This splits out the platform data using code into a separate function and builds that only for CONFIG_SUPERH. This part still has a typecast but does not need a second one. The SH platform code could be further modified to pass a pointer directly as we do on other architectures when we have a filter function. The normal case is simplified further and now just calls dma_request_slave_channel() directly without going through the compat handling. Signed-off-by: Arnd Bergmann Signed-off-by: Ulf Hansson drivers/mmc/host/sh_mmcif.c | 84 ++++++++++++++++++++------------------------- 1 file changed, 38 insertions(+), 46 deletions(-) commit 2e4456f08fa81b9a4804379c56c7ef02c0b0d8f0 Author: Marek Vasut Date: Wed Nov 18 10:47:02 2015 +0100 mmc: sdhci: Fix strings broken across multiple lines This is a trivial patch which fixes printed strings split across two or more lines in the source. I tried to grep for some error output*, but I couldn't find it easily because it was broken across multiple lines. This patch makes my life easier. * in particular "Timeout waiting for hardware interrupt." Signed-off-by: Marek Vasut Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci.c | 57 +++++++++++++++++++----------------------------- 1 file changed, 23 insertions(+), 34 deletions(-) commit ffedbd2210f2f4cba490a9205adc11fd1b89a852 Author: Julia Lawall Date: Sat Nov 14 18:05:20 2015 +0100 mmc: pwrseq: constify mmc_pwrseq_ops structures The mmc_pwrseq_ops structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Ulf Hansson drivers/mmc/core/pwrseq.h | 2 +- drivers/mmc/core/pwrseq_emmc.c | 2 +- drivers/mmc/core/pwrseq_simple.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit b5a84ecf025add96b11f778a5a9d455ab5fddff2 Author: Thierry Reding Date: Mon Nov 16 10:27:15 2015 +0100 mmc: tegra: Add Tegra210 support Signed-off-by: Thierry Reding Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-tegra.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit d49d19c2a8f90be7f9cccb527e80175d9454e851 Author: Thierry Reding Date: Mon Nov 16 10:27:14 2015 +0100 mmc: tegra: Constify SoC data The data in the SoC description structures is static and can therefore reside in read-only memory. Signed-off-by: Thierry Reding Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-tegra.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit f5f17813ae9b80fc8458281014c308e5121e0a4e Author: ludovic.desroches@atmel.com Date: Wed Nov 11 19:11:48 2015 +0100 mmc: sdhci-of-at91: add PM support Add runtime PM support and use runtime_force_suspend|resume() for system PM. Signed-off-by: Ludovic Desroches Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-of-at91.c | 75 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 73 insertions(+), 2 deletions(-) commit 28ff4fda9e5b4917375a49a3c6f76aed0cdd55ae Author: Adrien Schildknecht Date: Tue Nov 10 20:12:19 2015 +0100 mmc: kconfig: replace FAULT_INJECTION with FAULT_INJECTION_DEBUG_FS Fault-injection capability for MMC IO uses debugfs entries to configure the attributes. FAULT_INJECTION_DEBUG_FS must be enabled to use FAIL_MMC_REQUEST. Replace FAULT_INJECTION with FAULT_INJECTION_DEBUG_FS. Also remove 'select DEBUG_FS' since FAULT_INJECTION_DEBUG_FS depends on it. Signed-off-by: Adrien Schildknecht Signed-off-by: Ulf Hansson lib/Kconfig.debug | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 1ff8950c04331883b11c5e0d6db96e2da8b6f8c9 Author: yalin wang Date: Thu Nov 12 19:27:11 2015 +0800 mmc: block: change to use kmalloc when copy data from userspace Use kmalloc instead of kzalloc, as zeroing the memory isn't needed. Signed-off-by: yalin wang Signed-off-by: Ulf Hansson drivers/mmc/card/block.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6e1bbc51439705b834688c592e13dfa82e32ff04 Author: ludovic.desroches@atmel.com Date: Mon Nov 9 15:03:59 2015 +0100 mmc: core: set regulator not found message as debug Turn the informative message about no vmmc/vqmmc regulator found in debug one. There is no need to indicate that something optional is missing. Moreover, it can bring confusion, people who doesn't know it is optional may consider these messages as warnings or errors. Signed-off-by: Ludovic Desroches Signed-off-by: Ulf Hansson drivers/mmc/core/core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1ff2575bcf42caefaaab8e2fb00e238852fac8e2 Author: Ulf Hansson Date: Thu Nov 5 16:21:39 2015 +0100 mmc: core: Check for non-removable cards earlier in the error path _mmc_detect_card_removed() validates that the card is removable, but when being called via the bus_ops ->detect() callbacks, the validation is redundant as it's already done in mmc_rescan(). Move the validation of a removable card to the mmc_detect_card_removed() API, which is where it's applicable, to allow the blk error recovery path to get the response a bit earlier. Signed-off-by: Ulf Hansson drivers/mmc/core/core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 8dede18e2e86c8e272cd74e66b0e86872cbe7e02 Author: Ulf Hansson Date: Thu Nov 5 16:11:12 2015 +0100 mmc: core: Refactor code to register the MMC PM notifier Instead of checking for "#ifdef" directly in the code, let's invent a pair of mmc core functions to deal with register/unregister the MMC PM notifier block. Implement stubs for these functions when CONFIG_PM_SLEEP is unset, as in that case the PM notifiers isn't used. Signed-off-by: Ulf Hansson drivers/mmc/core/core.c | 18 ++++++++++++++---- drivers/mmc/core/core.h | 8 ++++++++ drivers/mmc/core/host.c | 8 ++------ include/linux/mmc/host.h | 4 ++-- 4 files changed, 26 insertions(+), 12 deletions(-) commit 7b6471a968bf95e8d526393de125df3bc0c6a73a Author: Ulf Hansson Date: Thu Nov 5 16:01:33 2015 +0100 mmc: core: Remove MMC_CAP_RUNTIME_RESUME as it's redundant Signed-off-by: Ulf Hansson drivers/mmc/host/dw_mmc-rockchip.c | 8 -------- drivers/mmc/host/mtk-sd.c | 1 - include/linux/mmc/host.h | 1 - 3 files changed, 10 deletions(-) commit c29536e85b5f7cf42b2e761f7ff35bc97de7cf95 Author: Ulf Hansson Date: Thu Nov 5 16:01:32 2015 +0100 mmc: core: Make runtime resume default behavior for MMC/SD MMC_CAP_RUNTIME_RESUME was invented to decrease system PM resume time for systems that particularly needs this. As the feature has matured let's make it the default behavior for MMC/SD. Signed-off-by: Ulf Hansson drivers/mmc/core/mmc.c | 15 ++------------- drivers/mmc/core/sd.c | 15 ++------------- 2 files changed, 4 insertions(+), 26 deletions(-) commit d234d2123fa734c8018f7d01ed5d663cf5e6f665 Author: Ulf Hansson Date: Thu Nov 5 16:08:08 2015 +0100 mmc: core: Keep host claimed in mmc_rescan() while calling host ops As mmc_claim_host() invokes pm_runtime_get_sync() for the mmc host device, it's important that the host is kept claimed for *all* accesses to it via the host_ops callbacks. In mmc_rescan(), the ->card_event() and the ->get_cd() callback are being invoked without claiming the host, let's fix this. Signed-off-by: Ulf Hansson drivers/mmc/core/core.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 86236813ff23e0e8afc6844d307fb84df98f6723 Author: Ulf Hansson Date: Thu Nov 5 16:08:07 2015 +0100 mmc: core: Invoke ->card_event() callback only when needed The ->card_event() callback may be called when re-scan is disabled and for non-removable cards, which both cases are unnecessary. Instead let's move the call later in mmc_rescan() where these constraints have been validated. Signed-off-by: Ulf Hansson drivers/mmc/core/core.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit dc28562bf2d67c1ccbcd7ebdfc261f4316c02113 Author: Peter Ujfalusi Date: Tue Nov 3 13:37:31 2015 +0200 mmc: omap_hsmmc: No need to check DMA channel validity at module remove The driver will not probe without valid DMA channels so no need to check if they are valid when the module is removed. Signed-off-by: Peter Ujfalusi CC: Ulf Hansson Signed-off-by: Ulf Hansson drivers/mmc/host/omap_hsmmc.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 3373cbf009e41a42c2ba6d3067fe6d2025003958 Author: Ulrich Hecht Date: Tue Oct 27 17:56:31 2015 +0100 mmc: sh_mmcif: Document r8a7793 DT bindings Signed-off-by: Ulrich Hecht Acked-by: Simon Horman [geert: Rebased] Signed-off-by: Geert Uytterhoeven Signed-off-by: Ulf Hansson Documentation/devicetree/bindings/mmc/renesas,mmcif.txt | 1 + 1 file changed, 1 insertion(+) commit 0dbcdc0622ea77fae87732c485ca13a1f9375571 Author: Sudeep Holla Date: Wed Oct 21 11:10:02 2015 +0100 mmc: core: enable support for the standard "wakeup-source" property Though the mmc core driver should/will continue to support the legacy "enable-sdio-wakeup" property to enable SDIO as the wakeup source, we need to add support for the new standard property "wakeup-source". This patch adds support for "wakeup-source" property in addition to the existing "enable-sdio-wakeup" property. Cc: Adrian Hunter Signed-off-by: Sudeep Holla Signed-off-by: Ulf Hansson drivers/mmc/core/host.c | 3 ++- drivers/mmc/host/sdhci-pltfm.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) commit 6d6c7e56a20f879f8d7b5ff34ea067bfc7ea1572 Merge: 4ef7675 12c2ab0 Author: Joerg Roedel Date: Tue Dec 22 11:26:37 2015 +0100 Merge branch 'for-joerg/arm-smmu/updates' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux into arm/smmu commit 50e8df09e4baaad4fa563564dc04663f662a9b68 Author: Peter Rosin Date: Tue Dec 15 23:01:34 2015 +0100 gpio: sx150x: Add support for sx1502 Signed-off-by: Peter Rosin Acked-by: Rob Herring Signed-off-by: Linus Walleij .../devicetree/bindings/gpio/gpio-sx150x.txt | 3 +- drivers/gpio/gpio-sx150x.c | 53 ++++++++++++++++++++-- 2 files changed, 51 insertions(+), 5 deletions(-) commit f67d71ae8bb18137eb1909a588879b33e06cc4c4 Author: Geliang Tang Date: Mon Dec 21 23:55:39 2015 +0800 ALSA: usb-audio: use list_for_each_entry_continue_reverse For better readability, use list_for_each_entry_continue_reverse() in have_dup_chmap(). Signed-off-by: Geliang Tang Signed-off-by: Takashi Iwai sound/usb/stream.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit ca6349a8c51f2e3d6f2acdb36431e7d7328261f7 Author: Songjun Wu Date: Tue Dec 22 17:26:05 2015 +0800 ARM: at91/dt: sama5d2 Xplained: add pdmic node Add pdmic node on sama5d2-xplained board.The pdmic pins conflict with ISC_D0 & ISC_D1 data pins. Signed-off-by: Songjun Wu Signed-off-by: Alexandre Belloni arch/arm/boot/dts/at91-sama5d2_xplained.dts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 70450d4d5869267ff0c1a12c1e376cc901fcc1fb Author: Songjun Wu Date: Tue Dec 22 17:26:04 2015 +0800 ARM: at91/dt: sama5d2: add pdmic node Add pdmic node. Signed-off-by: Songjun Wu Signed-off-by: Alexandre Belloni arch/arm/boot/dts/sama5d2.dtsi | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit 0eccc9cb4c1443c2665466e35f6e138381b8afd9 Author: Maxime Ripard Date: Thu Dec 17 00:39:42 2015 +0800 pinctrl: sunxi: Add A80 special pin controller Like the previous designs, the A80 has a special pin controller for the critical pins, like the PMIC bus. Add a driver for this controller. Signed-off-by: Maxime Ripard [wens: Add A80 compatible strings to bindings doc; fix pin function names based on v1.3 datasheet; constify of_device_id table] Signed-off-by: Chen-Yu Tsai Acked-by: Rob Herring Signed-off-by: Linus Walleij .../bindings/pinctrl/allwinner,sunxi-pinctrl.txt | 2 + drivers/pinctrl/sunxi/Kconfig | 5 + drivers/pinctrl/sunxi/Makefile | 1 + drivers/pinctrl/sunxi/pinctrl-sun9i-a80-r.c | 181 +++++++++++++++++++++ 4 files changed, 189 insertions(+) commit 9ae482104cb99076e007ae15792a3194fc1eedd8 Author: William Breathitt Gray Date: Tue Dec 15 18:52:44 2015 -0500 gpio: 104-idi-48: Clear pending interrupt once in IRQ handler Performing a read operation on the IRQ Status register will clear the IRQ latch. Since a read operation on the IRQ Status register must be performed in the IRQ handler in order to determine if the IRQ was in fact generated by the device, the IRQ latch is consequently cleared by the IRQ handler. A spinlock is used to guarantee that each IRQ is serviced in the order it was received. Signed-off-by: William Breathitt Gray drivers/gpio/gpio-104-idi-48.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) commit f3154a46b64ca74be258e1e00b36596499ab6159 Author: Robert Jarzmik Date: Fri Dec 18 22:41:34 2015 +0100 MAINTAINERS: add my-self as maintainer of gpio pxa driver Signed-off-by: Robert Jarzmik Signed-off-by: Linus Walleij MAINTAINERS | 6 ++++++ 1 file changed, 6 insertions(+) commit 0440091be8e44fad91bd220abb07b114ba8f0b48 Author: Robert Jarzmik Date: Fri Dec 18 21:40:40 2015 +0100 gpio: pxa: fixes non devicetree builds The commit "gpio: pxa: change the interrupt management" should have taken care of moving an ifdef to not englobe irqdomain related structures anymore, as they are used now for all builds. This repairs the broken builds where CONFIG_OF=n. Signed-off-by: Robert Jarzmik Signed-off-by: Linus Walleij drivers/gpio/gpio-pxa.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit 6077e4effd162e031fff1b86e986ce35ee885ff2 Merge: 0202a11 1a4ca6d Author: Linus Walleij Date: Tue Dec 22 09:48:44 2015 +0100 Merge branch 'sh-pfc-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into devel commit 0239c75978a9b9bdadfe07cdc60d40bdedb93a07 Merge: aa72044 5645e78 Author: Dave Airlie Date: Tue Dec 22 16:19:37 2015 +1000 Merge tag 'drm-vc4-next-2015-12-21' of http://github.com/anholt/linux into drm-next I've decided to just send this fixes-for-next pull request now, even if we don't have a patch for the CONFIG_PM_SLEEP build failure reviewed. If you like my patch for that, I'd be happy to see it applied directly. This pull request brings in little fixes from Dan Carpenter for the 3D support added in this -next cycle. * tag 'drm-vc4-next-2015-12-21' of http://github.com/anholt/linux: drm/vc4: fix an error code drm/vc4: allocate enough memory in vc4_save_hang_state() drm/vc4: copy_to_user() returns the number of bytes remaining commit 86af47413a626f9804f48b354e290459660177ce Author: Valentin Rothberg Date: Wed Dec 2 09:43:10 2015 +0100 iio: exynos-adc: fix irqf_oneshot.cocci warnings Since commit 1c6c69525b40 ("genirq: Reject bogus threaded irq requests") threaded IRQs without a primary handler need to be requested with IRQF_ONESHOT, otherwise the request will fail. So pass the IRQF_ONESHOT flag in this case. Generated by: scripts/coccinelle/misc/irqf_oneshot.cocci Signed-off-by: Fengguang Wu Signed-off-by: Valentin Rothberg Signed-off-by: Olof Johansson drivers/iio/adc/exynos_adc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a67c7129d4d9ba621f2d176e1de2221921841325 Merge: f541316 00a5e81 Author: Olof Johansson Date: Mon Dec 21 20:56:33 2015 -0800 Merge tag 'samsung-defconfig-4.5' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into next/defconfig Defconfig (exynos and multi_v7) changes for Exynos based boards for 4.5: 1. Enable Maxim 8997 and 77693 family drivers (charger, extcon, LED, RTC, haptic/motor, regulator). 2. Build ChromeOS EC drivers as modules on multi_v7. 3. Enable drivers important for Exynos4210-based Universal C210 board. 4. Enable NFSv4 client. 5. On exynos_defconfig set some options to a value recommended by systemd. This also makes it more consistent with multi_v7. * tag 'samsung-defconfig-4.5' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux: ARM: exynos_defconfig: Set recommended options for systemd ARM: exynos_defconfig: Enable NFSv4 client ARM: exynos_defconfig: Add drivers for Exynos4210 Universal C210 board ARM: multi_v7_defconfig: Build ChromeOS EC drivers as modules ARM: multi_v7_defconfig: Enable Maxim 77693 LED and haptic drivers ARM: multi_v7_defconfig: Enable Maxim 8997 family drivers ARM: exynos_defconfig: Enable Maxim 77693 LED and haptic drivers ARM: exynos_defconfig: Enable Maxim 8997 family drivers Signed-off-by: Olof Johansson commit ea83c68ba83155549777e691100a0330d791a765 Merge: e1a0ebc fb026cb Author: Olof Johansson Date: Mon Dec 21 20:52:46 2015 -0800 Merge tag 'samsung-dt64-4.5' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into next/dt64 Samsung DeviceTree ARM64 updates and improvements for 4.5: 1. Add S2MPS15 PMIC node to Espresso board. This gives proper control over regulators, provides 32KHz clocks and RTC driver. 2. Enable HS200 mode operation on Espresso board for MMC0. 3. Add reboot capability (generic syscon-reboot). * tag 'samsung-dt64-4.5' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux: arm64: dts: Add reboot node for exynos7 arm64: dts: Enable HS200 mode operation on exynos7-espresso arm64: dts: Add S2MPS15 PMIC node on exynos7-espresso Signed-off-by: Olof Johansson commit d622bbfcaeeb32408a506225db594265cddf3f6f Merge: 20f0c63 8438aef Author: Olof Johansson Date: Mon Dec 21 20:42:30 2015 -0800 Merge tag 'samsung-soc-4.5' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into next/soc Samsung Exynos improvements for 4.5: 1. Switch from Exynos-specific restart/poweroff handler (mach-exynos/pmu.c) to generic syscon-reboot and syscon-poweroff drivers. This depends on adding syscon nodes to DTS to preserve bisectability. 2. Minor improvements. * tag 'samsung-soc-4.5' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux: ARM: EXYNOS: Remove redundant code from regs-pmu.h ARM: EXYNOS: Constify local exynos_pmu_data structure ARM: EXYNOS: Switch to syscon reboot and poweroff ARM: dts: Add syscon-{reboot, poweroff} nodes for exynos5410 ARM: dts: Add syscon-{reboot, poweroff} nodes for exynos5 ARM: dts: Add syscon-{reboot, poweroff} nodes for exynos4 ARM: dts: Add syscon-{reboot, poweroff} nodes for exynos3250 Signed-off-by: Olof Johansson commit 3a8659772c1acf88448b3849064c157fecd1ce5d Merge: 8d08689 35135f4 Author: Olof Johansson Date: Mon Dec 21 20:39:19 2015 -0800 Merge tag 'samsung-dt-syscon-restart-4.5' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into next/dt Device Tree changes adding necessary nodes for syscon reboot/poweroff handlers on Exynos boards. The mach-exynos changes must base on top of this to retain the bisectability of not loosing reboot/poweroff features. * tag 'samsung-dt-syscon-restart-4.5' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux: ARM: dts: Add syscon-{reboot, poweroff} nodes for exynos5410 ARM: dts: Add syscon-{reboot, poweroff} nodes for exynos5 ARM: dts: Add syscon-{reboot, poweroff} nodes for exynos4 ARM: dts: Add syscon-{reboot, poweroff} nodes for exynos3250 Signed-off-by: Olof Johansson commit e1a0ebc8d82b64440d3ca7eac6a8489937ee2519 Author: Masahiro Yamada Date: Sat Nov 28 02:22:31 2015 +0900 arm64: dts: uniphier: add PH1-LD10 SoC/board support This is the first ARMv8 SoC from Socionext Inc. Signed-off-by: Masahiro Yamada Signed-off-by: Olof Johansson MAINTAINERS | 1 + arch/arm64/boot/dts/Makefile | 1 + arch/arm64/boot/dts/socionext/Makefile | 4 + .../boot/dts/socionext/uniphier-ph1-ld10-ref.dts | 95 +++++++ .../boot/dts/socionext/uniphier-ph1-ld10.dtsi | 280 +++++++++++++++++++++ .../arm64/boot/dts/socionext/uniphier-pinctrl.dtsi | 1 + .../boot/dts/socionext/uniphier-support-card.dtsi | 1 + 7 files changed, 383 insertions(+) commit a09cd356586d33f64cbe64ee4f5c1a7c4a6abee5 Author: Alexander Aring Date: Wed Dec 16 16:26:47 2015 -0800 ARM: bcm2835: add rpi power domain driver This patch adds support for several power domains on Raspberry Pi, including USB (so it can be enabled even if the bootloader didn't do it), and graphics. This patch is the combined work of Eric Anholt (who wrote USB support inside of the Raspberry Pi firmware driver, and wrote the non-USB domain support) and Alexander Aring (who separated the original USB work out from the firmware driver). Signed-off-by: Alexander Aring Signed-off-by: Eric Anholt Reviewed-by: Ulf Hansson Reviewed-by: Kevin Hilman drivers/soc/Kconfig | 1 + drivers/soc/Makefile | 1 + drivers/soc/bcm/Kconfig | 9 + drivers/soc/bcm/Makefile | 1 + drivers/soc/bcm/raspberrypi-power.c | 247 ++++++++++++++++++++++++++ include/dt-bindings/power/raspberrypi-power.h | 41 +++++ 6 files changed, 300 insertions(+) commit 4c8b338f9ae38dee9c77bda023babc7f7543f52c Author: Alexander Aring Date: Wed Dec 16 16:26:48 2015 -0800 dt-bindings: add rpi power domain driver bindings This patch adds devicetree tree bindings for the Raspberry Pi power domain driver. Signed-off-by: Alexander Aring Signed-off-by: Eric Anholt Acked-by: Rob Herring Reviewed-by: Ulf Hansson Reviewed-by: Kevin Hilman .../bindings/soc/bcm/raspberrypi,bcm2835-power.txt | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) commit 60d56333e869be6ad6926cdba3ba974512b2183b Author: Eric Anholt Date: Tue Dec 1 16:49:12 2015 -0800 ARM: bcm2835: Define two new packets from the latest firmware. These packets give us direct access to the firmware's power management code, as opposed to GET/SET_POWER_STATE packets that only had a couple of domains implemented. Signed-off-by: Eric Anholt Reviewed-by: Kevin Hilman include/soc/bcm2835/raspberrypi-firmware.h | 2 ++ 1 file changed, 2 insertions(+) commit 32c5844abb302e3fb1637ba6afe3d8132c64e57f Author: Martin K. Petersen Date: Wed Dec 16 17:53:51 2015 -0500 scsi_debug: Increase the reported optimal transfer length The OPTIMAL TRANSFER LENGTH reported by scsi_debug is 64 blocks which translates to 32KB with the default logical block size. That's much lower than what real storage devices typically report (256KB to 1MB). Bump the optimal transfer length to 1024 blocks. Acked-by: Douglas Gilbert Reviewed-by: Ewan Milne Signed-off-by: Martin K. Petersen drivers/scsi/scsi_debug.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b034573c7eb39aa58cd4a08e487869fea6d4ad2d Author: James Smart Date: Wed Dec 16 18:12:08 2015 -0500 lpfc: Update version to 11.0.0.10 for upstream patch set Update version to 11.0.0.10 for upstream patch set Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinicke Signed-off-by: Martin K. Petersen drivers/scsi/lpfc/lpfc_version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 699acd6220ea5b20b25d5eec0ab448827d745357 Author: Punit Vara Date: Wed Dec 16 18:12:07 2015 -0500 lpfc: Use kzalloc instead of kmalloc This patch is to the lpfc_els.c which resolves following warning reported by coccicheck: WARNING: kzalloc should be used for rdp_context, instead of kmalloc/memset Signed-off-by: Punit Vara Signed-off-by: James Smart Reviewed-by: Hannes Reinicke Reviewed-by: Matthew R. Ochs Reviewed-by: Sebastian Herbszt Signed-off-by: Martin K. Petersen drivers/scsi/lpfc/lpfc_els.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 9be321819c43417432a8376428b90fe3fe3a3510 Author: Markus Elfring Date: Wed Dec 16 18:12:06 2015 -0500 lpfc: Delete unnecessary checks before the function call "mempool_destroy" The mempool_destroy() function tests whether its argument is NULL and then returns immediately. Thus the test around the calls is not needed. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring Signed-off-by: James Smart Reviewed-by: Hannes Reinicke Reviewed-by: Sebastian Herbszt Signed-off-by: Martin K. Petersen drivers/scsi/lpfc/lpfc_mem.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 448193b5b5e2471fc90ea11e78c39bcfd167efb6 Author: James Smart Date: Wed Dec 16 18:12:05 2015 -0500 lpfc: Add logging for misconfigured optics. Add logging for misconfigured optics acqe reported by fw. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinicke Signed-off-by: Martin K. Petersen drivers/scsi/lpfc/lpfc_hw4.h | 51 ++++++++++++++++++++++++-------- drivers/scsi/lpfc/lpfc_init.c | 67 ++++++++++++++++++++++++++++++------------- drivers/scsi/lpfc/lpfc_sli4.h | 1 + 3 files changed, 87 insertions(+), 32 deletions(-) commit 4360ca9c24388e44cb0e14861a62fff43cf225c0 Author: James Smart Date: Wed Dec 16 18:12:04 2015 -0500 lpfc: Fix external loopback failure. Fix external loopback failure. Rx sequence reassembly was incorrect. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinicke Signed-off-by: Martin K. Petersen drivers/scsi/lpfc/lpfc_sli.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit 01c73bbcd7cc4f31f45a1b0caeacdba46acd9c9c Author: James Smart Date: Wed Dec 16 18:12:03 2015 -0500 lpfc: Fix mbox reuse in PLOGI completion Fix mbox reuse in PLOGI completion. Moved allocations so that buffer properly init'd. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinicke Signed-off-by: Martin K. Petersen drivers/scsi/lpfc/lpfc_nportdisc.c | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) commit a085e87c814567c94e5d375e7362f9f25030aac1 Author: James Smart Date: Wed Dec 16 18:12:02 2015 -0500 lpfc: Use new FDMI speed definitions for 10G, 25G and 40G FCoE. Use new FDMI speed definitions for 10G, 25G and 40G FCoE. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinicke Signed-off-by: Martin K. Petersen drivers/scsi/lpfc/lpfc_attr.c | 2 +- drivers/scsi/lpfc/lpfc_ct.c | 146 ++++++++++++++++++++++++++------------- drivers/scsi/lpfc/lpfc_els.c | 3 + drivers/scsi/lpfc/lpfc_hbadisc.c | 29 ++++---- drivers/scsi/lpfc/lpfc_hw4.h | 1 + drivers/scsi/lpfc/lpfc_init.c | 95 ++++++++----------------- drivers/scsi/lpfc/lpfc_scsi.c | 10 +-- 7 files changed, 150 insertions(+), 136 deletions(-) commit 5afab6bbf3f026b7d50451acbfdc12300c5f4353 Author: James Smart Date: Wed Dec 16 18:12:01 2015 -0500 lpfc: Make write check error processing more resilient Make write check error processing more resilient. Checks to catch writes that fw reports weren't fully complete yet SCSI status indicated fine needed correction. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinicke Signed-off-by: Martin K. Petersen drivers/scsi/lpfc/lpfc_scsi.c | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) commit eb8d68c9930f7f9c8f3f4a6059b051b32077a735 Author: James Smart Date: Wed Dec 16 18:12:00 2015 -0500 lpfc: Fix RDP ACC being too long. Fix RDP ACC being too long. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinicke Signed-off-by: Martin K. Petersen drivers/scsi/lpfc/lpfc_els.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 81e7517723fc17396ba91f59312b3177266ddbda Author: James Smart Date: Wed Dec 16 18:11:59 2015 -0500 lpfc: Fix RDP Speed reporting. Fix RDP Speed reporting. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinicke Signed-off-by: Martin K. Petersen drivers/scsi/lpfc/lpfc_els.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) commit 4258e98ee3862ca7036654b43c839ab7668043e0 Author: James Smart Date: Wed Dec 16 18:11:58 2015 -0500 lpfc: Modularize and cleanup FDMI code in driver Modularize, cleanup, add comments - for FDMI code in driver Note: I don't like the comments with leading # - but as we have a lot if present, I'm deferring to handle it in one big fix later. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinicke Signed-off-by: Martin K. Petersen drivers/scsi/lpfc/lpfc.h | 16 +- drivers/scsi/lpfc/lpfc_attr.c | 46 +- drivers/scsi/lpfc/lpfc_crtn.h | 5 +- drivers/scsi/lpfc/lpfc_ct.c | 1794 ++++++++++++++++++++++++-------------- drivers/scsi/lpfc/lpfc_els.c | 99 ++- drivers/scsi/lpfc/lpfc_hbadisc.c | 16 +- drivers/scsi/lpfc/lpfc_hw.h | 184 +++- drivers/scsi/lpfc/lpfc_init.c | 27 +- drivers/scsi/lpfc/lpfc_vport.c | 8 + 9 files changed, 1450 insertions(+), 745 deletions(-) commit c90261dcd86e4eb5c9c1627fde037e902db8aefa Author: James Smart Date: Wed Dec 16 18:11:57 2015 -0500 lpfc: Fix crash in fcp command completion path. Fix crash in fcp command completion path. Missed null check. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinicke Signed-off-by: Martin K. Petersen drivers/scsi/lpfc/lpfc_scsi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6690e0d4fc5cccf74534abe0c9f9a69032bc02f0 Author: James Smart Date: Wed Dec 16 18:11:56 2015 -0500 lpfc: Fix driver crash when module parameter lpfc_fcp_io_channel set to 16 Fix driver crash when module parameter lpfc_fcp_io_channel set to 16 Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinicke Signed-off-by: Martin K. Petersen drivers/scsi/lpfc/lpfc_init.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 4b7789b71c916f79a3366da080101014473234c3 Author: James Smart Date: Wed Dec 16 18:11:55 2015 -0500 lpfc: Fix RegLogin failed error seen on Lancer FC during port bounce Fix RegLogin failed error seen on Lancer FC during port bounce Fix the statemachine and ref counting. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinicke Signed-off-by: Martin K. Petersen drivers/scsi/lpfc/lpfc_els.c | 14 +++++++++----- drivers/scsi/lpfc/lpfc_hbadisc.c | 8 ++++---- drivers/scsi/lpfc/lpfc_nportdisc.c | 3 +++ 3 files changed, 16 insertions(+), 9 deletions(-) commit d6de08cc46269899988b4f40acc7337279693d4b Author: James Smart Date: Wed Dec 16 18:11:53 2015 -0500 lpfc: Fix the FLOGI discovery logic to comply with T11 standards Fix the FLOGI discovery logic to comply with T11 standards We weren't properly setting fabric parameters, such as R_A_TOV and E_D_TOV, when we registered the vfi object in default configs and pt2pt configs. Revise to now pass service params with the values to the firmware and ensure they are reset on link bounce. Required reworking the call sequence in the discovery threads. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinicke Signed-off-by: Martin K. Petersen drivers/scsi/lpfc/lpfc_crtn.h | 1 + drivers/scsi/lpfc/lpfc_els.c | 342 +++++++++++++++++-------------------- drivers/scsi/lpfc/lpfc_hbadisc.c | 12 +- drivers/scsi/lpfc/lpfc_nportdisc.c | 124 ++++++++------ 4 files changed, 240 insertions(+), 239 deletions(-) commit f5cb5304eb26d307c9b30269fb0e007e0b262b7d Author: James Smart Date: Wed Dec 16 18:11:52 2015 -0500 lpfc: Fix FCF Infinite loop in lpfc_sli4_fcf_rr_next_index_get. Fix FCF Infinite loop in lpfc_sli4_fcf_rr_next_index_get. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinicke Signed-off-by: Martin K. Petersen drivers/scsi/lpfc/lpfc_sli.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit e59ac747946693b1356d576f843ce8ac1e283927 Author: Geliang Tang Date: Mon Nov 16 21:54:46 2015 +0800 staging: emxx_udc: use list_first_entry_or_null() Simplify the code with list_first_entry_or_null(). Signed-off-by: Geliang Tang Signed-off-by: Greg Kroah-Hartman drivers/staging/emxx_udc/emxx_udc.c | 30 +++++------------------------- 1 file changed, 5 insertions(+), 25 deletions(-) commit e7cfb3907d1c88cea8977fa267149cb2297fb07e Author: Arnd Bergmann Date: Wed Nov 18 22:02:39 2015 +0100 staging/emxx_udc: fix 64-bit warnings ARCH_SHMOBILE is coming to arm64, which creates new warnings in allmodconfig: drivers/staging/emxx_udc/emxx_udc.c: In function '_nbu2ss_out_dma': drivers/staging/emxx_udc/emxx_udc.c:843:45: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] _nbu2ss_writel(&preg->EP_DCR[num].EP_TADR, (u32)pBuffer); This is clearly a mistake from confusing a dma_addr_t with a pointer, so the fix is to use the correct types in two places. The third warning of this kind is a check for an unaligned pointer, which should be done by casting the pointer to uintptr_t, not int. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/emxx_udc/emxx_udc.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 76c599bcab26795b0669694e1e32a78274cb901b Author: Andy Lutomirski Date: Tue Dec 15 08:37:40 2015 -0800 ACPI / bus: Show _OSC UUID when _OSC fails When _OSC fails and especially when it fails due to an invalid UUID, it's helpful to show the UUID that we tried. Acked-by: Bjorn Helgaas Signed-off-by: Andy Lutomirski Signed-off-by: Rafael J. Wysocki drivers/acpi/bus.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 50fe763cc8fa00bef9ff78e58645dbfdcaa998da Author: Andy Lutomirski Date: Tue Dec 15 08:37:39 2015 -0800 ACPI / bus: Tidy up _OSC error spacing The whitespace in _OSC error reports is weird. Improve it. Acked-by: Bjorn Helgaas Signed-off-by: Andy Lutomirski Signed-off-by: Rafael J. Wysocki drivers/acpi/bus.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit f6e9b914332f5c60249a911c687eea1aa0cd37d5 Author: Moritz König Date: Thu Dec 17 16:53:12 2015 +0100 STAGING: COMEDI: Using kernel types in plx9080.h This patch makes plx9080.h use kernel types. Signed-off-by: Moritz König Signed-off-by: Fabian Lang Reviewed-by: Ian Abbott Acked-by: Moritz Fischer Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/plx9080.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e0bcce6b3a6a8c2ac8f5b8be8fb7be0d4e682072 Author: Moritz König Date: Thu Dec 17 16:53:11 2015 +0100 STAGING: COMEDI: Added spaces around binary operators in plx9080.h This patch adds spaces around binary operators in plx9080.h. Signed-off-by: Moritz König Signed-off-by: Fabian Lang Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/plx9080.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e554840c947c2d25be24c790cf8db9579b2dfb4f Author: Moritz König Date: Thu Dec 17 16:53:10 2015 +0100 STAGING: COMEDI: Fixed format of comments in plx9080.h This patch fixes the format of comments in plx9080.h. Signed-off-by: Moritz König Signed-off-by: Fabian Lang Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/plx9080.h | 122 ++++++++++++++++++++----------- 1 file changed, 78 insertions(+), 44 deletions(-) commit 2acc980bc623bd8cf3959e85e01fe98c6ede74f5 Author: Jitendra Kumar Khasdev Date: Tue Nov 24 17:52:28 2015 +0530 staging: comedi: comedilib.h: Coding style warning fix for block comments This patch is to comedilib.h file that fixes up following warnings reported by checkpatch.pl : I) Block comments use * on subsequent lines. Apart from it I have remove header file path by base file name as suggested by community. Signed-off-by: Jitendra Kumar Khasdev Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/comedilib.h | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) commit e5417e49965a47f690fe33ab5b27011c86ef89b5 Author: Ian Abbott Date: Thu Nov 19 14:49:08 2015 +0000 staging: comedi: s526: add macros for counter control reg values The driver writes a couple of literal values to the counter control/status register, 0x8000 to reset the counter, and 0x4000 to load the counter from preload register 0. Add a bunch of macros to define these values and other values for the register, based on the Sensoray 526 manual. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/s526.c | 41 +++++++++++++++++++++++++++++++---- 1 file changed, 37 insertions(+), 4 deletions(-) commit 479bd5edab3ca840ba60a89d3172029039ddc2a6 Author: Ian Abbott Date: Thu Nov 19 14:49:07 2015 +0000 staging: comedi: s526: replace counter mode bitfield struct The driver uses `struct counter_mode_register_t` to describe the 16-bit counter mode register as a sequence of bitfield members. The struct appears as the type of one of the members of `union cmReg`, the other member of which is of type `unsigned short`, so the driver can manipulate the register value as a whole, or as individual fields. Although this is fairly convenient, it's not that conventional. The code also needs to define the bitfield members in ascending or descending order of the physical bits, depending on whether bitfields are little- or big-endian. Rip all that out and replace it with a bunch of macros to set and mask out bits of the register value, as that's the more conventional way to do it. A bonus is that we get rid of a load of CamelCase definitions in the process. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/s526.c | 156 ++++++++++++++++++++-------------- 1 file changed, 93 insertions(+), 63 deletions(-) commit 28a60c456bc52bbe949ad54c6b23917a651fc342 Author: Ian Abbott Date: Wed Nov 18 17:55:11 2015 +0000 staging: comedi: check for more errors for zero-length write If the "write" file operation handler, `comedi_write()` is passed 0 for the amount to write, some error conditions are currently skipped and the function just returns 0. Change it to check those error conditions and return an error value if appropriate. The trickiest case is the check for when the previously set up asynchronous command has terminated with an error. In that case, `-EPIPE` is returned (as it is for a write of non-zero length) and the subdevice gets marked as non-busy. A zero-length write that returns 0 has no other effects, in particular, it does not cause the subdevice to be marked as non-busy. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/comedi_fops.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 3318c7add8b43a071498a973548dd24b55c587d4 Author: Ian Abbott Date: Wed Nov 18 17:55:10 2015 +0000 staging: comedi: simplify returned errors for comedi_write() In order to perform a "write" file operation, an asynchronous COMEDI command in the "write" direction needs to have been set up by the current file object on the COMEDI "write" subdevice associated with the file object. If there is a "write" subdevice, but a command has not been set up by the file object (or is has been set-up in the wrong direction), `comedi_write()` currently returns one of two error values `-EINVAL` or `-EACCES`. `-EACCES` is returned if the command was set up by a different subdevice, or somewhat randomly, if a COMEDI "instruction" is currently being processed. `-EINVAL` is returned in other cases. Simplify it by returning `-EINVAL` for all these cases. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/comedi_fops.c | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) commit 40d0e80e08012ac99b187cbaaeb8aab92b71714d Author: Ian Abbott Date: Wed Nov 18 17:55:09 2015 +0000 staging: comedi: return error on "write" if no command set up The "write" file operation handler, `comedi_write()` returns an error for pretty much any condition that prevents a "write" going ahead. One of the conditions that prevents a "write" going ahead is that no asynchronous command has been set up, but that currently results in a return value of 0 (unless COMEDI instructions are being processed or an asynchronous command has been set up by a different file object). Change it to return `-EINVAL` in this case. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/comedi_fops.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 35a7475dc818320915e89ed0217872ff1ab66ec2 Author: Ian Abbott Date: Wed Nov 18 17:55:08 2015 +0000 staging: comedi: allow buffer wraparound in comedi_write() `comedi_write()` copies data from the user buffer to the acquisition data buffer, which is cyclic, using a single call to `copy_from_user()`. It currently avoids having to deal with wraparound of the cyclic buffer by limiting the amount it copies (and the amount returned to the user). Change it to deal with the wraparound using two calls to `copy_from_user()` if necessary. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/comedi_fops.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) commit 591c5f8a599a58c7c3773027010e537fc1d7a7d5 Author: Ian Abbott Date: Wed Nov 18 17:55:07 2015 +0000 staging: comedi: avoid bad truncation of a size_t in comedi_write() At one point in `comedi_write()`, the variable `n` gets assigned to the minimum of the parameter `nbytes` and the amount of writeable buffer space. The way that is done currently is unsafe in the unlikely case that `nbytes` exceeds `UINT_MAX`, so fix it. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/comedi_fops.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit 84a185ec429fe64e5b0d81d7ac815c91578ee569 Author: Ian Abbott Date: Wed Nov 18 17:55:06 2015 +0000 staging: comedi: make some variables unsigned in comedi_write() In `comedi_write()`, the `n` and `m` variables are of type `int`. Change them to `unsigned int` as they are used to measure a positive number of bytes. The `count` variable is also of type `int` and holds the returned number of bytes written. Change it to type `ssize_t` to match the function's return type. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/comedi_fops.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit ed65bba31bdf038bada04415065b8d9b218b6066 Author: Ian Abbott Date: Wed Nov 18 17:55:05 2015 +0000 staging: comedi: do extra checks for becoming non-busy for "write" `comedi_write()` is the handler for the "write" file operation for COMEDI devices. It mostly runs without using the main mutex of the COMEDI device, but uses the `attach_lock` rw_semaphore to protect against the COMEDI device becoming "detached". A file object can write data for a COMEDI asynchonous command if it initiated the command. The COMEDI subdevice is marked as busy when the command is started. At some point, the "write" handler detects that the command has terminated and so marks the subdevice as non-busy. In order to mark the subdevice as non-busy, the "write" handler needs to release the `attach_lock` rw_semaphore and `acquire the main `mutex`. There is a vulnerable point between the two, so it checks that the device is still attached after acquiring the mutex. However, it does not currently check that the conditions for becoming non-busy still hold. Add some more checks that the subdevice is still busy with a command initiated by the same file object, and that the command is in the correct direction (in case the subdevice supports both "read" and "write"). Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/comedi_fops.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 06181de14ff09b274b699ee2dd39fe5e37efb419 Author: Ian Abbott Date: Wed Nov 18 17:55:04 2015 +0000 staging: comedi: rearrange comedi_write() code Rearrange the code in `comedi_write()` to reduce the amount of indentation. The code never reiterates the `while` loop once `count` has become non-zero, so we can check that in the `while` condition to save an indentation level. (Note that `nbytes` has been checked to be non-zero before entering the loop, so we can remove that check.) Move the code that makes the subdevice "become non-busy" outside the `while` loop, using a new flag variable `become_nonbusy` to decide whether it needs to be done. This simplifies the wait queue handling so there is a single place where the task is removed from the wait queue, and we can remove the `on_wait_queue` flag variable. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/comedi_fops.c | 71 +++++++++++++++--------------------- 1 file changed, 30 insertions(+), 41 deletions(-) commit b4717ff608c180115ace1d307e7f452e114ca29c Author: H Hartley Sweeten Date: Wed Nov 18 10:07:34 2015 -0700 staging: comedi: adv_pci_dio: update the MODULE_DESCRIPTION Change the MODULE_DESCRIPTION to something more useful than the generic "Comedi low-level driver". Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bb263fd5d33f4060fb813f99b3558dff1a11d4c1 Author: H Hartley Sweeten Date: Wed Nov 18 10:07:33 2015 -0700 staging: comedi: adv_pci_dio: tidy up the comedi comment block The Description is a bit long winded and the same information is in the Devices. Shorten the Description and tidy up the Devices. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit d97e1552fd71e7ba512c626f5c90afa331c48cec Author: H Hartley Sweeten Date: Wed Nov 18 10:07:32 2015 -0700 staging: comedi: adv_pci_dio: move pci_dio_override_cardtype() This function is called as part of the pci_driver (*probe) before doing the (*auto_attach) of the comedi driver. For aesthetics, move the function to a more logical place in the driver. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 64 ++++++++++++++-------------- 1 file changed, 32 insertions(+), 32 deletions(-) commit a54b6e60f32841e482d6d5ad5edb136fd68697ad Author: H Hartley Sweeten Date: Wed Nov 18 10:07:31 2015 -0700 staging: comedi: adv_pci_dio: move and rename the MAX_*_SUBDEV[SG] defines For aesthetics, move these defines after the register defines and rename them to have namespace associated with the driver. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 2b60bbde040f1ad542bfc7d94b6b9b4b71140f5f Author: H Hartley Sweeten Date: Wed Nov 18 10:07:30 2015 -0700 staging: comedi: adv_pci_dio: move and rename enum hw_cards_id For aesthetics, move this enum after the register defines and rename it to have namespace associated with the driver. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 29 ++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) commit bcae0adaf4f2fd9105ca11ca9df10a5f3881ea26 Author: H Hartley Sweeten Date: Wed Nov 18 10:07:29 2015 -0700 staging: comedi: adv_pci_dio: remove boardinfo 'cardtype' This member of the boardinfo is identical to the offset of the boardinfo in the boardtypes array. It's also passed as the 'context' to the driver (*auto_attach). The 'cardtype' is only needed by the (*auto_attach) to determine which PCI BAR to use and in pci_dio_reset() to handle the board specific code. Remove the 'cardtype' member and use the 'context' value instead. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 31 +++++++--------------------- 1 file changed, 7 insertions(+), 24 deletions(-) commit d0b5860c273ae04ac1b747572aca04354f6515e1 Author: H Hartley Sweeten Date: Wed Nov 18 10:07:28 2015 -0700 staging: comedi: adv_pci_dio: cleanup PCI-1762 interrupt registers For aesthetics, use a common define for the interrupt control and status registers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 6a1c0149a4dd96e2a689f6e279727d04ef2fd81a Author: H Hartley Sweeten Date: Wed Nov 18 10:07:27 2015 -0700 staging: comedi: adv_pci_dio: rename PCI1752_6_CFC define For aesthetics, rename this define and fix the alignment. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 008342ebfda46239ccecb6d4059d511ce5b125c1 Author: H Hartley Sweeten Date: Wed Nov 18 10:07:26 2015 -0700 staging: comedi: adv_pci_dio: cleanup PCI-175[46] interrupt registers For aesthetics, replace these defines with a macro. Refactor the switch in pci_dio_reset() to use common code. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) commit 774a8c57b14646c74c439097e1e6d06b50c21b85 Author: H Hartley Sweeten Date: Wed Nov 18 10:07:25 2015 -0700 staging: comedi: adv_pci_dio: cleanup PCI-1753 interrupt register defines For aesthetics, replace these defines with some macros. Refactor the switch in pci_dio_reset() to not require the fallthrough comment. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 33 ++++++++++++---------------- 1 file changed, 14 insertions(+), 19 deletions(-) commit db2c830d467db6e10e30729f16401ecd4b6480aa Author: H Hartley Sweeten Date: Wed Nov 18 10:07:24 2015 -0700 staging: comedi: adv_pci_dio: use common defines for PCI-1739/175[01] registers These boards use the same offsets for the interrupt control registers. For aesthetics, remove the current defines and use common ones. Fix the switch() in pci_dio_reset() to use common code. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) commit 86065e4d60a4a961600822654a4e6e2f232eff97 Author: H Hartley Sweeten Date: Wed Nov 18 10:07:23 2015 -0700 staging: comedi: adv_pci_dio: use common defines for PCI-173[036] registers These boards use the same offsets for the interrupt control registers. For aesthetics, remove the current defines and use common ones. Fix the switch() in pci_dio_reset() to use common code. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 30 ++++++++++------------------ 1 file changed, 11 insertions(+), 19 deletions(-) commit ac67a3b9ba6c87bbea813e90f3f290ed7b304d85 Author: H Hartley Sweeten Date: Wed Nov 18 10:07:22 2015 -0700 staging: comedi: adv_pci_dio: cleanup "disable and clear interrupts" comments For aesthetics, use a common comment for the switch() that disables and clears interrupts. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) commit c94a5991bf86cc0fddc854daceff96342d299c60 Author: H Hartley Sweeten Date: Wed Nov 18 10:07:21 2015 -0700 staging: comedi: adv_pci_dio: disable channel freeze outside of switch For aesthetics, move the disable of the channel freeze for the PCI-1752 and PCI-1756 boards out of the switch used to disable and clear interrupts. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit eaf1e647efd70fc4579e77313a96371e317fae38 Author: H Hartley Sweeten Date: Wed Nov 18 10:07:20 2015 -0700 staging: comedi: adv_pci_dio: use a default case in pci_dio_reset() For aesthetics, use a default case in the switch (board->cardtype) used to reset the various boards. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit 4cabeb10be65f2ee95e281ad3bc01291e4653213 Author: H Hartley Sweeten Date: Wed Nov 18 10:07:19 2015 -0700 staging: comedi: adv_pci_dio: remove defines used for the dio (8255) registers These defines are only used to initialize the diosubd_data 'addr' members in the boardinfo. For aesthetics, just open-code the values and remove the defines. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) commit 7f442292fac6b8b251eebf311efead4c3c59923e Author: H Hartley Sweeten Date: Wed Nov 18 10:07:18 2015 -0700 staging: comedi: adv_pci_dio: remove defines used for the do registers These defines are only used to initialize the diosubd_data 'addr' members in the boardinfo. For aesthetics, just open-code the values and remove the defines. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 32 +++++++++------------------- 1 file changed, 10 insertions(+), 22 deletions(-) commit d06ddc1967566c0dcca243cfc9a60457d9644115 Author: H Hartley Sweeten Date: Wed Nov 18 10:07:17 2015 -0700 staging: comedi: adv_pci_dio: reset digital outputs in subdevice init Currently the board reset function also resets the digital output channels to 0. This works but it makes the reset function a bit messy and each board type has to be handled special. Move the digital output reset into the subdevice init where it can be handle based on the subdevice setup. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 36 ++++++++++++---------------- 1 file changed, 15 insertions(+), 21 deletions(-) commit 42100e306c0a33f56a079645148d6ceed17d2c40 Author: H Hartley Sweeten Date: Wed Nov 18 10:07:16 2015 -0700 staging: comedi: adv_pci_dio: do board reset early in (*auto_attach) The board reset function disables and clears all interrupts. It also resets all the digital output channels to 0. Interrupts are not currently used by this driver. For asthetics, do the board reset early in the (*auto_attach) to make sure the interrupts are disabled in case this feature is added. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4190c22008ef241cd9ae791bd9934e16c563fbc4 Author: H Hartley Sweeten Date: Wed Nov 18 10:07:15 2015 -0700 staging: comedi: adv_pci_dio: remove board reset during (*detach) The board reset function disables and clears all interrupts. It also resets all the digital output channels to 0. Interrupts are not used by this driver so the disable/clear during the (*detach) is not necessary. Reseting all the digital outputs to 0 might not be desired depending on what the outputs are connected to. Remove the board reset and just use comedi_pci_detach() directly for the driver (*detach). Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) commit e01b70bc13cecc917ae8a0dd23c5ddac38d0813b Author: H Hartley Sweeten Date: Wed Nov 18 10:07:14 2015 -0700 staging: comedi: adv_pci_dio: remove defines used for the di registers These defines are only used to initialize the diosubd_data 'addr' members in the boardinfo. For aesthetics, just open-code the values and remove the defines. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 30 ++++++++++------------------ 1 file changed, 10 insertions(+), 20 deletions(-) commit d9d238d898903d1f6f965a11ffb6aeb844eca5d5 Author: H Hartley Sweeten Date: Wed Nov 18 10:07:13 2015 -0700 staging: comedi: adv_pci_dio: remove defines used for the 'timer_regbase' These defines are only used to initialize the 'timer_regbase' boardinfo. For aesthetics, just open-code the values and remove the defines. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 2001807e25d9a645cfaa28e893a0a5968f6b38a0 Author: H Hartley Sweeten Date: Wed Nov 18 10:07:12 2015 -0700 staging: comedi: adv_pci_dio: simplify the 'boardid' boardinfo The "board id" register is always 4-bits (4 di channels) and the register used to read the bits is always > 0. Simplify the 'boardid' boardinfo by replacing it with a 'id_reg' member and open-coding the subdevice n_chan. For aesthetics, remove all the *_BOARDID defines and just open-code the register values in the boardinfo. Add the missing boardinfo for the pci1739 board id register and increase the nsubdevs to handle it. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 36 ++++++++++++---------------- 1 file changed, 15 insertions(+), 21 deletions(-) commit 66f516e6a31e24972b1768453c2bd1abac273ff1 Author: H Hartley Sweeten Date: Wed Nov 18 10:07:11 2015 -0700 staging: comedi: adv_pci_dio: use the diosubd_data 'addr' for di/do s->private Currently the di/do subdevices store a pointer to the diosubd_data in s->private. The (*insn_bits) functions then use that to get to the 'addr' needed to access the registers. The only member of diosubd_data that is needed by the (*insn_bits) functions is the 'addr'. For aesthetics, just store the 'addr' in s->private. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit 039c5c1b27e786cd92c130559800f88625988dee Author: H Hartley Sweeten Date: Wed Nov 18 10:07:10 2015 -0700 staging: comedi: adv_pci_dio: remove need for diosubd_data 'regs' member Currently the (*insn_bits) functions used the 'regs' member to determine how many registers need to be read or written to update the subdevice. We can use the subdevice 'n_chan' to determine this and make the code a bit clearer. The (*auto_attach) also uses this member to determine how many 8255 devices need to be initialized. These subdevices do not use the 'chans' member of diosubd_data. Move the 'regs' value to the 'chans' to allow removing the 'regs' member completely. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 120 ++++++++++++++------------- 1 file changed, 64 insertions(+), 56 deletions(-) commit 3cdddd6338749da4102788467584c8d9a2ee2699 Author: H Hartley Sweeten Date: Wed Nov 18 10:07:09 2015 -0700 staging: comedi: adv_pci_dio: refactor 'io_access' boardinfo The boards supported by this driver either use 8-bit or 16-bit I/O. The 'io_access' member of the boardinfo is used by the (*auto_attach) to determine which (*insn_bits) function to use. Simplify the boardinfo a bit by refactoring the 'io_access' member into a bit-field flag 'is_16bit'. Use the new flag and remove the switch () code in the (*auto_attach). Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 57 +++++++--------------------- 1 file changed, 13 insertions(+), 44 deletions(-) commit f5ceac9baacb7c83db4aba5ec059bc1a4f36273a Author: H Hartley Sweeten Date: Wed Nov 18 10:07:08 2015 -0700 staging: comedi: adv_pci_dio: absorb pci_dio_add_di() This function initializes a digitial input subdevices. For aesthetics, absorb it into the (*auto_attach). Remove the improper initialization of the SDF_LSAMPL subdev_flag and len_chanlist. These are only used by subdevices that support async commands. Also, remove the unnecessary 'specflags' from the diosubd_data. Only the boardid subdevice uses it. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 127 +++++++++++++-------------- 1 file changed, 62 insertions(+), 65 deletions(-) commit ac93d19adcd3ac4eecb246bdb6bc458c73865199 Author: H Hartley Sweeten Date: Wed Nov 18 10:07:07 2015 -0700 staging: comedi: adv_pci_dio: absorb pci_dio_add_do() This function initializes a digitial output subdevice. For aesthetics, absorb it into the (*auto_attach). Remove the improper initialization of the SDF_LSAMPL subdev_flag and len_chanlist. These are only used by subdevices that support async commands. Also remove the unnecessary initilaization of the subdevice 'state'. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 43 +++++++++------------------- 1 file changed, 14 insertions(+), 29 deletions(-) commit a1132fc1bb6914940aeaa68f32a79ca846e2090f Author: H Hartley Sweeten Date: Wed Nov 18 10:07:06 2015 -0700 staging: comedi: adv_pci_dio: use a const pointer to the diosubd_data For aesthetics, use a const pointer to access the diosubd_data in the boardinfo when doing the (*auto_attach).. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 31 +++++++++++++++++----------- 1 file changed, 19 insertions(+), 12 deletions(-) commit afe5c118bd07edcb00503bd0f4ab83a6e56ae9d8 Author: H Hartley Sweeten Date: Wed Nov 18 10:07:05 2015 -0700 staging: comedi: adv_pci_dio: post increment 'subdev' in (*auto_attach) For aesthetics, post-increment the 'subdev' index when used to get a comedi_subdevice pointer instead of incrementing it after the subdevice is initialized. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) commit c1e07ea22a46c39cbd632233f716ec3a591d94ed Author: H Hartley Sweeten Date: Wed Nov 18 10:07:04 2015 -0700 staging: comedi: adv_pci_dio: remove 'main_pci_region' boardinfo All the boards use PCI BAR2 for the dev->iobase except for the pci1736 which uses PCI BAR0. Just use the board->cardtype to determine which PCI BAR to use. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 30 +++++++--------------------- 1 file changed, 7 insertions(+), 23 deletions(-) commit 744099055fd51cfb8db49784be23032751a3a228 Author: H Hartley Sweeten Date: Wed Nov 18 10:07:03 2015 -0700 staging: comedi: adv_pci_dio: tidy up comedi driver block comment Reformat the bolck comment in the kernel CodingStyle. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 40 ++++++++++++---------------- 1 file changed, 17 insertions(+), 23 deletions(-) commit e29641c21ef24e9e515e02ffcb213f4d51fd097e Author: H Hartley Sweeten Date: Wed Nov 18 10:07:02 2015 -0700 staging: comedi: adv_pci_dio: remove unnecessary function separation comments These are not necessary and just add cruft. Remove them. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 9 --------- 1 file changed, 9 deletions(-) commit cff93d73f7d9a8ec6fff057e0ee8ccd89a1ed6ec Author: Ranjith Thangavel Date: Mon Nov 16 22:26:15 2015 +0530 comedi: ni_6527: Fix coding style - use BIT macro BIT macro is used for defining BIT location instead of shifting operator - coding style issue Signed-off-by: Ranjith Thangavel Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_6527.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit c9e5ec256c7af7f1558290b66dd145326c403a18 Author: Andrzej Pietrasiewicz Date: Sat Nov 14 19:19:10 2015 +0100 staging: comedi: ni_mio_common: add "no_channel" versions of some functions ni_release_ai_mite_channel(), ni_release_ao_mite_channel(), ni_release_gpct_mite_channel() and ni_release_cdo_mite_channel() call functions which interpret -1 as a special value meaning "no channel". This patch adds explicit "no_channel" versions instead. On the other hand, after "no_channel" versions are used, ni_set_ai_dma_channel(), ni_set_ao_dma_channel(), ni_set_gpct_dma_channel(), ni_set_cdo_dma_channel() are called with actual "channel" parameter being always unsigned, so their signatures are changed accordingly. A side benefit of the changes is suppressesing 4 sparse warnings: "warning: shift too big (4294967295) for type int". Signed-off-by: Andrzej Pietrasiewicz Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 82 +++++++++++++++----------- 1 file changed, 49 insertions(+), 33 deletions(-) commit af904c49422be93dd182d45d0c9c3d1862ab72b0 Author: Daniel H. Hemmingsen Date: Thu Nov 12 17:03:18 2015 +0100 Staging: comedi: Fixed multiple commenting and spacing codig style issues. Fixed multiple comment blocks that didn't comply with the kernels coding style, and fixed a few spacing issues as well. Signed-off-by: Daniel H. Hemmingsen Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/comedi.h | 307 +++++++++++++++++++++++----------------- 1 file changed, 177 insertions(+), 130 deletions(-) commit 1a549cb61afa7fc18d92ef87061c8a8d47f535cf Author: Ranjith Thangavel Date: Wed Nov 11 21:57:51 2015 +0530 comedi: cb_pcidda: Fix coding style - use BIT macro BIT macro is used for defining BIT location instead of shifting operator - coding style issue Signed-off-by: Ranjith Thangavel Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/cb_pcidda.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit ecbbf6d33005b287fc4a753de0011f5f261b5869 Author: Ranjith Thangavel Date: Wed Nov 11 21:52:02 2015 +0530 comedi: ni_65xx: Fix coding style - use BIT macro BIT macro is used for defining BIT location instead of shifting operator - coding style issue Signed-off-by: Ranjith Thangavel Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_65xx.c | 54 ++++++++++++++++---------------- 1 file changed, 27 insertions(+), 27 deletions(-) commit 5e1a02bd93fb64fd195951a723ad768106120562 Author: Ranjith Thangavel Date: Wed Nov 11 21:24:01 2015 +0530 comedi: comedi_parport: Fix coding style - use BIT macro BIT macro is used for defining BIT location instead of shifting operator - coding style issue Signed-off-by: Ranjith Thangavel Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/comedi_parport.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 04226e40592c4b27cc2250105b4505901d467102 Author: Geliang Tang Date: Tue Nov 10 22:41:34 2015 +0800 staging: comedi: use kmalloc_array instead of kmalloc Use kmalloc_array instead of kmalloc to allocate memory for an array. Signed-off-by: Geliang Tang Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/amplc_pci224.c | 11 +++++++---- drivers/staging/comedi/drivers/ni_670x.c | 5 +++-- 2 files changed, 10 insertions(+), 6 deletions(-) commit 6e411751f00faf00379f6aa94701ab360b068cff Author: Jitendra Kumar Khasdev Date: Tue Nov 24 23:01:13 2015 +0530 staging: dgnc: dgnc_cls.c: Replaced udelay by usleep_range This patch is to file dgnc_cls.c that fixes up udelay function by usleep_range. It is safe to use according to the following documentation Documentation/timers/timers-howto.txt. So that is why I have given an appropriate time range. Signed-off-by: Jitendra Kumar Khasdev Signed-off-by: Greg Kroah-Hartman drivers/staging/dgnc/dgnc_cls.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f7f2b10a82e8774eab3bd90061caccf8931a8bf4 Author: Nizam Haider Date: Sat Nov 14 20:10:46 2015 +0530 Staging: dgnc: dgnc_tty: Typo error dgnc_wmove comment Fix Typo errror in the comment section of dgnc_wmove Signed-off-by: Nizam Haider Signed-off-by: Greg Kroah-Hartman drivers/staging/dgnc/dgnc_tty.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 013514946cbd85dea2a12e8848f2cfb775eecd52 Author: Nizam Haider Date: Sat Nov 14 20:10:45 2015 +0530 Staging: dgnc: dgnc_neo.c Braces {} should be used on all arms of this statement Fix Checlpatch warning HECK: braces {} should be used on all arms of this statement Signed-off-by: Nizam Haider Signed-off-by: Greg Kroah-Hartman drivers/staging/dgnc/dgnc_neo.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5bff5d9f2b557f63015925b1b076f98010533c52 Author: Bogicevic Sasa Date: Fri Nov 13 15:07:21 2015 +0100 driver:staging:dgnc Fix spaces preferred around that ... This fixes all "spaces preferred around that ..." messages from checkpatch.pl Signed-off-by: Bogicevic Sasa Signed-off-by: Greg Kroah-Hartman drivers/staging/dgnc/dgnc_neo.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit c71d264543f759fea147734cb63de36397817534 Author: Markus Elfring Date: Mon Dec 21 19:30:42 2015 +0100 staging: lustre: Fix a jump label position in osc_get_info() The script "checkpatch.pl" pointed out that labels should not be indented. Thus delete a horizontal tab before the jump label "out" in the function "osc_get_info". Signed-off-by: Markus Elfring Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/osc/osc_request.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 24a386334f62b1f4e5f6209e8bbc0168168ba441 Author: Markus Elfring Date: Mon Dec 21 18:24:45 2015 +0100 staging: lustre: Delete an unnecessary variable initialisation in mgc_process_recover_log() The variable "mne_swab" will eventually be set to an appropriate value from a call of the ptlrpc_rep_need_swab() function. Thus let us omit the explicit initialisation at the beginning. Signed-off-by: Markus Elfring Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/mgc/mgc_request.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3af7370ca16e33f80ebcfd0fe5be59ed6094c95a Author: Markus Elfring Date: Mon Dec 21 18:15:45 2015 +0100 staging: lustre: Delete unnecessary goto statements in six functions Six goto statements referred to a source code position directly behind them. Thus omit such unnecessary jumps. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/namei.c | 1 - drivers/staging/lustre/lustre/mdc/mdc_request.c | 7 ------- 2 files changed, 8 deletions(-) commit fb7a02014b6bb4d56864424cd13dbd6417c3cd7d Author: Shraddha Barke Date: Fri Dec 18 02:40:30 2015 +0530 Staging: lustre: obdclass: Declare lu_site_hash_ops as static lu_site_hash_ops is used only in this particular file. Thus declare it as static. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/lu_object.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 61db1bc4970ac896a1e08fc2214d707b68605d41 Author: Shraddha Barke Date: Fri Dec 18 02:40:29 2015 +0530 Staging: lustre: osc: Declare osc_attr_set as static osc_attr_set is used only in this particular file. Thus declare it as static. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/osc/osc_object.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6ef3f3c736bd7f4864db5d49e7ff53aeedc75ca3 Author: Shraddha Barke Date: Fri Dec 18 02:40:28 2015 +0530 Staging: lustre: osc: Declare as static Declare osc_extent_find and osc_unreserve_grant as static since they are used only in this particular file. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/osc/osc_cache.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 62dc2f66a9267388722a0b1a0c0c253299a3dfc1 Author: Shraddha Barke Date: Fri Dec 18 02:40:27 2015 +0530 Staging: lustre: libcfs: Remove unused libcfs_debug_set_level Function libcfs_debug_set_level is defined but not used. Thus remove it. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/debug.c | 7 ------- 1 file changed, 7 deletions(-) commit 9569ea54ebadbb01746b7d6a5e79a16f78eaa1ae Author: Shraddha Barke Date: Fri Dec 18 02:40:26 2015 +0530 Staging: lustre: obdclass: Declare cl_env_peek as static Declare cl_env_peek as static since it is used only in this file. Also remove the EXPORT SYMBOL. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/cl_object.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 4f05f8ae0a20f692f5138e0383d4cee486ae7127 Author: Shraddha Barke Date: Wed Dec 16 23:10:17 2015 +0530 Staging: lustre: lnet: Remove functions LNetEQWait and LNetEQGet Functions LNetEQWait and LNetEQGet are defined but not used. Thus remove it. Also remove corresponding declarations from header file. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/include/linux/lnet/api.h | 6 ------ drivers/staging/lustre/lnet/lnet/lib-eq.c | 18 ------------------ 2 files changed, 24 deletions(-) commit 4e8d4e1b79896332205e5f505877b1bc6cff1d10 Author: Shraddha Barke Date: Wed Dec 16 23:10:15 2015 +0530 Staging: lustre: include: Remove unused llog_backup declaration Function llog_backup is declared in header file but not used. Thus remove it. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/lustre_log.h | 3 --- 1 file changed, 3 deletions(-) commit 20b0236628a8a420bfbf8a3d39576e2ed606fce7 Author: Rasmus Villemoes Date: Sun Dec 6 01:41:31 2015 +0100 staging: lustre: fix %.2X versus signed char issue When char is signed and one of the bytes in lmm happens to have a byte value above 127, the result of printing that with %.2X will be 8 hex chars, the first 6 of which are 'F'. Worst case, we'll overrun our 'carefully' allocated buffer. I didn't have the tenacity to work through the gazillion and seven layers of macros behind CERROR, but I assume it'll all end at some function implemented in terms of the kernel's vsnprintf. Use %*phN for a hexdump. That'll cap the number of dumped bytes at 64. If that's a problem, the loop could be replaced by "bin2hex(buffer, lmm, lmm_bytes);". Signed-off-by: Rasmus Villemoes Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/lov/lov_pack.c | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) commit f916774259d60e8ecd2cdd90e712e4c2fc64b947 Author: Anjali Menon Date: Fri Nov 20 11:25:22 2015 +0530 staging: lustre: lustre: fld: Removed a blank line Removed a blank line after the open brace to remove the check detected by the checkpatch.pl. CHECK: Blank lines aren't necessary after an open brace '{' Signed-off-by: Anjali Menon Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/fld/fld_cache.c | 1 - 1 file changed, 1 deletion(-) commit d4891039904fa25edf1ca793a0469633ed81df3f Author: Aya Mahfouz Date: Tue Nov 17 22:07:07 2015 +0200 staging: lustre: libcfs.h: remove IS_PO2 and __is_po2 Removes IS_PO2 and __is_po2 since the uses of IS_PO2 have been replaced by is_power_of_2 Signed-off-by: Aya Mahfouz Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/include/linux/libcfs/libcfs.h | 7 ------- 1 file changed, 7 deletions(-) commit 71872e9cc2af4dca1903ebc57daa15f08c795d86 Author: Aya Mahfouz Date: Tue Nov 17 22:06:40 2015 +0200 staging: lustre: hash.c: Replace IS_PO2 by is_power_of_2 Replaces IS_PO2 by is_power_of_2. It is more accurate to use is_power_of_2 since it returns 1 for numbers that are powers of 2 only whereas IS_PO2 returns 1 for 0 and numbers that are powers of 2. Reviewed-by: Andreas Dilger Signed-off-by: Aya Mahfouz Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/hash.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d2d32738ded3825a6608e0d34e276c30c96e63b2 Author: Julia Lawall Date: Sat Nov 14 13:30:34 2015 +0100 lustre: constify inode_operations structures The inode_operations structures are never modified, so declare them as const, like all the other inode_operations structures. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/file.c | 2 +- drivers/staging/lustre/lustre/llite/llite_internal.h | 4 ++-- drivers/staging/lustre/lustre/llite/symlink.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit 53f1a12768a55e53b2c40e00a8804b1edfa739b3 Author: Shivani Bhardwaj Date: Wed Nov 11 15:43:28 2015 +0530 staging: lustre: Remove cl_2queue_add wrapper Remove the wrapper function cl_2queue_add() and replace all its calls in different files with the function it wrapped. Also, comments are added wherever necessary to make the working of function clear. Prototype of the function is also removed from the header file as it is no longer needed. Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/cl_object.h | 1 - drivers/staging/lustre/lustre/llite/rw26.c | 5 ++++- drivers/staging/lustre/lustre/llite/vvp_io.c | 2 +- drivers/staging/lustre/lustre/obdclass/cl_io.c | 14 ++++---------- drivers/staging/lustre/lustre/obdecho/echo_client.c | 6 ++++-- 5 files changed, 13 insertions(+), 15 deletions(-) commit c328ae39e5d66be956fbdfbb7fba544ed1552fe2 Author: Shivani Bhardwaj Date: Wed Nov 11 14:29:07 2015 +0530 staging: lustre: cl_io: Remove cl_lock_descr_fid wrapper Remove unnecessary wrapper function cl_lock_descr_fid() and replace all its calls with the function it wrapped. Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/cl_io.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit 97c2bb7bc5faf5e264c73bbe03517f2eac34b292 Author: Shivani Bhardwaj Date: Tue Nov 10 00:24:17 2015 +0530 staging: lustre: acl: Remove lustre_posix_acl_xattr_free wrapper Remove the wrapper function lustre_posix_acl_xattr_free() and replace its call in the file xattr with the function kfree() that it wrapped. Also, its prototype from the header lustre_eacl is removed as it is no longer of any use. Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/lustre_eacl.h | 2 -- drivers/staging/lustre/lustre/llite/xattr.c | 5 ++++- drivers/staging/lustre/lustre/obdclass/acl.c | 9 --------- 3 files changed, 4 insertions(+), 12 deletions(-) commit bc2105370e6efdcc7648390246df4131a13e5016 Author: John L. Hammond Date: Sun Nov 8 23:27:16 2015 -0500 staging: lustre: remove obsolete comment in tracefile.h Remove comment about tracefile handling for user land version of libcfs that no longer exist. Broken out of patch http://review.whamcloud.com/11983. Signed-off-by: John L. Hammond Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-2675 Reviewed-on: http://review.whamcloud.com/11983 Reviewed-by: Bob Glossman Reviewed-by: James Simmons Reviewed-by: Dmitry Eremin Reviewed-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/tracefile.h | 7 ------- 1 file changed, 7 deletions(-) commit f11e1de21a26ed30171f770e894a9cf0bfa31ffd Author: John L. Hammond Date: Sun Nov 8 23:27:15 2015 -0500 staging: lustre: remove {linux,posix}-tracefile.h Move the definition of the trace buffer type enum in libcfs/libcfs/tracefile.h. Remove the then unneeded headers libcfs/libcfs/linux/linux-tracefile.h and libcfs/libcfs/posix/posix-tracefile.h. Signed-off-by: John L. Hammond Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-2675 Reviewed-on: http://review.whamcloud.com/11983 Reviewed-by: Bob Glossman Reviewed-by: James Simmons Reviewed-by: Dmitry Eremin Reviewed-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman .../lustre/lustre/libcfs/linux/linux-tracefile.h | 48 ---------------------- drivers/staging/lustre/lustre/libcfs/tracefile.h | 7 +++- 2 files changed, 6 insertions(+), 49 deletions(-) commit 1dc563a682597b21f39e2ef9c0a87698935ad4fb Author: Andreas Dilger Date: Sun Nov 8 18:09:37 2015 -0500 staging: lustre: update Intel copyright messages 2015 Update copyright messages in files modified by Intel employees in 2015 by non-trivial patches. Exclude patches that are only deleting code, renaming functions, or adding or removing whitespace. Signed-off-by: Andreas Dilger Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-7243 Reviewed-on: http://review.whamcloud.com/16758 Reviewed-by: James Nunez Reviewed-by: James Simmons Reviewed-by: Dmitry Eremin Reviewed-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/include/linux/libcfs/libcfs.h | 2 +- drivers/staging/lustre/include/linux/libcfs/libcfs_cpu.h | 3 ++- drivers/staging/lustre/include/linux/libcfs/libcfs_hash.h | 2 +- drivers/staging/lustre/include/linux/lnet/lib-lnet.h | 2 +- drivers/staging/lustre/include/linux/lnet/lib-types.h | 2 +- drivers/staging/lustre/include/linux/lnet/nidstr.h | 2 +- drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c | 2 +- drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h | 2 +- drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c | 2 +- drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c | 2 +- drivers/staging/lustre/lnet/lnet/acceptor.c | 2 +- drivers/staging/lustre/lnet/lnet/api-ni.c | 2 +- drivers/staging/lustre/lnet/lnet/config.c | 2 +- drivers/staging/lustre/lnet/lnet/lib-move.c | 2 +- drivers/staging/lustre/lnet/lnet/lib-ptl.c | 2 +- drivers/staging/lustre/lnet/lnet/lib-socket.c | 2 +- drivers/staging/lustre/lnet/lnet/module.c | 2 +- drivers/staging/lustre/lnet/lnet/router.c | 2 +- drivers/staging/lustre/lnet/selftest/brw_test.c | 2 +- drivers/staging/lustre/lnet/selftest/rpc.c | 2 +- drivers/staging/lustre/lustre/fid/fid_request.c | 2 +- drivers/staging/lustre/lustre/fid/lproc_fid.c | 2 +- drivers/staging/lustre/lustre/fld/fld_internal.h | 2 +- drivers/staging/lustre/lustre/fld/fld_request.c | 2 +- drivers/staging/lustre/lustre/fld/lproc_fld.c | 2 +- drivers/staging/lustre/lustre/include/cl_object.h | 2 +- drivers/staging/lustre/lustre/include/lprocfs_status.h | 2 +- drivers/staging/lustre/lustre/include/lu_object.h | 2 +- drivers/staging/lustre/lustre/include/lustre/ll_fiemap.h | 2 ++ drivers/staging/lustre/lustre/include/lustre/lustre_idl.h | 2 +- drivers/staging/lustre/lustre/include/lustre/lustre_user.h | 2 +- drivers/staging/lustre/lustre/include/lustre_dlm.h | 2 +- drivers/staging/lustre/lustre/include/lustre_export.h | 2 +- drivers/staging/lustre/lustre/include/lustre_fid.h | 2 +- drivers/staging/lustre/lustre/include/lustre_fld.h | 2 +- drivers/staging/lustre/lustre/include/lustre_ha.h | 2 +- drivers/staging/lustre/lustre/include/lustre_log.h | 2 +- drivers/staging/lustre/lustre/include/lustre_net.h | 2 +- drivers/staging/lustre/lustre/include/lustre_param.h | 2 +- drivers/staging/lustre/lustre/include/lustre_req_layout.h | 2 +- drivers/staging/lustre/lustre/include/obd.h | 2 +- drivers/staging/lustre/lustre/include/obd_class.h | 2 +- drivers/staging/lustre/lustre/include/obd_support.h | 2 +- drivers/staging/lustre/lustre/lclient/lcommon_cl.c | 2 +- drivers/staging/lustre/lustre/ldlm/ldlm_internal.h | 2 +- drivers/staging/lustre/lustre/ldlm/ldlm_lib.c | 2 +- drivers/staging/lustre/lustre/ldlm/ldlm_lock.c | 2 +- drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c | 2 +- drivers/staging/lustre/lustre/ldlm/ldlm_pool.c | 2 +- drivers/staging/lustre/lustre/ldlm/ldlm_request.c | 2 +- drivers/staging/lustre/lustre/ldlm/ldlm_resource.c | 2 +- drivers/staging/lustre/lustre/libcfs/fail.c | 2 +- drivers/staging/lustre/lustre/libcfs/libcfs_lock.c | 2 +- drivers/staging/lustre/lustre/libcfs/libcfs_string.c | 2 +- drivers/staging/lustre/lustre/libcfs/linux/linux-cpu.c | 3 ++- drivers/staging/lustre/lustre/libcfs/linux/linux-curproc.c | 2 +- drivers/staging/lustre/lustre/libcfs/module.c | 2 +- drivers/staging/lustre/lustre/llite/dcache.c | 2 +- drivers/staging/lustre/lustre/llite/dir.c | 2 +- drivers/staging/lustre/lustre/llite/file.c | 2 +- drivers/staging/lustre/lustre/llite/llite_internal.h | 2 +- drivers/staging/lustre/lustre/llite/llite_lib.c | 2 +- drivers/staging/lustre/lustre/llite/llite_mmap.c | 2 +- drivers/staging/lustre/lustre/llite/lproc_llite.c | 2 +- drivers/staging/lustre/lustre/llite/namei.c | 2 +- drivers/staging/lustre/lustre/llite/rw.c | 2 +- drivers/staging/lustre/lustre/llite/statahead.c | 2 +- drivers/staging/lustre/lustre/llite/vvp_dev.c | 2 +- drivers/staging/lustre/lustre/llite/vvp_internal.h | 2 ++ drivers/staging/lustre/lustre/llite/vvp_io.c | 2 +- drivers/staging/lustre/lustre/llite/vvp_lock.c | 2 ++ drivers/staging/lustre/lustre/llite/vvp_object.c | 2 +- drivers/staging/lustre/lustre/llite/vvp_page.c | 2 +- drivers/staging/lustre/lustre/llite/xattr.c | 2 +- drivers/staging/lustre/lustre/llite/xattr_cache.c | 2 ++ drivers/staging/lustre/lustre/lmv/lmv_intent.c | 2 +- drivers/staging/lustre/lustre/lmv/lmv_internal.h | 2 +- drivers/staging/lustre/lustre/lmv/lmv_obd.c | 2 +- drivers/staging/lustre/lustre/lov/lov_cl_internal.h | 2 +- drivers/staging/lustre/lustre/lov/lov_dev.c | 2 +- drivers/staging/lustre/lustre/lov/lov_ea.c | 2 +- drivers/staging/lustre/lustre/lov/lov_internal.h | 2 +- drivers/staging/lustre/lustre/lov/lov_io.c | 2 +- drivers/staging/lustre/lustre/lov/lov_merge.c | 2 +- drivers/staging/lustre/lustre/lov/lov_obd.c | 2 +- drivers/staging/lustre/lustre/lov/lov_object.c | 2 +- drivers/staging/lustre/lustre/lov/lov_offset.c | 2 +- drivers/staging/lustre/lustre/lov/lov_pack.c | 2 +- drivers/staging/lustre/lustre/lov/lov_page.c | 2 +- drivers/staging/lustre/lustre/lov/lov_request.c | 2 +- drivers/staging/lustre/lustre/lov/lovsub_dev.c | 2 ++ drivers/staging/lustre/lustre/lov/lovsub_object.c | 2 +- drivers/staging/lustre/lustre/lov/lproc_lov.c | 2 +- drivers/staging/lustre/lustre/mdc/lproc_mdc.c | 2 +- drivers/staging/lustre/lustre/mdc/mdc_internal.h | 2 +- drivers/staging/lustre/lustre/mdc/mdc_lib.c | 2 +- drivers/staging/lustre/lustre/mdc/mdc_locks.c | 2 +- drivers/staging/lustre/lustre/mdc/mdc_reint.c | 2 +- drivers/staging/lustre/lustre/mdc/mdc_request.c | 2 +- drivers/staging/lustre/lustre/mgc/mgc_request.c | 2 +- drivers/staging/lustre/lustre/obdclass/cl_io.c | 2 +- drivers/staging/lustre/lustre/obdclass/cl_object.c | 2 +- drivers/staging/lustre/lustre/obdclass/cl_page.c | 2 +- drivers/staging/lustre/lustre/obdclass/class_obd.c | 2 +- drivers/staging/lustre/lustre/obdclass/genops.c | 2 +- drivers/staging/lustre/lustre/obdclass/linux/linux-sysctl.c | 2 +- drivers/staging/lustre/lustre/obdclass/llog.c | 2 +- drivers/staging/lustre/lustre/obdclass/llog_cat.c | 2 +- drivers/staging/lustre/lustre/obdclass/llog_internal.h | 2 +- drivers/staging/lustre/lustre/obdclass/llog_obd.c | 2 +- drivers/staging/lustre/lustre/obdclass/llog_swab.c | 2 +- drivers/staging/lustre/lustre/obdclass/lprocfs_status.c | 2 +- drivers/staging/lustre/lustre/obdclass/lu_object.c | 2 +- drivers/staging/lustre/lustre/obdclass/obd_config.c | 2 +- drivers/staging/lustre/lustre/obdclass/obd_mount.c | 2 +- drivers/staging/lustre/lustre/obdecho/echo_client.c | 2 +- drivers/staging/lustre/lustre/osc/lproc_osc.c | 2 +- drivers/staging/lustre/lustre/osc/osc_cache.c | 2 +- drivers/staging/lustre/lustre/osc/osc_cl_internal.h | 2 +- drivers/staging/lustre/lustre/osc/osc_dev.c | 2 +- drivers/staging/lustre/lustre/osc/osc_internal.h | 2 +- drivers/staging/lustre/lustre/osc/osc_io.c | 2 +- drivers/staging/lustre/lustre/osc/osc_lock.c | 2 +- drivers/staging/lustre/lustre/osc/osc_object.c | 2 +- drivers/staging/lustre/lustre/osc/osc_page.c | 2 +- drivers/staging/lustre/lustre/osc/osc_quota.c | 2 +- drivers/staging/lustre/lustre/osc/osc_request.c | 2 +- drivers/staging/lustre/lustre/ptlrpc/client.c | 2 +- drivers/staging/lustre/lustre/ptlrpc/events.c | 2 +- drivers/staging/lustre/lustre/ptlrpc/import.c | 2 +- drivers/staging/lustre/lustre/ptlrpc/layout.c | 2 +- drivers/staging/lustre/lustre/ptlrpc/llog_client.c | 2 +- drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c | 2 +- drivers/staging/lustre/lustre/ptlrpc/niobuf.c | 2 +- drivers/staging/lustre/lustre/ptlrpc/pers.c | 2 ++ drivers/staging/lustre/lustre/ptlrpc/pinger.c | 2 +- drivers/staging/lustre/lustre/ptlrpc/ptlrpc_internal.h | 2 +- drivers/staging/lustre/lustre/ptlrpc/ptlrpcd.c | 2 +- drivers/staging/lustre/lustre/ptlrpc/recover.c | 2 +- drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c | 2 +- drivers/staging/lustre/lustre/ptlrpc/sec_config.c | 2 +- drivers/staging/lustre/lustre/ptlrpc/sec_plain.c | 2 +- drivers/staging/lustre/lustre/ptlrpc/service.c | 2 +- drivers/staging/lustre/lustre/ptlrpc/wiretest.c | 2 +- 144 files changed, 152 insertions(+), 138 deletions(-) commit 82224549f33a2cf983edb82692311ccee805a21b Author: frank zago Date: Sun Nov 8 18:09:36 2015 -0500 staging: lustre: remove unnecessary EXPORT_SYMBOL for lnet layer A lot of symbols don't need to be exported at all because they are only used in the module they belong to. Signed-off-by: frank zago Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-5829 Reviewed-on: http://review.whamcloud.com/13320 Reviewed-by: James Simmons Reviewed-by: Isaac Huang Reviewed-by: John L. Hammond Reviewed-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/lnet/api-ni.c | 3 --- drivers/staging/lustre/lnet/lnet/lib-move.c | 1 - drivers/staging/lustre/lnet/selftest/conctl.c | 2 -- 3 files changed, 6 deletions(-) commit 524576d174c2b3321671fa87bcd6eac24f001485 Author: John L. Hammond Date: Sun Nov 8 14:17:06 2015 -0500 staging: lustre: remove hsm_nl proc file Remove the file /proc/fs/lustre/mdc/*/hsm_nl which was introduced "for testing purposes." Signed-off-by: John L. Hammond Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-2489 Reviewed-on: http://review.whamcloud.com/6656 Reviewed-by: jacques-Charles Lafoucriere Reviewed-by: Aurelien Degremont Reviewed-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/mdc/lproc_mdc.c | 77 --------------------------- 1 file changed, 77 deletions(-) commit dd40ca4629faa656148803fbfded4c804a25a21b Author: Shivani Bhardwaj Date: Sun Nov 8 22:22:58 2015 +0530 staging: lustre: mdc_request: Remove mdc_kuc_reregister wrapper Remove the wrapper function mdc_kuc_reregister() and replace its call with the function it wrapped. Also, comment has been added for clarity. Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/mdc/mdc_request.c | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) commit 8eefa1c028f5b16f33ce1b3c7bbabdf74efc63b1 Author: Shivani Bhardwaj Date: Sun Nov 8 14:47:34 2015 +0530 staging: lustre: workitem: Remove cfs_wi_sched_unlock wrapper Remove the wrapper function cfs_wi_sched_unlock() and replace all its calls with the function it wrapped. Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/workitem.c | 26 ++++++++++--------------- 1 file changed, 10 insertions(+), 16 deletions(-) commit d11f8cc4bb7ff4ee8cc89d2799cdda206da0f434 Author: Shivani Bhardwaj Date: Sun Nov 8 14:47:10 2015 +0530 staging: lustre: workitem: Remove cfs_wi_sched_lock wrapper Remove the wrapper function cfs_wi_sched_lock() and replace all its calls with the function it wrapped. Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/workitem.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) commit 24a85e887b4e44e39425f1d8e0a9e56b690b80b1 Author: Shivani Bhardwaj Date: Sat Nov 7 15:23:11 2015 +0530 Staging: lustre: statahead: Remove agl_list_empty wrapper Remove the function agl_list_empty() and replace its calls with the function it wrapped. Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/statahead.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 615f9a68b9735d1690b9ada3d7d60f864b3161e5 Author: Shivani Bhardwaj Date: Sat Nov 7 15:22:18 2015 +0530 Staging: lustre: statahead: Remove sa_received_empty wrapper Remove the wrapper sa_received_empty() and replace its calls with the function it wrapped. Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/statahead.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 6c3d0ea63e69527eb3b1c8117462f96cff0e4b48 Author: Shivani Bhardwaj Date: Sat Nov 7 15:21:39 2015 +0530 Staging: lustre: statahead: Remove agl_first_entry wrapper Remove the wrapper function agl_first_entry() and replace its calls with the function list_entry() that it wraps. Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/statahead.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) commit 13ce3246573a6c9b785516c957f09108bf325b32 Author: Shivani Bhardwaj Date: Sat Nov 7 15:20:59 2015 +0530 Staging: lustre: statahead: Remove sa_first_received_entry wrapper Remove the function sa_first_received_entry() and replace all its calls with the function list_entry() that it wraps. Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/statahead.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit b0d14255a1db03572d325a2d4897856f3b6f552f Author: Shivani Bhardwaj Date: Sat Nov 7 15:20:21 2015 +0530 Staging: lustre: statahead: Remove ll_sa_entry_unhashed wrapper Remove the function ll_sa_entry_unhashed() and replace all its calls with the function list_empty() that it wrapped. Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/statahead.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit 8cdce48509a73cc45a79937237614ddc6e2181e2 Author: Shraddha Barke Date: Sat Nov 7 15:14:24 2015 +0530 Staging: lustre: lustre_mds: Remove unused md_should_create md_should_create has been defined in header file but not used. Thus remove it. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/lustre_mds.h | 6 ------ 1 file changed, 6 deletions(-) commit 464e5947d119ba02b308859861e1644d90d19191 Author: Shivani Bhardwaj Date: Sat Nov 7 13:32:07 2015 +0530 Staging: lustre: rw: Remove wrapper stride_page_count Remove the function stride_page_count() and replace its calls with the function stride_pg_count() that it wraps. Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/rw.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) commit 03a76b60f8ba27974e2d252bc555d2c103420e15 Author: Alex Williamson Date: Mon Dec 21 15:13:33 2015 -0700 vfio: Include No-IOMMU mode There is really no way to safely give a user full access to a DMA capable device without an IOMMU to protect the host system. There is also no way to provide DMA translation, for use cases such as device assignment to virtual machines. However, there are still those users that want userspace drivers even under those conditions. The UIO driver exists for this use case, but does not provide the degree of device access and programming that VFIO has. In an effort to avoid code duplication, this introduces a No-IOMMU mode for VFIO. This mode requires building VFIO with CONFIG_VFIO_NOIOMMU and enabling the "enable_unsafe_noiommu_mode" option on the vfio driver. This should make it very clear that this mode is not safe. Additionally, CAP_SYS_RAWIO privileges are necessary to work with groups and containers using this mode. Groups making use of this support are named /dev/vfio/noiommu-$GROUP and can only make use of the special VFIO_NOIOMMU_IOMMU for the container. Use of this mode, specifically binding a device without a native IOMMU group to a VFIO bus driver will taint the kernel and should therefore not be considered supported. This patch includes no-iommu support for the vfio-pci bus driver only. Signed-off-by: Alex Williamson Acked-by: Michael S. Tsirkin drivers/vfio/Kconfig | 15 ++++ drivers/vfio/pci/vfio_pci.c | 8 +- drivers/vfio/vfio.c | 184 +++++++++++++++++++++++++++++++++++++++++++- include/linux/vfio.h | 3 + include/uapi/linux/vfio.h | 7 ++ 5 files changed, 210 insertions(+), 7 deletions(-) commit 77d6bd47cc2824af016086c2bd4650685b159e22 Author: Alexey Kardashevskiy Date: Fri Dec 18 12:35:47 2015 +1100 vfio: Add explicit alignments in vfio_iommu_spapr_tce_create The vfio_iommu_spapr_tce_create struct has 4x32bit and 2x64bit fields which should have resulted in sizeof(fio_iommu_spapr_tce_create) equal to 32 bytes. However due to the gcc's default alignment, the actual size of this struct is 40 bytes. This fills gaps with __resv1/2 fields. This should not cause any change in behavior. Signed-off-by: Alexey Kardashevskiy Acked-by: David Gibson Signed-off-by: Alex Williamson include/uapi/linux/vfio.h | 2 ++ 1 file changed, 2 insertions(+) commit 967628827f404b3063016c138ccc7b06c54350f8 Author: Dan Carpenter Date: Thu Dec 17 15:27:07 2015 +0300 VFIO: platform: reset: fix a warning message condition This loop ends with count set to -1 and not zero so the warning message isn't printed when it should be. I've fixed this by change the postop to a preop. Fixes: 0990822c9866 ('VFIO: platform: reset: AMD xgbe reset module') Signed-off-by: Dan Carpenter Reviewed-by: Eric Auger Signed-off-by: Alex Williamson drivers/vfio/platform/reset/vfio_platform_amdxgbe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eafbbd9883d0121811a9388988b80476dc12b1bf Author: Alex Deucher Date: Mon Dec 21 17:13:05 2015 -0500 amd/powerplay: fix copy paste typo in hardwaremanager.c Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 53d8eabe3df36015daf40a7a9bfad9b2ffafc6bd Author: Alex Deucher Date: Mon Dec 21 17:07:40 2015 -0500 amd/powerplay: disable powerplay by default initially Hopefully we can enable this by default once we get more upstream feedback on stability, etc. Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ecb95a027b94a99c3c0fc255c55dd9be6e404ae0 Author: Jubin John Date: Thu Dec 17 19:24:14 2015 -0500 staging/rdma/hfi1: Fix module parameter spelling Fix the spelling of user_credit_return_threshold, it was incorrectly spelled as user_credit_return_theshold causing two module parameters, one with typo, to be shown in modinfo Reviewed-by: Ira Weiny Reviewed-by: Mike Marciniszyn Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/init.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bff14bb66c583376ff8c5dd6294796f6fc3c1dde Author: Dean Luick Date: Thu Dec 17 19:24:13 2015 -0500 staging/rdma/hfi1: Remove incorrect link credit check Remove an invalid sanity check that compares the local link credits with the peer link credits. The two have no dependency on each other. Reviewed-by: Dennis Dalessandro Signed-off-by: Dean Luick Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/chip.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 2ce6bf2292742e0a4e71f08717ce314ce6332151 Author: Sebastian Sanchez Date: Fri Dec 11 08:44:48 2015 -0500 staging/rdma/hfi1: Change num_rcv_contexts to num_user_contexts and its meaning num_rcv_contexts sets the number of user contexts, both receive and send. Renaming it to num_user_contexts makes sense to reflect its true meaning. When num_rcv_contexts is 0, the default behavior is the number of CPU cores instead of 0 contexts. This commit changes the variable num_rcv_contexts to num_user_contexts, and it also makes any negative value for this variable default to the number of CPU cores, so if num_user_contexts is set >= 0, the value will number of contexts. Reviewed-by: Mike Marciniszyn Signed-off-by: Sebastian Sanchez Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/chip.c | 9 +++------ drivers/staging/rdma/hfi1/hfi.h | 2 +- drivers/staging/rdma/hfi1/init.c | 6 +++--- 3 files changed, 7 insertions(+), 10 deletions(-) commit 07859def5de0d909334a2e45e5e428f393e8cc9e Author: Sebastian Sanchez Date: Thu Dec 10 16:02:49 2015 -0500 staging/rdma/hfi1: Fix for module parameter hdrq_entsize when it's 0 If driver is loaded with parameter hdrq_entsize=0, then there's a NULL dereference when the driver gets unloaded. This causes a kernel Oops and prevents the module from being unloaded. This patch fixes this issue by making sure -EINVAL gets returned when hdrq_entsize=0. Reviewed-by: Chegondi, Harish Reviewed-by: Haralanov, Mitko Signed-off-by: Sebastian Sanchez Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/init.c | 1 + 1 file changed, 1 insertion(+) commit 859bcad9c2c5487dd74d4cfbdcbdd6c63a0ca955 Author: Easwar Hariharan Date: Thu Dec 10 11:13:38 2015 -0500 staging/rdma/hfi1: Fix a possible null pointer dereference A code inspection pointed out that kmalloc_array may return NULL and memset doesn't check the input pointer for NULL, resulting in a possible NULL dereference. This patch fixes this. Reviewed-by: Mike Marciniszyn Signed-off-by: Easwar Hariharan Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/chip.c | 2 ++ 1 file changed, 2 insertions(+) commit 5cd24119d437910d15c510218dcd32f57355a3d3 Author: Erik E. Kahn Date: Thu Dec 10 09:59:40 2015 -0500 staging/rdma/hfi1: HFI now sends OPA Traps instead of IBTA send_trap() was still using old ib_smp instead of opa_smp for formatting and sending traps. Reviewed-by: Arthur Kepner Reviewed-by: Ira Weiny Reviewed-by: Dennis Dalessandro Signed-off-by: Jubin John Signed-off-by: Erik E. Kahn Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/mad.c | 121 +++++++++++++++++++------------------- drivers/staging/rdma/hfi1/ruc.c | 10 ++-- drivers/staging/rdma/hfi1/ud.c | 21 +++---- drivers/staging/rdma/hfi1/verbs.h | 2 +- 4 files changed, 79 insertions(+), 75 deletions(-) commit 71a1d624f97acbf2dea889c5c5d8c59b3afc2526 Author: Jubin John Date: Thu Dec 10 09:59:34 2015 -0500 staging/rdma/hfi1: add definitions for OPA traps These new definitions will be used by follow-on patches for formating and sending OPA traps. Reviewed-by: Ira Weiny Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/mad.h | 114 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) commit 7438370a5150d6090957ab3e461d5b3a31f2181a Author: Yash Shah Date: Tue Dec 8 10:24:17 2015 +0000 Staging: rdma:Delete unnecessary NULL check before calling function "kmem_cache_destroy" The kmem_cache_destroy() function tests whether its argument is NULL and then returns immediately. Thus the NULL check before calling this function is not needed. This issue was detected by using the Coccinelle software. Signed-off-by: Yash Shah Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/ehca/ehca_av.c | 3 +-- drivers/staging/rdma/ehca/ehca_cq.c | 3 +-- drivers/staging/rdma/ehca/ehca_main.c | 3 +-- drivers/staging/rdma/ehca/ehca_mrmw.c | 6 ++---- drivers/staging/rdma/ehca/ehca_pd.c | 3 +-- drivers/staging/rdma/ehca/ehca_qp.c | 3 +-- 6 files changed, 7 insertions(+), 14 deletions(-) commit a054374f15428cbc1d9cb9cba17ce870eaa7d60f Author: Mike Marciniszyn Date: Mon Dec 7 15:39:22 2015 -0500 staging/rdma/hfi1: convert buffers allocated atomic to per cpu Profiling has shown the the atomic is a performance issue for the pio hot path. If multiple cpus allocated an sc's buffer, the cacheline containing the atomic will bounce from L0 to L0. Convert the atomic to a percpu variable. Reviewed-by: Jubin John Signed-off-by: Mike Marciniszyn Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/pio.c | 40 +++++++++++++++++++++++++++++++----- drivers/staging/rdma/hfi1/pio.h | 2 +- drivers/staging/rdma/hfi1/pio_copy.c | 6 ++++-- 3 files changed, 40 insertions(+), 8 deletions(-) commit a5a9e8ccab4d24c7d9e1da8222f373688745ca6a Author: Mike Marciniszyn Date: Thu Dec 3 16:41:05 2015 -0500 staging/rdma/hfi1: fix sdma build failures to always clean up There are holes in the sdma build support routines that do not clean any partially built sdma descriptors after mapping or allocate failures. This patch corrects these issues. Reviewed-by: Dennis Dalessandro Signed-off-by: Mike Marciniszyn Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/sdma.c | 10 ++++++---- drivers/staging/rdma/hfi1/sdma.h | 7 +++++-- 2 files changed, 11 insertions(+), 6 deletions(-) commit e607a2213a962d2ff7ca77f6a30e72096f0b9341 Author: Mike Marciniszyn Date: Thu Dec 3 14:34:18 2015 -0500 staging/rdma/hfi1: fix pio progress routine race with allocator The allocation code assumes that the shadow ring cannot be overrun because the credits will limit the allocation. Unfortuately, the progress mechanism in sc_release_update() updates the free count prior to processing the shadow ring, allowing the shadow ring to be overrun by an allocation. Reviewed-by: Mark Debbage Signed-off-by: Mike Marciniszyn Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/pio.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 6a5464f2248594bcf92bd05beb341650f9e0f357 Author: Mitko Haralanov Date: Tue Dec 8 17:10:12 2015 -0500 staging/rdma/hfi1: Detect SDMA transmission error early It is possible for an SDMA transmission error to happen during the processing of an user SDMA transfer. In that case it is better to detect it early and abort any further attempts to send more packets. Reviewed-by: Ira Weiny Signed-off-by: Mitko Haralanov Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/user_sdma.c | 6 ++++++ 1 file changed, 6 insertions(+) commit faa98b862011a1ad92e66633220371fa3b799fc4 Author: Mitko Haralanov Date: Tue Dec 8 17:10:11 2015 -0500 staging/rdma/hfi1: Clean-up unnecessary goto statements Clean-up unnecessary goto statements based on feedback from the mailing list on previous patch submissions. Reviewed-by: Ira Weiny Signed-off-by: Mitko Haralanov Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/user_sdma.c | 37 +++++++++++++---------------------- 1 file changed, 14 insertions(+), 23 deletions(-) commit a0d406934a460b2b8dac8cf15996ec8591e33e2e Author: Mitko Haralanov Date: Tue Dec 8 17:10:13 2015 -0500 staging/rdma/hfi1: Add page lock limit check for SDMA requests The driver pins pages on behalf of user processes in two separate instances - when the process has submitted a SDMA transfer and when the process programs an expected receive buffer. When pinning pages, the driver is required to observe the locked page limit set by the system administrator and refuse to lock more pages than allowed. Such a check was done for expected receives but was missing from the SDMA transfer code path. This commit adds the missing check for SDMA transfers. As of this commit, user SDMA or expected receive requests will be rejected if the number of pages required to be pinned will exceed the set limit. Due to the fact that the driver needs to take the MM semaphore in order to update the locked page count (which can sleep), this cannot be done by the callback function as it [the callback] is executed in interrupt context. Therefore, it is necessary to put all the completed SDMA tx requests onto a separate list (txcmp) and offload the actual clean-up and unpinning work to a workqueue. Reviewed-by: Dennis Dalessandro Reviewed-by: Ira Weiny Signed-off-by: Mitko Haralanov Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/user_sdma.c | 276 ++++++++++++++++++++-------------- drivers/staging/rdma/hfi1/user_sdma.h | 2 + 2 files changed, 169 insertions(+), 109 deletions(-) commit def8228452f87d05bd43ac21aeaf894ca081bca4 Author: Mitko Haralanov Date: Tue Dec 8 17:10:09 2015 -0500 staging/rdma/hfi1: Convert to use get_user_pages_fast Convert hfi1_get_user_pages() to use get_user_pages_fast(), which is much fatster. The mm semaphore is still taken to update the pinned page count but is for a much shorter amount of time. Reviewed-by: Ira Weiny Signed-off-by: Mitko Haralanov Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/file_ops.c | 8 +-- drivers/staging/rdma/hfi1/hfi.h | 4 +- drivers/staging/rdma/hfi1/user_pages.c | 97 +++++++++------------------------- 3 files changed, 32 insertions(+), 77 deletions(-) commit 483119a760639858ce2369a314d1bd93a3db3062 Author: Mitko Haralanov Date: Tue Dec 8 17:10:10 2015 -0500 staging/rdma/hfi1: Unconditionally clean-up SDMA queues There is no need to cleck if the packet queue is allocated when cleaning up a user context. The hfi1_user_sdma_free_queues() function already does all the required checks. Reviewed-by: Ira Weiny Signed-off-by: Mitko Haralanov Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/file_ops.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 2d1900f131f015ff335c53b655edfb4e10e57ee7 Author: Dennis Dalessandro Date: Wed Dec 2 00:43:38 2015 -0500 staging/rdma/hfi1: Return immediately on error Now that the spinlock is not taken throughout hfi1_ioctl it is safe to return early rather than setting a variable and falling through the switch. Reviewed-by: Mike Marciniszyn Signed-off-by: Dennis Dalessandro Signed-off-by: Ira Weiny Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/diag.c | 62 ++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 38 deletions(-) commit 33ab349037db079aec7d60608fe4fb1114be6b91 Author: Dennis Dalessandro Date: Wed Dec 2 00:43:37 2015 -0500 staging/rdma/hfi1: Reduce snoop locking scope in IOCTL handler. This patch avoids issues while calling into copy from/to user while holding the lock by only taking the lock when it is absolutely required. The only commands which require the snoop lock are: *Set Filter *Clear Filter *Clear Queue Reviewed-by: Mike Marciniszyn Signed-off-by: Dennis Dalessandro Signed-off-by: Ira Weiny Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/diag.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit f1811cf632bd00947c3a2f7e538148c99d794daf Author: Ira Weiny Date: Wed Dec 2 00:43:36 2015 -0500 staging/rdma/hfi1: Further clean up hfi1_ioctl parameter checks Final clean up of the if/then/else clause for the parameter checks of hfi1_ioctl Signed-off-by: Dennis Dalessandro Signed-off-by: Ira Weiny Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/diag.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) commit d8e499ffe4090ad1e53700a2d0f00599ac69727e Author: Ira Weiny Date: Wed Dec 2 00:43:35 2015 -0500 staging/rdma/hfi1: hfi1_ioctl remove setlink state Set link state is not supported remove from the switch statement and allow the default to return -ENOTTY Signed-off-by: Dennis Dalessandro Signed-off-by: Ira Weiny Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/diag.c | 5 ----- 1 file changed, 5 deletions(-) commit 845e30e62b19e2db68d36828bf9c540a5e390efe Author: Ira Weiny Date: Wed Dec 2 00:43:34 2015 -0500 staging/rdma/hfi1: Return early from hfi1_ioctl parameter errors Rather than have a switch in a large else clause make the parameter checks return immediately. Signed-off-by: Dennis Dalessandro Signed-off-by: Ira Weiny Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/diag.c | 348 +++++++++++++++++++-------------------- 1 file changed, 173 insertions(+), 175 deletions(-) commit ae1724dffcbcbf0f38320e4295367ff4ea8f513c Author: Ira Weiny Date: Wed Dec 2 00:43:33 2015 -0500 staging/rdma/hfi1: Fix camel case variables physState, linkState, and devState should be phys_state, link_state, and dev_state Signed-off-by: Dennis Dalessandro Signed-off-by: Ira Weiny Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/diag.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit c0d4c2582fc20bff48e7287997f1cf7201f191d2 Author: Ira Weiny Date: Wed Dec 2 00:43:32 2015 -0500 staging/rdma/hfi1: diag.c correct sizeof parameter sizeof should use the variable rather than the struct definition to ensure that type changes are properly accounted for. Signed-off-by: Ira Weiny Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/diag.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9d2b75f696d9a3988e0aab00fca8f931ece35d9c Author: Ira Weiny Date: Wed Dec 2 00:43:31 2015 -0500 staging/rdma/hfi1: diag.c add missing braces Else statements should continue using braces even if there is only 1 line in the block. Found by checkpatch --strict Signed-off-by: Ira Weiny Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/diag.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 47bc16971939367a8e6b5c38637ba8afb3b8908d Author: Ira Weiny Date: Wed Dec 2 00:43:30 2015 -0500 staging/rdma/hfi1: diag.c change null comparisons Use !foo rather than (foo == NULL) as recommended by checkpatch --strict Signed-off-by: Ira Weiny Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/diag.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit be98b87ff7d197dfc2e6cf4fea685f682f5d1cc7 Author: Ira Weiny Date: Wed Dec 2 00:43:29 2015 -0500 staging/rdma/hfi1: diag.c fix white space errors Add or remove whitespace according to checkpatch --strict Signed-off-by: Ira Weiny Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/diag.c | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) commit f398ab17b2d702620431ad71bc05265e936cc9f1 Author: Ira Weiny Date: Wed Dec 2 00:43:28 2015 -0500 staging/rdma/hfi1: diag.c fix logical continuations Place logical operators at the end of the previous line when using a multi-line statement. Found by checkpatch --strict Signed-off-by: Ira Weiny Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/diag.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit cce6bd86cbef8f0c2e5e24aaf31858f309d32a3f Author: Ira Weiny Date: Wed Dec 2 00:43:27 2015 -0500 staging/rdma/hfi1: diag.c fix alignment Fix line alignment in various places as caught by checkpatch --strict. Signed-off-by: Ira Weiny Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/diag.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 799d904bf84c23531cf85c1a505aaed0e264babe Author: Ira Weiny Date: Wed Dec 2 00:43:26 2015 -0500 staging/rdma/hfi1: diag.c use BIT macros Use BIT macros rather than shifts. Signed-off-by: Ira Weiny Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/diag.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f0852922507c386257891e694315a56c2ba09224 Author: Andrea Lowe Date: Tue Dec 1 15:38:26 2015 -0500 staging/rdma/hfi1: Adding counter resolutions for DataPortCounters Changing the 32-bit reserved field in opa_port_data_counters_msg to the new 'resolution' field. PMA will use resolutions to right- shift values for LocalLinkIntegrity and LinkErrorRecovery when computing the ErrorCounterSummary for a DataPortCounters request. Reviewed-by: Mike Marciniszyn Signed-off-by: Andrea Lowe Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/mad.c | 38 ++++++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 12 deletions(-) commit 6cc6ad2eb886e8cb47e8b15e9d4132fe8275021f Author: Harish Chegondi Date: Tue Dec 1 15:38:24 2015 -0500 staging/rdma/hfi1: Consider VL15 MTU also when calculating the maximum VL MTU Currently, only MTUs of VLs 0-7 are checked when calculating the maximum VL MTU which is used to set the port MTU capability in DCC_CFG_PORT_CONFIG CSR This can cause a port MTU capability to be set to 0 if MTUs of VLs 0-7 is 0 This would affect the VL15 traffic. Reviewed-by: Dean Luick Reviewed-by: Arthur Kepner Signed-off-by: Harish Chegondi Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/chip.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 6d0145308252ebcc1d373e6c3acd8f1ce7fec377 Author: Dean Luick Date: Tue Dec 1 15:38:23 2015 -0500 staging/rdma/hfi1: unknown frame messages are not errors Change reported unknown frame messages into a counter. These are informational, no errors. Reviewed-by: Dennis Dalessandro Signed-off-by: Dean Luick Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/chip.c | 18 ++++++++++++++++++ drivers/staging/rdma/hfi1/chip.h | 1 + drivers/staging/rdma/hfi1/hfi.h | 2 ++ 3 files changed, 21 insertions(+) commit 56af5543f8cf078da18a0912b8fa04baf724b210 Author: Dean Luick Date: Tue Dec 1 15:38:22 2015 -0500 staging/rdma/hfi1: remove SPC freeze error messages An SPC freeze is not an error. Remove the messages. Reviewed-by: Dennis Dalessandro Signed-off-by: Dean Luick Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/chip.c | 2 -- 1 file changed, 2 deletions(-) commit 8764522e5251b76666aa39e207069c43f742801d Author: Dean Luick Date: Tue Dec 1 15:38:21 2015 -0500 staging/rdma/hfi1: Unexpected link up pkey values are not an error Only warn when link up pkeys are not what we expect. Also, allow for the pkey to already be initialized. Reviewed-by: Arthur Kepner Signed-off-by: Dean Luick Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/chip.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit e8597eb01456f11f978f316c41ea54c935eb2f50 Author: Harish Chegondi Date: Tue Dec 1 15:38:20 2015 -0500 staging/rdma/hfi1: Destroy workqueues if hfi1_register_ib_device() call returns error Currently, if hfi1_register_ib_device() call is unsuccessful, workqueues are not being destroyed before bailing out. This patch fixes this issue. Reviewed-by: Dennis Dalessandro Signed-off-by: Harish Chegondi Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/init.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 2c5b521ae688a6943d79e3f1210502084b375ced Author: Joel Rosenzweig Date: Tue Dec 1 15:38:19 2015 -0500 staging/rdma/hfi1: Adds software counters for bitfields within various error status fields Provides error status counters for CceErrStatus, Send*ErrStatus, RcvErrStatus and MISC_ERR_STATUS Reviewed-by: Mitko Haralanov Reviewed-by: Mike Marciniszyn Signed-off-by: Joel Rosenzweig Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/chip.c | 3185 +++++++++++++++++++++++++++++++++++++- drivers/staging/rdma/hfi1/chip.h | 269 ++++ drivers/staging/rdma/hfi1/hfi.h | 34 + 3 files changed, 3487 insertions(+), 1 deletion(-) commit 11a5909b26942683d5ec7e6810054a36d5a6ee67 Author: Dean Luick Date: Tue Dec 1 15:38:18 2015 -0500 staging/rdma/hfi1: Correctly limit VLs against SDMA engines Correctly reduce the number of VLs when limited by the number of SDMA engines. The hardware has multiple egress mechanisms, SDMA and pio, and multiples of those. These mechanisms are chosen using the VL (8) The fix corrects a panic issue with one of the platforms that doesn't have enough SDMA (4) mechanisms for the typical number of VLs. Reviewed-by: Mike Marciniszyn Signed-off-by: Dean Luick Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/chip.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit d22f9d6bf5622bc3ffb709fb229715167a8bd533 Author: Dean Luick Date: Tue Dec 1 15:38:17 2015 -0500 staging/rdma/hfi1: Add a credit push on diagpkt allocate fail When sending a diagnostic packet, if the send context does not have enough room, force a credit return and try again. Reviewed-by: Dennis Dalessandro Signed-off-by: Dean Luick Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/diag.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 05087f3b224ad42086c019ff11679298faeb50f2 Author: Dean Luick Date: Tue Dec 1 15:38:16 2015 -0500 staging/rdma/hfi1: Extend quiet timeout The longest quiet timeout is now 6s. Extend the driver wait to 6s. The driver wasn't following our internal specification: 6 seconds. This patch corrects that issue. Reviewed-by: Dennis Dalessandro Signed-off-by: Dean Luick Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/chip.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit bbdeb33d2774ddc7475aab7868a5c447503a256e Author: Dean Luick Date: Tue Dec 1 15:38:15 2015 -0500 staging/rdma/hfi1: Add one-time LCB reset Add one-time LCB reset on driver load to pre-emptively work around any LCB power cycle issues. Reviewed-by: Easwar Hariharan Signed-off-by: Dean Luick Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/chip.c | 20 ++++++++++++++++++++ drivers/staging/rdma/hfi1/chip_registers.h | 3 +++ 2 files changed, 23 insertions(+) commit 92d207f31532d48bb86a1a14f9a92df11c9a315c Author: Kaike Wan Date: Tue Dec 1 15:38:13 2015 -0500 staging/rdma/hfi1: Fix qp.h comments This patch fixes a few incorrect header file comments in qp.h Reviewed-by: Mike Marciniszyn Signed-off-by: Kaike Wan Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/qp.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 3802f7eb886582735112b6867286e1acc3991f55 Author: Dean Luick Date: Tue Dec 1 15:38:12 2015 -0500 staging/rdma/hfi1: Add aeth name syndrome decode Add aeth name syndrome decode to enhance debugging. The IBTA RC ACK contains an ACK extended transport header. Part of that header is the syndrome field that qualifies the RC ACK as an ACK, NAK, or RNR NAK. Without the patch here is the syndrome decode: aeth syn 0x00 Here is the decode with the fix: aeth syn 0x00 ACK Reviewed-by: Mike Marciniszyn Signed-off-by: Dean Luick Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/trace.c | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) commit 93990be3023c11f054f7ac3bcbc2a1c4edda6bec Author: Dean Luick Date: Tue Dec 1 15:38:11 2015 -0500 staging/rdma/hfi1: Decode CNP opcode Add CNP opcode decode. Prior to this patch the trace appeared like: -0 [001] d.h. 94062.578932: input_ibhdr: [0000:05:00.0] vl 0 lver 0 sl 0 lnh 2,LRH_BTH dlid 0003 len 6 slid 0001 op 0x80,0x80 se 0 m 0 pad 0 tver 0 pkey 0x8001 f 0 b 0 qpn 0x001234 a 0 psn 0x00000000 Note the "op 0x80,0x80". With this patch: -0 [000] d.h. 233975.912059: input_ibhdr: [0000:05:00.0] vl 0 lver 0 sl 0 lnh 2,LRH_BTH dlid 0015 len 6 slid 0014 op 0x80,CNP se 0 m 0 pad 0 tver 0 pkey 0x8001 f 0 b 0 qpn 0x001234 a 0 psn 0x00000000 Note the "op 0x80,CNP" Reviewed-by: Mike Marciniszyn Signed-off-by: Dean Luick Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/trace.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit b3de842eed283f40aa769403a2d38fc0912dba2b Author: Dean Luick Date: Tue Dec 1 15:38:10 2015 -0500 staging/rdma/hfi1: Support alternate firmware names Add support for an automatic fallback for firmware names to support debug-signed and production-signed firmware images. Reviewed-by: Dennis Dalessandro Signed-off-by: Dean Luick Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/firmware.c | 189 +++++++++++++++++++++++++++++------ 1 file changed, 157 insertions(+), 32 deletions(-) commit 4be81991ec5f21a9dcf4b951689d81cc1b03ca25 Author: Ira Weiny Date: Fri Nov 20 19:43:47 2015 -0500 staging/rdma/hfi1: Eliminate WARN_ON when VL is invalid sdma_select_engine_vl only needs to protect itself from an invalid VL. Something higher up the stack should be warning the user when they try to use an SL which maps to an invalid VL. Reviewed-by: Dean Luick Reviewed-by: Mike Marciniszyn Reviewed-by: Kaike Wan Signed-off-by: Ira Weiny Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/sdma.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 9d2f53ef42c15f6e47b48246beb0a32c4ff3b3ed Author: Jubin John Date: Fri Nov 20 18:13:08 2015 -0500 staging/rdma/hfi1: Fix error in hfi1 driver build hfi1 driver build fails with the following error: In function ‘handle_receive_interrupt’: error: implicit declaration of function ‘skip_rcv_packet’ [-Werror=implicit-function-declaration] last = skip_rcv_packet(&packet, thread); ^ This is due to the inclusion of the skip_rcv_packet() in the CONFIG_PRESCAN_RXQ ifdef block. This function is independent of CONFIG_PRESCAN_RXQ and should be outside this block. Fixes: 82c2611daaf0 ("staging/rdma/hfi1: Handle packets with invalid RHF on context 0") Reviewed-by: Mike Marciniszyn Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/driver.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cd371e0959a3f2d5df69d50000750f7eefc94659 Author: Dean Luick Date: Mon Nov 16 21:59:35 2015 -0500 staging/rdma/hfi1: Adjust EPROM partitions, add EPROM commands Add a new EPROM partition, adjusting partition placement. Add EPROM range commands as a supserset of the partition commands. Remove old partition commands. Enhance EPROM erase, creating a range function and using the largest erase (sub) commands when possible. Reviewed-by: Dennis Dalessandro Signed-off-by: Dean Luick Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/eprom.c | 119 ++++++++++++++++++++--------------- drivers/staging/rdma/hfi1/file_ops.c | 18 ++---- include/uapi/rdma/hfi/hfi1_user.h | 10 ++- 3 files changed, 77 insertions(+), 70 deletions(-) commit 5d9157aafb16bed45e3bf167baa16f1fbe1090cd Author: Dean Luick Date: Mon Nov 16 21:59:34 2015 -0500 staging/rdma/hfi1: Read EFI variable for device description Read an EFI variable for the device description. Create the infrastructure for additional variable reads. Reviewed-by: Easwar Hariharan Signed-off-by: Dean Luick Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/Makefile | 2 +- drivers/staging/rdma/hfi1/chip.c | 38 +++++++-- drivers/staging/rdma/hfi1/efivar.c | 169 +++++++++++++++++++++++++++++++++++++ drivers/staging/rdma/hfi1/efivar.h | 60 +++++++++++++ 4 files changed, 260 insertions(+), 9 deletions(-) commit 995deafaff78e898a9d9867ac11c3a81e554f1d1 Author: Mike Marciniszyn Date: Mon Nov 16 21:59:29 2015 -0500 staging/rdma/hfi1: rework is_a0() and is_bx() The current is_bx() will incorrectly match on other steppings. is_a0() is removed in favor of is_ax(). Reviewed-by: Mark Debbage Signed-off-by: Mike Marciniszyn Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/chip.c | 44 +++++++++++++++--------------------- drivers/staging/rdma/hfi1/chip.h | 1 - drivers/staging/rdma/hfi1/firmware.c | 2 +- drivers/staging/rdma/hfi1/hfi.h | 4 ++-- drivers/staging/rdma/hfi1/init.c | 2 +- drivers/staging/rdma/hfi1/pcie.c | 4 ++-- 6 files changed, 24 insertions(+), 33 deletions(-) commit 9805071e76de29914ecb6ce17136ff83647e7744 Author: Jubin John Date: Mon Nov 16 21:59:27 2015 -0500 staging/rdma/hfi1: Add space between concatenated string elements Space between concantenated string elements is more human readable and fixes the checkpatch issue: CHECK: Concatenated strings should use spaces between elements Reviewed-by: Mike Marciniszyn Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/chip.c | 10 +++++----- drivers/staging/rdma/hfi1/driver.c | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) commit db00a055613915f9309a58700517379018e3093f Author: Ira Weiny Date: Mon Nov 16 21:59:26 2015 -0500 staging/rdma/hfi1: Remove rcv bubbles code Rcv bubbles were improperly calculated for HFIs, fix that here. Reviewed-by: Mike Marciniszyn Reviewed-by: Arthur Kepner Signed-off-by: Ira Weiny Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/mad.c | 64 ++--------------------------------------- 1 file changed, 2 insertions(+), 62 deletions(-) commit 3d305dbdb272c32455d35b2dadda5ca04548a997 Author: Vennila Megavannan Date: Mon Nov 16 21:59:25 2015 -0500 staging/rdma/hfi1: remove RxCtxRHQS from hfi1stats Removed the RxCtxRHQS counter being dumped into dev_cntrs Reviewed-by: Dennis Dalessandro Signed-off-by: Vennila Megavannan Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/chip.c | 2 -- drivers/staging/rdma/hfi1/chip.h | 1 - drivers/staging/rdma/hfi1/chip_registers.h | 1 - 3 files changed, 4 deletions(-) commit 323fd785e396f4252b014665df8a831d91c2f117 Author: Dean Luick Date: Mon Nov 16 21:59:24 2015 -0500 staging/rdma/hfi1: Fix downgrade race A link downgrade can race with link up. Avoid the race in two ways. First, by having the downgrade application logic take the link state mutex for all of its checking. Second, by waiting for the link to move out of the going up state. Reviewed-by: Dennis Dalessandro Signed-off-by: Dean Luick Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/chip.c | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) commit 45b0cf54bc5da284afc86fad97e1c8b1bbe26d73 Author: Alex Deucher Date: Sat Dec 19 18:26:55 2015 -0500 amd/powerplay: don't enable ucode fan control if vbios has no fan table Some systems have a single fan controlled by ACPI or some other method. Reviewed-by: Tom St Denis Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/tonga_thermal.c | 3 +++ 1 file changed, 3 insertions(+) commit 605ed21929fee2b39e8cb25301184c4ad9b468e5 Author: Rex Zhu Date: Thu Dec 17 17:20:04 2015 +0800 drm/amd/powerplay: show gpu load when print gpu performance for Cz. (v2) Show GPU load in in the debugfs output. v2: integrate Tom's optimization Reviewed-by: Alex Deucher Signed-off-by: Rex Zhu drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) commit cae9b9c81bde812590cdac7df32ad5662741b3d5 Author: Rex Zhu Date: Thu Dec 17 14:20:06 2015 +0800 drm/amd/powerplay: check whether need to enable thermal control. (v2) In I+A platform(skylake), it is controlled by intel. v2: integrate Tom's fix Reviewed-by: Alex Deucher Signed-off-by: Rex Zhu drivers/gpu/drm/amd/powerplay/eventmgr/eventtasks.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 88b8dcbe21fda8024827a6559af596f9d0caaadb Author: Rex Zhu Date: Fri Dec 11 15:21:33 2015 +0800 drm/amd/powerplay: add point check to avoid NULL point hang. Signed-off-by: Rex Zhu Reviewed-by: Alex Deucher .../gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c | 60 +++++++++++++++++----- 1 file changed, 47 insertions(+), 13 deletions(-) commit c90e5d20fc1bfefdeb99d5ec2cb0fb28f26d208d Author: David Rokhvarg Date: Fri Dec 11 12:06:25 2015 -0500 drm/amdgpu/powerplay: Program a calculated value as Deep Sleep clock. This replaces programming of a hardcoded value. Signed-off-by: David Rokhvarg drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 283b1a8bfba47921df927bd71b9db40045f4de15 Author: Alex Deucher Date: Mon Dec 14 10:46:52 2015 -0500 drm/amd/powerplay: Don't return an error if fan table is missing It's a valid configuration on some laptops. Reviewed-by: Tom St Denis Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/tonga_processpptables.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit aa22ae4b1f23a52c7e92599ee47a9b9fbb129604 Author: Alex Deucher Date: Fri Dec 11 12:39:01 2015 -0500 drm/powerplay/hwmgr: log errors in tonga_hwmgr_backend_init Helpful in debugging init issues. Reviewed-by: Tom St Denis Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c | 2 ++ 1 file changed, 2 insertions(+) commit a71e06d97293bca733e3a98006aa415a2f87a8c2 Author: Alex Deucher Date: Fri Dec 11 12:32:55 2015 -0500 drm/powerplay: add debugging output to processpptables.c To help track down init errors. Reviewed-by: Tom St Denis Signed-off-by: Alex Deucher .../gpu/drm/amd/powerplay/hwmgr/processpptables.c | 42 +++++++++++++++------- 1 file changed, 29 insertions(+), 13 deletions(-) commit 1d5498c23e852f18d6c8d5c8ba2809fb7dfedb2f Author: Alex Deucher Date: Fri Dec 11 12:12:32 2015 -0500 drm/powerplay: add debugging output to tonga_processpptables.c To help track down init errors. Reviewed-by: Tom St Denis Signed-off-by: Alex Deucher .../amd/powerplay/hwmgr/tonga_processpptables.c | 39 ++++++++++++++-------- 1 file changed, 26 insertions(+), 13 deletions(-) commit 14f634110fa68120ec66e24f1e423e3cc2109c9f Author: Eric Yang Date: Tue Dec 1 13:23:07 2015 -0500 amd/powerplay: Add structures required to report configuration change Add required structures for amd_powerplay_display_configuration_change Signed-off-by: Eric Yang drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c | 76 +++++++++++++--------- drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.h | 11 +++- .../gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c | 17 +++-- drivers/gpu/drm/amd/powerplay/inc/amd_powerplay.h | 73 +++++++++++++++++++++ drivers/gpu/drm/amd/powerplay/inc/hwmgr.h | 1 + 5 files changed, 139 insertions(+), 39 deletions(-) commit 1c9a90820beb63f75ac7dabf75533f425aadc3fa Author: Vitaly Prosyak Date: Thu Dec 3 10:27:57 2015 -0500 amd/powerplay: Fix get dal power level Simplify data struct for get dal power level Signed-off-by: Vitaly Prosyak drivers/gpu/drm/amd/powerplay/amd_powerplay.c | 6 +++--- drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c | 2 +- drivers/gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c | 7 ++++--- drivers/gpu/drm/amd/powerplay/inc/amd_powerplay.h | 3 ++- drivers/gpu/drm/amd/powerplay/inc/hardwaremanager.h | 7 +------ drivers/gpu/drm/amd/powerplay/inc/hwmgr.h | 2 +- 6 files changed, 12 insertions(+), 15 deletions(-) commit c4dd206be1560ebb6eef9cf2200d10a4577cef3f Author: Vitaly Prosyak Date: Mon Nov 30 16:39:53 2015 -0500 amd\powerplay Implement get dal power level Implement get dal power level and simple clock info Signed-off-by: Vitaly Prosyak drivers/gpu/drm/amd/powerplay/amd_powerplay.c | 13 ++++++++++ drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c | 27 +++++++++++++++++++-- .../gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c | 9 +++++++ drivers/gpu/drm/amd/powerplay/inc/amd_powerplay.h | 9 +++++++ .../gpu/drm/amd/powerplay/inc/hardwaremanager.h | 28 +++++++++++++++++++++- drivers/gpu/drm/amd/powerplay/inc/hwmgr.h | 18 ++------------ 6 files changed, 85 insertions(+), 19 deletions(-) commit 9c5f8de6ef36df33e655039fb9392b0ee7203d30 Author: Rex Zhu Date: Tue Dec 8 14:31:13 2015 +0800 drm/amd/powerplay: display gpu load when print performance for tonga. Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou Signed-off-by: Rex Zhu drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) commit 898b1dead9a99aeeb103febacf838c7c71d58292 Author: Alex Deucher Date: Tue Dec 8 17:28:28 2015 -0500 drm/amdgpu/powerplay: enable sysfs and debugfs interfaces late To avoid users accessing them before the module has finished initializing them and make sure they are only created if dpm has properly initialized. Reviewed-by: Christian König Reviewed-by: Jammy Zhou Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 17c00a2fed1bcc80949e0e68607bcea6af3c5358 Author: Rex Zhu Date: Thu Dec 3 14:16:01 2015 +0800 drm/amd/powerplay: move shared function of vi to hwmgr. (v2) v2: agd: rebase on upstream Reviewed-by: Alex Deucher Signed-off-by: Rex Zhu drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.c | 6 - drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c | 336 +++++++++++++++++++++- drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c | 8 - drivers/gpu/drm/amd/powerplay/inc/hwmgr.h | 48 +++- 4 files changed, 379 insertions(+), 19 deletions(-) commit 1ea6c1e8e40c5cccc3572d1221c0770fc0c437f3 Author: Rex Zhu Date: Mon Nov 23 14:50:10 2015 +0800 drm/amd/powerplay: check whether enable dpm in powerplay. Change-Id: I0a2dbf8ef7d4a3e9788fe211fc5964dd2487c519 Signed-off-by: Rex Zhu drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 7ad4e7f09372946d1bfd5359c45ccce024d0689e Author: Rex Zhu Date: Mon Dec 7 16:42:35 2015 +0800 drm/amd/powerplay: fix bug that dpm funcs in debugfs/sysfs missing. in dpm module, sysfs init func move to late_init from sw_init. Reviewed-by: Alex Deucher Change-Id: Ice4a73212d8e3106d05f04a27043820ffd32929e Signed-off-by: Rex Zhu drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) commit 195567e99bdf6491a370b71a1dcf6b4c891495d7 Author: kbuild test robot Date: Fri Dec 4 19:13:27 2015 -0500 drm/amd/powerplay: fix boolreturn.cocci warnings drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/ppatomctrl.c:475:10-11: WARNING: return of 0/1 in function 'atomctrl_lookup_gpio_pin' with return type bool Return statements in functions returning bool should use true/false instead of 1/0. Generated by: scripts/coccinelle/misc/boolreturn.cocci CC: yanyang1 Signed-off-by: Fengguang Wu Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/ppatomctrl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit db18ce397c0928bb420a511db52ce36c2003676e Author: Eric Huang Date: Fri Dec 4 15:49:02 2015 -0500 drm/amd/powerplay: add functions set/get_fan_control_mode in hwmgr for Fiji. Reviewed-by: Alex Deucher Signed-off-by: Eric Huang drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.c | 26 ++++++++++++++++++++++ drivers/gpu/drm/amd/powerplay/hwmgr/fiji_thermal.h | 1 + 2 files changed, 27 insertions(+) commit 9dcfc1936aa0f6a18fd2852e224d59610cd73e7a Author: Eric Huang Date: Fri Dec 4 10:57:22 2015 -0500 drm/amd/powerplay: add functions set/get_fan_control_mode in hwmgr for Tonga. Reviewed-by: Alex Deucher Signed-off-by: Eric Huang drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c | 26 ++++++++++++++++++++++ .../gpu/drm/amd/powerplay/hwmgr/tonga_thermal.h | 1 + 2 files changed, 27 insertions(+) commit 7ae0a66134c7274cd889129f67a83ac004084b3b Author: Eric Huang Date: Thu Dec 3 15:13:46 2015 -0500 drm/amd/powerplay: Fix a bug in fan control setting default mode for Tonga and Fiji. Reviewed-by: Alex Deucher Signed-off-by: Eric Huang drivers/gpu/drm/amd/powerplay/hwmgr/fiji_thermal.c | 2 +- drivers/gpu/drm/amd/powerplay/hwmgr/tonga_thermal.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 601038142fdab3750f26c0f7bda8c7f4805cbe1d Author: Eric Huang Date: Fri Nov 27 14:09:53 2015 -0500 drm/amd/powerplay: Add thermal protection support for Fiji. Reviewed-by: Alex Deucher Signed-off-by: Eric Huang drivers/gpu/drm/amd/powerplay/hwmgr/Makefile | 2 +- drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.c | 143 +++++ drivers/gpu/drm/amd/powerplay/hwmgr/fiji_thermal.c | 687 +++++++++++++++++++++ drivers/gpu/drm/amd/powerplay/hwmgr/fiji_thermal.h | 61 ++ 4 files changed, 892 insertions(+), 1 deletion(-) commit ea617bc9f9f2ad3469397a74129e62a490e56900 Author: Eric Huang Date: Tue Nov 24 17:00:56 2015 -0500 drm/amd/powerplay: add display configeration changed function in hwmgr for Fiji. Reviewed-by: Alex Deucher Signed-off-by: Eric Huang drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.c | 66 ++++++++++++++++++++++++ drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.h | 2 + 2 files changed, 68 insertions(+) commit bd90dd89e53c383d1fea973721c8e7864946a254 Author: Qiang Yu Date: Wed Dec 2 10:56:57 2015 +0800 drm/amdgpu: Prepare DKMS build for powerplay module. Signed-off-by: Qiang Yu Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0bbb81761864c63b5f323b61b48ee892d472c880 Author: Eric Huang Date: Tue Nov 24 10:53:27 2015 -0500 drm/amd/amdgpu: enable uvd&vce clock gating for Fiji. Reviewed-by: Alex Deucher Reviewed-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Eric Huang drivers/gpu/drm/amd/amdgpu/vi.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 0689a5701358656fe16e83df7c6c654185593208 Author: Eric Huang Date: Mon Nov 23 16:57:53 2015 -0500 drm/amd/amdgpu: add vce3.0 clock gating support. (v2) v2: fix grbm locking Reviewed-by: Alex Deucher Reviewed-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Eric Huang drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 149 +++++++++++++++++++++++++++++++++- 1 file changed, 148 insertions(+), 1 deletion(-) commit 9b08a306476d25c9f5721eccbc43e90bb23c5f58 Author: Eric Huang Date: Mon Nov 23 11:20:36 2015 -0500 drm/amd/amdgpu: add uvd6.0 clock gating support. (v2) v2: fix bug in register mask setting. Reviewed-by: Alex Deucher Reviewed-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Eric Huang drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c | 261 +++++++++++++++++++++++++++++++++- 1 file changed, 259 insertions(+), 2 deletions(-) commit 91c4c98155a86b2b3afc2fc9dd63a4cb5344b71e Author: Eric Huang Date: Fri Nov 20 15:58:11 2015 -0500 drm/amd/powerplay: add multimedia power gating support for Fiji. Acked-by: Jammy Zhou Acked-by: Christian König Reviewed-by: Alex Deucher Signed-off-by: Eric Huang drivers/gpu/drm/amd/powerplay/hwmgr/Makefile | 3 +- .../amd/powerplay/hwmgr/fiji_clockpowergating.c | 114 ++++++++++++++++++ .../amd/powerplay/hwmgr/fiji_clockpowergating.h | 35 ++++++ drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.c | 127 ++++++++++++++++++++- drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.h | 5 + 5 files changed, 281 insertions(+), 3 deletions(-) commit b57fd5663e34f024406936283475f4c0eadbfc96 Author: Jammy Zhou Date: Wed Oct 21 17:18:10 2015 +0800 drm/amdgpu: rename fiji_smumgr.h to fiji_smum.h This conflicts with fiji_smumgr.h from powerplay in DKMS environment Signed-off-by: Jammy Zhou Reviewed-by: Alex Deucher Signed-off-by: Jordan Lazare drivers/gpu/drm/amd/amdgpu/fiji_dpm.c | 2 +- drivers/gpu/drm/amd/amdgpu/fiji_smc.c | 2 +- drivers/gpu/drm/amd/amdgpu/fiji_smum.h | 42 ++++++++++++++++++++++++++++++++ drivers/gpu/drm/amd/amdgpu/fiji_smumgr.h | 42 -------------------------------- 4 files changed, 44 insertions(+), 44 deletions(-) commit dbd29f0d8513b0d660807beb13df94b00402ea57 Author: Jammy Zhou Date: Wed Oct 21 17:15:45 2015 +0800 drm/amdgpu: rename tonga_smumgr.h to tonga_smum.h This conflicts with the tonga_smumgr.h from powerplay in DKMS environement Signed-off-by: Jammy Zhou Reviewed-by: Alex Deucher Signed-off-by: Jordan Lazare drivers/gpu/drm/amd/amdgpu/tonga_dpm.c | 2 +- drivers/gpu/drm/amd/amdgpu/tonga_smc.c | 2 +- drivers/gpu/drm/amd/amdgpu/tonga_smum.h | 42 +++++++++++++++++++++++++++++++ drivers/gpu/drm/amd/amdgpu/tonga_smumgr.h | 42 ------------------------------- 4 files changed, 44 insertions(+), 44 deletions(-) commit 6bd48d24045c3f93f3f57ca1d61388ea0b38c89c Author: David Rokhvarg Date: Thu Nov 19 14:45:39 2015 -0500 drm/amd/powerplay: Add PPLib debug print macro. - The macro is silent by default. - Use the macro to print Display Configuration - related changes. Signed-off-by: David Rokhvarg drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c | 35 +++++++++++++++++++++++--- drivers/gpu/drm/amd/powerplay/inc/pp_debug.h | 9 ++++++- 2 files changed, 40 insertions(+), 4 deletions(-) commit 0f8b106e11d616eb50aef8f58a47d383101aa4dc Author: Rex Zhu Date: Thu Nov 19 13:48:14 2015 +0800 drm/amd/powerplay: enable/disable NB pstate feature for Carrizo. Signed-off-by: Rex Zhu Signed-off-by: David Rokhvarg Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c | 99 ++++++++++++++++++++++---- drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.h | 3 +- 2 files changed, 87 insertions(+), 15 deletions(-) commit 73afe621016645ec9dbeacefd6a38cc7054ec8c4 Author: Rex Zhu Date: Thu Nov 19 13:47:02 2015 +0800 drm/amd/powerplay: enable set_cpu_power_state task. (v2) v2: integrate Jammy's crash fix Signed-off-by: Rex Zhu Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/powerplay/eventmgr/eventactionchains.c | 2 +- drivers/gpu/drm/amd/powerplay/eventmgr/eventsubchains.c | 5 +++++ drivers/gpu/drm/amd/powerplay/eventmgr/eventsubchains.h | 1 + drivers/gpu/drm/amd/powerplay/eventmgr/eventtasks.c | 3 +-- drivers/gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c | 13 +++++++++++-- drivers/gpu/drm/amd/powerplay/inc/hardwaremanager.h | 2 ++ 6 files changed, 21 insertions(+), 5 deletions(-) commit 7fb72a1fc01cc1a8de533abc80b9eaf0120e8529 Author: Rex Zhu Date: Thu Nov 19 13:35:30 2015 +0800 drm/amd/powerplay: export interface to DAL to init/change display configuration. Signed-off-by: Rex Zhu Signed-off-by: David Rokhvarg Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 + drivers/gpu/drm/amd/powerplay/amd_powerplay.c | 16 ++++++++++++++++ drivers/gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c | 16 ++++++++++++++++ drivers/gpu/drm/amd/powerplay/inc/amd_powerplay.h | 9 +++++++++ drivers/gpu/drm/amd/powerplay/inc/hardwaremanager.h | 3 +++ 5 files changed, 45 insertions(+) commit aceae1bfd91d73965a165b72f55678e5f6337448 Author: Rex Zhu Date: Thu Nov 19 13:47:36 2015 +0800 drm/amd/powerplay: add smc msg for NB P-State switch Signed-off-by: Rex Zhu Signed-off-by: David Rokhvarg Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/powerplay/inc/cz_ppsmc.h | 1 + drivers/gpu/drm/amd/powerplay/inc/smu8_fusion.h | 8 ++++++++ 2 files changed, 9 insertions(+) commit 73c9f222889986d6f0ba0708115337a0284a5b61 Author: Rex Zhu Date: Thu Nov 19 13:46:01 2015 +0800 drm/amd/powerplay: add new function point in hwmgr. 1. for set_cpu_power_state 2. restore display configuration Signed-off-by: Rex Zhu Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/powerplay/inc/hwmgr.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 9c97e75f0fe6f98285127fb0424862087916e83f Author: Tom St Denis Date: Fri Nov 20 13:33:44 2015 -0500 amdgpu/powerplay: Add Stoney to list of early init cases Signed-off-by: Tom St Denis Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c | 1 + 1 file changed, 1 insertion(+) commit c9fe74e68b01d44716cf26615b979f0221aaa2ff Author: Rex Zhu Date: Mon Nov 16 11:24:35 2015 +0800 drm/amd/powerplay: fix warning of cast to pointer from integer of different size. Signed-off-by: Rex Zhu Reviewed-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 09b7a9862222c44945c936f1c4f017b4cda1eaa1 Author: rezhu Date: Thu Nov 12 16:40:50 2015 +0800 drm/amd/powerplay: fix warning of cast to pointer from integer of different size. Signed-off-by: Rex Zhu Reviewed-by: Alex Deucher drivers/gpu/drm/amd/powerplay/eventmgr/eventtasks.c | 4 ++-- drivers/gpu/drm/amd/powerplay/eventmgr/psm.c | 6 +++--- drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) commit 9c0bad907413f5e3bea19d062beaab65b3dbf98f Author: Alex Deucher Date: Fri Nov 13 23:51:40 2015 -0500 drm/amd/powerplay: implement smc state upload for CZ Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c | 135 +++++++++++++++++++-- drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.h | 1 + .../gpu/drm/amd/powerplay/hwmgr/processpptables.c | 22 ++-- drivers/gpu/drm/amd/powerplay/inc/hwmgr.h | 5 +- 4 files changed, 141 insertions(+), 22 deletions(-) commit d39d5c2c9dcfb9e9aec2be154784a12f5b4a6c97 Author: Alex Deucher Date: Fri Nov 13 22:00:01 2015 -0500 drm/amd/powerplay: add atomctrl function to calculate CZ sclk dividers Use atombios to calculate the values. Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/ppatomctrl.c | 22 ++++++++++++++++++++++ drivers/gpu/drm/amd/powerplay/hwmgr/ppatomctrl.h | 3 +++ 2 files changed, 25 insertions(+) commit 92b05d827df2ffe348f7dc2cfb67807a4efdadd2 Author: Eric Huang Date: Thu Nov 12 17:30:52 2015 -0500 drm/amd/powerplay: enable clock gating for Fiji. Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou Signed-off-by: Eric Huang drivers/gpu/drm/amd/powerplay/smumgr/fiji_smumgr.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 6cec2655fa988b4df605e46d4b5c7fbe50056dd5 Author: Eric Huang Date: Thu Nov 12 16:59:47 2015 -0500 drm/amd/powerplay: add parts of system clock gating support for Fiji. (v2) Removed fiji_mgcg_cgcg_init that is affected and redundant for new implementation. v2: re-add mgcg_cgcg init Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou Signed-off-by: Eric Huang drivers/gpu/drm/amd/amdgpu/vi.c | 86 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) commit 3c997d2412572a9306b7cebd713271c0fdc1350c Author: Eric Huang Date: Wed Nov 11 11:49:11 2015 -0500 drm/amdgpu: add sdma clock gating support for Fiji. Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou Signed-off-by: Eric Huang drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 105 +++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) commit a0d69786b5e8c39f8e8a24422a05d3f1f4434b4d Author: Eric Huang Date: Tue Nov 10 11:27:39 2015 -0500 drm/amd/amdgpu: add gmc clock gating support for Fiji. Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou Signed-off-by: Eric Huang drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 172 ++++++++++++++++++++++++++++++++++ 1 file changed, 172 insertions(+) commit 6e378858df1df362d8db814666d0caa0703087a3 Author: Eric Huang Date: Tue Nov 10 10:50:25 2015 -0500 drm/amd/amdgpu: add gfx clock gating support for Fiji. Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou Signed-off-by: Eric Huang drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 254 ++++++++++++++++++++++++++++++++++ 1 file changed, 254 insertions(+) commit 0104aa21a936f6360c7c8aaf2e2b6e18b4ff5dab Author: Alex Deucher Date: Fri Nov 13 10:46:30 2015 -0500 drm/amd/powerplay/tonga: Add UVD DPM init Load the UVD DPM state into the SMC. Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c | 56 +++++++++++++++++++++++ 1 file changed, 56 insertions(+) commit 62a03f6d58dafd3d25f527e75589d45ba4b3a537 Author: kbuild test robot Date: Thu Nov 12 12:58:34 2015 -0500 drm/amd/powerplay: fix boolreturn.cocci warnings drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/tonga_hwmgr.c:2653:9-10: WARNING: return of 0/1 in function 'is_pcie_gen2_supported' with return type bool drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/tonga_hwmgr.c:2645:9-10: WARNING: return of 0/1 in function 'is_pcie_gen3_supported' with return type bool Return statements in functions returning bool should use true/false instead of 1/0. Generated by: scripts/coccinelle/misc/boolreturn.cocci CC: yanyang1 Signed-off-by: Fengguang Wu Signed-off-by: Alex Deucher drivers/gpu/drm/amd/include/amd_pcie_helpers.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 464cea3e35080e80734316e94e052c9027bee780 Author: Alex Deucher Date: Wed Nov 11 21:02:16 2015 -0500 drm/amdgpu/powerplay/fiji: query supported pcie info from cgs (v2) Rather than hardcode it. v2: integrate spc fix from Rex Reviewed-by: Jammy Zhou Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) commit 834b694cc37890b8ac5437115994dac3a2f48725 Author: Alex Deucher Date: Wed Nov 11 20:58:55 2015 -0500 drm/amdgpu/powerplay/tonga: query supported pcie info from cgs (v2) Rather than hardcode it. v2: integrate spc fix from Rex Reviewed-by: Jammy Zhou Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) commit cfd316d59e203985699495147a973ba058ff5478 Author: Alex Deucher Date: Wed Nov 11 20:35:32 2015 -0500 drm/amdgpu/cgs: add sys info query for pcie gen and link width Needed by powerplay to properly handle pcie dpm switching. Reviewed-by: Jammy Zhou Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 6 ++++++ drivers/gpu/drm/amd/include/cgs_common.h | 2 ++ 2 files changed, 8 insertions(+) commit d0dd7f0cc345fc8757148004639e1993ba183bd6 Author: Alex Deucher Date: Wed Nov 11 19:45:06 2015 -0500 drm/amdgpu: store pcie gen mask and link width We'll need this later for pcie dpm. Reviewed-by: Jammy Zhou Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu.h | 4 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 78 ++++++++++++++++++++++++++++++ drivers/gpu/drm/amd/amdgpu/cik.c | 24 ++++----- drivers/gpu/drm/amd/amdgpu/vi.c | 13 ++--- 4 files changed, 99 insertions(+), 20 deletions(-) commit 60d8edd415e9da63599c7601707ca78ad74a927e Author: Alex Deucher Date: Wed Nov 11 23:14:39 2015 -0500 drm: add drm_pcie_get_max_link_width helper (v2) Add a helper to get the max link width of the port. Similar to the helper to get the max link speed. v2: fix typo in commit message Reviewed-by: Jammy Zhou Signed-off-by: Alex Deucher drivers/gpu/drm/drm_pci.c | 20 ++++++++++++++++++++ include/drm/drmP.h | 1 + 2 files changed, 21 insertions(+) commit 16881da6c0b9db5fca95b96b0f02720e94c92629 Author: Alex Deucher Date: Wed Nov 11 20:18:52 2015 -0500 drm/amdgpu: extract pcie helpers to common header These will be used by multiple powerplay drivers and other IP modules. Reviewed-by: Jammy Zhou Signed-off-by: Alex Deucher drivers/gpu/drm/amd/include/amd_pcie.h | 50 ++++++++ drivers/gpu/drm/amd/include/amd_pcie_helpers.h | 141 ++++++++++++++++++++++ drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.c | 1 + drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.h | 2 - drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c | 112 +---------------- drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.h | 24 ---- 6 files changed, 193 insertions(+), 137 deletions(-) commit 74c577b0313d4140ec8b61745c6ade3a4d735d33 Author: Alex Deucher Date: Wed Nov 11 00:31:00 2015 -0500 drm/amd/powerplay/fiji: enable pcie and mclk forcing for low When forcing the lowest state also force mclk and pcie. Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.c | 30 ++++++++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) commit 9fe1837d18c2b31f535ef18cd076b678d6a3e2d6 Author: Alex Deucher Date: Wed Nov 11 00:23:57 2015 -0500 drm/amd/powerplay/tonga: enable pcie and mclk forcing for low When forcing the lowest state also force mclk and pcie. Signed-off-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c | 48 +++++++++++++++++------ 1 file changed, 37 insertions(+), 11 deletions(-) commit f4caf3e584120e20f8ecabefa8a0d62fe9b3ec89 Author: Rex Zhu Date: Wed Nov 4 14:56:56 2015 +0800 drm/amd/powerplay: refine the logic of whether need to update power state. Better handle power state changes. Signed-off-by: Rex Zhu Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/powerplay/eventmgr/psm.c | 13 ++++++++++--- drivers/gpu/drm/amd/powerplay/eventmgr/psm.h | 1 + 2 files changed, 11 insertions(+), 3 deletions(-) commit e829ecdb15671d8c1a106f608aa419f7fd4d7366 Author: Rex Zhu Date: Wed Nov 4 11:21:35 2015 +0800 drm/amd/powerplay: implement new funcs to check current states for tonga. Implement the new callbacks for tonga. Signed-off-by: Rex Zhu Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c | 62 +++++++++++++++++++++++ 1 file changed, 62 insertions(+) commit 09b4c872fe16d5e396de8636f5810078014dbd3f Author: Rex Zhu Date: Wed Nov 4 11:07:34 2015 +0800 drm/amd/powerplay: add and export hwmgr interface to eventmgr to check hw states. Interface between hwmgr and eventmgr. Signed-off-by: Rex Zhu Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou .../gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c | 21 +++++++++++++++++++++ drivers/gpu/drm/amd/powerplay/inc/hardwaremanager.h | 8 ++++++++ drivers/gpu/drm/amd/powerplay/inc/hwmgr.h | 5 +++++ 3 files changed, 34 insertions(+) commit e61710c59dd205b48413762b2aedd46e86df3c45 Author: Jammy Zhou Date: Tue Nov 10 18:31:08 2015 -0500 drm/amdgpu: support per device powerplay enablement (v2) The amdgu_powerplay variable is global for multiple GPU instances. v2: fold in Flora's module option change, protect adev reference in macros Signed-off-by: Jammy Zhou Reviewed-by: Alex Deucher Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu.h | 71 ++++++++++++++------------- drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 4 +- drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 30 +++++------ drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c | 15 +++--- drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 4 +- drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 2 +- 6 files changed, 65 insertions(+), 61 deletions(-) commit 8804b8d5b05bbf5aea205e49fa4ed8240eb1728d Author: Rex Zhu Date: Tue Nov 10 18:29:11 2015 -0500 drm/amdgpu: enable sysfs interface for powerplay Same interface exposed in pre-powerplay dpm code. Signed-off-by: Rex Zhu Reviewed-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) commit 3af76f23a45b75441b8eac30aa5a7d957e699e73 Author: Rex Zhu Date: Thu Oct 15 17:23:43 2015 +0800 drm/amdgpu: export fan control functions to amdgpu Hook up the amdgpu thermal control callbacks for powerplay. Signed-off-by: Rex Zhu Reviewed-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu.h | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) commit cac9a1991922c12a9a24ae20d250221742aed692 Author: Rex Zhu Date: Fri Oct 16 11:48:21 2015 +0800 drm/amdgpu/powerplay: implement fan control interface in amd_powerplay_funcs This adds the interface needed to expose powerplay fan control to sysfs via hwmon. Signed-off-by: Rex Zhu Reviewed-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/powerplay/amd_powerplay.c | 85 ++++++++++++++++++++++- drivers/gpu/drm/amd/powerplay/inc/amd_powerplay.h | 4 ++ 2 files changed, 88 insertions(+), 1 deletion(-) commit 1e4854e96c356288a80a0dcd35aa8240df1156c3 Author: Rex Zhu Date: Tue Oct 20 18:06:23 2015 +0800 drm/amdgpu/powerplay: implement thermal control for tonga. Implement thermal and fan control for tonga. Signed-off-by: Rex Zhu Reviewed-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/Makefile | 2 +- drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c | 150 +++++- drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.h | 1 + .../gpu/drm/amd/powerplay/hwmgr/tonga_thermal.c | 587 +++++++++++++++++++++ .../gpu/drm/amd/powerplay/hwmgr/tonga_thermal.h | 60 +++ 5 files changed, 798 insertions(+), 2 deletions(-) commit 2dfea9cd1ffe3aacbf52a913257ab3adedfe1ac1 Author: Rex Zhu Date: Fri Oct 16 20:32:36 2015 +0800 drm/amdgpu/powerplay: enable thermal interrupt task in eventmgr. Add thermal handling to the event manager. Signed-off-by: Rex Zhu Reviewed-by: Jammy Zhou Reviewed-by: Alex Deucher .../gpu/drm/amd/powerplay/eventmgr/eventactionchains.c | 1 + drivers/gpu/drm/amd/powerplay/eventmgr/eventinit.c | 17 ++++++++++++++++- .../gpu/drm/amd/powerplay/eventmgr/eventsubchains.c | 10 ++++++++++ .../gpu/drm/amd/powerplay/eventmgr/eventsubchains.h | 3 ++- drivers/gpu/drm/amd/powerplay/eventmgr/eventtasks.c | 18 ++++++++++++++++-- drivers/gpu/drm/amd/powerplay/eventmgr/eventtasks.h | 3 +++ 6 files changed, 48 insertions(+), 4 deletions(-) commit fba4eef5847a1c9c8b49c039bc8aa6c9070d058e Author: Rex Zhu Date: Wed Oct 21 10:34:22 2015 +0800 drm/amdgpu/powerplay: add thermal control interface in hwmgr. Thermal controller interface. Signed-off-by: Rex Zhu Reviewed-by: Jammy Zhou Reviewed-by: Alex Deucher .../gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c | 29 ++++++++++++++++++++++ .../gpu/drm/amd/powerplay/inc/hardwaremanager.h | 16 ++++++++++++ drivers/gpu/drm/amd/powerplay/inc/power_state.h | 4 +-- 3 files changed, 47 insertions(+), 2 deletions(-) commit 251bb34fa44ef92dce1903e92af68f12a7f6d594 Author: Rex Zhu Date: Wed Oct 21 10:30:02 2015 +0800 drm/amdgpu/powerplay: mv ppinterrupt.h to inc folder to share with other submodule. Redefine interrupt callback function in accordance with cgs. Signed-off-by: Rex Zhu Reviewed-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/ppinterrupt.h | 42 --------------------- drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.h | 14 +++---- drivers/gpu/drm/amd/powerplay/inc/ppinterrupt.h | 46 +++++++++++++++++++++++ 3 files changed, 53 insertions(+), 49 deletions(-) commit c28eae26b54cb864310a4088ce4d999b66208b8c Author: Rex Zhu Date: Fri Oct 16 11:46:51 2015 +0800 drm/amdgpu/powerplay: add new function point in hwmgr_funcs for thermal control Add the interface for fan and thermal control. Signed-off-by: Rex Zhu Reviewed-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/powerplay/inc/hwmgr.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit 0859ed3db96c302f5d1b459e963737301a4080b2 Author: Rex Zhu Date: Thu Oct 15 21:12:58 2015 +0800 drm/amd/powerplay: Add CG and PG support for tonga Implement clock and power gating support for tonga. On Tonga this is handles by the SMU rather than direct register settings in the driver. Signed-off-by: Rex Zhu Reviewed-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/Makefile | 2 +- .../amd/powerplay/hwmgr/tonga_clockpowergating.c | 350 +++++++++++++++++++++ .../amd/powerplay/hwmgr/tonga_clockpowergating.h | 36 +++ drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c | 63 +++- drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.h | 4 + 5 files changed, 440 insertions(+), 15 deletions(-) commit b1132013ce4c8263e1692841223ff022cf8bf18f Author: Rex Zhu Date: Wed Sep 30 13:28:49 2015 +0800 drm/amd/powerplay: add new function point in hwmgr_func for CG/PG. Add callbacks interface for clock and powergating. Signed-off-by: Rex Zhu Reviewed-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/powerplay/inc/hwmgr.h | 3 +++ 1 file changed, 3 insertions(+) commit 3cec76f973af12c48edce1416193378532cc1bf3 Author: Rex Zhu Date: Fri Oct 9 18:43:28 2015 +0800 drm/amdgpu/powerplay: add some definition for other ip block to update cg pg. Interface for clock and power gating handling. Signed-off-by: Rex Zhu Reviewed-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/powerplay/inc/amd_powerplay.h | 41 +++++++++++++++++++++++ 1 file changed, 41 insertions(+) commit edb611c1e1e7647510185a3fcde5914f761afd75 Author: Rex Zhu Date: Tue Oct 20 11:05:45 2015 +0800 drm/amdgpu: enable powerplay module by default for fiji. Signed-off-by: Rex Zhu Reviewed-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c | 3 +++ 1 file changed, 3 insertions(+) commit 76c8cc6b3ba2186215322cf45d6547d66713bd7b Author: Rex Zhu Date: Sat Oct 17 17:57:58 2015 +0800 drm/amdgpu: enable powerplay module by default for tonga. Signed-off-by: Rex Zhu Reviewed-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit bbb207f3dadd68ef4bd1cd7a214fa1d6de80ec3a Author: Rex Zhu Date: Fri Oct 16 15:02:04 2015 +0800 drm/amdgpu/powerplay: program display gap for tonga. Implement displaygap programming for tonga. This is required for properly mclk switching. Signed-off-by: Rex Zhu Reviewed-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c | 91 +++++++++++++++++++++++ 1 file changed, 91 insertions(+) commit 2f4afc5733d41c7a8c666f76465008457371d453 Author: Rex Zhu Date: Fri Oct 16 14:59:17 2015 +0800 drm/amdgpu/powerplay: implement pem_task for display_configuration_change Add support for display configuration changes to the event manager. Signed-off-by: Rex Zhu Reviewed-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/powerplay/eventmgr/eventsubchains.c | 2 +- drivers/gpu/drm/amd/powerplay/eventmgr/eventtasks.c | 15 ++++++++++++--- drivers/gpu/drm/amd/powerplay/eventmgr/eventtasks.h | 2 +- drivers/gpu/drm/amd/powerplay/eventmgr/psm.c | 2 +- 4 files changed, 15 insertions(+), 6 deletions(-) commit 6f3bf7474ceaa6f799b1d0be5cd6becaebe3c4f9 Author: Rex Zhu Date: Fri Oct 16 14:55:03 2015 +0800 drm/amdgpu/poweprlay: export program display gap function to eventmgr This allows the eventmgr to properly update the displaygap on certain power events. Signed-off-by: Rex Zhu Reviewed-by: Jammy Zhou Reviewed-by: Alex Deucher .../gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c | 27 ++++++++++++++++++++++ .../gpu/drm/amd/powerplay/inc/hardwaremanager.h | 2 ++ 2 files changed, 29 insertions(+) commit e8c7de5bf6f69e7bf3bf2d2aac64daa97e51d36c Author: Rex Zhu Date: Fri Oct 16 14:51:09 2015 +0800 drm/amdgpu/powerplay: add function point in hwmgr_funcs for program display gap Displaygap support is required for proper mclk switching. Signed-off-by: Rex Zhu Reviewed-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/powerplay/inc/hwmgr.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 899fa4c04e3894007174f8fd49f86154440afc91 Author: Eric Huang Date: Tue Sep 29 14:58:53 2015 -0400 drm/amd/amdgpu: enable powerplay and smc firmware loading for Fiji. Switch over to handling in the powerplay module. Reviewed-by: Alex Deucher Signed-off-by: Eric Huang drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 3 +++ drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c | 3 +++ drivers/gpu/drm/amd/amdgpu/vi.c | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) commit 3a74f6f27328ff4b9784a6d16f2aafa62081d9c7 Author: Jammy Zhou Date: Tue Jul 21 14:01:50 2015 +0800 drm/amdgpu: add amdgpu.powerplay module option This option can be used to enable the new powerplay implementation, and it is disabled by default. Signed-off-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 5 +++++ 1 file changed, 5 insertions(+) commit aabcb7c11e3d9d8a5c28fb5b3aa60ec1cec58e64 Author: Eric Huang Date: Wed Aug 26 16:52:28 2015 -0400 drm/amd/powerplay: add Fiji DPM support. This enabled DPM support for Fiji. DPM is dynamic clock and voltage scaling. v2: rename fiji_hwmgr_early_init to fiji_hwmgr_init v3: (agd) fold in endian fix, additional function addition Reviewed-by: Alex Deucher Signed-off-by: Eric Huang drivers/gpu/drm/amd/powerplay/hwmgr/Makefile | 3 +- .../drm/amd/powerplay/hwmgr/fiji_dyn_defaults.h | 105 + drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.c | 4728 ++++++++++++++++++++ drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.h | 356 ++ .../gpu/drm/amd/powerplay/hwmgr/fiji_powertune.c | 553 +++ .../gpu/drm/amd/powerplay/hwmgr/fiji_powertune.h | 66 + drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c | 5 + 7 files changed, 5815 insertions(+), 1 deletion(-) commit 74785623db6889e6fffb5d2565a27fbeb9ddb390 Author: Eric Huang Date: Wed Aug 26 16:50:59 2015 -0400 drm/amd/powerplay: add Fiji SMU support. Add support for the SMU manager for Fiji. This handles the firmware loading for other IP blocks (GFX, SDMA, etc.). Reviewed-by: Alex Deucher Signed-off-by: Eric Huang drivers/gpu/drm/amd/powerplay/smumgr/Makefile | 2 +- drivers/gpu/drm/amd/powerplay/smumgr/fiji_smumgr.c | 1035 ++++++++++++++++++++ drivers/gpu/drm/amd/powerplay/smumgr/fiji_smumgr.h | 77 ++ drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c | 4 + 4 files changed, 1117 insertions(+), 1 deletion(-) commit 3ec2cdb85f87dba08a025f12030f419847fcbfd6 Author: Eric Huang Date: Mon Nov 9 17:35:45 2015 -0500 drm/amd/powerplay: update atomctrl for fiji Add some new functions to support Fiji. Split out from the previous patch. Reviewed-by: Jammy Zhou Signed-off-by: Eric Huang drivers/gpu/drm/amd/powerplay/hwmgr/ppatomctrl.c | 489 +++++++++++++++++++++- drivers/gpu/drm/amd/powerplay/hwmgr/ppatomctrl.h | 6 + drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c | 10 +- 3 files changed, 496 insertions(+), 9 deletions(-) commit 770911a3cfbb43b67b5ea3189b624e4fe2cb27c1 Author: Eric Huang Date: Mon Nov 9 17:34:31 2015 -0500 drm/amd/powerplay: add/update headers for Fiji SMU and DPM New headers for Fiji. Reviewed-by: Jammy Zhou Signed-off-by: Eric Huang drivers/gpu/drm/amd/amdgpu/fiji_ppsmc.h | 182 - drivers/gpu/drm/amd/include/atombios.h | 79 + drivers/gpu/drm/amd/powerplay/hwmgr/ppevvmath.h | 617 ++ drivers/gpu/drm/amd/powerplay/inc/fiji_ppsmc.h | 412 + drivers/gpu/drm/amd/powerplay/inc/fiji_pwrvirus.h | 10299 +++++++++++++++++++ drivers/gpu/drm/amd/powerplay/inc/smu73.h | 720 ++ drivers/gpu/drm/amd/powerplay/inc/smu73_discrete.h | 799 ++ 7 files changed, 12926 insertions(+), 182 deletions(-) commit c82baa28184356a75c0157129f88af42b2e7b695 Author: yanyang1 Date: Tue Aug 18 15:28:32 2015 +0800 drm/amd/powerplay: add Tonga dpm support (v3) This implements DPM for tonga. DPM handles dynamic clock and voltage scaling. v2: merge all the patches related with tonga dpm v3: merge dpm force level fix, cgs display fix, spelling fix Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou Signed-off-by: yanyang1 Signed-off-by: Rex Zhu Signed-off-by: Eric Huang drivers/gpu/drm/amd/powerplay/Makefile | 5 +- drivers/gpu/drm/amd/powerplay/hwmgr/Makefile | 4 +- drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c | 10 + drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr_ppt.h | 105 + drivers/gpu/drm/amd/powerplay/hwmgr/ppatomctrl.c | 704 +++ drivers/gpu/drm/amd/powerplay/hwmgr/ppatomctrl.h | 237 + drivers/gpu/drm/amd/powerplay/hwmgr/ppinterrupt.h | 42 + drivers/gpu/drm/amd/powerplay/hwmgr/pppcielanes.c | 64 + drivers/gpu/drm/amd/powerplay/hwmgr/pppcielanes.h | 31 + .../drm/amd/powerplay/hwmgr/tonga_dyn_defaults.h | 107 + drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c | 5714 ++++++++++++++++++++ drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.h | 427 ++ .../gpu/drm/amd/powerplay/hwmgr/tonga_powertune.h | 66 + .../gpu/drm/amd/powerplay/hwmgr/tonga_pptable.h | 406 ++ .../amd/powerplay/hwmgr/tonga_processpptables.c | 1129 ++++ .../amd/powerplay/hwmgr/tonga_processpptables.h | 35 + .../gpu/drm/amd/powerplay/inc/hardwaremanager.h | 18 +- drivers/gpu/drm/amd/powerplay/inc/hwmgr.h | 90 + drivers/gpu/drm/amd/powerplay/inc/pp_debug.h | 2 +- .../gpu/drm/amd/powerplay/inc/smu_ucode_xfer_vi.h | 100 + 20 files changed, 9284 insertions(+), 12 deletions(-) commit 1060029fae7c351351d7c2e9e345b6c57f515668 Author: Jammy Zhou Date: Wed Jul 22 11:29:58 2015 +0800 drm/amd/powerplay: Add Tonga SMU support The SMU manager handles firmware loading for other IP blocks (GFX, SDMA, etc.). This implements it for Tonga. v3: delete peci sub-module v2: use cgs interface directly Signed-off-by: Young Yang Signed-off-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/powerplay/inc/pp_debug.h | 40 + drivers/gpu/drm/amd/powerplay/smumgr/Makefile | 2 +- drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c | 9 +- .../gpu/drm/amd/powerplay/smumgr/tonga_smumgr.c | 819 +++++++++++++++++++++ .../gpu/drm/amd/powerplay/smumgr/tonga_smumgr.h | 53 ++ 5 files changed, 921 insertions(+), 2 deletions(-) commit 306d8db3e7b051814f4e022bb527391a1b425b47 Author: yanyang1 Date: Mon Aug 17 14:15:20 2015 +0800 drm/amd/powerplay: add header file for tonga smu and dpm These headers provide the SMU interface used by the driver. Reviewed-by: Alex Deucher Signed-off-by: yanyang1 drivers/gpu/drm/amd/amdgpu/tonga_ppsmc.h | 198 ------ drivers/gpu/drm/amd/powerplay/inc/smu72.h | 664 ++++++++++++++++++ drivers/gpu/drm/amd/powerplay/inc/smu72_discrete.h | 760 +++++++++++++++++++++ drivers/gpu/drm/amd/powerplay/inc/tonga_ppsmc.h | 420 ++++++++++++ 4 files changed, 1844 insertions(+), 198 deletions(-) commit 7ff1d70a40f468e20a6cae5311800cd18e680865 Author: yanyang1 Date: Wed Aug 19 12:22:34 2015 +0800 drm/amd/powerplay: Move smu7*.h from amdgpu to powerplay. Move smu7.h, smu7_discrete.h and smu7_fusion.h from amdgpu to powerplay. Reviewed-by: Alex Deucher Signed-off-by: yanyang1 drivers/gpu/drm/amd/amdgpu/smu7.h | 170 ------- drivers/gpu/drm/amd/amdgpu/smu7_discrete.h | 514 ---------------------- drivers/gpu/drm/amd/amdgpu/smu7_fusion.h | 300 ------------- drivers/gpu/drm/amd/powerplay/inc/smu7.h | 170 +++++++ drivers/gpu/drm/amd/powerplay/inc/smu7_discrete.h | 514 ++++++++++++++++++++++ drivers/gpu/drm/amd/powerplay/inc/smu7_fusion.h | 300 +++++++++++++ 6 files changed, 984 insertions(+), 984 deletions(-) commit 3a287055aed6634d57d57da1977f1df3c9206945 Author: yanyang1 Date: Mon Aug 17 14:15:20 2015 +0800 drm/amd/powerplay: Add ixSWRST_COMMAND_1 in bif_5_0_d.h Add ixSWRST_COMMAND_1 in bif_5_0_d.h. Required by new powerplay code for tonga and fiji. Reviewed-by: Alex Deucher Signed-off-by: yanyang1 drivers/gpu/drm/amd/include/asic_reg/bif/bif_5_0_d.h | 1 + 1 file changed, 1 insertion(+) commit 577bbe01832285f6f5128ae570246e086e37f9d0 Author: Rex Zhu Date: Fri Aug 28 12:56:43 2015 +0800 drm/amd/powerplay: implement functions of amd_powerplay_func This is the common interface for interacting with the powerplay module. v2: squash in fixes Signed-off-by: Rex Zhu Acked-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/powerplay/amd_powerplay.c | 191 ++++++++++++++++++++++++-- 1 file changed, 183 insertions(+), 8 deletions(-) commit e92a0370575ab985bcdc3ba1520bf946521d62f1 Author: Rex Zhu Date: Wed Sep 23 15:14:54 2015 +0800 drm/amd/powerplay: add event manager sub-component The event manager handles power related driver events. Signed-off-by: Rex Zhu Reviewed-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/powerplay/Makefile | 2 +- drivers/gpu/drm/amd/powerplay/amd_powerplay.c | 23 ++ drivers/gpu/drm/amd/powerplay/eventmgr/Makefile | 11 + .../drm/amd/powerplay/eventmgr/eventactionchains.c | 287 +++++++++++++++ .../drm/amd/powerplay/eventmgr/eventactionchains.h | 62 ++++ drivers/gpu/drm/amd/powerplay/eventmgr/eventinit.c | 180 +++++++++ drivers/gpu/drm/amd/powerplay/eventmgr/eventinit.h | 34 ++ .../drm/amd/powerplay/eventmgr/eventmanagement.c | 215 +++++++++++ .../drm/amd/powerplay/eventmgr/eventmanagement.h | 59 +++ drivers/gpu/drm/amd/powerplay/eventmgr/eventmgr.c | 114 ++++++ .../drm/amd/powerplay/eventmgr/eventsubchains.c | 395 ++++++++++++++++++++ .../drm/amd/powerplay/eventmgr/eventsubchains.h | 98 +++++ .../gpu/drm/amd/powerplay/eventmgr/eventtasks.c | 408 +++++++++++++++++++++ .../gpu/drm/amd/powerplay/eventmgr/eventtasks.h | 85 +++++ drivers/gpu/drm/amd/powerplay/eventmgr/psm.c | 111 ++++++ drivers/gpu/drm/amd/powerplay/eventmgr/psm.h | 37 ++ drivers/gpu/drm/amd/powerplay/inc/eventmanager.h | 109 ++++++ drivers/gpu/drm/amd/powerplay/inc/eventmgr.h | 125 +++++++ drivers/gpu/drm/amd/powerplay/inc/pp_feature.h | 67 ++++ drivers/gpu/drm/amd/powerplay/inc/pp_instance.h | 2 + 20 files changed, 2423 insertions(+), 1 deletion(-) commit 28a18bab2ed6e143a4671fec12ff3feeb0dc205e Author: Rex Zhu Date: Wed Sep 23 15:14:38 2015 +0800 drm/amd/powerplay: add CG and PG support for carrizo This adds clock and powergating support for CZ. v2: squash in fixes Signed-off-by: Rex Zhu Reviewed-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/Makefile | 3 +- .../drm/amd/powerplay/hwmgr/cz_clockpowergating.c | 252 ++++++++++ .../drm/amd/powerplay/hwmgr/cz_clockpowergating.h | 37 ++ drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c | 521 ++++++++++++++++++++- drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.h | 12 +- .../gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c | 89 +++- drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c | 10 + .../gpu/drm/amd/powerplay/inc/hardwaremanager.h | 53 ++- drivers/gpu/drm/amd/powerplay/inc/hwmgr.h | 46 +- drivers/gpu/drm/amd/powerplay/inc/pp_asicblocks.h | 47 ++ 10 files changed, 1058 insertions(+), 12 deletions(-) commit bdecc20a986bbe527cea0775f265d1927083410e Author: Jammy Zhou Date: Wed Jul 22 10:41:30 2015 +0800 drm/amd/powerplay: add Carrizo dpm support This patch enables basic DPM support for Carrizo. DPM handles dynamic clock and voltage scaling. v3: delete peci sub-module v2: use cgs interface directly correct define SMU_EnabledFeatureScoreboard_SclkDpmOn Signed-off-by: Rex Zhu Signed-off-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/powerplay/hwmgr/Makefile | 2 +- drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c | 898 +++++++++++++++++++++++++ drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.h | 309 +++++++++ drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c | 6 +- 4 files changed, 1212 insertions(+), 3 deletions(-) commit 4630f0faae80fd2252cc85accdbc8353b0444dd9 Author: Jammy Zhou Date: Wed Jul 22 09:54:16 2015 +0800 drm/amd/powerplay: add Carrizo smu support This implements the SMU firmware manager interface for CZ. Some header files are moved from amdgpu folder to powerplay as well. v3: delete peci sub-module. v2: use cgs interface directly add load_mec_firmware function Signed-off-by: Rex Zhu Signed-off-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/cz_ppsmc.h | 185 ----- drivers/gpu/drm/amd/amdgpu/smu8.h | 72 -- drivers/gpu/drm/amd/amdgpu/smu8_fusion.h | 127 --- drivers/gpu/drm/amd/amdgpu/smu_ucode_xfer_cz.h | 147 ---- drivers/gpu/drm/amd/powerplay/inc/cz_ppsmc.h | 185 +++++ drivers/gpu/drm/amd/powerplay/inc/smu8.h | 72 ++ drivers/gpu/drm/amd/powerplay/inc/smu8_fusion.h | 127 +++ .../gpu/drm/amd/powerplay/inc/smu_ucode_xfer_cz.h | 147 ++++ drivers/gpu/drm/amd/powerplay/smumgr/Makefile | 2 +- drivers/gpu/drm/amd/powerplay/smumgr/cz_smumgr.c | 858 +++++++++++++++++++++ drivers/gpu/drm/amd/powerplay/smumgr/cz_smumgr.h | 102 +++ drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c | 3 +- 12 files changed, 1494 insertions(+), 533 deletions(-) commit 3bace359149391c6547cefe3bf729f365bcf3ef6 Author: Jammy Zhou Date: Tue Jul 21 21:18:15 2015 +0800 drm/amd/powerplay: add hardware manager sub-component The hwmgr handles all hardware related calls, including clock/power gating control, DPM, read and parse PPTable, etc. v5: squash in fixes v4: implement acpi's atcs function use cgs interface v3: fix code style error and add big-endian mode support. v2: use cgs interface directly in hwmgr sub-module Signed-off-by: Rex Zhu Signed-off-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/powerplay/Makefile | 2 +- drivers/gpu/drm/amd/powerplay/amd_powerplay.c | 55 +- drivers/gpu/drm/amd/powerplay/hwmgr/Makefile | 10 + .../gpu/drm/amd/powerplay/hwmgr/functiontables.c | 154 ++ .../gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c | 84 + drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c | 201 +++ drivers/gpu/drm/amd/powerplay/hwmgr/pp_acpi.c | 76 + .../gpu/drm/amd/powerplay/hwmgr/processpptables.c | 1661 ++++++++++++++++++++ .../gpu/drm/amd/powerplay/hwmgr/processpptables.h | 47 + drivers/gpu/drm/amd/powerplay/inc/amd_powerplay.h | 1 - .../gpu/drm/amd/powerplay/inc/hardwaremanager.h | 280 ++++ drivers/gpu/drm/amd/powerplay/inc/hwmgr.h | 607 +++++++ drivers/gpu/drm/amd/powerplay/inc/power_state.h | 200 +++ drivers/gpu/drm/amd/powerplay/inc/pp_acpi.h | 28 + drivers/gpu/drm/amd/powerplay/inc/pp_instance.h | 3 +- .../gpu/drm/amd/powerplay/inc/pp_power_source.h | 36 + 16 files changed, 3439 insertions(+), 6 deletions(-) commit ac885b3a20e60f568fe856008d038d7bd01394e2 Author: Jammy Zhou Date: Tue Jul 21 17:43:02 2015 +0800 drm/amd/powerplay: add SMU manager sub-component The SMUMGR is one sub-component of powerplay for SMU firmware support. The SMU handles firmware loading for other IP blocks (GFX, SDMA, etc.) on VI parts. The adds the core powerplay infrastructure to handle that. v3: direct use printk in powerplay module. v2: direct use cgs_read/write_register functions in smu-modules Signed-off-by: Rex Zhu Signed-off-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/powerplay/Makefile | 4 + drivers/gpu/drm/amd/powerplay/amd_powerplay.c | 81 ++++++++ drivers/gpu/drm/amd/powerplay/inc/pp_instance.h | 33 ++++ drivers/gpu/drm/amd/powerplay/inc/smumgr.h | 182 +++++++++++++++++ drivers/gpu/drm/amd/powerplay/smumgr/Makefile | 9 + drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c | 251 ++++++++++++++++++++++++ 6 files changed, 560 insertions(+) commit 1b5708ffb1032a2f24b4224320753532303c1ae4 Author: Rex Zhu Date: Tue Nov 10 18:25:24 2015 -0500 drm/amdgpu: export amd_powerplay_func to amdgpu and other ip block Update amdgpu to deal with the new powerplay module properly. v2: squash in fixes v3: squash in Rex's power state reporting fix Signed-off-by: Rex Zhu Acked-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu.h | 46 ++++++- drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 215 +++++++++++++++++++++------------ 2 files changed, 180 insertions(+), 81 deletions(-) commit ba5c2a87b0c614013296901205ed693007964a59 Author: Rex Zhu Date: Fri Nov 6 20:33:24 2015 -0500 drm/amdgpu: disable legacy path of firmware check if powerplay is enabled Powerplay will use a different interface once it's integrated. These legacy pathes will be removed once powerplay is enabled by default. Signed-off-by: Rex Zhu Signed-off-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 80 ++++++++++++++++++---------------- drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 24 +++++----- 2 files changed, 55 insertions(+), 49 deletions(-) commit 1f7371b2a5faf139465f0af386cccbb54b832534 Author: Alex Deucher Date: Wed Dec 2 17:46:21 2015 -0500 drm/amd/powerplay: add basic powerplay framework amdgpu_pp_ip_funcs is introduced to handle the two code paths, the legacy one and the new powerplay implementation. CONFIG_DRM_AMD_POWERPLAY kernel configuration option is introduced for the powerplay component. v4: squash in fixes v3: register debugfs file when powerplay module enable v2: add amdgpu_ucode_init_bo in hw init when amdgpu_powerplay enable. Signed-off-by: Rex Zhu Signed-off-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/Kconfig | 1 + drivers/gpu/drm/amd/amdgpu/Makefile | 12 +- drivers/gpu/drm/amd/amdgpu/amdgpu.h | 5 + drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c | 280 ++++++++++++++++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.h | 33 +++ drivers/gpu/drm/amd/amdgpu/cik.c | 11 +- drivers/gpu/drm/amd/amdgpu/vi.c | 7 +- drivers/gpu/drm/amd/powerplay/Kconfig | 6 + drivers/gpu/drm/amd/powerplay/Makefile | 15 ++ drivers/gpu/drm/amd/powerplay/amd_powerplay.c | 194 +++++++++++++++ drivers/gpu/drm/amd/powerplay/inc/amd_powerplay.h | 162 +++++++++++++ 12 files changed, 718 insertions(+), 9 deletions(-) commit 47bf18b5b257d5a385b7d447a29f97301f5b2282 Author: Rex Zhu Date: Thu Sep 17 16:34:14 2015 +0800 drm/amdgpu: add new cgs interface to get display info (v2) Add new CGS interfaces to query display info across modules. This is nedded by the powerplay module for synchronizing with the display module. v2: (agd): fold in refresh rate fix, rebase Signed-off-by: Rex Zhu Reviewed-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 40 ++++++++++++++++++++++++++++++++ drivers/gpu/drm/amd/include/cgs_common.h | 20 ++++++++++++++++ 2 files changed, 60 insertions(+) commit 5e6186991a75ea192d7dd88b9d3f7e166eaae801 Author: Rex Zhu Date: Wed Sep 23 20:11:54 2015 +0800 drm/amdgpu: implement cgs interface to query system info Add a query to get the bus number and function of the device. Signed-off-by: Rex Zhu Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 23 +++++++++++++++++++++++ drivers/gpu/drm/amd/include/cgs_common.h | 23 +++++++++++++++++++++++ 2 files changed, 46 insertions(+) commit 3f1d35a03b3cc7e0fb85c92f4ac6eafd1780d5dc Author: Rex Zhu Date: Tue Sep 15 14:44:44 2015 +0800 drm/amdgpu: implement new cgs interface for acpi function Add a new driver internal interface for accessing ACPI methods. These will be used by various new components including powerplay. Signed-off-by: Rex Zhu Reviewed-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 220 ++++++++++++++++++++++++++++++- drivers/gpu/drm/amd/include/cgs_common.h | 45 ++++++- 2 files changed, 262 insertions(+), 3 deletions(-) commit 66dc0ddd02a1fdc6678e0b3ffcb257630462afaa Author: Rex Zhu Date: Fri Sep 18 16:35:17 2015 +0800 drm/amdgpu: mv amdgpu_acpi.h to amd/include/amd_acpi.h This will be shared with the new powerplay module. Signed-off-by: Rex Zhu Reviewed-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.h | 494 ----------------------- drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c | 2 +- drivers/gpu/drm/amd/include/amd_acpi.h | 494 +++++++++++++++++++++++ 4 files changed, 496 insertions(+), 496 deletions(-) commit 7e85be994828b15014e4748e4b5eca015be6adce Author: Rex Zhu Date: Mon Sep 21 14:29:10 2015 +0800 drm/amdgpu: mv some definition from amdgpu_acpi.c to amdgpu_acpi.h These will be shared with the new powerplay module. Signed-off-by: Rex Zhu Reviewed-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 56 ------------------------------- drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.h | 57 +++++++++++++++++++++++++++++--- 2 files changed, 53 insertions(+), 60 deletions(-) commit 3a2c788d95a24dc4cf720ddd19c1b115a03f41bf Author: Rex Zhu Date: Tue Aug 25 15:57:43 2015 +0800 drm/amdgpu: share struct amdgpu_pm_state_type with powerplay module rename amdgpu_pm_state_type to amd_pm_state_type Signed-off-by: Rex Zhu Acked-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu.h | 28 ++-------------------------- drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 8 ++++---- drivers/gpu/drm/amd/include/amd_shared.h | 21 +++++++++++++++++++++ 3 files changed, 27 insertions(+), 30 deletions(-) commit 0eb1c3d4084eeb6fb3a703f88d6ce1521f8fcdd1 Author: Alex Deucher Date: Thu Dec 17 12:52:17 2015 -0500 drm/radeon: clean up fujitsu quirks Combine the two quirks. bug: https://bugzilla.kernel.org/show_bug.cgi?id=109481 Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/radeon_atombios.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) commit 005ae95e6ec119c64e2d16eb65a94c49e1dcf9f0 Author: Felix Kuehling Date: Mon Nov 23 17:43:48 2015 -0500 drm/amdgpu: Fix off-by-one errors in amdgpu_vm_bo_map eaddr is sometimes treated as the last address inside the address range, and sometimes as the first address outside the range. This was resulting in errors when a test filled up the entire address space. Make it consistent to always be the last address within the range. Signed-off-by: Felix.Kuehling Reviewed-by: Christian König Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 42ef344c0994cc453477afdc7a8eadc578ed0257 Author: Felix Kuehling Date: Mon Nov 23 17:39:11 2015 -0500 drm/radeon: Fix off-by-one errors in radeon_vm_bo_set_addr eoffset is sometimes treated as the last address inside the address range, and sometimes as the first address outside the range. This was resulting in errors when a test filled up the entire address space. Make it consistent to always be the last address within the range. Also fixed related errors when checking the VA limit and in radeon_vm_fence_pts. Signed-off-by: Felix.Kuehling Reviewed-by: Christian König Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/radeon_vm.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 092c96a8ab9d1bd60ada2ed385cc364ce084180e Author: Alex Deucher Date: Thu Dec 17 10:23:34 2015 -0500 drm/radeon: fix dp link rate selection (v2) Need to properly handle the max link rate in the dpcd. This prevents some cases where 5.4 Ghz is selected when it shouldn't be. v2: simplify logic, add array bounds check Reviewed-by: Tom St Denis Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/atombios_dp.c | 108 +++++++++++---------------------- drivers/gpu/drm/radeon/radeon_dp_mst.c | 12 +++- drivers/gpu/drm/radeon/radeon_mode.h | 6 +- 3 files changed, 49 insertions(+), 77 deletions(-) commit 41869c1c7fe583dec932eb3d87de2e010b30a737 Author: Alex Deucher Date: Thu Dec 17 09:57:49 2015 -0500 drm/amdgpu: fix dp link rate selection (v2) Need to properly handle the max link rate in the dpcd. This prevents some cases where 5.4 Ghz is selected when it shouldn't be. v2: simplify logic, add array bounds check Reviewed-by: Tom St Denis Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/atombios_dp.c | 96 ++++++++++++-------------------- 1 file changed, 36 insertions(+), 60 deletions(-) commit 699f685569434510d944e419f4048c4e3ba8d631 Author: Dmitry Torokhov Date: Mon Dec 14 17:34:08 2015 -0800 android: unconditionally remove callbacks in sync_fence_free() Using fence->status to determine whether or not there are callbacks remaining on the sync_fence is racy since fence->status may have been decremented to 0 on another CPU before fence_check_cb_func() has completed. By unconditionally calling fence_remove_callback() for each fence in the sync_fence, we guarantee that each callback has either completed (since fence_remove_callback() grabs the fence lock) or been removed. Signed-off-by: Andrew Bresticker Signed-off-by: Dmitry Torokhov Signed-off-by: Greg Kroah-Hartman drivers/staging/android/sync.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 0f477c6dea709465550aa0922fd0c5b686e6e8eb Author: Maarten Lankhorst Date: Fri Dec 11 13:11:50 2015 +0000 staging/android/sync: add sync_fence_create_dma This allows users of dma fences to create a android fence. v2: Added kerneldoc. (Tvrtko Ursulin). v4: Updated comments from review feedback my Maarten. Signed-off-by: Maarten Lankhorst Signed-off-by: Tvrtko Ursulin Cc: Maarten Lankhorst Cc: Daniel Vetter Cc: devel@driverdev.osuosl.org Cc: Riley Andrews Cc: Arve Hjønnevåg Reviewed-by: Jesse Barnes Tested-by: Jesse Barnes Signed-off-by: Greg Kroah-Hartman drivers/staging/android/sync.c | 13 +++++++++---- drivers/staging/android/sync.h | 10 ++++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) commit 73465f1c08258637dc8c49c2c8d1a1233d9861c7 Author: Maarten Lankhorst Date: Fri Dec 11 13:11:49 2015 +0000 staging/android/sync: Support sync points created from dma-fences Debug output assumes all sync points are built on top of Android sync points and when we start creating them from dma-fences will NULL ptr deref unless taught about this. v4: Corrected patch ownership. Signed-off-by: Maarten Lankhorst Signed-off-by: Tvrtko Ursulin Cc: Maarten Lankhorst Cc: devel@driverdev.osuosl.org Cc: Riley Andrews Cc: Arve Hjønnevåg Reviewed-by: Jesse Barnes Signed-off-by: Greg Kroah-Hartman drivers/staging/android/sync_debug.c | 42 +++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 20 deletions(-) commit a2df4e33d71ff819c9afcdf34392030cee349f47 Author: Wenwei Tao Date: Wed Dec 9 00:15:52 2015 +0800 staging: android: ashmem.c: destroy slabs when init fails when ashmem init fails, destroy the slabs, leave no garbage. Signed-off-by: Wenwei Tao Signed-off-by: Greg Kroah-Hartman drivers/staging/android/ashmem.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit 59dfafd03fc67d38307d2ba30bbfdd1224b8a75d Author: Chen Feng Date: Mon Oct 12 15:00:17 2015 +0800 arm64: dts: Add dts files to enable ION on Hi6220 SoC. Add ION node to enable ION on hi6220 SoC platform Signed-off-by: Chen Feng Signed-off-by: Yu Dongbin Signed-off-by: Greg Kroah-Hartman arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts | 1 + arch/arm64/boot/dts/hisilicon/hi6220-ion.dtsi | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) commit 2b40182a19bc238465688fb989fb33b99e953121 Author: Chen Feng Date: Mon Oct 12 15:00:16 2015 +0800 staging: android: ion: Add ion driver for Hi6220 SoC platform Add ion support for hi6220 SoC platform. Signed-off-by: Chen Feng Signed-off-by: Yu Dongbin Signed-off-by: Greg Kroah-Hartman drivers/staging/android/ion/Kconfig | 7 + drivers/staging/android/ion/Makefile | 1 + drivers/staging/android/ion/hisilicon/Kconfig | 5 + drivers/staging/android/ion/hisilicon/Makefile | 1 + drivers/staging/android/ion/hisilicon/hi6220_ion.c | 223 +++++++++++++++++++++ 5 files changed, 237 insertions(+) commit d9c0e6c10dfed44bb35d6db4293b18af51e752ac Author: Chen Feng Date: Mon Oct 12 15:00:15 2015 +0800 docs: dts: Add documentation for hi6220 SoC ION node Documentation for hi6220 SoC ION node Signed-off-by: Chen Feng Signed-off-by: Yu Dongbin Signed-off-by: Greg Kroah-Hartman .../devicetree/bindings/staging/ion/hi6220-ion.txt | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) commit b9884d3b79f60846cdf04be262d13bca8996f99a Author: Andrew F. Davis Date: Thu Dec 17 08:47:02 2015 -0700 coresight: Fix a typo in Kconfig Signed-off-by: Andrew F. Davis Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman drivers/hwtracing/coresight/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fadf3a44e974b030e7145218ad1ab25e3ef91738 Author: Mathieu Poirier Date: Thu Dec 17 08:47:02 2015 -0700 coresight: checking for NULL string in coresight_name_match() Connection child names associated to ports can sometimes be NULL, which is the case when booting a system on QEMU or when the Coresight power domain isn't switched on. This patch is adding a check to make sure a NULL string isn't fed to strcmp(), something that avoid crashing the system. Cc: # v3.18+ Reported-by: Tyler Baker Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman drivers/hwtracing/coresight/coresight.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 608b0515b75292a3f890356f976849050c519d6a Author: Glen Lee Date: Mon Dec 21 14:18:50 2015 +0900 staging: wilc1000: bug fix on memory free Set tx_buffer to NULL not to free again the memory that is already freed, which could cause system crash when device is failed. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 1 + 1 file changed, 1 insertion(+) commit 03efae328ddcda7826a3bedb2ac15eb9598eabb4 Author: Glen Lee Date: Mon Dec 21 14:18:49 2015 +0900 staging: wilc1000: set hif_drv before it is used We are using hif_drv of vif, so it needs to be set before it is used. Set hif_drv to vif->hifdrv soon after it is allocated. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 6 ++++++ drivers/staging/wilc1000/linux_wlan.c | 1 - 2 files changed, 6 insertions(+), 1 deletion(-) commit cd2920a50c3a484d67745f15fc9c99c3fd96ac6f Author: Glen Lee Date: Mon Dec 21 14:18:48 2015 +0900 staging: wilc1000: remove wilc of struct host_if_drv vif has wilc in it's members so no need to have wilc in host_if_drv. It is redundant so just remove it and use wilc of vif. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 100 ++++++++++++------------------ drivers/staging/wilc1000/host_interface.h | 1 - 2 files changed, 41 insertions(+), 60 deletions(-) commit b13584a899bf07f3ef693f8ebd1774d57f88906e Author: Glen Lee Date: Mon Dec 21 14:18:47 2015 +0900 staging: wilc1000: remove drv of struct host_if_msg This patch remove drv of struct host_if msg and it's related codes. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 50 ++----------------------------- 1 file changed, 3 insertions(+), 47 deletions(-) commit e79dcf7eaac60aad96df102f01340a161a7e9f39 Author: Glen Lee Date: Mon Dec 21 14:18:46 2015 +0900 staging: wilc1000: remove used functions This patch remove unused functions add_handler_in_list and remove_handler_in_list, and it's related global variable wfidrv_list and codes. label fail_timer_2 and it's codes are removed since label is not used anymore. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 44 ------------------------------- 1 file changed, 44 deletions(-) commit 7036c6244d0d26fd603cff81f07faa30c5f97022 Author: Glen Lee Date: Mon Dec 21 14:18:45 2015 +0900 staging: wilc1000: change join_req_drv type and it's name To use wilc_get_vif_idx instead of the last get_id_from_handler, join_req_drv needs to be changed it's type with wilc_vif and name as well. As a result, get_id_from_handler is not used anymore, so remove it. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 33 +++++++++---------------------- 1 file changed, 9 insertions(+), 24 deletions(-) commit 31f0f697dddd739a0581ca373d53b648ba50c00b Author: Glen Lee Date: Mon Dec 21 14:18:44 2015 +0900 staging: wilc1000: wilc_set_wfi_drv_handler: pass vif index Pass index of vif instead of hif_drv. wilc_get_vif_idx is used to get correct index of vif. In the handler function handle_set_wfi_drv_handler, use vif instead of hif_drv, and use hif_drv_handler->handler instead of hif_drv when deinitialize wilc device. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 14 ++++++-------- drivers/staging/wilc1000/host_interface.h | 3 ++- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 12 +++++++----- 3 files changed, 15 insertions(+), 14 deletions(-) commit eb9939b76007ab6dfa14f6664e6cf4deda9c56cd Author: Glen Lee Date: Mon Dec 21 14:18:43 2015 +0900 staging: wilc1000: use vif index to communicate with wilc device We now have vif index in all functions related with host interface thread. wilc_get_vif_idx and wilc_get_vif_from_idx are added to get id and vif respectively. Relace get_id_from_handler with wilc_get_vif_idx and get_handler_from_id with wilc_get_vif_from_idx. Remove unused function get_handler_from_id as well. We get vif where wilc_get_vif_from_idx is called, so pass vif to msg.vif. There are two get_id_from_handler left. They will be removed in later patch. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 127 +++++++++++++++++++----------- 1 file changed, 81 insertions(+), 46 deletions(-) commit cd04d221dd6c9ceb5732d2c22c9e3bb7f8830a6a Author: Glen Lee Date: Mon Dec 21 14:18:42 2015 +0900 staging: wilc1000: pass struct wilc Pass struct wilc to the following functions. The functions need wilc to get proper vif using id from wilc device. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.h | 11 ++++++----- drivers/staging/wilc1000/host_interface.c | 9 ++++++--- drivers/staging/wilc1000/wilc_wlan.c | 2 +- drivers/staging/wilc1000/wilc_wlan_cfg.c | 9 +++++---- drivers/staging/wilc1000/wilc_wlan_cfg.h | 4 +++- 5 files changed, 21 insertions(+), 14 deletions(-) commit 71130e812af74afbf22b4308c517c8b6f3adacf2 Author: Glen Lee Date: Mon Dec 21 14:18:41 2015 +0900 staging: wilc1000: take vif instead of drv in hostIFthread In the first patch, we sent vif to hostIFthread. we can use vif instead of drv in the all functions which handle the commands from cfg operations. Change first argument host_if_drv with wilc_vif and use hif_drv of wilc_vif. Pass vif to the functions as well. In case of timer callback functions, set vif to the data and use vif instead of hif_drv. Lastly, initialize u32RcvdAssocRespInfoLen since changing hif_drv with vif causes one uninitialied build warning. Now we have vif that currently being used so we can use interface index of wilc_vif to send to wilc device. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 238 +++++++++++++++++------------- 1 file changed, 135 insertions(+), 103 deletions(-) commit fbf5379bfc2511acadb90e672badb827667a8ec8 Author: Glen Lee Date: Mon Dec 21 14:18:40 2015 +0900 staging: wilc1000: remove argument hif_drv In previous patch we add new argument vif which has hif_drv in it's member. Therefore, no need to pass hif_drv in those functions. Remove argument struct host_if_drv and use hif_drv of vif. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 177 ++++++++--------- drivers/staging/wilc1000/host_interface.h | 127 +++++------- drivers/staging/wilc1000/linux_wlan.c | 20 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 223 +++++++++++----------- 4 files changed, 265 insertions(+), 282 deletions(-) commit cf60106bfc2fa17d6f1346991e74af92b8f53055 Author: Glen Lee Date: Mon Dec 21 14:18:39 2015 +0900 staging: wilc1000: pass vif to hostIFthread We will pass vif, which is currently being used as net_device, instead of hif_dev. This is the first step to use index of vif to pass to the driver. Add new argument vif to all the functions that send message to hostIFthread and set vif to msg.vif. As a result, hostIfthread will get vif. In later patch, we will remove drv of host_if_msg and use vif instead of it. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 234 ++++++++++++++-------- drivers/staging/wilc1000/host_interface.h | 165 +++++++-------- drivers/staging/wilc1000/linux_wlan.c | 22 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 166 ++++++++------- 4 files changed, 341 insertions(+), 246 deletions(-) commit 1006b5c71cbd8f4f89a67a6b4c4648aa9154199b Author: Glen Lee Date: Mon Dec 21 14:18:38 2015 +0900 staging: wilc1000: remove duplicate netdev There are two net_device pointer which is the same because two structures are merged into wilc_vif in previous patch. Remove wilc_netdev and change with ndev. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 35 +++++++++++------------ drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 4 +-- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 1 - 3 files changed, 19 insertions(+), 21 deletions(-) commit 1f435d2ef4cdb9c451f768d6c2e827351a55c64b Author: Glen Lee Date: Mon Dec 21 14:18:37 2015 +0900 staging: wilc1000: change vif to pointer to refence real private data vif of struct has it's own memory which is not necessary because we have allocated vif from netdev_priv. Change vif to pointer type and assign vif which is netdev private data. Change it's operator on related codes as well. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 65 ++++++++++---------- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 72 +++++++++++------------ drivers/staging/wilc1000/wilc_wfi_netdevice.h | 2 +- 3 files changed, 70 insertions(+), 69 deletions(-) commit a4cac4810104b010572ebcb7de419effef3ff33b Author: Glen Lee Date: Mon Dec 21 14:18:36 2015 +0900 staging: wilc1000: move perInterface_wlan_t to wilc_vif perInterface_wlan_t and wilc_vif are all about interface control informations. We will combine those two structures and maintain as one network interface control information. Move all the members of perInterface_wlan_t to wilc_vif and remove the structure. Rename perInterace_wlan_t to wilc_vif and rename variable name nic to vif which is proper name for it. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 6 +- drivers/staging/wilc1000/linux_wlan.c | 251 +++++++++++----------- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 148 ++++++------- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 21 +- drivers/staging/wilc1000/wilc_wlan.c | 60 +++--- 5 files changed, 241 insertions(+), 245 deletions(-) commit 320edd03fb7549f3908b37b1c91dae32f5132305 Author: Glen Lee Date: Mon Dec 21 14:18:35 2015 +0900 staging: wilc1000: remove unneeded extern variable This patch removes unnedded extern variable WILC_WFI_devs[] which is not used. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_netdevice.h | 1 - 1 file changed, 1 deletion(-) commit 523fc23f1179606492aa8f0252ef7f631f27346f Author: Glen Lee Date: Mon Dec 21 14:18:34 2015 +0900 staging: wilc1000: remove unused files This patch removes linux_wlan_spi.[ch] which are not used anymore. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/Makefile | 2 +- drivers/staging/wilc1000/linux_wlan_spi.c | 16 ---------------- drivers/staging/wilc1000/linux_wlan_spi.h | 6 ------ 3 files changed, 1 insertion(+), 23 deletions(-) commit 43a7622935c72a6724d62d7fb5da35fbe7328f0e Author: Glen Lee Date: Mon Dec 21 14:18:33 2015 +0900 staging: wilc1000: linux_wlan_spi.c: move all the codes to wilc_spi.c This patch moves all the codes in linux_wlan_spi.c to wilc_spi.c to make one spi module. Make wilc_spi_tx, wilc_spi_rx and wilc_spi_tx_rx static functions. Remove function declaration in linux_wlan_spi.h, which is unnedded now. No modification has been made inside the codes. linux_wlan_spi.[ch] will be remove in the next patch. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan_spi.c | 165 --------------------------- drivers/staging/wilc1000/linux_wlan_spi.h | 4 - drivers/staging/wilc1000/wilc_spi.c | 180 +++++++++++++++++++++++++++++- 3 files changed, 178 insertions(+), 171 deletions(-) commit 2769d9422e631559bc672dda9cdb7a5916db4527 Author: Glen Lee Date: Mon Dec 21 14:18:32 2015 +0900 staging: wilc1000: remove unneeded function wilc_spi_init in linux_wlan_spi.c is unneeded. It just return true. Rename _wilc_spi_init in wlan_spi.c to wilc_spi_init. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan_spi.c | 5 ----- drivers/staging/wilc1000/linux_wlan_spi.h | 1 - drivers/staging/wilc1000/wilc_spi.c | 11 ++--------- 3 files changed, 2 insertions(+), 15 deletions(-) commit d4312b6fc8522d21832dbd1fa3f1dfb843e5b568 Author: Glen Lee Date: Mon Dec 21 14:18:31 2015 +0900 staging: wilc1000: rename spi function names There are several similar function names, such as wilc_spi_write and _wilc_spi_write. It is likely to be confused after merging linux_wlan_spi.c and wilc_spi.c, so rename following functions properly. Rename wilc_spi_write to wilc_spi_tx, wilc_spi_read to wilc_spi_rx, wilc_spi_write_read to wilc_spi_tx_rx, _wilc_spi_write to wilc_spi_write, _wilc_spi_read to wilc_spi_read. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan_spi.c | 6 +++--- drivers/staging/wilc1000/linux_wlan_spi.h | 6 +++--- drivers/staging/wilc1000/wilc_spi.c | 34 +++++++++++++++---------------- 3 files changed, 23 insertions(+), 23 deletions(-) commit 895e5eafadb339030a7a039cb29e4f116a87cc22 Author: Glen Lee Date: Mon Dec 21 14:18:30 2015 +0900 staging: wilc1000: remove unused files This patch removes linux_wlan_sdio.[ch] which is not used anymore. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/Makefile | 2 +- drivers/staging/wilc1000/linux_wlan_sdio.c | 10 ---------- drivers/staging/wilc1000/linux_wlan_sdio.h | 1 - 3 files changed, 1 insertion(+), 12 deletions(-) commit 35a4569e72eec439a2d7e6c860ed42c518aa8f76 Author: Glen Lee Date: Mon Dec 21 14:18:29 2015 +0900 staging: wilc1000: linux_wlan_sdio.c: move all the codes to wilc_sdio.c To Combine linux_wlan_sdio.c and wilc_sdio.c as one file, move all the codes in linux_wlan_sdio.c to wilc_sdio.c, and make functions static only. No Modification has not been made except static, just moved them. Function declaration in linux_wlan_sdio.h is needless, so just remove them. linux_wlan_sdio.[ch] will be deleted in the next patch. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan_sdio.c | 160 ---------------------------- drivers/staging/wilc1000/linux_wlan_sdio.h | 7 -- drivers/staging/wilc1000/wilc_sdio.c | 164 ++++++++++++++++++++++++++++- 3 files changed, 163 insertions(+), 168 deletions(-) commit 51d002931b170ea6f056a4c12ae0a9f7233202e5 Author: Glen Lee Date: Mon Dec 21 14:18:28 2015 +0900 staging: wilc1000: linux_sdio_probe: use return value Return ret from wilc_netdev_init instead of -1 for proper error handling. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan_sdio.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 0f34e924f6cfb0730fc33d9b58a5d91c88239792 Author: Glen Lee Date: Mon Dec 21 14:18:27 2015 +0900 staging: wilc1000: linux_wlan_spi.c: return linux error value return linux error value instead of 0 or 1 and use -EINVAL. Related codes also changed together. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan_spi.c | 14 +++----------- drivers/staging/wilc1000/wilc_spi.c | 18 +++++++++--------- 2 files changed, 12 insertions(+), 20 deletions(-) commit 6d04d7a0d9b63dfb8942eb5e0855b9be40bc5893 Author: Leo Kim Date: Mon Dec 21 14:18:26 2015 +0900 staging: wilc1000: wilc_deinit(): fixes inconsistent returns This patch fixes the warning reported by smatch. - wilc_deinit() warn: inconsistent returns 'sem:&hif_drv->sem_cfg_values' This semaphore protect a cfg_values variable but cfg_values variables was not used here. So, just remove this line. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 2 -- 1 file changed, 2 deletions(-) commit cb3b05c3845815e1fdeff94fcd5e8a57ceff702e Author: Leo Kim Date: Mon Dec 21 14:18:25 2015 +0900 staging: wilc1000: wilc_init(): fixes inconsistent returns This patch fixes the warning reported by smatch. - wilc_init() warn: inconsistent returns 'sem:&hif_drv->sem_cfg_values' No need to up the sema here since down was not called before get here. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 1 - 1 file changed, 1 deletion(-) commit 653bb46301617e39e720e60fa2e0a01f946c9a6e Author: Leo Kim Date: Mon Dec 21 14:18:24 2015 +0900 staging: wilc1000: fixes potential null dereference 'wid.val' This patch fixes the error reported by smatch. - Handle_ListenStateExpired() error: potential null dereference 'wid.val' If kmalloc failed, referenced to a NULL pointer. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 369a1d3bd3b357f9c7cc6ccb320c6b2e7680f9f5 Author: Leo Kim Date: Mon Dec 21 14:18:23 2015 +0900 staging: wilc1000: replace explicit NULL comparisons with ! This patch replace explicit NULL comparison with ! operator to simplify code. Reported by checkpatch.pl for Comparison to NULL could be written !XXX" or "XXX". Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 31 ++++++++++++----------- 1 file changed, 16 insertions(+), 15 deletions(-) commit 3bac1c51dc2d61038155b298792e3663b356c0c4 Author: Glen Lee Date: Mon Dec 21 14:18:22 2015 +0900 staging: wilc1000: linux_wlan_spi.c: fix NULL comparison style This patch fixes checkpatch CHECK:comparison to NULL could be written "b". Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan_spi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d8506598003ba874317e7dc632339fc9052043a8 Author: Glen Lee Date: Mon Dec 21 14:18:21 2015 +0900 staging: wilc1000: linux_wlan_spi.c: add a blank This patch fixes checkpatch warning: missing a blank like after declarations. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan_spi.c | 2 ++ 1 file changed, 2 insertions(+) commit 5b46e16702e2413e3e885f4acf122505ecdaa03c Author: Glen Lee Date: Mon Dec 21 14:18:20 2015 +0900 staging: wilc1000: linux_wlan_spi.c: remove braces for single statement This patches fixes checkpatch warning: braces {} are not necessary for single statement blocks. Remove some comments also. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan_spi.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) commit 28e9ad2aca609370e5c7a42e926652dd98ff7ed2 Author: Glen Lee Date: Mon Dec 21 14:18:19 2015 +0900 staging: wilc1000: wilc_sdio_cmd52: return linux error value This patch changes return value with linux error value, not 1 or 0. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan_sdio.c | 6 ++-- drivers/staging/wilc1000/wilc_sdio.c | 51 +++++++++++++++++++----------- 2 files changed, 35 insertions(+), 22 deletions(-) commit 6f8bded28878ce8c750f33b53a50382ed767eb6c Author: Glen Lee Date: Mon Dec 21 14:18:18 2015 +0900 staging: wilc1000: wilc_sdio_cmd53: return linux error value This patch changes return value with linux error value, not 1 or 0. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan_sdio.c | 7 ++----- drivers/staging/wilc1000/wilc_sdio.c | 26 ++++++++++++++++---------- 2 files changed, 18 insertions(+), 15 deletions(-) commit 58ed46f795141a6579df88bd506c3458ce6c4918 Author: Glen Lee Date: Mon Dec 21 14:18:17 2015 +0900 staging: wilc1000: linux_wlan_sdio.c: remove braces This patch fixes checkpatch warning braces{} are not necessary for single statment blocks. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan_sdio.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 3cf9c9a7ffb7a6b67683259cf21c0c4fde1301d6 Author: Glen Lee Date: Mon Dec 21 14:18:16 2015 +0900 staging: wilc1000: linux_wlan_sdio.c: fix checkpatch warning line over 80 This patch fixes checkpatch warning line over 80 characters. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan_sdio.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 491a2ed74d7e8152ea16430b4259d38ded59fb4c Author: Glen Lee Date: Mon Dec 21 14:18:15 2015 +0900 staging: wilc1000: remove unused functions This patch removes unused function pointer hif_sync and hif_clear_int, and removes it's related functions sdio_clear_int, sdio_sync, wilc_spi_clear_int and wilc_spi_sync. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_sdio.c | 94 ------------------------------------ drivers/staging/wilc1000/wilc_spi.c | 60 ----------------------- drivers/staging/wilc1000/wilc_wlan.h | 2 - 3 files changed, 156 deletions(-) commit 28b01ff59443155dff491e5ce94ecfeb898e8c9a Author: Glen Lee Date: Mon Dec 21 14:18:14 2015 +0900 staging: wilc1000: remove wilc_debug_func of hif_init This patch removes wilc_debug_func of hif_init and remove it's related functions as well because it is not used anymore. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_sdio.c | 2 +- drivers/staging/wilc1000/wilc_spi.c | 2 +- drivers/staging/wilc1000/wilc_wlan.c | 2 +- drivers/staging/wilc1000/wilc_wlan.h | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) commit ac1da162e488e90be001ebb4057aaf01e565dd28 Author: Glen Lee Date: Mon Dec 21 14:18:13 2015 +0900 staging: wilc1000: sdio/spi: use device print api instead of custom one This patch use device print api instead of driver defined print. Remove varialbe dPrint as well. String "[wilc sdio]" and "[wilc spi]" are also removed from all the print statment if exist because it shows which device the message is related to. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan_sdio.c | 18 ++-- drivers/staging/wilc1000/linux_wlan_spi.c | 24 +++-- drivers/staging/wilc1000/wilc_sdio.c | 151 +++++++++++++++++++---------- drivers/staging/wilc1000/wilc_spi.c | 142 +++++++++++++++++---------- 4 files changed, 213 insertions(+), 122 deletions(-) commit 67e2a07ed8008b81fdb98a998ceab66dc7af5999 Author: Glen Lee Date: Mon Dec 21 14:18:12 2015 +0900 staging: wilc1000: move all of wilc_wlan_dev_t to struct wilc linux_wlan.c and wilc_wlan.c was separated into two part at the beginning to support various platforms. They are in charge of send/receive control and packet data, so they will be merged into one file wlan.c later. First of all, wilc_wlan_dev_t which is used as global variable of wilc_wlan.c will be moved into struct wilc. This patch moves all members of wilc_wlan_dev_t to struct wilc and use wilc instead of g_wlan. Finally remove wilc_wlan_dev_t and g_wlan. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_netdevice.h | 22 +++ drivers/staging/wilc1000/wilc_wlan.c | 271 +++++++++++--------------- 2 files changed, 139 insertions(+), 154 deletions(-) commit 21ee5092cab9f6512d8b73afe79a74433d2363fb Author: Glen Lee Date: Mon Dec 21 14:18:11 2015 +0900 staging: wilc1000: remove unused varialbe tx_buffer_offset This patch removes unused variable tx_buffer_offset of wilc_wlan_dev_t. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 1 - 1 file changed, 1 deletion(-) commit a3629a9ee36a6f8fcbc764e811a2fe0e492f739f Author: Glen Lee Date: Mon Dec 21 14:18:10 2015 +0900 staging: wilc1000: remove io_type of wilc_wlan_dev_t io_type of wilc_wlan_dev_t is unneeded, we can use io_type of struct wilc. Remove io_type of wilc_wlan_dev_t and use io_type of wilc. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) commit af9ae09ae0704e2bea199e0d47f0734e06f232fa Author: Glen Lee Date: Mon Dec 21 14:18:09 2015 +0900 staging: wilc1000: wilc_wlan.c: remove hif_func of wilc_wlan_dev_t hif_func of wilc_wlan_dev_t is duplicate because we have same struct wilc_hif_func ops of struct wilc which is available in wilc_wlan.c. Rename ops of struct wilc with hif_func and remove hif_func of wilc_wlan_dev_t, and use wilc->hif_func instead of g_wlan.hif_func in all functions. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 18 +-- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 2 +- drivers/staging/wilc1000/wilc_wlan.c | 161 ++++++++++++-------------- 3 files changed, 87 insertions(+), 94 deletions(-) commit 9e6627ac727c0d8646085908d9d6c33c08390111 Author: Glen Lee Date: Mon Dec 21 14:18:08 2015 +0900 staging: wilc1000: use kernel define byte order macros This patch removes define BIG_ENDIAN and use kernel define byte order macros instead of swap itself. Remove unused BYTE_SWAP macro and __CHECK_ENDIAN__ in Makefile also. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/Makefile | 2 +- drivers/staging/wilc1000/wilc_sdio.c | 8 ++------ drivers/staging/wilc1000/wilc_spi.c | 16 ++++------------ drivers/staging/wilc1000/wilc_wlan.c | 22 ++++++---------------- drivers/staging/wilc1000/wilc_wlan.h | 11 ----------- drivers/staging/wilc1000/wilc_wlan_cfg.c | 16 +++------------- 6 files changed, 16 insertions(+), 59 deletions(-) commit b719302da6da3480e9086121f9c27362382c0efe Author: Glen Lee Date: Mon Dec 21 14:18:07 2015 +0900 staging: wilc1000: rename index to tcp_pending_ack_idx This patch renames "index" of struct txq_entry_t to tcp_pending_ack_idx since this name could be confused index of txq_entry_t. It is index of tcp pending ack. It fixes 8e55639d066f ("staging: wilc1000: rename tcp_PendingAck_index of struct txq_entry_t") Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 12 ++++++------ drivers/staging/wilc1000/wilc_wlan.h | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) commit a5038d56f86011af0d1dcaac56e8507ef5c8f6cf Author: Glen Lee Date: Mon Dec 21 14:18:06 2015 +0900 staging: wilc1000: remove wilc memory allocation config This patch remove memory allocation options in Kconfig. It was used a long time ago to aquire memory, which we will not use this config anymore. Remove it's config, related define and codes as well. We will take PREALLOCATE_AT_LOADING_DRIVER as it is default. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/Kconfig | 22 -------------------- drivers/staging/wilc1000/Makefile | 6 ------ drivers/staging/wilc1000/linux_wlan_common.h | 2 -- drivers/staging/wilc1000/wilc_wlan.c | 30 ---------------------------- 4 files changed, 60 deletions(-) commit c6e3a5b3ef16b9e1498daa41645c728ee6e5285c Author: Glen Lee Date: Mon Dec 21 14:18:05 2015 +0900 staging: wilc1000: remove define COMPLEMENT_BOOT This patch removes define COMPLEMENT_BOOT in Makefile. The feature was removed by commit b46d68825c2d ('staging: wilc1000: remove COMPLEMENT_BOOT') but the define was not removed. So remove completely. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/Makefile | 2 -- 1 file changed, 2 deletions(-) commit 879a650a273bc3efb9d472886b8ced12630ea8ed Author: K. Y. Srinivasan Date: Tue Dec 15 16:27:27 2015 -0800 Drivers: hv: vmbus: Treat Fibre Channel devices as performance critical For performance critical devices, we distribute the incoming channel interrupt load across available CPUs in the guest. Include Fibre channel devices in the set of devices for which we would distribute the interrupt load. Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/channel_mgmt.c | 3 +++ 1 file changed, 3 insertions(+) commit 77b744a598d604de49df79cf161bbd1809a6948a Author: Vitaly Kuznetsov Date: Tue Dec 15 16:27:26 2015 -0800 Drivers: hv: utils: fix hvt_op_poll() return value on transport destroy The return type of hvt_op_poll() is unsigned int and -EBADF is inappropriate, poll functions return POLL* statuses. Reported-by: Dexuan Cui Signed-off-by: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv_utils_transport.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2048157ad02e65f6327118dd4a7b9c9f1fd12f77 Author: Dexuan Cui Date: Mon Dec 21 12:21:22 2015 -0800 Drivers: hv: vmbus: fix the building warning with hyperv-keyboard With the recent change af3ff643ea91ba64dd8d0b1cbed54d44512f96cd (Drivers: hv: vmbus: Use uuid_le type consistently), we always get this warning: CC [M] drivers/input/serio/hyperv-keyboard.o drivers/input/serio/hyperv-keyboard.c:427:2: warning: missing braces around initializer [-Wmissing-braces] { HV_KBD_GUID, }, ^ drivers/input/serio/hyperv-keyboard.c:427:2: warning: (near initialization for .id_table[0].guid.b.) [-Wmissing-braces] The patch fixes the warning. Signed-off-by: Dexuan Cui Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/input/serio/hyperv-keyboard.c | 10 ---------- include/linux/hyperv.h | 8 ++++++++ 2 files changed, 8 insertions(+), 10 deletions(-) commit aa37763fa4b2545a6d517333aacc98ad757a4ccd Author: Mauro Carvalho Chehab Date: Mon Dec 21 14:38:31 2015 -0200 [media] au8522: Avoid memory leak for device config data As reported by kmemleak: unreferenced object 0xffff880321e1da40 (size 32): comm "modprobe", pid 3309, jiffies 4295019569 (age 2359.636s) hex dump (first 32 bytes): 47 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 G............... 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ backtrace: [] kmemleak_alloc+0x4e/0xb0 [] kmem_cache_alloc_trace+0x1ec/0x280 [] au8522_probe+0x19a/0xa30 [au8522_decoder] [] i2c_device_probe+0x2b2/0x490 [] driver_probe_device+0x454/0xd90 [] __device_attach_driver+0x17b/0x230 [] bus_for_each_drv+0x11a/0x1b0 [] __device_attach+0x1cd/0x2c0 [] device_initial_probe+0x13/0x20 [] bus_probe_device+0x1af/0x250 [] device_add+0x943/0x13b0 [] device_register+0x1a/0x20 [] i2c_new_device+0x5d6/0x8f0 [] v4l2_i2c_new_subdev_board+0x1e4/0x250 [v4l2_common] [] v4l2_i2c_new_subdev+0xd7/0x110 [v4l2_common] [] au0828_card_analog_fe_setup+0x2e6/0x3f0 [au0828] Checking where the error happens: (gdb) list *au8522_probe+0x19a 0x99a is in au8522_probe (drivers/media/dvb-frontends/au8522_decoder.c:761). 756 printk(KERN_INFO "au8522_decoder attach existing instance.\n"); 757 break; 758 } 759 760 demod_config = kzalloc(sizeof(struct au8522_config), GFP_KERNEL); 761 if (demod_config == NULL) { 762 if (instance == 1) 763 kfree(state); 764 return -ENOMEM; 765 } Shows that the error path is not being handled properly. The are actually several issues here: 1) config free should have been calling hybrid_tuner_release_state() function, by calling au8522_release_state(); 2) config is only allocated at the digital part. On the analog one, it is received from the caller. A complex logic could be added to address it, however, it is simpler to just embeed config inside the state. Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/au8522_common.c | 10 +++++----- drivers/media/dvb-frontends/au8522_decoder.c | 14 ++------------ drivers/media/dvb-frontends/au8522_dig.c | 16 ++++++++-------- drivers/media/dvb-frontends/au8522_priv.h | 2 +- 4 files changed, 16 insertions(+), 26 deletions(-) commit bfccd95e7aba73d0d3154912b17b855cb9938c50 Merge: 252ca49 4ef7675 Author: Greg Kroah-Hartman Date: Mon Dec 21 11:11:12 2015 -0800 Merge 4.4-rc6 into usb-next We want the USB and PHY fixes in here as well to make things easier for testing and development. Signed-off-by: Greg Kroah-Hartman commit 6c95771f8c71cd4dd6ed7ab84a3aea7d509d7704 Author: Adam Ford Date: Sun Dec 20 09:26:15 2015 -0600 ARM: OMAP2+: LogicPD Torpedo: Add Touchscreen Support The development kit uses a TSC2004 chip attached to I2C3. Signed-off-by: Adam Ford Signed-off-by: Tony Lindgren arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts | 27 +++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit 462a1196a578fc6f52c26427070a75e044bbf9b1 Merge: 58362d5 4ef7675 Author: Greg Kroah-Hartman Date: Mon Dec 21 11:06:07 2015 -0800 Merge 4.4-rc6 into tty-next We want the serial/tty fixes in here as well. Signed-off-by: Greg Kroah-Hartman commit cb41f271d01b7c985ab47ea26fdef531a6237561 Author: Andy Shevchenko Date: Mon Dec 21 19:09:56 2015 +0200 ALSA: fm801: restore TEA575x state on resume The suspend / resume cycle resets the settings of the FM tuner. Restore frequency settings on resume. Signed-off-by: Andy Shevchenko Signed-off-by: Takashi Iwai sound/pci/fm801.c | 5 +++++ 1 file changed, 5 insertions(+) commit 37ba8fca7e42b6e689689217b9739e3a9a3c35e6 Author: Andy Shevchenko Date: Mon Dec 21 19:09:55 2015 +0200 ALSA: fm801: save context before suspend devices In symmetry we save context first before suspend and restore it last after resume. Signed-off-by: Andy Shevchenko Signed-off-by: Takashi Iwai sound/pci/fm801.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 14da04b5ff8e1e70b53f9f927e915e32a56651e1 Author: Andy Shevchenko Date: Mon Dec 21 19:09:54 2015 +0200 ALSA: fm801: no need to suspend absent codec In case of tuner only card there is no need to take care of the codec which is anyway absent. Signed-off-by: Andy Shevchenko Signed-off-by: Takashi Iwai sound/pci/fm801.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) commit b56fa687e02b27f8bd9d282950a88c2ed23d766b Author: Andy Shevchenko Date: Mon Dec 21 19:09:53 2015 +0200 ALSA: fm801: detect FM-only card earlier If user does not supply tea575x_tuner parameter the driver tries to detect the tuner type. The failed codec initialization is considered as FM-only card present, however the driver still registers an IRQ handler for it. Move codec detection earlier to set tea575x_tuner parameter before check. Here the following functions are introduced reset_coded() resets AC97 codec snd_fm801_chip_multichannel_init() initializes cards with multichannel support Fixes: 5618955c4269 (ALSA: fm801: move to pcim_* and devm_* functions) Signed-off-by: Andy Shevchenko Signed-off-by: Takashi Iwai sound/pci/fm801.c | 69 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 39 insertions(+), 30 deletions(-) commit dbec6719ac036f68568d8488805d41346c021eff Author: Andy Shevchenko Date: Mon Dec 21 19:09:52 2015 +0200 ALSA: fm801: propagate TUNER_ONLY bit when autodetected The commit d7ba858a7f7a (ALSA: fm801: implement TEA575x tuner autodetection) brings autodetection to the driver. However the autodetection algorithm misses the TUNER_ONLY bit if it is supplied by the user. Thus, user gets weird messages and no card registered. snd_fm801 0000:0d:01.0: detected TEA575x radio type SF64-PCR snd_fm801 0000:0d:01.0: AC'97 interface is busy (1) snd_fm801 0000:0d:01.0: AC'97 interface is busy (1) ... snd_fm801 0000:0d:01.0: AC'97 0 does not respond - RESET snd_fm801 0000:0d:01.0: AC'97 interface is busy (1) snd_fm801 0000:0d:01.0: AC'97 interface is busy (1) snd_fm801 0000:0d:01.0: AC'97 0 access is not valid [0x0], removing mixer. snd_fm801: probe of 0000:0d:01.0 failed with error -5 Do a copy of TUNER_ONLY bit to be applied after autodetection is done. Fixes: d7ba858a7f7a (ALSA: fm801: implement TEA575x tuner autodetection) Signed-off-by: Andy Shevchenko Cc: Ondrej Zary Signed-off-by: Takashi Iwai sound/pci/fm801.c | 4 ++++ 1 file changed, 4 insertions(+) commit e44081ef611832b47a86abf4e36dc0ed2e950884 Author: Filipe Manana Date: Fri Dec 18 03:02:48 2015 +0000 Btrfs: fix unprotected list operations at btrfs_write_dirty_block_groups We call btrfs_write_dirty_block_groups() in the critical section of a transaction's commit, when no other tasks can join the transaction and add more block groups to the transaction's list of dirty block groups, so we not taking the dirty block groups spinlock when checking for the list's emptyness, grabbing its first element or deleting elements from it. However there's a special and rare case where we can have a concurrent task adding elements to this list. We trigger writeback for space caches before at btrfs_start_dirty_block_groups() and in past iterations of the loop at btrfs_write_dirty_block_groups(), this means that when the writeback finishes (which happens asynchronously) it creates a task for the endio free space work queue that executes btrfs_finish_ordered_io() - this function is able to join the transaction, through btrfs_join_transaction_nolock(), and update the free space cache's inode item in the root tree, which can result in COWing nodes of this tree and therefore allocation of a new block group can happen, which gets added to the transaction's list of dirty block groups while the transaction commit task is operating on it concurrently. So fix this by taking the dirty block groups spinlock before doing operations on the dirty block groups list at btrfs_write_dirty_block_groups(). Signed-off-by: Filipe Manana fs/btrfs/extent-tree.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) commit e5d15cb530082cc13a6c9457eddd6f75b0f4de65 Author: Eliad Peller Date: Thu Dec 17 13:02:56 2015 +0200 iwlwifi: bail out in case of bad trans state In case of bad trans state (i.e. fw is not loaded) bail out immediately instead of calling the trans, which might not be fully initialized yet. Also add WARN_ON_ONCE to help debugging where the errorneous call is coming from. Signed-off-by: Eliad Peller Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/iwl-trans.h | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) commit c9cd0ed925c0b927283d4739bfe689eb9d1e9dfd Author: Will Deacon Date: Mon Dec 21 16:44:27 2015 +0000 arm64: traps: address fallout from printk -> pr_* conversion Commit ac7b406c1a9d ("arm64: Use pr_* instead of printk") was a fairly mindless s/printk/pr_*/ change driven by a complaint from checkpatch. As is usual with such changes, this has led to some odd behaviour on arm64: * syslog now picks up the "pr_emerg" line from dump_backtrace, but not the actual trace, which leads to a bunch of "kernel:Call trace:" lines in the log * __{pte,pmd,pgd}_error print at KERN_CRIT, as opposed to KERN_ERR which is used by other architectures. This patch restores the original printk behaviour for dump_backtrace and downgrade the pgtable error macros to KERN_ERR. Signed-off-by: Will Deacon arch/arm64/kernel/traps.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 20380bb390a443b2c5c8800cec59743faf8151b4 Author: AKASHI Takahiro Date: Tue Dec 15 17:33:41 2015 +0900 arm64: ftrace: fix a stack tracer's output under function graph tracer Function graph tracer modifies a return address (LR) in a stack frame to hook a function return. This will result in many useless entries (return_to_handler) showing up in a) a stack tracer's output b) perf call graph (with perf record -g) c) dump_backtrace (at panic et al.) For example, in case of a), $ echo function_graph > /sys/kernel/debug/tracing/current_tracer $ echo 1 > /proc/sys/kernel/stack_trace_enabled $ cat /sys/kernel/debug/tracing/stack_trace Depth Size Location (54 entries) ----- ---- -------- 0) 4504 16 gic_raise_softirq+0x28/0x150 1) 4488 80 smp_cross_call+0x38/0xb8 2) 4408 48 return_to_handler+0x0/0x40 3) 4360 32 return_to_handler+0x0/0x40 ... In case of b), $ echo function_graph > /sys/kernel/debug/tracing/current_tracer $ perf record -e mem:XXX:x -ag -- sleep 10 $ perf report ... | | |--0.22%-- 0x550f8 | | | 0x10888 | | | el0_svc_naked | | | sys_openat | | | return_to_handler | | | return_to_handler ... In case of c), $ echo function_graph > /sys/kernel/debug/tracing/current_tracer $ echo c > /proc/sysrq-trigger ... Call trace: [] sysrq_handle_crash+0x24/0x30 [] return_to_handler+0x0/0x40 [] return_to_handler+0x0/0x40 ... This patch replaces such entries with real addresses preserved in current->ret_stack[] at unwind_frame(). This way, we can cover all the cases. Reviewed-by: Jungseok Lee Signed-off-by: AKASHI Takahiro [will: fixed minor context changes conflicting with irq stack bits] Signed-off-by: Will Deacon arch/arm64/include/asm/ftrace.h | 2 ++ arch/arm64/include/asm/stacktrace.h | 3 +++ arch/arm64/kernel/perf_callchain.c | 3 +++ arch/arm64/kernel/process.c | 3 +++ arch/arm64/kernel/return_address.c | 3 +++ arch/arm64/kernel/stacktrace.c | 17 +++++++++++++++++ arch/arm64/kernel/time.c | 3 +++ arch/arm64/kernel/traps.c | 26 ++++++++++++++++++++------ 8 files changed, 54 insertions(+), 6 deletions(-) commit fe13f95b720075327a761fe6ddb45b0c90cab504 Author: AKASHI Takahiro Date: Tue Dec 15 17:33:40 2015 +0900 arm64: pass a task parameter to unwind_frame() Function graph tracer modifies a return address (LR) in a stack frame to hook a function's return. This will result in many useless entries (return_to_handler) showing up in a call stack list. We will fix this problem in a later patch ("arm64: ftrace: fix a stack tracer's output under function graph tracer"). But since real return addresses are saved in ret_stack[] array in struct task_struct, unwind functions need to be notified of, in addition to a stack pointer address, which task is being traced in order to find out real return addresses. This patch extends unwind functions' interfaces by adding an extra argument of a pointer to task_struct. Signed-off-by: AKASHI Takahiro Signed-off-by: Will Deacon arch/arm64/include/asm/stacktrace.h | 6 ++++-- arch/arm64/kernel/perf_callchain.c | 2 +- arch/arm64/kernel/process.c | 2 +- arch/arm64/kernel/return_address.c | 2 +- arch/arm64/kernel/stacktrace.c | 8 ++++---- arch/arm64/kernel/time.c | 2 +- arch/arm64/kernel/traps.c | 2 +- 7 files changed, 13 insertions(+), 11 deletions(-) commit 79fdee9b6355c9720f14717e1ad66af51bb331b5 Author: AKASHI Takahiro Date: Tue Dec 15 17:33:39 2015 +0900 arm64: ftrace: modify a stack frame in a safe way Function graph tracer modifies a return address (LR) in a stack frame by calling ftrace_prepare_return() in a traced function's function prologue. The current code does this modification before preserving an original address at ftrace_push_return_trace() and there is always a small window of inconsistency when an interrupt occurs. This doesn't matter, as far as an interrupt stack is introduced, because stack tracer won't be invoked in an interrupt context. But it would be better to proactively minimize such a window by moving the LR modification after ftrace_push_return_trace(). Signed-off-by: AKASHI Takahiro Signed-off-by: Will Deacon arch/arm64/kernel/ftrace.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit d224a69e3d80fe08f285d1f41d21b590bae4fa9f Author: James Morse Date: Fri Dec 18 16:01:47 2015 +0000 arm64: remove irq_count and do_softirq_own_stack() sysrq_handle_reboot() re-enables interrupts while on the irq stack. The irq_stack implementation wrongly assumed this would only ever happen via the softirq path, allowing it to update irq_count late, in do_softirq_own_stack(). This means if an irq occurs in sysrq_handle_reboot(), during emergency_restart() the stack will be corrupted, as irq_count wasn't updated. Lose the optimisation, and instead of moving the adding/subtracting of irq_count into irq_stack_entry/irq_stack_exit, remove it, and compare sp_el0 (struct thread_info) with sp & ~(THREAD_SIZE - 1). This tells us if we are on a task stack, if so, we can safely switch to the irq stack. Finally, remove do_softirq_own_stack(), we don't need it anymore. Reported-by: Will Deacon Signed-off-by: James Morse [will: use get_thread_info macro] Signed-off-by: Will Deacon arch/arm64/include/asm/irq.h | 2 -- arch/arm64/kernel/entry.S | 19 ++++++++++--------- arch/arm64/kernel/irq.c | 38 +------------------------------------- 3 files changed, 11 insertions(+), 48 deletions(-) commit 66b3923a1a0f77a563b43f43f6ad091354abbfe9 Author: David Woods Date: Thu Dec 17 14:31:26 2015 -0500 arm64: hugetlb: add support for PTE contiguous bit The arm64 MMU supports a Contiguous bit which is a hint that the TTE is one of a set of contiguous entries which can be cached in a single TLB entry. Supporting this bit adds new intermediate huge page sizes. The set of huge page sizes available depends on the base page size. Without using contiguous pages the huge page sizes are as follows. 4KB: 2MB 1GB 64KB: 512MB With a 4KB granule, the contiguous bit groups together sets of 16 pages and with a 64KB granule it groups sets of 32 pages. This enables two new huge page sizes in each case, so that the full set of available sizes is as follows. 4KB: 64KB 2MB 32MB 1GB 64KB: 2MB 512MB 16GB If a 16KB granule is used then the contiguous bit groups 128 pages at the PTE level and 32 pages at the PMD level. If the base page size is set to 64KB then 2MB pages are enabled by default. It is possible in the future to make 2MB the default huge page size for both 4KB and 64KB granules. Reviewed-by: Chris Metcalf Reviewed-by: Steve Capper Signed-off-by: David Woods Signed-off-by: Will Deacon arch/arm64/Kconfig | 3 - arch/arm64/include/asm/hugetlb.h | 44 ++---- arch/arm64/include/asm/pgtable-hwdef.h | 18 ++- arch/arm64/include/asm/pgtable.h | 10 +- arch/arm64/mm/hugetlbpage.c | 274 ++++++++++++++++++++++++++++++++- include/linux/hugetlb.h | 2 - 6 files changed, 313 insertions(+), 38 deletions(-) commit c77adf214ba619ad959f37fa429aa3f1045fe0cf Author: Mauro Carvalho Chehab Date: Mon Dec 21 13:31:23 2015 -0200 [media] ir-lirc-codec.c: don't leak lirc->drv-rbuf As reported by kmemleak: unreferenced object 0xffff8802adae0ba0 (size 192): comm "modprobe", pid 3024, jiffies 4296503588 (age 324.368s) hex dump (first 32 bytes): 00 00 00 00 ad 4e ad de ff ff ff ff 00 00 00 00 .....N.......... ff ff ff ff ff ff ff ff c0 48 25 a0 ff ff ff ff .........H%..... backtrace: [] kmemleak_alloc+0x4e/0xb0 [] kmem_cache_alloc_trace+0x1ec/0x280 [] ir_lirc_register+0x8d/0x7a0 [ir_lirc_codec] [] ir_raw_event_register+0x318/0x4b0 [rc_core] [] rc_register_device+0xf2d/0x1450 [rc_core] [] au0828_rc_register+0x7d1/0xa10 [au0828] [] au0828_usb_probe+0x6c2/0xcf0 [au0828] [] usb_probe_interface+0x45d/0x940 [] driver_probe_device+0x454/0xd90 [] __driver_attach+0x121/0x160 [] bus_for_each_dev+0x11f/0x1a0 [] driver_attach+0x3d/0x50 [] bus_add_driver+0x4c9/0x770 [] driver_register+0x18c/0x3b0 [] usb_register_driver+0x1f8/0x440 [] 0xffffffffa13680b7 0xf3d is in ir_lirc_register (drivers/media/rc/ir-lirc-codec.c:348). 343 drv = kzalloc(sizeof(struct lirc_driver), GFP_KERNEL); 344 if (!drv) 345 return rc; 346 347 rbuf = kzalloc(sizeof(struct lirc_buffer), GFP_KERNEL); 348 if (!rbuf) 349 goto rbuf_alloc_failed; 350 351 rc = lirc_buffer_init(rbuf, sizeof(int), LIRCBUF_SIZE); 352 if (rc) Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/ir-lirc-codec.c | 1 + 1 file changed, 1 insertion(+) commit 12ec9384036304e64904afdc6234b842fe54f411 Author: Hans de Goede Date: Sun Dec 20 12:43:01 2015 +0100 ARM: dts: sun5i: Add dts file for the Empire Electronix D709 tablet The Empire Electronix D709 tablet is a fairly standard 7" A13 tablet, featuring usb-wifi, a micro-sd slot, micro-usb otg and headphone jack. Empire Electronix is written on the back of the tablet, the D709 model info can be found in the about tablet menu in android. The PCB has no markings to speak of. This dts file does not add support for the ft5x touchscreen found at i2c bus 1, addr 0x38, irq PG11, because it does not work out of the box. It seems it has been flashed with the wrong firmware and needs to have alternative firmware uploaded at boot to make the touchscreen work properly, when hot-booting from android into an upstream kernel the touchscreen does work. The Memsic MXC622X accelerometer at i2c bus 1, addr 0x15 also is not enabled as there is no driver for it. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/Makefile | 1 + .../boot/dts/sun5i-a13-empire-electronix-d709.dts | 241 +++++++++++++++++++++ 2 files changed, 242 insertions(+) commit b3a9995e58dedc995ee9b6c16aed75839cb4ba94 Author: Hans de Goede Date: Sun Dec 20 12:43:02 2015 +0100 ARM: dts: sun7i: Enable gmac on Wits Pro A20 DKT The Wits Pro A20 DKT has a gbit ethernet port, enable it. Signed-off-by: Hans de Goede Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20-wits-pro-a20-dkt.dts | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 8661d0c34e8ad044afa5a3cbf04c7e0e35f2e465 Author: Marcus Cooper Date: Sat Dec 19 14:08:46 2015 +0100 ARM: dt: sun7i: Enable audio codec on MK808C This commit enables the on-chip audio codec present on the MK808C. Signed-off-by: Marcus Cooper Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20-mk808c.dts | 4 ++++ 1 file changed, 4 insertions(+) commit b0389c2cafc36ebf21df1a5189424658a26ac44e Author: Marcus Cooper Date: Sat Dec 19 14:02:38 2015 +0100 ARM: sunxi: dt: enable audio codec on mk802 This commit enables the on-chip audio codec present on some variants of the MK802. Signed-off-by: Marcus Cooper Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10-mk802.dts | 4 ++++ 1 file changed, 4 insertions(+) commit 9f483c717d02d7f079b5285b1a0cdf8ff401c3a0 Author: Aleksei Mamlin Date: Fri Dec 18 11:52:45 2015 +0300 ARM: dts: sun7i: Add PA gpio pin to Wexler TAB7200 tablet Add PA gpio pin for controlling power of two external amplifiers (NS4890) which are used on the Wexler TAB7200 tablet Signed-off-by: Aleksei Mamlin Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20-wexler-tab7200.dts | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 028997bb92a5bcc5d8ec936f7d522910c16c2579 Author: Aleksei Mamlin Date: Fri Dec 18 11:52:22 2015 +0300 ARM: dts: sun7i: Add backlight node to Wexler TAB7200 tablet Add a backlight for controlling the lcd panel backlight on Wexler TAB7200 tablet Signed-off-by: Aleksei Mamlin Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20-wexler-tab7200.dts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit e7bb896a7fabdf05fb0126f9f5a489cb987f2152 Author: Aleksei Mamlin Date: Fri Dec 18 11:51:50 2015 +0300 ARM: dts: sun7i: Enable touchscreen on Wexler TAB7200 tablet Add a node for the Goodix GT911 touchscreen found on the Wexler TAB7200 tablet Signed-off-by: Aleksei Mamlin Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20-wexler-tab7200.dts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit 0644b3daca28dcb320373ae20069c269c9386304 Author: Suravee Suthikulpanit Date: Thu Dec 10 08:55:30 2015 -0800 irqchip/gic-v2m: acpi: Introducing GICv2m ACPI support This patch introduces gicv2m_acpi_init(), which uses information in MADT GIC MSI frames structure to initialize GICv2m driver. It also exposes gicv2m_init() function, which simplifies callers to a single GICv2m init function. Reviewed-by: Marc Zyngier Tested-by: Duc Dang Acked-by: Rafael J. Wysocki Signed-off-by: Suravee Suthikulpanit Signed-off-by: Hanjun Guo Signed-off-by: Marc Zyngier drivers/irqchip/irq-gic-v2m.c | 110 +++++++++++++++++++++++++++++++++++++++- drivers/irqchip/irq-gic.c | 6 ++- include/linux/irqchip/arm-gic.h | 3 +- 3 files changed, 116 insertions(+), 3 deletions(-) commit 60792ad349f3c6dc5735aafefe5dc9121c79e320 Author: Lorenzo Pieralisi Date: Fri Dec 18 10:35:54 2015 +0000 arm64: kernel: enforce pmuserenr_el0 initialization and restore The pmuserenr_el0 register value is architecturally UNKNOWN on reset. Current kernel code resets that register value iff the core pmu device is correctly probed in the kernel. On platforms with missing DT pmu nodes (or disabled perf events in the kernel), the pmu is not probed, therefore the pmuserenr_el0 register is not reset in the kernel, which means that its value retains the reset value that is architecturally UNKNOWN (system may run with eg pmuserenr_el0 == 0x1, which means that PMU counters access is available at EL0, which must be disallowed). This patch adds code that resets pmuserenr_el0 on cold boot and restores it on core resume from shutdown, so that the pmuserenr_el0 setup is always enforced in the kernel. Cc: Cc: Mark Rutland Signed-off-by: Lorenzo Pieralisi Signed-off-by: Will Deacon arch/arm64/kernel/perf_event.c | 3 --- arch/arm64/mm/proc.S | 2 ++ 2 files changed, 2 insertions(+), 3 deletions(-) commit b9c0a92a9aa953e5a98f2af2098c747d4358c7bb Author: Julia Lawall Date: Sun Nov 29 23:02:49 2015 +0100 xen/gntdev: constify mmu_notifier_ops structures This mmu_notifier_ops structure is never modified, so declare it as const, like the other mmu_notifier_ops structures. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: David Vrabel drivers/xen/gntdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 86fc2136736d2767bf797e6d2b1f80b49f52953c Author: Julia Lawall Date: Sat Nov 28 15:28:40 2015 +0100 xen/grant-table: constify gnttab_ops structure The gnttab_ops structure is never modified, so declare it as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: David Vrabel drivers/xen/grant-table.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2dd887e32175b624375570a0361083eb2cd64a07 Author: Stefano Stabellini Date: Fri Nov 20 15:02:44 2015 +0000 xen/time: use READ_ONCE Use READ_ONCE through the code, rather than explicit barriers. Suggested-by: Mark Rutland Signed-off-by: Stefano Stabellini Signed-off-by: David Vrabel drivers/xen/time.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) commit 187b26a97244b1083d573175650f41b2267ac635 Author: Stefano Stabellini Date: Tue Nov 24 14:53:02 2015 +0000 xen/x86: convert remaining timespec to timespec64 in xen_pvclock_gtod_notify Signed-off-by: Stefano Stabellini Reviewed-by: Boris Ostrovsky arch/x86/xen/time.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 760968631323f710ea0824369bbd65f812c82f08 Author: Stefano Stabellini Date: Mon Nov 23 10:42:12 2015 +0000 xen/x86: support XENPF_settime64 Try XENPF_settime64 first, if it is not available fall back to XENPF_settime32. No need to call __current_kernel_time() when all the info needed are already passed via the struct timekeeper * argument. Return NOTIFY_BAD in case of errors. Signed-off-by: Stefano Stabellini Acked-by: Arnd Bergmann Reviewed-by: Boris Ostrovsky arch/x86/xen/time.c | 35 ++++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) commit 7d5f6f81ddbb5b532a832cbeb65472541b22a7c2 Author: Stefano Stabellini Date: Mon Nov 23 10:41:12 2015 +0000 xen/arm: set the system time in Xen via the XENPF_settime64 hypercall If Linux is running as dom0, call XENPF_settime64 to update the system time in Xen on pvclock_gtod notifications. Signed-off-by: Stefano Stabellini Acked-by: Arnd Bergmann arch/arm/xen/enlighten.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) commit e709fba132db696bbc21fca2e7f736198ec53eda Author: Stefano Stabellini Date: Mon Nov 23 10:40:12 2015 +0000 xen/arm: introduce xen_read_wallclock Read the wallclock from the shared info page at boot time. Signed-off-by: Stefano Stabellini Acked-by: Arnd Bergmann arch/arm/xen/enlighten.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit ab76078a3d43226288fa43489b76b1416975705f Author: Stefano Stabellini Date: Mon Nov 23 10:39:12 2015 +0000 arm: extend pvclock_wall_clock with sec_hi The hypervisor actually exposes an additional field to struct pvclock_wall_clock, with the high 32 bit seconds. Signed-off-by: Stefano Stabellini Reviewed-by: Julien Grall arch/arm/include/asm/xen/interface.h | 1 + 1 file changed, 1 insertion(+) commit f3d6027ee0568b5442077120beeb5d9d17c2d0da Author: Stefano Stabellini Date: Mon Nov 23 10:38:12 2015 +0000 xen: introduce XENPF_settime64 Rename the current XENPF_settime hypercall and related struct to XENPF_settime32. Signed-off-by: Stefano Stabellini Acked-by: Arnd Bergmann Reviewed-by: Boris Ostrovsky arch/x86/xen/time.c | 8 ++++---- include/xen/interface/platform.h | 18 ++++++++++++++---- 2 files changed, 18 insertions(+), 8 deletions(-) commit 72d39c691b4269c95547245562bfde8504432407 Author: Stefano Stabellini Date: Mon Nov 23 10:37:12 2015 +0000 xen/arm: introduce HYPERVISOR_platform_op on arm and arm64 Signed-off-by: Stefano Stabellini arch/arm/include/asm/xen/hypercall.h | 7 +++++++ arch/arm/include/asm/xen/interface.h | 2 ++ arch/arm/xen/enlighten.c | 1 + arch/arm/xen/hypercall.S | 1 + arch/arm64/xen/hypercall.S | 1 + 5 files changed, 12 insertions(+) commit cfafae940381207d48b11a73a211142dba5947d3 Author: Stefano Stabellini Date: Mon Nov 23 10:36:12 2015 +0000 xen: rename dom0_op to platform_op The dom0_op hypercall has been renamed to platform_op since Xen 3.2, which is ancient, and modern upstream Linux kernels cannot run as dom0 and it anymore anyway. Signed-off-by: Stefano Stabellini Reviewed-by: Boris Ostrovsky arch/x86/include/asm/xen/hypercall.h | 6 +++--- arch/x86/xen/apic.c | 2 +- arch/x86/xen/enlighten.c | 8 ++++---- arch/x86/xen/time.c | 2 +- drivers/xen/acpi.c | 2 +- drivers/xen/efi.c | 30 +++++++++++++++--------------- drivers/xen/pcpu.c | 8 ++++---- drivers/xen/xen-acpi-cpuhotplug.c | 2 +- drivers/xen/xen-acpi-pad.c | 4 ++-- drivers/xen/xen-acpi-processor.c | 8 ++++---- drivers/xen/xenfs/xensyms.c | 4 ++-- include/xen/interface/xen.h | 2 +- 12 files changed, 39 insertions(+), 39 deletions(-) commit 34e38523d586ae1e838241d44c8a2e9a1c9e0b43 Author: Stefano Stabellini Date: Mon Nov 23 10:35:12 2015 +0000 xen/arm: account for stolen ticks Register the runstate_memory_area with the hypervisor. Use pv_time_ops.steal_clock to account for stolen ticks. Signed-off-by: Stefano Stabellini arch/arm/xen/enlighten.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit dfd57bc3a5664b98eb7b477e8d7bb2591a5198cf Author: Stefano Stabellini Date: Mon Nov 23 10:33:49 2015 +0000 arm64: introduce CONFIG_PARAVIRT, PARAVIRT_TIME_ACCOUNTING and pv_time_ops Introduce CONFIG_PARAVIRT and PARAVIRT_TIME_ACCOUNTING on ARM64. Necessary duplication of paravirt.h and paravirt.c with ARM. The only paravirt interface supported is pv_time_ops.steal_clock, so no runtime pvops patching needed. This allows us to make use of steal_account_process_tick for stolen ticks accounting. Signed-off-by: Stefano Stabellini Acked-by: Marc Zyngier arch/arm64/Kconfig | 20 ++++++++++++++++++++ arch/arm64/include/asm/paravirt.h | 20 ++++++++++++++++++++ arch/arm64/kernel/Makefile | 1 + arch/arm64/kernel/paravirt.c | 25 +++++++++++++++++++++++++ 4 files changed, 66 insertions(+) commit 02c2433b3aa6b57313c261c9811bbbe49528101c Author: Stefano Stabellini Date: Mon Nov 23 10:32:57 2015 +0000 arm: introduce CONFIG_PARAVIRT, PARAVIRT_TIME_ACCOUNTING and pv_time_ops Introduce CONFIG_PARAVIRT and PARAVIRT_TIME_ACCOUNTING on ARM. The only paravirt interface supported is pv_time_ops.steal_clock, so no runtime pvops patching needed. This allows us to make use of steal_account_process_tick for stolen ticks accounting. Signed-off-by: Stefano Stabellini Acked-by: Christopher Covington Acked-by: Ian Campbell Acked-by: Russell King arch/arm/Kconfig | 20 ++++++++++++++++++++ arch/arm/include/asm/paravirt.h | 20 ++++++++++++++++++++ arch/arm/kernel/Makefile | 1 + arch/arm/kernel/paravirt.c | 25 +++++++++++++++++++++++++ 4 files changed, 66 insertions(+) commit 1fe7c4ef88bd32e039f5f4126537c3f20c340414 Author: Stefano Stabellini Date: Tue Nov 10 12:36:46 2015 +0000 missing include asm/paravirt.h in cputime.c Add include asm/paravirt.h to cputime.c, as steal_account_process_tick calls paravirt_steal_clock, which is defined in asm/paravirt.h. The ifdef CONFIG_PARAVIRT is necessary because not all archs have an asm/paravirt.h to include. The reason why currently cputime.c compiles, even though include is missing, is that on x86 asm/paravirt.h is included by one of the other headers included in kernel/sched/cputime.c: On arm and arm64, where I am about to introduce asm/paravirt.h and stolen time support, without #include in cputime.c, I would get an error. Signed-off-by: Stefano Stabellini Acked-by: Peter Zijlstra (Intel) kernel/sched/cputime.c | 3 +++ 1 file changed, 3 insertions(+) commit 4ccefbe597392d2914cf7ad904e33c734972681d Author: Stefano Stabellini Date: Thu Nov 5 15:15:07 2015 +0000 xen: move xen_setup_runstate_info and get_runstate_snapshot to drivers/xen/time.c Signed-off-by: Stefano Stabellini Acked-by: Ian Campbell Reviewed-by: Konrad Rzeszutek Wilk arch/x86/xen/time.c | 76 +----------------------------------------- drivers/xen/Makefile | 2 +- drivers/xen/time.c | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++ include/xen/xen-ops.h | 5 +++ 4 files changed, 98 insertions(+), 76 deletions(-) commit 3869394ae461a41bb2b2bff98adfe6020b47e635 Author: Gregory CLEMENT Date: Thu Dec 17 11:19:19 2015 +0100 ARM: at91/dt: Add Support for the L+G VInCo platform The Versatile Industrial Communication platform is a community oriented board from Landis + Gyr. It comes with: - an RS-485 port - 2 Ethernet ports - a wireless M-BUS - a 4G modem - a 4MB SPI flash - a 4GB eMMC Signed-off-by: Gregory CLEMENT Signed-off-by: Alexandre Belloni arch/arm/boot/dts/Makefile | 3 +- arch/arm/boot/dts/at91-vinco.dts | 256 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 258 insertions(+), 1 deletion(-) commit 4266ab1a8ff5715e48b2e89046305864650ce025 Author: Suravee Suthikulpanit Date: Thu Dec 10 08:55:29 2015 -0800 irqchip/gic-v2m: Refactor to prepare for ACPI support This patch replaces the struct device_node with struct fwnode_handle since this structure is common between DT and ACPI. It also refactors gicv2m_init_one() to prepare for ACPI support. The only functional change is removing the node name from pr_info. Reviewed-by: Marc Zyngier Signed-off-by: Suravee Suthikulpanit Signed-off-by: Marc Zyngier drivers/irqchip/irq-gic-v2m.c | 53 ++++++++++++++++++++++++++----------------- 1 file changed, 32 insertions(+), 21 deletions(-) commit 75aba7b0e9ac416ca53c0c97680b8e9aedf09284 Author: Suravee Suthikulpanit Date: Thu Dec 10 08:55:28 2015 -0800 irqdomain: Introduce is_fwnode_irqchip helper Since there will be several places checking if fwnode.type is equal FWNODE_IRQCHIP, this patch adds a convenient function for this purpose. Acked-by: Marc Zyngier Signed-off-by: Suravee Suthikulpanit Signed-off-by: Marc Zyngier drivers/irqchip/irq-gic.c | 2 +- include/linux/irqdomain.h | 5 +++++ kernel/irq/irqdomain.c | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) commit 471036b2b895789c2305428fd879006468e4a758 Author: Suravee Suthikulpanit Date: Thu Dec 10 08:55:27 2015 -0800 acpi: pci: Setup MSI domain for ACPI based pci devices This patch introduces pci_msi_register_fwnode_provider() for irqchip to register a callback, to provide a way to determine appropriate MSI domain for a pci device. It also introduces pci_host_bridge_acpi_msi_domain(), which returns the MSI domain of the specified PCI host bridge with DOMAIN_BUS_PCI_MSI bus token. Then, it is assigned to pci device. Reviewed-by: Marc Zyngier Acked-by: Bjorn Helgaas Acked-by: Rafael J. Wysocki Signed-off-by: Suravee Suthikulpanit Signed-off-by: Marc Zyngier drivers/pci/pci-acpi.c | 42 ++++++++++++++++++++++++++++++++++++++++++ drivers/pci/probe.c | 2 ++ include/linux/irqdomain.h | 5 +++++ include/linux/pci.h | 10 ++++++++++ 4 files changed, 59 insertions(+) commit f1858b0e801a45d801dc23bc1ff5be14805022c8 Author: Arnd Bergmann Date: Fri Dec 18 16:40:26 2015 +0100 ARM: imx: select SRC for i.MX7 The i.MX7 Kconfig option had a couple of missing select lines that I fixed already, but I missed HAVE_IMX_SRC: arch/arm/mach-imx/built-in.o: In function `imx7d_init_irq': platform-spi_imx.c:(.init.text+0x25a8): undefined reference to `imx_src_init' This adds that one as well. Signed-off-by: Arnd Bergmann Fixes: 0be5da9dc249 ("ARM: imx: imx7d requires anatop") Signed-off-by: Shawn Guo arch/arm/mach-imx/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 1d9d4495001d3c470e5c902ff35a6aa626924fc1 Merge: d3d33aa e2dc7d7 Author: Takashi Iwai Date: Mon Dec 21 11:46:30 2015 +0100 Merge branch 'topic/hdmi-jack' into for-next commit 46c32889f5898774fc523a6ce62012f81b659293 Author: Linus Walleij Date: Thu Dec 17 14:50:45 2015 +0100 pinctrl: fixup problematic flag This removes the set_irq_flags() call that unfortunately slipped into the BCM NSP driver. Reported-by: Stephen Rothwell Cc: Yendapally Reddy Dhananjaya Reddy Signed-off-by: Linus Walleij drivers/pinctrl/bcm/pinctrl-nsp-gpio.c | 1 - 1 file changed, 1 deletion(-) commit 0bed4b7aa02c06e05121875dc443295d55b9d91d Author: Dirk B Date: Wed Dec 16 08:11:41 2015 +0100 ARM: 8484/1: Documentation: l2c2x0: Mention separate controllers explicitly The documentation in l2c2x0.txt is only valid for L2C210/L2C220/L2C310 (also known as PL210/PL220/PL310 and variants). Mention this explicitly. And add a note why this isn't valid for integrated L2 controllers. Signed-off-by: Dirk Behme Signed-off-by: Russell King Documentation/devicetree/bindings/arm/l2c2x0.txt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 8ecd7f5970c52240d2847e45ce3eb278e7b0021c Author: Dirk B Date: Wed Dec 16 08:09:10 2015 +0100 ARM: 8483/1: Documentation: l2c: Rename l2cc to l2c2x0 The documentation in the l2cc.txt is specific to the L2 cache controllers L2C210/L2C220/L2C310 (also known as PL210/PL220/PL310 and variants) and not generic as the file name implies. It's not valid for integrated L2 controllers as found in e.g. Cortex-A15/A7/A57/A53. Reflect this by adapting the file name accordingly. Signed-off-by: Dirk Behme Signed-off-by: Russell King Documentation/devicetree/bindings/arm/l2c2x0.txt | 93 ++++++++++++++++++++++++ Documentation/devicetree/bindings/arm/l2cc.txt | 93 ------------------------ 2 files changed, 93 insertions(+), 93 deletions(-) commit 9955a7835bf376e12482583958b2661f501b868b Author: Kishon Vijay Abraham I Date: Mon Dec 21 14:24:13 2015 +0530 phy: omap-usb2: use *syscon* framework API to power on/off the PHY Deprecate using phy-omap-control driver to power on/off the PHY, and use *syscon* framework to do the same. This handles powering on/off the PHY for the USB2 PHYs used in various TI SoCs. Signed-off-by: Kishon Vijay Abraham I Documentation/devicetree/bindings/phy/ti-phy.txt | 8 ++- drivers/phy/phy-omap-usb2.c | 92 +++++++++++++++++++----- include/linux/phy/omap_usb.h | 23 ++++++ 3 files changed, 105 insertions(+), 18 deletions(-) commit 86c574e4bc9d840b8501cf604ea08d98fbd2c23c Author: Kishon Vijay Abraham I Date: Mon Dec 21 14:24:12 2015 +0530 phy: omap-usb2: use omap_usb_power_off to power off the PHY during probe No functional change. Previously omap_control_phy_power() was used to power off the PHY during probe. But once phy-omap-usb2 driver is adapted to use syscon, omap_control_phy_power() cannot be used. Hence used omap_usb_power_off to power off the PHY. Signed-off-by: Kishon Vijay Abraham I Acked-by: Roger Quadros drivers/phy/phy-omap-usb2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3f2362c56f7ab0bf2ca1281227ca61f77c0c63fd Author: Kishon Vijay Abraham I Date: Mon Dec 21 14:24:11 2015 +0530 phy: ti-pipe3: use *syscon* framework API to set PCS value of the PHY Deprecate using phy-omap-control driver to set PCS value of the PHY and start using *syscon* API to do the same. Signed-off-by: Kishon Vijay Abraham I Acked-by: Roger Quadros Acked-by: Rob Herring Documentation/devicetree/bindings/phy/ti-phy.txt | 2 ++ drivers/phy/phy-ti-pipe3.c | 34 ++++++++++++++++++++++-- 2 files changed, 34 insertions(+), 2 deletions(-) commit c396a1c7ee1b3b460cf01824b03e0627a7db5b01 Author: Kishon Vijay Abraham I Date: Mon Dec 21 14:24:10 2015 +0530 phy: ti-pipe3: use *syscon* framework API to power on/off the PHY Deprecate using phy-omap-control driver to power on/off the PHY and use *syscon* framework to do the same. Signed-off-by: Kishon Vijay Abraham I Acked-by: Rob Herring Documentation/devicetree/bindings/phy/ti-phy.txt | 10 ++- drivers/phy/phy-ti-pipe3.c | 88 ++++++++++++++++++++---- 2 files changed, 81 insertions(+), 17 deletions(-) commit cc34ace73dfa24d9cda2fd2c4666e38a515a9052 Author: Kishon Vijay Abraham I Date: Mon Dec 21 14:24:09 2015 +0530 phy: ti-pipe3: use ti_pipe3_power_off to power off the PHY during probe No functional change. Previously omap_control_phy_power() was used to power off the PHY during probe. But once PIPE3 driver is adapted to use syscon, omap_control_phy_power() cannot be used. Hence used ti_pipe3_power_off to power off the PHY. Signed-off-by: Kishon Vijay Abraham I Acked-by: Roger Quadros drivers/phy/phy-ti-pipe3.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 1fe521225a830e159449cba9f7b365ba207e22c9 Author: Kishon Vijay Abraham I Date: Mon Dec 21 14:24:08 2015 +0530 phy: ti-pipe3: move mem resource initialization to a separate function No functional change. Moved mem resource initialization done in probe to a separate function as part of cleaning up ti_pipe3_probe. Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-ti-pipe3.c | 52 +++++++++++++++++++++++++++++----------------- 1 file changed, 33 insertions(+), 19 deletions(-) commit 73bbc78e57c96aba9c7d6473ee4ea8374ae257ee Author: Kishon Vijay Abraham I Date: Mon Dec 21 14:24:07 2015 +0530 phy: ti-pipe3: move sysctrl initialization to a separate function No functional change. Moved sysctrl initialization done in probe to a separate function as part of cleaning up ti_pipe3_probe. Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-ti-pipe3.c | 78 ++++++++++++++++++++++++++-------------------- 1 file changed, 45 insertions(+), 33 deletions(-) commit 234738ea33903a185530a997f9ddff68709929b9 Author: Kishon Vijay Abraham I Date: Mon Dec 21 14:24:06 2015 +0530 phy: ti-pipe3: move clk initialization to a separate function No functional change. Moved clock initialization done in probe to a separate function as part of cleaning up ti_pipe3_probe. Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-ti-pipe3.c | 127 +++++++++++++++++++++++++-------------------- 1 file changed, 72 insertions(+), 55 deletions(-) commit d65ff52eb8ed5c8480fbff9ef720e2b56d9a6fb2 Author: Kishon Vijay Abraham I Date: Mon Dec 21 14:24:05 2015 +0530 phy: ti-pipe3: introduce local struct device* in probe No functional change. Introduce local struct device pointer in probe and replace using &pdev->dev/phy->dev with the local device pointer. This is in preparation to split ti_pipe3_probe and add separate functions for getting mem resource, getting sysctrl and getting clocks. Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-ti-pipe3.c | 54 +++++++++++++++++++++++----------------------- 1 file changed, 27 insertions(+), 27 deletions(-) commit 7118fd9bd975a9f3093239d4c0f4e15356b57fab Author: Matt Roper Date: Fri Dec 18 17:27:01 2015 -0800 drm/fb-helper: Use proper plane mask for fb cleanup pan_display_atomic() calls drm_atomic_clean_old_fb() to sanitize the legacy FB fields (plane->fb and plane->old_fb). However it was building the plane mask to pass to this function incorrectly (the bitwise OR was using plane indices rather than plane masks). The end result was that sometimes the legacy pointers would become out of sync with the atomic pointers. If another operation tried to re-set the same FB onto the plane, we might end up with the pointers back in sync, but improper reference counts, which would eventually lead to system crashes when we accessed a pointer to a prematurely-destroyed FB. The cause here was a very subtle bug introduced in commit: commit 07d3bad6c1210bd21e85d084807ef4ee4ac43a78 Author: Maarten Lankhorst Date: Wed Nov 11 11:29:11 2015 +0100 drm/core: Fix old_fb handling in pan_display_atomic. I found the crashes were most easily reproduced (on i915 at least) by starting X and then VT switching to a VT that wasn't running a console instance...the sequence of vt/fbcon entries that happen in that case trigger a reference count mismatch and crash the system. Cc: Maarten Lankhorst Cc: Daniel Vetter Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93313 Signed-off-by: Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_fb_helper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0202a111f8cc7abf9b45e6f555a707fda1fab6ab Author: Linus Walleij Date: Mon Dec 21 09:40:39 2015 +0100 pinctrl: bcm/cygnys/iproc: fixup rebase issue Somehow this variable name screwed up in some rebase, fixed it. Reported-by: Stephen Rothwell Reported-by: Pramod Kumar Signed-off-by: Linus Walleij drivers/pinctrl/bcm/pinctrl-iproc-gpio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0529357f102b96f68bc199f858d1c3b07f4b674c Merge: a9f1a3e 4ef7675 Author: Linus Walleij Date: Mon Dec 21 09:36:21 2015 +0100 Merge tag 'v4.4-rc6' into devel Linux 4.4-rc6 commit 5d4e8d6463dd7a7fb4f7f0bd1a045036c30b3bed Author: Emmanuel Grumbach Date: Thu Dec 17 10:41:49 2015 +0200 iwlwifi: fix printf specifier Smatch warned about a bad specifier being used. Fix that. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/iwl-eeprom-parse.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 23ba93403b29f828feb29c06397355213a5af4b5 Author: Emmanuel Grumbach Date: Thu Dec 17 11:55:13 2015 +0200 iwlwifi: remove unused parameter from grab_nic_access All the callers used silent = false. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/dvm/main.c | 4 ++-- drivers/net/wireless/intel/iwlwifi/dvm/tt.c | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-io.c | 14 ++++++------- drivers/net/wireless/intel/iwlwifi/iwl-trans.h | 7 +++---- drivers/net/wireless/intel/iwlwifi/mvm/fw-dbg.c | 4 ++-- drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 27 +++++++++++-------------- drivers/net/wireless/intel/iwlwifi/pcie/tx.c | 2 +- 7 files changed, 28 insertions(+), 32 deletions(-) commit 91f69147d681e47e2aa2ff7dbf4c5468befa8a1b Author: Marek Vasut Date: Mon Dec 21 00:42:01 2015 -0600 ARM: socfpga: dts: Enable MMC support at correct place in the DT The socfpga.dtsi explicitly enabled MMC support, but not all boards are equiped with an MMC card. There are setups which only have QSPI NOR. Therefore, disable the MMC support on socfpga.dtsi level and enable it on per-board basis. Signed-off-by: Marek Vasut Cc: Alan Tull Cc: Dinh Nguyen Cc: Marek Vasut Cc: Olof Johansson Cc: Thor Thayer Cc: Vince Bridgers Signed-off-by: Dinh Nguyen arch/arm/boot/dts/socfpga.dtsi | 1 + arch/arm/boot/dts/socfpga_arria5_socdk.dts | 1 + arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts | 1 + arch/arm/boot/dts/socfpga_cyclone5_mcv.dtsi | 1 + arch/arm/boot/dts/socfpga_cyclone5_socdk.dts | 1 + arch/arm/boot/dts/socfpga_cyclone5_sockit.dts | 1 + 6 files changed, 6 insertions(+) commit 4bb8548df632187d5db50878e71804af5f7c51ad Author: Andrzej Pietrasiewicz Date: Fri Dec 11 16:06:26 2015 +0100 usb: gadget: f_tcm: add configfs support Allow using the tcm function as a component of a gadget composed with ConfigFS. Signed-off-by: Andrzej Pietrasiewicz Acked-by: Sebastian Andrzej Siewior Signed-off-by: Nicholas Bellinger Documentation/ABI/testing/configfs-usb-gadget-tcm | 6 ++ drivers/usb/gadget/Kconfig | 14 +++++ drivers/usb/gadget/function/f_tcm.c | 72 +++++++++++++++++++++-- 3 files changed, 88 insertions(+), 4 deletions(-) commit 9beab5d4f2ef6f5b8f26506d94ed68deb42af882 Author: Andrzej Pietrasiewicz Date: Fri Dec 11 16:06:25 2015 +0100 usb: gadget: f_tcm: use usb_gstrings_attach Do not directly use file static strings definitions in instances of f_tcm. Instead use usb_gstrings_attach. Signed-off-by: Andrzej Pietrasiewicz Acked-by: Sebastian Andrzej Siewior Signed-off-by: Nicholas Bellinger drivers/usb/gadget/function/f_tcm.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) commit c3f890bc79f12d12c2ccabe4bfc0c4a1e01b3184 Author: Andrzej Pietrasiewicz Date: Fri Dec 11 16:06:24 2015 +0100 usb: gadget: f_tcm: remove redundant singleton The only instance is guaranteed with TPG_INSTANCES defined to 1. Signed-off-by: Andrzej Pietrasiewicz Acked-by: Sebastian Andrzej Siewior Signed-off-by: Nicholas Bellinger drivers/usb/gadget/function/f_tcm.c | 9 --------- drivers/usb/gadget/function/tcm.h | 2 -- 2 files changed, 11 deletions(-) commit e5587ea11e243abd2527e4a048e72ee7a885d1f1 Author: Andrzej Pietrasiewicz Date: Fri Dec 11 16:06:23 2015 +0100 usb: gadget: f_tcm: remove compatibility layer There are no old function interface users left. Signed-off-by: Andrzej Pietrasiewicz Acked-by: Sebastian Andrzej Siewior Signed-off-by: Nicholas Bellinger drivers/usb/gadget/function/f_tcm.c | 87 +++---------------------------------- 1 file changed, 6 insertions(+), 81 deletions(-) commit 002407145c9be32d9ae76dbdba711f20c9e65713 Author: Andrzej Pietrasiewicz Date: Fri Dec 11 16:06:22 2015 +0100 usb: gadget: tcm: convert to use new function registration interface Convert the only user of old tcm function interface so that the old interface can be removed. Signed-off-by: Andrzej Pietrasiewicz Acked-by: Sebastian Andrzej Siewior Signed-off-by: Nicholas Bellinger drivers/usb/gadget/legacy/Kconfig | 1 + drivers/usb/gadget/legacy/tcm_usb_gadget.c | 62 +++++++++++++++++++++++++----- 2 files changed, 53 insertions(+), 10 deletions(-) commit dc8c46a5ae770d3d763353e786990bc415bc5560 Author: Andrzej Pietrasiewicz Date: Fri Dec 11 16:06:21 2015 +0100 usb: gadget: f_tcm: convert to new function interface with backward compatibility Converting tcm to the new function interface requires converting USB tcm's function code and its users. This patch converts the f_tcm.c to the new function interface. The file can be now compiled into a separate module usb_f_tcm.ko. The old function interface is provided by means of preprocessor conditional directives. After all users are converted, the old interface can be removed. Signed-off-by: Andrzej Pietrasiewicz Acked-by: Sebastian Andrzej Siewior Signed-off-by: Nicholas Bellinger drivers/usb/gadget/Kconfig | 3 + drivers/usb/gadget/function/Makefile | 2 + drivers/usb/gadget/function/f_tcm.c | 286 ++++++++++++++++++++++++++++- drivers/usb/gadget/function/tcm.h | 2 + drivers/usb/gadget/function/u_tcm.h | 50 +++++ drivers/usb/gadget/legacy/tcm_usb_gadget.c | 1 + 6 files changed, 339 insertions(+), 5 deletions(-) commit 08a1cb0f65fde6f0da1db77b847ea78dc3c102cb Author: Andrzej Pietrasiewicz Date: Fri Dec 11 16:06:20 2015 +0100 usb: gadget: tcm: factor out f_tcm Prepare for converting tcm to new function registration interface. Signed-off-by: Andrzej Pietrasiewicz Acked-by: Sebastian Andrzej Siewior Signed-off-by: Nicholas Bellinger drivers/usb/gadget/function/f_tcm.c | 2145 ++++++++++++++++++++++++++++ drivers/usb/gadget/function/tcm.h | 132 ++ drivers/usb/gadget/legacy/tcm_usb_gadget.c | 2132 +-------------------------- drivers/usb/gadget/legacy/tcm_usb_gadget.h | 132 -- 4 files changed, 2280 insertions(+), 2261 deletions(-) commit e2ffb77a14dbf6a8b47cfec750629ffc2b423e6e Author: Andrzej Pietrasiewicz Date: Fri Dec 11 16:06:19 2015 +0100 usb: gadget: tcm: simplify attribute store function Simplify function code. Signed-off-by: Andrzej Pietrasiewicz Acked-by: Sebastian Andrzej Siewior Signed-off-by: Nicholas Bellinger drivers/usb/gadget/legacy/tcm_usb_gadget.c | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) commit c8afb616499e204440038556a5733338e215ce7f Author: Andrzej Pietrasiewicz Date: Fri Dec 11 16:06:18 2015 +0100 usb: gadget: tcm: use strtobool for a boolean value Simplify the function. Signed-off-by: Andrzej Pietrasiewicz Acked-by: Sebastian Andrzej Siewior Signed-off-by: Nicholas Bellinger drivers/usb/gadget/legacy/tcm_usb_gadget.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit 8c293509c8c351af13863a2f6867c9fe9d4025b3 Author: Andrzej Pietrasiewicz Date: Fri Dec 11 16:06:17 2015 +0100 usb: gadget: tcm: follow naming conventions Prepare for splitting tcm_usb_gadget into legacy gadget proper and f_tcm. Signed-off-by: Andrzej Pietrasiewicz Acked-by: Sebastian Andrzej Siewior Signed-off-by: Nicholas Bellinger drivers/usb/gadget/legacy/tcm_usb_gadget.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) commit c3978ed358ffa9965f146599050daae76bcd499e Author: Andrzej Pietrasiewicz Date: Fri Dec 11 16:06:16 2015 +0100 usb: gadget: tcm: split string definitions into function and device Prepare for factoring out f_tcm from a legacy gadget. Signed-off-by: Andrzej Pietrasiewicz Acked-by: Sebastian Andrzej Siewior Signed-off-by: Nicholas Bellinger drivers/usb/gadget/legacy/tcm_usb_gadget.c | 25 +++++++++++++++++++++---- drivers/usb/gadget/legacy/tcm_usb_gadget.h | 3 +-- 2 files changed, 22 insertions(+), 6 deletions(-) commit 894a2556e7691f87ee4b04e4a4b04a1814c572fa Author: Nicholas Bellinger Date: Fri Dec 11 16:06:15 2015 +0100 tcm_usb_gadget: Fix enabled attribute failure Fix up tcm_usbg_tpg_store_enable() return value to propagate usbg_attach() failure up to user-space if no HDC is found. Reported-by: Andrzej Pietrasiewicz Signed-off-by: Andrzej Pietrasiewicz Acked-by: Sebastian Andrzej Siewior Signed-off-by: Nicholas Bellinger drivers/usb/gadget/legacy/tcm_usb_gadget.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 4fef4e43558af8e880356c2893616bcee8b32867 Author: Nicholas Bellinger Date: Fri Dec 11 16:06:14 2015 +0100 tcm_usb_gadget: Fix nexus leak This patch adds the missing tcm_usbg_drop_nexus() to properly release tcm_usbg_nexus memory during typical ->fabric_drop_tpg() callback shutdown. Reported-by: Andrzej Pietrasiewicz Signed-off-by: Andrzej Pietrasiewicz Acked-by: Sebastian Andrzej Siewior Signed-off-by: Nicholas Bellinger drivers/usb/gadget/legacy/tcm_usb_gadget.c | 3 +++ 1 file changed, 3 insertions(+) commit a0841d447ccc5685852b560a7b0919f4011ec111 Author: Nicholas Bellinger Date: Fri Dec 11 16:06:13 2015 +0100 tcm_usb_gadget: Don't strip off nexus WWPN prefix Avoid stripping off the 'naa.' I_T nexus prefix from configfs attribute store input, so that user-space will get back what it originaly wrote into ../usb_gadget/$WWPN/$TPGT/nexus. Note the SCSI initiator WWPN is purely symbolic for UAS + BOT, so it will not effect host side code. Reported-by: Andrzej Pietrasiewicz Signed-off-by: Andrzej Pietrasiewicz Acked-by: Sebastian Andrzej Siewior Signed-off-by: Nicholas Bellinger drivers/usb/gadget/legacy/tcm_usb_gadget.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 08a0a4f987a4b5827e4111eccc97a9271d24633e Author: Sergei Shtylyov Date: Sat Dec 19 08:17:41 2015 +0900 extcon: add Maxim MAX3355 driver Maxim Integrated MAX3355E chip integrates a charge pump and comparators to enable a system with an integrated USB OTG dual-role transceiver to function as an USB OTG dual-role device. In addition to sensing/controlling Vbus, the chip also passes thru the ID signal from the USB OTG connector. On some Renesas boards, this signal is just fed into the SoC thru a GPIO pin -- there's no real OTG controller, only host and gadget USB controllers sharing the same USB bus; however, we'd like to allow host or gadget drivers to be loaded depending on the cable type, hence the need for the MAX3355 extcon driver. The Vbus status signals are also wired to GPIOs (however, we aren't currently interested in them), the OFFVBUS# signal is controlled by the host controllers, there's also the SHDN# signal wired to a GPIO, it should be driven high for the normal operation. Signed-off-by: Sergei Shtylyov Acked-by: Chanwoo Choi Acked-by: Rob Herring [cw00.choi: Add the GPIOLIB dependency] Signed-off-by: Chanwoo Choi .../devicetree/bindings/extcon/extcon-max3355.txt | 21 +++ drivers/extcon/Kconfig | 9 ++ drivers/extcon/Makefile | 1 + drivers/extcon/extcon-max3355.c | 146 +++++++++++++++++++++ 4 files changed, 177 insertions(+) commit 4157c2fc84b21c06d9fdbaf85e8b7e0f944433f2 Merge: 88b7b7c b122bcd Author: Rafael J. Wysocki Date: Mon Dec 21 03:15:15 2015 +0100 Merge back earlier cpufreq material for v4.5. commit e219aafe50fd546b8686582ddbafd24c3c2eda04 Merge: ffe1285 24c96dc Author: Rafael J. Wysocki Date: Mon Dec 21 03:14:03 2015 +0100 Merge back earlier 'pm-domains' material for v4.5. commit a436b6a19f57656a6557439523923d89eb4a880d Author: Rafael J. Wysocki Date: Thu Dec 17 02:54:26 2015 +0100 PM / runtime: Add new helper for conditional usage count incrementation Introduce a new runtime PM function, pm_runtime_get_if_in_use(), that will increment the device's runtime PM usage counter and return 1 if its status is RPM_ACTIVE and its usage counter is greater than 0 at the same time (0 will be returned otherwise). This is useful for things that should only be done if the device is active (from the runtime PM perspective) and used by somebody (as indicated by the usage counter) already and they are not worth bothering otherwise. Requested-by: Imre Deak Reviewed-by: Ulf Hansson Signed-off-by: Rafael J. Wysocki Documentation/power/runtime_pm.txt | 6 ++++++ drivers/base/power/runtime.c | 24 ++++++++++++++++++++++++ include/linux/pm_runtime.h | 5 +++++ 3 files changed, 35 insertions(+) commit d79d75b5c5182fd94225996db71e06f9cbc7faed Author: Krzysztof Opasiak Date: Fri Dec 11 16:06:12 2015 +0100 fs: configfs: Add unlocked version of configfs_depend_item() This change is necessary for the SCSI target usb gadget composed with configfs. In this case configfs will be used for two different purposes: to compose a usb gadget and to configure the target part. If an instance of tcm function is created in $CONFIGFS_ROOT/usb_gadget//functions a tpg can be created in $CONFIGFS_ROOT/target/usb_gadget//, but after a tpg is created the tcm function must not be removed until its corresponding tpg is gone. While the configfs_depend/undepend_item() are meant exactly for creating this kind of dependencies, they are not suitable if the other kernel subsystem happens to be another subsystem in configfs, so this patch adds unlocked versions meant for configfs callbacks. Above description has been provided by: Andrzej Pietrasiewicz In configfs_depend_item() we have to consider two possible cases: 1) When we are called to depend another item in the same subsystem as caller In this case we should skip locking configfs root as we know that configfs is in valid state and our subsystem will not be unregistered during this call. 2) When we are called to depend item in different subsystem than our caller In this case we are also sure that configfs is in valid state but we have to lock root of configfs to avoid unregistration of target's subsystem. As it is other than caller's subsystem, there may be nothing what protects us against unregistration of that subsystem. Signed-off-by: Krzysztof Opasiak Cc: Joel Becker Cc: Christoph Hellwig Signed-off-by: Nicholas Bellinger fs/configfs/dir.c | 73 ++++++++++++++++++++++++++++++++++++++++++++++++ include/linux/configfs.h | 16 +++++++++++ 2 files changed, 89 insertions(+) commit 9a70adfff3379a6511483bd60dac06fda49b14a8 Author: Krzysztof Opasiak Date: Fri Dec 11 16:06:11 2015 +0100 fs: configfs: Factor out configfs_find_subsys_dentry() configfs_depend_item() is quite complicated and should be split up into smaller functions. This also allow to share this code with other functions. Signed-off-by: Krzysztof Opasiak Cc: Joel Becker Cc: Christoph Hellwig Signed-off-by: Nicholas Bellinger fs/configfs/dir.c | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) commit 9fb434e7544b5013d1c2d8a2306f8b562cb52d80 Author: Krzysztof Opasiak Date: Fri Dec 11 16:06:10 2015 +0100 fs: configfs: Factor out configfs_do_depend_item() configfs_depend_item() is quite complicated and should be split up into smaller functions. This also allow to share this code with other functions. Signed-off-by: Krzysztof Opasiak Cc: Joel Becker Cc: Christoph Hellwig Signed-off-by: Nicholas Bellinger fs/configfs/dir.c | 41 ++++++++++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 15 deletions(-) commit 9a9e3415edd567813d52c8de402042b9720c54f5 Author: Krzysztof Opasiak Date: Fri Dec 11 16:06:09 2015 +0100 fs: configfs: Drop unused parameter from configfs_undepend_item() subsys parameter is never used by configfs_undepend_item() so there is no point in passing it to this function. Signed-off-by: Krzysztof Opasiak Cc: Joel Becker Cc: Christoph Hellwig Signed-off-by: Nicholas Bellinger drivers/target/target_core_configfs.c | 2 +- fs/configfs/dir.c | 3 +-- fs/ocfs2/cluster/nodemanager.c | 2 +- include/linux/configfs.h | 5 +++-- 4 files changed, 6 insertions(+), 6 deletions(-) commit dfff24bde7fb8d57482e907d5dfb0be3a9e28119 Author: Heiko Stuebner Date: Fri Dec 18 17:51:55 2015 +0100 clk: rockchip: only enter pll slow-mode directly before reboots on rk3288 As commit 1d33929e2a2b ("clk: rockchip: switch PLLs to slow mode before reboot for rk3288") states, switching the PLLs to slow-mode is only necessary when rebooting using the soft-reset done through the CRU. The dwc2 controllers used create really big number of interrupts in special constellations involving usb-hubs and their number is so high, it can even overwhelm the interrupt handler if the cpu-speed os to low. Right now the PLLs are put into slow-mode in a shutdown syscore_ops callback which means it happens on all reboots (not only the soft-reset ones) and even on poweroff actions. This can result in the system not powering off and getting stuck instead, so we should move the slow-mode change nearer to the actual reboot action. For this we introduce the possiblity to also set a callback that gets called from the restart-handler directly prior to restarting the system and move the shutdown-callback to this new option. With this the slow-mode switch is done only on the necessary reboots and also has a smaller possibility of causing artifacts. Fixes: 1d33929e2a2b ("clk: rockchip: switch PLLs to slow mode before reboot for rk3288") Signed-off-by: Heiko Stuebner Reviewed-by: Douglas Anderson drivers/clk/rockchip/clk-rk3036.c | 2 +- drivers/clk/rockchip/clk-rk3188.c | 2 +- drivers/clk/rockchip/clk-rk3228.c | 2 +- drivers/clk/rockchip/clk-rk3288.c | 4 ++-- drivers/clk/rockchip/clk-rk3368.c | 2 +- drivers/clk/rockchip/clk.c | 7 ++++++- drivers/clk/rockchip/clk.h | 2 +- 7 files changed, 13 insertions(+), 8 deletions(-) commit a440f1aa74da9cb1a77afcfadb12e1d4a78e7e02 Author: Saurabh Sengar Date: Mon Dec 21 00:29:30 2015 +0530 NFC: add rx delay sysfs parameter for nfcsim workqueue added the rx delay parameter as a device tunable parameter. Signed-off-by: Saurabh Sengar Signed-off-by: Samuel Ortiz drivers/nfc/nfcsim.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit d3d33aabac51341065bcce0e9c2d9d27902a08c4 Author: Andy Shevchenko Date: Fri Dec 18 21:14:13 2015 +0200 ALSA: fm801: store struct device instead of pci_dev There is no need to store struct pci_dev in struct fm801. Generic struct device can be easily translated to struct pci_dev whenever it's needed, in particular for one user for now. Signed-off-by: Andy Shevchenko Signed-off-by: Takashi Iwai sound/pci/fm801.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 997c87dad2a322516db391c7df440bd89e18fc31 Author: Andy Shevchenko Date: Fri Dec 18 21:14:12 2015 +0200 ALSA: fm801: put curly braces around empty if-body The compiler complains on unused condition as follows sound/pci/fm801.c: In function ‘snd_fm801_interrupt’: sound/pci/fm801.c:585:3: warning: suggest braces around empty body in an ‘if’ statement [-Wempty-body] Put the curly braces around empty body as suggested. Signed-off-by: Andy Shevchenko Signed-off-by: Takashi Iwai sound/pci/fm801.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 4b5c15f746db70efc710369f62c6e1d323e20fb9 Author: Andy Shevchenko Date: Fri Dec 18 21:14:11 2015 +0200 ALSA: fm801: convert rest outw() / inw() to use helpers The patch introduces two new helpers fm801_iowrite16() and fm801_ioread16() to write and read the registers by offset. Previously similar was done to access the hardware registers by their names. Signed-off-by: Andy Shevchenko Signed-off-by: Takashi Iwai sound/pci/fm801.c | 36 ++++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 10 deletions(-) commit e97e98c63b43040732ad5d1f0b38ad4a8371c73a Author: Andy Shevchenko Date: Fri Dec 18 21:14:10 2015 +0200 ALSA: fm801: explicitly free IRQ line Otherwise we will have a warning on ->remove() since device is a PCI one. WARNING: CPU: 4 PID: 1411 at /home/andy/prj/linux/fs/proc/generic.c:575 remove_proc_entry+0x137/0x160() remove_proc_entry: removing non-empty directory 'irq/21', leaking at least 'snd_fm801' Fixes: 5618955c4269 (ALSA: fm801: move to pcim_* and devm_* functions) Signed-off-by: Andy Shevchenko Signed-off-by: Takashi Iwai sound/pci/fm801.c | 2 ++ 1 file changed, 2 insertions(+) commit 46325371b230cc66c743925c930a17e7d0b8211e Author: Nicholas Mc Guire Date: Sat Dec 19 15:23:13 2015 +0100 ALSA: oss: consolidate kmalloc/memset 0 call to kzalloc This is an API consolidation only. The use of kmalloc + memset to 0 is equivalent to kzalloc. Signed-off-by: Nicholas Mc Guire Signed-off-by: Takashi Iwai sound/core/oss/pcm_oss.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit a3f7ba5c8825879cc76110bc8dcadf92a6d5fa8e Author: Eliad Peller Date: Wed Nov 11 17:23:59 2015 +0200 iwlwifi: update key params on d0i3 entrance/exit In order to let the fw do offloading properly, we need to provide various key data (e.g. PN). Configure the params on d0i3 entrance, and update them back on d0i3 exit. Since d3 code is now called in d0i3 which requires runtime pm only, make d3.0 depend on CONFIG_PM (rather than CONFIG_PM_SLEEP), and add required #ifdefs and wrappers where needed, so both CONFIG_PM=n and CONFIG_PM_RUNTIME=n configurations will build correctly. Signed-off-by: Eliad Peller Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/Makefile | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 84 +++++++++++++++++++++---- drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 31 ++++++--- drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 64 +++++++++++-------- 4 files changed, 136 insertions(+), 45 deletions(-) commit 8be30c13ebafdf743ab638a83095715a01bc1071 Author: Ayala Beker Date: Wed Dec 16 00:32:07 2015 +0200 iwlwifi: mvm: Change number of associated stations when station becomes associated Currently, the number of associated stations gets updated when adding a new station or removing it. This is incorrect as it's possible that a station was inserted before it was associated Fix this by increasing/decreasing ap_assoc_sta_count whenever a station transitions in/out the associated state. Signed-off-by: Ayala Beker Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 14 ++++++++------ drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 5 ----- 2 files changed, 8 insertions(+), 11 deletions(-) commit 8d0e4f8f737d808b9fa296813470f34559a9ac00 Author: Oren Givon Date: Thu Dec 17 13:44:06 2015 +0200 iwlwifi: Update PCI IDs for 8000 and 9000 series A new PCI IDs update to the 8000 and 9000 series. type=feature Signed-off-by: Oren Givon Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit e8f0c4d87c391f16756e066323d4edf1fd567213 Author: Emmanuel Grumbach Date: Wed Dec 16 13:42:17 2015 +0200 iwlwifi: mvm: dump more registers upon error These registers can help to debug PHY issues. Since this adds a significant amount of work to the debug collection phase, dump the periphery registers only if the firmware is stopped. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/fw-dbg.c | 29 ++++++++++++++----------- 1 file changed, 16 insertions(+), 13 deletions(-) commit 585a6fccf5b843ded7c37b3090f811484d76c509 Author: Sara Sharon Date: Tue Dec 1 13:48:18 2015 +0200 iwlwifi: mvm: infrastructure for frame-release message Incoming hardware will send frame release notifications to the reorder buffer in order to update with the BA session status and up to date NSSN. This patch enables the API. Signed-off-by: Johannes Berg Signed-off-by: Sara Sharon Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/fw-api-rx.h | 2 ++ drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 2 ++ drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 8 +++++++- drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 6 ++++++ 4 files changed, 17 insertions(+), 1 deletion(-) commit 780e87c29e77688a453a657ba14c9b8215dbec1c Author: Johannes Berg Date: Thu Sep 3 14:56:10 2015 +0200 iwlwifi: mvm: add 9000 series RX processing Convert the convert the new infrastructure added by previous patches to actually use the new RX descriptor layout. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/Makefile | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/fw-api-rx.h | 6 + drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 3 + drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 6 +- drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 372 +++++++++++++++++++++ 5 files changed, 385 insertions(+), 4 deletions(-) commit 5f7a18477c6cb36a435554b9744160e76bc9eb69 Author: Johannes Berg Date: Fri Dec 11 09:36:10 2015 +0100 iwlwifi: mvm: change iwl_mvm_get_key_sta_id() to return the station The code in iwl_mvm_update_tkip_key() is now pretty much duplicated with the code in iwl_mvm_get_key_sta_id() doing the station ID lookup again after it was already done. Change iwl_mvm_get_key_sta_id() to iwl_mvm_get_key_sta(), returning the mvm_sta pointer, to allow that duplicate code to be removed. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 53 ++++++++++++---------------- 1 file changed, 22 insertions(+), 31 deletions(-) commit 0e39eb0386841fc71a86ad3feb5ddff553d2888e Author: Chaya Rachel Ivgi Date: Thu Dec 3 15:51:46 2015 +0200 iwlwifi: mvm: Add a station in monitor mode Currently when creating a new vif in monitor mode the driver doesn't allocate a specific station. This causes that in the situation that tx traffic is injected, the tx queues are not scheduled, with the result of a TFD queue hang. Fix that by allocating a station and ensuring its tx queues are scheduled. This fixes https://bugzilla.kernel.org/show_bug.cgi?id=104591 Signed-off-by: Chaya Rachel Ivgi Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | 16 ++++++++++- drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 6 +++++ drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 1 + drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 33 ++++++++++++++++++++--- drivers/net/wireless/intel/iwlwifi/mvm/sta.h | 6 +++++ 5 files changed, 58 insertions(+), 4 deletions(-) commit c3e230b167a9d618c4eb41c0a5ba1851d33d6dbd Author: David Spinadel Date: Sun Nov 22 16:37:36 2015 +0200 iwlwifi: mvm: add extended dwell time When doing active scan on crowded channels we are likely to miss probe responses due to collisions. To overcome this issue we use an extended dwell time on channels 1, 6 and 11; this dwell time is set to 100. In case of fragmented scan extended dwell time is the maximum out of channel time - 44 msec. Fragmented active scan will be addressed later. Extended dwell time isn't used in sched scan or p2p find. Signed-off-by: David Spinadel Signed-off-by: Emmanuel Grumbach .../net/wireless/intel/iwlwifi/mvm/fw-api-scan.h | 22 +++++++----- drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 41 ++++++++++++++++------ 2 files changed, 45 insertions(+), 18 deletions(-) commit c81240707c71f343d96dae3537997682a9eb436d Author: Emmanuel Grumbach Date: Wed Dec 16 11:26:09 2015 +0200 iwlwifi: mvm: small update in the firmware API Small change in firmware API, no functional change. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/fw-api-rx.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit c91b865cb14d9dd7b0e411bc4546ac115900970d Author: Golan Ben-Ami Date: Mon Nov 30 14:30:21 2015 +0200 iwlwifi: mvm: support description for user triggered fw dbg collection Add to the user triggered fw debug collection support for describing the reason of the trigger. This could be useful for identifying a dump by a unique id, passed as a description. Signed-off-by: Golan Ben-Ami Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 70b4c53646e5960fd94f67c033aeca519908c3e9 Author: Sara Sharon Date: Thu Nov 19 13:12:15 2015 +0200 iwlwifi: mvm: enable L3 filtering Firmware will support filtering multicast L3 packets. The L3 filtering is configured by the WOWLAN_CONFIG command. All flags should be enabled by default. Older firmware is not affected as it does not look into this field. Signed-off-by: Sara Sharon Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 2 ++ drivers/net/wireless/intel/iwlwifi/mvm/fw-api-d3.h | 13 +++++++++++-- drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 3 ++- 3 files changed, 15 insertions(+), 3 deletions(-) commit 9c3deeb51b664db183e00688caf8da2a096d16e5 Author: Luca Coelho Date: Wed Nov 11 01:06:17 2015 +0200 iwlwifi: mvm: refactor the way fw_key_table is handled Instead of keeping the fw_key_table bits set when the keys are removed (i.e. in D3 entry or HW_RESTART flows), clear them and set them again only when the keys have been successfully re-added. This makes the bitmask more closely tied to the actual firmware programming. Signed-off-by: Luca Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 3 +++ drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 1 + drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 10 ++++------ 3 files changed, 8 insertions(+), 6 deletions(-) commit 6ae57b293be8588f9523ae39a5475940772c31d0 Author: Emmanuel Grumbach Date: Wed Dec 16 10:50:03 2015 +0200 iwlwifi: 9000: increase the number of queues 9000 family devices have 31 queues. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/iwl-9000.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6eb5e529d7e3bf85b50ab0b5178df905dfc53b06 Author: Emmanuel Grumbach Date: Sun Oct 18 09:31:24 2015 +0300 iwlwifi: pcie: build an A-MSDU using TSO core When the op_mode sends an skb whose payload is bigger than MSS, PCIe will create an A-MSDU out of it. PCIe assumes that the skb that is coming from the op_mode can fit in one A-MSDU. It is the op_mode's responsibility to make sure that this guarantee holds. Additional headers need to be built for the subframes. The TSO core code takes care of the IP / TCP headers and the driver takes care of the 802.11 subframe headers. These headers are stored on a per-cpu page that is re-used for all the packets handled on that same CPU. Each skb holds a reference to that page and releases the page when it is reclaimed. When the page gets full, it is released and a new one is allocated. Since any SKB that doesn't go through the fast-xmit path of mac80211 will be segmented, we can assume here that the packet is not WEP / TKIP and has a proper SNAP header. Signed-off-by: Emmanuel Grumbach .../net/wireless/intel/iwlwifi/iwl-devtrace-data.h | 17 ++ drivers/net/wireless/intel/iwlwifi/iwl-trans.h | 10 +- drivers/net/wireless/intel/iwlwifi/pcie/internal.h | 7 + drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 16 ++ drivers/net/wireless/intel/iwlwifi/pcie/tx.c | 283 ++++++++++++++++++++- 5 files changed, 328 insertions(+), 5 deletions(-) commit f541316928d1b3f127c5dfc1d49a77a998a279da Author: Afzal Mohammed Date: Wed Nov 11 12:39:13 2015 +0530 ARM: multi_v7_defconfig: enable TPS65217 regulator Enable TPS65217 regulator to have rootfs in MMC for Beagle Bone's. Suggested-by: Kishon Vijay Abraham I Signed-off-by: Afzal Mohammed Signed-off-by: Olof Johansson arch/arm/configs/multi_v7_defconfig | 2 ++ 1 file changed, 2 insertions(+) commit 20f0c63ccb122471c8ee293b74d0a7ff6ea5ba3c Author: Masahiro Yamada Date: Thu Nov 5 15:47:55 2015 +0900 ARM: uniphier: select PINCTRL The UniPhier SoCs support pinctrl drivers. Signed-off-by: Masahiro Yamada Signed-off-by: Olof Johansson arch/arm/mach-uniphier/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 076ef440708bc28d821cebb2dbca64e3c917ac73 Author: Nicholas Mc Guire Date: Sun Dec 20 15:06:18 2015 +0100 ibmveth: consolidate kmalloc of array, memset 0 to kcalloc This is an API consolidation only. The use of kmalloc + memset to 0 is equivalent to kcalloc in this case as it is allocating an array of elements. Signed-off-by: Nicholas Mc Guire Signed-off-by: David S. Miller drivers/net/ethernet/ibm/ibmveth.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit c6b5df0daf0ecbb986420ea7342a6bd9c71619a9 Author: Julia Lawall Date: Fri Nov 13 13:04:41 2015 +0100 nfc: s3fwrn5: constify s3fwrn5_phy_ops structures The s3fwrn5_phy_ops structure is never modified, so declare it as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Acked-by: Robert Baldyga Signed-off-by: Samuel Ortiz drivers/nfc/s3fwrn5/core.c | 2 +- drivers/nfc/s3fwrn5/i2c.c | 2 +- drivers/nfc/s3fwrn5/s3fwrn5.h | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) commit 5beb0c435bdde35a09376566b0e28f7df87c9f68 Author: Jarkko Sakkinen Date: Sat Oct 31 17:53:44 2015 +0200 keys, trusted: seal with a TPM2 authorization policy TPM2 supports authorization policies, which are essentially combinational logic statements repsenting the conditions where the data can be unsealed based on the TPM state. This patch enables to use authorization policies to seal trusted keys. Two following new options have been added for trusted keys: * 'policydigest=': provide an auth policy digest for sealing. * 'policyhandle=': provide a policy session handle for unsealing. If 'hash=' option is supplied after 'policydigest=' option, this will result an error because the state of the option would become mixed. Signed-off-by: Jarkko Sakkinen Tested-by: Colin Ian King Reviewed-by: Mimi Zohar Acked-by: Peter Huewe Documentation/security/keys-trusted-encrypted.txt | 34 +++++++++++++---------- drivers/char/tpm/tpm2-cmd.c | 24 +++++++++++++--- include/keys/trusted-type.h | 4 +++ security/keys/trusted.c | 26 +++++++++++++++++ 4 files changed, 70 insertions(+), 18 deletions(-) commit 5ca4c20cfd37bac6486de040e9951b3b34755238 Author: Jarkko Sakkinen Date: Thu Nov 5 21:43:06 2015 +0200 keys, trusted: select hash algorithm for TPM2 chips Added 'hash=' option for selecting the hash algorithm for add_key() syscall and documentation for it. Added entry for sm3-256 to the following tables in order to support TPM_ALG_SM3_256: * hash_algo_name * hash_digest_size Includes support for the following hash algorithms: * sha1 * sha256 * sha384 * sha512 * sm3-256 Signed-off-by: Jarkko Sakkinen Tested-by: Colin Ian King Reviewed-by: James Morris Reviewed-by: Mimi Zohar Acked-by: Peter Huewe Documentation/security/keys-trusted-encrypted.txt | 3 ++ crypto/hash_info.c | 2 ++ drivers/char/tpm/tpm.h | 10 +++++-- drivers/char/tpm/tpm2-cmd.c | 36 +++++++++++++++++++++-- include/crypto/hash_info.h | 3 ++ include/keys/trusted-type.h | 1 + include/uapi/linux/hash_info.h | 1 + security/keys/Kconfig | 1 + security/keys/trusted.c | 27 ++++++++++++++++- 9 files changed, 77 insertions(+), 7 deletions(-) commit 5208cc83423dde06924121a85368c721a27ca555 Author: Jarkko Sakkinen Date: Sat Dec 12 13:19:52 2015 +0200 keys, trusted: fix: *do not* allow duplicate key options The trusted keys option parsing allows specifying the same option multiple times. The last option value specified is used. This is problematic because: * No gain. * This makes complicated to specify options that are dependent on other options. This patch changes the behavior in a way that option can be specified only once. Reported-by: James Morris James Morris Reviewed-by: Mimi Zohar Signed-off-by: Jarkko Sakkinen Acked-by: Peter Huewe security/keys/trusted.c | 3 +++ 1 file changed, 3 insertions(+) commit 6674ff145eef1f158e3d1d065cb1e19f315d909b Author: Stefan Berger Date: Wed Dec 9 08:52:01 2015 -0500 tpm_ibmvtpm: properly handle interrupted packet receptions When the TPM response reception is interrupted in the wait_event_interruptable call, the TPM is still busy processing the command and will only deliver the response later. So we have to wait for an outstanding response before sending a new request to avoid trying to put a 2nd request into the CRQ. Also reset the res_len before sending a command so we will end up in that wait_event_interruptable() waiting for the response rather than reading the command packet as a response. The easiest way to trigger the problem is to run the following cd /sys/device/vio/71000004 while :; cat pcrs >/dev/null; done And press Ctrl-C. This will then display an error tpm_ibmvtpm 71000004: tpm_transmit: tpm_recv: error -4 followed by several other errors once interaction with the TPM resumes. tpm_ibmvtpm 71000004: A TPM error (101) occurred attempting to determine the number of PCRS. Signed-off-by: Stefan Berger Tested-by: Hon Ching(Vicky) Lo Reviewed-by: Jarkko Sakkinen Reviewed-by: Ashley Lai Signed-off-by: Jarkko Sakkinen Acked-by: Peter Huewe drivers/char/tpm/tpm_ibmvtpm.c | 22 ++++++++++++++++++++-- drivers/char/tpm/tpm_ibmvtpm.h | 1 + 2 files changed, 21 insertions(+), 2 deletions(-) commit b8ba1e744445d65dad7dd61db909e7f2b89df35e Author: Jason Gunthorpe Date: Wed Nov 25 14:05:36 2015 -0700 tpm_tis: Tighten IRQ auto-probing auto-probing doesn't work with shared interrupts, and the auto detection interrupt range is for x86 only. Signed-off-by: Jason Gunthorpe Reviewed-by: Jarkko Sakkinen Tested-by: Jarkko Sakkinen Tested-by: Martin Wilck Tested-by: Scot Doyle Signed-off-by: Jarkko Sakkinen Acked-by: Peter Huewe drivers/char/tpm/tpm_tis.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) commit e3837e74a06dc38ab79529758a3667fbff2fdc17 Author: Jason Gunthorpe Date: Wed Nov 25 14:05:35 2015 -0700 tpm_tis: Refactor the interrupt setup Now that the probe and run cases are merged together we can use a much simpler setup flow where probe and normal setup are done with exactly the same code. Since the new flow always calls tpm_gen_interrupt to confirm the IRQ there is also no longer any need to call tpm_get_timeouts twice. Signed-off-by: Jason Gunthorpe Reviewed-by: Jarkko Sakkinen Tested-by: Jarkko Sakkinen Tested-by: Martin Wilck Tested-by: Scot Doyle Signed-off-by: Jarkko Sakkinen Acked-by: Peter Huewe drivers/char/tpm/tpm_tis.c | 184 +++++++++++++++++++++------------------------ 1 file changed, 84 insertions(+), 100 deletions(-) commit 7ab4032fa579cd54be6a986a5cfd7f374b6bf02d Author: Jason Gunthorpe Date: Wed Nov 25 14:05:34 2015 -0700 tpm_tis: Get rid of the duplicate IRQ probing code The new code that works directly in tpm_tis_send is able to handle IRQ probing duties as well, so just use it for everything. Signed-off-by: Jason Gunthorpe Reviewed-by: Jarkko Sakkinen Tested-by: Jarkko Sakkinen Tested-by: Martin Wilck Tested-by: Scot Doyle Signed-off--by: Jarkko Sakkinen Acked-by: Peter Huewe drivers/char/tpm/tpm.h | 1 - drivers/char/tpm/tpm_tis.c | 64 +++++++++++++++------------------------------- 2 files changed, 20 insertions(+), 45 deletions(-) commit 25112048cd59930e23775cafb88e18cfb484892c Author: Jason Gunthorpe Date: Wed Nov 25 14:05:32 2015 -0700 tpm: rework tpm_get_timeouts() IRQ probing needs to know that the TPM is working before trying to probe, so move tpm_get_timeouts() to the top of the tpm_tis_init(). This has the advantage of also getting the correct timeouts loaded before doing IRQ probing. All the timeout handling code is moved to tpm_get_timeouts() in order to remove duplicate code in tpm_tis and tpm_crb. [jarkko.sakkinen@linux.intel.com: squashed two patches together and improved the commit message.] Signed-off-by: Jason Gunthorpe Reviewed-by: Jarkko Sakkinen Tested-by: Jarkko Sakkinen Tested-by: Martin Wilck Tested-by: Scot Doyle Signed-off-by: Jarkko Sakkinen Acked-by: Peter Huewe drivers/char/tpm/tpm-interface.c | 15 +++++++++++++++ drivers/char/tpm/tpm_crb.c | 14 +++----------- drivers/char/tpm/tpm_tis.c | 33 ++++++++++++++++----------------- 3 files changed, 34 insertions(+), 28 deletions(-) commit 036bb38ffb3e4c92361108f324364b0341cd9e31 Author: Jason Gunthorpe Date: Wed Nov 25 14:05:31 2015 -0700 tpm_tis: Ensure interrupts are disabled when the driver starts This should be done very early, before anything could possibly cause the TPM to generate an interrupt. If the IRQ line is shared with another driver causing an interrupt before setting up our handler will be very bad. Signed-off-by: Jason Gunthorpe Reviewed-by: Jarkko Sakkinen Tested-by: Jarkko Sakkinen Tested-by: Martin Wilck Tested-by: Scot Doyle Signed-off-by: Jarkko Sakkinen Acked-by: Peter Huewe drivers/char/tpm/tpm_tis.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) commit 727f28b8ca24a581c7bd868326b8cea1058c720a Author: Jason Gunthorpe Date: Wed Nov 25 14:05:30 2015 -0700 tpm_tis: Use devm_free_irq not free_irq The interrupt is always allocated with devm_request_irq so it must always be freed with devm_free_irq. Fixes: 448e9c55c12d ("tpm_tis: verify interrupt during init") Signed-off-by: Jason Gunthorpe Acked-by: Jarkko Sakkinen Tested-by: Jarkko Sakkinen Tested-by: Martin Wilck Signed-off-by: Jarkko Sakkinen Acked-by: Peter Huewe drivers/char/tpm/tpm_tis.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 806f50c729c2d9f80500014f1d20c0ac74e66082 Author: Luka Karinja Date: Sun Dec 20 13:36:06 2015 +0100 Bluetooth: hci_bcm: Add BCM2E65 ACPI ID Add BCM2E65 device in acpi_device_id table used on Asus T100TAF. Signed-off-by: Luka Karinja Signed-off-by: Marcel Holtmann drivers/bluetooth/hci_bcm.c | 1 + 1 file changed, 1 insertion(+) commit 3f73b8cad1d2923bf27caeaba705c4a64b287f1e Author: Emmanuel Grumbach Date: Mon Oct 26 15:39:22 2015 +0200 iwlwifi: clear ieee80211_tx_info->driver_data in the op_mode The transport will need to use the info->driver_data pointers. Since the op_mode has this memory hot in cache, clear it there. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/dvm/tx.c | 1 + drivers/net/wireless/intel/iwlwifi/iwl-trans.h | 3 ++- drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) commit 3a0b2a4225ede9205af12511c9b06ba29d94a08f Author: Emmanuel Grumbach Date: Wed Oct 14 22:10:50 2015 +0300 iwlwifi: pcie: re-organize code towards TSO The code that handles the TBs that contain the WiFi payload will be changed for TSO. Move the current code into a separate function. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/pcie/tx.c | 113 +++++++++++++++------------ 1 file changed, 64 insertions(+), 49 deletions(-) commit a3713f8bdd9c840c902998fd6133d94031974960 Author: Emmanuel Grumbach Date: Wed Oct 14 14:16:35 2015 +0300 iwlwifi: mvm: prepare the code towards TSO implementation Differentiate between the cases where the skb is a large send and the other cases. Advertise TSO even if, at this stage, skb_gso_segment will be called and it will do all the work. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 3 +- drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 78 ++++++++++++++++++++++- 2 files changed, 78 insertions(+), 3 deletions(-) commit 41837ca962ecb4ae7d98b00f94a51e737c8384ea Author: Emmanuel Grumbach Date: Wed Oct 21 09:00:07 2015 +0300 iwlwifi: pcie: allow to pretend to have Tx CSUM for debug Allow to configure the driver to pretend to have TX CSUM offload support. This will be useful to test the TSO flows that will come in further patches. This configuration is disabled by default. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/iwl-trans.h | 2 ++ drivers/net/wireless/intel/iwlwifi/mvm/constants.h | 1 + drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 3 +++ drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 1 + drivers/net/wireless/intel/iwlwifi/pcie/internal.h | 3 +++ drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 1 + drivers/net/wireless/intel/iwlwifi/pcie/tx.c | 13 +++++++++++++ 7 files changed, 24 insertions(+) commit cb2f827795126979c6266f1c87dae584bd2fbb2d Author: Emmanuel Grumbach Date: Tue Nov 17 15:39:56 2015 +0200 iwlwifi: change the Intel Wireless email address ilw@linux.intel.com is not available anymore. linuxwifi@intel.com should be used instead. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/dvm/agn.h | 2 +- drivers/net/wireless/intel/iwlwifi/dvm/debugfs.c | 2 +- drivers/net/wireless/intel/iwlwifi/dvm/dev.h | 2 +- drivers/net/wireless/intel/iwlwifi/dvm/led.h | 2 +- drivers/net/wireless/intel/iwlwifi/dvm/mac80211.c | 2 +- drivers/net/wireless/intel/iwlwifi/dvm/main.c | 2 +- drivers/net/wireless/intel/iwlwifi/dvm/rs.c | 2 +- drivers/net/wireless/intel/iwlwifi/dvm/rs.h | 2 +- drivers/net/wireless/intel/iwlwifi/dvm/rx.c | 2 +- drivers/net/wireless/intel/iwlwifi/dvm/rxon.c | 2 +- drivers/net/wireless/intel/iwlwifi/dvm/scan.c | 2 +- drivers/net/wireless/intel/iwlwifi/dvm/sta.c | 2 +- drivers/net/wireless/intel/iwlwifi/dvm/tt.c | 2 +- drivers/net/wireless/intel/iwlwifi/dvm/tt.h | 2 +- drivers/net/wireless/intel/iwlwifi/dvm/tx.c | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-7000.c | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-8000.c | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-config.h | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-csr.h | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-debug.c | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-debug.h | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-devtrace-iwlwifi.h | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-devtrace.c | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-devtrace.h | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-drv.h | 4 ++-- drivers/net/wireless/intel/iwlwifi/iwl-fw-file.h | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-io.c | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-modparams.h | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-op-mode.h | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-phy-db.c | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-phy-db.h | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-prph.h | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-trans.h | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/coex.c | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/coex_legacy.c | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/constants.h | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/debugfs-vif.c | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/fw-api-coex.h | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/fw-api-rx.h | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/fw-api-scan.h | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/fw-api.h | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/fw.c | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/nvm.c | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/phy-ctxt.c | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/power.c | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/quota.c | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/rs.c | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/rs.h | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/rx.c | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/sta.h | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/tdls.c | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/tof.c | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/tof.h | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/utils.c | 2 +- drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 2 +- drivers/net/wireless/intel/iwlwifi/pcie/internal.h | 2 +- drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 2 +- drivers/net/wireless/intel/iwlwifi/pcie/tx.c | 2 +- 68 files changed, 69 insertions(+), 69 deletions(-) commit 12f17211f75531139ea4394f7f7b4f2090f9778a Merge: e70d41b 4585436 Author: Emmanuel Grumbach Date: Sun Dec 20 14:48:08 2015 +0200 Merge tag 'iwlwifi-for-kalle-2015-12-16' into next * don't load firmware that won't exist for 7260 * fix RCU splat commit c3ab642f2f08349c41f7d837f224ce1e63b58197 Author: Jisheng Zhang Date: Fri Dec 4 21:57:01 2015 +0800 phy: berlin-usb: don't set device's driver_data After commit 739ae3452d0e ("phy: berlin-usb: Set drvdata for phy and use it"), we get the address of priv by phy_get_drvdata(), so there's no need to set device's driver_data any more. This patch removes the call of platform_set_drvdata(). Signed-off-by: Jisheng Zhang Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-berlin-usb.c | 1 - 1 file changed, 1 deletion(-) commit c7a0b20ed42c0f4e1f80e7a9dfa6502894a82e22 Author: Jisheng Zhang Date: Fri Dec 4 21:57:00 2015 +0800 phy: berlin-usb: remove non-necessary header files We don't need gpio related header files, so remove them. Signed-off-by: Jisheng Zhang Acked-by: Antoine Tenart Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-berlin-usb.c | 2 -- 1 file changed, 2 deletions(-) commit c1602a1a0fbe12ab8e67deedf32e5a85f8553a07 Author: Jaedon Shin Date: Thu Nov 26 11:56:35 2015 +0900 phy: phy_brcmstb_sata: add support for MIPS-based platforms The BCM7xxx ARM-based and MIPS-based platforms share a similar hardware block for AHCI SATA3. This new compatible string, "brcm,bcm7425-sata-phy", may be used for most MIPS-based platforms of 40nm process technology. Signed-off-by: Jaedon Shin Acked-by: Rob Herring Tested-by: Florian Fainelli Acked-by: Brian Norris Signed-off-by: Kishon Vijay Abraham I .../bindings/phy/brcm,brcmstb-sata-phy.txt | 1 + drivers/phy/Kconfig | 4 ++-- drivers/phy/phy-brcmstb-sata.c | 24 ++++++++++++++++------ 3 files changed, 21 insertions(+), 8 deletions(-) commit 810c6f169fd1d8a37df884c0942727863f00319a Author: Jaedon Shin Date: Thu Nov 26 11:56:34 2015 +0900 phy: phy_brcmstb_sata: add data for phy version Add data for phy version, and the default value of version is using the BRCM_SATA_PHY_28NM. Signed-off-by: Jaedon Shin Tested-by: Florian Fainelli Acked-by: Brian Norris Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-brcmstb-sata.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) commit 1dc3a8582c3b99bd88b47f7aafd07ceb934024dc Author: Jaedon Shin Date: Thu Nov 26 11:56:33 2015 +0900 phy: phy_brcmstb_sata: remove duplicate definitions Remove duplicate definitions. Signed-off-by: Jaedon Shin Acked-by: Florian Fainelli Acked-by: Brian Norris Tested-by: Florian Fainelli Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-brcmstb-sata.c | 2 -- 1 file changed, 2 deletions(-) commit 337f13046ff03717a9e99675284a817527440a49 Author: Darren Hart Date: Fri Dec 18 13:36:37 2015 -0800 futex: Allow FUTEX_CLOCK_REALTIME with FUTEX_WAIT op While reviewing Michael Kerrisk's recent futex manpage update, I noticed that we allow the FUTEX_CLOCK_REALTIME flag for FUTEX_WAIT_BITSET but not for FUTEX_WAIT. FUTEX_WAIT is treated as a simple version for FUTEX_WAIT_BITSET internally (with a bitmask of FUTEX_BITSET_MATCH_ANY). As such, I cannot come up with a reason for this exclusion for FUTEX_WAIT. This change does modify the behavior of the futex syscall, changing a call with FUTEX_WAIT | FUTEX_CLOCK_REALTIME from returning -ENOSYS, to be equivalent to FUTEX_WAIT_BITSET | FUTEX_CLOCK_REALTIME with a bitset of FUTEX_BITSET_MATCH_ANY. Reported-by: Michael Kerrisk Signed-off-by: Darren Hart Cc: Peter Zijlstra Cc: Davidlohr Bueso Link: http://lkml.kernel.org/r/9f3bdc116d79d23f5ee72ceb9a2a857f5ff8fa29.1450474525.git.dvhart@linux.intel.com Signed-off-by: Thomas Gleixner kernel/futex.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 885c2cb770b5ac2507c41bc9f91a5d1c98337bee Author: Thomas Gleixner Date: Sat Dec 19 20:07:41 2015 +0000 futex: Cleanup the goto confusion in requeue_pi() out_unlock: does not only drop the locks, it also drops the refcount on the pi_state. Really intuitive. Move the label after the put_pi_state() call and use 'break' in the error handling path of the requeue loop. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Darren Hart Cc: Davidlohr Bueso Cc: Bhuvanesh_Surachari@mentor.com Cc: Andy Lowe Link: http://lkml.kernel.org/r/20151219200607.526665141@linutronix.de Signed-off-by: Thomas Gleixner kernel/futex.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 4959f2de11ca532a120a337429e5576fd283700f Author: Thomas Gleixner Date: Sat Dec 19 20:07:40 2015 +0000 futex: Remove pointless put_pi_state calls in requeue() In the error handling cases we neither have pi_state nor a reference to it. Remove the pointless code. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Darren Hart Cc: Davidlohr Bueso Cc: Bhuvanesh_Surachari@mentor.com Cc: Andy Lowe Link: http://lkml.kernel.org/r/20151219200607.432780944@linutronix.de Signed-off-by: Thomas Gleixner kernel/futex.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit ecb38b78f698a51988ec456751b20440e54702fb Author: Thomas Gleixner Date: Sat Dec 19 20:07:39 2015 +0000 futex: Document pi_state refcounting in requeue code Documentation of the pi_state refcounting in the requeue code is non existent. Add it. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Darren Hart Cc: Davidlohr Bueso Cc: Bhuvanesh_Surachari@mentor.com Cc: Andy Lowe Link: http://lkml.kernel.org/r/20151219200607.335938312@linutronix.de Signed-off-by: Thomas Gleixner kernel/futex.c | 51 +++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 39 insertions(+), 12 deletions(-) commit 29e9ee5d48c35d6cf8afe09bdf03f77125c9ac11 Author: Thomas Gleixner Date: Sat Dec 19 20:07:39 2015 +0000 futex: Rename free_pi_state() to put_pi_state() free_pi_state() is confusing as it is in fact only freeing/caching the pi state when the last reference is gone. Rename it to put_pi_state() which reflects better what it is doing. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Darren Hart Cc: Davidlohr Bueso Cc: Bhuvanesh_Surachari@mentor.com Cc: Andy Lowe Link: http://lkml.kernel.org/r/20151219200607.259636467@linutronix.de Signed-off-by: Thomas Gleixner kernel/futex.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) commit fb75a4282d0d9a3c7c44d940582c2d226cf3acfb Author: Thomas Gleixner Date: Sat Dec 19 20:07:38 2015 +0000 futex: Drop refcount if requeue_pi() acquired the rtmutex If the proxy lock in the requeue loop acquires the rtmutex for a waiter then it acquired also refcount on the pi_state related to the futex, but the waiter side does not drop the reference count. Add the missing free_pi_state() call. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Darren Hart Cc: Davidlohr Bueso Cc: Bhuvanesh_Surachari@mentor.com Cc: Andy Lowe Link: http://lkml.kernel.org/r/20151219200607.178132067@linutronix.de Signed-off-by: Thomas Gleixner Cc: stable@vger.kernel.org kernel/futex.c | 5 +++++ 1 file changed, 5 insertions(+) commit c8f3e518d3444ee9200a4987421fcee60f768f11 Author: Jake Oshins Date: Thu Dec 10 17:52:59 2015 +0000 x86/irq: Export functions to allow MSI domains in modules The Linux kernel already has the concept of IRQ domain, wherein a component can expose a set of IRQs which are managed by a particular interrupt controller chip or other subsystem. The PCI driver exposes the notion of an IRQ domain for Message-Signaled Interrupts (MSI) from PCI Express devices. This patch exposes the functions which are necessary for creating a MSI IRQ domain within a module. [ tglx: Split it into x86 and core irq parts ] Signed-off-by: Jake Oshins Cc: gregkh@linuxfoundation.org Cc: kys@microsoft.com Cc: devel@linuxdriverproject.org Cc: olaf@aepfle.de Cc: apw@canonical.com Cc: vkuznets@redhat.com Cc: haiyangz@microsoft.com Cc: marc.zyngier@arm.com Cc: bhelgaas@google.com Link: http://lkml.kernel.org/r/1449769983-12948-4-git-send-email-jakeo@microsoft.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/msi.h | 6 ++++++ arch/x86/kernel/apic/msi.c | 8 +++++--- arch/x86/kernel/apic/vector.c | 2 ++ 3 files changed, 13 insertions(+), 3 deletions(-) commit a4289dc2ec3a5821076a78ee9678909b4eff297e Author: Jake Oshins Date: Thu Dec 10 17:52:59 2015 +0000 genirq/msi: Export functions to allow MSI domains in modules The Linux kernel already has the concept of IRQ domain, wherein a component can expose a set of IRQs which are managed by a particular interrupt controller chip or other subsystem. The PCI driver exposes the notion of an IRQ domain for Message-Signaled Interrupts (MSI) from PCI Express devices. This patch exposes the functions which are necessary for creating a MSI IRQ domain within a module. [ tglx: Split it into x86 and core irq parts ] Signed-off-by: Jake Oshins Cc: gregkh@linuxfoundation.org Cc: kys@microsoft.com Cc: devel@linuxdriverproject.org Cc: olaf@aepfle.de Cc: apw@canonical.com Cc: vkuznets@redhat.com Cc: haiyangz@microsoft.com Cc: marc.zyngier@arm.com Cc: bhelgaas@google.com Link: http://lkml.kernel.org/r/1449769983-12948-4-git-send-email-jakeo@microsoft.com Signed-off-by: Thomas Gleixner drivers/pci/msi.c | 4 ++++ kernel/irq/chip.c | 1 + kernel/irq/irqdomain.c | 4 ++++ 3 files changed, 9 insertions(+) commit b74fe7c7617fd267c10d53e525984df81a5f317f Author: Heiko Stuebner Date: Thu Nov 19 22:22:26 2015 +0100 phy: rockchip-usb: expose the phy-internal PLLs The USB phys on Rockchip SoCs contain their own internal PLLs to create the 480MHz needed. Additionally this PLL output is also fed back into the core clock-controller as possible source for clocks like the GPU or others. Until now this was modelled incorrectly with a "virtual" factor clock in the clock controller. The one big caveat is that if we turn off the usb phy via the siddq signal, all analog components get turned off, including the PLLs. It is therefore possible that a source clock gets disabled without the clock driver ever knowing, possibly making the system hang. Therefore register the phy-plls as real clocks that the clock driver can then reference again normally, making the clock hirarchy finally reflect the actual hardware. The phy-ops get converted to simply turning that new clock on and off which in turn controls the siddq signal of the phy. Through this the driver gains handling for platform-specific data, to handle the phy->clock name association. Signed-off-by: Heiko Stuebner Reviewed-by: Douglas Anderson Signed-off-by: Kishon Vijay Abraham I .../devicetree/bindings/phy/rockchip-usb-phy.txt | 1 + drivers/phy/phy-rockchip-usb.c | 188 ++++++++++++++++++--- 2 files changed, 162 insertions(+), 27 deletions(-) commit c2bfc3b88813ab8711317a19f5c9cd74aeaf536c Author: Heiko Stuebner Date: Thu Nov 19 22:22:25 2015 +0100 phy: rockchip-usb: add compatible values for rk3066a and rk3188 We need custom handling for these two socs in the driver shortly, so add the necessary compatible values to binding and driver. Signed-off-by: Heiko Stuebner Signed-off-by: Kishon Vijay Abraham I Documentation/devicetree/bindings/phy/rockchip-usb-phy.txt | 5 ++++- drivers/phy/phy-rockchip-usb.c | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) commit 97dd9101091bb13b1ca3fe42edacf2bd7cf10924 Author: Heiko Stuebner Date: Thu Nov 19 22:22:24 2015 +0100 phy: rockchip-usb: move per-phy init into a separate function This unclutters the loop in probe a lot and makes current (and future) error handling easier to read. Signed-off-by: Heiko Stuebner Reviewed-by: Douglas Anderson Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-rockchip-usb.c | 83 ++++++++++++++++++++++-------------------- 1 file changed, 43 insertions(+), 40 deletions(-) commit 5fdbb97dec0ca6106c5595c2db667a7957ad8c0f Author: Heiko Stuebner Date: Thu Nov 19 22:22:23 2015 +0100 phy: rockchip-usb: introduce a common data-struct for the device This introduces a common struct that holds data belonging to the umbrella device that contains all the phys and that we want to use later. Signed-off-by: Heiko Stuebner Reviewed-by: Douglas Anderson Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-rockchip-usb.c | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) commit 75d390fecf9e69eebca7f15de40d761e33fcfd7b Author: Heiko Stuebner Date: Thu Nov 19 22:22:22 2015 +0100 phy: rockchip-usb: fix clock get-put mismatch Currently the phy driver only gets the optional clock reference but never puts it again, neither during error handling nor on remove. Fix that by moving the clk_put to a devm-action that gets called at the right time when all other devm actions are done. Signed-off-by: Heiko Stuebner Reviewed-by: Douglas Anderson Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-rockchip-usb.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 30e9a0b2147c8405109ad98ae670829dd92e4516 Author: Zhangfei Gao Date: Mon Nov 23 11:46:27 2015 +0800 phy: add phy-hi6220-usb Support hi6220 use phy for HiKey board Acked-by: Rob Herring Signed-off-by: Zhangfei Gao Signed-off-by: Kishon Vijay Abraham I .../devicetree/bindings/phy/phy-hi6220-usb.txt | 16 ++ drivers/phy/Kconfig | 9 ++ drivers/phy/Makefile | 1 + drivers/phy/phy-hi6220-usb.c | 168 +++++++++++++++++++++ 4 files changed, 194 insertions(+) commit 626a630e003c10c800a816cb994b3f9e505a88a9 Author: Reinder de Haan Date: Fri Dec 11 16:32:18 2015 +0100 phy-sun4i-usb: Add support for the host usb-phys found on the H3 SoC Note this commit only adds support for phys 1-3, phy 0, the otg phy, is not yet (fully) supported after this commit. Signed-off-by: Reinder de Haan Signed-off-by: Hans de Goede Acked-by: Rob Herring Signed-off-by: Kishon Vijay Abraham I .../devicetree/bindings/phy/sun4i-usb-phy.txt | 1 + drivers/phy/phy-sun4i-usb.c | 41 +++++++++++++++++----- 2 files changed, 33 insertions(+), 9 deletions(-) commit 68dbc2ce77bbe18a0475a497f4d6adde7c5d0b0c Author: Hans de Goede Date: Fri Dec 11 16:32:17 2015 +0100 phy-sun4i-usb: Use of_match_node to get model specific config data Use of_match_node instead of calling of_device_is_compatible a ton of times to get model specific config data. Signed-off-by: Hans de Goede Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-sun4i-usb.c | 121 +++++++++++++++++++++++++++++--------------- 1 file changed, 79 insertions(+), 42 deletions(-) commit 75f072f9eab72e10a45886d84a9a762b1c65071d Author: Chunfeng Yun Date: Fri Dec 4 10:11:05 2015 +0800 phy: phy-mt65xx-usb3: improve HS eye diagram calibrate HS slew rate and switch 100uA current to SSUSB to improve HS eye diagram of HQA test. Signed-off-by: Chunfeng Yun Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-mt65xx-usb3.c | 99 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 96 insertions(+), 3 deletions(-) commit 43f53b19074e846f236ef230d1eb4b14b601e965 Author: Chunfeng Yun Date: Fri Dec 4 10:08:56 2015 +0800 phy: phy-mt65xx-usb3: fix test fail of HS receiver sensitivity when use the default value 8 of RG_USB20_SQTH, the HS receiver sensitivity test of HQA will fail, set it as 2 to fix up the issue. Signed-off-by: Chunfeng Yun Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-mt65xx-usb3.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 3e46c3973cbafbd4974f7ab0d32071427afb7c1c Author: Yoshihiro Shimoda Date: Mon Nov 30 10:44:33 2015 +0900 MAINTAINERS: add Renesas usb2 phy driver Add Renesas usb2 phy driver to maintainer entry. Signed-off-by: Yoshihiro Shimoda Signed-off-by: Kishon Vijay Abraham I MAINTAINERS | 6 ++++++ 1 file changed, 6 insertions(+) commit 9f391c574efc15f00a6c7e3e120c8b84fc9e792f Author: Yoshihiro Shimoda Date: Mon Nov 30 10:44:32 2015 +0900 phy: rcar-gen3-usb2: add runtime ID/VBUS pin detection This patch adds support for runtime ID/VBUS pin detection if the channel 0 of R-Car gen3 is used. So, we are able to use the channel as both host and peripheral. Signed-off-by: Yoshihiro Shimoda Acked-by: Rob Herring Signed-off-by: Kishon Vijay Abraham I .../devicetree/bindings/phy/rcar-gen3-phy-usb2.txt | 2 + drivers/phy/phy-rcar-gen3-usb2.c | 43 +++++++++++++++++++++- 2 files changed, 44 insertions(+), 1 deletion(-) commit 1114e2d3173190be3e7339449c45ef11302d905a Author: Yoshihiro Shimoda Date: Mon Nov 30 10:44:31 2015 +0900 phy: rcar-gen3-usb2: change the mode to OTG on the combined channel To use the channel 0 of R-Car gen3 as periperal mode, This patch changes the mode to OTG instead of HOST. Then, this driver needs to set some registers to enable host mode and detects ID pin and VBUS pin at phy_init() timing. For now, the channel 0 can be used as host mode only. Signed-off-by: Yoshihiro Shimoda Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-rcar-gen3-usb2.c | 124 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 122 insertions(+), 2 deletions(-) commit f3b5a8d9b50d71b8c9fb72aa9c8ea948ad1a4ef9 Author: Yoshihiro Shimoda Date: Mon Nov 30 10:44:30 2015 +0900 phy: rcar-gen3-usb2: Add R-Car Gen3 USB2 PHY driver This patch adds support for R-Car generation 3 USB2 PHY driver. This SoC has 3 EHCI/OHCI channels, and the channel 0 is shared with the HSUSB (USB2.0 peripheral) device. And each channel has independent registers about the PHYs. So, the purpose of this driver is: 1) initializes some registers of SoC specific to use the {ehci,ohci}-platform driver. 2) detects id pin to select host or peripheral on the channel 0. For now, this driver only supports 1) above. Signed-off-by: Yoshihiro Shimoda Acked-by: Rob Herring Signed-off-by: Kishon Vijay Abraham I .../devicetree/bindings/phy/rcar-gen3-phy-usb2.txt | 37 ++++ drivers/phy/Kconfig | 7 + drivers/phy/Makefile | 1 + drivers/phy/phy-rcar-gen3-usb2.c | 217 +++++++++++++++++++++ 4 files changed, 262 insertions(+) commit 8dcb3c7628f19192dd568fbee9094a2d4b14b6af Author: Dan Carpenter Date: Sat Dec 19 09:22:21 2015 -0800 Input: egalax_ts_serial - fix potential NULL dereference on error We didn't check input_allocate_device() for failures so it could lead to a NULL deref. Fixes: 6b0f8f9c52ef ('Input: add eGalaxTouch serial touchscreen driver') Signed-off-by: Dan Carpenter Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/egalax_ts_serial.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 92e17ee72a60b126263cbcd749e5da688e0198a3 Author: Alexander Aring Date: Tue Dec 15 12:25:35 2015 +0100 6lowpan: fix debugfs interface entry name This patches moves the debugfs interface related register after netdevice register. The function lowpan_dev_debugfs_init will use "dev->name" which can be before register_netdevice a format string. The function register_netdevice will evaluate the format string if necessary and replace "dev->name" to the real interface name. Reported-by: Lukasz Duda Signed-off-by: Alexander Aring Acked-by: Lukasz Duda Signed-off-by: Marcel Holtmann net/6lowpan/core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 7eb7404f7ee4bf59cb034897ab678aba2755c5e0 Author: Geliang Tang Date: Fri Dec 18 23:33:25 2015 +0800 Bluetooth: use list_for_each_entry* Use list_for_each_entry*() instead of list_for_each*() to simplify the code. Signed-off-by: Geliang Tang Signed-off-by: Marcel Holtmann net/bluetooth/af_bluetooth.c | 12 ++++++------ net/bluetooth/cmtp/capi.c | 8 ++------ net/bluetooth/hci_core.c | 8 +++----- net/bluetooth/rfcomm/core.c | 46 ++++++++++++++------------------------------ 4 files changed, 25 insertions(+), 49 deletions(-) commit 94cf32b97bbb043b99e914aacff1a6d7833daf58 Author: Caesar Wang Date: Thu Dec 17 22:21:50 2015 +0800 ARM: dts: rockchip: add the kylin board for rk3036 This patchset is the initiation version to try work for kylin board. Signed-off-by: Caesar Wang Reviewed-by: Kees Cook Acked-by: Rob Herring Signed-off-by: Heiko Stuebner Documentation/devicetree/bindings/arm/rockchip.txt | 4 + arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/rk3036-kylin.dts | 300 +++++++++++++++++++++ 3 files changed, 305 insertions(+) commit 187d7967a5ee630ae062fb543655e59d2f0f91fb Author: Caesar Wang Date: Thu Dec 17 22:21:49 2015 +0800 ARM: dts: rockchip: add the sdio/sdmmc node for rk3036 In general, the sdio/sdmmc is used by the wifi module and sd card. let's add the node for these function. Signed-off-by: Caesar Wang Reviewed-by: Kees Cook Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3036.dtsi | 72 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) commit c08ae18560aaed50fed306a2e11f36ce70130f65 Author: Markus Elfring Date: Sat Dec 19 14:14:54 2015 +0100 iio-light: Use a signed return type for ltr501_match_samp_freq() The return type "unsigned int" was used by the ltr501_match_samp_freq() function despite of the aspect that it will eventually return a negative error code. Improve this implementation detail by deletion of the type modifier then. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring Acked-by: Peter Meerwald-Stadler Cc: Signed-off-by: Jonathan Cameron drivers/iio/light/ltr501.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 68556dd775ba928ec70ef7d43bc348b8704bc39f Author: Xing Zheng Date: Thu Dec 17 22:21:47 2015 +0800 ARM: dts: rockchip: fix the pinctrl bias settings for rk3036 The pinctrl gpio pull up/down is incorrect since the rk3036 SoCs can't set the status in the internal. We should keep the default status for enable the gpio status, In fact, the pull_none is the disable the gpio pull up/down. Signed-off-by: Xing Zheng Signed-off-by: Caesar Wang Reviewed-by: Kees Cook Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3036.dtsi | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) commit e60378c17c7eebf8636fb6831bff1efc9a434521 Author: Martin Kepplinger Date: Tue Dec 15 17:45:00 2015 +0100 iio: mma8452: use enum for channel index This gets rid of some magic numbers by adding an enum. Signed-off-by: Martin Kepplinger Signed-off-by: Christoph Muellner Signed-off-by: Jonathan Cameron drivers/iio/accel/mma8452.c | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) commit 8e34f2c8d2688a84f516d698aa8a8438a668265f Author: Martin Kepplinger Date: Tue Dec 15 17:44:59 2015 +0100 iio: mma8452: remove unused register description Signed-off-by: Martin Kepplinger Signed-off-by: Christoph Muellner Signed-off-by: Jonathan Cameron drivers/iio/accel/mma8452.c | 1 - 1 file changed, 1 deletion(-) commit 34708a0ce860fc70112c285cfde717b1d1aed708 Author: Bhaktipriya Shridhar Date: Sun Dec 13 18:15:13 2015 +0300 Staging: iio: accel: sca3000: Fixed NULL comparison style The variable u8 **rx_p, is a pointer-to-pointer and hence the check should be "if (!*rx_p)" and not "if (!rx_p)". In the earlier version, checkpatch.pl gave the following check, which was incorrect: CHECK: Comparison to NULL could be written "!rx_p" + if (*rx_p == NULL) { Signed-off-by: Bhaktipriya Shridhar Signed-off-by: Jonathan Cameron drivers/staging/iio/accel/sca3000_ring.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6e17c98a004c921e07bdecdb8cc2320488f88759 Author: Marc Titinger Date: Mon Dec 14 12:01:10 2015 +0100 iio: ina2xx: add ABI documentation entry sysfs-bus-iio-ina2xx-adc Documentation for attributes: * in_allow_async_readout * in_shunt_resistor Signed-off-by: Marc Titinger Signed-off-by: Jonathan Cameron Documentation/ABI/testing/sysfs-bus-iio-ina2xx-adc | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit 75e1a3a789e1f7437e4d369a5ba45ebd5dd24490 Author: Marc Titinger Date: Tue Dec 15 16:26:22 2015 +0100 iio: ina2xx: fix channel order in software buffer POWER and CURRENT were swapped out in the buffer: was current2 and power3, correct order is power2 and current3. Signed-off-by: Marc Titinger Signed-off-by: Jonathan Cameron drivers/iio/adc/ina2xx-adc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1f45f1f33c8c8b96722dbc5e6b7acf74eaa721f7 Author: Yang Yingliang Date: Sat Oct 31 18:20:55 2015 +0800 clocksource: Make clocksource validation work for all clocksources The clocksource validation which makes sure that the newly read value is not smaller than the last value only works if the clocksource mask is 64bit, i.e. the counter is 64bit wide. But we want to use that mechanism also for clocksources which are less than 64bit wide. So instead of checking whether bit 63 is set, we check whether the most significant bit of the clocksource mask is set in the delta result. If it is set, we return 0. [ tglx: Simplified the implementation, added a comment and massaged the commit message ] Suggested-by: Thomas Gleixner Signed-off-by: Yang Yingliang Cc: Link: http://lkml.kernel.org/r/56349607.6070708@huawei.com Signed-off-by: Thomas Gleixner kernel/time/timekeeping_internal.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit b1d15059957d33d111e0ed38724a6b2c5caac790 Author: Bard Liao Date: Tue Dec 15 14:57:41 2015 +0800 ASoC: rt5616: add rt5616 codec driver This is the initial codec driver for rt5616. Signed-off-by: Bard Liao Signed-off-by: Mark Brown sound/soc/codecs/Kconfig | 6 + sound/soc/codecs/Makefile | 2 + sound/soc/codecs/rt5616.c | 1372 ++++++++++++++++++++++++++++++++++ sound/soc/codecs/rt5616.h | 1819 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 3199 insertions(+) commit 940a5a014d50e15269b5d197ab571d1ca9971c43 Author: Pierre-Louis Bossart Date: Thu Dec 17 20:35:48 2015 -0600 ASoC: Intel: Atom: flip logic for gain Switch The upstreamed code modified the control names from Mute to Switch without changing the logic. To get audio working the Switch needs to be off which isn't aligned with normal ALSA conventions. Inverting the logic now so that Switch Off means mute and Switch On means active audio using the specific volume setting. Signed-off-by: Sebastien Guiriec Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown sound/soc/intel/atom/sst-atom-controls.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 77095796ae9cbaf315f80611edb5aa569796e339 Author: Pierre-Louis Bossart Date: Thu Dec 17 20:35:47 2015 -0600 ASoC: Intel: Atom: clean-up compressed DAI definition the fields channels_min, channels_max, rate and formats are irrelevant for compressed playback, they will depend on the content. This was probably a copy-paste mistake to have them in the first place Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown sound/soc/intel/atom/sst-mfld-platform-pcm.c | 4 ---- 1 file changed, 4 deletions(-) commit 098c2cd2814098b6cf98ab8c068d69eefbc46716 Author: Pierre-Louis Bossart Date: Thu Dec 17 20:35:46 2015 -0600 ASoC: Intel: Atom: add 24-bit support for media playback and capture DSP firmware supports 24-bit data, expose functionality to userspace/apps. Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown sound/soc/intel/atom/sst-mfld-platform-pcm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit d35eb96a95dc82befe2d9d1533728506b0847f14 Author: Pierre-Louis Bossart Date: Thu Dec 17 20:35:45 2015 -0600 ASoC: Intel: boards: add DEEP_BUFFER support for BYT/CHT/BSW Add dai links to enable additional playback stream with deeper buffer for lower power consumption. The normal and DEEP_buffer streams are not mutually exclusive, content will be mixed by the DSP. Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown sound/soc/intel/boards/bytcr_rt5640.c | 13 +++++++++++++ sound/soc/intel/boards/cht_bsw_max98090_ti.c | 12 ++++++++++++ sound/soc/intel/boards/cht_bsw_rt5645.c | 12 ++++++++++++ sound/soc/intel/boards/cht_bsw_rt5672.c | 12 ++++++++++++ 4 files changed, 49 insertions(+) commit 8788f83929ca1dbfa640ac17aec78b2e36cf493d Author: Pierre-Louis Bossart Date: Thu Dec 17 20:35:44 2015 -0600 ASoc: Intel: Atom: add deep buffer definitions for atom platforms Add definitions for MERR_DPCM_DEEP_BUFFER AND PIPE_MEDIA3_IN Add relevant cpu-dai and dai link names Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown arch/x86/include/asm/platform_sst_audio.h | 1 + sound/soc/intel/atom/sst-atom-controls.c | 1 + sound/soc/intel/atom/sst-atom-controls.h | 1 + sound/soc/intel/atom/sst-mfld-platform-pcm.c | 12 ++++++++++++ 4 files changed, 15 insertions(+) commit 595788e475d09fb081bedcf49b3720e62887f77f Author: Pierre-Louis Bossart Date: Thu Dec 17 20:35:43 2015 -0600 ASoC: Intel: tag byt-rt5640 machine driver as deprecated All the functionality was merged in DPCM-based driver, keep older driver to avoid breaking userspace but tag it as unsupported/deprecated Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown sound/soc/intel/Kconfig | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 9fd57471017fcc2dc6ddda03c7bc196d31fe9ffe Author: Pierre-Louis Bossart Date: Thu Dec 17 20:35:42 2015 -0600 ASoC: Intel: boards: merge DMI-based quirks in bytcr-rt5640 driver Merge DMI quirks for various machines such as Asus T100 and clean-up code Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown sound/soc/intel/boards/bytcr_rt5640.c | 78 ++++++++++++++++++++++++++++------- 1 file changed, 62 insertions(+), 16 deletions(-) commit a2d5563bc6655f25e23f3c2c700d601ef077499e Author: Pierre-Louis Bossart Date: Thu Dec 17 20:35:41 2015 -0600 ASoC: Intel: boards: start merging byt-rt5640 drivers first renaming and reducing delta with byt-rt5640 code before dmi-based quirks are enabled Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown sound/soc/intel/atom/sst/sst_acpi.c | 2 +- sound/soc/intel/boards/bytcr_rt5640.c | 128 ++++++++++++++++++++++++---------- 2 files changed, 93 insertions(+), 37 deletions(-) commit e2be1da0164c0fbc345874581738d2d72f5f1e24 Author: Pierre-Louis Bossart Date: Thu Dec 17 20:35:40 2015 -0600 ASoC: Intel: boards: align pin names between byt-rt5640 drivers initial cleanup to use same pins Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown sound/soc/intel/boards/bytcr_rt5640.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) commit 3f27dedda463347e98d406fc97ff6767ac59ea05 Author: Sebastien Guiriec Date: Thu Dec 17 20:35:39 2015 -0600 ASoC: Intel: bytcr_rt5640: set SSP to I2S mode 2ch Using the hw_fixup function in order to overwrite the default SSP setting for Audio DSP port connected to the codec. Instead of TDM 4ch use I2S 2ch 24 bits. Signed-off-by: Sebastien Guiriec Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown sound/soc/intel/boards/bytcr_rt5640.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit 4e8dbe9e93436bcf326adbab7f9761dd8e4ecbfc Merge: ef0bf62 a27d21e Author: Thomas Gleixner Date: Sat Dec 19 12:16:20 2015 +0100 Merge branch 'irq/gic-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into irq/core Pull the GIC related updates from Marc Zyngier: "Not a lot this time (what a relief!), but an interesting series from Linus Walleij coming out of his work converting the ARM RealView platforms to DT, and a couple of mundane fixes." commit c395465da68bfc3a238d5bc15f862e33e6e9ecec Author: Michael Neuling Date: Wed Oct 28 15:54:06 2015 +1100 powerpc: Add function to copy mm_context_t to the paca This adds a function to copy the mm->context to the paca. This is only a basic conversion for now but will be used more extensively in the next patch. This also adds #ifdef CONFIG_PPC_BOOK3S around this code since it's not used elsewhere. Signed-off-by: Michael Neuling Signed-off-by: Michael Ellerman arch/powerpc/include/asm/paca.h | 11 +++++++++++ arch/powerpc/kernel/asm-offsets.c | 2 ++ arch/powerpc/mm/hash_utils_64.c | 5 +++-- arch/powerpc/mm/slb.c | 2 +- arch/powerpc/mm/slice.c | 3 +-- 5 files changed, 18 insertions(+), 5 deletions(-) commit ef0bf620e9b81845368b9c72ffdbd6834e424526 Merge: 425a507 a6c2f87 Author: Thomas Gleixner Date: Sat Dec 19 12:13:02 2015 +0100 Merge branch 'irq/wire-msi-bridge' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into irq/core Pull the MSI wire bridge implementation from Marc Zyngier along with the first user of it. This is infrastructure to support a wired interrupt to MSI interrupt brigde. The first user is mbigen found in Hisilicon ARM SoCs. commit e2666d69068aba300d6c0dfe96489552f653be2a Merge: d33f250 ec02b07 Author: Thomas Gleixner Date: Sat Dec 19 12:03:17 2015 +0100 Merge branch 'fortglx/4.5/time' of https://git.linaro.org/people/john.stultz/linux into timers/core Get the core time(keeping) updates from John Stultz - NTP robustness tweaks - Another signed overflow nailed down - More y2038 changes - Stop alarmtimer after resume - MAINTAINERS update - Selftest fixes commit 4baf7fe40790c8ffdab54edc8e5b7051cfce3968 Author: Borislav Petkov Date: Mon Dec 7 10:24:28 2015 +0100 x86/mm: Align macro defines Bring PAGE_{SHIFT,SIZE,MASK} to the same indentation level as the rest of the header. Signed-off-by: Borislav Petkov Link: http://lkml.kernel.org/r/1449480268-26583-1-git-send-email-bp@alien8.de Signed-off-by: Thomas Gleixner arch/x86/include/asm/page_types.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 6e1315fe82308cd29e7550eab967262e8bbc71a3 Author: Borislav Petkov Date: Mon Dec 7 10:39:42 2015 +0100 x86/cpu: Provide a config option to disable static_cpu_has This brings .text savings of about ~1.6K when building a tinyconfig. It is off by default so nothing changes for the default. Kconfig help text from Josh. Signed-off-by: Borislav Petkov Reviewed-by: Josh Triplett Link: http://lkml.kernel.org/r/1449481182-27541-5-git-send-email-bp@alien8.de Signed-off-by: Thomas Gleixner arch/x86/Kconfig | 11 +++++++++++ arch/x86/include/asm/cpufeature.h | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) commit 362f924b64ba0f4be2ee0cb697690c33d40be721 Author: Borislav Petkov Date: Mon Dec 7 10:39:41 2015 +0100 x86/cpufeature: Remove unused and seldomly used cpu_has_xx macros Those are stupid and code should use static_cpu_has_safe() or boot_cpu_has() instead. Kill the least used and unused ones. The remaining ones need more careful inspection before a conversion can happen. On the TODO. Signed-off-by: Borislav Petkov Link: http://lkml.kernel.org/r/1449481182-27541-4-git-send-email-bp@alien8.de Cc: David Sterba Cc: Herbert Xu Cc: Peter Zijlstra Cc: Matt Mackall Cc: Chris Mason Cc: Josef Bacik Signed-off-by: Thomas Gleixner arch/x86/crypto/chacha20_glue.c | 2 +- arch/x86/crypto/crc32c-intel_glue.c | 2 +- arch/x86/include/asm/cmpxchg_32.h | 2 +- arch/x86/include/asm/cmpxchg_64.h | 2 +- arch/x86/include/asm/cpufeature.h | 37 ++++------------------------- arch/x86/include/asm/xor_32.h | 2 +- arch/x86/kernel/cpu/amd.c | 4 ++-- arch/x86/kernel/cpu/common.c | 4 +++- arch/x86/kernel/cpu/intel.c | 3 ++- arch/x86/kernel/cpu/intel_cacheinfo.c | 6 ++--- arch/x86/kernel/cpu/mtrr/generic.c | 2 +- arch/x86/kernel/cpu/mtrr/main.c | 2 +- arch/x86/kernel/cpu/perf_event_amd.c | 4 ++-- arch/x86/kernel/cpu/perf_event_amd_uncore.c | 11 +++++---- arch/x86/kernel/fpu/init.c | 4 ++-- arch/x86/kernel/hw_breakpoint.c | 6 +++-- arch/x86/kernel/smpboot.c | 2 +- arch/x86/kernel/vm86_32.c | 4 +++- arch/x86/mm/setup_nx.c | 4 ++-- drivers/char/hw_random/via-rng.c | 5 ++-- drivers/crypto/padlock-aes.c | 2 +- drivers/crypto/padlock-sha.c | 2 +- drivers/iommu/intel_irq_remapping.c | 2 +- fs/btrfs/disk-io.c | 2 +- 24 files changed, 48 insertions(+), 68 deletions(-) commit 39c06df4dc10a41de5fe706f4378ee5f09beba73 Author: Borislav Petkov Date: Mon Dec 7 10:39:40 2015 +0100 x86/cpufeature: Cleanup get_cpu_cap() Add an enum for the ->x86_capability array indices and cleanup get_cpu_cap() by killing some redundant local vars. Signed-off-by: Borislav Petkov Link: http://lkml.kernel.org/r/1449481182-27541-3-git-send-email-bp@alien8.de Signed-off-by: Thomas Gleixner arch/x86/include/asm/cpufeature.h | 20 +++++++++++++++++ arch/x86/kernel/cpu/centaur.c | 2 +- arch/x86/kernel/cpu/common.c | 47 ++++++++++++++++++--------------------- arch/x86/kernel/cpu/transmeta.c | 4 ++-- 4 files changed, 45 insertions(+), 28 deletions(-) commit 2ccd71f1b278d450a6f8c8c737c7fe237ca06dc6 Author: Borislav Petkov Date: Mon Dec 7 10:39:39 2015 +0100 x86/cpufeature: Move some of the scattered feature bits to x86_capability Turn the CPUID leafs which are proper CPUID feature bit leafs into separate ->x86_capability words. Signed-off-by: Borislav Petkov Link: http://lkml.kernel.org/r/1449481182-27541-2-git-send-email-bp@alien8.de Signed-off-by: Thomas Gleixner arch/x86/include/asm/cpufeature.h | 54 +++++++++++++++++++++++---------------- arch/x86/kernel/cpu/common.c | 5 ++++ arch/x86/kernel/cpu/scattered.c | 20 --------------- 3 files changed, 37 insertions(+), 42 deletions(-) commit 0fa85119cd480c1ded7a81ed64f723fe16a15355 Merge: d6ccc3e 1eab0e4 Author: Thomas Gleixner Date: Sat Dec 19 11:49:13 2015 +0100 Merge branch 'linus' into x86/cleanups Pull in upstream changes so we can apply depending patches. commit 9f318e3fcb1d4c48c26e8ca2ff2a459b82f36a23 Author: Hidehiro Kawai Date: Mon Dec 14 11:19:14 2015 +0100 Documentation: Document kernel.panic_on_io_nmi sysctl kernel.panic_on_io_nmi sysctl was introduced by commit 5211a242d0cb ("x86: Add sysctl to allow panic on IOCK NMI error") but its documentation is missing. So, add it. Signed-off-by: Hidehiro Kawai Requested-by: Borislav Petkov Cc: Andrew Morton Cc: Baoquan He Cc: Chris Metcalf Cc: Don Zickus Cc: "Eric W. Biederman" Cc: Heinrich Schuchardt Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jiri Kosina Cc: Jonathan Corbet Cc: kexec@lists.infradead.org Cc: linux-doc@vger.kernel.org Cc: Manfred Spraul Cc: Masami Hiramatsu Cc: Michal Hocko Cc: Nicolas Iooss Cc: Peter Zijlstra Cc: Seth Jennings Cc: Steven Rostedt Cc: Thomas Gleixner Cc: Ulrich Obergfell Cc: Vivek Goyal Cc: x86-ml Link: http://lkml.kernel.org/r/20151210014637.25437.71903.stgit@softrs Signed-off-by: Borislav Petkov Signed-off-by: Thomas Gleixner Documentation/sysctl/kernel.txt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit b279d67df88a49c6ca32b3eebd195660254be394 Author: Hidehiro Kawai Date: Mon Dec 14 11:19:13 2015 +0100 x86/nmi: Save regs in crash dump on external NMI Now, multiple CPUs can receive an external NMI simultaneously by specifying the "apic_extnmi=all" command line parameter. When we take a crash dump by using external NMI with this option, we fail to save registers into the crash dump. This happens as follows: CPU 0 CPU 1 ================================ ============================= receive an external NMI default_do_nmi() receive an external NMI spin_lock(&nmi_reason_lock) default_do_nmi() io_check_error() spin_lock(&nmi_reason_lock) panic() busy loop ... kdump_nmi_shootdown_cpus() issue NMI IPI -----------> blocked until IRET busy loop... Here, since CPU 1 is in NMI context, an additional NMI from CPU 0 remains unhandled until CPU 1 IRETs. However, CPU 1 will never execute IRET so the NMI is not handled and the callback function to save registers is never called. To solve this issue, we check if the IPI for crash dumping was issued while waiting for nmi_reason_lock to be released, and if so, call its callback function directly. If the IPI is not issued (e.g. kdump is disabled), the actual behavior doesn't change. Signed-off-by: Hidehiro Kawai Acked-by: Michal Hocko Cc: Andrew Morton Cc: Andy Lutomirski Cc: Baoquan He Cc: Dave Young Cc: "Eric W. Biederman" Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jiang Liu Cc: Jonathan Corbet Cc: kexec@lists.infradead.org Cc: linux-doc@vger.kernel.org Cc: Masami Hiramatsu Cc: Peter Zijlstra Cc: Stefan Lippers-Hollmann Cc: Steven Rostedt Cc: Thomas Gleixner Cc: Vivek Goyal Cc: x86-ml Link: http://lkml.kernel.org/r/20151210065245.4587.39316.stgit@softrs Signed-off-by: Borislav Petkov Signed-off-by: Thomas Gleixner arch/x86/include/asm/reboot.h | 1 + arch/x86/kernel/nmi.c | 16 ++++++++++++++-- arch/x86/kernel/reboot.c | 24 +++++++++++++++++------- 3 files changed, 32 insertions(+), 9 deletions(-) commit b7c4948e9881fb38b048269f376fb4bf194ce24a Author: Hidehiro Kawai Date: Mon Dec 14 11:19:12 2015 +0100 x86/apic: Introduce apic_extnmi command line parameter This patch introduces a command line parameter apic_extnmi: apic_extnmi=( bsp|all|none ) The default value is "bsp" and this is the current behavior: only the Boot-Strapping Processor receives an external NMI. "all" allows external NMIs to be broadcast to all CPUs. This would raise the success rate of panic on NMI when BSP hangs in NMI context or the external NMI is swallowed by other NMI handlers on the BSP. If you specify "none", no CPUs receive external NMIs. This is useful for the dump capture kernel so that it cannot be shot down by accidentally pressing the external NMI button (on platforms which have it) while saving a crash dump. Signed-off-by: Hidehiro Kawai Acked-by: Michal Hocko Cc: Andrew Morton Cc: Andy Lutomirski Cc: Bandan Das Cc: Baoquan He Cc: "Eric W. Biederman" Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jiang Liu Cc: Joerg Roedel Cc: Jonathan Corbet Cc: kexec@lists.infradead.org Cc: linux-doc@vger.kernel.org Cc: "Maciej W. Rozycki" Cc: Masami Hiramatsu Cc: Paolo Bonzini Cc: Peter Zijlstra Cc: Ricardo Ribalda Delgado Cc: Steven Rostedt Cc: Thomas Gleixner Cc: Viresh Kumar Cc: Vivek Goyal Cc: x86-ml Link: http://lkml.kernel.org/r/20151210014632.25437.43778.stgit@softrs Signed-off-by: Borislav Petkov Signed-off-by: Thomas Gleixner Documentation/kernel-parameters.txt | 9 +++++++++ arch/x86/include/asm/apic.h | 5 +++++ arch/x86/kernel/apic/apic.c | 34 ++++++++++++++++++++++++++++++++-- 3 files changed, 46 insertions(+), 2 deletions(-) commit 7bbee5ca3896f69f09c68be549cb8997abe6bca6 Author: Hidehiro Kawai Date: Mon Dec 14 11:19:11 2015 +0100 kexec: Fix race between panic() and crash_kexec() Currently, panic() and crash_kexec() can be called at the same time. For example (x86 case): CPU 0: oops_end() crash_kexec() mutex_trylock() // acquired nmi_shootdown_cpus() // stop other CPUs CPU 1: panic() crash_kexec() mutex_trylock() // failed to acquire smp_send_stop() // stop other CPUs infinite loop If CPU 1 calls smp_send_stop() before nmi_shootdown_cpus(), kdump fails. In another case: CPU 0: oops_end() crash_kexec() mutex_trylock() // acquired io_check_error() panic() crash_kexec() mutex_trylock() // failed to acquire infinite loop Clearly, this is an undesirable result. To fix this problem, this patch changes crash_kexec() to exclude others by using the panic_cpu atomic. Signed-off-by: Hidehiro Kawai Acked-by: Michal Hocko Cc: Andrew Morton Cc: Baoquan He Cc: Dave Young Cc: "Eric W. Biederman" Cc: HATAYAMA Daisuke Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jonathan Corbet Cc: kexec@lists.infradead.org Cc: linux-doc@vger.kernel.org Cc: Martin Schwidefsky Cc: Masami Hiramatsu Cc: Minfei Huang Cc: Peter Zijlstra Cc: Seth Jennings Cc: Steven Rostedt Cc: Thomas Gleixner Cc: Vitaly Kuznetsov Cc: Vivek Goyal Cc: x86-ml Link: http://lkml.kernel.org/r/20151210014630.25437.94161.stgit@softrs Signed-off-by: Borislav Petkov Signed-off-by: Thomas Gleixner include/linux/kexec.h | 2 ++ kernel/kexec_core.c | 30 +++++++++++++++++++++++++++++- kernel/panic.c | 8 ++++++-- 3 files changed, 37 insertions(+), 3 deletions(-) commit 58c5661f2144c089bbc2e5d87c9ec1dc1d2964fe Author: Hidehiro Kawai Date: Mon Dec 14 11:19:10 2015 +0100 panic, x86: Allow CPUs to save registers even if looping in NMI context Currently, kdump_nmi_shootdown_cpus(), a subroutine of crash_kexec(), sends an NMI IPI to CPUs which haven't called panic() to stop them, save their register information and do some cleanups for crash dumping. However, if such a CPU is infinitely looping in NMI context, we fail to save its register information into the crash dump. For example, this can happen when unknown NMIs are broadcast to all CPUs as follows: CPU 0 CPU 1 =========================== ========================== receive an unknown NMI unknown_nmi_error() panic() receive an unknown NMI spin_trylock(&panic_lock) unknown_nmi_error() crash_kexec() panic() spin_trylock(&panic_lock) panic_smp_self_stop() infinite loop kdump_nmi_shootdown_cpus() issue NMI IPI -----------> blocked until IRET infinite loop... Here, since CPU 1 is in NMI context, the second NMI from CPU 0 is blocked until CPU 1 executes IRET. However, CPU 1 never executes IRET, so the NMI is not handled and the callback function to save registers is never called. In practice, this can happen on some servers which broadcast NMIs to all CPUs when the NMI button is pushed. To save registers in this case, we need to: a) Return from NMI handler instead of looping infinitely or b) Call the callback function directly from the infinite loop Inherently, a) is risky because NMI is also used to prevent corrupted data from being propagated to devices. So, we chose b). This patch does the following: 1. Move the infinite looping of CPUs which haven't called panic() in NMI context (actually done by panic_smp_self_stop()) outside of panic() to enable us to refer pt_regs. Please note that panic_smp_self_stop() is still used for normal context. 2. Call a callback of kdump_nmi_shootdown_cpus() directly to save registers and do some cleanups after setting waiting_for_crash_ipi which is used for counting down the number of CPUs which handled the callback Signed-off-by: Hidehiro Kawai Acked-by: Michal Hocko Cc: Aaron Tomlin Cc: Andrew Morton Cc: Andy Lutomirski Cc: Baoquan He Cc: Chris Metcalf Cc: Dave Young Cc: David Hildenbrand Cc: Don Zickus Cc: Eric Biederman Cc: Frederic Weisbecker Cc: Gobinda Charan Maji Cc: HATAYAMA Daisuke Cc: Hidehiro Kawai Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Javi Merino Cc: Jiang Liu Cc: Jonathan Corbet Cc: kexec@lists.infradead.org Cc: linux-doc@vger.kernel.org Cc: lkml Cc: Masami Hiramatsu Cc: Michal Nazarewicz Cc: Nicolas Iooss Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Prarit Bhargava Cc: Rasmus Villemoes Cc: Seth Jennings Cc: Stefan Lippers-Hollmann Cc: Steven Rostedt Cc: Thomas Gleixner Cc: Ulrich Obergfell Cc: Vitaly Kuznetsov Cc: Vivek Goyal Cc: Yasuaki Ishimatsu Link: http://lkml.kernel.org/r/20151210014628.25437.75256.stgit@softrs [ Cleanup comments, fixup formatting. ] Signed-off-by: Borislav Petkov Signed-off-by: Thomas Gleixner arch/x86/kernel/nmi.c | 6 +++--- arch/x86/kernel/reboot.c | 20 ++++++++++++++++++++ include/linux/kernel.h | 16 ++++++++++++---- kernel/panic.c | 9 +++++++++ kernel/watchdog.c | 2 +- 5 files changed, 45 insertions(+), 8 deletions(-) commit 1717f2096b543cede7a380c858c765c41936bc35 Author: Hidehiro Kawai Date: Mon Dec 14 11:19:09 2015 +0100 panic, x86: Fix re-entrance problem due to panic on NMI If panic on NMI happens just after panic() on the same CPU, panic() is recursively called. Kernel stalls, as a result, after failing to acquire panic_lock. To avoid this problem, don't call panic() in NMI context if we've already entered panic(). For that, introduce nmi_panic() macro to reduce code duplication. In the case of panic on NMI, don't return from NMI handlers if another CPU already panicked. Signed-off-by: Hidehiro Kawai Acked-by: Michal Hocko Cc: Aaron Tomlin Cc: Andrew Morton Cc: Andy Lutomirski Cc: Baoquan He Cc: Chris Metcalf Cc: David Hildenbrand Cc: Don Zickus Cc: "Eric W. Biederman" Cc: Frederic Weisbecker Cc: Gobinda Charan Maji Cc: HATAYAMA Daisuke Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Javi Merino Cc: Jonathan Corbet Cc: kexec@lists.infradead.org Cc: linux-doc@vger.kernel.org Cc: lkml Cc: Masami Hiramatsu Cc: Michal Nazarewicz Cc: Nicolas Iooss Cc: Peter Zijlstra Cc: Prarit Bhargava Cc: Rasmus Villemoes Cc: Rusty Russell Cc: Seth Jennings Cc: Steven Rostedt Cc: Thomas Gleixner Cc: Ulrich Obergfell Cc: Vitaly Kuznetsov Cc: Vivek Goyal Link: http://lkml.kernel.org/r/20151210014626.25437.13302.stgit@softrs [ Cleanup comments, fixup formatting. ] Signed-off-by: Borislav Petkov Signed-off-by: Thomas Gleixner arch/x86/kernel/nmi.c | 16 ++++++++++++---- include/linux/kernel.h | 20 ++++++++++++++++++++ kernel/panic.c | 16 +++++++++++++--- kernel/watchdog.c | 2 +- 4 files changed, 46 insertions(+), 8 deletions(-) commit d267b8d6c65ed7636a412ca479b96df7c0f5b27b Merge: 42baa25 1eab0e4 Author: Thomas Gleixner Date: Sat Dec 19 11:03:18 2015 +0100 Merge branch 'linus' into x86/apic Pull in update changes so we can apply conflicting patches commit 958d104e3d40eef5148c402887138f6594ff7e1e Author: Arnd Bergmann Date: Fri Dec 18 15:18:08 2015 +0100 netcp: fix regression in receive processing A cleanup patch I did was unfortunately wrong and introduced multiple serious bugs in the netcp rx processing, as indicated by these correct gcc warnings: drivers/net/ethernet/ti/netcp_core.c:776:14: warning: 'buf_ptr' may be used uninitialized in this function [-Wuninitialized] drivers/net/ethernet/ti/netcp_core.c:687:14: warning: 'ptr' may be used uninitialized in this function [-Wuninitialized] I have checked the patch once more and found that a call to get_pkt_info() accidentally got removed in netcp_free_rx_desc_chain, and netcp_process_one_rx_packet no longer retrieved the correct buffer length. This patch should fix all the known problems, but I did not test on real hardware. Signed-off-by: Arnd Bergmann Fixes: 899077791403 ("netcp: try to reduce type confusion in descriptors") Signed-off-by: David S. Miller drivers/net/ethernet/ti/netcp_core.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 3f8d6f2a0797e8c650a47e5c1b5c2601a46f4293 Author: James Bottomley Date: Wed Dec 9 12:56:07 2015 -0800 ses: fix discovery of SATA devices in SAS enclosures The current discovery routines use the VPD 0x83 inquiry page to find the device SAS address and match it to the end point in the enclosure. This doesn't work for SATA devices because expanders (or hosts) simply make up an endpoint address for STP and thus the address returned by the VPD page never matches. Instead of doing this, for SAS attached devices, match by the direct endpoint address instead. Signed-off-by: James Bottomley drivers/scsi/Kconfig | 1 + drivers/scsi/ses.c | 22 ++++------------------ 2 files changed, 5 insertions(+), 18 deletions(-) commit bcf508c13385e74972f5cc06d8471d5c100395b0 Author: James Bottomley Date: Wed Dec 9 11:13:35 2015 -0800 scsi_transport_sas: add function to get SAS endpoint address For a device known to be SAS connected, this will return the endpoint address. This is useful for getting the SAS address of SATA devices. Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/scsi_transport_sas.c | 14 ++++++++++++++ include/scsi/scsi_transport_sas.h | 1 + 2 files changed, 15 insertions(+) commit 3b91d09c1ca69a69c470efe5fbf346e3e90181d5 Author: James Bottomley Date: Wed Dec 9 11:12:03 2015 -0800 scsi_transport_sas: add is_sas_attached() function Adds a function designed to be callable any time (regardless of whether the transport attributes are configured or not) which returns true if the device is attached over a SAS transport. The design of this function is that transport specific functions can be embedded within a if (is_sas_attached(sdev)) { ... } which would be compiled out (and thus eliminate the symbols) if SAS is not configured. Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/scsi_transport_sas.c | 16 ++++++++++++++++ include/scsi/scsi_transport_sas.h | 9 +++++++++ 2 files changed, 25 insertions(+) commit aa72044a1d229ad8ad6fd53a2f2dd3da12430216 Merge: 45ad5cc 8bb0bce Author: Dave Airlie Date: Sat Dec 19 12:36:48 2015 +1000 Merge branch 'drm-etnaviv-next' of git://git.pengutronix.de/git/lst/linux into drm-next here is the pull request for the etnaviv DRM driver. It includes the DT bindings and the driver itself, platform devicetree changes will be merged through the respective SoC trees. Otherwise it's just a squashed version of the V2 patches that have been on the list for a while. * 'drm-etnaviv-next' of git://git.pengutronix.de/git/lst/linux: MAINTAINERS: add maintainer and reviewers for the etnaviv DRM driver drm/etnaviv: add initial etnaviv DRM driver drm/etnaviv: add devicetree bindings devicetree: add vendor prefix for Vivante Corporation commit 1873315fb156cbc8e46f28e8b128f17ff6c31728 Author: Arnd Bergmann Date: Tue Dec 8 16:38:12 2015 +0100 mtd: sh_flctl: pass FIFO as physical address By convention, the FIFO address we pass using dmaengine_slave_config is a physical address in the form that is understood by the DMA engine, as a dma_addr_t, phys_addr_t or resource_size_t. The sh_flctl driver however passes a virtual __iomem address that gets cast to dma_addr_t in the slave driver. This happens to work on shmobile because that platform sets up an identity mapping for its MMIO regions, but such code is not portable to other platforms, and prevents us from ever changing the platform mapping or reusing the driver on other architectures like ARM64 that might not have the mapping. We also get a warning about a type mismatch for the case that dma_addr_t is wider than a pointer, i.e. when CONFIG_LPAE is set: drivers/mtd/nand/sh_flctl.c: In function 'flctl_setup_dma': drivers/mtd/nand/sh_flctl.c:163:17: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] cfg.dst_addr = (dma_addr_t)FLDTFIFO(flctl); This changes the driver to instead pass the physical address of the FIFO that is extracted from the MMIO resource, making the code more portable and avoiding the warning. Signed-off-by: Arnd Bergmann Signed-off-by: Brian Norris drivers/mtd/nand/sh_flctl.c | 5 +++-- include/linux/mtd/sh_flctl.h | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) commit 0ed6ca3a22f871fdb7335194f6488d14b2dad96a Author: Masahiro Yamada Date: Wed Dec 16 14:00:09 2015 +0900 mtd: denali: make MTD_NAND_DENALI_DT dependent on OF The build passes even if CONFIG_OF is undefined, but it makes sense to let it depend on OF. Signed-off-by: Masahiro Yamada Signed-off-by: Brian Norris drivers/mtd/nand/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 44991b3d19cd71eabe68019ae7cb91df0c929614 Author: Helmut Schaa Date: Wed Apr 9 11:13:24 2014 +0200 mtd: nand: Disable subpage writes for drivers without ecc->hwctl nand_write_subpage_hwecc causes a crash if the driver did not register ecc->hwctl or ecc->calculate. Fix this by disabling subpage writes if ecc->hwctl or ecc->calculate is not provided by the driver. This behavior was introduced in commit 837a6ba4f3b6d23026674e6af6b6849a4634fff9 "mtd: nand: subpage write support for hardware based ECC schemes". This fixes a crash with fsl_elbc_nand and maybe others: Unable to handle kernel paging request for instruction fetch Faulting instruction address: 0x00000000 Oops: Kernel access of bad area, sig: 11 [#1] SMP NR_CPUS=2 P1020 RDB Modules linked in: ath9k ath9k_common pppoe ppp_async option iptable_nat ath9k_hw ath usb_wwan pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv4 mac80211 ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_state xt_quota xt_policy xt_pkttype xt_owner xt_nat xt_multiport xt_mh CPU: 1 PID: 2161 Comm: ubiformat Not tainted 3.10.26 #6 task: efbc2700 ti: c7950000 task.ti: c7950000 NIP: 00000000 LR: c01a495c CTR: 00000000 REGS: c7951cb0 TRAP: 0400 Not tainted (3.10.26) MSR: 00029000 CR: 24002028 XER: 00000000 GPR00: c01a4b6c c7951d60 efbc2700 ef84b000 00000001 00000000 000001ff c7800500 GPR08: 00000000 00000000 efae5e40 c01a4ae4 24002022 10023418 c7951e5c c7800500 GPR16: c017b6a8 00000000 0000003f c053404c 00000000 00000004 00000000 00000003 GPR24: 00000010 00000200 ef84b000 c7800d00 c7800000 c7800500 ef84b1c8 00000000 NIP [00000000] (null) LR [c01a495c] nand_write_subpage_hwecc+0x74/0x174 Call Trace: [c7951d60] [c7951d64] 0xc7951d64 (unreliable) [c7951da0] [c01a4b6c] nand_write_page+0x88/0x198 [c7951dd0] [c01a5f7c] nand_do_write_ops+0x2f4/0x39c [c7951e40] [c01a61e0] nand_write+0x58/0x84 [c7951e80] [c019e29c] mtdchar_write+0x1dc/0x28c [c7951ef0] [c00aba84] vfs_write+0xcc/0x1ac [c7951f10] [c00ac04c] SyS_write+0x4c/0x90 [c7951f40] [c000cd84] ret_from_syscall+0x0/0x3c --- Exception: c01 at 0x48050ed8 LR = 0x100071b8 Instruction dump: XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX ---[ end trace 161d3c65a2a15cb8 ]--- Kernel panic - not syncing: Fatal exception [Brian: editorial note - we've applied a previous fix for the driver in question (fsl_elbc_nand) long ago: commit f034d87def51 ("mtd: eLBC NAND: fix subpage write support") but this still makes sense, and it could solve issues on some other unforseen driver.] Cc: Pekon Gupta Cc: Artem Bityutskiy Cc: David Woodhouse Signed-off-by: Helmut Schaa Signed-off-by: Brian Norris drivers/mtd/nand/nand_base.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit daf6cd0c1829c48cba197bd87d57fc8bf3f65faa Author: Elias Vanderstuyft Date: Fri Dec 18 17:32:19 2015 -0800 Input: uinput - sanity check on ff_effects_max and EV_FF Currently the user can set ff_effects_max to zero with the EV_FF bit (and the FF_GAIN and/or FF_AUTOCENTER bits) set, in this case the uninitialized methods ff->set_gain and/or ff->set_autocenter can be dereferenced, resulting in a kernel oops. Check in uinput_create_device() and print a helpful message and return -EINVAL in case the check fails. Signed-off-by: Elias Vanderstuyft Signed-off-by: Dmitry Torokhov drivers/input/misc/uinput.c | 7 +++++++ 1 file changed, 7 insertions(+) commit fbae10db094046dba1d59e1c2ee5140835045f14 Author: David Herrmann Date: Sun Oct 25 10:34:13 2015 +0100 Input: uinput - rework ABS validation Rework the uinput ABS validation to check passed absinfo data immediately, but do ABS initialization as last step in UI_DEV_CREATE. The behavior observed by user-space is not changed, as ABS initialization was never checked for errors. With this in place, the order of device initialization and abs configuration is no longer fixed. Userspace can initialize the device and afterwards set absinfo just fine. Signed-off-by: David Herrmann Reviewed-by: Benjamin Tissoires Tested-by: Benjamin Tissoires Signed-off-by: Dmitry Torokhov drivers/input/misc/uinput.c | 89 +++++++++++++++++++++++---------------------- include/uapi/linux/uinput.h | 29 +++++++-------- 2 files changed, 58 insertions(+), 60 deletions(-) commit 052876f8e5aec887d22c4d06e54aa5531ffcec75 Author: Benjamin Tissoires Date: Fri Dec 18 17:20:09 2015 -0800 Input: uinput - add new UINPUT_DEV_SETUP and UI_ABS_SETUP ioctl This adds two new ioctls, UINPUT_DEV_SETUP and UI_ABS_SETUP, that replaces the old device setup method (by write()'ing "struct uinput_user_dev" to the node). The old method is not easily extendable and requires huge payloads. Furthermore, overloading write() without properly versioned objects is error-prone. Therefore, we introduce two new ioctls to replace the old method. These ioctls support all features of the old method, plus a "resolution" field for absinfo. Furthermore, it's properly forward-compatible to new ABS codes and a growing "struct input_absinfo" structure. UI_ABS_SETUP also allows user-space to skip unknown axes if not set. There is no need to copy the whole array temporarily into the kernel, but instead the caller issues several ioctl where we copy each value manually. Signed-off-by: David Herrmann Signed-off-by: Benjamin Tissoires Reviewed-by: David Herrmann Signed-off-by: Dmitry Torokhov drivers/input/misc/uinput.c | 86 +++++++++++++++++++++++++++++++++++++++++++-- include/linux/uinput.h | 5 +++ include/uapi/linux/uinput.h | 83 +++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 168 insertions(+), 6 deletions(-) commit 45ad5ccfa9c72da35905dab4603df0d0f383af8f Merge: 544a14f e112e59 Author: Dave Airlie Date: Sat Dec 19 11:45:31 2015 +1000 Merge tag 'topic/drm-misc-2015-12-18' of git://anongit.freedesktop.org/drm-intel into drm-next Seems I lied in my last drm-misc pull request and suddenly there's a big pile of random stuff. Boris dug out Thierry's drm-trivial branch and resubmitted everything since that branch didn't really work out. On top of that Nicolas' changes to drm_dev_set_unique - this might conflict with new driver pulls (I double checked and current drm-next should be fine), so please beware. The -next/-fixes conflict in vmwgfx will change slightly with this here too. * tag 'topic/drm-misc-2015-12-18' of git://anongit.freedesktop.org/drm-intel: (36 commits) drm: use dev_name as default unique name in drm_dev_alloc() drm: make drm_dev_set_unique() not use a format string drm/vmwgfx: Constify function pointer structs drm/udl: Constify function pointer structs drm/tegra: Constify function pointer structs drm/rockchip: Constify function pointer structs drm/nouveau: Constify function pointer structs drm/mgag200: Constify function pointer structs drm/imx: Constify function pointer structs drm/i2c/sil164: Constify function pointer structs drm/i2c/adv7511: Constify function pointer structs drm/exynos: Constify function pointer structs drm/cirrus: Constify function pointer structs drm/i2c/ch7006: Constify function pointer structs drm/bridge/nxp-ptn3460: Constify function pointer structs drm/bridge/dw_hdmi: Constify function pointer structs drm/bochs: Constify function pointer structs drm/atmel-hlcdc: Constify function pointer structs drm/armada: Constify function pointer structs drm: Constify drm_encoder_slave_funcs ... commit 544a14fd222b5dedfa32e9e69c0da9345b996e15 Author: Thierry Reding Date: Fri Dec 18 07:55:58 2015 +0100 dt-bindings: Move panel bindings to correct location Device tree bindings for display panels have moved to a new location. Unfortunately some of the new bindings added recently ended up in the old location. Move them to their proper place. Reported-by: Alexandre Belloni Reported-by: Rob Herring Signed-off-by: Thierry Reding Signed-off-by: Dave Airlie .../display/panel/panasonic,vvx10f034n00.txt | 20 ++++++++++++++++++++ .../bindings/display/panel/qiaodian,qd43003c0-40.txt | 7 +++++++ .../bindings/panel/panasonic,vvx10f034n00.txt | 20 -------------------- .../bindings/panel/qiaodian,qd43003c0-40.txt | 7 ------- 4 files changed, 27 insertions(+), 27 deletions(-) commit 6166a76f5ef7619faa28b38d7817e5fe0e509942 Author: Fabian Frederick Date: Wed Jun 10 18:31:06 2015 +0200 mtd: ftl: use swap() in copy_erase_unit() Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick Signed-off-by: Brian Norris drivers/mtd/ftl.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit fdd9d27c8a47ea81daeaddfe6c0156ae7cf68096 Author: Fabian Frederick Date: Wed Jun 10 18:31:32 2015 +0200 mtd: cfi_cmdset_0002: use swap() in cfi_cmdset_0002() Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick Signed-off-by: Brian Norris drivers/mtd/chips/cfi_cmdset_0002.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 80e1ca692107b0bc5b088fd9c4a20726fb1a66a2 Author: Bayi Cheng Date: Fri Dec 18 11:02:40 2015 +0800 mtd: mtk-nor: adjust sequence of trigger function and assignment function Move write data register before excute command to avoid missing first byte write to nor flash Signed-off-by: Bayi Cheng Signed-off-by: Brian Norris drivers/mtd/spi-nor/mtk-quadspi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e209f7cc205f51b089f9067f4d03922fa5f28490 Author: H Hartley Sweeten Date: Fri Nov 13 11:11:26 2015 -0700 staging: comedi: adv_pci1710: rename pci171x_ai_*() Rename these functions so they have namespace associated with the driver. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci1710.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 6f05ce9cce0c946ab4d5e21bdeb1eafcab0fc156 Author: H Hartley Sweeten Date: Fri Nov 13 11:11:25 2015 -0700 staging: comedi: adv_pci1710: rename pci171x_ai_{cmd,cmdtest}() Rename these functions so they have namespace associated with the driver. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci1710.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 5ce4385232255683f3fccca4d6772ae61769f2ad Author: H Hartley Sweeten Date: Fri Nov 13 11:11:24 2015 -0700 staging: comedi: adv_pci1710: fix ai (*insn_read) An (*insn_read) can only happen if the subdevice is in a non-busy state, i.e. an async command is not running. The board reset and subdevice (*cancel) will ensure that the control bits (devpriv->ctrl) are already cleared. The (*insn_read) only needs to enable the software trigger before reading samples. It should also disable the software trigger when done. Fix the (*insn_read) to do this. For aesthetics, rename the function so it has namespace associated with the driver. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci1710.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit d0445303f86c6ace7dcaf6d2806445ea0208f151 Author: H Hartley Sweeten Date: Fri Nov 13 11:11:23 2015 -0700 staging: comedi: adv_pci1710: fix counter 0 internal clock source There are a number of descrepencies in the various manuals for the boards that this driver supports. Some show a 10 MHz clock for counters 1 and 2 others show a 1 MHz clock. Counter 0 can use either a div 10 of that clock or an external clock (up to 10 MHz). Currently this driver initializes counters 1 and 2 with a 10 MHz clock. For consistency, return 1 MHz (10 MHz/10) for counter 0 when the user queries the internal clock source with INSN_CONFIG_GET_CLOCK_SRC. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci1710.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0c917a93654557dc2489ebacbeadc3851186e3ce Author: H Hartley Sweeten Date: Fri Nov 13 11:11:22 2015 -0700 staging: comedi: adv_pci1710: tidy up pci1710_reset() Change the return type to void, this function always succeeds and the caller does not check the return value anyway. Fix the initial programming of the control register. The SW bit enables the software trigger and should not be set here. Setting CNT0 selects the external clock source for counter 0 (the user counter). It makes more sense to select the internal 1 MHz clock. Remove the unnecessary initialization of the private data members. This function is only called during the (*auto_attach) after the private data was kzalloc'ed. Remove the redundant clearing of the A/D FIFO and pending interrupts. Just do it once. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci1710.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit adbc9ec7fe38baa8af2a3d21e3f505c8a8da7c3b Author: H Hartley Sweeten Date: Fri Nov 13 11:11:21 2015 -0700 staging: comedi: adv_pci1710: ai (*cancel) should not enable software trigger The (*cancel) operation should do just that. Remove the setting of the SW bit which enables the software trigger. For aesthetics, rename the function so it has namespace associated with the driver and add a couple comments. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci1710.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit d3e8ab48db7fdb7b4898d3685f49720a46925902 Author: H Hartley Sweeten Date: Fri Nov 13 11:11:20 2015 -0700 staging: comedi: adv_pci1710: post increment 'subdev' in (*auto_attach) For aesthetics, post-increment the 'subdev' index when used to get a comedi_subdevice pointer instead of incrementing it after the subdevice is initialized. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci1710.c | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) commit 7387332558f050ace07334e945d2077af3c2ed96 Author: H Hartley Sweeten Date: Fri Nov 13 11:11:19 2015 -0700 staging: comedi: adv_pci1710: tidy up analog input subdev_flags Remove the SDF_COMMON flag, the analog reference is not programmable and the default aref (AREF_GROUND -> SDF_GROUND) provides adequate information about the reference. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci1710.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1ef6e0a48e3b624beb6f6206db2875ca3367459e Author: H Hartley Sweeten Date: Fri Nov 13 11:11:18 2015 -0700 staging: comedi: adv_pci1710: tidy up analog output subdev_flags Remove the SDF_COMMON flag, the analog reference is not programmable and the default aref (AREF_GROUND -> SDF_GROUND) provides adequate information about the reference. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci1710.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 976e893b61e628ff72adbf70ad84674650c8f053 Author: H Hartley Sweeten Date: Fri Nov 13 11:11:17 2015 -0700 staging: comedi: adv_pci1710: support external analog output reference The analog outputs can use an external reference to create the D/A output range. Add an entry to the comedi_lrange table for it and modify the (*insn_write) to support it. Note that the D/A output range is 0 to +Vref with a -Vref. The comedi_lrange does not include the sign of the range. It simmply allows the user to convert between the 12-bit samples values (0x0000 - 0x0fff) and a physical value (0.0 to 1.0) using the comedilib comedi_to_phys() and comedi_from_phys() functions. A physical value of 0.0 would actually be 0V with a -Vref and -V with a +Vref and 1.0 would be +V with a -Vref and 0V with a -Vref. Ths user will need to work this out but at least they can now use the external reference. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci1710.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit baacf6ca54291aec45babc4af079a39b64b02da3 Author: H Hartley Sweeten Date: Fri Nov 13 11:11:16 2015 -0700 staging: comedi: adv_pci1710: rename pci171x_ao_insn_write() Rename this function so it has namespace associated with the driver. For aesthetics, move the function so it is located in the middle of the analog input support functions. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci1710.c | 52 ++++++++++++++-------------- 1 file changed, 26 insertions(+), 26 deletions(-) commit 6039278668cd162cacc95a883b59b933e39dc2f5 Author: H Hartley Sweeten Date: Fri Nov 13 11:11:15 2015 -0700 staging: comedi: adv_pci1710: rename pci171x_d[io]_insn_bits Rename these functions so they have namespace associated with the driver. For aesthetics, move the functions so they are not located in the middle of the analog input/output support functions. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci1710.c | 50 ++++++++++++++-------------- 1 file changed, 25 insertions(+), 25 deletions(-) commit f1f4ce6462b65523edfaae2233046c93ca7c25a7 Author: H Hartley Sweeten Date: Fri Nov 13 11:11:14 2015 -0700 staging: comedi: adv_pci1710: rename pci171x_insn_counter_config() Rename this function so it has namespace associated with the driver. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci1710.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 96d57c15ab8acca8ca2ceeebee67c0962134ddcf Author: H Hartley Sweeten Date: Fri Nov 13 11:11:13 2015 -0700 staging: comedi: adv_pci1710: rename interrupt_service_pci1710() Rename this function so it has namespace associated with the driver. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci1710.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b5b147dcb48600f8372bdd8728bab8ef1840dac4 Author: H Hartley Sweeten Date: Fri Nov 13 11:11:12 2015 -0700 staging: comedi: adv_pci1710: tidy up boardinfo definition Remove the unnecessary comments and rename the 'rangelist_ai' member for aesthetics. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci1710.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit dbdb6248229d1a9f2532cd86dcb8db270ea79034 Author: H Hartley Sweeten Date: Fri Nov 13 11:11:11 2015 -0700 staging: comedi: adv_pci1710: remove 'has_large_fifo' and 'has_diff_ai' boardinfo The pci1711/31 boards are the only ones that have a smaller FIFO (1K vs 4K) and single-ended analog inputs (no differential). Replace the 'has_large_fifo' and 'has_diff_ai' members of the boardinfo with 'is_pci1711' and use that to determine how to initialize the analog input subdev_flags as well as the private data 'max_samples'. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci1710.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) commit 88601533ae91ce26fbd35441f11b57c3814eeb6a Author: H Hartley Sweeten Date: Fri Nov 13 11:11:10 2015 -0700 staging: comedi: adv_pci1710: remove 'has_di_do' boardinfo This member of the boardinfo isn't really necessary. All the boards except the pci1713 have 16 digital inputs and 16 digital outputs. There is already a 'is_pci1713' member in the boardinfo so that can be used to determine the subdevices for the digital inputs and outputs need to be allocated and initialized. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci1710.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) commit 0b458e730412b3d3d3d2e5c59924177acbbcf755 Author: H Hartley Sweeten Date: Fri Nov 13 11:11:09 2015 -0700 staging: comedi: adv_pci1710: remove 'n_aichan' boardinfo This member of the boardinfo isn't really necessary. All the boards have analog inputs, the pci1713 has 32 channels the rest have 16 channels. There is already a 'is_pci1713' member in the boardinfo so that can be used to determine the number of channels for the analog input subdevice. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci1710.c | 61 ++++++++++++---------------- 1 file changed, 26 insertions(+), 35 deletions(-) commit 92c65e5553ed0a887735dfc1b86911541ca8be3e Author: H Hartley Sweeten Date: Fri Nov 13 11:11:08 2015 -0700 staging: comedi: adv_pci1710: define the mux control register bits For aesthetics, define some macros to set the bits in the mux control register. Also, rename the 'mux_ext' member of the private data. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci1710.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) commit 7603900fc7b41c71753d69487930eda707048b9d Author: H Hartley Sweeten Date: Fri Nov 13 11:11:07 2015 -0700 staging: comedi: adv_pci1710: refactor ai range programming The gain codes used to program the analog output range are currently stored in const char arrays. The values look a bit "magic" and it's not clear how they associate with the comedi_lrange without looking through user manuals. Refactor the ai range programming to clarify the driver and remove the magic numbers. Also, refine the bits in the range register that set the differential and unipolar modes. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci1710.c | 108 ++++++++++++++------------- 1 file changed, 55 insertions(+), 53 deletions(-) commit 19cbb8fb798f9e391df2876ea9522fbd6be88358 Author: H Hartley Sweeten Date: Fri Nov 13 11:11:06 2015 -0700 staging: comedi: adv_pci1710: don't "reset" board when detaching Currently this driver calls pci1710_reset() during the (*detach) of the driver. That function does the following: 1) program the control register to stop any operations 2) clears the analog input FIFO 3) clears any pending interrupts 4) sets all the analog output channels to unipolar 5V range and 0V output 5) sets all the digital outputs to 0V Before detaching the comedi core will (*cancel) any running async commands. This will handle 1-3 above. Depending on the application, it might not be safe to reset the analog and digital outputs when the driver is detached. Remove the board reset when detaching and just use comedi_pci_detach() directly for the driver (*detach). Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci1710.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) commit 8a8d0875a5ccf14a6772b3bbffa1717e668a0d8a Author: H Hartley Sweeten Date: Fri Nov 13 11:11:05 2015 -0700 staging: comedi: adv_pci1710: remove 'has_counter' boardinfo All the boards supported by this driver have a 8254 counter. Channels 1 and 2 are used to create the cascaded 32-bit analog input pacer. Counter 0 is available for the user on all the boards except the PCI-1713. Remove the 'has_counter' boardinfo and use the 'is_pci1713' boardinfo to determine if the user counter subdevice needs to be allocated and initialized. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci1710.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit 6fa60dd4a46cdb698cbda705015d7425d1a548bc Author: H Hartley Sweeten Date: Fri Nov 13 11:11:04 2015 -0700 staging: comedi: adv_pci1710: remove 'has_irq' boardinfo All the boards supported by this driver can use an interrupt. Remove the unnecessary boardinfo. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci1710.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit 14b93bb6bbf08c5002eddda1af1916e72e542eb8 Author: H Hartley Sweeten Date: Fri Nov 13 12:39:26 2015 -0700 staging: comedi: adv_pci_dio: separate out PCI-1760 support The PCI-1760 is board unique. It uses an outgoing/incoming mailbox programming sequence to access the hardware. The other boards supported by this driver use simple register mapping. Including support for the PCI-1760 in this driver just makes it harder to understand. Separate out the PCI-1760 support into a new driver, adv_pci1760. Clean up the new driver. The original code had a bunch of CamelCase and other checkpatch.pl issues. The code used to access the outgoing/incoming mailboxes was also a bit awkward with the passing of the arrays for the outgoing and incoming mailbox bytes. Replace them with two new functions that send a command and return the feedback data from the command based on the programming flow chart in the datasheet for the PCI-1760. The new adv_pci1760 driver also fixes the incomplete timer subdevice. This subdevice is actually the 2 PWM outputs so the subdevice type has been changed to COMEDI_SUBD_PWM. The counter subdevice support was not complete in the original code. They are also a bit strange since they are up counters connected to each of the digital inputs. For now that subdevice has been disabled (COMEDI_SUBD_UNUSED). Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/Kconfig | 12 +- drivers/staging/comedi/drivers/Makefile | 1 + drivers/staging/comedi/drivers/adv_pci1760.c | 432 +++++++++++++++++++++++++++ drivers/staging/comedi/drivers/adv_pci_dio.c | 426 +------------------------- 4 files changed, 445 insertions(+), 426 deletions(-) commit 7cf8e59e54b322a1663a3e2beaab8324240e1801 Author: Mario J. Rugiero Date: Thu Dec 3 13:24:05 2015 -0300 staging: wilc1000: replace 'ptr > 0' check by 'ptr' check. This silences a sparse warning about incompatible comparisons, while making the intent of the check a bit clearer. Signed-off-by: Mario J. Rugiero Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6b05fcc9c6ec08f4bd53e585afe4ec2f2f5b4ffb Author: Masanari Iida Date: Mon Nov 23 22:41:17 2015 +0900 staging: wilc1000: Fix typo in wilc_msgqueue.h This patch fix some spelling typo in wilc_msgqueue.h Signed-off-by: Masanari Iida Acked-by: Randy Dunlap Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_msgqueue.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit f6e0e2a5649d56d308212583a8ca1b9d7a26c64c Author: Bogicevic Sasa Date: Wed Nov 18 12:45:05 2015 +0100 drivers:staging:wilc1000 Fix all comparison to NULL could be written ... This fixes all "comparison to NULL could be written like ..." Signed-off-by: Bogicevic Sasa Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit ff5d40a4d3b6319cbc4ac9b454205cf662eb42b1 Author: Chandra S Gorentla Date: Sun Nov 15 09:36:58 2015 +0530 staging: wilc1000: Remove 'if' statement, which is always false - 'if' which is always false is removed - variable associated with this 'if' is deleted Signed-off-by: Chandra S Gorentla Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_msgqueue.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) commit cc28e4bf6e5279728c4b03497e95b9a5f5054f9c Author: Glen Lee Date: Fri Dec 18 18:26:02 2015 +0900 staging: wilc1000: fix a bug when unload driver kernel crashes when load and unload driver several times. I used git bisect to track down and found that removing NULL setting caused the panic. This reverts only related codes of the patch(a4ab1ade75a3). Fixes: a4ab1ade75a3 ("staging: wilc1000: replace drvHandler and hWFIDrv with hif_drv") Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit c8751ad7d22459b973b26c5bd37b444cf77d6412 Author: Leo Kim Date: Wed Nov 25 11:59:49 2015 +0900 staging: wilc1000: Handle_SetMulticastFilter(): fixes right shifting more than type allows This patch fixes the warning reported by smatch. - Handle_SetMulticastFilter() warn: right shifting more than type allows That is unnecessary action of boolean type. just assign 0. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 9edaa5f3c28e529c98fcb26035630fa64d140ffb Author: Leo Kim Date: Wed Nov 25 11:59:48 2015 +0900 staging: wilc1000: change if with else if The if statement should be else if since it is part of whole if condition. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) commit b0b9f3e4d24baa62dda7cd48284fd2842164974f Author: Leo Kim Date: Wed Nov 25 11:59:47 2015 +0900 staging: wilc1000: Handle_AddBASession: remove unused function This patch removes unused a function Handle_AddBASession. And, removes the relation define. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 69 ------------------------------- 1 file changed, 69 deletions(-) commit da537229b6d324dba7788070afb0a64c1af468e5 Author: Leo Kim Date: Wed Nov 25 11:59:42 2015 +0900 staging: wilc1000: fixes blank lines aren't necessary brace This patch fixes the checks reported by checkpatch.pl for Blank lines aren't necessary after an open brace '{' and Blank lines aren't necessary before a close brace '}'. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 50 ----------------------- 1 file changed, 50 deletions(-) commit a89f7c551af21058ee0a2d5a425d410fc1abfc13 Author: Leo Kim Date: Wed Nov 25 11:59:41 2015 +0900 staging: wilc1000: wilc_wfi_cfgoperations.c: remove over-commenting There are over-commenting in the wilc_wfi_cfgoperations.c file and most of them are not helpful to explain what the code does and generate 80 ending line over warnings. So, all of comments are removed in this patch and the comments will later be added if necessary with the preferred Linux style. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 681 +--------------------- 1 file changed, 23 insertions(+), 658 deletions(-) commit 6f72ed75e5c572640ca45b439f27ffbb0a50e8c8 Author: Glen Lee Date: Wed Nov 25 11:59:40 2015 +0900 staging: wilc1000: fix rmmod failure This patch fixes rmmod failure. wilc->firmware needs to be set to NULL because it is used again to check firmware is released when module exit. Fixes: 8b8ad7bc90bc ("staging: wilc1000: rename wilc_firmware in the struct wilc") Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 1 + 1 file changed, 1 insertion(+) commit c2ba8b2bc232721e8bddd86bfe22503b0bf5f2e5 Author: Glen Lee Date: Fri Nov 20 16:56:32 2015 +0900 staging: wilc1000: return linux error value Return proper linux error value -ETIMEDOUT instead of -1. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 604f6e2dae1c502018c32dd9e8de92767268eaa5 Author: Glen Lee Date: Fri Nov 20 16:56:31 2015 +0900 staging: wilc1000: remove unused variable wilc_sdio_func is not used anymore so just delete it. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan_sdio.c | 3 --- 1 file changed, 3 deletions(-) commit 0b8bea1cac363cd7de8b1a23b91b0b436cc03d15 Author: Leo Kim Date: Thu Nov 19 15:56:35 2015 +0900 staging: wilc1000: rename pstrNetworkInfo in get_rssi_avg function This patch renames pstrNetworkInfo to network_info that is first argument of get_rssi_avg function to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit bdd3460f77452392b2e29932133f1b43c6d5eede Author: Leo Kim Date: Thu Nov 19 15:56:34 2015 +0900 staging: wilc1000: rename pJoinParams in CfgScanResult function This patch renames pJoinParams to join_params that is fourth argument of CfgScanResult function to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 30cd10c466a26c215e2a10b07d8a9c7e94ed519c Author: Leo Kim Date: Thu Nov 19 15:56:33 2015 +0900 staging: wilc1000: rename pUserVoid in CfgScanResult function This patch renames pUserVoid to user_void that is third argument of CfgScanResult function to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0551a72e6970b91451572c9328af0a33ee8f8bdc Author: Leo Kim Date: Thu Nov 19 15:56:32 2015 +0900 staging: wilc1000: rename pstrNetworkInfo in CfgScanResult function This patch renames pstrNetworkInfo to network_info that is second argument of CfgScanResult function to avoid camelcase. And, remove the relation comment. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 41 ++++++++++------------- 1 file changed, 17 insertions(+), 24 deletions(-) commit 1a4c8ce78438bc4a61dd3fce5dc5a52a0f356d80 Author: Leo Kim Date: Thu Nov 19 15:56:31 2015 +0900 staging: wilc1000: rename enuScanEvent in CfgScanResult function This patch renames enuScanEvent to scan_event that is first argument of CfgScanResult function to avoid camelcase. And, remove the relation comment. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 5c4cf0dda6dc941a515a91c5c94a56546576f0e3 Author: Leo Kim Date: Thu Nov 19 15:56:30 2015 +0900 staging: wilc1000: rename pUserVoid in add_network_to_shadow function This patch renames pUserVoid to user_void that is second argument of add_network_to_shadow function to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 157814f07d994cd892da332f6ba0ab7f912b1a3a Author: Leo Kim Date: Thu Nov 19 15:56:29 2015 +0900 staging: wilc1000: rename pUserVoid in is_network_in_shadow function This patch renames pUserVoid to user_void that is second argument of is_network_in_shadow function to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 5e51d8ba0badb84cada670436dffb05761042ec3 Author: Leo Kim Date: Thu Nov 19 15:56:28 2015 +0900 staging: wilc1000: update_scan_time: remove unused argument This patch removes pUserVoid that is first argument of update_scan_time function because it is not used in this function. Remove argument in the function call also. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 12b0138b2a3f6e526ab23f3e46a357910183534d Author: Leo Kim Date: Thu Nov 19 15:56:27 2015 +0900 staging: wilc1000: reset_shadow_found: remove unused argument This patch removes pUserVoid that is first argument of reset_shadow_found function because it is not used in this function. Remove argument in the function call also. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit c6f5e3a67b8afdf8623114e9d2ff57b94e3b69b1 Author: Leo Kim Date: Thu Nov 19 15:56:26 2015 +0900 staging: wilc1000: rename s32Freq variable This patch renames s32Freq variable to freq to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit ce3b1b5a85e846c3d5b307b7aa614ccbd19e9d52 Author: Leo Kim Date: Thu Nov 19 15:56:25 2015 +0900 staging: wilc1000: rename pstrNetworkInfo variable This patch renames pstrNetworkInfo variable to network_info to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) commit 48ee7bad3e1ec0c782b4908f68e2922629d95351 Author: Leo Kim Date: Thu Nov 19 15:56:24 2015 +0900 staging: wilc1000: rename bDirectScan in refresh_scan function This patch renames bDirectScan to direct_scan that is third argument of refresh_scan function to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 84df0e6d718239cc5839d817ea30dbe26dd69cb2 Author: Leo Kim Date: Thu Nov 19 15:56:23 2015 +0900 staging: wilc1000: rename pUserVoid in refresh_scan function This patch renames pUserVoid to user_void that is first argument of refresh_scan function to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d14991afe0a84900cfd51d63d2c142b6b36d3e26 Author: Leo Kim Date: Thu Nov 19 15:56:22 2015 +0900 staging: wilc1000: clear_shadow_scan: remove unused argument This patch removes pUserVoid that is first argument of clear_shadow_scan function because it is not used in this function. Remove argument in the function call also. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e554a305529598750eb71d65560554773450f081 Author: Leo Kim Date: Thu Nov 19 15:56:21 2015 +0900 staging: wilc1000: rename wilc_connected_SSID variable This patch renames wilc_connected_SSID variable to wilc_connected_ssid to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 22 +++++++++++----------- drivers/staging/wilc1000/host_interface.h | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 4 ++-- 3 files changed, 14 insertions(+), 14 deletions(-) commit 7e872df9cd627614f74ec343e11bb98aeb2f59e2 Author: Leo Kim Date: Thu Nov 19 15:56:20 2015 +0900 staging: wilc1000: rename duringIP_TIME variable This patch renames duringIP_TIME variable to during_ip_time to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit a25d51860c58e73e9cae1e458a927d4db2f8fcaa Author: Leo Kim Date: Thu Nov 19 15:56:19 2015 +0900 staging: wilc1000: rename bWilc_ie variable This patch renames bWilc_ie variable to wilc_ie to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) commit 8668594a96516fad01e3336a6b13072a51ed188b Author: Leo Kim Date: Thu Nov 19 15:56:18 2015 +0900 staging: wilc1000: rename u8P2P_vendorspec variable This patch renames u8P2P_vendorspec variable to p2p_vendor_spec to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit b84a3ac4276033baeae12bcfcdc8c970747d0f78 Author: Leo Kim Date: Thu Nov 19 15:56:17 2015 +0900 staging: wilc1000: rename u8P2Precvrandom variable This patch renames u8P2Precvrandom variable to p2p_recv_random to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 24 +++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit 583d972cf7bbb1714c4ad26819d5ead12bfb69d7 Author: Leo Kim Date: Thu Nov 19 15:56:16 2015 +0900 staging: wilc1000: rename u8P2Plocalrandom variable This patch renames u8P2Plocalrandom variable to p2p_local_random to avoid camelcase. And, remove the relation comment. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 35 ++++++++++++----------- 1 file changed, 18 insertions(+), 17 deletions(-) commit 881eb5d812ec76e69b37e644e77b3a16b83d52fd Author: Leo Kim Date: Thu Nov 19 15:56:15 2015 +0900 staging: wilc1000: rename u8P2P_oui variable This patch renames u8P2P_oui variable to p2p_oui to avoid camelcase. And, remove the relation comment. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) commit 0bd8274fb8a8155bef0289a0eb669611cce9eb3e Author: Leo Kim Date: Thu Nov 19 15:56:14 2015 +0900 staging: wilc1000: rename u8WLANChannel variable This patch renames u8WLANChannel variable to wlan_channel to avoid camelcase. And, remove the relation comment. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 29 +++++++++-------------- 1 file changed, 11 insertions(+), 18 deletions(-) commit 8d48b5bab62f1e9eaafa12467874cab4a1bfb1bc Author: Leo Kim Date: Thu Nov 19 15:56:13 2015 +0900 staging: wilc1000: rename WILC_WFI_rates variable This patch renames WILC_WFI_rates variable to ieee80211_bitrates to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 2736f476aed92e96109c16a4cfba92ce2289e095 Author: Leo Kim Date: Thu Nov 19 15:56:12 2015 +0900 staging: wilc1000: rename WILC_WFI_2ghz_channels variable This patch renames WILC_WFI_2ghz_channels variable to ieee80211_2ghz_channels to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit f1ab117db845a6cd63c75c1b9a8be3b9589b0c1b Author: Leo Kim Date: Thu Nov 19 15:56:11 2015 +0900 staging: wilc1000: rename astrLastScannedNtwrksShadow variable This patch renames astrLastScannedNtwrksShadow variable to last_scanned_shadow to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 124 ++++++++++------------ 1 file changed, 58 insertions(+), 66 deletions(-) commit 771fbae49b5c49bd692b42d46fe4f4d96c61d953 Author: Leo Kim Date: Thu Nov 19 15:56:10 2015 +0900 staging: wilc1000: rename u32LastScannedNtwrksCountShadow variable This patch renames u32LastScannedNtwrksCountShadow variable to last_scanned_cnt to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 50 +++++++++++------------ 1 file changed, 24 insertions(+), 26 deletions(-) commit 825b966f9ee283b47cc8fa463c638c7ed1d1d922 Author: Glen Lee Date: Wed Nov 18 15:11:37 2015 +0900 staging: wilc1000: use wilc instead of wilc_dev and remove wilc_dev This patch changes wilc_dev with wilc in the function call wilc_wlan_get_num_conn_ifcs, and remove wilc_dev and it's related codes. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 2 +- drivers/staging/wilc1000/linux_wlan.c | 5 +---- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 1 - 3 files changed, 2 insertions(+), 6 deletions(-) commit d36ec22d1d9b8020e08d9ae9ee7db73554a355e7 Author: Glen Lee Date: Wed Nov 18 15:11:36 2015 +0900 staging: wilc1000: wilc_dbg: remove wilc This patch remove parameter struct wilc since it is not used and also wilc_dev will be removed. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 2 +- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 2 +- drivers/staging/wilc1000/wilc_wlan.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit d40c99c74c91441b935a900b5c92df7f81e0b8b1 Author: Glen Lee Date: Wed Nov 18 15:11:35 2015 +0900 staging: wilc1000: wilc_wlan_cfg_get: pass struct wilc This patch passes the struct wilc to the function and use it instead of global variable wilc_dev. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 2 +- drivers/staging/wilc1000/linux_wlan.c | 2 +- drivers/staging/wilc1000/wilc_wlan.c | 4 ++-- drivers/staging/wilc1000/wilc_wlan.h | 3 ++- 4 files changed, 6 insertions(+), 5 deletions(-) commit 89758e13b89608e168a192a6df51a70d32ebd737 Author: Glen Lee Date: Wed Nov 18 15:11:34 2015 +0900 staging: wilc1000: wilc_wlan_cfg_set: pass struct wilc This patch pass struct wilc to the function and use it instead of global variable wilc_dev. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 2 +- drivers/staging/wilc1000/linux_wlan.c | 101 ++++++++++++++++------------ drivers/staging/wilc1000/wilc_wlan.c | 5 +- drivers/staging/wilc1000/wilc_wlan.h | 4 +- 4 files changed, 63 insertions(+), 49 deletions(-) commit ec62e6d1ec3f668ee0462734ede28be6b3d7db1c Author: Glen Lee Date: Wed Nov 18 15:11:33 2015 +0900 staging: wilc1000: wilc_send_config_pkt: pass struct wilc This patch passes struct wilc to wilc_send_config_pkt. The function wilc_wlan_cfg_set and wilc_wlan_cfg_get function will get wilc to replace wilc_dev with it. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 3 +- drivers/staging/wilc1000/coreconfigurator.h | 3 +- drivers/staging/wilc1000/host_interface.c | 127 +++++++++++++++------------- 3 files changed, 74 insertions(+), 59 deletions(-) commit b82d940db037d1aaf591845cdd1352ceb439b929 Author: Glen Lee Date: Wed Nov 18 15:11:32 2015 +0900 staging: wilc1000: add struct wilc to host_if_drv This patch adds struct wilc to host_if_dev and assign wilc to use driver's primary structure in host_if_dev. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 1 + drivers/staging/wilc1000/host_interface.h | 2 ++ 2 files changed, 3 insertions(+) commit f8598aaa21b222864badc5d7f9e04fe1c4fbc12d Author: Glen Lee Date: Wed Nov 18 15:11:31 2015 +0900 staging: wilc1000: wilc_spi_write_read: pass struct wilc This patch adds new function parameter struct wilc and use it instead of global variable wilc_dev, and pass wilc to the function as well. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan_spi.c | 4 ++-- drivers/staging/wilc1000/linux_wlan_spi.h | 2 +- drivers/staging/wilc1000/wilc_spi.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit 1b8d17a0c94fe6e42443a01f33a36a199ec58fe6 Author: Glen Lee Date: Wed Nov 18 15:11:30 2015 +0900 staging: wilc1000: wilc_spi_read: pass struct wilc This patch adds new function parameter struct wilc and use it instead of global variable wilc_dev, and pass wilc to the functions as well. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan_spi.c | 4 ++-- drivers/staging/wilc1000/linux_wlan_spi.h | 2 +- drivers/staging/wilc1000/wilc_spi.c | 10 +++++----- 3 files changed, 8 insertions(+), 8 deletions(-) commit 643b2e42621f66ea951059880f2ba33163b0fef5 Author: Glen Lee Date: Wed Nov 18 15:11:29 2015 +0900 staging: wilc1000: wilc_spi_write: pass struct wilc This patch add new function parameter struct wilc and use it instead of wilc_dev, and pass wilc to the function as well. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan_spi.c | 4 ++-- drivers/staging/wilc1000/linux_wlan_spi.h | 3 ++- drivers/staging/wilc1000/wilc_spi.c | 6 +++--- 3 files changed, 7 insertions(+), 6 deletions(-) commit 9b410fe82f444e473f1f13b3476f5aecdff50610 Author: Glen Lee Date: Wed Nov 18 15:11:28 2015 +0900 staging: wilc1000: wilc_sdio_cmd53: pass struct wilc This patch adds new function parameter struct wilc and use it instead of global variable wilc_dev and pass wilc to the function as well. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan_sdio.c | 4 ++-- drivers/staging/wilc1000/linux_wlan_sdio.h | 2 +- drivers/staging/wilc1000/wilc_sdio.c | 12 ++++++------ 3 files changed, 9 insertions(+), 9 deletions(-) commit ea5779b4fbc722cec770e20557d883c959a34d74 Author: Glen Lee Date: Wed Nov 18 15:11:27 2015 +0900 staging: wilc1000: wilc_sdio_cmd52: pass struct wilc This patch adds new function parameter struct wilc and use it instead of wilc_dev. Pass wilc to the function as well. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan_sdio.c | 4 +-- drivers/staging/wilc1000/linux_wlan_sdio.h | 2 +- drivers/staging/wilc1000/wilc_sdio.c | 42 +++++++++++++++--------------- 3 files changed, 24 insertions(+), 24 deletions(-) commit 49dcd0dd0e70ee7dc8cd6bf1d16a4c25e1bdfc6f Author: Glen Lee Date: Wed Nov 18 15:11:26 2015 +0900 staging: wilc1000: pass wilc to all function pointers of wilc_hif_func This patch adds new function parameter struct wilc to all function pointers of struct wilc_hif_func, and all functions of wilc_sdio.c and wilc_spi.c need to be changed as it's function pointer is changed. Pass wilc in all the functions call as well. The wilc will be passed to functions in linux_wlan_sdio.c and linux_wlan_spi.c to replace with global variable wilc_dev in the next patch. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_sdio.c | 84 +++++++++--------- drivers/staging/wilc1000/wilc_spi.c | 113 +++++++++++++----------- drivers/staging/wilc1000/wilc_wlan.c | 167 +++++++++++++++++++---------------- drivers/staging/wilc1000/wilc_wlan.h | 26 +++--- 4 files changed, 208 insertions(+), 182 deletions(-) commit 00215dde5e386f548227f2d435908b36e3f90f29 Author: Glen Lee Date: Wed Nov 18 15:11:25 2015 +0900 staging: wilc1000: pass struct wilc to the functions which use hif_func This patch passes struct wilc to the functions which use hif_func inside. The function pointers of wilc_hif_func will pass wilc also in the later patch. Pass wilc to the functions if necessary. Flollowings are modified functions. chip_wakeup wilc_chip_sleep_manually chip_allow_sleep wilc_get_chipid wilc_unknown_isr_ext wilc_pllupdate_isr_ext wilc_sleeptimer_isr_ext Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 3 +- drivers/staging/wilc1000/linux_wlan.c | 5 +-- drivers/staging/wilc1000/wilc_wlan.c | 56 +++++++++++++++---------------- drivers/staging/wilc1000/wilc_wlan.h | 2 +- drivers/staging/wilc1000/wilc_wlan_if.h | 3 +- 5 files changed, 36 insertions(+), 33 deletions(-) commit aeed77f42709f0d7a7f6f70dd3a2a2fa63acbee8 Author: Glen Lee Date: Wed Nov 18 15:11:24 2015 +0900 staging: wilc1000: remove paltform define PLAT_WMS8304 This patch removes PLAT_WMS8304 and it's related codes as well. We will not use this way of supporting other platform. This will be supported if necessary by device tree later. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan_spi.c | 161 ------------------------------ 1 file changed, 161 deletions(-) commit 4c885c6b2617809474499912e3d51e73339640be Author: Glen Lee Date: Wed Nov 18 15:11:23 2015 +0900 staging: wilc1000: remove spi speed control codes This patch removes spi speed control codes. We are not using define SPEED to specify speed of spi, it is not proper way of doing this. It will be provided by the device tree. The following functions and variable are removed. MIN_SPEED, MAX_SPEED, SPEED wilc_spi_set_max_speed wilc_spi_max_bus_speed wilc_spi_default_bus_speed hif_set_max_bus_speed hif_set_default_bus_speed Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan_spi.c | 42 ------------------------------- drivers/staging/wilc1000/linux_wlan_spi.h | 2 -- drivers/staging/wilc1000/wilc_spi.c | 11 -------- drivers/staging/wilc1000/wilc_wlan.h | 2 -- 4 files changed, 57 deletions(-) commit 49645e5c87fbb51f0608218f78325996ce8401f8 Author: Glen Lee Date: Wed Nov 18 15:11:22 2015 +0900 staging: wilc1000: remove sdio speed control codes This patch removes spi speed control related functions and variable. We cannot get exact clock what we need in this way and it can causes some problem in host side by setting the clock, so remove the codes. Speed control codes in spi also will removed in next patch, so it's ok to remove functions in linux_wlan.c and wilc_wlan.c which also not used anymore. The Following functions and varialbe are removed. MAX_SPEED, sdio_default_speed wilc_bus_set_default_speed wilc_bus_set_max_speed linux_sdio_set_speed linux_sdio_get_speed wilc_sdio_set_max_speed wilc_sdio_set_default_speed Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 8 ----- drivers/staging/wilc1000/linux_wlan_sdio.c | 52 ------------------------------ drivers/staging/wilc1000/linux_wlan_sdio.h | 3 -- drivers/staging/wilc1000/wilc_sdio.c | 12 ------- drivers/staging/wilc1000/wilc_wlan.c | 10 ------ 5 files changed, 85 deletions(-) commit b24c683af14bdc52b81899937ef2e52c15fe4768 Author: Nicolai Hähnle Date: Sat Dec 12 11:42:25 2015 -0500 drm/radeon: only increment sync_seq when a fence is really emitted In the rare situation where the kmalloc fails we're probably screwed anyway, but let's try to be more robust about it. Reviewed-by: Michel Dänzer Signed-off-by: Nicolai Hähnle Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon_fence.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5fc45397d52eb8fbfba7e0ebf805ad01daa76836 Author: Nicolai Hähnle Date: Sat Dec 12 11:42:24 2015 -0500 drm/radeon: fix typo in cik_ring_ib_execute documentation (v2) v2: agd: clarify commit message, fix "an" as spotted by Michel. Reviewed-by: Michel Dänzer Signed-off-by: Nicolai Hähnle Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/cik.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6beb8201bbc41a50ccf2c3b0aecfc93c6d8be763 Author: Nicolai Hähnle Date: Sat Dec 12 11:42:23 2015 -0500 drm/ttm: fix documentation of ttm_bo_reserve Previously, the comment was inconsistent. EDEADLK is what the ww_mutex mechanism really returns. Signed-off-by: Nicolai Hähnle Signed-off-by: Alex Deucher include/drm/ttm/ttm_bo_driver.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4e926d2db58244fca9845c78a5d6f873ac73795b Author: Thierry Reding Date: Wed Dec 16 15:31:47 2015 +0100 drm/radeon: Update radeon_get_vblank_counter_kms() Commit 88e72717c2de ("drm/irq: Use unsigned int pipe in public API") updated the prototype of this function but not the implementation. This wasn't noticed even through compile tests because the prototype is part of the source file that uses it and hence the compiler won't know the prototype when it compiles the implementation. The right thing would've been to move the prototype to a header that's included in radeon_kms.c so that the implementation signature could be checked against it, but the closest thing would've been radeon_drv.h and including that results in a lot of build errors, so we'll leave it as is for now. Cc: Christian König Cc: Alex Deucher Reviewed-by: Christian König Signed-off-by: Thierry Reding Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon_kms.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit c55d21ea5b6b0afffaac8d462ef70a57fa8272a5 Author: Mario Kleiner Date: Wed Nov 25 20:14:31 2015 +0100 drm/radeon: Fixup hw vblank counter/ts for new drm_update_vblank_count() (v2) commit 4dfd6486 "drm: Use vblank timestamps to guesstimate how many vblanks were missed" introduced in Linux 4.4-rc1 makes the drm core more fragile to drivers which don't update hw vblank counters and vblank timestamps in sync with firing of the vblank irq and essentially at leading edge of vblank. This exposed a problem with radeon-kms/amdgpu-kms which do not satisfy above requirements: The vblank irq fires a few scanlines before start of vblank, but programmed pageflips complete at start of vblank and vblank timestamps update at start of vblank, whereas the hw vblank counter increments only later, at start of vsync. This leads to problems like off by one errors for vblank counter updates, vblank counters apparently going backwards or vblank timestamps apparently having time going backwards. The net result is stuttering of graphics in games, or little hangs, as well as total failure of timing sensitive applications. See bug #93147 for an example of the regression on Linux 4.4-rc: https://bugs.freedesktop.org/show_bug.cgi?id=93147 This patch tries to align all above events better from the viewpoint of the drm core / of external callers to fix the problem: 1. The apparent start of vblank is shifted a few scanlines earlier, so the vblank irq now always happens after start of this extended vblank interval and thereby drm_update_vblank_count() always samples the updated vblank count and timestamp of the new vblank interval. To achieve this, the reporting of scanout positions by radeon_get_crtc_scanoutpos() now operates as if the vblank starts radeon_crtc->lb_vblank_lead_lines before the real start of the hw vblank interval. This means that the vblank timestamps which are based on these scanout positions will now update at this earlier start of vblank. 2. The driver->get_vblank_counter() function will bump the returned vblank count as read from the hw by +1 if the query happens after the shifted earlier start of the vblank, but before the real hw increment at start of vsync, so the counter appears to increment at start of vblank in sync with the timestamp update. 3. Calls from vblank irq-context and regular non-irq calls are now treated identical, always simulating the shifted vblank start, to avoid inconsistent results for queries happening from vblank irq vs. happening from drm_vblank_enable() or vblank_disable_fn(). 4. The radeon_flip_work_func will delay mmio programming a pageflip until the start of the real vblank iff it happens to execute inside the shifted earlier start of the vblank, so pageflips now also appear to execute at start of the shifted vblank, in sync with vblank counter and timestamp updates. This to avoid some races between updates of vblank count and timestamps that are used for swap scheduling and pageflip execution which could cause pageflips to execute before the scheduled target vblank. The lb_vblank_lead_lines "fudge" value is calculated as the size of the display controllers line buffer in scanlines for the given video mode: Vblank irq's are triggered by the line buffer logic when the line buffer refill for a video frame ends, ie. when the line buffer source read position enters the hw vblank. This means that a vblank irq could fire at most as many scanlines before the current reported scanout position of the crtc timing generator as the number of scanlines the line buffer can maximally hold for a given video mode. This patch has been successfully tested on a RV730 card with DCE-3 display engine and on a evergreen card with DCE-4 display engine, in single-display and dual-display configuration, with different video modes. A similar patch is needed for amdgpu-kms to fix the same problem. Limitations: - Line buffer sizes in pixels are hard-coded on < DCE-4 to a value i just guessed to be high enough to work ok, lacking info on the true sizes atm. Fixes: fdo#93147 Signed-off-by: Mario Kleiner Cc: Alex Deucher Cc: Michel Dänzer Cc: Harry Wentland Cc: Ville Syrjälä (v1) Tested-by: Dave Witbrodt (v2) Refine radeon_flip_work_func() for better efficiency: In radeon_flip_work_func, replace the busy waiting udelay(5) with event lock held by a more performance and energy efficient usleep_range() until at least predicted true start of hw vblank, with some slack for scheduler happiness. Release the event lock during waits to not delay other outputs in doing their stuff, as the waiting can last up to 200 usecs in some cases. Retested on DCE-3 and DCE-4 to verify it still works nicely. (v2) Signed-off-by: Mario Kleiner Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/cik.c | 3 + drivers/gpu/drm/radeon/evergreen.c | 3 + drivers/gpu/drm/radeon/r100.c | 10 +++ drivers/gpu/drm/radeon/radeon_display.c | 106 ++++++++++++++++++++++++-------- drivers/gpu/drm/radeon/radeon_kms.c | 50 ++++++++++++++- drivers/gpu/drm/radeon/radeon_mode.h | 4 ++ drivers/gpu/drm/radeon/radeon_pm.c | 4 +- drivers/gpu/drm/radeon/rs690.c | 10 +++ drivers/gpu/drm/radeon/si.c | 3 + 9 files changed, 164 insertions(+), 29 deletions(-) commit ac4a9350abddc51ccb897abf0d9f3fd592b97e0b Author: Slava Grigorev Date: Thu Dec 17 11:09:58 2015 -0500 drm/radeon: Fix "slow" audio over DP on DCE8+ DP audio is derived from the dfs clock. Signed-off-by: Slava Grigorev Reviewed-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/dce6_afmt.c | 16 ++++++++++++++++ drivers/gpu/drm/radeon/radeon.h | 1 + drivers/gpu/drm/radeon/radeon_atombios.c | 7 +++++++ drivers/gpu/drm/radeon/sid.h | 5 +++++ 4 files changed, 29 insertions(+) commit ee1782c3f27fec5462363af48f27811b049155ab Author: Christian König Date: Fri Dec 11 21:01:23 2015 +0100 drm/amdgpu: keep the PTs validation list in the VM v2 This avoids allocating it on the fly. v2: fix grammar in comment Signed-off-by: Christian König Reviewed-by: Alex Deucher Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 8 ++---- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 7 +---- drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 9 +----- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 50 +++++++++++++++------------------ 4 files changed, 27 insertions(+), 47 deletions(-) commit 56467ebfb254836dc30eb45d4ac8a46a400bfad6 Author: Christian König Date: Fri Dec 11 15:16:32 2015 +0100 drm/amdgpu: split VM PD and PT handling during CS This way we avoid the extra allocation for the page directory entry. Signed-off-by: Christian König Reviewed-by: Alex Deucher Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 10 +++++--- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 9 +++++-- drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 16 +++++++----- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 45 ++++++++++++++++++++------------- 4 files changed, 51 insertions(+), 29 deletions(-) commit 3c0eea6c35d932c4d25070868067dc9cd9ceab91 Author: Christian König Date: Fri Dec 11 14:39:05 2015 +0100 drm/amdgpu: put VM page tables directly into duplicates list They share the reservation object with the page directory anyway. Signed-off-by: Christian König Reviewed-by: Alex Deucher Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 3 ++- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 4 ++-- drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 12 +++++++----- 4 files changed, 12 insertions(+), 9 deletions(-) commit 5b0112356cf9a735632b26ff5f3450e1716c8598 Author: Chunming Zhou Date: Thu Dec 10 17:34:33 2015 +0800 drm/amdgpu: restrict the sched jobs number to power of two Signed-off-by: Chunming Zhou Reviewed-by: Christian König CC: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 4 ++-- drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) commit e17bc4c4f15ca547ac4de9fb450f68419f8f0ce1 Merge: 562ed3f e3b14ba Author: Greg Kroah-Hartman Date: Fri Dec 18 14:28:08 2015 -0800 staging: wilc1000: Merge wilc-branch-arnd into work-testing This was done to handle two large patch sets that conflicted to be merged together without forcing each developer to redo their work. Signed-off-by: Greg Kroah-Hartman commit 8142b47ef33c655a34e08efd46b65732fe190675 Author: Boris BREZILLON Date: Mon Dec 14 16:13:31 2015 +0100 mtd: nand: remove unused and buggy get_platform_nandchip() helper function Nobody uses the get_platform_nandchip() helper function which is supposed to return a pointer to a platform_nand_chip struct from an mtd_info pointer. Moreover, this function is buggy since the introduction of the plat_nand layer (chip->priv is now storing a pointer to an intermediate plat_nand_data structure allocated in plat_nand_probe(), and we have no way to retrieve a pointer to the provided platform_nand_chip struct from this plat_nand_data pointer). While we are at it, remove the useless (and buggy, since it's pointing to something stored on the stack) data->chip.priv assignment. Signed-off-by: Boris Brezillon Fixes: 711fdf627ce1 ("[MTD] [NAND] platform NAND driver: add driver") Cc: Vitaly Wool Signed-off-by: Brian Norris drivers/mtd/nand/plat_nand.c | 1 - include/linux/mtd/nand.h | 9 --------- 2 files changed, 10 deletions(-) commit 562ed3f1f78a87746f128c313a5f92083ecb9408 Author: Arnd Bergmann Date: Mon Nov 16 15:05:10 2015 +0100 staging/wilc1000: pass struct wilc to most linux_wlan.c functions We want to get rid of all global variables in this driver, and instead pass device structures from one function to another. This changes the linux_wlan.c and wilc_wlan.c to do this for the most part. There are a few exceptions where these functions are themselves called from another part of the driver that does not have an instance pointer at hand. Changing those would be a follow-up step. There are a few other globals that will have to get moved into struct wilc at a later point. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 2 +- drivers/staging/wilc1000/linux_wlan.c | 55 +++++----- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 12 ++- drivers/staging/wilc1000/wilc_wlan.c | 145 ++++++++++++++------------ drivers/staging/wilc1000/wilc_wlan.h | 10 +- 5 files changed, 119 insertions(+), 105 deletions(-) commit c94f05ee6bb5b5fabe730f0a2656643bc43862ed Author: Arnd Bergmann Date: Mon Nov 16 15:05:09 2015 +0100 staging/wilc1000: use more regular probing So far, my patches tried to do equivalent conversions of the existing code. This one goes beyond that by restructuring how the devices get probed. In particular, the spi driver no longer creates the netdev until the device is probed, and I've removed the global wilc_sdio_func and wilc_spi_dev variables in favor of retrieving them from the wilc_dev variable that will eventually get passed through all functions instead of using a global. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 6 +- drivers/staging/wilc1000/linux_wlan_common.h | 12 --- drivers/staging/wilc1000/linux_wlan_sdio.c | 30 +++---- drivers/staging/wilc1000/linux_wlan_spi.c | 122 +++++++++------------------ drivers/staging/wilc1000/wilc_debugfs.c | 6 +- 5 files changed, 58 insertions(+), 118 deletions(-) commit 750ffe9bdc9605193178c9b20147f83c6f52d3ef Author: Arnd Bergmann Date: Mon Nov 16 15:05:08 2015 +0100 staging/wilc1000: split out bus specific modules The SPI and SDIO specific code is now separate enough that we just need to restructure the Makefile and Kconfig logic a bit and export a couple of symbols from the common module to have separate bus glue drivers. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/Kconfig | 66 ++++++++++++++------------------- drivers/staging/wilc1000/Makefile | 7 +++- drivers/staging/wilc1000/linux_wlan.c | 4 ++ drivers/staging/wilc1000/wilc_debugfs.c | 2 + drivers/staging/wilc1000/wilc_wlan.c | 1 + 5 files changed, 40 insertions(+), 40 deletions(-) commit e28e84d29395278860626bb967286f0e21fe3263 Author: Arnd Bergmann Date: Mon Nov 16 15:05:07 2015 +0100 staging/wilc1000: remove WILC_SDIO/WILC_SPI macros The last remaining user of WILC_SDIO macro checks for the correct time to wait in an interrupt for the PLL to settle. We can replace this with a runtime check and remove both WILC_SDIO and WILC_SPI, as we no longer need conditional compilation based on the hardware type. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/Makefile | 3 +-- drivers/staging/wilc1000/wilc_wlan.c | 5 ++++- drivers/staging/wilc1000/wilc_wlan.h | 7 ++----- 3 files changed, 7 insertions(+), 8 deletions(-) commit 5547c1f09c070f74978f3cb6c74556b3c5d5d09c Author: Arnd Bergmann Date: Mon Nov 16 15:05:06 2015 +0100 staging/wilc1000: turn enable_irq/disable_irq into callbacks As a preparation for turning the SDIO side of wilc1000 into a separate module, this removes the last direct caller from the core module into the sdio specific portion. All calls to wilc_sdio_enable_interrupt() and wilc_sdio_disable_interrupt() now go through a function pointer in wilc_hif_func. We also change arguments slightly to pass the device, as we are already touching those lines and the change will be needed later to remove the global variables. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 22 +++++++++++++--------- drivers/staging/wilc1000/linux_wlan_sdio.c | 21 +++++++++++---------- drivers/staging/wilc1000/linux_wlan_sdio.h | 4 ++-- drivers/staging/wilc1000/wilc_sdio.c | 2 ++ drivers/staging/wilc1000/wilc_wlan.h | 2 ++ 5 files changed, 30 insertions(+), 21 deletions(-) commit 7d37a4a1b48ff6c365f6fd3d74ebe043cb8cb8a7 Author: Arnd Bergmann Date: Mon Nov 16 15:05:05 2015 +0100 staging/wilc1000: pass hif operations through initialization The wilc_hif_spi and wilc_hif_sdio structures are part of the bus specific code, and the generic code should have no knowledge of their addresses. This changes the code to reference them only from the bus specific initialization code, which we can then use to split up the driver into separate modules. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 4 ++- drivers/staging/wilc1000/linux_wlan_sdio.c | 3 ++- drivers/staging/wilc1000/linux_wlan_spi.c | 2 +- drivers/staging/wilc1000/wilc_sdio.c | 35 +++++++++++++-------------- drivers/staging/wilc1000/wilc_spi.c | 34 +++++++++++++------------- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 4 ++- drivers/staging/wilc1000/wilc_wlan.c | 15 ++---------- drivers/staging/wilc1000/wilc_wlan.h | 4 +-- 8 files changed, 47 insertions(+), 54 deletions(-) commit c4d139cb8d7dbe67cfbaefa70230d144dbada34c Author: Arnd Bergmann Date: Mon Nov 16 15:05:04 2015 +0100 staging/wilc1000: get rid of WILC_SDIO_IRQ_GPIO Whether the SDIO function uses an internal or external interrupt should not be a compiletime decision but be determined at runtime. This changes the code to pass a GPIO number from the init code as early as possible, and leaves just one #ifdef WILC_SDIO_IRQ_GPIO to preserve the previous behavior. All other locations that check for the interrupt method are turned into runtime checks based on the gpio number (>=0) or the interrupt number (>0). Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/Makefile | 1 - drivers/staging/wilc1000/linux_wlan.c | 69 ++++++++--------- drivers/staging/wilc1000/linux_wlan_sdio.c | 18 ++--- drivers/staging/wilc1000/linux_wlan_spi.c | 2 +- drivers/staging/wilc1000/wilc_sdio.c | 105 +++++++++++--------------- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 7 +- drivers/staging/wilc1000/wilc_wlan.c | 8 +- 7 files changed, 92 insertions(+), 118 deletions(-) commit 2e7d5377f684ea1b337a4182f5f025b300d024ff Author: Arnd Bergmann Date: Mon Nov 16 15:05:03 2015 +0100 staging/wilc1000: use device pointer for phy creation wilc_create_wiphy tries to get a pointer to a device from the global wilc_sdio_func variable. This is a layering violation and we can use the wilc_dev->dev pointer instead. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 2 +- drivers/staging/wilc1000/linux_wlan_sdio.c | 2 +- drivers/staging/wilc1000/linux_wlan_sdio.h | 2 -- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 9 ++------- drivers/staging/wilc1000/wilc_wfi_cfgoperations.h | 2 +- 5 files changed, 5 insertions(+), 12 deletions(-) commit 6703992896cc95f0bc7c9ccece1fcb3c7e8a2f87 Author: Arnd Bergmann Date: Mon Nov 16 15:05:02 2015 +0100 staging/wilc1000: pass io_type to wilc_netdev_init In order to avoid some of the #ifdefs, this passes the io_type and device pointer as an argument to wilc_netdev_init. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 18 ++++-------------- drivers/staging/wilc1000/linux_wlan_sdio.c | 4 ++-- drivers/staging/wilc1000/linux_wlan_spi.c | 4 ++-- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 2 +- 4 files changed, 9 insertions(+), 19 deletions(-) commit b03314e22571783488828f7f38fa708cbd3a1888 Author: Arnd Bergmann Date: Mon Nov 16 15:05:01 2015 +0100 staging/wilc1000: unify device pointer struct wilc has two pointers to store the device, one for sdio_func and one for spi_device. By changing the pointer to a 'struct device', we can simplify the logic and avoid a few #ifdefs. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 25 +++----------------- drivers/staging/wilc1000/linux_wlan_sdio.c | 33 +++++---------------------- drivers/staging/wilc1000/linux_wlan_spi.c | 22 ++++++++++++++++-- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 6 +---- 4 files changed, 30 insertions(+), 56 deletions(-) commit 857c7b00d2400b2f8a825b4710e9c3d2ebef4aa1 Author: Arnd Bergmann Date: Mon Nov 16 15:05:00 2015 +0100 staging/wilc1000: move init/exit functions to driver files The driver interfaces are in linux_wlan_sdio.c and linux_wlan_spi.c, so this is where the init and exit functions should be. Splitting this up enables further cleanups, including eventually allowing both modules to be built together. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 51 +-------------------------- drivers/staging/wilc1000/linux_wlan_common.h | 10 ++++++ drivers/staging/wilc1000/linux_wlan_sdio.c | 16 +++++++-- drivers/staging/wilc1000/linux_wlan_sdio.h | 6 ++-- drivers/staging/wilc1000/linux_wlan_spi.c | 23 +++++++++++- drivers/staging/wilc1000/linux_wlan_spi.h | 3 +- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 2 +- 7 files changed, 52 insertions(+), 59 deletions(-) commit 4bd7baf04de9ce5f8117da30d5ee2368f3c41b3e Author: Arnd Bergmann Date: Mon Nov 16 15:04:59 2015 +0100 staging/wilc1000: move wilc_wlan_inp_t into struct wilc wilc_wlan_inp_t is an unnecessary indirection and requires linux_wlan.c to have knowledge of the specific sdio and spi front-ends. This removes the structure and places io_type directly inside the struct wilc. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 21 ++++++--------------- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 1 + drivers/staging/wilc1000/wilc_wlan.c | 19 +++++++++---------- drivers/staging/wilc1000/wilc_wlan_if.h | 11 +---------- 4 files changed, 17 insertions(+), 35 deletions(-) commit 25ad41cb25142a8b50164ce7b4b9565173f3d48f Author: Arnd Bergmann Date: Mon Nov 16 15:04:58 2015 +0100 staging/wilc1000: remove linux_wlan_{device_power,device_detection} The driver provides an interface for custom power management and detection that is meant to be filled by people customizing the driver. The default implementation of this is empty, and we don't actually want people to have to modify the source code. If anybody needs this, they need to describe the respective hardware specifics using device tree or platform data and make the driver handle this is a more general way. This removes the empty stubs. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 40 ----------------------------------- 1 file changed, 40 deletions(-) commit 15162fbc78a74a5910e84ad310934aab6b84be02 Author: Arnd Bergmann Date: Mon Nov 16 15:04:57 2015 +0100 staging/wilc1000: avoid static definitions in header The wilc_wfi_cfgoperations.h header defines the ieee80211_txrx_stypes and cipher_suites variables that are only used in wilc_wfi_cfgoperations.c and should not be shared in a header file. This moves over all that data into the .c file, and also moves all the macro definitions from the file that are also not needed here. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 84 +++++++++++++++++++++++ drivers/staging/wilc1000/wilc_wfi_cfgoperations.h | 83 ---------------------- 2 files changed, 84 insertions(+), 83 deletions(-) commit b4d04c15e17156f18a57576d9e958792add30a6a Author: Arnd Bergmann Date: Mon Nov 16 15:04:56 2015 +0100 staging/wilc1000: use NO_SECURITY instead of NO_ENCRYPT The linux_wlan.c file uses a set of enums from wilc_wlan_if.h, with the exception of the NO_ENCRYPT that comes from wilc_wfi_cfgoperations.h. The two sets of enums clearly have the same intention but are defined a bit different. To prepare to clean up the ones in wilc_wfi_cfgoperations.h, this first changes over the only other user. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 491880eb47a693bb194096eec094b2166d2b2354 Author: Arnd Bergmann Date: Mon Nov 16 15:04:55 2015 +0100 staging/wilc1000: move extern declarations to headers 'extern' declarations belong into a header file rather than a .c file, to ensure that the definition matches the declaration. This moves all declarations into a header file that seems most appropriate for it. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 9 +-------- drivers/staging/wilc1000/host_interface.h | 9 +++++++++ drivers/staging/wilc1000/linux_mon.c | 3 --- drivers/staging/wilc1000/linux_wlan.c | 9 --------- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 6 +----- drivers/staging/wilc1000/wilc_wfi_cfgoperations.h | 1 - drivers/staging/wilc1000/wilc_wfi_netdevice.h | 2 ++ drivers/staging/wilc1000/wilc_wlan.c | 8 +------- drivers/staging/wilc1000/wilc_wlan.h | 21 +++++++++++++++++++++ 9 files changed, 35 insertions(+), 33 deletions(-) commit 0e1af73ddeb9747fd1aa8b0c6040b8b3709ae9bb Author: Arnd Bergmann Date: Mon Nov 16 15:04:54 2015 +0100 staging/wilc1000: use proper naming for global symbols There are many global symbols in the wilc1000 driver, some of them with names like "DEBUG_LEVEL" or "probe" that are not acceptable for globals in the linux kernel as they may easily conflict with other (equally broken) drivers. This renames all the globals that do not already start with wilc or a variation of that to start with wilc_ and to follow the usual naming conventions. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 10 +- drivers/staging/wilc1000/coreconfigurator.h | 16 +- drivers/staging/wilc1000/host_interface.c | 260 +++++++++++----------- drivers/staging/wilc1000/host_interface.h | 82 +++---- drivers/staging/wilc1000/linux_mon.c | 4 +- drivers/staging/wilc1000/linux_wlan.c | 115 +++++----- drivers/staging/wilc1000/linux_wlan_common.h | 18 +- drivers/staging/wilc1000/linux_wlan_sdio.c | 50 ++--- drivers/staging/wilc1000/linux_wlan_sdio.h | 16 +- drivers/staging/wilc1000/linux_wlan_spi.c | 14 +- drivers/staging/wilc1000/linux_wlan_spi.h | 10 +- drivers/staging/wilc1000/wilc_debugfs.c | 18 +- drivers/staging/wilc1000/wilc_sdio.c | 62 +++--- drivers/staging/wilc1000/wilc_spi.c | 48 ++-- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 260 +++++++++++----------- drivers/staging/wilc1000/wilc_wfi_cfgoperations.h | 2 +- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 8 +- drivers/staging/wilc1000/wilc_wlan.c | 42 ++-- drivers/staging/wilc1000/wilc_wlan.h | 2 +- drivers/staging/wilc1000/wilc_wlan_cfg.c | 6 +- 20 files changed, 521 insertions(+), 522 deletions(-) commit 1608c4034eee98e3f24ffa9100f96b893d5e5492 Author: Arnd Bergmann Date: Mon Nov 16 15:04:53 2015 +0100 staging/wilc1000: make symbols static if possible All symbols that are only referenced in the file that defines them can be declared 'static' to avoid namespace pollution, to produce better object code, and to make the source more readable. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/Makefile | 3 +- drivers/staging/wilc1000/coreconfigurator.c | 4 +- drivers/staging/wilc1000/host_interface.c | 35 ++++++++------ drivers/staging/wilc1000/host_interface.h | 8 ---- drivers/staging/wilc1000/linux_mon.c | 6 +-- drivers/staging/wilc1000/linux_wlan.c | 19 ++++---- drivers/staging/wilc1000/linux_wlan_sdio.c | 4 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 56 +++++++++++------------ drivers/staging/wilc1000/wilc_wfi_cfgoperations.h | 1 - drivers/staging/wilc1000/wilc_wlan.c | 23 ++++++---- 10 files changed, 81 insertions(+), 78 deletions(-) commit 5f550d930791b4b78f2c946060ee7cca3c03b113 Author: Arnd Bergmann Date: Mon Nov 16 15:04:52 2015 +0100 staging/wilc1000: remove unused functions A number of symbols in the wilc1000 driver are completely unused and can be removed. This includes two variables that are only written but not read. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 295 ---------------------- drivers/staging/wilc1000/host_interface.h | 19 -- drivers/staging/wilc1000/linux_wlan_sdio.c | 11 - drivers/staging/wilc1000/linux_wlan_sdio.h | 1 - drivers/staging/wilc1000/linux_wlan_spi.c | 14 - drivers/staging/wilc1000/linux_wlan_spi.h | 1 - drivers/staging/wilc1000/wilc_sdio.c | 56 ---- drivers/staging/wilc1000/wilc_spi.c | 225 ----------------- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 36 --- drivers/staging/wilc1000/wilc_wlan.c | 4 - 10 files changed, 662 deletions(-) commit e3b14ba3779d4e4d5d72801bbe14bb11c052aaa8 Author: Chaehyun Lim Date: Sun Nov 8 16:49:25 2015 +0900 staging: wilc1000: remove host_int_get_rx_power_level This patch removes host_int_get_rx_power_level function definition and declaration that is defined at host_interface.c and host_interface.h. This function is defined but not used anywhere in this driver so just remove it. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 14 -------------- drivers/staging/wilc1000/host_interface.h | 3 --- 2 files changed, 17 deletions(-) commit 409bee3de116090091e214aa0396143314295676 Author: Chaehyun Lim Date: Sun Nov 8 16:49:24 2015 +0900 staging: wilc1000: remove host_int_get_assoc_req_info This patch removes host_int_get_assoc_req_info function definition and declaration that is defined at host_interface.c and host_interface.h. This function is defined but not used anywhere in this driver so just remove it. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 14 -------------- drivers/staging/wilc1000/host_interface.h | 3 --- 2 files changed, 17 deletions(-) commit 3fbb77f2b3aacd054564e7431c17f1f44fdf65c3 Author: Chaehyun Lim Date: Sun Nov 8 16:49:23 2015 +0900 staging: wilc1000: remove host_int_disconnect_station This patch removes host_int_disconnect_station function definition and declaration that is defined at host_interface.c and host_interface.h. This function is defined but not used anywhere so just remove it. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 12 ------------ drivers/staging/wilc1000/host_interface.h | 1 - 2 files changed, 13 deletions(-) commit 9c2a6f282636214e6cfb7e4c454e84151f31467b Author: Chaehyun Lim Date: Sun Nov 8 16:49:22 2015 +0900 staging: wilc1000: remove host_int_get_start_scan_req This patch removes host_int_get_start_scan_req function definition and declaration that is defined at host_interface.c and host_interface.h. This function is defined but not used anywhere in this driver so just remove it. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 12 ------------ drivers/staging/wilc1000/host_interface.h | 1 - 2 files changed, 13 deletions(-) commit a17a1f2bd204a10082e7e88bdbc433a85cc92e1e Author: Chaehyun Lim Date: Sun Nov 8 16:49:21 2015 +0900 staging: wilc1000: remove host_int_set_start_scan_req This patch removes host_int_set_start_scan_req function definition and declaration that is defined at host_interface.c and host_interface.h. This function is defined but not used anywhere in this driver so that just remove it. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 12 ------------ drivers/staging/wilc1000/host_interface.h | 1 - 2 files changed, 13 deletions(-) commit cb12ac574fe0edf7a7812e0ec9af5b94c394580f Author: Chaehyun Lim Date: Sun Nov 8 16:49:20 2015 +0900 staging: wilc1000: remove host_int_get_RSNAConfigPSKPassPhrase This patch removes host_int_get_RSNAConfigPSKPassPhrase function definition and declaration that is defined at host_interface.c and host_interface.h. This function is defined but not used anywhere in this driver so just remove it. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 13 ------------- drivers/staging/wilc1000/host_interface.h | 2 -- 2 files changed, 15 deletions(-) commit bd6ef876c64cac2e3f4a5d49f47200158736d3d7 Author: Chaehyun Lim Date: Sun Nov 8 16:49:19 2015 +0900 staging: wilc1000: remove host_int_set_RSNAConfigPSKPassPhrase This patch removes host_int_set_RSNAConfigPSKPassPhrase function definition and declaration that is defined at host_interface.c and host_interface.h. This function is defined but not used anywhere in this driver so just remove it. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 16 ---------------- drivers/staging/wilc1000/host_interface.h | 3 --- 2 files changed, 19 deletions(-) commit 9d8b9156a67c9a0f00d10f93e7cb51c7b80312cb Author: Chaehyun Lim Date: Sun Nov 8 16:49:18 2015 +0900 staging: wilc1000: remove host_int_get_pmkid_info This patch removes host_int_get_pmkid_info function definition and declaration that is defined at host_interface.c and host_interface.h. This function is defined but not used anywhere in this driver so just remove it. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 14 -------------- drivers/staging/wilc1000/host_interface.h | 2 -- 2 files changed, 16 deletions(-) commit 36e4cb257a8b49b72287416edb64e166f3fd0315 Author: Chaehyun Lim Date: Sun Nov 8 16:49:17 2015 +0900 staging: wilc1000: remove host_int_add_tx_gtk declaration This patch removes host_int_add_tx_gtk declaration that is defined in host_interface.h file. It can not find any host_int_add_tx_gtk function definition in this driver so just remove it. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.h | 2 -- 1 file changed, 2 deletions(-) commit 9bfda3820fe4e7e509aebe3b32b1514b5a615851 Author: Chaehyun Lim Date: Sun Nov 8 16:49:16 2015 +0900 staging: wilc1000: use kmemdup in host_int_add_rx_gtk This patch changes kmalloc followed by memcpy to kmemdup. The error checking is also added when kmemdup is failed. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) commit d002fcc0f2de5e05af3c9e753899985985a4d390 Author: Chaehyun Lim Date: Sun Nov 8 16:49:15 2015 +0900 staging: wilc1000: rename u8KeyLen in host_int_add_rx_gtk This patch changes u8KeyLen to key_len to avoid camelcase. It is used as local variable in order to save gtk_key_len that is argument of this function. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 57bfcbc4d33491648500c739ee45594117a7cb0d Author: Chaehyun Lim Date: Sun Nov 8 16:49:14 2015 +0900 staging: wilc1000: rename u8Ciphermode in host_int_add_rx_gtk This patch changes u8Ciphermode to cipher_mode to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 2f79758de5c0bcefd897c78a9b5994f5fe74ab23 Author: Chaehyun Lim Date: Sun Nov 8 16:49:13 2015 +0900 staging: wilc1000: rename pu8TxMic in host_int_add_rx_gtk This patch changes pu8TxMic to tx_mic to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 8 ++++---- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) commit 6d36c2737b9d642fdf9675de105bfb803c43fd2e Author: Chaehyun Lim Date: Sun Nov 8 16:49:12 2015 +0900 staging: wilc1000: rename pu8RxMic in host_int_add_rx_gtk This patch changes pu8RxMic to rx_mic to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 8 ++++---- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) commit 982859ccf4a7bb2d49b24afa3007c048c2a986c2 Author: Chaehyun Lim Date: Sun Nov 8 16:49:11 2015 +0900 staging: wilc1000: rename KeyRSC in host_int_add_rx_gtk This patch changes KeyRSC to key_rsc to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 6 +++--- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) commit 18bef999b1c01c79c11a310649a1a590a6523959 Author: Chaehyun Lim Date: Sun Nov 8 16:49:10 2015 +0900 staging: wilc1000: rename u32KeyRSClen in host_int_add_rx_gtk This patch changes u32KeyRSClen to key_rsc_len to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 8 ++++---- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) commit 9a5e57362474e1c508c20c4757b1f43855ae377e Author: Chaehyun Lim Date: Sun Nov 8 16:49:09 2015 +0900 staging: wilc1000: rename u8KeyIdx in host_int_add_rx_gtk This patch changes u8KeyIdx to index to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 5285e910fb57418e78b1675a279ad63e0ba0491c Author: Chaehyun Lim Date: Sun Nov 8 16:49:08 2015 +0900 staging: wilc1000: rename u8GtkKeylen in host_int_add_rx_gtk This patch changes u8GtkKeylen to gtk_key_len to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 6 +++--- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) commit 3c0bf6b577bbd6900141e75e028e0dcb43be3903 Author: Chaehyun Lim Date: Sun Nov 8 16:49:07 2015 +0900 staging: wilc1000: rename pu8RxGtk in host_int_add_rx_gtk This patch changes pu8RxGtk to rx_gtk to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 84f82ed814196acbdc892cd2b98d3e696e6dd607 Author: Chaehyun Lim Date: Sun Nov 8 16:49:06 2015 +0900 staging: wilc1000: fix argument name of host_int_add_rx_gtk This patch changes struct host_if_drv of host_int_add_rx_gtk function declaration from hWFIDrv to hif_drv. With this change, first argument of this function declaration and definition has same name as hif_drv. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1503457f7f08c2a9907060f8beca3a35c6c0c047 Author: Chaehyun Lim Date: Sun Nov 8 16:49:05 2015 +0900 staging: wilc1000: fix return type of host_int_add_rx_gtk This patch changes return type of host_int_add_rx_gtk from s32 to int. The result variable gets return value from wilc_mq_send that has return type of int. It should be changed return type of this function as well as data type of result variable. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 8ab8c59218d79effc763d6f20cb0d0bad783fd56 Author: Chaehyun Lim Date: Sun Nov 8 16:49:04 2015 +0900 staging: wilc1000: use kmemdup in host_int_add_ptk This patch changes kmalloc followed by memcpy to kmemdup The error checking is also added when kmemdup is failed. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 53bbbb575cb8d557fcf96998da42d0a2ab57d036 Author: Chaehyun Lim Date: Sun Nov 8 16:49:03 2015 +0900 staging: wilc1000: rename u8KeyLen in host_int_add_ptk This patch changes u8KeyLen to key_len to avoid camelcase. It is used as local variable in order to save pkt_key_len that is argument of this function. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit fa2690747580c9f6f6ce5da7ca2dc7d311c35051 Author: Chaehyun Lim Date: Sun Nov 8 16:49:02 2015 +0900 staging: wilc1000: replace u32 with int The data type of variable i changes u32 to int. It is used as array index to print debug message so that it is better to use data type of int. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3e5c4ab6cf313ec9feec075fdcc0d28ba2316849 Author: Chaehyun Lim Date: Sun Nov 8 16:49:01 2015 +0900 staging: wilc1000: rename u8Idx in host_int_add_ptk This patch changes u8Idx to index to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit f0c82579d853825d5728d189dba8dbbad61cbaca Author: Chaehyun Lim Date: Sun Nov 8 16:49:00 2015 +0900 staging: wilc1000: rename u8Ciphermode in host_int_add_ptk This patch changes u8Ciphermode to cipher_mode to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit d7c0242be1a380110502396e79ec782e02f14d60 Author: Chaehyun Lim Date: Sun Nov 8 16:48:59 2015 +0900 staging: wilc1000: rename pu8TxMic in host_int_add_ptk This patch changes pu8TxMic to tx_mic to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 10 +++++----- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) commit 38f6629054b974af4ccee3bef055b97b5b048089 Author: Chaehyun Lim Date: Sun Nov 8 16:48:58 2015 +0900 staging: wilc1000: rename pu8RxMic in host_int_add_ptk This patch changes pu8RxMic to rx_mic to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 10 +++++----- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) commit 0743b7eaffa7380842e59372094ba236b3763322 Author: Chaehyun Lim Date: Sun Nov 8 16:48:57 2015 +0900 staging: wilc1000: rename u8PtkKeylen in host_int_add_ptk This patch changes u8PtkKeylen to ptk_key_len to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 8 ++++---- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) commit d170536f3add3ef96fe0015ac38c886f17f5aeb6 Author: Chaehyun Lim Date: Sun Nov 8 16:48:56 2015 +0900 staging: wilc1000: rename pu8Ptk in host_int_add_ptk This patch changes pu8Ptk to ptk to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit d17b7dd24212b7bb823c4c568268b29577943f96 Author: Chaehyun Lim Date: Sun Nov 8 16:48:55 2015 +0900 staging: wilc1000: fix argument name of host_int_add_ptk This patch changes struct host_if_drv of host_int_add_ptk function declaration from hWFIDrv to hif_drv. With this change, first parameter of this function declaration and definition has same name as hif_drv. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 706ab42eae8a7a320d0364c7040c9419bfdea235 Author: Chaehyun Lim Date: Sun Nov 8 16:48:54 2015 +0900 staging: wilc1000: fix return type of host_int_add_ptk This patch changes return type of host_int_add_ptk from s32 to int. The result variable gets return value from wilc_mq_send that has return type of int. It should be changed return type of this function as well as data type of result variable. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 0e710f1f5b1640ab033db9aba0edb2bd215fac26 Author: Aleksei Mamlin Date: Fri Dec 18 11:52:08 2015 +0300 ARM: dts: sun7i: Enable PWM controller on Wexler TAB7200 tablet Wexler TAB7200 tablet use channel 0 of the PWM controller for backlight dimming Signed-off-by: Aleksei Mamlin Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20-wexler-tab7200.dts | 6 ++++++ 1 file changed, 6 insertions(+) commit 29574ede097438c560e8115caff9b6b8668730be Author: Boris BREZILLON Date: Thu Dec 10 09:00:38 2015 +0100 mtd: nand: kill the chip->flash_node field Now that the nand_chip struct directly embeds an mtd_info struct we can get rid of the ->flash_node field and forward set/get_flash_node requests to the MTD layer. As a side effect, we no longer need the mtd_set_of_node() call done in nand_dt_init(). Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/nand_base.c | 3 --- include/linux/mtd/nand.h | 7 ++----- 2 files changed, 2 insertions(+), 8 deletions(-) commit 7194a29a9bf1e5abcda8b181bba771fbe0e95b6c Author: Boris BREZILLON Date: Thu Dec 10 09:00:37 2015 +0100 mtd: nand: simplify nand_dt_init() usage nand_dt_init() function requires 3 arguments where it actually needs one (dn and mtd can both be retrieved from chip). Drop these parameters. Testing for dn != NULL inside nand_dt_init() also helps simplifying the caller code. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/nand_base.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) commit f12d86afc5594c89492fb7c78fce07a4e94b2384 Author: Boris BREZILLON Date: Thu Dec 10 09:00:36 2015 +0100 staging: mt29f_spinand: remove useless mtd->priv = chip assignment mtd_to_nand() now uses the container_of() approach to transform an mtd_info pointer into a nand_chip one. Drop useless mtd->priv assignments from NAND controller drivers. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/staging/mt29f_spinand/mt29f_spinand.c | 1 - 1 file changed, 1 deletion(-) commit 038a5380e3698615eea341f10f42b1fd74e54e1c Author: Boris BREZILLON Date: Thu Dec 10 09:00:35 2015 +0100 cris: nand: remove useless mtd->priv = chip assignments mtd_to_nand() now uses the container_of() approach to transform an mtd_info pointer into a nand_chip one. Drop useless mtd->priv assignments from NAND controller drivers. Signed-off-by: Boris Brezillon Acked-by: Jesper Nilsson Signed-off-by: Brian Norris arch/cris/arch-v32/drivers/mach-a3/nandflash.c | 3 --- arch/cris/arch-v32/drivers/mach-fs/nandflash.c | 3 --- 2 files changed, 6 deletions(-) commit 37f5a54646da0760306ab8570115e20d0ed615f5 Author: Boris BREZILLON Date: Thu Dec 10 09:00:34 2015 +0100 mtd: nand: remove useless mtd->priv = chip assignments mtd_to_nand() now uses the container_of() approach to transform an mtd_info pointer into a nand_chip one. Drop useless mtd->priv assignments from NAND controller drivers. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/ams-delta.c | 3 --- drivers/mtd/nand/atmel_nand.c | 1 - drivers/mtd/nand/au1550nd.c | 1 - drivers/mtd/nand/bcm47xxnflash/main.c | 1 - drivers/mtd/nand/bf5xx_nand.c | 1 - drivers/mtd/nand/brcmnand/brcmnand.c | 1 - drivers/mtd/nand/cafe_nand.c | 1 - drivers/mtd/nand/cmx270_nand.c | 1 - drivers/mtd/nand/cs553x_nand.c | 1 - drivers/mtd/nand/davinci_nand.c | 1 - drivers/mtd/nand/denali.c | 1 - drivers/mtd/nand/diskonchip.c | 1 - drivers/mtd/nand/docg4.c | 1 - drivers/mtd/nand/fsl_elbc_nand.c | 1 - drivers/mtd/nand/fsl_ifc_nand.c | 1 - drivers/mtd/nand/fsl_upm.c | 1 - drivers/mtd/nand/fsmc_nand.c | 1 - drivers/mtd/nand/gpio.c | 1 - drivers/mtd/nand/gpmi-nand/gpmi-nand.c | 1 - drivers/mtd/nand/hisi504_nand.c | 1 - drivers/mtd/nand/jz4740_nand.c | 1 - drivers/mtd/nand/lpc32xx_mlc.c | 1 - drivers/mtd/nand/lpc32xx_slc.c | 1 - drivers/mtd/nand/mpc5121_nfc.c | 1 - drivers/mtd/nand/mxc_nand.c | 1 - drivers/mtd/nand/nandsim.c | 1 - drivers/mtd/nand/ndfc.c | 1 - drivers/mtd/nand/nuc900_nand.c | 1 - drivers/mtd/nand/omap2.c | 1 - drivers/mtd/nand/orion_nand.c | 1 - drivers/mtd/nand/pasemi_nand.c | 1 - drivers/mtd/nand/plat_nand.c | 1 - drivers/mtd/nand/pxa3xx_nand.c | 1 - drivers/mtd/nand/r852.c | 1 - drivers/mtd/nand/s3c2410.c | 2 -- drivers/mtd/nand/sh_flctl.c | 1 - drivers/mtd/nand/sharpsl.c | 1 - drivers/mtd/nand/socrates_nand.c | 1 - drivers/mtd/nand/sunxi_nand.c | 1 - drivers/mtd/nand/tmio_nand.c | 1 - drivers/mtd/nand/txx9ndfmc.c | 2 -- drivers/mtd/nand/vf610_nfc.c | 1 - 42 files changed, 46 deletions(-) commit 2c102c38d5ee4e6d3f428eed563a95bc2b3c2561 Author: Priit Laes Date: Fri Dec 11 23:23:00 2015 +0200 ARM: dts: sun4i: gemei-g9: Enable PA GPIO pin configuration PA GPIO pin (PH15) controls power to external amplifier (FT2012Q). Signed-off-by: Priit Laes Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10-gemei-g9.dts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) commit 2d3b77bac34bf99d7fdfd712ec2dc4317b3e850b Author: Boris BREZILLON Date: Thu Dec 10 09:00:33 2015 +0100 mtd: nand: update mtd_to_nand() Now that all drivers are using the mtd instance embedded in the nand_chip struct we can safely update the mtd_to_nand() implementation to use the container_of macro instead of returning the content of mtd->priv. This will allow us to remove mtd->priv = chip assignments done in all NAND controller drivers. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris include/linux/mtd/nand.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 53aa9346098a15df9227e232236f4ada298ef6fc Author: Hans de Goede Date: Fri Dec 11 19:43:59 2015 +0100 ARM: dts: sun4i: Enable onboard codec used on the pov protab2-ips9 tablet The pov protab2-ips9 tablet uses the A10's integrated audio codec, enable it. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10-pov-protab2-ips9.dts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit a692e00a778997ea84238aac803fa4a5cd562fc8 Author: Hans de Goede Date: Fri Dec 11 19:43:58 2015 +0100 ARM: dts: sun5i: Enable onboard codec used on the UTOO P66 tablet The UTOO P66 tablet uses the A13's integrated audio codec, enable it. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun5i-a13-utoo-p66.dts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 442f201b93b5222ac2e4f7513be86fdbd00e9065 Author: Boris BREZILLON Date: Fri Dec 11 15:06:00 2015 +0100 mtd: nand: denali: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/denali.c | 69 ++++++++++++++++++++++++++--------------------- drivers/mtd/nand/denali.h | 1 - 2 files changed, 38 insertions(+), 32 deletions(-) commit a723bf6a58b17379c27f869402baddf4b0d2c7dc Author: Boris BREZILLON Date: Fri Dec 11 15:04:06 2015 +0100 mtd: nand: socrates: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/socrates_nand.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit b70183db83552cf63cac51406aaf76a2cf5fca73 Author: stephen hemminger Date: Thu Dec 17 17:51:16 2015 -0800 asix: silence log message from oversize packet Since it is possible for an external system to send oversize packets at anytime, it is best for driver not to print a message and spam the log (potential external DoS). Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=109471 Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller drivers/net/usb/asix_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 07f6f4a31e5a8dee67960fc07bb0b37c5f879d4d Author: Eric Dumazet Date: Thu Dec 17 16:14:11 2015 -0800 tcp: diag: add support for request sockets to tcp_abort() Adding support for SYN_RECV request sockets to tcp_abort() is quite easy after our tcp listener rewrite. Note that we also need to better handle listeners, or we might leak not yet accepted children, because of a missing inet_csk_listen_stop() call. Signed-off-by: Eric Dumazet Cc: Lorenzo Colitti Tested-by: Lorenzo Colitti Signed-off-by: David S. Miller net/ipv4/tcp.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit d73e5f41462182053ce1195c3fc4fc14a7e7666b Merge: 59ce967 9dd2af8 Author: David S. Miller Date: Fri Dec 18 16:04:52 2015 -0500 Merge branch 'bpf-misc-updates' Daniel Borkmann says: ==================== Misc BPF updates This series contains a couple of misc updates to the BPF code, besides others a new helper bpf_skb_load_bytes(), moving clearing of A/X to the classic converter, etc. Please see individual patches for details. Thanks! ==================== Signed-off-by: David S. Miller commit 9dd2af834dea132fa47b9a168d6da566d2e445d3 Author: Daniel Borkmann Date: Thu Dec 17 23:51:57 2015 +0100 bpf, test: add couple of test cases Add couple of test cases for interpreter but also JITs, f.e. to test that when imm32 moves are being done, upper 32bits of the regs are being zero extended. Without JIT: [...] [ 1114.129301] test_bpf: #43 MOV REG64 jited:0 128 PASS [ 1114.130626] test_bpf: #44 MOV REG32 jited:0 139 PASS [ 1114.132055] test_bpf: #45 LD IMM64 jited:0 124 PASS [...] With JIT (generated code can as usual be nicely verified with the help of bpf_jit_disasm tool): [...] [ 1062.726782] test_bpf: #43 MOV REG64 jited:1 6 PASS [ 1062.726890] test_bpf: #44 MOV REG32 jited:1 6 PASS [ 1062.726993] test_bpf: #45 LD IMM64 jited:1 6 PASS [...] Signed-off-by: Daniel Borkmann Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller lib/test_bpf.c | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) commit 606c88a86c77fa27cb4eac899ddced9092825bea Author: Daniel Borkmann Date: Thu Dec 17 23:51:56 2015 +0100 bpf, x86: detect/optimize loading 0 immediates When sometimes structs or variables need to be initialized/'memset' to 0 in an eBPF C program, the x86 BPF JIT converts this to use immediates. We can however save a couple of bytes (f.e. even up to 7 bytes on a single emmission of BPF_LD | BPF_IMM | BPF_DW) in the image by detecting such case and use xor on the dst register instead. Signed-off-by: Daniel Borkmann Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller arch/x86/net/bpf_jit_comp.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit 23bf88078afdb8f9b8071dd9f32754ebab7ba3dc Author: Daniel Borkmann Date: Thu Dec 17 23:51:55 2015 +0100 bpf: fix misleading comment in bpf_convert_filter Comment says "User BPF's register A is mapped to our BPF register 6", which is actually wrong as the mapping is on register 0. This can already be inferred from the code itself. So just remove it before someone makes assumptions based on that. Only code tells truth. ;) Signed-off-by: Daniel Borkmann Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller net/core/filter.c | 6 ------ 1 file changed, 6 deletions(-) commit 8b614aebecdf2b1f72d51b1527f5a75d218b78e2 Author: Daniel Borkmann Date: Thu Dec 17 23:51:54 2015 +0100 bpf: move clearing of A/X into classic to eBPF migration prologue Back in the days where eBPF (or back then "internal BPF" ;->) was not exposed to user space, and only the classic BPF programs internally translated into eBPF programs, we missed the fact that for classic BPF A and X needed to be cleared. It was fixed back then via 83d5b7ef99c9 ("net: filter: initialize A and X registers"), and thus classic BPF specifics were added to the eBPF interpreter core to work around it. This added some confusion for JIT developers later on that take the eBPF interpreter code as an example for deriving their JIT. F.e. in f75298f5c3fe ("s390/bpf: clear correct BPF accumulator register"), at least X could leak stack memory. Furthermore, since this is only needed for classic BPF translations and not for eBPF (verifier takes care that read access to regs cannot be done uninitialized), more complexity is added to JITs as they need to determine whether they deal with migrations or native eBPF where they can just omit clearing A/X in their prologue and thus reduce image size a bit, see f.e. cde66c2d88da ("s390/bpf: Only clear A and X for converted BPF programs"). In other cases (x86, arm64), A and X is being cleared in the prologue also for eBPF case, which is unnecessary. Lets move this into the BPF migration in bpf_convert_filter() where it actually belongs as long as the number of eBPF JITs are still few. It can thus be done generically; allowing us to remove the quirk from __bpf_prog_run() and to slightly reduce JIT image size in case of eBPF, while reducing code duplication on this matter in current(/future) eBPF JITs. Signed-off-by: Daniel Borkmann Acked-by: Alexei Starovoitov Reviewed-by: Michael Holzheu Tested-by: Michael Holzheu Cc: Zi Shen Lim Cc: Yang Shi Acked-by: Yang Shi Acked-by: Zi Shen Lim Signed-off-by: David S. Miller arch/arm64/net/bpf_jit_comp.c | 6 ------ arch/s390/net/bpf_jit_comp.c | 13 ++----------- arch/x86/net/bpf_jit_comp.c | 14 +++++++++----- kernel/bpf/core.c | 4 ---- net/core/filter.c | 19 ++++++++++++++++--- 5 files changed, 27 insertions(+), 29 deletions(-) commit 05c74e5e53f6cb07502c3e6a820f33e2777b6605 Author: Daniel Borkmann Date: Thu Dec 17 23:51:53 2015 +0100 bpf: add bpf_skb_load_bytes helper When hacking tc programs with eBPF, one of the issues that come up from time to time is to load addresses from headers. In eBPF as in classic BPF, we have BPF_LD | BPF_ABS | BPF_{B,H,W} instructions that extract a byte, half-word or word out of the skb data though helpers such as bpf_load_pointer() (interpreter case). F.e. extracting a whole IPv6 address could possibly look like ... union v6addr { struct { __u32 p1; __u32 p2; __u32 p3; __u32 p4; }; __u8 addr[16]; }; [...] a.p1 = htonl(load_word(skb, off)); a.p2 = htonl(load_word(skb, off + 4)); a.p3 = htonl(load_word(skb, off + 8)); a.p4 = htonl(load_word(skb, off + 12)); [...] /* access to a.addr[...] */ This work adds a complementary helper bpf_skb_load_bytes() (we also have bpf_skb_store_bytes()) as an alternative where the same call would look like from an eBPF program: ret = bpf_skb_load_bytes(skb, off, addr, sizeof(addr)); Same verifier restrictions apply as in ffeedafbf023 ("bpf: introduce current->pid, tgid, uid, gid, comm accessors") case, where stack memory access needs to be statically verified and thus guaranteed to be initialized in first use (otherwise verifier cannot tell whether a subsequent access to it is valid or not as it's runtime dependent). Signed-off-by: Daniel Borkmann Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller include/uapi/linux/bpf.h | 1 + net/core/filter.c | 35 ++++++++++++++++++++++++++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) commit 17dd20bd7d4389d3bc54d71e263088039203ea07 Author: Boris BREZILLON Date: Thu Dec 10 08:59:52 2015 +0100 mtd: nand: bcm47xx: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/bcm47xxnflash/bcm47xxnflash.h | 1 - drivers/mtd/nand/bcm47xxnflash/main.c | 10 ++++++---- drivers/mtd/nand/bcm47xxnflash/ops_bcm4706.c | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) commit 4883090bedd79c2c5b408976f0f49e7041cbc3cb Author: Boris BREZILLON Date: Thu Dec 10 09:00:32 2015 +0100 cris: nand: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Patch all drivers to make use of this mtd instance instead of using the instance embedded in their private struct or dynamically allocated. Signed-off-by: Boris Brezillon Acked-by: Jesper Nilsson Signed-off-by: Brian Norris arch/cris/arch-v32/drivers/mach-a3/nandflash.c | 3 +-- arch/cris/arch-v32/drivers/mach-fs/nandflash.c | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) commit ba4ed8605cb09b2cb72bf14499cf4605a0f9eb23 Author: Boris BREZILLON Date: Thu Dec 10 09:00:31 2015 +0100 staging: mt29f_spinand: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device, use it instead of allocating a new one. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/staging/mt29f_spinand/mt29f_spinand.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 2d3743944a6b425f3a3795a967499c13e0d8856c Author: Brian Norris Date: Fri Dec 18 11:39:53 2015 -0800 mtd: nand: docg4: simplify error case Other refactorings have left the 'fail' label much simpler, so it shouldn't have to handle the failed allocation case. This also fixes a -Wshadow warning. Signed-off-by: Brian Norris Reviewed-by: Boris Brezillon drivers/mtd/nand/docg4.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit 59ce9670ce18d067433883adf213d04ded074cbf Merge: 4b402d7 b4aae75 Author: David S. Miller Date: Fri Dec 18 15:37:42 2015 -0500 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 the first batch of Netfilter updates for the upcoming 4.5 kernel. This batch contains userspace netfilter header compilation fixes, support for packet mangling in nf_tables, the new tracing infrastructure for nf_tables and cgroup2 support for iptables. More specifically, they are: 1) Two patches to include dependencies in our netfilter userspace headers to resolve compilation problems, from Mikko Rapeli. 2) Four comestic cleanup patches for the ebtables codebase, from Ian Morris. 3) Remove duplicate include in the netfilter reject infrastructure, from Stephen Hemminger. 4) Two patches to simplify the netfilter defragmentation code for IPv6, patch from Florian Westphal. 5) Fix root ownership of /proc/net netfilter for unpriviledged net namespaces, from Philip Whineray. 6) Get rid of unused fields in struct nft_pktinfo, from Florian Westphal. 7) Add mangling support to our nf_tables payload expression, from Patrick McHardy. 8) Introduce a new netlink-based tracing infrastructure for nf_tables, from Florian Westphal. 9) Change setter functions in nfnetlink_log to be void, from Rami Rosen. 10) Add netns support to the cttimeout infrastructure. 11) Add cgroup2 support to iptables, from Tejun Heo. 12) Introduce nfnl_dereference_protected() in nfnetlink, from Florian. 13) Add support for mangling pkttype in the nf_tables meta expression, also from Florian. BTW, I need that you pull net into net-next, I have another batch that requires changes that I don't yet see in net. ==================== Signed-off-by: David S. Miller commit 26ae9d1c5af1b1d669ca1c28fc02bbca3d778d45 Author: Chuck Lever Date: Wed Dec 16 17:23:20 2015 -0500 xprtrdma: Revert commit e7104a2a9606 ('xprtrdma: Cap req_cqinit'). The root of the problem was that sends (especially unsignalled FASTREG and LOCAL_INV Work Requests) were not properly flow- controlled, which allowed a send queue overrun. Now that the RPC/RDMA reply handler waits for invalidation to complete, the send queue is properly flow-controlled. Thus this limit is no longer necessary. Signed-off-by: Chuck Lever Tested-by: Devesh Sharma Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/verbs.c | 6 ++---- net/sunrpc/xprtrdma/xprt_rdma.h | 6 ------ 2 files changed, 2 insertions(+), 10 deletions(-) commit 68791649a725ac58c88b472ea6187853e67b3415 Author: Chuck Lever Date: Wed Dec 16 17:23:11 2015 -0500 xprtrdma: Invalidate in the RPC reply handler There is a window between the time the RPC reply handler wakes the waiting RPC task and when xprt_release() invokes ops->buf_free. During this time, memory regions containing the data payload may still be accessed by a broken or malicious server, but the RPC application has already been allowed access to the memory containing the RPC request's data payloads. The server should be fenced from client memory containing RPC data payloads _before_ the RPC application is allowed to continue. This change also more strongly enforces send queue accounting. There is a maximum number of RPC calls allowed to be outstanding. When an RPC/RDMA transport is set up, just enough send queue resources are allocated to handle registration, Send, and invalidation WRs for each those RPCs at the same time. Before, additional RPC calls could be dispatched while invalidation WRs were still consuming send WQEs. When invalidation WRs backed up, dispatching additional RPCs resulted in a send queue overrun. Now, the reply handler prevents RPC dispatch until invalidation is complete. This prevents RPC call dispatch until there are enough send queue resources to proceed. Still to do: If an RPC exits early (say, ^C), the reply handler has no opportunity to perform invalidation. Currently, xprt_rdma_free() still frees remaining RDMA resources, which could deadlock. Additional changes are needed to handle invalidation properly in this case. Reported-by: Jason Gunthorpe Signed-off-by: Chuck Lever Tested-by: Devesh Sharma Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/rpc_rdma.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 73eee9b2de1fa08f2a82bb32ac4ec5e605716a91 Author: Chuck Lever Date: Wed Dec 16 17:23:03 2015 -0500 xprtrdma: Add ro_unmap_sync method for all-physical registration physical's ro_unmap is synchronous already. The new ro_unmap_sync method just has to DMA unmap all MRs associated with the RPC request. Signed-off-by: Chuck Lever Tested-by: Devesh Sharma Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/physical_ops.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 7c7a5390dc6c8d89fc368424b69a4eef8e43f411 Author: Chuck Lever Date: Wed Dec 16 17:22:55 2015 -0500 xprtrdma: Add ro_unmap_sync method for FMR FMR's ro_unmap method is already synchronous because ib_unmap_fmr() is a synchronous verb. However, some improvements can be made here. 1. Gather all the MRs for the RPC request onto a list, and invoke ib_unmap_fmr() once with that list. This reduces the number of doorbells when there is more than one MR to invalidate 2. Perform the DMA unmap _after_ the MRs are unmapped, not before. This is critical after invalidating a Write chunk. Signed-off-by: Chuck Lever Tested-by: Devesh Sharma Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/fmr_ops.c | 64 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) commit c9918ff56dfb175ce427140c641280d0b4522dbe Author: Chuck Lever Date: Wed Dec 16 17:22:47 2015 -0500 xprtrdma: Add ro_unmap_sync method for FRWR FRWR's ro_unmap is asynchronous. The new ro_unmap_sync posts LOCAL_INV Work Requests and waits for them to complete before returning. Note also, DMA unmapping is now done _after_ invalidation. Signed-off-by: Chuck Lever Tested-by: Devesh Sharma Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/frwr_ops.c | 136 ++++++++++++++++++++++++++++++++++++++-- net/sunrpc/xprtrdma/xprt_rdma.h | 2 + 2 files changed, 134 insertions(+), 4 deletions(-) commit 32d0ceecdfd0e941c492390fe5b6237cc1cf9fa6 Author: Chuck Lever Date: Wed Dec 16 17:22:39 2015 -0500 xprtrdma: Introduce ro_unmap_sync method In the current xprtrdma implementation, some memreg strategies implement ro_unmap synchronously (the MR is knocked down before the method returns) and some asynchonously (the MR will be knocked down and returned to the pool in the background). To guarantee the MR is truly invalid before the RPC consumer is allowed to resume execution, we need an unmap method that is always synchronous, invoked from the RPC/RDMA reply handler. The new method unmaps all MRs for an RPC. The existing ro_unmap method unmaps only one MR at a time. Signed-off-by: Chuck Lever Tested-by: Devesh Sharma Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/xprt_rdma.h | 2 ++ 1 file changed, 2 insertions(+) commit 3cf4e169be95e1a3a70a063b6bd8103fbd5911f3 Author: Chuck Lever Date: Wed Dec 16 17:22:31 2015 -0500 xprtrdma: Move struct ib_send_wr off the stack For FRWR FASTREG and LOCAL_INV, move the ib_*_wr structure off the stack. This allows frwr_op_map and frwr_op_unmap to chain WRs together without limit to register or invalidate a set of MRs with a single ib_post_send(). (This will be for chaining LOCAL_INV requests). Signed-off-by: Chuck Lever Tested-by: Devesh Sharma Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/frwr_ops.c | 38 ++++++++++++++++++++------------------ net/sunrpc/xprtrdma/xprt_rdma.h | 4 ++++ 2 files changed, 24 insertions(+), 18 deletions(-) commit c8bbe0c7fec3a6fd01d445eea11e72e902403ea9 Author: Chuck Lever Date: Wed Dec 16 17:22:23 2015 -0500 xprtrdma: Disable RPC/RDMA backchannel debugging messages Clean up. Fixes: 63cae47005af ('xprtrdma: Handle incoming backward direction') Signed-off-by: Chuck Lever Tested-by: Devesh Sharma Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/backchannel.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit ffc4d9b1596c34caa98962722e930e97912c8a9f Author: Chuck Lever Date: Wed Dec 16 17:22:14 2015 -0500 xprtrdma: xprt_rdma_free() must not release backchannel reqs Preserve any rpcrdma_req that is attached to rpc_rqst's allocated for the backchannel. Otherwise, after all the pre-allocated backchannel req's are consumed, incoming backward calls start writing on freed memory. Somehow this hunk got lost. Fixes: f531a5dbc451 ('xprtrdma: Pre-allocate backward rpc_rqst') Signed-off-by: Chuck Lever Tested-by: Devesh Sharma Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/transport.c | 3 +++ 1 file changed, 3 insertions(+) commit 9b06688bc3b9f13f8de90f832c455fddec3d4e8a Author: Chuck Lever Date: Wed Dec 16 17:22:06 2015 -0500 xprtrdma: Fix additional uses of spin_lock_irqsave(rb_lock) Clean up. rb_lock critical sections added in rpcrdma_ep_post_extra_recv() should have first been converted to use normal spin_lock now that the reply handler is a work queue. The backchannel set up code should use the appropriate helper instead of open-coding a rb_recv_bufs list add. Problem introduced by glib patch re-ordering on my part. Fixes: f531a5dbc451 ('xprtrdma: Pre-allocate backward rpc_rqst') Signed-off-by: Chuck Lever Tested-by: Devesh Sharma Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/backchannel.c | 6 +----- net/sunrpc/xprtrdma/verbs.c | 7 +++---- 2 files changed, 4 insertions(+), 9 deletions(-) commit abfb689711aaebd14d893236c6ea4bcdfb61e74c Author: Dan Carpenter Date: Thu Nov 5 11:39:52 2015 +0300 xprtrdma: checking for NULL instead of IS_ERR() The rpcrdma_create_req() function returns error pointers or success. It never returns NULL. Fixes: f531a5dbc451 ('xprtrdma: Pre-allocate backward rpc_rqst and send/receive buffers') Signed-off-by: Dan Carpenter Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/backchannel.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 38b95bcf122545db7035a06d79ec9e851be2e011 Author: Dan Carpenter Date: Thu Nov 5 11:37:08 2015 +0300 xprtrdma: clean up some curly braces It doesn't matter either way, but the curly braces were clearly intended here. It causes a Smatch warning. Signed-off-by: Dan Carpenter Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/verbs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 4b402d71d304aa627111fb9d746bb0a75c3989b9 Author: Jakub Kicinski Date: Thu Dec 17 14:18:44 2015 +0000 nfp: call netif_carrier_off() during init Netdevs default to carrier on, we should call netif_carrier_off() during initialization since we handle carrier state changes in the driver. Signed-off-by: Jakub Kicinski Reviewed-by: Rolf Neugebauer Signed-off-by: David S. Miller drivers/net/ethernet/netronome/nfp/nfp_net_common.c | 1 + 1 file changed, 1 insertion(+) commit 6462de8ca4d8000d91fbbdd610561cb8054f78a2 Merge: cc9da6c 6dd9a14 Author: David S. Miller Date: Fri Dec 18 14:43:39 2015 -0500 Merge branch 'l3mdev-accept' David Ahern says: ==================== net: Allow accepted sockets to be bound to l3mdev domain Allow accepted sockets to derive their sk_bound_dev_if setting from the l3mdev domain in which the packets originated. This version adds a sysctl to control whether the setting is inherited, making the functionality similar to sk_mark and its sysctl_tcp_fwmark_accept setting. This effectively allow a process to have a "VRF-global" listen socket, with child sockets bound to the VRF device in which the packet originated. A similar behavior can be achieved using sk_mark, but a solution using marks is incomplete as it does not handle duplicate addresses in different L3 domains/VRFs. Allowing sockets to inherit the sk_bound_dev_if from l3mdev domain provides a complete solution. ==================== Signed-off-by: David S. Miller commit 6dd9a14e92e54895e143f10fef4d0b9abe109aa9 Author: David Ahern Date: Wed Dec 16 13:20:44 2015 -0800 net: Allow accepted sockets to be bound to l3mdev domain Allow accepted sockets to derive their sk_bound_dev_if setting from the l3mdev domain in which the packets originated. A sysctl setting is added to control the behavior which is similar to sk_mark and sysctl_tcp_fwmark_accept. This effectively allow a process to have a "VRF-global" listen socket, with child sockets bound to the VRF device in which the packet originated. A similar behavior can be achieved using sk_mark, but a solution using marks is incomplete as it does not handle duplicate addresses in different L3 domains/VRFs. Allowing sockets to inherit the sk_bound_dev_if from l3mdev domain provides a complete solution. Signed-off-by: David Ahern Signed-off-by: David S. Miller Documentation/networking/ip-sysctl.txt | 8 ++++++++ include/net/inet_sock.h | 14 ++++++++++++++ include/net/netns/ipv4.h | 3 +++ net/ipv4/syncookies.c | 4 ++-- net/ipv4/sysctl_net_ipv4.c | 11 +++++++++++ net/ipv4/tcp_input.c | 2 +- net/ipv4/tcp_ipv4.c | 1 + net/ipv6/syncookies.c | 4 ++-- 8 files changed, 42 insertions(+), 5 deletions(-) commit 1a8524794fc7c70f44ac28e3a6e8fd637bc41f14 Author: David Ahern Date: Wed Dec 16 13:20:43 2015 -0800 net: l3mdev: Add master device lookup by index Add helper to lookup l3mdev master index given a device index. Signed-off-by: David Ahern Signed-off-by: David S. Miller include/net/l3mdev.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit cc9da6cc4f56e05cc9e591459fe0192727ff58b3 Author: Bjørn Mork Date: Wed Dec 16 16:44:38 2015 +0100 ipv6: addrconf: use stable address generator for ARPHRD_NONE Add a new address generator mode, using the stable address generator with an automatically generated secret. This is intended as a default address generator mode for device types with no EUI64 implementation. The new generator is used for ARPHRD_NONE interfaces initially, adding default IPv6 autoconf support to e.g. tun interfaces. If the addrgenmode is set to 'random', either by default or manually, and no stable secret is available, then a random secret is used as input for the stable-privacy address generator. The secret can be read and modified like manually configured secrets, using the proc interface. Modifying the secret will change the addrgen mode to 'stable-privacy' to indicate that it operates on a known secret. Existing behaviour of the 'stable-privacy' mode is kept unchanged. If a known secret is available when the device is created, then the mode will default to 'stable-privacy' as before. The mode can be manually set to 'random' but it will behave exactly like 'stable-privacy' in this case. The secret will not change. Cc: Hannes Frederic Sowa Cc: 吉藤英明 Signed-off-by: Bjørn Mork Acked-by: Hannes Frederic Sowa Signed-off-by: David S. Miller include/uapi/linux/if_link.h | 1 + net/ipv6/addrconf.c | 45 ++++++++++++++++++++++++++++++++++++++------ 2 files changed, 40 insertions(+), 6 deletions(-) commit 7208b997b726522cdbea61f53a82c763704c015a Author: Boris BREZILLON Date: Thu Dec 10 09:00:22 2015 +0100 mtd: nand: s3c2410: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Reviewed-by: Krzysztof Kozlowski Signed-off-by: Brian Norris drivers/mtd/nand/s3c2410.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) commit 7447a2b221cd4df3960e82478a4ee29312589611 Author: Daniel Vetter Date: Fri Dec 18 20:26:17 2015 +0100 drm/i915: Update DRIVER_DATE to 20151218 Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3eb064e4b0f423810562b8a7aef3ca0083152e90 Author: Boris BREZILLON Date: Thu Dec 10 09:00:30 2015 +0100 mtd: nand: update the documentation to reflect framework changes The MTD device is now directly embedded in the nand_chip struct. Update the mtdnand documentation to mention this aspect and fix the different examples. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris Documentation/DocBook/mtdnand.tmpl | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) commit 8cb964daeba8b626f8fbf779a50635684e42abdb Author: Arnd Bergmann Date: Fri Dec 18 15:37:37 2015 +0100 ila: add NETFILTER dependency The recently added generic ILA translation facility fails to build when CONFIG_NETFILTER is disabled: net/ipv6/ila/ila_xlat.c:229:20: warning: 'struct nf_hook_state' declared inside parameter list net/ipv6/ila/ila_xlat.c:235:27: error: array type has incomplete element type 'struct nf_hook_ops' static struct nf_hook_ops ila_nf_hook_ops[] __read_mostly = { This adds an explicit Kconfig dependency to avoid that case. Signed-off-by: Arnd Bergmann Fixes: 7f00feaf1076 ("ila: Add generic ILA translation facility") Signed-off-by: David S. Miller net/ipv6/Kconfig | 1 + 1 file changed, 1 insertion(+) commit f7d3d2f99eeaa9f5c111965b1516972f4fc5e449 Merge: 9f9499a 70f6d82 Author: Chris Mason Date: Fri Dec 18 11:11:10 2015 -0800 Merge branch 'freespace-tree' into for-linus-4.5 Signed-off-by: Chris Mason commit 960823a226b37eea01151d608636d09d1abac8f9 Author: Boris BREZILLON Date: Thu Dec 10 09:00:29 2015 +0100 mtd: nand: vf610: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/vf610_nfc.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit a3f5437788fde26f9354324cb711461bdc02c6e0 Author: Boris BREZILLON Date: Thu Dec 10 09:00:28 2015 +0100 mtd: nand: txx9ndfmc: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/txx9ndfmc.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 66c9595d499e9a10bee27bf4026d91452cc78568 Author: Boris BREZILLON Date: Thu Dec 10 09:00:27 2015 +0100 mtd: nand: tmio: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/tmio_nand.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 32e9f2d8dd83f30019915f8393a470b3ff3fadbe Author: Boris BREZILLON Date: Thu Dec 10 09:00:26 2015 +0100 mtd: nand: sunxi: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/sunxi_nand.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit 0324e6469ab056bef1ffd7c36833448ab1f3df8d Author: Boris BREZILLON Date: Thu Dec 10 09:00:24 2015 +0100 mtd: nand: sharpsl: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/sharpsl.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) commit 9c9eef89ec74433f00593938f8af5113383d898a Author: Boris BREZILLON Date: Thu Dec 10 09:00:23 2015 +0100 mtd: nand: sh_flctl: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/sh_flctl.c | 8 ++++---- include/linux/mtd/sh_flctl.h | 3 +-- 2 files changed, 5 insertions(+), 6 deletions(-) commit de9f56f9137b8a6bfaf9b9dcb7d297bf0b61ffbf Author: Boris BREZILLON Date: Thu Dec 10 09:00:21 2015 +0100 mtd: nand: r852: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/r852.c | 34 +++++++++++++++------------------- drivers/mtd/nand/r852.h | 1 - 2 files changed, 15 insertions(+), 20 deletions(-) commit 063294a36e8e8c2642b6c63a709d6792a609ec33 Author: Boris BREZILLON Date: Thu Dec 10 09:00:20 2015 +0100 mtd: nand: pxa3xx: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/pxa3xx_nand.c | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) commit a0260d21ac91c5deaeadf4d53a27b3f9f40cb77b Author: Boris BREZILLON Date: Thu Dec 10 09:00:19 2015 +0100 mtd: nand: plat: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/plat_nand.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 4e3b6d1701be50dfb33879a066bae16c627f5794 Author: Boris BREZILLON Date: Thu Dec 10 09:00:18 2015 +0100 mtd: nand: pasemi: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/pasemi_nand.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) commit 53cd2681e02bee59e433b20934bf71f4db5a87d8 Author: Boris BREZILLON Date: Thu Dec 10 09:00:17 2015 +0100 mtd: nand: orion: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/orion_nand.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 432420c0fc8d077c30900a4e90779cd7dca021da Author: Boris BREZILLON Date: Thu Dec 10 09:00:16 2015 +0100 mtd: nand: omap2: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/omap2.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 396a9c437bc0e884de58f58b4b4d7cce52181528 Author: Boris BREZILLON Date: Thu Dec 10 09:00:15 2015 +0100 mtd: nand: nuc900: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/nuc900_nand.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit ca921b537aea1731d0c14805452662eb5ac37fcb Author: Boris BREZILLON Date: Thu Dec 10 09:00:14 2015 +0100 mtd: nand: ndfc: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/ndfc.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) commit ed10f1655832de0c7e26d4c76ef1bad3bbf87b51 Author: Boris BREZILLON Date: Thu Dec 10 09:00:13 2015 +0100 mtd: nand: nandsim: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/nandsim.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit a008deb1655ca7301dd388237aa60f867d9f784c Author: Boris BREZILLON Date: Thu Dec 10 09:00:12 2015 +0100 mtd: nand: mxc: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/mxc_nand.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 5a9f23ffb6da3a6141ab58aeeb7470e0ec69f2ff Author: Boris BREZILLON Date: Thu Dec 10 09:00:11 2015 +0100 mtd: nand: mpc5121: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/mpc5121_nfc.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 0faf8c39c0580ecc0edfc2f5c932972ee3424935 Author: Boris BREZILLON Date: Thu Dec 10 09:00:10 2015 +0100 mtd: nand: lpc32xx: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/lpc32xx_mlc.c | 7 +++---- drivers/mtd/nand/lpc32xx_slc.c | 7 +++---- 2 files changed, 6 insertions(+), 8 deletions(-) commit d25cc7abb164cea73894934d6b699c465b0bedaf Author: Boris BREZILLON Date: Thu Dec 10 09:00:09 2015 +0100 mtd: nand: jz4740: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/jz4740_nand.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit fa100163d38ef8607652681fbe6f75491032610e Author: Boris BREZILLON Date: Thu Dec 10 09:00:08 2015 +0100 mtd: nand: hisi504: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/hisi504_nand.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit 2a690b25f6c770e70cc00357846f39327531c464 Author: Boris BREZILLON Date: Thu Dec 10 09:00:07 2015 +0100 mtd: nand: gpmi: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/gpmi-nand/gpmi-lib.c | 2 +- drivers/mtd/nand/gpmi-nand/gpmi-nand.c | 23 +++++++++++------------ drivers/mtd/nand/gpmi-nand/gpmi-nand.h | 1 - 3 files changed, 12 insertions(+), 14 deletions(-) commit dc2948ca66e4133ccac1948dd7631072e84e996d Author: Boris BREZILLON Date: Thu Dec 10 09:00:06 2015 +0100 mtd: nand: gpio: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/gpio.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) commit bdf3a5550152606c7541094e14f892c2f4825856 Author: Boris BREZILLON Date: Thu Dec 10 09:00:05 2015 +0100 mtd: nand: fsmc: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/fsmc_nand.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) commit 478d51f0213b9a4b0e605481aa3c14f4a084df4f Author: Boris BREZILLON Date: Thu Dec 10 09:00:04 2015 +0100 mtd: nand: fsl_upm: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/fsl_upm.c | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) commit 5e9fb93dd3782eba5e6f282e01f4fc577f2d653a Author: Boris BREZILLON Date: Thu Dec 10 09:00:03 2015 +0100 mtd: nand: fsl_ifc: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/fsl_ifc_nand.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) commit 18ba50c3c0cc423019f8ed4b1c07e7a74203b289 Author: Boris BREZILLON Date: Thu Dec 10 09:00:02 2015 +0100 mtd: nand: fsl_elbc: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/fsl_elbc_nand.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) commit 5d07379681a3b4b6b1543388cb0c4b5148292351 Author: Boris BREZILLON Date: Thu Dec 10 09:00:01 2015 +0100 mtd: nand: docg4: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/docg4.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) commit b0c423c7b630ecfff1e12f7bd7c3c7f0556bebb1 Author: Boris BREZILLON Date: Thu Dec 10 09:00:00 2015 +0100 mtd: nand: diskonchip: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/diskonchip.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit a5cfb4db89bc73e9d35b8a348133fa0b4b99d81e Author: Boris BREZILLON Date: Thu Dec 10 08:59:58 2015 +0100 mtd: nand: davinci: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/davinci_nand.c | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) commit 2afd14f9270e4161a1f2528e75ff517c2d23d2f8 Author: Boris BREZILLON Date: Thu Dec 10 08:59:56 2015 +0100 mtd: nand: cmx270: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon [Brian: dropped a defunct comment] Signed-off-by: Brian Norris drivers/mtd/nand/cmx270_nand.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) commit 8cd65d1a63d272a20bcd51b459b0550da53a80e5 Author: Boris BREZILLON Date: Thu Dec 10 08:59:57 2015 +0100 mtd: nand: cs553x: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/cs553x_nand.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) commit e787dfd1be424e0546d05d6819c8ab9c222ec248 Author: Boris BREZILLON Date: Thu Dec 10 08:59:55 2015 +0100 mtd: nand: cafe: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/cafe_nand.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit f1c4c9992b1f088ab42ff9fa483ad9eed411e421 Author: Boris BREZILLON Date: Thu Dec 10 08:59:54 2015 +0100 mtd: nand: brcm: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/brcmnand/brcmnand.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit 7085a3bee3a20e3be07a103dd1f1cd997375527a Author: Boris BREZILLON Date: Thu Dec 10 08:59:53 2015 +0100 mtd: nand: bf5xx: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/bf5xx_nand.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit ff70f354a960f01afb2e0d4313bd664b88b1532f Author: Boris BREZILLON Date: Thu Dec 10 08:59:51 2015 +0100 mtd: nand: au1550nd: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/au1550nd.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) commit ac01efebb1075a51a2803237159a440b71383117 Author: Boris BREZILLON Date: Thu Dec 10 08:59:50 2015 +0100 mtd: nand: atmel: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/atmel_nand.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit 187d6ada2a129b3829c81b3e4f4bdf660859bb11 Author: Boris BREZILLON Date: Thu Dec 10 08:59:49 2015 +0100 mtd: nand: ams-delta: use the mtd instance embedded in struct nand_chip struct nand_chip now embeds an mtd device. Make use of this mtd instance instead of allocating our own. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/ams-delta.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit 4578ea9a9989d19633b005b9bdc23729ceb58a1b Author: Boris BREZILLON Date: Thu Dec 10 08:59:48 2015 +0100 mtd: nand: omap2: create and use mtd_to_omap() Define and use mtd_to_omap() instead of container_of(); Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/omap2.c | 55 ++++++++++++++++++------------------------------ 1 file changed, 21 insertions(+), 34 deletions(-) commit faee6c358b0f1906f0f653a9d9f8beb5ebef174f Author: Boris BREZILLON Date: Thu Dec 10 08:59:47 2015 +0100 mtd: nand: nuc900: create and use mtd_to_nuc900() Create and use mtd_to_nuc900() instead of direct container_of() calls. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/nuc900_nand.c | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) commit 277af429fb40cf484c4a76c0b4cde2afc3e0c3d0 Author: Boris BREZILLON Date: Thu Dec 10 08:59:46 2015 +0100 mtd: nand: fsmc: create and use mtd_to_fsmc() Create and use mtd_to_fsmc() to avoid duplication of container_of(mtd, struct fsmc_nand_data, mtd) calls. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/fsmc_nand.c | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) commit ce7f28531fe05fcabc8ccff8b6dc9b4b296a811e Author: Arnd Bergmann Date: Fri Dec 18 14:15:17 2015 +0100 mtd: omap_elm: print interrupt resource using %pr When CONFIG_LPAE is set on ARM, resource_size_t is 64-bit wide and we get a warning about an incorrect format string for printing the interrupt number in elm_probe: drivers/mtd/nand/omap_elm.c: In function 'elm_probe': drivers/mtd/nand/omap_elm.c:417:23: warning: format '%i' expects argument of type 'int', but argument 3 has type 'resource_size_t {aka long long unsigned int}' [-Wformat=] This patch avoids the type mismatch by printing the interrupt as a resource using the %pr format string. Signed-off-by: Arnd Bergmann Signed-off-by: Brian Norris drivers/mtd/nand/omap_elm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 774926641d1968a4839da3a6ac79d914742aac2f Author: Takuya Yoshikawa Date: Fri Dec 18 18:54:49 2015 +0900 KVM: x86: MMU: Use clear_page() instead of init_shadow_page_table() Not just in order to clean up the code, but to make it faster by using enhanced instructions: the initialization became 20-30% faster on our testing machine. Signed-off-by: Takuya Yoshikawa Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) commit e238659ddd889a5d3fbdfa1a2ab120f90404bf41 Author: Mika Kuoppala Date: Fri Dec 18 16:14:53 2015 +0200 drm/i915/skl: Default to noncoherent access up to F0 The workarounds for disabling hdc invalidation and also forcing context to be non coherent, are advised to be used up until rev D0. However as it was found that rev F0, without the WaForceEnableNonCoherent might system hang if the mesa tried to use coherent mode. As these two workarounds are about non coherent access, are grouped in scope and they point the same HSD, increase the scope of both to set default behaviour to non coherent access. References: HSD: gen9lp/2131413 References: http://lists.freedesktop.org/archives/mesa-dev/2015-November/101515.html Cc: Ben Widawsky Cc: Francisco Jerez Reviewed-by: Francisco Jerez Signed-off-by: Mika Kuoppala Link: http://patchwork.freedesktop.org/patch/msgid/1450448093-22906-1-git-send-email-mika.kuoppala@intel.com drivers/gpu/drm/i915/intel_ringbuffer.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 6bf024e69333f9371c634aa4cf04c95da86697f4 Author: Johannes Weiner Date: Thu Dec 17 17:19:57 2015 -0500 cgroup: put controller Kconfig options in meaningful order To make it easier to quickly find what's needed list the basic resource controllers of cgroup2 first - io, memory, cpu - while pushing the more exotic and/or legacy controllers to the bottom. tj: Removed spurious "&& CGROUPS" from CGROUP_PERF as suggested by Li. Signed-off-by: Johannes Weiner Acked-by: Zefan Li Signed-off-by: Tejun Heo init/Kconfig | 214 +++++++++++++++++++++++++++++------------------------------ 1 file changed, 107 insertions(+), 107 deletions(-) commit a0166ec4b0996b259f24a831c6ca8d06ecd7e59f Author: Johannes Weiner Date: Thu Dec 17 17:19:56 2015 -0500 cgroup: clean up the kernel configuration menu nomenclature The config options for the different cgroup controllers use various terms: resource controller, cgroup subsystem, etc. Simplify this to "controller", which is clear enough in the cgroup context. Signed-off-by: Johannes Weiner Signed-off-by: Tejun Heo init/Kconfig | 65 ++++++++++++++++++++++++------------------------------------ 1 file changed, 26 insertions(+), 39 deletions(-) commit 0aff8a894a2be4c22e6414db33061153a4b35bc9 Author: Dan Carpenter Date: Thu Oct 22 07:09:05 2015 -0200 [media] uvcvideo: small cleanup in uvc_video_clock_update() Smatch is not smart enough to see that "&stream->clock.lock" and "&clock->lock" are the same thing so it complains about the locking here. Let's make it more consistent. Signed-off-by: Dan Carpenter Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/uvc/uvc_video.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1ab8c3fc750321726313b222230343de897744b1 Author: Anton V. Shokurov Date: Sun Oct 18 19:01:26 2015 -0200 [media] uvcvideo: Fix reading the current exposure value of UVC V4L2_CID_EXPOSURE_ABSOLUTE property does not return an updated value when autoexposure (V4L2_CID_EXPOSURE_AUTO) is turned on. This patch fixes this issue by adding the UVC_CTRL_FLAG_AUTO_UPDATE flag. Tested on a C920 camera. Signed-off-by: Anton V. Shokurov Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/uvc/uvc_ctrl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f0b0faff78c2c2e8efe843de55405a1f0470b8c4 Author: Mauro Carvalho Chehab Date: Fri Dec 18 14:22:21 2015 -0200 [media] cx23885-dvb: move initialization of a8293_pdata Smatch complains about where the au8293_data is placed: drivers/media/pci/cx23885/cx23885-dvb.c:2174 dvb_register() info: 'a8293_pdata' is not actually initialized (unreached code). It is not actually expected to have such initialization at switch { foo = bar; case: ... } Not really sure how gcc does that, but this is something that I would expect that different compilers would do different things. David Howells checked with the compiler people: it's not really expected to initialise as expected. So, move the initialization outside the switch(), making smatch to shut up one warning. Acked-by: David Howells Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cx23885/cx23885-dvb.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit d2c7db854ed07548ca7d01118eee67fd6a78a2be Author: Jeeja KP Date: Fri Dec 18 15:11:58 2015 +0530 ASoC: Intel: Skylake: Fix to set pipe state to invalid when deleting When pipeline is deleted, set the pipeline state to invalid state. Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-messages.c | 2 ++ 1 file changed, 2 insertions(+) commit a4386450bf08cd968bf41ff30a92caf74262c9d6 Author: Jeeja KP Date: Fri Dec 18 15:11:57 2015 +0530 ASoC: Intel: Skylake: Clear stream registers before stream setup This patch adds clean up routine to clear the stream registers and calls this routine before setting up stream registers. Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-sst-cldma.c | 38 ++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 15 deletions(-) commit 6cc4b6e801c725321e9f63ca7c2d00af8df24699 Author: Bob Peterson Date: Fri Dec 4 13:04:34 2015 -0600 GFS2: Don't do glock put on when inode creation fails Currently the error path of function gfs2_inode_lookup calls function gfs2_glock_put corresponding to an earlier call to gfs2_glock_get for the inode glock. That's wrong because the error path also calls iget_failed() which eventually calls iput, which eventually calls gfs2_evict_inode, which does another gfs2_glock_put. This double-put can cause the glock reference count to get off. Signed-off-by: Bob Peterson fs/gfs2/inode.c | 1 - 1 file changed, 1 deletion(-) commit 5ea31bc0a6524b4fee8dc9ae8005d4a114a79812 Author: Bob Peterson Date: Fri Dec 4 12:57:00 2015 -0600 GFS2: Always use iopen glock for gl_deletes Before this patch, when function try_rgrp_unlink queued a glock for delete_work to reclaim the space, it used the inode glock to do so. That's different from the iopen callback which uses the iopen glock for the same purpose. We should be consistent and always use the iopen glock. This may also save us reference counting problems with the inode glock, since clear_glock does an extra glock_put() for the inode glock. Signed-off-by: Bob Peterson fs/gfs2/rgrp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 783013c0f5c7263a31703b15aeebbac279b4d4fe Author: Bob Peterson Date: Fri Dec 4 10:19:14 2015 -0600 GFS2: Release iopen glock in gfs2_create_inode error cases Some error cases in gfs2_create_inode were not unlocking the iopen glock, getting the reference count off. This adds the proper unlock. The error logic in function gfs2_create_inode was also convoluted, so this patch simplifies it. It also takes care of a bug in which gfs2_qa_delete() was not called in an error case. Signed-off-by: Bob Peterson fs/gfs2/inode.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) commit ee530beafeca9826b2086eab053312b182c09669 Author: Bob Peterson Date: Mon Dec 7 15:13:28 2015 -0600 GFS2: Truncate address space mapping when deleting an inode In function gfs2_delete_inode() we write and flush the mapping for a glock, among other things. We truncate the mapping for the inode, but we never truncate the mapping for the glock. This patch makes it also truncate the metamapping. This avoid cases where the glock is reused by another process who is trying to recreate an inode in its place using the same block. Signed-off-by: Bob Peterson Acked-by: Steven Whitehouse fs/gfs2/super.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 86d067a797d4e8546a7c92b985f31e8cd3ec39ad Author: Bob Peterson Date: Mon Dec 7 15:10:42 2015 -0600 GFS2: Wait for iopen glock dequeues This patch changes every glock_dq for iopen glocks into a dq_wait. This makes sure that iopen glocks do not outlive the inode itself. In turn, that ensures that anyone trying to unlink the glock will be able to find the inode when it receives a remote iopen callback. Signed-off-by: Bob Peterson Acked-by: Steven Whitehouse fs/gfs2/inode.c | 3 ++- fs/gfs2/super.c | 8 +++++--- 2 files changed, 7 insertions(+), 4 deletions(-) commit fcf589581b3b96fbc3abef716553a182e1156d60 Author: Keerthy Date: Mon Dec 14 12:06:57 2015 +0530 ARM: dts: DRA7-EVM: Add regulator-allow-bypass property for ldo9 Add regulator-allow-bypass property for ldo9. Signed-off-by: Keerthy Signed-off-by: Tony Lindgren arch/arm/boot/dts/dra7-evm.dts | 1 + 1 file changed, 1 insertion(+) commit 6686f744df70c46cff061d0120616eff78dd04f4 Author: Keerthy Date: Mon Dec 14 12:06:56 2015 +0530 ARM: dts: DRA72-EVM: Add regulator-allow-bypass property for ldo1 and ldo2 Add regulator-allow-bypass property for ldo1 and ldo2. Signed-off-by: Keerthy Signed-off-by: Tony Lindgren arch/arm/boot/dts/dra72-evm.dts | 2 ++ 1 file changed, 2 insertions(+) commit 2acb6c3ef81486781ffe08145c17b7dc1904e741 Author: Vignesh R Date: Fri Dec 11 09:40:00 2015 +0530 ARM: dts: AM4372: add entry for qspi mmap region Add qspi memory mapped region entries for AM43xx based SoCs. Also, update the binding documents for the controller to document this change. Acked-by: Rob Herring Signed-off-by: Vignesh R Signed-off-by: Tony Lindgren Documentation/devicetree/bindings/spi/ti_qspi.txt | 5 +++-- arch/arm/boot/dts/am4372.dtsi | 4 +++- 2 files changed, 6 insertions(+), 3 deletions(-) commit 1929d0b5a821ed5bec3d1e683e63851fc51d05ee Author: Vignesh R Date: Fri Dec 11 09:39:59 2015 +0530 ARM: dts: DRA7: add entry for qspi mmap region Add qspi memory mapped region entries for DRA7xx based SoCs. Also, update the binding documents for the controller to document this change. Signed-off-by: Vignesh R Acked-by: Rob Herring Signed-off-by: Tony Lindgren Documentation/devicetree/bindings/spi/ti_qspi.txt | 17 +++++++++++++++++ arch/arm/boot/dts/dra7.dtsi | 6 ++++-- 2 files changed, 21 insertions(+), 2 deletions(-) commit c60fdf8587aef7d8907472242227735f1d5117b8 Author: Julia Lawall Date: Sat Dec 12 17:36:39 2015 +0100 hwmon: (nct6683,nct6775) constify sensor_template_group structures The sensor_template_group structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Guenter Roeck drivers/hwmon/nct6683.c | 11 ++++++----- drivers/hwmon/nct6775.c | 11 ++++++----- 2 files changed, 12 insertions(+), 10 deletions(-) commit 96818b5842fe8fc38aec74abcb3f8eb4da439bc7 Author: Huang Rui Date: Thu Dec 10 11:56:11 2015 +0800 MAINTAINERS: change the maintainer of fam15h_power driver Andreas Herrmann won't take the maintainer of fam15h_power driver. I will take it and appreciate him for the great contributions on this driver. Signed-off-by: Huang Rui Acked-by: Andreas Herrmann Cc: Borislav Petkov Cc: Aravind Gopalakrishnan [groeck: Fixed typo in CREDITS] Signed-off-by: Guenter Roeck CREDITS | 8 ++++++++ MAINTAINERS | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) commit eff2a94598ee0c0c7f293a1d3d1999a5e887797a Author: Huang Rui Date: Thu Dec 10 11:56:10 2015 +0800 hwmon: (fam15h_power) Add support for AMD new 15h processors AMD Family 15h Models 70h-7fh processors also support TDP power reporting interface. Signed-off-by: Huang Rui Signed-off-by: Guenter Roeck drivers/hwmon/fam15h_power.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 8d28cd1b1f56f765dc691eeedf853d41f7aaafd3 Author: Guenter Roeck Date: Sat Aug 22 00:49:37 2015 -0700 hwmon: (pmbus) Add client driver for LTC3815 LTC3815 is a Monolithic Synchronous DC/DC Step-Down Converter. Cc: Michael Jones Signed-off-by: Guenter Roeck Documentation/hwmon/ltc3815 | 61 ++++++++++++ drivers/hwmon/pmbus/Kconfig | 10 ++ drivers/hwmon/pmbus/Makefile | 1 + drivers/hwmon/pmbus/ltc3815.c | 215 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 287 insertions(+) commit 2ff44072e34d5b6567d3d59b507e54c73b084db7 Author: Guenter Roeck Date: Sat Nov 7 15:54:33 2015 -0800 hwmon: (htu21) Remove driver HTU21 is now supported by IIO, and can be instantiated as hwmon driver using the iio-hwmon bridge. An explicit hwmon driver is no longer needed. Cc: William Markezana Cc: Ludovic Tancerel Cc: Jonathan Cameron Reviewed-by: Jean Delvare Signed-off-by: Guenter Roeck Documentation/hwmon/htu21 | 46 ------------ drivers/hwmon/Kconfig | 10 --- drivers/hwmon/Makefile | 1 - drivers/hwmon/htu21.c | 174 ---------------------------------------------- 4 files changed, 231 deletions(-) commit aee5f29e5afa094e07cc5dabbef460d747b528d4 Author: Mauro Carvalho Chehab Date: Fri Dec 18 14:15:56 2015 -0200 [media] cx23885-dvb: initialize a8293_pdata As reported by smatch: drivers/media/pci/cx23885/cx23885-dvb.c:2174 dvb_register() info: 'a8293_pdata' is not actually initialized (unreached code). Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cx23885/cx23885-dvb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b62ef37c6e2f30d1b5ce3889212050d738c04885 Author: Mauro Carvalho Chehab Date: Fri Dec 18 14:11:31 2015 -0200 [media] videobuf2: avoid memory leak on errors As reported by smatch: drivers/media/v4l2-core/videobuf2-core.c:2415 __vb2_init_fileio() warn: possible memory leak of 'fileio' While here, avoid the usage of sizeof(struct foo_struct). Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/videobuf2-core.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 821485dc2ad665f136c57ee589bf7a8210160fe2 Author: Chris Wilson Date: Fri Dec 11 11:32:59 2015 +0000 drm/i915: Only spin whilst waiting on the current request Limit busywaiting only to the request currently being processed by the GPU. If the request is not currently being processed by the GPU, there is a very low likelihood of it being completed within the 2 microsecond spin timeout and so we will just be wasting CPU cycles. v2: Check for logical inversion when rebasing - we were incorrectly checking for this request being active, and instead busywaiting for when the GPU was not yet processing the request of interest. v3: Try another colour for the seqno names. v4: Another colour for the function names. v5: Remove the forced coherency when checking for the active request. On reflection and plenty of recent experimentation, the issue is not a cache coherency problem - but an irq/seqno ordering problem (timing issue). Here, we do not need the w/a to force ordering of the read with an interrupt. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Cc: "Rogozhkin, Dmitry V" Cc: Daniel Vetter Cc: Tvrtko Ursulin Cc: Eero Tamminen Cc: "Rantala, Valtteri" Cc: stable@vger.kernel.org Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449833608-22125-4-git-send-email-chris@chris-wilson.co.uk drivers/gpu/drm/i915/i915_drv.h | 27 +++++++++++++++++++-------- drivers/gpu/drm/i915/i915_gem.c | 8 +++++++- 2 files changed, 26 insertions(+), 9 deletions(-) commit ca5b721e238226af1d767103ac852aeb8e4c0764 Author: Chris Wilson Date: Fri Dec 11 11:32:58 2015 +0000 drm/i915: Limit the busy wait on requests to 5us not 10ms! When waiting for high frequency requests, the finite amount of time required to set up the irq and wait upon it limits the response rate. By busywaiting on the request completion for a short while we can service the high frequency waits as quick as possible. However, if it is a slow request, we want to sleep as quickly as possible. The tradeoff between waiting and sleeping is roughly the time it takes to sleep on a request, on the order of a microsecond. Based on measurements of synchronous workloads from across big core and little atom, I have set the limit for busywaiting as 10 microseconds. In most of the synchronous cases, we can reduce the limit down to as little as 2 miscroseconds, but that leaves quite a few test cases regressing by factors of 3 and more. The code currently uses the jiffie clock, but that is far too coarse (on the order of 10 milliseconds) and results in poor interactivity as the CPU ends up being hogged by slow requests. To get microsecond resolution we need to use a high resolution timer. The cheapest of which is polling local_clock(), but that is only valid on the same CPU. If we switch CPUs because the task was preempted, we can also use that as an indicator that the system is too busy to waste cycles on spinning and we should sleep instead. __i915_spin_request was introduced in commit 2def4ad99befa25775dd2f714fdd4d92faec6e34 [v4.2] Author: Chris Wilson Date: Tue Apr 7 16:20:41 2015 +0100 drm/i915: Optimistically spin for the request completion v2: Drop full u64 for unsigned long - the timer is 32bit wraparound safe, so we can use native register sizes on smaller architectures. Mention the approximate microseconds units for elapsed time and add some extra comments describing the reason for busywaiting. v3: Raise the limit to 10us v4: Now 5us. Reported-by: Jens Axboe Link: https://lkml.org/lkml/2015/11/12/621 Reviewed-by: Tvrtko Ursulin Cc: "Rogozhkin, Dmitry V" Cc: Daniel Vetter Cc: Tvrtko Ursulin Cc: Eero Tamminen Cc: "Rantala, Valtteri" Cc: stable@vger.kernel.org Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449833608-22125-3-git-send-email-chris@chris-wilson.co.uk drivers/gpu/drm/i915/i915_gem.c | 47 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) commit 91b0c352ace9afec1fb51590c7b8bd60e0eb9fbd Author: Chris Wilson Date: Fri Dec 11 11:32:57 2015 +0000 drm/i915: Break busywaiting for requests on pending signals The busywait in __i915_spin_request() does not respect pending signals and so may consume the entire timeslice for the task instead of returning to userspace to handle the signal. In the worst case this could cause a delay in signal processing of 20ms, which would be a noticeable jitter in cursor tracking. If a higher resolution signal was being used, for example to provide fairness of a server timeslices between clients, we could expect to detect some unfairness between clients (i.e. some windows not updating as fast as others). This issue was noticed when inspecting a report of poor interactivity resulting from excessively high __i915_spin_request usage. Fixes regression from commit 2def4ad99befa25775dd2f714fdd4d92faec6e34 [v4.2] Author: Chris Wilson Date: Tue Apr 7 16:20:41 2015 +0100 drm/i915: Optimistically spin for the request completion v2: Try to assess the impact of the bug Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Cc: Jens Axboe Cc; "Rogozhkin, Dmitry V" Cc: Daniel Vetter Cc: Tvrtko Ursulin Cc: Eero Tamminen Cc: "Rantala, Valtteri" Cc: stable@vger.kernel.org Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449833608-22125-2-git-send-email-chris@chris-wilson.co.uk drivers/gpu/drm/i915/i915_gem.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit 11c7a6c5a3232e2ff1127d80d609daa95df5d5d4 Merge: 3f93c64 e324654 Author: Arnd Bergmann Date: Fri Dec 18 17:07:52 2015 +0100 Merge branch 'treewide/cleanup' into next/multiplatform The realview multiplatform series has a trivial conflict with one of the treewide cleanups, let's just merge that in to avoid having to resolve this later. * treewide/cleanup: ARM: use "depends on" for SoC configs instead of "if" after prompt ARM/clocksource: use automatic DT probing for ux500 PRCMU ARM: use const and __initconst for smp_operations ARM: hisi: do not export smp_operations structures Conflicts: arch/arm/mach-integrator/Kconfig commit 58e1ba3ce6b2c8f4933525d8bb939605add22c83 Author: Hans Verkuil Date: Fri Nov 20 09:40:14 2015 -0200 [media] videobuf2-core: fix plane_sizes handling in VIDIOC_CREATE_BUFS The handling of q->plane_sizes was wrong in vb2_core_create_bufs(). The q->plane_sizes array was global and it was overwritten by create_bufs. So if reqbufs was called with e.g. size 100000 then q->plane_sizes[0] would be set to 100000. If create_bufs was called afterwards with size 200000, then q->plane_sizes[0] would be overwritten with the new value. Calling create_bufs again for size 100000 would cause an error since 100000 is now less than q->plane_sizes[0]. This patch fixes this problem by 1) removing q->plane_sizes and using the vb->planes[].length field instead, and 2) by introducing a min_length field in struct vb2_plane. This field is set to the plane size as returned by the queue_setup op and is the minimum required plane size. So user pointers or dmabufs should all be at least this size. Signed-off-by: Hans Verkuil Reported-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/videobuf2-core.c | 39 +++++++++++++++++--------------- include/media/videobuf2-core.h | 4 +++- 2 files changed, 24 insertions(+), 19 deletions(-) commit 20eedf0e16918069241ec16b1bf003325016ed6e Author: Hans Verkuil Date: Fri Nov 20 09:36:49 2015 -0200 [media] videobuf2-core: call __setup_offsets before buf_init() Ensure that the offsets are correct before buf_init() is called. As a consequence the __setup_offsets() function now sets up the offsets for the given buffer instead of for all new buffers. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/videobuf2-core.c | 42 ++++++++++++-------------------- 1 file changed, 16 insertions(+), 26 deletions(-) commit 3f93c644c92db1abb6149da712713132e0b37cfc Author: Arnd Bergmann Date: Fri Dec 18 17:01:58 2015 +0100 ARM: realview: build realview-dt SMP support only when used The platsmp-dt.c file does not build when CONFIG_SMP is disabled: platsmp-dt.c:84:2: error: unknown field 'smp_prepare_cpus' specified in initializer This changes the Makefile to build it conditionally on CONFIG_SMP. The legacy platsmp.c file is only used for ATAGS based builds, so we can move it into the CONFIG_ATAGS conditional. Signed-off-by: Arnd Bergmann arch/arm/mach-realview/Makefile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit e32f856ab29e9369c055e6b7f0e554c79341b1c6 Author: Hans Verkuil Date: Fri Nov 20 09:31:11 2015 -0200 [media] videobuf2-core: fill in q->bufs[vb->index] before buf_init() Fill in q->bufs[vb->index] before the call to buf_init: it makes sense that this is initialized correctly. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/videobuf2-core.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 489648afcd309bb84567b59e140d9cdeddecb356 Author: Hans Verkuil Date: Fri Nov 20 09:25:52 2015 -0200 [media] videobuf2-core: move __setup_lengths into __vb2_queue_alloc() Rather than setting up the lengths at the end, set them up when the vb2_buffer is allocated. This also ensures that buf_init() sees the right length values. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/videobuf2-core.c | 24 +++--------------------- 1 file changed, 3 insertions(+), 21 deletions(-) commit 10cc3b1e12964ae71aefefb2c2b61304d2264cac Author: Hans Verkuil Date: Fri Nov 20 08:32:00 2015 -0200 [media] videobuf2-core: fill_user_buffer and copy_timestamp should return void This ops can never fail, so make these void functions. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/videobuf2-core.c | 27 ++++++++++++--------------- drivers/media/v4l2-core/videobuf2-v4l2.c | 12 +++++------- include/media/videobuf2-core.h | 17 ++++++++++++++--- 3 files changed, 31 insertions(+), 25 deletions(-) commit df868ea1c850d8a80bc2643a08e49ae62cca7bbc Author: Hans Verkuil Date: Fri Nov 20 08:17:23 2015 -0200 [media] videobuf2-core.c: update module description This module is no longer V4L2 specific, so update the module description accordingly. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/videobuf2-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit af3bac1a7c8a21ff4f4edede397cba8e3f8ee503 Author: Junghak Sung Date: Tue Nov 3 08:16:42 2015 -0200 [media] media: videobuf2: Move vb2_fileio_data and vb2_thread to core part Move things related with vb2 file I/O and vb2_thread without doing any functional changes. After that, videobuf2-internal.h is removed because it is not necessary any more. Signed-off-by: Junghak Sung Signed-off-by: Geunyoung Kim Acked-by: Seung-Woo Kim Acked-by: Inki Dae Acked-by: Hans Verkuil Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/videobuf2-core.c | 770 ++++++++++++++++++++++++++- drivers/media/v4l2-core/videobuf2-internal.h | 161 ------ drivers/media/v4l2-core/videobuf2-v4l2.c | 623 +--------------------- include/media/videobuf2-core.h | 43 ++ include/media/videobuf2-v4l2.h | 38 +- 5 files changed, 817 insertions(+), 818 deletions(-) commit 70433a152f0058404afb5496a9329e4e26b127df Author: Junghak Sung Date: Tue Nov 3 08:16:41 2015 -0200 [media] media: videobuf2: Refactor vb2_fileio_data and vb2_thread Replace v4l2-stuffs with common things in struct vb2_fileio_data and vb2_thread(). Signed-off-by: Junghak Sung Signed-off-by: Geunyoung Kim Acked-by: Seung-Woo Kim Acked-by: Inki Dae Acked-by: Hans Verkuil Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/videobuf2-v4l2.c | 104 +++++++++++++++---------------- 1 file changed, 49 insertions(+), 55 deletions(-) commit dcbc216d33e99692276f0eb9ea508f66df4075bf Author: Junghak Sung Date: Tue Nov 3 08:16:40 2015 -0200 [media] media: videobuf2: last_buffer_queued is set at fill_v4l2_buffer() The location in which last_buffer_queued is set is moved to fill_v4l2_buffer(). So, __vb2_perform_fileio() can use vb2_core_dqbuf() instead of vb2_internal_dqbuf(). Signed-off-by: Junghak Sung Signed-off-by: Geunyoung Kim Acked-by: Seung-Woo Kim Acked-by: Inki Dae Acked-by: Hans Verkuil Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/videobuf2-v4l2.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 49d8ab9feaf20e7247edfdb36ce9ffa8db6b5f19 Author: Junghak Sung Date: Tue Nov 3 08:16:39 2015 -0200 [media] media: videobuf2: Separate vb2_poll() Separate vb2_poll() into core and v4l2 part. Signed-off-by: Junghak Sung Signed-off-by: Geunyoung Kim Acked-by: Seung-Woo Kim Acked-by: Inki Dae Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/videobuf2-v4l2.c | 93 ++++++++++++++++++++------------ 1 file changed, 59 insertions(+), 34 deletions(-) commit 959c3ef336fc363e522611812dd1d00443706dec Author: Junghak Sung Date: Tue Nov 3 08:16:38 2015 -0200 [media] media: videobuf2: Add copy_timestamp to struct vb2_queue Add copy_timestamp to struct vb2_queue as a flag set if vb2-core should copy timestamps. Signed-off-by: Junghak Sung Signed-off-by: Geunyoung Kim Acked-by: Seung-Woo Kim Acked-by: Inki Dae Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/videobuf2-core.c | 2 +- drivers/media/v4l2-core/videobuf2-v4l2.c | 31 +++++++++++++------------------ include/media/videobuf2-core.h | 4 +++- 3 files changed, 17 insertions(+), 20 deletions(-) commit 8c5eb925ac16be05f03fc37c7562c65bdb7718b1 Author: Linus Walleij Date: Fri Dec 18 14:32:16 2015 +0100 ARM: realview: select apropriate targets Now that we have multiplatform support, let the RealView defconfigs select all the RealView boards so we boot out of the box like before. This updates both defconfigs. Cc: Arnd Bergmann Signed-off-by: Linus Walleij Signed-off-by: Arnd Bergmann arch/arm/configs/realview-smp_defconfig | 9 +++++++++ arch/arm/configs/realview_defconfig | 8 ++++++++ 2 files changed, 17 insertions(+) commit d6dd645eae76eeb42cb47d9da69cd3f56b3f2cb6 Author: Junghak Sung Date: Tue Nov 3 08:16:37 2015 -0200 [media] media: videobuf2: Move timestamp to vb2_buffer Move timestamp from struct vb2_v4l2_buffer to struct vb2_buffer for common use, and change its type to u64 in order to handling y2038 problem. This patch also includes all device drivers' changes related to this restructuring. Signed-off-by: Junghak Sung Signed-off-by: Geunyoung Kim Acked-by: Seung-Woo Kim Acked-by: Inki Dae Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/input/touchscreen/sur40.c | 2 +- drivers/media/dvb-frontends/rtl2832_sdr.c | 2 +- drivers/media/pci/cobalt/cobalt-irq.c | 2 +- drivers/media/pci/cx23885/cx23885-core.c | 2 +- drivers/media/pci/cx23885/cx23885-video.c | 2 +- drivers/media/pci/cx25821/cx25821-video.c | 2 +- drivers/media/pci/cx88/cx88-core.c | 2 +- drivers/media/pci/dt3155/dt3155.c | 2 +- drivers/media/pci/netup_unidvb/netup_unidvb_core.c | 2 +- drivers/media/pci/saa7134/saa7134-core.c | 2 +- drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c | 2 +- drivers/media/pci/solo6x10/solo6x10-v4l2.c | 2 +- drivers/media/pci/sta2x11/sta2x11_vip.c | 2 +- drivers/media/pci/tw68/tw68-video.c | 2 +- drivers/media/platform/am437x/am437x-vpfe.c | 2 +- drivers/media/platform/blackfin/bfin_capture.c | 2 +- drivers/media/platform/coda/coda-bit.c | 6 +++--- drivers/media/platform/coda/coda.h | 2 +- drivers/media/platform/davinci/vpbe_display.c | 2 +- drivers/media/platform/davinci/vpif_capture.c | 2 +- drivers/media/platform/davinci/vpif_display.c | 6 +++--- drivers/media/platform/exynos-gsc/gsc-m2m.c | 4 ++-- drivers/media/platform/exynos4-is/fimc-capture.c | 2 +- drivers/media/platform/exynos4-is/fimc-isp-video.c | 2 +- drivers/media/platform/exynos4-is/fimc-lite.c | 2 +- drivers/media/platform/exynos4-is/fimc-m2m.c | 2 +- drivers/media/platform/m2m-deinterlace.c | 2 +- drivers/media/platform/marvell-ccic/mcam-core.c | 2 +- drivers/media/platform/mx2_emmaprp.c | 2 +- drivers/media/platform/omap3isp/ispvideo.c | 2 +- drivers/media/platform/rcar_jpu.c | 2 +- drivers/media/platform/s3c-camif/camif-capture.c | 2 +- drivers/media/platform/s5p-g2d/g2d.c | 2 +- drivers/media/platform/s5p-jpeg/jpeg-core.c | 4 ++-- drivers/media/platform/s5p-mfc/s5p_mfc.c | 4 ++-- drivers/media/platform/sh_veu.c | 2 +- drivers/media/platform/sh_vou.c | 2 +- drivers/media/platform/soc_camera/atmel-isi.c | 2 +- drivers/media/platform/soc_camera/mx2_camera.c | 2 +- drivers/media/platform/soc_camera/mx3_camera.c | 2 +- drivers/media/platform/soc_camera/rcar_vin.c | 2 +- drivers/media/platform/soc_camera/sh_mobile_ceu_camera.c | 2 +- drivers/media/platform/sti/bdisp/bdisp-v4l2.c | 4 ++-- drivers/media/platform/ti-vpe/vpe.c | 2 +- drivers/media/platform/vim2m.c | 2 +- drivers/media/platform/vivid/vivid-core.h | 2 +- drivers/media/platform/vivid/vivid-ctrls.c | 14 +++++++++++--- drivers/media/platform/vivid/vivid-kthread-cap.c | 6 +++--- drivers/media/platform/vivid/vivid-kthread-out.c | 8 ++++---- drivers/media/platform/vivid/vivid-sdr-cap.c | 4 ++-- drivers/media/platform/vivid/vivid-vbi-cap.c | 6 ++---- drivers/media/platform/vsp1/vsp1_video.c | 2 +- drivers/media/platform/xilinx/xilinx-dma.c | 2 +- drivers/media/usb/airspy/airspy.c | 2 +- drivers/media/usb/au0828/au0828-video.c | 2 +- drivers/media/usb/em28xx/em28xx-video.c | 2 +- drivers/media/usb/go7007/go7007-driver.c | 2 +- drivers/media/usb/hackrf/hackrf.c | 4 ++-- drivers/media/usb/pwc/pwc-if.c | 3 +-- drivers/media/usb/s2255/s2255drv.c | 2 +- drivers/media/usb/stk1160/stk1160-video.c | 2 +- drivers/media/usb/usbtv/usbtv-video.c | 2 +- drivers/media/usb/uvc/uvc_video.c | 15 +++++---------- drivers/media/v4l2-core/videobuf2-v4l2.c | 7 +++---- drivers/staging/media/davinci_vpfe/vpfe_video.c | 2 +- drivers/staging/media/omap4iss/iss_video.c | 2 +- drivers/usb/gadget/function/uvc_queue.c | 2 +- include/media/videobuf2-core.h | 2 ++ include/media/videobuf2-v4l2.h | 2 -- include/trace/events/v4l2.h | 4 ++-- include/trace/events/vb2.h | 7 +++++-- 71 files changed, 108 insertions(+), 106 deletions(-) commit 9057bc2b35cfdb5b5fb7d93708f11de5dd9b6b2e Author: Hans Verkuil Date: Fri Nov 20 07:16:56 2015 -0200 [media] solo6x10: use v4l2_get_timestamp to fill in buffer timestamp The timestamp of a v4l2_buffer was advertised as being CLOCK_MONOTONIC, but instead a timestamp from a header field was used. This is inconsistent and not what applications expect. Use v4l2_get_timestamp to properly set the timestamp. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 02a34b6ace4cce92d5cf4d76e54afe0c71e4f706 Author: Hans Verkuil Date: Thu Oct 29 02:07:30 2015 -0200 [media] DocBook media: update VIDIOC_CREATE_BUFS documentation During the Seoul media workshop we decided to relax the VIDIOC_CREATE_BUFS specification so it would no longer require drivers to validate the format field since almost no driver did that anyway. Instead drivers use the buffer size(s) based on the format type and the corresponding format fields and will ignore any other fields. If the size cannot be used an error is returned, otherwise the size is used as-is. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab .../DocBook/media/v4l/vidioc-create-bufs.xml | 30 ++++++++++------------ 1 file changed, 14 insertions(+), 16 deletions(-) commit df9ecb0cad14b952a2865f8b3af86b2bbadfab45 Author: Hans Verkuil Date: Wed Oct 28 00:50:37 2015 -0200 [media] vb2: drop v4l2_format argument from queue_setup The queue_setup callback has a void pointer that is just for V4L2 and is the pointer to the v4l2_format struct that was passed to VIDIOC_CREATE_BUFS. The idea was that drivers would use the information from that struct to buffers suitable for the requested format. After the vb2 split series this pointer is now a void pointer, which is ugly, and the reality is that all existing drivers will effectively just look at the sizeimage field of v4l2_format. To make this more generic the queue_setup callback is changed: the void pointer is dropped, instead if the *num_planes argument is 0, then use the current format size, if it is non-zero, then it contains the number of requested planes and the sizes array contains the requested sizes. If either is unsupported, then return -EINVAL, otherwise use the requested size(s). Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Documentation/video4linux/v4l2-pci-skeleton.c | 11 +++-- drivers/input/touchscreen/sur40.c | 11 +++-- drivers/media/dvb-frontends/rtl2832_sdr.c | 2 +- drivers/media/pci/cobalt/cobalt-v4l2.c | 12 ++--- drivers/media/pci/cx23885/cx23885-417.c | 2 +- drivers/media/pci/cx23885/cx23885-dvb.c | 2 +- drivers/media/pci/cx23885/cx23885-vbi.c | 2 +- drivers/media/pci/cx23885/cx23885-video.c | 2 +- drivers/media/pci/cx25821/cx25821-video.c | 12 ++--- drivers/media/pci/cx88/cx88-blackbird.c | 2 +- drivers/media/pci/cx88/cx88-dvb.c | 2 +- drivers/media/pci/cx88/cx88-vbi.c | 2 +- drivers/media/pci/cx88/cx88-video.c | 2 +- drivers/media/pci/dt3155/dt3155.c | 11 +++-- drivers/media/pci/netup_unidvb/netup_unidvb_core.c | 1 - drivers/media/pci/saa7134/saa7134-ts.c | 2 +- drivers/media/pci/saa7134/saa7134-vbi.c | 2 +- drivers/media/pci/saa7134/saa7134-video.c | 2 +- drivers/media/pci/saa7134/saa7134.h | 2 +- drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c | 1 - drivers/media/pci/solo6x10/solo6x10-v4l2.c | 2 +- drivers/media/pci/sta2x11/sta2x11_vip.c | 2 +- drivers/media/pci/tw68/tw68-video.c | 20 ++++----- drivers/media/platform/am437x/am437x-vpfe.c | 17 ++++---- drivers/media/platform/blackfin/bfin_capture.c | 12 +++-- drivers/media/platform/coda/coda-common.c | 2 +- drivers/media/platform/davinci/vpbe_display.c | 13 +++--- drivers/media/platform/davinci/vpif_capture.c | 17 ++++---- drivers/media/platform/davinci/vpif_display.c | 13 +++--- drivers/media/platform/exynos-gsc/gsc-m2m.c | 1 - drivers/media/platform/exynos4-is/fimc-capture.c | 31 +++++++------ drivers/media/platform/exynos4-is/fimc-isp-video.c | 31 ++++++------- drivers/media/platform/exynos4-is/fimc-lite.c | 31 ++++++------- drivers/media/platform/exynos4-is/fimc-m2m.c | 2 +- drivers/media/platform/m2m-deinterlace.c | 1 - drivers/media/platform/marvell-ccic/mcam-core.c | 13 +++--- drivers/media/platform/mx2_emmaprp.c | 1 - drivers/media/platform/omap3isp/ispvideo.c | 1 - drivers/media/platform/rcar_jpu.c | 25 ++++++----- drivers/media/platform/s3c-camif/camif-capture.c | 33 +++++--------- drivers/media/platform/s5p-g2d/g2d.c | 2 +- drivers/media/platform/s5p-jpeg/jpeg-core.c | 1 - drivers/media/platform/s5p-mfc/s5p_mfc_dec.c | 2 +- drivers/media/platform/s5p-mfc/s5p_mfc_enc.c | 1 - drivers/media/platform/s5p-tv/mixer_video.c | 2 +- drivers/media/platform/sh_veu.c | 31 ++++--------- drivers/media/platform/sh_vou.c | 11 +++-- drivers/media/platform/soc_camera/atmel-isi.c | 2 +- drivers/media/platform/soc_camera/mx2_camera.c | 6 --- drivers/media/platform/soc_camera/mx3_camera.c | 38 +++------------- drivers/media/platform/soc_camera/rcar_vin.c | 40 +++-------------- .../platform/soc_camera/sh_mobile_ceu_camera.c | 37 +++------------- drivers/media/platform/sti/bdisp/bdisp-v4l2.c | 10 ++--- drivers/media/platform/ti-vpe/vpe.c | 1 - drivers/media/platform/vim2m.c | 13 ++---- drivers/media/platform/vivid/vivid-sdr-cap.c | 2 +- drivers/media/platform/vivid/vivid-vbi-cap.c | 2 +- drivers/media/platform/vivid/vivid-vbi-out.c | 2 +- drivers/media/platform/vivid/vivid-vid-cap.c | 22 +++------- drivers/media/platform/vivid/vivid-vid-out.c | 19 ++------ drivers/media/platform/vsp1/vsp1_video.c | 51 +++++----------------- drivers/media/platform/xilinx/xilinx-dma.c | 12 +++-- drivers/media/usb/airspy/airspy.c | 2 +- drivers/media/usb/au0828/au0828-vbi.c | 14 ++---- drivers/media/usb/au0828/au0828-video.c | 12 ++--- drivers/media/usb/em28xx/em28xx-vbi.c | 20 ++++----- drivers/media/usb/em28xx/em28xx-video.c | 19 ++------ drivers/media/usb/go7007/go7007-v4l2.c | 1 - drivers/media/usb/hackrf/hackrf.c | 2 +- drivers/media/usb/msi2500/msi2500.c | 1 - drivers/media/usb/pwc/pwc-if.c | 2 +- drivers/media/usb/s2255/s2255drv.c | 2 +- drivers/media/usb/stk1160/stk1160-v4l.c | 2 +- drivers/media/usb/usbtv/usbtv-video.c | 9 ++-- drivers/media/usb/uvc/uvc_queue.c | 14 +++--- drivers/media/v4l2-core/videobuf2-core.c | 23 +++++++--- drivers/media/v4l2-core/videobuf2-v4l2.c | 48 +++++++++++++++++--- drivers/staging/media/davinci_vpfe/vpfe_video.c | 2 +- drivers/staging/media/omap4iss/iss_video.c | 1 - drivers/usb/gadget/function/uvc_queue.c | 2 +- include/media/videobuf2-core.h | 40 +++++++++-------- 81 files changed, 356 insertions(+), 520 deletions(-) commit 86fff036fe95600dab337f37577b77742b89833c Merge: d0b6342 93b2d7b Author: Arnd Bergmann Date: Fri Dec 18 16:42:47 2015 +0100 Merge tag 'realview-multiplatform-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator into next/multiplatform Pull "Multiplatform support for the RealView" from Linus Walleij: Here is the result of my application of the second part of Arnds patchset, actually enabling multiplatform and getting the RealView off the ground as a multiplatform target. It is dependent on an outstanding patch to the irqchips tree bumping the number of GICs to 2 for the RealView platform. I cannot say I will be sleepless if these go in side by side: each branch will compile but will not boot until both trees have been pulled hurting bisectability a bit. - Tested on the ARM PB11MPCore - Tested with boardfile boot - Tested with DeviceTree boot * tag 'realview-multiplatform-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator: ARM: realview: select apropriate targets ARM: realview: clean up header files ARM: realview: make all header files local ARM: no longer make CPU targets visible separately ARM: integrator: use explicit core module options ARM: realview: enable multiplatform commit ecc2fe20e63a21b7db23065ff061b66fbc08e08b Author: Hans Verkuil Date: Mon Nov 30 14:47:00 2015 -0200 [media] cx23885: video instead of vbi register used The VID_A_GPCNT register is for video, not vbi. Read from the right register and don't write to the video register. Based upon Devin's initial patch made for an older kernel which I cleaned up and rebased. Thanks to Kernel Labs for that work. Signed-off-by: Devin Heitmueller Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cx23885/cx23885-vbi.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 6c43a2178e02d41c89b93025257317d299b9e4a4 Author: Hans Verkuil Date: Mon Nov 30 18:08:10 2015 -0200 [media] cx23885: add support for ViewCast 260e and 460e Add support for these two new cards. Based upon Devin's initial patch made for an older kernel which I cleaned up and rebased. Thanks to Kernel Labs for that work. Signed-off-by: Devin Heitmueller Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cx23885/Kconfig | 1 + drivers/media/pci/cx23885/cx23885-cards.c | 114 ++++++++++++++++++++++++++++++ drivers/media/pci/cx23885/cx23885-core.c | 10 +++ drivers/media/pci/cx23885/cx23885-i2c.c | 2 + drivers/media/pci/cx23885/cx23885-video.c | 4 +- drivers/media/pci/cx23885/cx23885.h | 2 + 6 files changed, 132 insertions(+), 1 deletion(-) commit fc279cc2887f0830b9232e970dd6a5dcd8612f3c Author: Hans Verkuil Date: Mon Nov 30 18:05:54 2015 -0200 [media] cs3308: add new 8-channel volume control driver Add simple support for this 8 channel volume control driver. Currently all it does is to unmute all 8 channels. Based upon Devin's initial patch made for an older kernel which I cleaned up and rebased. Thanks to Kernel Labs for that work. Signed-off-by: Devin Heitmueller Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab MAINTAINERS | 9 +++ drivers/media/i2c/Kconfig | 10 ++++ drivers/media/i2c/Makefile | 1 + drivers/media/i2c/cs3308.c | 138 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 158 insertions(+) commit bfd1bbfb54ac73175f5925ba32f14815315df30f Author: Hans Verkuil Date: Mon Nov 30 10:28:23 2015 -0200 [media] cx25840: initialize the standard to NTSC_M This is necessary since the *_std_setup functions rely on a valid state->std field. Also fix the cx23888_std_setup() to test for 60Hz instead of NTSC, just like cx25840_std_setup() does. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/cx25840/cx25840-core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e69d89420e2297a896056bb29746a27d98d9b111 Author: Hans Verkuil Date: Mon Nov 30 10:26:35 2015 -0200 [media] cx25840: fix cx25840_s_stream for cx2388x and cx231xx For those two devices the code wrote to addresses 0x115/6, but on those devices those addresses have nothing to do with power controls. So clearly this never worked. Rather than writing to bogus addresses, just do nothing for the cx2388x and cx231xx. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/cx25840/cx25840-core.c | 37 ++++++++++++++++---------------- 1 file changed, 19 insertions(+), 18 deletions(-) commit 499ebed3ec3854687ccf160d0f262191be990720 Author: Hans Verkuil Date: Mon Nov 30 10:19:41 2015 -0200 [media] cx25840: relax a Vsrc check The cx23888 reports a slightly different Vsrc value than the other chip variants do. Relax the check by 1, otherwise cx25840_set_fmt() would fail for the cx23888. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/cx25840/cx25840-core.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit ee61cd9f12382caf819ae4a40089b49f90dc2184 Author: Hans Verkuil Date: Mon Nov 30 10:15:21 2015 -0200 [media] cx25840: more cx23888 register address changes The cx23888 also moves the following registers around: !cx23888 cx23888 -------- ------- 0x418, 0x41c 0x434, 0x438 0x420 0x418 (expect for bit 29 which has a different meaning) 0x478 0x454 Also drop the set_input code where the scaler is changed: this does not belong here, changing the input should not change the scaler. And that's besides the fact that that code is plain wrong. After this change the cx23888 behaves much better. In particular, calling set_input no longer changes the saturation to 0, causing a grayscale image. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/cx25840/cx25840-core.c | 49 +++++++++++++++----------------- 1 file changed, 23 insertions(+), 26 deletions(-) commit cdf472d32a5a1a99c54c3df5c155785db2e529c3 Author: Hans Verkuil Date: Mon Nov 30 10:09:50 2015 -0200 [media] cx25840: fix VBI support for cx23888 The cx23888 has the VBI registers at different addresses compared to the other variants. In most cases it is a fixed offset, but not always. Update the code so the right registers are written for the cx23888. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/cx25840/cx25840-core.c | 20 ++++++++++---------- drivers/media/i2c/cx25840/cx25840-core.h | 1 + drivers/media/i2c/cx25840/cx25840-vbi.c | 32 +++++++++++++++++++++++--------- 3 files changed, 34 insertions(+), 19 deletions(-) commit 80954cbbe431bcc43af6d8c8d39a83fa016dffdf Author: Hans Verkuil Date: Mon Nov 30 10:05:53 2015 -0200 [media] ivtv/cx18: fix inverted pixel aspect ratio These two drivers reported the pixel aspect ratio the wrong way around. This caused qv4l2 to scale the image incorrectly. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cx18/cx18-ioctl.c | 4 ++-- drivers/media/pci/ivtv/ivtv-ioctl.c | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) commit e25cb2001307c1c4b7d79da0fcd2a7598cf8e647 Author: Hans Verkuil Date: Mon Nov 30 10:03:30 2015 -0200 [media] cx231xx: fix NTSC cropcap, add missing cropcap for 417 The pixelaspect ratio was set incorrectly for 60Hz formats. And since cropcap wasn't implemented at all for the -417 (compressed video) the pixelaspect was unknown for compressed video. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/cx231xx/cx231xx-417.c | 22 ++++++++++++++++++++++ drivers/media/usb/cx231xx/cx231xx-video.c | 5 +++-- 2 files changed, 25 insertions(+), 2 deletions(-) commit e80bf856af271423bc055e895ef6141b0795ffd9 Author: Hans Verkuil Date: Mon Nov 30 09:59:18 2015 -0200 [media] cx23885: fix format/crop handling While testing the cx23885 driver with various TV standards I found a number of bugs: 1) norm_maxw() returned 768 instead of 720 for PAL formats. This should always be 720, so drop this inline function and just always use 720. 2) cropcap() was missing, so the pixelaspect was never known and qv4l2 would scale the image incorrectly. Add cropcap support. 3) cx23885_set_tvnorm() should just return 0 if the same standard was set again. If another standard is set, then reset the width/height and call set_fmt for the subdevs. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cx23885/cx23885-video.c | 39 ++++++++++++++++++++++++++++++- drivers/media/pci/cx23885/cx23885.h | 5 ---- 2 files changed, 38 insertions(+), 6 deletions(-) commit 11b64c8acca05d7e50a873e0e8758b75d6d6650f Author: Peter Oberparleiter Date: Fri Dec 18 12:59:40 2015 +0100 s390/cio: Change I/O instructions from inline to normal functions Adding tracepoints to inline functions adds tracepoint invocation code for each instance where the function is inlined. The resulting increase in kernel code size can have negative impact: - More cache misses in instruction cache - Reduced amount of DMA-capable memory Therefore change all functions implementing I/O instructions from inline to normal functions. Bloat-o-meter summary after change (using performance_defconfig): add/remove: 24/2 grow/shrink: 4/39 up/down: 2205/-4858 (-2653) Signed-off-by: Peter Oberparleiter Acked-by: Cornelia Huck Signed-off-by: Martin Schwidefsky drivers/s390/cio/Makefile | 2 +- drivers/s390/cio/ioasm.c | 224 ++++++++++++++++++++++++++++++++++++++++++++++ drivers/s390/cio/ioasm.h | 220 +++------------------------------------------ 3 files changed, 238 insertions(+), 208 deletions(-) commit 42248979d5705e056b509cdcfb548e40f708cba8 Author: Peter Oberparleiter Date: Fri Dec 18 12:59:36 2015 +0100 s390/cio: Introduce common I/O layer tracepoints Add tracepoints to interrupt handler and core inline assemblies used by the s390 common I/O layer. These tracepoints can be used to monitor and validate hardware and hypervisor requests and responses. Signed-off-by: Peter Oberparleiter Reviewed-by: Sebastian Ott Reviewed-by: Cornelia Huck Signed-off-by: Martin Schwidefsky drivers/s390/cio/Makefile | 5 +- drivers/s390/cio/airq.c | 1 + drivers/s390/cio/cio.c | 2 + drivers/s390/cio/ioasm.h | 25 ++++ drivers/s390/cio/trace.c | 24 +++ drivers/s390/cio/trace.h | 363 ++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 419 insertions(+), 1 deletion(-) commit 2ab59de7c5ce7c5ed6db07278554901d43fe80a0 Author: Peter Oberparleiter Date: Fri Dec 18 12:59:32 2015 +0100 s390/cio: Consolidate inline assemblies and related data definitions Replace the current semi-arbitrary distribution of inline assemblies: - Inline assemblies used by CIO go into ioasm.h - Data definitions used by inline assemblies go into cio.h Beyond cleaning up the current structure this is also required for use of tracepoints in inline assemblies introduced by a follow-on patch. Signed-off-by: Peter Oberparleiter Acked-by: Sebastian Ott Acked-by: Cornelia Huck Signed-off-by: Martin Schwidefsky arch/s390/include/asm/crw.h | 14 --------- drivers/s390/cio/cio.h | 12 ++++++++ drivers/s390/cio/crw.c | 1 + drivers/s390/cio/io_sch.h | 45 --------------------------- drivers/s390/cio/ioasm.h | 75 ++++++++++++++++++++++++++++++++++++--------- 5 files changed, 73 insertions(+), 74 deletions(-) commit ac357c4105ef6b2d44227aa349850a3c1a2994a5 Author: Peter Oberparleiter Date: Fri Dec 18 12:59:28 2015 +0100 s390/cio: Fix incorrect xsch opcode specification The numeric representation of the xsch instruction was incorrectly specified, resulting in reserved fields of the instruction opcode potentially being set to a non-zero value. While this doesn't currently cause any problem, a future architecture might make use of these fields so that the current specification could result in an exception or unwanted side-effects. Fix this by using the xsch instruction code for which support in binutils was added in 2003. Signed-off-by: Peter Oberparleiter Signed-off-by: Martin Schwidefsky drivers/s390/cio/io_sch.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 62e65da994768e0d599d78dd2cebef5716ffb0ae Author: Peter Oberparleiter Date: Fri Dec 18 12:58:47 2015 +0100 s390/cio: Remove unused inline assemblies There is no longer a need to maintain two versions of the same inline assembly - one with exception handling, and one without - so get rid of the duplicates and adjust names accordingly. This applies to stsch_err and msch_err which are now renamed to stsch and msch respectively, while the original msch function is removed. Signed-off-by: Peter Oberparleiter Acked-by: Cornelia Huck Signed-off-by: Martin Schwidefsky drivers/s390/cio/chsc_sch.c | 2 +- drivers/s390/cio/cio.c | 24 ++++++++++++------------ drivers/s390/cio/css.c | 2 +- drivers/s390/cio/device_fsm.c | 2 +- drivers/s390/cio/ioasm.h | 17 +---------------- 5 files changed, 16 insertions(+), 31 deletions(-) commit d7ae65aec0dac187d29a2963ac46574aad840a20 Author: Christian Borntraeger Date: Tue Dec 15 09:26:30 2015 +0100 s390/setup: cleanup machine flags Over time some machine flags got unused (e.g. MACHINE_FLAG_MVPG) or are available on all 64bit systems (MACHINE_FLAG_CSP, MACHINE_FLAG_IEEE) - let's remove them. Reorder the other ones to match the order of the MACHINE_HAS_* macros and renumber all bits to avoid holes. Also fix the comment about where the flags are detected. Signed-off-by: Christian Borntraeger Signed-off-by: Martin Schwidefsky arch/s390/include/asm/setup.h | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) commit 3dbc78d3a179d99611111d2d86d4283f1f4f82b4 Author: Heiko Carstens Date: Tue Dec 8 14:10:12 2015 +0100 s390/smp: save timestamp on external calls This is supposed to make debugging easier: if within a dump we can see that an external call or emergency signal IPI is pending but all cpus are idle, we have no idea for how long the interrupt is outstanding. Therefore save a timestamp into the per cpu pcpu array of the target cpu whenever such an IPI is sent. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/kernel/smp.c | 2 ++ 1 file changed, 2 insertions(+) commit e527aec434b59745654d3b34a3aa7ce3392a85a5 Author: Christian Borntraeger Date: Mon Dec 7 13:08:48 2015 +0100 s390/sysinfo: Remove unused variables max_mnest and rc are never used. Signed-off-by: Christian Borntraeger Signed-off-by: Martin Schwidefsky arch/s390/kernel/sysinfo.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 90f405e859840abe1ebf64a836a61e300c11e1c9 Author: Christian Borntraeger Date: Mon Dec 7 12:52:20 2015 +0100 s390/extmem: remove unused variable findseg_scode is assigned, but never used. Signed-off-by: Christian Borntraeger Signed-off-by: Martin Schwidefsky arch/s390/mm/extmem.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 292d8d71576c471e53eb7342ea6130f0241145e8 Author: Christian Borntraeger Date: Mon Dec 7 12:50:03 2015 +0100 s390/fault: remove unused variable address is assigned but never used. Signed-off-by: Christian Borntraeger Signed-off-by: Martin Schwidefsky arch/s390/mm/fault.c | 2 -- 1 file changed, 2 deletions(-) commit f9101e639cf7e707b9a379737ea1b66a16e82097 Author: Christian Borntraeger Date: Mon Dec 7 11:03:30 2015 +0100 s390/traps: Remove unused variable location is assigned but never used. Signed-off-by: Christian Borntraeger Signed-off-by: Martin Schwidefsky arch/s390/kernel/traps.c | 3 --- 1 file changed, 3 deletions(-) commit 6527f6e0cb6a14c3938140f609d2fde59f4299fc Author: Heiko Carstens Date: Thu Nov 5 14:03:32 2015 +0100 s390: compile head.S always with -march=z900 head.S on s390 contains some sanity checks if the kernel will run on a machine or if the machine is too old, e.g. if the kernel contains instructions not available on the machine. If so, it will emit an error message to the console before it stops execution. Therefore head.S contains only instructions which are availanble with the earliest machine generation (z900). In order to make sure we don't accidently add instructions which are not available on z900, always compile with -march=z900. This makes sure compilation will fail if wrong instructions are used. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/kernel/Makefile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit a7e137eb94b6abd180050cf0b42e8b3db7efbf5f Author: Heiko Carstens Date: Thu Nov 5 14:03:27 2015 +0100 kbuild: add AFLAGS_REMOVE_(basename).o option It is already possible to remove CFLAGS with the CFLAGS_REMOVE option that was introduced with commit 656ee82cc855 ("kbuild: create new CFLAGS_REMOVE_(basename).o option"). However it is not possible to remove AFLAGS for assembler files. So this patch just adds the AFLAGS_REMOVE option which works the same like CFLAGS_REMOVE. Signed-off-by: Heiko Carstens Acked-by: Michal Marek Signed-off-by: Martin Schwidefsky scripts/Makefile.lib | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f3d05f9de75e233d8f1090af91fc6c23ddc600e8 Author: Heiko Carstens Date: Wed Nov 25 12:54:46 2015 +0100 s390/facilities: add z13 als bit If configured for z13 assume the kernel makes use of the instructions that are part of the load-and-zero-rightmost-byte facility and load/store-on-condition facility 2. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/include/asm/facilities_src.h | 3 +++ 1 file changed, 3 insertions(+) commit 6ab6c31a5450b73133e04c3976469d6d72f55df3 Author: Heiko Carstens Date: Tue Nov 24 13:48:27 2015 +0100 s390/facilities: optimize test_facility() test_facility() can be optimized for bits which must be set anyway, due to the check in head.S. This removes a couple of superfluous runtime checks. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/include/asm/facility.h | 6 ++++++ 1 file changed, 6 insertions(+) commit 185edd4431f0dfd48a465e19ccc3280b08e9fa1a Author: Heiko Carstens Date: Tue Nov 24 13:11:18 2015 +0100 s390/facilities: remove unneeded facility bits The facility lists contain a lot of bits which are not necessary to run the kernel. Therefore remove them and keep only those bits which are required for the kernel. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/include/asm/facilities_src.h | 12 ------------ 1 file changed, 12 deletions(-) commit 0358ecf7327f0cb206b14138353e1cbe612c5d64 Author: Heiko Carstens Date: Tue Nov 24 12:47:14 2015 +0100 s390/facilities: make use of generated facility list Change head.S to make use of the generated facility list. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/kernel/head.S | 35 +++++++++++------------------------ 1 file changed, 11 insertions(+), 24 deletions(-) commit c30f6828fed9d33c2d54dfaf3621717c56f9c779 Author: Heiko Carstens Date: Mon Feb 2 07:08:44 2015 +0100 s390/facilities: add helper tool to generate facility lists Modifying the architecture level set facility lists was always very error prone. Given the numbering of the facility bits within the Principles of Operation, where the most significant bit number is 0, it happened a lot of times that wrong bits were set or cleared. Therefore this patch adds a tool "gen_facilities" which generates include/generated/facilites.h. The definition of the bits to be set is contained within arch/s390/include/asm/facilities_src.h and can be easily extended to e.g. also generate such lists for the KVM module. The generated file looks like this: #define FACILITIES_ALS _AC(0xc1006450f0040000,UL) #define FACILITIES_ALS_DWORDS 1 The facility bits defined in this patch match 1:1 to the current masks that can be found in head.S. That is if the tool gets executed with -march=z990 then the generated masks will equal the masks in head.S for CONFIG_MARCH_Z990. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/Makefile | 5 +++ arch/s390/include/asm/facilities_src.h | 67 ++++++++++++++++++++++++++++++++++ arch/s390/include/asm/facility.h | 5 +++ arch/s390/tools/.gitignore | 1 + arch/s390/tools/Makefile | 15 ++++++++ arch/s390/tools/gen_facilities.c | 67 ++++++++++++++++++++++++++++++++++ 6 files changed, 160 insertions(+) commit 76cdd44c2e56ffabc297494c090c6babc8985998 Author: Heiko Carstens Date: Tue Nov 24 12:33:07 2015 +0100 s390/facilities: always use lowcore's stfle field for storing facility bits head.s contains an stfle instruction which stores it result at the storage location that is assigned to the stfl instruction. This is currently no problem, since we only care about one double word. However if the number of double words in the ALS bitfield grows the current code is not very stable. E.g. before issuing the stfle command the memory to which it stores must be cleared, since the instruction may or may not clear memory contents where no bits are set. In order to simplify the code a bit always use the storage location that we reserved for the stfle result. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/kernel/asm-offsets.c | 1 + arch/s390/kernel/head.S | 10 +++++----- arch/s390/kernel/head64.S | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) commit 9552a66fe622ed53b87278a90917a37a5245e68a Author: Heiko Carstens Date: Tue Nov 24 12:18:22 2015 +0100 s390/facilities: use stfl mnemonic instead of insn magic Now that 31 bit support is gone, the assembler always knows about the stfl instruction. Therefore lets use a readable mnemonic. Also remove the not needed extable entry for the inline assembly and fix the output constraint. Signed-off-by: Heiko Carstens Reviewed-by: Christian Borntraeger Signed-off-by: Martin Schwidefsky arch/s390/include/asm/facility.h | 6 ++---- arch/s390/kernel/head.S | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) commit cbc68dc9c8bb127e712fa650dc4d5cd3d4349ba1 Author: Imre Deak Date: Thu Dec 17 19:04:33 2015 +0200 drm/i915: don't enable autosuspend on platforms without RPM support pm_runtime_{use,dont_use}_autosuspend() controls whether the device's sysfs power/autosuspend_delay_ms file is writeable or returns -EIO on access to user space. Since commit 25b181b46e4340f69793a886f2cd46608487783b Author: Imre Deak Date: Thu Dec 17 13:44:56 2015 +0200 drm/i915: get a permanent RPM reference on platforms w/o RPM support this sysfs file is writeable also on platforms without RPM support, but userspace (at least IGT) depends on this file being unchangable to determine whether the device supports runtime PM at all. So restore the old behavior. This gets rid of igt/pm_rpm failures on old platforms without RPM support, where the test should be skipped. Testcase: igt/pm_rpm/basic-rte Signed-off-by: Imre Deak Reviewed-by: David Weinehall Link: http://patchwork.freedesktop.org/patch/msgid/1450371873-878-1-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/intel_runtime_pm.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit 93b2d7b15af2805ae10db76c651684c5b88b1e9d Author: Linus Walleij Date: Fri Dec 18 14:29:28 2015 +0100 ARM: realview: select apropriate targets Now that we have multiplatform support, let the RealView defconfigs select all the RealView boards so we boot out of the box like before. This updates both defconfigs. Cc: Arnd Bergmann Signed-off-by: Linus Walleij arch/arm/configs/realview-smp_defconfig | 9 +++++++++ arch/arm/configs/realview_defconfig | 8 ++++++++ 2 files changed, 17 insertions(+) commit b4aae759c22e71a3c32144f0b3bc4f2fa4aaae98 Author: Florian Westphal Date: Thu Dec 10 18:04:07 2015 +0100 netfilter: meta: add support for setting skb->pkttype This allows to redirect bridged packets to local machine: ether type ip ether daddr set aa:53:08:12:34:56 meta pkttype set unicast Without 'set unicast', ip stack discards PACKET_OTHERHOST skbs. It is also useful to add support for a '-m cluster like' nft rule (where switch floods packets to several nodes, and each cluster node node processes a subset of packets for load distribution). Mangling is restricted to HOST/OTHER/BROAD/MULTICAST, i.e. you cannot set skb->pkt_type to PACKET_KERNEL or change PACKET_LOOPBACK to PACKET_HOST. Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso net/netfilter/nft_meta.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) commit 38d2cfcc8d91e8c666ae15f2fdc23830b8ce9c94 Author: Arnd Bergmann Date: Wed Nov 25 17:32:23 2015 +0100 ARM: realview: clean up header files This contains multiple trivial cleanups to the realview headers: - removing the file names from the introductory comment - removing the uncompress.h header that is unused - removing the irqs.h header and NR_IRQS logic that is obsoleted by sparse IRQs Signed-off-by: Arnd Bergmann Signed-off-by: Linus Walleij arch/arm/mach-realview/board-eb.h | 2 - arch/arm/mach-realview/board-pb1176.h | 2 - arch/arm/mach-realview/board-pb11mp.h | 2 - arch/arm/mach-realview/board-pba8.h | 2 - arch/arm/mach-realview/board-pbx.h | 2 - arch/arm/mach-realview/core.h | 2 - arch/arm/mach-realview/hardware.h | 2 - arch/arm/mach-realview/irqs-eb.h | 20 +-------- arch/arm/mach-realview/irqs-pb1176.h | 21 --------- arch/arm/mach-realview/irqs-pb11mp.h | 27 +---------- arch/arm/mach-realview/irqs-pba8.h | 23 ---------- arch/arm/mach-realview/irqs-pbx.h | 24 +--------- arch/arm/mach-realview/irqs.h | 40 ----------------- arch/arm/mach-realview/platform.h | 2 - arch/arm/mach-realview/realview-dt.c | 1 - arch/arm/mach-realview/realview_eb.c | 2 +- arch/arm/mach-realview/realview_pb1176.c | 2 +- arch/arm/mach-realview/realview_pb11mp.c | 2 +- arch/arm/mach-realview/realview_pba8.c | 2 +- arch/arm/mach-realview/realview_pbx.c | 2 +- arch/arm/mach-realview/uncompress.h | 77 -------------------------------- 21 files changed, 8 insertions(+), 251 deletions(-) commit 6d407a6eac8378c45a09a3c071d6f1ed31d938e9 Author: Arnd Bergmann Date: Wed Nov 25 17:32:22 2015 +0100 ARM: realview: make all header files local Nothing includes these files any more, so we can simply move them from arch/arm/mach-realview/include/mach/ to arch/arm/mach-realview. Signed-off-by: Arnd Bergmann [Two fixes added to make everything compile] Signed-off-by: Linus Walleij arch/arm/mach-realview/board-eb.h | 96 ++++++++ arch/arm/mach-realview/board-pb1176.h | 83 +++++++ arch/arm/mach-realview/board-pb11mp.h | 98 ++++++++ arch/arm/mach-realview/board-pba8.h | 73 ++++++ arch/arm/mach-realview/board-pbx.h | 108 +++++++++ arch/arm/mach-realview/core.c | 6 +- arch/arm/mach-realview/hardware.h | 42 ++++ arch/arm/mach-realview/include/mach/board-eb.h | 96 -------- arch/arm/mach-realview/include/mach/board-pb1176.h | 83 ------- arch/arm/mach-realview/include/mach/board-pb11mp.h | 98 -------- arch/arm/mach-realview/include/mach/board-pba8.h | 73 ------ arch/arm/mach-realview/include/mach/board-pbx.h | 108 --------- arch/arm/mach-realview/include/mach/hardware.h | 42 ---- arch/arm/mach-realview/include/mach/irqs-eb.h | 132 ----------- arch/arm/mach-realview/include/mach/irqs-pb1176.h | 100 --------- arch/arm/mach-realview/include/mach/irqs-pb11mp.h | 122 ---------- arch/arm/mach-realview/include/mach/irqs-pba8.h | 94 -------- arch/arm/mach-realview/include/mach/irqs-pbx.h | 109 --------- arch/arm/mach-realview/include/mach/irqs.h | 40 ---- arch/arm/mach-realview/include/mach/platform.h | 249 --------------------- arch/arm/mach-realview/include/mach/uncompress.h | 77 ------- arch/arm/mach-realview/irqs-eb.h | 132 +++++++++++ arch/arm/mach-realview/irqs-pb1176.h | 98 ++++++++ arch/arm/mach-realview/irqs-pb11mp.h | 122 ++++++++++ arch/arm/mach-realview/irqs-pba8.h | 94 ++++++++ arch/arm/mach-realview/irqs-pbx.h | 109 +++++++++ arch/arm/mach-realview/irqs.h | 40 ++++ arch/arm/mach-realview/platform.h | 249 +++++++++++++++++++++ arch/arm/mach-realview/platsmp.c | 8 +- arch/arm/mach-realview/realview_eb.c | 6 +- arch/arm/mach-realview/realview_pb1176.c | 6 +- arch/arm/mach-realview/realview_pb11mp.c | 6 +- arch/arm/mach-realview/realview_pba8.c | 6 +- arch/arm/mach-realview/realview_pbx.c | 6 +- arch/arm/mach-realview/uncompress.h | 77 +++++++ 35 files changed, 1442 insertions(+), 1446 deletions(-) commit 17d44d7d87582366b8d508139c7307bab4103c6e Author: Arnd Bergmann Date: Wed Nov 25 17:32:21 2015 +0100 ARM: no longer make CPU targets visible separately Now that realview and integrator always select the correct CPU type themselves based on the core tiles, there is no need to still have them user-visible in arch/arm/mm/Kconfig. The ARM925T symbol has been selected by the only user for many years, so that can be removed along with the realview and integrator specific ones. This also solves randconfig build problems on realview. Signed-off-by: Arnd Bergmann Cc: Russell King Signed-off-by: Linus Walleij arch/arm/mm/Kconfig | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) commit abc466951aeb16fb00d207052c881dcc597acb29 Author: Arnd Bergmann Date: Wed Nov 25 17:32:20 2015 +0100 ARM: integrator: use explicit core module options For consistency with the other platforms, this remove the CPU selection logic in mm/Kconfig that was only used by integrator, and adds specific options for each available core tile and core module, which in turn select the correct CPUs. This is consistent with the new way that we do it for realview and all other platforms. Signed-off-by: Arnd Bergmann Signed-off-by: Linus Walleij arch/arm/mach-integrator/Kconfig | 132 ++++++++++++++++++++++++++++++++++----- 1 file changed, 115 insertions(+), 17 deletions(-) commit 2934167dd02b4fb5f6c57b36c92b3af23e8bad9f Author: Arnd Bergmann Date: Wed Nov 25 17:32:19 2015 +0100 ARM: realview: enable multiplatform All obstacles are out of the way by now, so we can finally move realview to multiplatform. Signed-off-by: Arnd Bergmann Cc: Russell King [Rebased Kconfig, fixed if $(X) to if X in Makefile] Signed-off-by: Linus Walleij arch/arm/Kconfig | 14 ----------- arch/arm/mach-realview/Kconfig | 55 ++++++++++++++++++++++++++++++++--------- arch/arm/mach-realview/Makefile | 7 +++++- 3 files changed, 49 insertions(+), 27 deletions(-) commit 07cd6bf5f382da72cee5aaa94738b9631c2c8431 Author: Fengguang Wu Date: Fri Dec 18 15:51:36 2015 +0800 MAINTAINERS: Fix EDAC repo URLs format Make it comply with the T: format. Cc: Andrew Morton Cc: Mauro Carvalho Chehab Link: http://lkml.kernel.org/r/20151218080625.745540243@intel.com Signed-off-by: Fengguang Wu Signed-off-by: Borislav Petkov MAINTAINERS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit dfd35b779d6c8bbf9f287e1abec533374c41b8ae Author: Marek Vasut Date: Thu Dec 17 23:38:18 2015 +0000 ARM: socfpga: Repair incorrectly applied MCV patch For whatever reason, this patch was not applied verbatim and had all tabs replaced with spaces. Replace them back by a quick sed. Signed-off-by: Marek Vasut Cc: Alan Tull Cc: Dinh Nguyen Cc: Olof Johansson Cc: Steffen Trumtrar Cc: Thor Thayer Cc: Vince Bridgers Signed-off-by: Dinh Nguyen arch/arm/boot/dts/socfpga_cyclone5_mcv.dtsi | 18 +++--- arch/arm/boot/dts/socfpga_cyclone5_mcvevk.dts | 90 +++++++++++++-------------- 2 files changed, 54 insertions(+), 54 deletions(-) commit 47769cbc09ebb13ffd1e2d017b698dddf7fd2855 Author: Daniel Kurtz Date: Fri Dec 18 15:11:33 2015 +0800 regulator: mt6311: Use REGCACHE_RBTREE This regulator is on a slow i2c bus. Register accesses are very simple, they all either enable/disable a regulator channel, or select a new voltage level. Thus, reading registers from the device will always return what was last written. Therefore we can save a lot of time when reading registers by using a regmap_cache. Since the register map is relatively large, but we only ever access a few of them, we use an RBTREE cache. Signed-off-by: Daniel Kurtz Acked-by: Henry Chen Signed-off-by: Mark Brown drivers/regulator/mt6311-regulator.c | 1 + 1 file changed, 1 insertion(+) commit 44bf5361e21d507e23f8cf8d696c0600f3795e54 Author: Kuninori Morimoto Date: Thu Dec 17 02:59:31 2015 +0000 ASoC: rsnd: add missing DT example for Simple Card with TDM Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown .../devicetree/bindings/sound/renesas,rsnd.txt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit f3f17d32fe0f3be9b1514c7e6245edee3673dccc Author: Kuninori Morimoto Date: Thu Dec 17 02:59:09 2015 +0000 ASoC: rsnd: add missing DT example for Simple Card Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown .../devicetree/bindings/sound/renesas,rsnd.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 89b66174eca6609020cc3d1ef32df7956fd16b34 Author: Kuninori Morimoto Date: Thu Dec 17 02:58:14 2015 +0000 ASoC: rsnd: add rsnd_parse_connect_common() and remove complex macro Current rsnd driver is using complex macro to parse DAI connection. This patch adds new rsnd_parse_connect_common() and replace current macro to it. This is prepare for multi channel support Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 57 +++++++++++++++++++++++++++++------------------- sound/soc/sh/rcar/rsnd.h | 25 +++++++++++++++++++++ 2 files changed, 59 insertions(+), 23 deletions(-) commit 750fd445ac53f1623cfcbf710d2bfc7aa1b7086d Author: Kuninori Morimoto Date: Thu Dec 17 02:57:47 2015 +0000 ASoC: rsnd: add rsnd_set_slot() / rsnd_get_slot_num() TDM will use 6 or 8 slots on 1 SSI, and Multi channel will use 6 or 8 slots on few SSI (each SSI uses 2 slots). Thus, this adds new slot control functions which can be prepare for Multi channel support. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 20 +++++++++++++++++--- sound/soc/sh/rcar/rsnd.h | 4 ++++ 2 files changed, 21 insertions(+), 3 deletions(-) commit c140284b8085e0fa07c24f4285db9dc107ad2ed3 Author: Kuninori Morimoto Date: Thu Dec 17 02:57:27 2015 +0000 ASoC: rsnd: tidyup rsnd_get_slot_xxx() naming rsnd_get_slot_rdai() returns total slots (it returns 6 if total 6 channels) , and rsnd_get_slot_extend() returns extended SSI width (it returns 8 if total 6 channels). This will be used on SSI multi channel support too (It will return 2 if total 6 channels with 3 SSI). But, it is using confusable naming. This patch changes rsnd_get_slot_rdai() -> rsnd_get_slot(), rsnd_get_slot_extend() -> rsnd_get_slot_width() Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 6 ++++-- sound/soc/sh/rcar/dvc.c | 3 +-- sound/soc/sh/rcar/rsnd.h | 4 ++-- sound/soc/sh/rcar/ssi.c | 4 ++-- sound/soc/sh/rcar/ssiu.c | 2 +- 5 files changed, 10 insertions(+), 9 deletions(-) commit 5858a7d17e266945b9860768d0549aeb6a52d31f Author: Kuninori Morimoto Date: Thu Dec 17 02:57:07 2015 +0000 ASoC: rsnd: remove rsnd_get_slot_runtime() Current Renesas sound driver is using rsnd_get_slot_runtime(), but it is same as runtime->channels. This patch removes rsnd_get_slot_runtime() Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 19 ++++--------------- sound/soc/sh/rcar/rsnd.h | 1 - 2 files changed, 4 insertions(+), 16 deletions(-) commit 49ee73b441f5734c3da254c60e134f343b89911a Author: Kuninori Morimoto Date: Thu Dec 17 02:56:50 2015 +0000 ASoC: rsnd: SSI/SSIU use rsnd_get_slot_extend() to check TDM Current SSI/SSIU are using rsnd_get_slot_runtime() to check TDM, but using rsnd_get_slot_extend() is more sane. This patch fix it up Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/ssi.c | 2 +- sound/soc/sh/rcar/ssiu.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 52dc68524327ed7bedfc2856bca4fa634f11141a Author: Kuninori Morimoto Date: Thu Dec 17 02:56:31 2015 +0000 ASoC: rsnd: rsnd_dai_connect() returns error if it connect to existing mod Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 3 +++ 1 file changed, 3 insertions(+) commit c90269c1fbfcb3082d379237f0912ea231e90a24 Author: Kuninori Morimoto Date: Thu Dec 17 02:56:11 2015 +0000 ASoC: rsnd: tidyup debug print position on rsnd_dma_attach() It can't output corrent dma name *before* rsnd_mod_init(). It goes to *after* rsnd_mod_init() by this patch Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/dma.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 5e7b9edd928d22ffd4936fc61c80532ed6df5077 Author: Kuninori Morimoto Date: Thu Dec 17 02:55:51 2015 +0000 ASoC: rsnd: tidyup return value of rsnd_get_adinr_bit() Renesas sound driver has rsnd_get_adinr_bit/chan() functions. It is assuming _bit() returns ADINR :: OTBL, and _chan() returns ADINR :: CHNUM. Current _bit() returns both OTBL and CHNUM. This patch fixup it. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) commit cdf310ce119989353bb6848ca8327814ae1012e2 Author: Kuninori Morimoto Date: Thu Dec 17 02:55:25 2015 +0000 ASoC: rsnd: fixup SSIU control timing SSIU should be controlled after SSI. This patch fix up it Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/rsnd.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9189922675ecca0fab38931d86b676e9d79602dc Author: Paul Gortmaker Date: Thu Dec 17 14:11:03 2015 -0500 fs: make locks.c explicitly non-modular The Kconfig currently controlling compilation of this code is: config FILE_LOCKING bool "Enable POSIX file locking API" if EXPERT ...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 gets bumped to one level earlier when we use the more appropriate fs_initcall here. However we've made similar changes before without any fallout and none is expected here either. Cc: Jeff Layton Acked-by: Jeff Layton Cc: "J. Bruce Fields" Cc: Alexander Viro Cc: linux-fsdevel@vger.kernel.org Signed-off-by: Paul Gortmaker Signed-off-by: Jeff Layton fs/locks.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit c7da6fa43cb1c5e649da0f478a491feb9208cae7 Author: Pavel Fedin Date: Fri Dec 18 14:38:43 2015 +0300 arm/arm64: KVM: Detect vGIC presence at runtime Before commit 662d9715840aef44dcb573b0f9fab9e8319c868a ("arm/arm64: KVM: Kill CONFIG_KVM_ARM_{VGIC,TIMER}") is was possible to compile the kernel without vGIC and vTimer support. Commit message says about possibility to detect vGIC support in runtime, but this has never been implemented. This patch introduces runtime check, restoring the lost functionality. It again allows to use KVM on hardware without vGIC. Interrupt controller has to be emulated in userspace in this case. -ENODEV return code from probe function means there's no GIC at all. -ENXIO happens when, for example, there is GIC node in the device tree, but it does not specify vGIC resources. Any other error code is still treated as full stop because it might mean some really serious problems. Signed-off-by: Pavel Fedin Reviewed-by: Christoffer Dall Signed-off-by: Marc Zyngier arch/arm/kvm/arm.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) commit a6c2f87b8820e956ea0f731dcf0e45949bb37a8b Author: Ma Jun Date: Thu Dec 17 19:56:37 2015 +0800 irqchip/mbigen: Implement the mbigen irq chip operation functions Add the interrupt controller chip operation functions of mbigen chip. Signed-off-by: Ma Jun Reviewed-by: Marc Zyngier Signed-off-by: Marc Zyngier drivers/irqchip/irq-mbigen.c | 81 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) commit 9650c60ebfec05fcf74d9b3eb97837501f2bb541 Author: Ma Jun Date: Thu Dec 17 19:56:36 2015 +0800 irqchip/mbigen: Create irq domain for each mbigen device For peripheral devices which connect to mbigen,mbigen is a interrupt controller. So, we create irq domain for each mbigen device and add mbigen irq domain into irq hierarchy structure. Signed-off-by: Ma Jun Reviewed-by: Marc Zyngier Signed-off-by: Marc Zyngier drivers/irqchip/irq-mbigen.c | 138 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 138 insertions(+) commit 717c3dbc118ecbbd5dab06c7e02dac68d3f62e1d Author: Ma Jun Date: Thu Dec 17 19:56:35 2015 +0800 irqchip/mgigen: Add platform device driver for mbigen device Mbigen means Message Based Interrupt Generator(MBIGEN). Its a kind of interrupt controller that collects the interrupts from external devices and generate msi interrupt. Mbigen is applied to reduce the number of wire connected interrupts. As the peripherals increasing, the interrupts lines needed is increasing much, especially on the Arm64 server SOC. Therefore, the interrupt pin in GIC is not enough to cover so many peripherals. Mbigen is designed to fix this problem. Mbigen chip locates in ITS or outside of ITS. Mbigen chip hardware structure shows as below: mbigen chip |---------------------|-------------------| mgn_node0 mgn_node1 mgn_node2 | |-------| |-------|------| dev1 dev1 dev2 dev1 dev3 dev4 Each mbigen chip contains several mbigen nodes. External devices can connect to mbigen node through wire connecting way. Because a mbigen node only can support 128 interrupt maximum, depends on the interrupt lines number of devices, a device can connects to one more mbigen nodes. Also, several different devices can connect to a same mbigen node. When devices triggered interrupt,mbigen chip detects and collects the interrupts and generates the MBI interrupts by writing the ITS Translator register. To simplify mbigen driver,I used a new conception--mbigen device. Each mbigen device is initialized as a platform device. Mbigen device presents the parts(register, pin definition etc.) in mbigen chip corresponding to a peripheral device. So from software view, the structure likes below mbigen chip |---------------------|-----------------| mbigen device1 mbigen device2 mbigen device3 | | | dev1 dev2 dev3 Reviewed-by: Marc Zyngier Signed-off-by: Ma Jun Signed-off-by: Marc Zyngier drivers/irqchip/Kconfig | 8 +++++ drivers/irqchip/Makefile | 1 + drivers/irqchip/irq-mbigen.c | 78 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 87 insertions(+) commit 752b1b94e6c56af3621a4cad20bdc3032ae60950 Author: Ma Jun Date: Thu Dec 17 19:56:34 2015 +0800 dt-bindings: Documents the mbigen bindings Add the mbigen msi interrupt controller bindings document. This patch based on Mark Rutland's patch https://lkml.org/lkml/2015/7/23/558 Signed-off-by: Ma Jun Acked-by: Mark Rutland Signed-off-by: Marc Zyngier .../interrupt-controller/hisilicon,mbigen-v2.txt | 74 ++++++++++++++++++++++ 1 file changed, 74 insertions(+) commit a27d21e03eb14a63dae12467a7655be3334ac80c Author: Linus Walleij Date: Fri Dec 18 10:44:53 2015 +0100 irqchip/gic: Kconfig the number of instances There is currently a hack in the GIC driver making it possible to pass the number of GIC instances from the platform-specific include files and thus override the variable MAX_GIC_NR. With multiplatform deployments, this will not work as we need to get rid of the platform-specific include files. It turns out that this feature is only used by the RealView platform which has a cascaded GIC. So move the configuration to Kconfig and bump to 2 instances if we're building for the RealView. The include file hacks can then be removed. Tested on the ARM PB11MPCore with its cascaded GIC. Suggested-by: Arnd Bergmann Signed-off-by: Linus Walleij Signed-off-by: Marc Zyngier drivers/irqchip/Kconfig | 5 +++++ drivers/irqchip/irq-gic.c | 30 ++++++++++-------------------- 2 files changed, 15 insertions(+), 20 deletions(-) commit 1b1ebe820fcb446146dfb2d04a1f0b7905645f75 Author: Fengguang Wu Date: Fri Dec 18 15:51:44 2015 +0800 MAINTAINERS: add git URL for KVM/ARM Acked-by: Christoffer Dall Signed-off-by: Fengguang Wu Signed-off-by: Marc Zyngier MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit 20475f784d29991b3b843c80c38a36f2ebb35ac4 Author: Vladimir Murzin Date: Mon Nov 16 11:28:18 2015 +0000 arm64: KVM: Add support for 16-bit VMID The ARMv8.1 architecture extension allows to choose between 8-bit and 16-bit of VMID, so use this capability for KVM. Reviewed-by: Christoffer Dall Signed-off-by: Vladimir Murzin Signed-off-by: Marc Zyngier arch/arm/include/asm/kvm_arm.h | 2 +- arch/arm/include/asm/kvm_mmu.h | 5 +++++ arch/arm/kvm/arm.c | 10 ++++++++-- arch/arm64/include/asm/kvm_arm.h | 3 ++- arch/arm64/include/asm/kvm_mmu.h | 8 ++++++++ arch/arm64/kvm/hyp-init.S | 9 +++++++++ 6 files changed, 33 insertions(+), 4 deletions(-) commit 8420dcd37ef34040c8fc5a27bf66887b3b2faf80 Author: Vladimir Murzin Date: Mon Nov 16 11:28:17 2015 +0000 arm: KVM: Make kvm_arm.h friendly to assembly code kvm_arm.h is included from both C code and assembly code; however some definitions in this header supplied with U/UL/ULL suffixes which might confuse assembly once they got evaluated. We have _AC macro for such cases, so just wrap problem places with it. Acked-by: Christoffer Dall Signed-off-by: Vladimir Murzin Signed-off-by: Marc Zyngier arch/arm/include/asm/kvm_arm.h | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) commit 9d4dc688342a3cbda43a1789cd2c6c888658c60d Author: Vladimir Murzin Date: Mon Nov 16 11:28:16 2015 +0000 arm/arm64: KVM: Remove unreferenced S2_PGD_ORDER Since commit a987370 ("arm64: KVM: Fix stage-2 PGD allocation to have per-page refcounting") there is no reference to S2_PGD_ORDER, so kill it for the good. Acked-by: Christoffer Dall Signed-off-by: Vladimir Murzin Signed-off-by: Marc Zyngier arch/arm/include/asm/kvm_arm.h | 1 - arch/arm/kvm/mmu.c | 6 +++--- arch/arm64/include/asm/kvm_mmu.h | 1 - 3 files changed, 3 insertions(+), 5 deletions(-) commit 281243cbe075d27ab884858d6e0b15d8ed61bc25 Author: Marc Zyngier Date: Wed Dec 16 15:41:12 2015 +0000 arm64: KVM: debug: Remove spurious inline attributes The debug trapping code is pretty heavy on the "inline" attribute, but most functions are actually referenced in the sysreg tables, making the inlining imposible. Removing the useless inline qualifier seems the right thing to do, having verified that the output code is similar. Cc: Alex Bennée Acked-by: Christoffer Dall Signed-off-by: Marc Zyngier arch/arm64/kvm/sys_regs.c | 58 +++++++++++++++++++++++------------------------ 1 file changed, 29 insertions(+), 29 deletions(-) commit e078ef81514222ffc10bf1767c15df16ca0b84db Author: Marc Zyngier Date: Mon Dec 14 17:58:33 2015 +0000 ARM: KVM: Cleanup exception injection David Binderman reported that the exception injection code had a couple of unused variables lingering around. Upon examination, it looked like this code could do with an anticipated spring cleaning, which amounts to deduplicating the CPSR/SPSR update, and making it look a bit more like the architecture spec. The spurious variables are removed in the process. Reported-by: David Binderman Reviewed-by: Christoffer Dall Signed-off-by: Marc Zyngier arch/arm/kvm/emulate.c | 74 ++++++++++++++++++++++++++------------------------ 1 file changed, 38 insertions(+), 36 deletions(-) commit e6cb3727f8b912eae4445a24c2f90df2ea14da78 Author: Jani Nikula Date: Fri Dec 18 10:51:35 2015 +0200 drm/i915/backlight: prefer dev_priv over dev pointer Use dev_priv rather than dev pointer where applicable. Remove plenty of unnecessary temp variables. No functional changes. Reviewed-by: Mika Kuoppala Reviewed-by: Chris Wilson Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1450428695-28831-1-git-send-email-jani.nikula@intel.com drivers/gpu/drm/i915/intel_panel.c | 156 ++++++++++++++----------------------- 1 file changed, 58 insertions(+), 98 deletions(-) commit d64fe8e6b34147c2590c7bb29efd7b24e91866ef Merge: 141a361 89af4e0 Author: Ingo Molnar Date: Fri Dec 18 09:46:17 2015 +0100 Merge tag 'perf-core-for-mingo-3' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core Pull new perf tool feature from Arnaldo Carvalho de Melo: " User visible changes: - Generate perf.data files from 'perf stat', to tap into the scripting capabilities perf has instead of defining a 'perf stat' specific scripting support to calculate event ratios, etc. Simple example: $ perf stat record -e cycles usleep 1 Performance counter stats for 'usleep 1': 1,134,996 cycles 0.000670644 seconds time elapsed $ perf stat report Performance counter stats for '/home/acme/bin/perf stat record -e cycles usleep 1': 1,134,996 cycles 0.000670644 seconds time elapsed $ It generates PERF_RECORD_ userspace records to store the details: $ perf report -D | grep PERF_RECORD 0xf0 [0x28]: PERF_RECORD_THREAD_MAP nr: 1 thread: 27637 0x118 [0x12]: PERF_RECORD_CPU_MAP nr: 1 cpu: 65535 0x12a [0x40]: PERF_RECORD_STAT_CONFIG 0x16a [0x30]: PERF_RECORD_STAT -1 -1 0x19a [0x40]: PERF_RECORD_MMAP -1/0: [0xffffffff81000000(0x1f000000) @ 0xffffffff81000000]: x [kernel.kallsyms]_text 0x1da [0x18]: PERF_RECORD_STAT_ROUND [acme@ssdandy linux]$ An effort was made to make perf.data files generated like this to not generate cryptic messages when processed by older tools. The 'perf script' bits need rebasing, will go up later. Jiri's cover letter for this series: The initial attempt defined its own formula lang and allowed triggering user's script on the end of the stat command: http://marc.info/?l=linux-kernel&m=136742146322273&w=2 This patchset abandons the idea of new formula language and rather adds support to: - store stat data into perf.data file - add python support to process stat events Basically it allows to store stat data into perf.data and post process it with python scripts in a similar way we do for sampling data. The stat data are stored in new stat, stat-round, stat-config user events. stat - stored for each read syscall of the counter stat round - stored for each interval or end of the command invocation stat config - stores all the config information needed to process data so report tool could restore the same output as record The python script can now define 'stat___' functions to get stat events data and 'stat__interval' to get stat-round data. See CPI script example in scripts/python/stat-cpi.py." Also a few other changes: User visible changes: - Make command line options always available, even when they depend on some feature being enabled, warning the user about use of such options (Wang Nan) - Support --vmlinux in perf record, useful, so far, for eBPF, where we will set up events that will be used in the record session (He Kuang) - Automatically disable collecting branch flags and cycles with --call-graph lbr. This allows avoiding a bunch of extra MSR reads in the PMI on Skylake. (Andi Kleen) Infrastructure changes: - Dump the stack when a 'perf test -v ' entry segfaults, so far we would have to run it under gdb with 'set follow-fork-mode child' set to get a proper backtrace (Arnaldo Carvalho de Melo) - Initialize the refcnt in 'struct thread' to 1 and fixup its users accordingly, so that we try to have the same refcount model accross the perf codebase (Arnaldo Carvalho de Melo) - More prep work for moving the subcmd infrastructure out of tools/perf/ and into tools/lib/subcmd/ to be used by other tools/ living utilities (Josh Poimboeuf) - Fix 'perf test' hist testcases when kptr_restrict is on (Namhyung Kim) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 141a361e1dbafb91ac600e6a08c53ebcf84e1a9e Merge: b21daae 2d2e7ac Author: Ingo Molnar Date: Fri Dec 18 09:43:24 2015 +0100 Merge branch 'perf/urgent' into perf/core, to make sure a cherry-picked commit does not create conflicts Signed-off-by: Ingo Molnar commit e50be5cd0caa1d3c59d2fa9064c3932f3f74e047 Author: Paul Gortmaker Date: Fri Sep 4 19:33:54 2015 -0400 drivers/soc: make mediatek/mtk-scpsys.c explicitly non-modular The Kconfig currently controlling compilation of this code is: drivers/soc/mediatek/Kconfig:config MTK_SCPSYS drivers/soc/mediatek/Kconfig: bool "MediaTek SCPSYS Support" ...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_platform_driver() uses the same init level priority as builtin_platform_driver() the init ordering remains unchanged with this commit. Cc: Matthias Brugger Cc: Sascha Hauer Cc: Daniel Kurtz Cc: Paul Gortmaker Cc: Olof Johansson Cc: linux-arm-kernel@lists.infradead.org Cc: linux-mediatek@lists.infradead.org Signed-off-by: Paul Gortmaker Signed-off-by: Matthias Brugger drivers/soc/mediatek/mtk-scpsys.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 4688f3856dc1a739ef8a1063abf1e91a657db251 Author: Sascha Hauer Date: Mon Nov 30 11:41:40 2015 +0100 soc: mediatek: SCPSYS: Add regulator support The power domains are supplied by regulators. Add support for them so that the regulators are properly turned on before a domain is powered up and turned off when a domain is powered down. Signed-off-by: Sascha Hauer Signed-off-by: Matthias Brugger drivers/soc/mediatek/mtk-scpsys.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit c050b45d87adf88d60347005cfaac3bdad21e7c5 Author: Yingjoe Chen Date: Fri Oct 2 23:05:18 2015 +0800 arm64: mediatek: enable MTK_TIMER Enable MTK_TIMER for MediaTek plaform, which will be used as tick broadcast device and schedule clock. Signed-off-by: Yingjoe Chen Signed-off-by: Matthias Brugger arch/arm64/Kconfig.platforms | 1 + 1 file changed, 1 insertion(+) commit b21daaede100d102b1687a403df74be0a02031af Merge: 0d76ded 1843b4e Author: Ingo Molnar Date: Fri Dec 18 09:37:51 2015 +0100 Merge tag 'perf-core-for-mingo-2.1' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core Pull perf/core improvements from Arnaldo Carvalho de Melo: User visible changes: - Add record.build-id config option to 'perf record', to allow configuring in the ~/.perfconfig file if and how build-ids should be processed, allowing a permanent setting for options such as -B and -N: (Namhyung Kim) $ perf record -h -B -N Usage: perf record [] [] or: perf record [] -- [] -B, --no-buildid do not collect buildids in perf.data -N, --no-buildid-cache do not update the buildid cache $ Infrastructure changes: - Move code for options parsing and subcommand handling from tools/perf/ to tools/lib/subcmd/, so that it can be used by other tools/ living utilities (Josh Poimboeuf) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 743ad80e5c8565ab54e8832f6d74cb543a0adbba Author: Fang, Yang A Date: Fri Dec 11 11:29:13 2015 -0800 ASoc: Intel: boards: Add HDMI/DP links for nau88l25_ssm4567 machine This machine supports HDMI/DP ports so add these ports and its FE and BE DAIlinks Signed-off-by: Vinod Koul Signed-off-by: Fang, Yang A Signed-off-by: Mark Brown sound/soc/intel/boards/skl_nau88l25_ssm4567.c | 30 +++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) commit 2154be362c9050b9ed5d3beac491f0103505bf16 Author: Sathyanarayana Nujella Date: Fri Dec 11 11:29:12 2015 -0800 ASoc: Intel: boards: Add WOV as sink for nau88l25_ssm4567 machine We have WOV module which should act as DAPM sink, so add that and its links. Also rename the refcap to "Wake On Voice" as some user expect to find this name Signed-off-by: Vinod Koul Signed-off-by: Fang, Yang A Signed-off-by: Sathyanarayana Nujella Signed-off-by: Mark Brown sound/soc/intel/boards/skl_nau88l25_ssm4567.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 2616e27efb21f82e666312cbbab53e6600225ef1 Author: Yong Zhi Date: Fri Dec 11 11:29:11 2015 -0800 ASoc: Intel: boards: update constraints for nau88l25_ssm4567 machine We have specific constraints for FE device (48KHz, stereo, 16 bits) and fixups for BE DMIC links (2 or 4 ch), so add those. Also add one more FE DAIlink for dmiccap Signed-off-by: Vinod Koul Signed-off-by: Fang, Yang A Signed-off-by: Jeeja KP Signed-off-by: Yong Zhi Signed-off-by: Mark Brown sound/soc/intel/boards/skl_nau88l25_ssm4567.c | 136 ++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) commit 941eee74563652f6cc363d8d62b3a9f4bfffdbe2 Author: Yong Zhi Date: Fri Dec 11 11:29:10 2015 -0800 ASoc: Intel: boards: update ignore suspend for nau88l25_ssm4567 machine We don't support ignore suspend on few devices so remove that. Also since we support ignore susend on PDM DMIC, add that Signed-off-by: Vinod Koul Signed-off-by: Yong Zhi Signed-off-by: Fang, Yang A Signed-off-by: Mark Brown sound/soc/intel/boards/skl_nau88l25_ssm4567.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4c6ebc3ecdba9484de5249de406d6fcf725cda62 Author: Fang, Yang A Date: Fri Dec 11 11:29:09 2015 -0800 ASoc: Intel: boards: fix dapm map of nau88l25_ssm4567 machine The DAPM map for DMIC and SSP was not properly done, so fix that up. Also mark machine as fully routed Signed-off-by: Vinod Koul Signed-off-by: Fang, Yang A Signed-off-by: Mark Brown sound/soc/intel/boards/skl_nau88l25_ssm4567.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 8eaf2b31dd316ff5ffbdad14853d2bf8779bab13 Author: Rohit Ainapure Date: Fri Dec 11 11:29:08 2015 -0800 ASoC: Intel: Skylake: Add Nuvoton Maxim machine driver This adds Skylake I2S machine driver which uses NAU88L25 as anlog codec and MAX98357A as speakers Signed-off-by: Rohit Ainapure Signed-off-by: Fang, Yang A Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/Kconfig | 14 + sound/soc/intel/boards/Makefile | 2 + sound/soc/intel/boards/skl_nau88l25_max98357a.c | 485 ++++++++++++++++++++++++ 3 files changed, 501 insertions(+) commit 69b7f9c45856e49929bdde8492e5f46a07c8a2f3 Author: Rohit Ainapure Date: Fri Dec 11 11:29:07 2015 -0800 ASoC: Intel: Add Nuvoton+Maxim machine driver entry Add the NAU88L25 + MAX98357A machine driver entry into the machine table Signed-off-by: Rohit Ainapure Signed-off-by: Fang, Yang A Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl.c | 2 ++ 1 file changed, 2 insertions(+) commit 47d358bbf22d504a41007e7fbf71b5b4b1b45b79 Author: Mans Rullgard Date: Wed Dec 16 13:55:13 2015 +0000 ASoC: wm8974: add binding for WM8974 codec This adds a binding for the Wolfson WM8974 mono audio codec. Signed-off-by: Mans Rullgard Signed-off-by: Mark Brown Documentation/devicetree/bindings/sound/wlf,wm8974.txt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 2005bd881d273456e26a0b2027976f75fc47701f Author: Mans Rullgard Date: Wed Dec 16 13:02:55 2015 +0000 ASoC: wm8974: add devicetree support This adds devicetree support to the wm8974 codec driver. With a DT-based kernel, there is no board-specific setting to select the driver so allow it to be manually chosen. Signed-off-by: Mans Rullgard Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/Kconfig | 3 ++- sound/soc/codecs/wm8974.c | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) commit 5c27087e4b43e2a5be144afe7250fb2b20bd47c4 Author: Rohit Ainapure Date: Fri Dec 11 11:29:06 2015 -0800 ASoC: max98357a: Add ACPI ID for Maxim Adding ACPI ID "MX98357A" for the MAXIM 98357A amp. Signed-off-by: Rohit Ainapure Signed-off-by: Fang, Yang A Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/codecs/max98357a.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 4bc5145cec89b3df719d87d0a6876aa00941d66c Author: Songjun Wu Date: Thu Dec 17 17:50:00 2015 +0800 ASoC: atmel-classd: DT binding for PDMIC driver DT binding documentation for this new ASoC driver. Signed-off-by: Songjun Wu Signed-off-by: Mark Brown .../devicetree/bindings/sound/atmel-pdmic.txt | 55 ++++++++++++++++++++++ 1 file changed, 55 insertions(+) commit a7664ab29af7d7eca57ae525b5063f71fa006ff4 Author: Songjun Wu Date: Thu Dec 17 17:49:59 2015 +0800 ASoC: atmel-pdmic: add the Pulse Density Modulation Interface Controller Add driver for the Pulse Density Modulation Interface Controller. It comes with digitallly controlled gain, a High-Pass and a SINCC filter. Signed-off-by: Songjun Wu Signed-off-by: Mark Brown sound/soc/atmel/Kconfig | 9 + sound/soc/atmel/Makefile | 2 + sound/soc/atmel/atmel-pdmic.c | 738 ++++++++++++++++++++++++++++++++++++++++++ sound/soc/atmel/atmel-pdmic.h | 80 +++++ 4 files changed, 829 insertions(+) commit 020c62ae38946cae01571a0b4e6f445dfdb7ec1c Author: Peter Ujfalusi Date: Mon Dec 14 22:47:42 2015 +0200 dmaengine: omap-dma: Add support for DMA filter mapping to slave devices Add support for providing device to filter_fn mapping so client drivers can switch to use the dma_request_chan() API. Signed-off-by: Peter Ujfalusi Reviewed-by: Arnd Bergmann Signed-off-by: Vinod Koul drivers/dma/omap-dma.c | 4 ++++ include/linux/omap-dma.h | 6 ++++++ 2 files changed, 10 insertions(+) commit 23e6723c060faf5a0fc8d7bfbec440d29943fa99 Author: Peter Ujfalusi Date: Mon Dec 14 22:47:41 2015 +0200 dmaengine: edma: Add support for DMA filter mapping to slave devices Add support for providing device to filter_fn mapping so client drivers can switch to use the dma_request_chan() API. Signed-off-by: Peter Ujfalusi Reviewed-by: Arnd Bergmann Signed-off-by: Vinod Koul drivers/dma/edma.c | 4 ++++ include/linux/platform_data/edma.h | 7 +++++++ 2 files changed, 11 insertions(+) commit a8135d0d79e9d0ad3a4ff494fceeaae838becf38 Author: Peter Ujfalusi Date: Mon Dec 14 22:47:40 2015 +0200 dmaengine: core: Introduce new, universal API to request a channel The two API function can cover most, if not all current APIs used to request a channel. With minimal effort dmaengine drivers, platforms and dmaengine user drivers can be converted to use the two function. struct dma_chan *dma_request_chan_by_mask(const dma_cap_mask_t *mask); To request any channel matching with the requested capabilities, can be used to request channel for memcpy, memset, xor, etc where no hardware synchronization is needed. struct dma_chan *dma_request_chan(struct device *dev, const char *name); To request a slave channel. The dma_request_chan() will try to find the channel via DT, ACPI or in case if the kernel booted in non DT/ACPI mode it will use a filter lookup table and retrieves the needed information from the dma_slave_map provided by the DMA drivers. This legacy mode needs changes in platform code, in dmaengine drivers and finally the dmaengine user drivers can be converted: For each dmaengine driver an array of DMA device, slave and the parameter for the filter function needs to be added: static const struct dma_slave_map da830_edma_map[] = { { "davinci-mcasp.0", "rx", EDMA_FILTER_PARAM(0, 0) }, { "davinci-mcasp.0", "tx", EDMA_FILTER_PARAM(0, 1) }, { "davinci-mcasp.1", "rx", EDMA_FILTER_PARAM(0, 2) }, { "davinci-mcasp.1", "tx", EDMA_FILTER_PARAM(0, 3) }, { "davinci-mcasp.2", "rx", EDMA_FILTER_PARAM(0, 4) }, { "davinci-mcasp.2", "tx", EDMA_FILTER_PARAM(0, 5) }, { "spi_davinci.0", "rx", EDMA_FILTER_PARAM(0, 14) }, { "spi_davinci.0", "tx", EDMA_FILTER_PARAM(0, 15) }, { "da830-mmc.0", "rx", EDMA_FILTER_PARAM(0, 16) }, { "da830-mmc.0", "tx", EDMA_FILTER_PARAM(0, 17) }, { "spi_davinci.1", "rx", EDMA_FILTER_PARAM(0, 18) }, { "spi_davinci.1", "tx", EDMA_FILTER_PARAM(0, 19) }, }; This information is going to be needed by the dmaengine driver, so modification to the platform_data is needed, and the driver map should be added to the pdata of the DMA driver: da8xx_edma0_pdata.slave_map = da830_edma_map; da8xx_edma0_pdata.slavecnt = ARRAY_SIZE(da830_edma_map); The DMA driver then needs to configure the needed device -> filter_fn mapping before it registers with dma_async_device_register() : ecc->dma_slave.filter_map.map = info->slave_map; ecc->dma_slave.filter_map.mapcnt = info->slavecnt; ecc->dma_slave.filter_map.fn = edma_filter_fn; When neither DT or ACPI lookup is available the dma_request_chan() will try to match the requester's device name with the filter_map's list of device names, when a match found it will use the information from the dma_slave_map to get the channel with the dma_get_channel() internal function. Signed-off-by: Peter Ujfalusi Reviewed-by: Arnd Bergmann Signed-off-by: Vinod Koul Documentation/dmaengine/client.txt | 23 +++------- drivers/dma/dmaengine.c | 89 +++++++++++++++++++++++++++++++++----- include/linux/dmaengine.h | 51 +++++++++++++++++++--- 3 files changed, 127 insertions(+), 36 deletions(-) commit 7bd903c5ca47fde5ad52370a47776491813c772e Author: Peter Ujfalusi Date: Mon Dec 14 22:47:39 2015 +0200 dmaengine: core: Move and merge the code paths using private_candidate Channel matching with private_candidate() is used in two paths, the error checking is slightly different in them and they are duplicating code also. Move the code under find_candidate() to provide consistent execution and going to allow us to reuse this mode of channel lookup later. Signed-off-by: Peter Ujfalusi Reviewed-by: Andy Shevchenko Reviewed-by: Arnd Bergmann Signed-off-by: Vinod Koul drivers/dma/dmaengine.c | 81 +++++++++++++++++++++++++------------------------ 1 file changed, 42 insertions(+), 39 deletions(-) commit 26b64256e0c4573f3668ac8329a1266ebb9d6120 Author: Peter Ujfalusi Date: Mon Dec 14 22:47:38 2015 +0200 dmaengine: core: Skip mask matching when it is not provided to private_candidate If mask is NULL skip the mask matching against the DMA device capabilities. Signed-off-by: Peter Ujfalusi Reviewed-by: Andy Shevchenko Reviewed-by: Arnd Bergmann Signed-off-by: Vinod Koul drivers/dma/dmaengine.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0c328de77148ddccaa7a2c31f5751e4d443c213b Author: Damien.Horsley Date: Thu Dec 10 15:07:23 2015 +0000 dmaengine: mdc: Correct terminate_all handling Use of the CANCEL bit in mdc_terminate_all creates an additional 'command done' to appear in the registers (in addition to an interrupt). In addition, there is a potential race between mdc_terminate_all and the irq handler if a transfer completes at the same time as the terminate all (presently this results in an inappropriate warning). To handle these issues, any outstanding 'command done' events are cleared during mdc_terminate_all and the irq handler takes no action when there are no new 'command done' events. Signed-off-by: Damien.Horsley Signed-off-by: Vinod Koul drivers/dma/img-mdc-dma.c | 77 +++++++++++++++++++++++++++++++---------------- 1 file changed, 51 insertions(+), 26 deletions(-) commit 4fa2d09c1ae879c2ee2760ab419a4f97026dd97b Author: Peter Ujfalusi Date: Wed Dec 16 15:19:05 2015 +0200 dmaengine: edma: Add probe callback to edma_tptc_driver Due to changes in device and platform code drivers w/o probe will fail to load. This means that the devices for eDMA TPTCs are goign to be without driver and omap hwmod code will turn them off after the kernel finished loading: [ 3.015900] platform 49800000.tptc: omap_device_late_idle: enabled but no driver. Idling [ 3.024671] platform 49a00000.tptc: omap_device_late_idle: enabled but no driver. Idling This will prevent eDMA to work since the TPTCs are not enabled. Signed-off-by: Peter Ujfalusi Fixes: 34635b1accb9 ("dmaengine: edma: Add dummy driver skeleton for edma3-tptc") Signed-off-by: Vinod Koul drivers/dma/edma.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 2b574ba9c50a06a1aa6cf908cd44119367111006 Author: Mans Rullgard Date: Thu Dec 17 23:30:57 2015 +0000 dmaengine: dw: fix potential memory leak in dw_dma_parse_dt() If the "dma-channels" DT property is missing, the dw_dma_parse_dt() function return NULL, but not before allocating memory for a struct dw_dma_platform_data through devres. If the device supports parameter detection, the probe still succeeds and the allocated memory is not released until the device is removed. Fix this by deferring the allocation until after checking the "dma-channels" property. Signed-off-by: Mans Rullgard Acked-by: Viresh Kumar Signed-off-by: Vinod Koul drivers/dma/dw/platform.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit b3e0d3d7bab14f2544a3314bec53a23dc7dd2206 Merge: 3268e5c 73796d8 Author: David S. Miller Date: Thu Dec 17 22:08:28 2015 -0500 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Conflicts: drivers/net/geneve.c Here we had an overlapping change, where in 'net' the extraneous stats bump was being removed whilst in 'net-next' the final argument to udp_tunnel6_xmit_skb() was being changed. Signed-off-by: David S. Miller commit 0376374a98abd533fb49c6db12967bddc2f4b4b3 Author: Filipe Manana Date: Fri Dec 18 01:57:29 2015 +0000 Btrfs: fix locking bugs when defragging leaves When running fstests btrfs/070, with a higher number of fsstress operations, I ran frequently into two different locking bugs when defragging directories. The first bug produced the following traces: [133860.229792] ------------[ cut here ]------------ [133860.251062] WARNING: CPU: 2 PID: 26057 at fs/btrfs/locking.c:46 btrfs_set_lock_blocking_rw+0x57/0xbd [btrfs]() [133860.253576] Modules linked in: btrfs crc32c_generic xor raid6_pq nfsd auth_rpcgss oid_registry nfs_acl nfs lockd grace fscache sunrpc loop fuse parport_pc i2c_piix4 psmouse parport [133860.282566] CPU: 2 PID: 26057 Comm: btrfs Tainted: G W 4.3.0-rc5-btrfs-next-17+ #1 [133860.284393] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.8.1-0-g4adadbd-20150316_085822-nilsson.home.kraxel.org 04/01/2014 [133860.286827] 0000000000000000 ffff880207697b78 ffffffff812566f4 0000000000000000 [133860.288341] ffff880207697bb0 ffffffff8104d0a6 ffffffffa052d4c1 ffff880178f60e00 [133860.294219] ffff880178f60e00 0000000000000000 00000000000000f6 ffff880207697bc0 [133860.295831] Call Trace: [133860.306518] [] dump_stack+0x4e/0x79 [133860.307473] [] warn_slowpath_common+0x9f/0xb8 [133860.308619] [] ? btrfs_set_lock_blocking_rw+0x57/0xbd [btrfs] [133860.310068] [] warn_slowpath_null+0x1a/0x1c [133860.312552] [] btrfs_set_lock_blocking_rw+0x57/0xbd [btrfs] [133860.314630] [] btrfs_set_lock_blocking+0xe/0x10 [btrfs] [133860.323596] [] btrfs_realloc_node+0xb3/0x341 [btrfs] [133860.325233] [] btrfs_defrag_leaves+0x239/0x2fa [btrfs] [133860.332427] [] btrfs_defrag_root+0x63/0xca [btrfs] [133860.337259] [] btrfs_ioctl_defrag+0x78/0x14e [btrfs] [133860.340147] [] btrfs_ioctl+0x746/0x24c6 [btrfs] [133860.344833] [] ? arch_local_irq_save+0x9/0xc [133860.346343] [] ? __might_fault+0x4c/0xa7 [133860.353248] [] ? __might_fault+0x4c/0xa7 [133860.354242] [] ? __might_fault+0xa5/0xa7 [133860.355232] [] ? cp_new_stat+0x15d/0x174 [133860.356237] [] do_vfs_ioctl+0x427/0x4e6 [133860.358587] [] ? SYSC_newfstat+0x25/0x2e [133860.360195] [] ? __fget_light+0x4d/0x71 [133860.361380] [] SyS_ioctl+0x57/0x79 [133860.363578] [] entry_SYSCALL_64_fastpath+0x12/0x6f [133860.366217] ---[ end trace 2cadb2f653437e49 ]--- [133860.367399] ------------[ cut here ]------------ [133860.368162] kernel BUG at fs/btrfs/locking.c:307! [133860.369430] invalid opcode: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC [133860.370205] Modules linked in: btrfs crc32c_generic xor raid6_pq nfsd auth_rpcgss oid_registry nfs_acl nfs lockd grace fscache sunrpc loop fuse parport_pc i2c_piix4 psmouse parport [133860.370205] CPU: 2 PID: 26057 Comm: btrfs Tainted: G W 4.3.0-rc5-btrfs-next-17+ #1 [133860.370205] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.8.1-0-g4adadbd-20150316_085822-nilsson.home.kraxel.org 04/01/2014 [133860.370205] task: ffff8800aec6db40 ti: ffff880207694000 task.ti: ffff880207694000 [133860.370205] RIP: 0010:[] [] btrfs_assert_tree_locked+0x10/0x14 [btrfs] [133860.370205] RSP: 0018:ffff880207697bc0 EFLAGS: 00010246 [133860.370205] RAX: 0000000000000000 RBX: ffff880178f60e00 RCX: 0000000000000000 [133860.370205] RDX: ffff88023ec4fb50 RSI: 00000000ffffffff RDI: ffff880178f60e00 [133860.370205] RBP: ffff880207697bc0 R08: 0000000000000001 R09: 0000000000000000 [133860.370205] R10: 0000160000000000 R11: ffffffff81651000 R12: ffff880178f60e00 [133860.370205] R13: 0000000000000000 R14: 00000000000000f6 R15: ffff8801ff409000 [133860.370205] FS: 00007f763efd48c0(0000) GS:ffff88023ec40000(0000) knlGS:0000000000000000 [133860.370205] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b [133860.370205] CR2: 0000000002158048 CR3: 000000003fd6c000 CR4: 00000000000006e0 [133860.370205] Stack: [133860.370205] ffff880207697bd8 ffffffffa052d4d0 0000000000000000 ffff880207697be8 [133860.370205] ffffffffa04d5787 ffff880207697c80 ffffffffa04d99cb ffff8801ff409590 [133860.370205] ffff880207697ca8 000000f507697c80 ffff880183c11bb8 0000000000000000 [133860.370205] Call Trace: [133860.370205] [] btrfs_set_lock_blocking_rw+0x66/0xbd [btrfs] [133860.370205] [] btrfs_set_lock_blocking+0xe/0x10 [btrfs] [133860.370205] [] btrfs_realloc_node+0xb3/0x341 [btrfs] [133860.370205] [] btrfs_defrag_leaves+0x239/0x2fa [btrfs] [133860.370205] [] btrfs_defrag_root+0x63/0xca [btrfs] [133860.370205] [] btrfs_ioctl_defrag+0x78/0x14e [btrfs] [133860.370205] [] btrfs_ioctl+0x746/0x24c6 [btrfs] [133860.370205] [] ? arch_local_irq_save+0x9/0xc [133860.370205] [] ? __might_fault+0x4c/0xa7 [133860.370205] [] ? __might_fault+0x4c/0xa7 [133860.370205] [] ? __might_fault+0xa5/0xa7 [133860.370205] [] ? cp_new_stat+0x15d/0x174 [133860.370205] [] do_vfs_ioctl+0x427/0x4e6 [133860.370205] [] ? SYSC_newfstat+0x25/0x2e [133860.370205] [] ? __fget_light+0x4d/0x71 [133860.370205] [] SyS_ioctl+0x57/0x79 [133860.370205] [] entry_SYSCALL_64_fastpath+0x12/0x6f This bug happened because we assumed that by setting keep_locks to 1 in our search path, our path after a call to btrfs_search_slot() would have all nodes locked, which is not always true because unlock_up() (called by btrfs_search_slot()) will unlock a node in a path if the slot of the node below it doesn't point to the last item or beyond the last item. For example, when the tree has a heigth of 2 and path->slots[0] has a value smaller than btrfs_header_nritems(path->nodes[0]) - 1, the node at level 2 will be unlocked (also because lowest_unlock is set to 1 due to the fact that the value passed as ins_len to btrfs_search_slot is 0). This resulted in btrfs_find_next_key(), called before btrfs_realloc_node(), to release out path and call again btrfs_search_slot(), but this time with the cow parameter set to 0, meaning the resulting path got only read locks. Therefore when we called btrfs_realloc_node(), with path->nodes[1] having a read lock, it resulted in the warning and BUG_ON when calling btrfs_set_lock_blocking() against the node, as that function expects the node to have a write lock. The second bug happened often when the first bug didn't happen, and made us hang and hitting the following warning at fs/btrfs/locking.c: 251 void btrfs_tree_lock(struct extent_buffer *eb) 252 { 253 WARN_ON(eb->lock_owner == current->pid); This happened because the tree search we made at btrfs_defrag_leaves() before calling btrfs_find_next_key() locked a leaf and all the other nodes in the path, so btrfs_find_next_key() had no need to release the path and make a new search (with path->lowest_level set to 1). This made btrfs_realloc_node() attempt to write lock the same leaf again, resulting in a hang/deadlock. So fix these issues by calling btrfs_find_next_key() after calling btrfs_realloc_node() and setting the search path's lowest_level to 1 to avoid the hang/deadlock when attempting to write lock the leaves at btrfs_realloc_node(). Signed-off-by: Filipe Manana fs/btrfs/tree-defrag.c | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) commit d01d8799308f53f2a350ec48ae3a98f4b803dac1 Author: Adam Ford Date: Thu Dec 17 18:52:16 2015 -0600 ARM: OMAP2+: LogicPD Torpedo: Revert Duplicative Entries Revert 6f0f6c40b66 ("ARM: dts: Set VAUX1 and VAUX4 on Logic PD Torpedo") because it It was already done and it's just a duplicate. See: 2d11961f3e55 ("ARM: dts: Set VAUX1 and VAUX4 to 3.0V and 1.8V respectively") Signed-off-by: Adam Ford Signed-off-by: Tony Lindgren arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts | 10 ---------- 1 file changed, 10 deletions(-) commit 1474136ce6a457a10a797b3de04adbb035e90901 Author: Geert Uytterhoeven Date: Fri Nov 20 13:36:57 2015 +0100 staging: board: armadillo800eva: Use "arm,pl390" Signed-off-by: Geert Uytterhoeven Acked-by: Greg Kroah-Hartman Signed-off-by: Simon Horman drivers/staging/board/armadillo800eva.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cebbddb6f9cc1d1cce11490903d07c2da228cec9 Author: Geert Uytterhoeven Date: Fri Nov 20 13:36:56 2015 +0100 staging: board: kzm9d: Use "arm,pl390" Signed-off-by: Geert Uytterhoeven Acked-by: Greg Kroah-Hartman Signed-off-by: Simon Horman drivers/staging/board/kzm9d.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 57c80e8e5d1cddae0651e5314394e6069ebbbe3c Author: Karsten Merker Date: Thu Dec 17 17:08:31 2015 -0800 Input: goodix - use "inverted_[xy]" flags instead of "rotated_screen" The goodix touchscreen driver uses a "rotated_screen" flag for systems on which the touchscreen is mounted rotated by 180 degrees with respect to the display. With the addition of support for the dt properties "touchscreen-inverted-x" and "touchscreen-inverted-y", a separate "rotated_screen" flag is not necessary anymore. This patch replaces it by setting the inverted_x and inverted_y flags instead. Signed-off-by: Karsten Merker Reviewed-by: Irina Tirdea Tested-by: Bastien Nocera Acked-by: Bastien Nocera Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/goodix.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit ad48cf5e9597147bb2bb526a6d379ee88970dec8 Author: Karsten Merker Date: Thu Dec 17 17:02:53 2015 -0800 Input: goodix - add axis swapping and axis inversion support Implement support for the following device-tree and ACPI 5.1 DSD properties in the goodix touchscreen driver: - touchscreen-inverted-x: X axis is inverted (boolean) - touchscreen-inverted-y: Y axis is inverted (boolean) - touchscreen-swapped-x-y: X and Y axis are swapped (boolean) These are necessary on tablets which have a display in portrait format while the touchscreen is in landscape format, such as e.g. the MSI Primo 81. Signed-off-by: Karsten Merker Tested-by: Bastien Nocera Tested-by: Irina Tirdea (with ACPI DSD properties) Tested-by: Aleksei Mamlin (with device-tree properties) Acked-by: Rob Herring Signed-off-by: Dmitry Torokhov .../bindings/input/touchscreen/goodix.txt | 5 +++++ drivers/input/touchscreen/goodix.c | 25 ++++++++++++++++++++++ 2 files changed, 30 insertions(+) commit 5d655b35466835c6bb8774122db95ecb4e18888d Author: Irina Tirdea Date: Thu Dec 17 16:47:42 2015 -0800 Input: goodix - use goodix_i2c_write_u8 instead of i2c_master_send Use goodix_i2c_write_u8 instead of i2c_master_send to simplify code. Signed-off-by: Irina Tirdea Tested-by: Bastien Nocera Tested-by: Aleksei Mamlin Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/goodix.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 5ab09d6a8f6406134085fb3f30ab61968c6f1ddf Author: Irina Tirdea Date: Thu Dec 17 16:43:39 2015 -0800 Input: goodix - add power management support Implement suspend/resume for goodix driver. The suspend and resume process uses the gpio pins. If the device ACPI/DT information does not declare gpio pins, suspend/resume will not be available for these devices. This is based on Goodix datasheets for GT911 and GT9271 and on Goodix driver gt9xx.c for Android (publicly available in Android kernel trees for various devices). Signed-off-by: Octavian Purdila Signed-off-by: Irina Tirdea Tested-by: Bastien Nocera Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/goodix.c | 103 +++++++++++++++++++++++++++++++++++-- 1 file changed, 98 insertions(+), 5 deletions(-) commit 68caf85881cd842b59d5e2124a236ecce0389a73 Author: Irina Tirdea Date: Thu Dec 17 16:05:42 2015 -0800 Input: goodix - write configuration data to device Goodix devices can be configured by writing custom data to the device at init. The configuration data is read with request_firmware from "goodix__cfg.bin", where is the product id read from the device (e.g.: goodix_911_cfg.bin for Goodix GT911, goodix_9271_cfg.bin for GT9271). The configuration information has a specific format described in the Goodix datasheet. It includes X/Y resolution, maximum supported touch points, interrupt flags, various sensitivity factors and settings for advanced features (like gesture recognition). Before writing the firmware, it is necessary to reset the device. If the device ACPI/DT information does not declare gpio pins (needed for reset), writing the firmware will not be available for these devices. This is based on Goodix datasheets for GT911 and GT9271 and on Goodix driver gt9xx.c for Android (publicly available in Android kernel trees for various devices). Signed-off-by: Octavian Purdila Signed-off-by: Irina Tirdea Tested-by: Bastien Nocera Tested-by: Aleksei Mamlin Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/goodix.c | 244 ++++++++++++++++++++++++++++++++----- 1 file changed, 212 insertions(+), 32 deletions(-) commit ec6e1b4082d9f5b0858ce33169a1c22a27a982f6 Author: Irina Tirdea Date: Thu Dec 17 15:57:34 2015 -0800 Input: goodix - reset device at init After power on, it is recommended that the driver resets the device. The reset procedure timing is described in the datasheet and is used at device init (before writing device configuration) and for power management. It is a sequence of setting the interrupt and reset pins high/low at specific timing intervals. This procedure also includes setting the slave address to the one specified in the ACPI/device tree. This is based on Goodix datasheets for GT911 and GT9271 and on Goodix driver gt9xx.c for Android (publicly available in Android kernel trees for various devices). For reset the driver needs to control the interrupt and reset gpio pins (configured through ACPI/device tree). For devices that do not have the gpio pins properly declared, the functionality depending on these pins will not be available, but the device can still be used with basic functionality. For both device tree and ACPI, the interrupt gpio pin configuration is read from the "irq-gpios" property and the reset pin configuration is read from the "reset-gpios" property. For ACPI 5.1, named properties can be specified using the _DSD section. This functionality will not be available for devices that use indexed gpio pins declared in the _CRS section (we need to provide backward compatibility with devices that do not support using the interrupt gpio pin as output). For ACPI, the pins can be specified using ACPI 5.1: Device (STAC) { Name (_HID, "GDIX1001") ... Method (_CRS, 0, Serialized) { Name (RBUF, ResourceTemplate () { I2cSerialBus (0x0014, ControllerInitiated, 0x00061A80, AddressingMode7Bit, "\\I2C0", 0x00, ResourceConsumer, , ) GpioInt (Edge, ActiveHigh, Exclusive, PullNone, 0x0000, "\\I2C0", 0x00, ResourceConsumer, , ) { // Pin list 0 } GpioIo (Exclusive, PullDown, 0x0000, 0x0000, IoRestrictionOutputOnly, "\\I2C0", 0x00, ResourceConsumer, , ) { 1 } }) Return (RBUF) } Name (_DSD, Package () { ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), Package () { Package (2) {"irq-gpios", Package() {^STAC, 0, 0, 0 }}, Package (2) {"reset-gpios", Package() {^STAC, 1, 0, 0 }}, ... } } Signed-off-by: Octavian Purdila Signed-off-by: Irina Tirdea Acked-by: Rob Herring Acked-by: Bastien Nocera Tested-by: Bastien Nocera Tested-by: Aleksei Mamlin Signed-off-by: Dmitry Torokhov .../bindings/input/touchscreen/goodix.txt | 9 ++ drivers/input/touchscreen/Kconfig | 1 + drivers/input/touchscreen/goodix.c | 119 +++++++++++++++++++++ 3 files changed, 129 insertions(+) commit a779fbc6c931007559b74fd74c2dc7b1c25bac33 Author: Irina Tirdea Date: Thu Dec 17 15:55:21 2015 -0800 Input: goodix - use actual config length for each device type Each of the Goodix devices supported by this driver has a fixed size for the configuration information registers. The size varies depending on the device and is specified in the datasheet. Use the proper configuration length as specified in the datasheet for each device model, so we do not read more than the actual size of the configuration registers. Signed-off-by: Irina Tirdea Acked-by: Bastien Nocera Tested-by: Bastien Nocera Tested-by: Aleksei Mamlin Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/goodix.c | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) commit 2eb2b5066197eab00c55dcd1132f17836e4975b2 Author: Ulrich Hecht Date: Wed Dec 16 11:34:21 2015 +0100 arm64: renesas: r8a7795: fix SATA clock assignment SATA clock is 815, not 915. Signed-off-by: Ulrich Hecht Acked-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm64/boot/dts/renesas/r8a7795.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 52ee9fb34aa4b839b784e2e224a7c525cc51c955 Author: Kouei Abe Date: Mon Dec 14 16:42:35 2015 +0100 arm64: dts: salvator-x: Enable SATA controller This enables SATA device in r8a7795-salvator-x.dts. Signed-off-by: Kouei Abe Signed-off-by: Simon Horman arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 4 ++++ 1 file changed, 4 insertions(+) commit 4c13472b8cc4a326041584b88c534663bb829102 Author: Kouei Abe Date: Mon Dec 14 16:42:34 2015 +0100 arm64: dts: r8a7795: Add SATA controller node This adds SATA device node to r8a7795.dtsi. Signed-off-by: Kouei Abe [uli: adjusted for new MSTP clock scheme] Signed-off-by: Ulrich Hecht Signed-off-by: Simon Horman arch/arm64/boot/dts/renesas/r8a7795.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) commit 9036a73087bc71d83f4efe4ed3d3b9548b1a0012 Author: Wolfram Sang Date: Tue Dec 8 10:37:53 2015 +0100 arm64: renesas: r8a7795: add internal delay for i2c IPs Signed-off-by: Wolfram Sang Signed-off-by: Simon Horman arch/arm64/boot/dts/renesas/r8a7795.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) commit 187623569c4ccb26cd20cb68f56bcea2d00ee947 Author: Geert Uytterhoeven Date: Wed Dec 9 10:22:42 2015 +0100 arm64: renesas: salvator-x: Add board part number to DT bindings Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman Documentation/devicetree/bindings/arm/shmobile.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a6b6b478459be0c5614626ba6ac95df05a7fc5e9 Author: Yoshifumi Hosoya Date: Fri Dec 4 14:38:53 2015 +0100 arm64: dts: r8a7795: Add pmu device nodes Enabling the performance monitor unit on r8a7795. Signed-off-by: Masaru Nagai Signed-off-by: Yoshifumi Hosoya Signed-off-by: Dirk Behme Signed-off-by: Simon Horman arch/arm64/boot/dts/renesas/r8a7795.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 0ed1a79ed0c17631fb41d336a4eddb9bbd299b64 Author: Gaku Inami Date: Fri Dec 4 14:38:52 2015 +0100 arm64: dts: r8a7795: Add Cortex-A57 CPU cores Add Cortex-A57 CPU cores to r8a7795 SoC for a total of 4 x Cortex-A57. Signed-off-by: Gaku Inami Signed-off-by: Takeshi Kihara Sigend-off-by: Dirk Behme Signed-off-by: Simon Horman arch/arm64/boot/dts/renesas/r8a7795.dtsi | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) commit 12e5155783bfdd50d93f9868b2209db190df8b68 Author: Gaku Inami Date: Fri Dec 4 14:38:51 2015 +0100 arm64: dts: r8a7795: Add PSCI node Add PSCI node for r8a7795 SoC, and cpu node enable-method property is set to "psci". Signed-off-by: Gaku Inami Signed-off-by: Takeshi Kihara Signed-off-by: Dirk Behme Signed-off-by: Simon Horman arch/arm64/boot/dts/renesas/r8a7795.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) commit d3643e1669e59c374e78e3af9d93def5ac1f81bc Author: Kuninori Morimoto Date: Tue Dec 1 05:36:57 2015 +0000 arm64: defconfig: add CS2000 support Signed-off-by: Kuninori Morimoto Signed-off-by: Simon Horman arch/arm64/configs/defconfig | 1 + 1 file changed, 1 insertion(+) commit f01c5e652ca949722a7fe4cfdecd73e8026971d2 Merge: 40e3be3 190e203 Author: Dmitry Torokhov Date: Thu Dec 17 15:25:10 2015 -0800 Merge branch 'psmouse-passthrough' into next Bring in changes to limit number of protocols we try on pass-though PS/2 ports so that probe ocmpletes faster. commit 190e2031e2db542094659cfa55bfc28545458df5 Author: Dmitry Torokhov Date: Wed Dec 2 11:02:39 2015 -0800 Input: psmouse - rename ps2pp_init() to ps2pp_detect() This makes Logitech PS2++ protocol implementation consistent with the naming in other protocols. Also mark the stub as "static inline" Reviewed-by: Hans de Goede Tested-by: Marcin Sochacki Tested-by: Till Signed-off-by: Dmitry Torokhov drivers/input/mouse/logips2pp.c | 2 +- drivers/input/mouse/logips2pp.h | 4 ++-- drivers/input/mouse/psmouse-base.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit ec6184b1c717b8768122e25fe6d312f609cc1bb4 Author: Dmitry Torokhov Date: Tue Nov 24 12:58:46 2015 -0800 Input: psmouse - limit protocols that we try on passthrough ports PS/2 protocol is slow, and using it with pass-through port (where we encapsulate PS/2 into PS/2) is slower yet so it takes quite a bit of time to do full protocol discovery for device attached to a pass-through port. However, so far we have not see anything but trackpoints or basic PS/2 mice on pass-through ports, so let's limit protocols that we probe there to Trackpoint, IntelliMouse Explorer, IntelliMouse, and bare PS/2 protocol, and avoid other extended protocols, such as Synaptics, ALPS, etc. Reviewed-by: Hans de Goede Reviewed-by: Pali Rohár Tested-by: Marcin Sochacki Tested-by: Till Signed-off-by: Dmitry Torokhov drivers/input/mouse/psmouse-base.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit c378b5119eb0ea25bfd3348a06b51fca654d9903 Author: Dmitry Torokhov Date: Fri Nov 27 21:17:40 2015 -0800 Input: psmouse - factor out common protocol probing code In preparation of limiting protocols that we try on pass-through ports, let's rework initialization code and factor common code into psmouse_try_protocol() that accepts protocol type (instead of detec() function pointer) and can, for most protocols, perform both detection and initialization. Note that this removes option of forcing Lifebook protocol on devices that are not recognized by lifebook_detect() as having the hardware, but I do not recall anyone using this option. Reviewed-by: Hans de Goede Tested-by: Marcin Sochacki Tested-by: Till Signed-off-by: Dmitry Torokhov drivers/input/mouse/psmouse-base.c | 164 +++++++++++++++++++------------------ 1 file changed, 86 insertions(+), 78 deletions(-) commit 5fa75cfe23633edf2fd26abe4a08f22ced4415d1 Author: Dmitry Torokhov Date: Fri Nov 27 21:08:28 2015 -0800 Input: psmouse - move protocol descriptions around We move protocol descriptions and psmouse_find_by_type() and pmouse_find_by_name() so that we can use them without forward declarations in the subsequent patches. Reviewed-by: Hans de Goede Reviewed-by: Pali Rohár Tested-by: Marcin Sochacki Tested-by: Till Signed-off-by: Dmitry Torokhov drivers/input/mouse/psmouse-base.c | 379 ++++++++++++++++++------------------- 1 file changed, 189 insertions(+), 190 deletions(-) commit 24a06f3e3ab640490f49c8e8812d9550d6f15e92 Author: Dmitry Torokhov Date: Wed Dec 2 16:50:42 2015 -0800 Input: psmouse - clean up Cypress probe When Cypress protocol support is disabled cypress_init() is a stub that always returns -ENOSYS, so there is not point in testing for CONFIG_MOUSE_PS2_CYPRESS after we decided that we are dealing with a Cypress device. Also, we should only be calling cypress_detect() when set_properties argument is "true", like with other protocols. There is a slight change in behavior to make follow-up patches more uniform: when we detect Cypress but its initialization fails, instead of immediately returning PSMOUSE_PS2 protocol we now continue trying IntelliMouse [Explorer]. Given that Cypress devices only have issue with Sentelic probes probing Imtellimouse should be safe. Reviewed-by: Hans de Goede Tested-by: Marcin Sochacki Tested-by: Till Signed-off-by: Dmitry Torokhov drivers/input/mouse/psmouse-base.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) commit 2b6f39e9ee7b6a9fa98f6047b05733053876fdbe Author: Dmitry Torokhov Date: Fri Nov 27 20:52:36 2015 -0800 Input: psmouse - rearrange Focaltech init code The fact that we were calling focaltech_init() even when Focaltech support is disabled was confusing. Rearrange the code so that if support is disabled we continue to fall through the rest of protocol probing code until we get to full reset that Focaltech devices need to work properly. Also, replace focaltech_init() with a stub now that it is only called when protocol is enabled. Reviewed-by: Hans de Goede Reviewed-by: Pali Rohár Tested-by: Marcin Sochacki Tested-by: Till Signed-off-by: Dmitry Torokhov drivers/input/mouse/focaltech.c | 22 ++++++---------------- drivers/input/mouse/focaltech.h | 8 ++++++++ drivers/input/mouse/psmouse-base.c | 23 ++++++++++++----------- 3 files changed, 26 insertions(+), 27 deletions(-) commit ad5307715b2d0afed511b2cad9aed530bbbb236b Author: Dmitry Torokhov Date: Fri Nov 27 20:47:08 2015 -0800 Input: psmouse - fix comment style The module was using non-standard comment style with comment blocks often starting at the very beginning of a line instead of being aligned with the code. Let's switch to standard formatting. Reviewed-by: Hans de Goede Reviewed-by: Pali Rohár Tested-by: Marcin Sochacki Tested-by: Till Signed-off-by: Dmitry Torokhov drivers/input/mouse/psmouse-base.c | 279 +++++++++++++++++-------------------- 1 file changed, 124 insertions(+), 155 deletions(-) commit 0a88d60784440da1ef8f72156cb9547aeebf56cf Author: Dmitry Torokhov Date: Fri Nov 27 20:29:22 2015 -0800 Input: psmouse - use switch statement in psmouse_process_byte() Instead of a series mostly exclusive "if" statements testing protocol type of the mouse let's use "switch" statement. Reviewed-by: Hans de Goede Reviewed-by: Pali Rohár Tested-by: Marcin Sochacki Tested-by: Till Signed-off-by: Dmitry Torokhov drivers/input/mouse/psmouse-base.c | 65 ++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 34 deletions(-) commit 5d9374cf5f66ebe38007bccf0b4adc14f0013663 Author: Alexander E. Patrakov Date: Mon Dec 14 17:42:26 2015 +0500 HID: input: ignore the battery in OKLICK Laser BTmouse This mouse, when asked about the battery, ceases to report movements and clicks. So just don't ask. Signed-off-by: Alexander E. Patrakov Signed-off-by: Jiri Kosina drivers/hid/hid-input.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) commit 0402b6b77a35205072087d7f774e4c2b2797f8c3 Author: Jason Gerecke Date: Wed Dec 16 13:37:36 2015 -0800 HID: wacom: Fix pad button range for CINTIQ_COMPANION_2 Commit c7f0522 incorrectly constructs the 'buttons' variable for the CINTIQ_COMPANION_2 case. The high nybble of data[2] is shifted four bits too far, leaving the bits associated with BTN_7 through BTN_A unset. Signed-off-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_wac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit aaae03e4f7f0c641a258dde855ab677c9b58b155 Author: Jason Gerecke Date: Wed Dec 16 13:37:35 2015 -0800 HID: wacom: Fix touchring value reporting Commit c7f0522 reports incorrect touchring values to userspace. This is due to its incorrect handling of the 'touched' bit present in the 'ring1' and 'ring2' variables. Instead of using this bit when determining if a value should be sent, the ABS_WHEEL and ABS_INPUT check (different?!) portions of the position bits. Furthermore, the full values of 'ring1' and 'ring2' are reported to userspace, despite the 'touched' flag needing to be trimmed beforehand. This commit addresses both issues. Signed-off-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_wac.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 03a0dc546be3fa6091214bd2c05d678d3e8d67df Author: Jason Gerecke Date: Wed Dec 16 13:37:34 2015 -0800 HID: wacom: Report 'strip2' values in ABS_RY Commit c7f0522 accidentally used ABS_RX for reporting both 'strip1' and 'strip2', when the latter should actually be reported through ABS_RY. Signed-off-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_wac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f73d08d073a4bcb8bb1bd88444f07f39c84400da Author: Jason Gerecke Date: Wed Dec 16 13:37:33 2015 -0800 HID: wacom: Limit touchstrip data to 13 bits Commit c7f0522 uses sixteen bits of data in the construction of 'strip1' and 'strip2'. This can cause problems in some cases, however, since some tablets store flags in the MSB of data[2] and data[4] that should not be included in these values. This restores the 0x1f mask that used prior to c7f0522. Signed-off-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_wac.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8f9cfdd359478ea70da0144b0cb407a4734f14cd Author: Dan Carpenter Date: Wed Dec 9 13:22:05 2015 +0300 HID: wacom: bitwise vs logical ORs Smatch complains that these should probably be bitwise ORs instead of logical. It doesn't matter for "prox" but it makes a difference for "strip1" and "strip2". Fixes: c7f0522a1ad1 ('HID: wacom: Slim down wacom_intuos_pad processing') Signed-off-by: Dan Carpenter Reviewed-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_wac.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit d0b6342df0201c9a53629e59b67513fa72d82c58 Merge: 7072280 c4aa193 Author: Arnd Bergmann Date: Thu Dec 17 22:33:09 2015 +0100 Merge branch 'fixes' into next/multiplatform The 'fixes' branch contains d5d4fdd86f57 ("irqchip/versatile-fpga: Fix PCI IRQ mapping on Versatile PB") that is required for booting the versatile platform prior to the rework in this branch, but including both causes a build-time error. I'm doing an evil merge here to pull in the fixes branch so we have that commit included but at the same time revert the trivial change. This gives us a bisectable history. * fixes: (22 commits) fsl-ifc: add missing include on ARM64 ls2080a/dts: Add little endian property for GPIO IP block dt-bindings: define little-endian property for QorIQ GPIO ARM64: dts: ls2080a: fix eSDHC endianness ARM: dts: vf610: use reset values for L2 cache latencies ARM: pxa: use PWM lookup table for all machines ARM: dts: berlin: add 2nd clock for BG2Q sdhci0 and sdhci1 ARM: dts: berlin: correct BG2Q's sdhci2 2nd clock ARM: dts: am4372: fix clock source for arm twd and global timers ARM: at91: fix pinctrl driver selection ARM: at91/dt: add always-on to 1.8V regulator ARM: dts: vf610: fix clock definition for SAI2 ARM: imx: clk-vf610: fix SAI clock tree ARM: ixp4xx: fix read{b,w,l} return types irqchip/versatile-fpga: Fix PCI IRQ mapping on Versatile PB ARM: OMAP2+: enable REGULATOR_FIXED_VOLTAGE ARM: dts: add dm816x missing spi DT dma handles ARM: dts: add dm816x missing #mbox-cells cpufreq: s3c24xx: Do not mark s3c2410_plls_add as __init bus: sunxi-rsb: unlock on error in sunxi_rsb_read() ... commit 3268e5cb494d8778a5a67a9fa2b1bdb0243b77ad Author: Eran Ben Elisha Date: Thu Dec 17 16:11:55 2015 +0200 team: Advertise tunneling offload features When the underlying device supports offloads encapulated traffic, we need to reflect that through the hw_enc_features field of the team net-device. This will cause the xmit path in the core networking stack to provide team with encapsulated GSO frames to offload into the HW etc. Using this over Mellanox ConnectX3-pro (mlx4 driver) card that supports VXLAN offloads we got 36.0 Gbits/sec using eight iperf streams. Signed-off-by: Eran Ben Elisha Signed-off-by: Jack Morgenstein Reviewed-by: Or Gerlitz Acked-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/team/team.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 34a55d5e858e81a20d33fd9490149d6a1058be0c Author: Bjørn Mork Date: Thu Dec 17 12:44:04 2015 +0100 net: qmi_wwan: ignore bogus CDC Union descriptors The CDC descriptors found on these vendor specific functions should not be considered authoritative. They seem to be ignored by drivers for other systems, and the quality is therefore low. One device (1e0e:9001) has been reported to have such a bogus union descriptor on the QMI function, making it fail probing even if the device id was dynamically added. The report was not complete enough to allow adding a device entry for this modem. But this should at least fix the dynamic id probing problem. Reported-by: Kanerva Topi Signed-off-by: Bjørn Mork Signed-off-by: David S. Miller drivers/net/usb/qmi_wwan.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 270c499f0993a6b3a591eda6a5b96e873b1d84fa Author: Gregory CLEMENT Date: Thu Dec 17 10:51:04 2015 +0100 net/macb: Update device tree binding for resetting PHY using GPIO Instead of being at the MAC level the reset gpio preperty is moved at the PHY child node level. It is still managed by the MAC, but from the point of view of the binding it make more sense to be part of the PHY node. This commit also fixes a build errors if GPIOLIB is not selected. Signed-off-by: Gregory CLEMENT Signed-off-by: David S. Miller Documentation/devicetree/bindings/net/macb.txt | 8 ++++++-- drivers/net/ethernet/cadence/macb.c | 15 ++++++++++++--- 2 files changed, 18 insertions(+), 5 deletions(-) commit 08f411d6a42dfa32842ef36e0e9743c34a7c942f Merge: 301c141 749cb5f Author: David S. Miller Date: Thu Dec 17 15:51:05 2015 -0500 Merge branch 'cxgb4-l2-table-enhancements' Hariprasad Shenai says: ==================== Few l2 table related enhancements for cxgb4 This series adds a new API to allocate and update l2t entry, replaces arpq_head/arpq_tail with double skb double linked list. Use t4_mgmt_tx() to send control packets of l2t write request. Use symbolic constants while calculating vlan priority. 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. Thanks V2: Remove unnecessary MAS operation while calculating vlan prio in PATCH 1/4 ("cxgb4: Use symbolic constant for VLAN priority calculation") based on review comment by David Miller ==================== Signed-off-by: David S. Miller commit 749cb5fe48bb29f55f2cdde4d76183340e11547e Author: Hariprasad Shenai Date: Thu Dec 17 13:45:10 2015 +0530 cxgb4: Replace arpq_head/arpq_tail with SKB double link-list code Based on original work by Michael Werner Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/l2t.c | 61 ++++++++++++-------------------- drivers/net/ethernet/chelsio/cxgb4/l2t.h | 3 +- 2 files changed, 24 insertions(+), 40 deletions(-) commit 9baeb9d7d8f61f7786416e4f001d738750d2aa24 Author: Hariprasad Shenai Date: Thu Dec 17 13:45:09 2015 +0530 cxgb4: Use t4_mgmt_tx() API for sending write l2t request ctrl packets. Based on original work by Michael Werner Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/l2t.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit f7502659cec8f2165805e967e113c0894b931181 Author: Hariprasad Shenai Date: Thu Dec 17 13:45:08 2015 +0530 cxgb4: Add API to alloc l2t entry; also update existing ones Based on original work by Kumar Sanghvi Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 10 +- drivers/net/ethernet/chelsio/cxgb4/l2t.c | 125 +++++++++++++++++++++--- drivers/net/ethernet/chelsio/cxgb4/l2t.h | 7 +- 3 files changed, 117 insertions(+), 25 deletions(-) commit e41e282428ee897b8817049e6ee0b7d5c9caf005 Author: Hariprasad Shenai Date: Thu Dec 17 13:45:07 2015 +0530 cxgb4: Use symbolic constant for VLAN priority calculation Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/l2t.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 18d03e8c25f173f4107a40d0b8c24defb6ed69f3 Author: Nikolay Borisov Date: Thu Dec 17 18:03:35 2015 +0200 dm thin: fix race condition when destroying thin pool workqueue When a thin pool is being destroyed delayed work items are cancelled using cancel_delayed_work(), which doesn't guarantee that on return the delayed item isn't running. This can cause the work item to requeue itself on an already destroyed workqueue. Fix this by using cancel_delayed_work_sync() which guarantees that on return the work item is not running anymore. Fixes: 905e51b39a555 ("dm thin: commit outstanding data every second") Fixes: 85ad643b7e7e5 ("dm thin: add timeout to stop out-of-data-space mode holding IO forever") Signed-off-by: Nikolay Borisov Signed-off-by: Mike Snitzer Cc: stable@vger.kernel.org drivers/md/dm-thin.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 301c141d6a5ddacb8b2310a87a7e8fe997d17a39 Author: Jakub Kicinski Date: Wed Dec 16 19:08:52 2015 +0000 nfp: clear ring delayed kick counters We need to clear delayed kick counters when we free rings otherwise after ndo_close()/ndo_open() we could kick HW by more entries than actually written to rings. Signed-off-by: Jakub Kicinski Reviewed-by: Rolf Neugebauer Signed-off-by: David S. Miller drivers/net/ethernet/netronome/nfp/nfp_net_common.c | 2 ++ 1 file changed, 2 insertions(+) commit 1bd4978a88ac2589f3105f599b1d404a312fb7f6 Author: Eric Dumazet Date: Wed Dec 16 08:57:37 2015 -0800 tun: honor IFF_UP in tun_get_user() If a tun interface is turned down, we should not allow packet injection into the kernel. Kernel does not send packets to the tun already. TUNATTACHFILTER can not be used as only tun_net_xmit() is taking care of it. Reported-by: Curt Wohlgemuth Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller drivers/net/tun.c | 3 +++ 1 file changed, 3 insertions(+) commit 70f6d82ec73c3ae2d3adc6853c5bebcd73610097 Author: Omar Sandoval Date: Tue Sep 29 20:50:38 2015 -0700 Btrfs: add free space tree mount option Now we can finally hook up everything so we can actually use free space tree. The free space tree is enabled by passing the space_cache=v2 mount option. On the first mount with the this option set, the free space tree will be created and the FREE_SPACE_TREE read-only compat bit will be set. Any time the filesystem is mounted from then on, we must use the free space tree. The clear_cache option will also clear the free space tree. Signed-off-by: Omar Sandoval Signed-off-by: Chris Mason fs/btrfs/ctree.h | 7 ++++++- fs/btrfs/disk-io.c | 38 ++++++++++++++++++++++++++++++++++++++ fs/btrfs/super.c | 53 ++++++++++++++++++++++++++++++++++++++++++++--------- 3 files changed, 88 insertions(+), 10 deletions(-) commit 1e144fb8f4a4d6d6d88c58f87e4366e3cd02ab72 Author: Omar Sandoval Date: Tue Sep 29 20:50:37 2015 -0700 Btrfs: wire up the free space tree to the extent tree The free space tree is updated in tandem with the extent tree. There are only a handful of places where we need to hook in: 1. Block group creation 2. Block group deletion 3. Delayed refs (extent creation and deletion) 4. Block group caching Signed-off-by: Omar Sandoval Signed-off-by: Chris Mason fs/btrfs/extent-tree.c | 36 +++++++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) commit 7c55ee0c4afba4434d973117234577ae6ff77a1c Author: Omar Sandoval Date: Tue Sep 29 20:50:36 2015 -0700 Btrfs: add free space tree sanity tests This tests the operations on the free space tree trying to excercise all of the main cases for both formats. Between this and xfstests, the free space tree should have pretty good coverage. Signed-off-by: Omar Sandoval Signed-off-by: Chris Mason fs/btrfs/Makefile | 3 +- fs/btrfs/super.c | 3 + fs/btrfs/tests/btrfs-tests.c | 52 +++ fs/btrfs/tests/btrfs-tests.h | 10 + fs/btrfs/tests/free-space-tests.c | 35 +- fs/btrfs/tests/free-space-tree-tests.c | 571 +++++++++++++++++++++++++++++++++ fs/btrfs/tests/qgroup-tests.c | 20 +- 7 files changed, 646 insertions(+), 48 deletions(-) commit a5ed91828518ab076209266c2bc510adabd078df Author: Omar Sandoval Date: Tue Sep 29 20:50:35 2015 -0700 Btrfs: implement the free space B-tree The free space cache has turned out to be a scalability bottleneck on large, busy filesystems. When the cache for a lot of block groups needs to be written out, we can get extremely long commit times; if this happens in the critical section, things are especially bad because we block new transactions from happening. The main problem with the free space cache is that it has to be written out in its entirety and is managed in an ad hoc fashion. Using a B-tree to store free space fixes this: updates can be done as needed and we get all of the benefits of using a B-tree: checksumming, RAID handling, well-understood behavior. With the free space tree, we get commit times that are about the same as the no cache case with load times slower than the free space cache case but still much faster than the no cache case. Free space is represented with extents until it becomes more space-efficient to use bitmaps, giving us similar space overhead to the free space cache. The operations on the free space tree are: adding and removing free space, handling the creation and deletion of block groups, and loading the free space for a block group. We can also create the free space tree by walking the extent tree and clear the free space tree. Signed-off-by: Omar Sandoval Signed-off-by: Chris Mason fs/btrfs/Makefile | 2 +- fs/btrfs/ctree.h | 27 +- fs/btrfs/extent-tree.c | 5 +- fs/btrfs/free-space-tree.c | 1584 ++++++++++++++++++++++++++++++++++++++++++++ fs/btrfs/free-space-tree.h | 72 ++ 5 files changed, 1686 insertions(+), 4 deletions(-) commit 208acb8c72d7ace6b672b105502dca0bcb050162 Author: Omar Sandoval Date: Tue Sep 29 20:50:34 2015 -0700 Btrfs: introduce the free space B-tree on-disk format The on-disk format for the free space tree is straightforward. Each block group is represented in the free space tree by a free space info item that stores accounting information: whether the free space for this block group is stored as bitmaps or extents and how many extents of free space exist for this block group (regardless of which format is being used in the tree). Extents are (start, FREE_SPACE_EXTENT, length) keys with no corresponding item, and bitmaps instead have the FREE_SPACE_BITMAP type and have a bitmap item attached, which is just an array of bytes. Reviewed-by: Josef Bacik Signed-off-by: Omar Sandoval Signed-off-by: Chris Mason fs/btrfs/ctree.h | 38 ++++++++++++++++++++++++++++++++++++++ include/trace/events/btrfs.h | 3 ++- 2 files changed, 40 insertions(+), 1 deletion(-) commit 73fa48b674e819098c3bafc47618d0e2868191e5 Author: Omar Sandoval Date: Tue Sep 29 20:50:33 2015 -0700 Btrfs: refactor caching_thread() We're also going to load the free space tree from caching_thread(), so we should refactor some of the common code. Signed-off-by: Omar Sandoval Signed-off-by: Chris Mason fs/btrfs/ctree.h | 3 +++ fs/btrfs/extent-tree.c | 59 ++++++++++++++++++++++++++++---------------------- 2 files changed, 36 insertions(+), 26 deletions(-) commit 1abfbcdf56d9485f050149bc4968c1609f9a0773 Author: Omar Sandoval Date: Tue Sep 29 20:50:32 2015 -0700 Btrfs: add helpers for read-only compat bits We're finally going to add one of these for the free space tree, so let's add the same nice helpers that we have for the incompat bits. While we're add it, also add helpers to clear the bits. Reviewed-by: Josef Bacik Signed-off-by: Omar Sandoval Signed-off-by: Chris Mason fs/btrfs/ctree.h | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) commit 0f3312295d3ce1d82392244236a52b3b663480ef Author: Omar Sandoval Date: Tue Sep 29 20:50:31 2015 -0700 Btrfs: add extent buffer bitmap sanity tests Sanity test the extent buffer bitmap operations (test, set, and clear) against the equivalent standard kernel operations. Signed-off-by: Omar Sandoval Signed-off-by: Chris Mason fs/btrfs/extent_io.c | 34 ++++++---- fs/btrfs/extent_io.h | 4 +- fs/btrfs/tests/extent-io-tests.c | 138 ++++++++++++++++++++++++++++++++++++++- 3 files changed, 160 insertions(+), 16 deletions(-) commit 3e1e8bb770dba29645b302c5499ffcb8e3906712 Author: Omar Sandoval Date: Tue Sep 29 20:50:30 2015 -0700 Btrfs: add extent buffer bitmap operations These are going to be used for the free space tree bitmap items. Signed-off-by: Omar Sandoval Signed-off-by: Chris Mason fs/btrfs/extent_io.c | 149 +++++++++++++++++++++++++++++++++++++++++++++++++++ fs/btrfs/extent_io.h | 6 +++ 2 files changed, 155 insertions(+) commit 715f504b118998c41a2079a17e16bf5a8a114885 Author: Hannes Frederic Sowa Date: Wed Dec 16 17:22:47 2015 +0100 ipv6: add IPV6_HDRINCL option for raw sockets Same as in Windows, we miss IPV6_HDRINCL for SOL_IPV6 and SOL_RAW. The SOL_IP/IP_HDRINCL is not available for IPv6 sockets. Signed-off-by: Hannes Frederic Sowa Signed-off-by: David S. Miller include/uapi/linux/in6.h | 1 + net/ipv6/raw.c | 20 ++++++++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) commit 32bc201e1974976b7d3fea9a9b17bb7392ca6394 Author: Xin Long Date: Wed Dec 16 17:50:11 2015 +0800 ipv6: allow routes to be configured with expire values Add the support for adding expire value to routes, requested by Tom Gundersen for systemd-networkd, and NetworkManager wants it too. implement it by adding the new RTNETLINK attribute RTA_EXPIRES. Signed-off-by: Xin Long Acked-by: Hannes Frederic Sowa Signed-off-by: David S. Miller include/uapi/linux/rtnetlink.h | 1 + net/ipv6/route.c | 10 ++++++++++ 2 files changed, 11 insertions(+) commit bbeaa59598cae12626c9c42e91821e3abd5b87f0 Author: Andy Gross Date: Thu Dec 10 21:07:03 2015 -0600 MAINTAINERS: Change QCOM entries This patch changes the email address for Andy Gross and David Brown and drops Kumar Gala. In addition, it changes the location of the repository Signed-off-by: Andy Gross Signed-off-by: Andy Gross Acked-by: David Brown Acked-by: Kumar Gala MAINTAINERS | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 5645e785cea2f33acdc5e5cee62b3ce8a00f1169 Author: Dan Carpenter Date: Thu Dec 17 15:40:20 2015 +0300 drm/vc4: fix an error code "exec->exec_bo" is NULL at this point so this code returns success. We want to return -ENOMEM. Fixes: d5b1a78a772f ('drm/vc4: Add support for drawing 3D frames.') Signed-off-by: Dan Carpenter Reviewed-by: Eric Anholt drivers/gpu/drm/vc4/vc4_gem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7e5082fbc00cc157e57a70cdb6b9bbb21289afb1 Author: Dan Carpenter Date: Thu Dec 17 15:39:08 2015 +0300 drm/vc4: allocate enough memory in vc4_save_hang_state() "state" is smaller than "kernel_state" so we end up corrupting memory. Fixes: 214613656b51 ('drm/vc4: Add an interface for capturing the GPU state after a hang.') Signed-off-by: Dan Carpenter Reviewed-by: Eric Anholt drivers/gpu/drm/vc4/vc4_gem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 65c4777de54a39b2722a4b1ff3306d044014d511 Author: Dan Carpenter Date: Thu Dec 17 15:36:28 2015 +0300 drm/vc4: copy_to_user() returns the number of bytes remaining The copy_to/from_user() functions return the number of bytes remaining to be copied. We want to return error codes here. Also it's a bad idea to print an error message if a copy from user fails because users can use that to spam /var/log/messages which is annoying so I removed those. Fixes: 214613656b51 ('drm/vc4: Add an interface for capturing the GPU state after a hang.') Signed-off-by: Dan Carpenter Reviewed-by: Eric Anholt drivers/gpu/drm/vc4/vc4_gem.c | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) commit 54177ccfbe95fcf250a89508a705bfe4706e3b86 Author: Wolfram Sang Date: Thu Dec 17 13:32:36 2015 +0100 i2c: make i2c_parse_fw_timings() always visible This function used to be DT only, so it lived inside a CONFIG_OF block. Now it uses device attributes and must be moved outside of it. No further code changes, only one whitespace improvement. Reported-by: Jim Davis Signed-off-by: Wolfram Sang Reviewed-by: Mika Westerberg Signed-off-by: Wolfram Sang drivers/i2c/i2c-core.c | 104 ++++++++++++++++++++++++------------------------- 1 file changed, 52 insertions(+), 52 deletions(-) commit b7d518e6f4c6d8a0b66effe3bda22417b7dc1e04 Author: Wolfram Sang Date: Thu Dec 17 13:09:32 2015 +0100 i2c: emev: select I2C slave support Until we have proper support to make I2C slave support fully optional, select it to prevent build errors on randconfigs. Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang drivers/i2c/busses/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 89af4e05c21d68f22e07fe66940ea675615a49ed Author: Jiri Olsa Date: Thu Nov 5 15:41:02 2015 +0100 perf stat report: Allow to override aggr_mode Allowing to override record aggr_mode. It's possible to use perf stat like: $ perf stat report -A $ perf stat report --per-core $ perf stat report --per-socket To customize the recorded aggregate mode regardless what was used during the stat record command. Reported-by: Kan Liang Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1446734469-11352-19-git-send-email-jolsa@kernel.org [ Renamed 'stat' parameter to 'st' to fix 'already defined' build error with older distros (e.g. RHEL6.7) ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-stat.txt | 10 ++++++++++ tools/perf/builtin-stat.c | 17 +++++++++++++++++ 2 files changed, 27 insertions(+) commit fa6ea7817db3839b58d46649b7834320257e7702 Author: Jiri Olsa Date: Thu Nov 5 15:41:00 2015 +0100 perf stat report: Process event update events Adding processing of event update events, so perf stat report can store additional info for events - unit,scale,name. Committer note: Before: # perf stat record -e power/energy-cores/ -a ^C Performance counter stats for 'system wide': 77.41 Joules power/energy-cores/ 1.597176695 seconds time elapsed # perf stat report Performance counter stats for '/home/acme/bin/perf stat record -e power/energy-cores/ -a': 332,488,114,176 power/energy-cores/ 1.597176695 seconds time elapsed # After, using the same perf.data file generated in the "Before" case above: # perf stat report Performance counter stats for '/home/acme/bin/perf stat record -e power/energy-cores/ -a': 77.41 Joules power/energy-cores/ 1.597176695 seconds time elapsed # Reported-by: Kan Liang Signed-off-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1446734469-11352-17-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 1 + 1 file changed, 1 insertion(+) commit a56f9390aa9d9b1c782c3dbd5ca2c4245eb265fc Author: Jiri Olsa Date: Thu Nov 5 15:40:59 2015 +0100 perf stat report: Process stat and stat round events Adding processing of stat and stat round events. The stat data com in stat events, using generic function process_stat_round_event to store data under perf_evsel object. The stat-round events comes each interval or as last event in non interval mode. The function process_stat_round_event process stored data for each perf_evsel object and print it out. Committer note: After this patch: $ perf stat record usleep 1 Performance counter stats for 'usleep 1': 0.498381 task-clock (msec) # 0.571 CPUs utilized 2 context-switches # 0.004 M/sec 0 cpu-migrations # 0.000 K/sec 149 page-faults # 0.299 M/sec 1,271,635 cycles # 2.552 GHz 928,712 stalled-cycles-frontend # 73.03% frontend cycles idle 663,286 stalled-cycles-backend # 52.16% backend cycles idle 792,614 instructions # 0.62 insns per cycle # 1.17 stalled cycles per insn 136,850 branches # 274.589 M/sec branch-misses (0.00%) 0.000873419 seconds time elapsed $ $ perf stat report Performance counter stats for '/home/acme/bin/perf stat record usleep 1': 0.498381 task-clock (msec) # 0.571 CPUs utilized 2 context-switches # 0.004 M/sec 0 cpu-migrations # 0.000 K/sec 149 page-faults # 0.299 M/sec 1,271,635 cycles # 2.552 GHz 928,712 stalled-cycles-frontend # 73.03% frontend cycles idle 663,286 stalled-cycles-backend # 52.16% backend cycles idle 792,614 instructions # 0.62 insns per cycle # 1.17 stalled cycles per insn 136,850 branches # 274.589 M/sec branch-misses (0.00%) 0.000873419 seconds time elapsed $ Reported-by: Kan Liang Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1446734469-11352-16-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit 6edb78a2178fd85d07b1a7fbb3629be56b860224 Author: Jiri Olsa Date: Thu Nov 5 15:41:01 2015 +0100 perf stat report: Move csv_sep initialization before report command So we have csv_sep properly initialized before report command leg. Reported-by: Kan Liang Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1446734469-11352-18-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 68d702f7a1202dd39d9fa01b7bea92ba9e5785d9 Author: Jiri Olsa Date: Thu Nov 5 15:40:58 2015 +0100 perf stat report: Add support to initialize aggr_map from file Using perf.data's perf_env data to initialize aggregate config. Reported-by: Kan Liang Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1446734469-11352-15-git-send-email-jolsa@kernel.org [ s/stat/st/g, s/socket/socket_id/g to fix 'already defined' build error with older distros (e.g. RHEL6.7) ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 103 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) commit 62ba18ba938a8740ab18e02342b282d7378986f7 Author: Jiri Olsa Date: Thu Nov 5 15:40:57 2015 +0100 perf stat report: Process stat config event Adding processing of stat config event and initialize stat_config object. Reported-by: Kan Liang Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1446734469-11352-14-git-send-email-jolsa@kernel.org [ Renamed 'stat' parameter to 'st' to fix 'already defined' build error with older distros (e.g. RHEL6.7) ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 1975d36e14b3314d1d0c7a428946ec0c27fd6e95 Author: Jiri Olsa Date: Thu Nov 5 15:40:56 2015 +0100 perf stat report: Process cpu/threads maps Adding processing of cpu/threads maps. Configuring session's evlist with these maps. Reported-by: Kan Liang Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1446734469-11352-13-git-send-email-jolsa@kernel.org [ s/stat/st/g, s/time/tm/g parameters to fix 'already defined' build error with older distros (e.g. RHEL6.7) ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 66 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 64 insertions(+), 2 deletions(-) commit ba6039b6c8fcc24de7d6ab7b0bada4becaf84a2c Author: Jiri Olsa Date: Thu Nov 5 15:40:55 2015 +0100 perf stat report: Add report command Adding 'perf stat report' command support. ATM it only processes attr events and display nothing. Reported-by: Kan Liang Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1446734469-11352-12-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-stat.txt | 12 +++++++ tools/perf/builtin-stat.c | 61 +++++++++++++++++++++++++++++++--- 2 files changed, 69 insertions(+), 4 deletions(-) commit 7b60a7e3a687481553d2b6ec7e6390a6e82f1849 Author: Jiri Olsa Date: Thu Nov 5 15:40:54 2015 +0100 perf stat record: Synthesize event update events Synthesize other events stuff not carried within attr event - unit, scale, name. Reported-by: Kan Liang Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1446734469-11352-11-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) commit e9d6db8e8df42a38f79f264ab58c104e1678b12c Author: Jiri Olsa Date: Thu Nov 5 15:40:53 2015 +0100 perf stat record: Do not allow record with multiple runs mode We currently don't support storing multiple session in perf.data, so we can't allow -r option in stat record. $ perf stat -e cycles -r 2 record ls Cannot use -r option with perf stat record. Committer note: Before this patch we would a perf.data file such as: $ perf stat -e cycles -r 2 record ls Performance counter stats for 'ls' (2 runs): 3,935,236 cycles 0.002353261 seconds time elapsed ( +- 4.76% ) $ perf report -D | grep PERF_RECORD | grep ROUND 0xf0 [0]: failed to process type: 16 Error: failed to process sample $ Reported-by: Kan Liang Signed-off-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1446734469-11352-10-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 5 +++++ 1 file changed, 5 insertions(+) commit 7aad0c32bb6aaa39aab596264ddc49d44c8088f3 Author: Jiri Olsa Date: Thu Nov 5 15:40:52 2015 +0100 perf stat record: Write stat round events on record Writing stat round events on 'perf stat record' for each interval round. In non interval mode we store round event after the last stat event. Committer note: After the patch: $ perf report -D | grep PERF_RECORD | grep ROUND 0x852 [0x18]: PERF_RECORD_STAT_ROUND $ Reported-by: Kan Liang Signed-off-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1446734469-11352-9-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 5a6ea81b8f9ce2736759d256ac4d63be65751199 Author: Jiri Olsa Date: Thu Nov 5 15:40:51 2015 +0100 perf stat record: Write stat events on record Writing stat events on 'perf stat record' at the time we read counter values from kernel. Committer note: After the patch: $ perf stat record usleep 1 Performance counter stats for 'usleep 1': 0.598006 task-clock (msec) # 0.484 CPUs utilized 1 context-switches # 0.002 M/sec 0 cpu-migrations # 0.000 K/sec 52 page-faults # 0.087 M/sec 882,744 cycles # 1.476 GHz 581,416 stalled-cycles-frontend # 65.86% frontend cycles idle stalled-cycles-backend 636,479 instructions # 0.72 insns per cycle # 0.91 stalled cycles per insn 129,334 branches # 216.275 M/sec 7,512 branch-misses # 5.81% of all branches 0.001235157 seconds time elapsed $ oldperf evlist task-clock context-switches cpu-migrations page-faults cycles stalled-cycles-frontend stalled-cycles-backend instructions branches branch-misses $ oldperf report --stdio Error: The perf.data file has no samples! # To display the perf.data header info, please use --header/--header-only options. # $ perf report -D | grep PERF_RECORD 0x5b0 [0x28]: PERF_RECORD_THREAD_MAP nr: 1 thread: 5504 0x5d8 [0x12]: PERF_RECORD_CPU_MAP nr: 1 cpu: 65535 0x5ea [0x40]: PERF_RECORD_STAT_CONFIG 0x62a [0x30]: PERF_RECORD_STAT 0x65a [0x30]: PERF_RECORD_STAT 0x68a [0x30]: PERF_RECORD_STAT 0x6ba [0x30]: PERF_RECORD_STAT 0x6ea [0x30]: PERF_RECORD_STAT 0x71a [0x30]: PERF_RECORD_STAT 0x74a [0x30]: PERF_RECORD_STAT 0x77a [0x30]: PERF_RECORD_STAT 0x7aa [0x30]: PERF_RECORD_STAT -1 -1 0x7da [0x40]: PERF_RECORD_MMAP -1/0: [0xffffffff81000000(0x1f000000) @ 0xffffffff81000000]: x [kernel.kallsyms]_text $ Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1446734469-11352-8-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit f2e6a0a913b53f5af87c7e9a783ceae5bb4ae2c4 Author: Peter Ujfalusi Date: Fri Dec 11 14:50:20 2015 +0200 ARM: OMAP2+: Remove device creation for omap-pcm-audio The omap-pcm in ASoC is no longer a platform device. No need to create this device anymore. Signed-off-by: Peter Ujfalusi Signed-off-by: Tony Lindgren arch/arm/mach-omap2/devices.c | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) commit 65a52a212adde216a92656a1419ea4ec0a7781c7 Author: Peter Ujfalusi Date: Fri Dec 11 14:50:19 2015 +0200 ARM: OMAP1: Remove device creation for omap-pcm-audio The omap-pcm in ASoC is no longer a platform device. No need to create this device anymore. Signed-off-by: Peter Ujfalusi Signed-off-by: Tony Lindgren arch/arm/mach-omap1/devices.c | 19 ------------------- 1 file changed, 19 deletions(-) commit 485fa1261f780e8a13d0b25a24673947e6c50953 Author: Adam Ford Date: Wed Dec 16 15:34:15 2015 -0600 ARM: OMAP2+: LogicPD Torpedo + Wireless: Add Bluetooth Bindings for the WL1283 Bluetooth was removed from the shared transport driver in commit c0bd1b9e5895 ("Revert ti-st: add device tree support") Until we havea better binding, we need to use the platform data to initialize Bluetooth. Signed-off-by: Adam Ford Signed-off-by: Tony Lindgren arch/arm/mach-omap2/pdata-quirks.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) commit 60db554de357f62c2fe07eeeaae143099fa4b021 Author: Adam Ford Date: Wed Dec 16 21:18:29 2015 -0600 ARM: OMAP2+: LogicPD Torpedo: Add LCD Type 15 Support Add basic support for Logic PD type 15 display for older development kits. This uses GPIO for the backlight. Signed-off-by: Adam Ford Signed-off-by: Tony Lindgren arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts | 100 ++++++++++++++++++++++ 1 file changed, 100 insertions(+) commit 81bd0d56298f93af6ac233d8a7e8b29aa4b094b7 Author: Roman Kubiak Date: Thu Dec 17 13:24:35 2015 +0100 Smack: type confusion in smak sendmsg() handler Smack security handler for sendmsg() syscall is vulnerable to type confusion issue what can allow to privilege escalation into root or cause denial of service. A malicious attacker can create socket of one type for example AF_UNIX and pass is into sendmsg() function ensuring that this is AF_INET socket. Remedy Do not trust user supplied data. Proposed fix below. Signed-off-by: Roman Kubiak Signed-off-by: Mateusz Fruba Acked-by: Casey Schaufler security/smack/smack_lsm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 664c98d4e1c2ff60627d78d4c8ae81cd2df13783 Author: Jiri Olsa Date: Thu Nov 5 15:40:50 2015 +0100 perf stat record: Add pipe support for record command Allowing storing stat record data into pipe, so report tools (report/script) could read data directly from record. Committer note: Before this patch: $ perf stat record -o - usleep 1 | perf report -i - incompatible file format (rerun with -v to learn more) $ perf stat record -o - usleep 1 | perf script -i - incompatible file format (rerun with -v to learn more) $ ls -la perf.data ls: cannot access perf.data: No such file or directory $ After: $ perf stat record -o - usleep 1 | perf report -i - # To display the perf.data header info, please use # --header/--header-only options. # Error: The - file has no samples! $ perf stat record -o - usleep 1 | perf script -i - Display of symbols requested but neither sample IP nor sample address is selected. Hence, no addresses to convert to symbols. 0 [0x80]: failed to process type: 64 $ ls -la perf.data ls: cannot access perf.data: No such file or directory $ Signed-off-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1446734469-11352-7-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 39 ++++++++++++++++++++++++++++----------- 1 file changed, 28 insertions(+), 11 deletions(-) commit 2af4646d1041ee590b0032d2b0103fa81aa43174 Author: Jiri Olsa Date: Thu Nov 5 15:40:49 2015 +0100 perf stat record: Store events IDs in perf data file Store event IDs in evlist object so it get stored into perf.data file. Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1446734469-11352-6-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) commit 1c59612de0264790698e32eb0368daf3fcba4c65 Author: Jiri Olsa Date: Thu Nov 5 15:40:49 2015 +0100 perf evlist: Export id_add_fd() Will be used to storing the event IDs in evlist object so it get stored into perf.data file. Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1446734469-11352-6-git-send-email-jolsa@kernel.org [ Split from the patch storing the ids in the perf.data file ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evlist.c | 6 +++--- tools/perf/util/evlist.h | 3 +++ 2 files changed, 6 insertions(+), 3 deletions(-) commit 8b99b1a4e0b082ea6a277766982dac84483d4d3c Author: Jiri Olsa Date: Thu Nov 5 15:40:48 2015 +0100 perf stat record: Synthesize stat record data Synthesizing needed stat record data for report/script: - cpu/thread maps - stat config Committer note: New records generated on a perf.data file with this patch: $ perf report -D | grep PERF_RECORD_ 0x568 [0x28]: PERF_RECORD_THREAD_MAP nr: 1 thread: 29097 0x590 [0x12]: PERF_RECORD_CPU_MAP nr: 1 cpu: 65535 0x5a2 [0x40]: PERF_RECORD_STAT_CONFIG $ Signed-off-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1446734469-11352-5-git-send-email-jolsa@kernel.org [ Adjusted wrt kernel PERF_RECORD_MMAP added when introducing 'perf stat record' ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 56 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 43 insertions(+), 13 deletions(-) commit 3ba78bd00e508bf46a6aa2b8e296dc8287ea4c29 Author: Jiri Olsa Date: Thu Nov 5 15:40:47 2015 +0100 perf stat record: Initialize record features Disabling all non stat related features. Also as we now enable STAT feature in the data file, adding code to instruct session open to skip sample type checking for stat data files. Signed-off-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1446734469-11352-4-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 15 +++++++++++++++ tools/perf/util/session.c | 3 +++ 2 files changed, 18 insertions(+) commit 4979d0c7d0c73a3e799d4dcfbacd3cd11cc55638 Author: Jiri Olsa Date: Thu Nov 5 15:40:46 2015 +0100 perf stat record: Add record command Add 'perf stat record' command support. It creates simple (header only) perf.data file ATM. The record command could be specified anywhere among stat options. All stat command options are valid for stat record command with '-o' option exception. If specified for record command it denotes the perf data file name. Committer note: Set sample_type to PERF_SAMPLE_IDENTIFIER, which should be harmless while avoiding that older tools show confusing messages, for instance, with sample_type = 0, we get: $ perf stat record usleep 1 Performance counter stats for 'usleep 1': 0.630237 task-clock (msec) # 0.528 CPUs utilized 1 context-switches # 0.002 M/sec 0 cpu-migrations # 0.000 K/sec 52 page-faults # 0.083 M/sec 978,312 cycles # 1.552 GHz 671,931 stalled-cycles-frontend # 68.68% frontend cycles idle stalled-cycles-backend 646,379 instructions # 0.66 insns per cycle # 1.04 stalled cycles per insn 131,046 branches # 207.931 M/sec 7,073 branch-misses # 5.40% of all branches 0.001193240 seconds time elapsed $ oldperf evlist WARNING: The perf.data file's data size field is 0 which is unexpected. Was the 'perf record' command properly terminated? non matching sample_type $ While with sample_type set to PERF_SAMPLE_IDENTIFIER, after we re-run 'perf stat record usleep' we get: $ oldperf evlist WARNING: The perf.data file's data size field is 0 which is unexpected. Was the 'perf record' command properly terminated? task-clock context-switches cpu-migrations page-faults cycles stalled-cycles-frontend stalled-cycles-backend instructions branches branch-misses $ Which at least shows the names of the events in the perf.data file. Additionally, such files, when passed to 'perf report' will produce: $ oldperf report --stdio WARNING: The perf.data file's data size field is 0 which is unexpected. Was the 'perf record' command properly terminated? Warning: Kernel address maps (/proc/{kallsyms,modules}) were restricted. Check /proc/sys/kernel/kptr_restrict before running 'perf record'. As no suitable kallsyms nor vmlinux was found, kernel samples can't be resolved. Samples in kernel modules can't be resolved as well. Error: The perf.data file has no samples! # To display the perf.data header info, please use --header/--header-only options. # $ Which is confusing and can be solved by just adding the kernel mmap record, which will also remove that warning about the data size field being equal to zero, after generating the mmap record: $ perf stat record usleep 1 Performance counter stats for 'usleep 1': 0.600796 task-clock (msec) # 0.478 CPUs utilized 1 context-switches # 0.002 M/sec 0 cpu-migrations # 0.000 K/sec 54 page-faults # 0.090 M/sec 886,844 cycles # 1.476 GHz 582,169 stalled-cycles-frontend # 65.65% frontend cycles idle stalled-cycles-backend 638,344 instructions # 0.72 insns per cycle # 0.91 stalled cycles per insn 130,204 branches # 216.719 M/sec 7,500 branch-misses # 5.76% of all branches 0.001255897 seconds time elapsed $ oldperf evlist task-clock context-switches cpu-migrations page-faults cycles stalled-cycles-frontend stalled-cycles-backend instructions branches branch-misses $ oldperf report --stdio Error: The perf.data file has no samples! # To display the perf.data header info, please use --header/--header-only options. # [acme@zoo linux]$ No warnings, sensible output about what are the events in the perf.data file and also a "file has no samples" message, which indeed it doesn't. Signed-off-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: htp://lkml.kernel.org/r/1446734469-11352-3-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-stat.txt | 12 ++++ tools/perf/builtin-stat.c | 120 +++++++++++++++++++++++++++++++-- 2 files changed, 128 insertions(+), 4 deletions(-) commit ffa517adf625fa6a6c168285534e1ff7344fa2f1 Author: Jiri Olsa Date: Sun Oct 25 15:51:43 2015 +0100 perf tools: Introduce stat perf.data header feature Introducing the 'stat' feature to mark a perf.data as created by the 'perf stat record' command. It contains no data. It's needed so that the report tools (report/script) can differentiate sampling data from counting data, because they need to be treated in a different way. In the future it might be used to store the version of the stat storage system used. Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1445784728-21732-28-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-record.c | 2 ++ tools/perf/util/header.c | 14 ++++++++++++++ tools/perf/util/header.h | 1 + 3 files changed, 17 insertions(+) commit 2d2aea6ae736503d3896c4997b494760ed8febc1 Author: Jiri Olsa Date: Sun Oct 25 15:51:42 2015 +0100 perf report: Display newly added events in raw dump The 'perf report -D' command will now display detailed output for these newly added events: event_update thread_map cpu_map stat stat_config stat_round Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1445784728-21732-27-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/session.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit c853f9394b7bc189632673cac802bdbf6537463b Author: Jiri Olsa Date: Sun Oct 25 15:51:41 2015 +0100 perf tools: Add perf_event__fprintf_event_update function To display a 'event update' event for raw dump. Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1445784728-21732-26-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/header.c | 38 ++++++++++++++++++++++++++++++++++++++ tools/perf/util/header.h | 1 + 2 files changed, 39 insertions(+) commit 86ebb09f96fe6886e1e5d53b648df5537ba859ca Author: Jiri Olsa Date: Sun Oct 25 15:51:40 2015 +0100 perf tools: Add event_update event cpus type Adding the cpumask 'event update' event, that stores/transfer the cpumask for a event. Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1445784728-21732-25-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/event_update.c | 29 ++++++++++++++++++++++++++++ tools/perf/util/event.h | 5 +++++ tools/perf/util/header.c | 42 +++++++++++++++++++++++++++++++++++++++++ tools/perf/util/header.h | 3 +++ 4 files changed, 79 insertions(+) commit 802c9048b824eaa3c75d875e2d107460ad586439 Author: Jiri Olsa Date: Sun Oct 25 15:51:39 2015 +0100 perf tools: Add event_update event name type Adding name type 'event update' event, that stores/transfer events name. Event's name is stored within perf.data's EVENT_DESC feature, but we don't have it if we get the report data from pipe. Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1445784728-21732-24-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/event_update.c | 25 +++++++++++++++++++++++++ tools/perf/util/event.h | 1 + tools/perf/util/header.c | 21 +++++++++++++++++++++ tools/perf/util/header.h | 3 +++ 4 files changed, 50 insertions(+) commit daeecbc0c431f15f492fb8d704080a02de6e2918 Author: Jiri Olsa Date: Sun Oct 25 15:51:38 2015 +0100 perf tools: Add event_update event scale type A__allocdding scale type 'event update' event, that stores/transfer events scale value. The PMU events can define the scale value which is used to multiply events data. Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1445784728-21732-23-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/event_update.c | 21 +++++++++++++++++++++ tools/perf/util/event.h | 5 +++++ tools/perf/util/header.c | 26 ++++++++++++++++++++++++++ tools/perf/util/header.h | 3 +++ 4 files changed, 55 insertions(+) commit a6e5281780d1da65c15ce529707f43eb4a6df856 Author: Jiri Olsa Date: Sun Oct 25 15:51:37 2015 +0100 perf tools: Add event_update event unit type Adding unit type 'event update' event, that stores/transfer events unit name. The unit name is part of the perf stat output data. Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1445784728-21732-22-git-send-email-jolsa@kernel.org [ Rename __alloc() to __new() for consistency ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/Build | 1 + tools/perf/tests/builtin-test.c | 4 ++++ tools/perf/tests/event_update.c | 42 +++++++++++++++++++++++++++++++++++++++ tools/perf/tests/tests.h | 1 + tools/perf/util/event.h | 4 ++++ tools/perf/util/header.c | 44 +++++++++++++++++++++++++++++++++++++++++ tools/perf/util/header.h | 3 +++ 7 files changed, 99 insertions(+) commit ffe777254cce24fb5fde3f0aa91fc755cfb1b812 Author: Jiri Olsa Date: Sun Oct 25 15:51:36 2015 +0100 perf tools: Add event_update user level event It'll serve as a base event for additional event attributes details, that are not part of the attr event. At the moment this event is just a dummy one without any specific functionality. The type value will distinguish the update event details. It'll come in the following patches. The idea for this event is to be extensible for any update that the event might need in the future. Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1445784728-21732-21-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/event.c | 1 + tools/perf/util/event.h | 10 ++++++++++ tools/perf/util/header.c | 20 ++++++++++++++++++++ tools/perf/util/header.h | 3 +++ tools/perf/util/session.c | 21 +++++++++++++++++++++ tools/perf/util/tool.h | 1 + 6 files changed, 56 insertions(+) commit e08a4564e23f8f89a055d717887674f54a9da515 Author: Jiri Olsa Date: Sun Oct 25 15:51:35 2015 +0100 perf tools: Add stat events fprintf functions Introducing the following functions to display the stat events for raw dump. perf_event__fprintf_stat perf_event__fprintf_stat_round perf_event__fprintf_stat_config Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1445784728-21732-20-git-send-email-jolsa@kernel.org [ s/stat/st/g and s/round/rd/g parameters to fix 'already defined' build error with older distros (e.g. RHEL6.7) ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/stat.c | 39 +++++++++++++++++++++++++++++++++++++++ tools/perf/util/stat.h | 4 ++++ 2 files changed, 43 insertions(+) commit 9fd4470ff4974c41b1db43c3b355b9085af9c12a Author: Linus Torvalds Date: Thu Dec 17 10:05:19 2015 -0800 Use the new batched user accesses in generic user string handling This converts the generic user string functions to use the batched user access functions. It makes a big difference on Skylake, which is the first x86 microarchitecture to implement SMAP. The STAC/CLAC instructions are not very fast, and doing them for each access inside the loop that copies strings from user space (which is what the pathname handling does for every pathname the kernel uses, for example) is very inefficient. Signed-off-by: Linus Torvalds lib/strncpy_from_user.c | 11 ++++++++--- lib/strnlen_user.c | 18 ++++++++++++++---- 2 files changed, 22 insertions(+), 7 deletions(-) commit d284aa27d9360ff5009886c4335988f366e7fa50 Author: Uri Mashiach Date: Sun Dec 13 10:55:39 2015 +0200 ARM: dts: cm-t335: add support for bluetooth bluetooth HW is WLS1271 chip connected to UART1. Device tree modifications: - Pinmux for UART1. - Pinmux for bluetooth enable GPIO. Bluetooth enable GPIO is set to enable during startup by setting the relevant pinmux pin to pull-up. Signed-off-by: Uri Mashiach Acked-by: Igor Grinberg Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-cm-t335.dts | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) commit 3089e40e9f257569d414d2ad497752f741850be7 Author: Uri Mashiach Date: Sun Dec 13 10:55:38 2015 +0200 ARM: dts: cm-t335: add support for DVI/LCD Add pinmux configuration for DVI/LCD. Add DRM display driver node with timing configurations for DVI and LCD. Add I2C GPIOs configurations for DVI and LCD enable. Signed-off-by: Uri Mashiach Acked-by: Igor Grinberg Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-sbc-t335.dts | 192 ++++++++++++++++++++++++++++++++++ 1 file changed, 192 insertions(+) commit 98e5d8987cd35688003f672f049c15163552c4c3 Author: Uri Mashiach Date: Sun Dec 13 10:55:37 2015 +0200 ARM: dts: cm-t335: add support for I2C GPIO expander The I2C GPIO expander (PCA9555) adds 16 GPIOs to the module. Signed-off-by: Uri Mashiach Acked-by: Igor Grinberg Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-sbc-t335.dts | 11 +++++++++++ 1 file changed, 11 insertions(+) commit c6135a6fd1576e5daee67b0b2207f035a3eb4de0 Author: Uri Mashiach Date: Sun Dec 13 10:55:36 2015 +0200 ARM: dts: cm-t335: add support for SBC-T335 Add basic support for the SBC-T335. CompuLab SBC-T335 is a single baseboard computer. The SBC-T335 is based on the Texas Instruments Cortex-A8 Sitara AM3354 SoC. Signed-off-by: Uri Mashiach Acked-by: Igor Grinberg Acked-by: Rob Herring Signed-off-by: Tony Lindgren Documentation/devicetree/bindings/arm/omap/omap.txt | 3 +++ arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/am335x-sbc-t335.dts | 16 ++++++++++++++++ 3 files changed, 20 insertions(+) commit f3e1dee242054454ebe48551f0ad7848b46ee5e8 Author: Ilya Ledvich Date: Sun Dec 13 10:55:35 2015 +0200 ARM: dts: cm-t335: add support for USB0 Enable USB0. Signed-off-by: Ilya Ledvich Signed-off-by: Uri Mashiach Acked-by: Igor Grinberg Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-cm-t335.dts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 5b24a7a2aa2040c8c50c3b71122901d01661ff78 Author: Linus Torvalds Date: Thu Dec 17 09:57:27 2015 -0800 Add 'unsafe' user access functions for batched accesses The naming is meant to discourage random use: the helper functions are not really any more "unsafe" than the traditional double-underscore functions (which need the address range checking), but they do need even more infrastructure around them, and should not be used willy-nilly. In addition to checking the access range, these user access functions require that you wrap the user access with a "user_acess_{begin,end}()" around it. That allows architectures that implement kernel user access control (x86: SMAP, arm64: PAN) to do the user access control in the wrapping user_access_begin/end part, and then batch up the actual user space accesses using the new interfaces. The main (and hopefully only) use for these are for core generic access helpers, initially just the generic user string functions (strnlen_user() and strncpy_from_user()). Signed-off-by: Linus Torvalds arch/x86/include/asm/uaccess.h | 25 +++++++++++++++++++++++++ include/linux/uaccess.h | 7 +++++++ 2 files changed, 32 insertions(+) commit d4c2259195f538505d2570e78555532372fb4ad2 Author: Jiri Olsa Date: Sun Oct 25 15:51:34 2015 +0100 perf tools: Add stat round event synthesize function Introduce the perf_event__synthesize_stat_round function to synthesize a 'struct stat_round_event'. Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1445784728-21732-19-git-send-email-jolsa@kernel.org [ Renamed 'time' parameter to 'evtime' to fix build on older systems ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/builtin-test.c | 4 ++++ tools/perf/tests/stat.c | 21 +++++++++++++++++++++ tools/perf/tests/tests.h | 1 + tools/perf/util/event.c | 17 +++++++++++++++++ tools/perf/util/event.h | 4 ++++ 5 files changed, 47 insertions(+) commit 2d8f0f18a5c37cf0322cb385b99adb1167b7cf78 Author: Jiri Olsa Date: Sun Oct 25 15:51:33 2015 +0100 perf tools: Add stat round user level event Adding the stat round event to be stored after each stat interval round, so that report tools (report/script) gets notified and process interval data. Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1445784728-21732-18-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/event.c | 1 + tools/perf/util/event.h | 13 +++++++++++++ tools/perf/util/session.c | 21 +++++++++++++++++++++ tools/perf/util/tool.h | 3 ++- 4 files changed, 37 insertions(+), 1 deletion(-) commit 0ea0e3558607626196eb09ace796aac585e61f5c Author: Jiri Olsa Date: Sun Oct 25 15:51:32 2015 +0100 perf tools: Add stat event read function Introducing the perf_event__process_stat_event function to process a 'struct perf_stat' data from a stat event. Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1445784728-21732-17-git-send-email-jolsa@kernel.org [ Renamed 'stat' parameter to 'st' to fix 'already defined' build error with older distros (e.g. RHEL6.7) ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/stat.c | 23 +++++++++++++++++++++++ tools/perf/util/stat.h | 6 ++++++ 2 files changed, 29 insertions(+) commit 5796f8f073fe50171376f058376dde93ec5f3785 Author: Jiri Olsa Date: Sun Oct 25 15:51:31 2015 +0100 perf tools: Add stat event synthesize function Introduce the perf_event__synthesize_stat function to synthesize a 'struct stat_event'. Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1445784728-21732-16-git-send-email-jolsa@kernel.org [ Renamed 'stat' parameter to 'st' to fix 'already defined' build error with older distros (e.g. RHEL6.7) ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/builtin-test.c | 4 ++++ tools/perf/tests/stat.c | 41 ++++++++++++++++++++++++++++++++++++----- tools/perf/tests/tests.h | 1 + tools/perf/util/event.c | 22 ++++++++++++++++++++++ tools/perf/util/event.h | 7 ++++++- 5 files changed, 69 insertions(+), 6 deletions(-) commit 4cf185379b7504d640c9dd72f959f081b25f6ea2 Author: Chao Yu Date: Thu Dec 17 17:17:16 2015 +0800 f2fs: add a tracepoint for sync_dirty_inodes This patch adds a tracepoint for sync_dirty_inodes. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/checkpoint.c | 8 ++++++++ include/trace/events/f2fs.h | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) commit 7df3a4318d07ba520b4a8eddad29e9ac748b0a19 Author: Fan Li Date: Thu Dec 17 13:20:59 2015 +0800 f2fs: optimize the flow of f2fs_map_blocks check map->m_len right after it changes to avoid excess call to update dnode_of_data. Signed-off-by: Fan li Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 69 ++++++++++++++++++++++++++++++---------------------------- 1 file changed, 36 insertions(+), 33 deletions(-) commit 36b35a0dbe904a06e94154f29db0d0e218420c98 Author: Chao Yu Date: Thu Dec 17 17:13:28 2015 +0800 f2fs: support data flush in background Previously, when finishing a checkpoint, we have persisted all fs meta info including meta inode, node inode, dentry page of directory inode, so, after a sudden power cut, f2fs can recover from last checkpoint with full directory structure. But during checkpoint, we didn't flush dirty pages of regular and symlink inode, so such dirty datas still in memory will be lost in that moment of power off. In order to reduce the chance of lost data, this patch enables f2fs_balance_fs_bg with the ability of data flushing. It will try to flush user data before starting a checkpoint. So user's data written after last checkpoint which may not be fsynced could be saved. When we mount with data_flush option, after every period of cp_interval (could be configured in sysfs: /sys/fs/f2fs/device/cp_interval) seconds user data could be flushed into device once f2fs_balance_fs_bg was called in kworker thread or gc thread. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/segment.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 33fbd5100de6d0a87f354ecf5ec0486ba01a6da7 Author: Chao Yu Date: Thu Dec 17 17:14:44 2015 +0800 f2fs: stat dirty regular/symlink inodes Add to stat dirty regular and symlink inode for showing in debugfs. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/checkpoint.c | 7 ++----- fs/f2fs/debug.c | 6 +++++- fs/f2fs/f2fs.h | 13 +++++++------ 3 files changed, 14 insertions(+), 12 deletions(-) commit 0c4d63b323c8d39181f231596d98811ba32037b7 Author: Sudeep Holla Date: Wed Oct 21 11:10:12 2015 +0100 ARM: dts: omap: replace legacy *,wakeup property with wakeup-source Though the keyboard and other driver will continue to support the legacy "gpio-key,wakeup", "linux,wakeup" boolean property to enable the wakeup source, "wakeup-source" is the new standard binding. This patch replaces all the legacy wakeup properties with the unified "wakeup-source" property in order to avoid any futher copy-paste duplication. Cc: "Benoît Cousson" Cc: Tony Lindgren Cc: linux-omap@vger.kernel.org Signed-off-by: Sudeep Holla Signed-off-by: Tony Lindgren arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts | 8 ++--- arch/arm/boot/dts/omap3-beagle-xm.dts | 2 +- arch/arm/boot/dts/omap3-beagle.dts | 2 +- arch/arm/boot/dts/omap3-cm-t3x.dtsi | 2 +- arch/arm/boot/dts/omap3-devkit8000-common.dtsi | 2 +- arch/arm/boot/dts/omap3-devkit8000-lcd-common.dtsi | 2 +- arch/arm/boot/dts/omap3-gta04.dtsi | 2 +- arch/arm/boot/dts/omap3-ldp.dts | 18 ++++++------ arch/arm/boot/dts/omap3-lilly-a83x.dtsi | 2 +- arch/arm/boot/dts/omap3-n900.dts | 10 +++---- arch/arm/boot/dts/omap3-overo-alto35-common.dtsi | 2 +- .../boot/dts/omap3-overo-chestnut43-common.dtsi | 4 +-- arch/arm/boot/dts/omap3-overo-common-lcd35.dtsi | 2 +- arch/arm/boot/dts/omap3-overo-common-lcd43.dtsi | 2 +- arch/arm/boot/dts/omap3-overo-gallop43-common.dtsi | 4 +-- arch/arm/boot/dts/omap3-overo-palo35-common.dtsi | 4 +-- arch/arm/boot/dts/omap3-overo-palo43-common.dtsi | 4 +-- arch/arm/boot/dts/omap3-pandora-common.dtsi | 34 +++++++++++----------- .../boot/dts/omap3-panel-sharp-ls037v7dw01.dtsi | 2 +- arch/arm/boot/dts/omap4-duovero-parlor.dts | 2 +- arch/arm/boot/dts/omap4-var-om44customboard.dtsi | 2 +- arch/arm/boot/dts/omap5-cm-t54.dts | 2 +- 22 files changed, 57 insertions(+), 57 deletions(-) commit 3efda00129bdf8a09e640ba7d08f8c7f48f32db1 Author: Sudeep Holla Date: Wed Oct 21 11:10:06 2015 +0100 ARM: dts: am335x: replace gpio-key,wakeup with wakeup-source property Though the keyboard driver for GPIO buttons(gpio-keys) will continue to check for/support the legacy "gpio-key,wakeup" boolean property to enable gpio buttons as wakeup source, "wakeup-source" is the new standard binding. This patch replaces the legacy "gpio-key,wakeup" with the unified "wakeup-source" property in order to avoid any futher copy-paste duplication. Cc: "Benoît Cousson" Cc: Tony Lindgren Cc: linux-omap@vger.kernel.org Signed-off-by: Sudeep Holla Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-evm.dts | 4 ++-- arch/arm/boot/dts/am335x-evmsk.dts | 2 +- arch/arm/boot/dts/am335x-pepper.dts | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) commit 11f1a4b9755f5dbc3e822a96502ebe9b044b14d8 Author: Linus Torvalds Date: Thu Dec 17 09:45:09 2015 -0800 x86: reorganize SMAP handling in user space accesses This reorganizes how we do the stac/clac instructions in the user access code. Instead of adding the instructions directly to the same inline asm that does the actual user level access and exception handling, add them at a higher level. This is mainly preparation for the next step, where we will expose an interface to allow users to mark several accesses together as being user space accesses, but it does already clean up some code: - the inlined trivial cases of copy_in_user() now do stac/clac just once over the accesses: they used to do one pair around the user space read, and another pair around the write-back. - the {get,put}_user_ex() macros that are used with the catch/try handling don't do any stac/clac at all, because that happens in the try/catch surrounding them. Other than those two cleanups that happened naturally from the re-organization, this should not make any difference. Yet. Signed-off-by: Linus Torvalds arch/x86/include/asm/uaccess.h | 53 ++++++++++++++-------- arch/x86/include/asm/uaccess_64.h | 94 +++++++++++++++++++++++++++------------ 2 files changed, 101 insertions(+), 46 deletions(-) commit cce1ee000187c1584bf644406926aaffa1b2bc36 Author: Peter Ujfalusi Date: Thu Dec 17 15:33:37 2015 +0200 ARM: DTS: am437x: Use the new DT bindings for the eDMA3 Switch to use the ti,edma3-tpcc and ti,edma3-tptc binding for the eDMA3 and enable the DMA even crossbar with ti,am335x-edma-crossbar. With the new bindings boards can customize and tweak the DMA channel priority to match their needs. With the new binding the memcpy is safe to be used since with the old binding it was not possible for a driver to know which channel is allowed to be used as non HW triggered channel. Signed-off-by: Peter Ujfalusi Signed-off-by: Tony Lindgren arch/arm/boot/dts/am4372.dtsi | 80 +++++++++++++++++++++++++++---------- arch/arm/boot/dts/am437x-gp-evm.dts | 9 +---- 2 files changed, 62 insertions(+), 27 deletions(-) commit b5e5090660742c838ddc0b5d1a001e6fe3d5bfd5 Author: Peter Ujfalusi Date: Thu Dec 17 15:33:36 2015 +0200 ARM: DTS: am33xx: Use the new DT bindings for the eDMA3 Switch to use the ti,edma3-tpcc and ti,edma3-tptc binding for the eDMA3 and enable the DMA even crossbar with ti,am335x-edma-crossbar. With the new bindings boards can customize and tweak the DMA channel priority to match their needs. With the new binding the memcpy is safe to be used since with the old binding it was not possible for a driver to know which channel is allowed to be used as non HW triggered channel. Signed-off-by: Peter Ujfalusi Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-evm.dts | 9 +--- arch/arm/boot/dts/am335x-pepper.dts | 11 +---- arch/arm/boot/dts/am33xx.dtsi | 94 ++++++++++++++++++++++++++----------- 3 files changed, 71 insertions(+), 43 deletions(-) commit 1f9230fbf37f6a89f90ab955b8d1a1d0958668bf Merge: 89c6f2e ae0add7 Author: Tony Lindgren Date: Thu Dec 17 09:41:18 2015 -0800 Merge commit 'ae0add740cd06169cd124f9aaa6eceb11e5b3060' into omap-for-v4.5/dt commit d80518c90bb2b4af9755d79af5dfe9d44e04cdb9 Author: Jiri Olsa Date: Sun Oct 25 15:51:30 2015 +0100 perf tools: Add stat user level event Adding a stat event to store a 'struct perf_counter_values' for a given event/cpu/thread. Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1445784728-21732-15-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/event.c | 1 + tools/perf/util/event.h | 19 +++++++++++++++++++ tools/perf/util/session.c | 25 +++++++++++++++++++++++++ tools/perf/util/tool.h | 3 ++- 4 files changed, 47 insertions(+), 1 deletion(-) commit 8e381596b67af53564a69f16440d3e5d5a73d034 Author: Jiri Olsa Date: Sun Oct 25 15:51:29 2015 +0100 perf tools: Add stat config event read function Introducing the perf_event__read_stat_config function to read a struct perf_stat_config object data from a stat config event. Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1445784728-21732-14-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/stat.c | 6 ++++++ tools/perf/util/event.c | 24 ++++++++++++++++++++++++ tools/perf/util/event.h | 2 ++ 3 files changed, 32 insertions(+) commit 6742434261158ad9678bf15b165304e0200cc324 Author: Jiri Olsa Date: Sun Oct 25 15:51:28 2015 +0100 perf tools: Add stat config event synthesize function Introduce the perf_event__synthesize_stat_config to synthesize a 'struct perf_stat_config'. Storing the stat config in the form of tag-value pairs will, I believe, sort out future version extensibility issues. Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1445784728-21732-13-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/Build | 1 + tools/perf/tests/builtin-test.c | 4 ++++ tools/perf/tests/stat.c | 53 +++++++++++++++++++++++++++++++++++++++++ tools/perf/tests/tests.h | 1 + tools/perf/util/event.c | 40 +++++++++++++++++++++++++++++++ tools/perf/util/event.h | 5 ++++ 6 files changed, 104 insertions(+) commit 374fb9e362f64e730388abc1de9bb93829670a54 Author: Jiri Olsa Date: Sun Oct 25 15:51:27 2015 +0100 perf tools: Add stat config user level event Adding the stat config event to pass/store stat config data, so report tools (report/script) know how to interpret stat data. The config data is stored in a 'tag|value' way to allow for easy extension and backwards compatibility. Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1445784728-21732-12-git-send-email-jolsa@kernel.org [ stat_config_term_event -> stat_config_event_entry ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/event.c | 1 + tools/perf/util/event.h | 20 ++++++++++++++++++++ tools/perf/util/session.c | 24 ++++++++++++++++++++++++ tools/perf/util/tool.h | 3 ++- 4 files changed, 47 insertions(+), 1 deletion(-) commit eb12a1afdc02e59fc09934743490549c77327b1a Author: Jiri Olsa Date: Sun Oct 25 15:51:26 2015 +0100 perf cpu_map: Add perf_event__fprintf_cpu_map function To display a cpu_map event for raw dump. Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1445784728-21732-11-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/event.c | 16 ++++++++++++++++ tools/perf/util/event.h | 1 + 2 files changed, 17 insertions(+) commit f77b57ad4fc42a074eae564bbb6660f0a3ff5503 Author: Jiri Olsa Date: Sun Oct 25 15:51:25 2015 +0100 perf cpu_map: Add cpu_map__new_event function Introducing the cpu_map__new_event function to create a struct cpu_map object from a cpu_map event. Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1445784728-21732-10-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/cpumap.c | 25 +++++++++++++++++++++---- tools/perf/util/cpumap.c | 42 ++++++++++++++++++++++++++++++++++++++++++ tools/perf/util/cpumap.h | 1 + 3 files changed, 64 insertions(+), 4 deletions(-) commit 6c872901af07c41745f1abf5ceac9b3b4d9cdbb6 Author: Jiri Olsa Date: Sun Oct 25 15:51:24 2015 +0100 perf cpu_map: Add cpu_map event synthesize function Introduce the perf_event__synthesize_cpu_map function to synthesize a struct cpu_map. Added generic interface: cpu_map_data__alloc cpu_map_data__synthesize to make the cpu_map synthesizing usable for other events. Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1445784728-21732-9-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/Build | 1 + tools/perf/tests/builtin-test.c | 4 ++ tools/perf/tests/cpumap.c | 71 ++++++++++++++++++++++ tools/perf/tests/tests.h | 1 + tools/perf/util/event.c | 131 ++++++++++++++++++++++++++++++++++++++++ tools/perf/util/event.h | 8 +++ 6 files changed, 216 insertions(+) commit 6640b6c227fc85fd8bdcc4a31239a04450487f6a Author: Jiri Olsa Date: Sun Oct 25 15:51:23 2015 +0100 perf cpu_map: Add cpu_map user level event Adding the cpu_map event to pass/store cpu maps as data in a pipe/perf.data. We store maps in 2 formats: - list of cpus - mask of cpus The format that takes less space is selected transparently in the following patch. The interface is made generic, so we could add the cpumap event data into another event in the following patches. Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1445784728-21732-8-git-send-email-jolsa@kernel.org [ cpu_map_data_cpus -> cpu_map_entries, cpu_map_data_mask -> cpu_map_mask ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/event.c | 1 + tools/perf/util/event.h | 28 ++++++++++++++++++++++++++ tools/perf/util/session.c | 50 +++++++++++++++++++++++++++++++++++++++++++++++ tools/perf/util/tool.h | 3 ++- 4 files changed, 81 insertions(+), 1 deletion(-) commit ec7fa596f514b76a5f1003ffe9e6dfb50cb9e811 Author: Jiri Olsa Date: Sun Oct 25 15:51:22 2015 +0100 perf thread_map: Add perf_event__fprintf_thread_map function To display a thread_map event for a raw dump. Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1445784728-21732-7-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/event.c | 16 ++++++++++++++++ tools/perf/util/event.h | 1 + 2 files changed, 17 insertions(+) commit 59660942397b57b37eccba014544623cf4beb12b Author: Jiri Olsa Date: Sun Oct 25 15:51:21 2015 +0100 perf thread_map: Add thread_map__new_event function Introducing the thread_map__new_event function to create a struct thread_map object from a thread_map event. Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1445784728-21732-6-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/thread-map.c | 14 ++++++++++++++ tools/perf/util/thread_map.c | 27 +++++++++++++++++++++++++++ tools/perf/util/thread_map.h | 3 +++ 3 files changed, 44 insertions(+) commit 99471c967a00c875bb5d61f377d4267904545499 Author: Jiri Olsa Date: Sun Oct 25 15:51:20 2015 +0100 perf thread_map: Add thread_map event sythesize function Introduce the perf_event__synthesize_thread_map2 function to synthesize struct thread_map. The perf_event__synthesize_thread_map name is already taken for synthesizing the complete threads data (comm/mmap/fork). Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1445784728-21732-5-git-send-email-jolsa@kernel.org [ Rename thread_map_data_event to thread_map_event_entry ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/builtin-test.c | 4 ++++ tools/perf/tests/tests.h | 1 + tools/perf/tests/thread-map.c | 29 +++++++++++++++++++++++++++++ tools/perf/util/event.c | 36 ++++++++++++++++++++++++++++++++++++ tools/perf/util/event.h | 4 ++++ 5 files changed, 74 insertions(+) commit 5f3339d2e83ca587c2e13c3e37e1b5fb7c68ebe5 Author: Jiri Olsa Date: Sun Oct 25 15:51:19 2015 +0100 perf thread_map: Add thread_map user level event Adding the thread_map event to pass/store thread maps as data in the pipe/perf.data. Storing the thread ID along with the standard comm[16] thread name string. Signed-off-by: Jiri Olsa Tested-by: Kan Liang Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1445784728-21732-4-git-send-email-jolsa@kernel.org [ Renamed thread_map_data_event to thread_map_event_entry ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/event.c | 1 + tools/perf/util/event.h | 13 +++++++++++++ tools/perf/util/session.c | 26 ++++++++++++++++++++++++++ tools/perf/util/tool.h | 3 ++- 4 files changed, 42 insertions(+), 1 deletion(-) commit 1843b4e057b7717db21a3ad96fa16d6b4ee8f6c4 Author: Josh Poimboeuf Date: Tue Dec 15 09:39:40 2015 -0600 tools subcmd: Rename subcmd header include guards Signed-off-by: Josh Poimboeuf Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/d8081e7528b25ad91f4154b6a3fd063e93c108ec.1450193761.git.jpoimboe@redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/lib/subcmd/exec-cmd.h | 6 +++--- tools/lib/subcmd/help.h | 6 +++--- tools/lib/subcmd/pager.h | 6 +++--- tools/lib/subcmd/parse-options.h | 7 ++++--- tools/lib/subcmd/run-command.h | 6 +++--- tools/lib/subcmd/sigchain.h | 6 +++--- tools/lib/subcmd/subcmd-util.h | 6 +++--- 7 files changed, 22 insertions(+), 21 deletions(-) commit 4b6ab94eabe4f55371cff4569750bb3996c55db6 Author: Josh Poimboeuf Date: Tue Dec 15 09:39:39 2015 -0600 perf subcmd: Create subcmd library Move the subcommand-related files from perf to a new library named libsubcmd.a. Since we're moving files anyway, go ahead and rename 'exec_cmd.*' to 'exec-cmd.*' to be consistent with the naming of all the other files. Signed-off-by: Josh Poimboeuf Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/c0a838d4c878ab17fee50998811612b2281355c1.1450193761.git.jpoimboe@redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/lib/subcmd/Build | 7 + tools/lib/subcmd/Makefile | 48 ++ tools/lib/subcmd/exec-cmd.c | 209 +++++++ tools/lib/subcmd/exec-cmd.h | 16 + tools/lib/subcmd/help.c | 268 +++++++++ tools/lib/subcmd/help.h | 34 ++ tools/lib/subcmd/pager.c | 100 ++++ tools/lib/subcmd/pager.h | 9 + tools/lib/subcmd/parse-options.c | 983 +++++++++++++++++++++++++++++++++ tools/lib/subcmd/parse-options.h | 228 ++++++++ tools/lib/subcmd/run-command.c | 227 ++++++++ tools/lib/subcmd/run-command.h | 60 ++ tools/lib/subcmd/sigchain.c | 53 ++ tools/lib/subcmd/sigchain.h | 10 + tools/lib/subcmd/subcmd-config.c | 11 + tools/lib/subcmd/subcmd-config.h | 14 + tools/lib/subcmd/subcmd-util.h | 91 +++ tools/perf/MANIFEST | 1 + tools/perf/Makefile.perf | 20 +- tools/perf/arch/x86/util/intel-pt.c | 2 +- tools/perf/bench/futex-hash.c | 2 +- tools/perf/bench/futex-lock-pi.c | 2 +- tools/perf/bench/futex-requeue.c | 2 +- tools/perf/bench/futex-wake-parallel.c | 2 +- tools/perf/bench/futex-wake.c | 2 +- tools/perf/bench/mem-functions.c | 2 +- tools/perf/bench/numa.c | 2 +- tools/perf/bench/sched-messaging.c | 2 +- tools/perf/bench/sched-pipe.c | 2 +- tools/perf/builtin-annotate.c | 2 +- tools/perf/builtin-bench.c | 2 +- tools/perf/builtin-buildid-cache.c | 2 +- tools/perf/builtin-buildid-list.c | 2 +- tools/perf/builtin-config.c | 2 +- tools/perf/builtin-data.c | 2 +- tools/perf/builtin-evlist.c | 2 +- tools/perf/builtin-help.c | 8 +- tools/perf/builtin-inject.c | 2 +- tools/perf/builtin-kmem.c | 2 +- tools/perf/builtin-kvm.c | 2 +- tools/perf/builtin-list.c | 2 +- tools/perf/builtin-lock.c | 2 +- tools/perf/builtin-mem.c | 2 +- tools/perf/builtin-probe.c | 2 +- tools/perf/builtin-record.c | 2 +- tools/perf/builtin-report.c | 2 +- tools/perf/builtin-sched.c | 2 +- tools/perf/builtin-script.c | 4 +- tools/perf/builtin-stat.c | 2 +- tools/perf/builtin-timechart.c | 2 +- tools/perf/builtin-top.c | 2 +- tools/perf/builtin-trace.c | 4 +- tools/perf/perf.c | 6 +- tools/perf/tests/attr.c | 2 +- tools/perf/tests/builtin-test.c | 2 +- tools/perf/util/Build | 7 - tools/perf/util/auxtrace.c | 2 +- tools/perf/util/cache.h | 2 +- tools/perf/util/cgroup.c | 2 +- tools/perf/util/config.c | 2 +- tools/perf/util/evlist.c | 2 +- tools/perf/util/exec_cmd.c | 209 ------- tools/perf/util/exec_cmd.h | 16 - tools/perf/util/help-unknown-cmd.c | 2 +- tools/perf/util/help.c | 268 --------- tools/perf/util/help.h | 34 -- tools/perf/util/pager.c | 100 ---- tools/perf/util/pager.h | 9 - tools/perf/util/parse-branch-options.c | 2 +- tools/perf/util/parse-events.c | 4 +- tools/perf/util/parse-options.c | 983 --------------------------------- tools/perf/util/parse-options.h | 228 -------- tools/perf/util/parse-regs-options.c | 2 +- tools/perf/util/run-command.c | 227 -------- tools/perf/util/run-command.h | 60 -- tools/perf/util/sigchain.c | 53 -- tools/perf/util/sigchain.h | 10 - tools/perf/util/sort.h | 2 +- tools/perf/util/subcmd-config.c | 11 - tools/perf/util/subcmd-config.h | 14 - tools/perf/util/subcmd-util.h | 91 --- 81 files changed, 2439 insertions(+), 2378 deletions(-) commit 2f4ce5ec1d447beb42143a9653716a2ab025161e Author: Josh Poimboeuf Date: Tue Dec 15 09:39:38 2015 -0600 perf tools: Finalize subcmd independence For the files that will be moved to the subcmd library, remove all their perf-specific includes and duplicate any needed functionality. Signed-off-by: Josh Poimboeuf Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/6e12946f0f26ce4d543d34db68d9dae3c8551cb9.1450193761.git.jpoimboe@redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/exec_cmd.c | 64 ++++++++++++++++++++++++++++++++---- tools/perf/util/help.c | 47 +++++++++++++++++++++++--- tools/perf/util/help.h | 4 ++- tools/perf/util/pager.c | 7 +++- tools/perf/util/parse-options.c | 73 +++++++++++++++++++++++++---------------- tools/perf/util/parse-options.h | 2 +- tools/perf/util/run-command.c | 16 ++++++--- tools/perf/util/run-command.h | 2 ++ tools/perf/util/sigchain.c | 3 +- tools/perf/util/subcmd-util.h | 67 +++++++++++++++++++++++++++++++++++++ tools/perf/util/util.h | 14 -------- 11 files changed, 237 insertions(+), 62 deletions(-) commit a1493cd575678910f90d488069a8a2c41a144fda Author: Alex Deucher Date: Wed Dec 9 15:36:40 2015 -0500 drm/amdgpu: limit visible vram if it's smaller than the BAR In some cases the amount of vram may be less than the BAR size, if so, limit visible vram to the amount of actual vram, not the BAR size. Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 4 ++++ drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 4 ++++ 2 files changed, 8 insertions(+) commit 70722803de91a7670979dcb5748631b4e3c1b219 Author: Arnd Bergmann Date: Thu Dec 17 17:45:47 2015 +0100 ARM: make default platform work for NOMMU Moving ARCH_VERSATILE into ARCH_MULTIPLATFORM means that it no longer works as the default target for MMU-less kernels. While we might want to get that working again in the future, it's also a rather bad default, and it makes sense to make ARM_SINGLE_V7M the default because that is what realistically all NOMMU users on ARM are using, and it actually is what gets selected by default in the absence of versatile in the choice statement. Related to this, 'allnoconfig' kernels fail to link with the new default, as they do not include a machine record: arm-linux-gnueabi-ld: no machine record defined For ARCH_MULTIPLATFORM kernels, we avoid this error by using a default machine descriptor that works for all trivial platforms, like ARCH_VIRT. The same reasoning applies for ARM_SINGLE_V7M, as that can also boot with empty machine descriptors both on qemu and on real hardware, as long as all the drivers are present. We could also follow up with a patch to remove the existing machine descriptors for the ARMv7M platforms, the only callback pointer the four platforms contain today is the armv7m_restart handler and we can simply make that the default for v7M with an add-on patch. Signed-off-by: Arnd Bergmann arch/arm/Kconfig | 2 +- arch/arm/kernel/devtree.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit fcd71d9cc6e301bdbd71829b79e80168473ca609 Author: Sudip Mukherjee Date: Tue Dec 8 14:17:55 2015 +0530 of: fix declaration of of_io_request_and_map We are having build failure with linux-next for sparc allmodconfig with the error messages: drivers/built-in.o: In function `meson6_timer_init': meson6_timer.c:(.init.text+0x5fe8): undefined reference to `of_io_request_and_map' drivers/built-in.o: In function `mtk_timer_init': mtk_timer.c:(.init.text+0x6af0): undefined reference to `of_io_request_and_map' drivers/built-in.o: In function `asm9260_timer_init': asm9260_timer.c:(.init.text+0x6c48): undefined reference to `of_io_request_and_map' CONFIG_OF is defined for sparc so it is expected that we have a definition of of_io_request_and_map() but of/address.c is only compiled if it is !SPARC. In other words, CONFIG_OF_ADDRESS is not defined for sparc so we get the build failure. Fixes: e572f844ca66 ("clocksource/drivers/meson6: Add the COMPILE_TEST option") Fixes: bec8c4617611 ("clocksource/drivers/mediatek: Add the COMPILE_TEST option") Fixes: 4a373b45f94a ("clocksource/drivers/asm9260: Add the COMPILE_TEST option") Acked-by: Daniel Lezcano Signed-off-by: Sudip Mukherjee [robh: move include of io.h out of ifdef's] Signed-off-by: Rob Herring include/linux/of_address.h | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) commit 200757f5d7c6f7f7032a0a07bbb8c02a840bbf7d Author: Matt Roper Date: Thu Dec 3 11:37:36 2015 -0800 drm/i915: Disable primary plane if we fail to reconstruct BIOS fb (v2) If we fail to reconstruct the BIOS fb (e.g., because the FB is too large), we'll be left with plane state that indicates the primary plane is visible yet has a NULL fb. This mismatch causes problems later on (e.g., for the watermark code). Since we've failed to reconstruct the BIOS FB, the best solution is to just disable the primary plane and pretend the BIOS never had it enabled. v2: Add intel_pre_disable_primary() call (Maarten) Cc: Daniel Vetter Cc: Ville Syrjälä Cc: Maarten Lankhorst Cc: drm-intel-fixes@lists.freedesktop.org Signed-off-by: Matt Roper Reviewed-by: Maarten Lankhorst Link: http://patchwork.freedesktop.org/patch/msgid/1449171462-30763-2-git-send-email-matthew.d.roper@intel.com drivers/gpu/drm/i915/intel_display.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 06920d4eeabcd824436ace6fbd6cf49739a5812a Author: Arnd Bergmann Date: Thu Dec 17 16:59:55 2015 +0100 ARM: debug-ll: move DEBUG_LL_UART_EFM32 to correct Kconfig location I accidentally move the DEBUG_LL_UART_EFM32 option when sorting all other options alphanumerically, but it belongs into the same group as DEBUG_LL_UART_8250 and DEBUG_LL_UART_PL01X. Signed-off-by: Arnd Bergmann Fixes: 1dc9341 ("ARM: debug-ll: reorder Kconfig alphanumerically") arch/arm/Kconfig.debug | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) commit 0c82312f3f15538f4e6ceda2a82caee8fbac4501 Author: Chris Wilson Date: Fri Dec 4 16:05:26 2015 +0000 drm/i915: Pin the ifbdev for the info->system_base GGTT mmapping A long time ago (before 3.14) we relied on a permanent pinning of the ifbdev to lock the fb in place inside the GGTT. However, the introduction of stealing the BIOS framebuffer and reusing its address in the GGTT for the fbdev has muddied waters and we use an inherited fb. However, the inherited fb is only pinned whilst it is active and we no longer have an explicit pin for the info->system_base mmapping used by the fbdev. The result is that after some aperture pressure the fbdev may be evicted, but we continue to write the fbcon into the same GGTT address - overwriting anything else that may be put into that offset. The effect is most pronounced across suspend/resume as intel_fbdev_set_suspend() does a full clear over the whole scanout. v2: Only unpin the intel_fb is we allocate it. If we inherit the fb from the BIOS, we do not own the pinned vma (except for the reference we add in this patch for our access via info->screen_base). v3: Finish balancing the vma pinning for the normal !preallocated case. v4: Try to simplify the pinning even further. v5: Leak the VMA (cleaned up by object-free) to avoid complicated error paths. Signed-off-by: Chris Wilson Cc: "Goel, Akash" Cc: Daniel Vetter Cc: Jesse Barnes Cc: Lukas Wunner Cc: drm-intel-fixes@lists.freedesktop.org Link: http://patchwork.freedesktop.org/patch/msgid/1449245126-26158-1-git-send-email-chris@chris-wilson.co.uk Tested-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_fbdev.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) commit d0710abbcd88b1ff17760e97d74a673e67b49ea1 Author: Chris Wilson Date: Fri Nov 20 14:16:39 2015 +0000 drm/i915: Set the map-and-fenceable flag for preallocated objects As we mark the preallocated objects as bound, we should also flag them correctly as being map-and-fenceable (if appropriate!) so that later users do not get confused and try and rebind the pinned vma in order to get a map-and-fenceable binding. Signed-off-by: Chris Wilson Cc: "Goel, Akash" Cc: Daniel Vetter Cc: Jesse Barnes Cc: drm-intel-fixes@lists.freedesktop.org Link: http://patchwork.freedesktop.org/patch/msgid/1448029000-10616-1-git-send-email-chris@chris-wilson.co.uk Reviewed-by: Jesse Barnes Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/i915_gem.c | 43 +++++++++++++++++++--------------- drivers/gpu/drm/i915/i915_gem_gtt.c | 1 + drivers/gpu/drm/i915/i915_gem_stolen.c | 1 + 4 files changed, 27 insertions(+), 19 deletions(-) commit 71a199bacb398ee54eeac001699257dda083a455 Author: Daniel Vetter Date: Fri Dec 11 19:44:15 2015 +0100 drm/i915: mdelay(10) considered harmful I missed this myself when reviewing commit 237ed86c693d8a8e4db476976aeb30df4deac74b Author: Sonika Jindal Date: Tue Sep 15 09:44:20 2015 +0530 drm/i915: Check live status before reading edid Long sleeps like this really shouldn't waste cpu cycles spinning. Cc: Sonika Jindal Cc: "Wang, Gary C" Link: http://patchwork.freedesktop.org/patch/msgid/1449859455-32609-1-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Sonika Jindal Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_hdmi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit be99c84300950e876074916b215b511f69f83d3b Author: Felipe Balbi Date: Thu Dec 17 09:55:41 2015 -0600 usb: of: fix build breakage on !OF If OF is disabled, we will try to define a stub for of_usb_get_dr_mode_by_phy(), however that missed a static inline annotation which made us redefine the stub over and over again. Fix that. Fixes: 98bfb3946695 ("usb: of: add an api to get dr_mode by the phy node") Signed-off-by: Felipe Balbi include/linux/usb/of.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e45a1e18a57ccc2457429f3bd42d93330c0fee3c Author: Arnd Bergmann Date: Thu Dec 17 16:35:20 2015 +0100 ARM: defconfig: use correct debug_ll settings The debug-ll infrastructure can be configured in two ways, either by selecting a platform specific debug option, or by picking one of the generic options (8250 or pl01x typically). For compatibility with multiplatform kernels, we have changed a couple of platforms to use the former method now when they used to use the latter. Unfortunately, this broke the defconfigs because now they still enable CONFIG_DEBUG_LL_UART_PL01X or CONFIG_DEBUG_LL_UART_8250, and we no longer configure the correct register addresses automatically. Embarrassingly, this was only found in linux-next when the defconfig builds turned up errors for multiple people, and I had not caught those in my own tests, which were done using the randconfig fixes patchset on top, and that has a workaround to avoid a build error when the addresses are not configured. The error was something like: .config:2010:warning: symbol value '' invalid for DEBUG_UART_PHYS .config:2011:warning: symbol value '' invalid for DEBUG_UART_VIRT This patch avoids the problem by removing the respective statements from the defconfig files. Any out of tree defconfig files on the platforms I have changed will have to do the same change or run into the build error above. Any users that have a full .config already set the correct DEBUG_UART_PHYS/VIRT addresses and do not need to change anything. Signed-off-by: Arnd Bergmann Fixes: 4db22c1 ("ARM: debug-ll: rework integrator/versatile handling") Fixes: f06455f ("ARM: debug-ll: rework ep93xx handling") Fixes: c047f52 ("ARM: debug-ll: reorganize mvebu debug uart config") Fixes: 59bd4c3 ("ARM: debug-ll: rework lpc32xx handling") arch/arm/configs/ep93xx_defconfig | 1 - arch/arm/configs/lpc32xx_defconfig | 1 - arch/arm/configs/mv78xx0_defconfig | 1 - arch/arm/configs/orion5x_defconfig | 1 - arch/arm/configs/versatile_defconfig | 1 - 5 files changed, 5 deletions(-) commit be69459a8027787b63e7541d53d1ee86ec9c5056 Author: Imre Deak Date: Tue Dec 15 20:10:38 2015 +0200 drm/i915: check that we are in an RPM atomic section in GGTT PTE updaters The device should be on for the whole duration of the update, so check for this. v2: - use the existing dev_priv directly everywhere (Ville) v3: - check also that we are in an RPM atomic section (Chris) - add the assert to i915_ggtt_insert_entries/clear_range too (Chris) Signed-off-by: Imre Deak Reviewed-by: Chris Wilson Link: http://patchwork.freedesktop.org/patch/msgid/1450203038-5150-11-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/i915_gem_gtt.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) commit 2b19efebf175bb2120c5ae00b8e79febe73d225a Author: Imre Deak Date: Tue Dec 15 20:10:37 2015 +0200 drm/i915: add support for checking RPM atomic sections In some cases we want to check whether we hold an RPM wakelock reference for the whole duration of a sequence. To achieve this add a new RPM atomic sequence counter that we increment any time the wakelock refcount drops to zero. Check whether the sequence number stays the same during the atomic section and that we hold the wakelock at the beginning of the section. Motivated by Chris. v2-v3: - unchanged v4: - swap the order of atomic_read() and assert_rpm_wakelock_held() in assert_rpm_atomic_begin() to avoid race Signed-off-by: Imre Deak Reviewed-by: Chris Wilson (v3) Reviewed-by: Joonas Lahtinen Link: http://patchwork.freedesktop.org/patch/msgid/1450203038-5150-10-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/intel_drv.h | 17 +++++++++++++++++ drivers/gpu/drm/i915/intel_pm.c | 1 + drivers/gpu/drm/i915/intel_runtime_pm.c | 3 ++- 4 files changed, 21 insertions(+), 1 deletion(-) commit 542db3cd345c38936bb9e4bb2c8d1971e6ac6619 Author: Imre Deak Date: Tue Dec 15 20:10:36 2015 +0200 drm/i915: check that we hold an RPM wakelock ref before we put it With this change we have the corresponding wake lock checks in both the rpm get and put functions. v2-v3: - unchanged v4: - keep the corresponding check in the get helper (Chris) v5: - add a note to the commit message that with this change we have the checks both in the rpm get and put functions (Joonas) Signed-off-by: Imre Deak Reviewed-by: Joonas Lahtinen Link: http://patchwork.freedesktop.org/patch/msgid/1450203038-5150-9-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/intel_runtime_pm.c | 1 + 1 file changed, 1 insertion(+) commit 1f814daca43a2d99248fd754eacfb8ba12449235 Author: Imre Deak Date: Wed Dec 16 02:52:19 2015 +0200 drm/i915: add support for checking if we hold an RPM reference Atm, we assert that the device is not suspended until the point when the device is truly put to a suspended state. This is fine, but we can catch more problems if we check that RPM refcount is non-zero. After that one drops to zero we shouldn't access the device any more, even if the actual device suspend may be delayed. Change assert_rpm_wakelock_held() accordingly to check for a non-zero RPM refcount in addition to the current device-not-suspended check. For the new asserts to work we need to annotate every place explicitly in the code where we expect that the device is powered. The places where we only assume this, but may not hold an RPM reference: - driver load We assume the device to be powered until we enable RPM. Make this explicit by taking an RPM reference around the load function. - system and runtime sudpend/resume handlers These handlers are called when the RPM reference becomes 0 and know the exact point after which the device can get powered off. Disable the RPM-reference-held check for their duration. - the IRQ, hangcheck and RPS work handlers These handlers are flushed in the system/runtime suspend handler before the device is powered off, so it's guaranteed that they won't run while the device is powered off even though they don't hold any RPM reference. Disable the RPM-reference-held check for their duration. In all these cases we still check that the device is not suspended. These explicit annotations also have the positive side effect of documenting our assumptions better. This caught additional WARNs from the atomic modeset path, those should be fixed separately. v2: - remove the redundant HAS_RUNTIME_PM check (moved to patch 1) (Ville) v3: - use a new dedicated RPM wakelock refcount to also catch cases where our own RPM get/put functions were not called (Chris) - assert also that the new RPM wakelock refcount is 0 in the RPM suspend handler (Chris) - change the assert error message to be more meaningful (Chris) - prevent false assert errors and check that the RPM wakelock is 0 in the RPM resume handler too - prevent false assert errors in the hangcheck work too - add a device not suspended assert check to the hangcheck work v4: - rename disable/enable_rpm_asserts to disable/enable_rpm_wakeref_asserts and wakelock_count to wakeref_count - disable the wakeref asserts in the IRQ handlers and RPS work too - update/clarify commit message v5: - mark places we plan to change to use proper RPM refcounting with separate DISABLE/ENABLE_RPM_WAKEREF_ASSERTS aliases (Chris) Signed-off-by: Imre Deak Reviewed-by: Chris Wilson Link: http://patchwork.freedesktop.org/patch/msgid/1450227139-13471-1-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/i915_dma.c | 7 +++ drivers/gpu/drm/i915/i915_drv.c | 39 +++++++++++++++-- drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/i915_irq.c | 75 ++++++++++++++++++++++++++++++--- drivers/gpu/drm/i915/intel_drv.h | 50 ++++++++++++++++++++++ drivers/gpu/drm/i915/intel_pm.c | 1 + drivers/gpu/drm/i915/intel_runtime_pm.c | 6 +++ 7 files changed, 169 insertions(+), 10 deletions(-) commit c9b8846a29c82c080b80119b7f85c37a9eb3457f Author: Imre Deak Date: Tue Dec 15 20:10:34 2015 +0200 drm/i915: use assert_rpm_wakelock_held instead of opencoding it Signed-off-by: Imre Deak Reviewed-by: Chris Wilson Link: http://patchwork.freedesktop.org/patch/msgid/1450203038-5150-7-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/intel_runtime_pm.c | 10 ++++------ drivers/gpu/drm/i915/intel_uncore.c | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) commit da5827c366073d17ab38ac6ceea6a3f48e6b5d78 Author: Imre Deak Date: Tue Dec 15 20:10:33 2015 +0200 drm/i915: add assert_rpm_wakelock_held helper As a preparation for follow-up patches add a new helper that checks whether we hold an RPM reference, since this is what we want most of the cases. Atm this helper will only check for the HW suspended state, a follow-up patch will do the actual change to check the refcount instead. One exception is the forcewake release timer function, where it's guaranteed that the HW is on even though the RPM refcount drops to zero. This guarantee is provided by flushing the timer in the runtime suspend handler. So leave the assert_device_not_suspended check in place there. Also rename assert_device_suspended for consistency and export these helpers as a preparation for the follow-up patches. No functional change. v3: - change the assert warning message to be more meaningful (Chris) Signed-off-by: Imre Deak Reviewed-by: Chris Wilson Link: http://patchwork.freedesktop.org/patch/msgid/1450203038-5150-6-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/intel_drv.h | 14 ++++++++++++++ drivers/gpu/drm/i915/intel_uncore.c | 20 +++++++------------- 2 files changed, 21 insertions(+), 13 deletions(-) commit 7f233235300ec49ccfe552983c5870c52d6a1c65 Author: Imre Deak Date: Thu Dec 17 13:48:51 2015 +0200 drm/i915: remove HAS_RUNTIME_PM check from RPM get/put/assert helpers We don't really need to check this flag in the get/put/assert helpers, as on platforms without RPM support we won't ever enable RPM. That means pm.suspend will be always false and the assert will be always true. Do this to simplify the code and to let us extend the RPM asserts to all platforms for a better coverage. Motivated by Ville. v2-v3: - unchanged v4: - remove the HAS_RUNTIME_PM check from intel_runtime_pm_enable() too made possible by the previous two patches v5: - rebased on the previous new patch in the series that keeps HAS_RUNTIME_PM() in intel_runtime_pm_enable() with a permanent reference taken there Signed-off-by: Imre Deak Reviewed-by: Chris Wilson (v3) Reviewed-by: Joonas Lahtinen Link: http://patchwork.freedesktop.org/patch/msgid/1450352931-16498-1-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/intel_runtime_pm.c | 9 --------- drivers/gpu/drm/i915/intel_uncore.c | 3 +-- 2 files changed, 1 insertion(+), 11 deletions(-) commit 25b181b46e4340f69793a886f2cd46608487783b Author: Imre Deak Date: Thu Dec 17 13:44:56 2015 +0200 drm/i915: get a permanent RPM reference on platforms w/o RPM support Currently we disable RPM functionality on platforms that doesn't support this by not putting/getting the RPM reference we receive from the RPM core during driver loading/unloading respectively. This is somewhat obscure, so make it more explicit by keeping a reference dedicated for this particular purpose whenever the driver is loaded. This makes it possible to remove the HAS_RUNTIME_PM() special casing from every other places in the next patch. v2: - fix intel_runtime_pm_get vs. intel_runtime_pm_put in intel_power_domains_fini() v3: - take only a low level RPM reference so the ref tracking asserts continue to work (Ville) - update the commit message - move the patch earlier for bisectability Suggested-by: Ville Syrjälä Signed-off-by: Imre Deak Reviewed-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1450352696-16135-1-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/intel_runtime_pm.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) commit 4dccc93f1e7f4e2fd92a48c40a7ac9211a029352 Merge: d4eed63 9f9499a Author: Linus Walleij Date: Thu Dec 17 14:57:46 2015 +0100 Merge tag 'v4.4-rc5' into devel Linux 4.4-rc5 commit d4eed63bb8a3749a6cf19bbc98c943fafb4a826d Author: Linus Walleij Date: Thu Dec 17 14:50:45 2015 +0100 pinctrl: fixup problematic flag This removes the set_irq_flags() call that unfortunately slipped into the BCM NSP driver. Reported-by: Stephen Rothwell Cc: Yendapally Reddy Dhananjaya Reddy Signed-off-by: Linus Walleij drivers/pinctrl/bcm/pinctrl-nsp-gpio.c | 1 - 1 file changed, 1 deletion(-) commit b268c699aca5c17d997d358d25256fc6abefd29c Author: Imre Deak Date: Tue Dec 15 20:10:31 2015 +0200 drm/i915: refactor RPM disabling due to RC6 being disabled We can make the RPM dependency on RC6 explcit in the code by taking an actual RPM reference, instead of avoiding to drop the initial one. This will also enable us to remove the HAS_RUNTIME_PM special casing from more places in the next patch. v2: - fixed typo in commit message (Joonas) Signed-off-by: Imre Deak Reviewed-by: Joonas Lahtinen Link: http://patchwork.freedesktop.org/patch/msgid/1450203038-5150-4-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/intel_pm.c | 15 +++++++++++++++ drivers/gpu/drm/i915/intel_runtime_pm.c | 9 --------- 2 files changed, 15 insertions(+), 9 deletions(-) commit aabee1bbc11db3f7238e0fef8f1bf280920f98f4 Author: Imre Deak Date: Tue Dec 15 20:10:29 2015 +0200 drm/i915: clarify comment about mandatory RPM put/get during driver load/unload Signed-off-by: Imre Deak Reviewed-by: Joonas Lahtinen Link: http://patchwork.freedesktop.org/patch/msgid/1450203038-5150-2-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/intel_runtime_pm.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit 2d7f61f37731f635af47615a8a331ffe7f884934 Author: Bill Huang Date: Thu Jun 18 17:28:39 2015 -0400 clk: tegra: Read correct IDDQ register in PLL_SS registration This fixes a bug in tegra_clk_register_pllss() which mistakenly assume the IDDQ register is the PLL base address. Signed-off-by: Bill Huang Reviewed-by: Benson Leung Signed-off-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-pll.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit a4ca2b2fe7252032022d14b4efd462161c91165b Author: Bill Huang Date: Thu Jun 18 17:28:38 2015 -0400 clk: tegra: Fix WARN_ON in PLL_RE registration This fixes two things. - Read the correct IDDQ register - Check the correct IDDQ bit position Signed-off-by: Bill Huang Reviewed-by: Benson Leung Signed-off-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-pll.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit afff455cf4f2501d30446eefbfd0aecb14b8a0b8 Author: Andrew Bresticker Date: Thu Jun 18 17:28:37 2015 -0400 clk: tegra: pll: Fix issues with rates for VCO PLLs Without this change clk_get_rate would return the final output rather than the VCO output as it would factor in the pdiv when it shouldn't. This will cause problems for all dividers in the subtree of the VCO PLL. Signed-off-by: Andrew Bresticker Reviewed-by: Benson Leung Signed-off-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-pll.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit 6b301a059eb2ebed1b12a900e3b21a38e48dd410 Author: Rhyland Klein Date: Thu Jun 18 17:28:36 2015 -0400 clk: tegra: Add support for Tegra210 clocks Implement clock support for Tegra210. Signed-off-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/Makefile | 1 + drivers/clk/tegra/clk-id.h | 7 + drivers/clk/tegra/clk-pll.c | 5 + drivers/clk/tegra/clk-tegra210.c | 2852 ++++++++++++++++++++++++++++++++++++++ drivers/clk/tegra/clk.h | 3 + 5 files changed, 2868 insertions(+) commit 139fd30943c3c8ed76d0ce08ff711cfff3b118ec Author: Bill Huang Date: Thu Jun 18 17:28:35 2015 -0400 clk: tegra: Add Super Gen5 Logic Super clock divider control and clock source mux of Tegra210 has changed a little against prior SoCs, this patch adds Gen5 logic to address those differences. Signed-off-by: Bill Huang Signed-off-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-tegra-super-gen4.c | 142 ++++++++++++++++++++++++++++--- drivers/clk/tegra/clk.h | 3 + 2 files changed, 132 insertions(+), 13 deletions(-) commit 0ef9db6cf24dbb58118818e64198d9a030e4697e Author: Bill Huang Date: Thu Jun 18 17:28:33 2015 -0400 clk: tegra: pll: Add logic for SS Add some logic for Spread Spectrum control. It is used in conjuncture with SDM fractional dividers. SSC has to be disabled when we configure the divider settings. Signed-off-by: Bill Huang Signed-off-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-pll.c | 25 ++++++++++++++++++++++++- drivers/clk/tegra/clk.h | 4 ++++ 2 files changed, 28 insertions(+), 1 deletion(-) commit 17e9273a9e00a1fc8a64d6de3c7bb9e5020b1b73 Author: Rhyland Klein Date: Thu Jun 18 17:28:32 2015 -0400 clk: tegra: pll: Add dyn_ramp callback Add a callback to the pll_params for custom dynamic ramping functions which can be specified per PLL. Reviewed-by: Benson Leung Signed-off-by: Bill Huang Signed-off-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-pll.c | 7 +++++++ drivers/clk/tegra/clk.h | 4 ++++ 2 files changed, 11 insertions(+) commit b985114e2f946de069b00002bd46a4efba5334eb Author: Bill Huang Date: Thu Jun 18 17:28:31 2015 -0400 clk: tegra: pll: Add Set_default logic Add logic which (if specified for a pll) can verify that a PLL is set to the proper default value and if not can set it. This can be specified per PLL as each will have different default values. Based on original work by Aleksandr Frid Signed-off-by: Bill Huang Signed-off-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-pll.c | 39 ++++++++++++++++++++++++++++----------- drivers/clk/tegra/clk.h | 11 +++++++++++ 2 files changed, 39 insertions(+), 11 deletions(-) commit b5512b45d5ed699de328e17cd7c7027d89461920 Author: Bill Huang Date: Thu Jun 18 17:28:30 2015 -0400 clk: tegra: pll: Adjust vco_min if SDM present This code makes use of the SDM fractional divider if present to constrain the allowable programming range of the PLL divider register bitfields to take advantage of higher frequency granularity that can be induced by the SDM divider. Based on original work by Aleksandr Frid Signed-off-by: Bill Huang Signed-off-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-pll.c | 28 ++++++++++++++++++++++++++++ drivers/clk/tegra/clk.h | 4 ++++ 2 files changed, 32 insertions(+) commit 6929715cf6b944d8f88beb2aa25658084de106ab Author: Rhyland Klein Date: Thu Jun 18 17:28:29 2015 -0400 clk: tegra: pll: Add support for PLLMB for Tegra210 Tegra210 SoC's have 2 PLLs for memory usage. Add plumbing to register and handle PLLMB. PLLMB is used to allow switching between 2 PLLM's without having to use and intermediate backup PLL, as we need to lock the PLL before we can switch to it. Reviewed-by: Benson Leung Signed-off-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-pll.c | 48 ++++++++++++++++++++++++++++++++++++++++----- drivers/clk/tegra/clk.h | 9 +++++++++ 2 files changed, 52 insertions(+), 5 deletions(-) commit dd322f047d226a1134775c77c1c6088271d5d1de Author: Rhyland Klein Date: Thu Jun 18 17:28:28 2015 -0400 clk: tegra: pll: Add specialized logic for Tegra210 On Tegra210 SoC's, the logic to enable several of the plls is different from previous generations. Therefore, add registration functions specific to Tegra210 which will handle them appropriately. Reviewed-by: Benson Leung Signed-off-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-pll.c | 324 +++++++++++++++++++++++++++++++++++++++++++- drivers/clk/tegra/clk.h | 24 ++++ 2 files changed, 346 insertions(+), 2 deletions(-) commit 1b855e167b90fcb353977c08932d0a52eb8ae5b9 Author: Daniel Axtens Date: Thu Dec 17 19:41:00 2015 +1100 powerpc: Add missing calls to va_end() cppcheck picked up that there were a couple of missing va_end() calls in functions using va_start(). Signed-off-by: Daniel Axtens Reviewed-by: Russell Currey Signed-off-by: Michael Ellerman arch/powerpc/kernel/prom_init.c | 1 + arch/powerpc/platforms/powermac/bootx_init.c | 1 + 2 files changed, 2 insertions(+) commit aae881ad73460e1b2aea01f079a0541bd5a9136c Author: Geert Uytterhoeven Date: Tue Dec 15 09:33:20 2015 +0100 arm64: perf: Correct Cortex-A53/A57 compatible values Use commas instead of periods. Acked-by: Mark Rutland Acked-by: Dirk Behme Signed-off-by: Geert Uytterhoeven Signed-off-by: Will Deacon Documentation/devicetree/bindings/arm/pmu.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit af998f853124231ef3bff05621f157a19af05d20 Author: Kuninori Morimoto Date: Thu Dec 17 02:49:43 2015 +0000 ASoC: rsrc-card: tidyup dai format for DPCM rsrc-card is DPCM supported version of simple-card. Thus it has similar DT format. OTOH, snd_soc_dai_link requests cpu/codec, but one of them will be snd-soc-dummy in DPCM case, and DPCM requests frontend/backend dai_link. This means it might have multi backend/codec. And, SND_SOC_DAIFMT_xxx is based on "codec". Because of these difference, current rsrc card can't detect correct dai_fmt. This patch detect correct dai fmt from 1st "codec". Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/rsrc-card.c | 82 +++++++++++++++++++++++++++++-------------- 1 file changed, 55 insertions(+), 27 deletions(-) commit ae638b725ee00afe3253e30df617a5531ea30ea2 Author: Kuninori Morimoto Date: Thu Dec 17 02:48:58 2015 +0000 ASoC: rsrc-card: Remove support for setting differing DAI formats 1efb53a220 ("ASoC: simple-card: Remove support for setting differing DAI formats") removed set_fmt support from simple-card. rsrc-card follows same style, because it is based on simple-card. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/rsrc-card.c | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) commit 6dad9758a5e3e75de91871a636572d64806b240f Author: Kuninori Morimoto Date: Thu Dec 17 02:48:23 2015 +0000 ASoC: rsrc-card: enable to use tdm_slot on DT Renesas sound driver will use tdm slot on TDM Multi Mode support. This patch enables tdm slot on rsrc card driver on DT. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/rsrc-card.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit bc1765d6e81a70be36a7290bcc829a7714101bbb Author: Charles Keepax Date: Thu Dec 17 10:05:59 2015 +0000 ASoC: wm_adsp: Mimic legacy behaviour of reading controls when DSP is on Older firmwares don't specify access flags for the controls, unfortunately the usage of some of these firmware relies on being able to read back values from the DSP. The current control code will only do this for volatile controls. This patch will read the control from the hardware if no flags are specified and the control is currently enabled, which should cover these legacy use-cases. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm_adsp.c | 3 +++ 1 file changed, 3 insertions(+) commit 12c2ab09571e8aae3a87da2a4a452632a5fac1e5 Author: Will Deacon Date: Tue Dec 15 16:08:12 2015 +0000 iommu/io-pgtable-arm: Ensure we free the final level on teardown When tearing down page tables, we return early for the final level since we know that we won't have any table pointers to follow. Unfortunately, this also means that we forget to free the final level, so we end up leaking memory. Fix the issue by always freeing the current level, but just don't bother to iterate over the ptes if we're at the final level. Cc: Reported-by: Zhang Bo Signed-off-by: Will Deacon drivers/iommu/io-pgtable-arm.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 6380be0535fd60c0a346ec0ae447f0f6c9e3ea83 Author: Prem Mallappa Date: Mon Dec 14 22:01:23 2015 +0530 iommu/arm-smmu: Use STE.S1STALLD only when supported It is ILLEGAL to set STE.S1STALLD to 1 if stage 1 is enabled and either the stall or terminate models are not supported. This patch fixes the STALLD check and ensures that we don't set STALLD in the STE when it is not supported. Signed-off-by: Prem Mallappa [will: consistently use IDR0_STALL_MODEL_* prefix] Signed-off-by: Will Deacon drivers/iommu/arm-smmu-v3.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) commit 324ba1082323a51a3ad282c20e3d3b11845cf030 Author: Prem Mallappa Date: Mon Dec 14 22:01:14 2015 +0530 iommu/arm-smmu: Fix write to GERRORN register When acknowledging global errors, the GERRORN register should be written with the original GERROR value so that active errors are toggled. This patch fixed the driver to write the original GERROR value to GERRORN, instead of an active error mask. Signed-off-by: Prem Mallappa [will: reworked use of active bits and fixed commit log] Signed-off-by: Will Deacon drivers/iommu/arm-smmu-v3.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit fdc38967633ec23b3b24dfc487dfb7b90d1a0215 Author: Robin Murphy Date: Fri Dec 4 17:53:01 2015 +0000 iommu/io-pgtable: Make io_pgtable_ops_to_pgtable() macro common There is no need to keep a useful accessor for a public structure hidden away in a private implementation. Move it out alongside the structure definition so that other implementations may reuse it. Acked-by: Laurent Pinchart Signed-off-by: Robin Murphy Signed-off-by: Will Deacon drivers/iommu/io-pgtable-arm.c | 3 --- drivers/iommu/io-pgtable.h | 2 ++ 2 files changed, 2 insertions(+), 3 deletions(-) commit 75df1386557c25188bd2383bbe8dd14a5ac81c06 Author: Robin Murphy Date: Mon Dec 7 18:18:52 2015 +0000 iommu/arm-smmu: Invalidate TLBs properly When invalidating an IOVA range potentially spanning multiple pages, such as when removing an entire intermediate-level table, we currently only issue an invalidation for the first IOVA of that range. Since the architecture specifies that address-based TLB maintenance operations target a single entry, an SMMU could feasibly retain live entries for subsequent pages within that unmapped range, which is not good. Make sure we hit every possible entry by iterating over the whole range at the granularity provided by the pagetable implementation. Signed-off-by: Robin Murphy [will: added missing semicolons...] Signed-off-by: Will Deacon drivers/iommu/arm-smmu-v3.c | 5 ++++- drivers/iommu/arm-smmu.c | 16 +++++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) commit 06c610e8f32ba2fe41d57e1718611c2ec5024878 Author: Robin Murphy Date: Mon Dec 7 18:18:53 2015 +0000 iommu/io-pgtable: Indicate granule for TLB maintenance IOMMU hardware with range-based TLB maintenance commands can work happily with the iova and size arguments passed via the tlb_add_flush callback, but for IOMMUs which require separate commands per entry in the range, it is not straightforward to infer the necessary granularity when it comes to issuing the actual commands. Add an additional argument indicating the granularity for the benefit of drivers needing to know, and update the ARM LPAE code appropriately (for non-leaf invalidations we currently just assume the worst-case page granularity rather than walking the table to check). Signed-off-by: Robin Murphy Signed-off-by: Will Deacon drivers/iommu/arm-smmu-v3.c | 2 +- drivers/iommu/arm-smmu.c | 2 +- drivers/iommu/io-pgtable-arm.c | 27 +++++++++++++++------------ drivers/iommu/io-pgtable.h | 4 ++-- drivers/iommu/ipmmu-vmsa.c | 4 ++-- 5 files changed, 21 insertions(+), 18 deletions(-) commit 2eb97c78613082f308c0b39366c034cb589b8ee9 Author: Robin Murphy Date: Fri Dec 4 17:52:58 2015 +0000 iommu/io-pgtable-arm: Avoid dereferencing bogus PTEs In the case of corrupted page tables, or when an invalid size is given, __arm_lpae_unmap() may recurse beyond the maximum number of levels. Unfortunately the detection of this error condition only happens *after* calculating a nonsense offset from something which might not be a valid table pointer and dereferencing that to see if it is a valid PTE. Make things a little more robust by checking the level is valid before doing anything which depends on it being so. Reviewed-by: Laurent Pinchart Signed-off-by: Robin Murphy Signed-off-by: Will Deacon drivers/iommu/io-pgtable-arm.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit a0d5c04c6053d8c47cca37384ae472f6b2ee0dee Author: Will Deacon Date: Fri Dec 4 12:00:29 2015 +0000 iommu/arm-smmu: Handle unknown CERROR values gracefully Whilst the architecture only defines a few of the possible CERROR values, we should handle unknown values gracefully rather than go out of bounds trying to print out an error description. Signed-off-by: Will Deacon drivers/iommu/arm-smmu-v3.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 9a4a9d8c34bc0b0102e8a9dd67ee3910b0bfaeb4 Author: Peng Fan Date: Fri Nov 20 16:56:18 2015 +0800 iommu/arm-smmu: Correct group reference count The basic flow for add a device: arm_smmu_add_device |->iommu_group_get_for_dev |->iommu_group_get return group; (1) |->ops->device_group : Init/increase reference count to/by 1. |->iommu_group_add_device : Increase reference count by 1. return group (2) |->return 0; Since we are adding one device, the flow is (2) and the group reference count will be increased by 2. So, we need to add iommu_group_put at the end of arm_smmu_add_device to decrease the count by 1. Also take the failure path into consideration when fail to add a device. Signed-off-by: Peng Fan Cc: Will Deacon Signed-off-by: Will Deacon drivers/iommu/arm-smmu-v3.c | 18 +++++++++++------- drivers/iommu/arm-smmu.c | 1 + 2 files changed, 12 insertions(+), 7 deletions(-) commit a0eacd89e35e55aad284cc2e6865bf2dcf7037ba Author: Will Deacon Date: Wed Nov 18 18:15:51 2015 +0000 iommu/arm-smmu: Use incoming shareability attributes in bypass mode When we initialise a bypass STE, we memset the structure to zero and set the Valid and Config fields to indicate that the stream should bypass the SMMU. Unfortunately, this results in an SHCFG field of 0 which means that the shareability of any incoming transactions is overridden with non-shareable, leading to potential coherence problems down the line. This patch fixes the issue by initialising bypass STEs to use the incoming shareability attributes. When translation is in effect at either stage 1 or stage 2, the shareability is determined by the page tables. Signed-off-by: Will Deacon drivers/iommu/arm-smmu-v3.c | 5 +++++ 1 file changed, 5 insertions(+) commit 44830b0cbdba29789f2a569d08dbaa3d1605c94c Author: Markus Elfring Date: Fri Nov 6 18:32:41 2015 +0100 iommu/arm-smmu: Delete an unnecessary check before free_io_pgtable_ops() The free_io_pgtable_ops() 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 Signed-off-by: Will Deacon drivers/iommu/arm-smmu.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 04fa26c71be5d7cf1c63f23f6345dad209f361d7 Author: Will Deacon Date: Fri Oct 30 18:12:41 2015 +0000 iommu/arm-smmu: Convert DMA buffer allocations to the managed API The ARM SMMUv3 driver uses dma_{alloc,free}_coherent to manage its queues and configuration data structures. This patch converts the driver to the managed (dmam_*) API, so that resources are freed automatically on device teardown. This greatly simplifies the failure paths and allows us to remove a bunch of handcrafted freeing code. Signed-off-by: Will Deacon drivers/iommu/arm-smmu-v3.c | 132 +++++++------------------------------------- 1 file changed, 21 insertions(+), 111 deletions(-) commit 89df3a96baeaf5d565183e9e9fc35c9974c20d68 Author: Will Deacon Date: Thu Oct 29 13:48:56 2015 +0000 iommu/arm-smmu: Remove #define for non-existent PRIQ_0_OF field PRIQ_0_OF has been removed from the SMMUv3 architecture, so remove its corresponding (and unused) #define from the driver. Signed-off-by: Will Deacon drivers/iommu/arm-smmu-v3.c | 1 - 1 file changed, 1 deletion(-) commit bcb337d166044cf389d3b9d3e6063c1ec4ca685d Author: Takashi Iwai Date: Thu Dec 17 08:31:45 2015 +0100 ALSA: hda - Drop unused AZX_DCAPS_REVERSE_ASSIGN AZX_DCAPS_REVERSE_ASSIGN is no longer referred by any code. Let's drop it. Signed-off-by: Takashi Iwai sound/pci/hda/hda_controller.h | 2 +- sound/pci/hda/hda_intel.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 26f0571781da98ea996c0cd7e03b733055b70f1f Author: Takashi Iwai Date: Thu Dec 17 08:29:53 2015 +0100 ALSA: hda - Drop AZX_DCAPS_POSFIX_VIA bit AZX_DCAPS_POSFIX_VIA is coupled always with AZX_DRIVER_VIA type, so we don't have to keep this bit in dcaps. Save one more! Signed-off-by: Takashi Iwai sound/pci/hda/hda_controller.h | 2 +- sound/pci/hda/hda_intel.c | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) commit 7d9a180895ee8c301df7f9447429009795c56c21 Author: Takashi Iwai Date: Thu Dec 17 08:23:39 2015 +0100 ALSA: hda - Raise AZX_DCAPS_RIRB_DELAY handling into top drivers AZX_DCAPS_RIRB_DELAY is dedicated only for Nvidia and its purpose is just to set a flag in bus. So it's better to be set in the toplevel driver, either hda_intel.c or hda_tegra.c, instead of the common hda_controller.c. This also allows us to strip this flag from dcaps, so save one more bit there. Signed-off-by: Takashi Iwai sound/pci/hda/hda_controller.c | 5 ----- sound/pci/hda/hda_controller.h | 2 +- sound/pci/hda/hda_intel.c | 7 ++++++- sound/pci/hda/hda_tegra.c | 5 +++-- 4 files changed, 10 insertions(+), 9 deletions(-) commit e5f809171a217a83850e49b48b091188b27ce9f0 Author: Tomi Valkeinen Date: Wed Oct 21 13:08:59 2015 +0300 OMAPDSS: DISPC: always set ALIGN when available By default DISPC asserts hsync and vsync sequentially, i.e. there's first hsync and that is immediately followed by vsync. This is the only available behaviour on OMAP2/3, and default behaviour on OMAP4+. OMAP4+ has ALIGN bit in POL_FREQ register, which makes DISPC assert both syncs at the same time. It has been observed that some panels don't like sequential syncs (AM5 EVM's panel). After studying the datasheets for multiple panels and encoders, and MIPI DPI spec, it looks like there is no standard way to handle this. Sometimes the datasheets don't mention the required syncs behaviour at all, sometimes the datasheets have images that hint towards simultaneous syncs, and sometimes it is explicitly mentioned that simultaneous syncs are needed. No panels or encoders requiring sequential sync was found. It thus seems to be safe to default to simultaneous syncs when the ALIGN bit is available. This fixed AM5 EVM's panel, and no side effects have been observed on other panels or encoders. Signed-off-by: Tomi Valkeinen Acked-by: Laurent Pinchart drivers/video/fbdev/omap2/dss/dispc.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 5038bb8cb2c9dfec6d188bdf9fc0d7a358e1e2ee Author: Dave Gerlach Date: Fri Oct 31 16:28:57 2014 -0500 OMAPDSS: adopt pinctrl support Update omapdss driver to set the state of the pins to: - "default on resume - "sleep" on suspend By optionally putting the pins into sleep state in the suspend callback we can accomplish two things. - minimize current leakage from pins and thus save power, - prevent the IP from driving pins output in an uncontrolled manner, which may happen if the power domain drops the domain regulator. Signed-off-by: Dave Gerlach Acked-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/dss.c | 6 ++++++ 1 file changed, 6 insertions(+) commit e9d764f803964a54ca7da4a67d124fe824ebd80a Author: Nathan Fontenot Date: Wed Dec 16 14:56:02 2015 -0600 powerpc/pseries: Enable kernel CPU dlpar from sysfs Enable new kernel cpu hotplug functionality by allowing cpu dlpar requests to be initiated from sysfs. Signed-off-by: Nathan Fontenot Signed-off-by: Michael Ellerman arch/powerpc/platforms/pseries/dlpar.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 90edf184b9b7275d248f1b9902733a0000e4ecf8 Author: Nathan Fontenot Date: Wed Dec 16 14:55:07 2015 -0600 powerpc/pseries: Add CPU dlpar add functionality Add the ability to hotplug add cpus via rtas hotplug events by either specifying the drc index of the CPU to add, or providing a count of the number of CPUs to add. Signed-off-by: Nathan Fontenot Signed-off-by: Michael Ellerman arch/powerpc/platforms/pseries/hotplug-cpu.c | 116 +++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) commit ac71380071d19d4ac7cd5f9fe4168d7109902cd5 Author: Nathan Fontenot Date: Wed Dec 16 14:54:05 2015 -0600 powerpc/pseries: Add CPU dlpar remove functionality Add the ability to dlpar remove CPUs via hotplug rtas events, either by specifying the drc-index of the CPU to remove or providing a count of cpus to remove. To remove multiple cpus in a single request we create a list of possible DR (Dynamic Reconfiguration) cpus and their drc indexes that can be removed. We can then traverse the list remove each cpu and easily clean up in any cases of failure. Signed-off-by: Nathan Fontenot Signed-off-by: Michael Ellerman arch/powerpc/platforms/pseries/hotplug-cpu.c | 147 +++++++++++++++++++++++++++ arch/powerpc/platforms/pseries/pseries.h | 9 ++ 2 files changed, 156 insertions(+) commit e666ae0b10aaa1c961c928558bafc28bc049ac87 Author: Nathan Fontenot Date: Wed Dec 16 14:52:39 2015 -0600 powerpc/pseries: Update CPU hotplug error recovery Update the cpu dlpar add/remove paths to do better error recovery when a failure occurs during the add/remove operation. Signed-off-by: Nathan Fontenot Signed-off-by: Michael Ellerman arch/powerpc/platforms/pseries/hotplug-cpu.c | 76 +++++++++++++++++++++++----- 1 file changed, 63 insertions(+), 13 deletions(-) commit d98389f375329b7a37d0e9211a1216d9141d7a5f Author: Nathan Fontenot Date: Wed Dec 16 14:51:26 2015 -0600 powerpc/pseries: Factor out common cpu hotplug code Re-factor the cpu hotplug code to support doing cpu hotplug completely in the kernel and using the existing sysfs probe/release interfaces. This patch pulls out pieces of existing cpu hotplug code into common routines, dlpar_cpu_add() and dlpar_cpu_remove(), to be used by both interfaces. There are no functional changes introduced. Signed-off-by: Nathan Fontenot Signed-off-by: Michael Ellerman arch/powerpc/platforms/pseries/hotplug-cpu.c | 70 ++++++++++++++++------------ 1 file changed, 39 insertions(+), 31 deletions(-) commit 183deeea5871a6f750ec64ab1cff85fb089d38df Author: Nathan Fontenot Date: Wed Dec 16 14:50:21 2015 -0600 powerpc/pseries: Consolidate CPU hotplug code to hotplug-cpu.c No functional changes, this patch is simply a move of the cpu hotplug code from pseries/dlpar.c to pseries/hotplug-cpu.c. This is in an effort to consolidate all of the cpu hotplug code in a common place. Signed-off-by: Nathan Fontenot Signed-off-by: Michael Ellerman arch/powerpc/platforms/pseries/dlpar.c | 226 +-------------------------- arch/powerpc/platforms/pseries/hotplug-cpu.c | 218 ++++++++++++++++++++++++++ 2 files changed, 219 insertions(+), 225 deletions(-) commit 1f859adb9253c201079962582253236e9b2cc3ce Author: Nathan Fontenot Date: Fri Oct 23 12:45:57 2015 -0500 powerpc/pseries: Verify CPU doesn't exist before adding When DLPAR adding a CPU we should verify that the CPU does not already exist. Failure to do so can generate a kernel oops; [ 9.465585] kernel BUG at arch/powerpc/platforms/pseries/dlpar.c:382! [ 9.465796] Oops: Exception in kernel mode, sig: 5 [#1] This oops can be generated by causing a probe to be performed on a cpu by writing to the sysfs cpu probe file (/sys/devices/system/cpu/probe). This patch adds a check for the existence of cpu prior to probing the cpu so userspace doing the wrong thing won't trigger a BUG_ON(). Signed-off-by: Nathan Fontenot Signed-off-by: Michael Ellerman arch/powerpc/platforms/pseries/dlpar.c | 43 ++++++++++++++++++++++++++++++---- 1 file changed, 39 insertions(+), 4 deletions(-) commit 4450022b4952ce67d2f3006b4c38e12a0f38cd77 Author: Alistair Popple Date: Mon Dec 14 14:31:24 2015 +1100 powerpc/476fpe: Add support for kexec PPC476FPE has a different PVR from previous PPC476 processors. The kexec code checks the PVR in order to correctly setup the MMU. When the initial support for 476FPE processors was added the corresponding change in the kexec code was missed. This patch simply adds the check and solves the following bug on kexec: kexec: Starting new kernel Bye! Unable to handle kernel paging request for instruction fetch Faulting instruction address: 0xee9a50f8 cpu 0x0: Vector: 400 (Instruction Access) at [ee9d7d20] pc: ee9a50f8 lr: ee9a50e4 sp: ee9d7dd0 msr: 21020 current = 0xee40f000 pid = 960, comm = kexec enter ? for help [link register ] ee9a50e4 [ee9d7dd0] c0013748 default_machine_kexec+0x58/0x70 (unreliable) [ee9d7df0] c0012f04 machine_kexec+0x34/0x40 [ee9d7e00] c00aa1ec kernel_kexec+0x9c/0xb0 [ee9d7e20] c005d704 SyS_reboot+0x1f4/0x220 [ee9d7f40] c000db68 ret_from_syscall+0x0/0x3c Signed-off-by: Michael Ellerman arch/powerpc/kernel/misc_32.S | 2 ++ 1 file changed, 2 insertions(+) commit 5d2aa710e697244f5504125e4aa6e2cfcf6c4791 Author: Alistair Popple Date: Thu Dec 17 13:43:13 2015 +1100 powerpc/powernv: Add support for Nvlink NPUs NVLink is a high speed interconnect that is used in conjunction with a PCI-E connection to create an interface between CPU and GPU that provides very high data bandwidth. A PCI-E connection to a GPU is used as the control path to initiate and report status of large data transfers sent via the NVLink. On IBM Power systems the NVLink processing unit (NPU) is similar to the existing PHB3. This patch adds support for a new NPU PHB type. DMA operations on the NPU are not supported as this patch sets the TCE translation tables to be the same as the related GPU PCIe device for each NVLink. Therefore all DMA operations are setup and controlled via the PCIe device. EEH is not presently supported for the NPU devices, although it may be added in future. Signed-off-by: Alistair Popple Signed-off-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/include/asm/pci.h | 4 + arch/powerpc/platforms/powernv/Makefile | 2 +- arch/powerpc/platforms/powernv/npu-dma.c | 348 ++++++++++++++++++++++++++++++ arch/powerpc/platforms/powernv/pci-ioda.c | 138 ++++++++++-- arch/powerpc/platforms/powernv/pci.c | 4 + arch/powerpc/platforms/powernv/pci.h | 19 ++ 6 files changed, 502 insertions(+), 13 deletions(-) commit a84bf321401ab206baafbbfd3bfad485a1a2c3b4 Author: Alistair Popple Date: Thu Dec 17 13:43:12 2015 +1100 powerpc: Add __raw_rm_writeq() function Move __raw_rm_writeq() from platforms/powernv/pci-ioda.c to include/asm/io.h so that it can be used by other code. Signed-off-by: Alistair Popple Signed-off-by: Michael Ellerman arch/powerpc/include/asm/io.h | 11 +++++++++++ arch/powerpc/platforms/powernv/pci-ioda.c | 10 ---------- 2 files changed, 11 insertions(+), 10 deletions(-) commit 94973b24d61b03f99017f836d85e7d6739741bab Author: Alistair Popple Date: Thu Dec 17 13:43:11 2015 +1100 Revert "powerpc/pci: Remove unused struct pci_dn.pcidev field" This commit removed the pcidev field from struct pci_dn as it was no longer in use by the kernel. However to support finding the association of Nvlink devices to GPU devices from the device-tree this field is required. This reverts commit 250c7b277c65 ("powerpc/pci: Remove unused struct pci_dn.pcidev field"). Signed-off-by: Alistair Popple Signed-off-by: Michael Ellerman arch/powerpc/include/asm/pci-bridge.h | 1 + arch/powerpc/platforms/powernv/pci-ioda.c | 1 + 2 files changed, 2 insertions(+) commit e80c4e7ca5aed7d2fa766191bcf4e83fa411c720 Author: Gavin Shan Date: Thu Oct 22 12:03:08 2015 +1100 powerpc/powernv: Fix M64 resource name in /proc/iomem The name of PCI root bus's M64 resource isn't initialized properly. When dumping "/proc/iomem", "" is seen for those M64 resources on PCI root buses. ~# cat /proc/iomem | grep -e "BAD" 3b0000000000-3b0fefffffff : 3b1000000000-3b1fefffffff : 3c0000000000-3c0fefffffff : 3c1000000000-3c1fefffffff : 3c2000000000-3c2fefffffff : This fixes the issue by setting the name of PCI root bus's M64 resource to that of PHB's device node full name. With the patch, no "" is seen from "/proc/iomem". Signed-off-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci-ioda.c | 1 + 1 file changed, 1 insertion(+) commit 7207f43665b83ed7881c5111bc45475ccf5ce48b Author: Laurent Dufour Date: Thu Dec 3 11:29:19 2015 +0100 powerpc/mm: Add page soft dirty tracking User space checkpoint and restart tool (CRIU) needs the page's change to be soft tracked. This allows to do a pre checkpoint and then dump only touched pages. This is done by using a newly assigned PTE bit (_PAGE_SOFT_DIRTY) when the page is backed in memory, and a new _PAGE_SWP_SOFT_DIRTY bit when the page is swapped out. To introduce a new PTE _PAGE_SOFT_DIRTY bit value common to hash 4k and hash 64k pte, the bits already defined in hash-*4k.h should be shifted left by one. The _PAGE_SWP_SOFT_DIRTY bit is dynamically put after the swap type in the swap pte. A check is added to ensure that the bit is not overwritten by _PAGE_HPTEFLAGS. Signed-off-by: Laurent Dufour CC: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/Kconfig | 2 ++ arch/powerpc/include/asm/book3s/64/hash-4k.h | 2 +- arch/powerpc/include/asm/book3s/64/hash-64k.h | 4 ++-- arch/powerpc/include/asm/book3s/64/hash.h | 30 ++++++++++++++++++++++----- arch/powerpc/include/asm/book3s/64/pgtable.h | 26 +++++++++++++++++++++++ 5 files changed, 56 insertions(+), 8 deletions(-) commit 2613265cb5b07a46bc01eb67202874136efd7049 Author: Michael Ellerman Date: Wed Dec 16 21:10:22 2015 +1100 powerpc/kernel: Combine vec/loc for STD_EXCEPTION_PSERIES The STD_EXCEPTION_PSERIES macro takes both a vector number, and a location (memory address). However both are always identical, so combine them to save repeating ourselves. This does mean an exception handler must always exist at the location in memory that matches its vector number. But that's OK because this is the "STD" macro (standard), which does exactly that. We have other macros for the other cases, eg. STD_EXCEPTION_PSERIES_OOL (out of line). Signed-off-by: Michael Ellerman arch/powerpc/include/asm/exception-64s.h | 4 ++-- arch/powerpc/kernel/exceptions-64s.S | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) commit d8725ce86c37fa750fc01f739ee4d4ced39167da Author: Michael Ellerman Date: Wed Nov 25 14:25:18 2015 +1100 powerpc/kernel: Open code SET_DEFAULT_THREAD_PPR This is only used in one location, open code it. Signed-off-by: Michael Ellerman arch/powerpc/include/asm/ppc_asm.h | 13 ------------- arch/powerpc/kernel/entry_64.S | 8 +++++++- 2 files changed, 7 insertions(+), 14 deletions(-) commit d030a4b5eb7e9514c15b84a765bcc395cc26ab40 Author: Michael Ellerman Date: Wed Nov 25 14:25:17 2015 +1100 powerpc/kernel: Open code HMT_MEDIUM_LOW_HAS_PPR HMT_MEDIUM_LOW_HAS_PPR is only used in once place, open code it. Signed-off-by: Michael Ellerman arch/powerpc/include/asm/ppc_asm.h | 5 ----- arch/powerpc/kernel/entry_64.S | 6 +++++- 2 files changed, 5 insertions(+), 6 deletions(-) commit d6265aeaf815801ad53a95f11cea8ea752862176 Author: Michael Ellerman Date: Wed Nov 25 14:25:16 2015 +1100 powerpc/kernel: Drop HMT_MEDIUM_PPR_DISCARD HMT_MEDIUM_PPR_DISCARD is a macro which is present at the start of most of our first level exception handlers. It conditionally executes a HMT_MEDIUM instruction, which sets the processor priority to medium. On on modern systems, ie. Power7 and later, it is nop'ed out at boot. All it does is make the exception vectors more cramped, and consume 4 bytes of icache. On old systems it has the effect of boosting the processor priority at the start of exception processing. If we were previously in the idle loop for example, we may be at low or very low priority. This is desirable as we want to process the exception as fast as possible. However looking closely at the generated code, we see that in all cases we execute another HMT_MEDIUM just four instructions later. With code patching applied, the final code on an old (Power6) system will look like, eg: c000000000000300 : c000000000000300: 7c 42 13 78 mr r2,r2 <- c000000000000304: 7d b2 43 a6 mtsprg 2,r13 c000000000000308: 7d b1 42 a6 mfsprg r13,1 c00000000000030c: f9 2d 00 80 std r9,128(r13) c000000000000310: 60 00 00 00 nop c000000000000314: 7c 42 13 78 mr r2,r2 <- So I suggest that the added code complexity of HMT_MEDIUM_PPR_DISCARD is not justified by the benefit of boosting the processor priority for the duration of four instructions, and therefore we drop it. Signed-off-by: Michael Ellerman arch/powerpc/include/asm/exception-64s.h | 15 --------------- arch/powerpc/kernel/exceptions-64s.S | 9 --------- 2 files changed, 24 deletions(-) commit cd5cdeb6c8a42fb87644b0eb5d240f6ce6172402 Author: Michael Ellerman Date: Tue Nov 24 22:26:12 2015 +1100 powerpc/rtas: Make enter_rtas() private There are no longer any users of enter_rtas() outside of rtas.c, so make it "private", by moving the declaration inside rtas.c. Hopefully this will encourage people to use one of the wrappers which takes the sharp edges off the RTAS calling sequence. Signed-off-by: Michael Ellerman arch/powerpc/include/asm/rtas.h | 1 - arch/powerpc/kernel/rtas.c | 3 +++ 2 files changed, 3 insertions(+), 1 deletion(-) commit 4456f4524604be2558e5f6a8e0f7cc9ed17c783e Author: Michael Ellerman Date: Tue Nov 24 22:26:11 2015 +1100 powerpc/rtas: Use rtas_call_unlocked() in call_rtas_display_status() Although call_rtas_display_status() does actually want to use the regular RTAS locking, it doesn't want the extra logic that is in rtas_call(), so currently it open codes the logic. Instead we can use rtas_call_unlocked(), after taking the RTAS lock. Signed-off-by: Michael Ellerman arch/powerpc/kernel/rtas.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) commit b2e8590fa1e35c38680dcb87c9d1bfdcc6c61a40 Author: Michael Ellerman Date: Tue Nov 24 22:26:10 2015 +1100 powerpc/pseries: Use rtas_call_unlocked() in pseries hotplug Avoid open coding the logic by using rtas_call_unlocked(). Signed-off-by: Michael Ellerman arch/powerpc/platforms/pseries/hotplug-cpu.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) commit 08eb105a7c18c917f2ed7afc5a151f0514f26460 Author: Michael Ellerman Date: Tue Nov 24 22:26:09 2015 +1100 powerpc/xmon: Use rtas_call_unlocked() in xmon Avoid open coding the logic by using rtas_call_unlocked(). Signed-off-by: Michael Ellerman arch/powerpc/xmon/xmon.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) commit 209eb4e5cbaba53ab555f3e7b43aa27176f3a925 Author: Michael Ellerman Date: Wed Dec 16 21:01:42 2015 +1100 powerpc/rtas: Add rtas_call_unlocked() Most users of RTAS (Run-Time Abstraction Services) use rtas_call(), which deals with locking as well as endian handling. However we have two users outside of rtas.c that can't use rtas_call() because they have different locking requirements. The hotplug CPU code can't take the RTAS lock because the CPU would go offline with the lock held and no other CPUs would be able to call RTAS until the CPU came back online. The xmon code doesn't want to take the lock because it would risk dead locking when we are trying to recover from a crash. Both sites required multiple patches when we added little endian support, proving that programmers can't do endian right. Although that ship has sailed, we can still clean the code up by providing an unlocked version of rtas_call() which avoids the need to open code the logic elsewhere. Signed-off-by: Michael Ellerman arch/powerpc/include/asm/rtas.h | 2 ++ arch/powerpc/kernel/rtas.c | 44 ++++++++++++++++++++++++++++++----------- 2 files changed, 35 insertions(+), 11 deletions(-) commit e4d54f71d29997344b4c4c8d47708240f9f23a5c Author: Stewart Smith Date: Wed Dec 9 17:18:20 2015 +1100 powerpc/powernv: remove FW_FEATURE_OPALv3 and just use FW_FEATURE_OPAL Long ago, only in the lab, there was OPALv1 and OPALv2. Now there is just OPALv3, with nobody ever expecting anything on pre-OPALv3 to be cared about or supported by mainline kernels. So, let's remove FW_FEATURE_OPALv3 and instead use FW_FEATURE_OPAL exclusively. Signed-off-by: Stewart Smith Signed-off-by: Michael Ellerman arch/powerpc/include/asm/firmware.h | 3 +- arch/powerpc/platforms/powernv/eeh-powernv.c | 4 +- arch/powerpc/platforms/powernv/idle.c | 2 +- arch/powerpc/platforms/powernv/opal-xscom.c | 2 +- arch/powerpc/platforms/powernv/opal.c | 25 +++++----- arch/powerpc/platforms/powernv/pci-ioda.c | 2 +- arch/powerpc/platforms/powernv/setup.c | 8 +-- arch/powerpc/platforms/powernv/smp.c | 74 ++++++++++++---------------- drivers/cpufreq/powernv-cpufreq.c | 2 +- drivers/cpuidle/cpuidle-powernv.c | 2 +- 10 files changed, 54 insertions(+), 70 deletions(-) commit 7261aafc095763b119136a562540dea7b1ccf657 Author: Stewart Smith Date: Wed Dec 9 17:18:19 2015 +1100 powerpc/powernv: Remove OPALv2 firmware define and references OPALv2 only ever existed in the lab and didn't escape to the world. All OPAL systems in the wild are OPALv3. The probability of there being an OPALv2 system still powered on anywhere inside IBM is approximately zero, let alone anyone expecting to run mainline kernels. So, start to remove references to OPALv2. Signed-off-by: Stewart Smith Signed-off-by: Michael Ellerman arch/powerpc/include/asm/firmware.h | 4 +--- arch/powerpc/platforms/powernv/opal.c | 8 ++------ arch/powerpc/platforms/powernv/setup.c | 4 ---- arch/powerpc/platforms/powernv/smp.c | 4 ++-- 4 files changed, 5 insertions(+), 15 deletions(-) commit 786842b62f81f20d14894925e8c225328ee8144b Author: Stewart Smith Date: Wed Dec 9 17:18:18 2015 +1100 powerpc/powernv: panic() on OPAL < V3 The OpenPower Abstraction Layer firmware went through a couple of iterations in the lab before being released. What we now know as OPAL advertises itself as OPALv3. OPALv2 and OPALv1 never made it outside the lab, and the possibility of anyone at all ever building a mainline kernel today and expecting it to boot on such hardware is zero. Signed-off-by: Stewart Smith Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/opal.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 0a28714c53fd4f7aea709be7577dfbe0095c8c3e Author: Ashok Kumar Date: Thu Dec 17 01:38:32 2015 -0800 arm64: Use PoU cache instr for I/D coherency In systems with three levels of cache(PoU at L1 and PoC at L3), PoC cache flush instructions flushes L2 and L3 caches which could affect performance. For cache flushes for I and D coherency, PoU should suffice. So changing all I and D coherency related cache flushes to PoU. Introduced a new __clean_dcache_area_pou API for dcache flush till PoU and provided a common macro for __flush_dcache_area and __clean_dcache_area_pou. Also, now in __sync_icache_dcache, icache invalidation for non-aliasing VIPT icache is done only for that particular page instead of the earlier __flush_icache_all. Reviewed-by: Catalin Marinas Reviewed-by: Mark Rutland Signed-off-by: Ashok Kumar Signed-off-by: Will Deacon arch/arm64/include/asm/cacheflush.h | 1 + arch/arm64/mm/cache.S | 28 +++++++++++++++++----------- arch/arm64/mm/flush.c | 33 ++++++++++++++++++--------------- arch/arm64/mm/proc-macros.S | 22 ++++++++++++++++++++++ 4 files changed, 58 insertions(+), 26 deletions(-) commit e6b1185f77351aa154e63bd54b05d07ff99d4ffa Author: Ashok Kumar Date: Thu Dec 17 01:38:31 2015 -0800 arm64: Defer dcache flush in __cpu_copy_user_page Defer dcache flushing to __sync_icache_dcache by calling flush_dcache_page which clears PG_dcache_clean flag. Acked-by: Catalin Marinas Signed-off-by: Ashok Kumar Signed-off-by: Will Deacon arch/arm64/mm/copypage.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f28a492878170f39002660a26c329201cf678d74 Author: Filipe Manana Date: Tue Dec 8 19:23:20 2015 +0000 Btrfs: fix leaking of ordered extents after direct IO write error When doing a direct IO write, __blockdev_direct_IO() can call the btrfs_get_blocks_direct() callback one or more times before it calls the btrfs_submit_direct() callback. However it can fail after calling the first callback and before calling the second callback, which is a problem because the first one creates ordered extents and the second one is the one that submits bios that cover the ordered extents created by the first one. That means the ordered extents will never complete nor have any of the flags BTRFS_ORDERED_IO_DONE / BTRFS_ORDERED_IOERR set, resulting in subsequent operations (such as other direct IO writes, buffered writes or hole punching) that lock the same IO range and lookup for ordered extents in the range to hang forever waiting for those ordered extents because they can not complete ever, since no bio was submitted. Fix this by tracking a range of created ordered extents that don't have yet corresponding bios submitted and completing the ordered extents in the range if __blockdev_direct_IO() fails with an error. Signed-off-by: Filipe Manana fs/btrfs/inode.c | 43 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 5 deletions(-) commit b850ae14278dfc49c3a03b39357214fc79330db9 Author: Filipe Manana Date: Tue Dec 8 16:23:16 2015 +0000 Btrfs: fix deadlock between direct IO write and defrag/readpages If readpages() (triggered by defrag or buffered reads) is called while a direct IO write is in progress, we have a small time window where we can deadlock, resulting in traces like the following being generated: [84723.212993] INFO: task fio:2849 blocked for more than 120 seconds. [84723.214310] Tainted: G W 4.3.0-rc5-btrfs-next-17+ #1 [84723.215640] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. [84723.217313] fio D ffff88023ec75218 0 2849 2835 0x00000000 [84723.218778] ffff880122dfb6e8 0000000000000092 0000000000000000 ffff88023ec75200 [84723.220458] ffff88000e05d2c0 ffff880122dfc000 ffff88023ec75200 7fffffffffffffff [84723.230597] 0000000000000002 ffffffff8147891a ffff880122dfb700 ffffffff8147856a [84723.232085] Call Trace: [84723.232625] [] ? bit_wait+0x3c/0x3c [84723.233529] [] schedule+0x7d/0x95 [84723.234398] [] schedule_timeout+0x43/0x10b [84723.235384] [] ? time_hardirqs_on+0x15/0x28 [84723.236426] [] ? trace_hardirqs_on+0xd/0xf [84723.237502] [] ? read_seqcount_begin.constprop.20+0x57/0x6d [84723.238807] [] ? trace_hardirqs_on_caller+0x16/0x1ab [84723.242012] [] ? trace_hardirqs_on+0xd/0xf [84723.243064] [] ? timekeeping_get_ns+0xe/0x33 [84723.244116] [] ? ktime_get+0x41/0x52 [84723.245029] [] io_schedule_timeout+0xb7/0x12b [84723.245942] [] ? io_schedule_timeout+0xb7/0x12b [84723.246596] [] bit_wait_io+0x39/0x45 [84723.247503] [] __wait_on_bit_lock+0x49/0x8d [84723.248540] [] __lock_page+0x66/0x68 [84723.249558] [] ? autoremove_wake_function+0x3a/0x3a [84723.250844] [] lock_page+0x2c/0x2f [84723.251871] [] invalidate_inode_pages2_range+0xf5/0x2aa [84723.253274] [] ? filemap_fdatawait_range+0x12d/0x146 [84723.254757] [] ? filemap_fdatawrite_range+0x13/0x15 [84723.256378] [] btrfs_get_blocks_direct+0x1b0/0x664 [btrfs] [84723.258556] [] ? submit_page_section+0x7b/0x111 [84723.260064] [] do_blockdev_direct_IO+0x658/0xbdb [84723.261479] [] ? btrfs_page_exists_in_range+0x1a9/0x1a9 [btrfs] [84723.262961] [] ? btrfs_writepage_start_hook+0xce/0xce [btrfs] [84723.264449] [] __blockdev_direct_IO+0x31/0x33 [84723.265614] [] ? __blockdev_direct_IO+0x31/0x33 [84723.266769] [] ? btrfs_writepage_start_hook+0xce/0xce [btrfs] [84723.268264] [] btrfs_direct_IO+0x1b9/0x259 [btrfs] [84723.270954] [] ? btrfs_writepage_start_hook+0xce/0xce [btrfs] [84723.272465] [] generic_file_direct_write+0xb3/0x128 [84723.273734] [] btrfs_file_write_iter+0x228/0x404 [btrfs] [84723.275101] [] __vfs_write+0x7c/0xa5 [84723.276200] [] vfs_write+0xa0/0xe4 [84723.277298] [] SyS_write+0x50/0x7e [84723.278327] [] entry_SYSCALL_64_fastpath+0x12/0x6f [84723.279595] INFO: lockdep is turned off. [84723.379035] INFO: task btrfs:2923 blocked for more than 120 seconds. [84723.380323] Tainted: G W 4.3.0-rc5-btrfs-next-17+ #1 [84723.381608] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. [84723.383003] btrfs D ffff88023ed75218 0 2923 2859 0x00000000 [84723.384277] ffff88001311f860 0000000000000082 ffff88001311f840 ffff88023ed75200 [84723.385748] ffff88012c6751c0 ffff880013120000 ffff88012042fe68 ffff88012042fe30 [84723.387152] ffff880221571c88 0000000000000001 ffff88001311f878 ffffffff8147856a [84723.388620] Call Trace: [84723.389105] [] schedule+0x7d/0x95 [84723.391882] [] btrfs_start_ordered_extent+0x161/0x1fa [btrfs] [84723.393718] [] ? signal_pending_state+0x31/0x31 [84723.395659] [] __do_contiguous_readpages.constprop.21+0x81/0xdc [btrfs] [84723.397383] [] ? btrfs_submit_direct+0x3f0/0x3f0 [btrfs] [84723.398852] [] __extent_readpages.constprop.20+0xed/0x100 [btrfs] [84723.400561] [] ? __lru_cache_add+0x5d/0x72 [84723.401787] [] extent_readpages+0x111/0x1a7 [btrfs] [84723.403121] [] ? btrfs_submit_direct+0x3f0/0x3f0 [btrfs] [84723.404583] [] btrfs_readpages+0x1f/0x21 [btrfs] [84723.406007] [] __do_page_cache_readahead+0x168/0x1f4 [84723.407502] [] ondemand_readahead+0x21d/0x22e [84723.408937] [] ? ondemand_readahead+0x21d/0x22e [84723.410487] [] page_cache_sync_readahead+0x3d/0x3f [84723.411710] [] btrfs_defrag_file+0x419/0xaaf [btrfs] [84723.413007] [] ? kzalloc+0xf/0x11 [btrfs] [84723.414085] [] btrfs_ioctl_defrag+0x125/0x14e [btrfs] [84723.415307] [] btrfs_ioctl+0x746/0x24c6 [btrfs] [84723.416532] [] ? arch_local_irq_save+0x9/0xc [84723.417731] [] ? __might_fault+0x4c/0xa7 [84723.418699] [] ? __might_fault+0x4c/0xa7 [84723.421532] [] ? __might_fault+0xa5/0xa7 [84723.422629] [] ? cp_new_stat+0x15d/0x174 [84723.423712] [] do_vfs_ioctl+0x427/0x4e6 [84723.424801] [] ? SYSC_newfstat+0x25/0x2e [84723.425968] [] ? __fget_light+0x4d/0x71 [84723.427063] [] SyS_ioctl+0x57/0x79 [84723.428138] [] entry_SYSCALL_64_fastpath+0x12/0x6f Consider the following logical and physical file layout: logical: ... [ prealloc extent A ] [ prealloc extent B ] [ extent C ] ... 4K 8K 16K physical: ... 12853248 12857344 1103101952 ... (= 12853248 + 4K) Extents A and B are physically adjacent. The following diagram shows a sequence of events that lead to the deadlock when we attempt to do a direct IO write against the file range [4K, 16K[ and a defrag is triggered simultaneously. CPU 1 CPU 2 btrfs_direct_IO() btrfs_get_blocks_direct() creates ordered extent A, covering the 4k prealloc extent A (range [4K, 8K[) btrfs_defrag_file() page_cache_sync_readahead([0K, 1M[) btrfs_readpages() extent_readpages() locks all pages in the file range [0K, 128K[ through calls to add_to_page_cache_lru() __do_contiguous_readpages() finds ordered extent A waits for it to complete btrfs_get_blocks_direct() called again lock_extent_direct(range [8K, 16K[) finds a page in range [8K, 16K[ through btrfs_page_exists_in_range() invalidate_inode_pages2_range([8K, 16K[) --> tries to lock pages that are already locked by the task at CPU 2 --> our task, running __blockdev_direct_IO(), hangs waiting to lock the pages and the submit bio callback, btrfs_submit_direct(), ends up never being called, resulting in the ordered extent A never completing (because a corresponding bio is never submitted) and CPU 2 will wait for it forever while holding the pages locked ---> deadlock! Fix this by removing the page invalidation approach when attempting to lock the range for IO from the callback btrfs_get_blocks_direct() and falling back buffered IO. This was a rare case anyway and well behaved applications do not mix concurrent direct IO writes with buffered reads anyway, being a concurrent defrag the only normal case that could lead to the deadlock. Signed-off-by: Filipe Manana fs/btrfs/inode.c | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) commit 14543774bd67a64f616431e5c9d1472f58979841 Author: Filipe Manana Date: Tue Nov 24 16:23:54 2015 +0000 Btrfs: fix error path when failing to submit bio for direct IO write Commit 61de718fceb6 ("Btrfs: fix memory corruption on failure to submit bio for direct IO") fixed problems with the error handling code after we fail to submit a bio for direct IO. However there were 2 problems that it did not address when the failure is due to memory allocation failures for direct IO writes: 1) We considered that there could be only one ordered extent for the whole IO range, which is not always true, as we can have multiple; 2) It did not set the bit BTRFS_ORDERED_IO_DONE in the ordered extent, which can make other tasks running btrfs_wait_logged_extents() hang forever, since they wait for that bit to be set. The general assumption is that regardless of an error, the BTRFS_ORDERED_IO_DONE is always set and it precedes setting the bit BTRFS_ORDERED_COMPLETE. Fix these issues by moving part of the btrfs_endio_direct_write() handler into a new helper function and having that new helper function called when we fail to allocate memory to submit the bio (and its private object) for a direct IO write. Signed-off-by: Filipe Manana Reviewed-by: Liu Bo fs/btrfs/inode.c | 54 +++++++++++++++++++++++++++--------------------------- 1 file changed, 27 insertions(+), 27 deletions(-) commit 7785a663c4beebdafeb300caf2818e7e6474abd1 Author: Filipe Manana Date: Fri Nov 27 16:12:00 2015 +0000 Btrfs: fix memory leaks after transaction is aborted When a transaction is aborted, or its commit fails before writing the new superblock and calling btrfs_finish_extent_commit(), we leak reference counts on the block groups attached to the transaction's delete_bgs list, because btrfs_finish_extent_commit() is never called for those two cases. Fix this by dropping their references at btrfs_put_transaction(), which is called when transactions are aborted (by making the transaction kthread commit the transaction) or if their commits fail. Signed-off-by: Filipe Manana fs/btrfs/transaction.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 50460e37186a2b932eacea24dca804bd1bcd2012 Author: Filipe Manana Date: Fri Nov 20 10:42:47 2015 +0000 Btrfs: fix race when finishing dev replace leading to transaction abort During the final phase of a device replace operation, I ran into a transaction abort that resulted in the following trace: [23919.655368] WARNING: CPU: 10 PID: 30175 at fs/btrfs/extent-tree.c:9843 btrfs_create_pending_block_groups+0x15e/0x1ab [btrfs]() [23919.664742] BTRFS: Transaction aborted (error -2) [23919.665749] Modules linked in: btrfs crc32c_generic xor raid6_pq nfsd auth_rpcgss oid_registry nfs_acl nfs lockd grace fscache sunrpc loop fuse parport_pc i2c_piix4 parport psmouse acpi_cpufreq processor i2c_core evdev microcode pcspkr button serio_raw ext4 crc16 jbd2 mbcache sd_mod sg sr_mod cdrom virtio_scsi ata_generic ata_piix virtio_pci floppy virtio_ring libata e1000 virtio scsi_mod [last unloaded: btrfs] [23919.679442] CPU: 10 PID: 30175 Comm: fsstress Not tainted 4.3.0-rc5-btrfs-next-17+ #1 [23919.682392] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.8.1-0-g4adadbd-20150316_085822-nilsson.home.kraxel.org 04/01/2014 [23919.689151] 0000000000000000 ffff8804020cbb50 ffffffff812566f4 ffff8804020cbb98 [23919.692604] ffff8804020cbb88 ffffffff8104d0a6 ffffffffa03eea69 ffff88041b678a48 [23919.694230] ffff88042ac38000 ffff88041b678930 00000000fffffffe ffff8804020cbbf0 [23919.696716] Call Trace: [23919.698669] [] dump_stack+0x4e/0x79 [23919.700597] [] warn_slowpath_common+0x9f/0xb8 [23919.701958] [] ? btrfs_create_pending_block_groups+0x15e/0x1ab [btrfs] [23919.703612] [] warn_slowpath_fmt+0x48/0x50 [23919.705047] [] btrfs_create_pending_block_groups+0x15e/0x1ab [btrfs] [23919.706967] [] __btrfs_end_transaction+0x84/0x2dd [btrfs] [23919.708611] [] btrfs_end_transaction+0x10/0x12 [btrfs] [23919.710099] [] btrfs_alloc_data_chunk_ondemand+0x121/0x28b [btrfs] [23919.711970] [] btrfs_fallocate+0x7d3/0xc6d [btrfs] [23919.713602] [] ? lock_acquire+0x10d/0x194 [23919.714756] [] ? percpu_down_read+0x51/0x78 [23919.716155] [] ? __sb_start_write+0x5f/0xb0 [23919.718918] [] ? __sb_start_write+0x5f/0xb0 [23919.724170] [] vfs_fallocate+0x170/0x1ff [23919.725482] [] ioctl_preallocate+0x89/0x9b [23919.726790] [] do_vfs_ioctl+0x406/0x4e6 [23919.728428] [] ? SYSC_newfstat+0x25/0x2e [23919.729642] [] ? __fget_light+0x4d/0x71 [23919.730782] [] SyS_ioctl+0x57/0x79 [23919.731847] [] entry_SYSCALL_64_fastpath+0x12/0x6f [23919.733330] ---[ end trace 166ef301a335832a ]--- This is due to a race between device replace and chunk allocation, which the following diagram illustrates: CPU 1 CPU 2 btrfs_dev_replace_finishing() at this point dev_replace->tgtdev->devid == BTRFS_DEV_REPLACE_DEVID (0ULL) ... btrfs_start_transaction() btrfs_commit_transaction() btrfs_fallocate() btrfs_alloc_data_chunk_ondemand() btrfs_join_transaction() --> starts a new transaction do_chunk_alloc() lock fs_info->chunk_mutex btrfs_alloc_chunk() --> creates extent map for the new chunk with em->bdev->map->stripes[i]->dev->devid == X (X > 0) --> extent map is added to fs_info->mapping_tree --> initial phase of bg A allocation completes unlock fs_info->chunk_mutex lock fs_info->chunk_mutex btrfs_dev_replace_update_device_in_mapping_tree() --> iterates fs_info->mapping_tree and replaces the device in every extent map's map->stripes[] with dev_replace->tgtdev, which still has an id of 0ULL (BTRFS_DEV_REPLACE_DEVID) btrfs_end_transaction() btrfs_create_pending_block_groups() --> starts final phase of bg A creation (update device, extent, and chunk trees, etc) btrfs_finish_chunk_alloc() btrfs_update_device() --> attempts to update a device item with ID == 0ULL (BTRFS_DEV_REPLACE_DEVID) which is the current ID of bg A's em->bdev->map->stripes[i]->dev->devid --> doesn't find such item returns -ENOENT --> the device id should have been X and not 0ULL got -ENOENT from btrfs_finish_chunk_alloc() and aborts current transaction finishes setting up the target device, namely it sets tgtdev->devid to the value of srcdev->devid, which is X (and X > 0) frees the srcdev unlock fs_info->chunk_mutex So fix this by taking the device list mutex when processing the chunk's extent map stripes to update the device items. This avoids getting the wrong device id and use-after-free problems if the task finishing a chunk allocation grabs the replaced device, which is freed while the dev replace task is holding the device list mutex. This happened while running fstest btrfs/071. Signed-off-by: Filipe Manana Reviewed-by: Liu Bo fs/btrfs/volumes.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) commit 42f25bddd0a226d2431e057b9e01c5cc61067e12 Author: Nicolas Pitre Date: Sat Dec 12 02:49:21 2015 +0100 ARM: 8477/1: runtime patch udiv/sdiv instructions into __aeabi_{u}idiv() The ARM compiler inserts calls to __aeabi_idiv() and __aeabi_uidiv() when it needs to perform division on signed and unsigned integers. If a processor has support for the sdiv and udiv instructions, the kernel may overwrite the beginning of those functions with those instructions and a "bx lr" to get better performance. To ensure that those functions are aligned to a 32-bit word for easier patching (which might not always be the case in Thumb mode) and that the two patched instructions end up in the same cache line, a 8-byte alignment is enforced when ARM_PATCH_IDIV is selected. This was heavily inspired by a previous patch from Stephen Boyd. Signed-off-by: Nicolas Pitre Acked-by: Arnd Bergmann Signed-off-by: Russell King arch/arm/Kconfig | 18 +++++++++++++ arch/arm/kernel/setup.c | 67 ++++++++++++++++++++++++++++++++++++++++++++++++ arch/arm/lib/lib1funcs.S | 8 ++++++ 3 files changed, 93 insertions(+) commit 38fc2f6c98262913388de338d5b0cda67e3f78cd Author: Prasanna Karthik Date: Tue Dec 8 17:30:25 2015 +0100 ARM: 8476/1: VDSO: use PTR_ERR_OR_ZERO for vma check Use PTR_ERR_OR_ZERO rather than if(IS_ERR(...)) + PTR_ERR Signed-off-by: Prasanna Karthik Signed-off-by: Nathan Lynch Signed-off-by: Russell King arch/arm/kernel/vdso.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b563d0645123802448f9e8bf868c8bae552207ff Author: Nicolas Pitre Date: Fri Dec 4 21:36:40 2015 +0100 ARM: 8453/2: proc-v7.S: don't locate temporary stack space in .text section The proc-v7.S code uses a small temporary stack to preserve register content in its setup code. This stack is located in the .text section which is normally meant to be read-only. Move that temporary stack to the .bss section and get its address in a position independent way, similarly to what we do in other parts of the kernel. While at it, one comments was updated to reflect reality, and the list of saved registers in the proc-v7.S case is updated to match the comment next to it for coherency. Signed-off-by: Nicolas Pitre Signed-off-by: Russell King arch/arm/mm/proc-v7.S | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) commit 192d367f218d0cd94aa9b5059992e4aa19ec5b36 Author: Laurent Pinchart Date: Mon Sep 14 15:14:36 2015 +0300 serial: sh-sci: Drop the sci_fck clock fallback All platforms that used to define an sci_fck clock have now switched to the fck name. Remove the fallback code. Signed-off-by: Laurent Pinchart Acked-by: Simon Horman Signed-off-by: Geert Uytterhoeven Acked-by: Greg Kroah-Hartman drivers/tty/serial/sh-sci.c | 5 ----- 1 file changed, 5 deletions(-) commit 0a036681888f417e365e0b2935ff6f3f0273f843 Author: Geert Uytterhoeven Date: Tue Nov 10 18:59:28 2015 +0100 sh: sh7734: Correct SCIF type for BRG The SCIF variant in the sh7734 SoC is not the common "SH-4(A)" variant, but a derivative with added "Baud Rate Generator for External Clock" (BRG). Correct the regtype value in platform data to fix this. Signed-off-by: Geert Uytterhoeven arch/sh/kernel/cpu/sh4a/setup-sh7734.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 6441d314b4d898d871f21196fb5e6e4f82caedc7 Author: Laurent Pinchart Date: Mon Sep 14 15:14:25 2015 +0300 sh: Remove sci_ick clock alias The sh-sci driver falls back to the peripheral clock if the sci_ick clock doesn't exist. There's thus no need to create an alias for the peripheral clock named sci_ick. Signed-off-by: Laurent Pinchart Acked-by: Simon Horman Signed-off-by: Geert Uytterhoeven arch/sh/kernel/cpu/clock-cpg.c | 1 - 1 file changed, 1 deletion(-) commit fa3d39bf25558262675334f26fada57bd75c4e2e Author: Laurent Pinchart Date: Mon Sep 14 15:14:24 2015 +0300 sh: Rename sci_ick and sci_fck clock to fck The SCI driver requires a functional clock named "fck" and falls back to "sci_ick" or "sci_fck" when the "fck" clock doesn't exist. To allow removal of the fallback code rename the sci_ick and sci_fck clocks to fck for all SH platforms. Signed-off-by: Laurent Pinchart Acked-by: Simon Horman Signed-off-by: Geert Uytterhoeven arch/sh/kernel/cpu/sh2a/clock-sh7264.c | 9 ++++++++- arch/sh/kernel/cpu/sh2a/clock-sh7269.c | 16 ++++++++-------- arch/sh/kernel/cpu/sh4a/clock-sh7343.c | 8 ++++---- arch/sh/kernel/cpu/sh4a/clock-sh7366.c | 6 +++--- arch/sh/kernel/cpu/sh4a/clock-sh7723.c | 12 ++++++------ arch/sh/kernel/cpu/sh4a/clock-sh7734.c | 12 ++++++------ arch/sh/kernel/cpu/sh4a/clock-sh7757.c | 6 +++--- arch/sh/kernel/cpu/sh4a/clock-sh7785.c | 12 ++++++------ arch/sh/kernel/cpu/sh4a/clock-sh7786.c | 12 ++++++------ arch/sh/kernel/cpu/sh4a/clock-shx3.c | 8 ++++---- 10 files changed, 54 insertions(+), 47 deletions(-) commit 1270f86517f342f455dc146b1b321a18d3a274f9 Author: Geert Uytterhoeven Date: Wed Nov 18 11:25:53 2015 +0100 serial: sh-sci: Add support for optional BRG on (H)SCIF Add support for using the Baud Rate Generator for External Clock (BRG), as found on some SCIF and HSCIF variants, to provide the sampling clock. This can improve baud rate range and accuracy. Signed-off-by: Geert Uytterhoeven Acked-by: Greg Kroah-Hartman drivers/tty/serial/sh-sci.c | 85 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 80 insertions(+), 5 deletions(-) commit 6af27bf299e2d66ade25f278f0c13d51007e9879 Author: Geert Uytterhoeven Date: Wed Nov 18 11:12:26 2015 +0100 serial: sh-sci: Add support for optional external (H)SCK input Add support for using the SCIx clock pin "(H)SCK" as an external clock input on (H)SCI(F), providing the sampling clock. Note that this feature is not yet supported on the select SCIFA variants that also have it (e.g. sh7723, sh7724, and r8a7740). On (H)SCIF variants with an External Baud Rate Generator (BRG), the BRG Clock Select Register must be configured for the external clock. Signed-off-by: Geert Uytterhoeven Acked-by: Greg Kroah-Hartman drivers/tty/serial/sh-sci.c | 69 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 66 insertions(+), 3 deletions(-) commit f4998e55b8987428aa86de02c934fb6e0988d9a3 Author: Geert Uytterhoeven Date: Mon Oct 26 09:58:16 2015 +0100 serial: sh-sci: Prepare for multiple sampling clock sources Refactor the clock and baud rate parameter code to ease adding support for multiple sampling clock sources. sci_scbrr_calc() now returns the bit rate error, so it can be compared to the bit rate error using other sampling clock sources. Signed-off-by: Geert Uytterhoeven Acked-by: Greg Kroah-Hartman drivers/tty/serial/sh-sci.c | 194 ++++++++++++++++++++++++++++++-------------- 1 file changed, 134 insertions(+), 60 deletions(-) commit 9ed44bb209d0ece90abb6b4279d8b18e17680476 Author: Geert Uytterhoeven Date: Tue Nov 10 18:57:23 2015 +0100 serial: sh-sci: Correct SCIF type on R-Car for BRG The "renesas,scif" compatible value is currently used for the SCIF variant in all Renesas SoCs of the R-Car family. However, the variant used in the R-Car family is not the common "SH-4(A)" variant, but a derivative with added "Baud Rate Generator for External Clock" (BRG), which is also present in sh7734. Use the family-specific SCIF compatible values for R-Car Gen1, Gen2, and Gen3 SoCs to differentiate. The "renesas,scif" compatible value can still be used as a common denominator for SCIF variants with the "SH-4(A)" register layout (i.e. ignoring the "Serial Extension Mode Register" (SCEMR) and the new BRG-specific registers). Signed-off-by: Geert Uytterhoeven Acked-by: Greg Kroah-Hartman drivers/tty/serial/sh-sci.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit f443ff80d02d74be6c3930e325a6573eb06347ea Author: Geert Uytterhoeven Date: Tue Nov 10 16:16:54 2015 +0100 serial: sh-sci: Correct SCIF type on RZ/A1H The "renesas,scif" compatible value is currently used for the SCIF variant in all Renesas SoCs of the R-Car and RZ families. However, the variant used in the RZ family is not the common "SH-4(A)" variant, but the "SH-2(A) with FIFO data count register" variant, as it has the "Serial Extension Mode Register" (SCEMR), just like on sh7203, sh7263, sh7264, and sh7269. Use the (already documented) SoC-specific "renesas,scif-r7s72100" compatible value to differentiate. The "renesas,scif" compatible value can still be used as a common denominator for SCIF variants with the "SH-4(A)" register layout (i.e. ignoring the SCEMR register). Note that currently both variants are treated the same, but this may change if support for the SCEMR register is ever added. Signed-off-by: Geert Uytterhoeven Reviewed-by: Laurent Pinchart Acked-by: Greg Kroah-Hartman drivers/tty/serial/sh-sci.c | 6 ++++++ 1 file changed, 6 insertions(+) commit bd2238fb84df6054d966364d07e0414b54ef8e19 Author: Geert Uytterhoeven Date: Tue Nov 10 16:09:23 2015 +0100 serial: sh-sci: Replace struct sci_port_info by type/regtype encoding Store the encoded port and register types directly in of_device_id.data, instead of using a pointer to a structure. This saves memory and simplifies the source code, especially when adding more compatible entries later. Signed-off-by: Geert Uytterhoeven Reviewed-by: Laurent Pinchart Acked-by: Greg Kroah-Hartman drivers/tty/serial/sh-sci.c | 40 +++++++++++----------------------------- 1 file changed, 11 insertions(+), 29 deletions(-) commit b8bbd6b2923279f1c9c74d59638b38a1eace78e8 Author: Geert Uytterhoeven Date: Thu Nov 12 13:36:06 2015 +0100 serial: sh-sci: Add BRG register definitions Add register definitions for the Baud Rate Generator for External Clock (BRG), as found in some SCIF and in HSCIF, including a new regtype for the "SH-4(A)"-derived SCIF variant with BRG. Signed-off-by: Geert Uytterhoeven Acked-by: Greg Kroah-Hartman drivers/tty/serial/sh-sci.c | 46 +++++++++++++++++++++++++++++++++++++++++++++ drivers/tty/serial/sh-sci.h | 10 ++++++++++ include/linux/serial_sci.h | 1 + 3 files changed, 57 insertions(+) commit ff8b275f1f0927621cf543c2a6f02761052c360d Author: Geert Uytterhoeven Date: Thu Nov 19 14:35:09 2015 +0100 serial: sh-sci: Take into account sampling rate for max baud rate The maximum baud rate depends on the sampling rate. HSCIF has a variable sampling rate and sets s->sampling_rate to zero, hence use the minimum sampling rate of 8. Signed-off-by: Geert Uytterhoeven Reviewed-by: Laurent Pinchart Acked-by: Greg Kroah-Hartman drivers/tty/serial/sh-sci.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit b4a5c459088b724734573a550c9da42a9a19c9d0 Author: Geert Uytterhoeven Date: Mon Nov 16 17:22:16 2015 +0100 serial: sh-sci: Merge sci_scbrr_calc() and sci_baud_calc_hscif() For low bit rates, the for-loop that reduces the divider returned by sci_scbrr_calc() and picks the clock select value may terminate without finding suitable values, leading to out-of-range divider and clock select values. sci_baud_calc_hscif() doesn't suffer from this problem, as it correctly uses clamp(). Since there are only two relevant differences between HSCIF and other variants w.r.t. bit rate configuration (fixed vs. variable sample rate, and an additional factor of two), sci_scbrr_calc() and sci_baud_calc_hscif() can be merged, fixing the issue with out-of-range values. Signed-off-by: Geert Uytterhoeven Acked-by: Greg Kroah-Hartman drivers/tty/serial/sh-sci.c | 42 +++++++++++++++++++----------------------- 1 file changed, 19 insertions(+), 23 deletions(-) commit 6c51332dfc23fc7c2c58244e35d36744db202077 Author: Geert Uytterhoeven Date: Mon Nov 16 16:33:22 2015 +0100 serial: sh-sci: Avoid calculating the receive margin for HSCIF When assuming D = 0.5 and F = 0, maximizing the receive margin M is equivalent to maximizing the sample rate N. Hence there's no need to calculate the receive margin, as we can obtain the same result by iterating over all possible sample rates in reverse order, and skipping parameter sets that don't provide a lower bit rate error. Signed-off-by: Geert Uytterhoeven Acked-by: Greg Kroah-Hartman drivers/tty/serial/sh-sci.c | 51 +++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 27 deletions(-) commit 881a7489f463e59a44417ad89ecb4ea21b2b86cd Author: Geert Uytterhoeven Date: Mon Nov 16 15:54:47 2015 +0100 serial: sh-sci: Improve bit rate error calculation for HSCIF The algorithm to find the best parameters for the requested bit rate calculates the relative bit rate error, using "(br * scrate) / 1000". For small "br * scrate", this has two problems: - The quotient may be zero, leading to a division by zero error, - This may introduce a large rounding error. Switch from relative to absolute bit rate error calculation to fix this. The default baud rate generator values can be removed, as there will always be one set of values that gives the smallest absolute error. Print the best set of values when debugging. Signed-off-by: Geert Uytterhoeven Acked-by: Greg Kroah-Hartman drivers/tty/serial/sh-sci.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) commit de01e6cd0b100bac088b1d59a7040ebe2af64f1c Author: Geert Uytterhoeven Date: Fri Nov 13 17:04:56 2015 +0100 serial: sh-sci: Avoid overflow in sci_baud_calc_hscif() If bps >= 1048576, the multiplication of the predivider and "bps" will overflow, and both br and err will contain bogus values. Skip the current and all higher clock select predividers when overflow is detected. Simplify the calculations using intermediates while we're at it. Signed-off-by: Geert Uytterhoeven Acked-by: Greg Kroah-Hartman drivers/tty/serial/sh-sci.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) commit 95a2703e36530c09a9416321ec21c062f3e91d01 Author: Geert Uytterhoeven Date: Fri Nov 13 16:56:08 2015 +0100 serial: sh-sci: Make unsigned values in sci_baud_calc_hscif() unsigned Move the -1 offset of br to the assignment to *brr, so br cannot become negative anymore, and update the clamp() call. Now all unsigned values in sci_baud_calc_hscif() can become unsigned. Signed-off-by: Geert Uytterhoeven Acked-by: Greg Kroah-Hartman drivers/tty/serial/sh-sci.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit f4de472ef2ff8937b04d5da9d885c78fcbd4c171 Author: Geert Uytterhoeven Date: Mon Oct 26 09:56:20 2015 +0100 serial: sh-sci: Convert from clk_get() to devm_clk_get() Transfer clock cleanup handling to the core device management code. Signed-off-by: Geert Uytterhoeven Acked-by: Greg Kroah-Hartman drivers/tty/serial/sh-sci.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit a67969b5fd366d488ffa1defd5256e8c3a87434d Author: Geert Uytterhoeven Date: Wed Nov 18 16:20:44 2015 +0100 serial: sh-sci: Don't overwrite clock selection in serial_console_write() Blindly writing the default configuration value into the SCSCR register may change the clock selection bits, breaking the serial console if the current driver settings differ from the default settings. Keep the current clock selection bits to prevent this from happening on e.g. r8a7791/koelsch when support for the BRG will be added. Signed-off-by: Geert Uytterhoeven Reviewed-by: Laurent Pinchart Acked-by: Greg Kroah-Hartman drivers/tty/serial/sh-sci.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit bdcb3826976e60204cce52470c01bb9541e547b3 Author: Geert Uytterhoeven Date: Fri Nov 13 09:48:34 2015 +0100 serial: sh-sci: Drop unused frame_len parameter for sci_baud_calc_hscif() As F is assumed to be zero in the receive margin formula, frame_len is not used. Remove it, together with the sci_baud_calc_frame_len() helper function. Signed-off-by: Geert Uytterhoeven Reviewed-by: Laurent Pinchart Acked-by: Greg Kroah-Hartman drivers/tty/serial/sh-sci.c | 24 +++--------------------- 1 file changed, 3 insertions(+), 21 deletions(-) commit 495bb47c5dfe92bedce92fd5f3a3a0258d72ac36 Author: Geert Uytterhoeven Date: Thu Dec 10 16:02:17 2015 +0100 serial: sh-sci: Use existing local variable in sci_parse_dt() Signed-off-by: Geert Uytterhoeven drivers/tty/serial/sh-sci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2095fc76953aeec2a091d321426daca3534fca12 Author: Geert Uytterhoeven Date: Thu Nov 12 13:39:49 2015 +0100 serial: sh-sci: Grammar s/Get ... for/Get ... from/ Signed-off-by: Geert Uytterhoeven Reviewed-by: Laurent Pinchart Acked-by: Greg Kroah-Hartman drivers/tty/serial/sh-sci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dcafbb47bdfde32b9f3c275aa4b435c120d02f15 Author: Geert Uytterhoeven Date: Tue Nov 3 18:14:10 2015 +0100 serial: sh-sci: Drop useless check for zero sampling_rate sci_port.sampling_rate is always non-zero, except for HSCIF, which uses sci_baud_calc_hscif() instead of sci_scbrr_calc(). Signed-off-by: Geert Uytterhoeven Reviewed-by: Laurent Pinchart Acked-by: Greg Kroah-Hartman drivers/tty/serial/sh-sci.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit 176ae5f674ebd2049f99e97eb8319200f1d211b6 Author: Geert Uytterhoeven Date: Mon Oct 26 09:43:22 2015 +0100 serial: sh-sci: Update DT binding documentation for BRG support Amend the DT bindings to include the optional clock sources for the Baud Rate Generator for External Clock (BRG), as found on some SCIF variants and on HSCIF. Signed-off-by: Geert Uytterhoeven Acked-by: Greg Kroah-Hartman Documentation/devicetree/bindings/serial/renesas,sci-serial.txt | 6 ++++++ 1 file changed, 6 insertions(+) commit 9a040c9f2170e0e6d092fc7cf8289a4466b8d8d6 Author: Geert Uytterhoeven Date: Thu Nov 12 13:44:29 2015 +0100 serial: sh-sci: Update DT binding documentation for external clock input Amend the DT bindings to include the optional external clock on (H)SCI(F) and some SCIFA, where this pin can serve as a clock input, depending on board wiring. Clarify the use of the divided functional clock as a source for the sampling clock. Signed-off-by: Geert Uytterhoeven Acked-by: Greg Kroah-Hartman Documentation/devicetree/bindings/serial/renesas,sci-serial.txt | 5 +++++ 1 file changed, 5 insertions(+) commit 598604ff22109a025af8d5038664ebeb2402afdc Author: Geert Uytterhoeven Date: Fri Dec 11 12:48:15 2015 +0100 serial: sh-sci: Add fallback compatibility strings Add fallback compatibility strings for R-Car Gen1, Gen2, and Gen3. This is in keeping with the fallback scheme being adopted wherever appropriate for drivers for Renesas SoCs. Signed-off-by: Geert Uytterhoeven .../devicetree/bindings/serial/renesas,sci-serial.txt | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) commit a9ec81f4ed5c05dbbc671e5fa39de0540eb0495f Author: Laurent Pinchart Date: Mon Sep 14 15:14:23 2015 +0300 serial: sh-sci: Drop the interface clock As no platform defines an interface clock the SCI driver always falls back to a clock named "peripheral_clk". - On SH platforms that clock is the base clock for the SCI functional clock and has the same frequency, - On ARM platforms that clock doesn't exist, and clk_get() will return the default clock for the device. We can thus make the functional clock mandatory and drop the interface clock. EPROBE_DEFER is handled for clocks that may be referenced from DT (i.e. "fck", and the deprecated "sci_ick"). Cc: devicetree@vger.kernel.org Signed-off-by: Laurent Pinchart Acked-by: Simon Horman [geert: Handle EPROBE_DEFER, reformat description, break long comment line] Signed-off-by: Geert Uytterhoeven Acked-by: Rob Herring Acked-by: Greg Kroah-Hartman .../bindings/serial/renesas,sci-serial.txt | 4 +- drivers/tty/serial/sh-sci.c | 64 ++++++++++++++-------- 2 files changed, 43 insertions(+), 25 deletions(-) commit 1a4ca6dd3dc8551fc0288ec76d046700366d7683 Author: Geert Uytterhoeven Date: Wed Dec 16 08:47:11 2015 +0100 MAINTAINERS: Add co-maintainer for Renesas Pin Controllers Add myself as a co-maintainer for Renesas Pin Controllers. Signed-off-by: Geert Uytterhoeven Acked-by: Laurent Pinchart Acked-by: Simon Horman Acked-by: Linus Walleij MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit 04ebaadb9f2dc66df29db6af14da2912e1e25db7 Author: Jani Nikula Date: Tue Dec 15 13:18:00 2015 +0200 drm/i915/opregion: handle VBT sizes bigger than 6 KB The RVDA and RVDS (raw VBT data address and size) fields of the ASLE mailbox may specify an alternate location for VBT instead of mailbox #4. Use the alternate location if available and valid, falling back to mailbox #4 otherwise. v2: Update debug logging (Ville) Reviewed-by: Ville Syrjälä Tested-by: Mika Kahola Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1450178280-28020-1-git-send-email-jani.nikula@intel.com drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/intel_opregion.c | 27 ++++++++++++++++++++++++--- 2 files changed, 25 insertions(+), 3 deletions(-) commit 40ab87a4003c7952976ce901a2b9ece5ed833168 Author: Wang YanQing Date: Fri Dec 11 00:35:19 2015 +0800 Makefile: revert "Makefile: Document ability to make file.lst and file.S" partially Commit 627189797807 ("Makefile: Document ability to make file.lst and file.S") document ability to make file.S, but there isn't such ability in kbuild, so revert it. Signed-off-by: Wang YanQing Signed-off-by: Michal Marek Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 16f080aaadcb912c9a47c8603a38ccad87da38ea Author: Rahul Pathak Date: Mon Dec 14 08:45:23 2015 +0000 crypto: omap - Removed unused variable "err" Removed unused variable "err" and directly return "0" Reported by coccicheck - ./drivers/crypto/omap-aes.c:542:5-8: Unneeded variable: "err". Return "0" on line 551 ./drivers/crypto/omap-des.c:530:5-8: Unneeded variable: "err". Return "0" on line 539 Signed-off-by: Rahul Pathak Signed-off-by: Herbert Xu drivers/crypto/omap-aes.c | 4 +--- drivers/crypto/omap-des.c | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) commit 871b88a8419c8606ad2ebf752cf414c7627cad1a Author: Rahul Pathak Date: Mon Dec 14 08:44:19 2015 +0000 crypto: atmel-sha - Removed unused variable "err" Removed unused variable "err" and directly return "0" Reported by coccicheck - ./drivers/crypto/atmel-sha.c:758:5-8: Unneeded variable: "err". Return "0" on line 766 Signed-off-by: Rahul Pathak Signed-off-by: Herbert Xu drivers/crypto/atmel-sha.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 6333ed8f26cf77311088d2e2b7cf16d8480bcbb2 Author: Haren Myneni Date: Sun Dec 13 03:30:41 2015 -0800 crypto: nx-842 - Mask XERS0 bit in return value NX842 coprocessor sets 3rd bit in CR register with XER[S0] which is nothing to do with NX request. Since this bit can be set with other valuable return status, mast this bit. One of other bits (INITIATED, BUSY or REJECTED) will be returned for any given NX request. Signed-off-by: Haren Myneni Signed-off-by: Herbert Xu arch/powerpc/include/asm/icswx.h | 1 + drivers/crypto/nx/nx-842-powernv.c | 12 ++++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) commit ef85f299c74e6c5dd98ec0230183be33f4c2813d Author: Takashi Iwai Date: Thu Dec 17 08:12:37 2015 +0100 ALSA: hda - Merge RIRB_PRE_DELAY into CTX_WORKAROUND caps AZX_DCAPS_RIRB_PRE_DELAY is always tied with AZX_DCAPS_CTX_WORKAROUND, which is Creative's XFi specific. So, we can replace it and reduce one more bit free for DCAPS. Signed-off-by: Takashi Iwai sound/pci/hda/hda_controller.c | 2 +- sound/pci/hda/hda_controller.h | 2 +- sound/pci/hda/hda_intel.c | 6 ++---- 3 files changed, 4 insertions(+), 6 deletions(-) commit 9e1dfb858de43bb3dfbbb32cec57433e9b250dee Author: Andy Gross Date: Thu Sep 24 14:18:54 2015 -0500 arm64: dts: Add PM8916 support on MSM8916 This patch adds the PM8916 regulator nodes found on MSM8916 platforms. Signed-off-by: Andy Gross Acked-by: Bjorn Andersson arch/arm64/boot/dts/qcom/msm8916.dtsi | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit 8fd55d41cabb2db4adf659316456d014a8c3e77f Author: Andy Gross Date: Thu Sep 24 14:18:53 2015 -0500 arm64: dts: qcom: Add RPM/SMD support on MSM8916 Add support for the SMD and RPM devices found on MSM8916 platforms. Signed-off-by: Andy Gross Acked-by: Bjorn Andersson arch/arm64/boot/dts/qcom/msm8916.dtsi | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit a0ece65777c35bf1e69fafbbf2be9566eca070c1 Author: Andy Gross Date: Thu Sep 24 14:18:52 2015 -0500 arm64: dts: qcom: Add MSM8916 SMEM nodes This patch adds the nodes necessary to support the SMEM driver on MSM8916 platforms. Signed-off-by: Andy Gross Acked-by: Bjorn Andersson arch/arm64/boot/dts/qcom/msm8916.dtsi | 41 +++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) commit c240f29e75e686baa5b5ddc801e70022dd6bf358 Author: Srinivas Kandagatla Date: Fri Dec 11 18:13:12 2015 +0000 arm64: dts: set the default i2c pin drive strength to 16mA 2mA drive strength is not enough when we connect multiple i2c devices on the bus with different pull up resistors. This issue was detected when multiple i2c devices connected on the other side of level shifters on Linaro sensor board. Maxing up to 16mA made i2c much stable. Signed-off-by: Srinivas Kandagatla Signed-off-by: Andy Gross arch/arm64/boot/dts/qcom/msm8916-pins.dtsi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit b98e6c76586e92c407cd543f5a9b4efe802117d7 Author: Srinivas Kandagatla Date: Fri Dec 11 18:12:50 2015 +0000 arm64: dts: fix the i2c aliasing to match to schematics. This patch fixes the i2c bus number aliasing so that it matches with the schematics bus naming. Without this patch the user might would get bus numbers depending on the order the devices are probed. Signed-off-by: Srinivas Kandagatla Signed-off-by: Andy Gross arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi | 3 +++ 1 file changed, 3 insertions(+) commit f4fb6aeafaaa1c795f4ada9388051295830460c7 Author: Georgi Djakov Date: Thu Dec 3 16:02:52 2015 +0200 arm64: dts: qcom: msm8916: Add fixed rate on-board oscillators Currently the rates of the xo and sleep clocks are hard-coded in the GCC driver, but this is a board layout description that actually should be in the DT. Moving them into DT also allows us to insert the RPM controlled clocks between the DT and GCC clocks. Signed-off-by: Georgi Djakov Signed-off-by: Andy Gross arch/arm64/boot/dts/qcom/msm8916.dtsi | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 2bce84c1a0c3ff04d29e6ef02823074588e90aa1 Author: Stephen Boyd Date: Fri Nov 20 15:31:19 2015 -0800 arm64: dts: qcom: Alias pm8916 on msm8916 devices Add an alias for pm8916 on msm8916 based SoCs so that the newly updated dtbTool can find the pmic compatible string and add the pmic-id element to the QCDT header. Signed-off-by: Stephen Boyd Signed-off-by: Andy Gross arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi | 1 + arch/arm64/boot/dts/qcom/msm8916-mtp.dtsi | 1 + arch/arm64/boot/dts/qcom/pm8916.dtsi | 6 +++--- 3 files changed, 5 insertions(+), 3 deletions(-) commit 503b01ec9b5f829c583e14dc5d8c5fda6ac8d915 Author: Stephen Boyd Date: Fri Nov 20 15:31:17 2015 -0800 arm64: dts: qcom: Make msm8916-mtp compatible string compliant This compatible string isn't compliant with the format for subtypes. Replace it with a compliant compatible type. Signed-off-by: Stephen Boyd Signed-off-by: Andy Gross arch/arm64/boot/dts/qcom/msm8916-mtp.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit df2d8213d9e3f636f8273847cf906ded3535ec2f Author: John Garry Date: Fri Dec 11 20:03:21 2015 +0800 hisi_sas: use platform_get_irq() It is preferred that drivers use platform_get_irq() instead of irq_of_parse_and_map(), so replace. Signed-off-by: John Garry Acked-by: Rob Herring Reviewed-by: Johannes Thumshirn Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas.h | 1 - drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 13 +++++-------- 2 files changed, 5 insertions(+), 9 deletions(-) commit 09c8b00ae3e16c8d0fd4beb2ca064502a76c0f17 Author: Pierre-Loup A. Griffais Date: Wed Dec 9 11:46:25 2015 -0800 Input: xpad - handle "present" and "gone" correctly Handle the "a new device is present" message properly by dynamically creating the input device at this point in time. This means we now do not "preallocate" all 4 devices when a single wireless base station is seen. This requires a workqueue as we are in interrupt context when we learn about this. Also properly disconnect any devices that we are told are removed. Signed-off-by: "Pierre-Loup A. Griffais" Signed-off-by: Greg Kroah-Hartman Signed-off-by: Pavel Rojtberg Signed-off-by: Dmitry Torokhov drivers/input/joystick/xpad.c | 107 +++++++++++++++++++++++++++--------------- 1 file changed, 69 insertions(+), 38 deletions(-) commit 93a017aa2f77291752e637bfd83f2459dba714cb Author: Clement Calmels Date: Sat Dec 12 21:20:11 2015 -0800 Input: xpad - remove spurious events of wireless xpad 360 controller When powering up a wireless xbox 360 controller, some wrong joystick events are generated. It is annoying because, for example, it makes unwanted moves in Steam big picture mode's menu. When my controller is powering up, this packet is received by the driver: 00000000: 00 0f 00 f0 00 cc ff cf 8b e0 86 6a 68 f0 00 20 ...........jh.. 00000010: 13 e3 20 1d 30 03 40 01 50 01 ff ff .. .0.@.P... According to xboxdrv userspace driver source code, this packet is only dumping a serial id and should not be interpreted as joystick events. This issue can be easily seen with jstest: $ jstest --event /dev/input/js0 This patch only adds a way to filter out this "serial" packet and as a result it removes the spurous events. Signed-off-by: Clement Calmels Signed-off-by: Dmitry Torokhov drivers/input/joystick/xpad.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d01c8bec91414f2110370dfcb9dd33fc0e573cee Author: Simon Horman Date: Fri Dec 11 11:59:38 2015 +0900 ARM: shmobile: r8a779x: use SoC-specific usb-dmac compatibility strings Use recently SoC-specific compatibility strings in r8a779[01] device trees. Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7790.dtsi | 4 ++-- arch/arm/boot/dts/r8a7791.dtsi | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit ec02b076ceab63f99e5b3d80fd223d777266c236 Author: John Stultz Date: Thu Dec 3 10:23:30 2015 -0800 timekeeping: Cap adjustments so they don't exceed the maxadj value Thus its been occasionally noted that users have seen confusing warnings like: Adjusting tsc more than 11% (5941981 vs 7759439) We try to limit the maximum total adjustment to 11% (10% tick adjustment + 0.5% frequency adjustment). But this is done by bounding the requested adjustment values, and the internal steering that is done by tracking the error from what was requested and what was applied, does not have any such limits. This is usually not problematic, but in some cases has a risk that an adjustment could cause the clocksource mult value to overflow, so its an indication things are outside of what is expected. It ends up most of the reports of this 11% warning are on systems using chrony, which utilizes the adjtimex() ADJ_TICK interface (which allows a +-10% adjustment). The original rational for ADJ_TICK unclear to me but my assumption it was originally added to allow broken systems to get a big constant correction at boot (see adjtimex userspace package for an example) which would allow the system to work w/ ntpd's 0.5% adjustment limit. Chrony uses ADJ_TICK to make very aggressive short term corrections (usually right at startup). Which push us close enough to the max bound that a few late ticks can cause the internal steering to push past the max adjust value (tripping the warning). Thus this patch adds some extra logic to enforce the max adjustment cap in the internal steering. Note: This has the potential to slow corrections when the ADJ_TICK value is furthest away from the default value. So it would be good to get some testing from folks using chrony, to make sure we don't cause any troubles there. Cc: Miroslav Lichvar Cc: Thomas Gleixner Cc: Richard Cochran Cc: Prarit Bhargava Cc: Andy Lutomirski Tested-by: Miroslav Lichvar Reported-by: Andy Lutomirski Signed-off-by: John Stultz kernel/time/timekeeping.c | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) commit c796348774f15c6e682834ed288bcae0f2c95707 Author: DengChao Date: Sun Dec 13 12:26:42 2015 +0800 ntp: Fix second_overflow's input parameter type to be 64bits The function "second_overflow" uses "unsign long" as its input parameter type which will overflow after year 2106 on 32bit systems. Thus this patch replaces it with time64_t type. While the 64-bit division is expensive, "next_ntp_leap_sec" has been calculated already, so we can just re-use it in the TIME_INS/DEL cases, allowing one expensive division per leapsecond instead of re-doing the divsion once a second after the leap flag has been set. Signed-off-by: DengChao [jstultz: Tweaked commit message] Signed-off-by: John Stultz kernel/time/ntp.c | 16 +++++++++------- kernel/time/ntp_internal.h | 2 +- 2 files changed, 10 insertions(+), 8 deletions(-) commit 0af864651b459afb0435ee8786a19cbe5a044cdb Author: DengChao Date: Sun Dec 13 12:24:19 2015 +0800 ntp: Change time_reftime to time64_t and utilize 64bit __ktime_get_real_seconds The type of static variant "time_reftime" and the call of get_seconds in ntp are both not y2038 safe. So change the type of time_reftime to time64_t and replace get_seconds with __ktime_get_real_seconds. The local variant "secs" in ntp_update_offset represents seconds between now and last ntp adjustment, it seems impossible that this time will last more than 68 years, so keep its type as "long". Reviewed-by: John Stultz Signed-off-by: DengChao [jstultz: Tweaked commit message] Signed-off-by: John Stultz kernel/time/ntp.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit dee3665416a8553279d10b62b5e62685cbe5daa8 Author: DengChao Date: Sun Dec 13 12:24:18 2015 +0800 timekeeping: Provide internal function __ktime_get_real_seconds In order to fix Y2038 issues in the ntp code we will need replace get_seconds() with ktime_get_real_seconds() but as the ntp code uses the timekeeping lock which is also used by ktime_get_real_seconds(), we need a version without locking. Add a new function __ktime_get_real_seconds() in timekeeping to do this. Reviewed-by: John Stultz Signed-off-by: DengChao Signed-off-by: John Stultz kernel/time/timekeeping.c | 13 +++++++++++++ kernel/time/timekeeping_internal.h | 2 ++ 2 files changed, 15 insertions(+) commit 46113a54be53aea50a4f5926b87e86e2e66c4266 Author: Josh Poimboeuf Date: Tue Dec 15 09:39:37 2015 -0600 perf tools: Remove 'perf' from subcmd function and variable names In preparation for moving exec_cmd.c and run-command.c out of perf and into a library, remove 'perf' from all the symbol names. Signed-off-by: Josh Poimboeuf Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/bc3ee82b40b8f396b644fa49e0f7260ce442635b.1450193761.git.jpoimboe@redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-help.c | 2 +- tools/perf/builtin-script.c | 8 ++++---- tools/perf/perf.c | 6 +++--- tools/perf/tests/attr.c | 2 +- tools/perf/util/exec_cmd.c | 20 ++++++++++---------- tools/perf/util/exec_cmd.h | 12 ++++++------ tools/perf/util/help.c | 4 ++-- tools/perf/util/run-command.c | 6 +++--- tools/perf/util/run-command.h | 4 ++-- 9 files changed, 32 insertions(+), 32 deletions(-) commit 901421a5bdf605d24c278825cdd032cd6038bcb8 Author: Josh Poimboeuf Date: Tue Dec 15 09:39:36 2015 -0600 perf tools: Remove subcmd dependencies on strbuf Introduce and use new astrcat() and astrcatf() functions which replace the strbuf functionality for subcmd. For now they duplicate strbuf's die-on-allocation-error policy. Signed-off-by: Josh Poimboeuf Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/957d207e1254406fa11fc2e405e75a7e405aad8f.1450193761.git.jpoimboe@redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/exec_cmd.c | 27 +++++++++++++------------- tools/perf/util/help.c | 14 ++++++-------- tools/perf/util/parse-options.c | 42 +++++++++++++++++++++-------------------- tools/perf/util/subcmd-util.h | 24 +++++++++++++++++++++++ 4 files changed, 66 insertions(+), 41 deletions(-) commit a8da474ec18f4c4c39f83202d64d73a23b755c1d Author: Daniel Axtens Date: Mon Dec 7 10:50:51 2015 +1100 selftests/powerpc: Add script to test HMI functionality HMIs (Hypervisor Management|Maintenance Interrupts) are a class of interrupt on POWER systems. HMI support has traditionally been exceptionally difficult to test, however Skiboot ships a tool that, with the correct magic numbers, will inject them. This, therefore, is a first pass at a script to inject HMIs and monitor Linux's response. It injects an HMI on each core on every chip in turn It then watches dmesg to see if it's acknowledged by Linux. On a Tuletta, I observed that we see 8 (or sometimes 9 or more) events per injection, regardless of SMT setting, so we wait for 8 before progressing. It sits in a new scripts/ directory in selftests/powerpc, because it's not designed to be run as part of the regular make selftests process. In particular, it is quite possibly going to end up garding lots of your CPUs, so it should only be run if you know how to undo that. CC: Mahesh J Salgaonkar Signed-off-by: Daniel Axtens Signed-off-by: Michael Ellerman tools/testing/selftests/powerpc/scripts/hmi.sh | 89 ++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) commit 51c21e72eb99d1136614135d633baae269893778 Author: Michael Ellerman Date: Wed Dec 2 20:44:11 2015 +1100 selftests/powerpc: Make context_switch touch FP/altivec/vector by default Simply because it touches more code paths that way, and therefore tests more things. Signed-off-by: Michael Ellerman Acked-by: Anton Blanchard tools/testing/selftests/powerpc/benchmarks/context_switch.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit ea0c321784565c681507e02acf900deaa1e9e952 Author: Michael Ellerman Date: Wed Dec 2 20:44:10 2015 +1100 selftests/powerpc: Make context_switch do something with no args For ease of use make the context_switch test do something useful when called with no arguments. Default to a 30 second run, using threads, doing yield, and use any online cpu. Make it print out what it's doing to avoid confusion. Signed-off-by: Michael Ellerman Acked-by: Anton Blanchard .../testing/selftests/powerpc/benchmarks/Makefile | 1 + .../selftests/powerpc/benchmarks/context_switch.c | 32 ++++++++++++++++------ 2 files changed, 24 insertions(+), 9 deletions(-) commit 00b7ec5c9cf338902faea2e40801573a384e45be Author: Michael Ellerman Date: Wed Dec 2 20:44:09 2015 +1100 selftests/powerpc: Import Anton's context_switch2 benchmark This gets referred to a lot in commit messages, so let's pull it into the selftests. Almost vanilla from: http://ozlabs.org/~anton/junkcode/context_switch2.c Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman Acked-by: Anton Blanchard .../selftests/powerpc/benchmarks/.gitignore | 1 + .../testing/selftests/powerpc/benchmarks/Makefile | 4 +- .../selftests/powerpc/benchmarks/context_switch.c | 452 +++++++++++++++++++++ 3 files changed, 456 insertions(+), 1 deletion(-) commit d1301afd71bd38b1610b391e50debf766faa84be Author: Michael Ellerman Date: Wed Dec 16 18:59:31 2015 +1100 selftests/powerpc: Move pick_online_cpu() up into utils.c We want to use this in another test, so make it available at the top of the powerpc selftests tree. Signed-off-by: Michael Ellerman tools/testing/selftests/powerpc/pmu/Makefile | 2 +- tools/testing/selftests/powerpc/pmu/lib.c | 26 ------------------------- tools/testing/selftests/powerpc/pmu/lib.h | 1 - tools/testing/selftests/powerpc/utils.c | 29 ++++++++++++++++++++++++++++ tools/testing/selftests/powerpc/utils.h | 1 + 5 files changed, 31 insertions(+), 28 deletions(-) commit b3379041ddf68ba46c31fce741ddb71675b39d23 Author: Hubert Sokolowski Date: Tue Dec 15 13:20:30 2015 +0000 net: Pass ndm_state to route netlink FDB notifications. Before this change applications monitoring FDB notifications were not able to determine whether a new FDB entry is permament or not: bridge fdb add f1:f2:f3:f4:f5:f8 dev sw0p1 temp self bridge fdb add f1:f2:f3:f4:f5:f9 dev sw0p1 self bridge monitor fdb f1:f2:f3:f4:f5:f8 dev sw0p1 self permanent f1:f2:f3:f4:f5:f9 dev sw0p1 self permanent With this change ndm_state from the original netlink message is passed to the new netlink message sent as notification. bridge fdb add f1:f2:f3:f4:f5:f6 dev sw0p1 self bridge fdb add f1:f2:f3:f4:f5:f7 dev sw0p1 temp self bridge monitor fdb f1:f2:f3:f4:f5:f6 dev sw0p1 self permanent f1:f2:f3:f4:f5:f7 dev sw0p1 self static Signed-off-by: Hubert Sokolowski Signed-off-by: David S. Miller net/core/rtnetlink.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) commit 9a1123e894b679e24d354bc2419ca1af1e2b04ac Merge: 07ade84 ad90659 Author: Dave Airlie Date: Thu Dec 17 08:38:57 2015 +1000 Merge tag 'drm/tegra/for-4.5-rc1' of git://anongit.freedesktop.org/tegra/linux into drm-next drm/tegra: Changes for v4.5-rc1 This adds support for the version of host1x found on Tegra210 SoCs. It also makes use of the new atomic suspend/resume functionality to bring this feature to Tegra. Other than that it's mostly small fixes and cleanups, with some prep- work for things that will hopefully get merged for the next release. * tag 'drm/tegra/for-4.5-rc1' of git://anongit.freedesktop.org/tegra/linux: drm/tegra: Advertise DRIVER_ATOMIC drm/tegra: Use DRIVER level for IOMMU aperture message drm/tegra: checking for IS_ERR() instead of NULL drm/tegra: dc: Add missing of_node_put() drm/tegra: Implement subsystem-level suspend/resume drm/tegra: sor: Remove unnecessary conditional drm/tegra: sor: Operate on struct drm_dp_aux * drm/tegra: Use drm_gem_object_unreference_unlocked() drm/tegra: Don't take dev->struct_mutex in mmap offset ioctl drm/tegra: Use unlocked gem unreferencing drm/tegra: Use new multi-driver module helpers gpu: host1x: Add Tegra210 support gpu: host1x: Remove core driver on unregister gpu: host1x: Use platform_register/unregister_drivers() commit 07ade8446192296fa7149a035c1d2e14341fbc22 Merge: 51bce5b d2a6f0f Author: Dave Airlie Date: Thu Dec 17 08:37:52 2015 +1000 Merge tag 'drm/panel/for-4.5-rc1' of git://anongit.freedesktop.org/tegra/linux into drm-next drm/panel: Changes for v4.5-rc1 This set of changes brings in a few more helpers for DSI support as well as a couple of new drivers and support for some more simple panels. * tag 'drm/panel/for-4.5-rc1' of git://anongit.freedesktop.org/tegra/linux: drm/panel: simple: Add QiaoDian qd43003c0-40 of: Add vendor prefix for QiaoDian Xianshi drm/panel: add kernel doc for size attributes in panel_desc drm/panel: simple: Add support for Kyocera TCG121XGLP panel devicetree: add vendor prefix for Kyocera Corporation drm/bridge: Remove gratuitous blank line drm/bridge: dw-hdmi: Use dashes in filenames drm/panel: Add Sharp LS043T1LE01 MIPI DSI panel dt-bindings: Add Sharp LS043T1LE01 panel binding drm/dsi: Add Turn On/Shutdown Peripheral command helpers drm/panel: Add Panasonic VVX10F034N00 MIPI DSI panel dt-bindings: Add Panasonic VVX10F034N00 panel binding drm/panel: simple: Add support for Innolux G121X1-L03 drm/panel: simple: Add support for BOE TV080WUM-NL0 dt-bindings: Add BOE TV080WUM-NL0 panel binding of: Add vendor prefix for BOE Technology Group drm/dsi: Add a helper to get bits per pixel of MIPI DSI pixel format commit 40e3be3933aee185fd6ab1ec87dfaf3502d9f5b3 Author: Damien Riegel Date: Wed Dec 16 11:49:14 2015 -0800 Input: add touchscreen support for TS-4800 On this board, the touchscreen, an ads7843, is not handled directly by Linux but by a companion FPGA. This FPGA is memory-mapped and the IP design is very similar to the mk712. This commit adds the support for this IP. Signed-off-by: Damien Riegel Acked-by: Rob Herring Signed-off-by: Dmitry Torokhov .../bindings/input/touchscreen/ts4800-ts.txt | 11 ++ drivers/input/touchscreen/Kconfig | 16 ++ drivers/input/touchscreen/Makefile | 1 + drivers/input/touchscreen/ts4800-ts.c | 216 +++++++++++++++++++++ 4 files changed, 244 insertions(+) commit 2abc02fc494fa4c920a08a1d0beecabafbcb2104 Author: Yakir Yang Date: Wed Dec 16 16:27:18 2015 +0800 clk: rockchip: rk3036: enable the CLK_IGNORE_UNUSED flag for aclk_vio ACLK_VIO is the noc bus clock for display module, display cann't read data from ddr without this clock enabled. Due to it shouldn't belong to any driver, but we need it enabled, so just mark it as the CLK_IGNORE_UNUSED flag. Signed-off-by: Yakir Yang Signed-off-by: Caesar Wang Signed-off-by: Heiko Stuebner drivers/clk/rockchip/clk-rk3036.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b7bd98b7db9fc8fe19da1a5ff0215311c6b95e46 Author: David Eccher Date: Fri Dec 11 22:13:55 2015 +0100 usb: gadget: inode.c: fix unbalanced spin_lock in ep0_write Fix bad unlock balance: ep0_write enter with the locks locked from inode.c:1769, hence it must exit with spinlock held to avoid double unlock in dev_config. Signed-off-by: David Eccher Signed-off-by: Felipe Balbi drivers/usb/gadget/legacy/inode.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 2608224c81a7d242a9b451b97011410b182f0da7 Author: Jeffy Chen Date: Wed Dec 9 17:04:11 2015 +0800 ARM: rockchip: enable support for RK3228 SoCs Add a rockchip,rk3228 compatible. Signed-off-by: Jeffy Chen Signed-off-by: Heiko Stuebner arch/arm/mach-rockchip/rockchip.c | 1 + 1 file changed, 1 insertion(+) commit 26dc88fbb937e61988d86af92ca57544cc2a2087 Author: Heiko Stuebner Date: Fri Dec 4 18:04:44 2015 +0100 ARM: rockchip: use const and __initconst for rk3036 smp_operations The newly added rk3036 smp operations missed the wholesale fixup from Masahiro Yamada. So fix that now. Reported-by: Mark Brown Signed-off-by: Heiko Stuebner arch/arm/mach-rockchip/platsmp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 439481026554df8c8909962e956810c6fa93eb23 Author: Stephen Boyd Date: Mon Nov 30 17:08:57 2015 -0800 ARM: defconfig: qcom: Enable SSBI drivers Enable some ssbi drivers present on msm8660, msm8960 and apq8064 devices so that we fully exercise the devices present in the dts files. Signed-off-by: Stephen Boyd Signed-off-by: Andy Gross arch/arm/configs/qcom_defconfig | 5 +++++ 1 file changed, 5 insertions(+) commit 6b0f8f9c52efe24d6dac06ab963b7bd91c723751 Author: Böszörményi Zoltán Date: Wed Dec 16 11:11:50 2015 -0800 Input: add eGalaxTouch serial touchscreen driver There are two EETI touchscreen drivers in the kernel (eeti_ts and egalax_ts) but both are for I2C-connected panels. This is for a different, serial and not multi-touch touchscreen panel. The protocol documentation is at http://www.eeti.com.tw/pdf/Software%20Programming%20Guide_v2.0.pdf Signed-off-by: Böszörményi Zoltán Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/Kconfig | 10 ++ drivers/input/touchscreen/Makefile | 1 + drivers/input/touchscreen/egalax_ts_serial.c | 194 +++++++++++++++++++++++++++ include/uapi/linux/serio.h | 1 + 4 files changed, 206 insertions(+) commit e8bc3c99fa982f616e74aec4445945400a9c56f3 Author: Dan Carpenter Date: Tue Dec 8 08:53:22 2015 +0300 ASoC: Intel: Skylake: pointer math issue "data" is a u32 pointer so this copies the information to wrong place entirely. Fixes: 140adfba5280 ('ASoC: Intel: Skylake: Add tlv byte kcontrols') Signed-off-by: Dan Carpenter Acked-by: Vinod Koul Tested-by: Dharageswari R Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-topology.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b554e1450658039df28486f19216d6962d29dba6 Author: Keerthy Date: Mon Dec 14 12:06:55 2015 +0530 regulator: tps65917/palmas: Add bypass ops for LDOs with bypass capability set/get_bypass ops were missing for ldo1/ldo2 on tps65917 and ldo9 on palmas/tps659038 which support bypass mode. Adding the bypass ops helps consumers configure these ldos in bypass mode or remove bypass mode if need be. Signed-off-by: Keerthy Reported-by: Kishon Vijay Abraham I Signed-off-by: Mark Brown drivers/regulator/palmas-regulator.c | 39 ++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) commit 1aa844cd56c7a2b94824f02495ff7ae5d52a7e91 Author: Ben Zhang Date: Tue Dec 15 13:51:25 2015 -0800 ASoC: rt5677: Reconfigure PLL1 after resume Sometimes PLL1 stops working if the codec loses power during suspend (when pow-ldo2 or reset gpio is used). MX-7Bh(RT5677_PLL1_CTRL2) is cleared and won't be restored by regcache since it's volatile. MX-7Bh has one status bit and M code for PLL1. rt5677_set_dai_pll doesn't reconfigure PLL1 after resume because it thinks the PLL params are not changed. This patch clears the cached PLL params at resume so that rt5677_set_dai_pll can reconfigure the PLL after resume. Signed-off-by: Ben Zhang Signed-off-by: Mark Brown sound/soc/codecs/rt5677.c | 3 +++ 1 file changed, 3 insertions(+) commit 096d35585b4fce7d3ee9b8b34314f39f49491ab1 Author: Josh Poimboeuf Date: Tue Dec 15 09:39:35 2015 -0600 perf tools: Provide subcmd configuration at runtime Create init functions for exec_cmd.c and pager.c. This allows their configuration to be specified at runtime so they can be split out into a separate library which can be used by other programs. Their configuration is stored in a shared subcmd_config struct. Signed-off-by: Josh Poimboeuf Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/21f5f6b38da72c985a8dcfa185700d03e7eecd1d.1450193761.git.jpoimboe@redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Build | 5 ++++- tools/perf/perf.c | 6 +++++- tools/perf/util/Build | 2 +- tools/perf/util/cache.h | 1 + tools/perf/util/exec_cmd.c | 23 ++++++++++++++++------- tools/perf/util/exec_cmd.h | 3 +++ tools/perf/util/pager.c | 8 +++++++- tools/perf/util/pager.h | 2 ++ tools/perf/util/parse-options.c | 4 +++- tools/perf/util/subcmd-config.c | 11 +++++++++++ tools/perf/util/subcmd-config.h | 14 ++++++++++++++ 11 files changed, 67 insertions(+), 12 deletions(-) commit 3451eb485aee78f31a8dd127e3385f89946c813b Author: Richard Fitzgerald Date: Wed Dec 16 17:06:24 2015 +0000 ASoC: arizona: In arizona_calc_fratio make new codecs the default case This patch rearranges the switch statement in arizona_calc_fratio so that older codecs are the special cases, with the default case applying to newer codecs (WM8998 and later). This is preferable because it avoids having to patch new cases in every time a new codec is added. Signed-off-by: Richard Fitzgerald Signed-off-by: Mark Brown sound/soc/codecs/arizona.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit db4e561378b539230feb4db5e7d5d548c2db2cd4 Author: Dan Carpenter Date: Tue Dec 15 12:20:14 2015 +0300 ASoC: Intel: Skylake: Fix a couple signedness bugs These need to be signed because they hold negative error codes. Signed-off-by: Dan Carpenter Acked-by Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-sst.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 24a88bdd05d5de32f3a56a4dcc5070c97d4a514f Author: Josh Poimboeuf Date: Tue Dec 15 09:39:34 2015 -0600 perf tools: Document the fact that parse_options*() may exit Generally, calling exit() from a library is bad practice. Eventually these functions might be redesigned so that they don't exit. For now, just document the fact that they do. Signed-off-by: Josh Poimboeuf Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/97b1af06cc3b18dd0f49e655d6d659eaa64ecde5.1450193761.git.jpoimboe@redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/parse-options.h | 3 +++ 1 file changed, 3 insertions(+) commit ce99091730c92bf560712baa0696ea5a461b1fe8 Author: Josh Poimboeuf Date: Tue Dec 15 09:39:33 2015 -0600 perf tools: Move strlcpy() from perf to tools/lib/string.c strlcpy() will be needed by the subcmd library. Move it to the shared tools/lib/string.c file which can be used by other tools. Signed-off-by: Josh Poimboeuf Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/71e2804b973bf39ad3d3b9be10f99f2ea630be46.1450193761.git.jpoimboe@redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/include/linux/string.h | 4 ++++ tools/lib/string.c | 27 +++++++++++++++++++++++++++ tools/perf/util/cache.h | 7 ++----- tools/perf/util/path.c | 18 ------------------ 4 files changed, 33 insertions(+), 23 deletions(-) commit 1925459b4d92d92e62d67ddc763cda650d2aa79c Author: Josh Poimboeuf Date: Tue Dec 15 09:39:32 2015 -0600 tools build: Fix feature Makefile issues with 'O=' When building perf binaries outside the source tree with 'make O=', the auto-detected features get re-tested for every build, which is unnecessary and inconsistent with the behavior seen when building directly in the source tree. Another issue is that 'make O= clean' doesn't remove the feature files from the object tree. Fix these problems by looking for the binaries in the $(OUTPUT) directory. Signed-off-by: Josh Poimboeuf Acked-by: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/113bd01530e9761778c60a75a96c65fc59860f68.1450193761.git.jpoimboe@redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/build/Makefile.feature | 2 +- tools/build/feature/Makefile | 93 ++++++++++++++++++++++---------------------- 2 files changed, 48 insertions(+), 47 deletions(-) commit 481d2bcc8454a44811db2bb68ac216fc6c5a23db Author: Andrey Smetanin Date: Mon Dec 14 18:33:05 2015 +0300 kvm/x86: Remove Hyper-V SynIC timer stopping It's possible that guest send us Hyper-V EOM at the middle of Hyper-V SynIC timer running, so we start processing of Hyper-V SynIC timers in vcpu context and stop the Hyper-V SynIC timer unconditionally: host guest ------------------------------------------------------------------------------ start periodic stimer start periodic timer timer expires after 15ms send expiration message into guest restart periodic timer timer expires again after 15 ms msg slot is still not cleared so setup ->msg_pending (1) restart periodic timer process timer msg and clear slot ->msg_pending was set: send EOM into host received EOM kvm_make_request(KVM_REQ_HV_STIMER) kvm_hv_process_stimers(): ... stimer_stop() if (time_now >= stimer->exp_time) stimer_expiration(stimer); Because the timer was rearmed at (1), time_now < stimer->exp_time and stimer_expiration is not called. The timer then never fires. The patch fixes such situation by not stopping Hyper-V SynIC timer at all, because it's safe to restart it without stop in vcpu context and timer callback always returns HRTIMER_NORESTART. Signed-off-by: Andrey Smetanin CC: Gleb Natapov CC: Paolo Bonzini CC: Roman Kagan CC: Denis V. Lunev CC: qemu-devel@nongnu.org Signed-off-by: Paolo Bonzini arch/x86/kvm/hyperv.c | 1 - 1 file changed, 1 deletion(-) commit 671d9ab38097fae45ff4f24562789b98b51d37ec Author: Borislav Petkov Date: Fri Nov 20 19:52:12 2015 +0100 kvm: Dump guest rIP when the guest tried something unsupported It looks like this in action: kvm [5197]: vcpu0, guest rIP: 0xffffffff810187ba unhandled rdmsr: 0xc001102 and helps to pinpoint quickly where in the guest we did the unsupported thing. Signed-off-by: Borislav Petkov Signed-off-by: Paolo Bonzini include/linux/kvm_host.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 8a86aea920f1bb1cf7050e48112227a1c42cafe5 Author: Paolo Bonzini Date: Thu Dec 3 15:56:55 2015 +0100 KVM: vmx: detect mismatched size in VMCS read/write Signed-off-by: Paolo Bonzini --- I am sending this as RFC because the error messages it produces are very ugly. Because of inlining, the original line is lost. The alternative is to change vmcs_read/write/checkXX into macros, but then you need to have a single huge BUILD_BUG_ON or BUILD_BUG_ON_MSG because multiple BUILD_BUG_ON* with the same __LINE__ are not supported well. arch/x86/kvm/vmx.c | 100 ++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 83 insertions(+), 17 deletions(-) commit 845c5b4054635f98eb6f1c783c0cc14b28772cb0 Author: Paolo Bonzini Date: Thu Dec 3 15:51:00 2015 +0100 KVM: VMX: fix read/write sizes of VMCS fields in dump_vmcs This was not printing the high parts of several 64-bit fields on 32-bit kernels. Separate from the previous one to make the patches easier to review. Signed-off-by: Paolo Bonzini arch/x86/kvm/vmx.c | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) commit f35310546399eb77f03d37e760320e021f9a8568 Author: Paolo Bonzini Date: Thu Dec 3 15:49:56 2015 +0100 KVM: VMX: fix read/write sizes of VMCS fields In theory this should have broken EPT on 32-bit kernels (due to reading the high part of natural-width field GUEST_CR3). Not sure if no one noticed or the processor behaves differently from the documentation. Signed-off-by: Paolo Bonzini arch/x86/kvm/vmx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 0bcf261cc86d082923082f79febe2d13c055f217 Author: Li RongQing Date: Thu Dec 3 13:29:34 2015 +0800 KVM: VMX: fix the writing POSTED_INTR_NV POSTED_INTR_NV is 16bit, should not use 64bit write function [ 5311.676074] vmwrite error: reg 3 value 0 (err 12) [ 5311.680001] CPU: 49 PID: 4240 Comm: qemu-system-i38 Tainted: G I 4.1.13-WR8.0.0.0_standard #1 [ 5311.689343] Hardware name: Intel Corporation S2600WT2/S2600WT2, BIOS SE5C610.86B.01.01.0008.021120151325 02/11/2015 [ 5311.699550] 00000000 00000000 e69a7e1c c1950de1 00000000 e69a7e38 fafcff45 fafebd24 [ 5311.706924] 00000003 00000000 0000000c b6a06dfa e69a7e40 fafcff79 e69a7eb0 fafd5f57 [ 5311.714296] e69a7ec0 c1080600 00000000 00000001 c0e18018 000001be 00000000 00000b43 [ 5311.721651] Call Trace: [ 5311.722942] [] dump_stack+0x4b/0x75 [ 5311.726467] [] vmwrite_error+0x35/0x40 [kvm_intel] [ 5311.731444] [] vmcs_writel+0x29/0x30 [kvm_intel] [ 5311.736228] [] vmx_create_vcpu+0x337/0xb90 [kvm_intel] [ 5311.741600] [] ? dequeue_task_fair+0x2e0/0xf60 [ 5311.746197] [] kvm_arch_vcpu_create+0x3a/0x70 [kvm] [ 5311.751278] [] kvm_vm_ioctl+0x14d/0x640 [kvm] [ 5311.755771] [] ? free_pages_prepare+0x1a4/0x2d0 [ 5311.760455] [] ? debug_smp_processor_id+0x12/0x20 [ 5311.765333] [] ? sched_move_task+0xbe/0x170 [ 5311.769621] [] ? kmem_cache_free+0x213/0x230 [ 5311.774016] [] ? kvm_set_memory_region+0x60/0x60 [kvm] [ 5311.779379] [] do_vfs_ioctl+0x2e2/0x500 [ 5311.783285] [] ? kmem_cache_free+0x213/0x230 [ 5311.787677] [] ? __mmdrop+0x63/0xd0 [ 5311.791196] [] ? __mmdrop+0x63/0xd0 [ 5311.794712] [] ? __mmdrop+0x63/0xd0 [ 5311.798234] [] ? __fget+0x57/0x90 [ 5311.801559] [] ? __fget_light+0x22/0x50 [ 5311.805464] [] SyS_ioctl+0x80/0x90 [ 5311.808885] [] sysenter_do_call+0x12/0x12 [ 5312.059280] kvm: zapping shadow pages for mmio generation wraparound [ 5313.678415] kvm [4231]: vcpu0 disabled perfctr wrmsr: 0xc2 data 0xffff [ 5313.726518] kvm [4231]: vcpu0 unhandled rdmsr: 0x570 Signed-off-by: Li RongQing Cc: Yang Zhang Signed-off-by: Paolo Bonzini arch/x86/kvm/vmx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1f4b34f825e8cef6f493d06b46605384785b3d16 Author: Andrey Smetanin Date: Mon Nov 30 19:22:21 2015 +0300 kvm/x86: Hyper-V SynIC timers Per Hyper-V specification (and as required by Hyper-V-aware guests), SynIC provides 4 per-vCPU timers. Each timer is programmed via a pair of MSRs, and signals expiration by delivering a special format message to the configured SynIC message slot and triggering the corresponding synthetic interrupt. Note: as implemented by this patch, all periodic timers are "lazy" (i.e. if the vCPU wasn't scheduled for more than the timer period the timer events are lost), regardless of the corresponding configuration MSR. If deemed necessary, the "catch up" mode (the timer period is shortened until the timer catches up) will be implemented later. Changes v2: * Use remainder to calculate periodic timer expiration time Signed-off-by: Andrey Smetanin Reviewed-by: Roman Kagan CC: Gleb Natapov CC: Paolo Bonzini CC: "K. Y. Srinivasan" CC: Haiyang Zhang CC: Vitaly Kuznetsov CC: Roman Kagan CC: Denis V. Lunev CC: qemu-devel@nongnu.org Signed-off-by: Paolo Bonzini arch/x86/include/asm/kvm_host.h | 13 ++ arch/x86/include/uapi/asm/hyperv.h | 6 + arch/x86/kvm/hyperv.c | 318 ++++++++++++++++++++++++++++++++++++- arch/x86/kvm/hyperv.h | 24 +++ arch/x86/kvm/x86.c | 9 ++ include/linux/kvm_host.h | 1 + 6 files changed, 368 insertions(+), 3 deletions(-) commit 765eaa0f70eaa274ec8b815d8c210c20cf7b6dbc Author: Andrey Smetanin Date: Mon Nov 30 19:22:20 2015 +0300 kvm/x86: Hyper-V SynIC message slot pending clearing at SINT ack The SynIC message protocol mandates that the message slot is claimed by atomically setting message type to something other than HVMSG_NONE. If another message is to be delivered while the slot is still busy, message pending flag is asserted to indicate to the guest that the hypervisor wants to be notified when the slot is released. To make sure the protocol works regardless of where the message sources are (kernel or userspace), clear the pending flag on SINT ACK notification, and let the message sources compete for the slot again. Signed-off-by: Andrey Smetanin Reviewed-by: Roman Kagan CC: Gleb Natapov CC: Paolo Bonzini CC: "K. Y. Srinivasan" CC: Haiyang Zhang CC: Vitaly Kuznetsov CC: Roman Kagan CC: Denis V. Lunev CC: qemu-devel@nongnu.org Signed-off-by: Paolo Bonzini arch/x86/kvm/hyperv.c | 31 +++++++++++++++++++++++++++++++ include/linux/kvm_host.h | 2 ++ 2 files changed, 33 insertions(+) commit 93bf4172481c4b2a8544c83a687946252563edd0 Author: Andrey Smetanin Date: Mon Nov 30 19:22:19 2015 +0300 kvm/x86: Hyper-V internal helper to read MSR HV_X64_MSR_TIME_REF_COUNT This helper will be used also in Hyper-V SynIC timers implementation. Signed-off-by: Andrey Smetanin Reviewed-by: Roman Kagan CC: Gleb Natapov CC: Paolo Bonzini CC: "K. Y. Srinivasan" CC: Haiyang Zhang CC: Vitaly Kuznetsov CC: Roman Kagan CC: Denis V. Lunev CC: qemu-devel@nongnu.org Signed-off-by: Paolo Bonzini arch/x86/kvm/hyperv.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 0ae80384b257b0a1ffa4e5d9eab2eb559bb063c5 Author: Andrey Smetanin Date: Mon Nov 30 19:22:18 2015 +0300 kvm/x86: Added Hyper-V vcpu_to_hv_vcpu()/hv_vcpu_to_vcpu() helpers Signed-off-by: Andrey Smetanin Reviewed-by: Roman Kagan CC: Gleb Natapov CC: Paolo Bonzini CC: "K. Y. Srinivasan" CC: Haiyang Zhang CC: Vitaly Kuznetsov CC: Roman Kagan CC: Denis V. Lunev CC: qemu-devel@nongnu.org Signed-off-by: Paolo Bonzini arch/x86/kvm/hyperv.h | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) commit e18eaeed2b056094a5626288d47ceefc740c90e5 Author: Andrey Smetanin Date: Mon Nov 30 19:22:17 2015 +0300 kvm/x86: Rearrange func's declarations inside Hyper-V header This rearrangement places functions declarations together according to their functionality, so future additions will be simplier. Signed-off-by: Andrey Smetanin Reviewed-by: Roman Kagan CC: Gleb Natapov CC: Paolo Bonzini CC: "K. Y. Srinivasan" CC: Haiyang Zhang CC: Vitaly Kuznetsov CC: Roman Kagan CC: Denis V. Lunev CC: qemu-devel@nongnu.org Signed-off-by: Paolo Bonzini arch/x86/kvm/hyperv.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit c71acc4c74dddebbbbeede69fdd4f0b1a124f9df Author: Andrey Smetanin Date: Mon Nov 30 19:22:16 2015 +0300 drivers/hv: Move struct hv_timer_message_payload into UAPI Hyper-V x86 header This struct is required for Hyper-V SynIC timers implementation inside KVM and for upcoming Hyper-V VMBus support by userspace(QEMU). So place it into Hyper-V UAPI header. Signed-off-by: Andrey Smetanin CC: Gleb Natapov CC: Paolo Bonzini CC: "K. Y. Srinivasan" CC: Haiyang Zhang CC: Vitaly Kuznetsov CC: Roman Kagan CC: Denis V. Lunev CC: qemu-devel@nongnu.org Signed-off-by: Paolo Bonzini arch/x86/include/uapi/asm/hyperv.h | 8 ++++++++ drivers/hv/hyperv_vmbus.h | 9 --------- 2 files changed, 8 insertions(+), 9 deletions(-) commit 5b423efe11e822e092e8c911a6bad17eadf718eb Author: Andrey Smetanin Date: Mon Nov 30 19:22:15 2015 +0300 drivers/hv: Move struct hv_message into UAPI Hyper-V x86 header This struct is required for Hyper-V SynIC timers implementation inside KVM and for upcoming Hyper-V VMBus support by userspace(QEMU). So place it into Hyper-V UAPI header. Signed-off-by: Andrey Smetanin Acked-by: K. Y. Srinivasan Reviewed-by: Roman Kagan CC: Gleb Natapov CC: Paolo Bonzini CC: "K. Y. Srinivasan" CC: Haiyang Zhang CC: Vitaly Kuznetsov CC: Roman Kagan CC: Denis V. Lunev CC: qemu-devel@nongnu.org Signed-off-by: Paolo Bonzini arch/x86/include/uapi/asm/hyperv.h | 76 ++++++++++++++++++++++++++++++++++++++ drivers/hv/hyperv_vmbus.h | 75 ------------------------------------- 2 files changed, 76 insertions(+), 75 deletions(-) commit 4f39bcfd1c132522380138a323f9af7902766301 Author: Andrey Smetanin Date: Mon Nov 30 19:22:14 2015 +0300 drivers/hv: Move HV_SYNIC_STIMER_COUNT into Hyper-V UAPI x86 header This constant is required for Hyper-V SynIC timers MSR's support by userspace(QEMU). Signed-off-by: Andrey Smetanin Acked-by: K. Y. Srinivasan Reviewed-by: Roman Kagan CC: Gleb Natapov CC: Paolo Bonzini CC: "K. Y. Srinivasan" CC: Haiyang Zhang CC: Vitaly Kuznetsov CC: Roman Kagan CC: Denis V. Lunev CC: qemu-devel@nongnu.org Signed-off-by: Paolo Bonzini arch/x86/include/uapi/asm/hyperv.h | 2 ++ drivers/hv/hyperv_vmbus.h | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) commit 7797dcf63f11b6e1d34822daf2317223d0f4ad46 Author: Andrey Smetanin Date: Mon Nov 30 19:22:13 2015 +0300 drivers/hv: replace enum hv_message_type by u32 enum hv_message_type inside struct hv_message, hv_post_message is not size portable. Replace enum by u32. Signed-off-by: Andrey Smetanin CC: Gleb Natapov CC: Paolo Bonzini CC: "K. Y. Srinivasan" CC: Haiyang Zhang CC: Vitaly Kuznetsov CC: Roman Kagan CC: Denis V. Lunev CC: qemu-devel@nongnu.org Signed-off-by: Paolo Bonzini drivers/hv/hyperv_vmbus.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit da3f7ca3e85642627a8db37ba337eb5f424339f1 Merge: 4601463 32e6b23 Author: Paolo Bonzini Date: Wed Dec 16 18:49:29 2015 +0100 Merge tag 'kvm-s390-next-4.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD KVM: s390 features and fixes for 4.5 (kvm/next) Some small cleanups - use assignment instead of memcpy - use %pK for kernel pointers Changes regarding guest memory size - Fix an off-by-one error in our guest memory interface (we might use unnecessarily big page tables, e.g. 3 levels for a 2GB guest instead of 2 levels) - We now ask the machine about the max. supported guest address and limit accordingly. commit 343f40f0a70eb7cee9cc8d6fcfbb3917252a5245 Author: Chao Yu Date: Wed Dec 16 13:12:16 2015 +0800 f2fs: introduce new option for controlling data flush Add a new option 'data_flush' to enable data flush functionality. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim Documentation/filesystems/f2fs.txt | 2 ++ fs/f2fs/f2fs.h | 1 + fs/f2fs/super.c | 7 +++++++ 3 files changed, 10 insertions(+) commit d2a6f0f5597696ebf5bb34089be3b88ba2455b7a Author: Josh Wu Date: Thu Oct 8 17:42:41 2015 +0200 drm/panel: simple: Add QiaoDian qd43003c0-40 The QiaoDian Xianshi QD43003C0-40 is a 4"3 TFT LCD panel. Timings from the OTA5180A document, ver 0.9, section 10.1.1: http://www.orientdisplay.com/pdf/OTA5180A.pdf Signed-off-by: Josh Wu Signed-off-by: Alexandre Belloni Signed-off-by: Thierry Reding .../bindings/panel/qiaodian,qd43003c0-40.txt | 7 ++++++ drivers/gpu/drm/panel/panel-simple.c | 27 ++++++++++++++++++++++ 2 files changed, 34 insertions(+) commit 4fa78b8bf4d8c4dfe82e7a7706613500e8773b8e Author: Alexandre Belloni Date: Thu Oct 8 17:42:40 2015 +0200 of: Add vendor prefix for QiaoDian Xianshi Use "qiaodian" as the vendor prefix for QiaoDian Xianshi Corporation in device tree compatible strings. Signed-off-by: Alexandre Belloni Acked-by: Rob Herring Signed-off-by: Thierry Reding Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) commit ffc85daba535d60d28f5c8ffb3ddf78e244e1948 Author: Ville Syrjälä Date: Wed Dec 16 18:10:00 2015 +0200 drm/i915: Fix AVI/HDMI/SPD infoframes on HSW+ I broke AVI/HDMI/SPD infoframes on HSW+ with the register type safety changes. We were supposed to check that the infoframe data register is valid before writing the infoframe data, but the check ended up inverted, and so in practice we never wrote or enabled these infoframes. We were still sending out the GCP infoframe when the sink was deep-color capable. That and the fact that we use a single bool to track our infoframe state meant that the state checker only caught this when a HDMI sink that doesn't do deep-color was used. We really need to fix our infoframe state checking to be much more anal. But in the meantime let's just fix the regression. In fact let's just throw out the register validity check and convert some of the "unknown info frame type" debug messages into MISSING_CASE(). So far we support the same set of infoframe types on all platforms, so the silent debug messages make no sense. Cc: drm-intel-fixes@lists.freedesktop.org Fixes: f0f59a00a1c9 ("drm/i915: Type safe register read/write") Reviewed-by: Maarten Lankhorst (irc) Tested-by: Maarten Lankhorst (irc) Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1450282200-4203-1-git-send-email-ville.syrjala@linux.intel.com Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93119 Reviewed-by: Daniel Vetter drivers/gpu/drm/i915/intel_hdmi.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit c227f912732f204c0ec4a577ba812401ac4672af Author: Chao Yu Date: Wed Dec 16 13:09:20 2015 +0800 f2fs: record dirty status of regular/symlink inode Maintain regular/symlink inode which has dirty pages in global dirty list and record their total dirty pages count like the way of handling directory inode. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/checkpoint.c | 66 ++++++++++++++++++++++++++-------------------------- fs/f2fs/data.c | 4 ++-- fs/f2fs/dir.c | 2 +- fs/f2fs/f2fs.h | 27 +++++++++++++-------- fs/f2fs/inode.c | 2 +- fs/f2fs/super.c | 6 +++-- 6 files changed, 58 insertions(+), 49 deletions(-) commit b3980910f746d885111db7252f664600de2a5ea3 Author: Chao Yu Date: Wed Dec 16 13:19:35 2015 +0800 f2fs: introduce __f2fs_commit_super Introduce __f2fs_commit_super to include duplicated codes in f2fs_commit_super for cleanup. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/super.c | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) commit 55d1cdb25a815ba92a917ae579c27cc3ffb9a57d Author: Jaegeuk Kim Date: Tue Dec 15 16:07:14 2015 -0800 f2fs: relocate tracepoint of write_checkpoint It needs to relocate its location to see exact trace logs. Signed-off-by: Jaegeuk Kim fs/f2fs/checkpoint.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e8240f656d4d5d718ce8cf6b4ea266d6719ef547 Author: Chao Yu Date: Tue Dec 15 17:19:26 2015 +0800 f2fs: don't grab super block buffer header all the time We have already got one copy of valid super block in memory, do not grab buffer header of super block all the time. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/f2fs.h | 2 +- fs/f2fs/file.c | 8 ++---- fs/f2fs/super.c | 81 +++++++++++++++++++++++++-------------------------------- 3 files changed, 38 insertions(+), 53 deletions(-) commit b39f0de23d8f22253d441b3b68414e9a1d027cf6 Author: Yunlei He Date: Tue Dec 15 17:17:20 2015 +0800 f2fs: backup raw_super in sbi f2fs use fields of f2fs_super_block struct directly in a grabbed buffer. Once the buffer happen to be destroyed (e.g. through dd), it may bring in unpredictable effect on f2fs. This patch fixes to allocate additional buffer to store datas of super block rather than using grabbed block buffer directly. Signed-off-by: Yunlei He Signed-off-by: Jaegeuk Kim Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/super.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) commit a1c1e9b74ff380176bf3862c764061e0a7efd9bb Author: Fan Li Date: Tue Dec 15 17:02:41 2015 +0800 f2fs: fix to reset variable correctlly f2fs_map_blocks will set m_flags and m_len to 0, so we don't need to reset m_flags ourselves, but have to reset m_len to correct value before use it again. Signed-off-by: Fan li Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/file.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit d0450272a6b9c6326017f490a808eb7caf214400 Author: Simon Horman Date: Wed Dec 16 13:51:52 2015 +0900 usb: renesas_usbhs: add device tree support for r8a779[23] Simply document new compatibility string. As a previous patch adds a generic R-Car Gen2 compatibility string there appears to be no need for a driver updates. Signed-off-by: Simon Horman Acked-by: Rob Herring Acked-by: Kuninori Morimoto Signed-off-by: Felipe Balbi Documentation/devicetree/bindings/usb/renesas_usbhs.txt | 2 ++ 1 file changed, 2 insertions(+) commit 2f1a993a0da652c50e08159f16590b7f9820d192 Author: Simon Horman Date: Wed Dec 16 13:51:51 2015 +0900 usb: renesas_usbhs: add fallback compatibility strings Add fallback compatibility strings for R-Car Gen2 and Gen3. This is in keeping with the fallback scheme being adopted wherever appropriate for drivers for Renesas SoCs. Signed-off-by: Simon Horman Acked-by: Kuninori Morimoto Signed-off-by: Felipe Balbi Documentation/devicetree/bindings/usb/renesas_usbhs.txt | 12 ++++++++++-- drivers/usb/renesas_usbhs/common.c | 9 +++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) commit 89d75bf18d0e3e9a02961f537c87d7991df3bd32 Author: Simon Horman Date: Wed Dec 16 13:51:50 2015 +0900 usb: renesas_usbhs: add SoC names to compatibility string documentation This extends the documentation of compatibility strings a little to include the SoC names. Signed-off-by: Simon Horman Acked-by: Kuninori Morimoto Signed-off-by: Felipe Balbi Documentation/devicetree/bindings/usb/renesas_usbhs.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 6604c6556db9e41c85f2839f66bd9d617bcf9f87 Author: Neil Armstrong Date: Mon Nov 2 12:14:21 2015 +0100 pwm: Add PWM driver for OMAP using dual-mode timers Adds support for using a OMAP dual-mode timer with PWM capability as a Linux PWM device. The driver controls the timer by using the dmtimer API. Add a platform_data structure for each pwm-omap-dmtimer nodes containing the dmtimers functions in order to get driver not rely on platform specific functions. Cc: Grant Erickson Cc: NeilBrown Cc: Joachim Eastwood Suggested-by: Tony Lindgren Signed-off-by: Neil Armstrong Acked-by: Tony Lindgren [thierry.reding@gmail.com: coding style bikeshed, fix timer leak] Signed-off-by: Thierry Reding .../devicetree/bindings/pwm/pwm-omap-dmtimer.txt | 18 ++ drivers/pwm/Kconfig | 9 + drivers/pwm/Makefile | 1 + drivers/pwm/pwm-omap-dmtimer.c | 327 +++++++++++++++++++++ include/linux/platform_data/pwm_omap_dmtimer.h | 69 +++++ 5 files changed, 424 insertions(+) commit d33f250af4e67d449f2c748b861ba99d50955469 Author: Yoshinori Sato Date: Sat Dec 5 02:48:18 2015 +0900 clocksource/drivers/h8300: Use ioread / iowrite Signed-off-by: Yoshinori Sato Signed-off-by: Daniel Lezcano drivers/clocksource/h8300_timer16.c | 43 ++++++++++++++++++------------------- drivers/clocksource/h8300_timer8.c | 28 ++++++++++++++---------- drivers/clocksource/h8300_tpu.c | 22 ++++++++++--------- 3 files changed, 50 insertions(+), 43 deletions(-) commit 04ad37836cc132a2127d8a7de340ffbc912b2c7d Merge: 897ca37 5a1dd8a Author: David S. Miller Date: Wed Dec 16 11:09:40 2015 -0500 Merge tag 'batman-adv-for-davem' of git://git.open-mesh.org/linux-merge Antonio Quartulli says: ==================== Included changes: - change my email in MAINTAINERS and Doc files - create and export list of single hop neighs per interface - protect CRC in the BLA code by means of its own lock - minor fixes and code cleanups ==================== Signed-off-by: David S. Miller commit ab738ff1991d183a67c37ce38b3fc39cd28798c6 Author: Mike Looijmans Date: Mon Nov 30 12:18:23 2015 +0100 usb: gadget: ether: Allow changing the MTU The gadget ethernet driver supports changing the MTU, but only allows this when the USB cable is removed. The comment indicates that this is because the "peer won't know". Even if the network link is still down and only the USB link is established, the driver won't allow the change. Other network interfaces allow changing the MTU any time, and don't force the link to be disabled. This makes perfect sense, because in order to be able to negotiate the MTU, the link needs to be up. Remove the restriction so that it is now actually possible to change the MTU (e.g. using "ifconfig usb0 mtu 15000") without having to manually pull the plug or change the driver's default setting. This is especially important after commit bba787a860fa ("usb: gadget: ether: Allow jumbo frames") Signed-off-by: Mike Looijmans Signed-off-by: Felipe Balbi drivers/usb/gadget/function/u_ether.c | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) commit f310abb33bf1e2e93f2b8d788b47100f07f1cf09 Author: Robert Baldyga Date: Fri Dec 11 12:24:40 2015 +0100 Documentation: usb: update usb-tools repository address It seems that gitorious repository is no longer accessible, so we replace it with address to active repository. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi Documentation/usb/gadget-testing.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e1e3d7ec5da32af3bded733a61c248d7db0b4e34 Author: Felipe F. Tonello Date: Tue Dec 1 18:31:02 2015 +0000 usb: gadget: f_midi: pre-allocate IN requests This patch introduces pre-allocation of IN endpoint USB requests. This improves on latency (requires no usb request allocation on transmit) and avoid several potential probles on allocating too many usb requests (which involves DMA pool allocation problems). This implementation also handles better multiple MIDI Gadget ports, always processing the last processed MIDI substream if the last USB request wasn't enought to handle the whole stream. Signed-off-by: Felipe F. Tonello Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_midi.c | 166 +++++++++++++++++++++++++++-------- drivers/usb/gadget/legacy/gmidi.c | 2 +- 2 files changed, 129 insertions(+), 39 deletions(-) commit f0f1b8cac4d8d973e95f25d9ea132775fb43c5f4 Author: Felipe F. Tonello Date: Tue Dec 1 18:31:01 2015 +0000 usb: gadget: f_midi: fail if set_alt fails to allocate requests This ensures that the midi function will only work if the proper number of IN and OUT requrests are allocated. Otherwise the function will work with less requests then what the user wants. Signed-off-by: Felipe F. Tonello Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_midi.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 919de443c2acd9fbd691ea0ed7d1ad858e5f8bed Author: Felipe F. Tonello Date: Tue Dec 1 18:31:00 2015 +0000 usb: gadget: f_midi: set altsettings only for MIDIStreaming interface This avoids duplication of USB requests for OUT endpoint and re-enabling endpoints. Signed-off-by: Felipe F. Tonello Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_midi.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 03e43528ab68449921201744a731c1bac50bc9d1 Author: Tony Lindgren Date: Mon Nov 30 21:37:13 2015 -0800 usb: musb: Fix unbalanced pm_runtime_enable When reloading omap2430 kernel module we get a warning about unbalanced pm_runtime_enable. Let's fix this. Note that we need to do this after the child musb-core platform_device is removed because of pm_runtime_irq_safe being set at the child. Cc: Bin Liu Cc: Felipe Balbi Cc: Kishon Vijay Abraham I Cc: NeilBrown Reviewed-by: Kishon Vijay Abraham I Signed-off-by: Tony Lindgren Signed-off-by: Felipe Balbi drivers/usb/musb/omap2430.c | 3 +++ 1 file changed, 3 insertions(+) commit 8055555fc4590fbda32d4bbf7888bdb2cd4b2b74 Author: Tony Lindgren Date: Mon Nov 30 21:37:12 2015 -0800 usb: musb: core: Fix handling of the phy notifications We currently can't unload omap2430 MUSB platform glue driver module and this cause issues for fixing the MUSB code further. The reason we can't remove omap2430 is because it uses the PHY functions and also exports the omap_musb_mailbox function that some PHY drivers are using. Let's fix the issue by exporting a more generic musb_mailbox function from the MUSB core and allow platform glue layers to register phy_callback function as needed. And now we can now also get rid of the include/linux/musb-omap.h. Cc: Bin Liu Cc: Felipe Balbi Cc: Kishon Vijay Abraham I Cc: NeilBrown Reviewed-by: Kishon Vijay Abraham I Signed-off-by: Tony Lindgren Signed-off-by: Felipe Balbi drivers/phy/phy-twl4030-usb.c | 32 ++++++++++++++++---------------- drivers/usb/musb/musb_core.c | 21 +++++++++++++++++++++ drivers/usb/musb/musb_core.h | 2 ++ drivers/usb/musb/omap2430.c | 27 ++++++++++++++------------- drivers/usb/phy/phy-twl6030-usb.c | 30 +++++++++++++++--------------- include/linux/usb/musb-omap.h | 30 ------------------------------ include/linux/usb/musb.h | 15 +++++++++++++++ 7 files changed, 83 insertions(+), 74 deletions(-) commit 1a1716260008b16887d72b417bd069ee4220c42e Author: Geyslan G. Bem Date: Thu Dec 10 17:50:12 2015 -0300 usb: musb: gadget: remove redundant condition This patch removes redundant condition. (!A || (A && B)) is the same as (!A || B). Fixes indentation too. Tested by: compilation only Caught by: cppcheck Signed-off-by: Geyslan G. Bem Signed-off-by: Felipe Balbi drivers/usb/musb/musb_gadget.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit ca07099460231576cd7aceed5da47a06cee8063b Author: Geyslan G. Bem Date: Thu Dec 10 17:50:10 2015 -0300 usb: gadget: s3c-hsudc: remove redundant condition This patch removes redundant condition. (!A || (A && B)) is the same as (!A || B). Tested by compilation only. Caught by cppcheck. Signed-off-by: Geyslan G. Bem Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/s3c-hsudc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 95ca961c758cd9ce789247098b09c39017637e58 Author: Felipe Balbi Date: Thu Dec 10 13:08:20 2015 -0600 usb: dwc3: gadget: pass a condition to dev_WARN_ONCE() instead of using: if (condition) { dev_WARN_ONCE(dev, true, "foo"); return -EINVAL; } let's use: if (dev_WARN_ONCE(dev, condition, "foo")) return -EINVAL; Signed-off-by: Felipe Balbi drivers/usb/dwc3/gadget.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit 855ed04a3758b205e84b269f92d26ab36ed8e2f7 Author: Ruslan Bilovol Date: Mon Nov 23 09:56:38 2015 +0100 usb: gadget: udc-core: independent registration of gadgets and gadget drivers Change behavior during registration of gadgets and gadget drivers in udc-core. Instead of previous approach when for successful probe of usb gadget driver at least one usb gadget should be already registered use another one where gadget drivers and gadgets can be registered in udc-core independently. Independent registration of gadgets and gadget drivers is useful for built-in into kernel gadget and gadget driver case - because it's possible that gadget is really probed only on late_init stage (due to deferred probe) whereas gadget driver's probe is silently failed on module_init stage due to no any UDC added. Also it is useful for modules case - now there is no difference what module to insert first: gadget module or gadget driver one. Tested-by: Maxime Ripard Signed-off-by: Ruslan Bilovol [simplified code as requested by Alan Stern and Felipe Balbi, fixed checkpatch issues] Signed-off-by: Marek Szyprowski Tested-by: Peter Chen Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/udc-core.c | 41 ++++++++++++++++++++++++++++++--------- include/linux/usb/gadget.h | 2 ++ 2 files changed, 34 insertions(+), 9 deletions(-) commit 88f73ebdfa75602af18e070a4d5d6d9091bcfada Author: Ruslan Bilovol Date: Mon Nov 23 09:56:37 2015 +0100 usb: gadget: udc-core: remove unused usb_udc_attach_driver() Now when last user of usb_udc_attach_driver() is switched to passing UDC name via usb_gadget_driver struct, it's safe to remove this function Tested-by: Maxime Ripard Signed-off-by: Ruslan Bilovol Signed-off-by: Marek Szyprowski Tested-by: Peter Chen Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/udc-core.c | 26 -------------------------- include/linux/usb/gadget.h | 2 -- 2 files changed, 28 deletions(-) commit afdaadc3c8530b4bc20777bc6ec15bda89b3bd65 Author: Ruslan Bilovol Date: Mon Nov 23 09:56:36 2015 +0100 usb: gadget: configfs: pass UDC name via usb_gadget_driver struct Now when udc-core supports binding to specific UDC by passing its name via 'udc_name' member of usb_gadget_driver struct, switch to this generic approach. Tested-by: Maxime Ripard Signed-off-by: Ruslan Bilovol [rebased and fixed checkpatch issues] Signed-off-by: Marek Szyprowski Tested-by: Peter Chen Signed-off-by: Felipe Balbi drivers/usb/gadget/configfs.c | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) commit 2284b29d3d9dd16490909962574d7f3fef83fd97 Author: Ruslan Bilovol Date: Mon Nov 23 09:56:35 2015 +0100 usb: gadget: bind UDC by name passed via usb_gadget_driver structure Introduce new 'udc_name' member to usb_gadget_driver structure. The 'udc_name' is a name of UDC that usb_gadget_driver should be bound to. If udc_name is NULL, it will be bound to any available UDC. Tested-by: Maxime Ripard Signed-off-by: Ruslan Bilovol Signed-off-by: Marek Szyprowski Tested-by: Peter Chen Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/udc-core.c | 24 +++++++++++++++++++----- include/linux/usb/gadget.h | 4 ++++ 2 files changed, 23 insertions(+), 5 deletions(-) commit 59f042f644c5aa10b65b7881966bed78c5c82923 Author: Bin Liu Date: Tue Dec 8 10:31:50 2015 -0600 usb: phy: phy-am335x: bypass first VBUS sensing for host-only mode To prevent VBUS contention, the am335x MUSB phy senses VBUS first before transitioning to host mode. However, for host-only mode, VBUS could be directly tied to 5V power rail which could prevent MUSB transitions to host mode. This change receives dr_mode of the controller then bypass the first VBUS sensing for host-only mode, so that MUSB can work in host mode event if VBUS is tied to 5V. Signed-off-by: Bin Liu Signed-off-by: Felipe Balbi drivers/usb/phy/Kconfig | 1 + drivers/usb/phy/phy-am335x-control.c | 14 +++++++++++--- drivers/usb/phy/phy-am335x-control.h | 8 +++++--- drivers/usb/phy/phy-am335x.c | 15 ++++++++++----- 4 files changed, 27 insertions(+), 11 deletions(-) commit 5306661eff1a70f99456340eddf8e0cf85c2e8af Author: Bin Liu Date: Fri Nov 20 16:13:07 2015 -0600 usb: phy: correct the am335x phy header filename The filename of am35x-phy-control.h is confusing. The header is used by the am335x phy driver, but the filename refers to am35x. Even worse there is indeed another device called am35x but it does not use this header at all. Signed-off-by: Bin Liu Signed-off-by: Felipe Balbi drivers/usb/phy/am35x-phy-control.h | 21 --------------------- drivers/usb/phy/phy-am335x-control.c | 2 +- drivers/usb/phy/phy-am335x-control.h | 21 +++++++++++++++++++++ drivers/usb/phy/phy-am335x.c | 2 +- 4 files changed, 23 insertions(+), 23 deletions(-) commit 72c16a9f98afad073b4a9c947c1c89bfb886ffcb Author: Ryo Kodama Date: Mon Nov 9 09:42:25 2015 +0900 pwm: rcar: Improve accuracy of frequency division setting From: Ryo Kodama When period_ns is set to the same value of RCAR_PWM_MAX_CYCLE in rcar_pwm_get_clock_division(), this function should allow such value for improving accuracy of frequency division setting. Signed-off-by: Ryo Kodama Signed-off-by: Yoshihiro Shimoda Signed-off-by: Thierry Reding drivers/pwm/pwm-rcar.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 34957e8caae4e72614785ee9527042756cf74f53 Author: Jani Nikula Date: Wed Dec 16 15:04:21 2015 +0200 drm/i915/bios: reduce indent in parse_general_features Slightly cleaner with early exit. Reviewed-by: Chris Wilson Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1450271061-32646-4-git-send-email-jani.nikula@intel.com drivers/gpu/drm/i915/intel_bios.c | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) commit 98f3a1dcf8196c31786a2c0d5c57e42ebcd4abe0 Author: Jani Nikula Date: Wed Dec 16 15:04:20 2015 +0200 drm/i915/bios: prefer using dev_priv over dev pointer dev_priv is the new black. Or something. Reviewed-by: Chris Wilson Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1450271061-32646-3-git-send-email-jani.nikula@intel.com drivers/gpu/drm/i915/i915_dma.c | 2 +- drivers/gpu/drm/i915/i915_drv.h | 2 +- drivers/gpu/drm/i915/intel_bios.c | 22 +++++++++------------- 3 files changed, 11 insertions(+), 15 deletions(-) commit 3556dd408232e1d0dea7e24eea217a3d1185bfc0 Author: Jani Nikula Date: Wed Dec 16 15:04:19 2015 +0200 drm/i915/bios: fix format string of the VBT signature logging Specify the maximum number of letters to print from the potentially unterminated buffer, not the minimum. While at it, use sizeof instead of a magic number. Reviewed-by: Chris Wilson Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1450271061-32646-2-git-send-email-jani.nikula@intel.com drivers/gpu/drm/i915/intel_bios.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e23ceb83e8b5aeabb5bc54ee33a54fad70c397e3 Author: Jani Nikula Date: Wed Dec 16 15:04:18 2015 +0200 drm/i915: move drmP.h include to i915_drv.h The intel_bios.h header doesn't even need it, but other headers included from i915_drv.h do. Let's untangle the mess a bit. Reviewed-by: Chris Wilson Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1450271061-32646-1-git-send-email-jani.nikula@intel.com drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/intel_bios.h | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) commit d6dbdf0ddefa581e49c2abe5fb0eb17d14111d89 Author: Vladimir Zapolskiy Date: Sun Dec 6 13:32:02 2015 +0200 pwm: lpc32xx: return ERANGE, if requested period is not supported Instead of silent acceptance of unsupported requested configuration for PWM period and setting the boundary supported value, return -ERANGE to a caller. Duty period value equal to 0 or period is still accepted to allow configuration by PWM sysfs interface, when it is set to 0 by default. For reference this is a list of restrictions on period_ns == 1/freq: | PWM parent clock | parent clock divisor | max freq | min freq | +------------------+----------------------+----------+----------+ | HCLK == 13 MHz | 1 (min) | 50.7 KHz | 198.3 Hz | | HCLK == 13 MHz | 15 (max) | 3.38 KHz | 13.22 Hz | | RTC == 32.7 KHz | 1 (min) | 128 Hz | 0.5 Hz | | RTC == 32.7 KHz | 15 (max) | 8.533 Hz | 0.033 Hz | Note that PWM sysfs interface does not support setting of period more than NSEC_PER_SEC / MAX_INT32 ~ 2 seconds, however this PWM controller supports a period up to 30 seconds. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Thierry Reding drivers/pwm/pwm-lpc32xx.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 5a9fc9c666d5d759699cf5495bda85f1da0d747e Author: Vladimir Zapolskiy Date: Sun Dec 6 13:32:01 2015 +0200 pwm: lpc32xx: fix and simplify duty cycle and period calculations The change fixes a problem, if duty_ns is too small in comparison to period_ns (as a valid corner case duty_ns is 0 ns), then due to PWM_DUTY() macro applied on a value the result is overflowed over 8 bits, and instead of the highest bitfield duty cycle value 0xff the invalid duty cycle bitfield value 0x00 is written. For reference the LPC32xx spec defines PWMx_DUTY bitfield description is this way and it seems to be correct: [Low]/[High] = [PWM_DUTY]/[256-PWM_DUTY], where 0 < PWM_DUTY <= 255. In addition according to my oscilloscope measurements LPC32xx PWM is "tristate" in sense that it produces a wave with floating min/max voltage levels for different duty cycle values, for corner cases: PWM_DUTY == 0x01 => signal is in range from -1.05v to 0v .... PWM_DUTY == 0x80 => signal is in range from -0.75v to +0.75v .... PWM_DUTY == 0xff => signal is in range from 0v to +1.05v PWM_DUTY == 0x00 => signal is around 0v, PWM is off Due to this peculiarity on very long period ranges (less than 1KHz) and odd pre-divider values PWM generated wave does not remind a clock shape signal, but rather a heartbit shape signal with positive and negative peaks, so I would recommend to use high-speed HCLK clock as a PWM parent clock and avoid using RTC clock as a parent. The change corrects PWM output in corner cases and prevents any possible overflows in calculation of values for PWM_DUTY and PWM_RELOADV bitfields, thus helper macro definitions may be removed. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Thierry Reding drivers/pwm/pwm-lpc32xx.c | 53 +++++++++++++++++------------------------------ 1 file changed, 19 insertions(+), 34 deletions(-) commit 82aff048dde444334c7045fab620b13058ff15a7 Author: Vladimir Zapolskiy Date: Sun Dec 6 13:32:00 2015 +0200 pwm: lpc32xx: make device usable with common clock framework As a preparatory change for switching LPC32xx mach support to common clock framework fix clk_enable/clk_disable calls without matching clk_prepare/clk_unprepare. The driver can not be used on a platform with common clock framework until clk_prepare/clk_unprepare calls are added, otherwise clk_enable calls will fail and a WARN is generated: # echo 1 > /sys/bus/platform/drivers/lpc32xx-pwm/4005c000.pwm/pwm/pwmchip0/pwm0/enable ------------[ cut here ]------------ WARNING: CPU: 0 PID: 701 at drivers/clk/clk.c:727 clk_core_enable+0x2c/0xa4() Modules linked in: sc16is7xx CPU: 0 PID: 701 Comm: sh Tainted: G W 4.3.0-rc2+ #171 Hardware name: LPC32XX SoC (Flattened Device Tree) Backtrace: [<>] (dump_backtrace) from [<>] (show_stack+0x18/0x1c) [<>] (show_stack) from [<>] (dump_stack+0x20/0x28) [<>] (dump_stack) from [<>] (warn_slowpath_common+0x90/0xb8) [<>] (warn_slowpath_common) from [<>] (warn_slowpath_null+0x24/0x2c) [<>] (warn_slowpath_null) from [<>] (clk_core_enable+0x2c/0xa4) [<>] (clk_core_enable) from [<>] (clk_enable+0x24/0x38) [<>] (clk_enable) from [<>] (lpc32xx_pwm_enable+0x1c/0x40) [<>] (lpc32xx_pwm_enable) from [<>] (pwm_enable+0x48/0x5c) [<>] (pwm_enable) from [<>] (pwm_enable_store+0x5c/0x78) [<>] (pwm_enable_store) from [<>] (dev_attr_store+0x20/0x2c) [<>] (dev_attr_store) from [<>] (sysfs_kf_write+0x44/0x50) [<>] (sysfs_kf_write) from [<>] (kernfs_fop_write+0x134/0x194) [<>] (kernfs_fop_write) from [<>] (__vfs_write+0x34/0xdc) [<>] (__vfs_write) from [<>] (vfs_write+0xb8/0x140) [<>] (vfs_write) from [<>] (SyS_write+0x50/0x90) [<>] (SyS_write) from [<>] (ret_fast_syscall+0x0/0x38) Signed-off-by: Vladimir Zapolskiy Signed-off-by: Thierry Reding drivers/pwm/pwm-lpc32xx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ebe1fca35038df28b5c183e8486863e765364ec1 Author: Vladimir Zapolskiy Date: Sun Dec 6 13:31:59 2015 +0200 pwm: lpc32xx: correct number of PWM channels from 2 to 1 LPC32xx SoC has two independent PWM controllers, they have different clock parents, clock gates and even slightly different controls, and each of these two PWM controllers has one output channel. Due to almost similar controls arranged in a row it is incorrectly set that there is one PWM controller with two channels, fix this problem, which at the moment prevents separate configuration of different clock parents and gates for both PWM controllers. The change makes previous PWM device node description incompatible with this update. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Thierry Reding drivers/pwm/pwm-lpc32xx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5795980ab3a9448a972c303ba2d6459b72770a1a Author: Vladimir Zapolskiy Date: Sun Dec 6 13:31:58 2015 +0200 dt: lpc32xx: pwm: update documentation of LPC32xx PWM device NXP LPC32xx SoC has two separate PWM controller devices, update device tree binding documentation to reflect this fact. The change makes previous PWM device node description incompatible with the new version. Signed-off-by: Vladimir Zapolskiy Acked-by: Rob Herring Signed-off-by: Thierry Reding Documentation/devicetree/bindings/pwm/lpc32xx-pwm.txt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit c0cc25cc7ee72860e8813043361e845ec2173f58 Author: Vladimir Zapolskiy Date: Sun Dec 6 13:31:57 2015 +0200 dt: lpc32xx: pwm: correct LPC32xx PWM device node example The change removes '0x' from a device node address and uses lower case hex chars. Signed-off-by: Vladimir Zapolskiy Acked-by: Rob Herring Signed-off-by: Thierry Reding Documentation/devicetree/bindings/pwm/lpc32xx-pwm.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 897ca373be8461efc880cc3288ffcbc2e1fa03b0 Merge: 566178f cd86660 Author: David S. Miller Date: Wed Dec 16 10:59:05 2015 -0500 Merge branch 'geneve-udp-port-offload' Anjali Singhai Jain says: ==================== Add support for Geneve udp port offload This patch series adds new ndo ops for Geneve add/del port, so as to help offload Geneve tunnel functionalities such as RX checksum, RSS, filters etc. i40e driver has been tested with the changes to make sure the offloads happen. We do understand that this is not the ideal solution and most likely will be redone with a more generic offload framework. But this certainly will enable us to start seeing benefits of the accelerations for Geneve tunnels. As a side note, we did find an existing issue in i40e driver where a service task can modify tunnel data structures with no locks held to help linearize access. A separate patch will be taking care of that issue. A question out to the community is regarding the driver Kconfig parameters for VxLAN and Geneve, it would be ideal to drop those if there is a way to help resolve vxlan/geneve_get_rx_port symbols while the tunnel modules are not loaded. Performance numbers: With the offloads enable on X722 devices with remote checksum enabled and no other tuning in terms of cpu governer etc on my test machine: With offload Throughput: 5527Mbits/sec with a single thread %cpu: ~43% per core with 4 threads Without offload Throughput: 2364Mbits/sec with a single thread %cpu: ~99% per core with 4 threads These numbers will get better for X722 as it is being worked. But this does bring out the delta in terms of when the stack is notified with csum_level 1 and CHECKSUM_UNNECESSARY vs not without the RX offload. ==================== Signed-off-by: David S. Miller commit cd866606c91b1e99517fd866de0049276f011ea7 Author: Singhai, Anjali Date: Mon Dec 14 12:21:21 2015 -0800 i40e: Call geneve_get_rx_port to get the existing Geneve ports This patch adds a call to geneve_get_rx_port in i40e so that when it comes up it can learn about the existing geneve tunnels. Signed-off-by: Anjali Singhai Jain Signed-off-by: David S. Miller drivers/net/ethernet/intel/i40e/i40e_main.c | 3 +++ 1 file changed, 3 insertions(+) commit 05ca4029b25c65c860be5baa9288ec8f7e0a97e6 Author: Singhai, Anjali Date: Mon Dec 14 12:21:20 2015 -0800 geneve: Add geneve_get_rx_port support This patch adds an op that the drivers can call into to get existing geneve ports. Signed-off-by: Anjali Singhai Jain Signed-off-by: David S. Miller drivers/net/geneve.c | 24 ++++++++++++++++++++++++ include/net/geneve.h | 8 ++++++++ 2 files changed, 32 insertions(+) commit c110c311b195c54ce75bc2e85bbebd88d566d86c Author: Singhai, Anjali Date: Mon Dec 14 12:21:19 2015 -0800 i40e: Kernel dependency update for i40e to support geneve offload Update the Kconfig file with dependency for supporting GENEVE tunnel offloads. Signed-off-by: Anjali Singhai Jain Signed-off-by: Kiran Patil Signed-off-by: David S. Miller drivers/net/ethernet/intel/Kconfig | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 6a899024058d35dbcac33fbd3c7d70f2a54828e1 Author: Singhai, Anjali Date: Mon Dec 14 12:21:18 2015 -0800 i40e: geneve tunnel offload support This patch adds driver hooks to implement ndo_ops to add/del udp port in the HW to identify GENEVE tunnels. Signed-off-by: Anjali Singhai Jain Signed-off-by: Kiran Patil Signed-off-by: David S. Miller drivers/net/ethernet/intel/i40e/i40e.h | 16 +-- drivers/net/ethernet/intel/i40e/i40e_main.c | 167 ++++++++++++++++++++++------ drivers/net/ethernet/intel/i40e/i40e_txrx.c | 8 +- drivers/net/ethernet/intel/i40e/i40e_txrx.h | 2 +- 4 files changed, 150 insertions(+), 43 deletions(-) commit a8170d2b9e8d38a1f3fa3b40b6f8cd34a87d5382 Author: Singhai, Anjali Date: Mon Dec 14 12:21:17 2015 -0800 geneve: Add geneve udp port offload for ethernet devices Add ndo_ops to add/del UDP ports to a device that supports geneve offload. v2: Comment fix. Signed-off-by: Anjali Singhai Jain Signed-off-by: Kiran Patil Signed-off-by: David S. Miller drivers/net/geneve.c | 23 +++++++++++++++++++++++ include/linux/netdevice.h | 20 +++++++++++++++++++- 2 files changed, 42 insertions(+), 1 deletion(-) commit 566178f853c1aa57be9c16007c7cca07df5d51b6 Author: Zhu Yanjun Date: Wed Dec 16 13:55:04 2015 +0800 net: sctp: dynamically enable or disable pf state As we all know, the value of pf_retrans >= max_retrans_path can disable pf state. The variables of pf_retrans and max_retrans_path can be changed by the userspace application. Sometimes the user expects to disable pf state while the 2 variables are changed to enable pf state. So it is necessary to introduce a new variable to disable pf state. According to the suggestions from Vlad Yasevich, extra1 and extra2 are removed. The initialization of pf_enable is added. Acked-by: Vlad Yasevich Signed-off-by: Zhu Yanjun Acked-by: Marcelo Ricardo Leitner Signed-off-by: David S. Miller Documentation/networking/ip-sysctl.txt | 23 ++++++++++++++++++++++- include/net/netns/sctp.h | 7 +++++++ net/sctp/protocol.c | 3 +++ net/sctp/sm_sideeffect.c | 5 ++++- net/sctp/sysctl.c | 7 +++++++ 5 files changed, 43 insertions(+), 2 deletions(-) commit 816aec2325e620b6454474372a21f90a8740cb28 Author: Stefan Agner Date: Mon Nov 23 14:45:07 2015 -0800 pwm: fsl-ftm: Fix clock enable/disable when using PM A FTM PWM instance enables/disables three clocks: The bus clock, the counter clock and the PWM clock. The bus clock gets enabled on pwm_request, whereas the counter and PWM clocks will be enabled upon pwm_enable. The driver has three closesly related issues when enabling/disabling clocks during suspend/resume: - The three clocks are not treated differently in regards to the individual PWM state enabled/requested. This can lead to clocks getting disabled which have not been enabled in the first place (a PWM channel which only has been requested going through suspend/resume). - When entering suspend, the current behavior relies on the FTM_OUTMASK register: If a PWM output is unmasked, the driver assumes the clocks are enabled. However, some PWM instances have only 2 channels connected (e.g. Vybrid's FTM1). In that case, the FTM_OUTMASK reads 0x3 if all channels are disabled, even if the code wrote 0xff to it before. For those PWM instances, the current approach to detect enabled PWM signals does not work. - A third issue applies to the bus clock only, which can get enabled multiple times (once for each PWM channel of a PWM chip). This is fine, however when entering suspend mode, the clock only gets disabled once. This change introduces a different approach by relying on the enable and prepared counters of the clock framework and using the frameworks PWM signal states to address all three issues. Clocks get disabled during suspend and back enabled on resume regarding to the PWM channels individual state (requested/enabled). Since we do not count the clock enables in the driver, this change no longer clears the Status and Control registers Clock Source Selection (FTM_SC[CLKS]). However, since we disable the selected clock anyway, and we explicitly select the clock source on reenabling a PWM channel this approach should not make a difference in practice. Signed-off-by: Stefan Agner Signed-off-by: Thierry Reding drivers/pwm/pwm-fsl-ftm.c | 58 ++++++++++++++++++++--------------------------- 1 file changed, 25 insertions(+), 33 deletions(-) commit 37670676a122a38e72ecd9dac0feff2a3dac967f Author: Mika Westerberg Date: Wed Nov 18 13:25:18 2015 +0200 pwm: lpss: Rework the sequence of programming PWM_SW_UPDATE Setting of PWM_SW_UPDATE is bit different in Intel Broxton compared to the previous generation SoCs. Previously it was OK to set the bit many times (from userspace via sysfs for example) before the PWM is actually enabled. Starting from Intel Broxton it seems that we must set PWM_SW_UPDATE only once before the PWM is enabled. Otherwise it is possible that the PWM does not start properly. Change the sequence of how PWM_SW_UPDATE is programmed so that we only set it in pwm_lpss_config() when the PWM is already enabled. The initial setting of PWM_SW_UPDATE will be done when PWM gets enabled. This should make the driver work with the previous generation Intel SoCs and Broxton. Add also small delay after the bit is set to let the hardware propagate it properly. Signed-off-by: Mika Westerberg Signed-off-by: Thierry Reding drivers/pwm/pwm-lpss.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) commit 6f90a00c6667dce5651341f0629443cf7951b235 Author: Andy Shevchenko Date: Wed Nov 18 13:25:17 2015 +0200 pwm: lpss: Select core part automatically We have two users of core part right now. Let them to select core part automatically. Signed-off-by: Andy Shevchenko Signed-off-by: Mika Westerberg Signed-off-by: Thierry Reding drivers/pwm/Kconfig | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) commit 883e4d070fe125028c0579d8666b820aadf458fb Author: qipeng.zha Date: Tue Nov 17 17:20:15 2015 +0800 pwm: lpss: Update PWM setting for Broxton For Broxton PWM controller, base unit is defined as 8-bit integer and 14-bit fraction, so need to update base unit setting to output wave with right frequency. Signed-off-by: Qipeng Zha Acked-by: Mika Westerberg Signed-off-by: Thierry Reding drivers/pwm/pwm-lpss.c | 33 +++++++++++++++++++-------------- drivers/pwm/pwm-lpss.h | 1 + 2 files changed, 20 insertions(+), 14 deletions(-) commit 6ef7d1c46f0cbe2b8e9c66d5d95ffa5a612df45d Author: Stefan Wahren Date: Tue Dec 1 22:55:41 2015 +0000 pwm: bcm2835: Fix email address specification Signed-off-by: Stefan Wahren Reviewed-by: Eric Anholt Signed-off-by: Thierry Reding drivers/pwm/pwm-bcm2835.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fd13c14426299e75983a0cd3edf53dfa4083a70a Author: Stefan Wahren Date: Tue Dec 1 22:55:40 2015 +0000 pwm: bcm2835: Prevent division by zero It's possible that the PWM clock becomes an orphan. So better check the result of clk_get_rate() in order to prevent a division by zero. Signed-off-by: Stefan Wahren Reviewed-by: Eric Anholt Signed-off-by: Thierry Reding drivers/pwm/pwm-bcm2835.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit ebe88b6ae41ff8f2b48608b6019c4341aa24bcea Author: Stefan Wahren Date: Tue Dec 1 22:55:39 2015 +0000 pwm: bcm2835: Calculate scaler in ->config() Currently pwm-bcm2835 assumes a fixed clock rate and stores the resulting scaler in the driver structure. But with the upcoming PWM clock support for clk-bcm2835 the rate could change, so calculate the scaler in the ->config() callback. Signed-off-by: Stefan Wahren Reviewed-by: Eric Anholt Signed-off-by: Thierry Reding drivers/pwm/pwm-bcm2835.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit c5e949c1c24d67ae2813afdf02408a9b0c6fe55c Author: Prasanna Karthik Date: Mon Nov 30 10:08:46 2015 +0000 clk: s3c2410: removed unneeded variable in s3c24xx_clkout_set_parent Remove unneeded variable used to store return value. Signed-off-by: Prasanna Karthik Signed-off-by: Sylwester Nawrocki drivers/clk/samsung/clk-s3c2410-dclk.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 6b4feaea251a97bf08c7d41eabdec07f63a11073 Author: Marek Szyprowski Date: Fri Dec 11 15:38:40 2015 +0100 clk: exynos: use irqsave version of spin_lock to avoid deadlock with irqs It is allowed to enable/disable clocks from interrupts, so common Exynos ARM clock management code for CPUfreq should use 'irqsave' version of spin_lock calls to avoid potential deadlock caused by spin_lock recursion. The same spin_lock is used by gate/mux clocks during enable/disable calls. This deadlock, can be reproduced by enabling CPUfreq (ondemand or userspace) and decoding video with s5p-mfc driver. Relevant stack trace: [ 5928.061534] BUG: spinlock recursion on CPU#0, bash/1252 [ 5928.061609] lock: 0xee80454c, .magic: dead4ead, .owner: bash/1252, .owner_cpu: 0 [ 5928.068586] CPU: 0 PID: 1252 Comm: bash Tainted: G W 4.4.0-rc4-00001-g447a7fd #678 [ 5928.077260] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree) [ 5928.083359] [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [ 5928.091072] [] (show_stack) from [] (dump_stack+0x68/0xb8) [ 5928.098275] [] (dump_stack) from [] (do_raw_spin_lock+0x184/0x1ac) [ 5928.106177] [] (do_raw_spin_lock) from [] (_raw_spin_lock_irqsave+0x20/0x28) [ 5928.114943] [] (_raw_spin_lock_irqsave) from [] (clk_gate_endisable+0x24/0x98) [ 5928.123882] [] (clk_gate_endisable) from [] (clk_core_disable+0x60/0x84) [ 5928.132299] [] (clk_core_disable) from [] (clk_disable+0x24/0x30) [ 5928.140117] [] (clk_disable) from [] (s5p_mfc_handle_frame+0x254/0x860) [ 5928.148445] [] (s5p_mfc_handle_frame) from [] (s5p_mfc_irq+0x890/0xa24) [ 5928.156778] [] (s5p_mfc_irq) from [] (handle_irq_event_percpu+0x50/0x14c) [ 5928.165283] [] (handle_irq_event_percpu) from [] (handle_irq_event+0x38/0x5c) [ 5928.174143] [] (handle_irq_event) from [] (handle_fasteoi_irq+0xdc/0x1a4) [ 5928.182645] [] (handle_fasteoi_irq) from [] (generic_handle_irq+0x18/0x28) [ 5928.191236] [] (generic_handle_irq) from [] (__handle_domain_irq+0x6c/0xdc) [ 5928.199917] [] (__handle_domain_irq) from [] (gic_handle_irq+0x4c/0x98) [ 5928.208249] [] (gic_handle_irq) from [] (__irq_svc+0x54/0x90) [ 5928.215709] Exception stack(0xeddb5cb8 to 0xeddb5d00) [ 5928.220745] 5ca0: ee80454c faddfadc [ 5928.228906] 5cc0: 00000000 01000001 ee831ce0 f8114200 ee807c00 01130520 00000403 eddb5d84 [ 5928.237063] 5ce0: ee807c48 2faf0800 ee807c0c eddb5d08 c046b618 c046b634 20000053 ffffffff [ 5928.245225] [] (__irq_svc) from [] (exynos_cpuclk_notifier_cb+0x170/0x270) [ 5928.253823] [] (exynos_cpuclk_notifier_cb) from [] (notifier_call_chain+0x44/0x84) [ 5928.263106] [] (notifier_call_chain) from [] (__srcu_notifier_call_chain+0x6c/0x9c) [ 5928.272480] [] (__srcu_notifier_call_chain) from [] (srcu_notifier_call_chain+0x18/0x20) [ 5928.282288] [] (srcu_notifier_call_chain) from [] (__clk_notify+0x6c/0x74) [ 5928.290881] [] (__clk_notify) from [] (clk_propagate_rate_change+0xa0/0xac) [ 5928.299561] [] (clk_propagate_rate_change) from [] (clk_propagate_rate_change+0x90/0xac) [ 5928.309370] [] (clk_propagate_rate_change) from [] (clk_core_set_rate_nolock+0x64/0xa8) [ 5928.319091] [] (clk_core_set_rate_nolock) from [] (clk_set_rate+0x20/0x30) [ 5928.327686] [] (clk_set_rate) from [] (set_target+0xe8/0x23c) [ 5928.335152] [] (set_target) from [] (__cpufreq_driver_target+0x184/0x29c) [ 5928.343655] [] (__cpufreq_driver_target) from [] (cpufreq_set+0x44/0x64) [ 5928.352074] [] (cpufreq_set) from [] (store_scaling_setspeed+0x5c/0x74) [ 5928.360407] [] (store_scaling_setspeed) from [] (store+0x7c/0x98) [ 5928.368221] [] (store) from [] (sysfs_kf_write+0x44/0x48) [ 5928.375338] [] (sysfs_kf_write) from [] (kernfs_fop_write+0xb8/0x1bc) [ 5928.383496] [] (kernfs_fop_write) from [] (__vfs_write+0x2c/0xd4) [ 5928.391308] [] (__vfs_write) from [] (vfs_write+0xa0/0x144) [ 5928.398598] [] (vfs_write) from [] (SyS_write+0x44/0x84) [ 5928.405631] [] (SyS_write) from [] (ret_fast_syscall+0x0/0x3c) CC: stable@vger.kernel.org # v4.2+ Signed-off-by: Marek Szyprowski Signed-off-by: Sylwester Nawrocki drivers/clk/samsung/clk-cpu.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 34d3b6746778d512a1be9b8372b03238e21a2e2c Author: Marek Szyprowski Date: Tue Dec 8 14:29:32 2015 +0100 clk: samsung: exynos542x: fix MFC clock hierarchy parent Proper source for MFC block is mout_user_aclk333 (in datasheet named USER_MUX_ACLK_333), not the output of CLKDIV_ACLK_333 MUX. Signed-off-by: Marek Szyprowski Signed-off-by: Sylwester Nawrocki drivers/clk/samsung/clk-exynos5420.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 54abbdb4ee53f7bfd5c82be1c0b8e0d1447fcb06 Author: Bartlomiej Zolnierkiewicz Date: Tue Dec 15 18:33:19 2015 +0100 clk: samsung: exynos542x/5800: fix cpu clock configuration data Fix cpu clock configuration data for Exynos5422/5800 SoCs (they use higher PCLK_DBG divider values than Exynos5420 and support additional frequencies). Based on Hardkernel's kernel for ODROID-XU3 board. Cc: Thomas Abraham Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Sylwester Nawrocki drivers/clk/samsung/clk-exynos5420.c | 36 +++++++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) commit bee4f87f01dc30fcf9e05eb55b833f89fd9bb4f4 Author: Thomas Abraham Date: Tue Dec 15 18:33:16 2015 +0100 clk: samsung: exynos5420: 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 Exynos5420. Changes by Bartlomiej: - split Exynos5420 support from the original patches - moved E5420_[EGL,KFC]_DIV0() macros to clk-exynos5420.c Signed-off-by: Thomas Abraham Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Sylwester Nawrocki drivers/clk/samsung/clk-exynos5420.c | 58 ++++++++++++++++++++++++++++++++-- include/dt-bindings/clock/exynos5420.h | 2 ++ 2 files changed, 58 insertions(+), 2 deletions(-) commit c0feb268da73ae3ede23ae60d6ccc551c4e93250 Author: Marek Szyprowski Date: Tue Dec 8 14:46:54 2015 +0100 clk: samsung: exynos542x: add missing parent GSCL block clocks This patch adds clocks, which are required for preserving parent clock configuration on GSCL power domain on/off. Signed-off-by: Marek Szyprowski Signed-off-by: Sylwester Nawrocki drivers/clk/samsung/clk-exynos5420.c | 8 ++++---- include/dt-bindings/clock/exynos5420.h | 2 ++ 2 files changed, 6 insertions(+), 4 deletions(-) commit c7b91b33cf446ec09eedf4594cff8d7b85ef6870 Author: Mika Westerberg Date: Wed Dec 9 16:05:59 2015 +0200 pwm: lpss: Remove ->free() callback The LPSS PWM driver calls pwm_lpss_disable() when the PWM device is released (for example unexported from sysfs). This in turn calls pm_runtime_put() which makes runtime PM count to be unbalanced if the device has not been enabled at this point. This is easy to reproduce: # cd /sys/class/pwm/pwmchip0 # echo 0 > export # echo 0 > unexport The count is unbalanced and prevents the PWM device from being powered on next time. Fix this by removing ->free() callback. There are no resources to be released anyway. Signed-off-by: Mika Westerberg Signed-off-by: Thierry Reding drivers/pwm/pwm-lpss.c | 1 - 1 file changed, 1 deletion(-) commit 327ebe1f3a9b7e20e298b39d0cff627169a28012 Author: Marc Zyngier Date: Wed Dec 16 14:11:22 2015 +0000 irqchip/gic: Make interrupt ID 1020 invalid The GIC has no such thing as interrupt 1020: the last valid ID is 1019, and the range 1020-1023 is reserved - 1023 indicating that no interrupt is pending. So let's make sure we don't try to handle this ID. This bug has been in since the initial GIC code was introduced in 8ad68bbf7a06 ("[ARM] Add support for ARM RealView board"). Reported-by: Eric Auger Cc: Catalin Marinas Signed-off-by: Marc Zyngier drivers/irqchip/irq-gic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 86d14c72b7837589a4381b3bc2e117e7d842a92a Author: Marc Zyngier Date: Wed Dec 16 11:03:24 2015 +0000 irqchip/gic-v2m: Fix of_node refcount on error On the error path, the v2m drivers drops the refcount on the parent node instead of doing it on the node that generated the error. Humph... Reported-by: Thomas Petazzoni Signed-off-by: Marc Zyngier drivers/irqchip/irq-gic-v2m.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 58b8964990dc6b59198b25337624b8518cb1dd87 Author: Linus Walleij Date: Sat Oct 24 00:15:53 2015 +0200 irqchip/gic: Assign irqchip dynamically Instead of having the irqchip being a static struct, make it part of the per-instance data so we can assign it a dynamic name. This has the usable side effect of displaying the GIC with an instance number as GIC0, GIC1 ... GICn in /proc/interrupts, which is helpful when debugging cascaded GICs, such as on the ARM PB11MPCore. Cc: Thomas Gleixner Cc: Jason Cooper Signed-off-by: Linus Walleij Signed-off-by: Marc Zyngier drivers/irqchip/irq-gic.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) commit 8673c1d7e8f0cc69b84c1c3356d869b74385fca7 Author: Linus Walleij Date: Sat Oct 24 00:15:52 2015 +0200 irqchip/gic: Support RealView variant setup The ARM RealView PB11MPCore reference design has some special bits in a system controller register to set up the GIC in one of three modes: legacy, new with DCC, new without DCC. The register is also used to enable FIQ. Since the platform will not boot unless this register is set up to "new with DCC" mode, we need a special quirk to be compiled-in for the RealView platforms. If we find the right compatible string on the GIC TestChip, we enable this quirk by looking up the system controller and enabling the special bits. We depend on the CONFIG_REALVIEW_DT Kconfig symbol as the old boardfile code has the same fix hardcoded, and this is only needed for the attempts to modernize the RealView code using device tree. After fixing this, the PB11MPCore boots with device tree only. Cc: Thomas Gleixner Cc: Jason Cooper Signed-off-by: Linus Walleij Signed-off-by: Marc Zyngier drivers/irqchip/Makefile | 1 + drivers/irqchip/irq-gic-realview.c | 43 ++++++++++++++++++++++++++++++++++++++ drivers/irqchip/irq-gic.c | 2 +- include/linux/irqchip/arm-gic.h | 10 +++++++++ 4 files changed, 55 insertions(+), 1 deletion(-) commit 126aebd0557815f0d982c81a3ed9cd251f443de6 Author: Linus Walleij Date: Sat Oct 24 00:15:51 2015 +0200 irqchip/gic: Fix ARM11MPCore GIC bindings The GIC bindings for the ARM11MPCore need to differentiate between the GIC on the Test Chip and the one on the evaluation baseboard. Split the binding in two and define new compatible-strings. Cc: Thomas Gleixner Cc: Jason Cooper Cc: devicetree@vger.kernel.org Signed-off-by: Linus Walleij Signed-off-by: Marc Zyngier Documentation/devicetree/bindings/interrupt-controller/arm,gic.txt | 1 + 1 file changed, 1 insertion(+) commit 552c494a7666c7fe490f179db1f52239a41fe734 Author: Marc Zyngier Date: Mon Nov 23 08:26:07 2015 +0000 platform-msi: Allow creation of a MSI-based stacked irq domain We almost have all the needed bits requiredable to create a irq domain on top of a MSI domain. For this, we enable a few things: - the virq is stored in the msi_desc - device, msi_alloc_info and domain-specific data are stored in the platform_priv_data structure - we introduce a new API for platform-msi: /* Create a MSI-based domain */ struct irq_domain * platform_msi_create_device_domain(struct device *dev, unsigned int nvec, irq_write_msi_msg_t write_msi_msg, const struct irq_domain_ops *ops, void *host_data); /* Allocate MSIs in an MSI domain */ int platform_msi_domain_alloc(struct irq_domain *domain, unsigned int virq, unsigned int nr_irqs); /* Free MSIs from an MSI domain */ void platform_msi_domain_free(struct irq_domain *domain, unsigned int virq, unsigned int nvec); /* Obtain the host data passed to platform_msi_create_device_domain */ void *platform_msi_get_host_data(struct irq_domain *domain); platform_msi_create_device_domain() is a hybrid of irqdomain creation and interrupt allocation, creating a domain backed by the MSIs associated to a device. IRQs can then be allocated in that domain using platform_msi_domain_alloc(). This now allows a wired irq to MSI bridge to be created. Signed-off-by: Marc Zyngier drivers/base/platform-msi.c | 130 +++++++++++++++++++++++++++++++++++++++++++- include/linux/msi.h | 12 ++++ 2 files changed, 140 insertions(+), 2 deletions(-) commit 2145ac9310b60c1c11294b7bea10fe154009be1d Author: Marc Zyngier Date: Mon Nov 23 08:26:06 2015 +0000 genirq/msi: Add msi_domain_populate_irqs To be able to allocate interrupts from the MSI layer down, add a new msi_domain_populate_irqs entry point. Signed-off-by: Marc Zyngier include/linux/msi.h | 2 ++ kernel/irq/msi.c | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) commit b2eba39bcab9d60a6c3b80c7fc2f3dacb77eeaae Author: Marc Zyngier Date: Mon Nov 23 08:26:05 2015 +0000 genirq/msi: Make the .prepare callback reusable The .prepare callbacks are so far only called from msi_domain_alloc_irqs. In order to reuse that code, split that code and create a msi_domain_prepare_irqs function that the existing code can call into. Signed-off-by: Marc Zyngier include/linux/msi.h | 4 ++++ kernel/irq/msi.c | 18 +++++++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) commit c466595c416c04036e1ba36ecdc5fe9072c76228 Author: Marc Zyngier Date: Mon Nov 23 08:26:04 2015 +0000 irqdomain: Make irq_domain_alloc_irqs_recursive available We are soon going to need the MSI layer to call into the domain allocators. Instead of open coding this, make the standard irq_domain_alloc_irqs_recursive function available to the MSI layer. Signed-off-by: Marc Zyngier include/linux/irqdomain.h | 3 +++ kernel/irq/irqdomain.c | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) commit 72f57f2f430f9d262fe3c8dd957f57cbdc1f5f97 Author: Marc Zyngier Date: Mon Nov 23 08:26:03 2015 +0000 platform-msi: Factor out allocation/free of private data As we're going to have multiple paths to allocate/free the platform-msi private data, factor this out into separate utility functions. Signed-off-by: Marc Zyngier drivers/base/platform-msi.c | 94 +++++++++++++++++++++++++-------------------- 1 file changed, 53 insertions(+), 41 deletions(-) commit ab6484ee84c17a948c4235c20928f6aee295ced7 Author: Marc Zyngier Date: Mon Nov 23 08:26:02 2015 +0000 platform-msi: Allow MSIs to be allocated in chunks MSIs for a given device are normally all allocated in one go. Make sure the internal code can allocate them one at a time if required. Signed-off-by: Marc Zyngier drivers/base/platform-msi.c | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) commit dfcdc5fe0379d5650c9306ecc6fcc5cb6cb8982a Author: Tang Yuantian Date: Wed Dec 16 14:00:35 2015 +0800 ahci: qoriq: Adjust the default register values on ls1021a Updated the registers' values to enhance SATA performance and reliability on ls1021a soc. Signed-off-by: Tang Yuantian Signed-off-by: Tejun Heo drivers/ata/ahci_qoriq.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) commit e3a6dadc6dca64f464238f8a36876c610400eef9 Author: Tang Yuantian Date: Wed Dec 16 13:43:50 2015 +0800 ahci: qoriq: Update the default Rx watermark value The PTC[RXWM] sets the watermark value for Rx FIFO. The default value 0x20 might be insufficient for some hard drives. If the watermark value is too small, a single-cycle overflow may occur and is reported as a CRC or internal error in the PxSERR register. Updated the value to 0x29 according to the validation test. All LS platforms are affected. Signed-off-by: Tang Yuantian Signed-off-by: Tejun Heo drivers/ata/ahci_qoriq.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ef0cc7fef4721aa19663da7475c8b862f0a35e0b Author: Tang Yuantian Date: Wed Dec 16 13:43:49 2015 +0800 ahci: qoriq: Adjust the default register values on ls1043a Updated the registers' values to enhance SATA performance and reliability. Signed-off-by: Tang Yuantian Signed-off-by: Tejun Heo drivers/ata/ahci_qoriq.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 85533e3b321f45f028aa1267afd8d156980957a9 Author: Ulrich Ölmann Date: Fri Dec 4 12:31:28 2015 +0100 drm/panel: add kernel doc for size attributes in panel_desc Document that 'width' and 'height' are measured in millimeters. Signed-off-by: Ulrich Ölmann Signed-off-by: Thierry Reding drivers/gpu/drm/panel/panel-simple.c | 4 ++++ 1 file changed, 4 insertions(+) commit 8def22e50f32c00f876a71dc551024fc61f647e1 Author: Lucas Stach Date: Wed Dec 2 19:41:11 2015 +0100 drm/panel: simple: Add support for Kyocera TCG121XGLP panel The Kyocera TCG121XGLP panel is an XGA LCD TFT panel connected through LVDS, which can be supported by the simple panel driver. Signed-off-by: Lucas Stach Acked-by: Rob Herring Signed-off-by: Thierry Reding .../bindings/display/panel/kyo,tcg121xglp.txt | 7 ++++++ drivers/gpu/drm/panel/panel-simple.c | 27 ++++++++++++++++++++++ 2 files changed, 34 insertions(+) commit f42fb5539ab51cd50edbc3639a3e9476c4ac884f Author: Lucas Stach Date: Wed Dec 2 19:41:10 2015 +0100 devicetree: add vendor prefix for Kyocera Corporation KYO is the stock ticker symbol of Kyocera Corporation. Signed-off-by: Lucas Stach Acked-by: Rob Herring Signed-off-by: Thierry Reding Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) commit 541c9a84cd85203244307d9ebb821102eed82789 Author: Rafał Miłecki Date: Wed Dec 9 23:36:51 2015 +0100 ssb: pick SoC invariants code from MIPS BCM47xx arch There is code in ssb fetching "invariants" that is basically a set of board specific data. Every host requires its own implementation of reading function. In ssb we have support for PCI, PCMCIA & SDIO. For some (historical?) reason code reading "invariants" for SoC was placed in arch code and provided by a callback. This is not needed nowadays, so lets move that into ssb. This way we keep all "invariants" functions in a single module making code cleaner. Signed-off-by: Rafał Miłecki Signed-off-by: Kalle Valo arch/mips/bcm47xx/setup.c | 39 +-------------------------------------- drivers/ssb/Kconfig | 2 +- drivers/ssb/host_soc.c | 37 +++++++++++++++++++++++++++++++++++++ drivers/ssb/main.c | 5 ++--- drivers/ssb/ssb_private.h | 3 +++ include/linux/ssb/ssb.h | 10 +++------- 6 files changed, 47 insertions(+), 49 deletions(-) commit d0ca9900675860d2857f40df88393b199a558634 Merge: 9b2761c 7c97b72 Author: Kalle Valo Date: Wed Dec 16 16:28:20 2015 +0200 Merge ath-next from ath.git Major changes: ath9k * add random number generator support (CONFIG_ATH9K_HWRNG) commit fcac0233d89ddce72945f3e0afaf4680572d8525 Author: Xiubo Li Date: Wed Dec 16 17:45:32 2015 +0800 regmap: use IS_ALIGNED instead of % to improve the performance The stride value should always equal to 2^n, so we can use bit rotation instead of % to improve the performance. Signed-off-by: Xiubo Li Signed-off-by: Mark Brown drivers/base/regmap/regmap.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 19c8054c4d82932d9f6bbf8d650aae4a1399a64d Author: Jani Nikula Date: Wed Dec 16 12:48:16 2015 +0200 drm/i915: prefer for_each_intel_* macros for iteration Use the for_each_intel_* macros for iterating intel_encoder, intel_connector, and intel_crtc. No functional changes. Reviewed-by: Daniel Vetter Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1450262896-5325-1-git-send-email-jani.nikula@intel.com drivers/gpu/drm/i915/i915_drv.c | 11 ++++------- drivers/gpu/drm/i915/intel_display.c | 10 +++------- drivers/gpu/drm/i915/intel_dp.c | 8 +++----- drivers/gpu/drm/i915/intel_opregion.c | 6 +++--- drivers/gpu/drm/i915/intel_panel.c | 4 ++-- drivers/gpu/drm/i915/intel_pm.c | 5 ++--- 6 files changed, 17 insertions(+), 27 deletions(-) commit ee01d0c91ef1c198fd7819c2eb166580e41dc2ea Author: Andy Gross Date: Mon Dec 14 23:30:45 2015 -0600 regulator: qcom-smd: Add support for PMA8084 This patch adds support and documentation for the PMA8084 regulators found on APQ8084 platforms. Signed-off-by: Andy Gross Acked-by: Bjorn Andersson Signed-off-by: Mark Brown .../bindings/regulator/qcom,smd-rpm-regulator.txt | 35 ++++++++ drivers/regulator/qcom_smd-regulator.c | 95 ++++++++++++++++++++++ 2 files changed, 130 insertions(+) commit 57d6567680edf9075d14b7fad9473e9c4a4b337e Author: Andy Gross Date: Mon Dec 14 23:30:44 2015 -0600 regulator: qcom-smd: Add PM8916 support This patch adds support and documentation for the PM8916 regulators found on MSM8916 platforms. Acked-by: Bjorn Andersson Signed-off-by: Andy Gross Signed-off-by: Mark Brown .../bindings/regulator/qcom,smd-rpm-regulator.txt | 18 ++++++ drivers/regulator/qcom_smd-regulator.c | 64 ++++++++++++++++++++++ 2 files changed, 82 insertions(+) commit 7a400585893e7aa52a845027bce1bf529bdf65d1 Author: Andy Gross Date: Mon Dec 14 23:30:43 2015 -0600 soc: qcom: documentation: Update SMD/RPM Docs This patch moves the qcom,smd-rpm.txt to the correct location and splits out the smd and rpm documentation. In addition, a smd-rpm-regulator document is added. Signed-off-by: Andy Gross Acked-by: Bjorn Andersson Signed-off-by: Mark Brown .../bindings/regulator/qcom,smd-rpm-regulator.txt | 106 +++++++++++++++++++ .../devicetree/bindings/soc/qcom,smd-rpm.txt | 117 --------------------- .../devicetree/bindings/soc/qcom/qcom,smd-rpm.txt | 58 ++++++++++ 3 files changed, 164 insertions(+), 117 deletions(-) commit 1cf8dfd90fe50ac660f79d4b94f47b8e721a1178 Author: Jie Yang Date: Mon Dec 14 22:27:13 2015 +0800 ASoC: Intel: sst: fix sst_memcpy32 wrong with non-4x bytes issue sst_memcpy32() only copied bytes/4 32bits, which means it dropped the remaining bytes%4 bytes wrongly. Here add copying those missing bytes, first to a 32bits tmp, and then write the tmp to 32bits iomem. Signed-off-by: Jie Yang Signed-off-by: Mark Brown sound/soc/intel/common/sst-firmware.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) commit f2777c1344ea7ce9ae3dd8f61166e3ad8b2a5962 Merge: 5ce8cc4 4d2c50a Author: Takashi Iwai Date: Wed Dec 16 12:09:10 2015 +0100 Merge branch 'topic/firewire-update' into for-next commit 5398b7ef6cdbc88581457b26b924081fc53d1de8 Author: Måns Rullgård Date: Tue Dec 15 23:15:06 2015 +0000 i2c: xlr: add interrupt support for Sigma Designs chips The Sigma Designs variant of this controller has the ability to generate interrupts. This is controlled using two additional registers, oddly enough overlapping with the defined but unused HDSTATIM. This patch adds support for using this feature instead of busy-looping if an IRQ is specified. Signed-off-by: Mans Rullgard Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-xlr.c | 119 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) commit a45af72a609b095820feab26c49286337301377e Author: Måns Rullgård Date: Tue Dec 15 23:15:05 2015 +0000 i2c: xlr: fix extra read/write at end of rx transfer The BYTECNT register holds the transfer size minus one. Setting it to the correct value removes the need for a dummy read/write at the end of each transfer. As zero-length transfers are not supported, do not advertise I2C_FUNC_SMBUS_QUICK. In other words, this patch makes the driver transfer the number of bytes requested unless this is zero, which is not supported by the hardware and is thus refused. Signed-off-by: Mans Rullgard Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-xlr.c | 50 ++++++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 23 deletions(-) commit 6f2b611db23404426a2b21b343392dc1d9584f92 Author: Yoshinori Sato Date: Sat Dec 5 02:48:17 2015 +0900 clocksource/drivers/h8300: Initializer cleanup. Signed-off-by: Yoshinori Sato Signed-off-by: Daniel Lezcano drivers/clocksource/h8300_timer8.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) commit f37632d1e9ff8445e0d1ea761f4ce7b98e059d75 Author: Yoshinori Sato Date: Sat Dec 5 02:48:16 2015 +0900 clocksource/drivers/h8300: Simplify delta handling Signed-off-by: Yoshinori Sato Signed-off-by: Daniel Lezcano drivers/clocksource/h8300_timer8.c | 40 ++++++-------------------------------- 1 file changed, 6 insertions(+), 34 deletions(-) commit 2f445e0aa00e3bdbcf6e99b88a6aab54b6b02f2a Author: Yoshinori Sato Date: Sat Dec 5 02:48:15 2015 +0900 clocksource/drivers/h8300: Fix timer not overflow case Signed-off-by: Yoshinori Sato Signed-off-by: Daniel Lezcano drivers/clocksource/h8300_timer16.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 2a0ff87774e468e4b146fe5af9ffadf5169424f9 Author: Yoshinori Sato Date: Sat Dec 5 02:48:14 2015 +0900 clocksource/drivers/h8300: Change to overflow interrupt Counter overflow detection use for overflow interrupt Signed-off-by: Yoshinori Sato Signed-off-by: Daniel Lezcano drivers/clocksource/h8300_timer16.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 59508084e10642e8533cfd82327486ed24c73af4 Author: Sergei Shtylyov Date: Tue Dec 15 01:06:55 2015 +0300 pinctrl: sh-pfc: r8a7791: add EtherAVB pin groups Add the EtherAVB pin groups to the R8A7791 PFC driver. Also add the copyright for all the Cogent Embedded's past work on this file. Signed-off-by: Sergei Shtylyov Signed-off-by: Geert Uytterhoeven drivers/pinctrl/sh-pfc/pfc-r8a7791.c | 93 ++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) commit 34dc4e16af01fd6e300b894d67d62d966526a99e Author: Takeshi Kihara Date: Mon Dec 14 16:42:36 2015 +0100 pinctrl: sh-pfc: r8a7795: Add SATA support This patch adds SATA0 pinmux support to r8a7795 SoC. Signed-off-by: Takeshi Kihara [uli: adjusted for new PFC driver] Signed-off-by: Ulrich Hecht Signed-off-by: Geert Uytterhoeven drivers/pinctrl/sh-pfc/pfc-r8a7795.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit 20cacae155f648bd68af15ca9e083e6f7e271124 Author: Takeshi Kihara Date: Thu Dec 10 18:07:12 2015 +0100 pinctrl: sh-pfc: r8a7795: Add SDHI support Add SDHI[0-3] pinmux support to r8a7795 SoC. Signed-off-by: Takeshi Kihara Signed-off-by: Dirk Behme Reviewed-by: Geert Uytterhoeven Signed-off-by: Geert Uytterhoeven drivers/pinctrl/sh-pfc/pfc-r8a7795.c | 274 +++++++++++++++++++++++++++++++++++ 1 file changed, 274 insertions(+) commit ed66700c031917be7b5527a41ac572a1c714f0ed Author: Geert Uytterhoeven Date: Thu Nov 26 14:14:22 2015 +0100 pinctrl: sh-pfc: r8a7794: Add SCIF_CLK support Add pins, groups, and a function for SCIF_CLK, which is the external clock source for the Baud Rate Generator for External Clock (BRG) on (H)SCIF. Signed-off-by: Geert Uytterhoeven Acked-by: Laurent Pinchart Acked-by: Linus Walleij drivers/pinctrl/sh-pfc/pfc-r8a7794.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit 53ec9ccd1c62b644d81674e013b1800dd88ec92b Author: Geert Uytterhoeven Date: Thu Nov 26 14:13:45 2015 +0100 pinctrl: sh-pfc: r8a7790: Add SCIF_CLK support Add pins, groups, and a function for SCIF_CLK, which is the external clock source for the Baud Rate Generator for External Clock (BRG) on (H)SCIF. Signed-off-by: Geert Uytterhoeven Acked-by: Laurent Pinchart Acked-by: Linus Walleij drivers/pinctrl/sh-pfc/pfc-r8a7790.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit 57a9d1acd0695aa24782a3b10124cbe7e6f7faa3 Author: Geert Uytterhoeven Date: Thu Nov 26 14:12:36 2015 +0100 pinctrl: sh-pfc: r8a7779: Add SCIF_CLK support Add pins, groups, and a function for SCIF_CLK, which is the external clock source for the Baud Rate Generator for External Clock (BRG) on SCIF. Signed-off-by: Geert Uytterhoeven Acked-by: Laurent Pinchart Acked-by: Linus Walleij drivers/pinctrl/sh-pfc/pfc-r8a7779.c | 41 ++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) commit ada8f955988394ca032b8eece7c9ca70bed42745 Author: Jani Nikula Date: Tue Dec 15 13:17:12 2015 +0200 drm/i915/debugfs: add a separate debugfs file for VBT In the future the VBT might not be in mailbox #4 of the ACPI OpRegion, thus unavailable in i915_opregion, so add a separate file for the VBT. v2: Drop the locking as unneeded (Chris) v3: Rebase Cc: Chris Wilson Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1450178232-27780-1-git-send-email-jani.nikula@intel.com drivers/gpu/drm/i915/i915_debugfs.c | 14 ++++++++++++++ drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/intel_opregion.c | 1 + 3 files changed, 16 insertions(+) commit 2455a8e43d6b052047cf3fce9f417ff7fd619fc9 Author: Jani Nikula Date: Mon Dec 14 12:50:53 2015 +0200 drm/i915: don't use a temp buffer for opregion debugfs file Hasn't been necessary since commit 115719fceaa733d646e39cdce83cc32ddb891a49 Author: Williams, Dan J Date: Mon Oct 12 21:12:57 2015 +0000 i915: switch from acpi_os_ioremap to memremap Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/74664a556a56d0eceb0029bbd77ffc1d771b0628.1450089383.git.jani.nikula@intel.com drivers/gpu/drm/i915/i915_debugfs.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) commit 827303855da8722569999a56ab2ac0c96c567a4d Author: Jani Nikula Date: Mon Dec 14 12:50:52 2015 +0200 drm/i915/opregion: make VBT pointer a const Because we can. It's not to be touched so tell the compiler too. Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/4b1872b121fb34a193cff9a5cb4e7c858d4a55aa.1450089383.git.jani.nikula@intel.com drivers/gpu/drm/i915/i915_drv.h | 2 +- drivers/gpu/drm/i915/intel_opregion.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 65318734645c35a1612f76b856a84b9fb995d7e3 Author: Jani Nikula Date: Mon Dec 14 12:50:51 2015 +0200 drm/i915/opregion: make VBT size limit more strict The VBT in OpRegion should fit in mailbox #4. Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/4bdb3f5820e3dbd1cdfa7b65cadfce4f80b880f0.1450089383.git.jani.nikula@intel.com drivers/gpu/drm/i915/intel_opregion.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f0067a31e83425d14c448e6846661a9be36761b9 Author: Jani Nikula Date: Tue Dec 15 13:16:15 2015 +0200 drm/i915: refactor VBT validation Make the validation function a boolean operating on a buffer of given size, removing the extra pointer dances. Move the OpRegion based VBT validation to intel_opregion_setup(), only initializing opregion->vbt if it's valid. v2: move logging about valid VBT to opregion setup too (Ville) Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1450178175-27420-1-git-send-email-jani.nikula@intel.com drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/intel_bios.c | 67 +++++++++++++++++------------------ drivers/gpu/drm/i915/intel_opregion.c | 11 ++++-- 3 files changed, 43 insertions(+), 36 deletions(-) commit 8b8e1a8990864023c7d04e8591934229c7af4229 Author: Jani Nikula Date: Mon Dec 14 12:50:49 2015 +0200 drm/i915/bios: rename intel_parse_bios to intel_bios_init While at it, move the declaration to where everything else is declared. Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/7d9d879603038889f0128cf7cbbd9f591edc11dd.1450089383.git.jani.nikula@intel.com drivers/gpu/drm/i915/i915_dma.c | 2 +- drivers/gpu/drm/i915/i915_drv.h | 3 +++ drivers/gpu/drm/i915/intel_bios.c | 4 ++-- drivers/gpu/drm/i915/intel_bios.h | 2 -- 4 files changed, 6 insertions(+), 5 deletions(-) commit e2051c44730b1a18f58b3be88fdc6ca7fb538e11 Author: Jani Nikula Date: Tue Dec 15 13:14:52 2015 +0200 drm/i915/bios: move debug logging about VBT source to intel_parse_bios() The decision about which source will be used for VBT is done in intel_parse_bios(), not in the VBT validation function. Make the VBT validation function strictly about validation, and move the debug logging to where it logically belongs. Also split the logging about where the valid VBT was found and what the signature is. This will make even more sense in the future when the validation for ACPI OpRegion based VBT takes place at OpRegion setup time. v2: Split logging about VBT signature and BDB version. Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1450178092-27148-1-git-send-email-jani.nikula@intel.com drivers/gpu/drm/i915/intel_bios.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) commit caf37fa4b758ebfcac8c4d729fe19322c6bff1dc Author: Jani Nikula Date: Mon Dec 14 12:50:47 2015 +0200 drm/i915/bios: have functions return vbt, not bdb, header pointer This will simplify further work. Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/d2c5210402fdd8c277e1d50892b0620d10c50ae8.1450089383.git.jani.nikula@intel.com drivers/gpu/drm/i915/intel_bios.c | 41 +++++++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 15 deletions(-) commit b30581a4d64f226a064132d09364b51e82a01dde Author: Jani Nikula Date: Mon Dec 14 12:50:46 2015 +0200 drm/i915: move "no VBT in opregion" quirk to intel_opregion_setup() Check the quirk in intel_opregion_setup(), and don't initialize opregion->vbt at all if the quirk says it's not present, hiding the quirk from the rest of the driver. Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/7cdc86eb441f8b7075142445a800b07ecf8c76cb.1450089383.git.jani.nikula@intel.com drivers/gpu/drm/i915/intel_bios.c | 24 ++---------------------- drivers/gpu/drm/i915/intel_opregion.c | 25 +++++++++++++++++++++++-- 2 files changed, 25 insertions(+), 24 deletions(-) commit b3cbd98b2572ada8df1f183190bd867183369df7 Author: Deepak M Date: Mon Dec 14 12:50:45 2015 +0200 drm/i915: Add Intel opregion mailbox 5 structure Mailbox 5 is BIOS to Driver Notification mailbox is intended to support BIOS to Driver event notification or data storage for BIOS to Driver data synchronization purpose. Mailbox 5 is the extension of mailbox 3. v4 by Jani: - don't add asle_ext to dev_priv as it's unused - use u8 for bddc and rsvd fields in asle ext struct - add BUILD_BUG_ON the asle ext struct size - debug logging for asle ext present Cc: Jani Nikula Signed-off-by: Deepak M Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/c2d4009659fca32280d9859ec34a62f45b86d895.1450089383.git.jani.nikula@intel.com drivers/gpu/drm/i915/intel_opregion.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit d662ed204357cfcf3b069ba705446f7395b80fc5 Author: Vladimir Zapolskiy Date: Wed Dec 2 08:02:08 2015 +0200 clocksource/drivers/lpc32: Correct pr_err() output format If by some reason timerclk is not available, both clockevent and clocksource initializations correctly exit, but output of errno to kernel log buffer may be confusing: lpc32xx_clk_init: failed to map system control block registers lpc32xx_clocksource_init: clock get failed (4294966779) lpc32xx_clockevent_init: clock get failed (4294966779) Use signed integer output in the correspondent pr_err() string formats: lpc32xx_clocksource_init: clock get failed (-517) lpc32xx_clockevent_init: clock get failed (-517) Signed-off-by: Vladimir Zapolskiy Signed-off-by: Daniel Lezcano drivers/clocksource/time-lpc32xx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9c9ae5ffee2831c0b8c0b002443b093e141d08f1 Author: Grygorii Strashko Date: Mon Nov 30 20:25:12 2015 +0200 clocksource/drivers/arm_global_timer: Fix suspend resume Now the System stall is observed on TI AM437x based board (am437x-gp-evm) during resuming from System suspend when ARM Global timer is selected as clocksource device (CPUIdle not enabled) - SysRq are working, but nothing else. The reason of stall is that ARM Global timer loses its contexts during System suspend: GT_CONTROL.TIMER_ENABLE = 0 (unbanked) GT_COUNTERx = 0 Hence, update ARM Global timer driver to reflect above behaviour - re-enable ARM Global timer on resume (GT_CONTROL.TIMER_ENABLE = 1) if not enabled. CC: Arnd Bergmann Cc: John Stultz Cc: Felipe Balbi Cc: Tony Lindgren Cc: Marc Zyngier Reviewed-by: Santosh Shilimkar Signed-off-by: Grygorii Strashko Signed-off-by: Daniel Lezcano drivers/clocksource/arm_global_timer.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 272a25a247ce6d31315856721014635469500e96 Author: Jisheng Zhang Date: Wed Nov 25 23:42:49 2015 +0800 clocksource/drivers/pistachio: Fix wrong calculated clocksource read value Let's assume the counter value is 0xf0000000, the pistachio clocksource read cycles function should return ~0x0fffffff but actually it returns 0xffffffff0fffffff. That occurs because: ~(cycle_t)value is different from (cycle_t)~value. unsigned long val = ~(unsigned long)0xf0000000; 40049a: 48 b8 ff ff ff 0f ff movabs $0xffffffff0fffffff,%rax unsigned long val = (unsigned long)~0xf0000000; 40049a: 48 c7 45 f8 ff ff ff movq $0xfffffff,-0x8(%rbp) We fix this issue by calculating bitwise-not counter, then cast to cycle_t. Signed-off-by: Jisheng Zhang Signed-off-by: Daniel Lezcano drivers/clocksource/time-pistachio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 08e4b44852626f3549c8bd45308431d9c9e0ee6d Author: Jisheng Zhang Date: Thu Nov 26 20:20:38 2015 +0800 clockevents/drivers/arm_global_timer: Use writel_relaxed in gt_compare_set Use the relaxed version to improve performance. we measured time of 4096 rounds of gt_compare_set() spent on Marvell BG2Q: before the patch: 3690648ns on average after the patch: 1083023ns on average improved by 70%! Signed-off-by: Jisheng Zhang Signed-off-by: Daniel Lezcano drivers/clocksource/arm_global_timer.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit e70d41b59f30d2f26f505890d9a893e924b359bf Author: Julia Lawall Date: Fri Nov 27 17:10:58 2015 +0100 iwlwifi: dvm: fix compare_const_fl.cocci warnings Move constants to the right of binary operators. Generated by: scripts/coccinelle/misc/compare_const_fl.cocci type=cleanup Signed-off-by: Fengguang Wu Signed-off-by: Julia Lawall Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/dvm/calib.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c97dab40796c59a4b03c532603e837077718fb81 Author: Sara Sharon Date: Thu Nov 19 11:53:49 2015 +0200 iwlwifi: mvm: change protocol offload flows RFC4862 states that "In all cases, a node MUST NOT respond to a Neighbor Solicitation for a tentative address". Currently the driver configures the NS offload and does not wait for address to become permanent, thus violating the RFC. Just removing the address from the address list is not good enough for all cases, since the NS messages are needed for the duplicate address detection and should not be discarded. For d0i3 disable NS offload. Put tentative address in the address list so the NS packet will not be filtered out by ucode. For D3 the platform will not wake from NS packets - so enable NS offload while removing the tentative address from the list. Given that now NS offload might be disabled, and that the ucode uses the IP data for other puroposes (L3 filtering) add two independent flags indicating if IPv4\IPv6 data is valid. Signed-off-by: Sara Sharon Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 6 +- drivers/net/wireless/intel/iwlwifi/mvm/fw-api-d3.h | 4 ++ drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 2 + .../net/wireless/intel/iwlwifi/mvm/offloading.c | 74 ++++++++++++++++------ drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 3 +- 5 files changed, 69 insertions(+), 20 deletions(-) commit e6eb8ca9e486a8f73ae237630e89406683b2be75 Author: Golan Ben-Ami Date: Sun Aug 30 17:41:36 2015 +0300 iwlwifi: expose fw usniffer mode to more utilities Today, in order to configure fw in usniffer mode, the ucode must have the corresponding tlv, which is revealed to the driver while parsing the ucode. Expose the mode of the usniffer to other utilities in the driver (other than the ucode parser) by passing back a pointer to the value. This can be very useful for allowing configuring the fw dbg data using an external configuration file, because this configuration depends on the fw usniffer mode. Signed-off-by: Golan Ben-Ami Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 5a1dd8a4773d4c24e925cc6154826d555a85c370 Author: Simon Wunderlich Date: Fri Sep 11 18:04:13 2015 +0200 batman-adv: lock crc access in bridge loop avoidance We have found some networks in which nodes were constantly requesting other nodes BLA claim tables to synchronize, just to ask for that again once completed. The reason was that the crc checksum of the asked nodes were out of sync due to missing locking and multiple writes to the same crc checksum when adding/removing entries. Therefore the asked nodes constantly reported the wrong crc, which caused repeating requests. To avoid multiple functions changing a backbone gateways crc entry at the same time, lock it using a spinlock. Signed-off-by: Simon Wunderlich Tested-by: Alfons Name Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/bridge_loop_avoidance.c | 35 +++++++++++++++++++++++++++++----- net/batman-adv/types.h | 2 ++ 2 files changed, 32 insertions(+), 5 deletions(-) commit c05a57f6fb6f398cde873c5ebe13ae26b3843b7e Author: Sven Eckelmann Date: Wed Aug 26 10:31:51 2015 +0200 batman-adv: Fix typo 'wether' -> 'whether' Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 01f6b5c76a68e294e90a040c651adb90126e802d Author: Sven Eckelmann Date: Wed Aug 26 10:31:50 2015 +0200 batman-adv: Use chain pointer when purging fragments The chain pointer was already created in batadv_frag_purge_orig to make the checks more readable. Just use the chain pointer everywhere instead of having the same dereference + array access in the most lines of this function. Signed-off-by: Sven Eckelmann Acked-by: Martin Hundebøll Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/fragmentation.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit ad7e2c466d8b0a7056cd248e1df6bb7296e014f7 Author: Simon Wunderlich Date: Wed Aug 26 16:33:34 2015 +0200 batman-adv: unify flags access style in tt global add This should slightly improve readability Signed-off-by: Simon Wunderlich Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/translation-table.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c169c59dd5177de2befcd5aa2cee9a1c8abeff61 Author: Simon Wunderlich Date: Wed Sep 2 20:09:56 2015 +0200 batman-adv: detect local excess vlans in TT request If the local representation of the global TT table of one originator has more VLAN entries than the respective TT update, there is some inconsistency present. By detecting and reporting this inconsistency, the global table gets updated and the excess VLAN will get removed in the process. Reported-by: Alessandro Bolletta Signed-off-by: Simon Wunderlich Acked-by: Antonio Quartulli Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/translation-table.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) commit 3d2eaeaa09f6329ba983947ba3bbe327a890368d Author: Bjorn Andersson Date: Tue Oct 20 21:57:50 2015 -0700 ARM: defconfig: Update qcom_defconfig This enables smem, smd, rpm, regulators, pmic pinctrl and hwspinlock as these platform features are now merged. It enables gpio-keys as this is used by most boards and enables fhandle and cgroups, so we can boot systemd. Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross arch/arm/configs/qcom_defconfig | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 4add1074576758fb23b7369ea62de09dac16561e Author: Andy Gross Date: Thu Sep 24 14:18:58 2015 -0500 arm: dts: Add support for PMA8084 on APQ8084 This patch adds support for the PMA8084 regulators found on APQ8084 platforms. Signed-off-by: Andy Gross Acked-by: Bjorn Andersson arch/arm/boot/dts/qcom-apq8084.dtsi | 52 +++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) commit 53ced99d70c4228be0465303625a1511db89323f Author: Andy Gross Date: Thu Sep 24 14:18:57 2015 -0500 arm: dts: Add RPM/SMD support on APQ8084 This patch adds support for RPM and SMD nodes that are present on APQ8084 platforms. Signed-off-by: Andy Gross Acked-by: Bjorn Andersson arch/arm/boot/dts/qcom-apq8084.dtsi | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 64ab88638af03b361d1446ef3682ab176ff8726b Author: Andy Gross Date: Thu Sep 24 14:18:56 2015 -0500 arm: dts: Add APQ8084 SMEM nodes This patch adds all the required nodes to support SMEM on APQ8084 Signed-off-by: Andy Gross Acked-by: Bjorn Andersson arch/arm/boot/dts/qcom-apq8084.dtsi | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) commit 426ac151ec6b7eabd248a78351ecda4d6b188d34 Author: Ivan T. Ivanov Date: Fri Dec 11 18:29:58 2015 +0000 ARM: dts: qcom: apq8064-ifc6410 Use hardware flow control for GSBI6 GSBI6 UART module is connected to BT chip, which uses hardware flow control lines. Enable them on SoC side. Signed-off-by: Ivan T. Ivanov Signed-off-by: Andy Gross arch/arm/boot/dts/qcom-apq8064-ifc6410.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit aa2691279eaf50ff7983890c38491fbee73d1025 Author: Georgi Djakov Date: Thu Dec 3 16:02:55 2015 +0200 arm: dts: qcom: apq8064: Add fixed rate on-board oscillators Currently the rates of the xo and sleep clocks are hard-coded in the GCC driver, but this is a board layout description that actually should be in the DT. Moving them into DT also allows us to insert the RPM controlled clocks between the DT and GCC clocks. Signed-off-by: Georgi Djakov Signed-off-by: Andy Gross arch/arm/boot/dts/qcom-apq8064.dtsi | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 6857a02af5386e9f5d11734363741dbe6b0a6959 Author: Eric Dumazet Date: Tue Dec 15 15:33:39 2015 -0800 sctp: use GFP_KERNEL in sctp_init() modules init functions being called from process context, we better use GFP_KERNEL allocations to increase our chances to get these high-order pages we want for SCTP hash tables. This mostly matters if SCTP module is loaded once memory got fragmented. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/sctp/protocol.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5cfe6d8adb57bd390bedc604be84cf8ff6808e1c Merge: fec65bd c1e64e2 Author: David S. Miller Date: Tue Dec 15 23:26:52 2015 -0500 Merge branch 'sock-diag-destroy' Lorenzo Colitti says: ==================== Support administratively closing application sockets This patchset adds the ability to administratively close a socket without any action from the process owning the socket or the socket protocol. It implements this by adding a new diag_destroy function pointer to struct proto. In-kernel callers can access this functionality directly by calling sk->sk_prot->diag_destroy(sk, err). It also exposes this functionality to userspace via a new SOCK_DESTROY operation in the NETLINK_SOCK_DIAG sockets. This allows a privileged userspace process, such as a connection manager or system administration tool, to close sockets belonging to other apps when the network they were established on has disconnected. It is needed on laptops and mobile hosts to ensure that network switches / disconnects do not result in applications being blocked for long periods of time (minutes) in read or connect calls on TCP sockets that will never succeed because the IP address they are bound to is no longer on the system. Closing the sockets causes these calls to fail fast and allows the apps to reconnect on another network. Userspace intervention is necessary because in many cases the kernel does not have enough information to know that a connection is now inoperable. The kernel can know if a packet can't be routed, but in general it won't know if a TCP connection is stuck because it is now routed to a network where its source address is no longer valid [5][6]. Many other operating systems offer similar functionality: - FreeBSD has had this since 5.4 in 2005 [2]. It is available to privileged userspace and there is a tool to use it [3]. - The FreeBSD commit description states that the idea came from OpenBSD. - iOS has been administratively closing app sockets since iOS 4 - see [4], which states that a socket "might get reclaimed by the kernel" and after that will return EBADF]. For many years Android kernels have supported this via an out-of-tree SIOCKILLADDR ioctl that is called on every RTM_DELADDR event, but this solution is cleaner, more robust and more flexible: the connection manager can iterate over all connections on the deleted IP address and close all of them. It can also be used to close all sockets opened by a given app process, for example if the user has restricted that app from using the network, if a secure network such as a VPN has connected and security policy requires all of an application's connections to be routed via the VPN, etc. - For many years Android kernels have supported an out-of-tree SIOCKILLADDR ioctl that is called when a network disconnects or an RTM_DELADDR event is received. This solution is cleaner, more robust and more flexible. The connection manager can implement SIOCKILLADDR by iterating over all connections on the deleted IP address and close all of them, but it can also close all sockets opened by a given app process (for example if the user has restricted that app from), close all of a user's TCP connections if a user has connected a secure network such as a VPN and expects all of an application's connections to be routed via the VPN, etc. Alternative schemes such as TCP keepalives in combination with "iptables -j REJECT --reject-with tcp-reset", could be used to achieve similar results, but on mobile devices TCP keepalives are very expensive, and in such a scheme detecting stuck connections has to wait for a keepalive to be sent or the application to perform a write. An explicit notification from userspace is cheaper and faster in the common case where an application is blocked on read. SOCK_DESTROY is placed behind an INET_DIAG_DESTROY configuration option, which is currently off by default. The TCP implementation of diag_destroy causes a TCP ABORT as specified by RFC 793 [1]: immediately send a RST and clear local connection state. This is what happens today if an application enables SO_LINGER with a timeout of 0 and then calls close. The first versions of the patchset did not send a RST, but that is not graceful/correct TCP behaviour. tcp_abort now does a proper RFC 793 ABORT and sends a RST to the peer. This is consistent with BSD's tcpdrop, and is more correct in general, even though in many use cases tcp_abort will only be called when sending a RST is no longer possible (e.g., the network has disconnected). The original patchset also behaved like SIOCKILADDR and closed TCP sockets with ETIMEDOUT. Tom Herbert pointed out that it would be better if applications could distinguish between a timeout and an administrative close. ECONNABORTED was chosen because it is consistent with BSD. [1] http://tools.ietf.org/html/rfc793#page-50 [2] http://svnweb.freebsd.org/base?view=revision&revision=141381 [3] https://www.freebsd.org/cgi/man.cgi?query=tcpdrop&sektion=8&manpath=FreeBSD+5.4-RELEASE [4] https://developer.apple.com/library/ios/technotes/tn2277/_index.html#//apple_ref/doc/uid/DTS40010841-CH1-SUBSECTION3 [5] http://www.spinics.net/lists/netdev/msg352775.html [6] http://www.spinics.net/lists/netdev/msg352952.html ==================== Signed-off-by: David S. Miller commit c1e64e298b8cad309091b95d8436a0255c84f54a Author: Lorenzo Colitti Date: Wed Dec 16 12:30:05 2015 +0900 net: diag: Support destroying TCP sockets. This implements SOCK_DESTROY for TCP sockets. It causes all blocking calls on the socket to fail fast with ECONNABORTED and causes a protocol close of the socket. It informs the other end of the connection by sending a RST, i.e., initiating a TCP ABORT as per RFC 793. ECONNABORTED was chosen for consistency with FreeBSD. Signed-off-by: Lorenzo Colitti Acked-by: Eric Dumazet Signed-off-by: David S. Miller include/net/tcp.h | 2 ++ net/ipv4/Kconfig | 13 +++++++++++++ net/ipv4/tcp.c | 32 ++++++++++++++++++++++++++++++++ net/ipv4/tcp_diag.c | 19 +++++++++++++++++++ net/ipv4/tcp_ipv4.c | 1 + net/ipv6/tcp_ipv6.c | 1 + 6 files changed, 68 insertions(+) commit 6eb5d2e08f071c05ecbe135369c9ad418826cab2 Author: Lorenzo Colitti Date: Wed Dec 16 12:30:04 2015 +0900 net: diag: Support SOCK_DESTROY for inet sockets. This passes the SOCK_DESTROY operation to the underlying protocol diag handler, or returns -EOPNOTSUPP if that handler does not define a destroy operation. Most of this patch is just renaming functions. This is not strictly necessary, but it would be fairly counterintuitive to have the code to destroy inet sockets be in a function whose name starts with inet_diag_get. Signed-off-by: Lorenzo Colitti Acked-by: Eric Dumazet Signed-off-by: David S. Miller include/linux/inet_diag.h | 4 ++++ net/ipv4/inet_diag.c | 23 +++++++++++++++-------- 2 files changed, 19 insertions(+), 8 deletions(-) commit 64be0aed59ad519d6f2160868734f7e278290ac1 Author: Lorenzo Colitti Date: Wed Dec 16 12:30:03 2015 +0900 net: diag: Add the ability to destroy a socket. This patch adds a SOCK_DESTROY operation, a destroy function pointer to sock_diag_handler, and a diag_destroy function pointer. It does not include any implementation code. Signed-off-by: Lorenzo Colitti Acked-by: Eric Dumazet Signed-off-by: David S. Miller include/linux/sock_diag.h | 2 ++ include/net/sock.h | 1 + include/uapi/linux/sock_diag.h | 1 + net/core/sock_diag.c | 23 ++++++++++++++++++++--- 4 files changed, 24 insertions(+), 3 deletions(-) commit b613f56ec9baf30edf5d9d607b822532a273dad7 Author: Lorenzo Colitti Date: Wed Dec 16 12:30:02 2015 +0900 net: diag: split inet_diag_dump_one_icsk into two Currently, inet_diag_dump_one_icsk finds a socket and then dumps its information to userspace. Split it into a part that finds the socket and a part that dumps the information. Signed-off-by: Lorenzo Colitti Acked-by: Eric Dumazet Signed-off-by: David S. Miller include/linux/inet_diag.h | 5 +++++ net/ipv4/inet_diag.c | 42 +++++++++++++++++++++++++++--------------- 2 files changed, 32 insertions(+), 15 deletions(-) commit fec65bd4e855c417b8408ed87824f9234fd0d795 Merge: 3026043 7f00fea Author: David S. Miller Date: Tue Dec 15 23:25:20 2015 -0500 Merge branch 'ila-early-demux' Tom Herbert says: ==================== ila: Optimization to preserve value of early demux In the current implementation of ILA, LWT is used to perform translation on both the input and output paths. This is functional, however there is a big performance hit in the receive path. Early demux occurs before the routing lookup (a hit actually obviates the route lookup). Therefore the stack currently performs early demux before translation so that a local connection with ILA addresses is never matched. Note that this issue is not just with ILA, but pretty much any translated or encapsulated packet handled by LWT would miss the opportunity for early demux. Solving the general problem seems non trivial since we would need to move the route lookup before early demx thereby mitigating the value. This patch set addresses the issue for ILA by adding a fast locator lookup that occurs before early demux. This done by hooking in to NF_INET_PRE_ROUTING For the backend we implement an rhashtable that contains identifier to locator to mappings. The table also allows more specific matches that include original locator and interface. This patch set: - Add an rhashtable function to atomically replace and element. This is useful to implement sub-trees from a table entry without needing to use a special anchor structure as the table entry. - Add a start callback for starting a netlink dump. - Creates an ila directory under net/ipv6 and moves ila.c to it. ila.c is split into ila_common.c and ila_lwt.c. - Implement a table to do identifier->locator mapping. This is an rhashtable (in ila_xlat.c). - Configuration for the table with netlink. - Add a hook into NF_INET_PRE_ROUTING to perform ILA translation before early demux. Changes in v2: - Use iptables targets instead of a new xfrm function Changes in v3: - Add __rcu to next pointer in struct ila_map Changes in v4: - Use hook for NF_INET_PRE_ROUTING Changed in v5: - Register hooks per namespace using nf_register_net_hooks - Only register hooks when first mapping is actually added Changed in v6: - Remove gfp argument in alloc_ila_locks, it is unnecessary - Set registered_hooks properly when hooks are registered Testing: Running 200 netperf TCP_RR streams No ILA, baseline 79.26% CPU utilization 1678282 tps 104/189/390 50/90/99% latencies ILA before fix (LWT on both input and output) 81.91% CPU utilization 1464723 tps (-14.5% from baseline) 121/215/411 50/90/99% latencies ILA after fix 80.62% CPU utilization 1622985 (-3.4% from baseline) 110/191/347 50/90/99% latencies ==================== Signed-off-by: David S. Miller commit 7f00feaf107645d95a6d87e99b4d141ac0a08efd Author: Tom Herbert Date: Tue Dec 15 15:41:38 2015 -0800 ila: Add generic ILA translation facility This patch implements an ILA tanslation table. This table can be configured with identifier to locator mappings, and can be be queried to resolve a mapping. Queries can be parameterized based on interface, direction (incoming or outoing), and matching locator. The table is implemented using rhashtable and is configured via netlink (through "ip ila .." in iproute). The table may be used as alternative means to do do ILA tanslations other than the lw tunnels Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/net/ila.h | 18 ++ include/uapi/linux/ila.h | 22 ++ net/ipv6/ila/Makefile | 2 +- net/ipv6/ila/ila.h | 2 + net/ipv6/ila/ila_common.c | 8 + net/ipv6/ila/ila_xlat.c | 680 ++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 731 insertions(+), 1 deletion(-) commit fc9e50f5a5a4e1fa9ba2756f745a13e693cf6a06 Author: Tom Herbert Date: Tue Dec 15 15:41:37 2015 -0800 netlink: add a start callback for starting a netlink dump The start callback allows the caller to set up a context for the dump callbacks. Presumably, the context can then be destroyed in the done callback. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/linux/netlink.h | 2 ++ include/net/genetlink.h | 2 ++ net/netlink/af_netlink.c | 4 ++++ net/netlink/genetlink.c | 16 ++++++++++++++++ 4 files changed, 24 insertions(+) commit 3502cad73c4bbf8f6365d539e814159275252c59 Author: Tom Herbert Date: Tue Dec 15 15:41:36 2015 -0800 rhashtable: add function to replace an element Add the rhashtable_replace_fast function. This replaces one object in the table with another atomically. The hashes of the new and old objects must be equal. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/linux/rhashtable.h | 82 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) commit 33f11d16142b06588eedfc1dd8cf93790979a712 Author: Tom Herbert Date: Tue Dec 15 15:41:35 2015 -0800 ila: Create net/ipv6/ila directory Create ila directory in preparation for supporting other hooks in the kernel than LWT for doing ILA. This includes: - Moving ila.c to ila/ila_lwt.c - Splitting out some common functions into ila_common.c Signed-off-by: Tom Herbert Signed-off-by: David S. Miller net/ipv6/Makefile | 2 +- net/ipv6/ila.c | 229 ---------------------------------------------- net/ipv6/ila/Makefile | 7 ++ net/ipv6/ila/ila.h | 46 ++++++++++ net/ipv6/ila/ila_common.c | 95 +++++++++++++++++++ net/ipv6/ila/ila_lwt.c | 152 ++++++++++++++++++++++++++++++ 6 files changed, 301 insertions(+), 230 deletions(-) commit 3026043dc4035a6f6dff68065c9df245ead06344 Merge: 93d085d 4356981 Author: David S. Miller Date: Tue Dec 15 23:21:05 2015 -0500 Merge branch 'stmmac-mdio-compat' Merge branch 'stmmac-mdio-compat' Phil Reid says: ==================== stmmac: create of compatible mdio bus for stmacc driver Provide ability to specify a fixed phy in the device tree and retain the mdio bus if no phy is found. This is needed where a dsa is connected via a fixed phy and uses the mdio bus for config. Fixed ptp ref clock calculatins for the stmmac when ptp ref clock is running at <= 50Mhz. Also add device tree setting to config ptp clk source on socfpga platforms. Changes from V5: - Restore behaviour of unregister mdio bus when no phys found if there is no device tree node create the bus. - Modify condition to allocate mdio_base_data conditional on fixed phy presece as well. Maintains existing behaviour in conditions where a fixed phy is not present. Changes from V4: - Restore #ifdef CONFIG_OF around setting of reset_gpio. Member doesn't exist when this isn't defined. Changes from V3: - Use if (IS_ENABLED(CONFIG_OF)) instead of #if. Reorder some code to reduce if statements. - of_mdiobus_register already falls back to mdiobus_register - Tested on system with CONFIG_OF Changes from V2: - Formatting, spaces & lines > 80 chars. Using checkpatch - Drop PTP register debugfs patch. Changes from V1: - Fixed mismatch doc / code for ptp_ref_clk dt node. - Remove unit address from doc example. ==================== Signed-off-by: David S. Miller commit 43569814fa35b2ae68f09780c4ee3d4a182711e9 Author: Phil Reid Date: Mon Dec 14 11:32:02 2015 +0800 stmmac: socfpga: Provide dt node to config ptp clk source. Provides an options to use the ptp clock routed from the Altera FPGA fabric. Instead of the defalt eosc1 clock connected to the ARM HPS core. This setting affects all emacs in the core as the ptp clock is common. Acked-by: Rob Herring Signed-off-by: Phil Reid Acked-by: Dinh Nguyen Signed-off-by: David S. Miller Documentation/devicetree/bindings/net/socfpga-dwmac.txt | 2 ++ drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c | 9 +++++++++ 2 files changed, 11 insertions(+) commit 19d857c9038e5c07db8f8cc02b5ad0cd0098714f Author: Phil Reid Date: Mon Dec 14 11:32:01 2015 +0800 stmmac: Fix calculations for ptp counters when clock input = 50Mhz. stmmac_config_sub_second_increment set the sub second increment to 20ns. Driver is configured to use the fine adjustment method where the sub second register is incremented when the acculumator incremented by the addend register wraps overflows. This accumulator is update on every ptp clk cycle. If a ptp clk with a period of greater than 20ns was used the sub second register would not get updated correctly. Instead set the sub sec increment to twice the period of the ptp clk. This result in the addend register being set mid range and overflow the accumlator every 2 clock cycles. Signed-off-by: Phil Reid Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/common.h | 2 +- drivers/net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c | 9 ++++++--- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 19 ++++++++----------- 3 files changed, 15 insertions(+), 15 deletions(-) commit bf171f01afe31f0c593deb55b96c3cb9e20cd6dd Author: Phil Reid Date: Mon Dec 14 11:32:00 2015 +0800 stmmac: Correct documentation on stmmac clocks. devm_get_clk looks in clock-name property for matching clock. the ptp_ref_clk property is ignored. Acked-by: Rob Herring Signed-off-by: Phil Reid Signed-off-by: David S. Miller Documentation/devicetree/bindings/net/stmmac.txt | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) commit e34d65696d2ef13dc32f2a162556c86c461ed763 Author: Phil Reid Date: Mon Dec 14 11:31:59 2015 +0800 stmmac: create of compatible mdio bus for stmmac driver The DSA driver needs to be passed a reference to an mdio bus. Typically the mac is configured to use a fixed link but the mdio bus still needs to be registered so that it con configure the switch. This patch follows the same process as the altera tse ethernet driver for creation of the mdio bus. Acked-by: Rob Herring Signed-off-by: Phil Reid Signed-off-by: David S. Miller Documentation/devicetree/bindings/net/stmmac.txt | 8 +++++++ drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 26 +++++++++++++++++++--- .../net/ethernet/stmicro/stmmac/stmmac_platform.c | 2 +- 3 files changed, 32 insertions(+), 4 deletions(-) commit 00b912b0c88e690b1662067497182454357b18b0 Author: Daniel Axtens Date: Tue Dec 15 18:09:14 2015 +1100 powerpc: Remove broken GregorianDay() GregorianDay() is supposed to calculate the day of the week (tm->tm_wday) for a given day/month/year. In that calcuation it indexed into an array called MonthOffset using tm->tm_mon-1. However tm_mon is zero-based, not one-based, so this is off-by-one. It also means that every January, GregoiranDay() will access element -1 of the MonthOffset array. It also doesn't appear to be a correct algorithm either: see in contrast kernel/time/timeconv.c's time_to_tm function. It's been broken forever, which suggests no-one in userland uses this. It looks like no-one in the kernel uses tm->tm_wday either (see e.g. drivers/rtc/rtc-ds1305.c:319). tm->tm_wday is conventionally set to -1 when not available in hardware so we can simply set it to -1 and drop the function. (There are over a dozen other drivers in drivers/rtc that do this.) Found using UBSAN. Cc: Andrey Ryabinin Cc: Andrew Morton # as an example of what UBSan finds. Cc: Alessandro Zummo Cc: Alexandre Belloni Cc: rtc-linux@googlegroups.com Signed-off-by: Daniel Axtens Acked-by: Alexandre Belloni Signed-off-by: Michael Ellerman arch/powerpc/include/asm/time.h | 1 - arch/powerpc/kernel/time.c | 36 ++----------------------------- arch/powerpc/platforms/maple/time.c | 2 +- arch/powerpc/platforms/powernv/opal-rtc.c | 3 +-- drivers/rtc/rtc-opal.c | 2 +- 5 files changed, 5 insertions(+), 39 deletions(-) commit 3081dc9eff32519bc3298c6dba0b877675d4c1cd Merge: 22ba14f c5d431e Author: Arnd Bergmann Date: Wed Dec 16 00:57:08 2015 +0100 Merge tag 'mvebu-soc-4.5-1' of git://git.infradead.org/linux-mvebu into next/multiplatform Merge "mvebu soc for 4.5 (part 1)" from Gregory CLEMENT: - orion5x/mv78xx0 multiplatform conversion - legacy dove PMU support conversion * tag 'mvebu-soc-4.5-1' of git://git.infradead.org/linux-mvebu: ARM: dove: convert legacy dove to PMU support soc: dove: add legacy support to PMU driver ARM: orion5x: multiplatform support ARM: orion5x: clean up mach/*.h headers ARM: mv78xx0: multiplatform support ARM: mv78xx0: clean up mach/*.h headers ARM: orion: use SPARSE_IRQ everywhere ARM: orion: always use MULTI_IRQ_HANDLER ARM: orion: move watchdog setup to mach-orion5x Conflicts: arch/arm/Kconfig arch/arm/mach-dove/include/mach/entry-macro.S arch/arm/mach-orion5x/include/mach/entry-macro.S commit 22ba14f41ca6b7f96fe3d4a8eb116358060595fd Merge: 7379d96 5420b4b Author: Arnd Bergmann Date: Wed Dec 16 00:02:54 2015 +0100 Merge tag 'realview-base-armsoc-1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator into next/multiplatform Merge "Realview multiplatform support" from Linus Walleij: The board and infrastructure changes for RealView multiplatform and extended DT support. * tag 'realview-base-armsoc-1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator: ARM: realview: add an DT SMP boot method ARM: realview: select SP810 and ICST for the DT variant soc: versatile: add support for the PB11MPCore clk: versatile-icst: add device tree support clk: versatile-icst: refactor to allocate regmap separately clk: versatile-icst: convert to use regmap ARM: realview: remove private barrier implementation ARM: no longer force unbuffered DMA for realview clk/realview: stop using machine headers ARM: realview: don't map undefined PCI registers ARM: realview: remove sparsemem hack Conflicts: drivers/clk/versatile/Kconfig commit a436848cc73ba584034b44d326df1ff697904331 Merge: 3b47a9f d893656 Author: Arnd Bergmann Date: Wed Dec 16 00:14:25 2015 +0100 Merge tag 'omap-for-v4.5/81xx-fixes-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/fixes-non-critical Merge "omap fixes for 81xx for v4.5 merge window" from Tony Lindgren: Fixes for ti81xx for v4.5 merge window. We have hp t410 already booting in mainline kernel with it's bootloader configured clocks. However, trying to boot dm814x-evm uncovered all kind of issues with the timer clock. To keep t410 booting, these issues need to be fixed in a specific order and this branch contains both device tree and code changes. To summarize the changes, we had missing ranges for clocks to probe, missing aliase for clocks, wrong registers for divder clocks, and bad address for the control module. All these went unnoticed earlier as things worked without errors by luck and I did not pay much attention to them until I got hold of a dm814x-evm and I noticed it did not boot. As these are fixes for features that never worked, these can wait for v4.5 merge window no problem. * tag 'omap-for-v4.5/81xx-fixes-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP2+: Remove useless check for legacy booting for dm814x ARM: OMAP2+: Enable GPIO for dm814x ARM: dts: Fix dm814x pinctrl address and mask ARM: dts: Fix dm8148 control modules ranges ARM: OMAP2+: Fix timer entries for dm814x ARM: dts: Fix some mux and divider clocks to get dm814x-evm booting ARM: OMAP2+: Add DPPLS clock manager for dm814x clk: ti: Add few dm814x clock aliases ARM: dts: Fix dm814x entries for pllss and prcm commit 8d08689dd3f2f2a03acd3b4a22fe556c85441694 Merge: 8ea1c98 34a3158 Author: Arnd Bergmann Date: Wed Dec 16 00:06:21 2015 +0100 Merge tag 'socfpga_dts_for_v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into next/dt Merge "SoCFPGA DTS update for v4.5" from Dinh Nguyen: - Add DT board file for Denx MCVEVK board * tag 'socfpga_dts_for_v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux: ARM: socfpga: Add support for DENX MCV SoM and MCVEVK baseboard commit 8ea1c981b6303904a2d92102f903843bda9df58c Merge: ee5d892 acde758 Author: Arnd Bergmann Date: Wed Dec 16 00:04:26 2015 +0100 Merge tag 'realview-base-armsoc-2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator into next/dt Merge "Realview DT files" from Linus Walleij: The device tree changes for the continued RealView DT support. * tag 'realview-base-armsoc-2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator: ARM: realview: add device tree for PB11MPCore clk: add ARM syscon ICST device tree bindings ARM: add DT bindings for the ARM11MPCore CPU cluster commit 7379d96bdabdfb2bf619c174fb6160a9c0a00ca3 Merge: ee5d874 a29da13 Author: Arnd Bergmann Date: Tue Dec 15 23:55:32 2015 +0100 Merge branch 'versatile/multiplatform' into next/multiplatform Merge "ARM Versatile multi-platform support" from Rob Herring: Arnd lit a fire under me to dust this off and get it merged. So here it is. The main change from prior version is I merged all the code to a single file. It's a bigger patch than I'd like, but I don't think trying to do it in multiple steps is worth it. This is dependent on some solution for the default platform choice on !MMU builds (allnoconfig) as it can't be Versatile after this series. Arnd has some ideas on how to address that. This is tested under QEMU. Linus previously tested this on actual h/w and had a problem with the display identification which needs investigation or agreement to worry about it if and when someone actually cares. * versatile/multiplatform: ARM: versatile: convert to multi-platform ARM: versatile: merge mach code into a single file ARM: versatile: switch to DT only booting and remove legacy code ARM: versatile: add DT based PCI detection Acked-by: Marc Zyngier commit a29da136de345f074d0c64f1c3b38eef30116b32 Author: Rob Herring Date: Tue Dec 8 14:44:18 2015 -0600 ARM: versatile: convert to multi-platform Now that all the prerequisites are in place, we can enable Versatile boards for multi-platform kernels. Signed-off-by: Rob Herring Cc: Russell King Cc: Linus Walleij Signed-off-by: Arnd Bergmann arch/arm/Kconfig | 22 +---------- arch/arm/configs/versatile_defconfig | 2 +- arch/arm/mach-versatile/Kconfig | 16 ++++++++ arch/arm/mach-versatile/Makefile.boot | 4 -- arch/arm/mach-versatile/include/mach/uncompress.h | 45 ----------------------- 5 files changed, 19 insertions(+), 70 deletions(-) commit a70967892111934e292485ce84f1bab38cc55380 Author: Rob Herring Date: Tue Dec 8 14:44:17 2015 -0600 ARM: versatile: merge mach code into a single file With DT-only support now in place and most of the legacy code removed, the separation of core.c and versatile_dt.c makes little sense. The headers in mach include directory also have to move for multi-platform support, but with a single .c file the remaining definitions needed can also be moved into the versatile_dt.c. In the move, the system registers and IB2 registers are converted to run-time mappings and all register accesses converted to use readl/writel. Signed-off-by: Rob Herring Cc: Russell King Cc: Linus Walleij Signed-off-by: Arnd Bergmann arch/arm/mach-versatile/Makefile | 2 +- arch/arm/mach-versatile/core.c | 331 ------------------------ arch/arm/mach-versatile/core.h | 41 --- arch/arm/mach-versatile/include/mach/hardware.h | 32 --- arch/arm/mach-versatile/include/mach/platform.h | 242 ----------------- arch/arm/mach-versatile/versatile_dt.c | 325 ++++++++++++++++++++++- 6 files changed, 325 insertions(+), 648 deletions(-) commit 16956fed35fecde2201e23458cda193526b19559 Author: Rob Herring Date: Tue Dec 8 14:44:16 2015 -0600 ARM: versatile: switch to DT only booting and remove legacy code With DT support for clocks, irqchips, timers, and PCI now in place, DT based booting has feature parity with non-DT legacy boot. The final piece is actually enabling common clock support on Versatile. Enabling full DT support requires either removing the old Versatile clock code, updating the legacy boot to use the common clock code, or making DT and legacy boot mutually exclusive. Given that removing legacy boot code is the goal anyway, I am going with the 1st option. Signed-off-by: Rob Herring Cc: Russell King Cc: Linus Walleij Cc: Mike Turquette Signed-off-by: Arnd Bergmann arch/arm/Kconfig | 13 +- arch/arm/mach-versatile/Kconfig | 33 -- arch/arm/mach-versatile/Makefile | 6 +- arch/arm/mach-versatile/core.c | 497 +----------------------- arch/arm/mach-versatile/core.h | 9 +- arch/arm/mach-versatile/include/mach/clkdev.h | 16 - arch/arm/mach-versatile/include/mach/hardware.h | 6 - arch/arm/mach-versatile/include/mach/irqs.h | 134 ------- arch/arm/mach-versatile/include/mach/platform.h | 174 --------- arch/arm/mach-versatile/pci.c | 368 ------------------ arch/arm/mach-versatile/versatile_ab.c | 44 --- arch/arm/mach-versatile/versatile_dt.c | 1 + arch/arm/mach-versatile/versatile_pb.c | 91 ----- drivers/clk/versatile/Kconfig | 4 +- 14 files changed, 24 insertions(+), 1372 deletions(-) commit a8e2894c125f69aaea474592ebebd463bb7e1b0a Author: Rob Herring Date: Tue Dec 8 14:44:15 2015 -0600 ARM: versatile: add DT based PCI detection Disable the Versatile PCI DT node when no PCI backplane is detected. This will prevent the Versatile PCI driver from probing when PCI is not populated. Signed-off-by: Rob Herring Cc: Russell King Cc: Linus Walleij Signed-off-by: Arnd Bergmann arch/arm/mach-versatile/versatile_dt.c | 50 ++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) commit ee5d874271f2b6a6ff1046aa7a8e41e4d53888d4 Author: Arnd Bergmann Date: Wed Dec 9 14:43:45 2015 +0100 ARM: pxa: mark ezx structures as __maybe_unused The ezx platform contains multiple machine descriptors, but not all of them use all of the data structures, and it's possible to disable all of the machines, which produces some harmless warnings: mach-pxa/ezx.c:53:26: warning: 'ezx_pwm_lookup' defined but not used [-Wunused-variable] mach-pxa/ezx.c:86:31: warning: 'ezx_fb_info_1' defined but not used [-Wunused-variable] mach-pxa/ezx.c:107:31: warning: 'ezx_fb_info_2' defined but not used [-Wunused-variable] mach-pxa/ezx.c:113:32: warning: 'ezx_devices' defined but not used [-Wunused-variable] mach-pxa/ezx.c:117:22: warning: 'ezx_pin_config' defined but not used [-Wunused-variable] This marks all those structures as __maybe_unused to avoid the warnings. Obviously a configuration that contains the ezx platform but no specific model is a bit silly, but it should not cause compile-time warnings. Signed-off-by: Arnd Bergmann Acked-by: Robert Jarzmik arch/arm/mach-pxa/ezx.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit f41bd6afb78e024880ba84a642a75b2a2e108304 Author: Arnd Bergmann Date: Tue Dec 8 23:12:22 2015 +0100 ARM: pxa: mark raumfeld init functions as __maybe_unused The raumfeld.c file contains three similar machine definitions, each with their own init function. If one or more of them are disabled, we get compile-time warnings: arm/mach-pxa/raumfeld.c:1070:123: warning: 'raumfeld_connector_init' defined but not used [-Wunused-function] arm/mach-pxa/raumfeld.c:1082:123: warning: 'raumfeld_speaker_init' defined but not used [-Wunused-function] This marks the functions as __maybe_unused to avoid the warnings. Signed-off-by: Arnd Bergmann Acked-by: Daniel Mack arch/arm/mach-pxa/raumfeld.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit f39c42f5f9d851d4f8779d91cc9cb2ec0f9a70c6 Author: Arnd Bergmann Date: Tue Dec 8 23:42:07 2015 +0100 ARM: pxa: cm-x2xx: avoid duplicate macro warnings In an old commit, we worked around the duplicate definition of GPIO24_SSP1_SFRM in cm-x2xx.c, which includes files for both pxa25x and pxa27x. Apparently the problem has come back and we now have four additional duplicate symbols that cause warnings: In file included from /git/arm-soc/arch/arm/mach-pxa/pxa27x.h:7:0, from /git/arm-soc/arch/arm/mach-pxa/cm-x2xx.c:27: /git/arm-soc/arch/arm/mach-pxa/mfp-pxa27x.h:21:0: warning: "GPIO86_GPIO" redefined #define GPIO86_GPIO MFP_CFG_IN(GPIO86, AF0) This uses the same hack as before and undefines all symbols that are defined more than once. Fortunately, cm-x2xx does not need any of these. Signed-off-by: Arnd Bergmann Acked-by: Robert Jarzmik arch/arm/mach-pxa/cm-x2xx.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 8864eaca909d03caa220534640a7c92e4d06c96d Merge: fb4f042 84f45ee Author: Arnd Bergmann Date: Tue Dec 15 23:45:45 2015 +0100 Merge branch 'mmp/multiplatform' into next/multiplatform * mmp/multiplatform: ARM: mmp: avoid unused functions ARM: mmp: move into ARCH_MULTIPLATFORM ARM: mmp: make all header files local ARM: mmp: make plat-pxa build standalone ARM: mmp: remove remaining legacy pxa-dma support ARM: mohawk: allow building with MMU disabled ARM: make xscale iwmmxt code multiplatform aware clk: mmp: stop using platform headers commit fb4f0424293a0fb75d0c9edbc16bd618930ff2da Merge: 35d3aad b282104 Author: Arnd Bergmann Date: Tue Dec 15 23:45:22 2015 +0100 Merge branch 's3c64xx/multiplatform' into next/multiplatform * s3c64xx/multiplatform: ARM: s3c64xx: allow building without board support ARM: s3c64xx: multiplatform support ARM: s3c64xx: use common debug-ll implementation ARM: s3c64xx: use new adc/touchscreen driver iio: exynos-adc: add experimental touchscreen support ARM: s3c64xx: enable sparse IRQ support ARM: s3c64xx: prepare initcalls for multiplatform gpio: samsung: move gpio-samsung driver back to platform code ASoC: samsung/smartq: use dynamic registration Input: s3c2410_ts: fix S3C_ADC dependency Conflicts: arch/arm/Kconfig.debug commit 35d3aad49223aaf9f54510145fd674134e117321 Merge: d74b518 1dc9341 Author: Arnd Bergmann Date: Tue Dec 15 23:44:30 2015 +0100 Merge branch 'multiplatform/debug-ll' into next/multiplatform * multiplatform/debug-ll: ARM: debug-ll: reorder Kconfig alphanumerically ARM: debug-ll: rework footbridge handling ARM: debug-ll: rework lpc32xx handling ARM: debug-ll: rework gemini handling ARM: debug-ll: rework integrator/versatile handling ARM: debug-ll: rework SPEAr handling ARM: debug-ll: rework ep93xx handling ARM: debug-ll: reorganize mvebu debug uart config ARM: debug-ll: fix UART configuration with ARCH_KEYSTONE commit 1dc93416eaec59886fde97dd095fb9140fa58130 Author: Arnd Bergmann Date: Thu Dec 3 18:16:45 2015 +0100 ARM: debug-ll: reorder Kconfig alphanumerically The file has gotten a little out of sync, as platforms got added in the wrong place, or have been renamed. This moves the options around, but should not change any functionality. Signed-off-by: Arnd Bergmann arch/arm/Kconfig.debug | 282 ++++++++++++++++++++++++------------------------- 1 file changed, 141 insertions(+), 141 deletions(-) commit 0045c0dd2f643b74f7089253d6ffa1bbb72d3d87 Author: Arnd Bergmann Date: Thu Dec 3 18:27:53 2015 +0100 ARM: debug-ll: rework footbridge handling Footbridge has two debug ports that are handled a bit differently: The 8250 port uses the normal debug/8250.S implementation that is shared with a lot of other platforms, but it relies on the DEBUG_UART_8250 option to be turned on automatically instead of being selected by DEBUG_FOOTBRIDGE_COM1 as we do for most other platforms. I'm changing this to use a 'select' and change the dependency to the debug symbol rather than the platform symbol for consistency. The DC21285 UART has a separate top-level option, and relies on the traditional include/mach/debug-macro.S method. With the s3c64xx multiplatform series queued up for 4.5, it is now the last one that does this, so by moving this file to include/debug/dc21285.S, we can get all platforms to do things the same way. Signed-off-by: Arnd Bergmann arch/arm/Kconfig.debug | 12 ++++--- arch/arm/include/debug/dc21285.S | 42 ++++++++++++++++++++++ .../arm/mach-footbridge/include/mach/debug-macro.S | 42 ---------------------- 3 files changed, 49 insertions(+), 47 deletions(-) commit 59bd4c3827f42c19e530326761e7094eaa28aac3 Author: Arnd Bergmann Date: Thu Dec 3 17:54:05 2015 +0100 ARM: debug-ll: rework lpc32xx handling LPC32xx can not yet be configured in a multiplatform kernel, but if we ever get there, enabling one of the LPC32xx platforms while trying to use DEBUG_LL for another platform can default to the wrong UART address, as the options are purely based on the architecture being enabled or not. This changes the logic to use the LPC32xx default addresses only if we have also picked the respective Kconfig symbols introduced here. While we're at it, this also reorders the virtual address as it should be. Signed-off-by: Arnd Bergmann Acked-by: Vladimir Zapolskiy arch/arm/Kconfig.debug | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) commit d7175a3b79ef55e3f755e956d82b7efcbfbd4701 Author: Arnd Bergmann Date: Thu Dec 3 17:54:05 2015 +0100 ARM: debug-ll: rework gemini handling Gemini can not yet be configured in a multiplatform kernel, but if we ever get there, enabling one of the gemini platforms while trying to use DEBUG_LL for another platform can default to the wrong UART address, as the options are purely based on the architecture being enabled or not. This changes the logic to use the gemini default addresses and the flow control settings only if we have also picked the respective Kconfig symbols introduced here. While we're at it, this also reorders the virtual address as it should be. Signed-off-by: Arnd Bergmann Acked-by: Hans Ulli Kroll arch/arm/Kconfig.debug | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) commit 4db22c1033ce240dd75237fe911375671c191224 Author: Arnd Bergmann Date: Thu Dec 3 17:54:05 2015 +0100 ARM: debug-ll: rework integrator/versatile handling Enabling one of the integrator platforms in a multiplatform kernel while trying to use DEBUG_LL for another platform can default to the wrong UART address, as the options are purely based on the architecture being enabled or not. This changes the logic to use the integrator default addresses only if we have also picked the respective Kconfig symbols introduced here. Versatile is not yet part of multiplatform, but hopefully soon will be, so we do the same change for versatile as well. Signed-off-by: Arnd Bergmann arch/arm/Kconfig.debug | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) commit 375d84cf8689c9701ae6c8813bbea6b6d1e436a4 Author: Arnd Bergmann Date: Thu Dec 3 17:54:05 2015 +0100 ARM: debug-ll: rework SPEAr handling Enabling one of the SPEAr platforms in a multiplatform kernel while trying to use DEBUG_LL for another platform can default to the wrong UART address, as the options are purely based on the architecture being enabled or not. This changes the logic to use the SPEAr default addresses only if we have also picked the respective Kconfig symbols introduced here. Signed-off-by: Arnd Bergmann arch/arm/Kconfig.debug | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) commit f06455fab68cdba4c8d790c25d0f30745d636723 Author: Arnd Bergmann Date: Thu Dec 3 16:19:22 2015 +0100 ARM: debug-ll: rework ep93xx handling This makes ep93xx debug-ll handling more consistent with the other platforms, by adding a separate Kconfig symbol for it that in turn selects the standard DEBUG_UART_PL01X symbol. We still have to pick a physical address even if DEBUG_LL is disabled here, because the EP93xx uncompress output code uses CONFIG_DEBUG_UART_PHYS. If we ever move to multiplatform support, this can go away. Signed-off-by: Arnd Bergmann arch/arm/Kconfig.debug | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit c047f529e887b407eee0f9fe88dc368378c1624f Author: Arnd Bergmann Date: Thu Dec 3 14:48:23 2015 +0100 ARM: debug-ll: reorganize mvebu debug uart config As we are moving dove/mv78xx0/orion into multiplatform, the debug-ll configuration options for these platforms are conflicting with the multiplatform configuration: enabling one of those platforms sometimes changes the default addresses to the ones used on one of them, rather than the one that was selected in Kconfig. This changes the configuration so we share the physical address configuration with mach-mvebu. Signed-off-by: Arnd Bergmann arch/arm/Kconfig.debug | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) commit cdd2e08b21e537ecb46a88cd3849f04770d4632b Author: Arnd Bergmann Date: Thu Dec 3 14:41:11 2015 +0100 ARM: debug-ll: fix UART configuration with ARCH_KEYSTONE We may have multiple platforms enabled and also DEBUG_LL configured for one of them. However if we enable ARCH_KEYSTONE, we default to using 32-bit UART access independent of which platform we are actually using, which can be confusing. This changes the logic so the 32-bit default gets only used by default if we actually configure the keystone UART, as opposed to picking some other 8250 setting on a kernel that has keystone support enabled. Signed-off-by: Arnd Bergmann arch/arm/Kconfig.debug | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit bf9af08cd5151f1915119ea4c6a873d5a4880d74 Author: Anton Bondarenko Date: Tue Dec 8 07:43:46 2015 +0100 spi: imx: defer spi initialization, if DMA engine is If SPI device supports DMA mode, but DMA controller is not yet available due to e.g. a delay in the corresponding kernel module initialization, retry to initialize SPI driver later on instead of falling back into PIO only mode. Signed-off-by: Anton Bondarenko Signed-off-by: Mark Brown drivers/spi/spi-imx.c | 3 +++ 1 file changed, 3 insertions(+) commit 3760047a7d83353163b69b96d216a13148a321d9 Author: Anton Bondarenko Date: Tue Dec 8 07:43:45 2015 +0100 spi: imx: return error from dma channel request On SDMA initialization return exactly the same error, which is reported by dma_request_slave_channel_reason(), it is a preceding change to defer SPI DMA initialization, if SDMA module is not yet available. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Anton Bondarenko Signed-off-by: Mark Brown drivers/spi/spi-imx.c | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) commit 4686d1c3d17a146192aa707a92edc2e122ada39e Author: Anton Bondarenko Date: Tue Dec 8 07:43:44 2015 +0100 spi: imx: enable loopback only for ECSPI controller family Limit SPI_LOOP mode to ECSPI controller (iMX.51, iMX53 and i.MX6) only since there is no support in other families specific code for now. Signed-off-by: Anton Bondarenko Signed-off-by: Mark Brown drivers/spi/spi-imx.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit f677f17cced0ca72a4331b64de119b35b19facb0 Author: Anton Bondarenko Date: Tue Dec 8 07:43:43 2015 +0100 spi: imx: fix loopback mode setup after controller reset If controller hold in reset it's not possible to write any register except CTRL. So all other registers must be updated only after controller bring out from reset. Signed-off-by: Anton Bondarenko Signed-off-by: Mark Brown drivers/spi/spi-imx.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 93d085d222de7b8e7c7794dbd800c6a39df2eae2 Merge: b4bc88a 7a6ae71 Author: David S. Miller Date: Tue Dec 15 16:50:28 2015 -0500 Merge branch 'end-of-ip-csum' Tom Herbert says: ==================== net: The beginning of the end for NETIF_F_IP_CSUM and NETIF_F_IPV6_CSUM Background: This patch set starts to address one front in the battle against protocol ossification. Protocol ossification describes the state that we have arrived at in the evolution of the Internet where we are materially limited to only using a very narrow range of protocols and protocol features. For instance, only TCP and UDP is sufficiently supported on the Internet so that deploying alternative protocols, such as SCTP and DCCP, are non-starters. Similarly, IP options and IPv6 extension headers are typically not considered feasible for wide deployment, so we have loss the extensibility of IP protocols. Protocol ossification is not only a problem on the Internet, but in the data center as well. A root cause of this seems to be narrow, protocol specific optimizations implemented in switches (for doing EMCP) and in NICs (NIC offloads). These tend to be performance optimization around TCP and UDP packets, and these have become requirements to implement performant network solutions at scale. Attempts to deal with protocol ossification in data center have yielded ad hoc, sub-optimal solutions. A main driver of foo-over-UDP (e.g. GRE/UDP, MPLS/UDP) is to leverage the existing EMCP and RSS support for UDP by setting the source port as an entropy value. This has seen some success, but the cost of additional overhead and layering limits its usefulness. An even more extreme solution is STT where non-TCP packets are spoofed as TCP to leverage NIC offloads. This patch set endeavours to address protocol ossification caused by techniques used in transmit checksum offload for NICs. Future work will address protocol ossification in the other primary NIC offloads-- namely receive checksum offload, LSO, LRO, and RSS. NETIF_F_IP_CSUM and NETIF_F_IPV6_CSUM: NETIF_F_IP_CSUM and NETIF_F_IPV6_CSUM exemplify the problem of protocol ossification. These features are relics from a simpler time in the Internet, before encapsulation, before GRE and IPIP. Many hardware vendors only saw the need to provide checksum offload for simple UDP and TCP packets over IPv4 (IPv6 support is an afterthought also). In today's Internet and data centers, checksum offload is well established as a valuable feature, but we can no longer afford to be contsrained to use a handful of protocols and features that are supported at the discretion of NIC vendors. Generic and protocol agnostic methods are needed. The actual interface that the stack uses with drivers for checksum offload is CHECKSUM_PARTIAL. This is a generic and protocol agnostic interface. A driver for a device that supports this generic interface advertises NETIF_F_HW_CSUM. Goals of this patch set: We propose that drivers advertise NETIF_F_HW_CSUM instead of protocol specific values of NETIF_F_IP_CSUM and NETIF_F_IPV6_CSUM. If the driver's device is constrained (for instance it can only offlaod simple IPv4 and IPv6 packets) then these constraints can be checked in the transmit path and skb_checksum_help would be called for packets that the driver is unable to offload. In order to facilitate this, we add some helper functions that takes a specification argument indicating the type of packets a device is able to offload. If a packet does not match the specification, the helper function calls skb_checksum_help. Benefits of this approach are: - Simplify the stack and clarify the interface for checksum offload - Encourage NIC vendors to implement the generic. protocol agnostic checksum offload methods in hardware - Encourage feature parity in NIC offloads for IPv4 and IPv6 Many drivers advertise NETIF_F_IP_CSUM and NETIF_F_IPV6_CSUM and it probably isn't feasible to convert them all in a given time frame (although if we could this would be a great simplification to the stack). A reasonable direction may be to declare that new drivers must use NETIF_F_HW_CSUM as NETIF_F_IP_CSUM and NETIF_F_IPV6_CSUM are considered deprecated. There is a class of drivers that should now be converted to advertise NETIF_F_HW_CSUM, namely those that support offload of ecapsulated checksums. These drivers have to date been using skb->encapsulation to infer that checksum offload is being performed for an encapsulated checksum. This is strictly not correct. skb->encapsulation indicates that the inner headers are valid in the skbuff, whereas the stack indicates checksum offload arguments exclusively in csum_start and csum_offset. At some point we may want to set the inner headers for an skbuff but offload the outer transport checksum, so this needs to be fixed. In this patch set: - Rename some of constants involved in checksum offload to be more reflective of their function - Eliminate NETIF_F_GEN_CSUM and NETIF_F_V[46]_CSUM entirely as unnecessary convolutions - Fix conditions in tcp_sendpage and tcp_sendmsg to take IP protocol into account when determining if checksum offload can be done - Add driver helper functions for determining if a checksum can be offloaded to a device. If not, the helper function can call skb_checksum_help - Document the checksum offload interface between the stack and drivers with detail and specifics Testing: Have been testing ixgbe and mlx4. No noticeable regressions seen yet. ==================== Signed-off-by: David S. Miller commit 7a6ae71b2490586ed55105893a18dfc648e5fcbb Author: Tom Herbert Date: Mon Dec 14 11:19:47 2015 -0800 net: Elaborate on checksum offload interface description Add specifics and details the description of the interface between the stack and drivers for doing checksum offload. This description is meant to be as specific and complete as possible. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/linux/skbuff.h | 138 ++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 109 insertions(+), 29 deletions(-) commit 6ae23ad36253a8033c5714c52b691b84456487c5 Author: Tom Herbert Date: Mon Dec 14 11:19:46 2015 -0800 net: Add driver helper functions to determine checksum offloadability Add skb_csum_offload_chk driver helper function to determine if a device with limited checksum offload capabilities is able to offload the checksum for a given packet. This patch includes: - The skb_csum_offload_chk function. Returns true if checksum is offloadable, else false. Optionally, in the case that the checksum is not offloable, the function can call skb_checksum_help to resolve the checksum. skb_csum_offload_chk also returns whether the checksum refers to an encapsulated checksum. - Definition of skb_csum_offl_spec structure that caller uses to indicate rules about what it can offload (e.g. IPv4/v6, TCP/UDP only, whether encapsulated checksums can be offloaded, whether checksum with IPv6 extension headers can be offloaded). - Ancilary functions called skb_csum_offload_chk_help, skb_csum_off_chk_help_cmn, skb_csum_off_chk_help_cmn_v4_only. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/linux/netdevice.h | 78 ++++++++++++++++++++++++++ net/core/dev.c | 136 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 214 insertions(+) commit 9a49850d0af7b9fd14d091dfe61ef6cb369f86b9 Author: Tom Herbert Date: Mon Dec 14 11:19:45 2015 -0800 tcp: Fix conditions to determine checksum offload In tcp_send_sendpage and tcp_sendmsg we check the route capabilities to determine if checksum offload can be performed. This check currently does not take the IP protocol into account for devices that advertise only one of NETIF_F_IPV6_CSUM or NETIF_F_IP_CSUM. This patch adds a function to check capabilities for checksum offload with a socket called sk_check_csum_caps. This function checks for specific IPv4 or IPv6 offload support based on the family of the socket. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/net/sock.h | 9 +++++++++ net/ipv4/tcp.c | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) commit c8cd0989bd151fda87bbf10887b3df18021284bc Author: Tom Herbert Date: Mon Dec 14 11:19:44 2015 -0800 net: Eliminate NETIF_F_GEN_CSUM and NETIF_F_V[46]_CSUM These netif flags are unnecessary convolutions. It is more straightforward to just use NETIF_F_HW_CSUM, NETIF_F_IP_CSUM, and NETIF_F_IPV6_CSUM directly. This patch also: - Cleans up can_checksum_protocol - Simplifies netdev_intersect_features Signed-off-by: Tom Herbert Signed-off-by: David S. Miller drivers/net/ethernet/sfc/efx.c | 2 +- drivers/net/macvlan.c | 2 +- include/linux/if_vlan.h | 2 +- include/linux/netdev_features.h | 9 +++---- include/linux/netdevice.h | 40 ++++++++++++++++++++------------ net/core/dev.c | 12 +++++----- net/core/pktgen.c | 4 ++-- net/ipv4/ip_output.c | 2 +- net/ipv4/netfilter/nf_nat_l3proto_ipv4.c | 3 ++- net/ipv4/udp.c | 3 ++- net/ipv4/udp_offload.c | 5 ++-- net/ipv6/ip6_output.c | 2 +- net/ipv6/netfilter/nf_nat_l3proto_ipv6.c | 3 ++- 13 files changed, 50 insertions(+), 39 deletions(-) commit a188222b6ed29404ac2d4232d35d1fe0e77af370 Author: Tom Herbert Date: Mon Dec 14 11:19:43 2015 -0800 net: Rename NETIF_F_ALL_CSUM to NETIF_F_CSUM_MASK The name NETIF_F_ALL_CSUM is a misnomer. This does not correspond to the set of features for offloading all checksums. This is a mask of the checksum offload related features bits. It is incorrect to set both NETIF_F_HW_CSUM and NETIF_F_IP_CSUM or NETIF_F_IPV6 at the same time for features of a device. This patch: - Changes instances of NETIF_F_ALL_CSUM to NETIF_F_CSUM_MASK (where NETIF_F_ALL_CSUM is being used as a mask). - Changes bonding, sfc/efx, ipvlan, macvlan, vlan, and team drivers to use NEITF_F_HW_CSUM in features list instead of NETIF_F_ALL_CSUM. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller drivers/net/bonding/bond_main.c | 7 +++---- drivers/net/ethernet/emulex/benet/be_main.c | 2 +- drivers/net/ethernet/ibm/ibmveth.c | 5 +++-- drivers/net/ethernet/intel/fm10k/fm10k_netdev.c | 2 +- drivers/net/ethernet/intel/i40e/i40e_main.c | 2 +- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 2 +- drivers/net/ethernet/jme.c | 2 +- drivers/net/ethernet/marvell/sky2.c | 2 +- drivers/net/ethernet/netronome/nfp/nfp_net_common.c | 4 ++-- drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_param.c | 2 +- drivers/net/ethernet/sfc/efx.c | 2 +- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 4 ++-- drivers/net/ipvlan/ipvlan_main.c | 2 +- drivers/net/macvlan.c | 2 +- drivers/net/macvtap.c | 2 +- drivers/net/team/team.c | 3 +-- drivers/net/usb/r8152.c | 2 +- drivers/staging/lustre/lnet/klnds/socklnd/socklnd_lib.c | 2 +- include/linux/netdev_features.h | 7 ++++++- include/linux/netdevice.h | 6 +++--- include/net/vxlan.h | 2 +- net/8021q/vlan_dev.c | 2 +- net/core/dev.c | 10 +++++----- net/core/ethtool.c | 2 +- net/ipv4/tcp.c | 4 ++-- 25 files changed, 43 insertions(+), 39 deletions(-) commit 253aab0597d9e16014888639f801ff89df6949c3 Author: Tom Herbert Date: Mon Dec 14 11:19:42 2015 -0800 fcoe: Use CHECKSUM_PARTIAL to indicate CRC offload When setting up CRC offload set ip_summed to CHECKSUM_PARTIAL instead of CHECKSUM_UNNECESSARY. This is consistent with the definition of CHECKSUM_PARTIAL. The only driver that seems to be advertising NETIF_F_FCOE_CRC is ixgbe. AFICT the driver does not look at ip_summed for FCOE and just assumes that CRC is being offloaded. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller drivers/scsi/fcoe/fcoe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 53692b1de419c1b59106909c7f6b4dd3dbc768ac Author: Tom Herbert Date: Mon Dec 14 11:19:41 2015 -0800 sctp: Rename NETIF_F_SCTP_CSUM to NETIF_F_SCTP_CRC The SCTP checksum is really a CRC and is very different from the standards 1's complement checksum that serves as the checksum for IP protocols. This offload interface is also very different. Rename NETIF_F_SCTP_CSUM to NETIF_F_SCTP_CRC to highlight these differences. The term CSUM should be reserved in the stack to refer to the standard 1's complement IP checksum. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller drivers/net/ethernet/intel/i40e/i40e_main.c | 2 +- drivers/net/ethernet/intel/i40evf/i40evf_main.c | 2 +- drivers/net/ethernet/intel/igb/igb_main.c | 4 ++-- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 4 ++-- drivers/net/loopback.c | 2 +- include/linux/netdev_features.h | 4 ++-- net/8021q/vlan_dev.c | 2 +- net/core/ethtool.c | 4 ++-- net/netfilter/ipvs/ip_vs_proto_sctp.c | 2 +- net/sctp/output.c | 2 +- 10 files changed, 14 insertions(+), 14 deletions(-) commit 55dc5a9f2f2afd32d7b1bda44a5fc95e67a3371f Author: Tom Herbert Date: Mon Dec 14 11:19:40 2015 -0800 net: Add skb_inner_transport_offset function Same thing as skb_transport_offset but returns the offset of the inner transport header (when skb->encpasulation is set). Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/linux/skbuff.h | 5 +++++ 1 file changed, 5 insertions(+) commit 6ad7609a183a250f1a346c7edfcbeaa30a29cfcc Author: Chao Yu Date: Tue Dec 15 13:31:40 2015 +0800 f2fs: introduce __remove_dirty_inode Introduce __remove_dirty_inode to clean up codes in remove_dirty_dir_inode. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/checkpoint.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) commit 2710fd7e00b4f77dbe807efaf546bed00b62e65e Author: Chao Yu Date: Tue Dec 15 13:30:45 2015 +0800 f2fs: introduce dirty list node in inode info Add a new dirt list node member in inode info for linking the inode to global dirty list in superblock, instead of old implementation which allocate slab cache memory as an entry to inode. It avoids memory pressure due to slab cache allocation, and also makes codes more clean. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/checkpoint.c | 54 +++++++++++++++++----------------------------------- fs/f2fs/debug.c | 1 - fs/f2fs/f2fs.h | 10 ++-------- fs/f2fs/super.c | 1 + 4 files changed, 20 insertions(+), 46 deletions(-) commit a49324f127dec918f5a3b3f145d0bf2fb81f4588 Author: Chao Yu Date: Tue Dec 15 13:29:47 2015 +0800 f2fs: rename {add,remove,release}_dirty_inode to {add,remove,release}_ino_entry remove_dirty_dir_inode will be renamed to remove_dirty_inode as a generic function in following patch for removing directory/regular/symlink inode in global dirty list. Here rename ino management related functions for readability, also in order to avoid name conflict. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/checkpoint.c | 8 ++++---- fs/f2fs/f2fs.h | 6 +++--- fs/f2fs/file.c | 4 ++-- fs/f2fs/inode.c | 4 ++-- fs/f2fs/super.c | 2 +- 5 files changed, 12 insertions(+), 12 deletions(-) commit 520ddad4e560423a320bc1861792da19b0b879f9 Author: Jisheng Zhang Date: Thu Nov 26 00:01:52 2015 +0800 clocksource/drivers/dw_apb_timer: Inline apbt_readl and apbt_writel It seems gcc can automatically inline apbt_writel() for us, but apbt_real isn't inlined. This patch makes them inline to get a trivial performance improvement: 4096 rounds of __apbt_read_clocksource() call spend time on Marvell BG4CT platform: before the patch 1275240ns on average after the patch 1263240ns on average so we get 1% performance improvement. Signed-off-by: Jisheng Zhang Signed-off-by: Daniel Lezcano drivers/clocksource/dw_apb_timer.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 39d3611f2d8ff5dcba523c9081e6f5e51f066c86 Author: Jisheng Zhang Date: Thu Nov 26 00:01:53 2015 +0800 clocksource/drivers/dw_apb_timer: Use {readl|writel}_relaxed in critical path It's safe to use the relaxed version. From another side, the relaxed io accessor macros are available on all architectures now, so we can use the relaxed versions to get a trivial system performance improvement, we measured time the following functions spent on Marvell BG4CT: 4096 rounds of __apbt_read_clocksource() call: before the patch: 1263240ns on average after the patch: 1250080ns on average improved by 1% 4096 rounds of apbt_eoi() call: before the patch: 1290960ns on average after the patch: 1248240ns on average 4096 rounds of apbt_next_event() call: before the patch: 3333660ns on average after the patch: 1322040ns on average improved by 60%! Signed-off-by: Jisheng Zhang Signed-off-by: Daniel Lezcano drivers/clocksource/dw_apb_timer.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) commit 9f4165dc4e9e6dd10627b7b4d4e09c09fc01410c Author: Jisheng Zhang Date: Wed Nov 25 23:41:23 2015 +0800 clocksource/drivers/dw_apb_timer: Fix apbt_readl return types On Marvell BG4CT platform, we observed the __apbt_read_clocksource() return wrong value: Let's assume the APBTMR_N_CURRENT_VALUE value is 0xf0000000, we got 0xffffffff0fffffff, but it should be 0xfffffff. This issue should be common on all 64bit platforms. We fix the issue by letting aptb_readl() return u32. apbt_writel() is also updated to write u32 val rather than unsigned long. Signed-off-by: Jisheng Zhang Signed-off-by: Daniel Lezcano drivers/clocksource/dw_apb_timer.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit c6333f9f9f7646e311248a09e8ed96126a97aba8 Merge: 9f9499a cfeb91b Author: Doug Ledford Date: Tue Dec 15 14:10:44 2015 -0500 Merge branch 'rdma-cq.2' of git://git.infradead.org/users/hch/rdma into 4.5/rdma-cq Signed-off-by: Doug Ledford Conflicts: drivers/infiniband/ulp/srp/ib_srp.c - Conflicts with changes in ib_srp.c introduced during 4.4-rc updates commit 7f0ad5396a22c061c3c724c299848b4bc2440de5 Merge: 9f9499a 10cf489 Author: Dmitry Torokhov Date: Tue Dec 15 10:23:43 2015 -0800 Merge branch 'for-dmitry' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio into goodix Bring in changes to ACPI GPIOLIB to better handle legacy ACPI mappings needed for subsequent Goodix driver changes. commit 2b235a3da5560d65df6865ea436389e55a0f41ad Author: Mark Brown Date: Mon Dec 14 12:05:28 2015 +0000 rcar: mux: Avoid use of ret uninitialised We use ret as the return value from the rsnd_mix_probe() but if there are no child nodes and no errors then we will never initialize ret leading to build warnings. Ensure ret is initialized before we iterate over the child nodes to avoid this. Signed-off-by: Mark Brown sound/soc/sh/rcar/mix.c | 1 + 1 file changed, 1 insertion(+) commit 2e4118dac3d6765186dd1faf1fd3cede37b74e73 Author: Mark Brown Date: Mon Dec 14 12:05:17 2015 +0000 rcar: dvc: Avoid use of ret uninitialised We use ret as the return value from the rsnd_dvc_probe() but if there are no child nodes and no errors then we will never initialize ret leading to build warnings. Ensure ret is initialized before we iterate over the child nodes to avoid this. Signed-off-by: Mark Brown sound/soc/sh/rcar/dvc.c | 1 + 1 file changed, 1 insertion(+) commit 76ca9970322118610681af5f929aba62f346082b Author: Mark Brown Date: Mon Dec 14 12:04:54 2015 +0000 rcar: ctu: Avoid use of ret uninitialised We use ret as the return value from the rsnd_ctu_probe() but if there are no child nodes and no errors then we will never initialize ret leading to build warnings. Ensure ret is initialized before we iterate over the child nodes to avoid this. Signed-off-by: Mark Brown sound/soc/sh/rcar/ctu.c | 1 + 1 file changed, 1 insertion(+) commit b4bc88a868edb878827499f0fb049b9f83fc2710 Author: Kazuya Mizuguchi Date: Tue Dec 15 19:44:13 2015 +0900 ravb: Add fixed-link support This patch adds support of the fixed PHY. This patch is based on commit 87009814cdbb ("ucc_geth: use the new fixed PHY helpers"). Signed-off-by: Kazuya Mizuguchi Signed-off-by: Yoshihiro Kaneko Signed-off-by: David S. Miller drivers/net/ethernet/renesas/ravb_main.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 75f287180a5481f60ebd71e02114989a9996d3ff Merge: 31ade3b 9949890 Author: Arnd Bergmann Date: Tue Dec 15 18:12:29 2015 +0100 Merge tag 'arm-soc/for-4.5/soc' of http://github.com/Broadcom/stblinux into next/soc Merge "Broadcom soc changes for v4.5" from Florian Fainelli: This pull request contains Broadcom SoC changes for 4.5, with the following changes: - Lucas Stach removes the workaround for an imprecise fault for Broadcom BCM5301x SoCs (Northstar) since this is now handled by the ARM/Linux kernel directly - Hauke Merthens enables a bunch of erratas for the Cortex-A9 and PL310 L2 cache present on early Northstar chips (BCM4708) - Kapil Hali adds SMP support for the Northstar Plus SoCs by consolidating the existing SMP code for Kona SoCs (mobile platforms), fixng the Device Tree binding for the Kona platforms (wrong placement for 'enable-method' and 'secondary-reg') and then finally adds the functional code for the Northstar Plus platforms to boot their secondary CPUs - Jon Mason enables SMP on BCM4708/BCM5301X (Northstar SoCs) by building the generic Northstar/Northstar Plus SMP code, and adding the relevant SMP Device Tree nodes * tag 'arm-soc/for-4.5/soc' of http://github.com/Broadcom/stblinux: ARM: BCM: Add SMP support for Broadcom 4708 ARM: BCM: Add SMP support for Broadcom NSP ARM: BCM: Clean up SMP support for Broadcom Kona ARM: BCM5310X: activate erratas needed for SoC ARM: BCM5301X: remove workaround imprecise abort fault handler commit 971c67ce37cfeeaf560e792a2c3bc21d8b67163a Author: James Morse Date: Tue Dec 15 11:21:25 2015 +0000 arm64: reduce stack use in irq_handler The code for switching to irq_stack stores three pieces of information on the stack, fp+lr, as a fake stack frame (that lets us walk back onto the interrupted tasks stack frame), and the address of the struct pt_regs that contains the register values from kernel entry. (which dump_backtrace() will print in any stack trace). To reduce this, we store fp, and the pointer to the struct pt_regs. unwind_frame() can recognise this as the irq_stack dummy frame, (as it only appears at the top of the irq_stack), and use the struct pt_regs values to find the missing interrupted link-register. Suggested-by: Will Deacon Signed-off-by: James Morse Signed-off-by: Will Deacon arch/arm64/include/asm/irq.h | 11 ++++------- arch/arm64/kernel/entry.S | 12 +++++++----- arch/arm64/kernel/stacktrace.c | 19 ++++++++++++++++--- 3 files changed, 27 insertions(+), 15 deletions(-) commit ee5d89239500de9eff188c26375c3512d8ac7f6f Merge: 28295a8 f6b8893 Author: Arnd Bergmann Date: Tue Dec 15 18:07:19 2015 +0100 Merge tag 'arm-soc/for-4.5/devicetree' of http://github.com/Broadcom/stblinux into next/dt Pull "Broadcom devicetree changes for v4.5¨ from Florian Fainelli: This pull request contains the Broadcom ARM-based Device Tree changes for 4.5: - Jon Mason enables the following for Broadcom Northstar Plus SoCs: PCI (using iProc PCI), NAND flash controller (BRCMNAND), TWD Timer and Watchdog (Cortex-A9), I2C (iProc), clock providers, does some Device Tree cleanups (re-parenting, fixing register sizes and hierarchy) - Jon Mason also adds support for some reference Broadcom Northstar reference designs like the BCM5301X SVK reference boards, updates the existing binding documentation to cover the Northstar chips: 4708, 4709 and 53012. - Pramod Kumar adds the GPIO to pinctrl mapping for the Broadcom Northstar Plus SoCs - Yendapally Reddy Dhananjaya Reddy adds pinctrl Device Tree nodes for the Broadcom Northstar Plus SoCs device tree nodes - Ray Jui adds Cygnus PCIe PHY Device Tree nodes and enables MSI for the iProc PCI controller on Cygnus platforms - Kapil Hali adds SMP binding documentation and Device Tree nodes for the Northstar Plus SoCs - Florian Fainelli adds clock provider support for the Broadcom BCM63138 DSL SoCs by utilizing the existing iProc ARM PLL controller, this includes a stable topic branch from Stephen Boyd to be merged - Rafal Milecki adds missing LEDs for the Netgear R8000 router * tag 'arm-soc/for-4.5/devicetree' of http://github.com/Broadcom/stblinux: ARM: dts: Enable MSI support for Broadcom Cygnus ARM: dts: Add SMP support for Broadcom NSP dt-bindings: add SMP enable-method for Broadcom NSP ARM: dts: enable pinctrl for Broadcom NSP ARM: dts: enable PCIe PHY support for Cygnus ARM: dts: Cygnus: define ngpios property in gpio controller's node ARM: BCM5301X: Add missing Netgear R8000 LEDs ARM: dts: BCM63xx: Add ARMPLL device tree nodes clk: bcm: Add BCM63138 clock support clk: iproc: Extend binding to cover BCM63138 ARM: dts: enable clock support for Broadcom NSP ARM: dts: enable clock support for BCM5301X ARM: dts: NSP: Add I2C support to the DT ARM: dts: NSP: Device Tree clean-ups dts: pinctrl: Add GPIO to Pinctrl pin mapping in DT ARM: dts: bcm5301x: Add BCM SVK DT files dt-bindings: Add new SoCs to bcm4708 DT bindings ARM: dts: NSP: Add TWD Support to DT ARM: dts: NSP: Add NAND Support to DT ARM: dts: NSP: Add PCI support commit a7159a3ff4360d048293b5c9f37053eb321bb655 Merge: 335b320 272c447 Author: David S. Miller Date: Tue Dec 15 11:58:25 2015 -0500 Merge branch 'mlxsw-bridge-vlan-offloading' Ido Schimmel says: ==================== This patchset introduces support for the offloading of 802.1D bridges between VLAN devices. These can either be VLAN devices configured on top of the physical ports or on top of LAG devices. Patches 1-2 deal with the necessary infrastructure changes needed in order to enable the above. The main change is that switchdev drivers can now know the device from which the switchdev op originated from. Patches 3-10 lay the groundwork for 802.1D bridges support in the mlxsw driver, with patch 4 doing most of the heavy lifting. Patch 11 finally offloads these bridges to hardware by listening to the notifications sent when the VLAN device joins or leaves a bridge. It is very similar to the already existing 802.1Q bridge we support. Patches 12-14 add minor modifications to allow one to bridge a VLAN device configured on top of LAG. ==================== Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit 272c447017df1bbd68e46efad8178c3e449b03ed Author: Ido Schimmel Date: Tue Dec 15 16:03:47 2015 +0100 mlxsw: spectrum: Add support for VLAN devices on top of LAG When creating a VLAN device on top of LAG, we are basically creating a vPort on top of each of the port netdevs member in the LAG. Therefore, these vPorts should inherit both the LAG status and LAG ID from the underlying port netdevs. In addition, when the VLAN device joins or leaves a bridge each of the underlying vPorts should know about it and act accordingly. This is achieved by propagating the VLAN event down to the lower devices. Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 32 +++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) commit 64771e31ce5a682c597bccae41f7641252b91fbe Author: Ido Schimmel Date: Tue Dec 15 16:03:46 2015 +0100 mlxsw: spectrum: Enable FDB records for VLAN devices on top of LAG When adding or removing FDB records of VLAN devices on top of LAG we should set the lag_vid parameter to the VLAN ID of the VLAN device. It is reserved otherwise. Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller .../ethernet/mellanox/mlxsw/spectrum_switchdev.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) commit afd7f979b27b6ae263d7d5c1e81ab02b8830eb74 Author: Ido Schimmel Date: Tue Dec 15 16:03:45 2015 +0100 mlxsw: reg: Add lag_vid field to SFD register Unicast LAG records in the Switch Filtering Database (SFD) register have a lag_vid field indicating the VLAN ID in case of vFIDs. This field is no longer reserved since we are going to add support for VLAN devices on top of LAG. Add the lag_vid field to be used by VLAN devies on top of LAG. Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/reg.h | 10 +++++++++- drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) commit 26f0e7fb15de53da4d3b1ac7d389525cccd6421a Author: Ido Schimmel Date: Tue Dec 15 16:03:44 2015 +0100 mlxsw: spectrum: Add support for VLAN devices bridging All the member VLAN devices in a bridge need to share the same vFID. To achieve that, expand the vFID struct to include the associated bridge device (or lack of) and allow one to lookup a vFID based on a bridge device. When joining a bridge, lookup the relevant vFID or create one if none exists. Next, make the VLAN device use the vFID. Leaving a bridge can either occur because a user removed the VLAN device from a bridge or because the VLAN device was deleted by the user. In the latter case the bridge's teardown sequence is invoked after the hardware vPort is already gone. Therefore, when unlinking the VLAN device from the real device, check if the associated vPort is bridged and act accordingly. The bridge's notification will be ignored in this case. Note that bridging a VLAN interface with an ordinary port netdev is currently not supported, but not forbidden. This will be addressed in a follow-up patchset. Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 358 +++++++++++++++++++++ drivers/net/ethernet/mellanox/mlxsw/spectrum.h | 11 + .../ethernet/mellanox/mlxsw/spectrum_switchdev.c | 10 +- 3 files changed, 378 insertions(+), 1 deletion(-) commit 9589a7b5d7d9172b7849031377e0bd581ee055c2 Author: Ido Schimmel Date: Tue Dec 15 16:03:43 2015 +0100 mlxsw: spectrum: Handle VLAN devices linking / unlinking When a VLAN interface is configured on top of a physical port we should associate the VLAN device with the matching vPort. Likewise, when it's removed, we should revert back to the underlying port netdev. While not a must, this is consistent with port netdevs and also provides a more accurate error printing via netdev_err() and friends. Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 54 ++++++++++++++++++++++++-- 1 file changed, 51 insertions(+), 3 deletions(-) commit aac78a44088728f0712eaea74fbb2493e12080dd Author: Ido Schimmel Date: Tue Dec 15 16:03:42 2015 +0100 mlxsw: spectrum: Adjust FDB notifications for VLAN devices FDB notifications contain the FID and port (or LAG ID) on which the MAC was learned. In the case of the 802.1Q bridge one can easily derive the matching VID - as FID equals VID - and generate the appropriate notification for the software bridge. With VLAN devices this is no longer the case, as these are associated with a vFID. Solve that by converting the FID to a vFID and lookup the matching VLAN device. From that derive the VID and whether learning (and learning sync) should occur. Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum.h | 25 ++++++++++++++ .../ethernet/mellanox/mlxsw/spectrum_switchdev.c | 40 +++++++++++++++++++--- 2 files changed, 61 insertions(+), 4 deletions(-) commit 54a732018d8e016e899817eda4af517729e0571c Author: Ido Schimmel Date: Tue Dec 15 16:03:41 2015 +0100 mlxsw: spectrum: Adjust switchdev ops for VLAN devices switchdev ops can now be called for VLAN devices and we need to be prepared for it. Until now they were only called for the port netdev. Use the newly propagated orig_dev passed as part of the switchdev attr/obj and determine whether the original device is a VLAN device. If so, act accordingly, otherwise continue as usual. Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/Kconfig | 2 +- .../ethernet/mellanox/mlxsw/spectrum_switchdev.c | 100 ++++++++++++++++++++- 2 files changed, 98 insertions(+), 4 deletions(-) commit 9de6a80e061238d0c1765e0b8d71bd22116edd9d Author: Ido Schimmel Date: Tue Dec 15 16:03:40 2015 +0100 mlxsw: spectrum: Use FID instead of VID when accessing FDB In the Spectrum ASIC - unlike SwitchX-2 - FDB access is done by specifying FID as parameter and not VID. Change the relevant variables and parameters names to reflect that. Note that this was OK up until now, since FID was always equal to VID, but with the introduction of VLAN interfaces this is no longer the case. Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/reg.h | 12 +++--- .../ethernet/mellanox/mlxsw/spectrum_switchdev.c | 50 ++++++++++++---------- 2 files changed, 34 insertions(+), 28 deletions(-) commit 19ae61241485981aa4fae5d494923a27e4d00fba Author: Ido Schimmel Date: Tue Dec 15 16:03:39 2015 +0100 mlxsw: spectrum: Add another flood table for vFIDs We previously used only one flood table for packets classified to vFIDs. However, since we are going to add support for bridges between VLAN interfaces (mapped to vFIDs) we need to add one more flood table. That way we can separate the flooding domain of unknown unicast traffic from all the rest and support flood control (as we do with the 802.1Q bridge). Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 36 ++++++++-------------- drivers/net/ethernet/mellanox/mlxsw/spectrum.h | 2 +- .../ethernet/mellanox/mlxsw/spectrum_switchdev.c | 5 +-- 3 files changed, 16 insertions(+), 27 deletions(-) commit c06a94ef61b920f2c2374f1195db982c835b651a Author: Ido Schimmel Date: Tue Dec 15 16:03:38 2015 +0100 mlxsw: spectrum: Use appropriate parameter name The __mlxsw_sp_port_flood_set function is now used to configure flooding for both FIDs and vFIDs, so change the parameter name to 'idx' instead of 'fid'. This is also consistent with hardware documentation. Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 7f71eb46a4858499e6e1be796786a6a1a8d685e5 Author: Ido Schimmel Date: Tue Dec 15 16:03:37 2015 +0100 mlxsw: spectrum: Split vFID range in two Up until now we used a 1:1 mapping - based on VID - to map a VLAN interface to a vFID. However, a different scheme is needed in order to support bridges between VLAN interfaces, as all the member interfaces - which can have different VIDs - need to share the same vFID. Solve that by splitting the vFID range in two: 1. Non-bridged VLAN interfaces 2. Bridged VLAN interfaces When a VLAN interface is created, assign it the next available vFID in the first range, unless one already exists for that VID or number of vFIDs in the range was exceeded. When interface is removed, free the vFID, unless other interfaces are mapped to it. To accomplish the above: 1. Store the VID to vFID mapping in a new struct (mlxsw_sp_vfid), which has a global context and holds a reference count. 2. Create a vPort (dummy in case of bridge SELF invocation) on top of of the physical port and hold a reference to the associated vFID. vfid vfid +-------------+ +-------------+ | vfid | | vfid | | vid +---> ... | vid | | nr_vports | | nr_vports | +------+------+ +------+------+ | +-----------------------+-------+ | | vport vport +-------------+ +-------------+ | ... | | ... | | *vfid +---> ... | *vfid +---> ... | ... | | ... | +------+------+ +------+------+ | | port port +-------------+ +-------------+ | ... | | ... | | vports_list | | vports_list | | ... | | ... | +-------------+ +-------------+ swXpY swXpZ Next patches in the series will add the missing infrastructure for the second range and transfer vPorts between the two ranges according to the received notifications. Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 294 ++++++++++++++------- drivers/net/ethernet/mellanox/mlxsw/spectrum.h | 64 ++++- .../ethernet/mellanox/mlxsw/spectrum_switchdev.c | 28 +- 3 files changed, 287 insertions(+), 99 deletions(-) commit bd40e9d6d5386d08ae1e54f28444f3e98c23485c Author: Ido Schimmel Date: Tue Dec 15 16:03:36 2015 +0100 mlxsw: spectrum: Allocate active VLANs only for port netdevs When adding support for bridges between VLAN interfaces, we'll introduce a new entity called a vPort, which is a represntation of the VLAN interface in the hardware. The main difference between a vPort and a physical port is that several FIDs can be bound to the latter, whereas only one (called a vFID) can be bound to the first. Therefore, it makes sense to use the same struct to represent the two, but to only allocate the 'active_vlans' bitmap in case of a physical port. Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 10 ++++++++++ drivers/net/ethernet/mellanox/mlxsw/spectrum.h | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) commit 6ff64f6f9242d7e50f3e99cb280f69d1927a5fa6 Author: Ido Schimmel Date: Tue Dec 15 16:03:35 2015 +0100 switchdev: Pass original device to port netdev driver switchdev drivers need to know the netdev on which the switchdev op was invoked. For example, the STP state of a VLAN interface configured on top of a port can change while being member in a bridge. In this case, the underlying driver should only change the STP state of that particular VLAN and not of all the VLANs configured on the port. However, current switchdev infrastructure only passes the port netdev down to the driver. Solve that by passing the original device down to the driver as part of the required switchdev object / attribute. This doesn't entail any change in current switchdev drivers. It simply enables those supporting stacked devices to know the originating device and act accordingly. Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller include/net/switchdev.h | 2 ++ net/bridge/br_fdb.c | 1 + net/bridge/br_stp.c | 2 ++ net/bridge/br_stp_if.c | 1 + net/bridge/br_vlan.c | 2 ++ net/core/net-sysfs.c | 1 + net/core/rtnetlink.c | 1 + net/switchdev/switchdev.c | 12 ++++++++++++ 8 files changed, 22 insertions(+) commit 9d547833f02fb8b52ab824adae8f850f3c22fd4f Author: Ido Schimmel Date: Tue Dec 15 16:03:34 2015 +0100 switchdev: vlan: Use switchdev_port* in vlan_netdev_ops We need to be able to propagate static FDB entries and certain bridge port attributes (e.g. learning, flooding) down to the port netdev driver when bridge port is a VLAN interface. Achieve that by setting ndo_bridge* and ndo_fdb* in vlan_netdev_ops to the corresponding switchdev_port* functions. This is consistent with team and bond devices. Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller net/8021q/vlan_dev.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 3b47a9fced45dd3b0dd3e540ad5ca88c4d1e5747 Merge: 31ade3b 9c2abe2 Author: Arnd Bergmann Date: Tue Dec 15 17:58:18 2015 +0100 Merge tag 'arm-soc/for-4.5/maintainers' of http://github.com/Broadcom/stblinux into next/fixes-non-critical Merge "Broadcom devicetree changes for v4.5" from Florian Fainelli: This pull request contains MAINTAINERS updates for Broadcom SoCs: - Florian Fainelli adds bcm-kernel-feedback-list for all Broadcom Set-Top Box SoCs submissions and removes a stray '>' for the gpio-brcmstb section * tag 'arm-soc/for-4.5/maintainers' of http://github.com/Broadcom/stblinux: MAINTAINERS: gpio-brcmstb: Remove stray '>' MAINTAINERS: brcmstb: Include Broadcom internal mailing-list commit 0c3ef539436588f9af910d1449ec70a91fcc5c8f Author: Enric Balletbo i Serra Date: Tue Dec 15 09:20:51 2015 +0100 ARM: multi_v7_defconfig: Enable Rockchip generic power domain. In order to meet high performance an low power requirement for Rockchip enable the power domain support. The patch also fixes a drm/kms issue, driver deferring untils power-domains are available) Signed-off-by: Enric Balletbo i Serra Reviewed-by: Heiko Stuebner Signed-off-by: Arnd Bergmann arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit 8b44f5be20fd531054e546b662f46e619bff2e72 Author: Sudeep Holla Date: Wed Oct 21 11:10:14 2015 +0100 ARM: dts: armada: replace isil, irq2-can-wakeup-machine with wakeup-source property Though the driver will continue to check for and support the legacy "isil,irq2-can-wakeup-machine" boolean property to wakeup source, "wakeup-source" is the new standard binding. This patch replaces the legacy "isil,irq2-can-wakeup-machine" with the unified "wakeup-source" property in order to avoid any futher copy-paste duplication. Cc: Jason Cooper Cc: Andrew Lunn Cc: Gregory Clement Cc: Sebastian Hesselbarth Signed-off-by: Sudeep Holla Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/armada-370-netgear-rn102.dts | 2 +- arch/arm/boot/dts/armada-370-netgear-rn104.dts | 2 +- arch/arm/boot/dts/armada-xp-netgear-rn2120.dts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 7af0d32ac43c84c6f01e8a215898ffba507596eb Merge: 00b6351 9369922 Author: Arnd Bergmann Date: Tue Dec 15 17:53:37 2015 +0100 Merge tag 'socfpga_defconfig_for_v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into next/defconfig Merge "SoCFPGA defconfig update for v4.5" from Dinh Nguyen: -Enable USB OTG dual-role and some cleanup by make savedefconfig * tag 'socfpga_defconfig_for_v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux: arm: socfpga_defconfig: enable USB dual-role and cleanup commit 00b6351e76dce79aa3ace526954a15dc6027b2c2 Author: Linus Walleij Date: Thu Dec 10 13:24:54 2015 +0100 ARM: realview: add generic config options This adds a few features that are available on some or all of the RealView but never made it into the SMP defconfig file: - Full tickless idle - High resolution timers - Perf events and HW perf events from the PMU - MTD AFS partition handling - MTD ROM partition handling - USB and ISP1760 USB driver Signed-off-by: Linus Walleij Signed-off-by: Arnd Bergmann arch/arm/configs/realview-smp_defconfig | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 7ad67257087518693ef3f294c9e503e43cc06b4a Author: Linus Walleij Date: Thu Dec 10 13:27:59 2015 +0100 ARM: realview: add generic config options This adds a few features that are available on some or all of the RealView but never made it into the defconfig file: - High-resolution timers - Perf events and HW perf events from the PMU - MTD AFS partition handling - MTD ROM partition handling - USB and ISP1760 USB driver Signed-off-by: Linus Walleij Signed-off-by: Arnd Bergmann arch/arm/configs/realview_defconfig | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 953bfb8ff6dc13cd79e41cc5c9c4cf6b68b0126a Author: Linus Walleij Date: Thu Dec 10 13:16:22 2015 +0100 ARM: realview: update SMP defconfig This updates the RealView SMP defconfig with the latest Kconfig structure. Signed-off-by: Linus Walleij Signed-off-by: Arnd Bergmann arch/arm/configs/realview-smp_defconfig | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) commit b244b569476db125b0c4ef9603b5adbb7506cfa8 Author: Linus Walleij Date: Thu Dec 10 13:15:03 2015 +0100 ARM: realview: refresh defconfig This updates the RealView defconfig with the latest Kconfig structure. Signed-off-by: Linus Walleij Signed-off-by: Arnd Bergmann arch/arm/configs/realview_defconfig | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) commit ce9981bd633213ff7c5938b1a374561b5a687d46 Author: Russell King Date: Tue Dec 15 17:38:03 2015 +0100 ARM: dts: enable GPU for SolidRun's Cubox Enable the GPU for SolidRun's Cubox. Signed-off-by: Russell King Signed-off-by: Lucas Stach Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/dove-cubox.dts | 8 ++++++++ 1 file changed, 8 insertions(+) commit 6c72d8ab263a3f2f28ec3360cca60bfec9bf2a5c Author: Russell King Date: Tue Dec 15 17:38:02 2015 +0100 ARM: dts: dove: add DT GPU support Add DT support for the Vivante GC600 GPU on Marvell Dove platforms. These nodes default to being disabled unless a platform decides they should be enabled. Signed-off-by: Russell King Signed-off-by: Lucas Stach Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/dove.dtsi | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit b02ec7658c98217e00513991d1057e74efef3e7f Author: Alison Wang Date: Wed Dec 9 16:41:39 2015 +0800 ARM: multi_v7_defconfig: Enable some drivers for LS1021A This patch enables some drivers for LS1021A, such as GIANFAR, WATCHDOG, AUDIO, QSPI, I2C, ESDHC, EDMA, FTM. QorIQ Clock Framework and Ramdisk support is also enabled. Signed-off-by: Alison Wang Signed-off-by: Arnd Bergmann arch/arm/configs/multi_v7_defconfig | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit e9293d92bef1b0ff84c3c3b387727d5cdcfa8a71 Merge: 1741c73 ab8d80e Author: Arnd Bergmann Date: Tue Dec 15 17:44:49 2015 +0100 Merge tag 'mvebu-defconfig-4.5-2' of git://git.infradead.org/linux-mvebu into next/defconfig Merge "mvebu defconfig for 4.5 (part 2)" from Gregory CLEMENT: - Reenable DSA in mvebu_v5_defconfig - Update multi_v5_defconfig after adding Orion5x to multiarch * tag 'mvebu-defconfig-4.5-2' of git://git.infradead.org/linux-mvebu: ARM: mvebu: update v5 defconfig for Orion5x machines ARM: mvebu: Reenable DSA in mvebu_v5_defconfig ARM: config: Add orion5x to multi_v5_defconfig ARM: config: Reenable DSA in multi_v5_defconfig ARM: config: Regenerate multi_v5_defconfig commit 335b320940ef938c39e68eb363d26096c260057e Merge: 5833e05 0a8047a Author: David S. Miller Date: Tue Dec 15 11:44:29 2015 -0500 Merge branch '1GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== 1GbE Intel Wired LAN Driver Updates 2015-12-14 This series contains updates to e1000e and igb. Alex Duyck changes e1000_up() to void since it always returned 0, also by making it void, we can drop some code since we no longer have to worry about non-zero return values. Aaron Sierra removes GS40G specific defines and functions since the i210 internal PHY can be accessed with the access functions shared by 82580, i350 and i354 devices. Also removes the code to add the PHY address into the PCDL register address, since there is no real reason to do so. Joe updates the cable length function reports all four pairs true min, max and average cable length for i210. Also updated ethtool to use enum-based labels instead of hard coded values. Benjamin Poirier cleans up code that is never reachable since MSI-X interrupts are not shared in e1000e. Also removes the ICR read in the other interrupt handler, since the information is not needed and IMS is configured such that the only link status change can trigger the other interrupt handler. Fixed in MSI-X mode, there is no handler for the LSC interrupt so there is no point in writing that to ICS now that we always assume other interrupts are caused by LSC. ==================== Signed-off-by: David S. Miller commit 1741c73579d7639f27b0ee353771ea47830d926b Merge: 0ae102c 263350a Author: Arnd Bergmann Date: Tue Dec 15 17:43:36 2015 +0100 Merge tag 'sunxi-defconfig-for-4.5' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux into next/defconfig Merge "Allwinner defconfig changes for 4.5" from Maxime Ripard: A bunch of patches to enable new drivers related to Allwinner SoCs. * tag 'sunxi-defconfig-for-4.5' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux: ARM: sunxi: Clean up sunxi_defconfig ARM: sunxi: Really enable LRADC keys in sunxi_defconfig ARM: sunxi: Re-enable SID driver in sunxi_defconfig ARM: sunxi: Re-enable SID driver in multi_v7_defconfig ARM: multi_v7_defconfig: Enable RSB and AXP20X related drivers as modules ARM: sunxi_defconfig: Update MFD_AXP20X symbol and enable MFD_AXP20X_RSB commit 0ae102c64c3b17370d6660d18d5ec1fee8ffd96c Merge: 5502acf a063836 Author: Arnd Bergmann Date: Tue Dec 15 17:42:32 2015 +0100 Merge tag 'mvebu-defconfig-4.5-1' of git://git.infradead.org/linux-mvebu into next/defconfig Merge "mvebu defconfig for 4.5 (part 1)" from Gregory CLEMENT: update of mvebu_v5 defconfig with the addition of cpuidle * tag 'mvebu-defconfig-4.5-1' of git://git.infradead.org/linux-mvebu: ARM: mvebu: add Kirkwood cpuidle to defconfig ARM: mvebu: update v5 defconfig commit d7e4859100e351a31aec13490d5f1d77aa8ca92e Merge: 4ce5219 c993e09 Author: Arnd Bergmann Date: Tue Dec 15 17:39:53 2015 +0100 Merge tag 'arm-soc/for-4.5/cleanup' of git://git.infradead.org/linux-mtd into next/cleanup Merge "MTD/NAND cleanups for v4.5" from Brian Norris: Two changes for NAND/MTD refactoring. The mtd_to_nand() helper will allow us to stop using mtd->priv for NAND drivers. * tag 'arm-soc/for-4.5/cleanup' of git://git.infradead.org/linux-mtd: ARM: nand: make use of mtd_to_nand() where appropriate mtd: nand: add an mtd_to_nand() helper commit 4ce5219554bd84bc1b39ffeff76713946a0258ba Merge: 60f9297 843cd36 Author: Arnd Bergmann Date: Tue Dec 15 17:36:20 2015 +0100 Merge tag 'mvebu-cleanup-4.5-1' of git://git.infradead.org/linux-mvebu into next/cleanup Merge "mvebu cleanup for 4.5 (part 1)" from Gregory CLEMENT: remove unused mach/gpio.h in mach-mvebu * tag 'mvebu-cleanup-4.5-1' of git://git.infradead.org/linux-mvebu: ARM: mvebu: remove unused mach/gpio.h commit 18165f6f6570318ad0bb1e60c2ae597cdfd09a50 Author: Simon Wunderlich Date: Sat Aug 8 02:01:50 2015 +0200 batman-adv: rename equiv/equal or better to similar or better Since the function applies a threshold and also slightly worse values are accepted, ''equal or better'' does not represent the intention of the function. ''Similar or better'' represents that better. Signed-off-by: Simon Wunderlich Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/bat_iv_ogm.c | 8 ++++---- net/batman-adv/main.c | 2 +- net/batman-adv/routing.c | 6 +++--- net/batman-adv/types.h | 6 +++--- 4 files changed, 11 insertions(+), 11 deletions(-) commit 4ff1e2a738c2c954ea2c0d6a7c2b06056d8d3849 Author: Marek Lindner Date: Tue Aug 4 21:09:58 2015 +0800 batman-adv: update last seen field of single hop originators Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/bat_iv_ogm.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 7587405ab93e5383e64ac311f460c30a02a8e9cb Author: Marek Lindner Date: Tue Aug 4 21:09:57 2015 +0800 batman-adv: export single hop neighbor list via debugfs Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/bat_iv_ogm.c | 53 +++++++++++++++++++++++++++++++++++++++++++++ net/batman-adv/debugfs.c | 9 ++++++++ net/batman-adv/originator.c | 34 +++++++++++++++++++++++++++++ net/batman-adv/originator.h | 2 ++ net/batman-adv/types.h | 2 ++ 5 files changed, 100 insertions(+) commit 8248a4c7c866a9c15b6b379ca98aa8c95363f502 Author: Marek Lindner Date: Tue Aug 4 21:09:56 2015 +0800 batman-adv: add bat_hardif_neigh_init algo ops call Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/originator.c | 4 ++++ net/batman-adv/types.h | 2 ++ 2 files changed, 6 insertions(+) commit cef63419f7dbd52e535d1932a88904b3facb1546 Author: Marek Lindner Date: Tue Aug 4 21:09:55 2015 +0800 batman-adv: add list of unique single hop neighbors per hard-interface Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/hard-interface.c | 4 + net/batman-adv/originator.c | 157 ++++++++++++++++++++++++++++++++++++++++ net/batman-adv/originator.h | 5 ++ net/batman-adv/types.h | 22 ++++++ 4 files changed, 188 insertions(+) commit 030ee5f648e2c4e04bfa870b622a359e1040e591 Author: Antonio Quartulli Date: Sat Nov 7 19:20:34 2015 +0100 Doc: update email address My personal email address has changed. Update it in the doc files Signed-off-by: Antonio Quartulli Documentation/ABI/testing/sysfs-class-net-mesh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ca8e940c78f5a5a8ae91f6b0894850d0abbb8401 Author: Antonio Quartulli Date: Sat Nov 7 19:20:34 2015 +0100 MAINTAINERS: update email address My personal email address has changed. Update it in the MAINTAINERS file Signed-off-by: Antonio Quartulli MAINTAINERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b6e30a4705dbb7d0212eba1ff780a072f20ecca1 Author: Linus Walleij Date: Mon Dec 14 15:32:55 2015 +0100 ARM: mvebu: kirkwood: add PogoPlug series 4 device tree This adds a device tree for the CloudEngines PogoPlug series 4 NAS device. Inspired by out-of-tree boardfiles from ArchLinux by Kevin Mihelich. Cc: Moonman Cc: Kevin Mihelich Signed-off-by: Linus Walleij Acked-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/kirkwood-pogoplug-series-4.dts | 178 +++++++++++++++++++++++ 2 files changed, 179 insertions(+) commit 994a5814eb7e6cac316546989b9f69d10626dfd2 Author: Linus Walleij Date: Fri Nov 27 00:00:54 2015 +0100 ARM: mvebu: add kirkwood compatibles for cloudengine boards This adds the compatible strings for Cloudengine PogoPlug E02 and series 4. The former already has a devicetree in the kernel. Cc: devicetree@vger.kernel.org Signed-off-by: Linus Walleij Acked-by: Rob Herring Signed-off-by: Gregory CLEMENT Documentation/devicetree/bindings/arm/marvell,kirkwood.txt | 2 ++ 1 file changed, 2 insertions(+) commit 61521e3924a1c4e45f7c9d061f496b55b8210088 Author: Hans Ulli Kroll Date: Thu Dec 10 06:33:08 2015 +0100 ARM: dts: kirkwood: Add DTS for Zyxel NSA325 Add a new DTS file to support the Zyxel NSA325(v2) dual bay NAS device, based on the NSA320 DTS files. The only difference to the NSA320 device is GPIO47. This en/disables the power for the hdd in slot2, currently fixed to on. [gregory.clement@free-electrons.com: fix comment format] Signed-off-by: Hans Ulli Kroll Acked-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/kirkwood-nsa325.dts | 238 ++++++++++++++++++++++++++++++++++ 2 files changed, 239 insertions(+) commit 32e6b236d26946eb076d1450bfb8f9978f15d6b9 Author: Guenther Hutzl Date: Mon Dec 1 17:24:42 2014 +0100 KVM: s390: consider system MHA for guest storage Verify that the guest maximum storage address is below the MHA (maximum host address) value allowed on the host. Acked-by: Michael Holzheu Reviewed-by: Cornelia Huck Reviewed-by: David Hildenbrand Signed-off-by: Guenther Hutzl Signed-off-by: Dominik Dingel [adopt to match recent limit,size changes] Signed-off-by: Christian Borntraeger arch/s390/kvm/kvm-s390.c | 6 +++++- drivers/s390/char/sclp_early.c | 8 +++++++- 2 files changed, 12 insertions(+), 2 deletions(-) commit a3a92c31bf0b57ad0ca7f092a6f3a57168ba9ae2 Author: Dominik Dingel Date: Mon Dec 1 17:24:42 2014 +0100 KVM: s390: fix mismatch between user and in-kernel guest limit While the userspace interface requests the maximum size the gmap code expects to get a maximum address. This error resulted in bigger page tables than necessary for some guest sizes, e.g. a 2GB guest used 3 levels instead of 2. At the same time we introduce KVM_S390_NO_MEM_LIMIT, which allows in a bright future that a guest spans the complete 64 bit address space. We also switch to TASK_MAX_SIZE for the initial memory size, this is a cosmetic change as the previous size also resulted in a 4 level pagetable creation. Reported-by: David Hildenbrand Reviewed-by: Cornelia Huck Signed-off-by: Dominik Dingel Signed-off-by: Christian Borntraeger Documentation/virtual/kvm/devices/vm.txt | 3 ++- arch/s390/include/asm/kvm_host.h | 1 + arch/s390/include/uapi/asm/kvm.h | 2 ++ arch/s390/kvm/kvm-s390.c | 25 ++++++++++++++++++++----- arch/s390/mm/pgtable.c | 4 ++-- 5 files changed, 27 insertions(+), 8 deletions(-) commit 8335713ad08caf2c3dfcb5bc2c93d7e0276142d4 Author: Christian Borntraeger Date: Tue Dec 8 16:55:27 2015 +0100 KVM: s390: obey kptr_restrict in traces The s390dbf and trace events provide a debugfs interface. If kptr_restrict is active, we should not expose kernel pointers. We can fence the debugfs output by using %pK instead of %p. Cc: Kees Cook Reviewed-by: Cornelia Huck Signed-off-by: Christian Borntraeger arch/s390/kvm/kvm-s390.c | 9 +++++---- arch/s390/kvm/trace-s390.h | 6 +++--- 2 files changed, 8 insertions(+), 7 deletions(-) commit 5ce8cc48443596e500586007b443e1eea6334efc Author: Takashi Sakamoto Date: Tue Dec 15 23:56:21 2015 +0900 ALSA: oxfw: gather model-dependent conditions to a function Adding control elements is just for models supported by old firewire-speakers modules. The processing should be in a function to add model-dependent quirk. This commit moves the codes to the function. As a result, the function should handle error state, thus this commit also changes prototype of the function. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/oxfw/oxfw.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) commit 27e66635016fc5bd3d36355daedf741f0a7329bb Author: Takashi Sakamoto Date: Tue Dec 15 23:56:20 2015 +0900 ALSA: oxfw: reuse driver entry to detect quirks Currently, assignment to model-dependent quirk is corresponding to asynchronous transactions on IEEE 1394 bus. This is also achieved with device entry. This commit changes the processing of model-dependent quirk with the entry. As a result, the transactions are sent only for Loud models. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/oxfw/oxfw.c | 38 ++++++++++++++++++++++---------------- sound/firewire/oxfw/oxfw.h | 2 ++ 2 files changed, 24 insertions(+), 16 deletions(-) commit eab8e4e4619643f49167c2089749acc40ad7f95d Author: Takashi Sakamoto Date: Tue Dec 15 23:56:19 2015 +0900 ALSA: oxfw: change function prototype for AV/C Audio Subunit command ALSA OXFW driver uses AV/C Audio Subunit commands to control some models. The commands get/set the state of Feature function block of the subunit. The commands are not specific to OXFW, thus there's a possibility to use them in the other drivers. Currently, helper functions for the commands require 'struct snd_oxfw', although, it's not necessarily required. It's better to change prototype of the functions without the structure for future use. This commit changes the prototype. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/oxfw/oxfw-spkr.c | 54 +++++++++++++++++++++++------------------ 1 file changed, 31 insertions(+), 23 deletions(-) commit 29aa09acb20485ee682de38903734cb3a0e582cd Author: Takashi Sakamoto Date: Tue Dec 15 23:56:18 2015 +0900 ALSA: oxfw: rename local functions for control elements so that they represent as local This commit renames local functions with prefix 'spkr_', so that they're for firewire-speakers. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/oxfw/oxfw-spkr.c | 40 ++++++++++++++++++++-------------------- sound/firewire/oxfw/oxfw.c | 2 +- sound/firewire/oxfw/oxfw.h | 4 ++-- 3 files changed, 23 insertions(+), 23 deletions(-) commit f3a0e32a6f6005f775174cbed9e46f7691800709 Author: Takashi Sakamoto Date: Tue Dec 15 23:56:17 2015 +0900 ALSA: oxfw: rename a file for control elements so that it's for model-specific In ALSA firewire stack, drivers basically has no control elements. This is due to the fact that each model has own functionality even if they use the same communication chipset. Implementing all of the functionalities in kernel space unreasonably increases our efforts to maintain the stack. In most case, these functionalities can be implemented in userspace via Linux fw character devices. However, ALSA OXFW driver has control elements comes from old firewire-speakers driver. Adding the elements is in a file names as 'oxfw-control.c', while the elements are really model-specific. The name is confusing because it gives an idea to handle control elements for all of OXFW-based models. This commit renames the file so that it's just for models supported by old firewire-speakers driver. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/oxfw/Makefile | 4 +- sound/firewire/oxfw/oxfw-control.c | 283 ------------------------------------- sound/firewire/oxfw/oxfw-spkr.c | 283 +++++++++++++++++++++++++++++++++++++ 3 files changed, 285 insertions(+), 285 deletions(-) commit 375da6271b685e97d2d936fffa6e405b93674c26 Author: Geert Uytterhoeven Date: Fri Dec 4 17:04:25 2015 +0100 usb: phy: Remove unused Renesas R-Car (Gen1) USB PHY driver As of commit 3d7608e4c169af03 ("ARM: shmobile: bockw: remove legacy board file and config"), the Renesas R-Car (Gen1) USB PHY driver is no longer used. In theory it could still be used on R-Car Gen1 SoCs, but that would require adding DT support to the driver. Instead, a new driver using the generic PHY framework should be written, as was done for R-Car Gen2. Remove the driver for good. Acked-by: Simon Horman Signed-off-by: Geert Uytterhoeven Signed-off-by: Felipe Balbi drivers/usb/phy/Kconfig | 13 -- drivers/usb/phy/Makefile | 1 - drivers/usb/phy/phy-rcar-usb.c | 247 ----------------------------- include/linux/platform_data/usb-rcar-phy.h | 28 ---- 4 files changed, 289 deletions(-) commit 2de59c09feb735874ea38c29d396b13e46dd0a69 Author: Vladimir Zapolskiy Date: Tue Dec 8 02:31:13 2015 +0200 usb: gadget: lpc32xxx_udc: clean up and sort include directives out Remove mach/irq.h from the list of included headers, there is no compilation dependency on this include file, and the change is needed to prevent a compilation failure, when mach/irq.h is removed. Additionally remove other unneeded includes and sort out their order. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/lpc32xx_udc.c | 35 +++++++++++------------------------ 1 file changed, 11 insertions(+), 24 deletions(-) commit 46a01427e969e53d993b988ebbdb8c7c3562b66f Author: Felipe Balbi Date: Thu Dec 3 15:27:32 2015 -0600 usb: dwc3: trace: show request flags struct usb_request have 3 flags which might be important to know about during debug. This patch shows each of the 3 flags as a single letter: z -> for zero s -> short not okay i -> interrupt A capital letter means the feature is enabled while a lower case letter means it is disabled; Thus 'zsI' indicates that a ZLP is not needed, that we can accept a short packet and interrupt for this request should be enabled. Signed-off-by: Felipe Balbi drivers/usb/dwc3/trace.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 04c03d10e507052cfce6910ddf34091196e79e1c Author: Felipe Balbi Date: Wed Dec 2 10:06:45 2015 -0600 usb: dwc3: gadget: handle request->zero So far, dwc3 has always missed request->zero handling for every endpoint. Let's implement that so we can handle cases where transfer must be finished with a ZLP. Note that dwc3 is a little special. Even though we're dealing with a ZLP, we still need a buffer of wMaxPacketSize bytes; to hide that detail from every gadget driver, we have a preallocated buffer of 1024 bytes (biggest bulk size) to use (and share) among all endpoints. Reported-by: Ravi B Signed-off-by: Felipe Balbi drivers/usb/dwc3/core.h | 3 +++ drivers/usb/dwc3/gadget.c | 50 +++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 51 insertions(+), 2 deletions(-) commit 3ff4b5733ba70f77b84272b01bfe5937218b1301 Author: Rasmus Villemoes Date: Fri Nov 27 11:38:21 2015 +0100 usb: musb: convert printk to pr_* This file already uses pr_debug in a few places; this converts the remaining printks. Signed-off-by: Rasmus Villemoes Signed-off-by: Felipe Balbi drivers/usb/musb/musb_core.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) commit 29539019b46f0e5f64f80f2e9dc8f9bb34d16b4b Author: Douglas Anderson Date: Fri Nov 20 09:06:28 2015 -0800 usb: dwc2: host: Clear interrupts before handling them In general it is wise to clear interrupts before processing them. If you don't do that, you can get: 1. Interrupt happens 2. You look at system state and process interrupt 3. A new interrupt happens 4. You clear interrupt without processing it. This patch was actually a first attempt to fix missing device insertions as described in (usb: dwc2: host: Fix missing device insertions) and it did solve some of the signal bouncing problems but not all of them (which is why I submitted the other patch). Specifically, this patch itself would sometimes change: 1. hardware sees connect 2. hardware sees disconnect 3. hardware sees connect 4. dwc2_port_intr() - clears connect interrupt 5. dwc2_handle_common_intr() - calls dwc2_hcd_disconnect() ...to: 1. hardware sees connect 2. hardware sees disconnect 3. dwc2_port_intr() - clears connect interrupt 4. hardware sees connect 5. dwc2_handle_common_intr() - calls dwc2_hcd_disconnect() ...but with different timing then sometimes we'd still miss cable insertions. In any case, though this patch doesn't fix any (known) problems, it still seems wise as a general policy to clear interrupt before handling them. Note that for dwc2_handle_usb_port_intr(), instead of moving the clear of PRTINT to the beginning of the function we remove it completely. The only way to clear PRTINT is to clear the sources that set it in the first place. Signed-off-by: Douglas Anderson Signed-off-by: Felipe Balbi drivers/usb/dwc2/core_intr.c | 49 +++++++++++++++++++++----------------------- drivers/usb/dwc2/hcd_intr.c | 18 ++++++++-------- 2 files changed, 32 insertions(+), 35 deletions(-) commit 4a065c7bdbec9536f7b899241b125b9c3b5ba97a Author: Douglas Anderson Date: Fri Nov 20 09:06:27 2015 -0800 usb: dwc2: host: Add missing spinlock in dwc2_hcd_reset_func() The dwc2_hcd_reset_func() function is only ever called directly by a delayed work function. As such no locks are already held when the function is called. Doing a read-modify-write of CPU registers and setting fields in the main hsotg data structure is a bad idea without locks. Let's add locks. The bug was found by code inspection only. It turns out that the dwc2_hcd_reset_func() is only ever called today if the "host_support_fs_ls_low_power" parameter is enabled and no code in mainline enables that parameter. Thus no known issues in mainline are fixed by this patch, but it's still probably wise to fix the function. Signed-off-by: Douglas Anderson Signed-off-by: Felipe Balbi drivers/usb/dwc2/hcd.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 98bfb39466954c69d2a448e6ddcab6d91cd48e25 Author: Bin Liu Date: Tue Nov 3 11:51:15 2015 -0600 usb: of: add an api to get dr_mode by the phy node Some USB phy drivers have different handling for the controller in each dr_mode. But the phy driver does not have visibility to the dr_mode of the controller. This adds an api to return the dr_mode of the controller which associates the given phy node. Signed-off-by: Bin Liu Signed-off-by: Felipe Balbi drivers/usb/common/common.c | 60 ++++++++++++++++++++++++++++++++++++++++----- include/linux/usb/of.h | 5 ++++ 2 files changed, 59 insertions(+), 6 deletions(-) commit fa4dce2022241f3c938372af0faf9d263061f6a9 Author: Peter Chen Date: Thu Nov 19 15:02:19 2015 +0800 usb: gadget: f_sourcesink: quit if usb_ep_queue returns error Since now, we may have more than one request during the test, and it is better we just quit once the error occurs instead of try queueing further requests. Signed-off-by: Peter Chen Suggested-by: Krzysztof Opasiak Reviewed-by: Krzysztof Opasiak Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_sourcesink.c | 1 + 1 file changed, 1 insertion(+) commit 0aecfc1b359dffddf74bd0e0ea5ee47066d210ac Author: Igor Kotrasinski Date: Tue Oct 20 18:33:13 2015 +0200 usb: gadget: composite: remove redundant bcdUSB setting in legacy Since composite now overwrites bcdUSB for any gadget, remove setting it in legacy gadgets. All legacy gadgets set 0x0200, the same as the value additionally set by composite, so there is no behaviour change. Signed-off-by: Igor Kotrasinski Rebase onto current balbi/next Signed-off-by: Krzysztof Opasiak Signed-off-by: Felipe Balbi drivers/usb/gadget/legacy/acm_ms.c | 2 +- drivers/usb/gadget/legacy/audio.c | 2 +- drivers/usb/gadget/legacy/cdc2.c | 2 +- drivers/usb/gadget/legacy/ether.c | 2 +- drivers/usb/gadget/legacy/g_ffs.c | 2 +- drivers/usb/gadget/legacy/gmidi.c | 2 +- drivers/usb/gadget/legacy/hid.c | 2 +- drivers/usb/gadget/legacy/mass_storage.c | 2 +- drivers/usb/gadget/legacy/multi.c | 2 +- drivers/usb/gadget/legacy/ncm.c | 2 +- drivers/usb/gadget/legacy/nokia.c | 2 +- drivers/usb/gadget/legacy/printer.c | 2 +- drivers/usb/gadget/legacy/serial.c | 2 +- drivers/usb/gadget/legacy/tcm_usb_gadget.c | 2 +- drivers/usb/gadget/legacy/webcam.c | 2 +- drivers/usb/gadget/legacy/zero.c | 2 +- 16 files changed, 16 insertions(+), 16 deletions(-) commit 69b76cdff592058ea445cd40e18c75dffaba4cb9 Author: Douglas Anderson Date: Wed Nov 11 10:33:52 2015 -0800 usb: dwc2: host: Support immediate retries for split transactions In some cases, like when you've got a "Microsoft Wireless Keyboard 2000" connected to dwc2 with a hub, expected that we'll get some transfer errors sometimes. The controller is expected to try at least 3 times before giving up. See figure "Figure A-67. Normal HS CSPLIT 3 Strikes Smash" in the USB spec. The dwc2 controller has a way to support this by using the "EC_MC" field. The Raspberry Pi driver has logic for setting this right. See fiq_fsm_queue_split_transaction() in their "dwc_otg_hcd.c". Let's use the same logic. After making this change, we no longer get dropped characters from the above mentioned keyboard. Other devices on the same bus as the keyboard also behave more properly. Thanks for Julius Werner for the expert analysis and suggestions. Acked-by: John Youn Signed-off-by: Douglas Anderson Signed-off-by: Felipe Balbi drivers/usb/dwc2/core.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit 6a6595318ac2dd169d2931a1d9431a64f4ada75c Author: Douglas Anderson Date: Thu Nov 19 13:23:14 2015 -0800 usb: dwc2: host: Fix missing device insertions If you've got your interrupt signals bouncing a bit as you insert your USB device, you might end up in a state when the device is connected but the driver doesn't know it. Specifically, the observed order is: 1. hardware sees connect 2. hardware sees disconnect 3. hardware sees connect 4. dwc2_port_intr() - clears connect interrupt 5. dwc2_handle_common_intr() - calls dwc2_hcd_disconnect() Now you'll be stuck with the cable plugged in and no further interrupts coming in but the driver will think we're disconnected. We'll fix this by checking for the missing connect interrupt and re-connecting after the disconnect is posted. We don't skip the disconnect because if there is a transitory disconnect we really want to de-enumerate and re-enumerate. Notes: 1. As part of this change we add a "force" parameter to dwc2_hcd_disconnect() so that when we're unloading the module we avoid the new behavior. The need for this was pointed out by John Youn. 2. The bit of code needed at the end of dwc2_hcd_disconnect() is exactly the same bit of code from dwc2_port_intr(). To avoid duplication, we refactor that code out into a new function dwc2_hcd_connect(). Signed-off-by: Douglas Anderson Acked-by: John Youn Tested-by: John Youn Signed-off-by: Felipe Balbi drivers/usb/dwc2/core.h | 6 ++++-- drivers/usb/dwc2/core_intr.c | 4 ++-- drivers/usb/dwc2/hcd.c | 40 ++++++++++++++++++++++++++++++++++++++-- drivers/usb/dwc2/hcd_intr.c | 6 +----- 4 files changed, 45 insertions(+), 11 deletions(-) commit 37dd9d65cc41fcc7e77645a1cdf2659472809b96 Author: Zhangfei Gao Date: Wed Nov 18 15:39:47 2015 +0800 usb: dwc2: add support of hi6220 Support hisilicon,hi6220-usb for HiKey board Acked-by: Rob Herring Acked-by: John Youn Signed-off-by: Zhangfei Gao Signed-off-by: Felipe Balbi Documentation/devicetree/bindings/usb/dwc2.txt | 1 + drivers/usb/dwc2/platform.c | 33 ++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) commit 3b5fcc9ac2f4453a5609cc89ac7618b1b27ccb01 Author: Gregory Herrero Date: Fri Nov 20 11:49:31 2015 +0100 usb: dwc2: host: use kmem cache to allocate descriptors Kmem caches help to get correct boundary for descriptor buffers which need to be 512 bytes aligned for dwc2 controller. Two kmem caches are needed for generic descriptors and for hs isochronous descriptors which doesn't have same size. Acked-by: John Youn Signed-off-by: Gregory Herrero Signed-off-by: Felipe Balbi drivers/usb/dwc2/core.h | 4 ++++ drivers/usb/dwc2/hcd.c | 50 ++++++++++++++++++++++++++++++++++++++++++++- drivers/usb/dwc2/hcd_ddma.c | 20 ++++++++++++++++-- 3 files changed, 71 insertions(+), 3 deletions(-) commit e23b8a54a440a2b8ee5c9dc3eb2099ecf813ef70 Author: Mian Yousaf Kaukab Date: Fri Nov 20 11:49:30 2015 +0100 usb: dwc2: host: fix descriptor list address masking Masks for HCDMA.CTD and HCDMA.DMAAddr are incorrect. As we always start from first descriptor, no need to mask the address anyway. Acked-by: John Youn Signed-off-by: Mian Yousaf Kaukab Signed-off-by: Gregory Herrero Signed-off-by: Felipe Balbi drivers/usb/dwc2/core.c | 10 +++------- drivers/usb/dwc2/hw.h | 4 ---- 2 files changed, 3 insertions(+), 11 deletions(-) commit 95105a998dff0747327f11708ea24480ee0eca54 Author: Gregory Herrero Date: Fri Nov 20 11:49:29 2015 +0100 usb: dwc2: host: avoid usage of dma_alloc_coherent with irqs disabled Use Streaming DMA mappings to handle cache coherency of frame list and descriptor list. Cache are always flushed before controller access it or before cpu access it. Acked-by: John Youn Signed-off-by: Gregory Herrero Signed-off-by: Felipe Balbi drivers/usb/dwc2/core.c | 3 ++ drivers/usb/dwc2/core.h | 2 + drivers/usb/dwc2/hcd.c | 4 +- drivers/usb/dwc2/hcd.h | 4 ++ drivers/usb/dwc2/hcd_ddma.c | 106 ++++++++++++++++++++++++++++++++++---------- 5 files changed, 94 insertions(+), 25 deletions(-) commit fbb9e22b15ad3c9a98c66bad801b4d1366e8bf20 Author: Mian Yousaf Kaukab Date: Fri Nov 20 11:49:28 2015 +0100 usb: dwc2: host: enable descriptor dma for fs devices As descriptor dma mode does not support split transfers, it can't be enabled for high speed devices. Add a core parameter to enable it for full speed devices. Ensure frame list and descriptor list are correctly freed during disconnect. Acked-by: John Youn Signed-off-by: Mian Yousaf Kaukab Signed-off-by: Gregory Herrero Signed-off-by: Felipe Balbi drivers/usb/dwc2/core.c | 24 ++++++++++++++++++++++++ drivers/usb/dwc2/core.h | 20 ++++++++++++++++++++ drivers/usb/dwc2/hcd.c | 22 ++++++++++++++++++++++ drivers/usb/dwc2/hcd_intr.c | 15 +++++++++++++-- drivers/usb/dwc2/hcd_queue.c | 2 +- drivers/usb/dwc2/platform.c | 4 ++++ 6 files changed, 84 insertions(+), 3 deletions(-) commit 75f5c434c30b22a48a1d4a0f827473dc29036d78 Author: Deepa Dinamani Date: Wed Nov 4 15:29:11 2015 -0800 usb: misc: usbtest: Remove timeval usage timeval is deprecated and not y2038 safe. Its size also changes according to 32 bit/ 64 bit compilation. Replace it with 32 and 64 bit versions of its individual fields, giving two ioctls with different code values. The two ioctls are necessary to maintain the 32 bit and 64 bit userspace compatibility with a 64/32 bit kernel. Change unsigned to __u32 types for a definitive userspace interface. This is in accordance with the psABI that the unsigned type is always 32 bits. Also use motonic timer instead of real time to ensure positive delta values. Refactor usbtest_ioctl for readability to isolate the handling of the testing timing measurement. The official testusb userspace tool can be changed in a separate patch to reflect the __u32 changes as well. It can use the usbtest_param_32 struct, since 32 bit seconds is long enough for test durations. Reviewed-by: Arnd Bergmann Signed-off-by: Deepa Dinamani Signed-off-by: Felipe Balbi drivers/usb/misc/usbtest.c | 229 +++++++++++++++++++++++++++++---------------- 1 file changed, 147 insertions(+), 82 deletions(-) commit 38660ac7beb53b5f7bdb1d325a93c70cb7ba429f Author: Felipe F. Tonello Date: Tue Nov 10 17:52:07 2015 +0000 usb: gadget: gmidi: Cleanup legacy code Remove unnecessary headers and variables. Reviewed-by: Robert Baldyga Signed-off-by: Felipe F. Tonello Signed-off-by: Felipe Balbi drivers/usb/gadget/legacy/gmidi.c | 8 -------- 1 file changed, 8 deletions(-) commit 079fe5a6da616891cca1a26e803e1df2a87e9ae5 Author: Felipe F. Tonello Date: Tue Nov 10 17:52:05 2015 +0000 usb: gadget: define free_ep_req as universal function This function is shared between gadget functions, so this avoid unnecessary duplicated code and potentially avoid memory leaks. Reviewed-by: Robert Baldyga Signed-off-by: Felipe F. Tonello Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_midi.c | 6 ------ drivers/usb/gadget/function/f_sourcesink.c | 6 ------ drivers/usb/gadget/function/g_zero.h | 1 - drivers/usb/gadget/u_f.c | 1 - drivers/usb/gadget/u_f.h | 10 ++++++++-- 5 files changed, 8 insertions(+), 16 deletions(-) commit bc1d3cdc9c3cbbd9040da8c53237e177c38048b0 Author: Felipe F. Tonello Date: Tue Nov 10 17:52:04 2015 +0000 usb: gadget: f_midi: remove duplicated code This code is duplicated from f_midi_start_ep(midi, f, midi->out_ep). Reviewed-by: Robert Baldyga Signed-off-by: Felipe F. Tonello Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_midi.c | 19 ------------------- 1 file changed, 19 deletions(-) commit 4405a2ced55f375708669550cda750452885c9de Author: Peter Chen Date: Fri Nov 13 16:00:27 2015 +0800 Doc: ABI: configfs-usb-gadget-sourcesink: add two entries for depth of queue Add both bulk and iso depth of queue entries. Signed-off-by: Peter Chen Signed-off-by: Felipe Balbi Documentation/ABI/testing/configfs-usb-gadget-sourcesink | 2 ++ 1 file changed, 2 insertions(+) commit 64c5f48b100e92f189a32b6d660e3329681ec9b5 Author: Yoshihiro Shimoda Date: Wed Nov 18 14:34:10 2015 +0900 usb: renesas_usbhs: Modify ep.caps.type_xxx and usb_ep_maxpacket_limit() This patch modifies the ep.caps.type_{iso,bulk,int} setting and the second argument of usb_ep_maxpacket_limit() using the dparam.pipe_configs. In the previous code, all the type_{iso,bulk,int} were set to true. However, to avoid waste time for finding suitable pipe in usb_ep_enable(), this driver should set correct type. Also the second argument of usb_ep_maxpacket_limit() was set to 512 even if the pipe is isochronous or interrupt. So, this driver could not bind a gadget driver like the g_audio driver. Signed-off-by: Yoshihiro Shimoda Signed-off-by: Felipe Balbi drivers/usb/renesas_usbhs/mod_gadget.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) commit 51f141a97a1406bb0b59d490e837a39ccb7c3999 Author: Yoshihiro Shimoda Date: Wed Nov 18 14:34:09 2015 +0900 usb: renesas_usbhs: Modify pipe configuration The current code has info->bufnmb_last to calculate the BUFNMB bits of PIPEBUF register. However, since the bufnmb_last is initialized in the usbhs_pipe_init() only, this driver is possible to set unexpected value to the register if usb_ep_{enable,disable}() are called many times. So, this patch modifies the pipe configuration via struct renesas_usbhs_driver_param to simplify the code. Also this patch changes: - a double buffer configuration - isochronous buffer size from 512 to 1024 Signed-off-by: Yoshihiro Shimoda Signed-off-by: Felipe Balbi drivers/usb/renesas_usbhs/common.c | 69 +++++++++++---------- drivers/usb/renesas_usbhs/mod_host.c | 11 ++-- drivers/usb/renesas_usbhs/pipe.c | 112 ++++++++--------------------------- drivers/usb/renesas_usbhs/pipe.h | 1 - include/linux/usb/renesas_usbhs.h | 18 +++++- 5 files changed, 82 insertions(+), 129 deletions(-) commit 762d3a1a9cd7438a8453e005ee5b2bab3203d9c3 Author: Gregory Herrero Date: Thu Nov 5 09:41:45 2015 +0100 usb: dwc2: host: process all completed urbs Process all completed urbs, if more urbs are complete by the time driver processes completion interrupt. Acked-by: John Youn Signed-off-by: Gregory Herrero Signed-off-by: Felipe Balbi drivers/usb/dwc2/hcd_ddma.c | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) commit 3f808bdae75eaf464b1b2710894950772a3784f8 Author: Gregory Herrero Date: Thu Nov 5 09:41:44 2015 +0100 usb: dwc2: host: always increment available host channel during release When releasing a channel, increment hsotg->available_host_channels even in case a periodic channel is released. Acked-by: John Youn Signed-off-by: Gregory Herrero Signed-off-by: Felipe Balbi drivers/usb/dwc2/hcd_ddma.c | 1 + 1 file changed, 1 insertion(+) commit c17b337c1ea4c681595531912585a94f4bd7f8e7 Author: Gregory Herrero Date: Thu Nov 5 09:41:43 2015 +0100 usb: dwc2: host: program descriptor for next frame Isochronous descriptor is currently programmed for the frame after the last descriptor was programmed. If the last descriptor frame underrun, then current descriptor must take this into account and must be programmed on the current frame + 1. This overrun usually happens when system is loaded and dwc2 can't init descriptor list in time. Acked-by: John Youn Signed-off-by: Gregory Herrero Signed-off-by: Felipe Balbi drivers/usb/dwc2/hcd.h | 2 ++ drivers/usb/dwc2/hcd_ddma.c | 32 ++++++++++++++++++++++++++++++-- 2 files changed, 32 insertions(+), 2 deletions(-) commit b9392d9920fdce50abbe4af758cd1a24b922c81c Author: Gregory Herrero Date: Thu Nov 5 09:41:42 2015 +0100 usb: dwc2: host: add function to compare frame index This function allow comparing frame index used for descriptor list which has 64 entries. Acked-by: John Youn Signed-off-by: Gregory Herrero Signed-off-by: Felipe Balbi drivers/usb/dwc2/hcd.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 2b046bc5aaefd4aba7195e6a73afe14f7f786692 Author: Gregory Herrero Date: Thu Nov 5 09:41:41 2015 +0100 usb: dwc2: host: spinlock release channel Prevent dwc2 driver from accessing channel while it frees it. Acked-by: John Youn Signed-off-by: Gregory Herrero Signed-off-by: Felipe Balbi drivers/usb/dwc2/hcd_ddma.c | 4 ++++ 1 file changed, 4 insertions(+) commit 26a19ea699060fded98257e65b0ae5272a5ea1da Author: Gregory Herrero Date: Thu Nov 5 09:41:40 2015 +0100 usb: dwc2: host: fix use of qtd after free in desc dma mode When completing non isoc xfer, dwc2_complete_non_isoc_xfer_ddma() is relying on qtd->n_desc to process the corresponding number of descriptors. During the processing of these descriptors, qtd could be unlinked and freed if xfer is done and urb is no more in progress. In this case, dwc2_complete_non_isoc_xfer_ddma() will read again qtd->n_desc whereas qtd has been freed. This will lead to unpredictable results since qtd->n_desc is no more valid value. To avoid this error, return a result != 0 in dwc2_process_non_isoc_desc(), so that dwc2_complete_non_isoc_xfer_ddma() stops desc processing. This has been seen with Slub debug enabled. Acked-by: John Youn Signed-off-by: Gregory Herrero Signed-off-by: Felipe Balbi drivers/usb/dwc2/hcd_ddma.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit c503b38153852d88774b54ae17f7723f68c6dc33 Author: Gregory Herrero Date: Thu Nov 5 09:41:39 2015 +0100 usb: dwc2: host: rework isochronous halt path When a channel is halted because of urb dequeue during transfer completion, no other qtds must be scheduled until halt is done. Moreover, all in progress qtds must be given back. Acked-by: John Youn Signed-off-by: Gregory Herrero Signed-off-by: Felipe Balbi drivers/usb/dwc2/hcd_ddma.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) commit dde4c1bf5df0f852e497e5644d3578885b969fdb Author: Gregory Herrero Date: Thu Nov 5 09:41:38 2015 +0100 usb: dwc2: host: set active bit in isochronous descriptors Active bit must be enabled in all scheduled descriptors. Else transfer never start. Remove previous code which was not correctly configuring descriptors. Active bit was set before calling dwc2_fill_host_isoc_dma_desc() which is erasing dma_desc->status. Acked-by: John Youn Signed-off-by: Gregory Herrero Signed-off-by: Felipe Balbi drivers/usb/dwc2/hcd_ddma.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) commit 3ac38d260fa5dc8ec26ee5b6f5330d726ec00065 Author: Gregory Herrero Date: Thu Nov 5 09:41:37 2015 +0100 usb: dwc2: host: ensure filling of isoc desc is correctly done Increment qtd->isoc_frame_index_last before testing it, else below check will never be true and IOC (Interrupt On Complete) bit for last frame will never be set in descriptor status. /* Set IOC for each descriptor corresponding to last frame of URB */ if (qtd->isoc_frame_index_last == qtd->urb->packet_count) dma_desc->status |= HOST_DMA_IOC; Acked-by: John Youn Signed-off-by: Gregory Herrero Signed-off-by: Felipe Balbi drivers/usb/dwc2/hcd_ddma.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 4cee4fa5de70606e9eda1f605db1a681137cdaf8 Author: Peter Chen Date: Wed Nov 18 17:40:23 2015 +0800 usb: misc: usbtest: improve the description for error message Now the function of complicated_callback is not only used for iso transfer, improve the error message to reflect it. Signed-off-by: Peter Chen Signed-off-by: Felipe Balbi drivers/usb/misc/usbtest.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit df001894e3bfe02d06b83924623dd88babfe5dbd Author: Peter Chen Date: Thu Nov 19 15:02:17 2015 +0800 Documentation: usb: gadget-testing: add description for depth of queue Add both bulk and iso depth of queue for sourcesink. Reviewed-by: Krzysztof Opasiak Signed-off-by: Peter Chen Signed-off-by: Felipe Balbi Documentation/usb/gadget-testing.txt | 2 ++ 1 file changed, 2 insertions(+) commit 0d6c3d96678d11505f4923759af1e6c5fd260ff8 Author: Peter Chen Date: Thu Nov 19 15:02:16 2015 +0800 usb: gadget: f_sourcesink: add queue depth Add queue depth for both iso and bulk transfer, with more queues, we can do performance and stress test using sourcesink, and update g_zero accordingly. Reviewed-by: Krzysztof Opasiak Signed-off-by: Peter Chen Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_sourcesink.c | 142 ++++++++++++++++++++++------- drivers/usb/gadget/function/g_zero.h | 6 ++ drivers/usb/gadget/legacy/zero.c | 12 +++ 3 files changed, 127 insertions(+), 33 deletions(-) commit b084662776be8b07ab9114ff1a16a4e9bf907d35 Author: Felipe Balbi Date: Thu Nov 19 12:15:43 2015 -0600 usb: dwc3: remove dwc3-qcom in favor of dwc3-of-simple Now that we have a generic dwc3-of-simple.c, we can use that instead of maintaining dwc3-qcom.c which is extremely similar. Cc: Ivan T. Ivanov Signed-off-by: Felipe Balbi drivers/usb/dwc3/Kconfig | 8 --- drivers/usb/dwc3/Makefile | 1 - drivers/usb/dwc3/dwc3-qcom.c | 130 ------------------------------------------- 3 files changed, 139 deletions(-) commit f8764406a8a9a6443048f9c5c8e512504684ed1a Author: Subbaraya Sundeep Bhatta Date: Wed Nov 18 18:20:31 2015 +0530 usb: doc: dwc3-xilinx: Add devicetree bindings This patch adds binding doc for Xilinx DWC3 glue driver. Acked-by: Rob Herring Signed-off-by: Subbaraya Sundeep Bhatta Signed-off-by: Felipe Balbi .../devicetree/bindings/usb/dwc3-xilinx.txt | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) commit 16adc674d0d68a50dfc725574738d7ae11cf5d7e Author: Felipe Balbi Date: Wed Nov 18 13:15:20 2015 -0600 usb: dwc3: add generic OF glue layer For simple platforms which merely enable some clocks and populate its children, we can use this generic glue layer to avoid boilerplate code duplication. For now this supports Qcom and Xilinx, but if we find a way to add generic handling of regulators and optional PHYs, we can absorb exynos as well. Tested-by: Subbaraya Sundeep Bhatta Signed-off-by: Felipe Balbi drivers/usb/dwc3/Kconfig | 9 ++ drivers/usb/dwc3/Makefile | 1 + drivers/usb/dwc3/dwc3-of-simple.c | 178 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 188 insertions(+) commit b5d335e5ea6a60f5254c1f3d5fddd47f4531bccf Author: Felipe Balbi Date: Mon Nov 16 16:20:34 2015 -0600 usb: dwc3: ep0: fix setup_packet_pending initialization It just ocurred to me that dwc3 already gives a really hint of when a setup packet is pending and that's the SETUP_PENDING TRB Status for EP0 IRQs. Fix setup_packet_pending initialization based on that. While at that, also make sure the comment in gadget.c matches what code is doing. Signed-off-by: Felipe Balbi drivers/usb/dwc3/ep0.c | 8 +++++--- drivers/usb/dwc3/gadget.c | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) commit ac7bdcc1b3ad042d21bc65e57503d7b41fc69f05 Author: Felipe Balbi Date: Mon Nov 16 16:13:57 2015 -0600 usb: dwc3: gadget: simplify next_request() return check In dwc3_cleanup_done_reqs() we expect that all iterations of our while (1) loop will find a valid struct dwc3_request *. In case we don't, we're dumping a WARN_ON_ONCE() splat so that people report the failure. This patch is a simple cleanup converting: if (!req) { WARN_ON_ONCE(1); return 1; } to: if (WARN_ON_ONCE(!req)) return 1; which is a little easier to read. Signed-off-by: Felipe Balbi drivers/usb/dwc3/gadget.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit acc38c4970caac17cd81dc941226ed17fe505d73 Author: Felipe Balbi Date: Mon Nov 16 16:08:09 2015 -0600 usb: dwc3: ep0: purge dev_dbg() calls The last few dev_dbg() messages are converted to tracepoints and we can finally ignore dev_dbg() messages during debug sessions. Signed-off-by: Felipe Balbi drivers/usb/dwc3/ep0.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1407bf13e3bf5f1168484c3e68b6ef9d8cf2bc72 Author: Felipe Balbi Date: Mon Nov 16 16:06:37 2015 -0600 usb: dwc3: core: purge dev_dbg() calls The last few dev_dbg() messages are converted to tracepoints and we can finally ignore dev_dbg() messages during debug sessions. Signed-off-by: Felipe Balbi drivers/usb/dwc3/core.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit ec5e795cdefb74b55c9fce918aa8a9226a8eec41 Author: Felipe Balbi Date: Mon Nov 16 16:04:13 2015 -0600 usb: dwc3: gadget: purge dev_dbg() calls The last few dev_dbg() messages are converted to tracepoints and we can finally ignore dev_dbg() messages during debug sessions. Signed-off-by: Felipe Balbi drivers/usb/dwc3/gadget.c | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) commit bb423984c28e9f94a8f466b791baa762cef0543d Author: Felipe Balbi Date: Mon Nov 16 15:31:21 2015 -0600 usb: dwc3: gadget: simplify dwc3_gadget_ep_queue() By moving our sanity checks our internal function __dwc3_gadget_ep_queue() we can simplify the externally visible API while also making sure that callers of __dwc3_gadget_ep_queue() also make use of the same checks. Signed-off-by: Felipe Balbi drivers/usb/dwc3/gadget.c | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) commit 7ec7c8c70b26de90f61be7523a6ad14df911219f Author: Christian Borntraeger Date: Wed Dec 2 14:27:03 2015 +0100 KVM: s390: use assignment instead of memcpy Replace two memcpy with proper assignment. Suggested-by: Paolo Bonzini Reviewed-by: David Hildenbrand Acked-by: Cornelia Huck Signed-off-by: Christian Borntraeger arch/s390/kvm/kvm-s390.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 92cc916638a48f285736cd5541536e2e1b73ecf8 Author: Paul Gortmaker Date: Wed Dec 9 17:37:16 2015 -0500 security/integrity: make ima/ima_mok.c explicitly non-modular The Kconfig currently controlling compilation of this code is: ima/Kconfig:config IMA_MOK_KEYRING ima/Kconfig: bool "Create IMA machine owner keys (MOK) and blacklist keyrings" ...meaning that it currently is not being built as a module by anyone. Lets remove the couple of traces of modularity so that when reading the driver there is no doubt it really is builtin-only. Since module_init translates to device_initcall in the non-modular case, the init ordering remains unchanged with this commit. Cc: Mimi Zohar Cc: Dmitry Kasatkin Cc: James Morris Cc: "Serge E. Hallyn" Cc: linux-ima-devel@lists.sourceforge.net Cc: linux-ima-user@lists.sourceforge.net Cc: linux-security-module@vger.kernel.org Signed-off-by: Paul Gortmaker Signed-off-by: Mimi Zohar security/integrity/ima/ima_mok.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 6ad6afa14610c1fed3303c719b1f8f86f19f1fd3 Author: Mimi Zohar Date: Mon Dec 7 14:35:47 2015 -0500 ima: update appraise flags after policy update completes While creating a temporary list of new rules, the ima_appraise flag is updated, but not reverted on failure to append the new rules to the existing policy. This patch defines temp_ima_appraise flag. Only when the new rules are appended to the policy is the flag updated. Signed-off-by: Mimi Zohar Acked-by: Petko Manolov security/integrity/ima/ima_policy.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 501f1bde66525f94403a5b78832a9218ef9b1c14 Author: Mimi Zohar Date: Tue Nov 10 09:00:38 2015 -0500 IMA: prevent keys on the .ima_blacklist from being removed Set the KEY_FLAGS_KEEP on the .ima_blacklist to prevent userspace from removing keys from the keyring. Signed-off-by: Mimi Zohar security/integrity/ima/ima_mok.c | 2 ++ 1 file changed, 2 insertions(+) commit d3600bcf9d64d88dc1d189a754dcfab960ce751f Author: Mimi Zohar Date: Tue Nov 10 08:34:46 2015 -0500 KEYS: prevent keys from being removed from specified keyrings Userspace should not be allowed to remove keys from certain keyrings (eg. blacklist), though the keys themselves can expire. This patch defines a new key flag named KEY_FLAG_KEEP to prevent userspace from being able to unlink, revoke, invalidate or timed out a key on a keyring. When this flag is set on the keyring, all keys subsequently added are flagged. In addition, when this flag is set, the keyring itself can not be cleared. Signed-off-by: Mimi Zohar Cc: David Howells include/linux/key.h | 1 + security/keys/key.c | 6 +++++- security/keys/keyctl.c | 56 +++++++++++++++++++++++++++++++++++++++++--------- 3 files changed, 52 insertions(+), 11 deletions(-) commit 80eae209d63ac6361c7b445f7e7e41f39c044772 Author: Petko Manolov Date: Wed Dec 2 17:47:56 2015 +0200 IMA: allow reading back the current IMA policy It is often useful to be able to read back the IMA policy. It is even more important after introducing CONFIG_IMA_WRITE_POLICY. This option allows the root user to see the current policy rules. Signed-off-by: Zbigniew Jasinski Signed-off-by: Petko Manolov Signed-off-by: Mimi Zohar security/integrity/ima/Kconfig | 10 ++ security/integrity/ima/ima.h | 15 ++- security/integrity/ima/ima_fs.c | 29 ++++- security/integrity/ima/ima_policy.c | 207 +++++++++++++++++++++++++++++++++++- 4 files changed, 253 insertions(+), 8 deletions(-) commit 41c89b64d7184a780f12f2cccdabe65cb2408893 Author: Petko Manolov Date: Wed Dec 2 17:47:55 2015 +0200 IMA: create machine owner and blacklist keyrings This option creates IMA MOK and blacklist keyrings. IMA MOK is an intermediate keyring that sits between .system and .ima keyrings, effectively forming a simple CA hierarchy. To successfully import a key into .ima_mok it must be signed by a key which CA is in .system keyring. On turn any key that needs to go in .ima keyring must be signed by CA in either .system or .ima_mok keyrings. IMA MOK is empty at kernel boot. IMA blacklist keyring contains all revoked IMA keys. It is consulted before any other keyring. If the search is successful the requested operation is rejected and error is returned to the caller. Signed-off-by: Petko Manolov Signed-off-by: Mimi Zohar crypto/asymmetric_keys/x509_public_key.c | 2 ++ include/keys/system_keyring.h | 24 ++++++++++++++ security/integrity/digsig_asymmetric.c | 14 +++++++++ security/integrity/ima/Kconfig | 18 +++++++++++ security/integrity/ima/Makefile | 1 + security/integrity/ima/ima_mok.c | 54 ++++++++++++++++++++++++++++++++ 6 files changed, 113 insertions(+) commit 38d859f991f3a05b352a06f82af0baa1acf33e02 Author: Petko Manolov Date: Wed Dec 2 17:47:54 2015 +0200 IMA: policy can now be updated multiple times The new rules get appended to the original policy, forming a queue. The new rules are first added to a temporary list, which on error get released without disturbing the normal IMA operations. On success both lists (the current policy and the new rules) are spliced. IMA policy reads are many orders of magnitude more numerous compared to writes, the match code is RCU protected. The updater side also does list splice in RCU manner. Signed-off-by: Petko Manolov Signed-off-by: Mimi Zohar security/integrity/ima/Kconfig | 11 ++++++ security/integrity/ima/ima_fs.c | 13 ++++++ security/integrity/ima/ima_policy.c | 79 ++++++++++++++++++++++++------------- 3 files changed, 75 insertions(+), 28 deletions(-) commit 05d3884b1ee66d83ad70ffa658c7b363797e2b0c Author: Arnd Bergmann Date: Fri Nov 27 14:52:33 2015 +0100 evm: EVM_LOAD_X509 depends on EVM The newly added EVM_LOAD_X509 code can be configured even if CONFIG_EVM is disabled, but that causes a link error: security/built-in.o: In function `integrity_load_keys': digsig_asymmetric.c:(.init.text+0x400): undefined reference to `evm_load_x509' This adds a Kconfig dependency to ensure it is only enabled when CONFIG_EVM is set as well. Signed-off-by: Arnd Bergmann Fixes: 2ce523eb8976 ("evm: load x509 certificate from the kernel") Signed-off-by: Mimi Zohar security/integrity/evm/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 523b74b16bcbba34c662da5df7fa111ae4c1d0e6 Author: Dmitry Kasatkin Date: Thu Oct 22 21:26:42 2015 +0300 evm: reset EVM status when file attributes change The EVM verification status is cached in iint->evm_status and if it was successful, never re-verified again when IMA passes the 'iint' to evm_verifyxattr(). When file attributes or extended attributes change, we may wish to re-verify EVM integrity as well. For example, after setting a digital signature we may need to re-verify the signature and update the iint->flags that there is an EVM signature. This patch enables that by resetting evm_status to INTEGRITY_UKNOWN state. Changes in v2: * Flag setting moved to EVM layer Signed-off-by: Dmitry Kasatkin Signed-off-by: Mimi Zohar security/integrity/evm/evm_main.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 7a29c087ff80f5d534bd6729c852099fc572c8d0 Author: Namhyung Kim Date: Tue Dec 15 10:49:56 2015 +0900 perf record: Add record.build-id config option Post processing at 'perf record' takes a long time on big machines. What it does is to find the build-id of binaries found in the event stream, so that it can make sure, at 'report' time, that the symtabs (be it ELF, kallsyms, etc) being used to resolve symbols are the ones matching the binaries found at 'record' time. Sometimes we just want to skip this processing of events at the end of the session to get quicker results, making sure the binaries haven't changed from 'record' to 'report' time. Add a new config option to control this behavior. The record.build-id config variable can have one of the following values: - cache: post-process data and save/update the binaries into the build-id cache (in ~/.debug). This is the default. - no-cache: post-process the data but not update the build-id cache. Same effect as using the -N option. - skip: skip post-processing and do not update the cache. Same effect as using the -B option. Reported-and-Acked-by: Peter Zijlstra (Intel) Signed-off-by: Namhyung Kim Acked-by: Jiri Olsa Cc: David Ahern Cc: Taeung Song Link: http://lkml.kernel.org/r/1450144196-22957-1-git-send-email-namhyung@kernel.org [ Added some more text to the documentation ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-record.txt | 14 +++++++++++++- tools/perf/builtin-record.c | 13 +++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) commit 9c55d3b5459bffe8ac098175e672a90260c0cfa4 Author: Florian Westphal Date: Thu Dec 3 10:49:42 2015 +0100 nfnetlink: add nfnl_dereference_protected helper to avoid overly long line in followup patch. Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso net/netfilter/nfnetlink.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit 7626676320f398980a6bb4490fd58e924c888f6a Author: Dmitry Kasatkin Date: Thu Oct 22 21:26:32 2015 +0300 evm: provide a function to set the EVM key from the kernel A crypto HW kernel module can possibly initialize the EVM key from the kernel __init code to enable EVM before calling the 'init' process. This patch provides a function evm_set_key() to set the EVM key directly without using the KEY subsystem. Changes in v4: * kernel-doc style for evm_set_key Changes in v3: * error reporting moved to evm_set_key * EVM_INIT_HMAC moved to evm_set_key * added bitop to prevent key setting race Changes in v2: * use size_t for key size instead of signed int * provide EVM_MAX_KEY_SIZE macro in * provide EVM_MIN_KEY_SIZE macro in Signed-off-by: Dmitry Kasatkin Signed-off-by: Mimi Zohar include/linux/evm.h | 7 ++++++ security/integrity/evm/evm_crypto.c | 50 +++++++++++++++++++++++++++++++------ security/integrity/evm/evm_secfs.c | 10 +++----- 3 files changed, 53 insertions(+), 14 deletions(-) commit 26ddabfe96bb7468763c9c92791404d991b16250 Author: Dmitry Kasatkin Date: Thu Oct 22 21:26:26 2015 +0300 evm: enable EVM when X509 certificate is loaded In order to enable EVM before starting the 'init' process, evm_initialized needs to be non-zero. Previously non-zero indicated that the HMAC key was loaded. When EVM loads the X509 before calling 'init', with this patch it is now possible to enable EVM to start signature based verification. This patch defines bits to enable EVM if a key of any type is loaded. Changes in v3: * print error message if key is not set Changes in v2: * EVM_STATE_KEY_SET replaced by EVM_INIT_HMAC * EVM_STATE_X509_SET replaced by EVM_INIT_X509 Signed-off-by: Dmitry Kasatkin Signed-off-by: Mimi Zohar security/integrity/evm/evm.h | 3 +++ security/integrity/evm/evm_crypto.c | 4 ++++ security/integrity/evm/evm_main.c | 6 +++++- security/integrity/evm/evm_secfs.c | 4 ++-- 4 files changed, 14 insertions(+), 3 deletions(-) commit 8bb0bce92ec9330b0ea931df90f719fb5c4a5224 Author: Lucas Stach Date: Thu Dec 3 17:12:07 2015 +0100 MAINTAINERS: add maintainer and reviewers for the etnaviv DRM driver Signed-off-by: Lucas Stach Acked-by: Russell King Acked-by: Christian Gmeiner MAINTAINERS | 9 +++++++++ 1 file changed, 9 insertions(+) commit a8c21a5451d831e67b7a6fb910f9ca8bc7b43554 Author: The etnaviv authors Date: Thu Dec 3 18:21:29 2015 +0100 drm/etnaviv: add initial etnaviv DRM driver This adds the etnaviv DRM driver and hooks it up in Makefiles and Kconfig. Signed-off-by: Christian Gmeiner Signed-off-by: Russell King Signed-off-by: Lucas Stach Acked-by: Daniel Vetter drivers/gpu/drm/Kconfig | 2 + drivers/gpu/drm/Makefile | 1 + drivers/gpu/drm/etnaviv/Kconfig | 20 + drivers/gpu/drm/etnaviv/Makefile | 14 + drivers/gpu/drm/etnaviv/cmdstream.xml.h | 218 ++++ drivers/gpu/drm/etnaviv/common.xml.h | 249 ++++ drivers/gpu/drm/etnaviv/etnaviv_buffer.c | 268 +++++ drivers/gpu/drm/etnaviv/etnaviv_cmd_parser.c | 209 ++++ drivers/gpu/drm/etnaviv/etnaviv_drv.c | 707 +++++++++++ drivers/gpu/drm/etnaviv/etnaviv_drv.h | 161 +++ drivers/gpu/drm/etnaviv/etnaviv_dump.c | 227 ++++ drivers/gpu/drm/etnaviv/etnaviv_dump.h | 54 + drivers/gpu/drm/etnaviv/etnaviv_gem.c | 897 ++++++++++++++ drivers/gpu/drm/etnaviv/etnaviv_gem.h | 117 ++ drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c | 122 ++ drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c | 443 +++++++ drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 1644 ++++++++++++++++++++++++++ drivers/gpu/drm/etnaviv/etnaviv_gpu.h | 209 ++++ drivers/gpu/drm/etnaviv/etnaviv_iommu.c | 240 ++++ drivers/gpu/drm/etnaviv/etnaviv_iommu.h | 28 + drivers/gpu/drm/etnaviv/etnaviv_iommu_v2.c | 33 + drivers/gpu/drm/etnaviv/etnaviv_iommu_v2.h | 25 + drivers/gpu/drm/etnaviv/etnaviv_mmu.c | 299 +++++ drivers/gpu/drm/etnaviv/etnaviv_mmu.h | 71 ++ drivers/gpu/drm/etnaviv/state.xml.h | 351 ++++++ drivers/gpu/drm/etnaviv/state_hi.xml.h | 407 +++++++ include/uapi/drm/etnaviv_drm.h | 222 ++++ 27 files changed, 7238 insertions(+) commit f04b205ac143413831b193f39fd9592665111d4b Author: Lucas Stach Date: Thu Apr 2 17:29:04 2015 +0200 drm/etnaviv: add devicetree bindings Etnaviv follows the same priciple as imx-drm to have a virtual master device node to bind all the individual GPU cores together into one DRM device. Signed-off-by: Lucas Stach Acked-by: Rob Herring .../bindings/display/etnaviv/etnaviv-drm.txt | 54 ++++++++++++++++++++++ 1 file changed, 54 insertions(+) commit a9f1a3e4c1c7dc82711bc22dc52c7b0d6912ed56 Author: Linus Walleij Date: Tue Dec 15 14:41:44 2015 +0100 gpio: pch: fix non-DT build commit 1cfadea8f395e3fb6a15ea548e3e86c8b6d64f98 "gpio: pch: allow use from device tree" makes the driver not compile unless CONFIG_OF_GPIO is set. Fix it. Cc: Paul Burton Signed-off-by: Linus Walleij drivers/gpio/gpio-pch.c | 2 ++ 1 file changed, 2 insertions(+) commit 420a488278e86ab25354f54800be7df52525e17d Author: Robert Jarzmik Date: Sat Dec 12 22:27:11 2015 +0100 video: fbdev: pxafb: initial devicetree conversion This patch brings a first support of pxa framebuffer devices to a devicetree pxa platform, as was before platform data. There are restrictions with this port, the biggest one being the lack of support of smart panels. Moreover the conversion doesn't provide a way to declare multiple framebuffer configurations with different bits per pixel, only the LCD hardware bus width is used. The patch was tested on both pxa25x, pxa27x and pxa3xx platform (namely lubbock, mainstone and zylonite). Signed-off-by: Robert Jarzmik Signed-off-by: Tomi Valkeinen drivers/video/fbdev/Kconfig | 2 + drivers/video/fbdev/pxafb.c | 160 +++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 159 insertions(+), 3 deletions(-) commit f3621a60b20d677b0a874df4311bb65337c4baf7 Author: Robert Jarzmik Date: Sat Dec 12 22:27:10 2015 +0100 video: fbdev: pxafb: loosen the platform data bond In order to prepare the transition to a mixed platform data and device-tree initialization, remove all the platform data references all over the driver. Copy the platform data into the internal structure of the pxafb, and only use this afterward. Signed-off-by: Robert Jarzmik Signed-off-by: Tomi Valkeinen drivers/video/fbdev/pxafb.c | 54 ++++++++++++++++++++++++++++----------------- drivers/video/fbdev/pxafb.h | 2 ++ 2 files changed, 36 insertions(+), 20 deletions(-) commit 5ec9653806baa5928ee01109004411e3bed376f2 Author: Ezequiel Garcia Date: Wed Nov 25 00:11:48 2015 -0300 fbdev: Make fb-notify a no-op if CONFIG_FB=n There's no point in having support for framebuffer notifications is CONFIG_FB is disabled. This commit adds the necessary stubs for code to link properly when CONFIG_FB=n and moves fb-notify.o to be built only when CONFIG_FB=y. Signed-off-by: Ezequiel Garcia Signed-off-by: Tomi Valkeinen drivers/video/fbdev/Kconfig | 4 ++++ drivers/video/fbdev/core/Makefile | 2 +- include/linux/fb.h | 18 ++++++++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) commit c3c296b069dd84264cbaf7a0c4c13783e7508d50 Author: Daniel Vetter Date: Tue Aug 25 15:45:14 2015 +0200 fbdev: Debug knob to register without holding console_lock When the usual fbcon legacy options are enabled we have ->register_framebuffer ->fb notifier chain calls into fbcon ->fbcon sets up console on new fbi ->fbi->set_par ->drm_fb_helper_set_par exercises full kms api And because of locking inversion hilarity all of register_framebuffer is done with the console lock held. Which means that the first time on driver load we exercise _all_ the kms code (all probe paths and modeset paths for everything connected) is under the console lock. That means if anything goes belly-up in that big pile of code nothing ever reaches logfiles (and the machine is dead). Usual tactic to debug that is to temporarily remove those console_lock calls to be able to capture backtraces. I'm fed up writing this patch and recompiling kernels. Hence this patch here to add an unsafe, kernel-taining option to do this at runtime. Cc: Jean-Christophe Plagniol-Villard Cc: Tomi Valkeinen Cc: linux-fbdev@vger.kernel.org Signed-off-by: Daniel Vetter Signed-off-by: Tomi Valkeinen drivers/video/fbdev/core/fbmem.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) commit 1c639baeafa5fe40e6b6e6ee99e9ddd29986fba1 Author: Dmitry Eremin-Solenikov Date: Tue Nov 17 04:38:15 2015 +0300 video: fbdev: rivafb: unlock chip before probiding EDID At least NV3 requires for chip to be unlocked before it is possible to access I2C registers. Without it, it is not possible to read EDID. Signed-off-by: Dmitry Eremin-Solenikov Signed-off-by: Tomi Valkeinen drivers/video/fbdev/riva/fbdev.c | 1 + 1 file changed, 1 insertion(+) commit 24ed78dc2e8b2428eccc70c3162e70d33ab448c4 Author: Arnd Bergmann Date: Fri Nov 20 22:48:36 2015 +0100 fbdev: sm712fb: avoid unused function warnings The sm712fb framebuffer driver encloses the power-management functions in #ifdef CONFIG_PM, but the smtcfb_pci_suspend/resume functions are only really used when CONFIG_PM_SLEEP is also set, as a frequent gcc warning shows: fbdev/sm712fb.c:1549:12: warning: 'smtcfb_pci_suspend' defined but not used fbdev/sm712fb.c:1572:12: warning: 'smtcfb_pci_resume' defined but not used The driver also avoids using the SIMPLE_DEV_PM_OPS macro when CONFIG_PM is unset, which is redundant. This changes the driver to remove the #ifdef and instead mark the functions as __maybe_unused, which is a nicer anyway, as it provides build testing for all the code in all configurations and is harder to get wrong. Signed-off-by: Arnd Bergmann Signed-off-by: Tomi Valkeinen drivers/video/fbdev/sm712fb.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) commit a8a31afad5ffa1c7de0cef1c4bc383b50f426bf8 Author: Arnd Bergmann Date: Fri Nov 20 22:47:41 2015 +0100 fbdev: auo_k190x: avoid unused function warnings The auo_k190x framebuffer driver encloses the power-management functions in #ifdef CONFIG_PM, but the auok190x_suspend/resume functions are only really used when CONFIG_PM_SLEEP is also set, as a frequent gcc warning shows: drivers/video/fbdev/auo_k190x.c:859:12: warning: 'auok190x_suspend' defined but not used drivers/video/fbdev/auo_k190x.c:899:12: warning: 'auok190x_resume' defined but not used This changes the driver to remove the #ifdef and instead mark the functions as __maybe_unused, which is a nicer anyway, as it provides build testing for all the code in all configurations and is harder to get wrong. Signed-off-by: Arnd Bergmann Signed-off-by: Tomi Valkeinen drivers/video/fbdev/auo_k190x.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit 5b833fea4377577eafecb888141a05470922ef25 Author: Arnd Bergmann Date: Fri Nov 27 15:33:11 2015 +0100 fbdev: sis: enforce selection of at least one backend The sis framebuffer driver complains with a compile-time warning if neither the FB_SIS_300 nor FB_SIS_315 symbols are selected: drivers/video/fbdev/sis/sis_main.c:61:2: warning: #warning Neither CONFIG_FB_SIS_300 nor CONFIG_FB_SIS_315 is se This is reasonable because it doesn't work in that case, but it's also annoying for randconfig builds and is one of the most common warnings I'm seeing on ARM now. This changes the Kconfig logic to prevent the silly configuration, by always selecting the FB_SIS_300 variant if the other one is not set. Signed-off-by: Arnd Bergmann Signed-off-by: Tomi Valkeinen drivers/video/fbdev/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 34280340b1dc74c521e636f45cd728f9abf56ee2 Author: Geert Uytterhoeven Date: Fri Dec 4 17:01:43 2015 +0100 fbdev: Remove unused SH-Mobile HDMI driver As of commit 44d88c754e57a6d9 ("ARM: shmobile: Remove legacy SoC code for R-Mobile A1"), the SH-Mobile HDMI driver is no longer used. In theory it could still be used on R-Mobile A1 SoCs, but that requires adding DT support to the driver, which is not planned. Remove the driver, it can be resurrected from git history when needed. Signed-off-by: Geert Uytterhoeven Acked-by: Simon Horman Signed-off-by: Tomi Valkeinen drivers/video/fbdev/Kconfig | 10 - drivers/video/fbdev/Makefile | 1 - drivers/video/fbdev/sh_mobile_hdmi.c | 1489 ---------------------------------- include/video/sh_mobile_hdmi.h | 49 -- 4 files changed, 1549 deletions(-) commit 16379ad8552e183b4cf41a177ed2bad1e44d383d Author: Julia Lawall Date: Sun Nov 8 22:34:53 2015 +0100 video: constify geode ops structures These geode ops structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Tomi Valkeinen drivers/video/fbdev/geode/display_gx1.c | 2 +- drivers/video/fbdev/geode/display_gx1.h | 2 +- drivers/video/fbdev/geode/geodefb.h | 4 ++-- drivers/video/fbdev/geode/video_cs5530.c | 2 +- drivers/video/fbdev/geode/video_cs5530.h | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) commit 814740e759afe908eb60fcd973cae014c778a641 Author: Chen-Yu Tsai Date: Tue Nov 17 12:31:03 2015 +0800 simplefb: Claim and enable regulators This claims and enables regulators listed in the simple framebuffer dt node. This is needed so that regulators powering the display pipeline and external hardware, described in the device node and known by the kernel code, will remain properly enabled. Signed-off-by: Chen-Yu Tsai Acked-by: Mark Brown Signed-off-by: Tomi Valkeinen drivers/video/fbdev/simplefb.c | 120 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 119 insertions(+), 1 deletion(-) commit bd58a3908043c7f28d8f0ec9c7abb641a0a67310 Author: Chen-Yu Tsai Date: Tue Nov 17 12:31:02 2015 +0800 dt-bindings: simplefb: Support regulator supply properties The physical display tied to the framebuffer may have regulators providing power to it, such as power for LCDs or interface conversion chips. The number of regulators in use may vary, but the regulator supply binding can not be a list. Instead just support any named regulator supply properties under the device node. These should be properly named to match the device schematics / design. The driver should take care to go through them all. Signed-off-by: Chen-Yu Tsai Reviewed-by: Hans de Goede Acked-by: Mark Brown Acked-by: Rob Herring Signed-off-by: Tomi Valkeinen .../devicetree/bindings/display/simple-framebuffer.txt | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 2168b49a22d8fb2e745a72d5fb47adfbc4a64234 Author: Sudip Mukherjee Date: Sat Oct 3 16:46:31 2015 +0530 drivers/video/fbdev/i740fb: remove unused variable The value of d_best is always 0 and never changes. Signed-off-by: Sudip Mukherjee Signed-off-by: Tomi Valkeinen drivers/video/fbdev/i740fb.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 2ce523eb8976a12de1a4fb6fe8ad0b09b5dafb31 Author: Dmitry Kasatkin Date: Thu Oct 22 21:26:21 2015 +0300 evm: load an x509 certificate from the kernel This patch defines a configuration option and the evm_load_x509() hook to load an X509 certificate onto the EVM trusted kernel keyring. Changes in v4: * Patch description updated Changes in v3: * Removed EVM_X509_PATH definition. CONFIG_EVM_X509_PATH is used directly. Changes in v2: * default key patch changed to /etc/keys Signed-off-by: Dmitry Kasatkin Signed-off-by: Mimi Zohar security/integrity/evm/Kconfig | 17 +++++++++++++++++ security/integrity/evm/evm_main.c | 7 +++++++ security/integrity/iint.c | 1 + security/integrity/integrity.h | 8 ++++++++ 4 files changed, 33 insertions(+) commit 7c20df37c5baf560c876a8c7d235031614464277 Merge: a770d94 10cf489 Author: Linus Walleij Date: Tue Dec 15 14:22:54 2015 +0100 Merge branch 'for-dmitry' into devel commit a770d946371ec7710cbbcf523fccf8e05ef3927e Author: Robert Jarzmik Date: Sat Dec 12 23:55:21 2015 +0100 gpio: pxa: add pin control gpio direction and request If a pin control driver is available, use it to change the gpio direction. If not fallback to directly manipulating the gpio direction register. The reason to use the pin control driver first is that pin control in pxa2xx architecture implies changing the gpio direction, even for non gpio functions. In order to do it atomically, only one driver should control the gpio direction, and if a pin controller is available, it has to be him. There is a small catch : if CONFIG_PINCTRL is selected, then a pinctrl driver has to be probed. If not, gpio_request() will return -EPROBE_DEFER as pinctrl_request_gpio() returns it in that case. Signed-off-by: Robert Jarzmik Signed-off-by: Linus Walleij drivers/gpio/gpio-pxa.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit e670b29815f301e47e81d42006c80be6b7aff01d Author: Robert Jarzmik Date: Sat Dec 12 22:43:05 2015 +0100 pinctrl: pxa: pxa2xx: add pin control skeleton The wrong free functions were used to release temporary buffers. This didn't show up in the normal driver's life. Yet in suspend to RAM, the managed resource list is walked, and as memory was released, the list is corrupted and make the kernel Oops. Signed-off-by: Robert Jarzmik Signed-off-by: Linus Walleij drivers/pinctrl/pxa/pinctrl-pxa2xx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2cf721db4b78c11cb57d5a30888eb25ca04d9a29 Author: Takashi Iwai Date: Thu Dec 10 16:49:36 2015 +0100 ALSA: hda - Increase default bdl_pos_adj for Baytrail/Braswell Intel Atom processors seem to have a problem at recording when bdl_pos_adj is set to an odd value. When a value like 1 is used, it may drop the samples unexpectedly. Actually, for the old Atoms, we used to set AZX_DRIVER_SCH type, and this assigns 32 as default. Meanwhile the newer chips, Baytrail and Braswell, are set as AZX_DRIVER_PCH, and the lower default value, 1, is assigned. This patch changes the default values for these chipsets to a safer default, 32, again. Since changing the driver type (AZX_DRIVER_XXX) leads to the rename of the driver string, it would result in a possible regression. So, we can't change the type. Instead, in this patch, manual (ugly) PCI ID checks are added on top. A drawback by this increase is the slight increase of the latency, but it's a sub-ms order in normal situations, so mostly negligible. Reported-and-tested-by: Jochen Henneberg Signed-off-by: Takashi Iwai sound/pci/hda/hda_intel.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit f9f3f864b5e8c09d7837d8980edba4ad52969819 Author: Guenter Roeck Date: Tue Nov 10 14:04:36 2015 -0800 cris: Fix section mismatches in architecture startup code Section mismatches can now result in build failures. As result, cris:allnoconfig fails to build as follows. WARNING: modpost: Found 7 section mismatch(es). To see full details build your kernel with: 'make CONFIG_DEBUG_SECTION_MISMATCH=y' FATAL: modpost: Section mismatches detected. Set CONFIG_SECTION_MISMATCH_WARN_ONLY=y to allow them. Part of the problem is that references from .text to .init.text are not permitted, and such references are used in cris startup code. Since references from .head.text to .init.text are permitted, move cris startup code to a new section .head.text. Signed-off-by: Guenter Roeck Signed-off-by: Jesper Nilsson arch/cris/arch-v10/kernel/head.S | 6 ++++-- arch/cris/arch-v32/kernel/head.S | 6 ++++-- arch/cris/kernel/vmlinux.lds.S | 1 + 3 files changed, 9 insertions(+), 4 deletions(-) commit 56edefc98a1c3c8124823ed45260c1c912f81bb3 Author: Guenter Roeck Date: Tue Nov 10 14:04:35 2015 -0800 cris: debugport: Fix section mismatches Section mismatches can now cause build failures, such as for cris:allnoconfig. Rename affected variables to end with _console to make section mismatch checks happy. Signed-off-by: Guenter Roeck Signed-off-by: Jesper Nilsson arch/cris/arch-v10/kernel/debugport.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 4f0189be3d0b2ba7f23b46295e4063fa3298aa74 Author: Takashi Iwai Date: Thu Dec 10 16:44:08 2015 +0100 ALSA: hda - Clean up the code to check bdl_pos_adj option Just a minor cleanup; instead of passing an array, pass the assigned bdl_pos_adj option value directory in struct azx. Also split the code to get the default bdl_pos_adj value for the change that will follow after this. Signed-off-by: Takashi Iwai sound/pci/hda/hda_controller.c | 3 +-- sound/pci/hda/hda_controller.h | 2 +- sound/pci/hda/hda_intel.c | 29 ++++++++++++++++------------- 3 files changed, 18 insertions(+), 16 deletions(-) commit e112e593b215c394c0303dbf0534db0928e87967 Author: Nicolas Iooss Date: Fri Dec 11 11:20:28 2015 +0100 drm: use dev_name as default unique name in drm_dev_alloc() The following code pattern exists in some DRM drivers: ddev = drm_dev_alloc(&driver, parent_dev); drm_dev_set_unique(ddev, dev_name(parent_dev)); (Sometimes dev_name(ddev->dev) is used, which is the same.) As suggested in http://lists.freedesktop.org/archives/dri-devel/2015-December/096441.html, the unique name of a new DRM device can be set as dev_name(parent_dev) when parent_dev is not NULL (vgem is a special case). Signed-off-by: Nicolas Iooss Acked-by: Boris Brezillon Signed-off-by: Daniel Vetter drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 4 ---- drivers/gpu/drm/drm_drv.c | 9 +++++++++ drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | 1 - drivers/gpu/drm/nouveau/nouveau_drm.c | 4 ---- drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 4 ---- drivers/gpu/drm/tegra/drm.c | 1 - drivers/gpu/drm/vc4/vc4_drv.c | 2 -- 7 files changed, 9 insertions(+), 16 deletions(-) commit 399368aab39135cd9bc5e20b55b8b4d48658f904 Author: Nicolas Iooss Date: Fri Dec 11 11:20:27 2015 +0100 drm: make drm_dev_set_unique() not use a format string drm_dev_set_unique() uses a format string to define the unique name of a device. This feature is not used as currently all the calls to this function either use "%s" as a format string or directly use dev_name(). Even though this second kind of call does not introduce security problems, because there cannot be "%" characters in dev_name() results, gcc issues a warning when building with -Wformat-security flag ("warning: format string is not a string literal (potentially insecure)"). This warning is useful to find real bugs like the one fixed by commit 3958b79266b1 ("configfs: fix kernel infoleak through user-controlled format string"). False positives which do not bring an extra value make the work of finding real bugs harder. Therefore remove the format-string feature from drm_dev_set_unique(). Signed-off-by: Nicolas Iooss Link: http://patchwork.freedesktop.org/patch/msgid/1449829228-4425-1-git-send-email-nicolas.iooss_linux@m4x.org Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_drv.c | 17 ++++++----------- drivers/gpu/drm/nouveau/nouveau_drm.c | 2 +- drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 2 +- include/drm/drmP.h | 2 +- 4 files changed, 9 insertions(+), 14 deletions(-) commit d7955fcff889ec9a78bac387aec929154465423a Author: Ville Syrjälä Date: Tue Dec 15 12:21:15 2015 +0100 drm/vmwgfx: Constify function pointer structs Moves a bunch of junk to .rodata from .data. drivers/gpu/drm/vmwgfx/vmwgfx.ko: -.text 132244 +.text 132240 -.rodata 18296 +.rodata 18680 -.data 5096 +.data 4712 Signed-off-by: Ville Syrjälä Reviewed-by: Alex Deucher Signed-off-by: Thierry Reding Signed-off-by: Boris Brezillon Link: http://patchwork.freedesktop.org/patch/msgid/1450178476-26284-28-git-send-email-boris.brezillon@free-electrons.com Signed-off-by: Daniel Vetter drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 4 ++-- drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c | 6 +++--- drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 6 +++--- drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 6 +++--- 4 files changed, 11 insertions(+), 11 deletions(-) commit a942d739643772bde0a46166f76964e59da8e26d Author: Ville Syrjälä Date: Tue Dec 15 12:21:14 2015 +0100 drm/udl: Constify function pointer structs Moves a bunch of junk to .rodata from .data. drivers/gpu/drm/udl/udl.ko: -.text 11336 +.text 11332 -.rodata 560 +.rodata 684 -.data 696 +.data 572 Signed-off-by: Ville Syrjälä Reviewed-by: Alex Deucher Signed-off-by: Thierry Reding Signed-off-by: Boris Brezillon Link: http://patchwork.freedesktop.org/patch/msgid/1450178476-26284-27-git-send-email-boris.brezillon@free-electrons.com Signed-off-by: Daniel Vetter drivers/gpu/drm/udl/udl_connector.c | 4 ++-- drivers/gpu/drm/udl/udl_modeset.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 4ecae7855841fa6f0347064b80b2c9a52f12a0e6 Author: Ville Syrjälä Date: Tue Dec 15 12:21:13 2015 +0100 drm/tegra: Constify function pointer structs Moves a bunch of junk to .rodata from .data. drivers/gpu/drm/tegra/tegra-drm.ko: -.rodata 13672 +.rodata 13684 -.data 1108 +.data 1096 Signed-off-by: Ville Syrjälä Reviewed-by: Alex Deucher Signed-off-by: Thierry Reding Signed-off-by: Boris Brezillon Link: http://patchwork.freedesktop.org/patch/msgid/1450178476-26284-26-git-send-email-boris.brezillon@free-electrons.com Signed-off-by: Daniel Vetter drivers/gpu/drm/tegra/fb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 28c508ece6831e49d36cfa868f2a6c9d9f1c920e Author: Ville Syrjälä Date: Tue Dec 15 12:21:12 2015 +0100 drm/rockchip: Constify function pointer structs Moves a bunch of junk to .rodata from .data. drivers/gpu/drm/rockchip/dw_hdmi-rockchip.ko: -.rodata 772 +.rodata 828 -.data 148 +.data 92 drivers/gpu/drm/rockchip/rockchipdrm.ko: -.rodata 748 +.rodata 760 -.data 448 +.data 436 Signed-off-by: Ville Syrjälä Reviewed-by: Alex Deucher Signed-off-by: Thierry Reding Signed-off-by: Boris Brezillon Link: http://patchwork.freedesktop.org/patch/msgid/1450178476-26284-25-git-send-email-boris.brezillon@free-electrons.com Signed-off-by: Daniel Vetter drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 4 ++-- drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit ebb79a32ba881abd9144368ab892236d96135078 Author: Ville Syrjälä Date: Tue Dec 15 12:21:11 2015 +0100 drm/nouveau: Constify function pointer structs Moves a bunch of junk to .rodata from .data. drivers/gpu/drm/nouveau/nouveau.ko: -.rodata 105688 +.rodata 105792 -.data 125724 +.data 125620 Signed-off-by: Ville Syrjälä Reviewed-by: Alex Deucher Signed-off-by: Thierry Reding Signed-off-by: Boris Brezillon Link: http://patchwork.freedesktop.org/patch/msgid/1450178476-26284-24-git-send-email-boris.brezillon@free-electrons.com Signed-off-by: Daniel Vetter drivers/gpu/drm/nouveau/dispnv04/tvnv17.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 71cb749562a7fcc0b36d3c306c3d6d35a15cf0ea Author: Ville Syrjälä Date: Tue Dec 15 12:21:10 2015 +0100 drm/mgag200: Constify function pointer structs Moves a bunch of junk to .rodata from .data. drivers/gpu/drm/mgag200/mgag200.ko: -.text 29244 +.text 29232 -.rodata 600 +.rodata 668 -.data 688 +.data 620 Signed-off-by: Ville Syrjälä Reviewed-by: Alex Deucher Signed-off-by: Thierry Reding Signed-off-by: Boris Brezillon Link: http://patchwork.freedesktop.org/patch/msgid/1450178476-26284-23-git-send-email-boris.brezillon@free-electrons.com Signed-off-by: Daniel Vetter drivers/gpu/drm/mgag200/mgag200_mode.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7ae847dd379af68d4887d9a2e0b9d0de227662e1 Author: Ville Syrjälä Date: Tue Dec 15 12:21:09 2015 +0100 drm/imx: Constify function pointer structs Moves a bunch of junk to .rodata from .data. drivers/gpu/drm/imx/imxdrm.ko: -.rodata 624 +.rodata 652 -.data 372 +.data 344 drivers/gpu/drm/imx/imx-ipuv3-crtc.ko: -.rodata 224 +.rodata 280 -.data 184 +.data 128 drivers/gpu/drm/imx/imx-ldb.ko: -.rodata 660 +.rodata 784 -.data 240 +.data 116 drivers/gpu/drm/imx/imx-tve.ko: -.rodata 400 +.rodata 524 -.data 416 +.data 292 drivers/gpu/drm/imx/parallel-display.ko: -.rodata 400 +.rodata 524 -.data 216 +.data 92 Signed-off-by: Ville Syrjälä Reviewed-by: Alex Deucher Signed-off-by: Thierry Reding Signed-off-by: Boris Brezillon Link: http://patchwork.freedesktop.org/patch/msgid/1450178476-26284-22-git-send-email-boris.brezillon@free-electrons.com Signed-off-by: Daniel Vetter drivers/gpu/drm/imx/dw_hdmi-imx.c | 4 ++-- drivers/gpu/drm/imx/imx-drm-core.c | 2 +- drivers/gpu/drm/imx/imx-ldb.c | 8 ++++---- drivers/gpu/drm/imx/imx-tve.c | 8 ++++---- drivers/gpu/drm/imx/ipuv3-crtc.c | 2 +- drivers/gpu/drm/imx/parallel-display.c | 8 ++++---- 6 files changed, 16 insertions(+), 16 deletions(-) commit 0b6ac3c8d081342a03ee08e780b6de697eff5448 Author: Ville Syrjälä Date: Tue Dec 15 12:21:08 2015 +0100 drm/i2c/sil164: Constify function pointer structs Moves a bunch of junk to .rodata from .data. drivers/gpu/drm/i2c/sil164.ko: -.text 1660 +.text 1656 -.rodata 56 +.rodata 104 -.data 212 +.data 164 Signed-off-by: Ville Syrjälä Reviewed-by: Alex Deucher Signed-off-by: Thierry Reding Signed-off-by: Boris Brezillon Link: http://patchwork.freedesktop.org/patch/msgid/1450178476-26284-21-git-send-email-boris.brezillon@free-electrons.com Signed-off-by: Daniel Vetter drivers/gpu/drm/i2c/sil164_drv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d2267b9f85bd00e0eed05b0f0102de50378f1f77 Author: Ville Syrjälä Date: Tue Dec 15 12:21:07 2015 +0100 drm/i2c/adv7511: Constify function pointer structs Moves a bunch of junk to .rodata from .data. drivers/gpu/drm/i2c/adv7511.ko: -.rodata 1368 +.rodata 1416 -.data 164 +.data 116 Signed-off-by: Ville Syrjälä Reviewed-by: Alex Deucher Signed-off-by: Thierry Reding Signed-off-by: Boris Brezillon Link: http://patchwork.freedesktop.org/patch/msgid/1450178476-26284-20-git-send-email-boris.brezillon@free-electrons.com Signed-off-by: Daniel Vetter drivers/gpu/drm/i2c/adv7511.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 800ba2b58182e4b0e8dc826a27362d45499068b1 Author: Ville Syrjälä Date: Tue Dec 15 12:21:06 2015 +0100 drm/exynos: Constify function pointer structs Moves a bunch of junk to .rodata from .data. drivers/gpu/drm/exynos/exynosdrm.ko: -.text 125792 +.text 125788 -.rodata 10972 +.rodata 11748 -.data 6720 +.data 5944 Signed-off-by: Ville Syrjälä Reviewed-by: Alex Deucher Reviewed-by: Gustavo Padovan Signed-off-by: Thierry Reding Signed-off-by: Boris Brezillon Link: http://patchwork.freedesktop.org/patch/msgid/1450178476-26284-19-git-send-email-boris.brezillon@free-electrons.com Signed-off-by: Daniel Vetter drivers/gpu/drm/exynos/exynos_dp_core.c | 8 ++++---- drivers/gpu/drm/exynos/exynos_drm_crtc.c | 4 ++-- drivers/gpu/drm/exynos/exynos_drm_dpi.c | 8 ++++---- drivers/gpu/drm/exynos/exynos_drm_dsi.c | 8 ++++---- drivers/gpu/drm/exynos/exynos_drm_fb.c | 2 +- drivers/gpu/drm/exynos/exynos_drm_mic.c | 2 +- drivers/gpu/drm/exynos/exynos_drm_vidi.c | 8 ++++---- drivers/gpu/drm/exynos/exynos_hdmi.c | 8 ++++---- 8 files changed, 24 insertions(+), 24 deletions(-) commit c8770900f074cc1b9f451174ed1ad9f8a79a9fe2 Author: Ville Syrjälä Date: Tue Dec 15 12:21:05 2015 +0100 drm/cirrus: Constify function pointer structs Moves a bunch of junk to .rodata from .data. drivers/gpu/drm/cirrus/cirrus.ko: -.text 10104 +.text 10092 -.rodata 528 +.rodata 596 -.data 608 +.data 540 Signed-off-by: Ville Syrjälä Reviewed-by: Alex Deucher Signed-off-by: Thierry Reding Signed-off-by: Boris Brezillon Link: http://patchwork.freedesktop.org/patch/msgid/1450178476-26284-18-git-send-email-boris.brezillon@free-electrons.com Signed-off-by: Daniel Vetter drivers/gpu/drm/cirrus/cirrus_mode.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b29483baf9b274e4cf108ddd491d15e8bf83657a Author: Ville Syrjälä Date: Tue Dec 15 12:21:04 2015 +0100 drm/i2c/ch7006: Constify function pointer structs Moves a bunch of junk to .rodata from .data. drivers/gpu/drm/i2c/ch7006.ko: -.text 5752 +.text 5760 -.rodata 6608 +.rodata 6656 -.data 216 +.data 168 Signed-off-by: Ville Syrjälä Reviewed-by: Alex Deucher Signed-off-by: Thierry Reding Signed-off-by: Boris Brezillon Link: http://patchwork.freedesktop.org/patch/msgid/1450178476-26284-17-git-send-email-boris.brezillon@free-electrons.com Signed-off-by: Daniel Vetter drivers/gpu/drm/i2c/ch7006_drv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0aba67c1178c640b8f228bc5f37c08292801c1c4 Author: Ville Syrjälä Date: Tue Dec 15 12:21:03 2015 +0100 drm/bridge/nxp-ptn3460: Constify function pointer structs Moves a bunch of junk to .rodata from .data. drivers/gpu/drm/bridge/nxp-ptn3460.ko: -.rodata 440 +.rodata 536 -.data 208 +.data 112 Signed-off-by: Ville Syrjälä Reviewed-by: Alex Deucher Signed-off-by: Thierry Reding Signed-off-by: Boris Brezillon Link: http://patchwork.freedesktop.org/patch/msgid/1450178476-26284-16-git-send-email-boris.brezillon@free-electrons.com Signed-off-by: Daniel Vetter drivers/gpu/drm/bridge/nxp-ptn3460.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit dae91e4d1c7adea85ff97b28dcea72bd234b4bb7 Author: Ville Syrjälä Date: Tue Dec 15 12:21:02 2015 +0100 drm/bridge/dw_hdmi: Constify function pointer structs Moves a bunch of junk to .rodata from .data. drivers/gpu/drm/bridge/dw_hdmi.ko: -.rodata 120 +.rodata 216 -.data 96 +.data 0 Signed-off-by: Ville Syrjälä Reviewed-by: Alex Deucher Signed-off-by: Thierry Reding Signed-off-by: Boris Brezillon Link: http://patchwork.freedesktop.org/patch/msgid/1450178476-26284-15-git-send-email-boris.brezillon@free-electrons.com Signed-off-by: Daniel Vetter drivers/gpu/drm/bridge/dw_hdmi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 4c717d0f66fd496a3489ce9a6c0c09984377722f Author: Ville Syrjälä Date: Tue Dec 15 12:21:01 2015 +0100 drm/bochs: Constify function pointer structs Moves a bunch of junk to .rodata from .data. drivers/gpu/drm/bochs/bochs-drm.ko: -.text 7608 +.text 7600 -.rodata 648 +.rodata 716 -.data 612 +.data 544 Signed-off-by: Ville Syrjälä Reviewed-by: Alex Deucher Signed-off-by: Thierry Reding Signed-off-by: Boris Brezillon Link: http://patchwork.freedesktop.org/patch/msgid/1450178476-26284-14-git-send-email-boris.brezillon@free-electrons.com Signed-off-by: Daniel Vetter drivers/gpu/drm/bochs/bochs_kms.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit e9becd46d65b9a0b71adb8032fad2383c93d81f3 Author: Ville Syrjälä Date: Tue Dec 15 12:21:00 2015 +0100 drm/atmel-hlcdc: Constify function pointer structs Moves a bunch of junk to .rodata from .data. drivers/gpu/drm/atmel-hlcdc/atmel-hlcdc-dc.ko: -.text 12488 +.text 12480 -.rodata 1696 +.rodata 1760 -.data 776 +.data 712 Signed-off-by: Ville Syrjälä Reviewed-by: Alex Deucher Acked-by: Boris Brezillon Signed-off-by: Thierry Reding Signed-off-by: Boris Brezillon Link: http://patchwork.freedesktop.org/patch/msgid/1450178476-26284-13-git-send-email-boris.brezillon@free-electrons.com Signed-off-by: Daniel Vetter drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a02fb90a30f82ca116829e137b8e60fa8bce3da0 Author: Ville Syrjälä Date: Tue Dec 15 12:20:59 2015 +0100 drm/armada: Constify function pointer structs Moves a bunch of junk to .rodata from .data. drivers/gpu/drm/armada/armada.ko: -.rodata 1040 +.rodata 1100 -.data 1156 +.data 1096 Signed-off-by: Ville Syrjälä Reviewed-by: Alex Deucher Signed-off-by: Thierry Reding Signed-off-by: Boris Brezillon Link: http://patchwork.freedesktop.org/patch/msgid/1450178476-26284-12-git-send-email-boris.brezillon@free-electrons.com Signed-off-by: Daniel Vetter drivers/gpu/drm/armada/armada_crtc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 16c3719c17d355b12fe2dac4458bd598f9204d6f Author: Ville Syrjälä Date: Tue Dec 15 12:20:58 2015 +0100 drm: Constify drm_encoder_slave_funcs Signed-off-by: Ville Syrjälä Reviewed-by: Alex Deucher Signed-off-by: Thierry Reding Signed-off-by: Boris Brezillon Link: http://patchwork.freedesktop.org/patch/msgid/1450178476-26284-11-git-send-email-boris.brezillon@free-electrons.com Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_encoder_slave.c | 2 +- drivers/gpu/drm/nouveau/nouveau_encoder.h | 2 +- drivers/gpu/drm/rcar-du/rcar_du_hdmicon.c | 6 +++--- drivers/gpu/drm/rcar-du/rcar_du_hdmienc.c | 8 ++++---- include/drm/drm_encoder_slave.h | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) commit d6ec5ec9a0f057878b8881c7d8edb8d1babb4291 Author: Luis de Bethencourt Date: Tue Dec 15 12:21:16 2015 +0100 drm: atmel-hlcdc: 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 Acked-by: Boris Brezillon Signed-off-by: Boris Brezillon Link: http://patchwork.freedesktop.org/patch/msgid/1450178476-26284-29-git-send-email-boris.brezillon@free-electrons.com Signed-off-by: Daniel Vetter drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 1 + 1 file changed, 1 insertion(+) commit 34649c401b3f123f82fc7ecb8b8c056de86910e3 Author: Nicolas Ferre Date: Tue Dec 15 12:20:57 2015 +0100 drm: atmel-hlcdc: add support for sama5d2 SoCs As the hardware description for this chip is the same as the sama5d4, we use this SoC structures for layers and DC descriptions. Thus only 2 lines are added to the atmel_hlcdc_of_match table. The compatible string is already documented in the parent MFD driver's binding. Signed-off-by: Nicolas Ferre Acked-by: Boris Brezillon Signed-off-by: Thierry Reding Signed-off-by: Boris Brezillon Link: http://patchwork.freedesktop.org/patch/msgid/1450178476-26284-10-git-send-email-boris.brezillon@free-electrons.com Signed-off-by: Daniel Vetter drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 4 ++++ 1 file changed, 4 insertions(+) commit 3ebf1c6dc9cbdbee3f409b9786063851697cca0e Author: Frediano Ziglio Date: Tue Dec 15 12:20:56 2015 +0100 drm/qxl: use to_qxl_bo macro Instead of using container_of directly use to_qxl_bo macro. Signed-off-by: Frediano Ziglio Signed-off-by: Thierry Reding Signed-off-by: Boris Brezillon Link: http://patchwork.freedesktop.org/patch/msgid/1450178476-26284-9-git-send-email-boris.brezillon@free-electrons.com Signed-off-by: Daniel Vetter drivers/gpu/drm/qxl/qxl_object.c | 2 +- drivers/gpu/drm/qxl/qxl_ttm.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 47ba614bb0e2b4633056547cd7507640db4ad0dd Author: Rasmus Villemoes Date: Tue Dec 15 12:20:55 2015 +0100 drm/vmwgfx: check kmalloc return value srf->sizes has been allocated and checked a few lines above; fix up the copy-pasto so that we check srf->offsets. Reported-by: kbuild test robot Signed-off-by: Rasmus Villemoes Signed-off-by: Thierry Reding Signed-off-by: Boris Brezillon Link: http://patchwork.freedesktop.org/patch/msgid/1450178476-26284-8-git-send-email-boris.brezillon@free-electrons.com Signed-off-by: Daniel Vetter drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9e266128fc32de4d1048b8f01c457c105d7a2590 Author: Rasmus Villemoes Date: Tue Dec 15 12:20:54 2015 +0100 drm/vmwgfx: use kzalloc in vmw_surface_define_ioctl() Signed-off-by: Rasmus Villemoes Signed-off-by: Thierry Reding Signed-off-by: Boris Brezillon Link: http://patchwork.freedesktop.org/patch/msgid/1450178476-26284-7-git-send-email-boris.brezillon@free-electrons.com Signed-off-by: Daniel Vetter drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 07a6dc19a36912a1bea7ce1d5856c5616c30839a Author: Rasmus Villemoes Date: Tue Dec 15 12:20:53 2015 +0100 drm/omap: use kzalloc in sita_init() Signed-off-by: Rasmus Villemoes Signed-off-by: Thierry Reding Signed-off-by: Boris Brezillon Link: http://patchwork.freedesktop.org/patch/msgid/1450178476-26284-6-git-send-email-boris.brezillon@free-electrons.com Signed-off-by: Daniel Vetter drivers/gpu/drm/omapdrm/tcm-sita.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit d4b20e4dcbb3bb08362c55b2f9183588a4a3af33 Author: Thierry Reding Date: Tue Dec 15 12:20:52 2015 +0100 drm/imx: Drop pipe field from struct imx_drm_crtc Use the drm_crtc_index() helper to determine the pipe number of the CRTC instead. Cc: Philipp Zabel Acked-by: Philipp Zabel Signed-off-by: Thierry Reding Signed-off-by: Boris Brezillon Link: http://patchwork.freedesktop.org/patch/msgid/1450178476-26284-5-git-send-email-boris.brezillon@free-electrons.com Signed-off-by: Daniel Vetter drivers/gpu/drm/imx/imx-drm-core.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) commit d2ab8ad9713de1bd5e0da187263e35b2eea57e1c Author: Thierry Reding Date: Tue Dec 15 12:20:51 2015 +0100 drm/imx: Make pipe number unsigned There's no reason whatsoever why this should ever be negative. The same goes for the number of pipes added to the DRM device. Cc: Philipp Zabel Acked-by: Philipp Zabel Signed-off-by: Thierry Reding Signed-off-by: Boris Brezillon Link: http://patchwork.freedesktop.org/patch/msgid/1450178476-26284-4-git-send-email-boris.brezillon@free-electrons.com Signed-off-by: Daniel Vetter drivers/gpu/drm/imx/imx-drm-core.c | 6 +++--- drivers/gpu/drm/imx/imx-drm.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) commit 20143598f731b71e35cba82ad29dc9d2e3788323 Author: Thierry Reding Date: Tue Dec 15 12:20:50 2015 +0100 drm/bochs: Store correct CRTC index in events Previously a negative pipe caused a special case to be triggered for drivers that didn't have proper VBLANK support. The trigger for this special case is now independent of the pipe, so the correct CRTC index can now be stored in events. v2: convert to use drm_crtc_send_vblank_event() Cc: Gerd Hoffmann Signed-off-by: Thierry Reding Signed-off-by: Boris Brezillon Link: http://patchwork.freedesktop.org/patch/msgid/1450178476-26284-3-git-send-email-boris.brezillon@free-electrons.com Signed-off-by: Daniel Vetter drivers/gpu/drm/bochs/bochs_kms.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4f250706211cdb949f7580d4fe4dd1fd646de693 Author: Thierry Reding Date: Tue Dec 15 12:20:49 2015 +0100 drm/gma500: Sanity-check pipe index If the DSI output isn't connected, then mdfld_dsi_encoder_get_pipe() will return -1. The mdfld_dsi_dp_mode_set() function doesn't properly check for this condition and causes the following compiler warnings: CC drivers/gpu/drm/gma500/mdfld_dsi_dpi.o drivers/gpu/drm/gma500/mdfld_dsi_dpi.c: In function ‘mdfld_dsi_dpi_mode_set’: drivers/gpu/drm/gma500/mdfld_dsi_dpi.c:828:35: warning: array subscript is below array bounds [-Warray-bounds] u32 pipeconf = dev_priv->pipeconf[pipe]; ^ drivers/gpu/drm/gma500/mdfld_dsi_dpi.c:829:33: warning: array subscript is below array bounds [-Warray-bounds] u32 dspcntr = dev_priv->dspcntr[pipe]; ^ Fix this by checking for a valid pipe before indexing the pipeconf and dspcntr arrays. Cc: Patrik Jakobsson Reviewed-by: Patrik Jakobsson Signed-off-by: Thierry Reding Signed-off-by: Boris Brezillon Link: http://patchwork.freedesktop.org/patch/msgid/1450178476-26284-2-git-send-email-boris.brezillon@free-electrons.com Signed-off-by: Daniel Vetter drivers/gpu/drm/gma500/mdfld_dsi_dpi.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 75d31c2372e4a08319919b14bd160c48305373a1 Author: Måns Rullgård Date: Mon Nov 2 02:03:36 2015 +0000 i2c: xlr: add support for Sigma Designs controller variant Sigma Designs chips use a variant of this controller with the following differences: - The BUSY bit in the STATUS register is inverted - Bit 8 of the CONFIG register must be set - The controller can generate interrupts This patch adds support for the first two of these. It also calculates and sets the correct clock divisor if a clk is provided. The bus frequency is optionally speficied in the device tree node. Signed-off-by: Mans Rullgard Signed-off-by: Wolfram Sang drivers/i2c/busses/Kconfig | 6 ++-- drivers/i2c/busses/i2c-xlr.c | 81 +++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 80 insertions(+), 7 deletions(-) commit 0a804b5729bb0021e63662b772db0f52de653056 Author: Ludovic Desroches Date: Thu Dec 3 10:53:54 2015 +0100 ARM: at91/dt: sama5d2 Xplained: pmic needs a specific sda hold time Data have to be held longer for the PMIC device. The ACT8945A datasheet claims that minimum SDA data hold time is about 300 ns. Signed-off-by: Ludovic Desroches Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91-sama5d2_xplained.dts | 1 + 1 file changed, 1 insertion(+) commit a2ebbb07959c37894fba2b9ec139b8bffdbd736c Author: Ludovic Desroches Date: Thu Dec 3 10:53:53 2015 +0100 ARM: at91/dt: sama5d4: update i2c compatible string A new compatible string has been introduced: atmel,sama5d4-i2c. It allows to use the i2c-sda-hold-time-ns property if needed. Signed-off-by: Ludovic Desroches Signed-off-by: Nicolas Ferre arch/arm/boot/dts/sama5d4.dtsi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit bdf9a4d3037fede143fc4b732debc77e9376dc58 Author: Nicolas Ferre Date: Tue Dec 1 14:42:37 2015 +0100 ARM: at91/dt: sama5d4 master clock can run at 200MHz now After the change of frequency a SAMA5D4 can reach, we have to modify the maximum clock specification for the master clock, up to 200MHz now. It avoids the wrong message saying that "master clk is overclocked" for this configuration. Signed-off-by: Nicolas Ferre arch/arm/boot/dts/sama5d4.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 129b985cc3f331d0e6908958f50757a3a1b37793 Merge: 32d6397 f7d9248 Author: Will Deacon Date: Tue Dec 15 10:59:03 2015 +0000 Merge branch 'aarch64/efi' into aarch64/for-next/core Merge in EFI memblock changes from Ard, which form the preparatory work for UEFI support on 32-bit ARM. commit 94c2317cf46a9c137650bf30f2aba7271886c0b4 Author: Wenyou Yang Date: Thu Nov 5 15:37:56 2015 +0800 ARM: at91/defconfig: enable watchdog drivers in sama5_defconfig Enable AT91SAM9X and SAMA5D4 watchdog drivers. Signed-off-by: Wenyou Yang Signed-off-by: Nicolas Ferre arch/arm/configs/sama5_defconfig | 3 +++ 1 file changed, 3 insertions(+) commit 92bd7aa413c00dd2ec1ba7f829a245f48e1e2ed3 Author: Wenyou Yang Date: Thu Nov 5 15:39:30 2015 +0800 ARM: at91/dt: sama5d2: add watchdog node Add watchdog node to support SAMA5D4 watchdog. Signed-off-by: Wenyou Yang Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91-sama5d2_xplained.dts | 4 ++++ arch/arm/boot/dts/sama5d2.dtsi | 7 +++++++ 2 files changed, 11 insertions(+) commit ca5a4b56220539ff2389a88ee7170bb4d6be2c24 Author: Marek Vasut Date: Wed Nov 4 23:14:24 2015 +0100 ARM: at91/dt: sama5d4: Add support for DENX MA5D4 SoM and EVK Add support for the DENX MA5D4 SoM and MA5D4EVK board. The system consists of a SoM with eMMC, SPI NOR for booting, 2x SPI CAN chip and an EVK with microSD slot, 2x UART, 2x CAN port, 3x USB port, LEDs and expansion headers. Signed-off-by: Marek Vasut Cc: Alexandre Belloni Cc: Josh Wu Signed-off-by: Nicolas Ferre arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/at91-sama5d4_ma5d4.dtsi | 127 +++++++++++++++++++++ arch/arm/boot/dts/at91-sama5d4_ma5d4evk.dts | 170 ++++++++++++++++++++++++++++ 3 files changed, 298 insertions(+) commit 49f6697499d4c3a635bea05fb96d4a2278e6ae8c Author: Marek Vasut Date: Thu Nov 5 03:25:01 2015 +0100 ARM: at91/dt: sama5d4: Add pinmux for 8-bit MMC0 bus Add pinmux for the 4 remaining signals used in 8-bit MMC 0 bus configuration. Signed-off-by: Marek Vasut Cc: Alexandre Belloni Reviewed-by: Josh Wu Signed-off-by: Nicolas Ferre arch/arm/boot/dts/sama5d4.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) commit 5e4458fa5d3890455c16fc28b2c082f4f15a19eb Author: Marek Vasut Date: Wed Nov 4 23:14:22 2015 +0100 ARM: at91/dt: sama5d4: Fix mmc0 pinmux comments Synchronise the comments in mmc0 pinmux node with HSMCI0 pinmux description in the Atmel SAMA5D4 datasheet from 24-Aug-15 page 1119, section 37.6.1, Table 37-3 . Signed-off-by: Marek Vasut Cc: Alexandre Belloni Reviewed-by: Josh Wu Reported-by: Nicolas Ferre Signed-off-by: Nicolas Ferre arch/arm/boot/dts/sama5d4.dtsi | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 5bcd927233d18fbfabed461b31b0118147648525 Author: Geliang Tang Date: Thu Nov 26 08:35:27 2015 +0800 ARM: davinci: fix a problematic usage of WARN() WARN() takes a condition and a format string. The condition was omitted. So I added it. Signed-off-by: Geliang Tang Signed-off-by: Sekhar Nori arch/arm/mach-davinci/board-dm355-evm.c | 4 +--- arch/arm/mach-davinci/board-dm355-leopard.c | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) commit 1b50b0c1ceb5652e5ee985b52761a414ceecbe20 Author: Arnd Bergmann Date: Thu Dec 10 14:19:20 2015 +0100 ARM: davinci: only select WT cache if cache is enabled The DA830 chip only works if the dcache is in writethrough mode, but that produces a harmless Kconfig warning if the cache happens to be disabled: warning: (ARCH_DAVINCI_DA830) selects CPU_DCACHE_WRITETHROUGH which has unmet direct dependencies ((CPU_ARM740T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM940T || CPU_ARM946E || CPU_ARM1020 || CPU_FA526) && !CPU_DCACHE_DISABLE) This makes the select conditional so we don't have to worry about the warning in randconfig builds any more. Signed-off-by: Arnd Bergmann Signed-off-by: Sekhar Nori arch/arm/mach-davinci/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 50cbc132460d448fd24b561883f7cff21d77f147 Author: Eric Anholt Date: Mon Dec 14 16:26:26 2015 -0800 drm: Use the driver's gem_object_free function from CMA helpers. VC4 wraps the CMA objects in its own structures, so it needs to do its own teardown (waiting for GPU to finish, updating bo_stats tracking). The other CMA drivers are using drm_gem_cma_free_object as their gem_free_object, so this should be a no-op for them. Signed-off-by: Eric Anholt Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_fb_cma_helper.c | 6 +++--- drivers/gpu/drm/drm_gem_cma_helper.c | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) commit 6cecdf7a161d2b909dc7c8979176bbc4f0669968 Author: Harry Wentland Date: Mon Dec 7 13:55:52 2015 -0500 drm/dp/mst: save vcpi with payloads This makes it possibly for drivers to find the associated mst_port by looking at the payload allocation table. Signed-off-by: Harry Wentland Reviewed-by: Alex Deucher Link: http://patchwork.freedesktop.org/patch/msgid/1449514552-10236-3-git-send-email-harry.wentland@amd.com Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_dp_mst_topology.c | 2 ++ 1 file changed, 2 insertions(+) commit a68d2437d73188abe5d92d551cc63d6b67d8ce57 Author: Mykola Lysenko Date: Mon Dec 7 13:55:51 2015 -0500 drm/dp/mst: reply with ACK for UP reqs Currently we reply with NACK to UP requests which might confuse receivers. We haven't seen any actual issues with this but should still respond to UP requests correctly. Signed-off-by: Mykola Lysenko Reviewed-by: Alex Deucher Link: http://patchwork.freedesktop.org/patch/msgid/1449514552-10236-2-git-send-email-harry.wentland@amd.com Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_dp_mst_topology.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d55f5320c7811d3858edaef5f2d4a9a7e43b1af8 Author: Daniel Vetter Date: Tue Dec 8 09:49:19 2015 +0100 drm: Move more framebuffer doc from docbook to kerneldoc I missed a few paragraphs in the docbook that need to be pulled into the fbdev vfunc docs. v2: Spelling fixes from Thierry. Cc: Thierry Reding Link: http://patchwork.freedesktop.org/patch/msgid/1449564561-3896-3-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Thierry Reding Signed-off-by: Daniel Vetter Documentation/DocBook/gpu.tmpl | 72 +----------------------------------------- include/drm/drm_crtc.h | 18 ++++++++++- 2 files changed, 18 insertions(+), 72 deletions(-) commit 07bad49ea89558583bc3d80c27e6c234fe0a4b63 Author: Daniel Vetter Date: Tue Dec 8 09:49:18 2015 +0100 drm/atomic-helper: Drop unneeded argument from check_pending_encoder Just a remnant from an old iteration of this patch that I've forgotten to remove: We only need the encoder to figure out whether it has been reassigned in this update already or not to figure out whether there's a conflict or not. Reported-by: Thierry Reding Cc: Thierry Reding Link: http://patchwork.freedesktop.org/patch/msgid/1449564561-3896-2-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Thierry Reding Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic_helper.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit f03d8ede7a901d2425da5c21a91f6a76fe16b47f Author: Danilo Cesar Lemes de Paula Date: Wed Nov 25 18:07:55 2015 +0100 drm/doc: Convert to markdown DRM Docbook is now Markdown ready. This means its doc is able to use markdown text on it. * Documentation/DocBook/drm.tmpl: Contains a table duplicated from drivers/gpu/drm/i915/i915_reg.h. This is not needed anymore * drivers/gpu/drm/drm_modeset_lock.c: had a code example that used to look pretty bad on html. Fixed by using proper code markup. * drivers/gpu/drm/drm_prime.c: Remove spaces between lines to make a proper markup list. * drivers/gpu/drm/i915/i915_reg.h: Altought pandoc supports tables, it doesn't support table cell spanning. But we can use fixed-width for those special cases. * include/drm/drm_vma_manager.h: Another code example that should be proper indented with four spaces. v2 (Daniel): Adjust name to gpu.xml due to rename. v3 (Daniel): Split out the actual enabling in the Makefile - this way we can merge the conversion, while just keeping the enabling in a drm-private tree. Signed-off-by: Danilo Cesar Lemes de Paula (v1) Cc: Randy Dunlap Cc: Daniel Vetter Cc: Laurent Pinchart Cc: Jonathan Corbet Cc: Herbert Xu Cc: Stephan Mueller Cc: Michal Marek Cc: linux-kernel@vger.kernel.org Cc: linux-doc@vger.kernel.org Cc: intel-gfx Cc: dri-devel Acked-by: Dave Airlie Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1448471279-19748-2-git-send-email-daniel.vetter@ffwll.ch Documentation/DocBook/gpu.tmpl | 86 -------------------------------------- drivers/gpu/drm/drm_modes.c | 12 +++--- drivers/gpu/drm/drm_modeset_lock.c | 14 +++---- drivers/gpu/drm/drm_prime.c | 16 +++---- drivers/gpu/drm/i915/i915_reg.h | 48 ++++++++++----------- 5 files changed, 42 insertions(+), 134 deletions(-) commit 0da4cfd1a22acd521d385bc80ef48f4d038d0a03 Author: Magnus Damm Date: Tue Nov 17 13:31:22 2015 +0900 ARM: shmobile: r8a7794: IPMMU compat string SoC part number update Update IPMMU compat strings to include SoC part number. By specifying SoC part number in DT it becomes possible to implement SoC specific features in the IPMMU driver. Signed-off-by: Magnus Damm Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7794.dtsi | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit c51b1473edf88d40b65f6ce95e35465484d2eb48 Author: Magnus Damm Date: Tue Nov 17 13:31:13 2015 +0900 ARM: shmobile: r8a7793: IPMMU compat string SoC part number update Update IPMMU compat strings to include SoC part number. By specifying SoC part number in DT it becomes possible to implement SoC specific features in the IPMMU driver. Signed-off-by: Magnus Damm Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7793.dtsi | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 3c8ab0c88eff0a5cc61bc56a5929819f26da0b4a Author: Magnus Damm Date: Tue Nov 17 13:31:05 2015 +0900 ARM: shmobile: r8a7791: IPMMU compat string SoC part number update Update IPMMU compat strings to include SoC part number. By specifying SoC part number in DT it becomes possible to implement SoC specific features in the IPMMU driver. Signed-off-by: Magnus Damm Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791.dtsi | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit c8d6686e41afa560e4d5fc2b3f62aa79be3fb6d1 Author: Magnus Damm Date: Tue Nov 17 13:30:56 2015 +0900 ARM: shmobile: r8a7790: IPMMU compat string SoC part number update Update IPMMU compat strings to include SoC part number. By specifying SoC part number in DT it becomes possible to implement SoC specific features in the IPMMU driver. Signed-off-by: Magnus Damm Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7790.dtsi | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 0881841f7e7863ba0d33d4c34ee284cde85e18c4 Author: Daniel Lezcano Date: Fri Nov 13 10:44:38 2015 +0100 clocksource/drivers/tango-xtal: Replace code by clocksource_mmio_init The current code to initialize, register and read the clocksource is already factored out in mmio.c via the clocksource_mmio_init function. Factor out the code with the clocksource_mmio_init function. Signed-off-by: Daniel Lezcano drivers/clocksource/Kconfig | 1 + drivers/clocksource/tango_xtal.c | 18 +++--------------- 2 files changed, 4 insertions(+), 15 deletions(-) commit 46e7c3c6e5c56aadac391f92771e37dc03bec9b8 Author: Daniel Lezcano Date: Mon Nov 9 15:18:08 2015 +0100 clocksource/drivers/h8300: Increase the compilation test coverage Add the COMPILE_TEST option so the drivers can be compiled on different architecture with the 'allyesconfig' kernel configuration. Signed-off-by: Daniel Lezcano drivers/clocksource/Kconfig | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) commit 751605152b4dbcdf3da2643c965ec1c3b734e11d Author: Daniel Lezcano Date: Sun Nov 8 22:55:12 2015 +0100 h8300: Rename ctlr_out/in[bwl] to raw_read/write[bwl] For the sake of consistency, let rename all ctrl_out/in calls to the write/read calls so we have the same API consistent with the other architectures hence open the door for the increasing of the test compilation coverage. The unsigned long coercive cast is removed because all variables are set to the right type "void __iomem *". Signed-off-by: Daniel Lezcano arch/h8300/include/asm/io.h | 39 +++++++++++++++++++++--------------- arch/h8300/kernel/setup.c | 8 ++++---- drivers/clocksource/h8300_timer16.c | 28 +++++++++++++------------- drivers/clocksource/h8300_timer8.c | 34 +++++++++++++++---------------- drivers/clocksource/h8300_tpu.c | 28 +++++++++++++------------- drivers/irqchip/irq-renesas-h8300h.c | 8 ++++---- 6 files changed, 76 insertions(+), 69 deletions(-) commit acde758b31f33d1599a07930b8c0ea082157cf70 Author: Linus Walleij Date: Thu Oct 8 11:11:48 2015 +0200 ARM: realview: add device tree for PB11MPCore This adds a device tree for the ARM RealView ARM11MPCore reference design. Signed-off-by: Linus Walleij arch/arm/boot/dts/Makefile | 3 +- arch/arm/boot/dts/arm-realview-pb11mp.dts | 668 ++++++++++++++++++++++++++++++ 2 files changed, 670 insertions(+), 1 deletion(-) commit 1478cebfa0b472f797134d6a1d6d7e1222fd1a96 Author: Linus Walleij Date: Tue Oct 13 14:27:30 2015 +0200 clk: add ARM syscon ICST device tree bindings This adds the device tree bindings for the ARM Syscon ICST oscillators, which is a register-level interface to the Integrated Device Technology (IDT) ICS525 and ICS307 serially programmable oscillators. Cc: devicetree@vger.kernel.org Cc: Michael Turquette Cc: linux-clk@vger.kernel.org Acked-by: Stephen Boyd Acked-by: Rob Herring Signed-off-by: Linus Walleij .../devicetree/bindings/clock/arm-syscon-icst.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit d4eaf73b629fafda9c1a14fd72900dd0cfb610b3 Author: Linus Walleij Date: Wed Oct 7 14:32:59 2015 +0200 ARM: add DT bindings for the ARM11MPCore CPU cluster The ARM11MPCore has a Snoop Control Unit, but references to it were missing from the DT specification. Define a compatible string for this unit. Signed-off-by: Linus Walleij Documentation/devicetree/bindings/arm/scu.txt | 3 +++ 1 file changed, 3 insertions(+) commit 97a23beb8db9766ed8f673479af4dcc883311504 Author: Daniel Lezcano Date: Mon Nov 9 14:43:52 2015 +0100 clocksource/drivers/h8300_timer8: Separate the Kconfig option from the arch The current Kconfig option is the H8300 arch option. In order to comply to the current rule, let's create a specific option for the timer8 and select it from the arch's Kconfig. Signed-off-by: Daniel Lezcano arch/h8300/Kconfig | 1 + drivers/clocksource/Kconfig | 3 +++ drivers/clocksource/Makefile | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) commit 5420b4b156179ec634d9e42279b6898b85852960 Author: Linus Walleij Date: Fri Oct 9 13:38:57 2015 +0200 ARM: realview: add an DT SMP boot method This adds an SMP boot method for the ARM RealView reference designs. We also select HAVE_SMP by default and make it use SMP_ON_UP so we only need to support one single kernel across the RealView reference designs when using DT. The RealViews need to have the SCU (Snoop Control Unit) activated on boot, and this is now done by looking up its address from the device tree and initializing it and counting the available cores. The RealViews boot by using a magic address register in the system controller (SYS_FLAGS) to store the boot address, the ROM will then read this register to the PC when the CPUs are taken out of WFI. This code uses a handle to the syscon regmap to access this register. Signed-off-by: Linus Walleij Documentation/devicetree/bindings/arm/cpus.txt | 1 + arch/arm/mach-realview/Kconfig | 2 + arch/arm/mach-realview/Makefile | 2 +- arch/arm/mach-realview/platsmp-dt.c | 91 ++++++++++++++++++++++++++ 4 files changed, 95 insertions(+), 1 deletion(-) commit ca5b21fa6ec61cdf8906265141a9f15169d2808b Author: Linus Walleij Date: Thu Oct 8 11:09:31 2015 +0200 ARM: realview: select SP810 and ICST for the DT variant The device tree boot for RealView need the SP810 system controller (same as found on the Versatile Express) to set up the timers on the board so the machine can tick. It further utilize the ICST307 through its system controller for 6 other oscillators. We have to select these from Kconfig or the machine does not boot. Signed-off-by: Linus Walleij arch/arm/mach-realview/Kconfig | 2 ++ 1 file changed, 2 insertions(+) commit 5d87f7a314b94a8852a07d7e2260ee6db66cb29f Author: Linus Walleij Date: Thu Oct 8 11:08:31 2015 +0200 soc: versatile: add support for the PB11MPCore The SoC driver needs a minor update to display the correct sysfs information for the PB11MPCore. Signed-off-by: Linus Walleij drivers/soc/versatile/soc-realview.c | 4 ++++ 1 file changed, 4 insertions(+) commit d430819d69a51dc4798bb98d841afa9af2f5c83a Author: Linus Walleij Date: Tue Oct 13 14:29:54 2015 +0200 clk: versatile-icst: add device tree support This adds support for the ARM syscon ICST clocks to initialized directly from the device tree syscon node on ARM Integrator, Versatile and RealView reference designs. Cc: Michael Turquette Cc: Stephen Boyd Cc: linux-clk@vger.kernel.org Signed-off-by: Linus Walleij drivers/clk/versatile/clk-icst.c | 89 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 88 insertions(+), 1 deletion(-) commit 384d977d74f434ea089e9419fa9233fcfa18602b Author: Linus Walleij Date: Mon Oct 12 16:14:28 2015 +0200 clk: versatile-icst: refactor to allocate regmap separately Break out the registration function so it creates a regmap and pass to the setup function, so the latter can be shared with a device tree probe function that already has a regmap. Cc: Michael Turquette Cc: Stephen Boyd Cc: linux-clk@vger.kernel.org Signed-off-by: Linus Walleij drivers/clk/versatile/clk-icst.c | 47 ++++++++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 19 deletions(-) commit 179c8fb3c2a6cc86cc746e6d071be00f611328de Author: Linus Walleij Date: Mon Oct 12 15:52:50 2015 +0200 clk: versatile-icst: convert to use regmap Instead of passing around register bases, pass around a regmap in this driver. This refactoring make things so much easier when we later want to manage an ICST that is part of a syscon. Cc: Michael Turquette Cc: Stephen Boyd Cc: linux-clk@vger.kernel.org Signed-off-by: Linus Walleij drivers/clk/versatile/Kconfig | 1 + drivers/clk/versatile/clk-icst.c | 88 +++++++++++++++++++++++++++------------- 2 files changed, 61 insertions(+), 28 deletions(-) commit 157dfadef8323046df32caa4b39b46bf7737ca23 Author: Daniel Lezcano Date: Thu Nov 12 18:05:11 2015 +0100 clocksource/drivers/timer_sun5i: Replace code by clocksource_mmio_init The current code to initialize, register and read the clocksource is already factored out in mmio.c via the clocksource_mmio_init function. The only difference is the readl vs readl_relaxed. Factor out the code with the clocksource_mmio_init function. Signed-off-by: Daniel Lezcano Acked-by: Maxime Ripard drivers/clocksource/timer-sun5i.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) commit 05de7ed6795a1826e67fac56051f0ec23a643d38 Author: Daniel Lezcano Date: Mon Nov 9 10:55:30 2015 +0100 clocksource/drivers/h8300_timer16: Remove pointless lock The lock in the timer16_clocksource_read is not needed, remove it. Signed-off-by: Daniel Lezcano drivers/clocksource/h8300_timer16.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 5019c9023251efd3bfa22b1090d8ad1901914c93 Author: Daniel Lezcano Date: Mon Nov 9 10:52:35 2015 +0100 clocksource/drivers/h8300_timer16: Fix irq return value check The function irq_of_parse_and_map returns zero in case of failure. Fix the return code test to check against zero. Signed-off-by: Daniel Lezcano drivers/clocksource/h8300_timer16.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 903e5fd3f857c978ff8a75ae4bc5c51e6161031c Author: Daniel Lezcano Date: Mon Nov 9 10:51:09 2015 +0100 clocksource/drivers/h8300_timer16: Remove unused fields in timer16_priv The fields are not used in the code, remove them. Signed-off-by: Daniel Lezcano drivers/clocksource/h8300_timer16.c | 2 -- 1 file changed, 2 deletions(-) commit 8b24e8d7177257279f842c8169672c1180e6c831 Author: Daniel Lezcano Date: Mon Nov 9 10:49:14 2015 +0100 clocksource/drivers/h8300_timer16: Remove unused macros The macros are no longer used in the code, remove them. Signed-off-by: Daniel Lezcano drivers/clocksource/h8300_timer16.c | 18 ------------------ 1 file changed, 18 deletions(-) commit 8cbade52715634481cf4fd8ab9d4f091860724e2 Author: Daniel Lezcano Date: Mon Nov 9 10:46:13 2015 +0100 clocksource/drivers/h8300_timer16: Remove pointless headers The headers are not needed, remove them. Signed-off-by: Daniel Lezcano drivers/clocksource/h8300_timer16.c | 10 ---------- 1 file changed, 10 deletions(-) commit cce483e0ee70c2c9c6ff08e502b6f0bba3e15f62 Author: Daniel Lezcano Date: Sun Nov 8 23:24:28 2015 +0100 clocksource/drivers/h8300_timer8: Retrieve the clock rate at init time The current code retrieves the rate value when the timer is enabled which occurs each time a timer is re-armed. Except if the clock frequency has changed magically I don't see why this should be done each time. Retrieve the clock rate value at init time only. Signed-off-by: Daniel Lezcano drivers/clocksource/h8300_timer8.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) commit 254d8b5d59516d670111e0ac14d53fed4d61118d Author: Daniel Lezcano Date: Sun Nov 8 22:39:12 2015 +0100 clocksource/drivers/h8300_timer8: Remove irq and lock legacy code The time framawork takes care of disabling the interrupts and takes a lock to prevent races. Remove the legacy code in the driver taking care of the races. Signed-off-by: Daniel Lezcano drivers/clocksource/h8300_timer8.c | 16 ---------------- 1 file changed, 16 deletions(-) commit 7053fdac76451efe5f16c9e0974dc17fcf29f6d6 Author: Daniel Lezcano Date: Sun Nov 8 18:07:38 2015 +0100 clocksource/drivers/h8300_timer8: Remove pointless irq re-entrant safe code The current code assumes the interrupt function is re-entrant. That is not correct. An interrupt handler is never invoked concurrently. The interrupt line is masked on all processors. Remove the chewing flags in the code. Signed-off-by: Daniel Lezcano drivers/clocksource/h8300_timer8.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) commit 54a0cd5a7e107ba0cf15a4fb876595d0c8a7faab Author: Daniel Lezcano Date: Sun Nov 8 17:56:18 2015 +0100 clocksource/drivers/h8300_timer8: Fix irq return value check The value returned in case of error for the 'irq_of_parse_and_map' function is zero in case of error. Fix the check in the init code. Signed-off-by: Daniel Lezcano drivers/clocksource/h8300_timer8.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1f058d52b3e32b919742d451c673b3ab71c487dc Author: Daniel Lezcano Date: Sun Nov 8 17:46:54 2015 +0100 clocksource/drivers/h8300_timer8: Remove PERIODIC and ONESHOT macro Specify the delta as parameter for the timer8_clock_event_start function instead of using a macro to tell PERIODIC or ONESHOT. Signed-off-by: Daniel Lezcano drivers/clocksource/h8300_timer8.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit 7116ae437fc7380ffc0b9429438bba9de9681024 Author: Daniel Lezcano Date: Sun Nov 8 17:40:35 2015 +0100 clocksource/drivers/h8300_timer8: Remove unused macros Signed-off-by: Daniel Lezcano drivers/clocksource/h8300_timer8.c | 4 ---- 1 file changed, 4 deletions(-) commit d1f9db13e36de0d66bbc41e65da0dec08907d23a Author: Daniel Lezcano Date: Sun Nov 8 17:39:05 2015 +0100 clocksource/drivers/h8300_timer8: Remove unused headers Signed-off-by: Daniel Lezcano drivers/clocksource/h8300_timer8.c | 5 ----- 1 file changed, 5 deletions(-) commit 31221a4bfbf2717c9d8f7a8a1f490ac890fe867f Author: Daniel Lezcano Date: Sat Nov 7 14:26:46 2015 +0100 clocksource/drivers/h8300_tpu: Remove pointless headers for TPU Signed-off-by: Daniel Lezcano drivers/clocksource/h8300_tpu.c | 5 ----- 1 file changed, 5 deletions(-) commit 9471f1d95442e35c04d429378fb01a962ebfba55 Author: Daniel Lezcano Date: Sat Nov 7 14:18:51 2015 +0100 clocksource/drivers/h8300_tpu: Remove unused macros Some macros are unused, delete them. Signed-off-by: Daniel Lezcano drivers/clocksource/h8300_tpu.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) commit 8c09b7d6ba91ece6d10c7703f5cb201ff3265771 Author: Daniel Lezcano Date: Mon Nov 9 09:02:38 2015 +0100 clocksource/drivers/h8300_timer8: Fix compilation error with dev_warn The dev_warn is using the platform driver which was removed in the previous patch. Let's replace dev_warn by pr_warn. Signed-off-by: Daniel Lezcano drivers/clocksource/h8300_timer8.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4633f4cac85ad19f586fdd4f832ebd145190a68c Author: Yoshinori Sato Date: Sat Nov 7 01:31:44 2015 +0900 clocksource/drivers/h8300: Cleanup startup and remove module code. Remove some legacy code and replace it by the clksrc-of code. Do some cleanup and code consolidation. Signed-off-by: Yoshinori Sato Signed-off-by: Daniel Lezcano drivers/clocksource/h8300_timer16.c | 141 +++++++++++++-------------------- drivers/clocksource/h8300_timer8.c | 150 ++++++++++++------------------------ drivers/clocksource/h8300_tpu.c | 117 ++++++++++------------------ 3 files changed, 144 insertions(+), 264 deletions(-) commit 9115df89d12c2cf6db080a7ee57cd076f8416e4a Author: Jisheng Zhang Date: Thu Nov 5 10:32:06 2015 +0800 clocksource/drivers/dw_apb_timer_of: Implement ARM delay timer Implement an ARM delay timer to be used for udelay(). This allows us to skip the delay loop calibration at boot on Marvell BG2, BG2Q, BG2CD platforms. And after this patch, udelay() will be unaffected by CPU frequency changes. Note: Although in case there are several possible delay timers, we may not select the "best" delay timer. Take one Marvell Berlin platform for example: we have arch timer and dw-apb timer. The arch timer freq is 25MHZ while the dw-apb timer freq is 100MHZ, current selection would choose the dw-apb timer. But the dw apb timer is on the APB bus while arch timer sits in CPU, the cost of accessing the apb timer is higher than the arch timer. We could introduce "rating" concept to delay timer, but this approach "brings a lot of complexity and workarounds in the code for a small benefit" as pointed out by Daniel. Later, Arnd pointed out "However, we could argue that this actually doesn't matter at all, because the entire point of the ndelay()/ udelay()/mdelay() functions is to waste CPU cycles doing not much at all, so we can just as well waste them reading the timer register than spinning on the CPU reading the arch timer more often.", so we just simply register the dw apb base delay timer. Signed-off-by: Jisheng Zhang Signed-off-by: Daniel Lezcano drivers/clocksource/dw_apb_timer_of.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 0901f18432db704b7622c969a09fba9846e4cfcd Author: Daniel Lezcano Date: Wed Nov 4 14:21:42 2015 +0100 clocksource/drivers/Kconfig: Add missing GENERIC_CLOCKEVENTS dependency In order to compile on all arch without error with 'allyesconfig' make sure the platform selected the GENERIC_CLOCKEVENTS. Without this patch the new added drivers will prevent the kernel to compile on PARISC. Signed-off-by: Daniel Lezcano drivers/clocksource/Kconfig | 11 +++++++++++ 1 file changed, 11 insertions(+) commit ef49336bbd15bd4ffbdcf81501d25abcd87f16ab Author: Daniel Lezcano Date: Mon Nov 2 09:51:02 2015 +0100 clocksource/drivers/fsl-ftm: Add the COMPILE_TEST option Increase the compilation test coverage by adding the COMPILE_TEST option. Signed-off-by: Daniel Lezcano drivers/clocksource/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 778c5696b93f45c3d11442150e2634f454bb5213 Author: Daniel Lezcano Date: Sun Nov 1 21:57:05 2015 +0100 clocksource/drivers/samsung-pwm: Add the COMPILE_TEST option Increase the compilation test coverage by adding the COMPILE_TEST option. Signed-off-by: Daniel Lezcano drivers/clocksource/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 39366ef42194b58519274afc35f4a9282fb05931 Author: Daniel Lezcano Date: Sun Nov 1 21:51:30 2015 +0100 clocksource/drivers/exynos_mct: Fix Kconfig and add COMPILE_TEST option Let the platform's Kconfig to select the clock instead of having a reverse dependency from the driver to the platform options. Add the COMPILE_TEST option for the compilation test coverage. Due to the non portable 'delay' code, this driver is only compilable on ARM. Signed-off-by: Daniel Lezcano Tested-by: Krzysztof Kozlowski Reviewed-by: Krzysztof Kozlowski Reviewed-by: Chanwoo Choi arch/arm/mach-exynos/Kconfig | 1 + drivers/clocksource/Kconfig | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) commit 1becd6edea0c2849bc1a585d8c549d611517dd76 Author: Daniel Lezcano Date: Sun Nov 1 21:16:01 2015 +0100 clocksource/drivers/prcmu: Fix Kconfig and add COMPILE_TEST option Let the platform's Kconfig to select the clock instead of having a reverse dependency from the driver to the platform options. Add the COMPILE_TEST option for the compilation test coverage. This change is debatable as the option itself in the Kconfig allows to select the driver for the platform or not. This change will make the prcmu timer always selected. Signed-off-by: Daniel Lezcano Acked-by: Linus Walleij arch/arm/mach-ux500/Kconfig | 1 + drivers/clocksource/Kconfig | 4 +--- 2 files changed, 2 insertions(+), 3 deletions(-) commit 703296530609ef37e22e715c9f5438d60a7ec11f Author: Daniel Lezcano Date: Sun Nov 1 21:11:28 2015 +0100 clocksource/drivers/nomadik_mtu: Add the COMPILE_TEST option Increase the compilation test coverage by adding the COMPILE_TEST option. Due to the non portable code for the delay timer, this option is only available for the ARM architecture. Signed-off-by: Daniel Lezcano drivers/clocksource/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ddcf48c776845b9b83e7ab514b54220358993a6f Author: Daniel Lezcano Date: Sat Oct 31 21:44:52 2015 +0100 clocksource/drivers/lpc32xx: Add the COMPILE_TEST option Increase the compilation test coverage by adding the COMPILE_TEST option. Signed-off-by: Daniel Lezcano drivers/clocksource/Kconfig | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit b9755841e7b2280b94d72a7f42a0d2062a43b201 Author: Daniel Lezcano Date: Sat Oct 31 21:41:23 2015 +0100 clocksource/drivers/asm9260: Add the COMPILE_TEST option Increase the compilation test coverage by adding the COMPILE_TEST option. Signed-off-by: Daniel Lezcano drivers/clocksource/Kconfig | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 57f49318f9b1a083bcada14505c4c5397b9dd8f2 Author: Daniel Lezcano Date: Sat Oct 31 21:39:03 2015 +0100 clocksource/drivers/cadence_ttc: Add the COMPILE_TEST option Increase the compilation test coverage by adding the COMPILE_TEST option. The driver depends on the common clock framework, thus the dependency added on COMMON_CLK. Signed-off-by: Daniel Lezcano drivers/clocksource/Kconfig | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit b4bdf7ef301655b85875c9cf04f93a54bd763f97 Author: Daniel Lezcano Date: Sat Oct 31 20:23:54 2015 +0100 clocksource/drivers/vt8500: Add the COMPILE_TEST option Increase the compilation test coverage by adding the COMPILE_TEST option. Signed-off-by: Daniel Lezcano drivers/clocksource/Kconfig | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 351bb99b71048529f6977389859a9f83fb2115ab Author: Daniel Lezcano Date: Sat Oct 31 20:20:43 2015 +0100 clocksource/drivers/vt8500: Remove unneeded header Remove the header inclusion which is pointless. Signed-off-by: Daniel Lezcano drivers/clocksource/vt8500_timer.c | 1 - 1 file changed, 1 deletion(-) commit adce4bc8311f43dd0c2207eae841f925f3a6fcf2 Author: Daniel Lezcano Date: Sat Oct 31 20:13:09 2015 +0100 clocksource/drivers/tegra2: Add the COMPILE_TEST option Increase the compilation test coverage by adding the COMPILE_TEST option. Due to the non portable code for the delay timer, this option is only available for the ARM architecture. Signed-off-by: Daniel Lezcano drivers/clocksource/Kconfig | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit f0c5afb787cfc800f7678f614d746b9bd2f18d01 Author: Daniel Lezcano Date: Sat Oct 31 17:01:46 2015 +0100 clocksource/drivers/sun5i: Add the COMPILE_TEST option Increase the compilation test coverage by adding the COMPILE_TEST option. The driver depends on the common clock framework, thus the dependency added on COMMON_CLK. Signed-off-by: Daniel Lezcano drivers/clocksource/Kconfig | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit b4fcd48b887eb4bb4511b17ed65d2588602a938a Author: Daniel Lezcano Date: Fri Oct 30 22:39:00 2015 +0100 clocksource/drivers/sun4i: Add the COMPILE_TEST option Increase the compilation test coverage by adding the COMPILE_TEST option. Signed-off-by: Daniel Lezcano drivers/clocksource/Kconfig | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 2b749cb3a5153fc4c312e405ecca8a925e6632c8 Author: Arnd Bergmann Date: Wed Nov 25 17:32:18 2015 +0100 ARM: realview: remove private barrier implementation The realview barrier implementation tries to avoid calling outer_sync in order to not lock up as a result of a bug in the l220 cache controller. This gets in the way of the multiplatform support, but we can still remove it if we make sure that the outer_sync function never gets called, by replacing the function pointer with NULL, right after initialization. Signed-off-by: Arnd Bergmann [Fixed up header inclusions] Signed-off-by: Linus Walleij arch/arm/mach-realview/Kconfig | 2 -- arch/arm/mach-realview/include/mach/barriers.h | 8 -------- arch/arm/mach-realview/realview_eb.c | 7 +++++++ arch/arm/mach-realview/realview_pb11mp.c | 6 ++++++ 4 files changed, 13 insertions(+), 10 deletions(-) commit 5b097f6ba57fb4a8e7da11147048f7e1c898bc29 Author: Daniel Lezcano Date: Fri Oct 30 22:35:00 2015 +0100 clocksource/drivers/dw_apb: Add the COMPILE_TEST option Increase the compilation test coverage by adding the COMPILE_TEST option. Signed-off-by: Daniel Lezcano drivers/clocksource/Kconfig | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 38541bf48588d5350e45167510766f8bb6ba6582 Author: Arnd Bergmann Date: Wed Nov 25 17:32:17 2015 +0100 ARM: no longer force unbuffered DMA for realview Commit 42c4dafe803dca ("ARM: 6202/1: Do not ARM_DMA_MEM_BUFFERABLE on RealView boards with L210/L220") changed the generic setting for ARM_DMA_MEM_BUFFERABLE to be disabled on any Realview kernel that includes support for any of the ARM11 variations. Doing this was required to allow doing DMA without a lockup in the l2x0 cache controller on the Realview platform. Unfortunately, in a kernel that also contains support for any ARMv7 based machine, the same change makes it impossible to do DMA on ARMv7, which gets in the way of enabling multiplatform support on Realview. As confirmed by Catalin Marinas and Linus Walleij, the current code for Realview that we have in the kernel does not actually perform any DMA, and this is unlikely to change in the future. Therefore we can revert 42c4dafe803dca without introducing regressions, but we must never start using DMA on this platform in the future. Signed-off-by: Arnd Bergmann Cc: Russell King Signed-off-by: Linus Walleij arch/arm/mm/Kconfig | 2 -- 1 file changed, 2 deletions(-) commit 3c30a4a357bd1011322782d6a60fa284d8bd8286 Author: Arnd Bergmann Date: Wed Nov 25 17:32:16 2015 +0100 clk/realview: stop using machine headers In order to move realview into multiplatform, we have to prevent device drivers from accessing the machine header files. In case of the clk driver, this is very simple, we just copy the small set of register definitions into the driver that needs them. Signed-off-by: Arnd Bergmann Signed-off-by: Linus Walleij drivers/clk/versatile/clk-realview.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit e6c1db13f955a7b2091d047dc8c294717e0d1a8f Author: Daniel Lezcano Date: Fri Oct 30 22:32:10 2015 +0100 clocksource/drivers/digicolor: Add the COMPILE_TEST option Increase the compilation test coverage by adding the COMPILE_TEST option. Signed-off-by: Daniel Lezcano drivers/clocksource/Kconfig | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 930748a0335573ff360744e068dd841b63a29bf0 Author: Arnd Bergmann Date: Wed Nov 25 17:32:15 2015 +0100 ARM: realview: don't map undefined PCI registers PCI support for realview was never merged, and trying to build realview with CONFIG_PCI enabled fails because the constants for the mapping windows are not defined anywhere. This removes them from the static I/O window mapping table as a preparation for multiplatform support. Signed-off-by: Arnd Bergmann Signed-off-by: Linus Walleij arch/arm/mach-realview/realview_pba8.c | 8 -------- arch/arm/mach-realview/realview_pbx.c | 8 -------- 2 files changed, 16 deletions(-) commit fd0053c9eb7e01b1d300f4c28c9eec7ca4cda690 Author: Arnd Bergmann Date: Wed Nov 25 17:32:14 2015 +0100 ARM: realview: remove sparsemem hack The realview-pbx platform has an elaborate way of avoiding the use of highmem by redefining its phys_to_virt function. In practice this doesn't help all that much, and it gets in the way of doing multiplatform builds for realview. This removes the feature and kills off the mach/memory.h file for realview. We also lose the ability to do sparsemem with this patch, but that should be put back into place for generic multiplatform configurations, to save a little memory on PBX. Signed-off-by: Arnd Bergmann Signed-off-by: Linus Walleij arch/arm/Kconfig | 2 - arch/arm/mach-realview/Kconfig | 5 +-- arch/arm/mach-realview/include/mach/memory.h | 64 ---------------------------- 3 files changed, 2 insertions(+), 69 deletions(-) commit c916554971fdfda3d34259851684a76ece5f85d1 Author: Daniel Lezcano Date: Fri Oct 30 22:28:31 2015 +0100 clocksource/drivers/orion: Add the COMPILE_TEST option Increase the compilation test coverage by adding the COMPILE_TEST option. The driver is using the atomic_io API which is not portable, so the compilation is restricted to ARM only. Signed-off-by: Daniel Lezcano drivers/clocksource/Kconfig | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 0b7a7bb70562960834f4c2b7ed703f06dbb0c7e8 Author: Daniel Lezcano Date: Fri Oct 30 22:07:39 2015 +0100 clocksource/drivers/meson6: Add the COMPILE_TEST option Increase the compilation test coverage by adding the COMPILE_TEST option. Signed-off-by: Daniel Lezcano drivers/clocksource/Kconfig | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 9519e80c755592b3527f435497521563d158649d Author: Daniel Lezcano Date: Fri Oct 30 20:30:34 2015 +0100 clocksource/drivers/armada-370-xp: Add the COMPILE_TEST option Increase the compilation test coverage by adding the COMPILE_TEST option. Due to the non portable 'delay' code, the compilation is restricted to the ARM architecture only. Signed-off-by: Daniel Lezcano drivers/clocksource/Kconfig | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 40ada2aac5e3a3c38f295d4e37b182fc4feff723 Author: Daniel Lezcano Date: Fri Oct 30 17:58:47 2015 +0100 clocksource/drivers/rockchip: Add COMPILE_TEST option Increase the compilation test coverage by adding the COMPILE_TEST option. Due to the dsb() usage in the driver, this driver is only compilable on ARM and ARM64. Signed-off-by: Daniel Lezcano drivers/clocksource/Kconfig | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit fbca9eabe9b6c7602c13b0d671f58f62c1a15d4d Author: Daniel Lezcano Date: Fri Oct 30 17:53:27 2015 +0100 clocksource/drivers/mediatek: Add the COMPILE_TEST option Increase the compilation test coverage by adding the COMPILE_TEST option. Signed-off-by: Daniel Lezcano drivers/clocksource/Kconfig | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit dfdb16525b1093328617c15d57593ef4c4759d7a Author: Daniel Lezcano Date: Fri Oct 30 17:28:13 2015 +0100 clocksource/drivers/pistachio: Add the COMPILE_TEST option Increase the compilation test coverage by adding the COMPILE_TEST option. Signed-off-by: Daniel Lezcano drivers/clocksource/Kconfig | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 5a7351f0e156d1b359b5662d4475bd295f0617d9 Author: Daniel Lezcano Date: Thu Oct 29 20:54:19 2015 +0100 clocksource/drivers/tango: Add COMPILE_TEST option Increase the compilation test coverage by adding the COMPILE_TEST option. Signed-off-by: Daniel Lezcano drivers/clocksource/Kconfig | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 5ae996cbee445e899915d16903f140d064b53cc7 Author: Daniel Lezcano Date: Fri Oct 9 17:47:32 2015 +0200 clocksource/drivers/pxa_timer: Add the COMPILE_TEST option Increase the compilation test coverage by adding the COMPILE_TEST option. Signed-off-by: Daniel Lezcano drivers/clocksource/Kconfig | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 389d9b5841b031103208f1836bcb49a0710531ed Author: Daniel Lezcano Date: Fri Oct 9 15:48:38 2015 +0200 clocksource/drivers/pxa_timer: Move the Kconfig rule Instead of having the clocksource's Kconfig depending on the arch, let the arch to select the timer it needs. The CLKSRC_OF dependency is removed because already selected by the ARCH_PXA, and it is added for SA1100. Signed-off-by: Daniel Lezcano arch/arm/Kconfig | 3 +++ drivers/clocksource/Kconfig | 3 +-- 2 files changed, 4 insertions(+), 2 deletions(-) commit baacaf8338516d107b568ae727a47855c7fe6b51 Author: Daniel Lezcano Date: Fri Oct 9 15:36:28 2015 +0200 clocksource/drivers/st_lpc: Add the COMPILE_TEST option Increase the compilation test coverage by adding the COMPILE_TEST option. Signed-off-by: Daniel Lezcano drivers/clocksource/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2ffdf71b83bfe5df46f959029c3aad1fd5c298e6 Author: Daniel Lezcano Date: Fri Oct 9 15:33:06 2015 +0200 clocksource/drivers/st_lpc: Fix Kconfig dependency Change the Kconfig selection rule by letting the STI arch to select the timer. Signed-off-by: Daniel Lezcano Acked-by: Maxime Coquelin arch/arm/mach-sti/Kconfig | 1 + drivers/clocksource/Kconfig | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) commit 3dc0e9f6fda39d1f9c893806bc971ec4ee4939fa Author: Daniel Lezcano Date: Fri Oct 9 11:10:43 2015 +0200 clocksource/drivers/qcom: Make COMPILE_TEST enabled for ARM architecture In order to be consistent with the rest of the drivers compilation, let's introduce the COMPILE_TEST option. Unfortunately, the delay.h code is not portable, so the compilation test coverage will be restricted to the ARM architecture. Signed-off-by: Daniel Lezcano drivers/clocksource/Kconfig | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 23b8f81f3890edd06bcabdaac33ff5c087114c59 Author: Caesar Wang Date: Fri Sep 25 10:14:55 2015 +0800 clocksource/drivers/rockchip: Remove dsb() usage The dsb() instruction is pointless in this code. Remove it. That also fixes the ARM64 compilation issue. Signed-off-by: Daniel Lezcano Tested-by: Caesar Wang drivers/clocksource/rockchip_timer.c | 4 ---- 1 file changed, 4 deletions(-) commit 364eba4b3a58a3e9af5a1355f4131a58cd1f3b8d Author: Daniel Lezcano Date: Thu Oct 29 18:33:47 2015 +0100 time: Define dummy functions for the generic sched clock When we try to compile a clocksource driver with the COMPILE_TEST option, we can't select the GENERIC_SCHED_CLOCK because the sched_clock() symbol will be duplicated with the one defined for the x86. In order to fix that, we don't select the GENERIC_SCHED_CLOCK in the driver Kconfig's file but we define some empty functions for the different symbols in order to prevent the unresolved ones. This patch fixes the COMPILE_TEST option for the compile test coverage for the clocksource drivers. Without this patch, we can't add the COMPILE_TEST option for the clocksource drivers using the GENERIC_SCHED_CLOCK. Signed-off-by: Daniel Lezcano include/linux/sched_clock.h | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit a0d2216ec0d04ec6bf2a7282774338d5ffb3ff0b Author: Caesar Wang Date: Fri Sep 25 10:14:56 2015 +0800 clocksource/drivers/rockchip: Make the driver more readable Let's checkstyle to clean up the macros with such trivial details. Signed-off-by: Caesar Wang Signed-off-by: Daniel Lezcano drivers/clocksource/rockchip_timer.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) commit a3a8908fb02bfa2514750734bfd3afc6c1daeb89 Author: Lucas Stach Date: Sun Oct 25 16:40:30 2015 +0100 clocksource/drivers/tegra: Allow timer irq affinity change Allow the timer core to change the smp affinity of the broadcast timer irq by setting CLOCK_EVT_FEAT_DYNIRQ flag. This reduces interrupt pressure and wakeups on CPU0 as well as vastly reducing the number of timer broadcast IPIs. Signed-off-by: Lucas Stach Signed-off-by: Daniel Lezcano drivers/clocksource/tegra20_timer.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 11faa20eb43997baae0c72916d8a959efcb6f8c4 Author: Alexey Klimov Date: Sun Oct 25 23:21:24 2015 +0000 clocksource/drivers/mtk_timer: Fix memleak in mtk_timer_init() Add error path to clear evt struct allocated by kzalloc() in the beginning of function mtk_timer_init(). Acked-by: Matthias Brugger Signed-off-by: Alexey Klimov Signed-off-by: Daniel Lezcano drivers/clocksource/mtk_timer.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 6cd7ccaaa84f6d9ee9ed33c66d7492121e2b98fd Author: Alexey Klimov Date: Sun Oct 25 23:21:23 2015 +0000 clocksource/drivers/mtk_timer: Fix pr_warn() messages in mtk_timer_init 1) Change pr_warn()s to pr_err()s. These messages are actually errors and not warnings. 2) Add missing \n. 3) Error message for kzalloc() failure is removed per suggestion by Joe Perches. There is generic stack_dump() for allocation issues. Signed-off-by: Alexey Klimov Signed-off-by: Daniel Lezcano drivers/clocksource/mtk_timer.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit 9a78ec45bd6ac7650a995a9de0912fd75d6b6886 Author: Alexey Klimov Date: Sun Oct 25 23:21:22 2015 +0000 clocksource/drivers/mtk_timer: Add pr_fmt define It's a bit unclear what subsystem/driver emits some messages to dmesg in the function mtk_init_timer(). Use pr_fmt to auto-prefix the messages appropriately. Acked-by: Matthias Brugger Signed-off-by: Alexey Klimov Signed-off-by: Daniel Lezcano drivers/clocksource/mtk_timer.c | 2 ++ 1 file changed, 2 insertions(+) commit 979fccfb7348dbd968daf0249aa484a0297f83df Author: Dan Williams Date: Tue Dec 15 00:34:21 2015 -0800 libnvdimm, pfn: enable pfn sysfs interface unit testing The unit test infrastructure uses CMA and real memory to emulate nvdimm resources. The call to devm_memremap_pages() can simply be mocked in the same manner as memremap and we mock phys_to_pfn_t() to clear PFN_MAP since these resources are not registered with in the pgmap_radix. Signed-off-by: Dan Williams tools/testing/nvdimm/Kbuild | 2 ++ tools/testing/nvdimm/test/iomap.c | 48 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) commit 1f0947fe3a7a8e013a6044aafaca4939b5999f2b Author: Andy Gross Date: Thu Sep 24 14:18:51 2015 -0500 soc: qcom: smd-rpm: Add existing platform support This patch adds support for all current Qualcomm platforms which utilize RPM over SMD. This includes both MSM8916 and APQ8084. Reviewed-by: Bjorn Andersson Signed-off-by: Andy Gross drivers/soc/qcom/smd-rpm.c | 2 ++ 1 file changed, 2 insertions(+) commit 1fd6b873c2c30ff1798d9ad7985a050cd7860722 Author: Kouei Abe Date: Mon Dec 14 16:42:38 2015 +0100 arm64: defconfig: Add Renesas R-Car SATA driver for R-Car Gen3 SoCs This adds Renesas sata_rcar driver to defconfig. Signed-off-by: Kouei Abe Signed-off-by: Simon Horman arch/arm64/configs/defconfig | 1 + 1 file changed, 1 insertion(+) commit 0a8047ac68e50e4ccbadcfc6b6b070805b976885 Author: Benjamin Poirier Date: Mon Nov 9 15:50:21 2015 -0800 e1000e: Fix msi-x interrupt automask Since the introduction of 82574 support in e1000e, the driver has worked on the assumption that msi-x interrupt generation is automatically disabled after each irq. As it turns out, this is not the case. Currently, rx interrupts can fire multiple times before and during napi processing. This can be a problem for users because frames that arrive in a certain window (after adapter->clean_rx() but before napi_complete_done() has cleared NAPI_STATE_SCHED) generate an interrupt which does not lead to napi_schedule(). These frames sit in the rx queue until another frame arrives (a tcp retransmit for example). While the EIAC and CTRL_EXT registers are properly configured for irq automask, the modification of IAM in e1000_configure_msix() is what prevents automask from working as intended. This patch removes that erroneous write and fixes interrupt rearming for tx interrupts. It also clears IAME from CTRL_EXT. This is not strictly necessary for operation of the driver but it is to avoid disruption from potential programs that access the registers directly, like `ethregs -c`. Reported-by: Frank Steiner Signed-off-by: Benjamin Poirier Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/netdev.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 691cd0a64d9215a838a7351de890d815b9a2622e Author: Wolfram Sang Date: Tue Dec 8 10:37:52 2015 +0100 ARM: shmobile: r8a7794: dtsi: add internal delay for i2c IPs Signed-off-by: Wolfram Sang Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7794.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) commit 49160dc19fcfa00c0d0901853aac49df87228915 Author: Wolfram Sang Date: Tue Dec 8 10:37:51 2015 +0100 ARM: shmobile: r8a7791: dtsi: add internal delay for i2c IPs Signed-off-by: Wolfram Sang Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) commit ac8e7f31c70e3089a46afd449d84c8a957053eea Author: Wolfram Sang Date: Tue Dec 8 10:37:50 2015 +0100 ARM: shmobile: r8a7790: dtsi: add internal delay for i2c IPs Signed-off-by: Wolfram Sang Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7790.dtsi | 4 ++++ 1 file changed, 4 insertions(+) commit a61cfe4ffad7864a07e0c74969ca7ceb77ab2f1f Author: Benjamin Poirier Date: Mon Nov 9 15:50:20 2015 -0800 e1000e: Do not write lsc to ics in msi-x mode In msi-x mode, there is no handler for the lsc interrupt so there is no point in writing that to ics now that we always assume Other interrupts are caused by lsc. Reviewed-by: Jasna Hodzic Signed-off-by: Benjamin Poirier Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/defines.h | 3 ++- drivers/net/ethernet/intel/e1000e/netdev.c | 28 +++++++++++++++++----------- 2 files changed, 19 insertions(+), 12 deletions(-) commit 16ecba59bc333d6282ee057fb02339f77a880beb Author: Benjamin Poirier Date: Mon Nov 9 15:50:19 2015 -0800 e1000e: Do not read ICR in Other interrupt Removes the ICR read in the other interrupt handler, uses EIAC to autoclear the Other bit from ICR and IMS. This allows us to avoid interference with Rx and Tx interrupts in the Other interrupt handler. The information read from ICR is not needed. IMS is configured such that the only interrupt cause that can trigger the Other interrupt is Link Status Change. Signed-off-by: Benjamin Poirier Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/netdev.c | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) commit 4d432f67ff004dc387ba307d418d0eae4fa9dc13 Author: Benjamin Poirier Date: Mon Nov 9 15:50:18 2015 -0800 e1000e: Remove unreachable code msi-x interrupts are not shared so there's no need to check if the interrupt was really from this adapter. Signed-off-by: Benjamin Poirier Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/netdev.c | 6 ------ 1 file changed, 6 deletions(-) commit 940b68e2c3e4ebf032885203c3970e9649f814af Author: Vitaly Kuznetsov Date: Mon Dec 14 19:02:01 2015 -0800 Drivers: hv: ring_buffer: eliminate hv_ringbuffer_peek() Currently, there is only one user for hv_ringbuffer_read()/ hv_ringbuffer_peak() functions and the usage of these functions is: - insecure as we drop ring_lock between them, someone else (in theory only) can acquire it in between; - non-optimal as we do a number of things (acquire/release the above mentioned lock, calculate available space on the ring, ...) twice and this path is performance-critical. Remove hv_ringbuffer_peek() moving the logic from __vmbus_recvpacket() to hv_ringbuffer_read(). Signed-off-by: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/channel.c | 30 ++-------------------- drivers/hv/hyperv_vmbus.h | 11 +++----- drivers/hv/ring_buffer.c | 65 +++++++++++++++++++++++++++-------------------- 3 files changed, 42 insertions(+), 64 deletions(-) commit 667d374064b0cc48b6122101b287908d1b392bdb Author: Vitaly Kuznetsov Date: Mon Dec 14 19:02:00 2015 -0800 Drivers: hv: remove code duplication between vmbus_recvpacket()/vmbus_recvpacket_raw() vmbus_recvpacket() and vmbus_recvpacket_raw() are almost identical but there are two discrepancies: 1) vmbus_recvpacket() doesn't propagate errors from hv_ringbuffer_read() which looks like it is not desired. 2) There is an error message printed in packetlen > bufferlen case in vmbus_recvpacket(). I'm removing it as it is usless for users to see such messages and /vmbus_recvpacket_raw() doesn't have it. Signed-off-by: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/channel.c | 65 ++++++++++++++++++---------------------------------- 1 file changed, 22 insertions(+), 43 deletions(-) commit b5f53dde8d8e84a6ee200dbd0bd90a400a8fe1a1 Author: Vitaly Kuznetsov Date: Mon Dec 14 19:01:59 2015 -0800 Drivers: hv: ring_buffer: remove code duplication from hv_ringbuffer_peek/read() hv_ringbuffer_peek() does the same as hv_ringbuffer_read() without advancing the read index. The only functional change this patch brings is moving hv_need_to_signal_on_read() call under the ring_lock but this function is just a couple of comparisons. Signed-off-by: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/ring_buffer.c | 68 ++++++++++++++++++------------------------------ 1 file changed, 25 insertions(+), 43 deletions(-) commit 45870a441361d1c05a5f767c4ece2f6e30e0da9c Author: Vitaly Kuznetsov Date: Mon Dec 14 19:01:58 2015 -0800 Drivers: hv: ring_buffer: remove stray smp_read_barrier_depends() smp_read_barrier_depends() does nothing on almost all arcitectures including x86 and having it in the beginning of hv_get_ringbuffer_availbytes() does not provide any guarantees anyway. Signed-off-by: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman include/linux/hyperv.h | 2 -- 1 file changed, 2 deletions(-) commit 822f18d4d3e9d4efb4996bbe562d0f99ab82d7dd Author: Vitaly Kuznetsov Date: Mon Dec 14 19:01:57 2015 -0800 Drivers: hv: ring_buffer.c: fix comment style Convert 6+-string comments repeating function names to normal kernel-style comments and fix a couple of other comment style issues. No textual or functional changes intended. Signed-off-by: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/ring_buffer.c | 135 +++++++++-------------------------------------- 1 file changed, 26 insertions(+), 109 deletions(-) commit 9420098adc50a88d4a441e0f92d54bfa7af44448 Author: Vitaly Kuznetsov Date: Mon Dec 14 19:01:56 2015 -0800 Drivers: hv: utils: fix crash when device is removed from host side The crash is observed when a service is being disabled host side while userspace daemon is connected to the device: [ 90.244859] general protection fault: 0000 [#1] SMP ... [ 90.800082] Call Trace: [ 90.800082] [] __fput+0xc8/0x1f0 [ 90.800082] [] ____fput+0xe/0x10 ... [ 90.800082] [] do_signal+0x28/0x580 [ 90.800082] [] ? finish_task_switch+0xa6/0x180 [ 90.800082] [] ? __schedule+0x28f/0x870 [ 90.800082] [] ? hvt_op_read+0x12a/0x140 [hv_utils] ... The problem is that hvutil_transport_destroy() which does misc_deregister() freeing the appropriate device is reachable by two paths: module unload and from util_remove(). While module unload path is protected by .owner in struct file_operations util_remove() path is not. Freeing the device while someone holds an open fd for it is a show stopper. In general, it is not possible to revoke an fd from all users so the only way to solve the issue is to defer freeing the hvutil_transport structure. Signed-off-by: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv_utils_transport.c | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) commit a15025660d4703a8b37290a14734cb4a84875770 Author: Vitaly Kuznetsov Date: Mon Dec 14 19:01:55 2015 -0800 Drivers: hv: utils: introduce HVUTIL_TRANSPORT_DESTROY mode When Hyper-V host asks us to remove some util driver by closing the appropriate channel there is no easy way to force the current file descriptor holder to hang up but we can start to respond -EBADF to all operations asking it to exit gracefully. As we're setting hvt->mode from two separate contexts now we need to use a proper locking. Signed-off-by: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv_utils_transport.c | 71 ++++++++++++++++++++++++++++++++--------- drivers/hv/hv_utils_transport.h | 1 + 2 files changed, 57 insertions(+), 15 deletions(-) commit a72f3a4ccff22de879a1f599210ecdd9bd483a43 Author: Vitaly Kuznetsov Date: Mon Dec 14 19:01:54 2015 -0800 Drivers: hv: utils: rename outmsg_lock As a preparation to reusing outmsg_lock to protect test-and-set openrations on 'mode' rename it the more general 'lock'. Signed-off-by: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv_utils_transport.c | 14 +++++++------- drivers/hv/hv_utils_transport.h | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) commit 1f75338b6fece2bbd42ac3623830c65e2df6e031 Author: Vitaly Kuznetsov Date: Mon Dec 14 19:01:53 2015 -0800 Drivers: hv: utils: fix memory leak on on_msg() failure inmsg should be freed in case of on_msg() failure to avoid memory leak. Preserve the error code from on_msg(). Signed-off-by: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv_utils_transport.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit a689d2510f188e75391dbebacbddfd74d42f2a7e Author: Dexuan Cui Date: Mon Dec 14 16:01:58 2015 -0800 tools: hv: vss: fix the write()'s argument: error -> vss_msg Fix the write()'s argument in the daemon code. Cc: Vitaly Kuznetsov Cc: "K. Y. Srinivasan" Signed-off-by: Dexuan Cui Cc: stable@vger.kernel.org Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman tools/hv/hv_vss_daemon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2d0c3b5ad739697a68dc8a444f5b9f4817cf8f8f Author: K. Y. Srinivasan Date: Mon Dec 14 16:01:57 2015 -0800 Drivers: hv: utils: Invoke the poll function after handshake When the handshake with daemon is complete, we should poll the channel since during the handshake, we will not be processing any messages. This is a potential bug if the host is waiting for a response from the guest. I would like to thank Dexuan for pointing this out. Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv_kvp.c | 2 +- drivers/hv/hv_snapshot.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit b282e4c06fe89fc750fb26791c0bd7b25315973a Author: K. Y. Srinivasan Date: Mon Dec 14 16:01:56 2015 -0800 Drivers: hv: vmbus: Force all channel messages to be delivered on CPU 0 Force all channel messages to be delivered on CPU0. These messages are not performance critical and are used during the setup and teardown of the channel. Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/connection.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit c35b82ef0294ae5052120615f5cfcef17c5a6bf7 Author: Andrey Smetanin Date: Mon Dec 14 16:01:55 2015 -0800 drivers/hv: correct tsc page sequence invalid value Hypervisor Top Level Functional Specification v3/4 says that TSC page sequence value = -1(0xFFFFFFFF) is used to indicate that TSC page no longer reliable source of reference timer. Unfortunately, we found that Windows Hyper-V guest side implementation uses sequence value = 0 to indicate that Tsc page no longer valid. This is clearly visible inside Windows 2012R2 ntoskrnl.exe HvlGetReferenceTime() function dissassembly: HvlGetReferenceTime proc near xchg ax, ax loc_1401C3132: mov rax, cs:HvlpReferenceTscPage mov r9d, [rax] test r9d, r9d jz short loc_1401C3176 rdtsc mov rcx, cs:HvlpReferenceTscPage shl rdx, 20h or rdx, rax mov rax, [rcx+8] mov rcx, cs:HvlpReferenceTscPage mov r8, [rcx+10h] mul rdx mov rax, cs:HvlpReferenceTscPage add rdx, r8 mov ecx, [rax] cmp ecx, r9d jnz short loc_1401C3132 jmp short loc_1401C3184 loc_1401C3176: mov ecx, 40000020h rdmsr shl rdx, 20h or rdx, rax loc_1401C3184: mov rax, rdx retn HvlGetReferenceTime endp This patch aligns Tsc page invalid sequence value with Windows Hyper-V guest implementation which is more compatible with both Hyper-V hypervisor and KVM hypervisor. Signed-off-by: Andrey Smetanin Signed-off-by: Denis V. Lunev CC: "K. Y. Srinivasan" CC: Haiyang Zhang CC: Vitaly Kuznetsov Signed-off-by: Denis V. Lunev Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8599846d73997cdbccf63f23394d871cfad1e5e6 Author: K. Y. Srinivasan Date: Mon Dec 14 16:01:54 2015 -0800 Drivers: hv: vmbus: Fix a Host signaling bug Currently we have two policies for deciding when to signal the host: One based on the ring buffer state and the other based on what the VMBUS client driver wants to do. Consider the case when the client wants to explicitly control when to signal the host. In this case, if the client were to defer signaling, we will not be able to signal the host subsequently when the client does want to signal since the ring buffer state will prevent the signaling. Implement logic to have only one signaling policy in force for a given channel. Signed-off-by: K. Y. Srinivasan Reviewed-by: Haiyang Zhang Tested-by: Haiyang Zhang Cc: # v4.2+ Signed-off-by: Greg Kroah-Hartman drivers/hv/channel.c | 18 ++++++++++++++++++ include/linux/hyperv.h | 18 ++++++++++++++++++ 2 files changed, 36 insertions(+) commit 40f26f3168bf7a4da490db308dc0bd9f9923f41f Author: Jake Oshins Date: Mon Dec 14 16:01:52 2015 -0800 drivers:hv: Allow for MMIO claims that span ACPI _CRS records This patch makes 16GB GPUs work in Hyper-V VMs, since, for compatibility reasons, the Hyper-V BIOS lists MMIO ranges in 2GB chunks in its root bus's _CRS object. Signed-off-by: Jake Oshins Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/vmbus_drv.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit d6f591e339d23f434efda11917da511870891472 Author: Dexuan Cui Date: Mon Dec 14 16:01:51 2015 -0800 Drivers: hv: vmbus: channge vmbus_connection.channel_lock to mutex spinlock is unnecessary here. mutex is enough. Signed-off-by: Dexuan Cui Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/channel_mgmt.c | 12 ++++++------ drivers/hv/connection.c | 7 +++---- drivers/hv/hyperv_vmbus.h | 2 +- 3 files changed, 10 insertions(+), 11 deletions(-) commit f52078cf5711ce47c113a58702b35c8ff5f212f5 Author: Dexuan Cui Date: Mon Dec 14 16:01:50 2015 -0800 Drivers: hv: vmbus: release relid on error in vmbus_process_offer() We want to simplify vmbus_onoffer_rescind() by not invoking hv_process_channel_removal(NULL, ...). Signed-off-by: Dexuan Cui Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/channel_mgmt.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) commit 34c6801e3310ad286c7bb42bc88d42926b8f99bf Author: Dexuan Cui Date: Mon Dec 14 16:01:49 2015 -0800 Drivers: hv: vmbus: fix rescind-offer handling for device without a driver In the path vmbus_onoffer_rescind() -> vmbus_device_unregister() -> device_unregister() -> ... -> __device_release_driver(), we can see for a device without a driver loaded: dev->driver is NULL, so dev->bus->remove(dev), namely vmbus_remove(), isn't invoked. As a result, vmbus_remove() -> hv_process_channel_removal() isn't invoked and some cleanups(like sending a CHANNELMSG_RELID_RELEASED message to the host) aren't done. We can demo the issue this way: 1. rmmod hv_utils; 2. disable the Heartbeat Integration Service in Hyper-V Manager and lsvmbus shows the device disappears. 3. re-enable the Heartbeat in Hyper-V Manager and modprobe hv_utils, but lsvmbus shows the device can't appear again. This is because, the host thinks the VM hasn't released the relid, so can't re-offer the device to the VM. We can fix the issue by moving hv_process_channel_removal() from vmbus_close_internal() to vmbus_device_release(), since the latter is always invoked on device_unregister(), whether or not the dev has a driver loaded. Signed-off-by: Dexuan Cui Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/channel.c | 6 ------ drivers/hv/channel_mgmt.c | 6 +++--- drivers/hv/vmbus_drv.c | 15 +++------------ 3 files changed, 6 insertions(+), 21 deletions(-) commit 64b7faf903dae2df94d89edf2c688b16751800e4 Author: Dexuan Cui Date: Mon Dec 14 16:01:48 2015 -0800 Drivers: hv: vmbus: do sanity check of channel state in vmbus_close_internal() This fixes an incorrect assumption of channel state in the function. Signed-off-by: Dexuan Cui Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/channel.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 63d55b2aeb5e4faa170316fee73c3c47ea9268c7 Author: Dexuan Cui Date: Mon Dec 14 16:01:47 2015 -0800 Drivers: hv: vmbus: serialize process_chn_event() and vmbus_close_internal() process_chn_event(), running in the tasklet, can race with vmbus_close_internal() in the case of SMP guest, e.g., when the former is accessing channel->inbound.ring_buffer, the latter could be freeing the ring_buffer pages. To resolve the race, we can serialize them by disabling the tasklet when the latter is running here. Signed-off-by: Dexuan Cui Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/channel.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) commit efc267226b827f347a329c395e16c08973b0e3d6 Author: K. Y. Srinivasan Date: Mon Dec 14 16:01:46 2015 -0800 Drivers: hv: vmbus: Get rid of the unused irq variable The irq we extract from ACPI is not used - we deliver hypervisor interrupts on a special vector. Make the necessary adjustments. Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/vmbus_drv.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) commit 90e031fa06ad6b660a8e9bebbb80bd30e555a2a5 Author: K. Y. Srinivasan Date: Mon Dec 14 16:01:45 2015 -0800 Drivers: hv: vmbus: Get rid of the unused macro The macro VMBUS_DEVICE() is unused; get rid of it. Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman include/linux/hyperv.h | 13 ------------- 1 file changed, 13 deletions(-) commit 4ae9250893485f380275e7d5cb291df87c4d9710 Author: K. Y. Srinivasan Date: Mon Dec 14 16:01:44 2015 -0800 Drivers: hv: vmbus: Use uuid_le_cmp() for comparing GUIDs Use uuid_le_cmp() for comparing GUIDs. Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/channel_mgmt.c | 3 +-- drivers/hv/vmbus_drv.c | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) commit af3ff643ea91ba64dd8d0b1cbed54d44512f96cd Author: K. Y. Srinivasan Date: Mon Dec 14 16:01:43 2015 -0800 Drivers: hv: vmbus: Use uuid_le type consistently Consistently use uuid_le type in the Hyper-V driver code. Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/channel_mgmt.c | 2 +- drivers/hv/vmbus_drv.c | 10 ++--- include/linux/hyperv.h | 92 ++++++++++++++--------------------------- include/linux/mod_devicetable.h | 2 +- scripts/mod/file2alias.c | 2 +- 5 files changed, 40 insertions(+), 68 deletions(-) commit ed9ba608e4851144af8c7061cbb19f751c73e998 Author: Olaf Hering Date: Mon Dec 14 16:01:42 2015 -0800 Drivers: hv: vss: run only on supported host versions The Backup integration service on WS2012 has appearently trouble to negotiate with a guest which does not support the provided util version. Currently the VSS driver supports only version 5/0. A WS2012 offers only version 1/x and 3/x, and vmbus_prep_negotiate_resp correctly returns an empty icframe_vercnt/icmsg_vercnt. But the host ignores that and continues to send ICMSGTYPE_NEGOTIATE messages. The result are weird errors during boot and general misbehaviour. Check the Windows version to work around the host bug, skip hv_vss_init on WS2012 and older. Signed-off-by: Olaf Hering Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv_snapshot.c | 5 +++++ 1 file changed, 5 insertions(+) commit 3053c762444a83ec6a8777f9476668b23b8ab180 Author: Jake Oshins Date: Mon Dec 14 16:01:41 2015 -0800 drivers:hv: Define the channel type for Hyper-V PCI Express pass-through This defines the channel type for PCI front-ends in Hyper-V VMs. Signed-off-by: Jake Oshins Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/channel_mgmt.c | 3 +++ include/linux/hyperv.h | 11 +++++++++++ 2 files changed, 14 insertions(+) commit a108393dbf764efb2405f21ca759806c65b8bc16 Author: Jake Oshins Date: Mon Dec 14 16:01:40 2015 -0800 drivers:hv: Export the API to invoke a hypercall on Hyper-V This patch exposes the function that hv_vmbus.ko uses to make hypercalls. This is necessary for retargeting an interrupt when it is given a new affinity. Since we are exporting this API, rename the API as it will be visible outside the hv.c file. Signed-off-by: Jake Oshins Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv.c | 20 ++++++++++---------- drivers/hv/hyperv_vmbus.h | 2 +- include/linux/hyperv.h | 1 + 3 files changed, 12 insertions(+), 11 deletions(-) commit 619848bd074343ff2bdeeafca0be39748f6da372 Author: Jake Oshins Date: Mon Dec 14 16:01:39 2015 -0800 drivers:hv: Export a function that maps Linux CPU num onto Hyper-V proc num This patch exposes the mapping between Linux CPU number and Hyper-V virtual processor number. This is necessary because the hypervisor needs to know which virtual processors to target when making a mapping in the Interrupt Redirection Table in the I/O MMU. Signed-off-by: Jake Oshins Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/vmbus_drv.c | 17 +++++++++++++++++ include/linux/hyperv.h | 2 ++ 2 files changed, 19 insertions(+) commit 17efbee8ba02ef00d3b270998978f8a1a90f1d92 Author: Andrey Smetanin Date: Mon Dec 14 16:01:38 2015 -0800 drivers/hv: cleanup synic msrs if vmbus connect failed Before vmbus_connect() synic is setup per vcpu - this means hypervisor receives writes at synic msr's and probably allocate hypervisor resources per synic setup. If vmbus_connect() failed for some reason it's neccessary to cleanup synic setup by call hv_synic_cleanup() at each vcpu to get a chance to free allocated resources by hypervisor per synic. This patch does appropriate cleanup in case of vmbus_connect() failure. Signed-off-by: Andrey Smetanin Signed-off-by: Denis V. Lunev Reviewed-by: Vitaly Kuznetsov CC: "K. Y. Srinivasan" CC: Haiyang Zhang CC: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/vmbus_drv.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit b00359642c2427da89dc8f77daa2c9e8a84e6d76 Author: Olaf Hering Date: Mon Dec 14 16:01:37 2015 -0800 Drivers: hv: utils: use memdup_user in hvt_op_write Use memdup_user to handle OOM. Fixes: 14b50f80c32d ('Drivers: hv: util: introduce hv_utils_transport abstraction') Signed-off-by: Olaf Hering Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv_utils_transport.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit cdc0c0c94e4e6dfa371d497a3130f83349b6ead6 Author: Olaf Hering Date: Mon Dec 14 16:01:36 2015 -0800 Drivers: hv: util: catch allocation errors Catch allocation errors in hvutil_transport_send. Fixes: 14b50f80c32d ('Drivers: hv: util: introduce hv_utils_transport abstraction') Signed-off-by: Olaf Hering Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv_utils_transport.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 6dfb867cea9e93ae9220f0b2e702b0440e4c8b4b Author: Olaf Hering Date: Mon Dec 14 16:01:35 2015 -0800 tools: hv: remove repeated HV_FCOPY string HV_FCOPY is already used as identifier in syslog. Signed-off-by: Olaf Hering Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman tools/hv/hv_fcopy_daemon.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b4ed5d1682c6613988c2eb1de55df5ac9988afcc Author: Olaf Hering Date: Mon Dec 14 16:01:34 2015 -0800 tools: hv: report ENOSPC errors in hv_fcopy_daemon Currently some "Unspecified error 0x80004005" is reported on the Windows side if something fails. Handle the ENOSPC case and return ERROR_DISK_FULL, which allows at least Copy-VMFile to report a meaning full error. Signed-off-by: Olaf Hering Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman include/uapi/linux/hyperv.h | 1 + tools/hv/hv_fcopy_daemon.c | 20 +++++++++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) commit 3cace4a616108539e2730f8dc21a636474395e0f Author: Olaf Hering Date: Mon Dec 14 16:01:33 2015 -0800 Drivers: hv: utils: run polling callback always in interrupt context All channel interrupts are bound to specific VCPUs in the guest at the point channel is created. While currently, we invoke the polling function on the correct CPU (the CPU to which the channel is bound to) in some cases we may run the polling function in a non-interrupt context. This potentially can cause an issue as the polling function can be interrupted by the channel callback function. Fix the issue by running the polling function on the appropriate CPU at interrupt level. Additional details of the issue being addressed by this patch are given below: Currently hv_fcopy_onchannelcallback is called from interrupts and also via the ->write function of hv_utils. Since the used global variables to maintain state are not thread safe the state can get out of sync. This affects the variable state as well as the channel inbound buffer. As suggested by KY adjust hv_poll_channel to always run the given callback on the cpu which the channel is bound to. This avoids the need for locking because all the util services are single threaded and only one transaction is active at any given point in time. Additionally, remove the context variable, they will always be the same as recv_channel. Signed-off-by: Olaf Hering Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv_fcopy.c | 34 ++++++++++++---------------------- drivers/hv/hv_kvp.c | 28 ++++++++++------------------ drivers/hv/hv_snapshot.c | 29 +++++++++++------------------ drivers/hv/hyperv_vmbus.h | 6 +----- 4 files changed, 34 insertions(+), 63 deletions(-) commit c0b200cfb0403740171c7527b3ac71d03f82947a Author: K. Y. Srinivasan Date: Mon Dec 14 16:01:32 2015 -0800 Drivers: hv: util: Increase the timeout for util services Util services such as KVP and FCOPY need assistance from daemon's running in user space. Increase the timeout so we don't prematurely terminate the transaction in the kernel. Host sets up a 60 second timeout for all util driver transactions. The host will retry the transaction if it times out. Set the guest timeout at 30 seconds. Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv_fcopy.c | 3 ++- drivers/hv/hv_kvp.c | 3 ++- drivers/hv/hyperv_vmbus.h | 5 +++++ 3 files changed, 9 insertions(+), 2 deletions(-) commit 5833e0526820c3216de8ae60661fb307c89c8710 Author: Gregory CLEMENT Date: Fri Dec 11 11:34:53 2015 +0100 net/macb: add support for resetting PHY using GPIO With device tree it is no more possible to reset the PHY at board level. Furthermore, doing in the driver allow to power down the PHY when the network interface is no more used. This reset can't be done at the PHY driver level. The PHY must be able to answer the to the mii bus scan to let the kernel creating a PHY device. The patch introduces a new optional property "phy-reset-gpios" inspired from the one use for the FEC. Signed-off-by: Gregory CLEMENT Acked-by: Rob Herring Signed-off-by: David S. Miller Documentation/devicetree/bindings/net/macb.txt | 3 +++ drivers/net/ethernet/cadence/macb.c | 8 ++++++++ drivers/net/ethernet/cadence/macb.h | 1 + 3 files changed, 12 insertions(+) commit a11fac3776fc4db6a9fa1104b1d0477809c677e0 Author: Jaegeuk Kim Date: Mon Dec 14 18:58:42 2015 -0800 f2fs: add symbol to avoid any confusion with tools This patch adds MAX_VOLUME_NAME to sync with f2fs-tools. Signed-off-by: Jaegeuk Kim include/linux/f2fs_fs.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 9a59b62fd88196844cee5fff851bee2cfd7afb6e Author: Chao Yu Date: Tue Dec 15 09:58:18 2015 +0800 f2fs: do more integrity verification for superblock Do more sanity check for superblock during ->mount. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/super.c | 98 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) commit c05c0d544edfb0ffbbd01acd199ea9626bdfd6c3 Author: Andrzej Hajda Date: Mon Dec 14 11:06:03 2015 +0100 extcon: max77843: fix handling return value of regmap_irq_get_virq The function can return negative values, so its result should be assigned to signed variable. 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 Reviewed-by: Krzysztof Kozlowski Signed-off-by: Chanwoo Choi drivers/extcon/extcon-max77843.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cbc46603df56b5933aef6765fc50d3aa18f96ced Author: Andrzej Hajda Date: Mon Dec 14 12:12:42 2015 +0100 extcon: max77693: fix handling return value of regmap_irq_get_virq The function can return negative values, so its result should be assigned to signed variable. Signed-off-by: Andrzej Hajda Suggested-by: Krzysztof Kozlowski Reviewed-by: Krzysztof Kozlowski Signed-off-by: Chanwoo Choi drivers/extcon/extcon-max77693.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c2957563ad0965c8bfb393dcd22ddb683dd1ff1c Author: Andrzej Hajda Date: Mon Dec 14 11:06:02 2015 +0100 extcon: max14577: fix handling return value of regmap_irq_get_virq The function can return negative values, so its result should be assigned to signed variable. 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 Reviewed-by: Krzysztof Kozlowski Signed-off-by: Chanwoo Choi drivers/extcon/extcon-max14577.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 51bce5bc38bdb79c0f7ab33f1fe91a68ef1afa77 Merge: eb227c5 03a97d8 Author: Dave Airlie Date: Tue Dec 15 11:01:04 2015 +1000 Merge tag 'drm-intel-next-2015-12-04-1' of git://anongit.freedesktop.org/drm-intel into drm-next This is the "fix igt basic test set issues" edition. - more PSR fixes from Rodrigo, getting closer - tons of fifo underrun fixes from Ville - runtime pm fixes from Imre, Daniel Stone - fix SDE interrupt handling properly (Jani Nikula) - hsw/bdw fdi modeset sequence fixes (Ville) - "don't register bad VGA connectors and fall over" fixes (Ville) - more fbc fixes from Paulo - and a grand total of exactly one feature item: Implement dma-buf/fence based cross-driver sync in the i915 pageflip path (Alex Goins) * tag 'drm-intel-next-2015-12-04-1' of git://anongit.freedesktop.org/drm-intel: (70 commits) drm/i915: Update DRIVER_DATE to 20151204 drm/i915/skl: Add SKL GT4 PCI IDs Revert "drm/i915: Extend LRC pinning to cover GPU context writeback" drm/i915: Correct the Ref clock value for BXT drm/i915: Restore skl_gt3 device info drm/i915: Fix RPS pointer passed from wait_ioctl to i915_wait_request Revert "drm/i915: Remove superfluous NULL check" drm/i915: Clean up device info structure definitions drm/i915: Remove superfluous NULL check drm/i915: Handle cdclk limits on broadwell. i915: wait for fence in prepare_plane_fb i915: wait for fence in mmio_flip_work_func drm/i915: Extend LRC pinning to cover GPU context writeback drm/i915/guc: Clean up locks in GuC drm/i915: only recompress FBC after flushing a drawing operation drm/i915: get rid of FBC {,de}activation messages drm/i915: kill fbc.uncompressed_size drm/i915: use a single intel_fbc_work struct drm/i915: check for FBC planes in the same place as the pipes drm/i915: alloc/free the FBC CFB during enable/disable ... commit eb227c554ee68b6719c9298947f344e713fa712c Author: Nicolai Hähnle Date: Sat Dec 12 11:42:23 2015 -0500 drm/ttm: fix documentation of ttm_bo_reserve Previously, the comment was inconsistent. EDEADLK is what the ww_mutex mechanism really returns. Signed-off-by: Nicolai Hähnle Signed-off-by: Dave Airlie include/drm/ttm/ttm_bo_driver.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 36e2693b68562d4b984b841c041ffa76370e9b7f Author: Charles Keepax Date: Mon Dec 14 10:37:13 2015 +0000 extcon: arizona: Add DT binding examples Add an example for all elements of the Arizona extcon device tree binding. Signed-off-by: Charles Keepax Signed-off-by: Chanwoo Choi .../devicetree/bindings/extcon/extcon-arizona.txt | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit cb0eac8fd1a3180ce260a8dca01584bc5495a8e8 Author: Charles Keepax Date: Mon Dec 14 10:37:12 2015 +0000 extcon: arizona: Update device tree binding for mic detect configurations Update the device tree binding documentation to include documentation for the wlf,micd-configs property that is used to specify the configurations for headset polarity detection (CTIA / OTMP). Signed-off-by: Charles Keepax Acked-by: Rob Herring Signed-off-by: Chanwoo Choi Documentation/devicetree/bindings/extcon/extcon-arizona.txt | 8 ++++++++ 1 file changed, 8 insertions(+) commit bb6da5d954b934305cc536f8cc970c500d1dd54d Author: Charles Keepax Date: Mon Dec 14 10:37:11 2015 +0000 extcon: arizona: Add device bindings for the micd configurations Add device bindings to support configuring the jack detection configurations. Each configuration needs to specify the connection of the mic det pins, which micbias should be used and the value of the micd polarity GPIO required to activate that configuration. Signed-off-by: Charles Keepax Acked-by: Chanwoo Choi Signed-off-by: Chanwoo Choi drivers/extcon/extcon-arizona.c | 56 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 54 insertions(+), 2 deletions(-) commit b70f014d58b976930b9e8337980954a958c01d7f Author: Chunming Zhou Date: Thu Dec 10 15:46:50 2015 +0800 drm/amdgpu: change default sched jobs to 32 Change the default scheduler queue size from 16 to 32. Signed-off-by: Chunming Zhou Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 37cd0ca204a55e123fca9ce411e6571ac49fa8f7 Author: Chunming Zhou Date: Thu Dec 10 15:45:11 2015 +0800 drm/amdgpu: unify AMDGPU_CTX_MAX_CS_PENDING and amdgpu_sched_jobs Signed-off-by: Chunming Zhou Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu.h | 5 ++--- drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 25 ++++++++++++++++++------- 2 files changed, 20 insertions(+), 10 deletions(-) commit 21de54b3c4d08d2b20e80876c6def0b421dfec2e Merge: 870a171 2146136 Author: Dave Airlie Date: Tue Dec 15 10:43:27 2015 +1000 Merge tag 'drm-vc4-next-2015-12-11' of http://github.com/anholt/linux into drm-next This pull request brings in 3D acceleration support for the VC4 GPU. While there is still performance work to be done (particularly surrounding RCL generation), the CL submit ABI should be settled and done now. * tag 'drm-vc4-next-2015-12-11' of http://github.com/anholt/linux: drm/vc4: Add an interface for capturing the GPU state after a hang. drm/vc4: Add support for async pageflips. drm/vc4: Add support for drawing 3D frames. drm/vc4: Bind and initialize the V3D engine. drm/vc4: Fix a typo in a V3D debug register. drm/vc4: Add an API for creating GPU shaders in GEM BOs. drm/vc4: Add create and map BO ioctls. drm/vc4: Add a BO cache. drm: Create a driver hook for allocating GEM object structs. commit c648ed7c5c7f0e3bb4ab11bf08bccf99b42a4cbb Author: Chunming Zhou Date: Thu Dec 10 15:50:02 2015 +0800 drm/amdgpu: handle error case for ctx Properly handle ctx init failure. Signed-off-by: Chunming Zhou Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 870a171814da2b3230edbbfbb4b2fa1c4abb5413 Merge: b15c50b 9bac40c Author: Dave Airlie Date: Tue Dec 15 10:42:07 2015 +1000 Merge branch 'exynos-drm-next' of git://git.kernel.org:/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-next - Support runtime pm . In case of most ARM SoC, each IP has each power domain which should be controlled by each IP driver using runtime pm interface. So this patch series makes each IP driver to control its own power domain when drm dpms is requested. - Support of_graph based dt binding for DP panel. . This patch series adds of_graph based dt binding for DP panel. And also it keeps backward compatibility. This includes dt binding patch so I got Acked-by from Krzysztof Kozlowski who is a Exynos SoC maintainer and from Rob Herring who is a device tree maintainer. - Cleanup for Exynos DRM IPP enhancement. . This patch series is a first step for enhancing existing IPP framework which will integrate existing IPP functions with DRM KMS part so that these can be transparent to userspace. For other portion of the patch series, we will have more times for the review.] * 'exynos-drm-next' of git://git.kernel.org:/pub/scm/linux/kernel/git/daeinki/drm-exynos: (29 commits) drm/exynos: gem: remove old unused prototypes drm/exynos: fimd: fix dma burst size setting for small plane size drm/exynos: fix clipping when scaling is enabled drm/exynos: mixer: use ratio precalculated in exynos_state drm/exynos: add generic check for plane state drm/exynos: introduce exynos_drm_plane_config structure drm/exynos: mixer: enable video overlay plane only when VP is available drm/exynos: mixer: use crtc->state->adjusted_mode instead of crtc->mode drm/exynos: introduce exynos_drm_plane_state structure drm/exynos: move dma_addr attribute from exynos plane to exynos fb drm/exynos: exynos7-decon: remove excessive check drm/exynos: rotator: convert to common clock framework drm/exynos: gsc: add device tree support and remove usage of static mappings drm/exynos: gsc: fix wrong pm_runtime state drm/exynos: gsc: prepare and unprepare gsc clock ARM: dts: Use OF graph for DP to panel connection in exynos5800-peach-pi dt-bindings: exynos-dp: update ports node binding for panel drm/exynos: dp: add of_graph dt binding support for panel drm/exynos: decon: remove unused variables drm/exynos: dsi: modify a error type when getting a node failed ... commit e8deea2d4bb441751a4c1730495fa9810a208de5 Author: Chunming Zhou Date: Fri Dec 11 18:22:52 2015 +0800 drm/amdgpu: add entity only when first job come umd somtimes will create a context for every ring, that means some entities wouldn't be used at all. Signed-off-by: Chunming Zhou Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit b15c50be96914f84f9afcd6636ecfcd0835a9776 Merge: 4526903 d6e6e14 Author: Dave Airlie Date: Tue Dec 15 10:07:07 2015 +1000 Merge tag 'topic/drm-misc-2015-12-14' of git://anongit.freedesktop.org/drm-intel into drm-next Last (very likely at least) drm-misc pull for 4.5. 3 big things: - piles of docs for kms vtables. - drm.debug dmesg output prettification from Ville (i915 parts are for 4.6 I think) - connector mode probing/validating/merging cleanup from Ville. [airlied : fix drm_encoder_init conflict.] * tag 'topic/drm-misc-2015-12-14' of git://anongit.freedesktop.org/drm-intel: (43 commits) drm: modes: Revert cc344980c767 "replace simple_strtoul by kstrtouint" drm: Expand the drm_helper_probe_single_connector_modes() docs drm: Allow override_edid to override the firmware EDID drm/sti: Drop bogus drm_mode_sort() call drm: Drop drm_helper_probe_single_connector_modes_nomerge() drm: Only merge mode type bits between new probed modes drm: Flatten drm_mode_connector_list_update() a bit drm: Rename MODE_UNVERIFIED to MODE_STALE drm: Don't overwrite UNVERFIED mode status to OK drm: Add plane->name and use it in debug prints drm: Add crtc->name and use it in debug messages drm: Use driver specified encoder name drm: Pass 'name' to drm_encoder_init() drm: Pass 'name' to drm_universal_plane_init() drm: Pass 'name' to drm_crtc_init_with_planes() drm: Documentation style guide drm: Document drm_encoder/crtc_helper_funcs drm: Move drm_display_mode an related docs into kerneldoc drm/atomic-helper: Mention the new system/resume helpers the docs drm: Document drm_connector_helper_funcs ... commit d602de05934c1d3022b153ff879e81f65df2a7b6 Author: Joe Schultz Date: Tue Nov 3 12:37:29 2015 -0600 igb: Explicitly label self-test result indices Previously, the ethtool self-test gstrings/data arrays were accessed via hardcoded indices, which made the code difficult to follow. This patch replaces the hardcoded values with enum-based labels. Signed-off-by: Joe Schultz Signed-off-by: Aaron Sierra Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/igb/igb_ethtool.c | 38 ++++++++++++++++++---------- 1 file changed, 24 insertions(+), 14 deletions(-) commit 3627f8f1d137f6487e51ff1199a54a087a2a6446 Author: Joe Schultz Date: Tue Nov 3 12:37:24 2015 -0600 igb: Improve cable length function for I210, etc. Previously, the PHY-specific code to get the cable length for the I210 internal and related PHYs was reporting the cable length of a single pair and reporting it as the min, max, and total cable length. Update it so that all four pairs are checked so the true min, max, and average cable lengths are reported. Signed-off-by: Joe Schultz Signed-off-by: Aaron Sierra Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/igb/e1000_defines.h | 5 ++- drivers/net/ethernet/intel/igb/e1000_hw.h | 1 + drivers/net/ethernet/intel/igb/e1000_phy.c | 54 ++++++++++++++++++++++---- 3 files changed, 51 insertions(+), 9 deletions(-) commit 06b0dd64923b5598a52de4c889a116c49493bf97 Author: Aaron Sierra Date: Tue Nov 3 12:37:18 2015 -0600 igb: Don't add PHY address to PCDL address There is no reason to add the PHY address into the PCDL register address. Signed-off-by: Aaron Sierra Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/igb/e1000_phy.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 4526903a308640b40049df8083a0335cd6fb4ae6 Merge: 663a233 2abd1c8 Author: Dave Airlie Date: Tue Dec 15 09:52:29 2015 +1000 Merge branch 'msm-next' of git://people.freedesktop.org/~robclark/linux into drm-next Main thing this time around is DSI support for msm8960/apq8064, which should be helpful for getting an upstream kernel working on nexus7/nexus4/etc. * 'msm-next' of git://people.freedesktop.org/~robclark/linux: (29 commits) drm/msm/mdp: fix a problematic usage of WARN_ON() drm/msm/dsi: Added missing mutex_unlock drm/msm: ratelimit error irq msgs drm/msm: Use unlocked gem unreferencing drm/msm: trivial whitespace fix dt-bindings: msm/dsi: Add DSIv2 documentation dt-bindings: msm/dsi: Fix the order in which clocks are listed drm/msm/dsi: Enable MMSS SPFB port via syscon drm/msm/dsi: Don't use iommu for command TX buffer for DSIv2 drm/msm/dsi: Add dsi_cfg for APQ8064 drm/msm/dsi: Set up link clocks for DSIv2 drm/msm/dsi: Parse bus clocks from a list drm/msm/dsi: Delay dsi_clk_init drm/msm/dsi: Use a better way to figure out DSI version drm/msm/dsi: Add DSI PLL for 28nm 8960 PHY drm/msm/dsi: Add support for 28nm PHY on 8960 drm/msm/dsi: Don't get byte/pixel source clocks from DT drm/msm/mdp4: Initialize DSI encoders drm/msm/mdp4: Call custom round_pixclk helper only if the encoder type is TMDS drm/msm/dsi: Add a mdp4 encoder for DSI ... commit 84599238ea78d98136fc6f6239a14083128ecf8b Author: Paul Gortmaker Date: Sun Dec 13 18:57:12 2015 -0500 drivers/cpuidle: make cpuidle-exynos.c explicitly non-modular The Kconfig currently controlling compilation of this code is: cpuidle/Kconfig.arm:config ARM_EXYNOS_CPUIDLE cpuidle/Kconfig.arm: bool "Cpu Idle Driver for the Exynos processors" ...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_platform_driver() uses the same init level priority as builtin_platform_driver() the init ordering remains unchanged with this commit. Acked-by: Daniel Lezcano Signed-off-by: Paul Gortmaker Signed-off-by: Rafael J. Wysocki drivers/cpuidle/cpuidle-exynos.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit fdc7d515adc302030f7e4113959130bd8d123546 Author: Paul Gortmaker Date: Sun Dec 13 18:57:11 2015 -0500 drivers/cpuidle: make cpuidle-ux500.c explicitly non-modular The Kconfig currently controlling compilation of this code is: cpuidle/Kconfig.arm:config ARM_U8500_CPUIDLE cpuidle/Kconfig.arm: bool "Cpu Idle Driver for the ST-E u8500 processors" ...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_platform_driver() uses the same init level priority as builtin_platform_driver() the init ordering remains unchanged with this commit. Acked-by: Daniel Lezcano Signed-off-by: Paul Gortmaker Signed-off-by: Rafael J. Wysocki drivers/cpuidle/cpuidle-ux500.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 94e8057b8420ca6eea90df76f8598639d0df26ec Author: Paul Gortmaker Date: Sun Dec 13 18:57:10 2015 -0500 drivers/cpuidle: make cpuidle-clps711x.c explicitly non-modular The Kconfig currently controlling compilation of this code is: drivers/cpuidle/Kconfig.arm:config ARM_CLPS711X_CPUIDLE drivers/cpuidle/Kconfig.arm: bool "CPU Idle Driver for CLPS711X processors" ...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_platform_driver() uses the same init level priority as builtin_platform_driver() the init ordering remains unchanged with this commit. Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code. We also delete the MODULE_LICENSE tag etc. since all that information is already contained at the top of the file in the comments. Acked-by: Daniel Lezcano Signed-off-by: Paul Gortmaker Signed-off-by: Rafael J. Wysocki drivers/cpuidle/cpuidle-clps711x.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 836d0830188a97d5c73e8eb514f346a857c086b9 Author: Lv Zheng Date: Thu Dec 3 10:43:14 2015 +0800 ACPI / debugger: Add module support for ACPI debugger This patch converts AML debugger into a loadable module. Note that, it implements driver unloading at the level dependent on the module reference count. Which means if ACPI debugger is being used by a userspace program, "rmmod acpi_dbg" should result in failure. Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/Kconfig | 16 +++- drivers/acpi/Makefile | 2 +- drivers/acpi/acpi_dbg.c | 80 +++++++++++------- drivers/acpi/bus.c | 3 +- drivers/acpi/osl.c | 207 +++++++++++++++++++++++++++++++++++++++++++++-- include/linux/acpi.h | 71 ++++++++++++++++ include/linux/acpi_dbg.h | 52 ------------ 7 files changed, 340 insertions(+), 91 deletions(-) commit 37645d6590a49d3009eecdf093599795da2b5b41 Author: Lv Zheng Date: Thu Dec 3 10:43:07 2015 +0800 tools/power/acpi: Add userspace AML interface support This patch adds a userspace tool to access Linux kernel AML debugger interface. Tow modes are supported by this tool: 1. Interactive: Users are able to launch a debugging shell to talk with in-kernel AML debugger. Note that it's user duty to ensure kernel runtime integrity by using this debugging tool: A. Some control methods evaluated by the users may result in kernel panics if those control methods shouldn't be evaluated by the OSPMs according to the current BIOS/OS configurations. B. Currently if a single stepping evaluation couldn't run to an end, then the synchronization primitives acquired by the evaluation may block normal OSPM control method evaluations. 2. Batch: Users are able to execute debugger commands in a script. Note that in addition to the above duties, it's user duty to ensure script runtime integrity by using this debugging tool in this mode: C. Currently only those commands that are not used for single stepping are suitable to be used in this mode. D. If the execution of the command may cause a failure that could result in an endless kernel execution, the execution of the script may also get blocked. To exit the utility, currently "exit/quit" commands are recommended, but ctrl-C" can also be used. Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki tools/power/acpi/Makefile | 16 +- tools/power/acpi/tools/acpidbg/Makefile | 27 ++ tools/power/acpi/tools/acpidbg/acpidbg.c | 438 +++++++++++++++++++++++++++++++ 3 files changed, 473 insertions(+), 8 deletions(-) commit 8cfb0cdf07e2c260c4d1a102bfec35183907834f Author: Lv Zheng Date: Thu Dec 3 10:43:00 2015 +0800 ACPI / debugger: Add IO interface to access debugger functionalities This patch adds /sys/kernel/debug/acpi/acpidbg, which can be used by userspace programs to access ACPICA debugger functionalities. Known issue: 1. IO flush support acpi_os_notify_command_complete() and acpi_os_wait_command_ready() can be used by acpi_dbg module to implement .flush() filesystem operation. While this patch doesn't go that far. It then becomes userspace tool's duty now to flush old commands before executing new batch mode commands. Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/Kconfig | 3 +- drivers/acpi/Makefile | 1 + drivers/acpi/acpi_dbg.c | 779 ++++++++++++++++++++++++++++++++++++++ drivers/acpi/bus.c | 2 + drivers/acpi/osl.c | 55 ++- include/acpi/platform/aclinux.h | 2 - include/acpi/platform/aclinuxex.h | 10 - include/linux/acpi_dbg.h | 52 +++ 8 files changed, 887 insertions(+), 17 deletions(-) commit 8a2a2501a893bfce65af7098a1b0a61f14f95626 Author: Lv Zheng Date: Thu Dec 3 10:42:53 2015 +0800 ACPICA: Debugger: Fix runtime stub issues of ACPI_DEBUGGER_EXEC using different stub mechanism ACPICA commit 11522d6b894054fc4d62dd4f9863ec151296b386 The ACPI_DEBUGGER_EXEC is a problem now when the debugger code is compiled but runtime disabled. They actually will get executed in this situation. Although such executions are harmless if we can correctly make acpi_db_single_step() a runtime stub, users may still do not want to see the debugger print messages logged into OSPMs' kernel logs when a debugger driver is not loaded to enable the debugger during runtime. This patch fixes this issue by introducing new stub mechanism instead of ACPI_DEBUGGER_EXEC. Lv Zheng. Link: https://github.com/acpica/acpica/commit/11522d6b Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acdebug.h | 34 ++++++++++++++++++++++++---------- drivers/acpi/acpica/acmacros.h | 11 ----------- drivers/acpi/acpica/dbdisply.c | 12 ++++++++++++ drivers/acpi/acpica/dbxface.c | 30 ++++++++++++++++++++++++++++++ drivers/acpi/acpica/dscontrol.c | 10 ++-------- drivers/acpi/acpica/dsutils.c | 16 ++++++++-------- drivers/acpi/acpica/dswexec.c | 16 +++++++--------- include/acpi/acpixf.h | 23 +++++++++++++++++++++++ 8 files changed, 106 insertions(+), 46 deletions(-) commit f8d31489629c125806ce4bf587c0c5c284d6d113 Author: Lv Zheng Date: Thu Dec 3 10:42:46 2015 +0800 ACPICA: Debugger: Convert some mechanisms to OSPM specific The following mechanisms are OSPM specific: 1. Redirect output destination to console: no file redirection will be needed by an in-kernel debugger, there is even no file can be accessed when the debugger is running in the kernel mode. 2. Output command prompts: programs other than acpiexec can have different prompt characters and the prompt characters may be implemented as a special character sequence to form a char device IO protocol. 3. Command ready/complete handshake: OSPM debugger may wait more conditions to implement OSPM specific semantics (for example, FIFO full/empty conditions for O_NONBLOCK or IO open/close conditions). Leaving such OSPM specific stuffs in the ACPICA debugger core blocks Linux debugger IO driver implementation. Several new OSL APIs are provided by this patch: 1. acpi_os_initialize_command_signals: initialize command handshake mechanism or any other OSPM specific stuffs. 2. acpi_os_terminate_command_signals: reversal of acpi_os_initialize_command_signals. 3. acpi_os_wait_command_ready: putting debugger task into wait state when a command is not ready. OSPMs can terminate command loop by returning AE_CTRL_TERMINATE from this API. Normally, wait_event() or wait_for_multiple_object() may be used to implement this API. 4. acpi_os_notify_command_complete: putting user task into running state when a command has been completed. OSPMs can terminate command loop by returning AE_CTRL_TERMINATE from this API. Normally, wake_up() or set_event() may be used to implement this API. This patch also converts current command signaling implementation into a generic debugger layer (osgendbg.c) to be used by the existing OSPMs or acpiexec, in return, Linux can have chance to implement its own command handshake mechanism. This patch also implements acpiexec batch mode in a multi-threading mode comaptible style as a demo (this can be confirmed by configuring acpiexec into DEBUGGER_MULTI_THREADED mode where the batch mode is still working). Lv Zheng. Note that the OSPM specific command handshake mechanism is required by Linux kernel because: 1. Linux kernel trends to use wait queue to synchronize two threads, using mutexes to achieve that will cause false "dead lock" warnings. 2. The command handshake mechanism implemented by ACPICA is implemented in this way because of a design issue in debugger IO streaming. Debugger IO outputs are simply cached using a giant buffer, this should be tuned by Linux in the future. Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acdebug.h | 2 +- drivers/acpi/acpica/acglobal.h | 5 -- drivers/acpi/acpica/dbinput.c | 97 ++++++++------------------------------- drivers/acpi/acpica/dbxface.c | 63 ++++++++----------------- drivers/acpi/acpica/utmutex.c | 17 ------- include/acpi/acpiosxf.h | 18 +++++++- include/acpi/acpixf.h | 11 +++++ include/acpi/platform/aclinux.h | 4 ++ include/acpi/platform/aclinuxex.h | 19 ++++++++ 9 files changed, 89 insertions(+), 147 deletions(-) commit 96889231fbc047be91a49d953f50c9f747bc9f89 Author: Colin Ian King Date: Thu Dec 3 10:42:38 2015 +0800 ACPICA: Debugger: Remove unnecessary status check ACPICA commit f9d5c6c9a25e9f5ac05458bfcd8b381e21bb2ba5 ACPICA BZ 1205. Colin Ian King. Link: https://bugs.acpica.org/show_bug.cgi?id=1205 Link: https://github.com/acpica/acpica/commit/f9d5c6c9 Signed-off-by: Colin Ian King Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/dbinput.c | 3 --- 1 file changed, 3 deletions(-) commit 5743520806db4731cc30fad4cb2f01f0501a930c Author: Ariel D'Alessandro Date: Mon Nov 23 09:37:05 2015 -0300 ARM: dts: lpc4337-ciaa: add i2c0 and devices Add I2C0 and two I2C EEPROM devices on the CIAA-NXP board: * 24AA1025 EEPROM, 1Mbit: it is accessed as two 512Kbit EEPROMs. * 24AA025E48 EEPROM, 2kbit. Signed-off-by: Ariel D'Alessandro Signed-off-by: Joachim Eastwood arch/arm/boot/dts/lpc4337-ciaa.dts | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) commit 7888c8c12fb44ffc5bda08f0ae144b1cede8b4a3 Author: Ariel D'Alessandro Date: Mon Nov 23 09:37:04 2015 -0300 ARM: dts: lpc4337-ciaa: enable SCT-PWM Enable the PWM based on the State Configurable Timer (SCT) included in the LPC4337 SoC of the CIAA-NXP board. Signed-off-by: Ariel D'Alessandro Signed-off-by: Joachim Eastwood arch/arm/boot/dts/lpc4337-ciaa.dts | 4 ++++ 1 file changed, 4 insertions(+) commit a086dfe5bfd625cab32da405dfde877ab2f577a6 Author: Joachim Eastwood Date: Sat Oct 24 20:28:25 2015 +0200 ARM: dts: lpc4357-ea4357: add mma7455 i2c accelerometer Add Freescale MMA7455 3-axis I2C accelerometer as found on Embedded Artists' LPC4357 Developer's Kit to the device tree. This makes it possible to access the accelerometer through the API provided by IIO. Signed-off-by: Joachim Eastwood arch/arm/boot/dts/lpc4357-ea4357-devkit.dts | 5 +++++ 1 file changed, 5 insertions(+) commit 7d775d34b181c1884827fac9f6d1dced83cbd344 Author: Joachim Eastwood Date: Mon Dec 14 23:03:50 2015 +0100 ARM: dts: lpc4357: enable EEPROM memory Enable EEPROM for all LPC435x/3x/2x/1x controllers that include the 16 kB EEPROM device. Signed-off-by: Joachim Eastwood arch/arm/boot/dts/lpc4357.dtsi | 4 ++++ 1 file changed, 4 insertions(+) commit 5c36aa6fda503b72a1b63e650abba62c46b96553 Author: Ariel D'Alessandro Date: Tue Nov 17 17:02:55 2015 -0300 ARM: dts: lpc18xx: add EEPROM memory node Add node for the NXP LPC18xx EEPROM memory which can be found in NXP LPC185x/3x and LPC435x/3x/2x/1x devices. Signed-off-by: Ariel D'Alessandro Signed-off-by: Joachim Eastwood arch/arm/boot/dts/lpc18xx.dtsi | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 74b40b2c53636290ac0ebee6c6c680aebd7e9347 Author: Ariel D'Alessandro Date: Mon Oct 19 14:32:26 2015 -0300 ARM: configs: lpc18xx: enable EEPROM NVMEM driver Enable NVMEM driver for NXP LPC18xx EEPROM, which can be found in NXP LPC185x/3x and LPC435x/3x/2x/1x devices. Signed-off-by: Ariel D'Alessandro Signed-off-by: Joachim Eastwood arch/arm/configs/lpc18xx_defconfig | 2 ++ 1 file changed, 2 insertions(+) commit de0afc59c35a091f72a81026c180937bddad2cd3 Author: Joachim Eastwood Date: Sat Oct 24 21:29:41 2015 +0200 ARM: configs: lpc18xx: enable mma7455 IIO driver MMA7455 is 3-axis accelerometer that can be found on Embedded Artists' LPC4357 Developer's Kit. Signed-off-by: Joachim Eastwood arch/arm/configs/lpc18xx_defconfig | 3 +++ 1 file changed, 3 insertions(+) commit 9220e39b5c900c67ddcb517d52fe52d90fb5e3c8 Author: Sudip Mukherjee Date: Fri Dec 11 14:23:11 2015 +0530 Drivers: hv: vmbus: fix build warning We were getting build warning about unused variable "tsc_msr" and "va_tsc" while building for i386 allmodconfig. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/hv/hv.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit bda13fed677bdb423b97dcf054f68b9eb4c6dbfb Author: Masanari Iida Date: Sun Dec 13 16:53:02 2015 +0900 net: Fix typo in skb_fclone_busy This patch fix a typo found within comment of skb_fclone_busy. Signed-off-by: Masanari Iida Signed-off-by: David S. Miller include/linux/skbuff.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5148371a752234181ac73ea388863faeaf4dd66c Merge: 7e074af 7302b9d Author: David S. Miller Date: Mon Dec 14 16:23:10 2015 -0500 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-12-11 Here's another set of Bluetooth & 802.15.4 patches for the 4.5 kernel: - 6LoWPAN debugfs support - New 802.15.4 driver for ADF7242 MAC IEEE802154 - Initial code for 6LoWPAN Generic Header Compression (GHC) support - Refactor Bluetooth LE scan & advertising behind dedicated workqueue - Cleanups to Bluetooth H:5 HCI driver - Support for Toshiba Broadcom based Bluetooth controllers - Use continuous scanning when establishing Bluetooth LE connections Please let me know if there are any issues pulling. Thanks. ==================== Signed-off-by: David S. Miller commit 7e074af2273a6e3115ff7c35529081ab52f8a9e9 Author: Saurabh Sengar Date: Sat Dec 12 00:58:19 2015 +0530 wan: wanxl: add pci_disable_device in case of error If there is 'no suitable DMA available' error, device should be disabled before returning Signed-off-by: Saurabh Sengar Signed-off-by: David S. Miller drivers/net/wan/wanxl.c | 1 + 1 file changed, 1 insertion(+) commit 7772f773dc08899410ce89c47b923961c5cfbf25 Merge: e286213 69d9728 Author: David S. Miller Date: Mon Dec 14 16:20:58 2015 -0500 Merge branch 'ppp-type-and-name' Guillaume Nault says: ==================== Minor PPP devices improvements Let PPP devices be friendlier to user space by registering their device type and reporting their interface naming scheme. ==================== Signed-off-by: David S. Miller commit 69d9728d00c7f2acc290d08718c185f231b8fc20 Author: Guillaume Nault Date: Fri Dec 11 19:54:52 2015 +0100 ppp: declare ppp devices as enumerated interfaces Let user space be aware of the naming scheme used by ppp interfaces (visible in /sys/class/net//name_assign_type). Signed-off-by: Guillaume Nault Signed-off-by: David S. Miller drivers/net/ppp/ppp_generic.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 94dbffe16eb187a7e9c34f1f614925fd9460ec33 Author: Guillaume Nault Date: Fri Dec 11 19:54:49 2015 +0100 ppp: define "ppp" device type Let PPP devices be identified as such in /sys/class/net//uevent. Signed-off-by: Guillaume Nault Signed-off-by: David S. Miller drivers/net/ppp/ppp_generic.c | 6 ++++++ 1 file changed, 6 insertions(+) commit e286213484e724dcba21c214f7316fdf6ccbcf6b Merge: 5241c2d 476933c Author: David S. Miller Date: Mon Dec 14 16:16:46 2015 -0500 Merge branch 's390-next' Ursula Braun says: ==================== s390 network patches here are some s390 related patches for net-next. Most important is the skb_linearize af_iucv patch from Eugene solving traffic problems in certain scenarios. The remaining patches are minor improvements. ==================== Signed-off-by: David S. Miller commit 476933ce9fedaa723f13c2aabd2aa26dfcdceb15 Author: Rasmus Villemoes Date: Fri Dec 11 12:27:57 2015 +0100 qeth: get rid of redundant 0-termination 0-termination is redundant, since sprintf has done that. Signed-off-by: Rasmus Villemoes Signed-off-by: Ursula Braun Signed-off-by: David S. Miller drivers/s390/net/qeth_core_main.c | 2 -- 1 file changed, 2 deletions(-) commit 577777359e1f47d0cb7dfc23aac0da867a14af00 Author: Ursula Braun Date: Fri Dec 11 12:27:56 2015 +0100 qeth: repair SBAL elements calculation When sending skbs, qeth determines the number of qdio SBAL elements required. If qeth sends a fragmented skb, the SBAL element number calculation is wrong, because the fragmented data part is added twice in qeth_l3_tso_elements(). This patch makes sure fragmented data is handled in qeth_elements_for_frags() only, while qeth_l3_tso_elements() starts calculation of qdio SBAL elements just with the linear data part of the skb. Signed-off-by: Ursula Braun Reviewed-by: Thomas Richter Signed-off-by: David S. Miller drivers/s390/net/qeth_l3_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e5ebe63214d44d4dcf43df02edf3613e04d671b9 Author: Ursula Braun Date: Fri Dec 11 12:27:55 2015 +0100 qeth: initialize net_device with carrier off /sys/class/net//operstate for an active qeth network interface offen shows "unknown", which translates to "state UNKNOWN in output of "ip link show". It is caused by a missing initialization of the __LINK_STATE_NOCARRIER bit in the net_device state field. This patch adds a netif_carrier_off() invocation when creating the net_device for a qeth device. Signed-off-by: Ursula Braun Acked-by: Hendrik Brueckner Reference-ID: Bugzilla 133209 Signed-off-by: David S. Miller drivers/s390/net/qeth_l2_main.c | 1 + drivers/s390/net/qeth_l3_main.c | 1 + 2 files changed, 2 insertions(+) commit b475e3161ce74a7e2ee72322585ed5f39985c06a Author: Thomas Richter Date: Fri Dec 11 12:27:54 2015 +0100 qeth use common function qeth_get_setassparms_cmd There have been 2 identical versions of function qeth_get_setassparms_cmd() for layer 2 and layer 3. Remove the layer 3 function qeth_l3_get_setassparms_cmd() and call the common one named qeth_get_setassparms_cmd() located in qeth_core_main.c Signed-off-by: Thomas Richter Signed-off-by: Ursula Braun Reviewed-by: Eugene Crosser Signed-off-by: David S. Miller drivers/s390/net/qeth_core.h | 4 ++++ drivers/s390/net/qeth_core_main.c | 9 +++++---- drivers/s390/net/qeth_l3_main.c | 37 ++++++++----------------------------- 3 files changed, 17 insertions(+), 33 deletions(-) commit e043046a5a29bebe7e9a68b92c4580e2888f8ed3 Author: Markus Elfring Date: Fri Dec 11 12:27:53 2015 +0100 s390-ctcm: Delete unnecessary checks before the function call "channel_remove" The channel_remove() function tests whether its argument is NULL and then returns immediately. Thus the test around the calls is not needed. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring Signed-off-by: Ursula Braun Signed-off-by: David S. Miller drivers/s390/net/ctcm_main.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit f0c59aff88c0ff58f290fee55b9552fcd953d410 Author: Ursula Braun Date: Fri Dec 11 12:27:52 2015 +0100 MAINTAINERS: switch to alternate IBM mail address Signed-off-by: Ursula Braun Signed-off-by: David S. Miller MAINTAINERS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 979f66b32dbbf928635dbf44fd9843d27c4ed8f9 Author: Eugene Crosser Date: Fri Dec 11 12:27:51 2015 +0100 iucv: call skb_linearize() when needed When the linear buffer of the received sk_buff is shorter than the header, use skb_linearize(). sk_buffs with short linear buffer happen on the sending side under high traffic, and some kernel configurations, when allocated buffer starts just before page boundary, and IUCV transport has to send it as two separate QDIO buffer elements, with fist element shorter than the header. Signed-off-by: Eugene Crosser Signed-off-by: Ursula Braun Signed-off-by: David S. Miller net/iucv/af_iucv.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) commit 0506eb01f70bd4d7e999c11488a6a892e01c42e2 Author: Eugene Crosser Date: Fri Dec 11 12:27:50 2015 +0100 iucv: prevent information leak in iucv_message Initialize storage for the future IUCV header that will be included in the transmitted packet. Some of the header fields are unused with HiperSockets transport, and will contain data left from some other functions. Signed-off-by: Eugene Crosser Signed-off-by: Ursula Braun Reviewed-by: Thomas Richter Signed-off-by: David S. Miller net/iucv/af_iucv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5241c2d7c52757e6df79877ba282762df0caea9f Author: Alexander Aring Date: Mon Dec 14 20:55:22 2015 +0100 ipv6: addrconf: drop ieee802154 specific things This patch removes ARPHRD_IEEE802154 from addrconf handling. In the earlier days of 802.15.4 6LoWPAN, the interface type was ARPHRD_IEEE802154 which introduced several issues, because 802.15.4 interfaces used the same type. Since commit 965e613d299c ("ieee802154: 6lowpan: fix ARPHRD to ARPHRD_6LOWPAN") we use ARPHRD_6LOWPAN for 6LoWPAN interfaces. This patch will remove ARPHRD_IEEE802154 which is currently deadcode, because ARPHRD_IEEE802154 doesn't reach the minimum 1280 MTU of IPv6. Also we use 6LoWPAN EUI64 specific defines instead using link-layer constanst from 802.15.4 link-layer header. Cc: David S. Miller Cc: Alexey Kuznetsov Cc: James Morris Cc: Hideaki YOSHIFUJI Cc: Patrick McHardy Signed-off-by: Alexander Aring Signed-off-by: David S. Miller net/ipv6/addrconf.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit fccd3af57100027e5330079819987aade07631ad Author: Rami Rosen Date: Sun Dec 13 22:13:08 2015 +0200 cgroup_pids: fix a typo. This patch fixes a typo in pids_charge() method. Signed-off-by: Rami Rosen Signed-off-by: Tejun Heo kernel/cgroup_pids.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c38c4597e4bf3e99860eac98211748e1ecb0e139 Author: Tejun Heo Date: Mon Dec 7 17:38:55 2015 -0500 netfilter: implement xt_cgroup cgroup2 path match This patch implements xt_cgroup path match which matches cgroup2 membership of the associated socket. The match is recursive and invertible. For rationales on introducing another cgroup based match, please refer to a preceding commit "sock, cgroup: add sock->sk_cgroup". v3: Folded into xt_cgroup as a new revision interface as suggested by Pablo. v2: Included linux/limits.h from xt_cgroup2.h for PATH_MAX. Added explicit alignment to the priv field. Both suggested by Jan. Signed-off-by: Tejun Heo Cc: Daniel Borkmann Cc: Daniel Wagner CC: Neil Horman Cc: Jan Engelhardt Cc: Pablo Neira Ayuso Signed-off-by: Pablo Neira Ayuso include/uapi/linux/netfilter/xt_cgroup.h | 13 ++++++ net/netfilter/xt_cgroup.c | 69 ++++++++++++++++++++++++++++++++ 2 files changed, 82 insertions(+) commit 4ec8ff0edccffe7a77f18e2a1e2ce86f03e08b5c Author: Tejun Heo Date: Mon Dec 7 17:38:54 2015 -0500 netfilter: prepare xt_cgroup for multi revisions xt_cgroup will grow cgroup2 path based match. Postfix existing symbols with _v0 and prepare for multi revision registration. Signed-off-by: Tejun Heo Cc: Daniel Borkmann Cc: Daniel Wagner CC: Neil Horman Cc: Jan Engelhardt Cc: Pablo Neira Ayuso Signed-off-by: Pablo Neira Ayuso include/uapi/linux/netfilter/xt_cgroup.h | 2 +- net/netfilter/xt_cgroup.c | 36 +++++++++++++++++--------------- 2 files changed, 20 insertions(+), 18 deletions(-) commit 6474de5f105c8fc70695661aa68466ac52e05794 Author: Kazuya Mizuguchi Date: Tue Dec 15 01:24:58 2015 +0900 ravb: clear RIC1 in init instead of stop AVB-DMAC Receive FIFO Warning interrupt is not enabled, so it is not necessary to disable the interrupt in ravb_close(). On the other hand, this patch disables the interrupt in ravb_dmac_init() to prevent the possibility that the interrupt is issued by the state that a boot loader left. Signed-off-by: Kazuya Mizuguchi Signed-off-by: Yoshihiro Kaneko Acked-by: Sergei Shtylyov Signed-off-by: David S. Miller drivers/net/ethernet/renesas/ravb_main.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit a4ec80082c82f3fda775d13b2a72aac38248ced6 Merge: 19576c9 cb4396e Author: Pablo Neira Ayuso Date: Mon Dec 14 20:29:00 2015 +0100 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next Resolve conflict between commit 264640fc2c5f4f ("ipv6: distinguish frag queues by device for multicast and link-local packets") from the net tree and commit 029f7f3b8701c ("netfilter: ipv6: nf_defrag: avoid/free clone operations") from the nf-next tree. Signed-off-by: Pablo Neira Ayuso Conflicts: net/ipv6/netfilter/nf_conntrack_reasm.c commit 3fa4cc9c2df37b393b968dcc3bb2ab1e2ff7ea7f Author: Tejun Heo Date: Mon Dec 14 11:24:06 2015 -0500 net, cgroup: cgroup_sk_updat_lock was missing initializer bd1060a1d671 ("sock, cgroup: add sock->sk_cgroup") added global spinlock cgroup_sk_update_lock but erroneously skipped initializer leading to uninitialized spinlock warning. Fix it by using DEFINE_SPINLOCK(). Signed-off-by: Tejun Heo Reported-by: Dexuan Cui Fixes: bd1060a1d671 ("sock, cgroup: add sock->sk_cgroup") Signed-off-by: David S. Miller kernel/cgroup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e7a4eb861203b605c6428ec29e0b5e3c3f4f537f Author: Vegard Nossum Date: Thu Dec 10 17:13:41 2015 +0100 udf: limit the maximum number of TD redirections Filesystem fuzzing revealed that we could get stuck in the udf_process_sequence() loop. The maximum limit was chosen arbitrarily but fixes the problem I saw. Signed-off-by: Vegard Nossum Signed-off-by: Jan Kara fs/udf/super.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit d3ae4fa40088045b500f4d1ce85eb926b6cd2d3e Author: Gustavo Padovan Date: Thu Nov 26 11:03:56 2015 -0200 staging/android: add TODO to de-stage android sync framework - remove CONFIG_SW_SYNC_USER, it is used only for testing/debugging and should not be upstreamed. - port CONFIG_SW_SYNC_USER tests interfaces to use debugfs somehow - port libsync tests to kselftest - clean up and ABI check for security issues - move the sync framework to drivers/base/dma-buf Cc: Arve Hjønnevåg Cc: Riley Andrews Cc: Daniel Vetter Cc: Rob Clark Cc: Greg Hackmann Cc: John Harrison Signed-off-by: Gustavo Padovan Acked-by: Daniel Vetter Signed-off-by: Greg Kroah-Hartman drivers/staging/android/TODO | 8 ++++++++ 1 file changed, 8 insertions(+) commit 1b2c841467515425636c15799ac90f6c4821acc0 Author: Valentin Rothberg Date: Thu Nov 26 14:17:15 2015 +0100 checkkconfigsymbols.py: find similar symbols Add support to find string-similar symbols. When option --sim SYM is specified, checkkconfigsymbols.py will print at most 10 symbols defined in Kconfig that are string similar to SYM in the following format: Similar symbols: $COMMA_SEPARATED_LIST_OF_SYMBOLS Note, if no similar symbols are found it is indicated as follows: Similar symbols: no similar symbols found Since the implemented functionality is also useful when searching the entire source or when diffing two commits, a list of similar symbols is printed unconditionally with the other data. In order to make the output more readable, the format now looks as follows: $UNDEFINED_SYMBOL Referencing files: $COMMA_SEPARATED_LIST_OF_FILES Similar symbols: $COMMA_SEPARATED_LIST_OF_SYMBOLS [Optional with '--find'] Commits changing symbol: - $COMMIT_1_HASH ("$COMMIT_1_MESSAGE") - $COMMIT_2_HASH ("$COMMIT_2_MESSAGE") or - no commit found Signed-off-by: Valentin Rothberg Signed-off-by: Greg Kroah-Hartman scripts/checkkconfigsymbols.py | 114 +++++++++++++++++++++++++++++++---------- 1 file changed, 88 insertions(+), 26 deletions(-) commit e2042a8a80ab598bbb8d06cd7f3078923c7c77e3 Author: Valentin Rothberg Date: Thu Oct 15 10:37:47 2015 +0200 checkkconfigsymbols.py: multiprocessing of files Distribute the parsing of source and Kconfig files on all available cores to speed up processing. Signed-off-by: Valentin Rothberg Signed-off-by: Greg Kroah-Hartman scripts/checkkconfigsymbols.py | 128 ++++++++++++++++++++++++++++++++--------- 1 file changed, 102 insertions(+), 26 deletions(-) commit 2a3cdead8b408351fa1e3079b220fa331480ffbc Author: Aaron Sierra Date: Tue Nov 3 12:37:09 2015 -0600 igb: Remove GS40G specific defines/functions The I210 internal PHY can be accessed just as well with the access functions shared by 82580, I350, and I354 devices. A side effect of relying on the common functions, is that I210 cable length support is folded back into the common case which effectively reverts the following commit: commit 59f301046b276f87483b3afa3201a4273def06a9 Author: Carolyn Wyborny Date: Wed Oct 10 04:42:59 2012 +0000 igb: Update get cable length function for i210/i211 Cc: Carolyn Wyborny Signed-off-by: Aaron Sierra Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/igb/e1000_82575.c | 13 ++--- drivers/net/ethernet/intel/igb/e1000_i210.c | 5 +- drivers/net/ethernet/intel/igb/e1000_i210.h | 2 +- drivers/net/ethernet/intel/igb/e1000_phy.c | 82 +--------------------------- drivers/net/ethernet/intel/igb/e1000_phy.h | 15 +---- 5 files changed, 11 insertions(+), 106 deletions(-) commit 400ac52e805bb6852e743817bc05a136e85042a9 Author: Benjamin Marzinski Date: Wed Dec 9 07:46:33 2015 -0600 gfs2: clear journal live bit in gfs2_log_flush When gfs2 was unmounting filesystems or changing them to read-only it was clearing the SDF_JOURNAL_LIVE bit before the final log flush. This caused a race. If an inode glock got demoted in the gap between clearing the bit and the shutdown flush, it would be unable to reserve log space to clear out the active items list in inode_go_sync, causing an error in inode_go_inval because the glock was still dirty. To solve this, the SDF_JOURNAL_LIVE bit is now cleared inside the shutdown log flush. This means that, because of the locking on the log blocks, either inode_go_sync will be able to reserve space to clean the glock before the shutdown flush, or the shutdown flush will clean the glock itself, before inode_go_sync fails to reserve the space. Either way, the glock will be clean before inode_go_inval. Signed-off-by: Benjamin Marzinski Signed-off-by: Bob Peterson fs/gfs2/log.c | 3 +++ fs/gfs2/super.c | 4 ---- 2 files changed, 3 insertions(+), 4 deletions(-) commit 471f3db2786bc32011d6693413eb93b0c3da2579 Author: Benjamin Marzinski Date: Tue Dec 1 08:46:55 2015 -0600 gfs2: change gfs2 readdir cookie gfs2 currently returns 31 bits of filename hash as a cookie that readdir uses for an offset into the directory. When there are a large number of directory entries, the likelihood of a collision goes up way too quickly. GFS2 will now return cookies that are guaranteed unique for a while, and then fail back to using 30 bits of filename hash. Specifically, the directory leaf blocks are divided up into chunks based on the minimum size of a gfs2 directory entry (48 bytes). Each entry's cookie is based off the chunk where it starts, in the linked list of leaf blocks that it hashes to (there are 131072 hash buckets). Directory entries will have unique names until they take reach chunk 8192. Assuming the largest filenames possible, and the least efficient spacing possible, this new method will still be able to return unique names when the previous method has statistically more than a 99% chance of a collision. The non-unique names it fails back to are guaranteed to not collide with the unique names. unique cookies will be in this format: - 1 bit "0" to make sure the the returned cookie is positive - 17 bits for the hash table index - 1 bit for the mode "0" - 13 bits for the offset non-unique cookies will be in this format: - 1 bit "0" to make sure the the returned cookie is positive - 17 bits for the hash table index - 1 bit for the mode "1" - 13 more bits of the name hash Another benefit of location based cookies, is that once a directory's exhash table is fully extended (so that multiple hash table indexs do not use the same leaf blocks), gfs2 can skip sorting the directory entries until it reaches the non-unique ones, and then it only needs to sort these. This provides a significant speed up for directory reads of very large directories. The only issue is that for these cookies to continue to point to the correct entry as files are added and removed from the directory, gfs2 must keep the entries at the same offset in the leaf block when they are split (see my previous patch). This means that until all the nodes in a cluster are running with code that will split the directory leaf blocks this way, none of the nodes can use the new cookie code. To deal with this, gfs2 now has the mount option loccookie, which, if set, will make it return these new location based cookies. This option must not be set until all nodes in the cluster are at least running this version of the kernel code, and you have guaranteed that there are no outstanding cookies required by other software, such as NFS. gfs2 uses some of the extra space at the end of the gfs2_dirent structure to store the calculated readdir cookies. This keeps us from needing to allocate a seperate array to hold these values. gfs2 recomputes the cookie stored in de_cookie for every readdir call. The time it takes to do so is small, and if gfs2 expected this value to be saved on disk, the new code wouldn't work correctly on filesystems created with an earlier version of gfs2. One issue with adding de_cookie to the union in the gfs2_dirent structure is that it caused the union to align itself to a 4 byte boundary, instead of its previous 2 byte boundary. This changed the offset of de_rahead. To solve that, I pulled de_rahead out of the union, since it does not need to be there. Signed-off-by: Benjamin Marzinski Signed-off-by: Bob Peterson fs/gfs2/dir.c | 91 +++++++++++++++++++++++++++++++--------- fs/gfs2/incore.h | 3 ++ fs/gfs2/ops_fstype.c | 3 ++ fs/gfs2/super.c | 12 ++++++ include/uapi/linux/gfs2_ondisk.h | 9 ++-- 5 files changed, 95 insertions(+), 23 deletions(-) commit 340174722929d80a107120400bab527cfc7e47f1 Author: Benjamin Marzinski Date: Tue Dec 1 08:30:34 2015 -0600 gfs2: keep offset when splitting dir leaf blocks Currently, when gfs2 splits a directory leaf block, the dirents that need to be copied to the new leaf block are packed into the start of it. This is good for space efficiency. However, if gfs2 were to copy those dirents into the exact same offset in the new leaf block as they had in the old block, it would be able to generate a readdir cookie based on the dirent location, that would be guaranteed to be unique up well past where the current code is statistically almost guaranteed to have collisions. So, gfs2 now keeps the dirent's offset in the block the same when it copies it to the new leaf block. Signed-off-by: Benjamin Marzinski Signed-off-by: Bob Peterson fs/gfs2/dir.c | 69 +++++++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 53 insertions(+), 16 deletions(-) commit 2aba1b5b4f78d56a764b92bae58298ad3fffdc4a Author: Bob Peterson Date: Tue May 19 09:11:23 2015 -0500 GFS2: Reintroduce a timeout in function gfs2_gl_hash_clear At some point in the past, we used to have a timeout when GFS2 was unmounting, trying to clear out its glocks. If the timeout expires, it would dump the remaining glocks to the kernel messages so that developers can debug the problem. That timeout was eliminated, probably by accident. This patch reintroduces it. Signed-off-by: Bob Peterson fs/gfs2/glock.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 901c6c665b1024ea2bbabc24ba609a118459a2d8 Author: Bob Peterson Date: Wed Mar 11 09:52:31 2015 -0500 GFS2: Update master statfs buffer with sd_statfs_spin locked Before this patch, function update_statfs called gfs2_statfs_change_out to update the master statfs buffer without the sd_statfs_spin held. In theory, another process could call gfs2_statfs_sync, which takes the sd_statfs_spin lock and re-reads m_sc from the buffer. So there's a theoretical timing window in which one process could write the master statfs buffer, then another comes along and re-reads it, wiping out the changes. Signed-off-by: Bob Peterson fs/gfs2/super.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit b58bf407ca4669a2dfcc00f5888ee719d9c34150 Author: Bob Peterson Date: Fri Jul 24 09:45:43 2015 -0500 GFS2: Reduce size of incore inode This patch makes no functional changes. Its goal is to reduce the size of the gfs2 inode in memory by rearranging structures and changing the size of some variables within the structure. Signed-off-by: Bob Peterson fs/gfs2/file.c | 2 +- fs/gfs2/glock.c | 10 +++++----- fs/gfs2/glock.h | 26 +++++++++++++------------- fs/gfs2/incore.h | 4 ++-- fs/gfs2/quota.c | 10 +++++----- 5 files changed, 26 insertions(+), 26 deletions(-) commit e8931582bdaf4d4a6ee7e520ef0ccd481713a42a Author: Fan Li Date: Mon Dec 14 15:26:04 2015 +0800 f2fs: fix to update variable correctly when skip a unmapped block map.m_len should be reduced after skip a block Signed-off-by: Fan li Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/file.c | 1 + 1 file changed, 1 insertion(+) commit d8fe4f0e74cb27e79b2b500ca6eae9f9b02748b4 Author: Fan Li Date: Mon Dec 14 13:34:00 2015 +0800 f2fs: write only the pages in range during defragment @lend of filemap_write_and_wait_range is supposed to be a "offset in bytes where the range ends (inclusive)". Subtract 1 to avoid writing an extra page. Signed-off-by: Fan li Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a097dc7e24cba7980bc5e2df461a4ef228e97e59 Author: Bob Peterson Date: Thu Jul 16 08:28:04 2015 -0500 GFS2: Make rgrp reservations part of the gfs2_inode structure Before this patch, multi-block reservation structures were allocated from a special slab. This patch folds the structure into the gfs2_inode structure. The disadvantage is that the gfs2_inode needs more memory, even when a file is opened read-only. The advantages are: (a) we don't need the special slab and the extra time it takes to allocate and deallocate from it. (b) we no longer need to worry that the structure exists for things like quota management. (c) This also allows us to remove the calls to get_write_access and put_write_access since we know the structure will exist. Signed-off-by: Bob Peterson fs/gfs2/bmap.c | 11 +++-------- fs/gfs2/file.c | 15 +++++---------- fs/gfs2/incore.h | 2 +- fs/gfs2/inode.c | 5 ----- fs/gfs2/main.c | 13 ++----------- fs/gfs2/quota.c | 4 ++-- fs/gfs2/quota.h | 2 +- fs/gfs2/rgrp.c | 52 ++++++++++++++-------------------------------------- fs/gfs2/rgrp.h | 2 +- fs/gfs2/super.c | 7 ++++--- fs/gfs2/util.c | 1 - fs/gfs2/util.h | 1 - 12 files changed, 33 insertions(+), 82 deletions(-) commit 665d2c2848f14c0c2a2e89192bde9073c4d352f7 Author: Brian Norris Date: Tue Dec 8 17:04:59 2015 -0800 mtd: bcm47xxnflash: really unregister NAND on device removal The field bcma_nflash::mtd is never set to be non-zero anywhere, but we test for it in the removal path. So the MTD is never unregistered. Also, we should use nand_release(), not mtd_device_unregister(). Finally, we don't need to use the 'platdata' for stashing/retrieving our *driver* data -- that's what *_{get,set}_drvdata() are for. So, kill off bcm_nflash::mtd, and stash the struct bcm47xxnflash in drvdata instead. Also move the forward declaration of mtd_info up a bit, since struct bcma_sflash should be using it. Caught while inspecting other changes being made to this driver. Compile tested only. Signed-off-by: Brian Norris Cc: "Rafał Miłecki" Cc: linux-wireless@vger.kernel.org Acked-by: Boris Brezillon drivers/mtd/nand/bcm47xxnflash/main.c | 7 ++++--- include/linux/bcma/bcma_driver_chipcommon.h | 6 ++---- 2 files changed, 6 insertions(+), 7 deletions(-) commit 386164d9b36b1f6f1396978110de85c7e186491d Author: Alexander Duyck Date: Tue Oct 27 16:59:31 2015 -0700 e1000e: Switch e1000e_up to void, drop code checking for error result The function e1000e_up always returns 0. As such we can convert it to a void and just ignore the results. This allows us to drop some code in a couple spots as we no longer need to worry about non-zero return values. Signed-off-by: Alexander Duyck Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/e1000.h | 2 +- drivers/net/ethernet/intel/e1000e/netdev.c | 15 ++++----------- 2 files changed, 5 insertions(+), 12 deletions(-) commit e1c51b9f1df2f9efc2ec11488717e40cd12015f9 Author: Chao Yu Date: Fri Dec 11 16:08:22 2015 +0800 f2fs: clean up node page updating flow If read_node_page return LOCKED_PAGE, in its caller it's better a) skip unneeded 'Update' flag and mapping info verfication; b) check nid value stored in footer structure of node page. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/node.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) commit 663f3122d00c0b412d429f105dca129aa8f4f094 Author: Ville Syrjälä Date: Mon Dec 14 13:16:48 2015 +0200 drm/i915: Drop the broken cursor base==0 special casing The cursor code tries to treat base==0 to mean disabled. That fails when the cursor bo gets bound at ggtt offset 0, and the user is left looking at an invisible cursor. We lose the disabled->disabled optimization, but that seems like something better handled at a slightly higher level. Cc: drm-intel-fixes@lists.freedesktop.org Cc: Takashi Iwai Cc: Jani Nikula Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1450091808-32607-3-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Chris Wilson drivers/gpu/drm/i915/intel_display.c | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) commit 1264859d648c4bdc9f0a098efbff90cbf462a075 Author: Ville Syrjälä Date: Mon Dec 14 17:35:02 2015 +0200 drm/i915: Kill intel_crtc->cursor_bo The vma may have been rebound between the last time the cursor was enabled and now, so skipping the cursor gtt offset deduction is not safe unless we would also reset cursor_bo to NULL when disabling the cursor. Just thow cursor_bo to the bin instead since it's lost all other uses thanks to universal plane support. Chris pointed out that cursor updates are currently too slow via universal planes that micro optimizations like these wouldn't even help. v2: Add a note about futility of micro optimizations (Chris) Cc: drm-intel-fixes@lists.freedesktop.org References: http://lists.freedesktop.org/archives/intel-gfx/2015-December/082976.html Cc: Chris Wilson Cc: Takashi Iwai Cc: Jani Nikula Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1450107302-17171-1-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Chris Wilson drivers/gpu/drm/i915/intel_display.c | 5 ----- drivers/gpu/drm/i915/intel_drv.h | 1 - 2 files changed, 6 deletions(-) commit 2abd1c88345e9c10a8f34cf6d3b025bf7267ca85 Author: Geliang Tang Date: Wed Nov 25 21:12:14 2015 +0800 drm/msm/mdp: fix a problematic usage of WARN_ON() WARN_ON() takes a condition rather than a format string. This patch converted WARN_ON() to WARN() instead. Signed-off-by: Geliang Tang Signed-off-by: Rob Clark drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit beb107f30ea74611286ede91f0aa93b145c476b4 Author: saurabh Date: Mon Dec 7 01:19:21 2015 +0530 drm/msm/dsi: Added missing mutex_unlock in case of failed to get iova, function was returning without releasing the mutex. Added it. Signed-off-by: Saurabh Sengar Signed-off-by: Rob Clark drivers/gpu/drm/msm/dsi/dsi_host.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 49d93e7861bccfb34b7adfa507511a0c030148b3 Author: Rob Clark Date: Wed Dec 2 14:40:44 2015 -0500 drm/msm: ratelimit error irq msgs When things go bad and don't recover, we can be getting an err irq every vblank. Signed-off-by: Rob Clark drivers/gpu/drm/msm/mdp/mdp4/mdp4_irq.c | 2 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_irq.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit dee2eed2117f18656714a971fbbd6903bd3c827c Author: Daniel Vetter Date: Mon Nov 23 10:32:41 2015 +0100 drm/msm: Use unlocked gem unreferencing For drm_gem_object_unreference callers are required to hold dev->struct_mutex, which these paths don't. Enforcing this requirement has become a bit more strict with commit ef4c6270bf2867e2f8032e9614d1a8cfc6c71663 Author: Daniel Vetter Date: Thu Oct 15 09:36:25 2015 +0200 drm/gem: Check locking in drm_gem_object_unreference Cc: Rob Clark Signed-off-by: Daniel Vetter Signed-off-by: Rob Clark drivers/gpu/drm/msm/msm_fbdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8979a059281b2e25d864edfd2220def7140c09b1 Author: Rob Clark Date: Mon Dec 14 09:59:56 2015 -0500 drm/msm: trivial whitespace fix Signed-off-by: Rob Clark include/uapi/drm/msm_drm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6dc1341044952004daeb10212b685c180fb7780a Author: Archit Taneja Date: Tue Dec 1 11:48:15 2015 +0530 dt-bindings: msm/dsi: Add DSIv2 documentation Add additional property info needed for DSIv2 DT. Cc: devicetree@vger.kernel.org Cc: Rob Herring Acked-by: Rob Herring Signed-off-by: Archit Taneja Signed-off-by: Rob Clark Documentation/devicetree/bindings/display/msm/dsi.txt | 4 ++++ 1 file changed, 4 insertions(+) commit 60834ca112f6cac9027ec830bcbd24ec0961175e Author: Archit Taneja Date: Tue Dec 1 11:39:59 2015 +0530 dt-bindings: msm/dsi: Fix the order in which clocks are listed List the clocks in the order that's used in DT. We don't have mdp/dsi DT nodes for any SoC in upstream yet, but we align with the order we intend to use. Cc: devicetree@vger.kernel.org Cc: Rob Herring Acked-by: Rob Herring Signed-off-by: Archit Taneja Signed-off-by: Rob Clark Documentation/devicetree/bindings/display/msm/dsi.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 7efe0e034c713716060bc7794c7e332589980c70 Author: He Kuang Date: Mon Dec 14 10:39:23 2015 +0000 perf record: Support custom vmlinux path Make perf-record command support --vmlinux option if BPF_PROLOGUE is on. 'perf record' needs vmlinux as the source of DWARF info to generate prologue for BPF programs, so path of vmlinux should be specified. Short name 'k' has been taken by 'clockid'. This patch skips the short option name and uses '--vmlinux' for vmlinux path. Documentation is also updated. Test result: In a production (or broken) environment: (by: # rm -rf ~/.debug/ # mv /lib/modules/`uname -r`/build/vmlinux /tmp/ ) # ./perf record -e ./test_bpf_base.c ls Failed to find the path for kernel: No such file or directory event syntax error: './test_bpf_base.c' \___ You need to check probing points in BPF file ... # ./perf record --vmlinux /tmp/vmlinux -e ./test_bpf_base.c ls ... [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.011 MB perf.data ] Help messages when build with NO_LIBBPF: # ./perf record -h --transaction sample transaction flags (special events only) --vmlinux vmlinux pathname (not built-in because NO_LIBBPF=1) # ./perf record --vmlinux /tmp/vmlinux ls / Warning: option `vmlinux' is being ignored because NO_LIBBPF=1 ... [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.011 MB perf.data (11 samples) ] Help messages when build with NO_DWARF: # ./perf record -h --transaction sample transaction flags (special events only) --vmlinux vmlinux pathname (not built-in because NO_DWARF=1) Signed-off-by: He Kuang Cc: Alexei Starovoitov Cc: Jiri Olsa Cc: Masami Hiramatsu Cc: Namhyung Kim Cc: Wang Nan Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1450089563-122430-15-git-send-email-wangnan0@huawei.com Signed-off-by: Wang Nan Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-record.txt | 10 ++++++++-- tools/perf/builtin-record.c | 16 ++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) commit 48e1cab1ba4db84fbc26379b887ba94a180347fe Author: Wang Nan Date: Mon Dec 14 10:39:22 2015 +0000 perf tools: Make options always available, even if required libs not linked This patch keeps options of perf builtins same in all conditions. If one option is disabled because of compiling options, users should be notified. Masami suggested another implementation in [1] that, by adding a OPTION_NEXT_DEPENDS option before those options in the 'struct option' array, options parser knows an option is disabled. However, in some cases this array is reordered (options__order()). In addition, in parse-option.c that array is const, so we can't simply merge information in decorator option into the affacted option. This patch chooses a simpler implementation that, introducing a set_option_nobuild() function and two option parsing flags. Builtins with such options should call set_option_nobuild() before option parsing. The complexity of this patch is because we want some of options can be skipped safely. In this case their arguments should also be consumed. Options in 'perf record' and 'perf probe' are fixed in this patch. [1] http://lkml.kernel.org/g/50399556C9727B4D88A595C8584AAB3752627CD4@GSjpTKYDCembx32.service.hitachi.net Test result: Normal case: # ./perf probe --vmlinux /tmp/vmlinux sys_write Added new event: probe:sys_write (on sys_write) You can now use it in all perf tools, such as: perf record -e probe:sys_write -aR sleep 1 Build with NO_DWARF=1: # ./perf probe -L sys_write Error: switch `L' is not available because NO_DWARF=1 Usage: perf probe [] 'PROBEDEF' ['PROBEDEF' ...] or: perf probe [] --add 'PROBEDEF' [--add 'PROBEDEF' ...] or: perf probe [] --del '[GROUP:]EVENT' ... or: perf probe --list [GROUP:]EVENT ... or: perf probe [] --funcs -L, --line Show source code lines. (not built-in because NO_DWARF=1) # ./perf probe -k /tmp/vmlinux sys_write Warning: switch `k' is being ignored because NO_DWARF=1 Added new event: probe:sys_write (on sys_write) You can now use it in all perf tools, such as: perf record -e probe:sys_write -aR sleep 1 # ./perf probe --vmlinux /tmp/vmlinux sys_write Warning: option `vmlinux' is being ignored because NO_DWARF=1 Added new event: [SNIP] # ./perf probe -l Usage: perf probe [] 'PROBEDEF' ['PROBEDEF' ...] or: perf probe [] --add 'PROBEDEF' [--add 'PROBEDEF' ...] ... -k, --vmlinux vmlinux pathname (not built-in because NO_DWARF=1) -L, --line Show source code lines. (not built-in because NO_DWARF=1) ... -V, --vars Show accessible variables on PROBEDEF (not built-in because NO_DWARF=1) --externs Show external variables too (with --vars only) (not built-in because NO_DWARF=1) --no-inlines Don't search inlined functions (not built-in because NO_DWARF=1) --range Show variables location range in scope (with --vars only) (not built-in because NO_DWARF=1) Signed-off-by: Wang Nan Tested-by: Arnaldo Carvalho de Melo Cc: Alexei Starovoitov Cc: Jiri Olsa Cc: Masami Hiramatsu Cc: Namhyung Kim Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1450089563-122430-14-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-probe.c | 15 ++++- tools/perf/builtin-record.c | 9 ++- tools/perf/util/parse-options.c | 118 +++++++++++++++++++++++++++++++++++++--- tools/perf/util/parse-options.h | 5 ++ 4 files changed, 134 insertions(+), 13 deletions(-) commit 0c7df47f6a4c5d7c6c4fa1f5ecbee64c441f5939 Author: Archit Taneja Date: Wed Oct 14 15:31:13 2015 +0530 drm/msm/dsi: Enable MMSS SPFB port via syscon For DSIv2 to work, we need to enable MMSS_AHB_ARB_MASTER_PORT in MMSS_SFPB. We enable the required bitfield by retrieving MMSS_SFPB regmap pointer via syscon. Signed-off-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/dsi/dsi_host.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) commit 4ff9d4cbc15a1ac169eaabf2e3d282b7d2d3799d Author: Archit Taneja Date: Tue Oct 13 12:20:47 2015 +0530 drm/msm/dsi: Don't use iommu for command TX buffer for DSIv2 We currently use iommu allocated DMA buffers for sending DSI commands. DSIv2 doesn't have a port connected to the MDP iommu. Therefore, it can't use iommu allocated buffers to fetch DSI commands. Use a regular contiguous DMA buffer if we are DSIv2. Signed-off-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/dsi/dsi.h | 4 +- drivers/gpu/drm/msm/dsi/dsi_host.c | 110 +++++++++++++++++++++++----------- drivers/gpu/drm/msm/dsi/dsi_manager.c | 6 +- 3 files changed, 79 insertions(+), 41 deletions(-) commit cea65dbd6a96bd97818a7a95034a046409040afa Author: Archit Taneja Date: Mon Oct 12 11:16:48 2015 +0530 drm/msm/dsi: Add dsi_cfg for APQ8064 Add a dsi_cfg entry for APQ8064. Since this is the first DSIv2 chip to be supported, add a list of bus clocks that are required by the DSIv2 block. Signed-off-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/dsi/dsi_cfg.c | 19 ++++++++++++++++--- drivers/gpu/drm/msm/dsi/dsi_cfg.h | 2 ++ 2 files changed, 18 insertions(+), 3 deletions(-) commit 4bfa97489ae786c95d0f2999326a524443013cc1 Author: Archit Taneja Date: Fri Oct 9 16:32:38 2015 +0530 drm/msm/dsi: Set up link clocks for DSIv2 DSIv2 (DSI on older A family chips) has slightly different link clock requirements. First, we have an extra clock called src_clk (with a dedicated RCG). This is required by the DSI controller to process the pixel data coming from MDP. It needs to be set at the rate "pclk * bytes_per_pixel". We also need to explicitly configure esc_clk. On DSI6G chips, we don't need to set a rate to esc_clk because its RCG is always sourced from crystal clock (19.2 Mhz in all cases), which is within the escape clock frequency range in the mipi DSI spec. For chips with DSIv2, the crystal clock rate may not be within the required range (27Mhz on APQ8064). Therefore, we derive it from the DSI byte clock. We calculate an esc_clck rate that is within the mipi spec and also divisible by the byte clock rate. When setting rate and enabling the link clocks, we make sure that byte_clk is configured before esc_clk, and src_clk before pixel_clk. We create two different link_enable funcs for DSI6G and DSIv2 since the sequences are different. We also obtain two extra source clocks (dsi_src_clk and esc_src_clk) and set their parent to the clocks provided by DSI PLL. Signed-off-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/dsi/dsi_host.c | 191 ++++++++++++++++++++++++++++++++++++- 1 file changed, 186 insertions(+), 5 deletions(-) commit 6e0eb52eba9e2c8d56e4e6826faa2bd6fd5dcf0c Author: Archit Taneja Date: Fri Oct 9 15:21:12 2015 +0530 drm/msm/dsi: Parse bus clocks from a list DSI bus clocks seem to vary between different DSI host versions, and the SOC to which they belong. Even the enable/disable sequence varies. Provide a list of bus clock names in dsi_cfg. The driver will use this to retrieve the clocks, and enable/disable them. Add bus clock lists for DSI6G, and DSI for MSM8916(this is DSI6G too, but there is no MMSS_CC specific clock since there is no MMSS clock controller on 8916). Signed-off-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/dsi/dsi.h | 1 + drivers/gpu/drm/msm/dsi/dsi_cfg.c | 16 +++++- drivers/gpu/drm/msm/dsi/dsi_cfg.h | 2 + drivers/gpu/drm/msm/dsi/dsi_host.c | 107 ++++++++++++------------------------- 4 files changed, 53 insertions(+), 73 deletions(-) commit 31c92767aef63501da0214da9736cf60ac684f20 Author: Archit Taneja Date: Fri Oct 9 12:40:39 2015 +0530 drm/msm/dsi: Delay dsi_clk_init Initialize clocks only after we get the DSI host version. This will allow us to get clocks using a pre-defined list based on the DSI major/minor version of the host. This is required since clock requirements of different major DSI revisions(v2 vs 6g) aren't the same. Modify dsi_get_version to get the interface clock, and then put it after it is used. Signed-off-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/dsi/dsi_host.c | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) commit 648d5063727ae3f555317baf6a5d2dc1e8e8d2a5 Author: Archit Taneja Date: Fri Oct 9 11:10:59 2015 +0530 drm/msm/dsi: Use a better way to figure out DSI version The current version checking mechanism works fine for DSI6G blocks. It doesn't work so well for older generation DSIv2 blocks. The initial read of REG_DSI_6G_HW_VERSION(offset 0x0) would result in a read of REG_DSI_CTRL for DSIv2. This register won't necessarily be 0 on DSIv2. It can be non zero if DSI was previously initialized by the bootloader. Instead of reading offset 0x0, we now read offset 0x1f0. For DSIv2, this register is DSI_VERSION, and is bound to be non-zero. On DSI6G, this register(offset 0x1f0) is SCRATCH_REGISTER_0, which no one ever seems to touch, and from all register dumps I'vc seen, holds 0 all the time. Modify dsi_get_version to read REG_DSI_VERSION to determine whether we are DSI6G or DSIv2. Signed-off-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/dsi/dsi_host.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) commit c6538de8dd5e08a5f2aac80900b170f2523711fb Author: Archit Taneja Date: Wed Oct 14 12:03:44 2015 +0530 drm/msm/dsi: Add DSI PLL for 28nm 8960 PHY Add DSI PLL common clock framework clocks for 8960 PHY. The PLL here is different from the ones found in B family msm chips. As before, the DSI provides two clocks to the outside world. dsixpll and dsixpllbyte (x = 1, 2). dsixpll is a regular clock divider, but dsixpllbyte is modelled as a custom clock divider. dsixpllbyte is the starting point of the PLL configuration. It is the one that sets up the VCO clock rate. We need the VCO clock rate in the form: F * byteclk, where F is a multiplication factor that varies on the byte clock the DSI driver is trying to set. We use the custom clk_ops for dsixpllbyte to ensure that the parent (VCO) is set at this rate. An additional divider (POSTDIV1) generates the bitclk. Since bit clock can be derived from byteclock, we calculate it internally, and don't expose it as a clock. Cc: Stephen Boyd Signed-off-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/Makefile | 1 + drivers/gpu/drm/msm/dsi/pll/dsi_pll.c | 3 + drivers/gpu/drm/msm/dsi/pll/dsi_pll.h | 10 + drivers/gpu/drm/msm/dsi/pll/dsi_pll_28nm_8960.c | 533 ++++++++++++++++++++++++ 4 files changed, 547 insertions(+) commit 225380b3e9b4b82d19de5a161aee169dbc57f353 Author: Archit Taneja Date: Wed Oct 14 12:00:34 2015 +0530 drm/msm/dsi: Add support for 28nm PHY on 8960 DSI PHY on MSM8960 and APQ8064 is a 28nm PHY that's different from the supported 28nm LP PHY found in newer chips. Add support for the new PHY. Signed-off-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/Kconfig | 8 + drivers/gpu/drm/msm/Makefile | 1 + drivers/gpu/drm/msm/dsi/dsi.h | 1 + drivers/gpu/drm/msm/dsi/phy/dsi_phy.c | 4 + drivers/gpu/drm/msm/dsi/phy/dsi_phy.h | 1 + drivers/gpu/drm/msm/dsi/phy/dsi_phy_28nm_8960.c | 195 ++++++++++++++++++++++++ 6 files changed, 210 insertions(+) commit e6c4c78c10d87a99f298a2455a4aaede5743bb4f Author: Archit Taneja Date: Mon Nov 30 17:47:17 2015 +0530 drm/msm/dsi: Don't get byte/pixel source clocks from DT We retrieve the byte and pixel source clocks (RCG clocks) in the dsi driver via DT. These are needed so that we can re-parent these source clocks if we want to drive it using a different DSI PLL. We shouldn't get these via DT because they aren't clocks that directly serve as inputs to the dsi host. Fortunately, there is a static parent-child link between the byte_clk_src/pixel_clk_src and byte_clk/pixel_clk clocks. So, we can retrieve the source clocks via clk_get_parent. Do this instead of retrieving via DT. Cc: Rob Herring Cc: Stephen Boyd Signed-off-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/dsi/dsi_host.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) commit af6d0423dfe33ca3bb9a0d1f50eb165b087fd88e Author: Archit Taneja Date: Wed Nov 18 17:58:28 2015 +0530 drm/msm/mdp4: Initialize DSI encoders Create DSI encoders during modeset_init. The 2 encoders should ideally be one command mode and one video mode DSI encoder respectively, but we don't support command mode yet. We just create 2 of the same because the dsi driver expects it, we end up using only the first one. Signed-off-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.c | 37 ++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) commit 9696acbcbf4048cc2462834bb692200f44e50f29 Author: Archit Taneja Date: Wed Nov 18 17:57:16 2015 +0530 drm/msm/mdp4: Call custom round_pixclk helper only if the encoder type is TMDS The mdp_kms round_pixclk op creates problems when we have more interfaces in use. It calls the DTV encoder's helper by default. Check on encoder type and call the corresponding encoder's func meant for rounding pixel clock. DSI and LVDS don't require rounding, so just return rate in their case. Signed-off-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 776638e73a195fb266b84ec75a9080c3feb35b68 Author: Vinay Simha BN Date: Mon Oct 19 12:27:11 2015 +0530 drm/msm/dsi: Add a mdp4 encoder for DSI Create an mdp4 incoder for DSI. Only DSI video mode is supported as of now. Signed-off-by: Archit Taneja Signed-off-by: Vinay Simha BN Signed-off-by: Rob Clark drivers/gpu/drm/msm/Makefile | 1 + drivers/gpu/drm/msm/mdp/mdp4/mdp4_dsi_encoder.c | 198 ++++++++++++++++++++++++ drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.h | 9 ++ 3 files changed, 208 insertions(+) commit a6bf7f63828bf10c1da4da0b339b3c1df7c0d1f1 Author: Archit Taneja Date: Wed Nov 18 17:15:50 2015 +0530 drm/msm/mdp4: Initialize LCDC encoder even if panel driver isn't available Currently, the driver defers if it doesn't find a drm_panel. This forces us to have a drm_panel, if not, the driver isn't usable. Make the lcdc encoder initialization independent of the availability of the drm panel. We only check if there is a panel node specified in DT. If it isn't, then we don't initialize the encoder at all. The panel node is passed to the lcdc encoder and lvds connector drivers. The connector driver takes the responsibility to retrieve the drm_panel from the panel node, and update the status on whether the panel is connected or not. This makes the panel usable even if the drm_panel driver is inserted as a module later on. Signed-off-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.c | 38 ++++++++++------------ drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.h | 4 +-- drivers/gpu/drm/msm/mdp/mdp4/mdp4_lcdc_encoder.c | 11 ++++--- drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c | 23 +++++++------ 4 files changed, 40 insertions(+), 36 deletions(-) commit ec141af624bbd3932aab90b85e1fabe7fa1ca70b Author: Archit Taneja Date: Mon Oct 19 12:20:52 2015 +0530 drm/msm/mdp4: Clean up modeset_init modeset_init() for mdp4 isn't very flexible. That makes it hard to add more interfaces. Split out the encoder/connector creation code in modeset_init into a separate function. This is similar to what's done in modeset_init for mdp5. Signed-off-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.c | 192 ++++++++++++++++++-------------- 1 file changed, 109 insertions(+), 83 deletions(-) commit 66a42f8586897c3a95ac2fef5e2ee1e69da695c8 Author: Archit Taneja Date: Wed Nov 18 16:32:28 2015 +0530 drm/msm/adreno: Remove CONFIG_OF checks Remove CONFIG_OF checks in adreno_device.c. The downstream bus scaling stuff is included only when CONFIG_OF is not set. So, remove that too. Signed-off-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/adreno/adreno_device.c | 52 ------------------------------ 1 file changed, 52 deletions(-) commit 1fd6a4412c98a4bf89e1e583c5153c250aa24667 Author: Archit Taneja Date: Fri Oct 30 12:35:55 2015 +0530 drm/msm/hdmi: remove CONFIG_OF checks We now only care about kernels that support DT. Remote the non-DT stuff. While we're at it, use of_device_get_match_data to retrieve match data. Signed-off-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/hdmi/hdmi.c | 87 ++++++++--------------------------------- 1 file changed, 16 insertions(+), 71 deletions(-) commit d50c192afeae3fb0530af63061d1f6238f8c8e02 Author: Archit Taneja Date: Wed Nov 18 12:44:52 2015 +0530 drm/msm/mdp: Remove CONFIG_OF checks from MDP drivers We don't intend to use downstream non-DT kernels anymore, so remove CONFIG_OF checks. Update the TODO comment so that we don't forget about max_clk setting for non APQ8064 chips having MDP4. Signed-off-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.c | 20 +++----------------- drivers/gpu/drm/msm/mdp/mdp5/mdp5_cfg.c | 4 +--- 2 files changed, 4 insertions(+), 20 deletions(-) commit d2252563ee53d90ffa0d864abdaaccb986107e46 Author: Archit Taneja Date: Wed Nov 18 12:36:19 2015 +0530 dt-bindings: drm/msm: Update MDP bindings Update DT bindings for mdp. We now have a more uniform and future-proof set of compatible strings. MDP5 bindings were missing. Add those and update details on the clock-names properties. Signed-off-by: Archit Taneja Signed-off-by: Rob Clark .../devicetree/bindings/display/msm/mdp.txt | 26 +++++++++++++++------- 1 file changed, 18 insertions(+), 8 deletions(-) commit d4fc72ed15ce9612cf4124214fb13c3b9792b3d3 Author: Archit Taneja Date: Wed Nov 18 12:28:39 2015 +0530 drm/msm: Update compatible strings for mdp Create distinct compatible strings for mdp4 and mdp5. Keep "qcom,mdss_mdp" as is to support downstream kernels. Signed-off-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/msm_drv.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit e9fbdaf25cee78049cefb877e1d2fd36ffbf4af1 Author: Archit Taneja Date: Wed Nov 18 12:15:14 2015 +0530 drm/msm: Remove non-DT code in msm_drv Support for non-DT kernels was mainly to use v3.4 downstream kernels. This is no longer a priority now as we have reasonable support upstream. Remove CONFIG_OF from the top level msm_drv.c file. While we're at it, clean up the data matching process using of_device_get_match_data. Signed-off-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/msm_drv.c | 74 ++++++++----------------------------------- drivers/gpu/drm/msm/msm_drv.h | 7 +--- 2 files changed, 15 insertions(+), 66 deletions(-) commit e2dd9f9ffa7fff1d56d331b08cce72781f65aa52 Author: Archit Taneja Date: Mon Oct 26 14:43:57 2015 +0530 drm/msm/mdp5: high precision vblank timestamp support MDP5 has line count and frame count registers for each interface. Enable these counters and use them to implement the get_vblank_timestamp drm driver op. The line counter starts with the value 1 at the beginning of the VSYNC pulse and ends with value VTOTAL at the end of VFP. This value is used to determine whether we're in blanking period or not, and an adjusted value of this counter is used to get vpos as expected by get_scanout_position. Since there is no way to calculate hpos, we always set it to 0. Signed-off-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/mdp/mdp5/mdp5_encoder.c | 18 ++++ drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c | 129 ++++++++++++++++++++++++++++ drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.h | 2 + 3 files changed, 149 insertions(+) commit 408cf34c176e1832bc2f9f68033a55a765484f93 Author: Josh Poimboeuf Date: Sun Dec 13 22:18:12 2015 -0600 perf tools: Convert parse-options.c internal functions to static Signed-off-by: Josh Poimboeuf Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/c027b5f47ec1055077f5650edb1c7ad37c191e6c.1449965119.git.jpoimboe@redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/parse-options.c | 18 +++++++++--------- tools/perf/util/parse-options.h | 9 --------- 2 files changed, 9 insertions(+), 18 deletions(-) commit 5feaac248a46dd5f9876c4ae45c4bbbde5472e90 Author: Josh Poimboeuf Date: Sun Dec 13 22:18:09 2015 -0600 perf tools: Move help_unknown_cmd() to its own file help_unknown_cmd() is quite perf-specific because it relies on some perf_config*() functions. Move it and its supporting functions out into a separate file so that help.c can be moved to a library. Signed-off-by: Josh Poimboeuf Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/562d918bcaaf340c1ae3e47586b3f0ae33b9918b.1449965119.git.jpoimboe@redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/Build | 1 + tools/perf/util/help-unknown-cmd.c | 103 +++++++++++++++++++++++++++++++++++ tools/perf/util/help-unknown-cmd.h | 0 tools/perf/util/help.c | 107 ++----------------------------------- tools/perf/util/help.h | 3 ++ 5 files changed, 110 insertions(+), 104 deletions(-) commit a871a775172ac586b76199fd158e2843971bd052 Author: Josh Poimboeuf Date: Sun Dec 13 22:18:08 2015 -0600 perf tools: Remove check for unused PERF_PAGER_IN_USE PERF_PAGER_IN_USE doesn't seem to be used anywhere, so let's remove it. This will also make it easier to move pager.c into a separate library. Signed-off-by: Josh Poimboeuf Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/ed9e8370db9811746dc590544cf48c36dcfb1731.1449965119.git.jpoimboe@redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/pager.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit 32a56bd438ab3023d08874e2770aa0675364b8ab Author: Josh Poimboeuf Date: Sun Dec 13 22:18:07 2015 -0600 perf tools: Create pager.h Move the 'pager' function prototypes into a new pager.h so that the pager code can be moved out to a library. Signed-off-by: Josh Poimboeuf Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/ba7c316474dd6bfc047e5c6dc4dcab39a982caf5.1449965119.git.jpoimboe@redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/cache.h | 5 +---- tools/perf/util/pager.h | 7 +++++++ 2 files changed, 8 insertions(+), 4 deletions(-) commit 212e984a07d19c2e6b83da4ebac4e965dd92efd3 Author: Josh Poimboeuf Date: Sun Dec 13 22:18:06 2015 -0600 perf build: Rename LIB_PATH -> API_PATH 'LIB_PATH' is a misnomer because there are multiple library paths. Signed-off-by: Josh Poimboeuf Acked-by: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/c10df0b749a27f05cc531fe06b8dd71a329341fa.1449965119.git.jpoimboe@redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Makefile.perf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 8f46dfd73e5378909834bd32a4e7710cd5522506 Author: Josh Poimboeuf Date: Sun Dec 13 22:18:05 2015 -0600 perf build: Fix 'make clean' Add some missing files to the 'make clean' target. Reported-and-Acked-by: Jiri Olsa Signed-off-by: Josh Poimboeuf Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/8b1f5a5bd66a652be071d423e64aaa994254be31.1449965119.git.jpoimboe@redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Makefile.perf | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 004bd89da8c8e7df87e951bf88e34af67348e4e9 Author: Josh Poimboeuf Date: Sun Dec 13 22:18:04 2015 -0600 perf test: Remove tarpkg at end of test Signed-off-by: Josh Poimboeuf Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/5e7e97a23e3ce11b59d1009b39ebb6d2813a0560.1449965119.git.jpoimboe@redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/make | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 8bda6a63a049caee4f8ddf2dd99055794df96e4f Author: Josh Poimboeuf Date: Sun Dec 13 22:18:03 2015 -0600 perf test: Add Build file to dependencies for llvm-src-*.c Because the Build file writes source code to the generated llvm-src-*.c files, it should be listed as one of the dependencies, so that any future changes to the code being echoed won't require a 'make clean'. Signed-off-by: Josh Poimboeuf Acked-by: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/9b9886c295750dc83cbbb29a665d280f9c5e8b3e.1449965119.git.jpoimboe@redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/Build | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 26bc9b2df1f38536cdfd58df94bf8b5601eb894a Author: Josh Poimboeuf Date: Sun Dec 13 22:18:01 2015 -0600 perf build: Remove unnecessary line in Makefile.feature This line always silently fails because it doesn't add the 'test-' prefix to the .bin file. And it seems to be unnecessary anyway: the line immediately after it does all the individual feature checks. Signed-off-by: Josh Poimboeuf Acked-by: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/554a05c18af564ba015c9e68f25730126e0f4acb.1449965119.git.jpoimboe@redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/build/Makefile.feature | 1 - 1 file changed, 1 deletion(-) commit 71d6de64feddd4b455555326fba2111b3006d9e0 Author: Namhyung Kim Date: Mon Dec 14 12:11:13 2015 +0900 perf test: Fix hist testcases when kptr_restrict is on Currently if kptr_restrict is enabled, all hist tests failed with segfaults. This is because machine__create_kernel_maps() in setup_fake_machine() failed in that situation, and it called machine__delete() on the error path. But outer callers again called machines__exit() causing double free for the host machine. Signed-off-by: Namhyung Kim Cc: Jiri Olsa Cc: Adrian Hunter Cc: David Ahern Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1450062673-22312-1-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/hists_common.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit e2127ae7a5e80eb53ad431c39145767391da40cd Author: Vince Hsu Date: Tue Sep 29 11:58:51 2015 +0200 memory/tegra: Add number of TLB lines for Tegra124 Tegra124 was accidentally left out when the number of TLB lines was parameterized in commit 11cec15bf3fb ("iommu/tegra-smmu: Parameterize number of TLB lines"). Fortunately this doesn't cause any noticeable regressions upstream, presumably because there aren't any use-cases that exercise enough pressure on the SMMU. But it is a regression nonetheless, so let's fix it. Fixes: 11cec15bf3fb ("iommu/tegra-smmu: Parameterize number of TLB lines") Signed-off-by: Vince Hsu Signed-off-by: Tomasz Figa [treding@nvidia.com: extract from unrelated patch] Signed-off-by: Thierry Reding drivers/memory/tegra/tegra124.c | 1 + 1 file changed, 1 insertion(+) commit bd0f889536f80630c1c4a414f2de90744d2c87d0 Author: Andi Kleen Date: Fri Dec 11 16:12:24 2015 -0800 perf evsel: Disable branch flags/cycles for --callgraph lbr [The kernel patch needed for this is in tip now (b16a5b52eb9 perf/x86: Add option to disable ...) So this user tools patch to make use of it should be merged now] Automatically disable collecting branch flags and cycles with --call-graph lbr. This allows avoiding a bunch of extra MSR reads in the PMI on Skylake. When the kernel doesn't support the new flags they are automatically cleared in the fallback code. v2: Switch to use branch_sample_type instead of sample_type. Adjust description. Fix the fallback logic. Signed-off-by: Andi Kleen Acked-by: Jiri Olsa Link: http://lkml.kernel.org/r/1449879144-29074-1-git-send-email-andi@firstfloor.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evsel.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) commit abd828688407eb86044f1bc9e5133c55d7597596 Author: Arnaldo Carvalho de Melo Date: Fri Dec 11 19:11:23 2015 -0300 perf thread: Fix reference count initial state We should always return from thread__new(), the constructor, with the object with a reference count of one, so that: struct thread *thread = thread__new(); thread__put(thread); Will call thread__delete(). If any reference is made to that 'thread' variable, it better use thread__get(thread) to hold a reference. We were returning with thread->refcnt set to zero, fix it and some cases where thread__delete() was being called, which were not a problem because just one reference was being used, now that we set it to 1, use thread__put() instead. Reported-by: Masami Hiramatsu Cc: Adrian Hunter Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Wang Nan Link: http://lkml.kernel.org/n/tip-4b9mkuk66to4ecckpmpvqx6s@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/intel-pt.c | 4 ++-- tools/perf/util/machine.c | 19 ++++++++++++------- tools/perf/util/thread.c | 10 ++++++++-- 3 files changed, 22 insertions(+), 11 deletions(-) commit b6847d2c2a50e96680e233ce4b2784981b6f309e Author: Arnaldo Carvalho de Melo Date: Fri Dec 11 19:06:53 2015 -0300 perf test: Dump the stack when test segfaults when in verbose mode E.g.: # perf test 26 26: Test mmap thread lookup : FAILED! # perf test -v 26 26: Test mmap thread lookup : --- start --- test child forked, pid 9269 tid = 9269, map = 0x7ff99ff0c000 tid = 9270, map = 0x7ff99ff0b000 tid = 9271, map = 0x7ff99ff0a000 tid = 9272, map = 0x7ff99ff09000 perf: Segmentation fault Obtained 13 stack frames. perf(sighandler_dump_stack+0x41) [0x4e3541] /lib64/libc.so.6(+0x34960) [0x7ff99d5f6960] perf(thread__put+0x5b) [0x4c6f6b] perf(machine__process_event+0x14e) [0x4bd37e] perf(perf_event__synthesize_threads+0x3aa) [0x48678a] perf(test__mmap_thread_lookup+0x20a) [0x474e0a] perf() [0x460d56] perf(cmd_test+0x589) [0x461319] perf() [0x47c641] perf(main+0x617) [0x422317] /lib64/libc.so.6(__libc_start_main+0xf0) [0x7ff99d5e1fe0] perf() [0x422429] [(nil)] test child interrupted ---- end ---- Test mmap thread lookup: FAILED! # Cc: Adrian Hunter Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Wang Nan Link: http://lkml.kernel.org/n/tip-sypazzsl4ptctrmlyi2zcmaj@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/builtin-test.c | 3 +++ 1 file changed, 3 insertions(+) commit 9daddf66a37708ec7182a7058f159166d12c9812 Author: Arnaldo Carvalho de Melo Date: Fri Dec 11 16:43:57 2015 -0300 perf tools: Use same signal handling strategy as 'record' I.e. don't exit with the signal number, instead set the signal handler to the default one and then raise it again. Noticed while trying to dump the stack at segfaults in the 'perf test' forked process used to run each test, that inspects signal info at each test. Cc: Adrian Hunter Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Wang Nan Link: http://lkml.kernel.org/n/tip-5x5r176wnoqxi5p6id05wv9w@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/util.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ae50dc4874c5b73dfefeb1d5a9c1adf2c41576fd Author: Geert Uytterhoeven Date: Fri Dec 4 16:58:56 2015 +0100 iommu/shmobile: Remove unused Renesas IPMMU/IPMMUI driver As of commit 44d88c754e57a6d9 ("ARM: shmobile: Remove legacy SoC code for R-Mobile A1"), the Renesas IPMMU/IPMMUI driver is no longer used. In theory it could still be used on SH-Mobile AG5 and R-Mobile A1 SoCs, but that requires adding DT support to the driver, which is not planned. Remove the driver, it can be resurrected from git history when needed. Signed-off-by: Geert Uytterhoeven Acked-by: Simon Horman Signed-off-by: Joerg Roedel drivers/iommu/Kconfig | 75 -------- drivers/iommu/Makefile | 2 - drivers/iommu/shmobile-iommu.c | 402 ----------------------------------------- drivers/iommu/shmobile-ipmmu.c | 129 ------------- drivers/iommu/shmobile-ipmmu.h | 34 ---- 5 files changed, 642 deletions(-) commit e7479a1907dbb9761cef2ad0c94c6d3ba03d3013 Author: Thierry Reding Date: Wed Dec 2 17:26:01 2015 +0100 iommu/msm: Use platform_register/unregister_drivers() These new helpers simplify implementing multi-driver modules and properly handle failure to register one driver by unregistering all previously registered drivers. Signed-off-by: Thierry Reding Signed-off-by: Joerg Roedel drivers/iommu/msm_iommu_dev.c | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) commit ad906599c1919eda6f365ecec8d50198c9232131 Author: Thierry Reding Date: Thu Sep 24 18:38:09 2015 +0200 drm/tegra: Advertise DRIVER_ATOMIC The driver has supported atomic mode-setting for quite a while. It's time to advertise that. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/drm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d2d8c3581850dc1b21d903b0680d0e3358d52ae2 Author: Thierry Reding Date: Mon Nov 23 16:46:30 2015 +0100 drm/tegra: Use DRIVER level for IOMMU aperture message This allows the message to be shown even if core messages are disabled globally in DRM. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/drm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 759ce23b62c4ba1aa467fe5eb12bc9f95af606fe Author: Julia Lawall Date: Sun Nov 29 23:02:50 2015 +0100 iommu/amd: Constify mmu_notifier_ops structures This mmu_notifier_ops structure is never modified, so declare it as const, like the other mmu_notifier_ops structures. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu_v2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 492e74594ec6285207f9db02d41c41cad5dbc6ab Author: Joerg Roedel Date: Tue Nov 17 16:11:38 2015 +0100 iommu/amd: Cleanup error handling in do_fault() Get rid of the three error paths that look the same and move error handling to a single place. Reviewed-by: Jesse Barnes Acked-By: David Woodhouse Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu_v2.c | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) commit 43c0ea20de4de8e2d753dff0e76129c4febafffa Author: Joerg Roedel Date: Tue Nov 17 16:11:37 2015 +0100 iommu/amd: Correctly set flags for handle_mm_fault call Instead of just checking for a write access, calculate the flags that are passed to handle_mm_fault() more precisly and use the pre-defined macros. Reviewed-by: Jesse Barnes Acked-By: David Woodhouse Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu_v2.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) commit 512167788a6fe9481a33a3cce5f80b684631a1bb Author: Mike Snitzer Date: Mon Dec 14 09:26:01 2015 -0500 dm space map metadata: remove unused variable in brb_pop() Remove the unused struct block_op pointer that was inadvertantly introduced, via cut-and-paste of previous brb_op() code, as part of commit 50dd842ad. (Cc'ing stable@ because commit 50dd842ad did) Fixes: 50dd842ad ("dm space map metadata: fix ref counting bug when bootstrapping a new space map") Reported-by: David Binderman Signed-off-by: Mike Snitzer Cc: stable@vger.kernel.org drivers/md/persistent-data/dm-space-map-metadata.c | 3 --- 1 file changed, 3 deletions(-) commit af1086ba051aa33c559350a5fdb533acfe98a80c Author: Liam Girdwood Date: Mon Dec 14 20:06:13 2015 +0800 ASoC: Intel: sst: fix the IRQ locked issue If driver received a message that it can't handle, it won't clear the corresponding bit and unmask interrupt, this may lock the IRQ and DSP can't send message anymore. To fix the issue, we should Always update IMRX after IPC. Here we always clear the DONE/BUSY bit and unmask the IRQ source, even when IPC failures have occurred previously. Signed-off-by: Liam Girdwood Modified-by: Jie Yang Signed-off-by: Jie Yang Signed-off-by: Mark Brown sound/soc/intel/haswell/sst-haswell-ipc.c | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) commit 2f46205b4e4c1c2a4b72082f805753eb51fbfab5 Author: Sudeep Holla Date: Fri Nov 27 17:19:15 2015 +0000 gpio: pl061: add support for wakeup configuration The PL061 supports interrupts and those can be wakeup interrupts. We need to provide support for configuring those interrupts as wakeup sources. This patch adds irq_set_wake callback for PL061 so that GPIO interrupts can be configured as wakeup. Cc: Linus Walleij Cc: Alexandre Courbot Signed-off-by: Sudeep Holla Signed-off-by: Linus Walleij drivers/gpio/gpio-pl061.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit db8b42fbfc6f778fa22201f24e53fc4250b52e4c Author: Dan Carpenter Date: Mon Aug 17 17:37:03 2015 +0300 drm/tegra: checking for IS_ERR() instead of NULL The tegra_sor_hdmi_find_settings() function returns NULL on error and not an ERR_PTR. Fixes: 459cc2c6800b ('drm/tegra: sor: Add HDMI support') Signed-off-by: Dan Carpenter Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/sor.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 4b0d98ae2d3dabdf63deb62874e631f7de6eb786 Author: Caesar Wang Date: Wed Nov 11 15:34:31 2015 +0800 ARM: dts: rockchip: add eFuse node for rk3188 SoCs This patch add the eFuse dt node for rk3188 SoCs. Signed-off-by: Caesar Wang Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3188.dtsi | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit d3369b1ebad02e81ecf02e2a4837b576d19b3b21 Author: Caesar Wang Date: Wed Nov 11 15:34:30 2015 +0800 ARM: dts: rockchip: add eFuse node for rk3066a SoCs This patch add the eFuse dt node for rk3066a SoCs. Signed-off-by: Caesar Wang Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3066a.dtsi | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 3773c195d3874d38d1c5ac68868024b32a1f08c9 Author: Michal Simek Date: Thu Dec 10 12:10:12 2015 +0100 gpio: zynq: Do PM initialization earlier to support gpio hogs GPIO hogs registration is call at the end of gpiochip_add() function. Calling sequence is: gpiochip_add -> of_gpiochip_add -> of_gpiochip_scan_hogs -> gpiod_hog -> gpiochip_request_own_desc -> __gpiod_request -> chip->request -> zynq_gpio_request which calls pm_runtime_get_sync() which returns -13 because PM is not initialized yet. Initialize PM before gpiochip_add is called to fix this issue. Signed-off-by: Michal Simek Signed-off-by: Soren Brinkmann Signed-off-by: Linus Walleij drivers/gpio/gpio-zynq.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) commit 81b312f11dfd7466462d94667f0a8df14a412d2a Author: Tadeusz Struk Date: Thu Dec 10 14:23:03 2015 -0800 crypto: qat - uint8_t is not large enough for accel_id accel_id has to be large enough to hold ADF_MAX_DEVICES + 1 (which is > 1025) so uint8_t is too small. Reported-by: Dan Carpenter Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/adf_accel_devices.h | 2 +- drivers/crypto/qat/qat_common/adf_cfg_common.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 50eca2561beb0b7d3d43287b9e7cf8a39301c346 Author: Sam Protsenko Date: Thu Dec 10 18:06:59 2015 +0200 crypto: omap-des - Fix "schedule while atomic" bug When using DES module the next bug appears: BUG: scheduling while atomic: kworker/0:1/63/0x00000102 With backtrace as follows: <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< cut here >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> [] (dump_backtrace) from [] (show_stack+0x18/0x1c) [] (show_stack) from [] (dump_stack+0x84/0xc4) [] (dump_stack) from [] (__schedule_bug+0x54/0x64) [] (__schedule_bug) from [] (__schedule+0x4ac/0x53c) [] (__schedule) from [] (schedule+0x38/0x88) [] (schedule) from [] (rpm_resume+0x158/0x59c) [] (rpm_resume) from [] (__pm_runtime_resume+0x54/0x6c) [] (__pm_runtime_resume) from [] (omap_des_handle_queue+0x154/0x7bc) [] (omap_des_handle_queue) from [] (omap_des_crypt+0x58/0xbc) [] (omap_des_crypt) from [] (omap_des_cbc_decrypt+0x14/0x18) [] (omap_des_cbc_decrypt) from [] (authenc_verify_ahash_done+0xe0/0xe8) [] (authenc_verify_ahash_done) from [] (omap_sham_finish_req+0x58/0xa8) [] (omap_sham_finish_req) from [] (omap_sham_done_task+0x1c0/0x1e0) [] (omap_sham_done_task) from [] (tasklet_action+0x80/0x118) [] (tasklet_action) from [] (__do_softirq+0x11c/0x260) [] (__do_softirq) from [] (irq_exit+0xc0/0xfc) [] (irq_exit) from [] (handle_IRQ+0x4c/0x98) [] (handle_IRQ) from [] (gic_handle_irq+0x34/0x64) [] (gic_handle_irq) from [] (__irq_svc+0x40/0x70) <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< cut here >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Insight was seen in drivers/crypto/omap-sham.c driver. All credits for this patch go to Grygorii Strashko. Signed-off-by: Sam Protsenko Signed-off-by: Herbert Xu drivers/crypto/omap-des.c | 1 + 1 file changed, 1 insertion(+) commit 40c18a59d226c94901a2789027c8678fcfcac098 Author: Zeng Xin Date: Wed Dec 9 21:38:30 2015 -0800 crypto: qat - enable VF irq after guest exits ungracefully The VF bundle interrupt is not triggered any more in the case when guest is shut down with sample app running. Need to clear the flag interrupt bit when restarting to fix this irrecoverable state. Signed-off-by: Zeng Xin Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/adf_transport.c | 3 ++- drivers/crypto/qat/qat_common/adf_transport_access_macros.h | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) commit fee3103ac3c0aeab52b337903f5af3cd3b3c02d8 Author: Andrzej Hajda Date: Mon Dec 14 11:06:00 2015 +0100 clk: sunxi: fix handling return value of of_property_match_string The function can return negative values, so its result should be assigned to signed variable. 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 Signed-off-by: Maxime Ripard drivers/clk/sunxi/clk-sun8i-bus-gates.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 19576c9478682a398276c994ea0d2696474df32b Author: Pablo Neira Date: Wed Dec 9 14:07:40 2015 +0100 netfilter: cttimeout: add netns support Add a per-netns list of timeout objects and adjust code to use it. Signed-off-by: Pablo Neira Ayuso include/net/net_namespace.h | 3 + include/net/netfilter/nf_conntrack_timeout.h | 2 +- net/netfilter/nf_conntrack_timeout.c | 2 +- net/netfilter/nfnetlink_cttimeout.c | 82 +++++++++++++++++----------- net/netfilter/xt_CT.c | 2 +- 5 files changed, 57 insertions(+), 34 deletions(-) commit 3ffa75cd18134a03f86f9d9b8b6e9128e0eda254 Author: Marc Zyngier Date: Mon Oct 26 09:10:07 2015 +0000 arm64: KVM: Remove weak attributes As we've now switched to the new world switch implementation, remove the weak attributes, as nobody is supposed to override it anymore. Acked-by: Christoffer Dall Signed-off-by: Marc Zyngier arch/arm64/kvm/hyp/debug-sr.c | 5 ++--- arch/arm64/kvm/hyp/hyp-entry.S | 3 --- arch/arm64/kvm/hyp/switch.c | 5 ++--- arch/arm64/kvm/hyp/tlb.c | 16 +++++++--------- arch/arm64/kvm/hyp/vgic-v3-sr.c | 5 ++--- 5 files changed, 13 insertions(+), 21 deletions(-) commit 23a13465c84c51ec4330863b59e9d50ee671f8b4 Author: Marc Zyngier Date: Sun Oct 25 20:03:08 2015 +0000 arm64: KVM: Cleanup asm-offset.c As we've now rewritten most of our code-base in C, most of the KVM-specific code in asm-offset.c is useless. Delete-time again! Signed-off-by: Marc Zyngier Acked-by: Christoffer Dall arch/arm64/kernel/asm-offsets.c | 39 --------------------------------------- 1 file changed, 39 deletions(-) commit 9d8415d6c148a16b6d906a96f0596851d7e4d607 Author: Marc Zyngier Date: Sun Oct 25 19:57:11 2015 +0000 arm64: KVM: Turn system register numbers to an enum Having the system register numbers as #defines has been a pain since day one, as the ordering is pretty fragile, and moving things around leads to renumbering and epic conflict resolutions. Now that we're mostly acessing the sysreg file in C, an enum is a much better type to use, and we can clean things up a bit. Signed-off-by: Marc Zyngier Acked-by: Christoffer Dall arch/arm64/include/asm/kvm_asm.h | 76 --------------------------------- arch/arm64/include/asm/kvm_emulate.h | 1 - arch/arm64/include/asm/kvm_host.h | 81 +++++++++++++++++++++++++++++++++++- arch/arm64/include/asm/kvm_mmio.h | 1 - arch/arm64/kernel/asm-offsets.c | 1 + arch/arm64/kvm/guest.c | 1 - arch/arm64/kvm/handle_exit.c | 1 + arch/arm64/kvm/hyp/debug-sr.c | 1 + arch/arm64/kvm/hyp/entry.S | 3 +- arch/arm64/kvm/hyp/sysreg-sr.c | 1 + arch/arm64/kvm/sys_regs.c | 1 + virt/kvm/arm/vgic-v3.c | 1 + 12 files changed, 87 insertions(+), 82 deletions(-) commit 1ea66d27e7b01086669ff2abdc3ac89dc90eae51 Author: Marc Zyngier Date: Sun Oct 25 15:51:41 2015 +0000 arm64: KVM: Move away from the assembly version of the world switch This is it. We remove all of the code that has now been rewritten. Signed-off-by: Marc Zyngier Acked-by: Christoffer Dall arch/arm64/kvm/Makefile | 2 - arch/arm64/kvm/hyp.S | 1081 +-------------------------------------- arch/arm64/kvm/vgic-v2-switch.S | 134 ----- arch/arm64/kvm/vgic-v3-switch.S | 269 ---------- 4 files changed, 1 insertion(+), 1485 deletions(-) commit 910917bb7db070cc67557a6b3c8fcceaa5c398a7 Author: Marc Zyngier Date: Tue Oct 27 12:18:48 2015 +0000 arm64: KVM: Map the kernel RO section into HYP In order to run C code in HYP, we must make sure that the kernel's RO section is mapped into HYP (otherwise things break badly). Signed-off-by: Marc Zyngier Acked-by: Christoffer Dall arch/arm/kvm/arm.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 044ac37d1281fc7b59d5dce4fe979a99369e95f2 Author: Marc Zyngier Date: Sun Oct 25 13:58:00 2015 +0000 arm64: KVM: Add compatibility aliases So far, we've implemented the new world switch with a completely different namespace, so that we could have both implementation compiled in. Let's take things one step further by adding weak aliases that have the same names as the original implementation. The weak attributes allows the new implementation to be overriden by the old one, and everything still work. At a later point, we'll be able to simply drop the old code, and everything will hopefully keep working, thanks to the aliases we have just added. This also saves us repainting all the callers. Signed-off-by: Marc Zyngier Acked-by: Christoffer Dall arch/arm64/kvm/hyp/debug-sr.c | 3 +++ arch/arm64/kvm/hyp/hyp-entry.S | 3 +++ arch/arm64/kvm/hyp/switch.c | 3 +++ arch/arm64/kvm/hyp/tlb.c | 9 +++++++++ arch/arm64/kvm/hyp/vgic-v3-sr.c | 3 +++ 5 files changed, 21 insertions(+) commit 53fd5b6487e4438049a5da5e36dfb8edcf1fd789 Author: Marc Zyngier Date: Sun Oct 25 15:21:52 2015 +0000 arm64: KVM: Add panic handling Add the panic handler, together with the small bits of assembly code to call the kernel's panic implementation. Signed-off-by: Marc Zyngier Reviewed-by: Christoffer Dall arch/arm64/kvm/hyp/hyp-entry.S | 11 ++++++++++- arch/arm64/kvm/hyp/hyp.h | 1 + arch/arm64/kvm/hyp/switch.c | 30 ++++++++++++++++++++++++++++++ 3 files changed, 41 insertions(+), 1 deletion(-) commit 2b28162cf65a6fe1c93d172675e4f2792792f17e Author: Marc Zyngier Date: Sun Oct 25 08:01:56 2015 +0000 arm64: KVM: HYP mode entry points Add the entry points for HYP mode (both for hypercalls and exception handling). Signed-off-by: Marc Zyngier Reviewed-by: Christoffer Dall arch/arm64/kvm/hyp/Makefile | 1 + arch/arm64/kvm/hyp/hyp-entry.S | 203 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 204 insertions(+) commit 5eec0a91e32a2862e86265532ae773820e0afd77 Author: Marc Zyngier Date: Fri Oct 23 08:26:37 2015 +0100 arm64: KVM: Implement TLB handling Implement the TLB handling as a direct translation of the assembly code version. Signed-off-by: Marc Zyngier Reviewed-by: Christoffer Dall arch/arm64/kvm/hyp/Makefile | 1 + arch/arm64/kvm/hyp/entry.S | 1 + arch/arm64/kvm/hyp/tlb.c | 73 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 75 insertions(+) commit c13d1683df16db16c91372177ca10c31677b5ed5 Author: Marc Zyngier Date: Mon Oct 26 08:34:09 2015 +0000 arm64: KVM: Implement fpsimd save/restore Implement the fpsimd save restore, keeping the lazy part in assembler (as returning to C would be overkill). Signed-off-by: Marc Zyngier Reviewed-by: Christoffer Dall arch/arm64/kvm/hyp/Makefile | 1 + arch/arm64/kvm/hyp/entry.S | 32 +++++++++++++++++++++++++++++++- arch/arm64/kvm/hyp/fpsimd.S | 33 +++++++++++++++++++++++++++++++++ arch/arm64/kvm/hyp/hyp.h | 7 +++++++ arch/arm64/kvm/hyp/switch.c | 8 ++++++++ arch/arm64/kvm/hyp/sysreg-sr.c | 2 +- 6 files changed, 81 insertions(+), 2 deletions(-) commit be901e9b15cd2c8e48dc089b4655ea4a076e66fd Author: Marc Zyngier Date: Wed Oct 21 09:57:10 2015 +0100 arm64: KVM: Implement the core world switch Implement the core of the world switch in C. Not everything is there yet, and there is nothing to re-enter the world switch either. But this already outlines the code structure well enough. Signed-off-by: Marc Zyngier Reviewed-by: Christoffer Dall arch/arm64/kvm/hyp/Makefile | 1 + arch/arm64/kvm/hyp/switch.c | 135 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 136 insertions(+) commit c1bf6e18e97e7ead77371d4251f8ef1567455584 Author: Marc Zyngier Date: Wed Oct 28 08:45:37 2015 +0000 arm64: KVM: Add patchable function selector KVM so far relies on code patching, and is likely to use it more in the future. The main issue is that our alternative system works at the instruction level, while we'd like to have alternatives at the function level. In order to cope with this, add the "hyp_alternate_select" macro that outputs a brief sequence of code that in turn can be patched, allowing an alternative function to be selected. Signed-off-by: Marc Zyngier arch/arm64/kvm/hyp/hyp.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit b97b66c14b96ab562e4fd516d804c5cd05c0529e Author: Marc Zyngier Date: Thu Oct 22 08:32:18 2015 +0100 arm64: KVM: Implement guest entry Contrary to the previous patch, the guest entry is fairly different from its assembly counterpart, mostly because it is only concerned with saving/restoring the GP registers, and nothing else. Reviewed-by: Christoffer Dall Signed-off-by: Marc Zyngier arch/arm64/kvm/hyp/Makefile | 1 + arch/arm64/kvm/hyp/entry.S | 130 ++++++++++++++++++++++++++++++++++++++++++++ arch/arm64/kvm/hyp/hyp.h | 2 + 3 files changed, 133 insertions(+) commit 8eb992674c9e69d57af199f36b6455dbc00ac9f9 Author: Marc Zyngier Date: Mon Oct 19 21:02:46 2015 +0100 arm64: KVM: Implement debug save/restore Implement the debug save restore as a direct translation of the assembly code version. Signed-off-by: Marc Zyngier Tested-by: Alex Bennée Reviewed-by: Alex Bennée Reviewed-by: Christoffer Dall arch/arm64/kvm/hyp/Makefile | 1 + arch/arm64/kvm/hyp/debug-sr.c | 137 ++++++++++++++++++++++++++++++++++++++++++ arch/arm64/kvm/hyp/hyp.h | 9 +++ 3 files changed, 147 insertions(+) commit c209ec85a2a7d2fd38bca0a44b7e70abd079c178 Author: Marc Zyngier Date: Mon Oct 19 19:28:29 2015 +0100 arm64: KVM: Implement 32bit system register save/restore Implement the 32bit system register save/restore as a direct translation of the assembly code version. Signed-off-by: Marc Zyngier Reviewed-by: Christoffer Dall arch/arm64/kvm/hyp/hyp.h | 2 ++ arch/arm64/kvm/hyp/sysreg-sr.c | 47 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) commit 6d6ec20fcf2830ca10c1b7c8efd7e2592c40e3d6 Author: Marc Zyngier Date: Mon Oct 19 18:02:48 2015 +0100 arm64: KVM: Implement system register save/restore Implement the system register save/restore as a direct translation of the assembly code version. Signed-off-by: Marc Zyngier Reviewed-by: Christoffer Dall arch/arm64/kvm/hyp/Makefile | 1 + arch/arm64/kvm/hyp/hyp.h | 3 ++ arch/arm64/kvm/hyp/sysreg-sr.c | 90 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 94 insertions(+) commit 1431af367e52b08038e78d346822966d968f1694 Author: Marc Zyngier Date: Mon Oct 19 16:32:20 2015 +0100 arm64: KVM: Implement timer save/restore Implement the timer save restore as a direct translation of the assembly code version. Signed-off-by: Marc Zyngier arch/arm64/kvm/hyp/Makefile | 1 + arch/arm64/kvm/hyp/hyp.h | 3 ++ arch/arm64/kvm/hyp/timer-sr.c | 71 ++++++++++++++++++++++++++++++++++++ include/clocksource/arm_arch_timer.h | 6 +++ 4 files changed, 81 insertions(+) commit f68d2b1b73cc3d8f6eb189c11ce79a472ed27c42 Author: Marc Zyngier Date: Mon Oct 19 15:50:58 2015 +0100 arm64: KVM: Implement vgic-v3 save/restore Implement the vgic-v3 save restore as a direct translation of the assembly code version. Signed-off-by: Marc Zyngier arch/arm64/kvm/hyp/Makefile | 1 + arch/arm64/kvm/hyp/hyp.h | 3 + arch/arm64/kvm/hyp/vgic-v3-sr.c | 226 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 230 insertions(+) commit 3c13b8f435acb452eac62d966148a8b6fa92151f Author: Marc Zyngier Date: Tue Dec 1 13:48:56 2015 +0000 KVM: arm/arm64: vgic-v3: Make the LR indexing macro public We store GICv3 LRs in reverse order so that the CPU can save/restore them in rever order as well (don't ask why, the design is crazy), and yet generate memory traffic that doesn't completely suck. We need this macro to be available to the C version of save/restore. Signed-off-by: Marc Zyngier include/kvm/arm_vgic.h | 6 ++++++ virt/kvm/arm/vgic-v3.c | 10 ++-------- 2 files changed, 8 insertions(+), 8 deletions(-) commit 06282fd2c2bf61619649a2b13e4a08556598a64c Author: Marc Zyngier Date: Mon Oct 19 15:50:37 2015 +0100 arm64: KVM: Implement vgic-v2 save/restore Implement the vgic-v2 save restore (mostly) as a direct translation of the assembly code version. Signed-off-by: Marc Zyngier arch/arm64/kvm/Makefile | 1 + arch/arm64/kvm/hyp/Makefile | 5 +++ arch/arm64/kvm/hyp/hyp.h | 3 ++ arch/arm64/kvm/hyp/vgic-v2-sr.c | 84 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 93 insertions(+) commit c76a0a6695c61088c8d2e731e25305502666bf7d Author: Marc Zyngier Date: Wed Oct 21 10:09:49 2015 +0100 arm64: KVM: Add a HYP-specific header file In order to expose the various EL2 services that are private to the hypervisor, add a new hyp.h file. So far, it only contains mundane things such as section annotation and VA manipulation. Signed-off-by: Marc Zyngier arch/arm64/kvm/hyp/hyp.h | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) commit 3600c2fdc09a43a30909743569e35a29121602ed Author: Mark Rutland Date: Thu Nov 5 15:09:17 2015 +0000 arm64: Add macros to read/write system registers Rather than crafting custom macros for reading/writing each system register provide generics accessors, read_sysreg and write_sysreg, for this purpose. Signed-off-by: Mark Rutland Acked-by: Catalin Marinas Cc: Suzuki Poulose Cc: Will Deacon Signed-off-by: Marc Zyngier arch/arm64/include/asm/sysreg.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit b19e6892a90e7c9d15fde0a08516ec891a4e7d54 Author: Amit Tomar Date: Thu Nov 26 10:09:43 2015 +0000 KVM: arm/arm64: Count guest exit due to various reasons It would add guest exit statistics to debugfs, this can be helpful while measuring KVM performance. [ Renamed some of the field names - Christoffer ] Signed-off-by: Amit Singh Tomar Signed-off-by: Christoffer Dall arch/arm/include/asm/kvm_host.h | 6 ++++++ arch/arm/kvm/arm.c | 1 + arch/arm/kvm/guest.c | 6 ++++++ arch/arm/kvm/handle_exit.c | 3 +++ arch/arm/kvm/mmio.c | 3 +++ arch/arm64/include/asm/kvm_host.h | 6 ++++++ arch/arm64/kvm/guest.c | 9 +++++++++ arch/arm64/kvm/handle_exit.c | 3 +++ 8 files changed, 37 insertions(+) commit 8cdb654abe5730654d0385382c4e877a011bb8c8 Author: Jisheng Zhang Date: Thu Nov 12 19:59:14 2015 +0800 KVM: arm/arm64: vgic: make vgic_io_ops static vgic_io_ops is only referenced within vgic.c, so it can be declared static. Signed-off-by: Jisheng Zhang Signed-off-by: Christoffer Dall virt/kvm/arm/vgic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 331221fac721788615dd9d5b27f710f7c758d60a Author: Paul Gortmaker Date: Sat Dec 12 16:30:12 2015 -0500 fs: make quota/dquot.c explicitly non-modular The Kconfig currently controlling compilation of this code is: config QUOTA bool "Quota support" ...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 gets bumped to one level earlier when we use the more appropriate fs_initcall here. However we've made similar changes before without any fallout and none is expected here either. We don't delete module.h because the code in turn tries to load other modules as appropriate and so it still needs that header. Cc: Jan Kara Cc: Alexander Viro Cc: linux-fsdevel@vger.kernel.org Signed-off-by: Paul Gortmaker Signed-off-by: Jan Kara fs/quota/dquot.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7da5446367122fd5cc00283e6b6cce5d3ef68c90 Author: Paul Gortmaker Date: Sat Dec 12 16:30:04 2015 -0500 fs: make quota/netlink.c explicitly non-modular The Kconfig currently controlling compilation of this code is: config QUOTA_NETLINK_INTERFACE bool "Report quota messages through netlink interface" ...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 gets bumped to one level earlier when we use the more appropriate fs_initcall here. However we've made similar changes before without any fallout and none is expected here either. Cc: Jan Kara Signed-off-by: Paul Gortmaker Signed-off-by: Jan Kara fs/quota/netlink.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 7c97b72a623cf7f7cfede9caed531b2679556cca Author: Peter Oh Date: Thu Dec 3 09:50:55 2015 -0800 ath10k: allow Mesh Point to install peer security key Mesh Point requires peer security key install when running in secured mode since it's a type of peer links, otherwise peer link will be removed due to key install failure. MFP feature set is required to run Mesh in secured mode and QCA988X firmware, 10.2.4.70.14-2 and above, is the only one supporting secured Mesh at this moment. Signed-off-by: Peter Oh Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit cf6b17445dbf6c287fc389c9a9cb2276984b6a5f Author: Julia Lawall Date: Sat Oct 24 16:42:31 2015 +0200 drm/tegra: dc: Add missing of_node_put() for_each_matching_node() performs an of_node_get() on each iteration, so a break out of the loop requires an of_node_put(). A simplified version of the semantic patch that fixes this problem is as follows (http://coccinelle.lip6.fr): // @@ local idexpression n; expression e; @@ for_each_matching_node(n,...) { ... ( of_node_put(n); | e = n | + of_node_put(n); ? break; ) ... } ... when != n // Signed-off-by: Julia Lawall Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/dc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 51549c087f2eb5788de48a7278c3eb169d66f554 Author: Masahiro Yamada Date: Mon Nov 30 18:53:36 2015 +0900 i2c: uniphier_f: error out if bus speed is zero There is code to divide by "bus_speed" some lines below. To eliminate the possibility of division by zero, bail out if "clock-frequency" is specified as zero. Signed-off-by: Masahiro Yamada Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-uniphier-f.c | 5 +++++ 1 file changed, 5 insertions(+) commit ac9b91f39d86f04eeacfccb6b6113b1ffa001ec1 Author: Masahiro Yamada Date: Mon Nov 30 18:53:35 2015 +0900 i2c: uniphier_f: error out if clock rate is zero This input clock is used to generate the sampling clock for I2C bus. If the clock rate is zero, there is something wrong with the clock driver. Bail out with the appropriate error message in such a case. It would make it easier to find the root cause of failure. Signed-off-by: Masahiro Yamada Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-uniphier-f.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 2d5d23b96a4a660d0d04455150570c6257d4ce25 Author: Masahiro Yamada Date: Mon Nov 30 18:53:34 2015 +0900 i2c: uniphier: error out if bus speed is zero There is code to divide by "bus_speed" some lines below. To eliminate the possibility of division by zero, bail out if "clock-frequency" is specified as zero. Signed-off-by: Masahiro Yamada Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-uniphier.c | 5 +++++ 1 file changed, 5 insertions(+) commit 1ff49b34bfd1261277d2c97ec48efb067b87f5e5 Author: Masahiro Yamada Date: Mon Nov 30 18:53:33 2015 +0900 i2c: uniphier: error out if clock rate is zero This input clock is used to generate the sampling clock for I2C bus. If the clock rate is zero, there is something wrong with the clock driver. Bail out with the appropriate error message in such a case. It would make it easier to find the root cause of failure. Signed-off-by: Masahiro Yamada Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-uniphier.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit ca68eade666a6ad7e954cc8c1af07ce477726087 Author: Wolfram Sang Date: Tue Dec 8 10:37:49 2015 +0100 i2c: rcar: honor additional i2c timings from DT Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang Documentation/devicetree/bindings/i2c/i2c-rcar.txt | 4 ++++ drivers/i2c/busses/i2c-rcar.c | 21 ++++++++++++--------- 2 files changed, 16 insertions(+), 9 deletions(-) commit c7881871de878ab3a40b973142e4ca17857b6b73 Author: Wolfram Sang Date: Tue Dec 8 10:37:48 2015 +0100 i2c: rcar: switch to i2c generic dt parsing Switch to the new generic functions. Plain convert, no functionality added yet. Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-rcar.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit f9c9d31bdd37970d2aaaac794d93691170008f5a Author: Wolfram Sang Date: Tue Dec 8 10:37:47 2015 +0100 i2c: rcar: refactor probe function a little The probe function is a little bit messy, something here, something there. Rework it so that there is some order: first init the private structure, then the adapter, then do HW init. This also allows us to remove the device argument of the clock calculation function, because it now can be deduced from the private structure. Also, shorten some lines where possible. This is a preparation for further refactoring. Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-rcar.c | 40 +++++++++++++++++----------------------- 1 file changed, 17 insertions(+), 23 deletions(-) commit e1dba01ca620bb0b3864d5237c1c597d9e012ebf Author: Wolfram Sang Date: Tue Dec 8 10:37:46 2015 +0100 i2c: add generic routine to parse DT for timing information Inspired from the i2c-rk3x driver (thanks guys!) but refactored and extended. See built-in docs for further information. Signed-off-by: Wolfram Sang Reviewed-by: Mika Westerberg Signed-off-by: Wolfram Sang drivers/i2c/i2c-core.c | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++ include/linux/i2c.h | 18 +++++++++++++++++ 2 files changed, 71 insertions(+) commit 986c58d1625df222c6148c1dc72e59fbf96ef75e Author: Thierry Reding Date: Tue Aug 11 13:11:49 2015 +0200 drm/tegra: Implement subsystem-level suspend/resume Use the drm_atomic_helper_suspend() and drm_atomic_helper_resume() helpers to implement subsystem-level suspend/resume. v2: suspend framebuffer device to avoid concurrency issues v3: resume fbdev on failure to suspend (Emil Velikov) Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/drm.c | 12 ++++++++++++ drivers/gpu/drm/tegra/drm.h | 4 ++++ drivers/gpu/drm/tegra/fb.c | 24 ++++++++++++++++++++++++ 3 files changed, 40 insertions(+) commit 01b9bea0c2616e92334cfa3e052862527bf25d36 Author: Thierry Reding Date: Wed Nov 11 17:15:29 2015 +0100 drm/tegra: sor: Remove unnecessary conditional Checking for sor->aux in eDP specific code is unnecessary because eDP inherently requires a valid AUX channel. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/sor.c | 93 ++++++++++++++++++++------------------------- 1 file changed, 41 insertions(+), 52 deletions(-) commit 9542c2376efaf5a6ae65b4aa0014e9f35ba36e17 Author: Thierry Reding Date: Wed Jul 8 13:39:09 2015 +0200 drm/tegra: sor: Operate on struct drm_dp_aux * Instead of getting a pointer to the driver-specific wrapper of AUX channels, use the AUX channel objects directly to avoid hackish casting between the two types. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/dpaux.c | 41 ++++++++++++++++------------- drivers/gpu/drm/tegra/drm.h | 19 +++++++------- drivers/gpu/drm/tegra/sor.c | 60 ++++++++++++++++++++----------------------- 3 files changed, 60 insertions(+), 60 deletions(-) commit a07cdfe5389e0ca43f525c7d1da0930b7447e0c8 Author: Daniel Vetter Date: Mon Nov 23 10:32:48 2015 +0100 drm/tegra: Use drm_gem_object_unreference_unlocked() This only grabs the mutex when really needed, but still has a might- acquire lockdep check to make sure that's always possible. With this patch Tegra DRM is officially struct_mutex free, yay! v2: refernce_unlocked doesn't exist as kbuild spotted. Cc: Thierry Reding Acked-by: Thierry Reding Signed-off-by: Daniel Vetter [treding@nvidia.com: remove unused variables] Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/drm.c | 4 +--- drivers/gpu/drm/tegra/gem.c | 8 +------- 2 files changed, 2 insertions(+), 10 deletions(-) commit d849c82fac61921301cf2d6f0a3477a121a2ef2a Author: Daniel Vetter Date: Mon Nov 23 10:32:47 2015 +0100 drm/tegra: Don't take dev->struct_mutex in mmap offset ioctl Since David Herrmann's mmap vma manager rework we don't need to grab dev->struct_mutex any more to prevent races when looking up the mmap offset. Drop it and instead don't forget to use the unref_unlocked variant (since the drm core still cares). v2: Finally get rid of the copypasta from another commit in this commit message. And convert to _unlocked like we need to (Patrik). Cc: Patrik Jakobsson Cc: Thierry Reding Acked-by: Thierry Reding Reviewed-by: Patrik Jakobsson Signed-off-by: Daniel Vetter Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/gem.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 115333042c73958cc7c2c76cddd1dfe5b1db1b7f Author: Daniel Vetter Date: Mon Nov 23 10:32:40 2015 +0100 drm/tegra: Use unlocked gem unreferencing For drm_gem_object_unreference callers are required to hold dev->struct_mutex, which these paths don't. Enforcing this requirement has become a bit more strict with commit ef4c6270bf2867e2f8032e9614d1a8cfc6c71663 Author: Daniel Vetter Date: Thu Oct 15 09:36:25 2015 +0200 drm/gem: Check locking in drm_gem_object_unreference Cc: Thierry Reding Signed-off-by: Daniel Vetter Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/drm.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 473112e443c0ff47bc21dc6efac1fabae8613ad1 Author: Thierry Reding Date: Thu Sep 10 16:07:14 2015 +0200 drm/tegra: Use new multi-driver module helpers Use the new multi-driver module helpers to get rid of some boilerplate in the module initialization and cleanup functions. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/drm.c | 56 ++++++++++----------------------------------- drivers/gpu/drm/tegra/drm.h | 4 ++-- 2 files changed, 14 insertions(+), 46 deletions(-) commit a134789a67480e6cc7e50c9dfcbc7adca5016010 Author: Thierry Reding Date: Mon Mar 23 10:46:28 2015 +0100 gpu: host1x: Add Tegra210 support The host1x unit found in Tegra210 SoCs is very similar to the unit in Tegra124, but it has 2 additional channels for a total of 14 channels. Signed-off-by: Thierry Reding drivers/gpu/host1x/Makefile | 3 +- drivers/gpu/host1x/dev.c | 11 ++ drivers/gpu/host1x/hw/host1x05.c | 42 +++++ drivers/gpu/host1x/hw/host1x05.h | 26 +++ drivers/gpu/host1x/hw/host1x05_hardware.h | 142 ++++++++++++++++ drivers/gpu/host1x/hw/hw_host1x05_channel.h | 121 ++++++++++++++ drivers/gpu/host1x/hw/hw_host1x05_sync.h | 243 ++++++++++++++++++++++++++++ drivers/gpu/host1x/hw/hw_host1x05_uclass.h | 181 +++++++++++++++++++++ 8 files changed, 768 insertions(+), 1 deletion(-) commit e3e70814cebb0beec47dd38e60f89850950a2903 Author: Thierry Reding Date: Mon Aug 24 14:51:04 2015 +0200 gpu: host1x: Remove core driver on unregister When unregistering a host1x driver, make sure to unregister the core driver as well to prevent it from sticking around and oppose reloading of the driver. Signed-off-by: Thierry Reding drivers/gpu/host1x/bus.c | 2 ++ 1 file changed, 2 insertions(+) commit 28fae81f93d5482f25bb8e9881104ad1157c2cfd Author: Thierry Reding Date: Wed Dec 2 17:24:20 2015 +0100 gpu: host1x: Use platform_register/unregister_drivers() These new helpers simplify implementing multi-driver modules and properly handle failure to register one driver by unregistering all previously registered drivers. Signed-off-by: Thierry Reding drivers/gpu/host1x/dev.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) commit 5f337e3e5b04b32793fd51adab438d46df99c933 Author: Rashmica Gupta Date: Thu Dec 10 20:49:33 2015 +1100 selftests/powerpc: Add test to check if VSRs are corrupted When a transaction is aborted, VSR values should rollback to the checkpointed values before the transaction began. VSRs used elsewhere in the kernel during a transaction, or while the transaction is suspended should not affect the checkpointed values. Prior to the bug fix in commit d31626f70b61 ("powerpc: Don't corrupt transactional state when using FP/VMX in kernel") when VMX was requested by the kernel the .vr_state (which held the checkpointed state of VSRs before the transaction) was overwritten with the current state from outside the transation. Thus if the transaction did not complete, the VSR values would be "rolled back" to potentially incorrect values. Signed-off-by: Rashmica Gupta Signed-off-by: Michael Ellerman tools/testing/selftests/powerpc/tm/.gitignore | 1 + tools/testing/selftests/powerpc/tm/Makefile | 2 +- tools/testing/selftests/powerpc/tm/tm-vmxcopy.c | 103 ++++++++++++++++++++++++ 3 files changed, 105 insertions(+), 1 deletion(-) commit eb925d64604991095b6e9476d7c437a994f3369c Author: Rashmica Gupta Date: Wed Nov 25 13:46:25 2015 +1100 powerpc/xmon: Append linux_banner to exception information in xmon. Currently if you are in xmon without an oops etc. to view the kernel version you have to type "d $linux_banner" - not necessarily obvious. As this is useful information, append to the output of "e" command. Example output: $mon> e cpu 0x1: Vector: 0 at [c0000000f879ba80] pc: c000000000081718: sysrq_handle_xmon+0x68/0x80 lr: c000000000081718: sysrq_handle_xmon+0x68/0x80 sp: c0000000f879bbe0 msr: 8000000000009033 current = 0xc0000000f604d5c0 paca = 0xc00000000fdc0480 softe: 0 irq_happened: 0x01 pid = 2467, comm = bash Linux version 4.4.0-rc2-00008-gc51af91c3ab3-dirty (rashmica@circle) (gcc version 5.1.1 20150629 (GCC) ) #45 SMP Wed Nov 25 10:25:12 AEDT 2015 Signed-off-by: Rashmica Gupta Signed-off-by: Michael Ellerman arch/powerpc/xmon/xmon.c | 2 ++ 1 file changed, 2 insertions(+) commit 24ad1648edcc8b1c4a68c406296e0b171753a981 Author: Rashmica Gupta Date: Tue Dec 1 14:51:38 2015 +1100 powerpc/cell: Remove the Cell QPACE code All users of QPACE have upgraded to QPACE2 so remove the Cell QPACE code. Signed-off-by: Rashmica Gupta Acked-by: Arnd Bergmann Signed-off-by: Michael Ellerman Documentation/devicetree/bindings/serial/8250.txt | 1 - arch/powerpc/boot/Makefile | 2 - arch/powerpc/configs/ppc64_defconfig | 1 - arch/powerpc/platforms/cell/Kconfig | 5 - arch/powerpc/platforms/cell/Makefile | 4 - arch/powerpc/platforms/cell/qpace_setup.c | 148 ---------------------- 6 files changed, 161 deletions(-) commit b4af279a7cba5cc1f665485e8ecdf272f1ba0cc5 Author: Vipin K Parashar Date: Tue Dec 1 16:43:42 2015 +0530 powerpc/pseries: Limit EPOW reset event warnings Kernel prints respective warnings about various EPOW events for user information/action after parsing EPOW interrupts. At times below EPOW reset event warning is seen to be flooding kernel log over a period of time. May 25 03:46:34 alp kernel: Non critical power or cooling issue cleared May 25 03:46:52 alp kernel: Non critical power or cooling issue cleared May 25 03:53:48 alp kernel: Non critical power or cooling issue cleared May 25 03:55:46 alp kernel: Non critical power or cooling issue cleared May 25 03:56:34 alp kernel: Non critical power or cooling issue cleared May 25 03:59:04 alp kernel: Non critical power or cooling issue cleared May 25 04:02:01 alp kernel: Non critical power or cooling issue cleared These EPOW reset events are spurious in nature and are triggered by firmware without an actual EPOW event being reset. This patch avoids these multiple EPOW reset warnings by using a counter variable. This variable is incremented every time an EPOW event is reported. Upon receiving a EPOW reset event the same variable is checked to filter out spurious events and decremented accordingly. This patch also improves log messages to better describe EPOW event being reported. Merged adjacent log messages into single one to reduce number of lines printed per event. Signed-off-by: Kamalesh Babulal Signed-off-by: Vipin K Parashar Signed-off-by: Michael Ellerman arch/powerpc/platforms/pseries/ras.c | 55 ++++++++++++++++++++---------------- 1 file changed, 31 insertions(+), 24 deletions(-) commit a26f415bf71640f0141e5e946384444675206b6a Author: Michael Neuling Date: Fri Nov 20 15:15:34 2015 +1100 selftests/powerpc: Add TM signal with invalid stack test Test the kernels signal generation code to ensure it can handle an invalid stack pointer when transactional. Signed-off-by: Michael Neuling Tested-by: Anshuman Khandual [mpe: Skip if we don't have TM] Signed-off-by: Michael Ellerman tools/testing/selftests/powerpc/tm/.gitignore | 1 + tools/testing/selftests/powerpc/tm/Makefile | 2 +- .../testing/selftests/powerpc/tm/tm-signal-stack.c | 76 ++++++++++++++++++++++ 3 files changed, 78 insertions(+), 1 deletion(-) commit 25007a69e852389985ee98235e76d740d4821c6c Author: Michael Neuling Date: Fri Nov 20 15:15:33 2015 +1100 selftests/powerpc: Add TM signal return test Test the kernel's signal return code to ensure that it doesn't crash when both the transactional and suspend MSR bits are set in the signal context. Signed-off-by: Michael Neuling Tested-by: Anshuman Khandual [mpe: Skip if we don't have TM] Signed-off-by: Michael Ellerman tools/testing/selftests/powerpc/tm/.gitignore | 1 + tools/testing/selftests/powerpc/tm/Makefile | 2 +- .../selftests/powerpc/tm/tm-signal-msr-resv.c | 74 ++++++++++++++++++++++ 3 files changed, 76 insertions(+), 1 deletion(-) commit b319ee8445961c5f7b2fd199c0ef99c418ee2d4a Author: Michael Ellerman Date: Wed Dec 2 16:00:04 2015 +1100 selftests/powerpc: Skip tm-resched-dscr if we don't have TM Signed-off-by: Michael Ellerman tools/testing/selftests/powerpc/tm/Makefile | 4 ++-- tools/testing/selftests/powerpc/tm/tm-resched-dscr.c | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) commit 34dc8b279dc5dd3ce863298056989bdd7f4979c8 Author: Michael Ellerman Date: Tue Nov 24 13:05:40 2015 +1100 selftests/powerpc: Move TM helpers into tm.h Move have_htm_nosc() into a new tm.h, and add a new helper, have_htm() which we'll use in the next patch. Signed-off-by: Michael Ellerman tools/testing/selftests/powerpc/tm/tm-syscall.c | 12 +-------- tools/testing/selftests/powerpc/tm/tm.h | 34 +++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 11 deletions(-) commit ede8ef3f824ea6e853a5e4b27467f583cdaa314e Author: Michael Ellerman Date: Tue Nov 24 13:05:39 2015 +1100 selftests/powerpc: Add have_hwcap2() helper We already do this twice and want to add another so add a helper. Signed-off-by: Michael Ellerman tools/testing/selftests/powerpc/pmu/ebb/ebb.c | 3 +-- tools/testing/selftests/powerpc/tm/tm-syscall.c | 3 +-- tools/testing/selftests/powerpc/utils.h | 6 ++++++ 3 files changed, 8 insertions(+), 4 deletions(-) commit fcb45ec074725baeb3aaa1b1854b9f44c3eebacf Author: Michael Ellerman Date: Tue Nov 24 13:05:38 2015 +1100 selftests/powerpc: Move get_auxv_entry() into utils.c This doesn't really belong in harness.c, it's a helper function. So move it into utils.c. Signed-off-by: Michael Ellerman tools/testing/selftests/powerpc/harness.c | 43 ------------------ tools/testing/selftests/powerpc/pmu/Makefile | 2 + tools/testing/selftests/powerpc/pmu/ebb/Makefile | 3 +- tools/testing/selftests/powerpc/tm/Makefile | 2 +- tools/testing/selftests/powerpc/utils.c | 58 ++++++++++++++++++++++++ 5 files changed, 63 insertions(+), 45 deletions(-) commit 1901d8bb45c3b82335c48e6232871f72ad10ed95 Merge: 801c0b2 7f821fc Author: Michael Ellerman Date: Mon Dec 14 20:40:32 2015 +1100 Merge tag 'powerpc-4.4-3' into next Merge the two TM fixes we merged in 4.4. We are about to merge selftests for these, and without the fixes the selftests will oops. powerpc fixes for 4.4 #2 - tm: Block signal return from setting invalid MSR state from Michael Neuling - tm: Check for already reclaimed tasks from Michael Neuling commit 801c0b2c4db3a33d56b3e19240df7b897e5bbfbc Author: Michael Neuling Date: Fri Nov 20 15:15:32 2015 +1100 powerpc: Print MSR TM bits in oops messages Print MSR TM bits in oops messages. This appends them to the end like this: MSR: 8000000502823031 You get the TM[] only if at least one TM MSR bit is set. Inside the TM[], E means Enabled (bit 32), S means Suspended (bit 33), and T means Transactional (bit 34) If no bits are set, you get no TM[] output. Include rework of printbits() to handle this case. Signed-off-by: Michael Neuling Signed-off-by: Michael Ellerman arch/powerpc/kernel/process.c | 51 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 43 insertions(+), 8 deletions(-) commit 99b809d7bdd17de7a68f1625a8973052c8311657 Author: Wolfram Sang Date: Tue Dec 8 10:37:45 2015 +0100 i2c: document generic DT bindings for timing parameters Also, sort the properties alphabetically and make indentation consistent. Wording largely taken from i2c-rk3x.txt, thanks guys! Only "i2c-scl-internal-delay-ns" is new, the rest is used by two drivers already and was documented in their driver binding documentation. Signed-off-by: Wolfram Sang Acked-by: Rob Herring Signed-off-by: Wolfram Sang Documentation/devicetree/bindings/i2c/i2c.txt | 31 ++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) commit 81d7a3294de7e9828310bbf986a67246b13fa01e Author: Boqun Feng Date: Mon Nov 2 09:30:32 2015 +0800 powerpc: Make {cmp}xchg* and their atomic_ versions fully ordered According to memory-barriers.txt, xchg*, cmpxchg* and their atomic_ versions all need to be fully ordered, however they are now just RELEASE+ACQUIRE, which are not fully ordered. So also replace PPC_RELEASE_BARRIER and PPC_ACQUIRE_BARRIER with PPC_ATOMIC_ENTRY_BARRIER and PPC_ATOMIC_EXIT_BARRIER in __{cmp,}xchg_{u32,u64} respectively to guarantee fully ordered semantics of atomic{,64}_{cmp,}xchg() and {cmp,}xchg(), as a complement of commit b97021f85517 ("powerpc: Fix atomic_xxx_return barrier semantics") This patch depends on patch "powerpc: Make value-returning atomics fully ordered" for PPC_ATOMIC_ENTRY_BARRIER definition. Cc: stable@vger.kernel.org # 3.2+ Signed-off-by: Boqun Feng Reviewed-by: Paul E. McKenney Acked-by: Peter Zijlstra (Intel) Signed-off-by: Michael Ellerman arch/powerpc/include/asm/cmpxchg.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 81a0bc39ea1960bbf8ece6a895d7cfd2d9efa28a Author: Roy Franz Date: Wed Sep 23 20:17:54 2015 -0700 ARM: add UEFI stub support This patch adds EFI stub support for the ARM Linux kernel. The EFI stub operates similarly to the x86 and arm64 stubs: it is a shim between the EFI firmware and the normal zImage entry point, and sets up the environment that the zImage is expecting. This includes optionally loading the initrd and device tree from the system partition based on the kernel command line. Signed-off-by: Roy Franz Tested-by: Ryan Harkin Reviewed-by: Matt Fleming Signed-off-by: Ard Biesheuvel arch/arm/Kconfig | 19 +++++ arch/arm/boot/compressed/Makefile | 4 +- arch/arm/boot/compressed/efi-header.S | 130 ++++++++++++++++++++++++++++++ arch/arm/boot/compressed/head.S | 54 ++++++++++++- arch/arm/boot/compressed/vmlinux.lds.S | 7 ++ arch/arm/include/asm/efi.h | 23 ++++++ drivers/firmware/efi/libstub/Makefile | 9 +++ drivers/firmware/efi/libstub/arm-stub.c | 4 +- drivers/firmware/efi/libstub/arm32-stub.c | 85 +++++++++++++++++++ 9 files changed, 331 insertions(+), 4 deletions(-) commit 49e9cf3f0c04bf76ffa59242254110309554861d Author: Boqun Feng Date: Mon Nov 2 09:30:31 2015 +0800 powerpc: Make value-returning atomics fully ordered According to memory-barriers.txt: > Any atomic operation that modifies some state in memory and returns > information about the state (old or new) implies an SMP-conditional > general memory barrier (smp_mb()) on each side of the actual > operation ... Which mean these operations should be fully ordered. However on PPC, PPC_ATOMIC_ENTRY_BARRIER is the barrier before the actual operation, which is currently "lwsync" if SMP=y. The leading "lwsync" can not guarantee fully ordered atomics, according to Paul Mckenney: https://lkml.org/lkml/2015/10/14/970 To fix this, we define PPC_ATOMIC_ENTRY_BARRIER as "sync" to guarantee the fully-ordered semantics. This also makes futex atomics fully ordered, which can avoid possible memory ordering problems if userspace code relies on futex system call for fully ordered semantics. Fixes: b97021f85517 ("powerpc: Fix atomic_xxx_return barrier semantics") Cc: stable@vger.kernel.org # 3.2+ Signed-off-by: Boqun Feng Reviewed-by: Paul E. McKenney Acked-by: Peter Zijlstra (Intel) Signed-off-by: Michael Ellerman arch/powerpc/include/asm/synch.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ea8d65ad69587cf4f37662ae294ee61eeed8f706 Author: Geert Uytterhoeven Date: Mon Nov 16 10:01:50 2015 +0100 m68k/defconfig: Update defconfigs for v4.4-rc1 Signed-off-by: Geert Uytterhoeven arch/m68k/configs/amiga_defconfig | 4 ++++ arch/m68k/configs/apollo_defconfig | 5 +++++ arch/m68k/configs/atari_defconfig | 4 ++++ arch/m68k/configs/bvme6000_defconfig | 4 ++++ arch/m68k/configs/hp300_defconfig | 5 +++++ arch/m68k/configs/mac_defconfig | 5 +++++ arch/m68k/configs/multi_defconfig | 5 +++++ arch/m68k/configs/mvme147_defconfig | 4 ++++ arch/m68k/configs/mvme16x_defconfig | 4 ++++ arch/m68k/configs/q40_defconfig | 5 +++++ arch/m68k/configs/sun3_defconfig | 5 +++++ arch/m68k/configs/sun3x_defconfig | 5 +++++ 12 files changed, 55 insertions(+) commit 425a5072dcd1bd895eea90a6b495392b6358ebd0 Author: Thomas Gleixner Date: Sun Dec 13 18:02:22 2015 +0100 genirq: Free irq_desc with rcu The new VMD device driver needs to iterate over a list of "demultiplexing" interrupts. Protecting that list with a lock is not possible because the list is also required in code pathes which hold irq descriptor lock. Therefor the demultiplexing interrupt handler would create a lock inversion scenario if it calls a demux handler with the list protection lock held. A solution for this is to free the irq descriptor via RCU, so the list can be walked with rcu read lock held. Signed-off-by: Thomas Gleixner Cc: Keith Busch include/linux/irqdesc.h | 6 ++++++ kernel/irq/irqdesc.c | 19 ++++++++++++++++--- 2 files changed, 22 insertions(+), 3 deletions(-) commit 400b6a0cbef55d1ae32808eaa1ef1c28820bf6ac Author: Moritz Fischer Date: Mon Nov 9 10:51:51 2015 -0800 ARM: dt: zynq: Add labels to cpu nodes to allow overriding OPPs. By adding labels to the cpu nodes in the dtsi, a dts that includes it can change the OPPs by referencing the cpu0 through the label. Signed-off-by: Moritz Fischer Reviewed-by: Sören Brinkmann Signed-off-by: Michal Simek arch/arm/boot/dts/zynq-7000.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bc5ba9b98435bf76d92e0954da1784695aa449f1 Author: Masahiro Yamada Date: Thu Nov 5 17:46:06 2015 +0900 ARM: dts: zynq: describe SLCR as simple-mfd rather than simple-bus The SLCR (System-Level Control Registers) block is an MFD (Multi Function Device) rather than a bus. "simple-mfd" seems a more suitable compatible string than "simple-bus". Signed-off-by: Masahiro Yamada Signed-off-by: Michal Simek arch/arm/boot/dts/zynq-7000.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bdd5739008617c594ac231b1427d23f2c9000fcd Author: Soren Brinkmann Date: Fri Oct 23 09:25:32 2015 -0700 ARM64: zynqmp: DT: Add interrupt-controller property to GPIO GPIO can be used as interrupt-controller. Add the missing properties to the GPIO node. Signed-off-by: Soren Brinkmann Signed-off-by: Michal Simek arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 2 ++ 1 file changed, 2 insertions(+) commit 8f039f9a692ab7014e2818a4e372231e134553f9 Author: Moritz Fischer Date: Thu Jul 30 18:13:57 2015 -0700 ARM: zynq: Select ARCH_HAS_RESET_CONTROLLER Signed-off-by: Moritz Fischer Signed-off-by: Michal Simek arch/arm/mach-zynq/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 0d76ded582c178d3cca55c9112eceb5b0f12f558 Merge: 057032e 93b0ba3 Author: Ingo Molnar Date: Mon Dec 14 09:31:39 2015 +0100 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 'perf top' annotation in --stdio (Namhyung Kim) - Support hw breakpoint events (mem:0xAddress) in the default output mode in 'perf script' (Wang Nan) Infrastructure changes: - Do not hold the hists lock while emitting one specific warning (Namhyung Kim) - Fetch map names from correct strtab, worked so far because llvm/clang uses just one string table (Wang Nan) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 057032e457f702e2f4af18cfa99c3afab6841d24 Merge: 54c9238 9f9499a Author: Ingo Molnar Date: Mon Dec 14 09:31:23 2015 +0100 Merge tag 'v4.4-rc5' into perf/core, to pick up fixes Signed-off-by: Ingo Molnar commit b0d12e9a661546ad5810a2af820b5d9d46090a3b Author: Sudeep Holla Date: Wed Oct 21 11:10:16 2015 +0100 ARM: dts: zynq: replace gpio-key,wakeup with wakeup-source property Though the keyboard driver for GPIO buttons(gpio-keys) will continue to check for/support the legacy "gpio-key,wakeup" boolean property to enable gpio buttons as wakeup source, "wakeup-source" is the new standard binding. This patch replaces the legacy "gpio-key,wakeup" with the unified "wakeup-source" property in order to avoid any futher copy-paste duplication. Cc: Michal Simek Cc: "Sören Brinkmann" Signed-off-by: Sudeep Holla Signed-off-by: Michal Simek arch/arm/boot/dts/zynq-zc702.dts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e57f6e5e19d415afd4054f58a7eacbfe96fc09e0 Author: Soren Brinkmann Date: Fri Oct 23 09:25:31 2015 -0700 ARM: zynq: DT: Add interrupt-controller property to GPIO GPIO can be used as interrupt-controller. Add the missing properties to the GPIO node. Signed-off-by: Soren Brinkmann Reviewed-by: Moritz Fischer Acked-by: Linus Walleij Signed-off-by: Michal Simek arch/arm/boot/dts/zynq-7000.dtsi | 2 ++ 1 file changed, 2 insertions(+) commit f74acf0e4326bfaa2c0be1e82f23801fe347cd9c Author: Borislav Petkov Date: Sat Dec 12 11:27:57 2015 +0100 x86/entry/64_compat: Make labels local ... so that they don't appear as symbols in the final ELF. Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1449916077-6506-1-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/entry/entry_64_compat.S | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 26828d9e943dbc67ef4104eabc869ee407b9be64 Author: Geert Uytterhoeven Date: Fri Nov 20 13:36:55 2015 +0100 ARM: shmobile: r8a7778 dtsi: Use "arm,pl390" for GIC Replace the "arm,cortex-a9-gic" compatible value for the GIC by "arm,pl390", as the documentation states it is a PL390. This has been confirmed by reading the GICD_IIDR register, which reports 0x0000043b (PL390 = 0x00, ARM = 0x43b). This has no effect on runtime behavior, as currently the GIC driver treats both compatible values the same. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7778.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c8a5880afeb8f14c8338e90e7b7c4c597a6f7e0b Author: Geert Uytterhoeven Date: Fri Nov 20 13:36:54 2015 +0100 ARM: shmobile: emev2 dtsi: Use "arm,pl390" for GIC Replace the "arm,cortex-a9-gic" compatible value for the GIC by "arm,pl390", as the documentation states it is a PL390. This has been confirmed (thanks Simon!) by reading the GICD_IIDR register, which reports 0x0000043b (PL390 = 0x00, ARM = 0x43b). This has no effect on runtime behavior, as currently the GIC driver treats both compatible values the same. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/emev2.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ad14ba96f962a44df0a6d5645beed7d2f776bdfa Author: Geert Uytterhoeven Date: Fri Nov 20 13:36:53 2015 +0100 ARM: shmobile: r8a7740 dtsi: Use "arm,pl390" for GIC Replace the "arm,cortex-a9-gic" compatible value for the GIC by "arm,pl390", as the documentation states it is a PL390. This has been confirmed by reading the GICD_IIDR register, which reports 0x0000043b (PL390 = 0x00, ARM = 0x43b). This has no effect on runtime behavior, as currently the GIC driver treats both compatible values the same. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7740.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d9e1a0ef458302d90d4255b243922e45c25913b2 Author: Geert Uytterhoeven Date: Fri Nov 20 13:36:52 2015 +0100 ARM: shmobile: r7s72100 dtsi: Use "arm,pl390" for GIC Replace the "arm,cortex-a9-gic" compatible value for the GIC by "arm,pl390", as the documentation states it is a PL390. This has been confirmed (thanks Chris, Wolfram!) by reading the GICD_IIDR register, which reports 0x0000043b (PL390 = 0x00, ARM = 0x43b). This has no effect on runtime behavior, as currently the GIC driver treats both compatible values the same. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r7s72100.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cb4396edd84ed73081635fb933d19c1410fafaf4 Author: Fabian Frederick Date: Sat Dec 12 18:24:38 2015 +0100 drivers/net: fix eisa_driver probe section mismatch Some eisa_driver structures used __init probe functions which generates a warning and could crash if function is called after being deleted. Signed-off-by: Fabian Frederick Signed-off-by: David S. Miller drivers/net/ethernet/3com/3c509.c | 2 +- drivers/net/ethernet/3com/3c59x.c | 2 +- drivers/net/ethernet/dec/tulip/de4x5.c | 2 +- drivers/net/ethernet/hp/hp100.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) commit 3bf834e17c8736537a08abfa509ae3a8c8446b08 Author: Geert Uytterhoeven Date: Fri Dec 11 11:45:27 2015 +0100 ARM: multi_v7_defconfig: Enable frame buffer console for armadillo800eva Enabling the frame buffer device on r8a7740/armadillo800eva requires the board staging code. Signed-off-by: Geert Uytterhoeven Acked-by: Arnd Bergmann Signed-off-by: Simon Horman arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit 954ceafd50cf370ba546d01422de883337f6705f Author: Geert Uytterhoeven Date: Fri Dec 11 11:45:26 2015 +0100 ARM: multi_v7_defconfig: Enable missing Renesas ARM support based on DTSes Enable all missing support, extracted from the various Renesas ARM DTSes using linux-config-from-dt. Signed-off-by: Geert Uytterhoeven Acked-by: Arnd Bergmann Signed-off-by: Simon Horman arch/arm/configs/multi_v7_defconfig | 7 +++++++ 1 file changed, 7 insertions(+) commit 65e5698c27865617813f00706ad3e5fb0f98277d Author: Geert Uytterhoeven Date: Fri Dec 11 11:45:25 2015 +0100 ARM: multi_v7_defconfig: Drop useless CONFIG_USB_RCAR_PHY=y The Renesas R-Car (Gen1) USB PHY driver (which is being removed) does not support DT, and is thus useless in a generic ARM multi-platform kernel. Signed-off-by: Geert Uytterhoeven Acked-by: Arnd Bergmann Signed-off-by: Simon Horman arch/arm/configs/multi_v7_defconfig | 1 - 1 file changed, 1 deletion(-) commit cf8190e4c26c8ccf87d80793f8f1f7fe150cdf8c Author: Haiyang Zhang Date: Thu Dec 10 12:19:35 2015 -0800 hv_netvsc: Fix race condition on Multi-Send Data field In commit 2a04ae8acb14 ("hv_netvsc: remove locking in netvsc_send()"), the locking for MSD (Multi-Send Data) field was removed. This could cause a race condition between RNDIS control messages and data packets processing, because these two types of traffic are not synchronized. This patch fixes this issue by sending control messages out directly without reading MSD field. Signed-off-by: Haiyang Zhang Reviewed-by: K. Y. Srinivasan Signed-off-by: David S. Miller drivers/net/hyperv/netvsc.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit abe492b4f50c3ae2ebcfaa2f5c16176aebaa1c68 Author: Tom Herbert Date: Thu Dec 10 12:37:45 2015 -0800 geneve: UDP checksum configuration via netlink Add support to enable and disable UDP checksums via netlink. This is similar to how VXLAN and GUE allow this. This includes support for enabling the UDP zero checksum (for both TX and RX). Signed-off-by: Tom Herbert Signed-off-by: David S. Miller drivers/net/geneve.c | 93 +++++++++++++++++++++++++++++++++----------- include/uapi/linux/if_link.h | 3 ++ 2 files changed, 73 insertions(+), 23 deletions(-) commit 369620a09bc5ab867342d51f1820c66b00d78a2c Author: Tom Herbert Date: Thu Dec 10 12:37:44 2015 -0800 rco: Clean up casting errors Fixe a couple of cast errors found by sparse. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/net/checksum.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 823aeda4cf3eb63af44159a2b75964367f5a61a8 Merge: f68766d 504b0fd Author: David S. Miller Date: Sun Dec 13 23:19:46 2015 -0500 Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== 100GbE Intel Wired LAN Driver Updates 2015-12-13 This series contains updates to fm10k only. Jacob updates the driver to use ether_addr_copy() instead of copying byte-by-byte in a for loop. Fixed up CamelCase variable names and coding style issues. Cleaned up namespace pollution of fm10k_iov_msg_data_pf(). Cleaned up, by making it consistent, the use of VLAN and VLAN ID instead of vlan or vid. Lastly, update the driver to initialize XPS so that we can take advantage of the kernel feature. Alex Duyck fixed up the driver to free the resources associated with the MSI-X vector table if the q_vector allocation failed. Then fixed the driver to check for msix_entries to be NULL and freed the IRQ if the mailbox API returned an error on trying to connect. Bruce cleans up whitespace and namespace pollution issues in the driver. Also updates the driver to use the BIT() macro instead of bit-shifting coding. ==================== Signed-off-by: David S. Miller commit 4dcbd88eb600d52ce52a75c5075c2eff2f6849e6 Author: Aneesh Kumar K.V Date: Tue Dec 1 09:07:00 2015 +0530 powerpc/mm: Don't open code pgtable_t size The slot information of base page size hash pte is stored in the pgtable_t w.r.t transparent hugepage. We need to make sure we don't index beyond pgtable_t size. Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/mm/hugepage-hash64.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4ad90c864989337e7946f456478b6417325689d0 Author: Aneesh Kumar K.V Date: Tue Dec 1 09:06:59 2015 +0530 powerpc/mm: Use H_READ with H_READ_4 This will bulk read 4 hash pte slot entries and should reduce the loop Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/include/asm/plpar_wrappers.h | 17 ++++++++++ arch/powerpc/platforms/pseries/lpar.c | 54 +++++++++++++++---------------- 2 files changed, 44 insertions(+), 27 deletions(-) commit 45949ebe6c748cba93c1dd6ab9d03190f862ecf7 Author: Aneesh Kumar K.V Date: Tue Dec 1 09:06:58 2015 +0530 powerpc/nohash: we don't use real_pte_t for nohash Remove the related functions and #defines Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/include/asm/nohash/64/pgtable.h | 33 ---------------------------- 1 file changed, 33 deletions(-) commit cc50380db32771af61201cff39da1043b90f2a6d Author: Aneesh Kumar K.V Date: Tue Dec 1 09:06:57 2015 +0530 powerpc/nohash: Update 64K nohash config to have 32 pte fragement They don't need to track 4k subpage slot details and hence don't need second half of pgtable_t. Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/include/asm/nohash/64/pgtable-64k.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 4d9057c39aceb3a94ccb6005f4433a0105e60521 Author: Aneesh Kumar K.V Date: Tue Dec 1 09:06:56 2015 +0530 powerpc/mm: Don't hardcode the hash pte slot shift Use the #define instead of open-coding the same Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/include/asm/book3s/64/hash-64k.h | 2 +- arch/powerpc/include/asm/book3s/64/pgtable.h | 2 +- arch/powerpc/include/asm/nohash/64/pgtable.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 62607bc64c5cbb8d9b330da4be34c6d5302348af Author: Aneesh Kumar K.V Date: Tue Dec 1 09:06:55 2015 +0530 powerpc/mm: Don't hardcode page table size pte and pmd table size are dependent on config items. Don't hard code the same. This make sure we use the right value when masking pmd entries and also while checking pmd_bad Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/include/asm/book3s/64/hash-64k.h | 30 ++++++++++++++++++------ arch/powerpc/include/asm/nohash/64/pgtable-64k.h | 21 +++++++++++++---- arch/powerpc/include/asm/pgalloc-64.h | 10 -------- arch/powerpc/mm/init_64.c | 4 ---- 4 files changed, 40 insertions(+), 25 deletions(-) commit 6a119eae942c51ccf1091936c534bac12cae630e Author: Aneesh Kumar K.V Date: Tue Dec 1 09:06:54 2015 +0530 powerpc/mm: Add a _PAGE_PTE bit For a pte entry we will have _PAGE_PTE set. Our pte page address have a minimum alignment requirement of HUGEPD_SHIFT_MASK + 1. We use the lower 7 bits to indicate hugepd. ie. For pmd and pgd we can find: 1) _PAGE_PTE set pte -> indicate PTE 2) bits [2..6] non zero -> indicate hugepd. They also encode the size. We skip bit 1 (_PAGE_PRESENT). 3) othewise pointer to next table. Acked-by: Scott Wood Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/include/asm/book3s/64/hash-4k.h | 9 ++++++--- arch/powerpc/include/asm/book3s/64/hash-64k.h | 23 +++++++++-------------- arch/powerpc/include/asm/book3s/64/hash.h | 13 +++++++------ arch/powerpc/include/asm/book3s/64/pgtable.h | 3 +-- arch/powerpc/include/asm/pte-common.h | 5 +++++ arch/powerpc/mm/hugetlbpage.c | 4 ++-- arch/powerpc/mm/pgtable.c | 4 ++++ arch/powerpc/mm/pgtable_64.c | 7 +------ 8 files changed, 35 insertions(+), 33 deletions(-) commit e34aa03ca48d0c7982530436ce996f374b65913c Author: Aneesh Kumar K.V Date: Tue Dec 1 09:06:53 2015 +0530 powerpc/mm: Move THP headers around We support THP only with book3s_64 and 64K page size. Move THP details to hash64-64k.h to clarify the same. Acked-by: Scott Wood Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/include/asm/book3s/64/hash-64k.h | 126 +++++++++++++ arch/powerpc/include/asm/book3s/64/hash.h | 223 +++++------------------ arch/powerpc/include/asm/nohash/64/pgtable.h | 253 +------------------------- arch/powerpc/mm/hash_native_64.c | 10 + arch/powerpc/mm/pgtable_64.c | 2 +- arch/powerpc/platforms/pseries/lpar.c | 10 + 6 files changed, 201 insertions(+), 423 deletions(-) commit 26a344aea48c99cfd80d292a470a480e1c2bd5d9 Author: Aneesh Kumar K.V Date: Tue Dec 1 09:06:52 2015 +0530 powerpc/mm: Move hugetlb related headers W.r.t hugetlb, we support two format for pmd. With book3s_64 and 64K linux page size, we can have pte at the pmd level. Hence we don't need to support hugepd there. For everything else hugepd is supported and pmd_huge is (0). Acked-by: Scott Wood Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/include/asm/book3s/64/hash-4k.h | 31 ++++++++++++ arch/powerpc/include/asm/book3s/64/hash-64k.h | 51 +++++++++++++++++++ arch/powerpc/include/asm/nohash/pgtable.h | 25 ++++++++++ arch/powerpc/include/asm/page.h | 42 ++-------------- arch/powerpc/mm/hugetlbpage-hash64.c | 18 +++++++ arch/powerpc/mm/hugetlbpage.c | 72 --------------------------- 6 files changed, 129 insertions(+), 110 deletions(-) commit 40e8550afc19dfc588171c089cb3f31f7b9e16f7 Author: Aneesh Kumar K.V Date: Tue Dec 1 09:06:51 2015 +0530 powerpc/mm: Move WIMG update to helper. Only difference here is, we apply the WIMG mapping early, so rflags passed to updatepp will also be changed. Acked-by: Scott Wood Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/mm/hash64_4k.c | 5 ----- arch/powerpc/mm/hash64_64k.c | 10 ---------- arch/powerpc/mm/hash_utils_64.c | 13 ++++++++++++- arch/powerpc/mm/hugepage-hash64.c | 7 ------- arch/powerpc/mm/hugetlbpage-hash64.c | 8 -------- 5 files changed, 12 insertions(+), 31 deletions(-) commit c6a3c495f05a070d4c4016d4a51c384cba723971 Author: Aneesh Kumar K.V Date: Tue Dec 1 09:06:50 2015 +0530 powerpc/mm: Add helper for converting pte bit to hpte bits Instead of open coding it in multiple code paths, export the helper and add more documentation. Also make sure we don't make assumption regarding pte bit position Acked-by: Scott Wood Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/include/asm/book3s/64/hash.h | 1 + arch/powerpc/mm/hash64_4k.c | 13 +----------- arch/powerpc/mm/hash64_64k.c | 35 +++---------------------------- arch/powerpc/mm/hash_utils_64.c | 22 ++++++++++++------- arch/powerpc/mm/hugepage-hash64.c | 13 +----------- arch/powerpc/mm/hugetlbpage-hash64.c | 4 +--- 6 files changed, 21 insertions(+), 67 deletions(-) commit a43c0eb8364c022725df586e91dd753633374d66 Author: Aneesh Kumar K.V Date: Tue Dec 1 09:06:49 2015 +0530 powerpc/mm: Convert 4k insert from asm to C This is similar to 64K insert. May be we want to consolidate Acked-by: Scott Wood Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/mm/Makefile | 6 +- arch/powerpc/mm/hash64_4k.c | 139 +++++++++++++++++ arch/powerpc/mm/hash_low_64.S | 331 ---------------------------------------- arch/powerpc/mm/hash_utils_64.c | 26 ---- 4 files changed, 142 insertions(+), 360 deletions(-) commit 89ff725051d177556b23d80f2a30f880a657a6c1 Author: Aneesh Kumar K.V Date: Tue Dec 1 09:06:48 2015 +0530 powerpc/mm: Convert __hash_page_64K to C Convert from asm to C Acked-by: Scott Wood Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/include/asm/book3s/64/hash-64k.h | 3 +- arch/powerpc/mm/hash64_64k.c | 130 ++++++++++++ arch/powerpc/mm/hash_low_64.S | 290 +------------------------- arch/powerpc/mm/hash_utils_64.c | 19 +- 4 files changed, 134 insertions(+), 308 deletions(-) commit 227fdbee5a963f4358bb1edd78a6f654574a4991 Author: Aneesh Kumar K.V Date: Tue Dec 1 09:06:47 2015 +0530 powerpc/mm: Increase the width of #define No real change, only style changes Acked-by: Scott Wood Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/include/asm/book3s/64/hash.h | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit 506b863c68cd6e720037f1548e101932af3bb006 Author: Aneesh Kumar K.V Date: Tue Dec 1 09:06:46 2015 +0530 powerpc/mm: Remove pte_val usage for the second half of pgtable_t Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/include/asm/book3s/64/hash-64k.h | 4 +++- arch/powerpc/mm/hash64_64k.c | 1 - 2 files changed, 3 insertions(+), 2 deletions(-) commit bf680d51605662aae5482d87e0e0a54ba6db056b Author: Aneesh Kumar K.V Date: Tue Dec 1 09:06:45 2015 +0530 powerpc/mm: Don't track subpage valid bit in pte_t This free up 11 bits in pte_t. In the later patch we also change the pte_t format so that we can start supporting migration pte at pmd level. We now track 4k subpage valid bit as below If we have _PAGE_COMBO set, we override the _PAGE_F_GIX_SHIFT and _PAGE_F_SECOND. Together we have 4 bits, each of them used to indicate whether any of the 4 4k subpage in that group is valid. ie, [ group 1 bit ] [ group 2 bit ] ..... [ group 4 ] [ subpage 1 - 4] [ subpage 5- 8] ..... [ subpage 13 - 16] We still track each 4k subpage slot number and secondary hash information in the second half of pgtable_t. Removing the subpage tracking have some significant overhead on aim9 and ebizzy benchmark and to support THP with 4K subpage, we do need a pgtable_t of 4096 bytes. Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/include/asm/book3s/64/hash-4k.h | 10 +------- arch/powerpc/include/asm/book3s/64/hash-64k.h | 35 ++++++--------------------- arch/powerpc/include/asm/book3s/64/hash.h | 10 ++++---- arch/powerpc/mm/hash64_64k.c | 34 ++++++++++++++++++++++++-- arch/powerpc/mm/hash_low_64.S | 6 +---- arch/powerpc/mm/hugetlbpage-hash64.c | 5 +--- arch/powerpc/mm/pgtable_64.c | 2 +- 7 files changed, 48 insertions(+), 54 deletions(-) commit 106713a14590cd7b223db000f4f47f7d1d898153 Author: Aneesh Kumar K.V Date: Tue Dec 1 09:06:44 2015 +0530 powerpc/mm: Remove the dependency on pte bit position in asm code We should not expect pte bit position in asm code. Simply by moving part of that to C Acked-by: Scott Wood Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/kernel/exceptions-64s.S | 18 ++++-------------- arch/powerpc/mm/hash_utils_64.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 14 deletions(-) commit 91f1da99792a1d133df94c4753510305353064a1 Author: Aneesh Kumar K.V Date: Tue Dec 1 09:06:43 2015 +0530 powerpc/mm: Convert 4k hash insert to C Acked-by: Scott Wood Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/mm/Makefile | 3 + arch/powerpc/mm/hash64_64k.c | 202 +++++++++++++++++++++ arch/powerpc/mm/hash_low_64.S | 380 ---------------------------------------- arch/powerpc/mm/hash_utils_64.c | 4 +- 4 files changed, 208 insertions(+), 381 deletions(-) commit 17ed9e3192b2b29ad24ffe711fa4b71716ef3ff3 Author: Aneesh Kumar K.V Date: Tue Dec 1 09:06:38 2015 +0530 powerpc/booke: Move nohash headers Move the booke related headers below booke/32 or booke/64 Acked-by: Scott Wood Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/include/asm/nohash/32/pgtable.h | 343 +++++++++++ arch/powerpc/include/asm/nohash/32/pte-40x.h | 64 +++ arch/powerpc/include/asm/nohash/32/pte-44x.h | 97 ++++ arch/powerpc/include/asm/nohash/32/pte-8xx.h | 65 +++ arch/powerpc/include/asm/nohash/32/pte-fsl-booke.h | 40 ++ arch/powerpc/include/asm/nohash/64/pgtable-4k.h | 92 +++ arch/powerpc/include/asm/nohash/64/pgtable-64k.h | 44 ++ arch/powerpc/include/asm/nohash/64/pgtable.h | 640 +++++++++++++++++++++ arch/powerpc/include/asm/nohash/pgtable.h | 227 ++++++++ arch/powerpc/include/asm/nohash/pte-book3e.h | 87 +++ arch/powerpc/include/asm/pgtable-book3e.h | 227 -------- arch/powerpc/include/asm/pgtable-ppc32.h | 343 ----------- arch/powerpc/include/asm/pgtable-ppc64-4k.h | 92 --- arch/powerpc/include/asm/pgtable-ppc64-64k.h | 44 -- arch/powerpc/include/asm/pgtable-ppc64.h | 640 --------------------- arch/powerpc/include/asm/pgtable.h | 2 +- arch/powerpc/include/asm/pte-40x.h | 64 --- arch/powerpc/include/asm/pte-44x.h | 97 ---- arch/powerpc/include/asm/pte-8xx.h | 65 --- arch/powerpc/include/asm/pte-book3e.h | 87 --- arch/powerpc/include/asm/pte-fsl-booke.h | 40 -- 21 files changed, 1700 insertions(+), 1700 deletions(-) commit 1ca7212932862e348f2f9307f35bd309a7da82d8 Author: Aneesh Kumar K.V Date: Tue Dec 1 09:06:37 2015 +0530 powerpc/mm: Move PTE bits from generic functions to hash64 functions. functions which operate on pte bits are moved to hash*.h and other generic functions are moved to pgtable.h Acked-by: Scott Wood Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/include/asm/book3s/32/pgtable.h | 183 ++++++++++++++++++++++++ arch/powerpc/include/asm/book3s/64/hash.h | 151 ++++++++++++++++++++ arch/powerpc/include/asm/book3s/64/pgtable.h | 6 + arch/powerpc/include/asm/book3s/pgtable.h | 204 --------------------------- 4 files changed, 340 insertions(+), 204 deletions(-) commit 371352ca0e7f3fad8406933e37c965d5a44365d9 Author: Aneesh Kumar K.V Date: Tue Dec 1 09:06:36 2015 +0530 powerpc/mm: Move hash64 PTE bits from book3s/64/pgtable.h to hash.h This enables us to keep hash64 related bits together, and makes it easy to follow. Acked-by: Scott Wood Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/include/asm/book3s/64/hash.h | 448 ++++++++++++++++++++++++++- arch/powerpc/include/asm/book3s/64/pgtable.h | 445 +------------------------- arch/powerpc/include/asm/pgtable.h | 6 - 3 files changed, 448 insertions(+), 451 deletions(-) commit f281b5d50c87ecca108dcbf8f791bd8923fde3de Author: Aneesh Kumar K.V Date: Tue Dec 1 09:06:35 2015 +0530 powerpc/mm: Don't use pmd_val, pud_val and pgd_val as lvalue We convert them static inline function here as we did with pte_val in the previous patch Acked-by: Scott Wood Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/include/asm/book3s/32/pgtable.h | 6 ++++- arch/powerpc/include/asm/book3s/64/hash-4k.h | 6 ++++- arch/powerpc/include/asm/book3s/64/pgtable.h | 36 +++++++++++++++++++++------- arch/powerpc/include/asm/page.h | 34 +++++++++++++++++++------- arch/powerpc/include/asm/pgalloc-32.h | 34 +++++++++++++++++++------- arch/powerpc/include/asm/pgalloc-64.h | 17 +++++++++---- arch/powerpc/include/asm/pgtable-ppc32.h | 7 +++++- arch/powerpc/include/asm/pgtable-ppc64-4k.h | 6 ++++- arch/powerpc/include/asm/pgtable-ppc64.h | 36 +++++++++++++++++++++------- arch/powerpc/mm/40x_mmu.c | 10 ++++---- arch/powerpc/mm/pgtable_64.c | 19 +++++++-------- 11 files changed, 154 insertions(+), 57 deletions(-) commit 10bd3808dfd067d6d6c941cc6e1b13be165f6a70 Author: Aneesh Kumar K.V Date: Tue Dec 1 09:06:34 2015 +0530 powerpc/mm: Don't use pte_val as lvalue We also convert few #define to static inline in this patch for better type checking Acked-by: Scott Wood Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/include/asm/book3s/pgtable.h | 118 +++++++++++++++++++++--------- arch/powerpc/include/asm/page.h | 10 ++- arch/powerpc/include/asm/pgtable-book3e.h | 68 ++++++++++++----- 3 files changed, 139 insertions(+), 57 deletions(-) commit b0412ea94bcbd08dc1e61043dfdd9c33272cec48 Author: Aneesh Kumar K.V Date: Tue Dec 1 09:06:33 2015 +0530 powerpc/mm: Drop pte-common.h from BOOK3S 64 We copy only needed PTE bits define from pte-common.h to respective hash related header. This should greatly simply later patches in which we are going to change the pte format for hash config Acked-by: Scott Wood Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/include/asm/book3s/64/hash-4k.h | 1 + arch/powerpc/include/asm/book3s/64/hash.h | 2 + arch/powerpc/include/asm/book3s/64/pgtable.h | 104 ++++++++++++++++++++++++++- arch/powerpc/include/asm/book3s/pgtable.h | 16 ++--- 4 files changed, 111 insertions(+), 12 deletions(-) commit ee4889c7bc2a416d76730f318c741723cd64d432 Author: Aneesh Kumar K.V Date: Tue Dec 1 09:06:32 2015 +0530 powerpc/mm: Don't have generic headers introduce functions touching pte bits We are going to drop pte_common.h in the later patch. The idea is to enable hash code not require to define all PTE bits. Having PTE bits defined in pte_common.h made the code unnecessarily complex. Acked-by: Scott Wood Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/include/asm/book3s/pgtable.h | 176 ++++++++++++++++++++++++++ arch/powerpc/include/asm/pgtable-book3e.h | 199 ++++++++++++++++++++++++++++++ arch/powerpc/include/asm/pgtable.h | 192 +--------------------------- 3 files changed, 376 insertions(+), 191 deletions(-) commit cbbb8683fb632ecadafcf8a5f81d38156d4274ab Author: Aneesh Kumar K.V Date: Tue Dec 1 09:06:31 2015 +0530 powerpc/mm: Delete booke bits from book3s We also move __ASSEMBLY__ towards the end of header. This avoid having #ifndef __ASSEMBLY___ all over the header Acked-by: Scott Wood Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/include/asm/book3s/32/pgtable.h | 93 +++++++--------------------- arch/powerpc/include/asm/book3s/64/pgtable.h | 86 +++++++------------------ arch/powerpc/include/asm/book3s/pgtable.h | 1 + 3 files changed, 49 insertions(+), 131 deletions(-) commit ab537dca2f3303a6ef646c33cccf56eaa8a76f9c Author: Aneesh Kumar K.V Date: Tue Dec 1 09:06:30 2015 +0530 powerpc/mm: Move hash specific pte width and other defines to book3s This further make a copy of pte defines to book3s/64/hash*.h. This remove the dependency on pgtable-ppc64-4k.h and pgtable-ppc64-64k.h Acked-by: Scott Wood Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/include/asm/book3s/64/hash-4k.h | 86 ++++++++++++++++++++++++++- arch/powerpc/include/asm/book3s/64/hash-64k.h | 46 +++++++++++++- arch/powerpc/include/asm/book3s/64/pgtable.h | 6 +- 3 files changed, 129 insertions(+), 9 deletions(-) commit 3dfcb315d81e663bf70401de61940c1b4de2deea Author: Aneesh Kumar K.V Date: Tue Dec 1 09:06:28 2015 +0530 powerpc/mm: make a separate copy for book3s In this patch we do: cp pgtable-ppc32.h book3s/32/pgtable.h cp pgtable-ppc64.h book3s/64/pgtable.h This enable us to do further changes to hash specific config. We will change the page table format for 64bit hash in later patches. Acked-by: Scott Wood Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/include/asm/book3s/32/pgtable.h | 340 +++++++++++++++ arch/powerpc/include/asm/book3s/64/pgtable.h | 626 +++++++++++++++++++++++++++ arch/powerpc/include/asm/book3s/pgtable.h | 10 + arch/powerpc/include/asm/mmu-hash64.h | 2 +- arch/powerpc/include/asm/pgtable-ppc32.h | 2 - arch/powerpc/include/asm/pgtable-ppc64.h | 4 - arch/powerpc/include/asm/pgtable.h | 4 + 7 files changed, 981 insertions(+), 7 deletions(-) commit 26b6a3d9bb48f8b4624a62281bc2a295df3a8109 Author: Aneesh Kumar K.V Date: Tue Dec 1 09:06:26 2015 +0530 powerpc/mm: move pte headers to book3s directory Acked-by: Scott Wood Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/include/asm/book3s/32/hash.h | 46 ++++++++++++ arch/powerpc/include/asm/book3s/64/hash-4k.h | 17 +++++ arch/powerpc/include/asm/book3s/64/hash-64k.h | 102 ++++++++++++++++++++++++++ arch/powerpc/include/asm/book3s/64/hash.h | 54 ++++++++++++++ arch/powerpc/include/asm/pgtable-ppc32.h | 2 +- arch/powerpc/include/asm/pgtable-ppc64.h | 2 +- arch/powerpc/include/asm/pte-hash32.h | 46 ------------ arch/powerpc/include/asm/pte-hash64-4k.h | 17 ----- arch/powerpc/include/asm/pte-hash64-64k.h | 102 -------------------------- arch/powerpc/include/asm/pte-hash64.h | 54 -------------- 10 files changed, 221 insertions(+), 221 deletions(-) commit 0863d7f2136550a281f40f4d8556bffd09fd4c2d Author: Aneesh Kumar K.V Date: Sat Nov 28 22:39:33 2015 +0530 powerpc/mm: Fix infinite loop in hash fault with 4K page size This is the same bug we fixed as part of 09567e7fd44291bfc08accfdd67ad8f467842332 ("powerpc/mm: Check paca psize is up to date for huge mappings"). Please check that for details. The difference here is that faults were happening on a 4K page at an address previously mapped by hugetlb. Signed-off-by: Aneesh Kumar K.V Reviewed-by: Anshuman Khandual Signed-off-by: Michael Ellerman arch/powerpc/mm/hash_utils_64.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 58362d5be35216f196b4a4d16aa2c6ef938087f0 Author: Uwe Kleine-König Date: Sun Dec 13 11:30:03 2015 +0100 serial: imx: implement handshaking using gpios with the mctrl_gpio helper Signed-off-by: Uwe Kleine-König Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/Kconfig | 1 + drivers/tty/serial/imx.c | 89 +++++++++++++++++++++++++++++++++++----------- 2 files changed, 70 insertions(+), 20 deletions(-) commit 4f71a2e0a282611e55bacb60b564eaef5d16c27b Author: Uwe Kleine-König Date: Sun Dec 13 11:30:02 2015 +0100 serial: mctrl_gpio: export mctrl_gpio_disable_ms and mctrl_gpio_init To be able to make use of the mctrl-gpio helper from a module these functions must be exported. This was forgotten in the commit introducing support interrupt handling for these functions (while it was done for mctrl_gpio_enable_ms, *sigh*). Fixes: ce59e48fdbad ("serial: mctrl_gpio: implement interrupt handling") Signed-off-by: Uwe Kleine-König Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/serial_mctrl_gpio.c | 2 ++ 1 file changed, 2 insertions(+) commit 5cbb457e35f76a5a7b0dac30a07447e94a770057 Author: Frederik Völkel Date: Fri Dec 11 11:36:05 2015 +0100 drivers: tty: 68328serial.c: Remove parentheses after return This patch removes parentheses after return as checkpatch suggests. Signed-off-by: Frederik Völkel Signed-off-by: Lukas Braun Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/68328serial.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2ababf9e791180a997ab367dfa97c1a7085bd170 Author: Frederik Völkel Date: Fri Dec 11 11:36:04 2015 +0100 drivers: tty: 68328serial.c: Fix "foo * bar" should be "foo *bar" This patch fixes checkpatch errors "foo * bar" should be "foo *bar". Signed-off-by: Frederik Völkel Signed-off-by: Lukas Braun Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/68328serial.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) commit e836ed7a2f549b605d10d5ff7b2ea72f2f024d99 Author: Frederik Völkel Date: Fri Dec 11 11:36:03 2015 +0100 drivers: tty: 68328serial.c: Do not initialize statics to 0 This patch removes an initialization of a static to 0 as checkpatch suggests. Signed-off-by: Frederik Völkel Signed-off-by: Lukas Braun Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/68328serial.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4b7bb2b288d32abd854c41a54ba1da2be462f43b Author: Frederik Völkel Date: Fri Dec 11 11:36:02 2015 +0100 drivers: tty: 68328serial.c: remove unnecessary spaces(checkpatch) This patch removes unnecessary spaces reported by checkpatch. Signed-off-by: Frederik Völkel Signed-off-by: Lukas Braun Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/68328serial.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit ba4f10ae1b731a7c2ceff49977e6df336805b839 Author: Frederik Völkel Date: Fri Dec 11 11:36:01 2015 +0100 drivers: tty: 68328serial.c: Add missing spaces(checkpatch) This patch adds missing spaces reported by checkpatch. Signed-off-by: Frederik Völkel Signed-off-by: Lukas Braun Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/68328serial.c | 92 ++++++++++++++++++++-------------------- 1 file changed, 46 insertions(+), 46 deletions(-) commit 858965d909db32fb567a06916bbebdb8951cd39e Author: Peter Hurley Date: Fri Nov 27 21:29:24 2015 -0500 serial: Fix UPIO_MEM comment The original semantics of UPIO_MEM did not include the notion of bitness and endianness; different drivers used UPIO_MEM to refer to their original mmio bitness/endianness. For example, for the 8250 driver this is 8-bit LE but for the amba-pl011 driver this is 16-bit LE. Since UPIO_* values are userspace ABI via TIOCGSERIAL/TIOCSSERIAL ioctls, the original meaning of UPIIO_MEM must remain as it was: the original mmio stride/width/endianness of the driver. Signed-off-by: Peter Hurley Acked-by: Timur Tabi Signed-off-by: Greg Kroah-Hartman include/linux/serial_core.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0ff4230584320b2153752ba54e2e8edbd6addf2c Author: Heikki Krogerus Date: Thu Dec 10 13:26:21 2015 +0200 serial: 8250_mid: fix broken DMA dependency In order to enable HSU DMA PCI driver, the HSU DMA Engine must be enabled. This add a check for that. Reported-by: kbuild test robot Signed-off-by: Heikki Krogerus Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dd42bf1197144ede075a9d4793123f7689e164bc Author: Peter Hurley Date: Fri Nov 27 14:30:21 2015 -0500 tty: Prevent ldisc drivers from re-using stale tty fields Line discipline drivers may mistakenly misuse ldisc-related fields when initializing. For example, a failure to initialize tty->receive_room in the N_GIGASET_M101 line discipline was recently found and fixed [1]. Now, the N_X25 line discipline has been discovered accessing the previous line discipline's already-freed private data [2]. Harden the ldisc interface against misuse by initializing revelant tty fields before instancing the new line discipline. [1] commit fd98e9419d8d622a4de91f76b306af6aa627aa9c Author: Tilman Schmidt Date: Tue Jul 14 00:37:13 2015 +0200 isdn/gigaset: reset tty->receive_room when attaching ser_gigaset [2] Report from Sasha Levin [ 634.336761] ================================================================== [ 634.338226] BUG: KASAN: use-after-free in x25_asy_open_tty+0x13d/0x490 at addr ffff8800a743efd0 [ 634.339558] Read of size 4 by task syzkaller_execu/8981 [ 634.340359] ============================================================================= [ 634.341598] BUG kmalloc-512 (Not tainted): kasan: bad access detected ... [ 634.405018] Call Trace: [ 634.405277] dump_stack (lib/dump_stack.c:52) [ 634.405775] print_trailer (mm/slub.c:655) [ 634.406361] object_err (mm/slub.c:662) [ 634.406824] kasan_report_error (mm/kasan/report.c:138 mm/kasan/report.c:236) [ 634.409581] __asan_report_load4_noabort (mm/kasan/report.c:279) [ 634.411355] x25_asy_open_tty (drivers/net/wan/x25_asy.c:559 (discriminator 1)) [ 634.413997] tty_ldisc_open.isra.2 (drivers/tty/tty_ldisc.c:447) [ 634.414549] tty_set_ldisc (drivers/tty/tty_ldisc.c:567) [ 634.415057] tty_ioctl (drivers/tty/tty_io.c:2646 drivers/tty/tty_io.c:2879) [ 634.423524] do_vfs_ioctl (fs/ioctl.c:43 fs/ioctl.c:607) [ 634.427491] SyS_ioctl (fs/ioctl.c:622 fs/ioctl.c:613) [ 634.427945] entry_SYSCALL_64_fastpath (arch/x86/entry/entry_64.S:188) Cc: Tilman Schmidt Cc: Sasha Levin Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_ldisc.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 39469654db20a14915a7fb33ca2ec67547011ece Author: Ben Dooks Date: Wed Nov 18 14:41:19 2015 +0000 ARM: meson: serial: check for tx-irq enabled in irq code Ensure that if the interrupt handler is entered then only try and do tx work if the tx irq is enabled. Signed-off-by: Ben Dooks Tested-by: Carlo Caione Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/meson_uart.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit f1dd05c82985f9c476969598fd97cc680f18e86b Author: Ben Dooks Date: Wed Nov 18 14:41:18 2015 +0000 ARM: meson: serial: ensure tx irq on if more work to do The tx_stop() call turns the interrupt off, but the tx_start() does not check if the interrupt is enabled. Switch it back on if there is more work to do. Signed-off-by: Ben Dooks Tested-by: Carlo Caione Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/meson_uart.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 2561f068d91bbb1bd132b439c9023120c0b28cf4 Author: Ben Dooks Date: Wed Nov 18 14:41:17 2015 +0000 ARM: meson: serial: disable rx/tx irqs during console write As an attempt to stop issues with bad console output, ensure that both the rx and tx interrupts are disabled during the console write to avoid any problems with console and non-console being called together. This should help with the SMP case as it should stop other cores being signalled during the console write. Signed-off-by: Ben Dooks Tested-by: Carlo Caione Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/meson_uart.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit f1f5c1400f7907a1b52be94cabe8992b480785cf Author: Ben Dooks Date: Wed Nov 18 14:41:16 2015 +0000 ARM: meson: serial: use meson_uart_tx_empty() to wait for empty Use the meson_uart_tx_empty() instead of a direct read of the status register. This is easier to read and will ensure the UART's transmit state machine is idle when trying to update the baud rate. Signed-off-by: Ben Dooks Tested-by: Carlo Caione Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/meson_uart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 855ddcab352c15b8c4d0bd93759f821250c601fb Author: Ben Dooks Date: Wed Nov 18 14:41:15 2015 +0000 ARM: meson: serial: only disable tx irq on stop Since disabling the transmit state machine still allows characters to be transmitted when written to the UART write FIFO, simply disable the transmit interrupt when the UART port is stopped. This has not shown an improvement with the console issues when running systemd, but seems like it should be done. Signed-off-by: Ben Dooks Reported-by: Edward Cragg Tested-by: Carlo Caione Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/meson_uart.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 41788f054920d591c2d44838b73457e9d33ebd2c Author: Ben Dooks Date: Wed Nov 18 14:41:14 2015 +0000 ARM: meson: serial: ensure console port uart enabled Ensure the UART's transmitter is enabled when meson_console_putchar is called. If not, then the console output is corrupt (the hardware seems to try and send /something/ even if the TX is disabled). This fixes corrupt console output on events such as trying to reboot the system since the console tx may be called after drivers shutdown method has been called. Signed-off-by: Ben Dooks Reported-by: Edward Cragg Tested-by: Carlo Caione Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/meson_uart.c | 4 ++++ 1 file changed, 4 insertions(+) commit 88679739012cda64b1a45ee9dea16d04380dba71 Author: Ben Dooks Date: Wed Nov 18 14:41:13 2015 +0000 ARM: meson: serial: tx_empty fails to check for transmitter busy The tx_empty() uart_op should only return empty if both the transmit fifo and the transmit state-machine are both idle. Add a test for the hardware's XMIT_BUSY flag. Note, this is possibly related to an issue where the port is being shutdown with paritally transmitted characters in it. Signed-off-by: Ben Dooks Reported-by: Edward Cragg Tested-by: Carlo Caione Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/meson_uart.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 00661dd855b5b174aa176a9ab9437d86ef4f8f1a Author: Ben Dooks Date: Wed Nov 18 14:41:12 2015 +0000 ARM: meson: serial: don't reset port on uart startup When the uart startup entry is called, do not reset the port as this could cause issues with anything left in the FIFO from a previous operation such as a console write. Move the hardware reset to probe time and simply clear the errors before enabling the port. This fixes the issue where the console could become corrupted as there where characters left in the output or output fifo when a user process such as systemd would open/close the uart to transmit characters. For example, you get: [ 3.252263] systemd[1]: Dete instead of: [ 3.338801] systemd[1]: Detected architecture arm. Signed-off-by: Ben Dooks Tested-by: Carlo Caione Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/meson_uart.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) commit 1bc1f17b7f1ca320b389622e3c7fbf4ee8991f61 Author: Ben Dooks Date: Wed Nov 18 14:41:11 2015 +0000 ARM: meson: serial: release region on port release The meson_uart_release_port() unmaps the register area but does not release it. The meson_uart_request_port() calls devm_request_mem_region so the release should call devm_release_mem_region() for that area so that anyt subsequent use of these calls will work. This fixes an issue where the addition of reset code before registering the uart stops the console from working. Signed-off-by: Ben Dooks Tested-by: Carlo Caione Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/meson_uart.c | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) commit f5ce6edd22cff94e7b4a17f26cad43e60ae3d080 Author: Russell King Date: Mon Nov 16 17:41:02 2015 +0000 tty: amba-pl011: switch to using relaxed IO accessors Using relaxed IO accessors allows GCC to better optimise this code as we eliminate the heavy memory barriers - for example, GCC can now cache the address of a register across a read-modify-write sequence, rather than reloading the base address, offset and access size flag. Signed-off-by: Russell King Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 7ec758718920e5e5876d0d02ece6855128c8eb1e Author: Russell King Date: Mon Nov 16 17:40:57 2015 +0000 tty: amba-pl011: add support for ZTE UART (EXPERIMENTAL) Add (incomplete) support for the ZTE UART to the AMBA PL011 driver. This is similar to the ARM and ST variants, except it has a different register address layout, and requires 32-bit accesses to the registers. Use the newly introduced register tables and access size support to cope with these differences. Signed-off-by: Russell King Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 23 +++++++++++++++++++++++ include/linux/amba/serial.h | 18 ++++++++++++++++++ 2 files changed, 41 insertions(+) commit 84c3e03bdd1146191b7222ed62a08512199a45c7 Author: Russell King Date: Mon Nov 16 17:40:52 2015 +0000 tty: amba-pl011: add support for 32-bit register access Add support for 32-bit register accesses to the AMBA PL011 UART. This is needed for ZTE UARTs, which require 32-bit accesses as opposed to the more normal 16-bit accesses. Signed-off-by: Russell King Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit 10004a66240d7660179ccff9ac301926e783c76c Author: Russell King Date: Mon Nov 16 17:40:47 2015 +0000 tty: amba-pl011: remove ST micro registers from standard table Remove the ST micro registers from the standard table. These registers should never be accessed in non-ST micro variants. Signed-off-by: Russell King Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 11 ----------- 1 file changed, 11 deletions(-) commit e4df9a8053f24b6f37cf11aca793a8deeca88caf Author: Russell King Date: Mon Nov 16 17:40:41 2015 +0000 tty: amba-pl011: clean up LCR register offsets As we can detect when the LCR register is split between TX and RX, we don't need three entries in the table to deal with this. Reduce this down to two entries by converting the REG_ST_LCRH_* entries to standard REG_LCRH_* and remove REG_LCRH. Signed-off-by: Russell King Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 40 ++++++++++++++-------------------------- drivers/tty/serial/amba-pl011.h | 5 ++--- 2 files changed, 16 insertions(+), 29 deletions(-) commit bf69ff8a24358521f113b5c13f271681a74dd2a9 Author: Russell King Date: Mon Nov 16 17:40:36 2015 +0000 tty: amba-pl011: add ST register offset table Add the ST variant register offset table to the driver. Currently, this is an identical copy of the standard version, but this will be modified in the following changes. Signed-off-by: Russell King Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) commit 439403bde9fc9e655237d87fc44381f49025ea4f Author: Russell King Date: Mon Nov 16 17:40:31 2015 +0000 tty: amba-pl011: add register offset table to vendor data Add the register offset table to the vendor data, allowing vendor differences to be described in this table. Signed-off-by: Russell King Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit debb7f64f9bab5cd0d06b7ce1695f15c5c9304d0 Author: Russell King Date: Mon Nov 16 17:40:26 2015 +0000 tty: amba-pl011: add register lookup table Add a register lookup table, which allows the register offsets to be adjusted on a per-port basis. Signed-off-by: Russell King Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 33 ++++++++++++++++++++++++- drivers/tty/serial/amba-pl011.h | 53 ++++++++++++++++++++++------------------- 2 files changed, 60 insertions(+), 26 deletions(-) commit b985e9e368f0db4fee940ad86197f413779d4b63 Author: Peter Hurley Date: Fri Nov 27 14:11:04 2015 -0500 n_tty: Reduce branching in canon_copy_from_read_buf() Instead of compare-and-set, just compute 'found'. Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/n_tty.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit e661cf702003030daf2001cb88eb586300a18ee4 Author: Peter Hurley Date: Fri Nov 27 14:11:03 2015 -0500 n_tty: Clarify copy_from_read_buf() Add a temporary for the computed source address and substitute where appropriate. No functional change. Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/n_tty.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 679e7c2999f963e542c6f4c3d3c9a0688b5d3587 Author: Peter Hurley Date: Fri Nov 27 14:11:02 2015 -0500 n_tty: Uninline tty_copy_to_user() Merge the multiple tty_copy_to_user() calls into a single copy sequence within tty_copy_to_user(). Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/n_tty.c | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) commit afd7f88f157796e586fc99d62da13a54024e0731 Author: Arnd Bergmann Date: Mon Nov 16 16:48:14 2015 +0100 serial: 8250: move of_serial code to 8250 directory As the of-serial driver is now 8250 specific, we can move the file to a more appropriate place in teh 8250 subdirectory and adapt the Kconfig help text and file name. I'm leaving the CONFIG_SERIAL_OF_PLATFORM symbol unchanged to avoid breaking user configuration files unnecessarily. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_of.c | 348 ++++++++++++++++++++++++++++++++++++++ drivers/tty/serial/8250/Kconfig | 9 + drivers/tty/serial/8250/Makefile | 1 + drivers/tty/serial/Kconfig | 10 -- drivers/tty/serial/Makefile | 1 - drivers/tty/serial/of_serial.c | 348 -------------------------------------- 6 files changed, 358 insertions(+), 359 deletions(-) commit 4e33870b3bb691996354a8f9e8f69458b4fc34d9 Author: Arnd Bergmann Date: Mon Nov 16 16:48:13 2015 +0100 serial: of: CONFIG_SERIAL_8250 is always set The only other user of this code was the nwp-serial driver, but that is now gone, so we can remove a couple of #ifdef statments in this driver. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/of_serial.c | 18 ------------------ 1 file changed, 18 deletions(-) commit d1b5c87fa8058a3f477ae05555916dd1cea934ad Author: Arnd Bergmann Date: Mon Nov 16 16:48:12 2015 +0100 serial: remove NWP serial support The NWP serial driver is no longer needed, as the two users of this hardware have migrated to a much faster generation hardware, see https://en.wikipedia.org/wiki/QPACE2 for the replacement. Signed-off-by: Arnd Bergmann Cc: Benjamin Krill Cc: linuxppc-dev@lists.ozlabs.org Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/Kconfig | 19 +- drivers/tty/serial/Makefile | 1 - drivers/tty/serial/nwpserial.c | 477 --------------------------------------- drivers/tty/serial/of_serial.c | 14 -- include/linux/nwpserial.h | 18 -- include/uapi/linux/serial_core.h | 2 +- 6 files changed, 2 insertions(+), 529 deletions(-) commit 3ac4ae4736d404c436edf3b2ecfd941368f9e247 Author: DengChao Date: Thu Nov 12 21:45:47 2015 +0800 serial:bfin-uart:Remove 'struct timeval' The bfin-uart code uses real time with struct timeval. This will cause problems on 32-bit architectures in 2038 when time_t overflows. Since the code just needs delta value of time, it is not necessary to record them in real time. This patch changes the code to use the monotonic time instead, replaces struct timeval and do_gettimeofday() with u64 and ktime_get_ns(). Signed-off-by: DengChao Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/bfin_uart.c | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) commit 29647c483658f1e3d2e0ec9ad64ebd23edeecdf5 Author: Geert Uytterhoeven Date: Mon Nov 9 10:31:16 2015 +0100 serial: SERIAL_MXS_AUART should depend on HAS_DMA If NO_DMA=y: ERROR: "dma_unmap_sg" [drivers/tty/serial/mxs-auart.ko] undefined! ERROR: "dma_map_sg" [drivers/tty/serial/mxs-auart.ko] undefined! Add a dependency on HAS_DMA to fix this. Signed-off-by: Geert Uytterhoeven Acked-by: Uwe Kleine-König Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f8032cb4f574c0de5ac1d65d61e972957e6f1631 Author: Geert Uytterhoeven Date: Mon Nov 9 10:31:15 2015 +0100 serial: SERIAL_IMX_AUART should depend on HAS_DMA If NO_DMA=y: ERROR: "dma_unmap_sg" [drivers/tty/serial/imx.ko] undefined! ERROR: "dma_map_sg" [drivers/tty/serial/imx.ko] undefined! Add a dependency on HAS_DMA to fix this. Signed-off-by: Geert Uytterhoeven Acked-by: Uwe Kleine-König Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 55fe84b17a8f9c7a3cdfbfefdb519311aa6ff1da Author: Geert Uytterhoeven Date: Mon Nov 9 10:31:14 2015 +0100 serial: SERIAL_ATMEL should depend on HAS_DMA If NO_DMA=y: drivers/built-in.o: In function `atmel_release_rx_dma': atmel_serial.c:(.text+0x2502e): undefined reference to `dma_unmap_sg' drivers/built-in.o: In function `atmel_release_tx_dma': atmel_serial.c:(.text+0x25080): undefined reference to `dma_unmap_sg' drivers/built-in.o: In function `atmel_tx_dma': atmel_serial.c:(.text+0x2517a): undefined reference to `dma_sync_sg_for_cpu' drivers/built-in.o: In function `atmel_release_tx_pdc': atmel_serial.c:(.text+0x252e6): undefined reference to `dma_unmap_single' drivers/built-in.o: In function `atmel_prepare_tx_pdc': atmel_serial.c:(.text+0x2531a): undefined reference to `dma_map_single' drivers/built-in.o: In function `atmel_release_rx_pdc': atmel_serial.c:(.text+0x25362): undefined reference to `dma_unmap_single' drivers/built-in.o: In function `atmel_tx_pdc': atmel_serial.c:(.text+0x25722): undefined reference to `dma_sync_single_for_cpu' drivers/built-in.o: In function `atmel_rx_from_pdc': atmel_serial.c:(.text+0x2601a): undefined reference to `dma_sync_single_for_cpu' drivers/built-in.o: In function `atmel_rx_from_dma': atmel_serial.c:(.text+0x261b2): undefined reference to `dma_sync_sg_for_cpu' atmel_serial.c:(.text+0x26264): undefined reference to `dma_sync_sg_for_cpu' drivers/built-in.o: In function `atmel_prepare_rx_pdc': atmel_serial.c:(.text+0x262de): undefined reference to `dma_unmap_single' atmel_serial.c:(.text+0x26308): undefined reference to `dma_map_single' Add a dependency on HAS_DMA to fix this. Signed-off-by: Geert Uytterhoeven Acked-by: Uwe Kleine-König Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/Kconfig | 1 + 1 file changed, 1 insertion(+) commit ed7a85045d0a0688a51bdab9e1a1d6ee79cb33b6 Author: Florian Achleitner Date: Wed Nov 18 09:04:12 2015 +0100 sc16is7xx: Fix TX buffer overrun caused by wrong tx fifo level read-out We found that our sc16is7xx on spi reported a TX fifo free space value (TXLVL_REG) of 255 ocassionally, which is obviously wrong, with a 64 byte fifo and caused a buffer overrun and a kernel crash. To trigger this, a large write to the tty is sufficient. The fifo fills, TXLVL_REG reads zero, but the handle_tx function does a zero-data-length write to the TX fifo anyways through sc16is7xx_fifo_write. The next TXLVL_REG read then yields 255, for unknown reasons. A subsequent read is ok. Prevent zero-data-length writes if the TX fifo is full, because they are pointless, and because they trigger wrong TXLVL read-outs. Furthermore, prevent a TX buffer overrun if the peripheral reports values larger than the buffer size and thus, don't allow the peripheral to crash the kernel. Signed-off-by: Florian Achleitner Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sc16is7xx.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 63d8cb3f19dabb409a09b4f2b8827934ab9365a3 Author: Peter Hurley Date: Sun Nov 8 09:29:38 2015 -0500 tty: Simplify tty_set_ldisc() exit handling Perform common exit for both successful and error exit handling in tty_set_ldisc(). Fixes unlikely possibility of failing to restart input kworker when switching to the same line discipline (noop case). Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_ldisc.c | 42 +++++++++++++----------------------------- 1 file changed, 13 insertions(+), 29 deletions(-) commit 5841fc4b136b8dbab551749d2b12d71628f34635 Author: Peter Hurley Date: Sun Nov 8 09:18:32 2015 -0500 tty: Remove unused SERIAL_DO_RESTART define SERIAL_DO_RESTART is not used by these 3 drivers; remove. Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/amiserial.c | 1 - drivers/tty/moxa.c | 1 - drivers/tty/serial/icom.c | 1 - 3 files changed, 3 deletions(-) commit 4de91ebcc788f81d2a974d91208f5560ddf36378 Author: Peter Hurley Date: Sun Nov 8 09:18:31 2015 -0500 tty: Remove dead tty_write_flush() declaration and macro tty_write_flush() has no definition and the TTY_WRITE_FLUSH() macro is never invoked; remove. Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman include/linux/tty.h | 4 ---- 1 file changed, 4 deletions(-) commit d1d3a0f7448fe038ce7e94e2c281dcd2f91b23c6 Author: Peter Hurley Date: Sun Nov 8 09:06:05 2015 -0500 tty: Only allow slave pty as controlling tty A master pty should never be a controlling tty in Linux; if the master pty is specified to ioctl(TIOCSCTTY), silently substitute the slave pty as the controlling tty. Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 83db1df4461c8731a413cd6cb1cbf351f01a57b1 Author: Peter Hurley Date: Sun Nov 8 13:01:21 2015 -0500 tty: core: Prefer dev_dbg() over pr_debug() Where possible, use dev_dbg() instead of pr_debug() Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6d029c68de1219ed791b484d0d289562a51520c7 Author: Peter Hurley Date: Sun Nov 8 13:01:20 2015 -0500 tty: Merge conditional + error message + WARN_ON() WARN() does all of these things in one statement. Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_mutex.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit d435cefe9cbc9308cac8d4b19069a572e2bd1558 Author: Peter Hurley Date: Sun Nov 8 13:01:19 2015 -0500 tty: Remove __func__ from tty_debug() macro Now that tty_debug() macro uses pr_debug(), the function name can be printed when using dynamic debug; printing the function name within the format string is redundant. Remove the __func__ parameter and print specifier from the format string. Add context to messages for when the function name is not printed by dynamic debug, or when dynamic debug is not enabled. Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/pty.c | 2 +- drivers/tty/tty_io.c | 14 +++++++------- drivers/tty/tty_ioctl.c | 2 +- include/linux/tty.h | 3 +-- 4 files changed, 10 insertions(+), 11 deletions(-) commit 89222e62662237faee90cd8486d23350f26b181d Author: Peter Hurley Date: Sun Nov 8 13:01:18 2015 -0500 tty: core: Prefer pr_* to printk(*) Convert remaining printk() use to pr_*() when tty is unknown or unsafe to use. Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_io.c | 6 ++---- drivers/tty/tty_ioctl.c | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) commit f658dca95075e0b6823650968edad68538494ab8 Author: Peter Hurley Date: Sun Nov 8 13:01:17 2015 -0500 tty: Remove unset_locked_termios() error message With the refactor of 'locked' from parameter to local, it's now obvious locked cannot be NULL. Remove entire conditional. Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_ioctl.c | 5 ----- 1 file changed, 5 deletions(-) commit d97ba9cdae73a69944c6051622c08bfa9016320e Author: Peter Hurley Date: Sun Nov 8 13:01:16 2015 -0500 tty: core: Refactor parameters for unset_locked_termios() helper Add tty as parameter to unset_locked_termios() and extract former parameters, termios and locked, as locals. Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_ioctl.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 656fb86770cffe25d002e1228931960219ccda6b Author: Peter Hurley Date: Sun Nov 8 13:01:15 2015 -0500 tty: core: Add driver name to invalid device registration message Include the driver name in the tty_register_device_attr() error message for invalid index. Note that tty_err() cannot be used here because there is no tty; use pr_err(). Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_io.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9b42bb750f24f5925d2fffed3f071726af72763a Author: Peter Hurley Date: Sun Nov 8 13:01:14 2015 -0500 tty: Convert SAK messages to tty_notice() Use tty_notice() for unified message format from the tty core. Fix each message to accurately reflect the cause of each termination. Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_io.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) commit 339f36ba14cf9f8fcf6e6b78385bd6811ec59fbe Author: Peter Hurley Date: Sun Nov 8 13:01:13 2015 -0500 tty: Define tty_*() printk macros Since not all ttys are devices (eg., SysV ptys), dev_*() printk macros cannot be used. Define tty_*() printk macros that output in similar format to dev_*() macros (ie., : .....). Transform the most-trivial printk( LEVEL ...) usage to tty_*() usage. NB: The function name has been eliminated from messages with unique context, or prefixed to the format when given. Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/n_tty.c | 7 ++----- drivers/tty/tty_io.c | 27 ++++++++++----------------- drivers/tty/tty_port.c | 9 ++++----- include/linux/tty.h | 12 +++++++++++- 4 files changed, 27 insertions(+), 28 deletions(-) commit 0a083eddae33b6e20234d05a9cf54f87b0095511 Author: Peter Hurley Date: Sun Nov 8 13:01:12 2015 -0500 tty: core: Add helper fn to deref tty driver name Similar to tty_name(), add tty_driver_name() helper to safely dereference tty->driver->name (otherwise return empty string). Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_io.c | 7 +++++++ include/linux/tty.h | 1 + 2 files changed, 8 insertions(+) commit 25080652a2d4a6d27a51fc1412e258f467174615 Author: Peter Hurley Date: Sun Nov 8 13:01:11 2015 -0500 tty: core: Remove redundant oom message kmalloc() already emits a diagnostic for failed allocations; remove tty-specific message. Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_io.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 076fe30334557d69c8f11db1f3f192f4ae448686 Author: Peter Hurley Date: Sun Nov 8 13:01:10 2015 -0500 tty: synclink_gt: Rename tty_driver_name Eliminate symbol name collision with new tty core function, tty_driver_name(). Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/synclink_gt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 82b8f888e99c81c609710901d8defbc8eff13f79 Author: Peter Hurley Date: Sun Nov 8 13:01:09 2015 -0500 tty: Make tty_paranoia_check() file scope tty_paranoia_check() is only used within drivers/tty/tty_io.c; remove extern declaration in header and limit symbol to file scope. Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_io.c | 2 +- include/linux/tty.h | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) commit 998b4a4571b87eb6795863e07683fa5d4e0398ba Author: Peter Hurley Date: Sun Nov 8 13:01:08 2015 -0500 tty: Improve tty_debug() macro Incorporate suggestions for tty core debug macro improvements - printk(KERN_DEBUG) => pr_debug() - ##args => ##__VA_ARGS__ - remove do {} while() - output tty_name() first cc: Joe Perches Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman include/linux/tty.h | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 9f25bc510e960c551dc295c2d1d60e3da334590c Author: Russell King Date: Tue Nov 3 14:51:13 2015 +0000 tty: amba-pl011: prepare REG_* register indexes Prepare for REG_* register accessors. This change involves introducing pl011_reg_to_offset() to convert REG_* to the hardware register offset, and converting all call sites to use REG_* names. We need to fix up locations where we check for equivalence of register offsets as well. Much of this change was made via these sed expressions: s/ST_UART01[1x]\(_[^_]*\|_LCRH_[TR]X\)\>/REG_ST\1/ s/UART01[1x]_\(DR\|RSR\|ECR\|FR\|ILPR\|[IF]BRD\|LCRH\|CR\|IFLS\|IMSC\|RIS\|MIS\|ICR\|DMACR\)\>/REG_\1/g Signed-off-by: Russell King Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 205 +++++++++++++++++++++------------------- drivers/tty/serial/amba-pl011.h | 32 +++++++ 2 files changed, 140 insertions(+), 97 deletions(-) commit 7fe9a5a9d91f0e9ac65c723665bbdf899c3a4a24 Author: Russell King Date: Tue Nov 3 14:51:08 2015 +0000 tty: amba-pl011: add helper to detect split LCRH register Add a helper to detect the split LCRH register found on ST variants. Signed-off-by: Russell King Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit b2a4e24c2efd76a2c25478836fb35951e00d5b52 Author: Russell King Date: Tue Nov 3 14:51:03 2015 +0000 tty: amba-pl011: convert accessor functions to take uart_amba_port Convert the new accessor functions to take the uart_amba_port instead of the port base address. Signed-off-by: Russell King Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 199 ++++++++++++++++++++-------------------- 1 file changed, 97 insertions(+), 102 deletions(-) commit 7583633921d54f33e96b65569a0c980ae1d05dba Author: Russell King Date: Tue Nov 3 14:50:58 2015 +0000 tty: amba-pl011: add register accessor functions Add register accessor functions to amba-pl011. Much of this transformation was done using the sed expression below, with any left-overs fixed up manually afterwards, and code formatted to remain within coding style. s/readw(\(uap->port.membase\|regs\|port->membase\) +/pl011_read(\1,/g s/writew(\(.*\) +/pl011_write(\1,/g Signed-off-by: Russell King Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 210 +++++++++++++++++++++------------------- 1 file changed, 112 insertions(+), 98 deletions(-) commit bd94c4077a0b2ecc35562c294f80f3659ecd8499 Author: Masahiro Yamada Date: Wed Oct 28 12:46:05 2015 +0900 serial: support 16-bit register interface for console Currently, 8-bit (MMIO) and 32-bit (MMIO32) register interfaces are supported for the 8250 console, but the 16-bit (MMIO16) is not. The 8250 UART device on my board is connected to a 16-bit bus and my main motivation is to use earlycon with it. (Refer to arch/arm/boot/dts/uniphier-support-card.dtsi) Signed-off-by: Masahiro Yamada Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman Documentation/kernel-parameters.txt | 9 +++++---- drivers/tty/serial/8250/8250_core.c | 7 ++++--- drivers/tty/serial/8250/8250_early.c | 5 +++++ drivers/tty/serial/8250/8250_port.c | 20 ++++++++++++++++++++ drivers/tty/serial/earlycon.c | 15 +++++++++++---- drivers/tty/serial/of_serial.c | 3 +++ drivers/tty/serial/serial_core.c | 9 +++++++-- include/linux/serial_core.h | 1 + include/uapi/linux/serial.h | 1 + 9 files changed, 57 insertions(+), 13 deletions(-) commit 004e2ed5cc6d89201140ca96693bf9c0b2945f43 Author: Masahiro Yamada Date: Fri Oct 30 11:39:05 2015 +0900 serial: 8250_early: squash wait_for_xmitr() into serial_putc() Now, wait_for_xmitr() is only called from serial_putc(), and both are short enough. They can be merged into a single function. Signed-off-by: Masahiro Yamada Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_early.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit f2bfdb0628d50339a70de475eb2be1c4c1eb9014 Author: Masahiro Yamada Date: Fri Oct 30 11:39:04 2015 +0900 serial: 8250_early: confirm empty transmitter after sending characters The current code waits until the transmitter becomes empty, before sending each character, and after finishing the whole string. This seems a bit redundant. It can be more efficient by checking the transmitter only after sending each character. This should be safe because the transmitter is already empty at the first entry of serial_putc(). Signed-off-by: Masahiro Yamada Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_early.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 2cda227bba7e8398c6f8a7792c7f35818187dcc6 Author: Masahiro Yamada Date: Fri Oct 30 11:39:03 2015 +0900 serial: 8250_early: do not save and restore IER in write callback The IER has already been masked in early_serial8250_setup(), there is no reason to save and restore it every time early_serial8250_write() is called. Signed-off-by: Masahiro Yamada Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_early.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) commit c0f160a7355380e9b7f9c5cbb1a0f9eecf6ec601 Author: Denys Vlasenko Date: Tue Oct 27 18:46:47 2015 +0100 vt: Deinline save_screen, save 238 bytes This function compiles to 79 bytes of machine code. Signed-off-by: Denys Vlasenko CC: Jiri Slaby CC: linux-serial@vger.kernel.org Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/vt/vt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5ef6504e9d0dcada48384b41d2cd77dba295bd36 Author: Denys Vlasenko Date: Tue Oct 27 18:46:46 2015 +0100 tty: Deinline __ldsem_down_write_nested, save 128 bytes This function compiles to 491 bytes of machine code. Signed-off-by: Denys Vlasenko CC: Jiri Slaby CC: linux-serial@vger.kernel.org Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_ldsem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fc0285f210500acad01dd8bd578dcd7f013db064 Author: Denys Vlasenko Date: Tue Oct 27 18:46:45 2015 +0100 tty: Deinline __ldsem_down_read_nested, save 128 bytes This function compiles to 479 bytes of machine code. Signed-off-by: Denys Vlasenko CC: Jiri Slaby CC: linux-serial@vger.kernel.org Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_ldsem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eba3b47b26191385326406903120ca6f88300785 Author: Denys Vlasenko Date: Tue Oct 27 18:46:44 2015 +0100 serial/vt8500_serial: Deinline wait_for_xmitr, save 165 bytes This function compiles to 141 bytes of machine code. Signed-off-by: Denys Vlasenko CC: Jiri Slaby CC: linux-serial@vger.kernel.org Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/vt8500_serial.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0d5547ca1bd7c7f55dab39c700e27ed33ff7eeef Author: Denys Vlasenko Date: Tue Oct 27 18:46:43 2015 +0100 serial/sunsu: Deinline wait_for_xmitr, save 165 bytes This function compiles to 141 bytes of machine code. Signed-off-by: Denys Vlasenko CC: Jiri Slaby CC: linux-serial@vger.kernel.org Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sunsu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 63744a690280d5b6981231072ba147c0c8b6da2e Author: Denys Vlasenko Date: Tue Oct 27 18:46:42 2015 +0100 serial/sprd_serial: Deinline wait_for_xmitr, save 165 bytes This function compiles to 141 bytes of machine code. Signed-off-by: Denys Vlasenko CC: Jiri Slaby CC: linux-serial@vger.kernel.org Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sprd_serial.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit be9ae5d9f7d771879dc93766e5cf8d923aed0e1e Author: Denys Vlasenko Date: Tue Oct 27 18:46:41 2015 +0100 serial/pxa: Deinline wait_for_xmitr, save 165 bytes This function compiles to 141 bytes of machine code. Signed-off-by: Denys Vlasenko CC: Jiri Slaby CC: linux-serial@vger.kernel.org Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/pxa.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2172076d2399660a1f49ee5a228ebcb56a2c3544 Author: Denys Vlasenko Date: Tue Oct 27 18:46:40 2015 +0100 serial/omap-serial: Deinline wait_for_xmitr, save 165 bytes This function compiles to 141 bytes of machine code. Signed-off-by: Denys Vlasenko CC: Jiri Slaby CC: linux-serial@vger.kernel.org Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/omap-serial.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fed76af0c7d005cb4b7d9b19d6d43137149b77ef Author: Denys Vlasenko Date: Tue Oct 27 18:46:38 2015 +0100 serial/men_z135_uart: Deinline men_z135_reg_clr, save 176 bytes This function compiles to 98 bytes of machine code. Signed-off-by: Denys Vlasenko CC: Greg Kroah-Hartman CC: Peter Hurley CC: Jiri Slaby CC: linux-serial@vger.kernel.org Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/men_z135_uart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9cdb933274662c4bf1a16146f4731782661b9831 Author: Denys Vlasenko Date: Tue Oct 27 18:46:37 2015 +0100 serial/m32r_sio: Deinline wait_for_xmitr, save 165 bytes This function compiles to 141 bytes of machine code. Signed-off-by: Denys Vlasenko CC: Jiri Slaby CC: linux-serial@vger.kernel.org Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/m32r_sio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9428d712d1b42c48ab92e3466d58bf3ee5c9f58f Author: Denys Vlasenko Date: Tue Oct 27 18:46:34 2015 +0100 isicom: Deinline drop_dtr, save 112 bytes This function compiles to 181 bytes of machine code. Signed-off-by: Denys Vlasenko CC: Jiri Slaby CC: linux-serial@vger.kernel.org Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/isicom.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1c82363eef25420f41a49a53cda9f0f9e513bb38 Author: Denys Vlasenko Date: Tue Oct 27 18:46:33 2015 +0100 cyclades: Deinline cyz_is_loaded, save 240 bytes This function compiles to 58 bytes of machine code. Signed-off-by: Denys Vlasenko CC: Jiri Slaby CC: linux-serial@vger.kernel.org Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/cyclades.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cb128f69ca61b456126280bb9a969befe7cfdd7c Author: Denys Vlasenko Date: Tue Oct 27 17:40:02 2015 +0100 tty/tty_ldisc: Deinline tty_ldisc_put, save 368 bytes This function compiles to 72 bytes of machine code. Signed-off-by: Denys Vlasenko CC: Jiri Slaby CC: linux-serial@vger.kernel.org Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_ldisc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f4581cab8ddd7270e6f342b163191e30e1398d74 Author: Denys Vlasenko Date: Tue Oct 27 17:40:01 2015 +0100 serial_core: Deinline uart_update_mctrl, save 304 bytes This function compiles to 92 bytes of machine code. Signed-off-by: Denys Vlasenko CC: Jiri Slaby CC: linux-serial@vger.kernel.org Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/serial_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6d70f46ba0012d0cc4ade4d0eaad9db61b2e54bb Author: Denys Vlasenko Date: Tue Oct 27 17:40:00 2015 +0100 serial/jsm: Deinline neo_parse_isr, save 688 bytes This function compiles to 811 bytes of machine code. Signed-off-by: Denys Vlasenko CC: Jiri Slaby CC: linux-serial@vger.kernel.org Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/jsm/jsm_neo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1a5b34ebebf9be06b03a801cc12a676f2af42a9f Author: Denys Vlasenko Date: Tue Oct 27 17:39:59 2015 +0100 serial/bcm63xx_uart: Deinline wait_for_xmitr, save 374 bytes This function compiles to 141 bytes of machine code. Signed-off-by: Denys Vlasenko CC: Jiri Slaby CC: linux-serial@vger.kernel.org Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/bcm63xx_uart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 810e20e705d76b6d3229b4417ab2ba1e178a92fa Author: Denys Vlasenko Date: Tue Oct 27 17:39:58 2015 +0100 isicom: Deinline WaitTillCardIsFree, save 1120 bytes This function compiles to 96 bytes of machine code. Signed-off-by: Denys Vlasenko CC: Jiri Slaby CC: linux-serial@vger.kernel.org Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/isicom.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8c6ba003ee4dd43448b3986108f9d5299543b53f Author: Denys Vlasenko Date: Tue Oct 27 17:39:57 2015 +0100 cyclades: Deinline serial_paranoia_check, save 304 bytes This function compiles to 52 bytes of machine code. Signed-off-by: Denys Vlasenko CC: Jiri Slaby CC: linux-serial@vger.kernel.org Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/cyclades.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f25d596fc2ef038ec91e1135ea7c7717bbd85f55 Author: Denys Vlasenko Date: Tue Oct 27 17:39:56 2015 +0100 cyclades: Deinline cyy_writeb, save 880 bytes This function compiles to 35 bytes of machine code. Signed-off-by: Denys Vlasenko CC: Jiri Slaby CC: linux-serial@vger.kernel.org Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/cyclades.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f88d86831b69be7d2ad1ac1ba80af386139e76af Author: Denys Vlasenko Date: Tue Oct 27 17:39:55 2015 +0100 cyclades: Deinline cyy_readb, save 368 bytes This function compiles to 32 bytes of machine code. Signed-off-by: Denys Vlasenko CC: Jiri Slaby CC: linux-serial@vger.kernel.org Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/cyclades.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4828d5c30a2e1d300f7ca7c15868cead2ef7fb29 Author: Masahiro Yamada Date: Fri Oct 23 22:31:16 2015 +0900 serial: 8250_ingenic: allow to be independent of SERIAL_8250_CONSOLE This UART driver should not depend on the console. They should be orthogonal. Surround the earlycon code with CONFIG_SERIAL_EARLYCON conditional and rip off "depends on SERIAL_8250_CONSOLE". Signed-off-by: Masahiro Yamada Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_ingenic.c | 2 ++ drivers/tty/serial/8250/Kconfig | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) commit fbccaca9bd099e3b8bc6dfabb8dc6f57ad83d1a8 Author: Masahiro Yamada Date: Fri Oct 23 22:31:15 2015 +0900 serial: 8250_ingenic: delete redundant "select SERIAL_EARLYCON" SERIAL_8250_INGENIC depends on SERIAL_8250_CONSOLE, which already selects SERIAL_EARLYCON. This line is redundant. Signed-off-by: Masahiro Yamada Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/Kconfig | 1 - 1 file changed, 1 deletion(-) commit b8d20e06eaad4c2bd64746cacd95be9a5d3e747f Author: Masahiro Yamada Date: Fri Oct 30 11:46:16 2015 +0900 serial: 8250_uniphier: add earlycon support This reuses the code of drivers/tty/serial/8250/8250_early.c except - Overwrite device->port.iotype and device->port.regshift for UPIO_MEM32 because of_setup_earlycon() has set them for UPIO_MEM. - Set device->baud to zero to prevent early8250_setup() from initializing the divisor register because port->uartclk does not match the frequency expected by this hardware. Signed-off-by: Masahiro Yamada Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_uniphier.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit d72d391c126e0ffd3047c06c4bef4d795853d5d5 Author: Paul Gortmaker Date: Sun Oct 18 18:21:18 2015 -0400 drivers/tty/serial: make 8250/8250_mtk.c explicitly non-modular The Kconfig currently controlling compilation of this code is: drivers/tty/serial/8250/Kconfig:config SERIAL_8250_MT6577 drivers/tty/serial/8250/Kconfig: bool "Mediatek serial port 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. We explicitly disallow a driver unbind, since that doesn't have a sensible use case anyway, and it allows us to drop the ".remove" code for non-modular drivers. Since module_platform_driver() uses the same init level priority as builtin_platform_driver() the init ordering remains unchanged with this commit. We also delete the MODULE_LICENSE tag etc. since all that information is already contained at the top of the file in the comments. Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code. Cc: Jiri Slaby Cc: Matthias Brugger Cc: linux-serial@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-mediatek@lists.infradead.org Signed-off-by: Paul Gortmaker Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_mtk.c | 35 +++++++---------------------------- 1 file changed, 7 insertions(+), 28 deletions(-) commit c39dfebc7798956fd2140ae6321786ff35da30c3 Author: Paul Gortmaker Date: Sun Oct 18 18:21:16 2015 -0400 drivers/tty/serial: make serial/atmel_serial.c explicitly non-modular The Kconfig currently controlling compilation of this code is: drivers/tty/serial/Kconfig:config SERIAL_ATMEL drivers/tty/serial/Kconfig: bool "AT91 / AT32 on-chip serial port 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. We explicitly disallow a driver unbind, since that doesn't have a sensible use case anyway, and it allows us to drop the ".remove" code for non-modular drivers. Since module_init translates to device_initcall in the non-modular case, the init ordering remains unchanged with this commit. We don't replace module.h with init.h since the file already has that. We also delete the MODULE_LICENSE tag etc. since all that information is already contained at the top of the file in the comments. Cc: Nicolas Ferre Cc: Jiri Slaby Cc: linux-serial@vger.kernel.org Signed-off-by: Paul Gortmaker Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/atmel_serial.c | 45 ++++----------------------------------- 1 file changed, 4 insertions(+), 41 deletions(-) commit cc568849370bb131d896f4c5933cc72bf7ee603d Author: Uwe Kleine-König Date: Sun Oct 18 21:34:47 2015 +0200 serial: imx: reorder functions and simplify a bit Now that imx_mctrl_check is implemented below imx_get_mctrl the former can call the latter directly instead of via sport->port.ops->get_mctrl. Signed-off-by: Uwe Kleine-König Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/imx.c | 90 ++++++++++++++++++++++++------------------------ 1 file changed, 45 insertions(+), 45 deletions(-) commit 90ebc4838666d148eac5bbac6f4044e5b25cd2d6 Author: Uwe Kleine-König Date: Sun Oct 18 21:34:46 2015 +0200 serial: imx: repair and complete handshaking The .get_mctrl callback should not report the status of RTS or LOOP, so drop this. Instead implement reporting the state of CAR (aka DCD) and RI. For .set_mctrl implement setting the DTR line. Signed-off-by: Uwe Kleine-König Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/imx.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) commit 18dfef9c7f87b75bbb0fb66a634f7c13a45b9f8d Author: Uwe Kleine-König Date: Sun Oct 18 21:34:45 2015 +0200 serial: atmel: convert to irq handling provided mctrl-gpio Tested-by: Nicolas Ferre Signed-off-by: Uwe Kleine-König Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/atmel_serial.c | 140 +++++--------------------------------- 1 file changed, 18 insertions(+), 122 deletions(-) commit 456ad4a138d306ed0137e3330d5e2ff5937c1bf9 Author: Ulrich Hecht Date: Mon Oct 19 14:31:49 2015 +0200 serial: sh-sci: Add device tree bindings for r8a7793 Also replaces "R-Car M2" with "R-Car M2-W" to avoid confusion. Signed-off-by: Ulrich Hecht Acked-by: Simon Horman Signed-off-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman .../devicetree/bindings/serial/renesas,sci-serial.txt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 5f8b90431fc9613d4559a602a1070b2270ff4444 Author: LABBE Corentin Date: Tue Nov 24 15:36:57 2015 +0100 serial: imx: fix a possible NULL dereference of_match_device could return NULL, and so cause a NULL pointer dereference later. Even if the probability of this case is very low, fixing it made static analyzers happy. Solving this with of_device_get_match_data made also code simplier. Signed-off-by: LABBE Corentin Acked-by: Uwe Kleine-König Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/imx.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 4d2ae601d80675af025e7a5bcbe918c58b6743aa Author: Gavin Thomas Claugus Date: Tue Dec 1 19:06:19 2015 -0500 drivers: serial: jsm: Switch "jsm" to JSM_DRIVER_NAME This commit replaces every instance of the string "jsm" in the driver with JSM_DRIVER_NAME, as the two are equivalent. This should increase overall consistency. Signed-off-by: Gavin Thomas Claugus Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/jsm/jsm_driver.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 93c222c0e126c1c24ac454acf013f2c85e57bd8b Merge: f89c2b3 9f9499a Author: Greg Kroah-Hartman Date: Sun Dec 13 19:23:01 2015 -0800 Merge 4.4-rc5 into staging-next We want those fixes in here for testing. Signed-off-by: Greg Kroah-Hartman commit 252ca494ac75f0dc47469f130d6dc67ed14081f4 Merge: 900937c 9f9499a Author: Greg Kroah-Hartman Date: Sun Dec 13 19:20:27 2015 -0800 Merge 4.4-rc5 into usb-next as we want those fixes here for testing Signed-off-by: Greg Kroah-Hartman commit 764a5c6b1fa4306dd7573c1d80914254909cd036 Author: Andreas Gruenbacher Date: Wed Dec 2 14:44:43 2015 +0100 xattr handlers: Simplify list operation Change the list operation to only return whether or not an attribute should be listed. Copying the attribute names into the buffer is moved to the callers. Since the result only depends on the dentry and not on the attribute name, we do not pass the attribute name to list operations. Signed-off-by: Andreas Gruenbacher Signed-off-by: Al Viro fs/ext2/xattr.c | 15 +++++--- fs/ext2/xattr_security.c | 17 --------- fs/ext2/xattr_trusted.c | 19 ++-------- fs/ext2/xattr_user.c | 19 ++-------- fs/ext4/xattr.c | 17 +++++---- fs/ext4/xattr_security.c | 18 ---------- fs/ext4/xattr_trusted.c | 19 ++-------- fs/ext4/xattr_user.c | 19 ++-------- fs/f2fs/xattr.c | 82 ++++++++++++++------------------------------ fs/jffs2/security.c | 16 --------- fs/jffs2/xattr.c | 26 ++++++++------ fs/jffs2/xattr_trusted.c | 17 ++------- fs/jffs2/xattr_user.c | 16 --------- fs/nfs/nfs4proc.c | 14 ++------ fs/posix_acl.c | 17 ++------- fs/reiserfs/xattr.c | 13 +++---- fs/reiserfs/xattr_security.c | 16 ++------- fs/reiserfs/xattr_trusted.c | 15 ++------ fs/reiserfs/xattr_user.c | 14 ++------ fs/squashfs/xattr.c | 35 +++++-------------- fs/xattr.c | 20 ++++++----- include/linux/xattr.h | 4 +-- 22 files changed, 113 insertions(+), 335 deletions(-) commit 1046cb119521b5e1881f380dc99729fc84c96661 Author: Andreas Gruenbacher Date: Wed Dec 2 14:44:42 2015 +0100 ocfs2: Replace list xattr handler operations The list operations of the ocfs2 xattr handlers were never called anywhere. Remove them and directly check in ocfs2_xattr_list_entry which attributes should be skipped over instead. Signed-off-by: Andreas Gruenbacher Cc: Mark Fasheh Cc: Joel Becker Cc: ocfs2-devel@oss.oracle.com Signed-off-by: Al Viro fs/ocfs2/xattr.c | 151 +++++++++++++++++++++---------------------------------- 1 file changed, 57 insertions(+), 94 deletions(-) commit c4803c497fbdb37e96af614813a7cfb434b6682a Author: Andreas Gruenbacher Date: Wed Dec 2 14:44:41 2015 +0100 nfs: Move call to security_inode_listsecurity into nfs_listxattr Add a nfs_listxattr operation. Move the call to security_inode_listsecurity from list operation of the "security.*" xattr handler to nfs_listxattr. Signed-off-by: Andreas Gruenbacher Cc: Trond Myklebust Cc: Anna Schumaker Cc: linux-nfs@vger.kernel.org Signed-off-by: Al Viro fs/nfs/nfs4proc.c | 53 +++++++++++++++++++++++++++++++--------------- fs/xattr.c | 4 ++++ security/smack/smack_lsm.c | 2 -- 3 files changed, 40 insertions(+), 19 deletions(-) commit 504b0fdf92bfb28b88b79fe3bf356b840b2e555c Author: Jacob Keller Date: Thu Oct 29 13:43:40 2015 -0700 fm10k: initialize xps at driver load Similar to ixgbe and i40e, initialize XPS on driver load so that we can take advantage of this kernel feature. Signed-off-by: Jacob Keller Reviewed-by: Bruce Allan Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k.h | 3 +++ drivers/net/ethernet/intel/fm10k/fm10k_pci.c | 18 ++++++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) commit 3d02b3df733af0531789fff3fc999f9ca843b66e Author: Bruce Allan Date: Wed Oct 28 17:19:56 2015 -0700 fm10k: cleanup overly long lines Signed-off-by: Bruce Allan Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k.h | 2 +- drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c | 12 ++++++---- drivers/net/ethernet/intel/fm10k/fm10k_mbx.c | 2 +- drivers/net/ethernet/intel/fm10k/fm10k_netdev.c | 4 +++- drivers/net/ethernet/intel/fm10k/fm10k_pci.c | 29 +++++++++++++----------- drivers/net/ethernet/intel/fm10k/fm10k_pf.c | 7 +++--- 6 files changed, 33 insertions(+), 23 deletions(-) commit bb269e8bb5ab5015574cf44af6233278af629bcb Author: Bruce Allan Date: Wed Oct 28 17:19:51 2015 -0700 fm10k: cleanup namespace pollution Make functions that should be static. While we're at it, fix the function header comment for fm10k_tlv_attr_nest_stop(), and update the copyright header for fm10k_pf.h, fm10k_tlv.c and fm10k_tlv.h. Signed-off-by: Bruce Allan Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_pf.c | 4 ++-- drivers/net/ethernet/intel/fm10k/fm10k_pf.h | 4 +--- drivers/net/ethernet/intel/fm10k/fm10k_tlv.c | 18 +++++++++--------- drivers/net/ethernet/intel/fm10k/fm10k_tlv.h | 7 +------ 4 files changed, 13 insertions(+), 20 deletions(-) commit 3e515645b198ac60f493822f9193dd8107e1b8d0 Author: Bruce Allan Date: Wed Oct 28 17:19:45 2015 -0700 fm10k: use BIT() macro instead of open-coded bit-shifting Signed-off-by: Bruce Allan Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k.h | 2 +- drivers/net/ethernet/intel/fm10k/fm10k_type.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit a4fcad656e1100bdda9b0b752b93a1a276810469 Author: Bruce Allan Date: Wed Oct 28 17:19:40 2015 -0700 fm10k: whitespace cleanups Signed-off-by: Bruce Allan Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c | 4 ++-- drivers/net/ethernet/intel/fm10k/fm10k_main.c | 4 ++-- drivers/net/ethernet/intel/fm10k/fm10k_mbx.c | 1 + drivers/net/ethernet/intel/fm10k/fm10k_netdev.c | 4 ++-- drivers/net/ethernet/intel/fm10k/fm10k_pci.c | 5 ++--- drivers/net/ethernet/intel/fm10k/fm10k_pf.c | 1 + drivers/net/ethernet/intel/fm10k/fm10k_vf.c | 1 + 7 files changed, 11 insertions(+), 9 deletions(-) commit e214d85b4a0c358c5aefa45d72bb00138fbcb6ac Author: Bruce Allan Date: Wed Oct 28 16:04:40 2015 -0700 fm10k: do not inline fm10k_iov_select_vid() The function declaration does not need to be 'inline'd here. Signed-off-by: Bruce Allan Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_pf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e00e23bceba48a8f0c94fefe26948404cbd43d0a Author: Alexander Duyck Date: Tue Oct 27 16:59:18 2015 -0700 fm10k: Cleanup exception handling for mailbox interrupt This patch addresses two issues. First is the fact that the fm10k_mbx_free_irq was assuming msix_entries was valid and that will not always be the case. As such we need to add a check for if it is NULL. Second is the fact that we weren't freeing the IRQ if the mailbox API returned an error on trying to connect. Signed-off-by: Alexander Duyck Reviewed-by: Bruce Allan Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_pci.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) commit 587731e684dcf3522215194a02357d26b9bc7277 Author: Alexander Duyck Date: Tue Oct 27 16:59:12 2015 -0700 fm10k: Cleanup MSI-X interrupts in case of failure If the q_vector allocation fails we should free the resources associated with the MSI-X vector table. Signed-off-by: Alexander Duyck Reviewed-by: Bruce Allan Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_main.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 5682366cecd1d40cb63f6a88dbe53349cb97e173 Author: Jacob Keller Date: Tue Oct 27 12:51:09 2015 -0700 fm10k: conditionally compile DCB and DebugFS support Rather than wrapping fm10k_dcbnl.c and fm10k_debugfs.c support with #ifdef blocks, just conditionally include the .o files in the Makefile. Also, since we're modifying it, update the copyright year on the Makefile. Signed-off-by: Jacob Keller Signed-off-by: Bruce Allan Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/Makefile | 20 +++++++++++++++----- drivers/net/ethernet/intel/fm10k/fm10k.h | 4 ++++ drivers/net/ethernet/intel/fm10k/fm10k_dcbnl.c | 4 ---- drivers/net/ethernet/intel/fm10k/fm10k_debugfs.c | 4 ---- 4 files changed, 19 insertions(+), 13 deletions(-) commit e3b6e95d070cbca5e82279fea99e2dba8e38f960 Author: Jacob Keller Date: Mon Oct 26 14:38:40 2015 -0700 fm10k: bump driver version We haven't bumped the driver version in a while despite many fixes being pulled in from the out-of-tree Sourceforge driver. Update the version to match. Signed-off-by: Jacob Keller Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit aa502b4a2425a269787fbe2c3a91054d5e648a64 Author: Jacob Keller Date: Mon Nov 2 12:10:22 2015 -0800 fm10k: consistently refer to VLANs and VLAN IDs Instead of using lowercase vlan, vid, or VID, always use VLAN or VLAN ID in comments when referring to VLANs. The original driver code was consistent, but recent patches have not been as consistent with this naming scheme. Signed-off-by: Jacob Keller Reviewed-by: Bruce Allan Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k.h | 4 ++-- drivers/net/ethernet/intel/fm10k/fm10k_netdev.c | 8 ++++---- drivers/net/ethernet/intel/fm10k/fm10k_pci.c | 4 ++-- drivers/net/ethernet/intel/fm10k/fm10k_pf.c | 14 +++++++------- 4 files changed, 15 insertions(+), 15 deletions(-) commit b80b1a51a19d613751d032fe213d7802d945f300 Author: Jacob Keller Date: Mon Oct 26 16:32:06 2015 -0700 fm10k: remove namespace pollution of fm10k_iov_msg_data_pf Signed-off-by: Jacob Keller Reviewed-by: Bruce Allan Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_pf.c | 8 -------- drivers/net/ethernet/intel/fm10k/fm10k_pf.h | 1 - 2 files changed, 9 deletions(-) commit 4ab0f79bf313b16d4038b94d861ec2184d347c6d Author: Jacob Keller Date: Mon Oct 26 16:32:05 2015 -0700 fm10k: remove unnecessary else block from if statements with return Improve code style by removing the unnecessary else block of an if statement which immediately returns. Signed-off-by: Jacob Keller Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_pf.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 40423dd2a56ab95c41b69d9dd910199a0acfd5c5 Author: Jacob Keller Date: Mon Oct 26 16:32:04 2015 -0700 fm10k: do not use CamelCase Avoid the use of CamelCase for some variable names that previously slipped through review. Reported-by: Bruce Allan Signed-off-by: Jacob Keller Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_pci.c | 12 ++++++------ drivers/net/ethernet/intel/fm10k/fm10k_type.h | 14 +++++++------- 2 files changed, 13 insertions(+), 13 deletions(-) commit f0cf5c98981353563b929801100c30071f0eeefb Author: Jacob Keller Date: Mon Oct 26 16:32:02 2015 -0700 fm10k: use ether_addr_copy to copy MAC address Use the ether_addr_copy function instead of copying byte-by-byte in a for-loop by hand. Reported-by: Bruce Allan Signed-off-by: Jacob Keller Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_pf.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit f68766d8844f4340992a993f1af5f0307d740d8c Merge: 9119023 f3ed935 Author: David S. Miller Date: Sun Dec 13 17:06:00 2015 -0500 Merge branch '1GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== 1GbE Intel Wired LAN Driver Updates 2015-12-12 This series contains updates to e1000, e1000e and igb. Joern Engel fixes up the e1000 driver to reduce scheduler latencies by making the eeprom read/write functions scheduler friendly by using a mutex lock instead of a spin lock. Todd adds code for igb to initialize the 88E1543 PHY properly. Then fixed igb to use the correct i210 register for EEMNGCTL, since the i210 has two EEPROM access registers (EEARBC and EEMNGCTL). Dmitry Vyukov provides a fix for e1000 to resolve a data race found with KernelThreadSanitizer (KTSAN), where no memory barriers were being used when buffers get recycled, so the recycled buffers can be corrupted. So use smp_store_release() to update tx_ring->next_to_clean and smp_load_acquire() to read tx_ring->next_to_clean to properly hand off buffers from e1000_clean_tx_irq() to e1000_xmit_frame(). Jarod Wilson fixes igb so that we do not try to unmap a NULL hw_addr. Then cleaned up array_rd32() so that it uses igb_rd32() the same as rd32() and use io_addr() in more places so that we do not have to call E1000_REMOVED(). Janusz Wolak cleans up the e1000 driver by correcting warnings produced by checkpatch.pl for the driver. Jean Sacren provides several patches with general cleanups for e1000 and e1000e, which include code comment fix-ups and cleanup of local variables not needed. Dmitry Fleytman fixes a possible division by zero in the receive interrupt handler for e1000e when working without adaptive interrupt moderation, which is typically disabled on jumbo MTUs. Raanan increases the timeout of the polling bit due to timing changes to the ME firmware on a platform, so increase the timeout to 300ms. Added initial support for i219-LM, which is a LOM that will be available on systems with the Lewisburg Platform Controller HUB (PCH) chipset. Jan Beulich fixes a NULL dereference in igb, due to the adapter->vf _data being NULL while adapter->vfs_allocated_count is non-zero. ==================== Signed-off-by: David S. Miller commit b1558f168f4ef5956913d73fe330c4da85c74349 Author: Dan Carpenter Date: Sat Dec 12 15:43:46 2015 +0300 clk: sunxi: signedness bug in sun8i_h3_bus_gates_init() "index" needs to be signed for the error handling to work. Fixes: ab6e23a4e388 ('clk: sunxi: Add H3 clocks support') Signed-off-by: Dan Carpenter Signed-off-by: Maxime Ripard drivers/clk/sunxi/clk-sun8i-bus-gates.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 739f3e92916b6076afbfc3b524ec120468478035 Author: Martin Sperl Date: Sun Dec 13 09:46:25 2015 +0000 spi: loopback: added additional non-power of 2 transfer lengthes Added additional transfer length to test that are not a power of 2. Signed-off-by: Martin Sperl Signed-off-by: Mark Brown drivers/spi/spi-test.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit fc8773e195350c61e61cc354b1535fb2c09a29f3 Author: Martin Sperl Date: Sun Dec 13 09:45:01 2015 +0000 spi: loopback: match configuration of test to description The test "two tx+rx transfers - alter second" actually modifies the first not the second transfer, which - in conjunction with testing the read data - results also in overwriting data read earlier. Signed-off-by: Martin Sperl Signed-off-by: Mark Brown drivers/spi/spi-loopback-test.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d58b9fda129d7f75358a36b71ec5cc685b4f993e Author: Martin Sperl Date: Sun Dec 13 09:42:55 2015 +0000 spi: loopback: fix printk format issues with size_t Fixes the reported printk format issues reported by kbuild-test-robot. Signed-off-by: Martin Sperl Signed-off-by: Mark Brown drivers/spi/spi-loopback-test.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 2dc43331e34fa992a67f42ed44e5111cafafd6f3 Author: Dan Williams Date: Sun Dec 13 11:41:36 2015 -0800 libnvdimm, pfn: fix pfn seed creation Similar to btt, plant a new pfn seed when the existing one is activated. Signed-off-by: Dan Williams drivers/nvdimm/namespace_devs.c | 12 ++++++++++++ drivers/nvdimm/nd-core.h | 1 + drivers/nvdimm/region_devs.c | 7 +++++++ 3 files changed, 20 insertions(+) commit a34d5e8a6ad1a31b186019c9c351777626698863 Author: Dan Williams Date: Sat Dec 12 16:09:14 2015 -0800 libnvdimm, pfn: add parent uuid validation Track and check the uuid of the namespace hosting a pfn instance. This forces the pfn info block to be invalidated if the namespace is re-configured with a different uuid. Signed-off-by: Dan Williams drivers/nvdimm/pfn_devs.c | 10 +++++++--- drivers/nvdimm/pmem.c | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) commit da58fb6571bf40e5b2287d6aa3bbca04965f5677 Author: Ard Biesheuvel Date: Thu Sep 24 13:49:52 2015 -0700 ARM: wire up UEFI init and runtime support This adds support to the kernel proper for booting via UEFI. It shares most of the code with arm64, so this patch mostly just wires it up for use with ARM. Note that this does not include the EFI stub, it is added in a subsequent patch. Tested-by: Ryan Harkin Reviewed-by: Matt Fleming Signed-off-by: Ard Biesheuvel arch/arm/include/asm/efi.h | 60 ++++++++++++++++++++++++++++++++++++++ arch/arm/include/asm/mmu_context.h | 2 +- arch/arm/kernel/Makefile | 1 + arch/arm/kernel/efi.c | 38 ++++++++++++++++++++++++ arch/arm/kernel/setup.c | 3 ++ drivers/firmware/efi/Makefile | 1 + 6 files changed, 104 insertions(+), 1 deletion(-) commit 09414d00a137cf7f42b6dc7415f346258d60e8da Author: Ard Biesheuvel Date: Thu Oct 1 17:58:11 2015 +0200 ARM: only consider memblocks with NOMAP cleared for linear mapping Take the new memblock attribute MEMBLOCK_NOMAP into account when deciding whether a certain region is or should be covered by the kernel direct mapping. Tested-by: Ryan Harkin Reviewed-by: Matt Fleming Signed-off-by: Ard Biesheuvel arch/arm/mm/init.c | 5 ++++- arch/arm/mm/mmu.c | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) commit c7936206b9715d7a3075b53789c1fed0cab9147f Author: Ard Biesheuvel Date: Wed Apr 29 10:04:17 2015 +0200 ARM: implement create_mapping_late() for EFI use This implements create_mapping_late(), which we will use to populate the UEFI Runtime Services page tables. Tested-by: Ryan Harkin Reviewed-by: Matt Fleming Signed-off-by: Ard Biesheuvel arch/arm/include/asm/mach/map.h | 2 ++ arch/arm/mm/mmu.c | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+) commit b430e55b2318ca4523b0e39ff6c0d5a2109159b4 Author: Ard Biesheuvel Date: Tue Nov 17 08:46:47 2015 +0100 ARM: add support for non-global kernel mappings Add support to the kernel translation table population routines for creating non-global mappings. This will be used by the UEFI runtime services, which will use temporary mappings in the userland range. Reviewed-by: Matt Fleming Signed-off-by: Ard Biesheuvel arch/arm/mm/mmu.c | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) commit f579b2b10412771ad5eaa785ddaa7b62b97a6e8d Author: Ard Biesheuvel Date: Tue Sep 15 14:59:14 2015 +0200 ARM: factor out allocation routine from __create_mapping() To allow __create_mapping() to be used for populating UEFI Runtime Services page tables, factor out the allocation routine 'early_alloc' and pass it down as a function pointer into alloc_init_[pud|pmd|pte]. This way, new users of __create_mapping() can supply another allocation function. Tested-by: Ryan Harkin Reviewed-by: Matt Fleming Signed-off-by: Ard Biesheuvel arch/arm/mm/mmu.c | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) commit 1bdb2d4ee05f2fdad4d8a82d7e0ce8d6d91ec4ac Author: Ard Biesheuvel Date: Tue Sep 15 14:50:22 2015 +0200 ARM: split off core mapping logic from create_mapping In order to be able to reuse the core mapping logic of create_mapping for mapping the UEFI Runtime Services into a private set of page tables, split it off from create_mapping() into a separate function __create_mapping which we will wire up in a subsequent patch. Tested-by: Ryan Harkin Reviewed-by: Matt Fleming Signed-off-by: Ard Biesheuvel arch/arm/mm/mmu.c | 56 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 31 insertions(+), 25 deletions(-) commit 2937367b8a4b0d46ce3312cb997e4a240b02cf15 Author: Ard Biesheuvel Date: Tue Sep 1 08:59:28 2015 +0200 ARM: add support for generic early_ioremap/early_memremap This enables the generic early_ioremap implementation for ARM. It uses the fixmap region reserved for kmap. Since early_ioremap is only supported before paging_init(), and kmap is only supported afterwards, this is guaranteed not to cause any clashes. Tested-by: Ryan Harkin Reviewed-by: Matt Fleming Signed-off-by: Ard Biesheuvel arch/arm/Kconfig | 1 + arch/arm/include/asm/Kbuild | 1 + arch/arm/include/asm/fixmap.h | 29 ++++++++++++++++++++++++++++- arch/arm/kernel/setup.c | 7 +++++-- arch/arm/mm/ioremap.c | 9 +++++++++ arch/arm/mm/mmu.c | 2 +- 6 files changed, 45 insertions(+), 4 deletions(-) commit 10cf4899f8affa468b9140f377857bfe3f563012 Author: Dmitry Torokhov Date: Wed Nov 11 11:45:30 2015 -0800 gpiolib: tighten up ACPI legacy gpio lookups We should not fall back to the legacy unnamed gpio lookup style if the driver requests gpios with different names, because we'll give out the same gpio twice. Let's keep track of the names that were used for the device and only do the fallback for the first name used. Signed-off-by: Dmitry Torokhov Acked-by: Mika Westerberg Signed-off-by: Linus Walleij drivers/gpio/gpiolib-acpi.c | 43 +++++++++++++++++++++++++++++++++++++++++++ drivers/gpio/gpiolib.c | 3 +++ drivers/gpio/gpiolib.h | 8 ++++++++ 3 files changed, 54 insertions(+) commit d68106bbec2c2a33faacd50a1f7d24954701f505 Author: Damien Riegel Date: Fri Nov 20 16:54:56 2015 -0500 watchdog: w83627hf_wdt: use core reboot notifier Get rid of the custom reboot notifier block registration and use the one provided by the watchdog core. Signed-off-by: Damien Riegel Reviewed-by: Vivien Didelot Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/w83627hf_wdt.c | 32 ++------------------------------ 1 file changed, 2 insertions(+), 30 deletions(-) commit 84ebcc17f281ed6ce1e6a7b4b0d9f15da727edd5 Author: Damien Riegel Date: Fri Nov 20 16:54:55 2015 -0500 watchdog: softdog: use core reboot notifier Get rid of the custom reboot notifier block registration and use the one provided by the watchdog core. Signed-off-by: Damien Riegel Reviewed-by: Guenter Roeck Reviewed-by: Vivien Didelot Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/softdog.c | 30 ++---------------------------- 1 file changed, 2 insertions(+), 28 deletions(-) commit 28e805b44d52900fc5b05b35ef3945dc6db336a1 Author: Damien Riegel Date: Fri Nov 20 16:54:54 2015 -0500 watchdog: gpio_wdt: use core reboot notifier Get rid of the custom reboot notifier block registration and use the one provided by the watchdog core. Note that this watchdog used to stop unconditionnaly on SYS_HALT and SYS_POWER_OFF. The core function now calls ops->stop on SYS_HALT and SYS_DOWN. To prevent the watchdog from being stopped on reboot, the "always-running" property must be set, otherwise it will now be stopped. Signed-off-by: Damien Riegel Reviewed-by: Vivien Didelot Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/gpio_wdt.c | 35 ++--------------------------------- 1 file changed, 2 insertions(+), 33 deletions(-) commit 5e1f976f43dc6b5903ee4b78536347b5004cefe4 Author: Damien Riegel Date: Fri Nov 20 16:54:53 2015 -0500 watchdog: cadence_wdt: use core reboot notifier Get rid of the custom reboot notifier block registration and use the one provided by the watchdog core. Signed-off-by: Damien Riegel Reviewed-by: Guenter Roeck Reviewed-by: Vivien Didelot Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/cadence_wdt.c | 36 +----------------------------------- 1 file changed, 1 insertion(+), 35 deletions(-) commit 2786aadeab263609eb690ca37e7dfd3b9ffa3625 Author: Damien Riegel Date: Fri Nov 20 16:54:52 2015 -0500 watchdog: bcm47xx_wdt: use core reboot notifier Get rid of the custom reboot notifier block registration and use the one provided by the watchdog core. Signed-off-by: Damien Riegel Reviewed-by: Guenter Roeck Reviewed-by: Vivien Didelot Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/bcm47xx_wdt.c | 24 ++---------------------- include/linux/bcm47xx_wdt.h | 2 -- 2 files changed, 2 insertions(+), 24 deletions(-) commit e131319669e0ef5e6fcd75174daeffa40492135c Author: Damien Riegel Date: Fri Nov 20 16:54:51 2015 -0500 watchdog: core: add reboot notifier support Many watchdog drivers register a reboot notifier in order to stop the watchdog on system reboot. Thus we can factorize this code in the watchdog core. For that purpose, a new notifier block is added in watchdog_device for internal use only, as well as a new watchdog_stop_on_reboot helper function. If this helper is called, watchdog core registers the related notifier block and will stop the watchdog when SYS_HALT or SYS_DOWN is received. Since this operation can be critical on some platforms, abort the device registration if the reboot notifier registration fails. Suggested-by: Vivien Didelot Signed-off-by: Damien Riegel Reviewed-by: Vivien Didelot Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck Documentation/watchdog/watchdog-kernel-api.txt | 8 ++++++ drivers/watchdog/watchdog_core.c | 37 ++++++++++++++++++++++++++ include/linux/watchdog.h | 9 +++++++ 3 files changed, 54 insertions(+) commit 0ebad1e5e5bae3e59125675d37a70d946f283fef Author: Damien Riegel Date: Mon Nov 16 12:28:11 2015 -0500 watchdog: sunxi_wdt: use core restart handler Get rid of the custom restart handler by using the one provided by the watchdog core. Signed-off-by: Damien Riegel Reviewed-by: Guenter Roeck Reviewed-by: Vivien Didelot Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/sunxi_wdt.c | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) commit c71f5cd25f946fe1eb13bb25230ce0a957c9ac16 Author: Damien Riegel Date: Mon Nov 16 12:28:10 2015 -0500 watchdog: s3c2410_wdt: use core restart handler Get rid of the custom restart handler by using the one provided by the watchdog core. Signed-off-by: Damien Riegel Reviewed-by: Guenter Roeck Reviewed-by: Vivien Didelot Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/s3c2410_wdt.c | 60 ++++++++++++++++++------------------------ 1 file changed, 25 insertions(+), 35 deletions(-) commit 80969a68ffed12f82e2a29908306ff43a6861a61 Author: Damien Riegel Date: Mon Nov 16 12:28:09 2015 -0500 watchdog: qcom-wdt: use core restart handler Get rid of the custom restart handler by using the one provided by the watchdog core. Signed-off-by: Damien Riegel Reviewed-by: Guenter Roeck Reviewed-by: Vivien Didelot Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/qcom-wdt.c | 49 ++++++++++++++++++--------------------------- 1 file changed, 19 insertions(+), 30 deletions(-) commit e86adc3f631bd9d773f1028d6d88c9f5a02b07a5 Author: Damien Riegel Date: Mon Nov 16 12:28:08 2015 -0500 watchdog: mtk_wdt: use core restart handler Get rid of the custom restart handler by using the one provided by the watchdog core. Signed-off-by: Damien Riegel Reviewed-by: Guenter Roeck Reviewed-by: Vivien Didelot Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/mtk_wdt.c | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) commit 46c17f0f91729404b3578570302db88039fee8b5 Author: Damien Riegel Date: Mon Nov 16 12:28:07 2015 -0500 watchdog: moxart_wdt: use core restart handler Get rid of the custom restart handler by using the one provided by the watchdog core. Signed-off-by: Damien Riegel Reviewed-by: Guenter Roeck Reviewed-by: Vivien Didelot Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/moxart_wdt.c | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) commit 1b6fd59ad810a5fe003521789e7d9e996883450a Author: Damien Riegel Date: Mon Nov 16 12:28:06 2015 -0500 watchdog: meson_wdt: use core restart handler Get rid of the custom restart handler by using the one provided by the watchdog core. Signed-off-by: Damien Riegel Reviewed-by: Guenter Roeck Reviewed-by: Vivien Didelot Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/meson_wdt.c | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) commit 2de4e5a67660b79535659f5961a10beaf551b49b Author: Damien Riegel Date: Mon Nov 16 12:28:05 2015 -0500 watchdog: lpc18xx_wdt: use core restart handler Get rid of the custom restart handler by using the one provided by the watchdog core. Signed-off-by: Damien Riegel Reviewed-by: Guenter Roeck Reviewed-by: Vivien Didelot Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/lpc18xx_wdt.c | 52 +++++++++++++++++------------------------- 1 file changed, 21 insertions(+), 31 deletions(-) commit 2d9d24755e7669ec39c946918038ce646e75a67a Author: Damien Riegel Date: Mon Nov 16 12:28:04 2015 -0500 watchdog: imx2_wdt: use core restart handler Get rid of the custom restart handler by using the one provided by the watchdog core. Signed-off-by: Damien Riegel Reviewed-by: Guenter Roeck Reviewed-by: Vivien Didelot Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/imx2_wdt.c | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) commit 0f10d9c57e56baaf90027bc8bda8ba9e033357e3 Author: Damien Riegel Date: Mon Nov 16 12:28:03 2015 -0500 watchdog: imgpdc_wdt: use core restart handler Get rid of the custom restart handler by using the one provided by the watchdog core. Signed-off-by: Damien Riegel Reviewed-by: Guenter Roeck Reviewed-by: Vivien Didelot Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/imgpdc_wdt.c | 34 ++++++++++++---------------------- 1 file changed, 12 insertions(+), 22 deletions(-) commit d3b081857cef5e25d53e5299a2816d1938dae553 Author: Damien Riegel Date: Mon Nov 16 12:28:02 2015 -0500 watchdog: digicolor_wdt: use core restart handler Get rid of the custom restart handler by using the one provided by the watchdog core. Signed-off-by: Damien Riegel Reviewed-by: Guenter Roeck Reviewed-by: Vivien Didelot Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/digicolor_wdt.c | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) commit f79781ceadf979e1dcfe366f18ca44f6bc78814f Author: Damien Riegel Date: Mon Nov 16 12:28:01 2015 -0500 watchdog: da9063_wdt: use core restart handler Get rid of the custom restart handler by using the one provided by the watchdog core. Signed-off-by: Damien Riegel Reviewed-by: Guenter Roeck Reviewed-by: Vivien Didelot Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/da9063_wdt.c | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) commit 65a4a1dc31ad9d73918971f1b89c617812c494bf Author: Damien Riegel Date: Mon Nov 16 12:28:00 2015 -0500 watchdog: bcm47xx_wdt: use core restart handler Get rid of the custom restart handler by using the one provided by the watchdog core. Signed-off-by: Damien Riegel Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/bcm47xx_wdt.c | 33 +++++++++++++-------------------- include/linux/bcm47xx_wdt.h | 1 - 2 files changed, 13 insertions(+), 21 deletions(-) commit 2165bf524da5f5e496d1cdb8c5afae1345ecce1e Author: Damien Riegel Date: Mon Nov 16 12:27:59 2015 -0500 watchdog: core: add restart handler support Many watchdog drivers implement the same code to register a restart handler. This patch provides a generic way to set such a function. The patch adds a new restart watchdog operation. If a restart priority greater than 0 is needed, the driver can call watchdog_set_restart_priority to set it. Suggested-by: Vivien Didelot Signed-off-by: Damien Riegel Reviewed-by: Guenter Roeck Reviewed-by: Vivien Didelot Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck Documentation/watchdog/watchdog-kernel-api.txt | 19 ++++++++++ drivers/watchdog/watchdog_core.c | 48 ++++++++++++++++++++++++++ include/linux/watchdog.h | 6 ++++ 3 files changed, 73 insertions(+) commit 9bac40cf28c9318f0b3eb6c81ce35f32581ef7b4 Author: Marek Szyprowski Date: Mon Nov 30 14:53:30 2015 +0100 drm/exynos: gem: remove old unused prototypes This patch removes old, unused function prototypes from exynos_drm_gem.h. Signed-off-by: Marek Szyprowski Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_gem.h | 28 ---------------------------- 1 file changed, 28 deletions(-) commit 8b704d8a3f5c9a923e99121b05b874a723a76e04 Author: Marek Szyprowski Date: Mon Nov 30 14:53:29 2015 +0100 drm/exynos: fimd: fix dma burst size setting for small plane size This patch fixes trashed display of buffers cropped to very small width. Even if DMA is unstable and causes tearing when changing the burst size, it is still better than displaying a garbage. Signed-off-by: Marek Szyprowski Reviewed-by: Daniel Stone Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_fimd.c | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) commit d16a11a006272ba3cad29f0bf2c087c28023249c Author: Marek Szyprowski Date: Mon Nov 30 14:53:28 2015 +0100 drm/exynos: fix clipping when scaling is enabled This patch fixes calculation of src x/y offset for negative crtc x/y values when scaling is enabled. This fixes possible IOMMU fault when scaling is enabled. Signed-off-by: Marek Szyprowski Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_plane.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit e463b0695a0d52e280c8c42668b9c118c6d06d82 Author: Marek Szyprowski Date: Mon Nov 30 14:53:27 2015 +0100 drm/exynos: mixer: use ratio precalculated in exynos_state Common plane code already calculates and checks for supported scalling modes, so additional code in mixer driver can be now removed. Signed-off-by: Marek Szyprowski Reviewed-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_mixer.c | 33 +++------------------------------ 1 file changed, 3 insertions(+), 30 deletions(-) commit 6178d3d1bbedd3fe08bb194272bc24f7f92282e7 Author: Marek Szyprowski Date: Mon Nov 30 14:53:26 2015 +0100 drm/exynos: add generic check for plane state This patch adds generic check for plane state - display area dimensions, so drivers can always assume that they get valid plane state to set. Signed-off-by: Marek Szyprowski Reviewed-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_drv.h | 3 +++ drivers/gpu/drm/exynos/exynos_drm_plane.c | 31 +++++++++++++++++++++++++++++++ drivers/gpu/drm/exynos/exynos_mixer.c | 3 +++ 3 files changed, 37 insertions(+) commit fd2d2fc2db28d3a2a18b7504e2d6d8b0753f90e8 Author: Marek Szyprowski Date: Mon Nov 30 14:53:25 2015 +0100 drm/exynos: introduce exynos_drm_plane_config structure This patch adds common structure for keeping plane configuration and capabilities data. This patch is inspired by similar code developed by Tobias Jakobi. Changelog v2: - fix vidi_win_types(i) call. vidi_win_types is not a function. Signed-off-by: Marek Szyprowski Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 18 ++++++++--- drivers/gpu/drm/exynos/exynos7_drm_decon.c | 23 +++++++++----- drivers/gpu/drm/exynos/exynos_drm_drv.h | 19 ++++++++++++ drivers/gpu/drm/exynos/exynos_drm_fimd.c | 25 ++++++++++----- drivers/gpu/drm/exynos/exynos_drm_plane.c | 34 +++++++++------------ drivers/gpu/drm/exynos/exynos_drm_plane.h | 7 ++--- drivers/gpu/drm/exynos/exynos_drm_vidi.c | 25 ++++++++++----- drivers/gpu/drm/exynos/exynos_mixer.c | 44 +++++++++++++++------------ 8 files changed, 121 insertions(+), 74 deletions(-) commit ab14420125c3cd1111f57731f0f9359c4e64d76a Author: Marek Szyprowski Date: Mon Nov 30 14:53:24 2015 +0100 drm/exynos: mixer: enable video overlay plane only when VP is available Video overlay plane should be registered only when suitable hardware sub-block (Video Processor) is available. Signed-off-by: Marek Szyprowski Reviewed-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_mixer.c | 3 +++ 1 file changed, 3 insertions(+) commit 2ee35d8b53dc7187c6814bf79a08334b9b75ed59 Author: Marek Szyprowski Date: Mon Nov 30 14:53:23 2015 +0100 drm/exynos: mixer: use crtc->state->adjusted_mode instead of crtc->mode This patch replaces usage of crtc->mode with crtc->state->adjusted_mode like it is already done in common plane code. Signed-off-by: Marek Szyprowski Reviewed-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_mixer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0114f404aefb767ff006b066ca2db4d43041ef0d Author: Marek Szyprowski Date: Mon Nov 30 14:53:22 2015 +0100 drm/exynos: introduce exynos_drm_plane_state structure This patch introduces exynos_drm_plane_state structure, which subclasses drm_plane_state and holds precalculated data suitable for configuring Exynos hardware. Signed-off-by: Marek Szyprowski Reviewed-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 21 ++--- drivers/gpu/drm/exynos/exynos7_drm_decon.c | 21 ++--- drivers/gpu/drm/exynos/exynos_drm_drv.h | 56 +++++++----- drivers/gpu/drm/exynos/exynos_drm_fimd.c | 33 +++---- drivers/gpu/drm/exynos/exynos_drm_plane.c | 125 +++++++++++++++++++------- drivers/gpu/drm/exynos/exynos_mixer.c | 61 +++++++------ 6 files changed, 197 insertions(+), 120 deletions(-) commit 0488f50e998dfa42a99a1e44882da408e71a09b2 Author: Marek Szyprowski Date: Mon Nov 30 14:53:21 2015 +0100 drm/exynos: move dma_addr attribute from exynos plane to exynos fb DMA address is a framebuffer attribute and the right place for it is exynos_drm_framebuffer not exynos_drm_plane. This patch also introduces helper function for getting dma address of the given framebuffer. Changelog v2: - use state->fb instead of plane->base.fb. Signed-off-by: Marek Szyprowski Reviewed-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 13 ++++++++----- drivers/gpu/drm/exynos/exynos7_drm_decon.c | 16 +++++++++------- drivers/gpu/drm/exynos/exynos_drm_drv.h | 3 --- drivers/gpu/drm/exynos/exynos_drm_fb.c | 16 ++++++---------- drivers/gpu/drm/exynos/exynos_drm_fb.h | 3 +-- drivers/gpu/drm/exynos/exynos_drm_fimd.c | 10 ++++++---- drivers/gpu/drm/exynos/exynos_drm_plane.c | 18 ------------------ drivers/gpu/drm/exynos/exynos_drm_vidi.c | 6 +++++- drivers/gpu/drm/exynos/exynos_mixer.c | 7 ++++--- 9 files changed, 39 insertions(+), 53 deletions(-) commit 42f8119c8ae22196ecbc8eb9cd839111f37afd2b Author: Marek Szyprowski Date: Mon Nov 30 14:53:20 2015 +0100 drm/exynos: exynos7-decon: remove excessive check Display area is already checked by exynos plane core, so there is no need for such check in driver code. Signed-off-by: Marek Szyprowski Reviewed-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos7_drm_decon.c | 10 ---------- 1 file changed, 10 deletions(-) commit 43f02a6cbb0286a0ea4e294f988546cb18d2a6d5 Author: Marek Szyprowski Date: Mon Nov 30 14:53:19 2015 +0100 drm/exynos: rotator: convert to common clock framework This driver was not used after introduction of common clock framework. This patch adds missing prepare/unprepare calls and allows to use it again with current kernel code. Signed-off-by: Marek Szyprowski Reviewed-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_rotator.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit aeefb36832e5bb744ac2394154d2240d5ec24e13 Author: Seung-Woo Kim Date: Mon Nov 30 14:53:18 2015 +0100 drm/exynos: gsc: add device tree support and remove usage of static mappings This patch adds device tree support for exynos_drm_gsc. This patch also fixed build issue on non-Exynos platforms, thus dependency on !ARCH_MULTIPLATFORM can be now removed. The driver cannot be used simultaneously with V4L2 Mem2Mem GScaller driver thought. Signed-off-by: Seung-Woo Kim Signed-off-by: Marek Szyprowski Acked-by: Krzysztof Kozlowski Signed-off-by: Inki Dae .../devicetree/bindings/media/exynos5-gsc.txt | 4 +++ drivers/gpu/drm/exynos/Kconfig | 2 +- drivers/gpu/drm/exynos/exynos_drm_gsc.c | 30 +++++++++++++++++++--- drivers/gpu/drm/exynos/regs-gsc.h | 4 +-- 4 files changed, 33 insertions(+), 7 deletions(-) commit c155fb56399fcbb2214051c1e07061311d02c300 Author: Seung-Woo Kim Date: Mon Nov 30 14:53:17 2015 +0100 drm/exynos: gsc: fix wrong pm_runtime state At probe time, gsc clock is not enabled, so pm_runtime state should be deactive. So this patch removes pm_runtime_set_active() from gsc_probe(). Signed-off-by: Seung-Woo Kim Signed-off-by: Marek Szyprowski Reviewed-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_gsc.c | 1 - 1 file changed, 1 deletion(-) commit 0b102aaaa15e82b01e8026714a8eb6497cc9cdfe Author: Seung-Woo Kim Date: Mon Nov 30 14:53:16 2015 +0100 drm/exynos: gsc: prepare and unprepare gsc clock Ths patch changes the clk_enable and clk_disable call in gsc driver into clk_prepare_enable and clk_disable_unprepare. Signed-off-by: Seung-Woo Kim Signed-off-by: Marek Szyprowski Reviewed-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_gsc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 25e9092acad917aa6c00c4ea03dbc572f7dcaac6 Author: Javier Martinez Canillas Date: Thu Dec 3 09:32:17 2015 -0300 ARM: dts: Use OF graph for DP to panel connection in exynos5800-peach-pi The DT binding for the Exynos DRM Display Port (DP) driver isn't consistent since it uses a phandle to describe the connection between the DP port and the display panel but uses the OF graph ports and endpoints to describe the connection betwen the DP port, a bridge chip and the panel. The Exynos DP driver and the DT binding have been changed to allow also to describe the DP port to panel connection using ports / endpoints (OF graph) so this patch changes the Exynos5800 Peach Pi DT to make it consistent with the Exynos5420 Peach Pit that has a eDP to LVDS chip and uses OF graph too. Signed-off-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski Signed-off-by: Inki Dae arch/arm/boot/dts/exynos5800-peach-pi.dts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) commit 2400fc14f72b91af5d08e74ed22a7920f8eb3094 Author: Inki Dae Date: Thu Dec 3 16:54:45 2015 +0900 dt-bindings: exynos-dp: update ports node binding for panel This patch updates a ports node binding for panel. With this, dp node can have a ports node which describes a remote endpoint node that can be connected to panel or bridge node. Changelog v2: - remove unnecessary properties and numbering. - update description about eDP device. Signed-off-by: Inki Dae Reviewed-by: Javier Martinez Canillas Acked-by: Rob Herring .../bindings/display/exynos/exynos_dp.txt | 41 +++++++++++++++++++--- 1 file changed, 37 insertions(+), 4 deletions(-) commit a9fa852886fd5a7ccec3b7e9eff75f85072f009c Author: Inki Dae Date: Thu Nov 26 21:34:18 2015 +0900 drm/exynos: dp: add of_graph dt binding support for panel This patch adds of_graph dt binding support for panel device and also keeps the backward compatibility. i.e., The dts file for Exynos5800 based peach pi board has a panel property so we need to keep the backward compatibility. Changelog v3: - bind only one of two nodes outbound - panel or bridge. Changelog v2: - return -EINVAL if getting a port node failed. Signed-off-by: Inki Dae Reviewed-by: Javier Martinez Canillas drivers/gpu/drm/exynos/exynos_dp_core.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) commit 69e048572effb1bac714a83a87d369d5ad12ad5c Author: Inki Dae Date: Mon Dec 7 20:45:35 2015 +0900 drm/exynos: decon: remove unused variables This patch just removes unused variables, i and ret. Signed-off-by: Inki Dae Reviewed-by: Javier Martinez Canillas drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 2 -- 1 file changed, 2 deletions(-) commit 1b256fa4cd2fc48fabff305dadc577938a49641c Author: Inki Dae Date: Thu Dec 3 14:35:23 2015 +0900 drm/exynos: dsi: modify a error type when getting a node failed This patch makes it to return -EINVAL instead of -ENXIO when getting a port or remote node failed. Signed-off-by: Inki Dae Reviewed-by: Javier Martinez Canillas drivers/gpu/drm/exynos/exynos_drm_dsi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 082ca313ca1a86131371cebb4e68656a00f2ef1b Author: Andrzej Hajda Date: Fri Nov 27 15:32:45 2015 +0100 drm/exynos: simplify sleep PM ops PM ops in exynos_drm_drv were split into two separate function as they were used also by drm device. Since PM ops have been removed from drm device, the functions can be merged together. Signed-off-by: Andrzej Hajda Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_drv.c | 76 +++++++++++++-------------------- 1 file changed, 30 insertions(+), 46 deletions(-) commit ba6e47795d836e1469d17006bd874645cdb5c679 Author: Inki Dae Date: Mon Nov 16 20:29:24 2015 +0900 drm/exynos: dsi: add runtime pm support This patch adds runtime pm interfaces to dsi driver. Each sub driver should control not only its own clocks and regulator but also its power domain. For this, it removes existing exynos_dsi_poweron/poweroff interfaces and uses runtime pm interfaces instead. Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_dsi.c | 147 ++++++++++++++++++-------------- 1 file changed, 81 insertions(+), 66 deletions(-) commit 681c801eb9f322873c67996720a138d534cb8ff9 Author: Gustavo Padovan Date: Mon Nov 2 20:58:02 2015 +0900 drm/exynos: add pm_runtime to DECON 7 Let pm_runtime handle the enabling/disabling of the device with proper refcnt instead of rely on specific flags to track the enabled state. Changelog v3: - revive suspended to keep current dpms mode Changelog v2: - Modify CONFIG_PM_SLEEP -> CONFIG_PM Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos7_drm_decon.c | 93 ++++++++++++++++++------------ 1 file changed, 55 insertions(+), 38 deletions(-) commit ebf3fd403b79ba6561bd1a4bb5a7cacc99da08e5 Author: Gustavo Padovan Date: Mon Nov 2 20:54:55 2015 +0900 drm/exynos: add pm_runtime to DECON 5433 Let pm_runtime handle the enabling/disabling of the device with proper refcnt instead of rely on specific flags to track the enabled state. Changelog v3: - Change CONFIG_PM_SLEEP -> CONFIG_PM Changelog v2: - no change Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 54 +++++++++++++++++++-------- 1 file changed, 39 insertions(+), 15 deletions(-) commit 415719768fdb0999255780d76f4d2586de97f380 Author: Gustavo Padovan Date: Fri Sep 4 17:15:49 2015 -0300 drm/exynos: add pm_runtime to FIMD Let pm_runtime handle the enabling/disabling of the device with proper refcnt instead of rely on specific flags to track the enabled state. Chnagelog v3: - Revive suspended varable to check the suspend status. Changelog v2: - Remove unnecessary changes which removed commit callback from decon drivers and modify CONFIG_PM_SLEEP -> CONFIG_PM Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_fimd.c | 54 ++++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 17 deletions(-) commit ccf034a9adb7aaca2ee8e5433f80191090f7d923 Author: Gustavo Padovan Date: Fri Sep 4 17:15:46 2015 -0300 drm/exynos: add pm_runtime to Mixer Let pm_runtime handle the enabling/disabling of the device with proper refcnt instead of rely on specific flags to track the enabled state. Changelog v2: - revive MXR_BIT_POWERED flag to keep current dpms mode. Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_mixer.c | 106 ++++++++++++++++++++-------------- 1 file changed, 64 insertions(+), 42 deletions(-) commit f28464c3320c8bc2bc4611c5a1578458c80588a2 Author: Gustavo Padovan Date: Mon Nov 2 20:39:18 2015 +0900 drm/exynos: add pm_runtime to HDMI Let pm_runtime handle the enabling/disabling of the device with proper refcnt instead of rely on specific flags to track the enabled state. Changelog v3: - revive powered flag to keep current dpms mode Changelog v2: - Mofidy CONFIG_PM_SLEEP -> CONFIG_PM Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_hdmi.c | 49 +++++++++++++++++++++++++++++------- 1 file changed, 40 insertions(+), 9 deletions(-) commit 613d3853c2aca6cfd990e8bd0b436833b6c76db6 Author: Gustavo Padovan Date: Mon Nov 2 20:32:36 2015 +0900 drm/exynos: add pm_runtime to DP Let pm_runtime handle the enabling/disabling of the device with proper refcnt instead of rely on specific flags to track the enabled state. Chnagelog v3: - revive dpms_mode to keep current dpms mode. Changelog v2: - no change Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_dp_core.c | 51 +++++++++++++++++++++++++++++++-- 1 file changed, 48 insertions(+), 3 deletions(-) commit 07c42703029244fb4b82593b0362d3f99c4268a4 Author: Gustavo Padovan Date: Mon Nov 2 20:00:03 2015 +0900 drm/exynos: do not start enabling DP at bind() phase The DP device will be properly enabled at the enable() call just after the bind call finishes. Changelog v2: - no change Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_dp_core.c | 107 +++++++++++++++++++++++--------- drivers/gpu/drm/exynos/exynos_dp_core.h | 1 + 2 files changed, 78 insertions(+), 30 deletions(-) commit b7282643bf46076b0898d9d6dfe2294db4616d15 Author: Luca Coelho Date: Thu Sep 17 23:44:14 2015 +0300 iwlwifi: replace d0i3_mode and wowlan_d0i3 with more generic variables The d0i3_mode variable is used to distinguish between transports that handle d0i3 entry during suspend by themselves (i.e. the slave transports) and those which rely on the op_mode layer to do it. The reason why the former do it by themselves is that they need to transition from d0i3 in runtime_suspend into d0i3 in system-wide suspend and this transition needs to happen before the op_mode's suspend flow is called. The wowlan_d0i3 element is also a bit confusing, because it just reflects the wowlan->any value for the trans to understand. This is a bit unclear in the code and not generic enough for future use. To make it clearer and to generalize the platform power mode settings, introduce two variables to indicate the platform power management modes used by the transport. Additionally, in order not to take too big a step in one patch, treat this new variables semantically in the same way as the old d0i3_mode element, introducing a iwl_mvm_enter_d0i3_on_suspend() function to help with that. This commit also adds the foundation for a new concept where the firmware configuration state (i.e. D0, D3 or D0i3) is abstracted from the platform PM mode we are in (i.e. runtime suspend or system-wide suspend). Signed-off-by: Luca Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/iwl-trans.h | 74 +++++++++++++++++++---- drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 40 ++++++++---- drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 16 +++-- drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 13 ++++ drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 7 +-- 5 files changed, 111 insertions(+), 39 deletions(-) commit 34672bb390fa73f1e201cc376291a5624dafab64 Author: Eliad Peller Date: Thu Dec 3 16:10:07 2015 +0200 iwlwifi: mvm: remove the vif parameter of iwl_mvm_configure_bcast_filter() Remove the vif parameter of iwl_mvm_configure_bcast_filter() as it's not being used. Signed-off-by: Eliad Peller Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 08f0d23d97dcb49ca7ba65a3fc714a5d28a91d0c Author: Eliad Peller Date: Thu Dec 10 15:47:11 2015 +0200 iwlwifi: avoid d0i3 commands when no/init ucode is loaded d0i3 commands are not supported in the init image, so take a reference to ensure we don't enter d0i3 during init image, and additional checks to prevent d0i3 commands when no fw image is loaded. Add a few WARN_ON_ONCE to the d0i3 enter/exit commands to ensure we send d0i3 commands only when the normal ucode is loaded. Signed-off-by: Eliad Peller Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c | 1 + drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 1 + drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 8 ++++++++ 3 files changed, 10 insertions(+) commit f3ed935de059b83394c3ecf2c64c93b57c8915fe Author: Raanan Avargil Date: Tue Oct 20 17:13:01 2015 +0300 e1000e: initial support for i219-LM (3) i219-LM (3) is a LOM that will be available on systems with the Lewisburg Platform Controller Hub (PCH) chipset from Intel. This patch provides the initial support for the device. Signed-off-by: Raanan Avargil Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/hw.h | 1 + drivers/net/ethernet/intel/e1000e/ich8lan.c | 43 +++++++++++++++++++++-------- drivers/net/ethernet/intel/e1000e/netdev.c | 1 + 3 files changed, 34 insertions(+), 11 deletions(-) commit 7b06a6909555ffb0140733cc4420222604140b27 Author: Jarod Wilson Date: Mon Oct 19 11:52:04 2015 -0400 igb: improve handling of disconnected adapters Clean up array_rd32 so that it uses igb_rd32 the same as rd32, per the suggestion of Alexander Duyck, and use io_addr in more places, so that we don't have the need to call E1000_REMOVED (which simply looks for a null hw_addr) nearly as much. Signed-off-by: Jarod Wilson Acked-by: Alexander Duyck Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/igb/e1000_regs.h | 3 +-- drivers/net/ethernet/intel/igb/igb_main.c | 5 ++--- 2 files changed, 3 insertions(+), 5 deletions(-) commit 36be0eb62e8292b1dbe6fdc2163196f9f69ca422 Author: Emmanuel Grumbach Date: Thu Nov 5 10:32:31 2015 +0200 iwlwifi: mvm: close the SP if we send fewer frames than expected in SP When we have holes in the BA window, there might be frames that have been ACKed between the read and the right pointers. This means that these frames won't be scheduled again by the SCD and the firwmare won't see them. This invalidates the number of frames we tell the firmware to send. When we detect this case, tell mac80211 to close the SP and to send an EOSP so that the firmware can be in sync. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 6 +++++- drivers/net/wireless/intel/iwlwifi/mvm/sta.h | 6 ++++++ drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 30 ++++++++++++++++++++++++++++ 3 files changed, 41 insertions(+), 1 deletion(-) commit 9b18d42dda985c99db4adde45bbdf7cd79a7525c Merge: 39bdb17 1b89452 Author: Emmanuel Grumbach Date: Sun Dec 13 09:41:59 2015 +0200 Merge tag 'mac80211-next-for-davem-2015-12-07' into next This pull request got a bit bigger than I wanted, due to needing to reshuffle and fix some bugs. I merged mac80211 to get the right base for some of these changes. * new mac80211 API for upcoming driver changes: EOSP handling, key iteration * scan abort changes allowing to cancel an ongoing scan * VHT IBSS 80+80 MHz support * re-enable full AP client state tracking after fixes * various small fixes (that weren't relevant for mac80211) * various cleanups commit 91190237df09348313aa8b3d390ea5d761117269 Merge: 1d72135 c9c9f1b Author: David S. Miller Date: Sun Dec 13 02:22:50 2015 -0500 Merge branch '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== 40GbE Intel Wired LAN Driver Updates 2015-12-12 This series contains updates to i40e and i40evf only. Jesse fixes some trivial static analyzer warnings where BIT() can be used instead of BIT_ULL(). Mitch fixes the virtual channel interface which was using incorrect semantics to remove MAC addresses and would leave incorrect filters active when using VLANs. Also fixes an issue that when VF's are created, the MAC address defaults to all zeros, indicating to the VF driver that it should use a random MAC address. However, the PF driver was incorrectly adding this zero MAC to the filter table, so check for a good address before adding the default filter. Adds a check to make sure that the Tx and Rx rings actually exist before dereferencing them to free resources. Re-classifies several messages which are really for debugging purposes, especially since the driver can fully recover from any of these. Fixed up the VF version strings to match the PF driver. Anjali adds a virtchnl offload to support the expanded version of TCP/UDP PCTYPES for RSS. Shannon fixes i40e to clean the whole MAC filter list when resetting after an intermediate add or delete push to the firmware. v2: added blank line after variable declaration in patch 9 based on feedback from Sergei Shtylyov ==================== Signed-off-by: David S. Miller commit be06998f96ecb93938ad2cce46c4289bf7cf45bc Author: Jan Beulich Date: Mon Oct 19 04:23:29 2015 -0600 igb: fix NULL derefs due to skipped SR-IOV enabling The combined effect of commits 6423fc3416 ("igb: do not re-init SR-IOV during probe") and ceee3450b3 ("igb: make sure SR-IOV init uses the right number of queues") causes VFs no longer getting set up, leading to NULL pointer dereferences due to the adapter's ->vf_data being NULL while ->vfs_allocated_count is non-zero. The first commit not only neglected the side effect of igb_sriov_reinit() that the second commit tried to account for, but also that of setting IGB_FLAG_HAS_MSIX, without which igb_enable_sriov() is effectively a no-op. Calling igb_{,re}set_interrupt_capability() as done here seems to address this, but I'm not sure whether this is better than sinply reverting the other two commits. Signed-off-by: Jan Beulich Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/igb/igb_main.c | 7 +++++++ 1 file changed, 7 insertions(+) commit d17c7868b2f8e329dcee4ecd2f5d16cfc9b26ac8 Author: Raanan Avargil Date: Thu Oct 15 15:59:49 2015 +0300 e1000e: Increase timeout of polling bit RSPCIPHY Due to timing changes to the ME firmware in Skylake, this timer needs to be increased to 300ms. Signed-off-by: Raanan Avargil Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/ich8lan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b77ac46bbae862dcb3f51296825c940404c69b0f Author: Dmitry Fleytman Date: Tue Oct 13 12:48:18 2015 +0300 e1000e: fix division by zero on jumbo MTUs This patch fixes possible division by zero in receive interrupt handler when working without adaptive interrupt moderation. The adaptive interrupt moderation mechanism is typically disabled on jumbo MTUs. Signed-off-by: Dmitry Fleytman Signed-off-by: Leonid Bloch Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/netdev.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 13a87c124ec8a717b557cd8bc08693af021c8812 Author: Janusz Wolak Date: Mon Sep 28 23:40:19 2015 +0200 e1000: Elementary checkpatch warnings and checks removed Signed-off-by: Janusz Wolak Acked-by: Jesse Brandeburg Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000/e1000_hw.c | 179 ++++++++++++++-------------- 1 file changed, 89 insertions(+), 90 deletions(-) commit c619581a7903fadccb900d1d497d2366fdf7da9d Author: Jean Sacren Date: Sat Sep 19 05:08:47 2015 -0600 e1000: get rid of duplicate exit path By using goto statement, we can achieve sharing the same exit path so that code duplication could be minimized. Signed-off-by: Jean Sacren Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000/e1000_hw.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit f03fed668a9193036db0258229af87e9ba46ed5e Author: Jean Sacren Date: Sat Sep 19 05:08:46 2015 -0600 e1000: fix kernel-doc argument being missing Due to historical reason, 'phy_data' has never been included in the kernel doc. Fix it so that the requirement could be fulfilled. Signed-off-by: Jean Sacren Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000/e1000_hw.c | 1 + 1 file changed, 1 insertion(+) commit 5a5e889c80cef7513a40143ee1e474acccdee13b Author: Jean Sacren Date: Sat Sep 19 05:08:42 2015 -0600 e1000e: clean up the local variable The local variable 'ret' doesn't serve much purpose so we might as well clean it up. Signed-off-by: Jean Sacren Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/netdev.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit b6fad9f9fc5d4deb1cb50173bd729de26570fbbe Author: Jean Sacren Date: Sat Sep 19 05:08:41 2015 -0600 e1000: fix a typo in the comment Use 'That' to replace 'The' so that the comment would make sense. Signed-off-by: Jean Sacren Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000/e1000_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4e01f3a802b5910b25814e1d0fd05907edffed6f Author: Jean Sacren Date: Sat Sep 19 05:08:40 2015 -0600 e1000: clean up the checking logic The checking logic needed some clean-up work, so we rewrite it by checking for break first. With that change in place, we can even move the second check for goto statement outside of the loop. As this is merely a cleanup, no functional change is involved. The questionable 'tmp != 0xFF' is intentionally left alone. Mark Rustad and Alexander Duyck contributed to this patch. CC: Mark Rustad CC: Alex Duyck Signed-off-by: Jean Sacren Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000/e1000_main.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 08c991297582114a6e1220f913eec91789c4eac6 Author: Todd Fujinaka Date: Fri Sep 18 15:43:51 2015 -0700 igb: use the correct i210 register for EEMNGCTL The i210 has two EEPROM access registers that are located in non-standard offsets: EEARBC and EEMNGCTL. EEARBC was fixed previously and EEMNGCTL should also be corrected. Reported-by: Roman Hodek Signed-off-by: Todd Fujinaka Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/igb/e1000_82575.c | 1 + drivers/net/ethernet/intel/igb/e1000_i210.c | 27 +++++++++++++++++++++++++++ drivers/net/ethernet/intel/igb/e1000_i210.h | 1 + drivers/net/ethernet/intel/igb/e1000_regs.h | 1 + 4 files changed, 30 insertions(+) commit a48954c88b5a9ec0a8323fff1d47a6affba31d61 Author: Janusz Wolak Date: Thu Sep 17 23:34:29 2015 +0200 e1000: Remove checkpatch coding style errors Signed-off-by: Janusz Wolak Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000/e1000_hw.c | 16 ++-- drivers/net/ethernet/intel/e1000/e1000_main.c | 116 +++++++++++++++----------- 2 files changed, 72 insertions(+), 60 deletions(-) commit 73bf8048d7c86a20a59d427e55deb1a778e94df7 Author: Jarod Wilson Date: Thu Sep 10 15:37:50 2015 -0400 igb: don't unmap NULL hw_addr I've got a startech thunderbolt dock someone loaned me, which among other things, has the following device in it: 08:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03) This hotplugs just fine (kernel 4.2.0 plus a patch or two here): [ 863.020315] igb: Intel(R) Gigabit Ethernet Network Driver - version 5.2.18-k [ 863.020316] igb: Copyright (c) 2007-2014 Intel Corporation. [ 863.028657] igb 0000:08:00.0: enabling device (0000 -> 0002) [ 863.062089] igb 0000:08:00.0: added PHC on eth0 [ 863.062090] igb 0000:08:00.0: Intel(R) Gigabit Ethernet Network Connection [ 863.062091] igb 0000:08:00.0: eth0: (PCIe:2.5Gb/s:Width x1) e8:ea:6a:00:1b:2a [ 863.062194] igb 0000:08:00.0: eth0: PBA No: 000200-000 [ 863.062196] igb 0000:08:00.0: Using MSI-X interrupts. 4 rx queue(s), 4 tx queue(s) [ 863.064889] igb 0000:08:00.0 enp8s0: renamed from eth0 But disconnecting it is another story: [ 1002.807932] igb 0000:08:00.0: removed PHC on enp8s0 [ 1002.807944] igb 0000:08:00.0 enp8s0: PCIe link lost, device now detached [ 1003.341141] ------------[ cut here ]------------ [ 1003.341148] WARNING: CPU: 0 PID: 199 at lib/iomap.c:43 bad_io_access+0x38/0x40() [ 1003.341149] Bad IO access at port 0x0 () [ 1003.342767] Modules linked in: snd_usb_audio snd_usbmidi_lib snd_rawmidi igb dca firewire_ohci firewire_core crc_itu_t rfcomm ctr ccm arc4 iwlmvm mac80211 fuse xt_CHECKSUM ipt_MASQUERADE nf_nat_masquerade_ipv4 tun ip6t_rpfilter ip6t_REJECT nf_reject_ipv6 ipt_REJECT nf_reject_ipv4 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 iptable_filter bnep dm_mirror dm_region_hash dm_log dm_mod coretemp x86_pkg_temp_thermal intel_powerclamp kvm_intel snd_hda_codec_hdmi kvm crct10dif_pclmul crc32_pclmul ghash_clmulni_intel drbg [ 1003.342793] ansi_cprng aesni_intel hp_wmi aes_x86_64 iTCO_wdt lrw iTCO_vendor_support ppdev gf128mul sparse_keymap glue_helper ablk_helper cryptd snd_hda_codec_realtek snd_hda_codec_generic microcode snd_hda_intel uvcvideo iwlwifi snd_hda_codec videobuf2_vmalloc videobuf2_memops snd_hda_core videobuf2_core snd_hwdep btusb v4l2_common btrtl snd_seq btbcm btintel videodev cfg80211 snd_seq_device rtsx_pci_ms bluetooth pcspkr input_leds i2c_i801 media parport_pc memstick rfkill sg lpc_ich snd_pcm 8250_fintek parport joydev snd_timer snd soundcore hp_accel ie31200_edac mei_me lis3lv02d edac_core input_polldev mei hp_wireless shpchp tpm_infineon sch_fq_codel nfsd auth_rpcgss nfs_acl lockd grace sunrpc ip_tables autofs4 xfs libcrc32c sd_mod sr_mod cdrom rtsx_pci_sdmmc mmc_core crc32c_intel serio_raw rtsx_pci [ 1003.342822] nouveau ahci libahci mxm_wmi e1000e xhci_pci hwmon ptp drm_kms_helper pps_core xhci_hcd ttm wmi video ipv6 [ 1003.342839] CPU: 0 PID: 199 Comm: kworker/0:2 Not tainted 4.2.0-2.el7_UNSUPPORTED.x86_64 #1 [ 1003.342840] Hardware name: Hewlett-Packard HP ZBook 15 G2/2253, BIOS M70 Ver. 01.07 02/26/2015 [ 1003.342843] Workqueue: pciehp-3 pciehp_power_thread [ 1003.342844] ffffffff81a90655 ffff8804866d3b48 ffffffff8164763a 0000000000000000 [ 1003.342846] ffff8804866d3b98 ffff8804866d3b88 ffffffff8107134a ffff8804866d3b88 [ 1003.342847] ffff880486f46000 ffff88046c8a8000 ffff880486f46840 ffff88046c8a8098 [ 1003.342848] Call Trace: [ 1003.342852] [] dump_stack+0x45/0x57 [ 1003.342855] [] warn_slowpath_common+0x8a/0xc0 [ 1003.342857] [] warn_slowpath_fmt+0x46/0x50 [ 1003.342859] [] ? pci_disable_msix+0x3e/0x50 [ 1003.342860] [] bad_io_access+0x38/0x40 [ 1003.342861] [] pci_iounmap+0x27/0x40 [ 1003.342865] [] igb_remove+0xc7/0x160 [igb] [ 1003.342867] [] pci_device_remove+0x3f/0xc0 [ 1003.342869] [] __device_release_driver+0x96/0x130 [ 1003.342870] [] device_release_driver+0x23/0x30 [ 1003.342871] [] pci_stop_bus_device+0x94/0xa0 [ 1003.342872] [] pci_stop_bus_device+0x3d/0xa0 [ 1003.342873] [] pci_stop_bus_device+0x3d/0xa0 [ 1003.342874] [] pci_stop_and_remove_bus_device+0x16/0x30 [ 1003.342876] [] pciehp_unconfigure_device+0x9b/0x180 [ 1003.342877] [] pciehp_disable_slot+0x43/0xb0 [ 1003.342878] [] pciehp_power_thread+0x8d/0xb0 [ 1003.342885] [] process_one_work+0x152/0x3d0 [ 1003.342886] [] worker_thread+0x11a/0x460 [ 1003.342887] [] ? process_one_work+0x3d0/0x3d0 [ 1003.342890] [] kthread+0xc9/0xe0 [ 1003.342891] [] ? kthread_create_on_node+0x180/0x180 [ 1003.342893] [] ret_from_fork+0x3f/0x70 [ 1003.342894] [] ? kthread_create_on_node+0x180/0x180 [ 1003.342895] ---[ end trace 65a77e06d5aa9358 ]--- Upon looking at the igb driver, I see that igb_rd32() attempted to read from hw_addr and failed, so it set hw->hw_addr to NULL and spit out the message in the log output above, "PCIe link lost, device now detached". Well, now that hw_addr is NULL, the attempt to call pci_iounmap is obviously not going to go well. As suggested by Mark Rustad, do something similar to what ixgbe does, and save a copy of hw_addr as adapter->io_addr, so we can still call pci_iounmap on it on teardown. Additionally, for consistency, make the pci_iomap call assignment directly to io_addr, so map and unmap match. Signed-off-by: Jarod Wilson Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/igb/igb.h | 2 ++ drivers/net/ethernet/intel/igb/igb_main.c | 10 ++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) commit 9eab46b7cb8d0b0dcf014bf7b25e0e72b9e4d929 Author: Dmitriy Vyukov Date: Tue Sep 8 10:52:44 2015 +0200 e1000: fix data race between tx_ring->next_to_clean e1000_clean_tx_irq cleans buffers and sets tx_ring->next_to_clean, then e1000_xmit_frame reuses the cleaned buffers. But there are no memory barriers when buffers gets recycled, so the recycled buffers can be corrupted. Use smp_store_release to update tx_ring->next_to_clean and smp_load_acquire to read tx_ring->next_to_clean to properly hand off buffers from e1000_clean_tx_irq to e1000_xmit_frame. The data race was found with KernelThreadSanitizer (KTSAN). Signed-off-by: Dmitry Vyukov Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000/e1000.h | 7 +++++-- drivers/net/ethernet/intel/e1000/e1000_main.c | 5 ++++- 2 files changed, 9 insertions(+), 3 deletions(-) commit 18f7ce5412027232890143ccfae23668d0872d27 Author: Todd Fujinaka Date: Wed Sep 2 16:54:20 2015 -0700 igb: add 88E1543 initialization code Initialize the 88E1543 PHY. Signed-off-by: Todd Fujinaka Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/igb/e1000_82575.c | 7 ++ drivers/net/ethernet/intel/igb/e1000_defines.h | 1 + drivers/net/ethernet/intel/igb/e1000_phy.c | 94 ++++++++++++++++++++++++++ drivers/net/ethernet/intel/igb/e1000_phy.h | 1 + 4 files changed, 103 insertions(+) commit e09b89069ff9e3877bdbca8e64da05cde88bc3a2 Author: Joern Engel Date: Thu Jul 23 14:54:34 2015 -0700 e1000: make eeprom read/write scheduler friendly Code was responsible for ~150ms scheduler latencies. Signed-off-by: Joern Engel Signed-off-by: Spencer Baugh Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000/e1000_hw.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit 39bdb17ebb5bd7a5c8a231d7cac4a4d5ccc58149 Author: Sharon Dvir Date: Thu Oct 15 18:18:09 2015 +0300 iwlwifi: update host command messages to new format Host commands now have a group id, express this in printed messages. Signed-off-by: Sharon Dvir Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/dvm/agn.h | 9 - drivers/net/wireless/intel/iwlwifi/dvm/debugfs.c | 4 +- drivers/net/wireless/intel/iwlwifi/dvm/lib.c | 2 +- drivers/net/wireless/intel/iwlwifi/dvm/main.c | 94 ++++++++- drivers/net/wireless/intel/iwlwifi/dvm/rx.c | 87 +------- drivers/net/wireless/intel/iwlwifi/iwl-trans.c | 60 +++++- drivers/net/wireless/intel/iwlwifi/iwl-trans.h | 34 +++- drivers/net/wireless/intel/iwlwifi/mvm/fw-api.h | 5 + drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 222 ++++++++++++--------- drivers/net/wireless/intel/iwlwifi/pcie/internal.h | 10 - drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 5 +- drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 4 +- drivers/net/wireless/intel/iwlwifi/pcie/tx.c | 31 +-- 13 files changed, 345 insertions(+), 222 deletions(-) commit 92fe83430b899b786c837e5b716a328220d47ae5 Author: Emmanuel Grumbach Date: Tue Dec 1 13:45:37 2015 +0200 iwlwifi: uninline iwl_trans_send_cmd This function got too big to be inlined. Uninline it. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/iwl-trans.c | 33 +++++++++++++++++++++++++ drivers/net/wireless/intel/iwlwifi/iwl-trans.h | 34 ++------------------------ 2 files changed, 35 insertions(+), 32 deletions(-) commit 156f92f2b4711a0e8478c596557a1bd5ca69b02d Author: Emmanuel Grumbach Date: Tue Nov 24 14:55:18 2015 +0200 iwlwifi: block the queues when we send ADD_STA for uAPSD We send an ADD_STA to instruct the firmware to release frames despite the peer being in PS. Since the ADD_STA command and the Tx frame that comes immediately afterwards can be reordered by the DMA engine, we need to block the Tx queues until the firmware replies with the ADD_STA response. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 13 +++++++++++++ drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 7 ++++++- 2 files changed, 19 insertions(+), 1 deletion(-) commit dcbb4746286abe50300deef1858cfd6dc1b9c198 Author: Emmanuel Grumbach Date: Tue Nov 24 15:17:37 2015 +0200 iwlwifi: trans: support a callback for ASYNC commands This allows the op_mode to request from the transport to call a callback when an ASYNC commands is completed by the firmware. The same callback will be called for all the commands. Pass the command whose response triggers the callback as a parameter to the callback itself. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/iwl-op-mode.h | 11 +++++++++++ drivers/net/wireless/intel/iwlwifi/iwl-trans.h | 7 +++++++ drivers/net/wireless/intel/iwlwifi/pcie/tx.c | 7 +++---- 3 files changed, 21 insertions(+), 4 deletions(-) commit 0cd58eaab1482ab75800f68cd0033286232827f1 Author: Emmanuel Grumbach Date: Tue Nov 24 13:24:24 2015 +0200 iwlwifi: pcie: allow the op_mode to block the tx queues In certain flows (see next patches), the op_mode may need to block the Tx queues for a short period. Provide an API for that. The transport is in charge of counting the number of times the queues are blocked since the op_mode may block the queues several times in a row before unblocking them. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/iwl-trans.h | 16 +++++++++++++ drivers/net/wireless/intel/iwlwifi/pcie/internal.h | 1 + drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 28 ++++++++++++++++++++++ drivers/net/wireless/intel/iwlwifi/pcie/tx.c | 4 +++- 4 files changed, 48 insertions(+), 1 deletion(-) commit 3f50a69077b5b8086fd16cfa0b71138082126a69 Author: Eliad Peller Date: Sun Nov 15 15:44:17 2015 +0200 iwlwifi: mvm: check iwl_mvm_wowlan_config_key_params() return value commit 9a4c830007817e ("iwlwifi: mvm: refactor d3 key update functions") refactored some code into iwl_mvm_wowlan_config_key_params() function, but the return value was never checked, and not all the function flows returned valid values. fix it. Fixes: ac8ef0ce38de ("iwlwifi: mvm: refactor d3 key update functions") Signed-off-by: Eliad Peller Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 305d236e83b664e0c1e1e29d06f8780fdd311fd4 Author: Eliad Peller Date: Wed Dec 9 16:33:20 2015 +0200 iwlwifi: mvm: cleanup roc te on restart cleanup iwl_mvm_restart_cleanup() calls ieee80211_remain_on_channel_expired() on cleanup, but it doesn't clean the actual roc time events, resulting in failure of further ROC attempts. Refactor iwl_mvm_stop_roc() a bit, and add a new function to only cleanup the roc time events (without sending further commands). Signed-off-by: Eliad Peller Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 1 + .../net/wireless/intel/iwlwifi/mvm/time-event.c | 38 ++++++++++++++-------- .../net/wireless/intel/iwlwifi/mvm/time-event.h | 1 + 3 files changed, 27 insertions(+), 13 deletions(-) commit 95a451c5e2eff812d572ee289a92cc5d38cc7e1c Author: Dan Carpenter Date: Wed Dec 9 13:26:08 2015 +0300 iwlwifi: mvm: remove an extra tab Smatch prints a static checker warning here: drivers/net/wireless/intel/iwlwifi/mvm/fw-dbg.c:386 iwl_dump_prph() warn: curly braces intended? Curly braces are NOT intended, the extra tab was added by mistake in commit 1a616dd2f171 ('iwlwifi: dump prph registers in a common place for all transports'). type=cleanup Signed-off-by: Dan Carpenter Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/fw-dbg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 07abbc5068d00b879d71099ed2e383e7b2ee3116 Author: Johannes Berg Date: Fri Apr 17 16:39:12 2015 +0200 iwlwifi: dvm: advertise NETIF_F_SG If the transport supports it, advertise NETIF_F_SG to mac80211 to be able to use frag SKBs. This will already improve performance by allowing software GSO to be used. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/dvm/mac80211.c | 3 +++ 1 file changed, 3 insertions(+) commit 2d7cf5497cca77c16145c9ad06ae5aee1e497c2e Author: Johannes Berg Date: Fri Apr 17 16:39:12 2015 +0200 iwlwifi: mvm: advertise NETIF_F_SG If the transport supports it, advertise NETIF_F_SG to mac80211 to be able to use frag SKBs. This will already improve performance by allowing software GSO to be used. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 3 +++ 1 file changed, 3 insertions(+) commit e8b3f7b6e746e5a850d243e1e11d83d2163e16e4 Author: Eyal Shapira Date: Thu Nov 19 18:37:31 2015 +0200 iwlwifi: mvm: rs: fix a potential out of bounds access Klocwork pointed these out. There is a theoretical possibility that rate->index might be set to IWL_RATE_INVALID (15). This could trigger an out of bounds access on ht_vht_rates or legacy_rates arrays. Fix it by adding some checks. Signed-off-by: Eyal Shapira Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/rs.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 355346ba3050f42dc33663d7dd6cba055ba31924 Author: Avraham Stern Date: Thu Nov 26 11:22:33 2015 +0200 iwlwifi: mvm: configure scheduled scan according to traffic conditions Change scan configuration (dwell time, suspend time etc.) according to traffic conditions. This is useful for scans that are managed by the FW (e.g. scheduled scan). Signed-off-by: Avraham Stern Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 4 +++ drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 10 +++++- drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 43 +++++++++++------------ 3 files changed, 34 insertions(+), 23 deletions(-) commit cf0cda191074fba464999ef29eb654cdab909e66 Author: Liad Kaufman Date: Thu Sep 24 10:44:12 2015 +0200 iwlwifi: mvm: set default new STA as non-aggregated When sending the first ADD_STA HCMD for a STA, the %add_modify field indicates an addition of a STA and not a modification of one. In such a case, all fields of the HCMD are used to initialize the corresponding fields in the FW, regardless of what bits are set in %modify_mask. Set the %tid_disable_tx field to mvm_sta->tid_disable_agg in iwl_mvm_sta_send_to_fw(). If the STA is only updated this will have no effect, but if it is added - it will make sure the STA starts with the correct queues - if any - configured as non-aggregated by default (until told otherwise). Signed-off-by: Liad Kaufman Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 2 ++ 1 file changed, 2 insertions(+) commit 99319b8c23f183cdc7a0652ed40f879f82cf8941 Author: Gregory Greenman Date: Tue Nov 24 19:13:27 2015 +0200 iwlwifi: mvm: add an option to start rs from HT/VHT rates Extend the configurable option of setting initial rate to RSSI based. Make the initial rate to be set to VHT/HT SISO or legacy depending on the AP capabilities. Signed-off-by: Gregory Greenman Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/rs.c | 67 ++++++++++++++++++++++------- 1 file changed, 52 insertions(+), 15 deletions(-) commit c9c9f1ba75fa1260a9087ba229559175cd4a2b40 Author: Catherine Sullivan Date: Thu Nov 19 11:34:25 2015 -0800 i40e/i40evf: Bump i40e to 1.4.8 and i40evf to 1.4.4 Bump. Change-ID: I2b8976bde070244de144e2ed8990b083de39f332 Signed-off-by: Catherine Sullivan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_main.c | 2 +- drivers/net/ethernet/intel/i40evf/i40evf_main.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 69ebe955be358fe8f8c73b3aa7395760f337845f Author: Mitch Williams Date: Thu Nov 19 11:34:24 2015 -0800 i40evf: change version string generation Generate version strings like the PF driver does. This gives us more flexibility to add suffixes to the version string at build time. Change-ID: I0a5ca0783dd8fb849516bfc1e37ea070127847bd Signed-off-by: Mitch Williams Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40evf/i40evf_main.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit f11999987bc0b5559ab56dedc6f4ca32fab5438a Author: Shannon Nelson Date: Thu Nov 19 11:34:23 2015 -0800 i40e: clean whole mac filter list Clean the whole mac filter list when resetting after an intermediate add or delete push to the firmware. The code had evolved from using a list from the stack to a heap allocation, but the memset() didn't follow the change correctly. This now cleans the whole list rather that just part of the first element. Change-ID: I4cd03d5a103b7407dd8556a3a231e800f2d6f2d5 Reported-by: Rasmus Villemoes Signed-off-by: Shannon Nelson Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_main.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) commit b9eacec3e66cd7e3db11882474024d1586d1f832 Author: Anjali Singhai Jain Date: Thu Nov 19 11:34:22 2015 -0800 i40e/i40evf: Add a new offload for RSS PCTYPE V2 for X722 X722 supports Expanded version of TCP, UDP PCTYPES for RSS. Add a Virtchnl offload to support this. Without this patch with X722 devices, driver will set wrong PCTYPES for VF and UDP flows will not fan out. Change-ID: I04fe4988253b7cd108c9179a643c969764efcb76 Signed-off-by: Anjali Singhai Jain Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_virtchnl.h | 1 + drivers/net/ethernet/intel/i40evf/i40e_virtchnl.h | 1 + drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c | 4 +++- 3 files changed, 5 insertions(+), 1 deletion(-) commit 75eb73c127beaccf1b2c825f5d583ebca17ab2ba Author: Mitch Williams Date: Thu Nov 19 11:34:21 2015 -0800 i40e: hush little warnings These messages seem big and scary, but they're really not. The driver can fully recover from any of these. The overflow error in particular can happen when enabling a bunch of VFs and the VF driver is not blacklisted. Since these messages are really for debugging purposes, reclassify them as such. Change-ID: I628d0f5e135e7063450ba05393a50b7af23aa6d7 Signed-off-by: Mitch Williams Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_main.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) commit 00ada50d8989ed14b160d831d25fe09bf9ea9115 Author: Michal Kosiarz Date: Thu Nov 19 11:34:20 2015 -0800 i40e: Opcode and structures required by OEM Post Update AQ command and add new NVM arq message This is a part of implementation which contains data structures and opcode for new AQ command. There's a new ARQ message that gets sent near the end of the NVM update process that the driver should recognize and ignore, rather than printing an Unknown Event error. Change-ID: I04830a5bcae14823e16b9424cc4165e169336c1f Signed-off-by: Michal Kosiarz Acked-by: Shannon Nelson Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h | 21 +++++++++++++++++++++ drivers/net/ethernet/intel/i40e/i40e_main.c | 1 + drivers/net/ethernet/intel/i40evf/i40e_adminq_cmd.h | 21 +++++++++++++++++++++ 3 files changed, 43 insertions(+) commit 6621e4b2518a2ea5e1f3aab041bfbb0e4fc91239 Author: Kamil Krawczyk Date: Thu Nov 19 11:34:19 2015 -0800 i40e: use explicit cast from u16 to u8 Current implementation generates compilation warnings. Change-ID: Icceefb50fe62aefaf90a64afb7192e08355a4ec5 Signed-off-by: Kamil Krawczyk Acked-by: Shannon Nelson Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_lan_hmc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fdb47ae87af537b24977a03bc69cfe1c5c55ca62 Author: Mitch Williams Date: Thu Nov 19 11:34:18 2015 -0800 i40evf: check rings before freeing resources If the driver gets unloaded during reset recovery, it's possible that it will attempt to free resources when they're already free. Add a check to make sure that the Tx and Rx rings actually exist before dereferencing them to free resources. Change-ID: I4d2b7e9ede49f634d421a4c5deaa5446bc755eee Signed-off-by: Mitch Williams Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40evf/i40evf_main.c | 6 ++++++ 1 file changed, 6 insertions(+) commit b7b713a8eaf325607d37229f024ad0b9f3e7f320 Author: Mitch Williams Date: Thu Nov 19 11:34:17 2015 -0800 i40e: don't add zero MAC filter When VFs are created, the MAC address defaults to all zeros, indicating to the VF driver that it should use a random MAC address. However, the PF driver was incorrectly adding this zero MAC to the filter table, along with the VF's randomly generated MAC address. Check for a good address before adding the default filter. While we're at it, make the error message a bit more useful. Change-ID: Ia100947d68140e0f73a19ba755cbffc3e79a8fcf Signed-off-by: Mitch Williams Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit b36e9ab59b7e3a5b14bf88dc0536e6579db7b54d Author: Mitch Williams Date: Thu Nov 19 11:34:16 2015 -0800 i40e: properly delete VF MAC filters The virtual channel interface was using incorrect semantics to remove MAC addresses, which would leave incorrect filters active when using VLANs. To correct this, add a new function that unconditionally removes MAC addresses from all VLANs, and call this function when the VF requests a MAC filter removal. Change-ID: I69826908ae4f6c847f5bf9b32f11faa760189c74 Signed-off-by: Mitch Williams Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e.h | 2 ++ drivers/net/ethernet/intel/i40e/i40e_main.c | 36 ++++++++++++++++++++++ drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 8 +++-- 3 files changed, 44 insertions(+), 2 deletions(-) commit 75f5cea9ddef6a8f8cedb86c0ac8c696b258824d Author: Jesse Brandeburg Date: Thu Nov 19 11:34:14 2015 -0800 i40e: chomp the BIT(_ULL) BIT_ULL was used on a u32 or less where it can simply be BIT. This fixes some trivial static analyzer warnings. Chomp, chomp. Tested with objdump of binary before and after, no changes to code. Change-ID: I6245e9abd447192dbde1669c747aeb2878126c7d Signed-off-by: Jesse Brandeburg Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_main.c | 30 ++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) commit f889beaaab1ce2ff9d018302359abb345f49be29 Author: Steve Twiss Date: Sat Dec 12 20:43:35 2015 -0800 Input: da9063 - report KEY_POWER instead of KEY_SLEEP during power key-press Stop reporting KEY_SLEEP for a short key-press and report KEY_POWER instead This change applies to both DA9063 and DA9062 ONKEY drivers. A previous application used for testing by the developer required a KEY_SLEEP and KEY_POWER input_report_key event to distinguish between a short and long key-press of the power key. This is not the general convention and the typical solution is for KEY_POWER to be used in both cases: suspend and S/W power off. Signed-off-by: Steve Twiss Signed-off-by: Dmitry Torokhov drivers/input/misc/da9063_onkey.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 1d72135dd6be396bf724cd962555758c0277db93 Merge: bb35a6e d342800 Author: David S. Miller Date: Sat Dec 12 19:25:21 2015 -0500 Merge branch '10GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== 10GbE Intel Wired LAN Driver Updates 2015-12-12 This series contains updates to ixgbe only. Alex Duyck provides almost off of the changes in this series. First, add a check to make sure mac_table was actually allocated and is not NULL to ensure we do not get a NULL pointer dereference further down the line. Fixed SR-IOV VLAN pool configuration since the code for checking the PF bit in ixgbe_set_vf_vlan_msg() was using the wrong offset. Cleanup/simplify the logic for setting the VFTA register by removing the number of conditional checks needed. Fixed a number of issues within the VLVF and VLFB configuration by simplifying the code. Added support for bypassing the VLVF entry creation when the PF is adding a new VLAN. Reduced the complexity of the search function used for finding a VLVF entry associated with a given VLAN ID. Added support for VLAN promiscuous with SR-IOV enabled by setting all the bits in the VFTA and all of the VLVF bits associated with teh pool belonging to the PF, in addition to cleaning up those same bits in the event of promiscuous mode being disabled. Fixed and issue where we ran the risk of leaking an address into pool 0 which really belongs to VF 0 when SR-IOV is enabled. Emil fixes an issue with some X550 devices which can connect at 2.5Gbps, but only with certain link partners during fail-over, so to avoid confusion, we do not report it as supported. ==================== Signed-off-by: David S. Miller commit bb35a6ef7da492e7df1fe8772716ff88c172b4cc Author: Daniel Borkmann Date: Thu Dec 10 22:33:49 2015 +0100 bpf, inode: allow for rename and link ops Add support for renaming and hard links to the fs. Most of this can be implemented by using simple library operations under the same constraints that we don't use a reserved name like elsewhere. Linking can be useful to share/manage things like maps across subsystem users. It works within the file system boundary, but is not allowed for directories. Symbolic links are explicitly not implemented here, as it can be better done already by doing bind mounts inside bpf fs to set up shared directories f.e. useful when using volumes in docker containers that map a private working directory into /sys/fs/bpf/ which contains itself a bind mounted path from the host's /sys/fs/bpf/ mount that is shared among multiple containers. For single maps instead of whole directory, hard links can be easily used to do the same. Signed-off-by: Daniel Borkmann Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller kernel/bpf/inode.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 97896195b3f7a6bcbfd52fd920cab5a3df2c5445 Author: Martin Sperl Date: Fri Nov 27 16:17:21 2015 +0000 spi: add spi-loopback-test to build framework adding the spi-loopback-test module to Kconfig and Makefile Signed-off-by: Martin Sperl Signed-off-by: Mark Brown drivers/spi/Kconfig | 9 +++++++++ drivers/spi/Makefile | 1 + 2 files changed, 10 insertions(+) commit 84e0c4e5e2c4ef42b9c6f6d4151973a297ee4656 Author: Martin Sperl Date: Fri Nov 27 13:56:04 2015 +0000 spi: add loopback test driver to allow for spi_master regression tests This driver is submitting lots of distinct spi-messages messages with all kinds of alignments and length pattern. Also distinct kinds of transfer pattern tests are implemented (rx, tx, rx/tx, tx+tx, tx+rx,...) Right now on a raspberry pi 752 distinct spi_messages are executed in 13 different scenarios. Configuration of additional test-pattern is easy, so that when new bugs in drivers get detected the relevant transfer pattern can also get added to the test framework, so that such situations are detected in other drivers as well. The idea behind this driver is to make it possible to also detect regressions in spi_master implementations when changes occur. Potentially these tests could get executed automatically in a test-server-farm. Signed-off-by: Martin Sperl Signed-off-by: Mark Brown drivers/spi/spi-loopback-test.c | 995 ++++++++++++++++++++++++++++++++++++++++ drivers/spi/spi-test.h | 135 ++++++ 2 files changed, 1130 insertions(+) commit 49ddedf3bfcb59a562c7db0e50aecd1422e9cdc9 Author: Martin Sperl Date: Fri Nov 27 13:56:03 2015 +0000 spi: add spi_message_init_no_memset to avoid zeroing the spi_message In the spi_loopback_test driver there is the need to initialize a spi_message that is filled with values from a static structure. Applying spi_message_init to such a prefilled structure results in all the settings getting reset to zero, which is not what we want. Copying each field of spi_message separately instead always includes the risk that some new fields have not been implemented in the copying code. So here we introduce a version of spi_message_init called spi_message_init_no_memset that does not fill the structure with zero first, but only initializes the relevant list_heads. Signed-off-by: Martin Sperl Signed-off-by: Mark Brown include/linux/spi/spi.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 315c562536c42aa4da9b6c5a2135dd6715a5e0b5 Author: Dan Williams Date: Thu Dec 10 14:45:23 2015 -0800 libnvdimm, pfn: add 'align' attribute, default to HPAGE_SIZE When setting aside capacity for struct page it must be aligned to the largest mapping size that is to be made available via DAX. Make the alignment configurable to enable support for 1GiB page-size mappings. The offset for PFN_MODE_RAM may now be larger than SZ_8K, so fixup the offset check in nvdimm_namespace_attach_pfn(). Reported-by: Toshi Kani Signed-off-by: Dan Williams drivers/nvdimm/nd.h | 1 + drivers/nvdimm/pfn_devs.c | 61 +++++++++++++++++++++++++++++++++++++++++++++++ drivers/nvdimm/pmem.c | 6 ++--- 3 files changed, 65 insertions(+), 3 deletions(-) commit 405926276bfb316915c16e57a3943eb2cf4dd8fa Author: Hans de Goede Date: Fri Dec 11 19:43:57 2015 +0100 ASoC: sun4i-codec: Add support for PA gpio pin Add support for PA gpio pin for controlling an external amplifier as used on some Allwinner boards. Signed-off-by: Hans de Goede Signed-off-by: Mark Brown .../devicetree/bindings/sound/sun4i-codec.txt | 3 ++ sound/soc/sunxi/sun4i-codec.c | 35 ++++++++++++++++++++++ 2 files changed, 38 insertions(+) commit e6415b485059af183873e907662a3cdeefacb58b Author: Hans de Goede Date: Fri Dec 11 19:43:56 2015 +0100 ASoC: sun4i-codec: Rename codec dapm widgets and routes Rename the codec dapm widgets and routes with a _codec prefix. This is a preparation patch for adding card dapm widgets and routes. Signed-off-by: Hans de Goede Signed-off-by: Mark Brown sound/soc/sunxi/sun4i-codec.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 906c7d690c3b80e4321178c083db8c14afb56bf8 Author: PC Liao Date: Fri Dec 11 11:33:51 2015 +0800 ASoC: dpcm: Apply symmetry for DPCM DPCM does not fully support symmetry attributes. soc_pcm_apply_symmetry() is skipped in soc_pcm_open() for DPCM, without being applied elsewhere. So HW parameters cannot be correctly limited, and user space can do playback/capture at different rates while HW actually does not support it. soc_pcm_params_symmetry() will return error and the second stream stops. This patch adds soc_pcm_apply_symmetry() for FE, BE, and codec DAIs in DPCM path that was skipped in soc_pcm_open(). Signed-off-by: PC Liao Signed-off-by: Koro Chen Acked-by: Liam Girdwood Signed-off-by: Mark Brown sound/soc/soc-pcm.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) commit 21c015b776d4013b656bca8a4f42b953297b8b8c Author: Sekhar Nori Date: Thu Dec 10 21:59:05 2015 +0530 spi: davinci: use dev_err() for error reporting Use dev_err() for reporting errors rather than dev_dbg(). Signed-off-by: Sekhar Nori Signed-off-by: Mark Brown drivers/spi/spi-davinci.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 7f3ac71ac3b05aaa2c55c266448f973188275a8c Author: Sekhar Nori Date: Thu Dec 10 21:59:04 2015 +0530 spi: davinci: fix spurious i/o error davinci_spi_bufs() uses wait_for_completion_interruptible() without bothering to handle -ERESTARTSYS. Due to this, sometime, it returns prematurely when a signal is received. Since the return value is never checked, userspace eventually receives a spurious -EIO. To fix this, use un-interruptible wait_for_completion_timeout(). Signed-off-by: Sekhar Nori Signed-off-by: Mark Brown drivers/spi/spi-davinci.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 32e69bad8ed9ed4e1bf1fd8217b61d5f87996253 Author: Songjun Wu Date: Fri Dec 11 11:07:37 2015 +0800 ASoC: Atmel: ClassD: unregister codec when error occurs Add code to unregister codec in probe function, when the error occurs after the codec is registered. Signed-off-by: Songjun Wu Signed-off-by: Mark Brown sound/soc/atmel/atmel-classd.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) commit 395036225390a940cba7cec5c2306a6999d13d94 Author: Damien.Horsley Date: Thu Dec 10 14:40:12 2015 +0000 ASoC: img: Add driver for Pistachio internal DAC Add driver for Pistachio Internal DAC Signed-off-by: Damien.Horsley Signed-off-by: Mark Brown sound/soc/img/Kconfig | 8 + sound/soc/img/Makefile | 2 + sound/soc/img/pistachio-internal-dac.c | 287 +++++++++++++++++++++++++++++++++ 3 files changed, 297 insertions(+) commit 7274d07c4f797a9a2daf479bf58663fd885ab3bf Author: Damien.Horsley Date: Thu Dec 10 14:40:11 2015 +0000 ASoC: img: Add binding document for Pistachio internal DAC Add binding document for Pistachio Internal DAC Signed-off-by: Damien.Horsley Signed-off-by: Mark Brown .../bindings/sound/img,pistachio-internal-dac.txt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 168d10e74c4efd945a37adeb134f096505e62b49 Author: Charles Keepax Date: Tue Dec 8 16:08:27 2015 +0000 ASoC: wm_adsp: Add locking to DSP firmware controls Locking is currently missing from the DSP firmware controls, which can lead to some race conditions if the controls are accessed as the DSP powers up or down. This patch adds them to the new power lock. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm_adsp.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) commit 7585a5b0ab5511376f032e421f7de72fe7e160d5 Author: Charles Keepax Date: Tue Dec 8 16:08:25 2015 +0000 ASoC: wm_adsp: Fixup some minor formatting and checkpatch errors Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm_adsp.c | 27 +++++++++++++-------------- sound/soc/codecs/wm_adsp.h | 4 ++-- 2 files changed, 15 insertions(+), 16 deletions(-) commit d27c5e155c69a4c45e9833fbf66aa580dcd01624 Author: Charles Keepax Date: Tue Dec 8 16:08:28 2015 +0000 ASoC: wm_adsp: Add power lock for firmware change control We should hold the DSP power lock whilst changing the firmware since we need to check if it is running first. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm_adsp.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 078e71838cdff1c2a1a33e65459954adda9a4641 Author: Charles Keepax Date: Tue Dec 8 16:08:26 2015 +0000 ASoC: wm_adsp: Replace debugfs lock with more general DSP power lock Most events around the DSP just need to be locked to ensure that the DSP can't change power state whilst they are happening. This includes the debugfs entries and this will make sorting the rest of the locking simpler. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm_adsp.c | 75 ++++++++++++++++++++++++++-------------------- sound/soc/codecs/wm_adsp.h | 3 +- 2 files changed, 44 insertions(+), 34 deletions(-) commit a9b17a638af5ae374677c5349653114231483419 Author: Damien.Horsley Date: Tue Dec 8 15:59:00 2015 +0000 ASoC: pcm3168a: Add driver for pcm3168a codec Add driver for Texas Instruments pcm3168a codec Signed-off-by: Damien.Horsley Signed-off-by: Mark Brown sound/soc/codecs/Kconfig | 17 + sound/soc/codecs/Makefile | 6 + sound/soc/codecs/pcm3168a-i2c.c | 66 ++++ sound/soc/codecs/pcm3168a-spi.c | 65 ++++ sound/soc/codecs/pcm3168a.c | 767 ++++++++++++++++++++++++++++++++++++++++ sound/soc/codecs/pcm3168a.h | 100 ++++++ 6 files changed, 1021 insertions(+) commit ccfa2bef0f3bb024fc6efb1501177dddbb003c06 Author: Damien.Horsley Date: Tue Dec 8 15:58:59 2015 +0000 ASoC: pcm3168a: Add binding document for pcm3168a codec Add binding document for Texas Instruments pcm3168a codec Signed-off-by: Damien.Horsley Signed-off-by: Mark Brown .../devicetree/bindings/sound/ti,pcm3168a.txt | 48 ++++++++++++++++++++++ 1 file changed, 48 insertions(+) commit d13871b3531b05fdf5b8ca92c98779e574fe06f1 Author: Damien.Horsley Date: Tue Dec 8 15:58:58 2015 +0000 ASoC: Add SOC_DOUBLE_STS macro Add SOC_DOUBLE_STS macro for read-only volatile status controls Signed-off-by: Damien.Horsley Signed-off-by: Mark Brown include/sound/soc.h | 8 ++++++++ 1 file changed, 8 insertions(+) commit 167f7066a637332b463adf3b87b2af1c1031591a Author: Xiubo Li Date: Fri Dec 11 11:23:20 2015 +0800 regmap: cache: Move the num_reg_defaults check as early as possible If the register defaults are provided by the driver without the number by mistake, it should just return an error with one promotion. This should be as early as possible, then there is no need to verify the register defaults' stride and the other code followed. Signed-off-by: Xiubo Li Signed-off-by: Mark Brown drivers/base/regmap/regcache.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 8cfe2fd3562ba673435bb2d7a4bb451aabd47809 Author: Xiubo Li Date: Fri Dec 11 11:23:19 2015 +0800 regmap: cache: Add warning info for the cache check If there is no cache used for the drivers, the register defaults or the register defaults raw are not need any more. This patch will check this and print a warning. Signed-off-by: Xiubo Li Signed-off-by: Mark Brown drivers/base/regmap/regcache.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 782035ea94dc4028c19e9f39857ce9756119ae94 Author: Dan Carpenter Date: Sat Dec 12 15:59:43 2015 +0300 regmap: missing case statement This new code is unreachable. Presumably there was supposed to be a case statement there similar to the earlier code. Fixes: afcc00b91f18 ('regmap: add 64-bit mode support') Signed-off-by: Dan Carpenter Signed-off-by: Mark Brown drivers/base/regmap/regmap.c | 1 + 1 file changed, 1 insertion(+) commit 01c377bfe21a1050fd7cfd33699f7d8049dc2723 Author: Dan Carpenter Date: Sat Dec 12 15:59:14 2015 +0300 regmap: shift wrapping bugs in 64 bit code We should cast these to 64bit so that we don't truncate away the high bits. Fixes: afcc00b91f18 ('regmap: add 64-bit mode support') Signed-off-by: Dan Carpenter Signed-off-by: Mark Brown drivers/base/regmap/regmap.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit d761c906179944c6000d3f0c29e00e7543b6c139 Author: Dan Carpenter Date: Sat Dec 12 15:38:43 2015 +0300 regulator: pv88090: logical vs bitwise AND typo These were supposed to be bitwise AND instead of logical. Also kernel style is for the operator to be on the first line and I removed some extra parenthesis. Fixes: c90456e36d9c ('regulator: pv88090: new regulator driver') Signed-off-by: Dan Carpenter Signed-off-by: Mark Brown drivers/regulator/pv88090-regulator.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit ecee988ac848fabbff6c926739a520b1748c4a79 Author: Axel Lin Date: Thu Dec 10 18:11:58 2015 +0800 regulator: pv88090: Fix irq leak Use devm_request_threaded_irq to ensure the irq is freed when unload the module. Signed-off-by: Axel Lin Signed-off-by: Mark Brown drivers/regulator/pv88090-regulator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b8084e5b34e83875846053bf9cd951b7640e40fe Author: Caesar Wang Date: Fri Sep 25 10:14:58 2015 +0800 arm64: dts: rockchip: Add the broadcast-timer for RK3368 SoC There is a need of a broadcast timer in this case to ensure proper wakeup when the cpus are in sleep mode and a timer expires. Signed-off-by: Caesar Wang Signed-off-by: Heiko Stuebner arch/arm64/boot/dts/rockchip/rk3368.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) commit 8818555964eed0010044c4d85f096452b14eb8b5 Author: ZhengShunQian Date: Tue Aug 11 18:13:44 2015 +0800 ARM: dts: rockchip: add eFuse config of rk3288 SoC This patch add the eFuse dt config of rk3288 SoC. Signed-off-by: ZhengShunQian Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3288.dtsi | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 67e044a510d0e00656ae2ab4f0ee30971a2f40e7 Author: Jeffy Chen Date: Fri Dec 11 09:30:52 2015 +0800 ARM: dts: rockchip: add rk3228-evb board Initial release for rk3228 sdk board. Signed-off-by: Jeffy Chen Signed-off-by: Heiko Stuebner Documentation/devicetree/bindings/arm/rockchip.txt | 4 ++ arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/rk3228-evb.dts | 66 ++++++++++++++++++++++ 3 files changed, 71 insertions(+) commit 9848ebeb952d2a46852bdde96101d280fc69b54b Author: Jeffy Chen Date: Fri Dec 11 09:30:51 2015 +0800 ARM: dts: rockchip: add core rk3228 dtsi Initial release for rk3228 shared dtsi. Signed-off-by: Jeffy Chen Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3228.dtsi | 442 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 442 insertions(+) commit 539fb9ba6189d9ad7331702f2d1f994494b36e2f Merge: d59df5d b457c1e Author: Heiko Stuebner Date: Sat Dec 12 20:14:17 2015 +0100 Merge branch 'v4.5-clk/clkids' into v4.5-armsoc/dts32 commit 60ecbd9d94600121ee9e8fed523e62c19f269893 Author: ZhengShunQian Date: Tue Aug 11 18:13:40 2015 +0800 clk: rockchip: use rk3288-efuse clock ids Reference the newly added efuse clock-ids in the clock-tree. Signed-off-by: ZhengShunQian Acked-by: Stephen Boyd Signed-off-by: Heiko Stuebner drivers/clk/rockchip/clk-rk3288.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 307a2e9ac524bbec707c0e2b47ca50adaecc23f2 Author: Jeffy Chen Date: Fri Dec 11 09:30:50 2015 +0800 clk: rockchip: add clock controller for rk3228 Add the clock tree definition for the new rk3228 SoC. Signed-off-by: Jeffy Chen Signed-off-by: Heiko Stuebner drivers/clk/rockchip/Makefile | 1 + drivers/clk/rockchip/clk-rk3228.c | 678 ++++++++++++++++++++++++++++++++++++++ drivers/clk/rockchip/clk.h | 11 +- 3 files changed, 689 insertions(+), 1 deletion(-) commit 80afed275da42635abd888c0a68b529e88853b04 Author: Jeffy Chen Date: Wed Dec 9 17:04:09 2015 +0800 dt-bindings: add documentation of rk3228 clock controller Add the devicetree binding for the cru on the rk3228 which quite similar structured as previous clock controllers. Signed-off-by: Jeffy Chen Acked-by: Rob Herring Signed-off-by: Heiko Stuebner .../bindings/clock/rockchip,rk3228-cru.txt | 58 ++++++++++++++++++++++ 1 file changed, 58 insertions(+) commit cf3efa56eccf5facf55bb0341d552b470d9ed204 Merge: ea03835f b457c1e Author: Heiko Stuebner Date: Sat Dec 12 20:04:36 2015 +0100 Merge branch 'v4.5-clk/clkids' into v4.5-clk/next commit b457c1e440fc8580563ed7a5c3156573ecaf3dfc Author: ZhengShunQian Date: Tue Aug 11 18:13:40 2015 +0800 clk: rockchip: Add the clock ids of rk3288 eFuses Add clock-ids for the two efuse blocks of the rk3288. Signed-off-by: ZhengShunQian Acked-by: Stephen Boyd Signed-off-by: Heiko Stuebner include/dt-bindings/clock/rk3288-cru.h | 2 ++ 1 file changed, 2 insertions(+) commit c34c18195d30aa3b95f5ae1b4349875c45fdb8e4 Author: Anshul Garg Date: Tue Dec 8 09:45:56 2015 -0800 iio/inkern.c Use list_for_each_entry_safe Use list_for_each_entry_safe instead of list_for_each_safe and list_entry call. Signed-off-by: Anshul Garg Signed-off-by: Jonathan Cameron drivers/iio/inkern.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 50672011d676aea5e521bc77dfce0c9eea040782 Author: Haibo Chen Date: Tue Dec 8 18:26:21 2015 +0800 Documentation: add the binding file for Freescale imx7d ADC driver The patch adds the binding file for Freescale imx7d ADC driver. Signed-off-by: Haibo Chen Acked-by: Rob Herring Signed-off-by: Jonathan Cameron .../devicetree/bindings/iio/adc/imx7d-adc.txt | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit 16846ebeffe4e74a16f25237003eab6d0535d8dd Author: Haibo Chen Date: Tue Dec 8 18:26:20 2015 +0800 iio: adc: add IMX7D ADC driver support Freescale i.MX7D soc contains a new ADC IP. This patch add this ADC driver support, and the driver only support ADC software trigger. Signed-off-by: Haibo Chen Signed-off-by: Jonathan Cameron drivers/iio/adc/Kconfig | 9 + drivers/iio/adc/Makefile | 1 + drivers/iio/adc/imx7d_adc.c | 609 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 619 insertions(+) commit 46294cd948d530d4feccfd3afd6635e16a55dcb1 Author: Marc Titinger Date: Fri Dec 11 17:49:16 2015 +0100 iio: ina2xx: give the capture kthread a more useful name string. PID PPID USER STAT VSZ %VSZ %CPU COMMAND 144 2 root DW 0 0% 33% [ina226:1-8800us] 141 2 root DW 0 0% 25% [ina226:0-8800us] 40 2 root SW 0 0% 15% [irq/156-4802a00] 147 2 root DW 0 0% 7% [ina226:2-8800us] 145 1 root S 1236 0% 6% dd if /dev/iio:device1 of /dev/null 148 1 root S 1236 0% 4% dd if /dev/iio:device2 of /dev/null 149 137 root R 1244 0% 3% top -d 1 142 1 root S 1236 0% 2% dd if /dev/iio:device0 of /dev/null Signed-off-by: Marc Titinger Signed-off-by: Jonathan Cameron drivers/iio/adc/ina2xx-adc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit b17dc40155a973d0da68b54184dd9c237426c426 Author: Marc Titinger Date: Fri Dec 11 17:49:15 2015 +0100 iio: ina2xx: re-instate a sysfs show/store for the shunt resistor value Different probe modules use different resistor values. The front-end application may read a probe ID (from eeprom) and set the shunt value accordingly. Signed-off-by: Marc Titinger Signed-off-by: Jonathan Cameron drivers/iio/adc/ina2xx-adc.c | 52 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 46 insertions(+), 6 deletions(-) commit f9993c0771ce24063fe62bf73ac57bcfc9ad81de Author: Marc Titinger Date: Mon Dec 7 10:09:35 2015 +0100 iio: ina2xx: provide a sysfs parameter to allow async readout of the ADCs This can lead to repeated or skipped samples depending on the clock beat between the capture thread and the chip sampling clock, but will also spare reading/waiting for the Capture Ready Flag and improve the available i2c bandwidth for reading measurements. Output of iio_info: ...snip... 4 device-specific attributes found: attr 0: in_oversampling_ratio value: 4 attr 1: in_allow_async_readout value: 0 attr 2: integration_time_available value: 140 204 332 588 1100 2116... attr 3: in_sampling_frequency value: 114 Signed-off-by: Marc Titinger Signed-off-by: Jonathan Cameron drivers/iio/adc/ina2xx-adc.c | 54 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 45 insertions(+), 9 deletions(-) commit c43a102e67db99c8bfe6e8a9280cec13ff53b789 Author: Marc Titinger Date: Mon Dec 7 10:09:34 2015 +0100 iio: ina2xx: add support for TI INA2xx Power Monitors in SOFTWARE buffer mode, a kthread will capture the active scan_elements into a kfifo, then compute the remaining time until the next capture tick and do an active wait (udelay). This will produce a stream of up to fours channels plus a 64bits timestamps (ns). Tested with ina226, on BeagleBoneBlack. Datasheet: http://www.ti.com/lit/gpn/ina226 Signed-off-by: Marc Titinger Signed-off-by: Jonathan Cameron drivers/iio/adc/Kconfig | 10 + drivers/iio/adc/Makefile | 1 + drivers/iio/adc/ina2xx-adc.c | 668 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 679 insertions(+) commit 466df4d0c1a5edee243698bdcad1ec4f3a1799b1 Author: Matt Ranostay Date: Sat Dec 5 22:58:22 2015 -0800 iio: chemical: add AMS iAQ-core support Add support for AMS iAQ-core continuous and pulsed VOC sensors. Signed-off-by: Matt Ranostay Signed-off-by: Jonathan Cameron .../devicetree/bindings/i2c/trivial-devices.txt | 1 + drivers/iio/chemical/Kconfig | 8 + drivers/iio/chemical/Makefile | 1 + drivers/iio/chemical/ams-iaq-core.c | 200 +++++++++++++++++++++ 4 files changed, 210 insertions(+) commit 4d33615df58bf308626489cbfb8acbc8bbd45658 Author: Matt Ranostay Date: Wed Dec 9 22:04:49 2015 -0800 iio: light: add MAX30100 oximeter driver support MAX30100 is an heart rate and pulse oximeter sensor that works using two LEDS of different wavelengths, and detecting the light reflected back. This patchset adds support for both IR and RED LED channels which can be processed in userspace to determine heart rate and blood oxygen levels. Signed-off-by: Matt Ranostay Signed-off-by: Jonathan Cameron .../devicetree/bindings/iio/health/max30100.txt | 21 + drivers/iio/Kconfig | 1 + drivers/iio/Makefile | 1 + drivers/iio/health/Kconfig | 21 + drivers/iio/health/Makefile | 7 + drivers/iio/health/max30100.c | 453 +++++++++++++++++++++ 6 files changed, 504 insertions(+) commit b41fa86b67bd338d4ffa0b69f0fb1c3013a489e0 Author: Oliver Stäbler Date: Wed Dec 9 10:24:04 2015 +0100 iio:adc128s052: add support for adc124s021 Signed-off-by: Oliver Stäbler Reviewed-by: Martin Kepplinger Signed-off-by: Jonathan Cameron Documentation/devicetree/bindings/iio/adc/ti-adc128s052.txt | 4 ++-- drivers/iio/adc/Kconfig | 6 +++--- drivers/iio/adc/ti-adc128s052.c | 13 ++++++++++++- 3 files changed, 17 insertions(+), 6 deletions(-) commit d3428001c58dce10af624e889667c7862320390a Author: Emil Tantilov Date: Fri Nov 6 16:34:33 2015 -0800 ixgbe: do not report 2.5 Gbps as supported Some X550 devices can connect at 2.5Gbps during fail-over, but only with certain link partners. Also setting the advertised speed will not work so we do not report it as supported to avoid confusion. Signed-off-by: Emil Tantilov Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 4 ---- 1 file changed, 4 deletions(-) commit 4c7f35f679f592804736f9303051257de2c9f021 Author: Alexander Duyck Date: Mon Nov 2 17:10:32 2015 -0800 ixgbe: Clean stale VLANs when changing port VLAN or resetting This patch guarantees that the VFs do not have access to VLANs that they were not supposed to. What this patch does is add code so that we delete the previous port VLAN after adding a new one, and if we reset the VF we clear all of the filters associated with it. Previously the code was leaving all previous VLANs mapped to the VF and they didn't get deleted unless the VF specifically requested it or if the PF itself was reset. Signed-off-by: Alexander Duyck Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 77 ++++++++++++++++++++++++-- 1 file changed, 72 insertions(+), 5 deletions(-) commit 52d60eb7e6d6429a766ea1b8f67e01c3b2dcd3c5 Author: Mauro Carvalho Chehab Date: Sat Dec 12 08:10:40 2015 -0200 Revert "[media] UVC: Add support for ds4 depth camera" This reverts commit 120c41d3477a23c6941059401db63677736f1935. The patch doesn't add the corresponding documentation bits to the media infrastructure uAPI DocBook. Also, they're for 3D formats, with requre further discussions. Requested-by: Hans Verkuil Requested-by: Laurent Pinchart drivers/media/usb/uvc/uvc_driver.c | 20 -------------------- drivers/media/usb/uvc/uvcvideo.h | 12 ------------ include/uapi/linux/videodev2.h | 3 --- 3 files changed, 35 deletions(-) commit 6e982aeae5779a67fc02c5f6873654c49af97e70 Author: Alexander Duyck Date: Mon Nov 2 17:10:26 2015 -0800 ixgbe: Clear stale pool mappings This patch makes certain that we clear the pool mappings added when we configure default MAC addresses for the interface. Without this we run the risk of leaking an address into pool 0 which really belongs to VF 0 when SR-IOV is enabled. Signed-off-by: Alexander Duyck Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c | 10 +++++++--- drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 7 ++++--- drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c | 10 +++++++--- 3 files changed, 18 insertions(+), 9 deletions(-) commit e1d0a2af2b30f5f0cbce2e4dd438d4da2433b226 Author: Alexander Duyck Date: Mon Nov 2 17:10:19 2015 -0800 ixgbe: Fix VLAN promisc in relation to SR-IOV This patch is a follow-on for enabling VLAN promiscuous and allowing the PF to add VLANs without adding a VLVF entry. What this patch does is go through and free the VLVF registers if they are not needed as the VLAN belongs only to the PF which is the default pool. Signed-off-by: Alexander Duyck Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe.h | 1 + drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 50 +++++++++++++- drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 94 ++++++-------------------- 3 files changed, 72 insertions(+), 73 deletions(-) commit 16369564915a9777217244678ee6160f8f1acac7 Author: Alexander Duyck Date: Mon Nov 2 17:10:13 2015 -0800 ixgbe: Add support for VLAN promiscuous with SR-IOV This patch adds support for VLAN promiscuous with SR-IOV enabled. The code prior to this patch was only adding the PF to VLANs that the VF had added. As such enabling promiscuous mode would actually not add any additional VLAN filters so visibility was limited. This lead to a number of issues as the bridge and OVS would expect us to accept all VLAN tagged packets when promiscuous mode was enabled, and instead we would filter out most if not all depending on the configuration of the PF. With this patch what we do is set all the bits in the VFTA and all of the VLVF bits associated with the pool belonging to the PF. By doing this the PF is guaranteed to receive all VLAN tagged traffic associated with the RAR filters assigned to the PF. In addition we will clean up those same bits in the event of promiscuous mode being disabled. Signed-off-by: Alexander Duyck Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe.h | 1 + drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 140 +++++++++++++++++++++++--- 2 files changed, 129 insertions(+), 12 deletions(-) commit c2bc9ce91c31cc214667b9e1a150cd3000856c1c Author: Alexander Duyck Date: Mon Nov 2 17:10:07 2015 -0800 ixgbe: Reorder search to work from the top down instead of bottom up This patch is meant to reduce the complexity of the search function used for finding a VLVF entry associated with a given VLAN ID. The previous code was searching from bottom to top. I reordered it to search from top to bottom. In addition I pulled an AND statement out of the loop and instead replaced it with an OR statement outside the loop. This should help to reduce the overall size and complexity of the function. There was also some formatting I cleaned up in regards to whitespace and such. Signed-off-by: Alexander Duyck Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 42 +++++++++++-------------- 1 file changed, 19 insertions(+), 23 deletions(-) commit b6488b662b5011a3640033a266886603892dfed1 Author: Alexander Duyck Date: Mon Nov 2 17:10:01 2015 -0800 ixgbe: Add support for adding/removing VLAN on PF bypassing the VLVF This patch adds support for bypassing the VLVF entry creation when the PF is adding a new VLAN. The advantage to doing this is that we can then save the VLVF entries for the VFs which must have them in order to function, versus the PF which can fall back on the default pool entry. Signed-off-by: Alexander Duyck Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c | 3 ++- drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 21 +++++++++++++++------ drivers/net/ethernet/intel/ixgbe/ixgbe_common.h | 2 +- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 4 ++-- drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 18 +++++++++++++++++- drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 2 +- 6 files changed, 38 insertions(+), 12 deletions(-) commit 5ac736a65ac131e76edb5bbe75f7f9acef7a8a7b Author: Alexander Duyck Date: Mon Nov 2 17:09:54 2015 -0800 ixgbe: Simplify configuration of setting VLVF and VLVFB This patch addresses several issues within the VLVF and VLVFB configuration First was the fact that code was overly complicated with multiple conditional paths depending on if we adding or removing and which bit we were going to add or remove. Instead of messing with all that I have simplified it by using (vid / 32) and (1 - vid / 32) to identify our register and the other vlvfb register. Second was the fact that we were likely leaking a few packets into the PF in cases where we were deleting an entry and the VFTA filter for that entry as the ordering was such that we deleted the pool and then the VLAN filter instead of the other way around. I have updated that by adding a check for no bits being set and if that occurs we clear things up in the proper order. Signed-off-by: Alexander Duyck Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 88 ++++++++++--------------- 1 file changed, 34 insertions(+), 54 deletions(-) commit 63d9379a598ed9fbb887b8679623f8a328ee394e Author: Alexander Duyck Date: Mon Nov 2 17:09:48 2015 -0800 ixgbe: Reduce VT code indent in set_vfta by introducing jump label In order to clear the way for upcoming work I thought it best to drop the level of indent in the ixgbe_set_vfta_generic function. Most of the code is held in the virtualization specific section. So the easiest approach is to just add a jump label and jump past the bulk of the code if it is not enabled. Signed-off-by: Alexander Duyck Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 142 ++++++++++++------------ 1 file changed, 70 insertions(+), 72 deletions(-) commit c18fbd5f024e47897a120f42d128c04fa708692c Author: Alexander Duyck Date: Mon Nov 2 17:09:42 2015 -0800 ixgbe: Simplify definitions for regidx and bit in set_vfta This patch simplifies the logic for setting the VFTA register by removing the number of conditional checks needed. Instead we just use some boolean logic to generate vfta_delta, and if that is set then we xor the vfta by that value and write it back. Signed-off-by: Alexander Duyck Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 48 ++++++++++--------------- 1 file changed, 19 insertions(+), 29 deletions(-) commit 8e8e9a0b7df0194e95bb1d657f9edbdc6363f082 Author: Alexander Duyck Date: Mon Nov 2 17:09:35 2015 -0800 ixgbe: Fix SR-IOV VLAN pool configuration The code for checking the PF bit in ixgbe_set_vf_vlan_msg was using the wrong offset and as a result it was pulling the VLAN off of the PF even if there were VFs numbered greater than 40 that still had the VLAN enabled. Signed-off-by: Alexander Duyck Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 530fd82a9fea5bba8e044bdf6fdf2ddc495e3807 Author: Alexander Duyck Date: Mon Nov 2 17:09:29 2015 -0800 ixgbe: Return error on failure to allocate mac_table Add a check to make certain mac_table was actually allocated and is not NULL. If it is NULL return -ENOMEM and allow the probe routine to fail rather then causing a NULL pointer dereference further down the line. Signed-off-by: Alexander Duyck Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 2 ++ 1 file changed, 2 insertions(+) commit 70b3590f639f4e753e6f556209cb89b812879402 Author: Arnd Bergmann Date: Sat Dec 12 08:53:21 2015 +0100 reset: hi6220: fix modular build We need to include to build the driver as a loadable module: drivers/reset/hisilicon/hi6220_reset.c:108:1: warning: data definition has no type or storage class postcore_initcall(hi6220_reset_init); Signed-off-by: Arnd Bergmann drivers/reset/hisilicon/hi6220_reset.c | 1 + 1 file changed, 1 insertion(+) commit b626f2cb75cfc9ab707fce6e60df0d94650a4abf Author: Jiri Pirko Date: Fri Dec 11 18:26:00 2015 +0100 mlxsw: core: Fix temperature sensor index during initialization Sensor index should be passed instead of 0. For now, this does not make a difference, since there is so far only one temperature sensor exposed by HW. Fixes: 89309da39 ("mlxsw: core: Implement temperature hwmon interface") Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit acf35a4ec6f75bcb1c20c7aa02586de6220d76c5 Author: Jiri Pirko Date: Fri Dec 11 16:10:39 2015 +0100 mlxsw: reg: Fix max temperature getting Fix copy & paste error in MTPM unpack helper. Fixes: 85926f877040 ("mlxsw: reg: Add definition of temperature management registers") Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/reg.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9ad321b0b6de666814e3950c963387d116bfe3d1 Merge: f5f9649 7cb21b7 Author: David S. Miller Date: Sat Dec 12 00:15:25 2015 -0500 Merge branch 'mlx5-flow-steering' Saeed Mahameed says: ==================== mlx5 improved flow steering management First two patches fixes some minor issues in recently introduced SRIOV code. The other seven patches modifies the driver's code that manages flow steering rules with Connectx-4 devices. Basic introduction: The flow steering device specification model is composed of the following entities: Destination (either a TIR/Flow table/vport), where TIR is RSS end-point, vport is the VF eSwitch port in SRIOV. Flow table entry (FTE) - the values used by the flow specification Flow table group (FG) - the masks used by the flow specification Flow table (FT) - groups several FGs and can serve as destination The flow steering software entities: In addition to the device objects, the software have two more objects: Priorities - group several FTs. Handles order of packet matching. Namespaces - group several priorities. Namespace are used in order to isolate different usages of steering (for example, add two separate namespaces, one for the NIC driver and one for E-Switch FDB). The base data structure for the flow steering management is a tree and all the flow steering objects such as (Namespace/Flow table/Flow Group/FTE/etc.) are represented as a node in the tree, e.g.: Priority-0 -> FT1 -> FG -> FTE -> TIR (destination) Priority-1 -> FT2 -> FG-> FTE -> TIR (destination) Matching begins in FT1 flow rules and if there is a miss on all the FTEs then matching continues on the FTEs in FT2. The new implementation solves/improves the following issues in the current code: 1) The new impl. supports multiple destinations, the search for existing rule with the same matching value is performed by the flow steering management. In the current impl. the E-switch FDB management code needs to search for existing rules before calling to the add rule function. 2) The new impl. manages the flow table level, in the current implementation the consumer states the flow table level when new flow table is created without any knowledge about the levels of other flow tables. 3) In the current impl. the consumer can't create or destroy flow groups dynamically, the flow groups are passed as argument to the create flow table API. The new impl. exposes API for create/destroy flow group. The series is built as follows: Patch #1 add flow steering API firmware commands. Patch #2 add tree operation of the flow steering tree: add/remove node, initialize node and take reference count on a node. Patch #3 add essential algorithms for managing the flow steering. Patch #4 Initialize the flow steering tree, flow steering initialization is based on static tree which illustrates the flow steering tree when the driver is loaded. Patch #5 is the main patch of the series. It introduce the flow steering API. Patch #6 Expose the new flow steering API and remove the old one. The Ethernet flow steering follows the existing implementation, but uses the new steering API. Patch #7 Rename en_flow_table.c to en_fs.c in order to be aligned with the new flow steering files. ==================== Signed-off-by: David S. Miller commit 7cb21b794baa521a068e5f8640c248b4d1c283ff Author: Maor Gottlieb Date: Thu Dec 10 17:12:45 2015 +0200 net/mlx5e: Rename en_flow_table.c to en_fs.c Rename en_flow_table.c to en_fs.c in order to be aligned with the new flow steering files. Signed-off-by: Maor Gottlieb Signed-off-by: Moni Shoua Signed-off-by: Matan Barak Signed-off-by: Saeed Mahameed Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/Makefile | 2 +- .../ethernet/mellanox/mlx5/core/en_flow_table.c | 1224 -------------------- drivers/net/ethernet/mellanox/mlx5/core/en_fs.c | 1224 ++++++++++++++++++++ 3 files changed, 1225 insertions(+), 1225 deletions(-) commit 86d722ad2c3bd2f0536b196b7fd67ae2a7e2a492 Author: Maor Gottlieb Date: Thu Dec 10 17:12:44 2015 +0200 net/mlx5: Use flow steering infrastructure for mlx5_en Expose the new flow steering API and remove the old one. Few changes are required: 1. The Ethernet flow steering follows the existing implementation, but uses the new steering API. The old flow steering implementation is removed. 2. Move the E-switch FDB management to use the new API. 3. When driver is loaded call to mlx5_init_fs which initialize the flow steering tree structure, open namespaces for NIC receive and for E-switch FDB. 4. Call to mlx5_cleanup_fs when the driver is unloaded. Signed-off-by: Maor Gottlieb Signed-off-by: Moni Shoua Signed-off-by: Matan Barak Signed-off-by: Saeed Mahameed Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/Makefile | 2 +- drivers/net/ethernet/mellanox/mlx5/core/en.h | 23 +- .../ethernet/mellanox/mlx5/core/en_flow_table.c | 824 +++++++++++++-------- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 2 +- drivers/net/ethernet/mellanox/mlx5/core/eswitch.c | 291 ++------ drivers/net/ethernet/mellanox/mlx5/core/eswitch.h | 15 +- .../net/ethernet/mellanox/mlx5/core/flow_table.c | 422 ----------- drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 26 +- drivers/net/ethernet/mellanox/mlx5/core/main.c | 9 + include/linux/mlx5/flow_table.h | 63 -- include/linux/mlx5/fs.h | 38 + 11 files changed, 633 insertions(+), 1082 deletions(-) commit 2530236303d9e705db6a28eb9a10c8d79b288b37 Author: Maor Gottlieb Date: Thu Dec 10 17:12:43 2015 +0200 net/mlx5_core: Flow steering tree initialization Flow steering initialization is based on static tree which illustrates the flow steering tree when the driver is loaded. The initialization considers the max supported flow table level of the device, a minimum of 2 kernel flow tables(vlan and mac) are required to have kernel flow table functionality. The tree structures when the driver is loaded: root_namespace(receive nic) | priority-0 (kernel priority) | namespace(kernel namespace) | priority-0 (flow tables priority) In the following patches, When the EN driver will use the flow steering API, it create two flow tables and their flow groups under priority-0(flow tables priority). Signed-off-by: Maor Gottlieb Signed-off-by: Moni Shoua Signed-off-by: Matan Barak Signed-off-by: Saeed Mahameed Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 374 ++++++++++++++++++++++ drivers/net/ethernet/mellanox/mlx5/core/fs_core.h | 4 + include/linux/mlx5/driver.h | 2 + include/linux/mlx5/fs.h | 8 + 4 files changed, 388 insertions(+) commit 0c56b97503fdf027488897db5709e2557aa1592a Author: Maor Gottlieb Date: Thu Dec 10 17:12:42 2015 +0200 net/mlx5_core: Introduce flow steering API Introducing the following objects: mlx5_flow_root_namespace: represent the root of specific flow table type tree(e.g NIC receive, FDB, etc..) mlx5_flow_group: define the mask of the flow specification. fs_fte(flow steering flow table entry): defines the value of the flow specification. The following describes the relationships between the tree objects: root_namespace --> priorities -->namespaces --> priorities -->flow-tables --> flow-groups --> flow-entries --> destinations When we create new object(flow table/flow group/flow table entry), we call to the FW command and then we add the related sw object to the tree. When we destroy object, e.g. call to mlx5_destroy_flow_table, we use the tree node destructor for destroying the FW object and remove the node from the tree. Signed-off-by: Maor Gottlieb Signed-off-by: Moni Shoua Signed-off-by: Matan Barak Signed-off-by: Saeed Mahameed Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 464 ++++++++++++++++++++++ drivers/net/ethernet/mellanox/mlx5/core/fs_core.h | 23 ++ 2 files changed, 487 insertions(+) commit 5e1626c09c615005e1edf9f971c20a35dc74efaa Author: Maor Gottlieb Date: Thu Dec 10 17:12:41 2015 +0200 net/mlx5_core: Add flow steering lookup algorithms Introduce the flow steering mlx5_flow_namespace (Namespace) and fs_prio (Flow Steering Priority) tree nodes. Namespaces are used in order to isolate different usages or types of steering (for example, downstream patches will add a different namespaces for the NIC driver and for E-Switch FDB usages). Flow Steering Priorities are objects that describes priorities ranges between different flow objects under the same namespace. Example, entries in priority i are matched before entries in priority i+1. This patch adds the following algorithms: 1) Calculate level: Each flow table has level(the priority between the flow tables). When we initialize the flow steering tree, we assign range of levels to each priority, therefore the level for new flow table is the location within the priority related to the range of the priority. 2) Match between match criteria. This function is used for searching flow group when new flow rule is added. 3) Match between match values. This function is used for searching flow table entry when new flow rule is added. 4) Add essential macros for traversing on a node's children. E.g. traversing on all the flow table of some priority Signed-off-by: Maor Gottlieb Signed-off-by: Moni Shoua Signed-off-by: Matan Barak Signed-off-by: Saeed Mahameed Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 93 +++++++++++++++++++++++ drivers/net/ethernet/mellanox/mlx5/core/fs_core.h | 41 ++++++++++ 2 files changed, 134 insertions(+) commit de8575e014685034728396f9d69169428be9cc3d Author: Maor Gottlieb Date: Thu Dec 10 17:12:40 2015 +0200 net/mlx5_core: Add flow steering base data structures Introducing the base data structure and its operations that are going to represent ConnectX-4 Flow Steering, this data structure is basically a tree and all Flow steering objects such as (Flow Table/Flow Group/FTE/etc ..) are represented as fs_node(s). fs_node is the base object which describes a basic tree node, with the following extra info: type: describes the runtime type of the node (Object). lock: lock this node sub-tree. ref_count: number of children + current references. remove_func: a generic destructor. fs_node types will be used and explained once the usage is added in the following patches. Signed-off-by: Maor Gottlieb Signed-off-by: Moni Shoua Signed-off-by: Matan Barak Signed-off-by: Saeed Mahameed Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/Makefile | 2 +- drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 116 ++++++++++++++++++++++ drivers/net/ethernet/mellanox/mlx5/core/fs_core.h | 6 ++ 3 files changed, 123 insertions(+), 1 deletion(-) commit 26a8145390b36cbe97a5bd0b9e97249f21af6aea Author: Maor Gottlieb Date: Thu Dec 10 17:12:39 2015 +0200 net/mlx5_core: Introduce flow steering firmware commands Introduce new Flow Steering (FS) firmware commands, in-order to support the new flow steering infrastructure. Signed-off-by: Maor Gottlieb Signed-off-by: Moni Shoua Signed-off-by: Matan Barak Signed-off-by: Saeed Mahameed Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/Makefile | 2 +- drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.c | 239 ++++++++++++++++++++++ drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.h | 65 ++++++ drivers/net/ethernet/mellanox/mlx5/core/fs_core.h | 81 ++++++++ include/linux/mlx5/fs.h | 47 +++++ include/linux/mlx5/mlx5_ifc.h | 32 ++- 6 files changed, 455 insertions(+), 11 deletions(-) commit 108805fc196e001053e9e7c76f259977804dc0d6 Author: Saeed Mahameed Date: Thu Dec 10 17:12:38 2015 +0200 net/mlx5e: Assign random MAC address if needed Under SRIOV there might be a case where VFs are loaded without pre-assigned MAC address. In this case, the VF will randomize its own MAC. This will address the case of administrator not assigning MAC to the VF through the PF OS APIs and keep udev happy. Signed-off-by: Saeed Mahameed Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 5 +++++ drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h | 3 +++ 2 files changed, 8 insertions(+) commit 9bd0a185c2c48226a50e6e5b639edaa9e8ab6c51 Author: Saeed Mahameed Date: Thu Dec 10 17:12:37 2015 +0200 net/mlx5: Fix query E-Switch capabilities E-Switch capabilities should be queried only if E-Switch flow table is supported and not only when vport group manager. Fixes: d6666753c6e8 ("net/mlx5: E-Switch, Introduce HCA cap and E-Switch vport context") Signed-off-by: Saeed Mahameed Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/fw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f5f9649780c9429a4fc83b25090ddc877c6a5199 Merge: 2ad7b75 b9687b4 Author: David S. Miller Date: Fri Dec 11 23:38:18 2015 -0500 Merge branch 'thunderx-pass2' Sunil Goutham says: ==================== net: thunderx: Support for pass-2 hw features This patch set adds support for new features added in pass-2 revision of hardware like TSO and count based interrupt coalescing. Changes from v1: - Addressed comments received regarding boolean bit field changes by excluding them from this patch. Will submit a seperate patch along with cleanup of unsed field. - Got rid of new macro 'VNIC_NAPI_WEIGHT' introduced in count threshold interrupt patch. ==================== Reviewed-by: Pavel Fedin Signed-off-by: David S. Miller commit b9687b48a63a12ea31442f64dc77d41e83d0e478 Author: Sunil Goutham Date: Thu Dec 10 13:25:20 2015 +0530 net: thunderx: Enable CQE count threshold interrupt This feature is introduced in pass-2 chip and with this CQ interrupt coalescing will work based on both timer and count. Signed-off-by: Sunil Goutham Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nicvf_queues.c | 2 +- drivers/net/ethernet/cavium/thunder/nicvf_queues.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 40fb5f8a60f33133d36afde35a9ad865d35e4423 Author: Sunil Goutham Date: Thu Dec 10 13:25:19 2015 +0530 net: thunderx: HW TSO support for pass-2 hardware This adds support for offloading TCP segmentation to HW in pass-2 revision of hardware. Both driver level SW TSO for pass1.x chips and HW TSO for pass-2 chip will co-exist. Modified SQ descriptor structures to reflect pass-2 hw implementation. Signed-off-by: Sunil Goutham Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nic.h | 6 +++++ drivers/net/ethernet/cavium/thunder/nic_main.c | 11 +++----- drivers/net/ethernet/cavium/thunder/nicvf_main.c | 15 +++++++++-- drivers/net/ethernet/cavium/thunder/nicvf_queues.c | 20 +++++++++++---- drivers/net/ethernet/cavium/thunder/q_struct.h | 30 ++++++++++++---------- 5 files changed, 53 insertions(+), 29 deletions(-) commit b122bcd94743239cc26a5732fef87b28d7f5c22a Author: Lee Jones Date: Thu Dec 10 09:42:17 2015 +0000 dt: cpufreq: st: Provide bindings for ST's CPUFreq implementation Acked-by: Rob Herring Acked-by: Viresh Kumar Signed-off-by: Lee Jones Signed-off-by: Rafael J. Wysocki .../devicetree/bindings/cpufreq/cpufreq-st.txt | 91 ++++++++++++++++++++++ 1 file changed, 91 insertions(+) commit ab0ea257fc58d8742f73f50fba3797dfe001aa3c Author: Lee Jones Date: Thu Dec 10 09:42:16 2015 +0000 cpufreq: st: Provide runtime initialised driver for ST's platforms The bootloader is charged with the responsibility to provide platform specific Dynamic Voltage and Frequency Scaling (DVFS) information via Device Tree. This driver takes the supplied configuration and registers it with the new generic OPP framework, to then be used with CPUFreq. Acked-by: Viresh Kumar Signed-off-by: Lee Jones Signed-off-by: Rafael J. Wysocki drivers/cpufreq/Kconfig.arm | 10 ++ drivers/cpufreq/Makefile | 1 + drivers/cpufreq/sti-cpufreq.c | 294 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 305 insertions(+) commit 68435c0d4a2d73a9f758a4b8444d165b686a8b6a Merge: 89b5604 01fb4d3 Author: Rafael J. Wysocki Date: Sat Dec 12 02:47:36 2015 +0100 Merge branch 'pm-opp' into pm-cpufreq commit 2ad7b7560fd586a8b72eb52df9483c203943eec9 Author: Andrew Lunn Date: Wed Dec 9 19:39:03 2015 +0100 Doc: Micrel-ksz90x1.txt: Document deprecated MAC OF properties Phy properties are expected to be found in the PHY OF node. However this Micrel driver also allows them to be placed into the MAC OF node. This is deprecated. Document it as such, and remove the example using the deprecated method to prevent people copying it into new device tree files. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller .../devicetree/bindings/net/micrel-ksz90x1.txt | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) commit fbc088577d7717b58d844f37d089c0598fbf3c3a Merge: 6e71b29 50bf8cb Author: David S. Miller Date: Fri Dec 11 20:28:30 2015 -0500 Merge branch 'mvneta-rss-xps' Gregory CLEMENT says: ==================== mvneta: Introduce RSS support and XPS configuration this series is the first step add RSS support on mvneta. It will allow associating an ethernet interface to a given CPU through RSS by using "ethtool -X ethX weight". Indeed, currently I only enable one entry in the RSS lookup table. Even if it is not really RSS, it allows to get back the irq affinity feature we lost by using the percpu interrupt. The main change compared to the second version is the setup for the XPS instead of using specific hack inside the driver in the forth patch. Th first patch make the default queue associate to each port and no more a global variable. The second patch really associates the RX queues with the CPUs instead of masking the percpu interrupts for doing it. All the RX queues are enabled and are statically associated with the CPUs by using a modulo of the number of present CPUs. But at this stage only one RX queue will receive the stream. The third patch introduces a first level of RSS support through the ethtool functions. As explained in the introduction there is only one entry in the RSS lookup table which permits at the end to associate an mvneta port to a CPU through the RX queues because the mapping is static. ==================== Signed-off-by: David S. Miller commit 50bf8cb6fc9c264b49e0a0cad3f83e751591b6ec Author: Gregory CLEMENT Date: Wed Dec 9 18:23:51 2015 +0100 net: mvneta: Configure XPS support With this patch each CPU is associated with its own set of TX queues. It also setup the XPS with an initial configuration which set the affinity matching the hardware configuration. Suggested-by: Arnd Bergmann Signed-off-by: Gregory CLEMENT Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mvneta.c | 56 ++++++++++++++++++++++++++++------- 1 file changed, 45 insertions(+), 11 deletions(-) commit 9a401dead08c158d4f4a2fc2ade3cb42656d0ca5 Author: Gregory CLEMENT Date: Wed Dec 9 18:23:50 2015 +0100 net: mvneta: Add naive RSS support This patch adds the support for the RSS related ethtool function. Currently it only uses one entry in the indirection table which allows associating an mvneta interface to a given CPU. Signed-off-by: Gregory CLEMENT Tested-by: Marcin Wojtas Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mvneta.c | 127 +++++++++++++++++++++++++++++++++- 1 file changed, 126 insertions(+), 1 deletion(-) commit 2dcf75e2793c53349f0464a4ba0f6253b345668b Author: Gregory CLEMENT Date: Wed Dec 9 18:23:49 2015 +0100 net: mvneta: Associate RX queues with each CPU We enable the percpu interrupt for all the CPU and we just associate a CPU to a few queue at the neta level. The mapping between the CPUs and the queues is static. The queues are associated to the CPU module the number of CPUs. However currently we only use on RX queue for a given Ethernet port. Signed-off-by: Gregory CLEMENT Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mvneta.c | 150 ++++++++++++++++++++++++++-------- 1 file changed, 115 insertions(+), 35 deletions(-) commit 90b74c013d1b9ed294447d2287fa4b4b21f0681d Author: Gregory CLEMENT Date: Wed Dec 9 18:23:48 2015 +0100 net: mvneta: Make the default queue related for each port Instead of using the same default queue for all the port. Move it in the port struct. It will allow have a different default queue for each port. Signed-off-by: Gregory CLEMENT Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mvneta.c | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) commit 89b56047f6f9b15fa3e9df3e34fa391835972ab7 Author: Pi-Cheng Chen Date: Thu Dec 10 11:48:13 2015 +0800 cpufreq: mt8173: Move resources allocation into ->probe() Since the return value of ->init() of cpufreq driver is not propagated to the device driver model now, move resources allocation into ->probe() to handle -EPROBE_DEFER properly. Signed-off-by: Pi-Cheng Chen Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/mt8173-cpufreq.c | 92 +++++++++++++++++++++++++++++----------- 1 file changed, 68 insertions(+), 24 deletions(-) commit 6e71b29908e9e9bffc03b8e991c9e58a0fa92d9c Author: Roopa Prabhu Date: Wed Dec 9 06:56:41 2015 -0800 mpls_iptunnel: add static qualifier to mpls_output This gets rid of the following compile warn: net/mpls/mpls_iptunnel.c:40:5: warning: no previous prototype for mpls_output [-Wmissing-prototypes] Signed-off-by: Roopa Prabhu Acked-by: Robert Shearman Signed-off-by: David S. Miller net/mpls/mpls_iptunnel.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eb72f74f03125a3a80fb98f41e5aba55cad70c8c Author: Hariprasad Shenai Date: Wed Dec 9 17:16:35 2015 +0530 cxgb4: Handle clip return values Add a warn message when clip table overflows. If clip table isn't allocated, return from cxgb4_clip_release() to avoid panic. Disable offload if clip isn't enabled in the hardware. Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/clip_tbl.c | 11 +++++++++++ drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 22 ++++++++++++++++------ drivers/net/ethernet/chelsio/cxgb4/t4_regs.h | 4 ++++ 3 files changed, 31 insertions(+), 6 deletions(-) commit 515123e286b686d32256342318f20ff932ebac1b Author: Dan Carpenter Date: Wed Dec 9 13:41:29 2015 +0300 mlxsw: core: remove an unneeded condition We already know "err" is zero so there is no need to check. Signed-off-by: Dan Carpenter Acked-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 82a06429ae215b39320e925dfae72419865d6029 Author: Dan Carpenter Date: Wed Dec 9 13:33:51 2015 +0300 mlxsw: spectrum: fix some error handling The "err = " assignment is missing here. Fixes: 0d65fc13042f ('mlxsw: spectrum: Implement LAG port join/leave') Signed-off-by: Dan Carpenter Acked-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9dd2d6c5c9755b160fe0111bcdad9491676feea8 Author: Arnd Bergmann Date: Tue Dec 8 16:32:59 2015 +0100 netcp: add more __le32 annotations The handling of epib and psdata remains a bit unclear in the driver, as we access the same fields both as CPU-endian and through DMA from the device. Sparse warns about this: ti/netcp_core.c:1147:21: warning: incorrect type in assignment (different base types) ti/netcp_core.c:1147:21: expected unsigned int [usertype] *[assigned] epib ti/netcp_core.c:1147:21: got restricted __le32 * This uses __le32 types in a few places and uses __force where the code looks fishy. The previous patch should really have produced the correct behavior, but this second patch is needed to shut up the warnings about it. Ideally it would be slightly rewritten to not need those casts, but I don't dare do that without access to the hardware for proper testing. Signed-off-by: Arnd Bergmann Signed-off-by: David S. Miller drivers/net/ethernet/ti/netcp.h | 2 +- drivers/net/ethernet/ti/netcp_core.c | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) commit 899077791403ff7a2d8cfaa87bd1a82d729463e2 Author: Arnd Bergmann Date: Tue Dec 8 16:32:27 2015 +0100 netcp: try to reduce type confusion in descriptors The netcp driver produces tons of warnings when CONFIG_LPAE is enabled on ARM: drivers/net/ethernet/ti/netcp_core.c: In function 'netcp_tx_map_skb': drivers/net/ethernet/ti/netcp_core.c:1084:13: warning: passing argument 1 of 'set_words' from incompatible pointer type [-Wincompatible-pointer-types] This is the result of trying to pass a pointer to a dma_addr_t to a function that expects a u32 pointer to copy that into a DMA descriptor. Looking at that code in more detail to fix the warnings, I see multiple related problems: * The conversion functions are not endian-safe, as the DMA descriptors are almost certainly fixed-endian, but the CPU is not. * On 64-bit machines, passing a pointer through a u32 variable is a bug, accessing an indirect pointer as a u32 pointer even more so. * The handling of epib and psdata mixes native-endian and device-endian data. In this patch, I try to sort out the types for most accesses here, adding le32_to_cpu/cpu_to_le32 where appropriate, and passing pointers through two 32-bit words in the descriptor padding, to make it plausible that the driver does the right thing if compiled for big-endian or 64-bit systems. Signed-off-by: Arnd Bergmann Signed-off-by: David S. Miller drivers/net/ethernet/ti/netcp_core.c | 123 ++++++++++++++++++++--------------- include/linux/soc/ti/knav_dma.h | 22 +++---- 2 files changed, 82 insertions(+), 63 deletions(-) commit 7370c68d5b9a2e853600290e797a4a79fefaf1e7 Author: Rodrigo Vivi Date: Fri Dec 11 16:31:31 2015 -0800 drm/i915: PSR also doesn't have link_entry_time on SKL. This bit is also reserved on Skylake. Actually the only platform that supports this is Haswell, so let's fix this logic and apply this link entry time only for the platform that supports it, i.e. Haswell. This also changes the style to let more clear platform differences outside the reg write. We would probably catch this case sooner if separated, or not... Signed-off-by: Rodrigo Vivi Reviewed-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/1449880291-21388-1-git-send-email-rodrigo.vivi@intel.com drivers/gpu/drm/i915/intel_psr.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit bd8f27ba828efa2538bc86010f299a635e79249b Merge: 7eccfeb ba64e27 Author: Arnd Bergmann Date: Sat Dec 12 01:22:28 2015 +0100 Merge tag 'reset-for-4.5-2' of git://git.pengutronix.de/git/pza/linux into next/drivers Merge "Reset controller changes for v4.5 v2" from Philipp Zabel: - oftree support for getting reset devices by index - fixed return value consistency of of_reset_control_get - added support for STi co-processor resets - added STi status callback - added HiSilicon Hi6220 reset driver - added ath79 system restart support - various fixes * tag 'reset-for-4.5-2' of git://git.pengutronix.de/git/pza/linux: reset: ath79: Add system restart support arm64: dts: Add reset dts config for Hisilicon Hi6220 SoC reset: hi6220: Reset driver for hisilicon hi6220 SoC reset: hisilicon: document hisi-hi6220 reset controllers bindings reset: remove unused device pointer from struct reset_control commit 2bf53f4e48fd14b0447a14768c6b0cca47b21a19 Merge: 208ef7f 75d8e1b Author: Arnd Bergmann Date: Sat Dec 12 01:20:45 2015 +0100 Merge tag 'berlin64-soc-for-4.5-1' of git://git.infradead.org/users/hesselba/linux-berlin into next/config64 Merge "Marvell Berlin64 SoC changes (round 1)" from Sebastian Hesselbarth: - add PINCTRL dependency * tag 'berlin64-soc-for-4.5-1' of git://git.infradead.org/users/hesselba/linux-berlin: arm64: berlin: add the pinctrl dependency for Marvell Berlin SoCs commit 208ef7f18dcf28abf926d3723722d083120443ed Author: Masahiro Yamada Date: Tue Nov 24 18:08:29 2015 +0900 arm64: defconfig: enable UniPhier SoCs support Enable ARCH_UNIPHIER with its on-chip UART driver. Signed-off-by: Masahiro Yamada Signed-off-by: Arnd Bergmann arch/arm64/configs/defconfig | 2 ++ 1 file changed, 2 insertions(+) commit 56aaafb6b72f3357dac78a85cdbb5a6fc7aa40b3 Author: Masahiro Yamada Date: Tue Nov 24 18:08:28 2015 +0900 arm64: add Kconfig entry for Socionext UniPhier SoC family Add the ARM64 Linux support for Socionext UniPhier SoCs. Signed-off-by: Masahiro Yamada Signed-off-by: Arnd Bergmann arch/arm64/Kconfig.platforms | 6 ++++++ 1 file changed, 6 insertions(+) commit ba7ce91e1a869b7fe9bef777a72270a19e97e7dc Merge: 37c0fe6 05a64b3 Author: Arnd Bergmann Date: Sat Dec 12 01:15:31 2015 +0100 Merge tag 'renesas-arm64-defconfig2-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/config64 Merge "Second Round of Renesas ARM64 Based SoC Defconfig Updates for v4.5" from Simon Horman: * Enable Renesas Sound, DMAC, I2C, EthernetAVB and GPIO for R-Car Gen3 r8a7795/salvator-x * tag 'renesas-arm64-defconfig2-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: arm64: defconfig: add Renesas sound and AK4613 support arm64: defconfig: add Renesas R-Car DMAC driver support arm64: defconfig: Enable Renesas R-Car I2C Controller arm64: defconfig: enable EthernetAVB arm64: defconfig: Enable GPIO of Renesas R-Car Gen3 SoC commit 37c0fe6568dce9db064634ef3fb3d212507d9cba Merge: 31ade3b 727e8d0 Author: Arnd Bergmann Date: Sat Dec 12 01:12:56 2015 +0100 Merge tag 'renesas-arm64-defconfig-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/config64 Merge "Renesas ARM64 Based SoC Defconfig Updates for v4.5" from Simon Horman: * Enable Renesas r8a7795 SoC * tag 'renesas-arm64-defconfig-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: arm64: defconfig: renesas: Enable Renesas r8a7795 SoC commit 8b9a3fde5a10eb0ae689cf0a116f673c3c79d2bb Merge: 3ef6cf0 d8bd64c Author: Arnd Bergmann Date: Sat Dec 12 01:02:07 2015 +0100 Merge tag 'arm-soc/for-4.5/devicetree-arm64' of http://github.com/Broadcom/stblinux into next/dt64 Merge "Broadcom devicetree-arm64 changes for v4.5" from Florian Fainelli: This pull request contains Broadcom ARM64-based Device Tree changes: - Anup Patel adds L2 cache, SMMU, syscon-based reboot, PMU v3, iProc RNG200 (HWRNG) and NAND flash controller support to the Northstar 2 SoCs - Ray Jui adds the I2C Device Tree nodes to the Norsthar 2 SoCs - Jon Mason enables the clock providers on the Norsthar 2 SoCs * tag 'arm-soc/for-4.5/devicetree-arm64' of http://github.com/Broadcom/stblinux: ARM64: dts: enable clock support for Broadcom NS2 arm64: dts: Add BRCM IPROC NAND DT node for NS2 arm64: dts: Add I2C nodes for NS2 arm64: dts: Add IPROC RNG200 DT node for NS2 arm64: dts: Add ARM PMUv3 DT node in NS2 DT arm64: dts: Add syscon based reboot in DT for NS2 arm64: dts: Add SMMU DT node for NS2 arm64: dts: Add L2-cache DT node for NS2 commit 3ef6cf004331e68a4cdb6cc00050c71d14311f91 Merge: fc3359b 1544f99 Author: Arnd Bergmann Date: Sat Dec 12 00:59:49 2015 +0100 Merge tag 'berlin64-dt-for-4.5-1' of git://git.infradead.org/users/hesselba/linux-berlin into next/dt64 Merge "Marvell Berlin64 DT changes (round 1)" from Sebastian Hesselbarth: - add pinctrl nodes and uart0 pinmux - add watchdog nodes - add PSCI-1.0 support - add cpuidle support * tag 'berlin64-dt-for-4.5-1' of git://git.infradead.org/users/hesselba/linux-berlin: arm64: dts: berlin4ct: support cpuidle-dt arm64: dts: berlin: PSCI-1.0 support arm64: dts: berlin4ct: add watchdog nodes arm64: dts: berlin4ct: add default pinmux for uart0 arm64: dts: berlin4ct: add the pinctrl node commit fc3359b97f29538c9ffcf7bc71fbd13b7f7f2d04 Merge: 4702d59 5378e28 Author: Arnd Bergmann Date: Sat Dec 12 00:58:08 2015 +0100 Merge tag 'v4.5-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/dt64 Merge "rockchip dts64 changes for 4.5" from Heiko Stuebner: First round of 64bit devicetree changes for Rockchip socs. This includes support for the evaluation board of the rk3368 as well as the dts-part for the newly added thermal management support, rk3368 pwm nodes and an alias. * tag 'v4.5-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: arm64: dts: rockchip: add rk3368 evaluation board arm64: dts: rockchip: add the pwm node info for RK3368 SoCs arm64: dts: rockchip: Enable the Thermal on R88 board arm64: dts: rockchip: Add main thermal info to rk3368.dtsi arm64: dts: rockchip: Add the thermal data found on RK3368 arm64: dts: rockchip: Setup rk3368 ethernet0 alias for u-boot commit 4702d5993aa2d5e59659cc0fa9fe02c00cd8f719 Merge: fd0adfd 8000bc3 Author: Arnd Bergmann Date: Sat Dec 12 00:54:02 2015 +0100 Merge tag 'xgene-dts-for-v4.5-v1' of https://github.com/AppliedMicro/xgene-next into next/dt64 Merge "DTS changes for X-Gene platforms queued for v4.5" from Duc Dang This patch set adds DTS entries to support various IPs for X-Gene v1 and X-Gene v2 SoC: - X-Gene v1: Enable support for MMC, USB, GPIO controllers, I2C controller, L2 Cache topology - X-Gene v2: Enable support for MMC, USB, GPIO controller, I2C controller (with RTC), PCIe controller with GICv2m MSI, EDAC, L2 Cache topology, TRNG * tag 'xgene-dts-for-v4.5-v1' of https://github.com/AppliedMicro/xgene-next: arm64: dts: Add L2 cache topology for APM X-Gene SoC arm64: dts: Add RTC DTS entry for X-Gene v2 SoC platform arm64: dts: Add Designware I2C controller DTS entries for X-Gene v2 SoC platform arm64: dts: Add Designware I2C controller DTS entries for X-Gene v1 SoC arm64: dts: Add APM X-Gene v2 SoC EDAC DTS entries arm64: dts: Add APM X-Gene v2 SoC Designware GPIO controller DTS entry arm64: dts: Add Designware GPIO dts binding for APM X-Gene v1 platform arm64: dts: Add APM X-Gene v2 SoC GFC GPIO controller DTS entry arm64: dts: Add APM X-Gene v1 SoC GFC GPIO controller DTS entries arm64: dts: Add USB nodes for APM X-Gene v2 platforms arm64: dts: Add USB nodes for APM X-Gene v1 platforms arm64: dts: Add PCIe node for APM X-Gene v2 platforms arm64: dts: Add v2m MSI frame nodes for APM X-Gene v2 platforms arm64: dts: Add RNG device tree nodes for APM X-Gene v2 platform arm64: dts: X-Gene: Do not reset or enable/disable clock for AHB block arm64: dts: Add the arasan mmc DTS entries for APm X-Gene v2 SoC arm64: dts: Add the arasan mmc DTS entries for APM X-Gene v1 SoC commit fd0adfd82bceb3f668dde794efd80183c29409c4 Merge: 63747d3 672b793 Author: Arnd Bergmann Date: Sat Dec 12 00:53:07 2015 +0100 Merge tag 'renesas-arm64-dt2-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/dt64 Merge "Second Round of Renesas ARM64 Based SoC DT Updates for v4.5" from Simon Horman: * Enable GPIO, EthernetAVB, I2C and Sound on r8a7795/salvator-x * tag 'renesas-arm64-dt2-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: arm64: renesas: salvator-x: Sound DVC support arm64: renesas: salvator-x: Sound SRC support arm64: renesas: salvator-x: Sound SSI DMA support via BUSIF arm64: renesas: salvator-x: Sound SSI DMA support arm64: renesas: salvator-x: Sound SSI PIO support arm64: renesas: r8a7795: Sound DVC support arm64: renesas: r8a7795: Sound SRC support arm64: renesas: r8a7795: Sound SSI DMA support arm64: renesas: r8a7795: Sound SSI PIO support arm64: renesas: r8a7795: add AUDIO_DMAC support arm64: renesas: r8a7795 dtsi: Add all HSCIF nodes arm64: renesas: salvator-x: enable I2C arm64: renesas: r8a7795: add I2C support arm64: renesas: salvator-x: Setup ethernet0 alias for U-Boot arm64: dts: r8a7795: enable nfs root on Salvator-X board arm64: dts: r8a7795: enable EthernetAVB on Salvator-X arm64: dts: r8a7795: add EthernetAVB device node arm64: dts: r8a7795: add GPIO nodes commit 63747d3c27e283d0d0a035c71f461c8c6cc31364 Merge: 31ade3b b138e11 Author: Arnd Bergmann Date: Sat Dec 12 00:49:59 2015 +0100 Merge tag 'renesas-arm64-dt-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/dt64 Merge "Renesas ARM64 Based SoC DT Updates for v4.5" from Simon Horman: * Initial support for Renesas ARM64 Based r8a7795 SoC and Salvator-X board * tag 'renesas-arm64-dt-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: MAINTAINERS: Add entry for Renesas arm64 architecture arm64: renesas: add Salvator-X board support arm64: renesas: r8a7795: enable PFC arm64: renesas: r8a7795: Add all SCIF nodes arm64: renesas: r8a7795: Add dummy dma-controller nodes arm64: renesas: r8a7795: Add Renesas R8A7795 SoC support commit 28295a891500133a78b4fa6f1190d572c402fa66 Merge: dd270f2 89c6f2e Author: Arnd Bergmann Date: Sat Dec 12 00:32:07 2015 +0100 Merge tag 'omap-for-v4.5/dt-pt1' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/dt Merge "Device tree changes for omaps for v4.5 merge window" from Tony Lindgren: - Update all omaps to use pinctrl macros. This makes comparing the pinmux settings against the documentation much earlier. Javier compared the checksums of the generated dtb files to make sure nothing changed for the dtb files. - Updates for dm816x - Add GPMC DMA channels for am437x - Updates for LogicPD Torpedo - Basic support for CompuLab cm-t335 - Remove tps65217.dtsi file, we're better off adding SoC generic board dtsi files for the common features - Add support for ELM on am33xx - Add support for Bosch shc c3 board - Add qspi aliases for am437x and dra7 - Wake-up support for dra7-evm uart1 - Basic support for CompuLab sbc-t43 - Basic support for CompuLab cl-som-am57x - Use MMC pwrseq for libertas WLAN on igep0020 and igep0030 * tag 'omap-for-v4.5/dt-pt1' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: (97 commits) ARM: dts: omap3-igep0030: Use MMC pwrseq to init SDIO WiFi ARM: dts: omap3-igep0020: Use MMC pwrseq to init SDIO WiFi ARM: dts: am57xx: cl-som-am57x: skip resetting ETH PHYs ARM: dts: am57xx: sbc-am57x: add HDMI support ARM: dts: am57xx: compulab-sb-som: add HDMI connector ARM: dts: am57xx: sbc-am57x: add LCD support ARM: dts: am57xx: sbc-am57x: add GPIO expander support ARM: dts: am57xx: sbc-am57x: add EEPROM support ARM: dts: am57xx: sbc-am57x: add usb vbus pinmux ARM: dts: am57xx: cl-som-am57x: add MMC1 support ARM: dts: am57xx: sbc-am57x: add basic board support ARM: dts: am57xx: cl-som-am57x: add analog audio support ARM: dts: am57xx: cl-som-am57x: add touchscreen support ARM: dts: am57xx: cl-som-am57x: add USB support ARM: dts: am57xx: cl-som-am57x: add dual EMAC support ARM: dts: am57xx: cl-som-am57x: add spi-flash support ARM: dts: am57xx: cl-som-am57x: add eMMC support ARM: dts: am57xx: cl-som-am57x: add EEPROM support ARM: dts: am57xx: cl-som-am57x: add I2C3 support ARM: dts: am57xx: cl-som-am57x: dts: add RTC support ... commit dd270f24fb52d88cf6bfceb36266ad42e3d77ce9 Merge: 5d362a3 4c945e8 Author: Arnd Bergmann Date: Sat Dec 12 00:30:48 2015 +0100 Merge tag 'mvebu-dt-4.5-2' of git://git.infradead.org/linux-mvebu into next/dt Merge "mvebu dt for 4.5 (part 2)" from Gregory CLEMENT: - Fix Armada 388 GP dts - Add clock related to PMU for Dove - Add SolidRun Armada 388 Clearfog A1 dts * tag 'mvebu-dt-4.5-2' of git://git.infradead.org/linux-mvebu: ARM: dts: Add SolidRun Armada 388 Clearfog A1 DT file dt-bindings: add Marvell PMU documentation ARM: dts: dove: add Dove divider clocks dt-bindings: add Marvell core PLL and clock divider PMU documentation ARM: mvebu: remove duplicated regulator definition in Armada 388 GP commit 5d362a31a7d3b70b7822805621a277b137b37af1 Merge: 1d04ca2 4627629 Author: Arnd Bergmann Date: Sat Dec 12 00:29:38 2015 +0100 Merge tag 'mvebu-dt-4.5-1' of git://git.infradead.org/linux-mvebu into next/dt Merge "mvebu dt for 4.5 (part 1)" from Gregory CLEMENT: Update partition handling for ix4-300d * tag 'mvebu-dt-4.5-1' of git://git.infradead.org/linux-mvebu: ARM: dt: mvebu: ix4-300d: Cleanup NAND partition ranges ARM: dt: mvebu: ix4-300d: move partitions to partition sub-node ARM: dt: mvebu: ix4-300d: remove whole flash partition commit 1d04ca21ea09197730427813c2d13421f939b7a0 Merge: e9093d0 ac4111a Author: Arnd Bergmann Date: Sat Dec 12 00:27:46 2015 +0100 Merge tag 'berlin-dt-for-4.5-1' of git://git.infradead.org/users/hesselba/linux-berlin into next/dt Merge "Marvell Berlin DT changes (round 1)" from Sebastian Hesselbarth: - BG2Q cleanups (DMP eMMC, duplicated interrupt-parents) - add BG2, BG2CD, BG2Q watchdog nodes - add BG2Q DMP SDHCI1 nodes * tag 'berlin-dt-for-4.5-1' of git://git.infradead.org/users/hesselba/linux-berlin: arm: dts: berlin2q-marvell-dmp: add sdhci1 fully functionality arm: dts: berlin2: add watchdog nodes arm: dts: berlin2cd: add watchdog nodes arm: dts: berlin2q: add watchdog nodes arm: dts: berlin2q: remove duplicated interrupt-parent arm: dts: berlin2q-marvell-dmp: remove broken-cd from eMMC node commit e9093d045ae05629a3d70070322a9f96a764e942 Merge: 629b557 0661114 Author: Arnd Bergmann Date: Sat Dec 12 00:26:26 2015 +0100 Merge tag 'v4.5-rockchip-dts32-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/dt Merge "rockchip dts32 changes for 4.5" from Heiko Stuebner: First round of arm devicetree changes. Among the bigger changes are two new Veyron boards, support for the dual-core cortex-a7 rk3036 soc and addition of support for the crypto engine of the rk3288. Smaller changes include some IR receivers, updates of thermal settings more reflecting real- life and testing-results. * tag 'v4.5-rockchip-dts32-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: ARM: dts: rockchip: add gpio-ir-receiver to the R89 board ARM: dts: rockchip: add touchscreen node to veyron minnie ARM: dts: rockchip: add veyron-mickey board ARM: dts: rockchip: add veyron-brain board ARM: dts: rockchip: make sure edp_24m is associated to xin24m on veyron ARM: dts: rockchip: override thermal settings on veyron-speedy ARM: dts: rockchip: update the thermal management on rk3288 ARM: dts: rockchip: Add Crypto node for rk3288 ARM: dts: rockchip: add rk3036-evb board ARM: dts: rockchip: add core rk3036 dtsi clk: rockchip: add dt-binding header for rk3036 clk: rockchip: add an id for rk3288 crypto clk ARM: dts: rockchip: Add IR receiver to RK3288 Radxa Rock 2 Square ARM: dts: rockchip: add channels properties for i2s ARM: dts: rockchip: set system-power-controller property on rk3288-rock2 ARM: dts: rockchip: Setup rk3066/rk3188 ethernet0 alias for u-boot ARM: dts: rockchip: Setup rk3288 ethernet0 alias for u-boot commit 629b557ab4cd339bce759a1d87a56842df43b4a7 Author: Masahiro Yamada Date: Thu Dec 3 15:33:57 2015 +0900 ARM: dts: uniphier: factor out common nodes to uniphier-common32.dtsi UniPhier SoCs (except PH1-sLD3) have several nodes in common. Factor out them into uniphier-common32.dtsi. This improves the code maintainability. PH1-sLD3 is so old that it has more or less different register maps than the others. So, it cannot be included in this refactoring. Signed-off-by: Masahiro Yamada Signed-off-by: Arnd Bergmann arch/arm/boot/dts/uniphier-common32.dtsi | 135 +++++++++++++ arch/arm/boot/dts/uniphier-ph1-ld4.dtsi | 265 +++++++++---------------- arch/arm/boot/dts/uniphier-ph1-pro4.dtsi | 288 ++++++++++------------------ arch/arm/boot/dts/uniphier-ph1-pro5.dtsi | 274 +++++++++----------------- arch/arm/boot/dts/uniphier-ph1-sld8.dtsi | 266 +++++++++---------------- arch/arm/boot/dts/uniphier-proxstream2.dtsi | 269 +++++++++----------------- 6 files changed, 605 insertions(+), 892 deletions(-) commit 618a43eaea14cb4f6526a4e93c6b791778d160b0 Author: Masahiro Yamada Date: Thu Dec 3 15:33:56 2015 +0900 ARM: dts: uniphier: change IRQ number of UART3 of PH1-Pro4 SoC The UART3 is assigned with IRQ 29 for old SoCs, IRQ 177 for new ones, and PH1-Pro4 is on the boundary. PH1-sLD3: UART3 is unavailable PH1-LD4, PH1-sLD8: only IRQ 29 is supported PH1-Pro4: both IRQ 29 and 177 are supported PH1-Pro5, ProXstream2, PH1-LD6b: only IRQ 177 is supported This SoC can choose either IRQ 29 or IRQ 177, but the former is shared with another hardware (low speed serial0). The latter is dedicated for this hardware and more recommended. Signed-off-by: Masahiro Yamada Signed-off-by: Arnd Bergmann arch/arm/boot/dts/uniphier-ph1-pro4.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1a7022f181ec40d0f63ab3ea7f196e330e59dc47 Merge: 406ca44 2f23cda Author: Arnd Bergmann Date: Sat Dec 12 00:23:07 2015 +0100 Merge tag 'ux500-dt-for-arm-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson into next/dt Merge "Device Tree changes for Ux500" from Linus Walleij: - Push the Rohm touchscreen to the STUIB, as the TVK UIB has a Synaptics RMI4 touchscreen. - Set up the right sensor IRQs for the Snowball, so that periodic data ready-IRQ capture starts working. - Use wakeup-source consequently. - Remove legacy regulator-compatible strings. - Define the sensors on the HREFP TVK board properly. * tag 'ux500-dt-for-arm-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson: ARM: ux500: configure the sensors on the TVK board correctly ARM: u300: remove regulator-compatible usage ARM: ux500: remove regulator-compatible usage ARM: ux500: replace legacy *,wakeup property with wakeup-source ARM: ux500: Assign proper sensor IRQs for Snowball ARM: ux500: push down Rohm TS to STUIB commit 60f929730a13e69c9770221122cbdb6a91c87acf Merge: 80f7273 c8cd74a Author: Arnd Bergmann Date: Sat Dec 12 00:20:43 2015 +0100 Merge tag 'renesas-cleanup-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/cleanup Merge "Renesas ARM Based SoC Cleanup for v4.5" from Simon Horman: * Remove now unnecessary header * Introduce ARCH_RENESAS * Remove unmaintened URL from MAINTAINERS * tag 'renesas-cleanup-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: shmobile: Remove legacy mach/irqs.h ARM: shmobile: Introduce ARCH_RENESAS MAINTAINERS: Remove link to oss.renesas.com which is closed commit 80f7273c05b3447c5890ee6eb639d7c49ce100d7 Merge: 31ade3b e324654 Author: Arnd Bergmann Date: Sat Dec 12 00:17:55 2015 +0100 Merge branch 'treewide/cleanup' into next/cleanup These are a couple of changes that may conflict with other branches, so we're keeping them in a separate branch that can be merged into those if necessary. * treewide/cleanup: ARM: use "depends on" for SoC configs instead of "if" after prompt ARM/clocksource: use automatic DT probing for ux500 PRCMU ARM: use const and __initconst for smp_operations ARM: hisi: do not export smp_operations structures commit 406ca4493cbf1946d6b161c23d3be681df73d53a Merge: 6da0608 c8d9fdb Author: Arnd Bergmann Date: Sat Dec 12 00:15:32 2015 +0100 Merge tag 'renesas-dt2-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/dt Merge "Second Round of Renesas ARM Based SoC DT Updates for v4.5" from Simon Horman: * sh73a0, r8a7740: Add L2 cache-controller node * r8a7791, r8a7794: remove deprecated #gpio-range-cells * r8a7793: Add DU support and enable for VGA port * r8a7790: switch console back to scif0 * alt: Correct ether and scif2 pinmux * koelsch: Correct hdmi pinmux * silk, lager, porter, bockw: Move SPI FLASH partitions to subnode * bockw: Add schi0 pinmux * tag 'renesas-dt2-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: shmobile: sh73a0 dtsi: Add L2 cache-controller node ARM: shmobile: r8a7740 dtsi: Add L2 cache-controller node ARM: shmobile: alt: Correct ether pfc ARM: shmobile: alt: Correct scif2 pfc ARM: shmobile: silk: Move SPI FLASH partitions to subnode ARM: shmobile: lager: Move SPI FLASH partitions to subnode ARM: shmobile: porter: Move SPI FLASH partitions to subnode ARM: shmobile: bockw: Move SPI FLASH partition to subnode ARM: shmobile: r8a7791: koelsch: Fix pinmux for HDMI ARM: shmobile: r8a7794: remove deprecated #gpio-range-cells from dtsi ARM: shmobile: r8a7791: remove deprecated #gpio-range-cells from dtsi ARM: shmobile: r8a7793: Add DU node to device tree ARM: shmobile: r8a7794: alt: Enable PFC DU for the VGA port ARM: shmobile: bockw dts: define sdhi0 pins with pull-ups ARM: shmobile: r8a7790: switch console back to scif0 commit d59df5d1cdbddf098f934d68426731ecac0d11c8 Author: Matthias Brugger Date: Fri Dec 11 15:45:58 2015 +0100 ARM: dts: rockchip: Fix typo in rk3288 sdmmc card detect pin name The card detect pin is currently called sdmcc-cd. This patch fixes the typo and renames the pin to sdmmc-cd. Signed-off-by: Matthias Brugger Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3288.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cfeb91b375ad5f52665e00d374a4e403d2e6063e Author: Christoph Hellwig Date: Fri Dec 11 11:54:28 2015 -0800 IB/iser: Convert to CQ abstraction Use the new CQ abstraction to simplify completions in the iSER initiator. Signed-off-by: Sagi Grimberg Signed-off-by: Christoph Hellwig drivers/infiniband/ulp/iser/iscsi_iser.h | 72 +++++--- drivers/infiniband/ulp/iser/iser_initiator.c | 142 ++++++++++----- drivers/infiniband/ulp/iser/iser_memory.c | 21 ++- drivers/infiniband/ulp/iser/iser_verbs.c | 258 ++++++--------------------- 4 files changed, 210 insertions(+), 283 deletions(-) commit 7edc5a999d6bec1b5ef4d363b78578c0a723ef69 Author: Sagi Grimberg Date: Wed Nov 4 10:50:32 2015 +0200 IB/iser: Use helper for container_of Nicer this way. Signed-off-by: Sagi Grimberg Signed-off-by: Christoph Hellwig drivers/infiniband/ulp/iser/iscsi_iser.h | 6 ++++++ drivers/infiniband/ulp/iser/iser_initiator.c | 3 +-- drivers/infiniband/ulp/iser/iser_verbs.c | 6 ++---- 3 files changed, 9 insertions(+), 6 deletions(-) commit 0f512b34c637db18cd0cf27a467acd173401209d Author: Sagi Grimberg Date: Wed Nov 4 10:50:31 2015 +0200 IB/iser: Use a dedicated descriptor for login We'll need it later with the new CQ abstraction. also switch login bufs to void pointers. Signed-off-by: Sagi Grimberg Signed-off-by: Christoph Hellwig drivers/infiniband/ulp/iser/iscsi_iser.h | 30 +++++-- drivers/infiniband/ulp/iser/iser_initiator.c | 128 +++++++++++++-------------- drivers/infiniband/ulp/iser/iser_verbs.c | 14 +-- 3 files changed, 89 insertions(+), 83 deletions(-) commit 1dc7b1f10dcbbaf875a0770b2b26d63bc326d92a Author: Christoph Hellwig Date: Fri Nov 13 12:57:13 2015 +0100 IB/srp: use the new CQ API This also moves recv completion handling from hardirq context into softirq context. Signed-off-by: Christoph Hellwig drivers/infiniband/ulp/srp/ib_srp.c | 173 +++++++++++++++++------------------- drivers/infiniband/ulp/srp/ib_srp.h | 7 +- 2 files changed, 86 insertions(+), 94 deletions(-) commit 59fae4deaad388351c690422b88787e6fd5f45ab Author: Christoph Hellwig Date: Tue Sep 29 13:00:44 2015 +0200 IB/srpt: chain RDMA READ/WRITE requests Remove struct rdma_iu and instead allocate the struct ib_rdma_wr array early and fill out directly. This allows us to chain the WRs, and thus archives both less lock contention on the HCA workqueue as well as much simpler error handling. Signed-off-by: Christoph Hellwig Reviewed-by: Bart Van Assche drivers/infiniband/ulp/srpt/ib_srpt.c | 427 ++++++++++------------------------ drivers/infiniband/ulp/srpt/ib_srpt.h | 48 +--- 2 files changed, 130 insertions(+), 345 deletions(-) commit 14d3a3b2498edadec344cb11e60e66091f5daf63 Author: Christoph Hellwig Date: Fri Dec 11 11:53:03 2015 -0800 IB: add a proper completion queue abstraction This adds an abstraction that allows ULPs to simply pass a completion object and completion callback with each submitted WR and let the RDMA core handle the nitty gritty details of how to handle completion interrupts and poll the CQ. In detail there is a new ib_cqe structure which just contains the completion callback, and which can be used to get at the containing object using container_of. It is pointed to by the WR and WC as an alternative to the wr_id field, similar to how many ULPs already use the field to store a pointer using casts. A driver using the new completion callbacks allocates it's CQs using the new ib_create_cq API, which in addition to the number of CQEs and the completion vectors also takes a mode on how we poll for CQEs. Three modes are available: direct for drivers that never take CQ interrupts and just poll for them, softirq to poll from softirq context using the to be renamed blk-iopoll infrastructure which takes care of rearming and budgeting, or a workqueue for consumer who want to be called from user context. Thanks a lot to Sagi Grimberg who helped reviewing the API, wrote the current version of the workqueue code because my two previous attempts sucked too much and converted the iSER initiator to the new API. Signed-off-by: Christoph Hellwig drivers/infiniband/Kconfig | 1 + drivers/infiniband/core/Makefile | 2 +- drivers/infiniband/core/cq.c | 209 ++++++++++++++++++++++++++++++++ drivers/infiniband/core/device.c | 15 ++- drivers/infiniband/ulp/ipoib/ipoib_cm.c | 2 +- drivers/infiniband/ulp/srp/ib_srp.c | 6 +- include/rdma/ib_verbs.h | 38 +++++- 7 files changed, 264 insertions(+), 9 deletions(-) commit 320092a05dab2f44819c42f33d6b51efb6c474f2 Author: Boris BREZILLON Date: Fri Dec 11 15:02:34 2015 +0100 mtd: nand: denali: add missing nand_release() call in denali_remove() Unregister the NAND device from the NAND subsystem when removing a denali NAND controller, otherwise the MTD attached to the NAND device is still exposed by the MTD layer, and accesses to this device will likely crash the system. Fixes: 2a0a288ec258 ("mtd: denali: split the generic driver and PCI layer") Signed-off-by: Boris Brezillon Acked-by: Dinh Nguyen Signed-off-by: Brian Norris drivers/mtd/nand/denali.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 839a301dc2c007ec942b73a0025695056648f59b Author: Christoph Hellwig Date: Mon Dec 7 06:57:52 2015 -0800 irq_poll: remove unused data and max fields Signed-off-by: Christoph Hellwig Reviewed-by: Bart Van Assche include/linux/irq_poll.h | 2 -- 1 file changed, 2 deletions(-) commit 83af187d1b776753d58b53d155318d94f9428e92 Author: Christoph Hellwig Date: Mon Dec 7 06:57:25 2015 -0800 irq_poll: mark __irq_poll_complete static Signed-off-by: Christoph Hellwig Reviewed-by: Bart Van Assche include/linux/irq_poll.h | 1 - lib/irq_poll.c | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) commit 0bc92ace52ef3ed1c8eb9bcf36cd3d7ca72d5d14 Author: Christoph Hellwig Date: Mon Dec 7 06:56:36 2015 -0800 irq_poll: fold irq_poll_disable_pending into irq_poll_softirq Signed-off-by: Christoph Hellwig Reviewed-by: Bart Van Assche include/linux/irq_poll.h | 5 ----- lib/irq_poll.c | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) commit ea51190c03150fce4d9e428bfb608abbe0991db8 Author: Christoph Hellwig Date: Mon Dec 7 06:41:11 2015 -0800 irq_poll: fold irq_poll_sched_prep into irq_poll_sched There is no good reason to keep them apart, and this makes using the API a bit simpler. Signed-off-by: Christoph Hellwig Reviewed-by: Bart Van Assche drivers/scsi/be2iscsi/be_main.c | 6 ++---- drivers/scsi/ipr.c | 3 +-- include/linux/irq_poll.h | 13 ------------- lib/irq_poll.c | 10 +++++++--- 4 files changed, 10 insertions(+), 22 deletions(-) commit 78d0264eb7a938f1eaf59fcb2d3f7da2567369d3 Author: Christoph Hellwig Date: Mon Dec 7 06:38:28 2015 -0800 irq_poll: don't disable new irq_poll instances There is no good reason to start out disabled - drivers can control if the poll instance can be scheduled by simply not scheduling it yet. Signed-off-by: Christoph Hellwig Reviewed-by: Bart Van Assche drivers/scsi/be2iscsi/be_main.c | 2 -- drivers/scsi/ipr.c | 2 -- lib/irq_poll.c | 4 +--- 3 files changed, 1 insertion(+), 7 deletions(-) commit 511cbce2ff8b9d322077909ee90c5d4b67b29b75 Author: Christoph Hellwig Date: Tue Nov 10 14:56:14 2015 +0100 irq_poll: make blk-iopoll available outside the block layer The new name is irq_poll as iopoll is already taken. Better suggestions welcome. Signed-off-by: Christoph Hellwig Reviewed-by: Bart Van Assche Documentation/kernel-per-CPU-kthreads.txt | 2 +- block/Makefile | 2 +- block/blk-iopoll.c | 224 ------------------------------ drivers/scsi/Kconfig | 1 + drivers/scsi/be2iscsi/Kconfig | 1 + drivers/scsi/be2iscsi/be.h | 4 +- drivers/scsi/be2iscsi/be_iscsi.c | 4 +- drivers/scsi/be2iscsi/be_main.c | 24 ++-- drivers/scsi/ipr.c | 28 ++-- drivers/scsi/ipr.h | 4 +- include/linux/blk-iopoll.h | 46 ------ include/linux/interrupt.h | 2 +- include/linux/irq_poll.h | 46 ++++++ include/trace/events/irq.h | 2 +- lib/Kconfig | 5 + lib/Makefile | 1 + lib/irq_poll.c | 221 +++++++++++++++++++++++++++++ tools/lib/traceevent/event-parse.c | 2 +- tools/perf/util/trace-event-parse.c | 2 +- 19 files changed, 313 insertions(+), 308 deletions(-) commit 618100f8a84b8a97f7c1a0e03acf0d466102f40f Merge: 9e7d18c 0bdf5a0 Author: Daniel Vetter Date: Fri Dec 11 19:28:27 2015 +0100 Merge tag 'drm-i915-get-eld' of tiwai/sound into drm-intel-next-queued Add get_eld audio component for i915/HD-audio Currently, the HDMI/DP audio status and ELD are notified and obtained via the hardware-level communication over HD-audio unsolicited event and verbs although the graphics driver holds the exactly same information. As we already have a notification via audio component, this is another step forward; namely, the audio driver may fetch directly the audio status and ELD via the new component op. Signed-off-by: Daniel Vetter commit 29ab875b7b4892af1a6cd0084faed37245b8dd2c Author: Linus Walleij Date: Tue Dec 8 22:45:10 2015 +0100 gpio: forward-declare enum gpiod_flags This enum is used in the gpiolib.h header file, yet is not included so plainly including this file (and some drivers do) will raise compile problems. Signed-off-by: Linus Walleij drivers/gpio/gpiolib.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fea0fe60527667282913cf9f2becb5f7c67d6185 Author: Jeffy Chen Date: Wed Dec 9 17:04:06 2015 +0800 pinctrl: rockchip: add support for the rk3228 The pinctrl of rk3228 is much the same as rk3288's, but without pmu. Signed-off-by: Jeffy Chen Reviewed-by: Heiko Stuebner Acked-by: Rob Herring Signed-off-by: Linus Walleij .../bindings/pinctrl/rockchip,pinctrl.txt | 3 +- drivers/pinctrl/pinctrl-rockchip.c | 53 ++++++++++++++++++++++ 2 files changed, 55 insertions(+), 1 deletion(-) commit 32d6397805d00573ce1fa55f408ce2bca15b0ad3 Author: Will Deacon Date: Thu Dec 10 16:05:36 2015 +0000 arm64: mm: ensure that the zero page is visible to the page table walker In paging_init, we allocate the zero page, memset it to zero and then point TTBR0 to it in order to avoid speculative fetches through the identity mapping. In order to guarantee that the freshly zeroed page is indeed visible to the page table walker, we need to execute a dsb instruction prior to writing the TTBR. Cc: # v3.14+, for older kernels need to drop the 'ishst' Signed-off-by: Will Deacon arch/arm64/mm/mmu.c | 3 +++ 1 file changed, 3 insertions(+) commit 9cb9c9e5ba8453537e8e645318edf231fe54eaf9 Author: Will Deacon Date: Tue Nov 17 14:45:47 2015 +0000 arm64: Documentation: add list of software workarounds for errata It's not immediately obvious which hardware errata are worked around in the Linux kernel for an arbitrary kernel tree, so add a file to keep track of what we're working around. Acked-by: Catalin Marinas Signed-off-by: Will Deacon Documentation/arm64/silicon-errata.txt | 58 ++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) commit f00083cae331e5d3eecade6b4fdc35d0825e73ef Author: Mark Rutland Date: Fri Dec 11 11:04:31 2015 +0000 arm64: mm: place __cpu_setup in .text We drop __cpu_setup in .text.init, which ends up being part of .text. The .text.init section was a legacy section name which has been unused elsewhere for a long time. The ".text.init" name is misleading if read as a synonym for ".init.text". Any CPU may execute __cpu_setup before turning the MMU on, so it should simply live in .text. Remove the pointless section assignment. This will leave __cpu_setup in the .text section. Signed-off-by: Mark Rutland Cc: Catalin Marinas Cc: Will Deacon Signed-off-by: Will Deacon arch/arm64/mm/proc.S | 2 -- 1 file changed, 2 deletions(-) commit 9e7d18c08a4ec3b76b6a0994e93258decb250fbe Author: Dave Gordon Date: Thu Dec 10 18:51:24 2015 +0000 drm/i915: mark a newly-created GEM object dirty when filled with data When creating a new (pageable) GEM object and filling it with data, we must mark it as 'dirty', i.e. backing store is out-of-date w.r.t. the newly-written content. This ensures that if the object is evicted under memory pressure, its pages in the pagecache will be written to backing store rather than discarded. Based on an original version by Alex Dai. Signed-off-by: Alex Dai Signed-off-by: Dave Gordon Cc: Chris Wilson Link: http://patchwork.freedesktop.org/patch/msgid/1449773486-30822-3-git-send-email-david.s.gordon@intel.com Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 1 + 1 file changed, 1 insertion(+) commit 033908aed5a596f6202c848c6bbc8a40fb1a8490 Author: Dave Gordon Date: Thu Dec 10 18:51:23 2015 +0000 drm/i915: mark GEM object pages dirty when mapped & written by the CPU In various places, a single page of a (regular) GEM object is mapped into CPU address space and updated. In each such case, either the page or the the object should be marked dirty, to ensure that the modifications are not discarded if the object is evicted under memory pressure. The typical sequence is: va = kmap_atomic(i915_gem_object_get_page(obj, pageno)); *(va+offset) = ... kunmap_atomic(va); Here we introduce i915_gem_object_get_dirty_page(), which performs the same operation as i915_gem_object_get_page() but with the side-effect of marking the returned page dirty in the pagecache. This will ensure that if the object is subsequently evicted (due to memory pressure), the changes are written to backing store rather than discarded. Note that it works only for regular (shmfs-backed) GEM objects, but (at least for now) those are the only ones that are updated in this way -- the objects in question are contexts and batchbuffers, which are always shmfs-backed. Separate patches deal with the cases where whole objects are (or may be) dirtied. v3: Mark two more pages dirty in the page-boundary-crossing cases of the execbuffer relocation code [Chris Wilson] Signed-off-by: Dave Gordon Cc: Chris Wilson Link: http://patchwork.freedesktop.org/patch/msgid/1449773486-30822-2-git-send-email-david.s.gordon@intel.com Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 3 +++ drivers/gpu/drm/i915/i915_gem.c | 15 +++++++++++++++ drivers/gpu/drm/i915/i915_gem_execbuffer.c | 8 ++++---- drivers/gpu/drm/i915/i915_gem_render_state.c | 2 +- drivers/gpu/drm/i915/i915_guc_submission.c | 2 +- drivers/gpu/drm/i915/intel_lrc.c | 11 ++++------- 6 files changed, 28 insertions(+), 13 deletions(-) commit c5baa566db793cbd931f64d265cdc7d744c6169a Author: Tomas Elf Date: Fri Oct 23 18:02:37 2015 +0100 drm/i915: Update to post-reset execlist queue clean-up When clearing an execlist queue, instead of traversing it and unreferencing all requests while holding the spinlock (which might lead to thread sleeping with IRQs are turned off - bad news!), just move all requests to the retire request list while holding spinlock and then drop spinlock and invoke the execlists request retirement path, which already deals with the intricacies of purging/dereferencing execlist queue requests. This patch can be considered v3 of: commit b96db8b81c54ef30485ddb5992d63305d86ea8d3 Author: Tomas Elf drm/i915: Grab execlist spinlock to avoid post-reset concurrency issues This patch assumes v2 of the above patch is part of the baseline, reverts v2 and adds changes on top to turn it into v3. Signed-off-by: Tomas Elf Cc: Tvrtko Ursulin Cc: Chris Wilson Link: http://patchwork.freedesktop.org/patch/msgid/1445619757-19822-1-git-send-email-tomas.elf@intel.com Reviewed-by: Thomas Daniel Reviewed-by: Dave Gordon Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) commit 56c48978413ec5a22b960826948063cae5df5a5f Author: Deepak M Date: Wed Dec 9 20:14:04 2015 +0530 drm/i915: dual link pipe selection for bxt Pipe is assigned based on the port, but it should be based on current crtc. Correcting the same in this patch. v2: Use macro BXT_PIPE_SELECT(pipe) (Daniel) Signed-off-by: Deepak M Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 4 +--- drivers/gpu/drm/i915/intel_dsi.c | 15 +++------------ 2 files changed, 4 insertions(+), 15 deletions(-) commit 2c1a27840394428d8f44fe5d7509dd20574d0573 Author: Alex Deucher Date: Mon Dec 7 17:02:53 2015 -0500 drm/amdgpu: add more debugging output for driver failures Add more fine grained debugging output for init/fini/suspend/ resume failures. Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 73 +++++++++++++++++++++++------- 1 file changed, 57 insertions(+), 16 deletions(-) commit abdfb850ca99a27557564e4fcf4b137e209ebfef Author: Flora Cui Date: Fri Nov 20 11:40:53 2015 +0800 drm/amdgpu: update rev id register for VI Change-Id: I2ae9bb4a929f7c0c8783e0be563ae04be77596e2 Signed-off-by: Flora Cui Reviewed-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/vi.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit c27816a883575037ec67e7f92fbd214648a1c1cb Author: Flora Cui Date: Tue Dec 8 11:23:29 2015 +0800 drm/amdgpu/gfx8: update PA_SC_RASTER_CONFIG:PKR_MAP only Use default value as a base. Signed-off-by: Flora Cui Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3b55ddadef631d8081cb2f73c6c7cb80c634ba2b Author: Flora Cui Date: Wed Dec 2 09:56:06 2015 +0800 drm/amdgpu/gfx8: Enable interrupt on ME1_PIPE3 Otherwise FW cannot see the RLC ACK for the memory clean request It's for Stoney. Signed-off-by: Flora Cui Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 5 +++++ 1 file changed, 5 insertions(+) commit d6e6e14fa61dcabbc05092ea124540280573720c Author: LABBE Corentin Date: Fri Dec 11 13:58:59 2015 +0100 drm: modes: Revert cc344980c767 "replace simple_strtoul by kstrtouint" My latest commit introduce some case where a valid mode, could be rejected. simple_strtox functions stop at first non-digit character, but kstrtox not. So args like "video=HDMI-A-1:720x480-16@60" will be reject when checking 16@. Discussions about this change comes to the conclusion that the best solution is to revert my commit cc344980c76748e57c9c03100c2a14d36ab00334. Signed-off-by: LABBE Corentin Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449838739-29969-1-git-send-email-clabbe.montjoie@gmail.com drivers/gpu/drm/drm_modes.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) commit 45f4d3ab3ee8d12471e47057ea4d0d86167b25a0 Author: Hubert Chrzaniuk Date: Fri Dec 11 14:21:22 2015 +0100 EDAC, sb_edac: Set fixed DIMM width on Xeon Knights Landing Knights Landing does not come with register that could be used to fetch DIMM width. However the value is fixed for this architecture so it can be hardcoded. Signed-off-by: Hubert Chrzaniuk Cc: Doug Thompson Cc: Mauro Carvalho Chehab Cc: linux-edac Cc: lukasz.anaczkowski@intel.com Link: http://lkml.kernel.org/r/1449840082-18673-1-git-send-email-hubert.chrzaniuk@intel.com Signed-off-by: Borislav Petkov drivers/edac/sb_edac.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit c4cf3b454ecaa222aad9017932bd3b9c9325d931 Author: Borislav Petkov Date: Mon Nov 30 19:02:01 2015 +0100 EDAC: Rework workqueue handling Hide the EDAC workqueue pointer in a separate compilation unit and add accessors for the workqueue manipulations needed. Remove edac_pci_reset_delay_period() which wasn't used by anything. It seems it got added without a user with 91b99041c1d5 ("drivers/edac: updated PCI monitoring") Signed-off-by: Borislav Petkov drivers/edac/Makefile | 2 +- drivers/edac/edac_device.c | 28 +++++++++++----------------- drivers/edac/edac_mc.c | 19 +++++++------------ drivers/edac/edac_module.c | 29 ----------------------------- drivers/edac/edac_module.h | 7 ++++++- drivers/edac/edac_pci.c | 32 ++++---------------------------- drivers/edac/wq.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 71 insertions(+), 88 deletions(-) commit e136fa016f2f06ca6e00d4f99894b4424f3f2a5c Author: Borislav Petkov Date: Mon Nov 30 15:07:28 2015 +0100 EDAC: Make edac_device workqueue setup/teardown functions static They're not used anywhere else. Signed-off-by: Borislav Petkov drivers/edac/edac_device.c | 6 +++--- drivers/edac/edac_module.h | 3 --- 2 files changed, 3 insertions(+), 6 deletions(-) commit d4538000ca4354a2c07cdd31ce994af7d23e24d6 Author: Borislav Petkov Date: Mon Nov 30 14:20:41 2015 +0100 EDAC: Remove edac_get_sysfs_subsys() error handling It cannot fail now. We either load EDAC core after having successfully initialized edac_subsys or we don't. Signed-off-by: Borislav Petkov drivers/edac/edac_device_sysfs.c | 5 ----- drivers/edac/edac_mc_sysfs.c | 11 +---------- drivers/edac/edac_pci_sysfs.c | 10 +--------- 3 files changed, 2 insertions(+), 24 deletions(-) commit a97d26270169dc30ef28f0860097b7dc793206be Author: Borislav Petkov Date: Mon Nov 30 14:15:31 2015 +0100 EDAC: Unexport and make edac_subsys static ... and use the accessor instead. Signed-off-by: Borislav Petkov drivers/edac/edac_module.c | 3 +-- include/linux/edac.h | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) commit 733476cf207faf574b132523ff2aee78b488ed6b Author: Borislav Petkov Date: Fri Nov 27 11:40:43 2015 +0100 EDAC: Rip out the edac_subsys reference counting This was really dumb - reference counting for the main EDAC sysfs object. While we could've simply registered it as the first thing in the module init path and then hand it around to what needs it. Do that and rip out all the code around it, thus simplifying the whole handling significantly. Move the edac_subsys node back to edac_module.c. Signed-off-by: Borislav Petkov drivers/edac/edac_device_sysfs.c | 6 +----- drivers/edac/edac_mc_sysfs.c | 5 +---- drivers/edac/edac_module.c | 40 +++++++++++++++++++++++++++++++++++++++ drivers/edac/edac_pci_sysfs.c | 6 +----- drivers/edac/edac_stub.c | 41 ---------------------------------------- include/linux/edac.h | 1 - 6 files changed, 43 insertions(+), 56 deletions(-) commit fcd5c4dd8201595d4c598c9cca5e54760277d687 Author: Borislav Petkov Date: Fri Nov 27 10:38:38 2015 +0100 EDAC: Robustify workqueues destruction EDAC workqueue destruction is really fragile. We cancel delayed work but if it is still running and requeues itself, we still go ahead and destroy the workqueue and the queued work explodes when workqueue core attempts to run it. Make the destruction more robust by switching op_state to offline so that requeuing stops. Cancel any pending work *synchronously* too. EDAC i7core: Driver loaded. general protection fault: 0000 [#1] SMP CPU 12 Modules linked in: Supported: Yes Pid: 0, comm: kworker/0:1 Tainted: G IE 3.0.101-0-default #1 HP ProLiant DL380 G7 RIP: 0010:[] [] __queue_work+0x17/0x3f0 < ... regs ...> Process kworker/0:1 (pid: 0, threadinfo ffff88019def6000, task ffff88019def4600) Stack: ... Call Trace: call_timer_fn run_timer_softirq __do_softirq call_softirq do_softirq irq_exit smp_apic_timer_interrupt apic_timer_interrupt intel_idle cpuidle_idle_call cpu_idle Code: ... RIP __queue_work RSP <...> Signed-off-by: Borislav Petkov Cc: drivers/edac/edac_device.c | 11 ++++------- drivers/edac/edac_mc.c | 14 +++----------- drivers/edac/edac_pci.c | 9 ++++----- 3 files changed, 11 insertions(+), 23 deletions(-) commit 12e26969b32c79018165d52caff3762135614aa1 Author: Borislav Petkov Date: Tue Dec 1 15:52:36 2015 +0100 EDAC, mc_sysfs: Fix freeing bus' name I get the splat below when modprobing/rmmoding EDAC drivers. It happens because bus->name is invalid after bus_unregister() has run. The Code: section below corresponds to: .loc 1 1108 0 movq 672(%rbx), %rax # mci_1(D)->bus, mci_1(D)->bus .loc 1 1109 0 popq %rbx # .loc 1 1108 0 movq (%rax), %rdi # _7->name, jmp kfree # and %rax has some funky stuff 2030203020312030 which looks a lot like something walked over it. Fix that by saving the name ptr before doing stuff to string it points to. general protection fault: 0000 [#1] SMP Modules linked in: ... CPU: 4 PID: 10318 Comm: modprobe Tainted: G I EN 3.12.51-11-default+ #48 Hardware name: HP ProLiant DL380 G7, BIOS P67 05/05/2011 task: ffff880311320280 ti: ffff88030da3e000 task.ti: ffff88030da3e000 RIP: 0010:[] [] edac_unregister_sysfs+0x22/0x30 [edac_core] RSP: 0018:ffff88030da3fe28 EFLAGS: 00010292 RAX: 2030203020312030 RBX: ffff880311b4e000 RCX: 000000000000095c RDX: 0000000000000001 RSI: ffff880327bb9600 RDI: 0000000000000286 RBP: ffff880311b4e750 R08: 0000000000000000 R09: ffffffff81296110 R10: 0000000000000400 R11: 0000000000000000 R12: ffff88030ba1ac68 R13: 0000000000000001 R14: 00000000011b02f0 R15: 0000000000000000 FS: 00007fc9bf8f5700(0000) GS:ffff8801a7c40000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b CR2: 0000000000403c90 CR3: 000000019ebdf000 CR4: 00000000000007e0 Stack: Call Trace: i7core_unregister_mci.isra.9 i7core_remove pci_device_remove __device_release_driver driver_detach bus_remove_driver pci_unregister_driver i7core_exit SyS_delete_module system_call_fastpath 0x7fc9bf426536 Code: 2e 0f 1f 84 00 00 00 00 00 66 66 66 66 90 53 48 89 fb e8 52 2a 1f e1 48 8b bb a0 02 00 00 e8 46 59 1f e1 48 8b 83 a0 02 00 00 5b <48> 8b 38 e9 26 9a fe e0 66 0f 1f 44 00 00 66 66 66 66 90 48 8b RIP [] edac_unregister_sysfs+0x22/0x30 [edac_core] RSP Signed-off-by: Borislav Petkov Cc: Mauro Carvalho Chehab Cc: # v3.6.. Fixes: 7a623c039075 ("edac: rewrite the sysfs code to use struct device") drivers/edac/edac_mc_sysfs.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) commit 666db563d3d9fffcfc019e3d1a980dac47601a71 Author: Scott Wood Date: Thu Dec 10 13:07:12 2015 -0600 EDAC, mpc85xx: Make mpc85xx-pci-edac a platform device Originally the mpc85xx-pci-edac driver bound directly to the PCI controller node. Commit 905e75c46dba ("powerpc/fsl-pci: Unify pci/pcie initialization code") turned the PCI controller code into a platform device. Since we can't have two drivers binding to the same device, the EDAC code was changed to be called into as a library-style submodule. However, this doesn't work if the EDAC driver is built as a module. Commit 8d8fcba6d1ea ("EDAC: Rip out the edac_subsys reference counting") exposed another problem with this approach -- mpc85xx_pci_err_probe() was being called in the same early boot phase that the PCI controller is initialized, rather than in the device_initcall phase that the EDAC layer expects. This caused a crash on boot. To fix this, the PCI controller code now creates a child platform device specifically for EDAC, which the mpc85xx-pci-edac driver binds to. Reported-by: Michael Ellerman Reviewed-by: Johannes Thumshirn Signed-off-by: Scott Wood Cc: Andrew Morton Cc: Benjamin Herrenschmidt Cc: Daniel Axtens Cc: Doug Thompson Cc: Jia Hongtao Cc: Jiri Kosina Cc: Kim Phillips Cc: linux-edac Cc: linuxppc-dev@lists.ozlabs.org Cc: Masanari Iida Cc: Mauro Carvalho Chehab Cc: Paul Mackerras Cc: Randy Dunlap Cc: Rob Herring Link: http://lkml.kernel.org/r/1449774432-18593-1-git-send-email-scottwood@freescale.com Signed-off-by: Borislav Petkov arch/powerpc/sysdev/fsl_pci.c | 28 +++++++++++++++++++++++++++- arch/powerpc/sysdev/fsl_pci.h | 9 --------- drivers/edac/mpc85xx_edac.c | 38 +++++++++++++++++++++++++++++++++----- include/linux/fsl/edac.h | 8 ++++++++ 4 files changed, 68 insertions(+), 15 deletions(-) commit 84889d49335627bc770b32787c1ef9ebad1da232 Author: Konstantin Khlebnikov Date: Mon Nov 16 18:44:11 2015 +0300 ovl: check dentry positiveness in ovl_cleanup_whiteouts() This patch fixes kernel crash at removing directory which contains whiteouts from lower layers. Cache of directory content passed as "list" contains entries from all layers, including whiteouts from lower layers. So, lookup in upper dir (moved into work at this stage) will return negative entry. Plus this cache is filled long before and we can race with external removal. Example: mkdir -p lower0/dir lower1/dir upper work overlay touch lower0/dir/a lower0/dir/b mknod lower1/dir/a c 0 0 mount -t overlay none overlay -o lowerdir=lower1:lower0,upperdir=upper,workdir=work rm -fr overlay/dir Signed-off-by: Konstantin Khlebnikov Signed-off-by: Miklos Szeredi Cc: # 3.18+ fs/overlayfs/readdir.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit cf9a6784f7c1b5ee2b9159a1246e327c331c5697 Author: Miklos Szeredi Date: Fri Dec 11 16:30:49 2015 +0100 ovl: setattr: check permissions before copy-up Without this copy-up of a file can be forced, even without actually being allowed to do anything on the file. [Arnd Bergmann] include for PAGE_CACHE_SIZE (used by MAX_LFS_FILESIZE definition). Signed-off-by: Miklos Szeredi Cc: fs/overlayfs/inode.c | 13 +++++++++++++ fs/overlayfs/super.c | 2 ++ 2 files changed, 15 insertions(+) commit 17074c1a5f1bbbf352fe071b2947a498db42661f Author: Julia Lawall Date: Fri Dec 11 15:52:37 2015 +0100 ALSA: usb-audio: constify usb_protocol_ops structures The usb_protocol_ops structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Acked-by: Clemens Ladisch Signed-off-by: Takashi Iwai sound/usb/midi.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) commit 1f6a9ab05ab500a033c1d5490c3a6bd993bfd602 Author: Paul Gortmaker Date: Wed Dec 9 15:05:28 2015 -0500 crypto: asymmetric_keys - signature.c does not need This file does not contain any modular related function calls. So get rid of module.h since it drags in a lot of other headers and adds to the preprocessing load. It does export some symbols though, so we'll need to ensure it has export.h present instead. Cc: Herbert Xu Cc: "David S. Miller" Cc: linux-crypto@vger.kernel.org Signed-off-by: Paul Gortmaker Signed-off-by: Herbert Xu crypto/asymmetric_keys/signature.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 75910d375ecb2079b3418f8b304fd775916025e2 Author: Tadeusz Struk Date: Wed Dec 9 11:59:47 2015 -0800 crypto: qat - select PCI_IOV when VF are enabled Fix i386-randconfig-x004-12092241. PCI_IOV needs to be selected when VFs are enabled Reported-by: Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/Kconfig | 2 ++ 1 file changed, 2 insertions(+) commit 06cabd755a97325cd5f53e73153fd10f4ea51cb7 Author: Harvijay Saini Date: Wed Dec 9 11:59:45 2015 -0800 crypto: qat - ring returning retry even though ring has BW When many threads submit multiple requests they get blocked until all responses are processed, which prevents them from submitting more requests even though there is space on the rings. To fix this we need to decrement the inflight counter early to in the callback. Signed-off-by: Harvijay Saini Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/adf_transport.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit e14a1f1e36e76580c1094694f2f666ac582b34df Author: LABBE Corentin Date: Tue Dec 8 09:00:23 2015 +0100 crypto: akcipher - fix typos in include/crypto/akcipher.h Fix numerous spelling error in include/crypto/akcipher.h Signed-off-by: LABBE Corentin Signed-off-by: Herbert Xu include/crypto/akcipher.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 8fc5abd40efadf57ca43189c9c14c4de3db6300e Author: Matthias Brugger Date: Fri Dec 11 14:22:19 2015 +0100 arm64: dts: rockchip: Fix typo in rk3368 sdmmc card detect pin name The card detect pin is currently called sdmcc-cd. This patch fixes the typo and renames the pin to sdmmc-cd. Signed-off-by: Matthias Brugger Signed-off-by: Heiko Stuebner arch/arm64/boot/dts/rockchip/rk3368.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 87ac9de3b44fd6dc8d95a59e67b086c3e57285f8 Author: Caesar Wang Date: Wed Dec 2 19:12:20 2015 +0800 arm64: dts: rockchip: correct voltage range for rk3368-evb-act8846 board In general, the logic voltage is affected by ddr frequency factors. We should fix the correct voltage range since assuemd that we have the ddr frequency driver in mainline. AFAIK, the 1.8v voltage is used by the SD3.0 card. Signed-off-by: Caesar Wang Signed-off-by: Heiko Stuebner arch/arm64/boot/dts/rockchip/rk3368-evb-act8846.dts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit a1c2e133d26688a5783e1264cb6865b5d2bd9181 Author: Caesar Wang Date: Wed Dec 2 19:12:21 2015 +0800 ARM: dts: rockchip: fix voltage ranges for rk3288-evb-act8846 board In general, the logic voltage is affected by ddr frequency factors. We should fix the correct voltage range since assuemd that we have the ddr frequency driver in mainline in the future. AFAIK, the 1.8v voltage is used by the SD3.0 card. Signed-off-by: Caesar Wang Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3288-evb-act8846.dts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 93b0ba3c60da89043ce2b9f601cd2b3da408903b Author: Wang Nan Date: Tue Dec 8 02:25:44 2015 +0000 perf tools: Clear struct machine during machine__init() There are so many test cases use stack allocated 'struct machine'. Including: test__hists_link test__hists_filter test__mmap_thread_lookup test__thread_mg_share test__hists_output test__hists_cumulate Also, in non-test code (for example, machine__new_host()) there are code use 'malloc()' to alloc struct machine. These are dangerous operations, cause some tests fail or hung in machines__exit(). For example, in machines__exit -> machine__destroy_kernel_maps -> map_groups__remove -> maps__remove -> pthread_rwlock_wrlock a incorrectly initialized lock causes unintended behavior. This patch memset(0) that structure in machine__init() to ensure all fields in 'struct machine' are initialized to zero. Signed-off-by: Wang Nan Cc: Jiri Olsa Cc: Namhyung Kim Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1449541544-67621-17-git-send-email-wangnan0@huawei.com [ Use memset, see 'man bzero' ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/machine.c | 1 + 1 file changed, 1 insertion(+) commit 27cfef009ae8a1019d174153987ce22a0e6677fc Author: Wang Nan Date: Tue Dec 8 02:25:43 2015 +0000 perf script: Add support for PERF_TYPE_BREAKPOINT Useful for getting stack traces for hardware breakpoint events. Test result: Before this patch: # ~/perf record -g -e mem:0x600980 ./sample [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.011 MB perf.data (12 samples) ] # ~/perf script # ~/perf script -F comm,tid,pid,time,event,ip,sym,dso sample 22520/22520 97457.836294: mem:0x600980: 5a4ad8 __clear_user (/lib/modules/4.3.0-rc4+/build/vmlinux) ... 3f41ba sys_execve (/lib/modules/4.3.0-rc4+/build/vmlinux) 979395 return_from_execve (/lib/modules/4.3.0-rc4+/build/vmlinux) 7f1b59719cf7 [unknown] ([unknown]) sample 22520/22520 97457.836648: mem:0x600980: 532 main (/home/w00229757/DataBreakpoints/sample) 21bd5 __libc_start_main (/tmp/oxygen_root-root/lib64/libc-2.18.so) ... After this patch: # ~/perf script sample 22520 97457.836294: mem:0x600980: 5a4ad8 __clear_user (/lib/modules/4.3.0-rc4+/build/vmlinux) ... 3f41ba sys_execve (/lib/modules/4.3.0-rc4+/build/vmlinux) 979395 return_from_execve (/lib/modules/4.3.0-rc4+/build/vmlinux) 7f1b59719cf7 [unknown] ([unknown]) sample 22520 97457.836648: mem:0x600980: 532 main (/home/w00229757/DataBreakpoints/sample) 21bd5 __libc_start_main (/tmp/oxygen_root-root/lib64/libc-2.18.so) Committer note: So, further testing, lets do it for a kernel global variable, tcp_hashinfo: # grep -w tcp_hashinfo /proc/kallsyms ffffffff8202fc00 B tcp_hashinfo # Note: allow specifying mem:tcp_hashinfo: # perf record -g -e mem:0xffffffff81c65ac0 -a ^C[ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.790 MB perf.data ] # # perf evlist mem:0xffffffff8202fc00 # perf evlist -v mem:0xffffffff8202fc00: type: 5, size: 112, { sample_period, sample_freq }: 1, sample_type: IP|TID|TIME|CALLCHAIN|CPU, disabled: 1, inherit: 1, mmap: 1, comm: 1, task: 1, sample_id_all: 1, exclude_guest: 1, mmap2: 1, comm_exec: 1, bp_type: 3, { bp_addr, config1 }: 0xffffffff8202fc00, { bp_len, config2 }: 0x4 # Then, after this patch: # perf script swapper 0 [000] 171036.986988: mem:0xffffffff8202fc00: 8a0fb5 __inet_lookup_established (/lib/modules/4.3.0+/build/vmlinux) 8bc09d tcp_v4_early_demux (/lib/modules/4.3.0+/build/vmlinux) 896def ip_rcv_finish (/lib/modules/4.3.0+/build/vmlinux) 8976c2 ip_rcv (/lib/modules/4.3.0+/build/vmlinux) 855eba __netif_receive_skb_core (/lib/modules/4.3.0+/build/vmlinux) 8565d8 __netif_receive_skb (/lib/modules/4.3.0+/build/vmlinux) 8572a8 process_backlog (/lib/modules/4.3.0+/build/vmlinux) 856b11 net_rx_action (/lib/modules/4.3.0+/build/vmlinux) 2a284b __do_softirq (/lib/modules/4.3.0+/build/vmlinux) 2a2ba3 irq_exit (/lib/modules/4.3.0+/build/vmlinux) 96b7a4 do_IRQ (/lib/modules/4.3.0+/build/vmlinux) 969807 ret_from_intr (/lib/modules/4.3.0+/build/vmlinux) 804c27 cpuidle_enter (/lib/modules/4.3.0+/build/vmlinux) 2ded22 call_cpuidle (/lib/modules/4.3.0+/build/vmlinux) 2defb6 cpu_startup_entry (/lib/modules/4.3.0+/build/vmlinux) 95d5bc rest_init (/lib/modules/4.3.0+/build/vmlinux) 1163ffa start_kernel ([kernel.vmlinux].init.text) 11634d7 x86_64_start_reservations ([kernel.vmlinux].init.text) 1163623 x86_64_start_kernel ([kernel.vmlinux].init.text) Signed-off-by: Wang Nan Tested-by: Arnaldo Carvalho de Melo Cc: Adrian Hunter Cc: David S. Miller Cc: Jiri Olsa Cc: Namhyung Kim Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1449541544-67621-16-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-script.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 26812d466b2633d0c772fe3aca954129f150d3cb Author: Wang Nan Date: Tue Dec 8 02:25:39 2015 +0000 perf data: Add u32_hex data type Add hexadecimal u32 to base data type, which is useful for raw output because raw data is u32 aligned. Signed-off-by: Wang Nan Cc: David S. Miller Cc: Alexei Starovoitov Cc: Brendan Gregg Cc: David S. Miller Cc: Jiri Olsa Cc: Masami Hiramatsu Cc: Namhyung Kim Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1449541544-67621-12-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/data-convert-bt.c | 2 ++ 1 file changed, 2 insertions(+) commit ba38a1718b7386bacbaed81167a68b9a673a0a42 Author: Colin Ian King Date: Tue Dec 8 23:49:31 2015 +0000 ath9k: fix inconsistent indenting on return statement minor change, indenting is one tab out. Signed-off-by: Colin Ian King Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/xmit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ed14dc0af7ccea867b479feb88efdfe43ca2a0f9 Author: Miaoqing Pan Date: Fri Oct 9 17:06:45 2015 +0800 ath9k: feeding entropy in kernel from ADC capture This patch is derived from commit 6301566e0b2d ("ath9k: export HW random number generator"), We evaluated the entropy of the ADC data on QCA9531, QCA9561, QCA955x, and AR9340, and it has sufficient quality random data (at least 10 bits and up to 22 bits of min-entropy for a 32-bit value). We conservatively assume the min-entropy is 10 bits out of 32 bits. Thus, ATH9K_RNG_BUF_SIZE is set to 320 (u32) i.e., 1.25 kilobytes of data is inserted to fill up the pool as soon as the entropy counter becomes 896/4096 (set by random.c). Since ADC was not designed to be a dedicated HW RNG, we do not want to bind it to /dev/hwrng framework directly. This patch feeds the entropy directly from the WiFi driver to the input pool. The ADC register output is only used as a seed for the Linux entropy pool. No conditioning is needed, since all the conditioning is performed by the pool itself. Signed-off-by: Miaoqing Pan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/Kconfig | 11 ++++ drivers/net/wireless/ath/ath9k/Makefile | 1 + drivers/net/wireless/ath/ath9k/ath9k.h | 22 +++++++ drivers/net/wireless/ath/ath9k/main.c | 4 ++ drivers/net/wireless/ath/ath9k/rng.c | 107 ++++++++++++++++++++++++++++++++ 5 files changed, 145 insertions(+) commit f0b2c30a20299083665f3f14870ff5ce631d32ef Author: Miaoqing Pan Date: Thu Aug 20 09:21:38 2015 +0800 ath9k: fix AR_RX_FILTER for ar9462/ar9565 when rx stopped When rx stopped, AR_RX_FILTER should be cleared, but in ath9k_hw_setrxfilter(), ATH9K_RX_FILTER_CONTROL_WRAPPER will always be set for ar9462/ar9565. Fix this by moving the code in ath9k_hw_setrxfilter() to ath_calcrxfilter(). Signed-off-by: Miaoqing Pan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/hw.c | 3 --- drivers/net/wireless/ath/ath9k/recv.c | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-) commit efc2b2b50c92c72916608b0e7d74651471fe5dd7 Author: Ben Greear Date: Mon Nov 30 15:01:48 2015 -0800 ath6kl: add log messages for firmware failure cases. This gives a user a chance to know why a firmware load is failing. Signed-off-by: Ben Greear Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath6kl/init.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) commit 26ca14d42706ae8b6053244d5aa4e2eb3707045a Author: Ben Greear Date: Mon Nov 30 15:01:47 2015 -0800 ath6kl: fix tx/rx antenna reporting for 2x2 devices My previous patch incorrectly reported the antenna for 2x2 devices. It should be a mask instead of a numeric count. This patch fixes that. Signed-off-by: Ben Greear Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath6kl/cfg80211.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c85f6c91ec4218487a29a7d1f918f7f6f0424c75 Author: Deepak M Date: Tue Dec 1 04:17:05 2015 +0530 drm/i915: add VBT address and size fields to ASLE mailbox struct To be used on systems where the VBT does not fit into the normal VBT mailbox. v3: rebase Cc: Jani Nikula Signed-off-by: Deepak M Link: http://patchwork.freedesktop.org/patch/msgid/1448923632-16760-3-git-send-email-m.deepak@intel.com [Jani: updated commit message] Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_opregion.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 9b2761cb72dc41e1948c8a5512b4efd384eda130 Author: Uri Mashiach Date: Thu Dec 10 15:12:56 2015 +0200 wlcore/wl12xx: spi: fix oops on firmware load The maximum chunks used by the function is (SPI_AGGR_BUFFER_SIZE / WSPI_MAX_CHUNK_SIZE + 1). The original commands array had space for (SPI_AGGR_BUFFER_SIZE / WSPI_MAX_CHUNK_SIZE) commands. When the last chunk is used (len > 4 * WSPI_MAX_CHUNK_SIZE), the last command is stored outside the bounds of the commands array. Oops 5 (page fault) is generated during current wl1271 firmware load attempt: root@debian-armhf:~# ifconfig wlan0 up [ 294.312399] Unable to handle kernel paging request at virtual address 00203fc4 [ 294.320173] pgd = de528000 [ 294.323028] [00203fc4] *pgd=00000000 [ 294.326916] Internal error: Oops: 5 [#1] SMP ARM [ 294.331789] Modules linked in: bnep rfcomm bluetooth ipv6 arc4 wl12xx wlcore mac80211 musb_dsps cfg80211 musb_hdrc usbcore usb_common wlcore_spi omap_rng rng_core musb_am335x omap_wdt cpufreq_dt thermal_sys hwmon [ 294.351838] CPU: 0 PID: 1827 Comm: ifconfig Not tainted 4.2.0-00002-g3e9ad27-dirty #78 [ 294.360154] Hardware name: Generic AM33XX (Flattened Device Tree) [ 294.366557] task: dc9d6d40 ti: de550000 task.ti: de550000 [ 294.372236] PC is at __spi_validate+0xa8/0x2ac [ 294.376902] LR is at __spi_sync+0x78/0x210 [ 294.381200] pc : [] lr : [] psr: 60000013 [ 294.381200] sp : de551998 ip : de5519d8 fp : 00200000 [ 294.393242] r10: de551c8c r9 : de5519d8 r8 : de3a9000 [ 294.398730] r7 : de3a9258 r6 : de3a9400 r5 : de551a48 r4 : 00203fbc [ 294.405577] r3 : 00000000 r2 : 00000000 r1 : 00000000 r0 : de3a9000 [ 294.412420] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user [ 294.419918] Control: 10c5387d Table: 9e528019 DAC: 00000015 [ 294.425954] Process ifconfig (pid: 1827, stack limit = 0xde550218) [ 294.432437] Stack: (0xde551998 to 0xde552000) ... [ 294.883613] [] (__spi_validate) from [] (__spi_sync+0x78/0x210) [ 294.891670] [] (__spi_sync) from [] (wl12xx_spi_raw_write+0xfc/0x148 [wlcore_spi]) [ 294.901661] [] (wl12xx_spi_raw_write [wlcore_spi]) from [] (wlcore_boot_upload_firmware+0x1ec/0x458 [wlcore]) [ 294.914038] [] (wlcore_boot_upload_firmware [wlcore]) from [] (wl12xx_boot+0xc10/0xfac [wl12xx]) [ 294.925161] [] (wl12xx_boot [wl12xx]) from [] (wl1271_op_add_interface+0x5b0/0x910 [wlcore]) [ 294.936364] [] (wl1271_op_add_interface [wlcore]) from [] (ieee80211_do_open+0x44c/0xf7c [mac80211]) [ 294.947963] [] (ieee80211_do_open [mac80211]) from [] (__dev_open+0xa8/0x110) [ 294.957307] [] (__dev_open) from [] (__dev_change_flags+0x88/0x148) [ 294.965713] [] (__dev_change_flags) from [] (dev_change_flags+0x18/0x48) [ 294.974576] [] (dev_change_flags) from [] (devinet_ioctl+0x6b4/0x7d0) [ 294.983191] [] (devinet_ioctl) from [] (sock_ioctl+0x1e4/0x2bc) [ 294.991244] [] (sock_ioctl) from [] (do_vfs_ioctl+0x420/0x6b0) [ 294.999208] [] (do_vfs_ioctl) from [] (SyS_ioctl+0x6c/0x7c) [ 295.006880] [] (SyS_ioctl) from [] (ret_fast_syscall+0x0/0x54) [ 295.014835] Code: e1550004 e2444034 0a00007d e5953018 (e5942008) [ 295.021544] ---[ end trace 66ed188198f4e24e ]--- Signed-off-by: Uri Mashiach Acked-by: Igor Grinberg Cc: stable@vger.kernel.org Signed-off-by: Kalle Valo drivers/net/wireless/ti/wlcore/spi.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 77ba9a5b48a7c742f9a46d26596852e9cfec7900 Author: Wang Nan Date: Tue Dec 8 02:25:30 2015 +0000 tools lib bpf: Fetch map names from correct strtab Namhyung Kim pointed out a potential problem in original code that it fetches names of maps from section header string table, which is used to store section names. Original code doesn't cause error because of a LLVM behavior that, it combines shstrtab into strtab. For example: $ echo 'int func() {return 0;}' | x86_64-oe-linux-clang -x c -o temp.o -c - $ readelf -h ./temp.o ELF Header: Magic: 7f 45 4c 46 02 01 01 03 00 00 00 00 00 00 00 00 ... Section header string table index: 1 $ readelf -S ./temp.o There are 10 section headers, starting at offset 0x288: Section Headers: [Nr] Name Type Address Offset Size EntSize Flags Link Info Align [ 0] NULL 0000000000000000 00000000 0000000000000000 0000000000000000 0 0 0 [ 1] .strtab STRTAB 0000000000000000 00000230 0000000000000051 0000000000000000 0 0 1 ... $ readelf -p .strtab ./temp.o String dump of section '.strtab': [ 1] .text [ 7] .comment [ 10] .bss [ 15] .note.GNU-stack [ 25] .rela.eh_frame [ 34] func [ 39] .strtab [ 41] .symtab [ 49] .data [ 4f] - $ readelf -p .shstrtab ./temp.o readelf: Warning: Section '.shstrtab' was not dumped because it does not exist! Where, 'section header string table index' points to '.strtab', and symbol names are also stored there. However, in case of gcc: $ echo 'int func() {return 0;}' | gcc -x c -o temp.o -c - $ readelf -p .shstrtab ./temp.o String dump of section '.shstrtab': [ 1] .symtab [ 9] .strtab [ 11] .shstrtab [ 1b] .text [ 21] .data [ 27] .bss [ 2c] .comment [ 35] .note.GNU-stack [ 45] .rela.eh_frame $ readelf -p .strtab ./temp.o String dump of section '.strtab': [ 1] func They are separated sections. Although original code doesn't cause error, we'd better use canonical method for fetching symbol names to avoid potential behavior changing. This patch learns from readelf's code, fetches string from sh_link of .symbol section. Signed-off-by: Wang Nan Reported-and-Acked-by: Namhyung Kim Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1449541544-67621-3-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/lib/bpf/libbpf.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit a41286aee42f1a4a1d5abc7ce6904360a6e3de7e Author: Hante Meuleman Date: Thu Dec 10 13:43:11 2015 +0100 brcmfmac: Move scheduled scan related interface layer structs All interface layer related to scheduled scan are moved in fwil_types.h Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo .../broadcom/brcm80211/brcmfmac/cfg80211.h | 81 ---------------------- .../broadcom/brcm80211/brcmfmac/fwil_types.h | 81 ++++++++++++++++++++++ 2 files changed, 81 insertions(+), 81 deletions(-) commit f3fb75038dd1174764521303a746fe9de67eb0e5 Author: Hante Meuleman Date: Thu Dec 10 13:43:10 2015 +0100 brcmfmac: Change error print in debug print The pcie suspend and resume routines contain some error prints, which should have been debug prints. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 540313d8f9547b63882d74d28a60cda35971d332 Author: Arend van Spriel Date: Thu Dec 10 13:43:09 2015 +0100 brcmfmac: add 43242 device id for LG dongle Got a hint on IRC that a 43242 dongle for LG smart TV's works with brcmfmac: > Hello - I recently got a LG AN-WF500 wireless dongle for LG's SmartTVs. > From the information I gathered it uses a Broadcom chipset BCM43242. > The device should have been supported by brcmfmac kernel driver if it used > USB IDs 0a5c:bd1f. > My device however identifies itself as "ID 043e:3101 LG Electronics USA, Inc.". > I then tried adding the USB ID to the driver with > "echo "043e 3101" > /sys/bus/usb/drivers/brcmfmac/new_id" and it just works. > The kernel provides the following information. > [15958.851291] usb 3-1.1.3: new high-speed USB device number 53 using ehci-pci > [15958.946723] usb 3-1.1.3: New USB device found, idVendor=043e, idProduct=3101 > [15958.946728] usb 3-1.1.3: New USB device strings: Mfr=1, Product=4, SerialNumber=3 > [15958.946731] usb 3-1.1.3: Product: Composite Wireless Adapter > [15958.946733] usb 3-1.1.3: Manufacturer: Broadcom > [15958.946735] usb 3-1.1.3: SerialNumber: 28458 Reported-by: Johannes Berg Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c | 1 + drivers/net/wireless/broadcom/brcm80211/include/brcm_hw_ids.h | 2 ++ 2 files changed, 3 insertions(+) commit a7decc44a002dffe7ee6e361ddc703b8c3035d2c Author: Kosuke Tatsukawa Date: Thu Dec 10 13:43:08 2015 +0100 brcmfmac: fix waitqueue_active without memory barrier in brcmfmac driver brcmf_msgbuf_ioctl_resp_wake() seems to be missing a memory barrier which might cause the waker to not notice the waiter and miss sending a wake_up as in the following figure. brcmf_msgbuf_ioctl_resp_wake brcmf_msgbuf_ioctl_resp_wait ------------------------------------------------------------------------ if (waitqueue_active(&msgbuf->ioctl_resp_wait)) /* The CPU might reorder the test for the waitqueue up here, before prior writes complete */ /* wait_event_timeout */ /* __wait_event_timeout */ /* ___wait_event */ prepare_to_wait_event(&wq, &__wait, state); if (msgbuf->ctl_completed) ... msgbuf->ctl_completed = true; schedule_timeout(__ret)) ------------------------------------------------------------------------ There are three other place in drivers/net/wireless/brcm80211/brcmfmac/ which have similar code. The attached patch removes the call to waitqueue_active() leaving just wake_up() behind. This fixes the problem because the call to spin_lock_irqsave() in wake_up() will be an ACQUIRE operation. I found this issue when I was looking through the linux source code for places calling waitqueue_active() before wake_up*(), but without preceding memory barriers, after sending a patch to fix a similar issue in drivers/tty/n_tty.c (Details about the original issue can be found here: https://lkml.org/lkml/2015/9/28/849). Reviewed-by: Hante Meuleman Reviewed-by: Franky (Zhenhui) Lin Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Kosuke Tatsukawa Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c | 3 +-- drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 6 ++---- drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c | 3 +-- 3 files changed, 4 insertions(+), 8 deletions(-) commit b0a790883ed4d12b2c6c0fd19cda421ba7bb84ca Author: Hante Meuleman Date: Thu Dec 10 13:43:07 2015 +0100 brcmfmac: Fix IBSS setup IBSS got broken over time. Disconnect events should not be given for IBSS mode and connect events for IBSS need to have channel information. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo .../net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit 353c46ac9e530f511fba9387e1e63226eb168e63 Author: Arend van Spriel Date: Thu Dec 10 13:43:06 2015 +0100 brcmfmac: no interface combination check for single interface The interface combinations are intended for use-case in which the driver handles multiple interface concurrently. This means that the combinations do not need to be checked when there is only a single interface active. Reviewed-by: Hante Meuleman Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo .../net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) commit fdf3456422972016ab802317ba1c2ce5969dd7a6 Author: Hante Meuleman Date: Thu Dec 10 13:43:05 2015 +0100 brcmfmac: Add support for PCIE 4350 revision 5 device Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit a7b82d474171ff93ae9a6a7b39b0cc1ec376b06d Author: Hante Meuleman Date: Thu Dec 10 13:43:04 2015 +0100 brcmfmac: Make TDLS a detectable feature Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo .../wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 21 ++++++++++++--------- .../wireless/broadcom/brcm80211/brcmfmac/feature.c | 1 + .../wireless/broadcom/brcm80211/brcmfmac/feature.h | 4 +++- 3 files changed, 16 insertions(+), 10 deletions(-) commit 6c404f34f2bdd422e24783287520ebaed036657a Author: Hante Meuleman Date: Thu Dec 10 13:43:03 2015 +0100 brcmfmac: Cleanup pmksa cache handling code Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo .../broadcom/brcm80211/brcmfmac/cfg80211.c | 131 +++++++++------------ .../broadcom/brcm80211/brcmfmac/cfg80211.h | 9 +- .../broadcom/brcm80211/brcmfmac/fwil_types.h | 24 ++++ .../broadcom/brcm80211/include/brcmu_wifi.h | 23 ---- 4 files changed, 82 insertions(+), 105 deletions(-) commit 4235edcdfc30e07dfa15d578a58b8411fb770c05 Author: Hante Meuleman Date: Thu Dec 10 13:43:02 2015 +0100 brcmfmac: Remove some redundant cfg80211 data Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 1 - drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.h | 10 ---------- 2 files changed, 11 deletions(-) commit 675f5d82a73f4cd3894c60a97dee9c17a676a954 Author: Hante Meuleman Date: Thu Dec 10 13:43:01 2015 +0100 brcmfmac: Use local storage for ssid iovar Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo .../wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 18 +++++++++--------- .../wireless/broadcom/brcm80211/brcmfmac/cfg80211.h | 7 ------- 2 files changed, 9 insertions(+), 16 deletions(-) commit 1678ba8ed3500729f3d457791f9a77f67e7ff7d4 Author: Hante Meuleman Date: Thu Dec 10 13:43:00 2015 +0100 brcmfmac: Simplify scan timing configuration No need to pass timing configuration in local functions as they are static anyway. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo .../broadcom/brcm80211/brcmfmac/cfg80211.c | 31 +++++++++------------- .../broadcom/brcm80211/brcmfmac/cfg80211.h | 4 --- 2 files changed, 12 insertions(+), 23 deletions(-) commit 973170e66726672518eb935eb0dc0e63876d133d Author: Wang Nan Date: Tue Dec 8 02:25:29 2015 +0000 tools lib bpf: Check return value of strdup when reading map names Commit 561bbccac72d08babafaa33fd7fa9100ec4c9fb6 ("tools lib bpf: Extract and collect map names from BPF object file") forgets checking return value of strdup(). This patch fixes it. It also checks names pointer before strcmp() for safety. Signed-off-by: Wang Nan Acked-by: Namhyung Kim Cc: Zefan Li Cc: pi3orama@163.com Fixes: 561bbccac72d ("tools lib bpf: Extract and collect map names from BPF object file") Link: http://lkml.kernel.org/r/1449541544-67621-2-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/lib/bpf/libbpf.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 31ced24d88f1f8cfb420a25ddfc6eeda1a38d471 Author: Arnd Bergmann Date: Wed Dec 9 17:42:41 2015 +0100 iwlegacy: mark il_adjust_beacon_interval as noinline With the new optimized do_div() code, some versions of gcc produce obviously incorrect code that leads to a link error in iwlegacy/common.o: drivers/built-in.o: In function `il_send_rxon_timing': :(.text+0xa6b4d4): undefined reference to `____ilog2_NaN' :(.text+0xa6b4f0): undefined reference to `__aeabi_uldivmod' In a few thousand randconfig builds, I have seen this problem a couple of times in this file, but never anywhere else in the kernel, so we can try to work around this in the only file that shows the behavior, by marking the il_adjust_beacon_interval function as noinline, which convinces gcc to use the unoptimized do_div() all the time. Signed-off-by: Arnd Bergmann Acked-by: Nicolas Pitre Acked-by: Stanislaw Gruszka Signed-off-by: Kalle Valo drivers/net/wireless/intel/iwlegacy/common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 17bc55864f81dd730d05f09b1641312a7990d636 Author: Peter Wu Date: Mon Dec 7 01:07:31 2015 +0100 rtlwifi: fix memory leak for USB device Free skb for received frames with a wrong checksum. This can happen pretty rapidly, exhausting all memory. This fixes a memleak (detected with kmemleak). Originally found while using monitor mode, but it also appears during managed mode (once the link is up). Cc: stable@vger.kernel.org Signed-off-by: Peter Wu ACKed-by: Larry Finger Signed-off-by: Kalle Valo drivers/net/wireless/realtek/rtlwifi/usb.c | 2 ++ 1 file changed, 2 insertions(+) commit 6b904f625271b8ded6f06663b7a0c2d41366ea19 Author: Julia Lawall Date: Mon Dec 7 10:55:33 2015 +0100 prism54: fix compare_const_fl.cocci warnings Move constants to the right of binary operators. Generated by: scripts/coccinelle/misc/compare_const_fl.cocci Signed-off-by: Fengguang Wu Signed-off-by: Julia Lawall Signed-off-by: Kalle Valo drivers/net/wireless/intersil/prism54/oid_mgt.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit fc30c30554d8a28cccdae846e31294255e392cff Author: Julia Lawall Date: Sun Dec 6 22:56:21 2015 +0100 mwifiex: fix semicolon.cocci warnings Remove unneeded semicolon. Generated by: scripts/coccinelle/misc/semicolon.cocci Signed-off-by: Fengguang Wu Signed-off-by: Julia Lawall Signed-off-by: Kalle Valo drivers/net/wireless/marvell/mwifiex/init.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit beefb8d0e556aaf3cb69168c5953e023ace6aa78 Author: Namhyung Kim Date: Fri Dec 11 11:56:56 2015 +0900 perf top: Cleanup condition in perf_top__record_precise_ip() The 'he' cannot be NULL since it's caller hist_iter__top_callback() is called only if iter->he is not NULL (see hist_entry_iter__add). So setting 'sym' before the condition to simplify the code. Also make it clearer that the top->symbol_filter_entry check is only meaningful on stdio mode (i.e. when use_browser is 0). Signed-off-by: Namhyung Kim Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1449802616-16170-4-git-send-email-namhyung@kernel.org [ Complete the simplification replacing one more he->ms.sym with sym ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-top.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 448f13b2d18fdc8dbaada97442e8954dcb4ef8fa Author: Namhyung Kim Date: Fri Dec 11 11:56:55 2015 +0900 perf top: Fix annotation on --stdio The ui__has_annotation() inside perf_top__record_precise_ip() should be removed since it returns true only for TUI (and when sort key has symbol). However the 'perf top --stdio' also supports annotation for a symbol which was specified by 's' key action. Actually it already does the necessary checks before calling the function. So it's ok to get rid of the check here. Signed-off-by: Namhyung Kim Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1449802616-16170-3-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-top.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 151ee834cc946fa159ee406c62b4d5ce1ebd7115 Author: Namhyung Kim Date: Fri Dec 11 11:56:54 2015 +0900 perf top: Access hists->lock only if needed The perf_top__record_precise_ip() releases and regrabs the he->hists->lock because it can sleep if there's an error. But it should be done conditionally as it slows down the fast path. Signed-off-by: Namhyung Kim Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1449802616-16170-2-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-top.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) commit 64226bcf64629996948dc03c38594f00511bfc2b Author: Namhyung Kim Date: Fri Dec 11 11:56:53 2015 +0900 perf top: Do not convert address for perf_top__record_precise_ip() We call map->unmap_ip() before the function and call map->map_ip() inside the function. This is meaningless and look strange since only one of the two checks 'map'. Let's use al->addr directly. Signed-off-by: Namhyung Kim Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1449802616-16170-1-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-top.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) commit b04061e6599be87a23e7bc06f3bf4d3b3e325ff8 Author: Chris Zhong Date: Thu Dec 10 13:46:39 2015 +0800 ARM: dts: rockchip: move the public part to rk3288-evb common Rk3288-evb-act8846 and rk3288-evb-rk808 are the power boards of rk3288-evb, they provide the same power supply interface to the motherboard. Sort out them, put the public part to rk3288-evb.dtsi, such as gmac and cpu-supply, leaving only the power section. Signed-off-by: Chris Zhong Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3288-evb-act8846.dts | 4 ---- arch/arm/boot/dts/rk3288-evb-rk808.dts | 27 ----------------------- arch/arm/boot/dts/rk3288-evb.dtsi | 37 +++++++++++++++++++++++++++----- 3 files changed, 32 insertions(+), 36 deletions(-) commit 662513a14c9dd1ba2b4d5928d6eae443744edefc Author: Chris Zhong Date: Thu Dec 10 13:46:38 2015 +0800 ARM: dts: rockchip: add 2 regulators for rk3288-evb-act8846 vcc_wl and vcc_lcd are 2 gpio switches for rk3288-evb-act8846 board. Signed-off-by: Chris Zhong Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3288-evb-act8846.dts | 34 ++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) commit 69c923743640deac686f0a2e7d5fc2cf82dc428c Author: Chris Zhong Date: Thu Dec 10 13:46:37 2015 +0800 ARM: dts: rockchip: correct the name of REG8 for rk3288-evb-act8846 According to the schematic, the name of REG8 should be vcc_tp, rather than vcca_tp. Signed-off-by: Chris Zhong Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3288-evb-act8846.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 631d464d3d5c2e3b38da96e08139270f7b8274a6 Author: Julia Lawall Date: Sun Dec 6 07:03:26 2015 +0100 brcm80211: fix compare_const_fl.cocci warnings Move constants to the right of binary operators. Generated by: scripts/coccinelle/misc/compare_const_fl.cocci Signed-off-by: Fengguang Wu Signed-off-by: Julia Lawall Signed-off-by: Kalle Valo drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7cfd829cfe559d6df4c261584a72bb4ea23470d0 Author: Amitkumar Karwar Date: Fri Dec 4 06:13:07 2015 -0800 mwifiex: correction in region code to country mapping EU is not a valid country in db.txt file. Hence regulatory_hint returns failure if EEPROM provides region code as 0x30. Let's use FR for 0x30. Signed-off-by: Amitkumar Karwar Signed-off-by: Cathy Luo Signed-off-by: Kalle Valo drivers/net/wireless/marvell/mwifiex/cfp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 947d315257f9b25b0e24f5706f8184b3b00774d4 Author: Amitkumar Karwar Date: Fri Dec 4 06:13:05 2015 -0800 mwifiex: don't follow AP if country code received from EEPROM If device has already received country information from EEPROM, we won't parse AP's country IE and download it to firmware. We will also set regulatory flags to disable beacon hints and ignore country IE. Signed-off-by: Amitkumar Karwar Signed-off-by: Cathy Luo Signed-off-by: Kalle Valo drivers/net/wireless/marvell/mwifiex/cfg80211.c | 4 ++++ drivers/net/wireless/marvell/mwifiex/sta_ioctl.c | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) commit 658cb59232b1b853385ded3d4ed587b410457787 Author: Amitkumar Karwar Date: Fri Dec 4 06:13:04 2015 -0800 mwifiex: set regulatory info from EEPROM Driver gets country information from EEPROM during initialization. We will call regulatory_hint to update current regulatory domain. As by default world regulatory domain is selected by cfg80211, country '00' from EEPROM is ignored. Signed-off-by: Amitkumar Karwar Signed-off-by: Cathy Luo Signed-off-by: Kalle Valo drivers/net/wireless/marvell/mwifiex/cfg80211.c | 14 +++++++++----- drivers/net/wireless/marvell/mwifiex/cfp.c | 2 +- drivers/net/wireless/marvell/mwifiex/main.h | 2 +- 3 files changed, 11 insertions(+), 7 deletions(-) commit d2b0c735ebac0f0d9746305b40806693d3092f57 Author: Amitkumar Karwar Date: Fri Dec 4 06:13:03 2015 -0800 mwifiex: handle start AP error paths correctly It's been observed that even if firmware returns an error for a configuration command, we go ahead and start AP. This patch changes the command type from async to sync so that threads waits for command response and return failure start AP. Signed-off-by: Amitkumar Karwar Signed-off-by: Cathy Luo Signed-off-by: Kalle Valo drivers/net/wireless/marvell/mwifiex/ie.c | 2 +- drivers/net/wireless/marvell/mwifiex/uap_cmd.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) commit d5556e87610e45e586b1bdf6653920b543083653 Author: Amitkumar Karwar Date: Fri Dec 4 06:13:02 2015 -0800 mwifiex: parse adhoc start/join result Even if ADHOC start or join attempt is failed, these commands are returned with success status by firmware. Actual connection result is provided inside command response. This patch parses the adhoc connection result and resets connection state variables if connection is not successful. Signed-off-by: Amitkumar Karwar Signed-off-by: Cathy Luo Signed-off-by: Kalle Valo drivers/net/wireless/marvell/mwifiex/fw.h | 11 +++++++++-- drivers/net/wireless/marvell/mwifiex/join.c | 20 +++++++++++++------- 2 files changed, 22 insertions(+), 9 deletions(-) commit bd9a212bab3db65baff094fe811ef1b593faca2a Author: Dan Carpenter Date: Fri Dec 4 16:19:49 2015 +0300 prism54: off by one BUG_ON() test This code was supposed to trigger a BUG() if we truncate the output but it's off by one so it allows one character to be truncated. Really drivers shouldn't call BUG_ON() and especially for something minor like this so I've changed it to a WARN_ON(). Signed-off-by: Dan Carpenter Signed-off-by: Kalle Valo drivers/net/wireless/intersil/prism54/isl_ioctl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9e4aee43dc2211a976f8aa7df5cf823d7a4ae640 Author: Dan Carpenter Date: Fri Dec 4 16:17:46 2015 +0300 hostap: fix an error code in prism2_config() The current code returns success if prism2_init_local_data() fails, but we want to return an error code. Also we can remove the bogus ret initializer because it is wrong and never used. Signed-off-by: Dan Carpenter Signed-off-by: Kalle Valo drivers/net/wireless/intersil/hostap/hostap_cs.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 97276c10cb45380ba5d5772b616fc33b55b5bf40 Author: Dan Carpenter Date: Fri Dec 4 16:17:15 2015 +0300 mwifiex: remove an unneeded condition We already know that "wep_key->key_length" is set so there is no need to check again. Also the last curly brace was indented too far. Signed-off-by: Dan Carpenter Signed-off-by: Kalle Valo drivers/net/wireless/marvell/mwifiex/sta_ioctl.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 3f0267f6f76d56285095f88a8908daf8be0fe56b Author: Dan Carpenter Date: Fri Dec 4 16:16:45 2015 +0300 iwlegacy: cleanup end of il_send_add_sta() This code causes a static checker warning because we check for "if (ret == 0)" but we have already had verified that was true. Clean it up a little. Signed-off-by: Dan Carpenter Acked-by: Stanislaw Gruszka Signed-off-by: Kalle Valo drivers/net/wireless/intel/iwlegacy/common.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 09ad44efe722161bbc26317b6c2a43dfd86f023b Author: Dan Carpenter Date: Fri Dec 4 16:15:23 2015 +0300 cw1200: remove some dead code If the mode is NL80211_IFTYPE_UNSPECIFIED then we return success at the start of the function so this condition is never true. Signed-off-by: Dan Carpenter Signed-off-by: Kalle Valo drivers/net/wireless/st/cw1200/sta.c | 6 ------ 1 file changed, 6 deletions(-) commit b513cac22ad6527bd85042766afa8eacf1adffbe Author: Colin Ian King Date: Wed Dec 2 11:45:10 2015 +0000 brcmfmac: only lock and unlock fws if fws is not null There is a null ptr check for fws to set bcmc_credit_check, however, there a lock and unlock on fws should only performed if fwts is also not null to also avoid a potential null pointer deference. Signed-off-by: Colin Ian King Acked-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 133b7326e96031e69fcfb42d6f3040b563ce6464 Author: Guy Mishol Date: Wed Dec 2 10:28:22 2015 +0200 wlcore: split wl12xx/wl18xx sg parameters Align to new wl18xx sg parameters. This requires to split both wl12xx/wl18xx enumerators. Signed-off-by: Guy Mishol Acked-by: Eliad Peller Signed-off-by: Kalle Valo drivers/net/wireless/ti/wl12xx/conf.h | 233 +++++++++++++++++++++++++++++++++ drivers/net/wireless/ti/wl12xx/main.c | 116 +++++++++-------- drivers/net/wireless/ti/wl18xx/conf.h | 90 +++++++++++++ drivers/net/wireless/ti/wl18xx/main.c | 138 +++++++++++--------- drivers/net/wireless/ti/wlcore/acx.c | 4 +- drivers/net/wireless/ti/wlcore/acx.h | 2 +- drivers/net/wireless/ti/wlcore/conf.h | 237 +--------------------------------- 7 files changed, 463 insertions(+), 357 deletions(-) commit 7302b9d90117496049dd4bfa28755f7c2ed55b27 Author: Michael Hennerich Date: Fri Dec 11 11:17:15 2015 +0100 ieee802154/adf7242: Driver for ADF7242 MAC IEEE802154 This driver has been sitting in the linux-zigbee[2] repository for a long time. We updated it from time to time and made it available via our github kernel repository. The Linux MAC802.15.4 support has improved a lot since then. Thanks to all! So it’s finally time to upstream this driver. The ADF7242 requires an add-on firmware for the automatic IEEE 802.15.4 operating modes. The firmware file is currently made available on the ADF7242 wiki page here [1] [1] http://wiki.analog.com/resources/tools-software/linux-drivers/networking-mac802154/adf7242 [2] http://sourceforge.net/p/linux-zigbee/kernel/ci/devel/tree/drivers/ieee802154/adf7242.c Signed-off-by: Michael Hennerich Reviewed-by: Stefan Schmidt Signed-off-by: Marcel Holtmann .../devicetree/bindings/net/ieee802154/adf7242.txt | 18 + MAINTAINERS | 9 + drivers/net/ieee802154/Kconfig | 11 + drivers/net/ieee802154/Makefile | 1 + drivers/net/ieee802154/adf7242.c | 1285 ++++++++++++++++++++ 5 files changed, 1324 insertions(+) commit 365a0442f6def11b0b3012778d6a838c7a8e6912 Author: Geyslan G. Bem Date: Fri Dec 11 06:46:42 2015 -0300 USB: mos7840: remove redundant condition This patch removes redundant condition. (length && length > 5) can be reduced to a single evaluation. Tested by compilation only. Caught by cppcheck. Signed-off-by: Geyslan G. Bem Signed-off-by: Johan Hovold drivers/usb/serial/mos7840.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 232dce89b5b00078fcb633322edadf8badae326a Author: Geyslan G. Bem Date: Fri Dec 11 06:46:41 2015 -0300 USB: io_edgeport: remove redundant conditions This patch removes redundant conditions. (!A || (A && B)) is the same as (!A || B). Tested by compilation only. Caught by cppcheck. Signed-off-by: Geyslan G. Bem Signed-off-by: Johan Hovold drivers/usb/serial/io_edgeport.c | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) commit 4ada1282d86865671abdfcf9410b895af8491213 Author: Danny Schweizer Date: Fri Dec 11 10:04:54 2015 +0100 Bluetooth: Do not filter multicast addresses by default A Linux PC is connected with another device over Bluetooth PAN using a BNEP interface. Whenever a packet is tried to be sent over the BNEP interface, the function "bnep_net_xmit()" in "net/bluetooth/bnep/netdev.c" is called. This function calls "bnep_net_mc_filter()", which checks (if the destination address is multicast) if the address is set in a certain multicast filter (&s->mc_filter). If it is not, then it is not sent out. This filter is only changed in two other functions, found in net/bluetooth/bnep/core.c": in "bnep_ctrl_set_mc_filter()", which is only called if a message of type "BNEP_FILTER_MULTI_ADDR_SET" is received. Otherwise, it is set in "bnep_add_connection()", where it is set to a default value which only adds the broadcast address to the filter: set_bit(bnep_mc_hash(dev->broadcast), (ulong *) &s->mc_filter); To sum up, if the BNEP interface does not receive any message of type "BNEP_FILTER_MULTI_ADDR_SET", it will not send out any messages with multicast destination addresses except for broadcast. However, in the BNEP specification (page 27 in http://grouper.ieee.org/groups/802/15/Bluetooth/BNEP.pdf), it is said that per default, all multicast addresses should not be filtered, i.e. the BNEP interface should be able to send packets with any multicast destination address. It seems that the default case is wrong: the multicast filter should not block almost all multicast addresses, but should not filter out any. This leads to the problem that e.g. Neighbor Solicitation messages sent with Bluetooth PAN over the BNEP interface to a multicast destination address other than broadcast are blocked and not sent out. Therefore, in the default case, we set the mc_filter to ~0LL to not filter out any multicast addresses. Signed-off-by: Danny Schweizer Signed-off-by: Marcel Holtmann net/bluetooth/bnep/core.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit e87623cb3b879b73e807c340d61f1dfc270b5cc6 Author: Jens Kuske Date: Fri Dec 4 22:24:41 2015 +0100 pinctrl: sunxi: Add H3 PIO controller support The H3 uses the same pin controller as previous SoC's from Allwinner. Add support for the pins controlled by the main PIO controller. Signed-off-by: Jens Kuske Acked-by: Rob Herring Acked-by: Maxime Ripard Signed-off-by: Linus Walleij .../bindings/pinctrl/allwinner,sunxi-pinctrl.txt | 1 + drivers/pinctrl/sunxi/Kconfig | 4 + drivers/pinctrl/sunxi/Makefile | 1 + drivers/pinctrl/sunxi/pinctrl-sun8i-h3.c | 515 +++++++++++++++++++++ 4 files changed, 521 insertions(+) commit e1fef9e2ce4272b720ecb1ce696a72aaddbb7585 Author: Geert Uytterhoeven Date: Fri Dec 4 16:33:53 2015 +0100 gpio: rcar: Improve clock error handling and reporting If the Renesas R-Car GPIO driver cannot find a functional clock, it prints a warning, .e.g. gpio_rcar ffc40000.gpio: unable to get clock and continues, as the clock is optional, depending on the SoC type. This warning may confuse users. To fix this, add a flag to indicate that the clock is mandatory or optional: - If the clock is mandatory (on R-Car Gen2 and Gen3), a missing clock is now treated as a fatal error, - If the clock is optional (on R-Car Gen1), the warning is no longer printed. Suggested-by: Magnus Damm Signed-off-by: Geert Uytterhoeven Acked-by: Simon Horman Signed-off-by: Linus Walleij drivers/gpio/gpio-rcar.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 8b092be9fd6a2cd84c437128e9b0d85e364efcfb Author: Geert Uytterhoeven Date: Fri Dec 4 16:33:52 2015 +0100 gpio: rcar: Remove obsolete platform data support Since commit 4baadb9e05c68962 ("ARM: shmobile: r8a7778: remove obsolete setup code"), Renesas R-Car SoCs are only supported in generic DT-only ARM multi-platform builds. The driver doesn't need to use platform data anymore, hence remove platform data configuration. Make gpio_rcar_priv.has_both_edge_trigger a boolean for consistency with gpio_rcar_info.has_both_edge_trigger. Move gpio_rcar_priv.irq_parent down while we're at it, to prevent gaps on 64-bit. Signed-off-by: Geert Uytterhoeven Acked-by: Simon Horman Signed-off-by: Linus Walleij drivers/gpio/gpio-rcar.c | 77 +++++++++++---------------------- include/linux/platform_data/gpio-rcar.h | 29 ------------- 2 files changed, 26 insertions(+), 80 deletions(-) commit 5dec293b2434783a6924571df5239e10ab5e9331 Author: Ville Syrjälä Date: Thu Dec 10 23:13:57 2015 +0200 drm: Expand the drm_helper_probe_single_connector_modes() docs Describe the procedure that drm_helper_probe_single_connector_modes() uses to do it's work in the kernel-doc comment. Caveat: Looks like crap and trying to reverse engineer the documentation tools is not something I want to do. Suggested-by: Daniel Vetter Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449782037-19722-3-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/drm_probe_helper.c | 49 ++++++++++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 12 deletions(-) commit 0e8578c996a33c8da9c28f8ed2d1be68694070ee Author: Ville Syrjälä Date: Thu Dec 10 23:13:56 2015 +0200 drm: Allow override_edid to override the firmware EDID IMO the override_edid should override any default EDID for the connector, whether that came in via the connector helper ->get_modes() vfunc or via the firmware EDID mechanism. Cc: Thomas Wood Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449782037-19722-2-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/drm_probe_helper.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) commit d0b414216f907d38cd26810a5dfc23fe9a5c8254 Author: Ville Syrjälä Date: Thu Dec 3 23:14:15 2015 +0200 drm/sti: Drop bogus drm_mode_sort() call sti seems confused about which mode list is used in its .get_modes() hook. It adds the modes to the probed_modes list (as is appropriate) but then for some reason it tries to sort the old mode list. Just drop the sorting since it does nothing, and let the probe helper do its thing. It will sort the final mode list after merging in the modes from the probed_modes list and validating them. Cc: Benjamin Gaignard Cc: Vincent Abriou Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449177255-9515-8-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/sti/sti_hda.c | 2 -- 1 file changed, 2 deletions(-) commit 6af3e6561243f167dabc03f732d27ff5365cd4a4 Author: Ville Syrjälä Date: Thu Dec 3 23:14:14 2015 +0200 drm: Drop drm_helper_probe_single_connector_modes_nomerge() Now that the mode type bit merge logic is fixed to only merge between new probed modes, hopefully we can eliminat the special case for qxl and virtio. That is make the merge the mode type bits from all matching new probed modes, just like every other driver. qxl and virtio got excluded from the merging in commit 3fbd6439e463 ("drm: copy mode type in drm_mode_connector_list_update()") commit abce1ec9b08a ("Revert "drm: copy mode type in drm_mode_connector_list_update()"") commit b87577b7c768 ("drm: try harder to avoid regression when merging mode bits") Cc: Marc-André Lureau Cc: Dave Airlie Cc: Daniel Vetter Cc: Adam Jackson Signed-off-by: Ville Syrjälä [danvet: Resolve conflicts with doc updates.] Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_modes.c | 12 +--- drivers/gpu/drm/drm_probe_helper.c | 94 ++++++++++++-------------------- drivers/gpu/drm/qxl/qxl_display.c | 2 +- drivers/gpu/drm/virtio/virtgpu_display.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 2 +- include/drm/drm_crtc_helper.h | 4 -- include/drm/drm_modes.h | 2 +- 7 files changed, 41 insertions(+), 77 deletions(-) commit fc245f88039cc52859841bde9b81a7d3b7cd8b5a Author: Ville Syrjälä Date: Fri Dec 4 15:13:01 2015 +0200 drm: Only merge mode type bits between new probed modes Currently most drivers request that any mode appearing on both the old mode list and the new probed_modes list get their type bits ORed together if the modes are deemed to otherwise match each other. I don't know why anyone would want to merge in the mode type bits from any mode left over from a previous probe. For instance, you could never get rid of ther preferred bit if a matching non-preferred mode is returned by the new probe. So let's not merge anything from the stale old modes, and just replace them outright with matching new modes. If multiple matching modes are produced by the same probe, merging the type bits between them would seem like a sensible thing to do. For a bit of extra finesse if two modes are considered equal we can pick the actual timings from the one marked as preferrred. And if multiple preferred modes are produced by the same probe somehow, we can just favor the first one added to the probed_modes list. You may be asking yourself why we bother with the merging at all if nothing from the old list survives in practice. The only answer I have is "debug output". That is we want to print out a list of pruned modes, which is why we still want to look for duplicates with the old modes. There was a previous attempt to get rid of the mode type merging entirely, but it caused some kind of regression on Daniels's G33 machine. Apparently the sdvo transcoder on said machine started to die at around the same time and has since rotted away totally, so it may have been a red herring. So we don't have to worry about it anymore. The relevant commits are: commit 3fbd6439e463 ("drm: copy mode type in drm_mode_connector_list_update()") commit abce1ec9b08a ("Revert "drm: copy mode type in drm_mode_connector_list_update()"") It was then decided in commit b87577b7c768 ("drm: try harder to avoid regression when merging mode bits") that just qxl virtio are excluded from the merging, while everyone else does it. That is not changed, although now even qxl and virtio will be subject to the previously mentioned logic to choose which actual timings are picked for the new mode. v2: Fix typos in commit message, and clarify the details on the G33 regression from the previous attempt (Daniel) Cc: Marc-André Lureau Cc: Dave Airlie Cc: Daniel Vetter Cc: Adam Jackson Signed-off-by: Ville Syrjälä Reviewed-by: Daniel Vetter Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449234781-22332-1-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/drm_modes.c | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) commit 2f8c19e771dcb3af974e46ffb512b592d70fb444 Author: Ville Syrjälä Date: Thu Dec 3 23:14:12 2015 +0200 drm: Flatten drm_mode_connector_list_update() a bit Use 'continue' to eliminate one indent level from drm_mode_connector_list_update(). And while at it, make 'found_it' bool. Cc: Adam Jackson Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449177255-9515-5-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/drm_modes.c | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) commit 5ba894064d98547c82a1efd50eba40a92df777a1 Author: Ville Syrjälä Date: Thu Dec 10 22:39:08 2015 +0200 drm: Rename MODE_UNVERIFIED to MODE_STALE MODE_UNVERIFIED actually means that the mode came from a previous probe, and if the new probe doesn't produce a matching mode it will get pruned from the list. Rename the flag to MODE_STALE to better convey the meaning. v2: Rebased due to conflicts with Daniel's doc stuff Cc: Adam Jackson Signed-off-by: Ville Syrjälä Reviewed-by: Daniel Vetter Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449779948-10906-1-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/drm_modes.c | 2 +- drivers/gpu/drm/drm_probe_helper.c | 4 ++-- include/drm/drm_modes.h | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) commit 2367cee5fda1e9ebc605b13175492b31030acd9d Author: Karsten Merker Date: Thu Dec 10 21:32:00 2015 +0100 ARM: dts: sun7i: Olimex A20-SOM-EVB: Enable mmc3 (baseboard SD socket) The Olimex A20-SOM-EVB is an evaluation board for the Olimex A20-SOM system-on-module. The baseboard provides a full-size SD socket (connected to mmc3) in addition to the micro-SD socket on the SOM itself (which is connected to mmc0). Enable the mmc3 controller in the dts. Signed-off-by: Karsten Merker Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20-olimex-som-evb.dts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 15228f04de82c2f6d893926423b71c9ce8c4200e Author: Karsten Merker Date: Thu Dec 10 21:31:59 2015 +0100 ARM: dts: sun7i: Olimex A20-SOM-EVB: Add LRADC keys The Olimex A20-SOM-EVB is an evaluation board for the Olimex A20-SOM system-on-module. It provides a set of android-style buttons (labeled "VOL+", "VOL-", "MENU", "SEARCH", "HOME", "ESC" and "ENTER") which are connected to a low-resolution ADC via a resistor network. This patch adds appropriate button definitions to the board dts. The voltages assigned to the keys are specified in the board schematics published by the manufacturer. Signed-off-by: Karsten Merker Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20-olimex-som-evb.dts | 56 ++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) commit be8719a610003297c28b140f1ebd4445aef1d613 Author: Ville Syrjälä Date: Thu Dec 3 23:14:09 2015 +0200 drm: Don't overwrite UNVERFIED mode status to OK The way the mode probing works is this: 1. All modes currently on the mode list are marked as UNVERIFIED 2. New modes are on the probed_modes list (they start with status OK) 3. Modes are moved from the probed_modes list to the actual mode list. If a mode already on the mode list is deemed to match one of the probed modes, the duplicate is dropped and the mode status updated to OK. After this the probed_modes list will be empty. 4. All modes on the mode list are verified to not violate any constraints. Any that do are marked as such. 5. Any mode left with a non-OK status is pruned from the list, with an appropriate debug message. What all this means is that any mode on the original list that didn't have a duplicate on the probed_modes list, should be left with status UNVERFIED (or previously could have been left with some other status, but never OK). I broke that in commit 05acaec334fc ("drm: Reorganize probed mode validation") by always assigning something to the mode->status during the validation step. So any mode from the old list that still passed the validation would be left on the list with status OK in the end. Fix this by not doing the basic mode validation unless the mode already has status OK (meaning it came from the probed_modes list, or at least a duplicate of it was on that list). This way we will correctly prune away any mode from the old mode list that didn't appear on the probed_modes list. Cc: stable@vger.kernel.org Cc: Adam Jackson Fixes: 05acaec334fc ("drm: Reorganize probed mode validation") Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1449177255-9515-2-git-send-email-ville.syrjala@linux.intel.com Testcase: igt/kms_force_connector_basic/prune-stale-modes Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93332 [danvet: Also applying to drm-misc to avoid too much conflict hell - there's a big pile of patches from Ville on top of this one.] Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_probe_helper.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 9f4c97a236d35b9fe45168a979adb5e1522c0968 Author: Ville Syrjälä Date: Tue Dec 8 18:41:54 2015 +0200 drm: Add plane->name and use it in debug prints Show a sensible name for the plane in debug mesages. The driver may supply its own name, otherwise the core genrates the name ("plane-0", "plane-1" etc.). v2: kstrdup() the name passed by the caller (Jani) v3: Generate a default name if the driver doesn't supply one Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449592922-5545-7-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/drm_atomic.c | 12 ++++++------ drivers/gpu/drm/drm_atomic_helper.c | 4 ++-- drivers/gpu/drm/drm_crtc.c | 30 ++++++++++++++++++++++++++++++ include/drm/drm_crtc.h | 2 ++ 4 files changed, 40 insertions(+), 8 deletions(-) commit fa3ab4c2113c74a9eae9b6a718b167f7c8833e78 Author: Ville Syrjälä Date: Tue Dec 8 18:41:53 2015 +0200 drm: Add crtc->name and use it in debug messages Show a sensible name for the crtc in debug mesages. The driver may supply its own name, otherwise the core genrates the name ("crtc-0", "crtc-1" etc.). v2: kstrdup() the name passed by the caller (Jani) v3: Generate a default name if the driver doesn't supply one Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449592922-5545-6-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/drm_atomic.c | 41 ++++++++++++++------------- drivers/gpu/drm/drm_atomic_helper.c | 56 +++++++++++++++++++------------------ drivers/gpu/drm/drm_crtc.c | 34 ++++++++++++++++++++-- drivers/gpu/drm/drm_crtc_helper.c | 24 ++++++++-------- include/drm/drm_crtc.h | 2 ++ 5 files changed, 97 insertions(+), 60 deletions(-) commit 86bf546b339914b29f9068bcbb7696355e246a47 Author: Ville Syrjälä Date: Tue Dec 8 18:41:52 2015 +0200 drm: Use driver specified encoder name Use the encoder name passed by the driver if non-NULL, otherwise fall back to the old style name. Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449592922-5545-5-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/drm_crtc.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) commit 13a3d91f17a5f7ed2acd275d18b6acfdb131fb15 Author: Ville Syrjälä Date: Wed Dec 9 16:20:18 2015 +0200 drm: Pass 'name' to drm_encoder_init() Done with coccinelle for the most part. However, it thinks '...' is part of the semantic patch, so I put an 'int DOTDOTDOT' placeholder in its place and got rid of it with sed afterwards. @@ identifier dev, encoder, funcs; @@ int drm_encoder_init(struct drm_device *dev, struct drm_encoder *encoder, const struct drm_encoder_funcs *funcs, int encoder_type + ,const char *name, int DOTDOTDOT ) { ... } @@ identifier dev, encoder, funcs; @@ int drm_encoder_init(struct drm_device *dev, struct drm_encoder *encoder, const struct drm_encoder_funcs *funcs, int encoder_type + ,const char *name, int DOTDOTDOT ); @@ expression E1, E2, E3, E4; @@ drm_encoder_init(E1, E2, E3, E4 + ,NULL ) v2: Add ', or NULL...' to @name kernel doc (Jani) Annotate the function with __printf() attribute (Jani) Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449670818-2966-1-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 14 +++++------ drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 14 +++++------ drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 14 +++++------ drivers/gpu/drm/ast/ast_mode.c | 2 +- drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c | 2 +- drivers/gpu/drm/bochs/bochs_kms.c | 2 +- drivers/gpu/drm/cirrus/cirrus_mode.c | 2 +- drivers/gpu/drm/drm_crtc.c | 3 ++- drivers/gpu/drm/exynos/exynos_dp_core.c | 2 +- drivers/gpu/drm/exynos/exynos_drm_dpi.c | 2 +- drivers/gpu/drm/exynos/exynos_drm_dsi.c | 2 +- drivers/gpu/drm/exynos/exynos_drm_vidi.c | 2 +- drivers/gpu/drm/exynos/exynos_hdmi.c | 2 +- drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c | 2 +- drivers/gpu/drm/gma500/cdv_intel_crt.c | 2 +- drivers/gpu/drm/gma500/cdv_intel_dp.c | 3 ++- drivers/gpu/drm/gma500/cdv_intel_hdmi.c | 2 +- drivers/gpu/drm/gma500/cdv_intel_lvds.c | 2 +- drivers/gpu/drm/gma500/mdfld_dsi_dpi.c | 2 +- drivers/gpu/drm/gma500/oaktrail_hdmi.c | 2 +- drivers/gpu/drm/gma500/oaktrail_lvds.c | 2 +- drivers/gpu/drm/gma500/psb_intel_lvds.c | 2 +- drivers/gpu/drm/gma500/psb_intel_sdvo.c | 3 ++- drivers/gpu/drm/i2c/tda998x_drv.c | 2 +- drivers/gpu/drm/i915/intel_crt.c | 2 +- drivers/gpu/drm/i915/intel_ddi.c | 2 +- drivers/gpu/drm/i915/intel_dp.c | 2 +- drivers/gpu/drm/i915/intel_dp_mst.c | 2 +- drivers/gpu/drm/i915/intel_dsi.c | 3 ++- drivers/gpu/drm/i915/intel_dvo.c | 2 +- drivers/gpu/drm/i915/intel_hdmi.c | 2 +- drivers/gpu/drm/i915/intel_lvds.c | 2 +- drivers/gpu/drm/i915/intel_sdvo.c | 3 ++- drivers/gpu/drm/i915/intel_tv.c | 2 +- drivers/gpu/drm/imx/dw_hdmi-imx.c | 2 +- drivers/gpu/drm/imx/imx-ldb.c | 2 +- drivers/gpu/drm/imx/imx-tve.c | 2 +- drivers/gpu/drm/imx/parallel-display.c | 2 +- drivers/gpu/drm/mgag200/mgag200_mode.c | 2 +- drivers/gpu/drm/msm/mdp/mdp4/mdp4_dtv_encoder.c | 2 +- drivers/gpu/drm/msm/mdp/mdp4/mdp4_lcdc_encoder.c | 2 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_cmd_encoder.c | 2 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_encoder.c | 2 +- drivers/gpu/drm/nouveau/dispnv04/dac.c | 3 ++- drivers/gpu/drm/nouveau/dispnv04/dfp.c | 2 +- drivers/gpu/drm/nouveau/dispnv04/tvnv04.c | 3 ++- drivers/gpu/drm/nouveau/dispnv04/tvnv17.c | 3 ++- drivers/gpu/drm/nouveau/nv50_display.c | 6 ++--- drivers/gpu/drm/omapdrm/omap_encoder.c | 2 +- drivers/gpu/drm/qxl/qxl_display.c | 2 +- drivers/gpu/drm/radeon/atombios_encoders.c | 30 ++++++++++++++++-------- drivers/gpu/drm/radeon/radeon_dp_mst.c | 2 +- drivers/gpu/drm/radeon/radeon_legacy_encoders.c | 15 ++++++++---- drivers/gpu/drm/rcar-du/rcar_du_encoder.c | 2 +- drivers/gpu/drm/rcar-du/rcar_du_hdmienc.c | 2 +- drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 2 +- drivers/gpu/drm/shmobile/shmob_drm_crtc.c | 2 +- drivers/gpu/drm/sti/sti_tvout.c | 7 +++--- drivers/gpu/drm/tegra/dsi.c | 2 +- drivers/gpu/drm/tegra/hdmi.c | 2 +- drivers/gpu/drm/tegra/rgb.c | 2 +- drivers/gpu/drm/tegra/sor.c | 2 +- drivers/gpu/drm/tilcdc/tilcdc_panel.c | 2 +- drivers/gpu/drm/tilcdc/tilcdc_tfp410.c | 2 +- drivers/gpu/drm/udl/udl_encoder.c | 3 ++- drivers/gpu/drm/vc4/vc4_hdmi.c | 2 +- drivers/gpu/drm/virtio/virtgpu_display.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 2 +- include/drm/drm_crtc.h | 9 +++---- 71 files changed, 135 insertions(+), 109 deletions(-) commit b0b3b7951114315d65398c27648705ca1c322faa Author: Ville Syrjälä Date: Wed Dec 9 16:19:55 2015 +0200 drm: Pass 'name' to drm_universal_plane_init() Done with coccinelle for the most part. It choked on msm/mdp/mdp5/mdp5_plane.c like so: "BAD:!!!!! enum drm_plane_type type;" No idea how to deal with that, so I just fixed that up by hand. Also it thinks '...' is part of the semantic patch, so I put an 'int DOTDOTDOT' placeholder in its place and got rid of it with sed afterwards. I didn't convert drm_plane_init() since passing the varargs through would mean either cpp macros or va_list, and I figured we don't care about these legacy functions enough to warrant the extra pain. @@ typedef uint32_t; identifier dev, plane, possible_crtcs, funcs, formats, format_count, type; @@ int drm_universal_plane_init(struct drm_device *dev, struct drm_plane *plane, unsigned long possible_crtcs, const struct drm_plane_funcs *funcs, const uint32_t *formats, unsigned int format_count, enum drm_plane_type type + ,const char *name, int DOTDOTDOT ) { ... } @@ identifier dev, plane, possible_crtcs, funcs, formats, format_count, type; @@ int drm_universal_plane_init(struct drm_device *dev, struct drm_plane *plane, unsigned long possible_crtcs, const struct drm_plane_funcs *funcs, const uint32_t *formats, unsigned int format_count, enum drm_plane_type type + ,const char *name, int DOTDOTDOT ); @@ expression E1, E2, E3, E4, E5, E6, E7; @@ drm_universal_plane_init(E1, E2, E3, E4, E5, E6, E7 + ,NULL ) v2: Split crtc and plane changes apart Pass NUL for no-name instead of "" Leave drm_plane_init() alone v3: Add ', or NULL...' to @name kernel doc (Jani) Annotate the function with __printf() attribute (Jani) Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449670795-2853-1-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/armada/armada_crtc.c | 2 +- drivers/gpu/drm/armada/armada_overlay.c | 2 +- drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c | 2 +- drivers/gpu/drm/drm_crtc.c | 6 ++++-- drivers/gpu/drm/drm_plane_helper.c | 2 +- drivers/gpu/drm/exynos/exynos_drm_plane.c | 2 +- drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c | 2 +- drivers/gpu/drm/i915/intel_display.c | 4 ++-- drivers/gpu/drm/i915/intel_sprite.c | 2 +- drivers/gpu/drm/imx/ipuv3-plane.c | 3 ++- drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c | 3 ++- drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c | 2 +- drivers/gpu/drm/omapdrm/omap_plane.c | 2 +- drivers/gpu/drm/rcar-du/rcar_du_plane.c | 3 ++- drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 4 ++-- drivers/gpu/drm/sti/sti_cursor.c | 2 +- drivers/gpu/drm/sti/sti_gdp.c | 2 +- drivers/gpu/drm/sti/sti_hqvdp.c | 2 +- drivers/gpu/drm/tegra/dc.c | 9 ++++++--- drivers/gpu/drm/vc4/vc4_plane.c | 2 +- drivers/gpu/drm/virtio/virtgpu_plane.c | 2 +- include/drm/drm_crtc.h | 16 +++++++++------- 22 files changed, 43 insertions(+), 33 deletions(-) commit f98828769c8838f526703ef180b3088a714af2f9 Author: Ville Syrjälä Date: Wed Dec 9 16:19:31 2015 +0200 drm: Pass 'name' to drm_crtc_init_with_planes() Done with coccinelle for the most part. However, it thinks '...' is part of the semantic patch, so I put an 'int DOTDOTDOT' placeholder in its place and got rid of it with sed afterwards. I didn't convert drm_crtc_init() since passing the varargs through would mean either cpp macros or va_list, and I figured we don't care about these legacy functions enough to warrant the extra pain. @@ identifier dev, crtc, primary, cursor, funcs; @@ int drm_crtc_init_with_planes(struct drm_device *dev, struct drm_crtc *crtc, struct drm_plane *primary, struct drm_plane *cursor, const struct drm_crtc_funcs *funcs + ,const char *name, int DOTDOTDOT ) { ... } @@ identifier dev, crtc, primary, cursor, funcs; @@ int drm_crtc_init_with_planes(struct drm_device *dev, struct drm_crtc *crtc, struct drm_plane *primary, struct drm_plane *cursor, const struct drm_crtc_funcs *funcs + ,const char *name, int DOTDOTDOT ); @@ expression E1, E2, E3, E4, E5; @@ drm_crtc_init_with_planes(E1, E2, E3, E4, E5 + ,NULL ) v2: Split crtc and plane changes apart Pass NULL for no-name instead of "" Leave drm_crtc_init() alone v3: Add ', or NULL...' to @name kernel doc (Jani) Annotate the function with __printf() attribute (Jani) Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449670771-2751-1-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/armada/armada_crtc.c | 2 +- drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c | 2 +- drivers/gpu/drm/drm_crtc.c | 4 +++- drivers/gpu/drm/drm_plane_helper.c | 3 ++- drivers/gpu/drm/exynos/exynos_drm_crtc.c | 2 +- drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c | 2 +- drivers/gpu/drm/i915/intel_display.c | 2 +- drivers/gpu/drm/imx/imx-drm-core.c | 2 +- drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c | 3 ++- drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c | 3 ++- drivers/gpu/drm/omapdrm/omap_crtc.c | 2 +- drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 2 +- drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 2 +- drivers/gpu/drm/sti/sti_crtc.c | 2 +- drivers/gpu/drm/tegra/dc.c | 2 +- drivers/gpu/drm/vc4/vc4_crtc.c | 2 +- drivers/gpu/drm/virtio/virtgpu_display.c | 2 +- include/drm/drm_crtc.h | 12 +++++++----- 18 files changed, 29 insertions(+), 22 deletions(-) commit d51953b0873358d13b189996e6976dfa12a9b59d Author: Ingo Molnar Date: Fri Dec 11 09:01:30 2015 +0100 x86/platform/uv: Include clocksource.h for clocksource_touch_watchdog() This build failure triggers on 64-bit allmodconfig: arch/x86/platform/uv/uv_nmi.c:493:2: error: implicit declaration of function ‘clocksource_touch_watchdog’ [-Werror=implicit-function-declaration] which is caused by recent changes exposing a missing clocksource.h include in uv_nmi.c: cc1e24fdb064 x86/vdso: Remove pvclock fixmap machinery this file got clocksource.h indirectly via fixmap.h - that stealth route of header inclusion is now gone. Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/platform/uv/uv_nmi.c | 1 + 1 file changed, 1 insertion(+) commit 76480a6a55a03d0fe5dd6290ccde7f78678ab85e Author: Andy Lutomirski Date: Thu Dec 10 19:20:22 2015 -0800 x86/vdso: Enable vdso pvclock access on all vdso variants Now that pvclock doesn't require access to the fixmap, all vdso variants can use it. The kernel side isn't wired up for 32-bit kernels yet, but this covers 32-bit and x32 userspace on 64-bit kernels. Signed-off-by: Andy Lutomirski Reviewed-by: Paolo Bonzini Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-mm@kvack.org Link: http://lkml.kernel.org/r/a7ef693b7a4c88dd2173dc1d4bf6bc27023626eb.1449702533.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/vdso/vclock_gettime.c | 91 ++++++++++++++++-------------------- 1 file changed, 40 insertions(+), 51 deletions(-) commit cc1e24fdb064d3126a494716f22ad4fc39306742 Author: Andy Lutomirski Date: Thu Dec 10 19:20:21 2015 -0800 x86/vdso: Remove pvclock fixmap machinery Signed-off-by: Andy Lutomirski Reviewed-by: Paolo Bonzini Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-mm@kvack.org Link: http://lkml.kernel.org/r/4933029991103ae44672c82b97a20035f5c1fe4f.1449702533.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/vdso/vclock_gettime.c | 1 - arch/x86/entry/vdso/vma.c | 1 + arch/x86/include/asm/fixmap.h | 5 ----- arch/x86/include/asm/pvclock.h | 5 ----- arch/x86/kernel/kvmclock.c | 6 ------ arch/x86/kernel/pvclock.c | 24 ------------------------ 6 files changed, 1 insertion(+), 41 deletions(-) commit dac16fba6fc590fa7239676b35ed75dae4c4cd2b Author: Andy Lutomirski Date: Thu Dec 10 19:20:20 2015 -0800 x86/vdso: Get pvclock data from the vvar VMA instead of the fixmap Signed-off-by: Andy Lutomirski Reviewed-by: Paolo Bonzini Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-mm@kvack.org Link: http://lkml.kernel.org/r/9d37826fdc7e2d2809efe31d5345f97186859284.1449702533.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/vdso/vclock_gettime.c | 20 ++++++++------------ arch/x86/entry/vdso/vdso-layout.lds.S | 3 ++- arch/x86/entry/vdso/vdso2c.c | 3 +++ arch/x86/entry/vdso/vma.c | 13 +++++++++++++ arch/x86/include/asm/pvclock.h | 9 +++++++++ arch/x86/include/asm/vdso.h | 1 + arch/x86/kernel/kvmclock.c | 5 +++++ 7 files changed, 41 insertions(+), 13 deletions(-) commit 6b078f5de7fc0851af4102493c7b5bb07e49c4cb Author: Andy Lutomirski Date: Thu Dec 10 19:20:19 2015 -0800 x86, vdso, pvclock: Simplify and speed up the vdso pvclock reader The pvclock vdso code was too abstracted to understand easily and excessively paranoid. Simplify it for a huge speedup. This opens the door for additional simplifications, as the vdso no longer accesses the pvti for any vcpu other than vcpu 0. Before, vclock_gettime using kvm-clock took about 45ns on my machine. With this change, it takes 29ns, which is almost as fast as the pure TSC implementation. Signed-off-by: Andy Lutomirski Reviewed-by: Paolo Bonzini Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-mm@kvack.org Link: http://lkml.kernel.org/r/6b51dcc41f1b101f963945c5ec7093d72bdac429.1449702533.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/vdso/vclock_gettime.c | 81 ++++++++++++++++++++---------------- 1 file changed, 46 insertions(+), 35 deletions(-) commit 677a73a9aa5433ea728200c26a7b3506d5eaa92b Author: Andy Lutomirski Date: Thu Dec 10 19:20:18 2015 -0800 x86/kvm: On KVM re-enable (e.g. after suspend), update clocks This gets rid of the "did TSC go backwards" logic and just updates all clocks. It should work better (no more disabling of fast timing) and more reliably (all of the clocks are actually updated). Signed-off-by: Andy Lutomirski Reviewed-by: Paolo Bonzini Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-mm@kvack.org Link: http://lkml.kernel.org/r/861716d768a1da6d1fd257b7972f8df13baf7f85.1449702533.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/kvm/x86.c | 75 +++--------------------------------------------------- 1 file changed, 3 insertions(+), 72 deletions(-) commit 54c9238cfd495d234b0e02fa7dcce5b1671a42dd Merge: d18929e e7a7865 Author: Ingo Molnar Date: Fri Dec 11 08:47:25 2015 +0100 Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core Pull perf/core refactorings and fixes from Arnaldo Carvalho de Melo: Infrastructure changes: - Revert "perf tools: Improve setting of gcc debug option", -Og is broken, GCC PR created (Jiri Olsa) - More reference count fixes (Masami Hiramatsu) - Untangle browser setup (--stdio, --tui, etc) from argument checking, prep work to move the usage() code out of tools/perf for use by other tools/ living utilities (Namhyung Kim) - Delete half-processed hist entries when exiting 'perf top' (Namhyung Kim) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 37cf4dc3370fbca0344e23bb96446eb2c3548ba7 Author: John Stultz Date: Thu Dec 3 22:09:31 2015 -0500 time: Verify time values in adjtimex ADJ_SETOFFSET to avoid overflow For adjtimex()'s ADJ_SETOFFSET, make sure the tv_usec value is sane. We might multiply them later which can cause an overflow and undefined behavior. This patch introduces new helper functions to simplify the checking code and adds comments to clarify Orginally this patch was by Sasha Levin, but I've basically rewritten it, so he should get credit for finding the issue and I should get the blame for any mistakes made since. Also, credit to Richard Cochran for the phrasing used in the comment for what is considered valid here. Cc: Sasha Levin Cc: Richard Cochran Cc: Thomas Gleixner Reported-by: Sasha Levin Signed-off-by: John Stultz include/linux/time.h | 26 ++++++++++++++++++++++++++ kernel/time/ntp.c | 10 ++++++++-- kernel/time/timekeeping.c | 2 +- 3 files changed, 35 insertions(+), 3 deletions(-) commit 52d189f1b38810b1b483d5bac2e4fa90b9afd372 Author: Sasha Levin Date: Thu Dec 3 15:46:48 2015 -0500 ntp: Verify offset doesn't overflow in ntp_update_offset We need to make sure that the offset is valid before manipulating it, otherwise it might overflow on the multiplication. Cc: Sasha Levin Cc: Richard Cochran Cc: Thomas Gleixner Signed-off-by: Sasha Levin [jstultz: Reworked one of the checks so it makes more sense] Signed-off-by: John Stultz kernel/time/ntp.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 3b44edaaa1fffccea7edc018dd807581c97a6aea Author: Andrzej Hajda Date: Mon Sep 21 15:33:41 2015 +0200 selftests/timers: fix write return value handlng 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 Signed-off-by: John Stultz tools/testing/selftests/timers/clocksource-switch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 663a233eef643b38f36c05535cb5c9a4972edcc1 Merge: e876b41 d7e12cd Author: Dave Airlie Date: Fri Dec 11 13:46:05 2015 +1000 Merge branch 'drm-header-fixes' of https://github.com/GabrielL/linux into drm-next Fix all the problems with the header files and userspace builds off them. I really care so little about this, but hey who am I to stop progress. * 'drm-header-fixes' of https://github.com/GabrielL/linux: (30 commits) drm: fix inclusion of drm.h in via_drm.h drm: fix inclusion of drm.h in vmwgfx_drm.h drm: fix inclusion of drm.h in virtgpu_drm.h drm: fix inclusion of drm.h in tegra_drm.h drm: fix inclusion of drm.h in savage_drm.h drm: fix inclusion of drm.h in r128_drm.h drm: fix inclusion of drm.h in qxl_drm.h drm: fix inclusion of drm.h in omap_drm.h drm: fix inclusion of drm.h in msm_drm.h drm: fix inclusion of drm.h in mga_drm.h drm: fix inclusion of drm.h in exynos_sarea.h drm: fix inclusion of drm.h in i810_drm.h drm: fix inclusion of drm.h in exynos_sarea.h drm: fix inclusion of drm.h in drm_sarea.h drm: drm_mode.h fix includes drm: drm_fourcc.h fix includes drm: include drm.h in armada_drm.h include/uapi/drm/amdgpu_drm.h: use __u32 and __u64 from drm: Kbuild: add admgpu_drm.h to the installed headers drm: use __u{32,64} instead of uint{32,64}_t in virtgpu_drm.h ... commit 800e07b609bf31c34c1fa08745812fc721101acc Merge: 1ec2183 57d86a0 64609ea 96ae646 128fc68 Author: Bjorn Helgaas Date: Thu Dec 10 19:40:14 2015 -0600 Merge branches 'pci/aspm', 'pci/hotplug', 'pci/misc' and 'pci/msi' into next * pci/aspm: PCI/ASPM: Make sysfs link_state_store() consistent with link_state_show() * pci/hotplug: PCI: pciehp: Always protect pciehp_disable_slot() with hotplug mutex * pci/misc: x86/PCI: Simplify pci_bios_{read,write} PCI: Simplify config space size computation PCI: Limit config space size for Netronome NFP6000 family PCI: Add Netronome vendor and device IDs PCI: Support PCIe devices with short cfg_size x86/PCI: Clarify AMD Fam10h config access restrictions comment PCI: Print warnings for all invalid expansion ROM headers PCI: Check for PCI_HEADER_TYPE_BRIDGE equality, not bitmask * pci/msi: PCI/MSI: Remove empty pci_msi_init_pci_dev() PCI/MSI: Initialize MSI capability for all architectures commit 96ae6469ba16ae502d2b2db4b5c9b7c846262999 Author: Geliang Tang Date: Mon Dec 7 22:24:24 2015 +0800 x86/PCI: Simplify pci_bios_{read,write} There is some repetitive code in the switch/case statements in pci_bios_read() and pci_bios_write(). Factor out the BIOS function IDs and the result widths to simplify the code. Signed-off-by: Geliang Tang Signed-off-by: Bjorn Helgaas Reviewed-by: Thomas Gleixner arch/x86/pci/pcbios.c | 108 ++++++++++++++++++-------------------------------- 1 file changed, 38 insertions(+), 70 deletions(-) commit 8e5a395a040a7c72ec283f844eca679b924f5f01 Author: Bjorn Helgaas Date: Mon Dec 7 18:21:10 2015 -0600 PCI: Simplify config space size computation Restructure the logic so we return the config space size as soon as we know it. This reduces indentation, removes negations, and removes gotos. No functional change. Signed-off-by: Bjorn Helgaas drivers/pci/probe.c | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) commit 9f33a2ae59f24452c1076749deb615bccd435ca9 Author: Jason S. McMullan Date: Wed Sep 30 15:35:07 2015 +0900 PCI: Limit config space size for Netronome NFP6000 family The NFP6000 has an erratum where reading/writing to PCI config space addresses above 0x600 can cause the NFP to generate PCIe completion timeouts. Limit the NFP6000's config space size to 0x600 bytes. Signed-off-by: Jason S. McMullan [simon: edited changelog] Signed-off-by: Simon Horman Signed-off-by: Bjorn Helgaas drivers/pci/quirks.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit a755e169031dac9ebaed03302c4921687c271d62 Author: Jason S. McMullan Date: Wed Sep 30 15:35:06 2015 +0900 PCI: Add Netronome vendor and device IDs Device IDs for the Netronome NFP3200, NFP3240, NFP6000, and NFP6000 SR-IOV devices. Signed-off-by: Jason S. McMullan [simon: edited changelog] Signed-off-by: Simon Horman Signed-off-by: Bjorn Helgaas include/linux/pci_ids.h | 6 ++++++ 1 file changed, 6 insertions(+) commit c20aecf6963d1273d8f6d61c042b4845441ca592 Author: Jason S. McMullan Date: Wed Sep 30 15:35:05 2015 +0900 PCI: Support PCIe devices with short cfg_size If a device quirk modifies the pci_dev->cfg_size to be less than PCI_CFG_SPACE_EXP_SIZE (4096), but greater than PCI_CFG_SPACE_SIZE (256), the PCI sysfs interface truncates the readable size to PCI_CFG_SPACE_SIZE. Allow sysfs access to config space up to cfg_size, even if the device doesn't support the entire 4096-byte PCIe config space. Note that pci_read_config() and pci_write_config() limit access to dev->cfg_size even though pcie_config_attr contains 4096 (the maximum size). Signed-off-by: Jason S. McMullan [simon: edited changelog] Signed-off-by: Simon Horman [bhelgaas: more changelog edits] Signed-off-by: Bjorn Helgaas drivers/pci/pci-sysfs.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 21461775f3d173dedec27a0402d426ba422d80a1 Author: Tomasz Nowicki Date: Tue May 26 20:49:15 2015 +0800 x86/PCI: Clarify AMD Fam10h config access restrictions comment Clarify the comment about AMD Fam10h config access restrictions, fix typos, and add a reference to the specification. [bhelgaas: streamline] Signed-off-by: Tomasz Nowicki Signed-off-by: Hanjun Guo Signed-off-by: Bjorn Helgaas Tested-by: Suravee Suthikulpanit arch/x86/include/asm/pci_x86.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 4066df6345f5b3bacdf7944c4d9a839f1eef5773 Author: Vladis Dronov Date: Fri Nov 27 18:20:06 2015 +0100 PCI: Print warnings for all invalid expansion ROM headers We've always validated that both bytes of the Expansion ROM signature and all four bytes of the PCI Data Structure signature (see PCI Firmware spec r3.0, sec 5.1.1), but we only printed a warning if the first byte of the ROM signature was invalid. Print warnings if *any* of those bytes are invalid. Note that we only look at these headers if we map or read the ROM. [bhelgaas: changelog, tweak printk format] Signed-off-by: Vladis Dronov Signed-off-by: Bjorn Helgaas drivers/pci/rom.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) commit 93de6901766c6821538b74a092e47780a9120fac Author: Bjorn Helgaas Date: Thu Dec 3 13:18:18 2015 -0600 PCI: Check for PCI_HEADER_TYPE_BRIDGE equality, not bitmask Bit 7 of the "Header Type" register indicates a multi-function device when set. Bits 0-6 contain encoded values, where 0x1 indicates a PCI-PCI bridge. It is incorrect to test this as though it were a mask. For example, while the PCI 3.0 spec only defines values 0x0, 0x1, and 0x2, it's conceivable that a future spec could define 0x3 to mean something else; then tests for "(hdr_type & 0x7f) & PCI_HEADER_TYPE_BRIDGE" would incorrectly succeed for this new 0x3 header type. Test bits 0-6 of the Header Type for equality with PCI_HEADER_TYPE_BRIDGE. Signed-off-by: Bjorn Helgaas arch/powerpc/kernel/eeh_driver.c | 2 +- drivers/pci/hotplug/ibmphp_pci.c | 2 +- drivers/pci/pcie/aer/aerdrv_core.c | 10 +++++----- 3 files changed, 7 insertions(+), 7 deletions(-) commit 4b0f88796bd3d19331550dad2a9d958091f874a2 Author: Simon Horman Date: Fri Dec 11 10:07:38 2015 +0900 ARM: shmobile: r8a7793: Describe DMA for the serial ports Add DMA properties to all SCIF, SCIFA, SCIFB, and HSCIF device nodes. Based on similar work for the r8a7791 by Geert Uytterhoeven. Signed-off-by: Simon Horman Acked-by: Geert Uytterhoeven arch/arm/boot/dts/r8a7793.dtsi | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) commit af48156ff3a1762989627fba7c56e77743fc0fdc Author: Geert Uytterhoeven Date: Thu Dec 10 16:16:02 2015 +0100 ARM: shmobile: defconfig: Enable frame buffer console for armadillo800eva Enabling the frame buffer device on armadillo800eva requires the board staging code. Also enable the frame buffer, so you will actually see output during boot. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/configs/shmobile_defconfig | 3 +++ 1 file changed, 3 insertions(+) commit 6161cc147277e7537d73a45d732a7112997c20f6 Author: Geert Uytterhoeven Date: Thu Dec 10 16:16:01 2015 +0100 ARM: shmobile: defconfig: Enable missing support based on DTSes Enable all missing support, extracted from the various Renesas ARM DTSes using linux-config-from-dt. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/configs/shmobile_defconfig | 6 ++++++ 1 file changed, 6 insertions(+) commit 59ab5e08b2a60f97e3b59eb8fa4a79c567fc98a5 Author: Geert Uytterhoeven Date: Thu Dec 10 16:16:00 2015 +0100 ARM: shmobile: defconfig: Drop useless CONFIG_USB_RCAR_PHY=y The Renesas R-Car (Gen1) USB PHY driver (which is being removed) does not support DT, and is thus useless in a Renesas ARM multi-platform kernel. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/configs/shmobile_defconfig | 1 - 1 file changed, 1 deletion(-) commit f7c6ab80fa5fee3daccb83a3c1b3a9f39d7b931c Author: Dan Williams Date: Thu Dec 10 16:11:59 2015 -0800 libnvdimm, pfn: clean up pfn create parameters In all cases __nd_pfn_create is called with default parameters which are then overridden by values in the info block. Clean up pfn creation by dropping the parameters and setting default values internal to __nd_pfn_create. Signed-off-by: Dan Williams drivers/nvdimm/pfn_devs.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) commit 4188146566a9f1d57dfce77fd9457f7304b69dfa Author: Markus Elfring Date: Thu Dec 10 23:44:34 2015 +0100 ieee802154-atusb: Delete an unnecessary check before the function call "kfree_skb" The kfree_skb() 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 Acked-by: Stefan Schmidt Signed-off-by: Marcel Holtmann drivers/net/ieee802154/atusb.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 9f1e8cee7742cadbe6b97f2c80b787b4ee067bae Author: Dan Williams Date: Thu Dec 10 15:14:20 2015 -0800 libnvdimm, pfn: kill ND_PFN_ALIGN The alignment constraint isn't necessary now that devm_memremap_pages() allows for unaligned mappings. Signed-off-by: Dan Williams drivers/nvdimm/nd.h | 7 ------- drivers/nvdimm/pfn_devs.c | 11 +---------- drivers/nvdimm/pmem.c | 15 --------------- 3 files changed, 1 insertion(+), 32 deletions(-) commit 0d1bb2b3b838e6731b5900bb3513c10027cb028c Author: Geert Uytterhoeven Date: Fri Dec 4 15:28:16 2015 +0100 gpio: Restore indentation of parent device setup Fixes: 58383c78425e4ee1 ("gpio: change member .dev to .parent") Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Walleij drivers/gpio/gpio-pcf857x.c | 2 +- drivers/gpio/gpio-tz1090-pdc.c | 2 +- drivers/gpio/gpio-tz1090.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 3e640743fee6e6a82ead1f163737755b2a965712 Author: John Crispin Date: Fri Dec 4 11:05:44 2015 +0100 pinctrl: lantiq: Implement gpio_chip.to_irq Some drivers require a way to translate GPIO pins to their IRQ numbers. This patch adds the .to_irq() gpiolib callback to the pinctrl-xway driver, which returns an IRQ mapping for a given GPIO pin. Signed-off-by: John Crispin Signed-off-by: Martin Schiller [Switched ->dev to ->parent] Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-xway.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit b4818afeacbd81821f89a89951471cffcb6a65e0 Author: Phil Reid Date: Fri Dec 4 15:52:30 2015 +0800 gpio: pca953x: Add set_multiple to allow multiple bits to be set in one write. Tested with TCA6408 / TCA6416 devices. Signed-off-by: Phil Reid Signed-off-by: Linus Walleij drivers/gpio/gpio-pca953x.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) commit 652da8248ebad205fbd59fc7fed6e8d5baef4472 Author: Florian Fainelli Date: Tue Dec 1 17:41:30 2015 -0800 pinctrl: bcm: Default PINCTRL_BCM281XX to y for ARCH_BCM_MOBILE This driver is mandatory for proper operation on the platforms covered by the ARCH_BCM_MOBILE Kconfig symbol, make sure we do that driver on for these platforms. Signed-off-by: Florian Fainelli Reviewed-by: Ray Jui Signed-off-by: Linus Walleij drivers/pinctrl/bcm/Kconfig | 1 + 1 file changed, 1 insertion(+) commit bab7f5a4019b6ca410acdf8730b924b989049423 Author: Thierry Reding Date: Wed Dec 2 17:31:55 2015 +0100 pinctrl: at91: Use platform_register/unregister_drivers() These new helpers simplify implementing multi-driver modules and properly handle failure to register one driver by unregistering all previously registered drivers. Signed-off-by: Thierry Reding Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-at91.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 9b0ee474cfdbce235f63e179d018e28673163075 Author: Thierry Reding Date: Wed Dec 2 17:31:54 2015 +0100 pinctrl: adi2: Use platform_register/unregister_drivers() These new helpers simplify implementing multi-driver modules and properly handle failure to register one driver by unregistering all previously registered drivers. Signed-off-by: Thierry Reding Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-adi2.c | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) commit 01fb4d3c39d35b725441e8a9a26b3f3ad67793ed Author: Viresh Kumar Date: Wed Dec 9 08:01:47 2015 +0530 PM / OPP: Parse 'opp--' bindings OPP bindings (for few properties) allow a platform to choose a value/range among a set of available options. The options are present as opp--, where the platform needs to supply the string. The OPP properties which allow such an option are: opp-microvolt and opp-microamp. Add support to the OPP-core to parse these bindings, by introducing dev_pm_opp_{set|put}_prop_name() APIs. Signed-off-by: Viresh Kumar Tested-by: Lee Jones Signed-off-by: Rafael J. Wysocki drivers/base/power/opp/core.c | 165 ++++++++++++++++++++++++++++++++++++++---- drivers/base/power/opp/opp.h | 2 + include/linux/pm_opp.h | 9 +++ 3 files changed, 161 insertions(+), 15 deletions(-) commit 7de36b0aa51a5a59e28fb2da768fa3ab07de0674 Author: Viresh Kumar Date: Wed Dec 9 08:01:46 2015 +0530 PM / OPP: Parse 'opp-supported-hw' binding OPP bindings allow a platform to enable OPPs based on the version of the hardware they are used for. Add support to the OPP-core to parse these bindings, by introducing dev_pm_opp_{set|put}_supported_hw() APIs. Signed-off-by: Viresh Kumar Tested-by: Lee Jones Signed-off-by: Rafael J. Wysocki drivers/base/power/opp/core.c | 148 ++++++++++++++++++++++++++++++++++++++++++ drivers/base/power/opp/opp.h | 5 ++ include/linux/pm_opp.h | 13 ++++ 3 files changed, 166 insertions(+) commit 588047686fe9e4a4da85ca6dd92a220a8fb45ce5 Author: Linus Walleij Date: Thu Dec 10 23:04:45 2015 +0100 Revert "pinctrl: intel: fix bug of register offset calculation" This reverts commit c5cdcba3d54b9bd2443bd0afe9f4828f802a944f. drivers/pinctrl/intel/pinctrl-broxton.c | 1 - drivers/pinctrl/intel/pinctrl-intel.c | 32 +++++++++++++++------------- drivers/pinctrl/intel/pinctrl-intel.h | 3 --- drivers/pinctrl/intel/pinctrl-sunrisepoint.c | 1 - 4 files changed, 17 insertions(+), 20 deletions(-) commit 207f6582dd9adb8e2ed64b4c64d6d5c009e5bbf9 Author: Brian Norris Date: Wed Dec 9 18:33:17 2015 -0800 mtd: brcmnand: defer to devm_ioremap_resource() for error checking devm_ioremap_resource() does error checking on the 'res' argument, so drop the error check in bcm6368_nand.c. Signed-off-by: Brian Norris Tested-by: Simon Arlott drivers/mtd/nand/brcmnand/bcm6368_nand.c | 3 --- 1 file changed, 3 deletions(-) commit e7a7865cc0da306542db0b9205cb0a467f59e33d Author: Masami Hiramatsu Date: Wed Dec 9 11:11:18 2015 +0900 perf symbols: Fix dso__load_sym to put dso Fix dso__load_sym to put dso because dsos__add already got it. Refcnt debugger explain the problem: ---- ==== [0] ==== Unreclaimed dso: 0x19dd200 Refcount +1 => 1 at ./perf(dso__new+0x1ff) [0x4a62df] ./perf(dso__load_sym+0xe89) [0x503509] ./perf(dso__load_vmlinux+0xbf) [0x4aa77f] ./perf(dso__load_vmlinux_path+0x8c) [0x4aa8dc] ./perf() [0x50539a] ./perf(convert_perf_probe_events+0xd79) [0x50ad39] ./perf() [0x45600f] ./perf(cmd_probe+0x6c) [0x4566bc] ./perf() [0x47abc5] ./perf(main+0x610) [0x421f90] /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f74dd0efaf5] ./perf() [0x4220a9] Refcount +1 => 2 at ./perf(dso__get+0x34) [0x4a65f4] ./perf(map__new2+0x76) [0x4be216] ./perf(dso__load_sym+0xee1) [0x503561] ./perf(dso__load_vmlinux+0xbf) [0x4aa77f] ./perf(dso__load_vmlinux_path+0x8c) [0x4aa8dc] ./perf() [0x50539a] ./perf(convert_perf_probe_events+0xd79) [0x50ad39] ./perf() [0x45600f] ./perf(cmd_probe+0x6c) [0x4566bc] ./perf() [0x47abc5] ./perf(main+0x610) [0x421f90] /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f74dd0efaf5] ./perf() [0x4220a9] Refcount +1 => 3 at ./perf(dsos__add+0xf3) [0x4a6bc3] ./perf(dso__load_sym+0xfc1) [0x503641] ./perf(dso__load_vmlinux+0xbf) [0x4aa77f] ./perf(dso__load_vmlinux_path+0x8c) [0x4aa8dc] ./perf() [0x50539a] ./perf(convert_perf_probe_events+0xd79) [0x50ad39] ./perf() [0x45600f] ./perf(cmd_probe+0x6c) [0x4566bc] ./perf() [0x47abc5] ./perf(main+0x610) [0x421f90] /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f74dd0efaf5] ./perf() [0x4220a9] Refcount -1 => 2 at ./perf(dso__put+0x2f) [0x4a664f] ./perf(map_groups__exit+0xb9) [0x4bee29] ./perf(machine__delete+0xb0) [0x4b93d0] ./perf(exit_probe_symbol_maps+0x28) [0x506718] ./perf() [0x45628a] ./perf(cmd_probe+0x6c) [0x4566bc] ./perf() [0x47abc5] ./perf(main+0x610) [0x421f90] /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f74dd0efaf5] ./perf() [0x4220a9] Refcount -1 => 1 at ./perf(dso__put+0x2f) [0x4a664f] ./perf(machine__delete+0xfe) [0x4b941e] ./perf(exit_probe_symbol_maps+0x28) [0x506718] ./perf() [0x45628a] ./perf(cmd_probe+0x6c) [0x4566bc] ./perf() [0x47abc5] ./perf(main+0x610) [0x421f90] /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f74dd0efaf5] ./perf() [0x4220a9] ---- So, in the dso__load_sym, dso is gotten 3 times, by dso__new, map__new2, and dsos__add. The last 2 is actually released by map_groups and machine__delete correspondingly. However, the first reference by dso__new, is never released. Committer note: Changed the place where the reference count is dropped to: Fix it by dropping it right after creating curr_map, since we know that either that operation failed and we need to drop the dso refcount or that it succeed and we have it referenced via curr_map->dso. Then only drop the curr_map refcount after we call dsos__add() to make sure we hold a reference to it via curr_map->dso. Signed-off-by: Masami Hiramatsu Cc: Adrian Hunter Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20151209021118.10245.49869.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/symbol-elf.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 9d8b172f29ac0e5d1923d348e395e9643625ef7f Author: Masami Hiramatsu Date: Wed Dec 9 11:11:23 2015 +0900 perf tools: Make perf_session__register_idle_thread drop the refcount Note that since the thread was already inserted to the session list, it will be released when the session is released. Also, in perf_session__register_idle_thread() failure path, the thread should be put before returning. Refcnt debugger shows that the perf_session__register_idle_thread gets the returned thread, but the caller (__cmd_top) does not put the returned idle thread. ---- ==== [0] ==== Unreclaimed thread@0x24e6240 Refcount +1 => 0 at ./perf(thread__new+0xe5) [0x4c8a75] ./perf(machine__findnew_thread+0x9a) [0x4bbdba] ./perf(perf_session__register_idle_thread+0x28) [0x4c63c8] ./perf(cmd_top+0xd7d) [0x43cf6d] ./perf() [0x47ba35] ./perf(main+0x617) [0x4225b7] /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f06027c5af5] ./perf() [0x42272d] Refcount +1 => 1 at ./perf(thread__get+0x2c) [0x4c8bcc] ./perf(machine__findnew_thread+0xee) [0x4bbe0e] ./perf(perf_session__register_idle_thread+0x28) [0x4c63c8] ./perf(cmd_top+0xd7d) [0x43cf6d] ./perf() [0x47ba35] ./perf(main+0x617) [0x4225b7] /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f06027c5af5] ./perf() [0x42272d] Refcount +1 => 2 at ./perf(thread__get+0x2c) [0x4c8bcc] ./perf(machine__findnew_thread+0x112) [0x4bbe32] ./perf(perf_session__register_idle_thread+0x28) [0x4c63c8] ./perf(cmd_top+0xd7d) [0x43cf6d] ./perf() [0x47ba35] ./perf(main+0x617) [0x4225b7] /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f06027c5af5] ./perf() [0x42272d] ---- Signed-off-by: Masami Hiramatsu Tested-by: Arnaldo Carvalho de Melo Cc: Adrian Hunter Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20151209021122.10245.69707.stgit@localhost.localdomain [ Drop the refcount in perf_session__register_idle_thread() ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-top.c | 2 +- tools/perf/util/session.c | 11 +++++++---- tools/perf/util/session.h | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) commit 14e01889bf54675c71fbaeb8f64087b9961914a2 Author: Rodrigo Vivi Date: Thu Dec 10 11:12:27 2015 -0800 drm/i915: Fix random aux transactions failures. Mainly aux communications on sink_crc were failing a lot randomly on recent platforms. The first solution was to try to use intel_dp_dpcd_read_wake, but then it was suggested to move retries to drm level. Since drm level was already taking care of retries and didn't want to through random retries on that level the second solution was to put the retries at aux_transfer layer what was nacked. So I realized we had so many retries in different places and started to organize that a bit. During this organization I noticed that we weren't handing at all the case were the message size was zeroed. And this was exactly the case that was affecting sink_crc. Also we weren't respect BSPec who says this size message = 0 or > 20 are forbidden. It is a fact that we still have no clue why we are getting this forbidden value there. But anyway we need to handle that for now so we return -EBUSY and drm level takes care of the retries that are already in place. v2: Print debug messsage when this case is reached as suggested by Jani. v3: This patch is crucial to make PSR test cases reliably working on SKL. So split this patch from the aux re-org series and add a FIXME as a promisse to continue that effort besides reminding to remove the sleep when that is merged. v4: Use a bigger usleep range so kernel doesn't need to be interrupted on a exact time, as suggested by Paulo. But anyway we should discuss the better time ranges on the EBUSY handle re-org at drm level since this one here is temporary. v5: s/1000,1500/1000, 1500/ (by Paulo). Cc: Paulo Zanoni Cc: Jani Nikula Cc: Daniel Vetter Signed-off-by: Rodrigo Vivi Tested-by: Daniel Stone # SKL Signed-off-by: Rodrigo Vivi Reviewed-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/1449774747-2772-1-git-send-email-rodrigo.vivi@intel.com drivers/gpu/drm/i915/intel_dp.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit 8488335c039ff4917754332763e21c01a81435b4 Author: Arnaldo Carvalho de Melo Date: Tue Dec 8 16:51:24 2015 -0300 Revert "perf tools: Improve setting of gcc debug option" This reverts commit e8b7ea4356fdd3c4de5478f3418eb84f8dce2b61. Martin created a gcc PR: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68836 Reported-by: Jiri Olsa Acked-by: Ingo Molnar Cc: David Ahern Cc: Martin Liska Cc: Namhyung Kim , Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20151202164827.GA21124@krava.brq.redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/config/Makefile | 2 -- tools/perf/config/utilities.mak | 19 ------------------- 2 files changed, 21 deletions(-) commit 61fa0e94ca6ab62db5e095a5528150bf9962196d Author: Namhyung Kim Date: Thu Dec 10 16:53:20 2015 +0900 perf top: Delete half-processed hist entries when exit After sample processing is done, hist entries are in both of hists->entries and hists->entries_in (or hists->entries_collapsed). So I guess perf report does not have leaks on hists. But for perf top, it's possible to have half-processed entries which are only in hists->entries_in. Eventually they will go to the hists->entries and get freed but they cannot be deleted by current hists__delete_entries(). This patch adds hists__delete_all_entries function to delete those entries. Signed-off-by: Namhyung Kim Tested-and-Acked-by: Masami Hiramatsu Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1449734015-9148-2-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/hist.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) commit 3f86eb6b0771d785099c91354838d3f8d8126630 Author: Namhyung Kim Date: Thu Dec 10 12:00:59 2015 +0900 perf tools: Get rid of exit_browser() from usage_with_options() Since all of its users call before setup_browser(), there's no need to call exit_browser() inside of the function. Signed-off-by: Namhyung Kim Reviewed-by: Josh Poimboeuf Tested-by: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1449716459-23004-8-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/parse-options.c | 3 --- 1 file changed, 3 deletions(-) commit 7ecb48fde39e1d61ab8aff95581dcdfb572bcc28 Author: Namhyung Kim Date: Thu Dec 10 12:00:58 2015 +0900 perf thread_map: Free strlist on constructor error path Signed-off-by: Namhyung Kim Reviewed-by: Josh Poimboeuf Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1449716459-23004-7-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/thread_map.c | 1 + 1 file changed, 1 insertion(+) commit f8a5c0b24b8b1e77a0812b0c8251db0afc0524b7 Author: Arnaldo Carvalho de Melo Date: Thu Dec 10 14:48:45 2015 -0300 perf top: Do show usage message when failing to create cpu/thread maps This is necessary to get rid of the browser dependency from usage_with_options() and its friends. Because we validate the targets which are used to create the cpu/thread maps and inform the user about any override performed via the chosen UI, we don't need to call the usage routine for that. Cc: David Ahern Cc: Jiri Olsa Cc: Josh Poimboeuf Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/n/tip-slu7lj7buzpwgop1vo9la8ma@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-top.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 7acccdbc4d0bf78a613008e92a3e6c32e37ef26f Author: Masanari Iida Date: Thu Dec 10 00:59:29 2015 +0900 Doc: treewide: Fix grammar "a" to "an" This patch fix some grammar mistake. Signed-off-by: Masanari Iida Signed-off-by: Jonathan Corbet Documentation/filesystems/sharedsubtree.txt | 2 +- Documentation/vm/slub.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit aa13a960fc1bd28cfd8b3aef43e523ade1817a2c Author: Soren Brinkmann Date: Mon Dec 7 23:26:58 2015 -0800 Documentation: cpu-hotplug: Fix sysfs mount instructions The instructions for mounting sysfs are inconsistent in instructing to create the directory '/sysfs' but then mounting sysfs to /sys. Also, indentation is slightly off. Signed-off-by: Soren Brinkmann Signed-off-by: Jonathan Corbet Documentation/cpu-hotplug.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9c9d18e7a680f3eceeb891e24709eda817ef738e Author: Dan Carpenter Date: Wed Dec 9 13:48:36 2015 +0300 hisi_sas: fix error codes in hisi_sas_task_prep() There were a couple cases where the error codes weren't set and also I changed the success return to "return 0;" which is the same as "return rc;" but more explicit. Fixes: 42e7a69368a5 ('hisi_sas: Add ssp command functio') Signed-off-by: Dan Carpenter Tested-by: John Garry Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas_main.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit aecd89e85534d31b161bbe16e31d98f67947e1eb Author: Stefan Tatschner Date: Tue Nov 24 15:06:29 2015 +0100 can-doc: Add hint about getting timestamps This patch adds a hint about how to get timestamps of received CAN frames with ioctl(2). This hint has been applied to the former SocketCAN Documentation, but it got lost during mainlining the first bits and pieces to linux kernel. Signed-off-by: Stefan Tatschner Signed-off-by: Jonathan Corbet Documentation/networking/can.txt | 9 +++++++++ 1 file changed, 9 insertions(+) commit 20d7090ffd4a30c66f3e2eb6741bb1e5baa56e8b Author: Thierry Reding Date: Wed Dec 2 17:19:55 2015 +0100 gpio: mpc5200: Use platform_register/unregister_drivers() These new helpers simplify implementing multi-driver modules and properly handle failure to register one driver by unregistering all previously registered drivers. Signed-off-by: Thierry Reding Signed-off-by: Linus Walleij drivers/gpio/gpio-mpc5200.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) commit bcebb4cc20c8932f614d273a065190fe3614ca42 Author: Libor Pechacek Date: Fri Dec 4 10:10:03 2015 +0100 Fix CFQ I/O scheduler parameter name in documentation As seen in block/cfq-iosched.c, the parameter name is low_latency. Signed-off-by: Libor Pechacek Signed-off-by: Jonathan Corbet Documentation/block/cfq-iosched.txt | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit 12b61c9d7e0750f2569392999fcfa85778185b06 Author: William Breathitt Gray Date: Wed Dec 2 20:23:04 2015 -0500 gpio: 104-idio-16: Clear pending interrupt in IRQ handler The ACCES 104-IDIO-16 uses a single interrupt to indicate a possible change-of-state in any of the digital input lines. As such, only a single write to the device's "Clear Interrupt" register is necessary to acknowledge the IRQ for all respective GPIO. This patch moves the "Clear Interrupt" register write operation from the irq_ack callback to the IRQ handler function, wherefore each interrupt may be cleared respectively by executing a single outb call at the end of the idio_16_irq_handler function, rather than multiple redundant outb calls as a result of the generic_handle_irq call for each masked GPIO. Signed-off-by: William Breathitt Gray Signed-off-by: Linus Walleij drivers/gpio/gpio-104-idio-16.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) commit 51af896be348248c8962ba068c8318116a9501cd Author: Tom Hebb Date: Mon Nov 30 20:46:13 2015 -0500 Documentation: arm: remove dead links from Marvell Berlin docs The BG2 and BG2Q are no longer listed on Marvell's site, so the links in the README go nowhere. The BG2Q's product brief has also been removed. Signed-off-by: Thomas Hebb Signed-off-by: Jonathan Corbet Documentation/arm/Marvell/README | 3 --- 1 file changed, 3 deletions(-) commit 1d12554f0abbc7d17dce8d1b7b25f4e27555e6d7 Author: Doug Smythies Date: Sun Nov 22 15:42:48 2015 -0800 Documentation: HOWTO: update code cross reference link The source code cross reference link does not work. Update the link to a site that works. Signed-off-by: Doug Smythies Signed-off-by: Jonathan Corbet Documentation/HOWTO | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 87a6b9bd6306e0efd5eedbd68042eee36184dbd7 Author: Andrei Emeltchenko Date: Thu Dec 10 17:03:43 2015 +0200 Bluetooth: h5: Do not initialize Configuration field Initializing Configuration field in H5 Config message to 0x01 gives wrong impression that the value is used and needed. Later on the whole field is rewritten with h5_cfg_field(). Signed-off-by: Andrei Emeltchenko Signed-off-by: Marcel Holtmann drivers/bluetooth/hci_h5.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c38383530fb5e160b739aff4bf08c1cc2dfcc659 Author: Alexander Aring Date: Wed Dec 9 23:23:56 2015 +0100 mac802154: tx: fix synced xmit deadlock This patch reverts 6001d52 ("mac802154: tx: don't allow if down while sync tx"). This has side effects with stop callback which flush the transmit workqueue. The stop callback will wait until the workqueue is flushed and holding the rtnl lock. That means it can happen that the stop callback waits forever because it try to lock the rtnl mutex which is already hold by stop callback. Cc: Michael Hennerich Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann net/mac802154/driver-ops.h | 3 --- net/mac802154/tx.c | 9 --------- 2 files changed, 12 deletions(-) commit 9a2fcad8dce219df6cac3db91f373080f017856a Author: Rasmus Villemoes Date: Tue Dec 8 15:25:16 2015 +0100 osd: fix signed char versus %02x issue If char is signed and one of these bytes happen to have a value outside the ascii range, the corresponding output will consist of "ffffff" followed by the two hex chars that were actually intended. One way to fix it would be to change the casts to (u8*) aka (unsigned char*), but it is much simpler (and generates smaller code) to use the %ph extension which was created for such short hexdumps. Signed-off-by: Rasmus Villemoes Acked-by: Boaz Harrosh Signed-off-by: Martin K. Petersen drivers/scsi/osd/osd_initiator.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit f8aea701b77c26732f151aab4f0a70e62eb53d86 Author: Long Li Date: Fri Dec 4 00:07:24 2015 -0800 storvsc: add logging for error/warning messages Introduce a logging level for storvsc to log certain error/warning messages. Those messages are helpful in some environments, e.g. Microsoft Azure, for customer support and troubleshooting purposes. Signed-off-by: Long Li Acked-by: K. Y. Srinivasan Signed-off-by: Martin K. Petersen drivers/scsi/storvsc_drv.c | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) commit c965853ab06b3e8a9d024d86730b373c333fc6f3 Author: Josh Boyer Date: Thu Dec 3 08:27:59 2015 -0500 VMW_PVSCSI: Fix the issue of DMA-API related warnings. The driver is missing calls to pci_dma_mapping_error() after performing the DMA mapping, which caused DMA-API warning to show up in dmesg's output. Though that happens only when DMA_API_DEBUG option is enabled. This change fixes the issue and makes pvscsi_map_buffers() function more robust. Signed-off-by: Arvind Kumar Cc: Josh Boyer Reviewed-by: Thomas Hellstrom Signed-off-by: Josh Boyer Reviewed-by: Johannes Thumshirn Signed-off-by: Martin K. Petersen drivers/scsi/vmw_pvscsi.c | 45 +++++++++++++++++++++++++++++++++++++++------ drivers/scsi/vmw_pvscsi.h | 2 +- 2 files changed, 40 insertions(+), 7 deletions(-) commit 21891a452a42afc2313f1e3a69040e46c1d068c1 Author: Geliang Tang Date: Thu Dec 3 15:18:49 2015 -0600 cxlflash: drop unlikely before IS_ERR_OR_NULL IS_ERR_OR_NULL already contain an unlikely compiler flag. Drop it. Signed-off-by: Geliang Tang Acked-by: Manoj Kumar Acked-by: Matthew R. Ochs Signed-off-by: Martin K. Petersen drivers/scsi/cxlflash/superpipe.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e37390bee6fe7dfbe507a9d50cdc11344b53fa08 Author: Dan Carpenter Date: Wed Dec 2 17:26:28 2015 -0600 cxlflash: a couple off by one bugs The "> MAX_CONTEXT" should be ">= MAX_CONTEXT". Otherwise we go one step beyond the end of the cfg->ctx_tbl[] array. Signed-off-by: Dan Carpenter Reviewed-by: Manoj Kumar Reviewed-by: Johannes Thumshirn Acked-by: Matthew R. Ochs Signed-off-by: Martin K. Petersen drivers/scsi/cxlflash/superpipe.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 01821412eeb10ca996da0824d2d56d9a13b5c013 Author: Linus Walleij Date: Thu Dec 10 18:50:51 2015 +0100 pinctrl: nsp-gpio: fix up parent attribute The .dev field has been renamed .parent in the GPIO tree. Fix it up. Cc: Yendapally Reddy Dhananjaya Reddy Signed-off-by: Linus Walleij drivers/pinctrl/bcm/pinctrl-nsp-gpio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit adfd7cb60a741653c8d76efaaeea8b9d7fe85120 Merge: 0374452 8bfcbbb Author: Linus Walleij Date: Thu Dec 10 18:47:54 2015 +0100 Merge branch 'bcm-nsp' of ../linux-pinctrl into devel commit fcb59bdf64e7d6d2bca41624e893b71d319b479b Merge: e43d2b7 8bfcbbb Author: Linus Walleij Date: Thu Dec 10 18:47:28 2015 +0100 Merge branch 'bcm-nsp' into devel commit 8bfcbbbcabe02310885a26ebd02550a928c306ca Author: Yendapally Reddy Dhananjaya Reddy Date: Fri Dec 4 12:11:42 2015 -0500 pinctrl: nsp: add gpio-a driver support for Broadcom NSP SoC This adds the initial support of the Broadcom NSP gpio-a driver. Signed-off-by: Yendapally Reddy Dhananjaya Reddy Signed-off-by: Linus Walleij drivers/pinctrl/bcm/Kconfig | 17 + drivers/pinctrl/bcm/Makefile | 1 + drivers/pinctrl/bcm/pinctrl-nsp-gpio.c | 749 +++++++++++++++++++++++++++++++++ 3 files changed, 767 insertions(+) commit bb37baeaafa699055eb1bf2242e3a4868bfdd18b Author: Yendapally Reddy Dhananjaya Reddy Date: Fri Dec 4 12:10:57 2015 -0500 pinctrl: Broadcom NSP GPIO-a device tree bindings Device tree binding documentation for Broadcom NSP GPIO-a Signed-off-by: Yendapally Reddy Dhananjaya Reddy Signed-off-by: Linus Walleij .../devicetree/bindings/pinctrl/brcm,nsp-gpio.txt | 80 ++++++++++++++++++++++ 1 file changed, 80 insertions(+) commit 0374452968bbd05098b176f8074d8c577eb97c57 Author: Andrew F. Davis Date: Sun Dec 6 14:52:45 2015 -0600 gpio: drop surplus PCI and USB dependencies The PCI/USB expander menus already depend on PCI/USB, drop subdependecies on individual drivers. Signed-off-by: Andrew F. Davis [Rebased to the GPIO tree] Signed-off-by: Linus Walleij drivers/gpio/Kconfig | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit 4a6ccf30263f4e265c0f171561bf4c40bed5f273 Author: Mark Brown Date: Thu Dec 10 16:54:32 2015 +0000 arm64: cmpxchg: Don't incldue linux/mmdebug.h The arm64 asm/cmpxchg.h includes linux/mmdebug.h but doesn't so far as I can tell actually use anything from it. Removing the inclusion reduces spurious header dependency rebuilds and also avoids issues with recursive inclusions of headers causing build breaks due to attempts to use things before they are defined if linux/mmdebug.h starts pulling in more low level headers. Such errors have happened in -next recently, for example: In file included from include/linux/completion.h:11:0, from include/linux/rcupdate.h:43, from include/linux/tracepoint.h:19, from include/linux/mmdebug.h:6, from ./arch/arm64/include/asm/cmpxchg.h:22, from ./arch/arm64/include/asm/atomic.h:41, from include/linux/atomic.h:4, from include/linux/spinlock.h:406, from include/linux/seqlock.h:35, from include/linux/time.h:5, from include/uapi/linux/timex.h:56, from include/linux/timex.h:56, from include/linux/sched.h:19, from arch/arm64/kernel/asm-offsets.c:21: include/linux/wait.h: In function 'wait_on_atomic_t': include/linux/wait.h:1218:2: error: implicit declaration of function 'atomic_read' [-Werror=implicit-function-declaration] if (atomic_read(val) == 0) Signed-off-by: Mark Brown Signed-off-by: Will Deacon arch/arm64/include/asm/cmpxchg.h | 1 - 1 file changed, 1 deletion(-) commit 9aa4ec1571da62366cfddc20f3b923609604fe63 Author: Mark Rutland Date: Wed Dec 9 12:44:38 2015 +0000 arm64: mm: fold alternatives into .init Currently we treat the alternatives separately from other data that's only used during initialisation, using separate .altinstructions and .altinstr_replacement linker sections. These are freed for general allocation separately from .init*. This is problematic as: * We do not remove execute permissions, as we do for .init, leaving the memory executable. * We pad between them, making the kernel Image bianry up to PAGE_SIZE bytes larger than necessary. This patch moves the two sections into the contiguous region used for .init*. This saves some memory, ensures that we remove execute permissions, and allows us to remove some code made redundant by this reorganisation. Signed-off-by: Mark Rutland Cc: Andre Przywara Cc: Catalin Marinas Cc: Jeremy Linton Cc: Laura Abbott Cc: Will Deacon Signed-off-by: Will Deacon arch/arm64/include/asm/alternative.h | 1 - arch/arm64/kernel/alternative.c | 6 ------ arch/arm64/kernel/vmlinux.lds.S | 5 ++--- arch/arm64/mm/init.c | 1 - 4 files changed, 2 insertions(+), 11 deletions(-) commit 5b28cd9d084eca8ddc46270d2720305bfd40e348 Author: Mark Rutland Date: Wed Dec 9 12:44:37 2015 +0000 arm64: Remove redundant padding from linker script Currently we place an ALIGN_DEBUG_RO between text and data for the .text and .init sections, and depending on configuration each of these may result in up to SECTION_SIZE bytes worth of padding (for DEBUG_RODATA_ALIGN). We make no distinction between the text and data in each of these sections at any point when creating the initial page tables in head.S. We also make no distinction when modifying the tables; __map_memblock, fixup_executable, mark_rodata_ro, and fixup_init only work at section granularity. Thus this padding is unnecessary. For the spit between init text and data we impose a minimum alignment of 16 bytes, but this is also unnecessary. The init data is output immediately after the padding before any symbols are defined, so this is not required to keep a symbol for linker a section array correctly associated with the data. Any objects within the section will be given at least their usual alignment regardless. This patch removes the redundant padding. Signed-off-by: Mark Rutland Cc: Ard Biesheuvel Cc: Catalin Marinas Cc: Jeremy Linton Cc: Laura Abbott Cc: Will Deacon Signed-off-by: Will Deacon arch/arm64/kernel/vmlinux.lds.S | 2 -- 1 file changed, 2 deletions(-) commit e2c30ee320eb96304896c7ab84499e5bc5e5fb6e Author: Mark Rutland Date: Wed Dec 9 12:44:36 2015 +0000 arm64: mm: remove pointless PAGE_MASKing As pgd_offset{,_k} shift the input address by PGDIR_SHIFT, the sub-page bits will always be shifted out. There is no need to apply PAGE_MASK before this. Signed-off-by: Mark Rutland Cc: Ard Biesheuvel Cc: Catalin Marinas Cc: Jeremy Linton Cc: Laura Abbott Cc: Will Deacon Signed-off-by: Will Deacon arch/arm64/mm/mmu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b3f38fc2422ace049110d1588a67b35bd15b81ce Author: Namhyung Kim Date: Thu Dec 10 12:00:56 2015 +0900 perf report: Check argument before calling setup_browser() This is necessary to get rid of the browser dependency from usage_with_options() and its friends. Because there's no code changing the argc and argv, it'd be ok to check it early. Signed-off-by: Namhyung Kim Reviewed-by: Josh Poimboeuf Tested-by: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1449716459-23004-5-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-report.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) commit 1b0344e64d7b4e512a8e5d2bc88b022fbb7a9ee6 Author: Namhyung Kim Date: Thu Dec 10 12:00:55 2015 +0900 perf kvm: Remove invocation of setup/exit_browser() Calling setup_browser(false) with use_browser = 0 is meaningless. Just get rid of it. This is necessary to remove the browser dependency from usage_with_options() and friends. Signed-off-by: Namhyung Kim Reviewed-by: Josh Poimboeuf Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1449716459-23004-4-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-kvm.c | 3 --- 1 file changed, 3 deletions(-) commit 3df668e74a5bc60d74c2ce0b3498af2d77b4b556 Author: Namhyung Kim Date: Thu Dec 10 12:00:54 2015 +0900 perf annotate: Delay UI browser setup after initialization is done Move setup_browser after all necessary initialization is done. This is to remove the browser dependency from usage_with_options and friends. Signed-off-by: Namhyung Kim Reviewed-by: Josh Poimboeuf Tested-by: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1449716459-23004-3-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-annotate.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 50e19ef978158a3d1f790568eccd8e4a802190c2 Author: Namhyung Kim Date: Thu Dec 10 12:00:53 2015 +0900 perf annotate: Check argument before calling setup_browser() This is necessary to get rid of the browser dependency from usage_with_options() and its friends. Because there's no code changing the argc and argv, it'd be ok to check it early. Signed-off-by: Namhyung Kim Reviewed-by: Josh Poimboeuf Tested-by: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1449716459-23004-2-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-annotate.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) commit e43d2b75297e9a5d3fc154f28c8be95b9694b29b Author: Ludovic Desroches Date: Tue Dec 1 15:19:02 2015 +0100 pinctrl: at91-pio4: fix memleak after using dt map configs is allocated by pinconf_generic_parse_dt_config(), pinctrl_utils_add_map_configs() duplicates configs so it can and has to be freed to prevent memory leaks. Signed-off-by: Ludovic Desroches Reported-by: Yingjoe Chen Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-at91-pio4.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit 6f353f61e29a8fc919b5afa1277a98277782f5b1 Author: Chen-Yu Tsai Date: Thu Dec 10 21:36:31 2015 +0800 ARM: dts: sun9i: cubieboard4: Enable Reduced Serial Bus controller The Reduced Serial Bus (RSB) controller is used to talk to the 3 companion ICs (2 PMICs, 1 RTC/codec IC) on the board. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun9i-a80-cubieboard4.dts | 4 ++++ 1 file changed, 4 insertions(+) commit 62b4b20cd2bca593c89896711cac7c913be67e80 Author: Chen-Yu Tsai Date: Thu Dec 10 21:36:30 2015 +0800 ARM: dts: sun9i: cubieboard4: Enable consumer IR receiver The Cubieboard4 has a consumer IR receiver. Enable it in the DT. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun9i-a80-cubieboard4.dts | 4 ++++ 1 file changed, 4 insertions(+) commit c807d6e2046347d679e992fe4fe4b1133638a464 Author: Chen-Yu Tsai Date: Thu Dec 10 21:36:29 2015 +0800 ARM: dts: sun9i: cubieboard4: Enable LEDs The Cubieboard4 has 2 controllable LEDs, 1 red and 1 green. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun9i-a80-cubieboard4.dts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit 6da06083f491fb5c33e23e71d01ba097dfd99f59 Merge: c72c7a0 d537543 Author: Arnd Bergmann Date: Thu Dec 10 17:46:46 2015 +0100 Merge tag 'renesas-dt-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/dt Merge "Renesas ARM Based SoC DT Updates for v4.5" from Simon Horman: * henninger: Remove as it is now replaced by silk * koelsch: Move SPI partitions to subnode * porter: Add CAN0 and HS-USB support * r8a7793/gose: Add QSPI, PFC support * r8a7793: Add GPIO, DMAC, theral, IPMMU support * r8a7794/alt: Add DU support * r8a7794: Disable all IPMMU nodes by default * r8a779[0134]: Use Use SoC specific binding for rcar-dmac * r8a779[01], r8a73a4, r8a7740, sh73a0: replace gpio-key, wakeup with wakeup-source property * r8a779[14]: Correct "gpio-ranges" properties * r8a779[14]: Remove bogus imp_clk node * silk: Add SDHI1 support * tag 'renesas-dt-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: (29 commits) ARM: shmobile: alt: add VIN0, ADV7180 DT support ARM: shmobile: alt: add I2C1 DT support ARM: shmobile: alt: Add pfc pins to DT ARM: shmobile: r8a7794: Use SoC specific binding for rcar-dmac nodes ARM: shmobile: r8a7793: Use SoC specific binding for rcar-dmac nodes ARM: shmobile: r8a7791: Use SoC specific binding for rcar-dmac nodes ARM: shmobile: r8a7790: Use SoC specific binding for rcar-dmac nodes ARM: shmobile: r8a7793: Add GPIO nodes to device tree ARM: shmobile: r8a7794: alt: Enable VGA port ARM: shmobile: r8a7794: Add DU node to device tree ARM: shmobile: r8a7794: Add DU0 clock ARM: shmobile: gose: Add QSPI device to DT ARM: shmobile: r8a7793: Add QSPI device to DT ARM: shmobile: r8a7793: Add DMAC devices to DT ARM: shmobile: koelsch: Move SPI FLASH partitions to subnode ARM: shmobile: gose: Configure PFC in DT ARM: shmobile: r8a7793: Add PFC to DT ARM: shmobile: r8a7793: Add thermal device to DT ARM: shmobile: henninger: remove board DT ARM: shmobile: porter: add CAN0 DT support ... commit c72c7a00a8d1a0436ab743274ddb9f1783d491ae Merge: 31ade3b aa29efb Author: Arnd Bergmann Date: Thu Dec 10 17:29:26 2015 +0100 Merge branch 'lpc32xx-dts' of https://github.com/vzapolskiy/linux into next/dt Merge LPC32xx DTS changes for v4.5 from Vladimir Zapolskiy: Main changes in the series: - Added description of the second PWM controller device - Added External Memory Controller device tree node (Primecell PL175) - Added device tree nodes for standard timer controllers - USB controllers are grouped - Various minor clean-ups needed for further development of LPC32xx * 'lpc32xx-dts' of https://github.com/vzapolskiy/linux: arm: dts: lpc32xx: move USB controller subdevices into own device node arm: dts: lpc32xx: add device nodes for standard timers arm: dts: lpc32xx: add external memory controller device node arm: dts: ea3250/phy3250: specify phys memory offset for lpc32xx boards arm: dts: lpc32xx: add device node for the second pwm controller arm: dts: lpc32xx: add reg property to cpu device node arm: dts: lpc32xx: add labels to all defined peripheral nodes arm: dts: lpc32xx: change include syntax to be C preprocessor friendly commit 1cfadea8f395e3fb6a15ea548e3e86c8b6d64f98 Author: Paul Burton Date: Mon Nov 30 16:21:38 2015 +0000 gpio: pch: allow use from device tree Allow GPIOs from the gpio-pch driver to be referenced from device tree by simply setting the struct gpio_chip of_node pointer to that of the struct pci_dev. Signed-off-by: Paul Burton Signed-off-by: Linus Walleij drivers/gpio/gpio-pch.c | 1 + 1 file changed, 1 insertion(+) commit 7eccfebf65f0ba2d41dbd053e29a9b6287f406da Merge: 31ade3b d1f15aa Author: Arnd Bergmann Date: Thu Dec 10 17:23:48 2015 +0100 Merge tag 'reset-for-4.5' of git://git.pengutronix.de/git/pza/linux into next/drivers Merge "Reset controller changes for v4.5" from Philipp Zabel: - oftree support for getting reset devices by index - fixed return value consistency of of_reset_control_get - added support for STi co-processor resets - added STi status callback - various fixes * tag 'reset-for-4.5' of git://git.pengutronix.de/git/pza/linux: reset: check return value of reset_controller_register() reset: remove redundant $(CONFIG_RESET_CONTROLLER) from Makefile reset: use ENOTSUPP instead of ENOSYS reset: sunxi: mark the of_device_id array as __initconst reset: sti: add a missing blank line after declaration reset: sti: Provide ops .status() call-back reset: sti: Add support for resetting co-processors ARM: STi: Add DT defines for co-processor reset lines reset: Fix of_reset_control_get() for consistent return values reset: add of_reset_control_get_by_index() commit dfaf19de59cab02177d94ee3b0b8c0e243016f3f Author: Paul Burton Date: Mon Nov 30 16:21:37 2015 +0000 gpio: pch: allow build on MIPS platforms Allow the pch_gpio driver to be built for MIPS platforms, in preparation for use on the MIPS Boston board. Signed-off-by: Paul Burton Signed-off-by: Linus Walleij drivers/gpio/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 902e7e60086b925e27f68261feda4898c5be6966 Author: Geert Uytterhoeven Date: Mon Nov 30 15:35:26 2015 +0100 gpio: 74x164: Use a single SPI transfer instead of multiple transfers Currently the 74x164 driver assembles an SPI message from an array of one-byte SPI transfers, one for each daisy-chained shift register, as the first byte sent will end up in the last register. This array is allocated and deallocated on each GPIO write access. By storing the data in the internal buffer in reverse order, we can use a single SPI transfer with the internal buffer directly, simplifying the code a lot, and avoiding memory (de)allocations. This also avoids transient values on the GPIO outputs when using an SPI master that cannot keep the hardware chip select asserted in between multiple transfers (and would need cs-gpios for proper operation). Signed-off-by: Geert Uytterhoeven Cc: Mark Brown [Rebased changing .dev to .parent] Signed-off-by: Linus Walleij drivers/gpio/gpio-74x164.c | 47 +++++++++++++++------------------------------- 1 file changed, 15 insertions(+), 32 deletions(-) commit 410f4574f43c8bd61cd413a15e26e8f03c608085 Author: Geert Uytterhoeven Date: Mon Nov 30 15:35:25 2015 +0100 gpio: 74x164: Allocate buffer with gen_74x164_chip By moving the internal buffer to the end of struct gen_74x164_chip and converting it from a pointer to a zero-sized array, it can be allocated together with gen_74x164_chip, reducing the number of managed allocations. Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Walleij drivers/gpio/gpio-74x164.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) commit 0cc37c2df4fa0aa702f9662edce4b7ce12c86b7a Author: Sami Tolvanen Date: Thu Dec 3 14:26:31 2015 +0000 dm verity: add ignore_zero_blocks feature If ignore_zero_blocks is enabled dm-verity will return zeroes for blocks matching a zero hash without validating the content. Signed-off-by: Sami Tolvanen Signed-off-by: Mike Snitzer Documentation/device-mapper/verity.txt | 5 ++ drivers/md/dm-verity-fec.c | 8 +++- drivers/md/dm-verity-target.c | 87 ++++++++++++++++++++++++++++++---- drivers/md/dm-verity.h | 3 +- 4 files changed, 93 insertions(+), 10 deletions(-) commit a739ff3f543afbb4a041c16cd0182c8e8d366e70 Author: Sami Tolvanen Date: Thu Dec 3 14:26:30 2015 +0000 dm verity: add support for forward error correction Add support for correcting corrupted blocks using Reed-Solomon. This code uses RS(255, N) interleaved across data and hash blocks. Each error-correcting block covers N bytes evenly distributed across the combined total data, so that each byte is a maximum distance away from the others. This makes it possible to recover from several consecutive corrupted blocks with relatively small space overhead. In addition, using verity hashes to locate erasures nearly doubles the effectiveness of error correction. Being able to detect corrupted blocks also improves performance, because only corrupted blocks need to corrected. For a 2 GiB partition, RS(255, 253) (two parity bytes for each 253-byte block) can correct up to 16 MiB of consecutive corrupted blocks if erasures can be located, and 8 MiB if they cannot, with 16 MiB space overhead. Signed-off-by: Sami Tolvanen Signed-off-by: Mike Snitzer Documentation/device-mapper/verity.txt | 35 +- drivers/md/Kconfig | 12 + drivers/md/Makefile | 4 + drivers/md/dm-verity-fec.c | 812 +++++++++++++++++++++++++++++++++ drivers/md/dm-verity-fec.h | 152 ++++++ drivers/md/dm-verity-target.c | 55 ++- drivers/md/dm-verity.h | 10 + 7 files changed, 1071 insertions(+), 9 deletions(-) commit bb4d73ac5e4f0a6c4853f35824f6cb2d396a2f9c Author: Sami Tolvanen Date: Thu Dec 3 16:30:36 2015 -0500 dm verity: factor out verity_for_bv_block() verity_for_bv_block() will be re-used by optional dm-verity object. Signed-off-by: Sami Tolvanen Signed-off-by: Mike Snitzer drivers/md/dm-verity-target.c | 72 +++++++++++++++++++++++++++++-------------- drivers/md/dm-verity.h | 6 ++++ 2 files changed, 55 insertions(+), 23 deletions(-) commit ffa393807cd69656d5b6bc9d9622e205071cbab8 Author: Sami Tolvanen Date: Thu Dec 3 16:01:51 2015 -0500 dm verity: factor out structures and functions useful to separate object Prepare for an optional verity object to make use of existing dm-verity structures and functions. Signed-off-by: Sami Tolvanen Signed-off-by: Mike Snitzer drivers/md/dm-verity-target.c | 116 ++++++------------------------------------ drivers/md/dm-verity.h | 112 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 128 insertions(+), 100 deletions(-) commit 03045cbafa2d663ad8d0a583ac219d202d824344 Author: Sami Tolvanen Date: Thu Dec 3 15:36:00 2015 -0500 dm verity: move dm-verity.c to dm-verity-target.c Prepare for extending dm-verity with an optional object. Follows the naming convention used by other DM targets (e.g. dm-cache and dm-era). Signed-off-by: Sami Tolvanen Signed-off-by: Mike Snitzer drivers/md/Makefile | 1 + drivers/md/dm-verity-target.c | 1039 +++++++++++++++++++++++++++++++++++++++++ drivers/md/dm-verity.c | 1039 ----------------------------------------- 3 files changed, 1040 insertions(+), 1039 deletions(-) commit 753c1fd02807cb43a1c5d01d75d454054d46bdad Author: Sami Tolvanen Date: Thu Nov 5 02:02:32 2015 +0000 dm verity: separate function for parsing opt args Move optional argument parsing into a separate function to make it easier to add more of them without making verity_ctr even longer. Signed-off-by: Sami Tolvanen Reviewed-by: Kees Cook Signed-off-by: Mike Snitzer drivers/md/dm-verity.c | 71 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 43 insertions(+), 28 deletions(-) commit 6dbeda3469ced777bc3138ed5918f7ae79670b7b Author: Sami Tolvanen Date: Thu Nov 5 02:02:31 2015 +0000 dm verity: clean up duplicate hashing code Handle dm-verity salting in one place to simplify the code. Signed-off-by: Sami Tolvanen Reviewed-by: Kees Cook Signed-off-by: Mike Snitzer drivers/md/dm-verity.c | 262 +++++++++++++++++++++++++++---------------------- 1 file changed, 147 insertions(+), 115 deletions(-) commit ba503835ad92d8b259b7ebbbf812a9fc57567336 Author: Mike Snitzer Date: Mon Nov 23 16:38:25 2015 -0500 dm btree: factor out need_insert() helper Eliminates code duplication within insert(). Signed-off-by: Mike Snitzer drivers/md/persistent-data/dm-btree.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) commit 86a49e2dac3064557d45850a9c63f7cc1e6fe041 Author: Anup Limbu Date: Wed Nov 25 15:46:05 2015 +0530 dm bufio: use BUG_ON instead of conditional call to BUG Signed-off-by: Anup Limbu Signed-off-by: Mike Snitzer drivers/md/dm-bufio.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 86bad0c7071c24efee0a395d8b622764bdd24320 Author: Mikulas Patocka Date: Mon Nov 23 19:20:06 2015 -0500 dm bufio: store stacktrace in buffers to help find buffer leaks The option DM_DEBUG_BLOCK_STACK_TRACING is moved from persistent-data directory to device mapper directory because it will now be used by persistent-data and bufio. When the option is enabled, each bufio buffer stores the stacktrace of the last dm_bufio_get(), dm_bufio_read() or dm_bufio_new() call that increased the hold count to 1. The buffer's stacktrace is printed if the buffer was not released before the bufio client is destroyed. When DM_DEBUG_BLOCK_STACK_TRACING is enabled, any bufio buffer leaks are considered warnings - i.e. the kernel continues afterwards. If not enabled, buffer leaks are considered BUGs and the kernel with crash. Reasoning on this disposition is: if we only ever warned on buffer leaks users would generally ignore them and the problematic code would never get fixed. Successfully used to find source of bufio leaks fixed with commit fce079f63c3 ("dm btree: fix bufio buffer leaks in dm_btree_del() error path"). Signed-off-by: Mikulas Patocka Signed-off-by: Mike Snitzer drivers/md/Kconfig | 9 +++++++++ drivers/md/dm-bufio.c | 39 +++++++++++++++++++++++++++++++++++++- drivers/md/persistent-data/Kconfig | 9 --------- 3 files changed, 47 insertions(+), 10 deletions(-) commit f98c8f797021e78ba27143ecd39c51995c47aa8b Author: Mikulas Patocka Date: Mon Nov 23 19:11:32 2015 -0500 dm bufio: return NULL to improve code clarity A small code cleanup in new_read() - return NULL instead of b (although b is NULL at this point). This function is not returning pointer to the buffer, it is returning a pointer to the bufffer's data, thus it makes no sense to return the variable b. Signed-off-by: Mikulas Patocka Signed-off-by: Mike Snitzer drivers/md/dm-bufio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 313c9b97361fca3a606fc74de86bee6dc7988bca Author: Mikulas Patocka Date: Mon Nov 23 19:12:05 2015 -0500 dm block manager: cleanup code that prints stacktrace There is no need to record stack trace and immediately print it. Just use dump_stack() to print the current stack. Signed-off-by: Mikulas Patocka Signed-off-by: Mike Snitzer drivers/md/persistent-data/dm-block-manager.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) commit fe3265b180d6282648f03bc6ac3958c733df01c2 Author: Mikulas Patocka Date: Wed Nov 25 16:03:31 2015 -0500 dm: don't save and restore bi_private Device mapper used the field bi_private to point to dm_target_io. However, since kernel 3.15, the bi_private field is unused, and so the targets do not need to save and restore this field. This patch removes code that saves and restores bi_private from dm-cache, dm-snapshot and dm-verity. Signed-off-by: Mikulas Patocka Signed-off-by: Mike Snitzer drivers/md/dm-cache-target.c | 3 --- drivers/md/dm-snap.c | 6 +----- drivers/md/dm-verity.c | 5 +---- 3 files changed, 2 insertions(+), 12 deletions(-) commit 086fbbbda9b743b149b0294e0feec257e2c311d5 Author: Joe Thornber Date: Mon Dec 7 14:48:04 2015 +0000 dm thin metadata: make dm_thin_find_mapped_range() atomic Refactor dm_thin_find_mapped_range() so that it takes the read lock on the metadata's lock; rather than relying on finer grained locking that is pushed down inside dm_thin_find_next_mapped_block() and dm_thin_find_block(). Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer drivers/md/dm-thin-metadata.c | 64 +++++++++++++++++++++++++++++-------------- 1 file changed, 43 insertions(+), 21 deletions(-) commit 3d5f67332ad9a500857a45397b69a27198720410 Author: Joe Thornber Date: Thu Nov 5 15:10:11 2015 +0000 dm thin metadata: speed up discard of partially mapped volumes Use dm_btree_lookup_next() to more quickly discard partially mapped volumes. Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer drivers/md/dm-thin-metadata.c | 66 +++++++++++++++++++++++++++---------------- 1 file changed, 41 insertions(+), 25 deletions(-) commit df8801a0739664b48f8c47b276e989b2c6d8bced Author: Guoying Zhang Date: Mon Nov 30 06:05:57 2015 +0000 pinctrl: atlas7: add pulse conter pin group without direction pin DR needs use the pulse counter direction pin as common gpio function. Signed-off-by: Guoying Zhang Signed-off-by: Barry Song Signed-off-by: Linus Walleij drivers/pinctrl/sirf/pinctrl-atlas7.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 5238bba81f6ccd17ce0ddf7df393d9c5d4f1b307 Author: Wei Chen Date: Mon Nov 30 06:05:56 2015 +0000 pinctrl: atlas7: adjust vip pin groups for atlas7 The vip low 8bit mode and vip high 8 bit mode pin groups had missed 3 pins:vip_vsync, vip_hsync and vip_pxclk. Without these 3 pins, the vip could not work properly. Now we add these 3 pins into these two pin groups. Signed-off-by: Wei Chen Signed-off-by: Barry Song Signed-off-by: Linus Walleij drivers/pinctrl/sirf/pinctrl-atlas7.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) commit d166629cdf73a60f5fe8646bfe96dfd39c5ba660 Author: Wei Chen Date: Mon Nov 30 06:05:55 2015 +0000 pinctrl: atlas7: adjust pin groups of atlas7 nanddisk Remove write-protect and chip-selector pins from nand pin group. And then create two separate pin groups for these two pin. So the nand driver can choose correct pin groups as board desgin: For example: 1. nand without wp&cs: nand@17050000 { pinctrl-0 = <&nd_df_basic_pmx>; }; 2. nand with wp nand@17050000 { pinctrl-0 = <&nd_df_basic_pmx &nd_df_wp_pmx>; }; 3. nand with cs: nand@17050000 { pinctrl-0 = <&nd_df_basic_pmx &nd_df_cs_pmx>; }; 4. nand with wp&cs: nand@17050000 { pinctrl-0 = <&nd_df_basic_pmx &nd_df_wp_pmx &nd_df_cs_pmx>; }; Signed-off-by: Wei Chen Signed-off-by: Barry Song Signed-off-by: Linus Walleij drivers/pinctrl/sirf/pinctrl-atlas7.c | 88 +++++++++++------------------------ 1 file changed, 27 insertions(+), 61 deletions(-) commit 6d985333a1e05ba6b8cdd6f6f4e08992a06e9bc0 Author: Yonghui Zhang Date: Mon Nov 30 06:05:54 2015 +0000 pinctrl: altas7: add sd9 function mux support The sd9 pin mux with sd3 and it is selected by SYS2PCI_SDIO9SEL. This makes the codes ugly since the register is not in pinctrl module. Signed-off-by: Yonghui Zhang Signed-off-by: Barry Song Signed-off-by: Linus Walleij drivers/pinctrl/sirf/pinctrl-atlas7.c | 44 ++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 8 deletions(-) commit 80d71b616d7294ad65c4b4cf43dd734bc82b4fcf Author: Wei Chen Date: Mon Nov 30 06:05:53 2015 +0000 pinctrl: atlas7: add cs line for atlas7 nand The nand in atlas7 has two chip select line. But in most time, the nand only has one chip, so only one chip select line is enough. The nand driver select this new pin group can free one chip select line for other modules to avoid pin conflict. Signed-off-by: Wei Chen Signed-off-by: Barry Song Signed-off-by: Linus Walleij drivers/pinctrl/sirf/pinctrl-atlas7.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) commit 4b15ec9d42b2004d7114e6714a27b60ba4f27b57 Author: Robert Jarzmik Date: Sat Nov 21 19:04:53 2015 +0100 pinctrl: activate pxa architecture As the pxa architecture, at least for pxa27x, supports pin control, activate it in the pinctrl tree. Signed-off-by: Robert Jarzmik Signed-off-by: Linus Walleij drivers/pinctrl/Kconfig | 1 + drivers/pinctrl/Makefile | 1 + 2 files changed, 2 insertions(+) commit d0e3096859eee425397c7a93b93ddeaa140b997d Author: Robert Jarzmik Date: Sat Nov 21 19:04:52 2015 +0100 pinctrl: pxa: add pxa27x architecture Add the pxa27x architecture, which is a pxa2xx with 128 pins. The registers spacing, and pins logic is common to pxa2xx, only the pins and their alternate function are specific to pxa27x. Signed-off-by: Robert Jarzmik Signed-off-by: Linus Walleij drivers/pinctrl/pxa/Kconfig | 8 + drivers/pinctrl/pxa/Makefile | 2 + drivers/pinctrl/pxa/pinctrl-pxa27x.c | 566 +++++++++++++++++++++++++++++++++++ 3 files changed, 576 insertions(+) commit aedf08b664b71ecf0b35891eb6c83e26b888342a Author: Robert Jarzmik Date: Sat Nov 21 19:04:51 2015 +0100 pinctrl: pxa: pxa2xx: add pin configuration support Add pin configuration for pxa2xx architectures. PXA doesn't provide any bias, push, pull capabilities. The only capability is to set a state for the pins when the platform enter sleep or deep sleep mode. The state of a pin is set by : - whether the GPIO direction was input or output - if it is output, a register set programs whether the pin should be held to ground or VccIO Signed-off-by: Robert Jarzmik Signed-off-by: Linus Walleij drivers/pinctrl/pxa/pinctrl-pxa2xx.c | 63 ++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) commit d530ef9b88e5162a1972050994264d66ca884f3f Author: Robert Jarzmik Date: Sat Nov 21 19:04:50 2015 +0100 pinctrl: pxa: pxa2xx: add pin muxing The driver is inspired from the sunxi driver. The pxa architecture specificities leading to the driver are : - each pin has 8 possible alternate functions - 4 of these are output kind - 4 of these are input kind - there is always a "gpio input" and "gpio output" function - the function matrix is very scattered : - some functions can be found on 5 different pads - the number of functions is greater than the number of pins - there is no "topology" grouping of pins (such as all SPI in one corner of the die) Signed-off-by: Robert Jarzmik Signed-off-by: Linus Walleij drivers/pinctrl/pxa/pinctrl-pxa2xx.c | 121 +++++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) commit 73317712d9277407b726917de7c4e6d5a4b7df99 Author: Robert Jarzmik Date: Sat Nov 21 19:04:49 2015 +0100 pinctrl: pxa: pxa2xx: add pin control skeleton Add a pincontrol driver for pxa2xx architecture, encompassing all pxa25x and pxa27x variants. This is only the pin muxing part of the driver. One specific consideration is also the memory space (MMIO), which is intertwined with the GPIO registers. To make things worse, the GPIO direction register also affect pin muxing, as it chooses the "kind" of pin, ie. the 4 output functions or 4 input functions. The mapping between pinctrl notions and PXA Technical Reference Manual is as follows : - a pin is obviously a pin - a group is also a pin, ie. group P101 is the pin 101 - a mux function is an alternate function (ie. gpio-in, gpio-out, MMCLK, BTRTS, etc ...) The individual architecture (pxa27x, pxa25x) instantiate a pin control by providing a table of pins, each pin being provided a list of PXA_FUNCTION (alternate functions). Signed-off-by: Robert Jarzmik Signed-off-by: Linus Walleij drivers/pinctrl/pxa/Kconfig | 9 ++ drivers/pinctrl/pxa/pinctrl-pxa2xx.c | 252 +++++++++++++++++++++++++++++++++++ drivers/pinctrl/pxa/pinctrl-pxa2xx.h | 92 +++++++++++++ 3 files changed, 353 insertions(+) commit 1403ead9ea0fda604e28ed861d5c25fdbc8d0dbc Author: Robert Jarzmik Date: Sat Nov 21 19:04:48 2015 +0100 MAINTAINERS: add to pxa files pinctrl Add the pinctrl pxa drivers to the pxa maintained files. Signed-off-by: Robert Jarzmik Signed-off-by: Linus Walleij MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit 384ca3c6a28d27030ec971f20b775c596ff87ae5 Author: Robert Jarzmik Date: Sat Nov 28 22:37:44 2015 +0100 gpio: pxa: change the interrupt management The interrupt management is changed by this patch to rely on chip data instead of chained interrupts. The main goal is to loosen the dependency on the global pxa chip structure in favor of the passed chip data. The secondary goal is to better show in /proc/interrupts the difference between interrupts for gpio0 and gpio1 (directly wired to interrupt controller), and the other gpios (wired onto a third line in the interrupt controller). The last advantage of this patch is that the interrupt is actually requested, so that another driver cannot steal this line, or overwrite the handler. Signed-off-by: Robert Jarzmik Signed-off-by: Linus Walleij drivers/gpio/gpio-pxa.c | 145 +++++++++++++++++++++++++++--------------------- 1 file changed, 82 insertions(+), 63 deletions(-) commit 8852b2f7dbf69544fb2ea65896405e11d930e132 Author: Robert Jarzmik Date: Sat Nov 28 22:37:43 2015 +0100 gpio: pxa: convert to devm_ioremap Use the device managed ioremap to simplify the probe function. Signed-off-by: Robert Jarzmik Signed-off-by: Linus Walleij drivers/gpio/gpio-pxa.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit fc0589ca64786a2ade9f916fc9c7ca95d375c182 Author: Robert Jarzmik Date: Sat Nov 28 22:37:42 2015 +0100 gpio: pxa: convert to one gpiochip The pxa gpio IP is provided by one chip, which holds multiple banks. Another reason the driver should register only one gpiochip instead of multiple gpiochips (ie. 1 per each bank) is that for pincontrol and devicetree integration (think gpio-ranges), it's impossible to have the contiguous pin range 0..127 mapped to gpios 0..127. This patch, amongst other thinks, paves the path to loosen the bond with the global structure variable pxa_gpio_chip. Signed-off-by: Robert Jarzmik Signed-off-by: Linus Walleij drivers/gpio/gpio-pxa.c | 221 ++++++++++++++++++++++++++---------------------- 1 file changed, 120 insertions(+), 101 deletions(-) commit a85a41ed69f27c4c667d8c418df14b4fb220c4ad Author: Michal Marek Date: Thu Dec 10 15:53:06 2015 +0100 kbuild: Do not run modules_install and install in paralel Based on a x86-only patch by Andy Lutomirski With modular kernels, 'make install' is going to need the installed modules at some point to generate the initramfs. Signed-off-by: Michal Marek Makefile | 6 ++++++ 1 file changed, 6 insertions(+) commit 4e395cf099f920c3d74efc99f90f910c76e68d52 Merge: 0581b16 f27200f Author: Linus Walleij Date: Thu Dec 10 15:41:19 2015 +0100 Merge branch 'sh-pfc-for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into devel commit d4b98f20f46454c153201d55c8336f769b7eb195 Author: Arnd Bergmann Date: Tue Dec 8 16:24:22 2015 +0100 crypto: sahara - fix debug output for 64-bit dma_addr_t The sahara_dump_descriptors and sahara_dump_links functions attempt to print a dma_addr_t value with a 0x%08x format string, which produces a warning when dma_addr_t is 64-bit wide: drivers/crypto/sahara.c:419:120: warning: format '%x' expects argument of type 'unsigned int', but argument 5 has type 'dma_addr_t {aka long long unsigned int}' [-Wformat=] This changes the code to use the %pad format string that is meant for dma_addr_t, which avoids the warning and gives us the correct output in all configurations. Signed-off-by: Arnd Bergmann Signed-off-by: Herbert Xu drivers/crypto/sahara.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 75d3f811f33ac994264c2cfb4bbc5220734300a5 Author: Arnd Bergmann Date: Tue Dec 8 16:23:51 2015 +0100 crypto: sahara - fix 64-bit dma_addr_t compilation The sahara hardware uses DMA descriptors with 32-bit addresses, but dma_addr_t is variable size depending on whether we want to support any devices that use 64-bit DMA addresses in hardware. This means that the definition of the DMA descriptor structure is wrong, and we helpfully get a compiler warning about them too: drivers/crypto/sahara.c:423:372: warning: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'dma_addr_t {aka long long unsigned int}' [-Wformat=] This changes the definition of the sahara_hw_desc and sahara_hw_link structures to only contain fixed-length members, which is required to make the driver work on ARM LPAE mode, and avoids most of the gcc warnings we get. Signed-off-by: Arnd Bergmann Signed-off-by: Herbert Xu drivers/crypto/sahara.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit e4bc02aced3731776c8828d34e13c02ebdec3088 Author: Julia Lawall Date: Mon Dec 7 21:36:57 2015 +0100 crypto: drbg - constify drbg_state_ops structures The drbg_state_ops structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Herbert Xu crypto/drbg.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit e2dc7d7d8ed3019f72855af1c3dcda3fb456b488 Author: Takashi Iwai Date: Tue Dec 1 12:39:38 2015 +0100 ALSA: hda - Move audio component accesses to hdac_i915.c A couple of i915_audio_component ops have been added and accessed directly from patch_hdmi.c. Ideally all these should be factored out into hdac_i915.c. This patch does it, adds two new helper functions for setting N/CTS and fetching ELD bytes. One bonus is that the hackish widget vs port mapping is also moved to hdac_i915.c, so that it can be fixed / enhanced more cleanly. Reviewed-by: Vinod Koul Signed-off-by: Takashi Iwai include/sound/hda_i915.h | 14 ++++++++++ sound/hda/hdac_i915.c | 66 ++++++++++++++++++++++++++++++++++++++++++++ sound/pci/hda/patch_hdmi.c | 69 +++++++++++++++++----------------------------- 3 files changed, 106 insertions(+), 43 deletions(-) commit 788d441a164caea0a5d82e1d5bcd161820bfe62a Author: Takashi Iwai Date: Thu Nov 12 15:36:13 2015 +0100 ALSA: hda - Use component ops for i915 HDMI/DP audio jack handling Since we have a new audio component ops to fetch the current ELD and state now, we can reduce the usage of unsol event of HDMI/DP pins. The unsol event isn't only unreliable, but it also needs the power up/down of the codec and link at each time, which is a significant power and time loss. In this patch, the jack creation and unsol/jack event handling are modified to use the audio component for the dedicated Intel chips. The jack handling got slightly more codes than a simple usage of hda_jack layer since we need to deal directly with snd_jack object; the hda_jack layer is basically designed for the pin sense read and unsol events, both of which aren't used any longer in our case. Signed-off-by: Takashi Iwai sound/pci/hda/patch_hdmi.c | 111 +++++++++++++++++++++++++++++++++++++++------ 1 file changed, 97 insertions(+), 14 deletions(-) commit e826d22e16c3230621a937e22f43c403d6e494a7 Merge: 9a5e523 0bdf5a0 Author: Takashi Iwai Date: Thu Dec 10 14:40:26 2015 +0100 Merge tag 'drm-i915-get-eld' into topic/hdmi-jack Merge the latest i915 audio component changes for HDMI/DP get_eld ops. This is actually used in HD-audio side in this branch. commit 9a5e5234bafeaa2e9d15881d443c38d3d82d0b38 Author: Takashi Iwai Date: Thu Dec 10 14:35:09 2015 +0100 ALSA: hda - Fix superfluous HDMI jack repoll The recent commit [e90247f9fcee: ALSA: hda - Split ELD update code from hdmi_present_sense()] rewrote the HDMI jack handling code, but a slight behavior change sneaked in unexpectedly. When the jack isn't connected, it tries repoll unnecessarily. This patch addresses the flaw, to the right behavior as before. Fixes: e90247f9fcee ('ALSA: hda - Split ELD update code from hdmi_present_sense()') Reported-and-tested-by: David Henningsson Signed-off-by: Takashi Iwai sound/pci/hda/patch_hdmi.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit b0366a54b446c53791000758d55abf80b1e0e961 Author: Dave Gordon Date: Tue Dec 8 15:02:36 2015 +0000 drm/i915: intel_ring_initialized() must be simple and inline Based on Chris Wilson's patch from 6 months ago, rebased and adapted. The current implementation of intel_ring_initialized() is too heavyweight; it's a non-inlined function that chases several levels of pointers. This wouldn't matter too much if it were rarely called, but it's used inside the iterator test of for_each_ring() and is therefore called quite frequently. So let's make it simple and inline ... The idea here is to use ring->dev as an indicator showing which engines have been initialised and are therefore to be included in iterations that use for_each_ring(). This allows us to avoid multiple memory references and a (non-inlined) function call on each iteration of each such loop. Fixes regression from commit 48d823878d64f93163f5a949623346748bbce1b4 Author: Oscar Mateo Date: Thu Jul 24 17:04:23 2014 +0100 drm/i915/bdw: Generic logical ring init and cleanup Signed-off-by: Chris Wilson Signed-off-by: Dave Gordon Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449586956-32360-2-git-send-email-david.s.gordon@intel.com drivers/gpu/drm/i915/intel_lrc.c | 17 +++++++++----- drivers/gpu/drm/i915/intel_ringbuffer.c | 39 +++++++++++---------------------- drivers/gpu/drm/i915/intel_ringbuffer.h | 6 ++++- 3 files changed, 30 insertions(+), 32 deletions(-) commit 0bdf5a05647a66dcc6394986e061daeac9b1cf96 Author: Takashi Iwai Date: Mon Nov 30 18:19:39 2015 +0100 drm/i915: Add reverse mapping between port and intel_encoder This patch adds a reverse mapping from a digital port number to intel_encoder object containing the corresponding intel_digital_port. It simplifies the query of the encoder a lot. Note that, even if it's a valid digital port, the dig_port_map[] might point still to NULL -- usually it implies a DP MST port. Due to this fact, the NULL check in each place has no WARN_ON() and just skips the port. Once when the situation changes in future, we might introduce WARN_ON() for a more strict check. Signed-off-by: Takashi Iwai drivers/gpu/drm/i915/i915_drv.h | 2 ++ drivers/gpu/drm/i915/intel_audio.c | 59 ++++++++++++++++---------------------- drivers/gpu/drm/i915/intel_ddi.c | 1 + drivers/gpu/drm/i915/intel_dp.c | 1 + drivers/gpu/drm/i915/intel_hdmi.c | 2 ++ 5 files changed, 30 insertions(+), 35 deletions(-) commit cae666ceb8c3f154351f7df29c522f7a7016bdc0 Author: Takashi Iwai Date: Thu Nov 12 15:23:41 2015 +0100 drm/i915: Add get_eld audio component Implement a new i915_audio_component_ops, get_eld(). It's called by the audio driver to fetch the current audio status and ELD of the given HDMI/DP port. It returns the size of expected ELD bytes if it's valid, zero if no valid ELD is found, or a negative error code. The current state of audio on/off is stored in the given pointer, too. Note that the returned size isn't limited to the given max bytes. If the size is greater than the max bytes, it means that only a part of ELD has been copied back. For achieving this implementation, a new field audio_connector is added to struct intel_digital_port. It points to the connector assigned to the given digital port. It's set/reset at each audio enable/disable call in intel_audio.c, and protected with av_mutex. Reviewed-by: Daniel Vetter Signed-off-by: Takashi Iwai drivers/gpu/drm/i915/intel_audio.c | 42 ++++++++++++++++++++++++++++++++++++++ drivers/gpu/drm/i915/intel_drv.h | 2 ++ include/drm/i915_component.h | 14 +++++++++++++ 3 files changed, 58 insertions(+) commit 49003a8d6b35e128ef5e51433e60e783a46fbe5f Author: James Morse Date: Thu Dec 10 10:22:41 2015 +0000 arm64: don't call C code with el0's fp register On entry from el0, we save all the registers on the kernel stack, and restore them before returning. x29 remains unchanged when we call out to C code, which will store x29 as the frame-pointer on the stack. Instead, write 0 into x29 after entry from el0, to avoid any risk of tracing into user space. Signed-off-by: James Morse Signed-off-by: Will Deacon arch/arm64/kernel/entry.S | 2 ++ 1 file changed, 2 insertions(+) commit 1ffe199b1c9b72a8e752a9ae2a7af10128ab2ca1 Author: James Morse Date: Thu Dec 10 10:22:40 2015 +0000 arm64: when walking onto the task stack, check sp & fp are in current->stack When unwind_frame() reaches the bottom of the irq_stack, the last fp points to the original task stack. unwind_frame() uses IRQ_STACK_TO_TASK_STACK() to find the sp value. If either values is wrong, we may end up walking a corrupt stack. Check these values are sane by testing if they are both on the stack pointed to by current->stack. Signed-off-by: James Morse Signed-off-by: Will Deacon arch/arm64/kernel/stacktrace.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit aa4d5d3cbc258c355151a3903211b27359390ec5 Author: James Morse Date: Thu Dec 10 10:22:39 2015 +0000 arm64: Add this_cpu_ptr() assembler macro for use in entry.S irq_stack is a per_cpu variable, that needs to be access from entry.S. Use an assembler macro instead of the unreadable details. Signed-off-by: James Morse Signed-off-by: Will Deacon arch/arm64/include/asm/assembler.h | 11 +++++++++++ arch/arm64/kernel/entry.S | 4 +--- 2 files changed, 12 insertions(+), 3 deletions(-) commit 55913110dde2d9c1cf751481525848644f9041da Author: Takashi Iwai Date: Thu Dec 10 13:03:29 2015 +0100 ALSA: hda - Allow i915 binding later in codec driver Due to the recent change, HDA controller driver for Intel PCH tries to bind i915 audio component always at the probe time no matter whether HDMI/DP codec is found. This is, however, superflulous for old chipsets (e.g. on IVB) where they don't have always the HDMI/DP codecs but often have only a discrete GPU instead. For the newer chipsets, we need already the i915 binding from the beginning due to power well control. Meanwhile, for older chipsets where we don't need power well, we don't need the i915 binding at the controller level. This patch removes again the i915 binding in the HDA controller driver for old Intel PCHs, but adds the binding in HDMI/DP codec driver instead. This allows still the use of the direct notification from the graphics driver while we can avoid the unnecessary load of i915 driver for machines only with another GPU. Signed-off-by: Takashi Iwai sound/pci/hda/hda_intel.c | 6 +++--- sound/pci/hda/patch_hdmi.c | 11 +++++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) commit f4e3040bf0e94ff86ba2c970a4d7691100dc69d5 Author: Takashi Iwai Date: Thu Dec 10 13:01:28 2015 +0100 ALSA: hda - Optimize audio component check in patch_hdmi.c The audio component is enabled only when CONFIG_SND_HDA_I915 is set. Give a dummy macro for allowing the compiler optimize out the relevant codes when this Kconfig isn't set. Signed-off-by: Takashi Iwai sound/pci/hda/patch_hdmi.c | 4 ++++ 1 file changed, 4 insertions(+) commit 818f1f3e70dd4c8e6f8d59c617857be0fa0fce7c Author: Alexander Aring Date: Wed Dec 9 22:46:31 2015 +0100 ipv6: add ipv6_addr_prefix_copy This patch adds a static inline function ipv6_addr_prefix_copy which copies a ipv6 address prefix(argument pfx) into the ipv6 address prefix. The prefix len is given by plen as bits. This function mainly based on ipv6_addr_prefix which copies one address prefix from address into a new ipv6 address destination and zero all other address bits. The difference is that ipv6_addr_prefix_copy don't get a prefix from an ipv6 address, it sets a prefix to an ipv6 address with keeping other address bits. The use case is for context based address compression inside 6LoWPAN IPHC header which keeping ipv6 prefixes inside a context table to lookup address-bits without sending them. Cc: Alexey Kuznetsov Cc: James Morris Cc: Hideaki YOSHIFUJI Cc: Patrick McHardy Acked-by: Łukasz Duda Acked-by: Hannes Frederic Sowa Acked-by: YOSHIFUJI Hideaki Acked-by: David S. Miller Reviewed-by: Stefan Schmidt Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann include/net/ipv6.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit d7e12cd7b8c6d7426a401ec03ddcb88382180ced Author: Gabriel Laskar Date: Mon Nov 30 15:10:57 2015 +0100 drm: fix inclusion of drm.h in via_drm.h Using `#include "drm.h"` instead of `#include ` allow drm headers to be moved in another directory without changes, like for the libdrm imports. Signed-off-by: Gabriel Laskar Reviewed-by: Emil Velikov CC: Emil Velikov CC: Mikko Rapeli include/uapi/drm/via_drm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3a4197afc4e49083988e077d09dba88013f0e517 Author: Gabriel Laskar Date: Mon Nov 30 15:10:56 2015 +0100 drm: fix inclusion of drm.h in vmwgfx_drm.h Using `#include "drm.h"` instead of `#include ` allow drm headers to be moved in another directory without changes, like for the libdrm imports. Signed-off-by: Gabriel Laskar Reviewed-by: Emil Velikov CC: Emil Velikov CC: Mikko Rapeli include/uapi/drm/vmwgfx_drm.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 6e82e9c85774a417af309497d0be5f125474d163 Author: Gabriel Laskar Date: Mon Nov 30 15:10:55 2015 +0100 drm: fix inclusion of drm.h in virtgpu_drm.h Using `#include "drm.h"` instead of `#include ` allow drm headers to be moved in another directory without changes, like for the libdrm imports. Signed-off-by: Gabriel Laskar Reviewed-by: Emil Velikov CC: Emil Velikov CC: Mikko Rapeli include/uapi/drm/virtgpu_drm.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 678205a6c403a9da70dcd12ca61ace8d91ed0351 Author: Gabriel Laskar Date: Mon Nov 30 15:10:54 2015 +0100 drm: fix inclusion of drm.h in tegra_drm.h Using `#include "drm.h"` instead of `#include ` allow drm headers to be moved in another directory without changes, like for the libdrm imports. Signed-off-by: Gabriel Laskar Reviewed-by: Emil Velikov CC: Emil Velikov CC: Mikko Rapeli include/uapi/drm/tegra_drm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3e2d2cdfa0fc277ec267a1fd4af41fdbb2f70255 Author: Gabriel Laskar Date: Mon Nov 30 15:10:53 2015 +0100 drm: fix inclusion of drm.h in savage_drm.h Using `#include "drm.h"` instead of `#include ` allow drm headers to be moved in another directory without changes, like for the libdrm imports. Signed-off-by: Gabriel Laskar Reviewed-by: Emil Velikov CC: Emil Velikov CC: Mikko Rapeli include/uapi/drm/savage_drm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 355f47803af9de70eab4fa20c8527ae047d240b7 Author: Gabriel Laskar Date: Mon Nov 30 15:10:52 2015 +0100 drm: fix inclusion of drm.h in r128_drm.h Using `#include "drm.h"` instead of `#include ` allow drm headers to be moved in another directory without changes, like for the libdrm imports. Signed-off-by: Gabriel Laskar Reviewed-by: Emil Velikov CC: Emil Velikov CC: Mikko Rapeli include/uapi/drm/r128_drm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8ca32846322254df34c33aeeb222f77edecfa113 Author: Gabriel Laskar Date: Mon Nov 30 15:10:51 2015 +0100 drm: fix inclusion of drm.h in qxl_drm.h Using `#include "drm.h"` instead of `#include ` allow drm headers to be moved in another directory without changes, like for the libdrm imports. Signed-off-by: Gabriel Laskar Reviewed-by: Emil Velikov CC: Emil Velikov CC: Mikko Rapeli include/uapi/drm/qxl_drm.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 7ef500e431ac2f3bf14f6c39704e5db01ab5a341 Author: Gabriel Laskar Date: Mon Nov 30 15:10:50 2015 +0100 drm: fix inclusion of drm.h in omap_drm.h Using `#include "drm.h"` instead of `#include ` allow drm headers to be moved in another directory without changes, like for the libdrm imports. Signed-off-by: Gabriel Laskar Reviewed-by: Emil Velikov CC: Emil Velikov CC: Mikko Rapeli include/uapi/drm/omap_drm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 06577d042d38b27ed975c49358ad7adf873d09ae Author: Gabriel Laskar Date: Mon Nov 30 15:10:49 2015 +0100 drm: fix inclusion of drm.h in msm_drm.h Using `#include "drm.h"` instead of `#include ` allow drm headers to be moved in another directory without changes, like for the libdrm imports. Signed-off-by: Gabriel Laskar Reviewed-by: Emil Velikov CC: Emil Velikov CC: Mikko Rapeli include/uapi/drm/msm_drm.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 559003d067db195721656395cc765f0a16a3abf6 Author: Gabriel Laskar Date: Mon Nov 30 15:10:48 2015 +0100 drm: fix inclusion of drm.h in mga_drm.h Using `#include "drm.h"` instead of `#include ` allow drm headers to be moved in another directory without changes, like for the libdrm imports. Signed-off-by: Gabriel Laskar Reviewed-by: Emil Velikov CC: Emil Velikov CC: Mikko Rapeli include/uapi/drm/mga_drm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1049102ff72b294bbeb1a254fe4de4a558387b46 Author: Gabriel Laskar Date: Mon Nov 30 15:10:47 2015 +0100 drm: fix inclusion of drm.h in exynos_sarea.h Using `#include "drm.h"` instead of `#include ` allow drm headers to be moved in another directory without changes, like for the libdrm imports. Signed-off-by: Gabriel Laskar Reviewed-by: Emil Velikov CC: Emil Velikov CC: Mikko Rapeli include/uapi/drm/i915_drm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 13635d6120b9d6607fbf2622066bebfd7416e545 Author: Gabriel Laskar Date: Mon Nov 30 15:10:46 2015 +0100 drm: fix inclusion of drm.h in i810_drm.h Using `#include "drm.h"` instead of `#include ` allow drm headers to be moved in another directory without changes, like for the libdrm imports. Signed-off-by: Gabriel Laskar Reviewed-by: Emil Velikov CC: Emil Velikov CC: Mikko Rapeli include/uapi/drm/i810_drm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 19b1e97aefde813f92a40699200fe1cf73f07da2 Author: Gabriel Laskar Date: Mon Nov 30 15:10:45 2015 +0100 drm: fix inclusion of drm.h in exynos_sarea.h Using `#include "drm.h"` instead of `#include ` allow drm headers to be moved in another directory without changes, like for the libdrm imports. Signed-off-by: Gabriel Laskar Reviewed-by: Emil Velikov CC: Emil Velikov CC: Mikko Rapeli include/uapi/drm/exynos_drm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c6da66dff79e3e99903d4435292643665c30b0c6 Author: Gabriel Laskar Date: Mon Nov 30 15:10:44 2015 +0100 drm: fix inclusion of drm.h in drm_sarea.h Using `#include "drm.h"` instead of `#include ` allow drm headers to be moved in another directory without changes, like for the libdrm imports. Signed-off-by: Gabriel Laskar Reviewed-by: Emil Velikov CC: Emil Velikov CC: Mikko Rapeli include/uapi/drm/drm_sarea.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit abd5422db285f286a0d57747fb0edf192f880349 Author: Gabriel Laskar Date: Mon Nov 30 15:10:43 2015 +0100 drm: drm_mode.h fix includes Instead of using linux/types.h, drm headers should use drm.h, in order to handle the portability issues in only one place. Signed-off-by: Gabriel Laskar Reviewed-by: Emil Velikov CC: Emil Velikov CC: Mikko Rapeli include/uapi/drm/drm_mode.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 47f06c2f937f765042e8d41d7ee09f475a22e9d0 Author: Gabriel Laskar Date: Mon Nov 30 15:10:42 2015 +0100 drm: drm_fourcc.h fix includes Instead of using linux/types.h, drm headers should use drm.h, in order to handle the portability issues in only one place. Signed-off-by: Gabriel Laskar Reviewed-by: Emil Velikov CC: Emil Velikov CC: Mikko Rapeli include/uapi/drm/drm_fourcc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6a14d01b91b07f354f11a3774755ed0afca2225b Author: Gabriel Laskar Date: Mon Nov 30 15:10:41 2015 +0100 drm: include drm.h in armada_drm.h Signed-off-by: Gabriel Laskar Reviewed-by: Emil Velikov CC: Emil Velikov CC: Mikko Rapeli include/uapi/drm/armada_drm.h | 2 ++ 1 file changed, 2 insertions(+) commit 2ce9dde0d47f2f94ab25c73a30596a7328bcdf1f Author: Mikko Rapeli Date: Wed Dec 2 23:44:33 2015 +0100 include/uapi/drm/amdgpu_drm.h: use __u32 and __u64 from Kernel headers exported to userspace are supposed to use these. Fixes compilation errors in userspace: error: unknown type name ‘uint64_t’ error: unknown type name ‘uint32_t’ Signed-off-by: Mikko Rapeli include/uapi/drm/amdgpu_drm.h | 290 +++++++++++++++++++++--------------------- 1 file changed, 145 insertions(+), 145 deletions(-) commit f95d3aa438e15caa3a7c2d82b45c9df0ae8bc3a3 Author: Gabriel Laskar Date: Mon Nov 30 15:10:40 2015 +0100 drm: Kbuild: add admgpu_drm.h to the installed headers Signed-off-by: Gabriel Laskar Reviewed-by: Emil Velikov Acked-by: Alex Deucher CC: Emil Velikov CC: Mikko Rapeli include/uapi/drm/Kbuild | 1 + 1 file changed, 1 insertion(+) commit 29e08b0518fcddda2ae7b5014dfe8ac4eaa6ece7 Author: Gabriel Laskar Date: Mon Nov 30 15:10:39 2015 +0100 drm: use __u{32,64} instead of uint{32,64}_t in virtgpu_drm.h Signed-off-by: Gabriel Laskar Reviewed-by: Emil Velikov CC: Emil Velikov CC: Mikko Rapeli include/uapi/drm/virtgpu_drm.h | 98 +++++++++++++++++++++--------------------- 1 file changed, 49 insertions(+), 49 deletions(-) commit 35d0f1d54ecd813973091fdb17baae43ea2b60b9 Author: Mikko Rapeli Date: Sun Feb 1 15:10:41 2015 +0100 include/uapi/linux/agpgart.h: include stdlib.h in userspace Fixes userspace compiler error: error: unknown type name ‘size_t’ Signed-off-by: Mikko Rapeli include/uapi/linux/agpgart.h | 1 + 1 file changed, 1 insertion(+) commit 89545d6d5cb0fab53211d6a36a8037c8020e1b7e Author: Mikko Rapeli Date: Wed Dec 2 23:17:47 2015 +0100 include/uapi/linux/virtio_gpu.h: use __u8 from Kernel headers exported to userspace are should these types. Fixes userspace compilation error: error: unknown type name ‘uint8_t’ Signed-off-by: Mikko Rapeli include/uapi/linux/virtio_gpu.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8e51012c4f2c6b4f2a318c71e1b43f552e6d2a2c Author: Mikko Rapeli Date: Wed Mar 11 03:12:23 2015 +0100 include/uapi/drm/qxl_drm.h: use __s32, __u32 and __u64 from linux/types.h Fixes userspace compilation errors like: error: unknown type name ‘uint32_t’ Signed-off-by: Mikko Rapeli include/uapi/drm/qxl_drm.h | 74 +++++++++++++++++++++++----------------------- 1 file changed, 37 insertions(+), 37 deletions(-) commit 21de2fda3cb31ed3ef1807310ac982a1b8fe7089 Author: Mikko Rapeli Date: Wed Mar 11 03:07:51 2015 +0100 include/uapi/drm/vmwgfx_drm.h: use __s32, __u32 and __u64 from linux/types.h Fixes userspace compilation errors like: error: unknown type name ‘uint32_t’ Signed-off-by: Mikko Rapeli include/uapi/drm/vmwgfx_drm.h | 264 +++++++++++++++++++++--------------------- 1 file changed, 132 insertions(+), 132 deletions(-) commit 5b8573f7a0e97bbb444c51d129fe10edfde08b40 Author: Mikko Rapeli Date: Sun Aug 31 16:20:20 2014 +0200 via_drm.h: don't include non-existing via_drmclient.h Fixes compiler error: drm/via_drm.h:36:27: fatal error: via_drmclient.h: No such file or directory Signed-off-by: Mikko Rapeli include/uapi/drm/via_drm.h | 3 --- 1 file changed, 3 deletions(-) commit 31b4dfe24e903e995a32f17e9a9cafbbecabc77a Author: Mikko Rapeli Date: Sun Aug 31 13:11:54 2014 +0200 radeon_drm.h: use __u32 and __u64 from linux/types.h Fixes userspace compiler error: drm/radeon_drm.h:794:2: error: unknown type name ‘uint64_t’ Signed-off-by: Mikko Rapeli include/uapi/drm/radeon_drm.h | 128 +++++++++++++++++++++--------------------- 1 file changed, 64 insertions(+), 64 deletions(-) commit 8860487ef39bef5765354ec7dd195983b49f9349 Author: Mikko Rapeli Date: Sun Aug 31 13:09:51 2014 +0200 nouveau_drm.h: use __u32 and __u64 from linux/types.h Fixes userspace compilation errors like: drm/nouveau_drm.h:41:2: error: unknown type name ‘uint32_t’ Signed-off-by: Mikko Rapeli include/uapi/drm/nouveau_drm.h | 86 +++++++++++++++++++++--------------------- 1 file changed, 44 insertions(+), 42 deletions(-) commit 6615b20f1e4c35a62f7d12d38b7f56dc63dbdece Author: Mikko Rapeli Date: Sun Aug 31 13:07:31 2014 +0200 exynos_drm.h: use __u64 from linux/types.h Fixes userspace compilation error: drm/exynos_drm.h:30:2: error: unknown type name ‘uint64_t’ Signed-off-by: Mikko Rapeli include/uapi/drm/exynos_drm.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 05623b7fcaf20886721307de10547d3f91235186 Author: Mikko Rapeli Date: Sun Aug 31 13:01:09 2014 +0200 drm_mode.h: use __u32 and __u64 from linux/types.h Fixes userspace compilation error: drm/drm_mode.h:472:2: error: unknown type name ‘uint32_t’ Signed-off-by: Mikko Rapeli include/uapi/drm/drm_mode.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 1a2a42c8bfa25ef0f7e14c5973c6a0bebe625a96 Author: Mikko Rapeli Date: Sun Aug 31 12:58:46 2014 +0200 drm.h: use __kernel_size_t instead of size_t Fall back to size_t for non Linux platforms. Fixes userspace compilation error: drm/drm.h:132:2: error: unknown type name ‘size_t’ Signed-off-by: Mikko Rapeli include/uapi/drm/drm.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 54a4196188eab82e6f0a5f05716626e9f18b8fb6 Author: Maarten Lankhorst Date: Mon Nov 23 10:25:28 2015 +0100 drm/i915: Do a better job at disabling primary plane in the noatomic case. When disable_noatomic is called plane_mask is not correct yet, and plane_state->visible = true is left as true after disabling the primary plane. Other planes are already disabled as part of crtc sanitization, only the primary is left active. But the plane_mask is not updated here. It gets updated during fb takeover in modeset_gem_init, or set to the new value on resume. This means that to disable the primary plane 1 << drm_plane_index(primary) needs to be used. Afterwards because the crtc is no longer active it's forbidden to keep plane_state->visible set, or a WARN_ON in intel_plane_atomic_calc_changes triggers. There are other code points that rely on accurate plane_state->visible too, so make sure the bool is cleared. The other planes are already disabled in intel_sanitize_crtc, so they don't have to be handled here. Cc: stable@vger.kernel.org #v4.3, v4.2? Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92655 Tested-by: Tomas Mezzadra Signed-off-by: Maarten Lankhorst Reviewed-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/5652DB88.9070208@linux.intel.com Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit db1231dcdb4dc6cdcbdef0babe641a9162c0dc98 Author: Anton Blanchard Date: Wed Dec 9 20:11:47 2015 +1100 powerpc: Fix DSCR inheritance over fork() Two DSCR tests have a hack in them: /* * XXX: Force a context switch out so that DSCR * current value is copied into the thread struct * which is required for the child to inherit the * changed value. */ sleep(1); We should not be working around this in the testcase, it is a kernel bug. Fix it by copying the current DSCR to the child, instead of what we had in the thread struct at last context switch. Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman arch/powerpc/kernel/process.c | 2 +- tools/testing/selftests/powerpc/dscr/dscr_inherit_exec_test.c | 8 -------- tools/testing/selftests/powerpc/dscr/dscr_inherit_test.c | 8 -------- 3 files changed, 1 insertion(+), 17 deletions(-) commit 20dbe67062062c2a790832f0d30e73dba45df7c4 Author: Anton Blanchard Date: Thu Dec 10 20:44:39 2015 +1100 powerpc: Call restore_sprs() before _switch() commit 152d523e6307 ("powerpc: Create context switch helpers save_sprs() and restore_sprs()") moved the restore of SPRs after the call to _switch(). There is an issue with this approach - new tasks do not return through _switch(), they are set up by copy_thread() to directly return through ret_from_fork() or ret_from_kernel_thread(). This means restore_sprs() is not getting called for new tasks. Fix this by moving restore_sprs() before _switch(). Fixes: 152d523e6307 ("powerpc: Create context switch helpers save_sprs() and restore_sprs()") Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman arch/powerpc/kernel/process.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit 50df29db068f7d669dab293e0ac17628704c218d Author: Wayne Boyer Date: Mon Dec 7 15:02:42 2015 -0800 drm/i915: Remove BUG_ON call in vlv_enable_pll Do some further clean up based on the initial review of drm/i915: Separate cherryview from valleyview. In this case remove the BUG_ON call in vlv_enable_pll(). v2: Also remove the BUG_ON call in chv_enable_pll(). (Ville) Cc: Ville Syrjälä Cc: Rodrigo Vivi Signed-off-by: Wayne Boyer Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449529362-18193-1-git-send-email-wayne.boyer@intel.com Reviewed-by: Ville Syrjälä drivers/gpu/drm/i915/intel_display.c | 5 ----- 1 file changed, 5 deletions(-) commit 4d3e904ceb46bc91d68a47be930514b383227a87 Author: Wayne Boyer Date: Tue Dec 8 09:38:52 2015 -0800 drm/i915: Only set gem object L3 cache level for IVB devices Do some further clean up based on the initial review of drm/i915: Separate cherryview from valleyview. In this case, in i915_gem_alloc_context_obj() only call i915_gem_object_set_cache_level() for Ivy Bridge devices since later platforms don't have L3 control bits in the PTE. v2: Expand comment to mention snooping requirement. (Ville, Imre) Cc: Ville Syrjälä Cc: Rodrigo Vivi Signed-off-by: Wayne Boyer Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449596332-23470-1-git-send-email-wayne.boyer@intel.com Reviewed-by: Ville Syrjälä drivers/gpu/drm/i915/i915_gem_context.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit bf6ce93a73c0d70d0d524bc0bb59c5ae80088ea7 Author: Wayne Boyer Date: Mon Dec 7 10:51:08 2015 -0800 drm/i915: Remove VLV A0 hack Do some further clean up based on the initial review of drm/i915: Separate cherryview from valleyview. In this case remove a hack for VLV A0. Cc: Ville Syrjälä Cc: Rodrigo Vivi Signed-off-by: Wayne Boyer Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449514270-15171-4-git-send-email-wayne.boyer@intel.com Reviewed-by: Ville Syrjälä drivers/gpu/drm/i915/i915_gem.c | 8 -------- 1 file changed, 8 deletions(-) commit a7e478c76404a9146baf47981d6efe88318eec55 Author: Wayne Boyer Date: Mon Dec 7 10:51:07 2015 -0800 drm/i915: Use HAS_PCH_SPLIT to determine correct devices Do some further clean up based on the initial review of drm/i915: Separate cherryview from valleyview. In this case check for '(GEN7 || GEN8) && HAS_PCH_SPLIT' since we're reading FUSE_STRAP and SFUSE_STRAP which live in the PCH. Cc: Ville Syrjälä Cc: Rodrigo Vivi Signed-off-by: Wayne Boyer Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449514270-15171-3-git-send-email-wayne.boyer@intel.com Reviewed-by: Ville Syrjälä drivers/gpu/drm/i915/i915_dma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 666a45379e2c29bc16e60648e5ad8f6f8b7fa6ce Author: Wayne Boyer Date: Wed Dec 9 12:29:35 2015 -0800 drm/i915: Separate cherryview from valleyview The cherryview device shares many characteristics with the valleyview device. When support was added to the driver for cherryview, the corresponding device info structure included .is_valleyview = 1. This is not correct and leads to some confusion. This patch changes .is_valleyview to .is_cherryview in the cherryview device info structure and simplifies the IS_CHERRYVIEW macro. Then where appropriate, instances of IS_VALLEYVIEW are replaced with IS_VALLEYVIEW || IS_CHERRYVIEW or equivalent. v2: Use IS_VALLEYVIEW || IS_CHERRYVIEW instead of defining a new macro. Also add followup patches to fix issues discovered during the first review. (Ville) v3: Fix some style issues and one gen check. Remove CRT related changes as CRT is not supported on CHV. (Imre, Ville) v4: Make a few more optimizations. (Ville) Cc: Ville Syrjälä Cc: Rodrigo Vivi Signed-off-by: Wayne Boyer Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449692975-14803-1-git-send-email-wayne.boyer@intel.com Reviewed-by: Ville Syrjälä Acked-by: Jani Nikula drivers/gpu/drm/i915/i915_debugfs.c | 68 ++++++++++++++++----------------- drivers/gpu/drm/i915/i915_dma.c | 11 ++---- drivers/gpu/drm/i915/i915_drv.c | 10 ++--- drivers/gpu/drm/i915/i915_drv.h | 16 +++++--- drivers/gpu/drm/i915/i915_gem.c | 4 +- drivers/gpu/drm/i915/i915_gem_context.c | 2 +- drivers/gpu/drm/i915/i915_gem_gtt.c | 3 +- drivers/gpu/drm/i915/i915_irq.c | 8 ++-- drivers/gpu/drm/i915/i915_suspend.c | 4 +- drivers/gpu/drm/i915/i915_sysfs.c | 10 ++--- drivers/gpu/drm/i915/intel_audio.c | 7 ++-- drivers/gpu/drm/i915/intel_display.c | 54 ++++++++++++++------------ drivers/gpu/drm/i915/intel_dp.c | 40 +++++++++---------- drivers/gpu/drm/i915/intel_dsi.c | 14 +++---- drivers/gpu/drm/i915/intel_dsi_pll.c | 6 +-- drivers/gpu/drm/i915/intel_hdmi.c | 4 +- drivers/gpu/drm/i915/intel_hotplug.c | 2 +- drivers/gpu/drm/i915/intel_i2c.c | 2 +- drivers/gpu/drm/i915/intel_panel.c | 2 +- drivers/gpu/drm/i915/intel_pm.c | 8 ++-- drivers/gpu/drm/i915/intel_psr.c | 6 +-- drivers/gpu/drm/i915/intel_sprite.c | 4 +- drivers/gpu/drm/i915/intel_uncore.c | 4 +- 23 files changed, 147 insertions(+), 142 deletions(-) commit 74dba80913775c78a1e03221c9ea51027a8b7bcf Author: Markus Mayer Date: Wed Dec 9 14:56:12 2015 -0800 kconfig: allow kconfig to handle longer path names The current (arbitrary) limit of 128 characters for path names has proven too short for Android builds, as longer path names are used there. Change conf.c, so it can handle path lengths up to PATH_MAX characters. Signed-off-by: Markus Mayer Signed-off-by: Michal Marek scripts/kconfig/conf.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 825f272895b9ec9151399b4102739c899b0b6392 Author: Joonas Lahtinen Date: Wed Dec 9 15:56:13 2015 +0200 drm/i915: Cancel hangcheck before GPU is suspended In order to avoid accessing GPU registers while GPU is suspended cancel the hangcheck work before calling intel_suspend_complete which actually puts the GPU to suspend. Otherwise hangcheck might do MMIO reads to a suspended GPU. Placement before intel_guc_suspend is imitated from i915_drm_suspend which cancels the work at i915_gem_suspend, to keep the functions similar. On VLV systems, namely BYT, this was causing an error during runtime suspend cycle: [drm:vlv_check_no_gt_access [i915]] *ERROR* GT register access while GT waking disabled Testcase: igt/pm_rpm/basic-rte Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93121 Signed-off-by: Joonas Lahtinen Cc: Imre Deak Cc: Chris Wilson Link: http://patchwork.freedesktop.org/patch/msgid/1449669373-8588-1-git-send-email-joonas.lahtinen@linux.intel.com Reviewed-by: Imre Deak Reviewed-by: Chris Wilson Signed-off-by: Imre Deak drivers/gpu/drm/i915/i915_drv.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d64d02ce4ebaa79bf1c026e81a956f133938af65 Author: Anton Blanchard Date: Thu Dec 10 20:04:05 2015 +1100 powerpc: Call check_if_tm_restore_required() in enable_kernel_*() Commit a0e72cf12b1a ("powerpc: Create msr_check_and_{set,clear}()") removed a call to check_if_tm_restore_required() in the enable_kernel_*() functions. Add them back in. Fixes: a0e72cf12b1a ("powerpc: Create msr_check_and_{set,clear}()") Reported-by: Rashmica Gupta Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman arch/powerpc/kernel/process.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit 3d52ccf52f2c51f613e42e65be0f06e4e6788093 Author: Libin Yang Date: Wed Dec 2 14:09:44 2015 +0800 drm/i915: start adding dp mst audio This patch adds support for DP MST audio in i915. Enable audio codec when DP MST is enabled if has_audio flag is set. Disable audio codec when DP MST is disabled if has_audio flag is set. Another separated patches to support DP MST audio will be implemented in audio driver. Reviewed-by: Ander Conselvan de Oliveira Signed-off-by: Libin Yang Signed-off-by: Dave Airlie Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449036584-105393-2-git-send-email-libin.yang@linux.intel.com drivers/gpu/drm/i915/i915_debugfs.c | 16 ++++++++++++++++ drivers/gpu/drm/i915/intel_audio.c | 9 ++++++--- drivers/gpu/drm/i915/intel_ddi.c | 20 +++++++++++++++----- drivers/gpu/drm/i915/intel_dp_mst.c | 22 ++++++++++++++++++++++ drivers/gpu/drm/i915/intel_drv.h | 2 ++ 5 files changed, 61 insertions(+), 8 deletions(-) commit ef8f9bea1368b89d0d6d1819025586ae0bea0612 Author: Libin Yang Date: Wed Dec 2 14:09:43 2015 +0800 dp/mst: add SDP stream support This adds code to initialise the SDP streams for a sink in the simplest ordering. I've no idea how you'd want to control the ordering at this level, so don't bother until someone comes up with a use case. Reviewed-by: Ander Conselvan de Oliveira Signed-off-by: Libin Yang Signed-off-by: Dave Airlie Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449036584-105393-1-git-send-email-libin.yang@linux.intel.com drivers/gpu/drm/drm_dp_mst_topology.c | 38 ++++++++++++++++++++++++++++++++--- include/drm/drm_dp_mst_helper.h | 7 +++++-- 2 files changed, 40 insertions(+), 5 deletions(-) commit e8ebd8e2bd06e3509e1a4d65cbc7293d72897dd7 Author: Dave Gordon Date: Tue Dec 8 13:30:51 2015 +0000 drm/i915: eliminate 'temp' in gen8_for_each_{pdd, pdpe, pml4e} macros All of these iterator macros require a 'temp' argument, used merely to hold internal partial results. We can instead declare the temporary variable inside the macro, so the caller need not provide it. Some of the old code contained nested iterators that actually reused the same 'temp' variable for both inner and outer instances. It's quite surprising that this didn't introduce bugs! But it does show that the value of 'temp' isn't required to persist during the iterated body. Signed-off-by: Dave Gordon Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449581451-11848-2-git-send-email-david.s.gordon@intel.com drivers/gpu/drm/i915/i915_gem_gtt.c | 39 ++++++++++++++--------------- drivers/gpu/drm/i915/i915_gem_gtt.h | 49 +++++++++++++++++-------------------- 2 files changed, 41 insertions(+), 47 deletions(-) commit d18929e9fde30c4d57ae57eb9a7f6f10b5808ca1 Merge: a30c99a 0a4bb5d Author: Ingo Molnar Date: Thu Dec 10 09:10:40 2015 +0100 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: User visible changes: - Change default selection TUI background color to yellow (Ingo Molnar) Infrastructure changes: - Start paving the way to reuse some cmdline functions with other tools/ living utilities (Josh Poimboeuf) - Reference count fixes using the refcount debugger, unleaking some objects (Masami Hiramatsu) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 222ca7838214100fb2f1917bae78405bae7a2869 Author: Simon Horman Date: Fri Nov 27 10:52:45 2015 +0900 ARM: shmobile: r8a7793: Add missing serial devices to DT Instantiate all serial devices in r8a7793 device tree and set them as disabled by default. Based on similar work for the r8a7791 by Laurent Pinchart. Cc: Laurent Pinchart Signed-off-by: Simon Horman Acked-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7793.dtsi | 179 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 177 insertions(+), 2 deletions(-) commit 57d19f813177243382fbdc14fef06d19f0956228 Author: Geert Uytterhoeven Date: Tue Dec 8 18:54:15 2015 +0100 ARM: shmobile: lager dts: Add serial port config to chosen/stdout-path Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7790-lager.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bf20476991bbfa183e778463d0eadaed6111b989 Author: Geert Uytterhoeven Date: Tue Dec 8 18:54:17 2015 +0100 ARM: shmobile: porter dts: Add serial port config to chosen/stdout-path Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791-porter.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5995e9f0c58a7053fa56e93fd8366e68ee3242f7 Author: Geert Uytterhoeven Date: Tue Dec 8 18:54:18 2015 +0100 ARM: shmobile: silk dts: Add serial port config to chosen/stdout-path Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7794-silk.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 16010a3e13f7ede016ae9bdc5dbffa96a0a49d3b Author: Geert Uytterhoeven Date: Tue Dec 8 18:54:11 2015 +0100 ARM: shmobile: gose dts: Add serial port config to chosen/stdout-path Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7793-gose.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit db7730e3091a52c2fcd8fcc952b964d88998e675 Author: Theodore Ts'o Date: Thu Dec 10 00:57:58 2015 -0500 ext4 crypto: add missing locking for keyring_key access Cc: stable@kernel.org Signed-off-by: Theodore Ts'o fs/ext4/crypto_key.c | 4 ++++ 1 file changed, 4 insertions(+) commit 0d8587b49a445d11e497fbe296576e7ab7c54109 Author: Geert Uytterhoeven Date: Mon Nov 30 14:35:34 2015 +0100 ARM: shmobile: defconfig: Enable CONFIG_PRINTK_TIME Enable timestamps for kernel log output to improve debugging. You can always use "dmesg -t" to strip the timestamps. Don't specify CONFIG_LOG_BUF_SHIFT=16 while we're at it. There's a reason the default in Kconfig is higher ;-) Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/configs/shmobile_defconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f84a9cbb173946754712b366524fc4f5fb744424 Author: Geert Uytterhoeven Date: Tue Dec 8 18:54:09 2015 +0100 ARM: shmobile: bockw dts: Update console parameters Drop the "console=" parameter from the kernel command line, as it's no longer needed for DT-based platforms. Add serial port config to chosen/stdout-path. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7778-bockw.dts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6deac6d0b931825081c5894d186abd1c6ec4c524 Author: Geert Uytterhoeven Date: Tue Dec 8 18:54:07 2015 +0100 ARM: shmobile: ape6evm dts: Add serial port config to chosen/stdout-path Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a73a4-ape6evm.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b575f99486b938a1720d961e73ec7aabb259ffd0 Author: Geert Uytterhoeven Date: Tue Dec 8 18:54:06 2015 +0100 ARM: shmobile: alt dts: Add serial port config to chosen/stdout-path Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7794-alt.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 832dae1fcb72adff9e28eee9b768786fc7a0e0a9 Author: Geert Uytterhoeven Date: Tue Dec 8 18:54:12 2015 +0100 ARM: shmobile: koelsch dts: Add serial port config to chosen/stdout-path Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791-koelsch.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit aea08a5dfadf387153cdbbff89f775b0e19d32e4 Author: M'boumba Cedric Madianga Date: Mon Dec 7 12:00:28 2015 +0100 dmaengine: stm32-dma: Fix unchecked deference of chan->desc 'commit d8b468394fb7 ("dmaengine: Add STM32 DMA driver")' leads to the following Smatch complaint: drivers/dma/stm32-dma.c:562 stm32_dma_issue_pending() error: we previously assumed 'chan->desc' could be null (see line 560) So, this patch fixes the unchecked dereference of chan->desc by returning operation not permitted error when stm32_dma_start_transfer() does not succeed to allocate a virtual channel descriptor. Reported-by: Dan Carpenter Signed-off-by: M'boumba Cedric Madianga Signed-off-by: Vinod Koul drivers/dma/stm32-dma.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4d42e95fc789393d267bbab8b4684936c1529378 Author: Geert Uytterhoeven Date: Fri Dec 4 16:56:29 2015 +0100 dmaengine: sh: Remove unused R-Car HPB-DMAC driver As of commit 4baadb9e05c68962 ("ARM: shmobile: r8a7778: remove obsolete setup code"), the Renesas R-Car HPB-DMAC driver is no longer used. In theory it could still be used on R-Car Gen1 SoCs, but that requires adding DT support to the driver, which is not planned. Remove the driver, it can be resurrected from git history when needed. Signed-off-by: Geert Uytterhoeven Acked-by: Simon Horman Signed-off-by: Vinod Koul drivers/dma/sh/Kconfig | 6 - drivers/dma/sh/Makefile | 1 - drivers/dma/sh/rcar-hpbdma.c | 669 -------------------------- include/linux/platform_data/dma-rcar-hpbdma.h | 103 ---- 4 files changed, 779 deletions(-) commit 0b2eed49875ec3605b7a71bdf05adc8c1cbd49fc Author: Simon Horman Date: Wed Dec 2 14:53:54 2015 +0900 dmaengine: usb-dmac: Document SoC specific compatibility strings In general Renesas hardware is not documented to the extent where the relationship between IP blocks on different SoCs can be assumed although they may appear to operate the same way. Furthermore the documentation typically does not specify a version for individual IP blocks. For these reasons a convention of using the SoC name in place of a version and providing SoC-specific compatibility strings has been adopted. Although not universally liked this convention is used in the bindings for most drivers for Renesas hardware. The purpose of this patch is to update the Renesas USB DMA Controller driver to follow this convention. Cc: devicetree@vger.kernel.org Acked-by: Rob Herring Acked-by: Yoshihiro Shimoda Signed-off-by: Simon Horman Signed-off-by: Vinod Koul Documentation/devicetree/bindings/dma/renesas,usb-dmac.txt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit aeb8974ac70f07659b7e5b6fca5bf4d5b4495d4d Author: Markus Elfring Date: Mon Nov 16 22:00:28 2015 +0100 ste_dma40: Delete an unnecessary variable initialisation in d40_probe() The variable "res" will eventually be set to a resource pointer from a call of the d40_hw_detect_init(() function. Thus let us omit the explicit initialisation at the beginning. Signed-off-by: Markus Elfring Acked-by: Linus Walleij Signed-off-by: Vinod Koul drivers/dma/ste_dma40.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a9bae06dd05fc8262e7430b2e70ebc49d3e68488 Author: Markus Elfring Date: Mon Nov 16 21:56:07 2015 +0100 ste_dma40: Delete another unnecessary check in d40_probe() A single jump label was used by the d40_probe() function in several cases for error handling which was a bit inefficient here. * This implementation detail could be improved by the introduction of another jump label. * Remove an extra check for the variable "base". * Omit its explicit initialisation at the beginning then. Signed-off-by: Markus Elfring Acked-by: Linus Walleij Signed-off-by: Vinod Koul drivers/dma/ste_dma40.c | 82 ++++++++++++++++++++++++------------------------- 1 file changed, 40 insertions(+), 42 deletions(-) commit e0f8c58003de9691a2cf4569aaa65361587dbc1e Author: Markus Elfring Date: Mon Nov 16 20:26:27 2015 +0100 ste_dma40: Delete an unnecessary check before the function call "kmem_cache_destroy" The kmem_cache_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 Acked-by: Linus Walleij Signed-off-by: Vinod Koul drivers/dma/ste_dma40.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit af3855dd191799a797e80dc55ecd5a9a226c3e2c Author: Simon Arlott Date: Wed Dec 9 20:43:54 2015 +0000 mtd: brcmnand: Add support for the BCM6368 The BCM6368 has a NAND interrupt register with combined status and enable registers. As the BCM6328, BCM6362 and BCM6368 all use v2.1 controllers, the first variant that will work with this driver is the BCM63268 using a v4.0 controller. Set up the device by disabling and acking all interrupts, then handle the CTRL_READY interrupt. Signed-off-by: Simon Arlott Reviewed-by: Florian Fainelli Signed-off-by: Brian Norris drivers/mtd/nand/brcmnand/Makefile | 1 + drivers/mtd/nand/brcmnand/bcm6368_nand.c | 145 +++++++++++++++++++++++++++++++ 2 files changed, 146 insertions(+) commit 5c05bc00721bbe223ce93d8873ac42c8170d809c Author: Simon Arlott Date: Wed Dec 9 20:42:25 2015 +0000 mtd: brcmnand: Request and enable the clock if present Attempt to enable a clock named "nand" as some SoCs have a clock for the controller that needs to be enabled. Signed-off-by: Simon Arlott Reviewed-by: Florian Fainelli Signed-off-by: Brian Norris drivers/mtd/nand/brcmnand/brcmnand.c | 64 ++++++++++++++++++++++++++++-------- 1 file changed, 50 insertions(+), 14 deletions(-) commit d135d1c158618c73346a898b6a08018013e43715 Author: Simon Arlott Date: Wed Dec 9 20:40:58 2015 +0000 doc: dt: mtd: brcmnand: Add brcm,bcm6368-nand device tree binding Add device tree binding for NAND on the BCM6368. The BCM6368 has a NAND interrupt register with combined status and enable registers. It also requires a clock, so add an optional clock to the common brcmnand binding. Signed-off-by: Simon Arlott Reviewed-by: Florian Fainelli Acked-by: Rob Herring Signed-off-by: Brian Norris .../devicetree/bindings/mtd/brcm,brcmnand.txt | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) commit d5c5620167d0fde476a0c0d8bb1f5751bcc1e495 Author: Geert Uytterhoeven Date: Tue Dec 8 18:40:59 2015 +0100 mtd: nand: Confine MTD_NAND_SH_FLCTL to SUPERH As of commit a521422ea4ae6128 ("ARM: shmobile: mackerel: Remove Legacy C board code"), the Renesas SuperH FLCTL driver is no longer used on ARM SH-Mobile SoCs. Restrict the dependencies, unless compile-testing. Signed-off-by: Geert Uytterhoeven Signed-off-by: Brian Norris drivers/mtd/nand/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f49289ce64b7f7da4d7129666854b499b9d415eb Author: Fabio Estevam Date: Fri Nov 20 16:26:11 2015 -0200 mtd: spi-nor: Check the return value from read_sr() We should better check the return value from read_sr() and propagate it in the case of error. Signed-off-by: Fabio Estevam Signed-off-by: Brian Norris drivers/mtd/spi-nor/spi-nor.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit d893656e61040f3ff7b5f72a986052a348f3c94e Author: Tony Lindgren Date: Thu Dec 3 12:02:32 2015 -0800 ARM: OMAP2+: Remove useless check for legacy booting for dm814x We have never had dm814x booting properly with mainline kernel using the legacy platform data based booting. Current minimal support is device tree only. Signed-off-by: Tony Lindgren arch/arm/mach-omap2/io.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 3022b29df67729c42acbd20f6c3e5ba8f8b60741 Author: Tony Lindgren Date: Thu Dec 3 12:02:32 2015 -0800 ARM: OMAP2+: Enable GPIO for dm814x With the basic clocks now working we can enable GPIO. Cc: Paul Walmsley Signed-off-by: Tony Lindgren arch/arm/mach-omap2/omap_hwmod_81xx_data.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9621557fc31f5e42f026217d67db023ebfe903c9 Author: Tony Lindgren Date: Thu Dec 3 12:02:32 2015 -0800 ARM: dts: Fix dm814x pinctrl address and mask Otherwise pinctrl won't work. Because of silicon errata for some dm814x versions, let's also keep bit 18 out of the function-mask and rely on the bootloader configuration for bit 18 as suggested by Matthijs van Duin . Devices with that need to use bit 18 can override the function-mask in the board specific dts file if really needed. Signed-off-by: Tony Lindgren arch/arm/boot/dts/dm814x.dtsi | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 3a91b0616a97c1cdfc5955082c5999663defd54e Author: Tony Lindgren Date: Thu Dec 3 12:02:32 2015 -0800 ARM: dts: Fix dm8148 control modules ranges The control module is at offset 0x14000 with size 0x20000, not 0x16000. This causes the pinctrl driver to not work. Let's also fix the comments related to the TRM "L4LS Instance Summary" table as that's what's causing the bad entries. Signed-off-by: Tony Lindgren arch/arm/boot/dts/dm814x.dtsi | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit cb4db0381a9330640a036076c0d5457d39af38ab Author: Tony Lindgren Date: Thu Dec 3 12:02:31 2015 -0800 ARM: OMAP2+: Fix timer entries for dm814x There's a mux after the oscillator similar to am335x. I did not notice this on hp t410 as it boots even with no clocks configured. Cc: Paul Walmsley Signed-off-by: Tony Lindgren arch/arm/mach-omap2/omap_hwmod_81xx_data.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 9079446dbca399f786f2e580944c011b3072b766 Author: Tony Lindgren Date: Thu Dec 3 12:02:31 2015 -0800 ARM: dts: Fix some mux and divider clocks to get dm814x-evm booting Although we have hp t410 booting, I noticed that dm814x-evm does not boot after I got one. This is because we don't have the clocks yet configured properly. Let's start configuring proper clocks starting with the system timers and clocks that work with existing mux and divider clock drivers. Note that the oscillator speed register is different from am335x, dm814x has only one bit that shows the BTMODE[6] at CONTROL_STATUS[21]. Also note that this only gets the system timers working with the defined clocks. The PLL clocks are still missing and and the devices may or may not work depending on what the bootloader has enabled. Signed-off-by: Tony Lindgren arch/arm/boot/dts/dm814x-clocks.dtsi | 109 +++++++++++++++++++++++++---------- 1 file changed, 79 insertions(+), 30 deletions(-) commit 4e34df0cba14e95e941bf73721352fa4d9c2622f Author: Tony Lindgren Date: Thu Dec 3 12:02:31 2015 -0800 ARM: OMAP2+: Add DPPLS clock manager for dm814x On dm814x we have some clocks at DPLLS and some at PRCM. Let's add a new omap_prcm_init_data entry for the DPLLS so we can initalize timer clocks early. Cc: Paul Walmsley Cc: Tero Kristo Signed-off-by: Tony Lindgren arch/arm/mach-omap2/prm_common.c | 6 ++++++ include/linux/clk/ti.h | 1 + 2 files changed, 7 insertions(+) commit 24c96dc79c5e76d3cff7a33f955a4d3244644766 Author: Maruthi Bayyavarapu Date: Wed Nov 18 01:12:00 2015 +0530 PM / Domains: export symbols to add/remove devices from genpd Drivers which can be built as loadable module needs symbols - pm_genpd_add_device/pm_genpd_remove_device to add/remove devices to/from genpd. Those drivers create platform devices, which comes under a powerdomain. Signed-off-by: Maruthi Bayyavarapu Acked-by: Pavel Machek Signed-off-by: Rafael J. Wysocki drivers/base/power/domain.c | 2 ++ 1 file changed, 2 insertions(+) commit 696066f875bc86d0a9cdcf9cbc4846d89b1f38db Author: Thomas Huth Date: Wed Dec 9 11:34:07 2015 +0100 KVM: PPC: Increase memslots to 512 Only using 32 memslots for KVM on powerpc is way too low, you can nowadays hit this limit quite fast by adding a couple of PCI devices and/or pluggable memory DIMMs to the guest. x86 already increased the KVM_USER_MEM_SLOTS to 509, to satisfy 256 pluggable DIMM slots, 3 private slots and 253 slots for other things like PCI devices (i.e. resulting in 256 + 3 + 253 = 512 slots in total). We should do something similar for powerpc, and since we do not use private slots here, we can set the value to 512 directly. While we're at it, also remove the KVM_MEM_SLOTS_NUM definition from the powerpc-specific header since this gets defined in the generic kvm_host.h header anyway. Signed-off-by: Thomas Huth Signed-off-by: Paul Mackerras arch/powerpc/include/asm/kvm_host.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit b1815fd949e5bd06d118019acf68f87c9414f705 Author: Alexander Aring Date: Wed Dec 9 22:46:30 2015 +0100 6lowpan: add debugfs support This patch will introduce a 6lowpan entry into the debugfs if enabled. Inside this 6lowpan directory we create a subdirectories of all 6lowpan interfaces to offer a per interface debugfs support. Reviewed-by: Stefan Schmidt Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann include/net/6lowpan.h | 3 +++ net/6lowpan/6lowpan_i.h | 28 ++++++++++++++++++++++++++ net/6lowpan/Kconfig | 8 ++++++++ net/6lowpan/Makefile | 1 + net/6lowpan/core.c | 28 +++++++++++++++++++++++++- net/6lowpan/debugfs.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 120 insertions(+), 1 deletion(-) commit 00f59314111a6b18ee65b238b38c470dbdbf3be5 Author: Alexander Aring Date: Wed Dec 9 22:46:29 2015 +0100 6lowpan: add lowpan dev register helpers This patch introduces register and unregister functionality for lowpan interfaces. While register a lowpan interface there are several things which need to be initialize by the 6lowpan subsystem. Upcoming functionality need to register/unregister per interface components e.g. debugfs entry. Reviewed-by: Stefan Schmidt Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann include/net/6lowpan.h | 7 ++++++- net/6lowpan/core.c | 33 +++++++++++++++++++++++++++++++-- net/bluetooth/6lowpan.c | 8 +++----- net/ieee802154/6lowpan/core.c | 6 ++---- 4 files changed, 42 insertions(+), 12 deletions(-) commit 43f26e17d02f5c772cedc3ee16b192ed79764474 Author: Stefan Schmidt Date: Wed Dec 9 22:46:28 2015 +0100 6lowpan: add nhc module for GHC routing extension header detection Acked-by: Jukka Rissanen Signed-off-by: Stefan Schmidt Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann net/6lowpan/Kconfig | 6 ++++++ net/6lowpan/Makefile | 1 + net/6lowpan/nhc_ghc_ext_route.c | 27 +++++++++++++++++++++++++++ 3 files changed, 34 insertions(+) commit 2f4799478c94928802c79edd12711a0e9e8b6f1b Author: Stefan Schmidt Date: Wed Dec 9 22:46:27 2015 +0100 6lowpan: add nhc module for GHC fragmentation extension header detection Acked-by: Jukka Rissanen Signed-off-by: Stefan Schmidt Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann net/6lowpan/Kconfig | 6 ++++++ net/6lowpan/Makefile | 1 + net/6lowpan/nhc_ghc_ext_frag.c | 28 ++++++++++++++++++++++++++++ 3 files changed, 35 insertions(+) commit 20616a5a1e3bb47c385c6d5f27520e7a3cc82864 Author: Stefan Schmidt Date: Wed Dec 9 22:46:26 2015 +0100 6lowpan: add nhc module for GHC destination extension header detection Acked-by: Jukka Rissanen Signed-off-by: Stefan Schmidt Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann net/6lowpan/Kconfig | 6 ++++++ net/6lowpan/Makefile | 1 + net/6lowpan/nhc_ghc_ext_dest.c | 27 +++++++++++++++++++++++++++ 3 files changed, 34 insertions(+) commit c39da3bb5b978ca03f1702c99965f3db1204516a Author: Stefan Schmidt Date: Wed Dec 9 22:46:25 2015 +0100 6lowpan: add nhc module for GHC ICMPv6 detection Acked-by: Jukka Rissanen Signed-off-by: Stefan Schmidt Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann net/6lowpan/Kconfig | 5 +++++ net/6lowpan/Makefile | 1 + net/6lowpan/nhc_ghc_icmpv6.c | 27 +++++++++++++++++++++++++++ 3 files changed, 33 insertions(+) commit 70cc86752e59ec26fcd31679b1eef23e8cb4b516 Author: Stefan Schmidt Date: Wed Dec 9 22:46:24 2015 +0100 6lowpan: add nhc module for GHC UDP detection Acked-by: Jukka Rissanen Signed-off-by: Stefan Schmidt Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann net/6lowpan/Kconfig | 5 +++++ net/6lowpan/Makefile | 1 + net/6lowpan/nhc_ghc_udp.c | 27 +++++++++++++++++++++++++++ 3 files changed, 33 insertions(+) commit 7e568f50c19c731938fee24a0f048f35120080f3 Author: Stefan Schmidt Date: Wed Dec 9 22:46:23 2015 +0100 6lowpan: add nhc module for GHC hop-by-hopextension header detection Acked-by: Jukka Rissanen Signed-off-by: Stefan Schmidt Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann net/6lowpan/Kconfig | 6 ++++++ net/6lowpan/Makefile | 3 +++ net/6lowpan/nhc_ghc_ext_hop.c | 27 +++++++++++++++++++++++++++ 3 files changed, 36 insertions(+) commit 5e5c08cbee7d75d026ff50a5051f2ed19b4ba301 Author: Stefan Schmidt Date: Wed Dec 9 22:46:22 2015 +0100 6lowpan: clarify Kconfig entries for upcoming GHC support Acked-by: Jukka Rissanen Signed-off-by: Stefan Schmidt Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann net/6lowpan/Kconfig | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 63d1d656a5232f2f189b217b50542eadcf9d74ae Author: Philippe Longepe Date: Fri Dec 4 17:40:35 2015 +0100 cpufreq: intel_pstate: Account for IO wait time In cases where we have many IOs, the global load becomes low and the load algorithm will decrease the requested P-State. Because of that, the IOs overheads will increase and impact the IO performances. To improve IO bound work, we can count the io-wait time as busy time in calculating CPU busy. This change uses get_cpu_iowait_time_us() to obtain the IO wait time value and converts time into number of cycles spent waiting on IO at the TSC rate. At the moment, this trick is only used for Atom. Signed-off-by: Philippe Longepe Signed-off-by: Stephane Gasparini Signed-off-by: Rafael J. Wysocki drivers/cpufreq/intel_pstate.c | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) commit e70eed2b64545ab5c9d2f4d43372d79762f1b985 Author: Philippe Longepe Date: Fri Dec 4 17:40:32 2015 +0100 cpufreq: intel_pstate: Account for non C0 time The current function to calculate cpu utilization uses the average P-state ratio (APerf/Mperf) scaled by the ratio of the current P-state to the max available non-turbo one. This leads to an overestimation of utilization which causes higher-performance P-states to be selected more often and that leads to increased energy consumption. This is a problem for low-power systems, so it is better to use a different utilization calculation algorithm for them. Namely, the Percent Busy value (or load) can be estimated as the ratio of the MPERF counter that runs at a constant rate only during active periods (C0) to the time stamp counter (TSC) that also runs (at the same rate) during idle. That is: Percent Busy = 100 * (delta_mperf / delta_tsc) Use this algorithm for platforms with SoCs based on the Airmont and Silvermont Atom cores. Signed-off-by: Philippe Longepe Signed-off-by: Stephane Gasparini Signed-off-by: Rafael J. Wysocki drivers/cpufreq/intel_pstate.c | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) commit 157386b6fc1465f292b66c4133409033650ad335 Author: Philippe Longepe Date: Fri Dec 4 17:40:30 2015 +0100 cpufreq: intel_pstate: Configurable algorithm to get target pstate Target systems using different cpus have different power and performance requirements. They may use different algorithms to get the next P-state based on their power or performance preference. For example, power-constrained systems may not want to use high-performance P-states as aggressively as a full-size desktop or a server platform. A server platform may want to run close to the max to achieve better performance, while laptop-like systems may prefer sacrificing performance for longer battery lifes. For the above reasons, modify intel_pstate to allow the target P-state selection algorithm to be depend on the CPU ID. Signed-off-by: Srinivas Pandruvada Signed-off-by: Philippe Longepe Signed-off-by: Rafael J. Wysocki drivers/cpufreq/intel_pstate.c | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) commit 79be093500791cc25cc31bcaec5a4db62e21497b Author: Casey Schaufler Date: Mon Dec 7 14:34:32 2015 -0800 Smack: File receive for sockets The existing file receive hook checks for access on the file inode even for UDS. This is not right, as the inode is not used by Smack to make access checks for sockets. This change checks for an appropriate access relationship between the receiving (current) process and the socket. If the process can't write to the socket's send label or the socket's receive label can't write to the process fail. This will allow the legitimate cases, where the socket sender and socket receiver can freely communicate. Only strangly set socket labels should cause a problem. Signed-off-by: Casey Schaufler security/smack/smack_lsm.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit 6c483de1b3c41e939b735df1861759815e125304 Author: Loic Poulain Date: Sun Dec 6 16:18:34 2015 +0100 Bluetooth: btintel: Create common Intel Version Read function The Intel Version Read command is used to retrieve information about hardware and firmware version/revision of Intel Bluetooth controllers. This is an Intel generic command used in USB and UART drivers. Signed-off-by: Loic Poulain Signed-off-by: Marcel Holtmann drivers/bluetooth/btintel.c | 25 ++++++++++++++ drivers/bluetooth/btintel.h | 7 ++++ drivers/bluetooth/btusb.c | 80 +++++++++++++------------------------------ drivers/bluetooth/hci_intel.c | 46 ++++++------------------- 4 files changed, 66 insertions(+), 92 deletions(-) commit 1a11ec89dba7bcfb1cb502fc5945533f317ddd03 Author: Yichen Zhao Date: Tue Dec 1 11:11:01 2015 -0800 Bluetooth: Fix locking in bt_accept_dequeue after disconnection Fix a crash that may happen when bt_accept_dequeue is run after a Bluetooth connection has been disconnected. bt_accept_unlink was called after release_sock, permitting bt_accept_unlink to run twice on the same socket and cause a NULL pointer dereference. [50510.241632] BUG: unable to handle kernel NULL pointer dereference at 00000000000001a8 [50510.241694] IP: [] bt_accept_unlink+0x47/0xa0 [bluetooth] [50510.241759] PGD 0 [50510.241776] Oops: 0002 [#1] SMP [50510.241802] Modules linked in: rtl8192cu rtl_usb rtlwifi rtl8192c_common 8021q garp stp mrp llc rfcomm bnep nls_iso8859_1 intel_rapl x86_pkg_temp_thermal intel_powerclamp coretemp arc4 ath9k ath9k_common ath9k_hw ath kvm eeepc_wmi asus_wmi mac80211 snd_hda_codec_hdmi snd_hda_codec_realtek sparse_keymap crct10dif_pclmul snd_hda_codec_generic crc32_pclmul snd_hda_intel snd_hda_controller cfg80211 snd_hda_codec i915 snd_hwdep snd_pcm ghash_clmulni_intel snd_timer snd soundcore serio_raw cryptd drm_kms_helper drm i2c_algo_bit shpchp ath3k mei_me lpc_ich btusb bluetooth 6lowpan_iphc mei lp parport wmi video mac_hid psmouse ahci libahci r8169 mii [50510.242279] CPU: 0 PID: 934 Comm: krfcommd Not tainted 3.16.0-49-generic #65~14.04.1-Ubuntu [50510.242327] Hardware name: ASUSTeK Computer INC. VM40B/VM40B, BIOS 1501 12/09/2014 [50510.242370] task: ffff8800d9068a30 ti: ffff8800d7a54000 task.ti: ffff8800d7a54000 [50510.242413] RIP: 0010:[] [] bt_accept_unlink+0x47/0xa0 [bluetooth] [50510.242480] RSP: 0018:ffff8800d7a57d58 EFLAGS: 00010246 [50510.242511] RAX: 0000000000000000 RBX: ffff880119bb8c00 RCX: ffff880119bb8eb0 [50510.242552] RDX: ffff880119bb8eb0 RSI: 00000000fffffe01 RDI: ffff880119bb8c00 [50510.242592] RBP: ffff8800d7a57d60 R08: 0000000000000283 R09: 0000000000000001 [50510.242633] R10: 0000000000000000 R11: 0000000000000000 R12: ffff8800d8da9eb0 [50510.242673] R13: ffff8800d74fdb80 R14: ffff880119bb8c00 R15: ffff8800d8da9c00 [50510.242715] FS: 0000000000000000(0000) GS:ffff88011fa00000(0000) knlGS:0000000000000000 [50510.242761] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [50510.242794] CR2: 00000000000001a8 CR3: 0000000001c13000 CR4: 00000000001407f0 [50510.242835] Stack: [50510.242849] ffff880119bb8eb0 ffff8800d7a57da0 ffffffffc0124506 ffff8800d8da9eb0 [50510.242899] ffff8800d8da9c00 ffff8800d9068a30 0000000000000000 ffff8800d74fdb80 [50510.242949] ffff8800d6f85208 ffff8800d7a57e08 ffffffffc0159985 000000000000001f [50510.242999] Call Trace: [50510.243027] [] bt_accept_dequeue+0xb6/0x180 [bluetooth] [50510.243085] [] l2cap_sock_accept+0x125/0x220 [bluetooth] [50510.243128] [] ? wake_up_state+0x20/0x20 [50510.243163] [] kernel_accept+0x4e/0xa0 [50510.243200] [] rfcomm_run+0x1ad/0x890 [rfcomm] [50510.243238] [] ? rfcomm_process_rx+0x8a0/0x8a0 [rfcomm] [50510.243281] [] kthread+0xd2/0xf0 [50510.243312] [] ? kthread_create_on_node+0x1c0/0x1c0 [50510.243353] [] ret_from_fork+0x58/0x90 [50510.243387] [] ? kthread_create_on_node+0x1c0/0x1c0 [50510.243424] Code: 00 48 8b 93 b8 02 00 00 48 8d 83 b0 02 00 00 48 89 51 08 48 89 0a 48 89 83 b0 02 00 00 48 89 83 b8 02 00 00 48 8b 83 c0 02 00 00 <66> 83 a8 a8 01 00 00 01 48 c7 83 c0 02 00 00 00 00 00 00 f0 ff [50510.243685] RIP [] bt_accept_unlink+0x47/0xa0 [bluetooth] [50510.243737] RSP [50510.243758] CR2: 00000000000001a8 [50510.249457] ---[ end trace bb984f932c4e3ab3 ]--- Signed-off-by: Yichen Zhao Signed-off-by: Marcel Holtmann net/bluetooth/af_bluetooth.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit acb9f911ea1f828822001d72b21f7cc06e6718c7 Author: Johan Hedberg Date: Thu Dec 3 12:45:20 2015 +0200 Bluetooth: Don't treat connection timeout as a failure When we're doing background scanning and connection attempts it's possible we timeout trying to connect and go back to scanning again. The timeout triggers a HCI_LE_Create_Connection_Cancel which will trigger a Connection Complete with "Unknown Connection Identifier" error status. Since we go back to scanning this isn't really a failure and shouldn't be presented as such to user space through mgmt. The exception to this is if the connection attempt was due to an explicit request on an L2CAP socket (indicated by params->explicit_connect being true). Since the socket will get an error it's consistent to also notify the failure on mgmt in this case. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_conn.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 2f99536a5b34d5b0f54723067d68f6cef3f0fdc6 Author: Johan Hedberg Date: Thu Dec 3 12:45:19 2015 +0200 Bluetooth: Use continuous scanning when creating LE connections All LE connections are now triggered through a preceding passive scan and waiting for a connectable advertising report. This means we've got the best possible guarantee that the device is within range and should be able to request the controller to perform continuous scanning. This way we minimize the risk that we miss out on any advertising packets. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann Cc: stable@vger.kernel.org # 4.3+ net/bluetooth/hci_conn.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 28dc4b92e20e0fd18be2d8356abf959d58c7346a Author: Loic Poulain Date: Thu Dec 3 16:10:22 2015 +0100 Bluetooth: btintel: Add manufacturing enter/exit helpers Older Intel controllers need to enter manufacturing mode to perform some vendor specific operations (patching, configuration...). Add enter/exit manufaturing methods and refactor existing manufacturing code. Exit can be configured to perform a reset. Reset can be performed either with patches activated or deactivated. Signed-off-by: Loic Poulain Signed-off-by: Marcel Holtmann drivers/bluetooth/btintel.c | 114 +++++++++++++++++++++++--------------------- drivers/bluetooth/btintel.h | 12 +++++ drivers/bluetooth/btusb.c | 54 ++++++--------------- 3 files changed, 86 insertions(+), 94 deletions(-) commit 1623d0bf847d3b38d8cf24367b3689ba0e3fe2aa Author: Dmitry Tunin Date: Sat Dec 5 14:09:36 2015 +0300 Bluetooth: Add support of Toshiba Broadcom based devices BugLink: https://bugs.launchpad.net/bugs/1522949 T: Bus=03 Lev=02 Prnt=02 Port=05 Cnt=02 Dev#= 4 Spd=12 MxCh= 0 D: Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=0930 ProdID=0225 Rev=01.12 S: Manufacturer=Broadcom Corp S: Product=BCM43142A0 S: SerialNumber=4CBB58034671 C: #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none) I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none) I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none) I: If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none) Signed-off-by: Dmitry Tunin Signed-off-by: Marcel Holtmann Cc: stable@vger.kernel.org drivers/bluetooth/btusb.c | 4 ++++ 1 file changed, 4 insertions(+) commit a0c38245153abe1fd844af9b166d1a5d5dafe7b1 Author: Loic Poulain Date: Fri Nov 27 19:55:59 2015 +0100 Bluetooth: hci_intel: Use shorter timeout for HCI commands Use the standard HCI_CMD_TIMEOUT(1s) for HCI command instead of HCI_INIT_TIMEOUT(10s) which is not justified in these cases. Signed-off-by: Loic Poulain Signed-off-by: Marcel Holtmann drivers/bluetooth/hci_intel.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit e6e981c74234a6f4e1414ba11ca9746850f261a9 Author: Peter Hurley Date: Fri Nov 27 16:39:00 2015 -0500 Bluetooth: hci_ldisc: Remove dead code The N_HCI ldisc does not define a flush_buffer() ldisc method, so the check when opening the ldisc is always false. Signed-off-by: Peter Hurley Signed-off-by: Marcel Holtmann drivers/bluetooth/hci_ldisc.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit cab054ab47fa3fdf1c597a9874363680bfdab33e Author: Johan Hedberg Date: Mon Nov 30 11:21:45 2015 +0200 Bluetooth: Clean up current advertising instance tracking We can simplify a lot of code by making sure hdev->cur_adv_instance is always up-to-date. This allows e.g. the removal of the get_current_adv_instance() helper function and the special HCI_ADV_CURRENT value. This patch also makes selecting instance 0x00 explicit in the various calls where advertising instances aren't enabled, e.g. when HCI_ADVERTISING is set or we've just finished enabling LE. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_core.c | 12 +++++--- net/bluetooth/hci_request.c | 68 ++++++++++----------------------------------- net/bluetooth/hci_request.h | 8 ++---- net/bluetooth/mgmt.c | 10 ++++--- 4 files changed, 32 insertions(+), 66 deletions(-) commit d6b7e2cddb72a87c2597af43ba9f5f2b03a2208b Author: Johan Hedberg Date: Mon Nov 30 11:21:44 2015 +0200 Bluetooth: Clean up advertising initialization in powered_update_hci() The logic in powered_update_hci() to initialize the advertising data & state is a bit more complicated than it needs to be. It was previously not doing anything if HCI_LE_ENABLED wasn't set, but this was not obvious by quickly looking at the code. Now the conditions for the various actions are more explicit. Another simplification is due to the fact that __hci_req_schedule_adv_instance() takes care of setting hdev->cur_adv_instance so there's no need to set it before calling the function. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_request.c | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) commit 550a8ca765a154ca38dcd888b4f12a173e761bdc Author: Johan Hedberg Date: Fri Nov 27 11:11:52 2015 +0200 Bluetooth: Remove redundant check for req.cmd_q The hci_req_run() function already checks for empty cmd_q and bails out if necessary. Also, req.cmd_q should really be treated as private data of the request and not accessed directly. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_request.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit d6dac32e84e407ba15f257b5df2f4cb263005ab4 Author: Johan Hedberg Date: Fri Nov 27 10:52:39 2015 +0200 Bluetooth: Fix updating wrong instance's scan_rsp data The __hci_req_update_scan_rsp_data gets the instance to be updated which should get passed to update_inst_scan_rsp_data() instead of always enabling the current instance. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_request.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 742c59516822f4a4bc23b0961d88c569a7f1bf71 Author: Andrei Emeltchenko Date: Thu Nov 26 16:49:34 2015 +0200 Bluetooth: Simplify setting Configuration Field Only Sliding Window Size is used at the moment for H5 Bluetooth Configuration messages. Signed-off-by: Andrei Emeltchenko Signed-off-by: Marcel Holtmann drivers/bluetooth/hci_h5.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 1d3a1e69adde1f854d3fdeda64019b54189a390c Author: Andrei Emeltchenko Date: Thu Nov 26 16:49:33 2015 +0200 Bluetooth: Use hexadecimal notation for mask Using hexadecimal notation for mask makes code easier to read Signed-off-by: Andrei Emeltchenko Signed-off-by: Marcel Holtmann drivers/bluetooth/hci_h5.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 17fd08ffb5981cff2c921eb479f46b872b02b2b9 Author: Johan Hedberg Date: Thu Nov 26 12:15:59 2015 +0200 Bluetooth: Remove unnecessary HCI_ADVERTISING_INSTANCE flag This flag just tells us whether hdev->adv_instances is empty or not. We can equally well use the list_empty() function to get this information. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann include/net/bluetooth/hci.h | 1 - net/bluetooth/hci_request.c | 19 ++++++++----------- net/bluetooth/mgmt.c | 8 +------- 3 files changed, 9 insertions(+), 19 deletions(-) commit 02c04afea93fbba7925984df455bc63e7d92da97 Author: Johan Hedberg Date: Thu Nov 26 12:15:58 2015 +0200 Bluetooth: Simplify read_adv_features code The code in the Read Advertising Features mgmt command handler is unnecessarily complicated. Clean it up and remove unnecessary variables & branches. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/mgmt.c | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-) commit 2ff13894cfb877cb3d02d96a8402202f0a6f3efd Author: Johan Hedberg Date: Wed Nov 25 16:15:44 2015 +0200 Bluetooth: Perform HCI update for power on synchronously The request to update HCI during power on is always coming either from hdev->req_workqueue or through an ioctl, so it's safe to use hci_req_sync for it. This way we also eliminate potential races with incoming mgmt commands or other actions while powering on. Part of this refactoring is the splitting of mgmt_powered() into mgmt_power_on() and __mgmt_power_off() functions. The main reason is the different requirements as far as hdev locking is concerned, as highlighted with the __ prefix of the power off API. Since the power on in the case of clearing the AUTO_OFF flag cannot be done synchronously in the set_powered mgmt handler, the hci_power_on work callback is extended to cover this (which also simplifies the set_powered helper a lot). Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann include/net/bluetooth/hci_core.h | 3 +- net/bluetooth/hci_core.c | 21 ++++-- net/bluetooth/hci_request.c | 100 ++++++++++++++++++++++++++++ net/bluetooth/hci_request.h | 2 + net/bluetooth/mgmt.c | 136 +++------------------------------------ 5 files changed, 128 insertions(+), 134 deletions(-) commit bf943cbf76ecd3b9838a80d5e08777b0f4ccc665 Author: Johan Hedberg Date: Wed Nov 25 16:15:43 2015 +0200 Bluetooth: Move fast connectable code to hci_request.c We'll soon need this both in hci_request.c and mgmt.c so move it to hci_request.c as a generic helper. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_request.c | 35 +++++++++++++++++++++++++++++++++++ net/bluetooth/hci_request.h | 1 + net/bluetooth/mgmt.c | 43 ++++--------------------------------------- 3 files changed, 40 insertions(+), 39 deletions(-) commit b1a8917c9bcbf42113dfacb6492228e094c96862 Author: Johan Hedberg Date: Wed Nov 25 16:15:42 2015 +0200 Bluetooth: Move EIR update to hci_request.c We'll soon need to update the EIR both from hci_request.c and mgmt.c so move update_eir() as a more generic request helper to hci_request.c. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_request.c | 189 +++++++++++++++++++++++++++++++++++++++++ net/bluetooth/hci_request.h | 1 + net/bluetooth/mgmt.c | 203 ++------------------------------------------ 3 files changed, 198 insertions(+), 195 deletions(-) commit 00cf5040b39638588cd10ae4ffcc76a1be6ecf2c Author: Johan Hedberg Date: Wed Nov 25 16:15:41 2015 +0200 Bluetooth: HCI name update to hci_request.c We'll soon need this both from hci_request.c and mgmt.c so move it as a request helper function to hci_request.c. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_request.c | 10 ++++++++++ net/bluetooth/hci_request.h | 2 ++ net/bluetooth/mgmt.c | 14 ++------------ 3 files changed, 14 insertions(+), 12 deletions(-) commit c366f555b8df67633b849a5088bb897d6c63aaa5 Author: Johan Hedberg Date: Mon Nov 23 15:43:06 2015 +0200 Bluetooth: Move discoverable timeout behind hdev->req_workqueue Since the other discoverable changes are behind req_workqueue now it only makes sense to move the discoverable timeout there as well. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann include/net/bluetooth/hci_core.h | 1 - net/bluetooth/hci_core.c | 13 ------------- net/bluetooth/hci_request.c | 26 +++++++++++++++++++++++++ net/bluetooth/mgmt.c | 41 ++-------------------------------------- 4 files changed, 28 insertions(+), 53 deletions(-) commit aed1a8851db022c3bd22af41a343068b8c6e40c1 Author: Johan Hedberg Date: Sun Nov 22 17:24:44 2015 +0300 Bluetooth: Move discoverable changes to hdev->req_workqueue The discoverable mode is intrinsically linked with the connectable mode e.g. through sharing the same HCI command (Write Scan Enable) for BR/EDR. It makes therefore sense to move it to hci_request.c and run the changes through the same hdev->req_workqueue. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann include/net/bluetooth/hci_core.h | 2 + net/bluetooth/hci_request.c | 64 ++++++++++++++++++++++++++++ net/bluetooth/mgmt.c | 90 ++++++---------------------------------- 3 files changed, 79 insertions(+), 77 deletions(-) commit 14bf5eac7a4f4bf0729ff8eb358de4fab967cee1 Author: Johan Hedberg Date: Sun Nov 22 19:00:22 2015 +0200 Bluetooth: Perform Class of Device changes through hdev->req_workqueue The Class of Device needs to be changed e.g. for limited discoverable mode. In preparation of moving the discoverable mode to hci_request.c and hdev->req_workqueue, move the Class of Device helpers there first. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_request.c | 40 +++++++++++++++++++++++++++++++++ net/bluetooth/hci_request.h | 2 ++ net/bluetooth/mgmt.c | 54 ++++++--------------------------------------- 3 files changed, 49 insertions(+), 47 deletions(-) commit 53c0ba74510c1182786dcd1e3710215467777601 Author: Johan Hedberg Date: Sun Nov 22 16:43:43 2015 +0300 Bluetooth: Move connectable changes to hdev->req_workqueue This way the connectable changes are synchronized against each other, which helps avoid potential races. The connectable mode is also linked together with LE advertising which makes is more convenient to have it behind the same workqueue. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann include/net/bluetooth/hci_core.h | 2 + net/bluetooth/hci_request.c | 39 ++++++++++++++++++ net/bluetooth/mgmt.c | 86 ++++++---------------------------------- 3 files changed, 53 insertions(+), 74 deletions(-) commit f22525700b2ae34eb97a29a91e2eee902062b484 Author: Johan Hedberg Date: Wed Nov 18 12:49:20 2015 +0200 Bluetooth: Move advertising instance management to hci_request.c This paves the way for eventually performing advertising changes through the hdev->req_workqueue. Some new APIs need to be exposed from mgmt.c to hci_request.c and vice-versa, but many of them will go away once hdev->req_workqueue gets used. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann include/net/bluetooth/hci_core.h | 9 +- net/bluetooth/hci_conn.c | 2 +- net/bluetooth/hci_core.c | 19 +- net/bluetooth/hci_event.c | 4 +- net/bluetooth/hci_request.c | 533 +++++++++++++++++++++++++++++++++++- net/bluetooth/hci_request.h | 14 + net/bluetooth/mgmt.c | 574 +++------------------------------------ 7 files changed, 589 insertions(+), 566 deletions(-) commit 196a5e97d13092f783e41001c1112d7f31518ea2 Author: Johan Hedberg Date: Sun Nov 22 18:55:44 2015 +0200 Bluetooth: Move __hci_update_background_scan up in hci_request.c This way we avoid the need to do a forward declaration in later patches. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_request.c | 146 ++++++++++++++++++++++---------------------- 1 file changed, 73 insertions(+), 73 deletions(-) commit 01b1cb87d37fb19cdaa5e7002416fdde156873d0 Author: Johan Hedberg Date: Mon Nov 16 12:52:21 2015 +0200 Bluetooth: Run page scan updates through hdev->req_workqueue Since Add/Remove Device perform the page scan updates independently from the HCI command completion we've introduced a potential race when multiple mgmt commands are queued. Doing the page scan updates through the req_workqueue ensures that the state changes are performed in a race-free manner. At the same time, to make the request helper more widely usable, extend it to also cover Inquiry Scan changes since those are behind the same HCI command. This is also reflected in the new name of the API as well as the work struct name. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann include/net/bluetooth/hci_core.h | 1 + net/bluetooth/hci_event.c | 4 ++-- net/bluetooth/hci_request.c | 27 ++++++++++++++++++--------- net/bluetooth/hci_request.h | 8 ++++++-- net/bluetooth/mgmt.c | 16 ++++++++-------- 5 files changed, 35 insertions(+), 21 deletions(-) commit 40be4c3ccbf4078e2f8426a7962879b7a447cde4 Author: Pi-Cheng Chen Date: Sun Nov 29 16:31:37 2015 +0800 cpufreq: mt8173: check return value of regulator_get_voltage() call Sometimes regulator_get_voltage() call returns negative values for reasons(e.g. underlying I2C bus timeout). Add check for the return values and fail out early. Signed-off-by: Pi-Cheng Chen Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/mt8173-cpufreq.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit 93625d52e7a74492416f77fed945ba34e0ae0c18 Author: Pi-Cheng Chen Date: Sun Nov 29 16:31:36 2015 +0800 cpufreq: mt8173: remove redundant regulator_get_voltage() call Remove redundant regulator_get_voltage() call to get Vsram value since it will be obtained later at the beginning of voltage tracking loop. Signed-off-by: Pi-Cheng Chen Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/mt8173-cpufreq.c | 1 - 1 file changed, 1 deletion(-) commit 9bb46b87d662ab704bd852db9916f0e51db3e94b Author: Pi-Cheng Chen Date: Sun Nov 29 16:31:35 2015 +0800 cpufreq: mt8173: add CPUFREQ_HAVE_GOVERNOR_PER_POLICY flag Add CPUFREQ_HAVE_GOVERNOR_PER_POLICY to have individual set of tunables for each cluster of MT8173. Signed-off-by: Pi-Cheng Chen Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/mt8173-cpufreq.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 8ae1702a0df5e0730607b97fd9fd1f8066870832 Author: Hongtao Jia Date: Thu Nov 26 17:21:11 2015 +0800 cpufreq: qoriq: Register cooling device based on device tree Register the qoriq cpufreq driver as a cooling device, based on the thermal device tree framework. When temperature crosses the passive trip point cpufreq is used to throttle CPUs. Signed-off-by: Jia Hongtao Reviewed-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/qoriq-cpufreq.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit 790d849bf811a8ab5d4cd2cce0f6fda92f6aebf2 Author: Jacob Tanenbaum Date: Thu Nov 19 10:29:01 2015 -0500 cpufreq: pcc-cpufreq: update default value of cpuinfo_transition_latency The cpufreq documentation specifies policy->cpuinfo.transition_latency the time it takes on this CPU to switch between two frequencies in nanoseconds (if appropriate, else specify CPUFREQ_ETERNAL) currently pcc-cpufreq does not expose the value and sets it to zero. I changed the pcc-cpufreq driver and it's documentation to conform to the default value specified in Documentation/cpu-freq/cpu-drivers.txt Signed-off-by: Jacob Tanenbaum Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki Documentation/cpu-freq/pcc-cpufreq.txt | 4 ++-- drivers/cpufreq/pcc-cpufreq.c | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) commit 2f7e8a175db72bdaf377235962fd85796edb3fbc Author: Punit Agrawal Date: Tue Nov 17 12:06:23 2015 +0000 cpufreq: arm_big_little: Add support to register a cpufreq cooling device Register passive cooling devices when initialising cpufreq on big.LITTLE systems. If the device tree provides a dynamic power coefficient for the CPUs then the bound cooling device will support the extensions that allow it to be used with all the existing thermal governors including the power allocator governor. A cooling device will be created per individual frequency domain and can be bound to thermal zones via the thermal DT bindings. Signed-off-by: Punit Agrawal Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/Kconfig.arm | 2 ++ drivers/cpufreq/arm_big_little.c | 41 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) commit f8fa8ae06b8c2c25d81c99766f9226adc5c3e073 Author: Punit Agrawal Date: Tue Nov 17 12:06:22 2015 +0000 cpufreq-dt: Supply power coefficient when registering cooling devices Support registering cooling devices with dynamic power coefficient where provided by the device tree. This allows OF registered cooling devices driver to be used with the power_allocator thermal governor. Signed-off-by: Punit Agrawal Acked-by: Viresh Kumar Reviewed-by: Javi Merino Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq-dt.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 3be3f8f36e7349006f19c8c8f0d686e98462a993 Author: Punit Agrawal Date: Tue Nov 17 12:06:21 2015 +0000 devicetree: bindings: Add optional dynamic-power-coefficient property The dynamic power consumption of a device is proportional to the square of voltage (V) and the clock frequency (f). It can be expressed as Pdyn = dynamic-power-coefficient * V^2 * f. The coefficient represents the running time dynamic power consumption in units of mw/MHz/uVolt^2 and can be used in the above formula to calculate the dynamic power in mW. Signed-off-by: Punit Agrawal Acked-by: Rob Herring Reviewed-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki Documentation/devicetree/bindings/arm/cpus.txt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit abf1296599fd679ece61a6c145cc7ee0c490e573 Author: Jeffy Chen Date: Wed Dec 9 17:04:07 2015 +0800 clk: rockchip: add dt-binding header for rk3228 Add the dt-bindings header for the rk3228, that gets shared between the clock controller and the clock references in the dts. Signed-off-by: Jeffy Chen Signed-off-by: Heiko Stuebner include/dt-bindings/clock/rk3228-cru.h | 220 +++++++++++++++++++++++++++++++++ 1 file changed, 220 insertions(+) commit adc83bf8896353603213754353dd66dae69e3d7f Author: Brian Norris Date: Wed Dec 9 10:24:03 2015 -0800 mtd: partitions: support a cleanup callback for parsers If partition parsers need to clean up their resources, we shouldn't assume that all memory will fit in a single kmalloc() that the caller can kfree(). We should allow the parser to provide a proper cleanup routine. Note that this means we need to keep a hold on the parser's module for a bit longer, and release it later with mtd_part_parser_put(). Alongside this, define a default callback that we'll automatically use if the parser doesn't provide one, so we can still retain the old behavior. Signed-off-by: Brian Norris Reviewed-by: Boris Brezillon drivers/mtd/mtdcore.c | 3 +-- drivers/mtd/mtdcore.h | 2 ++ drivers/mtd/mtdpart.c | 35 +++++++++++++++++++++++++++++++++-- include/linux/mtd/partitions.h | 1 + 4 files changed, 37 insertions(+), 4 deletions(-) commit 08dc7c7e407fed00a89bd6f4fc13c7ea20320de1 Author: Javier Martinez Canillas Date: Fri Nov 20 14:35:02 2015 -0300 ACPI: Fix build errors due objects compiled unconditionally If the CONFIG_ACPI Kconfig symbol is not enabled and a partial build is attempted, compile errors will happen due missing types and identifiers. This can be easily reproduced with the following commands: $ export CROSS_COMPILE="arm-linux-gnueabihf-" ARCH=arm $ make allmodconfig $ make M=drivers/acpi/ CC drivers/acpi//tables.o drivers/acpi//tables.c:235:3: warning: 'struct acpi_subtable_proc' declared inside parameter list unsigned int max_entries) ^ drivers/acpi//tables.c:235:3: warning: its scope is only this definition or declaration, which is probably not what you want drivers/acpi//tables.c: In function 'acpi_parse_entries_array': drivers/acpi//tables.c:269:4: error: invalid use of undefined type 'struct acpi_subtable_proc' ... scripts/Makefile.build:258: recipe for target 'drivers/acpi//tables.o' failed make[1]: *** [drivers/acpi//tables.o] Error 1 Makefile:1401: recipe for target '_module_drivers/acpi/' failed make: *** [_module_drivers/acpi/] Error 2 This is because objects are tried to be built unconditionally even when CONFIG_ACPI is not enabled. This is usually not a problem since arches' Kconfig sources drivers/acpi/Kconfig directly and also selects ACPI but the Makefile should conditionally build the objects as well to prevent these build errors. Signed-off-by: Javier Martinez Canillas Signed-off-by: Rafael J. Wysocki drivers/acpi/Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit cd7f84c02825cfca6cc86826395167479bdc1a05 Author: Ken Xue Date: Wed Dec 9 16:17:30 2015 +0800 ACPI / PM: Support D3 COLD device in old BIOS for ZPODD D3cold is only regarded as valid if the "_PR3" object is present for the given device after the commit 20dacb71ad28 ("ACPI/PM: Rework device power management to follow ACPI 6"). But some old BIOS only defined "_PS3" for the D3COLD device, such as ZPODD device. And old kernel also believes the device with "_PS3" is a D3COLD device. So, add some logics for supporting D3 COLD device with old BIOS which is compatible with earlier ACPI spec and kernel behavior. Link: http://marc.info/?l=linux-acpi&m=144946938709759&w=2 Signed-off-by: Ken Xue Reported-and-tested-by: Gang Long Signed-off-by: Rafael J. Wysocki include/acpi/acpi_bus.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 289582eac070a960e3c1cbfd8d110342426c5842 Author: Masahiro Yamada Date: Mon Nov 30 15:14:19 2015 +0900 of/address: replace printk(KERN_ERR ...) with pr_err(...) A trivial change suggested by checkpatch.pl. Signed-off-by: Masahiro Yamada Signed-off-by: Rob Herring drivers/of/address.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 264041e3796133003f010303629a249f9caa3275 Author: Masahiro Yamada Date: Tue Nov 24 22:10:26 2015 +0900 of/irq: optimize device node matching loop in of_irq_init() Currently, of_irq_init() iterates over interrupt controller nodes with for_each_matching_node(), and then gets each init function with of_match_node() later. This routine can be optimized with for_each_matching_node_and_match(). It allows to get the interrupt controller node and its init function at the same time, saving __of_match_node() callings. Signed-off-by: Masahiro Yamada Signed-off-by: Rob Herring drivers/of/irq.c | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) commit e9e5f6365073b5f717172834986df8e2ec5a80b4 Author: Liviu Dudau Date: Wed Dec 2 11:35:39 2015 +0000 dt-bindings: tda998x: Document the required 'port' node. All the users of the tda998x driver are component based and bind the driver via the device graph method described in Documentation/devicetree/bindings/graph.txt. Add the fact that the 'port' node is required to the bindings. Signed-off-by: Liviu Dudau Signed-off-by: Rob Herring Documentation/devicetree/bindings/display/bridge/tda998x.txt | 4 ++++ 1 file changed, 4 insertions(+) commit d6403108aaf413c9677040c20519e5c14c2f6f7c Author: Michal Simek Date: Mon Nov 30 14:51:46 2015 +0100 net/macb: bindings doc: Merge cdns-emac to macb Merge two bindings for the same driver to together. Signed-off-by: Michal Simek Acked-by: Nicolas Ferre Acked-by: Moritz Fischer Signed-off-by: Rob Herring Documentation/devicetree/bindings/net/cdns-emac.txt | 20 -------------------- Documentation/devicetree/bindings/net/macb.txt | 3 +++ 2 files changed, 3 insertions(+), 20 deletions(-) commit 1da2f213cfaef8e3b8a93c7779d96691d226083b Author: Alban Bedel Date: Sun Nov 29 13:40:12 2015 +0100 dt-bindings: Misc fix for the ATH79 DDR controllers Fix a few typos and reword the description of the '#qca,ddr-wb-channel-cells' property. Signed-off-by: Alban Bedel CC: trivial@kernel.org Signed-off-by: Rob Herring .../bindings/memory-controllers/ath79-ddr-controller.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit ef8322427e6bb956992079e3b5fac57e65a6b5d3 Author: Alban Bedel Date: Sun Nov 29 13:40:11 2015 +0100 dt-bindings: Misc fix for the ATH79 MISC interrupt controllers Add a missing quote in the example Signed-off-by: Alban Bedel CC: trivial@kernel.org Signed-off-by: Rob Herring .../devicetree/bindings/interrupt-controller/qca,ath79-misc-intc.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d9f43babb998b4061305ec682a423c709a503178 Author: Peter Maydell Date: Tue Nov 24 16:06:41 2015 +0000 Documentation: dt: Add bindings for Secure-only devices The existing device tree bindings assume that we are only trying to describe a single address space with a device tree (for ARM, either the Normal or the Secure world). Some uses for device tree need to describe both Normal and Secure worlds in a single device tree. Add documentation of how to do this, by adding extra properties which describe when a device appears differently in the two worlds or when it only appears in one of them. The binding describes the general principles for adding new properties describing the secure world, but for now we only need a single new property, "secure-status", which can be used to annotate devices to indicate that they are only visible in one of the two worlds. The primary expected use of this binding is for a virtual machine like QEMU to describe the VM layout to a TrustZone aware firmware (which would then use the secure-only devices itself, and pass the DT on to a kernel running in the non-secure world, which ignores the secure-only devices and uses the rest). Signed-off-by: Peter Maydell Signed-off-by: Rob Herring Documentation/devicetree/bindings/arm/secure.txt | 53 ++++++++++++++++++++++++ 1 file changed, 53 insertions(+) commit ea03835fb8ea4abbad2a2154187401f55c0b932d Author: Jeffy Chen Date: Wed Dec 9 17:04:10 2015 +0800 clk: rockchip: allow more than 2 parents for cpuclk RK3228's armclk has 3 parents, so allow cpuclk to have more than 2 parents. Signed-off-by: Jeffy Chen Signed-off-by: Heiko Stuebner drivers/clk/rockchip/clk-cpu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 182f4f098efcd112bed074ec84854b8e1a016974 Author: Masahiro Yamada Date: Tue Nov 24 20:31:51 2015 +0900 dt-bindings: ARM: add arm,cortex-a72 compatible string Signed-off-by: Masahiro Yamada Signed-off-by: Rob Herring Documentation/devicetree/bindings/arm/cpus.txt | 1 + 1 file changed, 1 insertion(+) commit bf400242a97697a0c6be8cd5a1a9f8f5c1594d6a Author: Songjun Wu Date: Mon Nov 23 17:19:58 2015 +0800 ASoC: Atmel: ClassD: add GCK's parent clock in DT binding Set GCK's parent as audio clock. Signed-off-by: Songjun Wu Signed-off-by: Rob Herring Documentation/devicetree/bindings/sound/atmel-classd.txt | 6 ++++++ 1 file changed, 6 insertions(+) commit 2193377bdade3bdfac164d7a7217c557a3c0878f Author: Stefan Wahren Date: Wed Nov 18 12:20:58 2015 +0000 DT: add Olimex to vendor prefixes This company already provided some products, so add them to the vendor prefix list. Signed-off-by: Stefan Wahren Signed-off-by: Rob Herring Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) commit 4c9848c8ea5f91092e92839da9b6dd1bcaa5be79 Author: Yao Yuan Date: Wed Nov 18 17:18:11 2015 +0800 Documentation: fsl-quadspi: Add fsl,ls1021-qspi compatible string new compatible string: "fsl,ls1021-qspi". Signed-off-by: Yuan Yao Signed-off-by: Rob Herring Documentation/devicetree/bindings/mtd/fsl-quadspi.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 8cc73e58b9d7f421988d99803df055a4db7531bc Author: Aaro Koskinen Date: Wed Nov 18 01:13:20 2015 +0200 Documentation/devicetree: document OCTEON USB bindings Document device-tree bindings for the USB controller on older OCTEON SOCs (OCTEON, OCTEON+). Signed-off-by: Aaro Koskinen Signed-off-by: Rob Herring .../devicetree/bindings/usb/octeon-usb.txt | 62 ++++++++++++++++++++++ 1 file changed, 62 insertions(+) commit 2729f62c96fa32c6bec062bf39251929dd6cc759 Author: Michael Trimarchi Date: Sun Nov 15 11:48:48 2015 +0100 usb: misc: usb3503: Describe better how to bind clock to the hub Signed-off-by: Michael Trimarchi Signed-off-by: Rob Herring Documentation/devicetree/bindings/usb/usb3503.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 22697acdd72d6749d603cb861d4f6c1c2b583c1b Author: Krzysztof Kozlowski Date: Thu Nov 19 09:42:49 2015 +0900 dt-bindings: Consolidate SRAM bindings from all vendors SRAM bindings for various SoCs, using the mmio-sram genalloc API, are spread over different places - per SoC vendor. Since all of these are quite similar (they depend on mmio-sram) move them to a common place. Suggested-by: Rob Herring Signed-off-by: Krzysztof Kozlowski Cc: Heiko Stuebner Cc: Maxime Ripard Cc: Chen-Yu Tsai Cc: Kukjin Kim Acked-by: Maxime Ripard Acked-by: Heiko Stuebner Signed-off-by: Rob Herring Documentation/devicetree/bindings/arm/arm,scpi.txt | 2 +- .../devicetree/bindings/arm/exynos/smp-sysram.txt | 38 ------------ .../devicetree/bindings/arm/rockchip/pmu-sram.txt | 16 ----- .../devicetree/bindings/arm/rockchip/smp-sram.txt | 30 --------- Documentation/devicetree/bindings/misc/sram.txt | 67 -------------------- .../devicetree/bindings/soc/sunxi/sram.txt | 72 ---------------------- .../devicetree/bindings/sram/rockchip-pmu-sram.txt | 16 +++++ .../devicetree/bindings/sram/rockchip-smp-sram.txt | 30 +++++++++ .../devicetree/bindings/sram/samsung-sram.txt | 38 ++++++++++++ Documentation/devicetree/bindings/sram/sram.txt | 67 ++++++++++++++++++++ .../devicetree/bindings/sram/sunxi-sram.txt | 72 ++++++++++++++++++++++ 11 files changed, 224 insertions(+), 224 deletions(-) commit 3d751eb057e6ed4e4fbce880c016ad967ba732d2 Author: Andrew F. Davis Date: Mon Sep 21 11:25:40 2015 -0500 Documentation: dt-bindings: Fix interrupt documentation file path Fix the incorrect interrupt documentation file path in binding docs. Signed-off-by: Andrew F. Davis Acked-by: Lee Jones Signed-off-by: Rob Herring Documentation/devicetree/bindings/gpio/snps-dwapb-gpio.txt | 2 +- Documentation/devicetree/bindings/mfd/arizona.txt | 2 +- Documentation/devicetree/bindings/mfd/palmas.txt | 2 +- Documentation/devicetree/bindings/sound/wm8994.txt | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) commit 2dd3e724b4e2237cfaaf155cab72af02c1c420cc Author: Rafael J. Wysocki Date: Tue Dec 8 21:44:05 2015 +0100 cpufreq: governor: Use lockless timer function It is possible to get rid of the timer_lock spinlock used by the governor timer function for synchronization, but a couple of races need to be avoided. The first race is between multiple dbs_timer_handler() instances that may be running in parallel with each other on different CPUs. Namely, one of them has to queue up the work item, but it cannot be queued up more than once. To achieve that, atomic_inc_return() can be used on the skip_work field of struct cpu_common_dbs_info. The second race is between an already running dbs_timer_handler() and gov_cancel_work(). In that case the dbs_timer_handler() might not notice the skip_work incrementation in gov_cancel_work() and it might queue up its work item after gov_cancel_work() had returned (and that work item would corrupt skip_work going forward). To prevent that from happening, gov_cancel_work() can be made wait for the timer function to complete (on all CPUs) right after skip_work has been incremented. Signed-off-by: Rafael J. Wysocki Acked-by: Viresh Kumar drivers/cpufreq/cpufreq_governor.c | 49 +++++++++++++++++--------------------- drivers/cpufreq/cpufreq_governor.h | 9 ++----- 2 files changed, 24 insertions(+), 34 deletions(-) commit f08f638b9c7f1bf3cb9006d3d26bf568d807ede0 Author: Viresh Kumar Date: Thu Dec 3 09:37:54 2015 +0530 cpufreq: ondemand: update update_sampling_rate() to make it more efficient Currently update_sampling_rate() runs over each online CPU and cancels/queues timers on all policy->cpus every time. This should be done just once for any cpu belonging to a policy. Create a cpumask and keep on clearing it as and when we process policies, so that we don't have to traverse through all CPUs of the same policy. Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq_ondemand.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 70f43e5e798c8818d97d8d6a9bd4cd3235af9686 Author: Viresh Kumar Date: Wed Dec 9 07:34:42 2015 +0530 cpufreq: governor: replace per-CPU delayed work with timers cpufreq governors evaluate load at sampling rate and based on that they update frequency for a group of CPUs belonging to the same cpufreq policy. This is required to be done in a single thread for all policy->cpus, but because we don't want to wakeup idle CPUs to do just that, we use deferrable work for this. If we would have used a single delayed deferrable work for the entire policy, there were chances that the CPU required to run the handler can be in idle and we might end up not changing the frequency for the entire group with load variations. And so we were forced to keep per-cpu works, and only the one that expires first need to do the real work and others are rescheduled for next sampling time. We have been using the more complex solution until now, where we used a delayed deferrable work for this, which is a combination of a timer and a work. This could be made lightweight by keeping per-cpu deferred timers with a single work item, which is scheduled by the first timer that expires. This patch does just that and here are important changes: - The timer handler will run in irq context and so we need to use a spin_lock instead of the timer_mutex. And so a separate timer_lock is created. This also makes the use of the mutex and lock quite clear, as we know what exactly they are protecting. - A new field 'skip_work' is added to track when the timer handlers can queue a work. More comments present in code. Suggested-by: Rafael J. Wysocki Signed-off-by: Viresh Kumar Reviewed-by: Ashwin Chaugule Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq_governor.c | 142 ++++++++++++++++++++++--------------- drivers/cpufreq/cpufreq_governor.h | 20 ++++-- drivers/cpufreq/cpufreq_ondemand.c | 8 +-- 3 files changed, 100 insertions(+), 70 deletions(-) commit 5938448b99275cba95167c3f9d39ca9225fdad38 Author: John Keeping Date: Wed Dec 9 10:32:27 2015 +0000 ASoC: rockchip: i2s: remove unused variables The previous commit removed the only use of these variables. Signed-off-by: John Keeping Signed-off-by: Mark Brown sound/soc/rockchip/rockchip_i2s.c | 15 --------------- 1 file changed, 15 deletions(-) commit eba65d179c1149cf79e68608d452631f33d7f017 Author: John Keeping Date: Wed Dec 9 10:32:26 2015 +0000 ASoC: rockchip: i2s: separate capture and playback If we only clear the tx/rx state when both are disabled it is not possible to start/stop one multiple times while the other is running. Since the two are independently controlled, treat them as such and remove the false dependency between capture and playback. Signed-off-by: John Keeping Signed-off-by: Mark Brown sound/soc/rockchip/rockchip_i2s.c | 72 +++++++++++++++++---------------------- 1 file changed, 32 insertions(+), 40 deletions(-) commit 8b7663de6e2bfe3c40e1846e1c4625f33d138757 Author: Xiubo Li Date: Wed Dec 9 13:09:07 2015 +0800 regmap: cache: Add 64-bit mode support Since the mmio has support the 64-bit has been supported for the 64-bit platform, so should the regcache core too. Signed-off-by: Xiubo Li Signed-off-by: Mark Brown drivers/base/regmap/regcache.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 2fd6902ed7587c302611906b5151f6a7efeb2c63 Author: Xiubo Li Date: Wed Dec 9 13:09:06 2015 +0800 regmap: cache: To suppress the noise of checkpatch There will be some warning like the following when checking new patches near this code: "WARNING: Missing a blank line after declarations" This patch will suppress this warning. Signed-off-by: Xiubo Li Signed-off-by: Mark Brown drivers/base/regmap/regcache.c | 6 ++++++ 1 file changed, 6 insertions(+) commit ad2c8c73d29702c3193f739390f6661f9a4ecad9 Author: Tejun Heo Date: Wed Dec 9 12:30:46 2015 -0500 cgroup: fix sock_cgroup_data initialization on earlier compilers sock_cgroup_data is a struct containing an anonymous union. sock_cgroup_set_prioidx() and sock_cgroup_set_classid() were initializing a field inside the anonymous union as follows. struct sock_ccgroup_data skcd_buf = { .val = VAL }; While this is fine on more recent compilers, gcc-4.4.7 triggers the following errors. include/linux/cgroup-defs.h: In function ‘sock_cgroup_set_prioidx’: include/linux/cgroup-defs.h:619: error: unknown field ‘val’ specified in initializer include/linux/cgroup-defs.h:619: warning: missing braces around initializer include/linux/cgroup-defs.h:619: warning: (near initialization for ‘skcd_buf.’) This is because .val belongs to the anonymous union nested inside the struct but the initializer is missing the nesting. Fix it by adding an extra pair of braces. Signed-off-by: Tejun Heo Reported-by: Alaa Hleihel Fixes: bd1060a1d671 ("sock, cgroup: add sock->sk_cgroup") Signed-off-by: David S. Miller include/linux/cgroup-defs.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a37b3eafe8e9cbe7c7754bc6003c125b23749554 Author: Simon Horman Date: Thu Dec 3 07:51:39 2015 +0900 PCI: rcar: Add gen2 fallback compatibility string for pcie-rcar Add fallback compatibility string for R-Car Gen 2 family. This is in keeping with the fallback scheme being adopted wherever appropriate for drivers for Renesas SoCs. Signed-off-by: Simon Horman Signed-off-by: Bjorn Helgaas Documentation/devicetree/bindings/pci/rcar-pci.txt | 15 +++++++++++---- drivers/pci/host/pcie-rcar.c | 1 + 2 files changed, 12 insertions(+), 4 deletions(-) commit 3517652fda51bfeea3768ba05819744c8ac57d9e Author: Simon Horman Date: Thu Dec 3 07:51:37 2015 +0900 PCI: rcar: Add gen2 fallback compatibility string for pci-rcar-gen2 Add fallback compatibility string for R-Car Gen 2 family. This is in keeping with the fallback scheme being adopted wherever appropriate for drivers for Renesas SoCs. Signed-off-by: Simon Horman Signed-off-by: Bjorn Helgaas Acked-by: Rob Herring Documentation/devicetree/bindings/pci/pci-rcar-gen2.txt | 11 +++++++++-- drivers/pci/host/pci-rcar-gen2.c | 1 + 2 files changed, 10 insertions(+), 2 deletions(-) commit 07fd2f871c5e3dfb8ff5eb9c4b44fdb4cf1aeff5 Author: Brian Norris Date: Fri Dec 4 15:25:17 2015 -0800 mtd: partitions: pass around 'mtd_partitions' wrapper struct For some of the core partitioning code, it helps to keep info about the parsed partition (and who parsed them) together in one place. Signed-off-by: Brian Norris drivers/mtd/mtdcore.c | 33 +++++++++++++++++++-------------- drivers/mtd/mtdcore.h | 5 ++++- drivers/mtd/mtdpart.c | 15 ++++++++------- include/linux/mtd/partitions.h | 7 +++++++ 4 files changed, 38 insertions(+), 22 deletions(-) commit c42c2710d64381fd48d36b278e0744aa683d93fe Author: Brian Norris Date: Fri Dec 4 15:25:16 2015 -0800 mtd: partitions: remove kmemdup() The use of kmemdup() complicates the error handling a bit. We don't actually need to allocate new memory, since this reference is treated as const, and it is copied into new memory by the partition registration code anyway. So remove it. Signed-off-by: Brian Norris Reviewed-by: Boris Brezillon drivers/mtd/mtdcore.c | 16 +++++++--------- drivers/mtd/mtdcore.h | 2 +- drivers/mtd/mtdpart.c | 2 +- 3 files changed, 9 insertions(+), 11 deletions(-) commit 5531ae4818fb04b9a30f87099f44595c1786f518 Author: Brian Norris Date: Fri Dec 4 15:25:15 2015 -0800 mtd: partitions: rename MTD parser get/put We're going to reuse put_partition_parser(), so let's fix up the prefix naming a bit, to hopefully be more consistent. Also make convert to a true C function instead of a macro. Signed-off-by: Brian Norris Reviewed-by: Boris Brezillon drivers/mtd/mtdpart.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit b9adf469f8abb8a66f5795bbd8fe50fe201a14a1 Author: Brian Norris Date: Fri Dec 4 15:25:14 2015 -0800 mtd: partitions: make parsers return 'const' partition arrays We only want to modify these arrays inside the parser "drivers", so the drivers should construct them however they like, then return them as immutable arrays. This will make other refactorings easier. Signed-off-by: Brian Norris Reviewed-by: Boris Brezillon drivers/mtd/afs.c | 2 +- drivers/mtd/ar7part.c | 2 +- drivers/mtd/bcm47xxpart.c | 2 +- drivers/mtd/bcm63xxpart.c | 2 +- drivers/mtd/cmdlinepart.c | 2 +- drivers/mtd/ofpart.c | 4 ++-- drivers/mtd/redboot.c | 2 +- include/linux/mtd/partitions.h | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) commit c3168d26c8deea4cc0202bb19341ab55247c3941 Author: Brian Norris Date: Fri Dec 4 15:25:13 2015 -0800 mtd: ofpart: assign return argument exactly once It's easier to refactor these parsers if the return value gets assigned only once, just like every other MTD partition parser. This prepares for making the second arg to the parse_fn() const. This is OK if we construct the partitions completely first, and assign them to the return pointer only after we're done modifying them. Signed-off-by: Brian Norris Reviewed-by: Boris Brezillon drivers/mtd/ofpart.c | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) commit b808b1d632f6915e4d6b1badb927b2c970ad11bb Author: Al Viro Date: Sat Dec 5 21:39:06 2015 -0500 don't open-code generic_file_llseek_size() Signed-off-by: Al Viro arch/powerpc/kernel/nvram_64.c | 19 +++---------------- drivers/char/generic_nvram.c | 21 +++------------------ drivers/char/mbcs.c | 28 +++------------------------- drivers/char/nvram.c | 18 +++--------------- 4 files changed, 12 insertions(+), 74 deletions(-) commit 2027cba66a0591e65a64d3ecfe8a3aa2f55a681b Merge: 5ba8c27 e488ca9 Author: Brian Norris Date: Wed Dec 9 09:59:45 2015 -0800 mtd: merge for-4.4 development into -next development A few MAINTAINERS updates, and some DT binding/documentation fixups. Signed-off-by: Brian Norris commit 8c0b39155048d5a24f25c6c60aa83729927b04cd Author: Dan Carpenter Date: Wed Dec 9 13:24:06 2015 +0300 nvme: precedence bug in nvme_pr_clear() The "|" operator has higher precedence than "?:" so this didn't work as intended. I had previously fixed this bug, but it we copied the older unfixed version when we moved the function between files. Fixes: 1673f1f08c88 ('nvme: move block_device_operations and ns/ctrl freeing to common code') Signed-off-by: Dan Carpenter Signed-off-by: Jens Axboe drivers/nvme/host/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ea212a4a7a432e0ecd0f0f53971b70172b3e7f96 Author: Jaegeuk Kim Date: Mon Dec 7 10:18:54 2015 -0800 f2fs: use lock_buffer when changing superblock When modifying sb contents, we need to use lock its buffer. Signed-off-by: Jaegeuk Kim fs/f2fs/file.c | 4 ++++ 1 file changed, 4 insertions(+) commit 5d909cdbbba244ecb4c2dfc4dc3e3bc29529fb05 Author: Jaegeuk Kim Date: Mon Dec 7 10:16:58 2015 -0800 f2fs: refactor f2fs_commit_super Previously, f2fs_commit_super hacks the bh->blocknr to write the broken alternate superblock. Instead of it, we should use the correct logic to retrieve its buffer head with locking it appropriately. Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/super.c | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) commit 80609448cd63b700a37427e423c201fc5e16e95a Author: Jaegeuk Kim Date: Fri Dec 4 16:51:13 2015 -0800 f2fs: enhance the bit operation for SSR This patch enhances the existing bit operation when f2fs allocates SSR blocks. Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/segment.c | 50 ++++++++++++++++++++------------------------------ 1 file changed, 20 insertions(+), 30 deletions(-) commit f7d924894265794f447ea799dd853400749b5a22 Author: Ard Biesheuvel Date: Mon Nov 30 13:28:19 2015 +0100 arm64/efi: refactor EFI init and runtime code for reuse by 32-bit ARM This refactors the EFI init and runtime code that will be shared between arm64 and ARM so that it can be built for both archs. Reviewed-by: Matt Fleming Signed-off-by: Ard Biesheuvel Signed-off-by: Will Deacon arch/arm64/include/asm/efi.h | 9 +++++++ arch/arm64/kernel/efi.c | 23 ++++++++++++++++++ drivers/firmware/efi/arm-init.c | 7 +++--- drivers/firmware/efi/arm-runtime.c | 48 +++++++++++++------------------------- drivers/firmware/efi/efi.c | 2 ++ 5 files changed, 54 insertions(+), 35 deletions(-) commit e5bc22a42e4d46cc203fdfb6d2c76202b08666a0 Author: Ard Biesheuvel Date: Mon Nov 30 13:28:18 2015 +0100 arm64/efi: split off EFI init and runtime code for reuse by 32-bit ARM This splits off the early EFI init and runtime code that - discovers the EFI params and the memory map from the FDT, and installs the memblocks and config tables. - prepares and installs the EFI page tables so that UEFI Runtime Services can be invoked at the virtual address installed by the stub. This will allow it to be reused for 32-bit ARM. Reviewed-by: Matt Fleming Signed-off-by: Ard Biesheuvel Signed-off-by: Will Deacon arch/arm64/kernel/efi.c | 326 +------------------------------------ drivers/firmware/efi/Makefile | 3 + drivers/firmware/efi/arm-init.c | 208 +++++++++++++++++++++++ drivers/firmware/efi/arm-runtime.c | 151 +++++++++++++++++ 4 files changed, 363 insertions(+), 325 deletions(-) commit 4dffbfc48d65e5d8157a634fd670065d237a9377 Author: Ard Biesheuvel Date: Mon Nov 30 13:28:17 2015 +0100 arm64/efi: mark UEFI reserved regions as MEMBLOCK_NOMAP Change the EFI memory reservation logic to use memblock_mark_nomap() rather than memblock_reserve() to mark UEFI reserved regions as occupied. In addition to reserving them against allocations done by memblock, this will also prevent them from being covered by the linear mapping. Reviewed-by: Matt Fleming Signed-off-by: Ard Biesheuvel Signed-off-by: Will Deacon arch/arm64/kernel/efi.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 68709f45385aeddb0ca96a060c0c8259944f321b Author: Ard Biesheuvel Date: Mon Nov 30 13:28:16 2015 +0100 arm64: only consider memblocks with NOMAP cleared for linear mapping Take the new memblock attribute MEMBLOCK_NOMAP into account when deciding whether a certain region is or should be covered by the kernel direct mapping. Reviewed-by: Matt Fleming Signed-off-by: Ard Biesheuvel Signed-off-by: Will Deacon arch/arm64/mm/init.c | 2 +- arch/arm64/mm/mmu.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) commit bf3d3cc580f9960883ebf9ea05868f336d9491c2 Author: Ard Biesheuvel Date: Mon Nov 30 13:28:15 2015 +0100 mm/memblock: add MEMBLOCK_NOMAP attribute to memblock memory table This introduces the MEMBLOCK_NOMAP attribute and the required plumbing to make it usable as an indicator that some parts of normal memory should not be covered by the kernel direct mapping. It is up to the arch to actually honor the attribute when laying out this mapping, but the memblock code itself is modified to disregard these regions for allocations and other general use. Cc: linux-mm@kvack.org Cc: Alexander Kuleshov Cc: Andrew Morton Reviewed-by: Matt Fleming Signed-off-by: Ard Biesheuvel Signed-off-by: Will Deacon include/linux/memblock.h | 8 ++++++++ mm/memblock.c | 28 ++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) commit 0a4bb5da957b83ece8b4723c5bac7a5d29fbfb33 Author: Josh Poimboeuf Date: Mon Dec 7 22:21:48 2015 -0600 perf tools: Move cmd_version() to builtin-version.c Move cmd_version() to its own file so that help.c can be moved to a library. Signed-off-by: Josh Poimboeuf Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/e908b1b68f20ab6d8d33941d5571c23110622e60.1449548395.git.jpoimboe@redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Build | 1 + tools/perf/builtin-version.c | 10 ++++++++++ tools/perf/util/help.c | 7 ------- 3 files changed, 11 insertions(+), 7 deletions(-) commit 2bdb2c2729d2ba2f2f90b729d04254308096c5a0 Author: Josh Poimboeuf Date: Mon Dec 7 22:21:46 2015 -0600 perf tools: Save cmdline arguments earlier perf_env__set_cmdline() only saves the arguments the first time it's called. It doesn't need to be called every time the options and suboptions are parsed. Instead it can just be called once. This also has the advantage of making the option parsing code less perf-specific so it can be moved out to a library. Signed-off-by: Josh Poimboeuf Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/19b76a5aa1b688bd635bd65d80bbc103a978d75e.1449548395.git.jpoimboe@redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/perf.c | 1 + tools/perf/util/env.c | 9 --------- tools/perf/util/parse-options.c | 2 -- 3 files changed, 1 insertion(+), 11 deletions(-) commit 1fe143c5f928e3d117355ce2655bac0eb80c1aa3 Author: Josh Poimboeuf Date: Mon Dec 7 22:21:42 2015 -0600 perf tools: Move term functions out of util.c The term functions are needed by help.c which is going to be moved into a separate library. Move them out of util.c and into their own file. Signed-off-by: Josh Poimboeuf Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/9a39c854dd156b55ebda57e427594c9a59dcb40f.1449548395.git.jpoimboe@redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/Build | 1 + tools/perf/util/term.c | 35 +++++++++++++++++++++++++++++++++++ tools/perf/util/term.h | 10 ++++++++++ tools/perf/util/util.c | 34 ---------------------------------- tools/perf/util/util.h | 4 +--- 5 files changed, 47 insertions(+), 37 deletions(-) commit de7cf7cadca3a3c32c1f1dbf4593a54f236e2dcf Author: Josh Poimboeuf Date: Mon Dec 7 22:21:43 2015 -0600 perf tools: Remove unused pager_use_color variable Signed-off-by: Josh Poimboeuf Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/e540c61b3068761181db6d9b1b3411990bafdb2f.1449548395.git.jpoimboe@redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/Build | 1 - tools/perf/util/cache.h | 1 - tools/perf/util/color.c | 2 +- tools/perf/util/environment.c | 8 -------- 4 files changed, 1 insertion(+), 11 deletions(-) commit 5191d887681dd34ba3993a438d5746378952885a Author: Masami Hiramatsu Date: Wed Dec 9 11:11:35 2015 +0900 perf tools: Fix write_numa_topology to put cpu_map instead of free Fix write_numa_topology to put cpu_map instead of free because cpu_map is managed based on refcnt. Signed-off-by: Masami Hiramatsu Cc: Adrian Hunter Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20151209021135.10245.79046.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/header.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cc1121ab9687d660cc02f50b1a4974112f87a8e6 Author: Masami Hiramatsu Date: Wed Dec 9 11:11:33 2015 +0900 perf machine: Fix machine.vmlinux_maps to make sure to clear the old one Fix machine.vmlinux_maps to make sure to clear the old one if it is renewal. This can leak the previous maps on the vmlinux_maps because those are just overwritten. Signed-off-by: Masami Hiramatsu Cc: Adrian Hunter Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20151209021133.10245.93730.stgit@localhost.localdomain [ Simplified the memset, same end result ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/machine.c | 5 +++++ 1 file changed, 5 insertions(+) commit d91130e90a005876b488b6d52b743149d95b4a59 Author: Masami Hiramatsu Date: Wed Dec 9 11:11:31 2015 +0900 perf tools: Fix maps__fixup_overlappings to put used maps Since the __map_groups__insert got the given map, we don't need to keep it. So put the maps. Refcnt debugger shows that map_groups__fixup_overlappings() got a map twice but the group released it just once. This pattern usually indicates the leak happens in caller site. ---- ==== [0] ==== Unreclaimed map@0x39d3ae0 Refcount +1 => 1 at ./perf(map_groups__fixup_overlappings+0x335) [0x4c1865] ./perf(thread__insert_map+0x30) [0x4c8e00] ./perf(machine__process_mmap2_event+0x106) [0x4bd876] ./perf() [0x4c378e] ./perf() [0x4c4393] ./perf(perf_session__process_events+0x38a) [0x4c654a] ./perf(cmd_record+0xe24) [0x42fc94] ./perf() [0x47b745] ./perf(main+0x617) [0x422547] /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f2eca2deaf5] ./perf() [0x4226bd] Refcount +1 => 2 at ./perf(map_groups__fixup_overlappings+0x3c5) [0x4c18f5] ./perf(thread__insert_map+0x30) [0x4c8e00] ./perf(machine__process_mmap2_event+0x106) [0x4bd876] ./perf() [0x4c378e] ./perf() [0x4c4393] ./perf(perf_session__process_events+0x38a) [0x4c654a] ./perf(cmd_record+0xe24) [0x42fc94] ./perf() [0x47b745] ./perf(main+0x617) [0x422547] /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f2eca2deaf5] ./perf() [0x4226bd] Refcount -1 => 1 at ./perf(map_groups__exit+0x92) [0x4c0962] ./perf(map_groups__put+0x60) [0x4c0bc0] ./perf(thread__put+0x90) [0x4c8a40] ./perf(machine__delete_threads+0x7e) [0x4bad9e] ./perf(perf_session__delete+0x4f) [0x4c499f] ./perf(cmd_record+0xb6d) [0x42f9dd] ./perf() [0x47b745] ./perf(main+0x617) [0x422547] /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f2eca2deaf5] ./perf() [0x4226bd] ---- Signed-off-by: Masami Hiramatsu Cc: Adrian Hunter Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20151209021131.10245.41485.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/map.c | 2 ++ 1 file changed, 2 insertions(+) commit 17577decb2ddae28f5a449ddb79cf0ed3e2312c5 Author: Masami Hiramatsu Date: Wed Dec 9 11:11:29 2015 +0900 perf hists: Fix hists_evsel to release hists Since hists__init doesn't set the destructor of hists_evsel (which is an extended evsel structure), when hists_evsel is released, the extended part of the hists_evsel is not deleted (note that the hists_evsel object itself is freed). This fixes it to add a destructor for hists__evsel and to set it up. Signed-off-by: Masami Hiramatsu Cc: Adrian Hunter Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20151209021129.10245.28710.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/hist.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 544c2ae7b1a794ad0bc5ec24d832ab5658d5aef6 Author: Masami Hiramatsu Date: Wed Dec 9 11:11:27 2015 +0900 perf stat: Fix cmd_stat to release cpu_map Fix cmd_stat() to release cpu_map objects (aggr_map and cpus_aggr_map) afterwards. refcnt debugger shows that the cmd_stat initializes cpu_map but not puts it. ---- # ./perf stat -v ls .... REFCNT: BUG: Unreclaimed objects found. ==== [0] ==== Unreclaimed cpu_map@0x29339c0 Refcount +1 => 1 at ./perf(cpu_map__empty_new+0x6d) [0x4e64bd] ./perf(cmd_stat+0x5fe) [0x43594e] ./perf() [0x47b785] ./perf(main+0x617) [0x422587] /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f2dff420af5] ./perf() [0x4226fd] REFCNT: Total 1 objects are not reclaimed. "cpu_map" leaks 1 objects ---- Signed-off-by: Masami Hiramatsu Cc: Adrian Hunter Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20151209021127.10245.93697.stgit@localhost.localdomain [ Remove NULL checks before calling the put operation, it checks it already ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit bae32b50ea96ca0f8702ea55e62095e8cc4745e2 Author: Masami Hiramatsu Date: Wed Dec 9 11:11:20 2015 +0900 perf tools: Fix map_groups__clone to put cloned map Fix map_groups__clone to put cloned map after inserting it to the map_groups. Refcnt debugger shows: ---- ==== [0] ==== Unreclaimed map: 0x2a27ee0 Refcount +1 => 1 at ./perf(map_groups__clone+0x8d) [0x4bb7ed] ./perf(thread__fork+0xbe) [0x4c1f9e] ./perf(machine__process_fork_event+0x216) [0x4b79a6] ./perf(perf_event__synthesize_threads+0x38b) [0x48135b] ./perf(cmd_top+0xdc6) [0x43cb76] ./perf() [0x477223] ./perf(main+0x617) [0x422077] /lib64/libc.so.6(__libc_start_main+0xf0) [0x7ff806af8fe0] ./perf() [0x4221ed] Refcount +1 => 2 at ./perf(map_groups__clone+0x128) [0x4bb888] ./perf(thread__fork+0xbe) [0x4c1f9e] ./perf(machine__process_fork_event+0x216) [0x4b79a6] ./perf(perf_event__synthesize_threads+0x38b) [0x48135b] ./perf(cmd_top+0xdc6) [0x43cb76] ./perf() [0x477223] ./perf(main+0x617) [0x422077] /lib64/libc.so.6(__libc_start_main+0xf0) [0x7ff806af8fe0] ./perf() [0x4221ed] Refcount -1 => 1 at ./perf(map_groups__exit+0x87) [0x4ba757] ./perf(map_groups__put+0x68) [0x4ba9a8] ./perf(thread__put+0x8b) [0x4c1aeb] ./perf(machine__delete_threads+0x81) [0x4b48f1] ./perf(perf_session__delete+0x4f) [0x4be63f] ./perf(cmd_top+0x1094) [0x43ce44] ./perf() [0x477223] ./perf(main+0x617) [0x422077] /lib64/libc.so.6(__libc_start_main+0xf0) [0x7ff806af8fe0] ./perf() [0x4221ed] ---- This shows map_groups__clone get the map twice and put it when map_groups__exit. Signed-off-by: Masami Hiramatsu Cc: Adrian Hunter Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20151209021120.10245.95388.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/map.c | 1 + 1 file changed, 1 insertion(+) commit 8d7d377c2bea16afa6b600a4517615a9eebb259b Author: Ingo Molnar Date: Thu Mar 5 11:32:13 2015 +0100 perf tui: Change default selection background color to yellow Boris reported that 'perf top' is unusable on his default 'black on white' terminal, which uses (eye friendly) light-grey as a background color. The reason is that the TUI cursor for the current selection line uses HE_COLORSET_SELECTED, and that has a default background color of 'lightgrey' - which is a common terminal background choice and thus the colors conflict. Use yellow as the background color instead: that should be an uncommon terminal background, yet it's still ergonomic on both black and white/grey terminals. [ It would be a better solution to straight out detect color collisions and resolve them reasonably by converting them to RGB and calculating color space distances, but I was unable to find proper documentation for SLtt_get_color_object() to recover the current color scheme so I gave up ... Yellow works well enough. ] Reported-and-Tested-by: Borislav Petkov Signed-off-by: Ingo Molnar Tested-by: Arnaldo Carvalho de Melo Cc: David Binderman Cc: Jiri Olsa Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150305103213.GA23046@gmail.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/ui/browser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fb9f7a6b0673ac65e7345b0a96b159708d413ee3 Author: Daniel Vetter Date: Tue Dec 8 09:49:17 2015 +0100 drm: Documentation style guide Every time I type or review docs this seems a bit different. Try to document the common style so we can try to unify at least new docs. v2: Spelling fixes from Pierre, Laurent and Jani. v3: More spelling fixes from Lukas. Cc: Pierre Moreau Cc: Jani Nikula Cc: Laurent Pinchart Cc: Lukas Wunner Acked-by: Laurent Pinchart Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449564561-3896-1-git-send-email-daniel.vetter@ffwll.ch Documentation/DocBook/gpu.tmpl | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) commit 9fb0b519c7e094e741a3fc3fd4d854a8bc74b6dc Author: Florian Westphal Date: Wed Dec 9 16:31:21 2015 +0100 netfilter: nf_tables: fix nf_log_trace based tracing nf_log_trace() outputs bogus 'TRACE:' strings because I forgot to update the comments array. Fixes: 33d5a7b14bfd0 ("netfilter: nf_tables: extend tracing infrastructure") Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso net/netfilter/nf_tables_core.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) commit a25c9f00ce2586dfa70ea16fc2e3f2f9043cea62 Author: Rodrigo Vivi Date: Wed Dec 9 07:51:59 2015 -0800 drm/i915/kbl: Fix DMC load on Kabylake. Kabylake A0 is based on Skylake H0. v2: Don't assume revid+7 and only load the one we are sure about. v3: Rebase on top of latest changes. v4: Accept cleaner solution from Jani with kbl_stepping_info starting on H0 instead of put a hack on revid. Cc: Jani Nikula Signed-off-by: Rodrigo Vivi Reviewed-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1449676319-6959-1-git-send-email-rodrigo.vivi@intel.com drivers/gpu/drm/i915/intel_csr.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) commit 0581b16b184031e767f64d20a93f65433d678685 Author: Sebastian Hesselbarth Date: Sat Nov 28 11:26:49 2015 +0100 pinctrl: mvebu: complain about missing group after checking variant Common MVEBU pinctrl driver core gets an array of controls to modify a specific set of registers and an array of modes for each pingroup from each of the different SoC families of MVEBU. Some SoC families comprise different variants that differ in available pingroups and also controls, but to ease driver development, we can pass a variant mask to disable specific pingroups for some variants. However, controls are limited to the true number of pinctrl groups avaiable on a variant. Now, when pinctrl core driver parses over above arrays, it tries to match modes with available controls and complains about missing controls for modes that are passed to the core but actually are not avaiable on a variant with: kirkwood-pinctrl f1010000.pin-controller: unknown pinctrl group 36 This warning is a false-positive and annoying, so move the warning after we checked the variant mask for each mode setting. Also, if there is no supported setting for this variant, do not complain at all. Signed-off-by: Sebastian Hesselbarth Reported-by: Linus Walleij Signed-off-by: Linus Walleij drivers/pinctrl/mvebu/pinctrl-mvebu.c | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) commit ed06e069775ad9236087594a1c1667367e983fb5 Author: Miklos Szeredi Date: Wed Dec 9 16:11:59 2015 +0100 ovl: root: copy attr We copy i_uid and i_gid of underlying inode into overlayfs inode. Except for the root inode. Fix this omission. Signed-off-by: Miklos Szeredi Cc: fs/overlayfs/super.c | 3 +++ 1 file changed, 3 insertions(+) commit 19c04788f0e0ef778df39cdeaf8e9889d3020894 Author: Xiubo Li Date: Wed Dec 9 17:11:53 2015 +0800 regmap: fix the warning about unused variable The variable 'u64 *u64' should be only visible on 64-BIT platform. Signed-off-by: Xiubo Li Signed-off-by: Mark Brown drivers/base/regmap/regmap.c | 2 ++ 1 file changed, 2 insertions(+) commit 7b6c0f8034d78390f9185e2ec2edb0a3e4ad244e Author: Dan Carpenter Date: Wed Dec 9 13:21:23 2015 +0300 blk-integrity: checking for NULL instead of IS_ERR We recently changed bio_integrity_alloc() to return ERR_PTRs instead of NULL but these calls were missed. Fixes: 06c1e3902aa7 ('blk-integrity: empty implementation when disabled') Signed-off-by: Dan Carpenter Reviewed-by: Johannes Thumshirn Signed-off-by: Jens Axboe block/bio-integrity.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit ad83abe9a60e185b255df2534de3a9e669d65859 Merge: 9ec2053 56b4437 Author: Mark Brown Date: Wed Dec 9 15:01:44 2015 +0000 Merge branch 'topic/sink' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-intel commit a78f70e8d65e88b9f631d073f68cb26dcd746298 Author: Michal Marek Date: Wed Dec 9 15:08:21 2015 +0100 genksyms: Handle string literals with spaces in reference files The reference files use spaces to separate tokens, however, we must preserve spaces inside string literals. Currently the only case in the tree is struct edac_raw_error_desc in : $ KBUILD_SYMTYPES=1 make -s drivers/edac/amd64_edac.symtypes $ mv drivers/edac/amd64_edac.{symtypes,symref} $ KBUILD_SYMTYPES=1 make -s drivers/edac/amd64_edac.symtypes drivers/edac/amd64_edac.c:527: warning: amd64_get_dram_hole_info: modversion changed because of changes in struct edac_raw_error_desc Signed-off-by: Michal Marek scripts/genksyms/genksyms.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 7596abf2e5661d52c4f414f37addeed54e098880 Author: Will Deacon Date: Wed Dec 9 13:58:42 2015 +0000 arm64: irq: fix walking from irq stack to task stack Running with CONFIG_DEBUG_SPINLOCK=y can trigger a BUG with the new IRQ stack code: BUG: spinlock lockup suspected on CPU#1 This is due to the IRQ_STACK_TO_TASK_STACK macro incorrectly retrieving the task stack pointer stashed at the top of the IRQ stack. Sayeth James: | Yup, this is what is happening. Its an off-by-one due to broken | thinking about how the stack works. My broken thinking was: | | > top ------------ | > | dummy_lr | <- irq_stack_ptr | > ------------ | > | x29 | | > ------------ | > | x19 | <- irq_stack_ptr - 0x10 | > ------------ | > | xzr | | > ------------ | | But the stack-pointer is decreased before use. So it actually looks | like this: | | > ------------ | > | | <- irq_stack_ptr | > top ------------ | > | dummy_lr | | > ------------ | > | x29 | <- irq_stack_ptr - 0x10 | > ------------ | > | x19 | | > ------------ | > | xzr | <- irq_stack_ptr - 0x20 | > ------------ | | The value being used as the original stack is x29, which in all the | tests is sp but without the current frames data, hence there are no | missing frames in the output. | | Jungseok Lee picked it up with a 32bit user space because aarch32 | can't use x29, so it remains 0 forever. The fix he posted is correct. This patch fixes the macro and adds some of this wisdom to a comment, so that the layout of the IRQ stack is well understood. Cc: James Morse Reported-by: Jungseok Lee Signed-off-by: Will Deacon arch/arm64/include/asm/irq.h | 20 ++++++++++++++++++-- arch/arm64/kernel/entry.S | 2 +- 2 files changed, 19 insertions(+), 3 deletions(-) commit 23509fcd4ec5eadcca7a958b354f79dedc2765cc Author: Rosen, Rami Date: Tue Dec 8 07:09:24 2015 -0500 netfilter: nfnetlink_log: Change setter functions to be void Change return type of nfulnl_set_timeout() and nfulnl_set_qthresh() to be void. This patch changes the return type of the static methods nfulnl_set_timeout() and nfulnl_set_qthresh() to be void, as there is no justification and no need for these methods to return int. Signed-off-by: Rami Rosen Signed-off-by: Pablo Neira Ayuso net/netfilter/nfnetlink_log.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit c83d1b37d45a2ecaea7a6ba4ea010f717bdb2740 Author: Arnd Bergmann Date: Wed Dec 9 14:37:05 2015 +0100 sound/oss: remove VIRT_TO_BUS dependency The OSS sound drivers used to rely on virt_to_bus(), but don't any more, so we can remove the Kconfig dependency. As a lot of architectures don't provide VIRT_TO_BUS any more, removing the dependency in sounds/oss/ would make the deprecated drivers appear there, which we probably don't want. Instead I'm replacing the simple dependency with 'VIRT_TO_BUS || RPC || NETWINDER' so we can still build these sound drivers for the platforms that need them, but don't change anything on other architectures. As a follow-up, we can remove the virt_to_bus() implementation and Kconfig symbol in the ARM architecture. Signed-off-by: Arnd Bergmann Signed-off-by: Takashi Iwai sound/oss/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 893da0c9bcb26acf1ac277f29231bb2a3b0aa95c Author: Sudip Mukherjee Date: Thu Oct 8 19:28:00 2015 +0530 drm/i915: check for return value We were not checking the return value of drm_encoder_init() which can fail. And if it fails then we will be working with an uninitialized encoder. Cc: Daniel Vetter Cc: Jani Nikula Signed-off-by: Sudip Mukherjee Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1444312681-10149-2-git-send-email-sudipm.mukherjee@gmail.com drivers/gpu/drm/i915/intel_dp.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit e97ac12859dbf4d3ee0eddb9798867541d1d1e1e Author: Florian Westphal Date: Tue Dec 8 23:35:19 2015 +0100 netfilter: ipv6: nf_defrag: fix NULL deref panic Valdis reports NULL deref in nf_ct_frag6_gather. Problem is bogus use of skb_queue_walk() -- we miss first skb in the list since we start with head->next instead of head. In case the element we're looking for was head->next we won't find a result and then trip over NULL iter. (defrag uses plain NULL-terminated list rather than one terminated by head-of-list-pointer, which is what skb_queue_walk expects). Fixes: 029f7f3b8701cc7a ("netfilter: ipv6: nf_defrag: avoid/free clone operations") Reported-by: Valdis Kletnieks Tested-by: Valdis Kletnieks Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso net/ipv6/netfilter/nf_conntrack_reasm.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit e639f7ab079b5256660018511d87aa34b54f1a9d Author: Florian Westphal Date: Sat Nov 28 21:53:05 2015 +0100 netfilter: nf_tables: wrap tracing with a static key Only needed when meta nftrace rule(s) were added. The assumption is that no such rules are active, so the call to nft_trace_init is "never" needed. When nftrace rules are active, we always call the nft_trace_* functions, but will only send netlink messages when all of the following are true: - traceinfo structure was initialised - skb->nf_trace == 1 - at least one subscriber to trace group. Adding an extra conditional (static_branch ... && skb->nf_trace) nft_trace_init( ..) Is possible but results in a larger nft_do_chain footprint. Signed-off-by: Florian Westphal Acked-by: Patrick McHardy Signed-off-by: Pablo Neira Ayuso include/net/netfilter/nf_tables_core.h | 1 + include/net/netfilter/nft_meta.h | 3 +++ net/bridge/netfilter/nft_meta_bridge.c | 1 + net/netfilter/nf_tables_core.c | 9 ++++++--- net/netfilter/nf_tables_trace.c | 4 ++++ net/netfilter/nft_meta.c | 16 ++++++++++++++++ 6 files changed, 31 insertions(+), 3 deletions(-) commit 33d5a7b14bfd02e60af9d223db8dfff0cbcabe6b Author: Florian Westphal Date: Sat Nov 28 21:53:04 2015 +0100 netfilter: nf_tables: extend tracing infrastructure nft monitor mode can then decode and display this trace data. Parts of LL/Network/Transport headers are provided as separate attributes. Otherwise, printing IP address data becomes virtually impossible for userspace since in the case of the netdev family we really don't want userspace to have to know all the possible link layer types and/or sizes just to display/print an ip address. We also don't want userspace to have to follow ipv6 header chains to get the s/dport info, the kernel already did this work for us. To avoid bloating nft_do_chain all data required for tracing is encapsulated in nft_traceinfo. The structure is initialized unconditionally(!) for each nft_do_chain invocation. This unconditionall call will be moved under a static key in a followup patch. With lots of help from Patrick McHardy and Pablo Neira. Signed-off-by: Florian Westphal Acked-by: Patrick McHardy Signed-off-by: Pablo Neira Ayuso include/net/netfilter/nf_tables.h | 32 ++++ include/uapi/linux/netfilter/nf_tables.h | 52 ++++++ include/uapi/linux/netfilter/nfnetlink.h | 2 + net/netfilter/Makefile | 2 +- net/netfilter/nf_tables_api.c | 12 +- net/netfilter/nf_tables_core.c | 45 +++-- net/netfilter/nf_tables_trace.c | 271 +++++++++++++++++++++++++++++++ net/netfilter/nfnetlink.c | 1 + 8 files changed, 398 insertions(+), 19 deletions(-) commit 161151d79ff4f7ed35d4ebb0eb7727a517c34ef2 Author: Jason A. Donenfeld Date: Sun Dec 6 02:51:38 2015 +0100 crypto: chacha20poly1305 - Skip encryption/decryption for 0-len If the length of the plaintext is zero, there's no need to waste cycles on encryption and decryption. Using the chacha20poly1305 construction for zero-length plaintexts is a common way of using a shared encryption key for AAD authentication. Signed-off-by: Jason A. Donenfeld Signed-off-by: Herbert Xu crypto/chacha20poly1305.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 3d5b1ecdea6fb94f8c61554fcb2ba776a2d3d0e6 Author: Andrzej Zaborowski Date: Sat Dec 5 17:09:34 2015 +0100 crypto: rsa - RSA padding algorithm This patch adds PKCS#1 v1.5 standard RSA padding as a separate template. This way an RSA cipher with padding can be obtained by instantiating "pkcs1pad(rsa)". The reason for adding this is that RSA is almost never used without this padding (or OAEP) so it will be needed for either certificate work in the kernel or the userspace, and I also hear that it is likely implemented by hardware RSA in which case hardware implementations of the whole of pkcs1pad(rsa) can be provided. Signed-off-by: Andrew Zaborowski Signed-off-by: Herbert Xu crypto/Makefile | 1 + crypto/rsa-pkcs1pad.c | 617 ++++++++++++++++++++++++++++++++++++++++++ crypto/rsa.c | 16 +- include/crypto/internal/rsa.h | 2 + 4 files changed, 635 insertions(+), 1 deletion(-) commit 28a4618ad14cf17009a87d8b5718132a5d4ef852 Author: Andrzej Zaborowski Date: Sat Dec 5 17:09:33 2015 +0100 crypto: akcipher - add akcipher declarations needed by templates. Add a struct akcipher_instance and struct akcipher_spawn similar to how AEAD declares them and the macros for converting to/from crypto_instance/crypto_spawn. Also add register functions to avoid exposing crypto_akcipher_type. Signed-off-by: Andrew Zaborowski Signed-off-by: Herbert Xu crypto/akcipher.c | 34 ++++++++++++++++- include/crypto/internal/akcipher.h | 78 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 111 insertions(+), 1 deletion(-) commit 3771df3cff7536da19cba2b4755ad628dc4bf371 Author: Tadeusz Struk Date: Fri Dec 4 16:56:51 2015 -0800 crypto: qat - add support for c62xvf accel type Add support for c62x accelerator Virtual Function Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/Kconfig | 11 + drivers/crypto/qat/Makefile | 1 + drivers/crypto/qat/qat_c62xvf/Makefile | 3 + drivers/crypto/qat/qat_c62xvf/adf_c62xvf_hw_data.c | 173 ++++++++++++ drivers/crypto/qat/qat_c62xvf/adf_c62xvf_hw_data.h | 64 +++++ drivers/crypto/qat/qat_c62xvf/adf_drv.c | 305 +++++++++++++++++++++ drivers/crypto/qat/qat_common/adf_cfg_common.h | 1 + 7 files changed, 558 insertions(+) commit 8b206f2d666f41f0aa83dec83504801ee945d3dc Author: Tadeusz Struk Date: Fri Dec 4 16:56:45 2015 -0800 crypto: qat - add support for c3xxxvf accel type Add support for c3xxx accelerator Virtual Function Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/Kconfig | 11 + drivers/crypto/qat/Makefile | 1 + drivers/crypto/qat/qat_c3xxxvf/Makefile | 3 + .../crypto/qat/qat_c3xxxvf/adf_c3xxxvf_hw_data.c | 173 ++++++++++++ .../crypto/qat/qat_c3xxxvf/adf_c3xxxvf_hw_data.h | 64 +++++ drivers/crypto/qat/qat_c3xxxvf/adf_drv.c | 305 +++++++++++++++++++++ drivers/crypto/qat/qat_common/adf_cfg_common.h | 3 +- 7 files changed, 559 insertions(+), 1 deletion(-) commit a6dabee6c8ba770bab7a3ec63b6a5c1059331d5c Author: Tadeusz Struk Date: Fri Dec 4 16:56:40 2015 -0800 crypto: qat - add support for c62x accel type Add support for qat c62x accel type Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/Kconfig | 11 + drivers/crypto/qat/Makefile | 1 + drivers/crypto/qat/qat_c62x/Makefile | 3 + drivers/crypto/qat/qat_c62x/adf_c62x_hw_data.c | 248 ++++++++++++++++++ drivers/crypto/qat/qat_c62x/adf_c62x_hw_data.h | 84 +++++++ drivers/crypto/qat/qat_c62x/adf_drv.c | 335 +++++++++++++++++++++++++ drivers/crypto/qat/qat_common/adf_cfg_common.h | 1 + 7 files changed, 683 insertions(+) commit 890c55f4dc0e60a4ba71ab9b6877f69ff7053213 Author: Tadeusz Struk Date: Fri Dec 4 16:56:34 2015 -0800 crypto: qat - add support for c3xxx accel type Add support for c3xxx accel type. Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/Kconfig | 11 + drivers/crypto/qat/Makefile | 1 + drivers/crypto/qat/qat_c3xxx/Makefile | 3 + drivers/crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.c | 248 +++++++++++++++++ drivers/crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.h | 84 ++++++ drivers/crypto/qat/qat_c3xxx/adf_drv.c | 335 +++++++++++++++++++++++ drivers/crypto/qat/qat_common/adf_cfg_common.h | 1 + drivers/crypto/qat/qat_common/adf_dev_mgr.c | 36 ++- 8 files changed, 714 insertions(+), 5 deletions(-) commit 1a72d3a6d1d9a08705546eba14f0390c565ccd24 Author: Tadeusz Struk Date: Fri Dec 4 16:56:28 2015 -0800 crypto: qat - move isr files to qat common so that they can be reused Move qat_isr.c and qat_isrvf.c files to qat_common dir so that they can be reused by all devices. Remove adf_drv.h files because thay are not longer needed. Move adf_dev_configure() function to qat_common so it can be reused. Also some minor updates to common code for multidevice. Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/Makefile | 2 + drivers/crypto/qat/qat_common/adf_accel_devices.h | 4 +- drivers/crypto/qat/qat_common/adf_admin.c | 4 +- drivers/crypto/qat/qat_common/adf_aer.c | 2 +- drivers/crypto/qat/qat_common/adf_common_drv.h | 9 +- drivers/crypto/qat/qat_common/adf_ctl_drv.c | 8 +- drivers/crypto/qat/qat_common/adf_hw_arbiter.c | 8 +- drivers/crypto/qat/qat_common/adf_init.c | 21 +- drivers/crypto/qat/qat_common/adf_isr.c | 348 +++++++++++++++++++++ drivers/crypto/qat/qat_common/adf_pf2vf_msg.c | 23 -- drivers/crypto/qat/qat_common/adf_transport.c | 20 +- .../crypto/qat/qat_common/adf_transport_internal.h | 2 +- drivers/crypto/qat/qat_common/adf_vf_isr.c | 280 +++++++++++++++++ drivers/crypto/qat/qat_common/qat_crypto.c | 92 ++++++ drivers/crypto/qat/qat_dh895xcc/Makefile | 4 +- .../crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.c | 5 +- .../crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.h | 7 +- drivers/crypto/qat/qat_dh895xcc/adf_drv.c | 95 +----- drivers/crypto/qat/qat_dh895xcc/adf_drv.h | 58 ---- drivers/crypto/qat/qat_dh895xcc/adf_isr.c | 332 -------------------- drivers/crypto/qat/qat_dh895xccvf/Makefile | 4 +- .../qat/qat_dh895xccvf/adf_dh895xccvf_hw_data.c | 5 +- .../qat/qat_dh895xccvf/adf_dh895xccvf_hw_data.h | 10 +- drivers/crypto/qat/qat_dh895xccvf/adf_drv.c | 87 +----- drivers/crypto/qat/qat_dh895xccvf/adf_drv.h | 57 ---- drivers/crypto/qat/qat_dh895xccvf/adf_isr.c | 258 --------------- 26 files changed, 768 insertions(+), 977 deletions(-) commit b0272276d903d87160df37f0f56af56cbda59801 Author: Pingchao Yang Date: Fri Dec 4 16:56:23 2015 -0800 crypto: qat - add support for new devices to FW loader FW loader updates for new qat devices Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/adf_accel_engine.c | 9 +- drivers/crypto/qat/qat_common/adf_common_drv.h | 10 +- .../qat/qat_common/icp_qat_fw_loader_handle.h | 10 + drivers/crypto/qat/qat_common/icp_qat_hal.h | 37 +- drivers/crypto/qat/qat_common/icp_qat_uclo.h | 165 +++++- drivers/crypto/qat/qat_common/qat_hal.c | 122 +++-- drivers/crypto/qat/qat_common/qat_uclo.c | 555 ++++++++++++++++++++- 7 files changed, 823 insertions(+), 85 deletions(-) commit 9809ebcd0e8cacb20a938e7a9fab68ea47e80f82 Author: Tadeusz Struk Date: Fri Dec 4 16:56:17 2015 -0800 crypto: qat - add new device definitions Add dev ids and names for the new device types. Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/adf_accel_devices.h | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 70e088fe8c7237eae20991f1e0b2d99ecc5f1292 Author: Randy Dunlap Date: Thu Dec 3 12:00:41 2015 -0800 crypto: aead - fix kernel-doc warnings in crypto/aead.h Fix 21 occurrences of this kernel-doc warning in : ..//include/crypto/aead.h:149: warning: No description found for parameter 'base' Signed-off-by: Randy Dunlap Signed-off-by: Herbert Xu include/crypto/aead.h | 1 + 1 file changed, 1 insertion(+) commit eb0fc0d6ae99305a5aecbcf8a67cce838547d638 Author: Sascha Hauer Date: Mon Nov 30 11:41:39 2015 +0100 dt-bindings: soc: Add supplies for Mediatek SCPSYS unit The power domains in the SCPSYS unit are supplied by regulators. Add the properties for them to the binding document. Signed-off-by: Sascha Hauer Cc: devicetree@vger.kernel.org Acked-by: Rob Herring Signed-off-by: Matthias Brugger Documentation/devicetree/bindings/soc/mediatek/scpsys.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 506a8e87d8d2746b9e9d2433503fe237c54e4750 Author: Chris Wilson Date: Tue Dec 8 11:55:07 2015 +0000 drm/i915: Add soft-pinning API for execbuffer Userspace can pass in an offset that it presumes the object is located at. The kernel will then do its utmost to fit the object into that location. The assumption is that userspace is handling its own object locations (for example along with full-ppgtt) and that the kernel will rarely have to make space for the user's requests. Signed-off-by: Chris Wilson v2: Fixed incorrect eviction found by Michal Winiarski - fix suggested by Chris Wilson. Fixed incorrect error paths causing crash found by Michal Winiarski. (Not published externally) v3: Rebased because of trivial conflict in object_bind_to_vm. Fixed eviction to allow eviction of soft-pinned objects when another soft-pinned object used by a subsequent execbuffer overlaps reported by Michal Winiarski. (Not published externally) v4: Moved soft-pinned objects to the front of ordered_vmas so that they are pinned first after an address conflict happens to avoid repeated conflicts in rare cases (Suggested by Chris Wilson). Expanded comment on drm_i915_gem_exec_object2.offset to cover this new API. v5: Added I915_PARAM_HAS_EXEC_SOFTPIN parameter for detecting this capability (Kristian). Added check for multiple pinnings on eviction (Akash). Made sure buffers are not considered misplaced without the user specifying EXEC_OBJECT_SUPPORTS_48B_ADDRESS. User must assume responsibility for any addressing workarounds. Updated object2.offset field comment again to clarify NO_RELOC case (Chris). checkpatch cleanup. v6: Trivial rebase on latest drm-intel-nightly v7: Catch attempts to pin above the max virtual address size and return EINVAL (Tvrtko). Decouple EXEC_OBJECT_SUPPORTS_48B_ADDRESS and EXEC_OBJECT_PINNED flags, user must pass both flags in any attempt to pin something at an offset above 4GB (Chris, Daniel Vetter). Cc: Chris Wilson Cc: Akash Goel Cc: Vinay Belgaumkar Cc: Michal Winiarski Cc: Zou Nanhai Cc: Kristian Høgsberg Cc: Tvrtko Ursulin Reviewed-by: Michel Thierry Acked-by: PDT Signed-off-by: Thomas Daniel Signed-off-by: Tvrtko Ursulin Link: http://patchwork.freedesktop.org/patch/msgid/1449575707-20933-1-git-send-email-thomas.daniel@intel.com drivers/gpu/drm/i915/i915_dma.c | 3 ++ drivers/gpu/drm/i915/i915_drv.h | 2 + drivers/gpu/drm/i915/i915_gem.c | 64 ++++++++++++++++++++---------- drivers/gpu/drm/i915/i915_gem_evict.c | 39 ++++++++++++++++++ drivers/gpu/drm/i915/i915_gem_execbuffer.c | 16 +++++++- include/uapi/drm/i915_drm.h | 12 ++++-- 6 files changed, 111 insertions(+), 25 deletions(-) commit c2369d3f8cad978dae54fe2149c055a851c32a02 Author: Linus Walleij Date: Wed Dec 9 11:01:33 2015 +0100 gpio: pca953x: make inclusion of unconditional After adding the DT matching in commit 6f29c9afbe636fc0e35c82a11eaf45c3b85eb07a "gpio: pca935x: fix of-only probed devices" compilation fails like this: CC [M] drivers/gpio/gpio-pca953x.o gpio-pca953x.c: In function ‘pca953x_probe’: gpio-pca953x.c:693:11: error: implicit declaration of function ‘of_match_device’ [-Werror=implicit-function-declaration] match = of_match_device(pca953x_dt_ids, &client->dev); ^ gpio-pca953x.c:693:9: warning: assignment makes pointer from integer without a cast [-Wint-conversion] match = of_match_device(pca953x_dt_ids, &client->dev); ^ cc1: some warnings being treated as errors ../scripts/Makefile.build:264: recipe for target 'drivers/gpio/gpio-pca953x.o' failed After removing the conditional inclusion guards compilation works fine again. Might be a module problem so that fix. Cc: Ben Dooks Signed-off-by: Linus Walleij drivers/gpio/gpio-pca953x.c | 2 -- 1 file changed, 2 deletions(-) commit fd9ffd8be01ad1e1204ed4aa2c43ef0a02e3dddc Author: Chen-Yu Tsai Date: Thu Dec 3 15:05:30 2015 +0800 clk: sunxi: Add CLK_OF_DECLARE support for sun8i-a23-apb0-clk driver The APBS clock on sun9i is the same as the APB0 clock on sun8i. With sun9i we are supporting the PRCM clocks by using CLK_OF_DECLARE, instead of through a PRCM mfd device and subdevices for each clock and reset control. As such we need a CLK_OF_DECLARE version of the sun8i-a23-apb0-clk driver. Also, build it for sun9i/A80, and not just for configurations with MFD_SUN6I_PRCM enabled. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard drivers/clk/sunxi/Makefile | 1 + drivers/clk/sunxi/clk-sun8i-apb0.c | 80 ++++++++++++++++++++++++++++++++------ 2 files changed, 69 insertions(+), 12 deletions(-) commit 36b66080dc66ab08ff6c36237147638e2d060874 Author: Daniel Vetter Date: Fri Dec 4 09:46:08 2015 +0100 drm: Document drm_encoder/crtc_helper_funcs Mostly this is about all the callbacks used for modesets by both legacy CRTC helpers and atomic helpers and I figured it doesn't make all that much sense to split this up. v2: Suggestions from Thierry. Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449218769-16577-28-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Thierry Reding include/drm/drm_modeset_helper_vtables.h | 449 +++++++++++++++++++++++++++---- 1 file changed, 401 insertions(+), 48 deletions(-) commit 30ecad77fe849b60c9a1f8df24dca50e3f083d41 Author: Daniel Vetter Date: Wed Dec 9 09:29:36 2015 +0100 drm: Move drm_display_mode an related docs into kerneldoc This was in the documentation for modeset helper hooks, where it is a bit misplaced. v2: Reindent the drm_mode_status enum, inspired by Ville. v3: Suggestions from Ville and Thierry. v4: Small fixup that 0day spotted. v5: Slight change to avoid accidental headings in kerneldoc output. Cc: ville.syrjala@linux.intel.com Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449218769-16577-27-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Ville Syrjälä (v3) Reviewed-by: Thierry Reding (v3) Documentation/DocBook/gpu.tmpl | 192 ---------------------- drivers/gpu/drm/drm_modes.c | 3 +- drivers/gpu/drm/i915/i915_gem.c | 4 + include/drm/drm_modes.h | 343 ++++++++++++++++++++++++++++++++++------ 4 files changed, 302 insertions(+), 240 deletions(-) commit 0f55564406d7005c2d681b14e2b7e2248d8c412d Author: Julia Lawall Date: Tue Dec 8 21:55:27 2015 +0100 drm/i915: constify intel_dvo_dev_ops structures The intel_dvo_dev_ops structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449608127-21715-1-git-send-email-Julia.Lawall@lip6.fr drivers/gpu/drm/i915/dvo.h | 12 ++++++------ drivers/gpu/drm/i915/dvo_ch7017.c | 2 +- drivers/gpu/drm/i915/dvo_ch7xxx.c | 2 +- drivers/gpu/drm/i915/dvo_ivch.c | 2 +- drivers/gpu/drm/i915/dvo_ns2501.c | 2 +- drivers/gpu/drm/i915/dvo_sil164.c | 2 +- drivers/gpu/drm/i915/dvo_tfp410.c | 2 +- 7 files changed, 12 insertions(+), 12 deletions(-) commit 6f29c9afbe636fc0e35c82a11eaf45c3b85eb07a Author: Ben Dooks Date: Tue Dec 8 10:19:26 2015 +0000 gpio: pca935x: fix of-only probed devices If the pca953x device is probed from OF using the proper OF probing then the i2c-client will be NULL and the device probe will fail as id is NULL and it isn't an ACPI device (previous drivers would simply OOPS out). Add support for the of_device_id table having the same data as the others so that the correct paths will be taken when registering a device. An example of current valid of node which did not work: gpio@38 { compatible = "onsemi,pca9654", "nxp,pca9534"; reg = <0x38>; interrupt-parent = <&gpio5>; interrupts = <25 IRQ_TYPE_LEVEL_LOW>; }; Signed-off-by: Ben Dooks Signed-off-by: Linus Walleij drivers/gpio/gpio-pca953x.c | 76 ++++++++++++++++++++++++++------------------- 1 file changed, 44 insertions(+), 32 deletions(-) commit 9f49f6dd0473c8fab4522e2e2cb16e93ffb8f3f0 Author: Ben Dooks Date: Tue Dec 8 10:19:25 2015 +0000 gpio: pca953x: add onsemi,pca9654 id Add onsemi,pca9654 which is also compatible with the nxp,pca9524 as it is an 8bit expander with an interrupt output. Signed-off-by: Ben Dooks Signed-off-by: Linus Walleij Documentation/devicetree/bindings/gpio/gpio-pca953x.txt | 1 + drivers/gpio/gpio-pca953x.c | 2 ++ 2 files changed, 3 insertions(+) commit fbaf9f9f6158a9c07652df88dd0bd68132b93292 Author: Takashi Iwai Date: Wed Dec 9 07:21:49 2015 +0100 ALSA: hda - Don't try to bind i915 unless CONFIG_SND_HDA_I915 is set snd-hda-intel driver tries to bind with i915 audio component always when AZX_DCAPS_I915_POWERWELL is set in the driver caps. This was mostly OK in the past, as the flag was applied only to a limited set of devices, namely, Haswell and Broadwell. On these machines, i915 graphics is almost mandatory as long as HDMI/DP is concerned. Recently the application of i915 binding was widened to more Intel chips. On these chips, the chance of a kernel without i915 graphics is much higher, and such user would hit an error like: snd_hda_intel 0000:00:1b.0: failed to add i915 component master (-19) Although the error itself is harmless, it's certainly superfluous even to try binding with i915, if we already know that there isn't any. This patch fixes it by simply defining AZX_DCAPS_I915_POWERWELL as 0 in the case without i915. Then all codes referring to this flag will be optimized out by the compiler. Fixes: 6603249dcdbb ('ALSA: hda - Enable audio component for old Intel PCH devices') Reported-by: kernel test robot Signed-off-by: Takashi Iwai sound/pci/hda/hda_controller.h | 4 ++++ 1 file changed, 4 insertions(+) commit 6ee8eeb4af0e91975a7cd4795925e499cc79503c Author: Takashi Iwai Date: Wed Dec 9 07:13:48 2015 +0100 ALSA: hda - Less grumbling about lack of i915 binding The recent commit [6603249dcdbb: ALSA: hda - Enable audio component for old Intel PCH devices] enabled the i915 binding for HDMI/DP on old Intel PCHs. But many boards are without HDMI/DP, and they actually don't need i915 binding, and yet the driver has a check of i915 binding and complains like Haswell must be built with CONFIG_SND_HDA_I915 This error is false-positive, and it should be put only for HSW/BDW, instead of all devices that may be bound with i915. This patch fixes the condition to check, as well as rephrasing the message specific to HSW/BDW HDMI/DP. Fixes: 6603249dcdbb ('ALSA: hda - Enable audio component for old Intel PCH devices') Signed-off-by: Takashi Iwai sound/pci/hda/hda_intel.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 580df59fa74e53bb71c21fb4e97d74ca3c9665b2 Author: Bjorn Andersson Date: Mon Nov 23 21:54:34 2015 -0800 ARM: dts: qcom: msm8974: Add i2c8 node Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross arch/arm/boot/dts/qcom-msm8974.dtsi | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 7026d15c7ac10dda22a9f3eda508459c924d7142 Author: Bjorn Andersson Date: Mon Nov 23 11:04:07 2015 -0800 ARM: dts: qcom: msm8974: Disable wled and move it to honami The properties specified in the wled node could harm connected hardware, so move the properties to Honami and disable the platform node. Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts | 13 +++++++++++++ arch/arm/boot/dts/qcom-pm8941.dtsi | 9 ++------- 2 files changed, 15 insertions(+), 7 deletions(-) commit 2ca9c2a4c1ef5faac27076475261788302158722 Author: Stephen Boyd Date: Fri Nov 20 17:49:46 2015 -0800 arm: dts: qcom: Add generic PMIC gpio/MPP compat strings Add the generic compatible strings for the PMIC gpio and MPP modules found on qcom based PMICs. Cc: Cc: "Ivan T. Ivanov" Cc: Bjorn Andersson Cc: Rob Herring Signed-off-by: Stephen Boyd Reviewed-by: Bjorn Andersson Signed-off-by: Andy Gross arch/arm/boot/dts/qcom-apq8064.dtsi | 6 ++++-- arch/arm/boot/dts/qcom-pm8841.dtsi | 2 +- arch/arm/boot/dts/qcom-pm8941.dtsi | 4 ++-- arch/arm/boot/dts/qcom-pma8084.dtsi | 4 ++-- 4 files changed, 9 insertions(+), 7 deletions(-) commit 134c544e9d1b56075c807e6152f2564ad1997327 Author: Stephen Boyd Date: Fri Nov 20 15:31:20 2015 -0800 arm: dts: qcom: Add aliases for PMICs Add an alias for the PMICs found on qcom based SoCs so that the newly updated dtbTool can find the PMIC compatible string and add the pmic-id element to the QCDT header. Signed-off-by: Stephen Boyd Signed-off-by: Andy Gross arch/arm/boot/dts/qcom-apq8074-dragonboard.dts | 2 ++ arch/arm/boot/dts/qcom-apq8084-ifc6540.dts | 1 + arch/arm/boot/dts/qcom-apq8084-mtp.dts | 1 + arch/arm/boot/dts/qcom-pm8841.dtsi | 8 ++++---- arch/arm/boot/dts/qcom-pm8941.dtsi | 8 ++++---- arch/arm/boot/dts/qcom-pma8084.dtsi | 8 ++++---- 6 files changed, 16 insertions(+), 12 deletions(-) commit 9208b5178bdaca21a1101ac61daa3d610e5435bc Author: Stephen Boyd Date: Fri Nov 20 15:31:18 2015 -0800 arm: dts: qcom: Update ifc6540 compat for qcom boot format The ifc6540 is an sbc (single board computer) board, so update the compatible field accordingly. Signed-off-by: Stephen Boyd Signed-off-by: Andy Gross arch/arm/boot/dts/qcom-apq8084-ifc6540.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c40225b50fc523437da0601764da013b499cb596 Author: Stephen Boyd Date: Mon Oct 26 18:26:53 2015 -0700 arm: dts: qcom: Add board clocks These clocks are fixed rate board sources that should be in DT. Add them. Cc: Georgi Djakov Signed-off-by: Stephen Boyd Reviewed-by: Andy Gross Signed-off-by: Andy Gross arch/arm/boot/dts/qcom-msm8960.dtsi | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit 84b0b6bc3a3ea0460e5619302db46ac2197dc3bd Author: Bjorn Andersson Date: Thu Oct 22 11:13:51 2015 -0700 ARM: dts: qcom: apq8064: Introduce Sony Xperia Z dts This introduces initial support for the Sony Xperia Z smartphone, including support for UART, MMC, USB gadget and physical buttons. Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross arch/arm/boot/dts/Makefile | 1 + .../arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dts | 436 +++++++++++++++++++++ 2 files changed, 437 insertions(+) commit 1099b26e2c9178f9b877e5535c49061e6165ecbd Author: Bjorn Andersson Date: Thu Oct 22 11:13:50 2015 -0700 ARM: dts: qcom: apq8064: Introduce gsbi5 and gsbi5 serial node Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross arch/arm/boot/dts/qcom-apq8064.dtsi | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit 2bce6e26364108ce80903e9ec8702dd4ae17b0d5 Author: Bjorn Andersson Date: Thu Oct 22 11:13:49 2015 -0700 ARM: dts: qcom: apq8064: Declare all pm8921 regulators Consolidate all labeling of regulators into the core 8064 dtsi file to make them available from all other dts files. Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross arch/arm/boot/dts/qcom-apq8064-cm-qs600.dts | 16 +++++----- arch/arm/boot/dts/qcom-apq8064-ifc6410.dts | 20 ++++++------- arch/arm/boot/dts/qcom-apq8064.dtsi | 46 +++++++++++++++++++++++++++++ 3 files changed, 64 insertions(+), 18 deletions(-) commit 24a9baf933dcee97864ba6b4412cb7d33facac7b Author: Bjorn Andersson Date: Thu Oct 22 11:13:48 2015 -0700 ARM: dts: qcom: apq8064: Add hwmutex and SMEM nodes Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross arch/arm/boot/dts/qcom-apq8064.dtsi | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) commit 2f5de46c598caba441da75b679f43def795936e7 Author: Bjorn Andersson Date: Thu Sep 24 18:25:00 2015 -0700 dt-binding: soc: qcom: Introduce qcom, smp2p binding documentation Introduce binding documentation for the Qualcomm Shared Memory Point 2 Point protocol. Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross .../devicetree/bindings/soc/qcom/qcom,smp2p.txt | 104 +++++++++++++++++++++ 1 file changed, 104 insertions(+) commit eab5c6bc5210e34f34bd93191c19cfbe762c2cad Author: Bjorn Andersson Date: Thu Sep 24 18:24:59 2015 -0700 dt-binding: soc: qcom: Add Qualcomm SMSM device tree documentation This documents a device tree binding for the Qualcomm Shared Memory State Machine. Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross .../devicetree/bindings/soc/qcom/qcom,smsm.txt | 104 +++++++++++++++++++++ 1 file changed, 104 insertions(+) commit 6a607e03bab31104e8ba53b38598b66d78b4f8ee Author: John Stultz Date: Fri Sep 18 13:31:12 2015 +0100 devicetree: Add hardware rng entry to qcom-apq8064.dtsi Add devicetree data to add support for hw_rng support to the apq8064 dts. Tested on the Nexus7 (2013). Cc: Kumar Gala Cc: Stephen Boyd Cc: Srinivas Kandagatla Cc: devicetree@vger.kernel.org Reviewed-by: Stephen Boyd Signed-off-by: John Stultz Reviewed-by: Bjorn Andersson Signed-off-by: Andy Gross arch/arm/boot/dts/qcom-apq8064.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) commit 76be038cab30796e3a27d34b5dd7e46169fcc78a Author: Bjorn Andersson Date: Tue Oct 20 21:57:49 2015 -0700 ARM: dts: qcom: msm8974-honami: Specify charging parameters Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts | 11 +++++++++++ 1 file changed, 11 insertions(+) commit b9526a81ba92d648cb542e6053a25293b113f991 Author: Bjorn Andersson Date: Tue Oct 20 21:57:48 2015 -0700 ARM: dts: qcom: msm8974-honami: Add uSD slot nodes Add and enable the sdhci2 slot, the pinctrl configuration and card detect. Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross .../boot/dts/qcom-msm8974-sony-xperia-honami.dts | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) commit f44cfceed9b444a959cfca09d8ea9736ad3627a1 Author: Bjorn Andersson Date: Tue Oct 20 21:57:47 2015 -0700 ARM: dts: qcom: msm8974-honami: Add sdhci1 node Introduce the eMMC sdhci node and its pinctrl state. Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross .../boot/dts/qcom-msm8974-sony-xperia-honami.dts | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit e29d22e08eec3a2278e1aa84ea79892e69439cb6 Author: Bjorn Andersson Date: Tue Oct 20 21:57:46 2015 -0700 ARM: dts: qcom: msm8974-honami: Introduce gpio-keys Introduce a gpio-keys node defining the physical keys of the Honami and the associated pinctrl state. Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross .../boot/dts/qcom-msm8974-sony-xperia-honami.dts | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) commit 0c808ab5ea1e13c45d1e87c0dc183bee7121457f Author: Bjorn Andersson Date: Tue Oct 20 21:57:45 2015 -0700 ARM: dts: qcom: msm8974-honami: Add regulator nodes for Honami Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross .../boot/dts/qcom-msm8974-sony-xperia-honami.dts | 226 +++++++++++++++++++++ 1 file changed, 226 insertions(+) commit c2e1445c2a25ccc28054200ef3921decbfae4bf9 Author: Bjorn Andersson Date: Tue Oct 20 21:57:44 2015 -0700 ARM: dts: qcom: msm8974-honami: Define pinctrl state for blsp_uart2 Make sure the blsp1_uart2 pins are in the correct state for the uart. Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross .../boot/dts/qcom-msm8974-sony-xperia-honami.dts | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit edfaff269f94e81b9fbaa130e0ad7776fbb523e2 Author: Geyslan G. Bem Date: Tue Dec 1 20:42:10 2015 -0300 KVM: PPC: Book3S PR: Remove unused variable 'vcpu_book3s' The vcpu_book3s variable is assigned but never used. So remove it. Found using cppcheck. Signed-off-by: Geyslan G. Bem Signed-off-by: Paul Mackerras arch/powerpc/kvm/book3s_64_mmu.c | 3 --- 1 file changed, 3 deletions(-) commit 760a7364f27d974d100118d88190e574626e18a6 Author: Thomas Huth Date: Fri Nov 20 09:11:45 2015 +0100 KVM: PPC: Fix emulation of H_SET_DABR/X on POWER8 In the old DABR register, the BT (Breakpoint Translation) bit is bit number 61. In the new DAWRX register, the WT (Watchpoint Translation) bit is bit number 59. So to move the DABR-BT bit into the position of the DAWRX-WT bit, it has to be shifted by two, not only by one. This fixes hardware watchpoints in gdb of older guests that only use the H_SET_DABR/X interface instead of the new H_SET_MODE interface. Cc: stable@vger.kernel.org # v3.14+ Signed-off-by: Thomas Huth Reviewed-by: Laurent Vivier Reviewed-by: David Gibson Signed-off-by: Paul Mackerras arch/powerpc/kvm/book3s_hv_rmhandlers.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1c9e3d51d5410acbc4fad70d59370ec2f13c6748 Author: Paul Mackerras Date: Thu Nov 12 16:43:48 2015 +1100 KVM: PPC: Book3S HV: Handle unexpected traps in guest entry/exit code better As we saw with the TM Bad Thing type of program interrupt occurring on the hrfid that enters the guest, it is not completely impossible to have a trap occurring in the guest entry/exit code, despite the fact that the code has been written to avoid taking any traps. This adds a check in the kvmppc_handle_exit_hv() function to detect the case when a trap has occurred in the hypervisor-mode code, and instead of treating it just like a trap in guest code, we now print a message and return to userspace with a KVM_EXIT_INTERNAL_ERROR exit reason. Of the various interrupts that get handled in the assembly code in the guest exit path and that can return directly to the guest, the only one that can occur when MSR.HV=1 and MSR.EE=0 is machine check (other than system call, which we can avoid just by not doing a sc instruction). Therefore this adds code to the machine check path to ensure that if the MCE occurred in hypervisor mode, we exit to the host rather than trying to continue the guest. Signed-off-by: Paul Mackerras arch/powerpc/kvm/book3s_hv.c | 18 ++++++++++++++++++ arch/powerpc/kvm/book3s_hv_rmhandlers.S | 2 ++ 2 files changed, 20 insertions(+) commit 264a4aca531bca789d45b9d68158a423e9d54eaf Author: Julia Lawall Date: Tue Dec 8 21:42:09 2015 +0100 chelsio: constify cmac_ops structures The cmac_ops structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb/pm3393.c | 2 +- drivers/net/ethernet/chelsio/cxgb/vsc7326.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 5abe255877d7a928077b0d84a428d03042c5ccc9 Author: Eric Dumazet Date: Tue Dec 8 10:28:30 2015 -0800 bnx2x: remove rx_pkt/rx_calls These fields are updated but never read. Remove the overhead. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x.h | 2 -- drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 4 ---- 2 files changed, 6 deletions(-) commit 4d6acb62d2db5c1cc533c9a0b6e418ef9f63642e Author: Eric Dumazet Date: Tue Dec 8 05:54:40 2015 -0800 bnx2x: avoid soft lockup in bnx2x_poll() Under heavy TX load, bnx2x_poll() can loop forever and trigger soft lockup bugs. A napi poll handler must yield after one TX completion round, risk of livelock is too high otherwise. Bug is very easy to trigger using a debug build, and udp flood, because of added cpu cycles in TX completion, and we do not receive enough packets to break the loop. Reported-by: Willem de Bruijn Signed-off-by: Eric Dumazet Cc: Ariel Elior Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 51 ++++++++++--------------- 1 file changed, 21 insertions(+), 30 deletions(-) commit 46c749eac979c0bf280f760971367e9babe4d05f Author: Herbert Xu Date: Tue Dec 8 17:09:04 2015 +0800 rhashtable: Remove unnecessary wmb for future_tbl The patch 9497df88ab5567daa001829051c5f87161a81ff0 ("rhashtable: Fix reader/rehash race") added a pair of barriers. In fact the wmb is superfluous because every subsequent write to the old or new hash table uses rcu_assign_pointer, which itself carriers a full barrier prior to the assignment. Therefore we may remove the explicit wmb. Signed-off-by: Herbert Xu Acked-by: Thomas Graf Signed-off-by: David S. Miller lib/rhashtable.c | 3 --- 1 file changed, 3 deletions(-) commit bc22ff5363b1842b0507c4eefefde7748dbc7032 Merge: 9cbe9fd 76928c9 Author: David S. Miller Date: Tue Dec 8 22:43:15 2015 -0500 Merge branch 'cxgb4-update-kconfig-and-fixes' Hariprasad Shenai says: ==================== Update Kconfig and some fixes for cxgb4 This series update Kconfig to add description for Chelsio's next generation T6 family of adapters, also fixes ethtool stats alignment and prevents simultaneous execution of service_ofldq thread, deals with queue wrap around and adds some fl counters for debugging purpose and device ID for new T5 adapters. 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. Thanks V2: Declare 'service_ofldq_running' as bool in Patch 4/7 ("cxgb4: prevent simultaneous execution of service_ofldq()") based on review comment by David Miller ==================== Signed-off-by: David S. Miller commit 76928c904313ba1fa73b68bee505bfa7ed708dfc Author: Hariprasad Shenai Date: Tue Dec 8 10:09:17 2015 +0530 cxgb4: Adds PCI device id for new T5 adapters Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/t4_pci_id_tbl.h | 3 +++ 1 file changed, 3 insertions(+) commit 70055dd0640666a8ffe7c98e91f0b36fd380fe2a Author: Hariprasad Shenai Date: Tue Dec 8 10:09:16 2015 +0530 cxgb4: Add FL DMA mapping error and low counter Add Free List DMA Mapping Errors to SGE Queue info for Free Lists. Add Free List "Low" counter to count the number of times we see the number of pointers that we _think_ the hardware sees in the Free List below the Egress Threshold. Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 2 ++ drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c | 6 ++++++ drivers/net/ethernet/chelsio/cxgb4/sge.c | 3 +++ 3 files changed, 11 insertions(+) commit 8d0557d27d59e830b2f90cfcd06a4e4e20e5f11d Author: Hariprasad Shenai Date: Tue Dec 8 10:09:15 2015 +0530 cxgb4: Deal with wrap-around of queue for Work request The WR headers may not fit within one descriptor. So we need to deal with wrap-around here. Based on original patch by Pranjal Joshi Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/sge.c | 57 +++++++++++++++++++++++++++++--- 1 file changed, 53 insertions(+), 4 deletions(-) commit 126fca643e3f6ee6e26533366f77acdd9e07d2ec Author: Hariprasad Shenai Date: Tue Dec 8 10:09:14 2015 +0530 cxgb4: prevent simultaneous execution of service_ofldq() Change mutual exclusion mechanism to prevent multiple threads of execution from running in service_ofldq() at the same time. The old mechanism used an implicit guard on the down-call path and none on the restart path and wasn't working. This checking makes the mechanism explicit and is much easier to understand as a result. Based on original work by Casey Leedom Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 1 + drivers/net/ethernet/chelsio/cxgb4/sge.c | 56 ++++++++++++++++++++++++++---- 2 files changed, 51 insertions(+), 6 deletions(-) commit 632be1942d084df89066986e74b56ff0110dd621 Author: Hariprasad Shenai Date: Tue Dec 8 10:09:13 2015 +0530 cxgb4: Use ACCES_ONCE macro to read queue's consumer index Use helper macro ACCESS_ONCE() to load from the SGE status page to prevent the compiler loading multiple times. Based on original work by Mike Werner Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/sge.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b8759e917e9c78ef35c10a79ce47c5889306aaa8 Author: Hariprasad Shenai Date: Tue Dec 8 10:09:12 2015 +0530 cxgb4/cxgb4vf: update Kconfig file to include T6 adapter Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/Kconfig | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit 0bf9a7d6174f4fc4a9355ec0804d44cf0ff53e24 Author: Hariprasad Shenai Date: Tue Dec 8 10:09:11 2015 +0530 cxgb4: Align rest of the ethtool get stats Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c | 146 ++++++++++----------- 1 file changed, 73 insertions(+), 73 deletions(-) commit 0d0def49d05ae988936268b0e57d19aeef8c3ad2 Author: Al Viro Date: Tue Nov 17 21:14:24 2015 -0500 teach nfs_get_link() to work in RCU mode based upon the corresponding patch from Neil's March patchset, again with kmap-related horrors removed. Signed-off-by: Al Viro fs/nfs/inode.c | 21 +++++++++++++++++++++ fs/nfs/symlink.c | 30 ++++++++++++++++++++---------- include/linux/nfs_fs.h | 1 + 3 files changed, 42 insertions(+), 10 deletions(-) commit 1a384eaac265b57961c9696d9177f82eb84319e9 Author: Al Viro Date: Tue Nov 17 10:58:42 2015 -0500 teach proc_self_get_link()/proc_thread_self_get_link() to work in RCU mode Signed-off-by: Al Viro fs/proc/self.c | 8 +++----- fs/proc/thread_self.c | 9 ++++----- 2 files changed, 7 insertions(+), 10 deletions(-) commit 6a6c99049635473b64c384135a6906a10df2c916 Author: Al Viro Date: Tue Nov 17 10:54:32 2015 -0500 teach shmem_get_link() to work in RCU mode Signed-off-by: Al Viro mm/shmem.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) commit d3883d4f93449343be6296e2274360db39b6842a Author: Al Viro Date: Tue Nov 17 10:41:04 2015 -0500 teach page_get_link() to work in RCU mode more or less along the lines of Neil's patchset, sans the insanity around kmap(). Signed-off-by: Al Viro fs/namei.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) commit 6b2553918d8b4e6de9853fd6315bec7271a2e592 Author: Al Viro Date: Tue Nov 17 10:20:54 2015 -0500 replace ->follow_link() with new method that could stay in RCU mode new method: ->get_link(); replacement of ->follow_link(). The differences are: * inode and dentry are passed separately * might be called both in RCU and non-RCU mode; the former is indicated by passing it a NULL dentry. * when called that way it isn't allowed to block and should return ERR_PTR(-ECHILD) if it needs to be called in non-RCU mode. It's a flagday change - the old method is gone, all in-tree instances converted. Conversion isn't hard; said that, so far very few instances do not immediately bail out when called in RCU mode. That'll change in the next commits. Signed-off-by: Al Viro Documentation/filesystems/Locking | 4 +-- Documentation/filesystems/porting | 6 ++++ drivers/staging/lustre/lustre/llite/symlink.c | 8 +++-- fs/9p/vfs_inode.c | 17 +++++++--- fs/9p/vfs_inode_dotl.c | 14 ++++++--- fs/affs/symlink.c | 4 +-- fs/autofs4/symlink.c | 13 +++++--- fs/btrfs/inode.c | 2 +- fs/ceph/inode.c | 2 +- fs/cifs/cifsfs.c | 2 +- fs/cifs/cifsfs.h | 4 +-- fs/cifs/link.c | 6 ++-- fs/coda/cnode.c | 2 +- fs/configfs/symlink.c | 11 +++++-- fs/dcache.c | 2 +- fs/ecryptfs/inode.c | 12 +++++-- fs/ext2/symlink.c | 4 +-- fs/ext4/symlink.c | 13 +++++--- fs/f2fs/namei.c | 16 ++++++---- fs/fuse/dir.c | 9 ++++-- fs/gfs2/inode.c | 15 ++++++--- fs/hostfs/hostfs_kern.c | 10 ++++-- fs/jffs2/symlink.c | 2 +- fs/jfs/symlink.c | 4 +-- fs/kernfs/symlink.c | 11 +++++-- fs/libfs.c | 9 +++--- fs/minix/inode.c | 2 +- fs/namei.c | 45 +++++++++++++++++---------- fs/ncpfs/inode.c | 2 +- fs/nfs/symlink.c | 9 ++++-- fs/nilfs2/namei.c | 2 +- fs/ocfs2/symlink.c | 2 +- fs/overlayfs/inode.c | 12 ++++--- fs/proc/base.c | 22 +++++++------ fs/proc/inode.c | 7 +++-- fs/proc/namespaces.c | 9 ++++-- fs/proc/self.c | 9 ++++-- fs/proc/thread_self.c | 9 ++++-- fs/reiserfs/namei.c | 2 +- fs/squashfs/symlink.c | 2 +- fs/sysv/inode.c | 2 +- fs/ubifs/file.c | 2 +- fs/xfs/xfs_iops.c | 8 +++-- include/linux/fs.h | 6 ++-- mm/shmem.c | 12 ++++--- 45 files changed, 234 insertions(+), 132 deletions(-) commit 21fc61c73c3903c4c312d0802da01ec2b323d174 Author: Al Viro Date: Tue Nov 17 01:07:57 2015 -0500 don't put symlink bodies in pagecache into highmem kmap() in page_follow_link_light() needed to go - allowing to hold an arbitrary number of kmaps for long is a great way to deadlocking the system. new helper (inode_nohighmem(inode)) needs to be used for pagecache symlinks inodes; done for all in-tree cases. page_follow_link_light() instrumented to yell about anything missed. Signed-off-by: Al Viro Documentation/filesystems/porting | 5 +++++ fs/affs/inode.c | 1 + fs/affs/namei.c | 1 + fs/affs/symlink.c | 4 +--- fs/afs/inode.c | 1 + fs/befs/linuxvfs.c | 5 ++--- fs/btrfs/inode.c | 2 ++ fs/coda/cnode.c | 2 ++ fs/coda/symlink.c | 4 +--- fs/cramfs/inode.c | 1 + fs/efs/inode.c | 1 + fs/efs/symlink.c | 4 +--- fs/exofs/inode.c | 1 + fs/exofs/namei.c | 1 + fs/ext2/inode.c | 1 + fs/ext2/namei.c | 1 + fs/ext4/inode.c | 1 + fs/ext4/namei.c | 1 + fs/ext4/symlink.c | 10 +++------- fs/f2fs/inode.c | 1 + fs/f2fs/namei.c | 5 ++--- fs/freevxfs/vxfs_inode.c | 1 + fs/hfsplus/inode.c | 2 ++ fs/hpfs/inode.c | 1 + fs/hpfs/namei.c | 5 ++--- fs/hugetlbfs/inode.c | 1 + fs/inode.c | 6 ++++++ fs/isofs/inode.c | 1 + fs/isofs/rock.c | 4 +--- fs/jfs/inode.c | 1 + fs/jfs/namei.c | 1 + fs/logfs/dir.c | 1 + fs/logfs/inode.c | 1 + fs/minix/inode.c | 1 + fs/namei.c | 9 +++------ fs/ncpfs/inode.c | 1 + fs/nfs/inode.c | 5 +++-- fs/nfs/symlink.c | 2 +- fs/nilfs2/inode.c | 1 + fs/nilfs2/namei.c | 1 + fs/ocfs2/inode.c | 1 + fs/ocfs2/namei.c | 1 + fs/qnx4/inode.c | 1 + fs/qnx6/inode.c | 1 + fs/ramfs/inode.c | 1 + fs/reiserfs/inode.c | 1 + fs/reiserfs/namei.c | 1 + fs/romfs/super.c | 1 + fs/squashfs/inode.c | 2 ++ fs/sysv/inode.c | 1 + fs/udf/inode.c | 1 + fs/udf/namei.c | 1 + fs/udf/symlink.c | 4 +--- fs/ufs/inode.c | 1 + fs/ufs/namei.c | 1 + include/linux/fs.h | 1 + mm/shmem.c | 9 +++------ 57 files changed, 81 insertions(+), 46 deletions(-) commit 9cbe9fd5214e18e6b6039136f83acf4a2695c608 Author: yankejian Date: Tue Dec 8 11:02:31 2015 +0800 net: hns: optimize XGE capability by reducing cpu usage here is the patch raising the performance of XGE by: 1)changes the way page management method for enet momery, and 2)reduces the count of rmb, and 3)adds Memory prefetching Signed-off-by: Kejian Yan Signed-off-by: David S. Miller drivers/net/ethernet/hisilicon/hns/hnae.h | 5 +- drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c | 1 - drivers/net/ethernet/hisilicon/hns/hns_enet.c | 79 +++++++++++++++-------- 3 files changed, 55 insertions(+), 30 deletions(-) commit bd1060a1d67128bb8fbe2e1384c518912cbe54e7 Author: Tejun Heo Date: Mon Dec 7 17:38:53 2015 -0500 sock, cgroup: add sock->sk_cgroup In cgroup v1, dealing with cgroup membership was difficult because the number of membership associations was unbound. As a result, cgroup v1 grew several controllers whose primary purpose is either tagging membership or pull in configuration knobs from other subsystems so that cgroup membership test can be avoided. net_cls and net_prio controllers are examples of the latter. They allow configuring network-specific attributes from cgroup side so that network subsystem can avoid testing cgroup membership; unfortunately, these are not only cumbersome but also problematic. Both net_cls and net_prio aren't properly hierarchical. Both inherit configuration from the parent on creation but there's no interaction afterwards. An ancestor doesn't restrict the behavior in its subtree in anyway and configuration changes aren't propagated downwards. Especially when combined with cgroup delegation, this is problematic because delegatees can mess up whatever network configuration implemented at the system level. net_prio would allow the delegatees to set whatever priority value regardless of CAP_NET_ADMIN and net_cls the same for classid. While it is possible to solve these issues from controller side by implementing hierarchical allowable ranges in both controllers, it would involve quite a bit of complexity in the controllers and further obfuscate network configuration as it becomes even more difficult to tell what's actually being configured looking from the network side. While not much can be done for v1 at this point, as membership handling is sane on cgroup v2, it'd be better to make cgroup matching behave like other network matches and classifiers than introducing further complications. In preparation, this patch updates sock->sk_cgrp_data handling so that it points to the v2 cgroup that sock was created in until either net_prio or net_cls is used. Once either of the two is used, sock->sk_cgrp_data reverts to its previous role of carrying prioidx and classid. This is to avoid adding yet another cgroup related field to struct sock. As the mode switching can happen at most once per boot, the switching mechanism is aimed at lowering hot path overhead. It may leak a finite, likely small, number of cgroup refs and report spurious prioidx or classid on switching; however, dynamic updates of prioidx and classid have always been racy and lossy - socks between creation and fd installation are never updated, config changes don't update existing sockets at all, and prioidx may index with dead and recycled cgroup IDs. Non-critical inaccuracies from small race windows won't make any noticeable difference. This patch doesn't make use of the pointer yet. The following patch will implement netfilter match for cgroup2 membership. v2: Use sock_cgroup_data to avoid inflating struct sock w/ another cgroup specific field. v3: Add comments explaining why sock_data_prioidx() and sock_data_classid() use different fallback values. Signed-off-by: Tejun Heo Cc: Daniel Borkmann Cc: Daniel Wagner CC: Neil Horman Signed-off-by: David S. Miller include/linux/cgroup-defs.h | 88 +++++++++++++++++++++++++++++++++++++++++--- include/linux/cgroup.h | 41 +++++++++++++++++++++ kernel/cgroup.c | 55 ++++++++++++++++++++++++++- net/core/netclassid_cgroup.c | 7 +++- net/core/netprio_cgroup.c | 7 +++- net/core/sock.c | 2 + 6 files changed, 191 insertions(+), 9 deletions(-) commit 2a56a1fec290bf0bc4676bbf4efdb3744953a3e7 Author: Tejun Heo Date: Mon Dec 7 17:38:52 2015 -0500 net: wrap sock->sk_cgrp_prioidx and ->sk_classid inside a struct Introduce sock->sk_cgrp_data which is a struct sock_cgroup_data. ->sk_cgroup_prioidx and ->sk_classid are moved into it. The struct and its accessors are defined in cgroup-defs.h. This is to prepare for overloading the fields with a cgroup pointer. This patch mostly performs equivalent conversions but the followings are noteworthy. * Equality test before updating classid is removed from sock_update_classid(). This shouldn't make any noticeable difference and a similar test will be implemented on the helper side later. * sock_update_netprioidx() now takes struct sock_cgroup_data and can be moved to netprio_cgroup.h without causing include dependency loop. Moved. * The dummy version of sock_update_netprioidx() converted to a static inline function while at it. Signed-off-by: Tejun Heo Signed-off-by: David S. Miller include/linux/cgroup-defs.h | 36 ++++++++++++++++++++++++++++++++++++ include/net/cls_cgroup.h | 11 +++++------ include/net/netprio_cgroup.h | 16 +++++++++++++--- include/net/sock.h | 11 +++-------- net/Kconfig | 6 ++++++ net/core/dev.c | 3 ++- net/core/netclassid_cgroup.c | 4 ++-- net/core/netprio_cgroup.c | 3 ++- net/core/scm.c | 4 ++-- net/core/sock.c | 15 ++------------- net/netfilter/nft_meta.c | 2 +- net/netfilter/xt_cgroup.c | 3 ++- 12 files changed, 76 insertions(+), 38 deletions(-) commit 297dbde19cf6a0ccb6fd4396c6220a5912ed61e8 Author: Tejun Heo Date: Mon Dec 7 17:38:51 2015 -0500 netprio_cgroup: limit the maximum css->id to USHRT_MAX netprio builds per-netdev contiguous priomap array which is indexed by css->id. The array is allocated using kzalloc() effectively limiting the maximum ID supported to some thousand range. This patch caps the maximum supported css->id to USHRT_MAX which should be way above what is actually useable. This allows reducing sock->sk_cgrp_prioidx to u16 from u32. The freed up part will be used to overload the cgroup related fields. sock->sk_cgrp_prioidx's position is swapped with sk_mark so that the two cgroup related fields are adjacent. Signed-off-by: Tejun Heo Acked-by: Daniel Wagner Cc: Daniel Borkmann CC: Neil Horman Signed-off-by: David S. Miller include/net/sock.h | 10 +++++----- net/core/netprio_cgroup.c | 9 +++++++++ 2 files changed, 14 insertions(+), 5 deletions(-) commit bc9b145a092aca91a7f6ef40cdb3628b6ada7ec9 Merge: 8ac2837 16af439 Author: David S. Miller Date: Tue Dec 8 22:01:38 2015 -0500 Merge branch 'for-4.5-ancestor-test' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup Preparatory changes for some new socket cgroup infrastructure and netfilter targets. Signed-off-by: David S. Miller commit 8ac2837c89c8c0fcad557e4380aeef80580390f9 Author: Stefan Hajnoczi Date: Wed Dec 9 10:51:12 2015 +0800 Revert "Merge branch 'vsock-virtio'" This reverts commit 0d76d6e8b2507983a2cae4c09880798079007421 and merge commit c402293bd76fbc93e52ef8c0947ab81eea3ae019, reversing changes made to c89359a42e2a49656451569c382eed63e781153c. The virtio-vsock device specification is not finalized yet. Michael Tsirkin voiced concerned about merging this code when the hardware interface (and possibly the userspace interface) could still change. Signed-off-by: Stefan Hajnoczi Signed-off-by: David S. Miller drivers/vhost/Kconfig | 4 - drivers/vhost/Kconfig.vsock | 7 - drivers/vhost/Makefile | 4 - drivers/vhost/vsock.c | 630 --------------- drivers/vhost/vsock.h | 4 - include/linux/virtio_vsock.h | 209 ----- include/net/af_vsock.h | 2 - include/uapi/linux/virtio_ids.h | 1 - include/uapi/linux/virtio_vsock.h | 89 --- net/vmw_vsock/Kconfig | 18 - net/vmw_vsock/Makefile | 2 - net/vmw_vsock/af_vsock.c | 70 -- net/vmw_vsock/virtio_transport.c | 466 ----------- net/vmw_vsock/virtio_transport_common.c | 1272 ------------------------------- 14 files changed, 2778 deletions(-) commit bc0b8b66e0be6c30186551876e525a304c59b342 Merge: 3cdb730 78fa3c5 Author: David S. Miller Date: Tue Dec 8 21:55:06 2015 -0500 Merge branch 'sh_eth-optimize-mdio' Sergei Shtylyov says: ==================== sh_eth: optimize MDIO code Here's a set of 3 patches against DaveM's 'net-next.git' repo which gets rid of ~35 LoCs in the MDIO bitbang methods. ==================== Signed-off-by: David S. Miller commit 78fa3c5c52e63281415b73ee83a05ee4194498b1 Author: Sergei Shtylyov Date: Tue Dec 8 00:41:43 2015 +0300 sh_eth: get rid of bb_{set|clr|read}() After the MDIO bitbang code consolidation, there's no need anymore for bb_{set|clr}() as well as bb_read() -- just expand them inline, thus saving more LoCs... Signed-off-by: Sergei Shtylyov Acked-by: Simon Horman Signed-off-by: David S. Miller drivers/net/ethernet/renesas/sh_eth.c | 27 ++++++--------------------- 1 file changed, 6 insertions(+), 21 deletions(-) commit 39b4b06b8b20ae011373bae5f9552cce17c47f64 Author: Sergei Shtylyov Date: Tue Dec 8 00:40:57 2015 +0300 sh_eth: factor out common code from MDIO bitbang methods sh_mm[cd]_ctrl() and sh_set_mdio() all look mostly the same -- factor out their common code and put it into sh_mdio_ctrl(). Signed-off-by: Sergei Shtylyov Acked-by: Simon Horman Signed-off-by: David S. Miller drivers/net/ethernet/renesas/sh_eth.c | 35 ++++++++++++----------------------- 1 file changed, 12 insertions(+), 23 deletions(-) commit 3242e2b46d297e48846022694502d9023c22f6c1 Author: Sergei Shtylyov Date: Tue Dec 8 00:40:19 2015 +0300 sh_eth: remove mask fields from 'struct bb_info' The MDIO control bits are always mapped to the same bits of the same register (PIR), so there's no need to store their masks in the 'struct bb_info'... Signed-off-by: Sergei Shtylyov Acked-by: Simon Horman Signed-off-by: David S. Miller drivers/net/ethernet/renesas/sh_eth.c | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) commit 3cdb73091767649ffd706a5caa3e75a411176f29 Author: Julia Lawall Date: Tue Dec 8 21:18:25 2015 +0100 drivers: net: xgene: constify xgene_mac_ops and xgene_port_ops structures The xgene_mac_ops and xgene_port_ops structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: David S. Miller drivers/net/ethernet/apm/xgene/xgene_enet_hw.c | 4 ++-- drivers/net/ethernet/apm/xgene/xgene_enet_hw.h | 4 ++-- drivers/net/ethernet/apm/xgene/xgene_enet_main.c | 8 ++++---- drivers/net/ethernet/apm/xgene/xgene_enet_main.h | 4 ++-- drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c | 4 ++-- drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.h | 4 ++-- drivers/net/ethernet/apm/xgene/xgene_enet_xgmac.c | 4 ++-- drivers/net/ethernet/apm/xgene/xgene_enet_xgmac.h | 4 ++-- 8 files changed, 18 insertions(+), 18 deletions(-) commit 2b81b84471b9a58173cb4198a3e5ab5dc685c2f1 Author: Rodrigo Vivi Date: Tue Dec 8 16:58:38 2015 -0800 drm/i915/kbl: drm/i915: Avoid GuC loading for now on Kabylake. GuC has no version for KBL published yet and it is not recommended to load the Skylake one, so let's avoid loading this for now while we don't have the proper GuC firmware for Kabylake. Signed-off-by: Rodrigo Vivi Reviewed-by: Alex Dai Link: http://patchwork.freedesktop.org/patch/msgid/1449622718-21684-1-git-send-email-rodrigo.vivi@intel.com drivers/gpu/drm/i915/i915_drv.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a5b7991c0a7b3ea33bc2848f6dc701f170e23b64 Author: Rodrigo Vivi Date: Tue Dec 8 16:58:37 2015 -0800 drm/i915/kbl: Use propper ddi buffer translation table for Kabylake ULT and ULX. Let's introduce ULT and ULX Kabylake definitions and start using it for a propper DDI buffer translation. v2: Remove extra white space. (Paulo) Signed-off-by: Rodrigo Vivi Reviewed-by: Paulo Zanoni drivers/gpu/drm/i915/i915_drv.h | 8 ++++++++ drivers/gpu/drm/i915/intel_ddi.c | 10 +++++----- 2 files changed, 13 insertions(+), 5 deletions(-) commit 76fc35ddf8c075aa0e3f52384591d613b906ebb6 Author: Jarkko Nikula Date: Tue Dec 8 16:17:25 2015 +0200 PCI / PM: Fix small typo in documentation cuased -> caused Signed-off-by: Jarkko Nikula Signed-off-by: Rafael J. Wysocki Documentation/power/pci.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 299f2ffed329c1a2ea8d6e90f0df26b885d16e08 Author: Julia Lawall Date: Sun Dec 6 17:33:45 2015 +0100 PCI / PM: constify pci_platform_pm_ops structure The pci_platform_pm_ops structure is never modified, so declare it as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Acked-by: Bjorn Helgaas Signed-off-by: Rafael J. Wysocki drivers/pci/pci-acpi.c | 2 +- drivers/pci/pci.c | 4 ++-- drivers/pci/pci.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit 2d12b6b381ba059d5f92798f5ea739672a2f5fcf Author: Lukas Wunner Date: Wed Nov 25 21:19:55 2015 +0100 ACPI / utils: Add acpi_dev_present() There's an idiom in use by 7 Linux drivers to detect the presence of a particular ACPI HID by walking the namespace with acpi_get_devices(). The callback passed to acpi_get_devices() is mostly identical across the drivers, leading to lots of duplicate code. Add acpi_dev_present(), the ACPI equivalent to pci_dev_present(), allowing us to deduplicate all that boilerplate in the drivers. Signed-off-by: Lukas Wunner Reviewed-by: Hanjun Guo Signed-off-by: Rafael J. Wysocki drivers/acpi/internal.h | 8 ++++++++ drivers/acpi/scan.c | 8 +------- drivers/acpi/utils.c | 31 +++++++++++++++++++++++++++++++ include/acpi/acpi_bus.h | 2 ++ 4 files changed, 42 insertions(+), 7 deletions(-) commit ca9dc8d42b30e2d766b471fe5ecf0c71fd309c8f Author: Lukas Wunner Date: Wed Nov 25 21:19:55 2015 +0100 ACPI / scan: Fix acpi_bus_id_list bookkeeping acpi_device_add() allocates and adds an element to acpi_bus_id_list (or increments the instance count if the device's HID is already present in the list), but the element is never deleted from the list nor freed. Fix it. Signed-off-by: Lukas Wunner Signed-off-by: Rafael J. Wysocki drivers/acpi/scan.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 6bb691ac089c39bb0aa73bdcc21ffd8c846e4ba5 Author: Dmitry Krivenok Date: Wed Dec 2 09:39:29 2015 +0300 nvdimm: do not show pfn_seed for non pmem regions This simple change hides pfn_seed attribute for non pmem regions because they don't support pfn anyway. Signed-off-by: Dmitry V. Krivenok Signed-off-by: Dan Williams drivers/nvdimm/region_devs.c | 3 +++ 1 file changed, 3 insertions(+) commit bd26d0d0ce7434a86dde61a7c65c94fe3801d8f6 Author: Dmitry Krivenok Date: Wed Dec 2 00:48:12 2015 +0300 nvdimm: improve diagnosibility of namespaces In order to bind namespace to the driver user must first set all mandatory attributes in the following order: - uuid - size - sector_size (for blk namespace only) If the order is wrong, then user either won't be able to set the attribute or bind the namespace. This simple patch improves diagnosibility of common operations with namespaces by printing some details about the error instead of failing silently. Below are examples of error messages (assuming dyndbg is enabled for nvdimms): [/]# echo 4194304 > /sys/bus/nd/devices/region5/namespace5.0/size [ 288.372612] nd namespace5.0: __size_store: uuid not set [ 288.374839] nd namespace5.0: size_store: 400000 fail (-6) sh: write error: No such device or address [/]# [/]# echo namespace5.0 > /sys/bus/nd/drivers/nd_blk/bind [ 554.671648] nd_blk namespace5.0: nvdimm_namespace_common_probe: sector size not set [ 554.674688] ndbus1: nd_blk.probe(namespace5.0) = -19 sh: write error: No such device [/]# Signed-off-by: Dmitry V. Krivenok Signed-off-by: Dan Williams drivers/nvdimm/namespace_devs.c | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) commit c3a49cf35ead83829e54fc771a3acc1b1aa6dfd8 Author: Andy Shevchenko Date: Fri Dec 4 23:49:20 2015 +0200 ACPI / LPSS: power on when probe() and otherwise when remove() When LPSS drivers are compiled as a module, which is usually the case, the second probe of that driver may fail because the driver is written in an assumption that device is powered on. That is not the case for all drivers. Moreover we would like not drain power in vain. Implement ->activate() and ->dismiss() callbacks in the ACPI LPSS custom power domain. -------- 8< -------- 8< -------- 8< -------- 8< -------- 8< -------- Case 1: The I2C probe() repeat. /sys/bus/platform/devices/808622C1:00 \_SB_.PCI0.I2C1 [D3hot] /sys/bus/platform/devices/808622C1:01 \_SB_.PCI0.I2C2 [D3hot] /sys/bus/platform/devices/808622C1:02 \_SB_.PCI0.I2C3 [D3hot] /sys/bus/platform/devices/808622C1:03 \_SB_.PCI0.I2C4 [D3hot] /sys/bus/platform/devices/808622C1:05 \_SB_.PCI0.I2C6 [D3hot] /sys/bus/platform/devices/808622C1:06 \_SB_.PCI0.I2C7 [D3hot] % modprobe i2c-designware-platform i2c_designware 808622C1:00: Unknown Synopsys component type: 0xffffffff i2c_designware 808622C1:01: Unknown Synopsys component type: 0xffffffff i2c_designware 808622C1:02: Unknown Synopsys component type: 0xffffffff i2c_designware 808622C1:03: Unknown Synopsys component type: 0xffffffff i2c_designware 808622C1:05: Unknown Synopsys component type: 0xffffffff i2c_designware 808622C1:06: Unknown Synopsys component type: 0xffffffff Case 2: The power drain in case of SDHCI. /sys/bus/platform/devices/80860F14:00 \_SB_.PCI0.SDHA [D3hot] /sys/bus/platform/devices/80860F14:01 \_SB_.PCI0.SDHC [D3hot] % modprobe -r sdhci-acpi mmc0: card 0001 removed /sys/bus/platform/devices/80860F14:00 \_SB_.PCI0.SDHA [D0] /sys/bus/platform/devices/80860F14:01 \_SB_.PCI0.SDHC [D0] -------- 8< -------- 8< -------- 8< -------- 8< -------- 8< -------- Patch fixes above problems. Signed-off-by: Andy Shevchenko Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_lpss.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) commit 02b98540433e6018806df539071c495a63cc0da4 Author: Andy Shevchenko Date: Fri Dec 4 23:49:21 2015 +0200 ACPI / LPSS: do delay for all LPSS devices when D3->D0 The LPSS DMA device has no context to save, though it requires the same delay like the rest of LPSS devices when power state is changed from D3 to D0. Do delay for the DMA device as well. Signed-off-by: Andy Shevchenko Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_lpss.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) commit de16d55206c5ce82ad44590b01718fbe2323853c Author: Andy Shevchenko Date: Fri Dec 4 23:49:19 2015 +0200 ACPI / LPSS: allow to use specific PM domain during ->probe() This is an amendment to previously pushed commit 01ac170ba29a (ACPI / LPSS: allow to use specific PM domain during ->probe()). We can't assign anything to the platform device on ADD_DEVICE stage since it might be changed during unbound / bind cycle. Signed-off-by: Andy Shevchenko Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_lpss.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit b5f88dd1d6efc472e35ca1b21a44e662c5422088 Author: Andy Shevchenko Date: Fri Dec 4 23:49:18 2015 +0200 Revert "ACPI / LPSS: allow to use specific PM domain during ->probe()" The specific power domain can't be used in a way provided by the commit 01ac170ba29a, i.e. pointer to platform device is a subject to change during unbound / bind cycle. This reverts commit 01ac170ba29a9903ee590e1ef2d8e6b27b49a16c. Fixes: 3df2da968744 (Revert "ACPI / LPSS: introduce a 'proxy' device to power on LPSS for DMA") Signed-off-by: Andy Shevchenko Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_lpss.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 14b6257a5f3dca3817b0826cb32967e3c2b935c8 Author: Andy Shevchenko Date: Fri Dec 4 23:49:17 2015 +0200 device core: add BUS_NOTIFY_DRIVER_NOT_BOUND notification The users of BUS_NOTIFY_BIND_DRIVER have no chance to do any cleanup in case of a probe failure. In the result there might be problems, such as some resources that had been allocated will continue to be allocated and therefore lead to a resource leak. Introduce a new notification to inform the subscriber that ->probe() failed. Do the same in case of failed device_bind_driver() call. Signed-off-by: Andy Shevchenko Acked-by: Greg Kroah-Hartman Signed-off-by: Rafael J. Wysocki drivers/base/dd.c | 10 ++++++++-- include/linux/device.h | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) commit 4077a387b79f41e262e9e7332a23b24860407b18 Author: Andy Shevchenko Date: Wed Nov 11 19:59:29 2015 +0200 x86/platform/iosf_mbi: Remove duplicate definitions The read and write opcodes are global for all units on SoC and even across Intel SoCs. Remove duplication of corresponding constants. At the same time convert all current users. No functional change. Acked-by: Thomas Gleixner Acked-by: Boon Leong Ong Acked-by: Jacob Pan Signed-off-by: Andy Shevchenko Signed-off-by: Rafael J. Wysocki arch/x86/include/asm/iosf_mbi.h | 49 +++++----------------- arch/x86/platform/atom/punit_atom_debug.c | 7 +--- arch/x86/platform/intel-quark/imr.c | 28 +++++-------- drivers/i2c/busses/i2c-designware-baytrail.c | 17 +++----- drivers/powercap/intel_rapl.c | 10 ++--- drivers/thermal/intel_quark_dts_thermal.c | 61 ++++++++++++++-------------- drivers/thermal/intel_soc_dts_iosf.c | 43 ++++++++++---------- 7 files changed, 85 insertions(+), 130 deletions(-) commit dd9b6fd587405be94933456ab03b111326792755 Author: Stephen Boyd Date: Mon Nov 30 17:25:22 2015 -0800 ARM: qcom_defconfig: Enable HAVE_ARM_ARCH_TIMER Enable this config in the defconfig so that we can delete the selection logic surrounding it that exists in mach-qcom/Kconfig. Acked-by: Arnd Bergmann Signed-off-by: Stephen Boyd Signed-off-by: Andy Gross arch/arm/configs/qcom_defconfig | 1 + 1 file changed, 1 insertion(+) commit 5ba8c27a6e5e7b6d63f3038fd92c066a3332f455 Merge: ffd014f c993e09 4d17a89 0410442 b1afda0 Author: Brian Norris Date: Tue Dec 8 13:04:31 2015 -0800 Merge arch/{arm,blackfin,cris,mips}/ refactoring patches into MTD dev These patches may also get merged by other arch/ maintainers, so I've based them on 4.4-rc1 instead of the latest MTD development. Bring them in now. Signed-off-by: Brian Norris commit e015f88c368da1e6e3567288c290c31d57b2ba94 Author: Harunobu Kurokawa Date: Wed Nov 25 15:30:39 2015 +0000 PCI: rcar: Add support for R-Car H3 to pcie-rcar Add the "renesas,pcie-r8a7795" property for the R-Car H3 device to the pcie-rcar driver. Tested-by: Wolfram Sang Signed-off-by: Harunobu Kurokawa Signed-off-by: Bjorn Helgaas Acked-by: Wolfram Sang Documentation/devicetree/bindings/pci/rcar-pci.txt | 3 ++- drivers/pci/host/pcie-rcar.c | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) commit 88b8576f17342ba4470bd518e14a3dfa8446db93 Author: Phil Edworthy Date: Wed Nov 25 15:30:38 2015 +0000 Revert "PCI: rcar: Build pcie-rcar.c only on ARM" Now that we can build on arm64, revert commit 7c537c67d2e4 ("PCI: rcar: Build pcie-rcar.c only on ARM"). Signed-off-by: Phil Edworthy Signed-off-by: Bjorn Helgaas drivers/pci/host/Kconfig | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit b1afda0e336f3b65e1dc765e3405d3231d9782fe Author: Boris BREZILLON Date: Tue Dec 1 12:03:01 2015 +0100 mips: nand: make use of mtd_to_nand() where appropriate mtd_to_nand() was recently introduced to avoid direct accesses to the mtd->priv field. Update all MIPS specific implementations to use this helper. Signed-off-by: Boris Brezillon Acked-by: Brian Norris Signed-off-by: Brian Norris arch/mips/alchemy/devboards/db1200.c | 2 +- arch/mips/alchemy/devboards/db1300.c | 2 +- arch/mips/alchemy/devboards/db1550.c | 2 +- arch/mips/pnx833x/common/platform.c | 2 +- arch/mips/rb532/devices.c | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) commit 4d17a89252ffb58c58f8b39d974ffd8231c33e85 Author: Boris BREZILLON Date: Tue Dec 1 12:02:59 2015 +0100 blackfin: nand: make use of mtd_to_nand() where appropriate mtd_to_nand() was recently introduced to avoid direct accesses to the mtd->priv field. Update all blackfin specific implementations to use this helper. Signed-off-by: Boris Brezillon Acked-by: Brian Norris Signed-off-by: Brian Norris arch/blackfin/mach-bf537/boards/stamp.c | 2 +- arch/blackfin/mach-bf561/boards/acvilon.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 04104422bce2693d07001dc4efb5cb935c5053bb Author: Boris BREZILLON Date: Tue Dec 1 12:03:00 2015 +0100 cris: nand: make use of mtd_to_nand() where appropriate mtd_to_nand() was recently introduced to avoid direct accesses to the mtd->priv field. Update all CRIS specific implementations to use this helper. Signed-off-by: Boris Brezillon Acked-by: Brian Norris Acked-by: Jesper Nilsson Signed-off-by: Brian Norris arch/cris/arch-v32/drivers/mach-a3/nandflash.c | 2 +- arch/cris/arch-v32/drivers/mach-fs/nandflash.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 5d2917d469faab72ac6efd95ef1f8319c16a29eb Author: Phil Edworthy Date: Wed Nov 25 15:30:37 2015 +0000 PCI: rcar: Convert to DT resource parsing API The main purpose of this change is to avoid calling pci_ioremap_io() as this is not available on arm64. However, instead of doing the range parsing in this driver we can utilise of_pci_get_host_bridge_resources(). This is similar to changes made to the generic PCI host driver in commit dbf9826d5797 ("PCI: generic: Convert to DT resource parsing API") Reported-by: Wolfram Sang Tested-by: Wolfram Sang Signed-off-by: Phil Edworthy Signed-off-by: Bjorn Helgaas Acked-by: Simon Horman drivers/pci/host/pcie-rcar.c | 116 +++++++++++++++++++++++++++---------------- 1 file changed, 73 insertions(+), 43 deletions(-) commit d66dd9e08fc7f3220d61ce4992f2db00b2f701af Author: Ivan T. Ivanov Date: Fri Sep 18 16:18:54 2015 +0300 arm64: dts: qcom: 8x16: UART1 and UART2 use DMA for RX and TX Add DMA channels definitions for UART1 and UART2 controllers. Signed-off-by: Ivan T. Ivanov Signed-off-by: Andy Gross arch/arm64/boot/dts/qcom/msm8916.dtsi | 4 ++++ 1 file changed, 4 insertions(+) commit 806c765ee9da58ca0ade34345f1b114dc0be97fd Author: Ivan T. Ivanov Date: Fri Sep 18 16:18:53 2015 +0300 arm64: dts: qcom: 8x16: UART1 add CTS_N, RTS_N pin configurations Add devicetree bindings for UART1 CTS_N and RTS_N pins. Signed-off-by: Ivan T. Ivanov Signed-off-by: Andy Gross arch/arm64/boot/dts/qcom/msm8916-pins.dtsi | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit ffd014f43fdcb6edb5a7f302de1e717e8c0673d5 Author: Boris BREZILLON Date: Tue Dec 1 12:03:07 2015 +0100 mtd: nand: add nand_to_mtd() helper Add a new helper to retrieve the MTD device attached to a NAND chip. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris include/linux/mtd/nand.h | 5 +++++ 1 file changed, 5 insertions(+) commit ed4f85c03cc7460a2f76afb73c22b8894b44ee20 Author: Boris BREZILLON Date: Tue Dec 1 12:03:06 2015 +0100 mtd: nand: embed an mtd_info structure into nand_chip Currently all NAND controller drivers are providing both the mtd_info and nand_chip struct and then let the NAND subsystem to initialize a few things before registering the mtd instance to the MTD layer. Embed an mtd_info field into nand_chip to add some consistency to all NAND controller drivers. This change will also help factorizing boilerplate code copied in all NAND drivers. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris include/linux/mtd/nand.h | 2 ++ 1 file changed, 2 insertions(+) commit 4bd4ebcc540c35d4477b098cf26394f976551464 Author: Boris BREZILLON Date: Tue Dec 1 12:03:04 2015 +0100 mtd: nand: make use of mtd_to_nand() in NAND drivers mtd_to_nand() was recently introduced to avoid direct accesses to the mtd->priv field. Update all NAND drivers to use it. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/ams-delta.c | 4 +- drivers/mtd/nand/atmel_nand.c | 50 ++++++++++----------- drivers/mtd/nand/au1550nd.c | 22 +++++----- drivers/mtd/nand/bcm47xxnflash/ops_bcm4706.c | 16 +++---- drivers/mtd/nand/bf5xx_nand.c | 12 ++--- drivers/mtd/nand/brcmnand/brcmnand.c | 12 ++--- drivers/mtd/nand/cafe_nand.c | 18 ++++---- drivers/mtd/nand/cmx270_nand.c | 8 ++-- drivers/mtd/nand/cs553x_nand.c | 18 ++++---- drivers/mtd/nand/davinci_nand.c | 8 ++-- drivers/mtd/nand/diskonchip.c | 66 ++++++++++++++-------------- drivers/mtd/nand/docg4.c | 34 +++++++------- drivers/mtd/nand/fsl_elbc_nand.c | 14 +++--- drivers/mtd/nand/fsl_ifc_nand.c | 18 ++++---- drivers/mtd/nand/fsl_upm.c | 4 +- drivers/mtd/nand/fsmc_nand.c | 10 ++--- drivers/mtd/nand/gpmi-nand/gpmi-nand.c | 18 ++++---- drivers/mtd/nand/hisi504_nand.c | 16 +++---- drivers/mtd/nand/jz4740_nand.c | 4 +- drivers/mtd/nand/lpc32xx_mlc.c | 6 +-- drivers/mtd/nand/lpc32xx_slc.c | 14 +++--- drivers/mtd/nand/mpc5121_nfc.c | 24 +++++----- drivers/mtd/nand/mxc_nand.c | 34 +++++++------- drivers/mtd/nand/ndfc.c | 14 +++--- drivers/mtd/nand/nuc900_nand.c | 2 +- drivers/mtd/nand/omap2.c | 12 ++--- drivers/mtd/nand/orion_nand.c | 4 +- drivers/mtd/nand/pasemi_nand.c | 8 ++-- drivers/mtd/nand/pxa3xx_nand.c | 18 ++++---- drivers/mtd/nand/r852.c | 2 +- drivers/mtd/nand/s3c2410.c | 6 +-- drivers/mtd/nand/sharpsl.c | 2 +- drivers/mtd/nand/sm_common.c | 2 +- drivers/mtd/nand/socrates_nand.c | 8 ++-- drivers/mtd/nand/sunxi_nand.c | 26 +++++------ drivers/mtd/nand/tmio_nand.c | 2 +- drivers/mtd/nand/txx9ndfmc.c | 12 ++--- drivers/mtd/nand/xway_nand.c | 4 +- 38 files changed, 276 insertions(+), 276 deletions(-) commit 8c36e9dfe7527665e286c3ac970c3fb327e6ab24 Author: Arnd Bergmann Date: Tue Dec 8 16:18:51 2015 +0100 cifs: avoid unused variable and label The newly introduced cifs_clone_file_range() function produces two harmless compile-time warnings: cifsfs.c: In function 'cifs_clone_file_range': cifsfs.c:963:1: warning: label 'out_unlock' defined but not used [-Wunused-label] cifsfs.c:924:20: warning: unused variable 'src_tcon' [-Wunused-variable] In both cases, removing the extraneous line avoids the warning. Signed-off-by: Arnd Bergmann Fixes: c6f2a1e2e5f8 ("vfs: pull btrfs clone API to vfs layer") Signed-off-by: Al Viro fs/cifs/cifsfs.c | 2 -- 1 file changed, 2 deletions(-) commit ea7a1f275cf0b5aff4cc171606a6a3f27f1c6a95 Author: Bjorn Andersson Date: Mon Sep 21 10:52:55 2015 -0700 soc: qcom: Introduce WCNSS_CTRL SMD client The WCNSS_CTRL SMD client is used for among other things upload nv firmware to a newly booted WCNSS chip. Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross drivers/soc/qcom/Kconfig | 7 ++ drivers/soc/qcom/Makefile | 1 + drivers/soc/qcom/wcnss_ctrl.c | 272 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 280 insertions(+) commit d1ea7be5f755bf1a4d4fdccc35880fcf5069df60 Author: Arnd Bergmann Date: Tue Dec 8 16:22:17 2015 +0100 nvme: fix another 32-bit build warning The nvme_user_cmd function was recently moved around from one file to another, which made a warning reappear that I had fixed before at some point: drivers/nvme/host/core.c: In function 'nvme_user_cmd': drivers/nvme/host/core.c:424:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] This applies the same workaround that we have elsewhere in the driver with an extra type cast to uintptr_t. Signed-off-by: Arnd Bergmann Fixes: 1673f1f08c88 ("nvme: move block_device_operations and ns/ctrl freeing to common code") Link: https://lkml.org/lkml/2015/10/9/611 Signed-off-by: Jens Axboe drivers/nvme/host/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d9d6888feb990422a1ad0b9c18dd54cdfcbf2a41 Author: Arnd Bergmann Date: Tue Nov 24 23:13:09 2015 +0100 ARM: qcom: select ARM_CPU_SUSPEND for power management The qcom spm driver uses cpu_resume_arm(), which is not included in the kernel in all configurations: drivers/built-in.o: In function `qcom_cpu_spc': :(.text+0xbc022): undefined reference to `cpu_suspend' drivers/built-in.o: In function `qcom_cpuidle_init': :(.init.text+0x610c): undefined reference to `cpu_resume_arm' This adds a 'select' Kconfig statement to ensure it's always enabled. Signed-off-by: Arnd Bergmann Reviewed-by: Stephen Boyd Signed-off-by: Andy Gross drivers/soc/qcom/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 0c4cbf9ec253936c7942eaa24fb89ead1eb0e6d5 Author: Bjorn Andersson Date: Mon Nov 23 21:55:03 2015 -0800 MAINTAINERS: Add rules for Qualcomm dts files Make the get_maintainer script pick up the proper maintainers for the Qualcomm dts files. Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross MAINTAINERS | 2 ++ 1 file changed, 2 insertions(+) commit 10475d592b7abc36dc1e90e5c8424ab2005c85c7 Author: Arnd Bergmann Date: Fri Nov 20 11:32:21 2015 +0100 soc: qcom: enable smsm/smp2p modular build The newly added smp2p and smsm drivers cannot be loadable modules but depend on smem, which can be, and that causes a link error: drivers/built-in.o: In function `qcom_smp2p_intr': :(.text+0xa6e68): undefined reference to `qcom_smem_get' drivers/built-in.o: In function `qcom_smp2p_probe': :(.text+0xa7320): undefined reference to `qcom_smem_alloc' :(.text+0xa736c): undefined reference to `qcom_smem_get' drivers/built-in.o: In function `qcom_smsm_probe': :(.text+0xa7b34): undefined reference to `qcom_smem_get' This marks all the drivers as 'tristate' to make the Kconfig dependency resolution work properly. Signed-off-by: Arnd Bergmann Fixes: dbb04bd7122f ("soc: qcom: smp2p: Qualcomm Shared Memory Point to Point") Fixes: d7387fc6add4 ("soc: qcom: smsm: Add driver for Qualcomm SMSM") Signed-off-by: Andy Gross drivers/soc/qcom/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 23a88024665a818bf0f5c0ceaaf925a7fbb74612 Author: Stephen Boyd Date: Wed Oct 21 16:05:23 2015 -0700 serial: msm_serial: Make config tristate This driver works as a module, so mark it as a tristate config instead of a bool. Cc: Paul Gortmaker Signed-off-by: Stephen Boyd Reviewed-by: Andy Gross Signed-off-by: Andy Gross drivers/tty/serial/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 50e99641413e766706043c2cb04ae2cd719539f4 Author: Bjorn Andersson Date: Thu Sep 24 18:25:03 2015 -0700 soc: qcom: smp2p: Qualcomm Shared Memory Point to Point Introduce the Qualcomm Shard Memory Point to Point driver. Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross drivers/soc/qcom/Kconfig | 8 + drivers/soc/qcom/Makefile | 1 + drivers/soc/qcom/smp2p.c | 578 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 587 insertions(+) commit c97c4090ff72297a878a37715bd301624b71c885 Author: Bjorn Andersson Date: Thu Sep 24 18:25:02 2015 -0700 soc: qcom: smsm: Add driver for Qualcomm SMSM This driver exposed the Qualcomm Shared Memory State Machine bits. Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross drivers/soc/qcom/Kconfig | 8 + drivers/soc/qcom/Makefile | 1 + drivers/soc/qcom/smsm.c | 625 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 634 insertions(+) commit 9460ae2ff3081b43e4f93126cfd26a27cda1b6a1 Author: Bjorn Andersson Date: Thu Sep 24 18:25:01 2015 -0700 soc: qcom: Introduce common SMEM state machine code This implements a common API for handling and exposing SMP2P and SMSM state information. Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross drivers/soc/qcom/Kconfig | 3 + drivers/soc/qcom/Makefile | 1 + drivers/soc/qcom/smem_state.c | 201 ++++++++++++++++++++++++++++++++++++ include/linux/soc/qcom/smem_state.h | 18 ++++ 4 files changed, 223 insertions(+) commit 361460355c384634f05ab8e945a6184c78cf9e97 Author: Imre Deak Date: Thu Dec 4 18:39:35 2014 +0200 drm/i915: vlv: clamp minimum RPS frequency to what Punit allows As described in the code comment, I couldn't set the minimum RPS frequency on my BYT-M B0 to the minimum allowed as reported by Punit. Fix this by clamping the minimum value to the first one that was accepted on my machine. Atm this issue doesn't cause any test failures, since in igt/pm_rps we only check the cached version of the current frequency which is the same what has been set. In the future we'll add checks for the actual frequency too, and for that to pass this fix is necessary. Signed-off-by: Imre Deak Acked-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1417711175-13271-1-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/intel_pm.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit a83dfa92850e521dfb6485ad4aa3c7c1fb52f06e Author: Boris BREZILLON Date: Tue Dec 1 12:03:05 2015 +0100 staging: mt29f_spinand: make use of mtd_to_nand() mtd_to_nand() was recently introduced to avoid direct accesses to the mtd->priv field. Use it where appropriate. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/staging/mt29f_spinand/mt29f_spinand.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 862eba519e79c48fb6ee276081ddb98fe6926f02 Author: Boris BREZILLON Date: Tue Dec 1 12:03:03 2015 +0100 mtd: nand: make use of mtd_to_nand() in NAND core code mtd_to_nand() was recently introduced to avoid direct access to the mtd->priv field. Update core code to use mtd_to_nand(). Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/nand_base.c | 84 ++++++++++++++++++++++---------------------- drivers/mtd/nand/nand_bbt.c | 32 ++++++++--------- drivers/mtd/nand/nand_bch.c | 4 +-- drivers/mtd/nand/nand_ecc.c | 4 +-- drivers/mtd/nand/nandsim.c | 18 +++++----- 5 files changed, 71 insertions(+), 71 deletions(-) commit 7326ffef788dd5823c820a6ac5b5e864e8a486a0 Author: Boris BREZILLON Date: Tue Dec 1 12:03:02 2015 +0100 sh: nand: make use of mtd_to_nand() where appropriate mtd_to_nand() was recently introduced to avoid direct accesses to the mtd->priv field. Update all SH specific implementations to use this helper. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris arch/sh/boards/mach-migor/setup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c90456e36d9c89de0b6e9c8f21003208e0ad7f13 Author: James Ban Date: Tue Dec 8 10:57:29 2015 +0900 regulator: pv88090: new regulator driver This is the driver for the Powerventure PV88090 BUCKs and LDOs regulator. It communicates via an I2C bus to the device. Signed-off-by: James Ban Signed-off-by: Mark Brown .../devicetree/bindings/regulator/pv88090.txt | 65 +++ drivers/regulator/Kconfig | 8 + drivers/regulator/Makefile | 1 + drivers/regulator/pv88090-regulator.c | 458 +++++++++++++++++++++ drivers/regulator/pv88090-regulator.h | 98 +++++ 5 files changed, 630 insertions(+) commit ff793af4ce13afa9836f6a396552d623ff880099 Author: Arnd Bergmann Date: Tue Dec 8 16:12:54 2015 +0100 ASoC: da7218: avoid 64-bit compile warning When building the da7218 driver on a 64-bit architecture, we get a harmless warning: sound/soc/codecs/da7218.c: In function 'da7218_of_get_id': sound/soc/codecs/da7218.c:2261:10: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] This changes the code to use uintptr_t to ensure we have an integer type of the same size as a pointer and won't get a warning on any architecture. Signed-off-by: Arnd Bergmann Fixes: 4d50934abd22 ("ASoC: da7218: Add da7218 codec driver") Signed-off-by: Mark Brown sound/soc/codecs/da7218.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 34e684fa04fadd513e028fa48123f357deac77e8 Author: Arnd Bergmann Date: Tue Dec 8 16:35:51 2015 +0100 ASoC: fsl: use correct format string for dma_addr_t We get a warning for the imx-pcm-fiq driver when CONFIG_LPAE is enabled on ARM, because dma_addr_t is 64-bit then: sound/soc/fsl/imx-pcm-fiq.c: In function 'snd_imx_pcm_mmap': sound/soc/fsl/imx-pcm-fiq.c:223:107: warning: format '%x' expects argument of type 'unsigned int', but argument 6 has type 'dma_addr_t {aka long long unsigned int}' [-Wformat=] This changes the printk to use the correct format string for printing a dma_addr_t. Signed-off-by: Arnd Bergmann Signed-off-by: Mark Brown sound/soc/fsl/imx-pcm-fiq.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 61b0088b6a5b98608ce00c18a057b1f5bcb5f8b3 Author: Mengdong Lin Date: Wed Dec 2 14:11:48 2015 +0800 ASoC: Bind new DAI links after probing components Probing components can bring new DAI or DAI links based on the topology info. This patch finds the unbound DAI links and bind them. Signed-off-by: Mengdong Lin Signed-off-by: Mark Brown sound/soc/soc-core.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 49a5ba1cd9da4fb04e7ce1e0d94f6a5a9b7be48e Author: Mengdong Lin Date: Wed Dec 2 14:11:40 2015 +0800 ASoC: soc_bind_dai_link() directly returns success for a bound DAI link This function will return success immediately for a bound DAI link. No need to look for the cpu/codec DAIs again. Signed-off-by: Mengdong Lin Signed-off-by: Mark Brown sound/soc/soc-core.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit d6f220ea13edfd3430fb42e09ff92e321ffb5762 Author: Mengdong Lin Date: Wed Dec 2 14:11:32 2015 +0800 ASoC: Define add/remove_dai_link ops for a soc card A machine driver can register the two ops. When a DAI link is added or removed by a component's topology, the ASoC core can call the ops to notify the machine driver for extra intialization or destruction. E.g. topology can create FE DAI links from a cpu DAI component, and the machine driver may define an add_dai_link ops to set machine-specific .init ops for the DAI link. Signed-off-by: Mengdong Lin Signed-off-by: Mark Brown include/sound/soc.h | 5 +++++ sound/soc/soc-core.c | 12 ++++++++++++ 2 files changed, 17 insertions(+) commit f8f80361d07d503093940097e967a7edaa134ca2 Author: Mengdong Lin Date: Wed Dec 2 14:11:22 2015 +0800 ASoC: Implement DAI links in a list & define API to add/remove a link Implement a dai link list for the soc card. Add APIs to add/remove a DAI links dynamically, e.g. by topology. And a dobj is embedded into the struct snd_soc_dai_link. Topology can use the dobj to find the links created by it and remove them when the topology component is unloaded. The predefined DAI links are reserved to keep backward compatibility. And they will also be added to the list. Signed-off-by: Mengdong Lin Signed-off-by: Mark Brown include/sound/soc.h | 15 ++++++++-- sound/soc/soc-core.c | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+), 2 deletions(-) commit edd3899c8cd2a7f11d23686e375359f8ab1f818a Author: Fabio Estevam Date: Fri Dec 4 10:59:14 2015 -0200 spi: spidev_test: Fix typo in error message Fix the spelling of 'output' in the error message. Signed-off-by: Fabio Estevam Signed-off-by: Mark Brown tools/spi/spidev_test.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9ec2053b13f75d7ad9c0e6db9763954bd1a1b9ae Author: Praveen Diwakar Date: Thu Dec 3 23:30:01 2015 +0530 ASoC: Intel: Skylake: Update ignore suspend for rt286 machine We should only add ignore suspend flag for some DAIs and not all. This patches removes it from the DAIs where we do not support this It also marks the endpoints for which ignore_suspend should be enabled Signed-off-by: Praveen Diwakar Signed-off-by: Vunny Sodhi Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/boards/skl_rt286.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) commit 4557c305d4fc9356563a1d41fa6fe29e494f0460 Author: Jeeja KP Date: Thu Dec 3 23:30:00 2015 +0530 ASoC: Intel: Skylake: Add support for active suspend Some of the usecases can be marked as 'ignore_suspend' by machine. For these on suspend we should keep audio controller ON by saving the state and not suspending the device For this we need to maintain a counter for these streams and be active on suspend when such a stream is opened. Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-pcm.c | 27 +++++++++++++++++++++++++++ sound/soc/intel/skylake/skl.c | 28 ++++++++++++++++++++++++++-- sound/soc/intel/skylake/skl.h | 2 ++ 3 files changed, 55 insertions(+), 2 deletions(-) commit 820f339fe9fcabee17d3d2ba2b48a51368a51bf4 Author: Vinod Koul Date: Thu Dec 3 23:29:59 2015 +0530 ASoC: Intel: Skylake: Fix the dapm machine map DAPM Machine map for machine was not specifying the paths correctly. The correct order should be: "DMIC01 Rx" (SoC DMIC BE), connected to "DMIC AIF" (DMic Codec AIF) and then "DMic" (DMic codec Input) connected to "SoC DMIC" (Machine DMIC MIC Widget) Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/boards/skl_rt286.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b34e24d2406f123d5dbbff4fdeebbc2af76b0acd Author: Vinod Koul Date: Thu Dec 3 23:29:58 2015 +0530 ASoC: Intel: Skylake: add wov as int sink Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/boards/skl_rt286.c | 3 +++ 1 file changed, 3 insertions(+) commit 4386b76753c49dfdb940c0e5eeef09b61feaf712 Author: Jeeja KP Date: Thu Dec 3 23:29:57 2015 +0530 ASoC: Intel: Skylake: Add dai link for DMIC capture Since in Skylake we support another DAI for DMIC quad capture, add a dailink for this as well. Also specify constrains for DMIC FE devices and fixup for DMIC BEs Signed-off-by: Dharageswari.R Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/boards/skl_rt286.c | 51 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) commit 7d9f29119d3e4db6ae817881d8e305650424032c Author: Omair M Abdullah Date: Thu Dec 3 23:29:56 2015 +0530 ASoC: Intel: Skylake: read params from DSP if module is on If a module is ON then we should read the module parameters from DSP rather than driver cached values Signed-off-by: Omair M Abdullah Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-messages.c | 13 +++++++++++++ sound/soc/intel/skylake/skl-topology.c | 7 +++++++ sound/soc/intel/skylake/skl-topology.h | 2 ++ 3 files changed, 22 insertions(+) commit cce1c7f383e829651e0729d4b0b2cb78ea5cb2d6 Author: Mousami Jana Date: Thu Dec 3 23:29:55 2015 +0530 ASoC: Intel: Skylake: add LARGE_CONFIG_GET IPC support For messages which have larger payload than mailbox data, we need to split the payload using set of messages containing mailbox size as payload. For sending such payload we already support LARGE_CONFIG_SET IPCs and now to query such payload add LARGE_CONFIG_GET IPC Signed-off-by: Mousami Jana Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-sst-ipc.c | 53 +++++++++++++++++++++++++++++++++++ sound/soc/intel/skylake/skl-sst-ipc.h | 3 ++ 2 files changed, 56 insertions(+) commit c99b80564c1badfa0cd14f4ebf3193fd77e412e9 Author: Omair M Abdullah Date: Thu Dec 3 23:29:54 2015 +0530 ASoC: Intel: Skylake: update mailbox uplink window offset and size SKL actual mailbox size is 0x10000 and initial values were 0x800, so update these accordingly Signed-off-by: Omair M Abdullah Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-sst-dsp.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4ced182763286a7c26cf671b27d1ddd58cf6cec8 Author: Jeeja KP Date: Thu Dec 3 23:29:53 2015 +0530 ASoC: Intel: Skylake: Fix module init data correctly Module initialization parameter data can be set by - INIT_INSTANCE IPC by using the default value - SET_PARAMS immediately after INIT_INSTANCE - SET_PARAMS data from kcontrol values set this patch add param type to identify the parameters has to be sent to DSP. Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-topology.c | 6 +++--- sound/soc/intel/skylake/skl-topology.h | 4 ++-- sound/soc/intel/skylake/skl-tplg-interface.h | 16 +++++++++++----- 3 files changed, 16 insertions(+), 10 deletions(-) commit fd18110f1480d51f416cea6d5f63b83f85b14043 Author: Dharageswari R Date: Thu Dec 3 23:29:52 2015 +0530 ASoC: Intel: Skylake: Add support for Mic Select module Mic select is a DSP module which is used to select one or many inputs to form an output. This is useful to select data selectively from PDM input and hence the name. This module is of generic module type. This patch adds support to add and configure Mic select module in firmware topology. Signed-off-by: Dharageswari R Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-messages.c | 26 ++++++++++++++++++++++++++ sound/soc/intel/skylake/skl-topology.h | 5 +++++ sound/soc/intel/skylake/skl-tplg-interface.h | 3 ++- 3 files changed, 33 insertions(+), 1 deletion(-) commit b18c458de143d22773e770fc785c521614c24487 Author: Jeeja KP Date: Thu Dec 3 23:29:51 2015 +0530 ASoC: Intel: Skylake: Add memory pages to widget data. A module can require extra memory for processing, like audio algorithms. The memory for these modules needs to be represented in base module configuration and passed to DSP on init, so add the memory pages as a field in widget data Signed-off-by: Dharageswari.R Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-messages.c | 1 + sound/soc/intel/skylake/skl-topology.c | 1 + sound/soc/intel/skylake/skl-topology.h | 1 + 3 files changed, 3 insertions(+) commit 6c5768b3aa6f554a719834591ad2c6b4e1291397 Author: Dharageswari R Date: Thu Dec 3 23:29:50 2015 +0530 ASoC: Intel: Skylake: Add support for Loadable modules A module is loaded when the path consisting the module is opened. The module binary(ies) is loaded from file system and cached in kernel memory for future use. This is downloaded to DSP using DMA and invoking Load module IPCs This patch adds support for load/unload module IPCs, DMAing modules and manging the modules Signed-off-by: Dharageswari R Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-sst-dsp.h | 14 +++ sound/soc/intel/skylake/skl-sst-ipc.c | 53 ++++++++++ sound/soc/intel/skylake/skl-sst-ipc.h | 6 ++ sound/soc/intel/skylake/skl-sst.c | 175 +++++++++++++++++++++++++++++++++ sound/soc/intel/skylake/skl-topology.c | 29 +++++- 5 files changed, 276 insertions(+), 1 deletion(-) commit e370abd95675cb19f10a1594415cbf71d96a181c Merge: 760a432 2abcd3d Author: David S. Miller Date: Tue Dec 8 12:39:15 2015 -0500 Merge tag 'wireless-drivers-next-for-davem-2015-12-07' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next Kalle Vallo says: ==================== brcfmac * support bcm4359 which can operate in two bands concurrently * disable runtime pm for USB avoiding issues * use generic pm callback in PCIe driver * support wowlan wake indication reporting * add beamforming support * unified handling of firmware files ath10k * support Manegement Frame Protection (MFP) * add thermal throttling support for 10.4 firmware * add support for pktlog in QCA99X0 * add debugfs file to enable Bluetooth coexistence feature * use firmware's native mesh interface type instead of raw mode iwlwifi * BT coex improvements * D3 operation bugfixes * rate control improvements * firmware debugging infra improvements * ground work for multi Rx * various security fixes ==================== Conflicts: drivers/net/wireless/ath/ath10k/pci.c The conflict resolution at: http://article.gmane.org/gmane.linux.kernel.next/37391 by Stephen Rothwell was used. Signed-off-by: David S. Miller commit afcc00b91f1865f6d0bbdb687dd642ce8a3c3c9e Author: Xiubo Li Date: Thu Dec 3 17:31:52 2015 +0800 regmap: add 64-bit mode support Since the mmio has support the 64-bit has been supported for the 64-bit platform, so should the regmap core too. Signed-off-by: Xiubo Li Signed-off-by: Mark Brown drivers/base/regmap/regmap.c | 99 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) commit 8d6f88ce961cf62137696627448cfd6038f07f41 Author: Koro Chen Date: Thu Dec 3 15:53:28 2015 +0800 ASoC: mediatek: Use current HW pointer for pointer callback Previously we recorded "last interrupt position" and used it in pointer callback. This is not correct implementation, and it causes underruns when user space monitors buffer level to decide when to send next data chunk in low latency application. Remove position recording in IRQ handler and also hw_ptr in struct mtk_afe_memif used to record that, and let pointer callback reports current HW pointer instead. Signed-off-by: Koro Chen Signed-off-by: Mark Brown sound/soc/mediatek/mtk-afe-common.h | 1 - sound/soc/mediatek/mtk-afe-pcm.c | 22 +++++++++++----------- 2 files changed, 11 insertions(+), 12 deletions(-) commit 75fb0aaea18dbcde60a740c5d62af705366d6357 Author: Xiubo Li Date: Thu Dec 3 13:27:21 2015 +0800 regmap: mmio: Add regmap_mmio_get_min_stride Splite the minimal stride parsing into one signal function. Signed-off-by: Xiubo Li Signed-off-by: Mark Brown drivers/base/regmap/regmap-mmio.c | 49 ++++++++++++++++++++++++--------------- 1 file changed, 30 insertions(+), 19 deletions(-) commit 9d98fa712920a393591f446fa76cb277309dd37b Author: Xiubo Li Date: Thu Dec 3 13:27:20 2015 +0800 regmap: mmio: remove the useless code Signed-off-by: Xiubo Li Signed-off-by: Mark Brown drivers/base/regmap/regmap-mmio.c | 1 - 1 file changed, 1 deletion(-) commit 4c945e8556ec7ea5b19d4f8721b212f468656e0d Author: Russell King Date: Sun Dec 6 21:52:06 2015 +0000 ARM: dts: Add SolidRun Armada 388 Clearfog A1 DT file Add support for the SolidRun Armada 388 Clearfog A1 board. This board has an Armada 388 microsom, dedicated gigabit ethernet, six switched gigabit ethernet ports, SFP cage, two Mini-PCIe/mSATA slots, a m.2 SATA slot, and a MikroBUS connector to allow MikroBUS modules to be added. This DT file adds support for all board facilities with the exception of full SFP support. Signed-off-by: Russell King Acked-by: Gregory CLEMENT Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/armada-388-clearfog.dts | 456 +++++++++++++++++++++ .../arm/boot/dts/armada-38x-solidrun-microsom.dtsi | 115 ++++++ 3 files changed, 572 insertions(+) commit 760a4322470e3990b14e09bfe80c9c75c77f33dd Author: Rainer Weikusat Date: Tue Dec 8 14:47:56 2015 +0000 net: Fix inverted test in __skb_recv_datagram As the kernel generally uses negated error numbers, *err needs to be compared with -EAGAIN (d'oh). Signed-off-by: Rainer Weikusat Fixes: ea3793ee29d3 ("core: enable more fine-grained datagram reception control") Signed-off-by: David S. Miller net/core/datagram.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 82607adcf9cdf40fb7b5331269780c8f70ec6e35 Author: Tejun Heo Date: Tue Dec 8 11:28:04 2015 -0500 workqueue: implement lockup detector Workqueue stalls can happen from a variety of usage bugs such as missing WQ_MEM_RECLAIM flag or concurrency managed work item indefinitely staying RUNNING. These stalls can be extremely difficult to hunt down because the usual warning mechanisms can't detect workqueue stalls and the internal state is pretty opaque. To alleviate the situation, this patch implements workqueue lockup detector. It periodically monitors all worker_pools periodically and, if any pool failed to make forward progress longer than the threshold duration, triggers warning and dumps workqueue state as follows. BUG: workqueue lockup - pool cpus=0 node=0 flags=0x0 nice=0 stuck for 31s! Showing busy workqueues and worker pools: workqueue events: flags=0x0 pwq 0: cpus=0 node=0 flags=0x0 nice=0 active=17/256 pending: monkey_wrench_fn, e1000_watchdog, cache_reap, vmstat_shepherd, release_one_tty, release_one_tty, release_one_tty, release_one_tty, release_one_tty, release_one_tty, release_one_tty, release_one_tty, release_one_tty, release_one_tty, release_one_tty, release_one_tty, cgroup_release_agent workqueue events_power_efficient: flags=0x80 pwq 0: cpus=0 node=0 flags=0x0 nice=0 active=2/256 pending: check_lifetime, neigh_periodic_work workqueue cgroup_pidlist_destroy: flags=0x0 pwq 0: cpus=0 node=0 flags=0x0 nice=0 active=1/1 pending: cgroup_pidlist_destroy_work_fn ... The detection mechanism is controller through kernel parameter workqueue.watchdog_thresh and can be updated at runtime through the sysfs module parameter file. v2: Decoupled from softlockup control knobs. Signed-off-by: Tejun Heo Acked-by: Don Zickus Cc: Ulrich Obergfell Cc: Michal Hocko Cc: Chris Mason Cc: Andrew Morton Documentation/kernel-parameters.txt | 9 ++ include/linux/workqueue.h | 6 ++ kernel/watchdog.c | 3 + kernel/workqueue.c | 174 +++++++++++++++++++++++++++++++++++- lib/Kconfig.debug | 11 +++ 5 files changed, 200 insertions(+), 3 deletions(-) commit 03e0d4610bf4d4a93bfa16b2474ed4fd5243aa71 Author: Tejun Heo Date: Tue Dec 8 11:28:04 2015 -0500 watchdog: introduce touch_softlockup_watchdog_sched() touch_softlockup_watchdog() is used to tell watchdog that scheduler stall is expected. One group of usage is from paths where the task may not be able to yield for a long time such as performing slow PIO to finicky device and coming out of suspend. The other is to account for scheduler and timer going idle. For scheduler softlockup detection, there's no reason to distinguish the two cases; however, workqueue lockup detector is planned and it can use the same signals from the former group while the latter would spuriously prevent detection. This patch introduces a new function touch_softlockup_watchdog_sched() and convert the latter group to call it instead. For now, it just calls touch_softlockup_watchdog() and there's no functional difference. Signed-off-by: Tejun Heo Cc: Ulrich Obergfell Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Andrew Morton include/linux/sched.h | 4 ++++ kernel/sched/clock.c | 2 +- kernel/time/tick-sched.c | 6 +++--- kernel/watchdog.c | 15 ++++++++++++++- 4 files changed, 22 insertions(+), 5 deletions(-) commit fca839c00a12d682cb59b3b620d109a1d850b262 Author: Tejun Heo Date: Mon Dec 7 10:58:57 2015 -0500 workqueue: warn if memory reclaim tries to flush !WQ_MEM_RECLAIM workqueue Task or work item involved in memory reclaim trying to flush a non-WQ_MEM_RECLAIM workqueue or one of its work items can lead to deadlock. Trigger WARN_ONCE() if such conditions are detected. Signed-off-by: Tejun Heo Cc: Peter Zijlstra kernel/workqueue.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) commit e7fdd52779a6c2b49d457f452296a77c8cffef6a Author: Takashi Iwai Date: Tue Dec 8 17:00:42 2015 +0100 ALSA: hda - Implement loopback control switch for Realtek and other codecs Many codecs, typically found on Realtek codecs, have the analog loopback path merged to the secondary input of the middle of the output paths. Currently, we don't offer the dynamic switching in such configuration but let each loopback path mute by itself. This should work well in theory, but in reality, we often see that such a dead loopback path causes some background noises even if all the elements get muted. Such a problem has been fixed by adding the quirk accordingly to disable aamix, and it's the right fix, per se. The only problem is that it's not so trivial to achieve it; user needs to pass a hint string via patch module option or sysfs. This patch gives a bit improvement on the situation: it adds "Loopback Mixing" control element for such codecs like other codecs (e.g. IDT or VIA codecs) with the individual loopback paths. User can turn on/off the loopback path simply via a mixer app. For keeping the compatibility, the loopback is still enabled on these codecs. But user can try to turn it off if experiencing a suspicious background or click noise on the fly, then build a static fixup later once after the problem is addressed. Other than the addition of the loopback enable/disablement control, there should be no changes. Signed-off-by: Takashi Iwai sound/pci/hda/hda_generic.c | 87 +++++++++++++++++++++++++++++++++++---------- 1 file changed, 68 insertions(+), 19 deletions(-) commit 7f8ee3e59c9a484bdb117a0074a90173388efb25 Author: Daniel Vetter Date: Fri Dec 4 09:46:06 2015 +0100 drm/atomic-helper: Mention the new system/resume helpers the docs They have pretty kerneldoc already, but better to link to that in one of the overview sections. Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449218769-16577-26-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Thierry Reding drivers/gpu/drm/drm_atomic_helper.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 4ee6034c80c50b6e788f0f4291c3ad64debde390 Author: Daniel Vetter Date: Fri Dec 4 09:46:05 2015 +0100 drm: Document drm_connector_helper_funcs Nothing special, except the somewhat awkward split in probe helper callbacks between here and drm_crtc_funcs. v2: Suggestions from Thierry. Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449218769-16577-25-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Thierry Reding include/drm/drm_modeset_helper_vtables.h | 106 +++++++++++++++++++++++++++++-- 1 file changed, 101 insertions(+), 5 deletions(-) commit 11a0ba972d55dd21d88b62e918d6cf072c9c67af Author: Daniel Vetter Date: Fri Dec 4 09:46:04 2015 +0100 drm: Document drm_plane_helper_funcs Plus related hooks used to do atomic plane updates since they only really make sense as a package. v2: Suggestions from Thierry. Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449218769-16577-24-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Thierry Reding include/drm/drm_modeset_helper_vtables.h | 210 +++++++++++++++++++++++++++++-- 1 file changed, 199 insertions(+), 11 deletions(-) commit 9953f41799bdad34c367196541a7a9a3b6e13a6c Author: Daniel Vetter Date: Fri Dec 4 09:46:02 2015 +0100 drm: Kerneldoc for drm_mode_config_funcs The meat here is definitely the detailed specs for what atomic_check and atomic_commit are supposed to do. And another candidate for a core vfunc that should be in a helper really (output_poll_changed this time around). v2: Feedback from Eric on irc: - spelling fixes. - spec what async should do - copy the event related paragraphs from page_flip and adjust - make it clear that a successful async commit is not allowed to leave the pipe dead or disabled. v3: Use FIXME comments to annotate functions that we should move to some helpers. v4: Suggestions from Thierry. Cc: Eric Anholt Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449218769-16577-22-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Thierry Reding include/drm/drm_crtc.h | 243 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 233 insertions(+), 10 deletions(-) commit c6b0ca3ea8366d1954c7825d0f67bc833b8e10df Author: Daniel Vetter Date: Fri Dec 4 09:46:01 2015 +0100 drm: Add kerneldoc for drm_framebuffer_funcs While typing these I noticed that ->dirty is a bit a can of worms and even supports blt/fill semantics ... shocked me a bit. Oh well it's defined in a way that nothing bad (just a bit of inefficiency) will happen for drivers which supports this. So I didn't bother copying the detailed spec into the new kerneldoc. v2: Suggestions from Thierry. Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449218769-16577-21-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Thierry Reding include/drm/drm_crtc.h | 68 +++++++++++++++++++++++++++++++++++++------------- 1 file changed, 50 insertions(+), 18 deletions(-) commit f6da8c6e5ee378c82f20ad07f84556befc7b58e9 Author: Daniel Vetter Date: Fri Dec 4 09:46:00 2015 +0100 drm: document drm_crtc_funcs And merge any docbook we have into the kerneldoc comments. Since it's a legacy entry point with only two implementation (one each in atomic and legacy crtc helpers) I've made the documentation for set_config fairly sparse - no one should ever need to look at this again, all the ABI we have is baked into code. For ->page_flip otoh I kept all the extensive docs from the docbook and even extended it where it was lacking: Currently we have a pile of legacy page_flip implemantations, and even for atomic drivers there's not yet a standard implementation in the helpers. Which means every driver needs to implement this itself, and precise specs are really valuable. Otherwise there's just cursor, which really just boils down to "use at least universal planes". And gamma tables (where we have a bit a mess with the fbdev helper gamma hooks). v2: Spelling fixes (Eric). v3: Suggestions from Thierry. Cc: Eric Anholt Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449218769-16577-20-git-send-email-daniel.vetter@ffwll.ch Documentation/DocBook/gpu.tmpl | 117 +---------------------------- include/drm/drm_crtc.h | 164 +++++++++++++++++++++++++++++++++++++---- 2 files changed, 149 insertions(+), 132 deletions(-) commit 3558c112aa129ca5e4f06a33e9241611f7a9d2c7 Author: Daniel Vetter Date: Fri Dec 4 09:45:59 2015 +0100 drm: connector->dpms is not optional We always register the DPMS property, it's really a fundamental part of a display driver. So don't check whether the vfunc is there, it's non-optional Yes I've audited all the almost 100 drm_connector_funcs we have, no one botched this ;-) Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449218769-16577-19-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Thierry Reding drivers/gpu/drm/drm_crtc.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 6fe14acd496e7ca27d6dfbeaa71b4f16656d10c2 Author: Daniel Vetter Date: Fri Dec 4 09:45:58 2015 +0100 drm: Document drm_connector_funcs The special case here is that both ->detect and ->force are actually functions only called by the probe helpers and hence really shouldn't be here. But since they've used by pretty much every driver I figured it's better to just document this for now instead of holding this doc patch hostage until that's all fixed. For that reason also group force right next to detect. v2: Use FIXME comments to annotate where we should move a hook to helpers. Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449218769-16577-18-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Thierry Reding include/drm/drm_crtc.h | 84 ++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 74 insertions(+), 10 deletions(-) commit c0714fc907db3c427d2153b68bd29eb6d40c44fd Author: Daniel Vetter Date: Fri Dec 4 09:45:57 2015 +0100 drm: Document drm_atomic_*_get_property Yes these are internal functions and not exported and we generally don't document them. But for symmetry with the _set_property functions (which are exported for the atomic helpers) I'd like to document them. Upcoming vtable kerneldoc will reference both the set and get_property functions. v2: Suggestions from Thierry. Signed-off-by: Daniel Vetter Reviewed-by: Thierry Reding Link: http://patchwork.freedesktop.org/patch/msgid/1449218769-16577-17-git-send-email-daniel.vetter@ffwll.ch Documentation/DocBook/gpu.tmpl | 1 + drivers/gpu/drm/drm_atomic.c | 33 ++++++++++++++++++++++++++++++--- 2 files changed, 31 insertions(+), 3 deletions(-) commit 129b782008a537a0d222d9e23b39d78a323ed595 Author: Daniel Vetter Date: Fri Dec 4 17:14:07 2015 +0100 drm: Move encoder->save/restore into nouveau Nouveau is the only user, and atomic drivers should do state save/restoring differently. So move it into noveau. Saves me typing some kerneldoc, too ;-) v2: Move misplaced hunk into earlier nouveau patch. Cc: Ilia Mirkin Cc: Ben Skeggs Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449245647-1315-1-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Thierry Reding drivers/gpu/drm/nouveau/dispnv04/dac.c | 7 +++---- drivers/gpu/drm/nouveau/dispnv04/dfp.c | 7 +++---- drivers/gpu/drm/nouveau/dispnv04/disp.c | 32 ++++++++++++------------------- drivers/gpu/drm/nouveau/dispnv04/tvnv04.c | 5 +++-- drivers/gpu/drm/nouveau/dispnv04/tvnv17.c | 5 +++-- drivers/gpu/drm/nouveau/nouveau_encoder.h | 3 +++ include/drm/drm_modeset_helper_vtables.h | 4 ---- 7 files changed, 27 insertions(+), 36 deletions(-) commit 813b0f3e00d402279718403aeb621c965f97180e Author: Daniel Vetter Date: Fri Dec 4 09:45:55 2015 +0100 drm: Remove crtc/connector->save/restore hooks They're not how system suspend/resume should be done with atomic (there's new helpers for that developed by Thierry Reding), and for legacy drivers this really should be a helper hook and not a core one. But there's not even helper code to use them, and only 2 drivers (which now have their own private hooks) set them. Ditch them. Saves me typing some kerneldoc, too ;-) Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449218769-16577-15-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Thierry Reding include/drm/drm_crtc.h | 11 ----------- 1 file changed, 11 deletions(-) commit 2c3d77155fb0e0ca80d33b29bfeee894ecf1f247 Author: Daniel Vetter Date: Fri Dec 4 17:13:38 2015 +0100 drm/nouveau: Use private save/restore hooks for CRTCs I want to remove the core ones since with atomic drivers system suspend/resume is solved much differently. And there's only 2 drivers (gma500 besides nouveau) really using them. v2: Fixup bugs Ilia spotted. Cc: Ben Skeggs Cc: Ilia Mirkin Signed-off-by: Daniel Vetter Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449245618-1127-1-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Thierry Reding drivers/gpu/drm/nouveau/dispnv04/crtc.c | 5 +++-- drivers/gpu/drm/nouveau/dispnv04/disp.c | 11 ++++++----- drivers/gpu/drm/nouveau/nouveau_crtc.h | 3 +++ 3 files changed, 12 insertions(+), 7 deletions(-) commit d56f57ac969c7818986a0c78025740399e49f3a9 Author: Daniel Vetter Date: Fri Dec 4 09:45:53 2015 +0100 drm/gma500: Move to private save/restore hooks I want to remove the core ones since with atomic drivers system suspend/resume is solved much differently. And there's only 2 drivers (nouveau besides gma500) really using them. v2: Fixup build noise 0day reported. Cc: Patrik Jakobsson Signed-off-by: Daniel Vetter Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449218769-16577-13-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Thierry Reding (v1) drivers/gpu/drm/gma500/cdv_device.c | 2 ++ drivers/gpu/drm/gma500/cdv_intel_display.c | 2 -- drivers/gpu/drm/gma500/cdv_intel_hdmi.c | 5 +++-- drivers/gpu/drm/gma500/cdv_intel_lvds.c | 4 ++-- drivers/gpu/drm/gma500/mdfld_device.c | 2 ++ drivers/gpu/drm/gma500/mdfld_dsi_output.c | 5 +++-- drivers/gpu/drm/gma500/oaktrail_device.c | 2 ++ drivers/gpu/drm/gma500/psb_device.c | 22 ++++++++++++---------- drivers/gpu/drm/gma500/psb_drv.h | 2 ++ drivers/gpu/drm/gma500/psb_intel_display.c | 2 -- drivers/gpu/drm/gma500/psb_intel_drv.h | 3 +++ drivers/gpu/drm/gma500/psb_intel_lvds.c | 5 +++-- drivers/gpu/drm/gma500/psb_intel_sdvo.c | 5 +++-- drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 2 -- 14 files changed, 37 insertions(+), 26 deletions(-) commit 458091b57890351aec8ecd4be410a423800dae3b Author: Rodrigo Vivi Date: Mon Dec 7 10:35:06 2015 -0800 drm/i2c/tda998x: Remove unused save/restore drm encoder helpers. save/restore have been removed from drm_encoder_helper_funcs by 'commit 79f13ad5d8e0 ("drm: Move encoder->save/restore into nouveau")' But this module was still defining it with empty content causing compilation fails: drivers/gpu/drm/i2c/tda998x_drv.c:1354:10: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types] .save = tda998x_encoder_save, drivers/gpu/drm/i2c/tda998x_drv.c:1355:2: error: unknown field 'restore' specified in initializer .restore = tda998x_encoder_restore, Cc: Reinette Chatre Signed-off-by: Rodrigo Vivi Link: http://patchwork.freedesktop.org/patch/msgid/1449513306-17309-1-git-send-email-rodrigo.vivi@intel.com drivers/gpu/drm/i2c/tda998x_drv.c | 14 -------------- 1 file changed, 14 deletions(-) commit f80de66eca654d9363918a1b4c0a62059586feff Author: Daniel Vetter Date: Fri Dec 4 09:45:52 2015 +0100 drm/vmwgfx: Drop dummy save/restore hooks These hooks will be gone soon. Cc: Thomas Hellstrom Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449218769-16577-12-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Thierry Reding drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 16 ---------------- drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c | 4 ---- drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 4 ---- drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 4 ---- 4 files changed, 28 deletions(-) commit 3dc8ed71b44538db9ed4bb1a6e03bbd76291893d Author: Daniel Vetter Date: Fri Dec 4 09:45:51 2015 +0100 drm/virtio: Drop dummy save/restore functions These hooks will be gone soon. Cc: Dave Airlie Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449218769-16577-11-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Thierry Reding drivers/gpu/drm/virtio/virtgpu_display.c | 12 ------------ 1 file changed, 12 deletions(-) commit 2ed1e42af46c6006f0019b1c2bf3d7b13b72a820 Author: Daniel Vetter Date: Fri Dec 4 09:45:50 2015 +0100 drm/qxl: Drop dummy save/restore hooks These hooks will be gone soon. Cc: Dave Airlie Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449218769-16577-10-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Thierry Reding drivers/gpu/drm/qxl/qxl_display.c | 12 ------------ 1 file changed, 12 deletions(-) commit fee6fdfa69396da33bb8a816b36150afcbe9d1a0 Author: Daniel Vetter Date: Fri Dec 4 09:45:49 2015 +0100 drm/nouveau: Ditch NULL save/restore hook assignments gcc does this for us, and these hooks will be gone soon. Cc: Ben Skeggs Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449218769-16577-9-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Thierry Reding drivers/gpu/drm/nouveau/nouveau_connector.c | 6 ------ 1 file changed, 6 deletions(-) commit 88548636406c08ef4b3d32d12d1860a216389177 Author: Daniel Vetter Date: Fri Dec 4 09:45:48 2015 +0100 drm: Update drm_plane_funcs kerneldoc - Merge the docbook into the kerneldoc comments. - Spec in detail the precise semantics of the callbacks. - For consistency in wording and easier review roll out kerneldoc also for crtc, encoder and connector for the standard hooks they share with planes. v2: Suggestions from Thierry. Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449218769-16577-8-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Thierry Reding Documentation/DocBook/gpu.tmpl | 104 --------- include/drm/drm_crtc.h | 496 ++++++++++++++++++++++++++++++++++++++--- 2 files changed, 459 insertions(+), 141 deletions(-) commit da024fe58680a46346cfbeba5db705d33f39b313 Author: Daniel Vetter Date: Fri Dec 4 09:45:47 2015 +0100 drm/bridge: Improve kerneldoc Especially document the assumptions and semantics of the callbacks carefully. Just a warm-up excercise really. v2: Spelling fixes (Eric). v3: Consolidate more with existing docs: - Remove the overview section explaining the bridge funcs, that's now all in the drm_bridge_funcs kerneldoc in much more detail. - Use & to reference structs so that kerneldoc automatically inserts hyperlinks. v4: Review from Thierry. Cc: Eric Anholt Cc: Archit Taneja Signed-off-by: Daniel Vetter Reviewed-by: Archit Taneja (v3) Link: http://patchwork.freedesktop.org/patch/msgid/1449218769-16577-7-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Thierry Reding drivers/gpu/drm/drm_bridge.c | 69 +++++++++++------------------ include/drm/drm_crtc.h | 102 ++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 122 insertions(+), 49 deletions(-) commit 2be94971c759da872efce99fa823ea17cdb7cc8b Author: Daniel Vetter Date: Fri Dec 4 09:45:46 2015 +0100 drm: Merge helper docbook into kerneldoc comments Duplication is bad, luckily both help texts highlighted different issues so the kerneldoc gained quite a bit! While at it also sprinkle more references to the vtable structs around and make it clear that legacy CRTC helpers are deprecated and which functions to use instead. v2: Spelling fixes and polish (Thierry). Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449218769-16577-6-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Thierry Reding Documentation/DocBook/gpu.tmpl | 80 +------------------------------------- drivers/gpu/drm/drm_crtc_helper.c | 64 +++++++++++++++++++++++------- drivers/gpu/drm/drm_probe_helper.c | 30 ++++++++++---- 3 files changed, 76 insertions(+), 98 deletions(-) commit 4490d4c7111e1ebf748ea2c3e1e64d103d73bae7 Author: Daniel Vetter Date: Fri Dec 4 09:45:45 2015 +0100 drm: Make helper vtable pointers type-safe Originally the idea behind void* was to allow different sets of helpers. But now we have that (with probe, plane, crtc and atomic helpers) and we still just use the same set of vtables. That's the only way to make the individual helpers modular and allow drivers to pick&choose and transition between them. So this flexibility isn't really needed. Also we have lots of non-vtable data meanwhile in core structures too, this is not the first one at all. Given that the void * is only trouble since gcc can't warn you if you mix them up. Let's fix that and make them typesafe. Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449218769-16577-5-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Thierry Reding include/drm/drm_crtc.h | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 092d01dae09aa6779ed41c3ac637e1e3c835424b Author: Daniel Vetter Date: Fri Dec 4 09:45:44 2015 +0100 drm: Reorganize helper vtables and their docs Currently we have 4 helper libraries (probe, crtc, plane & atomic) that all use the same helper vtables. And that's by necessity since we don't want to litter the core structs with one ops pointer per helper library. Also often the reuse the same hooks (like atomic does, to facilite conversion from existing drivers using crtc and plane helpers). Given all that it doesn't make sense to put the docs for these next to specific helpers. Instead extract them into a new header file and section in the docbook, and add references to them everywhere. Unfortunately kernel-doc complains when an include directive doesn't find anything (and it does by dumping crap into the output file). We have to remove the now empty includes to avoid that, instead of leaving them in for future proofing. v2: More OCD in ordering functions. v3: Spelling plus collate copyright headers properly. Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449218769-16577-4-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Thierry Reding Documentation/DocBook/gpu.tmpl | 6 +- drivers/gpu/drm/drm_atomic_helper.c | 6 + drivers/gpu/drm/drm_crtc_helper.c | 5 + drivers/gpu/drm/drm_plane_helper.c | 4 + drivers/gpu/drm/drm_probe_helper.c | 3 + include/drm/drm_crtc_helper.h | 158 +------------------ include/drm/drm_modeset_helper_vtables.h | 257 +++++++++++++++++++++++++++++++ include/drm/drm_plane_helper.h | 38 +---- 8 files changed, 282 insertions(+), 195 deletions(-) commit b516a9efb7af38733ba2308fc7c0f49f034f53bd Author: Daniel Vetter Date: Fri Dec 4 09:45:43 2015 +0100 drm: Move LEAVE/ENTER_ATOMIC_MODESET to fbdev helpers This is only used for kgdb (and previously panic) handlers in the fbdev emulation, so belongs there. Note that this means we'll leave behind a forward declaration, but once all the helper vtables are consolidated (in the next patch) that will make more sense. v2: fixup radone/amdgpu. Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449218769-16577-3-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Thierry Reding (v2) drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h | 1 + drivers/gpu/drm/nouveau/nv50_display.c | 1 + drivers/gpu/drm/radeon/atombios_crtc.c | 1 + drivers/gpu/drm/radeon/radeon_legacy_crtc.c | 1 + include/drm/drm_crtc_helper.h | 5 +---- include/drm/drm_fb_helper.h | 5 +++++ 6 files changed, 10 insertions(+), 4 deletions(-) commit 264d6970e16c68f851086d6f7fbf9aba18910e62 Author: Daniel Vetter Date: Fri Dec 4 09:45:42 2015 +0100 drm: Polish fbdev helper struct docs Mostly this is just adding extensive docs for the callbacks, but also a few other additions. v2: Use FIXME comments to annotate helper hooks that should be replaced. v3: Small nits (Thierry). Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449218769-16577-2-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Thierry Reding include/drm/drm_fb_helper.h | 96 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 81 insertions(+), 15 deletions(-) commit 05a85a6c42b59cd97d49314ad3d1939039eb9aee Author: Janusz Dziedzic Date: Fri Nov 27 09:37:18 2015 +0100 ath9k: remove ath9k_mod_tsf64_tu Remove ath9k_mod_tsf64_tu() function while we could use div_u64_rem() function. Signed-off-by: Janusz Dziedzic Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/common-beacon.c | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) commit 02edab5b5f82fcb35696b2606e840a3ec87d7954 Author: Janusz Dziedzic Date: Fri Nov 27 09:37:17 2015 +0100 ath9k: MCC, print time elapsed between events This is useful for MCC debugging and bug fixing. Signed-off-by: Janusz Dziedzic Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/ath9k.h | 1 + drivers/net/wireless/ath/ath9k/channel.c | 19 +++++++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) commit a64d876ef7dc33a7e3c52b06db2c2a55ff8ac785 Author: Janusz Dziedzic Date: Fri Nov 27 09:37:15 2015 +0100 ath9k: MCC, add NOA also in case of an AP In case of MCC and AP interface, add also NOA attr that will inform stations about absence of an AP. There is a chance that some stations will handle this NOA attr correctly and will know exactly when AP is present/absent. Signed-off-by: Janusz Dziedzic Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/beacon.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit b10b7fb31a217084de0cf834d0e72c24d9710015 Author: Janusz Dziedzic Date: Fri Nov 27 09:37:13 2015 +0100 ath9k: P2P_CLIENT, get/set NOA correctly In case we get BSS_CHANGED_P2P_PS early, from mac80211, we didn't set NOA timer correctly, while p2p_ps_vif was NULL. Signed-off-by: Janusz Dziedzic Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/channel.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 3edbf0ba0494ad4c576763e733ad0da3bed2f621 Author: Janusz Dziedzic Date: Fri Nov 27 09:37:12 2015 +0100 ath9k: MCC enable Opportunistic Power Save When adding NOA attr enable Opportunistic Power Save. Before we calculate ctwindow but didn't enable oppps. Signed-off-by: Janusz Dziedzic Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/channel.c | 2 ++ 1 file changed, 2 insertions(+) commit c1b7bea038f00e710e738d8a8a76dc87ceb013f8 Author: Janusz Dziedzic Date: Fri Nov 27 09:37:11 2015 +0100 ath9k: setup correct skb priority for nullfunc After queue nullfunc for MCC case, we hit WARN_ON in xmit.c:2398 while skb priority wasn't set. Signed-off-by: Janusz Dziedzic Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/channel.c | 1 + 1 file changed, 1 insertion(+) commit 631c45f41957032056568b57b185c214dcebbe84 Author: Janusz Dziedzic Date: Fri Nov 27 09:37:10 2015 +0100 ath9k: use u32 when calculate tsf Use u32 while ath9k_hw_gettsf32() and ath9k_hw_gen_timer_start() require u32. Signed-off-by: Janusz Dziedzic Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/channel.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b77b59ae8acd854d3b18ea3cbd85646922083b0b Author: Janusz Dziedzic Date: Fri Nov 27 09:37:09 2015 +0100 ath9k: P2P_CLIENT, send frames after 1ms AP/GO will aprear AP/GO will aprear after NOA, wait 1ms to be sure AP could receive/answer this frames. Signed-off-by: Janusz Dziedzic Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/channel.c | 4 ++++ 1 file changed, 4 insertions(+) commit 60337ed86306c1f75d2f6744c6ff53dfd39eacc0 Author: Janusz Dziedzic Date: Fri Nov 27 09:37:08 2015 +0100 ath9k: queue null frames in case of MCC While mac80211 using null frames when connection polling, we should queue this frames while NOA could be there, and AP, P2P_GO could be not present. Without this patch, with no traffic we often saw disconnections while we try to send nullfunc when AP/GO wasn't present. Signed-off-by: Janusz Dziedzic Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/xmit.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 2f985539b98b01ddcb06c214f3c6b81f40e083e4 Author: Janusz Dziedzic Date: Fri Nov 27 09:37:07 2015 +0100 ath9k: print real timer value In case of low HZ before this patch we saw wrong values in debug message. Print real timeout value. Signed-off-by: Janusz Dziedzic Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/channel.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 58bb9ca84c2013615069b94940846b274fc8e2c7 Author: Janusz Dziedzic Date: Fri Nov 27 09:37:06 2015 +0100 ath9k: add debug messages to aggr/chanctx funcs Add/extend debug messages when chanctx used. Signed-off-by: Janusz Dziedzic Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/channel.c | 11 ++++++++--- drivers/net/wireless/ath/ath9k/hw.c | 8 ++++---- drivers/net/wireless/ath/ath9k/xmit.c | 15 +++++++++++++++ 3 files changed, 27 insertions(+), 7 deletions(-) commit 452133a717dd13b57a99defb791d25c568483f6b Author: Maya Erez Date: Tue Nov 24 09:30:15 2015 +0200 wil6210: prevent external wmi commands during suspend flow In __wmi_send we check if fw is ready at the beginning of the function. While we wait for the completion of the previous command, system suspend can be invoked and reset the HW, causing __wmi_send to read from HW registers while it is not ready. Taking the wmi_mutex in the reset flow when setting the FW ready bit to zero will prevent the above race condition. Signed-off-by: Maya Erez Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/main.c | 4 +++- drivers/net/wireless/ath/wil6210/wmi.c | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) commit 410d13a6b057f69c58b8bf8ccca8e9cbf57ea710 Author: Bob Copeland Date: Thu Nov 19 10:04:48 2015 -0500 ath5k: fix RTS/CTS by using proper rate flags The rates in the tx control rateset do not have the protection flags applied, so RTS/CTS would never get enabled if requested. Fix by using the rate flags in the rates returned by ieee80211_get_tx_rates(). Signed-off-by: Bob Copeland Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath5k/base.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 79fd1709b64991c86e5ffef0689b4635874e6504 Author: Steve deRosier Date: Wed Nov 18 14:51:28 2015 -0800 ath6kl: Don't print error message when recv is canceled An error message ath6kl_htc_rxmsg_pending_handler isn't appropate for when the error is ECANCELED. This could be the result of a perfectly appropriate RX cancel due to shutdown or suspend. This allows the right cleanup to continue, but without an alarming error message in this particular case. Signed-off-by: Steve deRosier Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath6kl/htc_mbox.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 6fa658fd5ab26a769ca7df7bfdd53c212a0ba852 Author: Martin Blumenstingl Date: Sat Oct 31 13:57:32 2015 +0100 ath9k: Simplify and fix eeprom endianness swapping The three eeprom implementations had quite some duplicate code when it came to endianness swapping. Additionally there was a bug in eeprom_4k and eeprom_9287 which prevented the endianness swapping from working correctly, because the swapping code was guarded within an "if (!ath9k_hw_use_flash(ah))". In eeprom_def this check did not exist, so it seems that eeprom_def was the only implementation where endianness swapping worked. This patch takes the duplicate code and moves it from eeprom_* to eeprom.c. The new code is derived from eeprom_def, while taking into account the specifics from the other implementations. Signed-off-by: Martin Blumenstingl Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/eeprom.c | 74 +++++++++++++++++++++++++++ drivers/net/wireless/ath/ath9k/eeprom.h | 3 ++ drivers/net/wireless/ath/ath9k/eeprom_4k.c | 76 ++++++---------------------- drivers/net/wireless/ath/ath9k/eeprom_9287.c | 68 ++++++------------------- drivers/net/wireless/ath/ath9k/eeprom_def.c | 61 ++++++---------------- 5 files changed, 123 insertions(+), 159 deletions(-) commit b057886524be060021e3cfad0ba8458c850330cd Author: Felix Fietkau Date: Mon Nov 30 19:32:01 2015 +0100 ath10k: do not use coherent memory for allocated device memory chunks Coherent memory is more expensive to allocate (and constrained on some architectures where it has to be pre-allocated). It is also completely unnecessary, since the host has no reason to even access these allocated memory spaces Signed-off-by: Felix Fietkau Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi.c | 61 ++++++++++++++++++++++++----------- 1 file changed, 43 insertions(+), 18 deletions(-) commit 81ec3c09ab1bb24e5edf2bd08707982a4e7fb8bd Author: Mohammed Shafi Shajakhan Date: Mon Nov 30 22:29:39 2015 +0530 ath10k: remove unnecessary amsdu/ampdu assignment in debugfs The default values of max_num_amsdu / max_num_amdpu is assigned a default value as part of 'ath10k_core_init_firmware_features' Signed-off-by: Mohammed Shafi Shajakhan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/debug.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a308ccb3a93bc665ed0f6bc864960795e2955532 Author: Ville Syrjälä Date: Fri Dec 4 22:22:50 2015 +0200 drm/i915: Leave FDI running after failed link training on LPT-H Currently we disable some parts of FDI setup after a failed link training. But despite that we continue with the modeset as if everything is fine. This results in tons of noise from the state checker, and it means we're not following the proper modeset sequence for the rest of crtc enabling, nor for crtc disabling. Ideally we should abort the modeset and follow the proper disable sequence to shut off everything we enabled so far, but that would require a big rework of the modeset code. So instead just leave FDI up and running in its untrained state, and log an error. This is what we do on older platforms too. v2: Fix a typo in the commit message Signed-off-by: Ville Syrjälä Reviewed-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/1449260570-14670-1-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/i915/intel_ddi.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) commit 503a74e98c3636a74444e6567dbdea44b855e8cb Author: Ville Syrjälä Date: Fri Dec 4 22:22:14 2015 +0200 drm/i915: Disable LPT-H VGA dotclock during crtc disable Currently we leave the LPT-H VGA dotclock running after turning the pipe/fdi/port/etc. Properly disable the VGA dotclock as specified in the modeset sequence. v2: Fix commit message typo (Paulo) Signed-off-by: Ville Syrjälä Reviewed-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/1449260534-14551-1-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/i915/intel_display.c | 1 + 1 file changed, 1 insertion(+) commit 060f02d81d9c220dab39131ec218079cb0d7cbff Author: Ville Syrjälä Date: Fri Dec 4 22:21:34 2015 +0200 drm/i915: Refactor LPT-H VGA dotclock disabling Extract the LPT-H VGA dotclock disable to a separate function in anticipation of further use. While at it move the sb_lock locking inwards when enabling the VGA dotclock, as it's only needed to protect the sideband accesses. v2: Keep the PIXCLK_GATE_GATE name for 0 (Paulo) Signed-off-by: Ville Syrjälä Reviewed-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/1449260494-14449-1-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/i915/intel_display.c | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) commit 92966a378fcd466c2554bd5158187971481347c9 Author: Ville Syrjälä Date: Tue Dec 8 16:05:48 2015 +0200 drm/i915: Disable FDI after the CRT port on LPT-H Bspec modeset sequence tells us to disable the PCH transcoder and FDI after the CRT port on LPT-H, so let's do that. And the CRT port should be disabled after the pipe, as we do on other PCH platforms too since commit 1ea56e269e13 ("drm/i915: Disable CRT port after pipe on PCH platforms") commit 00490c22b1b5 ("drm/i915: Consider SPLL as another shared pll, v2.") moved the SPLL disable from the .post_disable() hook to some upper level code, so we can just move the CRT port disabling into the .post_disable() hook. If we still had the non-shared SPLL, it would have needed to be moved into the .post_pll_disable() hook. v2: Actually move the CRT port disable to the .post_disable() hook, and amend the commit message with more details (Paulo) v3: Fix typos in commit message (Paulo) Cc: Paulo Zanoni Signed-off-by: Ville Syrjälä Reviewed-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/1449583548-11896-1-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/i915/intel_crt.c | 2 +- drivers/gpu/drm/i915/intel_display.c | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) commit a2572f5cfb6c373cd4bc0acbd9f25f0af591ee7c Author: Ville Syrjälä Date: Fri Dec 4 22:20:21 2015 +0200 drm/i915: Round to closest when computing the VGA dotclock for LPT-H Bspec says we should round to closest when computing the LPT-H VGA dotclock, so let's do that. v2: Fix typo in commit message (Paulo) Signed-off-by: Ville Syrjälä Reviewed-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/1449260421-14243-1-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/i915/intel_display.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f7be2c2150b0457ae88cb1cf7799846f996d72c7 Author: Ville Syrjälä Date: Fri Dec 4 22:19:39 2015 +0200 drm/i915: Disable CLKOUT_DP bending on LPT/WPT as needed When we want to use SPLL for FDI we want SSC, which means we have to disable clock bending for the PCH SSC reference (bend and spread are mutually exclusive). So let's turn off bending when we want spread. In case the BIOS enabled clock bending for some reason we'll just turn it off and enable the spread mode instead. Not sure what happens if the BIOS is actually using the bend source for HDMI at this time, but I suppose it should be no worse than what already happens when we simply turn on the spread. We don't currently use the bend source for anything, and only use the PCH SSC reference for the SPLL to drive FDI (always with spread). v2: Fix the %5 vs %10 fumble for SSCDITHPHASE (Paulo) Add 'WARN_ON(steps % 5 != 0)' sanity check (Paulo) Fix typos in commit message (Paulo) Cc: Paulo Zanoni Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1449260379-14093-1-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Paulo Zanoni drivers/gpu/drm/i915/i915_reg.h | 2 ++ drivers/gpu/drm/i915/intel_display.c | 67 ++++++++++++++++++++++++++++++++++-- 2 files changed, 67 insertions(+), 2 deletions(-) commit bcf4299e6215a475259c3ac329d43e776cfe9c0c Author: Rasmus Villemoes Date: Tue Dec 1 15:54:01 2015 +0100 floppy: make local variable non-static There's no reason for temparea to be static, since it's only used for temporary sprintf output. It's not immediately obvious that the output will always fit (in the worst case, the output including '\0' is exactly 32 bytes), so save a future reader from worrying about that. Signed-off-by: Rasmus Villemoes Signed-off-by: Jiri Kosina drivers/block/floppy.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit be853fd1c6a5fe127af3392157dfe95e9712a575 Author: Jason Gerecke Date: Fri Dec 4 14:45:27 2015 -0800 HID: wacom: Apply lowres quirk to BAMBOO_TOUCH devices When splitting the touch-only "BAMBOO_TOUCH" type out of the existing "BAMBOO_PT" type in 3b164a00, the lowres quirk was not updated so that it would continue to apply to these devices (effectively only the 0xD0). The absence of this quirk does not significantly impact usability, but is a correctness issue nonetheless. Signed-off-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_wac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8e3911178e0d406bc3e84e7dcd8b556edc47b9d7 Author: Ashley Towns Date: Thu Nov 12 21:03:27 2015 +1100 exynos: fixes an incorrect header guard in the exynos gpu driver where the preprocessor #ifndef/#define variables were mismatched. Signed-off-by: Ashley Towns Signed-off-by: Jiri Kosina drivers/gpu/drm/exynos/exynos_drm_fb.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0b4663a1f4a7541d070ddb3da4b606389a02d5c8 Author: Ashley Towns Date: Thu Nov 12 20:54:17 2015 +1100 dt-bindings: fixes some incorrect header guards in dt-bindings where the preprocessor #ifndef/#define variables were mismatched. Signed-off-by: Ashley Towns Signed-off-by: Jiri Kosina include/dt-bindings/leds/common.h | 2 +- include/dt-bindings/mfd/palmas.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 925f709fb381e21b08445f5da0797e198aac1460 Author: Richard Genoud Date: Tue Nov 3 13:09:23 2015 +0100 cpufreq-dt: correct dead link in documentation commit 3566c5b277a4 ("PM / OPP: Create a directory for opp bindings") renamed the file: Documentation/devicetree/bindings/power/opp.txt to Documentation/devicetree/bindings/opp/opp.txt leaving a dead link in cpufreq/arm_big_little_dt.txt. The link points now to the good file. Signed-off-by: Richard Genoud Signed-off-by: Jiri Kosina Documentation/devicetree/bindings/cpufreq/cpufreq-dt.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 14d74598bcfaa93ed3dd429060eca2f5a2295713 Author: Richard Genoud Date: Tue Nov 3 12:42:49 2015 +0100 cpufreq: ARM big LITTLE: correct dead link in documentation commit 3566c5b277a4 ("PM / OPP: Create a directory for opp bindings") renamed the file: Documentation/devicetree/bindings/power/opp.txt to Documentation/devicetree/bindings/opp/opp.txt leaving a dead link in cpufreq/arm_big_little_dt.txt. The link points now to the good file. Signed-off-by: Richard Genoud Signed-off-by: Jiri Kosina Documentation/devicetree/bindings/cpufreq/arm_big_little_dt.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e7674b8c31717dd0c58b3a9493d43249722071eb Author: Mika Kuoppala Date: Mon Dec 7 18:29:45 2015 +0200 drm/i915/skl: Double RC6 WRL always on WaRsDoubleRc6WrlWithCoarsePowerGating should be enabled for all Skylakes. Make it so. Cc: Sagar Arun Kamble Signed-off-by: Mika Kuoppala Reviewed-by: Sagar Arun Kamble Link: http://patchwork.freedesktop.org/patch/msgid/1449505785-20812-2-git-send-email-mika.kuoppala@intel.com Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_pm.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit e3d132d1239ae846e2f7c652fbdc5aa7ebcc4541 Author: Masanari Iida Date: Fri Oct 16 21:14:29 2015 +0900 treewide: Fix typos in printk This patch fix multiple spelling typos found in various part of kernel. Signed-off-by: Masanari Iida Acked-by: Randy Dunlap Signed-off-by: Jiri Kosina drivers/firmware/efi/libstub/fdt.c | 2 +- drivers/infiniband/hw/cxgb4/cm.c | 2 +- drivers/md/raid0.c | 4 ++-- drivers/media/common/saa7146/saa7146_video.c | 2 +- drivers/media/dvb-frontends/m88ds3103.c | 2 +- drivers/media/dvb-frontends/si2165.c | 4 ++-- drivers/media/pci/netup_unidvb/netup_unidvb_core.c | 2 +- drivers/net/ethernet/intel/i40evf/i40evf_main.c | 2 +- drivers/soc/ti/knav_dma.c | 2 +- sound/drivers/pcm-indirect2.c | 2 +- sound/usb/6fire/firmware.c | 2 +- 11 files changed, 13 insertions(+), 13 deletions(-) commit 6686ece19f7446f0e29c77d9e0402e1d0ce10c48 Author: Mika Kuoppala Date: Mon Dec 7 18:29:44 2015 +0200 drm/i915/skl: Disable coarse power gating up until F0 There is conflicting info between E0 and F0 steppings for this workarounds. Trust more authoritative source and be conservative and extend also for F0. This prevents numerous (>50) gpu hangs with SKL GT4e during piglit run. References: HSD: gen9lp/2134184 Cc: Sagar Arun Kamble Signed-off-by: Mika Kuoppala Reviewed-by: Sagar Arun Kamble Link: http://patchwork.freedesktop.org/patch/msgid/1449505785-20812-1-git-send-email-mika.kuoppala@intel.com Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_pm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 20d5a865e1f1d98e8520c12fc647c9d4e47f46b3 Author: Masanari Iida Date: Tue Sep 22 12:04:17 2015 +0900 Documentation: filesystem: Fix typo in fs/eventfd.c This patch fix typos found in Documentation/filesystems.xml, DocBook/filesystems/API-eventfd-signal.html, and DocBook/filesystems.aux.xml These files are generated from comments within the source, so I had to fix typos in fs/eventfd.c Signed-off-by: Masanari Iida Signed-off-by: Jiri Kosina fs/eventfd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 22224a17587c90e25371e7d07c079548359b2039 Author: Vincent Stehlé Date: Mon Sep 21 17:18:34 2015 +0200 fs/super.c: use && instead of & for warn_on condition This fixes the following sparse warning: fs/super.c:1202:9: warning: dubious: x & !y Bitwise and logical and are equivalent here, but logical was intended. The generated code is identical, with and without CONFIG_LOCKDEP. Signed-off-by: Vincent Stehlé Acked-by: Oleg Nesterov Signed-off-by: Jiri Kosina fs/super.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d83e2a4ea2296620e8f6cb724e60190826c43a3f Author: Chris Dunlop Date: Fri Sep 18 16:10:55 2015 +1000 Documentation: fix sysfs-ptp s/avaiable/available/g This fixup is already in scripts/spelling.txt. The fix in Documentation/ABI/testing/sysfs-ptp affects documentation of a /sys entry: the /sys entry itself is correct. Signed-off-by: Chris Dunlop Signed-off-by: Jiri Kosina Documentation/ABI/testing/sysfs-ptp | 2 +- Documentation/sysctl/vm.txt | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 7f7e92f7553c663fc1c53f999b0bf88e2d1f30a7 Author: Geert Uytterhoeven Date: Fri Sep 4 12:45:05 2015 +0200 lib: scatterlist: fix Kconfig description Spelling s/heler/helper/, grammar s/channel/channels/ Signed-off-by: Geert Uytterhoeven Signed-off-by: Jiri Kosina lib/Kconfig | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit c5dae0df298120e0a331d749d77fd472c253b5b3 Author: Geert Uytterhoeven Date: Fri Oct 16 11:41:19 2015 +0200 clk: shmobile: r8a7795: Add new CPG/MSSR driver Add a new R-Car H3 Clock Pulse Generator / Module Standby and Software Reset driver, using the new CPG/MSSR driver core. Signed-off-by: Geert Uytterhoeven drivers/clk/Makefile | 1 + drivers/clk/shmobile/Makefile | 2 + drivers/clk/shmobile/r8a7795-cpg-mssr.c | 382 ++++++++++++++++++++++++++++++++ drivers/clk/shmobile/renesas-cpg-mssr.c | 6 + drivers/clk/shmobile/renesas-cpg-mssr.h | 1 + 5 files changed, 392 insertions(+) commit f793d1e51705b276f083c1dc0dc75fb4cc4375c7 Author: Geert Uytterhoeven Date: Fri Oct 16 11:41:19 2015 +0200 clk: shmobile: Add new CPG/MSSR driver core Add the common core for the new Renesas Clock Pulse Generator / Module Standby and Software Reset driver. Signed-off-by: Geert Uytterhoeven drivers/clk/shmobile/renesas-cpg-mssr.c | 590 ++++++++++++++++++++++++++++++++ drivers/clk/shmobile/renesas-cpg-mssr.h | 131 +++++++ 2 files changed, 721 insertions(+) commit 1fae91ec99fbb14b021f552f6a7e74ec75cf1a3e Author: Geert Uytterhoeven Date: Fri Oct 16 11:41:19 2015 +0200 clk: shmobile: div6: Extract cpg_div6_register() Extract cpg_div6_register(), to allow registering div6 clocks from another clock driver. Signed-off-by: Geert Uytterhoeven Acked-by: Laurent Pinchart drivers/clk/shmobile/clk-div6.c | 132 ++++++++++++++++++++++++++-------------- drivers/clk/shmobile/clk-div6.h | 7 +++ 2 files changed, 94 insertions(+), 45 deletions(-) commit 07705583e920fef65a1bbe4549684f30df5c6ef2 Author: Geert Uytterhoeven Date: Tue Sep 8 14:46:32 2015 +0200 clk: shmobile: div6: Make clock-output-names optional Renesas DIV6 clocks provide a single clock output. Hence make the "clock-output-names" DT property optional instead of mandatory. In case the DT property is omitted the DT node name will be used. Rename the variable "name" to "clk_name" to make the code more similar with fixed-factor-clock.c, and to avoid a conflict with a nested local variable while we're at it. Signed-off-by: Geert Uytterhoeven .../devicetree/bindings/clock/renesas,cpg-div6-clocks.txt | 4 ++++ drivers/clk/shmobile/clk-div6.c | 13 +++---------- 2 files changed, 7 insertions(+), 10 deletions(-) commit 189d3a2976797346eac4bb20f06635476d62edb8 Author: Magnus Damm Date: Thu Oct 1 23:37:27 2015 +0900 clk: shmobile: Rework CONFIG_ARCH_SHMOBILE_MULTI Shmobile is all multiplatform these days, so get rid of the reference to CONFIG_ARCH_SHMOBILE_MULTI in drivers/clk/shmobile/. Also instead of always enabling DIV6 and MSTP adjust the Makefile to enable DIV6 and MSTP depending on if they are included in the SoC or not. Signed-off-by: Magnus Damm Acked-by: Laurent Pinchart Signed-off-by: Geert Uytterhoeven drivers/clk/shmobile/Makefile | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) commit f27200f9dce59ce5063bf722ef6ccedd34e4357b Author: Geert Uytterhoeven Date: Mon Nov 16 21:53:37 2015 +0100 pinctrl: sh-pfc: r8a7795: Add SCIF_CLK support Add pins, groups, and a function for SCIF_CLK, which is the external clock source for the Baud Rate Generator for External Clock (BRG) on (H)SCIF. Signed-off-by: Geert Uytterhoeven Acked-by: Linus Walleij drivers/pinctrl/sh-pfc/pfc-r8a7795.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit a4c8a6d2f6ed3686ce0cc789ed9213f579ebd4ad Author: Geert Uytterhoeven Date: Mon Oct 26 09:53:28 2015 +0100 pinctrl: sh-pfc: r8a7791: Add SCIF_CLK support Add pins, groups, and a function for SCIF_CLK, which is the external clock source for the Baud Rate Generator for External Clock (BRG) on (H)SCIF. Signed-off-by: Geert Uytterhoeven Acked-by: Linus Walleij drivers/pinctrl/sh-pfc/pfc-r8a7791.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit ae9335dc0c1d777c06f8c9eb59d4b718523fbc55 Author: Geert Uytterhoeven Date: Thu Nov 26 14:18:42 2015 +0100 pinctrl: sh-pfc: sh73a0: Add MSIOF support Add pins, groups, and a function for the 4 MSIOF devices. Note that the pin function name of MSIOF3 is named BBIF1. Signed-off-by: Geert Uytterhoeven drivers/pinctrl/sh-pfc/pfc-sh73a0.c | 546 ++++++++++++++++++++++++++++++++++++ 1 file changed, 546 insertions(+) commit b363d81972fc57427ec799754e16bf31bd1cb95b Author: Geert Uytterhoeven Date: Thu Nov 26 14:17:11 2015 +0100 pinctrl: sh-pfc: sh73a0: Correct comment for LCD2 data pins The 12 data pins of LCD2 are numbered 0..11, not 0..12. Signed-off-by: Geert Uytterhoeven drivers/pinctrl/sh-pfc/pfc-sh73a0.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 944e798890e10c27c520d422c4d0562ddf47890c Author: Geert Uytterhoeven Date: Mon Nov 30 14:54:13 2015 +0100 pinctrl: sh-pfc: r8a7740: Correct comment for LCD1 data pins The 12 data pins of LCD1 are numbered 0..11, not 0..12. Signed-off-by: Geert Uytterhoeven drivers/pinctrl/sh-pfc/pfc-r8a7740.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 188289ad90bfde1bdbed962cbadaa016a2acfbf1 Author: Geert Uytterhoeven Date: Mon Nov 30 14:54:50 2015 +0100 pinctrl: sh-pfc: emev2: Correct comment for CFI data pins The 8 data pins of the Compact Flash Interface are numbered 0..7, not 0..8. Signed-off-by: Geert Uytterhoeven drivers/pinctrl/sh-pfc/pfc-emev2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e7419b81ff83eafca19629b383540d5d2d0f975c Author: Geert Uytterhoeven Date: Wed Sep 2 16:51:54 2015 +0200 pinctrl: sh-pfc: r8a7795: Add MSIOF pins, groups, and functions Extracted from a big patch by Takeshi Kihara. Signed-off-by: Takeshi Kihara [geert: Correct MSIOF3 TXD_A/RXD_A pins] Signed-off-by: Geert Uytterhoeven drivers/pinctrl/sh-pfc/pfc-r8a7795.c | 858 +++++++++++++++++++++++++++++++++++ 1 file changed, 858 insertions(+) commit 8d4df57378e51ac15da0276a0a3b20368729fe2a Author: Geert Uytterhoeven Date: Wed Sep 2 20:37:55 2015 +0200 pinctrl: sh-pfc: r8a7795: Add pinmux data for single-function pins Pins that (1) can be configured as either GPIO or a single peripheral function, and (2) that don't need configuration in an IPSRx register, should still be listed in the pinmux_data[] array. Else selecting the peripheral function fails with e.g.: sh-pfc e6060000.pfc: cannot locate data/mark enum_id for mark 1281 (mark 1281 is MSIOF0_SCK_MARK). Signed-off-by: Geert Uytterhoeven drivers/pinctrl/sh-pfc/pfc-r8a7795.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit 8795841bd606fbf1a63f66c51c07de39c44c4f34 Author: Geert Uytterhoeven Date: Wed Nov 25 13:45:02 2015 +0100 pinctrl: sh-pfc: sh7734: Use PINMUX_SINGLE() instead of raw PINMUX_DATA() Signed-off-by: Geert Uytterhoeven drivers/pinctrl/sh-pfc/pfc-sh7734.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) commit ab2d12cbe9d0369f94bc55bc659b2d2d9f3c15db Author: Geert Uytterhoeven Date: Wed Nov 25 11:25:35 2015 +0100 pinctrl: sh-pfc: r8a7779: Use PINMUX_SINGLE() instead of raw PINMUX_DATA() Signed-off-by: Geert Uytterhoeven drivers/pinctrl/sh-pfc/pfc-r8a7779.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 79e72c535cea93dd86f9b2ace61bbcbf9eeff243 Author: Geert Uytterhoeven Date: Wed Nov 25 11:25:29 2015 +0100 pinctrl: sh-pfc: r8a7778: Use PINMUX_SINGLE() instead of raw PINMUX_DATA() Signed-off-by: Geert Uytterhoeven drivers/pinctrl/sh-pfc/pfc-r8a7778.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit d81d8717c6c0f22c61c6e05ac3c6409b5021999c Author: Geert Uytterhoeven Date: Wed Nov 25 11:25:01 2015 +0100 pinctrl: sh-pfc: emev2: Use PINMUX_SINGLE() instead of raw PINMUX_DATA() Signed-off-by: Geert Uytterhoeven drivers/pinctrl/sh-pfc/pfc-emev2.c | 134 ++++++++++++++++++------------------- 1 file changed, 67 insertions(+), 67 deletions(-) commit a504b1ee417ffd1e3c272b4594213edf14af3ef1 Author: Kuninori Morimoto Date: Tue Dec 8 05:38:23 2015 +0000 ASoC: rsnd: tidyup data align position for capture L/R channel data has been treated as inverted on R-Car sound 16bit mode, Thus, 4689032b1("ASoC: rsnd: tidyup data align position") tidyuped data align position. But it couldn't care about capture case. This patch cares both playback/capture Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/cmd.c | 1 + sound/soc/sh/rcar/core.c | 13 +++++++++++-- sound/soc/sh/rcar/gen.c | 1 + sound/soc/sh/rcar/rsnd.h | 2 ++ 4 files changed, 15 insertions(+), 2 deletions(-) commit c5d431e8c511788556651b91debd7d77d4508f4b Author: Russell King Date: Tue Dec 8 10:58:09 2015 +0000 ARM: dove: convert legacy dove to PMU support Since Dove has non-DT support for various facilities in the PMU, convert the legacy support to use the new PMU driver. Acked-by: Arnd Bergmann Signed-off-by: Russell King Signed-off-by: Gregory CLEMENT arch/arm/Kconfig | 1 + arch/arm/mach-dove/common.c | 26 +++++++++++ arch/arm/mach-dove/include/mach/pm.h | 20 +++----- arch/arm/mach-dove/irq.c | 88 ------------------------------------ 4 files changed, 33 insertions(+), 102 deletions(-) commit 67098119abeb596823ed0a74dd8cdcfbee4c2210 Author: Russell King Date: Tue Dec 8 10:43:28 2015 +0000 soc: dove: add legacy support to PMU driver Add support for legacy non-DT Dove to the PMU driver, so that we can transition the legacy support over. [gregory.clement@free-electrons.com: removed pm_genpd_poweroff_unused] Acked-by: Arnd Bergmann Signed-off-by: Russell King Signed-off-by: Gregory CLEMENT drivers/soc/Makefile | 1 + drivers/soc/dove/pmu.c | 43 +++++++++++++++++++++++++++++++++++++++++++ include/linux/soc/dove/pmu.h | 19 +++++++++++++++++++ 3 files changed, 63 insertions(+) commit f0cb32207307e9d7b3ee8117078b7a37f8d0166e Author: Thomas Petazzoni Date: Tue Oct 20 15:23:51 2015 +0200 genirq: Implement irq_percpu_is_enabled() Certain interrupt controller drivers have a register set that does not make it easy to save/restore the mask of enabled/disabled interrupts at suspend/resume time. At resume time, such drivers rely on the core kernel irq subsystem to tell whether such or such interrupt is enabled or not, in order to restore the proper state in the interrupt controller register. While the irqd_irq_disabled() provides the relevant information for global interrupts, there is no similar function to query the enabled/disabled state of a per-CPU interrupt. Therefore, this commit complements the percpu_irq API with an irq_percpu_is_enabled() function. [ tglx: Simplified the implementation and added kerneldoc ] Signed-off-by: Thomas Petazzoni Cc: linux-arm-kernel@lists.infradead.org Cc: Tawfik Bayouk Cc: Nadav Haklai Cc: Lior Amsalem Cc: Andrew Lunn Cc: Sebastian Hesselbarth Cc: Gregory Clement Cc: Jason Cooper Cc: Marc Zyngier Link: http://lkml.kernel.org/r/1445347435-2333-2-git-send-email-thomas.petazzoni@free-electrons.com Signed-off-by: Thomas Gleixner include/linux/interrupt.h | 1 + kernel/irq/manage.c | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) commit 8e23dacd12a48e58125b84c817da50850b73280a Author: James Morse Date: Fri Dec 4 11:02:27 2015 +0000 arm64: Add do_softirq_own_stack() and enable irq_stacks entry.S is modified to switch to the per_cpu irq_stack during el{0,1}_irq. irq_count is used to detect recursive interrupts on the irq_stack, it is updated late by do_softirq_own_stack(), when called on the irq_stack, before __do_softirq() re-enables interrupts to process softirqs. do_softirq_own_stack() is added by this patch, but does not yet switch stack. This patch adds the dummy stack frame and data needed by the previous stack tracing patches. Reviewed-by: Catalin Marinas Signed-off-by: James Morse Signed-off-by: Will Deacon arch/arm64/include/asm/irq.h | 2 ++ arch/arm64/kernel/entry.S | 42 ++++++++++++++++++++++++++++++++++++++++-- arch/arm64/kernel/irq.c | 38 +++++++++++++++++++++++++++++++++++++- 3 files changed, 79 insertions(+), 3 deletions(-) commit 132cd887b5c54758d04bf25c52fa48f45e843a30 Author: AKASHI Takahiro Date: Fri Dec 4 11:02:26 2015 +0000 arm64: Modify stack trace and dump for use with irq_stack This patch allows unwind_frame() to traverse from interrupt stack to task stack correctly. It requires data from a dummy stack frame, created during irq_stack_entry(), added by a later patch. A similar approach is taken to modify dump_backtrace(), which expects to find struct pt_regs underneath any call to functions marked __exception. When on an irq_stack, the struct pt_regs is stored on the old task stack, the location of which is stored in the dummy stack frame. Reviewed-by: Catalin Marinas Signed-off-by: AKASHI Takahiro [james.morse: merged two patches, reworked for per_cpu irq_stacks, and no alignment guarantees, added irq_stack definitions] Signed-off-by: James Morse Signed-off-by: Will Deacon arch/arm64/include/asm/irq.h | 32 ++++++++++++++++++++++++++++++++ arch/arm64/kernel/irq.c | 3 +++ arch/arm64/kernel/stacktrace.c | 29 +++++++++++++++++++++++++++-- arch/arm64/kernel/traps.c | 14 +++++++++++++- 4 files changed, 75 insertions(+), 3 deletions(-) commit 6cdf9c7ca687e01840d0215437620a20263012fc Author: Jungseok Lee Date: Fri Dec 4 11:02:25 2015 +0000 arm64: Store struct thread_info in sp_el0 There is need for figuring out how to manage struct thread_info data when IRQ stack is introduced. struct thread_info information should be copied to IRQ stack under the current thread_info calculation logic whenever context switching is invoked. This is too expensive to keep supporting the approach. Instead, this patch pays attention to sp_el0 which is an unused scratch register in EL1 context. sp_el0 utilization not only simplifies the management, but also prevents text section size from being increased largely due to static allocated IRQ stack as removing masking operation using THREAD_SIZE in many places. Reviewed-by: Catalin Marinas Signed-off-by: Jungseok Lee Signed-off-by: James Morse Signed-off-by: Will Deacon arch/arm64/include/asm/thread_info.h | 10 ++++++++-- arch/arm64/kernel/entry.S | 15 ++++++++++++--- arch/arm64/kernel/head.S | 5 +++++ arch/arm64/kernel/sleep.S | 3 +++ 4 files changed, 28 insertions(+), 5 deletions(-) commit c4a58c308a459901827ac941d40d5db047a1cb71 Author: Takashi Iwai Date: Tue Dec 8 11:48:39 2015 +0100 ALSA: hda - Make snd_hda_parse_nid_path() local An exported function snd_hda_parse_nid_path() is used only inside hda_generic.c. Let's make it a static local function for a better code optimization. Signed-off-by: Takashi Iwai sound/pci/hda/hda_generic.c | 5 ++--- sound/pci/hda/hda_generic.h | 3 --- 2 files changed, 2 insertions(+), 6 deletions(-) commit 1e73bf781546f3969039fe60bff1eca44c87c241 Author: Takashi Iwai Date: Tue Dec 8 11:47:31 2015 +0100 ALSA: hda - Remove unused snd_hda_get_nid_path() An exported helper function snd_hda_get_nid_path() is nowhere used. Let's remove it. Signed-off-by: Takashi Iwai sound/pci/hda/hda_generic.c | 16 ---------------- sound/pci/hda/hda_generic.h | 2 -- 2 files changed, 18 deletions(-) commit f0571ab140723f9a898d4a404118580534dcc468 Author: Chen-Yu Tsai Date: Sat Dec 5 21:16:47 2015 +0800 ARM: dts: sun7i: Add VE (Video Engine) module clock node The video engine has its own module clock, which also includes a reset control for it. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) commit 1ccc4939220cf815c309feddcf82dba260499194 Author: Chen-Yu Tsai Date: Sat Dec 5 21:16:45 2015 +0800 ARM: dts: sun4i: Add VE (Video Engine) module clock node The video engine has its own module clock, which also includes a reset control for it. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) commit 3cdd9f5c4953465abb87ec757159cc0576ae6b0a Author: Chen-Yu Tsai Date: Sat Dec 5 21:16:43 2015 +0800 clk: sunxi: Add VE (Video Engine) module clock driver for sun[457]i The video engine has its own special module clock, consisting of a clock gate, configurable dividers, and a reset control. On later (sun[68]i) families, the reset control is moved out of this piece of hardware and grouped with reset controls of other peripherals. Signed-off-by: Chen-Yu Tsai Tested-by: Jens Kuske Signed-off-by: Maxime Ripard Documentation/devicetree/bindings/clock/sunxi.txt | 4 + drivers/clk/sunxi/Makefile | 1 + drivers/clk/sunxi/clk-a10-ve.c | 171 ++++++++++++++++++++++ 3 files changed, 176 insertions(+) commit ab8d80eb5dfd7f4f57364392d746a7700a891e68 Author: Andrew Lunn Date: Wed Dec 2 00:33:32 2015 +0100 ARM: mvebu: update v5 defconfig for Orion5x machines Now that Orion5x is part of the multiarch kernel, add it to mvebu_v5_defconfig. Signed-off-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/configs/mvebu_v5_defconfig | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) commit 893f83e6bcc326bf0fe3d2ef6fb63155a2c5938e Author: Andrew Lunn Date: Wed Dec 2 00:33:31 2015 +0100 ARM: mvebu: Reenable DSA in mvebu_v5_defconfig DSA now depends on switchdev. Enable it, and re-enable DSA and its drivers, which were removed when mvebu_v5_defconfig was regenerated. Signed-off-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/configs/mvebu_v5_defconfig | 7 +++++++ 1 file changed, 7 insertions(+) commit 06107d09edff78082cd2f5ce7a9bb1e55a44ea1d Author: Andrew Lunn Date: Wed Dec 2 00:33:30 2015 +0100 ARM: config: Add orion5x to multi_v5_defconfig Now that Orion5x is part of the v5 multiarch kernel enable it in the multi_v5_defconfig. Signed-off-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/configs/multi_v5_defconfig | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit a6cbc340d1e15ddcfebc60845bef743f1338e8cf Author: Andrew Lunn Date: Wed Dec 2 00:33:29 2015 +0100 ARM: config: Reenable DSA in multi_v5_defconfig DSA now depends on switchdev. Enable it, and re-enable DSA and its drivers, which were removed when multi_v5_defconfig was regenerated. Signed-off-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/configs/multi_v5_defconfig | 7 +++++++ 1 file changed, 7 insertions(+) commit f15f659e7fc44077f019ec2ac7f57273117d6dfb Author: Andrew Lunn Date: Wed Dec 2 00:33:28 2015 +0100 ARM: config: Regenerate multi_v5_defconfig Dues the Kconfig changes, multi_v5_defconfig needs regenerating. Signed-off-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/configs/multi_v5_defconfig | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) commit dfcf8196de7411a5e7fd49795938b1bc8c56859c Author: Jens Kuske Date: Fri Dec 4 22:24:43 2015 +0100 ARM: dts: sun8i: Add Orange Pi Plus support The Orange Pi Plus is a SBC based on the Allwinner H3 SoC with 8GB eMMC, multiple USB ports through a USB hub chip, SATA through a USB-SATA bridge, one uSD slot, a 10/100/1000M ethernet port, WiFi, HDMI, headphone jack, IR receiver, a microphone, a CSI connector and a 40-pin GPIO header. Signed-off-by: Jens Kuske Signed-off-by: Maxime Ripard arch/arm/boot/dts/Makefile | 3 +- arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts | 77 ++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+), 1 deletion(-) commit 318d93bc41823e86967c8251eef0444a72e4d687 Author: Jens Kuske Date: Fri Dec 4 22:24:42 2015 +0100 ARM: dts: sunxi: Add Allwinner H3 DTSI The Allwinner H3 is a home entertainment system oriented SoC with four Cortex-A7 cores and a Mali-400MP2 GPU. Signed-off-by: Jens Kuske Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun8i-h3.dtsi | 497 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 497 insertions(+) commit ab6e23a4e388f5f2696b8e92c350f845142da118 Author: Jens Kuske Date: Fri Dec 4 22:24:40 2015 +0100 clk: sunxi: Add H3 clocks support The H3 clock control unit is similar to the those of other sun8i family members like the A23. It adds a new bus gates clock similar to the simple gates, but with a different parent clock for each single gate. Some of the gates use the new AHB2 clock as parent, whose clock source is muxable between AHB1 and PLL6/2. The documentation isn't totally clear about which devices belong to AHB2 now, especially USB EHIC/OHIC, so it is mostly based on Allwinner kernel source code. Signed-off-by: Jens Kuske Acked-by: Rob Herring Signed-off-by: Maxime Ripard Documentation/devicetree/bindings/clock/sunxi.txt | 2 + drivers/clk/sunxi/Makefile | 1 + drivers/clk/sunxi/clk-sun8i-bus-gates.c | 112 ++++++++++++++++++++++ drivers/clk/sunxi/clk-sunxi.c | 6 ++ 4 files changed, 121 insertions(+) commit a30c99a0beb3030ba42dab38cad6273cd090805d Merge: 803ca41 03fba21 Author: Ingo Molnar Date: Tue Dec 8 06:06:20 2015 +0100 Merge branch 'perf/urgent' into perf/core, to pick up fixes Signed-off-by: Ingo Molnar commit 214613656b5179f0daab6e0a080814b5100d45f0 Author: Eric Anholt Date: Fri Oct 30 10:09:02 2015 -0700 drm/vc4: Add an interface for capturing the GPU state after a hang. This can be parsed with vc4-gpu-tools tools for trying to figure out what was going on. v2: Use __u32-style types. Signed-off-by: Eric Anholt drivers/gpu/drm/vc4/vc4_drv.c | 2 + drivers/gpu/drm/vc4/vc4_drv.h | 4 + drivers/gpu/drm/vc4/vc4_gem.c | 185 ++++++++++++++++++++++++++++++++++++++++++ include/uapi/drm/vc4_drm.h | 45 ++++++++++ 4 files changed, 236 insertions(+) commit 803ca41856a26b98150a669290c50adc9bfc648e Merge: f1ad448 cfef25b Author: Ingo Molnar Date: Tue Dec 8 05:23:09 2015 +0100 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: - Fixes and improvements for supporting annotating ARM binaries, support ARM call and jump instructions, more work needed to have arch specific stuff separated into tools/perf/arch/*/annotate/ (Russell King) - Fix several 'perf test' entries broken by recent perf/core changes (Jiri Olsa) Infrastructure changes: - Consolidate perf_ev{list,sel}__{enable,disable}() calls (Jiri Olsa) - Pass correct string to dso__adjust_kmod_long_name() (Wang Nan) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit ffa0160a103917defd5d9c097ae0455a59166e03 Author: Christoph Hellwig Date: Thu Dec 3 12:59:52 2015 +0100 nfsd: implement the NFSv4.2 CLONE operation This is basically a remote version of the btrfs CLONE operation, so the implementation is fairly trivial. Made even more trivial by stealing the XDR code and general framework Anna Schumaker's COPY prototype. Signed-off-by: Christoph Hellwig Acked-by: J. Bruce Fields Signed-off-by: Al Viro fs/nfsd/nfs4proc.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ fs/nfsd/nfs4xdr.c | 21 +++++++++++++++++++++ fs/nfsd/vfs.c | 8 ++++++++ fs/nfsd/vfs.h | 2 ++ fs/nfsd/xdr4.h | 10 ++++++++++ include/linux/nfs4.h | 4 ++-- 6 files changed, 90 insertions(+), 2 deletions(-) commit aa0d6aed45ff48bd41439211f2bda1d54585aba3 Author: Anna Schumaker Date: Thu Dec 3 12:59:51 2015 +0100 nfsd: Pass filehandle to nfs4_preprocess_stateid_op() This will be needed so COPY can look up the saved_fh in addition to the current_fh. Signed-off-by: Anna Schumaker Signed-off-by: Christoph Hellwig Acked-by: J. Bruce Fields Signed-off-by: Al Viro fs/nfsd/nfs4proc.c | 16 +++++++++------- fs/nfsd/nfs4state.c | 5 ++--- fs/nfsd/state.h | 4 ++-- 3 files changed, 13 insertions(+), 12 deletions(-) commit 04b38d601239b4d9be641b412cf4b7456a041c67 Author: Christoph Hellwig Date: Thu Dec 3 12:59:50 2015 +0100 vfs: pull btrfs clone API to vfs layer The btrfs clone ioctls are now adopted by other file systems, with NFS and CIFS already having support for them, and XFS being under active development. To avoid growth of various slightly incompatible implementations, add one to the VFS. Note that clones are different from file copies in several ways: - they are atomic vs other writers - they support whole file clones - they support 64-bit legth clones - they do not allow partial success (aka short writes) - clones are expected to be a fast metadata operation Because of that it would be rather cumbersome to try to piggyback them on top of the recent clone_file_range infrastructure. The converse isn't true and the clone_file_range system call could try clone file range as a first attempt to copy, something that further patches will enable. Based on earlier work from Peng Tao. Signed-off-by: Christoph Hellwig Signed-off-by: Al Viro fs/btrfs/ctree.h | 3 +- fs/btrfs/file.c | 1 + fs/btrfs/ioctl.c | 49 ++----------------- fs/cifs/cifsfs.c | 63 ++++++++++++++++++++++++ fs/cifs/cifsfs.h | 1 - fs/cifs/ioctl.c | 126 +++++++++++++++++++++++------------------------- fs/ioctl.c | 29 +++++++++++ fs/nfs/nfs4file.c | 87 ++++----------------------------- fs/read_write.c | 72 +++++++++++++++++++++++++++ include/linux/fs.h | 7 ++- include/uapi/linux/fs.h | 9 ++++ 11 files changed, 254 insertions(+), 193 deletions(-) commit b501bacc6060fd62654b756469cc3091eb53de3a Author: Eric Anholt Date: Mon Nov 30 12:34:01 2015 -0800 drm/vc4: Add support for async pageflips. An async pageflip stores the modeset to be done and executes it once the BOs are ready to be displayed. This gets us about 3x performance in full screen rendering with pageflipping. Signed-off-by: Eric Anholt drivers/gpu/drm/vc4/vc4_crtc.c | 99 +++++++++++++++++++++++++- drivers/gpu/drm/vc4/vc4_drv.h | 16 +++++ drivers/gpu/drm/vc4/vc4_gem.c | 40 +++++++++++ drivers/gpu/drm/vc4/vc4_kms.c | 149 +++++++++++++++++++++++++++++++++++++++- drivers/gpu/drm/vc4/vc4_plane.c | 40 +++++++++++ 5 files changed, 342 insertions(+), 2 deletions(-) commit acc15575e78e534c12549d8057a692f490a50f61 Author: Christoph Hellwig Date: Thu Dec 3 12:59:49 2015 +0100 locks: new locks_mandatory_area calling convention Pass a loff_t end for the last byte instead of the 32-bit count parameter to allow full file clones even on 32-bit architectures. While we're at it also simplify the read/write selection. Signed-off-by: Christoph Hellwig Acked-by: J. Bruce Fields Signed-off-by: Al Viro fs/locks.c | 22 +++++++++------------- fs/read_write.c | 5 ++--- include/linux/fs.h | 30 ++++++++++++++---------------- 3 files changed, 25 insertions(+), 32 deletions(-) commit d5b1a78a772f1e31a94f8babfa964152ec5e9aa5 Author: Eric Anholt Date: Mon Nov 30 12:13:37 2015 -0800 drm/vc4: Add support for drawing 3D frames. The user submission is basically a pointer to a command list and a pointer to uniforms. We copy those in to the kernel, validate and relocate them, and store the result in a GPU BO which we queue for execution. v2: Drop support for NV shader recs (not necessary for GL), simplify vc4_use_bo(), improve bin flush/semaphore checks, use __u32 style types. Signed-off-by: Eric Anholt drivers/gpu/drm/vc4/Makefile | 7 + drivers/gpu/drm/vc4/vc4_drv.c | 15 +- drivers/gpu/drm/vc4/vc4_drv.h | 182 +++++++ drivers/gpu/drm/vc4/vc4_gem.c | 642 +++++++++++++++++++++++ drivers/gpu/drm/vc4/vc4_irq.c | 210 ++++++++ drivers/gpu/drm/vc4/vc4_packet.h | 399 +++++++++++++++ drivers/gpu/drm/vc4/vc4_render_cl.c | 634 +++++++++++++++++++++++ drivers/gpu/drm/vc4/vc4_trace.h | 63 +++ drivers/gpu/drm/vc4/vc4_trace_points.c | 14 + drivers/gpu/drm/vc4/vc4_v3d.c | 37 ++ drivers/gpu/drm/vc4/vc4_validate.c | 900 +++++++++++++++++++++++++++++++++ include/uapi/drm/vc4_drm.h | 141 ++++++ 12 files changed, 3243 insertions(+), 1 deletion(-) commit d3f5168a0810005920e7a3d5ba83e249bd9a750c Author: Eric Anholt Date: Mon Mar 2 13:01:12 2015 -0800 drm/vc4: Bind and initialize the V3D engine. This is the component of the GPU that does 3D rendering. Signed-off-by: Eric Anholt drivers/gpu/drm/vc4/Makefile | 1 + drivers/gpu/drm/vc4/vc4_debugfs.c | 2 + drivers/gpu/drm/vc4/vc4_drv.c | 1 + drivers/gpu/drm/vc4/vc4_drv.h | 13 +++ drivers/gpu/drm/vc4/vc4_v3d.c | 225 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 242 insertions(+) commit 1fa81589bbac16af6baf153ccc9b3f38fb16a498 Author: Eric Anholt Date: Fri Oct 23 14:57:22 2015 +0100 drm/vc4: Fix a typo in a V3D debug register. Signed-off-by: Eric Anholt drivers/gpu/drm/vc4/vc4_regs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 463873d5701427f2964a0b4b72c45f1f14b6df87 Author: Eric Anholt Date: Mon Nov 30 11:41:40 2015 -0800 drm/vc4: Add an API for creating GPU shaders in GEM BOs. Since we have no MMU, the kernel needs to validate that the submitted shader code won't make any accesses to memory that the user doesn't control, which involves banning some operations (general purpose DMA writes), and tracking where we need to write out pointers for other operations (texture sampling). Once it's validated, we return a GEM BO containing the shader, which doesn't allow mapping for write or exporting to other subsystems. v2: Use __u32-style types. Signed-off-by: Eric Anholt drivers/gpu/drm/vc4/Makefile | 3 +- drivers/gpu/drm/vc4/vc4_bo.c | 140 ++++++++ drivers/gpu/drm/vc4/vc4_drv.c | 9 +- drivers/gpu/drm/vc4/vc4_drv.h | 50 +++ drivers/gpu/drm/vc4/vc4_qpu_defines.h | 264 +++++++++++++++ drivers/gpu/drm/vc4/vc4_validate_shaders.c | 513 +++++++++++++++++++++++++++++ include/uapi/drm/vc4_drm.h | 25 ++ 7 files changed, 999 insertions(+), 5 deletions(-) commit d5bc60f6ad05b3c676b057bec662cfafc3ee24dd Author: Eric Anholt Date: Sun Jan 18 09:33:17 2015 +1300 drm/vc4: Add create and map BO ioctls. While there exist dumb APIs for creating and mapping BOs, one of the rules is that drivers doing 3D acceleration have to provide their own APIs for buffer allocation (besides, the pitch/height parameters of the dumb alloc don't really make sense for a lot of 3D allocations). v2: Use __u32-style types, use "drm.h" instead of . Signed-off-by: Eric Anholt drivers/gpu/drm/vc4/vc4_bo.c | 41 ++++++++++++++++++++++++++ drivers/gpu/drm/vc4/vc4_drv.c | 3 ++ drivers/gpu/drm/vc4/vc4_drv.h | 4 +++ include/uapi/drm/Kbuild | 1 + include/uapi/drm/vc4_drm.h | 68 +++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 117 insertions(+) commit c826a6e1064419f78855463cf29ce9e8b9d25bf4 Author: Eric Anholt Date: Fri Oct 9 20:25:07 2015 -0700 drm/vc4: Add a BO cache. We need to allocate new BOs in the kernel as part of each frame, but the CMA allocator is way too slow for that. As an optimization, keep track of recently-freed BOs and reuse them, with a 1 second timeout to fully free them back to the system. This improves 3D performance by about 15%. Signed-off-by: Eric Anholt drivers/gpu/drm/vc4/vc4_bo.c | 336 +++++++++++++++++++++++++++++++++++++- drivers/gpu/drm/vc4/vc4_debugfs.c | 1 + drivers/gpu/drm/vc4/vc4_drv.c | 6 +- drivers/gpu/drm/vc4/vc4_drv.h | 49 +++++- 4 files changed, 384 insertions(+), 8 deletions(-) commit 10028c5ab107d3765c7fc282b6c45324d1602155 Author: Eric Anholt Date: Mon Nov 30 10:55:13 2015 -0800 drm: Create a driver hook for allocating GEM object structs. The CMA helpers had no way for a driver to extend the struct with its own fields. Since the CMA helpers are mostly "Allocate a drm_gem_cma_object, then fill in a few fields", it's hard to write as pure helpers without passing in a driver callback for the allocate step. Signed-off-by: Eric Anholt Reviewed-by: Daniel Vetter drivers/gpu/drm/drm_gem_cma_helper.c | 10 ++++++---- include/drm/drmP.h | 7 +++++++ 2 files changed, 13 insertions(+), 4 deletions(-) commit f96576bd63e5b9a7a9c33a7fc4209fffc4d433cc Author: Krzysztof Kozlowski Date: Mon Dec 7 12:45:12 2015 +0900 power: Fix unmet dependency on POWER_SUPPLY by POWER_RESET by uncoupling them Currently the reset/power off handlers (POWER_RESET) and Adaptive Voltage Scaling class (POWER_AVS) are not built when POWER_SUPPLY is disabled. The POWER_RESET is also not visible in drivers main section of config. However they do not really depend on power supply so they can be built always. The objects for power supply drivers already depend on particular Kconfig symbols so there is no need for any changes in drivers/power/Makefile. This allows selecting POWER_RESET from main drivers config section and fixes following build warning (encountered on ARM exynos defconfig when POWER_SUPPLY is disabled manually): warning: (ARCH_HISI && ARCH_INTEGRATOR && ARCH_EXYNOS && ARCH_VEXPRESS && REALVIEW_DT) selects POWER_RESET which has unmet direct dependencies (POWER_SUPPLY) warning: (ARCH_EXYNOS) selects POWER_RESET_SYSCON which has unmet direct dependencies (POWER_SUPPLY && POWER_RESET && OF) warning: (ARCH_EXYNOS) selects POWER_RESET_SYSCON_POWEROFF which has unmet direct dependencies (POWER_SUPPLY && POWER_RESET && OF) Reported-by: Pavel Fedin Signed-off-by: Krzysztof Kozlowski Signed-off-by: Sebastian Reichel drivers/Makefile | 2 +- drivers/power/Kconfig | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) commit c993e09504fca192bac4ac3f5a3411ac68cba2e6 Author: Boris BREZILLON Date: Tue Dec 1 12:02:58 2015 +0100 ARM: nand: make use of mtd_to_nand() where appropriate mtd_to_nand() was recently introduced to avoid direct accesses to the mtd->priv field. Update all ARM specific implementations to use this helper. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris arch/arm/mach-ep93xx/snappercl15.c | 4 ++-- arch/arm/mach-ep93xx/ts72xx.c | 4 ++-- arch/arm/mach-imx/mach-qong.c | 2 +- arch/arm/mach-ixp4xx/ixdp425-setup.c | 2 +- arch/arm/mach-omap1/board-nand.c | 2 +- arch/arm/mach-orion5x/ts78xx-setup.c | 6 +++--- arch/arm/mach-pxa/balloon3.c | 2 +- arch/arm/mach-pxa/em-x270.c | 2 +- arch/arm/mach-pxa/palmtx.c | 2 +- 9 files changed, 13 insertions(+), 13 deletions(-) commit 2020dddd67c1884ea7cb9891b36aac7ff5e73038 Author: Kuninori Morimoto Date: Tue Dec 8 00:10:59 2015 +0000 ARM: shmobile: r8a7778: tidyup #sound-dai-cells settings Renesas sound driver needs #sound-dai-cells settings, but, this usage is a little bit confusable. It came from ALSA SoC historical reasons. The sound DAI naming method is different between Single/Multi DAI in the ALSA framework, and it is used for sound card matching. And this #sound-dai-cells has relationship to it. Current SoC dtsi has #sound-dai-cells = <1> as default settings (= it is assuming that board/platform has multi DAI), and board/platform side needs to overwrite it if board/platform was single DAI. This style is more confusable for users. This patch removes SoC side default settings, and force to set it by board/platform side. Signed-off-by: Kuninori Morimoto Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7778.dtsi | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit a6ff5e8d5ebc0392d5c470652cd22f730e090e29 Author: Geert Uytterhoeven Date: Mon Dec 7 17:25:37 2015 +0100 ARM: shmobile: bockw dts: Override #sound-dai-cells to zero The default value of #sound-dai-cells in r8a7778.dtsi is one, while the /sound/simple-audio-card,cpu device node in r8a7778-bockw.dts uses a phandle without any extra cells ("<&rcar_sound>"), causing: /sound/simple-audio-card,cpu: arguments longer than property asoc-simple-card sound: parse error -22 asoc-simple-card: probe of sound failed with error -22 Override #sound-dai-cells to zero to fix this. Signed-off-by: Geert Uytterhoeven Acked-by: Kuninori Morimoto Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7778-bockw.dts | 5 +++++ 1 file changed, 5 insertions(+) commit 23211c1e7ad7693e0f518383890308f42f3cc10d Author: Hannes Reinecke Date: Thu Dec 3 07:57:35 2015 +0100 scsi_dh_alua: Remove stale variables With commit 83ea0e5e3501 ("scsi_dh_alua: use scsi_vpd_tpg_id()") these variables became obsolete, but weren't removed. [mkp: Fixed checkpatch warning] Signed-off-by: Hannes Reinecke Reviewed-by: Johannes Thumshirn Reviewed-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/device_handler/scsi_dh_alua.c | 2 -- 1 file changed, 2 deletions(-) commit e876b41ab074561d65f213bf5e0fc68cf5bc7380 Merge: 47c0fd7 527e931 Author: Dave Airlie Date: Tue Dec 8 11:04:26 2015 +1000 Back merge tag 'v4.4-rc4' into drm-next We've picked up a few conflicts and it would be nice to resolve them before we move onwards. commit 648c630c642a4869c7fc30345880675020298852 Merge: f84cfbb 79cfea0 69b9072 2f07384 c979ff9 Author: Paul E. McKenney Date: Mon Dec 7 17:02:54 2015 -0800 Merge branches 'doc.2015.12.05a', 'exp.2015.12.07a', 'fixes.2015.12.07a', 'list.2015.12.04b' and 'torture.2015.12.05a' into HEAD doc.2015.12.05a: Documentation updates exp.2015.12.07a: Expedited grace-period updates fixes.2015.12.07a: Miscellaneous fixes list.2015.12.04b: Linked-list updates torture.2015.12.05a: Torture-test updates commit 69b907297f4edf13182e3fa3adc0160df077746c Author: Alexey Kardashevskiy Date: Sat Dec 5 18:14:19 2015 -0800 list: Add lockless list traversal primitives Although list_for_each_entry_rcu() can in theory be used anywhere preemption is disabled, it can result in calls to lockdep, which cannot be used in certain constrained execution environments, such as exception handlers that do not map the entire kernel into their address spaces. This commit therefore adds list_entry_lockless() and list_for_each_entry_lockless(), which never invoke lockdep and can therefore safely be used from these constrained environments, but only as long as those environments are non-preemptible (or items are never deleted from the list). Use synchronize_sched(), call_rcu_sched(), or synchronize_sched_expedited() in updates for the needed grace periods. Of course, if items are never deleted from the list, there is no need to wait for grace periods. Signed-off-by: Alexey Kardashevskiy Signed-off-by: Paul E. McKenney include/linux/rculist.h | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) commit 45fed3e7cfb4001c80cd4bd25249d194a52bfed3 Author: Paul E. McKenney Date: Sat Nov 7 23:35:00 2015 -0800 rcu: Make rcu_gp_init() be bool rather than int The return value from rcu_gp_init() is always used as a bool, so this commit makes it be a bool. Reported-by: Iftekhar Ahmed Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit e11f13355b09df970495c45ed0eac1dc85dcf5c1 Author: Peter Zijlstra Date: Wed Nov 4 08:22:05 2015 -0800 rcu: Move wakeup out from under rnp->lock This patch removes a potential deadlock hazard by moving the wake_up_process() in rcu_spawn_gp_kthread() out from under rnp->lock. Signed-off-by: Peter Zijlstra Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f039f0af081746933d5dec3229637a18fab791ed Author: Alexey Kardashevskiy Date: Mon Nov 2 13:21:47 2015 +1100 rcu: Fix comment for rcu_dereference_raw_notrace rcu_dereference_raw() calls indirectly rcu_read_lock_held() while rcu_dereference_raw_notrace() does not so fix the comment about the latter. Signed-off-by: Alexey Kardashevskiy Signed-off-by: Paul E. McKenney include/linux/rcupdate.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7c9906ca5e582a773fff696975e312cef58a7386 Author: Paul E. McKenney Date: Sat Oct 31 00:59:01 2015 -0700 rcu: Don't redundantly disable irqs in rcu_irq_{enter,exit}() This commit replaces a local_irq_save()/local_irq_restore() pair with a lockdep assertion that interrupts are already disabled. This should remove the corresponding overhead from the interrupt entry/exit fastpaths. This change was inspired by the fact that Iftekhar Ahmed's mutation testing showed that removing rcu_irq_enter()'s call to local_ird_restore() had no effect, which might indicate that interrupts were always enabled anyway. Signed-off-by: Paul E. McKenney include/linux/rcupdate.h | 4 ++-- include/linux/rcutiny.h | 8 ++++++++ include/linux/rcutree.h | 2 ++ include/linux/tracepoint.h | 4 ++-- kernel/rcu/tree.c | 32 ++++++++++++++++++++++++++------ 5 files changed, 40 insertions(+), 10 deletions(-) commit d117c8aa1d511f76401337620b9c4ffb4c886579 Author: Paul E. McKenney Date: Sat Oct 31 00:01:18 2015 -0700 rcu: Make cpu_needs_another_gp() be bool The cpu_needs_another_gp() function is currently of type int, but only returns zero or one. Bow to reality and make it be of type bool. Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit a87f203e2731ab477386c678e59033ee103018c0 Author: Paul E. McKenney Date: Tue Oct 20 12:38:49 2015 -0700 rcu: Eliminate unused rcu_init_one() argument Now that the rcu_state structure's ->rda field is compile-time initialized, there is no need to pass the per-CPU rcu_data structure into rcu_init_one(). This commit therefore eliminates this now-unused parameter. Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 7 +++---- kernel/rcu/tree_plugin.h | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) commit 79cfea0273876d9c438f3227b8f68c8c7ae31583 Author: Paul E. McKenney Date: Mon Dec 7 13:09:52 2015 -0800 rcu: Remove TINY_RCU bloat from pointless boot parameters The rcu_expedited, rcu_normal, and rcu_normal_after_boot kernel boot parameters are pointless in the case of TINY_RCU because in that case synchronous grace periods, both expedited and normal, are no-ops. However, these three symbols contribute several hundred bytes of bloat. This commit therefore uses CPP directives to avoid compiling this code in TINY_RCU kernels. Reported-by: kbuild test robot Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett Documentation/kernel-parameters.txt | 13 ++++++++----- include/linux/rcupdate.h | 9 ++++++++- kernel/ksysfs.c | 4 ++++ kernel/rcu/update.c | 7 ++++--- 4 files changed, 24 insertions(+), 9 deletions(-) commit 89c6f2e5ab7a0499c6bcb25d281977ada205765d Author: Javier Martinez Canillas Date: Thu Dec 3 15:02:09 2015 -0300 ARM: dts: omap3-igep0030: Use MMC pwrseq to init SDIO WiFi When the WiFi support was added to the IGEP0030 board, the MMC subsystem did not provide a mechanism to define power sequence providers. So a DT hack was used to toggle the WiFi chip reset and power down pins by using fake fixed regulators whose enable GPIO was the GPIOs connected to these pins. But now the simple MMC power sequence provider can be used for this and the workaround removed. Signed-off-by: Javier Martinez Canillas Acked-by: Enric Balletbo Serra Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap3-igep0030.dts | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) commit fd7e118c80d43496c49a4260712cd1c499a0f1b3 Author: Javier Martinez Canillas Date: Thu Dec 3 15:02:08 2015 -0300 ARM: dts: omap3-igep0020: Use MMC pwrseq to init SDIO WiFi When the WiFi support was added to the IGEP0020 board, the MMC subsystem did not provide a mechanism to define power sequence providers. So a DT hack was used to toggle the WiFi chip reset and power down pins by using fake fixed regulators whose enable GPIO was the GPIOs connected to these pins. But now the simple MMC power sequence provider can be used for this and the workaround removed. Signed-off-by: Javier Martinez Canillas Acked-by: Enric Balletbo Serra Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap3-igep0020.dts | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) commit dfaf37baa07513d2c37afff79978807d2d10221a Author: Rodrigo Vivi Date: Mon Dec 7 14:45:20 2015 -0800 drm/i915: Fix idle_frames counter. 'commit 97173eaf5 ("drm/i915: PSR: Increase idle_frames")' was a mistake. The special case it tried to cover was already being covered by the DP_PSR_NO_TRAIN_ON_EXIT. So this ended up duplicated. So, instead of reverting that let's take this opportunity and unify the idle_frame definition in a single place so we standardize the access and avoid room for that same mistake again. Few changes with this patch: 1. Instead of just respecting the VBT we set a global minumum with max(). So we are sure that we will avoid corner cases in case VBT is doing something we don't understand. 2. Instead of minimum 5 we use 6. When introducing the idle_frames += 4 case we considered that minimum was 2. All because the off-by-one issue. v2: Unified idle_frame definition. Cc: Paulo Zanoni Signed-off-by: Rodrigo Vivi Reviewed-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/1449528320-27655-1-git-send-email-rodrigo.vivi@intel.com drivers/gpu/drm/i915/intel_psr.c | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) commit 177493987c1a15145922a65240f2f8ab6c63770a Merge: e11362b 16af439 Author: Tejun Heo Date: Mon Dec 7 17:24:10 2015 -0500 Merge branch 'for-4.5-ancestor-test' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup into for-4.5 Signed-off-by: Tejun Heo commit f6b889358a82c1f1a34bfcecfe8ebf709deb28ec Author: Ray Jui Date: Fri Dec 4 09:35:02 2015 -0800 ARM: dts: Enable MSI support for Broadcom Cygnus Enable MSI support for Broadcom Cygnus platforms Signed-off-by: Ray Jui Reviewed-by: Anup Patel Reviewed-by: Pramod KUMAR Reviewed-by: Vikram Prakash Reviewed-by: Scott Branden Signed-off-by: Florian Fainelli arch/arm/boot/dts/bcm-cygnus.dtsi | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit e72c932d3f8a6b56ec9ebad6312504b2e675440a Author: LABBE Corentin Date: Mon Dec 7 14:11:33 2015 +0100 cxgb3: Convert simple_strtoul to kstrtox the simple_strtoul function is obsolete. This patch replace it by kstrtox. Signed-off-by: LABBE Corentin Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c | 14 +++++++------ drivers/net/ethernet/chelsio/cxgb3/t3_hw.c | 28 ++++++++++++++++++------- 2 files changed, 29 insertions(+), 13 deletions(-) commit 611d7df8866dabe4ae3b4f4fee4403c08dc87a67 Merge: ad9360b cda5c15 Author: David S. Miller Date: Mon Dec 7 16:35:51 2015 -0500 Merge branch 'more-dsa-unbinding-fixes' Neil Armstrong says: ==================== Further fix for dsa unbinding This series fixes further issues for DSA dynamic unbinding. The first patch completely removes the PHY link state polling. The two following cleans up the dsa state upon removal. The last patch moves slave destroy code as slave function and adds missing netdev and phy cleanup calls. v1: http://lkml.kernel.org/r/562F8ECB.6050709@baylibre.com v2: http://lkml.kernel.org/r/56321D9A.8010109@baylibre.com remove phy fix and add missing calls in dsa_switch_destroy then add dedicated dsa_slave_destroy v3: remove polling instead of fixing it, make single patch for dsa slave destroy ==================== Acked-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit cda5c15b23fb9d683a491e8bd137d11d8552ac02 Author: Neil Armstrong Date: Mon Dec 7 13:57:35 2015 +0100 net: dsa: move dsa slave destroy code to slave.c Move dsa slave dedicated code from dsa_switch_destroy to a new dsa_slave_destroy function in slave.c. Add the netif_carrier_off and phy_disconnect calls in order to correctly cleanup the netdev state and PHY state machine. Signed-off-by: Frode Isaksen Signed-off-by: Neil Armstrong Signed-off-by: David S. Miller net/dsa/dsa.c | 3 +-- net/dsa/dsa_priv.h | 1 + net/dsa/slave.c | 11 +++++++++++ 3 files changed, 13 insertions(+), 2 deletions(-) commit 679fb46c57859b59a70257477bfbdfc7edfac4f5 Author: Neil Armstrong Date: Mon Dec 7 13:57:34 2015 +0100 net: dsa: Add missing master netdev dev_put() calls Upon probe failure or unbinding, add missing dev_put() calls. Signed-off-by: Neil Armstrong Signed-off-by: David S. Miller net/dsa/dsa.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit b0dc635d923cd5aafa4e99973f529bf68c582738 Author: Neil Armstrong Date: Mon Dec 7 13:57:33 2015 +0100 net: dsa: cleanup resources upon module removal Make sure that we unassign the master_netdev dsa_ptr to make the packet processing go through the regular Ethernet receive path. Suggested-by: Florian Fainelli Signed-off-by: Neil Armstrong Signed-off-by: David S. Miller net/dsa/dsa.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 4baee937b8d551c89f61542a575378e407b63415 Author: Neil Armstrong Date: Mon Dec 7 13:57:32 2015 +0100 net: dsa: remove DSA link polling Since no more DSA driver uses the polling callback, and since the phylib handles the link detection, remove the link polling work and timer code. Signed-off-by: Neil Armstrong Signed-off-by: David S. Miller include/net/dsa.h | 12 ------------ net/dsa/dsa.c | 43 ------------------------------------------- 2 files changed, 55 deletions(-) commit cfef25b8daf7e4b49c84e174a904af9d89dc7c46 Author: Russell King Date: Sun Dec 6 23:07:13 2015 +0000 perf annotate: ARM support Add basic support to parse ARM assembly. This: * enables perf to correctly show the disassembly, rather than chopping some constants off at the '#' (which is not a comment character on ARM). * allows perf to identify ARM instructions that branch to other parts within the same function, thereby properly annotating them. * allows perf to identify function calls, allowing called functions to be followed in the annotated view. Signed-off-by: Russell King Cc: Peter Zijlstra Cc: Will Deacon Link: http://lkml.kernel.org/n/tip-owp1uj0nmcgfrlppfyeetuyf@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/annotate.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit c8280cec2a196f2ffea83dd755b17eb020ca1b83 Author: Jiri Olsa Date: Thu Dec 3 10:06:45 2015 +0100 perf stat: Move enable_on_exec setup under earlier code It's more readable this way and we can save one perf_evsel__is_group_leader condition in current code. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1449133606-14429-7-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit 67ccdecd09cac818146b1e153ff901cb67570012 Author: Jiri Olsa Date: Thu Dec 3 10:06:44 2015 +0100 perf stat: Create events as disabled Currently we have 2 kinds of stat counters based on when the event is enabled: 1) tracee command events, which are enable once the tracee executes exec syscall (enable_on_exec bit) 2) all other events which get alive within the perf_event_open syscall And 2) case could raise a problem in case we want additional filter to be attached for event. In this case we want the event to be enabled after it's configured with filter. Changing the behaviour of 2) events, so they all are created as disabled (disabled bit). Adding extra enable call to make them alive once they finish setup. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1449133606-14429-6-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) commit ab46db0a3325a064bb24e826b12995d157565efb Author: Jiri Olsa Date: Thu Dec 3 10:06:43 2015 +0100 perf stat: Use perf_evlist__enable in handle_initial_delay No need to mimic the behaviour of perf_evlist__enable, we can use it directly. Signed-off-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Cc: Adrian Hunter Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1449133606-14429-5-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 3e27c92081131738fa4d7dd71673aa6e8c24866d Author: Jiri Olsa Date: Thu Dec 3 10:06:42 2015 +0100 perf evlist: Factor perf_evlist__(enable|disable) functions Use perf_evsel__(enable|disable) functions in perf_evlist__(enable|disable) functions in order to centralize ioctl enable/disable calls. This way we eliminate 2 places calling directly ioctl. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1449133606-14429-4-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evlist.c | 32 ++++++++------------------------ 1 file changed, 8 insertions(+), 24 deletions(-) commit e98a4cbb01e0ba1110eba5166a425b3eab9b2244 Author: Jiri Olsa Date: Thu Dec 3 10:06:41 2015 +0100 perf evsel: Introduce disable() method Adding perf_evsel__disable function to have complement for perf_evsel__enable function. Both will be used in following patch to factor perf_evlist__(enable|disable). Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1449133606-14429-3-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evsel.c | 10 ++++++++++ tools/perf/util/evsel.h | 1 + 2 files changed, 11 insertions(+) commit 5cd95fc3f8d84a8bb256838fa3b6b59e9095eaa2 Author: Jiri Olsa Date: Thu Dec 3 10:06:40 2015 +0100 perf evsel: Use event maps directly in perf_evsel__enable All events now share proper cpu and thread maps. There's no need to pass those maps from evlist, it's safe to use evsel maps for enabling event. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1449133606-14429-2-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 5 +---- tools/perf/util/evsel.c | 5 ++++- tools/perf/util/evsel.h | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) commit d6e94fa6b6dab4668e46665bbe766142af32cc15 Author: Jiri Olsa Date: Wed Dec 2 22:08:29 2015 +0100 perf test: Create kernel maps properly for hist entries test It fixes segfault within machine__exit, that's caused but not creating kernel maps for machine.. We're calling machine__destroy_kernel_maps in machine__exit since commit: ebe9729c8c31 perf machine: Fix to destroy kernel maps when machine exits Signed-off-by: Jiri Olsa Acked-by: Namhyung Kim Tested-by: Arnaldo Carvalho de Melo Cc: Adrian Hunter Cc: David Ahern Cc: Masami Hiramatsu Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/tip-k4snzv5t4dvdckggzwdzyljo@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/hists_common.c | 5 +++++ 1 file changed, 5 insertions(+) commit c0651c41e45dee1d6abb83fd5b25e7097aeac141 Author: Jiri Olsa Date: Thu Dec 3 09:34:16 2015 +0100 perf test: Prevent using bpf-output event in round trip name test The bpf-output is added under software events, but is not parse-able within parse_events, which is what round trip test is expecting. Checking software events only until dummy event. Signed-off-by: Jiri Olsa Acked-by: Namhyung Kim Tested-by: Arnaldo Carvalho de Melo Cc: Adrian Hunter Cc: David Ahern Cc: Masami Hiramatsu Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/1449131658-1841-6-git-send-email-jolsa@kernel.org [ Make it a one liner by keeping __perf_evsel__name_array_test() around ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/evsel-roundtrip-name.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 7320b1b3d9e6af30adcbead64568be3c40b50e59 Author: Jiri Olsa Date: Thu Dec 3 09:34:15 2015 +0100 perf test: Fix cpus and thread maps reference in error path In error path to try user space event, both cpus and threads map now owned by evlist and freed by perf_evlist__set_maps call. Getting reference to keep them alive. Signed-off-by: Jiri Olsa Acked-by: Namhyung Kim Cc: Adrian Hunter Cc: David Ahern Cc: Masami Hiramatsu Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/1449131658-1841-5-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/code-reading.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 0fd4008ed755c52d85117302a3c2c108b2958420 Author: Jiri Olsa Date: Thu Dec 3 09:34:14 2015 +0100 perf test: Use machine__new_host in mmap thread code reading test This is more straightforward than what we have now. It also fixes a segfault within machine__exit, that's caused by not creating kernel maps for machine.. We're calling machine__destroy_kernel_maps in machine__exit since commit: ebe9729c8c31 perf machine: Fix to destroy kernel maps when machine exits Signed-off-by: Jiri Olsa Acked-by: Namhyung Kim Cc: Adrian Hunter Cc: David Ahern Cc: Masami Hiramatsu Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/1449131658-1841-4-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/code-reading.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 046847935754f27c2e8334ff15abda0b733a1fd4 Author: Jiri Olsa Date: Thu Dec 3 09:34:13 2015 +0100 perf test: Use machine__new_host in mmap thread lookup test This is more straightforward than what we have now. It also fixes a segfault within machine__exit, that's caused by not creating kernel maps for machine.. We're calling machine__destroy_kernel_maps in machine__exit since commit: ebe9729c8c31 perf machine: Fix to destroy kernel maps when machine exits Signed-off-by: Jiri Olsa Acked-by: Namhyung Kim Tested-by: Arnaldo Carvalho de Melo Cc: Adrian Hunter Cc: David Ahern Cc: Masami Hiramatsu Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/1449131658-1841-3-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/mmap-thread-lookup.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit bdaba8aee5c3806d78ee4f130048b2238c636d47 Author: Jiri Olsa Date: Thu Dec 3 09:34:12 2015 +0100 perf test: Use machine__new_host in dwarf unwind test This is more straightforward than what we have now. It also fixes a segfault within machine__exit, that's caused by not creating kernel maps for machine.. We're calling machine__destroy_kernel_maps in machine__exit since commit: ebe9729c8c31 perf machine: Fix to destroy kernel maps when machine exits Signed-off-by: Jiri Olsa Acked-by: Namhyung Kim Cc: Adrian Hunter Cc: David Ahern Cc: Masami Hiramatsu Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/1449131658-1841-2-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/dwarf-unwind.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 5dcf16df3ce48b2e4f798b1a11b5de2fc3cfd73a Author: Wang Nan Date: Mon Dec 7 02:36:25 2015 +0000 perf machine: Pass correct string to dso__adjust_kmod_long_name There's a mistake in dso__adjust_kmod_long_name() that it use strdup() to dup the new long_name of a dso, but passes the original string to dso__set_long_name(). Which causes random crash during cleanup. Signed-off-by: Wang Nan Reviewed-by: Masami Hiramatsu Cc: Namhyung Kim Cc: Zefan Li Cc: pi3orama@163.com Fixes: c03d5184f0e9 ("perf machine: Adjust dso->long_name for offline module") Link: http://lkml.kernel.org/r/1449455785-42020-1-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/machine.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 99498905ac1fbc73a97d27d21ea449fb939072e3 Author: Jon Mason Date: Tue Dec 1 11:24:09 2015 -0500 ARM: BCM: Add SMP support for Broadcom 4708 Add SMP support for Broadcom's 4708 SoCs. Signed-off-by: Jon Mason Acked-by: Hauke Mehrtens Tested-by: Hauke Mehrtens Signed-off-by: Kapil Hali Signed-off-by: Florian Fainelli arch/arm/boot/dts/bcm4708.dtsi | 2 ++ arch/arm/mach-bcm/Kconfig | 1 + arch/arm/mach-bcm/Makefile | 3 +++ 3 files changed, 6 insertions(+) commit 97890821bb58dea522f823d8db396f9c17c6e356 Author: Kapil Hali Date: Tue Dec 1 11:24:08 2015 -0500 ARM: BCM: Add SMP support for Broadcom NSP Add SMP support for Broadcom's Northstar Plus SoC cpu enable method. This changes also consolidates iProc family's - BCM NSP and BCM Kona, platform SMP handling in a common file. Northstar Plus SoC is based on ARM Cortex-A9 revision r3p0 which requires configuration for ARM Errata 764369 for SMP. This change adds the needed configuration option. Signed-off-by: Kapil Hali Signed-off-by: Florian Fainelli arch/arm/mach-bcm/Kconfig | 2 + arch/arm/mach-bcm/Makefile | 8 +- arch/arm/mach-bcm/kona_smp.c | 228 ---------------------------------- arch/arm/mach-bcm/platsmp.c | 290 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 298 insertions(+), 230 deletions(-) commit 84320e1a635fcf90cff4185f029ce9e31bf1d4a7 Author: Kapil Hali Date: Tue Dec 1 11:24:06 2015 -0500 ARM: BCM: Clean up SMP support for Broadcom Kona These changes cleans up SMP implementaion for Broadcom's Kona SoC which are required for handling SMP for iProc family of SoCs at a single place for BCM NSP and BCM Kona. Signed-off-by: Kapil Hali Acked-by: Rob Herring Signed-off-by: Florian Fainelli arch/arm/boot/dts/bcm11351.dtsi | 2 +- arch/arm/boot/dts/bcm21664.dtsi | 2 +- arch/arm/mach-bcm/kona_smp.c | 82 +++++++++++++++++++++++++++-------------- 3 files changed, 56 insertions(+), 30 deletions(-) commit 944725fcfff19d76205ac04d28e6e550ac2b3053 Author: Kapil Hali Date: Sat Dec 5 06:53:42 2015 -0500 ARM: dts: Add SMP support for Broadcom NSP Add device tree changes required for providing SMP support for Broadcom Northstar Plus SoC. Signed-off-by: Kapil Hali Signed-off-by: Florian Fainelli arch/arm/boot/dts/bcm-nsp.dtsi | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit 7418111f88dfb92b33d9f765acba5fb45aefabeb Author: Kapil Hali Date: Sat Dec 5 06:53:40 2015 -0500 dt-bindings: add SMP enable-method for Broadcom NSP Add a compatible string "brcm,bcm-nsp-smp" for Broadcom's Northstar Plus CPU to the 32-bit ARM CPU device tree binding documentation file and create a new binding documentation for Northstar Plus CPU. Signed-off-by: Kapil Hali Acked-by: Rob Herring Signed-off-by: Florian Fainelli .../bindings/arm/bcm/brcm,nsp-cpu-method.txt | 39 ++++++++++++++++++++++ Documentation/devicetree/bindings/arm/cpus.txt | 1 + 2 files changed, 40 insertions(+) commit 390dd67c471a43a8a0f36c7d5177de49e7749c59 Author: Seiichi Ikarashi Date: Thu Sep 10 18:01:56 2015 +0900 clocksource: Add CPU info to clocksource watchdog reporting The clocksource watchdog reporting was improved by 0b046b217ad4c6. I want to add the info of CPU where the watchdog detects a deviation because it is necessary to identify the trouble spot if the clocksource is TSC. Signed-off-by: Seiichi Ikarashi [jstultz: Tweaked commit message] Signed-off-by: John Stultz kernel/time/clocksource.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ba5843f51d468644b094674c0317c9ab95632caa Author: Jan Kara Date: Mon Dec 7 15:10:44 2015 -0500 ext4: use pre-zeroed blocks for DAX page faults Make DAX fault path use pre-zeroed blocks to avoid races with extent conversion and zeroing when two page faults to the same block happen. Signed-off-by: Jan Kara Signed-off-by: Theodore Ts'o fs/ext4/ext4.h | 4 +-- fs/ext4/file.c | 20 ++------------ fs/ext4/inode.c | 86 +++++++++++++++++++++++++++++++++++++++++++++------------ 3 files changed, 74 insertions(+), 36 deletions(-) commit c86d8db33a922da808a5560aa15ed663a9569b37 Author: Jan Kara Date: Mon Dec 7 15:10:26 2015 -0500 ext4: implement allocation of pre-zeroed blocks DAX page fault path needs to get blocks that are pre-zeroed to avoid races when two concurrent page faults happen in the same block of a file. Implement support for this in ext4_map_blocks(). Signed-off-by: Jan Kara Signed-off-by: Theodore Ts'o fs/ext4/ext4.h | 4 ++++ fs/ext4/extents.c | 8 ++++++++ fs/ext4/inode.c | 25 ++++++++++++++++++++++--- include/trace/events/ext4.h | 3 ++- 4 files changed, 36 insertions(+), 4 deletions(-) commit 53085fac02d12fcd29a9cb074ec480ff0f77ae5c Author: Jan Kara Date: Mon Dec 7 15:09:35 2015 -0500 ext4: provide ext4_issue_zeroout() Create new function ext4_issue_zeroout() to zeroout contiguous (both logically and physically) part of inode data. We will need to issue zeroout when extent structure is not readily available and this function will allow us to do it without making up fake extent structures. Signed-off-by: Jan Kara Signed-off-by: Theodore Ts'o fs/ext4/crypto.c | 6 ++---- fs/ext4/ext4.h | 5 ++++- fs/ext4/extents.c | 12 ++---------- fs/ext4/inode.c | 15 +++++++++++++++ 4 files changed, 23 insertions(+), 15 deletions(-) commit 22de54a9b929e7c11e445c8f329d33aa7b154495 Author: Sudip Mukherjee Date: Mon Dec 7 16:17:35 2015 +0530 spi: lm70llp: remove printk Using pr_* macros are more prefferable than using printk. Start using pr_* family of macros and define pr_fmt to be used with it. While at it remove DRVNAME from an existing pr_info() as the name is now being printed by pr_fmt. Signed-off-by: Sudip Mukherjee Signed-off-by: Mark Brown drivers/spi/spi-lm70llp.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 46c52c28deb38df19b1284468792fb59e6a6c27b Author: Sudip Mukherjee Date: Mon Dec 7 16:17:34 2015 +0530 spi: lm70llp: use dev_warn As we have a struct device available it is better to use dev_warn() instead of printk. Signed-off-by: Sudip Mukherjee Signed-off-by: Mark Brown drivers/spi/spi-lm70llp.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 2dcba4781fa3842e28f47ab23056d58cd283fca6 Author: Jan Kara Date: Mon Dec 7 15:04:57 2015 -0500 ext4: get rid of EXT4_GET_BLOCKS_NO_LOCK flag When dioread_nolock mode is enabled, we grab i_data_sem in ext4_ext_direct_IO() and therefore we need to instruct _ext4_get_block() not to grab i_data_sem again using EXT4_GET_BLOCKS_NO_LOCK. However holding i_data_sem over overwrite direct IO isn't needed these days. We have exclusion against truncate / hole punching because we increase i_dio_count under i_mutex in ext4_ext_direct_IO() so once ext4_file_write_iter() verifies blocks are allocated & written, they are guaranteed to stay so during the whole direct IO even after we drop i_mutex. So we can just remove this locking abuse and the no longer necessary EXT4_GET_BLOCKS_NO_LOCK flag. Signed-off-by: Jan Kara Signed-off-by: Theodore Ts'o fs/ext4/ext4.h | 4 +--- fs/ext4/inode.c | 43 ++++++++++++++++++++----------------------- include/trace/events/ext4.h | 3 +-- 3 files changed, 22 insertions(+), 28 deletions(-) commit f8a876176f38e00aab200d308506ca4a4ba57b39 Author: Anton Bondarenko Date: Sat Dec 5 17:57:02 2015 +0100 spi: imx: add function to check for IMX51 family controller Similar to other controller type checks add check function for IMX51. It includes IMX53 and IMX6. Signed-off-by: Anton Bondarenko Signed-off-by: Mark Brown drivers/spi/spi-imx.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 0dfbaa8932a6c4ffd83a6459f247bf06b4652543 Author: Anton Bondarenko Date: Sat Dec 5 17:57:01 2015 +0100 spi: imx: replace multiple watermarks with single for RX, TX and RXT There is no need to have different watermarks levels since they are the same. Merge them into one WML parameter. Signed-off-by: Anton Bondarenko Signed-off-by: Mark Brown drivers/spi/spi-imx.c | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) commit fab44ef1adcc585440c07c90539e2b9e2cded4bf Author: Anton Bondarenko Date: Sat Dec 5 17:57:00 2015 +0100 spi: imx: reorder HW operations enable order to avoid possible RX data loss The overflow may happen due to rescheduling for another task and/or interrupt if we enable SPI HW before starting RX DMA. So RX DMA enabled first to make sure data would be read out from FIFO ASAP. TX DMA enabled next to start filling TX FIFO with new data. And finaly SPI HW enabled to start actual data transfer. The risk rise in case of heavy system load and high SPI clock. Signed-off-by: Anton Bondarenko Signed-off-by: Mark Brown drivers/spi/spi-imx.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit e47b33c0765400d38ebaf57908f00abab2488f74 Author: Anton Bondarenko Date: Sat Dec 5 17:56:59 2015 +0100 spi: imx: terminate RX DMA transaction in case of TX DMA timeout Not only TX DMA should be terminated, but RX DMA also. It's required to avoid accidential DMA memory writes from RX DMA channel and properly terminate transaction. Signed-off-by: Anton Bondarenko Signed-off-by: Mark Brown drivers/spi/spi-imx.c | 1 + 1 file changed, 1 insertion(+) commit 0032e9dbc5d8add10345ccda48e3803bb7cfd650 Author: Maruthi Srinivas Bayyavarapu Date: Fri Dec 4 18:40:33 2015 -0500 ASoC: dwc: reconfigure dwc in 'resume' from 'suspend' DWC IP can be powered off during system suspend in some platforms. After system is resumed, dwc needs to be programmed again to continue audio use case. Signed-off-by: Maruthi Bayyavarapu Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher Signed-off-by: Mark Brown sound/soc/dwc/designware_i2s.c | 70 ++++++++++++++++++++++++++---------------- 1 file changed, 43 insertions(+), 27 deletions(-) commit e164835a0270cc01c93794536027cc70cd00d0ff Author: Maruthi Srinivas Bayyavarapu Date: Fri Dec 4 18:40:32 2015 -0500 ASoC: dwc: add quirk for different register offset DWC in ACP 2.x IP has different offsets for I2S_COMP_PARAM_* registers. Added a quirk to support the same. Signed-off-by: Maruthi Bayyavarapu Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher Signed-off-by: Mark Brown include/sound/designware_i2s.h | 5 +++++ sound/soc/dwc/designware_i2s.c | 17 ++++++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) commit f48303122d2fd94b719e546cf8a39d412c7eee69 Author: Maruthi Srinivas Bayyavarapu Date: Fri Dec 4 18:40:31 2015 -0500 ASoC: dwc: add runtime suspend/resume functionality When DW controller is in master mode, it can disable/enable clock during the device runtime suspend/resume sequence. Signed-off-by: Maruthi Bayyavarapu Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher Signed-off-by: Mark Brown sound/soc/dwc/designware_i2s.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) commit 35a4933a895927990772ae96fdcfd2f806929ee2 Author: David Gibson Date: Mon Nov 30 12:30:30 2015 +1100 time: Avoid signed overflow in timekeeping_get_ns() 1e75fa8 "time: Condense timekeeper.xtime into xtime_sec" replaced a call to clocksource_cyc2ns() from timekeeping_get_ns() with an open-coded version of the same logic to avoid keeping a semi-redundant struct timespec in struct timekeeper. However, the commit also introduced a subtle semantic change - where clocksource_cyc2ns() uses purely unsigned math, the new version introduces a signed temporary, meaning that if (delta * tk->mult) has a 63-bit overflow the following shift will still give a negative result. The choice of 'maxsec' in __clocksource_updatefreq_scale() means this will generally happen if there's a ~10 minute pause in examining the clocksource. This can be triggered on a powerpc KVM guest by stopping it from qemu for a bit over 10 minutes. After resuming time has jumped backwards several minutes causing numerous problems (jiffies does not advance, msleep()s can be extended by minutes..). It doesn't happen on x86 KVM guests, because the guest TSC is effectively frozen while the guest is stopped, which is not the case for the powerpc timebase. Obviously an unsigned (64 bit) overflow will only take twice as long as a signed, 63-bit overflow. I don't know the time code well enough to know if that will still cause incorrect calculations, or if a 64-bit overflow is avoided elsewhere. Still, an incorrect forwards clock adjustment will cause less trouble than time going backwards. So, this patch removes the potential for intermediate signed overflow. Cc: stable@vger.kernel.org (3.7+) Suggested-by: Laurent Vivier Tested-by: Laurent Vivier Signed-off-by: David Gibson Signed-off-by: John Stultz kernel/time/timekeeping.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit e74031fd7ed0989da8a80364b4d269a57e9c164a Author: Jan Kara Date: Mon Dec 7 14:35:49 2015 -0500 ext4: document lock ordering We have enough locks that it's probably worth documenting the lock ordering rules we have in ext4. Signed-off-by: Jan Kara Signed-off-by: Theodore Ts'o fs/ext4/super.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) commit 011278485ecc3cd2a3954b5d4c73101d919bf1fa Author: Jan Kara Date: Mon Dec 7 14:34:49 2015 -0500 ext4: fix races of writeback with punch hole and zero range When doing delayed allocation, update of on-disk inode size is postponed until IO submission time. However hole punch or zero range fallocate calls can end up discarding the tail page cache page and thus on-disk inode size would never be properly updated. Make sure the on-disk inode size is updated before truncating page cache. Signed-off-by: Jan Kara Signed-off-by: Theodore Ts'o fs/ext4/ext4.h | 3 +++ fs/ext4/extents.c | 5 +++++ fs/ext4/inode.c | 35 ++++++++++++++++++++++++++++++++++- 3 files changed, 42 insertions(+), 1 deletion(-) commit 32ebffd3bbb4162da5ff88f9a35dd32d0a28ea70 Author: Jan Kara Date: Mon Dec 7 14:31:11 2015 -0500 ext4: fix races between buffered IO and collapse / insert range Current code implementing FALLOC_FL_COLLAPSE_RANGE and FALLOC_FL_INSERT_RANGE is prone to races with buffered writes and page faults. If buffered write or write via mmap manages to squeeze between filemap_write_and_wait_range() and truncate_pagecache() in the fallocate implementations, the written data is simply discarded by truncate_pagecache() although it should have been shifted. Fix the problem by moving filemap_write_and_wait_range() call inside i_mutex and i_mmap_sem. That way we are protected against races with both buffered writes and page faults. Signed-off-by: Jan Kara Signed-off-by: Theodore Ts'o fs/ext4/extents.c | 59 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 31 insertions(+), 28 deletions(-) commit 17048e8a083fec7ad841d88ef0812707fbc7e39f Author: Jan Kara Date: Mon Dec 7 14:29:17 2015 -0500 ext4: move unlocked dio protection from ext4_alloc_file_blocks() Currently ext4_alloc_file_blocks() was handling protection against unlocked DIO. However we now need to sometimes call it under i_mmap_sem and sometimes not and DIO protection ranks above it (although strictly speaking this cannot currently create any deadlocks). Also ext4_zero_range() was actually getting & releasing unlocked DIO protection twice in some cases. Luckily it didn't introduce any real bug but it was a land mine waiting to be stepped on. So move DIO protection out from ext4_alloc_file_blocks() into the two callsites. Signed-off-by: Jan Kara Signed-off-by: Theodore Ts'o fs/ext4/extents.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) commit ea3d7209ca01da209cda6f0dea8be9cc4b7a933b Author: Jan Kara Date: Mon Dec 7 14:28:03 2015 -0500 ext4: fix races between page faults and hole punching Currently, page faults and hole punching are completely unsynchronized. This can result in page fault faulting in a page into a range that we are punching after truncate_pagecache_range() has been called and thus we can end up with a page mapped to disk blocks that will be shortly freed. Filesystem corruption will shortly follow. Note that the same race is avoided for truncate by checking page fault offset against i_size but there isn't similar mechanism available for punching holes. Fix the problem by creating new rw semaphore i_mmap_sem in inode and grab it for writing over truncate, hole punching, and other functions removing blocks from extent tree and for read over page faults. We cannot easily use i_data_sem for this since that ranks below transaction start and we need something ranking above it so that it can be held over the whole truncate / hole punching operation. Also remove various workarounds we had in the code to reduce race window when page fault could have created pages with stale mapping information. Signed-off-by: Jan Kara Signed-off-by: Theodore Ts'o fs/ext4/ext4.h | 10 +++++++++ fs/ext4/extents.c | 54 ++++++++++++++++++++++++-------------------- fs/ext4/file.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++-------- fs/ext4/inode.c | 36 +++++++++++++++++++++-------- fs/ext4/super.c | 1 + fs/ext4/truncate.h | 2 ++ 6 files changed, 127 insertions(+), 42 deletions(-) commit ad9360b3e5d428d859256390906dff64f2ddc290 Merge: 4c9668d 1b89452 Author: David S. Miller Date: Mon Dec 7 14:10:10 2015 -0500 Merge tag 'mac80211-next-for-davem-2015-12-07' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next Johannes Berg says: ==================== This pull request got a bit bigger than I wanted, due to needing to reshuffle and fix some bugs. I merged mac80211 to get the right base for some of these changes. * new mac80211 API for upcoming driver changes: EOSP handling, key iteration * scan abort changes allowing to cancel an ongoing scan * VHT IBSS 80+80 MHz support * re-enable full AP client state tracking after fixes * various small fixes (that weren't relevant for mac80211) * various cleanups ==================== Signed-off-by: David S. Miller commit 4c9668dfe1b410e78a40f8815ea7c50d0f71e1ac Merge: 6487428 668dda0 Author: David S. Miller Date: Mon Dec 7 13:40:01 2015 -0500 Merge branch 'thunderx-cleanups' Sunil Goutham says: ==================== net: thunderx: Miscellaneous cleanups This patch series contains contains couple of cleanup patches. ==================== Signed-off-by: David S. Miller commit 668dda06d48fc16a5b40e6a32057bd18589e3f95 Author: Sunil Goutham Date: Mon Dec 7 10:30:33 2015 +0530 net, thunderx: Remove unnecessary rcv buffer start address management Since we have moved on to using allocated pages to carve receive buffers instead of netdev_alloc_skb() there is no need to store any pointers for later retrieval. Earlier we had to store skb and skb->data pointers which later are used to handover received packet to network stack. This will avoid an unnecessary cache miss as well. Signed-off-by: Sunil Goutham Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nicvf_queues.c | 49 ++++------------------ drivers/net/ethernet/cavium/thunder/nicvf_queues.h | 10 +---- 2 files changed, 11 insertions(+), 48 deletions(-) commit b45ceb406e4fd3045180b8d70bff60b1d43c7ff4 Author: Yury Norov Date: Mon Dec 7 10:30:32 2015 +0530 net: thunderx: nicvf_queues: nivc_*_intr: remove duplication The same switch-case repeates for nivc_*_intr functions. In this patch it is moved to a helper nicvf_int_type_to_mask(). By the way: - Unneeded write to NICVF register dropped if int_type is unknown. - netdev_dbg() is used instead of netdev_err(). Signed-off-by: Yury Norov Signed-off-by: Aleksey Makarov Acked-by: Vadim Lomovtsev Signed-off-by: Sunil Goutham Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nicvf_queues.c | 140 ++++++--------------- 1 file changed, 40 insertions(+), 100 deletions(-) commit 5db4fd8c52810bd9740c1240ebf89223b171aa70 Author: John Blackwood Date: Mon Dec 7 11:50:34 2015 +0000 arm64: Clear out any singlestep state on a ptrace detach operation Make sure to clear out any ptrace singlestep state when a ptrace(2) PTRACE_DETACH call is made on arm64 systems. Otherwise, the previously ptraced task will die off with a SIGTRAP signal if the debugger just previously singlestepped the ptraced task. Cc: Signed-off-by: John Blackwood [will: added comment to justify why this is in the arch code] Signed-off-by: Will Deacon arch/arm64/kernel/ptrace.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 9cfc5c90ad38c8fc11bfd39de42a107da00871ba Author: Russell King Date: Sun Dec 6 23:52:21 2015 +0000 dt-bindings: add Marvell PMU documentation Add the required DT binding documentation for the Marvell PMU driver. Acked-by: Rob Herring Acked-by: Arnd Bergmann Signed-off-by: Russell King Signed-off-by: Gregory CLEMENT Documentation/devicetree/bindings/soc/dove/pmu.txt | 56 ++++++++++++++++++++++ 1 file changed, 56 insertions(+) commit 860a8865659c035d26749093fb5e8f3c9a24fbeb Author: Russell King Date: Sun Dec 6 23:28:37 2015 +0000 ARM: dts: dove: add Dove divider clocks Add the Dove divider clocks to the Dove dtsi file. Acked-by: Andrew Lunn Signed-off-by: Russell King Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/dove.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) commit c6664ca0a368130efd6c337c1e1c298cb6b128e8 Author: Russell King Date: Sun Dec 6 23:28:26 2015 +0000 dt-bindings: add Marvell core PLL and clock divider PMU documentation Add documentation for the Marvell clock divider driver, which is used to source clocks for the AXI bus, video decoder, GPU and LCD blocks. Acked-by: Andrew Lunn Acked-by: Sebastian Hesselbarth Acked-by: Rob Herring Signed-off-by: Russell King Signed-off-by: Gregory CLEMENT .../bindings/clock/dove-divider-clock.txt | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit 079ae0c121fd23287f4ad2be9e9f8a13f63cae73 Author: Thomas Petazzoni Date: Fri Dec 4 14:29:02 2015 +0100 ARM: mvebu: remove duplicated regulator definition in Armada 388 GP The Armada 388 GP Device Tree file describes two times a regulator named 'reg_usb2_1_vbus', with the exact same description. This has been wrong since Armada 388 GP support was introduced. Fixes: 928413bd859c0 ("ARM: mvebu: Add Armada 388 General Purpose Development Board support") Signed-off-by: Thomas Petazzoni Cc: # v4.0+ Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/armada-388-gp.dts | 10 ---------- 1 file changed, 10 deletions(-) commit 63cddd25fa02dbba294fb09f78ea24d7a9f1c7d9 Author: Arnd Bergmann Date: Wed Dec 2 22:27:09 2015 +0100 ARM: orion5x: multiplatform support The orion5x platform is now ready to be enabled for multiplatform support, this patch does the switch over by modifying the Kconfig file, the defconfig and removing the last mach/*.h header that becomes obsolete with this. Signed-off-by: Arnd Bergmann Acked-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/Kconfig | 17 --------- arch/arm/configs/orion5x_defconfig | 3 ++ arch/arm/mach-orion5x/Kconfig | 18 +++++++--- arch/arm/mach-orion5x/Makefile | 2 ++ arch/arm/mach-orion5x/include/mach/uncompress.h | 46 ------------------------- 5 files changed, 19 insertions(+), 67 deletions(-) commit c22c2c6008d69ff2632f8a69c62782468c2bb5a0 Author: Arnd Bergmann Date: Wed Dec 2 22:27:08 2015 +0100 ARM: orion5x: clean up mach/*.h headers This is a simple move of all header files that are no longer included by anything else from the include/mach directory to the platform directory itself as preparation for multiplatform support. The mach/uncompress.h headers are left in place for now, and are mildly modified to be independent of the other headers. They will be removed entirely when ARCH_MULTIPLATFORM gets enabled and they become obsolete. Rather than updating the path names inside of the comments of each header, I delete those comments to avoid having to update them again, should they get moved or copied another time. Signed-off-by: Arnd Bergmann Acked-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/mach-orion5x/board-d2net.c | 2 +- arch/arm/mach-orion5x/board-dt.c | 4 +- arch/arm/mach-orion5x/board-mss2.c | 4 +- arch/arm/mach-orion5x/board-rd88f5182.c | 2 +- arch/arm/mach-orion5x/bridge-regs.h | 35 ++++++ arch/arm/mach-orion5x/common.c | 6 +- arch/arm/mach-orion5x/db88f5281-setup.c | 2 +- arch/arm/mach-orion5x/dns323-setup.c | 2 +- arch/arm/mach-orion5x/include/mach/bridge-regs.h | 37 ------ arch/arm/mach-orion5x/include/mach/hardware.h | 14 --- arch/arm/mach-orion5x/include/mach/irqs.h | 60 --------- arch/arm/mach-orion5x/include/mach/orion5x.h | 148 ----------------------- arch/arm/mach-orion5x/include/mach/uncompress.h | 4 +- arch/arm/mach-orion5x/irq.c | 2 +- arch/arm/mach-orion5x/irqs.h | 58 +++++++++ arch/arm/mach-orion5x/kurobox_pro-setup.c | 2 +- arch/arm/mach-orion5x/ls-chl-setup.c | 2 +- arch/arm/mach-orion5x/ls_hgl-setup.c | 2 +- arch/arm/mach-orion5x/mpp.c | 2 +- arch/arm/mach-orion5x/mv2120-setup.c | 2 +- arch/arm/mach-orion5x/net2big-setup.c | 2 +- arch/arm/mach-orion5x/orion5x.h | 146 ++++++++++++++++++++++ arch/arm/mach-orion5x/pci.c | 2 +- arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c | 2 +- arch/arm/mach-orion5x/rd88f5181l-ge-setup.c | 2 +- arch/arm/mach-orion5x/rd88f5182-setup.c | 2 +- arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c | 2 +- arch/arm/mach-orion5x/terastation_pro2-setup.c | 2 +- arch/arm/mach-orion5x/ts209-setup.c | 2 +- arch/arm/mach-orion5x/ts409-setup.c | 2 +- arch/arm/mach-orion5x/ts78xx-setup.c | 2 +- arch/arm/mach-orion5x/tsx09-common.c | 2 +- arch/arm/mach-orion5x/wnr854t-setup.c | 2 +- arch/arm/mach-orion5x/wrt350n-v2-setup.c | 2 +- 34 files changed, 270 insertions(+), 292 deletions(-) commit 43dad399a107ecffdba97454ca4cdf8c7271b228 Author: Arnd Bergmann Date: Wed Dec 2 22:27:07 2015 +0100 ARM: mv78xx0: multiplatform support The mv78xx0 platform is now ready to be enabled for multiplatform support, this patch does the switch over by modifying the Kconfig file, the defconfig and removing the last mach/*.h header that becomes obsolete with this. Signed-off-by: Arnd Bergmann Acked-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/Kconfig | 14 -------- arch/arm/configs/mv78xx0_defconfig | 3 ++ arch/arm/mach-mv78xx0/Kconfig | 15 ++++++--- arch/arm/mach-mv78xx0/Makefile | 2 ++ arch/arm/mach-mv78xx0/include/mach/uncompress.h | 44 ------------------------- 5 files changed, 16 insertions(+), 62 deletions(-) commit 4c811b99b4de975f6c624efb269ed719e75a3035 Author: Arnd Bergmann Date: Wed Dec 2 22:27:06 2015 +0100 ARM: mv78xx0: clean up mach/*.h headers This is a simple move of all header files that are no longer included by anything else from the include/mach directory to the platform directory itself as preparation for multiplatform support. The mach/uncompress.h headers are left in place for now, and are mildly modified to be independent of the other headers. They will be removed entirely when ARCH_MULTIPLATFORM gets enabled and they become obsolete. Rather than updating the path names inside of the comments of each header, I delete those comments to avoid having to update them again, should they get moved or copied another time. Signed-off-by: Arnd Bergmann Acked-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/mach-mv78xx0/bridge-regs.h | 35 ++++++ arch/arm/mach-mv78xx0/buffalo-wxl-setup.c | 2 +- arch/arm/mach-mv78xx0/common.c | 4 +- arch/arm/mach-mv78xx0/db78x00-bp-setup.c | 2 +- arch/arm/mach-mv78xx0/include/mach/bridge-regs.h | 37 ------- arch/arm/mach-mv78xx0/include/mach/hardware.h | 14 --- arch/arm/mach-mv78xx0/include/mach/irqs.h | 94 ----------------- arch/arm/mach-mv78xx0/include/mach/mv78xx0.h | 129 ----------------------- arch/arm/mach-mv78xx0/include/mach/uncompress.h | 4 +- arch/arm/mach-mv78xx0/irq.c | 2 +- arch/arm/mach-mv78xx0/irqs.h | 92 ++++++++++++++++ arch/arm/mach-mv78xx0/mpp.c | 2 +- arch/arm/mach-mv78xx0/mv78xx0.h | 127 ++++++++++++++++++++++ arch/arm/mach-mv78xx0/pcie.c | 2 +- arch/arm/mach-mv78xx0/rd78x00-masa-setup.c | 2 +- 15 files changed, 263 insertions(+), 285 deletions(-) commit 5cdbe5d23a8a0d7274d628bb9d5ff018d25075ca Author: Arnd Bergmann Date: Wed Dec 2 22:27:05 2015 +0100 ARM: orion: use SPARSE_IRQ everywhere As a preparation for multiplatform support, this moves all the code using plat-orion over to use sparse irq support, which is enabled implicitly for multiplatform. In particular, the hardcoded NR_IRQS macro gets replaced with a machine specific one that is set in the machine descriptor in order to set up a static mapping for all legacy interrupts. Signed-off-by: Arnd Bergmann Acked-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/Kconfig | 3 +++ arch/arm/mach-dove/cm-a510.c | 1 + arch/arm/mach-dove/dove-db-setup.c | 1 + arch/arm/mach-dove/include/mach/dove.h | 2 ++ arch/arm/mach-dove/include/mach/irqs.h | 2 +- arch/arm/mach-dove/include/mach/pm.h | 2 +- arch/arm/mach-dove/irq.c | 2 +- arch/arm/mach-mv78xx0/buffalo-wxl-setup.c | 1 + arch/arm/mach-mv78xx0/db78x00-bp-setup.c | 1 + arch/arm/mach-mv78xx0/include/mach/irqs.h | 2 +- arch/arm/mach-mv78xx0/include/mach/mv78xx0.h | 2 ++ arch/arm/mach-mv78xx0/rd78x00-masa-setup.c | 1 + arch/arm/mach-orion5x/db88f5281-setup.c | 1 + arch/arm/mach-orion5x/dns323-setup.c | 1 + arch/arm/mach-orion5x/include/mach/irqs.h | 2 +- arch/arm/mach-orion5x/include/mach/orion5x.h | 2 ++ arch/arm/mach-orion5x/kurobox_pro-setup.c | 2 ++ arch/arm/mach-orion5x/ls-chl-setup.c | 1 + arch/arm/mach-orion5x/ls_hgl-setup.c | 1 + arch/arm/mach-orion5x/mv2120-setup.c | 1 + arch/arm/mach-orion5x/net2big-setup.c | 1 + arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c | 1 + arch/arm/mach-orion5x/rd88f5181l-ge-setup.c | 1 + arch/arm/mach-orion5x/rd88f5182-setup.c | 1 + arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c | 1 + arch/arm/mach-orion5x/terastation_pro2-setup.c | 1 + arch/arm/mach-orion5x/ts209-setup.c | 1 + arch/arm/mach-orion5x/ts409-setup.c | 1 + arch/arm/mach-orion5x/ts78xx-setup.c | 1 + arch/arm/mach-orion5x/wnr854t-setup.c | 1 + arch/arm/mach-orion5x/wrt350n-v2-setup.c | 1 + 31 files changed, 37 insertions(+), 5 deletions(-) commit b8cd337c8e0330f4a29b3d1f69b7c73b324b1f8d Author: Arnd Bergmann Date: Wed Dec 2 22:27:04 2015 +0100 ARM: orion: always use MULTI_IRQ_HANDLER As a preparation for multiplatform support, this enables the MULTI_IRQ_HANDLER code unconditionally on dove and orion5x, and introduces the respective code on mv78xx0, which did not have it so far. The classic entry-macro.S files are removed as they are now obsolete. Signed-off-by: Arnd Bergmann Acked-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/Kconfig | 3 ++ arch/arm/mach-dove/include/mach/entry-macro.S | 33 ------------------- arch/arm/mach-dove/irq.c | 12 +------ arch/arm/mach-mv78xx0/include/mach/entry-macro.S | 41 ------------------------ arch/arm/mach-mv78xx0/irq.c | 33 +++++++++++++++++++ arch/arm/mach-orion5x/include/mach/entry-macro.S | 25 --------------- arch/arm/mach-orion5x/irq.c | 11 ------- arch/arm/plat-orion/irq.c | 1 - arch/arm/plat-orion/mpp.c | 1 - 9 files changed, 37 insertions(+), 123 deletions(-) commit 06f3008a6a7454389a82495eb1fc132c2b0710f6 Author: Arnd Bergmann Date: Wed Dec 2 22:27:03 2015 +0100 ARM: orion: move watchdog setup to mach-orion5x The watchdog device node is created in plat-orion/common.c but depends on the bridge address that is platform specific, so as a preparation for orion multiplatform support, we move it out of the common code into orion5x and dove. At the moment, dove does not use the watchdog, so I'm marking the function as __maybe_unused for the moment. The compiler will be able to compile out the device definition this way, and we can easily add it later. Signed-off-by: Arnd Bergmann Acked-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/mach-dove/common.c | 17 +++++++++++++++++ arch/arm/mach-orion5x/common.c | 14 +++++++++++++- arch/arm/plat-orion/common.c | 21 --------------------- arch/arm/plat-orion/include/plat/common.h | 2 -- 4 files changed, 30 insertions(+), 24 deletions(-) commit c7bd48195377435ecaf38869b936be8e7abe3489 Author: Ray Jui Date: Fri Dec 4 09:35:00 2015 -0800 PCI: iproc: Add iProc PCIe MSI device tree binding Update the iProc PCIe device tree bindings with added binding information for MSI. Signed-off-by: Ray Jui Signed-off-by: Bjorn Helgaas Reviewed-by: Anup Patel Reviewed-by: Vikram Prakash Reviewed-by: Scott Branden .../devicetree/bindings/pci/brcm,iproc-pcie.txt | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) commit 943ebae781f519ecfecbfa1b997f15f59116e41d Author: Ray Jui Date: Fri Dec 4 09:34:59 2015 -0800 PCI: iproc: Add PAXC interface support Traditionally, all iProc PCIe root complexes use PAXB-based wrapper, with an integrated on-chip Serdes to support external endpoint devices. On newer iProc platforms, a PAXC-based wrapper is introduced, for connection with internally emulated PCIe endpoint devices in the ASIC. Add support for PAXC-based iProc PCIe root complex in the iProc PCIe core driver. This change factors out common logic between PAXB and PAXC, and uses tables to store register offsets that are different between PAXB and PAXC. This allows the driver to be scaled to support subsequent PAXC revisions in the future. Signed-off-by: Ray Jui Signed-off-by: Bjorn Helgaas Reviewed-by: Scott Branden drivers/pci/host/pcie-iproc-platform.c | 24 +++- drivers/pci/host/pcie-iproc.c | 202 +++++++++++++++++++++++++++------ drivers/pci/host/pcie-iproc.h | 19 ++++ 3 files changed, 205 insertions(+), 40 deletions(-) commit e8b8318de645c04f8600cb5af6f6773a1878ee9d Author: Ray Jui Date: Fri Dec 4 09:34:58 2015 -0800 PCI: iproc: Update iProc PCIe device tree binding Add a new compatible string "brcm,iproc-pcie-paxc", for PAXC-based iProc PCIe root complex. A PAXC-based PCIe root complex is connected to emulated endpoint devices internal to the ASIC. Signed-off-by: Ray Jui Signed-off-by: Bjorn Helgaas Reviewed-by: Scott Branden Documentation/devicetree/bindings/pci/brcm,iproc-pcie.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit e11362bb25d97ea1cbe9e3b1e5f3d32aa4e75e13 Author: Yuan Sun Date: Mon Dec 7 10:28:46 2015 -0500 Subject: cgroup: Fix incomplete dd command in blkio documentation Signed-off-by: Yuan Sun Signed-off-by: Tejun Heo Documentation/cgroup-legacy/blkio-controller.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit f893180b79f6ada44068e4fe764eb2de70ee6bea Author: Dan Williams Date: Sat Dec 5 16:18:44 2015 -0800 ahci: compile out msi/msix infrastructure Quoting Arnd: The AHCI driver is used for some on-chip devices that do not use PCI for probing, and it can be built even when CONFIG_PCI is disabled, but that now results in a build failure: ata/libahci.c: In function 'ahci_host_activate_multi_irqs': ata/libahci.c:2475:4: error: invalid use of undefined type 'struct msix_entry' ata/libahci.c:2475:21: error: dereferencing pointer to incomplete type 'struct msix_entry' Add ifdef CONFIG_PCI_MSI infrastructure to compile out the multi-msi and multi-msix code. Reported-by: Arnd Bergmann Tested--by: Arnd Bergmann [arnd: fix up pci enabled case] Reported-by: Paul Gortmaker Fixes: d684a90d38e2 ("ahci: per-port msix support") Signed-off-by: Dan Williams Signed-off-by: Tejun Heo drivers/ata/ahci.h | 26 ++++++++++++++++++++++++-- drivers/ata/libahci.c | 7 +------ 2 files changed, 25 insertions(+), 8 deletions(-) commit 7e22c0024cf89404407f19955eab39b6d66de7b6 Author: Heiner Kallweit Date: Sun Dec 6 21:56:33 2015 +0100 ata: core: fix irq description on AHCI single irq systems On my machine with single irq AHCI just the PCI id is printed as description in /proc/interrupts. I found a related discussion from beginning of this year: http://www.gossamer-threads.com/lists/linux/kernel/2117335 Seems like 4f37b504768c ("libata: Use dev_name() for request_irq() to distinguish devices") tried to fix displaying a proper interrupt description for one scenario but broke it for another one. The mentioned discussion ended in the current situation being considered as broken but w/o a patch to fix it. The following patch is based on a proposal in this mail thread. Now the interrupt is properly described as: PCI-MSI 512000-edge ahci[0000:00:1f.2] By combining both values also the scenario that commit 4f37b504768c ("libata: Use dev_name() for request_irq() to distinguish devices") refers to should still be fine. There it should look like this now: ahci[20100000.ide] Using managed memory allocation ensures that the irq description lives at least as long as the interrupt. Signed-off-by: Heiner Kallweit Signed-off-by: Tejun Heo Cc: Sergei Shtylyov drivers/ata/libata-core.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 35de6db28f260e88e9acc47305f7b3f272d76cbf Author: David Sterba Date: Thu Dec 3 13:08:59 2015 +0100 btrfs: make set_range_writeback return void Does not return any errors, nor anything from the callgraph. There's a BUG_ON but it's a sanity check and not an error condition we could recover from. Signed-off-by: David Sterba fs/btrfs/extent_io.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit f6311572762a9ccaa533e60bf7929d63be914bde Author: David Sterba Date: Thu Dec 3 13:08:59 2015 +0100 btrfs: make extent_range_redirty_for_io return void Does not return any errors, nor anything from the callgraph. There's a BUG_ON but it's a sanity check and not an error condition we could recover from. Signed-off-by: David Sterba fs/btrfs/extent_io.c | 3 +-- fs/btrfs/extent_io.h | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) commit bd1fa4f0b0ddbed05ef98c28048d00db727c4b0e Author: David Sterba Date: Thu Dec 3 13:08:59 2015 +0100 btrfs: make extent_range_clear_dirty_for_io return void Does not return any errors, nor anything from the callgraph. There's a BUG_ON but it's a sanity check and not an error condition we could recover from. Signed-off-by: David Sterba fs/btrfs/extent_io.c | 3 +-- fs/btrfs/extent_io.h | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) commit b5227c075b5c11d5cf653bac5c01b9f7f03f2a8f Author: David Sterba Date: Thu Dec 3 13:08:59 2015 +0100 btrfs: make end_extent_writepage return void Does not return any errors, nor anything from the callgraph. The branch in end_bio_extent_writepage has been skipped since 5fd02043553b ("Btrfs: finish ordered extents in their own thread"). Signed-off-by: David Sterba fs/btrfs/extent_io.c | 7 ++----- fs/btrfs/extent_io.h | 2 +- 2 files changed, 3 insertions(+), 6 deletions(-) commit a9d93e1778f3a92852d3816cd203cbec179b8813 Author: David Sterba Date: Thu Dec 3 13:08:59 2015 +0100 btrfs: make extent_clear_unlock_delalloc return void Does not return any errors, nor anything from the callgraph. Signed-off-by: David Sterba fs/btrfs/extent_io.c | 5 ++--- fs/btrfs/extent_io.h | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) commit 69ba39272c519a34a4a0169b839ca177bf0f0104 Author: David Sterba Date: Thu Dec 3 13:08:59 2015 +0100 btrfs: make clear_extent_buffer_uptodate return void Does not return any errors, nor anything from the callgraph. Signed-off-by: David Sterba fs/btrfs/extent_io.c | 3 +-- fs/btrfs/extent_io.h | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) commit 09c25a8cda5baf6537234be0954173a18568423d Author: David Sterba Date: Thu Dec 3 13:08:59 2015 +0100 btrfs: make set_extent_buffer_uptodate return void Does not return any errors, nor anything from the callgraph. Signed-off-by: David Sterba fs/btrfs/extent_io.c | 3 +-- fs/btrfs/extent_io.h | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) commit 4db8c528cdccb44f8ca237ca3c695d6c164fa70f Author: David Sterba Date: Thu Dec 3 13:06:46 2015 +0100 btrfs: remove a trivial helper btrfs_set_buffer_uptodate Signed-off-by: David Sterba fs/btrfs/disk-io.c | 5 ----- fs/btrfs/disk-io.h | 1 - fs/btrfs/extent-tree.c | 2 +- fs/btrfs/volumes.c | 4 ++-- 4 files changed, 3 insertions(+), 9 deletions(-) commit a1eb9d5751220433998ae2e66216288161b1355b Author: Linus Walleij Date: Mon Dec 7 13:32:28 2015 +0100 ASoC: ac97: fix parent assignment Upstream GPIO has substituted .dev for .parent in struct gpio_chip. Signed-off-by: Linus Walleij sound/soc/soc-ac97.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 286d31f06d6cbc07c08c8b9df8ab42f3287eebba Merge: 6ddbaed 9bf5c3d Author: Linus Walleij Date: Mon Dec 7 13:31:00 2015 +0100 Merge tag 'asoc-ac97-gpio' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into devel ASoC: Add a GPIO chip for AC'97 GPIOs are part of the AC'97 spec, enable their use on embedded platforms using AC'97. commit 4c835b57b8de88aef8446867701034128a8a3522 Author: Nicolas Iooss Date: Wed Nov 18 19:07:15 2015 +0100 fixdep: constify strrcmp arguments strrcmp only performs read access to the memory addressed by its arguments so make them const pointers. Signed-off-by: Nicolas Iooss Signed-off-by: Michal Marek scripts/basic/fixdep.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a6351c68fe1ea89ebb39e8c405d622464bcb339e Author: Philipp Zabel Date: Thu Apr 2 17:29:03 2015 +0200 devicetree: add vendor prefix for Vivante Corporation Trivial patch to add Vivante Corporation to the list of devicetree vendor prefixes. Signed-off-by: Philipp Zabel Signed-off-by: Lucas Stach Acked-by: Rob Herring Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) commit 1b894521e60c1b91db1e8ba1278660e5c89f1b5f Author: Ilan Peer Date: Sun Dec 6 21:19:15 2015 +0200 mac80211: handle HW ROC expired properly In case of HW ROC, when the driver reports that the ROC expired, it is not sufficient to purge the ROCs based on the remaining time, as it possible that the device finished the ROC session before the actual requested duration. To handle such cases, in case of ROC expired notification from the driver, complete all the ROCs which are marked with hw_begun, regardless of the remaining duration. Signed-off-by: Ilan Peer Signed-off-by: Johannes Berg net/mac80211/offchannel.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 0d014ff344abc9c8e56cf1870ab3a144d2e2e37a Author: Maarten Lankhorst Date: Thu Nov 19 16:07:17 2015 +0100 drm/i915: Remove double wait_for_vblank on broadwell. wait_vblank is already set in intel_plane_atomic_calc_changes for broadwell, waiting for a double vblank is overkill. Signed-off-by: Maarten Lankhorst Link: http://patchwork.freedesktop.org/patch/msgid/1447945645-32005-5-git-send-email-maarten.lankhorst@linux.intel.com drivers/gpu/drm/i915/intel_display.c | 8 -------- 1 file changed, 8 deletions(-) commit b900111459e2f4a538697f75b63478f3a6acec3c Author: Maarten Lankhorst Date: Thu Nov 19 16:07:16 2015 +0100 drm/i915/skl: Update watermarks before the crtc is disabled. On skylake some of the registers are only writable when the correct power wells are enabled. Because of this watermarks have to be updated before the crtc turns off, or you get unclaimed register read and write warnings. This patch needs to be modified slightly to apply to -fixes. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92181 Signed-off-by: Maarten Lankhorst Cc: stable@vger.kernel.org Cc: Matt Roper Link: http://patchwork.freedesktop.org/patch/msgid/1447945645-32005-4-git-send-email-maarten.lankhorst@linux.intel.com Reviewed-by: Ander Conselvan de Oliveira drivers/gpu/drm/i915/intel_display.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 92826fcdfc147a7d16766e987c12a9dfe1860c3f Author: Maarten Lankhorst Date: Thu Dec 3 13:49:13 2015 +0100 drm/i915: Calculate watermark related members in the crtc_state, v4. This removes pre/post_wm_update from intel_crtc->atomic, and creates atomic state for it in intel_crtc. Changes since v1: - Rebase on top of wm changes. Changes since v2: - Split disable_cxsr into a separate patch. Changes since v3: - Move some of the changes to intel_wm_need_update. Signed-off-by: Maarten Lankhorst Link: http://patchwork.freedesktop.org/patch/msgid/56603A49.5000507@linux.intel.com Reviewed-by: Daniel Vetter drivers/gpu/drm/i915/intel_atomic.c | 1 + drivers/gpu/drm/i915/intel_display.c | 39 ++++++++++++++++++------------------ drivers/gpu/drm/i915/intel_drv.h | 2 +- 3 files changed, 21 insertions(+), 21 deletions(-) commit ab1d3a0e5a44f5b1a8d1f811e925c8519b56fba4 Author: Maarten Lankhorst Date: Thu Nov 19 16:07:14 2015 +0100 drm/i915: Move disable_cxsr to the crtc_state. intel_crtc->atomic will be removed later on, move this member to intel_crtc_state. Signed-off-by: Maarten Lankhorst Link: http://patchwork.freedesktop.org/patch/msgid/1447945645-32005-2-git-send-email-maarten.lankhorst@linux.intel.com Reviewed-by: Ander Conselvan de Oliveira drivers/gpu/drm/i915/intel_atomic.c | 1 + drivers/gpu/drm/i915/intel_display.c | 12 +++++++----- drivers/gpu/drm/i915/intel_drv.h | 4 ++-- 3 files changed, 10 insertions(+), 7 deletions(-) commit c10368897e104c008c610915a218f0fe5fa4ec96 Author: Ravindra Lokhande Date: Mon Dec 7 12:08:31 2015 +0530 ALSA: compress: add support for 32bit calls in a 64bit kernel Compress offload does not support ioctl calls from a 32bit userspace in a 64 bit kernel. This patch adds support for ioctls from a 32bit userspace in a 64bit kernel Signed-off-by: Ravindra Lokhande Acked-by: Vinod Koul Signed-off-by: Takashi Iwai sound/core/compress_offload.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 0b4bf5a5200b9ac5ddf545665f171feb5594677d Author: Chen-Yu Tsai Date: Sat Dec 5 21:16:46 2015 +0800 ARM: dts: sun7i: Add DRAM gates The DRAM gates controls direct memory access for some peripherals. These peripherals include the display pipeline, so add the required gates to the simplefb nodes as well. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20.dtsi | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) commit 82f8582feef4c048ee7ef0155a71c23614a7856d Author: Chen-Yu Tsai Date: Sat Dec 5 21:16:44 2015 +0800 ARM: dts: sun4i: Add DRAM gates The DRAM gates controls direct memory access for some peripherals. These peripherals include the display pipeline, so add the required gates to the simplefb nodes as well. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10.dtsi | 36 ++++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) commit 6d3a47c29186aa8d26ff05a6209c94291ace0696 Author: Chen-Yu Tsai Date: Sat Dec 5 21:16:42 2015 +0800 clk: sunxi: Add DRAM gates support for sun4i-a10 The A10/A20 share the same set of DRAM clock gates, which controls direct memory access for some peripherals. On the A10, bit 15 controls the system's DRAM clock output (possibly to the DRAM chips), which we need to keep on. On the A20 this has been moved to the DRAM controller, becoming a no-op. However it is still listed in the user manual, so add it anyway. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard Documentation/devicetree/bindings/clock/sunxi.txt | 1 + drivers/clk/sunxi/clk-simple-gates.c | 12 ++++++++++++ 2 files changed, 13 insertions(+) commit 47c0fd72822159eb501411f975f5672a0bf7a7fb Merge: 80d6900 4e15f2a Author: Dave Airlie Date: Mon Dec 7 18:17:09 2015 +1000 Merge tag 'topic/drm-misc-2015-12-04' of git://anongit.freedesktop.org/drm-intel into drm-next New -misc pull. Big thing is Thierry's atomic helpers for system suspend resume, which I'd like to use in i915 too. Hence the pull. * tag 'topic/drm-misc-2015-12-04' of git://anongit.freedesktop.org/drm-intel: drm: keep connector status change logging human readable drm/atomic-helper: Reject attempts at re-stealing encoders drm/atomic-helper: Implement subsystem-level suspend/resume drm: Implement drm_modeset_lock_all_ctx() drm/gma500: Add driver private mutex for the fault handler drm/gma500: Drop dev->struct_mutex from mmap offset function drm/gma500: Drop dev->struct_mutex from fbdev init/teardown code drm/gma500: Drop dev->struct_mutex from modeset code drm/gma500: Use correct unref in the gem bo create function drm/edid: Make the detailed timing CEA/HDMI mode fixup accept up to 5kHz clock difference drm/atomic_helper: Add drm_atomic_helper_disable_planes_on_crtc() drm: Serialise multiple event readers drm: Drop dev->event_lock spinlock around faulting copy_to_user() commit a4d8a0fe4500b87817eebdb363c116922de87453 Author: Zeng Zhaoxiu Date: Sun Dec 6 18:26:30 2015 +0800 i915: Replace "hweight8(dev_priv->info.subslice_7eu[i]) != 1" with "!is_power_of_2(dev_priv->info.subslice_7eu[i])" Signed-off-by: Zeng Zhaoxiu Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449397590-14292-1-git-send-email-zhaoxiu.zeng@gmail.com drivers/gpu/drm/i915/intel_ringbuffer.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a42b2af3cfcfa43307f4d56e6aeba154161c7f05 Author: Luca Coelho Date: Wed Nov 25 22:15:32 2015 +0200 iwlwifi: mvm: don't keep an mvm ref when the interface is down There is no reason to keep a reference when the interface is down, since we are not really doing anything. The reference is only needed when the mac80211 start op (or a hw restart) is running, to prevent going into runtime or system supend in the meantime. This will allow us to support runtime PM when the interface is down (in another patch). Signed-off-by: Luca Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 22 +++++++++++----------- drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 4 ++-- 2 files changed, 13 insertions(+), 13 deletions(-) commit f00be687f5fd2b626aa975dc4513cad525823c05 Author: Simon Horman Date: Thu Nov 26 13:26:20 2015 +0900 ARM: shmobile: r8a7793: remove deprecated #gpio-range-cells Commit a1bc260bb5f5d9 ("gpio: clean up gpio-ranges documentation") declares the above property deprecated. That was more than 2 years ago. Remove it, so it doesn't get copied around needlessly. Based on similar work for the r8a7791 and r8a7794 by Wolfram Sang. Cc: Wolfram Sang Signed-off-by: Simon Horman Reported-by: Wolfram Sang Acked-by: Wolfram Sang arch/arm/boot/dts/r8a7793.dtsi | 1 - 1 file changed, 1 deletion(-) commit 46ece349aa54f6e55b5f8d30bbecbaf2884ba869 Author: Sergei Shtylyov Date: Thu Dec 3 01:23:03 2015 +0300 ARM: shmobile: r8a7791: add EtherAVB DT support Define the generic R8A7791 part of the EtherAVB device node. Based on the commit f25d6b977240 ("ARM: shmobile: r8a7790: add EtherAVB DT support"). Signed-off-by: Sergei Shtylyov Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit eaa870b3055384092d8fc075bca3a3a819f73c43 Author: Sergei Shtylyov Date: Thu Dec 3 01:21:49 2015 +0300 ARM: shmobile: r8a7791: add EtherAVB clock Add the EtherAVB clock to the R8A7791 device tree. Based on the commit 63d2d750c902 ("ARM: shmobile: r8a7790: add EtherAVB clocks"). Signed-off-by: Sergei Shtylyov Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791.dtsi | 10 ++++++---- include/dt-bindings/clock/r8a7791-clock.h | 1 + 2 files changed, 7 insertions(+), 4 deletions(-) commit 64874280889e7c0b2c9266705363627d4c92cf01 Author: Rainer Weikusat Date: Sun Dec 6 21:11:38 2015 +0000 af_unix: fix unix_dgram_recvmsg entry locking The current unix_dgram_recvsmg code acquires the u->readlock mutex in order to protect access to the peek offset prior to calling __skb_recv_datagram for actually receiving data. This implies that a blocking reader will go to sleep with this mutex held if there's presently no data to return to userspace. Two non-desirable side effects of this are that a later non-blocking read call on the same socket will block on the ->readlock mutex until the earlier blocking call releases it (or the readers is interrupted) and that later blocking read calls will wait longer than the effective socket read timeout says they should: The timeout will only start 'ticking' once such a reader hits the schedule_timeout in wait_for_more_packets (core.c) while the time it already had to wait until it could acquire the mutex is unaccounted for. The patch avoids both by using the __skb_try_recv_datagram and __skb_wait_for_more packets functions created by the first patch to implement a unix_dgram_recvmsg read loop which releases the readlock mutex prior to going to sleep and reacquires it as needed afterwards. Non-blocking readers will thus immediately return with -EAGAIN if there's no data available regardless of any concurrent blocking readers and all blocking readers will end up sleeping via schedule_timeout, thus honouring the configured socket receive timeout. Signed-off-by: Rainer Weikusat Signed-off-by: David S. Miller net/unix/af_unix.c | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) commit ea3793ee29d3621faf857fa8ef5425e9ff9a756d Author: Rainer Weikusat Date: Sun Dec 6 21:11:34 2015 +0000 core: enable more fine-grained datagram reception control The __skb_recv_datagram routine in core/ datagram.c provides a general skb reception factility supposed to be utilized by protocol modules providing datagram sockets. It encompasses both the actual recvmsg code and a surrounding 'sleep until data is available' loop. This is inconvenient if a protocol module has to use additional locking in order to maintain some per-socket state the generic datagram socket code is unaware of (as the af_unix code does). The patch below moves the recvmsg proper code into a new __skb_try_recv_datagram routine which doesn't sleep and renames wait_for_more_packets to __skb_wait_for_more_packets, both routines being exported interfaces. The original __skb_recv_datagram routine is reimplemented on top of these two functions such that its user-visible behaviour remains unchanged. Signed-off-by: Rainer Weikusat Signed-off-by: David S. Miller include/linux/skbuff.h | 6 ++++ net/core/datagram.c | 77 +++++++++++++++++++++++++++++++------------------- 2 files changed, 54 insertions(+), 29 deletions(-) commit 7bf9ae016efc0cf08263fbee5ac708c23b90792e Author: Andrew Lunn Date: Mon Dec 7 04:38:58 2015 +0100 PHY: DP83867: Remove looking in parent device for OF properties Device tree properties for a phy device are expected to be in the phy node. The current code for the DP83867 also tries to look in the parent node. The devices binding documentation does not mention this, no current device tree file makes use of this, and it is not behaviour we want. So remove looking in the parent device. Signed-off-by: Andrew Lunn Acked-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/dp83867.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 404814af69d4732276319b90886b81fb2884ae1b Author: Bjørn Mork Date: Sun Dec 6 22:47:15 2015 +0100 net: cdc_ncm: add "ndp_to_end" sysfs attribute Adding a writable sysfs attribute for the "NDP to end" quirk flag. This makes it easier for end users to test new devices for this firmware bug. We've been lucky so far, but we should not depend on reporters capable of rebuilding the driver. Cc: Enrico Mioso Signed-off-by: Bjørn Mork Signed-off-by: David S. Miller Documentation/ABI/testing/sysfs-class-net-cdc_ncm | 19 ++++++++++ drivers/net/usb/cdc_ncm.c | 43 +++++++++++++++++++++++ 2 files changed, 62 insertions(+) commit ea2d8975e3f6600868a5ffe5d1089139c44abcf4 Author: Yendapally Reddy Dhananjaya Reddy Date: Fri Nov 20 12:58:29 2015 -0500 ARM: dts: enable pinctrl for Broadcom NSP This enables the pinctrl support for Broadcom NSP SoC Signed-off-by: Yendapally Reddy Dhananjaya Reddy Signed-off-by: Florian Fainelli arch/arm/boot/dts/bcm-nsp.dtsi | 7 +++++++ arch/arm/boot/dts/bcm958625k.dts | 9 +++++++++ 2 files changed, 16 insertions(+) commit 44a06fa4654d07a5ed63e1e0d67cdee1e20818e7 Author: Ray Jui Date: Wed Nov 18 10:16:59 2015 -0800 ARM: dts: enable PCIe PHY support for Cygnus Enable PCIe PHY for both PCIe root complexes on Cygnus Signed-off-by: Ray Jui Acked-by: Scott Branden [florian: Fix missing #address-cells and #size-cells properties] Signed-off-by: Florian Fainelli arch/arm/boot/dts/bcm-cygnus.dtsi | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit 3ad8ff0e4ab3f908f93bd76afdad815060bb32db Author: Pramod Kumar Date: Thu Nov 19 09:22:14 2015 +0530 ARM: dts: Cygnus: define ngpios property in gpio controller's node Add ngpios property in cygnus ASIU, CCM and CRMU gpio controller's node Signed-off-by: Pramod Kumar Reviewed-by: Ray Jui Reviewed-by: Scott Branden Signed-off-by: Florian Fainelli arch/arm/boot/dts/bcm-cygnus.dtsi | 3 +++ 1 file changed, 3 insertions(+) commit da41efd6041c694d93febdabee94552a2140dfbd Author: Rafał Miłecki Date: Fri Oct 30 15:44:01 2015 +0100 ARM: BCM5301X: Add missing Netgear R8000 LEDs Add a bunch of LEDs missing for the Netgear R8000: wireless, wps, 5Ghz radio and USB LEDs. Signed-off-by: Rafał Miłecki Signed-off-by: Florian Fainelli arch/arm/boot/dts/bcm4709-netgear-r8000.dts | 30 +++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) commit 511d30443a1c3e8a358c044b14587cbf3ed27a46 Author: Florian Fainelli Date: Thu Oct 29 18:23:19 2015 -0700 ARM: dts: BCM63xx: Add ARMPLL device tree nodes Add the ARM PLL controller which comes standard with the Cortex-A9 found on the BCM63138 SoCs. This is the same controller as the one found in the Broadcom iProc architecture, however, we have a separate compatible string to indicate the integration difference, since the hardware is different. Signed-off-by: Florian Fainelli arch/arm/boot/dts/bcm63138.dtsi | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) commit 7160aa1e5cdfb3fb8c0b6addb40c5f0e60cb0de0 Author: Florian Fainelli Date: Thu Oct 29 18:23:18 2015 -0700 clk: bcm: Add BCM63138 clock support BCM63138 has a simple clocking domain which is primarily the ARMPLL clocking complex, from which the ARM (CPU), APB and AXI clocks would be derived from. Since the ARMPLL controller is entirely compatible with the iProc ARM PLL, we just initialize it without additional parameters. Signed-off-by: Florian Fainelli Signed-off-by: Stephen Boyd drivers/clk/bcm/Kconfig | 10 ++++++++++ drivers/clk/bcm/Makefile | 1 + drivers/clk/bcm/clk-bcm63xx.c | 22 ++++++++++++++++++++++ 3 files changed, 33 insertions(+) commit 5d3dc3938ee4649cbc47d1fd6f5716e798782ea5 Author: Florian Fainelli Date: Thu Oct 29 18:23:17 2015 -0700 clk: iproc: Extend binding to cover BCM63138 Broadcom BCM63138 DSL SoCs have the same ARMPLL clocking infrastructure as the Cygnus and iProc chips, add a dedicated compatible string and document that the ARMPLL node is a valid node for this chip. Acked-by: Rob Herring Signed-off-by: Florian Fainelli Signed-off-by: Stephen Boyd Documentation/devicetree/bindings/clock/brcm,iproc-clocks.txt | 5 +++++ 1 file changed, 5 insertions(+) commit 0fe3e204168fbdbcbb5cd461739621e5e6f9016c Merge: 0d76d6e e57968a Author: David S. Miller Date: Sun Dec 6 22:40:46 2015 -0500 Merge branch 'mlx4-HA-LAG-SRIOV-VF' Or Gerlitz says: ==================== Add HA and LAG support for mlx4 SRIOV VFs This series is built upon the code added in commit ce388ff "Merge branch 'mlx4-next'" which added HA and LAG support to mlx4 RoCE and SRIOV services. We add HA and Link Aggregation support to single ported mlx4 Ethernet VFs. In this case, the PF Ethernet interfaces are bonded, the VFs see single port HW devices (already supported) -- however, now this port is highly available. This means that all VF HW QPs (both VF Ethernet driver and VF RoCE / RAW QPs) are subject to the V2P (Virtual-To-Physical) mapping which is managed by the PF driver, and hence resilient across link failures and such events. When bonding operates in Dynamic link aggregation (802.3ad) mode, traffic from each VF will go over the VF "base port" (the port this VF is assigned to by the admin) as long as this port is up. When the port fails, traffic from all VFs that are defined on this port will move to the other port, and be back to their base-port when it recovers. Moni and Or. ==================== Signed-off-by: David S. Miller commit e57968a10bc1b3da6d2b8b0bdbbe4c5a43de2ad1 Author: Moni Shoua Date: Sun Dec 6 18:07:43 2015 +0200 net/mlx4_core: Support the HA mode for SRIOV VFs too When the mlx4 driver runs in HA mode, and all VFs are single ported ones, we make their single port Highly-Available. This is done by taking advantage of the HA mode properties (following bonding changes with programming the port V2P map, etc) and adding the missing parts which are unique to SRIOV such as mirroring VF steering rules on both ports. Due to limits on the MAC and VLAN table this mode is enabled only when number of total VFs is under 64. Signed-off-by: Moni Shoua Reviewed-by: Jack Morgenstein Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/main.c | 107 +++++++++++++++++++++++++++--- 1 file changed, 97 insertions(+), 10 deletions(-) commit f1b4e12a9ab6cc08b1a047bf021d90c7e07b1517 Author: Or Gerlitz Date: Sun Dec 6 18:07:42 2015 +0200 IB/mlx4: Use the VF base-port when demuxing mad from wire Under HA mode, it's possible that the VF registered its GID (and expects to get mads through the PV scheme) on a port which is different from the one this mad arrived on, due to HA fail over. Therefore, if the gid is not matched on the port that the packet arrived on, check for a match on the other port if HA mode is active -- and if a match is found on the other port, continue processing the mad using that other port. Signed-off-by: Or Gerlitz Reviewed-by: Jack Morgenstein Signed-off-by: David S. Miller drivers/infiniband/hw/mlx4/mad.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) commit 5f61385d2ebc2bd62bc389c7da0d8d2f263be1eb Author: Moni Shoua Date: Sun Dec 6 18:07:41 2015 +0200 net/mlx4_core: Keep VLAN/MAC tables mirrored in multifunc HA mode Due to HW limitations, indexes to MAC and VLAN tables are always taken from the table of the actual port. So, if a resource holds an index to a table, it may refer to different values during the lifetime of the resource, unless the tables are mirrored. Also, even when driver is not in HA mode the policy of allocating an index to these tables is such to make sure, as much as possible, that when the time comes the mirroring will be successful. This means that in multifunction mode the allocation of a free index in a port's table tries to make sure that the same index in the other's port table is also free. Signed-off-by: Moni Shoua Reviewed-by: Jack Morgenstein Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/mlx4.h | 6 + drivers/net/ethernet/mellanox/mlx4/port.c | 598 ++++++++++++++++++++++++++++-- include/linux/mlx4/driver.h | 5 + 3 files changed, 586 insertions(+), 23 deletions(-) commit 78efed275117b189f06f8937798eab5cba53ed18 Author: Moni Shoua Date: Sun Dec 6 18:07:40 2015 +0200 net/mlx4_core: Support mirroring VF DMFS rules on both ports Under HA mode, steering rules set by VFs should be mirrored on both ports of the device so packets will be accepted no matter on which port they arrived. Since getting into HA mode is done dynamically when the user bonds mlx4 Ethernet netdevs, we keep hold of the VF DMFS rule mbox with the port value flipped (1->2,2->1) and execute the mirroring when getting into HA mode. Later, when going out of HA mode, we unset the mirrored rules. In that context note that mirrored rules cannot be removed explicitly. Signed-off-by: Moni Shoua Reviewed-by: Jack Morgenstein Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/mlx4.h | 2 + .../net/ethernet/mellanox/mlx4/resource_tracker.c | 193 ++++++++++++++++++++- 2 files changed, 186 insertions(+), 9 deletions(-) commit 8d80d04a521d4acf949a449403040c38ec648f57 Author: Moni Shoua Date: Sun Dec 6 18:07:39 2015 +0200 net/mlx4_core: Use both physical ports to dispatch link state events to VF Under HA mode, the link down event should be sent to VFs only if both ports are down. Signed-off-by: Moni Shoua Reviewed-by: Jack Morgenstein Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/eq.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) commit e34305c85f86112838cb332696513bed8e04a211 Author: Or Gerlitz Date: Sun Dec 6 18:07:38 2015 +0200 net/mlx4_core: Use both physical ports to set the VF link state In HA mode, the link state for VFs for which the policy is "auto" (i.e. follow the physical link state) should be ORed from both ports. Signed-off-by: Or Gerlitz Reviewed-by: Jack Morgenstein Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/fw.c | 12 +++++++++++- drivers/net/ethernet/mellanox/mlx4/fw.h | 1 + 2 files changed, 12 insertions(+), 1 deletion(-) commit 0d76d6e8b2507983a2cae4c09880798079007421 Author: Julia Lawall Date: Sun Dec 6 06:56:23 2015 +0100 VSOCK: fix returnvar.cocci warnings Remove unneeded variable used to store return value. Generated by: scripts/coccinelle/misc/returnvar.cocci CC: Asias He Signed-off-by: Fengguang Wu Signed-off-by: Julia Lawall Reviewed-by: Stefan Hajnoczi Signed-off-by: David S. Miller drivers/vhost/vsock.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 6c730080e663b1d629f8aa89348291fbcdc46cd9 Author: Bjørn Mork Date: Sun Dec 6 21:25:50 2015 +0100 net: qmi_wwan: should hold RTNL while changing netdev type The notifier calls were thrown in as a last-minute fix for an imagined "this device could be part of a bridge" problem. That revealed a certain lack of locking. Not to mention testing... Avoid this splat: RTNL: assertion failed at net/core/dev.c (1639) CPU: 0 PID: 4293 Comm: bash Not tainted 4.4.0-rc3+ #358 Hardware name: LENOVO 2776LEG/2776LEG, BIOS 6EET55WW (3.15 ) 12/19/2011 0000000000000000 ffff8800ad253d60 ffffffff8122f7cf ffff8800ad253d98 ffff8800ad253d88 ffffffff813833ab 0000000000000002 ffff880230f48560 ffff880230a12900 ffff8800ad253da0 ffffffff813833da 0000000000000002 Call Trace: [] dump_stack+0x4b/0x63 [] call_netdevice_notifiers_info+0x3d/0x59 [] call_netdevice_notifiers+0x13/0x15 [] raw_ip_store+0x81/0x193 [qmi_wwan] [] dev_attr_store+0x20/0x22 [] sysfs_kf_write+0x49/0x50 [] kernfs_fop_write+0x10a/0x151 [] __vfs_write+0x26/0xa5 [] ? percpu_down_read+0x53/0x7f [] ? __sb_start_write+0x5f/0xb0 [] ? __sb_start_write+0x5f/0xb0 [] vfs_write+0xa3/0xe7 [] SyS_write+0x50/0x7e [] entry_SYSCALL_64_fastpath+0x12/0x6f Fixes: 32f7adf633b9 ("net: qmi_wwan: support "raw IP" mode") Signed-off-by: Bjørn Mork Signed-off-by: David S. Miller drivers/net/usb/qmi_wwan.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) commit 5d92b75c753ae27578ee764df3be650c67fa5877 Author: Andreas Gruenbacher Date: Wed Dec 2 14:44:40 2015 +0100 xfs: Change how listxattr generates synthetic attributes Instead of adding the synthesized POSIX ACL attribute names after listing all non-synthesized attributes, generate them immediately when listing the non-synthesized attributes. In addition, merge xfs_xattr_put_listent and xfs_xattr_put_listent_sizes to ensure that the list size is computed correctly; the split version was overestimating the list size for non-root users. Signed-off-by: Andreas Gruenbacher Cc: Dave Chinner Cc: xfs@oss.sgi.com Signed-off-by: Al Viro fs/xfs/xfs_acl.c | 23 --------- fs/xfs/xfs_acl.h | 4 -- fs/xfs/xfs_xattr.c | 137 +++++++++++++++++++++++------------------------------ 3 files changed, 59 insertions(+), 105 deletions(-) commit 786534b92f3ce68f4afc8a761c80b76887797b0a Author: Andreas Gruenbacher Date: Wed Dec 2 14:44:39 2015 +0100 tmpfs: listxattr should include POSIX ACL xattrs When a file on tmpfs has an ACL or a Default ACL, listxattr should include the corresponding xattr name. Signed-off-by: Andreas Gruenbacher Reviewed-by: James Morris Cc: Hugh Dickins Cc: linux-mm@kvack.org Signed-off-by: Al Viro fs/kernfs/inode.c | 2 +- fs/xattr.c | 53 +++++++++++++++++++++++++++++++++++---------------- include/linux/xattr.h | 3 ++- mm/shmem.c | 2 +- 4 files changed, 41 insertions(+), 19 deletions(-) commit aa7c5241c380adb7e6913549292c1b83c1469bda Author: Andreas Gruenbacher Date: Wed Dec 2 14:44:38 2015 +0100 tmpfs: Use xattr handler infrastructure Use the VFS xattr handler infrastructure and get rid of similar code in the filesystem. For implementing shmem_xattr_handler_set, we need a version of simple_xattr_set which removes the attribute when value is NULL. Use this to implement kernfs_iop_removexattr as well. Signed-off-by: Andreas Gruenbacher Reviewed-by: James Morris Cc: Hugh Dickins Cc: linux-mm@kvack.org Signed-off-by: Al Viro fs/kernfs/inode.c | 2 +- fs/xattr.c | 48 ++++++------------ include/linux/xattr.h | 4 +- mm/shmem.c | 131 ++++++++++++++++---------------------------------- 4 files changed, 60 insertions(+), 125 deletions(-) commit 9172abbcd371f2f62903087bbd228f11d380b7b4 Author: Andreas Gruenbacher Date: Wed Dec 2 14:44:37 2015 +0100 btrfs: Use xattr handler infrastructure Use the VFS xattr handler infrastructure and get rid of similar code in the filesystem. Signed-off-by: Andreas Gruenbacher Reviewed-by: David Sterba Signed-off-by: Al Viro fs/btrfs/inode.c | 8 +-- fs/btrfs/xattr.c | 166 ++++++++++++++++++++----------------------------------- fs/btrfs/xattr.h | 2 - 3 files changed, 63 insertions(+), 113 deletions(-) commit 98e9cb5711c68223f0e4d5201b9a6add255ec550 Author: Andreas Gruenbacher Date: Wed Dec 2 14:44:36 2015 +0100 vfs: Distinguish between full xattr names and proper prefixes Add an additional "name" field to struct xattr_handler. When the name is set, the handler matches attributes with exactly that name. When the prefix is set instead, the handler matches attributes with the given prefix and with a non-empty suffix. This patch should avoid bugs like the one fixed in commit c361016a in the future. Signed-off-by: Andreas Gruenbacher Reviewed-by: James Morris Signed-off-by: Al Viro fs/9p/acl.c | 16 +++++----------- fs/9p/xattr.c | 4 ---- fs/ext2/xattr_security.c | 4 ---- fs/ext2/xattr_trusted.c | 4 ---- fs/ext2/xattr_user.c | 4 ---- fs/ext4/xattr_security.c | 4 ---- fs/ext4/xattr_trusted.c | 4 ---- fs/ext4/xattr_user.c | 4 ---- fs/f2fs/xattr.c | 20 ++++++-------------- fs/f2fs/xattr.h | 2 +- fs/hfsplus/xattr.c | 12 ------------ fs/jffs2/security.c | 6 ------ fs/jffs2/xattr_trusted.c | 4 ---- fs/jffs2/xattr_user.c | 4 ---- fs/nfs/nfs4proc.c | 8 +------- fs/ocfs2/xattr.c | 17 +---------------- fs/posix_acl.c | 10 +++------- fs/reiserfs/xattr.c | 3 ++- fs/squashfs/xattr.c | 3 --- fs/xattr.c | 27 +++++++++++++++++---------- fs/xfs/xfs_xattr.c | 6 ------ include/linux/xattr.h | 11 +++++++++++ 22 files changed, 47 insertions(+), 130 deletions(-) commit 97d79299223baab330b194437e676d301f12d5f6 Author: Andreas Gruenbacher Date: Wed Dec 2 14:44:35 2015 +0100 posix acls: Remove duplicate xattr name definitions Remove POSIX_ACL_XATTR_{ACCESS,DEFAULT} and GFS2_POSIX_ACL_{ACCESS,DEFAULT} and replace them with the definitions in . Signed-off-by: Andreas Gruenbacher Reviewed-by: James Morris Signed-off-by: Al Viro drivers/staging/lustre/lustre/llite/xattr.c | 4 ++-- fs/9p/acl.c | 12 ++++++------ fs/btrfs/acl.c | 8 ++++---- fs/btrfs/inode.c | 8 ++++---- fs/ceph/acl.c | 16 ++++++++-------- fs/cifs/xattr.c | 16 ++++++++-------- fs/gfs2/acl.c | 4 ++-- fs/gfs2/acl.h | 2 -- fs/hfsplus/posix_acl.c | 8 ++++---- fs/jfs/acl.c | 8 ++++---- fs/nfs/nfs3acl.c | 4 ++-- fs/posix_acl.c | 4 ++-- fs/reiserfs/xattr_acl.c | 8 ++++---- fs/xfs/xfs_xattr.c | 8 ++++---- include/linux/posix_acl_xattr.h | 6 +----- 15 files changed, 55 insertions(+), 61 deletions(-) commit 44cb0d3f778da6646f8e993245ee827a6b7df6d5 Author: Andreas Gruenbacher Date: Wed Dec 2 14:44:34 2015 +0100 gfs2: Remove gfs2_xattr_acl_chmod Function gfs2_xattr_acl_chmod is unused since commit e01580bf. Signed-off-by: Andreas Gruenbacher Reviewed-by: James Morris Acked-by: Bob Peterson Signed-off-by: Al Viro fs/gfs2/xattr.c | 50 -------------------------------------------------- fs/gfs2/xattr.h | 1 - 2 files changed, 51 deletions(-) commit 80602324d5a02fea97ed1328ba04e5d7f10aaff8 Author: Andreas Gruenbacher Date: Wed Dec 2 14:44:33 2015 +0100 vfs: Remove vfs_xattr_cmp This function was only briefly used in security/integrity/evm, between commits 66dbc325 and 15647eb3. Signed-off-by: Andreas Gruenbacher Reviewed-by: James Morris Signed-off-by: Al Viro fs/xattr.c | 19 ------------------- include/linux/xattr.h | 2 -- 2 files changed, 21 deletions(-) commit e1a63bbc40c00d5198b1c1d133b139e962f5e872 Author: Al Viro Date: Sat Dec 5 21:06:33 2015 -0500 restore_nameidata(): no need to clear now->stack microoptimization: in all callers *now is in the frame we are about to leave. Signed-off-by: Al Viro fs/namei.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 248fb5b9557aa117f0b8c68b8cf2ce436e4d839d Author: Al Viro Date: Sat Dec 5 20:51:58 2015 -0500 namei.c: take "jump to root" into a new helper ... and use it both in path_init() (for absolute pathnames) and get_link() (for absolute symlinks). Signed-off-by: Al Viro fs/namei.c | 54 ++++++++++++++++++++++++++---------------------------- 1 file changed, 26 insertions(+), 28 deletions(-) commit ef55d91700d54f29b9ac301658b5b8f377ef3206 Author: Al Viro Date: Sat Dec 5 20:25:06 2015 -0500 path_init(): set nd->inode earlier in cwd-relative case that allows to kill the recheck of nd->seq on the way out in this case, and this check on the way out is left only for absolute pathnames. Signed-off-by: Al Viro fs/namei.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) commit 9e6697e26f9888cdb6088664d31c3772b0dff0a4 Author: Al Viro Date: Sat Dec 5 20:07:21 2015 -0500 namei.c: fold set_root_rcu() into set_root() Signed-off-by: Al Viro fs/namei.c | 44 ++++++++++++++++++++------------------------ 1 file changed, 20 insertions(+), 24 deletions(-) commit 0e81ba231239b58c8b17dca18c6345c13e793824 Author: Al Viro Date: Sat Dec 5 18:23:48 2015 -0500 don't opencode iget_failed() Signed-off-by: Al Viro drivers/staging/lustre/lustre/llite/namei.c | 4 +--- fs/ecryptfs/inode.c | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) commit 886f56f970f9c1563503cd71a572ba082b6a035b Author: Al Viro Date: Sat Dec 5 03:56:06 2015 -0500 f2fs: it's umode_t, not mode_t... Signed-off-by: Al Viro fs/f2fs/f2fs.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 57e3715cfa3fb01581555934d7191f8eabf740f4 Author: Mike Marshall Date: Mon Nov 30 11:11:59 2015 -0500 typo in fs/namei.c comment Signed-off-by: Al Viro fs/namei.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dfbf53ed548e838ab933d1a7072ffc38cba3bae8 Author: Al Viro Date: Thu Nov 26 23:24:14 2015 -0500 vgaarb: remove bogus checks neither ->release() nor ->poll() can be called unless ->open() has succeeded on the same struct file, so checking for "has open() failed" is pointless. What's more, ->poll() doesn't return -E... - it always returns a bitmap of POLL... values, so the dead code in that one had been actively bogus. Signed-off-by: Al Viro drivers/gpu/vga/vgaarb.c | 7 ------- 1 file changed, 7 deletions(-) commit 03927c8acb63100046260711c06ba28b6b5936fb Author: Arnd Bergmann Date: Wed Nov 25 16:22:25 2015 +0100 coredump: Use 64bit time for unix time of coredump struct timeval on 32-bit systems will have its tv_sec value overflow in year 2038 and beyond. Use a 64 bit value to print time of the coredump in seconds. ktime_get_real_seconds is chosen here for efficiency reasons. Suggested by: Arnd Bergmann Signed-off-by: Tina Ruchandani Signed-off-by: Arnd Bergmann Signed-off-by: Al Viro fs/coredump.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 0125f504ed320826a78b43d636de957d703465a8 Author: Julia Lawall Date: Sat Nov 21 16:15:37 2015 +0100 adfs: constify adfs_dir_ops structures The adfs_dir_ops structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Al Viro fs/adfs/adfs.h | 6 +++--- fs/adfs/dir.c | 6 +++--- fs/adfs/dir_f.c | 2 +- fs/adfs/dir_fplus.c | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) commit b896fb35ca904fe5b7765fcd81a45f09a62e8d03 Author: Dmitry V. Levin Date: Thu Nov 19 00:58:32 2015 +0300 vfs: show_vfsstat: remove redundant initialization and check of error code As err variable is now always checked right after each assignment, its initialization is redundant and could be safely removed. For the same reason, the last check of err is also redundant and could be removed as well. Signed-off-by: Dmitry V. Levin Signed-off-by: Al Viro fs/proc_namespace.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 6ce4bca0adfde9ee404ce659d110f2bdeff9c13b Author: Dmitry V. Levin Date: Thu Nov 19 00:58:20 2015 +0300 vfs: show_mountinfo: cleanup error code checks Check err variable right after each assignment. This change makes initialization of err redundant, so remove the initialization. Signed-off-by: Dmitry V. Levin Signed-off-by: Al Viro fs/proc_namespace.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) commit 5d9f3c7b620f6d1d9555223817bdfddfbd4b93a0 Author: Dmitry V. Levin Date: Thu Nov 19 00:57:52 2015 +0300 vfs: show_vfsmnt: remove redundant initialization of error code As err variable is now always checked right after the first assignment, its initialization is redundant and could be safely removed. Signed-off-by: Dmitry V. Levin Signed-off-by: Al Viro fs/proc_namespace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d37177bacdf7cbcdb23a513cbb475fa241f8083c Author: Yaowei Bai Date: Thu Nov 19 21:00:12 2015 +0800 fs/attr.c: is_sxid can be boolean This patch makes is_sxid return bool to improve readability due to this particular function only using either one or zero as its return value. No functional change. Signed-off-by: Yaowei Bai Signed-off-by: Al Viro include/linux/fs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0e3ef1fe453c9f29c30d040cd2559c5cac724e93 Author: Yaowei Bai Date: Thu Nov 19 21:00:11 2015 +0800 fs/bad_inode.c: is_bad_inode can be boolean This patch makes is_bad_inode return bool to improve readability due to this particular function only using either one or zero as its return value. No functional change. Signed-off-by: Yaowei Bai Signed-off-by: Al Viro fs/bad_inode.c | 2 +- include/linux/fs.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit a6e5787fc8fc9c88290a7bceed07aa4d14029fa7 Author: Yaowei Bai Date: Tue Nov 17 14:40:11 2015 +0800 fs/dcache.c: is_subdir can be boolean This patch makes is_subdir return bool to improve readability due to this particular function only using either one or zero as its return value. No functional change. Signed-off-by: Yaowei Bai Signed-off-by: Al Viro fs/dcache.c | 14 +++++++------- include/linux/fs.h | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) commit 25ab4c9b1ccb64b1433cecd3f19f28fe300c1576 Author: Yaowei Bai Date: Tue Nov 17 14:40:10 2015 +0800 fs/namespace.c: path_is_under can be boolean This patch makes path_is_under return bool to improve readability due to this particular function only using either one or zero as its return value. No functional change. Signed-off-by: Yaowei Bai Signed-off-by: Al Viro fs/namespace.c | 4 ++-- include/linux/fs.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 3e004eea56b4f2cb6768ebe9000c830eda0c71b1 Author: Yaowei Bai Date: Tue Nov 17 14:40:09 2015 +0800 fs/block_dev.c: make sb_is_blkdev_sb return bool when CONFIG_BLOCK undefined Currently when CONFIG_BLOCK is defined sb_is_blkdev_sb returns bool, while when CONFIG_BLOCK is not defined it returns int. Let's keep consistent to make sb_is_blkdev_sb return bool as well when CONFIG_BLOCK isn't defined. No functional change. Signed-off-by: Yaowei Bai Signed-off-by: Al Viro include/linux/fs.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 42a561e56fb9b581a4adb89efe54a387e3d4dc1b Author: Julia Lawall Date: Sat Nov 14 13:30:34 2015 +0100 lustre: constify inode_operations structures The inode_operations structures are never modified, so declare them as const, like all the other inode_operations structures. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Al Viro drivers/staging/lustre/lustre/llite/file.c | 2 +- drivers/staging/lustre/lustre/llite/llite_internal.h | 4 ++-- drivers/staging/lustre/lustre/llite/symlink.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit 752343be63d90c84d275f046e43371febe217863 Author: Rasmus Villemoes Date: Thu Oct 29 12:01:41 2015 +0100 fs/file.c: __const_max is actually __const_min :-) 7f4b36f9bb930 "get rid of files_defer_init()" inexplicably changed a min() to a __const_max() - but the __const_max macro actually gives the minimum... So no functional change, just less confusing naming. Signed-off-by: Rasmus Villemoes Signed-off-by: Al Viro fs/file.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 474fe9f7f551b151222db07a968b15bf05ffe4c4 Author: Al Viro Date: Sun Jul 12 21:06:44 2015 -0400 9p/trans_virtio: don't bother with p9_tag_lookup() Just store the pointer to req instead of that to req->tc as opaque data. Signed-off-by: Al Viro net/9p/trans_virtio.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit aa80deab33a8fb180e718f5e45514db19aade165 Author: Al Viro Date: Mon Nov 16 18:26:34 2015 -0500 namei: page_getlink() and page_follow_link_light() are the same thing Signed-off-by: Al Viro fs/namei.c | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) commit 9cdce3c074fbd7083923f15225e112a91daff8ed Author: Al Viro Date: Sun Nov 15 18:24:17 2015 -0500 ufs: get rid of ->setattr() for symlinks It was to needed for a couple of months in 2010, until UFS quota support got dropped. Since then it's equivalent to simple_setattr() (i.e. the default) for everything except the regular files. And dropping it there allows to convert all UFS symlinks to {page,simple}_symlink_inode_operations, getting rid of fs/ufs/symlink.c completely. Signed-off-by: Al Viro fs/ufs/Makefile | 2 +- fs/ufs/inode.c | 4 ++-- fs/ufs/namei.c | 4 ++-- fs/ufs/symlink.c | 42 ------------------------------------------ fs/ufs/ufs.h | 4 ---- 5 files changed, 5 insertions(+), 51 deletions(-) commit c73119c58fef2590e0a2bef959a12cff7a07874b Author: Al Viro Date: Fri Nov 13 20:33:18 2015 -0500 udf: don't duplicate page_symlink_inode_operations Signed-off-by: Al Viro fs/udf/inode.c | 2 +- fs/udf/namei.c | 7 +------ fs/udf/udfdecl.h | 1 - 3 files changed, 2 insertions(+), 8 deletions(-) commit fb417f13aec5f202d35fce9bc7b654e1d3a749e8 Author: Al Viro Date: Fri Nov 13 17:23:54 2015 -0500 logfs: don't duplicate page_symlink_inode_operations Signed-off-by: Al Viro fs/logfs/dir.c | 8 +------- fs/logfs/inode.c | 2 +- fs/logfs/logfs.h | 1 - 3 files changed, 2 insertions(+), 9 deletions(-) commit 11803f97f0da4487ab947a975e5817fdc62a23e0 Author: Al Viro Date: Fri Nov 13 06:57:13 2015 -0500 switch befs long symlinks to page_symlink_operations just give them the right ->readpage()... Signed-off-by: Al Viro fs/befs/linuxvfs.c | 41 ++++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 19 deletions(-) commit e12675853d717ce8de7d91089cc1a95bb8525f6c Author: Al Viro Date: Sun Dec 6 20:38:56 2015 -0500 iov_iter: export import_single_range() Signed-off-by: Al Viro lib/iov_iter.c | 1 + 1 file changed, 1 insertion(+) commit 36f7a8a4cd2e99b7172ab8ed2130c5c841466824 Author: Al Viro Date: Sun Dec 6 16:49:22 2015 -0500 iov_iter: constify {csum_and_,}copy_to_iter() Signed-off-by: Al Viro include/linux/uio.h | 4 ++-- lib/iov_iter.c | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) commit 4c5301abbf81f4351416cec1e8a02647d96e6fd1 Author: Mika Westerberg Date: Mon Nov 30 17:11:44 2015 +0200 i2c: designware: Convert to use unified device property API With ACPI _DSD (introduced in ACPI v5.1) it is now possible to pass device configuration information from ACPI in addition to DT. In order to support this, convert the driver to use the unified device property accessors instead of DT specific. Change to ordering a bit so that we first try platform data and if that's not available look from device properties. ACPI *CNT methods are then used as last resort to override everything else. Signed-off-by: Mika Westerberg Signed-off-by: Andy Shevchenko Acked-by: Jarkko Nikula Acked-by: Wolfram Sang Signed-off-by: Rafael J. Wysocki drivers/i2c/busses/i2c-designware-platdrv.c | 50 +++++++++++++---------------- 1 file changed, 23 insertions(+), 27 deletions(-) commit ec14c5395dfbc1d40a49c9f19d2bfde6739d89d5 Author: Andy Shevchenko Date: Mon Nov 30 17:11:43 2015 +0200 mfd: intel-lpss: Pass HSUART configuration via properties The HS-UART host controller driver needs to know certain properties like width of the register set if it cannot get that information from ACPI or DT. In order to support non-ACPI systems we pass this information to the driver via device properties. Signed-off-by: Mika Westerberg Signed-off-by: Andy Shevchenko Signed-off-by: Rafael J. Wysocki drivers/mfd/intel-lpss-pci.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 028af5941dd870afd5eb6a95c39f25564dcca79a Author: Mika Westerberg Date: Mon Nov 30 17:11:42 2015 +0200 mfd: intel-lpss: Pass SDA hold time to I2C host controller driver Intel Skylake the LPSS I2C pad circuit has internal delays that require programming non-zero SDA hold time for the I2C host controller. If this is not done communication to slave devices may fail with arbitration lost errors like the one seen below taken from Lenovo Yoga 900: i2c_hid i2c-SYNA2B29:00: Fetching the HID descriptor i2c_hid i2c-SYNA2B29:00: __i2c_hid_command: cmd=20 00 i2c_designware i2c_designware.1: i2c_dw_handle_tx_abort: lost arbitration To fix this we follow what the Windows driver is doing and pass the default SDA hold time of 230 ns to all Intel Skylake host controllers. This still allows the platform to override these values by passing special ACPI methods SSCN and FMCN. Reported-by: Kevin Fenzi Signed-off-by: Mika Westerberg Signed-off-by: Andy Shevchenko Signed-off-by: Rafael J. Wysocki drivers/mfd/intel-lpss-acpi.c | 19 +++++++++++++++++-- drivers/mfd/intel-lpss-pci.c | 31 +++++++++++++++++++++++-------- 2 files changed, 40 insertions(+), 10 deletions(-) commit e15ad2154b6166804fc04487e0398c9aef9e7c97 Author: Mika Westerberg Date: Mon Nov 30 17:11:41 2015 +0200 mfd: intel-lpss: Add support for passing device properties If the boot firmware does not support ACPI we need a way to pass device configuration information to the drivers. The unified device properties API already supports passing platform data via properties so let's take advantage of that and allow probe drivers to pass set of properties to the host controller driver. In order to do that we need to be able to modify the MFD cell corresponding the host controller, so make the core driver to take copy of the cell instead of using it directly. Then we can assign info->pset to the resulting copy of a cell and let the MFD core to assign that to the resulting device. Signed-off-by: Mika Westerberg Signed-off-by: Andy Shevchenko Signed-off-by: Rafael J. Wysocki drivers/mfd/intel-lpss.c | 16 ++++++++++++---- drivers/mfd/intel-lpss.h | 2 ++ 2 files changed, 14 insertions(+), 4 deletions(-) commit 4d215cabc784990df11fbcca7af70adf53c9ff17 Author: Andy Shevchenko Date: Mon Nov 30 17:11:40 2015 +0200 mfd: core: propagate device properties to sub devices drivers In the similar way like we do for the platform data we propagate the device properties. For example, in case of Intel LPSS drivers we may provide a specific property to tell the actual device driver an additional information such as platform name. Signed-off-by: Andy Shevchenko Signed-off-by: Rafael J. Wysocki drivers/mfd/mfd-core.c | 7 +++++++ include/linux/mfd/core.h | 5 +++++ 2 files changed, 12 insertions(+) commit 55f89a8a4538803195395bdf347cbba51dcb1906 Author: Mika Westerberg Date: Mon Nov 30 17:11:39 2015 +0200 driver core: Do not overwrite secondary fwnode with NULL if it is set If multiple devices share single firmware node like it is case with MFD devices, the same firmware node (ACPI) is assigned to all of them. The function also modifies the shared firmware node in order to preserve secondary firmware node of the device in question. If the new device which is sharing the firmware node does not have secondary node it will be NULL which will be assigned to the secondary node of the shared firmware node losing all built-in properties. Prevent this by setting the secondary firmware node only if the replacement is non-NULL. Print also warning if someone tries to overwrite secondary node that has already been assigned. Signed-off-by: Mika Westerberg Signed-off-by: Andy Shevchenko Signed-off-by: Rafael J. Wysocki drivers/base/core.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 00bbc1d8e46a92ce7bd80622cf4b09c3b727a741 Author: Mika Westerberg Date: Mon Nov 30 17:11:38 2015 +0200 driver core: platform: Add support for built-in device properties Make it possible to pass built-in device properties to platform device drivers. This is useful if the system does not have any firmware interface like Device Tree or ACPI which provides these. Properties associated with the platform device will be automatically released when the corresponding device is removed. Suggested-by: Arnd Bergmann Signed-off-by: Mika Westerberg Signed-off-by: Andy Shevchenko Signed-off-by: Rafael J. Wysocki drivers/base/platform.c | 25 +++++++++++++++++++++++++ include/linux/platform_device.h | 5 +++++ 2 files changed, 30 insertions(+) commit 13141e1cb842ad6286c1cfa9a6b7c1577478d03b Author: Mika Westerberg Date: Mon Nov 30 17:11:37 2015 +0200 device property: Take a copy of the property set It is convenient if the property set associated with the device secondary firmware node is a copy of the original. This allows passing property set from a stack for example for devices created dynamically. This also ties the property set lifetime to the associated device. Because of that we provide new function device_remove_property_set() that is used to disassociate and release memory allocated for the property set. Signed-off-by: Mika Westerberg Signed-off-by: Andy Shevchenko Signed-off-by: Rafael J. Wysocki drivers/base/property.c | 191 ++++++++++++++++++++++++++++++++++++++++++----- include/linux/property.h | 3 +- 2 files changed, 175 insertions(+), 19 deletions(-) commit 362c0b30249e8639489b428ff5acc4a9d81c087f Author: Andy Shevchenko Date: Mon Nov 30 17:11:36 2015 +0200 device property: Fallback to secondary fwnode if primary misses the property The struct fwnode has notion of secondary fwnode. This is supposed to used as fallback if the primary firmware interface (DT, ACPI) does not have the property in question. However, the current implementation never checks the secondary node which prevents one to add default "built-in" properties to devices. This patch adds fallback to the secondary fwnode if the primary fwnode returns that the property does not exists. Signed-off-by: Mika Westerberg Signed-off-by: Andy Shevchenko Signed-off-by: Rafael J. Wysocki drivers/base/property.c | 109 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 78 insertions(+), 31 deletions(-) commit 3c60f1149a2fee9ac4ef3cc27bd830e3bd8d2654 Author: Andy Shevchenko Date: Mon Nov 30 17:11:35 2015 +0200 device property: return -EINVAL when property isn't found in ACPI Change return code to be in align with OF and built-in device properties error codes. In particular -EINVAL means property is not found. Signed-off-by: Andy Shevchenko Signed-off-by: Rafael J. Wysocki drivers/acpi/property.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 1d656fb757c17e48a8a01bd576d14918701ba55c Author: Andy Shevchenko Date: Mon Nov 30 17:11:34 2015 +0200 device property: improve readability of macros There is no functional change. Signed-off-by: Andy Shevchenko Signed-off-by: Rafael J. Wysocki drivers/base/property.c | 28 ++++++++++++++-------------- include/linux/property.h | 4 ++-- 2 files changed, 16 insertions(+), 16 deletions(-) commit a85f420475334caed12b057ddcaa0b58e0b1ebb7 Author: Heikki Krogerus Date: Mon Nov 30 17:11:33 2015 +0200 device property: helper macros for property entry creation Marcos for easier creation of build-in property entries. Signed-off-by: Heikki Krogerus Signed-off-by: Andy Shevchenko Signed-off-by: Rafael J. Wysocki include/linux/property.h | 55 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) commit 66586baba56679baa2da1a10a96ccf15b1e96b95 Author: Andy Shevchenko Date: Mon Nov 30 17:11:32 2015 +0200 device property: keep single value inplace We may save a lot of lines of code and space by keeping single values inside the struct property_entry. Refactor the implementation to do so. Signed-off-by: Andy Shevchenko Signed-off-by: Rafael J. Wysocki drivers/base/property.c | 33 ++++++++++++++++++++++++++++++--- include/linux/property.h | 31 +++++++++++++++++++++++-------- 2 files changed, 53 insertions(+), 11 deletions(-) commit 318a1971826103ecf560875b17236dd4a93e8c88 Author: Andy Shevchenko Date: Mon Nov 30 17:11:31 2015 +0200 device property: refactor built-in properties support Instead of using the type and nval fields we will use length (in bytes) of the value. The sanity check is done in the accessors. The built-in property accessors are split in the same way such as device tree. Signed-off-by: Andy Shevchenko Signed-off-by: Rafael J. Wysocki drivers/base/property.c | 150 ++++++++++++++++++++++++++++++++++------------- include/linux/property.h | 8 +-- 2 files changed, 113 insertions(+), 45 deletions(-) commit 61f5e294b89a90e8520c9eaf9a4af787db8911ea Author: Andy Shevchenko Date: Mon Nov 30 17:11:30 2015 +0200 device property: rename helper functions To be in align with the rest of fwnode types we rename the built-in property set ones, i.e. is_pset() -> is_pset_node() to_pset() -> to_pset_node() There is no functional change. Signed-off-by: Andy Shevchenko Signed-off-by: Rafael J. Wysocki drivers/base/property.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit e3f9e299bf94298ddd8beb63c0786a4d7766dc86 Author: Andy Shevchenko Date: Mon Nov 30 17:11:29 2015 +0200 device property: always check for fwnode type Currently the property accessors unconditionally fall back to built-in property set as a last resort. Make this strict and return an error in case the type of fwnode is unknown. This is actually a follow up to the commit 4fa7508e9f1c (device property: Return -ENXIO if there is no suitable FW interface). Signed-off-by: Andy Shevchenko Signed-off-by: Rafael J. Wysocki drivers/base/property.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 5e4500d8dba16d88b528cf037566b84747ec23f0 Author: Viresh Kumar Date: Thu Dec 3 09:37:52 2015 +0530 cpufreq: governor: initialize/destroy timer_mutex with 'shared' timer_mutex is required to be initialized only while memory for 'shared' is allocated and in a similar way it is required to be destroyed only when memory for 'shared' is freed. There is no need to do the same every time we start/stop the governor. Move code to initialize/destroy timer_mutex to the relevant places. Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq_governor.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit affde5d06af1e39c2929e36a063e3912f02fc58f Author: Viresh Kumar Date: Thu Dec 3 09:37:51 2015 +0530 cpufreq: governor: Pass policy as argument to ->gov_dbs_timer() Pass 'policy' as argument to ->gov_dbs_timer() instead of cdbs and dbs_data. Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq_conservative.c | 6 +++--- drivers/cpufreq/cpufreq_governor.c | 2 +- drivers/cpufreq/cpufreq_governor.h | 3 +-- drivers/cpufreq/cpufreq_ondemand.c | 5 ++--- 4 files changed, 7 insertions(+), 9 deletions(-) commit e68fe18c5b5442baca162ccf3b273326e6132a51 Author: Viresh Kumar Date: Thu Dec 3 09:37:50 2015 +0530 cpufreq: ondemand: Work is guaranteed to be pending We are guaranteed to have works scheduled for policy->cpus, as the policy isn't stopped yet. And so there is no need to check that again. Drop it. Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq_ondemand.c | 3 --- 1 file changed, 3 deletions(-) commit e128c864070055e062f6c90c64c03aad18452ac3 Author: Viresh Kumar Date: Thu Dec 3 09:37:49 2015 +0530 cpufreq: ondemand: Update sampling rate only for concerned policies We are comparing policy->governor against cpufreq_gov_ondemand to make sure that we update sampling rate only for the concerned CPUs. But that isn't enough. In case of governor_per_policy, there can be multiple instances of ondemand governor and we will always end up updating all of them with current code. What we rather need to do, is to compare dbs_data with poilcy->governor_data, which will match only for the policies governed by dbs_data. This code is also racy as the governor might be getting stopped at that time and we may end up scheduling work for a policy, which we have just disabled. Fix that by protecting the entire function with &od_dbs_cdata.mutex, which will prevent against races with policy START/STOP/etc. After these locks are in place, we can safely get the policy via per-cpu dbs_info. Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq_ondemand.c | 35 ++++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) commit d89d7ff9edf58cbf8ad0f490694b2edea8eb3a39 Merge: 7b06a6d 013c074 5de85b9 Author: Rafael J. Wysocki Date: Mon Dec 7 02:17:17 2015 +0100 Merge branches 'pm-sleep' and 'pm-runtime' into pm-core commit 7b06a6d7bff563d82ddf8769617632f26793a83e Author: Rafael J. Wysocki Date: Sat Dec 5 01:54:47 2015 +0100 MAINTAINERS: Add an entry for the PM core Add a MAINTAINERS entry for the PM core with myself as the maintainer and linux-pm as the mailing list. This actually documents the current state of things. Signed-off-by: Rafael J. Wysocki Acked-by: Greg Kroah-Hartman MAINTAINERS | 11 +++++++++++ 1 file changed, 11 insertions(+) commit ce657b1cddf1f88c56ae683efa7130341c92808b Author: Russell King Date: Tue Nov 17 12:08:01 2015 +0000 component: add support for releasing match data The component helper treats the void match data pointer as an opaque object which needs no further management. When device nodes being passed, this is not true: the caller should pass its refcount to the component helper, and there should be a way to drop the refcount when the matching information is destroyed. This patch provides a per-match release method in addition to the match method to solve this issue. Rather than using component_match_add(), users should use component_match_add_release() which takes an additional function pointer for releasing this reference. Signed-off-by: Russell King drivers/base/component.c | 101 ++++++++++++++++++++++++++++++---------------- include/linux/component.h | 28 +++++++++---- 2 files changed, 87 insertions(+), 42 deletions(-) commit ffc30b74fd6d01588bd3fdebc3b1acc0857e6fc8 Author: Russell King Date: Fri Apr 18 23:05:53 2014 +0100 component: track components via array rather than list Since we now have an array which defines each component, maintain the components to be bound in the array rather than a separate list. We also need duplicate tracking so we can eliminate multiple bind calls for the same component: we preserve the list-based component order in that the first match which adds the component determines its position. Signed-off-by: Russell King drivers/base/component.c | 154 ++++++++++++++++++++++++----------------------- 1 file changed, 80 insertions(+), 74 deletions(-) commit 29f1c7fd61a31e0335ce41d4b2788959ad7c468d Author: Russell King Date: Wed Apr 23 10:46:11 2014 +0100 component: move check for unbound master into try_to_bring_up_masters() Clean up the code a little; we don't need to check that the master is unbound for every invocation of try_to_bring_up_master(), so let's move it to where it's really needed - try_to_bring_up_masters(), where we may encounter already bound masters. Reviewed-by: Thierry Reding Signed-off-by: Russell King drivers/base/component.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) commit fae9e2e07af07baabb8c26a31b3f7d8fdf89809e Author: Russell King Date: Fri Apr 18 22:10:32 2014 +0100 component: remove old add_components method Now that drivers create an array of component matches at probe time, we can retire the old methods. This involves removing the add_components master method, and removing component_master_add_child() from public view. We also remove component_add_master() as that interface is no longer useful. Acked-by: Andrew Lunn Signed-off-by: Russell King drivers/base/component.c | 31 +++++-------------------------- include/linux/component.h | 5 ----- 2 files changed, 5 insertions(+), 31 deletions(-) commit 6633d3815c099a0aaf28e4853f7a8994331b8c05 Author: Singhai, Anjali Date: Thu Dec 3 23:49:31 2015 -0800 Revert "i40e: remove CONFIG_I40E_VXLAN" This reverts commit 8fe269991aece394a7ed274f525d96c73f94109a. The case where VXLAN is a module and i40e driver is inbuilt will not be handled properly with this change since i40e will have an undefined symbol vxlan_get_rx_port in it. v2: Add a signed-off-by. Signed-off-by: Anjali Singhai Jain Acked-by: Jeff Kirsher Signed-off-by: David S. Miller drivers/net/ethernet/intel/Kconfig | 11 +++++++++++ drivers/net/ethernet/intel/i40e/i40e.h | 4 +++- drivers/net/ethernet/intel/i40e/i40e_main.c | 12 ++++++------ 3 files changed, 20 insertions(+), 7 deletions(-) commit b48565f50bf33e738e8660f26594b2feb2ad61cc Merge: b82583e 03d13a5 Author: David S. Miller Date: Sun Dec 6 11:14:06 2015 -0500 Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== 100GbE Intel Wired LAN Driver Updates 2015-12-05 This series contains updates to fm10k only. Jacob provides the remaining fm10k patches in the series. First change ensures that all the logic regarding the setting of netdev features is consolidated in one place of the driver. Fixed an issue where an assumption was being made on how many queues are available, especially when init_hw_vf() errors out. Fixed up an number of issues with init_hw() where failures were not being handled properly or at all, so update the driver to check returned error codes and respond appropriately. Fixed up typecasting issues found where either the incorrect typecast size was used or explicitly typecast values. Added additional debugging statistics and rename statistic to better reflect its true value. Added support for ITR scaling based on PCIe link speed for fm10k. Fixed up code comment where "hardware" was misspelled. v2: Dropped patches #1 and #10 from original submission, patch #1 was from Nick Krause and due to his past kernel interactions, dropping his patch. Patch #10 had questions and concerns from Tom Herbert which cannot be addressed at this time since the author (Jacob Keller) is currently on sabbatical, so dropping this patch for now until we can properly address Tom's questions and concerns. ==================== Signed-off-by: David S. Miller commit f1ad44884a4c421ceaa9a4a8242aeeee6f686670 Author: Andi Kleen Date: Tue Dec 1 17:01:00 2015 -0800 perf/x86: Remove old MSR perf tracing code Now that we have generic MSR trace points we can remove the old hackish perf MSR read tracing code. Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Cc: rostedt@goodmis.org Link: http://lkml.kernel.org/r/1449018060-1742-4-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event.h | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) commit 7f47d8cc039f8746e0038fe05f1ddcb15a2e27f0 Author: Andi Kleen Date: Tue Dec 1 17:00:59 2015 -0800 x86, tracing, perf: Add trace point for MSR accesses For debugging low level code interacting with the CPU it is often useful to trace the MSR read/writes. This gives a concise summary of PMU and other operations. perf has an ad-hoc way to do this using trace_printk, but it's somewhat limited (and also now spews ugly boot messages when enabled) Instead define real trace points for all MSR accesses. This adds three new trace points: read_msr and write_msr and rdpmc. They also report if the access faulted (if *_safe is used) This allows filtering and triggering on specific MSR values, which allows various more advanced debugging techniques. All the values are well defined in the CPU documentation. The trace can be post processed with Documentation/trace/postprocess/decode_msr.py to add symbolic MSR names to the trace. I only added it to native MSR accesses in C, not paravirtualized or in entry*.S (which is not too interesting) Originally the patch kit moved the MSRs out of line. This uses an alternative approach recommended by Steven Rostedt of only moving the trace calls out of line, but open coding the access to the jump label. Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Acked-by: Steven Rostedt Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Link: http://lkml.kernel.org/r/1449018060-1742-3-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar Documentation/trace/events-msr.txt | 37 +++++++++++++++++ Documentation/trace/postprocess/decode_msr.py | 37 +++++++++++++++++ arch/x86/include/asm/msr-trace.h | 57 +++++++++++++++++++++++++++ arch/x86/include/asm/msr.h | 31 +++++++++++++++ arch/x86/lib/msr.c | 26 ++++++++++++ 5 files changed, 188 insertions(+) commit bd2a634d9e852b9b6100f9ae9c3c790b0ff91ce0 Author: Andi Kleen Date: Tue Dec 1 17:00:58 2015 -0800 tracepoints: Move struct tracepoint to new tracepoint-defs.h header Steven recommended open coding access to tracepoint->key to add trace points to headers. Unfortunately this is difficult for some headers (such as x86 asm/msr.h) because including tracepoint.h includes so many other headers that it causes include loops. The main problem is the include of linux/rcupdate.h, which pulls in a lot of other headers. The rcu header is only needed when actually defining trace points. Move the struct tracepoint into a separate tracepoint-defs.h header that can be included without pulling in all of RCU. Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Acked-by: Steven Rostedt Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Link: http://lkml.kernel.org/r/1449018060-1742-2-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar include/linux/tracepoint-defs.h | 27 +++++++++++++++++++++++++++ include/linux/tracepoint.h | 16 +--------------- 2 files changed, 28 insertions(+), 15 deletions(-) commit 153a4334c439cfb62e1d31cee0c790ba4157813d Author: Andi Kleen Date: Tue Dec 1 17:00:57 2015 -0800 x86/headers: Don't include asm/processor.h in asm/atomic.h asm/atomic.h doesn't really need asm/processor.h anymore. Everything it uses has moved to other header files. So remove that include. processor.h is a nasty header that includes lots of other headers and makes it prone to include loops. Removing the include here makes asm/atomic.h a "leaf" header that can be safely included in most other headers. The only fallout is in the lib/atomic tester which relied on this implicit include. Give it an explicit include. (the include is in ifdef because the user is also in ifdef) Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Cc: rostedt@goodmis.org Link: http://lkml.kernel.org/r/1449018060-1742-1-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar arch/x86/include/asm/atomic.h | 1 - arch/x86/include/asm/atomic64_32.h | 1 - lib/atomic64_test.c | 4 ++++ 3 files changed, 4 insertions(+), 2 deletions(-) commit da008ee72cabdee0ee98d3a3580ca5cfb8d2d1f1 Author: Andi Kleen Date: Mon Nov 30 09:48:42 2015 -0800 perf/x86/intel: Fix __initconst declaration in the RAPL perf driver Fix a definition in the perf rapl driver. __initconst must be applied to a const object, but to declare a const pointer you need to use * const ..., not const ... * This fixes a section attribute conflict with LTO builds. Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Link: http://lkml.kernel.org/r/1448905722-2767-1-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_rapl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0017960f38a2470e70d9f1991228e2b55b2abe0c Author: Peter Zijlstra Date: Mon Nov 30 16:26:35 2015 +0100 perf/core: Collapse common IPI pattern Various functions implement the same pattern to send IPIs to an event's CPU. Collapse the easy ones in a common helper function to reduce duplication. Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar kernel/events/core.c | 180 ++++++++++++++++++++++----------------------------- 1 file changed, 76 insertions(+), 104 deletions(-) commit 42a0789bf503d53ce099a73543278bd0164d8954 Merge: ac675d0 4e93ad6 Author: Ingo Molnar Date: Fri Dec 4 10:35:29 2015 +0100 Merge branch 'perf/urgent' into perf/core, to pick up fixes Signed-off-by: Ingo Molnar commit ec941c5ffede4d788b9fc008f9eeca75b9e964f5 Author: Igor Mammedov Date: Fri Dec 4 14:07:06 2015 +0100 x86/mm/64: Enable SWIOTLB if system has SRAT memory regions above MAX_DMA32_PFN when memory hotplug enabled system is booted with less than 4GB of RAM and then later more RAM is hotplugged 32-bit devices stop functioning with following error: nommu_map_single: overflow 327b4f8c0+1522 of device mask ffffffff the reason for this is that if x86_64 system were booted with RAM less than 4GB, it doesn't enable SWIOTLB and when memory is hotplugged beyond MAX_DMA32_PFN, devices that expect 32-bit addresses can't handle 64-bit addresses. Fix it by tracking max possible PFN when parsing memory affinity structures from SRAT ACPI table and enable SWIOTLB if there is hotpluggable memory regions beyond MAX_DMA32_PFN. It fixes KVM guests when they use emulated devices (reproduces with ata_piix, e1000 and usb devices, RHBZ: 1275941, 1275977, 1271527) It also fixes the HyperV, VMWare with emulated devices which are affected by this issue as well. Signed-off-by: Igor Mammedov Cc: Andrew Morton Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: akataria@vmware.com Cc: fujita.tomonori@lab.ntt.co.jp Cc: konrad.wilk@oracle.com Cc: pbonzini@redhat.com Cc: revers@redhat.com Cc: riel@redhat.com Link: http://lkml.kernel.org/r/1449234426-273049-3-git-send-email-imammedo@redhat.com Signed-off-by: Ingo Molnar arch/x86/kernel/pci-swiotlb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8dd3303001976aa8583bf20f6b93590c74114308 Author: Igor Mammedov Date: Fri Dec 4 14:07:05 2015 +0100 x86/mm: Introduce max_possible_pfn max_possible_pfn will be used for tracking max possible PFN for memory that isn't present in E820 table and could be hotplugged later. By default max_possible_pfn is initialized with max_pfn, but later it could be updated with highest PFN of hotpluggable memory ranges declared in ACPI SRAT table if any present. Signed-off-by: Igor Mammedov Cc: Andrew Morton Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: akataria@vmware.com Cc: fujita.tomonori@lab.ntt.co.jp Cc: konrad.wilk@oracle.com Cc: pbonzini@redhat.com Cc: revers@redhat.com Cc: riel@redhat.com Link: http://lkml.kernel.org/r/1449234426-273049-2-git-send-email-imammedo@redhat.com Signed-off-by: Ingo Molnar arch/x86/kernel/setup.c | 2 ++ arch/x86/mm/srat.c | 2 ++ include/linux/bootmem.h | 4 ++++ mm/bootmem.c | 1 + mm/nobootmem.c | 1 + 5 files changed, 10 insertions(+) commit 1f32f83e5d81c1e99a1c16366e71d5867cd1e364 Author: Guenter Roeck Date: Sat Dec 5 22:18:25 2015 -0800 MAINTAINERS: Add Guenter Roeck as reviewer of watchdog drivers Guenter has been reviewing watchdog drivers for years, so we might as well make it official. Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit ac4111abf3521dfb3038c44c053f7c43ee1fb1bd Author: Jisheng Zhang Date: Mon Nov 30 21:54:39 2015 +0800 arm: dts: berlin2q-marvell-dmp: add sdhci1 fully functionality The sdhci1 on Marvell BG2Q DMP board is used as sdcard interface, we have gpios for card detection, write-protect, vqmmc and vmmc. This patch adds pinmux for this sdcard interface, then adds regulators for vmmc and vqmmc, lastly adds cd-gpios, wp-gpios properties. Signed-off-by: Jisheng Zhang Signed-off-by: Sebastian Hesselbarth arch/arm/boot/dts/berlin2q-marvell-dmp.dts | 37 ++++++++++++++++++++++++++++-- arch/arm/boot/dts/berlin2q.dtsi | 5 ++++ 2 files changed, 40 insertions(+), 2 deletions(-) commit 1544f99c0ac08376c0a3888aef7722d9f678020c Author: Jisheng Zhang Date: Mon Nov 30 21:41:58 2015 +0800 arm64: dts: berlin4ct: support cpuidle-dt This patch adds an idle-states node to describe the berlin4ct idle states and also adds references to the idle-states node in all CPU nodes. After this patch cpuidle is enabled. Signed-off-by: Jisheng Zhang Acked-by: Lorenzo Pieralisi Signed-off-by: Sebastian Hesselbarth arch/arm64/boot/dts/marvell/berlin4ct.dtsi | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 03d13a51fb4494f3bf47f65e2be00e56c36d2b63 Author: Jacob Keller Date: Fri Oct 16 10:57:11 2015 -0700 fm10k: TRIVIAL cleanup order at top of fm10k_xmit_frame Signed-off-by: Jacob Keller Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit c7bc952349c39d8ec7b1a7f6ef403be2a08d5e86 Author: Jacob Keller Date: Fri Oct 16 10:57:10 2015 -0700 fm10k: TRIVIAL fix typo of hardware Signed-off-by: Jacob Keller Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_pci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit dbf4284886c59a17dc0081cee39039ac2a546078 Author: Jacob Keller Date: Fri Oct 16 10:57:09 2015 -0700 fm10k: change default Tx ITR to 25usec The current default ITR for Tx is overly restrictive. Using a simple netperf TCP_STREAM test, we top out at about 10Gb/s for a single thread when running using 1500 byte frames. By reducing the ITR value to 25usec (up to 40K interrupts a second from 10K), we are able to achieve 36Gb/s for a single thread TCP stream test. Signed-off-by: Jacob Keller Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 436ea956bffd9974bc41ae9bd99930e29d9c807d Author: Jacob Keller Date: Fri Oct 16 10:57:08 2015 -0700 fm10k: use macro for default Tx and Rx ITR values Signed-off-by: Jacob Keller Reviewed-by: Bruce Allan Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k.h | 2 ++ drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c | 4 ++-- drivers/net/ethernet/intel/fm10k/fm10k_pci.c | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) commit 242722dd3d0af32703d4ebb4af63c92a2c85b835 Author: Jacob Keller Date: Fri Oct 16 10:57:07 2015 -0700 fm10k: Update adaptive ITR algorithm The existing adaptive ITR algorithm is overly restrictive. It throttles incorrectly for various traffic rates, and does not produce good performance. The algorithm now allows for more interrupts per second, and does some calculation to help improve for smaller packet loads. In addition, take into account the new itr_scale from the hardware which indicates how much to scale due to PCIe link speed. Reported-by: Matthew Vick Reported-by: Alex Duyck Signed-off-by: Jacob Keller Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k.h | 1 + drivers/net/ethernet/intel/fm10k/fm10k_main.c | 52 ++++++++++++++++++++------- drivers/net/ethernet/intel/fm10k/fm10k_pci.c | 6 ++-- 3 files changed, 45 insertions(+), 14 deletions(-) commit 584373f5b98aed81ff5a432d91b6e16d7554a5c9 Author: Jacob Keller Date: Fri Oct 16 10:57:06 2015 -0700 fm10k: introduce ITR_IS_ADAPTIVE macro Define a macro for identifying when the itr value is dynamic or adaptive. The concept was taken from i40e. This helps make clear what the check is, and reduces the line length to something more reasonable in a few places. Signed-off-by: Jacob Keller Reviewed-by: Bruce Allan Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k.h | 2 ++ drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c | 6 ++---- drivers/net/ethernet/intel/fm10k/fm10k_main.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) commit 20076fa18571e2e274f51a2012ff5ef5c82e93a5 Author: Jacob Keller Date: Fri Oct 16 10:57:05 2015 -0700 fm10k: Add support for ITR scaling based on PCIe link speed The Intel Ethernet Switch FM10000 Host Interface interrupt throttle timers are based on the PCIe link speed. Because of this, the value being programmed into the ITR registers must be scaled accordingly. For the PF, this is as simple as reading the PCIe link speed and storing the result. However, in the case of SR-IOV, the VF's interrupt throttle timers are based on the link speed of the PF. However, the VF is unable to get the link speed information from its configuration space, so the PF must inform it of what scale to use. Rather than pass this scale via mailbox message, take advantage of unused bits in the TDLEN register to pass the scale. It is the responsibility of the PF to program this for the VF while setting up the VF queues and the responsibility of the VF to get the information accordingly. This is preferable because it allows the VF to set up the interrupts properly during initialization and matches how the MAC address is passed in the TDBAL/TDBAH registers. Since we're modifying fm10k_type.h, we may as well also update the copyright year. Reported-by: Matthew Vick Signed-off-by: Jacob Keller Reviewed-by: Bruce Allan Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_pf.c | 22 +++++++++++++++++++++- drivers/net/ethernet/intel/fm10k/fm10k_type.h | 17 ++++++++++++++++- drivers/net/ethernet/intel/fm10k/fm10k_vf.c | 20 ++++++++++++++++++-- 3 files changed, 55 insertions(+), 4 deletions(-) commit 5680ea692407ce5113f3391c2e6b5dbe6eec84d8 Author: Jacob Keller Date: Fri Oct 16 10:57:03 2015 -0700 fm10k: rename mbx_tx_oversized statistic to mbx_tx_dropped Originally this statistic was renamed because the method of dropping was called "drop_oversized_messages", but this logic has changed much, and this counter does actually represent messages which we failed to transmit for a number of reasons. Rename the counter back to tx_dropped since this is when it will increment, and it is less confusing. Signed-off-by: Jacob Keller Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 17d39fac0888bfd624f61f758c8cce60632a3394 Author: Jacob Keller Date: Fri Oct 16 10:57:02 2015 -0700 fm10k: add statistics for actual DWORD count of mbmem mailbox A previous bug was uncovered by addition of a debug stat to indicate the actual number of DWORDS we pulled from the mbmem. It turned out this was not the same as the tx_dwords counter. While the previous bug fix should have corrected this in all cases, add some debug stats that count the number of DWORDs pushed or pulled from the mbmem. A future debugger may take advantage of this statistic for debugging purposes. Since we're modifying fm10k_mbx.h, update the copyright year as well. Signed-off-by: Jacob Keller Reviewed-by: Bruce Allan Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c | 2 ++ drivers/net/ethernet/intel/fm10k/fm10k_mbx.c | 4 ++++ drivers/net/ethernet/intel/fm10k/fm10k_mbx.h | 4 +++- 3 files changed, 9 insertions(+), 1 deletion(-) commit cdf32c94bd3569d4e46b8f993e0fd8e45d438d18 Author: Jacob Keller Date: Fri Oct 16 10:57:01 2015 -0700 fm10k: explicitly typecast vlan values to u16 Signed-off-by: Jacob Keller Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_pf.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 9d4955b45888b1b7c9f2a954cf6aa1269904bb98 Author: Jacob Keller Date: Fri Oct 16 10:57:00 2015 -0700 fm10k: Correct typecast in fm10k_update_xc_addr_pf Since the resultant data type of the mac_update.mac_upper field is u16, it does not make sense to typecast u8 variables to u32 first. Since we're modifying fm10k_pf.c, also update the copyright year. Reported-by: Matthew Vick Signed-off-by: Jacob Keller Reviewed-by: Bruce Allan Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_pf.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 875328e4bce696e85edcda3c4b0ec80fd525e3a3 Author: Jacob Keller Date: Fri Oct 16 10:56:59 2015 -0700 fm10k: reinitialize queuing scheme after calling init_hw The init_hw function may fail, and in the case of VFs, it might change the number of maximum queues available. Thus, for every flow which checks init_hw, we need to ensure that we clear the queue scheme before, and initialize it after. The fm10k_io_slot_reset path will end up triggering a reset so fm10k_reinit needs this change. The fm10k_io_error_detected and fm10k_io_resume also need to properly clear and reinitialize the queue scheme. Signed-off-by: Jacob Keller Reviewed-by: Bruce Allan Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_pci.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 1343c65f70ee1b1f968a08b30e1836a4e37116cd Author: Jacob Keller Date: Fri Oct 16 10:56:58 2015 -0700 fm10k: always check init_hw for errors A recent change modified init_hw in some flows the function may fail on VF devices. For example, if a VF doesn't yet own its own queues. However, many callers of init_hw didn't bother to check the error code. Other callers checked but only displayed diagnostic messages without actually handling the consequences. Fix this by (a) always returning and preventing the netdevice from going up, and (b) printing the diagnostic in every flow for consistency. This should resolve an issue where VF drivers would attempt to come up before the PF has finished assigning queues. In addition, change the dmesg output to explicitly show the actual function that failed, instead of combining reset_hw and init_hw into a single check, to help for future debugging. Fixes: 1d568b0f6424 ("fm10k: do not assume VF always has 1 queue") Signed-off-by: Jacob Keller Reviewed-by: Bruce Allan Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_pci.c | 34 ++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 5 deletions(-) commit 0e8d5b5975401c83641efd5d4595e6cdbe9e9e2f Author: Jacob Keller Date: Fri Oct 16 10:56:57 2015 -0700 fm10k: reset max_queues on init_hw_vf failure VF drivers must detect how many queues are available. Previously, the driver assumed that each VF has at minimum 1 queue. This assumption is incorrect, since it is possible that the PF has not yet assigned the queues to the VF by the time the VF checks. To resolve this, we added a check first to ensure that the first queue is infact owned by the VF at init_hw_vf time. However, the code flow did not reset hw->mac.max_queues to 0. In some cases, such as during reinit flows, we call init_hw_vf without clearing the previous value of hw->mac.max_queues. Due to this, when init_hw_vf errors out, if its error code is not properly handled the VF driver may still believe it has queues which no longer belong to it. Fix this by clearing the hw->mac.max_queues on exit due to errors. Signed-off-by: Jacob Keller Reviewed-by: Bruce Allan Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_vf.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit e0244903d4a6a27f9f1e8b46b89afa4130aa9164 Author: Jacob Keller Date: Fri Oct 16 10:56:56 2015 -0700 fm10k: set netdev features in one location Don't change netdev hw_features later in fm10k_probe, instead set all values inside fm10k_alloc_netdev. To do so, we need to know the MAC type (whether it is PF or VF) in order to determine what to do. This helps ensure that all logic regarding features is co-located. Signed-off-by: Jacob Keller Reviewed-by: Bruce Allan Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k.h | 2 +- drivers/net/ethernet/intel/fm10k/fm10k_netdev.c | 31 +++++++++++++++---------- drivers/net/ethernet/intel/fm10k/fm10k_pci.c | 9 +------ 3 files changed, 21 insertions(+), 21 deletions(-) commit b82583ec6f1a5ca765a2a331317c3b5791036b25 Merge: 04f9646 37742f0 Author: David S. Miller Date: Sat Dec 5 22:45:56 2015 -0500 Merge branch 'renesas-read-mac' Sergei Shtylyov says: ==================== Renesas: read MAC address registers only once Here's 2 patches against DaveM's 'net-next.git' repo. Here we optimize the MAC address register reading (left over from a bootloader). [1/2] ravb: read MAC address registers only once [2/2] sh_eth: read MAC address registers only once ==================== Signed-off-by: David S. Miller commit 37742f028b301205c2b658c16bafbee7552035d0 Author: Sergei Shtylyov Date: Sat Dec 5 00:58:57 2015 +0300 sh_eth: read MAC address registers only once The code reading the MAHR/MALR registers in read_mac_address() is terribly ineffective -- it reads MAHR 4 times and MALR 2 times, while it's enough to read each register only once. Use the local variables to achieve that, somewhat beautifying the code while at it... Signed-off-by: Sergei Shtylyov Signed-off-by: David S. Miller drivers/net/ethernet/renesas/sh_eth.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit d96606389720fff450955e2b5c81a3d5974c465c Author: Sergei Shtylyov Date: Sat Dec 5 00:58:07 2015 +0300 ravb: read MAC address registers only once The code reading the MAHR/MALR registers in ravb_read_mac_address() is terribly ineffective -- it reads MAHR 4 times and MALR 2 times, while it's enough to read each register only once. Use the local variables to achieve that, somewhat beautifying the code while at it... Signed-off-by: Sergei Shtylyov Signed-off-by: David S. Miller drivers/net/ethernet/renesas/ravb_main.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit c979ff991764a2e620db0b1bfb0a105b9cf78b6a Author: Paul E. McKenney Date: Tue Dec 1 15:53:11 2015 -0800 torture: Place console.log files correctly from the get-go Currently, the console output files ("console.log") are placed in the build directory initially, then copied to the results directory. One problem with this is if a qemu refuses to die in a timely fashion after a kernel hang, it will continue to write after the next qemu starts up, resulting in confusing output from the old instance of qemu. This commit prevents such confusion by placing the console.log files into the results directory to begin with, so that a given instance of qemu is always writing only to its own console.log file. Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 5708c6475789ac5f58ff620e78bd08ca2caa1f23 Author: Paul E. McKenney Date: Tue Dec 1 12:37:57 2015 -0800 torture: Abbreviate console error dump Currently, the scripts print a list of warning/bug indicators from the console.log file. This works well if there are only a few warnings or bugs, but can be quite annoying if there is a large number. This commit therefore prints a summary listing the number of each type of warning/bug indicator, but only if there is at least one such indicator. The full list is stored in the results directory at console.log.diags, which makes it easier to find the warning/bugs in the full console.log. Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett .../selftests/rcutorture/bin/parse-console.sh | 41 ++++++++++++++++++---- 1 file changed, 35 insertions(+), 6 deletions(-) commit 6b50e119c440b7532ed749b635a58b3839f62992 Author: Paul E. McKenney Date: Tue Nov 17 14:39:26 2015 -0800 rcutorture: Print symbolic name for ->gp_state Currently, ->gp_state is printed as an integer, which slows debugging. This commit therefore prints a symbolic name in addition to the integer. Signed-off-by: Paul E. McKenney [ paulmck: Updated to fix relational operator called out by Dan Carpenter. ] [ paulmck: More "const", as suggested by Josh Triplett. ] Reviewed-by: Josh Triplett kernel/rcu/tree.c | 15 +++++++++++++-- kernel/rcu/tree.h | 12 ++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) commit 18aff33e7314253b9437234bd6d69ddc4827de70 Author: Paul E. McKenney Date: Tue Nov 17 13:35:28 2015 -0800 rcutorture: Print symbolic name for rcu_torture_writer_state Currently, rcu_torture_writer_state is printed as an integer, which slows debugging. This commit therefore prints a symbolic name in addition to the integer. Signed-off-by: Paul E. McKenney [ paulmck: More "const", as suggested by Josh Triplett. ] Reviewed-by: Josh Triplett kernel/rcu/rcutorture.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) commit 91bf6a83e5a121c9313ae47156dd47df46ea2aac Author: Yang Shi Date: Thu Oct 15 16:10:07 2015 -0700 rcutorture: Remove CONFIG_RCU_USER_QS from rcutorture selftest doc Commit d1ec4c34c7a9 ("rcu: Drop RCU_USER_QS in favor of NO_HZ_FULL") has removed RCU_USER_QS from Kconfig file, so remove it from some documents to avoid any confusion. Signed-off-by: Yang Shi Signed-off-by: Paul E. McKenney Acked-by: Frederic Weisbecker Reviewed-by: Josh Triplett tools/testing/selftests/rcutorture/doc/TINY_RCU.txt | 1 - tools/testing/selftests/rcutorture/doc/TREE_RCU-kconfig.txt | 4 ---- 2 files changed, 5 deletions(-) commit 542e83329db44622a401b74b4be0ea2d5f0850be Author: Paul E. McKenney Date: Thu Oct 1 11:41:06 2015 -0700 rcutorture: Default grace period to three minutes, allow override The default test grace period of two minutes is insufficient in some cases and excessive in others. This commit therefore increases the default to three minutes, but also adds a --shutdown-grace parameter to allow the default to be overridden. Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh | 4 +--- tools/testing/selftests/rcutorture/bin/kvm.sh | 7 +++++++ 2 files changed, 8 insertions(+), 3 deletions(-) commit b1adb3e2736b695821badc715d2c7a5d873b8b94 Author: Paul E. McKenney Date: Thu Oct 1 10:38:16 2015 -0700 rcutorture: Dump stack when GP kthread stalls This commit increases debug information in the case where the grace-period kthread is being prevented from running by dumping that kthread's stack. Signed-off-by: Paul E. McKenney [ paulmck: Split into prior commit and this commit, as suggested by Josh Triplett. ] Reviewed-by: Josh Triplett kernel/rcu/tree.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit a0e3a3aa2841d5720a277de53b6882eb8b2ef698 Author: Paul E. McKenney Date: Sat Dec 5 17:34:10 2015 -0800 rcutorture: Flag nonexistent RCU GP kthread Currently, if the RCU grace-period kthread has not yet been created, in which case the starvation-check code will print zero for the state, which maps to TASK_RUNNING. This could clearly be quite confusing, so this commit prints ~0, which does not map to any legal ->state value. Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett kernel/rcu/tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 83977d273b609477e31af4c993697b75936acde0 Author: Paul E. McKenney Date: Wed Sep 30 22:11:48 2015 -0700 rcutorture: Add batch number to script printout Currently, the scripts print "----Start batch" at the beginning of each batch, which does serve as a good visual delimiter between batches. Unfortunately, if there are a lot of batches, it is hard to quickly estimate test runtime from the output of "--dryrun sched". This commit therefore adds a batch number, so that the beginning-of-batch output looks like this "----Start batch 10" for the tenth batch. Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett tools/testing/selftests/rcutorture/bin/kvm.sh | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit 04f96468f78897099188185efda95fba9f371b7c Merge: b618aaa 44c33c6 Author: David S. Miller Date: Sat Dec 5 19:00:03 2015 -0500 Merge branch 'bnx2x' Michal Schmidt says: ==================== bnx2x: fewer error messages, simplification This removes one redundant error message in bnx2x and changes another one to WARN_ONCE. The third patch is a small simplification in ethtool stats. ==================== Signed-off-by: David S. Miller commit 44c33c66310c76979649b7c0004af7744bd4ce7a Author: Michal Schmidt Date: Fri Dec 4 17:22:36 2015 +0100 bnx2x: simplify distinction between port and func stats The 'flags' field in bnx2x_stats_arr[] serves only one purpose - to tell us if the statistic is a per-port stat and thus should not be shown for virtual functions. It's strange that the field can have three different values. A boolean will do just fine. Also remove IS_FUNC_STAT(). It was used only once and it's in fact just a negation of IS_PORT_STAT(). Signed-off-by: Michal Schmidt Signed-off-by: David S. Miller .../net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c | 117 ++++++++++----------- 1 file changed, 56 insertions(+), 61 deletions(-) commit 9adab1b036b3b95edffdfe7835133b2a20eb7473 Author: Michal Schmidt Date: Fri Dec 4 17:22:35 2015 +0100 bnx2x: change FW GRO error message to WARN_ONCE It's supposed to be impossible for TPA to give us anything else than IPv4 or IPv6 here. But in case there is a way to reach this error by some strange received frames, we don't want to flood the kernel log. WARN_ONCE is better for this purpose. Signed-off-by: Michal Schmidt Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5c9ffde4a02144c4f7362152853d69138c437f17 Author: Michal Schmidt Date: Fri Dec 4 17:22:34 2015 +0100 bnx2x: drop redundant error message about allocation failure alloc_pages() already prints a warning when it fails. No need to emit another message. Certainly not at KERN_ERR level, because it is no big deal if this GFP_ATOMIC allocation fails occasionally. Signed-off-by: Michal Schmidt Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit b618aaa91b5870e7bd139987ac4b7bf0851142d0 Author: Jiri Pirko Date: Fri Dec 4 15:01:31 2015 +0100 net: constify netif_is_* helpers net_device param As suggested by Eric, these helpers should have const dev param. Suggested-by: Eric Dumazet Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller include/linux/if_vlan.h | 2 +- include/linux/netdevice.h | 22 +++++++++++----------- net/core/dev.c | 2 +- 3 files changed, 13 insertions(+), 13 deletions(-) commit abd86a55f4079d00ba2a0bcca6fe33be45f3e2ff Author: Daniel Pieczko Date: Fri Dec 4 08:48:39 2015 +0000 sfc: check warm_boot_count after other functions have been reset A change in MCFW behaviour means that the net driver must update its record of the warm_boot_count by reading it from the ER_DZ_BIU_MC_SFT_STATUS register. On v4.6.x MCFW the global boot count was incremented when some functions needed to be reset to enable multicast chaining, so all functions saw the same value. In that case, the driver needed to increment its warm_boot_count when other functions were reset, to avoid noticing it later and then trying to reset itself to recover unnecessarily. With v4.7+ MCFW, the boot count in firmware doesn't change as that is unnecessary since the PFs that have been reset will each receive an MC reboot notification. In that case, the driver re-reads the unchanged value. Signed-off-by: Bert Kenward Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit e94d91a6eb155ff77110863d15ba51b3c6b5c548 Author: LABBE Corentin Date: Fri Dec 4 08:43:19 2015 +0100 atm: solos-pci: Replace simple_strtol by kstrtoint The simple_strtol function is obsolete. This patch replace it by kstrtoint. This will simplify code, since some error case not handled by simple_strtol are handled by kstrtoint. Signed-off-by: LABBE Corentin Signed-off-by: David S. Miller drivers/atm/solos-pci.c | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) commit 857e8a6765d6463dda9b4ffd53cb2663b15ae939 Merge: 2141eaf a1a66b1 Author: David S. Miller Date: Sat Dec 5 17:41:42 2015 -0500 Merge branch 'batman-hdlc' Andrew Lunn says: ==================== Allow BATMAN to use hdlc-eth interfaces BATMAN works over Ethernet like interfaces. hdlc-eth provides the need requirements. However, hdlc devices are often created as raw hdlc devices, which batman cannot use, and are then be transmuted into other types using sethdlc(1). Have the HDLC code emit NETDEV_*_TYPE_CHANGE events when the type changes, and have BATMAN react on these events. ==================== Signed-off-by: David S. Miller commit a1a66b1100373ead1fa2383bc3dee42c508bb504 Author: Andrew Lunn Date: Thu Dec 3 21:12:33 2015 +0100 batman-adv: Act on NETDEV_*_TYPE_CHANGE events A network interface can change type. It may change from a type which batman does not support, e.g. hdlc, to one it does, e.g. hdlc-eth. When an interface changes type, it sends two notifications. Handle these notifications. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller net/batman-adv/hard-interface.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 3ef0952ca85e28226b09a6d833c30e3e604a63c8 Author: Andrew Lunn Date: Thu Dec 3 21:12:32 2015 +0100 ipv6: Only act upon NETDEV_*_TYPE_CHANGE if we have ipv6 addresses An interface changing type may not have IPv6 addresses. Don't call the address configuration type change in this case. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller net/ipv6/addrconf.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 2f8364a291e8adde25c93f97a76abbcaf4b1ed3f Author: Andrew Lunn Date: Thu Dec 3 21:12:31 2015 +0100 WAN: HDLC: Call notifiers before and after changing device type An HDLC device can change type when the protocol driver is changed. Calling the notifier change allows potential users of the interface know about this planned change, and even block it. After the change has occurred, send a second notification to users can evaluate the new device type etc. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/wan/hdlc.c | 19 +++++++++++++++++-- drivers/net/wan/hdlc_cisco.c | 1 + drivers/net/wan/hdlc_fr.c | 1 + drivers/net/wan/hdlc_ppp.c | 1 + drivers/net/wan/hdlc_raw.c | 1 + drivers/net/wan/hdlc_raw_eth.c | 1 + drivers/net/wan/hdlc_x25.c | 1 + include/linux/hdlc.h | 2 +- 8 files changed, 24 insertions(+), 3 deletions(-) commit ff3516442768f0babe7ea2db62e34aee1d76e969 Author: Andrew Lunn Date: Thu Dec 3 21:12:30 2015 +0100 WAN: HDLC: Detach protocol before unregistering device The current code first unregisters the device, and then detaches the protocol from it. This should be performed the other way around, since the detach may try to use state which has been freed by the unregister. Swap the order, so that we first detach and then remove the netdev. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/wan/hdlc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0b8ebeacf5ef43a467c7ec5400ccc1ffc3fbdfba Author: Daniel Vetter Date: Tue Nov 24 10:00:36 2015 +0100 drm/armada: use a private mutex to protect priv->linear Reusing the Big DRM Lock just leaks, and the few things left that dev->struct_mutex protected are very well contained - it's just the linear drm_mm manager. With this armada is completely struct_mutex free! v2: Convert things properly and also take the lock in armada_gem_free_object, and remove the stale comment (Russell). Signed-off-by: Daniel Vetter Signed-off-by: Russell King drivers/gpu/drm/armada/armada_debugfs.c | 4 ++-- drivers/gpu/drm/armada/armada_drm.h | 3 ++- drivers/gpu/drm/armada/armada_drv.c | 1 + drivers/gpu/drm/armada/armada_gem.c | 14 +++++++++----- 4 files changed, 14 insertions(+), 8 deletions(-) commit 4bd3fd443aa4bc3cede05de201e9cf3277059477 Author: Daniel Vetter Date: Mon Nov 23 10:32:45 2015 +0100 drm/armada: drop struct_mutex from cursor paths The kms state itself is already protected by the modeset locks acquired by the drm core. The only thing left is gem bo state, and since the cursor code expects small objects which are statically mapped at create time and then invariant over the lifetime of the gem bo there's nothing to protect. See armada_gem_dumb_create -> armada_gem_linear_back which assigns obj->addr which is the only thing used by the cursor code. Only tricky bit is to switch to the _unlocked unreference function. Signed-off-by: Daniel Vetter Signed-off-by: Russell King drivers/gpu/drm/armada/armada_crtc.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit f84cfbb0ff269b427a0db591e22ac6948c554ab4 Author: Chris Metcalf Date: Mon Nov 23 17:04:17 2015 -0500 Documentation/memory-barriers.txt: Fix ACCESS_ONCE thinko In commit 2ecf810121c7 ("Documentation/memory-barriers.txt: Add needed ACCESS_ONCE() calls to memory-barriers.txt") the statement "Q = P" was converted to "ACCESS_ONCE(Q) = P". This should have been "Q = ACCESS_ONCE(P)". It later became "WRITE_ONCE(Q, P)". This doesn't match the following text, which is "Q = LOAD P". Change the statement to be "Q = READ_ONCE(P)". Signed-off-by: Chris Metcalf Signed-off-by: Paul E. McKenney Documentation/memory-barriers.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit c64c4b0f9a183e4c73abff848378afa6edf796c5 Author: Paul E. McKenney Date: Fri Nov 6 23:05:32 2015 -0800 documentation: Update RCU requirements based on expedited changes Because RCU-sched expedited grace periods now use IPIs and interact with rcu_read_unlock(), it is no longer sufficient to disable preemption across RCU read-side critical sections that acquire and hold scheduler locks. It is now necessary to instead disable interrupts. This commit documents this change. Signed-off-by: Paul E. McKenney Documentation/RCU/Design/Requirements/Requirements.html | 12 ++++++++++-- Documentation/RCU/Design/Requirements/Requirements.htmlx | 10 +++++++++- 2 files changed, 19 insertions(+), 3 deletions(-) commit 4b689330b1a5858e88831b3752e9a6692a5c7bdb Author: Paul E. McKenney Date: Mon Oct 12 08:51:45 2015 -0700 documentation: Clarify RCU memory barriers and requirements The RCU requirements do not make it absolutely clear that the memory-barrier requirements are not intended to replace the fundamental requirement that all pre-existing RCU readers complete before a grace period completes. This commit therefore pulls the memory-barrier requirements into a separate section and explicitly calls out the relationship between the memory-barrier requirements and the fundamental requirement. Signed-off-by: Paul E. McKenney .../RCU/Design/Requirements/Requirements.html | 66 +++++++++++++--------- .../RCU/Design/Requirements/Requirements.htmlx | 66 +++++++++++++--------- 2 files changed, 78 insertions(+), 54 deletions(-) commit a4b575627e8d1a2498a921940813266d4e26ff56 Author: Paul E. McKenney Date: Wed Oct 7 15:52:25 2015 -0700 documentation: Expand on scheduler/RCU deadlock requirements This commit adds a second option for avoiding scheduler/RCU deadlocks, namely that preemption be disabled across the entire RCU read-side critical section in question. Signed-off-by: Paul E. McKenney Documentation/RCU/Design/Requirements/Requirements.html | 14 +++++++++----- Documentation/RCU/Design/Requirements/Requirements.htmlx | 14 +++++++++----- 2 files changed, 18 insertions(+), 10 deletions(-) commit 0825458b1dbc39ec6840ee2e45b1fedb1b4b4ca1 Author: Paul E. McKenney Date: Wed Oct 7 15:43:31 2015 -0700 documentation: Composability analogies This commit expands on RCU's composability by comparing it to that of transactional memory and of locking. Signed-off-by: Paul E. McKenney Documentation/RCU/Design/Requirements/Requirements.html | 8 ++++++++ Documentation/RCU/Design/Requirements/Requirements.htmlx | 8 ++++++++ 2 files changed, 16 insertions(+) commit 01d3ad3834891f19a2620a105415feac93296eeb Author: Paul E. McKenney Date: Wed Oct 7 15:35:35 2015 -0700 documentation: Cover requirements controlling stall warnings This commit adds verbiage on boot and sysfs parameters that can be used to control RCU CPU stall warnings, both to change the timeout and to suppress these warnings entirely. Signed-off-by: Paul E. McKenney .../RCU/Design/Requirements/Requirements.html | 25 +++++++++++++++++++++- .../RCU/Design/Requirements/Requirements.htmlx | 25 +++++++++++++++++++++- 2 files changed, 48 insertions(+), 2 deletions(-) commit 701e80312fd10270f9c44371e5a229d37a9ae172 Author: Paul E. McKenney Date: Wed Oct 7 15:06:44 2015 -0700 Documentation: Record bottom-bit-zero guarantee for ->next This commit records RCU's guarantee that the bottom bit of the rcu_head structure's ->next field will remain zero for callbacks posted via call_rcu(), but not necessarily for kfree_rcu() or some possible future call_rcu_lazy() variant that might one day be created for energy-efficiency purposese. Signed-off-by: Paul E. McKenney [ paulmck: Updates URLs as suggested by Josh Triplett. ] .../RCU/Design/Requirements/Requirements.html | 43 ++++++++++++++++++++++ .../RCU/Design/Requirements/Requirements.htmlx | 43 ++++++++++++++++++++++ 2 files changed, 86 insertions(+) commit 649e4368ff786e3d02eb2a06b1493fb217d74408 Author: Paul E. McKenney Date: Wed Oct 7 13:32:08 2015 -0700 documentation: Record RCU requirements This commit adds RCU requirements as published in a 2015 LWN series. Bringing these requirements in-tree allows them to be updated as changes are discovered. Signed-off-by: Paul E. McKenney [ paulmck: Updates to charset and URLs as suggested by Josh Triplett. ] .../RCU/Design/Requirements/2013-08-is-it-dead.png | Bin 0 -> 100825 bytes .../Design/Requirements/GPpartitionReaders1.svg | 374 +++ .../RCU/Design/Requirements/RCUApplicability.svg | 237 ++ .../Design/Requirements/ReadersPartitionGP1.svg | 639 +++++ .../RCU/Design/Requirements/Requirements.html | 2799 ++++++++++++++++++++ .../RCU/Design/Requirements/Requirements.htmlx | 2643 ++++++++++++++++++ Documentation/RCU/Design/htmlqqz.sh | 108 + 7 files changed, 6800 insertions(+) commit c31d0a00021d7289c01edc3d9670da52132d0457 Author: Niklas Söderlund Date: Sat Dec 5 18:51:31 2015 +0100 i2c: emev2: add slave support Add I2C slave provider using the generic slave interface. Signed-off-by: Niklas Söderlund Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-emev2.c | 112 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 111 insertions(+), 1 deletion(-) commit d0cdf9003140e9b40d2488aaee2838babe7e212c Author: Jim Snow Date: Thu Dec 3 10:48:54 2015 +0100 EDAC, sb_edac: Add Knights Landing (Xeon Phi gen 2) support Knights Landing is the next generation architecture for HPC market. KNL introduces concept of a tile and CHA - Cache/Home Agent for memory accesses. Some things are fixed in KNL: () There's single DIMM slot per channel () There's 2 memory controllers with 3 channels each, however, from EDAC standpoint, it is presented as single memory controller with 6 channels. In order to represent 2 MCs w/ 3 CH, it would require major redesign of EDAC core driver. Basically, two functionalities are added/extended: () during driver initialization KNL topology is being recognized, i.e. which channels are populated with what DIMM sizes (knl_get_dimm_capacity function) () handle MCE errors - channel swizzling Reviewed-by: Tony Luck Signed-off-by: Jim Snow Cc: Mauro Carvalho Chehab Cc: linux-edac Cc: lukasz.anaczkowski@intel.com Link: http://lkml.kernel.org/r/1449136134-23706-5-git-send-email-hubert.chrzaniuk@intel.com [ Rebase to 4.4-rc3. ] Signed-off-by: Hubert Chrzaniuk Signed-off-by: Borislav Petkov drivers/edac/sb_edac.c | 966 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 921 insertions(+), 45 deletions(-) commit c1979ba254810a710bfdc982e3d417a4a7369c31 Author: Jim Snow Date: Thu Dec 3 10:48:53 2015 +0100 EDAC, sb_edac: Add support for duplicate device IDs Add options to sbridge_get_all_devices() to allow for duplicate device IDs and devices that are scattered across mulitple PCI buses. Signed-off-by: Jim Snow Acked-by: Tony Luck Cc: Mauro Carvalho Chehab Cc: linux-edac Cc: lukasz.anaczkowski@intel.com Link: http://lkml.kernel.org/r/1449136134-23706-4-git-send-email-hubert.chrzaniuk@intel.com [ Rebase to 4.4-rc3. ] Signed-off-by: Hubert Chrzaniuk Signed-off-by: Borislav Petkov drivers/edac/sb_edac.c | 40 ++++++++++++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 8 deletions(-) commit c59f9c06bdbdaeff9da107d2fcec4f46e9b10825 Author: Jim Snow Date: Thu Dec 3 10:48:52 2015 +0100 EDAC, sb_edac: Virtualize several hard-coded functions SAD limit, interleave mode and DRAM related functionalities are now virtualized, so that overriding them is easier. Signed-off-by: Jim Snow Acked-by: Tony Luck Cc: Mauro Carvalho Chehab Cc: linux-edac Cc: lukasz.anaczkowski@intel.com Link: http://lkml.kernel.org/r/1449136134-23706-3-git-send-email-hubert.chrzaniuk@intel.com [ Rebase to 4.4-rc3. ] Signed-off-by: Hubert Chrzaniuk Signed-off-by: Borislav Petkov drivers/edac/sb_edac.c | 59 ++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 48 insertions(+), 11 deletions(-) commit 9ab655a32e008bfe906b0bf8fb907b412f7c2e87 Author: Arnd Bergmann Date: Fri Dec 4 00:28:17 2015 +0100 staging: iio: select IRQ_WORK for IIO_DUMMY_EVGEN The iio dummy code was recently changed to use irq_work_queue, but that code is compiled into the kernel only if IRQ_WORK is set, so we can get a link error here: drivers/built-in.o: In function `iio_evgen_poke': (.text+0x208a04): undefined reference to `irq_work_queue' This changes the Kconfig file to match what other drivers do. Signed-off-by: Arnd Bergmann Fixes: fd2bb310ca3d ("Staging: iio: Move evgen interrupt generation to irq_work") Acked-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/dummy/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d590faf9e8f8509a0a0aa79c38e87fcc6b913248 Author: Lars-Peter Clausen Date: Fri Nov 27 14:55:56 2015 +0100 iio: adis_buffer: Fix out-of-bounds memory access The SPI tx and rx buffers are both supposed to be scan_bytes amount of bytes large and a common allocation is used to allocate both buffers. This puts the beginning of the tx buffer scan_bytes bytes after the rx buffer. The initialization of the tx buffer pointer is done adding scan_bytes to the beginning of the rx buffer, but since the rx buffer is of type __be16 this will actually add two times as much and the tx buffer ends up pointing after the allocated buffer. Fix this by using scan_count, which is scan_bytes / 2, instead of scan_bytes when initializing the tx buffer pointer. Fixes: aacff892cbd5 ("staging:iio:adis: Preallocate transfer message") Signed-off-by: Lars-Peter Clausen Cc: Signed-off-by: Jonathan Cameron drivers/iio/imu/adis_buffer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ec0096f853fef46000c80bb3fd035d8376d957ac Author: Robert Kmiec Date: Fri Dec 4 00:54:48 2015 +0100 iio: st_accel_core: Remove unneeded define Definition of ST_SENSORS_WAI_ADDRESS was introduced within a very first commit of this driver, but it was never used. This address is already defined as ST_SENSORS_DEFAULT_WAI_ADDRESS in include/linux/iio/common/st_sensors.h To avoid duplication of the same constant in two different places called almost exactly the same, the one which was never used should be removed. Signed-off-by: Robert Kmiec Signed-off-by: Jonathan Cameron drivers/iio/common/st_sensors/st_sensors_core.c | 3 --- 1 file changed, 3 deletions(-) commit 366e65633cf4f117609965cd6e189f2cd11533d2 Author: Matt Ranostay Date: Tue Dec 1 21:05:22 2015 -0800 iio: proximity: lidar: optimize i2c transactions Optimize device tranactions using i2c transfers versus multiple possibly racey i2c_smbus_* function calls, and only one transaction for distance measurement. Falls back to smbus method if i2c functionality isn't available. Signed-off-by: Matt Ranostay Signed-off-by: Jonathan Cameron drivers/iio/proximity/pulsedlight-lidar-lite-v2.c | 95 +++++++++++++++++------ 1 file changed, 70 insertions(+), 25 deletions(-) commit 8d6c16dd7213fa43702416e3dd1059e9e36bc758 Author: Jonathan Cameron Date: Sat Dec 5 16:23:26 2015 +0000 iio:configfs: Introduce iio/configfs.h to provide a location for the configfs_subsystem This exported element needs to be accesible to all drivers using configfs within IIO. Previously it was in the sw_trig.h file which only convered one such usecase. This also fixes a sparse warning as it is now in a header that makes sense to include from industrialio-configfs.c Signed-off-by: Jonathan Cameron < jic23@kernel.org> drivers/iio/industrialio-configfs.c | 1 + drivers/iio/industrialio-sw-trigger.c | 1 + include/linux/iio/configfs.h | 15 +++++++++++++++ include/linux/iio/sw_trigger.h | 1 - 4 files changed, 17 insertions(+), 1 deletion(-) commit 05e866b42e65c2f68dea7fc7be4fcf534f4d8a12 Author: Jon Hunter Date: Fri Nov 13 16:39:43 2015 +0000 dmaengine: tegra-apb: Free interrupts before killing tasklets On probe failure or driver removal, before killing any tasklets, ensure that the channel interrupt is freed to ensure that another channel interrupt cannot occur and schedule the tasklet again. Signed-off-by: Jon Hunter Signed-off-by: Vinod Koul drivers/dma/tegra20-apb-dma.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 8fe9739bc3ed616fb8cf935fb5099051493c2424 Author: Jon Hunter Date: Fri Nov 13 16:39:42 2015 +0000 dmaengine: tegra-apb: Update driver to use GFP_NOWAIT The tegra20-apb-dma driver currently uses the flag GFP_ATOMIC when allocating memory for structures used in conjunction with the DMA descriptors. It is preferred that dmaengine drivers use GFP_NOWAIT instead and so the emergency memory pool will not be used by these drivers. Signed-off-by: Jon Hunter Signed-off-by: Vinod Koul drivers/dma/tegra20-apb-dma.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4aad5be04088d9b6c2783d5f0fb6b1ac7bbc45c1 Author: Jon Hunter Date: Fri Nov 13 16:39:41 2015 +0000 dmaengine: tegra-apb: Only save channel state for those in use Currently the tegra-apb DMA driver suspend/resume helpers, save and restore the registers for all channels regardless of whether they are in use or not. Change this so that only channels that have been allocated and configured are saved and restored. Signed-off-by: Jon Hunter Signed-off-by: Vinod Koul drivers/dma/tegra20-apb-dma.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 68ae7a93fb0e6432baaa7c323a650b1b5461643f Author: Jon Hunter Date: Fri Nov 13 16:39:40 2015 +0000 dmaengine: tegra-apb: Save and restore word count Newer tegra devices have a separate word count register per channel that contains the number of words to be transferred. This register is not saved or restored by the suspend/resume helpers for these newer devices and so ensure that it is. Signed-off-by: Jon Hunter Signed-off-by: Vinod Koul drivers/dma/tegra20-apb-dma.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 286a6441a333abfa21a700683db5b3302f75a4de Author: Jon Hunter Date: Fri Nov 13 16:39:39 2015 +0000 dmaengine: tegra-apb: Use dev_get_drvdata() In the tegra_dma_runtime_suspend/resume functions, the pdev structure is not needed, and so just call dev_get_drvdata() to get the device data structure. Signed-off-by: Jon Hunter Signed-off-by: Vinod Koul drivers/dma/tegra20-apb-dma.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit edd3bdbe9db1415f744bb5da0752675ddbd9eee0 Author: Jon Hunter Date: Fri Nov 13 16:39:38 2015 +0000 dmaengine: tegra-apb: Correct runtime-pm usage The tegra-apb DMA driver enables runtime-pm but never calls pm_runtime_get/put and hence the runtime-pm callbacks are never invoked. The driver manages the clocks by directly calling clk_prepare_enable() and clk_unprepare_disable(). Fix this by replacing the clk_prepare_enable() and clk_disable_unprepare() with pm_runtime_get_sync() and pm_runtime_put(), respectively. Note that the consequence of this is that if runtime-pm is disabled, then the clocks will remain on the entire time the driver is loaded. However, if runtime-pm is disabled, then power is not most likely not a concern. Signed-off-by: Jon Hunter Signed-off-by: Vinod Koul drivers/dma/tegra20-apb-dma.c | 43 ++++++++++++++++++------------------------- 1 file changed, 18 insertions(+), 25 deletions(-) commit 9ff68186eaac415bfc0b84d627b7ecec24b0c52d Author: Lars-Peter Clausen Date: Sat Nov 21 12:09:48 2015 +0100 dmaengine: img-mdc: Remove unnecessary synchronize_irq() before devm_free_irq() Calling synchronize_irq() right before devm_free_irq() is quite useless. On one hand the IRQ can easily fire again before devm_free_irq() is entered, on the other hand devm_free_irq() itself calls synchronize_irq() internally (in a race condition free way), before any state associated with the IRQ is freed. Patch was generated using the following semantic patch: // @@ expression irq, dev; @@ -synchronize_irq(irq); devm_free_irq(dev, irq, ...); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Vinod Koul drivers/dma/img-mdc-dma.c | 1 - 1 file changed, 1 deletion(-) commit 1f281792f649fc40054fc9146d8aa6b8b3c2aaff Author: Lars-Peter Clausen Date: Sat Nov 21 12:09:47 2015 +0100 dmaengine: at_xdmac: Remove unnecessary synchronize_irq() before free_irq() Calling synchronize_irq() right before free_irq() is quite useless. On one hand the IRQ can easily fire again before free_irq() is entered, on the other hand free_irq() itself calls synchronize_irq() internally (in a race condition free way), before any state associated with the IRQ is freed. Patch was generated using the following semantic patch: // @@ expression irq; @@ -synchronize_irq(irq); free_irq(irq, ...); // Signed-off-by: Lars-Peter Clausen Acked-by: Ludovic Desroches Signed-off-by: Vinod Koul drivers/dma/at_xdmac.c | 2 -- 1 file changed, 2 deletions(-) commit 82d149b86d31e11fbbbc1b850bebffe1bfa2e82d Author: Yuan Yao Date: Fri Oct 30 19:03:58 2015 +0800 dmaengine: fsl-edma: add PM suspend/resume support This add power management suspend/resume support for the fsl-edma driver. eDMA acted as a basic function used by others. What it needs to do is the two steps below to support power management. In fsl_edma_suspend_late: Check whether the DMA chan is idle, if it is not idle disable DMA request. In fsl_edma_resume_early: Enable the eDMA and wait for being used. Signed-off-by: Yuan Yao Signed-off-by: Vinod Koul drivers/dma/fsl-edma.c | 85 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 82 insertions(+), 3 deletions(-) commit f0579c8ceaf18adf1eca8b4404f9caac37208655 Author: Andy Shevchenko Date: Tue Nov 17 18:00:30 2015 +0200 dmaengine: hsu: speed up residue calculation There is no need to calculate an overall length of the descriptor each time we call for DMA transfer status. Instead we do this at descriptor allocation stage and keep the stored length for further usage. Signed-off-by: Andy Shevchenko Signed-off-by: Vinod Koul drivers/dma/hsu/hsu.c | 17 ++++------------- drivers/dma/hsu/hsu.h | 1 + 2 files changed, 5 insertions(+), 13 deletions(-) commit f94cf9f4c54a72ccbd2078bb0cedd3691a71c431 Author: Andy Shevchenko Date: Tue Nov 17 13:34:26 2015 +0200 dmaengine: acpi-dma: check for 64-bit MMIO address Currently the match DMA controller is done only for lower 32 bits of address which might be not true on 64-bit platform. Check upper portion as well. Signed-off-by: Andy Shevchenko Signed-off-by: Vinod Koul drivers/dma/acpi-dma.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 390c49f7174a85d88ec080058d8b5c2e301d3f6b Author: Andy Shevchenko Date: Tue Nov 17 13:37:10 2015 +0200 dmaengine: idma64: use local variable to index descriptor Since a local variable contains the number of hardware desriptors at the beginning of idma64_desc_fill() we may use it to index the last descriptor as well. Signed-off-by: Andy Shevchenko Signed-off-by: Vinod Koul drivers/dma/idma64.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit ac02979413e0310f85bbcc2945d65da7071c08fe Author: Andy Shevchenko Date: Tue Nov 17 13:37:09 2015 +0200 dmaengine: idma64: convert idma64_hw_desc_fill() to return void Explicitly show in idma64_desc_fill() how we link the hardware descriptors. Signed-off-by: Andy Shevchenko Signed-off-by: Vinod Koul drivers/dma/idma64.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit e3fdb1894cfac6dd4a5bb24d3232fd97ddf74c93 Author: Andy Shevchenko Date: Tue Nov 17 13:37:08 2015 +0200 dmaengine: idma64: set maximum allowed segment size for DMA This tells, for example, IOMMU what the maximum size of a segment the DMA controller can send. Signed-off-by: Andy Shevchenko Signed-off-by: Vinod Koul drivers/dma/idma64.c | 2 ++ drivers/dma/idma64.h | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) commit 37580559f314bfba0c8bdae002bc5c10088ac457 Author: Andy Shevchenko Date: Tue Nov 17 13:37:07 2015 +0200 dmaengine: idma64: drop IRQ enable / disable in handler There is no need to disable interrupts in the IRQ handler. The driver guarantess that at one time only one descriptor is active, besides the fact that each call to the same channel will be serialized in idma64_chan_irq() handler anyway. Signed-off-by: Andy Shevchenko Signed-off-by: Vinod Koul drivers/dma/idma64.c | 8 -------- 1 file changed, 8 deletions(-) commit 95da0c19d164f6df0b71a5187950f47d4b746e91 Author: Ludovic Desroches Date: Mon Nov 23 14:09:39 2015 +0100 dmaengine: at_xdmac: fix spurious flag status for mem2mem transfers When setting the channel configuration register, the perid field is not set to 0 since it is useless for mem2mem transfers. Unfortunately, a device has 0 as perid. It could cause spurious flags status because the controller could mix some events from the two channels. For that reason, use the highest perid value for mem2mem transfers since it doesn't match the perid of other devices. Signed-off-by: Ludovic Desroches Acked-by: Nicolas Ferre Signed-off-by: Vinod Koul drivers/dma/at_xdmac.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) commit b1d6ab1aa8cdc23b89bcd578ea8d5e3c501a13d9 Author: Lars-Peter Clausen Date: Mon Nov 23 11:06:43 2015 +0100 dmaengine: Add might_sleep() to dmaengine_synchronize() Implementations of dmaengine_synchronize() are allowed to sleep, hence the function must not be called to from atomic context. Add might_sleep() to dmaengine_synchronize() to make it easier to detect non-compliant callers. Suggested-by: Andy Shevchenko Signed-off-by: Lars-Peter Clausen Signed-off-by: Vinod Koul include/linux/dmaengine.h | 2 ++ 1 file changed, 2 insertions(+) commit d9f5efade2cfd729138a7cafb46d01044da40f5e Author: Yoshihiro Shimoda Date: Thu Nov 12 13:37:40 2015 +0900 dmaengine: usb-dmac: fix endless loop in usb_dmac_chan_terminate_all() This patch fixes an issue that list_for_each_entry() in usb_dmac_chan_terminate_all() is possible to cause endless loop because this will move own desc to the desc_freed. So, this driver should use list_for_each_entry_safe() instead of list_for_each_entry(). Signed-off-by: Yoshihiro Shimoda Signed-off-by: Vinod Koul drivers/dma/sh/usb-dmac.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1a7cf7b26f2594bb1c622f76765f77d3a5140293 Author: Peter Ujfalusi Date: Wed Nov 11 12:37:58 2015 +0200 dmaengine: omap-dma: Handle cases when the channel is polled for completion When a DMA client driver decides that it is not providing callback for completion of a transfer (and/or does not set the DMA_PREP_INTERRUPT) but it will poll the status of the transfer (in case of short memcpy for example) we will not get interrupt for the completion of the transfer and will not mark the transaction as done. Check the channel enable bit in the CCR when the status is queried and if the channel is no longer active, we call the omap_dma_callback() to handle the transfer completion. Signed-off-by: Peter Ujfalusi Signed-off-by: Vinod Koul drivers/dma/omap-dma.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 1c1d25f9f933211b622b0e209716372480051361 Author: Peter Ujfalusi Date: Wed Nov 11 12:37:57 2015 +0200 dmaengine: omap-dma: Remove tasklet to start the transfers The use of tasklet to actually start the DMA transfer slightly decreases the DMA throughput since it adds small scheduling delay when the transfer is started. In normal use, even with high I/O load the tasklet would start one transaction at a time, however running the DMAtest for memcpy on all available channels will cause the tasklet to start about 15 transfers. The performance numbers on OMAP4 PandaBoard-es (test_buf_size = 6553): With the tasklet: dmatest: dma0chan30-copy: summary 5000 tests, 0 failures 186 iops 593 KB/s (0) dmatest: dma0chan8-copy0: summary 5000 tests, 0 failures 184 iops 584 KB/s (0) dmatest: dma0chan13-copy: summary 5000 tests, 0 failures 184 iops 585 KB/s (0) dmatest: dma0chan12-copy: summary 5000 tests, 0 failures 184 iops 585 KB/s (0) dmatest: dma0chan7-copy0: summary 5000 tests, 0 failures 183 iops 581 KB/s (0) With this patch (no tasklet): dmatest: dma0chan4-copy0: summary 5000 tests, 0 failures 199 iops 644 KB/s (0) dmatest: dma0chan5-copy0: summary 5000 tests, 0 failures 199 iops 645 KB/s (0) dmatest: dma0chan6-copy0: summary 5000 tests, 0 failures 199 iops 637 KB/s (0) dmatest: dma0chan24-copy: summary 5000 tests, 0 failures 199 iops 638 KB/s (0) dmatest: dma0chan16-copy: summary 5000 tests, 0 failures 199 iops 638 KB/s (0) Signed-off-by: Peter Ujfalusi Signed-off-by: Vinod Koul drivers/dma/omap-dma.c | 59 ++------------------------------------------------ 1 file changed, 2 insertions(+), 57 deletions(-) commit e8a5e79c17f977d1820ffe9b6ac259c953b3b34b Author: Peter Ujfalusi Date: Wed Nov 11 12:37:56 2015 +0200 dmaengine: omap-dma: Clean up the prep_slave_sg sg list walk code The for_each_sg() macro's last parameter is inteded to be used as counter. We can use 'i' instead of 'j' within the loop for indexes. Signed-off-by: Peter Ujfalusi Signed-off-by: Vinod Koul drivers/dma/omap-dma.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit adf850bcca4eec45f06c6ad3e297a350a8a319bc Author: Peter Ujfalusi Date: Wed Nov 11 12:37:55 2015 +0200 dmaengine: omap-dma: Correct status reporting for memcpy During mem copy both src and dst position moves at the same pace. Check the dst position for progress reporting. Signed-off-by: Peter Ujfalusi Tested-by: Tomi Valkeinen Signed-off-by: Jyri Sarha Signed-off-by: Vinod Koul drivers/dma/omap-dma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bcf5b3deb0d269a3a28ecf4c73e1c89121ba61d4 Author: Sander Vermin Date: Tue Dec 1 13:25:05 2015 -0800 Input: pixcir_i2c - add support for wake and enable gpios On some devices the wake and enable pins of the pixcir touchscreen controller are connected to gpios and these must be controlled by the driver for the device to operate properly. Signed-off-by: Sander Vermin Signed-off-by: Hans de Goede Acked-by: Rob Herring Signed-off-by: Dmitry Torokhov .../bindings/input/touchscreen/pixcir_i2c_ts.txt | 4 ++- drivers/input/touchscreen/pixcir_i2c_ts.c | 41 ++++++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) commit 703df6c097956d17a818e63961c82e8e9eef9fef Author: Andrew F. Davis Date: Mon Nov 23 10:53:51 2015 -0600 power: bq27xxx_battery: Reorganize I2C into a module Separate out I2C functionality into a module. This fixes several small issues and simplifies the driver initialization. Signed-off-by: Andrew F. Davis Signed-off-by: Sebastian Reichel drivers/power/Kconfig | 14 +- drivers/power/Makefile | 1 + drivers/power/bq27xxx_battery.c | 326 +++------------------------------- drivers/power/bq27xxx_battery_i2c.c | 150 ++++++++++++++++ include/linux/power/bq27xxx_battery.h | 57 ++++-- 5 files changed, 227 insertions(+), 321 deletions(-) commit 1f94b2563a02327aa8a1385c8a92b0c3f96d01b4 Author: NeilBrown Date: Wed Oct 7 20:42:38 2015 +0200 power: bq27xxx: don't fill system log by missing battery Print message that battery is not calibrated only once to avoid spamming the log. Suggested-By: H. Nikolaus Schaller Suggested-By: Pali Rohár Signed-off-by: Sebastian Reichel drivers/power/bq27xxx_battery.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d5fdfedc0ed946e96b2ac06d48b230e370105d7e Author: Saurabh Sengar Date: Thu Nov 19 12:42:59 2015 +0530 power: max8903_charger: set IRQF_ONESHOT if no primary handler is specified If no primary handler is specified for threaded_irq then a default one is assigned which always returns IRQ_WAKE_THREAD. This handler requires the IRQF_ONESHOT, because the source of interrupt is not disabled. Signed-off-by: Saurabh Sengar Signed-off-by: Sebastian Reichel drivers/power/max8903_charger.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit c4c0edfbf875a5ecb38a4aa65e2bdb87739e81d6 Author: Julia Lawall Date: Wed Nov 18 23:04:14 2015 +0100 power/reset: at91-reset: add missing of_node_put for_each_matching_node performs an of_node_get on each iteration, so a break out of the loop requires an of_node_put. A simplified version of the semantic patch that fixes this problem is as follows (http://coccinelle.lip6.fr): // @@ expression e,e1; local idexpression np; @@ for_each_matching_node(np, e1) { ... when != of_node_put(np) when != e = np ( return np; | + of_node_put(np); ? return ...; ) ... } // Signed-off-by: Julia Lawall Signed-off-by: Sebastian Reichel drivers/power/reset/at91-reset.c | 1 + 1 file changed, 1 insertion(+) commit 79fbdb66cf6ab4e26e7bcb8399ac02cd81fc5d6d Author: Julia Lawall Date: Fri Nov 13 19:41:34 2015 +0100 power: ds2782_battery: constify ds278x_battery_ops structure The ds278x_battery_ops structure is never modified, so declare it as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Sebastian Reichel drivers/power/ds2782_battery.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b7e16ec6e3d2ea0b62cf93a0e849db55f403a871 Author: Markus Elfring Date: Fri Nov 6 16:48:46 2015 +0100 power: bq2415x_charger: Delete unnecessary checks before the function call "of_node_put" The of_node_put() function tests whether its argument is NULL and then returns immediately. Thus the test around the calls is not needed. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring Acked-by: Pali Rohár Signed-off-by: Sebastian Reichel drivers/power/bq2415x_charger.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 41849d49d7d5307d7399314b59fb16d1c39ce0f0 Author: Lars-Peter Clausen Date: Sat Nov 21 12:14:44 2015 +0100 mtd: nand: r852: Remove unnecessary synchronize_irq() before free_irq() Calling synchronize_irq() right before free_irq() is quite useless. On one hand the IRQ can easily fire again before free_irq() is entered, on the other hand free_irq() itself calls synchronize_irq() internally (in a race condition free way), before any state associated with the IRQ is freed. Patch was generated using the following semantic patch: // @@ expression irq; @@ -synchronize_irq(irq); free_irq(irq, ...); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Brian Norris drivers/mtd/nand/r852.c | 1 - 1 file changed, 1 deletion(-) commit d6af26944a02e6d325b82160d52e08dc4e315396 Author: Heiner Kallweit Date: Tue Nov 17 20:18:54 2015 +0100 mtd: spi-nor: fix error handling in spi_nor_erase The documenting comment of mtd_erase in mtdcore.c states: Device drivers are supposed to call instr->callback() whenever the operation completes, even if it completes with a failure. Currently the callback isn't called in case of failure. Fix this. Signed-off-by: Heiner Kallweit Signed-off-by: Brian Norris drivers/mtd/spi-nor/spi-nor.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 0f6d3f4097d2746925986af5e34b864c5f6b2682 Author: Brian Norris Date: Fri Nov 20 17:38:33 2015 -0800 mtd: mtk-quadspi: drop unnecessary .owner assignment As of commit 807f16d4db95 ("mtd: core: set some defaults when dev.parent is set"), the MTD core will set this for us. Signed-off-by: Brian Norris Cc: Bayi Cheng drivers/mtd/spi-nor/mtk-quadspi.c | 1 - 1 file changed, 1 deletion(-) commit 2524534dbb2372a666f30e0da2f97cd7f0d7f76c Author: Brian Norris Date: Thu Nov 19 19:28:39 2015 -0800 mtd: partitions: turn PART() macro into inline function We can guard against reorganization of struct mtd_part by using container_of(). We can also make sure we're using the right pointer types by making this a static inline function instead of a macro. Signed-off-by: Brian Norris drivers/mtd/mtdpart.c | 63 +++++++++++++++++++++++++++------------------------ 1 file changed, 33 insertions(+), 30 deletions(-) commit 2141eaf0e896990ef1042f5bf558935523da69e9 Merge: 43dd7a8 4521b47 Author: David S. Miller Date: Fri Dec 4 16:56:23 2015 -0500 Merge branch 'qmi_wwan_MDM9x30' Bjørn Mork says: ==================== net: qmi_wwan: MDM9x30 support We add new device IDs all the time, often without any testing on actual hardware. This is usually OK as long as the device is similar to already supported devices, using the same chipset and firmware basis. But the Sierra Wireless MC7455 is an example of a new chipset generation. Adding it based on assumed similarity with its ancestors proved too optimistic. This series adds the missing bits and pieces necessary to support LTE Advanced modems based on the Qualcomm MDM9x30 chipset. A big thanks to Sierra Wireless for providing MC7455 samples for testing The most important change is the "raw-ip" support. The series also adds a necessary control request, removes an unsupported device ID, and adds a driver specific entry in MAINTAINERS. A few random notes about "raw-ip": "I rather have these all running in raw IP mode. The 802.3 framing is utterly stupid." - Marcel Holtmann in Jan 2012 [1] Marcel was right. I should have listened to him. What more can I say? The 802.3 framing has provided a steady supply of firmware bugs for many years. We've added driver workarounds for many of these, but there are still known bugs where the workaround is so yucky that we have refused to apply it. But all that is over now. The latest generation Qualcomm chips no longer supports 802.3 framing at all. I had two open questions regarding the "raw-ip" userspace API: 1) Should we continue faking an ethernet device, even if we don't use the L2 headers on the USB link anymore? There was a vote in favour of the "headerless" device. This is the honest representation of the hardware/firmware interface. 2) What input should the driver base its framing on? Snooping or directly manipulating QMI is considered out of the question. We delegated all QMI handling to userspace from the beginning. We have so far required userspace to configure the firmware for "802.3" framing, or fail if that proved impossible. This requirement is now changed. Userspace must now inform the driver if it negotiates "raw-ip" framing. Two alternative interfaces were proposed: - ethtool private driver flag, or - sysfs file The NetworkManager/ModemManager developers were in favour of the sysfs alternative. These questions (or any other you migh have :) are of course still open. This patch set presents the solutions I currently prefer, considering the above. All comments are appreciated, even simple '+1' ones. ==================== Signed-off-by: David S. Miller commit 4521b4774e4b17241493be8efeea188eda2333d0 Author: Bjørn Mork Date: Thu Dec 3 19:24:23 2015 +0100 MAINTAINERS: add qmi_wwan driver entry Signed-off-by: Bjørn Mork Signed-off-by: David S. Miller MAINTAINERS | 7 +++++++ 1 file changed, 7 insertions(+) commit 40dd0d9486a9cfa32ee288a739b3d8fa4b750913 Author: Bjørn Mork Date: Thu Dec 3 19:24:22 2015 +0100 net: qmi_wwan: document the qmi/raw_ip sysfs file Signed-off-by: Bjørn Mork Signed-off-by: David S. Miller Documentation/ABI/testing/sysfs-class-net-qmi | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit 32f7adf633b9f99ad5089901bc7ebff57704aaa9 Author: Bjørn Mork Date: Thu Dec 3 19:24:21 2015 +0100 net: qmi_wwan: support "raw IP" mode QMI wwan devices have traditionally emulated ethernet devices by default. But they have always had the capability of operating without any L2 header at all, transmitting and receiving "raw" IP packets over the USB link. This firmware feature used to be configurable through the QMI management protocol. Traditionally there was no way to verify the firmware mode without attempting to change it. And the firmware would often disallow changes anyway, i.e. due to a session already being established. In some cases, this could be a hidden firmware internal session, completely outside host control. For these reasons, sticking with the "well known" default mode was safest. But newer generations of QMI hardware and firmware have moved towards defaulting to "raw IP" mode instead, followed by an increasing number of bugs in the already buggy "802.3" firmware implementation. At the same time, the QMI management protocol gained the ability to detect the current mode. This has enabled the userspace QMI management application to verify the current firmware mode without trying to modify it. Following this development, the latest QMI hardware and firmware (the MDM9x30 generation) has dropped support for "802.3" mode entirely. Support for "raw IP" framing in the driver is therefore necessary for these devices, and to a certain degree to work around problems with the previous generation, This patch adds support for "raw IP" framing for QMI devices, changing the netdev from an ethernet device to an ARPHRD_NONE p-t-p device when "raw IP" framing is enabled. The firmware setup is fully delegated to the QMI userspace management application, through simple tunneling of the QMI protocol. The driver will therefore not know which mode has been "negotiated" between firmware and userspace. Allowing userspace to inform the driver of the result through a sysfs switch is considered a better alternative than to change the well established clean delegation of firmware management to userspace. Signed-off-by: Bjørn Mork Signed-off-by: David S. Miller drivers/net/usb/qmi_wwan.c | 98 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 97 insertions(+), 1 deletion(-) commit 81e0ce79f2919dbd5f025894d29aa806af8695c7 Author: Bjørn Mork Date: Thu Dec 3 19:24:20 2015 +0100 usbnet: allow mini-drivers to consume L2 headers Assume the minidriver has taken care of all L2 header parsing if it sets skb->protocol. This allows the minidriver to support non-ethernet L2 headers, and even operate without any L2 header at all. Signed-off-by: Bjørn Mork Acked-by: Oliver Neukum Signed-off-by: David S. Miller drivers/net/usb/usbnet.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 544c8f6507303e921979ac99f46f00a88b42b6e8 Author: Bjørn Mork Date: Thu Dec 3 19:24:19 2015 +0100 net: qmi_wwan: remove 1199:9070 device id This turned out to be a bootloader device ID. No need for that in this driver. It will only provide a single serial function. Signed-off-by: Bjørn Mork Signed-off-by: David S. Miller drivers/net/usb/qmi_wwan.c | 2 -- 1 file changed, 2 deletions(-) commit 93725149794d3d418cf1eddcae60c7b536c5faa1 Author: Bjørn Mork Date: Thu Dec 3 19:24:18 2015 +0100 net: qmi_wwan: MDM9x30 specific power management MDM9x30 based modems appear to go into a deeper sleep when suspended without "Remote Wakeup" enabled. The QMI interface will not respond unless a "set DTR" control request is sent on resume. The effect is similar to a QMI_CTL SYNC request, resetting (some of) the firmware state. We allow userspace sessions to span multiple character device open/close sequences. This means that userspace can depend on firmware state while both the netdev and the character device are closed. We have disabled "needs_remote_wakeup" at this point to allow devices without remote wakeup support to be auto-suspended. To make sure the MDM9x30 keeps firmware state, we need to keep "needs_remote_wakeup" always set. We also need to issue a "set DTR" request to enable the QMI interface. Signed-off-by: Bjørn Mork Signed-off-by: David S. Miller drivers/net/usb/qmi_wwan.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) commit b56b36ee6751abe7fb3890681e86fc8de2122953 Author: Josh Poimboeuf Date: Thu Dec 3 16:33:26 2015 -0600 livepatch: Cleanup module page permission changes Calling set_memory_rw() and set_memory_ro() for every iteration of the loop in klp_write_object_relocations() is messy, inefficient, and error-prone. Change all the read-only pages to read-write before the loop and convert them back to read-only again afterwards. Suggested-by: Miroslav Benes Signed-off-by: Josh Poimboeuf Reviewed-by: Petr Mladek Signed-off-by: Jiri Kosina arch/x86/kernel/livepatch.c | 25 ++----------------------- kernel/livepatch/core.c | 16 +++++++++++----- 2 files changed, 13 insertions(+), 28 deletions(-) commit fc284d631894d8673d229fad92762b66c9875cab Merge: 444f9e9 e022441 Author: Jiri Kosina Date: Fri Dec 4 22:48:30 2015 +0100 Merge branch 'from-rusty/modules-next' into for-4.5/core As agreed with Rusty, we're taking a current module-next pile through livepatching.git, as it contains solely patches that are pre-requisity for module page protection cleanups in livepatching. Rusty will be restarting module-next from scratch. Signed-off-by: Jiri Kosina commit e0224418516b4d8a6c2160574bac18447c354ef0 Author: Miroslav Benes Date: Thu Nov 26 13:18:06 2015 +1030 module: keep percpu symbols in module's symtab Currently, percpu symbols from .data..percpu ELF section of a module are not copied over and stored in final symtab array of struct module. Consequently such symbol cannot be returned via kallsyms API (for example kallsyms_lookup_name). This can be especially confusing when the percpu symbol is exported. Only its __ksymtab et al. are present in its symtab. The culprit is in layout_and_allocate() function where SHF_ALLOC flag is dropped for .data..percpu section. There is in fact no need to copy the section to final struct module, because kernel module loader allocates extra percpu section by itself. Unfortunately only symbols from SHF_ALLOC sections are copied due to a check in is_core_symbol(). The patch changes is_core_symbol() function to copy over also percpu symbols (their st_shndx points to .data..percpu ELF section). We do it only if CONFIG_KALLSYMS_ALL is set to be consistent with the rest of the function (ELF section is SHF_ALLOC but !SHF_EXECINSTR). Finally elf_type() returns type 'a' for a percpu symbol because its address is absolute. Signed-off-by: Miroslav Benes Signed-off-by: Rusty Russell Signed-off-by: Jiri Kosina kernel/module.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit 85c898db6327353d38f3dd428457384cf81f83f8 Author: Rusty Russell Date: Thu Nov 26 09:45:08 2015 +1030 module: clean up RO/NX handling. Modules have three sections: text, rodata and writable data. The code handled the case where these overlapped, however they never can: debug_align() ensures they are always page-aligned. This is why we got away with manually traversing the pages in set_all_modules_text_rw() without rounding. We create three helper functions: frob_text(), frob_rodata() and frob_writable_data(). We then call these explicitly at every point, so it's clear what we're doing. We also expose module_enable_ro() and module_disable_ro() for livepatch to use. Reviewed-by: Josh Poimboeuf Signed-off-by: Rusty Russell Signed-off-by: Jiri Kosina include/linux/module.h | 4 ++ kernel/module.c | 168 +++++++++++++++++++++++-------------------------- 2 files changed, 81 insertions(+), 91 deletions(-) commit 7523e4dc5057e157212b4741abd6256e03404cf1 Author: Rusty Russell Date: Thu Nov 26 09:44:08 2015 +1030 module: use a structure to encapsulate layout. Makes it easier to handle init vs core cleanly, though the change is fairly invasive across random architectures. It simplifies the rbtree code immediately, however, while keeping the core data together in the same cachline (now iff the rbtree code is enabled). Acked-by: Peter Zijlstra Reviewed-by: Josh Poimboeuf Signed-off-by: Rusty Russell Signed-off-by: Jiri Kosina arch/alpha/kernel/module.c | 2 +- arch/arc/kernel/unwind.c | 4 +- arch/arm/kernel/module-plts.c | 2 +- arch/avr32/kernel/module.c | 12 +-- arch/ia64/kernel/module.c | 14 +-- arch/metag/kernel/module.c | 4 +- arch/mips/kernel/vpe.c | 6 +- arch/parisc/kernel/module.c | 32 +++---- arch/powerpc/kernel/module_32.c | 6 +- arch/s390/kernel/module.c | 22 ++--- arch/x86/kernel/livepatch.c | 6 +- include/linux/module.h | 64 ++++++------- kernel/debug/kdb/kdb_main.c | 4 +- kernel/module.c | 199 +++++++++++++++++++--------------------- 14 files changed, 178 insertions(+), 199 deletions(-) commit c65abf358f211c3f88c8ed714dff25775ab49fc1 Author: Rusty Russell Date: Thu Nov 26 09:43:08 2015 +1030 gcov: use within_module() helper. An exact mapping would be within_module_core(), but at this stage (MODULE_STATE_GOING) the init section is empty, and this is clearer. Reviewed-by: Peter Oberparleiter Signed-off-by: Rusty Russell Signed-off-by: Jiri Kosina kernel/gcov/base.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 20ef10c1b3068f105004e247d8e7dd8120fa4b9a Author: Josh Poimboeuf Date: Thu Nov 26 09:42:08 2015 +1030 module: Use the same logic for setting and unsetting RO/NX When setting a module's RO and NX permissions, set_section_ro_nx() is used, but when clearing them, unset_module_{init,core}_ro_nx() are used. The unset functions don't have the same checks the set function has for partial page protections. It's probably harmless, but it's still confusingly asymmetrical. Instead, use the same logic to do both. Also add some new set_module_{init,core}_ro_nx() helper functions for more symmetry with the unset functions. Signed-off-by: Josh Poimboeuf Signed-off-by: Rusty Russell Signed-off-by: Jiri Kosina kernel/module.c | 57 ++++++++++++++++++++++++++++++--------------------------- 1 file changed, 30 insertions(+), 27 deletions(-) commit 0cab80ee0c9e17337468c4c0f96786ccbca693d9 Author: Chao Yu Date: Tue Dec 1 11:36:16 2015 +0800 f2fs: fix to convert inline inode in ->setattr In commit 3c4541452748 ("f2fs: do not trim preallocated blocks when truncating after i_size"), in order to follow the regulation: "truncate(x) where x > i_size will not trim all blocks past i_size." like other file systems, in ->setattr we invoked truncate_setsize instead of f2fs_truncate to avoid unneeded block trimming in such case, but forgot to call f2fs_convert_inline_inode keep consistency of inline data conversion rule. This patch fixes to convert inline data if necessary. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/file.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 03a97d825573de7b6ff1b44f257345efbff2161a Author: Daniel Vetter Date: Fri Dec 4 17:55:47 2015 +0100 drm/i915: Update DRIVER_DATE to 20151204 Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2f073848c3cc8aff2655ab7c46d8c0de90cf4e50 Author: Paul E. McKenney Date: Mon Oct 12 16:56:42 2015 -0700 list: Use WRITE_ONCE() when initializing list_head structures Code that does lockless emptiness testing of non-RCU lists is relying on INIT_LIST_HEAD() to write the list head's ->next pointer atomically, particularly when INIT_LIST_HEAD() is invoked from list_del_init(). This commit therefore adds WRITE_ONCE() to this function's pointer stores that could affect the head's ->next pointer. Reported-by: Andrey Konovalov Signed-off-by: Paul E. McKenney include/linux/list.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7d86dccf28a3ae2f790f399fc82d4c82521fd078 Author: Petko Manolov Date: Mon Oct 12 18:23:51 2015 +0300 list: Introduces generic list_splice_tail_init_rcu() The list_splice_init_rcu() can be used as a stack onto which full lists are pushed, but queue-like behavior is now needed by some security policies. This requires a list_splice_tail_init_rcu(). This commit therefore supplies a list_splice_tail_init_rcu() by pulling code common it and to list_splice_init_rcu() into a new __list_splice_init_rcu() function. This new function is based on the existing list_splice_init_rcu() implementation. Signed-off-by: Petko Manolov Cc: Mimi Zohar Signed-off-by: Paul E. McKenney include/linux/rculist.h | 69 +++++++++++++++++++++++++++++++++++-------------- 1 file changed, 49 insertions(+), 20 deletions(-) commit 46a5d164db53ba6066b11889abb7fa6bddbe5cf7 Author: Paul E. McKenney Date: Wed Oct 7 09:10:48 2015 -0700 rcu: Stop disabling interrupts in scheduler fastpaths We need the scheduler's fastpaths to be, well, fast, and unnecessarily disabling and re-enabling interrupts is not necessarily consistent with this goal. Especially given that there are regions of the scheduler that already have interrupts disabled. This commit therefore moves the call to rcu_note_context_switch() to one of the interrupts-disabled regions of the scheduler, and removes the now-redundant disabling and re-enabling of interrupts from rcu_note_context_switch() and the functions it calls. Reported-by: Peter Zijlstra Signed-off-by: Paul E. McKenney [ paulmck: Shift rcu_note_context_switch() to avoid deadlock, as suggested by Peter Zijlstra. ] include/linux/rcutree.h | 2 +- kernel/rcu/tree.c | 27 ++++++++++++--------------- kernel/rcu/tree_plugin.h | 14 ++++++-------- kernel/sched/core.c | 6 ++++-- 4 files changed, 23 insertions(+), 26 deletions(-) commit f0f2e7d307fff226e0c1df5a07101a1216a46d8a Author: Paul E. McKenney Date: Tue Sep 29 08:59:32 2015 -0700 rcu: Avoid tick_nohz_active checks on NOCBs CPUs Currently, rcu_prepare_for_idle() checks for tick_nohz_active, even on individual NOCBs CPUs, unless all CPUs are marked as NOCBs CPUs at build time. This check is pointless on NOCBs CPUs because they never have any callbacks posted, given that all of their callbacks are handed off to the corresponding rcuo kthread. There is a check for individually designated NOCBs CPUs, but it pointelessly follows the check for tick_nohz_active. This commit therefore moves the check for individually designated NOCBs CPUs up with the check for CONFIG_RCU_NOCB_CPU_ALL. Signed-off-by: Paul E. McKenney kernel/rcu/tree_plugin.h | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 699d40352059e64a4d993af170272585c41988d0 Author: Paul E. McKenney Date: Tue Sep 29 08:47:49 2015 -0700 rcu: Fix obsolete rcu_bootup_announce_oddness() comment This function no longer has #ifdefs, so this commit removes the header comment calling them out. Signed-off-by: Paul E. McKenney kernel/rcu/tree_plugin.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 8ba9153b2c3ab733d64e22adb57820ccb6afc496 Author: Paul E. McKenney Date: Tue Sep 29 07:55:41 2015 -0700 rcu: Remove lock-acquisition loop from rcu_read_unlock_special() Several releases have come and gone without the warning triggering, so remove the lock-acquisition loop. Retain the WARN_ON_ONCE() out of sheer paranoia. Signed-off-by: Paul E. McKenney kernel/rcu/tree_plugin.h | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) commit fecbf6f01fbd83e6419ccb7f61d9a6eb987f1d92 Author: Paul E. McKenney Date: Mon Sep 28 18:19:24 2015 -0700 rcu: Simplify rcu_sched_qs() control flow This commit applies an early-exit approach to rcu_sched_qs(), reducing the nesting level and saving a line of code. Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) commit 47dbc90663f697a4515a8dd5c99ae43dba108cb4 Author: Paul Gortmaker Date: Sun Sep 27 19:14:57 2015 -0400 kernel: Make rcu/tree_trace.c explicitly non-modular The Kconfig currently controlling compilation of this code is: init/Kconfig:config TREE_RCU_TRACE init/Kconfig: def_bool RCU_TRACE && ( TREE_RCU || PREEMPT_RCU ) ...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 file 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 could consider moving this to an earlier initcall if desired. We don't replace module.h with init.h since the file already has that. We also delete the moduleparam.h include that is left over from commit 64db4cfff99c04cd5f550357edcc8780f96b54a2 (""Tree RCU": scalable classic RCU implementation") since it is not needed here either. We morph some tags like MODULE_AUTHOR into the comments at the top of the file for documentation purposes. Cc: "Paul E. McKenney" Cc: Josh Triplett Reviewed-by: Josh Triplett Cc: Steven Rostedt Cc: Mathieu Desnoyers Cc: Lai Jiangshan Signed-off-by: Paul Gortmaker Signed-off-by: Paul E. McKenney kernel/rcu/tree_trace.c | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) commit 3dc5dbe9a1b815b659a6b04540fc6fd4b4e3831b Author: Paul E. McKenney Date: Sat Sep 26 14:51:24 2015 -0700 rcu: Move lock_class_key to local scope Currently, the rcu_node_class[], rcu_fqs_class[], and rcu_exp_class[] arrays needlessly pollute the global namespace within tree.c. This commit therefore converts them to static local variables within rcu_init_one(). Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 3e42ec1aa716f10c68294b8492ae3ea684528699 Author: Paul E. McKenney Date: Wed Nov 25 18:56:00 2015 -0800 rcu: Allow expedited grace periods to be disabled at init Expedited grace periods can speed up boot, but are undesirable in aggressive real-time systems. This commit therefore introduces a kernel parameter rcupdate.rcu_normal_after_boot that disables expedited grace periods just before init is spawned. Signed-off-by: Paul E. McKenney Documentation/kernel-parameters.txt | 5 +++++ kernel/rcu/update.c | 5 +++++ 2 files changed, 10 insertions(+) commit 967dcb8fe6a9a75be346400539261e0416baf370 Author: Paul E. McKenney Date: Wed Nov 25 16:52:36 2015 -0800 rcu: Wire up rcu_end_inkernel_boot() This commit adds the invocation of rcu_end_inkernel_boot() just before init is invoked. This allows the CONFIG_RCU_EXPEDITE_BOOT Kconfig option to do something useful and prepares for the upcoming rcupdate.rcu_normal_after_boot kernel parameter. Signed-off-by: Paul E. McKenney init/main.c | 2 ++ 1 file changed, 2 insertions(+) commit 5a9be7c628c5273f84abacebf7faf2488376e0f0 Author: Paul E. McKenney Date: Tue Nov 24 15:44:06 2015 -0800 rcu: Add rcu_normal kernel parameter to suppress expediting Although expedited grace periods can be quite useful, and although their OS jitter has been greatly reduced, they can still pose problems for extreme real-time workloads. This commit therefore adds a rcu_normal kernel boot parameter (which can also be manipulated via sysfs) to suppress expedited grace periods, that is, to treat requests for expedited grace periods as if they were requests for normal grace periods. If both rcu_expedited and rcu_normal are specified, rcu_normal wins. This means that if you are relying on expedited grace periods to speed up boot, you will want to specify rcu_expedited on the kernel command line, and then specify rcu_normal via sysfs once boot completes. Signed-off-by: Paul E. McKenney Documentation/kernel-parameters.txt | 19 ++++++++++++++----- include/linux/rcupdate.h | 6 ++++++ kernel/ksysfs.c | 22 ++++++++++++++++++++-- kernel/rcu/srcu.c | 2 +- kernel/rcu/tree.c | 6 ++++++ kernel/rcu/tree_plugin.h | 6 ++++++ kernel/rcu/update.c | 12 ++++++++++++ 7 files changed, 65 insertions(+), 8 deletions(-) commit 72611ab9f5d2d384a04e72d560c9c82463115cbf Author: Paul E. McKenney Date: Tue Nov 17 13:25:21 2015 -0800 rcu: Add more diagnostics to expedited stall warning messages. This commit adds print statements that check the rcu_node structure to find which ->expmask bits and which ->exp_tasks structures are blocking the current expedited grace period. Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) commit 73f36f9de8bed78bcda2704a348594c20518b455 Author: Paul E. McKenney Date: Tue Nov 17 10:56:55 2015 -0800 rcu: Make expedited grace periods resolve stall-warning ties Currently, if a grace period ends just as the stall-warning timeout fires, an empty stall warning will be printed. This is not helpful, so this commit avoids these useless warnings by rechecking completion after awakening in synchronize_sched_expedited_wait(). Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit df5bd5144a80a9f6c3807383b11f735dae9caf9d Author: Paul E. McKenney Date: Thu Oct 1 10:26:24 2015 -0700 rcu: Reduce expedited GP memory contention via per-CPU variables Currently, the piggybacked-work checks carried out by sync_exp_work_done() atomically increment a small set of variables (the ->expedited_workdone0, ->expedited_workdone1, ->expedited_workdone2, ->expedited_workdone3 fields in the rcu_state structure), which will form a memory-contention bottleneck given a sufficiently large number of CPUs concurrently invoking either synchronize_rcu_expedited() or synchronize_sched_expedited(). This commit therefore moves these for fields to the per-CPU rcu_data structure, eliminating the memory contention. The show_rcuexp() function also changes to sum up each field in the rcu_data structures. Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 11 +++++------ kernel/rcu/tree.h | 8 ++++---- kernel/rcu/tree_trace.c | 18 ++++++++++++------ 3 files changed, 21 insertions(+), 16 deletions(-) commit 1307f2148719cc9e9d12f5fa7d5b3b61ec5aef72 Author: Paul E. McKenney Date: Tue Sep 29 15:29:21 2015 -0700 rcu: Invert sync_rcu_exp_select_cpus() "if" statement This commit saves a couple lines of code and reduces indentation by inverting the sense of an "if" statement in the function sync_rcu_exp_select_cpus(). Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) commit 886ef5a18a4a771d5fdc0e23ae9373bb35d529e7 Author: Paul E. McKenney Date: Tue Sep 29 12:34:40 2015 -0700 rcu: Move smp_mb() from rcu_seq_snap() to rcu_exp_gp_seq_snap() The memory barrier in rcu_seq_snap() is needed only for grace periods, so this commit moves it to the grace-period-oriented wrapper rcu_exp_gp_seq_snap(). Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1de6e56ddc043437d335ee0455a1b34b73510c91 Author: Paul E. McKenney Date: Tue Sep 29 09:45:00 2015 -0700 rcu: Clarify role of ->expmaskinitnext Analogy with the ->qsmaskinitnext field might lead one to believe that ->expmaskinitnext tracks online CPUs. This belief is incorrect: Any CPU that has ever been online will have its bit set in the ->expmaskinitnext field. This commit therefore adds a comment to make this clear, at least to people who read comments. Signed-off-by: Paul E. McKenney kernel/rcu/tree.h | 2 ++ 1 file changed, 2 insertions(+) commit 06f60de19d3141f07d954c9275fe7ccca8e96b42 Author: Paul E. McKenney Date: Tue Sep 29 08:15:52 2015 -0700 rcu: Short-circuit synchronize_sched_expedited() if only one CPU If there is only one CPU, then invoking synchronize_sched_expedited() is by definition a grace period. This commit checks for this condition and does a short-circuit return in that case. Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 4 ++++ 1 file changed, 4 insertions(+) commit 3519e3f992995d46c200134cfbf84c61b7a01f4c Author: Chao Yu Date: Tue Dec 1 11:56:52 2015 +0800 f2fs: use sbi->blocks_per_seg to avoid unnecessary calculation Use sbi->blocks_per_seg directly to avoid unnecessary calculation when using 1 << sbi->log_blocks_per_seg. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/debug.c | 2 +- fs/f2fs/f2fs.h | 3 +-- fs/f2fs/file.c | 5 ++--- fs/f2fs/gc.c | 4 ++-- fs/f2fs/node.h | 2 +- 5 files changed, 7 insertions(+), 9 deletions(-) commit 9006f2c93fe5cc450bc0d3a4924b46393f165b4a Author: Chao Yu Date: Tue Dec 1 11:47:33 2015 +0800 f2fs: kill f2fs_drop_largest_extent For direct IO, f2fs only allocate new address for the block which is not exist in the disk before, its mapping info should not exist in extent cache previously, so here we do not need to call f2fs_drop_largest_extent to drop related cache. Due to no more callers for f2fs_drop_largest_extent now, kill it. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 4 ---- fs/f2fs/extent_cache.c | 8 -------- fs/f2fs/f2fs.h | 1 - 3 files changed, 13 deletions(-) commit b7973f2378c619d0e17a075f13350bd58a9ebe3d Author: Chao Yu Date: Tue Dec 1 11:43:59 2015 +0800 f2fs: clean up argument of recover_data In recover_data, value of argument 'type' will be CURSEG_WARM_NODE all the time, remove it for cleanup. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/recovery.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 855639decaa7ba5f356d6928c744a0ae1977c134 Author: Chao Yu Date: Tue Dec 1 11:42:54 2015 +0800 f2fs: clean up code with __has_cursum_space Clean up codes in lookup_journal_in_cursum() with __has_cursum_space(). Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/segment.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e9837bc2a4a407ee366143cf721ee77154ac051e Author: Chao Yu Date: Tue Dec 1 11:41:50 2015 +0800 f2fs: clean up error path in f2fs_readdir No logic changes, just clean up the error path. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/dir.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit 5c5fb40de8f14391a1238db05cef88754faf9229 Author: Petr Štetiar Date: Fri Nov 27 11:56:34 2015 +0100 PCI: imx6: Add support for active-low reset GPIO We previously used of_get_named_gpio(), which ignores the OF flags cell, so the reset GPIO defaulted to "active high." This doesn't work on the Toradex Apalis SoM with Ixora base board, which has an active-low reset GPIO. Use devm_gpiod_get_optional() instead so we pay attention to the active high/low flag. This also adds support for GPIOs described via ACPI. [bhelgaas: changelog] Signed-off-by: Petr Štetiar Signed-off-by: Bjorn Helgaas Reviewed-by: Lucas Stach drivers/pci/host/pci-imx6.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) commit 807b1e1c8e08452948495b1a9985ab46d329e5c2 Author: Jaegeuk Kim Date: Thu Dec 3 14:14:40 2015 -0800 f2fs: do not recover from previous remained wrong dnodes If device does not support discard, some obsolete dnodes can be recovered by roll-forward. This patch enhances the recovery flow. Signed-off-by: Jaegeuk Kim fs/f2fs/recovery.c | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) commit 760de7914e27781abb44564449c761ea4440f982 Author: Jaegeuk Kim Date: Mon Nov 30 16:26:44 2015 -0800 f2fs: avoid deadlock in f2fs_shrink_extent_tree While handling extent trees, we can enter into a reclaiming path anytime. If it tries to release some extent nodes in the same extent tree, write_lock(&et->lock) would be hanged. In order to avoid the deadlock, we can just skip it. Note that, if it is an unreferenced tree, we should get write_lock(&et->lock) successfully and release all of therein nodes. Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/extent_cache.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 57b62d29ad5b384775974973087d47755a8c6fcc Author: Chao Yu Date: Thu Nov 19 16:09:07 2015 +0800 f2fs: fix to report error in f2fs_readdir get_lock_data_page in f2fs_readdir can fail due to a lot of reasons (i.e. no memory or IO error...), it's better to report this kind of error to user rather than ignoring it. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/dir.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit f478f43fa0d8f38537848d298980955244afdaee Author: Chao Yu Date: Fri Nov 13 18:27:35 2015 +0800 f2fs: clear page uptodate when dropping cache for atomic write We should clear uptodate flag for all pages atomic written when we drop them, otherwise before these cached pages were reclaimed or invalidated eventually, we will see invalid data when hitting them again. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/segment.c | 1 + 1 file changed, 1 insertion(+) commit 692223d132067ef2c392adec6f1324d581496212 Author: Fan Li Date: Thu Nov 12 08:43:04 2015 +0800 f2fs: optimize __find_rev_next_bit 1. Skip __reverse_ulong if the bitmap is empty. 2. Reduce branches and codes. According to my test, the performance of this new version is 5% higher on an empty bitmap of 64bytes, and remains about the same in the worst scenario. Signed-off-by: Fan li Signed-off-by: Jaegeuk Kim fs/f2fs/segment.c | 46 ++++++++++++++++++---------------------------- 1 file changed, 18 insertions(+), 28 deletions(-) commit eb7e813cc791735f2428202d5249a8fd769df1f3 Author: Chao Yu Date: Tue Nov 10 18:45:07 2015 +0800 f2fs: fix to remove directory inode from dirty list If last dirty dentry page was writebacked in reclaim path, we should remove its directory inode from global dirty list to avoid unnecessary flush for this inode when doing checkpoint. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 04ef4b626c324a7529c80ffc45787b274a6fa68a Author: Chao Yu Date: Tue Nov 10 18:44:20 2015 +0800 f2fs: fix to enable missing ioctl interfaces in ->compat_ioctl In 64-bit kernel f2fs can supports 32-bit ioctl system call by identifying encoded code which is converted from 32-bit one to 64-bit one in ->compat_ioctl. When we introduced new interfaces in ->ioctl, we forgot to enable them in ->compat_ioctl, so enable them for fixing. Signed-off-by: Chao Yu [Jaegeuk Kim: fix wrongly added spaces together] Signed-off-by: Jaegeuk Kim fs/f2fs/f2fs.h | 5 +++-- fs/f2fs/file.c | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) commit 29ba108d9ba44600961418a352871eb967d68c20 Author: Chao Yu Date: Mon Nov 16 20:38:25 2015 +0800 f2fs: fix memory leak of kobject in error path of fill_super f2fs_sb_info::s_kobj should be released in error path of fill_super, otherwise it will lead to memory leak. This bug was found by kmemleak: dmesg: kmemleak: 2 new suspected memory leaks (see /sys/kernel/debug/kmemleak) cat /sys/kernel/debug/kmemleak unreferenced object 0xffff8800838dc358 (size 8): comm "mount", pid 4154, jiffies 4297482839 (age 1911.412s) hex dump (first 8 bytes): 7a 72 61 6d 31 00 ff ff zram1... backtrace: [] kmemleak_alloc+0x28/0x50 [] __kmalloc_track_caller+0xef/0x1c0 [] kstrdup+0x45/0x80 [] kstrdup_const+0x28/0x30 [] kvasprintf_const+0x63/0xa0 [] kobject_set_name_vargs+0x3c/0xa0 [] kobject_add_varg+0x25/0x60 [] kobject_init_and_add+0x53/0x70 [] f2fs_fill_super+0x9d9/0xc40 [f2fs] [] mount_bdev+0x192/0x1d0 [] f2fs_mount+0x15/0x20 [f2fs] [] mount_fs+0x43/0x170 [] vfs_kern_mount+0x76/0x160 [] do_mount+0x258/0xdc0 [] SyS_mount+0x7b/0xc0 [] entry_SYSCALL_64_fastpath+0x12/0x6f ... Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/super.c | 2 ++ 1 file changed, 2 insertions(+) commit 4bb9998d388b48dc0a4128bd1f4d85f09ec3b705 Author: Masanari Iida Date: Mon Nov 16 20:46:28 2015 +0900 Doc: f2fs: Fix typos in Documentation/filesystems/f2fs.txt This patch fix some typos in Documentation/filesystems/f2fs.txt Signed-off-by: Masanari Iida Acked-by: Randy Dunlap Signed-off-by: Jaegeuk Kim Documentation/filesystems/f2fs.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit d323d005ac4a2d413128267af76bb9d71f7303da Author: Chao Yu Date: Tue Oct 27 09:53:45 2015 +0800 f2fs: support file defragment This patch introduces a new ioctl F2FS_IOC_DEFRAGMENT to support file defragment in a specified range of regular file. This ioctl can be used in very limited workload: if user expects high sequential read performance in randomly written file, this interface can be used for defragmentation, after that file can be written as continuous as possible in the device. Meanwhile, it has side-effect, it will make holes in segments where blocks located originally, so it's better to trigger GC to eliminate fragment in segments. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 6 +- fs/f2fs/f2fs.h | 8 +++ fs/f2fs/file.c | 195 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 208 insertions(+), 1 deletion(-) commit 2da3e027461ab0148384b02bd5905f1a7b335dff Author: Chao Yu Date: Wed Oct 28 17:56:14 2015 +0800 f2fs: commit atomic written page in LFS mode We should always commit atomic written pages in LFS mode, otherwise data will become corrupted if we encounter suddent power cut after partial pages committed in IPU mode. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 1 + 1 file changed, 1 insertion(+) commit 787c7b8cb3c5196f77e4682e0b1c71375e74822c Author: Chao Yu Date: Thu Oct 29 09:13:04 2015 +0800 f2fs: report error of f2fs_create_root_stats f2fs_create_root_stats can fail due to no memory, report it to user. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/debug.c | 7 +++++-- fs/f2fs/f2fs.h | 4 ++-- fs/f2fs/super.c | 6 +++++- 3 files changed, 12 insertions(+), 5 deletions(-) commit 43dd7a8bb69bf9771d8e61d6f051f76de95e22b9 Merge: ce3ea1c 8044f97 Author: David S. Miller Date: Fri Dec 4 14:36:16 2015 -0500 Merge branch 'hip06-soc' Salil Mehta says: ==================== net:hns: Add support of Hip06 SoC to the Hislicon Network Subsystem This PATCH V7 addresses the TAB formatting comments by Sergei Shtylyov. Missing TABs at some other palces have also been corrected. PATCH V6: This addresses the review comments provided by David Miller over the existing use of ENABLE/DISABLE hash defines with the code. These hash defines are doing a similar job as implicit type bool would do. So these are kind of duplicate and are redundant. PATCH V5: This PATCH addresses the review comments by Yuval Mintz . This rework of comments are basically related to: 1) styling of the code, 2) RSS default Key initiailization related code 3) redundant code removal PATCH V4: This addresses the review comment provided by Sergei Shtylyov. The changelog of every patch has also been modified. PATCH V3: Addresses the review comment floated by David Miller PATCH V2: 1) Bug Fixes and Clean-up: Internally identified 2) Addresses internal review comments by Kenneth Lee and by Huang Daode 3) Addresses the review comment from "Yisen.Zhuang(Zhuangyuzeng)" 4) Adds fix from Fengguang Wu for an error generated from "kbuild test robot" from Intel 5) Ethtool support for TSO set option from Lisheng PATCH V1: Adds initial support of Hip06 SoC with below changes: This patch-set adds support of new Hisilicon Hip06 SoC to the existing (already part of net-next) HNS ethernet driver for Hip05 SoC. Hip06 is a multi-core SoC and is a derivative of Hip05 SoC with lots of new hardware featres supported like RSS, TSO, hardware VLAN assist etc. The changes in the driver are mainly due to following: 1) changes in the DMA descriptor provided by the Hip06 ethernet hardware. These changes need to co-exist with already present Hip05 DMA descriptor and its operating functions. The decision to choose the correct type of DMA descriptor is taken dynamically depending upon the version of the hardware (i.e. V1/hip05 or V2/hip06, see already existing hisilicon-hns-nic.txt binding file for the detailed description version and naming). 2) To support new features added to the Hip06 ethernet hardware: a. RSS (Receive Side Scaling) b. TSO (TCP Segment Offload) c. Hardware VLAN support (currently we are initializing hardware to not assist in stripping the vlan tag at hardware level. Proper support of this feature and ethtool would come after these patches have been accepted) Kindly note that, this patchset has been based on latest net-next. ==================== Signed-off-by: David S. Miller commit 8044f97ef5b1b7dfb037cfb78af9803ab76c7d92 Author: Salil Date: Thu Dec 3 12:17:57 2015 +0000 net:hns: Add the init code to disable Hip06 "Hardware VLAN assist" This patch adds the initializzation code to disable the hardware vlan support for VLAN Tag stripping by default for now. Proper support of "hardware VLAN assitance" feature would soon come in the next coming patches. Signed-off-by: Salil Mehta Signed-off-by: David S. Miller drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c | 7 ++ drivers/net/ethernet/hisilicon/hns/hns_dsaf_reg.h | 103 +++++++++++----------- 2 files changed, 59 insertions(+), 51 deletions(-) commit 38f616da1c28293798b3515a0f409531fff46c42 Author: Salil Date: Thu Dec 3 12:17:56 2015 +0000 net:hns: Add support of ethtool TSO set option for Hip06 in HNS This patch adds the support of ethtool TSO option to support Hip06 SoC to HNS Signed-off-by: Salil Mehta Signed-off-by: lisheng Signed-off-by: David S. Miller drivers/net/ethernet/hisilicon/hns/hns_enet.c | 47 +++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) commit 64353af63962f01a58af6c4f37736be80779ee3a Author: Salil Date: Thu Dec 3 12:17:55 2015 +0000 net:hns: Add Hip06 "TSO(TCP Segment Offload)" support HNS Driver This patch adds the support of "TSO (TCP Segment Offload)" feature provided by the Hip06 ethernet hardware to the HNS ethernet driver. Enabling this feature would help offload the TCP Segmentation process to the Hip06 ethernet hardware. This eventually would help in saving precious cpu cycles. Signed-off-by: Salil Mehta Signed-off-by: lisheng Signed-off-by: David S. Miller drivers/net/ethernet/hisilicon/hns/hnae.h | 1 + drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c | 8 +++ drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c | 5 ++ drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.h | 2 +- drivers/net/ethernet/hisilicon/hns/hns_dsaf_reg.h | 1 + drivers/net/ethernet/hisilicon/hns/hns_enet.c | 82 ++++++++++++++++++++++- 6 files changed, 95 insertions(+), 4 deletions(-) commit 6bc0ce7d9adabf332afc102f7f97bf121b990ece Author: Salil Date: Thu Dec 3 12:17:54 2015 +0000 net:hns: Add Hip06 "RSS(Receive Side Scaling)" support to HNS Driver This patch adds the support of "RSS (Receive Side Scaling)" feature provided by the Hip06 ethernet hardware to the HNS ethernet driver. This feature helps in distributing the different flows (mapped as hash by hardware using Toeplitz Hash) to different Queues asssociated with the processor cores. The mapping of flow-hash values to the different queues is stored in indirection table (which is per Packet- parse-Engine/PPE). This patch also provides the changes to re-program the (flow-hash<->Qid) mapping using the ethtool. Signed-off-by: Salil Mehta Reviewed-by: Kenneth Lee Signed-off-by: David S. Miller drivers/net/ethernet/hisilicon/hns/hnae.h | 6 ++ drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c | 53 ++++++++++++- drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c | 54 ++++++++++++- drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.h | 32 ++++++-- drivers/net/ethernet/hisilicon/hns/hns_dsaf_reg.h | 14 ++++ drivers/net/ethernet/hisilicon/hns/hns_ethtool.c | 93 +++++++++++++++++++++++ 6 files changed, 242 insertions(+), 10 deletions(-) commit 13ac695e7ea16cb27b804fadf2ff569dbcab6af1 Author: Salil Date: Thu Dec 3 12:17:53 2015 +0000 net:hns: Add support of Hip06 SoC to the Hislicon Network Subsystem This patchset adds support of Hisilicon Hip06 SoC to the existing HNS ethernet driver. The changes in the driver are mainly due to changes in the DMA descriptor provided by the Hip06 ethernet hardware. These changes need to co-exist with already present Hip05 DMA descriptor and its operating functions. The decision to choose the correct type of DMA descriptor is taken dynamically depending upon the version of the hardware (i.e. V1/hip05 or V2/hip06, see already existing hisilicon-hns-nic.txt binding file for detailed description). other changes includes in SBM, DSAF and PPE modules as well. Changes affecting the driver related to the newly added ethernet hardware features in Hip06 would be added as separate patch over this and subsequent patches. Signed-off-by: Salil Mehta Signed-off-by: yankejian Signed-off-by: huangdaode Signed-off-by: lipeng Signed-off-by: lisheng Signed-off-by: Fengguang Wu Signed-off-by: David S. Miller drivers/net/ethernet/hisilicon/hns/hnae.h | 51 ++- drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c | 37 ++- drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c | 14 +- drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h | 4 +- drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c | 213 +++++++++--- drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.h | 24 +- drivers/net/ethernet/hisilicon/hns/hns_dsaf_misc.c | 6 +- drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c | 6 +- drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c | 76 +++-- drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.h | 8 +- drivers/net/ethernet/hisilicon/hns/hns_dsaf_reg.h | 72 ++++- drivers/net/ethernet/hisilicon/hns/hns_enet.c | 360 ++++++++++++++++----- drivers/net/ethernet/hisilicon/hns/hns_enet.h | 12 + drivers/net/ethernet/hisilicon/hns/hns_ethtool.c | 2 +- 14 files changed, 689 insertions(+), 196 deletions(-) commit 15620206ae87ba9643ffa6f5ddb5471be7192006 Author: Mika Kuoppala Date: Fri Nov 6 14:11:16 2015 +0200 drm/i915/skl: Add SKL GT4 PCI IDs Add Skylake Intel Graphics GT4 PCI IDs v2: Rebase Signed-off-by: Mika Kuoppala Reviewed-by: Damien Lespiau Signed-off-by: Damien Lespiau Link: http://patchwork.freedesktop.org/patch/msgid/1446811876-303-1-git-send-email-mika.kuoppala@intel.com drivers/gpu/drm/i915/i915_drv.c | 1 + include/drm/i915_pciids.h | 13 ++++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) commit 066111411101f6b020af1a7c752859a12476ba21 Author: Heiko Stuebner Date: Fri Nov 27 23:35:00 2015 +0100 ARM: dts: rockchip: add gpio-ir-receiver to the R89 board Add support for the IR receiver present on the R89 board. Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3288-r89.dts | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit db3899a6477a4dccd26cbfb7f408b6be2cc068e0 Author: Catalin Marinas Date: Fri Dec 4 12:42:29 2015 +0000 arm64: Add trace_hardirqs_off annotation in ret_to_user When a kernel is built with CONFIG_TRACE_IRQFLAGS the following warning is produced when entering userspace for the first time: WARNING: at /work/Linux/linux-2.6-aarch64/kernel/locking/lockdep.c:3519 Modules linked in: CPU: 1 PID: 1 Comm: systemd Not tainted 4.4.0-rc3+ #639 Hardware name: Juno (DT) task: ffffffc9768a0000 ti: ffffffc9768a8000 task.ti: ffffffc9768a8000 PC is at check_flags.part.22+0x19c/0x1a8 LR is at check_flags.part.22+0x19c/0x1a8 pc : [] lr : [] pstate: 600001c5 sp : ffffffc9768abe10 x29: ffffffc9768abe10 x28: ffffffc9768a8000 x27: 0000000000000000 x26: 0000000000000001 x25: 00000000000000a6 x24: ffffffc00064be6c x23: ffffffc0009f249e x22: ffffffc9768a0000 x21: ffffffc97fea5480 x20: 00000000000001c0 x19: ffffffc00169a000 x18: 0000005558cc7b58 x17: 0000007fb78e3180 x16: 0000005558d2e238 x15: ffffffffffffffff x14: 0ffffffffffffffd x13: 0000000000000008 x12: 0101010101010101 x11: 7f7f7f7f7f7f7f7f x10: fefefefefefeff63 x9 : 7f7f7f7f7f7f7f7f x8 : 6e655f7371726964 x7 : 0000000000000001 x6 : ffffffc0001079c4 x5 : 0000000000000000 x4 : 0000000000000001 x3 : ffffffc001698438 x2 : 0000000000000000 x1 : ffffffc9768a0000 x0 : 000000000000002e Call trace: [] check_flags.part.22+0x19c/0x1a8 [] lock_is_held+0x80/0x98 [] __schedule+0x404/0x730 [] schedule+0x44/0xb8 [] ret_to_user+0x0/0x24 possible reason: unannotated irqs-off. irq event stamp: 502169 hardirqs last enabled at (502169): [] el0_irq_naked+0x1c/0x24 hardirqs last disabled at (502167): [] __do_softirq+0x17c/0x298 softirqs last enabled at (502168): [] __do_softirq+0x1fc/0x298 softirqs last disabled at (502143): [] irq_exit+0xa0/0xf0 This happens because we disable interrupts in ret_to_user before calling schedule() in work_resched. This patch adds the necessary trace_hardirqs_off annotation. Signed-off-by: Catalin Marinas Reported-by: Mark Rutland Cc: Will Deacon Signed-off-by: Will Deacon arch/arm64/kernel/entry.S | 3 +++ 1 file changed, 3 insertions(+) commit 9c4153b1eef9bc8da6a624252a3a25790b705136 Author: jimqu Date: Fri Dec 4 17:17:00 2015 +0800 drm/amdgpu: add spin lock to protect freed list in vm (v2) there is a protection fault about freed list when OCL test. add a spin lock to protect it. v2: drop changes in vm_fini Signed-off-by: JimQu Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 16 +++++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) commit af3302b90775ca3389c93ab31458d696e8a8fa60 Author: Daniel Vetter Date: Fri Dec 4 17:27:15 2015 +0100 Revert "drm/i915: Extend LRC pinning to cover GPU context writeback" This reverts commit 6d65ba943a2d1e4292a07ca7ddb6c5138b9efa5d. Mika Kuoppala traced down a use-after-free crash in module unload to this commit, because ring->last_context is leaked beyond when the context gets destroyed. Mika submitted a quick fix to patch that up in the context destruction code, but that's too much of a hack. The right fix is instead for the ring to hold a full reference onto it's last context, like we do for legacy contexts. Since this is causing a regression in BAT it gets reverted before we can close this. Cc: Nick Hoath Cc: Daniel Vetter Cc: David Gordon Cc: Chris Wilson Cc: Alex Dai Cc: Mika Kuoppala Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93248 Acked-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 1 - drivers/gpu/drm/i915/i915_gem.c | 7 +- drivers/gpu/drm/i915/intel_lrc.c | 136 +++++++-------------------------------- drivers/gpu/drm/i915/intel_lrc.h | 1 - 4 files changed, 27 insertions(+), 118 deletions(-) commit 900937c0375efcbb2c9fb2eef50ccb5c98fc99ea Author: Geyslan G. Bem Date: Wed Dec 2 20:25:23 2015 -0300 usb: ehci: ohci: fix bool assignments When assigning bool use true instead of 1. If declaring it as static and it's false there's no need to initialize it, since static variables are zeroed by default. Caught by coccinelle. Signed-off-by: Geyslan G. Bem Signed-off-by: Greg Kroah-Hartman drivers/usb/host/ehci-hcd.c | 2 +- drivers/usb/host/ohci-hcd.c | 4 ++-- drivers/usb/host/u132-hcd.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit 1eaf35e4dd592c59041bc1ed3248c46326da1f5f Author: Oliver Neukum Date: Thu Dec 3 15:03:34 2015 +0100 xhci: refuse loading if nousb is used The module should fail to load. Signed-off-by: Oliver Neukum CC: stable@kernel.org Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci.c | 4 ++++ 1 file changed, 4 insertions(+) commit 097a9ea0e48fa33159ad47d1dc9ef3b215bfc090 Author: Oliver Neukum Date: Thu Dec 3 15:03:33 2015 +0100 usb: make "nousb" a clear module parameter It shouldn't matter how usbcore is compiled. As it is a subsystem, the correct way to use nousb should be usbcore.nousb Signed-off-by: Oliver Neukum Signed-off-by: Greg Kroah-Hartman drivers/usb/core/usb.c | 5 ----- 1 file changed, 5 deletions(-) commit 40d581489adbb44a2d1005867d7a7695d61110e6 Author: Oliver Neukum Date: Thu Dec 3 15:03:32 2015 +0100 Documentation: nousb is a module parameter The documentation wrongly implied that it is a core parameter. That is not true. If usbcore is compiled as a module, a module parameter needs a prefix. Signed-off-by: Oliver Neukum Signed-off-by: Greg Kroah-Hartman Documentation/kernel-parameters.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit eb64526f5a5a382df7018a3e69061b9e3f20e32d Author: Tom St Denis Date: Thu Dec 3 12:23:28 2015 -0500 amdgpu/gfxv8: Remove magic numbers from function gfx_v8_0_tiling_mode_table_init() Signed-off-by: Tom St Denis Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 786b5219081ff16e62c00c7c6313dc0adf631540 Author: Nicolai Hähnle Date: Wed Dec 2 17:35:12 2015 +0100 drm/amdgpu: fix race condition in amd_sched_entity_push_job As soon as we leave the spinlock after the job has been added to the job queue, we can no longer rely on the job's data to be available. I have seen a null-pointer dereference due to sched == NULL in amd_sched_wakeup via amd_sched_entity_push_job and amd_sched_ib_submit_kernel_helper. Since the latter initializes sched_job->sched with the address of the ring scheduler, which is guaranteed to be non-NULL, this race appears to be a likely culprit. Signed-off-by: Nicolai Hähnle Bugzilla: https://bugs.freedesktop.org/attachment.cgi?bugid=93079 Reviewed-by: Christian König drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit ba98f9e56c77f2b7a28f9d025f8780098221e1b6 Author: Chunming Zhou Date: Thu Nov 26 16:33:58 2015 +0800 drm/amdgpu: add err check for pin userptr Missing error check if the operation failed. Signed-off-by: Chunming Zhou Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 0d07db7e10f415d7ec0efde54f10a0905a0910b9 Author: Tom St Denis Date: Tue Dec 1 10:42:28 2015 -0500 amdgpu/gfxv8: Simplification in gfx_v8_0_enable_gui_idle_interrupt() Simplified the function by folding the two paths into one. Signed-off-by: Tom St Denis Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) commit 544b8a74c72d39aebbbf482ccad8e7762a8b2a1e Author: Tom St Denis Date: Tue Dec 1 11:48:32 2015 -0500 amdgpu/gfxv8: Simplification of gfx_v8_0_create_bitmask() Simplification of the function gfx_v8_0_create_bitmask(). Signed-off-by: Tom St Denis Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit 90bea0abf61d020ff8a33bde5f93fedfbaba06d6 Author: Tom St Denis Date: Tue Dec 1 11:47:21 2015 -0500 amdgpu/gfxv8: Cleanup of gfx_v8_0_tiling_mode_table_init() (v2) Simplification and LOC reduction of function gfx_v8_0_tiling_mode_table_init() v2: remove spurious break bug: https://bugs.freedesktop.org/show_bug.cgi?id=93236 Signed-off-by: Tom St Denis Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 2286 +++++++++++++-------------------- 1 file changed, 898 insertions(+), 1388 deletions(-) commit debe26af03497eeea3ac06bff21176c9732cd54a Author: Geyslan G. Bem Date: Wed Dec 2 19:18:19 2015 -0300 usb: use BUG_ON() instead of BUG() Replace BUG() with BUG_ON(). Caught by coccinelle. Signed-off-by: Geyslan G. Bem Signed-off-by: Greg Kroah-Hartman drivers/usb/host/oxu210hp-hcd.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 2d80b52efe30b823b9b52521811fbfdd23b05648 Author: Geyslan G. Bem Date: Wed Dec 2 18:45:47 2015 -0300 usb: whci: fhci: remove comparison to bool Get rid of bool explicit comparisons. Caught by Coccinelle. Signed-off-by: Geyslan G. Bem Signed-off-by: Greg Kroah-Hartman drivers/usb/host/fhci-tds.c | 2 +- drivers/usb/host/whci/qset.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 6b82b1223e3b14afd89d167795671a9f4f77b2f0 Author: Al Cooper Date: Wed Dec 2 14:55:07 2015 -0500 usb: Add connected retry on resume for non SS devices Currently usb_port_resume waits for up to 2 seconds for CONNECT status for SS devices only. This change will do the same thing for non-SS devices even though the reason is a little different. This will fix an issue where VBUS is turned off during system wide "suspend to ram" and some 2.0 devices take greater than the current max of 100ms to show connected after VBUS is enabled. This is most commonly seen on hard drive based devices and USB3.0 devices plugged into a 2.0 only port. Signed-off-by: Al Cooper Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman drivers/usb/core/hub.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit 61ad992875639b0ac5866321e2edcba573f5f3a2 Author: Deepak M Date: Fri Dec 4 19:47:38 2015 +0530 drm/i915: Correct the Ref clock value for BXT The reference clock for BXT is 19.2 MHz not 19.5 MHz, updating the correct value here. Signed-off-by: Deepak M Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449238659-12473-2-git-send-email-m.deepak@intel.com drivers/gpu/drm/i915/i915_reg.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a9287dbc26569ec187b8bca0093e0ffe28abe843 Author: Daniel Vetter Date: Fri Dec 4 16:15:55 2015 +0100 drm/i915: Restore skl_gt3 device info This was broken in commit 6a8beeffed3b2d33151150e3a03696e697f16d46 Author: Wayne Boyer Date: Wed Dec 2 13:28:14 2015 -0800 drm/i915: Clean up device info structure definitions and I didn't spot this while reviewing. We really need that CI farm up asap! Reported-by: Chris Wilson Cc: Chris Wilson Cc: Wayne Boyer Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.c | 1 + 1 file changed, 1 insertion(+) commit b6aa0873614dff74b01e18095fd335fbb1fb777c Author: Chris Wilson Date: Wed Dec 2 09:13:46 2015 +0000 drm/i915: Fix RPS pointer passed from wait_ioctl to i915_wait_request In commit 2e1b873072dfe3bbcc158a9c21acde1ab0d36c55 [v4.2] Author: Chris Wilson Date: Mon Apr 27 13:41:22 2015 +0100 drm/i915: Convert RPS tracking to a intel_rps_client struct we converted the __i915_wait_request() to take a new intel_rps_client struct (rather than having to pass fake drm_i915_file_private structs). However, due to use of passing a void pointer, I didn't spot one callsite in wait-ioctl was passing the wrong pointer. Fwiw, the impact of this bug is zero. Along the rps path, we always first call list_empty(rps) which when we pass in the wrong pointer always evaluates to false and we return early and never chase the invalid pointers. The user visible impact is then wait-ioctl doesn't get the same waitboosting as the other interfaces (set-domain, throttle), which is a performance concern for the *very* few users of the wait interface. There is also a libdrm_intel patch to use the wait-ioctl for drm_intel_bo_wait_rendering() if anyone feels inclined to review libdrm_intel patches. Signed-off-by: Chris Wilson Cc: Daniel Vetter [danvet: Add Chris' explanation for why the impact of this is pretty close to 0.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6603249dcdbb6aab0b726bdf372d6f20c0d2d611 Author: Takashi Iwai Date: Tue Dec 1 16:49:35 2015 +0100 ALSA: hda - Enable audio component for old Intel PCH devices As i915 graphics driver provides the notification via audio component, not only the currently implemented HSW+ and VLV+ platforms but also all other PCH-based platforms (e.g. Cougar Point, Panther Point, etc) can use this infrastructure. It'll improve the reliability and the power consumption significantly, especially once when we implement the ELD notification via component. As a preliminary, this patch enables the usage of audio component for all PCH platforms. The HDA controller just needs to set AZX_DCAPS_I915_POWERWELL flag appropriately. The name of the flag is a bit confusing, but this actually works even on the chips without the powerwell but accesses only the other component ops. In the HDMI/DP codec driver side, we just need to register/unregister the notifier for such chips. This can be identified by checking the audio_component field in the assigned hdac_bus. One caveat is that PCH for Haswell and Broadwell must not be bound with i915 audio component, as there are dedicated HD-audio HDMI controllers on these platforms. Ditto for Poulsbo and Oaktrail as they use gma500 graphics, not i915. Signed-off-by: Takashi Iwai sound/pci/hda/hda_intel.c | 14 ++++++++++---- sound/pci/hda/patch_hdmi.c | 6 ++++-- 2 files changed, 14 insertions(+), 6 deletions(-) commit d8578836ad2ebaaf0a899c72d12201009e0ad1e5 Author: Daniel Vetter Date: Fri Dec 4 15:54:30 2015 +0100 Revert "drm/i915: Remove superfluous NULL check" This reverts commit 89f41f4f90741fe94b6da9d4d366628a9b0be8f1. It's possible that ->crtc is NULL in here. Noticed by Ville. Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_audio.c | 4 ++++ 1 file changed, 4 insertions(+) commit a103a75ad978592cf71b6d42c05849aacc76c2da Author: Thierry Reding Date: Wed Dec 2 17:16:36 2015 +0100 crypto: n2 - Use platform_register/unregister_drivers() These new helpers simplify implementing multi-driver modules and properly handle failure to register one driver by unregistering all previously registered drivers. Signed-off-by: Thierry Reding Acked-by: David S. Miller Signed-off-by: Herbert Xu drivers/crypto/n2_core.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) commit 5e75ae1b3cef6455b131835621216cb92060da34 Author: LEROY Christophe Date: Tue Dec 1 12:44:15 2015 +0100 crypto: talitos - add new crypto modes This patch adds the following algorithms to the talitos driver: * ecb(aes) * ctr(aes) * ecb(des) * cbc(des) * ecb(des3_ede) Signed-off-by: Christophe Leroy Signed-off-by: Herbert Xu drivers/crypto/talitos.c | 83 ++++++++++++++++++++++++++++++++++++++++++++++++ drivers/crypto/talitos.h | 1 + 2 files changed, 84 insertions(+) commit 0d3d054b43719ef33232677ba27ba6097afdafbc Author: Leonidas Da Silva Barbosa Date: Mon Nov 30 16:19:03 2015 -0200 crypto: vmx - IV size failing on skcipher API IV size was zero on CBC and CTR modes, causing a bug triggered by skcipher. Fixing this adding a correct size. Signed-off-by: Leonidas Da Silva Barbosa Signed-off-by: Paulo Smorigo Signed-off-by: Herbert Xu drivers/crypto/vmx/aes_cbc.c | 2 +- drivers/crypto/vmx/aes_ctr.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit f456cd2dc8578f989ef12964c11aa7b2fafbc319 Author: Fabio Estevam Date: Mon Nov 30 11:03:58 2015 -0200 crypto: caam - pass the correct buffer length When buffer 0 is used we should use buflen_0 instead of buflen_1. Fix it. Signed-off-by: Fabio Estevam Signed-off-by: Herbert Xu drivers/crypto/caam/caamhash.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1a07834024dfca5c4bed5de8f8714306e0a11836 Author: Wang, Rui Y Date: Sun Nov 29 22:45:34 2015 +0800 crypto: cryptd - Assign statesize properly cryptd_create_hash() fails by returning -EINVAL. It is because after 8996eafdc ("crypto: ahash - ensure statesize is non-zero") all ahash drivers must have a non-zero statesize. This patch fixes the problem by properly assigning the statesize. Signed-off-by: Rui Wang Signed-off-by: Herbert Xu crypto/cryptd.c | 1 + 1 file changed, 1 insertion(+) commit 3a020a723c65eb8ffa7c237faca26521a024e582 Author: Wang, Rui Y Date: Sun Nov 29 22:45:33 2015 +0800 crypto: ghash-clmulni - Fix load failure ghash_clmulni_intel fails to load on Linux 4.3+ with the following message: "modprobe: ERROR: could not insert 'ghash_clmulni_intel': Invalid argument" After 8996eafdc ("crypto: ahash - ensure statesize is non-zero") all ahash drivers are required to implement import()/export(), and must have a non- zero statesize. This patch has been tested with the algif_hash interface. The calculated digest values, after several rounds of import()s and export()s, match those calculated by tcrypt. Signed-off-by: Rui Wang Signed-off-by: Herbert Xu arch/x86/crypto/ghash-clmulni-intel_glue.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit ac7c8e6b6dc959d285382c7e9cdfe608205f0c68 Author: Heiko Stuebner Date: Sat Nov 28 13:27:48 2015 +0100 crypto: rockchip - fix possible deadlock Lockdep warns about a possible deadlock resulting from the use of regular spin_locks: ================================= [ INFO: inconsistent lock state ] 4.4.0-rc2+ #2724 Not tainted --------------------------------- inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage. ksoftirqd/0/3 [HC0[0]:SC1[1]:HE1:SE0] takes: (&(&crypto_info->lock)->rlock){+.?...}, at: [] rk_crypto_tasklet_cb+0x24/0xb4 [rk_crypto] {SOFTIRQ-ON-W} state was registered at: [] lock_acquire+0x178/0x218 [] _raw_spin_lock+0x54/0x64 [] rk_handle_req+0x7c/0xbc [rk_crypto] [] rk_des_ecb_encrypt+0x2c/0x30 [rk_crypto] [] rk_aes_ecb_encrypt+0x18/0x1c [rk_crypto] [] skcipher_encrypt_ablkcipher+0x64/0x68 [] __test_skcipher+0x2a8/0x8dc [] test_skcipher+0x38/0xc4 [] alg_test_skcipher+0x90/0xb0 [] alg_test+0x1e8/0x280 [] cryptomgr_test+0x34/0x54 [] kthread+0xf4/0x10c [] ret_from_fork+0x14/0x24 irq event stamp: 10672 hardirqs last enabled at (10672): [] tasklet_action+0x48/0x104 hardirqs last disabled at (10671): [] tasklet_action+0x20/0x104 softirqs last enabled at (10658): [] __do_softirq+0x358/0x49c softirqs last disabled at (10669): [] run_ksoftirqd+0x40/0x80 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&(&crypto_info->lock)->rlock); lock(&(&crypto_info->lock)->rlock); *** DEADLOCK *** Fix this by moving to irq-disabling spinlocks. Signed-off-by: Heiko Stuebner Signed-off-by: Herbert Xu drivers/crypto/rockchip/rk3288_crypto.c | 5 +++-- drivers/crypto/rockchip/rk3288_crypto_ablkcipher.c | 10 ++++++---- 2 files changed, 9 insertions(+), 6 deletions(-) commit 1ab87298cb59b649d8d648d25dc15b36ab865f5a Author: Jiri Slaby Date: Fri Nov 27 16:50:43 2015 +0100 hwrng: core - sleep interruptible in read hwrng kthread can be waiting via hwrng_fillfn for some data from a rng like virtio-rng: hwrng D ffff880093e17798 0 382 2 0x00000000 ... Call Trace: [] wait_for_completion_killable+0x96/0x210 [] virtio_read+0x57/0xf0 [virtio_rng] [] hwrng_fillfn+0x75/0x130 [] kthread+0xf3/0x110 And when some user program tries to read the /dev node in this state, we get: rngd D ffff880093e17798 0 762 1 0x00000004 ... Call Trace: [] mutex_lock_nested+0x15c/0x3e0 [] rng_dev_read+0x6e/0x240 [] __vfs_read+0x28/0xe0 [] vfs_read+0x83/0x130 And this is indeed unkillable. So use mutex_lock_interruptible instead of mutex_lock in rng_dev_read and exit immediatelly when interrupted. And possibly return already read data, if any (as POSIX allows). v2: use ERESTARTSYS instead of EINTR Signed-off-by: Jiri Slaby Cc: Matt Mackall Cc: Herbert Xu Cc: Signed-off-by: Herbert Xu drivers/char/hw_random/core.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit e90247f9fceeebe5bdaac2d87e301e73bae9bc1f Author: Takashi Iwai Date: Fri Nov 13 09:12:12 2015 +0100 ALSA: hda - Split ELD update code from hdmi_present_sense() This is a preliminary patch for the later change to support ELD/jack handling with i915 audio component. This splits the ELD update code from hdmi_present_sense() so that it can be called from other places. Just a code refactoring, no functional change. Signed-off-by: Takashi Iwai sound/pci/hda/patch_hdmi.c | 108 ++++++++++++++++++++++----------------------- 1 file changed, 54 insertions(+), 54 deletions(-) commit 18014fd793d5e73eec5f2c22eaa37a32b44748eb Author: Takashi Iwai Date: Fri Nov 13 12:51:49 2015 +0100 ALSA: hda - Do zero-clear in snd_hdmi_parse_eld() itself Instead of doing in each caller side, snd_hdmi_parse_eld() does zero-clear of the parsed data by itself. This is safer and simplifies the upcoming code changes. Signed-off-by: Takashi Iwai sound/pci/hda/hda_eld.c | 1 + sound/pci/hda/patch_hdmi.c | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) commit 641cf2a5ba0345c01f4eb1ca2980372415c2a5e1 Author: Adam Welle Date: Tue Dec 1 17:13:52 2015 -0500 mac80211_hwsim: check ATTR_FREQ for wmediumd (netlink) packets If a packet is received from netlink with the frequency value set it is checked against the current radio's frequency and discarded if different. The frequency is also checked against data2->tmp_chan to support the "hw" off-channel/scan case. Signed-off-by: Adam Welle [allow both simultaneously, add locking] Signed-off-by: Johannes Berg drivers/net/wireless/mac80211_hwsim.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) commit 89f44d8c25bb21f167d7d124c6b83dd494f948af Author: Amit Khatri Date: Mon Nov 30 12:46:52 2015 +0530 mac80211_hwsim: check txrate for NULL If the rate control algorithm messed up then the txrate pointer here could be NULL - WARN and drop the packet from monitoring. Signed-off-by: Amit Khatri Signed-off-by: Rahul Jain [rewrite commit message, add warning] Signed-off-by: Johannes Berg drivers/net/wireless/mac80211_hwsim.c | 3 +++ 1 file changed, 3 insertions(+) commit 7d37fcd409199f76da522e6f6670a354ac468002 Author: Johannes Berg Date: Tue Dec 1 23:15:26 2015 +0100 mac80211: reject zero cookie in mgmt-tx/roc cancel When cancelling, you can cancel "any" (first in list) mgmt-tx or remain-on-channel operation by using the value 0 for the cookie along with the *opposite* operation, i.e. * cancel the first mgmt-tx by cancelling roc with 0 cookie * cancel the first roc by cancelling mgmt-tx with 0 cookie This isn't really that bad since userspace should only pass cookies that we gave it, but could lead to hard-to-debug issues so better prevent it and reject zero values since we never hand those out. Signed-off-by: Johannes Berg net/mac80211/offchannel.c | 3 +++ 1 file changed, 3 insertions(+) commit 959eb2fd70df86a089e9e31be654462235952a24 Author: Johannes Berg Date: Fri Nov 6 11:57:23 2015 +0100 mac80211_hwsim: stop using pointers as cookies Instead of using pointers, use sequentially assigned cookies. This is easier to understand while debugging and also avoids problems when the pointer is reused for the next allocation. Signed-off-by: Johannes Berg drivers/net/wireless/mac80211_hwsim.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) commit 00eeccc4a9a84afe819062df13cdb47159919a7c Author: Jouni Malinen Date: Thu Nov 26 20:51:04 2015 +0200 mac80211_hwsim: Advertise support for VHT IBSS VHT can be used with IBSS without needing any additional changes in mac80211_hwsim, so start claiming support for this to increase test coverage. Signed-off-by: Jouni Malinen Signed-off-by: Johannes Berg drivers/net/wireless/mac80211_hwsim.c | 1 + 1 file changed, 1 insertion(+) commit 732b5395efd05e79f546b59d6aa02653608bfe03 Author: Jouni Malinen Date: Thu Nov 26 20:50:12 2015 +0200 mac80211_hwsim: Update timestamp in Probe Response frames Previously, this was done only for Beacon frames, but similar timestamp update is needed for Probe Response frames to make these more accurately match the real IEEE 802.11 behavior. Previously, all zeros timestamp was sent in Probe Response frames. Signed-off-by: Jouni Malinen Signed-off-by: Johannes Berg drivers/net/wireless/mac80211_hwsim.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit c39b336deb2ec92751488531a05fd14bbe7fa89e Author: Jouni Malinen Date: Thu Nov 26 20:49:38 2015 +0200 mac80211: Allow a STA to join an IBSS with 80+80 MHz channel While it was possible to create an IBSS with 80+80 MHz channel, joining such an IBSS resulted in falling back to 20 MHz channel with VHT disabled due to a missing switch case for 80+80. Signed-off-by: Jouni Malinen Signed-off-by: Johannes Berg net/mac80211/ibss.c | 1 + 1 file changed, 1 insertion(+) commit 1aeb135f84fe40cf6ba1e3610ad2ca4cb9628089 Author: Michal Sojka Date: Mon Nov 23 19:27:16 2015 +0100 cfg80211: reg: Refactor calculation of bandwidth flags The same piece of code appears at two places. Make a function from it. Signed-off-by: Michal Sojka Signed-off-by: Johannes Berg net/wireless/reg.c | 91 ++++++++++++++++++++++-------------------------------- 1 file changed, 37 insertions(+), 54 deletions(-) commit aaa016ccd5df89d73483d0d51ee1f692978ccc35 Author: Johannes Berg Date: Mon Nov 23 23:53:51 2015 +0100 mac80211: rewrite remain-on-channel logic Jouni found a bug in the remain-on-channel logic: when a short item is queued, a long item is combined with it extending the original one, and then the long item is deleted, the timeout doesn't go back to the short one, and the short item ends up taking a long time. In this case, this showed as blocking scan when running two test cases back to back - the scan from the second was delayed even though all the remain-on-channel items should long have been gone. Fixing this with the current data structures turns out to be a bit complicated, we just remove the long item from the dependents list right now and don't recalculate the timeouts. There's a somewhat similar bug where we delete the short item and all the dependents go with it; to fix this we'd have to move them from the dependents to the real list. Instead of trying to do that, rewrite the code to not have all this complexity in the data structures: use a single list and allow more than one entry in it being marked as started. This makes the code a bit more complex, the worker needs to understand that it might need to just remove one of the started items, while keeping the device off-channel, but that's not more complicated than the nested data structures. This then fixes both issues described, and makes it easier to also limit the overall off-channel time when combining. TODO: as before, with hardware remain-on-channel, deleting an item after combining results in cancelling them all - we can keep track of the time elapsed and only cancel after that to fix this. Signed-off-by: Johannes Berg net/mac80211/ieee80211_i.h | 7 +- net/mac80211/main.c | 1 + net/mac80211/offchannel.c | 599 +++++++++++++++++++++++---------------------- 3 files changed, 316 insertions(+), 291 deletions(-) commit 661ef475fdf5f24346ca33314964c71698ff3501 Author: Johannes Berg Date: Tue Nov 24 18:29:45 2015 +0100 mac80211_hwsim: delay hardware remain-on-channel start Typically drivers that implement hardware remain-on-channel will have to wait for scheduling constraints, so make hwsim also wait a little bit (only 20ms) before actually starting the operation. Signed-off-by: Johannes Berg drivers/net/wireless/mac80211_hwsim.c | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) commit 5ee00dbd52c57f37d74306ce6e8db26171f599b3 Author: Johannes Berg Date: Tue Nov 24 14:25:49 2015 +0100 mac80211: simplify ack_skb handling Since the cookie is assigned inside ieee80211_make_ack_skb() now, we no longer need to return the ack_skb as the cookie and can simplify the function's return and the callers. Also rename it to ieee80211_attach_ack_skb() to more accurately reflect its purpose. Signed-off-by: Johannes Berg net/mac80211/cfg.c | 18 ++++++++---------- net/mac80211/ieee80211_i.h | 5 ++--- net/mac80211/offchannel.c | 8 +++----- 3 files changed, 13 insertions(+), 18 deletions(-) commit a2fcfccbad43e413de7e7ac39879ba91548f06c1 Author: Johannes Berg Date: Mon Nov 23 17:18:35 2015 +0100 mac80211: move off-channel/mgmt-tx code to offchannel.c This is quite a bit of code that logically depends here since it has to deal with all the remain-on-channel logic. Signed-off-by: Johannes Berg net/mac80211/cfg.c | 504 ++------------------------------------------- net/mac80211/ieee80211_i.h | 19 +- net/mac80211/offchannel.c | 474 +++++++++++++++++++++++++++++++++++++++++- 3 files changed, 502 insertions(+), 495 deletions(-) commit e673a65952b4ab045a3e3eb200fdf408004fb4fd Author: Johannes Berg Date: Tue Nov 24 20:28:27 2015 +0100 mac80211: fix mgmt-tx abort cookie and leak If a mgmt-tx operation is aborted before it runs, the wrong cookie is reported back to userspace, and the ack_skb gets leaked since the frame is freed directly instead of freeing it using ieee80211_free_txskb(). Fix that. Fixes: 3b79af973cf4 ("mac80211: stop using pointers as userspace cookies") Signed-off-by: Johannes Berg net/mac80211/offchannel.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 856142cdaa483099f50cac70a16898ead8e4094d Author: Johannes Berg Date: Tue Nov 24 15:29:53 2015 +0100 mac80211: catch queue stop underflow If some code stops the queues more times than having started (for when refcounting is used), warn on and reset the counter to 0 to avoid blocking forever. Signed-off-by: Johannes Berg net/mac80211/util.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 63b4d8b3736b83126ea531c536eff9f76e4cd739 Author: Johannes Berg Date: Tue Nov 24 15:41:50 2015 +0100 mac80211: properly free TX skbs when monitor TX fails We need to free all skbs here, not just the one we peeked from the list. Signed-off-by: Johannes Berg net/mac80211/tx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 86c7ec9eb154020797c39e1cc7dafa92da02f603 Author: Johannes Berg Date: Tue Nov 24 15:38:43 2015 +0100 mac80211: properly free skb when r-o-c for TX fails When freeing the TX skb for an off-channel TX, use the correct API to also free the ACK skb that might have been allocated. Signed-off-by: Johannes Berg net/mac80211/cfg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 90f9ba9b89d88072324251da011b2a59992ad3e1 Author: Johannes Berg Date: Thu Nov 26 16:26:14 2015 +0100 Revert "mac80211: don't advertise NL80211_FEATURE_FULL_AP_CLIENT_STATE" This reverts commit 45bb780a2147b9995f3d288c44ecb87ca8a330e2, the previous two patches fixed the functionality. Signed-off-by: Johannes Berg net/mac80211/main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit bda95eb1d1581cfd79e9717ebda4b7ccd2265351 Author: Johannes Berg Date: Thu Nov 26 16:26:13 2015 +0100 cfg80211: handle add_station auth/assoc flag quirks When a new station is added to AP/GO interfaces the default behaviour is for it to be added authenticated and associated, due to backwards compatibility. To prevent that, the driver must be able to do that (setting the NL80211_FEATURE_FULL_AP_CLIENT_STATE feature flag) and userspace must set the flag mask to auth|assoc and clear the set. Handle this quirk in the API entirely in nl80211, and always push the full flags to the drivers. NL80211_FEATURE_FULL_AP_CLIENT_STATE is still required for userspace to be allowed to set the mask including those bits, but after checking that add both flags to the mask and set in case userspace didn't set them otherwise. This obsoletes the mac80211 code handling this difference, no other driver is currently using these flags. Signed-off-by: Johannes Berg net/mac80211/cfg.c | 10 ---------- net/wireless/nl80211.c | 23 +++++++++++++++++++---- 2 files changed, 19 insertions(+), 14 deletions(-) commit a9bc31e418733e4c476f4322c90b7c09aab31002 Author: Ayala Beker Date: Thu Nov 26 16:26:12 2015 +0100 cfg80211: use NL80211_ATTR_STA_AID in nl82011_set_station Fix nl80211_set_station() to use the value of NL80211_ATTR_STA_AID attribute instead of NL80211_ATTR_PEER_AID attribute. Signed-off-by: Ayala Beker Signed-off-by: Johannes Berg net/wireless/nl80211.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 91f123f20d64c99db0ce8d2bbc5bb82012d3cc1a Author: Vidyullatha Kanchanapally Date: Fri Oct 30 19:14:50 2015 +0530 mac80211: Add support for aborting an ongoing scan This commit adds implementation for abort scan in mac80211. Reviewed-by: Jouni Malinen Signed-off-by: Vidyullatha Kanchanapally Signed-off-by: Sunil Dutt [adjust to wdev change in previous patch and clean up code a bit] Signed-off-by: Johannes Berg net/mac80211/cfg.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 91d3ab46730379e89e1e908c6f62fbcadb3d8f08 Author: Vidyullatha Kanchanapally Date: Fri Oct 30 19:14:49 2015 +0530 cfg80211: Add support for aborting an ongoing scan Implement new functionality for aborting an ongoing scan. Add NL80211_CMD_ABORT_SCAN to the nl80211 interface. After aborting the scan, driver shall provide the scan status by calling cfg80211_scan_done(). Reviewed-by: Jouni Malinen Signed-off-by: Vidyullatha Kanchanapally Signed-off-by: Sunil Dutt [change command to take wdev instead of netdev so that it can be used on p2p-device scans] Signed-off-by: Johannes Berg include/net/cfg80211.h | 3 +++ include/uapi/linux/nl80211.h | 6 ++++++ net/wireless/nl80211.c | 26 ++++++++++++++++++++++++++ net/wireless/rdev-ops.h | 8 ++++++++ net/wireless/trace.h | 4 ++++ 5 files changed, 47 insertions(+) commit b115b972997428b9134aba377721fea6486adbd0 Author: Janusz.Dziedzic@tieto.com Date: Tue Oct 27 08:38:40 2015 +0100 mac80211: add new IEEE80211_VIF_GET_NOA_UPDATE flag Add new VIF flag, that will allow get NOA update notification when driver will request this, even this is not pure P2P vif (eg. STA vif). Signed-off-by: Janusz Dziedzic Signed-off-by: Johannes Berg include/net/mac80211.h | 4 ++++ net/mac80211/mlme.c | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) commit a8e828deb393e8a5ca84cd3d0df56b3c0be04607 Author: Johannes Berg Date: Thu Nov 26 17:59:27 2015 +0100 mac80211_hwsim: do not actively scan DFS channels We had another change to fix this in mac80211, but the hwsim "hardware" scan should also be fixed. Obviously this one isn't important since it's not real hardware, but we'd better be consistent. Signed-off-by: Johannes Berg drivers/net/wireless/mac80211_hwsim.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit c781944b71f87aa4d30eaaafb4e7573ce94bdcfd Author: Michal Sojka Date: Mon Nov 23 19:27:15 2015 +0100 cfg80211: Remove unused cfg80211_can_use_iftype_chan() Last caller of this function was removed in 3.17 in commit 97dc94f1d933c9df2c0b327066ea130c0e92083f. Signed-off-by: Michal Sojka Signed-off-by: Johannes Berg net/wireless/core.h | 7 ---- net/wireless/util.c | 114 ---------------------------------------------------- 2 files changed, 121 deletions(-) commit 491728746b500b22f384cb1d0aba76f7c55a9269 Author: Michal Sojka Date: Mon Nov 23 19:27:14 2015 +0100 cfg80211: reg: Remove unused function parameter Signed-off-by: Michal Sojka Signed-off-by: Johannes Berg net/wireless/reg.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit ef044763a3ca6b9e0bb65a9ce0cb38c0eca62756 Author: Eliad Peller Date: Tue Nov 17 10:24:37 2015 +0200 mac80211: add atomic uploaded keys iterator add ieee80211_iter_keys_rcu() to iterate over uploaded keys in atomic context (when rcu is locked) The station removal code removes the keys only after calling synchronize_net(), so it's not safe to iterate the keys at this point (and postponing the actual key deletion with call_rcu() might result in some badly-ordered ops calls). Add a flag to indicate a station is being removed, and skip the configured keys if it's set. Signed-off-by: Eliad Peller Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg include/net/mac80211.h | 24 +++++++++++++++++++++ net/mac80211/key.c | 56 +++++++++++++++++++++++++++++++++++++++++++++---- net/mac80211/sta_info.c | 1 + net/mac80211/sta_info.h | 2 ++ 4 files changed, 79 insertions(+), 4 deletions(-) commit 0ead2510f8cec11ce96308d79a1b4ee272fb5238 Author: Emmanuel Grumbach Date: Tue Nov 17 10:24:36 2015 +0200 mac80211: allow the driver to send EOSP when needed This can happen when the driver needs to send less frames than expected and then needs to close the SP. Mac80211 still needs to set the more_data properly based on its buffer state (ps_tx_buffer and buffered frames on other TIDs). To that end, refactor the code that delivers frames upon uAPSD trigger frames to be able to get only the more_data bit without actually delivering those frames in case the driver is just asking to set a NDP with EOSP and MORE_DATA bit properly set. Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg include/net/mac80211.h | 22 ++++++++ net/mac80211/sta_info.c | 144 +++++++++++++++++++++++++++++++++--------------- net/mac80211/trace.h | 25 +++++++++ 3 files changed, 148 insertions(+), 43 deletions(-) commit 1b9df2d20eee9f3a675d1a3a7aa3640e6d8d7e94 Author: Ola Olsson Date: Mon Nov 9 22:02:09 2015 +0100 cfg80211: ocb: Fix null pointer deref if join_ocb is unimplemented Signed-off-by: Ola Olsson Signed-off-by: Johannes Berg net/wireless/ocb.c | 3 +++ 1 file changed, 3 insertions(+) commit cf595922b9a3b61e308224fd29909f54ecb557d4 Author: Luca Coelho Date: Mon Nov 9 12:17:37 2015 +0200 nl80211: clarify NL80211_ATTR_SCHED_SCAN_DELAY usage with net-detect In this attribute's documentation, it was not clear whether the delay started counting when WoWLAN net-detect was enabled or when the system was suspended. The correct answer is that it starts when the system suspends (which is when, in practice, the scan is scheduled). Clarify that in the nl80211.h documentation. Suggested-by: Samuel Tan Signed-off-by: Luca Coelho Signed-off-by: Johannes Berg include/uapi/linux/nl80211.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 441275e1038a803d61df41eae9a44d26486d8301 Author: Johannes Berg Date: Fri Nov 6 12:34:24 2015 +0100 mac80211: remove string from unaligned packet warning This really should never happen except very early in the process of bringing up a new driver, at which point you'll have to add more debugging in the driver and this string isn't useful. Remove it and save some size (when it's even compiled in.) Signed-off-by: Johannes Berg net/mac80211/rx.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 996bf99c71944590e4f56504d5ec99ddd0d85e9c Author: Johannes Berg Date: Fri Nov 6 12:02:31 2015 +0100 lib80211: ratelimit key index mismatch This indicates a driver key selection issue, but even then there's no point in printing it all the time, so ratelimit it. Also remove the priv pointer from it -- people debugging will only have a single device anyway and it's useless as anything but a cookie. Signed-off-by: Johannes Berg net/wireless/lib80211_crypt_ccmp.c | 4 ++-- net/wireless/lib80211_crypt_tkip.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit d671b2a077a92ff71ad76fba0e8bfd1b7c5ca820 Author: Johannes Berg Date: Fri Nov 6 11:30:46 2015 +0100 mac80211: mesh: print MAC address instead of pointer There's no point in printing the mpath pointer since it can't be used for anything - print the MAC address instead (like in the forwarding case.) Signed-off-by: Johannes Berg Acked-by: Bob Copeland Signed-off-by: Johannes Berg net/mac80211/mesh_pathtbl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0483eeac59876ac37d4edbabd48727a468416d5b Author: Johannes Berg Date: Fri Oct 23 09:50:03 2015 +0200 cfg80211: replace ieee80211_ie_split() with an inline The function is a very simple wrapper around another one, just adds a few default parameters, so replace it with a static inline instead of using EXPORT_SYMBOL, reducing the module size slightly. Signed-off-by: Johannes Berg include/net/cfg80211.h | 7 +++++-- net/wireless/util.c | 7 ------- 2 files changed, 5 insertions(+), 9 deletions(-) commit 6e045905d1786f62cb3f7ddc6c987f7dc3ad8ed6 Author: Johannes Berg Date: Thu Oct 22 22:27:47 2015 +0300 cfg80211: add complete data to station add/change tracing Complete the tracepoint with the missing data - it's not printed by default (a lot of it is dynamic arrays) but will be recorded and be available during post-processing. Signed-off-by: Johannes Berg net/wireless/trace.h | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) commit a1056b1baaa887de52a76a5fcf5aeb4327c96c8a Author: Ilan Peer Date: Thu Oct 22 22:27:46 2015 +0300 cfg80211: Add missing tracing to cfg80211 Add missing tracing for: 1. start_radar_detection() 2. set_mcast_rates() 3. set_coalesce() Signed-off-by: Ilan Peer Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg net/wireless/nl80211.c | 9 ++++---- net/wireless/rdev-ops.h | 43 ++++++++++++++++++++++++++++++++++ net/wireless/trace.h | 61 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 108 insertions(+), 5 deletions(-) commit 3110489117581a980537b6d999a3724214ba772c Author: Johannes Berg Date: Thu Oct 22 17:35:19 2015 +0200 mac80211: allow driver to prevent two stations w/ same address Some devices or drivers cannot deal with having the same station address for different virtual interfaces, say as a client to two virtual AP interfaces. Rather than requiring each driver with a limitation like that to enforce it, add a hardware flag for it. Signed-off-by: Johannes Berg include/net/mac80211.h | 6 ++++++ net/mac80211/debugfs.c | 1 + net/mac80211/sta_info.c | 18 ++++++++++++++++-- 3 files changed, 23 insertions(+), 2 deletions(-) commit d9d3ac7afd7a5349271521fb9693230b4da66f1e Merge: 0ba4435 c1df932 Author: Johannes Berg Date: Fri Dec 4 14:43:05 2015 +0100 Merge remote-tracking branch 'mac80211/master' into HEAD I want to get the full off-channel bugfix since later code depends on it, as well as the AP client state change so I can revert it correctly. Signed-off-by: Johannes Berg commit 6ddbaed3eff9f60d29805413404251670d2e8f0c Author: Linus Walleij Date: Fri Dec 4 14:13:59 2015 +0100 gpio: davinci: fix missed parent conversion I missed to convert this driver properly to use .parent to point to the parent device. ARMv7 multiplatform would not compile. Signed-off-by: Linus Walleij drivers/gpio/gpio-davinci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 991ce92f8de24cde063d531246602b6e14d3fef2 Author: Mauro Carvalho Chehab Date: Fri Dec 4 10:38:59 2015 -0200 [media] use https://linuxtv.org for LinuxTV URLs While https was always supported on linuxtv.org, only in Dec 3 2015 the website is using valid certificates. As we're planning to drop pure http support on some future, change all references at the media subsystem to point to the https URL instead. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/dvbproperty.xml | 2 +- Documentation/DocBook/media/dvb/examples.xml | 2 +- Documentation/DocBook/media/dvb/intro.xml | 2 +- Documentation/DocBook/media/v4l/capture.c.xml | 2 +- Documentation/DocBook/media/v4l/compat.xml | 2 +- .../DocBook/media/v4l/vidioc-dbg-g-chip-info.xml | 2 +- .../DocBook/media/v4l/vidioc-dbg-g-register.xml | 2 +- Documentation/DocBook/media/v4l/vidioc-enumstd.xml | 2 +- Documentation/DocBook/media_api.tmpl | 6 +++--- Documentation/dvb/README.dvb-usb | 4 ++-- Documentation/dvb/faq.txt | 2 +- Documentation/dvb/get_dvb_firmware | 22 +++++++++++----------- Documentation/dvb/readme.txt | 10 +++++----- Documentation/video4linux/API.html | 2 +- Documentation/video4linux/fimc.txt | 6 +++--- drivers/media/Kconfig | 4 ++-- drivers/media/dvb-frontends/bsbe1-d01a.h | 2 +- drivers/media/dvb-frontends/bsbe1.h | 2 +- drivers/media/dvb-frontends/bsru6.h | 2 +- drivers/media/dvb-frontends/isl6405.c | 2 +- drivers/media/dvb-frontends/isl6405.h | 2 +- drivers/media/dvb-frontends/isl6421.c | 2 +- drivers/media/dvb-frontends/isl6421.h | 2 +- drivers/media/dvb-frontends/lnbp21.c | 2 +- drivers/media/dvb-frontends/lnbp21.h | 2 +- drivers/media/dvb-frontends/lnbp22.c | 2 +- drivers/media/dvb-frontends/lnbp22.h | 2 +- drivers/media/dvb-frontends/tdhd1.h | 2 +- drivers/media/pci/ttpci/av7110.c | 6 +++--- drivers/media/pci/ttpci/av7110_av.c | 2 +- drivers/media/pci/ttpci/av7110_ca.c | 2 +- drivers/media/pci/ttpci/av7110_hw.c | 2 +- drivers/media/pci/ttpci/av7110_v4l.c | 2 +- drivers/media/pci/ttpci/budget-av.c | 2 +- drivers/media/pci/ttpci/budget-ci.c | 2 +- drivers/media/pci/ttpci/budget-core.c | 2 +- drivers/media/pci/ttpci/budget-patch.c | 2 +- drivers/media/pci/ttpci/budget.c | 2 +- drivers/media/usb/dvb-usb-v2/Kconfig | 2 +- drivers/media/usb/dvb-usb/Kconfig | 2 +- include/linux/videodev2.h | 2 +- include/uapi/linux/videodev2.h | 2 +- 42 files changed, 64 insertions(+), 64 deletions(-) commit 4a3d0cb06b3e4248ba4a659d7f2a7a8fa1a877fc Author: Mauro Carvalho Chehab Date: Fri Dec 4 10:36:22 2015 -0200 drm, ipu-v3: use https://linuxtv.org for LinuxTV URL While https was always supported on linuxtv.org, only in Dec 3 2015 the website is using valid certificates. As we're planning to drop pure http support on some future, change the references at DRM include and at the ipu-v3 driver to point to the https://linuxtv.org URL instead. Signed-off-by: Mauro Carvalho Chehab drivers/gpu/ipu-v3/ipu-cpmem.c | 2 +- include/uapi/drm/drm_fourcc.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit e9a73f67222e49579154d3b8cb3ae71aa7898d94 Author: Mauro Carvalho Chehab Date: Fri Dec 4 10:34:32 2015 -0200 WHENCE: use https://linuxtv.org for LinuxTV URLs While https was always supported on linuxtv.org, only in Dec 3 2015 the website is using valid certificates. As we're planning to drop pure http support on some future, change the http://linuxtv.org references at firmware/WHENCE file to point to https://linuxtv.org instead. Signed-off-by: Mauro Carvalho Chehab firmware/WHENCE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a825eaec8d62f2679880fc1679622da9d77820a9 Author: Mauro Carvalho Chehab Date: Fri Dec 4 10:31:23 2015 -0200 MAINTAINERS: use https://linuxtv.org for LinuxTV URLs While https was always supported on linuxtv.org, only in Dec 3 2015 the website is using valid certificates. As we're planning to drop pure http support on some future, change all references at MAINTAINERS file to point to the https URL instead. Signed-off-by: Mauro Carvalho Chehab MAINTAINERS | 192 ++++++++++++++++++++++++++++++------------------------------ 1 file changed, 96 insertions(+), 96 deletions(-) commit 2baed30cb30727b2637d26eac5a8887875a13420 Author: Sudip Mukherjee Date: Thu Dec 3 18:29:59 2015 +0530 spi: lm70llp: use new parport device model Modify spi-lm70llp driver to use the new parallel port device model. Signed-off-by: Sudip Mukherjee Signed-off-by: Mark Brown drivers/spi/spi-lm70llp.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 74bdced4b4ea8025d36880b923be16592d294c8e Author: Sudip Mukherjee Date: Thu Dec 3 18:29:57 2015 +0530 spi: lm70llp: remove space checkpatch complains about space before closing brace. Signed-off-by: Sudip Mukherjee Signed-off-by: Mark Brown drivers/spi/spi-lm70llp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 44dc0fddd78c36160a2887767ab3f02a9a36a23f Author: Sudip Mukherjee Date: Thu Dec 3 18:29:56 2015 +0530 spi: lm70llp: correct alignment checkpatch complains about the allignment with open parenthesis. Signed-off-by: Sudip Mukherjee Signed-off-by: Mark Brown drivers/spi/spi-lm70llp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 25fb1a46e0f707b7660a96703843e66dd46f67ae Author: Sudip Mukherjee Date: Thu Dec 3 18:29:55 2015 +0530 spi: lm70llp: remove cast to void checkpatch was complaining about space after cast. But the cast to void is not required at that place. Signed-off-by: Sudip Mukherjee Signed-off-by: Mark Brown drivers/spi/spi-lm70llp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 832329d75a854863c99724193d9619aec1e68368 Author: Sudip Mukherjee Date: Thu Dec 3 18:29:54 2015 +0530 spi: lm70llp: add blank line after declaration checkpatch complains about missing blank line after declaration. Signed-off-by: Sudip Mukherjee Signed-off-by: Mark Brown drivers/spi/spi-lm70llp.c | 4 ++++ 1 file changed, 4 insertions(+) commit 50acb9a6a6167235a86d2d549a865af883347672 Author: Sudip Mukherjee Date: Thu Dec 3 18:29:53 2015 +0530 spi: lm70llp: remove multiple blank lines checkpatch complains about multiple blank lines. Signed-off-by: Sudip Mukherjee Signed-off-by: Mark Brown drivers/spi/spi-lm70llp.c | 4 ---- 1 file changed, 4 deletions(-) commit 9f6aa42bbbb23d2115704c5044da951a7e685cc5 Author: Fabio Estevam Date: Thu Dec 3 23:23:24 2015 -0200 spi: imx: Add loopback mode support Loopback mode can be activated by setting bit LBC (LoopBack Control) of register ECSPI_TESTREG. Add support for it. Signed-off-by: Fabio Estevam Signed-off-by: Mark Brown drivers/spi/spi-imx.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit 004ab584e028093996cf5b8e220b8bc50c5111cf Author: Li Bin Date: Fri Dec 4 11:38:40 2015 +0800 arm64: ftrace: fix the comments for ftrace_modify_code There is no need to worry about module and __init text disappearing case, because that ftrace has a module notifier that is called when a module is being unloaded and before the text goes away and this code grabs the ftrace_lock mutex and removes the module functions from the ftrace list, such that it will no longer do any modifications to that module's text, the update to make functions be traced or not is done under the ftrace_lock mutex as well. And by now, __init section codes should not been modified by ftrace, because it is black listed in recordmcount.c and ignored by ftrace. Suggested-by: Steven Rostedt Signed-off-by: Li Bin Signed-off-by: Will Deacon arch/arm64/kernel/ftrace.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 81a6a146e88eca5d6726569779778d61489d85aa Author: Li Bin Date: Fri Dec 4 11:38:39 2015 +0800 arm64: ftrace: stop using kstop_machine to enable/disable tracing For ftrace on arm64, kstop_machine which is hugely disruptive to a running system is not needed to convert nops to ftrace calls or back, because that to be modified instrucions, that NOP, B or BL, are all safe instructions which called "concurrent modification and execution of instructions", that can be executed by one thread of execution as they are being modified by another thread of execution without requiring explicit synchronization. Signed-off-by: Li Bin Reviewed-by: Steven Rostedt Signed-off-by: Will Deacon arch/arm64/kernel/ftrace.c | 5 +++++ 1 file changed, 5 insertions(+) commit 071ac0c4e8e90d5de05f0779b03ae69ce84820d5 Author: Borislav Petkov Date: Mon Nov 30 13:12:59 2015 +0100 x86/mm/ptdump: Make (debugfs)/kernel_page_tables read-only File should be created with S_IRUSR and not with S_IWUSR too because writing to it doesn't make any sense. I mean, we don't have a ->write method anyway but let's have the permissions correct too. Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Arjan van de Ven Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1448885579-32506-1-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/mm/debug_pagetables.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2d142e599bf73ab70a3457e6947f86935245415e Author: Davidlohr Bueso Date: Tue Oct 27 12:53:51 2015 -0700 locking/barriers, arch: Remove ambiguous statement in the smp_store_mb() documentation It serves no purpose but to confuse readers, and is most likely a left over from constant memory-barriers.txt updates. I.e.: http://lists.openwall.net/linux-kernel/2006/07/15/27 Signed-off-by: Davidlohr Bueso Signed-off-by: Peter Zijlstra (Intel) Cc: Cc: Andrew Morton Cc: Jonathan Corbet Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1445975631-17047-5-git-send-email-dave@stgolabs.net Signed-off-by: Ingo Molnar Documentation/memory-barriers.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d5a73cadf3fdec95e9518ee5bb91bd0747c42b30 Author: Davidlohr Bueso Date: Tue Oct 27 12:53:49 2015 -0700 lcoking/barriers, arch: Use smp barriers in smp_store_release() With commit b92b8b35a2e ("locking/arch: Rename set_mb() to smp_store_mb()") it was made clear that the context of this call (and thus set_mb) is strictly for CPU ordering, as opposed to IO. As such all archs should use the smp variant of mb(), respecting the semantics and saving a mandatory barrier on UP. Signed-off-by: Davidlohr Bueso Signed-off-by: Peter Zijlstra (Intel) Cc: Cc: Andrew Morton Cc: Benjamin Herrenschmidt Cc: Heiko Carstens Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tony Luck Cc: dave@stgolabs.net Link: http://lkml.kernel.org/r/1445975631-17047-3-git-send-email-dave@stgolabs.net Signed-off-by: Ingo Molnar arch/ia64/include/asm/barrier.h | 2 +- arch/powerpc/include/asm/barrier.h | 2 +- arch/s390/include/asm/barrier.h | 2 +- include/asm-generic/barrier.h | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) commit fbd35c0d2fb41b75863a0e45fe939c8440375b0a Author: Davidlohr Bueso Date: Tue Oct 27 12:53:48 2015 -0700 locking/cmpxchg, arch: Remove tas() definitions It seems that commit 5dc12ddee93 ("Remove tas()") missed some files. Correct this and fully drop this macro, for which we should be using cmpxchg() like calls. Signed-off-by: Davidlohr Bueso Signed-off-by: Peter Zijlstra (Intel) Cc: Cc: Andrew Morton Cc: Aurelien Jacquiot Cc: Chris Metcalf Cc: David Howells Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Steven Miao Cc: Thomas Gleixner Cc: dave@stgolabs.net Link: http://lkml.kernel.org/r/1445975631-17047-2-git-send-email-dave@stgolabs.net Signed-off-by: Ingo Molnar arch/blackfin/include/asm/cmpxchg.h | 1 - arch/c6x/include/asm/cmpxchg.h | 2 -- arch/frv/include/asm/cmpxchg.h | 2 -- arch/tile/include/asm/cmpxchg.h | 2 -- 4 files changed, 7 deletions(-) commit cd0272fab785077c121aa91ec2401090965bbc37 Author: Waiman Long Date: Mon Nov 9 19:09:27 2015 -0500 locking/pvqspinlock: Queue node adaptive spinning In an overcommitted guest where some vCPUs have to be halted to make forward progress in other areas, it is highly likely that a vCPU later in the spinlock queue will be spinning while the ones earlier in the queue would have been halted. The spinning in the later vCPUs is then just a waste of precious CPU cycles because they are not going to get the lock soon as the earlier ones have to be woken up and take their turn to get the lock. This patch implements an adaptive spinning mechanism where the vCPU will call pv_wait() if the previous vCPU is not running. Linux kernel builds were run in KVM guest on an 8-socket, 4 cores/socket Westmere-EX system and a 4-socket, 8 cores/socket Haswell-EX system. Both systems are configured to have 32 physical CPUs. The kernel build times before and after the patch were: Westmere Haswell Patch 32 vCPUs 48 vCPUs 32 vCPUs 48 vCPUs ----- -------- -------- -------- -------- Before patch 3m02.3s 5m00.2s 1m43.7s 3m03.5s After patch 3m03.0s 4m37.5s 1m43.0s 2m47.2s For 32 vCPUs, this patch doesn't cause any noticeable change in performance. For 48 vCPUs (over-committed), there is about 8% performance improvement. Signed-off-by: Waiman Long Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Davidlohr Bueso Cc: Douglas Hatch Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Scott J Norton Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1447114167-47185-8-git-send-email-Waiman.Long@hpe.com Signed-off-by: Ingo Molnar kernel/locking/qspinlock.c | 5 ++-- kernel/locking/qspinlock_paravirt.h | 46 +++++++++++++++++++++++++++++++++++-- kernel/locking/qspinlock_stat.h | 3 +++ 3 files changed, 50 insertions(+), 4 deletions(-) commit 1c4941fd53afb46ab15826628e4819866d008a28 Author: Waiman Long Date: Tue Nov 10 16:18:56 2015 -0500 locking/pvqspinlock: Allow limited lock stealing This patch allows one attempt for the lock waiter to steal the lock when entering the PV slowpath. To prevent lock starvation, the pending bit will be set by the queue head vCPU when it is in the active lock spinning loop to disable any lock stealing attempt. This helps to reduce the performance penalty caused by lock waiter preemption while not having much of the downsides of a real unfair lock. The pv_wait_head() function was renamed as pv_wait_head_or_lock() as it was modified to acquire the lock before returning. This is necessary because of possible lock stealing attempts from other tasks. Linux kernel builds were run in KVM guest on an 8-socket, 4 cores/socket Westmere-EX system and a 4-socket, 8 cores/socket Haswell-EX system. Both systems are configured to have 32 physical CPUs. The kernel build times before and after the patch were: Westmere Haswell Patch 32 vCPUs 48 vCPUs 32 vCPUs 48 vCPUs ----- -------- -------- -------- -------- Before patch 3m15.6s 10m56.1s 1m44.1s 5m29.1s After patch 3m02.3s 5m00.2s 1m43.7s 3m03.5s For the overcommited case (48 vCPUs), this patch is able to reduce kernel build time by more than 54% for Westmere and 44% for Haswell. Signed-off-by: Waiman Long Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Davidlohr Bueso Cc: Douglas Hatch Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Scott J Norton Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1447190336-53317-1-git-send-email-Waiman.Long@hpe.com Signed-off-by: Ingo Molnar kernel/locking/qspinlock.c | 26 +++++-- kernel/locking/qspinlock_paravirt.h | 141 ++++++++++++++++++++++++++++++------ kernel/locking/qspinlock_stat.h | 16 ++++ 3 files changed, 155 insertions(+), 28 deletions(-) commit 45e898b735620f426eddf105fc886d2966593a58 Author: Waiman Long Date: Mon Nov 9 19:09:25 2015 -0500 locking/pvqspinlock: Collect slowpath lock statistics This patch enables the accumulation of kicking and waiting related PV qspinlock statistics when the new QUEUED_LOCK_STAT configuration option is selected. It also enables the collection of data which enable us to calculate the kicking and wakeup latencies which have a heavy dependency on the CPUs being used. The statistical counters are per-cpu variables to minimize the performance overhead in their updates. These counters are exported via the debugfs filesystem under the qlockstat directory. When the corresponding debugfs files are read, summation and computing of the required data are then performed. The measured latencies for different CPUs are: CPU Wakeup Kicking --- ------ ------- Haswell-EX 63.6us 7.4us Westmere-EX 67.6us 9.3us The measured latencies varied a bit from run-to-run. The wakeup latency is much higher than the kicking latency. A sample of statistical counters after system bootup (with vCPU overcommit) was: pv_hash_hops=1.00 pv_kick_unlock=1148 pv_kick_wake=1146 pv_latency_kick=11040 pv_latency_wake=194840 pv_spurious_wakeup=7 pv_wait_again=4 pv_wait_head=23 pv_wait_node=1129 Signed-off-by: Waiman Long Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Davidlohr Bueso Cc: Douglas Hatch Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Scott J Norton Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1447114167-47185-6-git-send-email-Waiman.Long@hpe.com Signed-off-by: Ingo Molnar arch/x86/Kconfig | 8 + kernel/locking/qspinlock_paravirt.h | 32 +++- kernel/locking/qspinlock_stat.h | 281 ++++++++++++++++++++++++++++++++++++ 3 files changed, 316 insertions(+), 5 deletions(-) commit 6a8beeffed3b2d33151150e3a03696e697f16d46 Author: Wayne Boyer Date: Wed Dec 2 13:28:14 2015 -0800 drm/i915: Clean up device info structure definitions Beginning with gen7, newer devices repetitively redefine values for the device info structure members. This patch simplifies the structure definitions by grouping member value definitions into the existing GEN7_FEATURES #define and into the new GEN7_LP_FEATURES and HSW_FEATURES #defines. Specifically, GEN_DEFAULT_PIPEOFFSETS and IVB_CURSOR_OFFSETS are added to GEN7_FEATURES and subsequent IVB definitions are simplified. VLV_FEATURES is defined to differentiate and simplify the gen7 low power (LP) devices. HSW_FEATURES is defined and used to simplify all HSW+ devices except for LP. v2: Use VLV_FEATURES for the gen7 low power devices. (Jani) Cc: Rodrigo Vivi Signed-off-by: Wayne Boyer Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449091694-7681-1-git-send-email-wayne.boyer@intel.com drivers/gpu/drm/i915/i915_drv.c | 137 ++++++++++------------------------------ 1 file changed, 35 insertions(+), 102 deletions(-) commit 89f41f4f90741fe94b6da9d4d366628a9b0be8f1 Author: Takashi Iwai Date: Tue Dec 1 17:09:50 2015 +0100 drm/i915: Remove superfluous NULL check to_intel_crtc() always returns a non-NULL pointer. Signed-off-by: Takashi Iwai Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1448986198-3488-2-git-send-email-tiwai@suse.de drivers/gpu/drm/i915/intel_audio.c | 4 ---- 1 file changed, 4 deletions(-) commit aa0b7ae06387d40a988ce16a189082dee6e570bc Author: Waiman Long Date: Wed Dec 2 13:41:50 2015 -0500 sched/fair: Disable the task group load_avg update for the root_task_group Currently, the update_tg_load_avg() function attempts to update the tg's load_avg value whenever the load changes even for root_task_group where the load_avg value will never be used. This patch will disable the load_avg update when the given task group is the root_task_group. Running a Java benchmark with noautogroup and a 4.3 kernel on a 16-socket IvyBridge-EX system, the amount of CPU time (as reported by perf) consumed by task_tick_fair() which includes update_tg_load_avg() decreased from 0.71% to 0.22%, a more than 3X reduction. The Max-jOPs results also increased slightly from 983015 to 986449. Signed-off-by: Waiman Long Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Ben Segall Cc: Douglas Hatch Cc: Linus Torvalds Cc: Mike Galbraith Cc: Morten Rasmussen Cc: Paul Turner Cc: Peter Zijlstra Cc: Scott J Norton Cc: Thomas Gleixner Cc: Yuyang Du Link: http://lkml.kernel.org/r/1449081710-20185-4-git-send-email-Waiman.Long@hpe.com Signed-off-by: Ingo Molnar kernel/sched/fair.c | 6 ++++++ 1 file changed, 6 insertions(+) commit b0367629acf62a78404c467cd09df447c2fea804 Author: Waiman Long Date: Wed Dec 2 13:41:49 2015 -0500 sched/fair: Move the cache-hot 'load_avg' variable into its own cacheline If a system with large number of sockets was driven to full utilization, it was found that the clock tick handling occupied a rather significant proportion of CPU time when fair group scheduling and autogroup were enabled. Running a java benchmark on a 16-socket IvyBridge-EX system, the perf profile looked like: 10.52% 0.00% java [kernel.vmlinux] [k] smp_apic_timer_interrupt 9.66% 0.05% java [kernel.vmlinux] [k] hrtimer_interrupt 8.65% 0.03% java [kernel.vmlinux] [k] tick_sched_timer 8.56% 0.00% java [kernel.vmlinux] [k] update_process_times 8.07% 0.03% java [kernel.vmlinux] [k] scheduler_tick 6.91% 1.78% java [kernel.vmlinux] [k] task_tick_fair 5.24% 5.04% java [kernel.vmlinux] [k] update_cfs_shares In particular, the high CPU time consumed by update_cfs_shares() was mostly due to contention on the cacheline that contained the task_group's load_avg statistical counter. This cacheline may also contains variables like shares, cfs_rq & se which are accessed rather frequently during clock tick processing. This patch moves the load_avg variable into another cacheline separated from the other frequently accessed variables. It also creates a cacheline aligned kmemcache for task_group to make sure that all the allocated task_group's are cacheline aligned. By doing so, the perf profile became: 9.44% 0.00% java [kernel.vmlinux] [k] smp_apic_timer_interrupt 8.74% 0.01% java [kernel.vmlinux] [k] hrtimer_interrupt 7.83% 0.03% java [kernel.vmlinux] [k] tick_sched_timer 7.74% 0.00% java [kernel.vmlinux] [k] update_process_times 7.27% 0.03% java [kernel.vmlinux] [k] scheduler_tick 5.94% 1.74% java [kernel.vmlinux] [k] task_tick_fair 4.15% 3.92% java [kernel.vmlinux] [k] update_cfs_shares The %cpu time is still pretty high, but it is better than before. The benchmark results before and after the patch was as follows: Before patch - Max-jOPs: 907533 Critical-jOps: 134877 After patch - Max-jOPs: 916011 Critical-jOps: 142366 Signed-off-by: Waiman Long Signed-off-by: Peter Zijlstra (Intel) Cc: Ben Segall Cc: Douglas Hatch Cc: Linus Torvalds Cc: Mike Galbraith Cc: Morten Rasmussen Cc: Paul Turner Cc: Peter Zijlstra Cc: Scott J Norton Cc: Thomas Gleixner Cc: Yuyang Du Link: http://lkml.kernel.org/r/1449081710-20185-3-git-send-email-Waiman.Long@hpe.com Signed-off-by: Ingo Molnar kernel/sched/core.c | 10 +++++++--- kernel/sched/sched.h | 7 ++++++- 2 files changed, 13 insertions(+), 4 deletions(-) commit a426f99c91d1036767a7819aaaba6bd3191b7f06 Author: Waiman Long Date: Wed Nov 25 14:09:38 2015 -0500 sched/fair: Avoid redundant idle_cpu() call in update_sg_lb_stats() Part of the responsibility of the update_sg_lb_stats() function is to update the idle_cpus statistical counter in struct sg_lb_stats. This check is done by calling idle_cpu(). The idle_cpu() function, in turn, checks a number of fields within the run queue structure such as rq->curr and rq->nr_running. With the current layout of the run queue structure, rq->curr and rq->nr_running are in separate cachelines. The rq->curr variable is checked first followed by nr_running. As nr_running is also accessed by update_sg_lb_stats() earlier, it makes no sense to load another cacheline when nr_running is not 0 as idle_cpu() will always return false in this case. This patch eliminates this redundant cacheline load by checking the cached nr_running before calling idle_cpu(). Signed-off-by: Waiman Long Signed-off-by: Peter Zijlstra (Intel) Cc: Douglas Hatch Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Scott J Norton Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1448478580-26467-2-git-send-email-Waiman.Long@hpe.com Signed-off-by: Ingo Molnar kernel/sched/fair.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit ed82b8a1ff76ed7b2709e36ed361ddd022fe2407 Author: Andi Kleen Date: Sun Nov 29 20:59:43 2015 -0800 sched/core: Move the sched_to_prio[] arrays out of line When building a kernel with a gcc 6 snapshot the compiler complains about unused const static variables for prio_to_weight and prio_to_mult for multiple scheduler files (all but core.c and autogroup.c) The way the array is currently declared it will be duplicated in every scheduler file that includes sched.h, which seems rather wasteful. Move the array out of line into core.c. I also added a sched_ prefix to avoid any potential name space collisions. Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1448859583-3252-1-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar kernel/sched/auto_group.c | 2 +- kernel/sched/core.c | 45 +++++++++++++++++++++++++++++++++++++++++++-- kernel/sched/sched.h | 42 ++---------------------------------------- 3 files changed, 46 insertions(+), 43 deletions(-) commit b7ce2277f087fd052e7e1bbf432f7fecbee82bb6 Author: Frederic Weisbecker Date: Thu Nov 19 16:47:34 2015 +0100 sched/cputime: Convert vtime_seqlock to seqcount The cputime can only be updated by the current task itself, even in vtime case. So we can safely use seqcount instead of seqlock as there is no writer concurrency involved. Signed-off-by: Frederic Weisbecker Signed-off-by: Peter Zijlstra (Intel) Cc: Chris Metcalf Cc: Christoph Lameter Cc: Hiroshi Shimamoto Cc: Linus Torvalds Cc: Luiz Capitulino Cc: Mike Galbraith Cc: Paul E . McKenney Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1447948054-28668-8-git-send-email-fweisbec@gmail.com Signed-off-by: Ingo Molnar include/linux/init_task.h | 2 +- include/linux/sched.h | 2 +- kernel/fork.c | 2 +- kernel/sched/cputime.c | 46 ++++++++++++++++++++++++---------------------- 4 files changed, 27 insertions(+), 25 deletions(-) commit e592539466380279a9e6e6fdfe4545aa54f22593 Author: Frederic Weisbecker Date: Thu Nov 19 16:47:33 2015 +0100 sched/cputime: Introduce vtime accounting check for readers Readers need to know if vtime runs at all on some CPU somewhere, this is a fast-path check to determine if we need to check further the need to add up any tickless cputime delta. This fast path check uses context tracking state because vtime is tied to context tracking as of now. This check appears to be confusing though so lets use a vtime function that deals with context tracking details in vtime implementation instead. Signed-off-by: Frederic Weisbecker Signed-off-by: Peter Zijlstra (Intel) Cc: Chris Metcalf Cc: Christoph Lameter Cc: Hiroshi Shimamoto Cc: Linus Torvalds Cc: Luiz Capitulino Cc: Mike Galbraith Cc: Paul E . McKenney Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1447948054-28668-7-git-send-email-fweisbec@gmail.com Signed-off-by: Ingo Molnar include/linux/vtime.h | 13 ++++++++++++- kernel/sched/cputime.c | 6 +++--- 2 files changed, 15 insertions(+), 4 deletions(-) commit 55dbdcfa05533f44c9416070b8a9f6432b22314a Author: Frederic Weisbecker Date: Thu Nov 19 16:47:32 2015 +0100 sched/cputime: Rename vtime_accounting_enabled() to vtime_accounting_cpu_enabled() vtime_accounting_enabled() checks if vtime is running on the current CPU and is as such a misnomer. Lets rename it to a function that reflect its locality. We are going to need the current name for a function that tells if vtime runs at all on some CPU. Signed-off-by: Frederic Weisbecker Signed-off-by: Peter Zijlstra (Intel) Cc: Chris Metcalf Cc: Christoph Lameter Cc: Hiroshi Shimamoto Cc: Linus Torvalds Cc: Luiz Capitulino Cc: Mike Galbraith Cc: Paul E . McKenney Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1447948054-28668-6-git-send-email-fweisbec@gmail.com Signed-off-by: Ingo Molnar include/linux/context_tracking.h | 4 ++-- include/linux/vtime.h | 14 +++++++------- kernel/sched/cputime.c | 2 +- kernel/time/tick-sched.c | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) commit cab245d68c38afff1a4c4d018ab7e1d316982f5d Author: Frederic Weisbecker Date: Thu Nov 19 16:47:31 2015 +0100 sched/cputime: Correctly handle task guest time on housekeepers When a task runs on a housekeeper (a CPU running with the periodic tick with neighbours running tickless), it doesn't account cputime using vtime but relies on the tick. Such a task has its vtime_snap_whence value set to VTIME_INACTIVE. Readers won't handle that correctly though. As long as vtime is running on some CPU, readers incorretly assume that vtime runs on all CPUs and always compute the tickless cputime delta, which is only junk on housekeepers. So lets fix this with checking that the target runs on a vtime CPU through the appropriate state check before computing the tickless delta. Signed-off-by: Frederic Weisbecker Signed-off-by: Peter Zijlstra (Intel) Cc: Chris Metcalf Cc: Christoph Lameter Cc: Hiroshi Shimamoto Cc: Linus Torvalds Cc: Luiz Capitulino Cc: Mike Galbraith Cc: Paul E . McKenney Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1447948054-28668-5-git-send-email-fweisbec@gmail.com Signed-off-by: Ingo Molnar kernel/sched/cputime.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7098c1eac75dc03fdbb7249171a6e68ce6044a5a Author: Frederic Weisbecker Date: Thu Nov 19 16:47:30 2015 +0100 sched/cputime: Clarify vtime symbols and document them VTIME_SLEEPING state happens either when: 1) The task is sleeping and no tickless delta is to be added on the task cputime stats. 2) The CPU isn't running vtime at all, so the same properties of 1) applies. Lets rename the vtime symbol to reflect both states. Signed-off-by: Frederic Weisbecker Signed-off-by: Peter Zijlstra (Intel) Cc: Chris Metcalf Cc: Christoph Lameter Cc: Hiroshi Shimamoto Cc: Linus Torvalds Cc: Luiz Capitulino Cc: Mike Galbraith Cc: Paul E . McKenney Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1447948054-28668-4-git-send-email-fweisbec@gmail.com Signed-off-by: Ingo Molnar include/linux/sched.h | 5 ++++- kernel/fork.c | 2 +- kernel/sched/cputime.c | 6 +++--- 3 files changed, 8 insertions(+), 5 deletions(-) commit 7877a0ba5ec63c7b0111b06c773f1696fa17b35a Author: Hiroshi Shimamoto Date: Thu Nov 19 16:47:29 2015 +0100 sched/cputime: Remove extra cost in task_cputime() There is an extra cost in task_cputime() and task_cputime_scaled() when nohz_full is not activated. When vtime accounting is not enabled, we don't need to get deltas of utime and stime under vtime seqlock. This patch removes that cost with adding a shortcut route if vtime accounting is not enabled. Use context_tracking_is_enabled() to check if vtime is accounting on some cpu, in which case only we need to check the tickless cputime delta. Signed-off-by: Hiroshi Shimamoto Signed-off-by: Frederic Weisbecker Signed-off-by: Peter Zijlstra (Intel) Cc: Chris Metcalf Cc: Christoph Lameter Cc: Linus Torvalds Cc: Luiz Capitulino Cc: Mike Galbraith Cc: Paul E . McKenney Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1447948054-28668-3-git-send-email-fweisbec@gmail.com Signed-off-by: Ingo Molnar kernel/sched/cputime.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit ad936d8658fd348338cb7d42c577dac77892b074 Author: Byungchul Park Date: Sat Oct 24 01:16:19 2015 +0900 sched/fair: Make it possible to account fair load avg consistently The current code accounts for the time a task was absent from the fair class (per ATTACH_AGE_LOAD). However it does not work correctly when a task got migrated or moved to another cgroup while outside of the fair class. This patch tries to address that by aging on migration. We locklessly read the 'last_update_time' stamp from both the old and new cfs_rq, ages the load upto the old time, and sets it to the new time. These timestamps should in general not be more than 1 tick apart from one another, so there is a definite bound on things. Signed-off-by: Byungchul Park [ Changelog, a few edits and !SMP build fix ] Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1445616981-29904-2-git-send-email-byungchul.park@lge.com Signed-off-by: Ingo Molnar kernel/sched/core.c | 4 ++++ kernel/sched/fair.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ kernel/sched/sched.h | 11 ++++++++++- 3 files changed, 60 insertions(+), 1 deletion(-) commit 8643cda549ca49a403160892db68504569ac9052 Author: Peter Zijlstra Date: Tue Nov 17 19:01:11 2015 +0100 sched/core, locking: Document Program-Order guarantees These are some notes on the scheduler locking and how it provides program order guarantees on SMP systems. ( This commit is in the locking tree, because the new documentation refers to a newly introduced locking primitive. ) Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Boqun Feng Cc: David Howells Cc: Jonathan Corbet Cc: Linus Torvalds Cc: Michal Hocko Cc: Mike Galbraith Cc: Oleg Nesterov Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Will Deacon Signed-off-by: Ingo Molnar kernel/sched/core.c | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) commit b3e0b1b6d841a4b2f64fc09ea728913da8218424 Author: Peter Zijlstra Date: Fri Oct 16 14:39:38 2015 +0200 locking, sched: Introduce smp_cond_acquire() and use it Introduce smp_cond_acquire() which combines a control dependency and a read barrier to form acquire semantics. This primitive has two benefits: - it documents control dependencies, - its typically cheaper than using smp_load_acquire() in a loop. Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Linus Torvalds Cc: Mike Galbraith Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar include/linux/compiler.h | 17 +++++++++++++++++ kernel/locking/qspinlock.c | 3 +-- kernel/sched/core.c | 8 +------- kernel/sched/sched.h | 2 +- 4 files changed, 20 insertions(+), 10 deletions(-) commit 829cf31751aa1c50b1527c1e0c821c99246b5639 Merge: d780453 ecf7d01 Author: Ingo Molnar Date: Fri Dec 4 10:30:35 2015 +0100 Merge branch 'sched/urgent' into locking/core, to pick up scheduler fix we rely on So we want to change a locking API, but the scheduler uses it, and a conflict is generated by a recent scheduler fix. Pick up the pending scheduler fixes to make life easier. Signed-off-by: Ingo Molnar commit 467386fbbf085e716570813a5d3be3927c348e11 Merge: 525628c ecf7d01 Author: Ingo Molnar Date: Fri Dec 4 10:27:36 2015 +0100 Merge branch 'sched/urgent' into sched/core, to pick up fixes before applying new changes Signed-off-by: Ingo Molnar commit 12ebc1370766e85253f0db4b21e77d5ffca4abed Author: Richard Fitzgerald Date: Tue Nov 3 15:08:36 2015 +0000 MAINTAINERS: Update Wolfson Micro section to include CS47L24 source The CS47L24 source is part of the ex-Wolfson "Arizona" group of drivers. Not all cs47lxx devices are part of the Arizona driver group so the cs47l24 is explicitly listed by its full part number. Signed-off-by: Richard Fitzgerald Signed-off-by: Lee Jones MAINTAINERS | 2 ++ 1 file changed, 2 insertions(+) commit ea1f3339909d8973b41f09ef7275d7e49974b910 Author: Richard Fitzgerald Date: Tue Nov 3 15:08:32 2015 +0000 mfd: arizona: Support Cirrus Logic CS47L24 and WM1831 This patch adds the regmap configuration tables and core MFD handling for the CS47L24 and WM1831 codecs. Note that compared to the other Arizona codecs, these devices do not have an LDO1 or micsupp regulators, extcon driver, or the DCVDD isolation control. Signed-off-by: Richard Fitzgerald Signed-off-by: Lee Jones drivers/mfd/Kconfig | 18 +- drivers/mfd/Makefile | 3 + drivers/mfd/arizona-core.c | 74 +- drivers/mfd/arizona-irq.c | 40 +- drivers/mfd/arizona-spi.c | 7 + drivers/mfd/arizona.h | 4 + drivers/mfd/cs47l24-tables.c | 1629 ++++++++++++++++++++++++++++++++++++++ include/linux/mfd/arizona/core.h | 3 + 8 files changed, 1753 insertions(+), 25 deletions(-) commit 9a65a6d3cbeeb4429b3bdff6404fca0b98fb8222 Author: Richard Fitzgerald Date: Tue Nov 3 15:08:33 2015 +0000 mfd: arizona: Update DT bindings to add CS47L24 and WM1831 This updates the Arizona MFD device tree bindings to add the Cirrus Logic CS47L24 and WM1831 codecs. Note that unlike all the other codecs the DCVDD-supply and MICVDD-supply are mandatory. Signed-off-by: Richard Fitzgerald Signed-off-by: Lee Jones Documentation/devicetree/bindings/mfd/arizona.txt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit cf1199f792da92dabfd5dfb2bd2211b5d191da45 Author: LABBE Corentin Date: Thu Nov 12 08:49:59 2015 +0100 mfd: qcom_rpm: Fix a possible NULL dereference of_match_device could return NULL, and so cause a NULL pointer dereference later. Signed-off-by: LABBE Corentin Signed-off-by: Lee Jones drivers/mfd/qcom_rpm.c | 2 ++ 1 file changed, 2 insertions(+) commit bdd5dcf513847b306621a2059e2ebee910208d8a Author: Linus Walleij Date: Thu Nov 12 10:51:10 2015 +0100 mfd: ab8500: Delete static IRQ resources The platforms that use the AB8500 define all IRQ resources in the device tree and they are automatically populated by matching the .of_compatible string. These static resources are just surplus baggage these days. Signed-off-by: Linus Walleij Signed-off-by: Lee Jones drivers/mfd/ab8500-core.c | 482 ---------------------------------------------- 1 file changed, 482 deletions(-) commit f83e7d814084d9e982a8e24311a402e811d0ee90 Author: Julia Lawall Date: Fri Nov 13 17:03:51 2015 +0100 mfd: da903x: Constify da903x_chip_ops structure The da903x_chip_ops structure is never modified, so declare it as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Lee Jones drivers/mfd/da903x.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 505b9e573ce1384f1729acb3226f6d83b651dee1 Author: Saurabh Sengar Date: Mon Nov 16 14:43:17 2015 +0530 mfd: mc13xxx-core: Use of_property_read_bool() For checking if a property is present or not, use of_property_read_bool instead of of_get_property() Signed-off-by: Saurabh Sengar Signed-off-by: Lee Jones drivers/mfd/mc13xxx-core.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 35deff7eb212b661b32177b6043f674fde6314d7 Author: Jon Hunter Date: Fri Nov 20 10:51:00 2015 +0000 mfd: as3722: Handle interrupts on suspend The as3722 device is registered as an irqchip and the as3722-rtc interrupt is one of it's interrupt sources. When using the as3722-rtc as a wake-up device from suspend, the following is seen: PM: Syncing filesystems ... done. Freezing user space processes ... (elapsed 0.001 seconds) done. Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done. Suspending console(s) (use no_console_suspend to debug) PM: suspend of devices complete after 161.119 msecs PM: late suspend of devices complete after 1.048 msecs PM: noirq suspend of devices complete after 0.756 msecs Disabling non-boot CPUs ... CPU1: shutdown CPU2: shutdown CPU3: shutdown Entering suspend state LP1 Enabling non-boot CPUs ... CPU1 is up CPU2 is up CPU3 is up PM: noirq resume of devices complete after 0.487 msecs as3722 4-0040: Failed to read IRQ status: -16 as3722 4-0040: Failed to read IRQ status: -16 as3722 4-0040: Failed to read IRQ status: -16 as3722 4-0040: Failed to read IRQ status: -16 ... The reason why the as3722 interrupt status cannot be read is because the as3722 interrupt is not masked during suspend and when the as3722-rtc interrupt occurs, to wake-up the device, the interrupt is seen before the i2c controller has been resumed in order to read the as3722 interrupt status. The as3722-rtc driver sets it's interrupt as a wake-up source during suspend, which gets propagated to the parent as3722 interrupt. However, the as3722-rtc driver cannot disable it's interrupt during suspend otherwise we would never be woken up and so the as3722 must disable it's interrupt instead. Fix this by disabling the as3722 interrupt during suspend. To ensure that a wake-up event from the as3722 is not missing, enable the as3722 interrupt as a wake-up source before disabling the interrupt on entering suspend. Signed-off-by: Jon Hunter Signed-off-by: Lee Jones drivers/mfd/as3722.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) commit 74b18e1750201530ce285a5cd1269a9fb592d905 Author: Wei, Gang Date: Wed Dec 2 07:07:20 2015 +0000 x86/tboot: Update maintainer list for Intel TXT Update maintainer list for Intel TXT Signed-off-by: Gang Wei Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: H. Peter Anvin Cc: Joseph Cihula Cc: Linus Torvalds Cc: Ning Sun Cc: Peter Zijlstra Cc: Richard L Maliszewski Cc: Shane Wang Cc: Thomas Gleixner Cc: tboot-devel@lists.sourceforge.net Link: http://lkml.kernel.org/r/D0B11485C64D4B47B66902F8A4E901BE035656E6@shsmsx102.ccr.corp.intel.com Signed-off-by: Ingo Molnar MAINTAINERS | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit c332813b51cbe807d539bb059b81235abf1e3fdd Author: Rasmus Villemoes Date: Tue Dec 1 21:44:50 2015 +0100 x86/mm/mtrr: Mark the 'range_new' static variable in mtrr_calc_range_state() as __initdata 'range_new' doesn't seem to be used after init. It is only passed to memset(), sum_ranges(), memcmp() and x86_get_mtrr_mem_range(), the latter of which also only passes it on to various *range* library functions. So mark it __initdata to free up an extra page after init. Its contents are wiped at every call to mtrr_calc_range_state(), so it being static is not about preserving state between calls, but simply to avoid a 4k+ stack frame. While there, add a comment explaining this and why it's safe. We could also mark nr_range_new as __initdata, but since it's just a single int and also doesn't carry state between calls (it is unconditionally assigned to before it is read), we might as well make it an ordinary automatic variable. Signed-off-by: Rasmus Villemoes Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Toshi Kani Link: http://lkml.kernel.org/r/1449002691-20783-1-git-send-email-linux@rasmusvillemoes.dk Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/mtrr/cleanup.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 4e15f2a1a056ff2695611c3e8d0b162526e84355 Author: Jani Nikula Date: Thu Dec 3 14:00:03 2015 +0200 drm: keep connector status change logging human readable We've had human readable connector status change debug logging since commit ed7951dc13aad4a14695ec8122e9f0e2ef25d39e Author: Lespiau, Damien Date: Fri May 10 12:36:42 2013 +0000 drm: Make the HPD status updates debug logs more readable but commit 162b6a57ac50eec236530a16c071ffa50e87362a Author: Daniel Vetter Date: Wed Jan 21 08:45:21 2015 +0100 drm/probe-helper: don't lose hotplug event added a new one with just the numbers. Fix it. Signed-off-by: Jani Nikula Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449144003-2877-1-git-send-email-jani.nikula@intel.com drivers/gpu/drm/drm_probe_helper.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit a0e3213f836640065e2a23ad55fa6f72e812a4f1 Author: zhuo-hao Date: Tue Nov 17 20:08:07 2015 +0800 alarmtimer: Avoid unexpected rtc interrupt when system resume from S3 Before the system go to suspend (S3), if user create a timer with clockid CLOCK_REALTIME_ALARM/CLOCK_BOOTTIME_ALARM and set a "large" timeout value to this timer. The function alarmtimer_suspend will be called to setup a timeout value to RTC timer to avoid the system sleep over time. However, if the system wakeup early than RTC timeout, the RTC timer will not be cleared. And this will cause the hpet_rtc_interrupt come unexpectedly until the RTC timeout. To fix this problem, just adding alarmtimer_resume to cancel the RTC timer. This was noticed because the HPET RTC emulation fires an interrupt every 16ms(=1/2^DEFAULT_RTC_SHIFT) up to the point where the alarm time is reached. This program always hits this situation (https://lkml.org/lkml/2015/11/8/326), if system wake up earlier than alarm time. Cc: Thomas Gleixner Cc: John Stultz Signed-off-by: Zhuo-hao Lee [jstultz: Tweak commit subject & formatting slightly] Signed-off-by: John Stultz kernel/time/alarmtimer.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit ce3ea1c705761fc73ce4a08f301c93fcba39c58a Author: yzhu1 Date: Thu Dec 3 18:00:55 2015 +0800 net: bonding: remove redudant brackets It is not necessary to use two brackets. As such, the redudant brackets are removed. CC: Jay Vosburgh CC: Veaceslav Falico CC: Andy Gospodarek Signed-off-by: Zhu Yanjun Signed-off-by: David S. Miller drivers/net/bonding/bond_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f188b951f33a0464338f94f928338f84fc0e4392 Merge: 6b20da4 071f5d1 Author: David S. Miller Date: Thu Dec 3 21:03:21 2015 -0500 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Conflicts: drivers/net/ethernet/renesas/ravb_main.c kernel/bpf/syscall.c net/ipv4/ipmr.c All three conflicts were cases of overlapping changes. Signed-off-by: David S. Miller commit e0361b70175f0cd6199dd9ed6679632de73973d4 Author: Peter Hutterer Date: Thu Dec 3 12:26:19 2015 -0800 Input: wacom_w8001 - split the touch and pen devices into two devices These devices have a pen device and a touch device through the same serial protocol, split it up into two separate devices like we do for USB Wacom tablets too. Userspace already matches on the device name so we can't drop it completely. Compose the same basename based on capabilities and append the tool type, leading to a name like "Wacom Serial Penabled 2FG Touchscreen Pen". Note that this drops BTN_TOOL_FINGER, it is not needed once the tools are split out (and a touch device with BTN_TOOL_FINGER is interpreted as touchpad by most of userspace). Signed-off-by: Peter Hutterer Acked-by: Benjamin Tissoires Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/wacom_w8001.c | 167 ++++++++++++++++++++++---------- 1 file changed, 116 insertions(+), 51 deletions(-) commit 5d0a4fe2a9347b05bc5db2963cb7cd6cf014a9ed Author: Peter Hutterer Date: Thu Dec 3 12:25:09 2015 -0800 Input: wacom_w8001 - split pen and touch initialization up This is preparation work for splitting it up for two event nodes. Signed-off-by: Peter Hutterer Acked-by: Benjamin Tissoires Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/wacom_w8001.c | 194 ++++++++++++++++++-------------- 1 file changed, 111 insertions(+), 83 deletions(-) commit e171735410ae5a0ebf90d6bc6a8a97fc28bfc041 Author: Peter Hutterer Date: Thu Dec 3 12:24:26 2015 -0800 Input: wacom_w8001 - handle touch error case correctly If a device failed at the pen setup and gets a zero reply from the touch device, we need to return an error. Otherwise we have a device with nothing but a name and the EV_KEY and EV_ABS bits. Signed-off-by: Peter Hutterer Acked-by: Benjamin Tissoires Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/wacom_w8001.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) commit ec9acda7360de7ee70cc0db36f41c1fd819a3310 Author: Peter Hutterer Date: Tue Dec 1 13:31:28 2015 -0800 Input: wacom_w8001 - set BTN_TOOL_DOUBLETAP if we have 2fg support Signed-off-by: Peter Hutterer Acked-by: Benjamin Tissoires Reviewed-by: Ping Cheng Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/wacom_w8001.c | 1 + 1 file changed, 1 insertion(+) commit 86c03f46b9a40b251e4d97f461a13f8b1f18ae17 Author: Peter Hutterer Date: Tue Dec 1 13:31:06 2015 -0800 Input: wacom_w8001 - use __set_bit for evbits Signed-off-by: Peter Hutterer Acked-by: Benjamin Tissoires Reviewed-by: Ping Cheng Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/wacom_w8001.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 93699220ecace65e5385511f9f7119fd49837adb Author: Dinh Nguyen Date: Thu Dec 3 16:17:55 2015 -0600 arm: socfpga_defconfig: enable USB dual-role and cleanup Enable USB OTG dual-role and a bit of clean up by using make savedefconfig. Signed-off-by: Dinh Nguyen arch/arm/configs/socfpga_defconfig | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 444f9e99a840c4050c0530cfef81801a21a59f4c Author: Chris J Arges Date: Tue Dec 1 20:40:56 2015 -0600 livepatch: function,sympos scheme in livepatch sysfs directory The following directory structure will allow for cases when the same function name exists in a single object. /sys/kernel/livepatch/// The sympos number corresponds to the nth occurrence of the symbol name in kallsyms for the patched object. An example of patching multiple symbols can be found here: https://github.com/dynup/kpatch/issues/493 Signed-off-by: Chris J Arges Reviewed-by: Petr Mladek Acked-by: Josh Poimboeuf Signed-off-by: Jiri Kosina Documentation/ABI/testing/sysfs-kernel-livepatch | 6 +++++- kernel/livepatch/core.c | 10 ++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) commit 064c89df6247cd829a7880cc8a87b7ed2cdfccd8 Author: Chris J Arges Date: Tue Dec 1 20:40:55 2015 -0600 livepatch: add sympos as disambiguator field to klp_reloc In cases of duplicate symbols, sympos will be used to disambiguate instead of val. By default sympos will be 0, and patching will only succeed if the symbol is unique. Specifying a positive value will ensure that occurrence of the symbol in kallsyms for the patched object will be used for patching if it is valid. For external relocations sympos is not supported. Remove klp_verify_callback, klp_verify_args and klp_verify_vmlinux_symbol as they are no longer used. From the klp_reloc structure remove val, as it can be refactored as a local variable in klp_write_object_relocations. Signed-off-by: Chris J Arges Reviewed-by: Petr Mladek Acked-by: Josh Poimboeuf Signed-off-by: Jiri Kosina include/linux/livepatch.h | 5 ++- kernel/livepatch/core.c | 84 +++++++++++------------------------------------ 2 files changed, 21 insertions(+), 68 deletions(-) commit b2b018ef48675a9a524fa9791ea7d67fdac405f7 Author: Chris J Arges Date: Tue Dec 1 20:40:54 2015 -0600 livepatch: add old_sympos as disambiguator field to klp_func Currently, patching objects with duplicate symbol names fail because the creation of the sysfs function directory collides with the previous attempt. Appending old_addr to the function name is problematic as it reveals the address of the function being patch to a normal user. Using the symbol's occurrence in kallsyms to postfix the function name in the sysfs directory solves the issue of having consistent unique names and ensuring that the address is not exposed to a normal user. In addition, using the symbol position as the user's method to disambiguate symbols instead of addr allows for disambiguating symbols in modules as well for both function addresses and for relocs. This also simplifies much of the code. Special handling for kASLR is no longer needed and can be removed. The klp_find_verify_func_addr function can be replaced by klp_find_object_symbol, and klp_verify_vmlinux_symbol and its callback can be removed completely. In cases of duplicate symbols, old_sympos will be used to disambiguate instead of old_addr. By default old_sympos will be 0, and patching will only succeed if the symbol is unique. Specifying a positive value will ensure that occurrence of the symbol in kallsyms for the patched object will be used for patching if it is valid. In addition, make old_addr an internal structure field not to be specified by the user. Finally, remove klp_find_verify_func_addr as it can be replaced by klp_find_object_symbol directly. Support for symbol position disambiguation for relocations is added in the next patch in this series. Signed-off-by: Chris J Arges Reviewed-by: Petr Mladek Acked-by: Josh Poimboeuf Signed-off-by: Jiri Kosina include/linux/livepatch.h | 19 +++++++------ kernel/livepatch/core.c | 72 ++++++++++++++++++++--------------------------- 2 files changed, 41 insertions(+), 50 deletions(-) commit 7a852b02d420c8c82e547e49377552e70976a083 Author: Paul Burton Date: Mon Nov 30 16:21:39 2015 +0000 i2c: eg20t: allow build on MIPS platforms Allow the eg20t I2C driver to be built for MIPS platforms, in preparation for use on the MIPS Boston board. Signed-off-by: Paul Burton Signed-off-by: Wolfram Sang drivers/i2c/busses/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a613d9d48573d3d2f9bba7ed7719c5cc26d3a755 Author: Paul Burton Date: Mon Nov 30 16:21:40 2015 +0000 i2c: eg20t: set i2c_adapter->dev.of_node Set the I2C adapter devices of_node to that of the PCI device, such that I2C clients may be instantiated via device tree. Signed-off-by: Paul Burton Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-eg20t.c | 1 + 1 file changed, 1 insertion(+) commit cc018e3612e4a8244790521e88f9b1b7eb60dab0 Author: Ludovic Desroches Date: Thu Dec 3 10:53:50 2015 +0100 i2c: at91: add support for the HOLD field The hold field allows to configure the data hold time which can be set with the help of the generic binding 'i2c-sda-hold-time-ns'. This feature has been introduced with SAMA5D4 SoC family. Signed-off-by: Ludovic Desroches Acked-by: Nicolas Ferre Acked-by: Rob Herring Signed-off-by: Wolfram Sang Documentation/devicetree/bindings/i2c/i2c-at91.txt | 5 +- drivers/i2c/busses/i2c-at91.c | 53 ++++++++++++++++++++-- 2 files changed, 54 insertions(+), 4 deletions(-) commit d7a4c7633629c983a226ea3e32824360521c09b3 Author: Wolfram Sang Date: Mon Nov 30 14:43:09 2015 +0100 i2c: piix4: remove unneeded assignments smatch rightfully says: drivers/i2c/busses/i2c-piix4.c:504 piix4_access warn: unused return: i = inb_p() drivers/i2c/busses/i2c-piix4.c:537 piix4_access warn: unused return: i = inb_p() Signed-off-by: Wolfram Sang Tested-by: Christian Fetzer drivers/i2c/busses/i2c-piix4.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1f0e1eae1521e9a00f1dfbcf7c51d785ade4179c Author: Charles Keepax Date: Thu Dec 3 18:15:07 2015 +0000 ASoC: arizona: Fix type of clock rate pointer in arizona_set_sysclk Both the sysclk and asyncclk members of arizona_priv are signed by we refer to them through an unsigned pointer. This patch fixes this small harmless error. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/arizona.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 141bc6a620e114d3c4daeaf6e70b9ab96d914152 Author: Charles Keepax Date: Thu Dec 3 18:15:06 2015 +0000 ASoC: arizona: Correct types of mixer texts and values The core expects "const char * const" and "unsigned int" for enum controls, various places in Arizona use "const char *" and "int". This patch corrects the type of these arrays. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/arizona.c | 8 ++++---- sound/soc/codecs/arizona.h | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) commit 6b20da4d8f3f6a3be9f67e3207f435cfaa5f7f97 Author: Jiri Pirko Date: Thu Dec 3 10:12:03 2015 +0100 mlxsw: core: Change BUG to WARN in hwmon code Better to just warn the user that something really odd is going on and continue to run. Suggested-by: Or Gerlitz Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ead87637a9e47f6ce17e4bc9e4c99472f10d72b2 Author: Stephen Boyd Date: Wed Dec 2 23:55:15 2015 -0800 stmmac: ipq806x: Return error values instead of pointers Typically we return error pointers when we want to use those pointers in the non-error case, but this function is just returning error pointers or NULL for success. Change the style to plain int to follow normal kernel coding styles. Cc: Joachim Eastwood Signed-off-by: Stephen Boyd Signed-off-by: David S. Miller .../net/ethernet/stmicro/stmmac/dwmac-ipq806x.c | 24 ++++++++++------------ 1 file changed, 11 insertions(+), 13 deletions(-) commit dc8d1eb305984b1182f5e85de3c3a1f8592b83af Author: Jon Paul Maloy Date: Wed Dec 2 15:19:37 2015 -0500 tipc: fix node reference count bug Commit 5405ff6e15f40f2f ("tipc: convert node lock to rwlock") introduced a bug to the node reference counter handling. When a message is successfully sent in the function tipc_node_xmit(), we return directly after releasing the node lock, instead of continuing and decrementing the node reference counter as we should do. This commit fixes this bug. Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/node.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit b69e3c6f71a53fb46bba588e651d943785398220 Merge: 3b5dde7 0c0744f Author: David S. Miller Date: Thu Dec 3 15:18:10 2015 -0500 Merge branch 'mvneta-ethtool-autoneg' Stas Sergeev says: ==================== mvneta: implement ethtool autonegotiation control These 2 patches add an ability to control the autonegotiation via ethtool. For example: ethtool -s eth0 autoneg off ethtool -s eth0 autoneg on This is needed if you want to connect the mvneta's MII to different switches or PHYs: the ones the do support the in-band status, and the ones that do not. ==================== Signed-off-by: David S. Miller commit 0c0744fc1dd5b39a7ae053433f3449b7a3de09de Author: Stas Sergeev Date: Wed Dec 2 20:35:11 2015 +0300 mvneta: implement ethtool autonegotiation control This patch allows to do ethtool -s eth0 autoneg off ethtool -s eth0 autoneg on to disable or enable autonegotiation at run-time. Without that functionality, the only way to control the autonegotiation is to modify the device tree. This is needed if you plan to use the same kernel with different ethernet switches, the ones that support the in-band status and the ones that not. CC: Thomas Petazzoni CC: netdev@vger.kernel.org CC: linux-kernel@vger.kernel.org Signed-off-by: Stas Sergeev Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mvneta.c | 109 +++++++++++++++++++++++----------- 1 file changed, 74 insertions(+), 35 deletions(-) commit aa5bc7a28d0c5422a0197f021fe5ddcc80f4bfd7 Author: Stas Sergeev Date: Wed Dec 2 20:33:56 2015 +0300 mvneta: consolidate autoneg enabling This moves autoneg-related bit manipulations to the single place. CC: Thomas Petazzoni CC: netdev@vger.kernel.org CC: linux-kernel@vger.kernel.org Signed-off-by: Stas Sergeev Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mvneta.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) commit 3b5dde70b18e2aa05138466cd6b83f6529d4df0d Author: Thierry Reding Date: Wed Dec 2 17:30:29 2015 +0100 net: mv643xx: Use platform_register/unregister_drivers() These new helpers simplify implementing multi-driver modules and properly handle failure to register one driver by unregistering all previously registered drivers. Signed-off-by: Thierry Reding Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mv643xx_eth.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) commit 8c7d3972fdbe9fb7644edea83e0ca5e771aa5563 Author: Thierry Reding Date: Wed Dec 2 17:30:28 2015 +0100 net: mpc52xx: Use platform_register/unregister_drivers() These new helpers simplify implementing multi-driver modules and properly handle failure to register one driver by unregistering all previously registered drivers. Signed-off-by: Thierry Reding Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fec_mpc52xx.c | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) commit 0d1c744cbdcbf7b57044319f4ecad74ba230b138 Author: Thierry Reding Date: Wed Dec 2 17:30:27 2015 +0100 net: bcm63xx: Use platform_register/unregister_drivers() These new helpers simplify implementing multi-driver modules and properly handle failure to register one driver by unregistering all previously registered drivers. Signed-off-by: Thierry Reding Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bcm63xx_enet.c | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-) commit 36b9ddd53587537ee9584f43a2713474000346cd Author: Thierry Reding Date: Wed Dec 2 17:30:26 2015 +0100 net: bfin_mac: Use platform_register/unregister_drivers() These new helpers simplify implementing multi-driver modules and properly handle failure to register one driver by unregistering all previously registered drivers. Signed-off-by: Thierry Reding Signed-off-by: David S. Miller drivers/net/ethernet/adi/bfin_mac.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 681b4d88ad8e5b67c34f4d0a40448efb94e2b227 Author: Guillaume Nault Date: Wed Dec 2 16:27:39 2015 +0100 pppox: use standard module auto-loading feature * Register PF_PPPOX with pppox module rather than with pppoe, so that pppoe doesn't get loaded for any PF_PPPOX socket. * Register PX_PROTO_* with standard MODULE_ALIAS_NET_PF_PROTO() instead of using pppox's own naming scheme. * While there, add auto-loading feature for pptp. Signed-off-by: Guillaume Nault Signed-off-by: David S. Miller drivers/net/ppp/pppoe.c | 2 +- drivers/net/ppp/pppox.c | 3 ++- drivers/net/ppp/pptp.c | 1 + net/l2tp/l2tp_ppp.c | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) commit c402293bd76fbc93e52ef8c0947ab81eea3ae019 Merge: c89359a 8a2a2029 Author: David S. Miller Date: Thu Dec 3 15:05:56 2015 -0500 Merge branch 'vsock-virtio' Stefan Hajnoczi says: ==================== Add virtio transport for AF_VSOCK v2: * Rebased onto Linux v4.4-rc2 * vhost: Refuse to assign reserved CIDs * vhost: Refuse guest CID if already in use * vhost: Only accept correctly addressed packets (no spoofing!) * vhost: Support flexible rx/tx descriptor layout * vhost: Add missing total_tx_buf decrement * virtio_transport: Fix total_tx_buf accounting * virtio_transport: Add virtio_transport global mutex to prevent races * common: Notify other side of SOCK_STREAM disconnect (fixes shutdown semantics) * common: Avoid recursive mutex_lock(tx_lock) for write_space (fixes deadlock) * common: Define VIRTIO_VSOCK_TYPE_STREAM/DGRAM hardware interface constants * common: Define VIRTIO_VSOCK_SHUTDOWN_RCV/SEND hardware interface constants * common: Fix peer_buf_alloc inheritance on child socket This patch series adds a virtio transport for AF_VSOCK (net/vmw_vsock/). AF_VSOCK is designed for communication between virtual machines and hypervisors. It is currently only implemented for VMware's VMCI transport. This series implements the proposed virtio-vsock device specification from here: http://comments.gmane.org/gmane.comp.emulators.virtio.devel/855 Most of the work was done by Asias He and Gerd Hoffmann a while back. I have picked up the series again. The QEMU userspace changes are here: https://github.com/stefanha/qemu/commits/vsock Why virtio-vsock? ----------------- Guest<->host communication is currently done over the virtio-serial device. This makes it hard to port sockets API-based applications and is limited to static ports. virtio-vsock uses the sockets API so that applications can rely on familiar SOCK_STREAM and SOCK_DGRAM semantics. Applications on the host can easily connect to guest agents because the sockets API allows multiple connections to a listen socket (unlike virtio-serial). This simplifies the guest<->host communication and eliminates the need for extra processes on the host to arbitrate virtio-serial ports. Overview -------- This series adds 3 pieces: 1. virtio_transport_common.ko - core virtio vsock code that uses vsock.ko 2. virtio_transport.ko - guest driver 3. drivers/vhost/vsock.ko - host driver Howto ----- The following kernel options are needed: CONFIG_VSOCKETS=y CONFIG_VIRTIO_VSOCKETS=y CONFIG_VIRTIO_VSOCKETS_COMMON=y CONFIG_VHOST_VSOCK=m Launch QEMU as follows: # qemu ... -device vhost-vsock-pci,id=vhost-vsock-pci0,guest-cid=3 Guest and host can communicate via AF_VSOCK sockets. The host's CID (address) is 2 and the guest is automatically assigned a CID (use VMADDR_CID_ANY (-1) to bind to it). Status ------ There are a few design changes I'd like to make to the virtio-vsock device: 1. The 3-way handshake isn't necessary over a reliable transport (virtqueue). Spoofing packets is also impossible so the security aspects of the 3-way handshake (including syn cookie) add nothing. The next version will have a single operation to establish a connection. 2. Credit-based flow control doesn't work for SOCK_DGRAM since multiple clients can transmit to the same listen socket. There is no way for the clients to coordinate buffer space with each other fairly. The next version will drop credit-based flow control for SOCK_DGRAM and only rely on best-effort delivery. SOCK_STREAM still has guaranteed delivery. 3. In the next version only the host will be able to establish connections (i.e. to connect to a guest agent). This is for security reasons since there is currently no ability to provide host services only to certain guests. This also matches how AF_VSOCK works on modern VMware hypervisors. ==================== Signed-off-by: David S. Miller commit 8a2a2029893b4c35d1aba2932111a1a164b9c948 Author: Asias He Date: Wed Dec 2 14:44:03 2015 +0800 VSOCK: Add Makefile and Kconfig Enable virtio-vsock and vhost-vsock. Signed-off-by: Asias He Signed-off-by: Stefan Hajnoczi Signed-off-by: David S. Miller drivers/vhost/Kconfig | 4 ++++ drivers/vhost/Kconfig.vsock | 7 +++++++ drivers/vhost/Makefile | 4 ++++ net/vmw_vsock/Kconfig | 18 ++++++++++++++++++ net/vmw_vsock/Makefile | 2 ++ 5 files changed, 35 insertions(+) commit 98bb892821c1ad3781b8c7daec2fc8a8de3390c9 Author: Asias He Date: Wed Dec 2 14:44:02 2015 +0800 VSOCK: Introduce vhost-vsock.ko VM sockets vhost transport implementation. This module runs in host kernel. Signed-off-by: Asias He Signed-off-by: Stefan Hajnoczi Signed-off-by: David S. Miller drivers/vhost/vsock.c | 631 ++++++++++++++++++++++++++++++++++++++++++++++++++ drivers/vhost/vsock.h | 4 + 2 files changed, 635 insertions(+) commit 32e61b06b6946ba137723c5b1de2a1fdb2e0e0a5 Author: Asias He Date: Wed Dec 2 14:44:01 2015 +0800 VSOCK: Introduce virtio-vsock.ko VM sockets virtio transport implementation. This module runs in guest kernel. Signed-off-by: Asias He Signed-off-by: Stefan Hajnoczi Signed-off-by: David S. Miller net/vmw_vsock/virtio_transport.c | 466 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 466 insertions(+) commit 80a19e338d458abb5a700df3fd00795c51361f06 Author: Asias He Date: Wed Dec 2 14:44:00 2015 +0800 VSOCK: Introduce virtio-vsock-common.ko This module contains the common code and header files for the following virtio-vsock and virtio-vhost kernel modules. Signed-off-by: Asias He Signed-off-by: Stefan Hajnoczi Signed-off-by: David S. Miller include/linux/virtio_vsock.h | 209 +++++ include/uapi/linux/virtio_ids.h | 1 + include/uapi/linux/virtio_vsock.h | 89 +++ net/vmw_vsock/virtio_transport_common.c | 1272 +++++++++++++++++++++++++++++++ 4 files changed, 1571 insertions(+) commit 357ab2234d57f6c74386f64ded42dff8e3c0500b Author: Asias He Date: Wed Dec 2 14:43:59 2015 +0800 VSOCK: Introduce vsock_find_unbound_socket and vsock_bind_dgram_generic Signed-off-by: Asias He Signed-off-by: Stefan Hajnoczi Signed-off-by: David S. Miller include/net/af_vsock.h | 2 ++ net/vmw_vsock/af_vsock.c | 70 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) commit c89359a42e2a49656451569c382eed63e781153c Author: Roopa Prabhu Date: Tue Dec 1 22:18:11 2015 -0800 mpls: support for dead routes Adds support for RTNH_F_DEAD and RTNH_F_LINKDOWN flags on mpls routes due to link events. Also adds code to ignore dead routes during route selection. Unlike ip routes, mpls routes are not deleted when the route goes dead. This is current mpls behaviour and this patch does not change that. With this patch however, routes will be marked dead. dead routes are not notified to userspace (this is consistent with ipv4 routes). dead routes: ----------- $ip -f mpls route show 100 nexthop as to 200 via inet 10.1.1.2 dev swp1 nexthop as to 700 via inet 10.1.1.6 dev swp2 $ip link set dev swp1 down $ip link show dev swp1 4: swp1: mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000 link/ether 00:02:00:00:00:01 brd ff:ff:ff:ff:ff:ff $ip -f mpls route show 100 nexthop as to 200 via inet 10.1.1.2 dev swp1 dead linkdown nexthop as to 700 via inet 10.1.1.6 dev swp2 linkdown routes: ---------------- $ip -f mpls route show 100 nexthop as to 200 via inet 10.1.1.2 dev swp1 nexthop as to 700 via inet 10.1.1.6 dev swp2 $ip link show dev swp1 4: swp1: mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether 00:02:00:00:00:01 brd ff:ff:ff:ff:ff:ff /* carrier goes down */ $ip link show dev swp1 4: swp1: mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000 link/ether 00:02:00:00:00:01 brd ff:ff:ff:ff:ff:ff $ip -f mpls route show 100 nexthop as to 200 via inet 10.1.1.2 dev swp1 linkdown nexthop as to 700 via inet 10.1.1.6 dev swp2 Signed-off-by: Roopa Prabhu Acked-by: Robert Shearman Signed-off-by: David S. Miller net/mpls/af_mpls.c | 185 ++++++++++++++++++++++++++++++++++++++++++++-------- net/mpls/internal.h | 2 + 2 files changed, 159 insertions(+), 28 deletions(-) commit 5fbeef5822781972d6fa054842cc7edca101f4bc Author: Tony Lindgren Date: Thu Dec 3 12:02:31 2015 -0800 clk: ti: Add few dm814x clock aliases The timer clock aliases are needed early on dm814x. Let's also add the aliases for the interconnects and MMC. Cc: Michael Turquette Cc: Stephen Boyd Acked-by: Tero Kristo Signed-off-by: Tony Lindgren drivers/clk/ti/clk-814x.c | 4 ++++ 1 file changed, 4 insertions(+) commit 7f8f0b117ab8a22e7e5bb1faf8e8ea8a79005aec Author: Tony Lindgren Date: Thu Dec 3 11:35:41 2015 -0800 ARM: dts: Fix dm814x entries for pllss and prcm Otherwise drivers under pllss and prcm won't probe properly. Signed-off-by: Tony Lindgren arch/arm/boot/dts/dm814x.dtsi | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 9f4842a8dfaea570ffa549d0e2e5ccc4fb6e46ca Merge: d6df198 af8002d Author: David S. Miller Date: Thu Dec 3 15:01:09 2015 -0500 Merge branch 'rsvb-compat-strings' Simon Horman says: ==================== ravb: More compatibility strings this short series adds generic gen2 and gen3, and soc-specific compatibility strings for the missing gen2 SoCs. Key Changes in v2: * Include "rcar-" in generic bindings ==================== Signed-off-by: David S. Miller commit af8002d35ce0f27a945a69bd8944e7fec50e2df8 Author: Simon Horman Date: Wed Dec 2 14:58:33 2015 +0900 ravb: add device tree support for r8a779[123] Simply document new compatibility strings. As a previous patch adds a generic R-Car Gen2 compatibility string there appears to be no need for a driver updates. Signed-off-by: Simon Horman Acked-by: Rob Herring Signed-off-by: David S. Miller Documentation/devicetree/bindings/net/renesas,ravb.txt | 3 +++ 1 file changed, 3 insertions(+) commit 0e8743611a76ced8b0971b6894f982ce89624cc4 Author: Simon Horman Date: Wed Dec 2 14:58:32 2015 +0900 ravb: add fallback compatibility strings Add fallback compatibility strings for R-Car Gen 2 & 3 SoC Families. This is in keeping with the fallback scheme being adopted wherever appropriate for drivers for Renesas SoCs. Signed-off-by: Simon Horman Acked-by: Rob Herring Signed-off-by: David S. Miller Documentation/devicetree/bindings/net/renesas,ravb.txt | 9 ++++++++- drivers/net/ethernet/renesas/ravb_main.c | 2 ++ 2 files changed, 10 insertions(+), 1 deletion(-) commit d6df198d924775e4751561cf60ef0294e95f74df Author: Phil Sutter Date: Tue Dec 1 22:45:15 2015 +0100 net: ipv6: restrict hop_limit sysctl setting to range [1; 255] Setting a value bigger than 255 resulted in using only the lower eight bits of that value as it is assigned to the u8 header field. To avoid this unexpected result, reject such values. Setting a value of zero is technically possible, but hosts receiving such a packet have to treat it like hop_limit was set to one, according to RFC2460. Therefore I don't see a use-case for that. Setting a route's hop_limit to zero in iproute2 means to use the sysctl default, which is not the case here: Setting e.g. net.conf.eth0.hop_limit=0 will not make the kernel use net.conf.all.hop_limit for outgoing packets on eth0. To avoid these kinds of confusion, reject zero. Signed-off-by: Phil Sutter Signed-off-by: David S. Miller net/ipv6/addrconf.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) commit 71842a74f9942d2575a7322f756c22cac0058d01 Merge: b034085 8dd5ea7 Author: Tony Lindgren Date: Thu Dec 3 11:41:28 2015 -0800 Merge branch 'omap-for-v4.5/initcall' into omap-for-v4.5/soc-v2 commit 8dd5ea72b0c0dbcdb5d629247ac7ead49c6a9c58 Author: Tony Lindgren Date: Thu Dec 3 11:38:09 2015 -0800 ARM: OMAP2+: Change core_initcall levels to postcore_initcall We want to be able to probe a few selected device drivers before hwmod code populates the clocks in omap_hwmod_setup_all(). This allows us to convert most of the clock drivers into regular device drivers. We only need a few minimal clock drivers early for the system timers to select between the 32KiHz clock and the high frequency oscillator. With these changes, initializing the clock drivers can be just done at core_initcall time with something like: np = of_find_node_by_name(NULL, "plls"); if (np) of_platform_populate(np, NULL, NULL, NULL); And then these clocks will be available for the interconnect code to use. Having most of the clock drivers being regular device drivers allows us to use the nice things like devm_* functions and dev_err and dev_dbg. As an extra bonus, this also allows us to develop the clock drivers for new SoCs as loadable modules initially for cases where we can boot up the system based on the bootloader configured clocks. To do this, let's change the core_initcalls to postcore_initcall under mach-omap2. Cc: Felipe Balbi Cc: Grygorii Strashko Cc: Paul Walmsley Cc: Tero Kristo Signed-off-by: Tony Lindgren arch/arm/mach-omap2/omap2-restart.c | 2 +- arch/arm/mach-omap2/omap_device.c | 2 +- arch/arm/mach-omap2/omap_hwmod.c | 2 +- arch/arm/mach-omap2/serial.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) commit d86b8da04dfa4771a68bdbad6c424d40f22f0d14 Author: Will Deacon Date: Thu Nov 19 17:48:31 2015 +0000 arm64: spinlock: serialise spin_unlock_wait against concurrent lockers Boqun Feng reported a rather nasty ordering issue with spin_unlock_wait on architectures implementing spin_lock with LL/SC sequences and acquire semantics: | CPU 1 CPU 2 CPU 3 | ================== ==================== ============== | spin_unlock(&lock); | spin_lock(&lock): | r1 = *lock; // r1 == 0; | o = READ_ONCE(object); // reordered here | object = NULL; | smp_mb(); | spin_unlock_wait(&lock); | *lock = 1; | smp_mb(); | o->dead = true; | if (o) // true | BUG_ON(o->dead); // true!! The crux of the problem is that spin_unlock_wait(&lock) can return on CPU 1 whilst CPU 2 is in the process of taking the lock. This can be resolved by upgrading spin_unlock_wait to a LOCK operation, forcing it to serialise against a concurrent locker and giving it acquire semantics in the process (although it is not at all clear whether this is needed - different callers seem to assume different things about the barrier semantics and architectures are similarly disjoint in their implementations of the macro). This patch implements spin_unlock_wait using an LL/SC sequence with acquire semantics on arm64. For v8.1 systems with the LSE atomics, the exclusive writeback is omitted, since the spin_lock operation is indivisible and no intermediate state can be observed. Signed-off-by: Will Deacon arch/arm64/include/asm/spinlock.h | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) commit 24da208db32ee1e4757ceaba898c47add8e5361e Author: Will Deacon Date: Mon Nov 23 15:12:59 2015 +0000 arm64: enable HAVE_IRQ_TIME_ACCOUNTING arm64 relies on the arm_arch_timer for sched_clock, so we can select HAVE_IRQ_TIME_ACCOUNTING and have the core sched-clock code enable the feature at runtime based on the rate. Reported-by: Mario Smarduch Signed-off-by: Will Deacon Documentation/features/time/irq-time-acct/arch-support.txt | 2 +- arch/arm64/Kconfig | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) commit f5d7837f96e53a8c9b6c49e1bc95cf0ae88b99e8 Author: Kazuya Mizuguchi Date: Wed Dec 2 02:04:39 2015 +0900 ravb: ptp: Add CONFIG mode support This patch makes PTP support active in CONFIG mode on R-Car Gen3. Signed-off-by: Kazuya Mizuguchi Signed-off-by: Yoshihiro Kaneko Signed-off-by: David S. Miller drivers/net/ethernet/renesas/ravb.h | 1 + drivers/net/ethernet/renesas/ravb_main.c | 33 +++++++++++++++++++++++++++----- 2 files changed, 29 insertions(+), 5 deletions(-) commit 03b01cf520b629e1b6cbcd3048a9e283b2477bfa Merge: f4f7981 4c35236 Author: David S. Miller Date: Thu Dec 3 14:17:51 2015 -0500 Merge branch 'netronome-NFP4000-NFP6000' Jakub Kicinski says: ==================== Netronome NFP4000/NFP6000 NIC VF driver This patchset adds support for VFs of Netronome's NFP-4000 and NFP-6000 based NICs. We are currently also preparing the submission for the PF driver, but it is not quite ready yet. The PF driver can be found on GitHub: https://github.com/Netronome/nfp-drv-kmods ==================== Signed-off-by: David S. Miller commit 4c3523623dc0b980158e34b64360603035239a71 Author: Jakub Kicinski Date: Tue Dec 1 14:55:22 2015 +0000 net: add driver for Netronome NFP4000/NFP6000 NIC VFs Add driver for Virtual Functions for the Netronome's NFP-4000 and NFP-6000 based NICs. Signed-off-by: Jakub Kicinski Signed-off-by: Rolf Neugebauer Signed-off-by: David S. Miller MAINTAINERS | 7 + drivers/net/ethernet/Kconfig | 1 + drivers/net/ethernet/Makefile | 1 + drivers/net/ethernet/netronome/Kconfig | 36 + drivers/net/ethernet/netronome/Makefile | 5 + drivers/net/ethernet/netronome/nfp/Makefile | 8 + drivers/net/ethernet/netronome/nfp/nfp_net.h | 748 ++++++ .../net/ethernet/netronome/nfp/nfp_net_common.c | 2432 ++++++++++++++++++++ drivers/net/ethernet/netronome/nfp/nfp_net_ctrl.h | 323 +++ .../net/ethernet/netronome/nfp/nfp_net_debugfs.c | 235 ++ .../net/ethernet/netronome/nfp/nfp_net_ethtool.c | 640 ++++++ .../net/ethernet/netronome/nfp/nfp_netvf_main.c | 385 ++++ 12 files changed, 4821 insertions(+) commit 2d1e0254ef8310e4f0756130a7ffc007ad1d58df Author: Jakub Kicinski Date: Tue Dec 1 14:55:21 2015 +0000 pci_ids: add Netronome Systems vendor Add PCI vendor id for Netronome Systems. Signed-off-by: Jakub Kicinski Signed-off-by: Rolf Neugebauer Signed-off-by: David S. Miller include/linux/pci_ids.h | 2 ++ 1 file changed, 2 insertions(+) commit 93e87d73cc46685902bffb0928c2514eaf209b44 Author: Matt Ranostay Date: Tue Dec 1 21:47:20 2015 -0800 iio: chemical: vz89x: rework i2c transfer reading Add an optimized i2c transfer reading function, and fallback to racey smbus transfers if client->adapter doesn't support this. Signed-off-by: Matt Ranostay Signed-off-by: Jonathan Cameron drivers/iio/chemical/vz89x.c | 66 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 52 insertions(+), 14 deletions(-) commit 0dbf41a3c88e229009a9f5fd2a89835569fa3451 Author: Arnd Bergmann Date: Wed Nov 25 13:13:26 2015 -0200 [media] staging: media: lirc: Replace timeval with ktime_t in lirc_parallel.c 'struct timeval tv' and 'struct timeval now' is used to calculate the elapsed time. 'LIRC_SFH506_DELAY' is a delay t_phl in usecs. 32-bit systems using 'struct timeval' will break in the year 2038, so we have to replace that code with more appropriate types. This patch changes the lirc_parallel.c file of media: lirc driver to use ktime_t. ktime_get() is better than using do_gettimeofday(), because it uses the monotonic clock. ktime_sub is used to subtract two ktime variables. ktime_to_us() is used to convert ktime to microsecond. New ktime_t variable timeout, is added in lirc_off(),to improve clarity. Introduced a new ktime_t variable in lirc_lirc_irq_handler() function, to avoid the use of signal variable for storing seconds in the first part of this function as later it uses a time unit that is defined by the global "timer" variable. This makes it more clear. ktime_set() is used to set a value in seconds to a value in nanosecond so that ktime_compare() can be used appropriately. ktime_compare() is used to compare two ktime values. ktime_add_ns() is used to increment a ktime value by 1 sec. One comment is also shifted a line up, as it was creating a 80 character warning. Build tested it. Also tested it with sparse. Signed-off-by: Tapasweni Pathak Signed-off-by: Arnd Bergmann Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/lirc/lirc_parallel.c | 35 +++++++++++++----------------- 1 file changed, 15 insertions(+), 20 deletions(-) commit f07c73fea2187997552020c3d2db4f0b0302931c Author: Arnd Bergmann Date: Wed Nov 25 13:12:53 2015 -0200 [media] staging: media: lirc: Replace timeval with ktime_t in lirc_sasem.c 'struct timeval presstime' and 'struct timeval tv' is used to calculate the time since the last button press. 32-bit systems using 'struct timeval' will break in the year 2038, so we have to replace that code with more appropriate types. This patch changes the media: lirc driver to use ktime_t. ktime_get() is better than using do_gettimeofday(), because it uses the monotonic clock. ktime_sub() are used to subtract two ktime variables. 'ms' is only used to check how much time has passed by comparing to 250. So instead of using expensive ktime_to_ms() call, it has been changed to hold nanoseconds by using ktime_to_ns(). Build tested it. Tested with sparse too. Signed-off-by: Tapasweni Pathak Signed-off-by: Arnd Bergmann Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/lirc/lirc_sasem.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) commit 4c3e2a4036054deca4819758f59ff65f27938388 Author: Daniel Baluta Date: Mon Nov 9 09:14:02 2015 +0200 iio: Documentation: Add IIO configfs documentation Signed-off-by: Daniel Baluta Acked-by: Crt Mori Signed-off-by: Jonathan Cameron Documentation/ABI/testing/configfs-iio | 21 ++++++++ Documentation/iio/iio_configfs.txt | 93 ++++++++++++++++++++++++++++++++++ 2 files changed, 114 insertions(+) commit ac5006a2a558a2441a840c7be1e0e717839d5e07 Author: Daniel Baluta Date: Mon Nov 9 09:14:01 2015 +0200 iio: trigger: Introduce IIO hrtimer based trigger This patch registers a new IIO software trigger interrupt source based on high resolution timers. Notice that if configfs is enabled we create sampling_frequency attribute allowing users to change hrtimer period (1/sampling_frequency). The IIO hrtimer trigger has a long history, this patch is based on an older version from Marten and Lars-Peter. Signed-off-by: Marten Svanfeldt Signed-off-by: Lars-Peter Clausen Signed-off-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/trigger/Kconfig | 10 ++ drivers/iio/trigger/Makefile | 2 + drivers/iio/trigger/iio-trig-hrtimer.c | 193 +++++++++++++++++++++++++++++++++ 3 files changed, 205 insertions(+) commit b662f809d41009749a9ee6f9a4db3d9af579e171 Author: Daniel Baluta Date: Mon Nov 9 09:14:00 2015 +0200 iio: core: Introduce IIO software triggers A software trigger associates an IIO device trigger with a software interrupt source (e.g: timer, sysfs). This patch adds the generic infrastructure for handling software triggers. Software interrupts sources are kept in a iio_trigger_types_list and registered separately when the associated kernel module is loaded. Software triggers can be created directly from drivers or from user space via configfs interface. To sum up, this dynamically creates "triggers" group to be found under /config/iio/triggers and offers the possibility of dynamically creating trigger types groups. The first supported trigger type is "hrtimer" found under /config/iio/triggers/hrtimer. Signed-off-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/Kconfig | 8 ++ drivers/iio/Makefile | 1 + drivers/iio/industrialio-sw-trigger.c | 183 ++++++++++++++++++++++++++++++++++ include/linux/iio/sw_trigger.h | 71 +++++++++++++ 4 files changed, 263 insertions(+) commit 8261d961d1f397925d7a470864c14663d01ed714 Author: Daniel Baluta Date: Mon Nov 9 09:13:59 2015 +0200 iio: core: Introduce IIO configfs support This patch creates the IIO configfs root group. The group will appear under /iio/, usually /config/iio. We introduce configfs support in IIO in order to be able to easily create IIO objects from userspace. The first supported IIO objects are triggers introduced with next patches. Signed-off-by: Daniel Baluta Tested-by: Matt Ranostay Signed-off-by: Jonathan Cameron drivers/iio/Kconfig | 8 ++++++ drivers/iio/Makefile | 1 + drivers/iio/industrialio-configfs.c | 50 +++++++++++++++++++++++++++++++++++++ 3 files changed, 59 insertions(+) commit 8459503295d9ed3aaf5a2089a2fbdbdb5e9a9576 Author: Arnd Bergmann Date: Wed Nov 25 13:11:55 2015 -0200 [media] staging: media: lirc: Replace timeval with ktime_t in lirc_serial.c 'struct timeval tv' is used to get current time. 'static struct timeval lasttv' is used to get last interrupt time. 32-bit systems using 'struct timeval' will break in the year 2038, so we have to replace that code with more appropriate types. This patch changes the lirc_serial.c file of media: lirc to use ktime_t. ktime_get() is better than using do_gettimeofday(), because it uses the monotonic clock. ktime_sub is used to subtract two ktime variables. The check to test time going backwards is also removed. Intialization to static variable is also removed. ktime_to_us() is used to convert ktime_t to microsecond value. deltv is changed to delkt, a ktime_t type varibale from long to assign the ktime_sub value directly. ktime_compare is used to compare delkt with 15 seconds, which is changed to a nanosecond value by using ktime_set(). Build tested it. Signed-off-by: Tapasweni Pathak Signed-off-by: Arnd Bergmann Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/lirc/lirc_serial.c | 50 +++++++++++--------------------- 1 file changed, 17 insertions(+), 33 deletions(-) commit 21312f6ddb1710750761c4b140b7367208b4f89e Author: Joseph Marrero Date: Tue Nov 24 19:30:18 2015 -0200 [media] radio-bcm2048: fix code indent Fixes a warning message found by checkpatch.pl WARNING: suspect code indent for conditional statements Signed-off-by: Joseph Marrero Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/bcm2048/radio-bcm2048.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b046d3ad38d90276379c862f15ddd99fa8739906 Author: Matthias Schwarzott Date: Mon Nov 23 17:19:04 2015 -0200 [media] tda10071: Fix dependency to REGMAP_I2C Without I get this error for by dvb-card: tda10071: Unknown symbol devm_regmap_init_i2c (err 0) cx23885_dvb_register() dvb_register failed err = -22 cx23885_dev_setup() Failed to register dvb adapters on VID_B Signed-off-by: Matthias Schwarzott Reviewed-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cda22646adaa453519fac28222f20b0d73aa8562 Author: Mike Krinkin Date: Thu Dec 3 17:32:30 2015 +0300 block: add call to split trace point There is a split tracepoint that is supposed to be called when bio is splitted, and it was called in bio_split function until commit 4b1faf931650d4a35b2a ("block: Kill bio_pair_split()"). But now, no one reports splits, so this patch adds call to trace_block_split back in blk_queue_split right after split. Signed-off-by: Mike Krinkin Signed-off-by: Jens Axboe block/blk-merge.c | 3 +++ 1 file changed, 3 insertions(+) commit f4f7981ed39850e8c0525423be8873e16372756b Merge: c5b6c3e 4eeb1ff Author: David S. Miller Date: Thu Dec 3 12:11:00 2015 -0500 Merge branch '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== 40GbE Intel Wired LAN Driver Updates 2015-12-03 This series contains updates to i40e and i40evf only. Mitch updates the i40evf driver by increasing the maximum number of queues, since future devices will allow for more queue pairs. Cleans up a duplicate printing of the driver info string done in init, since it is already done in probe. Cleaned up the several allocations which did not need to be at atomic level, where GFP_KERNEL would work just fine. Then makes i40e_sync_vsi_filters() a more mature function, make having a common exit point so it will properly release the busy lock on the VSI and propagate errors to the callers. Then does some whitespace housekeeping in i40evf. Kiran moves and updates the detection/recovery of transmit queue hang code to service_task from tx_timeout function. Also fixed memory leak when users program flow-director filter using ethtool (sideband filter programming), the cause being the check of 'tx_buffer->skb' was preventing 'raw_buf' from being freed as part of the cleanup. Jesse enabled the ability to turn off/on packet split using ethtool priv flags. Then does some housekeeping for both the i40e and i40evf drivers which includes: remove unused/useless code, correct whitespace, remove duplicate #include, fix incorrect comment, etc... Neerav cleans up functions to gather Flow Control Rx XOFF stats, since the recent change in the driver logic for checking transmit hang has been moved, so these functions do not do anything meaningful any longer. ==================== Signed-off-by: David S. Miller commit f7488c50f3e9ff8fe1893f4e6d447ec96e721261 Author: Lars-Peter Clausen Date: Sat Nov 21 09:16:38 2015 -0200 [media] dm1105: Remove unnecessary synchronize_irq() before free_irq() Calling synchronize_irq() right before free_irq() is quite useless. On one hand the IRQ can easily fire again before free_irq() is entered, on the other hand free_irq() itself calls synchronize_irq() internally (in a race condition free way), before any state associated with the IRQ is freed. Patch was generated using the following semantic patch: // @@ expression irq; @@ -synchronize_irq(irq); free_irq(irq, ...); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/dm1105/dm1105.c | 1 - 1 file changed, 1 deletion(-) commit c5b6c3ee38d14816e455d816dd5014fe52a53e39 Merge: 24e2416 66e49de Author: David S. Miller Date: Thu Dec 3 12:08:48 2015 -0500 Merge branch 'mlx5-connectx-4-sriov' Or Gerlitz says: ==================== Introducing ConnectX-4 Ethernet SRIOV This patchset introduces the support of Ethernet SRIOV in ConnectX-4 family of 100G Ethernet NICs. Some features are still missing, but all the basic SRIOV functionalities are there already. Basic Introduction: ConnectX-4 HW architecture provides two kinds of underlying HW switches. MPFS (Multi Physical Function Switch) or L2 Table in Software terms: The HCA has one MPFS switch per physical port, this switch is responsible of forwarding Unicast traffic to the various overlying Physical Functions (PFs). Multicast traffic is flooded amongst all the PFs, Each PF can request to forward a unicast MAC to its E-Switch Uplink vport (which we will cover later) through SET_L2_TABLE_ENTRY HW command. MPFS has five ports, four are connected to PFs (one for each) and one is connected directly to the Physical Port (Physical Link). E-Switch (Ethernet Switch): The HCA has one per physical function. The main responsibility of this component is to forward Unicast/Multicast and vlan tagged/untagged traffic to the various Virtual Functions (VFs) allocated by the PF. Unlike MPFS, the PF needs to explicitly create the E-Switch FDB table, Which is a HW flow table managed by the PF driver whenever vport_group_manager capability bit is set for this PF. E-Switch has Virtual Ports (vports) entities as its ports, vport0 and uplink vport are special kind of vports that represents PF vport (vport0) and uplink vport which is connected to the MPFS switch (if exists) as the PF external link. vport1..vportN represent VF0..VF(N-1) egress/ingress ports. E-Switch FDB contains forwarding rules such as: UC MAC0 -> vport0(PF). UC MAC1 -> vport1. UC MAC2 -> vport2. MC MACX -> vport0, vport2, Uplink. MC MACY -> vport1, Uplink. For unmatched traffic FDB has the following default rules: Unmatched Traffic (src vport != Uplink) -> Uplink. Unmatched Traffic (src vport == Uplink) -> vport0(PF). NIC VPort context: Each NIC (VF/PF) has its own vport context which will be used to store the current NIC vport context (UC/MC and vlan lists) and other NIC properties such as MTU, promisc mode, etc.. NIC (VF/PF) driver is responsible of constantly updating this context. FDB rules population: Each NIC vport (VF/PF) will notify E-Switch manager of its UC/MC vport context changes via modify vport context command, which will be translated to an event that will be handled by E-Switch manager (PF) which will update FDB table accordingly. Both PF and VF use the same driver and submit commands directly to the firmware. The PF sees the vport_group_manager capability bit and as such runs the code to populate the embedded switches as explained above. The patch goes as follows: Patches 1-2 introduces the basic PCI SRIOV functionalities and the support of Connectx4 to enable specific VFs via enable/disable HCA commands. These two patches will be also in use later for the IB SRIOV flow. Patches 3-8 Introduces the basic E-Switch capabilities and commands to be used later by VF to modify and update its NIC vport context, and by PF (E-Switch Manager) driver to Query the VF NIC context and acts accordingly. Patches 9-10 Provide the needed functionality of a NIC driver VF/PF to support SRIOV, mainly vport context update support. Patch 11 ("net/mlx5: Introducing E-Switch and l2 table"), Introduces the basic E-Switch support and infrastructure to read vport context events and to update MPFS L2 Table of the UC mac addresses request by the PF. Patches 12-18 Introduces SRIOV enablemenet and E-Switch FDB table management It adds the Basic E-Swtich public API to set and get sriov properties to be used in PF netdev sriov ndos. Patchset was applied ontop of commit 3f8c0f7 "gianfar: use of_property_read_bool()" Saeed, Eli and Or. changes from V0, addressed feedback from Alex Duyck: - patch 09, remove the loop to seek the device address - patch 09, avoid using array as returned value from helper function - patch 10, fix possible buffer over-run changes from V1, addressed feedback from and Julia Lawall and kbuild test robot - patch 11 check the right variable for allocation failure - patch 18 eliminated unneeded semicolon ==================== Signed-off-by: David S. Miller commit 66e49dedada6e5badbb01e19e7ae511172c5ac7d Author: Saeed Mahameed Date: Tue Dec 1 18:03:25 2015 +0200 net/mlx5e: Add support for SR-IOV ndos Implement and enable SR-IOV ndos to manage SR-IOV configuration via netdev netlink API. Signed-off-by: Saeed Mahameed Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 84 ++++++++++++++++++++++- 1 file changed, 83 insertions(+), 1 deletion(-) commit 3b751a2a418aa58c5bd3b23bf97d169cc4c63819 Author: Saeed Mahameed Date: Tue Dec 1 18:03:24 2015 +0200 net/mlx5: E-Switch, Introduce get vf statistics Add support to get VF statistics using query vport counter command. Signed-off-by: Saeed Mahameed Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/eswitch.c | 67 +++++++++++++++++++++++ drivers/net/ethernet/mellanox/mlx5/core/eswitch.h | 3 + 2 files changed, 70 insertions(+) commit 9e7ea3524a3f819911ffa7f471b78223757e824e Author: Saeed Mahameed Date: Tue Dec 1 18:03:23 2015 +0200 net/mlx5: E-Switch, Introduce set vport vlan (VST mode) Add query and modify functions to control client vlan and qos striping or insertion, in E-Switch vports contexts. Signed-off-by: Saeed Mahameed Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/eswitch.c | 134 +++++++++++++++++++++- drivers/net/ethernet/mellanox/mlx5/core/eswitch.h | 2 + 2 files changed, 134 insertions(+), 2 deletions(-) commit d6666753c6e85834f1669c7b831cc2b7fc9e4390 Author: Saeed Mahameed Date: Tue Dec 1 18:03:22 2015 +0200 net/mlx5: E-Switch, Introduce HCA cap and E-Switch vport context E-Switch vport context is unlike NIC vport context, managed by the E-Switch manager or vport_group_manager and not by the NIC(VF) driver. The E-Switch manager can access (read/modify) any of its vports E-Switch context. Currently E-Switch vport context includes only clietnt and server vlan insertion and striping data (for later support of VST mode). Signed-off-by: Saeed Mahameed Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/fw.c | 11 ++++ include/linux/mlx5/device.h | 9 +++ include/linux/mlx5/mlx5_ifc.h | 90 ++++++++++++++++++++++++++++ 3 files changed, 110 insertions(+) commit 77256579c6b43bb88da96b43637bafc0df20f8e8 Author: Saeed Mahameed Date: Tue Dec 1 18:03:21 2015 +0200 net/mlx5: E-Switch, Introduce Vport administration functions Implement set VF mac/link state and query VF config to be used later in nedev VF ndos or any other management API. Signed-off-by: Saeed Mahameed Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/eswitch.c | 61 +++++++++++++++++++++++ drivers/net/ethernet/mellanox/mlx5/core/eswitch.h | 8 +++ 2 files changed, 69 insertions(+) commit 81848731ff4070a3e4136efa6a99d507177a53fe Author: Saeed Mahameed Date: Tue Dec 1 18:03:20 2015 +0200 net/mlx5: E-Switch, Add SR-IOV (FDB) support Enabling E-Switch SRIOV for nvfs+1 vports. Create E-Switch FDB for L2 UC/MC mac steering between VFs/PF and external vport (Uplink). FDB contains forwarding rules such as: UC MAC0 -> vport0(PF). UC MAC1 -> vport1. UC MAC2 -> vport2. MC MACX -> vport0, vport2, Uplink. MC MACY -> vport1, Uplink. For unmatched traffic FDB has the following default rules: Unmached Traffic (src vport != Uplink) -> Uplink. Unmached Traffic (src vport == Uplink) -> vport0(PF). FDB rules population: Each NIC vport (VF) will notify E-Switch manager of its UC/MC vport context changes via modify vport context command, which will be translated to an event that will be handled by E-Switch manager (PF) which will update FDB table accordingly. Signed-off-by: Saeed Mahameed Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/eswitch.c | 682 ++++++++++++++++++--- drivers/net/ethernet/mellanox/mlx5/core/eswitch.h | 25 + .../net/ethernet/mellanox/mlx5/core/mlx5_core.h | 1 + drivers/net/ethernet/mellanox/mlx5/core/sriov.c | 14 +- include/linux/mlx5/device.h | 6 + include/linux/mlx5/flow_table.h | 9 + include/linux/mlx5/mlx5_ifc.h | 7 +- 7 files changed, 661 insertions(+), 83 deletions(-) commit 495716b191f607b2cb2175f7499966daef79f663 Author: Saeed Mahameed Date: Tue Dec 1 18:03:19 2015 +0200 net/mlx5: E-Switch, Introduce FDB hardware capabilities Define needed hardware structures and capabilities needed for E-Switch FDB flow tables and read them on driver load. Signed-off-by: Saeed Mahameed Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/fw.c | 13 +++++++++++++ include/linux/mlx5/device.h | 15 +++++++++++++++ include/linux/mlx5/mlx5_ifc.h | 13 +++++++++++++ 3 files changed, 41 insertions(+) commit 073bb189a41d7bbad509b576a690611c46c4858f Author: Saeed Mahameed Date: Tue Dec 1 18:03:18 2015 +0200 net/mlx5: Introducing E-Switch and l2 table E-Switch is the software entity that represents and manages ConnectX4 inter-HCA ethernet l2 switching. E-Switch has its own Virtual Ports, each Vport/vNIC/VF can be connected to the device through a vport of an e-switch. Each e-switch is managed by one vNIC identified by HCA_CAP.vport_group_manager (usually it is the PF/vport[0]), and its main responsibility is to forward each packet to the right vport. e-Switch needs to manage its own l2-table and FDB tables. L2 table is a flow table that is managed by FW, it is needed for Multi-host (Multi PF) configuration for inter HCA switching between PFs. FDB table is a flow table that is totally managed by e-Switch driver, its main responsibility is to switch packets between e-Swtich internal vports and uplink vport that belong to the same. This patch introduces only e-Swtich l2 table management, FDB managemnt will come later when ethernet SRIOV/VFs will be enabled. preperation for ethernet sriov and l2 table management. Signed-off-by: Saeed Mahameed Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/Makefile | 2 +- drivers/net/ethernet/mellanox/mlx5/core/eq.c | 13 + drivers/net/ethernet/mellanox/mlx5/core/eswitch.c | 500 ++++++++++++++++++++++ drivers/net/ethernet/mellanox/mlx5/core/eswitch.h | 122 ++++++ drivers/net/ethernet/mellanox/mlx5/core/main.c | 18 + include/linux/mlx5/device.h | 8 + include/linux/mlx5/driver.h | 4 + 7 files changed, 666 insertions(+), 1 deletion(-) commit aad9e6e41e5e595528e316871bbc5be78a8a1eb4 Author: Saeed Mahameed Date: Tue Dec 1 18:03:17 2015 +0200 net/mlx5e: Write vlan list into vport context Each Vport/vNIC must notify underlying e-Switch layer for vlan table changes in-order to update SR-IOV FDB tables. We do that at vlan_rx_add_vid and vlan_rx_kill_vid ndos. Signed-off-by: Saeed Mahameed Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en.h | 1 + .../ethernet/mellanox/mlx5/core/en_flow_table.c | 52 ++++++++++++++++++++++ 2 files changed, 53 insertions(+) commit 5e55da1d5a5f5ffd2038def3bfdcb2f8f3a0418a Author: Saeed Mahameed Date: Tue Dec 1 18:03:16 2015 +0200 net/mlx5e: Write UC/MC list and promisc mode into vport context Each Vport/vNIC must notify underlying e-Switch layer for UC/MC list and promisc mode updates, in-order to update l2 tables and SR-IOV FDB tables. We do that at set_rx_mode ndo. preperation for ethernet-SRIOV and l2 table management. Signed-off-by: Saeed Mahameed Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller .../ethernet/mellanox/mlx5/core/en_flow_table.c | 87 ++++++++++++++++++++++ 1 file changed, 87 insertions(+) commit c0046cf7b81ac55b8bf056c71918ec04edd99379 Author: Saeed Mahameed Date: Tue Dec 1 18:03:15 2015 +0200 net/mlx5: Introduce access functions to modify/query vport vlans Those functions are needed to notify the upcoming L2 table and SR-IOV E-Switch(FDB) manager(PF), of the NIC vport (vf) vlan table changes. preperation for ethernet sriov and l2 table management. Signed-off-by: Saeed Mahameed Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/vport.c | 112 ++++++++++++++++++++++++ include/linux/mlx5/mlx5_ifc.h | 7 ++ include/linux/mlx5/vport.h | 7 ++ 3 files changed, 126 insertions(+) commit d82b73186dab70d6d332dd2afdb48608be2e5230 Author: Saeed Mahameed Date: Tue Dec 1 18:03:14 2015 +0200 net/mlx5: Introduce access functions to modify/query vport promisc mode Those functions are needed to notify the upcoming SR-IOV E-Switch(FDB) manager(PF), of the NIC vport (vf) promisc mode changes. Preperation for ethernet sriov and l2 table management. Signed-off-by: Saeed Mahameed Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/vport.c | 62 +++++++++++++++++++++++++ include/linux/mlx5/mlx5_ifc.h | 28 +++++++++-- include/linux/mlx5/vport.h | 9 ++++ 3 files changed, 94 insertions(+), 5 deletions(-) commit e75465148b7df7f2796c75bf98bf33f171edeb2b Author: Saeed Mahameed Date: Tue Dec 1 18:03:13 2015 +0200 net/mlx5: Introduce access functions to modify/query vport state In preparation for SR-IOV we add here an API to enable each e-switch manager (PF) to configure its VFs link states in e-switch preparation for ethernet sriov. Signed-off-by: Saeed Mahameed Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 2 +- drivers/net/ethernet/mellanox/mlx5/core/vport.c | 61 ++++++++++++++++++++--- include/linux/mlx5/mlx5_ifc.h | 1 + include/linux/mlx5/vport.h | 6 ++- 4 files changed, 62 insertions(+), 8 deletions(-) commit e16aea2744abea612c27ee0eef606c6a6a8204de Author: Saeed Mahameed Date: Tue Dec 1 18:03:12 2015 +0200 net/mlx5: Introduce access functions to modify/query vport mac lists Those functions are needed to notify the upcoming L2 table and SR-IOV E-Switch(FDB) manager(PF), of the NIC vport (vf) UC/MC mac lists changes. preperation for ethernet sriov and l2 table management. Signed-off-by: Saeed Mahameed Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/vport.c | 119 ++++++++++++++++++++++++ include/linux/mlx5/device.h | 6 ++ include/linux/mlx5/vport.h | 10 ++ 3 files changed, 135 insertions(+) commit e1d7d349c69d12721c420f1fe673ce9aa462aadd Author: Saeed Mahameed Date: Tue Dec 1 18:03:11 2015 +0200 net/mlx5: Update access functions to Query/Modify vport MAC address In preparation for SR-IOV we add here an API to enable each e-switch client (PF/VF) to configure its L2 MAC addresses and for the e-switch manager (usually the PF) to access them in order to be able to configure them into the e-switch. Therefore we now pass vport num parameter to mlx5_query_nic_vport_context, so PF can access other vports contexts. preperation for ethernet sriov and l2 table management. Signed-off-by: Saeed Mahameed Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 2 +- drivers/net/ethernet/mellanox/mlx5/core/vport.c | 87 ++++++++++++++++++++--- include/linux/mlx5/vport.h | 5 +- 3 files changed, 81 insertions(+), 13 deletions(-) commit 54f0a411ec72cb437d57d0c9654dcbd0f198ff3a Author: Saeed Mahameed Date: Tue Dec 1 18:03:10 2015 +0200 net/mlx5: Add HW capabilities and structs for SR-IOV E-Switch Update HCA capabilities and HW struct to include needed capabilities for upcoming Ethernet Switch (SR-IOV E-Switch). Signed-off-by: Saeed Mahameed Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller include/linux/mlx5/mlx5_ifc.h | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) commit fc50db98ff872372f266695858f87a12eb1b4f05 Author: Eli Cohen Date: Tue Dec 1 18:03:09 2015 +0200 net/mlx5_core: Add base sriov support This patch adds SRIOV base support for mlx5 supported devices. The same driver is used for both PFs and VFs; VFs are identified by the driver through the flag MLX5_PCI_DEV_IS_VF added to the pci table entries. Virtual functions are created as usual through writing a value to the sriov_numvs sysfs file of the PF device. Upon instantiating VFs, they will all be probed by the driver on the hypervisor. One can gracefully unbind them through /sys/bus/pci/drivers/mlx5_core/unbind. mlx5_wait_for_vf_pages() was added to ensure that when a VF dies without executing proper teardown, the hypervisor driver waits till all of the pages that were allocated at the hypervisor to maintain its operation are returned. In order for the VF to be operational, the PF needs to call enable_hca for it. This can be done before the VFs are created through a call to pci_enable_sriov. If the there are VFs assigned to a VMs when the driver of the PF is unloaded, all the VF will experience system error and PF driver unloads cleanly; in this case pci_disable_sriov is not called and the devices will show when running lspci. Once the PF driver is reloaded, it will sync its data structures which maintain state on its VFs. Signed-off-by: Eli Cohen Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/Makefile | 2 +- drivers/net/ethernet/mellanox/mlx5/core/main.c | 36 +++- .../net/ethernet/mellanox/mlx5/core/mlx5_core.h | 2 + .../net/ethernet/mellanox/mlx5/core/pagealloc.c | 38 ++++ drivers/net/ethernet/mellanox/mlx5/core/sriov.c | 221 +++++++++++++++++++++ include/linux/mlx5/driver.h | 24 +++ include/linux/mlx5/mlx5_ifc.h | 4 +- 7 files changed, 318 insertions(+), 9 deletions(-) commit 0b10710603b27e86ddd89fb87742997594892e50 Author: Eli Cohen Date: Tue Dec 1 18:03:08 2015 +0200 net/mlx5_core: Modify enable/disable hca functions Modify these functions to have func_id argument to state which device we are referring to. This is done as a preparation for SRIOV support where a PF driver needs to control its virtual functions. Signed-off-by: Eli Cohen Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/main.c | 45 ++++++++++------------ .../net/ethernet/mellanox/mlx5/core/mlx5_core.h | 2 + 2 files changed, 23 insertions(+), 24 deletions(-) commit c1500ba0b61e9abf95e0e7ecd3c4ad877f019abe Author: Heiner Kallweit Date: Sat Nov 21 12:55:03 2015 -0200 [media] media: rc: remove unneeded code Now that that the decoder modules are loaded on-demand we can move loading the lirc module to rc_register_device directly and remove unneeded functions and comments. Signed-off-by: Heiner Kallweit drivers/media/rc/rc-core-priv.h | 7 ------- drivers/media/rc/rc-ir-raw.c | 10 ---------- drivers/media/rc/rc-main.c | 4 +--- 3 files changed, 1 insertion(+), 20 deletions(-) commit 24e2416e5ad2142bd1ab71ed8344c3fb9001c0ca Author: Jarod Wilson Date: Mon Nov 30 17:33:36 2015 -0500 alx: remove pointless assignment Reasonably sure this doesn't serve any purpose. CC: Jay Cliburn CC: Chris Snook CC: netdev@vger.kernel.org Signed-off-by: Jarod Wilson Signed-off-by: David S. Miller drivers/net/ethernet/atheros/alx/main.c | 1 - 1 file changed, 1 deletion(-) commit bffed457160ab48282ca6d0d58646b3bbc2fa554 Author: Raghavendra K T Date: Wed Dec 2 16:59:05 2015 +0530 blk-mq: Avoid memoryless numa node encoded in hctx numa_node In architecture like powerpc, we can have cpus without any local memory attached to it (a.k.a memoryless nodes). In such cases cpu to node mapping can result in memory allocation hints for block hctx->numa_node populated with node values which does not have real memory. Instead use local_memory_node(), which is guaranteed to have memory. local_memory_node is a noop in other architectures that does not support memoryless nodes. Signed-off-by: Raghavendra K T Reviewed-by: Sagi Grimberg Signed-off-by: Jens Axboe block/blk-mq-cpumap.c | 2 +- block/blk-mq.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit e0e827b9fc71fbed1a9cd246067c2a4dbd3ea220 Author: Raghavendra K T Date: Wed Dec 2 16:57:06 2015 +0530 blk-mq: Reuse hardware context cpumask for tags hctx->cpumask is already populated and let the tag cpumask follow that instead of going through a new for loop. Signed-off-by: Raghavendra K T Reviewed-by: Sagi Grimberg Signed-off-by: Jens Axboe block/blk-mq.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) commit ac02dddec63385ffef1397d3f56cec4108bcafe9 Author: Christoph Hellwig Date: Thu Dec 3 09:52:05 2015 -0700 NVMe: fix build with CONFIG_NVM enabled Looks like I didn't test with CONFIG_NVM enabled, and neither did the build bot. Most of this is really weird crazy shit in the lighnvm support, though. Struct nvme_ns is a structure for the NVM I/O command set, and it has no business poking into it. Second this commit: commit 47b3115ae7b799be8b77b0f024215ad4f68d6460 Author: Wenwei Tao Date: Fri Nov 20 13:47:55 2015 +0100 nvme: lightnvm: use admin queues for admin cmds Does even more crazy stuff. If a function gets a request_queue parameter passed it'd better use that and not look for another one. Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/nvme/host/lightnvm.c | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) commit c5b8b34c3f4152a73f91bd9729f3a1bfc9abb481 Merge: 3b19584 7458120 Author: David S. Miller Date: Thu Dec 3 11:49:30 2015 -0500 Merge branch 'bonding-team-offload' Jiri Pirko says: ==================== bonding/team offload + mlxsw implementation This patchset introduces needed infrastructure for link aggregation offload - for both team and bonding. It also implements the offload in mlxsw driver. Particulary, this patchset introduces possibility for upper driver (bond/team/bridge/..) to pass type-specific info down to notifier listeners. Info is passed along with NETDEV_CHANGEUPPER/NETDEV_PRECHANGEUPPER notifiers. Listeners (drivers of netdevs being enslaved) can react accordingly. Other extension is for run-time use. This patchset introduces new netdev notifier type - NETDEV_CHANGELOWERSTATE. Along with this notification, the upper driver (bond/team/bridge/..) can pass some information about lower device change, particulary link-up and TX-enabled states. Listeners (drivers of netdevs being enslaved) can react accordingly. The last part of the patchset is implementation of LAG offload in mlxsw, using both previously introduced infrastructre extensions. Note that bond-speficic (and ugly) NETDEV_BONDING_INFO used by mlx4 can be removed and mlx4 can use the extensions this patchset adds. I plan to convert it and get rid of NETDEV_BONDING_INFO in a follow-up patchset. v2->v3: - one small fix in patch 1 v1->v2: - added patch 1 and 2 per Andy's request - couple of more or less cosmetic changes described in couple other patches ==================== Signed-off-by: David S. Miller commit 745812065cf302ad11bf63bcbdbd0ff41af0e36a Author: Jiri Pirko Date: Thu Dec 3 12:12:30 2015 +0100 mlxsw: spectrum: Implement LAG tx enabled lower state change Enabling/disabling TX on a LAG port means enabling/disabling distribution in our HW. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 81 +++++++++++++++++++++++++- 1 file changed, 79 insertions(+), 2 deletions(-) commit 8a1ab5d766396aad0e60cc8796646a1171b419c8 Author: Jiri Pirko Date: Thu Dec 3 12:12:29 2015 +0100 mlxsw: spectrum: Implement FDB add/remove/dump for LAG Implement FDB offloading for lagged ports, including learning LAG FDB entries, adding/removing static FDB entries and dumping existing LAG FDB entries. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller .../ethernet/mellanox/mlxsw/spectrum_switchdev.c | 182 +++++++++++++++++---- 1 file changed, 150 insertions(+), 32 deletions(-) commit 0d65fc13042fce6a2d6de58ff0dc9531e8523c07 Author: Jiri Pirko Date: Thu Dec 3 12:12:28 2015 +0100 mlxsw: spectrum: Implement LAG port join/leave Implement basic procedures for joining/leaving port to/from LAG. That includes HW setup of collector, core LAG mapping setup. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 288 +++++++++++++++++++++++-- drivers/net/ethernet/mellanox/mlxsw/spectrum.h | 35 ++- 2 files changed, 306 insertions(+), 17 deletions(-) commit 3b71571c0123ec52c5b73233b4f012fa59aed61a Author: Jiri Pirko Date: Thu Dec 3 12:12:27 2015 +0100 mlxsw: reg: Add definition of LAG unicast record for SFN register LAG-related records have specific format in SFN register. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/reg.h | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) commit e4bfbae29a1978a855f7c35bbcab1fe7ed0602d2 Author: Jiri Pirko Date: Thu Dec 3 12:12:26 2015 +0100 mlxsw: reg: Add definition of LAG unicast record for SFD register LAG-related records have specific format in SFD register. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/reg.h | 79 +++++++++++++++++++++++++++---- 1 file changed, 71 insertions(+), 8 deletions(-) commit d1d40be084c60f2ba2ca369dedd27b12ae840aa1 Author: Jiri Pirko Date: Thu Dec 3 12:12:25 2015 +0100 mlxsw: reg: Add link aggregation configuration registers definitions Add definitions of SLDR, SLCR2, SLCOR registers that are used to configure LAG. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/reg.h | 293 ++++++++++++++++++++++++++++++ 1 file changed, 293 insertions(+) commit d2292e8761be2346732e3cc562ad2f38a19c325e Author: Jiri Pirko Date: Thu Dec 3 12:12:24 2015 +0100 mlxsw: pci: Implement LAG processing for received packets Completion queue element for receive queue provides information if the packet was received via LAG port. Extract this info and pass it along to core. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/pci.c | 19 ++++++++----------- drivers/net/ethernet/mellanox/mlxsw/pci.h | 4 +++- 2 files changed, 11 insertions(+), 12 deletions(-) commit 8060646a0fd1b1685a16694f2eb2f461e5eb46cc Author: Jiri Pirko Date: Thu Dec 3 12:12:23 2015 +0100 mlxsw: core: Add support for packets received from LAG port Lower layer (pci) has information if the packet is received via LAG port. If that is the case, it fills up rx_info accordingly. However upper layer does not care about lag_id/port_index for received packets so convert it to local_port before passing it up. For that conversion, lag mapping array is introduced. Upper layer is responsible for setting up the mapping according to what is set in HW. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/core.c | 79 ++++++++++++++++++++++++++++-- drivers/net/ethernet/mellanox/mlxsw/core.h | 14 +++++- drivers/net/ethernet/mellanox/mlxsw/pci.c | 4 +- 3 files changed, 92 insertions(+), 5 deletions(-) commit c5b9b518adab8641d9e718e629c88698cc35e7fa Author: Jiri Pirko Date: Thu Dec 3 12:12:22 2015 +0100 mlxsw: spectrum: Add set_rx_mode ndo stub Add just a stub for now. This allows to pass check in dev_ifsioc, SIOCADDMULTI and SIOCDELMULTI cases. Teamd is using these to add LACP slow MAC. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 5 +++++ 1 file changed, 5 insertions(+) commit 57beaca8ecd77c85087270ef15ff319767994f6d Author: Jiri Pirko Date: Thu Dec 3 12:12:21 2015 +0100 bonding: set inactive flags on release Be correct and symmetric to enslave and set inactive flags during release. That gives LAG offload drivers - lower state change listeners - possibility to do proper cleanup. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/bonding/bond_main.c | 2 ++ 1 file changed, 2 insertions(+) commit f7c7eb7f7af7f87e0fc150994785fd139576e43a Author: Jiri Pirko Date: Thu Dec 3 12:12:20 2015 +0100 bonding: implement lower state change propagation Let netdev notifier listeners know about link and slave state change. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/bonding/bond_main.c | 10 ++++++++++ include/net/bonding.h | 7 +++++++ 2 files changed, 17 insertions(+) commit 5d397061ca2081d8a99e4bee5792122faa6aaf86 Author: Jiri Pirko Date: Thu Dec 3 12:12:19 2015 +0100 bonding: allow notifications for bond_set_slave_link_state Similar to state notifications. We allow caller to indicate if the notification should happen now or later, depending on if he holds rtnl mutex or not. Introduce bond_slave_link_notify function (similar to bond_slave_state_notify) which is later on called with rtnl mutex and goes over slaves and executes delayed notification. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/bonding/bond_main.c | 54 +++++++++++++++++++++++++++-------------- include/net/bonding.h | 32 +++++++++++++++++++++--- 2 files changed, 65 insertions(+), 21 deletions(-) commit 3a0d6c5af5e52622a58c68d7c276db9ec38ee2a4 Author: Jiri Pirko Date: Thu Dec 3 12:12:18 2015 +0100 team: implement lower state change propagation Let netdev notifier listeners know about link-up and port-enable state changes. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/team/team.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) commit 7d259505299cb6f4642eac4eebb191d6c2ebe558 Author: Jiri Pirko Date: Thu Dec 3 12:12:17 2015 +0100 team: rtnl_lock for options set During options set, there will be needed to hold rtnl_mutex in order to safely call netdev notifiers. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/team/team.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit fb1b2e3ce53aef80b3cef71f3885d584cdbdc6b8 Author: Jiri Pirko Date: Thu Dec 3 12:12:16 2015 +0100 net: introduce lower state changed info structure for LAG lowers This is shared info structure for bonding and team. Serves to pass down info about link state and port activity to notification listeners. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller include/linux/netdevice.h | 5 +++++ 1 file changed, 5 insertions(+) commit 04d482660a07039fc4e9a42bb3517db236d98f96 Author: Jiri Pirko Date: Thu Dec 3 12:12:15 2015 +0100 net: introduce change lower state notifier When lower device like bonding slave, team/bridge port, etc changes its state, it is useful for others to notice this change. Currently this is implemented specificly for bonding as NETDEV_BONDING_INFO notifier. This patch aims to replace this specific usage and make this more generic to be used for all upper-lower devices. Introduce NETDEV_CHANGELOWERSTATE netdev notifier type and netdev_lower_state_changed() helper. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller include/linux/netdevice.h | 8 ++++++++ net/core/dev.c | 20 ++++++++++++++++++++ 2 files changed, 28 insertions(+) commit 41f0b0496466d6e0e8245f94a79889234cde5e3c Author: Jiri Pirko Date: Thu Dec 3 12:12:14 2015 +0100 bonding: fill-up LAG changeupper info struct and pass it along Initialize netdev_lag_upper_info structure by TX type according to current bonding mode and pass it along via netdev_master_upper_dev_link. Signed-off-by: Jiri Pirko Reviewed-by: Nikolay Aleksandrov Signed-off-by: David S. Miller drivers/net/bonding/bond_main.c | 45 ++++++++++++++++++++++++++++------------- 1 file changed, 31 insertions(+), 14 deletions(-) commit 8fd728566a354f7bc9cb6e781f185b8c39cf505b Author: Jiri Pirko Date: Thu Dec 3 12:12:13 2015 +0100 team: fill-up LAG changeupper info struct and pass it along Initialize netdev_lag_upper_info structure by TX type according to current team mode and pass it along via netdev_master_upper_dev_link. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/team/team.c | 23 ++++++++++++----------- drivers/net/team/team_mode_activebackup.c | 1 + drivers/net/team/team_mode_broadcast.c | 1 + drivers/net/team/team_mode_loadbalance.c | 1 + drivers/net/team/team_mode_random.c | 1 + drivers/net/team/team_mode_roundrobin.c | 1 + include/linux/if_team.h | 1 + 7 files changed, 18 insertions(+), 11 deletions(-) commit 764f5e544118508add420724789f46e04dba91eb Author: Jiri Pirko Date: Thu Dec 3 12:12:12 2015 +0100 net: add info struct for LAG changeupper This struct will be shared by bonding and team to pass internal information to notifier listeners. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller include/linux/netdevice.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 29bf24afb29042f568fa67b1b0eee46796725ed2 Author: Jiri Pirko Date: Thu Dec 3 12:12:11 2015 +0100 net: add possibility to pass information about upper device via notifier Sometimes the drivers and other code would find it handy to know some internal information about upper device being changed. So allow upper-code to pass information down to notifier listeners during linking. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/bonding/bond_main.c | 2 +- drivers/net/team/team.c | 2 +- drivers/net/vrf.c | 2 +- include/linux/netdevice.h | 3 ++- net/batman-adv/hard-interface.c | 2 +- net/bridge/br_if.c | 2 +- net/core/dev.c | 11 +++++++---- net/openvswitch/vport-netdev.c | 2 +- 8 files changed, 15 insertions(+), 11 deletions(-) commit 6dffb0447c25476f499d205dfceb1972e8dae919 Author: Jiri Pirko Date: Thu Dec 3 12:12:10 2015 +0100 net: propagate upper priv via netdev_master_upper_dev_link Eliminate netdev_master_upper_dev_link_private and pass priv directly as a parameter of netdev_master_upper_dev_link. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/bonding/bond_main.c | 2 +- drivers/net/team/team.c | 2 +- drivers/net/vrf.c | 2 +- include/linux/netdevice.h | 6 ++---- net/batman-adv/hard-interface.c | 3 ++- net/bridge/br_if.c | 2 +- net/core/dev.c | 18 ++++++------------ net/openvswitch/vport-netdev.c | 2 +- 8 files changed, 15 insertions(+), 22 deletions(-) commit e0ba1414f310c83bf425fe26fa2cd5f1befcd6dc Author: Jiri Pirko Date: Thu Dec 3 12:12:09 2015 +0100 net: add netif_is_lag_port helper Some code does not mind if a device is bond slave or team port and treats them the same, as generic LAG ports. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller include/linux/netdevice.h | 5 +++++ 1 file changed, 5 insertions(+) commit 7be61833042e7757745345eedc7b0efee240c189 Author: Jiri Pirko Date: Thu Dec 3 12:12:08 2015 +0100 net: add netif_is_lag_master helper Some code does not mind if the master is bond or team and treats them the same, as generic LAG. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller include/linux/netdevice.h | 5 +++++ 1 file changed, 5 insertions(+) commit f7f019ee6d117de5007d0b10e7960696bbf111eb Author: Jiri Pirko Date: Thu Dec 3 12:12:07 2015 +0100 net: add netif_is_team_port helper Similar to other helpers, caller can use this to find out if device is team port. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller include/linux/netdevice.h | 5 +++++ 1 file changed, 5 insertions(+) commit c981e4213e9d2d4ec79501bd607722ec712742a2 Author: Jiri Pirko Date: Thu Dec 3 12:12:06 2015 +0100 net: add netif_is_team_master helper Similar to other helpers, caller can use this to find out if device is team master. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/team/team.c | 1 + include/linux/netdevice.h | 8 ++++++++ 2 files changed, 9 insertions(+) commit 3952af4d50343728e54bf93880e0ecb9c42c47aa Author: Jiri Pirko Date: Thu Dec 3 12:12:05 2015 +0100 bonding: add 802.3ad support for 100G speeds Similar to other speeds, add 100G to bonding 802.3ad code. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/bonding/bond_3ad.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit c39d0454ec9b703d3540dd10a2e9692f89aa48ab Author: Ido Schimmel Date: Thu Dec 3 12:12:04 2015 +0100 net: Add support for CHANGEUPPER notifier error injection Since CHANGEUPPER can now fail, add support for it in the newly introduced netdev notifier error injection infrastructure. Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Acked-by: Nikolay Aleksandrov Signed-off-by: David S. Miller Documentation/fault-injection/notifier-error-inject.txt | 1 + lib/netdev-notifier-error-inject.c | 1 + 2 files changed, 2 insertions(+) commit b03804e7c3ad41c265c0ca21ddb306b252b4f99f Author: Ido Schimmel Date: Thu Dec 3 12:12:03 2015 +0100 net: Check CHANGEUPPER notifier return value switchdev drivers reflect the newly requested topology to hardware when CHANGEUPPER is received, after software links were already formed. However, the operation can fail and user will not be notified, as the return value of the notifier is not checked. Add this check and rollback software links if necessary. Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller net/core/dev.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 3b195843f59b8aefdc15c689615745bf6758756c Author: Joe Perches Date: Thu Dec 3 04:20:57 2015 -0800 i40e: Fix i40e_print_features() VEB mode output Commit 7fd89545f337 ("i40e: remove BUG_ON from feature string building") added defective output when I40E_FLAG_VEB_MODE_ENABLED was set in function i40e_print_features. Fix it. Miscellanea: - Remove unnecessary string variable - Add space before not after fixed strings - Use kmalloc not kzalloc - Don't initialize i to 0, use result of first snprintf Reported-by: Sergei Shtylyov Signed-off-by: Joe Perches Signed-off-by: David S. Miller drivers/net/ethernet/intel/i40e/i40e_main.c | 42 +++++++++++++---------------- 1 file changed, 19 insertions(+), 23 deletions(-) commit 68e14a48fe70ed958d0d943c8f0c23112632c437 Merge: 6f24e5d d34a614 Author: David S. Miller Date: Thu Dec 3 11:43:32 2015 -0500 Merge branch '10GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== Intel Wired LAN Driver Updates 2015-12-03 This series contains updates to ixgbe and ixgbevf only. Mark cleans up ixgbe_init_phy_ops_x550em, since this was designed to initialize function pointers only and moves the KR PHY reset to the ixgbe_setup_internal_phy_t_x550em which was designed to detect which mode the PHY operates in and set it up. Added the new thermal alarm type support used with newer X550EM_x devices. Fixed both ixgbe and ixgbevf to use a private work queue to avoid hangs, which would possibly occur when creating and destroying many VFS repeatedly. Updated ixgbe PTP implementation to accommodate X550EM_x devices, which handle clocking differently. Fixed specification violations in the datasheet, which was reported by Dan Streetman. Fixed ixgbe to check for and handle IPv6 extended headers so that Tx checksum offload can be done, which was reported by Tom Herbert. Fixed ixgbe link issue for some systems with X540 or X550 by only inhibiting the turning PHY power off when manageability is present. Alex Duyck refactors the MAC address configuration code, which in turns fixes an issue where once 63 entries had been used, you could no longer add additional filters. Updated ixgbe to use __dev_uc_sync which also resolved an issue in which you could not remove an FDB address without having to reset the port. Updated the ixgbe driver to make use of all the free RAR entries for FDB use if needed. v2: updated patch 13 to "Alex Duyck Approved" version, in the original submission, I had grabbed a previous version of the patch and did not catch it was superseded by a later version ==================== Signed-off-by: David S. Miller commit 57d86a0485a30145382ad03b9504cc03ba4641c7 Author: Andy Lutomirski Date: Thu Nov 19 08:05:35 2015 -0800 PCI/ASPM: Make sysfs link_state_store() consistent with link_state_show() If CONFIG_PCIEASPM_DEBUG is set, then PCI devices have a link_state attribute. Reading that attribute shows the state as a bit mask: 1 means L0S upstream, 2 means L0S downstream, and 4 means L1. Oddly, writing to link_state is inconsistent and gets translated, leading to mysterious results in which the value you store isn't comparable the value you load back out. Fix it by making link_state_store() match link_state_show(). [bhelgaas: Check "aspm_disabled" *before* validating input. When "aspm_disabled" is set, this changes the error for invalid input from -EINVAL to -EPERM.] Signed-off-by: Andy Lutomirski Signed-off-by: Bjorn Helgaas drivers/pci/pcie/aspm.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) commit 83266b6b60b6727af986e84a133dae24d394c3e8 Author: Takashi Iwai Date: Thu Dec 3 17:19:31 2015 +0100 ALSA: Fix compat_ioctl handling for OSS emulations The ALSA PCM, mixer and sequencer OSS emulations provide the 32bit compatible ioctl, but they just call the 64bit native ioctl as is. Although this works in most cases, passing the argument value as-is isn't guaranteed to work on all architectures. We need to convert it via compat_ptr() instead. This patch addresses the missing conversions. Since all relevant ioctls in these functions take the argument as a pointer, we do the pointer conversion in each compat_ioctl and pass it as a 64bit value to the native ioctl. Signed-off-by: Takashi Iwai sound/core/oss/mixer_oss.c | 8 +++++++- sound/core/oss/pcm_oss.c | 7 ++++++- sound/core/seq/oss/seq_oss.c | 7 ++++++- 3 files changed, 19 insertions(+), 3 deletions(-) commit eb399d3c99d8b411bfc46e67ea329ddc1ca64e87 Author: Takashi Iwai Date: Fri Nov 27 14:53:35 2015 +0100 ALSA: hda - Skip ELD notification during PM process The ELD notification can be received asynchronously from the graphics side, and this may happen just at the moment the sound driver is processing the suspend or the resume, and it would confuse the whole procedure. Since the ELD and connection states are updated in anyway at the end of the resume, we can skip it when received during PM process. Signed-off-by: Takashi Iwai sound/pci/hda/patch_hdmi.c | 3 +++ 1 file changed, 3 insertions(+) commit a72f65954926fbcbf6abe3054f6694915c809eb3 Merge: b03d61d bcdda2e Author: Takashi Iwai Date: Thu Dec 3 17:36:02 2015 +0100 Merge branch 'for-linus' into for-next commit 06c1e3902aa74b7432a7e82bb4a5aca233a42839 Author: Keith Busch Date: Thu Dec 3 09:32:21 2015 -0700 blk-integrity: empty implementation when disabled This patch moves the blk_integrity_payload definition outside the CONFIG_BLK_DEV_INTERITY dependency and provides empty function implementations when the kernel configuration disables integrity extensions. This simplifies drivers that make use of these to map user data so they don't need to repeat the same configuration checks. Signed-off-by: Keith Busch Updated by Jens to pass an error pointer return from bio_integrity_alloc(), otherwise if CONFIG_BLK_DEV_INTEGRITY isn't set, we return a weird ENOMEM from __nvme_submit_user_cmd() if a meta buffer is set. Signed-off-by: Jens Axboe block/bio-integrity.c | 4 ++-- drivers/nvme/host/core.c | 4 ++-- drivers/target/target_core_iblock.c | 4 ++-- include/linux/bio.h | 32 ++++++++++++++++++++++---------- 4 files changed, 28 insertions(+), 16 deletions(-) commit ca17c4ff6d9e28f13db8a14ffe5ed9a8e3b9f774 Author: Dmitry Lifshitz Date: Tue Dec 1 20:03:21 2015 +0200 ARM: dts: am57xx: cl-som-am57x: skip resetting ETH PHYs ETH PHYs setup on CL-SOM-AM57X is established in U-Boot along with bringing them out of reset. This is done by toggling GPIOs belonging to GPIO2/3 controllers on AM57xx. Skip resetting ETH PHYs, by adding "ti,no-reset-on-init" to GPIO2/3 controllers DT nodes. Signed-off-by: Dmitry Lifshitz Signed-off-by: Tony Lindgren arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 2e0788d1948828fac45af86985cec6cba9824e8e Author: Dmitry Lifshitz Date: Tue Dec 1 20:03:20 2015 +0200 ARM: dts: am57xx: sbc-am57x: add HDMI support Add HDMI video output support. Signed-off-by: Dmitry Lifshitz Acked-by: Igor Grinberg Signed-off-by: Tony Lindgren arch/arm/boot/dts/am57xx-sbc-am57x.dts | 42 ++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) commit 2e567d1c50d99aa63d2b7dd4dc25cff95a64d0db Author: Dmitry Lifshitz Date: Tue Dec 1 20:03:19 2015 +0200 ARM: dts: am57xx: compulab-sb-som: add HDMI connector Add HDMI connector node without a valid input endpoint. CompuLab SB-SOM is a carrier board, hence the endpoint should be added in the board DT with a valid HDMI output. Signed-off-by: Dmitry Lifshitz Acked-by: Igor Grinberg Signed-off-by: Tony Lindgren arch/arm/boot/dts/compulab-sb-som.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) commit 85f99c759ba27989a335488bef15fd4477ece637 Author: Dmitry Lifshitz Date: Tue Dec 1 20:03:18 2015 +0200 ARM: dts: am57xx: sbc-am57x: add LCD support Startek-kd050c 800x480 LCD panel timings are described in compulab-sb-som.dtsi. Add appropriate DT endpoints to connect DPI output and LCD. Signed-off-by: Dmitry Lifshitz Acked-by: Igor Grinberg Signed-off-by: Tony Lindgren arch/arm/boot/dts/am57xx-sbc-am57x.dts | 38 ++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) commit 7442173e7932b7f79f645859409a8e4812088739 Author: Dmitry Lifshitz Date: Tue Dec 1 20:03:17 2015 +0200 ARM: dts: am57xx: sbc-am57x: add GPIO expander support Add PCA9555 GPIO expander support (over I2C5 bus). Signed-off-by: Dmitry Lifshitz Acked-by: Igor Grinberg Signed-off-by: Tony Lindgren arch/arm/boot/dts/am57xx-sbc-am57x.dts | 7 +++++++ 1 file changed, 7 insertions(+) commit 6042f620ad777b9186e97fa37c8bf7bc89b0f4c0 Author: Dmitry Lifshitz Date: Tue Dec 1 20:03:16 2015 +0200 ARM: dts: am57xx: sbc-am57x: add EEPROM support On-board EEPROM chip is used for storing a board production info. Add carrier board EEPROM support (over I2C5 bus). Signed-off-by: Dmitry Lifshitz Signed-off-by: Tony Lindgren arch/arm/boot/dts/am57xx-sbc-am57x.dts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit ed7ce764ed8ec62fb4580aa74d412ce33c1d3b52 Author: Dmitry Lifshitz Date: Tue Dec 1 20:03:15 2015 +0200 ARM: dts: am57xx: sbc-am57x: add usb vbus pinmux usb1_drvvbus pin is used to Drive-VBUS enable to external charge pump/power switch. Add a pinmux for that pin. Signed-off-by: Dmitry Lifshitz Acked-by: Igor Grinberg Signed-off-by: Tony Lindgren arch/arm/boot/dts/am57xx-sbc-am57x.dts | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 00d0e46a78f0f2f4a1de35d625d58ff4a84a48b5 Author: Dmitry Lifshitz Date: Tue Dec 1 20:03:14 2015 +0200 ARM: dts: am57xx: cl-som-am57x: add MMC1 support Add MMC1 support, used for SD/MMC card. Signed-off-by: Dmitry Lifshitz Acked-by: Igor Grinberg Signed-off-by: Tony Lindgren arch/arm/boot/dts/am57xx-sbc-am57x.dts | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit e1fdd060f08df588a577b9fd969e85878da4d610 Author: Dmitry Lifshitz Date: Tue Dec 1 20:03:13 2015 +0200 ARM: dts: am57xx: sbc-am57x: add basic board support SBC-AM57x is a single board computer designed for industrial and embedded applications. It is based on the Texas Instruments Sitara AM57x system-on-chip family. SBC-AM57x is implemented with the CL-SOM-AM57x computer-on-module providing most of the functions, and SB-SOM-AM57x carrier board providing additional peripheral functions and connectors. https://www.compulab.co.il/products/sbcs/sbc-am57x-ti-am5728-am5718-single-board-computer/ https://www.compulab.co.il/products/computer-on-modules/cl-som-am57x-ti-am5728-am5718-system-on-module/ Add basic board support, including UART3, used as a serial console. Signed-off-by: Dmitry Lifshitz Acked-by: Igor Grinberg Acked-by: Rob Herring Signed-off-by: Tony Lindgren .../devicetree/bindings/arm/omap/omap.txt | 3 ++ arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/am57xx-sbc-am57x.dts | 36 ++++++++++++++++++++++ 3 files changed, 40 insertions(+) commit 4424cd009648f45991a7123f6ce383e1d4e7d53e Author: Dmitry Lifshitz Date: Tue Dec 1 20:03:12 2015 +0200 ARM: dts: am57xx: cl-som-am57x: add analog audio support Add analog audio DT nodes: 1. simple-audio-card node 2. wm8731 codec node 3. MCASP3 pinmux Signed-off-by: Dmitry Lifshitz Acked-by: Igor Grinberg Signed-off-by: Tony Lindgren arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 67 +++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) commit 2d47fc3b9801332a5110c363c2880d78826c668a Author: Dmitry Lifshitz Date: Tue Dec 1 20:03:11 2015 +0200 ARM: dts: am57xx: cl-som-am57x: add touchscreen support Add ADS7846 touchscreen support. Signed-off-by: Dmitry Lifshitz Acked-by: Igor Grinberg Signed-off-by: Tony Lindgren arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 44 +++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) commit 27ddd846cb25851f5624890869c3c193f79d8661 Author: Dmitry Lifshitz Date: Tue Dec 1 20:03:10 2015 +0200 ARM: dts: am57xx: cl-som-am57x: add USB support Add USB support. Signed-off-by: Dmitry Lifshitz Acked-by: Igor Grinberg Signed-off-by: Tony Lindgren arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 12ca468306a208e28ac465e0083453814e2b7ace Author: Dmitry Lifshitz Date: Tue Dec 1 20:03:09 2015 +0200 ARM: dts: am57xx: cl-som-am57x: add dual EMAC support Add dual EMAC support. Signed-off-by: Dmitry Lifshitz Acked-by: Igor Grinberg Signed-off-by: Tony Lindgren arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 105 ++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) commit cc2d681420d0fc67c362f1245dbb420d1161918e Author: Dmitry Lifshitz Date: Tue Dec 1 20:03:08 2015 +0200 ARM: dts: am57xx: cl-som-am57x: add spi-flash support On-board spi-flash chip is used as a main boot device. Add spi-flash chip support (over QSPI bus). Signed-off-by: Dmitry Lifshitz Acked-by: Igor Grinberg Signed-off-by: Tony Lindgren arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 42 +++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) commit 8deb60f535fa76b2dc578e0c33602aeb19b7b30b Author: Dmitry Lifshitz Date: Tue Dec 1 20:03:07 2015 +0200 ARM: dts: am57xx: cl-som-am57x: add eMMC support CM-SOM-AM57X has two options of main storage devices - eMMC or NAND. Add eMMC chip support (over MMC2 bus). Signed-off-by: Dmitry Lifshitz Acked-by: Igor Grinberg Signed-off-by: Tony Lindgren arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 34 +++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) commit 2c7cf1f48f36935d3a8e95b2f29774380e51c3f7 Author: Dmitry Lifshitz Date: Tue Dec 1 20:03:06 2015 +0200 ARM: dts: am57xx: cl-som-am57x: add EEPROM support On-board EEPROM chip is used for storing a board production info. Add module EEPROM support (over I2C4 bus). Signed-off-by: Dmitry Lifshitz Signed-off-by: Tony Lindgren arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 6 ++++++ 1 file changed, 6 insertions(+) commit 5691b61f23e508085405367573dc6120d1754a24 Author: Dmitry Lifshitz Date: Tue Dec 1 20:03:05 2015 +0200 ARM: dts: am57xx: cl-som-am57x: add I2C3 support Enable I2C3 bus and add appropriate pinmux. Signed-off-by: Dmitry Lifshitz Acked-by: Igor Grinberg Signed-off-by: Tony Lindgren arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 1a472e14ba0847a30f8bafeea914b048df5c5d24 Author: Dmitry Lifshitz Date: Tue Dec 1 20:03:04 2015 +0200 ARM: dts: am57xx: cl-som-am57x: dts: add RTC support Add EM3027 RTC chip support (over I2C4 bus). Signed-off-by: Dmitry Lifshitz Acked-by: Igor Grinberg Signed-off-by: Tony Lindgren arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 5 +++++ 1 file changed, 5 insertions(+) commit 387450fc882ea24462b53e85b89d88a51aafa3aa Author: Dmitry Lifshitz Date: Tue Dec 1 20:03:03 2015 +0200 ARM: dts: am57xx: cl-som-am57x: add basic module support Add support for CompuLab CM-SOM-AM57X board. CL-SOM-AM57x is a miniature System-on-Module (SoM) based on TI Sitara AM57x ARM Cortex-A15 System-on-Chip family. https://www.compulab.co.il/products/computer-on-modules/cl-som-am57x-ti-am5728-am5718-system-on-module/ Add basic DT support for standalone module (without a carrier board): * Memory configuration * Heartbeat led * I2C1 and I2C4 * PMIC * SATA Signed-off-by: Dmitry Lifshitz Acked-by: Igor Grinberg Acked-by: Rob Herring Signed-off-by: Tony Lindgren .../devicetree/bindings/arm/omap/omap.txt | 3 + arch/arm/boot/dts/Makefile | 3 +- arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 274 +++++++++++++++++++++ 3 files changed, 279 insertions(+), 1 deletion(-) commit e81bce70eb66d1010721af6b38d343e3ac90476a Author: Nikita Kiryanov Date: Tue Dec 1 15:55:09 2015 +0200 ARM: dts: am437x: cm-t43: add lcd support Add the necessary dss configuration to drive the startek lcd on CompuLab sbc-t43 single board computer. Signed-off-by: Nikita Kiryanov Cc: Tony Lindgren Cc: Benoit Cousson Cc: Rob Herring Cc: Mark Rutland Cc: Pawel Moll Cc: Igor Grinberg Cc: Dmitry Lifshitz Cc: Ian Campbell Signed-off-by: Tony Lindgren arch/arm/boot/dts/am437x-sbc-t43.dts | 65 ++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) commit 97ce5054989983fae5e3dac8c9182875af795260 Author: Nikita Kiryanov Date: Tue Dec 1 15:55:08 2015 +0200 ARM: dts: am437x: cm-t43: add support for mmc1 On SBC-T43 the mmc1 interface is connected to an SD-Card slot. Add the necessary muxing and configuration to the device tree. Signed-off-by: Nikita Kiryanov Cc: Tony Lindgren Cc: Benoit Cousson Cc: Rob Herring Cc: Mark Rutland Cc: Pawel Moll Cc: Igor Grinberg Cc: Dmitry Lifshitz Cc: Ian Campbell Signed-off-by: Tony Lindgren arch/arm/boot/dts/am437x-sbc-t43.dts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit 02fc7720c627274c66d253c6c4671deec546394a Author: Nikita Kiryanov Date: Tue Dec 1 15:55:07 2015 +0200 ARM: dts: sb-som: introduce SB-SOM baseboard CompuLab SB-SOM baseboard is a carrier board for multiple arm-based SoMs. It currently supports (with minor adjustments to assembly) CM-T43, CM-T54, and CM-QS600 modules. It is a building block in the SBC-T43 single board computer, which consists of cm-t43 on top of sb-som-t43. Signed-off-by: Nikita Kiryanov Cc: Tony Lindgren Cc: Benoit Cousson Cc: Mark Rutland Cc: Pawel Moll Cc: Igor Grinberg Cc: Dmitry Lifshitz Cc: Ian Campbell Acked-by: Rob Herring Signed-off-by: Tony Lindgren .../devicetree/bindings/arm/compulab-boards.txt | 5 +++ .../display/panel/startek,startek-kd050c.txt | 4 +++ .../devicetree/bindings/vendor-prefixes.txt | 1 + arch/arm/boot/dts/compulab-sb-som.dtsi | 42 ++++++++++++++++++++++ 4 files changed, 52 insertions(+) commit 07634f12f74bf1c70887b8575970275b1044c9cb Author: Nikita Kiryanov Date: Tue Dec 1 15:55:06 2015 +0200 ARM: dts: am437x: cm-t43: add support for baseboard eeprom SB-SOM baseboard comes with an on-board EEPROM. On SBC-T43 this EEPROM resides on the i2c1 bus. Add it to the device tree. Signed-off-by: Nikita Kiryanov Cc: Tony Lindgren Cc: Benoit Cousson Cc: Rob Herring Cc: Mark Rutland Cc: Pawel Moll Cc: Igor Grinberg Cc: Dmitry Lifshitz Cc: Ian Campbell Signed-off-by: Tony Lindgren arch/arm/boot/dts/am437x-sbc-t43.dts | 6 ++++++ 1 file changed, 6 insertions(+) commit 90f7cf83876a083f9e1c3a9e595bc9acaffb7c29 Author: Nikita Kiryanov Date: Tue Dec 1 15:55:05 2015 +0200 ARM: dts: am437x: cm-t43: add pca9555 support SB-SOM comes with a PCA9555 GPIO extender. On SBC-T43 this resides on the i2c1 bus. Add it to the device tree. Signed-off-by: Nikita Kiryanov Cc: Tony Lindgren Cc: Benoit Cousson Cc: Rob Herring Cc: Mark Rutland Cc: Pawel Moll Cc: Igor Grinberg Cc: Dmitry Lifshitz Cc: Ian Campbell Signed-off-by: Tony Lindgren arch/arm/boot/dts/am437x-sbc-t43.dts | 7 +++++++ 1 file changed, 7 insertions(+) commit a7c787677461829e22698ca001aedfda4ae06651 Author: Nikita Kiryanov Date: Tue Dec 1 15:55:04 2015 +0200 ARM: dts: am437x: cm-t43: add touchscreen support AM437x has an internal touchscreen controller. Add support for it on cm-t43. Signed-off-by: Nikita Kiryanov Cc: Tony Lindgren Cc: Benoit Cousson Cc: Rob Herring Cc: Mark Rutland Cc: Pawel Moll Cc: Igor Grinberg Cc: Dmitry Lifshitz Cc: Ian Campbell Signed-off-by: Tony Lindgren arch/arm/boot/dts/am437x-cm-t43.dts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit e7f83e8f3d685aa9df075a117021b298395156b5 Author: Nikita Kiryanov Date: Tue Dec 1 15:55:03 2015 +0200 ARM: dts: am437x: cm-t43: add eMMC support One of the CompuLab cm-t43 configurations comes with on-board eMMC as primary storage, residing on the mmc2 interface. Add it to the device tree. Signed-off-by: Nikita Kiryanov Cc: Tony Lindgren Cc: Benoit Cousson Cc: Rob Herring Cc: Mark Rutland Cc: Pawel Moll Cc: Igor Grinberg Cc: Dmitry Lifshitz Cc: Ian Campbell Signed-off-by: Tony Lindgren arch/arm/boot/dts/am437x-cm-t43.dts | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) commit 9fc830b0371cb3c363e24fb1e3d6fb883e20eca1 Author: Nikita Kiryanov Date: Tue Dec 1 15:55:02 2015 +0200 ARM: dts: am437x: cm-t43: add USB support Add USB support for CompuLab sbc-t43 single board computer, defaulting to host mode. Signed-off-by: Nikita Kiryanov Cc: Tony Lindgren Cc: Benoit Cousson Cc: Rob Herring Cc: Mark Rutland Cc: Pawel Moll Cc: Igor Grinberg Cc: Dmitry Lifshitz Cc: Ian Campbell Signed-off-by: Tony Lindgren arch/arm/boot/dts/am437x-cm-t43.dts | 30 ++++++++++++++++++++++++++++++ arch/arm/boot/dts/am437x-sbc-t43.dts | 22 ++++++++++++++++++++++ 2 files changed, 52 insertions(+) commit 4b4959af13cec19f0aa5c8f6b56f9c5d0e736103 Author: Nikita Kiryanov Date: Tue Dec 1 15:55:01 2015 +0200 ARM: dts: am437x: cm-t43: add dual emac support CM-T43 comes with 2 ethernet ports connected to the cpsw subsystem, which has 2 modes of operation: switch mode and dual emac mode. Add the relevant muxing and set it up to work in dual emac mode by default. Signed-off-by: Nikita Kiryanov Acked-by: Mugunthan V N Cc: Tony Lindgren Cc: Benoit Cousson Cc: Rob Herring Cc: Mark Rutland Cc: Pawel Moll Cc: Igor Grinberg Cc: Dmitry Lifshitz Cc: Ian Campbell Signed-off-by: Tony Lindgren arch/arm/boot/dts/am437x-cm-t43.dts | 66 +++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) commit 3edac2f8e34192fe18841d1ef4fadd8043e21029 Author: Nikita Kiryanov Date: Tue Dec 1 15:55:00 2015 +0200 ARM: dts: am437x: cm-t43: add NAND support One of the CompuLab cm-t43 configurations comes with on-board NAND flash as primary storage. It is partitioned into kernel, dtb, and rootfs partitions. Add it to the device tree. Signed-off-by: Nikita Kiryanov Cc: Tony Lindgren Cc: Benoit Cousson Cc: Rob Herring Cc: Mark Rutland Cc: Pawel Moll Cc: Igor Grinberg Cc: Dmitry Lifshitz Cc: Ian Campbell Signed-off-by: Tony Lindgren arch/arm/boot/dts/am437x-cm-t43.dts | 79 +++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) commit 81fb61fc2e3cd66223a79287cbb6bf410ae7af80 Author: Nikita Kiryanov Date: Tue Dec 1 15:54:59 2015 +0200 ARM: dts: am437x: cm-t43: add spi-flash support CM-T43 has an on-board 2MB SPI-flash which stores U-Boot and the U-Boot environment. Add it to the device tree. Signed-off-by: Nikita Kiryanov Cc: Tony Lindgren Cc: Benoit Cousson Cc: Rob Herring Cc: Mark Rutland Cc: Pawel Moll Cc: Igor Grinberg Cc: Dmitry Lifshitz Cc: Ian Campbell Signed-off-by: Tony Lindgren arch/arm/boot/dts/am437x-cm-t43.dts | 40 +++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 4bbbd23c05f8ae99c4e7705585b4b9d6ff97806e Author: Nikita Kiryanov Date: Tue Dec 1 15:54:58 2015 +0200 ARM: dts: am437x: cm-t43: add PMIC support. Add PMIC support for CompuLab cm-t43 module. For now we keep all regulators enabled until this could be refined with power management support. Signed-off-by: Nikita Kiryanov Cc: Tony Lindgren Cc: Benoit Cousson Cc: Rob Herring Cc: Mark Rutland Cc: Pawel Moll Cc: Igor Grinberg Cc: Dmitry Lifshitz Cc: Ian Campbell Signed-off-by: Tony Lindgren arch/arm/boot/dts/am437x-cm-t43.dts | 64 +++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) commit 989d21ec7986955f27a7b8e5c0a2c2d358f88223 Author: Nikita Kiryanov Date: Tue Dec 1 15:54:57 2015 +0200 ARM: dts: am437x: cm-t43: add support for module eeprom CM-T43 has an on-board EEPROM on i2c bus 0. Add it to the device tree. Signed-off-by: Nikita Kiryanov Cc: Tony Lindgren Cc: Benoit Cousson Cc: Rob Herring Cc: Mark Rutland Cc: Pawel Moll Cc: Igor Grinberg Cc: Dmitry Lifshitz Cc: Ian Campbell Signed-off-by: Tony Lindgren arch/arm/boot/dts/am437x-cm-t43.dts | 6 ++++++ 1 file changed, 6 insertions(+) commit 686c47f1300534439fd550e4cbfe1776abceab5a Author: Nikita Kiryanov Date: Tue Dec 1 15:54:56 2015 +0200 ARM: dts: am437x: cm-t43: add basic support for sbc-t43 Add basic support for SBC-T43: a CM-T43 based single board computer. CM-T43 is an AM437x based System-on-Module designed to serve as a building block in embedded applications. SBC-T43 is composed of CM-T43 module on top of the SB-SOM-T43 baseboard. Basic support includes UART, GPIO, and I2C. Signed-off-by: Nikita Kiryanov Acked-by: Rob Herring Cc: Tony Lindgren Cc: Benoit Cousson Cc: Rob Herring Cc: Mark Rutland Cc: Pawel Moll Cc: Igor Grinberg Cc: Dmitry Lifshitz Cc: Ian Campbell Signed-off-by: Tony Lindgren .../devicetree/bindings/arm/omap/omap.txt | 6 ++ arch/arm/boot/dts/Makefile | 6 +- arch/arm/boot/dts/am437x-cm-t43.dts | 90 ++++++++++++++++++++++ arch/arm/boot/dts/am437x-sbc-t43.dts | 56 ++++++++++++++ 4 files changed, 156 insertions(+), 2 deletions(-) commit 0560d7c678ae9f4c67b7480f9a42a72c0655c5c5 Author: Heiko Stuebner Date: Wed Dec 2 19:00:02 2015 +0100 ARM: dts: rockchip: add touchscreen node to veyron minnie Minnie provides an elan,ekth3500 touchscreen over the display, so add the necessary node to enable it. Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3288-veyron-minnie.dts | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 0e1410dda74ef1834916ce60d646ce13cfafb314 Author: Chris Zhong Date: Tue Dec 1 17:03:04 2015 +0100 ARM: dts: rockchip: add veyron-mickey board Also known as the Asus Chromebit. Signed-off-by: Chris Zhong Tested-by: Caesar Wang For the license change: Acked-by: Brian Norris Signed-off-by: Heiko Stuebner Documentation/devicetree/bindings/arm/rockchip.txt | 9 + arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/rk3288-veyron-mickey.dts | 250 +++++++++++++++++++++ 3 files changed, 260 insertions(+) commit 6ea78309ad3ef6bbc6da69da7357d23d15c21fd5 Author: Heiko Stuebner Date: Mon Nov 30 15:29:11 2015 +0100 ARM: dts: rockchip: add veyron-brain board Similar to pinky, brain is a development model and probably also nearing extinction. But to keep pinky from being lonely I'll keep the two brain boards around as well, especially as they as well have easily accessible dut-connectors. Signed-off-by: Heiko Stuebner For the license change: Acked-by: Brian Norris Documentation/devicetree/bindings/arm/rockchip.txt | 5 + arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/rk3288-veyron-brain.dts | 139 +++++++++++++++++++++ 3 files changed, 145 insertions(+) commit ba5810ab0c84069a73b4cd30582c77568158635f Author: Heiko Stuebner Date: Mon Nov 30 14:23:17 2015 +0100 ARM: dts: rockchip: make sure edp_24m is associated to xin24m on veyron The edp-24m clock has two possible sources: the 24MHz oscillator as well as an external 27MHz input. The power-on-default is the 27MHz clock which is not supplied on all Rockchip boards. While on all current boards and also all Veyron Chromebooks the bootloader seems to adapt the muxing to the internal source, this doesn't seem to be the case on headless veyron devices like brain and mickey making the edp-24m clock an orphan. On the hardware side the 27m input also is not connected at all. With the upcoming deferral of orphan-clocks this results in the power- domain code deferring, as it cannot request the needed clock and if the synchronous reset is sucessfullat all in this case is also unknown. So fix that by making sure, the edp-24m clock is muxed to the internal 24MHz oscillator at all times. Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3288-veyron.dtsi | 5 +++++ 1 file changed, 5 insertions(+) commit 39146d6f866888beefaecba3115576c10e1033aa Author: Daniel Vetter Date: Mon Nov 23 10:32:44 2015 +0100 drm/armada: don't grab dev->struct_mutex for in mmap offset ioctl Since David Herrmann's mmap vma manager rework we don't need to grab dev->struct_mutex any more to prevent races when looking up the mmap offset. Drop it and instead don't forget to use the unref_unlocked variant (since the drm core still cares). v2: Split out the leak fix in dump_map_offset into a separate patch as requested by Russell. Also align labels the same way as before to stick with local coding style. Signed-off-by: Daniel Vetter Signed-off-by: Russell King drivers/gpu/drm/armada/armada_gem.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 8d6185b55ceadea4fe3d7b451843786c4cae564e Author: Daniel Vetter Date: Mon Nov 23 10:32:43 2015 +0100 drm/armada: plug leak in dumb_map_offset We need to drop the gem bo reference if it's an imported one. Signed-off-by: Daniel Vetter Signed-off-by: Russell King drivers/gpu/drm/armada/armada_gem.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 7a6f7133c573f237f2ed51652a947bc02aeeda4d Author: Daniel Vetter Date: Mon Nov 23 10:32:34 2015 +0100 drm/armada: use unlocked gem unreferencing For drm_gem_object_unreference callers are required to hold dev->struct_mutex, which these paths don't. Enforcing this requirement has become a bit more strict with commit ef4c6270bf2867e2f8032e9614d1a8cfc6c71663 Author: Daniel Vetter Date: Thu Oct 15 09:36:25 2015 +0200 drm/gem: Check locking in drm_gem_object_unreference Signed-off-by: Daniel Vetter Signed-off-by: Russell King drivers/gpu/drm/armada/armada_crtc.c | 2 +- drivers/gpu/drm/armada/armada_gem.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 9736e988d32807d5a186c722928a97f37346fec8 Author: Liviu Dudau (ARM) Date: Mon Nov 23 16:52:42 2015 +0100 drm/i2c: tda998x: Add support for atomic modesetting When used with a DRIVER_ATOMIC enabled CRTC driver, the tda998x will cause crashes due to missing atomic operations. Fill the drm_connector_funcs struct with the atomic versions of the required functions and add the atomic modeset specific callbacks. Signed-off-by: Liviu Dudau Signed-off-by: Russell King drivers/gpu/drm/i2c/tda998x_drv.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit e4618c467d9ea600cc1412b32ad520f22b8b4833 Author: Liviu Dudau (ARM) Date: Mon Nov 23 16:52:41 2015 +0100 drm/i2c: tda998x: increase the supported dotclock frequency to 165MHz for TDA19988 Spec sheet states that the TDA19988 supports up to 165MHz dotclock speeds. Without this change modes higher than 1080p are un-attainable. Signed-off-by: Liviu Dudau Signed-off-by: Russell King drivers/gpu/drm/i2c/tda998x_drv.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit debd15ced9937f1581096f36374c62b463e7df74 Author: Liviu Dudau (ARM) Date: Mon Nov 23 16:52:40 2015 +0100 drm/i2c: tda998x: unregister the connector in the unbind function tda998x uses drm_connector_register() in the .bind function that needs to be balanced with a drm_connector_unregister() in the .unbind. Otherwise dangling sysfs entries are left behind and future rebinds will fail. Signed-off-by: Liviu Dudau Signed-off-by: Russell King drivers/gpu/drm/i2c/tda998x_drv.c | 1 + 1 file changed, 1 insertion(+) commit cdd5de500b2c90d5181ebc963826019a0a4234ba Author: Dave Gerlach Date: Tue Sep 22 19:14:54 2015 -0500 soc: ti: Add wkup_m3_ipc driver Introduce a wkup_m3_ipc driver to handle communication between the MPU and Cortex M3 wkup_m3 present on am335x. This driver is responsible for actually booting the wkup_m3_rproc and also handling all IPC which is done using the IPC registers in the control module, a mailbox, and a separate interrupt back from the wkup_m3. A small API is exposed for executing specific power commands, which include configuring for low power mode, request a transition to a low power mode, and status info on a previous transition. Signed-off-by: Dave Gerlach Signed-off-by: Tony Lindgren drivers/soc/ti/Kconfig | 10 + drivers/soc/ti/Makefile | 1 + drivers/soc/ti/wkup_m3_ipc.c | 508 +++++++++++++++++++++++++++++++++++++++++++ include/linux/wkup_m3_ipc.h | 55 +++++ 4 files changed, 574 insertions(+) commit b53202e6308939d33ba0c78712e850f891b4e76f Author: Oleg Nesterov Date: Thu Dec 3 10:24:08 2015 -0500 cgroup: kill cgrp_ss_priv[CGROUP_CANFORK_COUNT] and friends Now that nobody use the "priv" arg passed to can_fork/cancel_fork/fork we can kill CGROUP_CANFORK_COUNT/SUBSYS_TAG/etc and cgrp_ss_priv[] in copy_process(). Signed-off-by: Oleg Nesterov Signed-off-by: Tejun Heo include/linux/cgroup-defs.h | 12 +++--------- include/linux/cgroup.h | 19 ++++++------------- include/linux/cgroup_subsys.h | 18 ------------------ kernel/cgroup.c | 30 +++++++----------------------- kernel/cgroup_freezer.c | 2 +- kernel/cgroup_pids.c | 4 ++-- kernel/fork.c | 7 +++---- kernel/sched/core.c | 2 +- 8 files changed, 23 insertions(+), 71 deletions(-) commit fe9b867d24c93c99b17994de54dacbcc015349d2 Author: Dave Gerlach Date: Tue Sep 22 19:14:53 2015 -0500 Documentation: dt: add bindings for TI Wakeup M3 IPC device Add the device tree bindings document for the TI Wakeup M3 IPC device on AM33xx and AM43xx SoCs. These devices are used by the TI wkup_m3_ipc driver, and contain the registers upon which the IPC protocol to communicate with the Wakeup M3 processor is implemented. Signed-off-by: Dave Gerlach Signed-off-by: Suman Anna Signed-off-by: Tony Lindgren .../devicetree/bindings/soc/ti/wkup_m3_ipc.txt | 57 ++++++++++++++++++++++ 1 file changed, 57 insertions(+) commit 2abcd3d40d2cae8d4698ba4b0f4d6c793dda6f8b Merge: f1b4b51 8635581 Author: Kalle Valo Date: Thu Dec 3 17:23:43 2015 +0200 Merge tag 'iwlwifi-next-for-kalle-2015-12-01' of https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next * BT coex improvements (Avri, Moshe) * D3 operation bugfixes (Luca, Eliad) * Rate control improvements (Eyal) * Firmware debugging infra improvements (Golan) * Ground work for multi Rx (Johannes) * Various security fixes (Johannes) commit 8075b542cf9f5d8a6afd92b4a940e29a677a7510 Merge: d2b4365 67cde9c Author: Tejun Heo Date: Thu Dec 3 10:22:52 2015 -0500 Merge branch 'for-4.4-fixes' into for-4.5 commit 8ad0df33c62d706f925a5910701255759a68c2e5 Author: Heiko Stuebner Date: Tue Dec 1 22:23:45 2015 +0100 clk: rockchip: fix rk3368 cpuclk divider offsets Due to a copy-paste error the the rk3368 cpuclk settings were acessing rk3288-specific register offsets. This never caused problems till now, as cpu frequency scaling in't used currently at all. Reported-by: Xing Zheng Signed-off-by: Heiko Stuebner drivers/clk/rockchip/clk-rk3368.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f1b4b51184109305e4e5b7a047faa5270a953ee8 Merge: b31fa55 9e100c4 Author: Kalle Valo Date: Thu Dec 3 17:10:25 2015 +0200 Merge ath-next from ath.git Major changes: ath10k * support Manegement Frame Protection (MFP) * add thermal throttling support for 10.4 firmware * add support for pktlog in QCA99X0 * add debugfs file to enable Bluetooth coexistence feature * use firmware's native mesh interface type instead of raw mode commit 63ba534ecf78c301df87b25267406002cc1af14a Author: Maarten Lankhorst Date: Tue Nov 24 11:29:03 2015 +0100 drm/i915: Handle cdclk limits on broadwell. As the comment indicates this can only fail gracefully when called from compute_config. Fortunately this is now what's happening, so the fixme can be removed and the DRM_ERROR downgraded. Link: http://patchwork.freedesktop.org/patch/msgid/1448360945-5723-3-git-send-email-maarten.lankhorst@linux.intel.com Signed-off-by: Maarten Lankhorst Reviewed-by: Chris Wilson drivers/gpu/drm/i915/intel_display.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit 3c28ff22f6e20cc946cb5a2b77d14862999f7ba0 Author: Alex Goins Date: Wed Nov 25 18:43:39 2015 -0800 i915: wait for fence in prepare_plane_fb In intel_prepare_plane_fb, if fb is backed by dma-buf, wait for exclusive fence v2: First commit v3: Remove object_name_lock acquire Move wait from intel_atomic_commit() to intel_prepare_plane_fb() v4: Wait only on exclusive fences, interruptible with no timeout v5: Style tweaks to more closely match rest of file v6: Properly handle interrupted waits v7: No change v8: No change Link: https://patchwork.kernel.org/patch/7704181/ Signed-off-by: Alex Goins Signed-off-by: Maarten Lankhorst drivers/gpu/drm/i915/intel_display.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit fd8e058a27f319d4560529d54bcbf8aec2d72017 Author: Alex Goins Date: Wed Nov 25 18:43:38 2015 -0800 i915: wait for fence in mmio_flip_work_func If a buffer is backed by dmabuf, wait on its reservation object's exclusive fence before flipping. v2: First commit v3: Remove object_name_lock acquire v4: Move wait ahead of mark_page_flip_active Use crtc->primary->fb to get GEM object instead of pending_flip_obj use_mmio_flip() return true when exclusive fence is attached Wait only on exclusive fences, interruptible with no timeout v5: Move wait from do_mmio_flip to mmio_flip_work_func Style tweaks to more closely match rest of file v6: Change back to unintteruptible wait to match __i915_wait_request due to inability to properly handle interrupted wait. Warn on error code from waiting. v7: No change v8: Test for !reservation_object_signaled_rcu(test_all=FALSE) instead of obj->base.dma_buf->resv->fence_excl Link: https://patchwork.kernel.org/patch/7704181/ Signed-off-by: Alex Goins Signed-off-by: Maarten Lankhorst drivers/gpu/drm/i915/intel_display.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit b03d61d646c596efd02db64df43d287ea596b663 Author: David Henningsson Date: Thu Dec 3 15:46:57 2015 +0100 ALSA: hda - Enable power_save_node for CX20722 I've tested it on one device and it works fine, no clicks. Signed-off-by: David Henningsson Signed-off-by: Takashi Iwai sound/pci/hda/patch_conexant.c | 3 +++ 1 file changed, 3 insertions(+) commit 94c1733468664255e2431686155114c9b87c25e8 Author: Matthias Schwarzott Date: Thu Nov 19 18:04:02 2015 -0200 [media] si2165: Add DVB-C support for HVR-4400/HVR-5500 It works only for HVR-4400/HVR-5500. For WinTV-HVR-930C-HD it fails with bad/no reception for unknown reasons. Signed-off-by: Matthias Schwarzott Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/si2165.c | 86 +++++++++++++++++++++++++++++++++--- 1 file changed, 81 insertions(+), 5 deletions(-) commit 3b0c9807b7778b98388329cb7e5d1e0c9c5c5fe5 Author: Matthias Schwarzott Date: Thu Nov 19 18:04:01 2015 -0200 [media] si2165: Prepare si2165_set_frontend() for future DVB-C support The current si2165_set_frontend() function actually works only for DVB-T. Split it into two functions, preparing the code to support DVB-C. Signed-off-by: Matthias Schwarzott Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/si2165.c | 51 ++++++++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 14 deletions(-) commit 25e7375309038d3be3e156332d1597cedb4afc1a Author: Matthias Schwarzott Date: Thu Nov 19 18:04:00 2015 -0200 [media] si2165: set list of DVB-T registers together Use si2165_write_reg_list() to do the DVB-T mode initialization altogether. Signed-off-by: Matthias Schwarzott Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/si2165.c | 73 +++++++++++++----------------------- 1 file changed, 26 insertions(+), 47 deletions(-) commit 6d65ba943a2d1e4292a07ca7ddb6c5138b9efa5d Author: Nick Hoath Date: Tue Dec 1 14:48:57 2015 +0000 drm/i915: Extend LRC pinning to cover GPU context writeback Use the first retired request on a new context to unpin the old context. This ensures that the hw context remains bound until it has been written back to by the GPU. Now that the context is pinned until later in the request/context lifecycle, it no longer needs to be pinned from context_queue to retire_requests. This fixes an issue with GuC submission where the GPU might not have finished writing back the context before it is unpinned. This results in a GPU hang. v2: Moved the new pin to cover GuC submission (Alex Dai) Moved the new unpin to request_retire to fix coverage leak v3: Added switch to default context if freeing a still pinned context just in case the hw was actually still using it v4: Unwrapped context unpin to allow calling without a request v5: Only create a switch to idle context if the ring doesn't already have a request pending on it (Alex Dai) Rename unsaved to dirty to avoid double negatives (Dave Gordon) Changed _no_req postfix to __ prefix for consistency (Dave Gordon) Split out per engine cleanup from context_free as it was getting unwieldy Corrected locking (Dave Gordon) v6: Removed some bikeshedding (Mika Kuoppala) Added explanation of the GuC hang that this fixes (Daniel Vetter) v7: Removed extra per request pinning from ring reset code (Alex Dai) Added forced ring unpin/clean in error case in context free (Alex Dai) Signed-off-by: Nick Hoath Issue: VIZ-4277 Cc: Daniel Vetter Cc: David Gordon Cc: Chris Wilson Cc: Alex Dai Cc: Mika Kuoppala Reviewed-by: Alex Dai Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/i915_gem.c | 7 +- drivers/gpu/drm/i915/intel_lrc.c | 136 ++++++++++++++++++++++++++++++++------- drivers/gpu/drm/i915/intel_lrc.h | 1 + 4 files changed, 118 insertions(+), 27 deletions(-) commit 5a843307cdf5ffa65a9f2382b3827e86576bbfe8 Author: Alex Dai Date: Wed Dec 2 16:56:29 2015 -0800 drm/i915/guc: Clean up locks in GuC For now, remove the spinlocks that protected the GuC's statistics block and work queue; they are only accessed by code that already holds the global struct_mutex, and so are redundant (until the big struct_mutex rewrite!). The specific problem that the spinlocks caused was that if the work queue was full, the driver would try to spinwait for one jiffy, but with interrupts disabled the jiffy count would not advance, leading to a system hang. The issue was found using test case igt/gem_close_race. The new version will usleep() instead, still holding the struct_mutex but without any spinlocks. v4: Reorganize commit message (Dave Gordon) v3: Remove unnecessary whitespace churn v2: Clean up wq_lock too v1: Clean up host2guc lock as well Signed-off-by: Alex Dai Reviewed-by: Dave Gordon Link: http://patchwork.freedesktop.org/patch/msgid/1449104189-27591-1-git-send-email-yu.dai@intel.com Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 12 ++++++------ drivers/gpu/drm/i915/i915_guc_submission.c | 31 ++++++------------------------ drivers/gpu/drm/i915/intel_guc.h | 4 ---- 3 files changed, 12 insertions(+), 35 deletions(-) commit 542fb3c56b7e5754fc99c77c1db248851ec503d2 Author: Matthias Schwarzott Date: Thu Nov 19 18:03:58 2015 -0200 [media] si2165: Simplify si2165_set_if_freq_shift usage si2165_set_if_freq_shift() needs to call get_if_frequency() in order to do the right shift. Add such logic inside the function, simplifying the logic for the callers. Signed-off-by: Matthias Schwarzott Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/si2165.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit 75d62fc04626c0c806a441b617c72e288bc35595 Author: Matthias Schwarzott Date: Thu Nov 19 18:03:57 2015 -0200 [media] si2165: move setting ts config to init The TS config is fixed, so no need to write it for each tune. Signed-off-by: Matthias Schwarzott Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/si2165.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) commit eae56684a000f2be0f62a7cfd427376b1fb02538 Author: Matthias Schwarzott Date: Thu Nov 19 18:03:56 2015 -0200 [media] si2165: only write agc registers after reset before start_syncro Datasheet says they must be rewritten after reset. But it only makes sense to write them when trying to tune afterwards. Signed-off-by: Matthias Schwarzott Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/si2165.c | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) commit 39a27ec1004e886f1d949bdb8f2616896d02c5c2 Author: David Sterba Date: Thu Dec 3 12:49:48 2015 +0100 btrfs: use GFP_KERNEL for xattr and acl allocations We don't have to use GFP_NOFS in context of ACL or XATTR actions, not possible to loop through the allocator and it's safe to fail with ENOMEM. Signed-off-by: David Sterba fs/btrfs/acl.c | 4 ++-- fs/btrfs/xattr.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 61dd5ae65be6dfaeadb0e841ea6639351f0e04ce Author: David Sterba Date: Tue Dec 1 18:04:30 2015 +0100 btrfs: use GFP_KERNEL for allocations of workqueues We don't have to use GFP_NOFS to allocate workqueue structures, this is done from mount context or potentially scrub start context, safe to fail in both cases. Signed-off-by: David Sterba fs/btrfs/async-thread.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8d2db7855e7b65c9eecc8789fc54d818ee281ac6 Author: David Sterba Date: Wed Nov 4 15:38:29 2015 +0100 btrfs: use GFP_KERNEL for allocations in ioctl handlers We don't have to use GFP_NOFS in the ioctl handlers because there's no risk of looping through the allocators back to the filesystem. This patch covers only allocations that are directly in the ioctl handlers. Signed-off-by: David Sterba fs/btrfs/ioctl.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit a5293dbd7033b4d3bab63c21025f76d00a8a2585 Author: Matthias Schwarzott Date: Thu Nov 19 18:03:55 2015 -0200 [media] si2165: create function si2165_write_reg_list for writing register lists It is common the need of writing a table of values. Add a function to provide a helper to address such case. This will allow further code cleanups. Signed-off-by: Matthias Schwarzott Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/si2165.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit 3042460136bee7bf48860f16a391e6d75f2d0d5c Author: David Sterba Date: Fri Nov 27 19:27:11 2015 +0100 btrfs: remove wait from struct btrfs_delalloc_work The value is 0 and never changes, we can propagate the value, remove wait and the implied dead code. Signed-off-by: David Sterba fs/btrfs/ctree.h | 1 - fs/btrfs/inode.c | 11 +++-------- 2 files changed, 3 insertions(+), 9 deletions(-) commit 651d494a678e48712f784e8f26450c34b5c61015 Author: David Sterba Date: Fri Nov 27 19:24:16 2015 +0100 btrfs: sink parameter wait to btrfs_alloc_delalloc_work There's only one caller and single value, we can propagate it down to the callee and remove the unused parameter. Signed-off-by: David Sterba fs/btrfs/ctree.h | 2 +- fs/btrfs/inode.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) commit 87ad58c5f07444ab2fa083c62b154f38ef0a3035 Author: David Sterba Date: Fri Nov 27 18:49:39 2015 +0100 btrfs: make btrfs_close_one_device static Signed-off-by: David Sterba fs/btrfs/volumes.c | 3 ++- fs/btrfs/volumes.h | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) commit c1c49674ea5b714770f0f394f2da73facc1a997b Author: Matthias Schwarzott Date: Thu Nov 19 18:03:54 2015 -0200 [media] si2165: rename si2165_set_parameters to si2165_set_frontend No functional changes. Signed-off-by: Matthias Schwarzott Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/si2165.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d9a201df562831a3ef946064f5c248afd3949ce2 Author: Matthias Schwarzott Date: Thu Nov 19 18:03:53 2015 -0200 [media] si2165: rename frontend -> fe No functional changes. Signed-off-by: Matthias Schwarzott Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/si2165.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit cd716d8fea125e5531003e66aaf7ca7323277f83 Author: David Sterba Date: Thu Dec 3 14:41:30 2015 +0100 btrfs: make lock_extent static inline One call less reduces stack usage, code slightly reduced as well. Signed-off-by: David Sterba fs/btrfs/extent_io.c | 5 ----- fs/btrfs/extent_io.h | 7 ++++++- 2 files changed, 6 insertions(+), 6 deletions(-) commit ee7d6cfa4b15aafa1d87f913572f30dd64cdd85a Author: Paulo Zanoni Date: Wed Nov 11 14:46:22 2015 -0200 drm/i915: only recompress FBC after flushing a drawing operation There's no need to stop and restart FBC, which is quite expensive as we have to revalidate the CRTC state. After flushing a drawing operation we know the CRTC state hasn't changed, so a nuke (recompress) should be fine. v2: Make it simpler (Chris). v3: Rewrite the patch again due to patch order changes. v4: Rewrite commit message (Chris). Reviewed-by: Chris Wilson Signed-off-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/ drivers/gpu/drm/i915/intel_fbc.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 120c41d3477a23c6941059401db63677736f1935 Author: Aviv Greenberg Date: Fri Oct 16 08:48:51 2015 -0300 [media] UVC: Add support for ds4 depth camera Add support for Intel DS4 depth camera in uvc driver. This includes adding new uvc GUIDs for the new pixel formats, adding new V4L pixel format definition to user api headers, and updating the uvc driver GUID-to-4cc tables with the new formats. Change-Id: If240d95a7d4edc8dcc3e02d58cd8267a6bbf6fcb Tested-by: Greenberg, Aviv D Signed-off-by: Aviv Greenberg Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/uvc/uvc_driver.c | 20 ++++++++++++++++++++ drivers/media/usb/uvc/uvcvideo.h | 12 ++++++++++++ include/uapi/linux/videodev2.h | 3 +++ 3 files changed, 35 insertions(+) commit 820bcabbf0acce7f3e7b72ed5e51b0a1d9c2046d Author: Paulo Zanoni Date: Tue Oct 27 14:54:22 2015 -0200 drm/i915: get rid of FBC {,de}activation messages When running Cinnamon I see way too many pairs of these messages: many per second. Get rid of them as they're just telling us FBC is working as expected. We already have the messages for enable/disable, so we don't really need messages for activation/deactivation. v2: Rebase after changing the patch order. Reviewed-by: Chris Wilson Signed-off-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/ drivers/gpu/drm/i915/intel_fbc.c | 15 --------------- 1 file changed, 15 deletions(-) commit 559d9135835c39bec7fd580cae9ac73f005ae726 Author: Paulo Zanoni Date: Mon Oct 26 18:44:25 2015 -0200 drm/i915: kill fbc.uncompressed_size Directly call intel_fbc_calculate_cfb_size() in the only place that actually needs it, and use the proper check before removing the stolen node. IMHO, this change makes our code easier to understand. v2: Use drm_mm_node_allocated() (Chris). Reviewed-by: Chris Wilson Signed-off-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/ drivers/gpu/drm/i915/i915_drv.h | 1 - drivers/gpu/drm/i915/intel_fbc.c | 13 ++++--------- 2 files changed, 4 insertions(+), 10 deletions(-) commit 128d735606d4e43bc6a56432cf66a68c2753bdce Author: Paulo Zanoni Date: Mon Oct 26 16:27:49 2015 -0200 drm/i915: use a single intel_fbc_work struct This was already on my TODO list, and was requested both by Chris and Ville, for different reasons. The advantages are avoiding a frequent malloc/free pair, and the locality of having the work structure embedded in dev_priv. The maximum used memory is also smaller since previously we could have multiple allocated intel_fbc_work structs at the same time, and now we'll always have a single one - the one embedded on dev_priv. Of course, we're now using a little more memory on the cases where there's nothing scheduled. The biggest challenge here is to keep everything synchronized the way it was before. Currently, when we try to activate FBC, we allocate a new intel_fbc_work structure. Then later when we conclude we must delay the FBC activation a little more, we allocate a new intel_fbc_work struct, and then adjust dev_priv->fbc.fbc_work to point to the new struct. So when the old work runs - at intel_fbc_work_fn() - it will check that dev_priv->fbc.fbc_work points to something else, so it does nothing. Everything is also protected by fbc.lock. Just cancelling the old delayed work doesn't work because we might just cancel it after the work function already started to run, but while it is still waiting to grab fbc.lock. That's why we use the "dev_priv->fbc.fbc_work == work" check described in the paragraph above. So now that we have a single work struct we have to introduce a new way to synchronize everything. So we're making the work function a normal work instead of a delayed work, and it will be responsible for sleeping the appropriate amount of time itself. This way, after it wakes up it can grab the lock, ask "were we delayed or cancelled?" and then go back to sleep, enable FBC or give up. v2: - Spelling fixes. - Rebase after changing the patch order. - Fix ms/jiffies confusion. Reviewed-by: Chris Wilson (v1) Signed-off-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/ drivers/gpu/drm/i915/i915_drv.h | 6 ++- drivers/gpu/drm/i915/intel_fbc.c | 107 ++++++++++++++++++--------------------- 2 files changed, 52 insertions(+), 61 deletions(-) commit e6cd6dc104fc3611326bf69df92090b6b7c78f60 Author: Paulo Zanoni Date: Fri Oct 16 17:55:40 2015 -0300 drm/i915: check for FBC planes in the same place as the pipes This moves the pre-gen4 check from update() to enable(). The HAS_DDI in the original code is not needed since only gen 2/3 have the plane swapping code. v2: Rebase. v3: Extract fbc_on_plane_a_only() (Chris). Reviewed-by: Chris Wilson Signed-off-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/ drivers/gpu/drm/i915/intel_fbc.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit c5ecd4691c797c098013da2bb6167d6bd93df6ae Author: Paulo Zanoni Date: Thu Oct 15 14:19:21 2015 -0300 drm/i915: alloc/free the FBC CFB during enable/disable One of the problems with the current code is that it frees the CFB and releases its drm_mm node as soon as we flip FBC's enable bit. This is bad because after we disable FBC the hardware may still use the CFB for the rest of the frame, so in theory we should only release the drm_mm node one frame after we disable FBC. Otherwise, a stolen memory allocation done right after an FBC disable may result in either corrupted memory for the new owner of that memory region or corrupted screen/underruns in case the new owner changes it while the hardware is still reading it. This case is not exactly easy to reproduce since we currently don't do a lot of stolen memory allocations, but I see patches on the mailing list trying to expose stolen memory to user space, so races will be possible. I thought about three different approaches to solve this, and they all have downsides. The first approach would be to simply use multiple drm_mm nodes and freeing the unused ones only after a frame has passed. The problem with this approach is that since stolen memory is rather small, there's a risk we just won't be able to allocate a new CFB from stolen if the previous one was not freed yet. This could happen in case we quickly disable FBC from pipe A and decide to enable it on pipe B, or just if we change pipe A's fb stride while FBC is enabled. The second approach would be similar to the first one, but maintaining a single drm_mm node and keeping track of when it can be reused. This would remove the disadvantage of not having enough space for two nodes, but would create the new problem where we may not be able to enable FBC at the point intel_fbc_update() is called, so we would have to add more code to retry updating FBC after the time has passed. And that can quickly get too complex since we can get invalidate, flush, disable and other calls in the middle of the wait. Both solutions above - and also the current code - have the problem that we unnecessarily free+realloc FBC during invalidate+flush operations even if the CFB size doesn't change. The third option would be to move the allocation/deallocation to enable/disable. This makes sure that the pipe is always disabled when we allocate/deallocate the CFB, so there's no risk that the FBC hardware may read or write to the memory right after it is freed from drm_mm. The downside is that it is possible for user space to change the buffer stride without triggering a disable/enable - only deactivate/activate -, so we'll have to handle this case somehow - see igt's kms_frontbuffer_tracking test, fbc-stridechange subtest. It could be possible to implement a way to free+alloc the CFB during said stride change, but it would involve a lot of book-keeping - exactly as mentioned above - just for on case, so for now I'll keep it simple and just deactivate FBC. Besides, we may not even need to disable FBC since we do CFB over-allocation. Note from Chris: "Starting a fullscreen client that covers a single monitor in a multi-monitor setup will trigger a change in stride on one of the CRTCs (the monitors will be flipped independently).". It shouldn't be a huge problem if we lose FBC on multi-monitor setups since these setups already have problems reaching deep PC states anyway. v2: Rebase after changing the patch order. v3: - Remove references to the stride change case being "uncommon" and paste Chris' example. - Rebase after a change in a previous patch. Reviewed-by: Chris Wilson Signed-off-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/ drivers/gpu/drm/i915/intel_fbc.c | 134 ++++++++++++++++++++------------------- 1 file changed, 69 insertions(+), 65 deletions(-) commit d029bcad6e4157be4551f396e6a417465eca3409 Author: Paulo Zanoni Date: Thu Oct 15 10:44:46 2015 -0300 drm/i915: introduce intel_fbc_{enable,disable} The goal is to call FBC enable/disable only once per modeset, while activate/deactivate/update will be called multiple times. The enable() function will be responsible for deciding if a CRTC will have FBC on it and then it will "lock" FBC on this CRTC: it won't be possible to change FBC's CRTC until disable(). With this, all checks and resource acquisition that only need to be done once per modeset can be moved from update() to enable(). And then the update(), activate() and deactivate() code will also get simpler since they won't need to worry about the CRTC being changed. The disable() function will do the reverse operation of enable(). One of its features is that it should only be called while the pipe is already off. This guarantees that FBC is stopped and nothing is using the CFB. With this, the activate() and deactivate() functions just start and temporarily stop FBC. They are the ones touching the hardware enable bit, so HW state reflects dev_priv->crtc.active. The last function remaining is update(). A lot of times I thought about renaming update() to activate() or try_to_activate() since it's called when we want to activate FBC. The thing is that update() may not only decide to activate FBC, but also deactivate or keep it on the same state, so I'll leave this name for now. Moving code to enable() and disable() will also help in case we decide to move FBC to pipe_config or something else later. The current patch only puts the very basic code on enable() and disable(). The next commits will take care of moving more stuff from update() to the new functions. v2: - Rebase. - Improve commit message (Chris). v3: Rebase after changing the patch order. v4: Rebase again after upstream changes. Reviewed-by: Chris Wilson Signed-off-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/ drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/intel_display.c | 16 ++- drivers/gpu/drm/i915/intel_drv.h | 2 + drivers/gpu/drm/i915/intel_fbc.c | 196 +++++++++++++++++++++++++---------- 4 files changed, 157 insertions(+), 58 deletions(-) commit 0e631adc1aefcae2a35c9d1649ecc263cb534df9 Author: Paulo Zanoni Date: Wed Oct 14 17:45:36 2015 -0300 drm/i915: introduce is_active/activate/deactivate to the FBC terminology The long term goal is to have enable/disable as the higher level functions and activate/deactivate as the lower level functions, just like we do for PSR and for the CRTC. This way, we'll run enable and disable once per modeset, while update, activate and deactivate will be run many times. With this, we can move the checks and code that need to run only once per modeset to enable(), making the code simpler and possibly a little faster. This patch is just the first step on the conversion: it starts by converting the current low level functions from enable/disable to activate/deactivate. This patch by itself has no benefits other than making review and rebase easier. Please see the next patches for more details on the conversion. v2: - Rebase. - Improve commit message (Chris). v3: Rebase after changing the patch order. Reviewed-by: Chris Wilson Signed-off-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/ drivers/gpu/drm/i915/i915_debugfs.c | 2 +- drivers/gpu/drm/i915/i915_drv.h | 10 ++- drivers/gpu/drm/i915/intel_display.c | 4 +- drivers/gpu/drm/i915/intel_drv.h | 2 +- drivers/gpu/drm/i915/intel_fbc.c | 114 +++++++++++++++++------------------ drivers/gpu/drm/i915/intel_pm.c | 2 +- 6 files changed, 66 insertions(+), 68 deletions(-) commit 754d113304aa640b9b3ffa5535a1565b95e5fdb6 Author: Paulo Zanoni Date: Tue Oct 13 19:13:25 2015 -0300 drm/i915: pass the crtc as an argument to intel_fbc_update() There's no need to reevaluate the status of every single crtc when a single crtc changes its state. With this, we're cutting the case where due to a change in pipe B, intel_fbc_update() is called, then intel_fbc_find_crtc() concludes FBC should be enabled on pipe A, then it completely rechecks the state of pipe A only to conclude FBC should remain enabled on pipe A. If any change on pipe A triggers a need to recompute whether FBC is valid on pipe A, then at some point someone is going to call intel_fbc_update(PIPE_A). The addition of intel_fbc_deactivate() is necessary so we keep track of the previously selected CRTC when we do invalidate/flush. We're also going to continue the enable/disable/activate/deactivate concept in the next patches. v2: Rebase. v3: Rebase after changing the patch order. Reviewed-by: Chris Wilson Signed-off-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/ drivers/gpu/drm/i915/intel_display.c | 3 +- drivers/gpu/drm/i915/intel_drv.h | 2 +- drivers/gpu/drm/i915/intel_fbc.c | 68 +++++++++++++++--------------------- 3 files changed, 31 insertions(+), 42 deletions(-) commit ff13db41f184f8222aca0cb653347ccdd48a057a Author: David Sterba Date: Thu Dec 3 14:30:40 2015 +0100 btrfs: drop unused parameter from lock_extent_bits We've always passed 0. Stack usage will slightly decrease. Signed-off-by: David Sterba fs/btrfs/disk-io.c | 2 +- fs/btrfs/extent_io.c | 12 ++++++------ fs/btrfs/extent_io.h | 2 +- fs/btrfs/file.c | 8 ++++---- fs/btrfs/free-space-cache.c | 2 +- fs/btrfs/inode.c | 20 ++++++++++---------- fs/btrfs/ioctl.c | 6 +++--- fs/btrfs/scrub.c | 2 +- 8 files changed, 27 insertions(+), 27 deletions(-) commit 083206fc3f77be550ad3d7666b32b1d360cfe53e Author: Julia Lawall Date: Sun Nov 22 15:44:38 2015 -0200 [media] cx231xx: constify cx2341x_handler_ops structures The cx2341x_handler_ops structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cx18/cx18-controls.c | 2 +- drivers/media/pci/cx18/cx18-controls.h | 2 +- drivers/media/pci/ivtv/ivtv-controls.c | 2 +- drivers/media/pci/ivtv/ivtv-controls.h | 2 +- drivers/media/usb/cx231xx/cx231xx-417.c | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) commit 22dbec265c4fbea4cecc37bcbdbb730c0bc639ff Author: Julia Lawall Date: Sun Nov 22 08:32:53 2015 -0200 [media] media, sound: tea575x: constify snd_tea575x_ops structures The snd_tea575x_ops structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Reviewed-by: Takashi Iwai Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/bt8xx/bttv-cards.c | 2 +- drivers/media/radio/radio-maxiradio.c | 2 +- drivers/media/radio/radio-sf16fmr2.c | 2 +- drivers/media/radio/radio-shark.c | 2 +- include/media/drv-intf/tea575x.h | 2 +- sound/pci/es1968.c | 2 +- sound/pci/fm801.c | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) commit 85f9e06c59cb93db93b163388d77d7aa9b6eed5a Author: Hans Verkuil Date: Fri Nov 13 09:46:26 2015 -0200 [media] v4l2-dv-timings: add new arg to v4l2_match_dv_timings Add the new match_reduced_fps argument to v4l2_match_dv_timings(). Depending on the situation you may or may not desire to match the reduced_fps flag. Typically only HDMI transmitters will need to check for this flag. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Documentation/video4linux/v4l2-pci-skeleton.c | 2 +- drivers/media/i2c/adv7604.c | 6 +++--- drivers/media/i2c/adv7842.c | 6 +++--- drivers/media/i2c/tc358743.c | 4 ++-- drivers/media/pci/cobalt/cobalt-v4l2.c | 2 +- drivers/media/platform/s5p-tv/hdmi_drv.c | 2 +- drivers/media/platform/vivid/vivid-vid-cap.c | 2 +- drivers/media/platform/vivid/vivid-vid-out.c | 2 +- drivers/media/usb/hdpvr/hdpvr-video.c | 2 +- drivers/media/v4l2-core/v4l2-dv-timings.c | 9 +++++++-- include/media/v4l2-dv-timings.h | 4 +++- 11 files changed, 24 insertions(+), 17 deletions(-) commit e83b1d91f872a4cf7bf0d3528044fc9e43260e2b Author: David Sterba Date: Thu Dec 3 14:08:11 2015 +0100 btrfs: make clear_extent_bit helpers static inline The funcions just wrap the clear_extent_bit API and generate function calls. This increases stack consumption and may negatively affect performance due to icache misses. We can simply make the helpers static inline and keep the type checking and API untouched. The code slightly decreases: text data bss dec hex filename 938667 43670 23144 1005481 f57a9 fs/btrfs/btrfs.ko.before 939651 43670 23144 1006465 f5b81 fs/btrfs/btrfs.ko.after Signed-off-by: David Sterba fs/btrfs/extent_io.c | 39 --------------------------------------- fs/btrfs/extent_io.h | 47 ++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 38 insertions(+), 48 deletions(-) commit e9c5fd26ac38ec64497b86d70472f8dd750410ad Author: Paulo Zanoni Date: Tue Oct 13 18:04:45 2015 -0300 drm/i915: set dev_priv->fbc.crtc before scheduling the enable work This thing where we need to get the crtc either from the work structure or the fbc structure itself is confusing and unnecessary. Set fbc.crtc right when scheduling the enable work so we can always use it. The problem is not what gets passed and how to retrieve it. The problem is that when we're in the other parts of the code we always have to keep in mind that if FBC is already enabled we have to get the CRTC from place A, if FBC is scheduled we have to get the CRTC from place B, and if it's disabled there's no CRTC. Having a single place to retrieve the CRTC from allows us to treat the "is enabled" and "is scheduled" cases as the same case, reducing the mistake surface. I guess I should add this to the commit message. Besides the immediate advantages, this is also going to make one of the next commits much simpler. And even later, when we introduce enable/disable + activate/deactivate, this will be even simpler as we'll set the CRTC at enable time. So all the activate/deactivate/update code can just look at the single CRTC variable regardless of the current state. v2: Improve commit message (Chris). v3: Rebase after changing the patch order. Reviewed-by: Chris Wilson Signed-off-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/ drivers/gpu/drm/i915/i915_drv.h | 1 - drivers/gpu/drm/i915/intel_fbc.c | 22 +++++++++------------- 2 files changed, 9 insertions(+), 14 deletions(-) commit 90d5234fdbccbd03250a54acf1a1793654e7eebf Author: Paulo Zanoni Date: Fri Oct 16 16:44:43 2015 -0300 drm/i915: fix the CFB size check In function find_compression_threshold() we try to over-allocate CFB space in order to reduce reallocations and fragmentation, and we're not considering that at the CFB size check. Consider it. There is also a longer-term plan to kill dev_priv->fbc.uncompressed_size, but this will come later. v2: Use drm_mm_node_allocated() (Chris). Reviewed-by: Chris Wilson Signed-off-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/ drivers/gpu/drm/i915/intel_fbc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit c63179556af1335585e53cd8a23da40bf69cb2e2 Author: David Sterba Date: Thu Dec 3 14:08:11 2015 +0100 btrfs: make set_extent_bit helpers static inline The funcions just wrap the set_extent_bit API and generate function calls. This increases stack consumption and may negatively affect performance due to icache misses. We can simply make the helpers static inline and keep the type checking and API untouched. The code slightly increases: text data bss dec hex filename 938427 43670 23144 1005241 f56b9 fs/btrfs/btrfs.ko.before 938667 43670 23144 1005481 f57a9 fs/btrfs/btrfs.ko Signed-off-by: David Sterba fs/btrfs/extent_io.c | 44 --------------------------------------- fs/btrfs/extent_io.h | 58 +++++++++++++++++++++++++++++++++++++++++----------- 2 files changed, 46 insertions(+), 56 deletions(-) commit bbbb03c1a82eea24e9b15b2f96ecb0cc882ddd2c Author: Chen-Yu Tsai Date: Thu Dec 3 16:20:12 2015 +0800 irqchip/sunxi-nmi: Support sun9i A80 NMI controller The A80 moves the NMI controller into the PRCM address space, and also rearranges the registers. Signed-off-by: Chen-Yu Tsai Acked-by: Maxime Ripard Reviewed-by: Hans de Goede Link: https://lkml.kernel.org/r/1449130813-22400-4-git-send-email-wens@csie.org Signed-off-by: Jason Cooper drivers/irqchip/irq-sunxi-nmi.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit cc66ef3c3923f8d2287c11e0a76ee2b68dc3e64a Author: Chen-Yu Tsai Date: Thu Dec 3 16:20:11 2015 +0800 irqchip/sunxi-nmi: Add sun9i-a80 variant to binding doc sun9i A80 introduces a new variant of the NMI controller. The registers are reordered, but the functionality remains the same. Add a new compatible string for it. Signed-off-by: Chen-Yu Tsai Acked-by: Maxime Ripard Reviewed-by: Hans de Goede Link: https://lkml.kernel.org/r/1449130813-22400-3-git-send-email-wens@csie.org Signed-off-by: Jason Cooper .../devicetree/bindings/interrupt-controller/allwinner,sunxi-nmi.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 57e7b08263d046ce0bbdf36adb20a268a80bf60a Author: Chen-Yu Tsai Date: Thu Dec 3 16:20:10 2015 +0800 irqchip/sunxi-nmi: Rename binding doc filename to allwinner,sunxi-nmi.txt The NMI controller is found in all Allwinner multi-core SoCs. It is not limited to sun[67]i, nor is it always found in the "system controller" block. On sun[68]i, it is in the RTC block, while on sun9i, it is in the PRCM block. Drop these 2 specific bits from the binding doc filename. Signed-off-by: Chen-Yu Tsai Acked-by: Maxime Ripard Reviewed-by: Hans de Goede Link: https://lkml.kernel.org/r/1449130813-22400-2-git-send-email-wens@csie.org Signed-off-by: Jason Cooper .../allwinner,sun67i-sc-nmi.txt | 27 ---------------------- .../interrupt-controller/allwinner,sunxi-nmi.txt | 27 ++++++++++++++++++++++ 2 files changed, 27 insertions(+), 27 deletions(-) commit 768ce42ccee7f04d02d01dd757fb8100b3a6f958 Author: Thierry Reding Date: Wed Dec 2 17:18:58 2015 +0100 EDAC, mv64x60: Use platform_register/unregister_drivers() These new helpers simplify implementing multi-driver modules and properly handle failure to register one driver by unregistering all previously registered drivers. Signed-off-by: Thierry Reding Cc: linux-edac Link: http://lkml.kernel.org/r/1449073138-10852-2-git-send-email-thierry.reding@gmail.com Signed-off-by: Borislav Petkov drivers/edac/mv64x60_edac.c | 39 +++++++++++---------------------------- 1 file changed, 11 insertions(+), 28 deletions(-) commit d54051f1cc2af6d12c2478911921d32476319621 Author: Thierry Reding Date: Thu Dec 3 10:57:12 2015 +0100 EDAC, mpc85xx: Use platform_register/unregister_drivers() These new helpers simplify implementing multi-driver modules and properly handle failure to register one driver by unregistering all previously registered drivers. Reviewed-by: Johannes Thumshirn Signed-off-by: Thierry Reding Cc: linux-edac Link: http://lkml.kernel.org/r/1449136632-11680-1-git-send-email-thierry.reding@gmail.com Signed-off-by: Borislav Petkov drivers/edac/mpc85xx_edac.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit d34a614adfb16a560ddb6759d532eb32b6651eae Author: Mark Rustad Date: Thu Nov 19 13:56:30 2015 -0800 ixgbevf: Handle extended IPv6 headers in Tx path Check for and handle IPv6 extended headers so that Tx checksum offload can be done. Also use skb_checksum_help for unexpected cases. Thanks to Tom Herbert for noticing these problems. Thanks to Alexander Duyck for seeing how to coalesce the error handling into one location. Reported-by: Tom Herbert Signed-off-by: Mark Rustad Tested-by: Darin Miller Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) commit 3c2f2b77a917488b56b2676b99adb5d3c07d6e68 Author: Mark Rustad Date: Thu Nov 5 11:02:14 2015 -0800 ixgbe: Always turn PHY power on when requested Instead of inhibiting PHY power control when manageability is present, only inhibit turning PHY power off when manageability is present. Consequently, PHY power will always be turned on when requested. Without this patch, some systems with X540 or X550 devices in some conditions will never get link. Signed-off-by: Mark Rustad Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c | 3 +++ drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c | 3 +-- 2 files changed, 4 insertions(+), 2 deletions(-) commit 255379ae9af8c04788c171fa050949ab2ac3f356 Author: Jim Snow Date: Thu Dec 3 10:48:51 2015 +0100 EDAC: Add DDR4 flag Make EDAC aware of DDR4/RDDR4 mem types. Signed-off-by: Jim Snow Cc: Mauro Carvalho Chehab Cc: linux-edac Cc: lukasz.anaczkowski@intel.com Link: http://lkml.kernel.org/r/1449136134-23706-2-git-send-email-hubert.chrzaniuk@intel.com [ Rebase to 4.4-rc3. ] Signed-off-by: Hubert Chrzaniuk Signed-off-by: Borislav Petkov include/linux/edac.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 36a92d7190e68e9387347695fe4625eb2c9e7e1c Author: Mark Rustad Date: Wed Nov 18 09:21:28 2015 -0800 ixgbe: Handle extended IPv6 headers in Tx path Check for and handle IPv6 extended headers so that Tx checksum offload can be done. Also use skb_checksum_help for unexpected cases. Thanks to Tom Herbert for noticing these problems. Thanks to Alexander Duyck for recognizing problems with the first version of this patch and recognizing how to coalesce error conditions into a single location. Reported-by: Tom Herbert Signed-off-by: Mark Rustad Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) commit 988d13073fe122f0b6a2b80b5f2aa1b0717f9edb Author: Mark Rustad Date: Fri Oct 30 15:29:34 2015 -0700 ixgbe: Save VF info and take references Save VF device pointers and take references to speed accesses used to monitor the device behavior to avoid slot resets. The saved information avoids lock contention during the search used to access each of the VFs. Signed-off-by: Mark Rustad Tested-by: Darin Miller Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe.h | 1 + drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 31 ++++++---------- drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 50 ++++++++++++++++++++++++-- 3 files changed, 59 insertions(+), 23 deletions(-) commit 48b44612738793252c97c548f3d0bd56543d5273 Author: Mark Rustad Date: Tue Oct 27 13:23:23 2015 -0700 ixgbe: Wait for master disable to be set According to the datasheets, the driver should wait for the master disable bit to read as being set before checking the status register for master disable. Reported-by: Dan Streetman Signed-off-by: Mark Rustad Tested-by: Darin Miller Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) commit efff2e027758fd5cc739d500397f729591f32a94 Author: Mark Rustad Date: Tue Oct 27 13:23:14 2015 -0700 ixgbe: Correct spec violations by waiting after reset The ixgbe driver was violating the specification in the datasheet by not waiting 1ms before checking for the reset bit clearing. This is called out for devices supported by ixgbe, so implement the required delay. Reported-by: Dan Streetman Signed-off-by: Mark Rustad Tested-by: Darin Miller Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c | 5 +++-- drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c | 3 ++- drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c | 3 ++- drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 3 ++- 4 files changed, 9 insertions(+), 5 deletions(-) commit a9763f3cb54c7f1c6a47962c814935654476d09f Author: Mark Rustad Date: Tue Oct 27 09:58:07 2015 -0700 ixgbe: Update PTP to support X550EM_x devices The X550EM_x devices handle clocking differently, so update the PTP implementation to accommodate them. This involves significant changes to ixgbe's PTP code to accommodate the new range of behaviors including things like non-power-of-2 clock wrapping. Signed-off-by: Mark Rustad Tested-by: Darin Miller Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe.h | 38 +- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 9 +- drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c | 720 +++++++++++++++++++------- drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 8 + 4 files changed, 578 insertions(+), 197 deletions(-) commit 2f9be1665585a3757a00a6d1b8201d0ede937a34 Author: Alexander Duyck Date: Thu Oct 22 16:26:42 2015 -0700 ixgbe: Allow FDB entries access to more RAR filters This change makes it so that we allow the PF to make use of all free RAR entries for FDB use if needed. Previously the code limited us to 16 unicast entries, however this was shared between MACVLAN which wasn't limited and the FDB code which was. So instead of treating the FDB code as a second class citizen I have updated it so that it has access to just as many entries as the MACVLAN filters. Signed-off-by: Alexander Duyck Tested-by: Darin Miller Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 0f079d22834ac0529413bdee5b5aa52485942162 Author: Alexander Duyck Date: Thu Oct 22 16:26:36 2015 -0700 ixgbe: Use __dev_uc_sync and __dev_uc_unsync for unicast addresses This change replaces the ixgbe_write_uc_addr_list call in ixgbe_set_rx_mode with a call to __dev_uc_sync instead. This works much better with the MAC addr list code that was already in place and solves an issue in which you couldn't remove an FDB address without having to reset the port. Signed-off-by: Alexander Duyck Tested-by: Darin Miller Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 28 ++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) commit c9f53e63c2089d8154900ed06da0aa7be9f74201 Author: Alexander Duyck Date: Thu Oct 22 16:26:30 2015 -0700 ixgbe: Refactor MAC address configuration code In the process of tracking down a memory leak when adding/removing FDB entries I had to go through the MAC address configuration code for ixgbe. In the process of doing so I found a number of issues that impacted readability and performance. This change updates the code in general to clean it up so it becomes clear what each step is doing. From what I can tell there a couple of bugs cleaned up in this code. First is the fact that the MAC addresses were being double counted for the PF. As a result once entries up to 63 had been used you could no longer add additional filters. A simple test case for this: for i in `seq 0 96` do ip link add link ens8 name mv$i type macvlan ip link set dev mv$i up done Test script: ethregs -s 0:8.0 | grep -e "RAH" | grep 8000....$ When things are working correctly RAL/H registers 1 - 97 will be consumed. In the failing case it will stop at 63 and prevent any further filters from being added. Signed-off-by: Alexander Duyck Tested-by: Darin Miller Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe.h | 7 +- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 163 +++++++++++++++----------- 2 files changed, 100 insertions(+), 70 deletions(-) commit 50985b5f62cc74e9e222f0ddf890e1ba87be371a Author: Mark Rustad Date: Wed Oct 21 17:21:20 2015 -0700 ixgbevf: Minor cleanups Make some minor cleanups, such as simplifying return paths, deleting unneeded initializations, return values more directly and so forth. Signed-off-by: Mark Rustad Tested-by: Darin Miller Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 36 ++++++++--------------- 1 file changed, 12 insertions(+), 24 deletions(-) commit 40a13e2493c9882cb4d09054d81a5063cd1589a2 Author: Mark Rustad Date: Wed Oct 21 17:21:15 2015 -0700 ixgbevf: Use a private workqueue to avoid certain possible hangs Use a private workqueue to avoid hangs that were otherwise possible when performing stress tests, such as creating and destroying many VFS repeatedly. Signed-off-by: Mark Rustad Tested-by: Darin Miller Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit 780484d853d096b4253b966e1789c4f338dd7301 Author: Mark Rustad Date: Wed Oct 21 17:21:10 2015 -0700 ixgbe: Use private workqueue to avoid certain possible hangs Use a private workqueue to avoid hangs that were otherwise possible when performing stress tests, such as creating and destroying many VFS repeatedly. Signed-off-by: Mark Rustad Tested-by: Darin Miller Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) commit 83a9fb20ecc4bb8b36a610ab833962fed52db64c Author: Mark Rustad Date: Mon Oct 19 09:22:14 2015 -0700 ixgbe: Add support for newer thermal alarm The newer copper PHY implementation used with newer X550EM_x devices uses a different thermal alarm type than the earlier one. Make changes to support both types. Signed-off-by: Mark Rustad Tested-by: Darin Miller Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 4 ++++ drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 22 +++++++++++++++++++--- 2 files changed, 23 insertions(+), 3 deletions(-) commit f164b84529e3bf9ae43882fd3ac84bef94d104cf Author: Mark Rustad Date: Fri Oct 16 13:27:49 2015 -0700 ixgbe: Prevent KR PHY reset in ixgbe_init_phy_ops_x550em This patch removes KR PHY reset from ixgbe_init_phy_ops_x550em, since this function is meant to initialize function pointers for the detected PHY type. Internal PHY reset was moved to ixgbe_setup_internal_phy_t_x550em which will now detect which mode the internal PHY operates in and set it up as required. Signed-off-by: Mark Rustad Tested-by: Darin Miller Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) commit 4eeb1fff27f4578386955b0e88f4cffc3814df24 Author: Jesse Brandeburg Date: Wed Nov 18 17:35:42 2015 -0800 i40e: trivial fixes 1) remove duplicate include of tcp.h 2) put an ampersand at the end of a line instead of the beginning 3) remove a useless dev_info 4) match declaration of function to the implementation 5) repair incorrect comment 6) correct whitespace 7) remove unused define Signed-off-by: Jesse Brandeburg Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e.h | 7 +++---- drivers/net/ethernet/intel/i40e/i40e_txrx.c | 6 +----- drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 15 ++++----------- 3 files changed, 8 insertions(+), 20 deletions(-) commit 1e590660cb7ac675c735dd74d99dbca2103abf41 Author: Catherine Sullivan Date: Fri Nov 6 15:26:12 2015 -0800 i40e/i40evf: Bump version to 1.4.7 for i40e and 1.4.3 for i40evf Bump. Change-ID: Id8c83c64c973349a722bab40d285ad8ded8c28f7 Signed-off-by: Catherine Sullivan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_main.c | 2 +- drivers/net/ethernet/intel/i40evf/i40evf_main.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 44cdb791ae7bc40e0331b78a73992be44079a3ec Author: Mitch Williams Date: Fri Nov 6 15:26:11 2015 -0800 i40e/i40evf: use logical operator We shouldn't be using a bitwise operator here; it's not a bitwise operation. Use a logical operator instead. Why doesn't c have a logical-or-and-assign operator? Change-ID: Id84f3ca884910bed7073c84b1e16a102e958d0de Signed-off-by: Mitch Williams Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_txrx.c | 2 +- drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit b82bc49ede1f012d37ba8777e8232cd7c01365cd Author: Mitch Williams Date: Fri Nov 6 15:26:10 2015 -0800 i40e: fix whitespace Operators should have spaces around them. Change-ID: I64735e9aa8618b9a5059a87ace1c999d6d3bfcfb Signed-off-by: Mitch Williams Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 95db239f4fc664d9ce4ba9a6a3e87d2a3d856a23 Author: Neerav Parikh Date: Fri Nov 6 15:26:09 2015 -0800 i40e: Remove separate functions gathering XOFF Rx stats The separate functions to gather Flow control Rx XOFF stats was to determine if the Tx for a queue was paused due to Link Flow Control(LFC) or Priority Flow Control(PFC). But, with recent change in the i40e driver the logic for checking th Tx hang has been removed and these functions don't do anything meaningful. Hence, there is no need to keep these separate functions to gather Rx XOFF stats for LFC or PFC. This patch removes these functions and moves the stat collection for XOFF Rx to the i40e_update_pf_stats() that collects all the PF stats. Change-ID: Iec1452dac3a6766f0d968e754cb407530d7c60cd Signed-off-by: Neerav Parikh Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_main.c | 77 +++-------------------------- 1 file changed, 7 insertions(+), 70 deletions(-) commit 8fe269991aece394a7ed274f525d96c73f94109a Author: Jesse Brandeburg Date: Fri Nov 6 15:26:08 2015 -0800 i40e: remove CONFIG_I40E_VXLAN Instead of having our own custom symbol, we can just rely on whether or not the kernel has the feature enabled. In this case use IS_ENABLED(CONFIG_VXLAN) in order to handle built-in or module in the current BKM way. Change-ID: I5890fbb518ff8ed6bb07c3362fb0a8a829f9b241 Signed-off-by: Jesse Brandeburg Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/Kconfig | 11 ----------- drivers/net/ethernet/intel/i40e/i40e.h | 4 +--- drivers/net/ethernet/intel/i40e/i40e_main.c | 12 ++++++------ 3 files changed, 7 insertions(+), 20 deletions(-) commit 827de39212298048e75309377c8262c4d7f2cb41 Author: Jesse Brandeburg Date: Fri Nov 6 15:26:07 2015 -0800 i40e: use priv flags to control packet split Ethtool priv flags implementation to enable or disable packet split, which is a hardware feature that inspects headers and will put headers in a separate DMA buffer from the payload data. The driver was automatically choosing to enable packet split in some cases and this gives the user the ability to turn it off/on explicitly. to query state: ethtool --show-priv-flags ethx to enable: ethtool --set-priv-flags ethx packet-split on to disable: ethtool --set-priv-flags ethx packet-split off Why would anyone want this? Because some environments benefit from header/data split in the receive buffer, and the driver defaults to one or the other depending on environment/kernel parameters. Why didn't you implement a generic ethtool control for this feature? Because Intel hardware is the only hardware that supports header/data split. Change-ID: I803121e1eecc9ccb2884031fd85dd1110b3af66d Signed-off-by: Jesse Brandeburg Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e.h | 1 + drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 27 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) commit d82acb353246d3989377761ca26f5489264a4793 Author: Mitch Williams Date: Fri Nov 6 15:26:06 2015 -0800 i40evf: use correct types Don't use uint32_t type the kernel. Use u32 instead. No functional change. Change-ID: I77bbf3b6464edaef747c7104b43534032a4dba63 Signed-off-by: Mitch Williams Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40evf/i40evf_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ea02e90b4b49782462d06a425e05c776909fbae4 Author: Mitch Williams Date: Mon Nov 9 15:35:50 2015 -0800 i40e: propagate properly i40e_sync_vsi_filters() is the surly teenager of this driver. It says it's going to report errors, but it doesn't actually do that most of the time. And when it does, it leaves a mess. Change this function to have a common exit point so it will properly release the busy lock on the VSI. Propagate errors to the callers. Finally, adjust a few callers to check for and deal with errors from this function. Change-ID: Ic6af4956491e72402ebb3c538a3c31a0ad7f8667 Signed-off-by: Mitch Williams Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_main.c | 113 +++++++++++++-------- drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 14 +-- 2 files changed, 76 insertions(+), 51 deletions(-) commit a85088d813a3ac44afa237113539585257127cfa Author: Mitch Williams Date: Fri Nov 6 15:26:04 2015 -0800 i40evf: don't use atomic allocation These allocations don't need to be at atomic level. GFP_KERNEL is fine and they'll reduce stress on the allocator when the system is starved for memory. Change-ID: I3561d0399a681de0ad25291b6c848b224c1fde12 Signed-off-by: Mitch Williams Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit a42e7a369ea2b73a554a85dea7d6243af51cd4f0 Author: Kiran Patil Date: Fri Nov 6 15:26:03 2015 -0800 i40e: Fix memory leaks, sideband filter programming This patch fixes the memory leak which would be seen otherwise when user programs flow-director filter using ethtool (sideband filter programming). When ethtool is used to program flow directory filter, 'raw_buf' gets allocated and it is supposed to be freed as part of queue cleanup. But check of 'tx_buffer->skb' was preventing it from being freed. Change-ID: Ief4f0a1a32a653180498bf6e987c1b4342ab8923 Signed-off-by: Kiran Patil Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_txrx.c | 19 ++++++++++++++----- drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 10 +++++----- 2 files changed, 19 insertions(+), 10 deletions(-) commit 9c6c12595b73e580f103b0812837f015034d460e Author: Kiran Patil Date: Fri Nov 6 15:26:02 2015 -0800 i40e: Detection and recovery of TX queue hung logic moved to service_task from tx_timeout This patch contains following changes: - detection and recovery logic (issue SW interrupt) has been moved to service_task from timeout function. - added some more debug info from tx_timeout. Logic to detect and recover TX queue hung is now two step process: - service_task detects TX queue hung and sets a bit(hung_detected) if it was not set. - if bit was set (means this is back-back hung condition detected), issue SW interrupt and clear the bit. - napi_poll clears the bit unconditionally since it cleans TX/RX queues. Change-ID: Ieed03a48927c845a988b3ff375090bf37caeb903 Signed-off-by: Kiran Patil Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e.h | 3 +++ drivers/net/ethernet/intel/i40e/i40e_main.c | 36 ++++++++++++++++++++++----- drivers/net/ethernet/intel/i40e/i40e_txrx.c | 2 ++ drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 21 ++++++++++------ drivers/net/ethernet/intel/i40evf/i40e_txrx.h | 15 +++++++++++ 5 files changed, 64 insertions(+), 13 deletions(-) commit 05281eb8e1754688ecf07a63844c56c9f76b38ad Author: Mitch Williams Date: Fri Nov 6 15:26:01 2015 -0800 i40evf: remove duplicate string We already print the driver info string in probe, so don't print it again in init. No need to repeat. No need to repeat. Change-ID: Ief597997f580a8c54d5950e3a84c29f2075be66b Signed-off-by: Mitch Williams Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40evf/i40evf_main.c | 1 - 1 file changed, 1 deletion(-) commit e6c4cf6fb9323c0f65b8fef1c0c8c9e15b51007e Author: Mitch Williams Date: Fri Nov 6 15:26:00 2015 -0800 i40evf: set real num queues Use the helper function to set the real number of RX queues, and also set the real number of TX queues. Change-ID: I67982799de3f248fb4158ccdc9b1a74385f42ddd Signed-off-by: Mitch Williams Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40evf/i40evf_main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 1255b7a12ec4b6174a1c84f4aae4370b8ba1b1cf Author: Mitch Williams Date: Fri Nov 6 15:25:59 2015 -0800 i40evf: increase max number of queues Future devices will allow for more queue pairs, so allocate a netdev that can handle them. While we're at it, get rid of the separate MAX_TX/MAX_RX defines. Since we always get matched queue pairs, having these makes no sense. Change-ID: I0e3556cd9a962506e509eb7c0afa36b329e8cb51 Signed-off-by: Mitch Williams Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40evf/i40evf.h | 3 +-- drivers/net/ethernet/intel/i40evf/i40evf_main.c | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) commit 97ac3204ab9552ab0b4529fa80f072bdad073339 Author: Daniel Vetter Date: Thu Dec 3 10:49:14 2015 +0100 drm/atomic-helper: Reject attempts at re-stealing encoders This can happen when we run out of encoders for a multi-crtc modeset, or also when userspace is silly and tries to clone multiple connectors that need the same encoder on the same crtc. Reported-and-Tested-and-Reviewed-by: Maarten Lankhorst Cc: Maarten Lankhorst Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1449136154-11588-1-git-send-email-daniel.vetter@ffwll.ch drivers/gpu/drm/drm_atomic_helper.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit 67e1cbfbc14ab07d0aeffa8d2c92141da32b56e9 Author: Chen-Yu Tsai Date: Thu Dec 3 16:20:13 2015 +0800 ARM: dts: sun9i: Add NMI controller device node The Allwinner A80 SoC has an NMI controller. NMI is an external interrupt pin exclusely used with PMICs and other system critical peripherals (such as RTC) in Allwinner's reference designs. Signed-off-by: Chen-Yu Tsai Reviewed-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun9i-a80.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) commit 64bebefcf3195baed3d15dc377e15d1e7121036a Author: Fu, Zhonghui Date: Thu Sep 24 14:06:31 2015 +0800 HID: enable hid device to suspend/resume asynchronously Now, PM core supports asynchronous suspend/resume mode for devices during system suspend/resume, and the power state transition of one device may be completed in separate kernel thread. PM core ensures all power state transition timing dependency between devices. This patch enables hid devices to suspend/resume asynchronously. This will take advantage of multicore and improve system suspend/resume speed. Signed-off-by: Zhonghui Fu Signed-off-by: Jiri Kosina drivers/hid/hid-core.c | 1 + 1 file changed, 1 insertion(+) commit 41cabbc24d0a071cdd9135f854eee5c1e193c097 Merge: 8da411c 59f0ec2 Author: Stephen Boyd Date: Wed Dec 2 23:29:23 2015 -0800 Merge branch 'clk-fixes' into clk-next * clk-fixes: clk: sunxi: pll2: Fix clock running too fast clk: scpi: add missing of_node_put clk: qoriq: fix memory leak imx/clk-pllv2: fix wrong do_div() usage imx/clk-pllv1: fix wrong do_div() usage clk: mmp: add linux/clk.h includes clk: ti: drop locking code from mux/divider drivers clk: ti816x: Add missing dmtimer clkdev entries clk: ti: fapll: fix wrong do_div() usage clk: ti: clkt_dpll: fix wrong do_div() usage clk: gpio: Get parent clk names in of_gpio_clk_setup() commit 8da411cc1964c5d6a0a0f94c7bbf8693c9673a87 Author: Masahiro Yamada Date: Thu Dec 3 11:20:35 2015 +0900 clk: let of_clk_get_parent_name() fail for invalid clock-indices Currently, of_clk_get_parent_name() returns a wrong parent clock name when "clock-indices" property exists and the target index is not found in the property. In this case, NULL should be returned. For example, oscillator { compatible = "myclocktype"; #clock-cells = <1>; clock-indices = <1>, <3>; clock-output-names = "clka", "clkb"; }; consumer { compatible = "myclockconsumer"; clocks = <&oscillator 0>, <&oscillator 1>; }; Currently, of_clk_get_parent_name(consumer_np, 0) returns "clka" (and of_clk_get_parent_name(consumer_np, 1) also returns "clka", this is correct). Because the "clock-indices" in the clock parent does not contain <0>, of_clk_get_parent_name(consumer_np, 0) should return NULL. Signed-off-by: Masahiro Yamada Signed-off-by: Stephen Boyd drivers/clk/clk.c | 3 +++ 1 file changed, 3 insertions(+) commit 6f24e5d599896b5091af72e4b3edfce6307627f7 Author: Jarod Wilson Date: Mon Nov 30 17:12:21 2015 -0500 sfc: use ALIGN macro for aligning frame sizes Don't open-code it. CC: Solarflare linux maintainers CC: Shradha Shah CC: netdev@vger.kernel.org Signed-off-by: Jarod Wilson Acked-by: Bert Kenward Signed-off-by: David S. Miller drivers/net/ethernet/sfc/net_driver.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 7450aaf61f0ae2ee6cc6491138d11df2c25e7609 Author: Eric Dumazet Date: Mon Nov 30 08:57:28 2015 -0800 tcp: suppress too verbose messages in tcp_send_ack() If tcp_send_ack() can not allocate skb, we properly handle this and setup a timer to try later. Use __GFP_NOWARN to avoid polluting syslog in the case host is under memory pressure, so that pertinent messages are not lost under a flood of useless information. sk_gfp_atomic() can use its gfp_mask argument (all callers currently were using GFP_ATOMIC before this patch) We rename sk_gfp_atomic() to sk_gfp_mask() to clearly express this function now takes into account its second argument (gfp_mask) Note that when tcp_transmit_skb() is called with clone_it set to false, we do not attempt memory allocations, so can pass a 0 gfp_mask, which most compilers can emit faster than a non zero or constant value. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller include/net/sock.h | 4 ++-- net/ipv4/tcp_output.c | 14 ++++++++------ net/ipv6/tcp_ipv6.c | 6 +++--- 3 files changed, 13 insertions(+), 11 deletions(-) commit 0fe824d3654a38677ed0318204d166f947175b02 Merge: 117ce39 760d1e3 Author: David S. Miller Date: Wed Dec 2 23:43:48 2015 -0500 Merge branch 'hv_netvsc-less-headroom' Merge branch 'hv_netvsc-less-headroom' K. Y. Srinivasan says: ==================== hv_netvsc: Eliminate the additional head room In an attempt to avoid having to allocate memory on the send path, the netvsc driver was requesting additional head room so that both rndis header and the netvsc packet (the state that had to persist) could be placed in the skb. Since the amount of head room requested was exceeding the default head room as set in LL_MAX_HEADER, we were forcing a reallocation of skb. With this patch-set, I have reduced the size of the netvsc packet to less than 20 bytes and with this reduction we don't need to ask for any additional headroom. We place the rndis header in the skb head room and we place the netvsc packet in control buffer area in the skb. V2: - Addressed review comments: - Eliminated more fields from netvsc packet structure. V3: - Fixed a typo in patch: hv_netvsc: Don't ask for additional head room in the skb. ==================== Signed-off-by: David S. Miller commit 760d1e36cc16fa6444dd2000ac645455de1ecd51 Author: KY Srinivasan Date: Tue Dec 1 16:43:19 2015 -0800 hv_netvsc: Eliminate vlan_tci from struct hv_netvsc_packet Eliminate vlan_tci from struct hv_netvsc_packet. Signed-off-by: K. Y. Srinivasan Signed-off-by: David S. Miller drivers/net/hyperv/hyperv_net.h | 4 ++-- drivers/net/hyperv/netvsc_drv.c | 14 +++++++------- drivers/net/hyperv/rndis_filter.c | 7 +++---- 3 files changed, 12 insertions(+), 13 deletions(-) commit 10082f98878a9dff1563745f9f1dd9d1ff142700 Author: KY Srinivasan Date: Tue Dec 1 16:43:18 2015 -0800 hv_netvsc: Eliminate status from struct hv_netvsc_packet Eliminate status from struct hv_netvsc_packet. Signed-off-by: K. Y. Srinivasan Signed-off-by: David S. Miller drivers/net/hyperv/hyperv_net.h | 1 - drivers/net/hyperv/netvsc.c | 6 ++---- drivers/net/hyperv/netvsc_drv.c | 8 ++------ drivers/net/hyperv/rndis_filter.c | 20 +++++++++----------- 4 files changed, 13 insertions(+), 22 deletions(-) commit bde79be529c43b5a5a877b3e0b93607d22a8b01e Author: KY Srinivasan Date: Tue Dec 1 16:43:17 2015 -0800 hv_netvsc: Eliminate xmit_more from struct hv_netvsc_packet Eliminate xmit_more from struct hv_netvsc_packet. Signed-off-by: K. Y. Srinivasan Signed-off-by: David S. Miller drivers/net/hyperv/hyperv_net.h | 1 - drivers/net/hyperv/netvsc.c | 13 ++++++++----- drivers/net/hyperv/netvsc_drv.c | 1 - drivers/net/hyperv/rndis_filter.c | 2 -- 4 files changed, 8 insertions(+), 9 deletions(-) commit a429bda374a640b05a8f949fed080af7512be49a Author: KY Srinivasan Date: Tue Dec 1 16:43:16 2015 -0800 hv_netvsc: Eliminate completion_func from struct hv_netvsc_packet Eliminate completion_func from struct hv_netvsc_packet. Signed-off-by: K. Y. Srinivasan Signed-off-by: David S. Miller drivers/net/hyperv/hyperv_net.h | 1 - drivers/net/hyperv/netvsc_drv.c | 3 --- drivers/net/hyperv/rndis_filter.c | 1 - 3 files changed, 5 deletions(-) commit 694a9fb0263dddfb07bc490a02e59d6962602fe8 Author: KY Srinivasan Date: Tue Dec 1 16:43:15 2015 -0800 hv_netvsc: Eliminate is_data_pkt from struct hv_netvsc_packet Eliminate is_data_pkt from struct hv_netvsc_packet. Signed-off-by: K. Y. Srinivasan Signed-off-by: David S. Miller drivers/net/hyperv/hyperv_net.h | 1 - drivers/net/hyperv/netvsc.c | 14 ++++++++------ drivers/net/hyperv/netvsc_drv.c | 1 - drivers/net/hyperv/rndis_filter.c | 1 - 4 files changed, 8 insertions(+), 9 deletions(-) commit 3a3d9a0a731add5afaafd9c714e7efe11820fe5b Author: KY Srinivasan Date: Tue Dec 1 16:43:14 2015 -0800 hv_netvsc: Eliminate send_completion_tid from struct hv_netvsc_packet Eliminate send_completion_tid from struct hv_netvsc_packet. Signed-off-by: K. Y. Srinivasan Signed-off-by: David S. Miller drivers/net/hyperv/hyperv_net.h | 8 ++------ drivers/net/hyperv/netvsc.c | 28 ++++++++++++++-------------- drivers/net/hyperv/netvsc_drv.c | 14 ++------------ drivers/net/hyperv/rndis_filter.c | 2 +- 4 files changed, 19 insertions(+), 33 deletions(-) commit a9f2e2d6569d00ae8f9f832f1b56bc7702dfd2d3 Author: KY Srinivasan Date: Tue Dec 1 16:43:13 2015 -0800 hv_netvsc: Eliminate page_buf from struct hv_netvsc_packet Eliminate page_buf from struct hv_netvsc_packet. Signed-off-by: K. Y. Srinivasan Reviewed-by: Haiyang Zhang Signed-off-by: David S. Miller drivers/net/hyperv/hyperv_net.h | 4 ++-- drivers/net/hyperv/netvsc.c | 25 ++++++++++++++----------- drivers/net/hyperv/netvsc_drv.c | 11 ++++++----- drivers/net/hyperv/rndis_filter.c | 26 +++++++++++++------------- 4 files changed, 35 insertions(+), 31 deletions(-) commit 2a04ae8acb144996eba6e3d69ab2a7156c775416 Author: Vitaly Kuznetsov Date: Tue Dec 1 16:43:12 2015 -0800 hv_netvsc: remove locking in netvsc_send() Packet scheduler guarantees there won't be multiple senders for the same queue and as we use q_idx for multi_send_data the spinlock is redundant. Signed-off-by: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: David S. Miller drivers/net/hyperv/hyperv_net.h | 1 - drivers/net/hyperv/netvsc.c | 8 -------- 2 files changed, 9 deletions(-) commit 8b9fbe1ac390689f01153d6af8485caec5423ccc Author: Vitaly Kuznetsov Date: Tue Dec 1 16:43:11 2015 -0800 hv_netvsc: move subchannel existence check to netvsc_select_queue() Signed-off-by: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: David S. Miller drivers/net/hyperv/hyperv_net.h | 15 --------------- drivers/net/hyperv/netvsc.c | 5 ++--- drivers/net/hyperv/netvsc_drv.c | 3 +++ 3 files changed, 5 insertions(+), 18 deletions(-) commit c0eb454034aab783dc602739237a63b30867f5bd Author: KY Srinivasan Date: Tue Dec 1 16:43:10 2015 -0800 hv_netvsc: Don't ask for additional head room in the skb The rndis header is 116 bytes big and can be placed in the default head room that will be available in the skb. Since the netvsc packet is less than 48 bytes, we can use the skb control buffer for the netvsc packet. With these changes we don't need to ask for additional head room. Signed-off-by: K. Y. Srinivasan Reviewed-by: Haiyang Zhang Signed-off-by: David S. Miller drivers/net/hyperv/hyperv_net.h | 3 +++ drivers/net/hyperv/netvsc_drv.c | 30 +++++++++++------------------- include/linux/netdevice.h | 4 +++- 3 files changed, 17 insertions(+), 20 deletions(-) commit 074c2fe5ef3d09e9a1008d307a22ab5086e22728 Author: KY Srinivasan Date: Tue Dec 1 16:43:09 2015 -0800 hv_netvsc: Eliminate send_completion_ctx from struct hv_netvsc_packet Eliminate send_completion_ctx from struct hv_netvsc_packet. Signed-off-by: K. Y. Srinivasan Reviewed-by: Haiyang Zhang Signed-off-by: David S. Miller drivers/net/hyperv/hyperv_net.h | 1 - drivers/net/hyperv/netvsc.c | 3 +-- drivers/net/hyperv/netvsc_drv.c | 1 - 3 files changed, 1 insertion(+), 4 deletions(-) commit 09215ef5dfd5a2c6c169733162091ca7e56a4890 Author: KY Srinivasan Date: Tue Dec 1 16:43:08 2015 -0800 hv_netvsc: Eliminate send_completion from struct hv_netvsc_packet Eliminate send_completion from struct hv_netvsc_packet. Signed-off-by: K. Y. Srinivasan Reviewed-by: Haiyang Zhang Signed-off-by: David S. Miller drivers/net/hyperv/hyperv_net.h | 3 +-- drivers/net/hyperv/netvsc.c | 6 +++--- drivers/net/hyperv/netvsc_drv.c | 2 +- drivers/net/hyperv/rndis_filter.c | 2 +- 4 files changed, 6 insertions(+), 7 deletions(-) commit c4b20c6370aa5cdbe11536125d86f31378d4b702 Author: KY Srinivasan Date: Tue Dec 1 16:43:07 2015 -0800 hv_netvsc: Eliminatte the data field from struct hv_netvsc_packet Eliminatte the data field from struct hv_netvsc_packet. Signed-off-by: K. Y. Srinivasan Reviewed-by: Haiyang Zhang Signed-off-by: David S. Miller drivers/net/hyperv/hyperv_net.h | 5 ++--- drivers/net/hyperv/netvsc.c | 5 +++-- drivers/net/hyperv/netvsc_drv.c | 3 ++- drivers/net/hyperv/rndis_filter.c | 11 +++++++---- 4 files changed, 14 insertions(+), 10 deletions(-) commit 24476760ef0b45bab75ea6731d081aeb48113e6a Author: KY Srinivasan Date: Tue Dec 1 16:43:06 2015 -0800 hv_netvsc: Eliminate rndis_msg pointer from hv_netvsc_packet structure Eliminate rndis_msg pointer from hv_netvsc_packet structure. Signed-off-by: K. Y. Srinivasan Reviewed-by: Haiyang Zhang Signed-off-by: David S. Miller drivers/net/hyperv/hyperv_net.h | 8 +++----- drivers/net/hyperv/netvsc.c | 10 ++++++---- drivers/net/hyperv/netvsc_drv.c | 7 +++---- drivers/net/hyperv/rndis_filter.c | 2 +- 4 files changed, 13 insertions(+), 14 deletions(-) commit 25b85ee890530f70de850f15660ed41abbee1172 Author: KY Srinivasan Date: Tue Dec 1 16:43:05 2015 -0800 hv_netvsc: Eliminate the channel field in hv_netvsc_packet structure Eliminate the channel field in hv_netvsc_packet structure. Signed-off-by: K. Y. Srinivasan Reviewed-by: Haiyang Zhang Signed-off-by: David S. Miller drivers/net/hyperv/hyperv_net.h | 22 ++++++++++++++++++---- drivers/net/hyperv/netvsc.c | 19 ++++++++----------- drivers/net/hyperv/netvsc_drv.c | 5 +++-- drivers/net/hyperv/rndis_filter.c | 10 ++++++---- 4 files changed, 35 insertions(+), 21 deletions(-) commit 934d202255ecd03d1f48b1031a2e03cb647e73d9 Author: KY Srinivasan Date: Tue Dec 1 16:43:04 2015 -0800 hv_netvsc: Rearrange the hv_negtvsc_packet to be space efficient Rearrange the elements of struct hv_negtvsc_packet for optimal layout - eliminate unnecessary padding. Signed-off-by: K. Y. Srinivasan Reviewed-by: Haiyang Zhang Signed-off-by: David S. Miller drivers/net/hyperv/hyperv_net.h | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) commit 22e9dd249bd4bcf338c282d90df08ccf5dbfbee2 Author: KY Srinivasan Date: Tue Dec 1 16:43:03 2015 -0800 hv_netvsc: Resize some of the variables in hv_netvsc_packet As part of reducing the size of the hv_netvsc_packet, resize some of the variables based on their usage. Signed-off-by: K. Y. Srinivasan Reviewed-by: Haiyang Zhang Signed-off-by: David S. Miller drivers/net/hyperv/hyperv_net.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit e98f033f94f385a9cf498d4e9f2ac1e6198b545a Author: Jacob Tanenbaum Date: Tue Dec 1 17:14:17 2015 +0100 cpupower: fix how "cpupower frequency-info" interprets latency the intel-pstate driver does not support the ondemand governor and does not have a valid value in /sys/devices/system/cpu/cpu[x]/cpufreq/cpuinfo_transition_latency. The intel-pstate driver sets cpuinfo_transition_latency to CPUFREQ_ETERNAL (-1), the value written into cpuinfo_transition_latency is defind as an unsigned int so checking the read value against max unsigned int will determine if the value is valid. Signed-off-by: Jacob Tanenbaum Signed-off-by: Thomas Renninger Signed-off-by: Rafael J. Wysocki tools/power/cpupower/utils/cpufreq-info.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 562e5f1a352977f45d0d0ed3279b556d3e41e1ba Author: Jacob Tanenbaum Date: Tue Dec 1 17:14:16 2015 +0100 cpupower: rework the "cpupower frequency-info" command this patch makes two changes to the way that "cpupower frequancy-info" operates 1. make it so that querying individual values always returns a message to the user currently cpupower frequency info doesn't return anything to the user when querying an individual value cannot be returned [root@amd-dinar-09 cpupower]# cpupower -c 4 frequency-info -d analyzing CPU 4: [root@amd-dinar-09 cpupower]# I added messages so that each query prints a message to the terminal [root@amd-dinar-09 cpupower]# ./cpupower -c 4 frequency-info -d analyzing CPU 4: no or unknown cpufreq driver is active on this CPU [root@amd-dinar-09 cpupower]# (this is just one example) 2. change debug_output_one() to use the functions already provided by cpufreq-info.c to query individual values of interest. Signed-off-by: Jacob Tanenbaum Signed-off-by: Thomas Renninger Signed-off-by: Rafael J. Wysocki tools/power/cpupower/utils/cpufreq-info.c | 235 +++++++++++------------------- 1 file changed, 88 insertions(+), 147 deletions(-) commit ce512b84045459f4a6c119a109c950c6bc4a6f3a Author: Thomas Renninger Date: Tue Dec 1 17:14:15 2015 +0100 cpupower: Do not analyse offlined cpus Use sysfs_is_cpu_online(cpu) instead of cpufreq_cpu_exists(cpu) to detect offlined cpus. Re-arrange printfs slightly to have a consistent output even if you have multiple CPUs as output and even if offlined cores are in between. Signed-off-by: Thomas Renninger Signed-off-by: Rafael J. Wysocki tools/power/cpupower/utils/cpufreq-info.c | 11 ++++++++--- tools/power/cpupower/utils/cpuidle-info.c | 16 ++++++++++------ tools/power/cpupower/utils/cpupower-info.c | 9 ++++++--- tools/power/cpupower/utils/cpupower-set.c | 10 +++++++--- 4 files changed, 31 insertions(+), 15 deletions(-) commit e51207f0030474958e59bbc7e002f169bdb05c50 Author: Thomas Renninger Date: Tue Dec 1 17:14:14 2015 +0100 cpupower: Provide STATIC variable in Makefile for debug builds When working on cpupower code, you often want to compile library code into the binary. This allows to execute modified cpupower code, even with library changes without doing "make install" Signed-off-by: Thomas Renninger Signed-off-by: Rafael J. Wysocki tools/power/cpupower/Makefile | 19 +++++++++++++++++++ tools/power/cpupower/bench/Makefile | 8 +++++++- 2 files changed, 26 insertions(+), 1 deletion(-) commit 7b0e1bf171effb71fa946e26d28895219de179cc Author: Thomas Renninger Date: Tue Dec 1 17:14:13 2015 +0100 cpupower: Fix precedence issue Signed-off-by: Thomas Renninger Signed-off-by: Rafael J. Wysocki tools/power/cpupower/utils/helpers/topology.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 437682eeab45ab8c8c1e027afd023e39f32f9032 Author: Arnd Bergmann Date: Thu Nov 19 13:30:42 2015 +0100 ARM: 8456/1: code patching only works on MMU There is no __set_fixmap implementation for NOMMU kernels, so we cannot link the kernel/patch.c file: arch/arm/kernel/built-in.o: In function `patch_map': :(.text+0x257e): undefined reference to `__set_fixmap' arch/arm/kernel/built-in.o: In function `__patch_text_real': :(.text+0x2618): undefined reference to `__set_fixmap' :(.text+0x262e): undefined reference to `__set_fixmap' To work around that, this adds dependencies for all features that rely on code patching. Signed-off-by: Arnd Bergmann Signed-off-by: Russell King arch/arm/Kconfig | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 0e2f91e94be2c6986cef9397b10faf4e0eaa5a60 Author: Pavel Fedin Date: Fri Nov 27 12:56:26 2015 +0100 ARM: 8463/1: Enable GICv2m on 32-bit virt machine Modern qemu includes GICv2m support for both 64 and 32 bits, therefore 32-bit guests may also use MSI. Signed-off-by: Pavel Fedin Signed-off-by: Russell King arch/arm/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 89e69fbfd18bf4ec9ce2663bcb35342aa8a2b3af Author: Masahiro Yamada Date: Tue Nov 24 17:01:10 2015 +0100 ARM: 8462/1: cache-uniphier: use common API to find the next level cache The function uniphier_cache_get_next_level_node() does the same thing as of_find_next_cache_node(). Drop the former and stick to the common API. Signed-off-by: Masahiro Yamada Signed-off-by: Russell King arch/arm/mm/cache-uniphier.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) commit 6c044fecdf78be3fda159a5036bb33700cdd5e59 Author: Arnd Bergmann Date: Thu Nov 19 15:49:23 2015 +0100 ARM: 8458/1: bL_switcher: add GIC dependency It is not possible to build the bL_switcher code if the GIC driver is disabled, because it relies on calling into some gic specific interfaces, and that would result in this build error: arch/arm/common/built-in.o: In function `bL_switch_to': :(.text+0x1230): undefined reference to `gic_get_sgir_physaddr' :(.text+0x1244): undefined reference to `gic_send_sgi' :(.text+0x1268): undefined reference to `gic_migrate_target' arch/arm/common/built-in.o: In function `bL_switcher_enable.part.4': :(.text.unlikely+0x2f8): undefined reference to `gic_get_cpu_id' This adds a Kconfig dependency to ensure we only build the big-little switcher if the GIC driver is present as well. Almost all ARMv7 platforms come with a GIC anyway, but it is possible to build a kernel that disables all platforms. Signed-off-by: Arnd Bergmann Acked-by: Nicolas Pitre Signed-off-by: Russell King arch/arm/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit be95485a0b8288a93402705730d3ea32f9f812b9 Author: Arnd Bergmann Date: Thu Nov 19 15:03:57 2015 +0100 ARM: 8457/1: psci-smp is built only for SMP The PSCI SMP implementation is built only when both CONFIG_SMP and CONFIG_ARM_PSCI are set, so a configuration that has the latter but not the former can get a link error when it tries to call psci_smp_available(). arch/arm/mach-tegra/built-in.o: In function `tegra114_cpuidle_init': cpuidle-tegra114.c:(.init.text+0x52a): undefined reference to `psci_smp_available' This corrects the #ifdef in the psci.h header file to match the Makefile conditional we have for building that function. Signed-off-by: Arnd Bergmann Signed-off-by: Russell King arch/arm/include/asm/psci.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e9c38ceba8d96304c75ca99f7e49060af3a7e063 Author: Arnd Bergmann Date: Thu Nov 19 13:22:42 2015 +0100 ARM: 8455/1: define __BUG as asm(BUG_INSTR) without CONFIG_BUG Following (a long time after) a4b5d580e078 ("bug: Make BUG() always stop the machine"), this adapts the ARM architecture to no longer rely on the sub-optimal BUG() definition that has a silent endless loop but instead use the same trapping instruction that we have for the full BUG() support. This avoids hundreds of warnings like arch/arm/include/asm/xen/page.h: In function 'arbitrary_virt_to_machine': arch/arm/include/asm/xen/page.h:85:1: warning: no return statement in function returning non-void [-Wreturn-type] and also makes the code size slightly smaller. The behavior changes from silently stopping the kernel to an oops, and follows what x86 does these days. Signed-off-by: Arnd Bergmann Signed-off-by: Russell King arch/arm/include/asm/bug.h | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 941c4d3f11c9b591f7762d125b7977ceffb1fa7c Author: Jianqun xu Date: Wed Dec 2 21:22:31 2015 +0800 clk: rockchip: protect rk3368 aclk_bus and aclk_peri clocks Add aclk_bus and aclk_peri to the list of rk3368 critical clocks, which are the base clocks that supply for all peripherals, never to be disabled automatically. Signed-off-by: Jianqun xu Signed-off-by: Heiko Stuebner drivers/clk/rockchip/clk-rk3368.c | 2 ++ 1 file changed, 2 insertions(+) commit 1494276000db789c6d2acd85747be4707051c801 Author: Thierry Reding Date: Wed Dec 2 17:50:04 2015 +0100 drm/atomic-helper: Implement subsystem-level suspend/resume Provide subsystem-level suspend and resume helpers that can be used to implement suspend/resume on atomic mode-setting enabled drivers. v2: simplify locking, enhance kerneldoc comments v3: pass lock acquisition context by parameter, improve kerneldoc v4: - remove redundant code (already provided by atomic helpers) (Maarten Lankhorst) - move backoff dance from drm_modeset_lock_all_ctx() into suspend helper (Daniel Vetter) v5: handle potential EDEADLK from drm_atomic_helper_duplicate_state() and drm_atomic_helper_disable_all() (Daniel Vetter) Signed-off-by: Thierry Reding Link: http://patchwork.freedesktop.org/patch/msgid/1449075005-13937-2-git-send-email-thierry.reding@gmail.com Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic_helper.c | 162 +++++++++++++++++++++++++++++++++++- drivers/gpu/drm/drm_crtc_helper.c | 6 ++ include/drm/drm_atomic_helper.h | 6 ++ 3 files changed, 173 insertions(+), 1 deletion(-) commit 06eaae46381737a6236ad6fe81e5358fad3bbbe5 Author: Thierry Reding Date: Wed Dec 2 17:50:03 2015 +0100 drm: Implement drm_modeset_lock_all_ctx() This function is like drm_modeset_lock_all(), but it takes the lock acquisition context as a parameter rather than storing it in the DRM device's mode_config structure. Implement drm_modeset_{,un}lock_all() in terms of the new function for better code reuse, and add a note to the kerneldoc that new code should use the new functions. v2: improve kerneldoc v4: rename drm_modeset_lock_all_crtcs() to drm_modeset_lock_all_ctx() and take mode_config's .connection_mutex instead of .mutex lock to avoid lock inversion (Daniel Vetter), use drm_modeset_drop_locks() which is now the equivalent of drm_modeset_unlock_all_ctx() v5: do not take the dev->mode_config.connection_mutex in drm_atomic_legacy_backoff() since drm_modeset_lock_all_ctx() already keeps it, enhance kerneldoc for drm_modeset_lock_all_ctx() (Daniel Vetter) Signed-off-by: Thierry Reding Link: http://patchwork.freedesktop.org/patch/msgid/1449075005-13937-1-git-send-email-thierry.reding@gmail.com Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic.c | 7 +-- drivers/gpu/drm/drm_modeset_lock.c | 89 +++++++++++++++++++++++++------------- include/drm/drm_modeset_lock.h | 4 +- 3 files changed, 63 insertions(+), 37 deletions(-) commit 08c2315015561d2292cddcbad8967deab86af4d5 Author: Anil Gurumurthy Date: Thu Nov 26 03:54:47 2015 -0500 bfa: Update driver version to 3.2.25.0 Signed-off-by: Sudarsana Kalluru Signed-off-by: Anil Gurumurthy Reviewed-by: Johannes Thumshirn Signed-off-by: Martin K. Petersen drivers/scsi/bfa/bfad_drv.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 31e1d5695724829759c4b5d63cd643c9f01769cc Author: Anil Gurumurthy Date: Thu Nov 26 03:54:46 2015 -0500 bfa: File header and user visible string changes Signed-off-by: Sudarsana Kalluru Signed-off-by: Anil Gurumurthy Reviewed-by: Johannes Thumshirn Signed-off-by: Martin K. Petersen drivers/scsi/bfa/bfa.h | 2 +- drivers/scsi/bfa/bfa_core.c | 2 +- drivers/scsi/bfa/bfa_cs.h | 2 +- drivers/scsi/bfa/bfa_defs.h | 2 +- drivers/scsi/bfa/bfa_defs_fcs.h | 2 +- drivers/scsi/bfa/bfa_defs_svc.h | 2 +- drivers/scsi/bfa/bfa_fc.h | 2 +- drivers/scsi/bfa/bfa_fcbuild.c | 2 +- drivers/scsi/bfa/bfa_fcbuild.h | 2 +- drivers/scsi/bfa/bfa_fcpim.c | 2 +- drivers/scsi/bfa/bfa_fcpim.h | 2 +- drivers/scsi/bfa/bfa_fcs.c | 2 +- drivers/scsi/bfa/bfa_fcs.h | 4 +-- drivers/scsi/bfa/bfa_fcs_fcpim.c | 2 +- drivers/scsi/bfa/bfa_fcs_lport.c | 4 +-- drivers/scsi/bfa/bfa_fcs_rport.c | 2 +- drivers/scsi/bfa/bfa_hw_cb.c | 2 +- drivers/scsi/bfa/bfa_hw_ct.c | 2 +- drivers/scsi/bfa/bfa_ioc.c | 4 +-- drivers/scsi/bfa/bfa_ioc.h | 2 +- drivers/scsi/bfa/bfa_ioc_cb.c | 2 +- drivers/scsi/bfa/bfa_ioc_ct.c | 2 +- drivers/scsi/bfa/bfa_modules.h | 2 +- drivers/scsi/bfa/bfa_plog.h | 2 +- drivers/scsi/bfa/bfa_port.c | 2 +- drivers/scsi/bfa/bfa_port.h | 2 +- drivers/scsi/bfa/bfa_svc.c | 2 +- drivers/scsi/bfa/bfa_svc.h | 2 +- drivers/scsi/bfa/bfad.c | 19 ++++------- drivers/scsi/bfa/bfad_attr.c | 70 ++++++++++++++++++++-------------------- drivers/scsi/bfa/bfad_bsg.c | 2 +- drivers/scsi/bfa/bfad_bsg.h | 2 +- drivers/scsi/bfa/bfad_debugfs.c | 2 +- drivers/scsi/bfa/bfad_drv.h | 2 +- drivers/scsi/bfa/bfad_im.c | 4 +-- drivers/scsi/bfa/bfad_im.h | 2 +- drivers/scsi/bfa/bfi.h | 2 +- drivers/scsi/bfa/bfi_ms.h | 2 +- drivers/scsi/bfa/bfi_reg.h | 4 +-- 39 files changed, 84 insertions(+), 89 deletions(-) commit 3c3da12d3174891f61f0f2c672da095562f19b92 Author: Anil Gurumurthy Date: Thu Nov 26 03:54:00 2015 -0500 bfa: Fix for crash when bfa_itnim is NULL Fix a very corner case when the port gets disconnected and the BFA and FCS layers clean up references to the IT nexus. During this window if a task management command is issued by the SCSI-ML and ends up referencing a NULL itnim, it could lead to a crash. Signed-off-by: Sudarsana Kalluru Signed-off-by: Anil Gurumurthy Reviewed-by: Johannes Thumshirn Signed-off-by: Martin K. Petersen drivers/scsi/bfa/bfad_im.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit f89c2b39ce676cb08b6ed8848cde76dcb21cc672 Author: Jonathan Cameron Date: Wed Dec 2 18:24:45 2015 +0000 staging:iio:mxs-lradc Fix large integer implicitly truncated to unsigned warning The change to using BIT(20) for one of the bit shifts resulted in a constant becoming unsigned. When combined with the existing signed constants in a couple of places, this caused possible trouble, hence the warnings: drivers/staging/iio/adc/mxs-lradc.c: In function ‘mxs_lradc_complete_touch_event’: drivers/staging/iio/adc/mxs-lradc.c:325:5: warning: large integer implicitly truncated to unsigned type [-Woverflow] (((x) << LRADC_DELAY_TRIGGER_LRADCS_OFFSET) & \ ^ drivers/staging/iio/adc/mxs-lradc.c:734:7: note: in expansion of macro ‘LRADC_DELAY_TRIGGER’ LRADC_DELAY_TRIGGER(1 << TOUCHSCREEN_VCHANNEL1) | ^ LD [M] drivers/staging/iio/accel/adis16201.o drivers/staging/iio/adc/mxs-lradc.c: In function ‘mxs_lradc_buffer_preenable’: drivers/staging/iio/adc/mxs-lradc.c:322:42: warning: large integer implicitly truncated to unsigned type [-Woverflow] #define LRADC_DELAY_TRIGGER_LRADCS_MASK (0xff << 24) ^ drivers/staging/iio/adc/mxs-lradc.c:1308:29: note: in expansion of macro ‘LRADC_DELAY_TRIGGER_LRADCS_MASK’ mxs_lradc_reg_clear(lradc, LRADC_DELAY_TRIGGER_LRADCS_MASK | ^ drivers/staging/iio/adc/mxs-lradc.c: In function ‘mxs_lradc_buffer_postdisable’: drivers/staging/iio/adc/mxs-lradc.c:322:42: warning: large integer implicitly truncated to unsigned type [-Woverflow] #define LRADC_DELAY_TRIGGER_LRADCS_MASK (0xff << 24) ^ drivers/staging/iio/adc/mxs-lradc.c:1327:29: note: in expansion of macro ‘LRADC_DELAY_TRIGGER_LRADCS_MASK’ mxs_lradc_reg_clear(lradc, LRADC_DELAY_TRIGGER_LRADCS_MASK | The simplest fix is to force LRADC_DELAY_TRIGGER_LRADCS_MASK to be a shift of an unsigned 0xff rather than a signed one. This is ugly considering it is the only constant in the driver which is so forced, but it does deal with the issue. Fixes: e0c961bdaf27 (iio: adc: mxs-lradc: Prefer using the BIT macro) Signed-off-by: Jonathan Cameron Signed-off-by: Greg Kroah-Hartman drivers/staging/iio/adc/mxs-lradc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 889d0d42667c998a099028f845c0be074acb4b90 Author: Anil Gurumurthy Date: Thu Nov 26 03:54:45 2015 -0500 bfa: Update copyright messages Signed-off-by: Sudarsana Kalluru Signed-off-by: Anil Gurumurthy Reviewed-by: Johannes Thumshirn Signed-off-by: Martin K. Petersen drivers/scsi/bfa/bfa.h | 5 +++-- drivers/scsi/bfa/bfa_core.c | 5 +++-- drivers/scsi/bfa/bfa_cs.h | 5 +++-- drivers/scsi/bfa/bfa_defs.h | 5 +++-- drivers/scsi/bfa/bfa_defs_fcs.h | 5 +++-- drivers/scsi/bfa/bfa_defs_svc.h | 5 +++-- drivers/scsi/bfa/bfa_fc.h | 5 +++-- drivers/scsi/bfa/bfa_fcbuild.c | 5 +++-- drivers/scsi/bfa/bfa_fcbuild.h | 5 +++-- drivers/scsi/bfa/bfa_fcpim.c | 5 +++-- drivers/scsi/bfa/bfa_fcpim.h | 5 +++-- drivers/scsi/bfa/bfa_fcs.c | 5 +++-- drivers/scsi/bfa/bfa_fcs.h | 5 +++-- drivers/scsi/bfa/bfa_fcs_fcpim.c | 5 +++-- drivers/scsi/bfa/bfa_fcs_lport.c | 5 +++-- drivers/scsi/bfa/bfa_fcs_rport.c | 5 +++-- drivers/scsi/bfa/bfa_hw_cb.c | 5 +++-- drivers/scsi/bfa/bfa_hw_ct.c | 5 +++-- drivers/scsi/bfa/bfa_ioc.c | 5 +++-- drivers/scsi/bfa/bfa_ioc.h | 5 +++-- drivers/scsi/bfa/bfa_ioc_cb.c | 5 +++-- drivers/scsi/bfa/bfa_ioc_ct.c | 5 +++-- drivers/scsi/bfa/bfa_modules.h | 5 +++-- drivers/scsi/bfa/bfa_plog.h | 5 +++-- drivers/scsi/bfa/bfa_port.c | 5 +++-- drivers/scsi/bfa/bfa_port.h | 5 +++-- drivers/scsi/bfa/bfa_svc.c | 5 +++-- drivers/scsi/bfa/bfa_svc.h | 5 +++-- drivers/scsi/bfa/bfad.c | 5 +++-- drivers/scsi/bfa/bfad_attr.c | 5 +++-- drivers/scsi/bfa/bfad_bsg.c | 5 +++-- drivers/scsi/bfa/bfad_bsg.h | 5 +++-- drivers/scsi/bfa/bfad_debugfs.c | 5 +++-- drivers/scsi/bfa/bfad_drv.h | 5 +++-- drivers/scsi/bfa/bfad_im.c | 5 +++-- drivers/scsi/bfa/bfad_im.h | 5 +++-- drivers/scsi/bfa/bfi.h | 5 +++-- drivers/scsi/bfa/bfi_ms.h | 5 +++-- drivers/scsi/bfa/bfi_reg.h | 5 +++-- 39 files changed, 117 insertions(+), 78 deletions(-) commit 83ea0e5e3501decac0afdff25bba2ca1e78f79cc Author: Hannes Reinecke Date: Tue Dec 1 10:16:58 2015 +0100 scsi_dh_alua: use scsi_vpd_tpg_id() Use the common function 'scsi_vpd_tpg_id()' instead of open-coding it in scsi_dh_alua. [mkp: Applied by hand] Signed-off-by: Hannes Reinecke Reviewed-by: Johannes Thumshirn Reviewed-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/device_handler/scsi_dh_alua.c | 37 +++++------------------------- 1 file changed, 6 insertions(+), 31 deletions(-) commit a8aa3978588a4fa2d9edabc151adedd97bbed091 Author: Hannes Reinecke Date: Tue Dec 1 10:16:57 2015 +0100 scsi: Add scsi_vpd_tpg_id() Implement scsi_vpd_tpg_id() to extract the target port group id and the relative port id from SCSI VPD page 0x83. Reviewed-by: Johannes Thumshirn Reviewed-by: Christoph Hellwig Signed-off-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/scsi_lib.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++ include/scsi/scsi_device.h | 1 + 2 files changed, 49 insertions(+) commit 248d4fe95f232010846bc648ce92e40b07544c5d Author: Hannes Reinecke Date: Tue Dec 1 10:16:56 2015 +0100 scsi: export 'wwid' to sysfs Use scsi_vpd_lun_id() to export the world-wide unique id (wwid) to sysfs. Note that this is the 'best' wwid according to the rules in scsi_vpd_lun_id(), not every possible wwid presented by the drive. Signed-off-by: Hannes Reinecke Reviewed-by: Johannes Thumshirn Signed-off-by: Martin K. Petersen drivers/scsi/scsi_sysfs.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 9983bed3907c379d1d30b7509bb0a871ed655f9d Author: Hannes Reinecke Date: Tue Dec 1 10:16:55 2015 +0100 scsi: Add scsi_vpd_lun_id() Add a function scsi_vpd_lun_id() to return a unique device identifcation based on the designation descriptors of VPD page 0x83. As devices might implement several descriptors the order of preference is: - NAA IEE Registered Extended - EUI-64 based 16-byte - EUI-64 based 12-byte - NAA IEEE Registered - NAA IEEE Extended A SCSI name string descriptor is preferred to all of them if the identification is longer than 16 bytes. The returned unique device identification will be formatted as a SCSI Name string to avoid clashes between different designator types. [mkp: Fixed up kernel doc comment from Johannes] Signed-off-by: Hannes Reinecke Reviewed-by: Ewan Milne Reviewed-by: Johannes Thumshirn Reviewed-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/scsi_lib.c | 140 +++++++++++++++++++++++++++++++++++++++++++++ include/scsi/scsi_device.h | 1 + 2 files changed, 141 insertions(+) commit e2d817db32027c25a1702f667fbf0bf6a73fc68c Author: Hannes Reinecke Date: Tue Dec 1 10:16:54 2015 +0100 scsi_dh_alua: simplify sense code handling Most sense code is already handled in the generic code, so we shouldn't be adding special cases here. However, when doing so we need to check for unit attention whenever we're sending an internal command. Signed-off-by: Hannes Reinecke Reviewed-by: Ewan Milne Reviewed-by: Christoph Hellwig Reviewed-by: Johannes Thumshirn Signed-off-by: Martin K. Petersen drivers/scsi/device_handler/scsi_dh_alua.c | 45 +++++++++++------------------- 1 file changed, 17 insertions(+), 28 deletions(-) commit ad0ea64c53f5808e29784812fbb0c300f3a89d39 Author: Hannes Reinecke Date: Tue Dec 1 10:16:53 2015 +0100 scsi_dh_alua: rework alua_check_tpgs() to return the tpgs mode Instead of returning an error code in alua_check_tpgs() we should rather return the tpgs mode directly and have a cleaner syntax. Signed-off-by: Hannes Reinecke Reviewed-by: Johannes Thumshirn Reviewed-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/device_handler/scsi_dh_alua.c | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) commit a7089770b95902854f48b3bc7bec026dc8403286 Author: Hannes Reinecke Date: Tue Dec 1 10:16:52 2015 +0100 scsi_dh_alua: use unaligned access macros Use 'get_unaligned_XX' and 'put_unaligned_XX' instead of open-coding it. Signed-off-by: Hannes Reinecke Reviewed-by: Martin K. Petersen Reviewed-by: Christoph Hellwig Reviewed-by: Johannes Thumshirn Signed-off-by: Martin K. Petersen drivers/scsi/device_handler/scsi_dh_alua.c | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) commit 6c4fc04491754834d5b5be189ee8f49a1d92b433 Author: Hannes Reinecke Date: Tue Dec 1 10:16:51 2015 +0100 scsi_dh_alua: use flag for RTPG extended header We should be using a flag when RTPG extended header is not supported, that saves us sending RTPG twice for older arrays. Signed-off-by: Hannes Reinecke Reviewed-by: Bart Van Assche Reviewed-by: Christoph Hellwig Reviewed-by: Martin K. Petersen Reviewed-by: Johannes Thumshirn Signed-off-by: Martin K. Petersen drivers/scsi/device_handler/scsi_dh_alua.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit 095077ad37043574ce7a3978e92c89f535a6612c Author: Hannes Reinecke Date: Tue Dec 1 10:16:50 2015 +0100 scsi: remove scsi_show_sense_hdr() Last caller is gone, so remove it. Signed-off-by: Hannes Reinecke Reviewed-by: Bart Van Assche Reviewed-by: Christoph Hellwig Reviewed-by: Martin K. Petersen Reviewed-by: Johannes Thumshirn Signed-off-by: Martin K. Petersen include/scsi/scsi_dbg.h | 2 -- 1 file changed, 2 deletions(-) commit dac173ee7e16cb51fc033a2ec9aae38576684735 Author: Hannes Reinecke Date: Tue Dec 1 10:16:49 2015 +0100 scsi_dh_alua: fixup description of stpg_endio() Fixup copy-and-paste error in the description of stpg_endio(). Signed-off-by: Hannes Reinecke Reviewed-by: Christoph Hellwig Reviewed-by: Johannes Thumshirn Reviewed-by: Martin K. Petersen Signed-off-by: Martin K. Petersen drivers/scsi/device_handler/scsi_dh_alua.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 5597cafc7aabc6ba1d218a334090988cb37c016a Author: Hannes Reinecke Date: Tue Dec 1 10:16:48 2015 +0100 scsi_dh_alua: return standard SCSI return codes in submit_rtpg Fixup submit_rtpg() to always return a standard SCSI return code. Signed-off-by: Hannes Reinecke Reviewed-by: Ewan Milne Reviewed-by: Johannes Thumshirn Reviewed-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/device_handler/scsi_dh_alua.c | 33 +++++++++++++++--------------- 1 file changed, 17 insertions(+), 16 deletions(-) commit 80bd68d6bf06bc8851db4b93ee6cb067115098c0 Author: Hannes Reinecke Date: Tue Dec 1 10:16:47 2015 +0100 scsi_dh_alua: use standard logging functions Use standard logging functions instead of hand-crafted ones. Signed-off-by: Hannes Reinecke Reviewed-by: Ewan Milne Reviewed-by: Bart Van Assche Reviewed-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/device_handler/scsi_dh_alua.c | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) commit d3692a3d13e8ee2e371907d67d585d42297b4d66 Author: Hannes Reinecke Date: Tue Dec 1 10:16:46 2015 +0100 scsi_dh_alua: sanitze sense code handling The only check for a valid sense code is calling scsi_normalize_sense() and check the return value. So drop the pointless checks and rely on scsi_normalize_sense() to figure out if the sense code is valid. With that we can also remove the 'senselen' field. Signed-off-by: Hannes Reinecke Reviewed-by: Johannes Thumshirn Reviewed-by: Bart van Assche Reviewed-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/device_handler/scsi_dh_alua.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) commit 6cc05d451cfa876014ef607516f730623e317987 Author: Hannes Reinecke Date: Tue Dec 1 10:16:45 2015 +0100 scsi_dh_alua: improved logging Issue different logging messages if ALUA is not supported or the TPGS setting is invalid. Signed-off-by: Hannes Reinecke Reviewed-by: Martin K. Petersen Reviewed-by: Christoph Hellwig Reviewed-by: Johannes Thumshirn Signed-off-by: Martin K. Petersen drivers/scsi/device_handler/scsi_dh_alua.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 9b80dcec411e8937d94d7ca09da08ed6ca95e6ba Author: Hannes Reinecke Date: Tue Dec 1 10:16:44 2015 +0100 scsi_dh_alua: Use vpd_pg83 information The SCSI device now has the VPD page 0x83 information attached, so there is no need to query it again. [mkp: Fixed a checkpatch warning] Signed-off-by: Hannes Reinecke Reviewed-by: Martin K. Petersen Reviewed-by: Christoph Hellwig Reviewed-by: Johannes Thumshirn Signed-off-by: Martin K. Petersen drivers/scsi/device_handler/scsi_dh_alua.c | 87 +++++++----------------------- 1 file changed, 18 insertions(+), 69 deletions(-) commit db5a6a601ba93c69dd320a0625ce492543c37748 Author: Hannes Reinecke Date: Tue Dec 1 10:16:43 2015 +0100 scsi_dh_alua: Disable ALUA handling for non-disk devices Non-disk devices might support ALUA, but the firmware implementation is untested and frequently broken. As we're don't actually need it disable ALUA support for non-disk device for now. Signed-off-by: Hannes Reinecke Reviewed-by: Bart Van Assche Reviewed-by: Christoph Hellwig Reviewed-by: Martin K. Petersen Reviewed-by: Johannes Thumshirn Signed-off-by: Martin K. Petersen drivers/scsi/device_handler/scsi_dh_alua.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 221255aee67ec1c752001080aafec0c4e9390d95 Author: Hannes Reinecke Date: Tue Dec 1 10:16:42 2015 +0100 scsi: ignore errors from scsi_dh_add_device() device handler initialisation might fail due to a number of reasons. But as device_handlers are optional this shouldn't cause us to disable the device entirely. So just ignore errors from scsi_dh_add_device(). Reviewed-by: Johannes Thumshirn Reviewed-by: Christoph Hellwig Signed-off-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/scsi_sysfs.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 41f95dd2efd80a611c8566888fcdcb5d399ea474 Author: Hannes Reinecke Date: Tue Dec 1 10:16:41 2015 +0100 scsi_dh: move 'dh_state' sysfs attribute to generic code As scsi_dh.c is now always compiled in we should be moving the 'dh_state' attribute to the generic code. Reviewed-by: Christoph Hellwig Reviewed-by: Johannes Thumshirn Signed-off-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/scsi_dh.c | 72 +---------------------------------------------- drivers/scsi/scsi_priv.h | 3 +- drivers/scsi/scsi_sysfs.c | 58 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 60 insertions(+), 73 deletions(-) commit 8cdacf4457670cbd341285a2c76c542ce19ad74b Author: Tom St Denis Date: Mon Nov 30 14:13:11 2015 -0500 amdgpu/gfxv8: Add missing break to switch statement from states init code Signed-off-by: Tom St Denis Reviewed-by: Alex Deucher Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 1 + 1 file changed, 1 insertion(+) commit d033a6de80054139b4358db12cf6bb8d6cf58853 Author: Chunming Zhou Date: Thu Nov 5 15:23:09 2015 +0800 drm/amd: abstract kernel rq and normal rq to priority of run queue Allows us to set priorities in the scheduler. Signed-off-by: Chunming Zhou Reviewed-by: Christian König Reviewed-by: Junwei Zhang drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 11 +++++------ drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 2 +- drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 14 +++++++++----- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 9 +++++++-- 5 files changed, 23 insertions(+), 15 deletions(-) commit ccba7691a580a0967f60a512473ce699b9edac0d Author: Alex Deucher Date: Tue Nov 24 17:43:42 2015 -0500 drm/amdgpu: add EDC support for CZ (v3) This adds EDC support for CZ. EDC = Error Correction and Detection This code properly initializes the EDC hardware and resets the error counts. This is done in late_init since it requires the IB pool which is not initialized during hw_init. v2: fix the IB size as noted by Felix, fix shader pgm register programming v3: use the IB for the shaders as suggested by Christian Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 331 +++++++++++++++++++++++++++++++++- 1 file changed, 330 insertions(+), 1 deletion(-) commit aa5e24e5f8a83b19b1b19964f35562c7a42636e2 Author: Alex Deucher Date: Tue Nov 24 17:42:02 2015 -0500 drm/amd: add new gfx8 register definitions for EDC EDC is a RAS feature for on chip memory. Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/include/asic_reg/gca/gfx_8_0_d.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 061099936a724cdd8dd0d69deea5b064b4f7122b Author: Jason Gerecke Date: Mon Nov 30 17:13:52 2015 -0800 HID: wacom: Rename wacom ID report ID macros "INTUOSREAD" and "INTUOSWRITE" are poorly named. These are report IDs for pen ID (proximity) packets. It should be noted that the latter is only used on Intuos/Intuos2 for a second stylus when DualTrack is in use. Signed-off-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_wac.c | 6 +++--- drivers/hid/wacom_wac.h | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) commit 5f33f430efe3ce2dfe4e9c5eeabb89ea5df145b6 Author: Jason Gerecke Date: Mon Nov 30 17:13:51 2015 -0800 HID: wacom: Clean up value reading Make the logic for reading X, Y, distance, and pressure a bit more clear. An additional bit was stuffed into the packet format many models back, and /most/ devices in use will use it. If we happen to be dealing with a particularly old tablet, just shift it off the end to pretend we never read it. Signed-off-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_wac.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) commit 571f572f9acf7e03fd0e8eb1449e75447295d457 Author: Jason Gerecke Date: Mon Nov 30 17:13:50 2015 -0800 HID: wacom: Further clean up wacom_intuos_general packet decoder Continue re-organizing and trimming cases to make it easier to wrap the brain around. A number of changes were made after consulting the protocol spec and so don't necessarily follow from the code itself. Signed-off-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_wac.c | 87 +++++++++++++++++++++++-------------------------- 1 file changed, 41 insertions(+), 46 deletions(-) commit a8a09c8597bd301437c30ce0a4b2f511349a90aa Author: Jason Gerecke Date: Mon Nov 30 17:13:49 2015 -0800 HID: wacom: Replace magic masks and comparisons with switch cases Reasoning through the conditions under which a particular block of code in 'wacom_intuos_general' will be reached is not at all easy due to the sheer number of magic masks and comparisons. Remove these and replace them with a switch statement over the various 'types' of packets that will be encountered. Signed-off-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_wac.c | 79 ++++++++++++++++++++++++++++++------------------- 1 file changed, 49 insertions(+), 30 deletions(-) commit 16e0a6a0d27f01c47e3685a2a5e6dd2a5b0a525f Author: Jason Gerecke Date: Mon Nov 30 17:13:48 2015 -0800 HID: wacom: Centralize Intuos pen packet decoding Continue to slim down 'wacom_intuos_irq' by moving all decoding and reporting of pen packet data into the 'wacom_intuos_general' function. Signed-off-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_wac.c | 105 +++++++++++++++++++++++++----------------------- 1 file changed, 54 insertions(+), 51 deletions(-) commit c7f0522a1ad1c2a1a23872c96955d60890f453e4 Author: Jason Gerecke Date: Mon Nov 30 17:13:47 2015 -0800 HID: wacom: Slim down wacom_intuos_pad processing Seperate the function into two halves: first gather data from the packet, next report all gathered data. The input subsystem should automatically mute any events that aren't actually declared for the tablet at hand. Signed-off-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_wac.c | 277 +++++++++++++++--------------------------------- 1 file changed, 86 insertions(+), 191 deletions(-) commit fb013a01d48d71a68cd14ea30181754f93acae21 Author: Jason Gerecke Date: Mon Nov 30 17:13:46 2015 -0800 HID: wacom: Move Intuos pad handling code into dedicated function Begin slimming down the body of 'wacom_intuos_irq' by moving out its largest block of code to a dedicated 'wacom_intuos_pad' function. Signed-off-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_wac.c | 482 +++++++++++++++++++++++++----------------------- 1 file changed, 247 insertions(+), 235 deletions(-) commit 117ce394f2393a2ecfbeb1fbd3930c8cc831ac96 Merge: 6cc56834 17652c6 Author: David S. Miller Date: Wed Dec 2 15:32:50 2015 -0500 Merge branch '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== Intel Wired LAN Driver Updates 2015-12-01 This series contains updates to i40e and i40evf only. Helin adds new fields to i40e_vsi to store user configured RSS config data and the code to use it. Also renamed RSS items to clarify functionality and scope to users. Fixed a confusing kernel message of enabling RSS size by reporting it together with the hardware maximum RSS size. Anjali fixes the issue of forcing writeback too often causing us to not benefit from NAPI. Jesse adds a prefetch for data early in the transmit path to help immensely for pktgen and forwarding workloads. Fixed the i40e driver that was possibly sleeping inside critical section of code. Carolyn fixes an issue where adminq init failures always provided a message that NVM was newer than expected, when this is not always the case for init_adminq failures. Fixed by adding a check for that specific error condition and a different helpful message otherwise. Mitch fixes error message by telling the user which VF is being naughty, rather than making them guess. Updated the queue_vector array from a statically-sized member of the adapter structure, to a dynamically-allocated and -sized array. This reduces the size of the adapter structure and allows us to support any number of queue vectors in the future without changing the code. ==================== Signed-off-by: David S. Miller commit ce3d3f0e43982685c6bf002ae24a267867762e75 Merge: 8400ddf 474d147 Author: Mark Brown Date: Wed Dec 2 20:22:31 2015 +0000 Merge branch 'fix/sun4i-codec' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-sunxi commit 1d3029cc5f17081afdc2d6b7b50f9d0366cdbae1 Author: Sudip Mukherjee Date: Wed Dec 2 19:17:51 2015 +0530 spi: butterfly: use new parport device model Modify spi-butterfly driver to use the new parallel port device model. Signed-off-by: Sudip Mukherjee Signed-off-by: Mark Brown drivers/spi/spi-butterfly.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit e71fec7352c83af889ea36e164f1f6f895b0aaaf Author: Sudip Mukherjee Date: Wed Dec 2 19:17:50 2015 +0530 spi: butterfly: correct alignment checkpatch complains about the allignment with open parenthesis. Signed-off-by: Sudip Mukherjee Signed-off-by: Mark Brown drivers/spi/spi-butterfly.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit b12fe7250cf013622d064a280b87b19448d26d00 Author: Sudip Mukherjee Date: Wed Dec 2 19:17:49 2015 +0530 spi: butterfly: remove cast to void checkpatch was complaining about space after cast. But the cast to void is not required at that place. Signed-off-by: Sudip Mukherjee Signed-off-by: Mark Brown drivers/spi/spi-butterfly.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1bfa91e9255065e8f5b8aef869eee57b8badf61e Author: Sudip Mukherjee Date: Wed Dec 2 19:17:48 2015 +0530 spi: butterfly: remove multiple blank lines checkpatch complains about multiple blank lines. Signed-off-by: Sudip Mukherjee Signed-off-by: Mark Brown drivers/spi/spi-butterfly.c | 9 --------- 1 file changed, 9 deletions(-) commit 92a513b79f942dd86f906512352e2c6d7eca1d8b Author: Thierry Reding Date: Wed Dec 2 17:32:53 2015 +0100 regulator: wm831x-ldo: Use platform_register/unregister_drivers() These new helpers simplify implementing multi-driver modules and properly handle failure to register one driver by unregistering all previously registered drivers. Signed-off-by: Thierry Reding Signed-off-by: Mark Brown drivers/regulator/wm831x-ldo.c | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) commit 55e03e9c2d6909fd449cdcec9e933f6907f4820e Author: Thierry Reding Date: Wed Dec 2 17:32:52 2015 +0100 regulator: wm831x-dcdc: Use platform_register/unregister_drivers() These new helpers simplify implementing multi-driver modules and properly handle failure to register one driver by unregistering all previously registered drivers. Signed-off-by: Thierry Reding Signed-off-by: Mark Brown drivers/regulator/wm831x-dcdc.c | 31 +++++++++---------------------- 1 file changed, 9 insertions(+), 22 deletions(-) commit 7629cef11200bccb63ce5a629a4d0602e7f85555 Author: Thierry Reding Date: Wed Dec 2 17:32:51 2015 +0100 regulator: lp8788-ldo: Use platform_register/unregister_drivers() These new helpers simplify implementing multi-driver modules and properly handle failure to register one driver by unregistering all previously registered drivers. Signed-off-by: Thierry Reding Signed-off-by: Mark Brown drivers/regulator/lp8788-ldo.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) commit 7221819ac48195ea9f1e179c3f812939319d9e7b Author: Nizam Haider Date: Mon Nov 23 23:37:16 2015 +0530 Staging: iio: frequency: use dev_get_platdata() Use the wrapper function for retrieving the platform data instead of accessing dev->platform_data directly. Signed-off-by: Nizam Haider Signed-off-by: Jonathan Cameron drivers/staging/iio/frequency/ad9832.c | 2 +- drivers/staging/iio/frequency/ad9834.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit a260527f83dfebe7c49bd6582ed6aa1be29f355a Author: Nizam Haider Date: Mon Nov 23 23:18:50 2015 +0530 Staging: iio: light: tsl2x7x_core: use dev_get_platdata() Use the wrapper function for retrieving the platform data instead of accessing dev->platform_data directly. Signed-off-by: Nizam Haider Signed-off-by: Jonathan Cameron drivers/staging/iio/light/tsl2x7x_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 22b19ab3e2d6da666be816e649af67bf721b8561 Author: Nizam Haider Date: Mon Nov 23 23:03:07 2015 +0530 Staging: iio: adc: use dev_get_platdata() Use the wrapper function for retrieving the platform data instead of accessing dev->platform_data directly. Signed-off-by: Nizam Haider Signed-off-by: Jonathan Cameron drivers/staging/iio/adc/ad7192.c | 2 +- drivers/staging/iio/adc/ad7280a.c | 2 +- drivers/staging/iio/adc/ad7816.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit f0e5f57d3ac25aa2afb25dc94d2b42a8defa8a19 Author: Adriana Reus Date: Tue Nov 24 12:59:51 2015 +0200 iio: light: us8152d: Add power management support Add power management for sleep as well as runtime pm. Signed-off-by: Adriana Reus Signed-off-by: Jonathan Cameron drivers/iio/light/us5182d.c | 95 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 88 insertions(+), 7 deletions(-) commit a22a3c5c40deb31f03c2810a46e669bedbf476c5 Author: Adriana Reus Date: Tue Nov 24 12:59:50 2015 +0200 iio: light: us5182d: Add functions for selectively enabling als and proximity Keep track of the als and px enabled/disabled status in order to enable them selectively. Signed-off-by: Adriana Reus Signed-off-by: Jonathan Cameron drivers/iio/light/us5182d.c | 66 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 62 insertions(+), 4 deletions(-) commit 023e30fb0d3a3b9d6b8dc9e47590aa544d58a22f Author: Adriana Reus Date: Tue Nov 24 12:59:49 2015 +0200 Documentation: devicetree: Add property for controlling power saving mode for the us5182 als sensor Add a property to allow changing the default power-saving mode. By default, at read raw the chip will activate and provide one measurent, then it will shut itself down. However, the chip can also work in "continuous" mode which may be more reliable but is also more power consuming. Signed-off-by: Adriana Reus Acked-by: Rob Herring Signed-off-by: Jonathan Cameron Documentation/devicetree/bindings/iio/light/us5182d.txt | 11 +++++++++++ 1 file changed, 11 insertions(+) commit c3304c212326cfcabb1faf6a0035d0c631778d5b Author: Adriana Reus Date: Tue Nov 24 12:59:48 2015 +0200 iio: light: us5182d: Add property for choosing default power mode This chip supports two power modes. 1. "one-shot" mode - the chip activates and executes one complete conversion loop and then shuts itself down. This is the default mode chosen for raw reads. 2. "continuous" mode - the chip takes continuous measurements. Continuous mode is more expensive power-wise but may be more reliable. Add a property so that if preferred, the default power mode for raw reads can be set to continuous. Separate one-shot enabling in a separate function that will be used depending on the chosen power mode. Also create a function for powering the chip on and off. Signed-off-by: Adriana Reus Signed-off-by: Jonathan Cameron drivers/iio/light/us5182d.c | 90 +++++++++++++++++++++++++++++++++++++++------ 1 file changed, 78 insertions(+), 12 deletions(-) commit 930cc0f39b07a830e6939c5634f9a310f306c4b1 Author: Sascha Hauer Date: Fri Nov 27 14:52:52 2015 +0100 dt-bindings: iio: adc: Update mcp342x binding for the mcp3421 The mcp3421 is the single channel variant of the mcp342x family and can be supported by the mcp342x driver. Signed-off-by: Sascha Hauer Cc: devicetree@vger.kernel.org Acked-by: Rob Herring Signed-off-by: Jonathan Cameron Documentation/devicetree/bindings/iio/adc/mcp3422.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 78f16dbda5eee2f9379a6313cd01792160e2ec70 Author: Sascha Hauer Date: Fri Nov 27 14:52:51 2015 +0100 iio: adc: mcp3422: Add mcp3421 support The mcp3421 is the single channel variant of the mcp342x family. Support is straight forward, only the channels array has to be added for this chip. Signed-off-by: Sascha Hauer Signed-off-by: Jonathan Cameron drivers/iio/adc/mcp3422.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit d352c0e1f32e168e20d14d666a73f3712fbdc1f5 Author: Thierry Reding Date: Wed Dec 2 09:28:03 2015 -0800 Input: sparcspkr - use platform_register/unregister_drivers() These new helpers simplify implementing multi-driver modules and properly handle failure to register one driver by unregistering all previously registered drivers. Signed-off-by: Thierry Reding Signed-off-by: Dmitry Torokhov drivers/input/misc/sparcspkr.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) commit f728643001397cee39dcfabff6458a5fbc3baecf Author: Martin Wilck Date: Fri Nov 20 14:32:33 2015 +0100 tpm_tis: further simplify calculation of ordinal duration commit 07b133e6060b ("char/tpm: simplify duration calculation and eliminate smatch warning.") includes a misleading test that is always false. The tpm_ordinal_duration table is only valid for TPM_PROTECTED ordinals where the higher 16 bits are all 0, anyway. Signed-off-by: Martin Wilck Reviewed-by: Jarkko Sakkinen Tested-by: Jarkko Sakkinen Signed-off-by: Jarkko Sakkinen Acked-by: Peter Huewe drivers/char/tpm/tpm-interface.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 623fc3b7bdbfd64536576f71f87652385d4d88fc Author: Daniel Vetter Date: Mon Nov 23 10:32:38 2015 +0100 drm/radeon: Use unlocked gem unreferencing For drm_gem_object_unreference callers are required to hold dev->struct_mutex, which these paths don't. Enforcing this requirement has become a bit more strict with commit ef4c6270bf2867e2f8032e9614d1a8cfc6c71663 Author: Daniel Vetter Date: Thu Oct 15 09:36:25 2015 +0200 drm/gem: Check locking in drm_gem_object_unreference Cc: Alex Deucher Reviewed-by: Christian König Signed-off-by: Daniel Vetter Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon_fb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a9906fde57b690c5e606daf8c5994850a5abfc84 Author: Daniel Vetter Date: Mon Nov 23 10:32:37 2015 +0100 drm/amdgpu: Use unlocked gem unreferencing For drm_gem_object_unreference callers are required to hold dev->struct_mutex, which these paths don't. Enforcing this requirement has become a bit more strict with commit ef4c6270bf2867e2f8032e9614d1a8cfc6c71663 Author: Daniel Vetter Date: Thu Oct 15 09:36:25 2015 +0200 drm/gem: Check locking in drm_gem_object_unreference Cc: Alex Deucher Reviewed-by: Christian König Signed-off-by: Daniel Vetter Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f930b2e8628f4e6e818ea69a426a2b732679e15b Author: monk.liu Date: Thu Oct 29 15:33:06 2015 +0800 drm/amdgpu: Use new read bios from rom callback Read the vbios directly from the rom. In some cases, e.g., virtualization, the rom is not available via the BAR or other means. Access it directly. This is an updated version of Monks original patch which uses family specific callbacks and unifies some of the validation checking. Reviewed-by: Christian König Reviewed-by: Jammy Zhou Signed-off-by: Monk Liu Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c | 58 +++++++++++++++++++++++++++----- 1 file changed, 50 insertions(+), 8 deletions(-) commit 95addb2ae06f46cd13346ed87bbda3990438a69b Author: Alex Deucher Date: Tue Nov 24 10:37:54 2015 -0500 drm/amdgpu: add read_bios_from_rom callback for VI parts Read the vbios image directly from the rom. Reviewed-by: Jammy Zhou Reviewed-by: Christian König Reviewed-by: Monk Liu Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/vi.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) commit 1eb22bd38ac58a1be6e7e0ae6dd4ab6d604a27d6 Author: Alex Deucher Date: Tue Nov 24 10:34:45 2015 -0500 drm/amdgpu: add read_bios_from_rom callback for CI parts Read the vbios image directly from the rom. Reviewed-by: Jammy Zhou Reviewed-by: Christian König Reviewed-by: Monk Liu Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/cik.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) commit 7946b878038d5113262d6eae09ff22fb2956351f Author: Alex Deucher Date: Tue Nov 24 10:14:28 2015 -0500 drm/amdgpu: add a callback for reading the bios from the rom directly This is necessary when the vbios image is not directly accessible via the rom BAR or legacy vga location. Reviewed-by: Jammy Zhou Reviewed-by: Christian König Reviewed-by: Monk Liu Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu.h | 3 +++ 1 file changed, 3 insertions(+) commit d26678da532401bd9227c8d79e902e59439b0140 Author: Julia Lawall Date: Sun Nov 29 17:12:41 2015 +0100 drm/radeon: constify radeon_asic_ring structures The radeon_asic_ring structures are never modified, so declare them as const. Done with the help of Coccinelle. Reviewed-by: Christian König Signed-off-by: Julia Lawall Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon.h | 2 +- drivers/gpu/drm/radeon/radeon_asic.c | 38 ++++++++++++++++++------------------ 2 files changed, 20 insertions(+), 20 deletions(-) commit 288912cb95d156ad9fbb626b0b05d714c2ec8c8e Author: Jammy Zhou Date: Tue Nov 24 16:55:20 2015 +0800 drm/amdgpu: use $(src) in Makefile (v2) This can solve the path problem when compile amdgpu with DKMS. v2: agd: rebase on current drm-next Signed-off-by: Jammy Zhou Acked-by: Alex Deucher Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/Makefile | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit dbb17a21c131eca94eb31136eee9a7fe5aff00d9 Author: Alex Deucher Date: Tue Nov 24 14:32:44 2015 -0500 drm/radeon: call hpd_irq_event on resume Need to call this on resume if displays changes during suspend in order to properly be notified of changes. Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/radeon_device.c | 1 + 1 file changed, 1 insertion(+) commit 54fb2a5cd0baf8e97d743de411e2f832d1afa68d Author: Alex Deucher Date: Tue Nov 24 14:30:56 2015 -0500 drm/amdgpu: call hpd_irq_event on resume Need to call this on resume if displays changes during suspend in order to properly be notified of changes. Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 1 + 1 file changed, 1 insertion(+) commit 8333f607a6317565a71f286728cf6a1f08e56004 Author: Alex Deucher Date: Mon Nov 23 13:13:45 2015 -0500 drm/radeon: remove UMS support It's been deprecated behind a kconfig option for almost two years and hasn't really been supported for years before that. DDX support was dropped more than three years ago. Acked-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/Kconfig | 9 - drivers/gpu/drm/radeon/Makefile | 4 - drivers/gpu/drm/radeon/drm_buffer.c | 177 -- drivers/gpu/drm/radeon/drm_buffer.h | 148 -- drivers/gpu/drm/radeon/r300_cmdbuf.c | 1186 ------------ drivers/gpu/drm/radeon/r600_blit.c | 874 --------- drivers/gpu/drm/radeon/r600_cp.c | 2660 --------------------------- drivers/gpu/drm/radeon/r600_cs.c | 95 - drivers/gpu/drm/radeon/radeon_cp.c | 2243 ----------------------- drivers/gpu/drm/radeon/radeon_drv.c | 97 - drivers/gpu/drm/radeon/radeon_drv.h | 2048 --------------------- drivers/gpu/drm/radeon/radeon_irq.c | 402 ---- drivers/gpu/drm/radeon/radeon_mem.c | 302 --- drivers/gpu/drm/radeon/radeon_state.c | 3261 --------------------------------- 14 files changed, 13506 deletions(-) commit 0eea505058740aa45486145296ef4fefbd8cab85 Merge: 5e0baca 31ade3b Author: Dmitry Torokhov Date: Wed Dec 2 09:33:25 2015 -0800 Merge tag 'v4.4-rc3' into next Merge with Linux 4.4-rc3 to bring in helpers for multiu-driver modules. commit 70a7fb80e85ae7f78f8e90cec3fbd862ea6a4d4b Author: Thierry Reding Date: Wed Dec 2 16:54:50 2015 +0100 regulator: core: Fix nested locking of supplies Commit fa731ac7ea04 ("regulator: core: avoid unused variable warning") introduced a subtle change in how supplies are locked. Where previously code was always locking the regulator of the current iteration, the new implementation only locks the regulator if it has a supply. For any given power tree that means that the root will never get locked. On the other hand the regulator_unlock_supply() will still release all the locks, which in turn causes the lock debugging code to warn about a mutex being unlocked which wasn't locked. Cc: Mark Brown Cc: Arnd Bergmann Fixes: Fixes: fa731ac7ea04 ("regulator: core: avoid unused variable warning") Signed-off-by: Thierry Reding Signed-off-by: Mark Brown drivers/regulator/core.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 49a6bb7a1c0963f260e4b0dcc2c0e56ec65a28b2 Author: Mark Brown Date: Tue Dec 1 15:51:52 2015 +0000 regulator: core: Ensure we lock all regulators The latest workaround for the lockdep interface's not using the second argument of mutex_lock_nested() changed the loop missed locking the last regulator due to a thinko with the loop termination condition exiting one regulator too soon. Reported-by: Tyler Baker Signed-off-by: Mark Brown drivers/regulator/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 82bd59bcb310898ea3a0303b847935a85ea24d8c Author: Colin Ian King Date: Wed Dec 2 11:49:53 2015 +0000 ALSA: usx2y: fix inconsistent indenting on if statement minor change, indenting is one tab out. Signed-off-by: Colin Ian King Signed-off-by: Takashi Iwai sound/usb/usx2y/usbusx2yaudio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5502acf4aa643945c61c2a3937a5aade48479af4 Author: Bjorn Andersson Date: Tue Dec 1 14:47:50 2015 -0800 ARM: defconfig: multi_v7: Enable Qualcomm options for Honami The Honami device does not boot due to the lack of pinctrl support compiled in with the multi_v7_defconfig. This patch correct this and enables coincell, sdhci, smsm, smp2p and wcnss_ctrl as well, all found on a variety of Qualcomm boards. Reported-by: Kevin Hilman Signed-off-by: Bjorn Andersson Tested-by: Kevin Hilman Signed-off-by: Kevin Hilman arch/arm/configs/multi_v7_defconfig | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 73e7d63efb4d774883a338997943bfa59e127085 Author: Benjamin Tissoires Date: Tue Dec 1 12:41:38 2015 +0100 HID: multitouch: fix input mode switching on some Elan panels as reported by https://bugzilla.kernel.org/show_bug.cgi?id=108481 This bug reports mentions 6d4f5440 ("HID: multitouch: Fetch feature reports on demand for Win8 devices") as the origin of the problem but this commit actually masked 2 firmware bugs that are annihilating each other: The report descriptor declares two features in reports 3 and 5: 0x05, 0x0d, // Usage Page (Digitizers) 318 0x09, 0x0e, // Usage (Device Configuration) 320 0xa1, 0x01, // Collection (Application) 322 0x85, 0x03, // Report ID (3) 324 0x09, 0x22, // Usage (Finger) 326 0xa1, 0x00, // Collection (Physical) 328 0x09, 0x52, // Usage (Inputmode) 330 0x15, 0x00, // Logical Minimum (0) 332 0x25, 0x0a, // Logical Maximum (10) 334 0x75, 0x08, // Report Size (8) 336 0x95, 0x02, // Report Count (2) 338 0xb1, 0x02, // Feature (Data,Var,Abs) 340 0xc0, // End Collection 342 0x09, 0x22, // Usage (Finger) 343 0xa1, 0x00, // Collection (Physical) 345 0x85, 0x05, // Report ID (5) 347 0x09, 0x57, // Usage (Surface Switch) 349 0x09, 0x58, // Usage (Button Switch) 351 0x15, 0x00, // Logical Minimum (0) 353 0x75, 0x01, // Report Size (1) 355 0x95, 0x02, // Report Count (2) 357 0x25, 0x03, // Logical Maximum (3) 359 0xb1, 0x02, // Feature (Data,Var,Abs) 361 0x95, 0x0e, // Report Count (14) 363 0xb1, 0x03, // Feature (Cnst,Var,Abs) 365 0xc0, // End Collection 367 The report ID 3 presents 2 input mode features, while only the first one is handled by the device. Given that we did not checked if one was previously assigned, we were dealing with the ignored featured and we should never have been able to switch this panel into the multitouch mode. However, the firmware presents an other bugs which allowed 6d4f5440 to counteract the faulty report descriptor. When we request the values of the feature 5, the firmware answers "03 03 00". The fields are correct but the report id is wrong. Before 6d4f5440, we retrieved all the features and injected them in the system. So when we called report 5, we injected in the system the report 3 with the values "03 00". Setting the second input mode to 03 in this report changed it to "03 03" and the touchpad switched to the mt mode. We could have set anything in the second field because the actual value (the first 03 in this report) was given by the query of report ID 5. To sum up: 2 bugs in the firmware were hiding that we were accessing the wrong feature. Signed-off-by: Benjamin Tissoires Signed-off-by: Jiri Kosina drivers/hid/hid-multitouch.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit b9b7aebb42d1b1392f3111de61136bb6cf3aae3f Author: Yury Norov Date: Wed Dec 2 14:00:10 2015 +0000 arm64: fix COMPAT_SHMLBA definition for large pages ARM glibc uses (4 * __getpagesize()) for SHMLBA, which is correct for 4KB pages and works fine for 64KB pages, but the kernel uses a hardcoded 16KB that is too small for 64KB page based kernels. This changes the definition to what user space sees when using 64KB pages. Acked-by: Arnd Bergmann Signed-off-by: Yury Norov Signed-off-by: Will Deacon arch/arm64/include/asm/shmparam.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 31e98e0d24cd2537a63e06e235e050a06b175df7 Author: Lucas Stach Date: Mon Nov 30 18:00:11 2015 +0100 ARM: imx_v6_v7_defconfig: enable PCI_MSI This has been stable on i.MX6 for a good while now and there is no reason to keep it disabled, as it allows to allocate non-shared IRQs if several PCIe devices are connected to a single host. Signed-off-by: Lucas Stach Signed-off-by: Shawn Guo arch/arm/configs/imx_v6_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit c20737a2a7b8666648be3f4b386749339958dace Author: Patrick Brünn Date: Wed Dec 2 10:16:37 2015 +0100 clk: imx5: ipu_di_sel clocks can set parent rates To obtain exact pixel clocks, allow the DI clock selectors to influence the PLLs that they are derived from. Commit 4591b13289b5 ("ARM: i.MX6: ipu_di_sel clocks can set parent rates") did this for i.MX6. Port it to enable high display resolutions on i.MX53 based platforms such as CX9020 Embedded PC, too. Signed-off-by: Patrick Brünn Signed-off-by: Shawn Guo drivers/clk/imx/clk-imx51-imx53.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 460146348518a1c4e810d01baf81847f8c6a1c73 Merge: bb11c6c 2f8a43d4 Author: Paolo Bonzini Date: Wed Dec 2 13:50:04 2015 +0100 Merge tag 'kvm-s390-next-4.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD KVM: s390 features, kvm_get_vcpu_by_id and stat Several features for s390 1. ESCA support (up to 248 vCPUs) 2. KVM detection: we can now detect if we support KVM (e.g. does KVM under KVM work?) kvm_stat: 1. cleanup the exit path kvm_get_vcpu_by_id: 1. Use kvm_get_vcpu_by_id where appropriate 2. Apply a heuristic to optimize for ID VCPU == No. VCPU commit a7c61a3452d39078919f0e1f493ff966fb64f0db Author: Jisheng Zhang Date: Fri Nov 20 17:59:10 2015 +0800 arm64: add __init/__initdata section marker to some functions/variables These functions/variables are not needed after booting, so mark them as __init or __initdata. Signed-off-by: Jisheng Zhang Signed-off-by: Will Deacon arch/arm64/kernel/armv8_deprecated.c | 6 +++--- arch/arm64/kernel/cpufeature.c | 9 +++++---- arch/arm64/kernel/fpsimd.c | 2 +- arch/arm64/mm/dma-mapping.c | 4 ++-- arch/arm64/mm/init.c | 6 +++--- 5 files changed, 14 insertions(+), 13 deletions(-) commit 20bb0184f24df64d1ed4fa07c8feeeffda9b7721 Author: Charles Keepax Date: Wed Dec 2 10:22:16 2015 +0000 ASoC: dapm: Make enable/disable_pin work with always on widgets Always on widgets currently have some odd interactions with DAPM. Enabling/disabling a widget (snd_soc_dapm_enable_pin) then connecting it to a path works as expected, ie. when the widget is disabled the path doesn't power up and it does when the widget is enabled. However once in a path enabling the widget does not cause anything to power up, dapm_widget_set_power will return the current power state of the widget as 1, meaning we never check peer power states. This patch updates dapm_always_on_check_power to return w->connected such that it is effected by snd_soc_dapm_enable_pin and the like. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/soc-dapm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bffce907d64042b5683ed3076e839d0249606264 Author: Jani Nikula Date: Tue Dec 1 16:29:26 2015 +0200 drm/i915: abstract i2c bit banging fallback in gmbus xfer Choose between i2c bit banging and gmbus in a new higher level function, and let the i2c core retry the first time we fall back to bit banging. The i2c core imposes a timeout on -EAGAIN, but it defaults to 1 second, and shouldn't be a problem for us. Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1448980166-23055-2-git-send-email-jani.nikula@intel.com drivers/gpu/drm/i915/intel_i2c.c | 39 +++++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 14 deletions(-) commit 0aeb904888f52f48ca0cc7dfec2c2f540d2a762a Author: Jani Nikula Date: Tue Dec 1 16:29:25 2015 +0200 drm/i915: simplify gmbus xfer error checks Shorter, easier to follow code with no functional changes. In all cases, the return value ultimately comes from gmbus_wait_hw_status() anyway. Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1448980166-23055-1-git-send-email-jani.nikula@intel.com drivers/gpu/drm/i915/intel_i2c.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit f98ed119a7c5feacb1fc1c8d7f6c68934cd27384 Author: Kuninori Morimoto Date: Wed Dec 2 07:34:28 2015 +0000 ASoC: rsnd: care SWSP bit for TDM/non-TDM SSICR::SWSP bit controls WS signal low/high, but in case of TDM it is inverted. This patch solves this issue. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/ssi.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 79bd23dadf613fb5ebc1d9aa178fd7129c3e059c Author: Ville Syrjälä Date: Tue Dec 1 23:32:07 2015 +0200 drm/i915: Add "missing" break to haswell_get_ddi_pll() While not technically needed on the last case in the switch statement, the 'break' makes it look better IMO. v2: Fixed a typo in the commit message (Paulo) Signed-off-by: Ville Syrjälä Reviewed-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/1449005527-15617-1-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/i915/intel_display.c | 1 + 1 file changed, 1 insertion(+) commit e4abb733bb72ab447120d0887083b7dc4847c557 Author: Ville Syrjälä Date: Tue Dec 1 23:31:33 2015 +0200 drm/i915: Check VBT for CRT port presence on HSW/BDW Unfortunatey there appear to quite a few HSW/BDW machines (eg. NUCs, Brix Pro) in the wild with LPT/WPT-H that have no physical CRT connector and non-working FDI. FDI training fails every single time on these machines. Dunno, maybe they just didn't bother wiring it up or something? Unfortunately all the fuse bits and whatnot are telling us that the CRT connector is present. And so what we get from this is tons of false positives from the CI systems due to VGA connector forcing. I've not found any way to detect this purely from hardware, so we have to resort to looking at the VBT int_crt_support bit. We used to check this bit on all platforms, but that broke all the old machines, so the check was then restricted to VLV only in commit 84b4e042c470 ("drm/i915: only apply crt_present check on VLV") Considering HSW and VLV VBT probably got defined around the same time, it should be reasonably safe to assume that the bits is sane for HSW/BDW as well. At least I have one copy of some VBT spec here that says it's meant for both VLV and HSW, and it knows about the bit (lists it being valid from version 155 onwards). Also I have two desktop machines with actual CRT ports and both have int_crt_support==1 in their VBTs. Also we already trust VBT >= 155 to tell us various details about the DDI ports, so trusting it a bit more seems reasonable. As far as VLV goes, the added VBT version check should be fine. Even if someone has some weird VLV machine with a very old VBT version, it just means they'll end up with a shadow CRT connector. IIRC the reason for eliminating the shadow CRT connector on VLV was to speed up display probing rather than fixing something more serious. v2: Move the platform checks into the VBT parsing code Also check that the VBT version is at least 155 v3: Improve commit message (Paulo) Cc: Chris Wilson Signed-off-by: Ville Syrjälä Reviewed-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/1449005493-15487-1-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/i915/intel_bios.c | 5 ++++- drivers/gpu/drm/i915/intel_display.c | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) commit 70ac54d08244b9e9a416b0c76023dc6e9b73165e Author: Ville Syrjälä Date: Tue Dec 1 23:29:56 2015 +0200 drm/i915: Don't register CRT connector when DDI E can't be used On HSW/BDW DDI A and E share 2 lanes, so when DDI A requires the shared lanes DDI E can't be used. The lanes are not supposed to be dynamically switched between the two uses, so there's no point in registering the CRT connector when DDI E has no lanes. v2: Fix typos in the commit message (Paulo) Signed-off-by: Ville Syrjälä Reviewed-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/1449005396-15319-1-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/i915/intel_display.c | 4 ++++ 1 file changed, 4 insertions(+) commit 65e472e43355488a4727db5dc9ce667d7d05b35e Author: Ville Syrjälä Date: Tue Dec 1 23:28:55 2015 +0200 drm/i915: Don't register the CRT connector when it's fused off on LPT-H LPT-H has a strap bit for fused off CRT block. Check it to see if we should register the CRT connector or not. Supposedly this also forces the ADAP enable bit to 0, so the detection we added in commit 6c03a6bd0dd8 ("drm/i915: Don't register CRT connector when it's fused off") should already catch it, but checking the fuse bit should at least do no harm. v2: Use HAS_PCH_LPT_H() (Paulo) Signed-off-by: Ville Syrjälä Reviewed-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/1449005335-15192-1-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/i915/i915_reg.h | 1 + drivers/gpu/drm/i915/intel_display.c | 3 +++ 2 files changed, 4 insertions(+) commit 4e7f8cfbd22755844094caaac2d9f49d2b77fd8c Author: Ville Syrjälä Date: Mon Nov 30 16:23:47 2015 +0200 drm/i915: Use cached cdclk_freq for PWM calculations No need to read out cdclk from the hardware, we have it already cached in dev_priv. Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1448893432-6978-7-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Jani Nikula drivers/gpu/drm/i915/intel_panel.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit fce18c4cf5fac09153dff8c8726d1eabd02e59ea Author: Ville Syrjälä Date: Mon Nov 30 16:23:46 2015 +0200 drm/i915: Round the AUX clock divider to closest on all platforms Currently we round the AUX clock divider down on g4x, to closest on HSW/BDW port A, and up everywhere else. We are supposed to get as close to 2MHz as we can, so round to closest seems like the best option. Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1448893432-6978-6-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Jani Nikula drivers/gpu/drm/i915/intel_dp.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit a612c405563c44e61d28218741393d1dab8a6d4f Author: Ville Syrjälä Date: Mon Nov 30 16:23:45 2015 +0200 drm/i915: Kill duplicated PNV .get_display_clock_speed() assignment Somehow we accumulated a duplicated .get_display_clock_speed() assignment for PNV in commit 34edce2fea69 ("drm/i915: Add cdclk extraction for g33, g965gm and g4x") No real harm on having two, we just never reach the second one, so simply kill it. Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1448893432-6978-5-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Daniel Vetter Reviewed-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 3 --- 1 file changed, 3 deletions(-) commit 56f5f7007dee07bdc109061c87a94eadd58e64b8 Author: Ville Syrjälä Date: Mon Nov 30 16:23:44 2015 +0200 drm/i915: Add HAS_PCH_LPT_H() We have HAS_PCH_LPT_LP() already, so add HAS_PCH_LPT_H() and use it where appropriate. Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1448893432-6978-4-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Jani Nikula drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/intel_dp.c | 2 +- drivers/gpu/drm/i915/intel_panel.c | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) commit 83d83392e3e5432a9240e6b060119f01d27f2a30 Author: Ville Syrjälä Date: Mon Nov 30 16:23:43 2015 +0200 drm/i915: Fix vbt PWM max setup for CTG CTG uses hrawclk for backlight, so calculate the max based on that instead of cdclk. Fixes: aa17cdb4f836 ("drm/i915: initialize backlight max from VBT") Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1448893432-6978-3-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Jani Nikula drivers/gpu/drm/i915/intel_panel.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 245f586876eefc55438f0d65856fbe15de8dadca Author: Ville Syrjälä Date: Mon Nov 30 16:23:42 2015 +0200 drm/i915: Fix VBT backlight Hz to PWM conversion for PNV Convert the MHz number coming from intel_rawclk() into Hz in i9xx_hz_to_pwm() on PNV. Otherwise we'll get something totally bogus as a result. Fixes: aa17cdb4f836 ("drm/i915: initialize backlight max from VBT") Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1448893432-6978-2-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Jani Nikula drivers/gpu/drm/i915/intel_panel.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d1e1cf2e38def301fde42c1a33f896f974941d7b Author: Anton Blanchard Date: Thu Oct 29 11:44:11 2015 +1100 powerpc: clean up asm/switch_to.h Remove a bunch of unnecessary fallback functions and group things in a more logical way. Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman arch/powerpc/include/asm/switch_to.h | 35 ++++++++++------------------------- arch/powerpc/kernel/process.c | 2 +- 2 files changed, 11 insertions(+), 26 deletions(-) commit f3d885ccba8539f62e8be3ba29ecf91687120252 Author: Anton Blanchard Date: Thu Oct 29 11:44:10 2015 +1100 powerpc: Rearrange __switch_to() Most of __switch_to() is housekeeping, TLB batching, timekeeping etc. Move these away from the more complex and critical context switching code. Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman arch/powerpc/kernel/process.c | 52 +++++++++++++++++++++---------------------- 1 file changed, 26 insertions(+), 26 deletions(-) commit 579e633e764e6e5f7784b74e7df3e81fe11f40de Author: Anton Blanchard Date: Thu Oct 29 11:44:09 2015 +1100 powerpc: create flush_all_to_thread() Create a single function that flushes everything (FP, VMX, VSX, SPE). Doing this all at once means we only do one MSR write. Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman arch/powerpc/include/asm/switch_to.h | 1 + arch/powerpc/kernel/process.c | 22 ++++++++++++++++++---- arch/powerpc/kernel/swsusp.c | 4 +--- arch/powerpc/kvm/book3s_hv.c | 5 ++--- 4 files changed, 22 insertions(+), 10 deletions(-) commit c208505900b232ecdc81dee54cb3a032e75d88d6 Author: Anton Blanchard Date: Thu Oct 29 11:44:08 2015 +1100 powerpc: create giveup_all() Create a single function that gives everything up (FP, VMX, VSX, SPE). Doing this all at once means we only do one MSR write. A context switch microbenchmark using yield(): http://ozlabs.org/~anton/junkcode/context_switch2.c ./context_switch2 --test=yield --fp --altivec --vector 0 0 shows an improvement of 3% on POWER8. Signed-off-by: Anton Blanchard [mpe: giveup_all() needs to be EXPORT_SYMBOL'ed] Signed-off-by: Michael Ellerman arch/powerpc/include/asm/switch_to.h | 1 + arch/powerpc/kernel/process.c | 76 +++++++++++++++++++++++++++++------- arch/powerpc/kvm/book3s_pr.c | 17 +------- 3 files changed, 64 insertions(+), 30 deletions(-) commit d965e7ac7a196c27e299c598bcb678ab71132dc1 Author: Imre Deak Date: Tue Dec 1 10:23:52 2015 +0200 drm/i915/bxt: backlight clock gating workaround Per bspec, "Backlight PWM may stop in the asserted state, causing backlight to stay fully on. WA: Before disabling PWM, set CLKGATE_DIS_0 0x46530 bit 13 PWM1 Gating Dis (for PWM1) or bit 14 PWM2 Gating Dis (for PWM2). The bits can remain set without harm." (There's no workaround name for this.) This fixes some Broxton backlight issues. Signed-off-by: Imre Deak Reviewed-by: Ville Syrjälä [Jani: cleanup & commit message] Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1448958232-26520-3-git-send-email-jani.nikula@intel.com drivers/gpu/drm/i915/i915_reg.h | 7 +++++++ drivers/gpu/drm/i915/intel_pm.c | 8 ++++++++ 2 files changed, 15 insertions(+) commit 5075222b04a28bff6bf1c66a7baced787be6b6de Author: Jani Nikula Date: Tue Dec 1 10:23:51 2015 +0200 drm/i915: use default 200 Hz backlight frequency If the backlight modulation frequency can't be extracted from the registers or from VBT, use 200 Hz as the default. This may enable backlight on some machines that previously failed. Reviewed-by: Imre Deak Tested-by: Imre Deak Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1448958232-26520-2-git-send-email-jani.nikula@intel.com drivers/gpu/drm/i915/intel_panel.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit 2dd6982e471f68137afd864fb4de64c59c7f5388 Author: Jani Nikula Date: Tue Dec 1 10:23:50 2015 +0200 drm/i915/bxt: add support for setting backlight freq from vbt The only missing piece is the function to convert frequency to PWM register value. The PWM is based on 19.2 MHz clock, except for BXT A step, which is based on CDCLK, and which we ignore. Reviewed-by: Imre Deak Tested-by: Imre Deak Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1448958232-26520-1-git-send-email-jani.nikula@intel.com drivers/gpu/drm/i915/intel_panel.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit aa9fff5dcc7721b78f9915c9ce614c1297d4182c Author: Colin Ian King Date: Sat Nov 28 16:27:34 2015 +0000 ARM: mach-imx: iomux-imx31: fix spelling mistake in error message Minor issue, fix spelling mistake, nonexistant -> nonexistent Signed-off-by: Colin Ian King Signed-off-by: Shawn Guo arch/arm/mach-imx/iomux-imx31.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 17652c6336fdca0f48906f0a1d9b5ac77b29e5a7 Author: Jesse Brandeburg Date: Thu Nov 5 17:01:02 2015 -0800 i40e: remove unused argument With the final edition of the patches to remove sleeps from the driver's entry points, the grab_rtnl argument is no longer needed, so partially revert the commit that added it. Change-ID: Ib9778476242586cc9e58b670f5f48d415cb59003 Signed-off-by: Jesse Brandeburg Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e.h | 2 +- drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 4 ++-- drivers/net/ethernet/intel/i40e/i40e_main.c | 16 +++++++++++----- drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 8 ++++---- 4 files changed, 18 insertions(+), 12 deletions(-) commit 0e4425ed641f3eef67c892bc541949cd745a9ba9 Author: Jesse Brandeburg Date: Thu Nov 5 17:01:01 2015 -0800 i40e: fix: do not sleep in netdev_ops The driver was being called by VLAN, bonding, teaming operations that expected to be able to hold locks like rcu_read_lock(). This causes the driver to be held to the requirement to not sleep, and was found by the kernel debug options for checking sleep inside critical section, and the locking validator. Change-ID: Ibc68c835f5ffa8ffe0638ffe910a66fc5649a7f7 Signed-off-by: Jesse Brandeburg Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_main.c | 44 +++++++++++++---------------- 1 file changed, 20 insertions(+), 24 deletions(-) commit e1c227919548fb9d8ee771e715d2764f1d41e8e0 Author: Catherine Sullivan Date: Mon Oct 26 19:44:41 2015 -0400 i40e/i40evf: Bump i40e version to 1.4.4 and i40evf to 1.4.1 Bump. Change-ID: I00ebbb2e5e5572f947502b8f6db4d94f666d6b14 Signed-off-by: Catherine Sullivan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_main.c | 2 +- drivers/net/ethernet/intel/i40evf/i40evf_main.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 0dd438d8ad5db85c1a805ce2244252e37d5586a0 Author: Mitch Williams Date: Mon Oct 26 19:44:40 2015 -0400 i40evf: allocate ring structs dynamically Instead of awkwardly keeping a fixed array of pointers in the adapter struct and then allocating ring structs individually, just keep a single pointer and allocate a single blob for the arrays. This simplifies code, shrinks the adapter structure, and future-proofs the driver by not limiting the number of rings we can handle. Change-ID: I31334ff911a6474954232cfe4bc98ccca3c769ff Signed-off-by: Mitch Williams Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 2 +- drivers/net/ethernet/intel/i40evf/i40evf.h | 4 +- drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c | 8 +-- drivers/net/ethernet/intel/i40evf/i40evf_main.c | 57 +++++++++++----------- .../net/ethernet/intel/i40evf/i40evf_virtchnl.c | 10 ++-- 5 files changed, 40 insertions(+), 41 deletions(-) commit 7d96ba1a8b7c36d1f4a04dc40e031b6f8c677496 Author: Mitch Williams Date: Mon Oct 26 19:44:39 2015 -0400 i40evf: allocate queue vectors dynamically Change the queue_vector array from a statically-sized member of the adapter structure to a dynamically-allocated and -sized array. This reduces the size of the adapter structure, and allows us to support any number of queue vectors in the future without changing the code. Change-ID: I08dc622cb2f2ad01e832e51c1ad9b86524730693 Signed-off-by: Mitch Williams Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40evf/i40evf.h | 5 +-- drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c | 2 +- drivers/net/ethernet/intel/i40evf/i40evf_main.c | 38 ++++++++++------------ .../net/ethernet/intel/i40evf/i40evf_virtchnl.c | 2 +- 4 files changed, 21 insertions(+), 26 deletions(-) commit e743072fd16e6e772d5b5e4aef38873946f9a3e0 Author: Mitch Williams Date: Mon Oct 26 19:44:38 2015 -0400 i40evf: quoth the VF driver, Nevermore If, upon a midnight dreary, the PF returns ERR_PARAM when the VF is requesting resources, that's fatal. Either the firmware or NVM is badly, badly misconfigured, or this VF has been disabled due to a previous VF driver sending a bunch of bogus messages. Either way, there is no recovery from this. Don't ponder weak and weary, just quit. Change-ID: I09d9f16cc4ee7fec3b57646a289d33838c1c5bf5 Signed-off-by: Mitch Williams Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40evf/i40evf_main.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit e7ffb72d65c784ba445ac849bd46d2533365fae7 Author: Mitch Williams Date: Mon Oct 26 19:44:37 2015 -0400 i40e: make error message more useful If we get an invalid message from a VF, we should tell the user which VF is being naughty, rather than making them guess. Change-ID: I9252cef7baea3d8584043ed6ff12619a94e2f99c Signed-off-by: Mitch Williams Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e36b0b111bcc651ce030e88e042f83b015dd04b8 Author: Helin Zhang Date: Mon Oct 26 19:44:36 2015 -0400 i40e: fix confusing message This patch fixes the confusing kernel message of enabled RSS size, by reporting it together with the hardware maximum RSS size. Change-ID: I64864dbfbc13beccc180a7871680def1f3d5a339 Signed-off-by: Helin Zhang Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 2b2426a760764017cb53ffae128c87b7808dcf11 Author: Carolyn Wyborny Date: Mon Oct 26 19:44:35 2015 -0400 i40e: Update error messaging This patch fixes an issue where adminq init failures always provided a message that NVM was newer than expected. This is not always the case for init_adminq failures. Without this patch, if adminq init fails for any reason, newer NVM message would be given. This problem is fixed by adding a check for that specific error condition and a different hopefully helpful message otherwise. Change-ID: Iaeaebee4e398989eae40bb70f943ab66a3a521a5 Signed-off-by: Carolyn Wyborny Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_main.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit 66f9af855a4df146713866f6076207edea44a4f5 Author: Helin Zhang Date: Mon Oct 26 19:44:34 2015 -0400 i40evf: add new fields to store user configuration of RSS This patch adds new fields to i40e_vsi to store user configured RSS config data and code to use it. Change-ID: Ic5d3db8d9df52182b560248f8cdca9c5c7546879 Signed-off-by: Helin Zhang Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40evf/i40evf.h | 2 ++ drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c | 31 ++++++++++-------- drivers/net/ethernet/intel/i40evf/i40evf_main.c | 37 ++++++++++++++++++++-- 3 files changed, 54 insertions(+), 16 deletions(-) commit 90b02b4392eb9778265ec6b4fef034010a937910 Author: Helin Zhang Date: Mon Oct 26 19:44:33 2015 -0400 i40evf: create a generic get RSS function There are two ways to get RSS, this patch implements two functions with the same input parameters, and creates a more generic function for getting RSS configuration. Change-ID: I12d3b712c21455d47dd0a5aae58fc9b7c680db59 Signed-off-by: Helin Zhang Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40evf/i40evf.h | 2 + drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c | 35 +++++--- drivers/net/ethernet/intel/i40evf/i40evf_main.c | 97 ++++++++++++++++++++++ 3 files changed, 121 insertions(+), 13 deletions(-) commit 2c86ac3c70794f0ecc3684b0ae0fd75b0cf0c1f6 Author: Helin Zhang Date: Tue Oct 27 16:15:06 2015 -0400 i40evf: create a generic config RSS function There are two ways to configure RSS, this patch adjusts those two functions with the same input parameters, and creates a more generic function for configuring RSS. Change-ID: Iace73bdeba4831909979bef221011060ab327f71 Signed-off-by: Helin Zhang Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40evf/i40evf.h | 3 + drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c | 29 ++-- drivers/net/ethernet/intel/i40evf/i40evf_main.c | 168 +++++++++++++-------- 3 files changed, 130 insertions(+), 70 deletions(-) commit 96a8198652e5b80a2cfc87397a3512bf8e45cd63 Author: Helin Zhang Date: Mon Oct 26 19:44:31 2015 -0400 i40evf: rename VF adapter specific RSS function This patch renames old VF adapter specific RSS function to clarify its scope. Change-ID: Ie5253083a44c677ebb7709a8a3a18402ad2dc6a6 Signed-off-by: Helin Zhang Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40evf/i40evf_main.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit b74118f08356fd8ab6cb5d1a15705a2760c9afdd Author: Jesse Brandeburg Date: Mon Oct 26 19:44:30 2015 -0400 i40e/i40evf: prefetch skb data on transmit Issue a prefetch for data early in the transmit path. This should not be generally needed for Tx traffic, but it helps immensely for pktgen workloads and should help for forwarding workloads as well. Change-ID: Iefee870c20599e0c4240e1d8637e4f16b625f83a Signed-off-by: Jesse Brandeburg Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_txrx.c | 3 +++ drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 3 +++ 2 files changed, 6 insertions(+) commit 6a7fded776a778f728b13d83a2c9fc893580c080 Author: Anjali Singhai Jain Date: Mon Oct 26 19:44:29 2015 -0400 i40e/i40evf: Fix RS bit update in Tx path and disable force WB workaround This patch fixes the issue of forcing WB too often causing us to not benefit from NAPI. Without this patch we were forcing WB/arming interrupt too often taking away the benefits of NAPI and causing a performance impact. With this patch we disable force WB in the clean routine for X710 and XL710 adapters. X722 adapters do not enable interrupt to force a WB and benefit from WB_ON_ITR and hence force WB is left enabled for those adapters. For XL710 and X710 adapters if we have less than 4 packets pending a software Interrupt triggered from service task will force a WB. This patch also changes the conditions for setting RS bit as described in code comments. This optimizes when the HW does a tail bump amd when it does a WB. It also optimizes when we do a wmb. Change-ID: Id831e1ae7d3e2ec3f52cd0917b41ce1d22d75d9d Signed-off-by: Anjali Singhai Jain Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 118 ++++++++++++++++---------- drivers/net/ethernet/intel/i40evf/i40e_txrx.h | 2 + 2 files changed, 77 insertions(+), 43 deletions(-) commit acd65448f2e6b3407b8bb28b57d711ca417ea679 Author: Helin Zhang Date: Mon Oct 26 19:44:28 2015 -0400 i40e: rename rss_size to alloc_rss_size in i40e_pf This patch renames rss_size to alloc_rss_size in i40e_pf, which is clearer and avoids confusion. It also adds comments to the other related structure members to help clarify usage. Change-ID: Ia90090609d006ab589cb639975bb8a0af795d16f Signed-off-by: Helin Zhang Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e.h | 8 ++++---- drivers/net/ethernet/intel/i40e/i40e_main.c | 31 +++++++++++++++++------------ 2 files changed, 22 insertions(+), 17 deletions(-) commit 28c5869f2bc4e319027bc22a66a1aa9eefc69a16 Author: Helin Zhang Date: Mon Oct 26 19:44:27 2015 -0400 i40e: add new fields to store user configuration This patch adds new fields to i40e_vsi to store user configured RSS config data and code to use it. Signed-off-by: Helin Zhang Change-ID: I73886469dca9e9f6b16d842182a87f3f4009f95d Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e.h | 2 + drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 31 +++++++++------ drivers/net/ethernet/intel/i40e/i40e_main.c | 52 +++++++++++++++++++++++--- 3 files changed, 68 insertions(+), 17 deletions(-) commit 31cbb57d5ac3b8f7a84803eb329fcc8a73fb4ab6 Author: Bai Ping Date: Thu Nov 26 10:18:43 2015 +0800 clk: imx: Replace clk error check with imx_check_clocks() As we already have a 'imx_check_clocks' to do the clock error check, so cleanup the error check code. Signed-off-by: Bai Ping Acked-by: Stephen Boyd Signed-off-by: Shawn Guo drivers/clk/imx/clk-imx6ul.c | 4 +--- drivers/clk/imx/clk-imx7d.c | 5 +---- 2 files changed, 2 insertions(+), 7 deletions(-) commit e3526f004a35e5f324b1c835bca056f4df05bff0 Author: Bai Ping Date: Tue Nov 24 18:25:16 2015 +0800 ARM: imx: enable cpufreq device on i.mx7d Add a cpufreq-dt device on i.MX7D, using the generic cpufreq-dt for CPU frequency scaling. Signed-off-by: Bai Ping Acked-by: Lucas Stach Signed-off-by: Shawn Guo arch/arm/mach-imx/mach-imx7d.c | 6 ++++++ 1 file changed, 6 insertions(+) commit fdb868cd059a97b35e4a5fcfa073a5d9c375fcdf Author: Bai Ping Date: Tue Nov 24 18:25:14 2015 +0800 clk: imx: Add a virtual arm clk on i.mx7d Add a virtual arm clk to abstract the actual steps when changing the ARM core frequency.So we can using the 'cpufreq-dt' driver on i.MX7D/Solo. Signed-off-by: Bai Ping Acked-by: Lucas Stach Signed-off-by: Shawn Guo drivers/clk/imx/clk-imx7d.c | 6 ++++++ include/dt-bindings/clock/imx7d-clock.h | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) commit a7ce40508803d7ac1e642a93e80709ee2514c1c2 Author: Caesar Wang Date: Tue Dec 1 17:13:24 2015 +0800 clk: rockchip: Force rk3368 PWM clock (and its parents) on Most rk3368 boards (especially those with Pmic that followed the lead from rk3368-evb-act8846) have a PWM regulator on them for vdd_logic. This is the main voltage for all kinds of misc stuff including the memory controller. On these boards it is critically important to make sure that the PWM never ever glitches and never loses its clock. Any glitch could crash the system. Right now there are no users of the PWM regulator and also Linux thinks that the PWM regulator is disabled. Things happen to work because firmware configured the PWM and Linux doesn't touch it. ..and the PWM's clock is marked as "ignore unused". ...but things _stop_ working if we turn off serial console. Why? Because: 1. Serial console shares a parent clock with the PWM (pclk_cpu) 2. If we have no serial console then nobody is holding pclk_cpu on at reboot time. It gets disabled. We need to fix a lot of the above problems, but until we get everything right the cleanest "hack" seems like it is to just keep the "rk_pwm" clock on always. Signed-off-by: Caesar Wang Signed-off-by: Heiko Stuebner drivers/clk/rockchip/clk-rk3368.c | 5 +++++ 1 file changed, 5 insertions(+) commit 5378e28c9776fbab6065cfb54417acff3ea5f1fd Author: Caesar Wang Date: Tue Dec 1 17:13:25 2015 +0800 arm64: dts: rockchip: add rk3368 evaluation board This board is similar with the rk3288 evb board but the rk3368 top board. There exist the act8846 as the pmic. Moment, add the balight/thermal/emmc/usb.. stuff, Let the board can happy work. Signed-off-by: Caesar Wang Signed-off-by: Heiko Stuebner Documentation/devicetree/bindings/arm/rockchip.txt | 4 + arch/arm64/boot/dts/rockchip/Makefile | 1 + .../arm64/boot/dts/rockchip/rk3368-evb-act8846.dts | 176 +++++++++++++ arch/arm64/boot/dts/rockchip/rk3368-evb.dtsi | 281 +++++++++++++++++++++ 4 files changed, 462 insertions(+) commit fa54322a94ef300c596191d11c35748041da35dc Author: Caesar Wang Date: Tue Dec 1 17:13:26 2015 +0800 arm64: dts: rockchip: add the pwm node info for RK3368 SoCs The pulse-width modulator (PWM) feature is very common in embedded systems. On the rk3368 there exist 4 built-in PWM channels. In general, the pwm pins can via the pinctrl to configure iomux mode except the pwm2 since the pwm2 iomux mode from the SoC control register. Signed-off-by: Caesar Wang Signed-off-by: Heiko Stuebner arch/arm64/boot/dts/rockchip/rk3368.dtsi | 60 ++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) commit 498378d9d2c12d97318028f1a648d98ee7568430 Author: Lu Baolu Date: Sat Nov 14 16:26:34 2015 +0800 usb: core: lpm: remove usb3_lpm_enabled in usb_device Commit 8306095fd2c1 ("USB: Disable USB 3.0 LPM in critical sections.") adds usb3_lpm_enabled member to struct usb_device. There is no reference to this member now. Hence, it could be removed. Signed-off-by: Lu Baolu Signed-off-by: Greg Kroah-Hartman include/linux/usb.h | 2 -- 1 file changed, 2 deletions(-) commit 513072d90a8dfe4bf83e1f81810de605eb5d7c3b Author: Lu Baolu Date: Sat Nov 14 16:26:33 2015 +0800 usb: core: lpm: add sysfs node for usb3 lpm permit USB3 LPM is default on in Linux kernel if both xHCI host controller and the USB devices declare to be LPM-capable. Unfortunately, some devices are known to work well with LPM disabled, but to be broken if LPM is enabled, although it declares the LPM capability. Users won't be able to use this kind of devices, until someone puts them in the kernel blacklist and gets the kernel upgraded. This patch adds a sysfs node to permit or forbit USB3 LPM U1 or U2 entry for a port. The settings apply to both before and after device enumeration. Supported values are "0" - neither u1 nor u2 permitted, "u1" - only u1 is permitted, "u2" - only u2 is permitted, "u1_u2" - both u1 and u2 are permitted. With this interface, users can use an LPM-unfriendly USB device on a released Linux kernel. Signed-off-by: Lu Baolu Signed-off-by: Zhuang Jin Can Signed-off-by: Greg Kroah-Hartman Documentation/ABI/testing/sysfs-bus-usb | 11 ++++ drivers/usb/core/hub.c | 15 +++++- drivers/usb/core/hub.h | 5 +- drivers/usb/core/port.c | 89 ++++++++++++++++++++++++++++++++- 4 files changed, 116 insertions(+), 4 deletions(-) commit bf5ce5bf3cc7136fd7fe5e8999a580bc93a9c8f6 Author: Lu Baolu Date: Sat Nov 14 16:26:32 2015 +0800 usb: core: lpm: fix usb3_hardware_lpm sysfs node Commit 655fe4effe0f ("usbcore: add sysfs support to xHCI usb3 hardware LPM") introduced usb3_hardware_lpm sysfs node. This doesn't show the correct status of USB3 U1 and U2 LPM status. This patch fixes this by replacing usb3_hardware_lpm with two nodes, usb3_hardware_lpm_u1 (for U1) and usb3_hardware_lpm_u2 (for U2), and recording the U1/U2 LPM status in right places. This patch should be back-ported to kernels as old as 4.3, that contains Commit 655fe4effe0f ("usbcore: add sysfs support to xHCI usb3 hardware LPM"). Cc: stable@vger.kernel.org Signed-off-by: Lu Baolu Signed-off-by: Greg Kroah-Hartman Documentation/ABI/testing/sysfs-bus-usb | 16 ++++++++------ Documentation/usb/power-management.txt | 11 +++++----- drivers/usb/core/hub.c | 39 +++++++++++++++++++++++++-------- drivers/usb/core/sysfs.c | 31 +++++++++++++++++++++----- include/linux/usb.h | 4 ++++ 5 files changed, 75 insertions(+), 26 deletions(-) commit c56a2b2bc661fe089fde9beffeadcb0ecb5e934b Author: Andy Gross Date: Fri Nov 6 00:04:07 2015 -0600 usb: host: ehci-msm: Use posted data writes on AHB This patch sets the AHBMODE to allow for posted data writes. This results in higher performance. Signed-off-by: Andy Gross Tested-by: Georgi Djakov Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman drivers/usb/host/ehci-msm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5ce7d27d5c4dd40d7b147f7a4c2f7308508208a7 Author: Andy Gross Date: Fri Nov 6 00:04:06 2015 -0600 usb: chipidea: msm: Use posted data writes on AHB This patch sets the AHBMODE to allow for posted data writes. This results in higher performance. Signed-off-by: Andy Gross Acked-by: Peter Chen Signed-off-by: Greg Kroah-Hartman drivers/usb/chipidea/ci_hdrc_msm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 8ab0f723af247af8dd92196c152c8f1da0254b2f Author: Tina Ruchandani Date: Thu Oct 29 22:44:31 2015 -0700 USB: usbmon: Use 64bit timestamp for mon_bin_hdr struct mon_bin_hdr allows for a 64-bit seconds timestamp. The code currently uses 'struct timeval' to populate the timestamp in mon_bin_hdr, which has a 32-bit seconds field and will overflow in year 2038 and beyond. This patch replaces 'struct timeval' with 'struct timespec64' which is y2038 safe. This patch is part of a larger attempt to remove instances of struct timeval and other 32-bit timekeeping (time_t, struct timespec) from the kernel. Signed-off-by: Tina Ruchandani Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/usb/mon/mon_bin.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit 18fc4ebdc7057478497682047db5acfb25b35c49 Author: Deepa Dinamani Date: Wed Nov 4 15:29:11 2015 -0800 usb: misc: usbtest: Remove timeval usage timeval is deprecated and not y2038 safe. Its size also changes according to 32 bit/ 64 bit compilation. Replace it with 32 and 64 bit versions of its individual fields, giving two ioctls with different code values. The two ioctls are necessary to maintain the 32 bit and 64 bit userspace compatibility with a 64/32 bit kernel. Change unsigned to __u32 types for a definitive userspace interface. This is in accordance with the psABI that the unsigned type is always 32 bits. Also use motonic timer instead of real time to ensure positive delta values. Refactor usbtest_ioctl for readability to isolate the handling of the testing timing measurement. The official testusb userspace tool can be changed in a separate patch to reflect the __u32 changes as well. It can use the usbtest_param_32 struct, since 32 bit seconds is long enough for test durations. Signed-off-by: Deepa Dinamani Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/usb/misc/usbtest.c | 229 +++++++++++++++++++++++++++++---------------- 1 file changed, 147 insertions(+), 82 deletions(-) commit ec4dca8bdfb650fd698401e26f586683ec69a942 Author: Tina Ruchandani Date: Thu Oct 29 22:58:28 2015 -0700 USB: usbmon: Remove timeval usage for timestamp struct timeval' uses 32-bits for its seconds field and will overflow in the year 2038 and beyond. This patch replaces the usage of 'struct timeval' in mon_get_timestamp() with timespec64 which uses a 64-bit seconds field and is y2038-safe. mon_get_timestamp() truncates the timestamp at 4096 seconds, so the correctness of the code is not affected. This patch is part of a larger attempt to remove instances of struct timeval and other 32-bit timekeeping (time_t, struct timespec) from the kernel. Signed-off-by: Tina Ruchandani Suggested-by: Arnd Bergmann Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/usb/mon/mon_text.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 9faae5a37b266afca6914163316856c5ed4ec366 Author: Rafał Miłecki Date: Sun Nov 1 10:04:41 2015 +0100 USB: bcma: switch to GPIO descriptor for power control So far we were using simple (legacy) GPIO functions & some poor logic to control power. It got many drawbacks: we were ignoring OF flags (GPIO_ACTIVE_LOW), we were not setting direction to output and we were assuming gpio_request success all the time. Fix it by switching to gpiod functions and adding appropriate checks. Signed-off-by: Rafał Miłecki Acked-by: Hauke Mehrtens Signed-off-by: Greg Kroah-Hartman drivers/usb/host/bcma-hcd.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) commit 6fb8ac81cb3125aafc7136f2ef0145da792bab94 Author: Julia Lawall Date: Sat Nov 28 16:07:10 2015 +0100 USB: constify usb_mon_operations structure The usb_mon_operations structure is never modified, so declare it as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/usb/core/hcd.c | 4 ++-- drivers/usb/mon/mon_main.c | 2 +- include/linux/usb/hcd.h | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) commit c7c7806700e15ca9c48d880f8c65071f041cd890 Author: Peter Chen Date: Wed Nov 18 17:40:23 2015 +0800 usb: misc: usbtest: improve the description for error message Now the function of complicated_callback is not only used for iso transfer, improve the error message to reflect it. Signed-off-by: Peter Chen Signed-off-by: Greg Kroah-Hartman drivers/usb/misc/usbtest.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 144e38c6bebe41da8dc0e611f70fee53ce22604f Author: Saurabh Sengar Date: Mon Nov 16 18:18:33 2015 +0530 usb: host: ohci-pxa27x: use of_property_read_bool() for checking if a property is present or not, of_property_read_bool is more appropriate than of_get_property() Signed-off-by: Saurabh Sengar Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman drivers/usb/host/ohci-pxa27x.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit b36d83913ae55c7619ac80185fb707bc30fd41c5 Author: Oliver Neukum Date: Tue Nov 3 16:43:17 2015 +0100 uas: no gfp argument to uas_submit_urbs() This function must be called with a spinlock held. Memory can be allocated only with GFP_ATOMIC. Passing a gfp_t argument is a waste. Signed-off-by: Oliver Neukum Reviewed-by: Hans de Goede Signed-off-by: Greg Kroah-Hartman drivers/usb/storage/uas.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit 764331940bed55a18132ac46bca5a4216090a06b Author: Oliver Neukum Date: Thu Nov 5 16:20:36 2015 +0100 uas: use the BIT() macro Use this macro to make the driver more readable. Signed-off-by: Oliver Neukum Reviewed-by: Hans de Goede Signed-off-by: Greg Kroah-Hartman drivers/usb/storage/uas.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit 18024199579882265653bfe9e2b1a3dcb5697cd9 Author: Matt Roper Date: Tue Dec 1 09:26:58 2015 -0800 drm/i915/bxt: Disable power well support BXT power well support is not yet stable. Starting with patch commit 9f836f9016ad5320e0c9230419d2102cf15a28aa Author: Patrik Jakobsson Date: Mon Nov 16 16:20:01 2015 +0100 drm/i915/gen9: Turn DC handling into a power well DPMS off operations may actually cause the entire system to powerdown or reboot. Disable power well support for now until Broxton gets fixes similar to what we have for SKL. Cc: Imre Deak Cc: Patrik Jakobsson References: http://lists.freedesktop.org/archives/intel-gfx/2015-November/081037.html Signed-off-by: Matt Roper Link: http://patchwork.freedesktop.org/patch/msgid/1448990818-11005-1-git-send-email-matthew.d.roper@intel.com Reviewed-by: Imre Deak drivers/gpu/drm/i915/intel_runtime_pm.c | 5 +++++ 1 file changed, 5 insertions(+) commit a7a19d7ab6f7b683e08ef25fd0fd673d5b09776e Author: Markus Elfring Date: Mon Nov 16 19:01:44 2015 +0100 USB-EHCI: Delete unnecessary checks before the function call "dma_pool_destroy" The dma_pool_destroy() function tests whether its argument is NULL and then returns immediately. Thus the test around the calls is not needed. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman drivers/usb/host/ehci-mem.c | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) commit 84c1eeb02353ffcafe039e892410cad835334ba9 Author: Saurabh Sengar Date: Wed Oct 28 12:44:35 2015 +0530 usb : replace dma_pool_alloc and memset with dma_pool_zalloc replace dma_pool_alloc and memset with a single call to dma_pool_zalloc Signed-off-by: Saurabh Sengar Acked-by: Peter Chen Signed-off-by: Greg Kroah-Hartman drivers/usb/chipidea/udc.c | 3 +-- drivers/usb/gadget/udc/gr_udc.c | 3 +-- drivers/usb/host/uhci-q.c | 3 +-- drivers/usb/host/whci/qset.c | 3 +-- drivers/usb/host/xhci-mem.c | 6 ++---- 5 files changed, 6 insertions(+), 12 deletions(-) commit ced08b020e6ce0fa693e4d1d8c6088dbc0a36c64 Author: Jiri Kosina Date: Mon Oct 26 04:06:29 2015 +0100 uwb: uwbd() is not freezable kthread uwbd() calls try_to_freeze(), but the thread doesn't mark itself freezable through set_freezable(), so the try_to_freeze() call is useless. Signed-off-by: Jiri Kosina Signed-off-by: Greg Kroah-Hartman drivers/uwb/uwbd.c | 1 - 1 file changed, 1 deletion(-) commit 140adfba5280617487a848a0fa84f7523d999cf3 Author: Jeeja KP Date: Sat Nov 28 15:01:50 2015 +0530 ASoC: Intel: Skylake: Add tlv byte kcontrols This adds tlv bytes topology control creation and control load to initialize kcontrol data. And this also adds the callbacks for the these tlv byte kcontrols Signed-off-by: Mythri P K Signed-off-by: Divya Prakash Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-topology.c | 121 +++++++++++++++++++++++++++ sound/soc/intel/skylake/skl-tplg-interface.h | 7 +- 2 files changed, 123 insertions(+), 5 deletions(-) commit abb740033b56a2f57582e8e26bb9ea3650b6a3cc Author: Jeeja KP Date: Sat Nov 28 15:01:49 2015 +0530 ASoC: Intel: Skylake: Add support to configure module params This adds support to configure module parameter during module initialization or after module init using set module param required by the DSP firmware sequence. Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-topology.c | 87 +++++++++++++++++++++++++++++++++- sound/soc/intel/skylake/skl-topology.h | 9 ++++ 2 files changed, 95 insertions(+), 1 deletion(-) commit 399b210bef097ce01d9e7b03ce5d4435f0624111 Author: Jeeja KP Date: Sat Nov 28 15:01:48 2015 +0530 ASoC: Intel: Skylake: Add helper routine to handle Algo parameter Some DSP modules has user configurable parameters, which are required by some modules at module initialization. To configure the module algorithm parameter during initialization we add helpers here Signed-off-by: Divya Prakash Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-messages.c | 31 ++++++++++++++++++++++++++++ sound/soc/intel/skylake/skl-topology.h | 5 +++++ sound/soc/intel/skylake/skl-tplg-interface.h | 3 ++- 3 files changed, 38 insertions(+), 1 deletion(-) commit 9939a9c331ae8b9f859802af352477388b73c700 Author: Jeeja KP Date: Sat Nov 28 15:01:47 2015 +0530 ASoC: Intel: Skylake: Add helper routines to handle module params Some DSP modules have user configurable parameters. These parameters are required by modules in the following scenario - during initialization - after initialization using set parameter This patch adds helper routine to set module parameters using large config set IPC message and removes params to be passed as init module routine. Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-messages.c | 16 +++++++++++++++- sound/soc/intel/skylake/skl-topology.c | 2 +- sound/soc/intel/skylake/skl-topology.h | 6 ++++-- 3 files changed, 20 insertions(+), 4 deletions(-) commit 8f35bf3f71f7b367511e0912eb7b70834b39ef77 Author: Jeeja KP Date: Sat Nov 28 15:01:46 2015 +0530 ASoC: Intel: Skylake: Update DMIC DAIs and capabilities On Skylake we can support upton 4DMICs on the PDM port, so update the PCM capabilities accordingly Also add a new DAI for DMIC pin which can be used for getting raw DMIC data Signed-off-by: Jeeja KP Signed-off-by: Dharageswari.R Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-pcm.c | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) commit bc045705f666c336faa925dc8f0ab03f97e6646f Author: Andy Gross Date: Thu Nov 26 00:15:57 2015 -0600 ARM: multi_v7_defconfig: Enable required QCOM SPMI/PMIC drivers This patch enables the QCOM SPMI and PMIC related drivers that are now required to boot some supported devices. Signed-off-by: Andy Gross Signed-off-by: Arnd Bergmann arch/arm/configs/multi_v7_defconfig | 4 ++++ 1 file changed, 4 insertions(+) commit e324654294907a420ab3773efe8849a935f37bf0 Author: Masahiro Yamada Date: Mon Nov 16 12:06:10 2015 +0900 ARM: use "depends on" for SoC configs instead of "if" after prompt Many ARM sub-architectures use prompts followed by "if" conditional, but it is wrong. Please notice the difference between config ARCH_FOO bool "Foo SoCs" if ARCH_MULTI_V7 and config ARCH_FOO bool "Foo SoCs" depends on ARCH_MULTI_V7 These two are *not* equivalent! In the former statement, it is not ARCH_FOO, but its prompt that depends on ARCH_MULTI_V7. So, it is completely valid that ARCH_FOO is selected by another, but ARCH_MULTI_V7 is still disabled. As it is not unmet dependency, Kconfig never warns. This is probably not what you want. The former should be used only when you need to do so, and you really understand what you are doing. (In most cases, it should be wrong!) For enabling/disabling sub-architectures, the latter is always correct. As a good side effect, this commit fixes some entries over 80 columns (mach-imx, mach-integrator, mach-mbevu). [Arnd: I note that there is not really a bug here, according to the discussion that followed, but I can see value in being consistent and in making the lines shorter] Signed-off-by: Masahiro Yamada Acked-by: Maxime Ripard Acked-by: Nicolas Ferre Acked-by: Heiko Stuebner Acked-by: Patrice Chotard Acked-by: Liviu Dudau Acked-by: Krzysztof Kozlowski Acked-by: Jun Nie Acked-by: Matthias Brugger Acked-by: Simon Horman Acked-by: Gregory CLEMENT Acked-by: Shawn Guo Acked-by: Sebastian Hesselbarth Acked-by: Thierry Reding Acked-by: Krzysztof Halasa Acked-by: Maxime Coquelin Signed-off-by: Arnd Bergmann arch/arm/Kconfig | 3 ++- arch/arm/mach-alpine/Kconfig | 3 ++- arch/arm/mach-at91/Kconfig | 15 ++++++++++----- arch/arm/mach-axxia/Kconfig | 3 ++- arch/arm/mach-bcm/Kconfig | 27 ++++++++++++++++++--------- arch/arm/mach-berlin/Kconfig | 3 ++- arch/arm/mach-cns3xxx/Kconfig | 3 ++- arch/arm/mach-exynos/Kconfig | 3 ++- arch/arm/mach-highbank/Kconfig | 3 ++- arch/arm/mach-hisi/Kconfig | 12 ++++++++---- arch/arm/mach-imx/Kconfig | 6 ++++-- arch/arm/mach-integrator/Kconfig | 3 ++- arch/arm/mach-mediatek/Kconfig | 3 ++- arch/arm/mach-meson/Kconfig | 3 ++- arch/arm/mach-moxart/Kconfig | 3 ++- arch/arm/mach-mvebu/Kconfig | 24 ++++++++++++++++-------- arch/arm/mach-picoxcell/Kconfig | 3 ++- arch/arm/mach-prima2/Kconfig | 3 ++- arch/arm/mach-qcom/Kconfig | 3 ++- arch/arm/mach-rockchip/Kconfig | 3 ++- arch/arm/mach-s5pv210/Kconfig | 3 ++- arch/arm/mach-shmobile/Kconfig | 4 ++-- arch/arm/mach-socfpga/Kconfig | 3 ++- arch/arm/mach-spear/Kconfig | 3 ++- arch/arm/mach-sti/Kconfig | 3 ++- arch/arm/mach-sunxi/Kconfig | 3 ++- arch/arm/mach-tegra/Kconfig | 3 ++- arch/arm/mach-u300/Kconfig | 4 ++-- arch/arm/mach-ux500/Kconfig | 4 ++-- arch/arm/mach-vexpress/Kconfig | 3 ++- arch/arm/mach-zx/Kconfig | 3 ++- arch/arm/mach-zynq/Kconfig | 3 ++- 32 files changed, 110 insertions(+), 58 deletions(-) commit 9d2aa8c7961ae9af5f75af2dc171dd4e4f441e89 Author: Linus Walleij Date: Tue Dec 1 15:00:24 2015 +0100 ARM/clocksource: use automatic DT probing for ux500 PRCMU The ARM core kernel already calls clocksource_of_init() so why go to all the trouble of locating and probing this node in the machine. CLOCKSOURCE_OF_DECLARE() will take care of it in the clocksource driver, and thus we can also get rid of the dangling header file Suggested-by: Arnd Bergmann Acked-by: Thomas Gleixner Acked-by: Daniel Lezcano Signed-off-by: Linus Walleij Signed-off-by: Arnd Bergmann arch/arm/mach-ux500/Makefile | 2 +- arch/arm/mach-ux500/cpu-db8500.c | 2 -- arch/arm/mach-ux500/cpu.c | 1 - arch/arm/mach-ux500/setup.h | 3 -- arch/arm/mach-ux500/timer.c | 48 ------------------------------- drivers/clocksource/clksrc-dbx500-prcmu.c | 9 ++++-- include/linux/clksrc-dbx500-prcmu.h | 20 ------------- 7 files changed, 7 insertions(+), 78 deletions(-) commit 75305275a721d33ae9abfaeed2817cec8b2fee9a Author: Masahiro Yamada Date: Sun Nov 15 10:39:53 2015 +0900 ARM: use const and __initconst for smp_operations These smp_operations structures are not over-written, so add "const" qualifier and replace __initdata with __initconst. Also, add "static" where it is possible. Signed-off-by: Masahiro Yamada Acked-by: Krzysztof Kozlowski Acked-by: Maxime Ripard Acked-by: Moritz Fischer Acked-by: Stephen Boyd # qcom part Acked-by: Viresh Kumar Acked-by: Patrice Chotard Acked-by: Heiko Stuebner Acked-by: Wei Xu Acked-by: Florian Fainelli Acked-by: Sebastian Hesselbarth Acked-by: Gregory CLEMENT Acked-by: Shawn Guo Acked-by: Matthias Brugger Acked-by: Thierry Reding Acked-by: Nicolas Pitre Acked-by: Liviu Dudau Acked-by: Linus Walleij Signed-off-by: Arnd Bergmann arch/arm/common/mcpm_platsmp.c | 2 +- arch/arm/include/asm/psci.h | 2 +- arch/arm/kernel/psci_smp.c | 2 +- arch/arm/mach-alpine/platsmp.c | 2 +- arch/arm/mach-axxia/platsmp.c | 2 +- arch/arm/mach-bcm/bcm63xx_smp.c | 2 +- arch/arm/mach-bcm/kona_smp.c | 2 +- arch/arm/mach-bcm/platsmp-brcmstb.c | 2 +- arch/arm/mach-berlin/platsmp.c | 2 +- arch/arm/mach-exynos/common.h | 2 +- arch/arm/mach-exynos/platsmp.c | 2 +- arch/arm/mach-hisi/platmcpm.c | 2 +- arch/arm/mach-hisi/platsmp.c | 6 +++--- arch/arm/mach-imx/common.h | 4 ++-- arch/arm/mach-imx/platsmp.c | 4 ++-- arch/arm/mach-keystone/keystone.h | 2 +- arch/arm/mach-keystone/platsmp.c | 2 +- arch/arm/mach-mediatek/platsmp.c | 4 ++-- arch/arm/mach-mvebu/armada-370-xp.h | 2 +- arch/arm/mach-mvebu/platsmp-a9.c | 4 ++-- arch/arm/mach-mvebu/platsmp.c | 2 +- arch/arm/mach-omap2/common.h | 2 +- arch/arm/mach-omap2/omap-smp.c | 2 +- arch/arm/mach-prima2/common.h | 2 +- arch/arm/mach-prima2/platsmp.c | 2 +- arch/arm/mach-qcom/platsmp.c | 6 +++--- arch/arm/mach-realview/core.h | 2 +- arch/arm/mach-realview/platsmp.c | 2 +- arch/arm/mach-rockchip/platsmp.c | 2 +- arch/arm/mach-shmobile/r8a7779.h | 2 +- arch/arm/mach-shmobile/r8a7790.h | 2 +- arch/arm/mach-shmobile/r8a7791.h | 2 +- arch/arm/mach-shmobile/setup-emev2.c | 2 +- arch/arm/mach-shmobile/sh73a0.h | 2 +- arch/arm/mach-shmobile/smp-emev2.c | 2 +- arch/arm/mach-shmobile/smp-r8a7779.c | 2 +- arch/arm/mach-shmobile/smp-r8a7790.c | 2 +- arch/arm/mach-shmobile/smp-r8a7791.c | 2 +- arch/arm/mach-shmobile/smp-sh73a0.c | 2 +- arch/arm/mach-socfpga/platsmp.c | 4 ++-- arch/arm/mach-spear/generic.h | 2 +- arch/arm/mach-spear/platsmp.c | 2 +- arch/arm/mach-sti/platsmp.c | 2 +- arch/arm/mach-sti/smp.h | 2 +- arch/arm/mach-sunxi/platsmp.c | 4 ++-- arch/arm/mach-tegra/common.h | 2 +- arch/arm/mach-tegra/platsmp.c | 2 +- arch/arm/mach-uniphier/platsmp.c | 2 +- arch/arm/mach-ux500/platsmp.c | 2 +- arch/arm/mach-vexpress/core.h | 2 +- arch/arm/mach-vexpress/platsmp.c | 2 +- arch/arm/mach-zx/platsmp.c | 2 +- arch/arm/mach-zynq/common.h | 2 +- arch/arm/mach-zynq/platsmp.c | 2 +- 54 files changed, 64 insertions(+), 64 deletions(-) commit 635e958dad5639102fcf8acf2d8feb6a80c6e689 Author: Masahiro Yamada Date: Sun Nov 15 10:39:52 2015 +0900 ARM: hisi: do not export smp_operations structures These three structures are only defined and referenced in mach-hisi/platsmp.c. Drop the declarations from the header and add static qualifier to the definitions. Signed-off-by: Masahiro Yamada Signed-off-by: Arnd Bergmann Acked-by: Wei Xu arch/arm/mach-hisi/core.h | 3 --- arch/arm/mach-hisi/platsmp.c | 6 +++--- 2 files changed, 3 insertions(+), 6 deletions(-) commit 6cc568340148424e657508d82692ef787d6c4b2c Author: Arnd Bergmann Date: Mon Nov 30 11:34:09 2015 +0100 isdn: remove spellcaster driver The 'sc' ISDN driver relies on using readl() to access ISA I/O memory. This has been deprecated and produced warnings since linux-2.3.23, disabled by default since 2.4.10 and finally removed in 2.6.5. I found this because the compiling the driver for ARM produces a warning: In file included from ../drivers/isdn/sc/includes.h:8:0, from ../drivers/isdn/sc/init.c:13: ../arch/arm/include/asm/io.h:115:21: note: expected 'const volatile void *' but argument is of type 'long unsigned int' It is pretty clear that this driver has not been used for a long time and there is no point fixing it now, so let's remove it. Signed-off-by: Arnd Bergmann Signed-off-by: David S. Miller drivers/isdn/Makefile | 1 - drivers/isdn/i4l/Kconfig | 2 - drivers/isdn/sc/Kconfig | 8 - drivers/isdn/sc/Makefile | 10 - drivers/isdn/sc/card.h | 131 ---------- drivers/isdn/sc/command.c | 363 --------------------------- drivers/isdn/sc/event.c | 68 ------ drivers/isdn/sc/hardware.h | 110 --------- drivers/isdn/sc/includes.h | 16 -- drivers/isdn/sc/init.c | 549 ----------------------------------------- drivers/isdn/sc/interrupt.c | 247 ------------------- drivers/isdn/sc/ioctl.c | 582 -------------------------------------------- drivers/isdn/sc/message.c | 230 ----------------- drivers/isdn/sc/message.h | 245 ------------------- drivers/isdn/sc/packet.c | 204 ---------------- drivers/isdn/sc/scioc.h | 110 --------- drivers/isdn/sc/shmem.c | 138 ----------- drivers/isdn/sc/timer.c | 122 ---------- 18 files changed, 3136 deletions(-) commit 2f7a791c92a6226cf6d9e2213a89a49da72fa574 Author: Giuseppe CAVALLARO Date: Mon Nov 30 11:33:10 2015 +0100 stmmac: support Reg_9 to get HW level information For GMAC newer than 3.40a there is a new register (Reg_9) that provides the status of all modules of the transmit and receive paths and FIFO status. These can be exposed via ethtool. Signed-off-by: Giuseppe Cavallaro Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/common.h | 26 ++++++++ drivers/net/ethernet/stmicro/stmmac/dwmac1000.h | 42 ++++++++++++ .../net/ethernet/stmicro/stmmac/dwmac1000_core.c | 75 ++++++++++++++++++++++ .../net/ethernet/stmicro/stmmac/stmmac_ethtool.c | 30 +++++++++ 4 files changed, 173 insertions(+) commit 88308c01a2c33bbab73abb3deac54b30f9754914 Merge: ee4db74 0f7db14 Author: David S. Miller Date: Tue Dec 1 16:02:41 2015 -0500 Merge branch 'qed-ethtool-ops' Yuval Mintz says: ==================== qede/qed: Implement various ethtool operations This series adds several new ethtool operations to qede: - {get, set}_channels - {get, set}_ringparam - set_phys_id - nway_reset - {get, set}_pauseparam As well as extending the qed APIs to support these commands. ==================== Signed-off-by: David S. Miller commit 0f7db144c09889c552779996d78ac85539a9eb9e Author: Sudarsana Kalluru Date: Mon Nov 30 12:25:06 2015 +0200 qede: Add support for {get, set}_pauseparam Signed-off-by: Sudarsana Kalluru Signed-off-by: Yuval Mintz Signed-off-by: David S. Miller drivers/net/ethernet/qlogic/qede/qede_ethtool.c | 60 +++++++++++++++++++++++++ 1 file changed, 60 insertions(+) commit 32a7a57003cd438e1ce358e75874024a8ebcec2d Author: Sudarsana Kalluru Date: Mon Nov 30 12:25:05 2015 +0200 qede: Add support for nway_reset Signed-off-by: Sudarsana Kalluru Signed-off-by: Yuval Mintz Signed-off-by: David S. Miller drivers/net/ethernet/qlogic/qede/qede_ethtool.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit 3d971cbd0be981a5c191558057734c2a19b6165d Author: Sudarsana Kalluru Date: Mon Nov 30 12:25:04 2015 +0200 qede: Add support for set_phys_id Signed-off-by: Sudarsana Kalluru Signed-off-by: Yuval Mintz Signed-off-by: David S. Miller drivers/net/ethernet/qlogic/qede/qede_ethtool.c | 29 +++++++++++++++++++++++++ 1 file changed, 29 insertions(+) commit 91420b83baa046ada1a899c97f3b2c52a9045705 Author: Sudarsana Kalluru Date: Mon Nov 30 12:25:03 2015 +0200 qed: Add support for changing LED state Physical LEDs are being controlled by the management FW. This adds the qed functionality required to request management FW to change the LED configuration, as well as the necessary APIs for this functionality to later be used by the protocol drivers. Signed-off-by: Sudarsana Kalluru Signed-off-by: Yuval Mintz Signed-off-by: David S. Miller drivers/net/ethernet/qlogic/qed/qed_hsi.h | 6 ++++++ drivers/net/ethernet/qlogic/qed/qed_main.c | 18 ++++++++++++++++++ drivers/net/ethernet/qlogic/qed/qed_mcp.c | 27 +++++++++++++++++++++++++++ drivers/net/ethernet/qlogic/qed/qed_mcp.h | 13 +++++++++++++ include/linux/qed/qed_if.h | 17 +++++++++++++++++ 5 files changed, 81 insertions(+) commit 01ef7e05cc83b83f5bab247cf7b74f953c59e7f0 Author: Sudarsana Kalluru Date: Mon Nov 30 12:25:02 2015 +0200 qede: Add support for {get, set}_ringparam Signed-off-by: Sudarsana Kalluru Signed-off-by: Yuval Mintz Signed-off-by: David S. Miller drivers/net/ethernet/qlogic/qede/qede.h | 4 +-- drivers/net/ethernet/qlogic/qede/qede_ethtool.c | 44 +++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 2 deletions(-) commit 8edf049d578e0877fb3e1a18a809a0b0a8e58e08 Author: Sudarsana Kalluru Date: Mon Nov 30 12:25:01 2015 +0200 qede: Add support for {get, set}_channels Signed-off-by: Sudarsana Kalluru Signed-off-by: Yuval Mintz Signed-off-by: David S. Miller drivers/net/ethernet/qlogic/qede/qede.h | 1 + drivers/net/ethernet/qlogic/qede/qede_ethtool.c | 53 +++++++++++++++++++++++++ drivers/net/ethernet/qlogic/qede/qede_main.c | 7 +++- 3 files changed, 59 insertions(+), 2 deletions(-) commit d74b518157dd10ec96ddd45d0f1b87ad31af0ccf Author: Arnd Bergmann Date: Mon Nov 30 23:23:41 2015 +0100 ARM: netx: remove unused mach/param.h I could not find any users of this file, past or present, and it contains only a comment, so let's remove it. Signed-off-by: Arnd Bergmann arch/arm/mach-netx/include/mach/param.h | 18 ------------------ 1 file changed, 18 deletions(-) commit 1d8f3c499b887ad6387ca02396d1947812406db6 Author: Arnd Bergmann Date: Fri Jan 30 10:45:33 2015 +0100 ARM: w90x900: make headers more local Some header files are never included outside of a mach-w90x900 directory and do not need to be made visible in include/mach, so let's just move them all down one level. Signed-off-by: Arnd Bergmann arch/arm/mach-w90x900/cpu.c | 4 +-- arch/arm/mach-w90x900/include/mach/regs-ebi.h | 33 ------------------- arch/arm/mach-w90x900/include/mach/regs-gcr.h | 39 ----------------------- arch/arm/mach-w90x900/include/mach/regs-timer.h | 42 ------------------------- arch/arm/mach-w90x900/include/mach/regs-usb.h | 35 --------------------- arch/arm/mach-w90x900/regs-ebi.h | 33 +++++++++++++++++++ arch/arm/mach-w90x900/regs-gcr.h | 39 +++++++++++++++++++++++ arch/arm/mach-w90x900/regs-timer.h | 42 +++++++++++++++++++++++++ arch/arm/mach-w90x900/regs-usb.h | 35 +++++++++++++++++++++ arch/arm/mach-w90x900/time.c | 2 +- 10 files changed, 152 insertions(+), 152 deletions(-) commit c11fc3491c566b7a47766c93f1baab1ac0d7de6a Author: Arnd Bergmann Date: Fri Jan 30 10:45:33 2015 +0100 ARM: iop13xx: make headers more local Some header files are never included outside of a mach-iop13xx directory and do not need to be made visible in include/mach, so let's just move them all down one level. Signed-off-by: Arnd Bergmann arch/arm/mach-iop13xx/include/mach/msi.h | 11 ------ arch/arm/mach-iop13xx/include/mach/pci.h | 57 ------------------------------- arch/arm/mach-iop13xx/iq81340mc.c | 2 +- arch/arm/mach-iop13xx/iq81340sc.c | 2 +- arch/arm/mach-iop13xx/irq.c | 2 +- arch/arm/mach-iop13xx/msi.h | 11 ++++++ arch/arm/mach-iop13xx/pci.c | 2 +- arch/arm/mach-iop13xx/pci.h | 58 ++++++++++++++++++++++++++++++++ 8 files changed, 73 insertions(+), 72 deletions(-) commit 3acf731ccad039d91721b6cd9fc85569e9f958ca Author: Arnd Bergmann Date: Fri Jan 30 10:45:33 2015 +0100 ARM: davinci: make headers more local Some header files are never included outside of a mach-davinci directory and do not need to be made visible in include/mach, so let's just move them all down one level. Signed-off-by: Arnd Bergmann Acked-by: Sekhar Nori arch/arm/mach-davinci/board-da830-evm.c | 2 +- arch/arm/mach-davinci/board-da850-evm.c | 4 +- arch/arm/mach-davinci/board-mityomapl138.c | 2 +- arch/arm/mach-davinci/board-omapl138-hawk.c | 2 +- arch/arm/mach-davinci/clock.c | 2 +- arch/arm/mach-davinci/cp_intc.c | 2 +- arch/arm/mach-davinci/cp_intc.h | 57 +++++++ arch/arm/mach-davinci/cpuidle.c | 4 +- arch/arm/mach-davinci/cpuidle.h | 18 +++ arch/arm/mach-davinci/da830.c | 2 +- arch/arm/mach-davinci/da850.c | 2 +- arch/arm/mach-davinci/da8xx-dt.c | 2 +- arch/arm/mach-davinci/ddr2.h | 4 + arch/arm/mach-davinci/devices-da8xx.c | 4 +- arch/arm/mach-davinci/dm355.c | 2 +- arch/arm/mach-davinci/dm365.c | 2 +- arch/arm/mach-davinci/dm644x.c | 2 +- arch/arm/mach-davinci/dm646x.c | 2 +- arch/arm/mach-davinci/include/mach/cp_intc.h | 57 ------- arch/arm/mach-davinci/include/mach/cpuidle.h | 18 --- arch/arm/mach-davinci/include/mach/ddr2.h | 4 - arch/arm/mach-davinci/include/mach/psc.h | 217 --------------------------- arch/arm/mach-davinci/include/mach/sram.h | 30 ---- arch/arm/mach-davinci/pm.c | 2 +- arch/arm/mach-davinci/psc.c | 2 +- arch/arm/mach-davinci/psc.h | 217 +++++++++++++++++++++++++++ arch/arm/mach-davinci/sleep.S | 4 +- arch/arm/mach-davinci/sram.c | 2 +- arch/arm/mach-davinci/sram.h | 30 ++++ 29 files changed, 349 insertions(+), 349 deletions(-) commit d8b2823e950cd9634eb4a01f563ee55afb39d549 Author: Arnd Bergmann Date: Fri Jan 30 10:45:33 2015 +0100 ARM: ks8695: make headers more local Some header files are never included outside of a mach-ks8695 directory and do not need to be made visible in include/mach, so let's just move them all down one level. Signed-off-by: Arnd Bergmann Acked-by: Greg Ungerer arch/arm/mach-ks8695/board-acs5k.c | 2 +- arch/arm/mach-ks8695/board-dsm320.c | 2 +- arch/arm/mach-ks8695/board-micrel.c | 2 +- arch/arm/mach-ks8695/board-og.c | 2 +- arch/arm/mach-ks8695/board-sg.c | 2 +- arch/arm/mach-ks8695/cpu.c | 2 +- arch/arm/mach-ks8695/devices.c | 6 +- arch/arm/mach-ks8695/devices.h | 32 ++++++++++ arch/arm/mach-ks8695/include/mach/devices.h | 32 ---------- arch/arm/mach-ks8695/include/mach/regs-hpna.h | 25 -------- arch/arm/mach-ks8695/include/mach/regs-lan.h | 65 ------------------- arch/arm/mach-ks8695/include/mach/regs-mem.h | 89 --------------------------- arch/arm/mach-ks8695/include/mach/regs-pci.h | 53 ---------------- arch/arm/mach-ks8695/include/mach/regs-sys.h | 34 ---------- arch/arm/mach-ks8695/include/mach/regs-wan.h | 65 ------------------- arch/arm/mach-ks8695/pci.c | 4 +- arch/arm/mach-ks8695/regs-hpna.h | 25 ++++++++ arch/arm/mach-ks8695/regs-lan.h | 65 +++++++++++++++++++ arch/arm/mach-ks8695/regs-mem.h | 89 +++++++++++++++++++++++++++ arch/arm/mach-ks8695/regs-pci.h | 53 ++++++++++++++++ arch/arm/mach-ks8695/regs-sys.h | 34 ++++++++++ arch/arm/mach-ks8695/regs-wan.h | 65 +++++++++++++++++++ 22 files changed, 374 insertions(+), 374 deletions(-) commit 100f9638fe7c291641418e33d08ff9a5b77803ac Author: Arnd Bergmann Date: Fri Jan 30 10:45:33 2015 +0100 ARM: omap1: make headers more local Some header files are never included outside of a mach-omap1 directory and do not need to be made visible in include/mach, so let's just move them all down one level. Signed-off-by: Arnd Bergmann Acked-by: Tony Lindgren arch/arm/mach-omap1/board-ams-delta.c | 2 +- arch/arm/mach-omap1/board-fsample.c | 2 +- arch/arm/mach-omap1/board-h2.c | 2 +- arch/arm/mach-omap1/board-h3.c | 2 +- arch/arm/mach-omap1/board-innovator.c | 2 +- arch/arm/mach-omap1/board-osk.c | 2 +- arch/arm/mach-omap1/board-palmte.c | 2 +- arch/arm/mach-omap1/board-palmtt.c | 2 +- arch/arm/mach-omap1/board-palmz71.c | 2 +- arch/arm/mach-omap1/board-perseus2.c | 2 +- arch/arm/mach-omap1/board-sx1-mmc.c | 2 +- arch/arm/mach-omap1/board-sx1.c | 4 +-- arch/arm/mach-omap1/board-sx1.h | 52 ++++++++++++++++++++++++++++ arch/arm/mach-omap1/camera.h | 13 +++++++ arch/arm/mach-omap1/devices.c | 2 +- arch/arm/mach-omap1/flash.c | 2 +- arch/arm/mach-omap1/flash.h | 17 +++++++++ arch/arm/mach-omap1/include/mach/board-sx1.h | 52 ---------------------------- arch/arm/mach-omap1/include/mach/camera.h | 13 ------- arch/arm/mach-omap1/include/mach/flash.h | 17 --------- 20 files changed, 97 insertions(+), 97 deletions(-) commit 4c25c5d2985c1db482cfe59ed9b3a07829a60ba9 Author: Arnd Bergmann Date: Fri Jan 30 10:45:33 2015 +0100 ARM: pxa: make more mach/*.h files local Lots of header files are never included outside of a mach-pxa directory and do not need to be made visible in include/mach, so let's just move them all down one level. Signed-off-by: Arnd Bergmann Documentation/arm/pxa/mfp.txt | 26 +- arch/arm/mach-pxa/am200epd.c | 4 +- arch/arm/mach-pxa/am300epd.c | 4 +- arch/arm/mach-pxa/balloon3.c | 6 +- arch/arm/mach-pxa/capc7117.c | 4 +- arch/arm/mach-pxa/cm-x255.c | 2 +- arch/arm/mach-pxa/cm-x270.c | 2 +- arch/arm/mach-pxa/cm-x2xx.c | 4 +- arch/arm/mach-pxa/cm-x300.c | 4 +- arch/arm/mach-pxa/colibri-evalboard.c | 6 +- arch/arm/mach-pxa/colibri-pxa270-income.c | 4 +- arch/arm/mach-pxa/colibri-pxa270.c | 4 +- arch/arm/mach-pxa/colibri-pxa300.c | 4 +- arch/arm/mach-pxa/colibri-pxa320.c | 8 +- arch/arm/mach-pxa/colibri-pxa3xx.c | 4 +- arch/arm/mach-pxa/colibri.h | 69 +++ arch/arm/mach-pxa/corgi.c | 6 +- arch/arm/mach-pxa/corgi_pm.c | 2 +- arch/arm/mach-pxa/csb726.c | 4 +- arch/arm/mach-pxa/csb726.h | 28 ++ arch/arm/mach-pxa/devices.c | 2 +- arch/arm/mach-pxa/em-x270.c | 4 +- arch/arm/mach-pxa/eseries-irq.h | 28 ++ arch/arm/mach-pxa/eseries.c | 6 +- arch/arm/mach-pxa/ezx.c | 2 +- arch/arm/mach-pxa/gumstix.c | 6 +- arch/arm/mach-pxa/gumstix.h | 92 ++++ arch/arm/mach-pxa/h5000.c | 6 +- arch/arm/mach-pxa/h5000.h | 113 +++++ arch/arm/mach-pxa/himalaya.c | 2 +- arch/arm/mach-pxa/hx4700.c | 2 +- arch/arm/mach-pxa/icontrol.c | 4 +- arch/arm/mach-pxa/idp.c | 4 +- arch/arm/mach-pxa/idp.h | 198 ++++++++ arch/arm/mach-pxa/include/mach/colibri.h | 69 --- arch/arm/mach-pxa/include/mach/csb726.h | 28 -- arch/arm/mach-pxa/include/mach/eseries-irq.h | 28 -- arch/arm/mach-pxa/include/mach/gumstix.h | 92 ---- arch/arm/mach-pxa/include/mach/h5000.h | 113 ----- arch/arm/mach-pxa/include/mach/idp.h | 198 -------- arch/arm/mach-pxa/include/mach/littleton.h | 13 - arch/arm/mach-pxa/include/mach/lpd270.h | 43 -- arch/arm/mach-pxa/include/mach/mfp-pxa25x.h | 225 --------- arch/arm/mach-pxa/include/mach/mfp-pxa27x.h | 471 ------------------ arch/arm/mach-pxa/include/mach/mfp-pxa2xx.h | 142 ------ arch/arm/mach-pxa/include/mach/mfp-pxa300.h | 575 ---------------------- arch/arm/mach-pxa/include/mach/mfp-pxa320.h | 461 ----------------- arch/arm/mach-pxa/include/mach/mfp-pxa3xx.h | 158 ------ arch/arm/mach-pxa/include/mach/mfp-pxa930.h | 498 ------------------- arch/arm/mach-pxa/include/mach/mioa701.h | 75 --- arch/arm/mach-pxa/include/mach/mxm8x10.h | 21 - arch/arm/mach-pxa/include/mach/palm27x.h | 81 --- arch/arm/mach-pxa/include/mach/palmt5.h | 86 ---- arch/arm/mach-pxa/include/mach/palmte2.h | 68 --- arch/arm/mach-pxa/include/mach/palmtreo.h | 68 --- arch/arm/mach-pxa/include/mach/palmz72.h | 84 ---- arch/arm/mach-pxa/include/mach/pcm027.h | 86 ---- arch/arm/mach-pxa/include/mach/pcm990_baseboard.h | 212 -------- arch/arm/mach-pxa/include/mach/pm.h | 40 -- arch/arm/mach-pxa/include/mach/pxa25x.h | 9 - arch/arm/mach-pxa/include/mach/pxa27x-udc.h | 257 ---------- arch/arm/mach-pxa/include/mach/pxa27x.h | 25 - arch/arm/mach-pxa/include/mach/pxa300.h | 7 - arch/arm/mach-pxa/include/mach/pxa320.h | 8 - arch/arm/mach-pxa/include/mach/pxa3xx.h | 8 - arch/arm/mach-pxa/include/mach/pxa930.h | 7 - arch/arm/mach-pxa/include/mach/regs-rtc.h | 23 - arch/arm/mach-pxa/include/mach/regs-u2d.h | 200 -------- arch/arm/mach-pxa/include/mach/sharpsl_pm.h | 113 ----- arch/arm/mach-pxa/include/mach/tosa_bt.h | 22 - arch/arm/mach-pxa/include/mach/udc.h | 8 - arch/arm/mach-pxa/include/mach/viper.h | 94 ---- arch/arm/mach-pxa/include/mach/zeus.h | 85 ---- arch/arm/mach-pxa/include/mach/zylonite.h | 42 -- arch/arm/mach-pxa/littleton.c | 4 +- arch/arm/mach-pxa/littleton.h | 13 + arch/arm/mach-pxa/lpd270.c | 4 +- arch/arm/mach-pxa/lpd270.h | 43 ++ arch/arm/mach-pxa/lubbock.c | 6 +- arch/arm/mach-pxa/magician.c | 6 +- arch/arm/mach-pxa/mainstone.c | 2 +- arch/arm/mach-pxa/mfp-pxa25x.h | 225 +++++++++ arch/arm/mach-pxa/mfp-pxa27x.h | 471 ++++++++++++++++++ arch/arm/mach-pxa/mfp-pxa2xx.c | 2 +- arch/arm/mach-pxa/mfp-pxa2xx.h | 142 ++++++ arch/arm/mach-pxa/mfp-pxa300.h | 575 ++++++++++++++++++++++ arch/arm/mach-pxa/mfp-pxa320.h | 461 +++++++++++++++++ arch/arm/mach-pxa/mfp-pxa3xx.c | 2 +- arch/arm/mach-pxa/mfp-pxa3xx.h | 158 ++++++ arch/arm/mach-pxa/mfp-pxa930.h | 498 +++++++++++++++++++ arch/arm/mach-pxa/mioa701.c | 10 +- arch/arm/mach-pxa/mioa701.h | 75 +++ arch/arm/mach-pxa/mp900.c | 2 +- arch/arm/mach-pxa/mxm8x10.c | 4 +- arch/arm/mach-pxa/mxm8x10.h | 21 + arch/arm/mach-pxa/palm27x.c | 6 +- arch/arm/mach-pxa/palm27x.h | 81 +++ arch/arm/mach-pxa/palmld.c | 4 +- arch/arm/mach-pxa/palmt5.c | 8 +- arch/arm/mach-pxa/palmt5.h | 86 ++++ arch/arm/mach-pxa/palmtc.c | 4 +- arch/arm/mach-pxa/palmte2.c | 6 +- arch/arm/mach-pxa/palmte2.h | 68 +++ arch/arm/mach-pxa/palmtreo.c | 10 +- arch/arm/mach-pxa/palmtreo.h | 68 +++ arch/arm/mach-pxa/palmtx.c | 6 +- arch/arm/mach-pxa/palmz72.c | 10 +- arch/arm/mach-pxa/palmz72.h | 84 ++++ arch/arm/mach-pxa/pcm027.c | 4 +- arch/arm/mach-pxa/pcm027.h | 86 ++++ arch/arm/mach-pxa/pcm990-baseboard.c | 4 +- arch/arm/mach-pxa/pcm990_baseboard.h | 212 ++++++++ arch/arm/mach-pxa/pm.c | 2 +- arch/arm/mach-pxa/pm.h | 40 ++ arch/arm/mach-pxa/poodle.c | 4 +- arch/arm/mach-pxa/pxa25x.c | 4 +- arch/arm/mach-pxa/pxa25x.h | 9 + arch/arm/mach-pxa/pxa27x-udc.h | 257 ++++++++++ arch/arm/mach-pxa/pxa27x.c | 4 +- arch/arm/mach-pxa/pxa27x.h | 25 + arch/arm/mach-pxa/pxa2xx.c | 2 +- arch/arm/mach-pxa/pxa300.c | 2 +- arch/arm/mach-pxa/pxa300.h | 7 + arch/arm/mach-pxa/pxa320.c | 2 +- arch/arm/mach-pxa/pxa320.h | 8 + arch/arm/mach-pxa/pxa3xx-ulpi.c | 2 +- arch/arm/mach-pxa/pxa3xx.c | 2 +- arch/arm/mach-pxa/pxa3xx.h | 8 + arch/arm/mach-pxa/pxa930.c | 2 +- arch/arm/mach-pxa/pxa930.h | 7 + arch/arm/mach-pxa/raumfeld.c | 2 +- arch/arm/mach-pxa/regs-rtc.h | 23 + arch/arm/mach-pxa/regs-u2d.h | 200 ++++++++ arch/arm/mach-pxa/saar.c | 2 +- arch/arm/mach-pxa/sharpsl_pm.c | 6 +- arch/arm/mach-pxa/sharpsl_pm.h | 113 +++++ arch/arm/mach-pxa/spitz.c | 6 +- arch/arm/mach-pxa/spitz_pm.c | 4 +- arch/arm/mach-pxa/stargate2.c | 6 +- arch/arm/mach-pxa/tavorevb.c | 2 +- arch/arm/mach-pxa/tosa-bt.c | 2 +- arch/arm/mach-pxa/tosa.c | 6 +- arch/arm/mach-pxa/tosa_bt.h | 22 + arch/arm/mach-pxa/trizeps4.c | 2 +- arch/arm/mach-pxa/udc.h | 8 + arch/arm/mach-pxa/viper.c | 4 +- arch/arm/mach-pxa/viper.h | 94 ++++ arch/arm/mach-pxa/vpac270.c | 6 +- arch/arm/mach-pxa/xcep.c | 2 +- arch/arm/mach-pxa/z2.c | 6 +- arch/arm/mach-pxa/zeus.c | 10 +- arch/arm/mach-pxa/zeus.h | 85 ++++ arch/arm/mach-pxa/zylonite.c | 4 +- arch/arm/mach-pxa/zylonite.h | 42 ++ arch/arm/mach-pxa/zylonite_pxa300.c | 4 +- arch/arm/mach-pxa/zylonite_pxa320.c | 4 +- drivers/clk/pxa/clk-pxa25x.c | 1 - 157 files changed, 5015 insertions(+), 5016 deletions(-) commit b28210421c329766275b020ffeadce0a4e9d551f Author: Arnd Bergmann Date: Fri Feb 27 21:44:40 2015 +0100 ARM: s3c64xx: allow building without board support Most of the code for the s3c64xx platform is only used when booting with ATAGS based board files, but not when using device-tree. This tries to identify all the s3c64xx specific code that is unneeded when CONFIG_ATAGS is not set, so we can build a smaller DT-only kernel if configured that way. All board support is still left intact but now depends on the CONFIG_ATAGS symbol that users may intentionally disable. Signed-off-by: Arnd Bergmann arch/arm/mach-s3c64xx/Kconfig | 19 ++++++++++++++----- arch/arm/mach-s3c64xx/Makefile | 21 ++++++++++++--------- arch/arm/mach-s3c64xx/include/mach/gpio-samsung.h | 3 +++ arch/arm/plat-samsung/pm.c | 4 ---- 4 files changed, 29 insertions(+), 18 deletions(-) commit af37eec0653128e991d20b8c1fc763ed1cde96c7 Author: Arnd Bergmann Date: Mon Jul 7 14:25:15 2014 +0200 ARM: s3c64xx: multiplatform support After all preparation work is done, we can finally move the Kconfig option for s3c64xx into ARCH_MULTIPLATFORM. This implies allowing SAMSUNG_ATAGS for multiplatform again, but now disallowing the ADC driver below it, as that still has dependencies on header files. Signed-off-by: Arnd Bergmann arch/arm/Kconfig | 27 --------------------------- arch/arm/configs/multi_v7_defconfig | 3 +++ arch/arm/configs/s3c6400_defconfig | 2 ++ arch/arm/mach-s3c64xx/Kconfig | 22 +++++++++++++++++++++- arch/arm/mach-s3c64xx/Makefile | 3 +++ arch/arm/plat-samsung/Kconfig | 2 +- arch/arm/plat-samsung/Makefile | 3 ++- 7 files changed, 32 insertions(+), 30 deletions(-) commit bb08dea1a0d092701dcf739bb8db1ef8aa5f6d14 Author: Arnd Bergmann Date: Fri Jul 25 17:11:24 2014 +0200 ARM: s3c64xx: use common debug-ll implementation The uart on s3c64xx is essentially the same as on s3c24xx, so we can share a single assembler file. However, the addresses are different, and we need to add the respective Kconfig magic to get the right addresses. Signed-off-by: Arnd Bergmann arch/arm/Kconfig.debug | 19 +++++++++++- arch/arm/mach-s3c64xx/include/mach/debug-macro.S | 38 ------------------------ 2 files changed, 18 insertions(+), 39 deletions(-) commit a829ae57f8b17bbebc7b9b2cbec99686b88a9e25 Author: Arnd Bergmann Date: Mon Mar 2 09:47:23 2015 +0100 ARM: s3c64xx: use new adc/touchscreen driver The old ADC and touchscreen drivers are not compatible with multiplatform support, but we can use the exynos-adc driver as a replacement. This changes the common device creation functions for s3c64xx (but not s3c24xx for now) to use the new driver. To do this, we have to pass the interrupt resources in the opposite order and pass the platform data in the adc device node. Signed-off-by: Arnd Bergmann arch/arm/mach-s3c64xx/mach-mini6410.c | 3 +-- arch/arm/mach-s3c64xx/mach-real6410.c | 3 +-- arch/arm/mach-s3c64xx/mach-smartq.c | 3 +-- arch/arm/mach-s3c64xx/mach-smdk6410.c | 3 +-- arch/arm/plat-samsung/devs.c | 22 +++++----------------- include/linux/platform_data/touchscreen-s3c2410.h | 1 + 6 files changed, 10 insertions(+), 25 deletions(-) commit 2bb8ad9b44c528a7f8c0e9120b85b9ecc69b2bbe Author: Arnd Bergmann Date: Fri Jul 18 18:58:57 2014 +0200 iio: exynos-adc: add experimental touchscreen support This adds support for the touchscreen on Samsung s3c64xx. The driver is completely untested but shows roughly how it could be done, following the example of the at91 driver. compared to the old plat-samsung/adc driver, there is no support for prioritizing ts over other clients, nor for oversampling. From my reading of the code, the priorities didn't actually have any effect at all, but the oversampling might be needed. Verifying this driver is the main issue that is currently holding up multiplatform support for s3c64xx, so any help in testing is very much appreciated. The current version uses the IS_REACHABLE() that is going to be introduced in the linux-media tree, please comment this out for testing. Signed-off-by: Arnd Bergmann Acked-by: Dmitry Torokhov .../devicetree/bindings/arm/samsung/exynos-adc.txt | 3 + drivers/iio/adc/exynos_adc.c | 224 ++++++++++++++++++++- 2 files changed, 220 insertions(+), 7 deletions(-) commit ba279044560b1d2d2237beefb1a695f43f23fc06 Author: Arnd Bergmann Date: Fri Feb 27 22:06:58 2015 +0100 ARM: s3c64xx: enable sparse IRQ support This is another prerequisite for enabling multiplatform support, and it is the part I am least certain about. I assume it will cause the extra boot message "Cannot allocate irq_descs @ IRQ%d, assuming pre-allocated" to be printed, but otherwise work ok. This definitely needs to be tested on real hardware to see if it works. Signed-off-by: Arnd Bergmann arch/arm/Kconfig | 1 + arch/arm/mach-s3c64xx/common.c | 1 + arch/arm/mach-s3c64xx/dev-uart.c | 1 + arch/arm/mach-s3c64xx/include/mach/irqs.h | 20 +++----------------- arch/arm/mach-s3c64xx/include/mach/pm-core.h | 1 + arch/arm/mach-s3c64xx/mach-anw6410.c | 3 ++- arch/arm/mach-s3c64xx/mach-crag6410-module.c | 2 ++ arch/arm/mach-s3c64xx/mach-crag6410.c | 2 ++ arch/arm/mach-s3c64xx/mach-hmt.c | 2 ++ arch/arm/mach-s3c64xx/mach-mini6410.c | 2 ++ arch/arm/mach-s3c64xx/mach-ncp.c | 2 ++ arch/arm/mach-s3c64xx/mach-real6410.c | 3 ++- arch/arm/mach-s3c64xx/mach-smartq5.c | 2 ++ arch/arm/mach-s3c64xx/mach-smartq7.c | 2 ++ arch/arm/mach-s3c64xx/mach-smdk6400.c | 3 ++- arch/arm/mach-s3c64xx/mach-smdk6410.c | 3 ++- arch/arm/plat-samsung/gpio-samsung.c | 1 + 17 files changed, 30 insertions(+), 21 deletions(-) commit a0e157afd0c3ecb2e953eb41da04da2bf0e3d6c3 Author: Arnd Bergmann Date: Fri Feb 27 20:31:51 2015 +0100 ARM: s3c64xx: prepare initcalls for multiplatform In a multiplatform kernel, each initcall is run regardless of the platform it is meant for, so it must not attempt to access SoC-specific registers. This adds 'if (soc_is_s3c64xx)' to all initcalls that are specific to the s3c64xx platform, to prevent them from breaking other platforms once we can build them into a combined kernel. Signed-off-by: Arnd Bergmann Reviewed-by: Krzysztof Kozlowski arch/arm/mach-s3c64xx/common.c | 4 ++-- arch/arm/mach-s3c64xx/cpuidle.c | 5 ++++- arch/arm/mach-s3c64xx/irq-pm.c | 2 +- arch/arm/mach-s3c64xx/mach-crag6410-module.c | 4 ++++ arch/arm/mach-s3c64xx/pl080.c | 4 ++++ arch/arm/mach-s3c64xx/pm.c | 4 ++++ arch/arm/mach-s3c64xx/s3c6400.c | 2 +- arch/arm/mach-s3c64xx/s3c6410.c | 2 +- arch/arm/plat-samsung/gpio-samsung.c | 11 +++++------ arch/arm/plat-samsung/init.c | 5 +++++ 10 files changed, 31 insertions(+), 12 deletions(-) commit 0f20e456bd0542b7bf8cae8f553142405a8ab430 Author: Arnd Bergmann Date: Fri Feb 27 21:54:18 2015 +0100 gpio: samsung: move gpio-samsung driver back to platform code The gpio-samsung driver is special in the sense that it interacts directly in multiple ways with the legacy platform code for the s3c24xx and s3c64xx platforms. In contrast, all devicetree based machines for Samsung, including the ones on those two SoC families use a different driver. The header files that define the interface between the platform code and the gpio driver are not visible when building a kernel for ARCH_MULTIPLATFORM, which prevents us from turning on this option for s3c64xx. To work around this, we now move the driver back into platform code, from where it was originally moved to as part of commit 1b39d5f2cc5c28 ("gpio/samsung: gpio-samsung.c to support Samsung GPIOs"). The long-term plan for this driver would be to remove it entirely, after all Samsung machines have been converted over to boot from DT, but there is currently no timeline for when that might happen. Signed-off-by: Arnd Bergmann Reviewed-by: Krzysztof Kozlowski arch/arm/plat-samsung/Kconfig | 3 + arch/arm/plat-samsung/Makefile | 2 + arch/arm/plat-samsung/gpio-samsung.c | 1328 ++++++++++++++++++++++++++++++++++ drivers/gpio/Kconfig | 7 - drivers/gpio/Makefile | 1 - drivers/gpio/gpio-samsung.c | 1328 ---------------------------------- 6 files changed, 1333 insertions(+), 1336 deletions(-) commit df0cc2d1e15f739a428f630feb62ce6f040a4e19 Author: Arnd Bergmann Date: Wed Jul 9 11:09:42 2014 +0200 ASoC: samsung/smartq: use dynamic registration As a prerequisite for moving s3c64xx into multiplatform configurations, we need to change the smartq audio driver to stop using hardcoded gpio numbers from the header file, and instead pass the gpio data through platform_data. In order to do that, we also move the code to use module_platform_driver and register the platform device using platform_device_register_simple and register the gpios through the gpiod API. Signed-off-by: Arnd Bergmann Acked-by: Mark Brown Reviewed-by: Krzysztof Kozlowski arch/arm/mach-s3c64xx/mach-smartq.c | 13 +++++++ sound/soc/samsung/smartq_wm8987.c | 76 +++++++++++++------------------------ 2 files changed, 39 insertions(+), 50 deletions(-) commit 94eb81ad43cedbb8354a14130329f06853b31a60 Author: Arnd Bergmann Date: Thu Jul 10 15:40:32 2014 +0200 Input: s3c2410_ts: fix S3C_ADC dependency S3C_ADC is only available on machines that don't do ARCH_MULTIPLATFORM, so changing the 'select' into 'depends on' here helps us move to ARCH_MULTIPLATFORM without introducing regressions. Signed-off-by: Arnd Bergmann Acked-by: Dmitry Torokhov Reviewed-by: Krzysztof Kozlowski drivers/input/touchscreen/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ee4db742c9d182a323f78163c07a85316159e70e Merge: 02fff96 dd248f1 Author: David S. Miller Date: Tue Dec 1 15:46:40 2015 -0500 Merge branch 'sfc-8000' Bert Kenward says: ==================== Basic support for Solarflare 8000 series NICs The upcoming Solarflare 8000 series 10G/40G network card supports a similar interface to the current 7000 series cards. This patch series provides basic support for these cards, making no use of any new functionality. v2: fix indenting in ef10.c in patch 1/2. ==================== Signed-off-by: David S. Miller commit dd248f1bc65b49cba622a7e925d90d790e572996 Author: Bert Kenward Date: Mon Nov 30 09:05:47 2015 +0000 sfc: Add PCI ID for Solarflare 8000 series 10/40G NIC Also add support for 7000 series 40G NIC VF. Signed-off-by: Bert Kenward Signed-off-by: David S. Miller drivers/net/ethernet/sfc/efx.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 93171b14a5455442f973172ebdfae24c205c0f11 Author: Bert Kenward Date: Mon Nov 30 09:05:35 2015 +0000 sfc: make TSO version a per-queue parameter The Solarflare 8000 series NIC will use a new TSO scheme. The current driver refuses to load if the current TSO scheme is not found. Remove that check and instead make the TSO version a per-queue parameter. Signed-off-by: Bert Kenward Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 13 ++++++------- drivers/net/ethernet/sfc/net_driver.h | 2 ++ drivers/net/ethernet/sfc/tx.c | 8 ++++++-- 3 files changed, 14 insertions(+), 9 deletions(-) commit 84f45ee9d7f08cc0c0f9276573e1bdf53ccdd58b Author: Arnd Bergmann Date: Tue Jan 13 12:46:31 2015 +0100 ARM: mmp: avoid unused functions mach-mmp/devices.c:81:21: warning: 'u2o_get' defined but not used [-Wunused-function] static unsigned int u2o_get(void __iomem *base, unsigned int offset) ^ mach-mmp/devices.c:86:13: warning: 'u2o_set' defined but not used [-Wunused-function] static void u2o_set(void __iomem *base, unsigned int offset, ^ mach-mmp/devices.c:97:13: warning: 'u2o_clear' defined but not used [-Wunused-function] static void u2o_clear(void __iomem *base, unsigned int offset, ^ mach-mmp/devices.c:108:13: warning: 'u2o_write' defined but not used [-Wunused-function] static void u2o_write(void __iomem *base, unsigned int offset, ^ Signed-off-by: Arnd Bergmann arch/arm/mach-mmp/devices.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 377524dc4d77f50e19392d619f531cc3c9435d1b Author: Arnd Bergmann Date: Tue Apr 15 17:30:43 2014 +0200 ARM: mmp: move into ARCH_MULTIPLATFORM With all dependencies taken care of, this enables building the Marvell mmp platform as part of ARCH_MULTIPLATFORM, along with other ARMv5 and ARMv7 platforms. Signed-off-by: Arnd Bergmann Acked-by: Andrew Lunn arch/arm/Kconfig | 16 ---------- arch/arm/mach-mmp/Kconfig | 34 +++++++++++++++++----- arch/arm/mach-mmp/Makefile | 1 + arch/arm/mach-mmp/include/mach/uncompress.h | 45 ----------------------------- arch/arm/plat-pxa/Makefile | 1 + 5 files changed, 28 insertions(+), 69 deletions(-) commit b501fd7b1c0f10d3967d3abbd6c9d091b3384999 Author: Arnd Bergmann Date: Tue Apr 15 20:38:32 2014 +0200 ARM: mmp: make all header files local The mach/*.h headers are now inaccessible to any external code, so we can move them all into the mach-mmp directory itself and remove the subdirectories. A few headers are not used at all, so we remove them here. Signed-off-by: Arnd Bergmann arch/arm/mach-mmp/addr-map.h | 44 +++ arch/arm/mach-mmp/aspenite.c | 8 +- arch/arm/mach-mmp/avengers_lite.c | 8 +- arch/arm/mach-mmp/brownstone.c | 8 +- arch/arm/mach-mmp/clock-mmp2.c | 2 +- arch/arm/mach-mmp/clock-pxa168.c | 2 +- arch/arm/mach-mmp/clock-pxa910.c | 2 +- arch/arm/mach-mmp/clock.c | 2 +- arch/arm/mach-mmp/clock.h | 2 - arch/arm/mach-mmp/common.c | 4 +- arch/arm/mach-mmp/cputype.h | 55 ++++ arch/arm/mach-mmp/devices.c | 8 +- arch/arm/mach-mmp/devices.h | 56 ++++ arch/arm/mach-mmp/flint.c | 8 +- arch/arm/mach-mmp/gplugd.c | 6 +- arch/arm/mach-mmp/include/mach/addr-map.h | 46 ---- arch/arm/mach-mmp/include/mach/cputype.h | 55 ---- arch/arm/mach-mmp/include/mach/devices.h | 56 ---- arch/arm/mach-mmp/include/mach/hardware.h | 4 - arch/arm/mach-mmp/include/mach/irqs.h | 239 ---------------- arch/arm/mach-mmp/include/mach/mfp-mmp2.h | 395 --------------------------- arch/arm/mach-mmp/include/mach/mfp-pxa168.h | 354 ------------------------ arch/arm/mach-mmp/include/mach/mfp-pxa910.h | 169 ------------ arch/arm/mach-mmp/include/mach/mfp.h | 34 --- arch/arm/mach-mmp/include/mach/mmp2.h | 102 ------- arch/arm/mach-mmp/include/mach/pm-mmp2.h | 61 ----- arch/arm/mach-mmp/include/mach/pm-pxa910.h | 77 ------ arch/arm/mach-mmp/include/mach/pxa168.h | 137 ---------- arch/arm/mach-mmp/include/mach/pxa910.h | 87 ------ arch/arm/mach-mmp/include/mach/regs-apbc.h | 24 -- arch/arm/mach-mmp/include/mach/regs-apmu.h | 33 --- arch/arm/mach-mmp/include/mach/regs-icu.h | 71 ----- arch/arm/mach-mmp/include/mach/regs-smc.h | 37 --- arch/arm/mach-mmp/include/mach/regs-timers.h | 44 --- arch/arm/mach-mmp/include/mach/regs-usb.h | 253 ----------------- arch/arm/mach-mmp/include/mach/teton_bga.h | 27 -- arch/arm/mach-mmp/irqs.h | 239 ++++++++++++++++ arch/arm/mach-mmp/jasper.c | 8 +- arch/arm/mach-mmp/mfp-mmp2.h | 395 +++++++++++++++++++++++++++ arch/arm/mach-mmp/mfp-pxa168.h | 354 ++++++++++++++++++++++++ arch/arm/mach-mmp/mfp-pxa910.h | 169 ++++++++++++ arch/arm/mach-mmp/mfp.h | 34 +++ arch/arm/mach-mmp/mmp2.c | 16 +- arch/arm/mach-mmp/mmp2.h | 103 +++++++ arch/arm/mach-mmp/pm-mmp2.c | 12 +- arch/arm/mach-mmp/pm-mmp2.h | 61 +++++ arch/arm/mach-mmp/pm-pxa910.c | 12 +- arch/arm/mach-mmp/pm-pxa910.h | 77 ++++++ arch/arm/mach-mmp/pxa168.c | 22 +- arch/arm/mach-mmp/pxa168.h | 138 ++++++++++ arch/arm/mach-mmp/pxa910.c | 16 +- arch/arm/mach-mmp/pxa910.h | 88 ++++++ arch/arm/mach-mmp/regs-apbc.h | 22 ++ arch/arm/mach-mmp/regs-apmu.h | 31 +++ arch/arm/mach-mmp/regs-icu.h | 69 +++++ arch/arm/mach-mmp/regs-timers.h | 42 +++ arch/arm/mach-mmp/regs-usb.h | 253 +++++++++++++++++ arch/arm/mach-mmp/tavorevb.c | 8 +- arch/arm/mach-mmp/teton_bga.c | 10 +- arch/arm/mach-mmp/teton_bga.h | 25 ++ arch/arm/mach-mmp/time.c | 11 +- arch/arm/mach-mmp/ttc_dkb.c | 10 +- 62 files changed, 2346 insertions(+), 2399 deletions(-) commit 8bf42cc8888f1475728104d386fc9306b8ef7e3e Author: Arnd Bergmann Date: Tue Apr 15 20:33:14 2014 +0200 ARM: mmp: make plat-pxa build standalone The ssp.c driver in plat-pxa is the only remaining file including a mach/*.h header from mmp. It actually doesn't need mach/hardware.h at all, so we can remove the #include. Signed-off-by: Arnd Bergmann arch/arm/plat-pxa/ssp.c | 1 - 1 file changed, 1 deletion(-) commit 74911e3a0eca6b3e03bc0764af9486b783b44ebf Author: Arnd Bergmann Date: Tue Apr 15 17:36:43 2014 +0200 ARM: mmp: remove remaining legacy pxa-dma support All drivers have stopped using this code, so we can just as well stop initializing it. Signed-off-by: Arnd Bergmann arch/arm/mach-mmp/include/mach/dma.h | 13 ------------- arch/arm/mach-mmp/mmp2.c | 2 -- arch/arm/mach-mmp/pxa168.c | 2 -- arch/arm/mach-mmp/pxa910.c | 2 -- arch/arm/plat-pxa/Makefile | 2 +- 5 files changed, 1 insertion(+), 20 deletions(-) commit 0f67b876092ae4fabe6ff81a92c785a69edb0022 Author: Arnd Bergmann Date: Wed Apr 16 09:54:02 2014 +0200 ARM: mohawk: allow building with MMU disabled It is in principle possible to build an MMP kernel for the mohawk CPU with the MMU code disabled, except for one simple build error: proc-mohawk.S:345: Error: invalid operands (*UND* and *UND* sections) for `|' proc-mohawk.S:345: Error: invalid operands (*ABS* and *UND* sections) for `|' proc-mohawk.S:345: Error: invalid operands (*UND* and *UND* sections) for `|' proc-mohawk.S:345: Error: invalid operands (*UND* and *UND* sections) for `|' proc-mohawk.S:345: Error: undefined symbol L_PTE_USER used as an immediate value This patch changes the proc-mohawk code to do the same as the other CPUs and not try to actually do anything for the cpu_mohawk_set_pte_ext function, which won't be used anyway. Signed-off-by: Arnd Bergmann arch/arm/mm/proc-mohawk.S | 2 ++ 1 file changed, 2 insertions(+) commit d33c43ac185e2921e0f541872719588c3d491c60 Author: Arnd Bergmann Date: Tue Apr 15 15:38:39 2014 +0200 ARM: make xscale iwmmxt code multiplatform aware In a multiplatform configuration, we may end up building a kernel for both Marvell PJ1 and an ARMv4 CPU implementation. In that case, the xscale-cp0 code is built with gcc -march=armv4{,t}, which results in a build error from the coprocessor instructions. Since we know this code will only have to run on an actual xscale processor, we can simply build the entire file for ARMv5TE. Related to this, we need to handle the iWMMXT initialization sequence differently during boot, to ensure we don't try to touch xscale specific registers on other CPUs from the xscale_cp0_init initcall. cpu_is_xscale() used to be hardcoded to '1' in any configuration that enables any XScale-compatible core, but this breaks once we can have a combined kernel with MMP1 and something else. In this patch, I replace the existing cpu_is_xscale() macro with a new cpu_is_xscale_family() macro that evaluates true for xscale, xsc3 and mohawk, which makes the behavior more deterministic. The two existing users of cpu_is_xscale() are modified accordingly, but slightly change behavior for kernels that enable CPU_MOHAWK without also enabling CPU_XSCALE or CPU_XSC3. Previously, these would leave leave PMD_BIT4 in the page tables untouched, now they clear it as we've always done for kernels that enable both MOHAWK and the support for the older CPU types. Since the previous behavior was inconsistent, I assume it was unintentional. Signed-off-by: Arnd Bergmann arch/arm/include/asm/cputype.h | 22 +++++++++++++++++++--- arch/arm/kernel/xscale-cp0.c | 7 +++++++ arch/arm/mm/idmap.c | 2 +- arch/arm/mm/mmu.c | 2 +- 4 files changed, 28 insertions(+), 5 deletions(-) commit 990f2f223cb479a15afda9eb8552582aa82e2404 Author: Arnd Bergmann Date: Tue Apr 15 15:20:50 2014 +0200 clk: mmp: stop using platform headers The mmp clock drivers currently hardcode the physical addresses for the clock registers. This is generally a bad idea, and it also gets in the way of multiplatform builds, which make the platform header files inaccessible to device drivers. To work around the header file problem, this patch changes the calling convention so the three mmp clock drivers get initialized with the base addresses as arguments from the platform code. It would still be useful to have a larger rework of the clock drivers, with DT integration to let the clocks actually be probed automatically, and the base addresses passed as DT properties. I am unsure if anyone is still interested in the mmp platform, so it is possible that this won't happen. Signed-off-by: Arnd Bergmann Cc: Mike Turquette Cc: Chao Xie Cc: Eric Miao Cc: Haojian Zhuang arch/arm/mach-mmp/clock-mmp2.c | 4 +++- arch/arm/mach-mmp/clock-pxa168.c | 4 +++- arch/arm/mach-mmp/clock-pxa910.c | 4 +++- arch/arm/mach-mmp/common.h | 3 --- arch/arm/mach-mmp/mmp2.c | 5 ++++- arch/arm/mach-mmp/pxa168.c | 5 ++++- arch/arm/mach-mmp/pxa910.c | 6 +++++- drivers/clk/mmp/clk-mmp2.c | 12 ++++++------ drivers/clk/mmp/clk-pxa168.c | 12 ++++++------ drivers/clk/mmp/clk-pxa910.c | 14 +++++++------- include/linux/clk/mmp.h | 17 +++++++++++++++++ 11 files changed, 58 insertions(+), 28 deletions(-) commit 02fff96a79775b7adc34eb599fc6b0476ccda520 Author: Nikolay Aleksandrov Date: Sat Nov 28 13:45:28 2015 +0100 net: add support for netdev notifier error injection This module allows to insert errors in some of netdevice's notifier events. All network drivers use these notifiers to signal various events and to check if they are allowed, e.g. PRECHANGEMTU and CHANGEMTU afterwards. Until recently I had to run failure tests by injecting a custom module, but now this infrastructure makes it trivial to test these failure paths. Some of the recent bugs I fixed were found using this module. Here's an example: $ cd /sys/kernel/debug/notifier-error-inject/netdev $ echo -22 > actions/NETDEV_CHANGEMTU/error $ ip link set eth0 mtu 1024 RTNETLINK answers: Invalid argument CC: Akinobu Mita CC: "David S. Miller" CC: netdev Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller .../fault-injection/notifier-error-inject.txt | 24 ++++++++++ lib/Kconfig.debug | 23 +++++++++ lib/Makefile | 1 + lib/netdev-notifier-error-inject.c | 54 ++++++++++++++++++++++ 4 files changed, 102 insertions(+) commit 7f9354f26e3f84d349615e17888111ae204557a0 Author: Andrew F. Davis Date: Tue Dec 1 12:44:03 2015 -0600 regulator: tps65086: Update regulator driver for the TPS65086 PMIC Make changes to allow this driver to work with the updated TPS65086 core driver and bindings. Signed-off-by: Andrew F. Davis Signed-off-by: Mark Brown drivers/regulator/tps65086-regulator.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 27a70af3f4cf633a1b86c0ac7b426e2fe16ad2e5 Author: Vitaly Kuznetsov Date: Fri Nov 27 11:39:55 2015 +0100 hv_netvsc: rework link status change handling There are several issues in hv_netvsc driver with regards to link status change handling: - RNDIS_STATUS_NETWORK_CHANGE results in calling userspace helper doing '/etc/init.d/network restart' and this is inappropriate and broken for many reasons. - link_watch infrastructure only sends one notification per second and in case of e.g. paired disconnect/connect events we get only one notification with last status. This makes it impossible to handle such situations in userspace. Redo link status changes handling in the following way: - Create a list of reconfig events in network device context. - On a reconfig event add it to the list of events and schedule netvsc_link_change(). - In netvsc_link_change() ensure 2-second delay between link status changes. - Handle RNDIS_STATUS_NETWORK_CHANGE as a paired disconnect/connect event. Signed-off-by: Vitaly Kuznetsov Signed-off-by: David S. Miller drivers/net/hyperv/hyperv_net.h | 14 +++- drivers/net/hyperv/netvsc_drv.c | 142 +++++++++++++++++++++++++++------------- 2 files changed, 108 insertions(+), 48 deletions(-) commit 77b75f4d8cf105b599beef38724f8171e557919d Author: Rainer Weikusat Date: Thu Nov 26 19:23:15 2015 +0000 unix: use wq_has_sleeper in unix_dgram_recvmsg The current unix_dgram_recvmsg does a wake up for every received datagram. This seems wasteful as only SOCK_DGRAM client sockets in an n:1 association with a server socket will ever wait because of the associated condition. The patch below changes the function such that the wake up only happens if wq_has_sleeper indicates that someone actually wants to be notified. Testing with SOCK_SEQPACKET and SOCK_DGRAM socket seems to confirm that this is an improvment. Signed-Off-By: Rainer Weikusat Signed-off-by: David S. Miller net/unix/af_unix.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 112446aa2e1262c41fddfc664fa418ce2d615328 Author: kbuild test robot Date: Tue Dec 1 02:40:51 2015 +0800 ASoC: da7218: fix boolreturn.cocci warnings sound/soc/codecs/da7218.c:3214:9-10: WARNING: return of 0/1 in function 'da7218_volatile_register' with return type bool Return statements in functions returning bool should use true/false instead of 1/0. Generated by: scripts/coccinelle/misc/boolreturn.cocci Signed-off-by: Fengguang Wu Signed-off-by: Mark Brown sound/soc/codecs/da7218.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d121b66d25adfa8b631dc59511ebc1d600ad5111 Author: Brian Norris Date: Mon Nov 30 18:01:27 2015 -0800 mtd: brcmnand: drop brcmnand_host::of_node field We don't actually need to stash a copy of this device_node indefinitely; we only need it in brcmnand_init_cs(). Signed-off-by: Brian Norris Cc: Cc: Kamal Dasu Acked-by: Scott Branden Signed-off-by: Brian Norris drivers/mtd/nand/brcmnand/brcmnand.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 863558168d55e992ad6999736e5115ee0268a762 Author: Eliad Peller Date: Wed Nov 18 16:10:57 2015 +0200 iwlwifi: remove IWL_DL_LED no need to have a separate debug level for a single debug print (which is pretty much useless anyway). remove them both. Signed-off-by: Eliad Peller Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/dvm/led.c | 2 -- drivers/net/wireless/intel/iwlwifi/iwl-debug.h | 2 -- 2 files changed, 4 deletions(-) commit dc28e12f212500191fbc3c3ede411e80e2f30a10 Author: Matti Gottlieb Date: Sun Nov 22 10:08:56 2015 +0200 iwlwifi: mvm: ROC: Extend the ROC max delay duration & limit ROC duration When associated to an AP and a ROC event with a long duration is scheduled the FW may have a hard time scheduling a consecutive time event, since it has to remain on the connection channel to hear the AP's DTIM. In addition, when associated and a ROC is requested with a duration greater than the DTIM interval, the FW will not be able to schedule the ROC event, since it needs to wake up for the DTIM. Increasing the "max delay" duration to the DTIM period will allow the FW to wait until after the DTIM and then schedule the ROC time event. Limiting the ROC to be less than the DTIM interval will assure that the time event will be scheduled for at least part of the time (instead of automatically failing) Extend the ROC max delay duration to min(dtim_interval * 3, 600TU), and limit the duration to be less than the DTIM interval. Signed-off-by: Matti Gottlieb Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 42 ++++++++++++++++++++--- 1 file changed, 38 insertions(+), 4 deletions(-) commit 13555e8ba2f43094d42e0159a8be40e7a5f690d6 Author: Johannes Berg Date: Wed Sep 2 16:16:49 2015 +0200 iwlwifi: mvm: add 9000-series RX API Define the RX API that's used by the 9000 series hardware. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/fw-api-rx.h | 113 +++++++++++++++++++++ drivers/net/wireless/intel/iwlwifi/mvm/fw-api.h | 1 + drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 1 + 3 files changed, 115 insertions(+) commit 06ae2ad413d20a1212bd7d32a49bd8b868a8629a Author: Derek Basehore Date: Wed Nov 4 17:37:52 2015 -0800 iwlwifi: mvm: report wakeup for wowlan When the wifi wakes up the system, we need to report it via calling pm_wakeup_event for lucid sleep. This is so userspace knowns that the wifi woke up the system via the /sys/power/wakeup_type sysfs interface. Signed-off-by: Derek Basehore Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 2 ++ 1 file changed, 2 insertions(+) commit 7281b16423cd9b8795ea319c65140f38fd8187a2 Author: Dan Carpenter Date: Sat Nov 21 13:33:38 2015 +0300 iwlwifi: mvm: rs: fix a warning message WARN_ON_ONCE() doesn't take a message, it only takes a condition. I have changed this to WARN(1, ...). Signed-off-by: Dan Carpenter Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/rs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 20f4d39a2822905f250650cd9cac49492c07758f Author: Johannes Berg Date: Sat Nov 21 21:57:52 2015 +0100 iwlwifi: print index in api/capa flags parsing message If the API or capabilities index is bigger than the driver expects, an error message is printed. Make that message print the index and distinguish between API and capabilities. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit d01c536672304541370ab01fe11f20f1d15b2a55 Author: Emmanuel Grumbach Date: Tue Nov 17 15:39:56 2015 +0200 iwlwifi: change the Intel Wireless email address ilw@linux.intel.com is not available anymore. linuxwifi@intel.com should be used instead. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/dvm/calib.c | 2 +- drivers/net/wireless/intel/iwlwifi/dvm/calib.h | 2 +- drivers/net/wireless/intel/iwlwifi/dvm/commands.h | 2 +- drivers/net/wireless/intel/iwlwifi/dvm/devices.c | 2 +- drivers/net/wireless/intel/iwlwifi/dvm/led.c | 2 +- drivers/net/wireless/intel/iwlwifi/dvm/lib.c | 2 +- drivers/net/wireless/intel/iwlwifi/dvm/power.c | 2 +- drivers/net/wireless/intel/iwlwifi/dvm/power.h | 2 +- drivers/net/wireless/intel/iwlwifi/dvm/ucode.c | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-1000.c | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-2000.c | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-5000.c | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-6000.c | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-agn-hw.h | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-devtrace-data.h | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-devtrace-msg.h | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-devtrace-ucode.h | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-eeprom-parse.c | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-eeprom-parse.h | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-eeprom-read.c | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-eeprom-read.h | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-fh.h | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-fw-error-dump.h | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-fw.h | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-io.h | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-notif-wait.c | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-notif-wait.h | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.h | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-scd.h | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-trans.c | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/binding.c | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/debugfs.h | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/fw-api-d3.h | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/fw-api-mac.h | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/fw-api-power.h | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/fw-api-rs.h | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/fw-api-sta.h | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/fw-api-stats.h | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/fw-api-tof.h | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/fw-api-tx.h | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/fw-dbg.c | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/fw-dbg.h | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/led.c | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/offloading.c | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/sf.c | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/testmode.h | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/time-event.c | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/time-event.h | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/tt.c | 2 +- drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 2 +- 52 files changed, 52 insertions(+), 52 deletions(-) commit 6e365100c31eb4c2aa573af9f2d75ab324eebec8 Author: Avri Altman Date: Mon Nov 2 14:16:07 2015 +0200 iwlwifi: mvm: Align bt-coex priority with requirements Fix the gaps between the system requirements and our code. Signed-off-by: Avri Altman Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/coex.c | 36 ++++++++++++++++----------- 1 file changed, 21 insertions(+), 15 deletions(-) commit abf10f868f70e8e7c62ac4bc61ff4ab94a09eda1 Author: Oren Givon Date: Sun Nov 1 15:27:58 2015 +0200 iwlwifi: Add PCI IDs for the new series 8165 Add a new struct for the 8165 series and a few new PCI ID entries. Signed-off-by: Oren Givon Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/iwl-8000.c | 10 ++++++++++ drivers/net/wireless/intel/iwlwifi/iwl-config.h | 1 + drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 2 ++ 3 files changed, 13 insertions(+) commit c4836b056d8316faf40ae94ac01557e6ee12c643 Author: Oren Givon Date: Sun Nov 1 15:07:48 2015 +0200 iwlwifi: Add PCI IDs for the new 3168 series Add a new struct for the 3168 series and a few new PCI ID entries. Signed-off-by: Oren Givon Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/iwl-7000.c | 13 +++++++++++++ drivers/net/wireless/intel/iwlwifi/iwl-config.h | 1 + drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 4 ++++ 3 files changed, 18 insertions(+) commit 89374fe60bfb481a81b941adaa5e834ace2cc9df Author: Dreyfuss, Haim Date: Mon Jun 1 08:27:17 2015 +0300 iwlwifi: Add new PCI IDs for 9260 and 5165 series Add 9000-family configuration to iwl_cfg struct Add a new struct to define the 5165 series. Rename the struct that defines the 9000 series to 9260. Add some new sub-system IDs for the 9260 and 5165 series. For 9260: 0x0A10, 0x0000, 0x0510, 0x0710, 0x0410, 0x0610. For 5165: 0x2A10, 0x2010, 0x0310, 0x0210. Signed-off-by: Haim Dreyfuss Signed-off-by: Oren Givon Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/Makefile | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-9000.c | 163 ++++++++++++++++++++++++ drivers/net/wireless/intel/iwlwifi/iwl-config.h | 3 + drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 13 ++ 4 files changed, 180 insertions(+), 1 deletion(-) commit ac8ef0ce38de082218ff5ef972bea7dbebd09f53 Author: Eliad Peller Date: Thu Nov 12 10:49:38 2015 +0200 iwlwifi: mvm: refactor d3 key update functions We need to reuse the key update logic for d0i3 as well. Add some parameters to deal with the constraints implied by the d0i3 flow (specifically, support non-SYNC commands, and don't take mutexes that might deadlock). Change some commands to be ASYNC, in order to simplify locking a bit. Signed-off-by: Eliad Peller Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 212 +++++++++++++++------------ drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 4 + 2 files changed, 120 insertions(+), 96 deletions(-) commit a399f98069743a9a17f85a406b4dc36c059f75ca Author: Johannes Berg Date: Thu Sep 24 18:29:00 2015 +0200 iwlwifi: mvm: use firmware station lookup, combine code In most cases, the firmware will already match the station that we received a given frame from and tell us the station ID in the RX status, so we can look up the station from that. This lets us skip the (more expensive) hash table lookup in mac80211. Also change the fallback case (no station info from the firmware) to not attempt to look up a multicast source address. While at it, also combine all the code using the station into a single if block. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/fw-api-rx.h | 3 +- drivers/net/wireless/intel/iwlwifi/mvm/rx.c | 43 ++++++++++++++-------- 2 files changed, 29 insertions(+), 17 deletions(-) commit 04b089922412ad3d0cee0046fd0cb495ef22b8e8 Author: Nicholas Krause Date: Tue Sep 22 20:24:19 2015 -0400 iwlwifi: mvm: fix incorrect fallthrough in iwl_mvm_check_running_scans() In the iwl_mvm_check_running_scans() we were mistakenly ignoring the value returned by iwl_mvm_scan_stop() for scheduled scans and falling thorugh to the next case, which caused us to always return zero. Signed-off-by: Nicholas Krause Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f02d2ccd61638756b3b48db771ee419f6be7d011 Author: Johannes Berg Date: Fri Nov 6 11:27:23 2015 +0100 iwlwifi: pcie: remove pointer from debug message Since this pointer is not shown anywhere else, it's useless. Remove it, just keeping the indexes. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit f8a1edb76eca455c2d158c77045b9882bfa0857a Author: Johannes Berg Date: Wed Nov 11 11:53:32 2015 +0100 iwlwifi: clean up transport debugfs handling Transport code currently calls itself through the transport ops, which is quite pointless. Clean up all of this. While at it, remove the unnecessary dir argument and the redundant IDI code. In slave transports, call both the common slave debugfs and the transport's own. SDIO has no files, so remove it all there. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/iwl-trans.h | 9 --------- drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 2 +- drivers/net/wireless/intel/iwlwifi/pcie/internal.h | 9 +++++++++ drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 18 ++++-------------- 4 files changed, 14 insertions(+), 24 deletions(-) commit 321c2104f2f1649665aecd3b9204fea9eecc5ce6 Author: Golan Ben Ami Date: Mon Jul 27 17:02:35 2015 +0300 iwlwifi: mvm: Support setting continuous recording debug mode Add ability to set the continuous recording mode of the FW, while the FW debug data is configured to be stored on the NIC. This could be useful for storing large segments of FW usniffer debug data on the host, while having small store space on the NIC. The host receives the usniffer data through the regular RX path, and the data can get extracted using trace-cmd. Signed-off-by: Golan Ben-Ami Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c | 40 ++++++++++++++++++++++++ drivers/net/wireless/intel/iwlwifi/mvm/fw-api.h | 21 +++++++++++++ drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 1 + 3 files changed, 62 insertions(+) commit 2f89a5d7d37706a19c2e3d338a9654bfabc5b21b Author: Golan Ben-Ami Date: Tue Oct 27 19:17:14 2015 +0200 iwlwifi: mvm: move fw-dbg code to separate file The fw debug functionality is big enough to warrant a separate file. Move existing related functions to the new file. Signed-off-by: Golan Ben-Ami Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/iwl-fw.h | 17 - drivers/net/wireless/intel/iwlwifi/mvm/Makefile | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c | 1 + drivers/net/wireless/intel/iwlwifi/mvm/fw-dbg.c | 780 +++++++++++++++++++++ drivers/net/wireless/intel/iwlwifi/mvm/fw-dbg.h | 150 ++++ drivers/net/wireless/intel/iwlwifi/mvm/fw.c | 132 +--- drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | 1 + drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 580 +-------------- drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 59 -- drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 1 + drivers/net/wireless/intel/iwlwifi/mvm/rx.c | 1 + .../net/wireless/intel/iwlwifi/mvm/time-event.c | 1 + drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 1 + drivers/net/wireless/intel/iwlwifi/mvm/utils.c | 2 +- 14 files changed, 941 insertions(+), 787 deletions(-) commit 74e98be45fe069fcdb00f35eccbb179309ab65cd Author: Brian Norris Date: Tue Dec 1 11:08:32 2015 -0800 mtd: nand: fix typo (t_ald -> t_adl) It's "ADL" ("ALE to data loading" time) not "ALD". Signed-off-by: Brian Norris Reviewed-by: Boris Brezillon include/linux/mtd/nand.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit de64aa9ec129ba627634088f662a4d09e356ddb6 Author: Boris BREZILLON Date: Mon Nov 23 11:23:07 2015 +0100 mtd: nand: fix ONFI parameter page layout src_ssync_features field is only 1 byte large, and the 4th reserved area is actually 8 bytes large. Fixes: d1e1f4e42b5 ("mtd: nand: add support for reading ONFI parameters from NAND device") Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris include/linux/mtd/nand.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit eac70053a141998c40907747d6cea1d53a9414be Author: Anna Schumaker Date: Tue Nov 10 16:53:33 2015 -0500 vfs: Add vfs_copy_file_range() support for pagecache copies This allows us to have an in-kernel copy mechanism that avoids frequent switches between kernel and user space. This is especially useful so NFSD can support server-side copies. The default (flags=0) means to first attempt copy acceleration, but use the pagecache if that fails. Signed-off-by: Anna Schumaker Reviewed-by: Darrick J. Wong Reviewed-by: Padraig Brady Reviewed-by: Christoph Hellwig Signed-off-by: Al Viro fs/read_write.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 3db11b2eecc02dc0eee943e71822c6d929281aa7 Author: Zach Brown Date: Tue Nov 10 16:53:32 2015 -0500 btrfs: add .copy_file_range file operation This rearranges the existing COPY_RANGE ioctl implementation so that the .copy_file_range file operation can call the core loop that copies file data extent items. The extent copying loop is lifted up into its own function. It retains the core btrfs error checks that should be shared. Signed-off-by: Zach Brown [Anna Schumaker: Make flags an unsigned int, Check for COPY_FR_REFLINK] Signed-off-by: Anna Schumaker Reviewed-by: Josef Bacik Reviewed-by: David Sterba Reviewed-by: Christoph Hellwig Signed-off-by: Al Viro fs/btrfs/ctree.h | 3 ++ fs/btrfs/file.c | 1 + fs/btrfs/ioctl.c | 91 ++++++++++++++++++++++++++++++++------------------------ 3 files changed, 56 insertions(+), 39 deletions(-) commit cb4c4e8091e86e08cb2d48e7ae6bf454245c36cb Author: Zach Brown Date: Tue Nov 10 16:53:31 2015 -0500 x86: add sys_copy_file_range to syscall tables Add sys_copy_file_range to the x86 syscall tables. Signed-off-by: Zach Brown [Anna Schumaker: Update syscall number in syscall_32.tbl] Signed-off-by: Anna Schumaker Reviewed-by: Christoph Hellwig Signed-off-by: Al Viro arch/x86/entry/syscalls/syscall_32.tbl | 1 + arch/x86/entry/syscalls/syscall_64.tbl | 1 + 2 files changed, 2 insertions(+) commit 29732938a6289a15e907da234d6692a2ead71855 Author: Zach Brown Date: Tue Nov 10 16:53:30 2015 -0500 vfs: add copy_file_range syscall and vfs helper Add a copy_file_range() system call for offloading copies between regular files. This gives an interface to underlying layers of the storage stack which can copy without reading and writing all the data. There are a few candidates that should support copy offloading in the nearer term: - btrfs shares extent references with its clone ioctl - NFS has patches to add a COPY command which copies on the server - SCSI has a family of XCOPY commands which copy in the device This system call avoids the complexity of also accelerating the creation of the destination file by operating on an existing destination file descriptor, not a path. Currently the high level vfs entry point limits copy offloading to files on the same mount and super (and not in the same file). This can be relaxed if we get implementations which can copy between file systems safely. Signed-off-by: Zach Brown [Anna Schumaker: Change -EINVAL to -EBADF during file verification, Change flags parameter from int to unsigned int, Add function to include/linux/syscalls.h, Check copy len after file open mode, Don't forbid ranges inside the same file, Use rw_verify_area() to veriy ranges, Use file_out rather than file_in, Add COPY_FR_REFLINK flag] Signed-off-by: Anna Schumaker Reviewed-by: Christoph Hellwig Signed-off-by: Al Viro fs/read_write.c | 120 ++++++++++++++++++++++++++++++++++++++ include/linux/fs.h | 3 + include/linux/syscalls.h | 3 + include/uapi/asm-generic/unistd.h | 4 +- kernel/sys_ni.c | 1 + 5 files changed, 130 insertions(+), 1 deletion(-) commit bd6c1644a2f6f46cdf89388e81168a70711fce3a Author: Geert Uytterhoeven Date: Mon Nov 30 15:28:07 2015 +0100 spi: Mark instantiated device nodes with OF_POPULATE Mark (and unmark) device nodes with the POPULATE flag as appropriate. This is required to avoid multi probing when enabling and populating SPI buses in DT overlays. Based on commit 4f001fd30145a6a8 ("i2c: Mark instantiated device nodes with OF_POPULATE"). Suggested-by: Mark Brown Signed-off-by: Geert Uytterhoeven Signed-off-by: Mark Brown drivers/spi/spi.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) commit 3b1884c24c98dada51fc4b05735773f0078711d2 Author: Geert Uytterhoeven Date: Mon Nov 30 15:28:06 2015 +0100 spi: Uninline spi_unregister_device() Uninline spi_unregister_device() in preparation of adding more code to it. Add kerneldoc documentation while we're at it. Signed-off-by: Geert Uytterhoeven Signed-off-by: Mark Brown drivers/spi/spi.c | 14 ++++++++++++++ include/linux/spi/spi.h | 7 +------ 2 files changed, 15 insertions(+), 6 deletions(-) commit d5ddcdf4d672fddeb947ab144eb355c917b431c3 Author: Mathias Nyman Date: Tue Nov 24 13:09:58 2015 +0200 xhci: rework xhci extended capability list parsing functions Replace the existing two extended capability parsing helper functions with one called xhci_find_next_ext_cap(). The extended capabilities are read both in pci-quirks before xhci driver is loaded, and inside the xhci driver when adding ports. The existing helpers did not suit well for these cases and a lot of custom parsing code was needed. The new helper function simplifies these two cases a lot. The motivation for this rework was that code to support xhci debug capability needed to parse extended capabilities, and it included yet another capability parsing helper specific for its needs. With this solution it debug capability code can use this new helper as well Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/pci-quirks.c | 25 +++++------- drivers/usb/host/xhci-ext-caps.h | 83 ++++++++++++++-------------------------- drivers/usb/host/xhci-mem.c | 73 +++++++++++++---------------------- 3 files changed, 64 insertions(+), 117 deletions(-) commit a5da9568c58023dff5e79a5eb52b164e69890707 Author: Mathias Nyman Date: Tue Nov 24 13:09:57 2015 +0200 xhci: use debug level when printing out interval rounding messages Don't use dev_warn() for intened behaviour, use dev_dbg() Rounding down the interval to the nearest power of 2 is required by xhci specs. Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-mem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bfcce47af567983a35f9689f392b68ae40229aea Author: Chunfeng Yun Date: Tue Nov 24 13:09:56 2015 +0200 arm64: dts: mediatek: add xHCI & usb phy for mt8173 add xHCI and phy drivers for MT8173-EVB Signed-off-by: Chunfeng Yun Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman arch/arm64/boot/dts/mediatek/mt8173-evb.dts | 16 +++++++++++ arch/arm64/boot/dts/mediatek/mt8173.dtsi | 42 +++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) commit 0cbd4b34cda9dfd36b6c26b692dee181e0100b67 Author: Chunfeng Yun Date: Tue Nov 24 13:09:55 2015 +0200 xhci: mediatek: support MTK xHCI host controller There some vendor quirks for MTK xhci host controller: 1. It defines some extra SW scheduling parameters for HW to minimize the scheduling effort for synchronous and interrupt endpoints. The parameters are put into reseved DWs of slot context and endpoint context. 2. Its IMODI unit for Interrupter Moderation register is 8 times as much as that defined in xHCI spec. 3. Its TDS in Normal TRB defines a number of packets that remains to be transferred for a TD after processing all Max packets in all previous TRBs. Signed-off-by: Chunfeng Yun Tested-by: Daniel Thompson Reviewed-by: Daniel Thompson Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/Kconfig | 9 + drivers/usb/host/Makefile | 4 + drivers/usb/host/xhci-mtk-sch.c | 415 ++++++++++++++++++++++ drivers/usb/host/xhci-mtk.c | 763 ++++++++++++++++++++++++++++++++++++++++ drivers/usb/host/xhci-mtk.h | 162 +++++++++ drivers/usb/host/xhci-ring.c | 16 +- drivers/usb/host/xhci.c | 19 +- drivers/usb/host/xhci.h | 1 + 8 files changed, 1383 insertions(+), 6 deletions(-) commit c74732e3c5f02b09ad839238622a8bd4fad75f84 Author: Chunfeng Yun Date: Tue Nov 24 13:09:54 2015 +0200 dt-bindings: Add a binding for Mediatek xHCI host controller add a DT binding documentation of xHCI host controller for the MT8173 SoC from Mediatek. Signed-off-by: Chunfeng Yun Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman .../devicetree/bindings/usb/mt8173-xhci.txt | 51 ++++++++++++++++++++++ 1 file changed, 51 insertions(+) commit 526a240f6145fa54658a4d56327f3e053ac73c48 Author: Yoshihiro Shimoda Date: Tue Nov 24 13:09:53 2015 +0200 usb: host: xhci-plat: add support for the R-Car H3 xHCI controllers The R-Car H3 has two xHCI controllers. This SoC is compatible with R-Car Gen2 SoCs, however this SoC doesn't need some specific registers setting, and need a new firmware. Signed-off-by: Yoshihiro Shimoda Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman Documentation/devicetree/bindings/usb/usb-xhci.txt | 4 ++-- drivers/usb/host/xhci-plat.c | 14 ++++++++++++-- drivers/usb/host/xhci-plat.h | 1 + drivers/usb/host/xhci-rcar.c | 7 +++++++ drivers/usb/host/xhci-rcar.h | 1 + 5 files changed, 23 insertions(+), 4 deletions(-) commit 82487b714858d99feff600a096177675481a4935 Author: Yoshihiro Shimoda Date: Tue Nov 24 13:09:52 2015 +0200 usb: host: xhci-plat: add support for the R-Car M2-N xHCI controller This patch adds support for R-Car M2-N (r8a7793) xHCI controller. This SoC is compatible with R-Car H2 (r8a7790) and R-Car M2-W (r8a7791). Signed-off-by: Yoshihiro Shimoda Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman Documentation/devicetree/bindings/usb/usb-xhci.txt | 4 ++-- drivers/usb/host/xhci-plat.c | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) commit 9bf9d9d6008c7541a5c0bcfe61a0e0504c6f2bb9 Author: Yoshihiro Shimoda Date: Tue Nov 24 13:09:51 2015 +0200 usb: host: xhci-rcar: Change code for new SoCs This patch changes code to ease the addition of next generation SoCs. Signed-off-by: Yoshihiro Shimoda Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-plat.c | 1 + drivers/usb/host/xhci-rcar.c | 37 +++++++++++++++++++++++-------------- drivers/usb/host/xhci-rcar.h | 2 ++ 3 files changed, 26 insertions(+), 14 deletions(-) commit e93272fe3c1b7a03865e567f64403c6b578486cf Author: Yoshihiro Shimoda Date: Tue Nov 24 13:09:50 2015 +0200 usb: host: xhci-plat: add firmware_name in xhci_plat_priv This patch adds a member "firmware_name" in struct xhci_plat_priv to simplify the code to match specific firmware name. Signed-off-by: Yoshihiro Shimoda Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-plat.h | 1 + 1 file changed, 1 insertion(+) commit 4efb2f69411456d35051e9047c15157c9a5ba217 Author: Yoshihiro Shimoda Date: Tue Nov 24 13:09:49 2015 +0200 usb: host: xhci-plat: add struct xhci_plat_priv This patch adds struct xhci_plat_priv to simplify the code to match platform specific variables. For now, this patch adds a member "type" in the structure. Signed-off-by: Yoshihiro Shimoda Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-plat.c | 73 +++++++++++++++++++++++++++++--------------- drivers/usb/host/xhci-plat.h | 37 ++++++++++++++++++++++ 2 files changed, 85 insertions(+), 25 deletions(-) commit 79a17ddf89173cf3749656e5d3f87d33c196492b Author: Yoshihiro Shimoda Date: Tue Nov 24 13:09:48 2015 +0200 usb: host: xhci: add a platform-private field This patch adds an xhci->priv field for private use by XHCI platform drivers. Until now none of the platform drivers has used this private space. Signed-off-by: Yoshihiro Shimoda Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci.h | 3 +++ 1 file changed, 3 insertions(+) commit 32479d4b929714b7891efea3783ac4d378e30c59 Author: Yoshihiro Shimoda Date: Tue Nov 24 13:09:47 2015 +0200 usb: host: xhci: cleanup hcd private size This patch cleanups the hcd private size to suitable size. The previous code has "sizeof(struct xhci_hcd *)" in xhci_hc_driver as hcd_priv_size and sizeof(struct xhci_hcd) in xhci_plat_overrides or xhci_pci_overrides as extra_priv_size. However, the xhci driver uses a "sizeof(struct xhcd_hcd)" memory space in each hcd (main_hcd and shared_hcd) actually. Signed-off-by: Yoshihiro Shimoda Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-pci.c | 1 - drivers/usb/host/xhci-plat.c | 1 - drivers/usb/host/xhci.c | 2 +- 3 files changed, 1 insertion(+), 3 deletions(-) commit 5e6389fda02d6a22800bacfb2850366bfa18291b Author: Mathias Nyman Date: Tue Nov 24 13:09:46 2015 +0200 xhci: use the correct define to indicate port status suspend change. use the variables defined for populating the port status and port chage bits retuend by GetPortStatus request intead of the hub class feature selectors. The defines for hub class feature selectors are used for other purposes, they work as port status and feature selectors are in the same order, and set the same bits, but it makes the code very hard to follow Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-hub.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3c83ac23253c6a1b6d3ebcb4bb05eabb8337c9df Author: Sudip Mukherjee Date: Tue Dec 1 14:29:35 2015 +0530 ASoC: hdac_hdmi: check error return As hdac->num_nodes is unsigned we can not check if snd_hdac_get_sub_nodes() has returned error or success. Lets have a temporary int to check the error value. Signed-off-by: Sudip Mukherjee Signed-off-by: Mark Brown sound/soc/codecs/hdac_hdmi.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit fc0855f2747a0e21d86b7e63c50bf234fa766184 Author: Alan Stern Date: Fri Nov 20 13:53:58 2015 -0500 USB: EHCI: warn on unexpectedly active QH This patch adds a new warning message to ehci-hcd. The warning is triggered whenever the driver finds that the hardware has set the Active bit in a QH at a time when the driver expects the QH to be completely idle. Such bugs have been observed by users in the past, and since they can lead to serious problems (such as inability to unlink an URB that never completes), it would be good to know about them when they occur. This won't fix these bugs; that's a bigger job for a later patch. But success isn't guaranteed, since this depends on aspects of the hardware which are not documented in the EHCI spec or for which the spec's recommendations are clearly unworkable. It therefore seems worthwhile to check for these bugs proactively. Signed-off-by: Alan Stern Reported-by: Michael Reutman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/ehci-q.c | 9 +++++++-- drivers/usb/host/ehci.h | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) commit 8ee10d6292cab0e425f93dbfa1f0e805c449dfc2 Author: Alan Stern Date: Fri Nov 20 13:53:45 2015 -0500 USB: EHCI: enhance "async" debugfs output This patch enhances the "async" debugfs file in ehci-hcd by printing out several additional fields in the hardware-accessible data structures. These fields are important for determining the hardware's view of the async schedule, in particular, the addresses of the current and next qTDs for each QH along with the start address of each qTD's data buffer. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman drivers/usb/host/ehci-dbg.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit a016a816bb96088ce4cd0ec890e256e4a63dfb47 Author: Alan Stern Date: Fri Nov 20 13:53:35 2015 -0500 USB: add usbfs snooping for REAP and DISCARD This patch improves the usbfs_snoop debugging facility by adding messages for a couple of significant events which, up to now, have not been logged. The events are reaping and discarding (i.e., cancelling) an URB. The debugging messages include the userspace address of the URB being reaped or discarded. The reaping messages have to be added in four places, in order to handle blocking and non-blocking reaps in both normal and 32-bit compatibility mode. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman drivers/usb/core/devio.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) commit 0290cc9f044a4d24d9a64e81761ac84498dc9d73 Author: Alan Stern Date: Fri Nov 20 13:53:22 2015 -0500 USB: limit usbfs snooping of URB contents The usbfs_snoop facility can be very useful for debugging problems involving usbfs. However, it always prints out the entire contents of every URB. When dealing with large quantities of data, this can be less than helpful. This patch ameliorates the situation by adding a module parameter to usbcore for controlling the maximum number of bytes to print when snooping an URB. This makes debugging much easier. For backward compatibility, the default value is set unreasonably high. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman Documentation/kernel-parameters.txt | 4 ++++ drivers/usb/core/devio.c | 9 ++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) commit 9b9f1033da9166617c4a5cadfc12b23b465fb596 Author: Ricardo Ribalda Date: Mon Nov 30 20:41:17 2015 +0100 mtd: spi-nor: Fix error message with unrecognized JEDEC The error message was: m25p80 spi32766.0: unrecognized JEDEC id bytes: 00, 0, 0 The new error message: m25p80 spi32766.0: unrecognized JEDEC id bytes: 00, 00, 00 Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Brian Norris drivers/mtd/spi-nor/spi-nor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 317d15679a5e8f970159153111467d361d8944d6 Author: Vignesh R Date: Thu Nov 26 14:01:26 2015 +0530 ARM: dts: dra72-evm: Mark uart1 rxd as wakeup capable Uart1 rxd is wakeup capable on DRA72 EVM. Hence, mark rxd line as wakeup capable. This is similar to commit 66b0436977e2c ("ARM: dts: dra7-evm: Mark uart1 rxd as wakeup capable") for DRA74 EVM. Signed-off-by: Vignesh R Acked-by: Nishanth Menon Signed-off-by: Tony Lindgren arch/arm/boot/dts/dra72-evm.dts | 2 ++ 1 file changed, 2 insertions(+) commit e05edea4aa21eb23e712802f63f57fb2c4781c1b Author: Mugunthan V N Date: Thu Nov 19 12:31:02 2015 +0530 ARM: dts: am4372: add spi alias for qspi Set the alias for qspi to spi0 Signed-off-by: Mugunthan V N Reviewed-by: Tom Rini Signed-off-by: Tony Lindgren arch/arm/boot/dts/am4372.dtsi | 1 + 1 file changed, 1 insertion(+) commit f299eccc0ff0d8bdab7b5f0858bcc59e1d3a731f Merge: 50a4f98 56b4437 Author: Mark Brown Date: Tue Dec 1 18:14:13 2015 +0000 Merge branch 'topic/sink' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-dapm commit 9a0be7abb62ff2a7dc3360ab45c31f29b3faf642 Author: Christoph Hellwig Date: Thu Nov 26 11:09:06 2015 +0100 nvme: refactor set_queue_count Split out a helper that just issues the Set Features and interprets the result which can go to common code, and document why we are ignoring non-timeout error returns in the PCIe driver. Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/nvme/host/core.c | 16 ++++++++++++++++ drivers/nvme/host/nvme.h | 1 + drivers/nvme/host/pci.c | 34 +++++++++++++--------------------- 3 files changed, 30 insertions(+), 21 deletions(-) commit f3ca80fc11c3af566eacd99cf821c1a48035c63b Author: Christoph Hellwig Date: Sat Nov 28 15:40:19 2015 +0100 nvme: move chardev and sysfs interface to common code For this we need to add a proper controller init routine and a list of all controllers that is in addition to the list of PCIe controllers, which stays in pci.c. Note that we remove the sysfs device when the last reference to a controller is dropped now - the old code would have kept it around longer, which doesn't make much sense. This requires a new ->reset_ctrl operation to implement controleller resets, and a new ->write_reg32 operation that is required to implement subsystem resets. We also now store caches copied of the NVMe compliance version and the flag if a controller is attached to a subsystem or not in the generic controller structure now. Signed-off-by: Christoph Hellwig [Fixes for pr merge] Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/core.c | 215 +++++++++++++++++++++++++++++++++++++++++++++-- drivers/nvme/host/nvme.h | 18 ++-- drivers/nvme/host/pci.c | 195 ++++-------------------------------------- drivers/nvme/host/scsi.c | 13 +-- 4 files changed, 241 insertions(+), 200 deletions(-) commit 5bae7f73d378a986671a3cad717c721b38f80d9e Author: Christoph Hellwig Date: Sat Nov 28 15:39:07 2015 +0100 nvme: move namespace scanning to common code The namespace scanning code has been mostly generic already, we just need to store a pointer to the tagset in the nvme_ctrl structure, and add a method to check if a controller is I/O incapable. The latter will hopefully be replaced by a proper controller state machine soon. Signed-off-by: Christoph Hellwig [Fixed pr conflicts] Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/core.c | 192 ++++++++++++++++++++++++++++++++++++++++- drivers/nvme/host/nvme.h | 24 +++++- drivers/nvme/host/pci.c | 220 +++++++---------------------------------------- 3 files changed, 240 insertions(+), 196 deletions(-) commit ce4541f40a949cd9a9c9f308b1a6a86914ce6e1a Author: Christoph Hellwig Date: Fri Oct 16 07:58:46 2015 +0200 nvme: move the call to nvme_init_identify earlier We want to record the identify and CAP values even if no I/O queue is available. Signed-off-by: Christoph Hellwig Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit 7fd8930f26be4c9078684b2fef14da0503771bf2 Author: Christoph Hellwig Date: Sat Nov 28 15:37:52 2015 +0100 nvme: add a common helper to read Identify Controller data And add the 64-bit register read operation for it. Signed-off-by: Christoph Hellwig Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/core.c | 52 +++++++++++++++++++++++++++++++++++++++++++++++ drivers/nvme/host/nvme.h | 4 ++++ drivers/nvme/host/pci.c | 53 ++++++++++++++---------------------------------- 3 files changed, 71 insertions(+), 38 deletions(-) commit 5fd4ce1b005bd6ede913763f65efae9af6f7f386 Author: Christoph Hellwig Date: Sat Nov 28 15:03:49 2015 +0100 nvme: move nvme_{enable,disable,shutdown}_ctrl to common code Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/nvme/host/core.c | 106 +++++++++++++++++++++++++++++++++++++ drivers/nvme/host/nvme.h | 11 ++++ drivers/nvme/host/pci.c | 133 +++++++++-------------------------------------- 3 files changed, 141 insertions(+), 109 deletions(-) commit 1b2eb374651f0496b86ed5f095d4c448bff214fa Author: Christoph Hellwig Date: Sat Nov 28 15:01:09 2015 +0100 nvme: move remaining CC setup into nvme_enable_ctrl Remove the calculation of all the bits written into the CC register into nvme_enable_ctrl, so that they can be moved into the core NVMe driver in the future. Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 44 +++++++++++++++++++++----------------------- 1 file changed, 21 insertions(+), 23 deletions(-) commit 106198edb74cdf3fe1aefa6ad1e199b58ab7c4cb Author: Christoph Hellwig Date: Thu Nov 26 10:07:41 2015 +0100 nvme: add explicit quirk handling Add an enum for all workarounds not in the spec and identify the affected controllers at probe time. Signed-off-by: Christoph Hellwig Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/nvme.h | 13 +++++++++++++ drivers/nvme/host/pci.c | 8 +++++--- 2 files changed, 18 insertions(+), 3 deletions(-) commit 1673f1f08c8876f3942b4fa5e8f6a40215f15a94 Author: Christoph Hellwig Date: Thu Nov 26 10:54:19 2015 +0100 nvme: move block_device_operations and ns/ctrl freeing to common code This moves the block_device_operations over to common code mostly as-is. The only change is that the ns and ctrl refcounting got some small refcounting to have wrappers around the kref_put operations. A new free_ctrl operation is added to allow the PCI driver to free it's ressources on the final drop. Signed-off-by: Christoph Hellwig [Moved the integrity and pr changes due to merge conflict] Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/core.c | 413 +++++++++++++++++++++++++++++++++++++++++++++++ drivers/nvme/host/nvme.h | 14 ++ drivers/nvme/host/pci.c | 412 ++-------------------------------------------- 3 files changed, 439 insertions(+), 400 deletions(-) commit 0b7f1f26f95a51ab11d4dc0adee230212b3cd675 Author: Keith Busch Date: Fri Oct 23 09:47:28 2015 -0600 nvme: use the block layer for userspace passthrough metadata Use the integrity API to pass through metadata from userspace. For PI enabled devices this means that we now validate the reftag, which seems like an unintentional ommission in the old code. Thanks to Keith Busch for testing and fixes. Signed-off-by: Christoph Hellwig [Skip metadata setup on admin commands] Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/core.c | 83 ++++++++++++++++++++++++++++++++++++++++++------ drivers/nvme/host/nvme.h | 4 +++ drivers/nvme/host/pci.c | 39 +++-------------------- 3 files changed, 83 insertions(+), 43 deletions(-) commit 4160982e7594481d6b7f90aa693638a37d20ea17 Author: Christoph Hellwig Date: Fri Nov 20 09:00:02 2015 +0100 nvme: split __nvme_submit_sync_cmd Add a separate nvme_submit_user_cmd for commands that directly DMA to or from userspace. We'll add metadata support to that soon and the common version would become too messy. Signed-off-by: Christoph Hellwig Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/core.c | 81 ++++++++++++++++++++++++++++++++++-------------- drivers/nvme/host/nvme.h | 8 +++-- drivers/nvme/host/pci.c | 6 ++-- drivers/nvme/host/scsi.c | 4 +-- 4 files changed, 68 insertions(+), 31 deletions(-) commit 22944e9981db1e496d983298fd420a8c6b758c80 Author: Christoph Hellwig Date: Fri Oct 16 07:58:40 2015 +0200 nvme: move nvme_setup_flush and nvme_setup_rw to common code And mark them inline so that we don't slow down the I/O submission path by having to turn it into a forced out of line call. Signed-off-by: Christoph Hellwig Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/nvme.h | 51 ++++++++++++++++++++++++++++++++++++++++++++++++ drivers/nvme/host/pci.c | 49 ---------------------------------------------- 2 files changed, 51 insertions(+), 49 deletions(-) commit 15a190f7f57a2e46717490c35ac09882042a200b Author: Christoph Hellwig Date: Fri Oct 16 07:58:39 2015 +0200 nvme: move nvme_error_status to common code And mark it inline so that we don't slow down the completion path by having to turn it into a forced out of line call. Signed-off-by: Christoph Hellwig Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/nvme.h | 12 ++++++++++++ drivers/nvme/host/pci.c | 12 ------------ 2 files changed, 12 insertions(+), 12 deletions(-) commit d4f6c3aba5b496a2cb80a8e8e082ae51e46579f3 Author: Christoph Hellwig Date: Thu Nov 26 10:51:23 2015 +0100 nvme: factor out a nvme_unmap_data helper This is the counter part to nvme_map_data. Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 43 +++++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 18 deletions(-) commit ba1ca37ea4e320c108c356eb8c91ac652afc57dd Author: Christoph Hellwig Date: Fri Oct 16 07:58:38 2015 +0200 nvme: refactor nvme_queue_rq This "backports" the structure I've used for the fabrics driver. It mostly started out as a cleanup so that I could actually understand the code, but I think it also qualifies as a micro-optimization due to the reduced time we hold q_lock and disable interrupts. Signed-off-by: Christoph Hellwig Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 219 +++++++++++++++++++++--------------------------- 1 file changed, 97 insertions(+), 122 deletions(-) commit 69d2b571746d1c3fa10b7a0aa00859b296a98d12 Author: Christoph Hellwig Date: Fri Oct 16 07:58:37 2015 +0200 nvme: simplify nvme_setup_prps calling convention Pass back a true/false value instead of the length which needs a compare with the bytes in the request and drop the pointless gfp_t argument. Signed-off-by: Christoph Hellwig Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/pci.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) commit 1c63dc66580d4bbb6d2b75bf184b5aa105ba5bdb Author: Christoph Hellwig Date: Thu Nov 26 10:06:56 2015 +0100 nvme: split a new struct nvme_ctrl out of struct nvme_dev The new struct nvme_ctrl will be used by the common NVMe code that sits on top of struct request_queue and the new nvme_ctrl_ops abstraction. It only contains the bare minimum required, which consists of values sampled during controller probe, the admin queue pointer and a second struct device pointer at the moment, but more will follow later. Only values that are not used in the I/O fast path should be moved to struct nvme_ctrl so that drivers can optimize their cache line usage easily. That's also the reason why we have two device pointers as the struct device is used for DMA mapping purposes. Signed-off-by: Christoph Hellwig Acked-by: Keith Busch Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/core.c | 10 +-- drivers/nvme/host/nvme.h | 61 ++++++--------- drivers/nvme/host/pci.c | 190 +++++++++++++++++++++++++++++++---------------- drivers/nvme/host/scsi.c | 89 ++++++++++------------ 4 files changed, 193 insertions(+), 157 deletions(-) commit 01fec28a6f3ba96d4f46a538eae089dd92189fd1 Author: Christoph Hellwig Date: Thu Nov 26 09:59:44 2015 +0100 nvme: use vendor it from identify Use the vendor ID from the identify data instead of the PCI device to make the SCSI translation layer independent from the PCI driver. The NVMe spec defines them as having the same value for current PCIe devices. Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/nvme/host/scsi.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) commit bf7d3ebbd219d8ad948e812d03e1decfd96c97d0 Author: Christoph Hellwig Date: Thu Nov 26 09:55:48 2015 +0100 nvme: split nvme_trans_device_id_page Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/nvme/host/scsi.c | 135 +++++++++++++++++++++++++++-------------------- 1 file changed, 79 insertions(+), 56 deletions(-) commit 7a67cbea653e444d04d7e850ab9631a14a196422 Author: Christoph Hellwig Date: Fri Nov 20 08:58:10 2015 +0100 nvme: use offset instead of a struct for registers This makes life easier for future non-PCI drivers where access to the registers might be more complicated. Note that Linux drivers are pretty evenly split between the two versions, and in fact the NVMe driver already uses offsets for the doorbells. Signed-off-by: Christoph Hellwig Acked-by: Keith Busch [Fixed CMBSZ offset] Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/nvme.h | 2 +- drivers/nvme/host/pci.c | 60 ++++++++++++++++++++++++++---------------------- drivers/nvme/host/scsi.c | 6 ++--- include/linux/nvme.h | 27 +++++++++++----------- 4 files changed, 49 insertions(+), 46 deletions(-) commit 21d34711e1b5970acfb22bddf1fefbfbd7e0123b Author: Christoph Hellwig Date: Thu Nov 26 09:08:36 2015 +0100 nvme: split command submission helpers out of pci.c Create a new core.c and start by adding the command submission helpers to it, which are already abstracted away from the actual hardware queues by the block layer. Signed-off-by: Christoph Hellwig Acked-by: Keith Busch Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/Makefile | 2 +- drivers/nvme/host/core.c | 173 +++++++++++++++++++++++++++++++++++++++++++++ drivers/nvme/host/nvme.h | 3 + drivers/nvme/host/pci.c | 155 +--------------------------------------- 4 files changed, 178 insertions(+), 155 deletions(-) commit 71bd150c71072014d98bff6dc2db3229306ece35 Author: Christoph Hellwig Date: Fri Oct 16 07:58:32 2015 +0200 nvme: move struct nvme_iod to pci.c This structure is specific to the PCIe driver internals and should be moved to pci.c. Signed-off-by: Christoph Hellwig Acked-by: Keith Busch Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/nvme/host/nvme.h | 17 ----------------- drivers/nvme/host/pci.c | 17 +++++++++++++++++ 2 files changed, 17 insertions(+), 17 deletions(-) commit 6f3b0e8bcf3cbb87a7459b3ed018d31d918df3f8 Author: Christoph Hellwig Date: Thu Nov 26 09:13:05 2015 +0100 blk-mq: add a flags parameter to blk_mq_alloc_request We already have the reserved flag, and a nowait flag awkwardly encoded as a gfp_t. Add a real flags argument to make the scheme more extensible and allow for a nicer calling convention. Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe block/blk-core.c | 11 ++++++----- block/blk-mq-tag.c | 11 +++++------ block/blk-mq.c | 20 ++++++++------------ block/blk-mq.h | 11 ++++------- drivers/block/mtip32xx/mtip32xx.c | 2 +- drivers/block/null_blk.c | 2 +- drivers/nvme/host/lightnvm.c | 2 +- drivers/nvme/host/pci.c | 11 ++++++----- fs/block_dev.c | 4 ++-- include/linux/blk-mq.h | 8 +++++++- include/linux/blkdev.h | 2 +- 11 files changed, 42 insertions(+), 42 deletions(-) commit 1d33929e2a2b69ae6d40e09ccfc8c7d705a543ba Author: Chris Zhong Date: Fri Nov 27 10:09:30 2015 +0800 clk: rockchip: switch PLLs to slow mode before reboot for rk3288 We've been seeing some crashes at reboot test on rk3288-based systems, which boards have not reset pin connected to NPOR, they reboot by setting 0xfdb9 to RK3288_GLB_SRST_FST register. If the APLL works in a high frequency mode, some IPs might hang during soft reset. It appears that we can fix the problem by switching to slow mode before reboot, just like what we did before suspend. Signed-off-by: Chris Zhong Signed-off-by: Heiko Stuebner drivers/clk/rockchip/clk-rk3288.c | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) commit f3cf3fb7ec854c2b2429e5bb23186746e6511dae Merge: f84a187 4ac4e08 Author: Greg Kroah-Hartman Date: Tue Dec 1 09:13:29 2015 -0800 Merge tag 'iio-for-4.5a' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-next Jonathan writes: First set of new device support, features and cleanups for IIO in the 4.5 cycle Usual mixed bag, but the big item perhaps in this series is the DMA buffer support added by Lars-Peter Clausen. It's been in the works for a long time and it will be interesting to see what hardware support shows up now that this is available. New core features + associate cleanup. * Add generic DMA buffer infrastructure * Add a DMAengine framework based buffer Also associated minor changes. - Set the device buffer watermark based on the minimum watermark for all attached buffers rather than just the 'primary' one. - iio_buffer_init - only set the watermark default if one hasn't already been provided. This allows simple support for devices with a fixed watermark. - read only attribute for watermark on fixed watermark devices. - add explicit buffer enable/disable callbacks to allow the buffer to do more than trivial actions when it is being turned on and off. * IIO_VAL_INT support in write_raw_get_fmt function. New device support * Freescale MMA7455/7456L accelerometers * Memsic MXC6255XC accelerometer * ST lis2dh12 accelerometer * TI ADS8688 ADC * TI Palamas (twl6035/7) gpadc New driver features * mma8452 - support either of the available interrupt pins to cope with the case where board layout has lead to a particular one being connected. Staging graduation * Dummy driver - this driver acts as both an example and a test device for those with out hardware to develop userspace code against. Cleanups and minor bits and bobs. * treewide - Sort out the ordering of iio_device_register/unregister vs runtime pm function calls so that it's all nice and consistent and not race prone. - Check sscanf return values. None of the cases will actually happen as the strings are supplied internally, but best to be consistent on this. * ad7780 - switch over to the gpio descriptor interface and remove the now unused platform data which gets rid of a header entirely. * ad7793 - drop a pointless else statement. * at91_adc - Swap kmalloc_array in for a kmalloc doing the same job. * dummy - get rid of some commented out lines that snuck in during the move of the driver. * lm3533-als - Print an error message on provision of an invalid resistance. * mcp320x - Add compatible strings with vendor prefix and deprecate those with no vendor prefix. * mxs-lradc - Use BIT macro in various places rather than shifted ones. * pa12203001 - Power off the chip if the registration fails. * pulsedlight-lidar-lite - add runtime PM support. * xilinx XADC - constify an iio_buffer_setup_ops structure. commit a6baa3deaf7aaec5f1c5233128b5285c4c7074e0 Author: Daniel Wagner Date: Mon Nov 30 16:20:15 2015 +0100 regmap: Fix leftover from struct reg_default to struct reg_sequence change In 8019ff6cfc04 ("regmap: Use reg_sequence for multi_reg_write / register_patch") struct reg_default was renamed to struct reg_secquence, which missed one place to fix up. Reported-by: kbuild test robot Signed-off-by: Daniel Wagner Signed-off-by: Mark Brown include/linux/regmap.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2f538c017e1a8620d19553931199c6d6a6d31bb2 Author: Michael Welling Date: Mon Nov 30 09:02:39 2015 -0600 spi: omap2-mcspi: Prevent duplicate gpio_request Occasionally the setup function will be called multiple times. Only request the gpio the first time otherwise -EBUSY will occur on subsequent calls to setup. Reported-by: Joseph Bell Signed-off-by: Michael Welling Signed-off-by: Mark Brown drivers/spi/spi-omap2-mcspi.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) commit 319c32597fc22a58b946a6146f2be1fd208582e0 Author: Sudip Mukherjee Date: Tue Dec 1 16:09:51 2015 +0530 ASoC: tegra_alc5632: check return value We have been returning success even if snd_soc_card_jack_new() fails. Lets check the return value and return error if it fails. Fixes: 12cc6d1dca4d ("ASoC: tegra_alc5632: Register jacks at the card level") Signed-off-by: Sudip Mukherjee Signed-off-by: Mark Brown sound/soc/tegra/tegra_alc5632.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit e470127e9606b1fa151c4184243e61296d1e0c0f Author: Ioan-Adrian Ratiu Date: Fri Nov 20 22:19:02 2015 +0200 HID: usbhid: fix recursive deadlock The critical section protected by usbhid->lock in hid_ctrl() is too big and because of this it causes a recursive deadlock. "Too big" means the case statement and the call to hid_input_report() do not need to be protected by the spinlock (no URB operations are done inside them). The deadlock happens because in certain rare cases drivers try to grab the lock while handling the ctrl irq which grabs the lock before them as described above. For example newer wacom tablets like 056a:033c try to reschedule proximity reads from wacom_intuos_schedule_prox_event() calling hid_hw_request() -> usbhid_request() -> usbhid_submit_report() which tries to grab the usbhid lock already held by hid_ctrl(). There are two ways to get out of this deadlock: 1. Make the drivers work "around" the ctrl critical region, in the wacom case for ex. by delaying the scheduling of the proximity read request itself to a workqueue. 2. Shrink the critical region so the usbhid lock protects only the instructions which modify usbhid state, calling hid_input_report() with the spinlock unlocked, allowing the device driver to grab the lock first, finish and then grab the lock afterwards in hid_ctrl(). This patch implements the 2nd solution. Signed-off-by: Ioan-Adrian Ratiu Signed-off-by: Jiri Kosina drivers/hid/usbhid/hid-core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8400ddf4ac4907323c7704fe57e4d138d04ae3b3 Author: Maxime Ripard Date: Tue Dec 1 12:06:47 2015 +0100 ASoC: sun4i-codec: pass through clk_set_rate error Commit 1fb34b48361e ('ASoC: sun4i: Implement MIC1 capture') added back some code that disregards the clk_set_rate error code and always returns -EINVAL. Fix that and return the code in order to have more clue about what's going on. Signed-off-by: Maxime Ripard Signed-off-by: Mark Brown sound/soc/sunxi/sun4i-codec.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 0837d8780c766bffe1fc5a5da54fb2620923a6d0 Author: Maxime Ripard Date: Tue Dec 1 12:06:46 2015 +0100 ASoC: sunxi: Remove useless comments and variable The comment is misleading on how we should support external power amps, and the variable is not used and generates a warning. Signed-off-by: Maxime Ripard Signed-off-by: Mark Brown sound/soc/sunxi/sun4i-codec.c | 22 ---------------------- 1 file changed, 22 deletions(-) commit 800f297e8ef91901b93c280425863684dff2d9c6 Author: Charles Keepax Date: Mon Nov 30 17:37:28 2015 +0000 ASoC: arizona: Add 32uS delay after putting FLL into freerun When switching between two clock sources using the FLL freerun to smooth the transition we should wait 32uS after putting the FLL into freerun before we proceed. In practice we appear to be getting enough delay from the surrounding code, but better to make it explicit. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/arizona.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 7905df29b959cb657bd07be4e481a86844c98b51 Author: Ville Syrjälä Date: Wed Nov 25 16:35:30 2015 +0200 drm/i915: Use intel_pipe_will_have_type() in ironlake_crtc_compute_clock() ironlake_crtc_compute_clock() gets called during atomic compute phase, so we must check the future pipe type instead of the current type. Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1448462131-13321-1-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cda0aaaf55b76e3515be1a9dcd7a1ca14d258ce5 Author: Ville Syrjälä Date: Thu Nov 26 18:27:07 2015 +0200 drm/i915: Don't use crtc->config when reading out infoframe state The .get_config() hooks should not reference anything in crtc->config, everything should be based on the passed in pipe_config instead. So don't dig out the cpu_transcoder from crtc->config on ddi platfforms, and also avoid using the encoder->crtc link and instead look up the pipe via pipe_config->base.crtc. I don't think this will actually fix anything since during the initial state readout we set up the encoder->crtc link prior to calling .get_config(), and during the modeset state check the encoder->crtc ought to be correct anyway since it's that state we just programmed. But this seems the right thing to do anyway. While at it, do some house cleaning on the local variables in the .infoframe_enabled() hooks. Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1448555227-31403-1-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Daniel Vetter drivers/gpu/drm/i915/intel_ddi.c | 2 +- drivers/gpu/drm/i915/intel_drv.h | 3 ++- drivers/gpu/drm/i915/intel_hdmi.c | 47 +++++++++++++++++++-------------------- 3 files changed, 26 insertions(+), 26 deletions(-) commit 2f23cda3bfa5820fd3702dff45453af4420f7ada Author: Linus Walleij Date: Fri Nov 13 15:00:03 2015 +0100 ARM: ux500: configure the sensors on the TVK board correctly The U8500 HREF TVK board actually has a large set of sensors, with their interrupt lines connected using open drain electronics. Configure the two accelerometers and two magnetometers so we get all sensors to actually probe on boot. Signed-off-by: Linus Walleij arch/arm/boot/dts/ste-href-tvk1281618.dtsi | 50 +++++++++++++++++++++++++----- 1 file changed, 43 insertions(+), 7 deletions(-) commit 97cb9ce91decfb722255122f37b403145f2ddbb4 Author: Heiko Stuebner Date: Mon Nov 30 13:17:37 2015 +0100 ARM: dts: rockchip: override thermal settings on veyron-speedy According to a commit on the ChromeOS kernel, the temperature of the Speedy surface is over skin temperature spec. So adjust the thermal settings to mimic the ChromeOS tree to stay within these spec limits. Signed-off-by: Heiko Stuebner Reviewed-by: Caesar Wang arch/arm/boot/dts/rk3288-veyron-speedy.dts | 8 ++++++++ 1 file changed, 8 insertions(+) commit 8ff3b9b40c3f85892e8e6c5b43b1c6ce77400275 Author: Caesar Wang Date: Fri Feb 13 11:41:43 2015 +0800 ARM: dts: rockchip: update the thermal management on rk3288 In some cases the machine radiating is very poor,sometime the temperature is rising very quickly on heavy loading.So we need have more frequent polling and better granularity. Signed-off-by: Caesar Wang Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3288-thermal.dtsi | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit 575f1f929f5a2ed80130c294aa7b2dc40dba74f2 Author: Kuninori Morimoto Date: Tue Dec 1 08:33:23 2015 +0000 ASoC: rsnd: rsrc-card: check return value of snd_soc_of_get_dai_name() This patch adds missing check of snd_soc_of_get_dai_name(). It might not be able to use sound card, because it might returns -EPROBE_DEFER. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/rsrc-card.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 2ff2ecca06d5302782c73626b841a509a9b01ef6 Author: Kuninori Morimoto Date: Tue Dec 1 08:31:38 2015 +0000 ASoC: rsnd: fixup wrong snd_soc_dai_driver pointer access drv pointer should be "base + offset" instead of "current + offset". This patch fixup this issue, otherwise third and subsequent pointer will be broken Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 3c0a2f64bcc14402cfdeca633e4210f33affa7a5 Author: Dan Carpenter Date: Tue Dec 1 11:29:12 2015 +0300 regulator: pv88060: fix error handling in probe There were some missing "ret = " assignments here. Signed-off-by: Dan Carpenter Signed-off-by: Mark Brown drivers/regulator/pv88060-regulator.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a87b5ba9dc2d356cf8e121aeef84f5741a662038 Author: Chen-Yu Tsai Date: Tue Dec 1 13:47:25 2015 +0800 ARM: dts: sun9i: optimus: Enable Reduced Serial Bus controller Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun9i-a80-optimus.dts | 4 ++++ 1 file changed, 4 insertions(+) commit ed473ebd9c15481669bfcc1058c6b9bba64ecd12 Author: Chen-Yu Tsai Date: Tue Dec 1 13:47:24 2015 +0800 ARM: dts: sun9i: Add Reduced Serial Bus controller device node to A80 dtsi This patch adds a device node for the Reduced Serial Bus (RSB) controller and the defacto pinmux setting to the A80 dtsi. Since there is only one possible pinmux setting for RSB, just set it in the dtsi. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun9i-a80.dtsi | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit 969c9687414335701244a98c9d259d2e918d7e34 Author: Chen-Yu Tsai Date: Tue Dec 1 13:47:23 2015 +0800 ARM: dts: sun9i: optimus: Enable consumer IR receiver The A80 Optimus board has a consumer IR receiver. Enable it in the DT. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun9i-a80-optimus.dts | 4 ++++ 1 file changed, 4 insertions(+) commit 1595b37cb212242791dd4ac9334242d32c8ad2c5 Author: Chen-Yu Tsai Date: Tue Dec 1 13:47:22 2015 +0800 ARM: dts: sun9i: Add consumer IR receiver device node and pinmux settings The Allwinner A80 SoC has a consumer IR receiver, which is the same as older SoCs. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun9i-a80.dtsi | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit d2118f06d10886513ca0f462afc8e5263d01692e Author: Chen-Yu Tsai Date: Tue Dec 1 13:47:21 2015 +0800 ARM: dts: sun9i: optimus: Enable LED3 LED3 is connected to pin PM15 on R_PIO. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun9i-a80-optimus.dts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) commit 1ac56a6da9e11fe35470f804376a67b5bb9d13fe Author: Chen-Yu Tsai Date: Tue Dec 1 13:47:20 2015 +0800 ARM: dts: sun9i: Add A80 R_PIO pin controller device node The A80 has a secondary pin controller. Add a device node for it. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun9i-a80.dtsi | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit d255abd60e9c0c91e0146fdcbe534b3b9f5352a6 Author: Chen-Yu Tsai Date: Sun Nov 29 11:03:10 2015 +0800 ARM: dts: sun9i: Add TODO comments for the main and low power clocks The main (24MHz) clock on the A80 is configurable via the PRCM address space. The low power/speed (32kHz) clock is from an external chip, the AC100. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun9i-a80.dtsi | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit afd7d66c240ba734740b1b4daccd8b1cc735b788 Author: Chen-Yu Tsai Date: Sun Nov 29 11:03:09 2015 +0800 ARM: dts: sun9i: Add A80 PRCM clocks and reset control nodes This adds the supported PRCM clocks and reset controls to the A80 dtsi. The DAUDIO module clocks are not supported yet. Also update clock and reset phandles for r_uart. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun9i-a80.dtsi | 79 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 78 insertions(+), 1 deletion(-) commit 77d16e2c66c86afc0130822b816ae26790a241fb Author: Chen-Yu Tsai Date: Sun Nov 29 11:03:08 2015 +0800 clk: sunxi: Add sun9i A80 cpus (cpu special) clock support The "cpus" clock is the clock for the embedded processor in the A80. It is also part of the PRCM clock tree. This clock includes a pre- divider on one of its inputs. For now we are using a custom clock driver for it. In the future we may want to develop a generalized driver for these types of clocks, which also includes the AHB clock driver on sun[5678]i. Signed-off-by: Chen-Yu Tsai Acked-by: Rob Herring Signed-off-by: Maxime Ripard Documentation/devicetree/bindings/clock/sunxi.txt | 1 + drivers/clk/sunxi/Makefile | 2 + drivers/clk/sunxi/clk-sun9i-cpus.c | 240 ++++++++++++++++++++++ 3 files changed, 243 insertions(+) commit 843cd366555ba7c676aa9ec3e468fa4602a8acba Author: Arnd Bergmann Date: Tue Dec 1 00:00:57 2015 +0100 ARM: mvebu: remove unused mach/gpio.h This file was left over from a cleanup of asm/gpio.h and has not been used in a while. Let's just remove it now, so the arch/arm/mach-mvebu/include/ directory can also disappear. Signed-off-by: Arnd Bergmann Signed-off-by: Gregory CLEMENT arch/arm/mach-mvebu/include/mach/gpio.h | 1 - 1 file changed, 1 deletion(-) commit bfcba2ed83f00e06f82fca3edcb5d723acce74c1 Author: Chen-Yu Tsai Date: Sun Nov 29 11:03:07 2015 +0800 clk: sunxi: Add sun9i A80 apbs gates support This patch adds support for the PRCM apbs clock gates found on the Allwinner A80 SoC. Signed-off-by: Chen-Yu Tsai Acked-by: Rob Herring Signed-off-by: Maxime Ripard Documentation/devicetree/bindings/clock/sunxi.txt | 1 + drivers/clk/sunxi/clk-simple-gates.c | 2 ++ 2 files changed, 3 insertions(+) commit c5cdcba3d54b9bd2443bd0afe9f4828f802a944f Author: Qipeng Zha Date: Thu Nov 26 01:09:51 2015 +0800 pinctrl: intel: fix bug of register offset calculation The group size for registers PADCFGLOCK, HOSTSW_OWN, GPI_IS, GPI_IE, are not 24 for Broxton, Add a parameter to allow different platform to set correct value. Signed-off-by: Qi Zheng Signed-off-by: Qipeng Zha Acked-by: Mika Westerberg Signed-off-by: Linus Walleij drivers/pinctrl/intel/pinctrl-broxton.c | 1 + drivers/pinctrl/intel/pinctrl-intel.c | 32 +++++++++++++--------------- drivers/pinctrl/intel/pinctrl-intel.h | 3 +++ drivers/pinctrl/intel/pinctrl-sunrisepoint.c | 1 + 4 files changed, 20 insertions(+), 17 deletions(-) commit d9ac5e25f1335bb16c638736bf25146a550eb394 Author: Yingjoe Chen Date: Wed Nov 25 20:13:23 2015 +0800 pinctrl: update document for pinconf_generic_parse_dt_config The returned configs from pinconf_generic_parse_dt_config() is duplicated from original. Make it clear it must be freed when no longer necessary. Signed-off-by: Yingjoe Chen Signed-off-by: Linus Walleij drivers/pinctrl/pinconf-generic.c | 1 + 1 file changed, 1 insertion(+) commit 76c714be0e5e60c935a53b31be58939510ba1d0f Author: Will Deacon Date: Fri Oct 30 18:56:19 2015 +0000 arm64: pgtable: implement pte_accessible() This patch implements the pte_accessible() macro, which can be used to test whether or not a given pte is a candidate for allocation in the TLB. Reviewed-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/include/asm/pgtable.h | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 9c4e08a3022b6df90d31ef4007291faabfce5431 Author: Mark Rutland Date: Mon Nov 23 13:26:20 2015 +0000 arm64: mm: allow sections for unaligned bases Callees of __create_mapping may decide to create section mappings if sufficient low bits of the physical and virtual addresses they were passed are zero. While __create_mapping rounds the virtual base address down, it does not similarly round the physical base address down, and hence non-zero bits in the physical address can prevent use of a section mapping, even where a whole next-level table would be used instead. Round down the physical base address in __create_mapping to enable all callees to always create section mappings when such a mapping is possible. Cc: Laura Abbott Acked-by: Ard Biesheuvel Acked-by: Catalin Marinas Reviewed-by: Steve Capper Signed-off-by: Mark Rutland Signed-off-by: Will Deacon arch/arm64/mm/mmu.c | 1 + 1 file changed, 1 insertion(+) commit cc5d2b3b95cdbb3fed4e38e667d17b9ac7250f7a Author: Mark Rutland Date: Mon Nov 23 13:26:19 2015 +0000 arm64: mm: detect bad __create_mapping uses If a caller of __create_mapping provides a PA and VA which have different sub-page offsets, it is not clear which offset they expect to apply to the mapping, and is indicative of a bad caller. In some cases, the region we wish to map may validly have a sub-page offset in the physical and virtual addresses. For example, EFI runtime regions have 4K granularity, yet may be mapped by a 64K page kernel. So long as the physical and virtual offsets are the same, the region will be mapped at the expected VAs. Disallow calls with differing sub-page offsets, and WARN when they are encountered, so that we can detect and fix such cases. Cc: Laura Abbott Acked-by: Ard Biesheuvel Acked-by: Catalin Marinas Reviewed-by: Steve Capper Signed-off-by: Mark Rutland Signed-off-by: Will Deacon arch/arm64/mm/mmu.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 485dba27e9710fd03e7b35df4d7c4c562286f20e Author: Masahiro Yamada Date: Mon Nov 30 16:57:35 2015 +0900 pinctrl: fix a typo in Kconfig Signed-off-by: Masahiro Yamada Signed-off-by: Linus Walleij drivers/pinctrl/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2f9c2424f6bf12260e0fa551edda82b63d0808aa Author: Masahiro Yamada Date: Tue Nov 24 20:45:24 2015 +0900 pinctrl: spear: guard sub-directory with CONFIG_PINCTRL_SPEAR CONFIG_PINCTRL_SPEAR is more suitable than CONFIG_PLAT_SPEAR to guard the drivers/pinctrl/spear/ directory. Signed-off-by: Masahiro Yamada Signed-off-by: Linus Walleij drivers/pinctrl/Makefile | 2 +- drivers/pinctrl/spear/Makefile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 973bbcfa1707b1e883ebed7ce5a30b21df8c85c0 Author: Masahiro Yamada Date: Tue Nov 24 20:45:23 2015 +0900 pinctrl: mvebu: guard sub-directory with CONFIG_PINCTRL_MVEBU CONFIG_PINCTRL_MVEBU is more suitable than CONFIG_PLAT_ORION to guard the drivers/pinctrl/mvebu/ directory. Signed-off-by: Masahiro Yamada Signed-off-by: Linus Walleij drivers/pinctrl/Makefile | 2 +- drivers/pinctrl/mvebu/Makefile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 1bcb2021d58f2be51a43589faf38355fc6b1ee4f Author: Masahiro Yamada Date: Tue Nov 24 20:45:22 2015 +0900 pinctrl: berlin: guard sub-directory with CONFIG_PINCTRL_BERLIN CONFIG_PINCTRL_BERLIN is more suitable than CONFIG_ARCH_BERLIN to guard the drivers/pinctrl/berlin/ directory. Signed-off-by: Masahiro Yamada Acked-by: Jisheng Zhang Acked-by: Sebastian Hesselbarth Signed-off-by: Linus Walleij drivers/pinctrl/Makefile | 2 +- drivers/pinctrl/berlin/Makefile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit b9a4e155458c73f125a248c963665a8df982496f Author: Masahiro Yamada Date: Tue Nov 24 15:00:45 2015 +0900 pinctrl: uniphier: rework UniPhier pinctrl entries in Kconfig There is a plan to support more pinctrl drivers for this SoC family. Move the driver entries into a sub menu by using "menuconfig". Also, add the missing dependency "depends on OF && MFD_SYSCON". Signed-off-by: Masahiro Yamada Signed-off-by: Linus Walleij drivers/pinctrl/uniphier/Kconfig | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) commit eb9610f3d48081528f0d0e35e29b28ad1de6dac6 Author: Stephen Boyd Date: Tue Nov 17 16:52:33 2015 -0800 pinctrl: qcom: spmi-mpp: Add pm8994 mpp support Update the driver and binding for pm8994-mpp devices. Cc: Cc: "Ivan T. Ivanov" Signed-off-by: Stephen Boyd Acked-by: Rob Herring Acked-by: Björn Andersson Signed-off-by: Linus Walleij Documentation/devicetree/bindings/pinctrl/qcom,pmic-mpp.txt | 1 + drivers/pinctrl/qcom/pinctrl-spmi-mpp.c | 1 + 2 files changed, 2 insertions(+) commit 016c2f4d2013817e10e30251cc5aadbc26a4c919 Author: Stephen Boyd Date: Tue Nov 17 16:52:32 2015 -0800 pinctrl: qcom: spmi-gpio: Add pm8994 gpio support Update the binding and driver for pm8994-gpio devices. Cc: Cc: "Ivan T. Ivanov" Signed-off-by: Stephen Boyd Acked-by: Rob Herring Acked-by: Björn Andersson Signed-off-by: Linus Walleij Documentation/devicetree/bindings/pinctrl/qcom,pmic-gpio.txt | 2 ++ drivers/pinctrl/qcom/pinctrl-spmi-gpio.c | 1 + 2 files changed, 3 insertions(+) commit d1b49b68609c673f70a6da4858cc16d7749df6a3 Author: Joonwoo Park Date: Tue Nov 17 16:35:46 2015 -0800 pinctrl: qcom: Add msm8996 pinctrl driver Add initial pinctrl driver to support pin configuration with pinctrl framework for msm8996. Cc: Signed-off-by: Joonwoo Park [sboyd@codeaurora.org: Remove duplicate entries and enums] Signed-off-by: Stephen Boyd Acked-by: Rob Herring Acked-by: Björn Andersson Signed-off-by: Linus Walleij .../bindings/pinctrl/qcom,msm8996-pinctrl.txt | 199 ++ drivers/pinctrl/qcom/Kconfig | 8 + drivers/pinctrl/qcom/Makefile | 1 + drivers/pinctrl/qcom/pinctrl-msm8996.c | 1942 ++++++++++++++++++++ 4 files changed, 2150 insertions(+) commit 737292a3c0f251a93dcce4bedf7e4accb35335bc Author: Daniel Vetter Date: Mon Nov 23 10:32:53 2015 +0100 drm/gma500: Add driver private mutex for the fault handler There's currently two places where the gma500 fault handler relies upon dev->struct_mutex: - To protect r->mappping - To make sure vm_insert_pfn isn't called concurrently (in which case the 2nd thread would get an error code). Everything else (specifically psb_gtt_pin) is already protected by some other locks. Hence just create a new driver-private mmap_mutex just for this function. With this gma500 is complete dev->struct_mutex free! Cc: Patrik Jakobsson Acked-by: Patrik Jakobsson Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1448271183-20523-21-git-send-email-daniel.vetter@ffwll.ch drivers/gpu/drm/gma500/gem.c | 4 ++-- drivers/gpu/drm/gma500/gtt.c | 1 + drivers/gpu/drm/gma500/psb_drv.h | 2 ++ 3 files changed, 5 insertions(+), 2 deletions(-) commit 0e3089fa50df00b963067aa5a34d5fc01d93802a Author: Daniel Vetter Date: Mon Nov 23 10:32:52 2015 +0100 drm/gma500: Drop dev->struct_mutex from mmap offset function Simply forgotten about this when I was doing my general cleansing of simple gem mmap offset functions. There's nothing but core functions called here, and they all have their own protection already. Cc: Patrik Jakobsson Acked-by: Patrik Jakobsson Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1448271183-20523-20-git-send-email-daniel.vetter@ffwll.ch drivers/gpu/drm/gma500/gem.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) commit 46a0f2234d3a7078808b5416200f55ea2cb1d99b Author: Daniel Vetter Date: Mon Nov 23 10:32:51 2015 +0100 drm/gma500: Drop dev->struct_mutex from fbdev init/teardown code This is init/teardown code, locking is just to appease locking checks. And since gem create/free doesn't need this any more there's really no reason for grabbing dev->struct_mutex. Again important to switch obj_unref to _unlocked variants. Cc: Patrik Jakobsson Acked-by: Patrik Jakobsson Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1448271183-20523-19-git-send-email-daniel.vetter@ffwll.ch drivers/gpu/drm/gma500/framebuffer.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) commit 663ab9c4c9b4be8a6aa41d65e3e89194733a5267 Author: Daniel Vetter Date: Mon Nov 23 10:32:50 2015 +0100 drm/gma500: Drop dev->struct_mutex from modeset code It's either init code or already protected by other means. Note that psb_gtt_pin/unpin has it's own lock, and that's really the only piece of driver private state - all the modeset state is protected with modeset locks already. The only important bit is to switch all gem_obj_unref calls to the _unlocked variant. Cc: Patrik Jakobsson Acked-by: Patrik Jakobsson Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1448271183-20523-18-git-send-email-daniel.vetter@ffwll.ch drivers/gpu/drm/gma500/gma_display.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) commit d3e376f52d095103ca51dbda4d6ff8aaf488f98f Author: Daniel Vetter Date: Mon Nov 23 10:32:49 2015 +0100 drm/gma500: Use correct unref in the gem bo create function This is called without dev->struct_mutex held, we need to use the _unlocked variant. Never caught in the wild since you'd need an evil userspace which races a gem_close ioctl call with the in-progress open. Cc: Patrik Jakobsson Acked-by: Patrik Jakobsson Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1448271183-20523-17-git-send-email-daniel.vetter@ffwll.ch drivers/gpu/drm/gma500/gem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ab4256cfeab91569e1d96e7f0014538fe0845259 Author: Stephen Boyd Date: Wed Nov 18 11:33:17 2015 -0800 pinctrl: qcom: pmic-gpio/mpp: of_irq_count() == npins The number of interrupts is always equal to the number of pins provided by the PMIC gpio and MPP hardware blocks. Count the number of irqs to figure out the number of pins instead of adding more compatible strings or doing math on the reg property. This should make the code more generic and ease the number of changes we have to make to the driver for each new pmic revision. Cc: Ivan T. Ivanov Signed-off-by: Stephen Boyd Reviewed-by: Andy Gross Reviewed-by: Björn Andersson Signed-off-by: Linus Walleij drivers/pinctrl/qcom/pinctrl-spmi-gpio.c | 12 ++++++------ drivers/pinctrl/qcom/pinctrl-spmi-mpp.c | 11 ++++++----- drivers/pinctrl/qcom/pinctrl-ssbi-gpio.c | 16 ++++++++++------ drivers/pinctrl/qcom/pinctrl-ssbi-mpp.c | 16 ++++++++++------ 4 files changed, 32 insertions(+), 23 deletions(-) commit beee39099b9041c8bcb50e771d0cc6aea4e79e45 Author: Timur Tabi Date: Tue Nov 10 09:57:10 2015 -0600 pinctrl: qcom: qdf2xxx: improve error checking and reporting The driver doesn't report an error message if the ACPI tables are missing the num-gpios property (which indicates how many GPIOs there are on this SOC), and it didn't check to ensure that the mallocs didn't fail. Signed-off-by: Timur Tabi Reviewed-by: Björn Andersson Signed-off-by: Linus Walleij drivers/pinctrl/qcom/pinctrl-qdf2xxx.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) commit 6ddcf9b486f134f1a1544c82b36b0876ef2f33e6 Author: William Breathitt Gray Date: Mon Nov 23 12:54:50 2015 -0500 gpio: Add GPIO support for the ACCES 104-IDI-48 The ACCES 104-IDI-48 family of PC/104 utility boards feature 48 individually optically isolated digital inputs. Enabled inputs feature change-of-state detection capability; if change-of-state detection is enabled, an interrupt is fired off if a change of input level (low-to-high or high-to-low) is detected. Change-of-state IRQs are enabled/disabled on 8-bit boundaries, for a total of six boundaries. This driver provides GPIO and IRQ support for these 48 channels of digital input. The base port address for the device may be configured via the idi_48_base module parameter. The interrupt line number for the device may be configured via the idi_48_irq module parameter. Signed-off-by: William Breathitt Gray Signed-off-by: Linus Walleij MAINTAINERS | 6 + drivers/gpio/Kconfig | 9 ++ drivers/gpio/Makefile | 1 + drivers/gpio/gpio-104-idi-48.c | 349 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 365 insertions(+) commit 6b6985169017e554d80a8c2befdadbd81d13c2a2 Author: Daniel Vetter Date: Sat Nov 28 11:05:39 2015 +0100 drm/i915: fix fdi related fifo underruns on hsw Similar to commit 37ca8d4ccd9860df0747aa2ea281a3c9c4bf8826 Author: Ville Syrjälä Date: Fri Oct 30 19:20:27 2015 +0200 drm/i915: Enable PCH FIFO underruns later on ILK/SNB/IVB we can only enable fifo underrun reporting when using the fdi/lpt after everything is set up and after a bit of waiting. The waiting is required, enabling it right after enabling encoders will first trigger an underrun on the pch and then, 1 frame later, an underrun on the cpu. Two vblank waits after encoder enabling seems enough to curb it. And similar to Author: Ville Syrjälä Date: Fri Nov 20 22:09:18 2015 +0200 drm/i915: Suppress spurious CPU FIFO underruns on ILK-IVB we also need to make sure cpu fifo underrun reporting is disabled when enabling the fdi rx/tx and pch transcoder&port. But somehow this is only needed when enabling, not also when disabling. Cc: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1448705139-12534-1-git-send-email-daniel.vetter@ffwll.ch Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91578 Tested-by: Mika Kahola Reviewed-by: Mika Kahola Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 0b9ddcc84eba3309a42fd73d293cc5df79e911b4 Merge: 64dfbe2 c252659 Author: Stephen Boyd Date: Tue Dec 1 00:00:48 2015 -0800 Merge branch 'clk-msm8996' into clk-next * clk-msm8996: clk: qcom: Add MSM8996 Multimedia Clock Controller (MMCC) driver clk: qcom: Add gfx3d ping-pong PLL frequency switching clk: qcom: Add MSM8996 Global Clock Control (GCC) driver clk: qcom: Add Alpha PLL support clk: divider: Cap table divider values to 'width' member commit 4c6bcf44549907cb50b67f98eb13717a4adc6b33 Author: Ville Syrjälä Date: Mon Nov 16 21:05:12 2015 +0200 drm/edid: Make the detailed timing CEA/HDMI mode fixup accept up to 5kHz clock difference Rather than using drm_match_cea_mode() to see if the EDID detailed timings are supposed to represent one of the CEA/HDMI modes, add a special version of that function that takes in an explicit clock tolerance value (in kHz). When looking at the detailed timings specify the tolerance as 5kHz due to the 10kHz clock resolution limit inherent in detailed timings. drm_match_cea_mode() uses the normal KHZ2PICOS() matching of clocks, which only allows smaller errors for lower clocks (eg. for 25200 it won't allow any error) and a bigger error for higher clocks (eg. for 297000 it actually matches 296913-297000). So it doesn't really match what we want for the fixup. Using the explicit +-5kHz is much better for this use case. Not sure if we should change the normal mode matching to also use something else besides KHZ2PICOS() since it allows a different proportion of error depending on the clock. I believe VESA CVT allows a maximum deviation of .5%, so using that for normal mode matching might be a good idea? Cc: Adam Jackson Tested-by: nathan.d.ciobanu@linux.intel.com Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92217 Fixes: fa3a7340eaa1 ("drm/edid: Fix up clock for CEA/HDMI modes specified via detailed timings") Signed-off-by: Ville Syrjälä Reviewed-by: Adam Jackson Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_edid.c | 62 +++++++++++++++++++++++++++++++++++++++++++-- drivers/gpu/drm/drm_modes.c | 19 +++++++++++++- include/drm/drm_modes.h | 2 ++ 3 files changed, 80 insertions(+), 3 deletions(-) commit d74f61fee39d5896913d268b60884b13b43edee7 Author: Geert Uytterhoeven Date: Mon Nov 30 15:16:52 2015 +0100 ARM: shmobile: sh73a0: Add MSIOF device nodes The sh73a0 has 4 MSIOF devices, located in the A3SP power area. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/sh73a0.dtsi | 44 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) commit 23d711ab4dec7552cad8d03d12e253ac66e70a95 Author: Geert Uytterhoeven Date: Mon Nov 30 15:16:51 2015 +0100 ARM: shmobile: sh73a0: Add MSIOF clocks The 4 MSIOF clocks are MSTP clocks, and children of the SUB clock. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/sh73a0.dtsi | 28 ++++++++++++++++------------ include/dt-bindings/clock/sh73a0-clock.h | 6 +++++- 2 files changed, 21 insertions(+), 13 deletions(-) commit 8a8f181d2cfdbff772ff2cc895f59bb28beafbdf Author: Kuninori Morimoto Date: Tue Dec 1 05:36:34 2015 +0000 arm64: renesas: salvator-x: use CS2000 as AUDIO_CLK_B CS2000 needs AUDIO_CLKOUT as master clock which is generated by Renesas sound, and Renesas sound needs CS2000 as ADUIO_CLK_B. Because of this relationship, it will be dead-lock when driver probe. cs2000: clk_multiplier@4f { ... clocks = <&rcar_sound 0>, <&x12_clk>; ... }; &rcar_sound { ... assigned-clocks = <&cs2000>; ... }; This patch is using dummy audio_clkout to avoid this issue. Signed-off-by: Kuninori Morimoto Signed-off-by: Simon Horman arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) commit 1f2e25b2d552cade43eacb2edc4e7f01c1cfecb3 Author: Anton Blanchard Date: Thu Oct 29 11:44:07 2015 +1100 powerpc: Remove fp_enable() and vec_enable(), use msr_check_and_{set, clear}() More consolidation of our MSR available bit handling. Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman arch/powerpc/include/asm/processor.h | 2 -- arch/powerpc/kernel/fpu.S | 16 ---------------- arch/powerpc/kernel/process.c | 6 ++++-- arch/powerpc/kernel/vector.S | 10 ---------- 4 files changed, 4 insertions(+), 30 deletions(-) commit 3eb5d5888dc68c9b187998ca4249b8b9fa481eeb Author: Anton Blanchard Date: Thu Oct 29 11:44:06 2015 +1100 powerpc: Add ppc_strict_facility_enable boot option Add a boot option that strictly manages the MSR unavailable bits. This catches kernel uses of FP/Altivec/SPE that would otherwise corrupt user state. Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman Documentation/kernel-parameters.txt | 6 ++++++ arch/powerpc/include/asm/reg.h | 9 +++++++++ arch/powerpc/include/asm/switch_to.h | 24 +++++++++++++++++++----- arch/powerpc/kernel/process.c | 17 +++++++++++++++-- 4 files changed, 49 insertions(+), 7 deletions(-) commit dc4fbba11e4661a6a77a1f89ba32f9082e6395ff Author: Anton Blanchard Date: Thu Oct 29 11:44:05 2015 +1100 powerpc: Create disable_kernel_{fp,altivec,vsx,spe}() The enable_kernel_*() functions leave the relevant MSR bits enabled until we exit the kernel sometime later. Create disable versions that wrap the kernel use of FP, Altivec VSX or SPE. While we don't want to disable it normally for performance reasons (MSR writes are slow), it will be used for a debug boot option that does this and catches bad uses in other areas of the kernel. Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman arch/powerpc/crypto/aes-spe-glue.c | 1 + arch/powerpc/crypto/sha1-spe-glue.c | 1 + arch/powerpc/crypto/sha256-spe-glue.c | 1 + arch/powerpc/include/asm/switch_to.h | 5 +++++ arch/powerpc/kernel/align.c | 2 ++ arch/powerpc/kvm/book3s_paired_singles.c | 1 + arch/powerpc/kvm/book3s_pr.c | 4 ++++ arch/powerpc/kvm/booke.c | 4 ++++ arch/powerpc/lib/vmx-helper.c | 2 ++ arch/powerpc/lib/xor_vmx.c | 4 ++++ drivers/crypto/vmx/aes.c | 3 +++ drivers/crypto/vmx/aes_cbc.c | 3 +++ drivers/crypto/vmx/aes_ctr.c | 3 +++ drivers/crypto/vmx/ghash.c | 4 ++++ lib/raid6/altivec.uc | 1 + 15 files changed, 39 insertions(+) commit a0e72cf12b1a1f159b6822ed2e1e41893d996fc7 Author: Anton Blanchard Date: Thu Oct 29 11:44:04 2015 +1100 powerpc: Create msr_check_and_{set,clear}() Create helper functions to set and clear MSR bits after first checking if they are already set. Grouping them will make it easy to avoid the MSR writes in a subsequent optimisation. Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman arch/powerpc/kernel/process.c | 107 ++++++++++++++++++++---------------------- 1 file changed, 52 insertions(+), 55 deletions(-) commit 1552cd703cf5a07caeb17ccd82f80e20a23b1707 Author: Anton Blanchard Date: Thu Oct 29 11:44:03 2015 +1100 crypto: vmx: Only call enable_kernel_vsx() With the recent change to enable_kernel_vsx(), we no longer need to call enable_kernel_fp() and enable_kernel_altivec(). Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman drivers/crypto/vmx/aes.c | 3 --- drivers/crypto/vmx/aes_cbc.c | 3 --- drivers/crypto/vmx/aes_ctr.c | 3 --- drivers/crypto/vmx/ghash.c | 8 -------- 4 files changed, 17 deletions(-) commit a7d623d4d053ccb0cdfad210bced2ec25ddf69a2 Author: Anton Blanchard Date: Thu Oct 29 11:44:02 2015 +1100 powerpc: Move part of giveup_vsx into c Move the MSR modification into c. Removing it from the assembly function will allow us to avoid costly MSR writes by batching them up. Check the FP and VMX bits before calling the relevant giveup_*() function. This makes giveup_vsx() and flush_vsx_to_thread() perform more like their sister functions, and allows us to use flush_vsx_to_thread() in the signal code. Move the check_if_tm_restore_required() check in. Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman arch/powerpc/kernel/process.c | 28 +++++++++++++++++++--------- arch/powerpc/kernel/signal_32.c | 4 ++-- arch/powerpc/kernel/signal_64.c | 4 ++-- arch/powerpc/kernel/vector.S | 6 ------ 4 files changed, 23 insertions(+), 19 deletions(-) commit 98da581e0846f6d932a4bc46a55458140e20478a Author: Anton Blanchard Date: Thu Oct 29 11:44:01 2015 +1100 powerpc: Move part of giveup_fpu,altivec,spe into c Move the MSR modification into new c functions. Removing it from the low level functions will allow us to avoid costly MSR writes by batching them up. Move the check_if_tm_restore_required() check into these new functions. Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman arch/powerpc/include/asm/switch_to.h | 21 ++++++++------- arch/powerpc/kernel/fpu.S | 16 ++--------- arch/powerpc/kernel/head_fsl_booke.S | 8 ++---- arch/powerpc/kernel/ppc_ksyms.c | 6 ----- arch/powerpc/kernel/process.c | 52 +++++++++++++++++++++++++++++++++--- arch/powerpc/kernel/vector.S | 10 ++----- 6 files changed, 65 insertions(+), 48 deletions(-) commit b51b1153d0e78a70767441273331d2de066bb929 Author: Anton Blanchard Date: Thu Oct 29 11:44:00 2015 +1100 powerpc: Remove NULL task struct pointer checks in FP and vector code We used to allow giveup_*() to be called with a NULL task struct pointer. Now those cases are handled in the caller we can remove the checks. We can also remove giveup_altivec_notask() which is also unused. Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman arch/powerpc/include/asm/switch_to.h | 1 - arch/powerpc/kernel/fpu.S | 2 -- arch/powerpc/kernel/head_fsl_booke.S | 2 -- arch/powerpc/kernel/vector.S | 14 -------------- 4 files changed, 19 deletions(-) commit 611b0e5c19963374175b39f42117b03ee7573228 Author: Anton Blanchard Date: Thu Oct 29 11:43:59 2015 +1100 powerpc: Create mtmsrd_isync() mtmsrd_isync() will do an mtmsrd followed by an isync on older processors. On newer processors we avoid the isync via a feature fixup. Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman arch/powerpc/include/asm/reg.h | 8 ++++++++ arch/powerpc/kernel/process.c | 30 ++++++++++++++++++++++-------- 2 files changed, 30 insertions(+), 8 deletions(-) commit b86fd2bd03021ce906bfa0c1456ec38329e31b30 Author: Anton Blanchard Date: Thu Oct 29 11:43:58 2015 +1100 powerpc: Simplify TM restore checks Instead of having multiple giveup_*_maybe_transactional() functions, separate out the TM check into a new function called check_if_tm_restore_required(). This will make it easier to optimise the giveup_*() functions in a subsequent patch. Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman arch/powerpc/kernel/process.c | 53 ++++++++++++++++--------------------------- 1 file changed, 19 insertions(+), 34 deletions(-) commit af1bbc3dd3d501d27da72e1764afe5f5b0d3882d Author: Anton Blanchard Date: Thu Oct 29 11:43:57 2015 +1100 powerpc: Remove UP only lazy floating point and vector optimisations The UP only lazy floating point and vector optimisations were written back when SMP was not common, and neither glibc nor gcc used vector instructions. Now SMP is very common, glibc aggressively uses vector instructions and gcc autovectorises. We want to add new optimisations that apply to both UP and SMP, but in preparation for that remove these UP only optimisations. Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman arch/powerpc/include/asm/processor.h | 6 -- arch/powerpc/include/asm/switch_to.h | 8 --- arch/powerpc/kernel/fpu.S | 35 ----------- arch/powerpc/kernel/head_fsl_booke.S | 32 ---------- arch/powerpc/kernel/idle_power7.S | 7 --- arch/powerpc/kernel/process.c | 113 +---------------------------------- arch/powerpc/kernel/signal_32.c | 18 ------ arch/powerpc/kernel/signal_64.c | 18 ------ arch/powerpc/kernel/vector.S | 68 --------------------- 9 files changed, 1 insertion(+), 304 deletions(-) commit 68bfa962bff5783ad65de9dc7f3b9e16ea466766 Author: Anton Blanchard Date: Thu Oct 29 11:43:56 2015 +1100 powerpc: Remove redundant mflr in _switch No need to execute mflr twice. Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman arch/powerpc/kernel/entry_64.S | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 152d523e6307c7152f9986a542f873b5c5863937 Author: Anton Blanchard Date: Thu Oct 29 11:43:55 2015 +1100 powerpc: Create context switch helpers save_sprs() and restore_sprs() Move all our context switch SPR save and restore code into two helpers. We do a few optimisations: - Group all mfsprs and all mtsprs. In many cases an mtspr sets a scoreboarding bit that an mfspr waits on, so the current practise of mfspr A; mtspr A; mfpsr B; mtspr B is the worst scheduling we can do. - SPR writes are slow, so check that the value is changing before writing it. A context switch microbenchmark using yield(): http://ozlabs.org/~anton/junkcode/context_switch2.c ./context_switch2 --test=yield 0 0 shows an improvement of almost 10% on POWER8. Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman arch/powerpc/include/asm/processor.h | 1 + arch/powerpc/include/asm/switch_to.h | 11 ----- arch/powerpc/kernel/entry_64.S | 60 +---------------------- arch/powerpc/kernel/process.c | 92 +++++++++++++++++++++++++++++++----- 4 files changed, 82 insertions(+), 82 deletions(-) commit af72ab646a6bee724f190820e8f56497a5b635f0 Author: Anton Blanchard Date: Thu Oct 29 11:43:54 2015 +1100 powerpc: Don't disable MSR bits in do_load_up_transact_*() functions Similar to the non TM load_up_*() functions, don't disable the MSR bits on the way out. Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman arch/powerpc/kernel/fpu.S | 4 ---- arch/powerpc/kernel/vector.S | 4 ---- 2 files changed, 8 deletions(-) commit 07e45c120c9c61b792be62182b0a8f706ee2ab24 Author: Anton Blanchard Date: Thu Oct 29 11:43:53 2015 +1100 powerpc: Don't disable kernel FP/VMX/VSX MSR bits on context switch Writing the MSR is slow, so we want to avoid it whenever possible. A subsequent patch will add a debug option that strictly manages the FP/VMX/VSX unavailable bits. For now just remove it, matching what we do in other areas of the kernel (eg enable_kernel_altivec()). A context switch microbenchmark using yield(): http://ozlabs.org/~anton/junkcode/context_switch2.c ./context_switch2 --test=yield --fp 0 0 shows an improvement of almost 3% on POWER8. Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman arch/powerpc/kernel/entry_64.S | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) commit 31a40e2b052c0f2b80df7b56928f9d5ff9c96933 Author: Paul Mackerras Date: Thu Nov 12 16:44:42 2015 +1100 powerpc/64: Include KVM guest test in all interrupt vectors Currently, if HV KVM is configured but PR KVM isn't, we don't include a test to see whether we were interrupted in KVM guest context for the set of interrupts which get delivered directly to the guest by hardware if they occur in the guest. This includes things like program interrupts. However, the recent bug where userspace could set the MSR for a VCPU to have an illegal value in the TS field, and thus cause a TM Bad Thing type of program interrupt on the hrfid that enters the guest, showed that we can never be completely sure that these interrupts can never occur in the guest entry/exit code. If one of these interrupts does happen and we have HV KVM configured but not PR KVM, then we end up trying to run the handler in the host with the MMU set to the guest MMU context, which generally ends badly. Thus, for robustness it is better to have the test in every interrupt vector, so that if some way is found to trigger some interrupt in the guest entry/exit path, we can handle it without immediately crashing the host. This means that the distinction between KVMTEST and KVMTEST_PR goes away. Thus we delete KVMTEST_PR and associated macros and use KVMTEST everywhere that we previously used either KVMTEST_PR or KVMTEST. It also means that SOFTEN_TEST_HV_201 becomes the same as SOFTEN_TEST_PR, so we deleted SOFTEN_TEST_HV_201 and use SOFTEN_TEST_PR instead. Signed-off-by: Paul Mackerras Signed-off-by: Michael Ellerman arch/powerpc/include/asm/exception-64s.h | 21 +++----------------- arch/powerpc/kernel/exceptions-64s.S | 34 ++++++++++++++++---------------- 2 files changed, 20 insertions(+), 35 deletions(-) commit c252659770db6b00817f7c007a68a04e0d0395ad Author: Stephen Boyd Date: Mon Nov 30 17:31:42 2015 -0800 clk: qcom: Add MSM8996 Multimedia Clock Controller (MMCC) driver Add a driver for the multimedia clock controller found on MSM8996 based devices. This should allow most multimedia device drivers to probe and control their clocks. Signed-off-by: Stephen Boyd .../devicetree/bindings/clock/qcom,mmcc.txt | 1 + drivers/clk/qcom/Kconfig | 9 + drivers/clk/qcom/Makefile | 1 + drivers/clk/qcom/mmcc-msm8996.c | 3217 ++++++++++++++++++++ include/dt-bindings/clock/qcom,mmcc-msm8996.h | 285 ++ 5 files changed, 3513 insertions(+) commit 55213e1acec9218580c90d36034aa0370a51daab Author: Stephen Boyd Date: Mon Nov 30 17:31:41 2015 -0800 clk: qcom: Add gfx3d ping-pong PLL frequency switching The GPU clocks on msm8996 have three dedicated PLLs, MMPLL2, MMPLL8, and MMPLL9. We leave MMPLL9 at the maximum speed (624 MHz), and we use MMPLL2 and MMPLL8 for the other frequencies. To make switching frequencies faster, we ping-pong between MMPLL2 and MMPLL8 when we're switching between frequencies that aren't the maximum. Implement custom rcg clk ops for this type of frequency switching. Signed-off-by: Stephen Boyd drivers/clk/qcom/clk-rcg.h | 1 + drivers/clk/qcom/clk-rcg2.c | 87 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+) commit b1e010c0730ab8861ef5a259ff5be7c78ccfb8ac Author: Stephen Boyd Date: Mon Nov 30 17:31:40 2015 -0800 clk: qcom: Add MSM8996 Global Clock Control (GCC) driver Add support for the global clock controller found on MSM8996 based devices. This should allow most non-multimedia device drivers to probe and control their clocks. Signed-off-by: Stephen Boyd .../devicetree/bindings/clock/qcom,gcc.txt | 1 + drivers/clk/qcom/Kconfig | 8 + drivers/clk/qcom/Makefile | 1 + drivers/clk/qcom/gcc-msm8996.c | 3422 ++++++++++++++++++++ include/dt-bindings/clock/qcom,gcc-msm8996.h | 339 ++ 5 files changed, 3771 insertions(+) commit 8ff1f4c4c47676dfccd56b55104a15dcd4650a8f Author: Stephen Boyd Date: Mon Nov 30 17:31:39 2015 -0800 clk: qcom: Add Alpha PLL support Add support for configuring rates of, enabling, and disabling Alpha PLLs. This is sufficient for the types of PLLs found in the global and multimedia clock controllers. Signed-off-by: Stephen Boyd drivers/clk/qcom/Makefile | 1 + drivers/clk/qcom/clk-alpha-pll.c | 355 +++++++++++++++++++++++++++++++++++++++ drivers/clk/qcom/clk-alpha-pll.h | 57 +++++++ 3 files changed, 413 insertions(+) commit fab88ca788dcacf2fbb006d5663456cbd390ee18 Author: Stephen Boyd Date: Mon Nov 30 17:31:38 2015 -0800 clk: divider: Cap table divider values to 'width' member When we use a clk divider with a divider table, we limit the maximum divider value in divider_get_val() to the div_mask(width), but when we calculate the divider in divider_round_rate() we don't consider that the maximum divider may be limited by the width. Pass the width along to _get_table_maxdiv() so that we only return the maximum divider that is valid. This is useful for clocks that want to share the same divider table while limiting the available dividers to some subset of the table depending on the width of the bitfield. Cc: Rajendra Nayak Signed-off-by: Stephen Boyd drivers/clk/clk-divider.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit a81c0f07b4a7559eecebf77bcc1956d9d777b006 Author: Julia Lawall Date: Wed Nov 18 23:04:12 2015 +0100 mtd: nand: sunxi: add missing of_node_put for_each_child_of_node performs an of_node_get on each iteration, so a break out of the loop requires an of_node_put. A simplified version of the semantic patch that fixes this problem is as follows (http://coccinelle.lip6.fr): // @@ expression root,e; local idexpression child; @@ for_each_child_of_node(root, child) { ... when != of_node_put(child) when != e = child ( return child; | + of_node_put(child); ? return ...; ) ... } // Signed-off-by: Julia Lawall Acked-by: Chen-Yu Tsai Acked-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/sunxi_nand.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 081976bcc0cbc84f5164fb7aa0e5cf597df6de9e Author: Julia Lawall Date: Thu Nov 19 22:32:15 2015 +0100 mtd: brcmnand: improve memory management This patch addresses two related memory management issues in the probe function: 1. for_each_available_child_of_node performs an of_node_get on each iteration, so a break out of the loop requires an of_node_put. A simplified version of the semantic patch that fixes this problem is as follows (http://coccinelle.lip6.fr): // @@ expression root,e; local idexpression child; @@ for_each_available_child_of_node(root, child) { ... when != of_node_put(child) when != e = child ( return child; | + of_node_put(child); ? return ...; ) ... } // 2. The devm_kzalloc'd data is not used if brcmnand_init_cs fails. Free it immediately, using devm_kfree in this case, instead of waiting for the remove function. Signed-off-by: Julia Lawall Signed-off-by: Brian Norris drivers/mtd/nand/brcmnand/brcmnand.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 7789cd39274c51bf475411fe22a8ee7255082809 Author: Luis de Bethencourt Date: Mon Nov 30 14:32:17 2015 +0000 mvsas: fix misleading indentation Fix a smatch warning: drivers/scsi/mvsas/mv_sas.c:740 mvs_task_prep() warn: curly braces intended? The code is correct, the indention is misleading. When the device is not ready we want to return SAS_PHY_DOWN. But current indentation makes it look like we only do so in the else branch of if (mvi_dev). Signed-off-by: Luis de Bethencourt Reviewed-by: Johannes Thumshirn Signed-off-by: Martin K. Petersen drivers/scsi/mvsas/mv_sas.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bad9764cfaaa15bc4263824b33956f15267442c6 Author: Colin Ian King Date: Sat Nov 28 16:33:56 2015 +0000 scsi: ufs: fix spelling mistake in error message Minor issue, fix spelling mistake, Intialization -> Initialization Signed-off-by: Colin Ian King Reviewed-by: Johannes Thumshirn Signed-off-by: Martin K. Petersen drivers/scsi/ufs/ufshcd-pltfrm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0401669797488feb055521cade69b1d0e81669db Author: Simon Arlott Date: Mon Nov 16 22:05:39 2015 +0000 brcmnand: Clear EXT_ADDR error registers in PIO mode If an error occurs in flash above 4GB in PIO mode then the EXT_ADDR registers will be set to the location of the error and never cleared. Reset them to 0 before reading. Signed-off-by: Simon Arlott Signed-off-by: Brian Norris drivers/mtd/nand/brcmnand/brcmnand.c | 2 ++ 1 file changed, 2 insertions(+) commit 57303e92f48a0e307fd86977ec9be5aa6a7ea681 Author: Dmitry V. Krivenok Date: Mon Nov 30 23:45:49 2015 +0300 PCI: iproc: Do not use 0x in front of %pap The "%pap" format adds a "0x" prefix, so using "0x%pap" results in output of "0x0x...". Drop the "0x" prefix in the format string. [bhelgaas: changelog] Signed-off-by: Dmitry V. Krivenok Signed-off-by: Bjorn Helgaas Acked-by: Ray Jui drivers/pci/host/pcie-iproc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 128fc68ca1c3c73ed35ef9c7c50b8972de40322f Author: Bjorn Helgaas Date: Mon Nov 30 19:35:53 2015 -0600 PCI/MSI: Remove empty pci_msi_init_pci_dev() 4a7cc8316705 ("genirq/MSI: Move msi_list from struct pci_dev to struct device") removed the contents of pci_msi_init_pci_dev(). All implementation of it are now empty, so remove it completely. Signed-off-by: Bjorn Helgaas drivers/pci/msi.c | 4 ---- drivers/pci/pci.h | 2 -- drivers/pci/probe.c | 3 --- 3 files changed, 9 deletions(-) commit 173b77e8d8fe18e2792fa5dadebd2350f213abbe Author: Liguo Zhang Date: Mon Nov 9 13:43:58 2015 +0800 i2c: mediatek: add i2c first write then read optimization For platform with auto restart support, between every transfer, i2c controller will trigger an interrupt and SW need to handle it to start new transfer. When doing write-then-read transfer, instead of restart mechanism, using WRRD mode to have controller send both transfer in one request to reduce latency. Signed-off-by: Liguo Zhang Reviewed-by: Eddie Huang Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-mt65xx.c | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) commit 64dfbe240f47f672957ff0fadf98583f0412e7e6 Author: Kuninori Morimoto Date: Tue Nov 10 01:15:09 2015 +0000 clk: add CS2000 Fractional-N driver This patch adds CS2000 Fractional-N driver as clock provider. Signed-off-by: Kuninori Morimoto [sboyd@codeaurora.org: Fix unsigned checked for < 0 in cs2000_ratio_get()] Signed-off-by: Stephen Boyd .../devicetree/bindings/clock/cs2000-cp.txt | 22 + drivers/clk/Kconfig | 6 + drivers/clk/Makefile | 1 + drivers/clk/clk-cs2000-cp.c | 510 +++++++++++++++++++++ 4 files changed, 539 insertions(+) commit 15d2639704b828db0506a416eda010178e1fd816 Author: Ching Huang Date: Thu Nov 26 19:44:55 2015 +0800 arcmsr: change driver version to v1.30.00.22-20151126 Change driver version to v1.30.00.22-20151126 Signed-off-by: Ching Huang Reviewed-by: Tomas Henzl Signed-off-by: Martin K. Petersen drivers/scsi/arcmsr/arcmsr.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 02040670aaa0f125259ad8f9f5f30e4d138a65ae Author: Ching Huang Date: Thu Nov 26 19:41:15 2015 +0800 arcmsr: Split dma resource allocation to a new function Split dma resource allocation and io register assignment from get_config to a new function arcmsr_alloc_io_queue. Signed-off-by: Ching Huang Reviewed-by: Tomas Henzl Signed-off-by: Martin K. Petersen drivers/scsi/arcmsr/arcmsr_hba.c | 175 +++++++++++++++++++++------------------ 1 file changed, 93 insertions(+), 82 deletions(-) commit f75ab39a4be08b996ca19002bd7b54df8fdb8d10 Author: Ching Huang Date: Thu Nov 26 19:33:56 2015 +0800 arcmsr: more readability improvements Signed-off-by: Ching Huang Reviewed-by: Tomas Henzl Signed-off-by: Martin K. Petersen drivers/scsi/arcmsr/arcmsr_hba.c | 73 ++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 47 deletions(-) commit 00a5e81fff2d81c3b1bf45712d3a12c905bc7c66 Author: Krzysztof Kozlowski Date: Mon Nov 30 15:03:32 2015 +0900 ARM: exynos_defconfig: Set recommended options for systemd Set following options to a value recommended by systemd (which also matches the multi_v7 deconfig): 1. Enable AUTOFS4_FS - for systemd.automount [0]; 2. Enable BLK_DEV_BSG - SG v4 for recend udev [0][1]; 3. Disable UEVENT_HELPER_PATH - legacy hook for hotplug, forked for each uevent, slows down booting [0]; [0] http://cgit.freedesktop.org/systemd/systemd/tree/README [1] http://patchwork.ozlabs.org/patch/47921/ Signed-off-by: Krzysztof Kozlowski Reviewed-by: Javier Martinez Canillas arch/arm/configs/exynos_defconfig | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit d15dd55d049ccae9a1061e08ad377f9c799b8a3a Author: Ching Huang Date: Wed Nov 25 19:52:15 2015 +0800 arcmsr: changes driver version number Changes driver version number. Signed-off-by: Ching Huang Reviewed-by: Johannes Thumshirn Reviewed-by: Hannes Reinicke Signed-off-by: Martin K. Petersen drivers/scsi/arcmsr/arcmsr.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7e315ffd49b906fc545b8e0312eedeed738796c9 Author: Ching Huang Date: Wed Nov 25 19:49:33 2015 +0800 arcmsr: adds code to support new Areca adapter ARC1203 Support Areca's new PCIe to SATA RAID adapter ARC1203. Signed-off-by: Ching Huang Reviewed-by: Johannes Thumshirn Reviewed-by: Hannes Reinicke Signed-off-by: Martin K. Petersen drivers/scsi/arcmsr/arcmsr.h | 9 +++++++++ drivers/scsi/arcmsr/arcmsr_hba.c | 27 ++++++++++++++++++++++----- 2 files changed, 31 insertions(+), 5 deletions(-) commit d662ad246256e33eb9b25c8e801f4487527f2bfe Author: Ching Huang Date: Wed Nov 25 19:45:16 2015 +0800 arcmsr: make code more readable [mkp: Fixed checkpatch whitespace warning] Signed-off-by: Ching Huang Reviewed-by: Johannes Thumshirn Reviewed-by: Hannes Reinicke Signed-off-by: Martin K. Petersen drivers/scsi/arcmsr/arcmsr.h | 3 +++ drivers/scsi/arcmsr/arcmsr_hba.c | 14 +++++++------- 2 files changed, 10 insertions(+), 7 deletions(-) commit 98f90debc2b64a40a416dd9794ac2d8de6b43af2 Author: Ching Huang Date: Wed Nov 25 19:41:23 2015 +0800 arcmsr: fixes not release allocated resource Releasing allocated resource if get configuration data failed. Signed-off-by: Ching Huang Reviewed-by: Johannes Thumshirn Reviewed-by: Hannes Reinicke Reviewed-by: Tomas Henzl Signed-off-by: Martin K. Petersen drivers/scsi/arcmsr/arcmsr_hba.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 251e2d25bfb72b69edd414abfa42a41191d9657a Author: Ching Huang Date: Wed Nov 25 19:36:02 2015 +0800 arcmsr: fixed getting wrong configuration data Fixed getting wrong configuration data of adapter type B and type D. Signed-off-by: Ching Huang Reviewed-by: Hannes Reinicke Reviewed-by: Johannes Thumshirn Signed-off-by: Martin K. Petersen drivers/scsi/arcmsr/arcmsr_hba.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 4cd38e388d547807e89b4bc51a57bdd5fc5ef7df Author: Bart Van Assche Date: Fri Nov 20 13:33:04 2015 -0800 scsi_transport_fc: Introduce scsi_host_{get,put}() Use scsi_host_{get,put}() instead of open-coding these functions. Compile-tested only. [mkp: Dropped CC:stable and fixed James Smart's email address] Signed-off-by: Bart Van Assche Reviewed-by: Christoph Hellwig Reviewed-by: Johannes Thumshirn Cc: Christoph Hellwig Cc: Hannes Reinecke Cc: James Smart Signed-off-by: Martin K. Petersen drivers/scsi/scsi_transport_fc.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit b03408500e60a5f8142a1ba73949e523c059c265 Author: J.D. Schroeder Date: Thu Oct 22 19:24:16 2015 -0500 ARM: DRA7: hwmod: Enable DEBUG_LL for UART4 UART4 low level debug support. This helps in debugging with UART4 serial console output on DRA7 based platforms. Extending the following fix for UART4. commit 1c7e36bfc3e2 ("ARM: DRA7: hwmod: Fix boot crash with DEBUG_LL enabled on UART3") For using DEBUG_LL, enable CONFIG_DEBUG_OMAP4UART4 in menuconfig. On DRA7, UART4 hwmod doesn't have this flag enabled, failure observed when UART4 is used for low level debugging. Hence, Enable DEBUG_OMAP4UART4_FLAGS for UART4 hwmod. Signed-off-by: J.D. Schroeder Signed-off-by: Praneeth Bajjuri Signed-off-by: Tony Lindgren arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 448f8bc69f3f74e2ecd143ef9c774851fc70d347 Author: Aaro Koskinen Date: Mon Nov 23 23:32:57 2015 +0200 ARM: OMAP: RX-51: fix a typo in log writing Fix a typo when registering HW RNG. Signed-off-by: Aaro Koskinen Signed-off-by: Tony Lindgren arch/arm/mach-omap2/board-rx51-peripherals.c | 2 +- arch/arm/mach-omap2/pdata-quirks.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 480b2b32a42d8247c93cd3ba51f94a8f582bd4dc Author: Mugunthan V N Date: Thu Nov 19 12:31:01 2015 +0530 ARM: dts: dra7: add spi alias for qspi Set the alias for qspi to spi0 Signed-off-by: Mugunthan V N Reviewed-by: Tom Rini Signed-off-by: Tony Lindgren arch/arm/boot/dts/dra7.dtsi | 1 + 1 file changed, 1 insertion(+) commit 6cab180d9ba3c38da50fc32eb90c33fc9e77b81f Author: Heiko Schocher Date: Tue Nov 17 09:24:15 2015 +0100 arm, am335x: add support for the bosch shc board add support for the am335x based shc board. UART: 0-2 and 4 DRAM: 512 MiB MMC: OMAP SD/MMC: 0 @ 26 MHz OMAP SD/MMC: 1 @ 26 MHz I2C: at24 eeprom, pcf8563 USB: USB1 (host) Signed-off-by: Heiko Schocher Signed-off-by: Tony Lindgren arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/am335x-shc.dts | 577 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 578 insertions(+) commit 258511e1ee2a74783eb73ffae7e52d622bb67707 Author: Franklin S Cooper Jr Date: Wed Oct 28 16:02:16 2015 -0500 ARM: dts: omap4: Add elm node Add device tree entry for the error location module. Signed-off-by: Franklin S Cooper Jr Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap4.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) commit 8e6ebfaa9b384088002baa10f7534efa73a0794e Author: Heiko Schocher Date: Tue Oct 27 13:36:36 2015 +0100 regulator: tps65217: remove tps65217.dtsi file remove tps65217.dtsi and adapt all boards, which used it. Signed-off-by: Heiko Schocher Tested-by: Keerthy Acked-by: Mark Brown Acked-by: Rob Herring Signed-off-by: Tony Lindgren .../devicetree/bindings/regulator/tps65217.txt | 10 ++++ arch/arm/boot/dts/am335x-bone-common.dtsi | 14 ++++-- arch/arm/boot/dts/am335x-chilisom.dtsi | 14 +++++- arch/arm/boot/dts/am335x-nano.dts | 14 +++++- arch/arm/boot/dts/am335x-pepper.dts | 14 +++++- arch/arm/boot/dts/am335x-sl50.dts | 13 ++++- arch/arm/boot/dts/tps65217.dtsi | 56 ---------------------- 7 files changed, 68 insertions(+), 67 deletions(-) commit 07f1c49c1561127c7f394481bb58bf83e15b71a9 Author: Ilya Ledvich Date: Tue Nov 24 16:02:13 2015 +0200 ARM: dts: cm-t335: add support for PWM backlight Add pinmux configuration for ECAP0 pin. Add node for PWM backlight device. Use PWM output from ecap0 as backlight source. Signed-off-by: Ilya Ledvich Signed-off-by: Uri Mashiach Acked-by: Igor Grinberg Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-cm-t335.dts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit 3a8038eef06189898b04e4a9209720f54853d0f6 Author: Ilya Ledvich Date: Tue Nov 24 16:02:12 2015 +0200 ARM: dts: cm-t335: add support for network device Add pinmux configurations for RGMII1 based CPSW Ethernet pins and MDIO pins: - default configuration required for module in active state, - sleep configuration required for module in inactive state. Add mac node with single slave device. Add nodes for davinci_mdio and cpsw_emac0. Signed-off-by: Ilya Ledvich Signed-off-by: Uri Mashiach Acked-by: Igor Grinberg Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-cm-t335.dts | 85 ++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) commit 54f0c5ceba9633e816c69a56258b43561490bade Author: Ilya Ledvich Date: Tue Nov 24 16:02:11 2015 +0200 ARM: dts: cm-t335: add support for MMC Add pinmux configuration for MMC0 pins. Add fixed regulator 'vmmc_fixed'. Enable MMC0 in 4-bit mode. Signed-off-by: Ilya Ledvich Signed-off-by: Uri Mashiach Acked-by: Igor Grinberg Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-cm-t335.dts | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) commit 440c3a1c65c16784420ff87af2e903c3b0fe9e5f Author: Ilya Ledvich Date: Tue Nov 24 16:02:10 2015 +0200 ARM: dts: cm-t335: add support for NAND flash Add pinmux configuration for NAND specific GPMC pins. Add description for GPMC controller. Add child node for NAND flash including CM-T335 specific partition table to GPMC node. Enable error-location module (ELM). Acked-by: Igor Grinberg Signed-off-by: Ilya Ledvich Signed-off-by: Uri Mashiach Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-cm-t335.dts | 106 +++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) commit 43577ecfcaa28bb21bd19739c35d96c444bdf1a8 Author: Ilya Ledvich Date: Tue Nov 24 16:02:09 2015 +0200 ARM: dts: cm-t335: add basic support for I2C Add pinmux configuration for I2C0 and I2C1 pins. Add description for I2C0 bus, set clock frequency to 400kHz. Add child nodes for 24c02 EEPROM and em3027 RTC on I2C0 bus. Signed-off-by: Ilya Ledvich Signed-off-by: Uri Mashiach Acked-by: Igor Grinberg Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-cm-t335.dts | 37 ++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) commit 15be8179e46aa8adc303f8585acd3c626ca678dc Author: Ilya Ledvich Date: Tue Nov 24 16:02:08 2015 +0200 ARM: dts: cm-t335: add initial support Add basic support for CompuLab cm-t335 module based on AM335X SoC. CM-T335 is a tiny computer-on-module (CoM) / system-on-module (SoM) The module is built around the Texas Instruments Sitara AM3352/4 system-on-chip. The CPU is supplemented with up-to 512MB DDR3 and up-to 1GB of on-board NAND storage, WiFi connected to SPI, Bluetooth, Analog audio, Gigabit Ethernet, CAN bus. Current patch adds support: UART0 and GPIO LED Detailed description can be found at the module site: http://www.compulab.co.il/products/computer-on-modules/cm-t335/ Signed-off-by: Ilya Ledvich [uri.mashiach@compulab.co.il: the default RAM amount reduced to 128MB to support also the minimal module configuration] Signed-off-by: Uri Mashiach Acked-by: Igor Grinberg Acked-by: Rob Herring Signed-off-by: Tony Lindgren .../devicetree/bindings/arm/omap/omap.txt | 3 ++ arch/arm/boot/dts/Makefile | 7 +-- arch/arm/boot/dts/am335x-cm-t335.dts | 62 ++++++++++++++++++++++ 3 files changed, 69 insertions(+), 3 deletions(-) commit b6f0f6c40b664638e2da6e6a940c7ef41592e3ab Author: Adam Ford Date: Mon Oct 26 07:53:10 2015 -0500 ARM: dts: Set VAUX1 and VAUX4 on Logic PD Torpedo The schematic expects VAUX1 to be 3.0V attached to the debug port. The schematic expects VAUX4 to be 1.8V. VAUX4 powers VDDS_CSI2 on processor. Signed-off-by: Adam Ford Signed-off-by: Tony Lindgren arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 7cd6ca770d1b067e6ddc7207a16755da7ea9bd09 Author: Adam Ford Date: Mon Oct 26 07:42:38 2015 -0500 ARM: dts: Change I2C2 and I2C3 to 400KHz for LogicPD Torpedo DM3730 devkit When used with the Logic PD development kit, this makes the I2C buses match the BSP released by Logic PD. Signed-off-by: Adam Ford Signed-off-by: Tony Lindgren arch/arm/boot/dts/logicpd-torpedo-som.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) commit 80d69009ef67d0753c1c30c62056a04275898531 Merge: aeb745e 92907cb Author: Dave Airlie Date: Tue Dec 1 08:01:53 2015 +1000 Merge tag 'drm-intel-next-2015-11-20-merged' of git://anongit.freedesktop.org/drm-intel into drm-next drm-intel-next-2015-11-20-rebased: 4 weeks because of my vacation, so a bit more: - final bits of the typesafe register mmio functions (Ville) - power domain fix for hdmi detection (Imre) - tons of fixes and improvements to the psr code (Rodrigo) - refactoring of the dp detection code (Ander) - complete rework of the dmc loader and dc5/dc6 handling (Imre, Patrik and others) - dp compliance improvements from Shubhangi Shrivastava - stop_machine hack from Chris to fix corruptions when updating GTT ptes on bsw - lots of fifo underrun fixes from Ville - big pile of fbc fixes and improvements from Paulo - fix fbdev failures paths (Tvrtko and Lukas Wunner) - dp link training refactoring (Ander) - interruptible prepare_plane for atomic (Maarten) - basic kabylake support (Deepak&Rodrigo) - don't leak ringspace on resets (Chris) drm-intel-next-2015-10-23: - 2nd attempt at atomic watermarks from Matt, but just prep for now - fixes all over * tag 'drm-intel-next-2015-11-20-merged' of git://anongit.freedesktop.org/drm-intel: (209 commits) drm/i915: Update DRIVER_DATE to 20151120 drm/i915: take a power domain reference while checking the HDMI live status drm/i915: take a power domain ref only when needed during HDMI detect drm/i915: Tear down fbdev if initialization fails async: export current_is_async() Revert "drm/i915: Initialize HWS page address after GPU reset" drm/i915: Fix oops caused by fbdev initialization failure drm/i915: Fix i915_ggtt_view_equal to handle rotation correctly drm/i915: Stuff rotation params into view union drm/i915: Drop return value from intel_fill_fb_ggtt_view drm/i915 : Fix to remove unnecsessary checks in postclose function. drm/i915: add MISSING_CASE to a few port/aux power domain helpers drm/i915/ddi: fix intel_display_port_aux_power_domain() after HDMI detect drm/i915: Remove platform specific *_dp_detect() functions drm/i915: Don't do edp panel detection in g4x_dp_detect() drm/i915: Send TP1 TP2/3 even when panel claims no NO_TRAIN_ON_EXIT. drm/i915: PSR: Don't Skip aux handshake on DP_PSR_NO_TRAIN_ON_EXIT. drm/i915: Reduce PSR re-activation time for VLV/CHV. drm/i915: Delay first PSR activation. drm/i915: Type safe register read/write ... commit aeb745e9b5f3e5bad1c03e402619f5506ca2f6da Merge: 31ade3b 87069f4 Author: Dave Airlie Date: Tue Dec 1 08:01:18 2015 +1000 Merge tag 'topic/drm-misc-2015-11-26' of git://anongit.freedesktop.org/drm-intel into drm-next Here's the first drm-misc pull, with really mostly misc stuff all over. Somewhat invasive is only Ville's change to mark the arg struct for fb_create const - that might conflict with a new driver pull. So better to get in fast. * tag 'topic/drm-misc-2015-11-26' of git://anongit.freedesktop.org/drm-intel: drm/mm: use list_next_entry drm/i915: fix potential dangling else problems in for_each_ macros drm: fix potential dangling else problems in for_each_ macros drm/sysfs: Send out uevent when connector->force changes drm/atomic: Small documentation fix. drm/mm: rewrite drm_mm_for_each_hole drm/sysfs: Grab lock for edid/modes_show drm: Print the src/dst/clip rectangles in error in drm_plane_helper drm: Add "prefix" parameter to drm_rect_debug_print() drm: Keep coordinates in the typical x, y, w, h order instead of x, y, h, w drm: Pass the user drm_mode_fb_cmd2 as const to .fb_create() drm: modes: replace simple_strtoul by kstrtouint drm: Describe the Rotation property bits. drm: Remove unused fbdev_list members GPU-DRM: Delete unnecessary checks before drm_property_unreference_blob() drm/dp: add eDP DPCD backlight control bit definitions drm/tegra: Remove local fbdev emulation Kconfig option drm/imx: Remove local fbdev emulation Kconfig option drm/gem: Update/Polish docs drm: Update GEM refcounting docs commit c9fbaa4997c0e6ff2d454abc667a33142ffcff66 Author: Franklin S Cooper Jr Date: Wed Oct 28 16:02:17 2015 -0500 ARM: omap4: hwmod: Remove elm address space from hwmod data ELM address information is provided by device tree. No longer need to include this information within hwmod. This patch has only been boot tested. Signed-off-by: Franklin S Cooper Jr Signed-off-by: Tony Lindgren arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 10 ---------- 1 file changed, 10 deletions(-) commit ed5a4c6248a9e842d691dd3660b9f79be846693f Author: Suman Anna Date: Mon Oct 5 18:28:22 2015 -0500 ARM: OMAP2+: timer: Remove secure timer for DRA7xx HS devices Timer 12 on DRA7 SoCs is reserved for secure usage on high-secure (HS) devices. The timer cannot be used by the kernel on HS devices, but is available on regular general purpose (GP) devices. This is similar to the behavior on OMAP3 devices, so extend the logic used in commit ad24bde8f102 ("ARM: OMAP3: Dynamically disable secure timer nodes for secure devices") to remove the secure timer on DRA7xx SoCs at run-time based on the SoC device type. Signed-off-by: Suman Anna Signed-off-by: Tony Lindgren arch/arm/mach-omap2/timer.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit ea05d2eaf66543e1305a6eb0f1a46db1257731c4 Author: Suman Anna Date: Mon Oct 5 18:28:21 2015 -0500 ARM: OMAP: dmtimer: check for fixed timers during config The omap_dm_timer_set_source() function provides a means for client users to configure the mux parent for a GPTimer's functional clock. However, not all timers are configurable (Eg: Timer12 on DRA7 is fed by an internal 32k oscillator clock, and does not have configurable parent clocks). So, check for such cases and proceed with out throwing an error. Signed-off-by: Suman Anna Signed-off-by: Tony Lindgren arch/arm/plat-omap/dmtimer.c | 7 +++++++ 1 file changed, 7 insertions(+) commit fe7579d6122f2869d00b55842bca9e2a9be51607 Author: Arnd Bergmann Date: Tue Nov 24 23:09:02 2015 +0100 mtd: cfi: don't warn about broken geometry for !CONFIG_MTD The linux/mtd/map.h header file is included by a couple of platform specific files that are built even when CONFIG_MTD is disabled, and we always get warning "No CONFIG_MTD_MAP_BANK_WIDTH_xx selected. No NOR chip support can work" in that case. This adds an #ifdef around the pointless warning, as everything is really fine when we don't build the drivers anyway. Signed-off-by: Arnd Bergmann Signed-off-by: Brian Norris include/linux/mtd/map.h | 2 ++ 1 file changed, 2 insertions(+) commit f5f92b36fbbb8ac7d70ff5fa39ec2637cce3094c Author: Arnd Bergmann Date: Mon Nov 23 14:39:33 2015 +0100 mtd: cfi: enforce valid geometry configuration MTD allows compile-time configuration of the possible CFI geometry settings that are allowed by the kernel, but that includes a couple of invalid configurations, where no bank width or no interleave setting is allowed. These are then caught with a compile-time warning: include/linux/mtd/cfi.h:76:2: warning: #warning No CONFIG_MTD_CFI_Ix selected. No NOR chip support can work. include/linux/mtd/map.h:145:2: warning: #warning "No CONFIG_MTD_MAP_BANK_WIDTH_xx selected. No NOR chip support can work" This is a bit annoying for randconfig tests, and can be avoided if we change the Kconfig logic to always select the simplest configuration when no other one is enabled. Signed-off-by: Arnd Bergmann Signed-off-by: Brian Norris drivers/mtd/chips/Kconfig | 4 ++++ 1 file changed, 4 insertions(+) commit 75c4a57ca9ee747f1cbb24591d92a41b2eddff52 Merge: 43cd699 ccbb0aa Author: David S. Miller Date: Mon Nov 30 15:26:23 2015 -0500 Merge branch 'ipmr-nl' Nikolay Aleksandrov says: ==================== net: ipmr: more cleanups and mfc netlink support This set continues with the minor cleanups in the first 6 patches and patch 7 adds the first new feature - MFC manipulation via netlink. It registers NEWROUTE/DELROUTE for that purpose and uses the same semantics as the already present netlink dump. The only new attribute that is used is RTA_PREFSRC to denote an MFC_PROXY entry. Currently the table must exist before adding an entry, and new tables can be created only via setsockopt, but that will be changed in the future. This set was tested with modified iproute2 which supports NEWROUTE/DELROUTE for RTNL_FAMILY_IPMR. ==================== Signed-off-by: David S. Miller commit ccbb0aa62da7f4b765b3e311caf25ea43cc3d0ad Author: Nikolay Aleksandrov Date: Thu Nov 26 15:23:50 2015 +0100 net: ipmr: add mfc newroute/delroute netlink support This patch adds support to add and remove MFC entries. It uses the same attributes like the already present dump support in order to be consistent. There's one new entry - RTA_PREFSRC, it's used to denote an MFC_PROXY entry (see MRT_ADD_MFC vs MRT_ADD_MFC_PROXY). The already existing infrastructure is used to create and delete the entries, the netlink message gets converted internally to a struct mfcctl which is used with ipmr_mfc_add/delete. The other used attributes are: RTA_IIF - used for mfcc_parent (when adding it's required to be valid) RTA_SRC - used for mfcc_origin RTA_DST - used for mfcc_mcastgrp RTA_TABLE - the MRT table id RTA_MULTIPATH - the "oifs" ttl array Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller net/ipv4/ipmr.c | 129 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) commit 42e6b89ce4e8a4f02a1e906694d81acf60db6f4d Author: Nikolay Aleksandrov Date: Thu Nov 26 15:23:49 2015 +0100 net: ipmr: fix setsockopt error return We can have both errors and we'll return the second one, fix it to return an error at a time as it's normal. I've overlooked this in my previous set. Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller net/ipv4/ipmr.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 1973a4ea6ceaa47671227c3077f90508ea30897b Author: Nikolay Aleksandrov Date: Thu Nov 26 15:23:48 2015 +0100 net: ipmr: move pimsm_enabled to pim.h and rename Move the inline pimsm_enabled() to pim.h and rename it to ipmr_pimsm_enabled to show it's for the ipv4 ipmr code since pim.h is used by IPv6 too. Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller include/linux/pim.h | 5 +++++ net/ipv4/ipmr.c | 11 +++-------- 2 files changed, 8 insertions(+), 8 deletions(-) commit 5ea1f13299d8b8edcb2969eda4c81f8e3264b706 Author: Nikolay Aleksandrov Date: Thu Nov 26 15:23:47 2015 +0100 net: ipmr: move struct mr_table and VIF_EXISTS to mroute.h Move the definitions of VIF_EXISTS() and struct mr_table to mroute.h Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller include/linux/mroute.h | 21 +++++++++++++++++++-- net/ipv4/ipmr.c | 18 ------------------ 2 files changed, 19 insertions(+), 20 deletions(-) commit 520191bb404c4b7b4cdb70a5480ada974b0c2d60 Author: Nikolay Aleksandrov Date: Thu Nov 26 15:23:46 2015 +0100 net: ipmr: adjust mroute.h style and drop extern Remove extra spaces and tabs, adjust function definitions, remove an unnecessary ifdef (already used below, just move code) and drop extern from the functions. Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller include/linux/mroute.h | 47 +++++++++++++++++++++-------------------------- 1 file changed, 21 insertions(+), 26 deletions(-) commit 06bd6c0370bb88a2256c6763a32bc4e4ade06521 Author: Nikolay Aleksandrov Date: Thu Nov 26 15:23:45 2015 +0100 net: ipmr: remove unused MFC_NOTIFY flag and make the flags enum MFC_NOTIFY was introduced in kernel 2.1.68 but afaik it hasn't been used and I couldn't find any users currently so just remove it. Only MFC_STATIC is left, so move it into an enum, add a description and use BIT(). Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller include/linux/mroute.h | 10 +++++++--- net/ipv4/ipmr.c | 2 -- 2 files changed, 7 insertions(+), 5 deletions(-) commit dfc3b0e89188e0dfe6eb12f9bb29c9dfc27bbda1 Author: Nikolay Aleksandrov Date: Thu Nov 26 15:23:44 2015 +0100 net: remove unnecessary mroute.h includes It looks like many files are including mroute.h unnecessarily, so remove the include. Most importantly remove it from ipv6. CC: Hideaki YOSHIFUJI CC: Steffen Klassert CC: Herbert Xu Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller net/ipv4/ip_gre.c | 1 - net/ipv4/ip_output.c | 1 - net/ipv4/ip_tunnel.c | 1 - net/ipv4/ip_tunnel_core.c | 1 - net/ipv4/ip_vti.c | 1 - net/ipv4/ipip.c | 1 - net/ipv6/ip6_gre.c | 1 - 7 files changed, 7 deletions(-) commit 948c58a03a4c63edc1007c222c340003fdba6d98 Author: Shubhrajyoti Datta Date: Tue Nov 24 13:01:57 2015 +0530 i2c: cadence: Remove the suspended flag The suspended flag is a flag holding the device's PM status. The runtime framework does that for us. Use pm_runtime_suspended call instead. Signed-off-by: Shubhrajyoti Datta Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-cadence.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 7fa32329ca03148fb2c07b4ef3247b8fc0488d6a Author: Shubhrajyoti Datta Date: Tue Nov 24 13:01:56 2015 +0530 i2c: cadence: Move to sensible power management Currently the clocks are enabled at probe and disabled at remove. Which keeps the clocks enabled even if no transaction is going on. This patch enables the clocks at the start of transfer and disables after it. Also adapts to runtime pm. converts dev pm to const to silence a checkpatch warning. Signed-off-by: Shubhrajyoti Datta Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-cadence.c | 66 +++++++++++++++++++++++++++------------- 1 file changed, 45 insertions(+), 21 deletions(-) commit 43cd6991a04bd83c894dbbee53c6e60a343b6033 Merge: 1ce0bf5 5258196 Author: David S. Miller Date: Mon Nov 30 15:05:41 2015 -0500 Merge branch 'mlxsw-hwmon' Jiri Pirko says: ==================== mlxsw: driver update This patchset carries support for port identification, monitoring of ASIC temperature and board fans. ==================== Signed-off-by: David S. Miller commit 52581961d83d3550959fdc2e33566c7c9bb1251d Author: Jiri Pirko Date: Fri Nov 27 13:45:59 2015 +0100 mlxsw: core: Implement fan control using hwmon ASIC provides access to fans. Implement their exposure to userspace using hwmon. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c | 121 ++++++++++++++++++++++- 1 file changed, 120 insertions(+), 1 deletion(-) commit 5246f2e29ab89b3fba422afc5bcc0f434e57af9c Author: Jiri Pirko Date: Fri Nov 27 13:45:58 2015 +0100 mlxsw: reg: Add definition of fan management registers Add definition of MFCR, MFSC and MFSM which provide possibility to control and monitor fans. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/reg.h | 133 ++++++++++++++++++++++++++++++ 1 file changed, 133 insertions(+) commit 89309da39f55922f6ca18ecd09a158c319c69d55 Author: Jiri Pirko Date: Fri Nov 27 13:45:57 2015 +0100 mlxsw: core: Implement temperature hwmon interface ASIC provides access to temperature sensors. Implement their exposure to userspace using hwmon. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/Kconfig | 8 + drivers/net/ethernet/mellanox/mlxsw/Makefile | 1 + drivers/net/ethernet/mellanox/mlxsw/core.c | 8 + drivers/net/ethernet/mellanox/mlxsw/core.h | 24 +++ drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c | 223 +++++++++++++++++++++++ 5 files changed, 264 insertions(+) commit 85926f8770403d4c7a1828db873eb8c6bec14ce5 Author: Jiri Pirko Date: Fri Nov 27 13:45:56 2015 +0100 mlxsw: reg: Add definition of temperature management registers Add definition of MTCAP and MTMP registers which provide access to temperature sensors. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/reg.h | 111 ++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) commit 3a66ee38dcde2e7befcd1563151615644a560072 Author: Ido Schimmel Date: Fri Nov 27 13:45:55 2015 +0100 mlxsw: spectrum: Add support for port identification Allow a user to flash the port's LED in order to identify it. This is achieved by setting the Management LED Control Register (MLCR). Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit 3161c1590049a10879557c7864eaf5ab7ac103ee Author: Ido Schimmel Date: Fri Nov 27 13:45:54 2015 +0100 mlxsw: reg: Add Management LED Control register definition Add the MLCR register, which controls physical port identification LEDs. Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/reg.h | 46 +++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) commit 2c81de771f38e54324ede3f24118f4852570b384 Author: Rafał Miłecki Date: Thu Nov 26 09:05:04 2015 +0100 mtd: spi-nor: include mtd.h header for struct mtd_info definition So far struct spi_nor was using just a pointer to struct mtd_info so it wasn't needed to have it fully defined there. After recent change we embed whole struct so we need to include a proper header. Fixes: 1976367173a4 ("mtd: spi-nor: embed struct mtd_info within struct spi_nor") Signed-off-by: Rafał Miłecki Signed-off-by: Brian Norris include/linux/mtd/spi-nor.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 1ce0bf50ae2233c7115a18c0c623662d177b434c Author: Herbert Xu Date: Thu Nov 26 13:55:39 2015 +0800 net: Generalise wq_has_sleeper helper The memory barrier in the helper wq_has_sleeper is needed by just about every user of waitqueue_active. This patch generalises it by making it take a wait_queue_head_t directly. The existing helper is renamed to skwq_has_sleeper. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller crypto/algif_aead.c | 4 ++-- crypto/algif_skcipher.c | 4 ++-- include/linux/wait.h | 21 +++++++++++++++++++++ include/net/sock.h | 15 +++++---------- net/atm/common.c | 4 ++-- net/core/sock.c | 8 ++++---- net/core/stream.c | 2 +- net/dccp/output.c | 2 +- net/iucv/af_iucv.c | 2 +- net/rxrpc/af_rxrpc.c | 2 +- net/sctp/socket.c | 2 +- net/tipc/socket.c | 4 ++-- net/unix/af_unix.c | 2 +- 13 files changed, 44 insertions(+), 28 deletions(-) commit 198bb59493f810ece01e56e9694bfdb39b5aa056 Author: Masahiro Yamada Date: Mon Nov 30 16:40:51 2015 +0900 clk: fix a typo in comment block of clk_notifier_register() The word "cases" is doubled. Keep decent forms for the following lines. Signed-off-by: Masahiro Yamada Signed-off-by: Stephen Boyd drivers/clk/clk.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 07ff73a932b725b2a4675bd0cc1a86b4933e433e Author: Tero Kristo Date: Mon Nov 30 16:43:25 2015 +0200 clk: ti: omap5+: dpll: implement errata i810 Errata i810 states that DPLL controller can get stuck while transitioning to a power saving state, while its M/N ratio is being re-programmed. As a workaround, before re-programming the M/N ratio, SW has to ensure the DPLL cannot start an idle state transition. SW can disable DPLL idling by setting the DPLL AUTO_DPLL_MODE=0 or keeping a clock request active by setting a dependent clock domain in SW_WKUP. This errata impacts OMAP5 and DRA7 chips, so enable the errata for these. Signed-off-by: Tero Kristo Signed-off-by: Stephen Boyd arch/arm/mach-omap2/clock.c | 4 ++++ drivers/clk/ti/dpll3xxx.c | 25 ++++++++++++++++++++++++- include/linux/clk/ti.h | 1 + 3 files changed, 29 insertions(+), 1 deletion(-) commit 9ff502f58a2b723b6226cf13b2daf931d1d20c37 Author: Adam Ford Date: Mon Oct 26 07:27:37 2015 -0500 ARM: dts: Enable UART2 pinctrl on LogicPD Torpedo + Wireless module Setup UART2 for communication at 3MBps with flow control. Signed-off-by: Adam Ford [tony@atomide.com: dropped the kim changes, that binding has been removed] Signed-off-by: Tony Lindgren arch/arm/boot/dts/logicpd-torpedo-som.dtsi | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 2d11961f3e554ca7f90ce3ee2ed42421edd1e776 Author: Adam Ford Date: Fri Oct 23 07:27:33 2015 -0500 ARM: dts: Set VAUX1 and VAUX4 to 3.0V and 1.8V respectively The development kit schematic expects VAUX1 to be 3.0V. Most users use the development kit as a reference. The development kit schematic expects VAUX4 to be 1.8V. VAUX4 powers VDDS_CSI2 on processor. If the voltage is too high it could damage the processor. If it's too low, it won't work. Signed-off-by: Tony Lindgren arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 6b3d42c6fcc472082ad9b1482111f487719f826a Author: Adam Ford Date: Fri Oct 23 07:23:14 2015 -0500 ARM: dts: Change I2C2 and I2C3 to 400KHz for LogicPD Torpedo DM3730 devkit When used with the Logic PD development kit, this makes the I2C buses match the BSP released by Logic PD. Signed-off-by: Tony Lindgren arch/arm/boot/dts/logicpd-torpedo-som.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) commit f81902e44a2738a3228c96f2307f449cfc0acc89 Author: Adam Ford Date: Fri Oct 23 07:20:23 2015 -0500 ARM: dts: Add audio support for LogicPD Torpedo DM3730 devkit Use the TWL4030 Codec with mcbsp2 on Torpedo. Signed-off-by: Adam Ford Signed-off-by: Tony Lindgren arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts | 10 ++++++++++ arch/arm/boot/dts/logicpd-torpedo-som.dtsi | 13 +++++++++++++ 2 files changed, 23 insertions(+) commit 201c7e3386059204c0048384900c82276e0a37fe Author: Franklin S Cooper Jr Date: Thu Oct 15 12:37:27 2015 -0500 ARM: dts: am437x/am33xx/omap/dm816x: Add gpmc dma channel Add dma channel information to the gpmc. Although not enabled by default this will allow prefetch-dma to be used. Signed-off-by: Franklin S Cooper Jr Signed-off-by: Tony Lindgren arch/arm/boot/dts/am33xx.dtsi | 2 ++ arch/arm/boot/dts/am4372.dtsi | 2 ++ arch/arm/boot/dts/dm816x.dtsi | 2 ++ arch/arm/boot/dts/omap3.dtsi | 2 ++ arch/arm/boot/dts/omap4.dtsi | 2 ++ arch/arm/boot/dts/omap5.dtsi | 2 ++ 6 files changed, 12 insertions(+) commit b6a89194182fe7a33d383463b8b9af6e117d8146 Author: Suman Anna Date: Wed Sep 16 18:48:22 2015 -0500 ARM: OMAP2+: Remove omap_mmu_dev_attr structure The structure omap_mmu_dev_attr was used in the hwmod data for supplying device-specific data through the .dev_attr field and used in constructing the platform data for legacy device creation. The legacy device creation of OMAP IOMMU devices has been cleaned up, and this structure is no longer needed, so remove it. Signed-off-by: Suman Anna Signed-off-by: Tony Lindgren include/linux/platform_data/iommu-omap.h | 9 --------- 1 file changed, 9 deletions(-) commit 1ad0ea0c6575e355d42397f65e70d3b83eb9742e Author: Suman Anna Date: Wed Sep 16 18:48:21 2015 -0500 ARM: OMAP4: hwmod data: Remove legacy IOMMU attr and addrs OMAP4 has been DT-boot only for some time, and the legacy-mode device creation logic for IOMMU devices has also been cleaned up, so the dev_attr and address data is no longer required. So, remove these attribute data and hwmod addr space for the IPU & DSP IOMMU devices. Signed-off-by: Suman Anna Signed-off-by: Tony Lindgren arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 31 ------------------------------ 1 file changed, 31 deletions(-) commit 621062f49b4e72e6361b1792a510e5b056689800 Author: Suman Anna Date: Wed Sep 16 18:48:20 2015 -0500 ARM: OMAP3: hwmod data: Remove legacy IOMMU data The legacy-mode device creation logic for IOMMU devices has been cleaned up, so the device attribute data, irq information and address data are no longer required. Remove all of these data for the ISP & IVA IOMMU devices. Signed-off-by: Suman Anna [tony@atomide.com: updated to apply for the include] Signed-off-by: Tony Lindgren arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 42 ------------------------------ 1 file changed, 42 deletions(-) commit dd20b0d5c74bc2157a2444f5173dabdc6449aa4d Author: Suman Anna Date: Wed Sep 16 18:48:19 2015 -0500 ARM: OMAP2+: Remove legacy device instantiation of IOMMUs The legacy-style IOMMU device creation is maintained currently only for OMAP3 SoC, as all other SoCs are DT-boot only, and also to ensure functionality of the OMAP3 ISP driver, the only in-kernel client user on OMAP3 that supported both modes. Commit 78c66fbcec71 ("[media] v4l: omap3isp: Drop platform data support") removed the legacy device support from the OMAP3 ISP driver, so the legacy device instantiation of OMAP IOMMU devices is no longer needed, and is cleaned up. Signed-off-by: Suman Anna [tony@atomide.com: updated to remove also the Makefile entry] Signed-off-by: Tony Lindgren arch/arm/mach-omap2/Makefile | 2 -- arch/arm/mach-omap2/omap-iommu.c | 66 ---------------------------------------- 2 files changed, 68 deletions(-) commit 1539569bc95c6b65016160af842f7fbb9085f8bb Author: Neil Armstrong Date: Thu Oct 22 11:18:59 2015 +0200 ARM: OMAP2+: Add hwmod spinbox support for dm816x Add dm81xx hwmod data entries for dm816x spinbox support. Cc: Brian Hutchinson Signed-off-by: Neil Armstrong Signed-off-by: Tony Lindgren arch/arm/mach-omap2/omap_hwmod_81xx_data.c | 35 ++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) commit 8c0cabd7970c0d50d53bf795b1a0f6f570b19437 Author: Neil Armstrong Date: Thu Oct 22 11:18:53 2015 +0200 ARM: OMAP: add DT support for ti,dm816-timer Adds ti,dm816-timer to the dmtimer OF match table. Cc: Brian Hutchinson Signed-off-by: Neil Armstrong Signed-off-by: Tony Lindgren arch/arm/plat-omap/dmtimer.c | 4 ++++ 1 file changed, 4 insertions(+) commit 24f098220c43fb9ac32f6a667dfd102e2bdae671 Author: Neil Armstrong Date: Thu Nov 12 15:07:49 2015 +0100 ARM: dts: Add omap4-hwspinlock support in dm816x Add dm816x DT entries for omap4-hwspinlock support as hwmod spinbox. Cc: Brian Hutchinson Signed-off-by: Neil Armstrong Signed-off-by: Tony Lindgren arch/arm/boot/dts/dm816x.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) commit 727535fd2032985c987a34b7e5853512424237d5 Author: Neil Armstrong Date: Thu Nov 12 15:07:45 2015 +0100 ARM: dts: remove dm816x invalid DT l3_main hwmod Remove invalid l3_main hwmod entry from dm816x DT ocp node. Cc: Brian Hutchinson Signed-off-by: Neil Armstrong Signed-off-by: Tony Lindgren arch/arm/boot/dts/dm816x.dtsi | 1 - 1 file changed, 1 deletion(-) commit 8ca31dbf67b3ad65b629e8185086050fa6b29dbc Author: Neil Armstrong Date: Thu Nov 12 15:07:40 2015 +0100 ARM: dts: add dm816x pwm property to timers Adds ti,timer-pwm property to timers 4 to 7 to permit usage of their PWM output fonctionnality via the dmtimer driver. Cc: Brian Hutchinson Signed-off-by: Neil Armstrong Signed-off-by: Tony Lindgren arch/arm/boot/dts/dm816x.dtsi | 4 ++++ 1 file changed, 4 insertions(+) commit 186fadc132f0d634c7b43202a240fbd3654b6623 Author: Kuninori Morimoto Date: Mon Nov 30 08:54:03 2015 +0000 ASoC: rsnd: add TDM Extend Mode support Renesas R-Car can out TDM by 1) 6ch x 1 DAI as TDM Extend Mode 2) 2ch x 4 x 1 DAI as TDM split Mode 3) 2ch x 3 DAI or 2ch x 4 DAI as TDM Multichannel Mode This patch adds 1) TDM Extend Mode. Because of HW design, this 6ch data will be outputed via 8ch data width. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 30 ++++++++++++++++++++++++++---- sound/soc/sh/rcar/gen.c | 1 + sound/soc/sh/rcar/rsnd.h | 1 + sound/soc/sh/rcar/ssi.c | 18 +++++++++++++++++- sound/soc/sh/rcar/ssiu.c | 9 +++++++++ 5 files changed, 54 insertions(+), 5 deletions(-) commit 42ab9a791bd1fb6ad5a47ad66727dcd66093b1ae Author: Kuninori Morimoto Date: Mon Nov 30 08:53:44 2015 +0000 ASoC: rsnd: dvc enables non-stereo sound Current DVC is assuming that the sound is always stereo. This patch makes it more flexible Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 6 +++++- sound/soc/sh/rcar/dvc.c | 14 ++++++++++++-- sound/soc/sh/rcar/gen.c | 6 ++++++ sound/soc/sh/rcar/rsnd.h | 9 ++++++++- 4 files changed, 31 insertions(+), 4 deletions(-) commit 8ec85e7f7e9a2f9c36a92596db53c30b1ca45f17 Author: Kuninori Morimoto Date: Mon Nov 30 08:53:27 2015 +0000 ASoC: rsnd: ssi enables non-stereo sound Current SSI is assuming that the sound is always stereo. But, SSI needs to calculate its frequency when master mode. Then This frequency depends on each SSI's slots, and TDM mode (= TDM Extend Mode, TDM split Mode, TDM Multichannel Mode). This patch enables to use non-stereo sound. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 29 +++++++++++++++++++++++++++++ sound/soc/sh/rcar/rsnd.h | 6 ++++++ sound/soc/sh/rcar/ssi.c | 5 +++-- 3 files changed, 38 insertions(+), 2 deletions(-) commit 08bada26fe8089f908484a3a4580f38e78502ac7 Author: Kuninori Morimoto Date: Mon Nov 30 08:53:04 2015 +0000 ASoC: rsnd: set SSIWSR setting on rsnd_ssi_config_init() It will have TDM settings on SSIWSR. Actually, we would like to set it on rsnd_ssi_config_init(), but we can't. Because SSI might be used as clock master (It doesn't need to call rsnd_ssi_config_init() when clock master mode). This patch adds new ssi->wsr and set it on rsnd_ssi_start(). Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/ssi.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 840ada3b04275d47a24f35a8c559bc584962f315 Author: Kuninori Morimoto Date: Mon Nov 30 08:52:38 2015 +0000 ASoC: rsnd: add rsnd_ssi_config_init() In order to enhance code readability, this patch adds rsnd_ssi_config_init() and moves SSICR register settings to it. This is prepare patch for TDM support Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/ssi.c | 98 ++++++++++++++++++++++++++----------------------- 1 file changed, 52 insertions(+), 46 deletions(-) commit f13edb8b281cf7fa762b14323238d6884df38792 Author: Kuninori Morimoto Date: Mon Nov 30 08:52:21 2015 +0000 ASoC: rsnd: dvc: add rsnd_dvc_halt() Based on datasheet process Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/dvc.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 95e6b0ddb002e0dc89fef99b31685197da2eca9e Author: Kuninori Morimoto Date: Mon Nov 30 08:51:52 2015 +0000 ASoC: rsnd: mix: add rsnd_mix_halt() Based on datasheet process Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/mix.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 475a361a6f2c7c690fd59a8f5224615e781cc3bd Author: Kuninori Morimoto Date: Mon Nov 30 08:51:35 2015 +0000 ASoC: rsnd: src: add rsnd_src_halt() Based on datasheet process Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/src.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 87a6c5a815f5da390ea74187344342df03205358 Author: Kuninori Morimoto Date: Mon Nov 30 08:51:15 2015 +0000 ASoC: rsnd: dvc: rename rsnd_dvc_soft_reset() to rsnd_dvc_activation() Based on datasheet naming Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/dvc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4fe32521d706e3541095ef173669e46666df2865 Author: Kuninori Morimoto Date: Mon Nov 30 08:50:51 2015 +0000 ASoC: rsnd: mix: rename rsnd_mix_soft_reset() to rsnd_mix_activation() Based on datasheet naming Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/mix.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 98efeeaeeb5f2a66603ba7c9cb9b4f7a02dd3c01 Author: Kuninori Morimoto Date: Mon Nov 30 08:50:32 2015 +0000 ASoC: rsnd: src: rename rsnd_src_soft_reset() to rsnd_src_activation() Based on datasheet naming Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/src.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bf4e8d7c371ae0d7acc1872a153c2f980f5523fe Author: Kuninori Morimoto Date: Mon Nov 30 08:50:08 2015 +0000 ASoC: rsnd: add missing SRC_O_BUSIF_MODE register SRC_BUSIF_MODE has both IN/OUT register. Current src driver sets IN register only. This patch sets missing OUT register. IN/OUT register are using default setting, so, there is no HW effect. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/gen.c | 4 +++- sound/soc/sh/rcar/rsnd.h | 3 ++- sound/soc/sh/rcar/src.c | 3 ++- 3 files changed, 7 insertions(+), 3 deletions(-) commit c45f7263a805e1c5d8579569884d32141330589f Author: Kuninori Morimoto Date: Mon Nov 30 08:49:33 2015 +0000 ASoC: rsnd: add missing ADINR::CHNUM on DVC/SRC/SSIU DVC/SRC/SSIU needs ADINR::CHNUM settings too. This patch adds these missing value. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/dvc.c | 6 +++++- sound/soc/sh/rcar/src.c | 3 ++- sound/soc/sh/rcar/ssiu.c | 3 ++- 3 files changed, 9 insertions(+), 3 deletions(-) commit 94458364304161551906d276f0164efd3dc30576 Author: Kuninori Morimoto Date: Mon Nov 30 08:49:15 2015 +0000 ASoC: rsnd: don't use normal *mod in adg.c adg.c is used from ssi/src/cmd. Thus don't use confusable *mod here. This patch rename it to ssi_mod/src_mod/cmd_mod Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/adg.c | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) commit 31a7448f4fa8a528040e3df593e9781f55218183 Author: Neil Armstrong Date: Mon Nov 2 12:14:14 2015 +0100 ARM: OMAP: dmtimer: Add clock source from DT Add a function which sets the timer source from the clocks binding on dm_timer_prepare call. In case the clocks property is not valid, it falls back to the set_source() with 32_KHZ clock as default. Suggested-by: Tony Lindgren Signed-off-by: Neil Armstrong Signed-off-by: Tony Lindgren arch/arm/plat-omap/dmtimer.c | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) commit cfa576db834cacc1bb01bc41b2f61a8b578e67c5 Author: Nicola Corna Date: Thu Oct 29 12:34:26 2015 +0100 i2c: add i2c_check_quirks helper function This patch adds a i2c_check_quirks helper function to check the quirk flags of an i2c adapter, in a similar way to i2c_check_functionality. Signed-off-by: Nicola Corna Signed-off-by: Wolfram Sang include/linux/i2c.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 4dbfb5f4401f845903679afbfeb4b97b47bb2331 Author: Nicola Corna Date: Thu Oct 29 12:34:25 2015 +0100 i2c: bcm2835: add I2C_AQ_NO_CLK_STRETCH As reported in the links given below. the BCM2835 has a hardware bug in its i2c module which prevents a correct clock stretching. This patch adds the I2C_AQ_NO_CLK_STRETCH quirk flag to i2c-bcm2835. Signed-off-by: Nicola Corna [wsa: put the links into the code as comments] Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-bcm2835.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit a94d306b71a5202cb928a7a1328dedab4fe0e968 Author: Nicola Corna Date: Thu Oct 29 12:34:24 2015 +0100 i2c: algo-bit: add I2C_AQ_NO_CLK_STRETCH Add I2C_AQ_NO_CLK_STRETCH to drivers/i2c/algos/i2c-algo-bit.c when getscl is not available. Signed-off-by: Nicola Corna Signed-off-by: Wolfram Sang drivers/i2c/algos/i2c-algo-bit.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 749de3dac5e4d65cbed3b58f89c56883e31d1a5a Author: Nicola Corna Date: Thu Oct 29 12:34:23 2015 +0100 i2c: add i2c quirk flag for unsupported clock stretching Add I2C_AQ_NO_CLK_STRETCH quirk flag, to be used when clock stretching is not supported. Signed-off-by: Nicola Corna Signed-off-by: Wolfram Sang include/linux/i2c.h | 2 ++ 1 file changed, 2 insertions(+) commit 77c680196791e7b13c90b4d475a3d6c96778755c Author: Lars-Peter Clausen Date: Mon Nov 16 14:42:05 2015 +0100 i2c: xiic: Replace spinlock with mutex All protected sections are only called from sleep-able context, so there is no need to use a spinlock. Signed-off-by: Lars-Peter Clausen Reviewed-by: Shubhrajyoti Datta Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-xiic.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit c4c696fa1b0623031544da8b10f9d4e1401a49db Author: LABBE Corentin Date: Tue Nov 24 08:43:27 2015 +0100 i2c: taos-evm: replace simple_strtoul by kstrtou8 The simple_strtoul function is marked as obsolete. This patch replace it by kstrtou8. Reviewed-by: Jean Delvare Tested-by: Jean Delvare Signed-off-by: LABBE Corentin Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-taos-evm.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit fa785f0a984d863a24d2f288b68757188a50261b Author: Andy Shevchenko Date: Thu Nov 26 20:22:50 2015 +0200 scsi_debug: check for bigger value first Even for signed types we have to check for bigger positive value first. Otherwise it will be never happened. Signed-off-by: Andy Shevchenko Acked-by: Douglas Gilbert Reviewed-by: Johannes Thumshirn Reviewed-by: Ewan Milne Signed-off-by: Martin K. Petersen drivers/scsi/scsi_debug.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit df10eadfce3510c2814e95d9f3d2d5d2c64eb26b Author: Andrew F. Davis Date: Fri Nov 13 10:47:27 2015 -0600 ARM: dts: am335x-boneblack: Use pinctrl constants and AM33XX_IOPAD macro Using constants for pinctrl allows better readability and removes redundancy with comments. AM33XX_IOPAD allows us to use part of the pinctrl physical address as in the TRM instead of an offset. Signed-off-by: Andrew F. Davis Reviewed-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-boneblack.dts | 44 +++++++++++++++++----------------- 1 file changed, 22 insertions(+), 22 deletions(-) commit 03c84de82e817122bf51f66a34d17f0dc1061f88 Author: Javier Martinez Canillas Date: Fri Nov 13 01:54:17 2015 -0300 ARM: dts: omap5-uevm.dts: Use OMAP5_IOPAD pinmux macro Use the pinmux IOPAD macros to define the register as an offset from the padconf physical address instead of the offset from padconf base. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap5-uevm.dts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 92245d420e76e332aa4eb37b022c367d57a93076 Author: Javier Martinez Canillas Date: Fri Nov 13 01:54:16 2015 -0300 ARM: dts: omap5-cm-t54: Use OMAP5_IOPAD pinmux macro Use the pinmux IOPAD macros to define the register as an offset from the padconf physical address instead of the offset from padconf base. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap5-cm-t54.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2fcf367a6c4abc2fe6f4f50b4ef81bd81fbd656f Author: Javier Martinez Canillas Date: Fri Nov 13 01:54:15 2015 -0300 ARM: dts: omap5-board-common: Use OMAP5_IOPAD pinmux macro Use the pinmux IOPAD macros to define the register as an offset from the padconf physical address instead of the offset from padconf base. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap5-board-common.dtsi | 94 +++++++++++++++---------------- 1 file changed, 47 insertions(+), 47 deletions(-) commit 56ed5665ebde995210d4a7f7a0ba7d1d67bc82f7 Author: Javier Martinez Canillas Date: Fri Nov 13 01:54:14 2015 -0300 ARM: dts: twl6030: Use OMAP4_IOPAD pinmux macro Use the pinmux IOPAD macros to define the register as an offset from the padconf physical address instead of the offset from padconf base. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/twl6030_omap4.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ed04b3747ceabdabf6f808e7a1f878d727ce6478 Author: Javier Martinez Canillas Date: Fri Nov 13 01:54:13 2015 -0300 ARM: dts: omap4-sdp-es23plus: Use OMAP4_IOPAD pinmux macro Use the pinmux IOPAD macros to define the register as an offset from the padconf physical address instead of the offset from padconf base. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap4-sdp-es23plus.dts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit b6bf441ea420135078c632d5d25275756eba66ca Author: Javier Martinez Canillas Date: Fri Nov 13 01:54:12 2015 -0300 ARM: dts: omap4-sdp: Use OMAP4_IOPAD pinmux macro Use the pinmux IOPAD macros to define the register as an offset from the padconf physical address instead of the offset from padconf base. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap4-sdp.dts | 110 ++++++++++++++++++++-------------------- 1 file changed, 55 insertions(+), 55 deletions(-) commit 67832f527790b9778f4765b23bb4768c5cf8d11c Author: Javier Martinez Canillas Date: Fri Nov 13 01:54:11 2015 -0300 ARM: dts: omap4-panda-es: Use OMAP4_IOPAD pinmux macro Use the pinmux IOPAD macros to define the register as an offset from the padconf physical address instead of the offset from padconf base. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap4-panda-es.dts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 0e3ae3281d82245e939d159948bc2ffa3d607991 Author: Javier Martinez Canillas Date: Fri Nov 13 01:54:10 2015 -0300 ARM: dts: omap4-panda-common: Use OMAP4_IOPAD pinmux macro Use the pinmux IOPAD macros to define the register as an offset from the padconf physical address instead of the offset from padconf base. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap4-panda-common.dtsi | 164 +++++++++++++++--------------- 1 file changed, 82 insertions(+), 82 deletions(-) commit 37990123cdba3e7d4db14ea96caef8e40b2e4354 Author: Javier Martinez Canillas Date: Fri Nov 13 01:54:09 2015 -0300 ARM: dts: omap4-panda-a4: Use OMAP4_IOPAD pinmux macro Use the pinmux IOPAD macros to define the register as an offset from the padconf physical address instead of the offset from padconf base. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap4-panda-a4.dts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit ececfa31e5e54f5bf9d4459bac0b6092ee244ece Author: Javier Martinez Canillas Date: Fri Nov 13 01:54:08 2015 -0300 ARM: dts: twl4030: Use OMAP3_CORE1_IOPAD pinmux macro Use the pinmux IOPAD macro to define the register absolute physical address instead of the offset from the padconf base address. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/twl4030_omap3.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ff523e3167662843019fe44293b68490fb8b99b5 Author: Javier Martinez Canillas Date: Fri Nov 13 01:54:07 2015 -0300 ARM: dts: omap3-zoom3: Use OMAP3_*_IOPAD pinmux macros Use the pinmux IOPAD macros to define the register absolute physical address instead of the offset from the padconf base address. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap3-zoom3.dts | 60 +++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 30 deletions(-) commit 53ccdd4b998df6125c83365d097eddeb3ad9da81 Author: Javier Martinez Canillas Date: Fri Nov 13 01:54:06 2015 -0300 ARM: dts: omap3-n9: Use OMAP3_CORE1_IOPAD pinmux macro Use the pinmux IOPAD macro to define the register absolute physical address instead of the offset from the padconf base address. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap3-n950-n9.dtsi | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 675e457c456d14178db951aa4f34f0ee7358394b Author: Javier Martinez Canillas Date: Fri Nov 13 01:54:05 2015 -0300 ARM: dts: omap3-n900: Use OMAP3_CORE1_IOPAD pinmux macro Use the pinmux IOPAD macro to define the register absolute physical address instead of the offset from the padconf base address. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap3-n900.dts | 106 +++++++++++++++++++-------------------- 1 file changed, 53 insertions(+), 53 deletions(-) commit 97f4817ccec6f3e336c953893baf7970b36ee9d1 Author: Javier Martinez Canillas Date: Fri Nov 13 01:54:04 2015 -0300 ARM: dts: omap3-ldp: Use OMAP3_CORE1_IOPAD pinmux macro Use the pinmux IOPAD macro to define the register absolute physical address instead of the offset from the padconf base address. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap3-ldp.dts | 42 ++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) commit 8acf1b30c8b5ee0893e11747da0cf26e8a3561c8 Author: Javier Martinez Canillas Date: Fri Nov 13 01:54:03 2015 -0300 ARM: dts: omap3-evm-37xx: Use OMAP3_*_IOPAD pinmux macros Use the pinmux IOPAD macros to define the register absolute physical address instead of the offset from the padconf base address. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap3-evm-37xx.dts | 54 ++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 27 deletions(-) commit 0ba47e43064cbde72ec4c7dd4af1dd73ce6727fb Author: Javier Martinez Canillas Date: Fri Nov 13 01:54:02 2015 -0300 ARM: dts: omap3-beagle-xm: Use OMAP3_*_IOPAD pinmux macros Use the pinmux IOPAD macros to define the register absolute physical address instead of the offset from the padconf base address. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap3-beagle-xm.dts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 161312d6e2fa4627e4b3af0a535db3b9af1654e3 Author: Javier Martinez Canillas Date: Fri Nov 13 01:54:01 2015 -0300 ARM: dts: omap3-beagle: Use OMAP3_*_IOPAD pinmux macros Use the pinmux IOPAD macros to define the register absolute physical address instead of the offset from the padconf base address. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap3-beagle.dts | 64 +++++++++++++++++++------------------- 1 file changed, 32 insertions(+), 32 deletions(-) commit 9255ea8472d28fa61fa5fdf686fad76d399d095c Author: Javier Martinez Canillas Date: Fri Nov 13 01:54:00 2015 -0300 ARM: dts: dra72-evm: Use DRA7XX_CORE_IOPAD pinmux macro Use the pinmux IOPAD macro to define the register absolute physical address instead of the offset from the padconf base address. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/dra72-evm.dts | 200 ++++++++++++++++++++-------------------- 1 file changed, 100 insertions(+), 100 deletions(-) commit c78be3d82e0f1590be75e6900e8194066ae78638 Author: Javier Martinez Canillas Date: Fri Nov 13 01:53:59 2015 -0300 ARM: dts: dra7-evm: Use DRA7XX_CORE_IOPAD pinmux macro Use the pinmux IOPAD macro to define the register absolute physical address instead of the offset from the padconf base address. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/dra7-evm.dts | 254 ++++++++++++++++++++--------------------- 1 file changed, 127 insertions(+), 127 deletions(-) commit f70dfa6648f138ee58d176003057b83b153c406d Author: Javier Martinez Canillas Date: Fri Nov 13 01:53:58 2015 -0300 ARM: dts: am57xx-beagle-x15: Use DRA7XX_CORE_IOPAD pinmux macro Use the pinmux IOPAD macro to define the register absolute physical address instead of the offset from the padconf base address. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/am57xx-beagle-x15.dts | 198 ++++++++++++++++---------------- 1 file changed, 99 insertions(+), 99 deletions(-) commit 43ade6a33cbc3731e4ae11821ff8180e3b4753d5 Author: Javier Martinez Canillas Date: Fri Nov 13 01:53:57 2015 -0300 ARM: dts: am43x-epos-evm: Use AM4372_IOPAD pinmux macro Use the pinmux IOPAD macro to define the register absolute physical address instead of the offset from the padconf base address. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/am43x-epos-evm.dts | 246 +++++++++++++++++------------------ 1 file changed, 123 insertions(+), 123 deletions(-) commit e98ceb23e4d0513330f97b808d4655e599113807 Author: Javier Martinez Canillas Date: Fri Nov 13 01:53:56 2015 -0300 ARM: dts: am437x-sk-evm: Use AM4372_IOPAD pinmux macro Use the pinmux IOPAD macro to define the register absolute physical address instead of the offset from the padconf base address. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/am437x-sk-evm.dts | 298 ++++++++++++++++++------------------ 1 file changed, 149 insertions(+), 149 deletions(-) commit 8e7d3dd9241e10bbff3fbf46c116b3bcdf09da5f Author: Javier Martinez Canillas Date: Fri Nov 13 01:53:55 2015 -0300 ARM: dts: am437x-idk-evm: Use AM4372_IOPAD pinmux macro Use the pinmux IOPAD macro to define the register absolute physical address instead of the offset from the padconf base address. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/am437x-idk-evm.dts | 128 +++++++++++++++++------------------ 1 file changed, 64 insertions(+), 64 deletions(-) commit 596bad7dc46c3e2628c724447f73f71a0b76ee25 Author: Javier Martinez Canillas Date: Fri Nov 13 01:53:54 2015 -0300 ARM: dts: am437x-gp-evm: Use AM4372_IOPAD pinmux macro Use the pinmux IOPAD macro to define the register absolute physical address instead of the offset from the padconf base address. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/am437x-gp-evm.dts | 380 ++++++++++++++++++------------------ 1 file changed, 190 insertions(+), 190 deletions(-) commit a7efe6ba0c5ae1f3750367f6d6756510afee8c16 Author: Javier Martinez Canillas Date: Fri Nov 13 01:53:53 2015 -0300 ARM: dts: am3517-craneboard: Use OMAP3_CORE1_IOPAD pinmux macro Use the pinmux IOPAD macro to define the register absolute physical address instead of the offset from the padconf base address. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/am3517-craneboard.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bb2fe50e02e5c0daab7695cee8feb9020d8feeae Author: Javier Martinez Canillas Date: Fri Nov 13 01:53:52 2015 -0300 ARM: dts: am335x-wega: Use AM33XX_IOPAD pinmux macro Use the pinmux IOPAD macro to define the register absolute physical address instead of the offset from the padconf base address. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-wega.dtsi | 58 +++++++++++++++++++------------------- 1 file changed, 29 insertions(+), 29 deletions(-) commit 9baa78d64452d63f638ee84aa220d99e4954a1d7 Author: Javier Martinez Canillas Date: Fri Nov 13 01:53:51 2015 -0300 ARM: dts: am335x-phycore-som: Use AM33XX_IOPAD pinmux macro Use the pinmux IOPAD macro to define the register absolute physical address instead of the offset from the padconf base address. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-phycore-som.dtsi | 60 +++++++++++++++---------------- 1 file changed, 30 insertions(+), 30 deletions(-) commit 3eb9d92cd3e96f8a5a6f3eee90874ac5369f045d Author: Javier Martinez Canillas Date: Fri Nov 13 01:53:50 2015 -0300 ARM: dts: am335x-pepper: Use AM33XX_IOPAD pinmux macro Use the pinmux IOPAD macro to define the register absolute physical address instead of the offset from the padconf base address. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-pepper.dts | 200 ++++++++++++++++++------------------ 1 file changed, 100 insertions(+), 100 deletions(-) commit 4c12b9e1e513bc19ea9d7b011265c0f20dc57e22 Author: Javier Martinez Canillas Date: Fri Nov 13 01:53:49 2015 -0300 ARM: dts: am335x-nano: Use AM33XX_IOPAD pinmux macro Use the pinmux IOPAD macro to define the register absolute physical address instead of the offset from the padconf base address. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-nano.dts | 140 +++++++++++++++++++------------------- 1 file changed, 70 insertions(+), 70 deletions(-) commit 9b0aebddd0ad585e4f6f3a2b021293cfcada8e84 Author: Javier Martinez Canillas Date: Fri Nov 13 01:53:48 2015 -0300 ARM: dts: am335x-lxm: Use AM33XX_IOPAD pinmux macro Use the pinmux IOPAD macro to define the register absolute physical address instead of the offset from the padconf base address. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-lxm.dts | 120 +++++++++++++++++++-------------------- 1 file changed, 60 insertions(+), 60 deletions(-) commit 06e08fda184de0a57ffded98424d60eb7316b446 Author: Javier Martinez Canillas Date: Fri Nov 13 01:53:47 2015 -0300 ARM: dts: am335x-evmsk: Use AM33XX_IOPAD pinmux macro Use the pinmux IOPAD macro to define the register absolute physical address instead of the offset from the padconf base address. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Also, use the mux defines instead of magic numbers for the padconf values when defining the pinctrl lines to make it more readable. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-evmsk.dts | 278 ++++++++++++++++++------------------- 1 file changed, 139 insertions(+), 139 deletions(-) commit 46bd10c828fe03e45c1167de6be4ab7c5a479aa9 Author: Javier Martinez Canillas Date: Fri Nov 13 01:53:46 2015 -0300 ARM: dts: am335x-evm: Use AM33XX_IOPAD pinmux macro Use the pinmux IOPAD macro to define the register absolute physical address instead of the offset from the padconf base address. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Also, use the mux defines instead of magic numbers for the padconf values when defining the pinctrl lines to make it more readable. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-evm.dts | 220 +++++++++++++++++++-------------------- 1 file changed, 110 insertions(+), 110 deletions(-) commit 9d945f89beb1322b6a1583abe2b840627aa2e611 Author: Javier Martinez Canillas Date: Fri Nov 13 01:53:45 2015 -0300 ARM: dts: am335x-chilisom: Use AM33XX_IOPAD pinmux macro Use the pinmux IOPAD macro to define the register absolute physical address instead of the offset from the padconf base address. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-chilisom.dtsi | 80 +++++++++++++++++----------------- 1 file changed, 40 insertions(+), 40 deletions(-) commit d5d4dc17309af16faa556e44f94714a66fc4f913 Author: Javier Martinez Canillas Date: Fri Nov 13 01:53:44 2015 -0300 ARM: dts: am335x-chiliboard: Use AM33XX_IOPAD pinmux macro Use the pinmux IOPAD macro to define the register absolute physical address instead of the offset from the padconf base address. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-chiliboard.dts | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit f5ea9398f23207645d7e821ad62b29c6701837c8 Author: Javier Martinez Canillas Date: Fri Nov 13 01:53:43 2015 -0300 ARM: dts: am335x-bonegreen: Use AM33XX_IOPAD pinmux macro Use the pinmux IOPAD macro to define the register absolute physical address instead of the offset from the padconf base address. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-bonegreen.dts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e03b2a26d6bf93d1631aa36985892877986ee7b9 Author: Javier Martinez Canillas Date: Fri Nov 13 01:53:42 2015 -0300 ARM: dts: am335x-bone-common: Use AM33XX_IOPAD pinmux macro Use the pinmux IOPAD macro to define the register absolute physical address instead of the offset from the padconf base address. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-bone-common.dtsi | 104 +++++++++++++++--------------- 1 file changed, 52 insertions(+), 52 deletions(-) commit a0f6ada23f2bd40bd37ddda78a23effd9f3db0d9 Author: Javier Martinez Canillas Date: Fri Nov 13 01:53:41 2015 -0300 ARM: dts: am335x-baltos-ir5221: Use AM33XX_IOPAD pinmux macro Use the pinmux IOPAD macro to define the register absolute physical address instead of the offset from the padconf base address. This makes the DTS easier to read since matches the addresses listed in the Technical Reference Manual. Also, use the mux defines instead of magic numbers for the padconf values when defining the pinctrl lines to make it more readable. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-baltos-ir5221.dts | 182 ++++++++++++++--------------- 1 file changed, 91 insertions(+), 91 deletions(-) commit 22a1cd8a788f78375c1fe42418a31ee732de171a Author: Javier Martinez Canillas Date: Fri Nov 13 01:53:40 2015 -0300 ARM: dts: am335x-baltos-ir5221: Remove leftover pinctrl lines When the Device Tree source file got merged, some commented pinctrl lines were left in the file. These are already defined so seems to be a cleanup that was missed. Delete the unneeded lines from the file. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-baltos-ir5221.dts | 4 ---- 1 file changed, 4 deletions(-) commit fc63efdf4bbcc23968bc71cfbc7dedf56c5ff01e Author: Javier Martinez Canillas Date: Fri Nov 13 01:53:39 2015 -0300 pinctrl: Move am4372 and dra7 macros to the the SoC header files The header file defines a set of macros for different SoCs families that falls under the OMAP sub-arch, that allow to define the padconf register physical address instead of the register offset from the padconf base. But the am43xx and dra7xx SoCs families have their own pinctrl header file so the DTS using these SoCs aren't able to use the AM4372_IOPAD() and DRA7XX_CORE_IOPAD() macros since is not included. Move the macros to the correct header files so can be used by the DTS. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tony Lindgren include/dt-bindings/pinctrl/am43xx.h | 6 ++++++ include/dt-bindings/pinctrl/dra.h | 6 ++++++ include/dt-bindings/pinctrl/omap.h | 2 -- 3 files changed, 12 insertions(+), 2 deletions(-) commit f05ca854b3df79bf6596de5102eb99ca10d6089f Author: Paul Burton Date: Mon Nov 30 16:21:42 2015 +0000 spi: topcliff-pch: allow build for MIPS platforms Allow the topcliff-pch driver to be built for MIPS platforms, in preparation for use on the MIPS Boston board. Signed-off-by: Paul Burton Signed-off-by: Mark Brown drivers/spi/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 09e2b0b14690fb13ccfc04af49f156df3e25b152 Author: Hannes Reinecke Date: Mon Nov 9 13:24:28 2015 +0100 scsi: rescan VPD attributes The VPD page information might change, so we need to be able to update it. This patch implements a VPD page rescan whenever the 'rescan' sysfs attribute is triggered. Signed-off-by: Hannes Reinecke Reviewed-by: Johannes Thumshirn Reviewed-by: Shane Seymour Signed-off-by: Martin K. Petersen drivers/scsi/scsi.c | 20 +++++++++++++++++--- drivers/scsi/scsi_scan.c | 4 ++++ drivers/scsi/scsi_sysfs.c | 8 ++++++-- drivers/scsi/ses.c | 12 +++++++++--- include/scsi/scsi_device.h | 5 +++-- 5 files changed, 39 insertions(+), 10 deletions(-) commit 1fb34b48361eac63850513a045ed2eb9a7fd6168 Author: Maxime Ripard Date: Mon Nov 30 16:37:47 2015 +0100 ASoC: sun4i: Implement MIC1 capture One of the input path used in the Allwinner codec is the MIC1. Add support for it. Signed-off-by: Maxime Ripard Signed-off-by: Mark Brown sound/soc/sunxi/sun4i-codec.c | 228 ++++++++++++++++++++++++++++++++++++------ 1 file changed, 197 insertions(+), 31 deletions(-) commit bfbcfa770b1c316396162f9354872dc00cd572fe Author: Julia Lawall Date: Sun Nov 29 13:50:02 2015 +0100 mailbox: constify mbox_chan_ops structure This mbox_chan_ops structure is never modified, so declare it as const, like all the other mbox_chan_ops structures. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Jassi Brar drivers/mailbox/mailbox-sti.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ab128afce4ea8a496fc42553215f6635a14f05c3 Author: Nizam Haider Date: Mon Nov 23 20:53:18 2015 +0530 gpio: use dev_get_platdata() Use the wrapper function for retrieving the platform data instead of accessing dev->platform_data directly. Signed-off-by: Nizam Haider Signed-off-by: Linus Walleij drivers/gpio/gpio-ath79.c | 2 +- drivers/gpio/gpio-davinci.c | 2 +- drivers/gpio/gpio-f7188x.c | 2 +- drivers/gpio/gpio-octeon.c | 2 +- drivers/gpio/gpio-sch311x.c | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) commit 2ef42f4a7ea3f44606ae8ef444f98a6720e82f7d Author: Jaedon Shin Date: Thu Nov 26 11:56:32 2015 +0900 ata: ahci_brcmstb: remove unused definitions Remove unused definitions, and this is to avoid confusion with MIPS-based platforms. Signed-off-by: Jaedon Shin Tested-by: Florian Fainelli Acked-by: Brian Norris drivers/ata/ahci_brcmstb.c | 2 -- 1 file changed, 2 deletions(-) commit b46f79bc78e00c392c5cb3eb56c5ee94e4142bcf Author: Jaedon Shin Date: Thu Nov 26 11:56:31 2015 +0900 ata: ahci_brcmstb: add a quirk for MIPS-based platforms Whereas ARM-based platforms have four phy interface registers and information, the MIPS-based platforms have only three registers, and there are no information and documentation. In the original BSP, It using "strict-ahci" did not control these registers. Signed-off-by: Jaedon Shin Tested-by: Florian Fainelli Acked-by: Brian Norris drivers/ata/ahci_brcmstb.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 7de3244530bf418cefdb64b635ee2d64ef63e3c9 Author: Jaedon Shin Date: Thu Nov 26 11:56:30 2015 +0900 ata: ahci_brcmstb: disable NCQ for MIPS-based platforms The most MIPS-based platforms need to disable NCQ while have the NCQ capability in HOST_CAP, and several ARM-based platforms (eg. BCM7349A0, BCM7445A0, BCM7445B0) need to disable too. Signed-off-by: Jaedon Shin Tested-by: Florian Fainelli Acked-by: Brian Norris drivers/ata/ahci_brcmstb.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 9e100c4d013e6e27ea3318e53d200a912080387f Author: Kalle Valo Date: Wed Nov 25 15:38:41 2015 +0200 ath10k: implement fw_checksums debugfs file When debugging firmware problems it's useful to check checksums of each component. Add a debugfs interface to retrieve crc32 checksums: # cat /sys/kernel/debug/ieee80211/phy0/ath10k/fw_checksums firmware-N.bin cc3fb466 athwlan c0089f21 otp f3efeb4f codeswap 00000000 board-N.bin bebc7c08 board bebc7c08 Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/debug.c | 56 +++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) commit 3e58044b61a92ad63e52b347782248659b6b6f12 Author: Kalle Valo Date: Wed Nov 25 15:38:34 2015 +0200 ath10k: print crc32 checksums for firmware and board files To detect cases if the firmare or board file is corrupted or otherwise modified print crc32 value of both. Now the output looks like: ath10k_pci 0000:02:00.0: pci irq msi interrupts 1 irq_mode 0 reset_mode 0 ath10k_pci 0000:02:00.0: qca99x0 hw2.0 target 0x01000000 chip_id 0x003801ff sub 168c:0002 ath10k_pci 0000:02:00.0: kconfig debug 1 debugfs 1 tracing 1 dfs 1 testmode 1 ath10k_pci 0000:02:00.0: firmware ver 10.4.1.00030-1 api 5 features no-p2p crc32 d2901e01 ath10k_pci 0000:02:00.0: board_file api 1 bmi_id 1:1 crc32 7e56fd07 ath10k_pci 0000:02:00.0: htt-ver 2.2 wmi-op 6 htt-op 4 cal otp max-sta 512 raw 0 hwcrypto 1 Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/Kconfig | 1 + drivers/net/wireless/ath/ath10k/debug.c | 12 ++++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) commit 23f591ea9b1c8ce7ddfbf14ffd972c8f33677b2d Author: Kalle Valo Date: Wed Nov 25 15:38:27 2015 +0200 ath10k: split driver info messages during device initialisation Earlier we printed all the info messages after a successful device initialisation and firmware boot, but that's problematic if something goes wrong and there's no easy way to know what firmware version was used and so on. Split the info messages into smaller pieces and print them as soon as we have the info available. Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.c | 6 ++++- drivers/net/wireless/ath/ath10k/debug.c | 44 ++++++++++++++++++++++----------- drivers/net/wireless/ath/ath10k/debug.h | 4 +++ 3 files changed, 38 insertions(+), 16 deletions(-) commit 8605c02205bfcaaf7dcc59c5f9bd3f6acd63e086 Author: Kalle Valo Date: Wed Nov 25 15:38:19 2015 +0200 ath10k: always show bmi chip ids and subdevice ids That way we can split the messages to be printed in different stages of device initialisation. Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/debug.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit f0de90bc1047affe4bb83a5724c612c6cce0e672 Author: Kalle Valo Date: Wed Nov 25 15:38:12 2015 +0200 ath10k: reorganise hardware and firmware info messages This is to make it easier to split them later and also make room for crc32 checksums. Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/debug.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) commit b091f36990ef85fa9959307f535a6b8431c2799f Author: Kalle Valo Date: Wed Nov 25 15:38:05 2015 +0200 ath10k: fix otp board id error message We check board id from all board types, not just qca99x0, so the error message was misleading. Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bb58b89c5ea1006c93270fd2e667ab72312bf7ab Author: Peter Oh Date: Tue Nov 24 09:37:35 2015 -0800 ath10k: apply Mesh subtype when Mesh interface created. QCA988X firmware starting from 10.2.4.70.12-2 has capability to support Mesh Control Field Present bit in QoS field in native Wi-Fi mode. Hence apply Mesh subtype according to the WMI service map. Firmware will allows unicast, broadcast, multicast, and WDS frame (FromDS = 1 and ToDS = 1) to be received via the interface, once Mesh subtype is used. The firmware and this patch together make native Wi-Fi mode comply to IEEE802.11s Mesh frame in open mode, but the firmware doesn't yet support secured Mesh mode. Signed-off-by: Peter Oh Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 42e08fea970576f4c0c6524fff150736801d8f2e Author: Peter Oh Date: Tue Nov 24 09:37:34 2015 -0800 ath10k: introduce new subtypes for proxy STA and Mesh QCA988X firmware starting from 10.2.4.70.12-2 supports new vdev subtypes for proxy STA and Mesh, hence add them to be used as needed. Signed-off-by: Peter Oh Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi.h | 2 ++ 1 file changed, 2 insertions(+) commit 20fa2f7f5f2263d6f76e1c1ce35693ca81d828ff Author: Peter Oh Date: Tue Nov 24 09:37:33 2015 -0800 ath10k: update WMI 10.x service map Update WMI 10.x service map to sync with firmware 10.2.4.70.12-2 released on 11/11/2015 which is the latest QCA988X firmware as of 11/18/2015. Signed-off-by: Peter Oh Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 8bf1ba1cd789381315579b4f570e37b6ff26ceaf Author: Mohammed Shafi Shajakhan Date: Tue Nov 24 22:26:37 2015 +0530 ath10k: Fix write permission on few debugfs files Fix write permission for few of the debugfs entries which support write file operations as well. Signed-off-by: Mohammed Shafi Shajakhan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/debug.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit d6cb23b5147d2efb79a7d99ff019dfa6b4f8ed22 Author: Felix Fietkau Date: Tue Nov 24 11:36:52 2015 +0100 ath10k: stop abusing GFP_DMA Allocations from the DMA zone were originally added for legacy ISA stuff, or PCI devices that have specific limitations in their DMA addressing capabilities. It has no place in ath10k, which can do full 32-bit DMA. Fixes memory allocation errors on some platforms. Signed-off-by: Felix Fietkau Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/htt_rx.c | 4 ++-- drivers/net/wireless/ath/ath10k/htt_tx.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit 78f7aeb08f8f4be3868f4530552f56880fd08b8f Author: Mohammed Shafi Shajakhan Date: Sat Nov 21 15:24:41 2015 +0530 ath10k: Enable AP + STA interface combination support for 10.x Enable AP + STA interface combination support for 10.x and this enables Repeater mode testing (with WDS Repeater combinations as well). Fix indentation as well. Based on the suggestions from Michal and Yanbo Li, thanks to them Signed-off-by: Mohammed Shafi Shajakhan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) commit bd5632b0989b180db1199f7fc6969dd4ca45643d Author: Peter Oh Date: Fri Nov 20 09:33:14 2015 -0800 ath10k: fix board data fetch error message The error message order of board data fetch is board info, directory, and then file name, hence place print arguments in the order. Fixes: 0a51b343abfe ("ath10k: add board 2 API support") Signed-off-by: Peter Oh Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a0638365f6850855728a5ef5caf2aeab82a58035 Author: Linus Walleij Date: Wed Nov 25 15:17:25 2015 +0100 ARM: mvebu: add Kirkwood cpuidle to defconfig The Kirkwood v5 platforms need their CPUIDLE driver, so put it into the defconfig. Signed-off-by: Linus Walleij Signed-off-by: Gregory CLEMENT arch/arm/configs/mvebu_v5_defconfig | 1 + 1 file changed, 1 insertion(+) commit 8c95b85c0ba2beea25ea2918c842e5e0d8b0cf27 Author: Linus Walleij Date: Wed Nov 25 15:17:16 2015 +0100 ARM: mvebu: update v5 defconfig This just regenerates the v5 mvebu defconfig with the latest defaults so as to avoid too much fuzz when applying patches to it. Signed-off-by: Linus Walleij Acked-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/configs/mvebu_v5_defconfig | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) commit f15c58410ad90bd1208305771689877ffffe3a88 Author: Geert Uytterhoeven Date: Mon Nov 30 15:19:06 2015 +0100 spi: spidev: Use "%u" to format __u32 On 64-bit with CONFIG_SPI_DEBUG=y and #define VERBOSE: drivers/spi/spidev.c:287:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 4 has type '__u32' [-Wformat=] Signed-off-by: Geert Uytterhoeven Signed-off-by: Mark Brown drivers/spi/spidev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ec7f9eb4bea26b627cb5f15ebbfb5b06f969511d Author: Geert Uytterhoeven Date: Mon Nov 30 15:14:00 2015 +0100 spi: sh-msiof: Add support for SH-Mobile AG5 MSIOF in SH-Mobile AG5 (sh73a0) is handled fine by the existing driver. Signed-off-by: Geert Uytterhoeven Signed-off-by: Mark Brown Documentation/devicetree/bindings/spi/sh-msiof.txt | 1 + 1 file changed, 1 insertion(+) commit 4627629bbb675665e902ad76ab96ac1ee5d17fd8 Author: Sebastian Hesselbarth Date: Sat Nov 28 12:14:07 2015 +0100 ARM: dt: mvebu: ix4-300d: Cleanup NAND partition ranges Prefix all partition reg properties to 32-bit to ease readability. While at it, also remove a stale x in front of boot partition offset and make some upper-case hex numbers lower-case. Signed-off-by: Sebastian Hesselbarth Acked-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit efc1aaa53e6a9ac26865c02e05fe1e9b2ed24715 Author: Sebastian Hesselbarth Date: Sat Nov 28 12:14:06 2015 +0100 ARM: dt: mvebu: ix4-300d: move partitions to partition sub-node NAND flash partitions should be part of a partitions sub-node not the flash node itself. Move the partitions which will also allow different bootloaders get rid of the stock partitions easily by removing the partitions node. Signed-off-by: Sebastian Hesselbarth Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts | 67 +++++++++++++------------ 1 file changed, 36 insertions(+), 31 deletions(-) commit 0cea5f714c7764ca254b0528d0fc3d97023cfafd Author: Sebastian Hesselbarth Date: Sat Nov 28 12:14:05 2015 +0100 ARM: dt: mvebu: ix4-300d: remove whole flash partition Current NAND node has an additional flash partition for the whole flash overlapping with real partitions. Remove this partition as the whole flash is already represented by the NAND device itself. Signed-off-by: Sebastian Hesselbarth Acked-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts | 5 ----- 1 file changed, 5 deletions(-) commit e399037e06beec6d190a302ff5e4fee4aae77c50 Author: Aaron Lu Date: Thu Nov 19 11:05:25 2015 +0800 ACPI / scan: set status to 0 if _STA failed Some ACPI node's _STA will touch operation region field, since the evaluation of _STA in acpi_bus_type_and_status is very early, the operation region handler is not ready yet. Instead of fail that function and not creating the acpi_device node consequently, set status to 0 so that later when the driver for that device is probing, it can find the acpi_device node and proceed normally. And at that time, the handler for the operation region is ready and its _STA evaluation will succeed, its present status can be checked there. Even there will be no driver using this node later, it doesn't seem hurt to have one more acpi_device node created with status set to 0. This happens on Microsoft Surface 3, where the SPI device node NTRG's _STA touches GPIO fields and the SPI core driver will only enumerate SPI devices from ACPI if the acpi_device node is 1: created; 2: _STA indicates it's present. Note that due to another problem in SPI driver, for NTRG to be actually enumerated, some changes have to be made in the SPI layer, which is addressed by Mika(not send out yet): https://bugzilla.kernel.org/show_bug.cgi?id=104291#c23 Link: https://bugzilla.kernel.org/show_bug.cgi?id=104291 Reported-by: Bastien Nocera Signed-off-by: Aaron Lu Reviewed-by: Mika Westerberg Signed-off-by: Rafael J. Wysocki drivers/acpi/scan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5de85b9d57aba3ed2e04759e6db3b9e826dd0b06 Author: Ulf Hansson Date: Wed Nov 18 11:48:39 2015 +0100 PM / runtime: Re-init runtime PM states at probe error and driver unbind There are two common expectations among several subsystems/drivers that deploys runtime PM support, but which isn't met by the driver core. Expectation 1) At ->probe() the subsystem/driver expects the runtime PM status of the device to be RPM_SUSPENDED, which is the initial status being assigned at device registration. This expectation is especially common among some of those subsystems/ drivers that manages devices with an attached PM domain, as those requires the ->runtime_resume() callback at the PM domain level to be invoked during ->probe(). Moreover these subsystems/drivers entirely relies on runtime PM resources being managed at the PM domain level, thus don't implement their own set of runtime PM callbacks. These are two scenarios that suffers from this unmet expectation. i) A failed ->probe() sequence requests probe deferral: ->probe() ... pm_runtime_enable() pm_runtime_get_sync() ... err: pm_runtime_put() pm_runtime_disable() ... As there are no guarantees that such sequence turns the runtime PM status of the device into RPM_SUSPENDED, the re-trying ->probe() may start with the status in RPM_ACTIVE. In such case the runtime PM core won't invoke the ->runtime_resume() callback because of a pm_runtime_get_sync(), as it considers the device to be already runtime resumed. ii) A driver re-bind sequence: At driver unbind, the subsystem/driver's >remove() callback invokes a sequence of runtime PM APIs, to undo actions during ->probe() and to put the device into low power state. ->remove() ... pm_runtime_put() pm_runtime_disable() ... Similar as in the failing ->probe() case, this sequence don't guarantee the runtime PM status of the device to turn into RPM_SUSPENDED. Trying to re-bind the driver thus causes the same issue as when re-trying ->probe(), in the probe deferral scenario. Expectation 2) Drivers that invokes the pm_runtime_irq_safe() API during ->probe(), triggers the runtime PM core to increase the usage count for the device's parent and permanently make it runtime resumed. The usage count is only dropped at device removal, which also allows it to be runtime suspended again. A re-trying ->probe() repeats the call to pm_runtime_irq_safe() and thus once more triggers the usage count of the device's parent to be increased. This leads to not only an imbalance issue of the usage count of the device's parent, but also to keep it runtime resumed permanently even if ->probe() fails. To address these issues, let's change the policy of the driver core to meet these expectations. More precisely, at ->probe() failures and driver unbind, restore the initial states of runtime PM. Although to still allow subsystem's to control PM for devices that doesn't ->probe() successfully, don't restore the initial states unless runtime PM is disabled. Signed-off-by: Ulf Hansson Reviewed-by: Kevin Hilman Signed-off-by: Rafael J. Wysocki drivers/base/dd.c | 2 ++ drivers/base/power/power.h | 2 ++ drivers/base/power/runtime.c | 26 ++++++++++++++++++++------ 3 files changed, 24 insertions(+), 6 deletions(-) commit 013c074f8642d8e815ad670601f8e27155a74b57 Author: Strashko, Grygorii Date: Tue Nov 10 11:42:34 2015 +0200 PM / sleep: prohibit devices probing during suspend/hibernation It is unsafe [1] if probing of devices will happen during suspend or hibernation and system behavior will be unpredictable in this case. So, let's prohibit device's probing in dpm_prepare() and defer their probing instead. The normal behavior will be restored in dpm_complete(). This patch introduces new DD core APIs: device_block_probing() It will disable probing of devices and defer their probes instead. device_unblock_probing() It will restore normal behavior and trigger re-probing of deferred devices. [1] https://lkml.org/lkml/2015/9/11/554 Signed-off-by: Grygorii Strashko Acked-by: Pavel Machek Signed-off-by: Rafael J. Wysocki drivers/base/base.h | 2 ++ drivers/base/dd.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++- drivers/base/power/main.c | 17 +++++++++++++++++ 3 files changed, 66 insertions(+), 1 deletion(-) commit fb50cdfeeda868ae2bfe7ec2e0afebff53eca2d5 Author: William Breathitt Gray Date: Sun Nov 22 11:38:55 2015 -0500 gpio: 104-idio-16: Disable IRQ on device probe IRQ should be disabled on device probe so that the device IRQ is in a known starting state. If IRQ is not disabled, interrupts may be reported as handled by the IRQ handler, despite no irq_unmask calls made by the user. Signed-off-by: William Breathitt Gray Signed-off-by: Linus Walleij drivers/gpio/gpio-104-idio-16.c | 3 +++ 1 file changed, 3 insertions(+) commit 725d2e3facfb51f8925da3cadce5380b5ea85d09 Author: Christian Fetzer Date: Thu Nov 19 20:13:49 2015 +0100 i2c: piix4: Add adapter port name support for SB800 chipset This patch adds support for port names for the SB800 chipset. Since the chipset supports a multiplexed main SMBus controller, adding the channel name to the adapter name is necessary to differentiate the ports better (for example in sensors output). Signed-off-by: Christian Fetzer Reviewed-by: Mika Westerberg Reviewed-by: Andy Shevchenko Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-piix4.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit 2fee61d22e606fc99ade9079fda15fdee83ec33e Author: Christian Fetzer Date: Thu Nov 19 20:13:48 2015 +0100 i2c: piix4: Add support for multiplexed main adapter in SB800 The SB800 chipset supports a multiplexed main SMBus controller with four ports. The multiplexed ports share the same SMBus address and register set. The port is selected by bits 2:1 of the smb_en register (0x2C). Only one port can be active at any point in time therefore a mutex is needed in order to synchronize access. Additionally, the commit avoids requesting and releasing the SMBus base address index region on every multiplexed transfer by moving the request_region call into piix4_probe. Tested on HP ProLiant MicroServer G7 N54L (where this patch adds support to access sensor data from the w83795adg). Cc: Thomas Brandon Cc: Eddi De Pieri Signed-off-by: Christian Fetzer Reviewed-by: Mika Westerberg Reviewed-by: Andy Shevchenko Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-piix4.c | 169 +++++++++++++++++++++++++++++++++++------ 1 file changed, 147 insertions(+), 22 deletions(-) commit ca2061e1283b787b49e3f6817645b9f0a2151671 Author: Christian Fetzer Date: Thu Nov 19 20:13:47 2015 +0100 i2c: piix4: Convert piix4_main_adapter to array The SB800 chipset supports a multiplexed main SMBus controller with four ports. Therefore the static variable piix4_main_adapter is converted into a piix4_main_adapters array that can hold one i2c_adapter for each multiplexed port. The auxiliary adapter remains unchanged since it represents the second (not multiplexed) SMBus controller on the SB800 chipset. Signed-off-by: Christian Fetzer Reviewed-by: Mika Westerberg Reviewed-by: Andy Shevchenko Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-piix4.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) commit e49865d10ad563fda56bfe3c385948f88b41b1af Author: Wolfram Sang Date: Thu Nov 19 16:56:51 2015 +0100 i2c: rcar: handle difference in setting up non-first message Signed-off-by: Ryo Kataoka Signed-off-by: Hiromitsu Yamasaki Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-rcar.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) commit 3c2b1ff3e5b37a710f7766f8dce6d9f732e3f902 Author: Wolfram Sang Date: Thu Nov 19 16:56:50 2015 +0100 i2c: rcar: clean up after refactoring Update the comments to match current behaviour. Shorten some comments. Update copyrights. Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-rcar.c | 32 +++++++++----------------------- 1 file changed, 9 insertions(+), 23 deletions(-) commit 52df445f29b79006d8b2dcd129152987c0d3bd64 Author: Wolfram Sang Date: Thu Nov 19 16:56:49 2015 +0100 i2c: rcar: revoke START request early If we don't clear START generation as soon as possible, it may cause another message to be generated, e.g. when receiving NACK in address phase. To keep the race window as small as possible, we clear it right at the beginning of the interrupt. We don't need any checks since we always want to stop START and STOP generation on the next occasion after we started it. This patch improves the situation but sadly does not completely fix it. It is still to be researched if we can do better given this HW design. Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-rcar.c | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) commit c3be0af15959e11fa535d5332ab3d7cf34abd09b Author: Wolfram Sang Date: Thu Nov 19 16:56:48 2015 +0100 i2c: rcar: check master irqs before slave irqs Due to the HW design, master IRQs are timing critical, so give them precedence over slave IRQ. Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-rcar.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit d89667b14f9d13b684287f6189ca209af5feee43 Author: Wolfram Sang Date: Thu Nov 19 16:56:47 2015 +0100 i2c: rcar: don't issue stop when HW does it automatically The manual says (55.4.8.6) that HW does automatically send STOP after NACK was received. My measuerments confirm that. Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-rcar.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit cc21d0b4b62e41e5013d763adade5ea4462c33a4 Author: Wolfram Sang Date: Thu Nov 19 16:56:46 2015 +0100 i2c: rcar: init new messages in irq Setting up new messages was done in process context while handling a message was in interrupt context. Because of the HW design, this IP core is sensitive to timing, so the context switches were too expensive. Move this setup to interrupt context as well. In my test setup, this fixed the occasional 'data byte sent twice' issue which a number of people have seen. It also fixes to send REP_START after a read message which was wrongly send as a STOP + START sequence before. Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-rcar.c | 90 +++++++++++++++++++++---------------------- 1 file changed, 43 insertions(+), 47 deletions(-) commit b9d0684c79c4b9d30ce0d47d3270493dd0e76e59 Author: Wolfram Sang Date: Thu Nov 19 16:56:45 2015 +0100 i2c: rcar: refactor setup of a msg We want to reuse this function later. Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-rcar.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit ff2316b87a336bff940939cd9fc56287ed48e578 Author: Wolfram Sang Date: Thu Nov 19 16:56:44 2015 +0100 i2c: rcar: remove spinlock After making sure to reinit the HW and clear interrupts in the timeout case, we know that interrupts are always disabled in the sections protected by the spinlock. Thus, we can simply remove it which is a preparation for further refactoring. While here, rename the timeout variable to time_left which is way more readable. Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-rcar.c | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-) commit 90f779e565bdc18dd4f79d81cf11f43a7266010b Author: Wolfram Sang Date: Thu Nov 19 16:56:43 2015 +0100 i2c: rcar: remove unused IOERROR state Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-rcar.c | 6 ------ 1 file changed, 6 deletions(-) commit 2c78cdc1c06308a59d6ed4145cdba73fdeff8c0d Author: Wolfram Sang Date: Thu Nov 19 16:56:42 2015 +0100 i2c: rcar: rework hw init We don't need to init HW before every transfer since we know the HW state then. HW init at probe time is enough. While here, add setting the clock register which belongs to init HW. Also, set MDBS bit since not setting it is prohibited according to the manual. Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-rcar.c | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) commit e43e0df13f8528ca55ed79f469c4b2af897fa796 Author: Wolfram Sang Date: Thu Nov 19 16:56:41 2015 +0100 i2c: rcar: make sure clocks are on when doing clock calculation When calculating the bus speed, the clock should be on, of course. Most bootloaders left them on, so this went unnoticed so far. Move the ioremapping out of this clock-enabled-block and prepare for adding hw initialization there, too. Reported-by: Kuninori Morimoto Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-rcar.c | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) commit b31fa550241d1fdd62e298c843c8f08a55bd57ff Author: Andy Shevchenko Date: Fri Nov 27 18:29:31 2015 +0200 wireless: airo: re-use mac_pton() mac_pton() converts 6-byte MAC / BSSID to binary format. Change an open coded variant by the generic one. Signed-off-by: Andy Shevchenko Signed-off-by: Kalle Valo drivers/net/wireless/cisco/airo.c | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) commit 7941c2129a4bc189e17e3188a7d315d946caa1d6 Author: Dan Carpenter Date: Fri Nov 27 16:43:27 2015 +0300 brcm80211: fix error code in brcmf_pcie_exit_download_state() The original code returns 1 on failure and 0 on success but the caller was expecting an error code on failure. Signed-off-by: Dan Carpenter Signed-off-by: Kalle Valo drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 6d91ff7acc903b91488c17d781ebfecbce45285a Author: Dan Carpenter Date: Thu Nov 26 15:04:49 2015 +0300 libertas: cleanup a variable name "&card->priv->driver_lock" and "&priv->driver_lock" are the same and it's nicer to use the shorter one consistently. Signed-off-by: Dan Carpenter Signed-off-by: Kalle Valo drivers/net/wireless/marvell/libertas/if_sdio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 952348a5f88b92e412f3e490fb83acc17e68d85c Author: Dan Carpenter Date: Thu Nov 26 14:55:23 2015 +0300 rt2x00: type bug in _rt2500usb_register_read() This code causes a static checker bug. drivers/net/wireless/ralink/rt2x00/rt2500usb.c:232 _rt2500usb_register_read() warn: passing casted pointer 'value' to 'rt2500usb_register_read()' 32 vs 16. If the low 16 bits were initialized to zero then this code would only be a problem on big endian systems. But in this case this is case the low 16 bits are never initialized. This is called from a function which is created using a macro: RT2X00DEBUGFS_OPS(csr, "0x%.8x\n", u32); We end up copying uninitialized data to the user which is bogus and an information leak. Signed-off-by: Dan Carpenter Acked-by: Stanislaw Gruszka Signed-off-by: Kalle Valo drivers/net/wireless/ralink/rt2x00/rt2500usb.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 5536f20a1c43417901e5bb66d62c38853e070be5 Author: Hante Meuleman Date: Wed Nov 25 11:32:47 2015 +0100 brcmfmac: Fix double free on exception at module load. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c | 2 ++ 1 file changed, 2 insertions(+) commit 46d703a775394e4724509ff55cdda41d228c028c Author: Hante Meuleman Date: Wed Nov 25 11:32:46 2015 +0100 brcmfmac: Unify methods to define and map firmware files. All bus drivers (sdio, usb and pcie) require firmware files which needs to be downloaded to the device, The definitions and mapping of device id and revision to firmware and nvram file is done by each bus driver. This patch creates common functions and defines to simplify and unify the definition of these firmware and nvram files and mapping. Reviewed-by: Arend Van Spriel Reviewed-by: Franky (Zhenhui) Lin Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo .../broadcom/brcm80211/brcmfmac/firmware.c | 44 +++++- .../broadcom/brcm80211/brcmfmac/firmware.h | 46 +++++- .../wireless/broadcom/brcm80211/brcmfmac/pcie.c | 149 ++++-------------- .../wireless/broadcom/brcm80211/brcmfmac/sdio.c | 166 +++++---------------- .../wireless/broadcom/brcm80211/brcmfmac/sdio.h | 4 +- .../net/wireless/broadcom/brcm80211/brcmfmac/usb.c | 86 ++++------- 6 files changed, 178 insertions(+), 317 deletions(-) commit b4fd63c608a2d0c74730d71c8f620604b4b86ef9 Author: Arend van Spriel Date: Wed Nov 25 11:32:45 2015 +0100 brcmfmac: assure net_ratelimit() is declared before use Under some kernel configuration we get build issue with implicit declaration of net_ratelimit() function. Fix this by explicitly including the file providing the prototype. Reviewed-by: Hante Meuleman Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h | 2 ++ 1 file changed, 2 insertions(+) commit 7bf65aa9ad3f3ebc1f7c889bb1bb005fdc8a07ec Author: Hante Meuleman Date: Wed Nov 25 11:32:43 2015 +0100 brcmfmac: Add beamforming support. Some devices support beamforming. This patch enables tx beamforming if supported and reports beamforming capabilities per channel if supported. Reviewed-by: Arend Van Spriel Reviewed-by: Franky (Zhenhui) Lin Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo .../broadcom/brcm80211/brcmfmac/cfg80211.c | 36 ++++++++++++++++++++-- .../wireless/broadcom/brcm80211/brcmfmac/common.c | 3 ++ .../broadcom/brcm80211/brcmfmac/fwil_types.h | 5 +++ 3 files changed, 42 insertions(+), 2 deletions(-) commit 1119e23edf256f4b4a3655f50b31ec6406f16026 Author: Hante Meuleman Date: Wed Nov 25 11:32:42 2015 +0100 brcmfmac: Cleanup roaming configuration. Put all roaming configuration related code in one place and configure timeout based upon roaming setting. Reviewed-by: Arend Van Spriel Reviewed-by: Franky (Zhenhui) Lin Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo .../broadcom/brcm80211/brcmfmac/cfg80211.c | 41 ++++++++++------------ .../broadcom/brcm80211/brcmfmac/cfg80211.h | 6 ++-- .../wireless/broadcom/brcm80211/brcmfmac/common.c | 21 ----------- 3 files changed, 22 insertions(+), 46 deletions(-) commit c495810624ef5f503aa47a90a9b816d658cae90f Author: Hante Meuleman Date: Wed Nov 25 11:32:41 2015 +0100 brcmfmac: Remove redundant parameter action from scan. ESCAN is always performed using action start scan. No need to pass this parameter on to different functions. Reviewed-by: Arend Van Spriel Reviewed-by: Franky (Zhenhui) Lin Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 6 +++--- drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.h | 2 +- drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c | 13 +++++-------- 3 files changed, 9 insertions(+), 12 deletions(-) commit 64d66c30c37e1f5de46da94d49bfae8ad2496d20 Author: Franky Lin Date: Wed Nov 25 11:32:40 2015 +0100 brcmfmac: no retries on rxglom superframe errors Aborting the current read attempt on the superframe also removes the packet from the pipeline. Retries should not be attempted on the next packet since it would not be a superframe(either a superframe descriptor or other data packet) and should not be handled by brcmf_sdio_rxglom Reviewed-by: Hante Meuleman Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Arend Van Spriel Signed-off-by: Franky Lin Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo .../wireless/broadcom/brcm80211/brcmfmac/sdio.c | 30 ++++++---------------- 1 file changed, 8 insertions(+), 22 deletions(-) commit 6a23863eaa5153f1cd40f518eaf2bf6bf441fc42 Author: Hante Meuleman Date: Wed Nov 25 11:32:39 2015 +0100 brcmfmac: Change error print on wlan0 existence. During initialization of the device, but also on some other moments the driver prints an error that the netdev already exists. This is a result of the way the driver is initializing the firmware and not really an error. The code is not treating it as an error either. This error print has resulted in many questions by users and is confusing and incorrect. This patch changes the error log into a debug info log. Reviewed-by: Arend Van Spriel Reviewed-by: Franky (Zhenhui) Lin Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 21000b3f3da45a5a33de3815f3c2b3584102960e Author: Hante Meuleman Date: Wed Nov 25 11:32:38 2015 +0100 brcmfmac: Return actual error by fwil. FWIL is always mapping back errors to EBADE. This is not very conventient when trying to understand problems by reading logs. Some callers print the error code, but that is quite useless when the exact error code is not returned. It also makes it impossible to differentiate based on error code. This patch changes the return of EBADE into the actual error code. Reviewed-by: Arend Van Spriel Reviewed-by: Franky (Zhenhui) Lin Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e9a6ca825eb7cee946c0e7acde6fb40f4de43d3b Author: Hante Meuleman Date: Wed Nov 25 11:32:37 2015 +0100 brcmfmac: Cleanup ssid storage. SSIDs used for connect and p2p got stored, but never used. Reviewed-by: Arend Van Spriel Reviewed-by: Franky (Zhenhui) Lin Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo .../broadcom/brcm80211/brcmfmac/cfg80211.c | 41 ++++++++-------------- .../broadcom/brcm80211/brcmfmac/cfg80211.h | 2 -- .../broadcom/brcm80211/brcmfmac/fwil_types.h | 7 +--- .../net/wireless/broadcom/brcm80211/brcmfmac/p2p.c | 20 +++++------ .../net/wireless/broadcom/brcm80211/brcmfmac/p2p.h | 2 -- 5 files changed, 24 insertions(+), 48 deletions(-) commit 2d24fe675ae1824402987fbf626ce34c461760bb Author: Kuninori Morimoto Date: Wed Nov 11 14:29:59 2015 +0900 pinctrl: sh-pfc: Share/reuse same PORT_GP_x() macros Many SoC needs each PORT_GP_x() macros, but we can share/reuse same one. Signed-off-by: Kuninori Morimoto Acked-by: Laurent Pinchart Signed-off-by: Geert Uytterhoeven drivers/pinctrl/sh-pfc/pfc-r8a7779.c | 7 ---- drivers/pinctrl/sh-pfc/pfc-r8a7790.c | 17 ---------- drivers/pinctrl/sh-pfc/pfc-r8a7791.c | 15 -------- drivers/pinctrl/sh-pfc/pfc-r8a7794.c | 19 ----------- drivers/pinctrl/sh-pfc/pfc-r8a7795.c | 31 ----------------- drivers/pinctrl/sh-pfc/pfc-sh7734.c | 8 ----- drivers/pinctrl/sh-pfc/sh_pfc.h | 66 ++++++++++++++++++++++++++++++------ 7 files changed, 56 insertions(+), 107 deletions(-) commit a56069c46c102710721e003e2423ca377d99687b Author: Geert Uytterhoeven Date: Wed Aug 26 19:35:58 2015 +0200 pinctrl: sh-pfc: r8a7795: Add HSCIF pins, groups, and functions Signed-off-by: Geert Uytterhoeven Acked-by: Linus Walleij drivers/pinctrl/sh-pfc/pfc-r8a7795.c | 255 +++++++++++++++++++++++++++++++++++ 1 file changed, 255 insertions(+) commit fd1aa743b070d79bf08ba3f1f96d8c660f48944d Author: Geert Uytterhoeven Date: Mon Nov 9 09:56:21 2015 +0100 pinctrl: sh-pfc: r8a7795: Rename SEL_SCIF to SEL_SATA Cfr. Manual Errata for Rev 0.50 of the R-Car Gen3 datasheet. This has no user-visible impact. Signed-off-by: Geert Uytterhoeven Acked-by: Linus Walleij drivers/pinctrl/sh-pfc/pfc-r8a7795.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit b8856085c3184d0360b018af2a94a9d414a9214d Author: Geert Uytterhoeven Date: Wed Oct 28 10:17:55 2015 +0100 pinctrl: sh-pfc: r8a7795: Make PORT_GP_x() macros consistent On r8a7795, PORT_GP_x() is a macro for defining GPIOs 0..x. In all other sh-pfc code, PORT_GP_x() is a macro for defining GPIOs 0..(x-1). Make the r8a7795 macro definitions consistent with the rest of the sh-pfc codebase. Signed-off-by: Geert Uytterhoeven Acked-by: Linus Walleij Acked-by: Laurent Pinchart drivers/pinctrl/sh-pfc/pfc-r8a7795.c | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) commit 61a483ff80e19846de5ab9c9ccadd11f3c11f982 Author: Geert Uytterhoeven Date: Tue Oct 20 19:35:02 2015 +0200 pinctrl: sh-pfc: r8a7794: Use PINMUX_SINGLE() instead of raw PINMUX_DATA() Signed-off-by: Geert Uytterhoeven Acked-by: Kuninori Morimoto Acked-by: Laurent Pinchart drivers/pinctrl/sh-pfc/pfc-r8a7794.c | 44 ++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 22 deletions(-) commit bc3341ddaea26756c76965a7e0e95c6a8e01c857 Author: Geert Uytterhoeven Date: Tue Oct 20 19:34:56 2015 +0200 pinctrl: sh-pfc: r8a7791: Use PINMUX_SINGLE() instead of raw PINMUX_DATA() Signed-off-by: Geert Uytterhoeven Acked-by: Kuninori Morimoto Acked-by: Laurent Pinchart drivers/pinctrl/sh-pfc/pfc-r8a7791.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) commit 01af9ecbd7bd7d688c54d73a7fa8f7e10ab29d8c Author: Geert Uytterhoeven Date: Tue Oct 20 19:34:41 2015 +0200 pinctrl: sh-pfc: r8a7790: Use PINMUX_SINGLE() instead of raw PINMUX_DATA() Signed-off-by: Geert Uytterhoeven Acked-by: Kuninori Morimoto Acked-by: Laurent Pinchart drivers/pinctrl/sh-pfc/pfc-r8a7790.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit dcd803bebcfc0fae9c2d3d5063210e9225fe4b1b Author: Geert Uytterhoeven Date: Tue Oct 20 19:33:00 2015 +0200 pinctrl: sh-pfc: Add PINMUX_SINGLE() Add a macro to describe a pinmux configuration for a single-function pin. Signed-off-by: Geert Uytterhoeven Acked-by: Kuninori Morimoto Acked-by: Laurent Pinchart drivers/pinctrl/sh-pfc/sh_pfc.h | 8 ++++++++ 1 file changed, 8 insertions(+) commit 1d14c6f480f403cbc21c73326d84ec7ed67f7153 Author: Andy Green Date: Tue Nov 10 03:25:55 2015 -0500 wcn36xx: use new response format for wcn3620 remove_bsskey On wcn3620, firmware response to remove_bsskey uses the new, larger "v2" format Signed-off-by: Andy Green Signed-off-by: Kalle Valo drivers/net/wireless/ath/wcn36xx/smd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 69f66b688e938acd0ff5acb77a9d8225e3051aab Author: Andy Green Date: Tue Nov 10 03:25:54 2015 -0500 wcn36xx: use new response format for wcn3620 trigger_ba On wcn3620, firmware response to trigger_ba uses the new, larger "v2" format Signed-off-by: Andy Green Signed-off-by: Kalle Valo drivers/net/wireless/ath/wcn36xx/smd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 40ac77c8117b06501f3d190b614b008e66f68df2 Author: Andy Green Date: Tue Nov 10 03:25:53 2015 -0500 wcn36xx: handle new hal response format wcn3620 has a new message structure for the reply to some hal commands. This patch adds the struct and helper routine that uses it if the chip is wcn3620, or falls back to the old helper routine. We don't know what to do with the candidate list he sends back, but we can at least accept and ignore it nicely instead of dying. Signed-off-by: Andy Green Signed-off-by: Kalle Valo drivers/net/wireless/ath/wcn36xx/smd.c | 16 ++++++++++++++++ drivers/net/wireless/ath/wcn36xx/smd.h | 9 +++++++++ 2 files changed, 25 insertions(+) commit df0d4364766fcc8f717d751e5b6cee2a56acd7b5 Author: Andy Green Date: Tue Nov 10 03:25:52 2015 -0500 wcn36xx: swallow two wcn3620 IND messages WCN3620 can asynchronously send two new kinds of indication message, since we can't handle them just accept them quietly. Signed-off-by: Andy Green Signed-off-by: Kalle Valo drivers/net/wireless/ath/wcn36xx/smd.c | 5 +++++ 1 file changed, 5 insertions(+) commit 9193adebc4d1e3138bbaf7690cfe254fb93730ec Author: Andy Green Date: Tue Nov 10 03:25:51 2015 -0500 wcn36xx: introduce WCN36XX_HAL_AVOID_FREQ_RANGE_IND WCN3620 firmware introduces a new async indication, we need to add it as a known message type so we can accept it Signed-off-by: Andy Green Signed-off-by: Kalle Valo drivers/net/wireless/ath/wcn36xx/hal.h | 2 ++ 1 file changed, 2 insertions(+) commit 9761c0f65d3a4c7ae8ceec86ac9d8d2c64197d57 Author: Bard Liao Date: Mon Nov 30 14:10:21 2015 +0800 ASoC: rt5645: merge DMI tables of google projects There are more and more google projects need to use DMI to get the platform data configuration. And those projects use the same configuration. To clean those redundant code, we define a general DMI for those projects with the same platform data configuration. Signed-off-by: Oder Chiou Signed-off-by: Bard Liao Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 79 +++++++++++------------------------------------ 1 file changed, 18 insertions(+), 61 deletions(-) commit 4eb404d00f58bbb2d116fdd2563dd45ff0cbdef1 Author: Simon Horman Date: Mon Nov 30 15:02:52 2015 +0900 ASoC: rsnd: Add device tree support for r8a77{79,93,94} Simply document new compat strings. There appears to be no need for a driver updates. Signed-off-by: Simon Horman Acked-by: Kuninori Morimoto Signed-off-by: Mark Brown Documentation/devicetree/bindings/sound/renesas,rsnd.txt | 3 +++ 1 file changed, 3 insertions(+) commit 4d50934abd2261fd467320d52c470efff309fd74 Author: Adam Thomson Date: Wed Nov 25 14:24:38 2015 +0000 ASoC: da7218: Add da7218 codec driver This adds support for DA7217 and DA7218 audio codecs. Signed-off-by: Adam Thomson Signed-off-by: Mark Brown include/sound/da7218.h | 109 ++ sound/soc/codecs/Kconfig | 4 + sound/soc/codecs/Makefile | 2 + sound/soc/codecs/da7218.c | 3305 +++++++++++++++++++++++++++++++++++++++++++++ sound/soc/codecs/da7218.h | 1414 +++++++++++++++++++ 5 files changed, 4834 insertions(+) commit ee4105a589a3ea979850d9806ff3f69337da46a5 Author: Adam Thomson Date: Wed Nov 25 14:24:33 2015 +0000 ASoC: da7218: Add bindings documentation for DA7218 audio codec Signed-off-by: Adam Thomson Acked-by: Rob Herring Signed-off-by: Mark Brown Documentation/devicetree/bindings/sound/da7218.txt | 104 +++++++++++++++++++++ 1 file changed, 104 insertions(+) commit 57b588c950b7e04e0f22393ad439299ba4fda9c3 Author: John Crispin Date: Thu Nov 26 11:00:09 2015 +0100 pinctrl/lantiq: Fix GPIO Setup of GPIO Port3 Some special handling of GPIO Port 3 is needed because of some hardware thingofabob. Signed-off-by: John Crispin Signed-off-by: Martin Schiller Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-xway.c | 4 ++++ 1 file changed, 4 insertions(+) commit de2c6e58554c7df3db70c68e52f982e558895ecf Author: Joshua Clayton Date: Sat Nov 28 13:28:18 2015 -0800 spi: tools: move spidev_test metadata Now that spidev_test and spidev_fdx have been moved, remove them from the Documentation index and move their .gitignore file. Signed-off-by: Joshua Clayton Signed-off-by: Mark Brown Documentation/spi/.gitignore | 2 -- Documentation/spi/00-INDEX | 4 ---- tools/spi/.gitignore | 2 ++ 3 files changed, 2 insertions(+), 6 deletions(-) commit be14811c03cf20c793fd176a347625335110b0e6 Author: Martin Schiller Date: Thu Nov 26 11:00:07 2015 +0100 pinctrl/lantiq: introduce new dedicated devicetree bindings This patch introduces new dedicated "lantiq,-pinctrl" devicetree bindings, where is one of "ase", "danube", "xrx100", "xrx200" or "xrx300" and marks the "lantiq,pinctrl-xway", "lantiq,pinctrl-ase" and "lantiq,pinctrl-xr9" bindings as DEPRECATED. Based on the newest Lantiq Hardware Description it turend out, that there are some differences in the GPIO alternative functions of the Danube, xRX100 and xRX200 families, which makes it impossible to use only one xway_mfp table. This patch also adds support for the xRX300 family. Signed-off-by: Martin Schiller Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-lantiq.h | 8 + drivers/pinctrl/pinctrl-xway.c | 1181 +++++++++++++++++++++++++++++++++----- 2 files changed, 1059 insertions(+), 130 deletions(-) commit bf714d3780b599731eb18f6a6a3fb67bac38ec21 Author: Martin Schiller Date: Thu Nov 26 11:00:06 2015 +0100 pinctrl/lantiq: updating devicetree binding description This patch adds the new dedicated "lantiq,-pinctrl" compatible strings to the devicetree bindings Documentation, where is one of "ase", "danube", "xrx100", "xrx200" or "xrx300" and marks the "lantiq,pinctrl-xway", "lantiq,pinctrl-ase" and "lantiq,pinctrl-xr9" compatible strings as DEPRECATED. Signed-off-by: Martin Schiller Acked-by: Rob Herring Signed-off-by: Linus Walleij .../bindings/pinctrl/lantiq,pinctrl-xway.txt | 110 +++++++++++++++++++-- 1 file changed, 102 insertions(+), 8 deletions(-) commit 2f8a43d45d14ad62b105ed99151b453c12df7149 Author: Christian Borntraeger Date: Fri Nov 27 11:00:54 2015 +0100 KVM: s390: remove redudant assigment of error code rc already contains -ENOMEM, no need to assign it twice. Signed-off-by: Christian Borntraeger Acked-by: Cornelia Huck Reviewed-by: David Hildenbrand arch/s390/kvm/kvm-s390.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit a6aacc3f87dfd44425fc17ea9875a5c2ad917227 Author: Heiko Carstens Date: Tue Nov 24 14:28:12 2015 +0100 KVM: s390: remove pointless test_facility(2) check This evaluates always to 'true'. Signed-off-by: Heiko Carstens Reviewed-by: David Hildenbrand Signed-off-by: Christian Borntraeger arch/s390/kvm/kvm-s390.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 07197fd05fa3eb2e8a5aae92938ca5d07bcac9fc Author: David Hildenbrand Date: Fri Jan 30 16:01:38 2015 +0100 KVM: s390: don't load kvm without virtualization support If we don't have support for virtualization (SIE), e.g. when running under a hypervisor not supporting execution of the SIE instruction, we should immediately abort loading the kvm module, as the SIE instruction cannot be enabled dynamically. Currently, the SIE instructions fails with an exception on a non-SIE host, resulting in the guest making no progress, instead of failing hard. Reviewed-by: Cornelia Huck Acked-by: Martin Schwidefsky Signed-off-by: David Hildenbrand Signed-off-by: Christian Borntraeger arch/s390/kvm/kvm-s390.c | 5 +++++ 1 file changed, 5 insertions(+) commit 7f16d7e787b731d9db273b822b4b8069102e57a6 Author: David Hildenbrand Date: Tue Feb 24 15:54:47 2015 +0100 s390: show virtualization support in /proc/cpuinfo This patch exposes the SIE capability (aka virtualization support) via /proc/cpuinfo -> "features" as "sie". As we don't want to expose this hwcap via elf, let's add a second, "internal"/non-elf capability list. The content is simply concatenated to the existing features when printing /proc/cpuinfo. We also add the defines to elf.h to keep the hwcap stuff at a common place. Acked-by: Martin Schwidefsky Signed-off-by: David Hildenbrand Signed-off-by: Christian Borntraeger arch/s390/include/asm/elf.h | 7 +++++++ arch/s390/kernel/processor.c | 6 ++++++ arch/s390/kernel/setup.c | 9 +++++++++ 3 files changed, 22 insertions(+) commit 8dfd523f8523779210038264259546299a8398e9 Author: David Hildenbrand Date: Tue Feb 24 15:51:55 2015 +0100 s390/sclp: introduce check for SIE This patch adds a way to check if the SIE with zArchitecture support is available. Acked-by: Martin Schwidefsky Acked-by: Cornelia Huck Signed-off-by: David Hildenbrand Signed-off-by: Christian Borntraeger arch/s390/include/asm/sclp.h | 6 +++++- drivers/s390/char/sclp_early.c | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) commit 4215825eeb1f704d1bd327ca01fb753b53ea34d3 Author: David Hildenbrand Date: Mon Oct 12 12:57:22 2015 +0200 KVM: s390: don't switch to ESCA for ucontrol sca_add_vpcu is not called for ucontrol guests. We must also not apply the sca checking for sca_can_add_vcpu as ucontrol guests do not have to follow the sca limits. As common code already checks that id < KVM_MAX_VCPUS all other data structures are safe as well. Signed-off-by: David Hildenbrand Signed-off-by: Christian Borntraeger arch/s390/kvm/kvm-s390.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eaa78f343255dabac963ab8c7644367844d18e00 Author: David Hildenbrand Date: Mon Oct 12 16:29:01 2015 +0200 KVM: s390: cleanup sca_add_vcpu Now that we already have kvm and the VCPU id set for the VCPU, we can convert sda_add_vcpu to look much more like sda_del_vcpu. Signed-off-by: David Hildenbrand Signed-off-by: Christian Borntraeger arch/s390/kvm/kvm-s390.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) commit 10ce32d5b07470c5eb0fa821000c789073128b3f Author: David Hildenbrand Date: Mon Oct 12 12:41:41 2015 +0200 KVM: s390: always set/clear the SCA sda field Let's always set and clear the sda when enabling/disabling a VCPU. Dealing with sda being set to something else makes no sense anymore as we enable a VCPU in the SCA now after it has been registered at the VM. Signed-off-by: David Hildenbrand Signed-off-by: Christian Borntraeger arch/s390/kvm/kvm-s390.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit 2550882449299fd55c8214529cc0777b789db0f7 Author: David Hildenbrand Date: Mon Oct 12 16:27:23 2015 +0200 KVM: s390: fix SCA related races and double use If something goes wrong in kvm_arch_vcpu_create, the VCPU has already been added to the sca but will never be removed. Trying to create VCPUs with duplicate ids (e.g. after a failed attempt) is problematic. Also, when creating multiple VCPUs in parallel, we could theoretically forget to set the correct SCA when the switch to ESCA happens just before the VCPU is registered. Let's add the VCPU to the SCA in kvm_arch_vcpu_postcreate, where we can be sure that no duplicate VCPU with the same id is around and the VCPU has already been registered at the VM. We also have to make sure to update ECB at that point. Signed-off-by: David Hildenbrand Signed-off-by: Christian Borntraeger arch/s390/kvm/kvm-s390.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 5f3fe620a56f2f5c79e89522107f2476a45ed6ce Author: David Hildenbrand Date: Mon Oct 12 12:34:19 2015 +0200 KVM: s390: we always have a SCA Having no sca can never happen, even when something goes wrong when switching to ESCA. Otherwise we would have a serious bug. Let's remove this superfluous check. Acked-by: Dominik Dingel Signed-off-by: David Hildenbrand Signed-off-by: Christian Borntraeger arch/s390/kvm/kvm-s390.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 2c1bb2be986c56848ce92ba41ba32fc62ab3165f Author: David Hildenbrand Date: Wed Sep 23 09:45:50 2015 +0200 KVM: s390: fast path for sca_ext_call_pending If CPUSTAT_ECALL_PEND isn't set, we can't have an external call pending, so we can directly avoid taking the lock. Acked-by: Christian Borntraeger Signed-off-by: David Hildenbrand Signed-off-by: Christian Borntraeger arch/s390/kvm/interrupt.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit fe0edcb7311e80a349ad5f2b15f2d91a5606ed7f Author: Eugene (jno) Dvurechenski Date: Wed Apr 22 18:37:40 2015 +0200 KVM: s390: Enable up to 248 VCPUs per VM This patch allows s390 to have more than 64 VCPUs for a guest (up to 248 for memory usage considerations), if supported by the underlaying hardware (sclp.has_esca). Signed-off-by: Eugene (jno) Dvurechenski Signed-off-by: Christian Borntraeger arch/s390/include/asm/kvm_host.h | 2 +- arch/s390/kvm/kvm-s390.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) commit 5e0443152367ab9fef597a41a4e09a32df2bf887 Author: Eugene (jno) Dvurechenski Date: Wed Apr 22 18:08:39 2015 +0200 KVM: s390: Introduce switching code This patch adds code that performs transparent switch to Extended SCA on addition of 65th VCPU in a VM. Disposal of ESCA is added too. The entier ESCA functionality, however, is still not enabled. The enablement will be provided in a separate patch. This patch also uses read/write lock protection of SCA and its subfields for possible disposal at the BSCA-to-ESCA transition. While only Basic SCA needs such a protection (for the swap), any SCA access is now guarded. Signed-off-by: Eugene (jno) Dvurechenski Signed-off-by: Christian Borntraeger arch/s390/include/asm/kvm_host.h | 1 + arch/s390/kvm/gaccess.c | 30 ++++++++++++---- arch/s390/kvm/interrupt.c | 6 ++++ arch/s390/kvm/kvm-s390.c | 75 ++++++++++++++++++++++++++++++++++++++-- 4 files changed, 103 insertions(+), 9 deletions(-) commit 7d43bafcff17c7fb07270999d3cf002f1ed6bd3f Author: Eugene (jno) Dvurechenski Date: Wed Apr 22 17:09:44 2015 +0200 KVM: s390: Make provisions for ESCA utilization This patch updates the routines (sca_*) to provide transparent access to and manipulation on the data for both Basic and Extended SCA in use. The kvm.arch.sca is generalized to (void *) to handle BSCA/ESCA cases. Also the kvm.arch.use_esca flag is provided. The actual functionality is kept the same. Signed-off-by: Eugene (jno) Dvurechenski Signed-off-by: Christian Borntraeger arch/s390/include/asm/kvm_host.h | 3 +- arch/s390/kvm/interrupt.c | 78 +++++++++++++++++++++++++++++++--------- arch/s390/kvm/kvm-s390.c | 54 +++++++++++++++++++++------- 3 files changed, 106 insertions(+), 29 deletions(-) commit bc784ccee5eb9ae1e737927eb9d8a0fbf7601abc Author: Eugene (jno) Dvurechenski Date: Thu Apr 23 16:09:06 2015 +0200 KVM: s390: Introduce new structures This patch adds new structures and updates some existing ones to provide the base for Extended SCA functionality. The old sca_* structures were renamed to bsca_* to keep things uniform. The access to fields of SIGP controls were turned into bitfields instead of hardcoded bitmasks. Signed-off-by: Eugene (jno) Dvurechenski Signed-off-by: Christian Borntraeger arch/s390/include/asm/kvm_host.h | 47 +++++++++++++++++++++++++++++++++++----- arch/s390/kvm/interrupt.c | 31 ++++++++++++++++---------- arch/s390/kvm/kvm-s390.c | 14 ++++++------ arch/s390/kvm/kvm-s390.h | 4 +++- 4 files changed, 70 insertions(+), 26 deletions(-) commit a6e2f683e7691949d33ca9392e7807cfa9aca34e Author: Eugene (jno) Dvurechenski Date: Tue Apr 21 15:31:59 2015 +0200 KVM: s390: Provide SCA-aware helpers for VCPU add/del This patch provides SCA-aware helpers to create/delete a VCPU. This is to prepare for upcoming introduction of Extended SCA support. Signed-off-by: Eugene (jno) Dvurechenski Reviewed-by: David Hildenbrand Signed-off-by: Christian Borntraeger arch/s390/kvm/kvm-s390.c | 44 +++++++++++++++++++++++++++++++------------- 1 file changed, 31 insertions(+), 13 deletions(-) commit a5bd764734838da64b37d771e5b7814eb1f61ffd Author: Eugene (jno) Dvurechenski Date: Tue Apr 21 15:10:10 2015 +0200 KVM: s390: Generalize access to SIGP controls This patch generalizes access to the SIGP controls, which is a part of SCA. This is to prepare for upcoming introduction of Extended SCA support. Signed-off-by: Eugene (jno) Dvurechenski Signed-off-by: Christian Borntraeger arch/s390/kvm/interrupt.c | 72 +++++++++++++++++++++++++++++------------------ 1 file changed, 45 insertions(+), 27 deletions(-) commit 605145103abb21c555d5982073bee29269aaad51 Author: Eugene (jno) Dvurechenski Date: Tue Apr 21 14:44:54 2015 +0200 KVM: s390: Generalize access to IPTE controls This patch generalizes access to the IPTE controls, which is a part of SCA. This is to prepare for upcoming introduction of Extended SCA support. Signed-off-by: Eugene (jno) Dvurechenski Signed-off-by: Christian Borntraeger arch/s390/kvm/gaccess.c | 10 +++++----- arch/s390/kvm/kvm-s390.h | 5 +++++ 2 files changed, 10 insertions(+), 5 deletions(-) commit f7ba1d34263e333e82aa8879028ddd06d6d5f9ac Author: Eugene (jno) Dvurechenski Date: Thu Oct 9 16:04:48 2014 +0200 s390/sclp: introduce checks for ESCA and HVS Introduce sclp.has_hvs and sclp.has_esca to provide a way for kvm to check whether the extended-SCA and the home-virtual-SCA facilities are available. Signed-off-by: Eugene (jno) Dvurechenski Reviewed-by: David Hildenbrand Signed-off-by: Christian Borntraeger arch/s390/include/asm/sclp.h | 2 ++ drivers/s390/char/sclp_early.c | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) commit 71f116bfedfdd6763f2caf842bf40a6506759029 Author: David Hildenbrand Date: Mon Oct 19 16:24:28 2015 +0200 KVM: s390: rewrite vcpu_post_run and drop out early Let's rewrite this function to better reflect how we actually handle exit_code. By dropping out early we can save a few cycles. This especially speeds up sie exits caused by host irqs. Also, let's move the special -EOPNOTSUPP for intercepts to the place where it belongs and convert it to -EREMOTE. Reviewed-by: Dominik Dingel Reviewed-by: Cornelia Huck Signed-off-by: David Hildenbrand Signed-off-by: Christian Borntraeger arch/s390/kvm/intercept.c | 7 +++--- arch/s390/kvm/kvm-s390.c | 59 +++++++++++++++++------------------------------ 2 files changed, 24 insertions(+), 42 deletions(-) commit 4bd33b568855f5483a6c6d7e4706ef507ab8586b Author: Janosch Frank Date: Wed Oct 14 12:37:35 2015 +0200 KVM: Remove unnecessary debugfs dentry references KVM creates debugfs files to export VM statistics to userland. To be able to remove them on kvm exit it tracks the files' dentries. Since their parent directory is also tracked and since each parent direntry knows its children we can easily remove them by using debugfs_remove_recursive(kvm_debugfs_dir). Therefore we don't need the extra tracking in the kvm_stats_debugfs_item anymore. Signed-off-by: Janosch Frank Reviewed-By: Sascha Silbe Acked-by: Christian Borntraeger Signed-off-by: Christian Borntraeger include/linux/kvm_host.h | 1 - virt/kvm/kvm_main.c | 18 ++++-------------- 2 files changed, 4 insertions(+), 15 deletions(-) commit c896939f7cff767091b5d84587cd144e5d3613b7 Author: David Hildenbrand Date: Thu Nov 5 09:55:08 2015 +0100 KVM: use heuristic for fast VCPU lookup by id Usually, VCPU ids match the array index. So let's try a fast lookup first before falling back to the slow iteration. Suggested-by: Christian Borntraeger Reviewed-by: Dominik Dingel Reviewed-by: Christian Borntraeger Signed-off-by: David Hildenbrand Signed-off-by: Christian Borntraeger include/linux/kvm_host.h | 5 +++++ 1 file changed, 5 insertions(+) commit e09fefdeeb517ff653516dea8a882ce001e99237 Author: David Hildenbrand Date: Thu Nov 5 09:03:50 2015 +0100 KVM: Use common function for VCPU lookup by id Let's reuse the new common function for VPCU lookup by id. Reviewed-by: Christian Borntraeger Reviewed-by: Dominik Dingel Signed-off-by: David Hildenbrand Signed-off-by: Christian Borntraeger [split out the new function into a separate patch] arch/powerpc/kvm/book3s_hv.c | 10 ++-------- arch/s390/kvm/diag.c | 11 +++-------- virt/kvm/kvm_main.c | 12 +++++------- 3 files changed, 10 insertions(+), 23 deletions(-) commit 4fe338c94986df105c3966a39b5a0af608762891 Author: Julia Lawall Date: Sat Nov 28 15:09:38 2015 +0100 spi: dw-mid: constify dw_spi_dma_ops structure The dw_spi_dma_ops structure is never modified, so declare it as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Acked-by: Andy Shevchenko Signed-off-by: Mark Brown drivers/spi/spi-dw-mid.c | 2 +- drivers/spi/spi-dw.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit faa5cf3af39faa9ed1d3fbe14be9c1cf80acbf91 Author: Axel Lin Date: Sun Nov 29 15:02:21 2015 +0800 regulator: lm363x: Staticise ldo_cont_enable_time Signed-off-by: Axel Lin Signed-off-by: Mark Brown drivers/regulator/lm363x-regulator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a8bc6ca0707c71fe7085543dc6d76b077e0ae89e Author: Axel Lin Date: Sun Nov 29 14:58:54 2015 +0800 regulator: lm363x: Remove struct lm363x_regulator which is not necessary Signed-off-by: Axel Lin Signed-off-by: Mark Brown drivers/regulator/lm363x-regulator.c | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) commit a65347ba6a4e07d276377a62b9b76ee64a277197 Author: Jani Nikula Date: Fri Nov 27 12:21:46 2015 +0200 drm/i915: add has_dsi_encoder to crtc state DSI has quite a few special cases, like DP, so add it to crtc state. This way we can get rid of a number of intel_pipe_has_type() checks for DSI. This isn't necessarily the prettiest way, but it's a step towards being aligned with what's being done with other encoders. Reviewed-by: Ville Syrjälä Reviewed-by: Daniel Vetter Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1448619706-21293-3-git-send-email-jani.nikula@intel.com drivers/gpu/drm/i915/intel_display.c | 49 ++++++++++++------------------------ drivers/gpu/drm/i915/intel_drv.h | 3 +++ drivers/gpu/drm/i915/intel_dsi.c | 8 ++++-- 3 files changed, 25 insertions(+), 35 deletions(-) commit 70656900ab5c33cc5aff4dd45ca42087cdeb464b Author: Jani Nikula Date: Fri Nov 27 12:21:45 2015 +0200 drm/i915: remove pre_pll_enable hook from DDI/gen9+ crtc enable The hook was added to cater for DSI, but with the hooks rearranged on the DSI encoder side, this is no longer needed. It was a bit silly anyway to have two hooks called back-to-back. Reviewed-by: Ville Syrjälä Reviewed-by: Daniel Vetter Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1448619706-21293-2-git-send-email-jani.nikula@intel.com drivers/gpu/drm/i915/intel_display.c | 2 -- 1 file changed, 2 deletions(-) commit e3488e75b6d4d6dd2e9f43b1e1cb4bc11131c89a Author: Jani Nikula Date: Fri Nov 27 12:21:44 2015 +0200 drm/i915/dsi: merge pre_pll_enable hook to pre_enable For DSI, the pre_pll_enable and the pre_enable hooks are called back-to-back on all platforms that support DSI. The distinction is artificial for DSI, for which we enable the DSI PLL in the encoder hooks. Do everything in pre_enable, and remove DSI pre_pll_enable hook. Reviewed-by: Ville Syrjälä Reviewed-by: Daniel Vetter Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1448619706-21293-1-git-send-email-jani.nikula@intel.com drivers/gpu/drm/i915/intel_dsi.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) commit e5241a8c4b22b678dd9b07527ba9f178f02e160e Author: Richard Fitzgerald Date: Wed Nov 25 13:00:24 2015 +0000 ALSA: compress: Pass id string to snd_compress_new Make snd_compress_new take an id string (like snd_pcm_new). This string can be included in the procfs info. This patch also updates soc_new_compress() to create an ID based on the stream and dai name, as done for PCM streams. Signed-off-by: Richard Fitzgerald Acked-by: Vinod Koul Signed-off-by: Takashi Iwai include/sound/compress_driver.h | 2 +- sound/core/compress_offload.c | 13 ++++++++++++- sound/soc/soc-compress.c | 8 +++++++- 3 files changed, 20 insertions(+), 3 deletions(-) commit 3174272474862c545d0cb7bf17b25a0f75800966 Author: Richard Fitzgerald Date: Wed Nov 25 13:00:23 2015 +0000 ALSA: compress: Add procfs info file for compressed nodes This patch implements a procfs info file for compr nodes when SND_VERBOSE_PROCFS is enabled. This is equivalent to what the PCM core already does for pcm nodes. Signed-off-by: Richard Fitzgerald Acked-by: Vinod Koul Signed-off-by: Takashi Iwai include/sound/compress_driver.h | 5 +++ sound/core/compress_offload.c | 73 ++++++++++++++++++++++++++++++++++++++++- 2 files changed, 77 insertions(+), 1 deletion(-) commit 5df29bca125277eec68fc31c0c0ba41b9a3cb78b Author: Julia Lawall Date: Sun Nov 29 18:25:24 2015 +0100 ALSA: i2c: constify snd_i2c_ops structures The snd_i2c_ops structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Takashi Iwai include/sound/i2c.h | 2 +- sound/i2c/i2c.c | 2 +- sound/pci/ice1712/delta.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit b17154cfd800b8fdbb34586b9d85e8e824a82833 Author: Julia Lawall Date: Sun Nov 29 16:36:40 2015 +0100 ALSA: pcm: constify action_ops structures The action_ops structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Reviewed-by: Takashi Sakamoto Tested-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/core/pcm_native.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit 0f73f3e85757091f40019b71077b41a717182b29 Author: Peter Ujfalusi Date: Fri Oct 30 10:00:37 2015 +0200 dmaengine: ti-dma-crossbar: dra7: Support for reserving DMA event ranges In eDMA the events are directly mapped to a DMA channel (for example DMA event 14 can only be handled by DMA channel 14). If the memcpy is enabled on the eDMA, there is a possibility that the crossbar driver would assign DMA event number already allocated in eDMA for memcpy. Furthermore the eDMA can be shared with DSP in which case the crossbar driver should also avoid mapping xbar events to DSP used event numbers (or channels). Signed-off-by: Peter Ujfalusi Signed-off-by: Vinod Koul .../devicetree/bindings/dma/ti-dma-crossbar.txt | 6 +++ drivers/dma/ti-dma-crossbar.c | 47 ++++++++++++++++++++-- 2 files changed, 49 insertions(+), 4 deletions(-) commit ec9bfa1e1a796ef7acc2e55917c9b8be5a79e70e Author: Peter Ujfalusi Date: Fri Oct 30 10:00:36 2015 +0200 dmaengine: ti-dma-crossbar: dra7: Use bitops instead of idr The use of idr was nice, but it was a bit heavy and we did not need the features it provides. Using simple bitmap to track allocated DMA channels is adequate here and it will be easier to add support for reserving channels later on. Signed-off-by: Peter Ujfalusi Signed-off-by: Vinod Koul drivers/dma/ti-dma-crossbar.c | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) commit 2adb2743b1c66766aac1c7f70f5101a72b229f93 Author: Peter Ujfalusi Date: Fri Oct 30 10:00:38 2015 +0200 dmaengine: ti-dma-crossbar: dra7: Support for eDMA with new bindings Allow the crossbar driver to be used with the eDMA node with non legacy binding. Signed-off-by: Peter Ujfalusi Signed-off-by: Vinod Koul drivers/dma/ti-dma-crossbar.c | 4 ++++ 1 file changed, 4 insertions(+) commit 32844138e31347fc0f61d3bf2d7b9c4583f189e3 Author: Arnd Bergmann Date: Wed Nov 18 16:21:17 2015 +0100 pinctrl: at91-pio4: use %pr format string for resource resource_size_t may be defined as 32 or 64 bit depending on configuration, so it cannot be printed using the normal format strings, as gcc correctly warns: pinctrl-at91-pio4.c: In function 'atmel_pinctrl_probe': pinctrl-at91-pio4.c:1003:41: warning: format '%u' expects argument of type 'unsigned int', but argument 5 has type 'resource_size_t {aka long long unsigned int}' [-Wformat=] dev_dbg(dev, "bank %i: hwirq=%u\n", i, res->start); This changes the format string to use the special "%pr" format string that prints a resource, and changes the arguments so we the resource structure directly. Signed-off-by: Arnd Bergmann Acked-by: Ludovic Desroches Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-at91-pio4.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 616043d58a89c0966e479a83f64ba8c0ab3e657e Author: Pramod Kumar Date: Thu Nov 19 09:22:19 2015 +0530 pinctrl: Rename gpio driver from cygnus to iproc Rename gpio driver file name from pinctrl-cygnus-gpio.c to pinctrl-iproc-gpio.c to make it more generic so that all iproc based future SoCs using the same gpio block could use this driver. Signed-off-by: Pramod Kumar Reviewed-by: Ray Jui Reviewed-by: Scott Branden Acked-by: Rob Herring Signed-off-by: Linus Walleij drivers/pinctrl/bcm/Kconfig | 30 +- drivers/pinctrl/bcm/Makefile | 2 +- drivers/pinctrl/bcm/pinctrl-cygnus-gpio.c | 759 ------------------------------ drivers/pinctrl/bcm/pinctrl-iproc-gpio.c | 758 +++++++++++++++++++++++++++++ 4 files changed, 781 insertions(+), 768 deletions(-) commit 604b25793b85a5ca2fc949b9b7202bb8a83ccb95 Author: Pramod Kumar Date: Thu Nov 19 09:22:18 2015 +0530 Documentation: Rename gpio controller name from cygnus to iproc Renamed gpio controller's driver name from cygnus to iproc to make it more generic so that all iProc based SoCs having the same gpio controller could use this. Signed-off-by: Pramod Kumar Reviewed-by: Ray Jui Reviewed-by: Scott Branden Acked-by: Rob Herring Signed-off-by: Linus Walleij .../bindings/pinctrl/brcm,cygnus-gpio.txt | 109 --------------------- .../bindings/pinctrl/brcm,iproc-gpio.txt | 109 +++++++++++++++++++++ 2 files changed, 109 insertions(+), 109 deletions(-) commit afc8c78d179d36b85b648dca865e56040afc5f2d Author: Pramod Kumar Date: Thu Nov 19 09:22:17 2015 +0530 gpio: Rename func/macro/var to IP-block,iproc Change functions, macros and variables name from cygnus to IP block, iproc, so that it could be used in all iproc based future SoCs having same GPIO controller block. Signed-off-by: Pramod Kumar Reviewed-by: Ray Jui Reviewed-by: Scott Branden Signed-off-by: Linus Walleij drivers/pinctrl/bcm/pinctrl-cygnus-gpio.c | 306 +++++++++++++++--------------- 1 file changed, 154 insertions(+), 152 deletions(-) commit 462de629942212d90e6c915eca3eaebb45b647a3 Author: Pramod Kumar Date: Thu Nov 19 09:22:16 2015 +0530 pinctrl: Add new compatible string to GPIO controller driver This compatible string should be used for all new iproc based future SoCs having the same GPIO controller hardware. Signed-off-by: Pramod Kumar Reviewed-by: Ray Jui Reviewed-by: Scott Branden Signed-off-by: Linus Walleij drivers/pinctrl/bcm/pinctrl-cygnus-gpio.c | 1 + 1 file changed, 1 insertion(+) commit e1aaaf3ff311ce03401965a38b33aceac4e51951 Author: Pramod Kumar Date: Thu Nov 19 09:22:15 2015 +0530 pinctrl: use ngpios propety from DT Since identical hardware is used in several instances and every instance will have different in-use pins. Hence extracting this number from DT via "ngpios" property. Signed-off-by: Pramod Kumar Reviewed-by: Ray Jui Reviewed-by: Scott Branden Signed-off-by: Linus Walleij drivers/pinctrl/bcm/pinctrl-cygnus-gpio.c | 45 +++++++------------------------ 1 file changed, 9 insertions(+), 36 deletions(-) commit 2652df631cbe9bd4bb0f3c9dcc284e0f099dbbf1 Author: Pramod Kumar Date: Thu Nov 19 09:22:13 2015 +0530 dt-binding: Add ngpios property to GPIO controller node Add ngpios property to the gpio controller's DT node so that controller driver extracts total number of in-use gpio lines from DT and removes dependency on driver. Signed-off-by: Pramod Kumar Reviewed-by: Ray Jui Reviewed-by: Scott Branden Acked-by: Rob Herring Signed-off-by: Linus Walleij Documentation/devicetree/bindings/pinctrl/brcm,cygnus-gpio.txt | 5 +++++ 1 file changed, 5 insertions(+) commit d9110e9ce7ed98b24fa58764833e89a430843c21 Author: Krzysztof Kozlowski Date: Thu Nov 19 12:57:11 2015 +0900 gpio: 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 Signed-off-by: Linus Walleij drivers/gpio/gpio-adnp.c | 1 - drivers/gpio/gpio-max7300.c | 1 - drivers/gpio/gpio-max732x.c | 1 - drivers/gpio/gpio-mc9s08dz60.c | 1 - drivers/gpio/gpio-pcf857x.c | 1 - drivers/gpio/gpio-sx150x.c | 1 - 6 files changed, 6 deletions(-) commit b13b8402523cb2717d4e9b9c39538b1fd48b29d5 Author: Namrta Salonie Date: Fri Nov 27 13:43:11 2015 +0530 drm/i915: Fix possible null dereference in framebuffer_info debugfs function Found by static code analysis tool. v2: Inserted block instead of goto & renamed variables (Chris) v3: Aligned code as per the opening brace (Chris) Rebased on top of nightly (Daniel) Signed-off-by: Namrta Salonie Signed-off-by: Deepak S Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 36 ++++++++++++++++-------------------- 1 file changed, 16 insertions(+), 20 deletions(-) commit 6753ba97e78bb0ed5c0ed35c21c1e2a31f7299a0 Author: Jyri Sarha Date: Fri Nov 27 16:14:01 2015 +0200 drm/atomic_helper: Add drm_atomic_helper_disable_planes_on_crtc() Add drm_atomic_helper_disable_planes_on_crtc() for disabling all planes associated with the given CRTC. This can be used for instance in the CRTC helper disable callback to disable all planes before shutting down the display pipeline. v2: - Address Daniels review comments [1] - Do atomic_begin() and atomic_flush() always if they are defined and atomic knob is set - update kerneldoc - Put drm_atomic_helper_disable_planes_on_crtc() after drm_atomic_helper_commit_planes_on_crtc() in drm_atomic_helper.c to have functions in the same order as in drm_atomic_helper.h Signed-off-by: Jyri Sarha Link: http://patchwork.freedesktop.org/patch/msgid/1448633641-6486-1-git-send-email-jsarha@ti.com Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic_helper.c | 43 +++++++++++++++++++++++++++++++++++++ include/drm/drm_atomic_helper.h | 2 ++ 2 files changed, 45 insertions(+) commit 1c1fb9b0c89a2506e556114c813a606bc1508d49 Author: Krzysztof Kozlowski Date: Wed Nov 25 13:09:43 2015 +0900 ARM: exynos_defconfig: Enable NFSv4 client NFS client is already enabled (NFS_FS) and by default it enables clients for version 2 and 3. Enable explicitly the version 4 client to utilize the newer protocol. The NFS client is especially useful for testing kernel in automated environments (network boot with network file system). Signed-off-by: Krzysztof Kozlowski Reviewed-by: Javier Martinez Canillas arch/arm/configs/exynos_defconfig | 1 + 1 file changed, 1 insertion(+) commit c52fd05a2ff2ad20e2a7056baf314c7d1d624ba9 Merge: 00cc367 6d808eb Author: David S. Miller Date: Sun Nov 29 22:32:32 2015 -0500 Merge tag 'wireless-drivers-next-for-davem-2015-11-25' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next Kalle Valo says: ==================== Add vendor directories (for example intel, marvell and so on) to drivers/net/wireless and change the menuconfig to follow the same categorisation. This unifies the directory layout as we already had few drivers already using vendor directories (especially ath and ti). ==================== Signed-off-by: David S. Miller commit 40fbe14b54bac16d5ec2fcf077b8aa54fb9de6b2 Author: Kuninori Morimoto Date: Fri Nov 27 01:04:41 2015 +0000 arm64: renesas: salvator-x: set ak4613 In/Out pin as single-end Signed-off-by: Kuninori Morimoto Signed-off-by: Simon Horman arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 9 +++++++++ 1 file changed, 9 insertions(+) commit c88402c2e63d0dc957d4748e249dfc40ec954086 Author: Bamvor Jian Zhang Date: Wed Nov 18 17:07:07 2015 +0800 gpiolib: make comment consistent with code Commit f4d566a8a0e6 ("gpio: change member .dev to .parent") changes member of gpiochip from .dev to .parent. Update the corresponding comment. Signed-off-by: Bamvor Jian Zhang Signed-off-by: Linus Walleij drivers/gpio/gpiolib.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit b04a23b05609b35365127ad8906c55866eb47fe7 Author: Hongzhou Yang Date: Tue Nov 17 14:33:41 2015 -0800 pinctrl: mediatek: fix a memleak when do dt maps. configs will kmemdup to dup_configs in pictrl util function. So configs need to be freed. Signed-off-by: Hongzhou Yang Reviewed-by: Daniel Kurtz Reviewed-by: Matthias Brugger Reviewed-by: Yingjoe Chen Signed-off-by: Linus Walleij drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) commit 2628b352c3d4905adf8129ea50900bd980b6ccef Author: Sheng Yang Date: Sat Nov 14 14:17:16 2015 -0800 tcm_loop: Show address of tpg in configfs In the past, the scsi_host's number wasn't shown anywhere, user have to depends on vpg_83 to find the block device, which is also depends on backstore implementation. It's better for tcm_loop to provide necessary straightforward information on locate the block device it created. This patch would help to locate the block device created by tcm_loop. The address would be shown at e.g. /sys/kernel/config/target/loopback/naa.60014059436855c1/tpgt_1/address which would looks like "2:0:1", and the lun number can be found at "/tpgt_1/lun/lun_0". Altogether they formated the scsi address of device as "2:0:1:0", which can be used to locate the device easily through 'lsscsi'. (Update to >= v4.4-rc1 configfs attribute usage - nab) Signed-off-by: Sheng Yang Signed-off-by: Nicholas Bellinger drivers/target/loopback/tcm_loop.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit d6b56b0bc68ba7927b286da86eda1d4d4dbe63f6 Author: Julia Lawall Date: Sat Nov 28 16:58:15 2015 +0100 x86/platform/calgary: Constify cal_chipset_ops structures The cal_chipset_ops structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Jon D. Mason Cc: Linus Torvalds Cc: Muli Ben-Yehuda Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1448726295-10959-1-git-send-email-Julia.Lawall@lip6.fr Signed-off-by: Ingo Molnar arch/x86/include/asm/calgary.h | 2 +- arch/x86/kernel/pci-calgary_64.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 5fbb15316fdd8f00143179ffb3a03f501c4b50dc Author: Jisheng Zhang Date: Mon Nov 16 19:37:49 2015 +0800 arm64: dts: berlin: PSCI-1.0 support The firmware can support PSCI-1.0 in fact. This change also enables suspend to ram on Marvell berlin arm64 SoC. Signed-off-by: Jisheng Zhang Signed-off-by: Sebastian Hesselbarth arch/arm64/boot/dts/marvell/berlin4ct.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d2318f3402539c15d89166b0863d9367a8f8d3bf Author: Jisheng Zhang Date: Mon Nov 16 19:09:50 2015 +0800 arm64: dts: berlin4ct: add watchdog nodes The Marvell Berlin BG4CT has 3 watchdogs which are compatible with the snps,dw-wdt driver sit in the sysmgr domain. This patch adds the corresponding device tree nodes. Signed-off-by: Jisheng Zhang Signed-off-by: Sebastian Hesselbarth arch/arm64/boot/dts/marvell/berlin4ct.dtsi | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit 4b6c390b63ee4b1c9a4c53885fea01c1c4e0d87b Author: Jisheng Zhang Date: Mon Nov 16 19:09:49 2015 +0800 arm: dts: berlin2: add watchdog nodes The Marvell Berlin BG2 has 3 watchdogs which are compatible with the snps,dw-wdt driver sit in the sysmgr domain. This patch adds the corresponding device tree nodes. Signed-off-by: Jisheng Zhang Signed-off-by: Sebastian Hesselbarth arch/arm/boot/dts/berlin2.dtsi | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit 096d74d7be2ed32f1d5904bb57caf60b1f10e713 Author: Jisheng Zhang Date: Mon Nov 16 19:09:48 2015 +0800 arm: dts: berlin2cd: add watchdog nodes The Marvell Berlin BG2CD has 3 watchdogs which are compatible with the snps,dw-wdt driver sit in the sysmgr domain. This patch adds the corresponding device tree nodes. NOTE: although BG2CD doesn't have a HW sysmgr, but the sysmgr domain exists. Signed-off-by: Jisheng Zhang Signed-off-by: Sebastian Hesselbarth arch/arm/boot/dts/berlin2cd.dtsi | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit a94eaa98d402d6337392c040fe29f5fa50e859db Author: Jisheng Zhang Date: Mon Nov 16 19:09:47 2015 +0800 arm: dts: berlin2q: add watchdog nodes The Marvell Berlin BG2Q has 3 watchdogs which are compatible with the snps,dw-wdt driver sit in the sysmgr domain. This patch adds the corresponding device tree nodes. Signed-off-by: Jisheng Zhang Signed-off-by: Sebastian Hesselbarth arch/arm/boot/dts/berlin2q.dtsi | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit ac675d0d586a2d96df58228c495b4005bc7bca7b Merge: 3f3b1a4 0bb9349 Author: Ingo Molnar Date: Sat Nov 28 10:49:10 2015 +0100 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 'perf list' segfault due to lack of support for PERF_CONF_SW_BPF_OUTPUT in an array used just for printing available events, robustify the code involved (Arnaldo Carvalho de Melo) - 'perf test unwind' should create kernel maps, now that entry works and the test passes (Jiri Olsa) - Fix showing the running kernel build id in 'perf buildid-list' (Michael Petlan) - Fix command line symbol filtering in 'perf report' (Namhyung Kim) Infrastructure changes: - Extract and collect map info from BPF object files in libbpf (Wang Nan) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 0bb93490170477224f8bd4cc9ce8920517461643 Author: Wang Nan Date: Fri Nov 27 08:47:37 2015 +0000 perf bpf: Rename bpf config to program config Following patches are going to introduce BPF object level configuration to enable setting values into BPF maps. To avoid confusion, this patch renames existing 'config' in bpf-loader.c to 'program config'. Following patches would introduce 'object config'. Signed-off-by: Wang Nan Cc: Alexei Starovoitov Cc: Masami Hiramatsu Cc: Namhyung Kim Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1448614067-197576-4-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/bpf-loader.c | 65 ++++++++++++++++++++++---------------------- tools/perf/util/bpf-loader.h | 2 +- 2 files changed, 33 insertions(+), 34 deletions(-) commit 561bbccac72d08babafaa33fd7fa9100ec4c9fb6 Author: Wang Nan Date: Fri Nov 27 08:47:36 2015 +0000 tools lib bpf: Extract and collect map names from BPF object file This patch collects name of maps in BPF object files and saves them into 'maps' field in 'struct bpf_object'. 'bpf_object__get_map_by_name' is introduced to retrive fd and definitions of a map through its name. Signed-off-by: He Kuang Cc: Alexei Starovoitov Cc: He Kuang Cc: Masami Hiramatsu Cc: Namhyung Kim Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1448614067-197576-3-git-send-email-wangnan0@huawei.com Signed-off-by: Wang Nan Signed-off-by: Arnaldo Carvalho de Melo tools/lib/bpf/libbpf.c | 65 +++++++++++++++++++++++++++++++++++++++++++++++--- tools/lib/bpf/libbpf.h | 3 +++ 2 files changed, 65 insertions(+), 3 deletions(-) commit 9d759a9b4ac2690077d8b21258e6e95c3e34bfa9 Author: Wang Nan Date: Fri Nov 27 08:47:35 2015 +0000 tools lib bpf: Collect map definition in bpf_object This patch collects more information from maps sections in BPF object files into 'struct bpf_object', enables later patches access those information (such as the type and size of the map). In this patch, a new handler 'struct bpf_map' is extracted in parallel with bpf_object and bpf_program. Its iterator and accessor is also created. Signed-off-by: Wang Nan Cc: Alexei Starovoitov Cc: Masami Hiramatsu Cc: Namhyung Kim Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1448614067-197576-2-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/lib/bpf/libbpf.c | 187 +++++++++++++++++++++++++++++++++---------------- tools/lib/bpf/libbpf.h | 21 ++++++ 2 files changed, 148 insertions(+), 60 deletions(-) commit 039050482573e168690d365b8ea1d4f599ebbbd8 Author: Namhyung Kim Date: Sat Nov 28 02:32:39 2015 +0900 perf hists browser: Update nr entries regardless of min percent When perf report on TUI was called with -S symbol filter, it should update nr entries even if min_pcnt is 0. IIRC the reason was to update nr entries after applying minimum percent threshold. But if symbol filter was given on command line (with -S option), it should use hists->nr_non_filtered_entries instead of hists->nr_entries. So this patch fixes a bug of navigating hists browser that the cursor goes beyond the number of entries when -S (or similar) option is used. Signed-off-by: Namhyung Kim Tested-by: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1448645559-31167-3-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/ui/browsers/hists.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit e72655d97d24fff559b4ab59de791c3741a74c8c Author: Namhyung Kim Date: Sat Nov 28 02:32:38 2015 +0900 perf hists: Do not skip elided fields when processing samples If user gives a filter, perf marks the corresponding column elided and omits the output. But it should process and aggregates samples using the field, otherwise samples will be aggregated as if the column was not there resulted in incorrect output. For example, I'd like to set a filter on native_write_msr_safe. The original overhead of the function is negligible. $ perf report | grep native_write_msr_safe 0.00% swapper [kernel.vmlinux] native_write_msr_safe 0.00% perf [kernel.vmlinux] native_write_msr_safe However adding -S option gives different output. $ perf report -S native_write_msr_safe --percentage absolute | \ > grep -e swapper -e perf 51.47% swapper [kernel.vmlinux] 4.14% perf [kernel.vmlinux] Since it aggregated samples using comm and dso only. In fact, the above values are same when it sorts with -s comm,dso. $ perf report -s comm,dso | grep -e swapper -e perf 51.47% swapper [kernel.vmlinux] 4.14% perf [kernel.vmlinux] This resulted in TUI failure with -ERANGE since it tries to increase sample hit count for annotation with wrong symbols due to incorrect aggregation. This patch fixes it not to skip elided fields when comparing samples in order to insert them to the hists. Commiter note: After the patch, with a different workloads: # perf report --show-total-period -S native_write_msr_safe --stdio # # symbol: native_write_msr_safe # # Samples: 455 of event 'cycles:pp' # Event count (approx.): 134787489 # # Overhead Period Command Shared Object # ........ ...... ............... ................ # 0.22% 293081 qemu-system-x86 [vmlinux] 0.19% 255914 swapper [vmlinux] 0.00% 2054 Timer [vmlinux] 0.00% 1021 firefox [vmlinux] 0.00% 2 perf [vmlinux] # perf report --show-total-period | grep native_write_msr_safe Failed to open /tmp/perf-14838.map, continuing without symbols 0.22% 293081 qemu-system-x86 [vmlinux] [k] native_write_msr_safe 0.19% 255914 swapper [vmlinux] [k] native_write_msr_safe 0.00% 2054 Timer [vmlinux] [k] native_write_msr_safe 0.00% 1021 firefox [vmlinux] [k] native_write_msr_safe 0.00% 2 perf [vmlinux] [k] native_write_msr_safe # Reported-by: Ingo Molnar Signed-off-by: Namhyung Kim Tested-by: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1448645559-31167-2-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/hist.c | 6 ------ 1 file changed, 6 deletions(-) commit 25b1606be1a910a63a23c3d1006581c9aad4e6e3 Author: Namhyung Kim Date: Sat Nov 28 02:32:37 2015 +0900 perf report: Show error message when processing sample fails Currently when perf fails to process samples for some reason, it doesn't show any message about the failure. This is very inconvenient for users especially on TUI as screen is reset after the failure. Reported-by: Ingo Molnar Signed-off-by: Namhyung Kim Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1448645559-31167-1-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-report.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit e37df6c76cb19971f1228bfaff504d8a3ea6f748 Author: Arnaldo Carvalho de Melo Date: Fri Nov 27 16:04:58 2015 -0300 perf list: Robustify event printing routine When a43eec304259 ("bpf: introduce bpf_perf_event_output() helper") added PERF_COUNT_SW_BPF_OUTPUT we ended up with a new entry in the event_symbols_sw array that wasn't initialized, thus set to NULL, fix print_symbol_events() to check for that case so that we don't crash if this happens again. (gdb) bt #0 __match_glob (ignore_space=false, pat=, str=) at util/string.c:198 #1 strglobmatch (str=, pat=pat@entry=0x7fffffffe61d "stall") at util/string.c:252 #2 0x00000000004993a5 in print_symbol_events (type=1, syms=0x872880 , max=11, name_only=false, event_glob=0x7fffffffe61d "stall") at util/parse-events.c:1615 #3 print_events (event_glob=event_glob@entry=0x7fffffffe61d "stall", name_only=false) at util/parse-events.c:1675 #4 0x000000000042c79e in cmd_list (argc=1, argv=0x7fffffffe390, prefix=) at builtin-list.c:68 #5 0x00000000004788a5 in run_builtin (p=p@entry=0x871758 , argc=argc@entry=2, argv=argv@entry=0x7fffffffe390) at perf.c:370 #6 0x0000000000420ab0 in handle_internal_command (argv=0x7fffffffe390, argc=2) at perf.c:429 #7 run_argv (argv=0x7fffffffe110, argcp=0x7fffffffe11c) at perf.c:473 #8 main (argc=2, argv=0x7fffffffe390) at perf.c:588 (gdb) p event_symbols_sw[PERF_COUNT_SW_BPF_OUTPUT] $4 = {symbol = 0x0, alias = 0x0} (gdb) A patch to robustify perf to not segfault when the next counter gets added in the kernel will follow this one. Reported-by: Ingo Molnar Cc: Adrian Hunter Cc: Alexei Starovoitov Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Wang Nan Link: http://lkml.kernel.org/n/tip-57wysblcjfrseb0zg5u7ek10@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/parse-events.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bae9cc41105b9edd74d68a9636be2ba240e74b9e Author: Arnaldo Carvalho de Melo Date: Fri Nov 27 15:54:33 2015 -0300 perf list: Add support for PERF_COUNT_SW_BPF_OUT When PERF_COUNT_SW_BPF_OUTPUT was added to the kernel we should've added it to tools/perf, where it is used just to list events. This ended up causing a segfault in commands like "perf list stall". Fix it by adding that new software counter. A patch to robustify perf to not segfault when the next counter gets added in the kernel will follow this one. Reported-by: Ingo Molnar Cc: Adrian Hunter Cc: Alexei Starovoitov Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Wang Nan Link: http://lkml.kernel.org/n/tip-uya354upi3eprsey6mi5962d@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/parse-events.c | 4 ++++ 1 file changed, 4 insertions(+) commit c2cb616129ba28a530eb286c1e9c5bf9da042924 Author: Zain Wang Date: Wed Nov 25 13:43:33 2015 +0800 ARM: dts: rockchip: Add Crypto node for rk3288 Add Crypto node for rk3288 including crypto controller and dma clk. Signed-off-by: Zain Wang Tested-by: Heiko Stuebner Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3288.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit bb41897e38c53458a88b271f2fbcd905ee1f9584 Author: Arnd Bergmann Date: Fri Nov 27 14:46:41 2015 +0100 regulator: core: fix regulator_lock_supply regression As noticed by Geert Uytterhoeven, my patch to avoid a harmless build warning in regulator_lock_supply() was total crap and introduced a real bug: > [ BUG: bad unlock balance detected! ] > kworker/u4:0/6 is trying to release lock (&rdev->mutex) at: > [] regulator_set_voltage+0x38/0x50 we still lock the regulator supplies, but not the actual regulators, so we are missing a lock, and the unlock is unbalanced. This rectifies it by first locking the regulator device itself before using the same loop as before to lock its supplies. Reported-by: Geert Uytterhoeven Signed-off-by: Arnd Bergmann Fixes: 716fec9d1965 ("[SUBMITTED] regulator: core: avoid unused variable warning") Signed-off-by: Mark Brown drivers/regulator/core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 9bdcede563a831f139b5fc872f028ef844a7462e Author: Jiri Olsa Date: Fri Nov 27 09:21:21 2015 +0100 perf test: 'unwind' test should create kernel maps The 'perf test unwind' is failing because it forgot to create the kernel maps, fix it. After the patch: # perf test unwind 40: Test dwarf unwind : Ok Reported-and-Tested-by: Arnaldo Carvalho de Melo Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Masami Hiramatsu Cc: Namhyung Kim Link: http://lkml.kernel.org/r/20151127082121.GA24503@krava.brq.redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/dwarf-unwind.c | 5 +++++ 1 file changed, 5 insertions(+) commit c4e079494f9258a3d2045779a3c9d6599c773dd9 Author: Michael Petlan Date: Fri Nov 27 14:48:09 2015 +0100 perf buildid-list: Show running kernel build id fix The --kernel option of perf buildid-list tool should show the running kernel buildid. The functionality has been lost during other changes of the related code. The build_id__sprintf() function should return length of the build-id string, but it was the length of the build-id raw data instead. Due to that, some return value checking caused that the final string was not printed out. With this patch the build_id__sprintf() returns the correct value, so the --kernel option works again. Before: # perf buildid-list --kernel # After: # perf buildid-list --kernel 972c1edab5bdc06cc224af45d510af662a3c6972 # Signed-off-by: Michael Petlan Cc: Jiri Olsa Cc: Masami Hiramatsu LPU-Reference: 1448632089.24573.114.camel@redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/build-id.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c012a79d0ce95bd8488a5a44cd8c00c275774518 Author: Alexander Kuleshov Date: Wed Nov 25 23:48:28 2015 +0600 crypto: cryptod - use crypto_skcipher_type() for getting skcipher type The provides inline function - crypto_skcipher_type(). Let's use it in the cryptd_alloc_ablkcipher() instead of direct calculation. Signed-off-by: Alexander Kuleshov Signed-off-by: Herbert Xu crypto/cryptd.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 433cd2c617bfbac27a02e40fbcce1713c84ce441 Author: Zain Wang Date: Wed Nov 25 13:43:32 2015 +0800 crypto: rockchip - add crypto driver for rk3288 Crypto driver support: ecb(aes) cbc(aes) ecb(des) cbc(des) ecb(des3_ede) cbc(des3_ede) You can alloc tags above in your case. And other algorithms and platforms will be added later on. Signed-off-by: Zain Wang Tested-by: Heiko Stuebner Signed-off-by: Herbert Xu drivers/crypto/Kconfig | 11 + drivers/crypto/Makefile | 1 + drivers/crypto/rockchip/Makefile | 3 + drivers/crypto/rockchip/rk3288_crypto.c | 393 ++++++++++++++++ drivers/crypto/rockchip/rk3288_crypto.h | 216 +++++++++ drivers/crypto/rockchip/rk3288_crypto_ablkcipher.c | 503 +++++++++++++++++++++ 6 files changed, 1127 insertions(+) commit e81c1b4646149c1e67610c83e8770a7217491a13 Author: Zain Wang Date: Wed Nov 25 13:43:30 2015 +0800 crypto: rockchip - add DT bindings documentation Add DT bindings documentation for the rk3288 crypto drivers. Signed-off-by: Zain Wang Acked-by: Rob Herring Tested-by: Heiko Stuebner Signed-off-by: Herbert Xu .../devicetree/bindings/crypto/rockchip-crypto.txt | 29 ++++++++++++++++++++++ 1 file changed, 29 insertions(+) commit 3fb42daaf11c4be8e0626b733916f3a7b65bcfae Merge: efdbe3c 06a691e Author: Takashi Iwai Date: Fri Nov 27 13:41:11 2015 +0100 Merge branch 'for-linus' into for-next commit 5342dff23263933060d0485cece864f36c0b5d32 Author: Kuninori Morimoto Date: Thu Nov 26 11:13:40 2015 +0000 ASoC: rsnd: tidyup semantics of rsnd_ssi_record_error() rsnd_ssi_record_error() should recorde error, but it clears error too. this patch fixes up semantic of rsnd_ssi_record_error that it records error but doesn't clear error. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/ssi.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 8cc225f713a42eab098d51a4353998db979f0f8a Author: Kuninori Morimoto Date: Thu Nov 26 11:11:03 2015 +0000 ASoC: rsnd: tidyup semantics of rsnd_src_record_error() rsnd_src_error_record() should recorde error, but it clears error too. this patch fixes up semantic of rsnd_src_error_record that it records error but doesn't clear error. And this patch renames rsnd_src_error_clear() to rsnd_src_status_clear() rsnd_src_error_record() to rsnd_src_record_error() Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/src.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit 0719ecf7cb86cb7b6012baa0b329063d67dca670 Author: Kuninori Morimoto Date: Thu Nov 26 08:43:59 2015 +0000 ASoC: rsnd: indicate register name for debug Current rsnd driver is indicating how to use regmap debug method on gen.c comment area. regmap debug method indicates address and value, but rsnd driver is using too many IPs (SSI/SSIU/SRC/CTU/MIX/DVC/CMD), and address. Thus, we would like to know more useful information for debugging. This patch indicates address name for debugging. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/gen.c | 52 +++++++++++++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 21 deletions(-) commit eaea7d27129b9b493c3029608486c157827a92ce Author: Milo Kim Date: Thu Nov 26 15:57:00 2015 +0900 regulator: lm363x: add LM363x regulator binding information This binding describes LM3631 and LM3632 regulator properties. Signed-off-by: Milo Kim Signed-off-by: Mark Brown .../bindings/regulator/lm363x-regulator.txt | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) commit 3a8d1a73a037e1bf099dbbd477e017607bc3dc20 Author: Milo Kim Date: Thu Nov 26 15:57:05 2015 +0900 regulator: add LM363X driver LM363X regulator driver supports LM3631 and LM3632. LM3631 has 5 regulators. LM3632 provides 3 regulators. One boost output and LDOs are used for the display module. Boost voltage is configurable but always on. Supported operations for LDOs are enabled/disabled and voltage change. Two LDOs of LM3632 can be controlled by external pins. Those are configured through the DT properties. Signed-off-by: Milo Kim Signed-off-by: Mark Brown drivers/regulator/Kconfig | 9 + drivers/regulator/Makefile | 1 + drivers/regulator/lm363x-regulator.c | 309 +++++++++++++++++++++++++++++++++++ 3 files changed, 319 insertions(+) commit 04d1300fd3f5c070a9abe391860d29dfcda89c87 Author: Charles Keepax Date: Thu Nov 26 14:01:52 2015 +0000 ASoC: wm_adsp: Expand the list of available firmwares Expand the list of available firmware names to include a good selection of generic uses for the DSP cores. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm_adsp.c | 49 +++++++++++++++++++++++++++++++++------------- 1 file changed, 35 insertions(+), 14 deletions(-) commit e49a449b869afb2b8bf282427c8355bc3a2fad56 Author: Rasmus Villemoes Date: Fri Nov 13 15:18:31 2015 +0100 x86/fpu: Put a few variables in .init.data These are clearly just used during init. Signed-off-by: Rasmus Villemoes Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Quentin Casasnovas Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1447424312-26400-1-git-send-email-linux@rasmusvillemoes.dk Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/init.c | 4 ++-- arch/x86/kernel/fpu/xstate.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit 419123f900dac58fb27ce5285b21074f5300095a Author: Martin Schwidefsky Date: Thu Nov 19 11:09:45 2015 +0100 s390/spinlock: do not yield to a CPU in udelay/mdelay It does not make sense to try to relinquish the time slice with diag 0x9c to a CPU in a state that does not allow to schedule the CPU. The scenario where this can happen is a CPU waiting in udelay/mdelay while holding a spin-lock. Add a CIF bit to tag a CPU in enabled wait and use it to detect that the yield of a CPU will not be successful and skip the diagnose call. Reviewed-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/include/asm/processor.h | 12 ++++++++++++ arch/s390/kernel/entry.S | 2 ++ arch/s390/lib/spinlock.c | 25 +++++++++++++++++-------- 3 files changed, 31 insertions(+), 8 deletions(-) commit c6f70d3b8a32fdec60d3f78cb59423f056f16688 Author: Jochen Schweflinghaus Date: Thu Nov 26 19:13:01 2015 +0100 s390/sclp: add open for business support Provide a user space interface and an enhancement to the sclp device driver which allows to send an 'Open for Business' event from the operating system to the Support Element. The 'Open for Business' event is used to signal the Support Element that the operating system (or an application running on top of it) is up and running. Signed-off-by: Jochen Schweflinghaus Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky drivers/s390/char/Kconfig | 8 ++++ drivers/s390/char/sclp_config.c | 102 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 109 insertions(+), 1 deletion(-) commit 9eb31be33cf84266abd61de0f6d3d1fe609587cf Author: Heiko Carstens Date: Thu Nov 26 09:25:35 2015 +0100 s390: remove is_32bit_task() helper is_32bit_task() used to be helpful when we still had CONFIG_32BIT. Since that is gone, it is nowadays identical to is_compat_task(). So remove it. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/include/asm/compat.h | 2 +- arch/s390/include/asm/elf.h | 9 +++++---- arch/s390/include/asm/thread_info.h | 2 -- 3 files changed, 6 insertions(+), 7 deletions(-) commit b8eecf36a47bc5e9569f513a3888d03d82985fbb Author: Michael Holzheu Date: Wed Nov 25 11:54:36 2015 +0100 s390: add 'install' target to 'make help' Signed-off-by: Michael Holzheu Signed-off-by: Martin Schwidefsky arch/s390/Makefile | 4 ++++ 1 file changed, 4 insertions(+) commit 3f975df69dba78834471b7133dcb8c8ddf7f986a Author: Sascha Silbe Date: Tue Nov 24 16:28:55 2015 +0100 s390/sclp: Add VT220 support to early sclp console When running under qemu with the default configuration (-nographic), there is only a VT220 SCLP console, no line-mode SCLP console. Add VT220 support to the early SCLP console so the user has a chance to see critical error messages during early boot. None of the existing users of _sclp_print_early() check the return code. Instead of trying to come up with return code semantics when printing to multiple consoles (any or all of which may fail), we just drop the return code entirely. Tested on z/VM (line mode console) and LPAR (VT220 and line mode console). Tested on qemu/KVM with VT220 console and / or line mode console. Signed-off-by: Sascha Silbe Reviewed-by: Peter Oberparleiter Signed-off-by: Martin Schwidefsky arch/s390/include/asm/sclp.h | 2 +- arch/s390/kernel/sclp.c | 65 ++++++++++++++++++++++++++++++++++---------- 2 files changed, 51 insertions(+), 16 deletions(-) commit 561e103002696a17907ac5bbccec551e32de3b7f Author: Christian Borntraeger Date: Wed Nov 18 17:00:10 2015 +0100 s390/dis: Fix printing of the register numbers Since commit b006f19b055f ("lib/vsprintf.c: handle invalid format specifiers more robustly") I get errors like [...] Krnl Code: 00000000004e2410: c00400000000 brcl 0,4e2410 Please remove unsupported %r in format string [ 8.179483] ------------[ cut here ]------------ [ 8.179484] WARNING: at lib/vsprintf.c:1781 Turns out that our disassembler relied on %r not being used as format string. Let's do the proper escaping of our decode buffers. Signed-off-by: Christian Borntraeger Signed-off-by: Martin Schwidefsky arch/s390/kernel/dis.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 155eeb66d2d1e58c8d4d58d47d8f8b02263d508d Author: Hendrik Brueckner Date: Wed Nov 4 09:01:34 2015 +0100 s390/sclp_cpi: remove sclp_cpi module in favor of sysfs interface Since commit c05ffc4f2b20 ("[S390] sclp: sysfs interface for SCLP cpi"), which was made 2008 the user can specify a system and sysplex name through the /sys/firmware/cpi interface. In addition to sysplex and system name, the user can also override the system type and system version. Because the syfs interface is easier to use and allows the settings to be updated, the sclp_cpi module becomes obsolete and can be removed. Signed-off-by: Hendrik Brueckner Acked-by: Christian Borntraeger Acked-by: Heiko Carstens Signed-off-by: Martin Schwidefsky drivers/s390/char/Kconfig | 13 ------------- drivers/s390/char/Makefile | 1 - drivers/s390/char/sclp_cpi.c | 40 ---------------------------------------- 3 files changed, 54 deletions(-) commit a6e975c5f8fd8652fc5ab754236ec155a228d452 Author: Markus Elfring Date: Mon Nov 16 14:45:40 2015 +0100 s390: Delete unnecessary checks before the function call "debug_unregister" The debug_unregister() function performs also input parameter validation. Thus the test around the calls is not needed. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky drivers/s390/cio/chsc_sch.c | 3 +-- drivers/s390/cio/cio.c | 9 +++------ drivers/s390/cio/qdio_debug.c | 6 ++---- drivers/s390/crypto/zcrypt_api.c | 6 ++---- 4 files changed, 8 insertions(+), 16 deletions(-) commit 69eea95c48857c9dfcac120d6acea43027627b28 Author: Gerald Schaefer Date: Mon Nov 16 14:35:48 2015 +0100 s390/pci_dma: fix DMA table corruption with > 4 TB main memory DMA addresses returned from map_page() are calculated by using an iommu bitmap plus a start_dma offset. The size of this bitmap is based on the main memory size. If we have more than (4 TB - start_dma) main memory, the DMA address calculation will also produce addresses > 4 TB. Such addresses cannot be inserted in the 3-level DMA page table, instead the entries modulo 4 TB will be overwritten. Fix this by restricting the iommu bitmap size to (4 TB - start_dma). Also set zdev->end_dma to the actual end address of the usable range, instead of the theoretical maximum as reported by the hardware, which fixes a sanity check in dma_map() and also the IOMMU API domain geometry aperture calculation. Signed-off-by: Gerald Schaefer Reviewed-by: Sebastian Ott Signed-off-by: Martin Schwidefsky arch/s390/include/asm/pci_dma.h | 2 ++ arch/s390/pci/pci.c | 3 +-- arch/s390/pci/pci_dma.c | 19 ++++++++++++++----- 3 files changed, 17 insertions(+), 7 deletions(-) commit 406123517b5b3cd5855774f80d685cf393c950f6 Author: David Hildenbrand Date: Thu Oct 15 10:47:18 2015 +0200 s390: get_user_pages_fast() might sleep Let's annotate it correctly, so we directly get a warning if we ever were to use it in atomic/preempt_disable/spinlock environment. Acked-by: Heiko Carstens Signed-off-by: David Hildenbrand Signed-off-by: Martin Schwidefsky arch/s390/mm/gup.c | 1 + 1 file changed, 1 insertion(+) commit db1c45154a82195ad0b4d45d0e330ebac6883b70 Author: Martin Schwidefsky Date: Thu Nov 12 12:51:17 2015 +0100 s390/spinlock: avoid diagnose loop The spinlock implementation calls the diagnose 0x9c / 0x44 immediately if the SIGP sense running reported the target CPU as not running. The diagnose 0x9c is a hint to the hypervisor to schedule the target CPU in preference to the source CPU that issued the diagnose. It can happen that on return from the diagnose the target CPU has not been scheduled yet, e.g. if the target logical CPU is on another physical CPU and the hypervisor did not want to migrate the logical CPU. Avoid the immediate repeat of the diagnose instruction, instead do the retry loop before the next invocation of diagnose 0x9c. Reviewed-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/lib/spinlock.c | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) commit 1a2c5840acf9f657c9b580d4ee12a4c9db3429cb Author: Martin Schwidefsky Date: Thu Oct 29 10:59:15 2015 +0100 s390/dump: cleanup CPU save area handling Introduce save_area_alloc(), save_area_boot_cpu(), save_area_add_regs() and save_area_add_vxrs to deal with storing the CPU state in case of a system dump. Remove struct save_area and save_area_ext, and create a new struct save_area as a local definition to arch/s390/kernel/crash_dump.c. Copy each individual field from the hardware status area to the save area, storing the minimum of required data. Signed-off-by: Martin Schwidefsky arch/s390/include/asm/ipl.h | 11 +- arch/s390/include/asm/lowcore.h | 21 ---- arch/s390/kernel/crash_dump.c | 263 ++++++++++++++++++---------------------- arch/s390/kernel/smp.c | 37 +++--- drivers/s390/char/zcore.c | 11 +- 5 files changed, 145 insertions(+), 198 deletions(-) commit 1a36a39e225d3558fb3776a3d3d7736cf1ec9f60 Author: Martin Schwidefsky Date: Thu Oct 29 10:28:26 2015 +0100 s390/dump: rework CPU register dump code To collect the CPU registers of the crashed system allocated a single page with memblock_alloc_base and use it as a copy buffer. Replace the stop-and-store-status sigp with a store-status-at-address sigp in smp_save_dump_cpus() and smp_store_status(). In both cases the target CPU is already stopped and store-status-at-address avoids the detour via the absolute zero page. For kexec simplify s390_reset_system and call store_status() before the prefix register of the boot CPU has been set to zero. Use STPX to store the prefix register and remove dump_prefix_page. Acked-by: Michael Holzheu Signed-off-by: Martin Schwidefsky arch/s390/include/asm/fpu/internal.h | 10 +--- arch/s390/include/asm/ipl.h | 3 +- arch/s390/include/asm/reset.h | 3 +- arch/s390/include/asm/smp.h | 2 +- arch/s390/kernel/early.c | 9 +++ arch/s390/kernel/ipl.c | 17 +----- arch/s390/kernel/machine_kexec.c | 104 ++++++++++++++++++-------------- arch/s390/kernel/reipl.S | 37 ++++++------ arch/s390/kernel/setup.c | 2 + arch/s390/kernel/smp.c | 112 +++++++++++++++++++---------------- drivers/s390/char/zcore.c | 2 - drivers/s390/cio/cio.c | 2 +- 12 files changed, 158 insertions(+), 145 deletions(-) commit f08b8414632c9f256e33f0a18104d8d5e103d204 Author: Martin Schwidefsky Date: Fri Oct 23 09:05:38 2015 +0200 s390/dump: remove SAVE_AREA_BASE Replace the SAVE_AREA_BASE offset calculations in reipl.S with the assembler constant for the location of each register status area. Use __LC_FPREGS_SAVE_AREA instead of SAVE_AREA_BASE in the three remaining code locations and remove the definition of SAVE_AREA_BASE. Acked-by: Michael Holzheu Signed-off-by: Martin Schwidefsky arch/s390/kernel/asm-offsets.c | 1 - arch/s390/kernel/machine_kexec.c | 6 ++-- arch/s390/kernel/reipl.S | 65 ++++++++++++++++++++++------------------ arch/s390/kernel/smp.c | 4 +-- drivers/s390/char/zcore.c | 2 +- 5 files changed, 42 insertions(+), 36 deletions(-) commit d9a3a09af54d01ab8b0c320580f4f95328d4a7ac Author: Martin Schwidefsky Date: Fri Oct 23 09:02:32 2015 +0200 s390/kvm: remove dependency on struct save_area definition Replace the offsets based on the struct area_area with the offset constants from asm-offsets.c based on the struct _lowcore. Signed-off-by: Martin Schwidefsky arch/s390/kernel/asm-offsets.c | 1 + arch/s390/kvm/kvm-s390.c | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 15 deletions(-) commit 019d6bec6d2842729c477f433b2330e9f52c0f1a Author: Martin Schwidefsky Date: Mon Oct 12 10:51:54 2015 +0200 s390/zcore: simplify memcpy_hsa Replace the three part copy logic int memcpy_hsa with a single loop around sclp_sdias_copy with appropriate offset and size calculations, and inline memcpy_hsa into memcpy_hsa_user and memcpy_hsa_kernel. Acked-by: Michael Holzheu Signed-off-by: Martin Schwidefsky drivers/s390/char/zcore.c | 101 +++++++++++++++------------------------------- 1 file changed, 33 insertions(+), 68 deletions(-) commit df9694c7975ff9976368eb381388c61f65352aef Author: Martin Schwidefsky Date: Mon Oct 12 10:43:37 2015 +0200 s390/dump: streamline oldmem copy functions Introduce two copy functions for the memory of the dumped system, copy_oldmem_kernel() to copy to the virtual kernel address space and copy_oldmem_user() to copy to user space. Acked-by: Michael Holzheu Signed-off-by: Martin Schwidefsky arch/s390/include/asm/os_info.h | 2 +- arch/s390/include/asm/sclp.h | 3 +- arch/s390/kernel/crash_dump.c | 171 +++++++++++++++++++--------------------- arch/s390/kernel/os_info.c | 7 +- arch/s390/kernel/smp.c | 4 +- drivers/s390/char/zcore.c | 20 ++++- 6 files changed, 105 insertions(+), 102 deletions(-) commit 8a07dd02d7615d91d65d6235f7232e3f9b5d347f Author: Martin Schwidefsky Date: Wed Oct 14 15:53:06 2015 +0200 s390/kdump: remove code to create ELF notes in the crashed system The s390 architecture can store the CPU registers of the crashed system after the kdump kernel has been started and this is the preferred way. Remove the remaining code fragments that deal with storing CPU registers while the crashed system is still active. Acked-by: Michael Holzheu Signed-off-by: Martin Schwidefsky arch/s390/include/asm/elf.h | 2 -- arch/s390/kernel/crash_dump.c | 24 +++-------------------- arch/s390/kernel/machine_kexec.c | 42 +++++++++++++++++----------------------- arch/s390/kernel/setup.c | 15 +++++--------- arch/s390/kernel/smp.c | 8 ++------ 5 files changed, 28 insertions(+), 63 deletions(-) commit ffa52d02c50ea31420dc70869c0b6b439e7cb5ef Author: Martin Schwidefsky Date: Wed Oct 28 09:47:58 2015 +0100 s390/zcore: remove /sys/kernel/debug/zcore/mem New versions of the SCSI dumper use the /dev/vmcore interface instead of zcore mem. Remove the outdated interface. Acked-by: Michael Holzheu Signed-off-by: Martin Schwidefsky Documentation/s390/zfcpdump.txt | 22 +-- arch/s390/include/asm/lowcore.h | 1 - drivers/s390/char/Makefile | 4 +- drivers/s390/char/zcore.c | 394 +--------------------------------------- 4 files changed, 18 insertions(+), 403 deletions(-) commit bbfed511c262db4d046a35f0389d98645124814f Author: Martin Schwidefsky Date: Thu Oct 15 11:14:19 2015 +0200 s390/zcore: copy vector registers into the image data The /sys/kernel/debug/zcore/mem interface delivers the memory of the old system with the CPU registers stored to the assigned locations in each prefix page. For the vector registers the prefix page of each CPU has an address of a 1024 byte save area at 0x11b0. But the /sys/kernel/debug/zcore/mem interface fails copy the vector registers saved at boot of the zfcpdump kernel into the dump image. Copy the saved vector registers of a CPU to the outout buffer if the memory area that is read via /sys/kernel/debug/zcore/mem intersects with the vector register save area of this CPU. Acked-by: Michael Holzheu Signed-off-by: Martin Schwidefsky arch/s390/include/asm/lowcore.h | 1 + drivers/s390/char/zcore.c | 70 +++++++++++++++++++++++++++++++---------- 2 files changed, 55 insertions(+), 16 deletions(-) commit 4c5b03b60762bbe6b129b648e845f7faa5933f61 Author: Martin Schwidefsky Date: Fri Oct 9 13:36:40 2015 +0200 s390/zcore: remove invalid kfree in init_cpu_info The extended save area for the boot CPU has been allocated by smp_save_dump_cpus() with memblock_alloc() and may not be freed with kfree(). Signed-off-by: Martin Schwidefsky drivers/s390/char/zcore.c | 1 - 1 file changed, 1 deletion(-) commit 3f3b1a46bfdbce97dd3f9594d8a95db82baa554b Merge: a95a49f 43798bf Author: Ingo Molnar Date: Fri Nov 27 08:28:44 2015 +0100 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 'vmlinux.debug' to the vmlinux search path (Ekaterina Tumanova) - Do not show sample_(type|period) in the perf_event_attr dump when using -v with 'perf stat' (Jiri Olsa) - Display the WEIGHT sample bit, when set, in 'perf evlist -v' (Jiri Olsa) - Honour --hide-unresolved in 'report', will honour it as well in 'top' when --hide-unresolved gets supported in that tool (Namhyung Kim) - Fix freeze wit h--call-graph 'flat/folded' due to not properly reinitializing the callchain rb_tree (Namhyumg Kim) - Set dso->long_name when a module name is passed as a parameter to tools like 'perf probe' but the 'struct dso' associated to that module still doesn't have the full path for the module, just the '[name]' one obtained from /proc/modules (Wang Nan) - Fix anon_hugepage mmaps detection using scanf on /proc/PID/smaps (Yannick Brosseau) Infrastructure changes: - Add helper function for updating bpf maps elements (He Kuang) - Fix traceevents plugins build race (Jiri Olsa) - Add the $OUTPUT path prefix with 'fixdep' (Jiri Olsa) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 5f01e6bc3336c27b9553494214f05ac439dbeb37 Author: Saurabh Sengar Date: Wed Nov 25 23:31:11 2015 +0530 extcon: rt8973: Add IRQF_ONESHOT to interrupt flags This patch adds IRQF_ONESHOT if no primary handler is provided for request threaded irq. Signed-off-by: Saurabh Sengar Signed-off-by: Chanwoo Choi drivers/extcon/extcon-rt8973a.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 92529623d242cea4440958d7bcebdf291f4ab15e Author: Rasmus Villemoes Date: Tue Nov 24 13:33:47 2015 +0100 HID: debug: improve hid_debug_event() The code in hid_debug_event() causes horrible code generation. First, we do a strlen() call for every byte we copy (we're doing a store to global memory, so gcc has no way of proving that strlen(buf) doesn't change). Second, since both i, list->tail and HID_DEBUG_BUFSIZE have signed type, the modulo computation has to take into account the possibility that list->tail+i is negative, so it's not just a simple and. Fix the former by simply not doing strlen() at all (we have to load buf[i] anyway, so testing it is almost free) and the latter by changing i to unsigned. This cuts 29% (69 bytes) of the size of the function. Signed-off-by: Rasmus Villemoes Signed-off-by: Jiri Kosina drivers/hid/hid-debug.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 43798bf37215fe242e592fd4605d804e2da0781b Author: He Kuang Date: Tue Nov 24 13:36:08 2015 +0000 bpf tools: Add helper function for updating bpf maps elements Add bpf_map_update_elem() helper function which calls the sys_bpf syscall to update elements in bpf maps. Upcoming patches will use it to adjust data in map through the perf command line. Signed-off-by: He Kuang Cc: Alexei Starovoitov Cc: Masami Hiramatsu Cc: Namhyung Kim Cc: Wang Nan Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1448372181-151723-4-git-send-email-wangnan0@huawei.com Signed-off-by: Wang Nan Signed-off-by: Arnaldo Carvalho de Melo tools/lib/bpf/bpf.c | 14 ++++++++++++++ tools/lib/bpf/bpf.h | 2 ++ 2 files changed, 16 insertions(+) commit dcdd184b60c3943fb678dcbaf899a26f845901ad Author: Jiri Olsa Date: Wed Nov 25 16:36:55 2015 +0100 perf evlist: Display WEIGHT sample type bit Adding WIEGHT bit_name call to display sample_type properly. $ perf evlist -v cpu/mem-loads/pp: ...SNIP... sample_type: IP|TID|TIME|ADDR|ID|CPU|DATA_SRC|WEIGHT ... Signed-off-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1448465815-27404-2-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evsel.c | 1 + 1 file changed, 1 insertion(+) commit de5315ce36463141b6d3743bec890e93443ebcb2 Author: Michal Marek Date: Thu Nov 26 14:48:54 2015 +0100 ath10k: Fix build with CONFIG_THERMAL=m After commit cf4f21938e13 ("kbuild: Allow to specify composite modules with modname-m"), thermal.c gets included in the driver and the build fails with drivers/net/wireless/ath/ath10k/thermal.c:119:6: error: redefinition of ‘ath10k_thermal_event_temperature’ drivers/net/wireless/ath/ath10k/thermal.h:54:20: note: previous definition of ‘ath10k_thermal_event_temperature’ was here drivers/net/wireless/ath/ath10k/thermal.c:136:6: error: redefinition of ‘ath10k_thermal_set_throttling’ drivers/net/wireless/ath/ath10k/thermal.h:59:20: note: previous definition of ‘ath10k_thermal_set_throttling’ was here drivers/net/wireless/ath/ath10k/thermal.c:162:5: error: redefinition of ‘ath10k_thermal_register’ drivers/net/wireless/ath/ath10k/thermal.h:45:19: note: previous definition of ‘ath10k_thermal_register’ was here drivers/net/wireless/ath/ath10k/thermal.c:216:6: error: redefinition of ‘ath10k_thermal_unregister’ drivers/net/wireless/ath/ath10k/thermal.h:50:20: note: previous definition of ‘ath10k_thermal_unregister’ was here Change the #ifdef to reflect the new kbuild behavior. Reported-by: kbuild test robot Acked-by: Kalle Valo Signed-off-by: Michal Marek drivers/net/wireless/ath/ath10k/thermal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6acd8e9271cdeaec458fd4eec4a6765d16e0e61c Author: Jiri Olsa Date: Wed Nov 25 16:36:54 2015 +0100 perf stat: Clear sample_(type|period) for counting Clear sample_(type|period) for counting, as it only confuses debug output with unwanted sampling details: Before: $ sudo perf stat -e 'raw_syscalls:sys_enter' -vv ls ------------------------------------------------------------ perf_event_attr: type 2 size 112 config 0x11 { sample_period, sample_freq } 1 sample_type TIME|CPU|PERIOD|RAW read_format TOTAL_TIME_ENABLED|TOTAL_TIME_RUNNING disabled 1 inherit 1 enable_on_exec 1 exclude_guest 1 ... After: $ sudo perf stat -e 'raw_syscalls:sys_enter' -vv ls ------------------------------------------------------------ perf_event_attr: type 2 size 112 config 0x11 read_format TOTAL_TIME_ENABLED|TOTAL_TIME_RUNNING disabled 1 inherit 1 enable_on_exec 1 exclude_guest 1 ... Signed-off-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1448465815-27404-1-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 7 +++++++ 1 file changed, 7 insertions(+) commit f55ae9540d16a355e61cb57b035aab9e1ae2da28 Author: Ekaterina Tumanova Date: Wed Nov 25 17:32:46 2015 +0100 perf symbols: Add the path to vmlinux.debug Currently when debuginfo is separated to vmlinux.debug, it's contents get ignored. Let's change that and add it to the vmlinux_path list. Signed-off-by: Ekaterina Tumanova Acked-by: Alexander Yarygin Acked-by: Jiri Olsa Cc: Adrian Hunter Cc: Christian Borntraeger Cc: David Ahern Cc: Namhyung Kim Cc: Naveen N. Rao Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/1448469166-61363-3-git-send-email-tumanova@linux.vnet.ibm.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/symbol.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit aac4864727f4b3838ec1c03277bbc47a237b7516 Author: Ekaterina Tumanova Date: Wed Nov 25 17:32:45 2015 +0100 perf symbols: Refactor vmlinux_path__init() to ease path additions Refactor vmlinux_path__init() to ease subsequent additions of new vmlinux locations. Signed-off-by: Ekaterina Tumanova Acked-by: Alexander Yarygin Acked-by: Jiri Olsa Cc: Adrian Hunter Cc: Christian Borntraeger Cc: David Ahern Cc: Namhyung Kim Cc: Naveen N. Rao Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/1448469166-61363-2-git-send-email-tumanova@linux.vnet.ibm.com [ Rename vmlinux_path__update() to vmlinux_path__add() ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/symbol.c | 64 +++++++++++++++++++++++++----------------------- 1 file changed, 33 insertions(+), 31 deletions(-) commit 5e50426d5d9049dfdb8b2b18e761717e7e80a6ad Author: Jiri Olsa Date: Thu Nov 26 19:50:55 2015 +0100 tools build: Use fixdep with OUTPUT path prefix Adding OUTPUT path prefix for fixdep target so we use it properly in out of tree builds. If the fixdep already existed in the tree, the out of tree build would see it already exist and did not build the out of tree version, as reported by Arnaldo: [acme@zoo linux]$ make O=/tmp/build/perf -C tools/perf make: Entering directory '/home/git/linux/tools/perf' BUILD: Doing 'make -j4' parallel build make[2]: Nothing to be done for 'fixdep'. make: Leaving directory '/home/git/linux/tools/perf' Reported-and-Tested-by: Arnaldo Carvalho de Melo Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/20151126185055.GC19410@krava.brq.redhat.com [ Fixed conflict with 5725dd8fa888 ("tools build: Clean CFLAGS and LDFLAGS for fixdep") ] Signed-off-by: Arnaldo Carvalho de Melo tools/build/Makefile | 2 +- tools/build/Makefile.include | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 809e9423d7bc72e50d94d8267bab010a007a6137 Author: Jiri Olsa Date: Thu Nov 26 18:55:21 2015 +0100 perf script: Pass perf_script into process_event Passing perf_script struct into process_event function, so we could process configuration data for event printing. It will be used in following patch to get event name string width. Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20151126175521.GA18979@krava.brq.redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-script.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) commit b2be5451f660e0ee230969cc24121d9e210a91de Author: Yannick Brosseau Date: Thu Nov 26 03:42:32 2015 -0800 perf tools: Correctly identify anon_hugepage when generating map (v2) When parsing /proc/xxx/maps, the sscanf in perf_event__synthesize_mmap_events truncate the map name at the space in "/anon_hugepage (deleted)". is_anon_memory() then only receives the string "/anon_hugepage" and does not detect it. We change is_anon_memory() to only compare the first part of the string, effectively ignoring if " (deleted)" is there. Signed-off-by: Yannick Brosseau Tested-by: Arnaldo Carvalho de Melo Cc: Andi Kleen Cc: Joshua Zhu Cc: kernel-team@fb.com Link: http://lkml.kernel.org/r/1448538152-2898-1-git-send-email-scientist@fb.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/map.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 81fd874e55035ea15144c00452fe4bbbc666bd64 Author: Ville Syrjälä Date: Wed Nov 25 16:21:30 2015 +0200 drm/i915: Fix kerneldoc indent fails Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1448461290-12333-1-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Daniel Vetter drivers/gpu/drm/i915/i915_guc_submission.c | 2 +- drivers/gpu/drm/i915/i915_irq.c | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) commit 013d37520af735fd55f78e33edf55cc6fb3858eb Author: Ville Syrjälä Date: Mon Nov 23 18:06:17 2015 +0200 drm/i915: Introduce bdw_{update,enable,disable}_pipe_irq() Pull the BDW+ DE pipe interrupt mask frobbing into a central place, like we have for other platforms. v2: Fix the kerneldoc (Daniel) Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1448294777-13722-4-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 14 ++++++++++ drivers/gpu/drm/i915/i915_irq.c | 41 +++++++++++++++++++++++++----- drivers/gpu/drm/i915/intel_fifo_underrun.c | 8 ++---- 3 files changed, 51 insertions(+), 12 deletions(-) commit fbdedaeaa7e43f3cf57617b713926eade2535202 Author: Ville Syrjälä Date: Mon Nov 23 18:06:16 2015 +0200 drm/i915: Make ironlake_{enable,disable}_display_irq() static inlines ironlake_{enable,disable}_display_irq() each just call ilk_update_display_irq() so let's make them static inlines. While at it s/ironlake/ilk/ to make things shorter, and a bit more consistent with the ibx functions. Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1448294777-13722-3-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 17 +++++++++++++---- drivers/gpu/drm/i915/i915_irq.c | 24 ++++++------------------ drivers/gpu/drm/i915/intel_fifo_underrun.c | 8 ++++---- 3 files changed, 23 insertions(+), 26 deletions(-) commit 144432618e4f9f3d24eaa9de0a1b6a5bee00989e Author: Ville Syrjälä Date: Mon Nov 23 18:06:15 2015 +0200 drm/i915: Make ibx_{enable,disable}_display_interrupt() static inlines No reason why ibx_{enable,disable}_display_interrupt() couldn't be static inlines instead of cpp macros. Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1448294777-13722-2-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit c03d5184f0e92fa696e4b57f54ffc3b19a92f704 Author: Wang Nan Date: Thu Nov 26 03:59:57 2015 +0000 perf machine: Adjust dso->long_name for offline module Something unexpected may happen if copy statically linked perf to a production environment: # ./perf probe -m ./mymodule.ko my_func [mymodule] with build id 326ab42550ef3d24944f53c817533728367effeb not found, continuing without symbols Failed to find symbol my_func in /home/wangnan/kmodule/mymodule.ko Error: Failed to add events. # ./perf buildid-cache -a ./mymodule.ko # ./perf probe -m ./mymodule.ko my_func Added new event: probe:my_func (on my_func in /home/wangnan/kmodule/mymodule.ko) You can now use it in all perf tools, such as: perf record -e probe:my_func -aR sleep 1 Where: # ldd ./perf not a dynamic executable # strace -e open ./perf probe -m ./mymodule.ko my_func ... open("/home/wangnan/kmodule/mymodule.ko", O_RDONLY) = 3 open("/home/wangnan/kmodule/../lib64/elfutils/libebl_x86_64.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) ... open("/lib64/tls/libebl_x86_64.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/lib64/libebl_x86_64.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/usr/lib64/tls/libebl_x86_64.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/usr/lib64/libebl_x86_64.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("[mymodule]", O_RDONLY) = -1 ENOENT (No such file or directory) open("/home/wangnan/.debug/.build-id/32/6ab42550ef3d24944f53c817533728367effeb", O_RDONLY) = -1 ENOENT (No such file or directory) open("[mymodule]", O_RDONLY) = -1 ENOENT (No such file or directory) In the above example, probe fails before we put the module into buildid-cache. However, user would expect it success in both case because perf is able to find probe points actually. The reason is because perf won't utilize module's full path if it failed to open debuginfo. In: convert_to_probe_trace_events -> find_probe_trace_events_from_map -> get_target_map -> kernel_get_module_map -> machine__findnew_module_map -> map_groups__find_by_name map_groups__find_by_name() is able to find the map of that module, but this information is found from /proc/module before it knows the real path of the offline module. Therefore, the map->dso->long_name is set to something like '[mymodule]', which prevent dso__load() find the real path of the module file. In another aspect, if dso__load() can get the offline module through buildid cache, it can read symble table from that ko. Even if debuginfo is not available, 'perf probe' can success if the '.symtab' can be found. This patch improves machine__findnew_module_map(): when dso->long_name is leading with '[' (doesn't find path of module when parsing /proc/modules), fixes it by dso__set_long_name(), so following dso__load() is possible to find the symbol table. This patch won't interfere with buildid matching. Here is the test result: # ./perf probe -m ./mymodule.ko my_func Added new event: probe:my_func (on my_func in /home/wangnan/kmodule/mymodule.ko) You can now use it in all perf tools, such as: perf record -e probe:my_func -aR sleep 1 # ./perf probe -d '*' Removed event: probe:my_func # mv ./mymodule.{ko,.bak} # mv ./moduleb.ko mymodule.ko # ./perf probe -m ./mymodule.ko my_func /home/wangnan/kmodule/mymodule.ko with build id 326ab42550ef3d24944f53c817533728367effeb not found, continuing without symbols Failed to find symbol my_func in /home/wangnan/kmodule/mymodule.ko Error: Failed to add events. # ./perf probe -v -m ./mymodule.ko my_func probe-definition(0): my_func symbol:my_func file:(null) line:0 offset:0 return:0 lazy:(null) 0 arguments Could not open debuginfo. Try to use symbols. symsrc__init: build id mismatch for /home/wangnan/kmodule/mymodule.ko. /home/wangnan/kmodule/mymodule.ko with build id 326ab42550ef3d24944f53c817533728367effeb not found, continuing without symbols Failed to find symbol my_func in /home/wangnan/kmodule/mymodule.ko Error: Failed to add events. Reason: No such file or directory (Code: -2) Signed-off-by: Wang Nan Cc: Masami Hiramatsu Cc: Namhyung Kim Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1448510397-187965-1-git-send-email-wangnan0@huawei.com [ Renamed adjust_dso_long_name() do dso__adjust_kmod_long_name() ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/machine.c | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) commit 67befc652845c8ffbefc8d173a6e6ced14d472f1 Author: Jiri Olsa Date: Thu Nov 26 14:54:04 2015 +0100 perf build: Fix traceevent plugins build race Ingo reported following build failure: $ make clean install ... CC plugin_kmem.o fixdep: error opening depfile: ./.plugin_hrtimer.o.d: No such file or directory /home/mingo/tip/tools/build/Makefile.build:77: recipe for target 'plugin_hrtimer.o' failed make[3]: *** [plugin_hrtimer.o] Error 2 Makefile:189: recipe for target 'plugin_hrtimer-in.o' failed make[2]: *** [plugin_hrtimer-in.o] Error 2 Makefile.perf:414: recipe for target 'libtraceevent_plugins' failed make[1]: *** [libtraceevent_plugins] Error 2 make[1]: *** Waiting for unfinished jobs.... Currently we have the install-traceevent-plugins target being dependent on $(LIBTRACEEVENT), which will actualy not build any plugin. So the install-traceevent-plugins target itself will try to build plugins, but.. Plugins built is also triggered by perf build itself via libtraceevent_plugins target. This might cause a race having one make thread removing temp files from another and result in above error. Fixing this by having proper plugins build dependency before installing plugins. Reported-and-Tested-by:: Ingo Molnar Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1448546044-28973-3-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Makefile.perf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2aaecfc51bc65532152e141df3268fda06cae029 Author: Jiri Olsa Date: Thu Nov 26 14:55:23 2015 +0100 perf script: Remove default_scripting_ops The default script handler (the one that displays samples on screen) is implemented scripting_ops instance with process_event callback. This way we can't pass any script config into display function, because we don't want perl or python handlers to be depended on perf script internals. Removing the default_scripting_ops and calling process event function directly. This way it's possible to pass perf_script struct and process configuration data in following commit. Signed-off-by: Jiri Olsa Acked-by: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1448546125-29245-1-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-script.c | 43 +++++++------------------------------------ 1 file changed, 7 insertions(+), 36 deletions(-) commit 0356218a68551f051998f4fb5074a1eed7a346fe Author: Namhyung Kim Date: Thu Nov 26 16:08:18 2015 +0900 perf top: Fix freeze on --call-graph flat/folded The callchain rbtree is rebuilt periodically, so it needs to reinitialize the root everytime. Otherwise it can be stuck in the rbtree insertion with stale pointers. Signed-off-by: Namhyung Kim Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Kan Liang Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/1448521700-32062-1-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/callchain.c | 1 + 1 file changed, 1 insertion(+) commit b49a8fe52626814968b9a9d27d7ad1cadc5532ed Author: Namhyung Kim Date: Thu Nov 26 16:08:20 2015 +0900 perf callchain: Honor hide_unresolved If user requested to hide unresolved entries, skip unresolved callchains as well as hist entries. Signed-off-by: Namhyung Kim Acked-by: Jiri Olsa Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Kan Liang Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/1448521700-32062-3-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-report.c | 7 +++---- tools/perf/util/machine.c | 5 +++++ tools/perf/util/symbol.h | 3 ++- 3 files changed, 10 insertions(+), 5 deletions(-) commit 6f7306622ff4e6b6d59efa77383e0cd9d85f46b0 Author: Luca Coelho Date: Mon Oct 26 13:43:12 2015 +0200 iwlwifi: mvm: remove unnecessary check in iwl_mvm_is_d0i3_supported() The d0i3_mode element is never set to IWL_D0I3_OFF, so it's not necessary to check it in iwl_mvm_is_d0i3_supported(). Signed-off-by: Luca Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit eb3908d3718455e9fcb0d52b391a2851900d7e27 Author: Luca Coelho Date: Fri Oct 2 18:13:10 2015 +0300 iwlwifi: mvm: flush all used TX queues before suspending There is a potential race condition when entering suspend with d0i3 in PCIe. If there is a frame queued just before we suspend, it won't complete and we will never clear the queue stuck timer. To solve this, call TX_PATH_FLUSH to flush all queues (except the command queue) as part of the d0i3 entry process. Add a new function that returns all the flushable queues. Signed-off-by: Luca Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 9 +++++++++ drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 5 +++++ 2 files changed, 14 insertions(+) commit 1a616dd2f17161b296aab46ee5a464ae3bf734ce Author: Golan Ben-Ami Date: Wed Oct 21 16:15:38 2015 +0300 iwlwifi: dump prph registers in a common place for all transports Currently the prph registers dump is in the transport layer, and each bus needs an additional dump implementation. Move the prph dump outside transport, and allow a common implementation for all of the buses. This is possible because prph base addresses are similar for all buses. Signed-off-by: Golan Ben-Ami Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 155 +++++++++++++++++++++- drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 149 --------------------- 2 files changed, 154 insertions(+), 150 deletions(-) commit 14ef1b433e8f1336e14105f430a6e614ae86646f Author: Golan Ben-Ami Date: Wed Oct 21 15:16:58 2015 +0300 iwlwifi: export the _no_grab version of PRPH IO functions Expose _no_grab prph i/o functions that allow performing i/o outside the transport, without requiring grab and release NIC access for each operation. In addition, rename the functions so they reflect their non-grabbing behavior. This can be very useful for consecutive prph i/o operation that occur outside trans, such as fw dumps. Signed-off-by: Golan Ben-Ami Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/iwl-io.c | 25 +++++++++++++++---------- drivers/net/wireless/intel/iwlwifi/iwl-io.h | 4 ++-- drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 13 +++++++------ 3 files changed, 24 insertions(+), 18 deletions(-) commit 1412ee39afaba8806cf6a631ee7347319ca5ae8a Author: Eyal Shapira Date: Thu Oct 22 13:10:36 2015 +0300 iwlwifi: mvm: drop low_latency_agg_frame_cnt_limit This was an old workaround for solving latency issues with certain Miracast adapters like ActionTec. However this isn't needed anymore and furthermore it hurts throughput in other use cases. Signed-off-by: Eyal Shapira Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c | 4 ---- drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 2 -- drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 1 - drivers/net/wireless/intel/iwlwifi/mvm/rs.c | 8 +------- 4 files changed, 1 insertion(+), 14 deletions(-) commit 566f165d28760580690d7244c1150357264f9593 Author: Luca Coelho Date: Sun Oct 25 22:55:32 2015 +0200 iwlwifi: mvm: remove stray nd_config element When the netdetect debugfs entry was removed, the nd_config element was accidentally left in the iwl_mvm structure. Remove it. Fixes: dbb04b0d29f8 ("iwlwifi: mvm: remove netdetect debugfs entry") Reported-by: Emmanuel Grumbach Signed-off-by: Luca Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 4 ++-- drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 1 - drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 6 ------ 3 files changed, 2 insertions(+), 9 deletions(-) commit 48f0a038d0da461bc6030eef2d6cad316d36aba3 Author: Moshe Harel Date: Mon Oct 26 11:33:49 2015 +0200 iwlwifi: mvm: add bt rrc and ttc to debugfs As part of the bt_notif file add fields that are currently not represented Signed-off-by: Moshe Harel Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit c725a46bc76e694453230ebb83cd14ade1b16f6c Author: Moshe Harel Date: Tue Oct 27 14:04:12 2015 +0200 iwlwifi: mvm: add bt settings to debugfs Add mplut and sync2sco and corunning to debugfs. Signed-off-by: Moshe Harel Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 5053e299aedaadcdc2aff7eaca847d1ee6fdeb54 Author: Luca Coelho Date: Thu Sep 17 21:55:24 2015 +0300 iwlwifi: mvm: remove redundant d0i3 flag from the config struct The d0i3 flag in the device configuration structure is redundant, because the same information can be determined by checking the firmware capability flag. Signed-off-by: Luca Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/iwl-8000.c | 1 - drivers/net/wireless/intel/iwlwifi/iwl-config.h | 2 -- drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 9 ++++----- 3 files changed, 4 insertions(+), 8 deletions(-) commit 1e8f1329aa6767dfd29e319ab81ff3aa0a5bef49 Author: Golan Ben-Ami Date: Sun Aug 23 17:57:33 2015 +0300 iwlwifi: mvm: add trigger for firmware dump upon TDLS events This will allow to catch different TDLS events and get the firmware data when they occur. Add empty TX_LATENCY trigger on the way to avoid mismatch with trees in which this trigger is implemented. Signed-off-by: Golan Ben-Ami Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 2 ++ .../net/wireless/intel/iwlwifi/iwl-fw-error-dump.h | 5 +++ drivers/net/wireless/intel/iwlwifi/iwl-fw-file.h | 13 +++++++ drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 42 ++++++++++++++++++++-- 4 files changed, 60 insertions(+), 2 deletions(-) commit 4707fde5cdefc73c408915af2579c4acaf49ade4 Author: Johannes Berg Date: Tue Sep 22 12:24:31 2015 +0200 iwlwifi: mvm: use build-time assertion for fw trigger ID The firmware debug trigger ID is always a compile-time constant, so we can use a build-time assertion to validate that it is in fact a valid constant. To make that really guaranteed to work, convert this and the inline function iwl_fw_dbg_trigger_simple_stop() to macros. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/iwl-fw.h | 11 +++++++---- drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 15 ++++++++------- 2 files changed, 15 insertions(+), 11 deletions(-) commit 59fd4bf64591fbd02c6115d9282e2e7cffefa6e1 Author: Emmanuel Grumbach Date: Sun Nov 1 13:06:37 2015 +0200 iwlwifi: mvm: change name of iwl_mvm_d3_update_gtk This function updates the pairwise keys as well. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit b2c5d3a89fe4ec47bf5567220326d7b3b06fd514 Author: Luca Coelho Date: Fri Sep 18 14:37:46 2015 +0300 iwlwifi: generalize d0i3_entry_timeout module parameter The PCIe transport will also need a d0i3_entry_timeout_ms parameter, so move the existing one from the slave transports to iwlwifi, so it can be reused. While at it, rename the parameter to something shorter, namely d0i3_entry_delay. Signed-off-by: Luca Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 5 +++++ drivers/net/wireless/intel/iwlwifi/iwl-modparams.h | 3 +++ 2 files changed, 8 insertions(+) commit 13fb01d8155207f34dcfbf36d51faf93506c72fe Author: Johannes Berg Date: Fri Nov 6 11:26:26 2015 +0100 iwlwifi: pcie: remove ICT allocation message This message isn't very useful and presents a security risk due to the use of %p - remove it. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 4 ---- 1 file changed, 4 deletions(-) commit 9a57f650d0c95b827cb795e69d824accda045a9d Author: Matti Gottlieb Date: Mon Nov 2 13:01:54 2015 +0200 iwlwifi: mvm: check FW's response for nvm access write cmd In case of using an external NVM file, the driver sends to the FW the different nvm sections. In the response of the cmd, the FW states the status of the writing of the chunk. Currently the value is not checked by the driver. Check FW's response for writing the nvm chunk in the NVM_ACCESS_CMD. Signed-off-by: Matti Gottlieb Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/nvm.c | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) commit 72a3356885d13c4dd0b41034b931e3d5a0f807cc Author: Luca Coelho Date: Fri Nov 6 10:57:11 2015 +0200 iwlwifi: mvm: ignore LMAC scan notifications when running UMAC scans If the firmware sends LMAC scan notifications while a UMAC scan is running, just WARN and ignore it, otherwise the scanning state gets messed up. Signed-off-by: Luca Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 7 +++++++ 1 file changed, 7 insertions(+) commit e7c2e1fdcd2f3f6387a252320cf23a907eb4a2bb Author: Avri Altman Date: Thu Oct 29 16:50:57 2015 +0200 iwlwifi: mvm: Enable MPLUT only on supported hw When there's a bt-wifi contention that requires arbitration, we use a priority-based mechanism to decide which comm wins. Over time, use cases become more and more complex, with multiple concurrent active links with different traffic types and different QoS requirements, on both WiFi and BT sides. This, in turn, requires us to elaborate our prioritization mechanism. However, our legacy products included hw that does not supports this, so selectively enable this on specific hw - as signaled by the firmware. Signed-off-by: Avri Altman Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/iwl-fw-file.h | 2 ++ drivers/net/wireless/intel/iwlwifi/mvm/coex.c | 5 +---- drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 7 +++++++ 3 files changed, 10 insertions(+), 4 deletions(-) commit b9de521f2da2602a7649d58bc81ed5325f1291f7 Author: Johannes Berg Date: Fri Nov 6 12:00:36 2015 +0100 iwlwifi: dvm: remove stray debug code This code was needed during initial PAN bringup, but now is just cruft - remove it. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/dvm/mac80211.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit f9d716443f44238b43559cdd6ba2473560efa44c Author: Avraham Stern Date: Tue Nov 10 14:56:24 2015 +0200 iwlwifi: mvm: Configure fragmented scan for scheduled scan Configure the FW to use fragmented scan when the traffic load is high or low latency traffic is on. This is useful for scans that are managed by the FW (e.g. scheduled scan). Signed-off-by: Avraham Stern Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 1 + drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) commit 85e5a3876393484361db8ae8d43b1bc27b8ad9c2 Author: Johannes Berg Date: Thu Nov 12 16:16:01 2015 +0100 iwlwifi: trans: make various conversion macros inlines Make the various conversion functions typesafe, so we don't accidentally try to call them with the wrong pointers and cast them to something that will crash. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/pcie/internal.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit d29cb66463810614abf81dd80d75da59c1e4fd07 Author: Johannes Berg Date: Fri Nov 13 10:57:56 2015 +0100 iwlwifi: dvm: remove Kconfig default The split of iwlwifi into DVM and MVM was a long time ago now, so we can remove the "default IWLWIFI" that we had to keep all existing .config files with working defaults during the split. This is no longer necessary, practically nobody should now be upgrading a .config that's older than the split. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6c4fbcbc1c954d61711e3761a05283e980a6106e Author: Emmanuel Grumbach Date: Tue Nov 10 11:57:41 2015 +0200 iwlwifi: add support for 12K Receive Buffers 802.11ac allows A-MSDU that can be up to 12KB long. Since an entire A-MSDU needs to fit into one single Receive Buffer (RB), add support for big RBs. Since this adds lots of pressure to the memory manager and significantly increase the true_size of the RX buffers, don't enable this by default. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/dvm/main.c | 16 +++++++++++++++- drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 4 ++-- .../net/wireless/intel/iwlwifi/iwl-eeprom-parse.c | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-modparams.h | 10 ++++++++-- drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c | 13 ++++++++++++- drivers/net/wireless/intel/iwlwifi/iwl-trans.h | 20 ++++++++++++++++++-- drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 16 +++++++++++++++- drivers/net/wireless/intel/iwlwifi/pcie/internal.h | 4 ++-- drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 16 +++++++++++++--- drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 8 +++----- 10 files changed, 89 insertions(+), 20 deletions(-) commit 7d1620451d4994d767bdcb23907209b21603d185 Author: Johannes Berg Date: Thu Sep 17 15:54:47 2015 +0200 iwlwifi: nvm: fix up phy section when reading it This is a workaround to an OTP bug. In Series 8000 1x1, the OTP 0xA052 defines 2x2 antenna configuration. This workaround overrides the decision based on HW id and on MIMO disabled bit which is correct in the OTP and set to disabled. This fixes the previous workaround "force 1x1 antenna in Series 8000". Signed-off-by: Moshe Harel Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c | 15 +----------- drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.h | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/nvm.c | 27 +++++++++++++++++++--- 3 files changed, 26 insertions(+), 18 deletions(-) commit 4615fd1551334ae5ce8e118a58d697d61f1c7d58 Merge: 6d808eb 9513c5e Author: Emmanuel Grumbach Date: Thu Nov 26 16:38:24 2015 +0200 Merge remote-tracking branch 'iwlwifi-fixes/master' into next commit bb11c6c96544737aede6a2eb92e5c6bc8b46534b Author: Takuya Yoshikawa Date: Thu Nov 26 21:16:35 2015 +0900 KVM: x86: MMU: Remove unused parameter parent_pte from kvm_mmu_get_page() Signed-off-by: Takuya Yoshikawa Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 20 +++++++------------- arch/x86/kvm/paging_tmpl.h | 4 ++-- 2 files changed, 9 insertions(+), 15 deletions(-) commit 74c4e63ab9b550b47ca2eb192e52d6c8971e2f31 Author: Takuya Yoshikawa Date: Thu Nov 26 21:15:38 2015 +0900 KVM: x86: MMU: Use for_each_rmap_spte macro instead of pte_list_walk() As kvm_mmu_get_page() was changed so that every parent pointer would not get into the sp->parent_ptes chain before the entry pointed to by it was set properly, we can use the for_each_rmap_spte macro instead of pte_list_walk(). Signed-off-by: Takuya Yoshikawa Cc: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 27 ++++++--------------------- 1 file changed, 6 insertions(+), 21 deletions(-) commit 98bba238429e200521594ed30dd1edad7faa0081 Author: Takuya Yoshikawa Date: Thu Nov 26 21:14:34 2015 +0900 KVM: x86: MMU: Move parent_pte handling from kvm_mmu_get_page() to link_shadow_page() Every time kvm_mmu_get_page() is called with a non-NULL parent_pte argument, link_shadow_page() follows that to set the parent entry so that the new mapping will point to the returned page table. Moving parent_pte handling there allows to clean up the code because parent_pte is passed to kvm_mmu_get_page() just for mark_unsync() and mmu_page_add_parent_pte(). In addition, the patch avoids calling mark_unsync() for other parents in the sp->parent_ptes chain than the newly added parent_pte, because they have been there since before the current page fault handling started. Signed-off-by: Takuya Yoshikawa Cc: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 23 +++++++++-------------- arch/x86/kvm/paging_tmpl.h | 6 ++---- 2 files changed, 11 insertions(+), 18 deletions(-) commit 820da7ae46332fa709b171eb7ba57cbd023fa6df Author: Jani Nikula Date: Wed Nov 25 16:47:23 2015 +0200 Revert "drm/i915: shut up gen8+ SDE irq dmesg noise" This reverts commit 97e5ed1111dcc5300a0f59a55248cd243937a8ab Author: Daniel Vetter Date: Fri Oct 23 10:56:12 2015 +0200 drm/i915: shut up gen8+ SDE irq dmesg noise With the proper fix ("drm/i915: fix the SDE irq dmesg warnings properly") reliably in place, bring back the error message. Cc: Daniel Vetter Reviewed-by: Ville Syrjälä Acked-by: Daniel Vetter Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1448462843-32739-2-git-send-email-jani.nikula@intel.com drivers/gpu/drm/i915/i915_irq.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit 6a39d7c986be4fd18eb019e9cdbf774ec36c9f77 Author: Jani Nikula Date: Wed Nov 25 16:47:22 2015 +0200 drm/i915: fix the SDE irq dmesg warnings properly We had the "The master control interrupt lied (SDE)!" check and error message in place for a long time without any problems, until commit aaf5ec2e51ab1d9c5e962b4728a1107ed3ff7a3e Author: Sonika Jindal Date: Wed Jul 8 17:07:47 2015 +0530 drm/i915: Handle HPD when it has actually occurred caused the errors to start happening. This was bisected and reported, but the error message was silenced in commit 97e5ed1111dcc5300a0f59a55248cd243937a8ab Author: Daniel Vetter Date: Fri Oct 23 10:56:12 2015 +0200 drm/i915: shut up gen8+ SDE irq dmesg noise shooting the messenger while the debugging for why Sonika's commit triggered the errors was still in progress. It looks like we need to read and acknowledge the PCH_PORT_HOTPLUG register even though the hotplug trigger indicates there isn't a hotplug irq to handle. The PCH doesn't seem to really ack the the interrupt to the CPU unless we touch the hotplug register. Cc: Ville Syrjälä Cc: Sonika Jindal Cc: Daniel Vetter Reviewed-by: Ville Syrjälä Acked-by: Daniel Vetter Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92084 Fixes: aaf5ec2e51ab ("drm/i915: Handle HPD when it has actually occurred") [Jani: added a comment and amended the commit message while applying] Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1448462843-32739-1-git-send-email-jani.nikula@intel.com drivers/gpu/drm/i915/i915_irq.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) commit 9b2c0b7fb4ce79566d830d03ce7aa11cccc39f97 Author: Chris Wilson Date: Wed Nov 25 14:39:03 2015 +0000 drm: Serialise multiple event readers The previous patch reintroduced a race condition whereby a failure in one reader may allow a second reader to see out-of-order events. Introduce a mutex to serialise readers so that an event is completed in its entirety before another reader may process an event. The two readers may race against each other, but the events each retrieves are in the correct order. Signed-off-by: Chris Wilson Cc: Thomas Hellstrom Cc: Takashi Iwai Cc: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1448462343-2072-2-git-send-email-chris@chris-wilson.co.uk Reviewed-by: Thomas Hellstrom Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_fops.c | 18 +++++++++++++----- include/drm/drmP.h | 2 ++ 2 files changed, 15 insertions(+), 5 deletions(-) commit 83eb64c85b80959549c114365016276f318afeb2 Author: Chris Wilson Date: Wed Nov 25 14:39:02 2015 +0000 drm: Drop dev->event_lock spinlock around faulting copy_to_user() In commit cdd1cf799bd24ac0a4184549601ae302267301c5 Author: Chris Wilson Date: Thu Dec 4 21:03:25 2014 +0000 drm: Make drm_read() more robust against multithreaded races I fixed the races by serialising the use of the event by extending the dev->event_lock. However, as Thomas pointed out, the copy_to_user() may fault (even the __copy_to_user_inatomic() variant used here) and calling into the driver backend with the spinlock held is bad news. Therefore we have to drop the spinlock before the copy, but that exposes us to the old race whereby a second reader could see an out-of-order event (as the first reader may claim the first request but fail to copy it back to userspace and so on returning it to the event list it will be behind the current event being copied by the second reader). Reported-by: Thomas Hellstrom Signed-off-by: Chris Wilson Cc: Thomas Hellstrom Cc: Takashi Iwai Cc: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1448462343-2072-1-git-send-email-chris@chris-wilson.co.uk Reviewed-by: Thomas Hellstrom Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_fops.c | 40 ++++++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 16 deletions(-) commit 25a84db15b3f3a24d3ea7d2baf90693bcff34b0c Author: Allen Hung Date: Fri Nov 20 18:21:06 2015 +0800 HID: multitouch: enable palm rejection if device implements confidence usage The usage Confidence is mandary to Windows Precision Touchpad devices. The appearance of this usage is checked in hidinput_connect but the quirk MT_QUIRK_VALID_IS_CONFIDENCE is not applied to device accordingly. Apply this quirk and also remove quirk MT_QUIRK_ALWAYS_VALID to enable palm rejection for the WIN 8 touchpad devices which have implemented usage Confidence in its input reports. Tested on Dell XPS 13 laptop. Signed-off-by: Allen Hung Reviewed-by: Benjamin Tissoires Signed-off-by: Jiri Kosina drivers/hid/hid-multitouch.c | 5 +++++ 1 file changed, 5 insertions(+) commit 39bfcd5235e07e95ad3e70eab8e0b85db181de9e Author: Gerd Hoffmann Date: Thu Nov 26 12:03:51 2015 +0100 drm/i915: more virtual south bridge detection Commit "30c964a drm/i915: Detect virtual south bridge" detects and handles the southbridge emulated by vmware esx. Add the ich9 south bridge emulated by 'qemu -M q35'. Signed-off-by: Gerd Hoffmann Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.c | 3 ++- drivers/gpu/drm/i915/i915_drv.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) commit e34217c0c21b5643b0e7ba7c64fc7b4e104ce9ab Author: Borislav Petkov Date: Thu Nov 26 14:12:56 2015 +0100 EDAC: Remove references to bluesmoke.sourceforge.net This site is archaic and should be consulted for historical reasons only. Move it to the documentation file. Reviewed-by: Johannes Thumshirn Signed-off-by: Borislav Petkov Documentation/edac.txt | 10 +++++++--- MAINTAINERS | 19 ------------------- 2 files changed, 7 insertions(+), 22 deletions(-) commit 89ae54baabdb31e9ee3b4d2b20e17fcdca08a1b2 Author: Magnus Damm Date: Tue Nov 17 12:53:20 2015 +0900 iommu/ipmmu-vmsa: Include SoC part number in DT binding docs Add part numbers for APE6 and current set of R-Car Gen2 SoCs to the IPMMU DT binding documentation. The example is also updated to show how the generic compatible string may be used as fallback. Signed-off-by: Magnus Damm Acked-by: Simon Horman Acked-by: Rob Herring Signed-off-by: Joerg Roedel .../devicetree/bindings/iommu/renesas,ipmmu-vmsa.txt | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 7cd75787820c3d3bf1ced20d3f2542a018b160c7 Author: Sebastian Ott Date: Fri Nov 6 17:26:24 2015 +0100 iommu/s390: Fix sparse warnings Fix these warnings: CHECK drivers/iommu/s390-iommu.c drivers/iommu/s390-iommu.c:52:21: warning: symbol 's390_domain_alloc' was not declared. Should it be static? drivers/iommu/s390-iommu.c:76:6: warning: symbol 's390_domain_free' was not declared. Should it be static? Signed-off-by: Sebastian Ott Signed-off-by: Joerg Roedel drivers/iommu/s390-iommu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0a38c8e1b592c16d959da456f425053e323a5153 Author: sudip Date: Tue Nov 24 13:51:38 2015 +0530 libertas: check for NULL before use If kzalloc fails it will return NULL. Lets check for NULL first before using the pointer. Signed-off-by: Sudip Mukherjee Signed-off-by: Kalle Valo drivers/net/wireless/marvell/libertas/cfg.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 68ec581011ae0cf84392e7b22b05dc63818e4e6d Author: Andy Shevchenko Date: Wed Nov 18 16:09:18 2015 +0200 rtlwifi: btcoexist: re-use %*ph specifier to hexdump Instead of printing each byte from the given buffer the code is converted to use %*ph specifier. Signed-off-by: Andy Shevchenko Signed-off-by: Kalle Valo .../realtek/rtlwifi/btcoexist/halbtc8192e2ant.c | 23 ++++++---------------- .../realtek/rtlwifi/btcoexist/halbtc8723b1ant.c | 21 ++++++-------------- .../realtek/rtlwifi/btcoexist/halbtc8723b2ant.c | 22 ++++++--------------- .../realtek/rtlwifi/btcoexist/halbtc8821a1ant.c | 23 ++++++---------------- .../realtek/rtlwifi/btcoexist/halbtc8821a2ant.c | 21 ++++++-------------- 5 files changed, 30 insertions(+), 80 deletions(-) commit 073d72f963c987bc79fb1efd61ce53b919e2de27 Author: Markus Elfring Date: Mon Nov 16 13:12:25 2015 +0100 rtlwifi: Delete unnecessary checks before the function call "kfree_skb" The kfree_skb() function tests whether its argument is NULL and then returns immediately. Thus the test around the calls is not needed. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring Signed-off-by: Kalle Valo drivers/net/wireless/realtek/rtlwifi/core.c | 3 +-- drivers/net/wireless/realtek/rtlwifi/rtl8723com/fw_common.c | 4 +--- 2 files changed, 2 insertions(+), 5 deletions(-) commit 6866a64a0f9bba5145891ec0fe5cd52c73efd4e9 Author: Julia Lawall Date: Sat Nov 14 17:22:07 2015 +0100 brcmfmac: constify brcmf_bus_ops structures The brcmf_bus_ops structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Acked-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/broadcom/brcm80211/brcmfmac/bus.h | 2 +- drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c | 2 +- drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 2 +- drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) commit 3a318426e09a9c9266fe6440842e11238f640a20 Author: Dan Carpenter Date: Fri Nov 6 13:01:20 2015 +0300 ath9k_htc: check for underflow in ath9k_htc_rx_msg() We check for overflow here, but we don't check for underflow so it causes a static checker warning. Fixes: fb9987d0f748 ('ath9k_htc: Support for AR9271 chipset.') Signed-off-by: Dan Carpenter Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/htc_hst.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 21ba005464a95e2ac57e13d035d11d29f483738a Author: Markus Elfring Date: Fri Nov 6 08:48:23 2015 +0100 brcm80211: Delete an unnecessary check before the function call "release_firmware" The release_firmware() 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 Acked-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit aeb64225aa8e74804f81aa3e31b7a3860fd2b730 Author: Hante Meuleman Date: Thu Oct 29 20:33:19 2015 +0100 brcmfmac: Add wowl wake indication report. On wakeup of the system (resume) a wowl wakeup indication report can be sent to cfg80211. This patch adds support for this. The report specifies if the device was responsible for the wakeup and if so, will specify the exact reason. Reviewed-by: Arend Van Spriel Reviewed-by: Franky (Zhenhui) Lin Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo .../broadcom/brcm80211/brcmfmac/cfg80211.c | 67 +++++++++++++++++++++- .../broadcom/brcm80211/brcmfmac/fwil_types.h | 12 ++++ 2 files changed, 77 insertions(+), 2 deletions(-) commit c2a43a6ba5e56b4bbca46287628ef1c84c44fa8d Author: Hante Meuleman Date: Thu Oct 29 20:33:18 2015 +0100 brcmfmac: Use new methods for pcie Power Management. Currently the legacy methods suspend and resume are used for pcie devices. This is not the preferable method and is also causing issues with some setups when doing hibernate. Changing this to use the new PM methods. Reviewed-by: Arend Van Spriel Reviewed-by: Franky (Zhenhui) Lin Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo .../wireless/broadcom/brcm80211/brcmfmac/pcie.c | 89 +++++++++------------- 1 file changed, 37 insertions(+), 52 deletions(-) commit 37a869ec859308ea50ac6f8f320c86ad8d2f8767 Author: Hante Meuleman Date: Thu Oct 29 20:33:17 2015 +0100 brcmfmac: Use consistent naming for bsscfgidx. The variable bsscfgidx is used in different places with different names, e.g. bsscfg, bssidx, bsscfg_idx. This patch cleans this up by using bsscfgidx everywhere. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo .../broadcom/brcm80211/brcmfmac/cfg80211.c | 16 +++-- .../wireless/broadcom/brcm80211/brcmfmac/core.c | 78 +++++++++++----------- .../wireless/broadcom/brcm80211/brcmfmac/core.h | 6 +- .../wireless/broadcom/brcm80211/brcmfmac/debug.c | 2 +- .../wireless/broadcom/brcm80211/brcmfmac/fweh.c | 8 +-- .../wireless/broadcom/brcm80211/brcmfmac/fweh.h | 2 +- .../wireless/broadcom/brcm80211/brcmfmac/fwil.c | 28 ++++---- .../broadcom/brcm80211/brcmfmac/fwil_types.h | 2 +- .../broadcom/brcm80211/brcmfmac/fwsignal.c | 4 +- .../net/wireless/broadcom/brcm80211/brcmfmac/p2p.c | 6 +- 10 files changed, 78 insertions(+), 74 deletions(-) commit 8abffd8173a1c64eaa951f2527635c12b5a4ecc3 Author: Hante Meuleman Date: Thu Oct 29 20:33:16 2015 +0100 brcmfmac: Add RSDB support. Broadcom devices with a single 802.11 core can work on two band concurrently using VSDB feature, ie. Virtual Simultaneous Dual-Band. For devices that are fitted with two 802.11 cores and RF paths the driver should support a firmware feature called RSDB, which stands for Real Simultaneous Dual-Band. RSDB works almost autonomously in firmware except for AP config. When the device supports RSDB then the interface should not be brought down when configuring it, otherwise the link (if configured) on the other interface will be lost. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel [kvalo@codeaurora.org: changed the commit log based on discussion] Signed-off-by: Kalle Valo drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 4 +++- drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c | 1 + drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.h | 5 ++++- 3 files changed, 8 insertions(+), 2 deletions(-) commit dc1a272ec4405d70676b40cfde8f2ebdc77ee018 Author: Hante Meuleman Date: Thu Oct 29 20:33:15 2015 +0100 brcmfmac: Disable runtime pm for USB. Currently runtime pm is enabled for USB, but it is not properly supported by driver. This patch disables the runtime PM support completely for USB, as it currently can result in problems on some systems. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c | 1 - 1 file changed, 1 deletion(-) commit da402c56bc91fa69c595fcfebe5e5affa2933697 Author: Hante Meuleman Date: Thu Oct 29 20:33:14 2015 +0100 brcmfmac: Remove unncessary variable irq_requested. The variable irq_requested is unneeded as the functionality it is providing, is also provided by the variable irq_allocated. Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c | 6 ------ 1 file changed, 6 deletions(-) commit 31fa86cb342bd0552c0c18dcda261b42afaa82ce Author: Hante Meuleman Date: Thu Oct 29 20:33:13 2015 +0100 brcmfmac: Remove unnecessary check from start_xmit. The brcmf_netdev_start_xmit checks if the ndev is still valid by checking if it still exists in database. This check is not needed and therefor removed. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c | 8 -------- 1 file changed, 8 deletions(-) commit c9c0043894cf2666ae832fbad7afa68fa53178ac Author: Hante Meuleman Date: Thu Oct 29 20:33:12 2015 +0100 brcmfmac: Simplify and fix usage of brcmf_ifname. brcmf_ifname is a debug function to return a name related to an ifp, but is using a rather complex implementation. It was also used wrongly from bcdc as it did not use the bsscfgidx as it was supposed to, but bssidx. This patch fixes that bug and simplifies brcmf_ifname. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo .../net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c | 10 ++++++---- .../net/wireless/broadcom/brcm80211/brcmfmac/core.c | 19 ++++++------------- .../net/wireless/broadcom/brcm80211/brcmfmac/core.h | 2 +- 3 files changed, 13 insertions(+), 18 deletions(-) commit 2aff030355b5bbbabe04e16c71343d851dd39235 Author: Hante Meuleman Date: Thu Oct 29 20:33:11 2015 +0100 brcmfmac: Add support for the BCM4359 11ac RSDB PCIE device. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c | 1 + drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c | 9 +++++++++ drivers/net/wireless/broadcom/brcm80211/include/brcm_hw_ids.h | 2 ++ 3 files changed, 12 insertions(+) commit b4f8144559e172f792f7fa926e4f342fbdbaf6ee Author: Luis de Bethencourt Date: Tue Oct 20 16:04:13 2015 +0100 powerpc/axonram: 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 Signed-off-by: Michael Ellerman arch/powerpc/sysdev/axonram.c | 1 + 1 file changed, 1 insertion(+) commit 6735b2e985b78e0ecb05e8818c22f46b904f3599 Author: Luis de Bethencourt Date: Tue Oct 20 16:13:53 2015 +0100 powerpc/rackmeter: 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 Signed-off-by: Michael Ellerman drivers/macintosh/rack-meter.c | 1 + 1 file changed, 1 insertion(+) commit 343c3327c12b13655192983007de94bd44fd7941 Author: Rashmica Gupta Date: Sat Nov 21 17:08:16 2015 +1100 powerpc: Add rN aliases to the pt_regs_offset table. It is common practice with powerpc to use 'rN' to refer to register 'N'. However when using the pt_regs_offset table we have to use 'gprN'. So add aliases such that both 'rN' and 'gprN' can be used. For example, we can currently do: $ su - $ cd /sys/kernel/debug/tracing $ echo "p:probe/sys_fchownat sys_fchownat %gpr3:s32 +0(%gpr4):string %gpr5:s32 %gpr6:s32 %gpr7:s32" > kprobe_events $ echo 1 > events/probe/sys_fchownat/enable $ touch /tmp/foo $ chown root /tmp/foo $ echo 0 > events/enable $ cat trace chown-2925 [014] d... 76.160657: sys_fchownat: (SyS_fchownat+0x8/0x1a0) arg1=-100 arg2="/tmp/foo" arg3=0 arg4=-1 arg5=0 Instead we'd like to be able to use: $ echo "p:probe/sys_fchownat sys_fchownat %r3:s32 +0(%r4):string %r5:s32 %r6:s32 %r7:s32" > kprobe_events Signed-off-by: Rashmica Gupta Signed-off-by: Michael Ellerman arch/powerpc/kernel/ptrace.c | 1 + 1 file changed, 1 insertion(+) commit f43194e45852b0455d2a3e3730f70daa76958423 Author: Rashmica Gupta Date: Thu Nov 19 17:04:53 2015 +1100 powerpc: Standardise on NR_syscalls rather than __NR_syscalls. Most architectures use NR_syscalls as the #define for the number of syscalls. We use __NR_syscalls, and then define NR_syscalls as __NR_syscalls. __NR_syscalls is not used outside arch code, whereas NR_syscalls is. So as NR_syscalls must be defined and __NR_syscalls does not, replace __NR_syscalls with NR_syscalls. Signed-off-by: Rashmica Gupta Signed-off-by: Michael Ellerman arch/powerpc/include/asm/unistd.h | 3 +-- arch/powerpc/include/asm/vdso_datapage.h | 2 +- arch/powerpc/kernel/systbl_chk.c | 2 +- arch/powerpc/kernel/systbl_chk.sh | 2 +- arch/powerpc/kernel/vdso.c | 2 +- arch/powerpc/kernel/vdso32/datapage.S | 2 +- arch/powerpc/kernel/vdso64/datapage.S | 2 +- arch/powerpc/platforms/cell/spufs/run.c | 2 +- 8 files changed, 8 insertions(+), 9 deletions(-) commit cdfc8ed6904d7b0c0ca23d619b387b32070703b1 Author: Rashmica Gupta Date: Thu Nov 19 14:26:28 2015 +1100 powerpc: Remove unused function trace_syscall() This function has been unused since commit 14cf11af6cf6 ("powerpc: Merge enough to start building in arch/powerpc."), so remove it. Signed-off-by: Rashmica Gupta Reviewed-by: Andrew Donnellan Reviewed-by: Anshuman Khandual Signed-off-by: Michael Ellerman arch/powerpc/kernel/traps.c | 7 ------- 1 file changed, 7 deletions(-) commit 58531b0c800fd514f04ae42b6cf5ab15abdf0651 Author: Laurent Vivier Date: Thu Nov 5 12:31:34 2015 +0100 powerpc/boot: allow wrapper to work on non-english system if the language is not english objdump output is not parsed correctly and format is "". Later, "ld -m $format" fails. This patch adds "LANG=C" to force english output for objdump. Signed-off-by: Laurent Vivier Signed-off-by: Michael Ellerman arch/powerpc/boot/wrapper | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6c3082151e13846fd872cc216e8cbb5a59cd0b12 Author: John Ogness Date: Wed Nov 11 15:15:03 2015 +0100 powerpc/powermac: IRQF_NO_SUSPEND not IRQF_TIMER for non-timer Since gpio1 is not a timer, it also should not use IRQF_TIMER. Similar to commit ba461f094bab ("powerpc: Use IRQF_NO_SUSPEND not IRQF_TIMER for non-timer interrupts"). Signed-off-by: John Ogness Signed-off-by: Michael Ellerman drivers/macintosh/via-pmu.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 57f889471c0fb55cbb0db98b30483040e2065bd9 Author: John Ogness Date: Wed Nov 11 14:48:50 2015 +0100 powerpc/powermac: set IRQF_NO_THREAD for xmon/cascade handlers The xmon and cascade irq handlers must not run as threads. pmac_pic_lock is already a raw_spinlock, but the irq flag IRQF_NO_THREAD needs to be set as well. Signed-off-by: John Ogness Signed-off-by: Michael Ellerman arch/powerpc/platforms/powermac/pic.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a2f4c560f18edd2ffe0f15d52ce2be55cff605d2 Author: Chris Zhong Date: Thu Nov 26 15:50:16 2015 +0800 clk: rockchip: add mipidsi clock on rk3288 sclk_mipidsi_24m is the gating of mipi dsi phy. Signed-off-by: Chris Zhong Acked-by: Stephen Boyd Signed-off-by: Heiko Stuebner drivers/clk/rockchip/clk-rk3288.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 25286befeeaeba0303404d8c818ca326dabfd3d1 Merge: 5190c08 c6d49fb Author: Heiko Stuebner Date: Thu Nov 26 11:15:02 2015 +0100 Merge branch 'v4.5-clk/clkids' into v4.5-clk/next commit c6d49fbcfcc44264c31f93866c9a713491e4a5fe Author: Chris Zhong Date: Thu Nov 26 15:50:15 2015 +0800 clk: rockchip: add id for mipidsi sclk on rk3288 Adds a new id for the sclk supplying the mipidsi on rk3288 socs. Signed-off-by: Chris Zhong Signed-off-by: Heiko Stuebner include/dt-bindings/clock/rk3288-cru.h | 1 + 1 file changed, 1 insertion(+) commit 7a9c2dd08eadd5c6943115dbbec040c38d2e0822 Author: Chen Yu Date: Wed Nov 25 01:03:41 2015 +0800 x86/pm: Introduce quirk framework to save/restore extra MSR registers around suspend/resume A bug was reported that on certain Broadwell platforms, after resuming from S3, the CPU is running at an anomalously low speed. It turns out that the BIOS has modified the value of the THERM_CONTROL register during S3, and changed it from 0 to 0x10, thus enabled clock modulation(bit4), but with undefined CPU Duty Cycle(bit1:3) - which causes the problem. Here is a simple scenario to reproduce the issue: 1. Boot up the system 2. Get MSR 0x19a, it should be 0 3. Put the system into sleep, then wake it up 4. Get MSR 0x19a, it shows 0x10, while it should be 0 Although some BIOSen want to change the CPU Duty Cycle during S3, in our case we don't want the BIOS to do any modification. Fix this issue by introducing a more generic x86 framework to save/restore specified MSR registers(THERM_CONTROL in this case) for suspend/resume. This allows us to fix similar bugs in a much simpler way in the future. When the kernel wants to protect certain MSRs during suspending, we simply add a quirk entry in msr_save_dmi_table, and customize the MSR registers inside the quirk callback, for example: u32 msr_id_need_to_save[] = {MSR_ID0, MSR_ID1, MSR_ID2...}; and the quirk mechanism ensures that, once resumed from suspend, the MSRs indicated by these IDs will be restored to their original, pre-suspend values. Since both 64-bit and 32-bit kernels are affected, this patch covers the common 64/32-bit suspend/resume code path. And because the MSRs specified by the user might not be available or readable in any situation, we use rdmsrl_safe() to safely save these MSRs. Reported-and-tested-by: Marcin Kaszewski Signed-off-by: Chen Yu Acked-by: Rafael J. Wysocki Acked-by: Pavel Machek Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: bp@suse.de Cc: len.brown@intel.com Cc: linux@horizon.com Cc: luto@kernel.org Cc: rjw@rjwysocki.net Link: http://lkml.kernel.org/r/c9abdcbc173dd2f57e8990e304376f19287e92ba.1448382971.git.yu.c.chen@intel.com [ More edits to the naming of data structures. ] Signed-off-by: Ingo Molnar arch/x86/include/asm/msr.h | 10 +++++ arch/x86/include/asm/suspend_32.h | 1 + arch/x86/include/asm/suspend_64.h | 1 + arch/x86/power/cpu.c | 92 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 104 insertions(+) commit a95a49fa0cc5eec730d8703b1544fa7ea6a11dec Merge: 9327ca7 d8ad6a1 Author: Ingo Molnar Date: Thu Nov 26 09:13:50 2015 +0100 Merge tag 'perf-core-for-mingo-2' 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 to free temporal Dwarf_Frame correctly in 'perf probe', fixing a regression introduced in perf/core that prevented, at least, adding an uprobe collecting function parameter values (Masami Hiramatsu) - Fix output of %llu for 64 bit values read on 32 bit machines in libtraceevent (Steven Rostedt) Developer visible: - Clean CFLAGS and LDFLAGS for fixdep in tools/build (Wang Nan) - Don't do a feature check when cleaning tools/lib/bpf (Wang Nan) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 6f923a0134d9868a71db19cca1fae551a27b46f5 Author: Konstantin Shkolnyy Date: Tue Nov 24 16:28:41 2015 -0600 USB: cp210x: add tx_empty() Added tx_empty callback needed for generic wait-until-sent support. Without this function, when the port is closed usbserial can't know that there are still data in the chip's transmit FIFO. The chip gets disabled and untransmitted data lost. When the actual byte count is reported by tx-empty the close can be delayed until all data are sent. Signed-off-by: Konstantin Shkolnyy [johan: modify tx_empty error handling ] Signed-off-by: Johan Hovold drivers/usb/serial/cp210x.c | 58 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) commit fe0798c5e150be8f06959250076d3864477e74c2 Author: Fengguang Wu Date: Tue Nov 10 13:59:06 2015 +0800 aacraid: aac_release_resources() can be static Signed-off-by: Fengguang Wu Reviewed-by: Johannes Thumshirn Reviewed-by: Mahesh Rajashekhara Signed-off-by: Martin K. Petersen drivers/scsi/aacraid/linit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 494131124f04252bb3f91c0801bfe796d49971ef Author: Arnd Bergmann Date: Fri Nov 20 17:38:28 2015 +0100 scsi: use sector_div instead of do_div do_div is the wrong way to divide a sector_t, as it is less efficient when sector_t is 32-bit wide. With the upcoming do_div optimizations, the kernel starts warning about this: drivers/scsi/scsi_debug.c: In function 'dif_store': include/asm-generic/div64.h:207:28: warning: comparison of distinct pointer types lacks a cast This changes the code to use sector_div instead, which always produces optimal code. Signed-off-by: Arnd Bergmann Reviewed-by: Hannes Reinicke Reviewed-by: Sagi Grimberg Reviewed-by: Johannes Thumshirn Signed-off-by: Martin K. Petersen drivers/scsi/scsi_debug.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8c77dca011125b795bfa1c86f85a80132feee578 Author: John Garry Date: Thu Nov 19 20:23:59 2015 +0800 hisi_sas: Remove dependency on of_irq_count Originally the driver would use of_irq_count to calculate how much memory is required for storing the interrupt names, since the number of interrupt sources for the controller is variable. Since of_irq_count cannot be used by the driver, use fixed names. Signed-off-by: John Garry Signed-off-by: Zhangfei Gao Acked-by: Rob Herring Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas.h | 3 --- drivers/scsi/hisi_sas/hisi_sas_main.c | 8 -------- drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 34 +++++----------------------------- 3 files changed, 5 insertions(+), 40 deletions(-) commit 16c6c252f0ac8256e38d36a3de7c59d5d27efdc3 Author: John Garry Date: Wed Nov 18 00:50:59 2015 +0800 MAINTAINERS: Add maintainer for HiSi SAS driver Add maintainer for HiSilicon SAS driver. Signed-off-by: John Garry Reviewed-by: Arnd Bergmann Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen MAINTAINERS | 7 +++++++ 1 file changed, 7 insertions(+) commit ff165289f9121c7f5ac2f9273aef5f47e84625da Author: John Garry Date: Wed Nov 18 00:50:58 2015 +0800 hisi_sas: Add fatal irq handler Add handlers for fatal interrupts. Signed-off-by: John Garry Reviewed-by: Arnd Bergmann Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 119 +++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) commit e4189d539f78f335f57266d2c3a848cadbd3a00f Author: John Garry Date: Wed Nov 18 00:50:57 2015 +0800 hisi_sas: Add control phy handler Add method for lldd_control_phy. Currently link rate control and spinup hold is unsupported. Signed-off-by: John Garry Reviewed-by: Arnd Bergmann Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas.h | 3 +++ drivers/scsi/hisi_sas/hisi_sas_main.c | 29 +++++++++++++++++++++++++++++ drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 23 +++++++++++++++++++++++ 3 files changed, 55 insertions(+) commit 0efff300c72df76476d5d48d13a069ee04974ab3 Author: John Garry Date: Wed Nov 18 00:50:56 2015 +0800 hisi_sas: Add tmf methods Add function methods for tmf's. Signed-off-by: John Garry Reviewed-by: Arnd Bergmann Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas_main.c | 309 ++++++++++++++++++++++++++++++++++ 1 file changed, 309 insertions(+) commit 701f75ecd95130ab8a283fe5f44ba963a737d5f7 Author: John Garry Date: Wed Nov 18 00:50:55 2015 +0800 hisi_sas: Add scan finished and start Add functions for scsi host template scan_finished and scan_start methods. Signed-off-by: John Garry Reviewed-by: Arnd Bergmann Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas.h | 1 + drivers/scsi/hisi_sas/hisi_sas_main.c | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) commit 66ee999b4e43e15182beb458689ec61b5715d568 Author: John Garry Date: Wed Nov 18 00:50:54 2015 +0800 hisi_sas: Add smp protocol support Add support for smp function, which allows devices attached by expander to be controlled. Signed-off-by: John Garry Reviewed-by: Arnd Bergmann Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas.h | 3 ++ drivers/scsi/hisi_sas/hisi_sas_main.c | 9 ++++ drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 88 ++++++++++++++++++++++++++++++++++ 3 files changed, 100 insertions(+) commit dc5da4cf8e4c29f82e4ead8cf4d4dad61c78fab9 Author: John Garry Date: Wed Nov 18 00:50:53 2015 +0800 hisi_sas: Add bcast interrupt handler This is for expander broadcast event. Signed-off-by: John Garry Reviewed-by: Arnd Bergmann Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) commit 184a4635340be6e0e804240ff889c3c82d6e4745 Author: John Garry Date: Wed Nov 18 00:50:52 2015 +0800 hisi_sas: Add abnormal irq handler Add abnormal irq handler. This handler is concerned with phy down event. Also add port formed and port deformed handlers. Signed-off-by: John Garry Reviewed-by: Arnd Bergmann Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas.h | 2 + drivers/scsi/hisi_sas/hisi_sas_main.c | 118 +++++++++++++++++++++++++++++++++ drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 70 +++++++++++++++++++ 3 files changed, 190 insertions(+) commit abda97c2fe874cd8826fe25a77f66c75bcc7b5cd Author: John Garry Date: Wed Nov 18 00:50:51 2015 +0800 hisi_sas: Add dev_found and dev_gone Add functions to deal with lldd_dev_found and lldd_dev_gone. Signed-off-by: John Garry Reviewed-by: Arnd Bergmann Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas.h | 13 +++++ drivers/scsi/hisi_sas/hisi_sas_main.c | 88 ++++++++++++++++++++++++++++++++++ drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 41 ++++++++++++++++ 3 files changed, 142 insertions(+) commit 27a3f2292ea2508d2d1ddd85846910a69ed95a3f Author: John Garry Date: Wed Nov 18 00:50:50 2015 +0800 hisi_sas: Add cq interrupt handler Add cq interrupt handler and also slot error handler function. Signed-off-by: John Garry Reviewed-by: Arnd Bergmann Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas.h | 9 + drivers/scsi/hisi_sas/hisi_sas_main.c | 35 ++++ drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 345 +++++++++++++++++++++++++++++++++ 3 files changed, 389 insertions(+) commit 42e7a69368a5855b36cbaff130e58e2cc9976ff3 Author: John Garry Date: Wed Nov 18 00:50:49 2015 +0800 hisi_sas: Add ssp command function Add path to send ssp command to HW. Signed-off-by: John Garry Reviewed-by: Arnd Bergmann Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas.h | 30 +++++ drivers/scsi/hisi_sas/hisi_sas_main.c | 234 +++++++++++++++++++++++++++++++++ drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 194 +++++++++++++++++++++++++++ 3 files changed, 458 insertions(+) commit 66139921973db60c2fc93a4d467c3c574d9657a0 Author: John Garry Date: Wed Nov 18 00:50:48 2015 +0800 hisi_sas: Add path from phyup irq to SAS framework Signed-off-by: John Garry Reviewed-by: Arnd Bergmann Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas.h | 2 ++ drivers/scsi/hisi_sas/hisi_sas_main.c | 49 ++++++++++++++++++++++++++++++++++ drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 15 +++++++++++ 3 files changed, 66 insertions(+) commit 07d785923fa5353eabb451976defeedd407936ac Author: John Garry Date: Wed Nov 18 00:50:47 2015 +0800 hisi_sas: Add v1 hardware interrupt init Add code to interrupts, so now we can get a phy up interrupt when a disk is connected. Signed-off-by: John Garry Reviewed-by: Arnd Bergmann Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas.h | 5 + drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 161 +++++++++++++++++++++++++++++++++ 2 files changed, 166 insertions(+) commit 8ff1d5718e9d42e3d0d2331492b5cb49b5c5442b Author: John Garry Date: Wed Nov 18 00:50:46 2015 +0800 hisi_sas: Add v1 hardware initialisation code Signed-off-by: John Garry Reviewed-by: Arnd Bergmann Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas.h | 1 + drivers/scsi/hisi_sas/hisi_sas_main.c | 4 + drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 337 +++++++++++++++++++++++++++++++++ 3 files changed, 342 insertions(+) commit 50af155b6cabd398bc2dca5aa32ddb879bb9331e Author: John Garry Date: Wed Nov 18 00:50:45 2015 +0800 hisi_sas: Add v1 hardware register definitions Signed-off-by: John Garry Reviewed-by: Arnd Bergmann Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 389 +++++++++++++++++++++++++++++++++ 1 file changed, 389 insertions(+) commit 9fb10b54861f481de4c484a67a60d981e54fe9a1 Author: John Garry Date: Wed Nov 18 00:50:44 2015 +0800 hisi_sas: Add v1 hw module init Add module init code for v1 hw. Signed-off-by: John Garry Reviewed-by: Arnd Bergmann Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/Makefile | 1 + drivers/scsi/hisi_sas/hisi_sas.h | 3 ++ drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 53 ++++++++++++++++++++++++++++++++++ 3 files changed, 57 insertions(+) commit fa42d80dc3c5196b0359fab9a212cc4ede257502 Author: John Garry Date: Wed Nov 18 00:50:43 2015 +0800 hisi_sas: Add timer and spinlock init Signed-off-by: John Garry Reviewed-by: Arnd Bergmann Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas.h | 2 ++ drivers/scsi/hisi_sas/hisi_sas_main.c | 3 +++ 2 files changed, 5 insertions(+) commit 976867e6ed0384b9c0598d692e3858d7c1ec349f Author: John Garry Date: Wed Nov 18 00:50:42 2015 +0800 hisi_sas: Add phy and port init Signed-off-by: John Garry Reviewed-by: Arnd Bergmann Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas.h | 15 +++++++++++++++ drivers/scsi/hisi_sas/hisi_sas_main.c | 31 +++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) commit af740dbe659f1eee07a18801f89d9b2e2f9b5329 Author: John Garry Date: Wed Nov 18 00:50:41 2015 +0800 hisi_sas: Add hisi sas device type Include initialisation. Signed-off-by: John Garry Reviewed-by: Arnd Bergmann Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas.h | 12 ++++++++++++ drivers/scsi/hisi_sas/hisi_sas_main.c | 6 ++++++ 2 files changed, 18 insertions(+) commit 7e9080e1c68dba3324ba307395b8dcb80bec308c Author: John Garry Date: Wed Nov 18 00:50:40 2015 +0800 hisi_sas: Add hisi_hba workqueue Signed-off-by: John Garry Reviewed-by: Arnd Bergmann Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas.h | 1 + drivers/scsi/hisi_sas/hisi_sas_main.c | 8 ++++++++ 2 files changed, 9 insertions(+) commit 50cb916f4361e9202866d388eaddbe1d3f0ee0f7 Author: John Garry Date: Wed Nov 18 00:50:39 2015 +0800 hisi_sas: Set dev DMA mask Signed-off-by: John Garry Reviewed-by: Arnd Bergmann Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas_main.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 5d74242e37feb5d06aecb3118d642ff621d08b75 Author: John Garry Date: Wed Nov 18 00:50:38 2015 +0800 hisi_sas: Add phy SAS ADDR initialization The SAS address for the HBA comes from the device tree. Signed-off-by: John Garry Reviewed-by: Arnd Bergmann Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas.h | 1 + drivers/scsi/hisi_sas/hisi_sas_main.c | 12 ++++++++++++ 2 files changed, 13 insertions(+) commit 9101a0792d2ad49a0bf293d346f391c198d72843 Author: John Garry Date: Wed Nov 18 00:50:37 2015 +0800 hisi_sas: Add cq structure initialization Each completion queue has a structure. This is mainly for passing to irq handler so we know which queue the irq occured on. Signed-off-by: John Garry Reviewed-by: Arnd Bergmann Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas.h | 7 +++++++ drivers/scsi/hisi_sas/hisi_sas_main.c | 6 ++++++ 2 files changed, 13 insertions(+) commit 257efd1f69dd1789b1db0f12425e31d6c05118db Author: John Garry Date: Wed Nov 18 00:50:36 2015 +0800 hisi_sas: Add slot init code Add functionality to init slot indexing. Slot indexing is for the host to track which slots (or tags) are free and which are used. Signed-off-by: John Garry Reviewed-by: Arnd Bergmann Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas.h | 4 ++++ drivers/scsi/hisi_sas/hisi_sas_main.c | 23 +++++++++++++++++++++++ 2 files changed, 27 insertions(+) commit 89d533223de0fe30e3b30900d1fc9c98020c2215 Author: John Garry Date: Wed Nov 18 00:50:35 2015 +0800 hisi_sas: Add hisi_sas_remove This patch also includes relevant memory/pool freeing and sas/scsi host removal. Signed-off-by: John Garry Reviewed-by: Arnd Bergmann Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas_main.c | 71 ++++++++++++++++++++++++++++++++++- 1 file changed, 70 insertions(+), 1 deletion(-) commit 6be6de18891d5533451b2c00424f6a557dc901ec Author: John Garry Date: Wed Nov 18 00:50:34 2015 +0800 hisi_sas: Allocate memories and create pools Allocate DMA and non-DMA memories for the controller. Also create DMA pools. These include: - Delivery queues - Completion queues - Command status buffer - Command table - ITCT (For device context) - Host slot info - IO status - Breakpoint - host slot indexing - SG data - FIS - interrupts names Signed-off-by: John Garry Reviewed-by: Arnd Bergmann Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas.h | 30 +++++++++++ drivers/scsi/hisi_sas/hisi_sas_main.c | 94 +++++++++++++++++++++++++++++++++++ 2 files changed, 124 insertions(+) commit c799d6bd8fe4a82333fd11f8699f621e10af2f4b Author: John Garry Date: Wed Nov 18 00:50:33 2015 +0800 hisi_sas: Add HW DMA structures Signed-off-by: John Garry Reviewed-by: Arnd Bergmann Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas.h | 131 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) commit e26b2f405a6a65c0ce0ea168aef7d4607ec7ad80 Author: John Garry Date: Wed Nov 18 00:50:32 2015 +0800 hisi_sas: Scan device tree Scan the device tree for all properties. Also do this: - do ioremap for SAS registers - allocate memory for interrupt names Signed-off-by: John Garry Reviewed-by: Arnd Bergmann Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas.h | 10 ++++++++ drivers/scsi/hisi_sas/hisi_sas_main.c | 45 ++++++++++++++++++++++++++++++++++- 2 files changed, 54 insertions(+), 1 deletion(-) commit 7eb7869f1307cc86fca9afd1425bba023c35414f Author: John Garry Date: Wed Nov 18 00:50:31 2015 +0800 hisi_sas: Add scsi host registration Add functionality to register device as a scsi host. The SAS domain transport ops are empty at this point. Signed-off-by: John Garry Reviewed-by: Arnd Bergmann Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas.h | 34 ++++++++++ drivers/scsi/hisi_sas/hisi_sas_main.c | 116 ++++++++++++++++++++++++++++++++++ 2 files changed, 150 insertions(+) commit e8899fad9672ca8b414db36e16ce4d21818802dc Author: John Garry Date: Wed Nov 18 00:50:30 2015 +0800 hisi_sas: Add initial bare main driver This patch adds the initial bare main driver for the HiSilicon SAS HBA. This only introduces the changes to build and load the main driver module. The complete driver consists of the core main module and also a module platform driver for driving the hw. The HBA is a platform device. Signed-off-by: John Garry Signed-off-by: Zhangfei Gao Reviewed-by: Arnd Bergmann Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/Kconfig | 1 + drivers/scsi/Makefile | 1 + drivers/scsi/hisi_sas/Kconfig | 6 +++++ drivers/scsi/hisi_sas/Makefile | 1 + drivers/scsi/hisi_sas/hisi_sas.h | 26 +++++++++++++++++++++ drivers/scsi/hisi_sas/hisi_sas_main.c | 43 +++++++++++++++++++++++++++++++++++ 6 files changed, 78 insertions(+) commit 47caad1577cd7a39e2048c5e4edbce4b863dc12b Author: John Garry Date: Wed Nov 18 00:50:29 2015 +0800 devicetree: bindings: scsi: HiSi SAS Add devicetree bindings for HiSilicon SAS driver. Signed-off-by: John Garry Signed-off-by: Zhangfei Gao Acked-by: Rob Herring Reviewed-by: Arnd Bergmann Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen .../devicetree/bindings/scsi/hisilicon-sas.txt | 69 ++++++++++++++++++++++ 1 file changed, 69 insertions(+) commit c15d75bec6d0a937f7a15b81052ed99d310e9767 Author: John Garry Date: Wed Nov 18 00:50:28 2015 +0800 scsi: Centralise ssp frame information units The xfer_rdy, command, and task frame's iu structures are not available in , but only aic94xx driver folder. Add them to include/scsi/sas.h Signed-off-by: John Garry Reviewed-by: Arnd Bergmann Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/aic94xx/aic94xx_sas.h | 49 ++++--------------------- include/scsi/sas.h | 74 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+), 43 deletions(-) commit 4190230edbbe8864f04610900249db3738e2f51c Author: Ondrej Zary Date: Tue Nov 17 19:24:28 2015 +0100 atp870u: Introduce atp870_init() Move 870-specific init code to a separate function atp870_init() Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 104 +++++++++++++++++++++++++------------------------ 1 file changed, 54 insertions(+), 50 deletions(-) commit ecc6ff95d1a84f0a025112e071be40dd905a5168 Author: Ondrej Zary Date: Tue Nov 17 19:24:27 2015 +0100 atp870u: Introduce atp885_init() Move 885-specific init code to a separate function atp885_init() Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 231 ++++++++++++++++++++++++------------------------- 1 file changed, 113 insertions(+), 118 deletions(-) commit c7e6a0298d56694d79189cd9127ac8ec1c2275ca Author: Ondrej Zary Date: Tue Nov 17 19:24:26 2015 +0100 atp870u: Introduce atp880_init() Move 880-specific init code to a separate function atp880_init() Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 174 +++++++++++++++++++++++++------------------------ 1 file changed, 88 insertions(+), 86 deletions(-) commit f5f53a38c2f8671f9fc249c711411ba44d76a618 Author: Ondrej Zary Date: Tue Nov 17 19:24:25 2015 +0100 atp870u: Initialize tables earlier Call _init_tables before chip-specific initialization. This avoids code duplication and fixes a bug(?) in 880 init where the values read from flash into atpdev->sp are then overwritten by calling init_tables. Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) commit 8177c507523e053011861cce08cb73a77d5896e3 Author: Ondrej Zary Date: Tue Nov 17 19:24:24 2015 +0100 atp870u: Remove scam_on from struct atp_unit scam_on is used only during probe, no need to keep it later. Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 14 +++++++------- drivers/scsi/atp870u.h | 1 - 2 files changed, 7 insertions(+), 8 deletions(-) commit 1729c0d22bddfa949551c38301af3ce52d40c3b9 Author: Ondrej Zary Date: Tue Nov 17 19:24:23 2015 +0100 atp870u: Request IRQ later, remove weird locking Allocate IRQ later during probe to avoid code duplication and also remove the need for weird locking in _probe. (It was probably there to prevent race with the IRQ handler?) Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 47 ++++++++++++----------------------------------- 1 file changed, 12 insertions(+), 35 deletions(-) commit 11ec131804e75b73f07ac04f94888efc65c5d4c4 Author: Ondrej Zary Date: Tue Nov 17 19:24:22 2015 +0100 atp870u: Use pci_request_regions Use pci_request_regions and do it before accessing the I/O ports. Also add missing pci_disable_device() call to atp870u_remove(). Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) commit b922a44995a6e94560aa3eae0602bf92a4e7b084 Author: Ondrej Zary Date: Tue Nov 17 19:24:21 2015 +0100 atp870u: Introduce is880(), is885() and remove dev_id Introduce chip type inline functions to simplify code, allowing to delete dev_id from struct atp_unit. Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 70 +++++++++++++++++++++++++++----------------------- drivers/scsi/atp870u.h | 1 - 2 files changed, 38 insertions(+), 33 deletions(-) commit 6c9b9c554b2a369d2b46558975ef2eaa3a84c1c3 Author: Ondrej Zary Date: Tue Nov 17 19:24:20 2015 +0100 atp870u: Simplify _probe() Move shpnt common code to the top, remove base_io, use pci_resource_len. Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 65 ++++++++++++++++++++++---------------------------- 1 file changed, 28 insertions(+), 37 deletions(-) commit dd5a5f7951e253b81ac480a63dfd8b826a9ef61e Author: Ondrej Zary Date: Tue Nov 17 19:24:19 2015 +0100 atp870u: Remove chip_ver from struct atp_unit chip_ver is used for wide chip detection only. Remove it and use a local variable instead (for 870; 880 and 885 are always wide). Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 39 ++++++++++++++------------------------- drivers/scsi/atp870u.h | 1 - 2 files changed, 14 insertions(+), 26 deletions(-) commit b1e850630b746e347f80cb3f70bdaa791c10b4f6 Author: Ondrej Zary Date: Tue Nov 17 19:24:18 2015 +0100 atp870u: Improve unsupported chip detection Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) commit bdd5ac4065dbc2bb1478ae0c9205a651487c7432 Author: Ondrej Zary Date: Tue Nov 17 19:24:17 2015 +0100 atp870u: Improve _probe() Move scsi_host_alloc() to the top of _probe() to remove code duplication, *p and unneeded atpdev (de)allocation and copying. While at it, fix the error paths to return real error codes and also add missing pci_disble_device() call. Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 236 +++++++++++++++++++++++-------------------------- 1 file changed, 113 insertions(+), 123 deletions(-) commit e1e9a70642309020571a07b2918eca84cec6287a Author: Ondrej Zary Date: Tue Nov 17 19:24:16 2015 +0100 atp870u: Remove unused irq from struct atp_unit Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.h | 1 - 1 file changed, 1 deletion(-) commit c48442d1277a9b9e20ad38c29ca68485b921d4e9 Author: Ondrej Zary Date: Tue Nov 17 19:24:15 2015 +0100 atp870u: Remove useless and broken card counting Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit 30ebc7efcf5cf653ec2f5567d9fce2b4e1247ab7 Author: Ondrej Zary Date: Tue Nov 17 19:24:14 2015 +0100 atp870u: Use n_io_port in request_region and release_region Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) commit 1ccd7d68fc3004e3ed111753e62385176fa28f40 Author: Ondrej Zary Date: Tue Nov 17 19:24:13 2015 +0100 atp870u: Use module_pci_driver Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) commit c4ad92bce06bf73946ea4bd5771b987685221e8a Author: Ondrej Zary Date: Tue Nov 17 19:24:12 2015 +0100 atp870u: Remove empty tscam_885() tscam_885() is empty (except a delay) so remove it. Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) commit 34a2c35d29a160b326bc63dfbff64ae38fe0a994 Author: Ondrej Zary Date: Tue Nov 17 19:24:11 2015 +0100 atp870u: Reduce log spam on module load/unload Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 6a1961bc9c8916fc40423cc71e44fd8c59fef360 Author: Ondrej Zary Date: Tue Nov 17 19:24:10 2015 +0100 atp870u: Introduce atp_set_host_id The code for setting host adapter ID is the same for all chips. Move it to a common function. Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 57 ++++++++++++++++---------------------------------- 1 file changed, 18 insertions(+), 39 deletions(-) commit c751d9f1fce4187bf1c0848d7d3a5bf7644d7f9c Author: Ondrej Zary Date: Tue Nov 17 19:24:09 2015 +0100 atp870u: Fix incorrect writeb_io access to register 0x3a The ioport region is 0x20 bytes long so accessing 0x3a register using writeb_io is incorrect. Use writeb_base instead. There's no change in behavior as 870 chips have ioport = baseport. Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 2bbbac4571de7983f142ed22add59e5217674169 Author: Ondrej Zary Date: Tue Nov 17 19:24:08 2015 +0100 atp870u: Replace port 0x80 delay by udelay tscam() is using port 0x80 access for delays but that's x86-only. Use udelay(2) instead. Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit d804bb255ce85b1fd7dfe447da5415952ba341c5 Author: Ondrej Zary Date: Tue Nov 17 19:24:07 2015 +0100 atp870u: Convert remaining in[bwl] and out[bwl] to wrappers Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 222 ++++++++++++++++++++++++++----------------------- 1 file changed, 118 insertions(+), 104 deletions(-) commit 4192a40f49f0ab3028019deaba5cdc3b9db789dd Author: Ondrej Zary Date: Tue Nov 17 19:24:06 2015 +0100 atp870u: Rename is885() to atp_is() Now that all the is* functions except is885() are gone, rename is885() to atp_is() to avoid confusion. Don't know what "is" means, though... Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 851eb6618e6a27004e33c0422fdcf05b5b45c025 Author: Ondrej Zary Date: Tue Nov 17 19:24:05 2015 +0100 atp870u: Remove is870() Now that is885() supports everything from is870() and the rest of the code is almost identical, remove is870() and use is885() instead. Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 427 +------------------------------------------------ 1 file changed, 1 insertion(+), 426 deletions(-) commit 95c1def50dd6b1de4ceb0d6950e37e74c301d9d2 Author: Ondrej Zary Date: Tue Nov 17 19:24:04 2015 +0100 atp870u: Move 870-specific code out of is870() Move few remaining 870-specific code lines out of is870() Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 460da918d46b075dcc9fdcf77281f8ebde169bd4 Author: Ondrej Zary Date: Tue Nov 17 19:24:03 2015 +0100 atp870u: Add remaining 870 support to is885() Add remaining 870 support to is885(): - different synw, no synuw - synu[4] = 0x0c - atp_writeb_io(dev, c, 0x04, 0x00); instead of atp_writeb_io(dev, c, 0x14, 0x00); (isn't that a bug?) - atp_writeb_io(dev, c, 0x14, 0xff); instead of atp_writeb_io(dev, c, 0x14, 0x06); - different mbuf[3] and mbuf[4] checks Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 45 +++++++++++++++++++++++++++++++-------------- 1 file changed, 31 insertions(+), 14 deletions(-) commit 197fb8d85707d07eab68ac17d20e95c7104f1d5e Author: Ondrej Zary Date: Tue Nov 17 19:24:02 2015 +0100 atp870u: Add wide_chip parameter to is870() and is885() Don't check chip_ver in is870() but add wide_chip parameter for that. Then add the non-wide support to is885(). Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 46 +++++++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 21 deletions(-) commit e7d6d140328cb8c92ad749ab8a614c9299269975 Author: Ondrej Zary Date: Tue Nov 17 19:24:01 2015 +0100 atp870u: Remove is880() Now that is880() and is885() are almost identical (except for some cpu_relax() calls and debug printks), remove is880() and use is885() instead. Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 572 +------------------------------------------------ 1 file changed, 1 insertion(+), 571 deletions(-) commit fa50b30842d8cea02903d55caf64fe22c0c4c8e2 Author: Ondrej Zary Date: Tue Nov 17 19:24:00 2015 +0100 atp870u: Move chip-specific lines out of is880() and is885() Move few chip-specifis lines out of is880() and is885() so they become almost identical. Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) commit bdf8b62dc3fb2ef5df22d36d1d2ec1d38e081290 Author: Ondrej Zary Date: Tue Nov 17 19:23:59 2015 +0100 atp870u: Add channel parameter to is870() and is880() Add channel parameter to is870() and is880() functions to simplify comparing them with is885(). Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 684 ++++++++++++++++++++++++------------------------- 1 file changed, 342 insertions(+), 342 deletions(-) commit 80b52a7f8d2d432e21ba1bd47212bc1aa93b3647 Author: Ondrej Zary Date: Tue Nov 17 19:23:58 2015 +0100 atp870u: Unify code format in is870(), is880() and is885() Unify code formatting in is870(), is880() and is885() functions to simplify comparing them. Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 170 +++++++++++++++++++++++++++++-------------------- 1 file changed, 101 insertions(+), 69 deletions(-) commit 5d2a5a4f86616587a37e0c50dbef359d3078d9f5 Author: Ondrej Zary Date: Tue Nov 17 19:23:57 2015 +0100 atp870u: Convert is885() to use wrappers Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 358 ++++++++++++++++++++++++------------------------- 1 file changed, 179 insertions(+), 179 deletions(-) commit 485025606b5bbd1024c9b2781fb8909afbd1a64d Author: Ondrej Zary Date: Tue Nov 17 19:23:56 2015 +0100 atp870u: Convert is880() to use wrappers Subtract 0x40 to use _io access wrappers. Now it's obvious that is870() and is880() are very similar. Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 352 ++++++++++++++++++++++++------------------------- 1 file changed, 176 insertions(+), 176 deletions(-) commit 152c3ac5e18057dbec396db83c76fccfa44aa258 Author: Ondrej Zary Date: Tue Nov 17 19:23:55 2015 +0100 atp870u: Convert is870() to use wrappers Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 276 ++++++++++++++++++++++++------------------------- 1 file changed, 138 insertions(+), 138 deletions(-) commit 6a3cebb682190f878dcab60450cfdb2eddeceb69 Author: Ondrej Zary Date: Tue Nov 17 19:23:54 2015 +0100 atp870u: Introduce HW access wrappers Introduce *_read? and *_write? wrappers to improve code readability. Also make sure that baseport is always initialized, not only for ATP880. Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 472 ++++++++++++++++++++++++++----------------------- 1 file changed, 252 insertions(+), 220 deletions(-) commit c7fcc089b0e49dce9208277871f69e42d8fb1db0 Author: Ondrej Zary Date: Tue Nov 17 19:23:53 2015 +0100 atp870u: Remove ugly gotos #5 Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 134 +++++++++++++++++++++++-------------------------- 1 file changed, 62 insertions(+), 72 deletions(-) commit 58c4d046b4d1d5b84875eb73115f3ef092abccce Author: Ondrej Zary Date: Tue Nov 17 19:23:52 2015 +0100 atp870u: Remove ugly gotos #4 Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) commit 832e9ac6de16ea07045ab3a18d7a64bc3fb1231c Author: Ondrej Zary Date: Tue Nov 17 19:23:51 2015 +0100 atp870u: Remove ugly gotos #3 Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) commit 468b8968157466996b70c610c080c41ae517c61c Author: Ondrej Zary Date: Tue Nov 17 19:23:50 2015 +0100 atp870u: Remove ugly gotos #2 Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 68 ++++++++++++++++++++++---------------------------- 1 file changed, 30 insertions(+), 38 deletions(-) commit 78614ecdda717ac4afa2764bec622b50400a1dc3 Author: Ondrej Zary Date: Tue Nov 17 19:23:49 2015 +0100 atp870u: Remove ugly gotos Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 84 ++++++++++++++++++-------------------------------- 1 file changed, 30 insertions(+), 54 deletions(-) commit c2bab4031b528b4a5a665a499fd87c2440758b00 Author: Ondrej Zary Date: Tue Nov 17 19:23:48 2015 +0100 atp870u: Untangle tmpcip #2 Untangle the tmpcip crap so it becomes obvious what ports are accessed. Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) commit bc0fe4c91cdc7e211ca7dafd9039d3bf40a41e3b Author: Ondrej Zary Date: Tue Nov 17 19:23:47 2015 +0100 atp870u: Untangle tmpcip Untangle the tmpcip crap so it becomes obvious what ports are accessed. Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 64 ++++++++++++++++++-------------------------------- 1 file changed, 23 insertions(+), 41 deletions(-) commit e2c22b45cb8feb00f2b8296e277d98485882ed92 Author: Ondrej Zary Date: Tue Nov 17 19:23:46 2015 +0100 atp870u: Untangle tmport #8 Untangle the tmport crap so it becomes obvious what ports are accessed. Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 478 ++++++++++++++++++------------------------------- 1 file changed, 177 insertions(+), 301 deletions(-) commit 2eabdf22ad667742258ef7c55a965e56366bf74d Author: Ondrej Zary Date: Tue Nov 17 19:23:45 2015 +0100 atp870u: Untangle tmport #7 Untangle the tmport crap so it becomes obvious what ports are accessed. Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) commit 493c5201933f39711569602dc938ac7054391b53 Author: Ondrej Zary Date: Tue Nov 17 19:23:44 2015 +0100 atp870u: Untangle tmport #6 Untangle the tmport crap so it becomes obvious what ports are accessed. Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 136 ++++++++++++++++++------------------------------- 1 file changed, 49 insertions(+), 87 deletions(-) commit 3b30acf6a8989dc1a98f959d3c7743790eab00df Author: Ondrej Zary Date: Tue Nov 17 19:23:43 2015 +0100 atp870u: Untangle tmport #5 Untangle the tmport crap so it becomes obvious what ports are accessed. Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 470 ++++++++++++++++++------------------------------- 1 file changed, 173 insertions(+), 297 deletions(-) commit ea41ed600b261fec87820c1aa2455942dcfa1ce7 Author: Ondrej Zary Date: Tue Nov 17 19:23:42 2015 +0100 atp870u: Untangle tmport #4 Untangle the tmport crap so it becomes obvious what ports are accessed. Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 370 ++++++++++++++++++------------------------------- 1 file changed, 138 insertions(+), 232 deletions(-) commit 1940ed62f9ca6d0b1f4c10afef3960f4f8a7d327 Author: Ondrej Zary Date: Tue Nov 17 19:23:41 2015 +0100 atp870u: Untangle tmport #3 Untangle the tmport crap so it becomes obvious what ports are accessed. Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 118 ++++++++++++++++++++----------------------------- 1 file changed, 49 insertions(+), 69 deletions(-) commit 3b836464809aff2795c22ba2a97f3b148e70282e Author: Ondrej Zary Date: Tue Nov 17 19:23:40 2015 +0100 atp870u: Untangle tmport #2 Untangle the tmport crap so it becomes obvious what ports are accessed. Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 79 ++++++++++++++++++++------------------------------ 1 file changed, 32 insertions(+), 47 deletions(-) commit 3a38e53ee6c6542410a32374a3bd5ae6c8fc9f09 Author: Ondrej Zary Date: Tue Nov 17 19:23:39 2015 +0100 atp870u: Untangle tmport Untangle the tmport crap so it becomes obvious what ports are accessed. Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 186 +++++++++++++++++++------------------------------ 1 file changed, 71 insertions(+), 115 deletions(-) commit b4263b3ce9bac236ee9317153a735ffeb635c0d9 Author: Ondrej Zary Date: Tue Nov 17 19:23:38 2015 +0100 atp870u: Remove tmport1 Remove tmport1 temporary variable to simplify the code. Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit c43cd036e531ca54b885dee535f535ab58bf8a0f Author: Ondrej Zary Date: Tue Nov 17 19:23:37 2015 +0100 atp870u: Remove workport Remove workport temporary variable to simplify the code. Signed-off-by: Ondrej Zary Reviewed-by: Hannes Reinicke Acked-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/atp870u.c | 59 ++++++++++++++++++++++++-------------------------- 1 file changed, 28 insertions(+), 31 deletions(-) commit 05a64b3b8b41bf3c3ca9b7f9f8a0e81ffadb20e3 Author: Kuninori Morimoto Date: Wed Nov 25 06:39:48 2015 +0000 arm64: defconfig: add Renesas sound and AK4613 support Signed-off-by: Kuninori Morimoto Signed-off-by: Simon Horman arch/arm64/configs/defconfig | 5 +++++ 1 file changed, 5 insertions(+) commit b1f637e1d7f27cf7342e2d42f64db3ba704422ed Author: Kuninori Morimoto Date: Wed Nov 25 06:39:32 2015 +0000 arm64: defconfig: add Renesas R-Car DMAC driver support Signed-off-by: Kuninori Morimoto Signed-off-by: Simon Horman arch/arm64/configs/defconfig | 1 + 1 file changed, 1 insertion(+) commit 672b79312c04016481a11d4b996b4512207ffbd3 Author: Kuninori Morimoto Date: Wed Nov 25 06:39:13 2015 +0000 arm64: renesas: salvator-x: Sound DVC support Signed-off-by: Kuninori Morimoto Signed-off-by: Simon Horman arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 27 ++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) commit f7df91f5f2f987f2639d292dc3f9101ad7318cf7 Author: Kuninori Morimoto Date: Wed Nov 25 06:38:52 2015 +0000 arm64: renesas: salvator-x: Sound SRC support Signed-off-by: Kuninori Morimoto Signed-off-by: Simon Horman arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b1d11d6743fccb533e724485dc83cce08579088d Author: Kuninori Morimoto Date: Wed Nov 25 06:38:31 2015 +0000 arm64: renesas: salvator-x: Sound SSI DMA support via BUSIF DMA transfer to/from SSIU DMA [MEM] -> [SSIU] -> [SSI] DMA [MEM] <- [SSIU] <- [SSI] Signed-off-by: Kuninori Morimoto Signed-off-by: Simon Horman arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 5 ----- 1 file changed, 5 deletions(-) commit d70726f4280f1d49f4e4a71008dad79e51251c24 Author: Kuninori Morimoto Date: Wed Nov 25 06:38:08 2015 +0000 arm64: renesas: salvator-x: Sound SSI DMA support DMA transfer to/from SSI DMA [MEM] -> [SSI] DMA [MEM] <- [SSI] Signed-off-by: Kuninori Morimoto Signed-off-by: Simon Horman arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 994aadf019e9ca7d16634f4e3b442950cefb4a05 Author: Kuninori Morimoto Date: Wed Nov 25 06:37:49 2015 +0000 arm64: renesas: salvator-x: Sound SSI PIO support This patch adds PIO sound support for Salvator-X board. It can use 44.1kHz base sound only at this point, since 48kHz base sound needs CS2000, but it is not yet upstreamed. Signed-off-by: Kuninori Morimoto Signed-off-by: Simon Horman arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 76 ++++++++++++++++++++++ 1 file changed, 76 insertions(+) commit b9dd9450ce0cfb60d8e4afd37191f86f3afba6c2 Author: Kuninori Morimoto Date: Wed Nov 25 06:37:29 2015 +0000 arm64: renesas: r8a7795: Sound DVC support Signed-off-by: Kuninori Morimoto Signed-off-by: Simon Horman arch/arm64/boot/dts/renesas/r8a7795.dtsi | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit b868ff51d5625a28a50ce8d40992d562535d3972 Author: Kuninori Morimoto Date: Wed Nov 25 06:37:08 2015 +0000 arm64: renesas: r8a7795: Sound SRC support Signed-off-by: Kuninori Morimoto Signed-off-by: Simon Horman arch/arm64/boot/dts/renesas/r8a7795.dtsi | 61 ++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) commit 10d18ab8392bb6e81224f37054693a0ea4366a0c Author: Kuninori Morimoto Date: Wed Nov 25 06:36:48 2015 +0000 arm64: renesas: r8a7795: Sound SSI DMA support Signed-off-by: Kuninori Morimoto Signed-off-by: Simon Horman arch/arm64/boot/dts/renesas/r8a7795.dtsi | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 623197b90c7aa97c0626b0aec06f95d05666b3e0 Author: Kuninori Morimoto Date: Wed Nov 25 06:36:25 2015 +0000 arm64: renesas: r8a7795: Sound SSI PIO support This patch adds SSI for PIO sound support Signed-off-by: Kuninori Morimoto Signed-off-by: Simon Horman arch/arm64/boot/dts/renesas/r8a7795.dtsi | 95 ++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) commit b281f4c8c198533d3e7dfb0f0302a2c3d96f6bc8 Author: Kuninori Morimoto Date: Wed Nov 25 06:36:02 2015 +0000 arm64: renesas: r8a7795: add AUDIO_DMAC support Signed-off-by: Kuninori Morimoto Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm64/boot/dts/renesas/r8a7795.dtsi | 64 ++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) commit d6ccc3ec95251d8d3276f2900b59cbc468dd74f4 Author: Juergen Gross Date: Tue Nov 17 15:51:19 2015 +0100 x86/paravirt: Remove paravirt ops pmd_update[_defer] and pte_update_defer pte_update_defer can be removed as it is always set to the same function as pte_update. So any usage of pte_update_defer() can be replaced by pte_update(). pmd_update and pmd_update_defer are always set to paravirt_nop, so they can just be nuked. Signed-off-by: Juergen Gross Acked-by: Rusty Russell Cc: jeremy@goop.org Cc: chrisw@sous-sol.org Cc: akataria@vmware.com Cc: virtualization@lists.linux-foundation.org Cc: xen-devel@lists.xen.org Cc: konrad.wilk@oracle.com Cc: david.vrabel@citrix.com Cc: boris.ostrovsky@oracle.com Link: http://lkml.kernel.org/r/1447771879-1806-1-git-send-email-jgross@suse.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/paravirt.h | 17 ----------------- arch/x86/include/asm/paravirt_types.h | 6 ------ arch/x86/include/asm/pgtable.h | 15 ++------------- arch/x86/kernel/paravirt.c | 3 --- arch/x86/lguest/boot.c | 1 - arch/x86/mm/pgtable.c | 7 +------ arch/x86/xen/mmu.c | 1 - 7 files changed, 3 insertions(+), 47 deletions(-) commit 0007bccc3cfd1e69deb0fd73ccc426b4cedb061d Author: Len Brown Date: Sun Aug 16 11:20:00 2015 -0400 x86: Replace RDRAND forced-reseed with simple sanity check x86_init_rdrand() was added with 2 goals: 1. Sanity check that the built-in-self-test circuit on the Digital Random Number Generator (DRNG) is not complaining. As RDRAND HW self-checks on every invocation, this goal is achieved by simply invoking RDRAND and checking its return code. 2. Force a full re-seed of the random number generator. This was done out of paranoia to benefit the most un-sophisticated DRNG implementation conceivable in the architecture, an implementation that does not exist, and unlikely ever will. This worst-case full-re-seed is achieved by invoking a 64-bit RDRAND 8192 times. Unfortunately, this worst-case re-seed costs O(1,000us). Magnifying this cost, it is done from identify_cpu(), which is the synchronous critical path to bring a processor on-line -- repeated for every logical processor in the system at boot and resume from S3. As it is very expensive, and of highly dubious value, we delete the worst-case re-seed from the kernel. We keep the 1st goal -- sanity check the hardware, and mark it absent if it complains. This change reduces the cost of x86_init_rdrand() by a factor of 1,000x, to O(1us) from O(1,000us). Signed-off-by: Len Brown Link: http://lkml.kernel.org/r/058618cc56ec6611171427ad7205e37e377aa8d4.1439738240.git.len.brown@intel.com Signed-off-by: Thomas Gleixner arch/x86/kernel/cpu/rdrand.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) commit 82bbe34b3d895fb026b2fc0e7da2e641797bfaed Author: Peter Zijlstra Date: Thu Nov 19 17:21:06 2015 +0100 nohz: Clarify magic in tick_nohz_stop_sched_tick() While going through the nohz code I got stumped by some of it. This patch adds a few comments clarifying the code; based on discussion with Thomas. Signed-off-by: Peter Zijlstra (Intel) Cc: Frederic Weisbecker Link: http://lkml.kernel.org/r/20151119162106.GO3816@twins.programming.kicks-ass.net Signed-off-by: Thomas Gleixner kernel/time/tick-sched.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) commit 09a9982016499daeb3fbee5ac8d87797310a565a Author: Thomas Gleixner Date: Thu Nov 19 11:43:09 2015 +0100 timekeeping: Lift clocksource cacheline restriction We cache all hotpath members of a clocksource in the time keeper core. So there is no requirement in general to cache line align struct clocksource. Remove the enforces alignment. That allows users which need to wrap struct clocksource into their own struct to align the struct without getting extra padding. Signed-off-by: Thomas Gleixner Cc: John Stultz Cc: Russell King - ARM Linux Cc: Marc Gonzalez Cc: Daniel Lezcano Cc: Mans Rullgard Cc: Viresh Kumar Cc: Nicolas Pitre Cc: Tony Lindgren Cc: Sebastian Frias Link: http://lkml.kernel.org/r/alpine.DEB.2.11.1511191209000.3898@nanos include/linux/clocksource.h | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) commit 39daa7b9e89512f234b7fb5d55812a78318251fc Author: Steven Rostedt (Red Hat) Date: Wed Nov 25 15:12:38 2015 -0500 ftrace: Show all tramps registered to a record on ftrace_bug() When an anomaly is detected in the function call modification code, ftrace_bug() is called to disable function tracing as well as give any information that may help debug the problem. Currently, only the first found trampoline that is attached to the failed record is reported. Instead, show all trampolines that are hooked to it. Also, not only show the ops pointer but also report the function it calls. While at it, add this info to the enabled_functions debug file too. Signed-off-by: Steven Rostedt kernel/trace/ftrace.c | 46 +++++++++++++++++++++++++++++++++++++--------- 1 file changed, 37 insertions(+), 9 deletions(-) commit b05086c77a162dd8ef79606cb4723f1fc1448bb1 Author: Steven Rostedt (Red Hat) Date: Wed Nov 25 14:13:11 2015 -0500 ftrace: Add variable ftrace_expected for archs to show expected code When an anomaly is found while modifying function code, ftrace_bug() is called which disables the function tracing infrastructure and reports information about what failed. If the code that is to be replaced does not match what is expected, then actual code is shown. Currently there is no arch generic way to show what was expected. Add a new variable pointer calld ftrace_expected that the arch code can set to point to what it expected so that ftrace_bug() can report the actual text as well as the text that was expected to be there. Signed-off-by: Steven Rostedt arch/x86/kernel/ftrace.c | 9 +++++++++ include/linux/ftrace.h | 6 ++++++ kernel/trace/ftrace.c | 9 +++++++-- 3 files changed, 22 insertions(+), 2 deletions(-) commit 02a392a0439ffdc62b4d8f17bd18d68736b166a9 Author: Steven Rostedt (Red Hat) Date: Wed Nov 25 12:50:47 2015 -0500 ftrace: Add new type to distinguish what kind of ftrace_bug() The ftrace function hook utility has several internal checks to make sure that whatever it modifies is exactly what it expects to be modifying. This is essential as modifying running code can be extremely dangerous to the system. When an anomaly is detected, ftrace_bug() is called which sends a splat to the console and disables function tracing. There's some extra information that is printed to help diagnose the issue. One thing that is missing though is output of what ftrace was doing at the time of the crash. Was it updating a call site or perhaps converting a call site to a nop? A new global enum variable is created to state what ftrace was doing at the time of the anomaly, and this is reported in ftrace_bug(). Signed-off-by: Steven Rostedt include/linux/ftrace.h | 9 +++++++++ kernel/trace/ftrace.c | 37 ++++++++++++++++++++++++++++++++++++- 2 files changed, 45 insertions(+), 1 deletion(-) commit 4e4a4d75700da67c1209c151d5f11a309c3b8367 Author: Tom Zanussi Date: Mon Nov 23 13:51:16 2015 -0600 tracing: Update cond flag when enabling or disabling a trigger When a trigger is enabled, the cond flag should be set beforehand, otherwise a trigger that's expecting to process a trace record (e.g. one with post_trigger set) could be invoked without one. Likewise a trigger's cond flag should be reset after it's disabled, not before. Link: http://lkml.kernel.org/r/a420b52a67b1c2d3cab017914362d153255acb99.1448303214.git.tom.zanussi@linux.intel.com Signed-off-by: Tom Zanussi Signed-off-by: Daniel Wagner Reviewed-by: Masami Hiramatsu Reviewed-by: Namhyung Kim Tested-by: Masami Hiramatsu Signed-off-by: Steven Rostedt kernel/trace/trace_events_trigger.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 4239c38fe0b3847e1e6d962c74b41b08ba0e2990 Author: Steven Rostedt (Red Hat) Date: Tue Nov 17 16:36:06 2015 -0500 ring-buffer: Process commits whenever moving to a new page. When crossing over to a new page, commit the current work. This will allow readers to get data with less latency, and also simplifies the work to get timestamps working for interrupted events. Signed-off-by: Steven Rostedt kernel/trace/ring_buffer.c | 7 +++++++ 1 file changed, 7 insertions(+) commit d8ad6a15cc3a364de6c8010378adc3fb06ce3ff1 Author: Wang Nan Date: Tue Nov 24 13:36:07 2015 +0000 tools lib bpf: Don't do a feature check when cleaning Before this patch libbpf always do feature check even when cleaning. For example: $ cd kernel/tools/lib/bpf $ make Auto-detecting system features: ... libelf: [ on ] ... bpf: [ on ] CC libbpf.o CC bpf.o LD libbpf-in.o LINK libbpf.a LINK libbpf.so $ make clean CLEAN libbpf CLEAN core-gen $ make clean Auto-detecting system features: ... libelf: [ on ] ... bpf: [ on ] CLEAN libbpf CLEAN core-gen $ Although the first 'make clean' doesn't show feature check result, it still does the check. No output because check result is similar to FEATURE-DUMP.libbpf. This patch uses same method as perf to turn off feature checking when 'make clean'. Reported-and-Tested-by: Arnaldo Carvalho de Melo Signed-off-by: Wang Nan Cc: Alexei Starovoitov Cc: Jiri Olsa Cc: Masami Hiramatsu Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1448372181-151723-3-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/lib/bpf/Makefile | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 5725dd8fa888b4dcdff58241f9d3d3ac42a048e2 Author: Wang Nan Date: Tue Nov 24 13:36:06 2015 +0000 tools build: Clean CFLAGS and LDFLAGS for fixdep Sometimes passing variables to tools/build is dangerous. For example, on my platform there is a gcc problem (gcc 4.8.1): It passes the stackprotector-all feature check: $ gcc -fstack-protector-all -c ./test.c $ echo $? 0 But requires LDFLAGS support if separate compiling and linking: $ gcc -fstack-protector-all -c ./test.c $ gcc ./test.o ./test.o: In function `main': test.c:(.text+0xb): undefined reference to `__stack_chk_guard' test.c:(.text+0x21): undefined reference to `__stack_chk_guard' collect2: error: ld returned 1 exit status $ gcc -fstack-protector-all ./test.o $ echo $? 0 $ gcc ./test.o -lssp $ echo $? 0 $ In this environment building perf throws an error: $ make BUILD: Doing 'make -j24' parallel build config/Makefile:344: No libunwind found. Please install libunwind-dev[el] >= 1.1 and/or set LIBUNWIND_DIR config/Makefile:403: No libaudit.h found, disables 'trace' tool, please install audit-libs-devel or libaudit-dev config/Makefile:418: slang not found, disables TUI support. Please install slang-devel or libslang-dev config/Makefile:432: GTK2 not found, disables GTK2 support. Please install gtk2-devel or libgtk2.0-dev config/Makefile:564: No bfd.h/libbfd found, please install binutils-dev[el]/zlib-static/libiberty-dev to gain symbol demangling config/Makefile:606: No numa.h found, disables 'perf bench numa mem' benchmark, please install numactl-devel/libnuma-devel/libnuma-dev CC fixdep.o LD fixdep-in.o LINK fixdep fixdep-in.o: In function `parse_dep_file': /kernel/tools/build/fixdep.c:47: undefined reference to `__stack_chk_guard' /kernel/tools/build/fixdep.c:117: undefined reference to `__stack_chk_guard' fixdep-in.o: In function `main': /kernel-hydrogen/tools/build/fixdep.c:156: undefined reference to `__stack_chk_guard' /kernel/tools/build/fixdep.c:168: undefined reference to `__stack_chk_guard' collect2: error: ld returned 1 exit status make[2]: *** [fixdep] Error 1 make[1]: *** [fixdep] Error 2 make: *** [all] Error 2 This is because the CFLAGS used in building perf pollutes the CFLAGS used for fixdep, passing -fstack-protector-all to buiold fixdep which is obviously not required. Since fixdep is a small host side tool, we should keep its CFLAGS/LDFLAGS simple and clean. This patch clears the CFLAGS and LDFLAGS passed when building fixdep, so such gcc problem won't block the perf build process. Signed-off-by: Wang Nan Acked-by: Jiri Olsa Cc: Alexei Starovoitov Cc: Masami Hiramatsu Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1448372181-151723-2-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/build/Makefile.include | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4d3b16269059eee12dc572848191c8e4e7bd24b3 Author: Masami Hiramatsu Date: Wed Nov 25 19:34:32 2015 +0900 perf probe: Fix to free temporal Dwarf_Frame correctly The commit 05c8d802fa52 ("perf probe: Fix to free temporal Dwarf_Frame") tried to fix the memory leak of Dwarf_Frame, but it released the frame at wrong point. Since the dwarf_frame_cfa(frame, &pf->fb_ops, &nops) can return an address inside the frame data structure to pf->fb_ops, we can not release the frame before using pf->fb_ops. This reverts the commit and releases the frame afterwards (right before returning from call_probe_finder) correctly. Reported-and-Tested-by: Arnaldo Carvalho de Melo Reported-by: Michael Petlan Signed-off-by: Masami Hiramatsu Cc: Adrian Hunter Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Wang Nan Fixes: 05c8d802fa52 ("perf probe: Fix to free temporal Dwarf_Frame") LPU-Reference: 20151125103432.1473.31009.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/probe-finder.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit d2b4365809060b256330a99289de9797a5dd6967 Author: Arnd Bergmann Date: Wed Nov 25 16:16:55 2015 +0100 cpuset: Replace all instances of time_t with time64_t The following patch replaces all instances of time_t with time64_t i.e. change the type used for representing time from 32-bit to 64-bit. All 32-bit kernels to date use a signed 32-bit time_t type, which can only represent time until January 2038. Since embedded systems running 32-bit Linux are going to survive beyond that date, we have to change all current uses, in a backwards compatible way. The patch also changes the function get_seconds() that returns a 32-bit integer to ktime_get_seconds() that returns seconds as 64-bit integer. The patch changes the type of ticks from time_t to u32. We keep ticks as 32-bits as the function uses 32-bit arithmetic which would prove less expensive than 64-bit arithmetic and the function is expected to be called atleast once every 32 seconds. Signed-off-by: Heena Sirwani Reviewed-by: Arnd Bergmann Signed-off-by: Arnd Bergmann Signed-off-by: Tejun Heo kernel/cpuset.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 00cc3679187a5306e76fd21832ddfd7e5604b7c3 Merge: 9458cea 1c2df9e Author: David S. Miller Date: Wed Nov 25 13:58:06 2015 -0500 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-11-25 This series contains updates to fm10k, i40e and i40evf. Alex Duyck fixes up fm10k to use napi_schedule_irqoff() instead of napi_schedule() since the function it is called from runs from hard interrupt context or with interrupts already disabled in netpoll. Shannon cleans up i40e and i40evf unused cd_tunneling parameter and any code comments that refer to it. Then clean up a few instances of BUG_ON, based on a Linux diatribe, especially when WARN_ON can be used. Helin fixed a issue where using ethtool RXNFC command could let receive flow hash could be set on disabled queues, so resolve by returning the number of enabled queues before setting RXNFC. Anjali fixes a MSS issue where the hardware/NVM sets a limit of no less than 256 bytes for MSS, yet the stack can send as low as 76 byte MSS. Fixed the issue by lowering the hardware limit to 64 bytes to avoid MDDs from firing and causing a reset when the MSS is lower than 256. Added a statistic to track how many times we forced to do a write back on transmit if the number of descriptors pending are less than a cache line. Catherine fixes link status changes, where polling would only change link status changes in one direction depending on what the last old data saved off was. This was due to the watchdog only calling link_event and not handle_link_event. Mitch cleans up and enhances error messages related to VF MAC/VLAN filters. v2: Dropped patch "i40e: Properly cast type for arithmetic" patch based on feedback from the community ==================== Signed-off-by: David S. Miller commit 34db37c63a08b8f06f8ff15c5c301a26635ddf25 Author: John Stultz Date: Fri Nov 13 13:07:31 2015 -0800 MAINTAINERS: Add entry for kernel/time/alarmtimer.c I've been missing patches against alarmtimer.c due to a lack of a proper entry for it in the MAINTAINERS file. So update MAINTAINERS to fix this, adding it in with the timekeeping, ntp and core clocksource logic I share with Thomas. Signed-off-by: John Stultz MAINTAINERS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a574795bc383c4ede89d038d8051d0d1ab4d571f Author: Lorenzo Pieralisi Date: Mon Nov 9 18:57:39 2015 +0000 PCI: generic,versatile: Remove unused pci_sys_data structures Commit b3a72384fe29 ("ARM/PCI: Replace pci_sys_data->align_resource with global function pointer") removed the struct pci_sys_data dependency from the ARM pcibios functions that are part of the common ARM PCI arch back-end, e.g., pcibios_align_resource(), so that struct pci_sys_data has now become data that is only used internally by the ARM bios32 layer, i.e., pci_common_init_dev(), and by host controllers drivers callbacks, e.g., pci_sys_data.setup, that rely on the ARM bios32 API to probe. PCI host controller drivers that do not rely on ARM bios32 calls to probe do not need to have the pci_bus.sysdata pointer field pointing at a struct pci_sys_data anymore, therefore it can be removed from the respective drivers data structures. Remove the pci_sys_data structures from the host controller drivers that do not rely on ARM bios32 interface to scan the PCI bus, completing the pci_sys_data clean-up and removing the related dependency on arch/arm specific data. Signed-off-by: Lorenzo Pieralisi Signed-off-by: Bjorn Helgaas Acked-by: Arnd Bergmann CC: Will Deacon CC: Rob Herring drivers/pci/host/pci-host-generic.c | 9 --------- drivers/pci/host/pci-versatile.c | 5 +---- 2 files changed, 1 insertion(+), 13 deletions(-) commit 1c2df9e5a763d6d88f9aea8ca76d0ca75753fbd5 Author: Catherine Sullivan Date: Wed Oct 21 19:56:24 2015 -0400 i40e: Bump version to 1.4.2 Bump. Change-ID: I2d1ce93b2ce74e4eef2394c932aef52cba99713f Signed-off-by: Catherine Sullivan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 043dd650efde3dfc65a6461e1cdc51cc87cb76f7 Author: Helin Zhang Date: Wed Oct 21 19:56:23 2015 -0400 i40e: create a generic configure rss function This patch renames the old pf-specific function in order to clarify its scope. This patch also creates a more generic configure RSS function with the old name. This patch also creates a new more generic function to get RSS configuration, using the appropriate method. Change-ID: Ieddca2707b708ef19f1ebccdfd03a0a0cd63d3af Signed-off-by: Helin Zhang Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e.h | 2 + drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 72 ++++++++++------------ drivers/net/ethernet/intel/i40e/i40e_main.c | 85 ++++++++++++++++++++++---- 3 files changed, 107 insertions(+), 52 deletions(-) commit e69ff813af354ae445518d44e299eeb85d5037e2 Author: Helin Zhang Date: Wed Oct 21 19:56:22 2015 -0400 i40e: rework the functions to configure RSS with similar parameters Adjust the RSS configure functions so that there is a generic way to hook to ethtool hooks. Change-ID: If446e34fcfaf1bc3320d9d319829a095b5976e67 Signed-off-by: Helin Zhang Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e.h | 1 + drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 1 - drivers/net/ethernet/intel/i40e/i40e_main.c | 95 +++++++++++++++++++------- 3 files changed, 71 insertions(+), 26 deletions(-) commit 3e3aa21fe9265bdc45ff795dbcc90bcdd2f1017c Author: Helin Zhang Date: Wed Oct 21 19:47:13 2015 -0400 i40e: return the number of enabled queues for ETHTOOL_GRXRINGS This patch fixes a problem where using ethtool rxnfc command could let RX flow hash be set on disabled queues. This patch fixes the problem by returning the number of enabled queues before setting rxnfc. Change-ID: Idbac86b0b47ddacc8deee7cd257e41de01cbe5c0 Signed-off-by: Helin Zhang Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1418c3458118c6969d08e23aa377da7e2a7be36c Author: Mitch Williams Date: Wed Oct 21 19:47:12 2015 -0400 i40evf: handle many MAC filters correctly When a lot (many hundreds) of MAC or VLAN filters are added at one time, we can overflow the Admin Queue buffer size with all the requests. Unfortunately, the driver would then calculate the message size incorrectly, causing it to be rejected by the PF. Furthermore, there was no mechanism to trigger another request to allow for configuring the rest of the filters that didn't fit into the first request. To fix this, recalculate the correct buffer size when we detect the overflow condition instead of just assuming the max buffer size. Also, don't clear the request bit in adapter->aq_required when we have an overflow, so that the rest of the filters can be processed later. Change-ID: Idd7cbbc5af31315e0dcb1b10e6a02ad9817ce65c Signed-off-by: Mitch Williams Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher .../net/ethernet/intel/i40evf/i40evf_virtchnl.c | 32 ++++++++++++++++------ 1 file changed, 24 insertions(+), 8 deletions(-) commit 8d8f2295d0752230e0a697af33e5af96561b64a0 Author: Mitch Williams Date: Wed Oct 21 19:47:11 2015 -0400 i40e/i40evf: clean up error messages Clean up and enhance error messages related to VF MAC/VLAN filters. Indicate which VF is having issues, and if possible indicate the MAC address or VLAN involved. Also, when an error is returned from the PF driver, print useful information about what went wrong, for the most likely cases. Change-ID: Ib3d15eef9e3369a78fd142948671e5fa26d921b8 Signed-off-by: Mitch Williams Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 21 +++++++++-------- .../net/ethernet/intel/i40evf/i40evf_virtchnl.c | 26 +++++++++++++++++++--- 2 files changed, 35 insertions(+), 12 deletions(-) commit 2f175f552ddb2498742c925332ce01b602fa029a Author: Helin Zhang Date: Wed Oct 21 19:47:10 2015 -0400 i40e/i40evf: Add comment to #endif Add a comment to the #endif to more easily match it with its #if. Change-ID: I47eb0a60a17dc6d2f01a930e45006d2dc82e044f Signed-off-by: Helin Zhang Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h | 2 +- drivers/net/ethernet/intel/i40evf/i40e_adminq_cmd.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 1f9610e4777c391e1e749ffc646b29dbff920834 Author: Catherine Sullivan Date: Wed Oct 21 19:47:09 2015 -0400 i40e: Move the saving of old link info from handle_link_event to link_event The watchdog only calls link_event not handle_link_event which means that we need to save the old information in link_event. Previously when polling we were comparing current data to the old data saved the last time we actually received a link event. This means that the polling would only fix link status changes in one direction depending on what the last old data saved off was. Change-ID: Ie590f30fdbcb133d0ddad4e07e3eb1aad58255b3 Signed-off-by: Catherine Sullivan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_main.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 164c9f54631beca4d174f306acdcaec2bdeef52e Author: Anjali Singhai Jain Date: Wed Oct 21 19:47:08 2015 -0400 i40e/i40evf: Add a stat to track how many times we have to do a force WB When in NAPI with interrupts disabled, the HW needs to be forced to do a write back on TX if the number of descriptors pending are less than a cache line. This stat helps keep track of how many times we get into this situation. Change-ID: I76c1bcc7ebccd6bffcc5aa33bfe05f2fa1c9a984 Signed-off-by: Anjali Singhai Jain Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e.h | 1 + drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 1 + drivers/net/ethernet/intel/i40e/i40e_main.c | 5 ++++- drivers/net/ethernet/intel/i40e/i40e_txrx.c | 4 +++- drivers/net/ethernet/intel/i40e/i40e_txrx.h | 1 + drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 4 +++- drivers/net/ethernet/intel/i40evf/i40e_txrx.h | 1 + 7 files changed, 14 insertions(+), 3 deletions(-) commit 4f2f017c6101ab2ba202d6059c238c15577ad38b Author: Anjali Singhai Jain Date: Wed Oct 21 19:47:07 2015 -0400 i40e: Workaround fix for mss < 256 issue HW/NVM sets a limit of no less than 256 bytes for MSS. Stack can send as low as 76 bytes MSS. This patch lowers the HW limit to 64 bytes to avoid MDDs from firing and causing a reset when the MSS is lower than 256. Change-ID: I36b500a6bb227d283c3e321a7718e0672b11fab0 Signed-off-by: Anjali Singhai Jain Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_main.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit f9b26ebb6e46f2231adc22d69f4150dc53f19b74 Author: Shannon Nelson Date: Wed Oct 21 19:47:05 2015 -0400 i40e: remove BUG_ON from FCoE setup There's no need to kill the kernel thread here. If this condition was true, the probe() would have died long before we got here. In any case, we'll get the same result when this code tries to use the VSI pointer being checked. Prompted by a recent Linus diatribe. Change-ID: I62f531cac34d4fc28ff9657d5b2d9523ae5e33a4 Signed-off-by: Shannon Nelson Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_fcoe.c | 2 -- 1 file changed, 2 deletions(-) commit 7fd89545f3374a061669a279ae0e084b0ddbb53d Author: Shannon Nelson Date: Wed Oct 21 19:47:04 2015 -0400 i40e: remove BUG_ON from feature string building There's really no reason to kill the kernel thread just because of a little info string. This reworks the code to use snprintf's limiting to assure that the string is never too long, and WARN_ON to still put out a warning that we might want to look at the feature list length. Prompted by a recent Linus diatribe. Change-ID: If52ba5ca1c2344d8bf454a31bbb805eb5d2c5802 Signed-off-by: Shannon Nelson Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_main.c | 34 +++++++++++++++-------------- 1 file changed, 18 insertions(+), 16 deletions(-) commit b875f99b4cb454e0aa1e68d2d8792112a1e07050 Author: Shannon Nelson Date: Wed Oct 21 19:47:03 2015 -0400 i40e: Change BUG_ON to WARN_ON in service event complete There's no need to kill the thread and eventually the kernel in this case. In fact, the remainder of the code won't hurt anything anyway, so just complain that we're here and move along. Prompted by a recent Linus diatribe. Change-ID: Iec020d8bcfedffc1cd2553cc6905fd915bb3e670 Signed-off-by: Shannon Nelson Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9c883bd3ebd127785ef0538b04e2d4b4c64c4c2d Author: Shannon Nelson Date: Wed Oct 21 19:47:02 2015 -0400 i40e/i40evf: remove unused tunnel parameter Code was moved into a separate function some time ago. Change-ID: Icabbe71ce05cf5d716d3e1152cdd9cd41d11bcb5 Signed-off-by: Shannon Nelson Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_txrx.c | 11 ++++------- drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 8 +++----- 2 files changed, 7 insertions(+), 12 deletions(-) commit de125aaecf3f06984dd32335f1e6a41c80b71011 Author: Alexander Duyck Date: Tue Sep 29 15:19:56 2015 -0700 fm10k: use napi_schedule_irqoff() The fm10k_msix_clean_rings function runs from hard interrupt context or with interrupts already disabled in netpoll. It can use napi_schedule_irqoff() instead of napi_schedule() Signed-off-by: Alexander Duyck Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_pci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d7cf931dd9f18ce8ee7a0a9b7813a19fb2c8f5e9 Author: Jens Axboe Date: Wed Nov 25 10:12:54 2015 -0700 Revert "blk-flush: Queue through IO scheduler when flush not required" This reverts commit 1b2ff19e6a957b1ef0f365ad331b608af80e932e. Jan writes: -- Thanks for report! After some investigation I found out we allocate elevator specific data in __get_request() only for non-flush requests. And this is actually required since the flush machinery uses the space in struct request for something else. Doh. So my patch is just wrong and not easy to fix since at the time __get_request() is called we are not sure whether the flush machinery will be used in the end. Jens, please revert 1b2ff19e6a957b1ef0f365ad331b608af80e932e. Thanks! I'm somewhat surprised that you can reliably hit the race where flushing gets disabled for the device just while the request is in flight. But I guess during boot it makes some sense. -- So let's just revert it, we can fix the queue run manually after the fact. This race is rare enough that it didn't trigger in testing, it requires the specific disable-while-in-flight scenario to trigger. block/blk-flush.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6f2f1ff0de83ad69f5a823ae77d1e0f77cc75d45 Author: Mengdong Lin Date: Mon Nov 23 11:03:52 2015 -0500 ASoC: Change 2nd argument of soc_bind_dai_link() to DAI link pointer Just code refactoring, to reuse it if new DAI Links are added later based on topology in component probing phase. Signed-off-by: Mengdong Lin Signed-off-by: Mark Brown sound/soc/soc-core.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 923c5e61ecd9b0ca006a7707583287439f36c2e9 Author: Mengdong Lin Date: Mon Nov 23 11:01:49 2015 -0500 ASoC: Define soc_init_dai_link() to wrap link intialization. Define soc_init_dai_link() to wrap link initialization, to reuse it later by snd_soc_instantiate_card() when adding new DAI links from topology in component probing phase. Move static func snd_soc_init_multicodec(), so that it can be reused by soc_init_dai_link(). This saves adding a function declaration for snd_soc_init_multicodec(). Signed-off-by: Mengdong Lin Signed-off-by: Mark Brown sound/soc/soc-core.c | 181 ++++++++++++++++++++++++++++----------------------- 1 file changed, 98 insertions(+), 83 deletions(-) commit 65976878ca692566ed066f4fa977de517f697c59 Author: Vinod Koul Date: Mon Nov 23 22:26:29 2015 +0530 ASoC: Intel: Skylake: Move up pipe mem free The MCPS is freed first thing in pmd events but non memory. So if we face error during teardown we leak this mem, so move the code up Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-topology.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2434caf098588856d1c332d2f60b8a2d8a198450 Author: Jeeja KP Date: Mon Nov 23 22:26:27 2015 +0530 ASoC: Intel: Skylake: Poll CLDMA RUN bit when set This patch adds polling of CLDMA stream run bit when set to confirm the HW reports the same value. Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-sst-cldma.c | 43 ++++++++++++++++++++++----------- 1 file changed, 29 insertions(+), 14 deletions(-) commit 06b23d9379d4cd034b7a5edad323ea9419ab2016 Author: Jeeja KP Date: Mon Nov 23 22:26:26 2015 +0530 ASoC: Intel: Skylake: Update pcm capability This patch adds pcm capability to support 16/8k rates and 32 bit formats Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-pcm.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 98256f83d2895fda3e596824797762937ab79f6b Author: Jeeja KP Date: Mon Nov 23 22:26:25 2015 +0530 ASoC: Intel: Skylake: Fix to update bit depth for module params Module hw param fixup will change the valid bit depth based on the fixup flag. If valid bit depth changes, need to set the bit depth according to valid bit depth. This patch fixes this issue of updating bit depth correctly. Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-topology.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) commit 7e3a17d311ca89a74cfd39e02e96d29d92849d34 Author: Jeeja KP Date: Mon Nov 23 22:26:24 2015 +0530 ASoC: Intel: Skylake: Reconfigure HDA stream register in prepare/resume PCM prepare callbacks can be called multiple times. During S3 the stream registers will be reset when Controller is reset. When stream is resumed, these stream registers needs to reconfigured. This patch removes the check in prepare callback() if stream already prepared, which will allow reconfiguring of stream registers and also decouple stream when stream is resumed to route audio via DSP. Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-pcm.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 8d598cabf50d837e69ebd6fc86aec5550df2b3a2 Author: Phil Edworthy Date: Tue Nov 3 16:19:26 2015 +0000 PCI: rcar: Allow DT to override default window settings If the DTB specifies dma-ranges, use those values. Otherwise, default to the values that were previously hardcoded into the driver. Signed-off-by: Phil Edworthy Signed-off-by: Bjorn Helgaas Acked-by: Rob Herring Acked-by: Simon Horman .../devicetree/bindings/pci/pci-rcar-gen2.txt | 6 ++ drivers/pci/host/pci-rcar-gen2.c | 76 +++++++++++++++++++++- 2 files changed, 79 insertions(+), 3 deletions(-) commit 64609eaab242d36e3e3b7cb81d31a028719feb74 Author: Guenter Roeck Date: Sun Nov 1 13:58:40 2015 -0800 PCI: pciehp: Always protect pciehp_disable_slot() with hotplug mutex When called from pciehp_sysfs_disable_slot(), the call to pciehp_disable_slot() was not protected by the hotplug mutex. Hold slot->hotplug_lock while calling pciehp_disable_slot(). Signed-off-by: Guenter Roeck Signed-off-by: Bjorn Helgaas Reviewed-by: Rajat Jain drivers/pci/hotplug/pciehp_ctrl.c | 2 ++ 1 file changed, 2 insertions(+) commit bd534e691adada9697b47b6c27acbca611c6fad4 Author: Fabio Estevam Date: Tue Oct 27 21:41:58 2015 -0200 PCI: imx6: Use gpio_set_value_cansleep() We are in a context where we can sleep, and the PCIe reset gpio may be on an I2C expander. Use the cansleep() variant when setting the GPIO value. Based on a patch from Russell King for pci-mvebu.c. Signed-off-by: Fabio Estevam Signed-off-by: Bjorn Helgaas Reviewed-by: Lucas Stach drivers/pci/host/pci-imx6.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f84a187019ccfce97fbf38fa9f3a8261fef91d8e Author: Benjamin Romer Date: Tue Nov 24 09:53:29 2015 -0500 staging: unisys: better config switch comments We should provide more information in the Kconfig help for visorbus and visorinput. Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/Kconfig | 7 ++++++- drivers/staging/unisys/visorinput/Kconfig | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) commit 24069d287cba5bc0279eac83b34eae8f59fd10ef Author: Anjali Menon Date: Fri Nov 20 18:34:37 2015 +0530 staging: unisys: visornic: Removed the blank line Removed the blank line before the close brace to remove the check detected by the checkpatch.pl CHECK: Blank lines aren't necessary before a close brace '}' Signed-off-by: Anjali Menon Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 1 - 1 file changed, 1 deletion(-) commit f2fd578f16c49256ae493d4bf192e361be9224fe Author: Shraddha Barke Date: Sat Nov 7 11:16:39 2015 +0530 Staging: lustre: obd_cksum.h: Remove unused cksum_types_supported_server cksum_types_supported_server is defined in header file but not used anywhere. Hence remove it. Signed-off-by: Shraddha Barke Acked-by: James Simmons Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/obd_cksum.h | 23 ----------------------- 1 file changed, 23 deletions(-) commit 9458ceab49179b7fd2d5192fd9dcf316ca195dc0 Author: Florian Fainelli Date: Tue Nov 24 15:30:21 2015 -0800 net: phy: bcm7xxx: Add entry for Broadcom BCM7435 Add a PHY entry for the Broadcom BCM7435 chips, this is a 40nm generation Ethernet PHY which is analogous to its 7425 and 7429 counter parts. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/bcm7xxx.c | 14 ++++++++++++++ include/linux/brcmphy.h | 1 + 2 files changed, 15 insertions(+) commit 4700579241d2d587765a58dddd1b2a89902767c0 Author: Takuya Yoshikawa Date: Fri Nov 20 17:46:29 2015 +0900 KVM: x86: MMU: Move initialization of parent_ptes out from kvm_mmu_alloc_page() Make kvm_mmu_alloc_page() do just what its name tells to do, and remove the extra allocation error check and zero-initialization of parent_ptes: shadow page headers allocated by kmem_cache_zalloc() are always in the per-VCPU pools. Signed-off-by: Takuya Yoshikawa Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 77fbbbd2f09fae486190bb2bd7142647dc2a6e8b Author: Takuya Yoshikawa Date: Fri Nov 20 17:45:44 2015 +0900 KVM: x86: MMU: Consolidate BUG_ON checks for reverse-mapped sptes At some call sites of rmap_get_first() and rmap_get_next(), BUG_ON is placed right after the call to detect unrelated sptes which must not be found in the reverse-mapping list. Move this check in rmap_get_first/next() so that all call sites, not just the users of the for_each_rmap_spte() macro, will be checked the same way. One thing to keep in mind is that kvm_mmu_unlink_parents() also uses rmap_get_first() to handle parent sptes. The change will not break it because parent sptes are present, at least until drop_parent_pte() actually unlinks them, and not mmio-sptes. Signed-off-by: Takuya Yoshikawa Signed-off-by: Paolo Bonzini Documentation/virtual/kvm/mmu.txt | 4 ++-- arch/x86/kvm/mmu.c | 26 +++++++++++++++++--------- 2 files changed, 19 insertions(+), 11 deletions(-) commit afd28fe1c901429eba8957f54bdb4a13cc15ae44 Author: Takuya Yoshikawa Date: Fri Nov 20 17:44:55 2015 +0900 KVM: x86: MMU: Remove is_rmap_spte() and use is_shadow_present_pte() is_rmap_spte(), originally named is_rmap_pte(), was introduced when the simple reverse mapping was implemented by commit cd4a4e5374110444 ("[PATCH] KVM: MMU: Implement simple reverse mapping"). At that point, its role was clear and only rmap_add() and rmap_remove() were using it to select sptes that need to be reverse-mapped. Independently of that, is_shadow_present_pte() was first introduced by commit c7addb902054195b ("KVM: Allow not-present guest page faults to bypass kvm") to do bypass_guest_pf optimization, which does not exist any more. These two seem to have changed their roles somewhat, and is_rmap_spte() just calls is_shadow_present_pte() now. Since using both of them without clear distinction just makes the code confusing, remove is_rmap_spte(). Signed-off-by: Takuya Yoshikawa Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 13 ++++--------- arch/x86/kvm/mmu_audit.c | 2 +- 2 files changed, 5 insertions(+), 10 deletions(-) commit 029499b477389f7d6486c8c759a8498bcfecf322 Author: Takuya Yoshikawa Date: Fri Nov 20 17:44:05 2015 +0900 KVM: x86: MMU: Make mmu_set_spte() return emulate value mmu_set_spte()'s code is based on the assumption that the emulate parameter has a valid pointer value if set_spte() returns true and write_fault is not zero. In other cases, emulate may be NULL, so a NULL-check is needed. Stop passing emulate pointer and make mmu_set_spte() return the emulate value instead to clean up this complex interface. Prefetch functions can just throw away the return value. Signed-off-by: Takuya Yoshikawa Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 27 ++++++++++++++------------- arch/x86/kvm/paging_tmpl.h | 10 +++++----- 2 files changed, 19 insertions(+), 18 deletions(-) commit fd9514572f721acbabb0ff24f6b5294a2449d492 Author: Takuya Yoshikawa Date: Fri Nov 20 17:43:13 2015 +0900 KVM: x86: MMU: Add helper function to clear a bit in unsync child bitmap Both __mmu_unsync_walk() and mmu_pages_clear_parents() have three line code which clears a bit in the unsync child bitmap; the former places it inside a loop block and uses a few goto statements to jump to it. A new helper function, clear_unsync_child_bit(), makes the code cleaner. Signed-off-by: Takuya Yoshikawa Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) commit 7ee0e5b29d275ac299cdf8ef67e60bf1648c8c6a Author: Takuya Yoshikawa Date: Fri Nov 20 17:42:23 2015 +0900 KVM: x86: MMU: Remove unused parameter of __direct_map() Signed-off-by: Takuya Yoshikawa Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit 018aabb56d6109c8f12397c24e59f67c58870ac1 Author: Takuya Yoshikawa Date: Fri Nov 20 17:41:28 2015 +0900 KVM: x86: MMU: Encapsulate the type of rmap-chain head in a new struct New struct kvm_rmap_head makes the code type-safe to some extent. Signed-off-by: Takuya Yoshikawa Signed-off-by: Paolo Bonzini arch/x86/include/asm/kvm_host.h | 8 +- arch/x86/kvm/mmu.c | 196 ++++++++++++++++++++-------------------- arch/x86/kvm/mmu_audit.c | 13 +-- 3 files changed, 113 insertions(+), 104 deletions(-) commit 378b417d652c4ff20be3144b7064e3a4ecd2571d Author: Yaowei Bai Date: Mon Nov 16 11:10:24 2015 +0800 KVM: powerpc: kvmppc_visible_gpa can be boolean In another patch kvm_is_visible_gfn is maken return bool due to this function only returns zero or one as its return value, let's also make kvmppc_visible_gpa return bool to keep consistent. No functional change. Signed-off-by: Yaowei Bai Signed-off-by: Paolo Bonzini arch/powerpc/kvm/book3s_pr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 08ff0d5e63b4f360091dd171b0ede1a3361227a1 Author: Yaowei Bai Date: Sat Nov 14 11:21:07 2015 +0800 KVM: kvm_para_has_feature can be boolean This patch makes kvm_para_has_feature return bool due to this particular function only using either one or zero as its return value. No functional change. Signed-off-by: Yaowei Bai Signed-off-by: Paolo Bonzini include/linux/kvm_para.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 33e941547923283f7f1022f3c35359ea9403d9a4 Author: Yaowei Bai Date: Sat Nov 14 11:21:06 2015 +0800 KVM: kvm_is_visible_gfn can be boolean This patch makes kvm_is_visible_gfn return bool due to this particular function only using either one or zero as its return value. No functional change. Signed-off-by: Yaowei Bai Signed-off-by: Paolo Bonzini include/linux/kvm_host.h | 2 +- virt/kvm/kvm_main.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) commit 4f52696a6c4d9b1449c462546f1318935c6973db Author: Markus Elfring Date: Sun Nov 15 10:40:36 2015 +0100 KVM-async_pf: Delete an unnecessary check before the function call "kmem_cache_destroy" The kmem_cache_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 Signed-off-by: Paolo Bonzini virt/kvm/async_pf.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 0e3d0648bd903ff6cda7499f9349a2ce612bccb4 Author: Paolo Bonzini Date: Fri Nov 13 11:52:45 2015 +0100 KVM: x86: MMU: always set accessed bit in shadow PTEs Commit 7a1638ce4220 ("nEPT: Redefine EPT-specific link_shadow_page()", 2013-08-05) says: Since nEPT doesn't support A/D bit, we should not set those bit when building the shadow page table. but this is not necessary. Even though nEPT doesn't support A/D bits, and hence the vmcs12 EPT pointer will never enable them, we always use them for shadow page tables if available (see construct_eptp in vmx.c). So we can set the A/D bits freely in the shadow page table. This patch hence basically reverts commit 7a1638ce4220. Cc: Yang Zhang Cc: Takuya Yoshikawa Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 9 +++------ arch/x86/kvm/paging_tmpl.h | 4 ++-- 2 files changed, 5 insertions(+), 8 deletions(-) commit aba2f06c070f604e388cf77b1dcc7f4cf4577eb0 Author: Paolo Bonzini Date: Thu Nov 12 16:42:18 2015 +0100 KVM: x86: correctly print #AC in traces Poor #AC was so unimportant until a few days ago that we were not even tracing its name correctly. But now it's all over the place. Cc: stable@vger.kernel.org Signed-off-by: Paolo Bonzini arch/x86/kvm/trace.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 46896c73c1a4dde527c3a3cc43379deeb41985a1 Author: Paolo Bonzini Date: Thu Nov 12 14:49:16 2015 +0100 KVM: svm: add support for RDTSCP RDTSCP was never supported for AMD CPUs, which nobody noticed because Linux does not use it. But exactly the fact that Linux does not use it makes the implementation very simple; we can freely trash MSR_TSC_AUX while running the guest. Cc: Joerg Roedel Signed-off-by: Paolo Bonzini arch/x86/kvm/svm.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) commit 9dbe6cf941a6fe82933aef565e4095fb10f65023 Author: Paolo Bonzini Date: Thu Nov 12 14:49:17 2015 +0100 KVM: x86: expose MSR_TSC_AUX to userspace If we do not do this, it is not properly saved and restored across migration. Windows notices due to its self-protection mechanisms, and is very upset about it (blue screen of death). Cc: Radim Krcmar Cc: stable@vger.kernel.org Signed-off-by: Paolo Bonzini arch/x86/kvm/x86.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit db3975717ac5e2c2761bae7b90c4f2e0abb5ef22 Author: Andrey Smetanin Date: Tue Nov 10 15:36:35 2015 +0300 kvm/x86: Hyper-V kvm exit A new vcpu exit is introduced to notify the userspace of the changes in Hyper-V SynIC configuration triggered by guest writing to the corresponding MSRs. Changes v4: * exit into userspace only if guest writes into SynIC MSR's Changes v3: * added KVM_EXIT_HYPERV types and structs notes into docs Signed-off-by: Andrey Smetanin Reviewed-by: Roman Kagan Signed-off-by: Denis V. Lunev CC: Gleb Natapov CC: Paolo Bonzini CC: Roman Kagan CC: Denis V. Lunev CC: qemu-devel@nongnu.org Signed-off-by: Paolo Bonzini Documentation/virtual/kvm/api.txt | 22 ++++++++++++++++++++++ arch/x86/include/asm/kvm_host.h | 1 + arch/x86/kvm/hyperv.c | 20 ++++++++++++++++++++ arch/x86/kvm/x86.c | 6 ++++++ include/linux/kvm_host.h | 1 + include/uapi/linux/kvm.h | 17 +++++++++++++++++ 6 files changed, 67 insertions(+) commit 5c919412fe61c35947816fdbd5f7bd09fe0dd073 Author: Andrey Smetanin Date: Tue Nov 10 15:36:34 2015 +0300 kvm/x86: Hyper-V synthetic interrupt controller SynIC (synthetic interrupt controller) is a lapic extension, which is controlled via MSRs and maintains for each vCPU - 16 synthetic interrupt "lines" (SINT's); each can be configured to trigger a specific interrupt vector optionally with auto-EOI semantics - a message page in the guest memory with 16 256-byte per-SINT message slots - an event flag page in the guest memory with 16 2048-bit per-SINT event flag areas The host triggers a SINT whenever it delivers a new message to the corresponding slot or flips an event flag bit in the corresponding area. The guest informs the host that it can try delivering a message by explicitly asserting EOI in lapic or writing to End-Of-Message (EOM) MSR. The userspace (qemu) triggers interrupts and receives EOM notifications via irqfd with resampler; for that, a GSI is allocated for each configured SINT, and irq_routing api is extended to support GSI-SINT mapping. Changes v4: * added activation of SynIC by vcpu KVM_ENABLE_CAP * added per SynIC active flag * added deactivation of APICv upon SynIC activation Changes v3: * added KVM_CAP_HYPERV_SYNIC and KVM_IRQ_ROUTING_HV_SINT notes into docs Changes v2: * do not use posted interrupts for Hyper-V SynIC AutoEOI vectors * add Hyper-V SynIC vectors into EOI exit bitmap * Hyper-V SyniIC SINT msr write logic simplified Signed-off-by: Andrey Smetanin Reviewed-by: Roman Kagan Signed-off-by: Denis V. Lunev CC: Gleb Natapov CC: Paolo Bonzini CC: Roman Kagan CC: Denis V. Lunev CC: qemu-devel@nongnu.org Signed-off-by: Paolo Bonzini Documentation/virtual/kvm/api.txt | 19 +++ arch/x86/include/asm/kvm_host.h | 15 ++ arch/x86/kvm/hyperv.c | 315 ++++++++++++++++++++++++++++++++++++++ arch/x86/kvm/hyperv.h | 23 +++ arch/x86/kvm/irq_comm.c | 34 ++++ arch/x86/kvm/lapic.c | 15 +- arch/x86/kvm/lapic.h | 5 + arch/x86/kvm/x86.c | 34 +++- include/linux/kvm_host.h | 6 + include/uapi/linux/kvm.h | 8 + 10 files changed, 467 insertions(+), 7 deletions(-) commit d62caabb41f33d96333f9ef15e09cd26e1c12760 Author: Andrey Smetanin Date: Tue Nov 10 15:36:33 2015 +0300 kvm/x86: per-vcpu apicv deactivation support The decision on whether to use hardware APIC virtualization used to be taken globally, based on the availability of the feature in the CPU and the value of a module parameter. However, under certain circumstances we want to control it on per-vcpu basis. In particular, when the userspace activates HyperV synthetic interrupt controller (SynIC), APICv has to be disabled as it's incompatible with SynIC auto-EOI behavior. To achieve that, introduce 'apicv_active' flag on struct kvm_vcpu_arch, and kvm_vcpu_deactivate_apicv() function to turn APICv off. The flag is initialized based on the module parameter and CPU capability, and consulted whenever an APICv-specific action is performed. Signed-off-by: Andrey Smetanin Reviewed-by: Roman Kagan Signed-off-by: Denis V. Lunev CC: Gleb Natapov CC: Paolo Bonzini CC: Roman Kagan CC: Denis V. Lunev CC: qemu-devel@nongnu.org Signed-off-by: Paolo Bonzini arch/x86/include/asm/kvm_host.h | 6 +++++- arch/x86/kvm/irq.c | 2 +- arch/x86/kvm/lapic.c | 23 +++++++++++---------- arch/x86/kvm/lapic.h | 4 ++-- arch/x86/kvm/svm.c | 11 +++++++--- arch/x86/kvm/vmx.c | 45 +++++++++++++++++------------------------ arch/x86/kvm/x86.c | 19 ++++++++++++++--- 7 files changed, 63 insertions(+), 47 deletions(-) commit 6308630bd3dbb6a8a883c4c571ce5e5a759a8a0e Author: Andrey Smetanin Date: Tue Nov 10 15:36:32 2015 +0300 kvm/x86: split ioapic-handled and EOI exit bitmaps The function to determine if the vector is handled by ioapic used to rely on the fact that only ioapic-handled vectors were set up to cause vmexits when virtual apic was in use. We're going to break this assumption when introducing Hyper-V synthetic interrupts: they may need to cause vmexits too. To achieve that, introduce a new bitmap dedicated specifically for ioapic-handled vectors, and populate EOI exit bitmap from it for now. Signed-off-by: Andrey Smetanin Reviewed-by: Roman Kagan Signed-off-by: Denis V. Lunev CC: Gleb Natapov CC: Paolo Bonzini CC: Roman Kagan CC: Denis V. Lunev CC: qemu-devel@nongnu.org Signed-off-by: Paolo Bonzini arch/x86/include/asm/kvm_host.h | 4 ++-- arch/x86/kvm/ioapic.c | 4 ++-- arch/x86/kvm/ioapic.h | 7 ++++--- arch/x86/kvm/irq_comm.c | 5 +++-- arch/x86/kvm/lapic.c | 2 +- arch/x86/kvm/svm.c | 2 +- arch/x86/kvm/vmx.c | 3 +-- arch/x86/kvm/x86.c | 11 ++++++----- 8 files changed, 20 insertions(+), 18 deletions(-) commit abdb080f7ac8a85547f5e0246362790043bbd3f2 Author: Andrey Smetanin Date: Tue Nov 10 15:36:31 2015 +0300 kvm/irqchip: kvm_arch_irq_routing_update renaming split Actually kvm_arch_irq_routing_update() should be kvm_arch_post_irq_routing_update() as it's called at the end of irq routing update. This renaming frees kvm_arch_irq_routing_update function name. kvm_arch_irq_routing_update() weak function which will be used to update mappings for arch-specific irq routing entries (in particular, the upcoming Hyper-V synthetic interrupts). Signed-off-by: Andrey Smetanin Reviewed-by: Roman Kagan Signed-off-by: Denis V. Lunev CC: Gleb Natapov CC: Paolo Bonzini CC: Roman Kagan CC: Denis V. Lunev CC: qemu-devel@nongnu.org Signed-off-by: Paolo Bonzini arch/x86/kvm/irq_comm.c | 2 +- include/linux/kvm_host.h | 5 +++-- virt/kvm/irqchip.c | 7 ++++++- 3 files changed, 10 insertions(+), 4 deletions(-) commit 8011e2490907c267e8be02a549246082d537e082 Author: Lars Ellenberg Date: Mon Jun 8 14:48:38 2015 +0200 drbd: fix error path during resize In case the lower level device size changed, but some other internal details of the resize did not work out, drbd_determine_dev_size() would try to restore the previous settings, trusting drbd_md_set_sector_offsets() to "do the right thing", but overlooked that this internally may set the meta data base offset based on device size. This could end up with incomplete on-disk meta data layout change, and ultimately lead to data corruption (if the failure was not noticed or ignored by the operator, and other things go wrong as well). Just remember all meta data related offsets/sizes, and on error restore them all. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_nl.c | 68 +++++++++++++++++++++++++------------------- 1 file changed, 38 insertions(+), 30 deletions(-) commit 5f7c01249bea67c32a1a1551a8f2fe0b8b801ab4 Author: Lars Ellenberg Date: Mon Jun 8 15:18:45 2015 +0200 drbd: avoid potential deadlock during handshake During handshake communication, we also reconsider our device size, using drbd_determine_dev_size(). Just in case we need to change the offsets or layout of our on-disk metadata, we lock out application and other meta data IO, and wait for the activity log to be "idle" (no more referenced extents). If this handshake happens just after a connection loss, with a fencing policy of "resource-and-stonith", we have frozen IO. If, additionally, the activity log was "starving" (too many incoming random writes at that point in time), it won't become idle, ever, because of the frozen IO, and this would be a lockup of the receiver thread, and consquentially of DRBD. Previous logic (re-)initialized with a special "empty" transaction block, which required the activity log to fully drain first. Instead, write out some standard activity log transactions. Using lc_try_lock_for_transaction() instead of lc_try_lock() does not care about pending activity log references, avoiding the potential deadlock. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_actlog.c | 19 +++++++++++-------- drivers/block/drbd/drbd_int.h | 2 +- drivers/block/drbd/drbd_nl.c | 33 +++++++++++++++++++-------------- 3 files changed, 31 insertions(+), 23 deletions(-) commit 603ee2c8c78b2fb5a9dc14fb8b2bb2650ebcab1f Author: Lars Ellenberg Date: Wed Jun 3 13:13:34 2015 +0200 drbd: separate out __al_write_transaction helper function To be able to "force out" an activity log transaction, even if there are no pending updates. This will be used to relocate the on-disk activity log, if the on-disk offsets have to be changed, without the need to empty the activity log first. While at it, move the definition, so we can drop the forward declaration of a static helper. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_actlog.c | 304 ++++++++++++++++++++------------------- 1 file changed, 156 insertions(+), 148 deletions(-) commit 7dbb4386b90a13a7b0cab12aae184e5e04c536c3 Author: Philipp Reisner Date: Thu Feb 28 10:30:19 2013 +0100 drbd: make suspend_io() / resume_io() must be thread and recursion safe Avoid to prematurely resume application IO: don't set/clear a single bit, but inc/dec an atomic counter. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_int.h | 4 ++-- drivers/block/drbd/drbd_nl.c | 8 +++++--- drivers/block/drbd/drbd_state.c | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) commit f85d9f2d02cdcd1b79e00fccd667b37b251ba3ac Author: Lars Ellenberg Date: Mon May 18 14:08:46 2015 +0200 drbd: fix "endless" transfer log walk in protocol A Don't remember a DRBD request as ack_pending, if it is not. In protocol A, we usually clear RQ_NET_PENDING at the same time we set RQ_NET_SENT, so when deciding to remember it as ack_pending, mod_rq_state needs to look at the current request state, not at the previous state before the current modification was applied. This should prevent advance_conn_req_ack_pending() from walking the full transfer log just to find NULL in protocol A, which would cause serious performance degradation with many "in-flight" requests, e.g. when working via DRBD-proxy, or with a huge bandwidth-delay product. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_req.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 706447861bb210cf2fb6a58bc1d29a6636175987 Author: Oleg Drokin Date: Sun Apr 26 01:28:43 2015 -0400 drbd: fix memory leak in drbd_adm_resize new_disk_conf could be leaked if the follow on checks fail, so make sure to free it on error if it was not assigned yet. Found with smatch. Signed-off-by: Oleg Drokin Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_nl.c | 2 ++ 1 file changed, 2 insertions(+) commit 5bded4effb601d9f92382db38fd501f98692eb2d Author: Lars Ellenberg Date: Thu Apr 16 16:51:34 2015 +0200 drbd: don't block forever in disconnect during resync if fencing=r-a-stonith Disconnect should wait for pending bitmap IO. But if that bitmap IO is not happening, because it is waiting for pending application IO, and there is no progress, because the fencing policy suspended application IO because of the disconnect, then we deadlock. The bitmap writeout in this case does not care for concurrent application IO, so there is no point waiting for it. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_main.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit bb649b34dd3d8f69308f5f193cb64457069c7222 Author: Roland Kammerer Date: Thu Apr 16 10:17:51 2015 +0200 lru_cache: Converted lc_seq_printf_status to return void Fix the semantic of lc_seq_printf. Currently, it always returns 0 and the return value is unused, therefore, convert the return type to void. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe include/linux/lru_cache.h | 2 +- lib/lru_cache.c | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) commit 63a7c8ad92af5f57d4a2c5be223d6ca424c3670b Author: Lars Ellenberg Date: Thu Mar 26 20:53:55 2015 +0100 drbd: make drbd known to lsblk: use bd_link_disk_holder lsblk should be able to pick up stacking device driver relations involving DRBD conveniently. Even though upstream kernel since 2011 says "DON'T USE THIS UNLESS YOU'RE ALREADY USING IT." a new user has been added since (bcache), which sets the precedences for us to use it as well. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_int.h | 2 +- drivers/block/drbd/drbd_main.c | 16 +----- drivers/block/drbd/drbd_nl.c | 121 ++++++++++++++++++++++++++++----------- drivers/block/drbd/drbd_worker.c | 2 +- include/linux/drbd.h | 2 +- 5 files changed, 91 insertions(+), 52 deletions(-) commit 088b70526d5b4080010147e4a6ae1252c3fc2228 Author: Lars Ellenberg Date: Tue Mar 24 21:46:29 2015 +0100 drbd: fix queue limit setup for discard We cannot possibly support SECDISCARD, even if all backend devices would support it: if our peer is currently unreachable, some instance of the data may obviously still be recoverable. We did not set discard_granularity at all. We don't really care (yet), we only pass them on, so for now, set our granularity to one sector. blkdev_stack_limits() takes care of the rest. If we decide we cannot support discards, not only clear the (not user visible) QUEUE_FLAG_DISCARD, but set both (user visible) discard_granularity and max_discard_sectors to zero, to avoid confusion with e.g. lsblk -D. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_nl.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) commit edb5e5f63d80c368467e4a0628c5b6d30f1673eb Author: Lars Ellenberg Date: Tue Mar 24 21:35:26 2015 +0100 drbd: fix spurious alert level printk When accessing out meta data area on disk, we double check the plausibility of the requested sector offsets, and are very noisy about it if they look suspicious. During initial read of our "superblock", for "external" meta data, this triggered because the range estimate returned by drbd_md_last_sector() was still wrong. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_main.c | 4 ++++ 1 file changed, 4 insertions(+) commit 5fb3bc4ddcdda8d2a6b2185075d140b9009f99b5 Author: Lars Ellenberg Date: Fri Mar 20 16:15:24 2015 +0100 drbd: use bitmap_weight() helper, don't open code Suggested by Akinobu Mita Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_bitmap.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 2630628b2dbc3fc320aafaf84836119e4e3d62f1 Author: Lars Ellenberg Date: Fri Mar 20 15:47:22 2015 +0100 drbd: avoid redefinition of BITS_PER_PAGE Apparently we now implicitly get definitions for BITS_PER_PAGE and BITS_PER_PAGE_MASK from the pid_namespace.h Instead of renaming our defines, I chose to define only if not yet defined, but to double check the value if already defined. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_bitmap.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 39e91a60c823603d6377cc8fa0b0bf301d1966eb Author: Lars Ellenberg Date: Tue Mar 24 10:40:26 2015 +0100 drbd: use resource name in workqueue Since kernel 3.3, we can use snprintf-style arguments to create a workqueue. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_main.c | 4 ++-- drivers/block/drbd/drbd_receiver.c | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) commit f5ec0173b92ba88c7b38e32a7ee3dd3b1568ea50 Author: Lars Ellenberg Date: Wed Mar 18 17:19:10 2015 +0100 drbd: debugfs: expose ed_data_gen_id The effective data generation ID may be interesting for debugging purposes of scenarios involving diskless states. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_debugfs.c | 10 ++++++++++ drivers/block/drbd/drbd_int.h | 1 + 2 files changed, 11 insertions(+) commit 9fa48269197f7fcb8ccfbef03c3f3a8616872579 Author: Lars Ellenberg Date: Wed Mar 18 17:13:26 2015 +0100 drbd: prevent NULL pointer deref when resuming diskless primary In a multiple error scenario, we may end up with a "frozen" Primary, that has no access to any data (no local disk, no replication link). If we then resume-io, we try to generate a new data generation id, which will fail if there is no longer a local disk. Double check for available local data, which prevents the NULL pointer deref. If we are diskless, turn the resume-io in this situation into the first stage of a "force down", by bumping the "effective" data gen id, which will prevent later attach or connect to the former data set without first being demoted (deconfigured). Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_nl.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) commit 668700b40a7c8727bbd2b3fd4fd22e0ce3f1aeb6 Author: Philipp Reisner Date: Mon Mar 16 16:08:29 2015 +0100 drbd: Create a dedicated workqueue for sending acks on the control connection The intention is to reduce CPU utilization. Recent measurements unveiled that the current performance bottleneck is CPU utilization on the receiving node. The asender thread became CPU limited. One of the main points is to eliminate the idr_for_each_entry() loop from the sending acks code path. One exception in that is sending back ping_acks. These stay in the ack-receiver thread. Otherwise the logic becomes too complicated for no added value. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_int.h | 27 ++--- drivers/block/drbd/drbd_main.c | 10 +- drivers/block/drbd/drbd_nl.c | 4 +- drivers/block/drbd/drbd_protocol.h | 2 +- drivers/block/drbd/drbd_receiver.c | 203 +++++++++++++++++++++---------------- drivers/block/drbd/drbd_req.c | 2 +- drivers/block/drbd/drbd_worker.c | 8 +- 7 files changed, 141 insertions(+), 115 deletions(-) commit 1c03e52083c8fa6e70a0b921d25d1916f68320fc Author: Philipp Reisner Date: Mon Mar 16 15:01:00 2015 +0100 drbd: Rename asender to ack_receiver This prepares the next patch where the sending on the meta (or control) socket is moved to a dedicated workqueue. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_int.h | 6 +++--- drivers/block/drbd/drbd_main.c | 10 +++++----- drivers/block/drbd/drbd_receiver.c | 6 +++--- 3 files changed, 11 insertions(+), 11 deletions(-) commit 6434f404b43afa0cfe54fec009760510431ca103 Author: Lars Ellenberg Date: Wed Feb 25 19:37:28 2015 +0100 drbd: fix refcount error during detach of an already failed disk A D_FAILED disk transitions as quickly as possible to D_DISKLESS. But in the "unresponsive local disk" case, there remains a time window where a administrative detach command could find the disk already failed, but some internal meta data IO against the unresponsive local disk still pending. In that case, drbd_md_get_buffer() will return NULL. Don't unconditionally call drbd_md_put_buffer(), or it will cause refcount imbalance, and prevent any further re-attach on this volume (until it is deleted and re-created). Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_nl.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 2b479766ee79a821f3cd7fad92fbcf2ff16cacb3 Author: Lars Ellenberg Date: Wed Feb 25 13:53:28 2015 +0100 drbd: fix NULL deref in remember_new_state The recent (not yet released) backport of the extended state broadcasts to support the "events2" subcommand of drbdsetup had some glitches. remember_old_state() would first count all connections with a net_conf != NULL, then allocate a suitable array, then populate that array with all connections found to have net_conf != NULL. This races with the state change to C_STANDALONE, and the NULL assignment there. remember_new_state() then iterates over said connection array, assuming that it would be fully populated. But rcu_lock() just makes sure the thing some pointer points to, if any, won't go away. It does not make the pointer itself immutable. In fact there is no need to "filter" connections based on whether or not they have a currently valid configuration. Just record them always, if they don't have a config, that's fine, there will be no change then. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_state.c | 46 +++++++++++++---------------------------- 1 file changed, 14 insertions(+), 32 deletions(-) commit 84d34f2f0724f26de04f9863704a7ca797c0fd62 Author: Lars Ellenberg Date: Thu Feb 19 13:54:11 2015 +0100 drbd: improve network timeout detection Don't blame the peer for being unresponsive, if we did not even ask the question yet. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_int.h | 2 + drivers/block/drbd/drbd_req.c | 123 ++++++++++++++++++++++++++++++--------- drivers/block/drbd/drbd_worker.c | 2 + 3 files changed, 100 insertions(+), 27 deletions(-) commit 142207f782dd7f174a1e1b954c3a9dd04316bd95 Author: Lars Ellenberg Date: Thu Feb 19 13:48:59 2015 +0100 drbd: drbd_panic_after_delayed_completion_of_aborted_request() The only way to make DRBD intentionally call panic is to set a disk timeout, have that trigger, "abort" some request and complete to upper layers, then have the backend IO subsystem later complete these requests successfully regardless. As the attached IO pages have been recycled for other purposes meanwhile, this will cause unexpected random memory changes. To prevent corruption, we rather panic in that case. Make it obvious from stack traces that this was the case by introducing drbd_panic_after_delayed_completion_of_aborted_request(). Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_worker.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit dc99562a48f39db4be0f9195137ec6f5350baf19 Author: Lars Ellenberg Date: Thu Feb 19 13:43:55 2015 +0100 drbd: add comment why we want to first call local-io-error, then send state Even though we really want to get the state information about our bad disk to the peer as soon as possible, it is useful to first call the local-io-error handler. People may chose to hard-reset the box from there. If that looks and behaves exactly like a "regular node crash", without bumping the data generation UUIDs on the peer in between, it makes it easier to deal with. If you intend to return from the local-io-error handler, then better return as quickly as possible to avoid triggering other timeouts. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_state.c | 4 ++++ 1 file changed, 4 insertions(+) commit 9bd2eb2c98239c465a51571b5c2a465a2ff7d70b Author: Lars Ellenberg Date: Thu Feb 19 14:01:50 2015 +0100 drbd: also bump UUIDs if a diskless primary connects If for some reason the primary lost its disk *and* the replication link before it is able to communicate the disk loss, probably blocked IO, then later is able to re-establish the connection, the peer needs to bump its UUIDs just like it does when peer only loses the disk and is able to communicate this in time. Otherwise, a later re-attach of the disk on the primary may start a resync in the "wrong" direction. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_state.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 05a72772fcaae4ac88052b6c93aa0d116ff0a748 Author: Lars Ellenberg Date: Mon Jan 26 11:35:38 2015 +0100 drbd: drbdsetup detach of an unresponsive local disk should not block IO "forever" When detaching, we make sure no application IO is in-flight by internally suspending IO, then trigger the state change, wait for the result, and finally internally resume IO again. Once we triggered the stat change to "Failed", we expect it to change from Failed to Diskless. (To avoid races, we actually wait for it to leave "Failed"). On an unresponsive local IO backend, this may not happen, ever. Don't have a "hung" detach block IO "forever", but resume IO before waiting for the state change to Diskless. We may well be able to continue IO to and from a healthy peer. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_nl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 92f108b41efdeace60e354bb619c164b50abf6f8 Author: Lars Ellenberg Date: Mon Jan 19 15:43:04 2015 +0100 drbd: drop remnants of connector -- we don't use it anymore in drbd 8.4 Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe include/linux/drbd.h | 1 - 1 file changed, 1 deletion(-) commit 05cbbb395f193a1d15e0f749eff8abe5c9c49b62 Author: Lars Ellenberg Date: Fri Jan 16 17:41:55 2015 +0100 drbd: Fix spurious disk-timeout (You should not use disk-timeout anyways, see the man page for why...) We add incoming requests to the tail of some ring list. On local completion, requests are removed from that list. The timer looks only at the head of that ring list, so is supposed to only see the oldest request. All protected by a spinlock. The request object is created with timestamps zeroed out. The timestamp was only filled in just before the actual submit. But to actually submit the request, we need to give up the spinlock. If you are unlucky, there is no older still pending request, the timer looks at a new request with timestamp still zero (before it even was submitted), and 0 + timeout is most likely older than "now". Better assign the timestamp right when we put the request object on said ring list. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_req.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d38f8612298d463cb5dbffdbac6db6e38c5dd22f Author: Philipp Reisner Date: Wed Dec 10 15:26:57 2014 +0100 drbd: Replace 0 with the more meaningful GFP_NOWAIT GFP_NOWAIT has a value of 0. I.e. functionality not changed. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_nl.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit d01efceeea99d91022e14aa4169857b1256bcba5 Author: Markus Elfring Date: Wed Nov 19 13:33:32 2014 +0100 drbd: Deletion of an unnecessary check before the function call "lc_destroy" The lc_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 Signed-off-by: Roland Kammerer Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_nl.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit a55bbd375d1802141f0f043e2cd08f85c23d6209 Author: Andreas Gruenbacher Date: Thu Aug 28 13:31:14 2014 +0200 drbd: Backport the "status" command The status command originates the drbd9 code base. While for now we keep the status information in /proc/drbd available, this commit allows the user base to gracefully migrate their monitoring infrastructure to the new status reporting interface. In drbd9 no status information is exposed through /proc/drbd. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_nl.c | 566 +++++++++++++++++++++++++++++++++++++------ include/linux/drbd_genl.h | 35 +++ include/linux/idr.h | 14 ++ 3 files changed, 536 insertions(+), 79 deletions(-) commit a29728463b254ce81ecefdf20c1a02e01d9361da Author: Andreas Gruenbacher Date: Thu Jul 31 17:41:33 2014 +0200 drbd: Backport the "events2" command The events2 command originates from drbd-9 development. It features more information but requires a incompatible change in output format. Therefore the previous events command continues to exist, the new improved events2 command becomes available now. This prepares the user-base for a later switch to the complete drbd9 code base. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_int.h | 45 +++ drivers/block/drbd/drbd_nl.c | 625 ++++++++++++++++++++++++++++++++- drivers/block/drbd/drbd_receiver.c | 6 - drivers/block/drbd/drbd_state.c | 424 +++++++++++++++++++++- drivers/block/drbd/drbd_state_change.h | 63 ++++ include/linux/drbd.h | 16 + include/linux/drbd_genl.h | 114 ++++++ 7 files changed, 1281 insertions(+), 12 deletions(-) commit 28bc3b8c71cda033a4c013131c635d1148889824 Author: Andreas Gruenbacher Date: Thu Aug 14 18:33:30 2014 +0200 drbd: Fix locking across all resources Instead of using a rwlock for synchronizing state changes across resources, take the request locks of all resources for global state changes. Use resources_mutex to serialize global state changes. This means that taking the request lock of a resource is now enough to prevent changes of that resource. (Previously, a read lock on the global state lock was needed as well.) Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_int.h | 18 ++------- drivers/block/drbd/drbd_main.c | 24 +++++++++++- drivers/block/drbd/drbd_nl.c | 45 +++++++++++---------- drivers/block/drbd/drbd_state.c | 14 +++---- drivers/block/drbd/drbd_state.h | 6 +-- drivers/block/drbd/drbd_worker.c | 85 ++++++++++++++++++---------------------- 6 files changed, 99 insertions(+), 93 deletions(-) commit 1ec317d3d1f9b9ec19926fdf2fc59fa3ec8cd15d Author: Andreas Gruenbacher Date: Thu Aug 14 16:17:58 2014 +0200 drbd: drbd_adm_attach(): Add missing drbd_resync_after_changed() Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_nl.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) commit f6ba86363908e3f4e3ef11f768be7ca2745b18cf Author: Andreas Gruenbacher Date: Wed Aug 13 18:33:55 2014 +0200 drbd: Move enum write_ordering_e to drbd.h Also change the enum values to all-capital letters. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_int.h | 6 ------ drivers/block/drbd/drbd_main.c | 2 +- drivers/block/drbd/drbd_nl.c | 4 ++-- drivers/block/drbd/drbd_proc.c | 6 +++--- drivers/block/drbd/drbd_receiver.c | 28 ++++++++++++++-------------- include/linux/drbd.h | 7 +++++++ 6 files changed, 27 insertions(+), 26 deletions(-) commit 5dd2ca1912714a006075e1cb763a3610ef9b3212 Author: Andreas Gruenbacher Date: Mon Aug 11 16:59:23 2014 +0200 drbd: Get rid of some first_peer_device() calls Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_receiver.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 2e9ffde6f0a6bbbd2975e0ec50578a5abae5a5a5 Author: Andreas Gruenbacher Date: Fri Aug 8 17:48:00 2014 +0200 drbd: De-inline drbd_should_do_remote() and drbd_should_send_out_of_sync() There is no need to have these two as inline functions. In addition, drbd_should_send_out_of_sync() is only used in a single place, anyway. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_req.c | 18 ++++++++++++++++++ drivers/block/drbd/drbd_req.h | 17 +---------------- 2 files changed, 19 insertions(+), 16 deletions(-) commit 3b8a44f8edfd695f3bf63e0371f5b622028e560a Author: Philipp Reisner Date: Wed Oct 29 17:19:44 2014 +0100 drbd: Remove pointless check In drbd-8.4 there is always a single connection per resource, and there is always exactly one peer_device for a device. peer_device can not be NULL here. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe drivers/block/drbd/drbd_nl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bc2c049d081ee6c2bf4809555c0c9f64a9a15e75 Author: Roland Kammerer Date: Tue Jul 7 16:37:10 2015 +0200 MAINTAINERS: Updated information for DRBD DRIVER - Changed obsoleted 'P' to 'M' entries. - Removed the user related mailing list. - Changed git repos to current versions Signed-off-by: Roland Kammerer Signed-off-by: Jens Axboe MAINTAINERS | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 87069f4493b2101a71a92b7b9565f488a605a88f Author: Geliang Tang Date: Wed Nov 25 21:23:07 2015 +0800 drm/mm: use list_next_entry To make the intention clearer, use list_next_entry instead of list_entry. Signed-off-by: Geliang Tang Signed-off-by: Daniel Vetter include/drm/drm_mm.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 25e342bc1d987966975c4b4641e46df6a8a6d2fd Merge: 730b5ec 6b3cecd Author: Mark Brown Date: Wed Nov 25 13:00:59 2015 +0000 Merge branch 'fix/rt5645' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-rt5645 commit a29d0f3ef934dd9eb2fbb51eb0f112f48046ee91 Author: Arnd Bergmann Date: Mon Nov 23 10:35:54 2015 +0100 ASoC: rcar: remove unused variable After a recent cleanup, the soc_card variable became unused and now produces a warning: soc/sh/rcar/core.c: In function '__rsnd_kctrl_new': soc/sh/rcar/core.c:801:23: warning: unused variable 'soc_card' [-Wunused-variable] This removes the variable. Fixes: 1a497983a5ae ("ASoC: Change the PCM runtime array to a list") Signed-off-by: Arnd Bergmann Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 1 - 1 file changed, 1 deletion(-) commit 50a4f98d3452ea3818eb364f9c34a9de139df654 Author: Vinod Koul Date: Mon Nov 23 21:22:29 2015 +0530 ASoC: core: mark SND_SOC_BYTES_EXT as deprecated Since we have SND_SOC_BYTES_TLV control to lets devices have larger size data sent, we do not need SND_SOC_BYTES_EXT with 512 byte limitation so mark it deprecated Signed-off-by: Vinod Koul Signed-off-by: Mark Brown include/sound/soc.h | 3 +++ 1 file changed, 3 insertions(+) commit 56b4437f15ed2003413b857e08740576332e72d7 Author: Vinod Koul Date: Mon Nov 23 21:22:30 2015 +0530 ASoC: dapm: add a dapm sink widget DAPM models various widgets but lacks a sink widget. DSPs can have modules which take audio data, process it and are capable of generating events thus acting as a sink of data. To make the dapm graph complete for such paths we need a dapm sink widget for these modules, so add a SND_SOC_DAPM_SINK to declare such a widget. This widget will be treated as SND_SOC_DAPM_EP_SINK endpoint in the dapm graph Signed-off-by: Vinod Koul Reviewed-by: Lars-Peter Clausen Signed-off-by: Mark Brown include/sound/soc-dapm.h | 4 ++++ sound/soc/soc-dapm.c | 5 +++++ 2 files changed, 9 insertions(+) commit 7ec3f7b47b8d9ad7ba425726f2c58f9ddce040df Author: Patrick McHardy Date: Tue Nov 24 10:00:22 2015 +0000 netfilter: nft_payload: add packet mangling support Add support for mangling packet payload. Checksum for the specified base header is updated automatically if requested, however no updates for any kind of pseudo headers are supported, meaning no stateless NAT is supported. For checksum updates different checksumming methods can be specified. The currently supported methods are NONE for no checksum updates, and INET for internet type checksums. Signed-off-by: Patrick McHardy Signed-off-by: Pablo Neira Ayuso include/net/netfilter/nf_tables_core.h | 9 +++ include/uapi/linux/netfilter/nf_tables.h | 17 ++++ net/netfilter/nft_payload.c | 135 +++++++++++++++++++++++++++++-- 3 files changed, 155 insertions(+), 6 deletions(-) commit a9ecfbe7fcf2f600718c3f995cbb46043f7a7a5d Author: Florian Westphal Date: Tue Nov 24 00:03:28 2015 +0100 netfilter: nf_tables: remove unused struct members Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso include/net/netfilter/nf_tables.h | 2 -- 1 file changed, 2 deletions(-) commit f13f2aeed154da8e48f90b85e720f8ba39b1e881 Author: Philip Whineray Date: Sun Nov 22 11:35:07 2015 +0000 netfilter: Set /proc/net entries owner to root in namespace Various files are owned by root with 0440 permission. Reading them is impossible in an unprivileged user namespace, interfering with firewall tools. For instance, iptables-save relies on /proc/net/ip_tables_names contents to dump only loaded tables. This patch assigned ownership of the following files to root in the current namespace: - /proc/net/*_tables_names - /proc/net/*_tables_matches - /proc/net/*_tables_targets - /proc/net/nf_conntrack - /proc/net/nf_conntrack_expect - /proc/net/netfilter/nfnetlink_log A mapping for root must be available, so this order should be followed: unshare(CLONE_NEWUSER); /* Setup the mapping */ unshare(CLONE_NEWNET); Signed-off-by: Philip Whineray Signed-off-by: Pablo Neira Ayuso net/netfilter/nf_conntrack_expect.c | 7 +++++++ net/netfilter/nf_conntrack_standalone.c | 7 +++++++ net/netfilter/nfnetlink_log.c | 15 +++++++++++++-- net/netfilter/x_tables.c | 12 ++++++++++++ 4 files changed, 39 insertions(+), 2 deletions(-) commit 0d3f3c9a48d758454b0f57ca3eccd9ea3f6a4724 Author: Moise Gergaud Date: Tue Nov 24 14:16:35 2015 +0100 ASoC: sti: set iec958 channel status sampling freq Previously, the iec958 channels status sampling freq was set only if not already set. It means that it is not updated for next PCM sessions. With this patch, we ensure the iec958 channels status sampling freq is set to the runtime rate for each PCM session. Signed-off-by: Moise Gergaud Acked-by: Arnaud Pouliquen Signed-off-by: Mark Brown sound/soc/sti/uniperif_player.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit c0ea88b890d67cff2667188f14189d8346e89a0f Author: Nikita Kiryanov Date: Wed Nov 25 13:59:04 2015 +0200 regulator: tps65218: add support for LS3 current regulator Add support for TPS65218 LS3 current regulator, which is capable of 4 current input limit modes: 100, 200, 500, and 1000 uA. Signed-off-by: Nikita Kiryanov Signed-off-by: Mark Brown drivers/regulator/tps65218-regulator.c | 137 +++++++++++++++++++++++++-------- include/linux/mfd/tps65218.h | 7 +- include/linux/regulator/driver.h | 2 + 3 files changed, 115 insertions(+), 31 deletions(-) commit 13b8a97a760eee021558dc48fd65e77e8a362909 Author: Shengjiu Wang Date: Tue Nov 24 17:19:34 2015 +0800 ASoC: fsl_asrc: spba clock is needed by asrc device ASRC need to enable the spba clock, when sdma is using share peripheral script. In this case, there is two spba master port is used, if don't enable the clock, the spba bus will have arbitration issue, which may cause read/write wrong data from/to ASRC registers Signed-off-by: Shengjiu Wang Acked-by: Nicolin Chen Signed-off-by: Mark Brown Documentation/devicetree/bindings/sound/fsl,asrc.txt | 5 +++++ sound/soc/fsl/fsl_asrc.c | 14 ++++++++++++++ sound/soc/fsl/fsl_asrc.h | 2 ++ 3 files changed, 21 insertions(+) commit 0bc5680af8c436d292797d58991b83bca570d079 Author: Shengjiu Wang Date: Tue Nov 24 17:19:33 2015 +0800 ASoC: fsl_spdif: spba clk is needed by spdif device SPDIF need to enable the spba clock, when sdma is using share peripheral script. In this case, there is two spba master port is used, if don't enable the clock, the spba bus will have arbitration issue, which may cause read/write wrong data from/to SPDIF registers. Signed-off-by: Shengjiu Wang Acked-by: Nicolin Chen Signed-off-by: Mark Brown Documentation/devicetree/bindings/sound/fsl,spdif.txt | 5 +++++ sound/soc/fsl/fsl_spdif.c | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+) commit a2a4d6049aa18c0e105d9b53e3236cb50ea5bfa1 Author: Shengjiu Wang Date: Tue Nov 24 17:19:32 2015 +0800 ASoC: fsl_esai: spba clock is needed by esai device ESAI need to enable the spba clock, when sdma is using share peripheral script. In this case, there is two spba master port is used, if don't enable the clock, the spba bus will have arbitration issue, which may cause read/write wrong data from/to ESAI registers. Signed-off-by: Shengjiu Wang Acked-by: Nicolin Chen Signed-off-by: Mark Brown Documentation/devicetree/bindings/sound/fsl,esai.txt | 5 +++++ sound/soc/fsl/fsl_esai.c | 17 +++++++++++++++++ 2 files changed, 22 insertions(+) commit 4ca730436a676afebbe6b77d65b5b4c4d7d38b9c Author: Zidan Wang Date: Tue Nov 24 15:32:09 2015 +0800 ASoC: fsl: using params_width function to simplify code using params_width function to simplify code. Signed-off-by: Zidan Wang Acked-by: Nicolin Chen Signed-off-by: Mark Brown sound/soc/fsl/fsl_asrc.c | 2 +- sound/soc/fsl/fsl_esai.c | 2 +- sound/soc/fsl/fsl_sai.c | 2 +- sound/soc/fsl/fsl_ssi.c | 3 +-- 4 files changed, 4 insertions(+), 5 deletions(-) commit 3d8d0bd07816b2dbb06014a98ab3d6599ae3566a Merge: f4faa29 c1df296 Author: Mark Brown Date: Wed Nov 25 12:12:48 2015 +0000 Merge branch 'topic/fsl-sai' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-fsl commit c1df29648f1e3ffb8bac38e27a22b50f5c019adf Author: Zidan Wang Date: Tue Nov 24 15:31:54 2015 +0800 ASoC: fsl_sai: add tdm slots operation support Add tdm slots operation support. If tdm slots and slot width have been configured in machine driver, we should use these values. Otherwise, using relevant channels and word length to set slots and slot width. SAI will generate BCLK depends on sample rate, slots and slot width. And there may be unused BCLK cycles before each LRCLK transition. Signed-off-by: Zidan Wang Acked-by: Nicolin Chen Signed-off-by: Mark Brown sound/soc/fsl/fsl_sai.c | 31 +++++++++++++++++++++++++------ sound/soc/fsl/fsl_sai.h | 3 +++ 2 files changed, 28 insertions(+), 6 deletions(-) commit 88467943b35d2c94c00c130166705ee18b775bbe Author: Axel Lin Date: Wed Nov 25 12:34:07 2015 +0800 regulator: pv88060: Fix irq leak Use devm_request_threaded_irq to ensure the irq is freed when unload the module. Signed-off-by: Axel Lin Signed-off-by: Mark Brown drivers/regulator/pv88060-regulator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a92ea59b74e231cc0a969afa8d71fa314d5860f2 Author: Jie Yang Date: Tue Nov 24 22:01:21 2015 +0800 ASoC: Intel: sst: only select sst-firmware when DW DMAC is built-in The previous commit ef3e199a49c8 ("ASoC: Intel: sst: only use sst-firmware when DW DMAC is available") does not fix the 0day building errors thoroughly: sound/built-in.o: In function 'dw_dma_remove' sound/built-in.o: In function 'dw_dma_probe' Here we fallback to select sst-firmware only when DW DMAC is built-in selected. We may need to refactor sst common driver and split DW related codes to platform driver, but ATM, this fallback may be the smallest fix. Please be noticed that after applying this patch, we may need select DW DMAC manually in DMA driver menu, before we can prompt and select HSW/BDW and old BYT machines. Signed-off-by: Jie Yang Cc: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/Kconfig | 8 ++++---- sound/soc/intel/common/Makefile | 4 +--- sound/soc/intel/common/sst-dsp.c | 2 +- sound/soc/intel/common/sst-dsp.h | 2 +- 4 files changed, 7 insertions(+), 9 deletions(-) commit e38da37fa8f410e61f2a6c03b3d14fec11b00259 Author: Leilk Liu Date: Wed Nov 25 17:50:38 2015 +0800 spi: mediatek: revise mtk_spi_probe() failure flow mtk_spi_probe() calls pm_runtime_enable(), after pm_runtime_enable() is called, it should call pm_runtime_disable() in the failure flow. Signed-off-by: Leilk Liu Signed-off-by: Mark Brown drivers/spi/spi-mt65xx.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 4d920471d718618dab2c1dc867b1438c84b8d8ff Merge: 4c3dbd3 98c8dcc Author: Mark Brown Date: Wed Nov 25 11:54:56 2015 +0000 Merge branch 'fix/mediatek' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi into spi-mtk commit 5921be792da61a84e0b53ed64908aab8145c859d Author: Michal Marek Date: Tue Oct 27 16:22:38 2015 +0100 Revert "drm: Hack around CONFIG_AGP=m build failures" Kbuild now supports -m variables. This reverts commit 8fa884dc355ffd0caa964a284a530bf747df5c77. Signed-off-by: Michal Marek drivers/gpu/drm/Makefile | 2 -- 1 file changed, 2 deletions(-) commit cf4f21938e13ea1533ebdcb21c46f1d998a44ee8 Author: Michal Marek Date: Tue Oct 27 14:02:24 2015 +0100 kbuild: Allow to specify composite modules with modname-m This allows to write drm-$(CONFIG_AGP) += drm_agpsupport.o without having to handle CONFIG_AGP=y vs. CONFIG_AGP=m. Only support this syntax for modules, since built-in code depending on something modular cannot work and init/Makefile actually relies on the current semantics. There are a few drivers which adapted to the current semantics out of necessity; these are fixed to also work when the respective subsystem is modular. Acked-by: Peter Chen [chipidea] Signed-off-by: Michal Marek drivers/misc/ibmasm/ibmasm.h | 2 +- drivers/usb/chipidea/otg_fsm.h | 2 +- fs/logfs/logfs.h | 2 +- scripts/Makefile.build | 8 ++++++-- scripts/Makefile.lib | 4 ++-- 5 files changed, 11 insertions(+), 7 deletions(-) commit 0046a46a8f93f5b99b499118779521ba3b017d69 Author: Michal Marek Date: Tue Oct 27 15:24:55 2015 +0100 staging/ad7606: Actually build the interface modules The ad7606_par and ad7606_spi drivers are not built if CONFIG_AD7606=m, because kbuild does not currently support -m syntax. Even if we add kbuild support, ad7606 fails to link, because of duplicate module_init definitions. Make the two drivers separate modules, as the Kconfig help text already suggests. Also, CONFIG_IIO_BUFFER is a dependency of CONFIG_AD7606, so there is no need to test for it in the Makefile. Signed-off-by: Michal Marek drivers/staging/iio/adc/Kconfig | 4 ++-- drivers/staging/iio/adc/Makefile | 7 +++---- drivers/staging/iio/adc/ad7606_core.c | 4 ++++ 3 files changed, 9 insertions(+), 6 deletions(-) commit ba64e27e9d3c558549f765869c6a471114c0f328 Author: Alban Bedel Date: Tue Nov 24 01:00:33 2015 +0100 reset: ath79: Add system restart support Add a system restart handler that use the FULL_CHIP_RESET bit of the reset controller. Signed-off-by: Alban Bedel Signed-off-by: Philipp Zabel drivers/reset/reset-ath79.c | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) commit 95150bdf78f330788f97364702920ad0602f92f3 Author: Jani Nikula Date: Tue Nov 24 21:21:56 2015 +0200 drm/i915: fix potential dangling else problems in for_each_ macros We have serious dangling else bugs waiting to happen in our for_each_ style macros with ifs. Consider, for example, #define for_each_power_domain(domain, mask) \ for ((domain) = 0; (domain) < POWER_DOMAIN_NUM; (domain)++) \ if ((1 << (domain)) & (mask)) If this is used in context: if (condition) for_each_power_domain(domain, mask); else foo(); foo() will be called for each domain *not* in mask, if condition holds, and not at all if condition doesn't hold. Fix this by reversing the conditions in the macros, and adding an else branch for the "for each" block, so that other if/else blocks can't interfere. Provide a "for_each_if" helper macro to make it easier to get this right. v2: move for_each_if to drmP.h in a separate patch. Reviewed-by: Daniel Vetter Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1448392916-2281-2-git-send-email-jani.nikula@intel.com Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 12 ++++++------ drivers/gpu/drm/i915/intel_display.c | 2 +- drivers/gpu/drm/i915/intel_dsi.h | 2 +- drivers/gpu/drm/i915/intel_runtime_pm.c | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) commit 373701b1fc7d7c0013ae4fffd8103615c150751e Author: Jani Nikula Date: Tue Nov 24 21:21:55 2015 +0200 drm: fix potential dangling else problems in for_each_ macros We have serious dangling else bugs waiting to happen in our for_each_ style macros with ifs. Consider, for example, #define drm_for_each_plane_mask(plane, dev, plane_mask) \ list_for_each_entry((plane), &(dev)->mode_config.plane_list, head) \ if ((plane_mask) & (1 << drm_plane_index(plane))) If this is used in context: if (condition) drm_for_each_plane_mask(plane, dev, plane_mask); else foo(); foo() will be called for each plane *not* in plane_mask, if condition holds, and not at all if condition doesn't hold. Fix this by reversing the conditions in the macros, and adding an else branch for the "for each" block, so that other if/else blocks can't interfere. Provide a "for_each_if" helper macro to make it easier to get this right. Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1448392916-2281-1-git-send-email-jani.nikula@intel.com Signed-off-by: Daniel Vetter include/drm/drmP.h | 3 +++ include/drm/drm_atomic.h | 6 +++--- include/drm/drm_crtc.h | 4 ++-- 3 files changed, 8 insertions(+), 5 deletions(-) commit 2e133f61882baefaf89dc79c56a7975d80360ef4 Author: Michael Trimarchi Date: Sun Nov 15 11:38:04 2015 +0100 clk: imx: clk-imx6q: Let OSC to be routed to anaclk2/2b OSC can be used as USB hub source clock. An example we can route to CLK2_P imx6 pin. This show a usage example: [...] usb_hub: usb-hub { compatible = "smsc,usb3503a"; clocks = <&clks IMX6QDL_CLK_LVDS2_GATE>; clock-names = "refclk"; }; }; [...] &clks { assigned-clocks = <&clks IMX6QDL_CLK_LVDS2_SEL>; assigned-clock-parents = <&clks IMX6QDL_CLK_OSC>; }; /sys/kernel/debug/clk/clk_summary osc 5 5 24000000 0 0 [...] lvds2_sel 1 1 24000000 0 0 lvds2_gate 1 1 24000000 0 0 [...] Signed-off-by: Michael Trimarchi Reviewed-by: Lucas Stach Signed-off-by: Shawn Guo drivers/clk/imx/clk-imx6q.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 4824b61c666831e1051530c7f0ff68b0ae6c2511 Author: Bai Ping Date: Wed Nov 25 00:06:53 2015 +0800 clk: imx: add 'is_prepared' clk_ops callback for pllv3 clk Add 'is_prepared' callback function for pllv3 type clk to make sure when the system is bootup, the unused clk is in a known state to match the prepare count info. Signed-off-by: Bai Ping Reviewed-by: Lucas Stach Signed-off-by: Shawn Guo drivers/clk/imx/clk-pllv3.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 78ae71ac882fbca3b092656b6fed46f0c2e71dd6 Author: Markus Pargmann Date: Tue Nov 24 12:17:58 2015 +0100 clk: imx25: Remove osc clock from driver The 'osc' clock is already initialized by the fixed clock defined in imx25.dtsi. The imx25 clock driver tries to add this clock for a second time and fails with -EEXIST: i.MX clk 1: register failed with -17 As the clock is already properly setup in DT with a different driver, we can completely remove the handling in the imx25 clock driver. Signed-off-by: Markus Pargmann Reviewed-by: Lucas Stach Signed-off-by: Shawn Guo drivers/clk/imx/clk-imx25.c | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) commit 5d48417592583ec64ec62661dd7cf1bd342a48fc Author: Nicolas Pitre Date: Sat Nov 21 20:35:31 2015 -0500 mach-imx/mach-imx6ul.c: proper constness with __initconst Both the pointer array and the pointed data have to be const when using __initconst to be correct. This also fixes LTO builds that otherwise fail with section mismatch errors. Signed-off-by: Nicolas Pitre Signed-off-by: Shawn Guo arch/arm/mach-imx/mach-imx6ul.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c8d9fdbe2d648caaa510d45dc13eba2e9957140b Author: Geert Uytterhoeven Date: Mon Nov 23 14:56:00 2015 +0100 ARM: shmobile: sh73a0 dtsi: Add L2 cache-controller node Add the missing L2 cache-controller node, and link the CPU nodes to it. This will allow migration to the generic l2c OF initialization. The L2 cache is an ARM L2C-310 (r3p1), of size 512 KiB (64 KiB x 8 ways). Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/sh73a0.dtsi | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 374e70075e58acfe922869aad1202b29f8fb76f5 Author: Geert Uytterhoeven Date: Mon Nov 23 14:55:59 2015 +0100 ARM: shmobile: r8a7740 dtsi: Add L2 cache-controller node Add the missing L2 cache-controller node, and link the CPU node to it. This will allow migration to the generic l2c OF initialization. The L2 cache is an ARM L2C-310 (r3p1-150rel0), of size 256 KiB (32 KiB x 8 ways). Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7740.dtsi | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit c175e7abf75f174a781d1218aa6fb2bdf2ff3eae Author: Simon Horman Date: Tue Nov 24 11:16:05 2015 +0900 ARM: shmobile: alt: Correct ether pfc 22b160713cb6 ("ARM: shmobile: alt: Add pfc pins to DT") introduced pfc pins to the alt device tree but did not reference them. This patch fixes ether pfc by: * Referencing ether pins * Adding and referencing phy1 pins * Removing ether b pins. These are not used in the configuration of the alt board used for testing and empirically their presence prevents ethernet from functioning correctly in that environment. Reported-by: Sergei Shtylyov Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7794-alt.dts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 7256587cf15e349b7241e4cc70e4132976765e1f Author: Simon Horman Date: Tue Nov 24 11:16:04 2015 +0900 ARM: shmobile: alt: Correct scif2 pfc 22b160713cb6 ("ARM: shmobile: alt: Add pfc pins to DT") introduced pfc pins to the alt device tree but did not reference them. This patch fixes scif2 pfc by adding references to the scif2 pins. Reported-by: Sergei Shtylyov Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7794-alt.dts | 3 +++ 1 file changed, 3 insertions(+) commit 99e14b36594cb6d6fb59aa44999c1f72508af348 Author: Geert Uytterhoeven Date: Fri Nov 20 11:38:55 2015 -0800 ARM: shmobile: silk: Move SPI FLASH partitions to subnode As of commits 5cfdedb7b9a0fe38 ("mtd: ofpart: move ofpart partitions to a dedicated dt node") and fe2585e9c29a650a ("doc: dt: mtd: support partitions in a special 'partitions' subnode"), having partitions as direct subnodes of an mtd device is discouraged. Hence move the SPI FLASH partitions to a "partitions" subnode. Based on similar work for the koelsch board by Geert Uytterhoeven. Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7794-silk.dts | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) commit f58bac70bf2d6cd9ff852d58199b598bfa6365c6 Author: Geert Uytterhoeven Date: Fri Nov 20 11:38:53 2015 -0800 ARM: shmobile: lager: Move SPI FLASH partitions to subnode As of commits 5cfdedb7b9a0fe38 ("mtd: ofpart: move ofpart partitions to a dedicated dt node") and fe2585e9c29a650a ("doc: dt: mtd: support partitions in a special 'partitions' subnode"), having partitions as direct subnodes of an mtd device is discouraged. Hence move the SPI FLASH partitions to a "partitions" subnode. Based on similar work for the koelsch board by Geert Uytterhoeven. Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7790-lager.dts | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) commit 26fac0eebccec898a7a7670856cbde5583a5ec2e Author: Geert Uytterhoeven Date: Fri Nov 20 11:38:54 2015 -0800 ARM: shmobile: porter: Move SPI FLASH partitions to subnode As of commits 5cfdedb7b9a0fe38 ("mtd: ofpart: move ofpart partitions to a dedicated dt node") and fe2585e9c29a650a ("doc: dt: mtd: support partitions in a special 'partitions' subnode"), having partitions as direct subnodes of an mtd device is discouraged. Hence move the SPI FLASH partitions to a "partitions" subnode. Based on similar work for the koelsch board by Geert Uytterhoeven. Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791-porter.dts | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) commit a7d57eec21d06cae06f03bd5ae47080a3dc3e898 Author: Geert Uytterhoeven Date: Fri Nov 20 11:38:52 2015 -0800 ARM: shmobile: bockw: Move SPI FLASH partition to subnode As of commits 5cfdedb7b9a0fe38 ("mtd: ofpart: move ofpart partitions to a dedicated dt node") and fe2585e9c29a650a ("doc: dt: mtd: support partitions in a special 'partitions' subnode"), having partitions as direct subnodes of an mtd device is discouraged. Hence move the SPI FLASH partition to a "partitions" subnode. Based on similar work for the koelsch board by Geert Uytterhoeven. Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7778-bockw.dts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit 22a1ae361169d74e845fe91912d084191fa7b4a5 Author: Laurent Pinchart Date: Wed Nov 25 02:01:05 2015 +0200 ARM: shmobile: r8a7791: koelsch: Fix pinmux for HDMI The signals output by the DU to the HDMI transmitter use full 24-bit RGB. Make sure all pins are properly muxed. Signed-off-by: Laurent Pinchart Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791-koelsch.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 369d4933db6a515b90d153767159918845eb4f5f Author: Wolfram Sang Date: Tue Nov 24 22:32:23 2015 +0100 ARM: shmobile: r8a7794: remove deprecated #gpio-range-cells from dtsi Commit a1bc260bb5f5d9 ("gpio: clean up gpio-ranges documentation") declares the above property deprecated. That was more than 2 years ago. Remove it, so it doesn't get copied around needlessly. Signed-off-by: Wolfram Sang Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7794.dtsi | 1 - 1 file changed, 1 deletion(-) commit d3b2385577317d8b51fc3b3b75106dd2de7e7439 Author: Wolfram Sang Date: Tue Nov 24 22:32:22 2015 +0100 ARM: shmobile: r8a7791: remove deprecated #gpio-range-cells from dtsi Commit a1bc260bb5f5d9 ("gpio: clean up gpio-ranges documentation") declares the above property deprecated. That was more than 2 years ago. Remove it, so it doesn't get copied around needlessly. Signed-off-by: Wolfram Sang Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791.dtsi | 1 - 1 file changed, 1 deletion(-) commit ee94fc9b026dd14dd31d9975a62caebf70472a59 Author: Laurent Pinchart Date: Mon Nov 16 18:15:23 2015 +0900 ARM: shmobile: r8a7793: Add DU node to device tree Add the DU device with a disabled state. Boards that want to enable the DU need to specify the output topology. Signed-off-by: Laurent Pinchart Signed-off-by: Magnus Damm Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7793.dtsi | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) commit f4ce7effe2253a325f8ba182903cbdf0d8698593 Author: Hauke Mehrtens Date: Sat Nov 21 15:29:47 2015 +0100 ARM: BCM5310X: activate erratas needed for SoC The BCM4708 I have, which is probably the first generation which got to the consumer market, is using a ARM Cortex-A9 rev r3p0 and a L2C-310 rev r3p2 L2 cache controller. There are 3 workarounds for known erratas in the Linux kernel which could be activated and will be in this patch. There are currently no workarounds which have to be activated for the L2C-310 rev r3p2 in Linux. Signed-off-by: Hauke Mehrtens Signed-off-by: Florian Fainelli arch/arm/mach-bcm/Kconfig | 4 ++++ 1 file changed, 4 insertions(+) commit 937b12306ea79044c86f2e69b3061c7279245825 Author: Lucas Stach Date: Thu Oct 15 12:32:22 2015 +0200 ARM: BCM5301X: remove workaround imprecise abort fault handler This is not needed anymore. Handling a potentially pending imprecise external abort left behind by the bootloader is now done in a slightly safer way inside the common ARM startup code. Signed-off-by: Lucas Stach Acked-by: Hauke Mehrtens Tested-by: Tyler Baker Signed-off-by: Florian Fainelli arch/arm/mach-bcm/bcm_5301x.c | 35 ----------------------------------- 1 file changed, 35 deletions(-) commit e80e7edc55ba711f3fe23975061b3f1c336ceb95 Author: Guilherme G. Piccoli Date: Wed Oct 21 12:17:35 2015 -0200 PCI/MSI: Initialize MSI capability for all architectures 1851617cd2da ("PCI/MSI: Disable MSI at enumeration even if kernel doesn't support MSI") moved dev->msi_cap and dev->msix_cap initialization from the pci_init_capabilities() path (used on all architectures) to the pci_setup_device() path (not used on Open Firmware architectures). This broke MSI or MSI-X on Open Firmware machines. 4d9aac397a5d ("powerpc/PCI: Disable MSI/MSI-X interrupts at PCI probe time in OF case") fixed it for PowerPC but not for SPARC. Set up MSI and MSI-X (initialize msi_cap and msix_cap and disable MSI and MSI-X) in pci_init_capabilities() so all architectures do it the same way. This reverts 4d9aac397a5d since this patch fixes the problem generically for both PowerPC and SPARC. [bhelgaas: changelog, make pci_msi_setup_pci_dev() static] Fixes: 1851617cd2da ("PCI/MSI: Disable MSI at enumeration even if kernel doesn't support MSI") Signed-off-by: Guilherme G. Piccoli Signed-off-by: Bjorn Helgaas arch/powerpc/kernel/pci_of_scan.c | 3 --- drivers/pci/probe.c | 7 ++++--- include/linux/pci.h | 2 -- 3 files changed, 4 insertions(+), 8 deletions(-) commit 6e23ec4a1118e8dbabee8e62ec20ef78e9aa804d Author: Egor Uleyskiy Date: Sun Nov 22 11:27:57 2015 +0200 drivers: staging: vme: Deleted casting to (void *) Signed-off-by: Egor Uleyskiy Signed-off-by: Greg Kroah-Hartman drivers/staging/vme/devices/vme_pio2_core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 59a04f11350bcf5653aee760fb3d5e06a651b640 Author: Egor Uleyskiy Date: Sun Nov 22 11:27:56 2015 +0200 drivers: staging: vme: Fixed checking NULL and 0 code style Signed-off-by: Egor Uleyskiy Signed-off-by: Greg Kroah-Hartman drivers/staging/vme/devices/vme_pio2_core.c | 2 +- drivers/staging/vme/devices/vme_pio2_gpio.c | 2 +- drivers/staging/vme/devices/vme_user.c | 12 ++++++------ 3 files changed, 8 insertions(+), 8 deletions(-) commit 48a42206dd343f490f40ddaf44e8f0f9fb3aed37 Author: Egor Uleyskiy Date: Sun Nov 22 11:27:55 2015 +0200 drivers: staging: vme: Deleted extra bracking * Deleted extra bracking of VME_* constants * Deleted extra bracking of address operator Signed-off-by: Egor Uleyskiy Signed-off-by: Greg Kroah-Hartman drivers/staging/vme/devices/vme_pio2_core.c | 2 +- drivers/staging/vme/devices/vme_pio2_gpio.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 93a28666a9fadc56fa700e496bb549faf490f3a4 Author: Egor Uleyskiy Date: Sun Nov 22 11:27:54 2015 +0200 drivers: staging: vme: Fixed the using of sizeof Constructions that looks like card = kzalloc(sizeof(struct pio2_card), GFP_KERNEL); are changed to card = kzalloc(sizeof(*card), GFP_KERNEL); Signed-off-by: Egor Uleyskiy Signed-off-by: Greg Kroah-Hartman drivers/staging/vme/devices/vme_pio2_core.c | 2 +- drivers/staging/vme/devices/vme_user.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) commit cad5636db7a28693dbed3268cb1ee4fe7ddaf6b4 Author: Egor Uleyskiy Date: Sun Nov 22 11:27:53 2015 +0200 drivers: staging: vme: Deleted extra empty lines Signed-off-by: Egor Uleyskiy Signed-off-by: Greg Kroah-Hartman drivers/staging/vme/devices/vme_pio2_gpio.c | 2 -- drivers/staging/vme/devices/vme_user.h | 2 -- 2 files changed, 4 deletions(-) commit 24e394b08e11be8fdc7a769f757a775367a36b7d Author: Egor Uleyskiy Date: Sun Nov 22 11:27:52 2015 +0200 drivers: staging: vme: Fixed indention Signed-off-by: Egor Uleyskiy Signed-off-by: Greg Kroah-Hartman drivers/staging/vme/devices/vme_pio2_cntr.c | 2 +- drivers/staging/vme/devices/vme_pio2_core.c | 16 ++++++++-------- drivers/staging/vme/devices/vme_pio2_gpio.c | 24 ++++++++++++------------ 3 files changed, 21 insertions(+), 21 deletions(-) commit 3b627a3f934c493ada71217f14681e5157e95783 Author: Jens Axboe Date: Tue Nov 24 15:58:53 2015 -0700 block: clarify blk_add_timer() use case for blk-mq Just a comment update on not needing queue_lock, and that we aren't really adding the request to a timeout list for !mq. Signed-off-by: Jens Axboe block/blk-timeout.c | 6 ++++++ 1 file changed, 6 insertions(+) commit bd5cecea43ef379e82250addd0303e2f9ede6793 Author: Geliang Tang Date: Sat Nov 21 17:27:31 2015 +0800 bio: use offset_in_page macro Use offset_in_page macro instead of (addr & ~PAGE_MASK). Signed-off-by: Geliang Tang Signed-off-by: Jens Axboe block/bio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1fe8f348416b3fb35ea3f24fa92bb1d29ffe7b0b Author: Wei Tang Date: Tue Nov 24 09:58:46 2015 +0800 block: do not initialise statics to 0 or NULL This patch fixes the checkpatch.pl error to genhd.c: ERROR: do not initialise statics to 0 or NULL Signed-off-by: Wei Tang Signed-off-by: Jens Axboe block/genhd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d674d4145e1909e0e4c394bb2633ef73d539bd27 Author: Wei Tang Date: Tue Nov 24 09:58:45 2015 +0800 block: do not initialise globals to 0 or NULL This patch fixes the checkpatch.pl error to blk-exec.c: ERROR: do not initialise globals to 0 or NULL Signed-off-by: Wei Tang Signed-off-by: Jens Axboe block/blk-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c2789bd403f4c0c541a359cf318b1dda9a14234f Author: Ilya Dryomov Date: Fri Nov 20 22:16:46 2015 +0100 block: rename request_queue slab cache Name the cache after the actual name of the struct. Signed-off-by: Ilya Dryomov Signed-off-by: Jens Axboe block/blk-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0ba44351025f8f6aa279a7e4feb5e23429801c10 Merge: bad5316 1af2729 Author: David S. Miller Date: Tue Nov 24 16:48:17 2015 -0500 Merge branch 'sh_eth-remove-obsolete-platform_ids' Geert Uytterhoeven says: ==================== sh_eth: Remove obsolete platform_device_id entries Since commit 3d7608e4c169af03 ("ARM: shmobile: bockw: remove legacy board file and config"), which is in v4.4-rc1, shmobile SoCs are only supported in generic DT-only ARM multi-platform builds. The sh_eth driver doesn't need to match platform devices by name anymore, hence this series removes the corresponding platform_device_id entries. Changes since v2: - More Acks, - Platform dependency has entered mainline, Changes since v1: - Protect some data and functions by #ifdef CONFIG_OF to silence unused compiler warnings on SH, - New patches 3 and 4. Thanks for applying! ==================== Signed-off-by: David S. Miller commit 1af2729c5eaab76874944a3557713a18b494cec0 Author: Geert Uytterhoeven Date: Tue Nov 24 15:41:00 2015 +0100 sh_eth: Remove obsolete r8a777x-ether platform_device_id entry Since commit 3d7608e4c169af03 ("ARM: shmobile: bockw: remove legacy board file and config"), R-Car Gen1 SoCs are only supported in generic DT-only ARM multi-platform builds. The driver doesn't need to match platform devices by name anymore, hence remove the corresponding platform_device_id entry. Protect sh_eth_set_rate_r8a777x() and r8a777x_data by #ifdef CONFIG_OF, as they're now referenced on DT platforms only. Signed-off-by: Geert Uytterhoeven Acked-by: Simon Horman Signed-off-by: David S. Miller drivers/net/ethernet/renesas/sh_eth.c | 3 --- 1 file changed, 3 deletions(-) commit a0f48be33c666b11a633a94414744adbb653ecd9 Author: Geert Uytterhoeven Date: Tue Nov 24 15:40:59 2015 +0100 sh_eth: Remove obsolete r8a7740-gether platform_device_id entry Since commit 1fa59bda21c7fa36 ("ARM: shmobile: Remove legacy board code for Armadillo-800 EVA"), r8a7740 is only supported in generic DT-only ARM multi-platform builds. The driver doesn't need to match platform devices by name anymore, hence remove the corresponding platform_device_id entry. Protect r8a7740_data by #ifdef CONFIG_OF as it's now referenced on DT platforms only. Move it to a more logical position, in front of the r8a777x support, so we can have a single #ifdef covering all r7s* and r8a* support soon. This requires moving a few helper functions, too. Signed-off-by: Geert Uytterhoeven Acked-by: Simon Horman Signed-off-by: David S. Miller drivers/net/ethernet/renesas/sh_eth.c | 125 +++++++++++++++++----------------- 1 file changed, 62 insertions(+), 63 deletions(-) commit c74a2248f937d857a98e927f3e3c56d3dde61e14 Author: Geert Uytterhoeven Date: Tue Nov 24 15:40:58 2015 +0100 sh_eth: Remove obsolete r8a779x-ether platform_device_id entries Since commit a483dcbfa21f919c ("ARM: shmobile: lager: Remove legacy board support"), R-Car Gen2 SoCs are only supported in generic DT-only ARM multi-platform builds. The driver doesn't need to match platform devices by name anymore, hence remove the corresponding platform_device_id entry. Protect r8a779x_data by #ifdef CONFIG_OF as it's now referenced on DT platforms only. Signed-off-by: Geert Uytterhoeven Acked-by: Simon Horman Signed-off-by: David S. Miller drivers/net/ethernet/renesas/sh_eth.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 99f84be60ab1d0a89fd4215678dbc7f0392e558c Author: Geert Uytterhoeven Date: Tue Nov 24 15:40:57 2015 +0100 sh_eth: Remove obsolete r7s72100-ether platform_device_id entry Since commit 05104c266ae9a167 ("ARM: shmobile: r7s72100: genmai: Remove legacy board file"), r7s72100 is only supported in generic DT-only ARM multi-platform builds. The driver doesn't need to match platform devices by name anymore, hence remove the corresponding platform_device_id entry. Protect r7s72100_data by #ifdef CONFIG_OF as it's now referenced on DT platforms only. Move it to a more logical position, in front of the r8a777x support, so we can have a single #ifdef covering all r7s* and r8a* support soon. This requires moving a helper function, too. Signed-off-by: Geert Uytterhoeven Acked-by: Simon Horman Signed-off-by: David S. Miller drivers/net/ethernet/renesas/sh_eth.c | 83 ++++++++++++++++++----------------- 1 file changed, 42 insertions(+), 41 deletions(-) commit c1b98e41b356a1807d7083d958790da2027c0d9d Author: Arnd Bergmann Date: Tue Nov 24 15:28:48 2015 -0600 PCI: iproc: Hide CONFIG_PCIE_IPROC PCIE_IPROC_BCMA does not require CONFIG_OF in Kconfig, but CONFIG_PCIE_IPROC does, so we can get a warning when building for an ARM platform without DT support: warning: (PCIE_IPROC_PLATFORM && PCIE_IPROC_BCMA) selects PCIE_IPROC which has unmet direct dependencies (PCI && OF && (ARM || ARM64)) It turns out that CONFIG_PCIE_IPROC never needs to be enabled by a user anyway, we can simply rely on it being selected implictly through either PCIE_IPROC_PLATFORM or PCIE_IPROC_BCMA. Fixes: 4785ffbdc9b5 ("PCI: iproc: Add BCMA PCIe driver") Signed-off-by: Arnd Bergmann Signed-off-by: Bjorn Helgaas Acked-by: Hauke Mehrtens drivers/pci/host/Kconfig | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit bad531623253d1e1fb8d140bdc3a077216fd0c5a Author: Nikolay Aleksandrov Date: Tue Nov 24 14:29:16 2015 +0100 vrf: remove slave queue and private slave struct The private slave queue and slave struct haven't been used for anything and aren't needed, this allows to reduce memory usage and simplify enslave/release. We can use netdev_for_each_lower_dev() to free the vrf ports when deleting a vrf device. Also if in the future a private struct is needed for each slave, it can be implemented via lower devices' private member (similar to how bonding does it). Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller drivers/net/vrf.c | 68 ++++--------------------------------------------------- 1 file changed, 5 insertions(+), 63 deletions(-) commit 54f1aa2e5786b8de9595fa85ba5351dd0ad85861 Merge: 73b1c90 dc4270c Author: David S. Miller Date: Tue Nov 24 16:22:40 2015 -0500 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-11-23 Here's the first bluetooth-next pull request for the 4.5 kernel. - Add new Get Advertising Size Information management command - Add support for new system note message type on monitor channel - Refactor LE scan changes behind separate workqueue to avoid races - Fix issue with privacy feature when powering on adapter - Various minor fixes & cleanups here and there Please let me know if there are any issues pulling. Thanks. ==================== Signed-off-by: David S. Miller commit 73b1c90d3650a81ff9997f6d1ddfda6efb9fac09 Author: Saurabh Sengar Date: Mon Nov 23 19:21:48 2015 +0530 net: fec: no need to test for the return type of of_property_read_u32 in case of error no need to set num_tx and num_rx = 1, because in case of error these variables will remain unchanged by of_property_read_u32 ie 1 only Signed-off-by: Saurabh Sengar Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fec_main.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit 724fe6955c88db8b249681cd78a76c10163bb0ba Author: Saurabh Sengar Date: Mon Nov 23 19:02:15 2015 +0530 drivers: net: xgene: optimizing the code this patch does the following: 1 . remove unnecessary if, else condition 2 . reduce one variable 3 . change the return type of 2 functions to void as there return values turn out to be 0 always after above changes Signed-off-by: Saurabh Sengar Signed-off-by: David S. Miller drivers/net/ethernet/apm/xgene/xgene_enet_main.c | 25 +++++++++--------------- 1 file changed, 9 insertions(+), 16 deletions(-) commit 2e35c8833bc737a0c87a18e9b8c0de8495467d97 Author: Jani Nikula Date: Tue Nov 24 18:47:25 2015 +0200 drm/i915: remove duplicate definition of for_each_power_domain commit b04c5bd6fda54703e56f29569e4bca489d6c5a5c Author: Borun Fu Date: Sat Jul 12 10:02:27 2014 +0530 drm/i915: Power gating display wells during i915_pm_suspend moved for_each_power_domain from intel_display.c to i915_drv.h but we still have the definition around in intel_display.c, due to a merge conflict resolution gone wrong in commit 4dac3edfe68e5e1b3c2216b84ba160572420fa40 Merge: 487777673e35 e05444be705b Author: Daniel Vetter Date: Tue Jul 29 20:49:36 2014 +0200 Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next Just remove the extra definition left behind. Reviewed-by: Daniel Vetter Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1448383645-7615-1-git-send-email-jani.nikula@intel.com drivers/gpu/drm/i915/intel_display.c | 4 ---- 1 file changed, 4 deletions(-) commit 8e017e00bc480753d1f9fb2a1d708f49c6937ec0 Merge: 6c1c36b 4716620 Author: David S. Miller Date: Tue Nov 24 14:22:27 2015 -0500 Merge tag 'linux-can-next-for-4.5-20151123' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next Marc Kleine-Budde says: ==================== pull-request: can-next 2015-11-23 this is a pull request of a single patch for net-next/master. The patch by Kedareswara rao Appana converts the xilinx CAN driver to runtime_pm. ==================== Signed-off-by: David S. Miller commit 414ca017a54d26c3a58ed1504884e51448d22ae1 Author: J. Bruce Fields Date: Fri Nov 20 10:48:02 2015 -0500 nfsd4: fix gss-proxy 4.1 mounts for some AD principals The principal name on a gss cred is used to setup the NFSv4.0 callback, which has to have a client principal name to authenticate to. That code wants the name to be in the form servicetype@hostname. rpc.svcgssd passes down such names (and passes down no principal name at all in the case the principal isn't a service principal). gss-proxy always passes down the principal name, and passes it down in the form servicetype/hostname@REALM. So we've been munging the name gss-proxy passes down into the format the NFSv4.0 callback code expects, or throwing away the name if we can't. Since the introduction of the MACH_CRED enforcement in NFSv4.1, we've also been using the principal name to verify that certain operations are done as the same principal as was used on the original EXCHANGE_ID call. For that application, the original name passed down by gss-proxy is also useful. Lack of that name in some cases was causing some kerberized NFSv4.1 mount failures in an Active Directory environment. This fix only works in the gss-proxy case. The fix for legacy rpc.svcgssd would be more involved, and rpc.svcgssd already has other problems in the AD case. Reported-and-tested-by: James Ralston Acked-by: Simo Sorce Signed-off-by: J. Bruce Fields fs/nfsd/nfs4state.c | 10 +++++++++- include/linux/sunrpc/svcauth.h | 9 ++++++++- net/sunrpc/auth_gss/gss_rpc_upcall.c | 3 +++ 3 files changed, 20 insertions(+), 2 deletions(-) commit 967313e2ec9cb9184e1d6af393c766e87f8eb1fc Author: Philipp Zabel Date: Fri Nov 20 12:42:44 2015 +0100 ARM: mediatek: DT: Move reset controller constants into common location By popular vote, the DT binding includes for reset controllers are located in include/dt-bindings/reset/. Move the mediatek reset constants in there, too, to avoid confusion. Signed-off-by: Philipp Zabel Signed-off-by: Matthias Brugger .../bindings/arm/mediatek/mediatek,infracfg.txt | 2 +- .../bindings/arm/mediatek/mediatek,pericfg.txt | 2 +- arch/arm/boot/dts/mt8135.dtsi | 2 +- arch/arm64/boot/dts/mediatek/mt8173.dtsi | 2 +- .../dt-bindings/reset-controller/mt8135-resets.h | 64 ---------------------- .../dt-bindings/reset-controller/mt8173-resets.h | 63 --------------------- include/dt-bindings/reset/mt8135-resets.h | 64 ++++++++++++++++++++++ include/dt-bindings/reset/mt8173-resets.h | 63 +++++++++++++++++++++ 8 files changed, 131 insertions(+), 131 deletions(-) commit 920dd9bb7d7cf9ae339e15240326a28a22f08a74 Author: J. Bruce Fields Date: Fri Nov 20 16:42:40 2015 -0500 nfsd: fix unlikely NULL deref in mach_creds_match We really shouldn't allow a client to be created with cl_mach_cred set unless it also has a principal name. This also allows us to fail such cases immediately on EXCHANGE_ID as opposed to waiting and incorrectly returning WRONG_CRED on the following CREATE_SESSION. Signed-off-by: J. Bruce Fields fs/nfsd/nfs4state.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 50c7b948adbd1f8f0475fa0c92abb51c8a49f847 Author: J. Bruce Fields Date: Mon Nov 23 15:39:12 2015 -0700 nfsd: minor consolidation of mach_cred handling code Minor cleanup, no change in functionality. Signed-off-by: J. Bruce Fields fs/nfsd/nfs4state.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) commit 50043859325b377e728676d31aad7affaf91b2ce Author: J. Bruce Fields Date: Fri Nov 20 15:58:37 2015 -0500 nfsd: helper for dup of possibly NULL string Technically the initialization in the NULL case isn't even needed as the only caller already has target zeroed out, but it seems safer to keep copy_cred generic. Signed-off-by: J. Bruce Fields fs/nfsd/nfs4state.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) commit 6496500cf15f29ac8afc565e2e4b6f92a1324860 Author: J. Bruce Fields Date: Fri Nov 20 15:45:35 2015 -0500 svcrpc: move some initialization to common code Minor cleanup, no change in behavior. Signed-off-by: J. Bruce Fields net/sunrpc/svcauth.c | 2 ++ net/sunrpc/svcauth_unix.c | 8 -------- 2 files changed, 2 insertions(+), 8 deletions(-) commit 6c1c36b02c325ecebce6e3b34bce7f1dfe012cf9 Author: Geert Uytterhoeven Date: Tue Nov 24 14:08:23 2015 +0100 net/ipv4/ipconfig: Rejoin broken lines in console output Commit 09605cc12c078306 ("net ipv4: use preferred log methods") replaced a few calls of pr_cont() after a console print without a trailing newline by pr_info(), causing lines to be split during IP autoconfiguration, like: . , OK IP-Config: Got DHCP answer from 192.168.97.254, my address is 192.168.97.44 Convert these back to using pr_cont(), so it prints again: ., OK IP-Config: Got DHCP answer from 192.168.97.254, my address is 192.168.97.44 Absorb the printing of "my address ..." into the previous call to pr_info(), as there's no reason to use a continuation there. Convert one more pr_info() to print nameservers while we're at it. Fixes: 09605cc12c078306 ("net ipv4: use preferred log methods") Signed-off-by: Geert Uytterhoeven Signed-off-by: David S. Miller net/ipv4/ipconfig.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) commit caa602e71609a719c19052f521b05cf701581eae Author: Thierry Reding Date: Tue Nov 24 17:54:33 2015 +0100 drm/bridge: Remove gratuitous blank line A single blank line is enough to separate Kconfig entries. Signed-off-by: Thierry Reding drivers/gpu/drm/bridge/Kconfig | 1 - 1 file changed, 1 deletion(-) commit 86e57ca735a72b44aab90a649157a678b7069a6d Author: Geert Uytterhoeven Date: Tue Nov 24 16:08:13 2015 +0100 irqchip/renesas-intc-irqpin: Improve clock error handling and reporting If the Renesas External IRQ Pin driver cannot find a functional clock, it prints a warning, .e.g. renesas_intc_irqpin fe78001c.interrupt-controller: unable to get clock and continues, as the clock is optional, depending on the SoC type. This warning may confuse users. To fix this, add a flag to indicate that the clock is mandatory or optional, and add a few more compatible entries: - If the clock is mandatory (on R-Mobile A1 or SH-Mobile AG5), a missing clock is now treated as a fatal error, - If the clock is optional (on R-Car Gen1, or using the generic "renesas,intc-irqpin" compatible value), the warning is no longer printed. This requires making struct intc_irqpin_irlm_config more generic by renaming it to intc_irqpin_config, and adding a flag to indicate if IRLM is needed. The new clock flag is merged with the existing shared_irqs boolean into a bitfield to save space. Suggested-by: Magnus Damm Signed-off-by: Geert Uytterhoeven Link: https://lkml.kernel.org/r/1448377693-19597-1-git-send-email-geert+renesas@glider.be Signed-off-by: Jason Cooper drivers/irqchip/irq-renesas-intc-irqpin.c | 45 ++++++++++++++++++++++--------- 1 file changed, 33 insertions(+), 12 deletions(-) commit 1affe5946f7293b3747bfe7ef25dc5cfe9869012 Author: Geert Uytterhoeven Date: Tue Nov 24 15:49:41 2015 +0100 irqchip/renesas-intc-irqpin: Remove intc_irqpin_priv.number_of_irqs intc_irqpin_priv.number_of_irqs is used inside intc_irqpin_probe() only, so it can just become a local variable. Signed-off-by: Geert Uytterhoeven Acked-by: Marc Zyngier Acked-by: Thomas Gleixner Link: https://lkml.kernel.org/r/1448376581-9202-3-git-send-email-geert+renesas@glider.be Signed-off-by: Jason Cooper drivers/irqchip/irq-renesas-intc-irqpin.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) commit f9551a9c083b8acc1db38e234a630655bae8e771 Author: Geert Uytterhoeven Date: Tue Nov 24 15:49:40 2015 +0100 irqchip/renesas-intc-irqpin: Remove obsolete platform data support Since commit 4baadb9e05c68962 ("ARM: shmobile: r8a7778: remove obsolete setup code"), all Renesas SoCs with a renesas-intc-irqpin module are only supported in generic DT-only ARM multi-platform builds. The driver doesn't need to use platform data anymore, hence remove platform data configuration. Signed-off-by: Geert Uytterhoeven Acked-by: Marc Zyngier Acked-by: Thomas Gleixner Link: https://lkml.kernel.org/r/1448376581-9202-2-git-send-email-geert+renesas@glider.be Signed-off-by: Jason Cooper drivers/irqchip/irq-renesas-intc-irqpin.c | 38 +++++++--------------- .../linux/platform_data/irq-renesas-intc-irqpin.h | 29 ----------------- 2 files changed, 12 insertions(+), 55 deletions(-) commit 248a86fc3092059324e6f8231abd9134c8188ecc Author: Thierry Reding Date: Tue Nov 24 17:52:58 2015 +0100 drm/bridge: dw-hdmi: Use dashes in filenames For consistency with other drivers, use dashes instead of underscores in filenames. Signed-off-by: Thierry Reding drivers/gpu/drm/bridge/Makefile | 4 +- drivers/gpu/drm/bridge/dw-hdmi-ahb-audio.c | 653 ++++++++++ drivers/gpu/drm/bridge/dw-hdmi-audio.h | 14 + drivers/gpu/drm/bridge/dw-hdmi.c | 1849 ++++++++++++++++++++++++++++ drivers/gpu/drm/bridge/dw-hdmi.h | 1037 ++++++++++++++++ drivers/gpu/drm/bridge/dw_hdmi-ahb-audio.c | 653 ---------- drivers/gpu/drm/bridge/dw_hdmi-audio.h | 14 - drivers/gpu/drm/bridge/dw_hdmi.c | 1849 ---------------------------- drivers/gpu/drm/bridge/dw_hdmi.h | 1037 ---------------- 9 files changed, 3555 insertions(+), 3555 deletions(-) commit 4b63f603135022ca048524cd16f1c6a76a3f169d Author: Riku Voipio Date: Tue Sep 1 17:14:21 2015 +0300 package Makefile: fix perf-tar targets when outdir is set building with $srctree != $objtree, perf-tar-* targets fail to read the MANIFEST file and add the PERF-VERSION-FILE needed by out-of-tree builds. The build errors and an incorrect tar is created: $ make O=build-x86 perf-targz-src-pkg TAR cat: ../tools/perf/MANIFEST: No such file or directory tar: perf-4.1.0-rc8/PERF-VERSION-FILE: Cannot stat: No such file or dir.. tar: Exiting with failure status due to previous errors Kbuild sets objtree to "." and srctree to ".." The command to output MANIFEST becomes: $(cd ..; echo $(cat ../tools/perf/MANIFEST)) Without MANIFEST, the entire kernel source tree is added to the perf source tarball. The *correct* fix is to keep the cd and remove srctree from cat command line since MANIFEST has wildcards that fail to expand working directory isn't srctree. Second, PERF-VERSION-FILE gets not added, because in-tree build path is hardcoded to Makefile: util/PERF-VERSION-GEN ../../$(perf-tar)/ 2>/dev/null) The PERF-VERSION-GEN needs to be run from tools/perf directory, and the output directory needs to be changed from relative to to absolute. This can be achieved using the $(CURDIR) variable. Also remove the error redirect to /dev/null which hid the error. Signed-off-by: Riku Voipio Signed-off-by: Michal Marek scripts/package/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 85beabfeca5343b86057c0d588e33f7975684d37 Author: Arnd Bergmann Date: Tue Nov 24 12:34:49 2015 +0100 net: dsa: include gpio consumer header file After the introduction of the switch gpio reset API, I'm getting build errors in configurations that disable CONFIG_GPIOLIB: net/dsa/dsa.c:783:16: error: implicit declaration of function 'gpio_to_desc' [-Werror=implicit-function-declaration] The reason is that linux/gpio/consumer.h is not automatically included without gpiolib support. This adds an explicit #include statement to make it compile in all configurations. The reset functionality will not work without gpiolib, which is what you get when disabling the feature. As far as I can tell, gpiolib is supported on all architectures on which you can have DSA at the moment. Signed-off-by: Arnd Bergmann Fixes: cc30c16344fc ("net: dsa: Add support for a switch reset gpio") Acked-by: Andrew Lunn Signed-off-by: David S. Miller net/dsa/dsa.c | 1 + 1 file changed, 1 insertion(+) commit 336f79c7b6d7d04f7dad0361b9f4c8995107c062 Author: Thierry Reding Date: Wed Sep 9 16:28:59 2015 +0200 arm64: tegra: Add NVIDIA Jetson TX1 Developer Kit support The Jetson TX1 Development Kit is the successor of the Jetson TK1. The Jetson TX1 is composed of the Jetson TX1 module (P2180) that connects to the P2597 I/O board. It comes with a 1200x1920 MIPI DSI panel connected via the P2597's display connector. Signed-off-by: Thierry Reding arch/arm64/boot/dts/nvidia/Makefile | 1 + arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts | 9 +++++++++ 2 files changed, 10 insertions(+) commit 2e6340577675536efc4f6028fb326f13e95724eb Author: Thierry Reding Date: Wed Sep 9 16:18:26 2015 +0200 arm64: tegra: Add NVIDIA P2597 I/O board support The NVIDIA P2597 I/O board is a carrier board for the Jetson TX1 module and together they are also known as the Jetson TX1 Developer Kit. The I/O board provides an RJ45 connector routed to the network adapter that is part of the Jetson TX1 module. It exposes many other connectors such as SATA, USB 3.0, HDMI, JTAG and PCIe, among others, as well. Dedicated connectors allow display and camera modules to be attached. A full-size SD slot is provided to extend storage beyond the 32 GiB of eMMC found on the Jetson TX1 module. Signed-off-by: Thierry Reding arch/arm64/boot/dts/nvidia/tegra210-p2597.dtsi | 1270 ++++++++++++++++++++++++ 1 file changed, 1270 insertions(+) commit 9e71045f1b770cd609509fc77fe19f84281d0b78 Author: Thierry Reding Date: Wed Sep 9 16:25:05 2015 +0200 arm64: tegra: Add NVIDIA Jetson TX1 support The NVIDIA Jetson TX1 is a processor module that features a Tegra210 SoC with 4 GiB of LPDDR4 RAM attached, a 32 GiB eMMC and other essentials. It is typically connected to some I/O board (such as the P2597) that has the connectors needed to hook it up to the outside world. Signed-off-by: Thierry Reding arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi | 45 ++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) commit 2cc85bd903370781ef2e85e8b03afc3653e26e36 Author: Thierry Reding Date: Mon Mar 23 10:32:57 2015 +0100 arm64: tegra: Add NVIDIA P2571 board support The NVIDIA P2571 is an internal reference design that's very similar to the P2371, but targetting different use-cases. Signed-off-by: Thierry Reding arch/arm64/boot/dts/nvidia/Makefile | 1 + arch/arm64/boot/dts/nvidia/tegra210-p2571.dts | 1302 +++++++++++++++++++++++++ 2 files changed, 1303 insertions(+) commit 63023e95bec0f0d22172c870b960641d663396a0 Author: Thierry Reding Date: Thu Apr 2 10:25:24 2015 +0200 arm64: tegra: Add NVIDIA P2371 board support The NVIDIA P2371 is an internal reference design that uses a P2530 processor module hooked up to a P2595 I/O board and an optional display module for a 1200x1920 MIPI DSI panel. Signed-off-by: Thierry Reding arch/arm64/boot/dts/nvidia/Makefile | 1 + arch/arm64/boot/dts/nvidia/tegra210-p2371-0000.dts | 9 +++++++++ 2 files changed, 10 insertions(+) commit c24d2e13c6f66ea69adcccd6a74d11de9adfb157 Author: Thierry Reding Date: Mon Apr 13 16:48:08 2015 +0200 arm64: tegra: Add NVIDIA P2595 I/O board support The NVIDIA P2595 I/O board is used in several reference designs and has the connectors to connect the P2530 compute module to the outside world. It features a USB 3.0 network adapter, a USB 3.0 port, an HDMI port, a SATA port, an audio codec, a microSD card slot and a display connector, among others. Signed-off-by: Thierry Reding arch/arm64/boot/dts/nvidia/tegra210-p2595.dtsi | 1272 ++++++++++++++++++++++++ 1 file changed, 1272 insertions(+) commit c552cca31cfdef63182a2114f63d322a9d9bc54f Author: Thierry Reding Date: Mon Apr 13 16:44:33 2015 +0200 arm64: tegra: Add NVIDIA P2530 main board support The NVIDIA P2530 is a processor module used in several reference designs that features a Tegra210 SoC, 4 GiB of LPDDR4 RAM, 16 GiB eMMC and other essentials. It is typically connected to some I/O board that provides the connectors needed to hook it up to the outside world. Signed-off-by: Thierry Reding arch/arm64/boot/dts/nvidia/tegra210-p2530.dtsi | 50 ++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) commit 742af7e7a0a132afe85cc7b8ac82fd20c7b63743 Author: Thierry Reding Date: Mon Mar 23 10:36:45 2015 +0100 arm64: tegra: Add Tegra210 support Also known as Tegra X1, the Tegra210 has four Cortex-A57 cores paired with four Cortex-A53 cores in a switched configuration. It features a GPU using the Maxwell architecture with support for DX11, SM4, OpenGL 4.5, OpenGL ES 3.1 and providing 256 CUDA cores. It supports hardware accelerated en- and decoding of various video standards including H.265, H.264 and VP8 at 4K resolutions and up to 60 fps. Besides the multimedia features it also comes with a variety of I/O controllers such as GPIO, I2C, SPI, SDHCI, PCIe, SATA and XHCI, to name only a few. Add a SoC-level device tree file that describes most of the hardware available on the SoC. This includes only hardware for which a device tree binding already exists or which is trivial to describe. Signed-off-by: Thierry Reding arch/arm64/boot/dts/nvidia/tegra210.dtsi | 805 +++++++++++++++++++++++++++++++ 1 file changed, 805 insertions(+) commit 0f279ebdf3ce5cd3ee23010a46680dca93282e34 Author: Thierry Reding Date: Wed May 13 16:31:52 2015 +0200 arm64: tegra: Add NVIDIA Tegra132 Norrin support Norrin is a Tegra132-based FFD used as reference platform within NVIDIA. Based on work by Allen Martin Cc: Paul Walmsley Cc: Allen Martin Signed-off-by: Thierry Reding arch/arm64/boot/dts/nvidia/Makefile | 2 + arch/arm64/boot/dts/nvidia/tegra132-norrin.dts | 1130 ++++++++++++++++++++++++ 2 files changed, 1132 insertions(+) commit 34b4f6d0599e920e0aca34816e5940b418188b03 Author: Thierry Reding Date: Wed May 13 16:24:38 2015 +0200 arm64: tegra: Add Tegra132 support NVIDIA Tegra132 (also known as Tegra K1 64-bit) is a variant of Tegra124 but with 2 Denver CPUs instead of the 4+1 Cortex-A15. This adds the DTSI file for the SoC, which is mostly similar to the one for Tegra124. Based on work by Allen Martin Cc: Paul Walmsley Cc: Allen Martin Signed-off-by: Thierry Reding arch/arm64/boot/dts/Makefile | 1 + arch/arm64/boot/dts/nvidia/Makefile | 2 + arch/arm64/boot/dts/nvidia/tegra132.dtsi | 990 +++++++++++++++++++++++++++++++ 3 files changed, 993 insertions(+) commit 1d1bac6bbcb771fc685b05d7d32cae6225bb5379 Merge: 00ccc34 9544595 Author: Thierry Reding Date: Tue Nov 24 16:51:59 2015 +0100 Merge branch 'for-4.5/soc' into for-4.5/dt commit 00ccc34b3e1432bdb4e1892b1eb56898d82db353 Merge: 8005c49 1d15cb9 Author: Thierry Reding Date: Tue Nov 24 16:50:56 2015 +0100 Merge branch 'for-4.5/clk' into for-4.5/dt commit a262e87ff354f12447bb6268bd63edf7ba1c20e0 Author: Arnd Bergmann Date: Mon Nov 23 14:51:29 2015 +0100 ARM: tegra: select USB_ULPI from EHCI rather than platform For historic reasons, the tegra platform selects USB_ULPI from architecture code, but that hasn't really made sense for a long time, as the only user of that code is the Tegra EHCI driver that has its own Kconfig symbol. This removes the 'select' statements from mach-tegra and drivers/soc/tegra and adds them with the device driver that actually needs them. Signed-off-by: Arnd Bergmann Signed-off-by: Thierry Reding arch/arm/mach-tegra/Kconfig | 2 -- drivers/soc/tegra/Kconfig | 4 ---- drivers/usb/host/Kconfig | 2 ++ 3 files changed, 2 insertions(+), 6 deletions(-) commit 5883ac2010ef801cb9beb9606d3d50b3dca87113 Author: Jon Hunter Date: Thu Nov 19 14:19:47 2015 +0000 ARM: tegra: Ensure entire dcache is flushed on entering LP0/1 Tegra support several low-power (LPx) states, which are: - LP0: CPU + Core voltage off and DRAM in self-refresh - LP1: CPU voltage off and DRAM in self-refresh - LP2: CPU voltage off When entering any of the above states the tegra_disable_clean_inv_dcache() function is called to flush the dcache. The function tegra_disable_clean_inv_dcache() will either flush the entire data cache or up to the Level of Unification Inner Shareable (LoUIS) depending on the value in r0. When tegra_disable_clean_inv_dcache() is called by tegra20_sleep_core_finish() or tegra30_sleep_core_finish(), to enter LP0 and LP1 power state, the r0 register contains a physical memory address which will not be equal to TEGRA_FLUSH_CACHE_ALL (1) and so the data cache will be only flushed to the LoUIS. However, when tegra_disable_clean_inv_dcache() called by tegra_sleep_cpu_finish() to enter to LP2 power state, r0 is set to TEGRA_FLUSH_CACHE_ALL to flush the entire dcache. Please note that tegra20_sleep_core_finish(), tegra30_sleep_core_finish() and tegra_sleep_cpu_finish() are called by the boot CPU once all other CPUs have been disabled and so it seems appropriate to flush the entire cache at this stage. Therefore, ensure that r0 is set to TEGRA_FLUSH_CACHE_ALL when calling tegra_disable_clean_inv_dcache() from tegra20_sleep_core_finish() and tegra30_sleep_core_finish(). Signed-off-by: Jon Hunter Reviewed-by: Joseph Lo Signed-off-by: Thierry Reding arch/arm/mach-tegra/sleep-tegra20.S | 3 +++ arch/arm/mach-tegra/sleep-tegra30.S | 3 +++ 2 files changed, 6 insertions(+) commit b73c48859895ec32a12ae9670a82c463f280ae35 Author: Thierry Reding Date: Thu Nov 12 11:50:17 2015 +0100 amba: Hide TEGRA_AHB symbol The symbol depends on ARCH_TEGRA and will default to y. There are no circumstances under which it is desirable to disable this option. Signed-off-by: Thierry Reding drivers/amba/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9544595262f32f0e6dd6e0170e31ca8582c9cbb0 Author: Thierry Reding Date: Mon Nov 16 07:15:55 2015 +0100 soc/tegra: Add Tegra210 support Also known as Tegra X1, the Tegra210 has four Cortex-A57 cores paired with four Cortex-A53 cores in a switched configuration. It features a GPU using the Maxwell architecture with support for DX11, SM4, OpenGL 4.5, OpenGL ES 3.1 and providing 256 CUDA cores. It supports hardware accelerated en- and decoding of various video standards including H.265, H.264 and VP8 at 4K resolutions and up to 60 fps. Besides the multimedia features it also comes with a variety of I/O controllers such as GPIO, I2C, SPI, SDHCI, PCIe, SATA and XHCI, to name only a few. Add a Kconfig option for Tegra210 to allow SoC-specific support to be enabled for this new generation. Signed-off-by: Thierry Reding drivers/soc/tegra/Kconfig | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 099a6644f5be438dd63c81ba942e7ffbb2c59099 Author: Thierry Reding Date: Wed Sep 9 15:29:22 2015 +0200 soc/tegra: Provide per-SoC Kconfig symbols Move per-SoC generation Kconfig symbols to drivers/soc/tegra/Kconfig to gather them all in a single place. This directory is a natural location for these options since it already contains the drivers that are shared across 32-bit and 64-bit ARM architectures. Signed-off-by: Thierry Reding arch/arm/mach-tegra/Kconfig | 52 +-------------------------------- arch/arm64/Kconfig.platforms | 12 -------- drivers/soc/Kconfig | 1 + drivers/soc/tegra/Kconfig | 69 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 71 insertions(+), 63 deletions(-) commit 57ef5527b8c2bdabae8b6fba593f3f4d7c32ae3b Merge: 3b22dae 0286c67 Author: David S. Miller Date: Tue Nov 24 10:08:08 2015 -0500 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-11-23 This series contains updates to ixgbe, ixgbevf, fm10k, i40e and i40evf. Jacob fixes an issue where VF could attempt to read queues it does not own, so prevent this we check queue 0 before we continue. Matthew fixes the MTU for jumbo frames for fm10k. Julia Lawall cleans up a unneeded NULL test in ixgbe. Mark cleans up a redundant header inclusion. Adds KR mode support for CS4227 chip. Cleaned up diagnostic code, which is no longer needed, for the CS4227 chip. Jean Sacren fixes kernel documentation for ixgbe. Alex Duyck fixes an fm10k and ixgbe issue in which the polling routine would increase the budget for receive to at least 1 per queue if multiple queues were present. This would result in receive packets being processed when the budget was 0 which is meant to indicate that no receive can be handled. Also fixes an ixgbevf performance issue where netperf test will starve for memory in the time form one transmit interrupt to the next, so limit lowest interrupt rate for adaptive interrupt moderation to 12K. Fixed up ixgbe and ixgbevf to use napi_schedule_irqoff() where the drivers were run from hard interrupt context or with interrupts already disabled in netpoll. Jesse fixes a compiler warning about an unused variable for i40evf. John Greene fixes an issue with ixgbevf, where if the VF driver is loaded while the corresponding PH interface is down, the driver assigns a random MAC address, can be overwritten with the value of hw->mac.perm_addr which is 0 at that point. So avoid this case by initializing hw->mac.perm_addr to the randomly generated address and do not set it unless we receive an ACK from ixgbe. Rasmus Villemoes cleans up some confusing code in i40e debugfs code. ==================== Signed-off-by: David S. Miller commit 7f64d642893bc0e6c501f95dad01c36783a94bee Author: Geert Uytterhoeven Date: Tue Nov 24 15:45:04 2015 +0100 ata: sata_rcar: Remove obsolete platform_device_id entries Since commit c99cd90d98a98aa1 ("ARM: shmobile: r8a7779: Remove legacy SoC code"), R-Car SoCs are only supported in generic DT-only ARM multi-platform builds. The driver doesn't need to match platform devices by name anymore, hence remove the remaining platform_device_id entries and platform device support. Signed-off-by: Geert Uytterhoeven Acked-by: Simon Horman Signed-off-by: Tejun Heo drivers/ata/sata_rcar.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) commit ee0e5d637419563733f570975d2f43d0e71ff461 Author: Fabio Estevam Date: Mon Nov 16 13:20:38 2015 -0200 ARM: imx_v6_v7_defconfig: Select HDMI audio support Select CONFIG_DRM_DW_HDMI_AHB_AUDIO so that we have HDMI audio supported by default. Signed-off-by: Fabio Estevam Signed-off-by: Shawn Guo arch/arm/configs/imx_v6_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit 02dd3364a41ff4450daaf84b47ea49046f0d1776 Author: Fabio Estevam Date: Tue Nov 3 14:25:37 2015 -0200 ARM: imx_v6_v7_defconfig: Select VF610_ADC The vf610 adc driver is present on Vybrid, MX6SX, MX6UL and MX7D. Select it by default. Signed-off-by: Fabio Estevam Acked-by: Fugang Duan Signed-off-by: Shawn Guo arch/arm/configs/imx_v6_v7_defconfig | 2 ++ 1 file changed, 2 insertions(+) commit d0cc60abb3eb0c471ab355749d49897ab356e16a Author: Fabio Estevam Date: Thu Oct 29 12:34:55 2015 -0200 ARM: imx_v6_v7_defconfig: Remove CONFIG_SOC_LS1021A imx_v6_v7_defconfig is not suitable for booting LS1021 as it needs LPAE. Remove this option. Signed-off-by: Fabio Estevam Signed-off-by: Shawn Guo arch/arm/configs/imx_v6_v7_defconfig | 1 - 1 file changed, 1 deletion(-) commit b54e9a0b92d44843f6719ae22b0f6daf5b9b23b4 Author: Bob Peterson Date: Mon Oct 26 10:40:28 2015 -0500 GFS2: Extract quota data from reservations structure (revert 5407e24) This patch basically reverts the majority of patch 5407e24. That patch eliminated the gfs2_qadata structure in favor of just using the reservations structure. The problem with doing that is that it increases the size of the reservations structure. That is not an issue until it comes time to fold the reservations structure into the inode in memory so we know it's always there. By separating out the quota structure again, we aren't punishing the non-quota users by making all the inodes bigger, requiring more slab space. This patch creates a new slab area to allocate the quota stuff so it's managed a little more sanely. Signed-off-by: Bob Peterson fs/gfs2/aops.c | 2 +- fs/gfs2/bmap.c | 2 +- fs/gfs2/file.c | 10 +++--- fs/gfs2/incore.h | 13 ++++--- fs/gfs2/inode.c | 18 +++++----- fs/gfs2/main.c | 11 ++++++ fs/gfs2/quota.c | 105 ++++++++++++++++++++++++++++++++++++------------------- fs/gfs2/quota.h | 2 ++ fs/gfs2/rgrp.c | 17 ++++++--- fs/gfs2/rgrp.h | 4 +-- fs/gfs2/super.c | 2 +- fs/gfs2/util.c | 1 + fs/gfs2/util.h | 1 + 13 files changed, 125 insertions(+), 63 deletions(-) commit 70004986ffdf36d8bc787403af2571aeeef96595 Author: Steven Rostedt (Red Hat) Date: Tue Nov 17 15:15:19 2015 -0500 ring-buffer: Remove redundant update of page timestamp The first commit of a buffer page updates the timestamp of that page. No need to have the update to the next page add the timestamp too. It will only be replaced by the first commit on that page anyway. Only update to a page if it contains an event. Signed-off-by: Steven Rostedt kernel/trace/ring_buffer.c | 32 ++++++++------------------------ 1 file changed, 8 insertions(+), 24 deletions(-) commit 8573636ea794fa088f459429e65e47d7776532cf Author: Steven Rostedt (Red Hat) Date: Tue Nov 17 14:03:11 2015 -0500 ring-buffer: Use READ_ONCE() for most tail_page access As cpu_buffer->tail_page may be modified by interrupts at almost any time, the flow of logic is very important. Do not let gcc get smart with re-reading cpu_buffer->tail_page by adding READ_ONCE() around most of its accesses. Signed-off-by: Steven Rostedt kernel/trace/ring_buffer.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) commit 3cbd6a43be932e56907abd21091314dc044175f2 Author: Steven Rostedt (Red Hat) Date: Wed Nov 11 10:20:51 2015 -0500 ftracetest: Add instance create and delete test Create a test to test instance creation and deletion. Several tasks are created that create 3 directories and delete them. The tasks all create the same directories. This places a stress on the code that creates and deletes instances. Signed-off-by: Steven Rostedt .../selftests/ftrace/test.d/instances/instance.tc | 90 ++++++++++++++++++++++ 1 file changed, 90 insertions(+) commit 6c03a6bd0dd836db388feb28fda1868037491ee7 Author: Ville Syrjälä Date: Fri Nov 20 22:35:41 2015 +0200 drm/i915: Don't register CRT connector when it's fused off On some machines the CRT connector may be fused off. The weird thing about this setup is that the ADPA register works otherwise normally, except the enable bit is hardwired to 0. No one knows of any fuse register that would tell us if this is the case, so the only thing we can do (apart from a blacklist) is to try and set the enable bit and see if it sticks. If not, we don't register the connector at all. Obviously if the bit is already set when loading the driver we can just assume it works. I've smoke tested this approach on several machines (GMCH and PCH), some with actual CRT connectors, some with shadow connectors, and obviously the machine (IVB) with the fused off connector. So far I've not seen any ill effects from this probe. The main benefit is that we can actually run igt on machines with fused off connectors, without totally upsetting the state checker. Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1448051741-22771-1-git-send-email-ville.syrjala@linux.intel.com Acked-by: Chris Wilson drivers/gpu/drm/i915/intel_crt.c | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) commit 9bbc8258ae5914af1986561767d971417cee7a28 Author: Ville Syrjälä Date: Fri Nov 20 22:09:20 2015 +0200 drm/i915: Check for underruns after crtc disable To get a better idea if underruns occurred during crtc disabling, let's check for them explicitly. This helps in cases where the error interrupt isn't active, or there is no underrun interrupt support at all. Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1448050160-14124-3-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 7864578a70ac8af640b02d2caf3555aba9048f6f Author: Ville Syrjälä Date: Fri Nov 20 22:09:19 2015 +0200 drm/i915: Disable CPU underruns around eDP port and vdd enable on ILK-IVB We sometimes get a spurious CPU pipe underrun somewhere between enabling port A and enabling vdd for the panel. Observed on both ILK and IVB with port A eDP. Suppress FIFO underrun reporting around the port and vdd enable to avoid the dmesg errors. Not sure if port D eDP would suffer from the same issue, but assume that it doesn't until proven differently. Testcase: igt/kms_setmode Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1448050160-14124-2-git-send-email-ville.syrjala@linux.intel.com Acked-by: Chris Wilson drivers/gpu/drm/i915/intel_dp.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 3860b2ecfc96251455091739b92217e4f01b96c2 Author: Ville Syrjälä Date: Fri Nov 20 22:09:18 2015 +0200 drm/i915: Suppress spurious CPU FIFO underruns on ILK-IVB We still get spurious pipe underruns on ILK/SNB/IVB under two circumstances when dealing with PCH ports: * When the pipe has been disabled, but FDI RX/TX is still enabled * During FDI link training Both cases seem to happen at least when we do VGA+HDMI cloning from the same pipe. I don't think I've seen them when not cloning, but can't be 100% sure. Disable underrun reporting around those places to eliminate the dmesg errors. Testcase: igt/kms_setmode/basic-clone-single-crtc Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1448050160-14124-1-git-send-email-ville.syrjala@linux.intel.com Acked-by: Chris Wilson drivers/gpu/drm/i915/intel_display.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) commit b6e4d53490504ee43a765e71a8fd8337af137623 Author: Rodrigo Vivi Date: Mon Nov 23 14:19:32 2015 -0800 drm/i915: Also disable PSR on Sink when disabling it on Source. It is not a bad idea to disable the PSR feature on Sink when we are disabling on the Source. v2: Move dpcd write inside mutex protected area as suggested by Sonika. Cc: Sonika Jindal Suggested-by: Sonika Jindal Signed-off-by: Rodrigo Vivi Reviewed-by: Sonika Jindal Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_psr.c | 4 ++++ 1 file changed, 4 insertions(+) commit 05eec3c2709d8966cbfcc7cd395f37889c492678 Author: Rodrigo Vivi Date: Mon Nov 23 14:16:40 2015 -0800 drm/i915: Remove PSR Perf Counter for SKL+ Whenever DMC firmware put the HW into DC State a bunch of registers including this perf counter is reset to 0. Even with PSR active and working we could still read "Performance_Counter: 0" what will misslead people to believe PSR is broken. For instance on SKL we can only see PC10 residency with screen on if PSR is working properly. However Performance_Counter was showing 0. Even if it restored properly on DC6 exit we don't want to give users the wrong impression that PSR is not working while we know for sure it is. So, it is better to remove this counter information while we don't have a better way to track PSR residency. Signed-off-by: Rodrigo Vivi Reviewed-by: Durgadoss R Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit bb929cbc1f58c72eaf7981281dbb024ad92ef24d Author: Rodrigo Vivi Date: Wed Nov 18 11:21:55 2015 -0800 drm/i915: PSR: Mask LPSP hw tracking back again. When we introduced PSR we let LPSP masked allowing us to get PSR independently from the audio runtime PM. However in one of the attempts to get PSR enabled by default one user reported one specific case where he would miss screen updates if scrolling the firefox in a Gnome environment when i915 runtime pm was enabled. So for this specific case that (I could never create an i-g-t test case) we decided to remove the LPSP mask and let HW tracking taking care of this case. The mask got removed later by my commit 09108b90f04 ("drm/i915: PSR: Remove Low Power HW tracking mask.") So we started depending on audio driver again, what is bad. With previous commit "drm/i915: PSR: Let's rely more on frontbuffer tracking." we transfered the PSR exit responsability totally to SW frontbuffer tracking. So now can safelly shut off a bit the HW tracking, or at least this case that makes us to depend on other drivers. v2: Update commit message since this patch by itself doesn't solve the bugzilla entries. v3: Another attempt to improve commit message. Cc: Paulo Zanoni Tested-by: Brian Norris Signed-off-by: Rodrigo Vivi Reviewed-by: Paulo Zanoni Reviewed-by: Damien Lespiau damien.lespiau@intel.com Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_psr.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 921ec285a6589cf3beb7f56a70744f75b09349f8 Author: Rodrigo Vivi Date: Wed Nov 18 11:21:12 2015 -0800 drm/i915: PSR: Let's rely more on frontbuffer tracking. The ultimate goal here is to remove the dependency we currently have on audio driver power to get PSR working. Since with audio driver runtime PM disabled the Hardware tracking believes graphics is fully active and prevent PSR Entry, or in other words continuously exit PSR. So, the idea is to transfer the PSR exit responsability from the HW tracking to the SW tracking (frontbuffer tracking), who is really mature right now. However with LPSP masked out there might be cases where we could miss exit from HW tracking since it can be relying on this, like a specific case reported at our mailing list who user reported he would miss screen updates if scrolling firefox in a Gnome environment when i915 runtimepm was enabled. So before masking out LPSP again to make us independent from the audio driver we need to make sure that all our cases are coverred from the frontbuffer tracking perspective, where the flush means invalidate and flush. Without this patch for HSW, BDW and SKL we just do the invalidate part when the flush wasn't originated by a page flip because we were trusting the HW tracking for the flip case. So let's rely more on frontbuffer tracking and do the invalidation regardless the origin as expected for all platforms. v2: Improve commit message as suggested by Paulo. v3: Another attempt to let commit message more clear. Cc: Paulo Zanoni Signed-off-by: Rodrigo Vivi Reviewed-by: Paulo Zanoni Reviewed-by: Damien Lespiau damien.lespiau@intel.com Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_psr.c | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) commit ca1a95334ddaf624c1b0424113fe9b8100da1614 Author: Rodrigo Vivi Date: Thu Nov 12 14:46:05 2015 -0800 drm/i915: Remove duplicated dpcd write on hsw_psr_enable_sink. Commit (89251b17) intended to remove this line and let only one DP_PSR_EN_CFG set, but it was wrong and this call is now duplicated at the code. Also "& ~DP_PSR_MAIN_LINK_ACTIVE" doesn't do anything at all. It was like that since I introduced this call but probably the idea was to be informative and make clear statement that we were not using the link standby. So it is better to remove this one here and let the code a bit cleaner. v2: Improve commit message as requested by Paulo. Cc: Paulo Zanoni Tested-by: Brian Norris Signed-off-by: Rodrigo Vivi Reviewed-by: Paulo Zanoni Reviewed-by: Damien Lespiau damien.lespiau@intel.com Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_psr.c | 3 --- 1 file changed, 3 deletions(-) commit cc509d5ba2b74fea8d0598cc941f4b5e4052740a Author: Charles Keepax Date: Thu Nov 19 16:46:14 2015 +0000 mfd: wm8994: Ensure that the whole MFD is built into a single module The MFD part of wm8994 consists of three files wm8994-core.c, wm8994-irq.c and wm8994-regmap.c only wm8994-core.c has a MODULE_DESCRIPTION / LICENSE. These were clearly intended to be built as a single module, but currently are not. This will lead to a tainted kernel when loading modules for wm8894-irq.c and wm8994-regmap.c because are missing a license. This patch fixes this issue by grouping the three files together into a single module. Reported-by: Peter Robinson Signed-off-by: Charles Keepax Signed-off-by: Lee Jones drivers/mfd/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 51669f89931d7e07c297fa11028cd1e3a4cef09c Author: Andrew F. Davis Date: Mon Sep 21 11:25:40 2015 -0500 Documentation: dt-bindings: Fix interrupt documentation file path Fix the incorrect interrupt documentation file path in binding docs. Signed-off-by: Andrew F. Davis Signed-off-by: Lee Jones Documentation/devicetree/bindings/gpio/snps-dwapb-gpio.txt | 2 +- Documentation/devicetree/bindings/mfd/arizona.txt | 2 +- Documentation/devicetree/bindings/mfd/palmas.txt | 2 +- Documentation/devicetree/bindings/sound/wm8994.txt | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) commit 2fadbbf02d81c825b1627f673499d0e0b9d132b6 Author: Alim Akhtar Date: Fri Nov 20 16:18:26 2015 +0530 mfd: sec-core: Rename MFD and regulator names differently Currently S2MPSXX multifunction device is named as *-pmic, and these MFDs also supports regulator as a one of its MFD cell which has the same name, because current name is confusing and we want to sort it out. We did discussed different approaches about how the MFD and it cells need to be named here [1]. Based in the discussion this patch rename MFD regulator name as *-regulator instead of current *-pmic. This patch also changes the corresponding entries in the regulator driver to keep git-bisect happy. [1]-> https://lkml.org/lkml/2015/10/28/417 Suggested-by: Lee Jones Signed-off-by: Alim Akhtar Reviewed-by: Krzysztof Kozlowski Acked-by: Mark Brown Signed-off-by: Lee Jones drivers/mfd/sec-core.c | 8 ++++---- drivers/regulator/s2mps11.c | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) commit 6223a30935852369fd797f44eeafac445e422ac4 Author: Alexandra Yates Date: Fri Nov 6 15:19:48 2015 -0800 mfd: lpc_ich: Intel device IDs for PCH Adding Intel codename Lewisburg platform device IDs for PCH. Signed-off-by: Alexandra Yates Reviewed-by: Andy Shevchenko Signed-off-by: Lee Jones drivers/mfd/lpc_ich.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 408952d43b27a54437244c56c0e0d8efa5607926 Author: Tvrtko Ursulin Date: Fri Nov 20 13:23:36 2015 +0000 drm/i915: Remove incorrect warning in context cleanup Commit e9f24d5fb7cf3628b195b18ff3ac4e37937ceeae Author: Tvrtko Ursulin Date: Mon Oct 5 13:26:36 2015 +0100 drm/i915: Clean up associated VMAs on context destruction Added a warning based on an incorrect assumption that all VMAs in a VM will be on the inactive list at the point last reference to a context and VM is dropped. This is not true because i915_gem_object_retire__read will not put VMA on the inactive list until all activities on the object in question (in all VMs) have been retired. As a consequence, whether or not a context/VM will be destroyed with its VMAs still on the active list, can depend on completely unrelated activities using the same object from a different context or engine. Signed-off-by: Tvrtko Ursulin Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92638 Testcase: igt/gem_request_retire/retire-vma-not-inactive Cc: Daniel Vetter Cc: Chris Wilson Cc: Michel Thierry Link: http://patchwork.freedesktop.org/patch/msgid/1448025816-25584-1-git-send-email-tvrtko.ursulin@linux.intel.com Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_context.c | 2 -- 1 file changed, 2 deletions(-) commit ed293f7754934b26c6f3db0dbc39ec2ed990f286 Author: Daniel Vetter Date: Thu Nov 19 17:46:50 2015 +0100 drm/sysfs: Send out uevent when connector->force changes To avoid even more code duplication punt this all to the probe worker, which needs some slight adjustment to also generate a uevent when the status has changed to due connector->force. v2: Instead of running the output_poll_work (which is kinda the wrong thing and a layering violation since it's an internal of the probe helpers), or calling ->detect (which is again a layering violation since it's used only by probe helpers) just call the official ->fill_modes function, like a GET_CONNECTOR ioctl call. v3: Restore the accidentally removed forced-probe for echo "detect" > force. Cc: Chris Wilson Reported-by: Chris Wilson Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1447951610-12622-22-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_probe_helper.c | 46 +++++++++++++++++++------------------- drivers/gpu/drm/drm_sysfs.c | 38 +++++++++++-------------------- 2 files changed, 36 insertions(+), 48 deletions(-) commit 9744bf41f15c9549aba8bd52507b64b0fe6a88cb Author: Maarten Lankhorst Date: Tue Nov 24 10:34:34 2015 +0100 drm/atomic: Small documentation fix. Use the correct function name for drm_atomic_clean_old_fb docs. Signed-off-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 18b40c58a184e99f01f3efa9c86d89e1a537e42e Author: Geliang Tang Date: Sat Nov 21 22:04:04 2015 +0800 drm/mm: rewrite drm_mm_for_each_hole When backwards is 0, __drm_mm_for_each_hole is same as drm_mm_for_each_hole. So I rewrite drm_mm_for_each_hole by using __drm_mm_for_each_hole. Signed-off-by: Geliang Tang Signed-off-by: Daniel Vetter include/drm/drm_mm.h | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) commit a48a62bc9226e731e2284afb1c782869a413e1b2 Author: Daniel Vetter Date: Fri Oct 2 13:01:02 2015 +0200 drm/sysfs: Grab lock for edid/modes_show We chase pointers/lists without taking the locks protecting them, which isn't that good. Fix it. v2: Actually unlock properly, spotted by Julia. v3: Put the label _before_ the mutex_unlock (Emil) Cc: Emil Velikov Cc: Julia Lawall Link: http://patchwork.freedesktop.org/patch/msgid/1443783662-23066-1-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Emil Velikov Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_sysfs.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit f980a71a2ba85ba5e60b72255df1ce6722932e0e Author: Ville Syrjälä Date: Mon Nov 16 17:02:37 2015 +0200 drm: Print the src/dst/clip rectangles in error in drm_plane_helper To aid in debugging failures, print the src,dst,clip rectangles when drm_plane_helper_check_update() fails. Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_plane_helper.c | 4 ++++ 1 file changed, 4 insertions(+) commit c70f577a23073c33ae47c9dc2607a24bbee9aa84 Author: Ville Syrjälä Date: Mon Nov 16 17:02:36 2015 +0200 drm: Add "prefix" parameter to drm_rect_debug_print() Allow the caller to specify a "prefix" string to drm_rect_debug_print() to make it easier to see which drm_rect is being printed. Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_rect.c | 7 ++++--- drivers/gpu/drm/i915/intel_sprite.c | 8 ++++---- include/drm/drm_rect.h | 3 ++- 3 files changed, 10 insertions(+), 8 deletions(-) commit 02e6f379ec63f81d3e09abebfee76feeff40efa0 Author: Ville Syrjälä Date: Mon Nov 16 17:02:35 2015 +0200 drm: Keep coordinates in the typical x, y, w, h order instead of x, y, h, w Signed-off-by: Ville Syrjälä Reviewed-by: Alex Deucher Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic_helper.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 1eb83451ba55d7a8c82b76b1591894ff2d4a95f2 Author: Ville Syrjälä Date: Wed Nov 11 19:11:29 2015 +0200 drm: Pass the user drm_mode_fb_cmd2 as const to .fb_create() Drivers shouldn't clobber the passed in addfb ioctl parameters. i915 was doing just that. To prevent it from happening again, pass the struct around as const, starting all the way from internal_framebuffer_create(). Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 4 ++-- drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h | 2 +- drivers/gpu/drm/armada/armada_fb.c | 4 ++-- drivers/gpu/drm/armada/armada_fb.h | 2 +- drivers/gpu/drm/ast/ast_drv.h | 2 +- drivers/gpu/drm/ast/ast_fb.c | 2 +- drivers/gpu/drm/ast/ast_main.c | 4 ++-- drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 2 +- drivers/gpu/drm/bochs/bochs.h | 2 +- drivers/gpu/drm/bochs/bochs_fbdev.c | 2 +- drivers/gpu/drm/bochs/bochs_mm.c | 4 ++-- drivers/gpu/drm/cirrus/cirrus_drv.h | 2 +- drivers/gpu/drm/cirrus/cirrus_fbdev.c | 2 +- drivers/gpu/drm/cirrus/cirrus_main.c | 4 ++-- drivers/gpu/drm/drm_crtc.c | 4 ++-- drivers/gpu/drm/drm_crtc_helper.c | 2 +- drivers/gpu/drm/drm_fb_cma_helper.c | 4 ++-- drivers/gpu/drm/exynos/exynos_drm_fb.c | 4 ++-- drivers/gpu/drm/exynos/exynos_drm_fb.h | 2 +- drivers/gpu/drm/gma500/framebuffer.c | 6 +++--- drivers/gpu/drm/i915/intel_display.c | 2 +- drivers/gpu/drm/mgag200/mgag200_drv.h | 2 +- drivers/gpu/drm/mgag200/mgag200_fb.c | 2 +- drivers/gpu/drm/mgag200/mgag200_main.c | 4 ++-- drivers/gpu/drm/msm/msm_drv.h | 4 ++-- drivers/gpu/drm/msm/msm_fb.c | 4 ++-- drivers/gpu/drm/nouveau/nouveau_display.c | 4 ++-- drivers/gpu/drm/nouveau/nouveau_display.h | 2 +- drivers/gpu/drm/omapdrm/omap_drv.h | 6 +++--- drivers/gpu/drm/omapdrm/omap_fb.c | 4 ++-- drivers/gpu/drm/qxl/qxl_display.c | 4 ++-- drivers/gpu/drm/qxl/qxl_drv.h | 2 +- drivers/gpu/drm/qxl/qxl_fb.c | 2 +- drivers/gpu/drm/radeon/radeon_display.c | 4 ++-- drivers/gpu/drm/radeon/radeon_mode.h | 2 +- drivers/gpu/drm/rcar-du/rcar_du_kms.c | 2 +- drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 6 +++--- drivers/gpu/drm/rockchip/rockchip_drm_fb.h | 2 +- drivers/gpu/drm/shmobile/shmob_drm_kms.c | 2 +- drivers/gpu/drm/tegra/drm.h | 2 +- drivers/gpu/drm/tegra/fb.c | 4 ++-- drivers/gpu/drm/tilcdc/tilcdc_drv.c | 2 +- drivers/gpu/drm/udl/udl_drv.h | 2 +- drivers/gpu/drm/udl/udl_fb.c | 4 ++-- drivers/gpu/drm/virtio/virtgpu_display.c | 4 ++-- drivers/gpu/drm/virtio/virtgpu_drv.h | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 2 +- include/drm/drm_crtc.h | 2 +- include/drm/drm_crtc_helper.h | 2 +- include/drm/drm_fb_cma_helper.h | 2 +- 50 files changed, 74 insertions(+), 74 deletions(-) commit cc344980c76748e57c9c03100c2a14d36ab00334 Author: LABBE Corentin Date: Thu Nov 5 10:33:54 2015 +0100 drm: modes: replace simple_strtoul by kstrtouint The simple_strtoul function is marked as obsolete. This patch replace it by kstrtouint. Signed-off-by: LABBE Corentin Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_modes.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) commit d9c382421771560c6b282c100752a3c194cb5827 Author: Robert Fekete Date: Mon Nov 2 16:14:08 2015 +0100 drm: Describe the Rotation property bits. Adds clarification of the rotation property bits. I.e. rotation is counter clockwise and that reflects are applied before any rotation. v2: Refer to the define names instead of the property values. Signed-off-by: Robert Fekete Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter include/drm/drm_crtc.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit cb1197173f46003616bcacbe2fea55ec3dd90e91 Author: Lukas Wunner Date: Sun Nov 1 14:22:00 2015 +0100 drm: Remove unused fbdev_list members I noticed that intel_fbdev->our_mode is unused. Introduced by 79e539453b34 ("DRM: i915: add mode setting support"). Then I noticed that intel_fbdev->fbdev_list is unused as well. Introduced by 386516744ba4 ("drm/fb: fix fbdev object model + cleanup properly.") in i915, nouveau and radeon. Subsequently cargo culted to amdgpu, ast, cirrus, qxl, udl, virtio and mgag200. Already removed from the latter with cc59487a05b1 ("drm/mgag200: 'fbdev_list' in 'struct mga_fbdev' is not used"). Remove it from the others. Signed-off-by: Lukas Wunner Signed-off-by: Daniel Vetter drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c | 1 - drivers/gpu/drm/ast/ast_drv.h | 1 - drivers/gpu/drm/cirrus/cirrus_drv.h | 1 - drivers/gpu/drm/i915/intel_drv.h | 2 -- drivers/gpu/drm/nouveau/nouveau_fbcon.h | 1 - drivers/gpu/drm/qxl/qxl_fb.c | 1 - drivers/gpu/drm/radeon/radeon_fb.c | 1 - drivers/gpu/drm/udl/udl_fb.c | 1 - drivers/gpu/drm/virtio/virtgpu_fb.c | 1 - 9 files changed, 10 deletions(-) commit 5f911905054a64cf8c7871fddd33f4af74f07a17 Author: Markus Elfring Date: Fri Nov 6 12:03:46 2015 +0100 GPU-DRM: Delete unnecessary checks before drm_property_unreference_blob() The drm_property_unreference_blob() function tests whether its argument is NULL and then returns immediately. Thus the tests around the calls are not needed. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring Link: http://patchwork.freedesktop.org/patch/msgid/563C8B3E.405@users.sourceforge.net Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic.c | 9 +++------ drivers/gpu/drm/drm_atomic_helper.c | 5 ++--- 2 files changed, 5 insertions(+), 9 deletions(-) commit 36af4ca704897f56b6b168c73d964030fd4ce359 Author: Jani Nikula Date: Thu Oct 29 11:03:08 2015 +0200 drm/dp: add eDP DPCD backlight control bit definitions Cc: Yetunde Adebisi Signed-off-by: Jani Nikula Reviewed-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter include/drm/drm_dp_helper.h | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) commit b110ef377510b98f5aa0e4c6400cb3f218bb9646 Author: Archit Taneja Date: Tue Oct 27 13:40:59 2015 +0530 drm/tegra: Remove local fbdev emulation Kconfig option DRM_TEGRA_FBDEV config is currently used to enable/disable legacy fbdev emulation for the tegra kms driver. Remove this local config option and use the top level DRM_FBDEV_EMULATION config option instead. Signed-off-by: Archit Taneja Link: http://patchwork.freedesktop.org/patch/msgid/1445933459-5249-4-git-send-email-architt@codeaurora.org Signed-off-by: Daniel Vetter drivers/gpu/drm/tegra/Kconfig | 12 ------------ drivers/gpu/drm/tegra/drm.c | 4 ++-- drivers/gpu/drm/tegra/drm.h | 6 +++--- drivers/gpu/drm/tegra/fb.c | 12 ++++++------ 4 files changed, 11 insertions(+), 23 deletions(-) commit c1ff5a7aa3c385aea6badd1351cf92b02a65f145 Author: Archit Taneja Date: Tue Oct 27 13:40:57 2015 +0530 drm/imx: Remove local fbdev emulation Kconfig option DRM_IMX_FB_HELPER config is currently used to enable/disable fbdev emulation for the imx kms driver. Remove this local config option and use the top level DRM_FBDEV_EMULATION config option where applicable. Using this config lets us also prevent wrapping around drm_fb_helper_* calls with #ifdefs in certain places. Tested-by: Philipp Zabel Signed-off-by: Archit Taneja Link: http://patchwork.freedesktop.org/patch/msgid/1445933459-5249-2-git-send-email-architt@codeaurora.org Signed-off-by: Daniel Vetter drivers/gpu/drm/imx/Kconfig | 9 --------- drivers/gpu/drm/imx/imx-drm-core.c | 12 +++--------- 2 files changed, 3 insertions(+), 18 deletions(-) commit df2e0900a5965795c2607640e4e9c2667e16c669 Author: Daniel Vetter Date: Thu Oct 22 19:11:29 2015 +0200 drm/gem: Update/Polish docs A bunch of things have been removed meanwhile and docs not fully brought up to speed. And a few gaps closed where I noticed missing kerneldoc while reading through the overview sections. Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1445533889-7661-3-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Alex Deucher Signed-off-by: Daniel Vetter Documentation/DocBook/gpu.tmpl | 33 ++++----------------------------- drivers/gpu/drm/drm_gem.c | 35 ++++++++++++++++++++++++++++++++--- 2 files changed, 36 insertions(+), 32 deletions(-) commit decc60bf49b5e514ef60fe9dd4b2517328b27e15 Author: Daniel Vetter Date: Thu Oct 22 19:11:27 2015 +0200 drm: Update GEM refcounting docs I just realized that I've forgotten to update all the gem refcounting docs. For pennance also add pretty docs for the overall drm_gem_object structure, with a few links thrown in fore good. As usually we need to make sure the kerneldoc reference is at most a sect2 for otherwise it won't be listed. Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1445533889-7661-1-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Alex Deucher Signed-off-by: Daniel Vetter Documentation/DocBook/gpu.tmpl | 15 +++--- include/drm/drm_gem.h | 106 +++++++++++++++++++++++++++++++++++------ 2 files changed, 100 insertions(+), 21 deletions(-) commit d62112f27e4b734014ac129ad8e2d58443d2e98a Author: saurabh Date: Mon Nov 23 15:26:54 2015 +0530 crypto: nx - use of_property_read_u32() use of_propert_read_u32() for reading int value, it can help reducing number of variables used Signed-off-by: Saurabh Sengar Acked-by: Dan Streetman Signed-off-by: Herbert Xu drivers/crypto/nx/nx-842-powernv.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit 1d4bbc5a6f475f48b878715de832cd2ac99226b1 Author: Geliang Tang Date: Sat Nov 21 22:24:11 2015 +0800 crypto: padlock-aes - use offset_in_page macro Use offset_in_page macro instead of (addr & ~PAGE_MASK). Signed-off-by: Geliang Tang Signed-off-by: Herbert Xu drivers/crypto/padlock-aes.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f143fc673546477f16aba7b7bf456629d06ac4e7 Author: Jim Davis Date: Thu Nov 19 17:06:19 2015 -0700 crypto: qat - fix typo in clean-files A typo in the Makefile leaves qat_rsaprivkey-asn1.h hanging around. Signed-off-by: Jim Davis Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ee0172383190235922ea14529211e8e1cc859b02 Author: Werner Johansson Date: Fri Oct 30 15:34:30 2015 -0700 drm/panel: Add Sharp LS043T1LE01 MIPI DSI panel The Sharp LS043T1LE01 is a 4.3", 540x960 TFT-LCD panel connected using two DSI lanes. It is for example found on the Qualcomm Snapdragon 800 Dragonboard (APQ8074). Signed-off-by: Werner Johansson Signed-off-by: Bjorn Andersson Reviewed-by: Archit Taneja Signed-off-by: Thierry Reding drivers/gpu/drm/panel/Kconfig | 9 + drivers/gpu/drm/panel/Makefile | 1 + drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c | 387 ++++++++++++++++++++++++ 3 files changed, 397 insertions(+) commit 6a24d9c1b9f5a76a892422db64906ddda12f8eee Author: Werner Johansson Date: Fri Oct 30 15:34:29 2015 -0700 dt-bindings: Add Sharp LS043T1LE01 panel binding Signed-off-by: Werner Johansson Signed-off-by: Bjorn Andersson Acked-by: Rob Herring Signed-off-by: Thierry Reding .../bindings/display/panel/sharp,ls043t1le01.txt | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit 6e8c9e33760d0d0f8450f5ac55d10b085e07e136 Author: Werner Johansson Date: Fri Oct 30 17:38:26 2015 -0700 drm/dsi: Add Turn On/Shutdown Peripheral command helpers The MIPI_DSI_TURN_ON_PERIPHERAL and MIPI_DSI_SHUTDOWN_PERIPHERAL packets are required for some panels, for example the Panasonic VVX10F034N00. Signed-off-by: Werner Johansson Signed-off-by: Bjorn Andersson Signed-off-by: Thierry Reding drivers/gpu/drm/drm_mipi_dsi.c | 38 ++++++++++++++++++++++++++++++++++++++ include/drm/drm_mipi_dsi.h | 2 ++ 2 files changed, 40 insertions(+) commit 478dc89cf316697e8029411a64ea2b30c528434d Author: Andy Lutomirski Date: Thu Nov 12 12:59:04 2015 -0800 x86/entry/64: Bypass enter_from_user_mode on non-context-tracking boots On CONFIG_CONTEXT_TRACKING kernels that have context tracking disabled at runtime (which includes most distro kernels), we still have the overhead of a call to enter_from_user_mode in interrupt and exception entries. If jump labels are available, this uses the jump label infrastructure to skip the call. Signed-off-by: Andy Lutomirski Reviewed-by: Thomas Gleixner Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/73ee804fff48cd8c66b65b724f9f728a11a8c686.1447361906.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/calling.h | 15 +++++++++++++++ arch/x86/entry/entry_64.S | 8 ++------ 2 files changed, 17 insertions(+), 6 deletions(-) commit 2671c3e4fe2a34bd9bf2eecdf5d1149d4b55dbdf Author: Andy Lutomirski Date: Thu Nov 12 12:59:03 2015 -0800 x86/asm: Add asm macros for static keys/jump labels Unfortunately, we can only do this if HAVE_JUMP_LABEL. In principle, we could do some serious surgery on the core jump label infrastructure to keep the patch infrastructure available on x86 on all builds, but that's probably not worth it. Implementing the macros using a conditional branch as a fallback seems like a bad idea: we'd have to clobber flags. This limitation can't cause silent failures -- trying to include asm/jump_label.h at all on a non-HAVE_JUMP_LABEL kernel will error out. The macro's users are responsible for handling this issue themselves. Signed-off-by: Andy Lutomirski Reviewed-by: Thomas Gleixner Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/63aa45c4b692e8469e1876d6ccbb5da707972990.1447361906.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/include/asm/jump_label.h | 52 +++++++++++++++++++++++++++++++++------ 1 file changed, 44 insertions(+), 8 deletions(-) commit c28454332fe0b65e22c3a2717e5bf05b5b47ca20 Author: Andy Lutomirski Date: Thu Nov 12 12:59:02 2015 -0800 x86/asm: Error out if asm/jump_label.h is included inappropriately Rather than potentially generating incorrect code on a non-HAVE_JUMP_LABEL kernel if someone includes asm/jump_label.h, error out. Signed-off-by: Andy Lutomirski Reviewed-by: Thomas Gleixner Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/99407f0ac7fa3ab03a3d31ce076d47b5c2f44795.1447361906.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/include/asm/jump_label.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit ed11a7f1b3bd482bd7d6ef7bc2859c41fb43b9ee Author: Andy Lutomirski Date: Thu Nov 12 12:59:01 2015 -0800 context_tracking: Switch to new static_branch API This is much less error-prone than the old code. Signed-off-by: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/812df7e64f120c5c7c08481f36a8caa9f53b2199.1447361906.git.luto@kernel.org Signed-off-by: Ingo Molnar include/linux/context_tracking_state.h | 4 ++-- kernel/context_tracking.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit 49b24106315ddf7b024cf6d289e2ff5c2c7a69fc Merge: 75ef821 f107505 Author: Ingo Molnar Date: Tue Nov 24 09:55:11 2015 +0100 Merge branch 'x86/urgent' into x86/asm, to pick up dependent fixes Signed-off-by: Ingo Molnar commit b7106fa0f29f9fd83d2d1905ab690d334ef855c1 Author: Borislav Petkov Date: Thu Nov 19 12:25:26 2015 +0100 x86/fpu: Get rid of xstate_fault() Add macros for the alternative XSAVE*/XRSTOR* operations which contain the fault handling and use them. Kill xstate_fault(). Also, copy_xregs_to_kernel() didn't have the extended state as memory reference in the asm. Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Dave Hansen Cc: Denys Vlasenko Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Quentin Casasnovas Cc: Rik van Riel Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1447932326-4371-3-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 105 ++++++++++++++++++------------------ 1 file changed, 52 insertions(+), 53 deletions(-) commit b74a0cf1b3db30173eefa00c411775d2b1697700 Author: Borislav Petkov Date: Thu Nov 19 12:25:25 2015 +0100 x86/fpu: Add an XSTATE_OP() macro Add an XSTATE_OP() macro which contains the XSAVE* fault handling and replace all non-alternatives users of xstate_fault() with it. This fixes also the buglet in copy_xregs_to_user() and copy_user_to_xregs() where the inline asm didn't have @xstate as memory reference and thus potentially causing unwanted reordering of accesses to the extended state. Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Dave Hansen Cc: Denys Vlasenko Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Quentin Casasnovas Cc: Rik van Riel Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1447932326-4371-2-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 68 +++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 37 deletions(-) commit 42baa2581c92f8d07e7260506c8d41caf14b0fc3 Author: Juergen Gross Date: Mon Nov 23 11:59:24 2015 +0100 x86/apic: Fix the saving and restoring of lapic vectors during suspend/resume Saving and restoring lapic vectors in lapic_suspend() and lapic_resume() is not consistent: the thmr vector saving is guarded by a different config option than the restore part. The cmci vector isn't handled at all. Those inconsistencies are not very critical, as the missing cmci vector will be set via mce resume handling, the wrong config option used for restoring the thmr vector can't be configured differently than the one which should be used. Nevertheless correct the thmr vector restore and add cmci vector handling. Signed-off-by: Juergen Gross Acked-by: Borislav Petkov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1448276364-31334-1-git-send-email-jgross@suse.com [ Minor code edits. ] Signed-off-by: Ingo Molnar arch/x86/kernel/apic/apic.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 679bcea857d72868e3431dde3a0e158bf0ed9119 Author: Borislav Petkov Date: Mon Nov 23 11:12:26 2015 +0100 x86/MSR: Chop off lower 32-bit value sparse complains that the cast truncates the high bits. But here we really do know what we're doing and we need the lower 32 bits only as the @low argument. So make that explicit. Suggested-by: Andy Lutomirski Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1448273546-2567-7-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/include/asm/msr.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 31ac34ca5636e596485c6e03df1879643bde585e Author: Borislav Petkov Date: Mon Nov 23 11:12:25 2015 +0100 x86/cpu: Fix MSR value truncation issue So sparse rightfully complains that the u64 MSR value we're writing into the STAR MSR, i.e. 0xc0000081, is being truncated: ./arch/x86/include/asm/msr.h:193:36: warning: cast truncates bits from constant value (23001000000000 becomes 0) because the actual value doesn't fit into the unsigned 32-bit quantity which are the @low and @high wrmsrl() parameters. This is not a problem, practically, because gcc is actually being smart enough here and does the right thing: .loc 3 87 0 xorl %esi, %esi # we needz a 32-bit zero movl $2293776, %edx # 0x00230010 == (__USER32_CS << 16) | __KERNEL_CS go into the high bits movl $-1073741695, %ecx # MSR_STAR, i.e., 0xc0000081 movl %esi, %eax # low order 32 bits in the MSR which are 0 #APP # 87 "./arch/x86/include/asm/msr.h" 1 wrmsr More specifically, MSR_STAR[31:0] is being set to 0. That field is reserved on Intel and on AMD it is 32-bit SYSCALL Target EIP. I'd strongly guess because Intel doesn't have SYSCALL in compat/legacy mode and we're using SYSENTER and INT80 there. And for compat syscalls in long mode we use CSTAR. So let's fix the sparse warning by writing SYSRET and SYSCALL CS and SS into the high 32-bit half of STAR and 0 in the low half explicitly. [ Actually, if we had to be precise, we would have to read what's in STAR[31:0] and write it back unchanged on Intel and write 0 on AMD. I guess the current writing to 0 is still ok since Intel can apparently stomach it. ] The resulting code is identical to what we have above: .loc 3 87 0 xorl %esi, %esi # tmp104 movl $2293776, %eax #, tmp103 movl $-1073741695, %ecx #, tmp102 movl %esi, %edx # tmp104, tmp104 ... wrmsr Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1448273546-2567-6-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ae8b787543d872cf89a7f9ef8aa302f3ef9bcbd7 Author: Borislav Petkov Date: Mon Nov 23 11:12:23 2015 +0100 x86/cpu/amd, kvm: Satisfy guest kernel reads of IC_CFG MSR The kernel accesses IC_CFG MSR (0xc0011021) on AMD because it checks whether the way access filter is enabled on some F15h models, and, if so, disables it. kvm doesn't handle that MSR access and complains about it, which can get really noisy in dmesg when one starts kvm guests all the time for testing. And it is useless anyway - guest kernel shouldn't be doing such changes anyway so tell it that that filter is disabled. Signed-off-by: Borislav Petkov Reviewed-by: Paolo Bonzini Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1448273546-2567-4-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/include/asm/msr-index.h | 1 + arch/x86/kernel/cpu/amd.c | 4 ++-- arch/x86/kvm/svm.c | 17 +++++++++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) commit 91713faf386be6d7e6556b656436813f8c4ee552 Author: Borislav Petkov Date: Mon Nov 23 11:12:22 2015 +0100 kvm: Add accessors for guest CPU's family, model, stepping Those give the family, model and stepping of the guest vcpu. Signed-off-by: Borislav Petkov Reviewed-by: Paolo Bonzini Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1448273546-2567-3-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/kvm/cpuid.h | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) commit 99f925ce927e4ac313d9af8bd1bf55796e2cdcb1 Author: Borislav Petkov Date: Mon Nov 23 11:12:21 2015 +0100 x86/cpu: Unify CPU family, model, stepping calculation Add generic functions which calc family, model and stepping from the CPUID_1.EAX leaf and stick them into the library we have. Rename those which do call CPUID with the prefix "x86_cpuid" as suggested by Paolo Bonzini. No functionality change. Signed-off-by: Borislav Petkov Reviewed-by: Paolo Bonzini Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1448273546-2567-2-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/include/asm/cpu.h | 3 +++ arch/x86/include/asm/microcode.h | 39 +++++++---------------------------- arch/x86/kernel/cpu/common.c | 11 +++------- arch/x86/kernel/cpu/microcode/core.c | 12 +++++------ arch/x86/kernel/cpu/microcode/intel.c | 16 ++++++-------- arch/x86/lib/Makefile | 2 +- arch/x86/lib/cpu.c | 35 +++++++++++++++++++++++++++++++ 7 files changed, 61 insertions(+), 57 deletions(-) commit feab21f8356bde572663e29c9d9e48c964292e05 Author: Borislav Petkov Date: Tue Nov 24 08:41:20 2015 +0100 x86/mce: Make usable address checks Intel-only The MCi_MISC bitfield definitions mce_usable_address() checks are Intel-only. Make them so. While at it, move mce_usable_address() up, before all its callers and get rid of the forward declaration. Signed-off-by: Borislav Petkov Acked-by: Tony Luck Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1448350880-5573-5-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/mcheck/mce.c | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) commit db548a28fcee0f38cf4c7c726becf24c8afacf02 Author: Borislav Petkov Date: Tue Nov 24 08:41:19 2015 +0100 x86/mce: Add the missing memory error check on AMD We simply need to look at the extended error code when detecting whether the error is of type memory. Signed-off-by: Borislav Petkov Acked-by: Tony Luck Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1448350880-5573-4-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/mcheck/mce.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit c0ec382e1928402031e754ad0391ecbdabb18c43 Author: Borislav Petkov Date: Tue Nov 24 08:41:18 2015 +0100 x86/RAS: Remove mce.usable_addr It is useless and we can use the function instead. Besides, mcelog(8) hasn't managed to make use of it yet. So kill it. Signed-off-by: Borislav Petkov Acked-by: Tony Luck Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1448350880-5573-3-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/include/uapi/asm/mce.h | 2 +- arch/x86/kernel/cpu/mcheck/mce.c | 12 ++++-------- 2 files changed, 5 insertions(+), 9 deletions(-) commit 8b38937b7ab55e93065a14c88753b1fe83e93c60 Author: Tony Luck Date: Tue Nov 24 08:41:17 2015 +0100 x86/mce: Do not enter deferred errors into the generic pool twice We used to have a special ring buffer for deferred errors that was used to mark problem pages. We replaced that with a generic pool. Then later converted mce_log() to also use the same pool. As a result, we end up adding all deferred errors to the pool twice. Rearrange this code. Make sure to set the m.severity and m.usable_addr fields for deferred errors. Then if flags and mca_cfg.dont_log_ce mean we call mce_log() we are done, because that will add this entry to the generic pool. If we skipped mce_log(), then we still want to take action for the deferred error, so add to the pool. Change the name of the boolean "error_logged" to "error_seen", we should set it whether of not we logged an error because the return value from machine_check_poll() is used to decide whether storms have subsided or not. Reported-by: Gong Chen Signed-off-by: Tony Luck Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-edac Link: http://lkml.kernel.org/r/1448350880-5573-2-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/mcheck/mce.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) commit 9327ca73474225e5d6f1f96807a90f359124118f Merge: b7883a1 646a6e8 Author: Ingo Molnar Date: Tue Nov 24 09:07:28 2015 +0100 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 callchain order (caller, callee) to the libdw and libunwind based DWARF unwinders (Jiri Olsa) - Add missing parent_val initialization in the callchain code, fixing a SEGFAULT when using callchains with 'perf top' (Jiri Olsa) - Add initial 'perf config' command, for now just with a --list command to the contents of the configuration file in use and a basic man page describing its format, commands for doing edits and detailed documentation are being reviewed and proof-read. (Taeung Song) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit c1751e32727c5356c4e33c8da33edb782dde6210 Author: Hans de Goede Date: Fri Nov 20 14:24:52 2015 +0100 ARM: dts: sun4i: Add touchscreen node to pov protab2-ips9 tablet Add a node describing the touchscreen found on the pov protab2-ips9 tablet. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10-pov-protab2-ips9.dts | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit 6ffd6fa0134a7dd6b65633bb0b8c587517ac94e9 Author: Hans de Goede Date: Fri Nov 20 14:24:51 2015 +0100 ARM: dts: sun4i: Add touchscreen node to iNet1 tablet Add a node describing the touchscreen controller used on the iNet1 tablet. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10-inet1.dts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 87630eb1d5ab76fc39e785294d1930bebcecabcf Author: Krzysztof Kozlowski Date: Thu Nov 19 13:00:39 2015 +0900 powerpc/powernv: 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 Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/opal-prd.c | 1 - 1 file changed, 1 deletion(-) commit 48f0f6b717e314a30be121b67e1d044f6d311d66 Author: Andrew Donnellan Date: Wed Nov 4 13:24:09 2015 +1100 cxl: use correct operator when writing pcie config space values When writing a value to config space, cxl_pcie_write_config() calls cxl_pcie_config_info() to obtain a mask and shift value, shifts the new value accordingly, then uses the mask to combine the shifted value with the existing value at the address as part of a read-modify-write pattern. Currently, we use a logical OR operator rather than a bitwise OR operator, which means any use of this function results in an incorrect value being written. Replace the logical OR operator with a bitwise OR operator so the value is written correctly. Reported-by: Michael Ellerman Cc: stable@vger.kernel.org Fixes: 6f7f0b3df6d4 ("cxl: Add AFU virtual PHB and kernel API") Signed-off-by: Andrew Donnellan Acked-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/vphb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1b5df59e50874b9034c0fa389cd52b65f1f93292 Author: Vaibhav Jain Date: Mon Nov 16 09:33:45 2015 +0530 cxl: Fix possible idr warning when contexts are released An idr warning is reported when a context is release after the capi card is unbound from the cxl driver via sysfs. Below are the steps to reproduce: 1. Create multiple afu contexts in an user-space application using libcxl. 2. Unbind capi card from cxl using command of form echo > /sys/bus/pci/drivers/cxl-pci/unbind 3. Exit/kill the application owning afu contexts. After above steps a warning message is usually seen in the kernel logs of the form "idr_remove called for id= which is not allocated." This is caused by the function cxl_release_afu which destroys the contexts_idr table. So when a context is release no entry for context pe is found in the contexts_idr table and idr code prints this warning. This patch fixes this issue by increasing & decreasing the ref-count on the afu device when a context is initialized or when its freed respectively. This prevents the afu from being released until all the afu contexts have been released. The patch introduces two new functions namely cxl_afu_get/put that manage the ref-count on the afu device. Also the patch removes code inside cxl_dev_context_init that increases ref on the afu device as its guaranteed to be alive during this function. Reported-by: Ian Munsie Signed-off-by: Vaibhav Jain Acked-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/api.c | 4 ---- drivers/misc/cxl/context.c | 9 +++++++++ drivers/misc/cxl/cxl.h | 12 ++++++++++++ drivers/misc/cxl/file.c | 19 +++++++++++-------- 4 files changed, 32 insertions(+), 12 deletions(-) commit 13b8b8e8fae6bc38941bc5e5e847706beb004082 Author: Magnus Damm Date: Tue Nov 17 12:27:59 2015 +0900 ARM: shmobile: r8a7794: alt: Enable PFC DU for the VGA port Tie in r8a7794 PFC DU support to the VGA port on the r8a7794 ALT board. Signed-off-by: Magnus Damm Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7794-alt.dts | 7 +++++++ 1 file changed, 7 insertions(+) commit 781f278a16fbd74ffa2acf3f14134953631f076d Author: Ulrich Hecht Date: Thu Oct 29 20:57:34 2015 +0100 ARM: shmobile: bockw dts: define sdhi0 pins with pull-ups Ensures that the pull-ups for pins SD0_CD and SD0_WP are enabled. This is one of two features from the DT reference platform that are still missing in MP. Signed-off-by: Ulrich Hecht Acked-by: Linus Walleij Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7778-bockw.dts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 430d7baddf2d913de76e8101d807f4f2861705f7 Author: Ulrich Hecht Date: Fri Nov 13 17:22:23 2015 +0100 ARM: shmobile: r8a7790: switch console back to scif0 The boot loader uses scif0, and so must we if we want earlycon to work. Partially reverts 7c0558941 ("ARM: shmobile: r8a7790: switch from scif to scifa"). Signed-off-by: Ulrich Hecht Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7790-lager.dts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 998f468f34f41905051556a9897dbc204b1b75b4 Merge: d537543 8005c49 Author: Simon Horman Date: Tue Nov 24 12:00:02 2015 +0900 Merge tag 'v4.4-rc1' into HEAD Linux 4.4-rc1 commit 4fa04299184604d5ae85a3ebe795e19eb564fc67 Author: Geert Uytterhoeven Date: Thu Nov 19 19:29:11 2015 +0100 arm64: renesas: r8a7795 dtsi: Add all HSCIF nodes Add the device nodes for all HSCIF serial ports, incl. clocks, clock domain, and dma properties. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm64/boot/dts/renesas/r8a7795.dtsi | 60 ++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) commit 6575a9c69a211ac1cf454f9c76be54f7a5fae9fe Author: Geert Uytterhoeven Date: Thu Nov 19 19:32:06 2015 +0100 drivers: sh: clk: Avoid crashes when passing NULL clocks Several clock API functions handle NULL clocks when the Common Clock Framework is used, while their legacy SH counterparts don't, and would just crash when a NULL clock is passed. Add NULL checks to clk_get_rate(), clk_set_rate(), clk_get_parent(), and clk_round_rate(), to avoid different behavior in drivers shared between legacy and CCF-based platforms. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman drivers/sh/clk/core.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 90069ad1b602d05740ed0fc5f72f09a616ceddd0 Author: Geert Uytterhoeven Date: Thu Nov 19 19:32:07 2015 +0100 drivers: sh: clk: Remove obsolete and unused clk_round_parent() clk_round_parent() was only ever used by AP4EVB, until commit b24bd7e97b3784af ("ARM: shmobile: Remove AP4EVB board support"). The Common Clock Framework does not provide clk_round_parent(), hence remove it. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman drivers/sh/clk/core.c | 88 -------------------------------------------------- include/linux/sh_clk.h | 4 --- 2 files changed, 92 deletions(-) commit 7a7ef0f2a4b359d0206772bf291781157d07f7dc Author: Charles Keepax Date: Mon Nov 23 14:51:30 2015 +0000 extcon: arizona: Update naming for micd-timeout DT to include units Add time units of -ms (milliseconds) to wlf,micd-timeout. Signed-off-by: Charles Keepax Signed-off-by: Chanwoo Choi Documentation/devicetree/bindings/extcon/extcon-arizona.txt | 2 +- drivers/extcon/extcon-arizona.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 832df9e8ecabec271a0c418bdbb94da826dc5b6d Author: Charles Keepax Date: Fri Nov 20 17:53:59 2015 +0900 extcon: arizona: Update naming for second jack detection DT binding Update the name for the second jack detection pin binding to be a little less confusing. Signed-off-by: Charles Keepax Acked-by: Rob Herring Signed-off-by: Chanwoo Choi Documentation/devicetree/bindings/extcon/extcon-arizona.txt | 4 ++-- drivers/extcon/extcon-arizona.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit faef90f1a203f96796d5bc3c6225ee100ec70864 Author: Xing Zheng Date: Thu Nov 5 15:39:52 2015 +0800 ARM: dts: rockchip: add rk3036-evb board Initial release for rk3036 sdk board. Signed-off-by: Xing Zheng Signed-off-by: Heiko Stuebner arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/rk3036-evb.dts | 64 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) commit faea098e1808729e4785cdba3a3fc52fae49f1ab Author: Xing Zheng Date: Thu Nov 5 15:39:52 2015 +0800 ARM: dts: rockchip: add core rk3036 dtsi Initial release for rk3036 shared dtsi. Signed-off-by: Xing Zheng Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3036.dtsi | 554 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 554 insertions(+) commit 7f6080975015b3feb1e086c5d328c7b28c228eb6 Merge: b26baff 1ec2183 Author: Greg Kroah-Hartman Date: Mon Nov 23 14:51:50 2015 -0800 Merge 4.4-rc2 into staging-next We want those fixes in here to resolve merge issues. Signed-off-by: Greg Kroah-Hartman commit dc4e7b1fa20a840d2317fcfdaa1064fc09d2afcb Author: Viresh Kumar Date: Thu Nov 19 09:13:56 2015 +0530 PM / OPP: Add missing doc comments Few doc-style comments were missing, add them. Rearrange another one to match the sequence within the structure. Signed-off-by: Viresh Kumar Acked-by: Pavel Machek Reviewed-by: Stephen Boyd Signed-off-by: Rafael J. Wysocki drivers/base/power/opp/opp.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 2aae9915267e60b6ab7af3777f92ca793992e9b9 Author: Viresh Kumar Date: Wed Nov 11 08:10:58 2015 +0530 ARM: dts: exynos4412: Rename OPP nodes as opp@ OPP bindings got updated to name OPP nodes this way, make changes according to that. Reviewed-by: Krzysztof Kozlowski Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki arch/arm/boot/dts/exynos4412.dtsi | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) commit 754dcf35f34698661801ae1d391efa02affe83a7 Author: Viresh Kumar Date: Wed Nov 11 08:10:57 2015 +0530 PM / OPP: Rename OPP nodes as opp@ It would be better to name OPP nodes as opp@ as that will ensure that multiple DT nodes don't contain the same frequency. Of course we expect the writer to name the node with its opp-hz frequency and not any other frequency. And that will let the compile error out if multiple nodes are using the same opp-hz frequency. Suggested-by: Stephen Boyd Reviewed-by: Stephen Boyd Acked-by: Rob Herring Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki Documentation/devicetree/bindings/opp/opp.txt | 38 +++++++++++++-------------- 1 file changed, 19 insertions(+), 19 deletions(-) commit af87a39a5f7cf6ef252b1aec3e2e6508a40e51f1 Author: Viresh Kumar Date: Wed Nov 11 08:10:56 2015 +0530 PM / OPP: Remove 'operating-points-names' binding These aren't used until now by any DT files and wouldn't be used now as we have a better scheme in place now, i.e. opp-property- properties. Remove the (useless) binding without breaking ABI. Reviewed-by: Stephen Boyd Acked-by: Rob Herring Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki Documentation/devicetree/bindings/opp/opp.txt | 62 +-------------------------- 1 file changed, 2 insertions(+), 60 deletions(-) commit ffdb8cc7a27c89175e541e68e2a73f1f63ab8c6b Author: Viresh Kumar Date: Wed Nov 11 08:10:55 2015 +0530 PM / OPP: Add {opp-microvolt|opp-microamp}- binding Depending on the version of hardware or its properties, which are only known at runtime, various properties of the OPP can change. For example, an OPP with frequency 1.2 GHz, may have different voltage/current requirements based on the version of the hardware it is running on. In order to not replicate the same OPP tables for varying values of all such fields, this commit introduces the concept of opp-property-. The can be chosen by the platform at runtime, and OPPs will be initialized depending on that name string. Currently support is extended for the following properties: - opp-microvolt- - opp-microamp- If the name string isn't provided by the platform, or if it is provided but doesn't match the properties present in the OPP node, we will fall back to the original properties without the - string, if they are available. Reviewed-by: Stephen Boyd Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki Documentation/devicetree/bindings/opp/opp.txt | 47 +++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) commit 1c4d12de2719dfdf27c6dab31e7a5641ee293c94 Author: Viresh Kumar Date: Wed Nov 11 08:10:54 2015 +0530 PM / OPP: Add "opp-supported-hw" binding We may want to enable only a subset of OPPs, from the bigger list of OPPs, based on what version of the hardware we are running on. This would enable us to not duplicate OPP tables for every version of the hardware we support. To enable that, this patch defines a new property 'opp-supported-hw'. It can support any number of hierarchy levels of the versions the hardware follows. And based on the selected hardware versions, we can pick only the relevant OPPs at runtime. Reviewed-by: Stephen Boyd Acked-by: Rob Herring Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki Documentation/devicetree/bindings/opp/opp.txt | 65 +++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) commit deaa51465105a7eda19a627b10372f4f7c51a4df Author: Viresh Kumar Date: Wed Nov 11 07:59:01 2015 +0530 PM / OPP: Add debugfs support This patch adds debugfs support to OPP layer to export OPPs and their properties for all the devices. This creates a top level directory: /sys/kernel/debug/opp and then device specific directories (based on device names) inside it. For example: 'cpu0', 'cpu1', etc.. If multiple devices share the OPP table, then the real directory is created only for the first device. For all others, links are created to the real directory. Inside the device specific directory, a separate directory is created for each OPP. And within that files per opp property. Signed-off-by: Viresh Kumar Reviewed-by: Stephen Boyd Signed-off-by: Rafael J. Wysocki drivers/base/power/opp/Makefile | 1 + drivers/base/power/opp/core.c | 21 +++- drivers/base/power/opp/debugfs.c | 219 +++++++++++++++++++++++++++++++++++++++ drivers/base/power/opp/opp.h | 42 ++++++++ 4 files changed, 281 insertions(+), 2 deletions(-) commit 20aef5a22031931bc6f6a313461f37e652f1d9cb Merge: 3a035ea 8b0d55e Author: Heiko Stuebner Date: Mon Nov 23 23:20:20 2015 +0100 Merge branch 'v4.5-clk/clkids' into v4.5-armsoc/dts32 commit 32abc2ede536aae52978d6c0a8944eb1df14f460 Author: Steven Rostedt Date: Mon Nov 16 17:25:16 2015 -0500 tools lib traceevent: Fix output of %llu for 64 bit values read on 32 bit machines When a long value is read on 32 bit machines for 64 bit output, the parsing needs to change "%lu" into "%llu", as the value is read natively. Unfortunately, if "%llu" is already there, the code will add another "l" to it and fail to parse it properly. Signed-off-by: Steven Rostedt Acked-by: Namhyung Kim Cc: stable@vger.kernel.org Link: http://lkml.kernel.org/r/20151116172516.4b79b109@gandalf.local.home Signed-off-by: Arnaldo Carvalho de Melo tools/lib/traceevent/event-parse.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 646a6e846c4dc3812c614fd061603b6db5b8d380 Author: Jiri Olsa Date: Sat Nov 21 11:23:55 2015 +0100 perf callchain: Add missing parent_val initialization Adding missing parent_val callchain_node initialization. It's causing segfault in perf top: $ sudo perf top -g perf: Segmentation fault -------- backtrace -------- free_callchain_node(+0x29) in perf [0x4a4b3e] free_callchain(+0x29) in perf [0x4a5a83] hist_entry__delete(+0x126) in perf [0x4c6649] hists__delete_entry(+0x6e) in perf [0x4c66dc] hists__decay_entries(+0x7d) in perf [0x4c6776] perf_top__sort_new_samples(+0x7c) in perf [0x436a78] hist_browser__run(+0xf2) in perf [0x507760] perf_evsel__hists_browse(+0x1da) in perf [0x507c8d] perf_evlist__tui_browse_hists(+0x3e) in perf [0x5088cf] display_thread_tui(+0x7f) in perf [0x437953] start_thread(+0xc5) in libpthread-2.21.so [0x7f7068fbb555] __clone(+0x6d) in libc-2.21.so [0x7f7066fc3b9d] [0x0] Reported-and-Tested-by: Arnaldo Carvalho de Melo Signed-off-by: Jiri Olsa Acked-by: Namhyung Kim Cc: Masami Hiramatsu Cc: Wang Nan Fixes: 4b3a3212233a ("perf hists browser: Support flat callchains") Link: http://lkml.kernel.org/r/20151121102355.GA17313@krava.local Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/callchain.h | 1 + 1 file changed, 1 insertion(+) commit 7d6852432acb3b09fc3ec45dd65421d34eebe3b5 Author: Taeung Song Date: Sun Nov 22 19:11:56 2015 +0900 perf config: Add initial man page Add perf-config document to describe the perf configuration and a 'list’ subcommand. Signed-off-by: Taeung Song Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/63AD9B57-7B8C-46F8-8F18-0FFEB9A6A1BC@gmail.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-config.txt | 103 +++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) commit 30862f2c5725c46afcfab5af710fdf5163bf0f81 Author: Taeung Song Date: Tue Nov 17 22:53:21 2015 +0900 perf tools: Add 'perf config' command The perf configuration file contains many variables to change various aspects of each of its tools, including output, disk usage, etc. But looking at the state of configuration is difficult and there's no documentation about config variables except for the variables in perfconfig.example exist. So this patch adds a 'perf-config' command with a '--list' option. perf config [options] display current perf config variables. # perf config -l | --list Signed-off-by: Taeung Song Acked-by: Namhyung Kim Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1447768424-17327-1-git-send-email-treeze.taeung@gmail.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Build | 1 + tools/perf/builtin-config.c | 66 +++++++++++++++++++++++++++++++++++++++++++++ tools/perf/builtin.h | 1 + tools/perf/command-list.txt | 1 + tools/perf/perf.c | 1 + 5 files changed, 70 insertions(+) commit 8bd508b001629a5d836987d9a0702a6bfc4fc705 Author: Jiri Olsa Date: Thu Nov 19 14:01:19 2015 +0100 perf callchain: Add order support for libdw DWARF unwinder As reported by Milian, currently for DWARF unwind (both libdw and libunwind) we display callchain in callee order only. Adding the support to follow callchain order setup to libdw DWARF unwinder, so we could get following output for report: $ perf record --call-graph dwarf ls ... $ perf report --no-children --stdio 21.12% ls libc-2.21.so [.] __strcoll_l | ---__strcoll_l mpsort_with_tmp mpsort_with_tmp mpsort_with_tmp sort_files main __libc_start_main _start $ perf report --stdio --no-children -g caller 21.12% ls libc-2.21.so [.] __strcoll_l | ---_start __libc_start_main main sort_files mpsort_with_tmp mpsort_with_tmp mpsort_with_tmp __strcoll_l Reported-and-Tested-by: Milian Wolff Signed-off-by: Jiri Olsa Tested-by: Wang Nan Cc: David Ahern Cc: Jan Kratochvil Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20151119130119.GA26617@krava.brq.redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/unwind-libdw.c | 53 ++++++++++++++++++++++++++++++------------ tools/perf/util/unwind-libdw.h | 2 ++ 2 files changed, 40 insertions(+), 15 deletions(-) commit 8dc0564d809e3903834950e2d12f6d1d2fcff708 Author: Jiri Olsa Date: Tue Nov 17 16:05:39 2015 +0100 perf test: Add callchain order setup for DWARF unwinder test Adding callchain order setup for DWARF unwinder test. The test now runs unwinder for both callee and caller orders. Signed-off-by: Jiri Olsa Tested-by: Milian Wolff Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/1447772739-18471-4-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/dwarf-unwind.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) commit cb1dc22dce6e54dbd1eac213c9216e1aa57084da Author: Jiri Olsa Date: Wed Nov 18 08:52:47 2015 +0100 perf callchain: Add order support for libunwind DWARF unwinder As reported by Milian, currently for DWARF unwind (both libdw and libunwind) we display callchain in callee order only. Adding the support to follow callchain order setup to libunwind DWARF unwinder, so we could get following output for report: $ perf record --call-graph dwarf ls ... $ perf report --no-children --stdio 39.26% ls libc-2.21.so [.] __strcoll_l | ---__strcoll_l mpsort_with_tmp mpsort_with_tmp sort_files main __libc_start_main _start 0 $ perf report -g caller --no-children --stdio ... 39.26% ls libc-2.21.so [.] __strcoll_l | ---0 _start __libc_start_main main sort_files mpsort_with_tmp mpsort_with_tmp __strcoll_l Based-on-patch-by: Milian Wolff Reported-and-Tested-by: Milian Wolff Signed-off-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Tested-by: Wang Nan Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/20151118075247.GA5416@krava.brq.redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/unwind-libunwind.c | 47 ++++++++++++++++++++++++-------------- 1 file changed, 30 insertions(+), 17 deletions(-) commit b26b218a1e9c5815cb8964e180b7fba3cd9bd509 Author: Jiri Olsa Date: Tue Nov 17 16:05:37 2015 +0100 perf callchain: Move initial entry call into get_entries function Moving initial entry call into get_entries function so all entries processing is on one place. It will be useful for next change that adds ordering logic. Signed-off-by: Jiri Olsa Tested-by: Milian Wolff Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/1447772739-18471-2-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/unwind-libunwind.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) commit 5190c08b29899131a183ea5802b9397918cca1ae Author: Xing Zheng Date: Thu Nov 5 15:33:58 2015 +0800 clk: rockchip: add clock controller for rk3036 Add the clock tree definition for the new rk3036 SoC. Signed-off-by: Xing Zheng Signed-off-by: Heiko Stuebner drivers/clk/rockchip/Makefile | 1 + drivers/clk/rockchip/clk-rk3036.c | 478 ++++++++++++++++++++++++++++++++++++++ drivers/clk/rockchip/clk.h | 9 +- 3 files changed, 487 insertions(+), 1 deletion(-) commit 2fdde83443aa84b2a163dbcc5165f8139845b15e Author: Azael Avalos Date: Mon Nov 23 10:49:11 2015 -0700 toshiba_acpi: Add WWAN RFKill support A previuos patch added WWAN support to the driver, allowing to query and set the device status. This patch adds RFKill support for the recently introduced WWAN device, making use of the WWAN and *wireless_status functions to query the killswitch and (de)activate the device accordingly to its status. Signed-off-by: Fabian Koester Signed-off-by: Azael Avalos Signed-off-by: Darren Hart drivers/platform/x86/toshiba_acpi.c | 79 +++++++++++++++++++++++++++++++++++-- 1 file changed, 76 insertions(+), 3 deletions(-) commit 6873f46a630c48a1fa5ef09ec830c9bb2b2de8dd Author: Azael Avalos Date: Mon Nov 23 10:49:10 2015 -0700 toshiba_acpi: Add support for WWAN devices Toshiba laptops with WWAN devices installed cannot use the device unless it is attached and powered, similar to how Toshiba Bluetooth devices work. This patch adds support to WWAN devices, introducing three functions, one to query the overall status of the wireless devices (RFKill, WLAN, BT, WWAN), the second queries WWAN support, and finally the third (de)activates the device. Signed-off-by: Fabian Koester Signed-off-by: Azael Avalos ZZ Signed-off-by: Darren Hart drivers/platform/x86/toshiba_acpi.c | 109 ++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) commit 9c4d6e55377bc9232a33c7388accb5bd10771eba Author: Xing Zheng Date: Thu Nov 5 15:33:57 2015 +0800 clk: rockchip: add new pll-type for rk3036 and similar socs The rk3036's pll and clock are different with base on the rk3066(rk3188, rk3288, rk3368 use it), there are different adjust foctors and control registers, so these should be independent and separate from the series of rk3066s. Signed-off-by: Xing Zheng Signed-off-by: Heiko Stuebner drivers/clk/rockchip/clk-pll.c | 258 ++++++++++++++++++++++++++++++++++++++++- drivers/clk/rockchip/clk.h | 23 ++++ 2 files changed, 280 insertions(+), 1 deletion(-) commit 3b22dae38db1cea9ead3229f08cfb0b69aca5706 Author: Julia Lawall Date: Sat Nov 21 18:39:17 2015 +0100 VSOCK: constify vmci_transport_notify_ops structures The vmci_transport_notify_ops structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: David S. Miller net/vmw_vsock/vmci_transport.h | 2 +- net/vmw_vsock/vmci_transport_notify.c | 2 +- net/vmw_vsock/vmci_transport_notify.h | 5 +++-- net/vmw_vsock/vmci_transport_notify_qstate.c | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) commit 4dd191bb6195641edbc527a8495b7b1b816a41e6 Author: Julia Lawall Date: Sat Nov 21 18:28:05 2015 +0100 net: atm: constify in_cache_ops and eg_cache_ops structures The in_cache_ops and eg_cache_ops structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: David S. Miller net/atm/mpc.h | 4 ++-- net/atm/mpoa_caches.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit ed2d26d7cbccb1aa719a5d3fb8e87ef6610cb530 Author: Prarit Bhargava Date: Wed Nov 18 12:04:48 2015 -0500 tools, testing, add test for intel_pstate driver This test used the cpupower utility to set the cpu frequency from the maximum turbo value to the minimum supported value in steps of 100 MHz. The results are displayed in a table which indicate the "Target" state, or the requested frequency in MHz, the Actual frequency, as read from /proc/cpuinfo, the difference between the Target and Actual frequencies, and the value of MSR 0x199 (MSR_IA32_PERF_CTL) which indicates what pstate the cpu is in, and the value of /sys/devices/system/cpu/intel_pstate/max_perf_pct X maximum turbo state Cc: Shuah Khan Cc: linux-api@vger.kernel.org Signed-off-by: Prarit Bhargava Signed-off-by: Shuah Khan tools/testing/selftests/intel_pstate/Makefile | 15 ++++ tools/testing/selftests/intel_pstate/aperf.c | 80 ++++++++++++++++++ tools/testing/selftests/intel_pstate/msr.c | 39 +++++++++ tools/testing/selftests/intel_pstate/run.sh | 113 ++++++++++++++++++++++++++ 4 files changed, 247 insertions(+) commit 708e5ca4eb6bab0b023872f5e81fdbf8dd6342cb Author: Xing Zheng Date: Thu Nov 5 15:33:55 2015 +0800 dt-bindings: add documentation of rk3036 clock controller Add the devicetree binding for the cru on the rk3036 which quite similar structured as previous clock controllers. Signed-off-by: Xing Zheng Acked-by: Rob Herring Signed-off-by: Heiko Stuebner .../bindings/clock/rockchip,rk3036-cru.txt | 56 ++++++++++++++++++++++ 1 file changed, 56 insertions(+) commit 751be8f2eede261f9b3f7dc0dc80644b2b1893c6 Author: Zain Wang Date: Tue Nov 17 12:00:45 2015 +0800 clk: rockchip: set the id for crypto clk Set the newly added id for the crypto clk, so that it can be called in other parts. Signed-off-by: Zain Wang Acked-by: Michael Turquette Signed-off-by: Heiko Stuebner drivers/clk/rockchip/clk-rk3288.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c27e0aee6225c8e82163fb8ac09aa780a7f7431c Merge: 8005c49 8b0d55e Author: Heiko Stuebner Date: Mon Nov 23 21:23:30 2015 +0100 Merge branch 'v4.5-clk/clkids' into v4.5-clk/next commit 7e722473811a4f82a48bb2ef934ff44ca9ab8fa5 Author: Bamvor Jian Zhang Date: Tue Nov 17 22:35:43 2015 +0800 selftest/ipc: actually test it The ipc testcase exist in selftest but no in the TARGETS list. Add it to the TARGETS. Signed-off-by: Bamvor Jian Zhang Signed-off-by: Shuah Khan tools/testing/selftests/Makefile | 1 + 1 file changed, 1 insertion(+) commit f4ecb322ab890a5c907a129fcee47056bf523415 Author: Bamvor Jian Zhang Date: Tue Nov 17 22:35:42 2015 +0800 selftests/capabilities: actually test it The capatabilities exist in selftest but no in the TARGETS list. Add it to the TARGETS. Signed-off-by: Bamvor Jian Zhang Signed-off-by: Shuah Khan tools/testing/selftests/Makefile | 1 + 1 file changed, 1 insertion(+) commit d3edeb47d886cf38bcf0e96c38f15f6cfda67e02 Author: Bamvor Jian Zhang Date: Tue Nov 17 22:35:41 2015 +0800 selftests/capabilities: clean up for Makefile Clean up the following things: 1. Avoid the broken when use TARGETS in the command line, eg: $ make -C tools/testing/selftests TARGETS=capabilities make[1]: *** No rule to make target 'capabilities', needed by 'all'. Stop. Replace TARGETS with BINARIES. 2. User need to provide cap-ng.h and libcap-ng.so for cross compiling. Replace ':=' with '+=' for CFLAGS and introduce LDLIBS to archieve it. Delete useless EXTRA_CLAGS at the same time. 3. Delete the duplicated definition which is already defined by lib.mk. Suggested-by: Michael Ellerman Signed-off-by: Bamvor Jian Zhang Signed-off-by: Shuah Khan tools/testing/selftests/capabilities/Makefile | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) commit 8b0d55e962137bf92f9342ec78e1d8e5fd1c03be Author: Xing Zheng Date: Thu Nov 5 15:33:56 2015 +0800 clk: rockchip: add dt-binding header for rk3036 Add the dt-bindings header for the rk3036, that gets shared between the clock controller and the clock references in the dts. Signed-off-by: Xing Zheng Signed-off-by: Heiko Stuebner include/dt-bindings/clock/rk3036-cru.h | 193 +++++++++++++++++++++++++++++++++ 1 file changed, 193 insertions(+) commit 901fb38d5a06fa391ec38f2d673a436b7b6b4e36 Merge: 930d314 a0b4773 Author: David S. Miller Date: Mon Nov 23 15:06:40 2015 -0500 Merge branch 'ipmr-cleanups' Nikolay Aleksandrov says: ==================== net: ipmr: cleanups and minor improvements Since I'll have to work with ipmr, I decided to clean it up and do some minor improvements. Functionally there're almost no changes except the SLAB_PANIC removal. Most of the patches just re-design some functions to be clearer and more concise and try to remove the ifdef web that was inside. There's more information in each commit. This is the first set, the end goal is to introduce complete netlink support and control over the mfc and vif devices. I've tried to test all of the setsockopt/getsockopt options, and also made builds with various ipmr kconfig options turned on and off. v2: change patch 7 to keep SLAB_PANIC and just drop the unnecessary null check ==================== Signed-off-by: David S. Miller commit a0b477366a9550ae46f78caa9e55de34fac4ba9c Author: Nikolay Aleksandrov Date: Sat Nov 21 15:57:32 2015 +0100 net: ipmr: factor out common vif init code Factor out common vif init code used in both tunnel and pimreg initialization and create ipmr_init_vif_indev() function. Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller net/ipv4/ipmr.c | 40 +++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 21 deletions(-) commit 29e97d214509ef4977838e073d30f6b16f75c6d5 Author: Nikolay Aleksandrov Date: Sat Nov 21 15:57:31 2015 +0100 net: ipmr: rearrange and cleanup setsockopt Take rtnl in the beginning unconditionally as most options already need it (one exception - MRT_DONE, see the comment inside), make the lock/unlock places central and move out the switch() local variables. Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller net/ipv4/ipmr.c | 191 +++++++++++++++++++++++++++++++------------------------- 1 file changed, 107 insertions(+), 84 deletions(-) commit af623236a9f3a20aa2f15f03cf9fe7bfd13b8889 Author: Nikolay Aleksandrov Date: Sat Nov 21 15:57:30 2015 +0100 net: ipmr: drop ip_mr_init() mrt_cachep null check as we'll panic if it fails It's not necessary to check for null as SLAB_PANIC is used and we'll panic if the alloc fails, so just drop it. Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller net/ipv4/ipmr.c | 2 -- 1 file changed, 2 deletions(-) commit 29c3f19739421cf749991cb8c693093b4ac58ad1 Author: Nikolay Aleksandrov Date: Sat Nov 21 15:57:29 2015 +0100 net: ipmr: drop an instance of CONFIG_IP_MROUTE_MULTIPLE_TABLES Trivial replace of ifdef with IS_BUILTIN(). Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller net/ipv4/ipmr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit fe9ef3ce395d06e4f17e5995ab8455b9627f3306 Author: Nikolay Aleksandrov Date: Sat Nov 21 15:57:28 2015 +0100 net: ipmr: make ip_mroute_getsockopt more understandable Use a switch to determine if optname is correct and set val accordingly. This produces a much more straight-forward and readable code. Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller net/ipv4/ipmr.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) commit 7ef8f65df976369588fa1b6466668b1b6a26eb3c Author: Nikolay Aleksandrov Date: Sat Nov 21 15:57:27 2015 +0100 net: ipmr: fix code and comment style Trivial code and comment style fixes, also removed some extra newlines, spaces and tabs. Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller include/uapi/linux/mroute.h | 59 ++++++------------ net/ipv4/ipmr.c | 142 ++++++++++++-------------------------------- 2 files changed, 54 insertions(+), 147 deletions(-) commit c316c629f12e01e5d7710e456248a1ebef8426ef Author: Nikolay Aleksandrov Date: Sat Nov 21 15:57:26 2015 +0100 net: ipmr: remove some pimsm ifdefs and simplify Add the helper pimsm_enabled() which replaces the old CONFIG_IP_PIMSM define and is used to check if any version of PIM-SM has been enabled. Use a single if defined(CONFIG_IP_PIMSM_V1) || defined(CONFIG_IP_PIMSM_V2) for the pim-sm shared code. This is okay w.r.t IGMPMSG_WHOLEPKT because only a VIFF_REGISTER device can send such packet, and it can't be created if pimsm_enabled() is false. Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller net/ipv4/ipmr.c | 180 ++++++++++++++++++++++++++------------------------------ 1 file changed, 84 insertions(+), 96 deletions(-) commit f3d431810e85bad13635669402ca1153bb7e398c Author: Nikolay Aleksandrov Date: Sat Nov 21 15:57:25 2015 +0100 net: ipmr: always define mroute_reg_vif_num Before mroute_reg_vif_num was defined only if any of the CONFIG_PIMSM_ options were set, but that's not really necessary as the size of the struct is the same in both cases (checked with pahole, both cases size is 3256 bytes) and we can remove some unnecessary ifdefs to simplify the code. Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller net/ipv4/ipmr.c | 8 -------- 1 file changed, 8 deletions(-) commit 1113ebbcf9e43c80fe5ef05c48b4cd1c25b306b2 Author: Nikolay Aleksandrov Date: Sat Nov 21 15:57:24 2015 +0100 net: ipmr: move the tbl id check in ipmr_new_table Move the table id check in ipmr_new_table and make it return error pointer. We need this change for the upcoming netlink table manipulation support in order to avoid code duplication and a race condition. Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller net/ipv4/ipmr.c | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) commit 38e633f3f3756b5630c5eb66042e776d86764296 Author: Stefan Monnier Date: Mon Nov 23 13:50:17 2015 -0500 ARM: dts: sun7i: Enable audio codec on BananaPi Enable the on-chip audio codec Signed-off-by: Stefan Monnier Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20-bananapi.dts | 4 ++++ 1 file changed, 4 insertions(+) commit 71101fdf05a141c65363ecfb3f085d9e847138b7 Author: Stefan Monnier Date: Mon Nov 23 13:50:16 2015 -0500 ARM: dts: sun7i: Enable audio codec on OrangePi Mini Enable the on-chip audio codec Signed-off-by: Stefan Monnier Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20-orangepi-mini.dts | 4 ++++ 1 file changed, 4 insertions(+) commit f4dc37785e9b3373d0cb93125d5579fed2af3a43 Author: Dmitry Kasatkin Date: Thu Oct 22 21:26:10 2015 +0300 integrity: define '.evm' as a builtin 'trusted' keyring Require all keys added to the EVM keyring be signed by an existing trusted key on the system trusted keyring. This patch also switches IMA to use integrity_init_keyring(). Changes in v3: * Added 'init_keyring' config based variable to skip initializing keyring instead of using __integrity_init_keyring() wrapper. * Added dependency back to CONFIG_IMA_TRUSTED_KEYRING Changes in v2: * Replace CONFIG_EVM_TRUSTED_KEYRING with IMA and EVM common CONFIG_INTEGRITY_TRUSTED_KEYRING configuration option * Deprecate CONFIG_IMA_TRUSTED_KEYRING but keep it for config file compatibility. (Mimi Zohar) Signed-off-by: Dmitry Kasatkin Signed-off-by: Mimi Zohar security/integrity/Kconfig | 11 +++++++++++ security/integrity/digsig.c | 14 ++++++++++++-- security/integrity/evm/evm_main.c | 8 +++++--- security/integrity/ima/Kconfig | 5 ++++- security/integrity/ima/ima.h | 12 ------------ security/integrity/ima/ima_init.c | 2 +- security/integrity/integrity.h | 5 ++--- 7 files changed, 35 insertions(+), 22 deletions(-) commit d3f03403a8735cebfcc16db4edfbf07c5c7421f5 Author: Dan Carpenter Date: Sat Nov 21 13:28:50 2015 +0300 nfsd: fix a warning message The WARN() macro takes a condition and a format string. The condition was accidentally left out here so it just prints the function name instead of the message. Signed-off-by: Dan Carpenter Reviewed-by: Jeff Layton Signed-off-by: J. Bruce Fields fs/nfsd/nfs4state.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit c4cb897462c93ba09543d912344c29a26c92eb31 Author: Julia Lawall Date: Sat Nov 21 22:57:39 2015 +0100 nfsd: constify nfsd4_callback_ops structure The nfsd4_callback_ops structure is never modified, so declare it as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Reviewed-by: Christoph Hellwig Signed-off-by: J. Bruce Fields fs/nfsd/nfs4callback.c | 2 +- fs/nfsd/nfs4layouts.c | 4 ++-- fs/nfsd/nfs4state.c | 4 ++-- fs/nfsd/state.h | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) commit 7c582e4faaf2593116068fc9ec8f5d81f720c02b Author: Julia Lawall Date: Sun Nov 22 08:22:10 2015 +0100 nfsd: recover: constify nfsd4_client_tracking_ops structures The nfsd4_client_tracking_ops structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Reviewed-by: Jeff Layton Signed-off-by: J. Bruce Fields fs/nfsd/netns.h | 2 +- fs/nfsd/nfs4recover.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) commit 6f18dc893981e4daab29221d6a9771f3ce2dd8c5 Author: Chuck Lever Date: Thu Nov 12 09:44:33 2015 -0500 svcrdma: Do not send XDR roundup bytes for a write chunk Minor optimization: when dealing with write chunk XDR roundup, do not post a Write WR for the zero bytes in the pad. Simply update the write segment in the RPC-over-RDMA header to reflect the extra pad bytes. The Reply chunk is also a write chunk, but the server does not use send_write_chunks() to send the Reply chunk. That's OK in this case: the server Upper Layer typically marshals the Reply chunk contents in a single contiguous buffer, without a separate tail for the XDR pad. The comments and the variable naming refer to "chunks" but what is really meant is "segments." The existing code sends only one xdr_write_chunk per RPC reply. The fix assumes this as well. When the XDR pad in the first write chunk is reached, the assumption is the Write list is complete and send_write_chunks() returns. That will remain a valid assumption until the server Upper Layer can support multiple bulk payload results per RPC. Signed-off-by: Chuck Lever Signed-off-by: J. Bruce Fields net/sunrpc/xprtrdma/svc_rdma_sendto.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 0286c67e710cc82260b8c826e5a7b75143fedbd6 Author: Rasmus Villemoes Date: Sat Oct 17 22:58:19 2015 +0200 intel: i40e: fix confused code This code is pretty confused. The variable name 'bytes_not_copied' clearly indicates that the programmer knew the semantics of copy_{to,from}_user, but then the return value is checked for being negative and used as a -Exxx return value. I'm not sure this is the proper fix, but at least we get rid of the dead code which pretended to check for access faults. Signed-off-by: Rasmus Villemoes Acked-by: Shannon Nelson Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) commit 465fc643c2dcbe08e0debac80c225f6750b40d3c Author: Emil Tantilov Date: Mon Oct 12 10:56:00 2015 -0700 ixgbevf: fix spoofed packets with random MAC If ixgbevf is loaded while the corresponding PF interface is down and the driver assigns a random MAC address, that address can be overwritten with the value of hw->mac.perm_addr, which would be 0 at that point. To avoid this case we init hw->mac.perm_addr to the randomly generated address and do not set it unless we receive ACK from ixgbe. Reported-by: John Greene Signed-off-by: Emil Tantilov Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 1 + drivers/net/ethernet/intel/ixgbevf/vf.c | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) commit 91a76baadec1f30e8441c3d52c2559468a4da693 Author: Emil Tantilov Date: Mon Oct 12 10:55:51 2015 -0700 ixgbevf: use ether_addr_copy instead of memcpy replace some instances of memcpy for setting up the mac address with ether_addr_copy() Signed-off-by: Emil Tantilov Tested-by: Darin Miller Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit cfbe4dba0d5891faa11bd4e7c1fcdc512aff2f5f Author: Jesse Brandeburg Date: Sun Oct 4 01:09:49 2015 -0700 i40evf: fix compiler warning of unused variable Compiler complained of an unused variable, which the driver was just using to store the result of a rd32 which is used to clear a register unconditionally. Just drop the unused variable and re-use one. Signed-off-by: Jesse Brandeburg Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40evf/i40evf_main.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit d206563ad8f6fb41943366cf22f1aabc19d2b1a7 Author: Mark Rustad Date: Fri Oct 2 09:23:53 2015 -0700 ixgbe: Remove CS4227 diagnostic code Testing has now shown that the diagnostic code used with the CS4227 is no longer needed, so remove it. Signed-off-by: Mark Rustad Tested-by: Darin Miller Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 80 --------------------------- 1 file changed, 80 deletions(-) commit ef2662b2a820aaca4c147b91659bf57c06688ede Author: Alexander Duyck Date: Tue Sep 29 15:19:43 2015 -0700 ixgbe/ixgbevf: use napi_schedule_irqoff() The ixgbe_intr and ixgbe/ixgbevf_msix_clean_rings functions run from hard interrupt context or with interrupts already disabled in netpoll. They can use napi_schedule_irqoff() instead of napi_schedule() Signed-off-by: Alexander Duyck Tested-by: Darin Miller Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 4 ++-- drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 8a9ca1104da0de6dd8551237e7d0e50eeeea4e80 Author: Alexander Duyck Date: Tue Sep 29 13:11:15 2015 -0700 ixgbevf: Limit lowest interrupt rate for adaptive interrupt moderation to 12K This patch is the ixgbevf version of commit 8ac34f10a5ea4 "ixgbe: Limit lowest interrupt rate for adaptive interrupt moderation to 12K" The same logic applies here as well as the same results since a netperf test will starve for memory in the time from one Tx interrupt to the next. As a result the ixgbevf driver underperformed when compared to vhost_net. Signed-off-by: Alexander Duyck Tested-by: Darin Miller Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbevf/ethtool.c | 2 +- drivers/net/ethernet/intel/ixgbevf/ixgbevf.h | 3 +-- drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 6 +++--- 3 files changed, 5 insertions(+), 6 deletions(-) commit d91e3a7d624590220e31ccb80a6fb5247cbfa64a Author: Mark Rustad Date: Mon Sep 28 14:37:47 2015 -0700 ixgbe: Add KR mode support for CS4227 chip KR auto-neg mode is what we will be using going forward. The SW interface for this mode is different that what was used for iXFI. Signed-off-by: Mark Rustad Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 85 +++++++++++++++++++-------- 1 file changed, 62 insertions(+), 23 deletions(-) commit 5d6002b7b822c7423e75d4651e6790bfb5642b1b Author: Alexander Duyck Date: Tue Sep 22 14:35:41 2015 -0700 ixgbe: Fix handling of NAPI budget when multiple queues are enabled per vector This patch corrects an issue in which the polling routine would increase the budget for Rx to at least 1 per queue if multiple queues were present. This would result in Rx packets being processed when the budget was 0 which is meant to indicate that no Rx can be handled. Signed-off-by: Alexander Duyck Tested-by: Darin Miller Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 9f872986479b6e0543eb5c615e5f9491bb04e5c1 Author: Alexander Duyck Date: Tue Sep 22 14:35:35 2015 -0700 fm10k: Fix handling of NAPI budget when multiple queues are enabled per vector This patch corrects an issue in which the polling routine would increase the budget for Rx to at least 1 per queue if multiple queues were present. This would result in Rx packets being processed when the budget was 0 which is meant to indicate that no Rx can be handled. Signed-off-by: Alexander Duyck Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_main.c | 4 ++++ 1 file changed, 4 insertions(+) commit a897a2adb602fe3d9223aa59393be07341d3a124 Author: Jean Sacren Date: Sat Sep 19 05:08:44 2015 -0600 ixgbe: fix multiple kernel-doc errors The commit dfaf891dd3e1 ("ixgbe: Refactor the RSS configuration code") introduced a few kernel-doc errors: 1) The function name is missing; 2) The format is wrong; 3) The short description is redundant. Fix all the above for the correct execution of the kernel doc. Signed-off-by: Jean Sacren Tested-by: Darin Miller Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit cc1f88ba16fa5cc4769cf25dca9fafeb1546be50 Author: Mark Rustad Date: Fri Sep 18 10:08:00 2015 -0700 ixgbe: Delete redundant include file Delete a redundant include of net/vxlan.h. Signed-off-by: Mark Rustad Tested-by: Darin Miller Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 3 --- 1 file changed, 3 deletions(-) commit edab421a57fbdb7f7b83fb494a48c47bc719a7f0 Author: Julia Lawall Date: Sun Sep 13 14:15:13 2015 +0200 ixgbe: drop null test before destroy functions Remove unneeded NULL test. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression x; @@ -if (x != NULL) \(kmem_cache_destroy\|mempool_destroy\|dma_pool_destroy\)(x); // Signed-off-by: Julia Lawall Tested-by: Darin Miller Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 8c7ee6d2cacc7794a91875ef5fd8284b4a900d8c Author: Jacob Keller Date: Tue Aug 25 13:49:11 2015 -0700 fm10k: Correct MTU for jumbo frames Based on hardware testing, the host interface supports up to 15368 bytes as the maximum frame size. To determine the correct MTU, we subtract 8 for the internal switch tag, 14 for the L2 header, and 4 for the appended FCS header, resulting in 15342 bytes of payload for our maximum MTU on jumbo frames. Signed-off-by: Matthew Vick Signed-off-by: Jacob Keller Acked-by: Bruce Allan Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1340181fe435ccb8ca2f996b8680bd9566860619 Author: Jacob Keller Date: Mon Aug 24 17:27:24 2015 -0700 fm10k: do not assume VF always has 1 queue It is possible that the PF has not yet assigned resources to the VF. Although rare, this could result in the VF attempting to read queues it does not own and result in FUM or THI faults in the PF. To prevent this, check queue 0 before we continue in init_hw_vf. Signed-off-by: Jacob Keller Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_type.h | 1 + drivers/net/ethernet/intel/fm10k/fm10k_vf.c | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) commit 94d5d6a0fbf33c5fde246b61b8c358cfeeba633f Author: Zain Wang Date: Tue Nov 17 12:00:45 2015 +0800 clk: rockchip: add an id for rk3288 crypto clk Add an id for crypto clk to the binding header, so that it can be called in other part. Signed-off-by: Zain Wang Acked-by: Michael Turquette Signed-off-by: Heiko Stuebner include/dt-bindings/clock/rk3288-cru.h | 1 + 1 file changed, 1 insertion(+) commit 6cf10081220ae21175a867d446b3167bcbcb937b Author: Paul E. McKenney Date: Thu Oct 8 15:36:54 2015 -0700 rcu: Add transitivity to remaining rcu_node ->lock acquisitions The rule is that all acquisitions of the rcu_node structure's ->lock must provide transitivity: The lock is not acquired that frequently, and sorting out exactly which required it and which did not would be a maintenance nightmare. This commit therefore supplies the needed transitivity to the remaining ->lock acquisitions. Reported-by: Peter Zijlstra Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 24 ++++++++++++------------ kernel/rcu/tree_plugin.h | 2 +- kernel/rcu/tree_trace.c | 2 +- 3 files changed, 14 insertions(+), 14 deletions(-) commit 1658d35ead5d8dd76f2b2d6ad0e32c08d123faa2 Author: Paul E. McKenney Date: Sun Sep 20 17:03:16 2015 -0700 list: Use READ_ONCE() when testing for empty lists Most of the list-empty-check macros (list_empty(), hlist_empty(), hlist_bl_empty(), hlist_nulls_empty(), and hlist_nulls_empty()) use an unadorned load to check the list header. Given that these macros are sometimes invoked without the protection of a lock, this is not sufficient. This commit therefore adds READ_ONCE() calls to them. This commit does not touch llist_empty() because it already has the needed ACCESS_ONCE(). Reported-by: Dmitry Vyukov Signed-off-by: Paul E. McKenney include/linux/list.h | 4 ++-- include/linux/list_bl.h | 2 +- include/linux/list_nulls.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit 2a67e741bbbc022e0fadf8c6dbc3a76019ecd0cf Author: Peter Zijlstra Date: Thu Oct 8 12:24:23 2015 +0200 rcu: Create transitive rnp->lock acquisition functions Providing RCU's memory-ordering guarantees requires that the rcu_node tree's locking provide transitive memory ordering, which the Linux kernel's spinlocks currently do not provide unless smp_mb__after_unlock_lock() is used. Having a separate smp_mb__after_unlock_lock() after each and every lock acquisition is error-prone, hard to read, and a bit annoying, so this commit provides wrapper functions that pull in the smp_mb__after_unlock_lock() invocations. Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 78 ++++++++++++++++-------------------------------- kernel/rcu/tree.h | 39 ++++++++++++++++++++++++ kernel/rcu/tree_plugin.h | 18 ++++------- 3 files changed, 71 insertions(+), 64 deletions(-) commit 1c97be677f72b3c338312aecd36d8fff20322f32 Author: Paul E. McKenney Date: Sun Sep 20 22:02:17 2015 -0700 list: Use WRITE_ONCE() when adding to lists and hlists Code that does lockless emptiness testing of non-RCU lists is relying on the list-addition code to write the list head's ->next pointer atomically. This commit therefore adds WRITE_ONCE() to list-addition pointer stores that could affect the head's ->next pointer. Reported-by: Dmitry Vyukov Signed-off-by: Paul E. McKenney include/linux/list.h | 8 ++++---- lib/list_debug.c | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) commit 930d3142b87a5c08b4dd00a97d503b6d412a9fda Merge: 3d40e44 d662e03 Author: David S. Miller Date: Mon Nov 23 12:36:09 2015 -0500 Merge branch 'rhashtable-test-enhancements' Phil Sutter says: ==================== improve fault-tolerance of rhashtable runtime-test The following series aims to improve lib/test_rhashtable in different situations: Patch 1 allows the kernel to reschedule so the test does not block too long on slow systems. Patch 2 fixes behaviour under pressure, retrying inserts in non-permanent error case (-EBUSY). Patch 3 auto-adjusts the upper table size limit according to the number of threads (in concurrency test). In fact, the current default is already too small. Patch 4 makes it possible to retry inserts even in supposedly permanent error case (-ENOMEM) to expose rhashtable's remaining problem of -ENOMEM being not as permanent as it is expected to be. Changes since v1: - Introduce insert_retry() which is then used in single-threaded test as well. - Do not retry inserts by default if -ENOMEM was returned. - Rename the retry counter to be a bit more verbose about what it contains. - Add patch 4 as a debugging aid. ==================== Signed-off-by: David S. Miller commit d662e037fc88b187494a95b5bc19b3c0e9b9ea36 Author: Phil Sutter Date: Fri Nov 20 18:17:20 2015 +0100 rhashtable-test: allow to retry even if -ENOMEM was returned This is rather a hack to expose the current issue with rhashtable to under high pressure sometimes return -ENOMEM even though system memory is not exhausted and a consecutive insert may succeed. Signed-off-by: Phil Sutter Signed-off-by: David S. Miller lib/test_rhashtable.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) commit 95e435afefe98b8ef6ae8b764879a064cd931a5c Author: Phil Sutter Date: Fri Nov 20 18:17:19 2015 +0100 rhashtable-test: calculate max_entries value by default A maximum table size of 64k entries is insufficient for the multiple threads test even in default configuration (10 threads * 50000 objects = 500000 objects in total). Since we know how many objects will be inserted, calculate the max size unless overridden by parameter. Note that specifying the exact number of objects upon table init won't suffice as that value is being rounded down to the next power of two - anticipate this by rounding up to the next power of two in beforehand. Signed-off-by: Phil Sutter Signed-off-by: David S. Miller lib/test_rhashtable.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 9e9089e5a2d788db417d4d1f836eecc2fc44e9ff Author: Phil Sutter Date: Fri Nov 20 18:17:18 2015 +0100 rhashtable-test: retry insert operations After adding cond_resched() calls to threadfunc(), a surprisingly high rate of insert failures occurred probably due to table resizes getting a better chance to run in background. To not soften up the remaining tests, retry inserts until they either succeed or fail permanently. Also change the non-threaded test to retry insert operations, too. Suggested-by: Thomas Graf Signed-off-by: Phil Sutter Signed-off-by: David S. Miller lib/test_rhashtable.c | 53 ++++++++++++++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 24 deletions(-) commit cd5b318daf4aecd249c3f07df93700c0f749484c Author: Phil Sutter Date: Fri Nov 20 18:17:17 2015 +0100 rhashtable-test: add cond_resched() to thread test This should fix for soft lockup bugs triggered on slow systems. Signed-off-by: Phil Sutter Signed-off-by: David S. Miller lib/test_rhashtable.c | 5 +++++ 1 file changed, 5 insertions(+) commit daaa7d647f81f3f1494d9a9029d611b666d63181 Author: Florian Westphal Date: Wed Nov 18 23:32:40 2015 +0100 netfilter: ipv6: avoid nf_iterate recursion The previous patch changed nf_ct_frag6_gather() to morph reassembled skb with the previous one. This means that the return value is always NULL or the skb argument. So change it to an err value. Instead of invoking NF_HOOK recursively with threshold to skip already-called hooks we can now just return NF_ACCEPT to move on to the next hook except for -EINPROGRESS (which means skb has been queued for reassembly), in which case we return NF_STOLEN. Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso include/net/netfilter/ipv6/nf_defrag_ipv6.h | 2 +- net/ipv6/netfilter/nf_conntrack_reasm.c | 71 +++++++++++++---------------- net/ipv6/netfilter/nf_defrag_ipv6_hooks.c | 14 ++---- net/openvswitch/conntrack.c | 11 ++--- 4 files changed, 42 insertions(+), 56 deletions(-) commit 029f7f3b8701cc7aca8bdb31f0c7edd6a479e357 Author: Florian Westphal Date: Wed Nov 18 23:32:39 2015 +0100 netfilter: ipv6: nf_defrag: avoid/free clone operations commit 6aafeef03b9d9ecf ("netfilter: push reasm skb through instead of original frag skbs") changed ipv6 defrag to not use the original skbs anymore. So rather than keeping the original skbs around just to discard them afterwards just use the original skbs directly for the fraglist of the newly assembled skb and remove the extra clone/free operations. The skb that completes the fragment queue is morphed into a the reassembled one instead, just like ipv4 defrag. openvswitch doesn't need any additional skb_morph magic anymore to deal with this situation so just remove that. A followup patch can then also remove the NF_HOOK (re)invocation in the ipv6 netfilter defrag hook. Cc: Joe Stringer Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso include/net/netfilter/ipv6/nf_defrag_ipv6.h | 1 - net/ipv6/netfilter/nf_conntrack_reasm.c | 105 +++++++++++----------------- net/ipv6/netfilter/nf_defrag_ipv6_hooks.c | 6 -- net/openvswitch/conntrack.c | 14 ---- 4 files changed, 40 insertions(+), 86 deletions(-) commit a18fd970ce99eee5105a511621d7064812b8cc8c Author: stephen hemminger Date: Tue Nov 17 13:45:53 2015 -0800 netfilter: remove duplicate include Signed-off-by: Stephen Hemminger Signed-off-by: Pablo Neira Ayuso net/ipv4/netfilter/nf_reject_ipv4.c | 1 - net/ipv6/netfilter/nf_reject_ipv6.c | 1 - 2 files changed, 2 deletions(-) commit f7ccdb96fa31305d480678b1ba81225907dd81ef Author: Marcelo Ricardo Leitner Date: Wed Nov 11 20:17:37 2015 -0200 netfilter: nf_ct_sctp: move ip_ct_sctp away from UAPI ip_ct_sctp is an internal structure, embedded by the union nf_conntrack_proto to store sctp-specific information at conntrack entries. It has no business with UAPI. This patch moves it from UAPI to a saner place, together with similar structs for other protocols. Signed-off-by: Marcelo Ricardo Leitner Acked-by: Neil Horman Signed-off-by: Pablo Neira Ayuso include/linux/netfilter/nf_conntrack_sctp.h | 13 +++++++++++++ include/uapi/linux/netfilter/nf_conntrack_sctp.h | 12 +++--------- 2 files changed, 16 insertions(+), 9 deletions(-) commit c1bc1d257bd06943413f9b0e943028c028eb34a6 Author: Ian Morris Date: Mon Oct 26 09:10:43 2015 +0000 netfilter-bridge: layout of if statements Eliminate some checkpatch issues by improved layout of if statements. No changes detected by objdiff. Signed-off-by: Ian Morris Signed-off-by: Pablo Neira Ayuso net/bridge/netfilter/ebt_ip6.c | 4 ++-- net/bridge/netfilter/ebtables.c | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) commit abcdd9a6239d42851faac86ba32158fbfee71b22 Author: Ian Morris Date: Mon Oct 26 09:10:42 2015 +0000 netfilter-bridge: brace placement Change brace placement to eliminate checkpatch error. No changes detected by objdiff. Signed-off-by: Ian Morris Signed-off-by: Pablo Neira Ayuso net/bridge/netfilter/ebt_log.c | 6 ++---- net/bridge/netfilter/ebtables.c | 3 +-- 2 files changed, 3 insertions(+), 6 deletions(-) commit 7f495ad946a6be7bd78df752fad3a084d2710ee2 Author: Ian Morris Date: Mon Oct 26 09:10:41 2015 +0000 netfilter-bridge: use netdev style comments Changes comments to use netdev style. No changes detected by objdiff. Signed-off-by: Ian Morris Signed-off-by: Pablo Neira Ayuso net/bridge/netfilter/ebt_log.c | 3 +- net/bridge/netfilter/ebt_vlan.c | 15 +++++--- net/bridge/netfilter/ebtables.c | 84 +++++++++++++++++++++-------------------- 3 files changed, 56 insertions(+), 46 deletions(-) commit 052a4bc49de9f959682140a200e7bcff98ca2cdf Author: Ian Morris Date: Mon Oct 26 09:10:40 2015 +0000 netfilter-bridge: Cleanse indentation Fixes a bunch of issues detected by checkpatch with regards to code indentation. No changes detected by objdiff. Signed-off-by: Ian Morris Signed-off-by: Pablo Neira Ayuso net/bridge/netfilter/ebt_stp.c | 2 +- net/bridge/netfilter/ebtable_filter.c | 2 +- net/bridge/netfilter/ebtable_nat.c | 2 +- net/bridge/netfilter/ebtables.c | 44 +++++++++++++++++------------------ 4 files changed, 25 insertions(+), 25 deletions(-) commit 1ffad83dffd675cd742286ae82dca7d746cb0da8 Author: Mikko Rapeli Date: Thu Oct 15 07:56:30 2015 +0200 netfilter: fix include files for compilation Add missing header dependencies and other small changes so that each file compiles alone in userspace. Signed-off-by: Mikko Rapeli Signed-off-by: Pablo Neira Ayuso include/uapi/linux/netfilter/ipset/ip_set_bitmap.h | 2 ++ include/uapi/linux/netfilter/ipset/ip_set_hash.h | 2 ++ include/uapi/linux/netfilter/ipset/ip_set_list.h | 2 ++ include/uapi/linux/netfilter/nf_conntrack_tuple_common.h | 3 +++ include/uapi/linux/netfilter/xt_HMARK.h | 1 + include/uapi/linux/netfilter/xt_RATEEST.h | 1 + include/uapi/linux/netfilter/xt_TEE.h | 2 ++ include/uapi/linux/netfilter/xt_TPROXY.h | 1 + include/uapi/linux/netfilter/xt_hashlimit.h | 1 + include/uapi/linux/netfilter/xt_ipvs.h | 1 + include/uapi/linux/netfilter/xt_mac.h | 2 ++ include/uapi/linux/netfilter/xt_osf.h | 2 ++ include/uapi/linux/netfilter/xt_physdev.h | 2 +- include/uapi/linux/netfilter/xt_policy.h | 2 ++ include/uapi/linux/netfilter/xt_rateest.h | 1 + include/uapi/linux/netfilter/xt_recent.h | 1 + include/uapi/linux/netfilter/xt_sctp.h | 12 ++++++------ include/uapi/linux/netfilter_arp/arp_tables.h | 1 + include/uapi/linux/netfilter_bridge.h | 1 + include/uapi/linux/netfilter_bridge/ebt_arp.h | 1 + include/uapi/linux/netfilter_bridge/ebt_arpreply.h | 2 ++ include/uapi/linux/netfilter_bridge/ebt_ip6.h | 1 + include/uapi/linux/netfilter_bridge/ebt_nat.h | 2 ++ include/uapi/linux/netfilter_ipv4/ip_tables.h | 1 + include/uapi/linux/netfilter_ipv6/ip6_tables.h | 1 + include/uapi/linux/netfilter_ipv6/ip6t_rt.h | 2 +- 26 files changed, 42 insertions(+), 8 deletions(-) commit dad1581944139bb104965340804d1fb4518aab2c Author: Mikko Rapeli Date: Thu Oct 15 07:55:59 2015 +0200 netfilter: ebtables: use __u64 from linux/types.h Fixes userspace compilation error: linux/netfilter_bridge/ebtables.h:38:2: error: unknown type name ‘uint64_t’ Signed-off-by: Mikko Rapeli Signed-off-by: Pablo Neira Ayuso include/uapi/linux/netfilter_bridge/ebtables.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 3d40e44361eab3dd6c969241d12dac7466eb7174 Merge: 3f8c0f7 c8c1b39 Author: David S. Miller Date: Mon Nov 23 11:53:11 2015 -0500 Merge branch 'dsa-gpio-reset' Andrew Lunn says: ==================== DSA: GPIO to reset switches These two patches add support for using a GPIO to hard reset a switch during reset. v2: Thanks to a clue from Neil Armstrong, i figured out how to convert the gpio into a gpiod, while keeping the ACTIVE_LOW flag, so simplifiying the set/reset code. I have not included the Tested-by: from Phil Reid, since i made a lot of changes. ==================== Signed-off-by: David S. Miller commit c8c1b39a86940edd35439f1e5c9ff39888daf0f0 Author: Andrew Lunn Date: Fri Nov 20 03:56:24 2015 +0100 dsa: mv88e6xxx.c: Hardware reset the chip if available The device tree binding now allows a gpio to be specified which is attached to the switch chips reset line. If it is defined, perform a hardware reset on the switch during setup. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit cc30c16344fc3a25153175c7eb9037b2136cd466 Author: Andrew Lunn Date: Fri Nov 20 03:56:23 2015 +0100 net: dsa: Add support for a switch reset gpio Some boards have a gpio line tied to the switch reset pin. Allow this gpio to be retrieved from the device tree, and take the switch out of reset before performing the probe. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller Documentation/devicetree/bindings/net/dsa/dsa.txt | 3 +++ include/net/dsa.h | 8 ++++++++ net/dsa/dsa.c | 17 +++++++++++++++++ 3 files changed, 28 insertions(+) commit 3a035ea0e9e92614efe08465813b16aa40048d7c Author: Sjoerd Simons Date: Mon Nov 23 15:36:28 2015 +0100 ARM: dts: rockchip: Add IR receiver to RK3288 Radxa Rock 2 Square Add support for the IR receiver as present on the Radxa Rock 2 Square board. Signed-off-by: Sjoerd Simons Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3288-rock2-square.dts | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 10897dacea26943dd80bd6629117f4620fc320ef Merge: ca78946 1ec2183 Author: Mauro Carvalho Chehab Date: Mon Nov 23 14:16:58 2015 -0200 Merge tag 'v4.4-rc2' into patchwork Linux 4.4-rc2 Several PCI media drivers got broken on Kernel 4.4-rc1, due to pci_set_dma_mask() regressions. So, we need to add those fixes back for the media drivers to work again. * tag 'v4.4-rc2': (335 commits) Linux 4.4-rc2 slab/slub: adjust kmem_cache_alloc_bulk API slub: add missing kmem cgroup support to kmem_cache_free_bulk slub: fix kmem cgroup bug in kmem_cache_alloc_bulk slub: optimize bulk slowpath free by detached freelist slub: support for bulk free with SLUB freelists parisc: Map kernel text and data on huge pages parisc: Add Huge Page and HUGETLBFS support parisc: Use long branch to do_syscall_trace_exit parisc: Increase initial kernel mapping to 32MB on 64bit kernel parisc: Initialize the fault vector earlier in the boot process. parisc: Add defines for Huge page support parisc: Drop unused MADV_xxxK_PAGES flags from asm/mman.h serial: export fsl8250_handle_irq serial: 8250_mid: Add missing dependency tty: audit: Fix audit source serial: etraxfs-uart: Fix crash serial: fsl_lpuart: Fix earlycon support bcm63xx_uart: Use the device name when registering an interrupt tty: Fix direct use of tty buffer work ... commit aca146afbc3b9191ca4265e80c60b86dcedeca13 Author: Michal Kazior Date: Wed Nov 18 06:59:23 2015 +0100 ath10k: store msdu_id instead of txbuf pointers Txbuf is no longer a DMA pool and can be easily tracked with a mere msdu_id. This saves 10 bytes on 64bit systems and 6 bytes on 32bit systems of precious sk_buff control buffer. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.h | 6 +--- drivers/net/wireless/ath/ath10k/htt_tx.c | 55 ++++++++++++++++---------------- 2 files changed, 28 insertions(+), 33 deletions(-) commit 609db229b42fda3f7d3a21fe54084983bc28dfae Author: Michal Kazior Date: Wed Nov 18 06:59:22 2015 +0100 ath10k: replace vdev_id and tid in skb cb This prepares the driver for future ieee80211_txq and wake_tx_queue() support. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.h | 4 ++-- drivers/net/wireless/ath/ath10k/htt_tx.c | 36 +++++++++++++++++++++++++--- drivers/net/wireless/ath/ath10k/mac.c | 40 +++++--------------------------- drivers/net/wireless/ath/ath10k/wmi.c | 10 +++++++- 4 files changed, 50 insertions(+), 40 deletions(-) commit d668dbaebe430af8843ca6e83c1e44fd1efb20aa Author: Michal Kazior Date: Wed Nov 18 06:59:21 2015 +0100 ath10k: fix tx header parsing Frames are not guaranteed to be 802.11 frames in ath10k_htt_tx() and the tx completion handler. In some cases, like TDLS, they can be Ethernet. Hence checking, e.g. frame_control could yield bogus results and behavior. Fortunately this wasn't a real problem so far because there's no FW/HW combination to encounter this problem. However it is good to fix this in advance. Fixes: 75d85fd9993c ("ath10k: introduce basic tdls functionality") Fixes: eebc67fef3ee ("ath10k: fix pmf for wmi-tlv on qca6174") Fixes: 7b7da0a02192 ("ath10k: drop probe responses when too many are queued") Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.h | 1 + drivers/net/wireless/ath/ath10k/mac.c | 3 +++ drivers/net/wireless/ath/ath10k/txrx.c | 8 ++------ 3 files changed, 6 insertions(+), 6 deletions(-) commit 66b8a0108d73f9809b60d7e921189142207997c2 Author: Michal Kazior Date: Wed Nov 18 06:59:20 2015 +0100 ath10k: pack up flags in skb_cb It was wasteful to have all the flags as separate bools. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.h | 13 +++++++------ drivers/net/wireless/ath/ath10k/htt_tx.c | 4 ++-- drivers/net/wireless/ath/ath10k/mac.c | 10 +++++++--- drivers/net/wireless/ath/ath10k/wmi.c | 12 ++++++++---- 4 files changed, 24 insertions(+), 15 deletions(-) commit bd87744028475207172ee0fb75f4bdb888d516d7 Author: Michal Kazior Date: Wed Nov 18 06:59:19 2015 +0100 ath10k: remove freq from skb_cb It was wasteful to keep it in the struct. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.h | 1 - drivers/net/wireless/ath/ath10k/htt_tx.c | 9 +++++++-- drivers/net/wireless/ath/ath10k/mac.c | 5 +---- 3 files changed, 8 insertions(+), 7 deletions(-) commit e0813d34b553d8335c39b37475f32f1e49271c40 Author: Michal Kazior Date: Wed Nov 18 06:59:18 2015 +0100 ath10k: remove is_offchan It was wasteful to keep it in the struct. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.h | 1 - drivers/net/wireless/ath/ath10k/mac.c | 2 -- drivers/net/wireless/ath/ath10k/txrx.c | 7 ++++++- 3 files changed, 6 insertions(+), 4 deletions(-) commit 8a933964e8a4da3f28b46ac43d2e57eecfd833f6 Author: Michal Kazior Date: Wed Nov 18 06:59:17 2015 +0100 ath10k: remove txmode from skb_cb It was wasteful to keep it in the struct because it can be passed as function argument down the tx path. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.h | 1 - drivers/net/wireless/ath/ath10k/htt.h | 4 +++- drivers/net/wireless/ath/ath10k/htt_tx.c | 9 +++---- drivers/net/wireless/ath/ath10k/mac.c | 40 ++++++++++++++++++++++++-------- 4 files changed, 38 insertions(+), 16 deletions(-) commit 6a2636d811a05687b24d784986468716ff1220ca Author: Michal Kazior Date: Wed Nov 18 06:59:16 2015 +0100 ath10k: rename function to adhere to naming convention All functions should have ath10k_{filename}_ prefixes. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit fd12cb32467e7aff5648fd0e968a66e22c0696b6 Author: Michal Kazior Date: Wed Nov 18 06:59:15 2015 +0100 ath10k: merge is_protected with nohwcrypt It was wasteful to have two flags describing the same thing. While at it fix code style of ath10k_tx_h_use_hwcrypto(). Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.h | 1 - drivers/net/wireless/ath/ath10k/htt_tx.c | 3 --- drivers/net/wireless/ath/ath10k/mac.c | 14 ++++++++++---- 3 files changed, 10 insertions(+), 8 deletions(-) commit b8d55fca9e8853d4065a50061ca2aade123e628d Author: Yanbo Li Date: Mon Nov 16 22:22:02 2015 +0200 ath10k: adjust the RX packet pad offset at QCA99X0 4addr mode The QCA99X0 4 addresses RX packets pad 2 bytes at the beginning of MSDU instead the end of ieee80211 header to keep alignment. The currently RX data path can't parse the header correctly in this case. This patch fixes it for QCA99X0. Signed-off-by: Yanbo Li [kvalo@qca.qualcomm.com: checkpatch fixes and naming changes] Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.c | 5 +++++ drivers/net/wireless/ath/ath10k/core.h | 3 +++ drivers/net/wireless/ath/ath10k/htt_rx.c | 15 ++++++++++++++- drivers/net/wireless/ath/ath10k/hw.h | 5 +++++ 4 files changed, 27 insertions(+), 1 deletion(-) commit 11c86db8f052fec64804c19519a8d35958ed8aef Author: Daniel Stone Date: Fri Nov 20 15:55:34 2015 +0000 drm/i915/pm: Print offending domain in refcount failure If we experience a refcounting failure in a power domain/well (unref'ing at least one too many times), log the name of the offending domain or well. Signed-off-by: Daniel Stone Reviewed-by: Ville Syrjälä Acked-by: Jani Nikula Signed-off-by: Imre Deak Link: http://patchwork.freedesktop.org/patch/msgid/1448034934-11926-2-git-send-email-daniels@collabora.com drivers/gpu/drm/i915/intel_runtime_pm.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 9895ad03c871893f6acd66a3b6210db0c1ba5933 Author: Daniel Stone Date: Fri Nov 20 15:55:33 2015 +0000 drm/i915/pm: Unstatic power_domain_str Let us print human-parseable values from the power domain code; upcoming display code also wants to use it. This requires moving it out of i915_debugfs.c, as that is only conditionally compiled. v2: Move it out of the header. Signed-off-by: Daniel Stone Reviewed-by: Ville Syrjälä Signed-off-by: Imre Deak Link: http://patchwork.freedesktop.org/patch/msgid/1448034934-11926-1-git-send-email-daniels@collabora.com drivers/gpu/drm/i915/i915_debugfs.c | 67 +-------------------------------- drivers/gpu/drm/i915/intel_drv.h | 2 + drivers/gpu/drm/i915/intel_runtime_pm.c | 66 ++++++++++++++++++++++++++++++++ 3 files changed, 69 insertions(+), 66 deletions(-) commit a7de5506004415527035d7858b5993c906e2544e Author: Imre Deak Date: Wed Nov 18 19:53:50 2015 +0200 drm/i915/skl: re-enable power well support Now that the known DMC/DC issues are fixed, let's try again and re-enable the power well support. Signed-off-by: Imre Deak Reviewed-by: Patrik Jakobsson Link: http://patchwork.freedesktop.org/patch/msgid/1447869230-21416-1-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/intel_runtime_pm.c | 5 ----- 1 file changed, 5 deletions(-) commit bc87229f323e6b5ee9ac57817463fb2ff65e6811 Author: Imre Deak Date: Wed Nov 18 17:32:30 2015 +0200 drm/i915/skl: enable PC9/10 power states during suspend-to-idle During suspend-to-idle we need to keep the DMC firmware active and DC6 enabled, since otherwise we won't reach deep system power states like PC9/10. The lead for this came from Nivedita who noticed that the kernel's turbostat tool didn't report any PC9/10 residency change across an 'echo freeze > /sys/power/state'. Reported-by: Nivedita Swaminathan Signed-off-by: Imre Deak Reviewed-by: Patrik Jakobsson Link: http://patchwork.freedesktop.org/patch/msgid/1447860750-18110-1-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/i915_drv.c | 44 +++++++++++++++++++++++++++++++---------- drivers/gpu/drm/i915/i915_drv.h | 1 + 2 files changed, 35 insertions(+), 10 deletions(-) commit b2cfc90428f1c24ce4920f06b584bd05c62741e6 Author: Joshua Clayton Date: Wed Nov 18 14:30:42 2015 -0800 spi: spidev_test: fix whitespace Signed-off-by: Joshua Clayton Signed-off-by: Mark Brown tools/spi/spidev_test.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit a20874f78be633b9e3a505d5f191735188b110a5 Author: Joshua Clayton Date: Wed Nov 18 14:30:41 2015 -0800 spi: spidev_test: check error Check the result of sscanf to verify a result was found. report and error and abort if pattern was not found. Signed-off-by: Joshua Clayton Signed-off-by: Mark Brown tools/spi/spidev_test.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 983b27886a3c7f6eff4e987ddba932da74703f4e Author: Joshua Clayton Date: Wed Nov 18 14:30:40 2015 -0800 spi: spidev_test: output to a file For testing of larger data transfers, output unmodified data directly to a file. Signed-off-by: Joshua Clayton Signed-off-by: Mark Brown tools/spi/spidev_test.c | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) commit 7af475a5b55e8e47327818e8133fe22204c1fc4d Author: Joshua Clayton Date: Wed Nov 18 14:30:39 2015 -0800 spi: spidev_test: accept input from a file Add input file support to facilitate testing larger data. Signed-off-by: Joshua Clayton Signed-off-by: Mark Brown tools/spi/spidev_test.c | 48 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) commit 5c437a401b824399b6fa7342c66b675ebb7af43e Author: Joshua Clayton Date: Wed Nov 18 14:30:38 2015 -0800 spi: spidev_test: transfer_escaped_string function Move the input_tx code into its own small function. This cleans up some variables from main() that are used only here. While we are at it, check malloc calls instead of assuming they succeed. Signed-off-by: Joshua Clayton Signed-off-by: Mark Brown tools/spi/spidev_test.c | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) commit 5eca4d843f9f0c3140a8657ba2f8217ee6c08c11 Author: Joshua Clayton Date: Wed Nov 18 14:30:37 2015 -0800 spi: Move spi code from Documentation to tools Jon Corbet requested this code moved with the last changeset, https://lkml.org/lkml/2015/3/1/144, but the patch was not applied because it missed the Makefile. Moved spidev_test, spidev_fdx and their Makefile infrastructure. Signed-off-by: Joshua Clayton Signed-off-by: Mark Brown Documentation/Makefile | 2 +- Documentation/spi/Makefile | 8 - Documentation/spi/spidev_fdx.c | 158 -------------------- Documentation/spi/spidev_test.c | 318 ---------------------------------------- tools/Makefile | 7 +- tools/spi/Makefile | 4 + tools/spi/spidev_fdx.c | 158 ++++++++++++++++++++ tools/spi/spidev_test.c | 318 ++++++++++++++++++++++++++++++++++++++++ 8 files changed, 485 insertions(+), 488 deletions(-) commit cc8a9d79222c6b259ea9eceef21b94a5610616f0 Author: Oliver Neukum Date: Thu Nov 5 12:55:27 2015 +0100 HID: usbhid: discarded events don't abort idleness If an event is discarded the device stays idle. Just reverse the order of check and marking busy. Found by code inspection. Signed-off-by: Oliver Neukum Signed-off-by: Jiri Kosina drivers/hid/usbhid/hid-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9049a48a33f7e03b69589a5fbb1444cc606d3292 Author: Mark Brown Date: Mon Nov 23 14:43:06 2015 +0000 ASoC: hdac: Fix Makefile and Kconfig sorting Signed-off-by: Mark Brown sound/soc/codecs/Kconfig | 12 ++++++------ sound/soc/codecs/Makefile | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) commit 8d33ab24242c5ce2f8e4add8c04d5409e36a330c Author: Sudip Mukherjee Date: Mon Nov 23 17:45:13 2015 +0530 ASoC: hdac_hdmi: fix possible NULL dereference kzalloc() can return NULL if it fails, and then we will be dereferencing a NULL pointer. Signed-off-by: Sudip Mukherjee Signed-off-by: Mark Brown sound/soc/codecs/hdac_hdmi.c | 2 ++ 1 file changed, 2 insertions(+) commit 5f4f276077aeada88c3a7b9f1128c9c6284261cd Author: ZhengShunQian Date: Mon Nov 9 10:10:20 2015 +0800 ASoC: rk3036: Add binding doc of inno-rk3036 codec driver This patch add the binding document of inno-rk3036 audio codec driver. Signed-off-by: ZhengShunQian Signed-off-by: Mark Brown .../devicetree/bindings/sound/inno-rk3036.txt | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit da46cd9e12397ef609431b52e2ce5f595cff78cf Author: kbuild test robot Date: Mon Nov 9 11:13:55 2015 +0800 ASoC: rk3036: fix platform_no_drv_owner.cocci warnings sound/soc/codecs/inno_rk3036.c:480: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 Signed-off-by: Mark Brown sound/soc/codecs/inno_rk3036.c | 1 - 1 file changed, 1 deletion(-) commit decbc00eb889d199edad737630fa882c0308d0ae Author: ZhengShunQian Date: Mon Nov 9 10:10:19 2015 +0800 ASoC: rk3036: Inno codec driver for RK3036 SoC RK3036 SoC integrated with an Inno audio codec. This driver implements the functions of it. There is not need a special machine driver, since the simple-card machine driver works perfect in this case. Signed-off-by: ZhengShunQian Signed-off-by: Mark Brown sound/soc/codecs/Kconfig | 4 + sound/soc/codecs/Makefile | 2 + sound/soc/codecs/inno_rk3036.c | 491 +++++++++++++++++++++++++++++++++++++++++ sound/soc/codecs/inno_rk3036.h | 123 +++++++++++ 4 files changed, 620 insertions(+) commit dc4270c0cd880f1b28dd48f2a31d869d22da941e Author: Johan Hedberg Date: Mon Nov 23 15:07:51 2015 +0200 Bluetooth: Increment management interface revision This patch increments the management interface revision due to introduction of a new Get Advertising Size Information command and various other fixes & improvements. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/mgmt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e59a554235b960b3b251772ac1bb743e49d09cee Author: Andrzej Kaczmarek Date: Sun Nov 22 21:42:21 2015 +0100 Bluetooth: Fix powering on with privacy and advertising In order to enable advertising with privacy enabled, SMP has to be registered in order to generate new RPA. During power on, it will be registered at the very end which is the reason why advertising is not enabled and it's not possible to enable it anymore due to mismatch between hci_dev settings and actual controller state. This fixes this problem by moving SMP registration earlier, just after controller is powered (which is ok, because LE SMP will be already able to decide on identity address to be used), but before advertising is enabled. Signed-off-by: Andrzej Kaczmarek Signed-off-by: Marcel Holtmann net/bluetooth/mgmt.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit f53e38afdc3a395722775c28ceb0e06c36a17ac3 Author: LABBE Corentin Date: Thu Nov 19 13:38:18 2015 +0100 crypto: picoxcell - set [src|dst]_nents and nents as signed int The unsigned int variables [src|dst]_nents and nents can be assigned signed value (-EINVAL) from sg_nents_for_len(). Furthermore they are used only by dma_map_sg and dma_unmap_sg which wait for an signed int, so they must be set as int. Fixes: f051f95eb47b ("crypto: picoxcell - check return value of sg_nents_for_len") Reported-by: Dan Carpenter Signed-off-by: LABBE Corentin Signed-off-by: Herbert Xu drivers/crypto/picoxcell_crypto.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit f8e28a0dec1dad2f68d754340dd80f1685941a4b Author: LABBE Corentin Date: Thu Nov 19 13:38:17 2015 +0100 crypto: sahara - set nb_[in|out]_sg as signed int The two unsigned int variables nb_in_sg and nb_out_sg can be assigned signed value (-EINVAL) from sg_nents_for_len(). Furthermore they are used only by dma_map_sg and dma_unmap_sg which wait for an signed int, so they must be set as int. Fixes: 6c2b74d4774f ("crypto: sahara - check return value of sg_nents_for_len") Reported-by: Dan Carpenter Signed-off-by: LABBE Corentin Signed-off-by: Herbert Xu drivers/crypto/sahara.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4c13ac1cf0e40c1fea8993354e54822ef643425e Author: Aaro Koskinen Date: Wed Nov 18 21:59:01 2015 +0200 hwrng: omap3-rom - convert timer to delayed work We cannot put the HW RNG to idle using a timer because we cannot disable clocks from atomic context. Use a delayed work instead. Fixes a warning with CONFIG_DEBUG_MUTEXES on Nokia N900 during boot. Reported-by: Sebastian Reichel Signed-off-by: Aaro Koskinen Signed-off-by: Herbert Xu drivers/char/hw_random/omap3-rom-rng.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit 56b85c9d7a45a90bf7cb8b5e8c2693f8064b2c09 Author: Arnd Bergmann Date: Tue Jan 27 22:34:04 2015 +0100 crypto: atmel: fix bogus select The Atmel at91 crypto driver unconditionally selects AT_HDMAC, which results in a Kconfig warning if that driver is not enabled: warning: (CRYPTO_DEV_ATMEL_AES) selects AT_HDMAC which has unmet direct dependencies (DMADEVICES && ARCH_AT91) The crypto driver itself does not actually have a dependency on a particular dma engine, other than this being the one that is used in at91. Removing the 'select' gets rid of the warning, but can cause the driver to be unusable if the HDMAC is not enabled at the same time. To work around that, this patch clarifies the runtime dependency to be 'AT_HDMAC || AT_XDMAC', but adds an alternative for COMPILE_TEST, which lets the driver get build on all systems. The ARCH_AT91 dependency is implied by AT_XDMAC || AT_HDMAC now and no longer needs to be listed separately. Signed-off-by: Arnd Bergmann Signed-off-by: Herbert Xu drivers/crypto/Kconfig | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit f18611da8683da19267e30187a191af7fa670206 Author: Cyrille Pitchen Date: Tue Nov 17 13:37:10 2015 +0100 crypto: tcrypt - fix keysize argument of test_aead_speed for gcm(aes) The key sizes used by AES in GCM mode should be 128, 192 or 256 bits (16, 24 or 32 bytes). There is no additional 4byte nonce as for RFC 4106. Signed-off-by: Cyrille Pitchen Signed-off-by: Herbert Xu crypto/tcrypt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 20ecae79e7aa7908810094e365e4c72a877fb87d Author: Arnd Bergmann Date: Tue Nov 17 10:22:06 2015 +0100 crypto: atmel - fix 64-bit warnings The atmel AES driver assumes that 'int' and 'size_t' are the same type in multiple locations, which the compiler warns about when building it for 64-bit systems: In file included from ../drivers/crypto/atmel-aes.c:17:0: drivers/crypto/atmel-aes.c: In function 'atmel_aes_sg_copy': include/linux/kernel.h:724:17: warning: comparison of distinct pointer types lacks a cast drivers/crypto/atmel-aes.c:448:11: note: in expansion of macro 'min' drivers/crypto/atmel-aes.c: In function 'atmel_aes_crypt_dma_stop': include/linux/kern_levels.h:4:18: warning: format '%u' expects argument of type 'unsigned int', but argument 2 has type 'size_t {aka long unsigned int}' [-Wformat=] This changes the format strings to use the %z modifier when printing a size_t, and makes sure that we use the correct size_t type where needed. In case of sg_dma_len(), the type of the result depends on CONFIG_NEED_SG_DMA_LENGTH, so we have to use min_t to get it to work in all configurations. Signed-off-by: Arnd Bergmann Acked-by: Cyrille Pitchen Signed-off-by: Herbert Xu drivers/crypto/atmel-aes.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 08346170d4483d58b8971fe9ff2a1318fd93d121 Author: Geliang Tang Date: Mon Nov 16 22:37:15 2015 +0800 crypto: mcryptd - use list_first_entry_or_null() Simplify mcryptd_opportunistic_flush() with list_first_entry_or_null(). Signed-off-by: Geliang Tang Signed-off-by: Herbert Xu crypto/mcryptd.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 304e4818d4a45e83019ea30e4cfcb3ac2a8ce09a Author: Geliang Tang Date: Mon Nov 16 22:37:14 2015 +0800 crypto: api - use list_first_entry_or_null and list_next_entry Simplify crypto_more_spawns() with list_first_entry_or_null() and list_next_entry(). Signed-off-by: Geliang Tang Signed-off-by: Herbert Xu crypto/algapi.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 568f44f63621e00af9895f09c70aa38025be8813 Author: Johan Hedberg Date: Mon Nov 23 14:40:47 2015 +0200 Bluetooth: Fix returning proper HCI status from __hci_req_sync There were a couple of code paths missed by the previous patch that added a HCI status return parameter to __hci_req_sync. This patch adds the missing assignments for them. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_request.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit ebd68df3f24b318d391d15c458d6f43f340ba36a Merge: e42852bf 1ec2183 Author: James Morris Date: Mon Nov 23 22:46:28 2015 +1100 Sync to Linus v4.4-rc2 for LSM developers. commit 0f611e2551deeedaafc0f01b8607eb580622b7bb Author: Songjun Wu Date: Mon Nov 23 17:19:58 2015 +0800 ASoC: Atmel: ClassD: add GCK's parent clock in DT binding Set GCK's parent as audio clock. Signed-off-by: Songjun Wu Signed-off-by: Mark Brown Documentation/devicetree/bindings/sound/atmel-classd.txt | 6 ++++++ 1 file changed, 6 insertions(+) commit 086ceb6b42caca65d726818b56b1e73c63df5b9e Author: Werner Johansson Date: Fri Oct 30 17:38:28 2015 -0700 drm/panel: Add Panasonic VVX10F034N00 MIPI DSI panel This adds support for the Panasonic panel found in some Xperia Z2 tablets. Signed-off-by: Werner Johansson Signed-off-by: Bjorn Andersson Signed-off-by: Thierry Reding drivers/gpu/drm/panel/Kconfig | 10 + drivers/gpu/drm/panel/Makefile | 1 + .../gpu/drm/panel/panel-panasonic-vvx10f034n00.c | 334 +++++++++++++++++++++ 3 files changed, 345 insertions(+) commit f74807a9f4565b22e54e8c1ae82b929018eb08ad Author: Werner Johansson Date: Fri Oct 30 17:38:27 2015 -0700 dt-bindings: Add Panasonic VVX10F034N00 panel binding This patch adds device tree bindings for the Panasonic VVX10F034N00 WUXGA panel. Signed-off-by: Werner Johansson Signed-off-by: Bjorn Andersson Acked-by: Rob Herring Signed-off-by: Thierry Reding .../bindings/panel/panasonic,vvx10f034n00.txt | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit f8fa17ba812b7df1535f6bb75d7264670f5997a6 Author: Akshay Bhat Date: Wed Nov 18 15:57:47 2015 -0500 drm/panel: simple: Add support for Innolux G121X1-L03 Add support for Innolux CheMei 12" G121X1-L03 XGA LVDS display. Datasheet: http://www.azdisplays.com/PDF/G121X1-L03.pdf Signed-off-by: Akshay Bhat Acked-by: Rob Herring Signed-off-by: Thierry Reding .../bindings/display/panel/innolux,g121x1-l03.txt | 7 +++++ drivers/gpu/drm/panel/panel-simple.c | 31 ++++++++++++++++++++++ 2 files changed, 38 insertions(+) commit a65e5efa7c5faa8c320fe56cc351d47fcd006749 Author: Alim Akhtar Date: Fri Nov 20 16:07:53 2015 +0530 rtc: s5m.c: Add support for S2MPS15 RTC RTC found in s2mps15 is almost same as one found on s2mps13 with few differences in RTC_UPDATE register fields, like: 1> Bit[4] and Bit[1] are reversed - On s2mps13 WUDR -> bit[4], AUDR -> bit[1] - On s2mps15 WUDR -> bit[1], AUDR -> bit[4] 2> In case of s2mps13, for alarm register, need to set both WDUR and ADUR high, whereas for s2mps15 only set AUDR to high. 3> On s2mps15, WUDR, RUDR and AUDR functions should never be used at the same time. This patch add required changes to enable s2mps15 rtc timer. Signed-off-by: Alim Akhtar Reviewed-by: Krzysztof Kozlowski Acked-by: Alexandre Belloni Signed-off-by: Lee Jones drivers/rtc/rtc-s5m.c | 37 +++++++++++++++++++++++++++++++++---- include/linux/mfd/samsung/rtc.h | 2 ++ 2 files changed, 35 insertions(+), 4 deletions(-) commit 51af20675800ffbd97bd48363a06e00f83de44c4 Author: Thomas Abraham Date: Fri Nov 20 16:07:52 2015 +0530 regulator: s2mps11: Add support for S2MPS15 regulators The S2MPS15 PMIC is similar in functionality to S2MPS11/14 PMIC. It contains 27 LDO and 10 Buck regulators and allows programming these regulators via a I2C interface. This patch adds initial support for LDO/Buck regulators of S2MPS15 PMIC. Signed-off-by: Thomas Abraham Signed-off-by: Alim Akhtar Reviewed-by: Krzysztof Kozlowski Acked-by: Mark Brown Signed-off-by: Lee Jones drivers/regulator/Kconfig | 4 +- drivers/regulator/s2mps11.c | 135 +++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 136 insertions(+), 3 deletions(-) commit 9e4808d2c6a6660d5d2cd572e689570df14a8472 Author: Thomas Abraham Date: Fri Nov 20 16:07:51 2015 +0530 mfd: sec: Add support for S2MPS15 PMIC Add support for S2MPS15 PMIC which is similar to S2MPS11 PMIC. The S2MPS15 PMIC supports 27 LDO regulators, 10 buck regulators, RTC, three 32.768KHz clock outputs and battery charger. This patch adds initial support for LDO and buck regulators of S2MPS15 device. Signed-off-by: Thomas Abraham Signed-off-by: Alim Akhtar Reviewed-by: Krzysztof Kozlowski [Alim: Added s2mps15_devs like rtc and clk and related changes] Signed-off-by: Lee Jones drivers/mfd/sec-core.c | 31 +++++++ drivers/mfd/sec-irq.c | 8 ++ include/linux/mfd/samsung/core.h | 1 + include/linux/mfd/samsung/s2mps15.h | 158 ++++++++++++++++++++++++++++++++++++ 4 files changed, 198 insertions(+) commit 8609d1b5daa36350e020e737946c40887af1743a Author: Kees Cook Date: Thu Nov 19 17:07:55 2015 -0800 x86/mm: Turn CONFIG_X86_PTDUMP into a module Being able to examine page tables is handy, so make this a module that can be loaded as needed. Signed-off-by: Kees Cook Cc: Andrey Ryabinin Cc: Andy Lutomirski Cc: Boris Ostrovsky Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephen Smalley Cc: Thomas Gleixner Cc: Toshi Kani Cc: Vladimir Murzin Cc: Will Deacon Link: http://lkml.kernel.org/r/20151120010755.GA9060@www.outflux.net Signed-off-by: Ingo Molnar arch/x86/Kconfig.debug | 2 +- arch/x86/mm/Makefile | 1 + arch/x86/mm/debug_pagetables.c | 46 ++++++++++++++++++++++++++++++++++++++++++ arch/x86/mm/dump_pagetables.c | 34 ++----------------------------- 4 files changed, 50 insertions(+), 33 deletions(-) commit 75ef82190dceac3d84cdc209fdf82800a7cc6609 Author: Boris Ostrovsky Date: Thu Nov 19 16:55:47 2015 -0500 x86/entry, x86/paravirt: Remove the unused usergs_sysret32 PV op As result of commit "x86/xen: Avoid fast syscall path for Xen PV guests", usergs_sysret32 pv op is not called by Xen PV guests anymore and since they were the only ones who used it we can safely remove it. Signed-off-by: Boris Ostrovsky Reviewed-by: Borislav Petkov Acked-by: Andy Lutomirski Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: david.vrabel@citrix.com Cc: konrad.wilk@oracle.com Cc: virtualization@lists.linux-foundation.org Cc: xen-devel@lists.xenproject.org Link: http://lkml.kernel.org/r/1447970147-1733-4-git-send-email-boris.ostrovsky@oracle.com Signed-off-by: Ingo Molnar arch/x86/entry/entry_64_compat.S | 10 ++-------- arch/x86/include/asm/paravirt.h | 5 ----- arch/x86/include/asm/paravirt_types.h | 8 -------- arch/x86/kernel/asm-offsets_64.c | 1 - arch/x86/kernel/paravirt.c | 5 ----- arch/x86/kernel/paravirt_patch_64.c | 2 -- arch/x86/xen/xen-asm_64.S | 19 ------------------- 7 files changed, 2 insertions(+), 48 deletions(-) commit 88c15ec90ff16880efab92b519436ee17b198477 Author: Boris Ostrovsky Date: Thu Nov 19 16:55:46 2015 -0500 x86/paravirt: Remove the unused irq_enable_sysexit pv op As result of commit "x86/xen: Avoid fast syscall path for Xen PV guests", the irq_enable_sysexit pv op is not called by Xen PV guests anymore and since they were the only ones who used it we can safely remove it. Signed-off-by: Boris Ostrovsky Reviewed-by: Borislav Petkov Acked-by: Andy Lutomirski Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: david.vrabel@citrix.com Cc: konrad.wilk@oracle.com Cc: virtualization@lists.linux-foundation.org Cc: xen-devel@lists.xenproject.org Link: http://lkml.kernel.org/r/1447970147-1733-3-git-send-email-boris.ostrovsky@oracle.com Signed-off-by: Ingo Molnar arch/x86/entry/entry_32.S | 8 ++------ arch/x86/include/asm/paravirt.h | 7 ------- arch/x86/include/asm/paravirt_types.h | 9 --------- arch/x86/kernel/asm-offsets.c | 3 --- arch/x86/kernel/paravirt.c | 7 ------- arch/x86/kernel/paravirt_patch_32.c | 2 -- arch/x86/kernel/paravirt_patch_64.c | 1 - arch/x86/xen/enlighten.c | 3 --- arch/x86/xen/xen-asm_32.S | 14 -------------- arch/x86/xen/xen-ops.h | 3 --- 10 files changed, 2 insertions(+), 55 deletions(-) commit 5fdf5d37f40a3b18c0d613463867f71c017b75ef Author: Boris Ostrovsky Date: Thu Nov 19 16:55:45 2015 -0500 x86/xen: Avoid fast syscall path for Xen PV guests After 32-bit syscall rewrite, and specifically after commit: 5f310f739b4c ("x86/entry/32: Re-implement SYSENTER using the new C path") ... the stack frame that is passed to xen_sysexit is no longer a "standard" one (i.e. it's not pt_regs). Since we end up calling xen_iret from xen_sysexit we don't need to fix up the stack and instead follow entry_SYSENTER_32's IRET path directly to xen_iret. We can do the same thing for compat mode even though stack does not need to be fixed. This will allow us to drop usergs_sysret32 paravirt op (in the subsequent patch) Suggested-by: Andy Lutomirski Signed-off-by: Boris Ostrovsky Reviewed-by: Borislav Petkov Acked-by: Andy Lutomirski Cc: Andrew Morton Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: david.vrabel@citrix.com Cc: konrad.wilk@oracle.com Cc: virtualization@lists.linux-foundation.org Cc: xen-devel@lists.xenproject.org Link: http://lkml.kernel.org/r/1447970147-1733-2-git-send-email-boris.ostrovsky@oracle.com Signed-off-by: Ingo Molnar arch/x86/entry/entry_32.S | 5 +++-- arch/x86/entry/entry_64_compat.S | 10 ++++++---- arch/x86/include/asm/cpufeature.h | 1 + arch/x86/xen/enlighten.c | 4 +++- 4 files changed, 13 insertions(+), 7 deletions(-) commit d78045306c41bd9334b956e4e7fa77cc72f06a40 Author: Waiman Long Date: Mon Nov 9 19:09:24 2015 -0500 locking/pvqspinlock, x86: Optimize the PV unlock code path The unlock function in queued spinlocks was optimized for better performance on bare metal systems at the expense of virtualized guests. For x86-64 systems, the unlock call needs to go through a PV_CALLEE_SAVE_REGS_THUNK() which saves and restores 8 64-bit registers before calling the real __pv_queued_spin_unlock() function. The thunk code may also be in a separate cacheline from __pv_queued_spin_unlock(). This patch optimizes the PV unlock code path by: 1) Moving the unlock slowpath code from the fastpath into a separate __pv_queued_spin_unlock_slowpath() function to make the fastpath as simple as possible.. 2) For x86-64, hand-coded an assembly function to combine the register saving thunk code with the fastpath code. Only registers that are used in the fastpath will be saved and restored. If the fastpath fails, the slowpath function will be called via another PV_CALLEE_SAVE_REGS_THUNK(). For 32-bit, it falls back to the C __pv_queued_spin_unlock() code as the thunk saves and restores only one 32-bit register. With a microbenchmark of 5M lock-unlock loop, the table below shows the execution times before and after the patch with different number of threads in a VM running on a 32-core Westmere-EX box with x86-64 4.2-rc1 based kernels: Threads Before patch After patch % Change ------- ------------ ----------- -------- 1 134.1 ms 119.3 ms -11% 2 1286 ms 953 ms -26% 3 3715 ms 3480 ms -6.3% 4 4092 ms 3764 ms -8.0% Signed-off-by: Waiman Long Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Davidlohr Bueso Cc: Douglas Hatch Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Scott J Norton Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1447114167-47185-5-git-send-email-Waiman.Long@hpe.com Signed-off-by: Ingo Molnar arch/x86/include/asm/qspinlock_paravirt.h | 59 +++++++++++++++++++++++++++++++ kernel/locking/qspinlock_paravirt.h | 43 +++++++++++++--------- 2 files changed, 86 insertions(+), 16 deletions(-) commit aa68744f80bfb6f26fbe7f10e42876066f7dac1b Author: Waiman Long Date: Mon Nov 9 19:09:23 2015 -0500 locking/qspinlock: Avoid redundant read of next pointer With optimistic prefetch of the next node cacheline, the next pointer may have been properly inititalized. As a result, the reading of node->next in the contended path may be redundant. This patch eliminates the redundant read if the next pointer value is not NULL. Signed-off-by: Waiman Long Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Davidlohr Bueso Cc: Douglas Hatch Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Scott J Norton Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1447114167-47185-4-git-send-email-Waiman.Long@hpe.com Signed-off-by: Ingo Molnar kernel/locking/qspinlock.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 81b5598665a24083dd889fbd8cb08b0d8de4b8ad Author: Waiman Long Date: Mon Nov 9 19:09:22 2015 -0500 locking/qspinlock: Prefetch the next node cacheline A queue head CPU, after acquiring the lock, will have to notify the next CPU in the wait queue that it has became the new queue head. This involves loading a new cacheline from the MCS node of the next CPU. That operation can be expensive and add to the latency of locking operation. This patch addes code to optmistically prefetch the next MCS node cacheline if the next pointer is defined and it has been spinning for the MCS lock for a while. This reduces the locking latency and improves the system throughput. The performance change will depend on whether the prefetch overhead can be hidden within the latency of the lock spin loop. On really short critical section, there may not be performance gain at all. With longer critical section, however, it was found to have a performance boost of 5-10% over a range of different queue depths with a spinlock loop microbenchmark. Signed-off-by: Waiman Long Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Davidlohr Bueso Cc: Douglas Hatch Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Scott J Norton Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1447114167-47185-3-git-send-email-Waiman.Long@hpe.com Signed-off-by: Ingo Molnar kernel/locking/qspinlock.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 64d816cba06c67eeee455b8c78ebcda349d49c24 Author: Waiman Long Date: Mon Nov 9 19:09:21 2015 -0500 locking/qspinlock: Use _acquire/_release() versions of cmpxchg() & xchg() This patch replaces the cmpxchg() and xchg() calls in the native qspinlock code with the more relaxed _acquire or _release versions of those calls to enable other architectures to adopt queued spinlocks with less memory barrier performance overhead. Signed-off-by: Waiman Long Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Davidlohr Bueso Cc: Douglas Hatch Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Scott J Norton Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1447114167-47185-2-git-send-email-Waiman.Long@hpe.com Signed-off-by: Ingo Molnar include/asm-generic/qspinlock.h | 9 +++++---- kernel/locking/qspinlock.c | 29 ++++++++++++++++++++++++----- 2 files changed, 29 insertions(+), 9 deletions(-) commit 978e5a3692c3b674b4c7c412e96835fd996c2ff4 Author: Boqun Feng Date: Wed Nov 4 18:52:45 2015 +0800 atomics: Add test for atomic operations with _relaxed variants Some atomic operations now have _relaxed/acquire/release variants, this patch adds some trivial tests for two purposes: 1. test the behavior of these new operations in single-CPU environment. 2. make their code generated before we actually use them somewhere, so that we can examine their assembly code. Signed-off-by: Boqun Feng Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Davidlohr Bueso Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Waiman Long Cc: Will Deacon Link: http://lkml.kernel.org/r/1446634365-25176-1-git-send-email-boqun.feng@gmail.com Signed-off-by: Ingo Molnar lib/atomic64_test.c | 120 ++++++++++++++++++++++++++++++++++------------------ 1 file changed, 79 insertions(+), 41 deletions(-) commit 70bc53b473435f43dcf7d91304e28dd6e0ffda14 Author: Geert Uytterhoeven Date: Tue Sep 29 09:27:22 2015 +0200 m68k/mac: Kill psc_present The presence of the Apple Peripheral System Controller (PSC) can be tested for by just checking its base address pointer. Signed-off-by: Geert Uytterhoeven arch/m68k/include/asm/mac_psc.h | 1 - arch/m68k/mac/macints.c | 6 +++--- arch/m68k/mac/psc.c | 7 +++---- 3 files changed, 6 insertions(+), 8 deletions(-) commit b7883a1c4f75edb62fc49da6000c59fb881e3c7b Author: Andi Kleen Date: Mon Nov 16 16:21:07 2015 -0800 perf/x86: Handle multiple umask bits for BDW CYCLE_ACTIVITY.* The earlier constraint fix for Broadwell CYCLE_ACTIVITY.* forced umask 8 to counter 2. For this it used UEVENT, to match the complete umask. The event list for Broadwell has an additional STALLS_L1D_PENDIND event that uses umask 8, but also sets other bits in the umask. The earlier strict umask match didn't handle this case. Add a new UBIT_EVENT constraint macro that only matches the specified bits in the umask. Then use that macro to handle CYCLE_ACTIVITY.* on Broadwell. The documented event also uses cmask, but there's no need to let the event scheduler know about the cmask, as the scheduling restriction is only tied to the umask. Reported-by: Grant Ayers Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Link: http://lkml.kernel.org/r/1447719667-9998-1-git-send-email-andi@firstfloor.org [ Filled in the missing email address of Grant Ayers - hopefully I got the right one. ] Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event.h | 4 ++++ arch/x86/kernel/cpu/perf_event_intel.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) commit da06a43d3f3f3df87416f654fe15d29fecb5e321 Author: Takao Indoh Date: Wed Nov 4 14:22:33 2015 +0900 perf, x86: Stop Intel PT before kdump starts This patch stops Intel PT logging and saves its registers in memory before kdump is started. This feature is needed to prevent Intel PT from overwriting its log buffer after panic, and saved registers are needed to find the last position where Intel PT wrote data. After the crash dump is captured by kdump, users can retrieve the log buffer from the vmcore and use it to investigate bad kernel behavior. Signed-off-by: Takao Indoh Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Arnaldo Carvalho de Melo Cc: H.Peter Anvin Cc: Jiri Olsa Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Cc: Vivek Goyal Link: http://lkml.kernel.org/r/1446614553-6072-3-git-send-email-indou.takao@jp.fujitsu.com Signed-off-by: Ingo Molnar arch/x86/kernel/crash.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 24cc12b17679f8e9046746f92fd377f589efc163 Author: Takao Indoh Date: Wed Nov 4 14:22:32 2015 +0900 perf/x86/intel/pt: Add interface to stop Intel PT logging This patch add a function for external components to stop Intel PT. Basically this function is used when kernel panic occurs. When it is called, the intel_pt driver disables Intel PT and saves its registers using pt_event_stop(), which is also used by pmu.stop handler. This function stops Intel PT on the CPU where it is working, therefore users of it need to call it for each CPU to stop all logging. Signed-off-by: Takao Indoh Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Arnaldo Carvalho de Melo Cc: H.Peter Anvin Cc: Jiri Olsa Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Cc: Vivek Goyal Link: http://lkml.kernel.org/r/1446614553-6072-2-git-send-email-indou.takao@jp.fujitsu.com Signed-off-by: Ingo Molnar arch/x86/include/asm/intel_pt.h | 10 ++++++++++ arch/x86/kernel/cpu/perf_event_intel_pt.c | 9 +++++++++ 2 files changed, 19 insertions(+) commit b16a5b52eb90d92b597257778e51e1fdc6423e64 Author: Andi Kleen Date: Tue Oct 20 11:46:34 2015 -0700 perf/x86: Add option to disable reading branch flags/cycles With LBRv5 reading the extra LBR flags like mispredict, TSX, cycles is not free anymore, as it has moved to a separate MSR. For callstack mode we don't need any of this information; so we can avoid the unnecessary MSR read. Add flags to the perf interface where perf record can request not collecting this information. Add branch_sample_type flags for CYCLES and FLAGS. It's a bit unusual for branch_sample_types to be negative (disable), not positive (enable), but since the legacy ABI reported the flags we need some form of explicit disabling to avoid breaking the ABI. After we have the flags the x86 perf code can keep track if any users need the flags. If noone needs it the information is not collected. This cuts down the cost of LBR callstack on Skylake significantly. Profiling a kernel build with LBR call stack the average run time of the PMI handler drops by 43%. Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Cc: acme@kernel.org Cc: jolsa@kernel.org Link: http://lkml.kernel.org/r/1445366797-30894-2-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_lbr.c | 19 +++++++++++++++++-- include/uapi/linux/perf_event.h | 6 ++++++ 2 files changed, 23 insertions(+), 2 deletions(-) commit 75925e1ad7f5a4e867bd14ff8e7f114ea1596434 Author: Andi Kleen Date: Thu Oct 22 15:07:21 2015 -0700 perf/x86: Optimize stack walk user accesses Change the perf user stack walking to use the new __copy_from_user_nmi(), and split each access into word sized transfer sizes. This allows to inline the complete access and optimize it all into a single load. The main advantage is that this avoids the overhead of double page faults. When normal copy_from_user() fails it reexecutes the copy to compute an accurate number of non copied bytes. This leads to executing the expensive page fault twice. While walking stacks having a fault at some point is relatively common (typically when some part of the program isn't compiled with frame pointers), so this is a large overhead. With the optimized copies we avoid this problem because they only do all accesses once. And of course they're much faster too when the access does not fault because they're just single instructions instead of complex function calls. While profiling a kernel build with -g, the patch brings down the average time of the PMI handler from 966ns to 552ns (-43%). Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Link: http://lkml.kernel.org/r/1445551641-13379-2-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) commit 10013ebb5d7856c243541870f4e62fed68253e88 Author: Andi Kleen Date: Thu Oct 22 15:07:20 2015 -0700 x86: Add an inlined __copy_from_user_nmi() variant Add a inlined __ variant of copy_from_user_nmi. The inlined variant allows the user to: - batch the access_ok() check for multiple accesses - avoid having a pagefault_disable/enable() on every access if the caller already ensures disabled page faults due to its context. - get all the optimizations in copy_*_user() for small constant sized transfers It is just a define to __copy_from_user_inatomic(). Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1445551641-13379-1-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar arch/x86/include/asm/uaccess.h | 9 +++++++++ 1 file changed, 9 insertions(+) commit 4716620d1b6291ce45522d1346c086f76b995d1c Author: Kedareswara rao Appana Date: Mon Oct 26 11:41:54 2015 +0530 can: xilinx: Convert to runtime_pm Instead of enabling/disabling clocks at several locations in the driver, Use the runtime_pm framework. This consolidates the actions for runtime PM In the appropriate callbacks and makes the driver more readable and mantainable. Signed-off-by: Kedareswara rao Appana Signed-off-by: Marc Kleine-Budde drivers/net/can/xilinx_can.c | 176 +++++++++++++++++++++++++------------------ 1 file changed, 101 insertions(+), 75 deletions(-) commit 525628c73bd6af65f27d927e699e7460d7d55ed3 Author: Byungchul Park Date: Wed Nov 18 09:34:59 2015 +0900 sched/fair: Modify the comment about lock assumptions in migrate_task_rq_fair() The comment describing migrate_task_rq_fair() says that the caller should hold p->pi_lock. But in some cases the caller can hold task_rq(p)->lock instead of p->pi_lock. So the comment is broken and this patch fixes it. Signed-off-by: Byungchul Park Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1447806899-20303-1-git-send-email-byungchul.park@lge.com Signed-off-by: Ingo Molnar kernel/sched/fair.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit accaf6ea3db6f5fb997f096b6eefd5431d03f7e5 Author: Oleg Nesterov Date: Sun Nov 15 20:33:32 2015 +0100 stop_machine: Clean up the usage of the preemption counter in cpu_stopper_thread() 1. Change this code to use preempt_count_inc/preempt_count_dec; this way it works even if CONFIG_PREEMPT_COUNT=n, and we avoid the unnecessary __preempt_schedule() check (stop_sched_class is not preemptible). And this makes clear that we only want to make preempt_count() != 0 for __might_sleep() / schedule_debug(). 2. Change WARN_ONCE() to use %pf to print the function name and remove kallsyms_lookup/ksym_buf. 3. Move "int ret" into the "if (work)" block, this looks more consistent. Signed-off-by: Oleg Nesterov Signed-off-by: Peter Zijlstra (Intel) Acked-by: Tejun Heo Cc: Linus Torvalds Cc: Mike Galbraith Cc: Milos Vyletel Cc: Peter Zijlstra Cc: Prarit Bhargava Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20151115193332.GA8281@redhat.com Signed-off-by: Ingo Molnar kernel/stop_machine.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) commit dd2e3121e3cb16d03a6e3f2db48f260f046f39c2 Author: Oleg Nesterov Date: Sun Nov 15 20:33:29 2015 +0100 stop_machine: Shift the 'done != NULL' check from cpu_stop_signal_done() to callers Change cpu_stop_queue_work() and cpu_stopper_thread() to check done != NULL before cpu_stop_signal_done(done). This makes the code more clean imo, note that cpu_stopper_thread() has to do this check anyway. Signed-off-by: Oleg Nesterov Signed-off-by: Peter Zijlstra (Intel) Acked-by: Tejun Heo Cc: Linus Torvalds Cc: Mike Galbraith Cc: Milos Vyletel Cc: Peter Zijlstra Cc: Prarit Bhargava Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20151115193329.GA8274@redhat.com Signed-off-by: Ingo Molnar kernel/stop_machine.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) commit 6fa3b826bcb3309157166e6e523a4be236fe267a Author: Oleg Nesterov Date: Sun Nov 15 20:33:26 2015 +0100 stop_machine: Kill cpu_stop_done->executed Now that cpu_stop_done->executed becomes write-only (ignoring WARN_ON() checks) we can remove it. Signed-off-by: Oleg Nesterov Signed-off-by: Peter Zijlstra (Intel) Acked-by: Tejun Heo Cc: Linus Torvalds Cc: Mike Galbraith Cc: Milos Vyletel Cc: Peter Zijlstra Cc: Prarit Bhargava Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20151115193326.GA8269@redhat.com Signed-off-by: Ingo Molnar kernel/stop_machine.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) commit 4aff1ca6970afbf9cd916c34a9c442c8ccba905e Author: Oleg Nesterov Date: Sun Nov 15 20:33:23 2015 +0100 stop_machine: Change __stop_cpus() to rely on cpu_stop_queue_work() Change queue_stop_cpus_work() to return true if it queues at least one work, this means that the caller should wait. __stop_cpus() can check the value returned by queue_stop_cpus_work() and avoid done.executed, just like stop_one_cpu() does. Signed-off-by: Oleg Nesterov Signed-off-by: Peter Zijlstra (Intel) Acked-by: Tejun Heo Cc: Linus Torvalds Cc: Mike Galbraith Cc: Milos Vyletel Cc: Peter Zijlstra Cc: Prarit Bhargava Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20151115193323.GA8262@redhat.com Signed-off-by: Ingo Molnar kernel/stop_machine.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) commit 958c5f848e17e216df138cc2161b07b7120e2d15 Author: Oleg Nesterov Date: Sun Nov 15 20:33:20 2015 +0100 stop_machine: Change stop_one_cpu() to rely on cpu_stop_queue_work() Change stop_one_cpu() to return -ENOENT if cpu_stop_queue_work() fails. Otherwise we know that ->executed must be true after wait_for_completion() so we can just return done.ret. Signed-off-by: Oleg Nesterov Signed-off-by: Peter Zijlstra (Intel) Acked-by: Tejun Heo Cc: Linus Torvalds Cc: Mike Galbraith Cc: Milos Vyletel Cc: Peter Zijlstra Cc: Prarit Bhargava Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20151115193320.GA8259@redhat.com Signed-off-by: Ingo Molnar kernel/stop_machine.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 1b034bd989aa4a396c13d305759c376c52595a97 Author: Oleg Nesterov Date: Tue Nov 17 18:05:23 2015 +0100 stop_machine: Make cpu_stop_queue_work() and stop_one_cpu_nowait() return bool Change cpu_stop_queue_work() to return true if the work was queued and change stop_one_cpu_nowait() to return the result of cpu_stop_queue_work(). This makes it more useful, for example now you can alloc cpu_stop_work for stop_one_cpu_nowait() and free it in the callback or if stop_one_cpu_nowait() fails, currently this is impossible because you can't know if @fn will be called or not. Also, this allows to kill cpu_stop_done->executed, see the next changes. Signed-off-by: Oleg Nesterov Signed-off-by: Peter Zijlstra (Intel) Acked-by: Tejun Heo Cc: Linus Torvalds Cc: Mike Galbraith Cc: Milos Vyletel Cc: Peter Zijlstra Cc: Prarit Bhargava Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20151117170523.GA13955@redhat.com Signed-off-by: Ingo Molnar include/linux/stop_machine.h | 7 +++++-- kernel/stop_machine.c | 16 ++++++++++++---- 2 files changed, 17 insertions(+), 6 deletions(-) commit 6a19005157c464b47b2082f2617d12bc11198a0d Author: Oleg Nesterov Date: Sun Nov 15 20:33:14 2015 +0100 stop_machine: Don't disable preemption in stop_two_cpus() Now that stop_two_cpus() path does not check cpu_active() we can remove preempt_disable(), it was only needed to ensure that stop_machine() can not be called after we observe cpu_active() == T and before we queue the new work. Also, turn the pointless and confusing ->executed check into WARN_ON(). We know that both works must be executed, otherwise we have a bug. And in fact I think that done->executed should die, see the next changes. Signed-off-by: Oleg Nesterov Signed-off-by: Peter Zijlstra (Intel) Acked-by: Tejun Heo Cc: Linus Torvalds Cc: Mike Galbraith Cc: Milos Vyletel Cc: Peter Zijlstra Cc: Prarit Bhargava Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20151115193314.GA8249@redhat.com Signed-off-by: Ingo Molnar kernel/stop_machine.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) commit 64038f292a1b33c7d46bd11f62f7798101152c00 Author: Oleg Nesterov Date: Sun Nov 15 20:33:11 2015 +0100 stop_machine: Fix possible cpu_stopper_thread() crash stop_one_cpu_nowait(fn) will crash the kernel if the callback returns nonzero, work->done == NULL in this case. This needs more cleanups, cpu_stop_signal_done() is called right after we check done != NULL and it does the same check. Signed-off-by: Oleg Nesterov Signed-off-by: Peter Zijlstra (Intel) Acked-by: Tejun Heo Cc: Linus Torvalds Cc: Mike Galbraith Cc: Milos Vyletel Cc: Peter Zijlstra Cc: Prarit Bhargava Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20151115193311.GA8242@redhat.com Signed-off-by: Ingo Molnar kernel/stop_machine.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 01783e0d452736d7deff1b920c5eccad67adc428 Author: Geliang Tang Date: Sun Nov 15 18:18:40 2015 +0800 sched/core: Use list_is_singular() in sched_can_stop_tick() Use list_is_singular() to check if run_list has only one entry. Signed-off-by: Geliang Tang Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/a5453fafd735affcf28e53a1d0a3d6965cb5dbb5.1447582547.git.geliangtang@163.com Signed-off-by: Ingo Molnar kernel/sched/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3ea94de15ce9f3a217f6d0a7e9e0f48388902bb7 Author: Joonwoo Park Date: Thu Nov 12 19:38:54 2015 -0800 sched/core: Fix incorrect wait time and wait count statistics At present scheduler resets task's wait start timestamp when the task migrates to another rq. This misleads scheduler itself into reporting less wait time than actual by omitting time spent for waiting prior to migration and also more wait count than actual by counting migration as wait end event which can be seen by trace or /proc//sched with CONFIG_SCHEDSTATS=y. Carry forward migrating task's wait time prior to migration and don't count migration as a wait end event to fix such statistics error. In order to determine whether task is migrating mark task->on_rq with TASK_ON_RQ_MIGRATING while dequeuing and enqueuing due to migration. Signed-off-by: Joonwoo Park Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: ohaugan@codeaurora.org Link: http://lkml.kernel.org/r/20151113033854.GA4247@codeaurora.org Signed-off-by: Ingo Molnar kernel/sched/core.c | 15 ++++++++++-- kernel/sched/fair.c | 67 +++++++++++++++++++++++++++++++++++++---------------- 2 files changed, 60 insertions(+), 22 deletions(-) commit 8c2accc8ca0be9cd8119ca439038243dfc8fcd0d Merge: 90eec10 2c6caff Author: Ingo Molnar Date: Mon Nov 23 09:13:48 2015 +0100 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: - Allows BPF scriptlets specify arguments to be fetched using DWARF info, using a prologue generated at compile/build time (He Kuang, Wang Nan) - Allow attaching BPF scriptlets to module symbols (Wang Nan) - Allow attaching BPF scriptlets to userspace code using uprobe (Wang Nan) - BPF programs now can specify 'perf probe' tunables via its section name, separating key=val values using semicolons (Wang Nan) Testing some of these new BPF features: Use case: get callchains when receiving SSL packets, filter then in the kernel, at arbitrary place. # cat ssl.bpf.c #define SEC(NAME) __attribute__((section(NAME), used)) struct pt_regs; SEC("func=__inet_lookup_established hnum") int func(struct pt_regs *ctx, int err, unsigned short port) { return err == 0 && port == 443; } char _license[] SEC("license") = "GPL"; int _version SEC("version") = LINUX_VERSION_CODE; # # perf record -a -g -e ssl.bpf.c ^C[ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.787 MB perf.data (3 samples) ] # perf script | head -30 swapper 0 [000] 58783.268118: perf_bpf_probe:func: (ffffffff816a0f60) hnum=0x1bb 8a0f61 __inet_lookup_established (/lib/modules/4.3.0+/build/vmlinux) 896def ip_rcv_finish (/lib/modules/4.3.0+/build/vmlinux) 8976c2 ip_rcv (/lib/modules/4.3.0+/build/vmlinux) 855eba __netif_receive_skb_core (/lib/modules/4.3.0+/build/vmlinux) 8565d8 __netif_receive_skb (/lib/modules/4.3.0+/build/vmlinux) 8572a8 process_backlog (/lib/modules/4.3.0+/build/vmlinux) 856b11 net_rx_action (/lib/modules/4.3.0+/build/vmlinux) 2a284b __do_softirq (/lib/modules/4.3.0+/build/vmlinux) 2a2ba3 irq_exit (/lib/modules/4.3.0+/build/vmlinux) 96b7a4 do_IRQ (/lib/modules/4.3.0+/build/vmlinux) 969807 ret_from_intr (/lib/modules/4.3.0+/build/vmlinux) 2dede5 cpu_startup_entry (/lib/modules/4.3.0+/build/vmlinux) 95d5bc rest_init (/lib/modules/4.3.0+/build/vmlinux) 1163ffa start_kernel ([kernel.vmlinux].init.text) 11634d7 x86_64_start_reservations ([kernel.vmlinux].init.text) 1163623 x86_64_start_kernel ([kernel.vmlinux].init.text) qemu-system-x86 9178 [003] 58785.792417: perf_bpf_probe:func: (ffffffff816a0f60) hnum=0x1bb 8a0f61 __inet_lookup_established (/lib/modules/4.3.0+/build/vmlinux) 896def ip_rcv_finish (/lib/modules/4.3.0+/build/vmlinux) 8976c2 ip_rcv (/lib/modules/4.3.0+/build/vmlinux) 855eba __netif_receive_skb_core (/lib/modules/4.3.0+/build/vmlinux) 8565d8 __netif_receive_skb (/lib/modules/4.3.0+/build/vmlinux) 856660 netif_receive_skb_internal (/lib/modules/4.3.0+/build/vmlinux) 8566ec netif_receive_skb_sk (/lib/modules/4.3.0+/build/vmlinux) 430a br_handle_frame_finish ([bridge]) 48bc br_handle_frame ([bridge]) 855f44 __netif_receive_skb_core (/lib/modules/4.3.0+/build/vmlinux) 8565d8 __netif_receive_skb (/lib/modules/4.3.0+/build/vmlinux) # Use 'perf probe' various options to list functions, see what variables can be collected at any given point, experiment first collecting without a filter, then filter, use it together with 'perf trace', 'perf top', with or without callchains, if it explodes, please tell us! - Introduce a new callchain mode: "folded", that will list per line representations of all callchains for a give histogram entry, facilitating 'perf report' output processing by other tools, such as Brendan Gregg's flamegraph tools (Namhyung Kim) E.g: # perf report | grep -v ^# | head 18.37% 0.00% swapper [kernel.kallsyms] [k] cpu_startup_entry | ---cpu_startup_entry | |--12.07%--start_secondary | --6.30%--rest_init start_kernel x86_64_start_reservations x86_64_start_kernel # Becomes, in "folded" mode: # perf report -g folded | grep -v ^# | head -5 18.37% 0.00% swapper [kernel.kallsyms] [k] cpu_startup_entry 12.07% cpu_startup_entry;start_secondary 6.30% cpu_startup_entry;rest_init;start_kernel;x86_64_start_reservations;x86_64_start_kernel 16.90% 0.00% swapper [kernel.kallsyms] [k] call_cpuidle 11.23% call_cpuidle;cpu_startup_entry;start_secondary 5.67% call_cpuidle;cpu_startup_entry;rest_init;start_kernel;x86_64_start_reservations;x86_64_start_kernel 16.90% 0.00% swapper [kernel.kallsyms] [k] cpuidle_enter 11.23% cpuidle_enter;call_cpuidle;cpu_startup_entry;start_secondary 5.67% cpuidle_enter;call_cpuidle;cpu_startup_entry;rest_init;start_kernel;x86_64_start_reservations;x86_64_start_kernel 15.12% 0.00% swapper [kernel.kallsyms] [k] cpuidle_enter_state # The user can also select one of "count", "period" or "percent" as the first column. Infrastructure changes: - Fix multiple leaks found with Valgrind and a refcount debugger (Masami Hiramatsu) - Add further 'perf test' entries for BPF and LLVM (Wang Nan) - Improve 'perf test' to suport subtests, so that the series of tests performed in the LLVM and BPF main tests appear in the default 'perf test' output (Wang Nan) - Move memdup() from tools/perf to tools/lib/string.c (Arnaldo Carvalho de Melo) - Adopt strtobool() from the kernel into tools/lib/ (Wang Nan) - Fix selftests_install tools/ Makefile rule (Kevin Hilman) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 51170840fe91dfca10fd533b303ea39b2524782a Author: Rik van Riel Date: Thu Nov 5 15:56:23 2015 -0500 sched/numa: Cap PTE scanning overhead to 3% of run time There is a fundamental mismatch between the runtime based NUMA scanning at the task level, and the wall clock time NUMA scanning at the mm level. On a severely overloaded system, with very large processes, this mismatch can cause the system to spend all of its time in change_prot_numa(). This can happen if the task spends at least two ticks in change_prot_numa(), and only gets two ticks of CPU time in the real time between two scan intervals of the mm. This patch ensures that a task never spends more than 3% of run time scanning PTEs. It does that by ensuring that in-between task_numa_work() runs, the task spends at least 32x as much time on other things than it did on task_numa_work(). This is done stochastically: if a timer tick happens, or the task gets rescheduled during task_numa_work(), we delay a future run of task_numa_work() until the task has spent at least 32x the amount of CPU time doing something else, as it spent inside task_numa_work(). The longer task_numa_work() takes, the more likely it is this happens. If task_numa_work() takes very little time, chances are low that that code will do anything, but we will not care. Reported-and-tested-by: Jan Stancek Signed-off-by: Rik van Riel Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: mgorman@suse.de Link: http://lkml.kernel.org/r/1446756983-28173-3-git-send-email-riel@redhat.com Signed-off-by: Ingo Molnar kernel/sched/fair.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 525705d15e63b7455977408e4601e76e6bc41524 Author: Byungchul Park Date: Tue Nov 10 09:36:02 2015 +0900 sched/fair: Consider missed ticks in NOHZ_FULL in update_cpu_load_nohz() Usually the tick can be stopped for an idle CPU in NOHZ. However in NOHZ_FULL mode, a non-idle CPU's tick can also be stopped. However, update_cpu_load_nohz() does not consider the case a non-idle CPU's tick has been stopped at all. This patch makes the update_cpu_load_nohz() know if the calling path comes from NOHZ_FULL or idle NOHZ. Signed-off-by: Byungchul Park Signed-off-by: Peter Zijlstra (Intel) Acked-by: Frederic Weisbecker Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1447115762-19734-3-git-send-email-byungchul.park@lge.com Signed-off-by: Ingo Molnar include/linux/sched.h | 4 ++-- kernel/sched/fair.c | 10 ++++++---- kernel/time/tick-sched.c | 8 ++++---- 3 files changed, 12 insertions(+), 10 deletions(-) commit 59543275488d18d878cd2ab2b1072efc1e9ac1c4 Author: Byungchul Park Date: Wed Oct 14 18:47:35 2015 +0900 sched/fair: Prepare __update_cpu_load() to handle active tickless There are some cases where distance between ticks is more than one tick while the CPU is not idle, e.g. full NOHZ. However __update_cpu_load() assumes it is the idle tickless case if the distance between ticks is more than 1, even though it can be the active tickless case as well. Thus in the active tickless case, updating the CPU load will not be performed correctly. Where the current code assumes the load for each tick is zero, this is (obviously) not true in non-idle tickless case. We can approximately consider the load ~= this_rq->cpu_load[0] during tickless in non-idle tickless case. Signed-off-by: Byungchul Park Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1444816056-11886-2-git-send-email-byungchul.park@lge.com Signed-off-by: Ingo Molnar kernel/sched/fair.c | 49 +++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 41 insertions(+), 8 deletions(-) commit d937cdc59e363baf8d5c757d944b13ebfa33e729 Author: Peter Zijlstra Date: Mon Oct 19 13:49:30 2015 +0200 sched/fair: Clean up the explanation around decaying load update misses Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar kernel/sched/fair.c | 53 ++++++++++++++++++++++++----------------------------- 1 file changed, 24 insertions(+), 29 deletions(-) commit 69e51e92a394088fc3266ed5136903074b44f3c4 Author: Peter Zijlstra Date: Fri Oct 23 14:32:34 2015 +0200 sched/wait: Document waitqueue_active() Kosuku reports that there were a fair number of buggy waitqueue_active() users and this function deserves a big comment in order to avoid growing more. Reported-by: Kosuke Tatsukawa Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar include/linux/wait.h | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) commit 38c6ade2dd4dcc3bca06c981e2a1b91289046177 Author: Dietmar Eggemann Date: Tue Oct 20 13:04:41 2015 +0100 sched/fair: Remove empty idle enter and exit functions Commit cd126afe838d ("sched/fair: Remove rq's runnable avg") got rid of rq->avg and so there is no need to update it any more when entering or exiting idle. Remove the now empty functions idle_{enter|exit}_fair(). Signed-off-by: Dietmar Eggemann Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Yuyang Du Link: http://lkml.kernel.org/r/1445342681-17171-1-git-send-email-dietmar.eggemann@arm.com Signed-off-by: Ingo Molnar kernel/sched/fair.c | 24 +----------------------- kernel/sched/idle_task.c | 1 - kernel/sched/sched.h | 8 -------- 3 files changed, 1 insertion(+), 32 deletions(-) commit 2fde46b79e2fdbc90d0d97cf992782732b5a371c Author: Len Brown Date: Sun Nov 22 18:16:15 2015 -0500 x86/smpboot: Re-enable init_udelay=0 by default on modern CPUs Fix a Linux-4.3 corner case performance regression, introduced by commit: f1ccd249319e ("x86/smpboot: Fix cpu_init_udelay=10000 corner case boot parameter misbehavior") which allowed the cmdline "cpu_init_udelay=" to work with all values, including the default of 10000. But in setting the default of 10000, it over-rode the code stat sets the delay 0 on modern processors. Also, tidy up use of INT/UINT. Reported-by: Shane Signed-off-by: Len Brown Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: dparsons@brightdsl.net Link: http://lkml.kernel.org/r/9082eb809ef40dad02db714759c7aaf618c518d4.1448232494.git.len.brown@intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/smpboot.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit c8521969dea2b8e10ecbba86e0221e4f63dce921 Author: Chris Zhong Date: Fri Nov 20 16:15:37 2015 +0800 drm/panel: simple: Add support for BOE TV080WUM-NL0 The BOE TV080WUM-NL0 is an 8.0", 1200x1920 (WUXGA) TFT-LCD panel connected using four DSI lanes. It can be supported by the simple-panel driver. Signed-off-by: Chris Zhong Signed-off-by: Thierry Reding drivers/gpu/drm/panel/panel-simple.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) commit 86b81f3e17b34e245ee01cf2bd142d12fae125cc Author: Chris Zhong Date: Fri Nov 20 16:15:38 2015 +0800 dt-bindings: Add BOE TV080WUM-NL0 panel binding The BOE TV080WUM-NL0 is an 8.0", 1200x1920 (WUXGA) TFT-LCD panel connected using four DSI lanes. Signed-off-by: Chris Zhong Acked-by: Rob Herring Signed-off-by: Thierry Reding .../devicetree/bindings/display/panel/boe,tv080wum-nl0.txt | 7 +++++++ 1 file changed, 7 insertions(+) commit 27d23b30a561b752f1564d99cb6c8247c78f74f6 Author: Chris Zhong Date: Fri Nov 20 16:15:36 2015 +0800 of: Add vendor prefix for BOE Technology Group BOE Technology Group Co., Ltd. is a supplier of semiconductor display technologies, products and services. Signed-off-by: Chris Zhong Acked-by: Rob Herring [treding@nvidia.com: add commit message, fixup subject] Signed-off-by: Thierry Reding Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) commit ec26d9e9382f432225d76b3ff1c7f72e21192f7f Author: Liu Ying Date: Fri Nov 20 16:15:30 2015 +0800 drm/dsi: Add a helper to get bits per pixel of MIPI DSI pixel format Add a helper that can be used to obtain the number of bits per pixel corresponding to a given MIPI DSI pixel format. This is useful in bandwidth calculations, for example. Signed-off-by: Liu Ying Acked-by: Thierry Reding Signed-off-by: Chris Zhong [treding@nvidia.com: add kerneldoc comment and commit message] Signed-off-by: Thierry Reding include/drm/drm_mipi_dsi.h | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit 92907cbbef8625bb3998d1eb385fc88f23c97a3f Merge: 15fbfcc 1ec2183 Author: Daniel Vetter Date: Mon Nov 23 09:04:05 2015 +0100 Merge tag 'v4.4-rc2' into drm-intel-next-queued Linux 4.4-rc2 Backmerge to get at commit 1b0e3a049efe471c399674fd954500ce97438d30 Author: Imre Deak Date: Thu Nov 5 23:04:11 2015 +0200 drm/i915/skl: disable display side power well support for now so that we can proplery re-eanble skl power wells in -next. Conflicts are just adjacent lines changed, except for intel_fbdev.c where we need to interleave the changs. Nothing nefarious. Signed-off-by: Daniel Vetter commit 15fbfccfe92c62ae8d1ecc647c44157ed01ac02e Author: Daniel Vetter Date: Fri Nov 20 17:02:08 2015 +0100 drm/i915: Update DRIVER_DATE to 20151120 Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3f8c0f7efb4fcac11f31afa97584d06118c614bb Author: Saurabh Sengar Date: Fri Nov 20 23:23:58 2015 +0530 gianfar: use of_property_read_bool() use of_property_read_bool() for testing bool property Signed-off-by: Saurabh Sengar Signed-off-by: David S. Miller drivers/net/ethernet/freescale/gianfar.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 5e091e7ad0baa84a401b4dc3f859890990f0854f Author: Yuval Mintz Date: Sun Nov 22 15:01:29 2015 +0200 bnx2x: Utilize FW 7.13.1.0. Commit 46e8a249423ff "bnx2x: Add FW 7.13.1.0" added said .bin FW to linux-firmware; This patch incorporates the FW in the bnx2x driver. This introduces 2 fixes/enhancements: - In some management protocols there are outer-vlan configurations that can be dynamically changed while device is running. This fixes some corner cases where such a change did not take effect. - Prevent VFs from sending MAC control frames; FW would treat a VF sending such a packet as malicious and block any further communication done by the VF. Signed-off-by: Yuval Mintz Signed-off-by: Ariel Elior Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h | 43 +++++++++++++------------ 1 file changed, 23 insertions(+), 20 deletions(-) commit b811580d91e9c0945b0a923dcec3e10cce04ac30 Author: David Ahern Date: Thu Nov 19 12:24:22 2015 -0800 net: IPv6 fib lookup tracepoint Add tracepoint to show fib6 table lookups and result. Signed-off-by: David Ahern Signed-off-by: David S. Miller include/trace/events/fib6.h | 76 +++++++++++++++++++++++++++++++++++++++++++++ net/core/net-traces.c | 4 +++ net/ipv6/route.c | 10 ++++++ 3 files changed, 90 insertions(+) commit 40b25fe5dc57a6557b96241b75ae63dce716a487 Author: Marcel Holtmann Date: Thu Nov 19 16:16:43 2015 +0100 Bluetooth: Add support for Get Advertising Size Information command The Get Advertising Size Information command allows to retrieve size information for advertising data and scan response data fields depending on the selected flags. This is useful if applications want to know the available size ahead of time. Signed-off-by: Marcel Holtmann Signed-off-by: Johan Hedberg include/net/bluetooth/mgmt.h | 13 ++++++++++ net/bluetooth/mgmt.c | 58 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) commit 31a3248dd97be9268859abed9a30c1040b2f4090 Author: Marcel Holtmann Date: Thu Nov 19 16:16:42 2015 +0100 Bluetooth: Simplify if statements in tlv_data_is_valid function The if statements for checking the flags parameter could be written a bit easier to read. This changes this. No functional behavior has been changed. Signed-off-by: Marcel Holtmann Signed-off-by: Johan Hedberg net/bluetooth/mgmt.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) commit ceff86af56e09469d21732c16fd27a7337983c48 Author: Marcel Holtmann Date: Thu Nov 19 16:16:41 2015 +0100 Bluetooth: Add instance range check for Add Advertising command The instance range check for Add Advertising command is missing. If the provided instance is out of range an Invalid Parameters error should be returned. At the moment, the generic Failed error is returned. This extra check ensures that clear error messages are returned. Signed-off-by: Marcel Holtmann Signed-off-by: Johan Hedberg net/bluetooth/mgmt.c | 4 ++++ 1 file changed, 4 insertions(+) commit 96b96a743c65969ebf13c343837db2faff1a8a84 Author: Vinod Koul Date: Sun Nov 22 16:24:58 2015 +0530 ASoC: hdac-hdmi: make driver select CONFIG_HDMI Since driver use infoframe symbols from video/hdmi.c we should select this symbol for this driver Reported-by: kbuild test robot Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/codecs/Kconfig | 1 + 1 file changed, 1 insertion(+) commit cd470fae88042570e0b9f50a725ca39ee333583f Author: Vinod Koul Date: Sun Nov 22 16:24:57 2015 +0530 ASoC: Intel: Skylake: Fix test of a field address Skylake driver uses snd_dma_buffer for data and buffer, these are variables and not pointer so do not test field addresses. Reported-by: kbuild test robot Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-sst-cldma.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 4ac4e086fd8c59e6b69089e6f7605500b63a6d17 Author: Matt Ranostay Date: Sun Nov 15 17:20:05 2015 -0800 iio: pulsedlight-lidar-lite: add runtime PM Add runtime PM support for the lidar-lite module to enable low power mode when last device requested reading is over a second. Signed-off-by: Matt Ranostay Signed-off-by: Jonathan Cameron drivers/iio/proximity/pulsedlight-lidar-lite-v2.c | 56 ++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) commit 3fba9b5ff837ed57a993e98245378c30911ab4ee Author: Nizam Haider Date: Mon Nov 16 05:35:57 2015 +0530 IIO: adc: at91_adc.c Prefer kmalloc_array over kmalloc with multiply So this patch swaps that use out for kmalloc_array instead. Signed-off-by Nizam Haider Signed-off-by: Jonathan Cameron drivers/iio/adc/at91_adc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit efdbe3c3edb6c8c98a8be863f60916780a5375c1 Author: Julia Lawall Date: Sun Nov 22 08:55:07 2015 +0100 ALSA: midi: constify snd_rawmidi_global_ops structures The snd_rawmidi_global_ops structures are never modified, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Takashi Iwai include/sound/rawmidi.h | 2 +- sound/core/seq/seq_virmidi.c | 2 +- sound/usb/midi.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 438f13a283e776957779e9beb0503100801ea84f Author: Jonathan Cameron Date: Sat Nov 21 18:20:06 2015 +0000 staging:iio: Delete some commented out lines in Kconfig and Makefile. These should have been removed with the driver move out of staging but instead were commented out. This was missed in reviews at the time so fixing it up now. Signed-off-by: Jonathan Cameron drivers/staging/iio/Kconfig | 28 ---------------------------- drivers/staging/iio/Makefile | 7 ------- 2 files changed, 35 deletions(-) commit 8ffedc1b128af336ab650cef4883015d1c49269d Author: Dragos Bogdan Date: Wed Nov 18 16:16:34 2015 +0200 staging:iio:ad7780: Remove the ad7780_platform_data The ad7780_platform_data contains just the reference voltage information. Since the preferred way of specifying this information is using the Linux regulator framework and the ad7780 platform_data is not used by other users, it can be completely removed. Signed-off-by: Dragos Bogdan Acked-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron drivers/staging/iio/adc/ad7780.c | 9 ++------- drivers/staging/iio/adc/ad7780.h | 29 ----------------------------- 2 files changed, 2 insertions(+), 36 deletions(-) commit 403c5c0650816375527a6feecfb255d9b494dda3 Author: Javier Martinez Canillas Date: Thu Oct 8 09:11:48 2015 +0200 HSI: Remove struct hsi_client private fields from kernel-doc The kernel-doc how to says that structure fields that are inside a "private:" area shouldn't be listed in the generated documentation but the private fields for struct hsi_client private are listed. This also fixes the following make htmldocs warnings: .//include/linux/hsi/hsi.h:150: warning: Excess struct/union/enum/typedef member 'e_handler' description in 'hsi_client' .//include/linux/hsi/hsi.h:150: warning: Excess struct/union/enum/typedef member 'pclaimed' description in 'hsi_client' .//include/linux/hsi/hsi.h:150: warning: Excess struct/union/enum/typedef member 'nb' description in 'hsi_client' Signed-off-by: Javier Martinez Canillas Signed-off-by: Sebastian Reichel include/linux/hsi/hsi.h | 3 --- 1 file changed, 3 deletions(-) commit 7a7a2df434cec5614271666b84b2ea1f41048e91 Author: Lars-Peter Clausen Date: Sat Nov 21 12:01:22 2015 +0100 ALSA: azt3328: Remove unnecessary synchronize_irq() before free_irq() Calling synchronize_irq() right before free_irq() is quite useless. On one hand the IRQ can easily fire again before free_irq() is entered, on the other hand free_irq() itself calls synchronize_irq() internally (in a race condition free way) before any state associated with the IRQ is freed. Signed-off-by: Lars-Peter Clausen Signed-off-by: Takashi Iwai sound/pci/azt3328.c | 2 -- 1 file changed, 2 deletions(-) commit 10a37de377e8c481f5bd0e89ae1c35fc2acdc4b4 Author: Caesar Wang Date: Mon Nov 9 12:49:02 2015 +0800 arm64: dts: rockchip: Enable the Thermal on R88 board This patch enable the TS-ADC. When a thermal temperature is invoked use the CRU to reset the chip on R88 board. TSHUT is low active on this board. Signed-off-by: Caesar Wang Acked-by: Eduardo Valentin Signed-off-by: Heiko Stuebner arch/arm64/boot/dts/rockchip/rk3368-r88.dts | 6 ++++++ 1 file changed, 6 insertions(+) commit f990238f859e95841ecd151da258ea999555f609 Author: Caesar Wang Date: Mon Nov 9 12:49:01 2015 +0800 arm64: dts: rockchip: Add main thermal info to rk3368.dtsi This patch add the thermal needed info on RK3368. Meanwhile, support the trips to throttle for thermal. Signed-off-by: Caesar Wang Acked-by: Eduardo Valentin Signed-off-by: Heiko Stuebner arch/arm64/boot/dts/rockchip/rk3368.dtsi | 36 ++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) commit c68bb56efb25e2d326ae413e399cdb1b4528e173 Author: Caesar Wang Date: Mon Nov 9 12:49:00 2015 +0800 arm64: dts: rockchip: Add the thermal data found on RK3368 This patchset add the thermal for RK3368 dts, Since the two CPU clusters, with four CPU core for each cluster, one cluster is optimized for high-performance(big cluster) and the othe is optimized for low power(little cluster). This patch adds the second order for thermal throttle, and the critical temperature for thermal over-tempeature protection on Software. Signed-off-by: Caesar Wang Acked-by: Eduardo Valentin Signed-off-by: Heiko Stuebner arch/arm64/boot/dts/rockchip/rk3368-thermal.dtsi | 112 +++++++++++++++++++++++ 1 file changed, 112 insertions(+) commit 07f083aba92ffdd97df41516de6f80ef27a4a21b Author: Subhransu S. Prusty Date: Tue Nov 10 18:42:10 2015 +0530 ASoC: hdac_hdmi: Use i915 component framework for PM Use the component framework to keep the display on till the playback in progress. Signed-off-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/codecs/hdac_hdmi.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit a657f1d05fd3eadb61f771e659f5d42940003d93 Author: Subhransu S. Prusty Date: Tue Nov 10 18:42:09 2015 +0530 ASoC: hdac_hdmi: Setup and start infoframe This patch uses hdmi framework in video to fill audio infoframe. Signed-off-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/codecs/hdac_hdmi.c | 61 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) commit b0362adbeb95b57d9739b0744772eaf9feaa6e5e Author: Subhransu S. Prusty Date: Tue Nov 10 18:42:08 2015 +0530 ASoC: hdac_hdmi: Add hdac hdmi dai ops The DAI ops are used for triggering HDMI streams and configuring the parameters Signed-off-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/codecs/hdac_hdmi.c | 162 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) commit e342ac08d0d57be81e5defb131f014b4ce27b107 Author: Subhransu S. Prusty Date: Tue Nov 10 18:42:07 2015 +0530 ASoC: hdac_hdmi: Add PM support for HDMI Power up/down the AFG node during runtime resume/suspend. Signed-off-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/codecs/hdac_hdmi.c | 64 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) commit 18382ead3640b5aab9bf4545249d84b51bbcba49 Author: Subhransu S. Prusty Date: Tue Nov 10 18:42:06 2015 +0530 ASoC: hdac-hdmi: Add hdmi driver This adds HDA based HDMI driver to be used in platforms like SKL and onwards Register the hdmi driver with hda bus and register dais. Also parse the widget and initialize identified pin and converter widgets. For simplification, currently only one pin and one converter widget are enabled on board, as well as limit the rates supported to simples ones and not based on ELD. This things will come eventually once basic support for this is merged Signed-off-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/codecs/Kconfig | 5 + sound/soc/codecs/Makefile | 2 + sound/soc/codecs/hdac_hdmi.c | 344 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 351 insertions(+) commit 60da3efbf1279c7e1b6a8bd1f848626b194748e6 Merge: d16a2b9 1e83b04 Author: Mark Brown Date: Sat Nov 21 13:58:13 2015 +0000 Merge branch 'topic/hdac' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-intel commit 1e83b0475a6833a2cb88beeb79f095b0cf4b40db Author: Subhransu S. Prusty Date: Tue Nov 10 18:42:05 2015 +0530 ALSA: hdac: structure definition for ext_dma_params This extends the structure definition of ext_device and adds definition for dma_params which will be used when hdmi codec. Signed-off-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Acked-by: Takashi Iwai Signed-off-by: Mark Brown include/sound/hdaudio_ext.h | 6 ++++++ 1 file changed, 6 insertions(+) commit 4c3dbd35d4369ddb0f0e26dd329a6aab870703e2 Author: leilk.liu@mediatek.com Date: Fri Nov 20 10:21:18 2015 +0800 spi: mediatek: remove needless pair of writel()/readl() It's not need to re-read and re-write SPI_CMD_REG, so remove it. Signed-off-by: Leilk Liu Reviewed-by: Matthias Brugger Signed-off-by: Mark Brown drivers/spi/spi-mt65xx.c | 3 --- 1 file changed, 3 deletions(-) commit 6e6a9cd461073256977bc8c91aba3c847e80fbd2 Author: leilk.liu@mediatek.com Date: Fri Nov 20 10:21:17 2015 +0800 spi: mediatek: remove unrequired description cs-gpios isn't required with patch "spi: mediatek: single device does not require cs_gpios", so modify the description. Signed-off-by: Leilk Liu Acked-by: Rob Herring Signed-off-by: Mark Brown Documentation/devicetree/bindings/spi/spi-mt65xx.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fbdb5d78ce7085966eb958ce8e003b1f8c2aaad4 Author: leilk.liu@mediatek.com Date: Fri Nov 20 10:21:16 2015 +0800 spi: mediatek: update document devicetree bindings to fix syntax error This patch updates document devicetree bindings to fix syntax error. Signed-off-by: Leilk Liu Acked-by: Rob Herring Signed-off-by: Mark Brown Documentation/devicetree/bindings/spi/spi-mt65xx.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d16a2b9f2465b5486f830178fbfb7d203e0a17ae Author: Dan Carpenter Date: Wed Nov 18 13:04:20 2015 +0300 ASoC: Intel: pass correct parameter in sst_alloc_stream_mrfld() "data" is always NULL in this function. I think we should be passing "&data" to sst_prepare_and_post_msg() instead of "data". Fixes: 3d9ff34622ba ('ASoC: Intel: sst: add stream operations') Signed-off-by: Dan Carpenter Tested-by: Dinesh Mirche Acked-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/atom/sst/sst_stream.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9bdca822cbd6b66124f2298504b6c4526599dc8f Author: Arnd Bergmann Date: Wed Nov 18 22:31:11 2015 +0100 ASoC: samsung: pass filter function as pointer As we are now passing the filter data as pointers to the drivers, we can take the final step and also pass the filter function the same way. I'm keeping this change separate, as there it's less obvious that this is a net win. Upsides of this are: - The ASoC drivers are completely independent from the DMA engine implementation, which simplifies the Kconfig logic and in theory allows the same sound drivers to be built in a kernel that supports different kinds of dmaengine drivers. - Consistency with other subsystems and drivers On the other hand, we have a few downsides: - The s3c24xx-dma driver now needs to be built-in for the ac97 platform device to be instantiated on s3c2440. - samsung_dmaengine_pcm_config cannot be marked 'const' any more because the filter function pointer needs to be set at runtime. This is safe as long we don't have multiple different DMA engines in thet same system at runtime, but is nonetheless ugly. Signed-off-by: Arnd Bergmann Reviewed-by: Krzysztof Kozlowski Signed-off-by: Mark Brown arch/arm/mach-s3c64xx/dev-audio.c | 6 ++++++ arch/arm/plat-samsung/devs.c | 6 ++++++ drivers/dma/Kconfig | 2 +- include/linux/platform_data/asoc-s3c.h | 4 ++++ sound/soc/samsung/Kconfig | 2 -- sound/soc/samsung/ac97.c | 3 ++- sound/soc/samsung/dma.h | 4 +++- sound/soc/samsung/dmaengine.c | 16 +++++----------- sound/soc/samsung/i2s.c | 11 ++++++++--- sound/soc/samsung/pcm.c | 5 ++++- sound/soc/samsung/s3c2412-i2s.c | 4 ++-- sound/soc/samsung/s3c24xx-i2s.c | 4 ++-- sound/soc/samsung/spdif.c | 9 +++++++-- 13 files changed, 50 insertions(+), 26 deletions(-) commit e6e969f1fd332e7525c577c0d8cfcbe898409abd Author: Arnd Bergmann Date: Wed Nov 18 22:16:48 2015 +0100 ASoC: sh: fix fsi build warnings for 64 bit As this driver can now be compiled for ARM64, we get a new warning as a result of passing a DMA filter data pointer through an 'int': sound/soc/sh/fsi.c: In function 'fsi_dma_probe': sound/soc/sh/fsi.c:1372:24: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] shdma_chan_filter, (void *)io->dma_id, We already know that we only need the legacy filter function on arch/sh, so we can hide the legacy DMA interface function behind an #ifdef. This has the other advantage of no longer depending on the shdma_chan_filter function to be visible. Signed-off-by: Arnd Bergmann Signed-off-by: Mark Brown sound/soc/sh/fsi.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 18560a4e3b07438113b50589e78532d95f907029 Author: Stephen Boyd Date: Fri Nov 20 15:43:06 2015 -0800 ASoC: qcom: Specify LE device endianness This is a little endian device, but so far we've been relying on the regmap mmio bus handling this for us without explicitly stating that fact. After commit 4a98da2164cf (regmap-mmio: Use native endianness for read/write, 2015-10-29), the regmap mmio bus will read/write with the __raw_*() IO accessors, instead of using the readl/writel() APIs that do proper byte swapping for little endian devices. So if we're running on a big endian processor and haven't specified the endianness explicitly in the regmap config or in DT, we're going to switch from doing little endian byte swapping to big endian accesses without byte swapping, leading to some confusing results. Specify the endianness explicitly so that the regmap core properly byte swaps the accesses for us. Cc: Kenneth Westfield Cc: Kevin Hilman Cc: Tyler Baker Cc: Simon Arlott Signed-off-by: Stephen Boyd Signed-off-by: Mark Brown sound/soc/qcom/lpass-cpu.c | 1 + 1 file changed, 1 insertion(+) commit 3ce351b5354a206e92ccd2d7f30df9c8b7ae5ed1 Author: Bayi Cheng Date: Wed Nov 18 11:30:02 2015 +0800 mtd: mtk-nor: new Mediatek serial flash controller driver Add spi nor flash driver for mediatek controller Signed-off-by: Bayi Cheng Signed-off-by: Brian Norris drivers/mtd/spi-nor/Kconfig | 7 + drivers/mtd/spi-nor/Makefile | 1 + drivers/mtd/spi-nor/mtk-quadspi.c | 486 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 494 insertions(+) commit bae5336f0aaedffa115dab9cb3d8a4e4aed3a26a Author: Azael Avalos Date: Sun Nov 15 20:32:47 2015 -0700 toshiba_acpi: Fix blank screen at boot if transflective backlight is supported If transflective backlight is supported and the brightness is zero (lowest brightness level), the set_lcd_brightness function will activate the transflective backlight, making the LCD appear to be turned off. This patch fixes the issue by incrementing the brightness level, and by doing so, avoiding the activation of the tranflective backlight. Cc: # 4.3+ Reported-and-tested-by: Fabian Koester Signed-off-by: Azael Avalos Signed-off-by: Darren Hart drivers/platform/x86/toshiba_acpi.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 13ae84f9486b5a1b3614c3da37cba561b8eb3c7f Author: Azael Avalos Date: Sun Nov 15 20:33:46 2015 -0700 toshiba_acpi: Propagate the hotkey value via genetlink The driver uses genetlink to inform userspace of events generated by the system, but the data passed is always zero as there is no data to pass, except for the hotkey event. This patch propagates the hotkey value via genetlink so userspace can make use of it. Signed-off-by: Azael Avalos Signed-off-by: Darren Hart drivers/platform/x86/toshiba_acpi.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit cf81a1cf711d71daafe8f1b8eca96b54c3f5c8ed Author: Georgi Djakov Date: Thu Nov 19 15:57:56 2015 +0200 clk: qcom: msm8916: Move xo and sleep clocks into DT Move the xo and sleep clocks to device-tree, instead of hard-coding them in the driver. This allows us to insert the RPM clocks (if they are enabled) in between the on-board oscillators and the actual clock. Signed-off-by: Georgi Djakov Signed-off-by: Stephen Boyd drivers/clk/qcom/gcc-msm8916.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) commit 394cb778ca2b9627e5189076e7299e8ab3969c7e Author: Andy Lutomirski Date: Fri Nov 13 21:49:31 2015 -0800 dell_wmi: Use a C99-style array for bios_to_linux_keycode It's currently hard to follow what maps to what, and it's hard to edit the array. Redo it as a C99-style array. I generated this using emacs regexes and a python one-liner. Signed-off-by: Andy Lutomirski Acked-by: Pali Rohár Signed-off-by: Darren Hart drivers/platform/x86/dell-wmi.c | 61 +++++++++++++++++++++++++++-------------- 1 file changed, 40 insertions(+), 21 deletions(-) commit d687767a910df17026df46b4eb54af49f310a9e7 Author: Julia Lawall Date: Sun Nov 15 20:48:14 2015 +0100 clk: ti: dra7: constify clk_hw_omap_ops structure The clk_hw_omap_ops structures are never modified, so declare this one as const, like the others. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Stephen Boyd drivers/clk/ti/apll.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 42efcb5da54865b59d47c93d87e475fe479a0b76 Author: Masanari Iida Date: Sat Nov 21 00:31:10 2015 +0900 Doc: Docbook/iio: Fix typo in iio.tmpl This patch fix a spelling typo in iio.tmpl. Signed-off-by: Masanari Iida Acked-by: Daniel Baluta Signed-off-by: Jonathan Corbet Documentation/DocBook/iio.tmpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e237b6579433cd054c990171cc3d64f28f94e947 Author: Mauro Carvalho Chehab Date: Thu Nov 19 12:38:46 2015 -0200 DocBook: make index.html generation less verbose by default When make htmldocs is called on non-verbose mode, it will still be verbose with index.html generation for no good reason, printing: rm -rf Documentation/DocBook/index.html; echo '

Linux Kernel HTML Documentation

' >> Documentation/DocBook/index.html && echo '

Kernel Version: 4.4.0-rc1

' >> Documentation/DocBook/index.html && cat Documentation/DocBook/iio.html >> Documentation/DocBook/index.html Instead, use the standard non-verbose mode, using: HTML Documentation/DocBook/index.html if not called with V=1. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet Documentation/DocBook/Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 212775516e9c70a4ba5849c4a4a3d07908136cbc Author: Mauro Carvalho Chehab Date: Thu Nov 19 12:38:45 2015 -0200 DocBook: Cleanup: remove an unused $(call) line There's no build_images function to call. So remove it. This is just a cleanup patch, with doesn't affect the build. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet Documentation/DocBook/Makefile | 1 - 1 file changed, 1 deletion(-) commit e57f0796d6d05b04653876d397b1ba0ec0a0a5eb Author: Mauro Carvalho Chehab Date: Thu Nov 19 12:38:44 2015 -0200 DocBook: Add a help message for DOCBOOKS env var Sometimes, it is needed to compile only a subset of the possible DocBooks. This is supported by the building system, but it is not docummented. Add a documentation for it. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet Documentation/DocBook/Makefile | 4 ++++ 1 file changed, 4 insertions(+) commit f902493a681659998856cabcfefa862ddaec952c Author: Richard Weinberger Date: Wed Nov 18 09:58:38 2015 +0100 stable_kernel_rules.txt: Remove extra space after Cc: Fixes the checkpatch.pl warning: "WARNING: Use a single space after Cc:" Very lazy hackers just copy&paste the stable tag from this document. As it contains an extra space, checkpatch.pl will not like the resulting patch... Signed-off-by: Richard Weinberger Signed-off-by: Jonathan Corbet Documentation/stable_kernel_rules.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d53a7b8ff60e7e7a68d623072872064465b2cd90 Author: Masanari Iida Date: Mon Nov 16 20:07:37 2015 +0900 Doc: ioctl: Fix typos in Documentation/ioctl This patch fix some spelling typos in Documentation/ioctl. Signed-off-by: Masanari Iida Acked-by: Randy Dunlap Signed-off-by: Jonathan Corbet Documentation/ioctl/botching-up-ioctls.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 547d4c107822fe79a1f8ee8eb61d933d16769319 Author: Masanari Iida Date: Mon Nov 16 20:00:35 2015 +0900 Doc: gpio: Fix typos in Documentation/gpio This patch fix some spelling typos found in Documentation/gpio. Signed-off-by: Masanari Iida Acked-by: Randy Dunlap Signed-off-by: Jonathan Corbet Documentation/gpio/consumer.txt | 2 +- Documentation/gpio/driver.txt | 6 +++--- Documentation/gpio/drivers-on-gpio.txt | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) commit f49afecc8213c88435f44641d7f0ac8dca403bc7 Merge: 329cabc addc3ba Author: Stephen Boyd Date: Fri Nov 20 15:47:07 2015 -0800 Merge branch 'clk-bcm63xx' into clk-next * clk-bcm63xx: clk: bcm: Add BCM63138 clock support clk: iproc: Extend binding to cover BCM63138 commit 32d79b023abe442e76648a70f3255fca3c6f67c9 Author: Tom Hebb Date: Sat Nov 14 21:36:46 2015 -0500 Documentation: arm: remove hyphen from BG2Q in Marvell Berlin docs The chip's design name isn't hyphenated anywhere else, and none of the other names in the same document are hyphenated. Signed-off-by: Thomas Hebb Acked-by: Sebastian Hesselbarth Signed-off-by: Jonathan Corbet Documentation/arm/Marvell/README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit addc3ba666fc5439a05f33263cc52f2c3f77af15 Author: Florian Fainelli Date: Thu Oct 29 18:23:18 2015 -0700 clk: bcm: Add BCM63138 clock support BCM63138 has a simple clocking domain which is primarily the ARMPLL clocking complex, from which the ARM (CPU), APB and AXI clocks would be derived from. Since the ARMPLL controller is entirely compatible with the iProc ARM PLL, we just initialize it without additional parameters. Signed-off-by: Florian Fainelli Signed-off-by: Stephen Boyd drivers/clk/bcm/Kconfig | 10 ++++++++++ drivers/clk/bcm/Makefile | 1 + drivers/clk/bcm/clk-bcm63xx.c | 22 ++++++++++++++++++++++ 3 files changed, 33 insertions(+) commit 5a0566d5dd4c82fe2cedefa0f1b2ae179349b0ed Author: Florian Fainelli Date: Thu Oct 29 18:23:17 2015 -0700 clk: iproc: Extend binding to cover BCM63138 Broadcom BCM63138 DSL SoCs have the same ARMPLL clocking infrastructure as the Cygnus and iProc chips, add a dedicated compatible string and document that the ARMPLL node is a valid node for this chip. Acked-by: Rob Herring Signed-off-by: Florian Fainelli Signed-off-by: Stephen Boyd Documentation/devicetree/bindings/clock/brcm,iproc-clocks.txt | 5 +++++ 1 file changed, 5 insertions(+) commit 4cbbf019619ae61b49328d4b50b69ee2e9d5a3a7 Author: Tom Hebb Date: Sat Nov 14 21:36:42 2015 -0500 Documentation: arm: add Marvell Armada 1500 Mini Plus to SoC list Add known information about the Marvell BG2CDP SoC that's used in the Google Chromecast 2015 and Kinoma HD devices. Signed-off-by: Thomas Hebb Acked-by: Sebastian Hesselbarth Signed-off-by: Jonathan Corbet Documentation/arm/Marvell/README | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 787a40325a97dd08a0567cea01addc1240dd9816 Author: Tom Hebb Date: Sat Nov 14 21:36:39 2015 -0500 Documentation: arm: update homepage URLs for Marvell Berlin SoCs Marvell has renamed their Berlin family from "Digital Entertainment" to "Multimedia Solutions." There aren't proper redirects set up for device-specific pages, so update the URLs accordingly. Signed-off-by: Thomas Hebb Acked-by: Sebastian Hesselbarth Signed-off-by: Jonathan Corbet Documentation/arm/Marvell/README | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 260e0eca80b4b279ac300c6dc50210b684a959b0 Author: Azael Avalos Date: Sun Nov 15 20:33:47 2015 -0700 toshiba_bluetooth: Add missing newline in toshiba_bluetooth_present function This patch simply adds a missing newline in the error string printed by the toshiba_bluetooth_present function. This is just a cosmetic change, no functionality was changed. Signed-off-by: Azael Avalos Signed-off-by: Darren Hart drivers/platform/x86/toshiba_bluetooth.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b22b5a9ef5309287b86bac9eb47f17a12671b770 Author: Conchúr Navid Date: Sun Nov 8 10:52:00 2015 +0100 kernel-doc: Fix parsing of DECLARE_BITMAP in struct Some documented structures in the kernel use DECLARE_BITMAP to create arrays of unsigned longs to store information using the bitmap functions. These have to be replaced with a parsable version for kernel-doc. For example a simple input like /** * struct something - some test * @members: active members */ struct something { DECLARE_BITMAP(members, MAX_MEMBERS); }; resulted in parsing warnings like warning: No description found for parameter 'MAX_MEMBERS)' warning: Excess struct/union/enum/typedef member 'members' description in 'something' Signed-off-by: Conchúr Navid Signed-off-by: Jonathan Corbet scripts/kernel-doc | 2 ++ 1 file changed, 2 insertions(+) commit 4468e21eed2dd7ee8dc91d94dbd2ccb0d291fb07 Author: Conchúr Navid Date: Sun Nov 8 10:48:05 2015 +0100 kernel-doc: Strip #ifdef/#endif in enums Some enumerations in the kernel headers use #ifdef to reduce their size based on the the configuration. These lines have to be stripped to avoid parsing problems. For example a simple input like /** * enum flags - test flags * @flag1: first flag * @flag2: second flag */ enum flags { flag1 = BIT(0), #ifdef SECOND_FLAG flag2 = BIT(1), #endif }; resulted in parsing warnings like warning: Enum value '#ifdef SECOND_FLAG;flag2 = BIT(1)' not described in enum 'flags' warning: Enum value '#endif;' not described in enum 'flags' Signed-off-by: Conchúr Navid Signed-off-by: Jonathan Corbet scripts/kernel-doc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 8a9260aa96b5112856a8bfdbf80984bfbcb4003f Author: Conchúr Navid Date: Sun Nov 8 10:45:23 2015 +0100 kernel-doc: Fix stripping of #define in enums The regex to strip single line #define's in enumerations depends on the fact that the defines are still stored on separate lines. But the surrounding code already removed newlines and replaced them with semicolons. For example a simple input like /** * enum flags - test flags * @flag1: first flag * @flag2: second flag * @flag3: third flag * @flag4: fourth flag */ enum flags { flag1 = BIT(0), flag2 = BIT(1), #define flags_small (flag1 | flag2) flag3 = BIT(2), flag4 = BIT(3), #define flags_big (flag2 | flag3) }; resulted in parsing warnings like warning: Enum value '#define flags_small (flag1 | flag2);flag3 = BIT(2)' not described in enum 'flags' warning: Enum value '#define flags_big (flag2 | flag3);' not described in enum 'flags' Signed-off-by: Conchúr Navid Signed-off-by: Jonathan Corbet scripts/kernel-doc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e2f9dc3bd213792ac006e83f50a5453f23b8c354 Author: Eric Dumazet Date: Thu Nov 19 12:11:23 2015 -0800 net: avoid NULL deref in napi_get_frags() napi_alloc_skb() can return NULL. We should not crash should this happen. Fixes: 93f93a440415 ("net: move skb_mark_napi_id() into core networking stack") Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/core/dev.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 329cabcecf94d8d7821e729dda284ba9dec44c87 Author: Stephen Boyd Date: Mon Nov 9 14:30:54 2015 -0800 clk: qcom: Specify LE device endianness All these clock controllers are little endian devices, but so far we've been relying on the regmap mmio bus handling this for us without explicitly stating that fact. After commit 4a98da2164cf (regmap-mmio: Use native endianness for read/write, 2015-10-29), the regmap mmio bus will read/write with the __raw_*() IO accessors, instead of using the readl/writel() APIs that do proper byte swapping for little endian devices. So if we're running on a big endian processor and haven't specified the endianness explicitly in the regmap config or in DT, we're going to switch from doing little endian byte swapping to big endian accesses without byte swapping, leading to some confusing results. On my apq8074 dragonboard, this causes the device to fail to boot as we access the clock controller with big endian IO accesses even though the device is little endian. Specify the endianness explicitly so that the regmap core properly byte swaps the accesses for us. Reported-by: Kevin Hilman Tested-by: Tyler Baker Tested-by: Kevin Hilman Cc: Simon Arlott Cc: Mark Brown Signed-off-by: Stephen Boyd drivers/clk/qcom/gcc-apq8084.c | 1 + drivers/clk/qcom/gcc-ipq806x.c | 1 + drivers/clk/qcom/gcc-msm8660.c | 1 + drivers/clk/qcom/gcc-msm8916.c | 1 + drivers/clk/qcom/gcc-msm8960.c | 2 ++ drivers/clk/qcom/gcc-msm8974.c | 1 + drivers/clk/qcom/lcc-ipq806x.c | 1 + drivers/clk/qcom/lcc-msm8960.c | 1 + drivers/clk/qcom/mmcc-apq8084.c | 1 + drivers/clk/qcom/mmcc-msm8960.c | 2 ++ drivers/clk/qcom/mmcc-msm8974.c | 1 + 11 files changed, 13 insertions(+) commit 16af439645455fbf36984ca5e72f31073ee19ab7 Author: Tejun Heo Date: Fri Nov 20 15:55:52 2015 -0500 cgroup: implement cgroup_get_from_path() and expose cgroup_put() Implement cgroup_get_from_path() using kernfs_walk_and_get() which obtains a default hierarchy cgroup from its path. This will be used to allow cgroup path based matching from outside cgroup proper - e.g. networking and perf. v2: Add EXPORT_SYMBOL_GPL(cgroup_get_from_path). Signed-off-by: Tejun Heo include/linux/cgroup.h | 7 +++++++ kernel/cgroup.c | 39 ++++++++++++++++++++++++++++++++++----- 2 files changed, 41 insertions(+), 5 deletions(-) commit bd96f76a2454c6b97d70945902e30b4c31510678 Author: Tejun Heo Date: Fri Nov 20 15:55:52 2015 -0500 kernfs: implement kernfs_walk_and_get() Implement kernfs_walk_and_get() which is similar to kernfs_find_and_get() but can walk a path instead of just a name. v2: Use strlcpy() instead of strlen() + memcpy() as suggested by David. Signed-off-by: Tejun Heo Acked-by: Greg Kroah-Hartman Cc: David Miller fs/kernfs/dir.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ include/linux/kernfs.h | 12 ++++++++++++ 2 files changed, 58 insertions(+) commit b11cfb5807e30333b36c02701382b820b7dcf0d5 Author: Tejun Heo Date: Fri Nov 20 15:55:52 2015 -0500 cgroup: record ancestor IDs and reimplement cgroup_is_descendant() using it cgroup_is_descendant() currently walks up the hierarchy and compares each ancestor to the cgroup in question. While enough for cgroup core usages, this can't be used in hot paths to test cgroup membership. This patch adds cgroup->ancestor_ids[] which records the IDs of all ancestors including self and cgroup->level for the nesting level. This allows testing whether a given cgroup is a descendant of another in three finite steps - testing whether the two belong to the same hierarchy, whether the descendant candidate is at the same or a higher level than the ancestor and comparing the recorded ancestor_id at the matching level. cgroup_is_descendant() is accordingly reimplmented and made inline. Signed-off-by: Tejun Heo include/linux/cgroup-defs.h | 14 ++++++++++++++ include/linux/cgroup.h | 18 +++++++++++++++++- kernel/cgroup.c | 32 ++++++++++---------------------- 3 files changed, 41 insertions(+), 23 deletions(-) commit fec7bc433a29ea75b83dd9447629c99b2d4d727a Author: Kouei Abe Date: Fri Nov 20 21:33:02 2015 +0900 sata_rcar: Add compatible string for r8a7795 R-Car H3 SoC has compatible SATA controller with R-Car Gen2 SoCs. Signed-off-by: Kouei Abe Signed-off-by: Yoshihiro Kaneko Signed-off-by: Tejun Heo Acked-by: Simon Horman Documentation/devicetree/bindings/ata/sata_rcar.txt | 1 + drivers/ata/sata_rcar.c | 4 ++++ 2 files changed, 5 insertions(+) commit 9c2abe2f7159a6013004b6189a9867e880085e96 Author: Florian Fainelli Date: Wed Nov 18 15:22:13 2015 -0800 MAINTAINERS: gpio-brcmstb: Remove stray '>' There is a stray '>' at the end of the mailing-list specified for the Broadcom STB GPIO driver, remove that. Fixes: 3b0213d56eb7 ("gpio: Add GPIO support for Broadcom STB SoCs") Signed-off-by: Florian Fainelli MAINTAINERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1e65a3475f9314f713a46db782105a234bdf34cb Author: Florian Fainelli Date: Wed Nov 18 15:19:57 2015 -0800 MAINTAINERS: brcmstb: Include Broadcom internal mailing-list Include bcm-kernel-feedback-list for all brcmstb patch submission to be both consistent with how other Broadcom ARM-based SoCs are handled, and get internal Broadcom people to review these changes. Signed-off-by: Florian Fainelli MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit b3d39a8805c5109dde960204806cf540e3be12fa Author: Simon Horman Date: Fri Nov 20 11:29:39 2015 -0800 ravb: use clock rate as basis for GTI.TIV The GTI.TIV may be set to 2GHz^2 / rate, where rate is that of the clock of the device. Rather than assuming a rate of 130MHz use the actual rate of the clock. The motivation for this is to use the correct rate on the r8a7795/Salvator-X which is advertised as 133MHz but may differ depending on the extal present on the Salvator-X. Signed-off-by: Simon Horman Signed-off-by: David S. Miller drivers/net/ethernet/renesas/ravb.h | 3 +++ drivers/net/ethernet/renesas/ravb_main.c | 38 +++++++++++++++++++++++++++++++- 2 files changed, 40 insertions(+), 1 deletion(-) commit 1777ddb84a543444d44594d437b0f3d3f8734f32 Author: Ondrej Zary Date: Thu Nov 19 20:13:06 2015 +0100 dl2k: Implement suspend Add suspend/resume support to dl2k driver. This requires RX/TX rings to be reset so split out the required functionality from alloc_list() into new rio_reset_ring(). Tested on Asus NX1101 (IP1000A) and D-Link DGE-550T (DL-2000). Signed-off-by: Ondrej Zary Signed-off-by: David S. Miller drivers/net/ethernet/dlink/dl2k.c | 79 ++++++++++++++++++++++++++++++++------- 1 file changed, 65 insertions(+), 14 deletions(-) commit 966e07f4bf11f9fcce57c706903defe86516344c Author: Ondrej Zary Date: Thu Nov 19 20:13:05 2015 +0100 dl2k: Reorder and cleanup initialization Move HW init and stop into separate functions. Request IRQ only after the HW has been reset (so interrupts are disabled and no stale interrupts are pending). Signed-off-by: Ondrej Zary Signed-off-by: David S. Miller drivers/net/ethernet/dlink/dl2k.c | 95 +++++++++++++++++++++++---------------- 1 file changed, 56 insertions(+), 39 deletions(-) commit 39536ff81e81fef6202612a3ba98aa21fa00c254 Author: Ondrej Zary Date: Thu Nov 19 20:13:04 2015 +0100 dl2k: Handle memory allocation errors in alloc_list If memory allocation fails in alloc_list(), free the already allocated memory and return -ENOMEM. In rio_open(), call alloc_list() first and abort if it fails. Move HW access (set RFDListPtr) out ot alloc_list(). Signed-off-by: Ondrej Zary Signed-off-by: David S. Miller drivers/net/ethernet/dlink/dl2k.c | 182 ++++++++++++++++++++------------------ 1 file changed, 97 insertions(+), 85 deletions(-) commit 85af2a665144f40cdf60c0e0e7fe88e40c20b0fa Author: Vinod Koul Date: Fri Nov 20 22:34:41 2015 +0530 ASoC: Intel: Skylake: Update the rtd query sound card rtd was an array and was updated to a list so update the driver to use a list Reported-by: Stephen Rothwell Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/boards/skl_nau88l25_ssm4567.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit b590d5e2cac3d21d4dd6ae35344b03f03914db76 Merge: 314038e 1a49798 Author: Mark Brown Date: Fri Nov 20 19:23:22 2015 +0000 Merge branch 'topic/pcm-list' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-intel commit abd657b1278c9cbf42cdd9654352f082b37e2793 Author: Vinod Koul Date: Fri Nov 20 22:45:20 2015 +0530 ASoC: fsl-asoc-card: Update the rtd query sound card rtd was an array and was updated to a list so update the driver to use a list Reported-by: Stephen Rothwell Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/fsl/fsl-asoc-card.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 96cb6933403ce9136b49b002ceb8da82037f4fe4 Author: Geert Uytterhoeven Date: Thu Oct 29 20:54:03 2015 +0100 clk: shmobile: rcar-gen2: Spelling/Grammar: dependant of, ouput s/dependant of/dependent on/ s/ouput/output/ Signed-off-by: Geert Uytterhoeven Signed-off-by: Stephen Boyd drivers/clk/shmobile/clk-rcar-gen2.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3fe003f944755f6d959387f9568d271512dcb12d Author: Geert Uytterhoeven Date: Thu Oct 29 20:55:00 2015 +0100 clk: Spelling s/derefing/dereferencing/ Signed-off-by: Geert Uytterhoeven Signed-off-by: Stephen Boyd drivers/clk/clk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 20dd882a09d3cce183eef4c9132c23439caaf0d6 Author: Geert Uytterhoeven Date: Thu Oct 29 22:12:56 2015 +0100 clk: Use static inline functions instead of macros for dummies if CONFIG_OF=n: drivers/clk/clk-cs2000-cp.c: In function ‘cs2000_remove’: drivers/clk/clk-cs2000-cp.c:453:22: warning: unused variable ‘np’ [-Wunused-variable] struct device_node *np = dev->of_node; ^ Convert dummies of_clk_del_provider() and of_clk_init() from macros to static inline functions to kill such compiler warnings. Reported-by: kbuild test robot Signed-off-by: Geert Uytterhoeven Signed-off-by: Stephen Boyd include/linux/clk-provider.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 6b99c6d558bbfaba0292db1996199325a74c7d02 Merge: 12ded5c 1a90632 Author: David S. Miller Date: Fri Nov 20 14:06:11 2015 -0500 Merge branch 'tipc-cleanups-improvements' Jon Maloy says: ==================== tipc: some cleanups and improvements This series mostly contains cleanups and cosmetic code changes. The only real functional change is in #4 and #5, where we change the locking structure for nodes and links in order to permit full concurrency between links working in parallel on different interfaces. Since the groundwork for this has been done in previous commit series, this change constitutes only the final, small step to achieve that goal. ==================== Signed-off-by: David S. Miller commit 1a90632da8c17a27e0c93538ee987764adee43a5 Author: Jon Paul Maloy Date: Thu Nov 19 14:30:47 2015 -0500 tipc: eliminate remnants of hungarian notation The number of variables with Hungarian notation (l_ptr, n_ptr etc.) has been significantly reduced over the last couple of years. We now root out the last traces of this practice. There are no functional changes in this commit. Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/bearer.c | 140 ++++++++++++++++++++++++++-------------------------- net/tipc/bearer.h | 8 +-- net/tipc/discover.c | 38 +++++++------- net/tipc/link.c | 4 +- net/tipc/link.h | 2 +- net/tipc/node.c | 74 +++++++++++++-------------- 6 files changed, 133 insertions(+), 133 deletions(-) commit 38206d5939068415c413ac253be6f364d06e672f Author: Jon Paul Maloy Date: Thu Nov 19 14:30:46 2015 -0500 tipc: narrow down interface towards struct tipc_link We move the definition of struct tipc_link from link.h to link.c in order to minimize its exposure to the rest of the code. When needed, we define new functions to make it possible for external entities to access and set data in the link. Apart from the above, there are no functional changes. Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/bcast.c | 126 +---------------- net/tipc/link.c | 346 ++++++++++++++++++++++++++++++++++++++++++++-- net/tipc/link.h | 170 ++--------------------- net/tipc/netlink.c | 2 +- net/tipc/netlink_compat.c | 4 +- net/tipc/node.c | 108 +++++++-------- net/tipc/node.h | 4 +- 7 files changed, 415 insertions(+), 345 deletions(-) commit 5be9c086715c10fb9ae3ffc0ef580dc3a165f98a Author: Jon Paul Maloy Date: Thu Nov 19 14:30:45 2015 -0500 tipc: narrow down exposure of struct tipc_node In our effort to have less code and include dependencies between entities such as node, link and bearer, we try to narrow down the exposed interface towards the node as much as possible. In this commit, we move the definition of struct tipc_node, along with many of its associated function declarations, from node.h to node.c. We also move some function definitions from link.c and name_distr.c to node.c, since they access fields in struct tipc_node that should not be externally visible. The moved functions are renamed according to new location, and made static whenever possible. There are no functional changes in this commit. Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/bcast.h | 1 + net/tipc/link.c | 337 +--------------------------------- net/tipc/link.h | 9 +- net/tipc/netlink.c | 6 +- net/tipc/netlink_compat.c | 4 +- net/tipc/node.c | 449 +++++++++++++++++++++++++++++++++++++++++++++- net/tipc/node.h | 117 +----------- 7 files changed, 462 insertions(+), 461 deletions(-) commit 5405ff6e15f40f2f53e37d2dcd7de521e2b7a96f Author: Jon Paul Maloy Date: Thu Nov 19 14:30:44 2015 -0500 tipc: convert node lock to rwlock According to the node FSM a node in state SELF_UP_PEER_UP cannot change state inside a lock context, except when a TUNNEL_PROTOCOL (SYNCH or FAILOVER) packet arrives. However, the node's individual links may still change state. Since each link now is protected by its own spinlock, we finally have the conditions in place to convert the node spinlock to an rwlock_t. If the node state and arriving packet type are rigth, we can let the link directly receive the packet under protection of its own spinlock and the node lock in read mode. In all other cases we use the node lock in write mode. This enables full concurrent execution between parallel links during steady-state traffic situations, i.e., 99+ % of the time. This commit implements this change. Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/link.c | 32 ++++---- net/tipc/node.c | 227 +++++++++++++++++++++++++++++--------------------------- net/tipc/node.h | 10 +-- 3 files changed, 136 insertions(+), 133 deletions(-) commit 2312bf61ae365fdd6b9bfb24558a417859759447 Author: Jon Paul Maloy Date: Thu Nov 19 14:30:43 2015 -0500 tipc: introduce per-link spinlock As a preparation to allow parallel links to work more independently from each other we introduce a per-link spinlock, to be stored in the struct nodes's link entry area. Since the node lock still is a regular spinlock there is no increase in parallellism at this stage. Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/link.c | 9 +++++---- net/tipc/node.c | 39 ++++++++++++++++++--------------------- net/tipc/node.h | 3 ++- 3 files changed, 25 insertions(+), 26 deletions(-) commit 1d7e1c2595bd20c5274a8e49d89cf0cf483759de Author: Jon Paul Maloy Date: Thu Nov 19 14:30:42 2015 -0500 tipc: reduce code dependency between binding table and node layer The file name_distr.c currently contains three functions, named_cluster_distribute(), tipc_publ_subcscribe() and tipc_publ_unsubscribe() that all directly access fields in struct tipc_node. We want to eliminate such dependencies, so we move those functions to the file node.c and rename them to tipc_node_broadcast(), tipc_node_subscribe() and tipc_node_unsubscribe() respectively. Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/core.h | 5 ++++ net/tipc/name_distr.c | 67 +++------------------------------------------------ net/tipc/name_distr.h | 1 - net/tipc/name_table.c | 5 ++-- net/tipc/node.c | 60 +++++++++++++++++++++++++++++++++++++++++++++ net/tipc/node.h | 3 +++ 6 files changed, 74 insertions(+), 67 deletions(-) commit 5c10e9794013143eec80d494603d46dcb219970a Author: Jon Paul Maloy Date: Thu Nov 19 14:30:41 2015 -0500 tipc: small cleanup of function tipc_node_check_state() The function tipc_node_check_state() contains the core logics for handling link synchronization and failover. For this reason, it is important to keep it as comprehensible as possible. In this commit, we make three small cleanups. 1) If the node is in state SELF_DOWN_PEER_LEAVING and the received packet confirms that the peer has lost contact, there will be no further action in this function. To make this clearer, we return from the function directly after the state change. 2) Since commit 0f8b8e28fb3241f9fd ("tipc: eliminate risk of stalled link synchronization") only the logically first TUNNEL_PROTO/SYNCH packet can alter the link state and set the synch point, independently of arrival order. Hence, there is not any longer any need to adjust the synch value in case such packets arrive in disorder. We remove this adjustment. 3) It is the intention that any message arriving on any of the links may trig a check for and possible termination of a node SYNCH state. A redundant and unnoticed check for tipc_link_is_synching() obviously beats this purpose, with the effect that only packets arriving on the synching link may currently end the synch state. We remove this check. This change will further shorten the synchronization period between parallel links. Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/node.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit c7cad0d6f70cd4ce8644ffe528a4df1cdc2e77f5 Author: Jon Paul Maloy Date: Thu Nov 19 14:30:40 2015 -0500 tipc: move linearization of buffers to generic code In commit 5cbb28a4bf65c7e4 ("tipc: linearize arriving NAME_DISTR and LINK_PROTO buffers") we added linearization of NAME_DISTRIBUTOR, LINK_PROTOCOL/RESET and LINK_PROTOCOL/ACTIVATE to the function tipc_udp_recv(). The location of the change was selected in order to make the commit easily appliable to 'net' and 'stable'. We now move this linearization to where it should be done, in the functions tipc_named_rcv() and tipc_link_proto_rcv() respectively. Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/link.c | 2 ++ net/tipc/name_distr.c | 1 + net/tipc/udp_media.c | 5 ----- 3 files changed, 3 insertions(+), 5 deletions(-) commit 1971dfb7e8f1cb9d26e8c37fee9e85a7fba6cde4 Author: Masahiro Yamada Date: Thu Nov 5 18:02:34 2015 +0900 clk: fix a typo in comment block of struct clk_rate_request Signed-off-by: Masahiro Yamada Signed-off-by: Stephen Boyd include/linux/clk-provider.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2dd52d7f6f9d9d03a82a68040ac3d221dd79af94 Author: Arnd Bergmann Date: Thu Nov 12 15:24:29 2015 +0100 clk: st: avoid uninitialized variable use quadfs_pll_fs660c32_round_rate prints a few structure members that are never initialized, and also doesn't print the only one it cares about. We get a gcc warning about the ones that are printed: clk/st/clkgen-fsyn.c:560:93: warning: 'params.sdiv' may be used uninitialized in this function clk/st/clkgen-fsyn.c:560:93: warning: 'params.mdiv' may be used uninitialized in this function clk/st/clkgen-fsyn.c:560:93: warning: 'params.pe' may be used uninitialized in this function clk/st/clkgen-fsyn.c:560:93: warning: 'params.nsdiv' may be used uninitialized in this function This changes the code to no longer print uninitialized data, and for good measure it also prints the ndiv member that is being set. Signed-off-by: Arnd Bergmann Fixes: 5f7aa9071e93 ("clk: st: Support for QUADFS inside ClockGenB/C/D/E/F") Acked-by: Gabriel Fernandez Signed-off-by: Stephen Boyd drivers/clk/st/clkgen-fsyn.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit d7a81d847bce48ce92c937bfb2be5a86f4112f8f Author: Alexandre Belloni Date: Tue Nov 17 12:26:33 2015 +0100 clk: at91: Revert "keep slow clk enabled to prevent system hang" 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. Now that the slow clock is taken properly by the drivers, this workaround is not necessary anymore, revert it. Signed-off-by: Alexandre Belloni Acked-by: Michael Turquette Signed-off-by: Stephen Boyd drivers/clk/at91/clk-slow.c | 29 ----------------------------- 1 file changed, 29 deletions(-) commit 1382ea631ddddb634850a3795527db0feeff5aaf Author: Loc Ho Date: Thu Nov 19 12:20:30 2015 -0700 clk: xgene: Fix divider with non-zero shift value The X-Gene clock driver missed the divider shift operation when set the divider value. Signed-off-by: Loc Ho Fixes: 308964caeebc ("clk: Add APM X-Gene SoC clock driver") Signed-off-by: Stephen Boyd drivers/clk/clk-xgene.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 6dc669a22c77ad9c812bef82e186b3ab254470cb Author: Jacob Siverskog Date: Fri Nov 20 19:03:13 2015 +0100 clk: si5351: Add PLL soft reset This is according to figure 12 ("I2C Programming Procedure") in "Si5351A/B/C Data Sheet" (https://www.silabs.com/Support%20Documents/TechnicalDocs/Si5351-B.pdf). Without the PLL soft reset, we were unable to get three outputs working at the same time. According to Silicon Labs support, performing PLL soft reset will only be noticeable if the PLL parameters have been changed. Signed-off-by: Jacob Siverskog Signed-off-by: Jens Rudberg Acked-by: Sebastian Hesselbarth Signed-off-by: Stephen Boyd drivers/clk/clk-si5351.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 730b5ec8ac3c2b0532edf0cc0291d29fa500a712 Merge: 49abc6c 3f58b70 Author: Mark Brown Date: Fri Nov 20 18:23:26 2015 +0000 Merge branch 'fix/rt5645' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-rt5645 commit d599af65fda384b5e91780485f243c9f2d3e757d Author: Mika Westerberg Date: Fri Nov 20 13:55:21 2015 +0200 spi: pxa2xx: Remove redundant call to lpss_ssp_setup() in probe Commit 8b136baa5892 ("spi: pxa2xx: Detect number of enabled Intel LPSS SPI chip select signals") added a block where lpss_ssp_setup() gets called again for Intel LPSS SPI host controllers before checking number of chip selects from the capabilities register. There is no point in calling the function twice in probe so remove the first call. Reported-by: Aaron Lu Signed-off-by: Mika Westerberg Acked-by: Jarkko Nikula Signed-off-by: Mark Brown drivers/spi/spi-pxa2xx.c | 3 --- 1 file changed, 3 deletions(-) commit d8bd64c1514ed5dca1c864b24a08d3314829eeb8 Author: Jon Mason Date: Fri Nov 20 10:17:20 2015 -0500 ARM64: dts: enable clock support for Broadcom NS2 Add device tree entries for clock support for Broadcom Northstar 2 SoC Signed-off-by: Jon Mason Reviewed-by: Ray Jui Signed-off-by: Florian Fainelli arch/arm64/boot/dts/broadcom/ns2.dtsi | 80 ++++++++++++++++++++++++++++++++++- 1 file changed, 79 insertions(+), 1 deletion(-) commit da3f974263a81c03b699b9d6ef2684c259526fde Author: Jon Mason Date: Fri Nov 20 10:17:19 2015 -0500 ARM: dts: enable clock support for Broadcom NSP Replace current device tree dummy clocks with real clock support for Broadcom Northstar Plus SoC Signed-off-by: Jon Mason Reviewed-by: Ray Jui Signed-off-by: Florian Fainelli arch/arm/boot/dts/bcm-nsp.dtsi | 81 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 66 insertions(+), 15 deletions(-) commit cdc36b22f0e4b8badf3db14395f0aa44dcbce4b3 Author: Jon Mason Date: Fri Nov 20 10:17:18 2015 -0500 ARM: dts: enable clock support for BCM5301X Replace current device tree dummy clocks with real clock support for Broadcom Northstar SoCs. Signed-off-by: Jon Mason Reviewed-by: Ray Jui Signed-off-by: Florian Fainelli arch/arm/boot/dts/bcm5301x.dtsi | 92 +++++++++++++++++++++++++++++++---------- 1 file changed, 71 insertions(+), 21 deletions(-) commit 07c55d395041c5b4cbdffd39a1bba41a61f87fe9 Author: Songjun Wu Date: Thu Nov 19 11:45:32 2015 +0800 ASoC: Atmel: ClassD: supports mono audio Modify the code to support mono audio. Signed-off-by: Songjun Wu Signed-off-by: Mark Brown sound/soc/atmel/atmel-classd.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit c51eb1c66e55bf23af4a10dd6e71c5a82c0e6d81 Author: Kuninori Morimoto Date: Thu Nov 19 04:22:56 2015 +0000 ASoC: rsnd: tidyup void* cast for 64bit compiler 64bit compiler indicates this without this patch linux/sound/soc/sh/rcar/core.c: In function 'rsnd_probe': linux/sound/soc/sh/rcar/core.c:1002:16: warning: cast from pointer to\ integer of different size [-Wpointer-to-int-cast] Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 2 +- sound/soc/sh/rcar/rsnd.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 5547ba616b964de05ba48ec4d529ed1ac22a4326 Author: Kuninori Morimoto Date: Thu Nov 19 04:22:14 2015 +0000 ASoC: ak4613: tidyup vendor prefix from ak4613 to asahi-kasei a3af0c65("ASoC: ak4613: add single-end optional property for IN/OUT pins") added IN/OUT pin single-end optional property, but it used "ak4613" as vendor prefix. This patch fixup to asahi-kasei. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown Documentation/devicetree/bindings/sound/ak4613.txt | 16 ++++++++-------- sound/soc/codecs/ak4613.c | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) commit f307a7e9b7af401d459d26f98497c9cec766a41f Author: James Ban Date: Thu Nov 19 09:59:15 2015 +0900 regulator: pv88060: new regulator driver This is the driver for the Powerventure PV88060 BUCKs and LDOs regulator. It communicates via an I2C bus to the device. Signed-off-by: James Ban Signed-off-by: Mark Brown .../devicetree/bindings/regulator/pv88060.txt | 124 ++++++ drivers/regulator/Kconfig | 8 + drivers/regulator/Makefile | 1 + drivers/regulator/pv88060-regulator.c | 437 +++++++++++++++++++++ drivers/regulator/pv88060-regulator.h | 69 ++++ 5 files changed, 639 insertions(+) commit d1afdf34fc17bd2e1c96dc6196c562fa8906a026 Author: Arnd Bergmann Date: Fri Nov 20 10:32:44 2015 +0100 ASoC: pxa: remove incorrect do_div() call The new optimized do_div implementation (now in asm-generic/next) exposes a glitch in the brownstone audio driver by producing a compile-time warning: sound/soc/pxa/brownstone.c: In function 'brownstone_wm8994_hw_params': sound/soc/pxa/brownstone.c:67:85: warning: comparison of distinct pointer types lacks a cast sound/soc/pxa/brownstone.c:67:10125: warning: right shift count >= width of type [-Wshift-count-overflow] sound/soc/pxa/brownstone.c:67:10254: warning: passing argument 1 of '__div64_32' from incompatible pointer type [-Wincompatible-pointer-types] The driver just divides two plain integer values, so it should not use do_div to start with, but has apparently done so ever since the code was first merged. This replaces do_div with a simple division operator. Signed-off-by: Arnd Bergmann Signed-off-by: Mark Brown sound/soc/pxa/brownstone.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit fa731ac7ea04a7d3a5c6d2f568132478c02a83b3 Author: Arnd Bergmann Date: Fri Nov 20 15:24:39 2015 +0100 regulator: core: avoid unused variable warning The second argument of the mutex_lock_nested() helper is only evaluated if CONFIG_DEBUG_LOCK_ALLOC is set. Otherwise we get this build warning for the new regulator_lock_supply function: drivers/regulator/core.c: In function 'regulator_lock_supply': drivers/regulator/core.c:142:6: warning: unused variable 'i' [-Wunused-variable] To avoid the warning, this restructures the code to make it both simpler and to move the 'i++' outside of the mutex_lock_nested call, where it is now always used and the variable is not flagged as unused. We had some discussion about changing mutex_lock_nested to an inline function, which would make the code do the right thing here, but in the end decided against it, in order to guarantee that mutex_lock_nested() does not introduced overhead without CONFIG_DEBUG_LOCK_ALLOC. Signed-off-by: Arnd Bergmann Fixes: 9f01cd4a915 ("regulator: core: introduce function to lock regulators and its supplies") Link: http://permalink.gmane.org/gmane.linux.kernel/2068900 Signed-off-by: Mark Brown drivers/regulator/core.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) commit 637d801e0bb802dc18520ed6b7377acb2a9732ee Author: Kuninori Morimoto Date: Wed Oct 28 08:05:28 2015 +0900 arm64: renesas: salvator-x: enable I2C Signed-off-by: Kuninori Morimoto Signed-off-by: Simon Horman Acked-by: Geert Uytterhoeven arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 72eaec21b0cf106dbb284cc855aef3df2dcc9cf6 Author: LABBE Corentin Date: Fri Nov 20 08:45:16 2015 +0100 mtd: nand: atmel_nand: constify atmel_nand_caps structures All atmel_nand_caps are never modified, consitify them. Signed-off-by: LABBE Corentin Acked-by: Josh Wu Signed-off-by: Brian Norris drivers/mtd/nand/atmel_nand.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 32bc0c51be7c9db3762cbb34af465676c769886b Author: Kuninori Morimoto Date: Wed Oct 28 08:05:27 2015 +0900 arm64: renesas: r8a7795: add I2C support Signed-off-by: Kuninori Morimoto [geert: aAdd clock-output-names properties] Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman Acked-by: Geert Uytterhoeven arch/arm64/boot/dts/renesas/r8a7795.dtsi | 87 ++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) commit c0c886e168b51b24379a3f4d302f18c4df00d629 Author: Kuninori Morimoto Date: Fri Sep 18 02:07:18 2015 +0000 arm64: defconfig: Enable Renesas R-Car I2C Controller Signed-off-by: Kuninori Morimoto Acked-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm64/configs/defconfig | 1 + 1 file changed, 1 insertion(+) commit 0dc18e252b5341edc2770f0a9a8ce4554a86a73a Author: Simon Horman Date: Mon Nov 2 13:31:47 2015 +0900 arm64: defconfig: enable EthernetAVB This is present on the Renesas r8a7795 SoC and may be used by the Salvator-X board. Also enable MICREL_PHY which is used on the Salvator-X board. Signed-off-by: Simon Horman Acked-by: Geert Uytterhoeven arch/arm64/configs/defconfig | 2 ++ 1 file changed, 2 insertions(+) commit 316d9df674e4373711943fa3de34c6d1397cac66 Author: Takeshi Kihara Date: Thu Oct 29 08:09:19 2015 +0900 arm64: defconfig: Enable GPIO of Renesas R-Car Gen3 SoC Enable GPIO for Renesas R-Car Gen3 SoC. Signed-off-by: Takeshi Kihara Signed-off-by: Simon Horman Acked-by: Geert Uytterhoeven arch/arm64/configs/defconfig | 1 + 1 file changed, 1 insertion(+) commit 10ca6db79ab07021e74aad99631a276b954a554e Author: Geert Uytterhoeven Date: Mon Nov 2 13:31:48 2015 +0900 arm64: renesas: salvator-x: Setup ethernet0 alias for U-Boot Add an ethernet0 alias for the wired network card so that U-Boot can find the device-node and add an appropriate "local-mac-address" property. Signed-off-by: Geert Uytterhoeven Acked-by: Laurent Pinchart Signed-off-by: Simon Horman arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 1 + 1 file changed, 1 insertion(+) commit b2407c566ba29215aaf0d2983908d49ccb9e5c87 Author: Simon Horman Date: Mon Nov 2 13:31:46 2015 +0900 arm64: dts: r8a7795: enable nfs root on Salvator-X board As has been the practice for boards for 32bit ARM Renesas SoCs Signed-off-by: Simon Horman Acked-by: Geert Uytterhoeven arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6fa501c549aa170b790bf68da6ffed8fe1efdaee Author: Kazuya Mizuguchi Date: Mon Nov 2 13:31:45 2015 +0900 arm64: dts: r8a7795: enable EthernetAVB on Salvator-X Signed-off-by: Kazuya Mizuguchi Signed-off-by: Simon Horman arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) commit a92843c8a6f8c039ff671a27e137f39c0846797c Author: Kazuya Mizuguchi Date: Mon Nov 2 13:31:44 2015 +0900 arm64: dts: r8a7795: add EthernetAVB device node Signed-off-by: Kazuya Mizuguchi Signed-off-by: Simon Horman Acked-by: Geert Uytterhoeven arch/arm64/boot/dts/renesas/r8a7795.dtsi | 42 ++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) commit c1de13574d7880c7321abe789ef02fa540631eaf Author: Masahiro Yamada Date: Fri Nov 20 14:38:49 2015 +0900 clk: use IS_ERR_OR_NULL(hw) instead of !hw || IS_ERR(hw) This minor refactoring does not change the function behavior. Signed-off-by: Masahiro Yamada Signed-off-by: Stephen Boyd drivers/clk/clk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c736c4e11e9def555482f3f626254594d3f11f9c Author: Masahiro Yamada Date: Fri Nov 20 16:36:19 2015 +0900 clk: remove redundant negative index check in of_clk_get_parent_name() This if-block can be dropped because the of_parse_phandle_with_args() in the following line returns -EINVAL for negative index. Signed-off-by: Masahiro Yamada Signed-off-by: Stephen Boyd drivers/clk/clk.c | 3 --- 1 file changed, 3 deletions(-) commit 59fe66313a41843bc4c237275e64f81cde121ac8 Author: Sudip Mukherjee Date: Fri Nov 20 14:22:28 2015 +0530 clk: versatile: remove unneeded error message If kzalloc fails we will already have many messages in the log and we do not need another message to know that kzalloc for sp810 has failed. Signed-off-by: Sudip Mukherjee Signed-off-by: Stephen Boyd drivers/clk/versatile/clk-sp810.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 12ded5cae60f62eddaed7cc8f38f7a830571fc3d Merge: 7521cd4 3fb2d49 Author: David S. Miller Date: Fri Nov 20 12:14:53 2015 -0500 Merge branch 'bnx2x-stats' Yuval Mintz says: ==================== bnx2x: Statistics patch series This series contains 2 small statistics-related patches, first adding a new SW statistics and the other exposing port stats for multi-function devices. Please consider applying this series to `net-next'. ==================== Signed-off-by: David S. Miller commit 3fb2d4926c9363791a61404ac4d3b66f17244f00 Author: Yuval Mintz Date: Thu Nov 19 17:04:36 2015 +0200 bnx2x: Show port statistics in Multi-function Today, port statistics are being presented when using `ethool -S' only for single-function devices, but there are some port statistics which are crucial for analyzing bottle-necks. E.g., HW Rx discards due to lack of buffer space [when device isn't handling ingress traffic fast enough]. Judging the pros and cons, it was decided that in-order to better support automatic dump-gathering tools, bnx2x should no longer hide those stats. This leaves only VFs lacking the port statistics. Signed-off-by: Yuval Mintz Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 6a5311982e423ddacc2e39e1e32f4371756752d6 Author: Yuval Mintz Date: Thu Nov 19 17:04:35 2015 +0200 bnx2x: Add new SW stat 'tx_exhaustion_events' Driver already has an internal counter for number of times a given queue had to be stopped due to Tx ring exhaustion. This add the counter to the statistics presented by driver, e.g., by using `ethtool -S'. Signed-off-by: Yuval Mintz Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 267b62a969511236e91121cd27f4cc1558385855 Author: Danny Huang Date: Thu Jun 18 17:28:27 2015 -0400 clk: tegra: pll: Update PLLM handling PLLM is fixed for Tegra30 up through Tegra114. Starting with Tegra124 PLLM can change rate. Mark PLLM as TEGRA_PLL_FIXED for the generations where it should be. Modify the check in clk_pll_round_rate() and clk_pll_recalc_rate() to allow for the non-fixed version to return the correct rate. Note that there is no change for Tegra20. This is because PLLM is not distinguished in that driver, and adding either the PLLM or FIXED_RATE flags will cause potential problems. PLLM never supported dynamic ramping. On Tegra20 and Tegra30, there is no dynamic ramping at all, and on Tegra114, Tegra124 and Tegra132, only PLLX and PLLC support dynamic ramping, so we can go ahead and remove the specialized pllm_ops. Signed-off-by: Danny Huang Signed-off-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-pll.c | 56 +++++----------------------------------- drivers/clk/tegra/clk-tegra114.c | 3 ++- drivers/clk/tegra/clk-tegra30.c | 2 +- 3 files changed, 10 insertions(+), 51 deletions(-) commit 86c679a52294d4c4b989903a75e31495c04d688a Author: Rhyland Klein Date: Thu Jun 18 17:28:34 2015 -0400 clk: tegra: pll: Fix _pll_ramp_calc_pll logic and _calc_dynamic_ramp_rate This removes the conversion from pdiv to hw, which is already taken care of by _get_table_rate before this code is run. This avoids incorrectly converting pdiv to hw twice and getting the wrong hw value. Also set the input_rate in the freq cfg in _calc_dynamic_ramp_rate while setting all the other fields. In order to prevent regressions on earlier SoC generations, all of the frequency tables need to be updated so that they contain the actual divider values. If they contain hardware values these would be converted to hardware values again, yielding the wrong value. Signed-off-by: Rhyland Klein [treding@nvidia.com: fix regressions on earlier SoC generations] Signed-off-by: Thierry Reding drivers/clk/tegra/clk-pll.c | 91 +++++++++------- drivers/clk/tegra/clk-tegra114.c | 122 ++++++++++++--------- drivers/clk/tegra/clk-tegra124.c | 93 ++++++++++------ drivers/clk/tegra/clk-tegra20.c | 150 +++++++++++++------------- drivers/clk/tegra/clk-tegra30.c | 227 ++++++++++++++++++++------------------- 5 files changed, 379 insertions(+), 304 deletions(-) commit fde207eb15115f1081e589267ebdf442aa54cda5 Author: Bill Huang Date: Thu Jun 18 17:28:26 2015 -0400 clk: tegra: pll: Add code to handle if resets are supported by PLL If a PLL has a reset_reg specified, properly handle that in the enable/disable logic paths. Reviewed-by: Benson Leung Signed-off-by: Bill Huang Signed-off-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-pll.c | 12 ++++++++++++ drivers/clk/tegra/clk.h | 4 ++++ 2 files changed, 16 insertions(+) commit 407254da291c03c32109881ca8cbda5607714a8f Author: Rhyland Klein Date: Thu Jun 18 17:28:25 2015 -0400 clk: tegra: pll: Add logic for out-of-table rates for T210 For Tegra210, the logic to calculate out-of-table rates is different from previous generations. Add callbacks that can be overridden to allow for different ways of calculating rates. Default to _cal_rate when not specified. This patch also includes a new flag which is used to set which method of fixed_mdiv calculation is used. The new method for calculating the fixed divider value for M can be more accurate especially when fractional dividers are in play. This allows for older chipsets to use the existing logic and new generations to use a newer version which may work better for them. Based on original work by Aleksandr Frid Reviewed-by: Benson Leung Signed-off-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-pll.c | 24 ++++++++++++++++++++++-- drivers/clk/tegra/clk.h | 13 +++++++++++++ 2 files changed, 35 insertions(+), 2 deletions(-) commit d907f4b4a178b7bbc8edc67191f63155d6492b80 Author: Rhyland Klein Date: Thu Jun 18 17:28:24 2015 -0400 clk: tegra: pll: Add logic for handling SDM data This adds logic for taking SDM_DIN (Sigma Delta Modulator) setting into the equation to calculate the effective N value for PLL which supports fractional divider. The effective N = NDIV + 1/2 + SDM_DIN/2^13, where NDIV is the integer feedback divider. Reviewed-by: Benson Leung Signed-off-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-pll.c | 66 ++++++++++++++++++++++++++++++++++++++++++++- drivers/clk/tegra/clk.h | 15 ++++++++++- 2 files changed, 79 insertions(+), 2 deletions(-) commit 3706b43629f5b9fd4efce192da40ffa9412e75ee Author: Rhyland Klein Date: Thu Jun 18 17:28:23 2015 -0400 clk: tegra: pll: Don't unconditionally set LOCK flags SoC specific drivers should define the appropriate flags for each PLL rather than relying on the registration functions to automatically set flags on their behalf. This will properly allow for changes between SoC generations where flags might be different and allow sharing the same logic functions. Reviewed-by: Benson Leung Signed-off-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-pll.c | 11 ++--------- drivers/clk/tegra/clk-tegra114.c | 23 +++++++++++++---------- drivers/clk/tegra/clk-tegra124.c | 24 +++++++++++++++--------- drivers/clk/tegra/clk-tegra20.c | 18 ++++++++++-------- drivers/clk/tegra/clk-tegra30.c | 24 +++++++++++++++--------- 5 files changed, 55 insertions(+), 45 deletions(-) commit 56fd27b31f1a216623f285bb77b4bcb6129e84c2 Author: Bill Huang Date: Thu Jun 18 17:28:22 2015 -0400 clk: tegra: pll: Change misc_reg count from 3 to 6 New SoC's may have more than 3 MISC registers, so bump up the array size and use a #define to be more informative about the value. Reviewed-by: Benson Leung Signed-off-by: Bill Huang Signed-off-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 204c85d124bd51c0b1c70f1d6b0d853389179d38 Author: Rhyland Klein Date: Thu Jun 18 17:28:21 2015 -0400 clk: tegra: pll: Update warning message Swap out the generic WARN_ON with a WARN which gives more information about what is happening. Reviewed-by: Benson Leung Signed-off-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-pll.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 7db864c9deb28b1352fdf8d2b72cd54c78ed7d9c Author: Rhyland Klein Date: Thu Jun 18 17:28:20 2015 -0400 clk: tegra: pll: Simplify clk_enable_path Instead of having multiple similar wrapper functions for _clk_pll_[enable|disable], we can simplify it to single wrappers and use checks to avoid the logic we don't want to use. Reviewed-by: Benson Leung Signed-off-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-pll.c | 76 +++++++++++++-------------------------------- 1 file changed, 22 insertions(+), 54 deletions(-) commit 6583a6309e83e89f00e104c4ffd9df01d2e5a9f8 Author: Rhyland Klein Date: Thu Jun 18 17:28:19 2015 -0400 clk: tegra: pll: Add tegra_pll_wait_for_lock to clk header Create a wrapper interface to make use of the existing clk_pll_wait_for_lock. This will be useful for implementations of callbacks in Tegra SoC specific clock drivers. Reviewed-by: Benson Leung Signed-off-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-pll.c | 5 +++++ drivers/clk/tegra/clk.h | 1 + 2 files changed, 6 insertions(+) commit dc37fec48314d942003a414a4bab38f4688f09a3 Author: Rhyland Klein Date: Thu Jun 18 17:28:18 2015 -0400 clk: tegra: periph: Add new periph clks and muxes for Tegra210 Tegra210 has significant differences in muxes for peripheral clocks. One of the most important changes is that pll_m isn't to be used as a source for peripherals. Therefore, we need to define the new muxes and new clocks to use those muxes for Tegra210 support. Tegra210 has some differences in the PLLP clock tree: - Four new output clocks: PLLP_OUT_CPU, PLLP_OUT_ADSP, PLLP_OUT_HSIO, and PLLP_OUT_XUSB. - PLLP_OUT2 is fixed at 1/2 the rate of PLLP_VCO. - PLLP_OUT4 is the child of PLLP_OUT_CPU. Update the xusb_hs_src mux and add the xusb_ssp_src mux for Tegra210. Including work by Andrew Bresticker and Bill Huang . Signed-off-by: Rhyland Klein Signed-off-by: Thierry Reding drivers/clk/tegra/clk-id.h | 68 ++++++- drivers/clk/tegra/clk-tegra-periph.c | 371 ++++++++++++++++++++++++++++++++++- 2 files changed, 434 insertions(+), 5 deletions(-) commit 385f9adf625f706ea3db80f08d723bd0dd5d1b03 Author: Thierry Reding Date: Thu Nov 19 16:34:06 2015 +0100 clk: tegra: Constify pdiv-to-hw mappings This is static data that is never modified, so make it const. Signed-off-by: Thierry Reding drivers/clk/tegra/clk-pll.c | 6 +++--- drivers/clk/tegra/clk-tegra114.c | 8 ++++---- drivers/clk/tegra/clk-tegra124.c | 10 +++++----- drivers/clk/tegra/clk-tegra20.c | 2 +- drivers/clk/tegra/clk-tegra30.c | 2 +- drivers/clk/tegra/clk.h | 2 +- 6 files changed, 15 insertions(+), 15 deletions(-) commit c9bb9aedb04986e55f269484556330f5b74d76ff Author: Michael van Slingerland Date: Fri Nov 20 14:59:10 2015 +0100 ARM: dts: sun5i: Add i2c axp152 pmic support for Auxtek T004 boards Add a node describing the AXP152 pmic used on Auxtek T004 boards. Acked-by: Chen-Yu Tsai Signed-off-by: Michael van Slingerland Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 0f95851bbc9997bc7ee94180b4058bf376b4473a Author: Hans de Goede Date: Fri Nov 20 14:59:09 2015 +0100 ARM: dts: sun4i: Add backlight node to pov protab2 ips9 tablet Add a node describing the lcd panel backlight on the pov protab2 ips9 tablet. Signed-off-by: Hans de Goede Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10-pov-protab2-ips9.dts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit d282e2b383e3f41a7758e8cbf3076091ef9d9447 Author: Arnd Bergmann Date: Thu Nov 19 15:33:41 2015 +0100 SCSI: initio: remove duplicate module device table The initio driver has for many years had two copies of the same module device table. One of them is also used for registering the other driver, the other one is entirely useless after the large scale cleanup that Alan Cox did back in 2007. The compiler warns about this whenever the driver is built-in: drivers/scsi/initio.c:131:29: warning: 'i91u_pci_devices' defined but not used [-Wunused-variable] This removes the extraneous table and the warning. Signed-off-by: Arnd Bergmann Fixes: 72d39fea901 ("[SCSI] initio: Convert into a real Linux driver and update to modern style") Reviewed-by: Christoph Hellwig Signed-off-by: Martin K. Petersen drivers/scsi/initio.c | 16 ---------------- 1 file changed, 16 deletions(-) commit 45f0cf84ac7096e76a6fffa17c43d25b50d86d05 Author: Hans de Goede Date: Fri Nov 20 14:59:08 2015 +0100 ARM: dts: sun5i: Add backlight node to UTOO P66 tablet Add a node describing the lcd panel backlight on the UTOO P66 tablet. Signed-off-by: Hans de Goede Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun5i-a13-utoo-p66.dts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 8a7b89d1f674c5202908935267fcade13c83f76e Author: Hans de Goede Date: Fri Nov 20 14:59:07 2015 +0100 ARM: dts: sun4i: Add backlight node to iNet1 tablet Add a node describing the lcd panel backlight on the iNet1 tablet. Signed-off-by: Hans de Goede Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10-inet1.dts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit 7521cd43ef04e0353ba499f528c91c34108a1169 Merge: bdc17fa a8acce6 Author: David S. Miller Date: Fri Nov 20 11:31:27 2015 -0500 Merge branch 'ppp-kill-zombie-state' Guillaume Nault says: ==================== ppp: Remove PPPOX_ZOMBIE socket state Several issues have been found lately wrt. the PPPOX_ZOMBIE socket state. This state is now only set upon reception of a PADT to stop further transmissions. However this is redundant with the PADT workqueue mechanism introduced by 287f3a943fef ("pppoe: Use workqueue to die properly when a PADT is received"). We can thus simplify pppox socket state handling by getting rid of PPPOX_ZOMBIE entirely. ==================== Signed-off-by: David S. Miller commit a8acce6aa584aa731a2bed240bcd8dc955f01414 Author: Guillaume Nault Date: Thu Nov 19 12:53:21 2015 +0100 ppp: remove PPPOX_ZOMBIE socket state PPPOX_ZOMBIE is never set anymore. Signed-off-by: Guillaume Nault Signed-off-by: David S. Miller drivers/net/ppp/pppoe.c | 4 ++-- drivers/net/ppp/pppox.c | 2 +- include/linux/if_pppox.h | 1 - 3 files changed, 3 insertions(+), 4 deletions(-) commit 8734e485fed5fc5ce8b03aebfc2681e2de662838 Author: Guillaume Nault Date: Thu Nov 19 12:52:56 2015 +0100 ppp: don't set sk_state to PPPOX_ZOMBIE in pppoe_disc_rcv() Since 287f3a943fef ("pppoe: Use workqueue to die properly when a PADT is received"), pppoe_disc_rcv() disconnects the socket by scheduling pppoe_unbind_sock_work(). This is enough to stop socket transmission and makes the PPPOX_ZOMBIE state uncessary. Signed-off-by: Guillaume Nault Signed-off-by: David S. Miller drivers/net/ppp/pppoe.c | 22 ++-------------------- 1 file changed, 2 insertions(+), 20 deletions(-) commit a292e576f533070b39547077a5662d33f6c3ed07 Author: Hans de Goede Date: Fri Nov 20 14:47:11 2015 +0100 ARM: dts: sun4i: Enable onboard codec used on the iNet1 tablet The iNet1 tablet uses the A10's integrated audio codec, enable it. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10-inet1.dts | 4 ++++ 1 file changed, 4 insertions(+) commit bdc17fad6f8ea2dc8b260449cca4b4715bd2fb8b Merge: f99bf20 b07a966 Author: David S. Miller Date: Fri Nov 20 11:06:03 2015 -0500 Merge branch 'mlxsw-vlan' Jiri Pirko says: ==================== mlxsw: small driver update Couple of VLAN-related patches. ==================== Signed-off-by: David S. Miller commit b07a966c700761f86306925fe8aedf7d1060fa6e Author: Ido Schimmel Date: Thu Nov 19 12:27:40 2015 +0100 mlxsw: spectrum: Add error paths to __mlxsw_sp_port_vlans_add The operation of adding VLANs on a port via switchdev ops can fail and we need to be prepared for it. If we do not rollback hardware operations following a failure, hardware and software will remain in an inconsistent state. Solve that by adding suitable error paths to __mlxsw_sp_port_vlans_add. Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller .../ethernet/mellanox/mlxsw/spectrum_switchdev.c | 61 ++++++++++++++++------ 1 file changed, 46 insertions(+), 15 deletions(-) commit 3b7ad5ece49fe72498b50d28253fd39daead1e14 Author: Ido Schimmel Date: Thu Nov 19 12:27:39 2015 +0100 mlxsw: spectrum: Unify setting of HW VLAN filters When adding or deleting VLANs from a bridged port, HW VLAN filters must be set accordingly. Instead of having the same code in both add and delete functions, just wrap it in a function and call it with the appropriate parameters. Signed-off-by: Ido Schimmel Signed-off-by: Elad Raz Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller .../ethernet/mellanox/mlxsw/spectrum_switchdev.c | 58 +++++++++++++--------- 1 file changed, 34 insertions(+), 24 deletions(-) commit 06c071f68d8123bef0f152e5d2c7272920597a7e Author: Ido Schimmel Date: Thu Nov 19 12:27:38 2015 +0100 mlxsw: spectrum: Use correct PVID value when removing VLANs When removing a range of VLANs in which PVID is a member we should use the correct PVID value instead of some VLAN in the range. Also, change two print statements to use 'dev' instead of 'mlxsw_sp_port->dev', as it's already used in other print statements in the function. Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller .../net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) commit f99bf205dab026ef434520198af2fcb7dae0efdb Author: Daniel Borkmann Date: Thu Nov 19 11:56:22 2015 +0100 bpf: add show_fdinfo handler for maps Add a handler for show_fdinfo() to be used by the anon-inodes backend for eBPF maps, and dump the map specification there. Not only useful for admins, but also it provides a minimal way to compare specs from ELF vs pinned object. Signed-off-by: Daniel Borkmann Acked-by: Alexei Starovoitov Acked-by: Hannes Frederic Sowa Signed-off-by: David S. Miller kernel/bpf/syscall.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) commit 7b5dc0dd59a8e5cf837c941ab10a565dcca76603 Author: Jon Ringle Date: Wed Nov 18 16:22:21 2015 -0500 net: encx24j600: move rev announcement to probe function When encx24j600 is open and closed many times due to userspace polling the interface, the log gets noise with this log message. Moving this to encx24j600_spi_probe function where it belongs. Signed-off-by: Jon Ringle Signed-off-by: David S. Miller drivers/net/ethernet/microchip/encx24j600.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit e241657de0ced9b40cad126f461b23a8d6c1b563 Author: Sugar Zhang Date: Tue Nov 10 15:32:09 2015 +0800 ARM: dts: rockchip: add channels properties for i2s add playback and capture properties to compatible various chips. Signed-off-by: Sugar Zhang Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3066a.dtsi | 6 ++++++ arch/arm/boot/dts/rk3188.dtsi | 2 ++ arch/arm/boot/dts/rk3288.dtsi | 2 ++ 3 files changed, 10 insertions(+) commit 0f684317a7e0e7b6075ebfa5311b0c106eb1b802 Author: Michael Ellerman Date: Tue Nov 3 21:39:52 2015 +1100 scripts/tags.sh: Teach tags about more powerpc macros Teach tags.sh about the powerpc PCI macros, eg. readl/writel etc. Signed-off-by: Michael Ellerman Signed-off-by: Michal Marek scripts/tags.sh | 1 + 1 file changed, 1 insertion(+) commit 3e14cd4c04cdb8296f478ed3e10d8d5ffbb7f262 Author: Chen Feng Date: Fri Nov 20 10:10:06 2015 +0800 arm64: dts: Add reset dts config for Hisilicon Hi6220 SoC Add reset controller for hi6220 hikey-board. Signed-off-by: Chen Feng Signed-off-by: Philipp Zabel arch/arm64/boot/dts/hisilicon/hi6220.dtsi | 1 + 1 file changed, 1 insertion(+) commit f59d23c2c0eb23194ffc16f640dfac4da938b6ac Author: Chen Feng Date: Fri Nov 20 10:10:05 2015 +0800 reset: hi6220: Reset driver for hisilicon hi6220 SoC Add reset driver for hi6220-hikey board,this driver supply deassert of IP on hi6220 SoC. Signed-off-by: Chen Feng Signed-off-by: Philipp Zabel drivers/reset/Kconfig | 1 + drivers/reset/Makefile | 1 + drivers/reset/hisilicon/Kconfig | 5 ++ drivers/reset/hisilicon/Makefile | 1 + drivers/reset/hisilicon/hi6220_reset.c | 108 +++++++++++++++++++++++++++++++++ 5 files changed, 116 insertions(+) commit 04d112690d2de4dada66952c0d29fc4b8eb82512 Author: Chen Feng Date: Fri Nov 20 10:10:04 2015 +0800 reset: hisilicon: document hisi-hi6220 reset controllers bindings Add DT bindings documentation for hi6220 SoC reset controller. Signed-off-by: Chen Feng Signed-off-by: Philipp Zabel Acked-by: Rob Herring .../bindings/reset/hisilicon,hi6220-reset.txt | 34 +++++++++++ include/dt-bindings/reset/hisi,hi6220-resets.h | 67 ++++++++++++++++++++++ 2 files changed, 101 insertions(+) commit 74d25721ee6f4bba2afc751bf20517fbe3f6d77b Author: Erin Lo Date: Tue Oct 20 14:34:31 2015 +0800 ARM: dts: mediatek: add MT2701 basic support This adds basic chip support for Mediatek 2701. Signed-off-by: Erin Lo [matthias.bgg@gmail.com: Fixed reg address of mt2701-timer] Signed-off-by: Matthias Brugger arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/mt2701-evb.dts | 29 ++++++++ arch/arm/boot/dts/mt2701.dtsi | 146 ++++++++++++++++++++++++++++++++++++++ arch/arm/mach-mediatek/mediatek.c | 1 + 4 files changed, 177 insertions(+) commit 02eca1737633728bdafb7ed43be7a2935e52a5d6 Author: Erin Lo Date: Tue Oct 20 14:34:30 2015 +0800 Document: DT: Add bindings for mediatek MT2701 SoC Platform This adds a DT binding documentation for the MT2701 SoC from Mediatek. Signed-off-by: Erin Lo Acked-by: Rob Herring Signed-off-by: Matthias Brugger Documentation/devicetree/bindings/arm/mediatek.txt | 4 ++++ .../bindings/interrupt-controller/mediatek,sysirq.txt | 1 + Documentation/devicetree/bindings/serial/mtk-uart.txt | 14 +++++++------- .../devicetree/bindings/timer/mediatek,mtk-timer.txt | 1 + Documentation/devicetree/bindings/watchdog/mtk-wdt.txt | 6 +++++- 5 files changed, 18 insertions(+), 8 deletions(-) commit 7bec0200ac214b5cba44e2c2c4385815be4b9f00 Author: Reinder de Haan Date: Sun Nov 15 20:46:13 2015 +0100 clk: sunxi: Add support for the H3 usb phy clocks The H3 has a usb-phy clk register which is similar to that of earlier SoCs, but with support for a larger number of phys. So we can simply add a new set of clk-data and a new compatible and be done with it. Acked-by: Chen-Yu Tsai Acked-by: Rob Herring Signed-off-by: Reinder de Haan Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard Documentation/devicetree/bindings/clock/sunxi.txt | 1 + drivers/clk/sunxi/clk-usb.c | 12 ++++++++++++ 2 files changed, 13 insertions(+) commit 05bdabe7ebc780e3cd9275f0f5795d337fa5acca Author: Fan Chen Date: Fri Aug 28 10:11:59 2015 +0800 arm64: dts: mediatek: mt8173 PSCI-1.0 support This patch adds psci comatible properties to support all mandatory functions of PSCI-1.0, PSCI-0.2 and PSCI-0.1, and system suspend can be supported in PSCI-1.0. Signed-off-by: Fan Chen Signed-off-by: Matthias Brugger arch/arm64/boot/dts/mediatek/mt8173.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 61aee93425149e2288c4ab1466847093af678de6 Author: YH Huang Date: Tue Oct 6 15:40:43 2015 +0800 arm64: dts: mt8173: add MT8173 display PWM driver support node Add display PWM node in mt8173-evb.dts and mt8173.dtsi. Signed-off-by: YH Huang Signed-off-by: Matthias Brugger arch/arm64/boot/dts/mediatek/mt8173-evb.dts | 13 +++++++++++++ arch/arm64/boot/dts/mediatek/mt8173.dtsi | 22 ++++++++++++++++++++++ 2 files changed, 35 insertions(+) commit b2c76e275f7b583ab718dc04805d79c8f25d036d Author: Daniel Kurtz Date: Fri Oct 2 23:05:19 2015 +0800 arm64: dts: mt8173: add timer node Add device node to enable GPT timer. Signed-off-by: Daniel Kurtz Signed-off-by: Eddie Huang Signed-off-by: Yingjoe Chen Signed-off-by: Matthias Brugger arch/arm64/boot/dts/mediatek/mt8173.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) commit 549e08a0a93442ab62e0aee8aeb8ae6a7f2b5273 Author: lixiubo Date: Fri Nov 20 18:06:30 2015 +0800 regmap: replace kmalloc with kmalloc_array Replace kmalloc with specialized function kmalloc_array when the size is a multiplication of : number * size Signed-off-by: lixiubo Signed-off-by: Mark Brown drivers/base/regmap/regcache-lzo.c | 4 ++-- drivers/base/regmap/regcache-rbtree.c | 4 ++-- drivers/base/regmap/regmap-irq.c | 5 +++-- 3 files changed, 7 insertions(+), 6 deletions(-) commit eeda1bd69d5d8a020ce191f717b94ca99707daad Author: lixiubo Date: Fri Nov 20 18:06:29 2015 +0800 regmap: replace kzalloc with kcalloc Replace kzalloc with specialized function kcalloc when the size is a multiplication of : number * sizeof Signed-off-by: lixiubo Signed-off-by: Mark Brown drivers/base/regmap/regcache-flat.c | 2 +- drivers/base/regmap/regcache-lzo.c | 2 +- drivers/base/regmap/regcache-rbtree.c | 5 +++-- drivers/base/regmap/regmap-irq.c | 8 ++++---- 4 files changed, 9 insertions(+), 8 deletions(-) commit 263350adb2235dbe7d38763812a9b05ab56795bc Author: Timo Sigurdsson Date: Fri Nov 20 02:46:19 2015 +0100 ARM: sunxi: Clean up sunxi_defconfig Clean up sunxi_defconfig by generating a fresh file via make sunxi_defconfig make savedefconfig While this moves around a few lines and removes unnecessary symbols, it doesn't introduce any functional changes. The resulting .config is identical before and after this patch. Signed-off-by: Timo Sigurdsson Signed-off-by: Maxime Ripard arch/arm/configs/sunxi_defconfig | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit c54075e2588ec19a54ae8fd718118f3f8d11896c Author: Timo Sigurdsson Date: Fri Nov 20 02:46:18 2015 +0100 ARM: sunxi: Really enable LRADC keys in sunxi_defconfig Commit be8becb81bdc ("ARM: sunxi_defconfig: Enable LRADC keys (KEYBOARD_SUN4I_LRADC)") added CONFIG_KEYBOARD_SUN4I_LRADC=y to sunxi_defconfig. However, it depends on CONFIG_KEYBOARD which is explicitly disabled in sunxi_defconfig. Hence, the LRADC keys were never actually enabled. Remove the line disabling CONFIG_KEYBOARD in order to really enable KEYBOARD_SUN4I_LRADC. Signed-off-by: Timo Sigurdsson Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/configs/sunxi_defconfig | 1 - 1 file changed, 1 deletion(-) commit 812c159eab1964e7adcdcbe52ba6c34dbe06adca Author: Timo Sigurdsson Date: Fri Nov 20 02:46:17 2015 +0100 ARM: sunxi: Re-enable SID driver in sunxi_defconfig Commit 3d0b16a66c8a ("nvmem: sunxi: Move the SID driver to the nvmem framework") moved the the sunxi SID driver to a new framework, but left sunxi_defconfig with the deprecated config symbol EEPROM_SUNXI_SID instead of the new symbol NVMEM_SUNXI_SID. Hence, re-enable the driver in sunxi_defconfig. Signed-off-by: Timo Sigurdsson Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/configs/sunxi_defconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 4b327b924bfa9b958d1bbd1438f531e618f03018 Author: Timo Sigurdsson Date: Thu Nov 19 22:33:43 2015 +0100 ARM: sunxi: Re-enable SID driver in multi_v7_defconfig Commit 3d0b16a66c8a ("nvmem: sunxi: Move the SID driver to the nvmem framework") moved the the sunxi SID driver to a new framework, but left multi_v7_defconfig with the deprecated config symbol EEPROM_SUNXI_SID instead of the new symbol NVMEM_SUNXI_SID. Hence, re-enable the driver in multi_v7_defconfig. Signed-off-by: Timo Sigurdsson Acked-by: Krzysztof Kozlowski Signed-off-by: Maxime Ripard arch/arm/configs/multi_v7_defconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 83e9e1f84074b8b416b475f24743c846fbc4ca5e Author: Chen-Yu Tsai Date: Tue Nov 17 00:38:28 2015 +0800 ARM: multi_v7_defconfig: Enable RSB and AXP20X related drivers as modules axp20x support has been split into 2 parts, I2C and RSB interface variants. Update the MFD_AXP20X symbol for I2C support. Also enable SUNXI_RSB MFD_AXP20X_RSB to support RSB variants. Build these drivers as modules. Keep MFD_AXP20X enabled for now, to ease migration for automated boot farms while the patches are being merged. This should be removed in the next release. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/configs/multi_v7_defconfig | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit f7d2d93eab2b3d099b1a7f671ee355fe63f8e1d9 Author: Chen-Yu Tsai Date: Tue Nov 17 00:38:27 2015 +0800 ARM: sunxi_defconfig: Update MFD_AXP20X symbol and enable MFD_AXP20X_RSB axp20x support has been split into 2 parts, I2C and RSB interface variants. Update the MFD_AXP20X symbol for I2C support, and also enable MFD_AXP20X_RSB to support RSB variants. Keep MFD_AXP20X enabled for now, to ease migration for automated boot farms while the patches are being merged. This should be removed in the next release. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/configs/sunxi_defconfig | 2 ++ 1 file changed, 2 insertions(+) commit aea4c39526132e01a6cb18462ad2c15e7f15da1b Author: Chen-Yu Tsai Date: Tue Nov 17 00:38:25 2015 +0800 ARM: dts: sun8i: Add simplefb node labels to reference at board level Some boards, such as tablets, have regulators providing power to parts of the display pipeline, like signal converters and LCD panels. Add labels to the simplefb device nodes so that we can reference them in the board dts files to add regulator supply properties. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun8i-a23-a33.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 29bb94bb4dc151024feb649422f3b2bccb37e97d Author: Imre Deak Date: Thu Nov 19 20:55:01 2015 +0200 drm/i915: take a power domain reference while checking the HDMI live status There are platforms that don't need the full GMBUS power domain (BXT) while others do (PCH, VLV/CHV). For optimizing this we would need to add a new power domain, but it's not clear how much we would benefit given the short time we hold the reference. So for now let's keep things simple. v2: - fix commit message, PCH won't take any redundant power resource after this change (Ville) Signed-off-by: Imre Deak Reviewed-by: Ville Syrjälä [fix commit message in v2 (Imre)] Link: http://patchwork.freedesktop.org/patch/msgid/1447959301-1263-2-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/intel_hdmi.c | 4 ++++ 1 file changed, 4 insertions(+) commit 69172f210e9fffaf8f5d85696b3b96e96e8234e5 Author: Imre Deak Date: Thu Nov 19 20:55:00 2015 +0200 drm/i915: take a power domain ref only when needed during HDMI detect Suggested by Ville. Signed-off-by: Imre Deak Reviewed-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1447959301-1263-1-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/intel_hdmi.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit dfa0c5faf1b8964fa508373232b4cb597a5c226b Author: Rasmus Villemoes Date: Sat Nov 14 22:08:08 2015 +0100 HID: core: use scnprintf in modalias_show() scnprintf() exists to provide these semantics, so we might as well use it. Signed-off-by: Rasmus Villemoes Signed-off-by: Jiri Kosina drivers/hid/hid-core.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 0b1804e3d6ee820303cd07fd5b9579db6110840b Author: Simon Wood Date: Thu Nov 19 16:42:15 2015 -0700 HID: hid-logitech-hidpp: G920 remove deadzones Ensure that the G920 is not given the default deadzones. Signed-off-by: Simon Wood Reviewed-by: Benjamin Tissoires Signed-off-by: Jiri Kosina drivers/hid/hid-logitech-hidpp.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit b466c1dd73d5303a313fb0c962e4eb5879bc1336 Author: Simon Wood Date: Thu Nov 19 16:42:14 2015 -0700 HID: Add vendor specific usage pages for Logitech G920 The Logitech G920 uses a couple of vendor specific usage pages, which results in incorrect number of axis/buttons being detected. This patch adds these pages to the 'ignore' list. Reported-by: Elias Vanderstuyft Signed-off-by: Simon Wood Reviewed-by: Benjamin Tissoires Signed-off-by: Jiri Kosina drivers/hid/hid-input.c | 4 ++++ include/linux/hid.h | 2 ++ 2 files changed, 6 insertions(+) commit 7f4b49fef6ffb5021c01a915c21b3221fd521e81 Author: Simon Wood Date: Thu Nov 19 16:42:13 2015 -0700 HID: hid-logitech-hidpp: Add range sysfs for Logitech G920 The G920 can adjust the amount of 'turn' it permits, this patch adds a sysfs file 'range' to control this. Signed-off-by: Simon Wood Reviewed-by: Benjamin Tissoires Signed-off-by: Jiri Kosina drivers/hid/hid-logitech-hidpp.c | 140 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 139 insertions(+), 1 deletion(-) commit 7bfd2927adcacac2930a2709a9bcc1231e5bba1c Author: Simon Wood Date: Thu Nov 19 16:42:12 2015 -0700 HID: hid-logitech-hidpp: Add basic support for Logitech G920 This patch adds basic support for the Logitech G920 wheel when in HID mode. This wheel 'speaks' the HID++ protocol, and therefor is driven with hid-logitech-hidpp. At this stage the driver only shows that it can communicate with the wheel by outputting the name discovered over HID++. The normal HID functions work to give input functionality using joystick/event interface. Note: in 'hidpp_probe()' we have to start the hardware to get packets flowing, the same might apply in future for other devices which don't use the unifying protocol. Signed-off-by: Simon Wood Reviewed-by: Benjamin Tissoires Signed-off-by: Jiri Kosina drivers/hid/hid-core.c | 1 + drivers/hid/hid-ids.h | 1 + drivers/hid/hid-logitech-hidpp.c | 71 +++++++++++++++++++++++++++++++--------- 3 files changed, 57 insertions(+), 16 deletions(-) commit a5ce8f5b12966d34623d6c20278b5b4da7a53675 Author: Simon Wood Date: Thu Nov 19 16:42:11 2015 -0700 HID: hid-logitech-hidpp: Add support for very long packets Patch add support for the 'very long' HID++ packets, which are 64 bytes in length. Signed-off-by: Simon Wood Reviewed-by: Benjamin Tissoires Signed-off-by: Jiri Kosina drivers/hid/hid-logitech-hidpp.c | 59 ++++++++++++++++++++++++++++++++-------- 1 file changed, 48 insertions(+), 11 deletions(-) commit 2f23985879c2fb2967e8bca77b1014b437a9b9ff Merge: 319645c 27b9d5a Author: Jiri Kosina Date: Fri Nov 20 10:28:40 2015 +0100 Merge branch 'for-dmitry/logitech-g920-merge-base' into for-4.5/logitech Pull the branch that has been established to be jointly merged to both hid.git and input.git, because both trees have different depending patches on top. Signed-off-by: Jiri Kosina commit 27b9d5a254dcbc6095404c1bab7c335419601eb8 Author: Simon Wood Date: Thu Nov 19 16:42:10 2015 -0700 INPUT: xpad: switch Logitech G920 Wheel into HID mode When plugged in the Logitech G920 wheel starts with USBID 046d:c261 and behaviors as a vendor specific class. If a 'magic' byte sequence is sent the wheel will detach and reconnect as a HID device with the USBID 046d:c262. Signed-off-by: Simon Wood Acked-by: Dmitry Torokhov Reviewed-by: Benjamin Tissoires Signed-off-by: Jiri Kosina drivers/input/joystick/xpad.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 406df15344cc54be9f6852917b19394c375c7b59 Author: Jiri Kosina Date: Fri Nov 20 10:16:06 2015 +0100 HID: add Benjamin Tissoires as designated reviewer / co-maintainer Benjamin has been helping a lot over time with reviewing patches flowing into HID subsystem. Let's make it official. Acked-by: Benjamin Tissoires Signed-off-by: Jiri Kosina MAINTAINERS | 2 ++ 1 file changed, 2 insertions(+) commit 8438aef01d3560549b3a95d247b3a69311fa6f2d Author: Pankaj Dubey Date: Fri Nov 13 14:59:35 2015 +0530 ARM: EXYNOS: Remove redundant code from regs-pmu.h Commit 6ec4f8d0d91f ("ARM: EXYNOS: add generic function to calculate cpu number") introduced exynos_pmu_cpunr to be used by multi-cluster SoCs e.g. Exynos5420, but it's no more used in the codebase and hence removing this part of code. Signed-off-by: Pankaj Dubey Reviewed-by: Krzysztof Kozlowski Tested-by: Krzysztof Kozlowski Signed-off-by: Krzysztof Kozlowski arch/arm/mach-exynos/pmu.c | 2 ++ arch/arm/mach-exynos/regs-pmu.h | 9 --------- 2 files changed, 2 insertions(+), 9 deletions(-) commit f31c7c7a0e4cedeee3cac9dbcb0a202008b86b54 Author: Krzysztof Kozlowski Date: Thu Oct 29 10:38:05 2015 +0900 ARM: EXYNOS: Constify local exynos_pmu_data structure The Exynos5420 instance of exynos_pmu_data structure is not modified and can be made const. Suggested-by: Pavel Fedin Signed-off-by: Krzysztof Kozlowski Reviewed-by: Pankaj Dubey arch/arm/mach-exynos/pmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 23067d39761626a0bd814a092404a7d424ebf0c3 Author: Alim Akhtar Date: Fri Nov 20 10:47:09 2015 +0530 ARM: EXYNOS: Switch to syscon reboot and poweroff Since we switch to use generic syscon regmap based reset/poweroff driver for exynos SoC, lets select it from ARCH_EXYNOS instead of enabling it from various defconfigs. This also select POWER_RESET as SYSCON-{reset, poweroff} drivers depends on it. Also because of the above changes we don't need special handling for reboot/poweroff in exynos pmu driver. This patch also removes the same from exynos pmu driver to keep git bisect working. Note: This will break reboot/poweroff on boards with older dtbs with a newer kernel. Signed-off-by: Alim Akhtar Reviewed-by: Javier Martinez Canillas Tested-by: Javier Martinez Canillas Tested-by: Krzysztof Kozlowski Acked-by: Moritz Fischer Signed-off-by: Krzysztof Kozlowski arch/arm/mach-exynos/Kconfig | 3 +++ arch/arm/mach-exynos/pmu.c | 43 ------------------------------------------- 2 files changed, 3 insertions(+), 43 deletions(-) commit d927dc938c85973dae36fcf371d33f8f2793af99 Merge: 8005c49 35135f4 Author: Krzysztof Kozlowski Date: Fri Nov 20 16:00:29 2015 +0900 Merge tag 'samsung-dt-syscon-restart-4.5' into next/soc Device Tree changes adding necessary nodes for syscon reboot/poweroff handlers on Exynos boards. The mach-exynos changes must base on top of this to retain the bisectability of not loosing reboot/poweroff features. commit 35135f4b95f03be7ebbf31221ce738f1ec0faa02 Author: Alim Akhtar Date: Tue Oct 20 14:54:43 2015 +0530 ARM: dts: Add syscon-{reboot, poweroff} nodes for exynos5410 This patch adds syscon-{reboot, poweroff} nodes to allow the generic syscon-{reboot, poweroff} driver to reset/poweroff exynos5410 SoC. Signed-off-by: Alim Akhtar Reviewed-by: Pankaj Dubey Reviewed-by: Javier Martinez Canillas Tested-by: Krzysztof Kozlowski Reviewed-by: Krzysztof Kozlowski Acked-by: Moritz Fischer Signed-off-by: Krzysztof Kozlowski arch/arm/boot/dts/exynos5410.dtsi | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 4a5e82960b8ea8b6d7eac714f3b33f5b27cdacab Author: Alim Akhtar Date: Tue Oct 20 14:54:42 2015 +0530 ARM: dts: Add syscon-{reboot, poweroff} nodes for exynos5 This patch adds syscon-{reboot, poweroff} nodes to allow the generic syscon-{reboot, poweroff} driver to reset/poweroff exynos5 SoCs. Signed-off-by: Alim Akhtar Reviewed-by: Pankaj Dubey Reviewed-by: Javier Martinez Canillas Tested-by: Javier Martinez Canillas Tested-by: Krzysztof Kozlowski Tested-by: Anand Moon Reviewed-by: Krzysztof Kozlowski Acked-by: Moritz Fischer Signed-off-by: Krzysztof Kozlowski arch/arm/boot/dts/exynos5.dtsi | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 6d19e1a12a838d64eec3211caa63d07966de4b35 Author: Alim Akhtar Date: Tue Oct 20 14:54:41 2015 +0530 ARM: dts: Add syscon-{reboot, poweroff} nodes for exynos4 This patch adds syscon-{reboot, poweroff} nodes to allow the generic syscon-{reboot, poweroff} driver to reset/poweroff exynos4 SoC. Signed-off-by: Alim Akhtar Reviewed-by: Pankaj Dubey Reviewed-by: Javier Martinez Canillas Tested-by: Krzysztof Kozlowski Tested-by: Tobias Jakobi Reviewed-by: Krzysztof Kozlowski Acked-by: Moritz Fischer Signed-off-by: Krzysztof Kozlowski arch/arm/boot/dts/exynos4.dtsi | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 4fb1967242dbc90ac9aa2e5716bf22edfcc5aa9c Author: Alim Akhtar Date: Tue Oct 20 14:54:40 2015 +0530 ARM: dts: Add syscon-{reboot, poweroff} nodes for exynos3250 This patch adds syscon-{reboot, poweroff} nodes to allow the generic syscon-{reboot, poweroff} driver to reset/poweroff exynos3250 SoC. Signed-off-by: Alim Akhtar Reviewed-by: Pankaj Dubey Reviewed-by: Javier Martinez Canillas Tested-by: Krzysztof Kozlowski Reviewed-by: Krzysztof Kozlowski Acked-by: Moritz Fischer Signed-off-by: Krzysztof Kozlowski arch/arm/boot/dts/exynos3250.dtsi | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit b8f70badb8cd7c928f7e076b6143aeb66fe13c8b Author: Brian Norris Date: Wed Nov 11 19:13:30 2015 -0800 mtd: kill off MTD partition parser boilerplate Most parsers can be handled with our new boilerplate-reducing macro. There are a few that can't be (cmdlineparts and ofpart). Also kill off the owner assignments, since register_mtd_parser() now takes care of that. Signed-off-by: Brian Norris drivers/mtd/afs.c | 17 +---------------- drivers/mtd/ar7part.c | 16 +--------------- drivers/mtd/bcm47xxpart.c | 16 +--------------- drivers/mtd/bcm63xxpart.c | 16 +--------------- drivers/mtd/cmdlinepart.c | 1 - drivers/mtd/ofpart.c | 2 -- drivers/mtd/redboot.c | 17 +---------------- 7 files changed, 5 insertions(+), 80 deletions(-) commit b9eab01125bf3cb6f5fbab1811402d16c9fcf4ec Author: Brian Norris Date: Wed Nov 11 19:13:29 2015 -0800 mtd: partitions: add module_mtd_part_parser() helper This can help eliminate some boilerplate by generating the module_init() and module_exit() functions, and by automatically assigning the module owner. Signed-off-by: Brian Norris drivers/mtd/mtdpart.c | 8 ++++++-- include/linux/mtd/partitions.h | 14 +++++++++++++- 2 files changed, 19 insertions(+), 3 deletions(-) commit 7b08623add8205b18e56c5b4549e83657756aec3 Author: Takeshi Kihara Date: Thu Oct 29 08:09:18 2015 +0900 arm64: dts: r8a7795: add GPIO nodes Signed-off-by: Takeshi Kihara Signed-off-by: Ulrich Hecht Signed-off-by: Simon Horman Acked-by: by: Geert Uytterhoeven arch/arm64/boot/dts/renesas/r8a7795.dtsi | 112 +++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) commit 36a86872964609f2596d22f323070b60b17e08ef Author: Charles Keepax Date: Thu Nov 19 15:45:40 2015 +0000 extcon: arizona: Update DT binding documentation for jack detection Add additional bindings for both inverting the polarity of the jack detection pins and allowing the use of a second jack detection pin. Note that the second jack detection pin is hard wired in the chip so can only be enabled through the binding, rather than a pin being specified. Signed-off-by: Charles Keepax Reviewed-by: Chanwoo Choi Signed-off-by: Chanwoo Choi Documentation/devicetree/bindings/extcon/extcon-arizona.txt | 6 ++++++ 1 file changed, 6 insertions(+) commit afe330098d255e698088e010be3cb4fa57e9ff86 Author: Charles Keepax Date: Thu Nov 19 15:45:39 2015 +0000 extcon: arizona: Update DT binding documentation for mic detection Add additional bindings to allow configuration of the system specific microphone detection settings. Signed-off-by: Charles Keepax Signed-off-by: Chanwoo Choi .../devicetree/bindings/extcon/extcon-arizona.txt | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 35247c136a47a05d7747c9c7f0bc0d948d1fdda5 Author: Charles Keepax Date: Thu Nov 19 15:45:38 2015 +0000 extcon: arizona: Add device binding for second jack detect pin on GPIO5 Some Arizona devices have the option to use the GPIO5 pin as a second jack detection pin. This patch adds device bindings to specify to the driver that it should use this pin. Note that the second jack detection pin is hard wired in the chip so can only be enabled through the binding, rather than a pin being specified. Signed-off-by: Charles Keepax Acked-by: Chanwoo Choi Signed-off-by: Chanwoo Choi drivers/extcon/extcon-arizona.c | 5 +++++ 1 file changed, 5 insertions(+) commit 3d7a872fa359e13b6903c7fb45bb15c0078d4a84 Author: Charles Keepax Date: Thu Nov 19 15:45:37 2015 +0000 extcon: arizona: Add device binding for jack detect polarity inversion By default the driver expects the jackdet pin to be pulled low when a jack is inserted. This patch adds a device binding that allows the user to specify that the jackdet pin will be pulled high when a jack is inserted. Signed-off-by: Charles Keepax Acked-by: Chanwoo Choi Signed-off-by: Chanwoo Choi drivers/extcon/extcon-arizona.c | 3 +++ 1 file changed, 3 insertions(+) commit 99374227cfb9f410965022063baf447ae3c41b9f Author: Charles Keepax Date: Thu Nov 19 15:45:36 2015 +0000 extcon: arizona: Add device binding for the general purpose switch The switch is generally used in conjunction with the MICDET clamp to suppress pops and clicks associated with jack insertion. This patch adds a binding that allows the user to select the mode of operation for this switch. Signed-off-by: Charles Keepax Acked-by: Chanwoo Choi Signed-off-by: Chanwoo Choi drivers/extcon/extcon-arizona.c | 2 ++ 1 file changed, 2 insertions(+) commit 2e87b7a8bef7901ab56f121f0d7c085aacee86fc Author: Charles Keepax Date: Thu Nov 19 15:45:35 2015 +0000 extcon: arizona: Add device binding to enable ADC mode micdet Add a simple boolean binding to turn on and off the use of ADC microphone detection mode to determine 3/4 pole jack. Signed-off-by: Charles Keepax Acked-by: Chanwoo Choi Signed-off-by: Chanwoo Choi drivers/extcon/extcon-arizona.c | 3 +++ 1 file changed, 3 insertions(+) commit b26baffbc91693c9a3b81704a4870a474f169871 Author: Anjali Menon Date: Mon Nov 16 22:49:19 2015 +0530 staging: rdma: ehca: Added a blank line Added a blank line after declarations to remove the coding style error detected by the checkpatch.pl. WARNING: Missing a blank line after declarations Signed-off-by: Anjali Menon Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/ehca/ehca_av.c | 3 +++ 1 file changed, 3 insertions(+) commit 82c2611daaf010500720a569ca733d216d81968e Author: Niranjana Vishwanathapura Date: Wed Nov 11 00:35:19 2015 -0500 staging/rdma/hfi1: Handle packets with invalid RHF on context 0 Context 0 (which handles the error packets) can potentially receive an invalid rhf. Hence, it can not depend on RHF sequence number and can only use DMA_RTAIL mechanism. Detect such packets with invalid rhf using rhf sequence counting mechanism and drop them. As DMA_RTAIL mechanism has performance penalties, do not use context 0 for performance critical verbs path. Use context 0 for VL15 (MAD), multicast and error packets. Reviewed-by: Arthur Kepner Reviewed-by: Mike Marciniszyn Reviewed-by: Dennis Dalessandro Reviewed-by: Dean Luick Reviewed-by: Mitko Haralanov Signed-off-by: Niranjana Vishwanathapura Signed-off-by: Mike Marciniszyn Signed-off-by: Ira Weiny Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/chip.c | 74 ++++++++++++------------- drivers/staging/rdma/hfi1/driver.c | 108 ++++++++++++++++++++++++++++++++----- drivers/staging/rdma/hfi1/hfi.h | 8 ++- drivers/staging/rdma/hfi1/init.c | 9 +++- 4 files changed, 146 insertions(+), 53 deletions(-) commit d46e51448a9a79817b85e9af04506d453ef5e279 Author: Dennis Dalessandro Date: Wed Nov 11 00:34:37 2015 -0500 staging/rdma/hfi1: Reduce number of parameters passed to send handlers The current send function handlers are passed a bunch of parameters that are already part of the data structure that is passed in first (qp). This patch removes all of this and just passes the QP. Reviewed-by: Mike Marciniszyn Signed-off-by: Dennis Dalessandro Signed-off-by: Ira Weiny Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/diag.c | 27 ++++++++++--------- drivers/staging/rdma/hfi1/hfi.h | 20 ++++++-------- drivers/staging/rdma/hfi1/ruc.c | 15 ++++++----- drivers/staging/rdma/hfi1/verbs.c | 55 ++++++++++++++++++--------------------- drivers/staging/rdma/hfi1/verbs.h | 23 ++++++++++------ 5 files changed, 71 insertions(+), 69 deletions(-) commit 040b323b5012b5503561ec7fe15cccd6a4bcaec2 Author: Nicolas Pitre Date: Mon Nov 2 14:20:41 2015 -0500 ARM: asm/div64.h: adjust to generic codde Now that the constant divisor optimization is made generic, adapt the ARM case to it. Signed-off-by: Nicolas Pitre arch/arm/include/asm/div64.h | 283 ++++++++++++++----------------------------- 1 file changed, 93 insertions(+), 190 deletions(-) commit 7c091e5c0685c463dc58e5115781f7ac0a1448d6 Author: Mike Marciniszyn Date: Tue Nov 10 09:14:01 2015 -0500 staging/rdma/hfi1: add ACK coalescing logic Implement ACK coalesing logic using a 8 bit counter. The algorithm is send pio ack when: - fecn present - this is the first packet in an interrupt session - counter is >= HFI1_PSN_CREDIT Otherwise the ack is defered. Reviewed-by: Dennis Dalessandro Signed-off-by: Mike Marciniszyn Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/qp.c | 1 + drivers/staging/rdma/hfi1/rc.c | 29 +++++++++++++++++++++++++++-- drivers/staging/rdma/hfi1/verbs.h | 7 ++++--- 3 files changed, 32 insertions(+), 5 deletions(-) commit 2fd36865b570667bf3deb0ad3e1f7739ce85c063 Author: Mike Marciniszyn Date: Tue Nov 10 09:13:55 2015 -0500 staging/rdma/hfi1: add common routine for queuing acks This patch is a prelimary patch required to coalesce acks. The routine to "schedule" a QP for sending a NAK is now centralized in rc_defer_ack(). The flag is changed for clarity since the all acks will potentially use the deferral mechanism. Reviewed-by: Dennis Dalessandro Signed-off-by: Mike Marciniszyn Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/driver.c | 4 ++-- drivers/staging/rdma/hfi1/rc.c | 42 ++++++++++++++------------------------ drivers/staging/rdma/hfi1/verbs.h | 12 ++++++----- 3 files changed, 24 insertions(+), 34 deletions(-) commit 46b010d3eeb8eb29c740c4ef09c666485f5c07e6 Author: Mark F. Brown Date: Mon Nov 9 19:18:20 2015 -0500 staging/rdma/hfi1: Workaround to prevent corruption during packet delivery Disabling one receive context when RX_DMA is receiving a packet can cause incorrect packet delivery for a subsequent packet on another receive context. This is resolved by doing the following: 1. Programming dummy tail address for every receive context before enabling it 2. While deallocating receive context resetting tail address to dummy address 3. Leaving the dummy address in when disabling tail update 4. When disabling receive context leaving tail update enabled Reviewed-by: Dennis Dalessandro Reviewed-by: Mike Marciniszyn Reviewed-by: Mitko Haralanov Signed-off-by: Mark F. Brown Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/chip.c | 18 +++++++++++++++--- drivers/staging/rdma/hfi1/hfi.h | 4 ++++ drivers/staging/rdma/hfi1/init.c | 28 ++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 3 deletions(-) commit d7b8ba5121e874fddd09e2e953f09646594a24a8 Author: Mike Marciniszyn Date: Mon Nov 9 19:13:59 2015 -0500 staging/rdma/hfi1: pre-compute sc and sde for RC/UC QPs Now that we have a multi-threaded work queue we precomputed and store the SC and SDE on RC and UC QPs for faster access. Reviewed-by: Dennis Dalessandro Signed-off-by: Mike Marciniszyn Signed-off-by: Ira Weiny Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/qp.c | 27 +++++++++++++++++++++------ drivers/staging/rdma/hfi1/qp.h | 1 - drivers/staging/rdma/hfi1/ruc.c | 10 ++-------- drivers/staging/rdma/hfi1/ud.c | 1 + drivers/staging/rdma/hfi1/verbs.c | 14 +++----------- drivers/staging/rdma/hfi1/verbs.h | 3 ++- 6 files changed, 29 insertions(+), 27 deletions(-) commit 0a226edd203f1209e4ee6e07a6b41a9cfd8beeb8 Author: Mike Marciniszyn Date: Mon Nov 9 19:13:58 2015 -0500 staging/rdma/hfi1: Use parallel workqueue for SDMA engines The workqueue is currently single threaded per port which for a small number of SDMA engines is ok. For hfi1, the there are up to 16 SDMA engines that can be fed descriptors in parallel. Use alloc_workqueue with a workqueue limit of the number of sdma engines and with WQ_CPU_INTENSIVE and WQ_HIGHPRI specified. Then change send to use the new scheduler which no longer needs to get the s_lock Reviewed-by: Dennis Dalessandro Signed-off-by: Mike Marciniszyn Signed-off-by: Ira Weiny Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/chip.c | 1 + drivers/staging/rdma/hfi1/init.c | 13 ++++++------- drivers/staging/rdma/hfi1/iowait.h | 6 ++++-- drivers/staging/rdma/hfi1/qp.h | 35 +++++++++++++++++++++++++++++++++++ drivers/staging/rdma/hfi1/sdma.c | 8 +++++--- drivers/staging/rdma/hfi1/sdma.h | 8 +++++--- drivers/staging/rdma/hfi1/verbs.c | 20 ++++---------------- drivers/staging/rdma/hfi1/verbs.h | 1 - 8 files changed, 60 insertions(+), 32 deletions(-) commit c2f3ffb08593d8cf587ee0e4c40197b5eb68bd38 Author: Mike Marciniszyn Date: Mon Nov 9 19:13:57 2015 -0500 staging/rdma/hfi1: move hfi1_migrate_qp Move hfi1_migrate_qp from ruc.c to qp.[hc] in prep for modifying the QP workqueue. Signed-off-by: Mike Marciniszyn Signed-off-by: Ira Weiny Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/qp.c | 20 ++++++++++++++++++++ drivers/staging/rdma/hfi1/qp.h | 2 ++ drivers/staging/rdma/hfi1/ruc.c | 20 -------------------- drivers/staging/rdma/hfi1/verbs.h | 2 -- 4 files changed, 22 insertions(+), 22 deletions(-) commit 8b3e676b0cb9444f8de18b54dee1ccb51f152460 Author: Geliang Tang Date: Sun Nov 8 22:17:52 2015 +0800 staging: rdma: use kmalloc_array instead of kmalloc Use kmalloc_array instead of kmalloc to allocate memory for an array. Signed-off-by: Geliang Tang Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/amso1100/c2.c | 6 ++++-- drivers/staging/rdma/ipath/ipath_file_ops.c | 8 ++++---- 2 files changed, 8 insertions(+), 6 deletions(-) commit b629a6f63d5d7a8aab1b57223e4353427824c6d7 Author: Amitoj Kaur Chawla Date: Sun Nov 8 01:42:03 2015 +0530 staging: rdma: amso1100: Remove unnecessary variables Remove unnecessary variable 'err' from functions c2_reject() and c2_service_destroy() since it can be replaced by a single line of code instead. Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/amso1100/c2_provider.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit a85994d5467a8fbcecc4ae4a42f9d4c1a0a54886 Author: Othmar Pasteka Date: Mon Nov 16 23:29:44 2015 +0100 staging: vt6656: remove address from GPL text Cleanup errors from checkpatch.pl. Signed-off-by: Othmar Pasteka Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6656/baseband.c | 4 ---- drivers/staging/vt6656/baseband.h | 4 ---- drivers/staging/vt6656/card.c | 3 --- drivers/staging/vt6656/card.h | 3 --- drivers/staging/vt6656/channel.c | 4 ---- drivers/staging/vt6656/channel.h | 4 ---- drivers/staging/vt6656/desc.h | 3 --- drivers/staging/vt6656/device.h | 3 --- drivers/staging/vt6656/dpc.c | 3 --- drivers/staging/vt6656/dpc.h | 3 --- drivers/staging/vt6656/firmware.c | 4 ---- drivers/staging/vt6656/firmware.h | 4 ---- drivers/staging/vt6656/int.c | 4 ---- drivers/staging/vt6656/int.h | 4 ---- drivers/staging/vt6656/key.c | 4 ---- drivers/staging/vt6656/key.h | 4 ---- drivers/staging/vt6656/mac.c | 4 ---- drivers/staging/vt6656/mac.h | 4 ---- drivers/staging/vt6656/main_usb.c | 3 --- drivers/staging/vt6656/power.c | 4 ---- drivers/staging/vt6656/power.h | 3 --- drivers/staging/vt6656/rf.c | 4 ---- drivers/staging/vt6656/rf.h | 4 ---- drivers/staging/vt6656/rxtx.c | 3 --- drivers/staging/vt6656/rxtx.h | 3 --- drivers/staging/vt6656/usbpipe.c | 4 ---- drivers/staging/vt6656/usbpipe.h | 4 ---- drivers/staging/vt6656/wcmd.c | 3 --- drivers/staging/vt6656/wcmd.h | 3 --- 29 files changed, 104 deletions(-) commit 1d158315c13b6989f7ddb1d8d334965d14d958d8 Author: Brian Norris Date: Mon Nov 16 14:34:52 2015 -0800 doc: dt: mtd: stop referring to driver code for spi-nor IDs Pull the supported chip names from drivers/mtd/devices/m25p80.c and stop pointing readers to Linux code. Also (although I see this habit repeated throughout the Documentation/devicetree/bindings/ tree), stop using the title "driver" in this file, when we're trying explicitly to describe hardware, not software. Signed-off-by: Brian Norris Cc: Acked-by: Rob Herring Reviewed-by: Javier Martinez Canillas .../devicetree/bindings/mtd/jedec,spi-nor.txt | 56 ++++++++++++++++++++-- 1 file changed, 51 insertions(+), 5 deletions(-) commit c1711b297f6e2270c1cb17de512985ef500e0de9 Author: Brian Norris Date: Mon Nov 16 14:34:51 2015 -0800 mtd: m25p80: replace leftover "nor-jedec" with "spi-nor" in comments I overlooked a few comments in commit 8947e396a829 ("Documentation: dt: mtd: replace "nor-jedec" binding with "jedec, spi-nor""). Fix these up now. Suggested-by: Javier Martinez Canillas Signed-off-by: Brian Norris Reviewed-by: Javier Martinez Canillas drivers/mtd/devices/m25p80.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit de57732da86288cae9a84bd6ce7cf1d1e21f8329 Author: Brian Norris Date: Mon Nov 16 14:34:50 2015 -0800 mtd: m25p80: fix module autoloading for "jedec, spi-nor" and "spi-nor" Commit 43163022927b ("mtd: m25p80: allow arbitrary OF matching for "jedec,spi-nor"") moved the "jedec,spi-nor" handling from the spi_device_id table to the of_match_table, to better handle matching complex device tree compatible strings. With that patch, device tree support works as expected when m25p80.c is built into the kernel. However, that commit ignored the fact that: (1) (non-DT) platform devices might want to use the "spi-nor" string for matching with this driver, rather than picking an arbitrary one like "m25p80" (2) the core SPI uevent/modalias code doesn't yet support kernel module autoloading via of_match_table strings; so for DT-based devices, it will only report (part of) the first compatible string used Problem (1) has been reported previously, and I forgot to patch it up afterward. Problem (2) was noticed recently here: http://lists.infradead.org/pipermail/linux-mtd/2015-October/062369.html https://lkml.org/lkml/2015/11/12/574 Specifically, this patch fixes m25p80.ko module autoloading for cases like this: flash@xxx { compatible = "jedec,spi-nor"; ... }; because modalias of "spi:spi-nor" (the only module loading info provided by the SPI core for this device) will now be listed as an alias in m25p80.ko. Notably, it does *not* help cases like this: flash@xxx { compatible = "vendor,shiny-new-device", "jedec,spi-nor"; ... }; unless we also list "shiny-new-device" in m25p_ids[]. There has been discussion on future work for this issue here: https://lkml.org/lkml/2015/11/12/574 Cc: Heiner Kallweit Signed-off-by: Brian Norris Reviewed-by: Javier Martinez Canillas drivers/mtd/devices/m25p80.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit c8cd74a1468ffe20db3ddc6e6f408d5377f9be43 Author: Laurent Pinchart Date: Tue Sep 22 10:08:14 2015 +0300 ARM: shmobile: Remove legacy mach/irqs.h The header isn't needed anymore now that all SoCs use multiplatform kernels. Remove it. Signed-off-by: Laurent Pinchart Signed-off-by: Simon Horman arch/arm/mach-shmobile/include/mach/irqs.h | 10 ---------- arch/arm/mach-shmobile/irqs.h | 15 --------------- arch/arm/mach-shmobile/setup-r8a7778.c | 1 - 3 files changed, 26 deletions(-) commit 0f9f27a36d09580e1fd51e091dc99b15a895aa83 Author: Jon Mason Date: Tue Nov 17 14:55:27 2015 -0500 ARM: dts: NSP: Add I2C support to the DT Add I2C support to the Broadcom Northstar Plus Device Tree. Since no driver changes are needed to enable this hardware, only the device tree changes are required to make this functional. Signed-off-by: Jon Mason Signed-off-by: Florian Fainelli arch/arm/boot/dts/bcm-nsp.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) commit 7ba8cd8bf53adbc4ebdf1e684bf900f11327fcb8 Author: Jon Mason Date: Tue Nov 17 14:55:26 2015 -0500 ARM: dts: NSP: Device Tree clean-ups Minor changes to the Broadcom Northstar Plus device tree to make it more organized and clean. Firstly, move the GIC and L2 cache entries to be sequential with respect to the memory addresses. Secondly, modify the address portion of the entry names to reflect the difference from the range modification. Signed-off-by: Jon Mason Signed-off-by: Florian Fainelli arch/arm/boot/dts/bcm-nsp.dtsi | 50 +++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 25 deletions(-) commit 54f32fd5dff96a903f838de1efcdfb9831c5b207 Author: Andy Lutomirski Date: Thu Nov 19 08:19:31 2015 -0800 HID: Make report_descriptor available for all devices Currently the sysfs report_descriptor attribute is only available if the device is claimed. We have the descriptor before we even create the device node, so just instantiate report_descriptor statically. Signed-off-by: Andy Lutomirski Signed-off-by: Jiri Kosina drivers/hid/hid-core.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit 0501f2e5ff28a02295e42fc9e7164a20ef4c30d5 Author: Andreas Fenkart Date: Thu Nov 5 10:04:23 2015 +0100 mtd: spi-nor: mx25l3205d/mx25l6405d: append SECT_4K according datasheet both chips can erase 4kByte sectors individually Signed-off-by: Andreas Fenkart Signed-off-by: Brian Norris drivers/mtd/spi-nor/spi-nor.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit cd78ea02dc82eb26be8c2fc1cf05adbf94ea8727 Author: Brian Norris Date: Tue Nov 10 12:15:28 2015 -0800 mtd: m25p80: drop erase() callback Just use the spi-nor default instead. Signed-off-by: Brian Norris drivers/mtd/devices/m25p80.c | 17 ----------------- 1 file changed, 17 deletions(-) commit c67cbb839da9cc2757eabfa128556db6a2baf160 Author: Brian Norris Date: Tue Nov 10 12:15:27 2015 -0800 mtd: spi-nor: provide default erase_sector implementation Some spi-nor drivers perform sector erase by duplicating their write_reg() command. Let's not require that the driver fill this out, and provide a default instead. Tested on m25p80.c and Medatek's MT8173 SPI NOR flash driver. Signed-off-by: Brian Norris drivers/mtd/spi-nor/spi-nor.c | 37 +++++++++++++++++++++++++++++++++---- include/linux/mtd/spi-nor.h | 3 ++- 2 files changed, 35 insertions(+), 5 deletions(-) commit da0a1cf6af5d26b44ed6ce50d881beacdadb0d63 Author: John Keeping Date: Thu Nov 19 13:45:31 2015 +0000 ARM: dts: rockchip: set system-power-controller property on rk3288-rock2 The act8846 on rock2 boards controls the system power, so add the appropriate property to allow turning off the board. Signed-off-by: John Keeping Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3288-rock2-som.dtsi | 1 + 1 file changed, 1 insertion(+) commit 5ee90578bbe82e06eae8a83f8676ec0ee95b8224 Author: Jisheng Zhang Date: Mon Nov 16 18:46:31 2015 +0800 arm: dts: berlin2q: remove duplicated interrupt-parent The default interrupt-parent has been set in the upper layer, apb@e80000 and apb@fc0000 for example. So if the interrupt-parent isn't changed, we don't need to set it again. This patch removes the dumplicated interrupt-parent settings. Signed-off-by: Jisheng Zhang Signed-off-by: Sebastian Hesselbarth arch/arm/boot/dts/berlin2q.dtsi | 6 ------ 1 file changed, 6 deletions(-) commit 2523cc91e6c7ca570d8d04db2035f6b2eb2341f2 Author: Jisheng Zhang Date: Mon Nov 16 18:43:37 2015 +0800 arm: dts: berlin2q-marvell-dmp: remove broken-cd from eMMC node The eMMC is non-removable so is marked with the non-removable DT property to avoid having to redetect it after a suspend/resume. But it also has the broken-cd property which is wrong since only one of the DT properties for card detection should be used Signed-off-by: Jisheng Zhang Signed-off-by: Sebastian Hesselbarth arch/arm/boot/dts/berlin2q-marvell-dmp.dts | 1 - 1 file changed, 1 deletion(-) commit 75d8e1baa5e086de02b9be1ae3eaeb591adc6cf0 Author: Jisheng Zhang Date: Fri Oct 16 15:37:09 2015 +0800 arm64: berlin: add the pinctrl dependency for Marvell Berlin SoCs This is to add the pinctrl dependency for Marvell Berlin SoCs. Signed-off-by: Jisheng Zhang Acked-by: Linus Walleij Acked-by: Antoine Tenart Signed-off-by: Sebastian Hesselbarth arch/arm64/Kconfig.platforms | 1 + 1 file changed, 1 insertion(+) commit d9c1567f8427519b5b61cbca5477f96a1590d51b Author: Jisheng Zhang Date: Fri Oct 16 15:37:12 2015 +0800 arm64: dts: berlin4ct: add default pinmux for uart0 Add urt0 txd and rxd muxing setup in the dtsi because uart0 always uses them to work, no other possibilities. Signed-off-by: Jisheng Zhang Acked-by: Sebastian Hesselbarth Acked-by: Antoine Tenart Acked-by: Linus Walleij Signed-off-by: Sebastian Hesselbarth arch/arm64/boot/dts/marvell/berlin4ct.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) commit cb27c89b7817935c0a532b39e6a77dd2e2fc3e56 Author: Jisheng Zhang Date: Fri Oct 16 15:37:11 2015 +0800 arm64: dts: berlin4ct: add the pinctrl node Add the avio, soc, sm pinctrl nodes for Marvell berlin4ct SoC. Signed-off-by: Jisheng Zhang Acked-by: Sebastian Hesselbarth Acked-by: Antoine Tenart Acked-by: Linus Walleij Signed-off-by: Sebastian Hesselbarth arch/arm64/boot/dts/marvell/berlin4ct.dtsi | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 1e6460abf739310fe695bafac30c2be39d18c8f9 Author: Boris BREZILLON Date: Mon Nov 16 14:37:36 2015 +0100 doc: mtd: nand: update examples to use mtd_to_nand() mtd_to_nand() has been introduced to hide accesses to mtd->priv. All NAND controller drivers should use it instead of directly accessing the ->priv field. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris Documentation/DocBook/mtdnand.tmpl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c291b3c3527fa962f53862426e0e4258d7bd8269 Merge: 1d8d8b5 9eba47d Author: Brian Norris Date: Thu Nov 19 11:10:41 2015 -0800 mtd: merge in mtd_to_nand() branch In case other subsystems want to merge in this helper for use in their drivers, let's bring in that development separately from the rest of MTD -next development. Signed-off-by: Brian Norris commit 9eba47ddd8fee8a21f45e6e1d707103f040d90c7 Author: Boris BREZILLON Date: Mon Nov 16 14:37:35 2015 +0100 mtd: nand: add an mtd_to_nand() helper Some drivers are retrieving the nand_chip pointer using the container_of macro on a struct wrapping both the nand_chip and the mtd_info struct while the standard way of retrieving this pointer is through mtd->priv. Provide an helper to do that. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris include/linux/mtd/nand.h | 5 +++++ 1 file changed, 5 insertions(+) commit 1d8d8b5c852b6c7ae860ddc647ebb3ed3493c9a8 Author: Boris BREZILLON Date: Mon Nov 16 14:37:34 2015 +0100 mtd: nand: fix drivers abusing mtd->priv The ->priv field of the mtd_info object attached to a nand_chip device should point to the nand_chip device. The pxa and cafe drivers are assigning this field their own private structure, which works fine as long as the nand_chip field is the first one in the driver private struct but seems a bit fragile. Fix that by setting mtd->priv to point the nand_chip field and assigning chip->priv to the private structure head. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/cafe_nand.c | 34 ++++++++++++++++++++++------------ drivers/mtd/nand/pxa3xx_nand.c | 30 +++++++++++++++++++----------- 2 files changed, 41 insertions(+), 23 deletions(-) commit beca365565d8f8912dce67567f54ad4c71734843 Author: Pascal Huerst Date: Thu Nov 19 16:18:28 2015 +0100 spi: omap2-mcspi: Add calls for pinctrl state select This adds calls to pinctrl subsystem in order to switch pin states on suspend/resume if you provide a "sleep" state in DT. If no "sleep" state is provided in DT, these calls turn to NOPs. Signed-off-by: Pascal Huerst Signed-off-by: Mark Brown drivers/spi/spi-omap2-mcspi.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit d190106d5a6b300b782a55ad24a1e1da71fa630b Author: Charles Keepax Date: Thu Nov 19 16:11:10 2015 +0000 ASoC: wm5110: Add DAPM/routing hookup for the ANC block The wm5110 device contains a hardware ANC block, this patch connects up controls and routing for this. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/arizona.c | 119 +++++++++++++++++++++++++++++++++++++++ sound/soc/codecs/arizona.h | 7 +++ sound/soc/codecs/wm5110.c | 136 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 262 insertions(+) commit a24c602546fbec01105819333d67191d1ca0e15d Merge: bef3c4e 341604a Author: Mark Brown Date: Thu Nov 19 17:48:23 2015 +0000 Merge branch 'fix/arizona' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-arizona commit 366e39b4d2c53b198b072f984caa0ebc4220ad4d Author: Lukas Wunner Date: Wed Nov 18 16:29:51 2015 +0100 drm/i915: Tear down fbdev if initialization fails Currently if intelfb_create() errors out, it unrefs the bo even though the fb now owns that reference. (Spotted by Ville Syrjälä.) We should unref the fb instead of the bo. However the fb was not necessarily allocated by intelfb_create(), it could be inherited from BIOS (the fb struct was then allocated by dev_priv->display.get_initial_plane_config()) and be in active use by a crtc. In this case we should call drm_framebuffer_remove() instead of _unreference() to also disable the crtc. Daniel Vetter suggested that "fbdev teardown code will take care of it. The correct approach is probably to not unref anything at all". But if fbdev initialization fails, the fbdev isn't torn down and occupies memory even though it's unusable. Therefore clobber it in intel_fbdev_initial_config(). (Currently we ignore a negative return value there.) The idea is that if fbdev initialization fails, the driver behaves as if CONFIG_DRM_FBDEV_EMULATION wasn't set. Should X11 manage to start up without errors, it will at least be able to use the memory that would otherwise be hogged by the unusable fbdev. Also, log errors in intelfb_create(). Don't call async_synchronize_full() in intel_fbdev_fini() when called from intel_fbdev_initial_config() to avoid deadlock. v2: Instead of calling drm_framebuffer_unreference() (if fb was not inherited from BIOS), call intel_fbdev_fini(). v3: Rebase on e00bf69644ba (drm/i915: Move the fbdev async_schedule() into intel_fbdev.c), call async_synchronize_full() conditionally instead of moving it into i915_driver_unload(). Cc: Daniel Vetter Signed-off-by: Lukas Wunner Link: http://patchwork.freedesktop.org/patch/msgid/49ce5f0daead24b7598ec78591731046c333c18d.1447938059.git.lukas@wunner.de Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_fbdev.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 581da2cab557fa6e8a954c148c487eb7e0658979 Author: Lukas Wunner Date: Thu Nov 19 16:31:11 2015 +0100 async: export current_is_async() Introduced by 84b233adcca3 ("workqueue: implement current_is_async()"). Cc: Tejun Heo Signed-off-by: Lukas Wunner Acked-by: Tejun Heo Signed-off-by: Daniel Vetter kernel/async.c | 1 + 1 file changed, 1 insertion(+) commit fb1a21114fe18e2ee96ea159c6b42441cc3aedf1 Author: Arun Siluvery Date: Thu Nov 19 16:47:44 2015 +0000 Revert "drm/i915: Initialize HWS page address after GPU reset" This reverts commit 2e5356da370e36ba7aab39d2800c7a2412630ae7. It is now redundant as it is already covered in below commit which introduced the changes to reuse initialization of resources in resume/reset path. commit e84fe80337dc85cca07d0417ea97edbec4789d8b Author: Nick Hoath Date: Fri Sep 11 12:53:46 2015 +0100 drm/i915: Split alloc from init for lrc lrc_setup_hardware_status_page() in the same function gen8_init_common_ring() takes care of this. Cc: Nick Hoath Cc: Daniel Vetter Signed-off-by: Arun Siluvery Link: http://patchwork.freedesktop.org/patch/msgid/1447951664-9347-1-git-send-email-arun.siluvery@linux.intel.com Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 6 ------ 1 file changed, 6 deletions(-) commit e9d63767258753f28920d954712806a061b69547 Author: Andrei Emeltchenko Date: Thu Nov 19 16:47:38 2015 +0200 Bluetooth: Use hex notation for mask This makes it easier to read and makes code consistent. Signed-off-by: Andrei Emeltchenko Signed-off-by: Marcel Holtmann drivers/bluetooth/hci_h5.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4223f368b96893c843653e15a3f57c830ed44169 Author: Andrei Emeltchenko Date: Thu Nov 19 11:29:11 2015 +0200 Bluetooth: Fix mask for H5 header len Fixes mask when calculating three-wire (h5) length. Signed-off-by: Andrei Emeltchenko Signed-off-by: Marcel Holtmann drivers/bluetooth/hci_h5.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9a54421018d76c50c2fa82f88dffbfa6af0383d6 Author: Prasanna Karthik Date: Thu Nov 19 12:05:35 2015 +0000 Bluetooth: remove unneeded variable in l2cap_stream_rx Remove unneeded variable used to store return value. Error reported by coccicheck. Signed-off-by: Prasanna Karthik Signed-off-by: Marcel Holtmann net/bluetooth/l2cap_core.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 74b93e9f4ee0ae9292730de1a1e7d919c59c8ad2 Author: Prasanna Karthik Date: Wed Nov 18 12:38:41 2015 +0000 Bluetooth: Clean up hci_core code Fix errors reported by checkpatch. - ERROR: spaces required around that ':' (ctx:VxW) - ERROR: open brace '{' following function declarations go on the next line Signed-off-by: Prasanna Karthik Signed-off-by: Marcel Holtmann net/bluetooth/hci_core.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit f37590bd772243db8ce47071a56c3a2b84cb282b Author: Prasanna Karthik Date: Tue Nov 17 11:06:53 2015 +0000 Bluetooth: clean up af_bluetooth code Fix error reported by checkpatch. ERROR:"foo* bar" should be "foo *bar" Signed-off-by: Prasanna Karthik Signed-off-by: Marcel Holtmann net/bluetooth/af_bluetooth.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 06fbb3d5c7ff366fe7ab7b4157bdb3096fca6d09 Author: Markus Elfring Date: Sat Nov 14 22:00:27 2015 +0100 Bluetooth: Delete an unnecessary check before the function call "kfree_skb" The kfree_skb() 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 Signed-off-by: Marcel Holtmann net/bluetooth/cmtp/core.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 56f9ebe641d613916d3dce710004d48ab66660fa Author: Markus Elfring Date: Sat Nov 14 20:22:41 2015 +0100 mac802154: Delete an unnecessary check before the function call "kfree_skb" The kfree_skb() 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 Signed-off-by: Marcel Holtmann net/mac802154/rx.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 7df0f73ece45c2e499b416cbc90949e0226eb134 Author: Johan Hedberg Date: Thu Nov 12 15:15:00 2015 +0200 Bluetooth: Simplify request cleanup code The hci_req_sync_cancel() is just as much related to the request cleanup as hci_request_cancel_all() is. Just move the former into the latter and do the cleanup from a single place in hci_dev_do_close(). The important thing is to avoid deadlocks by holding the req_sync lock: previously hci_request_cancel_all was done right after releasing the lock and with this patch it's right before taking it. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_core.c | 4 +--- net/bluetooth/hci_request.c | 2 ++ 2 files changed, 3 insertions(+), 3 deletions(-) commit e2caced40734731e2a17b501840809e30a08141a Author: Johan Hedberg Date: Wed Nov 11 14:44:59 2015 +0200 Bluetooth: Remove conn_unfinished variable from hci_connect_le() The conn_unfinished variable makes the entire logic of hci_connect_le() rather confusing. By restructuring and clarifying the logic we can actually remove the conn_unfinished variable and still keep the same behavior. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_conn.c | 48 ++++++++++++------------------------------------ 1 file changed, 12 insertions(+), 36 deletions(-) commit 658aead94bb65c0141391f20f8c24f51e971b6ea Author: Johan Hedberg Date: Wed Nov 11 14:44:58 2015 +0200 Bluetooth: Move check for ongoing connect earlier in hci_connect_le() This helps simplify the logic in further patches (less cleanups to do in this failure branch). Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_conn.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 0ad06aa6a7682319bb1adcc187a1fa8db6b2da2c Author: Johan Hedberg Date: Wed Nov 11 14:44:57 2015 +0200 Bluetooth: Fix specifying role for LE connections The hci_connect_le_scan() is (as the name implies) a master/central role API, so it makes no sense in passing a role parameter to it. At the same time this patch also fixes the direct advertising support for LE L2CAP sockets where we now call the more appropriate hci_le_connect() API if slave/peripheral role is desired. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann include/net/bluetooth/hci_core.h | 2 +- net/bluetooth/hci_conn.c | 4 ++-- net/bluetooth/l2cap_core.c | 15 +++++++-------- net/bluetooth/mgmt.c | 3 +-- 4 files changed, 11 insertions(+), 13 deletions(-) commit 3dfe5905a7505bc0cbf5f63405631d8e188d9235 Author: Johan Hedberg Date: Wed Nov 11 12:24:23 2015 +0200 Bluetooth: Remove unnecessary le_scan_restart_work_complete() function The only user of this, le_scan_restart_work(), is so short and simple that it makes sense to just merge the code there. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_request.c | 60 ++++++++++++++++++--------------------------- 1 file changed, 24 insertions(+), 36 deletions(-) commit f4a2cb4d8f792350ec38b35b94026fc2c4be8d0f Author: Johan Hedberg Date: Wed Nov 11 12:24:22 2015 +0200 Bluetooth: Simplify le_scan_disable_work() Merge le_scan_disable_work_complete into the main le_scan_disable_work function and take advantage of the updated bredr_inquiry() to run the Inquiry through hci_req_sync(). Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_request.c | 148 +++++++++++++++++--------------------------- 1 file changed, 57 insertions(+), 91 deletions(-) commit 7df26b56297456a133b8cc2efb069065d6b9a555 Author: Johan Hedberg Date: Wed Nov 11 12:24:21 2015 +0200 Bluetooth: Pass inquiry length to bredr_inquiry() Passing the needed inquiry length to bredr_inquiry() makes it possible to also use this helper for interleaved discovery where the controller doesn't support simultaneous Inquiry & LE scan. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_request.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 2f27498107c298b9cdd93c77d9e3ad409949b36b Author: Johan Hedberg Date: Wed Nov 11 10:36:15 2015 +0200 Bluetooth: Fix BR/EDR Page Scan update with Add Device The recent changes to remove dependency on HCI in Add Device missed out relevant changes for BR/EDR. This patch removes the left-overs and ensures the right HCI command gets queued for BR/EDR. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/mgmt.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) commit 2154d3f4fb83c812a161c4910948dd876997e111 Author: Johan Hedberg Date: Wed Nov 11 08:30:45 2015 +0200 Bluetooth: Move Stop Discovery to req_workqueue Since discovery also deals with LE scanning it makes sense to move it behind the same req_workqueue as other LE scanning changes. This also simplifies the logic since we do many of the actions in a synchronous manner. Part of this refactoring is moving hci_req_stop_discovery() to hci_request.c. At the same time the function receives support for properly handling the STOPPING state since that's the state we'll be in when stopping through the req_workqueue. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann include/net/bluetooth/hci_core.h | 1 + net/bluetooth/hci_request.c | 62 ++++++++++++++++++++++++++++++++++ net/bluetooth/hci_request.h | 3 ++ net/bluetooth/mgmt.c | 72 +++------------------------------------- 4 files changed, 71 insertions(+), 67 deletions(-) commit e68f072b7396574df5324e1cf93e4b0c92460735 Author: Johan Hedberg Date: Wed Nov 11 08:30:30 2015 +0200 Bluetooth: Move Start Discovery to req_workqueue Since discovery also deals with LE scanning it makes sense to move it behind the same req_workqueue as other LE scanning changes. This also simplifies the logic since we do many of the actions in a synchronous manner. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann include/net/bluetooth/hci_core.h | 2 + net/bluetooth/hci_request.c | 202 +++++++++++++++++++++++++++++++++ net/bluetooth/mgmt.c | 238 ++------------------------------------- 3 files changed, 213 insertions(+), 229 deletions(-) commit a1d01db1202ee6795c0a665b43896293ad4e2a77 Author: Johan Hedberg Date: Wed Nov 11 08:11:25 2015 +0200 Bluetooth: Add error return value to hci_req_sync callback In some circumstances it may be useful to abort the request through checks done in the request callback. To make the feature possible this patch changes the return value of the request callback from void to int and aborts the request if a non-zero value is returned. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_core.c | 45 ++++++++++++++++++++++++++++++++------------- net/bluetooth/hci_request.c | 27 ++++++++++++++++++--------- net/bluetooth/hci_request.h | 8 ++++---- 3 files changed, 54 insertions(+), 26 deletions(-) commit 591752afbcc8179979296698cae698541d2e5431 Author: Johan Hedberg Date: Wed Nov 11 08:11:24 2015 +0200 Bluetooth: Add discovery type validity helper As preparation for moving the discovery HCI commands behind req_workqueue, add a helper and do the validity checks of the given discovery type before proceeding further. This way we don't need to do them again in hci_request.c. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/mgmt.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 7c1fbed23981faff2840ddc8909e7c78d80ade30 Author: Johan Hedberg Date: Wed Nov 11 08:11:23 2015 +0200 Bluetooth: Move LE scan disable/restart behind req_workqueue To avoid any risks of races, place also these LE scan modification work callbacks behind the same work queue as the other LE scan changes. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann include/net/bluetooth/hci_core.h | 5 +- net/bluetooth/hci_core.c | 168 ------------------------------------ net/bluetooth/hci_request.c | 179 +++++++++++++++++++++++++++++++++++++++ net/bluetooth/mgmt.c | 4 +- 4 files changed, 183 insertions(+), 173 deletions(-) commit 145a0913ef180af6be7af2c50056ae171c2a2b94 Author: Johan Hedberg Date: Wed Nov 11 08:11:22 2015 +0200 Bluetooth: Make __hci_update_background_scan private to hci_request.c There are no more external users so this API can be made private. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_request.c | 2 +- net/bluetooth/hci_request.h | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) commit af02dd446999796a742e3940d1a25f2b35b6eeba Author: Johan Hedberg Date: Wed Nov 11 08:11:21 2015 +0200 Bluetooth: Use req_workqueue for background scanning when powering on We can easily use the new req_workqueue based background scan update for the power on case. This also removes the last external user of __hci_update_background_scan(). Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/mgmt.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit 84235d222a297a281dbe984ef4f28519cacc5fe3 Author: Johan Hedberg Date: Wed Nov 11 08:11:20 2015 +0200 Bluetooth: Use req_workqueue for explicit connect requests Since explicit connect requests are also a sub-category of passive scan updates, run them through the same workqueue as the other passive scan changes. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_conn.c | 39 ++++----------------------------------- net/bluetooth/hci_request.c | 15 ++++++++++++++- 2 files changed, 18 insertions(+), 36 deletions(-) commit 4ebeee2dff9815619be6ff9a845d33716f48468c Author: Johan Hedberg Date: Wed Nov 11 08:11:19 2015 +0200 Bluetooth: Add HCI status return parameter to hci_req_sync() In some cases it may be important to get the exact HCI status rather than the converted HCI-to-errno value. Add an optional return parameter to the hci_req_sync() API to allow for this. Since there are no good HCI translation candidates for cancelation and timeout, use the "unknown" status code for those cases. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann include/net/bluetooth/hci.h | 3 ++- net/bluetooth/hci_core.c | 26 +++++++++++++------------- net/bluetooth/hci_request.c | 12 +++++++++--- net/bluetooth/hci_request.h | 4 ++-- 4 files changed, 26 insertions(+), 19 deletions(-) commit 51d7a94d56f842a6bd752c11de2f80f2cbc4a507 Author: Johan Hedberg Date: Wed Nov 11 08:11:18 2015 +0200 Bluetooth: Don't wait for HCI in Add/Remove Device There's no point in waiting for HCI activity in Add/Remove Device since the effects of these calls are long-lasting and we can anyway not report up to the application all HCI failures. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/mgmt.c | 161 ++++++++++++++++----------------------------------- 1 file changed, 50 insertions(+), 111 deletions(-) commit 2e93e53b8f86fb38a9a3c3bd08e539c40b3f8d89 Author: Johan Hedberg Date: Wed Nov 11 08:11:17 2015 +0200 Bluetooth: Run all background scan updates through req_workqueue Instead of firing off a simple async request queue all background scan updates through req_workqueue and use hci_req_sync() there to ensure that no two updates overlap with each other. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann include/net/bluetooth/hci_core.h | 2 ++ net/bluetooth/hci_request.c | 39 +++++++++++++++++---------------------- net/bluetooth/hci_request.h | 6 +++++- net/bluetooth/mgmt.c | 2 +- 4 files changed, 25 insertions(+), 24 deletions(-) commit 5fc16cc4f3044551587dfee8e12422cbf59303e8 Author: Johan Hedberg Date: Wed Nov 11 08:11:16 2015 +0200 Bluetooth: Add stubs for synchronous HCI request functionality Prepare hci_request.c to have code for doing synchronous HCI requests, such as LE scanning or advertising changes. The necessary work callbacks will be set up in hci_request_setup() and cleaned up in hci_request_cancel_all(). The former is used when an HCI device get registered, and the latter each time it is powered off (or unregistered). Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_core.c | 4 ++++ net/bluetooth/hci_request.c | 8 ++++++++ net/bluetooth/hci_request.h | 3 +++ 3 files changed, 15 insertions(+) commit b504430c868c2979d2dbee9be051e425fdeb36ac Author: Johan Hedberg Date: Tue Nov 10 09:44:55 2015 +0200 Bluetooth: Add 'sync' specifier to synchronous request APIs To make it clear which HCI request APIs target specifically synchronous requests, add 'sync' to the API names. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_core.c | 28 ++++++++++++++-------------- net/bluetooth/hci_request.c | 6 +++--- net/bluetooth/hci_request.h | 6 +++--- 3 files changed, 20 insertions(+), 20 deletions(-) commit be91cd05704d5a547de086d0e61c249ee62d2e13 Author: Johan Hedberg Date: Tue Nov 10 09:44:54 2015 +0200 Bluetooth: Move synchronous request handling into hci_request.c hci_request.c is a more natural place for the synchronous request handling. Furthermore, we will soon need access to some of the previously private-to-hci_core.c functions from hci_request.c. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_core.c | 193 -------------------------------------------- net/bluetooth/hci_request.c | 184 +++++++++++++++++++++++++++++++++++++++++ net/bluetooth/hci_request.h | 11 +++ 3 files changed, 195 insertions(+), 193 deletions(-) commit 030e7f8141a262e32dc064d7cf12377d769d45c2 Author: Johan Hedberg Date: Tue Nov 10 09:44:53 2015 +0200 Bluetooth: Remove unnecessary call to hci_update_background_scan The hci_conn_params_clear_all() function is only called from hci_unregister_dev() at which point it's completely futile to try to do any LE scanning updates. Simply remove this unnecessary function call. At the same time we can make the function static since it's only accessed from within the same c-file. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann include/net/bluetooth/hci_core.h | 1 - net/bluetooth/hci_core.c | 4 +--- 2 files changed, 1 insertion(+), 4 deletions(-) commit ac71494934c475e3f51e5e3e64a12f57618d82a4 Author: Marcel Holtmann Date: Sun Nov 8 07:47:13 2015 +0100 Bluetooth: Add support for controller specific logging To enable controller specific logging, the userspace daemon has to have the ability to log per controller. To facilitate this support, provide a dedicated logging channel. Messages in this channel will be included in the monitor queue and with that also forwarded to monitoring tools along with the actual hardware traces. All messages from the logging channel are timestamped and with that allow an easy correlation between userspace messages and hardware events. This will increase the ability to debug problems faster. Signed-off-by: Marcel Holtmann Signed-off-by: Johan Hedberg include/net/bluetooth/hci_mon.h | 1 + include/net/bluetooth/hci_sock.h | 1 + net/bluetooth/hci_sock.c | 102 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 104 insertions(+) commit dd31506d4aece48943802c2bca3f1f7d2e7266b4 Author: Marcel Holtmann Date: Sun Nov 8 07:47:12 2015 +0100 Bluetooth: Add support for sending system notes to monitor channel The monitor channel can be used to send generic system notes as text strings for debugging purposes. This adds the system note monitor code and uses it for including kernel and subsystem version into traces. Signed-off-by: Marcel Holtmann Signed-off-by: Johan Hedberg include/net/bluetooth/bluetooth.h | 2 ++ include/net/bluetooth/hci_mon.h | 1 + net/bluetooth/af_bluetooth.c | 8 +++----- net/bluetooth/hci_sock.c | 29 +++++++++++++++++++++++++++++ 4 files changed, 35 insertions(+), 5 deletions(-) commit 8528d3f738386706a6d2af05d7bdb542594bc95c Author: Marcel Holtmann Date: Sun Nov 8 07:47:11 2015 +0100 Bluetooth: Fix casting coding style within HCI sockets The HCI sockets code has still some old casting coding style. Fix this to match with the rest of the code. Signed-off-by: Marcel Holtmann Signed-off-by: Johan Hedberg net/bluetooth/hci_sock.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit 0ebc181884e8f538c4786840ed4abef828d4dc9b Author: Johan Hedberg Date: Fri Nov 6 13:35:33 2015 +0200 Bluetooth: Add clarifying comment why schedule_work is used It's not obvious why schedule_work is used instead of queue_work. Add a comment explaining why. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_conn.c | 4 ++++ 1 file changed, 4 insertions(+) commit 1982162bbe20672941897566f2f42d51a306a155 Author: Marcel Holtmann Date: Fri Nov 6 07:42:20 2015 +0100 Bluetooth: Add missing hci_skb_opcode for raw socket commands When HCI commands are injected via the raw socket, the core was not including the decoded opcode value. So ensure that it is actually set. Signed-off-by: Marcel Holtmann Signed-off-by: Johan Hedberg net/bluetooth/hci_sock.c | 5 +++++ 1 file changed, 5 insertions(+) commit 44d271377479c4d4fe7f2d07d188656684773fbd Author: Johan Hedberg Date: Thu Nov 5 09:31:40 2015 +0200 Bluetooth: Compress the size of struct hci_ctrl We can reduce the size of the hci_ctrl struct by converting 'bool req_start' to 'u8 req_flags' and making the two function pointers a union (since only one is ever set at a time). Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann include/net/bluetooth/bluetooth.h | 11 ++++++++--- net/bluetooth/hci_core.c | 14 +++++++------- net/bluetooth/hci_request.c | 10 +++++++--- net/bluetooth/hci_sock.c | 2 +- 4 files changed, 23 insertions(+), 14 deletions(-) commit 5fcc86bd2695d4ccad2d87cb424f4c01a4e544f3 Author: Johan Hedberg Date: Thu Nov 5 09:31:39 2015 +0200 Bluetooth: Remove redundant setting to zero of bt_cb The socket allocation functions will always memset skb->cb to zero so there's no need to make other initializations needing the same thing. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann include/net/bluetooth/bluetooth.h | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 618e8bc228cda7b8c517caac40a45ee909b8672d Author: Marcel Holtmann Date: Thu Nov 5 07:33:56 2015 +0100 Bluetooth: Use new hci_skb_pkt_* wrappers for drivers The new hci_skb_pkt_* wrappers are mainly intented for drivers to require less knowledge about bt_cb(sbk) handling. So after converting the core packet handling, convert all drivers. Signed-off-by: Marcel Holtmann Signed-off-by: Johan Hedberg drivers/bluetooth/bfusb.c | 9 ++++---- drivers/bluetooth/bluecard_cs.c | 25 ++++++++++----------- drivers/bluetooth/bpa10x.c | 4 ++-- drivers/bluetooth/bt3c_cs.c | 11 +++++----- drivers/bluetooth/btmrvl_main.c | 8 +++---- drivers/bluetooth/btmrvl_sdio.c | 4 ++-- drivers/bluetooth/btsdio.c | 6 +++--- drivers/bluetooth/btuart_cs.c | 11 +++++----- drivers/bluetooth/btusb.c | 48 ++++++++++++++++++++--------------------- drivers/bluetooth/btwilink.c | 8 +++---- drivers/bluetooth/dtl1_cs.c | 11 +++++----- drivers/bluetooth/hci_ath.c | 6 +++--- drivers/bluetooth/hci_bcm.c | 2 +- drivers/bluetooth/hci_bcsp.c | 25 ++++++++++++--------- drivers/bluetooth/hci_h4.c | 16 +++++++------- drivers/bluetooth/hci_h5.c | 14 ++++++------ drivers/bluetooth/hci_intel.c | 14 ++++++------ drivers/bluetooth/hci_ldisc.c | 5 +++-- drivers/bluetooth/hci_ll.c | 4 ++-- drivers/bluetooth/hci_qca.c | 4 ++-- drivers/bluetooth/hci_vhci.c | 8 +++---- 21 files changed, 127 insertions(+), 116 deletions(-) commit d79f34e32b833cb8651dfd4209d36cf99c89d1d3 Author: Marcel Holtmann Date: Thu Nov 5 07:10:00 2015 +0100 Bluetooth: Use new hci_skb_pkt_* wrappers for core packet handling The new hci_skb_pkt_* wrappers only help if they are used consistently in the Bluetooth subsystem. So first convert the core packet handling. Signed-off-by: Marcel Holtmann Signed-off-by: Johan Hedberg net/bluetooth/hci_core.c | 23 ++++++++++++----------- net/bluetooth/hci_request.c | 4 ++-- net/bluetooth/hci_sock.c | 38 +++++++++++++++++++------------------- 3 files changed, 33 insertions(+), 32 deletions(-) commit f5c4a42a7549cbc29dbac2b5ede05a3bc2bb4522 Author: Marcel Holtmann Date: Thu Nov 5 07:09:59 2015 +0100 Bluetooth: Add hci_skb_* helper wrappers for bt_cb(skb) access For all the HCI driver related variables accesssed via bt_cb(skb), provide helper wrappers. Signed-off-by: Marcel Holtmann Signed-off-by: Johan Hedberg include/net/bluetooth/bluetooth.h | 4 ++++ 1 file changed, 4 insertions(+) commit 5c3d3b4c4f3df584a90301b944580bf4c1974f12 Author: Marcel Holtmann Date: Wed Nov 4 07:17:23 2015 +0100 Bluetooth: Make LE only events conditional on supported commands For the LE only controllers, there are events that should not be enabled if the corresponding command is not supported. Signed-off-by: Marcel Holtmann Signed-off-by: Johan Hedberg net/bluetooth/hci_core.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) commit 9fe759ceedcdc0c43234382425a158c3f31e6909 Author: Marcel Holtmann Date: Sun Nov 1 09:45:22 2015 +0100 Bluetooth: Fix issue with HCI_QUIRK_FIXUP_INQUIRY_MODE and event mask When setting the event mask, the HCI_QUIRK_FIXUP_INQUIRY_MODE quirk is required to be checked so that the Inquiry Result with RSSI event gets actually enabled. Signed-off-by: Marcel Holtmann Signed-off-by: Johan Hedberg net/bluetooth/hci_core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 7d26f5c4be620a384c3c9c7590cae2828d50626f Author: Marcel Holtmann Date: Sun Nov 1 09:39:51 2015 +0100 Bluetooth: Build LE event mask based on supported commands The LE event mask should be created based on the commands that are actually supported by the controller. Signed-off-by: Marcel Holtmann Signed-off-by: Johan Hedberg net/bluetooth/hci_core.c | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) commit 70f56aa2ee7142a53a8c5285a685c55987a1a990 Author: Marcel Holtmann Date: Sun Nov 1 09:39:49 2015 +0100 Bluetooth: Move BR/EDR default events behind its features There are some BR/EDR default events for Bluetooth 1.2 or later controllers that are not conditional on their features being present. Signed-off-by: Marcel Holtmann Signed-off-by: Johan Hedberg net/bluetooth/hci_core.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 2c6caff2b26fde8f3f87183f8c97f2cebfdbcb98 Author: Namhyung Kim Date: Mon Nov 9 14:45:46 2015 +0900 perf ui/gtk: Support folded callchains The folded callchain mode is to print all chains in a single line. Currently perf report --gtk doesn't support folded callchains. Like flat callchains, only leaf nodes are added to the final rbtree so it should show entries in parent nodes. Signed-off-by: Namhyung Kim Tested-by: Arnaldo Carvalho de Melo Tested-by: Brendan Gregg Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Kan Liang Cc: Pekka Enberg Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1447047946-1691-11-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/ui/gtk/hists.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) commit 3cd99dfd1c87067fb28a19fee76500aed56d7c8f Author: Namhyung Kim Date: Mon Nov 9 14:45:45 2015 +0900 perf ui/gtk: Support flat callchains The flat callchain mode is to print all chains in a simple flat hierarchy so make it easy to see. Currently perf report --gtk doesn't show flat callchains properly. With flat callchains, only leaf nodes are added to the final rbtree so it should show entries in parent nodes. To do that, add parent_val list to struct callchain_node and show them along with the (normal) val list. See the previous commit on TUI support for more information. Signed-off-by: Namhyung Kim Tested-by: Brendan Gregg Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Kan Liang Cc: Pekka Enberg Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1447047946-1691-10-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/ui/gtk/hists.c | 80 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 76 insertions(+), 4 deletions(-) commit 8c430a34869946f1f5852f02d910ceef80040be5 Author: Namhyung Kim Date: Mon Nov 9 14:45:44 2015 +0900 perf hists browser: Support folded callchains The folded callchain mode prints all chains in a single line. Currently perf report --tui doesn't support folded callchains. Like flat callchains, only leaf nodes are added to the final rbtree so it should show entries in parent nodes. To do that, add flat_val list to struct callchain_node and show them along with the (normal) val list. For example, folded callchain looks like below: $ perf report -g folded --tui Samples: 234 of event 'cycles:pp', Event count (approx.): 32605268 Overhead Command Shared Object Symbol - 39.93% swapper [kernel.vmlinux] [k] intel_idle + 28.63% intel_idle; cpuidle_enter_state; cpuidle_enter; ... + 11.30% intel_idle; cpuidle_enter_state; cpuidle_enter; ... Signed-off-by: Namhyung Kim Tested-by: Arnaldo Carvalho de Melo Tested-by: Brendan Gregg Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Kan Liang Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1447047946-1691-9-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/ui/browsers/hists.c | 125 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 124 insertions(+), 1 deletion(-) commit 4b3a3212233a042f48b7b8fedc64933e1ccd8643 Author: Namhyung Kim Date: Mon Nov 9 14:45:43 2015 +0900 perf hists browser: Support flat callchains The flat callchain mode is to print all chains in a single, simple hierarchy so make it easy to see. Currently perf report --tui doesn't show flat callchains properly. With flat callchains, only leaf nodes are added to the final rbtree so it should show entries in parent nodes. To do that, add parent_val list to struct callchain_node and show them along with the (normal) val list. For example, consider following callchains with '-g graph'. $ perf report -g graph - 39.93% swapper [kernel.vmlinux] [k] intel_idle intel_idle cpuidle_enter_state cpuidle_enter call_cpuidle - cpu_startup_entry 28.63% start_secondary - 11.30% rest_init start_kernel x86_64_start_reservations x86_64_start_kernel Before: $ perf report -g flat - 39.93% swapper [kernel.vmlinux] [k] intel_idle 28.63% start_secondary - 11.30% rest_init start_kernel x86_64_start_reservations x86_64_start_kernel After: $ perf report -g flat - 39.93% swapper [kernel.vmlinux] [k] intel_idle - 28.63% intel_idle cpuidle_enter_state cpuidle_enter call_cpuidle cpu_startup_entry start_secondary - 11.30% intel_idle cpuidle_enter_state cpuidle_enter call_cpuidle cpu_startup_entry start_kernel x86_64_start_reservations x86_64_start_kernel Signed-off-by: Namhyung Kim Tested-by: Arnaldo Carvalho de Melo Tested-by: Brendan Gregg Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Kan Liang Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1447047946-1691-8-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/ui/browsers/hists.c | 122 ++++++++++++++++++++++++++++++++++++++++- tools/perf/util/callchain.c | 44 +++++++++++++++ tools/perf/util/callchain.h | 2 + 3 files changed, 166 insertions(+), 2 deletions(-) commit 18bb838129b08fb0009b1ba1dc2f748a9537ee89 Author: Namhyung Kim Date: Mon Nov 9 14:45:42 2015 +0900 perf hists browser: Factor out hist_browser__show_callchain_list() This function is to print a single callchain list entry. As this function will be used by other function, factor out to a separate function. Signed-off-by: Namhyung Kim Cc: Andi Kleen Cc: Brendan Gregg Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Kan Liang Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1447047946-1691-7-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/ui/browsers/hists.c | 72 ++++++++++++++++++++++++++---------------- 1 file changed, 45 insertions(+), 27 deletions(-) commit f2af008695e0b54a58b76caecd52af7e6c97fb29 Author: Namhyung Kim Date: Mon Nov 9 14:45:41 2015 +0900 perf report: Add callchain value option Now -g/--call-graph option supports how to display callchain values. Possible values are 'percent', 'period' and 'count'. The percent is same as before and it's the default behavior. The period displays the raw period value rather than the percentage. The count displays the number of occurrences. $ perf report --no-children --stdio -g percent ... 39.93% swapper [kernel.vmlinux] [k] intel_idel | ---intel_idle cpuidle_enter_state cpuidle_enter call_cpuidle cpu_startup_entry | |--28.63%-- start_secondary | --11.30%-- rest_init $ perf report --no-children --show-total-period --stdio -g period ... 39.93% 13018705 swapper [kernel.vmlinux] [k] intel_idel | ---intel_idle cpuidle_enter_state cpuidle_enter call_cpuidle cpu_startup_entry | |--9334403-- start_secondary | --3684302-- rest_init $ perf report --no-children --show-nr-samples --stdio -g count ... 39.93% 80 swapper [kernel.vmlinux] [k] intel_idel | ---intel_idle cpuidle_enter_state cpuidle_enter call_cpuidle cpu_startup_entry | |--57-- start_secondary | --23-- rest_init Signed-off-by: Namhyung Kim Acked-by: Brendan Gregg Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Kan Liang Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1447047946-1691-6-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-report.txt | 13 ++++--- tools/perf/builtin-report.c | 4 +-- tools/perf/ui/stdio/hist.c | 10 +++++- tools/perf/util/callchain.c | 62 +++++++++++++++++++++++++++----- tools/perf/util/callchain.h | 10 +++++- tools/perf/util/util.c | 3 +- 6 files changed, 84 insertions(+), 18 deletions(-) commit 5e47f8ff406296bd078716d71283796ca5c6544b Author: Namhyung Kim Date: Mon Nov 9 14:45:40 2015 +0900 perf callchain: Add count fields to struct callchain_node It's to track the count of occurrences of the callchains. Signed-off-by: Namhyung Kim Acked-by: Brendan Gregg Acked-by: Jiri Olsa Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Kan Liang Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1447047946-1691-5-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/callchain.c | 10 ++++++++++ tools/perf/util/callchain.h | 7 +++++++ 2 files changed, 17 insertions(+) commit 5ab250cafcd884a2638b102239870bddca42ff88 Author: Namhyung Kim Date: Mon Nov 9 14:45:39 2015 +0900 perf callchain: Abstract callchain print function This is a preparation to support for printing other type of callchain value like count or period. Signed-off-by: Namhyung Kim Tested-by: Brendan Gregg Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Kan Liang Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1447047946-1691-4-git-send-email-namhyung@kernel.org [ renamed new _sprintf_ operation to _scnprintf_ ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/ui/browsers/hists.c | 8 +++++--- tools/perf/ui/gtk/hists.c | 8 ++------ tools/perf/ui/stdio/hist.c | 35 +++++++++++++++++------------------ tools/perf/util/callchain.c | 29 +++++++++++++++++++++++++++++ tools/perf/util/callchain.h | 4 ++++ 5 files changed, 57 insertions(+), 27 deletions(-) commit 26e779245dd6f5270c0696860438e5c03d0780fd Author: Namhyung Kim Date: Mon Nov 9 14:45:37 2015 +0900 perf report: Support folded callchain mode on --stdio Add new call chain option (-g) 'folded' to print callchains in a line. The callchains are separated by semicolons, and preceded by (absolute) percent values and a space. For example, the following 20 lines can be printed in 3 lines with the folded output mode: $ perf report -g flat --no-children | grep -v ^# | head -20 60.48% swapper [kernel.vmlinux] [k] intel_idle 54.60% intel_idle cpuidle_enter_state cpuidle_enter call_cpuidle cpu_startup_entry start_secondary 5.88% intel_idle cpuidle_enter_state cpuidle_enter call_cpuidle cpu_startup_entry rest_init start_kernel x86_64_start_reservations x86_64_start_kernel $ perf report -g folded --no-children | grep -v ^# | head -3 60.48% swapper [kernel.vmlinux] [k] intel_idle 54.60% intel_idle;cpuidle_enter_state;cpuidle_enter;call_cpuidle;cpu_startup_entry;start_secondary 5.88% intel_idle;cpuidle_enter_state;cpuidle_enter;call_cpuidle;cpu_startup_entry;rest_init;start_kernel;x86_64_start_reservations;x86_64_start_kernel This mode is supported only for --stdio now and intended to be used by some scripts like in FlameGraphs[1]. Support for other UI might be added later. [1] http://www.brendangregg.com/FlameGraphs/cpuflamegraphs.html Requested-and-Tested-by: Brendan Gregg Signed-off-by: Namhyung Kim Tested-by: Arnaldo Carvalho de Melo Acked-by: Jiri Olsa Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Kan Liang Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1447047946-1691-2-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-report.txt | 1 + tools/perf/ui/stdio/hist.c | 55 ++++++++++++++++++++++++++++++++ tools/perf/util/callchain.c | 6 ++++ tools/perf/util/callchain.h | 5 +-- 4 files changed, 65 insertions(+), 2 deletions(-) commit 566c69c36e6178774dd484ea4a02b76f6bd0ede4 Author: Masami Hiramatsu Date: Wed Nov 18 15:40:35 2015 +0900 perf machine: Fix machine__findnew_module_map to put dso Fix machine__findnew_module_map to drop the reference to the dso because it is already referenced by both machine__findnew_module_dso() and map__new2(). Refcnt debugger shows: ==== [1] ==== Unreclaimed dso: 0x1ffd980 Refcount +1 => 1 at ./perf(dso__new+0x1ff) [0x4a62df] ./perf(__dsos__addnew+0x29) [0x4a6e19] ./perf() [0x4b8b91] ./perf(modules__parse+0xfc) [0x4a9d5c] ./perf() [0x4b8460] ./perf(machine__create_kernel_maps+0x150) [0x4bb550] ./perf(machine__new_host+0xfa) [0x4bb75a] ./perf(init_probe_symbol_maps+0x93) [0x506623] ./perf() [0x455ffa] ./perf(cmd_probe+0x6c) [0x4566bc] ./perf() [0x47abc5] ./perf(main+0x610) [0x421f90] /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f1345a8eaf5] ./perf() [0x4220a9] This map_groups__insert(0x4b8b91) already gets a reference to the new dso: ---- eu-addr2line -e ./perf -f 0x4b8b91 map_groups__insert inlined at util/machine.c:586 in machine__create_module util/map.h:207 ---- So this dso refcnt will be released when map_groups gets released. [snip] Refcount +1 => 2 at ./perf(dso__get+0x34) [0x4a65f4] ./perf() [0x4b8b35] ./perf(modules__parse+0xfc) [0x4a9d5c] ./perf() [0x4b8460] ./perf(machine__create_kernel_maps+0x150) [0x4bb550] ./perf(machine__new_host+0xfa) [0x4bb75a] ./perf(init_probe_symbol_maps+0x93) [0x506623] ./perf() [0x455ffa] ./perf(cmd_probe+0x6c) [0x4566bc] ./perf() [0x47abc5] ./perf(main+0x610) [0x421f90] /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f1345a8eaf5] ./perf() [0x4220a9] Here, machine__findnew_module_dso(0x4b8b35) gets the dso (and stores it in a local variable): ---- # eu-addr2line -e ./perf -f 0x4b8b35 machine__findnew_module_dso inlined at util/machine.c:578 in machine__create_module util/machine.c:514 ---- Refcount +1 => 3 at ./perf(dso__get+0x34) [0x4a65f4] ./perf(map__new2+0x76) [0x4be1c6] ./perf() [0x4b8b4f] ./perf(modules__parse+0xfc) [0x4a9d5c] ./perf() [0x4b8460] ./perf(machine__create_kernel_maps+0x150) [0x4bb550] ./perf(machine__new_host+0xfa) [0x4bb75a] ./perf(init_probe_symbol_maps+0x93) [0x506623] ./perf() [0x455ffa] ./perf(cmd_probe+0x6c) [0x4566bc] ./perf() [0x47abc5] ./perf(main+0x610) [0x421f90] /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f1345a8eaf5] ./perf() [0x4220a9] But also map__new2() gets the dso which will be put when the map is released. So, we have to drop the constructor reference obtained in machine__findnew_module_dso(). Signed-off-by: Masami Hiramatsu Cc: Adrian Hunter Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20151118064035.30709.58824.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/machine.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 1154c957607afdf5936ae14e1be27d7ca4e7bd30 Author: Masami Hiramatsu Date: Wed Nov 18 15:40:33 2015 +0900 perf tools: Fix machine__create_kernel_maps to put kernel dso refcount Fix machine__create_kernel_maps() to put kernel dso because the dso has been gotten via __machine__create_kernel_maps(). Refcnt debugger shows: ==== [0] ==== Unreclaimed dso: 0x3036ab0 Refcount +1 => 1 at ./perf(dso__new+0x1ff) [0x4a62df] ./perf(__dsos__addnew+0x29) [0x4a6e19] ./perf(dsos__findnew+0xd1) [0x4a7181] ./perf(machine__findnew_kernel+0x27) [0x4a5e17] ./perf() [0x4b8cf2] ./perf(machine__create_kernel_maps+0x28) [0x4bb428] ./perf(machine__new_host+0xfa) [0x4bb74a] ./perf(init_probe_symbol_maps+0x93) [0x506613] ./perf() [0x455ffa] ./perf(cmd_probe+0x6c) [0x4566bc] ./perf() [0x47abc5] ./perf(main+0x610) [0x421f90] /lib64/libc.so.6(__libc_start_main+0xf5) [0x7ffa6809eaf5] ./perf() [0x4220a9] [snip] Refcount +1 => 2 at ./perf(dsos__findnew+0x7e) [0x4a712e] ./perf(machine__findnew_kernel+0x27) [0x4a5e17] ./perf() [0x4b8cf2] ./perf(machine__create_kernel_maps+0x28) [0x4bb428] ./perf(machine__new_host+0xfa) [0x4bb74a] ./perf(init_probe_symbol_maps+0x93) [0x506613] ./perf() [0x455ffa] ./perf(cmd_probe+0x6c) [0x4566bc] ./perf() [0x47abc5] ./perf(main+0x610) [0x421f90] /lib64/libc.so.6(__libc_start_main+0xf5) [0x7ffa6809eaf5] ./perf() [0x4220a9] [snip] Refcount -1 => 1 at ./perf(dso__put+0x2f) [0x4a664f] ./perf(machine__delete+0xfe) [0x4b93ee] ./perf(exit_probe_symbol_maps+0x28) [0x5066b8] ./perf() [0x45628a] ./perf(cmd_probe+0x6c) [0x4566bc] ./perf() [0x47abc5] ./perf(main+0x610) [0x421f90] /lib64/libc.so.6(__libc_start_main+0xf5) [0x7ffa6809eaf5] ./perf() [0x4220a9] Actually, dsos__findnew gets the dso before returning it, so the dso user (in this case machine__create_kernel_maps) has to put the dso after used. Signed-off-by: Masami Hiramatsu Cc: Adrian Hunter Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20151118064033.30709.98954.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/machine.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 82de26abdc127172fd7453a61d35a9b33bf4f871 Author: Masami Hiramatsu Date: Wed Nov 18 15:40:31 2015 +0900 perf tools: Fix __dsos__addnew to put dso after adding it to the list __dsos__addnew should drop the constructor reference to dso after adding it to the list, because __dsos__add() will get a reference that will be kept while it is in the list. This fixes DSO leaks when entries are removed to the list and the refcount never gets to zero. Refcnt debugger shows: ==== [0] ==== Unreclaimed dso: 0x2fccab0 Refcount +1 => 1 at ./perf(dso__new+0x1ff) [0x4a62df] ./perf(__dsos__addnew+0x29) [0x4a6e19] ./perf(dsos__findnew+0xd1) [0x4a7281] ./perf(machine__findnew_kernel+0x27) [0x4a5e17] ./perf() [0x4b8df2] ./perf(machine__create_kernel_maps+0x28) [0x4bb528] ./perf(machine__new_host+0xfa) [0x4bb84a] ./perf(init_probe_symbol_maps+0x93) [0x506713] ./perf() [0x455ffa] ./perf(cmd_probe+0x6c) [0x4566bc] ./perf() [0x47abc5] ./perf(main+0x610) [0x421f90] /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f46df132af5] ./perf() [0x4220a9] Refcount +1 => 2 at ./perf(__dsos__addnew+0xfb) [0x4a6eeb] ./perf(dsos__findnew+0xd1) [0x4a7281] ./perf(machine__findnew_kernel+0x27) [0x4a5e17] ./perf() [0x4b8df2] ./perf(machine__create_kernel_maps+0x28) [0x4bb528] ./perf(machine__new_host+0xfa) [0x4bb84a] ./perf(init_probe_symbol_maps+0x93) [0x506713] ./perf() [0x455ffa] ./perf(cmd_probe+0x6c) [0x4566bc] ./perf() [0x47abc5] ./perf(main+0x610) [0x421f90] /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f46df132af5] ./perf() [0x4220a9] Refcount +1 => 3 at ./perf(dsos__findnew+0x7e) [0x4a722e] ./perf(machine__findnew_kernel+0x27) [0x4a5e17] ./perf() [0x4b8df2] ./perf(machine__create_kernel_maps+0x28) [0x4bb528] ./perf(machine__new_host+0xfa) [0x4bb84a] ./perf(init_probe_symbol_maps+0x93) [0x506713] ./perf() [0x455ffa] ./perf(cmd_probe+0x6c) [0x4566bc] ./perf() [0x47abc5] ./perf(main+0x610) [0x421f90] /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f46df132af5] ./perf() [0x4220a9] [snip] Signed-off-by: Masami Hiramatsu Cc: Adrian Hunter Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20151118064031.30709.81460.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/dso.c | 2 ++ 1 file changed, 2 insertions(+) commit 8d5c340dfcd48751fdff301bb2a7e3f875652dcb Author: Masami Hiramatsu Date: Wed Nov 18 15:40:27 2015 +0900 perf tools: Fix to put new map after inserting to map_groups in dso__load_sym Fix dso__load_sym to put the map object which is already insterted to kmaps. Refcnt debugger shows ==== [0] ==== Unreclaimed map: 0x39113e0 Refcount +1 => 1 at ./perf(map__new2+0xb5) [0x4be155] ./perf(dso__load_sym+0xee1) [0x503461] ./perf(dso__load_vmlinux+0xbf) [0x4aa6df] ./perf(dso__load_vmlinux_path+0x8c) [0x4aa83c] ./perf() [0x50528a] ./perf(convert_perf_probe_events+0xd79) [0x50ac29] ./perf() [0x45600f] ./perf(cmd_probe+0x6c) [0x4566bc] ./perf() [0x47abc5] ./perf(main+0x610) [0x421f90] /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f152368baf5] ./perf() [0x4220a9] Refcount +1 => 2 at ./perf(maps__insert+0x9a) [0x4bfffa] ./perf(dso__load_sym+0xf89) [0x503509] ./perf(dso__load_vmlinux+0xbf) [0x4aa6df] ./perf(dso__load_vmlinux_path+0x8c) [0x4aa83c] ./perf() [0x50528a] ./perf(convert_perf_probe_events+0xd79) [0x50ac29] ./perf() [0x45600f] ./perf(cmd_probe+0x6c) [0x4566bc] ./perf() [0x47abc5] ./perf(main+0x610) [0x421f90] /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f152368baf5] ./perf() [0x4220a9] Refcount -1 => 1 at ./perf(map_groups__exit+0x94) [0x4bed04] ./perf(machine__delete+0xb0) [0x4b9300] ./perf(exit_probe_symbol_maps+0x28) [0x506608] ./perf() [0x45628a] ./perf(cmd_probe+0x6c) [0x4566bc] ./perf() [0x47abc5] ./perf(main+0x610) [0x421f90] /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f152368baf5] ./perf() [0x4220a9] This means that the dso__load_sym calls map__new2 and maps_insert, both of them bump the map refcount, but map_groups__exit will drop just one reference. Fix it by dropping the refcount after inserting it into kmaps. Signed-off-by: Masami Hiramatsu Cc: Adrian Hunter Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20151118064026.30709.50038.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/symbol-elf.c | 2 ++ 1 file changed, 2 insertions(+) commit c4068f51d40df151a661a384ab1309b11d7f012e Author: Masami Hiramatsu Date: Thu Nov 19 15:04:53 2015 +0900 perf tools: Make perf_exec_path() always return malloc'd string Since system_path() returns malloc'd string if given path is not an absolute path, perf_exec_path() sometimes returns a static string and sometimes returns a malloc'd string depending on the environment variables or command options. This may cause a memory leak because the caller can not unconditionally free the returned string. This fixes perf_exec_path() and system_path() to always return a malloc'd string, so the caller can always free it. Signed-off-by: Masami Hiramatsu Cc: Adrian Hunter Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20151119060453.14210.65666.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/exec_cmd.c | 21 +++++++++++---------- tools/perf/util/exec_cmd.h | 5 +++-- tools/perf/util/help.c | 6 ++++-- 3 files changed, 18 insertions(+), 14 deletions(-) commit ebe9729c8c3171aa46ad5d7af40acdc29806689d Author: Masami Hiramatsu Date: Wed Nov 18 15:40:24 2015 +0900 perf machine: Fix to destroy kernel maps when machine exits Actually machine__exit forgot to call machine__destroy_kernel_maps. This fixes some memory leaks on map as below. Without this fix. ---- ./perf probe vfs_read Added new event: probe:vfs_read (on vfs_read) You can now use it in all perf tools, such as: perf record -e probe:vfs_read -aR sleep 1 REFCNT: BUG: Unreclaimed objects found. REFCNT: Total 4 objects are not reclaimed. To see all backtraces, rerun with -v option ---- With this fix. ---- ./perf probe vfs_read Added new event: probe:vfs_read (on vfs_read) You can now use it in all perf tools, such as: perf record -e probe:vfs_read -aR sleep 1 REFCNT: BUG: Unreclaimed objects found. REFCNT: Total 2 objects are not reclaimed. To see all backtraces, rerun with -v option ---- Signed-off-by: Masami Hiramatsu Cc: Adrian Hunter Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20151118064024.30709.43577.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/machine.c | 1 + 1 file changed, 1 insertion(+) commit e96e4078e9a5ea150b3ad9a296440a7976439e4a Author: Masami Hiramatsu Date: Wed Nov 18 15:40:22 2015 +0900 perf machine: Fix machine__destroy_kernel_maps to drop vmlinux_maps references Fix machine__destroy_kernel_maps() to drop vmlinux_maps references before filling it with NULL. Refcnt debugger shows ==== [1] ==== Unreclaimed map: 0x36b1070 Refcount +1 => 1 at ./perf(map__new2+0xb5) [0x4bdec5] ./perf(machine__create_kernel_maps+0x72) [0x4bb152] ./perf(machine__new_host+0xfa) [0x4bb41a] ./perf(init_probe_symbol_maps+0x93) [0x5062d3] ./perf() [0x455ffa] ./perf(cmd_probe+0x6c) [0x4566bc] ./perf() [0x47abc5] ./perf(main+0x610) [0x421f90] /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f1fc9fc4af5] ./perf() [0x4220a9] Refcount +1 => 2 at ./perf(maps__insert+0x9a) [0x4bfd6a] ./perf(machine__create_kernel_maps+0xc3) [0x4bb1a3] ./perf(machine__new_host+0xfa) [0x4bb41a] ./perf(init_probe_symbol_maps+0x93) [0x5062d3] ./perf() [0x455ffa] ./perf(cmd_probe+0x6c) [0x4566bc] ./perf() [0x47abc5] ./perf(main+0x610) [0x421f90] /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f1fc9fc4af5] ./perf() [0x4220a9] Refcount -1 => 1 at ./perf(map_groups__exit+0x94) [0x4bea74] ./perf(machine__delete+0x3d) [0x4b91fd] ./perf(exit_probe_symbol_maps+0x28) [0x506378] ./perf() [0x45628a] ./perf(cmd_probe+0x6c) [0x4566bc] ./perf() [0x47abc5] ./perf(main+0x610) [0x421f90] /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f1fc9fc4af5] ./perf() [0x4220a9] map__new2() returns map with refcnt = 1, and also map_groups__insert gets it again in__machine__create_kernel_maps(). machine__destroy_kernel_maps() calls map_groups__remove() to decrement the refcnt, but before decrement it again (corresponding to map__new2), it makes vmlinux_maps[type] = NULL. And this may cause a refcnt leak. Signed-off-by: Masami Hiramatsu Cc: Adrian Hunter Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20151118064022.30709.3897.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/machine.c | 1 + 1 file changed, 1 insertion(+) commit 9afcb420d6cfeadf5d872f395061c611536615fb Author: Masami Hiramatsu Date: Wed Nov 18 15:40:20 2015 +0900 perf machine: Fix machine__findnew_module_map to put registered map Fix machine object to drop the reference to the map object after it inserted it into machine->kmaps. refcnt debugger shows what happened: ---- ==== [2] ==== Unreclaimed map: 0x346f750 Refcount +1 => 1 at ./perf(map__new2+0xb5) [0x4bdea5] ./perf() [0x4b8aaf] ./perf(modules__parse+0xfc) [0x4a9cbc] ./perf() [0x4b83c0] ./perf(machine__create_kernel_maps+0x148) [0x4bb208] ./perf(machine__new_host+0xfa) [0x4bb3fa] ./perf(init_probe_symbol_maps+0x93) [0x5062b3] ./perf() [0x455ffa] ./perf(cmd_probe+0x6c) [0x4566bc] ./perf() [0x47abc5] ./perf(main+0x610) [0x421f90] /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f5373899af5] ./perf() [0x4220a9] Refcount +1 => 2 at ./perf(maps__insert+0x9a) [0x4bfd4a] ./perf() [0x4b8acb] ./perf(modules__parse+0xfc) [0x4a9cbc] ./perf() [0x4b83c0] ./perf(machine__create_kernel_maps+0x148) [0x4bb208] ./perf(machine__new_host+0xfa) [0x4bb3fa] ./perf(init_probe_symbol_maps+0x93) [0x5062b3] ./perf() [0x455ffa] ./perf(cmd_probe+0x6c) [0x4566bc] ./perf() [0x47abc5] ./perf(main+0x610) [0x421f90] /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f5373899af5] ./perf() [0x4220a9] Refcount -1 => 1 at ./perf(map_groups__exit+0x94) [0x4bea54] ./perf(machine__delete+0x3d) [0x4b91ed] ./perf(exit_probe_symbol_maps+0x28) [0x506358] ./perf() [0x45628a] ./perf(cmd_probe+0x6c) [0x4566bc] ./perf() [0x47abc5] ./perf(main+0x610) [0x421f90] /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f5373899af5] ./perf() [0x4220a9] ---- This pattern clearly shows that the refcnt of the map is acquired twice by map__new2 and maps__insert but released onlu once at map_groups__exit, when we purge its maps rbtree. Since maps__insert already reference counted the map, we have to drop the constructor (map__new2) reference count right after inserting it. These happened in machine__findnew_module_map, as below. ---- # eu-addr2line -e ./perf -f 0x4b8aaf machine__findnew_module_map inlined at util/machine.c:1046 in machine__create_module util/machine.c:582 # eu-addr2line -e ./perf -f 0x4b8acb map_groups__insert inlined at util/machine.c:585 in machine__create_module util/map.h:208 ---- (note that both are at util/machine.c:58X which is machine__findnew_module_map) Signed-off-by: Masami Hiramatsu Cc: Adrian Hunter Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20151118064020.30709.40499.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/machine.c | 2 ++ 1 file changed, 2 insertions(+) commit 05c8d802fa52ef17dbcce21c38b72b4a313eb036 Author: Masami Hiramatsu Date: Wed Nov 18 15:40:12 2015 +0900 perf probe: Fix to free temporal Dwarf_Frame Since dwarf_cfi_addrframe returns malloc'd Dwarf_Frame object, it has to be freed after it is used. Signed-off-by: Masami Hiramatsu Cc: Adrian Hunter Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20151118064011.30709.65674.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/probe-finder.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 5bcf2fe05318deb6fec209b4028d8a31f9f47221 Author: Wang Nan Date: Tue Nov 17 08:32:50 2015 +0000 perf test: Mute test cases error messages if verbose == 0 Sometimes error messages in breaks the pretty output of 'perf test'. For example: # mv /lib/modules/4.3.0-rc4+/build/vmlinux{,.bak} # perf test LLVM BPF 35: Test LLVM searching and compiling : 35.1: Basic BPF llvm compiling test : Ok 35.2: Test kbuild searching : Ok 35.3: Compile source for BPF prologue generation test : Ok 37: Test BPF filter : 37.1: Test basic BPF filtering : Ok 37.2: Test BPF prologue generation :Failed to find the path for kernel: No such file or directory FAILED! This patch mute test cases thoroughly by redirect their stdout and stderr to /dev/null when verbose == 0. After applying this patch: # ./perf test LLVM BPF 35: Test LLVM searching and compiling : 35.1: Basic BPF llvm compiling test : Ok 35.2: Test kbuild searching : Ok 35.3: Compile source for BPF prologue generation test : Ok 37: Test BPF filter : 37.1: Test basic BPF filtering : Ok 37.2: Test BPF prologue generation : FAILED! # ./perf test -v LLVM BPF 35: Test LLVM searching and compiling : 35.1: Basic BPF llvm compiling test : --- start --- test child forked, pid 13183 Kernel build dir is set to /lib/modules/4.3.0-rc4+/build set env: KBUILD_DIR=/lib/modules/4.3.0-rc4+/build ... bpf: config 'func=null_lseek file->f_mode offset orig' is ok Looking at the vmlinux_path (7 entries long) Failed to find the path for kernel: No such file or directory bpf_probe: failed to convert perf probe eventsFailed to add events selected by BPF test child finished with -1 ---- end ---- Test BPF filter subtest 1: FAILED! Signed-off-by: Wang Nan Tested-by: Arnaldo Carvalho de Melo Cc: Alexei Starovoitov Cc: Masami Hiramatsu Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1447749170-175898-6-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/builtin-test.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 77a0cf682f7979554e10a6c605a1fef4f4197654 Author: Wang Nan Date: Tue Nov 17 08:32:49 2015 +0000 perf test: Print result for each BPF subtest This patch prints each sub-tests results for BPF testcases. Before: # ./perf test BPF 37: Test BPF filter : Ok After: # ./perf test BPF 37: Test BPF filter : 37.1: Test basic BPF filtering : Ok 37.2: Test BPF prologue generation : Ok When a failure happens: # cat ~/.perfconfig [llvm] clang-path = "/bin/false" # ./perf test BPF 37: Test BPF filter : 37.1: Test basic BPF filtering : Skip 37.2: Test BPF prologue generation : Skip Suggested-and-Tested-by: Arnaldo Carvalho de Melo Signed-off-by: Wang Nan Cc: Alexei Starovoitov Cc: Masami Hiramatsu Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1447749170-175898-5-git-send-email-wangnan0@huawei.com [ Fixed up not to use .func in an anonymous union ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/bpf.c | 38 ++++++++++++++++++++++++++++---------- tools/perf/tests/builtin-test.c | 5 +++++ tools/perf/tests/tests.h | 2 ++ 3 files changed, 35 insertions(+), 10 deletions(-) commit e8c6d500447c577e669c24ec04cd4173fe9f9afb Author: Wang Nan Date: Tue Nov 17 08:32:48 2015 +0000 perf test: Print result for each LLVM subtest Currently 'perf test llvm' and 'perf test BPF' have multiple sub-tests, but the result is provided in only one line: # perf test LLVM 35: Test LLVM searching and compiling : Ok This patch introduces sub-tests support, allowing 'perf test' to report result for each sub-tests: # perf test LLVM 35: Test LLVM searching and compiling : 35.1: Basic BPF llvm compiling test : Ok 35.2: Test kbuild searching : Ok 35.3: Compile source for BPF prologue generation test : Ok When a failure happens: # cat ~/.perfconfig [llvm] clang-path = "/bin/false" # perf test LLVM 35: Test LLVM searching and compiling : 35.1: Basic BPF llvm compiling test : FAILED! 35.2: Test kbuild searching : Skip 35.3: Compile source for BPF prologue generation test : Skip And: # rm ~/.perfconfig # ./perf test LLVM 35: Test LLVM searching and compiling : 35.1: Basic BPF llvm compiling test : Skip 35.2: Test kbuild searching : Skip 35.3: Compile source for BPF prologue generation test : Skip Skip by user: # ./perf test -s 1,`seq -s , 3 42` 1: vmlinux symtab matches kallsyms : Skip (user override) 2: detect openat syscall event : Ok ... 35: Test LLVM searching and compiling : Skip (user override) ... Suggested-and-Tested-by: Arnaldo Carvalho de Melo Signed-off-by: Wang Nan Cc: Alexei Starovoitov Cc: Masami Hiramatsu Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1447749170-175898-4-git-send-email-wangnan0@huawei.com [ Changed so that func is not on an anonymous union ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/builtin-test.c | 91 ++++++++++++++++++++++++++++++++++------- tools/perf/tests/llvm.c | 65 ++++++++++++++--------------- tools/perf/tests/tests.h | 9 ++++ 3 files changed, 115 insertions(+), 50 deletions(-) commit 721a1f53df6aad3ea941f5fe95519d0d8e02bd65 Author: Arnaldo Carvalho de Melo Date: Thu Nov 19 12:01:48 2015 -0300 perf tests: Pass the subtest index to each test routine Some tests have sub-tests we want to run, so allow passing this. Wang tried to avoid having to touch all tests, but then, having the test.func in an anonymous union makes the build fail on older compilers, like the one in RHEL6, where: test a = { .func = foo, }; fails. To fix it leave the func pointer in the main structure and pass the subtest index to all tests, end result function is the same, but we have just one function pointer, not two, with and without the subtest index as an argument. Cc: Adrian Hunter Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Wang Nan Link: http://lkml.kernel.org/n/tip-5genj0ficwdmelpoqlds0u4y@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/arch/x86/include/arch-tests.h | 8 +-- tools/perf/arch/x86/tests/insn-x86.c | 2 +- tools/perf/arch/x86/tests/intel-cqm.c | 2 +- tools/perf/arch/x86/tests/perf-time-to-tsc.c | 2 +- tools/perf/arch/x86/tests/rdpmc.c | 2 +- tools/perf/tests/attr.c | 2 +- tools/perf/tests/bp_signal.c | 2 +- tools/perf/tests/bp_signal_overflow.c | 2 +- tools/perf/tests/bpf.c | 2 +- tools/perf/tests/builtin-test.c | 6 +-- tools/perf/tests/code-reading.c | 2 +- tools/perf/tests/dso-data.c | 6 +-- tools/perf/tests/dwarf-unwind.c | 2 +- tools/perf/tests/evsel-roundtrip-name.c | 2 +- tools/perf/tests/evsel-tp-sched.c | 2 +- tools/perf/tests/fdarray.c | 4 +- tools/perf/tests/hists_cumulate.c | 2 +- tools/perf/tests/hists_filter.c | 2 +- tools/perf/tests/hists_link.c | 2 +- tools/perf/tests/hists_output.c | 2 +- tools/perf/tests/keep-tracking.c | 2 +- tools/perf/tests/kmod-path.c | 2 +- tools/perf/tests/llvm.c | 2 +- tools/perf/tests/mmap-basic.c | 2 +- tools/perf/tests/mmap-thread-lookup.c | 2 +- tools/perf/tests/openat-syscall-all-cpus.c | 2 +- tools/perf/tests/openat-syscall-tp-fields.c | 2 +- tools/perf/tests/openat-syscall.c | 2 +- tools/perf/tests/parse-events.c | 2 +- tools/perf/tests/parse-no-sample-id-all.c | 2 +- tools/perf/tests/perf-record.c | 2 +- tools/perf/tests/pmu.c | 2 +- tools/perf/tests/python-use.c | 3 +- tools/perf/tests/sample-parsing.c | 2 +- tools/perf/tests/sw-clock.c | 2 +- tools/perf/tests/switch-tracking.c | 2 +- tools/perf/tests/task-exit.c | 2 +- tools/perf/tests/tests.h | 78 ++++++++++++++-------------- tools/perf/tests/thread-map.c | 2 +- tools/perf/tests/thread-mg-share.c | 2 +- tools/perf/tests/topology.c | 2 +- tools/perf/tests/vmlinux-kallsyms.c | 2 +- 42 files changed, 89 insertions(+), 88 deletions(-) commit 34a315883f60344f2116dcd445388531d09dc066 Author: Marek Vasut Date: Thu Nov 19 10:15:05 2015 -0600 ARM: socfpga: Add support for DENX MCV SoM and MCVEVK baseboard Add support for the DENX MCV SoM and MCVEVK baseboard. The SoM contains eMMC, DRAM, Altera Cyclone V SoC. The baseboard contains CAN ports, UART ports, STMPE811 touchscreen controller, USB OTG port, ethernet port and a lot of IO pins. Signed-off-by: Marek Vasut Reviewed-by: Steffen Trumtrar Cc: Vince Bridgers Cc: Alan Tull Cc: Thor Thayer Cc: Olof Johansson Signed-off-by: Dinh Nguyen arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/socfpga_cyclone5_mcv.dtsi | 33 ++++++++++ arch/arm/boot/dts/socfpga_cyclone5_mcvevk.dts | 94 +++++++++++++++++++++++++++ 3 files changed, 128 insertions(+) commit 54632abe8ca3db8621673b186c7cc0e869c0032f Author: Lukas Wunner Date: Wed Nov 18 13:43:20 2015 +0100 drm/i915: Fix oops caused by fbdev initialization failure intelfb_create() is called once on driver initialization. If it fails, ifbdev->helper.fbdev, ifbdev->fb or ifbdev->fb->obj may be NULL. Further up in the call stack, intel_fbdev_initial_config() calls intel_fbdev_fini() to tear down the ifbdev on failure. This calls intel_fbdev_destroy() which dereferences ifbdev->fb. Fix the ensuing oops. Also check in these functions if ifbdev is not NULL to avoid oops: i915_gem_framebuffer_info() is called on access to debugfs file "i915_gem_framebuffer" and dereferences ifbdev, ifbdev->helper.fb and ifbdev->helper.fb->obj. intel_connector_add_to_fbdev() / intel_connector_remove_from_fbdev() are called when registering / unregistering an mst connector and dereference ifbdev. v3: Drop additional null pointer checks in intel_fbdev_set_suspend(), intel_fbdev_output_poll_changed() and intel_fbdev_restore_mode() since they already check if ifbdev is not NULL, which is sufficient now that intel_fbdev_fini() is called on initialization failure. (Requested by Daniel Vetter ) Signed-off-by: Lukas Wunner Link: http://patchwork.freedesktop.org/patch/msgid/d05f0edf121264a9d0adb8ca713fd8cc4ae068bf.1447938059.git.lukas@wunner.de Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 24 +++++++++++++----------- drivers/gpu/drm/i915/intel_dp_mst.c | 10 ++++++++-- drivers/gpu/drm/i915/intel_fbdev.c | 6 ++++-- 3 files changed, 25 insertions(+), 15 deletions(-) commit 27ba1d56e1e150294802f0dca8368abc51a664fb Author: Markus Elfring Date: Fri Nov 6 18:00:30 2015 +0100 HID: wacom: Delete an unnecessary check before kobject_put() The kobject_put() 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 Signed-off-by: Jiri Kosina drivers/hid/wacom_sys.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit ce7f172856396d92e82cb0eae420f4ce41c92851 Author: Daniel Vetter Date: Wed Oct 14 16:51:06 2015 +0200 drm/i915: Fix i915_ggtt_view_equal to handle rotation correctly The rotated view depends upon the rotation paramters, but thus far we didn't bother checking for those. This seems to have been an issue ever since this was introduce in commit fe14d5f4e5468c5b80a24f1a64abcbe116143670 Author: Tvrtko Ursulin Date: Wed Dec 10 17:27:58 2014 +0000 drm/i915: Infrastructure for supporting different GGTT views per object But userspace is allowed to reuse framebuffer backing storage with different framebuffers with different pixel formats/stride/whatever. And e.g. SNA indeed does this. Hence we must check for all the paramters to match, not just that it's rotated. v2: intel_plane_obj_offset also needs to construct the full view, to avoid fallout since they don't fully match. Cc: Tvrtko Ursulin Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1444834266-12689-3-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Tvrtko Ursulin Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.h | 2 +- drivers/gpu/drm/i915/intel_display.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) commit a6d09186fa27dea720ddd668a814cb6e4f78d53b Author: Daniel Vetter Date: Wed Oct 14 16:51:05 2015 +0200 drm/i915: Stuff rotation params into view union We don't need 2 separate unions. Note that this was done intentinoally Author: Joonas Lahtinen Date: Wed May 6 14:35:38 2015 +0300 drm/i915: Add a partial GGTT view type on Tvrtko's request, but without a clear justification. Rotated views are also not checking for matching paramters in i915_ggtt_view_equal, which seems like a bug. But this patch here doesn't change that. Cc: Tvrtko Ursulin Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1444834266-12689-2-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Tvrtko Ursulin Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 4 ++-- drivers/gpu/drm/i915/i915_gem_gtt.h | 5 +---- drivers/gpu/drm/i915/intel_display.c | 4 ++-- 3 files changed, 5 insertions(+), 8 deletions(-) commit 75c82a536285da9ccb7865a0d03ff55da2912ba7 Author: Daniel Vetter Date: Wed Oct 14 16:51:04 2015 +0200 drm/i915: Drop return value from intel_fill_fb_ggtt_view It can't fail and there's even a WARN_ON suggesting that if it would, it would be a disaster. Correct this to make things less confusing. Cc: Tvrtko Ursulin Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1444834266-12689-1-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Tvrtko Ursulin Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) commit bf68dc9dce6cf6a21300f5dac5bea8bbe1051e78 Author: Namrta Salonie Date: Thu Nov 19 16:57:30 2015 +0530 drm/i915 : Fix to remove unnecsessary checks in postclose function. Found by static analysis tool. Signed-off-by: Namrta Salonie Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_dma.c | 2 -- 1 file changed, 2 deletions(-) commit 6cf2e31bea1445ae50644d4d359786f43eb10afc Author: Krzysztof Kozlowski Date: Thu Nov 19 12:58:14 2015 +0900 HID: 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 Acked-by: Benjamin Tissoires Signed-off-by: Jiri Kosina drivers/hid/i2c-hid/i2c-hid.c | 1 - 1 file changed, 1 deletion(-) commit b71b5578a84d297954e4812ba0ca2d466e61cf42 Author: Frank Praznik Date: Fri Nov 6 15:35:53 2015 -0500 HID: sony: Remove the size check for the Dualshock 4 HID Descriptor Sony has modified the HID descriptor in new revisions of the Dualshock 4 which causes the size check in the descriptor replacement function to fail. Remove it so that new revisions of the controller will work correctly. The module is completely replacing the descriptor instead of patching it, so the size check isn't really necessary anyways. Signed-off-by: Frank Praznik Signed-off-by: Jiri Kosina drivers/hid/hid-sony.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ca78946853eb23a37260cefc074a5bf86e8b866c Author: Arnd Bergmann Date: Thu Nov 19 10:59:34 2015 -0200 [media] davinci: add i2c Kconfig dependencies All the davinci media drivers are using the i2c framework, and fail to build if that is ever disabled, e.g.: media/platform/davinci/vpif_display.c: In function 'vpif_probe': media/platform/davinci/vpif_display.c:1298:14: error: implicit declaration of function 'i2c_get_adapter' [-Werror=implicit-function-declaration] This adds explicit Kconfig dependencies so we don't see the driver options if I2C is turned off. Signed-off-by: Arnd Bergmann Acked-by: Lad, Prabhakar Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/davinci/Kconfig | 6 ++++++ 1 file changed, 6 insertions(+) commit a733a41a5057b47ed4a1f43d33166770ef83bc10 Author: Mauro Carvalho Chehab Date: Wed Nov 18 12:55:47 2015 -0200 [media] fix dvb_frontend_sleep_until() logic As pointed by Laurent Navet: "Calling ktime_add_us() seems useless as is only useful for it's return value which is ignored." That's reported by coverity CID 1309761. Laurent proposed to just remove ktime_add_us, but the fact is that the logic of this function is broken. Instead, we need to use the value of the timeout, and ensure that it will work on the loops to emulate the legacy DiSEqC ioctl (FE_DISHNETWORK_SEND_LEGACY_CMD). Please notice that the logic was also broken if, for any reason, msleep() would sleep a little less than what it was expected, as newdelta would be smaller than delta, and udelay() would not be called. It should also be noticed that nobody noticed that trouble before likely because the FE_DISHNETWORK_SEND_LEGACY_CMD is not used anymore by modern DVB applications. Reported-by: Laurent Navet Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/dvb_frontend.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 439be34800f8588503059434ce873ff84fcb00c3 Author: Heiner Kallweit Date: Tue Nov 17 04:33:25 2015 -0200 [media] media: cx23885: fix type of allowed_protos Protocol lists are represented as 64-bit bitmaps, therefore use u64 instead of unsigned long. Signed-off-by: Heiner Kallweit Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cx23885/cx23885-input.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 850c8a7d68a761b5f11d5b443b5ece185e8068f4 Author: Mauro Carvalho Chehab Date: Thu Nov 19 11:41:36 2015 -0200 smsir.h: remove a now duplicated definition (IR_DEFAULT_TIMEOUT) This macro is now part of the core. Remove from Siano driver. Signed-off-by: Mauro Carvalho Chehab drivers/media/common/siano/smsir.h | 2 -- 1 file changed, 2 deletions(-) commit c278504d2a65d1ca167e242af42d0732a305ed99 Author: Heiner Kallweit Date: Mon Nov 16 17:53:36 2015 -0200 [media] media: rc: improve RC_BIT_ constant definition The RC_BIT_ constants are used in 64-bit bitmaps. In case of > 32 RC_BIT_ constants the current code will fail on 32-bit systems. Therefore define the RC_BIT_ constants as unsigned long long. Signed-off-by: Heiner Kallweit Signed-off-by: Mauro Carvalho Chehab include/media/rc-map.h | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) commit d80ca8bd71f0b01b2b12459189927cb3299cfab9 Author: Heiner Kallweit Date: Mon Nov 16 17:52:50 2015 -0200 [media] media: rc: move check whether a protocol is enabled to the core Checking whether a protocol is enabled and calling the related decoder functions should be done by the rc core, not the protocol handlers. Properly handle lirc considering that no protocol bit is set for lirc. Signed-off-by: Heiner Kallweit Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/ir-jvc-decoder.c | 3 --- drivers/media/rc/ir-mce_kbd-decoder.c | 3 --- drivers/media/rc/ir-nec-decoder.c | 3 --- drivers/media/rc/ir-rc5-decoder.c | 3 --- drivers/media/rc/ir-rc6-decoder.c | 5 ----- drivers/media/rc/ir-sanyo-decoder.c | 3 --- drivers/media/rc/ir-sharp-decoder.c | 3 --- drivers/media/rc/ir-sony-decoder.c | 4 ---- drivers/media/rc/ir-xmp-decoder.c | 3 --- drivers/media/rc/rc-ir-raw.c | 4 +++- 10 files changed, 3 insertions(+), 31 deletions(-) commit acc1c3c688ed8cc862ddc007eab0dcef839f4ec8 Author: Heiner Kallweit Date: Mon Nov 16 17:52:26 2015 -0200 [media] media: rc: load decoder modules on-demand Remove code for unconditional decoder module loading (except lirc). Signed-off-by: Heiner Kallweit Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/rc-core-priv.h | 64 ----------------------------------------- drivers/media/rc/rc-ir-raw.c | 10 ------- 2 files changed, 74 deletions(-) commit 53df87771715d6a68013be404350074bec9ad8db Author: Heiner Kallweit Date: Mon Nov 16 17:52:17 2015 -0200 [media] media: rc: constify struct proto_names Declare struct proto_names and its member name as const. Signed-off-by: Heiner Kallweit Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/rc-main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9f0bf366d70beaae64975dcb89272ea6d6fc4a03 Author: Heiner Kallweit Date: Mon Nov 16 17:52:08 2015 -0200 [media] media: rc: preparation for on-demand decoder module loading Prepare on-demand decoder module loading by adding a module_name member to struct proto_names and introducing the related load function. After this patch of the series the decoder modules are still loaded unconditionally. Signed-off-by: Heiner Kallweit Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/rc-main.c | 72 +++++++++++++++++++++++++++++++++++++--------- 1 file changed, 59 insertions(+), 13 deletions(-) commit 93cffffc18f6894f90ae03552e8a228eb402347c Author: Heiner Kallweit Date: Mon Nov 16 17:51:56 2015 -0200 [media] media: rc: fix decoder module unloading Currently, if a decoder module is unloadad, the respective protocol is still shown as enabled (if it was enabled before). Fix this by resetting the respective protocol bits if a decoder module is unloaded. Signed-off-by: Heiner Kallweit Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/rc-ir-raw.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) commit fa52bd506f274b7619955917abfde355e3d19ffe Author: Vladis Dronov Date: Mon Nov 16 15:55:11 2015 -0200 [media] usbvision: fix crash on detecting device with invalid configuration The usbvision driver crashes when a specially crafted usb device with invalid number of interfaces or endpoints is detected. This fix adds checks that the device has proper configuration expected by the driver. Reported-by: Ralf Spenneberg Signed-off-by: Vladis Dronov Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/usbvision/usbvision-video.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) commit 1efc21701d94ed0c5b91467b042bed8b8becd5cc Author: Arno Bauernöppel Date: Sun Nov 15 19:24:10 2015 -0200 [media] Add support for dvb usb stick Hauppauge WinTV-soloHD This patch adds support for the DVB-T/C/T2 usb stick WinTV-soloHD from Hauppauge. It adds the usb ID 2040:0264 Hauppauge to the cards of the driver em28xx. I successfully tested DVB-T/C and the IR remote control with the firmware dvb-demod-si2168-b40-01.fw. Signed-off-by: Arno Bauernoeppel Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/dvb-usb-ids.h | 1 + drivers/media/usb/em28xx/em28xx-cards.c | 2 ++ 2 files changed, 3 insertions(+) commit b833d0df943d70682e288c38c96b8e7bfff4023a Author: Alexey Khoroshilov Date: Sat Nov 14 16:17:56 2015 -0200 [media] lirc_imon: do not leave imon_probe() with mutex held Commit af8a819a2513 ("[media] lirc_imon: simplify error handling code") lost mutex_unlock(&context->ctx_lock), so imon_probe() exits with the context->ctx_lock mutex acquired. The patch adds mutex_unlock(&context->ctx_lock) back. Found by Linux Driver Verification project (linuxtesting.org). Fixes: af8a819a2513 ("[media] lirc_imon: simplify error handling code") Signed-off-by: Alexey Khoroshilov Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/lirc/lirc_imon.c | 2 ++ 1 file changed, 2 insertions(+) commit 18349f4009b149f0d4feca9e65125772d7a22dd0 Author: Matthias Schwarzott Date: Fri Nov 13 20:54:56 2015 -0200 [media] si2165: fix checkpatch issues Signed-off-by: Matthias Schwarzott Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/si2165.c | 69 ++++++++++++++++++++---------------- 1 file changed, 39 insertions(+), 30 deletions(-) commit 599bedb7d166b8a4a21487be17edd6578b6d14c4 Author: Matthias Schwarzott Date: Fri Nov 13 20:54:55 2015 -0200 [media] cx231xx_dvb: use demod_i2c for demod attach Tested: * CX231XX_BOARD_HAUPPAUGE_930C_HD_1113xx * CX231XX_BOARD_HAUPPAUGE_930C_HD_1114xx Not Tested: * CX231XX_BOARD_HAUPPAUGE_EXETER * CX231XX_BOARD_HAUPPAUGE_955Q Signed-off-by: Matthias Schwarzott Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/cx231xx/cx231xx-cards.c | 8 ++++---- drivers/media/usb/cx231xx/cx231xx-dvb.c | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) commit 9bca62661eac95702ed0118c578b079fa76e4a63 Author: Julia Lawall Date: Fri Nov 13 12:55:18 2015 -0200 [media] ttusb-dec: constify ttusbdecfe_config structure The ttusbdecfe_config structure is never modified, so declare it as const. Other references to this structure type were already declared as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/ttusb-dec/ttusb_dec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9c5e44a0762beee013213593ab2bc511bd46f366 Author: Julia Lawall Date: Fri Nov 13 10:24:39 2015 -0200 [media] drivers/media/usb/dvb-usb-v2: constify mxl111sf_demod_config structure The mxl111sf_demod_config structure is never modified, so declare it as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Reviewed-by: Michael Ira Krufky Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/dvb-usb-v2/mxl111sf-demod.c | 4 ++-- drivers/media/usb/dvb-usb-v2/mxl111sf-demod.h | 4 ++-- drivers/media/usb/dvb-usb-v2/mxl111sf.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) commit c0a182b699c0e8e3fc3e5e0eebc3d1e3ac7697bf Author: Walter Cheuk Date: Fri Nov 13 01:28:44 2015 -0200 [media] tv tuner max2165 driver: extend frequency range Extend the frequency range to cover Hong Kong's digital TV broadcasting; RTHK TV uses 802MHz and is not covered now. Tested on my TV tuner card "MyGica X8558 Pro". Signed-off-by: Walter Cheuk Signed-off-by: Mauro Carvalho Chehab drivers/media/tuners/max2165.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b446631c5acfec93df643bdf2d142020ae328ced Author: Laurent Pinchart Date: Tue Nov 10 08:20:19 2015 -0200 [media] v4l: omap_vout: Don't free buffers if they haven't been allocated The VRFB buffers are freed when the device is closed even if they haven't been allocated by a call to VIDIOC_REQBUFS, resulting in a crash. Fix it by not trying to free buffers that are not allocated. Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/omap/omap_vout_vrfb.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit cd1e11bed2093af31b114b4c3cda444e89c3c3b5 Author: Laurent Pinchart Date: Mon Nov 9 20:01:56 2015 -0200 [media] media: omap4iss: Make module stop timeout print a warning message Module stop timeouts are serious enough that they deserve a proper warning message, not a debug message that will go unnoticed. Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/omap4iss/iss.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 769161fd2d90fc5b5304c73a0f2be7298c5ce430 Author: Laurent Pinchart Date: Mon Nov 9 20:01:57 2015 -0200 [media] media: omap4iss: csi2: Fix IRQ handling when stopping module When stopping the CSI2 receiver the s_stream handler will wait for the IRQ handler to notice the stop request. The receiver, automatically disabled by the hardware after each frame, is then not reenabled by the IRQ handler as it returns immediately. As the IRQ handler check is performed before handling the context IRQ, the context IRQ source isn't cleared, and the CSI2 IRQ is then fired again immediately. The IRQ handler then fails to notice that the module is being stopped, processes the IRQ normally and reenables the CSI2 hardware. The problem goes unnoticed at stream stop time, but depending on the IRQ and s_stream scheduling timings, the CSI2 receiver can end up being hanged and will not produce any interrupt the next time it gets enabled, despite being soft-reset then. Fix this by checking for module stop after clearing the context IRQ source. Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/omap4iss/iss_csi2.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 425e186847971206981df9fce0c325655eb985b5 Author: Nate Weibley Date: Mon Nov 9 19:51:47 2015 -0200 [media] omap4iss: Fix overlapping luma/chroma planes The chroma data base address for NV12 formatted data should begin offset rows*bytes_per_row from the base address for luminance data. We were OBO causing a stripe of green pixels at the bottom of the frame. Signed-off-by: Nate Weibley Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/omap4iss/iss_resizer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8afe97be37fad85b1ad7d4ab5d6b06f6fc04a274 Author: Laurent Pinchart Date: Mon Nov 9 15:33:58 2015 -0200 [media] uvcvideo: Enable UVC 1.5 device detection UVC 1.5 devices report a bInterfaceProtocol value set to 1 in their interface descriptors. The uvcvideo driver only matches on bInterfaceProtocol 0, preventing those devices from being detected. More changes to the driver are needed for full UVC 1.5 compatibility. However, at least the UVC 1.5 Microsoft Surface Pro 3 cameras have been reported to work out of the box with the driver with an updated match table. Enable UVC 1.5 support in the match table to support the devices that can work with the current driver implementation. Devices that can't will fail, but that's hardly a regression as they're currently not detected at all anyway. Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/uvc/uvc_driver.c | 3 ++- include/uapi/linux/usb/video.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) commit 98e7aa45e79b9ba4d2ff2e3ca7c98606ea63e454 Author: Marek Szyprowski Date: Thu Nov 19 12:52:15 2015 +0100 ARM: exynos_defconfig: Add drivers for Exynos4210 Universal C210 board This patch enables drivers needed to get Exynos 4210 Universal C210 board working: MAX8998 MFD and regulators, GPIO-based bit-bang SPI, Exynos DRM FIMD parallel output and Samsung LD9040 RGB panel. Signed-off-by: Marek Szyprowski Signed-off-by: Krzysztof Kozlowski arch/arm/configs/exynos_defconfig | 5 +++++ 1 file changed, 5 insertions(+) commit 1ea7252d978637dca24f89c72dee887fe2bef689 Author: Markus Elfring Date: Thu Nov 5 16:23:50 2015 -0200 [media] c8sectpfe: Combine three checks into a single if block The variable "tsin" was checked three times in a loop iteration of the c8sectpfe_tuner_unregister_frontend() function. This implementation detail could be improved by the combination of the involved statements into a single if block so that this variable will be checked only once there. Signed-off-by: Markus Elfring Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/sti/c8sectpfe/c8sectpfe-common.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit 06b6fea859caa909e4e89551da9c1162c55efbc3 Author: Markus Elfring Date: Thu Nov 5 15:55:19 2015 -0200 [media] c8sectpfe: Delete unnecessary checks before two function calls The functions i2c_put_adapter() and module_put() test whether their argument is NULL and then return immediately. Thus the tests around their calls are not needed. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/sti/c8sectpfe/c8sectpfe-common.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 4dc0e908a5512f6ff4be2b4cbb128495c1eaf1ba Author: Heiner Kallweit Date: Thu Oct 29 19:39:06 2015 -0200 [media] media: rc-core: simplify logging in rc_register_device Simplify the logging. I had some doubts about using the elvis operator as it's GNU extension. However GNU extensions are explicitely allowed and this operator is used at several places in the kernel code. Signed-off-by: Heiner Kallweit Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/rc-main.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 211477fe35833b44a698b2c1177387ca4ecb4eec Author: Heiner Kallweit Date: Thu Oct 29 19:23:01 2015 -0200 [media] media: rc: nuvoton-cir: replace nvt_pr with dev_ functions Replace nvt_pr with the respective dev_ functions thus slightly simplifying the code. Signed-off-by: Heiner Kallweit Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/nuvoton-cir.c | 15 ++++++++------- drivers/media/rc/nuvoton-cir.h | 3 --- 2 files changed, 8 insertions(+), 10 deletions(-) commit af082334338fdbd2ad13de430f022aeb0207531e Author: Heiner Kallweit Date: Thu Oct 29 19:23:22 2015 -0200 [media] media: rc: nuvoton-cir: switch chip detection message to info level Switch the info about the detected chip type from debug to info level as it might be useful not only for debugging purposes. Signed-off-by: Heiner Kallweit Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/nuvoton-cir.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 068fb7ddd5220fbd65e2f4de7b992eb9419d9684 Author: Heiner Kallweit Date: Thu Oct 29 19:22:41 2015 -0200 [media] media: rc: nuvoton-cir: simplify debug code Instead of explicitely checking debug use nvt_dbg like in other parts of the driver thus simplifying the code. Signed-off-by: Heiner Kallweit Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/nuvoton-cir.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit d0b528d5f74bb7a8ac4f62a8127ab238ffe7cd09 Author: Heiner Kallweit Date: Thu Oct 29 19:22:23 2015 -0200 [media] media: rc: nuvoton-cir: add support for the NCT6779D Add support for the NCT6779D. It's found e.g. on the Zotac CI321 mini-pc and I successfully tested it on this device. Signed-off-by: Heiner Kallweit Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/nuvoton-cir.c | 1 + drivers/media/rc/nuvoton-cir.h | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) commit 6a5a336079abe8f991149ad84f648c54bfefde7a Author: Heiner Kallweit Date: Thu Oct 29 19:22:00 2015 -0200 [media] media: rc: nuvoton-cir: make nvt_hw_detect void nvt_hw_detect always returns 0, therefore make it return void. Signed-off-by: Heiner Kallweit Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/nuvoton-cir.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit b5cf725c04003edc4942057ae479f68826cee909 Author: Heiner Kallweit Date: Thu Oct 29 19:21:38 2015 -0200 [media] media: rc: nuvoton-cir: improve chip detection Make the chip detection code more similar to the one used for the same chips in watchdog/w83627hf_wdt.c and hwmon/w83627ehf.c. Apart from better maintainability we gain - unified naming of chips (e.g. 677C -> NCT6776F) - driver works with all revisions of the chips (least 4 bits of id are masked) Signed-off-by: Heiner Kallweit Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/nuvoton-cir.c | 81 +++++++++++++++++++++--------------------- drivers/media/rc/nuvoton-cir.h | 24 ++++++++----- 2 files changed, 56 insertions(+), 49 deletions(-) commit 099256e58ef63ba171d5418fdc662e093cdba1be Author: Heiner Kallweit Date: Thu Oct 29 19:19:36 2015 -0200 [media] media: rc: nuvoton-cir: switch resource handling to devm functions Switch to managed resource handling using the devm_ functions. Signed-off-by: Heiner Kallweit Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/nuvoton-cir.c | 36 +++++++++++------------------------- 1 file changed, 11 insertions(+), 25 deletions(-) commit d5b04311cb31ba351a278d2a32487bf09843cb55 Author: Heiner Kallweit Date: Thu Oct 29 19:19:19 2015 -0200 [media] media: rc: nuvoton-cir: remove unneeded lock chip_major / chip_minor are accessed sequentially in probe only. Therefore no lock is needed. Signed-off-by: Heiner Kallweit Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/nuvoton-cir.c | 3 --- 1 file changed, 3 deletions(-) commit 2bbf9e061a8355451c1e83d405aaa0dc8865db46 Author: Heiner Kallweit Date: Thu Oct 29 19:18:45 2015 -0200 [media] media: rc: nuvoton-cir: remove unneeded IRQ_RETVAL usage Using IRQ_RETVAL is unneeded here. IRQ_NONE / IRQ_HANDLED can be returned directly. Signed-off-by: Heiner Kallweit Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/nuvoton-cir.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 1b0621af505006c535edab36e7cc154534cabebd Author: Heiner Kallweit Date: Thu Oct 29 17:28:08 2015 -0200 [media] media: rc: ir-sharp-decoder: add support for Denon variant of the protocol Denon also uses the Sharp protocol, however with different check bits. It would have been also possible to add this as a separate protocol but this may not be worth the effort. Successfully tested with a Denon RC-1002 remote control. Signed-off-by: Heiner Kallweit Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/Kconfig | 3 ++- drivers/media/rc/ir-sharp-decoder.c | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) commit dd4c22a61e0bdaf84202fcf84cb8f75ed7bb3552 Author: Tina Ruchandani Date: Thu Oct 29 05:16:57 2015 -0200 [media] rc-core: Remove 'struct timeval' usage streamzap uses 'struct timeval' to store the start time of a signal for gap tracking. struct timeval uses a 32-bit seconds representation which will overflow in year 2038 and beyond. Replace struct timeval with ktime_t which uses a 64-bit seconds representation and is 2038 safe. This patch uses ktime_get_real() preserving the use of wall-clock time in the original code. Signed-off-by: Tina Ruchandani Reviewed-by: Arnd Bergmann Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/streamzap.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) commit 8c47311d34eccedb06bc60fc9435a53bd4aff392 Author: Alberto Mardegan Date: Tue Oct 27 17:24:14 2015 -0200 [media] em28xx: add Terratec Cinergy T XS (MT2060) The Terratec Cinergy T XS is a DVB-T receiver with no analog TV tuner. This patch adds support for the cards carrying the mt2060 tuner; it's unclear whether there are cards sold under the same name which use a different tuner. As long as there are no reports of such cards, and indeed as long as there are no working drivers for them, we assume that the USB device [0ccd:0043] is carrying the mt2060 tuner. Signed-off-by: Alberto Mardegan Signed-off-by: Mauro Carvalho Chehab Documentation/video4linux/CARDLIST.em28xx | 4 ++-- drivers/media/usb/em28xx/em28xx-cards.c | 8 ++++++-- drivers/media/usb/em28xx/em28xx-dvb.c | 15 +++++++++++++++ 3 files changed, 23 insertions(+), 4 deletions(-) commit cea590d46f597296b17ffd77f86fa91ff220a30f Author: Julia Lawall Date: Sun Oct 25 11:57:04 2015 -0200 [media] v4l: xilinx-vipp: add missing of_node_put for_each_child_of_node performs an of_node_get on each iteration, so a break out of the loop requires an of_node_put. A simplified version of the semantic patch that fixes this problem is as follows (http://coccinelle.lip6.fr): // @@ expression root,e; local idexpression child; @@ for_each_child_of_node(root, child) { ... when != of_node_put(child) when != e = child ( return child; | + of_node_put(child); ? return ...; ) ... } // Signed-off-by: Julia Lawall Reviewed-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/xilinx/xilinx-vipp.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit cc331d37fe3a7b6db086721b0e9cac1ea2e03ebf Author: Julia Lawall Date: Sun Oct 25 11:57:05 2015 -0200 [media] v4l: xilinx-tpg: add missing of_node_put for_each_child_of_node performs an of_node_get on each iteration, so a break out of the loop requires an of_node_put. A simplified version of the semantic patch that fixes this problem is as follows (http://coccinelle.lip6.fr): // @@ expression root,e; local idexpression child; @@ for_each_child_of_node(root, child) { ... when != of_node_put(child) when != e = child ( return child; | + of_node_put(child); ? return ...; ) ... } // Signed-off-by: Julia Lawall Reviewed-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/xilinx/xilinx-tpg.c | 2 ++ 1 file changed, 2 insertions(+) commit b771852270499d760825ebad894498b8059355a4 Author: Christian Engelmayer Date: Fri Oct 23 19:26:18 2015 -0200 [media] as102: fix potential double free in as102_fw_upload() In case the request to locate the firmware file part 2 fails, the error path releases the already freed firmware memory location again. Thus reset the firmware pointer to NULL after releasing firmware file part 1. Signed-off-by: Christian Engelmayer Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/as102/as102_fw.c | 1 + 1 file changed, 1 insertion(+) commit 2ff56fadd94cdaeeaeccbc0a9b703a0101ada128 Author: Russell King Date: Thu Oct 15 13:15:24 2015 -0300 [media] rc: allow rc modules to be loaded if rc-main is not a module rc-main mistakenly uses #ifdef MODULE to determine whether it should load the rc keymap modules. This symbol is only defined if rc-main is being built as a module itself, and bears no relation to whether the rc keymaps are modules. Fix this to use CONFIG_MODULES instead. Fixes: 631493ecacd8 ("[media] rc-core: merge rc-map.c into rc-main.c") Signed-off-by: Russell King Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/rc-main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d2cc2f0b35465951eaaf0387fd55e29835ed7ea6 Author: Laura Abbott Date: Mon Oct 5 19:33:29 2015 -0300 [media] si2157: return -EINVAL if firmware blob is too big A previous patch added a check if the firmware is too big, but it didn't set the return error code with the right value. [mchehab@osg.samsung.com: I ended by applying a v1 of Laura's patch, without the proper return code. This patch contains the difference between v2 and v1 of the Laura's "si2157: Bounds check firmware" patch] Cc: stable@kernel.org Signed-off-by: Laura Abbott Reviewed-by: Olli Salonen Tested-by: Olli Salonen Signed-off-by: Mauro Carvalho Chehab drivers/media/tuners/si2157.c | 1 + 1 file changed, 1 insertion(+) commit 3bbc78aeff8e97227799f47238ff8d3b4fb18b34 Author: Sakari Ailus Date: Thu Oct 15 20:21:13 2015 -0300 [media] staging: omap4iss: Compiling V4L2 framework and I2C as modules is fine Don't require V4L2 framework and I2C being linked to the kernel directly. Signed-off-by: Sakari Ailus Acked-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/omap4iss/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 49dbb4894ae8e9247211a8bcb1fa731929738a54 Author: Mikko Rapeli Date: Thu Oct 15 02:56:47 2015 -0300 [media] include/uapi/linux/dvb/video.h: remove stdint.h include Kernel headers should use linux/types.h instead. Signed-off-by: Mikko Rapeli Signed-off-by: Mauro Carvalho Chehab include/uapi/linux/dvb/video.h | 1 - 1 file changed, 1 deletion(-) commit decd946c99f6b3826bda0bfd5d1b2ddd56ef6b54 Author: Frank Praznik Date: Wed Nov 11 09:49:38 2015 -0500 HID: sony: Save and restore the controller state on suspend and resume On hardware which provides standby power for charging devices the state of the LEDs and force-feedback on controllers can persist even when the system is in standby. Additionally, the state of the controllers on resume may be different from the state they were in at the time when they were suspended (ie. LEDs are cleared on resume). This implements the suspend and resume callbacks which saves and clears the state of the LEDs on suspend and restores them on resume. Force-feedback is stopped on suspend but not automatically restored on resume until a new event is received to avoid potentially damaging hardware. USB Sixaxis and navigation controllers must be reinitialized when the hardware is reset on resume or they won't send any input reports. Signed-off-by: Frank Praznik Signed-off-by: Jiri Kosina drivers/hid/hid-sony.c | 65 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) commit d8aaccda7144df1c3d35251313197aed4cbea7bc Author: Frank Praznik Date: Wed Nov 11 09:49:37 2015 -0500 HID: sony: Refactor the output report sending functions Refactor the output report sending functions to allow for the sending of output reports without enqueuing a work item. Output reports for any device can now be sent via the send_output_report function pointer in the sony_sc struct which points to the appropriate output function. The individual state worker functions have been replaced with a universal sony_state_worker function which uses this function pointer. Signed-off-by: Frank Praznik Signed-off-by: Jiri Kosina drivers/hid/hid-sony.c | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) commit 997f69fb4a95b668bd6d04e14c7af1a218351bf4 Author: Insu Yun Date: Thu Oct 15 17:22:45 2015 -0300 [media] mxl111sf: missing return values validation Return values of mxl111sf_enable_usb_output and mxl1x1sf_top_master_ctrl are not validated. Signed-off-by: Insu Yun Reviewed-by: Michael Ira Krufky Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/dvb-usb-v2/mxl111sf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 22bc8625682d4f5ff45cab19ea39245352c57a39 Author: Geert Uytterhoeven Date: Wed Oct 7 07:39:36 2015 -0300 [media] rcar_vin: Remove obsolete platform data support Since commit 3d7608e4c169af03 ("ARM: shmobile: bockw: remove legacy board file and config"), Renesas R-Car SoCs are only supported in generic DT-only ARM multi-platform builds. The driver doesn't need to use platform data anymore, hence remove platform data configuration. Signed-off-by: Geert Uytterhoeven Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/soc_camera/rcar_vin.c | 75 ++++++++++--------------- include/linux/platform_data/media/camera-rcar.h | 25 --------- 2 files changed, 29 insertions(+), 71 deletions(-) commit a71daaa10ec2e325f34d172b2782f2d68209b08d Author: Mauro Carvalho Chehab Date: Tue Nov 17 07:11:13 2015 -0200 [media] move media platform data to linux/platform_data/media Now that media has its own subdirectory inside platform_data, let's move the headers that are already there to such subdir. After moving those files, the references were adjusted using this script: MAIN_DIR="linux/platform_data/" PREV_DIR="linux/platform_data/" DIRS="media/" echo "Checking affected files" >&2 for i in $DIRS; do for j in $(find include/$MAIN_DIR/$i -type f -name '*.h'); do n=`basename $j` git grep -l $n done done|sort|uniq >files && ( echo "Handling files..." >&2; echo "for i in \$(cat files|grep -v Documentation); do cat \$i | \\"; ( cd include/$MAIN_DIR; for j in $DIRS; do for i in $(ls $j); do echo "perl -ne 's,(include [\\\"\\<])$PREV_DIR($i)([\\\"\\>]),\1$MAIN_DIR$j\2\3,; print \$_' |\\"; done; done; echo "cat > a && mv a \$i; done"; ); echo "Handling documentation..." >&2; echo "for i in MAINTAINERS \$(cat files); do cat \$i | \\"; ( cd include/$MAIN_DIR; for j in $DIRS; do for i in $(ls $j); do echo " perl -ne 's,include/$PREV_DIR($i)\b,include/$MAIN_DIR$j\1,; print \$_' |\\"; done; done; echo "cat > a && mv a \$i; done" ); ) >script && . ./script Suggested-by: Arnd Bergmann Acked-by: Arnd Bergmann Acked-by: Mark Brown Acked-by: Robert Jarzmik Signed-off-by: Mauro Carvalho Chehab arch/arm/mach-imx/devices/devices-common.h | 4 +- arch/arm/mach-pxa/devices.c | 2 +- arch/arm/mach-pxa/em-x270.c | 2 +- arch/arm/mach-pxa/ezx.c | 2 +- arch/arm/mach-pxa/mioa701.c | 2 +- arch/arm/mach-pxa/palmtreo.c | 2 +- arch/arm/mach-pxa/palmz72.c | 2 +- arch/arm/mach-pxa/pcm990-baseboard.c | 2 +- drivers/media/platform/coda/coda-common.c | 2 +- drivers/media/platform/soc_camera/mx2_camera.c | 2 +- drivers/media/platform/soc_camera/mx3_camera.c | 2 +- drivers/media/platform/soc_camera/pxa_camera.c | 2 +- drivers/media/platform/soc_camera/rcar_vin.c | 2 +- include/linux/platform_data/camera-mx2.h | 44 --------------------- include/linux/platform_data/camera-mx3.h | 52 ------------------------- include/linux/platform_data/camera-pxa.h | 44 --------------------- include/linux/platform_data/camera-rcar.h | 25 ------------ include/linux/platform_data/coda.h | 18 --------- include/linux/platform_data/media/camera-mx2.h | 44 +++++++++++++++++++++ include/linux/platform_data/media/camera-mx3.h | 52 +++++++++++++++++++++++++ include/linux/platform_data/media/camera-pxa.h | 44 +++++++++++++++++++++ include/linux/platform_data/media/camera-rcar.h | 25 ++++++++++++ include/linux/platform_data/media/coda.h | 18 +++++++++ 23 files changed, 197 insertions(+), 197 deletions(-) commit 886aa71bd4c3d22b1879cae3a4cd60d09b3fc25f Author: Mikhail Ulyanov Date: Thu Oct 1 09:03:32 2015 -0300 [media] V4L2: platform: rcar_jpu: switch off clock on release later Give JPU peripheral chance to finish current job. Don't switch off clock until context release. Signed-off-by: Mikhail Ulyanov Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/rcar_jpu.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 460958659270b7d750d4ccfe052171cb6f655cbb Author: Juergen Gross Date: Tue Nov 17 14:44:32 2015 +0100 x86/paravirt: Remove unused pv_apic_ops structure The only member of that structure is startup_ipi_hook which is always set to paravirt_nop. Signed-off-by: Juergen Gross Reviewed-by: David Vrabel Cc: jeremy@goop.org Cc: chrisw@sous-sol.org Cc: akataria@vmware.com Cc: rusty@rustcorp.com.au Cc: virtualization@lists.linux-foundation.org Cc: xen-devel@lists.xen.org Cc: konrad.wilk@oracle.com Cc: boris.ostrovsky@oracle.com Link: http://lkml.kernel.org/r/1447767872-16730-1-git-send-email-jgross@suse.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/paravirt.h | 9 --------- arch/x86/include/asm/paravirt_types.h | 10 ---------- arch/x86/include/asm/smp.h | 3 --- arch/x86/kernel/paravirt.c | 8 -------- arch/x86/kernel/smpboot.c | 7 ------- arch/x86/xen/enlighten.c | 7 ------- 6 files changed, 44 deletions(-) commit 69ca0333e2486472e1738b4513e07bd768205f1c Author: Mikhail Ulyanov Date: Thu Oct 1 09:03:31 2015 -0300 [media] V4L2: platform: rcar_jpu: remove redundant code Remove redundant code. Following code line do what we want. [mchehab@osg.samsung.com: fix conflict with VB2 split patches that renamed some structs] Signed-off-by: Mikhail Ulyanov Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/rcar_jpu.c | 3 --- 1 file changed, 3 deletions(-) commit 2f7a3f8e871eb0713d23c533bd5e44a544e43eb8 Author: Thomas Gleixner Date: Tue Nov 17 15:09:46 2015 +0100 x86/tsc: Remove unused tsc_pre_init() hook No more users. Remove it. Signed-off-by: Thomas Gleixner Cc: Borislav Petkov arch/x86/include/asm/x86_init.h | 2 -- arch/x86/kernel/tsc.c | 2 -- arch/x86/kernel/x86_init.c | 1 - 3 files changed, 5 deletions(-) commit 23a526f0478cc21b046074932c1835b0dae9984f Author: Javier Martinez Canillas Date: Tue Nov 17 12:58:44 2015 -0300 ARM: multi_v7_defconfig: Build ChromeOS EC drivers as modules Since the multi_v7_defconfig is used to build an image for different platforms, the options should be enabled as module whenever possible. Signed-off-by: Javier Martinez Canillas Signed-off-by: Krzysztof Kozlowski arch/arm/configs/multi_v7_defconfig | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit d01b2d53a5a4db38c7c95651ca9ff23bb930844e Author: Mauro Carvalho Chehab Date: Thu Nov 19 07:41:40 2015 -0200 DocBook: only copy stuff to media_api if media xml is generated It is possible to use: make DOCBOOKS=device-drivers.xml htmldocs To produce just a few docbooks. In such case, the media docs won't be built, causing the makefile target to return an error. While this is ok for human eyes, if the above is used on an script, it would cause troubles. Fix it by only creating/filling the media_api directory if the media_api.xml is found at DOCBOOKS. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/Makefile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 3fb136f3392dfb2530fd490718b0652f1001b36b Author: Eric Nelson Date: Wed Sep 23 11:07:08 2015 -0300 [media] rc: gpio-ir-recv: add timeout on idle Many decoders require a trailing space (period without IR illumination) to be delivered before completing a decode. Since the gpio-ir-recv driver only delivers events on gpio transitions, a single IR symbol (caused by a quick touch on an IR remote) will not be properly decoded without the use of a timer to flush the tail end state of the IR receiver. This patch initializes and uses a timer and the timeout field of rcdev to complete the stream and allow decode. The timeout can be overridden through the use of the LIRC_SET_REC_TIMEOUT ioctl. Signed-off-by: Eric Nelson Acked-by: Sean Young Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/gpio-ir-recv.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit c8e1bbc52d259a07a81b0f845191ee901ff44e01 Author: Eric Nelson Date: Sat Oct 3 08:18:50 2015 -0700 [media] rc-core: define a default timeout for drivers A default timeout value of 125 ms should work for all decoders. Declare a constant to help standardize its' use. Signed-off-by: Eric Nelson Signed-off-by: Mauro Carvalho Chehab include/media/rc-core.h | 1 + 1 file changed, 1 insertion(+) commit a2d1e1ed18dbd67c7d0e20e7c55336d075273b18 Author: Sudeep Holla Date: Mon Sep 21 12:47:10 2015 -0300 [media] media: st-rc: 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: Srinivas Kandagatla Cc: Maxime Coquelin Cc: Patrice Chotard Cc: linux-arm-kernel@lists.infradead.org Cc: kernel@stlinux.com Signed-off-by: Sudeep Holla Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/st_rc.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) commit 6e0171b4064d4337a51e48f495f2471d043dcd90 Author: William Breathitt Gray Date: Tue Nov 17 18:58:16 2015 -0500 gpio: 104-idio-16: Use lowercase symbol names for const variables To prevent confusion, and to match the existing coding style used in other GPIO drivers, symbol names within the 104-idio-16 GPIO driver should be lowercase. Signed-off-by: William Breathitt Gray Reviewed-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpio-104-idio-16.c | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) commit 5ed41cc4baaf4127661d2a8f8f2ee6e3085e0fa9 Author: Bamvor Jian Zhang Date: Mon Nov 16 13:02:47 2015 +0800 gpiolib: do not allow to insert an empty gpiochip We need to check if number of gpio is positive if there is no such check in devicetree or acpi or whatever called before gpiochip_add. I suppose that devicetree and acpi do not allow insert gpiochip with zero number but I do not know if it is enough to ignore this check in gpiochip_add. Signed-off-by: Bamvor Jian Zhang Signed-off-by: Linus Walleij drivers/gpio/gpiolib.c | 5 +++++ 1 file changed, 5 insertions(+) commit ef7c7553039b3d1c847b38b0f1ea208f8d5d8370 Author: Bamvor Jian Zhang Date: Mon Nov 16 13:02:46 2015 +0800 gpiolib: improve overlap check of range of gpio There are limitations for the current checker: 1. Could not check the overlap if the new gpiochip is the secondly gpiochip. 2. Could not check the overlap if the new gpiochip is overlap with the left of gpiochip. E.g. if we insert [c, d] between [a,b] and [e, f], and e >= c + d, it will successful even if c < a + b. 3. Allow overlap of base of different gpiochip. This patch fix these issues by checking the overlap of both right and left gpiochip in the same loop statement. Signed-off-by: Bamvor Jian Zhang [Tweaked to remove unnecessary ret variable] Signed-off-by: Linus Walleij drivers/gpio/gpiolib.c | 55 +++++++++++++++++++++++++++++++++----------------- 1 file changed, 36 insertions(+), 19 deletions(-) commit ed37915cb1fde446bd52069d7a708301b7e7b607 Author: Bamvor Jian Zhang Date: Sat Nov 14 16:43:20 2015 +0800 gpiolib: keep comment consistent with code The commit f881bab038c9 ("gpio: keep the GPIO line names internal") change the error to warning in gpiochip_set_desc_names. Update the comment accordingly. Signed-off-by: Bamvor Jian Zhang Signed-off-by: Linus Walleij drivers/gpio/gpiolib.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eae122b829483f677dc7784f82437c5d0274e019 Author: Robert Jarzmik Date: Fri Nov 13 21:22:38 2015 +0100 gpio: pxa: change initcall level second attempt This patch is a second attempt at what was previously in commit 6c7e660a27da ("gpio: pxa: set initcall level to module init"). The goal is the same : enable gpio & pinctrl driver to work together. As pinctrl driver will be initialized at device level, the gpio should be as well, so that the deferring mechanism is honored. Yet this patch should also respect the legacy platforms, so the set of constraints is : - in legacy platforms (ie. non dt), gpio_[gs]et_*() should be available for machine code => core initcall - in new platforms (ie. dt based), pinctrl will be available and no machine code => device initcall In order to fullfill all these constraints, the initcall level is either postcore for non devicetree platforms, and device for devicetree platforms. Signed-off-by: Robert Jarzmik Signed-off-by: Linus Walleij drivers/gpio/gpio-pxa.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) commit fe6435282b4c6f036427cdee83a2a83356d636c0 Author: Javier Martinez Canillas Date: Fri Nov 13 10:35:29 2015 -0300 MAINTAINERS: Update OMAP GPIO driver entry I'm not as involved in OMAP as I used to be and Grygorii is the most active developer working on this driver and has also been reviewing patches so let's add him as a driver maintainer instead of me. While being there, add the driver's DT binding doc to the file list. Signed-off-by: Javier Martinez Canillas Signed-off-by: Linus Walleij MAINTAINERS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 9c3c9bc9cc980d8981f75109f3921576daf75723 Author: Dmitry Torokhov Date: Wed Nov 11 11:45:30 2015 -0800 gpiolib: tighten up ACPI legacy gpio lookups We should not fall back to the legacy unnamed gpio lookup style if the driver requests gpios with different names, because we'll give out the same gpio twice. Let's keep track of the names that were used for the device and only do the fallback for the first name used. Signed-off-by: Dmitry Torokhov Acked-by: Mika Westerberg Signed-off-by: Linus Walleij drivers/gpio/gpiolib-acpi.c | 43 +++++++++++++++++++++++++++++++++++++++++++ drivers/gpio/gpiolib.c | 3 +++ drivers/gpio/gpiolib.h | 8 ++++++++ 3 files changed, 54 insertions(+) commit 615b8a969d0fb623a4067ad6afa9590ca5dcaf63 Author: Andrew F. Davis Date: Wed Nov 4 11:12:12 2015 -0600 gpio: tps65086: Add DT bindings for the TPS65086 GPO controller The TPS65086 PMIC contains several regulators and a GPO controller. Add bindings for the TPS65086 GPO controller. Signed-off-by: Andrew F. Davis Acked-by: Rob Herring Signed-off-by: Linus Walleij Documentation/devicetree/bindings/gpio/gpio-tps65086.txt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit a11841477af65f07eccd726c1421d16d3f276088 Author: William Breathitt Gray Date: Tue Nov 3 07:54:23 2015 -0500 gpio: Add IRQ support to ACCES 104-IDIO-16 driver The ACCES 104-IDIO-16 series offers Change-of-State detection interrupt functionality; if Change-of-State detection is enabled, an interrupt is fired off if any input line changes state (i.e. goes from low to high, or from high to low). This patch adds support to handle these interrupts and allows the user to mask which GPIO lines are affected. The interrupt line number for the device may be set via the idio_16_irq module parameter. Signed-off-by: William Breathitt Gray Signed-off-by: Linus Walleij drivers/gpio/Kconfig | 6 ++- drivers/gpio/gpio-104-idio-16.c | 112 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 116 insertions(+), 2 deletions(-) commit 58383c78425e4ee1c077253cf297b641c861c02e Author: Linus Walleij Date: Wed Nov 4 09:56:26 2015 +0100 gpio: change member .dev to .parent The name .dev in a struct is normally reserved for a struct device that is let us say a superclass to the thing described by the struct. struct gpio_chip stands out by confusingly using a struct device *dev to point to the parent device (such as a platform_device) that represents the hardware. As we want to give gpio_chip:s real devices, this is not working. We need to rename this member to parent. This was done by two coccinelle scripts, I guess it is possible to combine them into one, but I don't know such stuff. They look like this: @@ struct gpio_chip *var; @@ -var->dev +var->parent and: @@ struct gpio_chip var; @@ -var.dev +var.parent and: @@ struct bgpio_chip *var; @@ -var->gc.dev +var->gc.parent Plus a few instances of bgpio that I couldn't figure out how to teach Coccinelle to rewrite. This patch hits all over the place, but I *strongly* prefer this solution to any piecemal approaches that just exercise patch mechanics all over the place. It mainly hits drivers/gpio and drivers/pinctrl which is my own backyard anyway. Cc: Haavard Skinnemoen Cc: Rafał Miłecki Cc: Richard Purdie Cc: Mauro Carvalho Chehab Cc: Alek Du Cc: Jaroslav Kysela Cc: Takashi Iwai Acked-by: Dmitry Torokhov Acked-by: Greg Kroah-Hartman Acked-by: Lee Jones Acked-by: Jiri Kosina Acked-by: Hans-Christian Egtvedt Acked-by: Jacek Anaszewski Signed-off-by: Linus Walleij arch/avr32/mach-at32ap/pio.c | 2 +- drivers/bcma/driver_gpio.c | 2 +- drivers/gpio/gpio-104-idio-16.c | 2 +- drivers/gpio/gpio-74x164.c | 4 +-- drivers/gpio/gpio-adnp.c | 19 ++++++----- drivers/gpio/gpio-altera.c | 2 +- drivers/gpio/gpio-amd8111.c | 2 +- drivers/gpio/gpio-amdpt.c | 18 +++++----- drivers/gpio/gpio-arizona.c | 2 +- drivers/gpio/gpio-ath79.c | 2 +- drivers/gpio/gpio-bcm-kona.c | 6 ++-- drivers/gpio/gpio-crystalcove.c | 2 +- drivers/gpio/gpio-davinci.c | 4 +-- drivers/gpio/gpio-dln2.c | 10 +++--- drivers/gpio/gpio-em.c | 4 +-- drivers/gpio/gpio-f7188x.c | 2 +- drivers/gpio/gpio-generic.c | 2 +- drivers/gpio/gpio-ich.c | 2 +- drivers/gpio/gpio-intel-mid.c | 2 +- drivers/gpio/gpio-janz-ttl.c | 6 ++-- drivers/gpio/gpio-kempld.c | 2 +- drivers/gpio/gpio-lp3943.c | 2 +- drivers/gpio/gpio-lpc18xx.c | 2 +- drivers/gpio/gpio-lynxpoint.c | 2 +- drivers/gpio/gpio-max730x.c | 2 +- drivers/gpio/gpio-max732x.c | 4 +-- drivers/gpio/gpio-mb86s7x.c | 2 +- drivers/gpio/gpio-mc33880.c | 2 +- drivers/gpio/gpio-mc9s08dz60.c | 2 +- drivers/gpio/gpio-mcp23s08.c | 16 +++++---- drivers/gpio/gpio-moxart.c | 2 +- drivers/gpio/gpio-msic.c | 2 +- drivers/gpio/gpio-mvebu.c | 2 +- drivers/gpio/gpio-octeon.c | 2 +- drivers/gpio/gpio-omap.c | 4 +-- drivers/gpio/gpio-palmas.c | 14 ++++---- drivers/gpio/gpio-pca953x.c | 2 +- drivers/gpio/gpio-pcf857x.c | 2 +- drivers/gpio/gpio-pch.c | 2 +- drivers/gpio/gpio-pl061.c | 12 +++---- drivers/gpio/gpio-rc5t583.c | 2 +- drivers/gpio/gpio-rcar.c | 2 +- drivers/gpio/gpio-sch.c | 2 +- drivers/gpio/gpio-sch311x.c | 4 +-- drivers/gpio/gpio-spear-spics.c | 2 +- drivers/gpio/gpio-stmpe.c | 2 +- drivers/gpio/gpio-stp-xway.c | 4 +-- drivers/gpio/gpio-sx150x.c | 2 +- drivers/gpio/gpio-syscon.c | 4 +-- drivers/gpio/gpio-tb10x.c | 2 +- drivers/gpio/gpio-tc3589x.c | 2 +- drivers/gpio/gpio-timberdale.c | 2 +- drivers/gpio/gpio-tps6586x.c | 2 +- drivers/gpio/gpio-tps65910.c | 2 +- drivers/gpio/gpio-tps65912.c | 2 +- drivers/gpio/gpio-ts5500.c | 5 +-- drivers/gpio/gpio-twl4030.c | 4 +-- drivers/gpio/gpio-twl6040.c | 6 ++-- drivers/gpio/gpio-tz1090-pdc.c | 2 +- drivers/gpio/gpio-tz1090.c | 2 +- drivers/gpio/gpio-vf610.c | 2 +- drivers/gpio/gpio-viperboard.c | 16 ++++----- drivers/gpio/gpio-vr41xx.c | 4 +-- drivers/gpio/gpio-wm831x.c | 2 +- drivers/gpio/gpio-wm8350.c | 2 +- drivers/gpio/gpio-wm8994.c | 2 +- drivers/gpio/gpio-xgene.c | 2 +- drivers/gpio/gpio-xilinx.c | 2 +- drivers/gpio/gpio-xlp.c | 2 +- drivers/gpio/gpio-zevio.c | 4 +-- drivers/gpio/gpio-zx.c | 2 +- drivers/gpio/gpio-zynq.c | 6 ++-- drivers/gpio/gpiolib-acpi.c | 47 ++++++++++++++------------- drivers/gpio/gpiolib-of.c | 4 +-- drivers/gpio/gpiolib-sysfs.c | 5 +-- drivers/gpio/gpiolib.c | 19 ++++++----- drivers/hid/hid-cp2112.c | 2 +- drivers/input/touchscreen/ad7879.c | 2 +- drivers/leds/leds-pca9532.c | 6 ++-- drivers/leds/leds-tca6507.c | 2 +- drivers/media/dvb-frontends/cxd2820r_core.c | 2 +- drivers/mfd/dm355evm_msp.c | 2 +- drivers/mfd/htc-egpio.c | 2 +- drivers/mfd/htc-i2cpld.c | 4 +-- drivers/mfd/tps65010.c | 2 +- drivers/mfd/ucb1x00-core.c | 2 +- drivers/pinctrl/bcm/pinctrl-bcm2835.c | 8 ++--- drivers/pinctrl/bcm/pinctrl-cygnus-gpio.c | 2 +- drivers/pinctrl/intel/pinctrl-baytrail.c | 2 +- drivers/pinctrl/intel/pinctrl-cherryview.c | 2 +- drivers/pinctrl/intel/pinctrl-intel.c | 2 +- drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 12 +++---- drivers/pinctrl/meson/pinctrl-meson.c | 2 +- drivers/pinctrl/nomadik/pinctrl-abx500.c | 7 ++-- drivers/pinctrl/nomadik/pinctrl-nomadik.c | 8 ++--- drivers/pinctrl/pinctrl-amd.c | 2 +- drivers/pinctrl/pinctrl-as3722.c | 2 +- drivers/pinctrl/pinctrl-at91-pio4.c | 12 +++---- drivers/pinctrl/pinctrl-at91.c | 2 +- drivers/pinctrl/pinctrl-coh901.c | 2 +- drivers/pinctrl/pinctrl-digicolor.c | 2 +- drivers/pinctrl/pinctrl-pistachio.c | 2 +- drivers/pinctrl/pinctrl-rockchip.c | 2 +- drivers/pinctrl/pinctrl-st.c | 2 +- drivers/pinctrl/pinctrl-xway.c | 10 +++--- drivers/pinctrl/qcom/pinctrl-msm.c | 2 +- drivers/pinctrl/qcom/pinctrl-spmi-gpio.c | 2 +- drivers/pinctrl/qcom/pinctrl-spmi-mpp.c | 2 +- drivers/pinctrl/qcom/pinctrl-ssbi-gpio.c | 2 +- drivers/pinctrl/qcom/pinctrl-ssbi-mpp.c | 2 +- drivers/pinctrl/samsung/pinctrl-exynos.c | 3 +- drivers/pinctrl/samsung/pinctrl-exynos5440.c | 12 +++---- drivers/pinctrl/samsung/pinctrl-samsung.c | 2 +- drivers/pinctrl/sh-pfc/gpio.c | 2 +- drivers/pinctrl/sirf/pinctrl-atlas7.c | 2 +- drivers/pinctrl/sirf/pinctrl-sirf.c | 2 +- drivers/pinctrl/spear/pinctrl-plgpio.c | 2 +- drivers/pinctrl/sunxi/pinctrl-sunxi.c | 10 +++--- drivers/pinctrl/vt8500/pinctrl-wmt.c | 8 ++--- drivers/platform/x86/intel_pmic_gpio.c | 4 +-- drivers/tty/serial/max310x.c | 2 +- drivers/tty/serial/sc16is7xx.c | 2 +- include/linux/gpio/driver.h | 4 +-- sound/soc/codecs/rt5677.c | 2 +- sound/soc/codecs/wm5100.c | 2 +- sound/soc/codecs/wm8903.c | 2 +- sound/soc/codecs/wm8962.c | 2 +- sound/soc/codecs/wm8996.c | 2 +- 128 files changed, 274 insertions(+), 261 deletions(-) commit ff08868ef0154cef01d3a50ae1f19dc968fc95f3 Author: Heiko Stuebner Date: Sat Nov 7 22:39:26 2015 +0100 arm64: dts: rockchip: Setup rk3368 ethernet0 alias for u-boot Add an ethernet0 alias for the RK3368 mac interface so that u-boot can find the device-node and fill in the mac address on boards that support a wired network interface. Signed-off-by: Heiko Stuebner arch/arm64/boot/dts/rockchip/rk3368.dtsi | 1 + 1 file changed, 1 insertion(+) commit b3e4b95366a5fcdc1ce3c3e9ffb5db11e1b11939 Author: Heiko Stuebner Date: Sat Nov 7 22:37:26 2015 +0100 ARM: dts: rockchip: Setup rk3066/rk3188 ethernet0 alias for u-boot Add an ethernet0 alias for the RK3066/RK3188 mac interface so that u-boot can find the device-node and fill in the mac address on boards that support a wired network interface. Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3xxx.dtsi | 1 + 1 file changed, 1 insertion(+) commit 85ef8d611f4b0216bc4f96487a0408d5c887f6f9 Author: Sjoerd Simons Date: Fri Nov 6 11:46:37 2015 +0100 ARM: dts: rockchip: Setup rk3288 ethernet0 alias for u-boot Add an ethernet0 alias for the RK3288 mac interface so that u-boot can find the device-node and fill in the mac address on boards that support a wired network interface. Signed-off-by: Sjoerd Simons Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3288.dtsi | 1 + 1 file changed, 1 insertion(+) commit 9def7ccfe8d5b84d382cff83553dd6db72f61a23 Author: Heiko Stuebner Date: Wed Nov 4 20:25:16 2015 +0800 ARM: rockchip: add support smp for rk3036 The dual-core Cortex A7 rk3036 is a bit special in that it does not allow to control the actual powerdomain of the cpu cores, while the rest of the smp-bringup like reset control and entry address handling stays the same. Its bigger sibling, the quad-core rk3128 again allows powerdomain control. So allow that case by introducing a separate smp-enable-method, that simply disables powerdomain handling in the common code. Signed-off-by: Heiko Stuebner Tested-by: Xing Zheng Acked-by: Rob Herring Documentation/devicetree/bindings/arm/cpus.txt | 1 + arch/arm/mach-rockchip/platsmp.c | 45 +++++++++++++++++++------- 2 files changed, 34 insertions(+), 12 deletions(-) commit 064f462632c2294f9b7fb51a7697392fedeea12e Author: Brian Norris Date: Mon Nov 16 17:04:08 2015 -0800 mtd: brcmnand: drop unused subpage_read() support AFAIR this driver was never tested with subpage read support, and this code is currently unused because we don't set the NAND_SUBPAGE_READ flag. It can be resurrected if someone tests it properly. Signed-off-by: Brian Norris Tested-by: Ray Jui drivers/mtd/nand/brcmnand/brcmnand.c | 11 ----------- 1 file changed, 11 deletions(-) commit d618baf94c62eb63b5b7f6159fb6aee5550a2e10 Author: Brian Norris Date: Mon Nov 16 16:56:13 2015 -0800 mtd: brcmnand: clean up flash cache for parameter pages The read_byte() handling for accessing the flash cache has some awkward swapping being done in the read_byte() function. Let's just make this a byte array, and do the swapping with the word-level macros during the initial buffer copy. This is just a refactoring patch, with no (intended) functional change. Signed-off-by: Brian Norris Cc: Clay McClure Cc: Ray Jui Cc: Scott Branden Cc: Tested-by: Clay McClure drivers/mtd/nand/brcmnand/brcmnand.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 47c5ee34d8d913a1ab1ae87544475c136ea25b26 Author: Sudip Mukherjee Date: Mon Nov 16 19:16:40 2015 +0530 clk: versatile: fix memory leak If of_clk_parent_fill() fails then we printed an error message and returned. But we missed freeing sp810. Signed-off-by: Sudip Mukherjee Signed-off-by: Stephen Boyd drivers/clk/versatile/clk-sp810.c | 1 + 1 file changed, 1 insertion(+) commit 85c72ba1ed0c116adabf312ba64e61934557527e Merge: d37b4c0 93d05d4 Author: David S. Miller Date: Wed Nov 18 16:17:43 2015 -0500 Merge branch 'net-generic-busy-polling' Eric Dumazet says: ==================== net: extend busy polling support This patch series extends busy polling range to tunnels devices, and adds busy polling generic support to all NAPI drivers. No need to provide ndo_busy_poll() method and extra synchronization between ndo_busy_poll() and normal napi->poll() method. This was proven very difficult and bug prone. mlx5 driver is changed to support busy polling using this new method, and a second mlx5 patch adds napi_complete_done() support and proper SNMP accounting. bnx2x and mlx4 drivers are converted to new infrastructure, reducing kernel bloat and improving performance. Latest patch, adding generic support, adds a new requirement : -free_netdev() and netif_napi_del() must be called from process context. Since this might not be the case in some drivers, we might have to either : fix the non conformant drivers (by disabling busy polling on them) or revert this last patch. ==================== Signed-off-by: David S. Miller commit 93d05d4a320cb16712bb3d57a9658f395d8cecb9 Author: Eric Dumazet Date: Wed Nov 18 06:31:03 2015 -0800 net: provide generic busy polling to all NAPI drivers NAPI drivers no longer need to observe a particular protocol to benefit from busy polling (CONFIG_NET_RX_BUSY_POLL=y) napi_hash_add() and napi_hash_del() are automatically called from core networking stack, respectively from netif_napi_add() and netif_napi_del() This patch depends on free_netdev() and netif_napi_del() being called from process context, which seems to be the norm. Drivers might still prefer to call napi_hash_del() on their own, since they might combine all the rcu grace periods into a single one, knowing their NAPI structures lifetime, while core networking stack has no idea of a possible combining. Once this patch proves to not bring serious regressions, we will cleanup drivers to either remove napi_hash_del() or provide appropriate rcu grace periods combining. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 2 -- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 2 -- drivers/net/ethernet/chelsio/cxgb4/sge.c | 1 - drivers/net/ethernet/cisco/enic/enic_main.c | 2 -- drivers/net/ethernet/emulex/benet/be_main.c | 1 - drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c | 1 - drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 3 --- drivers/net/ethernet/mellanox/mlx4/en_cq.c | 6 ++---- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 1 - drivers/net/ethernet/myricom/myri10ge/myri10ge.c | 1 - drivers/net/ethernet/sfc/efx.c | 1 - drivers/net/virtio_net.c | 1 - include/linux/netdevice.h | 7 +++++++ net/core/dev.c | 7 +++++++ 14 files changed, 16 insertions(+), 20 deletions(-) commit 34cbe27e811c591c854a39c0dee1b461bb796953 Author: Eric Dumazet Date: Wed Nov 18 06:31:02 2015 -0800 net: napi_hash_del() returns a boolean status napi_hash_del() will soon be used from both drivers (if they want) or core networking stack. Callers are responsibles to ensure an RCU grace period is respected before freeing napi structure : napi_hash_del() can signal if this RCU grace period is needed or not. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller include/linux/netdevice.h | 5 +++-- net/core/dev.c | 10 +++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) commit 6180d9de61a5c461f9e3efef5417a844701dbbb2 Author: Eric Dumazet Date: Wed Nov 18 06:31:01 2015 -0800 net: move napi_hash[] into read mostly section We do not often add/delete a napi context. Moving napi_hash[] into read mostly section avoids potential false sharing. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller include/linux/hashtable.h | 4 ++++ net/core/dev.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) commit d64b5e85bfe2fe4c790abcbd16d9ae32391ddd7e Author: Eric Dumazet Date: Wed Nov 18 06:31:00 2015 -0800 net: add netif_tx_napi_add() netif_tx_napi_add() is a variant of netif_napi_add() It should be used by drivers that use a napi structure to exclusively poll TX. We do not want to add this kind of napi in napi_hash[] in following patches, adding generic busy polling to all NAPI drivers. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bcmsysport.c | 2 +- drivers/net/ethernet/broadcom/genet/bcmgenet.c | 4 ++-- .../net/ethernet/freescale/fs_enet/fs_enet-main.c | 2 +- drivers/net/ethernet/freescale/gianfar.c | 4 ++-- drivers/net/ethernet/mellanox/mlx4/en_cq.c | 4 ++-- drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c | 4 ++-- drivers/net/ethernet/rocker/rocker.c | 2 +- drivers/net/ethernet/ti/cpsw.c | 2 +- drivers/net/ethernet/ti/netcp_core.c | 2 +- drivers/net/wireless/ath/wil6210/netdev.c | 2 +- include/linux/netdevice.h | 23 +++++++++++++++++++++- net/core/dev.c | 3 ++- 12 files changed, 38 insertions(+), 16 deletions(-) commit 93f93a4404159ecf7e9148f5ad0718ec702ac4cb Author: Eric Dumazet Date: Wed Nov 18 06:30:59 2015 -0800 net: move skb_mark_napi_id() into core networking stack We would like to automatically provide busy polling support to all NAPI drivers, without them having to implement anything. skb_mark_napi_id() can be called from napi_gro_receive() and napi_get_frags(). Few drivers are still calling skb_mark_napi_id() because they use netif_receive_skb(). They should eventually call napi_gro_receive() instead. I will leave this to drivers maintainers. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 1 - drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 2 -- drivers/net/ethernet/chelsio/cxgb4/sge.c | 1 - drivers/net/ethernet/emulex/benet/be_main.c | 1 - drivers/net/ethernet/intel/i40e/i40e_txrx.c | 1 - drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 1 - drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 2 +- drivers/net/ethernet/mellanox/mlx4/en_rx.c | 3 --- drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 1 - drivers/net/ethernet/myricom/myri10ge/myri10ge.c | 2 +- drivers/net/ethernet/sfc/rx.c | 1 - drivers/net/virtio_net.c | 2 -- net/core/dev.c | 2 ++ 13 files changed, 4 insertions(+), 16 deletions(-) commit 868fdb06063d92f4373be4974d1b651a32bb9442 Author: Eric Dumazet Date: Wed Nov 18 06:30:58 2015 -0800 mlx4: remove mlx4_en_low_latency_recv() Busy polling can now be handled in generic NAPI poll infrastructure. This removes complexity and fast path overhead : mlx4 used two spin_lock()/spin_unlock() pair per napi->poll() call in mlx4_en_cq_lock_napi()/mlx4_en_cq_unlock_napi() Tested: Without busy polling : lpaa23:~# echo 0 >/proc/sys/net/core/busy_read lpaa24:~# echo 0 >/proc/sys/net/core/busy_read lpaa23:~# ./netperf -H lpaa24 -t TCP_RR MIGRATED TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to lpaa24.prod.google.com () port 0 AF_INET : first burst 0 Local /Remote Socket Size Request Resp. Elapsed Trans. Send Recv Size Size Time Rate bytes Bytes bytes bytes secs. per sec 16384 87380 1 1 10.00 47330.78 With busy polling : lpaa23:~# echo 70 >/proc/sys/net/core/busy_read lpaa24:~# echo 70 >/proc/sys/net/core/busy_read lpaa23:~# ./netperf -H lpaa24 -t TCP_RR MIGRATED TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to lpaa24.prod.google.com () port 0 AF_INET : first burst 0 Local /Remote Socket Size Request Resp. Elapsed Trans. Send Recv Size Size Time Rate bytes Bytes bytes bytes secs. per sec 16384 87380 1 1 10.00 97643.55 Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/en_ethtool.c | 17 ---- drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 40 -------- drivers/net/ethernet/mellanox/mlx4/en_rx.c | 15 +-- drivers/net/ethernet/mellanox/mlx4/mlx4_en.h | 128 ------------------------ 4 files changed, 2 insertions(+), 198 deletions(-) commit b59768c6b4fc1c95b7679f2cfa9c13d8cc70ab46 Author: Eric Dumazet Date: Wed Nov 18 06:30:57 2015 -0800 bnx2x: remove bnx2x_low_latency_recv() support Switch to native NAPI polling, as this reduces overhead and complexity. Normal path is faster, since one cmpxchg() is not anymore requested, and busy polling with the NAPI polling has same performance. Tested: lpk50:~# cat /proc/sys/net/core/busy_read 70 lpk50:~# nstat >/dev/null;./netperf -H lpk55 -t TCP_RR;nstat MIGRATED TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to lpk55.prod.google.com () port 0 AF_INET : first burst 0 Local /Remote Socket Size Request Resp. Elapsed Trans. Send Recv Size Size Time Rate bytes Bytes bytes bytes secs. per sec 16384 87380 1 1 10.00 40095.07 16384 87380 IpInReceives 401062 0.0 IpInDelivers 401062 0.0 IpOutRequests 401079 0.0 TcpActiveOpens 7 0.0 TcpPassiveOpens 3 0.0 TcpAttemptFails 3 0.0 TcpEstabResets 5 0.0 TcpInSegs 401036 0.0 TcpOutSegs 401052 0.0 TcpOutRsts 38 0.0 UdpInDatagrams 26 0.0 UdpOutDatagrams 27 0.0 Ip6OutNoRoutes 1 0.0 TcpExtDelayedACKs 1 0.0 TcpExtTCPPrequeued 98 0.0 TcpExtTCPDirectCopyFromPrequeue 98 0.0 TcpExtTCPHPHits 4 0.0 TcpExtTCPHPHitsToUser 98 0.0 TcpExtTCPPureAcks 5 0.0 TcpExtTCPHPAcks 101 0.0 TcpExtTCPAbortOnData 6 0.0 TcpExtBusyPollRxPackets 400832 0.0 TcpExtTCPOrigDataSent 400983 0.0 IpExtInOctets 21273867 0.0 IpExtOutOctets 21261254 0.0 IpExtInNoECTPkts 401064 0.0 Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x.h | 113 ----------------------- drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 46 +-------- drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h | 7 -- drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 3 - 4 files changed, 2 insertions(+), 167 deletions(-) commit 44fb6fbbac23ee304d113ceb5eed45666d8a32f9 Author: Eric Dumazet Date: Wed Nov 18 06:30:56 2015 -0800 mlx5: support napi_complete_done() A NAPI poll handler should return number of RX packets processed, instead of 0 / budget. This allows proper busy poll accounting through LINUX_MIB_BUSYPOLLRXPACKETS SNMP counter. napi_complete_done() allows /sys/class/net/ethX/gro_flush_timeout to be used for finer GRO aggregation control. Tested: Enabled busy polling, and checked TcpExtBusyPollRxPackets counter is increasing. echo 70 >/proc/sys/net/core/busy_read nstat >/dev/null netperf -H target -t TCP_RR >/dev/null nstat | grep TcpExtBusyPollRxPackets TcpExtBusyPollRxPackets 490958 0.0 Signed-off-by: Eric Dumazet Cc: Eli Cohen Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en.h | 2 +- drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 14 ++++++-------- drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c | 11 ++++++----- 3 files changed, 13 insertions(+), 14 deletions(-) commit 7ae92ae588c9f78006c106bb3398d50274c5d7de Author: Eric Dumazet Date: Wed Nov 18 06:30:55 2015 -0800 mlx5: add busy polling support It is now easy to add busy polling support to a NAPI driver, with very little impact on normal input path. This patch serves as a reference implementation. Note: A followup patch will add proper napi_complete_done() in mlx5, so that LINUX_MIB_BUSYPOLLRXPACKETS snmp counter is properly handled. Tested: Normal TCP_RR results without busy polling : lpk51:~# echo 0 >/proc/sys/net/core/busy_read lpk52:~# echo 0 >/proc/sys/net/core/busy_read lpk51:~# ./netperf -H 192.168.4.52 -t TCP_RR -l 10 MIGRATED TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.4.52 () port 0 AF_INET : first burst 0 Local /Remote Socket Size Request Resp. Elapsed Trans. Send Recv Size Size Time Rate bytes Bytes bytes bytes secs. per sec 16384 87380 1 1 10.00 53509.49 16384 87380 Now enable busy polling : lpk51:~# echo 70 >/proc/sys/net/core/busy_read lpk52:~# echo 70 >/proc/sys/net/core/busy_read lpk51:~# ./netperf -H 192.168.4.52 -t TCP_RR -l 10 MIGRATED TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.4.52 () port 0 AF_INET : first burst 0 Local /Remote Socket Size Request Resp. Elapsed Trans. Send Recv Size Size Time Rate bytes Bytes bytes bytes secs. per sec 16384 87380 1 1 10.00 97530.92 16384 87380 Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 6 ++++++ drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 2 ++ 2 files changed, 8 insertions(+) commit ce6aea93f7510437dde625b77a7a2f4d20b72660 Author: Eric Dumazet Date: Wed Nov 18 06:30:54 2015 -0800 net: network drivers no longer need to implement ndo_busy_poll() Instead of having to implement complex ndo_busy_poll() method, drivers can simply rely on NAPI poll logic. Busy polling gains are mainly coming from polling itself, not on exact details on how we poll the device. ndo_busy_poll() if implemented can avoid touching napi state, but it adds extra synchronization between normal napi->poll() and busy poll handler, slowing down the common path (non busy polling) with extra atomic operations. In practice few drivers ever got busy poll because of the complexity. We could go one step further, and make busy polling available for all NAPI drivers, but this would require that all netif_napi_del() calls are done in process context so that we can call synchronize_rcu(). Full audit would be required. Before this is done, a driver still needs to call : - skb_mark_napi_id() for each skb provided to the stack. - napi_hash_add() and napi_hash_del() to allocate a napi_id per napi struct. - Make sure RCU grace period is respected after napi_hash_del() before memory containing napi structure is freed. Followup patch implements busy poll for mlx5 driver as an example. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/core/dev.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) commit 2a028ecb76497d05e5cd4e3e8b09d965cac2e3f1 Author: Eric Dumazet Date: Wed Nov 18 06:30:53 2015 -0800 net: allow BH servicing in sk_busy_loop() Instead of blocking BH in whole sk_busy_loop(), block them only around ->ndo_busy_poll() calls. This has many benefits. 1) allow tunneled traffic to use busy poll as well as native traffic. Tunnels handlers usually call netif_rx() and depend on net_rx_action() being run (from sofirq handler) 2) allow RFS/RPS being used (sending IPI to other cpus if needed) 3) use the 'lets burn cpu cycles' budget to do useful work (like TX completions, timers, RCU callbacks...) 4) reduce BH latencies, making busy poll a better citizen. Tested: Tested with SIT tunnel lpaa5:~# echo 0 >/proc/sys/net/core/busy_read lpaa5:~# ./netperf -H 2002:af6:786::1 -t TCP_RR MIGRATED TCP REQUEST/RESPONSE TEST from ::0 (::) port 0 AF_INET6 to 2002:af6:786::1 () port 0 AF_INET6 : first burst 0 Local /Remote Socket Size Request Resp. Elapsed Trans. Send Recv Size Size Time Rate bytes Bytes bytes bytes secs. per sec 16384 87380 1 1 10.00 37373.93 16384 87380 Now enable busy poll on both hosts lpaa5:~# echo 70 >/proc/sys/net/core/busy_read lpaa6:~# echo 70 >/proc/sys/net/core/busy_read lpaa5:~# ./netperf -H 2002:af6:786::1 -t TCP_RR MIGRATED TCP REQUEST/RESPONSE TEST from ::0 (::) port 0 AF_INET6 to 2002:af6:786::1 () port 0 AF_INET6 : first burst 0 Local /Remote Socket Size Request Resp. Elapsed Trans. Send Recv Size Size Time Rate bytes Bytes bytes bytes secs. per sec 16384 87380 1 1 10.00 58314.77 16384 87380 Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/core/dev.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) commit 02d62e86fe892c59a1259d089d4d16ac76977a37 Author: Eric Dumazet Date: Wed Nov 18 06:30:52 2015 -0800 net: un-inline sk_busy_loop() There is really little gain from inlining this big function. We'll soon make it even bigger in following patches. This means we no longer need to export napi_by_id() Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller include/linux/netdevice.h | 9 --------- include/net/busy_poll.h | 45 +----------------------------------------- net/core/dev.c | 50 +++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 49 insertions(+), 55 deletions(-) commit 5865316c9db31e863d4baef04dc86957d7fdae7f Author: Eric Dumazet Date: Wed Nov 18 06:30:51 2015 -0800 mlx4: mlx4_en_low_latency_recv() called with BH disabled mlx4_en_low_latency_recv() is called with BH disabled, as other ndo_busy_poll() methods. No need for spin_lock_bh()/spin_unlock_bh() Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/mlx4_en.h | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 52bd2d62ce6758d811edcbd2256eb9ea7f6a56cb Author: Eric Dumazet Date: Wed Nov 18 06:30:50 2015 -0800 net: better skb->sender_cpu and skb->napi_id cohabitation skb->sender_cpu and skb->napi_id share a common storage, and we had various bugs about this. We had to call skb_sender_cpu_clear() in some places to not leave a prior skb->napi_id and fool netdev_pick_tx() As suggested by Alexei, we could split the space so that these errors can not happen. 0 value being reserved as the common (not initialized) value, let's reserve [1 .. NR_CPUS] range for valid sender_cpu, and [NR_CPUS+1 .. ~0U] for valid napi_id. This will allow proper busy polling support over tunnels. Signed-off-by: Eric Dumazet Suggested-by: Alexei Starovoitov Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller include/linux/skbuff.h | 3 --- net/core/dev.c | 33 ++++++++++++++++----------------- 2 files changed, 16 insertions(+), 20 deletions(-) commit 39b0555f7a1f96ecd303103df15596db49c36c65 Author: Andreas Gruenbacher Date: Fri Nov 13 07:44:57 2015 -0600 gfs2: Extended attribute readahead optimization Instead of submitting a READ_SYNC bio for the inode and a READA bio for the inode's extended attributes through submit_bh, submit a single READ_SYNC bio for both through submit_bio when possible. This can be more efficient on some kinds of block devices. Signed-off-by: Andreas Gruenbacher Signed-off-by: Bob Peterson fs/gfs2/meta_io.c | 81 ++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 63 insertions(+), 18 deletions(-) commit d35b32891a61f1d3909bdc5280badf309adc4693 Author: Wang Nan Date: Tue Nov 17 08:32:47 2015 +0000 perf bpf: Use same BPF program if arguments are identical This patch allows creating only one BPF program for different 'probe_trace_event'(tev) entries generated by one 'perf_probe_event'(pev) if their prologues are identical. This is done by comparing the argument list of different tev instances, and the maps type of prologue and tev using a mapping array. This patch utilizes qsort to sort the tevs. After sorting, tevs with identical argument lists will be grouped together. Test result: Sample BPF program: #define SEC(NAME) __attribute__((section(NAME), used)) SEC("inlines=no;" "func=SyS_dup? oldfd") int func(void *ctx) { return 1; } It would probe at SyS_dup2 and SyS_dup3, obtaining oldfd as its argument. The following cmdline shows a BPF program being loaded into the kernel by perf: # perf record -e ./test_bpf_arg.c sleep 4 & sleep 1 && ls /proc/$!/fd/ -l | grep bpf-prog Before this patch: # perf record -e ./test_bpf_arg.c sleep 4 & sleep 1 && ls /proc/$!/fd/ -l | grep bpf-prog [1] 24858 lrwx------ 1 root root 64 Nov 14 04:09 3 -> anon_inode:bpf-prog lrwx------ 1 root root 64 Nov 14 04:09 4 -> anon_inode:bpf-prog ... After this patch: # perf record -e ./test_bpf_arg.c sleep 4 & sleep 1 && ls /proc/$!/fd/ -l | grep bpf-prog [1] 25699 lrwx------ 1 root root 64 Nov 14 04:10 3 -> anon_inode:bpf-prog ... Signed-off-by: Wang Nan Cc: Alexei Starovoitov Cc: Masami Hiramatsu Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1447749170-175898-3-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/bpf-loader.c | 138 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 131 insertions(+), 7 deletions(-) commit ad0dd7aed5df8009b3ffa39bec73ad93283332c9 Author: Wang Nan Date: Tue Nov 17 08:32:46 2015 +0000 perf test: Fix 'perf test BPF' when it fails to find a suitable vmlinux Two bugs in 'perf test BPF' are found when testing BPF prologue without vmlinux: # mv /lib/modules/4.3.0-rc4+/build/vmlinux{,.bak} # ./perf test BPF 37: Test BPF filter :Failed to find the path for kernel: No such file or directory Ok Test BPF should fail in this case. After this patch: # ./perf test BPF 37: Test BPF filter :Failed to find the path for kernel: No such file or directory FAILED! # mv /lib/modules/4.3.0-rc4+/build/vmlinux{.bak,} # ./perf test BPF 37: Test BPF filter : Ok Signed-off-by: Wang Nan Cc: Alexei Starovoitov Cc: Masami Hiramatsu Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1447749170-175898-2-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/bpf.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit bbb7d4925a05ecd5bbfdbc1147d402b0db203a5a Author: Wang Nan Date: Mon Nov 16 12:10:14 2015 +0000 perf test: Test the BPF prologue adding infrastructure This patch introduces a new BPF script to test the BPF prologue adding routines. The new script probes at null_lseek, which is the function pointer used when we try to lseek on '/dev/null'. The null_lseek function is chosen because it is used by function pointers, so we don't need to consider inlining and LTO. By extracting file->f_mode, bpf-script-test-prologue.c should know whether the file is writable or readonly. According to llseek_loop() and bpf-script-test-prologue.c, one fourth of total lseeks should be collected. Committer note: Testing it: # perf test -v BPF Kernel build dir is set to /lib/modules/4.3.0+/build set env: KBUILD_DIR=/lib/modules/4.3.0+/build unset env: KBUILD_OPTS include option is set to -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.9.2/include -I/home/git/linux/arch/x86/include -Iarch/x86/include/generated/uapi -Iarch/x86/include/generated -I/home/git/linux/include -Iinclude -I/home/git/linux/arch/x86/include/uapi -Iarch/x86/include/generated/uapi -I/home/git/linux/include/uapi -Iinclude/generated/uapi -include /home/git/linux/include/linux/kconfig.h set env: NR_CPUS=4 set env: LINUX_VERSION_CODE=0x40300 set env: CLANG_EXEC=/usr/libexec/icecc/bin/clang set env: CLANG_OPTIONS=-xc set env: KERNEL_INC_OPTIONS= -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.9.2/include -I/home/git/linux/arch/x86/include -Iarch/x86/include/generated/uapi -Iarch/x86/include/generated -I/home/git/linux/include -Iinclude -I/home/git/linux/arch/x86/include/uapi -Iarch/x86/include/generated/uapi -I/home/git/linux/include/uapi -Iinclude/generated/uapi -include /home/git/linux/include/linux/kconfig.h set env: WORKING_DIR=/lib/modules/4.3.0+/build set env: CLANG_SOURCE=- llvm compiling command template: echo '/* * bpf-script-test-prologue.c * Test BPF prologue */ #ifndef LINUX_VERSION_CODE # error Need LINUX_VERSION_CODE # error Example: for 4.2 kernel, put 'clang-opt="-DLINUX_VERSION_CODE=0x40200" into llvm section of ~/.perfconfig' #endif #define SEC(NAME) __attribute__((section(NAME), used)) #include #define FMODE_READ 0x1 #define FMODE_WRITE 0x2 static void (*bpf_trace_printk)(const char *fmt, int fmt_size, ...) = (void *) 6; SEC("func=null_lseek file->f_mode offset orig") int bpf_func__null_lseek(void *ctx, int err, unsigned long f_mode, unsigned long offset, unsigned long orig) { if (err) return 0; if (f_mode & FMODE_WRITE) return 0; if (offset & 1) return 0; if (orig == SEEK_CUR) return 0; return 1; } char _license[] SEC("license") = "GPL"; int _version SEC("version") = LINUX_VERSION_CODE; ' | $CLANG_EXEC -D__KERNEL__ -D__NR_CPUS__=$NR_CPUS -DLINUX_VERSION_CODE=$LINUX_VERSION_CODE $CLANG_OPTIONS $KERNEL_INC_OPTIONS -Wno-unused-value -Wno-pointer-sign -working-directory $WORKING_DIR -c "$CLANG_SOURCE" -target bpf -O2 -o - libbpf: loading object '[bpf_prologue_test]' from buffer libbpf: section .strtab, size 135, link 0, flags 0, type=3 libbpf: section .text, size 0, link 0, flags 6, type=1 libbpf: section .data, size 0, link 0, flags 3, type=1 libbpf: section .bss, size 0, link 0, flags 3, type=8 libbpf: section func=null_lseek file->f_mode offset orig, size 112, link 0, flags 6, type=1 libbpf: found program func=null_lseek file->f_mode offset orig libbpf: section license, size 4, link 0, flags 3, type=1 libbpf: license of [bpf_prologue_test] is GPL libbpf: section version, size 4, link 0, flags 3, type=1 libbpf: kernel version of [bpf_prologue_test] is 40300 libbpf: section .symtab, size 168, link 1, flags 0, type=2 bpf: config program 'func=null_lseek file->f_mode offset orig' symbol:null_lseek file:(null) line:0 offset:0 return:0 lazy:(null) parsing arg: file->f_mode into file, f_mode(1) parsing arg: offset into offset parsing arg: orig into orig bpf: config 'func=null_lseek file->f_mode offset orig' is ok Looking at the vmlinux_path (7 entries long) Using /lib/modules/4.3.0+/build/vmlinux for symbols Open Debuginfo file: /lib/modules/4.3.0+/build/vmlinux Try to find probe point from debuginfo. Matched function: null_lseek Probe point found: null_lseek+0 Searching 'file' variable in context. Converting variable file into trace event. converting f_mode in file f_mode type is unsigned int. Searching 'offset' variable in context. Converting variable offset into trace event. offset type is long long int. Searching 'orig' variable in context. Converting variable orig into trace event. orig type is int. Found 1 probe_trace_events. Opening /sys/kernel/debug/tracing//kprobe_events write=1 Writing event: p:perf_bpf_probe/func _text+4840528 f_mode=+68(%di):u32 offset=%si:s64 orig=%dx:s32 libbpf: don't need create maps for [bpf_prologue_test] prologue: pass validation prologue: slow path prologue: fetch arg 0, base reg is %di prologue: arg 0: offset 68 prologue: fetch arg 1, base reg is %si prologue: fetch arg 2, base reg is %dx add bpf event perf_bpf_probe:func and attach bpf program 3 adding perf_bpf_probe:func adding perf_bpf_probe:func to 0x51672c0 mmap size 1052672B Opening /sys/kernel/debug/tracing//kprobe_events write=1 Opening /sys/kernel/debug/tracing//uprobe_events write=1 Parsing probe_events: p:perf_bpf_probe/func _text+4840528 f_mode=+68(%di):u32 offset=%si:s64 orig=%dx:s32 Group:perf_bpf_probe Event:func probe:p Writing event: -:perf_bpf_probe/func test child finished with 0 ---- end ---- Test BPF filter: Ok # Signed-off-by: Wang Nan Tested-by: Arnaldo Carvalho de Melo Cc: Alexei Starovoitov Cc: Masami Hiramatsu Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1447675815-166222-13-git-send-email-wangnan0@huawei.com [ Added tools/perf/tests/llvm-src-prologue.c to .gitignore ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/.gitignore | 1 + tools/perf/tests/Build | 9 +++++++- tools/perf/tests/bpf-script-test-prologue.c | 35 +++++++++++++++++++++++++++++ tools/perf/tests/bpf.c | 34 ++++++++++++++++++++++++++++ tools/perf/tests/llvm.c | 4 ++++ tools/perf/tests/llvm.h | 2 ++ 6 files changed, 84 insertions(+), 1 deletion(-) commit a08357d8dc7d3025d1094f727ad1f7e837766f93 Author: Wang Nan Date: Mon Nov 16 12:10:13 2015 +0000 perf bpf: Generate prologue for BPF programs This patch generates a prologue for each 'struct probe_trace_event' for fetching arguments for BPF programs. After bpf__probe(), iterate over each program to check whether prologues are required. If none of the 'struct perf_probe_event' programs will attach to have at least one argument, simply skip preprocessor hooking. For those who a prologue is required, call bpf__gen_prologue() and paste the original instruction after the prologue. Signed-off-by: Wang Nan Cc: Alexei Starovoitov Cc: Masami Hiramatsu Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1447675815-166222-12-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/bpf-loader.c | 120 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 119 insertions(+), 1 deletion(-) commit bfc077b4cf106793b30bf942e426ee99f1f4ac44 Author: He Kuang Date: Mon Nov 16 12:10:12 2015 +0000 perf bpf: Add prologue for BPF programs for fetching arguments This patch generates a prologue for a BPF program which fetches arguments for it. With this patch, the program can have arguments as follow: SEC("lock_page=__lock_page page->flags") int lock_page(struct pt_regs *ctx, int err, unsigned long flags) { return 1; } This patch passes at most 3 arguments from r3, r4 and r5. r1 is still the ctx pointer. r2 is used to indicate if dereferencing was done successfully. This patch uses r6 to hold ctx (struct pt_regs) and r7 to hold stack pointer for result. Result of each arguments first store on stack: low address BPF_REG_FP - 24 ARG3 BPF_REG_FP - 16 ARG2 BPF_REG_FP - 8 ARG1 BPF_REG_FP high address Then loaded into r3, r4 and r5. The output prologue for offn(...off2(off1(reg)))) should be: r6 <- r1 // save ctx into a callee saved register r7 <- fp r7 <- r7 - stack_offset // pointer to result slot /* load r3 with the offset in pt_regs of 'reg' */ (r7) <- r3 // make slot valid r3 <- r3 + off1 // prepare to read unsafe pointer r2 <- 8 r1 <- r7 // result put onto stack call probe_read // read unsafe pointer jnei r0, 0, err // error checking r3 <- (r7) // read result r3 <- r3 + off2 // prepare to read unsafe pointer r2 <- 8 r1 <- r7 call probe_read jnei r0, 0, err ... /* load r2, r3, r4 from stack */ goto success err: r2 <- 1 /* load r3, r4, r5 with 0 */ goto usercode success: r2 <- 0 usercode: r1 <- r6 // restore ctx // original user code If all of arguments reside in register (dereferencing is not required), gen_prologue_fastpath() will be used to create fast prologue: r3 <- (r1 + offset of reg1) r4 <- (r1 + offset of reg2) r5 <- (r1 + offset of reg3) r2 <- 0 P.S. eBPF calling convention is defined as: * r0 - return value from in-kernel function, and exit value for eBPF program * r1 - r5 - arguments from eBPF program to in-kernel function * r6 - r9 - callee saved registers that in-kernel function will preserve * r10 - read-only frame pointer to access stack Committer note: At least testing if it builds and loads: # cat test_probe_arg.c struct pt_regs; __attribute__((section("lock_page=__lock_page page->flags"), used)) int func(struct pt_regs *ctx, int err, unsigned long flags) { return 1; } char _license[] __attribute__((section("license"), used)) = "GPL"; int _version __attribute__((section("version"), used)) = 0x40300; # perf record -e ./test_probe_arg.c usleep 1 [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.016 MB perf.data ] # perf evlist perf_bpf_probe:lock_page # Signed-off-by: He Kuang Tested-by: Arnaldo Carvalho de Melo Cc: Alexei Starovoitov Cc: Masami Hiramatsu Cc: Wang Nan Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1447675815-166222-11-git-send-email-wangnan0@huawei.com Signed-off-by: Wang Nan Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/Build | 1 + tools/perf/util/bpf-loader.c | 3 + tools/perf/util/bpf-loader.h | 3 + tools/perf/util/bpf-prologue.c | 455 +++++++++++++++++++++++++++++++++++++++++ tools/perf/util/bpf-prologue.h | 34 +++ 5 files changed, 496 insertions(+) commit 03e01f568759ddbfdaff892e299758e7771a3478 Author: Wang Nan Date: Mon Nov 16 12:10:08 2015 +0000 perf bpf: Allow BPF program config probing options By extending the syntax of BPF object section names, this patch allows users to config probing options like what they can do in 'perf probe'. The error message in 'perf probe' is also updated. Test result: For following BPF file test_probe_glob.c: # cat test_probe_glob.c __attribute__((section("inlines=no;func=SyS_dup?"), used)) int func(void *ctx) { return 1; } char _license[] __attribute__((section("license"), used)) = "GPL"; int _version __attribute__((section("version"), used)) = 0x40300; # # ./perf record -e ./test_probe_glob.c ls / ... [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.013 MB perf.data ] # ./perf evlist perf_bpf_probe:func_1 perf_bpf_probe:func After changing "inlines=no" to "inlines=yes": # ./perf record -e ./test_probe_glob.c ls / ... [ perf record: Woken up 2 times to write data ] [ perf record: Captured and wrote 0.013 MB perf.data ] # ./perf evlist perf_bpf_probe:func_3 perf_bpf_probe:func_2 perf_bpf_probe:func_1 perf_bpf_probe:func Then test 'force': Use following program: # cat test_probe_force.c __attribute__((section("func=sys_write"), used)) int funca(void *ctx) { return 1; } __attribute__((section("force=yes;func=sys_write"), used)) int funcb(void *ctx) { return 1; } char _license[] __attribute__((section("license"), used)) = "GPL"; int _version __attribute__((section("version"), used)) = 0x40300; # # perf record -e ./test_probe_force.c usleep 1 Error: event "func" already exists. Hint: Remove existing event by 'perf probe -d' or force duplicates by 'perf probe -f' or set 'force=yes' in BPF source. event syntax error: './test_probe_force.c' \___ Probe point exist. Try 'perf probe -d "*"' and set 'force=yes' (add -v to see detail) ... Then replace 'force=no' to 'force=yes': # vim test_probe_force.c # perf record -e ./test_probe_force.c usleep 1 [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.017 MB perf.data ] # perf evlist perf_bpf_probe:func_1 perf_bpf_probe:func # Signed-off-by: Wang Nan Tested-by: Arnaldo Carvalho de Melo Cc: Alexei Starovoitov Cc: Masami Hiramatsu Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1447675815-166222-7-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/bpf-loader.c | 53 +++++++++++++++++++++++++++++++++++++++++-- tools/perf/util/probe-event.c | 7 ++++-- 2 files changed, 56 insertions(+), 4 deletions(-) commit 5dbd16c0c9d17ab1ab2226a5926482c26c0287ed Author: Wang Nan Date: Mon Nov 16 12:10:06 2015 +0000 perf bpf: Allow attaching BPF programs to modules symbols By extending the syntax of BPF object section names, this patch allows users to attach BPF programs to symbols in modules. For example: SEC("module=i915;" "parse_cmds=i915_parse_cmds") int parse_cmds(void *ctx) { return 1; } The implementation is very simple: like what 'perf probe' does, for module, fill 'uprobe' field in 'struct perf_probe_event'. Other parts will be done automatically. Signed-off-by: Wang Nan Cc: Alexei Starovoitov Cc: Brendan Gregg Cc: Daniel Borkmann Cc: David Ahern Cc: He Kuang Cc: Jiri Olsa Cc: Kaixu Xia Cc: Masami Hiramatsu Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1447675815-166222-5-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/bpf-loader.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 361f2b1d1d7231b8685d990b886f599378a4d5a5 Author: Wang Nan Date: Mon Nov 16 12:10:05 2015 +0000 perf bpf: Allow BPF program attach to uprobe events This patch adds a new syntax to the BPF object section name to support probing at uprobe event. Now we can use BPF program like this: SEC( "exec=/lib64/libc.so.6;" "libcwrite=__write" ) int libcwrite(void *ctx) { return 1; } Where, in section name of a program, before the main config string, we can use 'key=value' style options. Now the only option key is "exec", for uprobes. Signed-off-by: Wang Nan Cc: Alexei Starovoitov Cc: Masami Hiramatsu Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1447675815-166222-4-git-send-email-wangnan0@huawei.com [ Changed the separator from \n to ; ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/bpf-loader.c | 120 ++++++++++++++++++++++++++++++++++++++++--- tools/perf/util/bpf-loader.h | 1 + 2 files changed, 115 insertions(+), 6 deletions(-) commit 30433a3a52b951faab95944e0f8b9d33a1e322ce Author: Wang Nan Date: Mon Nov 16 12:10:11 2015 +0000 perf bpf: Compile dwarf-regs.c if CONFIG_BPF_PROLOGUE is on regs_query_register_offset() in dwarf-regs.c is required by BPF prologue. This patch compiles it if CONFIG_BPF_PROLOGUE is on to avoid build failure when CONFIG_BPF_PROLOGUE is on but CONFIG_DWARF is not set. Signed-off-by: He Kuang Acked-by: Masami Hiramatsu Cc: Alexei Starovoitov Cc: He Kuang Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1447675815-166222-10-git-send-email-wangnan0@huawei.com Signed-off-by: Wang Nan Signed-off-by: Arnaldo Carvalho de Melo tools/perf/arch/x86/util/Build | 1 + 1 file changed, 1 insertion(+) commit 1c0ed63239012aa881cc811f726b549dca7279e4 Author: Wang Nan Date: Mon Nov 16 12:10:10 2015 +0000 perf bpf: Add BPF_PROLOGUE config options for further patches If both LIBBPF and DWARF are detected, it is possible to create prologue for eBPF programs to help them access kernel data. HAVE_BPF_PROLOGUE and CONFIG_BPF_PROLOGUE are added as flags for this feature. PERF_HAVE_ARCH_REGS_QUERY_REGISTER_OFFSET is introduced in commit 63ab024a5b6f295ca17a293ad81b7c728f49a89a ("perf tools: regs_query_register_offset() infrastructure"), which indicates that an architecture supports converting name of a register to its offset in 'struct pt_regs'. Without this support, BPF_PROLOGUE should be turned off. Signed-off-by: Wang Nan Cc: Alexei Starovoitov Cc: Masami Hiramatsu Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1447675815-166222-9-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/config/Makefile | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit b580563e38487d9db8e94080149644da71c533c1 Author: Wang Nan Date: Mon Nov 16 12:10:09 2015 +0000 bpf tools: Load a program with different instances using preprocessor This patch is a preparation for BPF prologue support which allows generating a series of BPF bytecode for fetching kernel data before calling program code. With the newly introduced multiple instances support, perf is able to create different prologues for different kprobe points. Before this patch, a bpf_program can be loaded into kernel only once, and get the only resulting fd. What this patch does is to allow creating and loading different variants of one bpf_program, then fetching their fds. Here we describe the basic idea in this patch. The detailed description of the newly introduced APIs can be found in comments in the patch body. The key of this patch is the new mechanism in bpf_program__load(). Instead of loading BPF program into kernel directly, it calls a 'pre-processor' to generate program instances which would be finally loaded into the kernel based on the original code. To enable the generation of multiple instances, libbpf passes an index to the pre-processor so it know which instance is being loaded. Pre-processor should be called from libbpf's user (perf) using bpf_program__set_prep(). The number of instances and the relationship between indices and the target instance should be clear when calling bpf_program__set_prep(). To retrieve a fd for a specific instance of a program, bpf_program__nth_fd() is introduced. It returns the resulting fd according to index. Signed-off-by: He Kuang Cc: Alexei Starovoitov Cc: He Kuang Cc: Masami Hiramatsu Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1447675815-166222-8-git-send-email-wangnan0@huawei.com Signed-off-by: Wang Nan [ Enclosed multi-line if/else blocks with {}, (*func_ptr)() -> func_ptr() ] Signed-off-by: Arnaldo Carvalho de Melo tools/lib/bpf/libbpf.c | 146 ++++++++++++++++++++++++++++++++++++++++++++++--- tools/lib/bpf/libbpf.h | 64 ++++++++++++++++++++++ 2 files changed, 201 insertions(+), 9 deletions(-) commit 7d85c434214ea0b3416f7a62f76a0785b00d8797 Author: Wang Nan Date: Mon Nov 16 11:42:05 2015 -0300 tools: Clone the kernel's strtobool function Copying it to tools/lib/string.c, the counterpart to the kernel's lib/string.c. This is preparation for enhancing BPF program configuration, which will allow config string like 'inlines=yes'. Signed-off-by: Wang Nan Cc: Alexei Starovoitov Cc: Jonathan Cameron Cc: Masami Hiramatsu Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1447675815-166222-6-git-send-email-wangnan0@huawei.com [ Copied it to tools/lib/string.c instead, to make it usable by other tools/ ] Signed-off-by: Arnaldo Carvalho de Melo tools/include/linux/string.h | 2 ++ tools/lib/string.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) commit 4ddd32741da87657113d964588ce13ee64b34820 Author: Arnaldo Carvalho de Melo Date: Mon Nov 16 11:36:29 2015 -0300 tools: Adopt memdup() from tools/perf, moving it to tools/lib/string.c That will contain more string functions with counterparts, sometimes verbatim copies, in the kernel. Acked-by: Wang Nan Cc: Adrian Hunter Cc: Alexey Dobriyan Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/n/tip-rah6g97kn21vfgmlramorz6o@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/include/linux/string.h | 9 +++++++++ tools/lib/string.c | 19 +++++++++++++++++++ tools/perf/MANIFEST | 2 ++ tools/perf/util/Build | 6 ++++++ tools/perf/util/include/linux/string.h | 3 --- tools/perf/util/string.c | 16 ---------------- 6 files changed, 36 insertions(+), 19 deletions(-) commit 9a13c6587e2f0d5e80ce02f5f9ef62788b48d163 Author: Kevin Hilman Date: Tue Nov 17 13:54:19 2015 -0800 tools: Fix selftests_install Makefile rule Fix copy/paste error in selftests_install rule which was copy-pasted from the clean rule but not properly changed. Signed-off-by: Kevin Hilman Cc: Bamvor Jian Zhang Cc: Jiri Olsa Cc: Jonathan Cameron Cc: Michael Ellerman Cc: Pali Rohar Cc: Pavel Machek Cc: Roberta Dobrescu Cc: Shuah Khan Cc: linaro-kernel@lists.linaro.org Link: http://lkml.kernel.org/r/1447797261-1775-1-git-send-email-khilman@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 916d4092a1d2d7bb50630497be71ee4c4c2807fa Author: Arnaldo Carvalho de Melo Date: Wed Nov 18 17:38:49 2015 -0300 perf test: Fix build of BPF and LLVM on older glibc libraries $ rpm -q glibc glibc-2.12-1.166.el6_7.1.x86_64 CC /tmp/build/perf/tests/llvm.o cc1: warnings being treated as errors tests/llvm.c: In function ‘test_llvm__fetch_bpf_obj’: tests/llvm.c:53: error: declaration of ‘index’ shadows a global declaration /usr/include/string.h:489: error: shadowed declaration is here CC /tmp/build/perf/tests/bpf.o cc1: warnings being treated as errors tests/bpf.c: In function ‘__test__bpf’: tests/bpf.c:149: error: declaration of ‘index’ shadows a global declaration /usr/include/string.h:489: error: shadowed declaration is here Cc: He Kuang Cc: Jiri Olsa Cc: Namhyung Kim Cc: pi3orama@163.com Cc: Wang Nan Cc: Zefan Li Fixes: b31de018a628 ("perf test: Enhance the LLVM test: update basic BPF test program") Fixes: ba1fae431e74 ("perf test: Add 'perf test BPF'") Link: http://lkml.kernel.org/n/tip-akpo4r750oya2phxoh9e3447@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/bpf.c | 14 +++++++------- tools/perf/tests/llvm.c | 8 ++++---- 2 files changed, 11 insertions(+), 11 deletions(-) commit d37b4c0a3647db23f41c5ee85701eec3544446d1 Author: Ivan Vecera Date: Wed Nov 18 14:06:34 2015 +0100 be2net: remove local variable 'status' The lancer_cmd_get_file_len() uses lancer_cmd_read_object() to get the current size of registers for ethtool registers dump. Returned status value is stored but not checked. The check itself is not necessary as the data_read output variable is initialized to 0 and status variable can be removed. Signed-off-by: Ivan Vecera Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be_ethtool.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 6fbaa57076ba46a1f2ebffdb47e1b64d5b4b5b9d Author: huangdaode Date: Wed Nov 18 10:08:00 2015 +0800 net: hisilicon: fix binding document of mdio This patch explains the occasion of "hisilcon,mdio" and "hisilicon,hns-mdio" according to Arnd's comments. and reformat it according to comments from Rob. Signed-off-by: huangdaode Reviewed-by: Arnd Bergmann Signed-off-by: David S. Miller Documentation/devicetree/bindings/net/hisilicon-hns-mdio.txt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit b9fec1672c671fb9f1f44efaaebececcaca57a0e Author: Imre Deak Date: Wed Nov 18 15:57:25 2015 +0200 drm/i915: add MISSING_CASE to a few port/aux power domain helpers MISSING_CASE() would have been useful to track down a recent problem in intel_display_port_aux_power_domain(), so add it there and a few related helpers. This was also suggested by Ville in his review of the latest DMC/DC changes, we forgot to address that. Signed-off-by: Imre Deak Reviewed-by: Ville Syrjälä Reviewed-by: Patrik Jakobsson Link: http://patchwork.freedesktop.org/patch/msgid/1447855045-7109-2-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/intel_display.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 651174a4a0ccaf41e14fadc4bc525d61ae7f7b18 Author: Imre Deak Date: Wed Nov 18 15:57:24 2015 +0200 drm/i915/ddi: fix intel_display_port_aux_power_domain() after HDMI detect Due to the current sharing of the DDI encoder between DP and HDMI connectors we can run the DP detection after the HDMI detection has already set the shared encoder's type. For now solve this keeping the current behavior and running the detection in this case too. For a proper solution Ville suggested to split the encoder into an HDMI and DP one, that can be done as a follow-up. This issue triggers the WARN in intel_display_port_aux_power_domain() and was introduced in: commit 25f78f58e5bfb46a270ce4d690fb49dc104558b1 Author: Ville Syrjälä Date: Mon Nov 16 15:01:04 2015 +0100 drm/i915: Clean up AUX power domain handling CC: Patrik Jakobsson CC: Ville Syrjälä Signed-off-by: Imre Deak Reviewed-by: Patrik Jakobsson Link: http://patchwork.freedesktop.org/patch/msgid/1447855045-7109-1-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/intel_display.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit cef7e12585e61e2a03aea1c99331865213982f3a Author: Julia Lawall Date: Sun Nov 15 21:00:02 2015 +0100 iio: adc: xilinx: constify iio_buffer_setup_ops structure The iio_buffer_setup_ops structures are never modified, so declare this one as const, like the others. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Acked-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron drivers/iio/adc/xilinx-xadc-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 52555a5d1058eec96c6bac2928bc965b0077c60e Author: Dragos Bogdan Date: Wed Nov 18 12:35:34 2015 +0200 staging:iio:ad7780: Switch to the gpio descriptor interface Use the gpiod interface for the powerdown_gpio instead of the deprecated old non-descriptor interface. The powerdown pin can be tied high, so the gpio is optional. Remove the gpio_pdrst platform_data member since the new interface is used. Signed-off-by: Dragos Bogdan Acked-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron drivers/staging/iio/adc/ad7780.c | 27 +++++++++++---------------- drivers/staging/iio/adc/ad7780.h | 1 - 2 files changed, 11 insertions(+), 17 deletions(-) commit 203e942d20ab62f777360ae18c429237efef682b Author: Mauro Carvalho Chehab Date: Wed Nov 18 16:46:33 2015 -0200 [media] s5c73m3-spi: fix compilation breakage when compiled as Module commit f934a94bb566a629b7e0be52d087a686145d1f14 ('s5c73m3: Export OF module alias information') broke compilation when compiled as module: In file included from drivers/media/i2c/s5c73m3/s5c73m3-spi.c:22:0: drivers/media/i2c/s5c73m3/s5c73m3-spi.c:40:40: error: expected ')' before ';' token MODULE_DEVICE_TABLE(of, s5c73m3_spi_ids;); ^ Fix it by removing the extra ';' Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/s5c73m3/s5c73m3-spi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 314038e40a62c7cdfc07aad0fe14dcd4383bc34d Author: Jeeja KP Date: Fri Nov 13 19:22:13 2015 +0530 ASoC: Intel: Skylake: Add pm ops for skl_rt286 machine The PM ops are required so that DAPM will suspend and resume the DSP pipelines properly Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/boards/skl_rt286.c | 1 + 1 file changed, 1 insertion(+) commit 5eab6ab9c7882f63d7dd544b736293a9d2b8106c Author: Vinod Koul Date: Fri Nov 13 19:22:12 2015 +0530 ASoC: Intel: Skylake: Constrain the audio devices In ref configuration for Skylake, we support only 16bit, 48KHz, stereo audio, so specify these as constrains for the devices Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/boards/skl_rt286.c | 49 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) commit 0ed95d769c8d6c1030dd9f94cf6fb2a6ed98a4ce Author: Jeeja KP Date: Fri Nov 13 19:22:11 2015 +0530 ASoC: Intel: Skylake: Fix null ptr dereferenced in skl_tplg_bind_sinks This patch fixes the below warning form smatch and makes the skl_tplg_bind_sinks take the next sink as argument which is true when the current sink is valid sound/soc/intel/skylake/skl-topology.c:453 skl_tplg_bind_sinks() error: we previously assumed 'sink' could be null (see line 452) sound/soc/intel/skylake/skl-topology.c 451 452 if (!sink) ^^^^ New check. Reversed? 453 return skl_tplg_bind_sinks(sink, skl, src_mconfig); ^^^^ This is dereferenced inside the function. 454 455 return 0; Reported-by: Dan Carpenter Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-topology.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit e797af53b8814dfbc3c6ac134c528b8ab480f275 Author: Jeeja KP Date: Fri Nov 13 19:22:10 2015 +0530 ASoC: Intel: Skylake: Fix CLDMA buffer wrap case When downloading the firmware/module, if the ring buffer boundary is reached, we need to wrap to the zeroth position. On next copy we need to copy till end of buffer and the remaining buffer needs to be copied from zeroth position. In this case copy was not handled correctly when wrap condition is reached which caused invalid data to be copied resulting in invalid hash failure. This patch fixes the issue by handling copy at the boundary condition correctly. Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-sst-cldma.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 53afce2c5764ebf5e933efe9a2dd58cbc316c854 Author: Jeeja KP Date: Fri Nov 13 19:22:09 2015 +0530 ASoC: Intel: Skylake: Reset the DSP when set D3 fails Sometimes firmware D3 IPC fails causing firmware to be in invalid state. To recover we need to reset the DSP and then shut it down, so don't return on error and continue resetting to recover. On D0, firmware will be redownloaded and DSP will be back in clean state Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-sst.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit ae395937ab95b8c62806af6a17a6cdfe6086401e Author: Jeeja KP Date: Fri Nov 13 19:22:08 2015 +0530 ASoC: Intel: Skylake: Fix cleanup of dma buffer During firmware download, dma buffers are allocated in prepare and never freed on clean up. This patch frees the allocated dma buffer in cldma controller clean up. Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-sst-cldma.c | 5 +++++ sound/soc/intel/skylake/skl-sst.c | 10 +++++----- 2 files changed, 10 insertions(+), 5 deletions(-) commit e03fc82d7c474b2f9bcdb0f6a5ef26c6c3ab24ee Author: Jeeja KP Date: Fri Nov 13 19:22:07 2015 +0530 ASoC: Intel: Skylake: Remove redundant init in resume Since we call _skl_resume which also initializes the chip we no need to call these explicitly, so remove the duplication Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl.c | 4 ---- 1 file changed, 4 deletions(-) commit a71e269728ce42216cca8ce5145e97e777a36467 Author: Jeeja KP Date: Fri Nov 13 19:22:06 2015 +0530 ASoC: Intel: Skylake: Don't enable WAKEENABLE on suspend For HDA codecs WAKEENABLE bit is to programmed if codec event change has to wake the system when suspended. In skylake I2S systems which are currently supported we have only HDMI codec, which doesn't use this capability to detect a HDMI connect/ disconnect event. HDMI HDA codec uses display interface to detect connect/disconnect event. This patch removes the WAKEBIT enabling during device D0/D3 as this seems to cause spurious wakes on the system Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl.c | 9 --------- 1 file changed, 9 deletions(-) commit 28823f1538ce2f67b7c21e30d6b84c3e86f8c0fd Author: Jeeja KP Date: Fri Nov 13 19:22:05 2015 +0530 ASoC: Intel: Skylake: remove pm_runtime_get/put calls The ASoC core already does pm_runtime_get/put in the core before opening/closing the devices. So we do not need to do this is driver, hence remove Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-pcm.c | 25 ------------------------- 1 file changed, 25 deletions(-) commit 09605cc12c07830659a19b266503795c511a2060 Author: Bastian Stender Date: Fri Nov 13 11:40:34 2015 +0100 net ipv4: use preferred log methods Replace printk calls with preferred unconditional log method calls to keep kernel messages clean. Added newline to "too small MTU" message. Signed-off-by: Bastian Stender Signed-off-by: David S. Miller net/ipv4/ipconfig.c | 73 ++++++++++---------------- net/ipv4/netfilter/arp_tables.c | 6 +-- net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c | 2 +- net/ipv4/netfilter/nf_nat_snmp_basic.c | 22 ++++---- 4 files changed, 44 insertions(+), 59 deletions(-) commit 47284e3e0f3c427c93f8583549b6c938e8a18015 Author: Marcus Weseloh Date: Sun Nov 8 12:03:23 2015 +0100 spi: sun4i: allow transfers to set transmission speed Allow transfers to set the transmission speed rather than using the device max_speed_hz value. The SPI core makes sure that the speed_hz value is always set on the transfer. Signed-off-by: Marcus Weseloh Signed-off-by: Mark Brown drivers/spi/spi-sun4i.c | 8 ++++---- drivers/spi/spi-sun6i.c | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) commit 02cc23555dfeec9ab87340f052541dd906fb440c Author: Fang, Yang A Date: Thu Nov 5 22:53:08 2015 +0530 ASoC: Intel: Skylake: add adi + nau8825 machine driver entry This patch adds skl_nau8825_ssn4567_i2s machine driver into machine table Signed-off-by: Fang, Yang A Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl.c | 2 ++ 1 file changed, 2 insertions(+) commit a86d505783e42d2f824e32489a1f2b0c3454d9fe Author: Harsha Priya Date: Thu Nov 5 22:53:07 2015 +0530 ASoC: Intel: Skylake: Adding nau88l25+ssm4567 machine driver Add i2s machine driver with NAU88L25 and SSM4567 codecs Signed-off-by: Harsha Priya Signed-off-by: Conrad Cooke Signed-off-by: Naveen M Signed-off-by: Sathya Prakash M R Signed-off-by: Yong Zhi Signed-off-by: Fang, Yang A Signed-off-by: Sathyanarayana Nujella Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/Kconfig | 14 + sound/soc/intel/boards/Makefile | 2 + sound/soc/intel/boards/skl_nau88l25_ssm4567.c | 368 ++++++++++++++++++++++++++ 3 files changed, 384 insertions(+) commit c80fd4da68cd7784a19c584d01294e362a7b61a3 Author: Jeeja KP Date: Thu Nov 5 22:53:06 2015 +0530 ASoC: Intel: Skylake: Add support for SSP1 BE cpu dai Adds new BE cpu dai to support SSP1 port. Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-pcm.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 3890ab2bfb4579303cafb27225eb74ca568bd363 Author: Pramod Kumar Date: Mon Oct 19 11:13:10 2015 +0530 dts: pinctrl: Add GPIO to Pinctrl pin mapping in DT ASIU gpio controller's pins are muxed with pin-cntroller. Add this mapping through property "gpio-ranges". Signed-off-by: Pramod Kumar Reviewed-by: Ray Jui Reviewed-by: Scott Branden Reviewed-by: Linus Walleij Signed-off-by: Florian Fainelli arch/arm/boot/dts/bcm-cygnus.dtsi | 53 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 51 insertions(+), 2 deletions(-) commit 1a497983a5ae62b4970187183fb3b40e68515a24 Author: Mengdong Lin Date: Wed Nov 18 02:34:11 2015 -0500 ASoC: Change the PCM runtime array to a list Currently the number of DAI links is statically defined by the machine driver at build time using an array. This makes it difficult to shrink/ grow the number of DAI links at runtime in order to reflect any changes in topology. We can change the DAI link array in the core to a list so that PCMs and FE DAI links can be added and deleted at runtime to reflect changes in use case and DSP topology. The machine driver can still register DAI links as an array. As the 1st step, this patch change the PCM runtime array to a list. A new PCM runtime is added to the list when a DAI link is bound successfully. Later patches will further implement the DAI link list. More: - define snd_soc_new/free_pcm_runtime() to create/free a runtime. - define soc_add_pcm_runtime() to add a runtime to the rtd list. - define soc_remove_pcm_runtimes() to clean up the runtime list. - traverse the rtd list to probe the link components and dais. - Add a field "num" to PCM runtime struct, used to specify the device number when creating the pcm device, and for a soc card to access its dai_props array. - The following 3rd party machine/platform drivers iterate the rtd list to check the runtimes: sound/soc/intel/atom/sst-mfld-platform-pcm.c sound/soc/intel/boards/cht_bsw_rt5645.c sound/soc/intel/boards/cht_bsw_rt5672.c sound/soc/intel/boards/cht_bsw_max98090_ti.c Signed-off-by: Mengdong Lin Signed-off-by: Mark Brown include/sound/soc.h | 5 +- sound/soc/generic/simple-card.c | 12 +- sound/soc/intel/atom/sst-mfld-platform-pcm.c | 12 +- sound/soc/intel/boards/cht_bsw_max98090_ti.c | 7 +- sound/soc/intel/boards/cht_bsw_rt5645.c | 7 +- sound/soc/intel/boards/cht_bsw_rt5672.c | 7 +- sound/soc/sh/rcar/core.c | 2 +- sound/soc/sh/rcar/rsrc-card.c | 6 +- sound/soc/soc-core.c | 263 ++++++++++++++++----------- sound/soc/soc-dapm.c | 7 +- sound/soc/soc-pcm.c | 22 +-- 11 files changed, 191 insertions(+), 159 deletions(-) commit 5015920a1732cabd1178cfe342f09ee3488a1791 Author: Mengdong Lin Date: Wed Nov 18 02:34:01 2015 -0500 ASoC: Vendor drivers get a link's runtime by snd_soc_get_pcm_runtime() Vendor drivers no longer access a DAI link's runtime by the link index but by matching the link name via snd_soc_get_pcm_runtime(). We assume each DAI link has a unique name. This is preparation for changing runtimes from an array to a list later. Vendor drivers changed: sound/soc/fsl/fsl-asoc-card.c sound/soc/fsl/imx-wm8962.c sound/soc/pxa/mioa701_wm9713.c sound/soc/samsung/bells.c sound/soc/samsung/littlemill.c sound/soc/samsung/odroidx2_max98090.c sound/soc/samsung/snow.c sound/soc/samsung/speyside.c sound/soc/samsung/tobermory.c sound/soc/tegra/tegra_wm8903 Signed-off-by: Mengdong Lin Signed-off-by: Mark Brown sound/soc/fsl/fsl-asoc-card.c | 5 ++++- sound/soc/fsl/imx-wm8962.c | 10 +++++++-- sound/soc/pxa/mioa701_wm9713.c | 6 +++++- sound/soc/samsung/bells.c | 40 ++++++++++++++++++++++++++--------- sound/soc/samsung/littlemill.c | 32 ++++++++++++++++++++++------ sound/soc/samsung/odroidx2_max98090.c | 9 ++++++-- sound/soc/samsung/snow.c | 9 ++++++-- sound/soc/samsung/speyside.c | 12 +++++++++-- sound/soc/samsung/tobermory.c | 21 ++++++++++++++---- sound/soc/tegra/tegra_wm8903.c | 3 ++- 10 files changed, 116 insertions(+), 31 deletions(-) commit c98f71d1c05601cff0f302889933798020e08869 Author: Brian Norris Date: Mon Nov 16 10:45:30 2015 -0800 mtd: fsl-quadspi: possible NULL dereference It is theoretically possible to probe this driver without a matching device tree, so let's guard against this. Also, use the of_device_get_match_data() helper to make this a bit simpler. Coverity complained about this one. Signed-off-by: Brian Norris Acked-by: Han xu drivers/mtd/spi-nor/fsl-quadspi.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 9bf5c3d11f1fbaf43399d189f05fb20ceb46ee5d Author: Robert Jarzmik Date: Wed Nov 11 13:12:51 2015 +0100 ASoC: ac97: add gpio chip The AC97 specification provides a guide for 16 GPIOs in the codecs. If the gpiolib is compiled in the kernel, declare a gpio chip. This was tested with a pxa27x board (mioa701) and a wm9713 codec. Signed-off-by: Robert Jarzmik Signed-off-by: Mark Brown include/sound/ac97_codec.h | 3 ++ sound/soc/soc-ac97.c | 125 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 128 insertions(+) commit 2ea6b0749c366787dbf6e87c7642e23b448ca63b Author: Kuninori Morimoto Date: Tue Nov 10 05:14:12 2015 +0000 ASoC: rsnd: remove struct platform_device from probe/remove parameter Current Renesas sound driver requests struct platform_device on probe/remove for each modules. But driver can get it by rsnd_priv_to_pdev(). This patch removes unnecessary parameter Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/adg.c | 6 ++---- sound/soc/sh/rcar/cmd.c | 6 ++---- sound/soc/sh/rcar/core.c | 15 ++++++------- sound/soc/sh/rcar/ctu.c | 6 ++---- sound/soc/sh/rcar/dma.c | 4 ++-- sound/soc/sh/rcar/dvc.c | 6 ++---- sound/soc/sh/rcar/gen.c | 13 +++++------ sound/soc/sh/rcar/mix.c | 6 ++---- sound/soc/sh/rcar/rsnd.h | 56 ++++++++++++++++-------------------------------- sound/soc/sh/rcar/src.c | 6 ++---- sound/soc/sh/rcar/ssi.c | 6 ++---- sound/soc/sh/rcar/ssiu.c | 6 ++---- 12 files changed, 47 insertions(+), 89 deletions(-) commit 2ea2cc86db7c73dc4e3a9fc3232cb04fe1b1ab91 Author: Kuninori Morimoto Date: Tue Nov 10 05:13:53 2015 +0000 ASoC: rsnd: remove struct rcar_snd_info No board is using Renesas sound driver via platform boot now. This means all user is using DT boot. Platform boot support is no longer needed. But, it strongly depends on platform boot style. Now, platform boot style was removed from driver. This is cleanup patch, and remove pointless struct rcar_snd_info Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 21 -------- sound/soc/sh/rcar/rcar_snd.h | 115 ------------------------------------------- sound/soc/sh/rcar/rsnd.h | 16 ++++-- 3 files changed, 13 insertions(+), 139 deletions(-) commit e797f58ead6069478e535ae62b180da87b28a84f Author: Kuninori Morimoto Date: Tue Nov 10 05:13:33 2015 +0000 ASoC: rsnd: remove struct rsnd_of_data No board is using Renesas sound driver via platform boot now. This means all user is using DT boot. Platform boot support is no longer needed. But, it strongly depends on platform boot style. Now, platform boot style was removed from driver. This is cleanup patch, and remove pointless struct rsnd_of_data Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/adg.c | 1 - sound/soc/sh/rcar/cmd.c | 1 - sound/soc/sh/rcar/core.c | 25 +++++-------------------- sound/soc/sh/rcar/ctu.c | 1 - sound/soc/sh/rcar/dma.c | 1 - sound/soc/sh/rcar/dvc.c | 1 - sound/soc/sh/rcar/gen.c | 1 - sound/soc/sh/rcar/mix.c | 1 - sound/soc/sh/rcar/rsnd.h | 15 --------------- sound/soc/sh/rcar/src.c | 1 - sound/soc/sh/rcar/ssi.c | 1 - sound/soc/sh/rcar/ssiu.c | 1 - 12 files changed, 5 insertions(+), 45 deletions(-) commit 348d592c719da61a7dab289c7ce36e73c7caf063 Author: Kuninori Morimoto Date: Tue Nov 10 05:13:12 2015 +0000 ASoC: rsnd: remove platform boot support from gen.c No board is using Renesas sound driver via platform boot now. This means all user is using DT boot. Platform boot support is no longer needed. But, it strongly depends on platform boot style. This patch removes platform boot support from gen.c Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 1 + sound/soc/sh/rcar/gen.c | 14 -------------- sound/soc/sh/rcar/rsnd.h | 7 ++++--- 3 files changed, 5 insertions(+), 17 deletions(-) commit 9eaa1a6f7e31ead7e2b8eb762455e77376bd87cc Author: Kuninori Morimoto Date: Tue Nov 10 05:12:50 2015 +0000 ASoC: rsnd: remove platform boot support from dvc.c No board is using Renesas sound driver via platform boot now. This means all user is using DT boot. Platform boot support is no longer needed. But, it strongly depends on platform boot style. This patch removes platform boot support from dvc.c Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/dvc.c | 83 ++++++++++++++++++------------------------------- 1 file changed, 31 insertions(+), 52 deletions(-) commit c7fe4be840026d7cdb0676e1d52b9f82e8b32d41 Author: Kuninori Morimoto Date: Tue Nov 10 05:12:32 2015 +0000 ASoC: rsnd: remove platform boot support from mix.c No board is using Renesas sound driver via platform boot now. This means all user is using DT boot. Platform boot support is no longer needed. But, it strongly depends on platform boot style. This patch removes platform boot support from mix.c Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/mix.c | 85 ++++++++++++++++++------------------------------- 1 file changed, 31 insertions(+), 54 deletions(-) commit cfe7c0390ac24c30bf8c79a6a05e637db56e3090 Author: Kuninori Morimoto Date: Tue Nov 10 05:12:13 2015 +0000 ASoC: rsnd: remove platform boot support from ctu.c No board is using Renesas sound driver via platform boot now. This means all user is using DT boot. Platform boot support is no longer needed. But, it strongly depends on platform boot style. This patch removes platform boot support from ctu.c Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/ctu.c | 85 +++++++++++++++++++------------------------------ 1 file changed, 32 insertions(+), 53 deletions(-) commit adf6a6815952c6c6092ae15e27c1b782fd96c6a3 Author: Kuninori Morimoto Date: Tue Nov 10 05:11:55 2015 +0000 ASoC: rsnd: remove platform boot support from src.c No board is using Renesas sound driver via platform boot now. This means all user is using DT boot. Platform boot support is no longer needed. But, it strongly depends on platform boot style. This patch removes platform boot support from src.c Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/src.c | 158 +++++++++++++----------------------------------- 1 file changed, 43 insertions(+), 115 deletions(-) commit 02534f2f80224531ab19bf5027224ed775fe2b39 Author: Kuninori Morimoto Date: Tue Nov 10 05:11:35 2015 +0000 ASoC: rsnd: remove platform boot support from ssi.c No board is using Renesas sound driver via platform boot now. This means all user is using DT boot. Platform boot support is no longer needed. But, it strongly depends on platform boot style. This patch removes platform boot support from ssi.c Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/rcar_snd.h | 2 - sound/soc/sh/rcar/ssi.c | 145 +++++++++++++++++-------------------------- 2 files changed, 57 insertions(+), 90 deletions(-) commit 94e2710cd2ce447cde879177d869b9ac231bc459 Author: Kuninori Morimoto Date: Tue Nov 10 05:11:18 2015 +0000 ASoC: rsnd: remove platform boot support from core.c No board is using Renesas sound driver via platform boot now. This means all user is using DT boot. Platform boot support is no longer needed. But, it strongly depends on platform boot style. This patch removes platform boot support from core.c Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 280 +++++++++++++---------------------------------- sound/soc/sh/rcar/ctu.c | 2 +- sound/soc/sh/rcar/dvc.c | 2 +- sound/soc/sh/rcar/mix.c | 2 +- sound/soc/sh/rcar/rsnd.h | 13 +++ sound/soc/sh/rcar/src.c | 2 - sound/soc/sh/rcar/ssi.c | 2 - 7 files changed, 95 insertions(+), 208 deletions(-) commit 75916f6524f055bca134f50901f926d5b0693db5 Author: Kuninori Morimoto Date: Tue Nov 10 05:10:48 2015 +0000 ASoC: rsnd: SRC settings matches to datasheet Current SRC settings order was rough. Now, Gen1 support was removed. This patch makes it cleanup and match to datasheet. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/src.c | 424 +++++++++++++++++++----------------------------- 1 file changed, 166 insertions(+), 258 deletions(-) commit d444080ef824bf45ead732f2c68cfeb5885bc53a Author: Kuninori Morimoto Date: Tue Nov 10 05:10:18 2015 +0000 ASoC: rsnd: cleanup RSND_REG_xxx SRC Gen1 support was removed. Current rsnd driver is sharing Gen1/Gen2 register index to reduce memory, but there is no effect anymore. Let's remove share definition and merge RSND_REG_xxx Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/rsnd.h | 93 ++++++++++++++++-------------------------------- 1 file changed, 30 insertions(+), 63 deletions(-) commit e8e7b7bdc65c19f8d84c25f7e0d21176d598c870 Author: Kuninori Morimoto Date: Tue Nov 10 05:09:52 2015 +0000 ASoC: rsnd: remove Gen1 support from SRC This patch removes SRC Gen1 support which has no user on upstream. Historically, SRC Gen1 was created as prepare for SRC Gen2 support. It works well for Gen2 support, but Gen1 is not same as Gen2. So now, Gen1 support is no longer needed. Thanks Gen1 and Bye-bye. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/adg.c | 62 --------------- sound/soc/sh/rcar/gen.c | 38 +-------- sound/soc/sh/rcar/rsnd.h | 15 ---- sound/soc/sh/rcar/src.c | 199 ++--------------------------------------------- 4 files changed, 7 insertions(+), 307 deletions(-) commit 0928e8a54bf8889176175b2c3e5f2fc8ec1bb7ff Author: Vinod Koul Date: Wed Nov 18 19:11:46 2015 +0530 ASoC: Intel: Skylake: Add I2C depends for SKL machine The i2c is dependency for the i2c codec drivers, so machine should depend on i2c. WIthout this we get build failures if I2C is not selected sound/soc/codecs/rl6347a.c: In function 'rl6347a_hw_write': >> sound/soc/codecs/rl6347a.c:66:8: error: implicit declaration of function >> 'i2c_master_send' [-Werror=implicit-function-declaration] ret = i2c_master_send(client, data, 4); ^ sound/soc/codecs/rl6347a.c: In function 'rl6347a_hw_read': >> sound/soc/codecs/rl6347a.c:114:8: error: implicit declaration of function >> 'i2c_transfer' [-Werror=implicit-function-declaration] ret = i2c_transfer(client->adapter, xfer, 2); Reported-by: kbuild test robot Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a0067db36a2f9733a2e956a44ef8145e6a809bdb Author: Arnd Bergmann Date: Wed Nov 18 15:21:32 2015 +0100 spi: s3c64xx: pass DMA arguments in platform data The s3c64xx platform data already contains a pointer to the DMA filter function, but not to the associated data. This simplifies the code and makes it more generic by passing the data along with the filter function like we do for other drivers. Signed-off-by: Arnd Bergmann Signed-off-by: Mark Brown arch/arm/plat-samsung/devs.c | 19 ++++++++++--------- drivers/spi/spi-s3c64xx.c | 27 +++++++-------------------- include/linux/platform_data/spi-s3c64xx.h | 2 ++ 3 files changed, 19 insertions(+), 29 deletions(-) commit 359fdfa6fde04b3a752df5251b1dcd8866d436fa Author: Arnd Bergmann Date: Wed Nov 18 15:26:00 2015 +0100 ASoC: s3c24xx-i2s: pass DMA channels as platform data This is a minor cleanup to make the s3c2412-i2s and s3c24xx-i2s drivers independent of the mach/dma.h header file and to allow removing the dependency on the specific dmaengine driver in the next patch. As a side not, only the s3c24xx-i2s driver seems to still be used, while the definition of the s3c2412-i2s platform device was removed in commit 6d259a25b56d ("ARM: SAMSUNG: use static declaration when it is not used in other files") after it had never been referenced since its introduction in f0fba2ad1b6b ("ASoC: multi-component - ASoC Multi-Component Support"). Apparently it should have been used by mach-jive.c, but that never happened. My patch at this point leaves the current state unchanged, we can decide whether to fix or delete the jive driver and s3c2412-i2s another time. Signed-off-by: Arnd Bergmann Reviewed-by: Krzysztof Kozlowski Signed-off-by: Mark Brown arch/arm/plat-samsung/devs.c | 6 ++++++ sound/soc/samsung/s3c2412-i2s.c | 12 ++++++++++-- sound/soc/samsung/s3c24xx-i2s.c | 12 ++++++++++-- 3 files changed, 26 insertions(+), 4 deletions(-) commit b9a1a743818ea3265abf98f9431623afa8c50c86 Author: Arnd Bergmann Date: Wed Nov 18 15:25:23 2015 +0100 ASoC: samsung: pass DMA channels as pointers ARM64 allmodconfig produces a bunch of warnings when building the samsung ASoC code: sound/soc/samsung/dmaengine.c: In function 'samsung_asoc_init_dma_data': sound/soc/samsung/dmaengine.c:53:32: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] playback_data->filter_data = (void *)playback->channel; sound/soc/samsung/dmaengine.c:60:31: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] capture_data->filter_data = (void *)capture->channel; We could easily shut up the warning by adding an intermediate cast, but there is a bigger underlying problem: The use of IORESOURCE_DMA to pass data from platform code to device drivers is dubious to start with, as what we really want is a pointer that can be passed into a filter function. Note that on s3c64xx, the pl08x DMA data is already a pointer, but gets cast to resource_size_t so we can pass it as a resource, and it then gets converted back to a pointer. In contrast, the data we pass for s3c24xx is an index into a device specific table, and we artificially convert that into a pointer for the filter function. Signed-off-by: Arnd Bergmann Reviewed-by: Krzysztof Kozlowski Signed-off-by: Mark Brown arch/arm/mach-s3c64xx/dev-audio.c | 41 ++++++++++++++----------- arch/arm/mach-s3c64xx/include/mach/dma.h | 52 ++++++++++++++++---------------- arch/arm/plat-samsung/devs.c | 11 +++++-- include/linux/platform_data/asoc-s3c.h | 4 +++ sound/soc/samsung/ac97.c | 26 +++------------- sound/soc/samsung/dma.h | 2 +- sound/soc/samsung/dmaengine.c | 4 +-- sound/soc/samsung/i2s.c | 26 +++------------- sound/soc/samsung/pcm.c | 20 +++--------- sound/soc/samsung/s3c2412-i2s.c | 4 +-- sound/soc/samsung/s3c24xx-i2s.c | 4 +-- sound/soc/samsung/spdif.c | 10 ++---- 12 files changed, 84 insertions(+), 120 deletions(-) commit d537543b3948bc3bc9dede248fa455493e055457 Author: Ulrich Hecht Date: Wed Nov 18 13:51:07 2015 +0100 ARM: shmobile: alt: add VIN0, ADV7180 DT support Adds the device board-dependent part of the VIN0 device and its ADV7180 video decoder on I2C1, and the interconnection between them. Based on silk patch by Sergei Shtylyov. Signed-off-by: Ulrich Hecht Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7794-alt.dts | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) commit 7f81bf72c67fbd225adfc0d5f6df0f674d08d757 Author: Ulrich Hecht Date: Wed Nov 18 13:51:06 2015 +0100 ARM: shmobile: alt: add I2C1 DT support Defines the board-dependent part of the I2C1 device. Signed-off-by: Ulrich Hecht Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7794-alt.dts | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 22b160713cb6944450dad0abd18d8929f60500dc Author: Simon Horman Date: Tue Nov 17 11:10:40 2015 -0800 ARM: shmobile: alt: Add pfc pins to DT PFC is already enabled on the r8a7794. This adds pins for devices already enabled in DT on the r8a7794 based alt board. Based on work by Mitsuhiro Kimura and Hisashi Nakamura. Cc: Mitsuhiro Kimura Cc: Hisashi Nakamura Signed-off-by: Simon Horman Acked-by: Ulrich Hecht arch/arm/boot/dts/r8a7794-alt.dts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 940a7f09ad645b6be7ff85b034499fcffdfe0ebc Author: Himanshu Madhani Date: Tue Nov 17 15:44:48 2015 -0500 qla2xxx: Remove unavailable firmware files Remove firmware binary names for the ISPs, which are not submitted to linux-firmware. Signed-off-by: Himanshu Madhani Signed-off-by: Giridhar Malavali Reviewed-by: Julian Calaby Reviewed-by: Xose Vazquez Perez Cc: Hannes Reinecke Signed-off-by: Martin K. Petersen drivers/scsi/qla2xxx/Kconfig | 3 --- drivers/scsi/qla2xxx/qla_os.c | 3 --- 2 files changed, 6 deletions(-) commit e747cad203f2956aad460325510f0c339fac10c4 Author: Geert Uytterhoeven Date: Sun Nov 15 12:48:33 2015 +0100 st: Remove obsolete scsi_tape.max_pfn Its last user was removed 10 years ago, in commit 8b05b773b6030de5 ("[SCSI] convert st to use scsi_execute_async"). Signed-off-by: Geert Uytterhoeven Reviewed-by: Ewan D. Milne Acked-by: Kai Mäkisara Signed-off-by: Martin K. Petersen drivers/scsi/st.h | 2 -- 1 file changed, 2 deletions(-) commit aa29efb445f11506daca0db934331f144b38ddc4 Author: Vladimir Zapolskiy Date: Sun Oct 18 00:35:57 2015 +0300 arm: dts: lpc32xx: move USB controller subdevices into own device node NXP LPC32xx SoC has one USB OTG controller, which is supposed to work with an external phy (default is NXP ISP1301). Practically the USB controller contains 5 subdevices: - host controller 0x3102 0000 -- 0x3102 00FF - OTG controller 0x3102 0100 -- 0x3102 01FF - device controller 0x3102 0200 -- 0x3102 02FF - I2C controller 0x3102 0300 -- 0x3102 03FF - clock controller 0x3102 0F00 -- 0x3102 0FFF The USB controller can be considered as a "bus", because the subdevices above are relatively independent, for example I2C controller is the same as other two general purpose I2C controllers found on SoC. The change is not intended to modify any logic, but it rearranges existing device nodes, in future it is planned to add a USB clock controller device node into the same group. Signed-off-by: Vladimir Zapolskiy arch/arm/boot/dts/ea3250.dts | 37 ++++++++++++----------------- arch/arm/boot/dts/lpc32xx.dtsi | 53 ++++++++++++++++++++++++------------------ arch/arm/boot/dts/phy3250.dts | 37 ++++++++++++----------------- 3 files changed, 60 insertions(+), 67 deletions(-) commit c1aa70072cfb95d28bd5b63848f9b37e57273f18 Author: Vladimir Zapolskiy Date: Sun Oct 18 00:41:06 2015 +0300 arm: dts: lpc32xx: add device nodes for standard timers NXP LPC32xx SoCs have 6 standard timers, add device nodes to describe them. Signed-off-by: Vladimir Zapolskiy arch/arm/boot/dts/lpc32xx.dtsi | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit f83ee67fcf8d743e7fbcb08c70fcd32c253bb2fa Author: Vladimir Zapolskiy Date: Sun Oct 18 00:35:55 2015 +0300 arm: dts: lpc32xx: add external memory controller device node The change adds a description of ARM PrimeCell PL175 memory controller, which is found on NXP LPC32xx SoCs. The controller supports up to 4 static memory devices mapped to 0xE000 0000 - 0xE3FF FFFF physical memory area. Signed-off-by: Vladimir Zapolskiy arch/arm/boot/dts/lpc32xx.dtsi | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) commit cae59490674cf8dab153c6b1350247228b3fc972 Author: Vladimir Zapolskiy Date: Sun Oct 18 00:35:54 2015 +0300 arm: dts: ea3250/phy3250: specify phys memory offset for lpc32xx boards In case if SDRAM memory region is not populated by a bootloader, provide this value in device trees for EA3250 and PHY3250 boards. Signed-off-by: Vladimir Zapolskiy arch/arm/boot/dts/ea3250.dts | 2 +- arch/arm/boot/dts/phy3250.dts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 2a6c6563313dd5c96277e4a3368df65e268bcc9b Author: Vladimir Zapolskiy Date: Sun Oct 18 00:35:53 2015 +0300 arm: dts: lpc32xx: add device node for the second pwm controller LPC32xx SoCs have two independent PWM controllers, they have different clock parents, clock gates and even slightly different controls, each of these two PWM controllers has one output channel. Due to almost similar controls arranged in a row it is incorrectly assumed that there is one PWM controller with two channels, fix this problem in lpc32xx.dtsi, which at the moment prevents separate configuration of different clock parents and gates for both PWM controllers. Signed-off-by: Vladimir Zapolskiy arch/arm/boot/dts/lpc32xx.dtsi | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 246d8fc33e570b7c1e69cdbf395fcfcee58785cc Author: Vladimir Zapolskiy Date: Sun Oct 18 00:35:52 2015 +0300 arm: dts: lpc32xx: add reg property to cpu device node According to device tree bindings for ARM cpus cpu node must contain a reg property for enumeration scheme. The change adds reg = <0x0> indicating that the processor does not have CPU identification register and updates cell settings. Signed-off-by: Vladimir Zapolskiy arch/arm/boot/dts/lpc32xx.dtsi | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 25de7c961588f10df3d5c8d5b54d70fe39b7d256 Author: Vladimir Zapolskiy Date: Sun Oct 18 00:35:51 2015 +0300 arm: dts: lpc32xx: add labels to all defined peripheral nodes To simplify writing of dts files for all lpc32xx.dtsi users who adjust device node properties, add labels to all defined peripheral device nodes in lpc32xx.dtsi. Signed-off-by: Vladimir Zapolskiy arch/arm/boot/dts/lpc32xx.dtsi | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 1a24edd2ee4656610829fdda69e53fdc6fa4ee99 Author: Vladimir Zapolskiy Date: Sun Oct 18 00:35:50 2015 +0300 arm: dts: lpc32xx: change include syntax to be C preprocessor friendly The change replaces /include/ to #include in lpc32xx.dtsi and derivatives, it is required, if C preprocessor is intended to be used over dtsi/dts files, otherwise errors like one below are generated: Error: ea3250.dts:15.1-9 syntax error FATAL ERROR: Unable to parse input tree Signed-off-by: Vladimir Zapolskiy arch/arm/boot/dts/ea3250.dts | 2 +- arch/arm/boot/dts/lpc32xx.dtsi | 2 +- arch/arm/boot/dts/phy3250.dts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit c555a81ddf5e18780dde535234865f43da347e98 Author: Ander Conselvan de Oliveira Date: Wed Nov 18 17:19:30 2015 +0200 drm/i915: Remove platform specific *_dp_detect() functions Their logic is exactly the same: check if the digital port is connected and then call intel_dp_detect_dpcd(). So just put that logic in their only caller: intel_dp_detect(). Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1447859970-9546-2-git-send-email-ander.conselvan.de.oliveira@intel.com drivers/gpu/drm/i915/intel_dp.c | 33 +++++---------------------------- 1 file changed, 5 insertions(+), 28 deletions(-) commit 51676d0e303c8d7c153ad702fd91f83374bc43e4 Author: Ander Conselvan de Oliveira Date: Wed Nov 18 17:19:29 2015 +0200 drm/i915: Don't do edp panel detection in g4x_dp_detect() That call was moved to intel_dp_detect() in commit d410b56d74bc706f414158cb0149e2a149ee1650 Author: Chris Wilson Date: Tue Sep 2 20:03:59 2014 +0100 drm/i915/dp: Refactor common eDP lid detection but it seem to have been resurrected in the following commit, probably due to a wrong merge conflict resolution. commit 2a592bec50994597716c633191ed6bf7af14defc Author: Dave Airlie Date: Mon Sep 1 16:58:12 2014 +1000 drm/i915: handle G45/GM45 pulse detection connected state. Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1447859970-9546-1-git-send-email-ander.conselvan.de.oliveira@intel.com drivers/gpu/drm/i915/intel_dp.c | 10 ---------- 1 file changed, 10 deletions(-) commit 769b640929046f1207b928d194a855d759ad0a06 Author: Peter Griffin Date: Thu Sep 3 14:59:53 2015 -0300 [media] c8sectpfe: Update DT binding doc with some minor fixes Signed-off-by: Peter Griffin Acked-by: Lee Jones Signed-off-by: Mauro Carvalho Chehab .../devicetree/bindings/media/stih407-c8sectpfe.txt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 0014eb755e331bc7e46e97864dac8c9e7fcbea13 Author: Peter Griffin Date: Thu Sep 3 14:59:52 2015 -0300 [media] c8sectpfe: Update binding to reset-gpios reset-gpios is more clear than rst-gpio. This change has been done as one atomic commit but it does breaks compatability with older dtbs. Signed-off-by: Peter Griffin Acked-by: Lee Jones Signed-off-by: Mauro Carvalho Chehab Documentation/devicetree/bindings/media/stih407-c8sectpfe.txt | 6 +++--- arch/arm/boot/dts/stihxxx-b2120.dtsi | 4 ++-- drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) commit d90394b5ebe101f72286f14f13d5e87c62fbae12 Author: Peter Griffin Date: Thu Sep 3 14:59:50 2015 -0300 [media] ARM: DT: STi: STiH407: Add c8sectpfe LinuxDVB DT node This patch adds in the required DT node for the c8sectpfe Linux DVB demux driver which allows the tsin channels to be used on an upstream kernel. Signed-off-by: Peter Griffin Acked-by: Lee Jones Signed-off-by: Mauro Carvalho Chehab arch/arm/boot/dts/stihxxx-b2120.dtsi | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) commit 6d5e58173693b01b4dada9ed564be5b65b4829ca Author: Peter Griffin Date: Thu Sep 3 14:59:49 2015 -0300 [media] ARM: DT: STi: stihxxx-b2120: Add pulse-width properties to ssc2 & ssc3 Adding these properties makes the I2C bus to the demodulators much more reliable, and we no longer suffer from I2C errors when tuning. Signed-off-by: Peter Griffin Acked-by: Lee Jones Signed-off-by: Mauro Carvalho Chehab arch/arm/boot/dts/stihxxx-b2120.dtsi | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit c9d57de6103e343f2d4e04ea8d9e417e10a24da7 Author: Malcolm Priestley Date: Mon Aug 31 06:13:45 2015 -0300 [media] media: dvb-core: Don't force CAN_INVERSION_AUTO in oneshot mode When in FE_TUNE_MODE_ONESHOT the frontend must report the actual capabilities so user can take appropriate action. With frontends that can't do auto inversion this is done by dvb-core automatically so CAN_INVERSION_AUTO is valid. However, when in FE_TUNE_MODE_ONESHOT this is not true. So only set FE_CAN_INVERSION_AUTO in modes other than FE_TUNE_MODE_ONESHOT Signed-off-by: Malcolm Priestley Cc: Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/dvb_frontend.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit f934a94bb566a629b7e0be52d087a686145d1f14 Author: Javier Martinez Canillas Date: Thu Aug 20 04:07:21 2015 -0300 [media] s5c73m3: Export OF module alias information The SPI core always reports the MODALIAS uevent as "spi:" 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: SPI id table or OF match table). So drivers needs to export the SPI 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 SPI 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 SPI device name for example. To avoid the above, the SPI 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 Reviewed-by: Andrzej Hajda Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/s5c73m3/s5c73m3-spi.c | 1 + 1 file changed, 1 insertion(+) commit 81e4e0c95d37d020e18268bdd58f208bb5259713 Author: Rodrigo Vivi Date: Wed Nov 11 11:37:10 2015 -0800 drm/i915: Send TP1 TP2/3 even when panel claims no NO_TRAIN_ON_EXIT. On the commit 3301d4092106 ("drm/i915: PSR: Fix DP_PSR_NO_TRAIN_ON_EXIT logic")' we already had identified that DP_PSR_NO_TRAIN_ON_EXIT doesn't mean we shouldn't send TPS patterns, however we start sending the minimal TP1 as possible and no TP2. For most of the panels this is ok, but we found a reported case where this is not true and panel keeps frozen without updating the screen for a while. We could just get this case after patch "PSR: Don't Skip aux handshake on DP_PSR_NO_TRAIN_ON_EXIT." is applied since that one fix the hard freeze on this kind of panels. Reference: https://bugs.freedesktop.org/show_bug.cgi?id=91436#c19 Cc: Ivan Mitev Signed-off-by: Rodrigo Vivi Reviewed-by: Durgadoss R Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_psr.c | 4 ---- 1 file changed, 4 deletions(-) commit bebbeaca841b999f90742a5f391d449ff37a7204 Author: Rodrigo Vivi Date: Wed Nov 11 11:37:09 2015 -0800 drm/i915: PSR: Don't Skip aux handshake on DP_PSR_NO_TRAIN_ON_EXIT. Since the beginning there is a confusion on the meaning of this bit. A previous patch had identified this already and fixed it partially: 'commit 3301d409 ("drm/i915: PSR: Fix DP_PSR_NO_TRAIN_ON_EXIT logic") DP_PSR_NO_TRAIN_ON_EXIT means the source doesn't need to do the training, but it doesn't tell to avoid TP patterns or to skip aux handshake. This patch fixes the hard freeze reported. Reference: https://bugs.freedesktop.org/show_bug.cgi?id=91436 Reference: https://bugs.freedesktop.org/show_bug.cgi?id=91437 Cc: Ivan Mitev Signed-off-by: Rodrigo Vivi Reviewed-by: Durgadoss R Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_psr.c | 1 - 1 file changed, 1 deletion(-) commit 20bb97fe0ecc02f25666fc26f0ac79a6f1515a2b Author: Rodrigo Vivi Date: Wed Nov 11 11:37:08 2015 -0800 drm/i915: Reduce PSR re-activation time for VLV/CHV. With 'commit 30886c5a ("drm/i915: VLV/CHV PSR: Increase wait delay time before active PSR.")' we fixed a blank screen when first activation was happening immediately after PSR being enabled. There we gave more time for idleness by increasing the delay between re-activating sequences. However, commit "drm/i915: Delay first PSR activation." delay the first activation in a better way keeping a good PSR residency. So, we can now reduce the delay on re-enable. Signed-off-by: Rodrigo Vivi Reviewed-by: Durgadoss R Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_psr.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit d0ac896a477d8c689fecf9b249c21e1bdd0b9851 Author: Rodrigo Vivi Date: Wed Nov 11 11:37:07 2015 -0800 drm/i915: Delay first PSR activation. When debuging the frozen screen caused by HW tracking with low power state I noticed that if we keep moving the mouse non stop you will miss the screen updates for a while. At least until we stop moving the mouse for a small time and move again. The actual enabling should happen immediately after Display Port enabling sequence finished with links trained and everything enabled. However we face many issues when enabling PSR right after a modeset. On VLV/CHV we face blank screens on this scenario and on HSW+ we face a recoverable frozen screen, at least until next exit-activate sequence. Another workaround for the same issue here would be to increase re-enable idle time from 100 to 500 as we did for VLV/CHV. However this patch workaround this issue in a better way since it doesn't reduce PSR residency and also allow us to reduce the delay time between re-enables at least on VLV/CHV. This is also important to make the sysfs toggle working properly. Signed-off-by: Rodrigo Vivi Reviewed-by: Durgadoss R Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_psr.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) commit 8d99704fde54cd1df08065801e9b3196d88630f1 Author: Thierry Reding Date: Wed Nov 18 14:10:02 2015 +0100 clk: tegra: Format tables consistently Use spaces around { and } and pad values so that the cells are properly aligned. Signed-off-by: Thierry Reding drivers/clk/tegra/clk-tegra114.c | 273 ++++++++++++++-------------- drivers/clk/tegra/clk-tegra124.c | 370 +++++++++++++++++++------------------- drivers/clk/tegra/clk-tegra20.c | 277 ++++++++++++++-------------- drivers/clk/tegra/clk-tegra30.c | 378 +++++++++++++++++++-------------------- 4 files changed, 646 insertions(+), 652 deletions(-) commit e52d7c04bb3911d4ce98bd237f69f5246d9c7083 Author: Thierry Reding Date: Wed Nov 18 14:04:20 2015 +0100 clk: tegra: Miscellaneous coding style cleanups Use unsigned int for loop variables that can never become negative and remove a couple of gratuitous blank lines. Also use single spaces around operators and use a single space instead of a tab to separate comments from code. Signed-off-by: Thierry Reding drivers/clk/tegra/clk-pll.c | 6 +++--- drivers/clk/tegra/clk-tegra114.c | 12 ++++++------ drivers/clk/tegra/clk-tegra124.c | 6 +++--- drivers/clk/tegra/clk-tegra20.c | 5 ++--- drivers/clk/tegra/clk-tegra30.c | 15 +++++---------- 5 files changed, 19 insertions(+), 25 deletions(-) commit 8ace5dfb983e89dbcfcb42ff25df6e4240c555bb Author: Geliang Tang Date: Wed Nov 18 21:40:33 2015 +0800 locks: use list_first_entry_or_null() Simplify the code with list_first_entry_or_null(). Signed-off-by: Geliang Tang Signed-off-by: Jeff Layton fs/locks.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit 4bdbcb3197fb1d6c493e2fe50b54bc91c6999924 Author: Nicholas Mc Guire Date: Wed Jun 10 04:40:02 2015 -0300 [media] ddbridge: fix wait_event_timeout return handling API conformance testing for completions with coccinelle spatches are being used to locate API usage inconsistencies: ./drivers/media/pci/ddbridge/ddbridge-core.c:89 incorrect check for negative return Return type of wait_event_timeout is signed long not int and the return type is >=0 always thus the negative check is unnecessary.. As stat is used here exclusively its type is simply changed and the negative return check dropped. Signed-off-by: Nicholas Mc Guire Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/ddbridge/ddbridge-core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b354f68ff0277b73d346979eac93545026733057 Author: Philipp Zabel Date: Wed Nov 18 14:36:35 2015 +0100 reset: remove unused device pointer from struct reset_control Commit 0c5b2b915a58 ("reset: Mark function as static and remove unused function in core.c") removed the only user of the device pointer in struct reset_control. As it is now unused, remove it. Signed-off-by: Philipp Zabel drivers/reset/core.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) commit c4947e364b5096f00f3cfc0a7af2a4f688ffb919 Author: Thierry Reding Date: Wed Nov 18 13:23:46 2015 +0100 clk: tegra: Fix 26 MHz oscillator frequency The OSC_FREQ field of the OSC_CTRL register uses the value 12 for an oscillator frequency of 26 MHz, not 260 MHz. This isn't really critical because I don't think boards with such an oscillator have ever existed, much less been supported upstream. Signed-off-by: Thierry Reding drivers/clk/tegra/clk-tegra114.c | 2 +- drivers/clk/tegra/clk-tegra124.c | 2 +- drivers/clk/tegra/clk-tegra30.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit fb026cb6524744c8bd0f133f4b0d8e2595d04e15 Author: Alim Akhtar Date: Mon Oct 19 15:28:03 2015 +0530 arm64: dts: Add reboot node for exynos7 This patch add syscon-reboot node to reboot exynos7 based SoCs. Signed-off-by: Alim Akhtar Signed-off-by: Krzysztof Kozlowski arch/arm64/boot/dts/exynos/exynos7.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) commit f0f59a00a1c9be11038bef5aa735ed7dd985f9cf Author: Ville Syrjälä Date: Wed Nov 18 15:33:26 2015 +0200 drm/i915: Type safe register read/write Make I915_READ and I915_WRITE more type safe by wrapping the register offset in a struct. This should eliminate most of the fumbles we've had with misplaced parens. This only takes care of normal mmio registers. We could extend the idea to other register types and define each with its own struct. That way you wouldn't be able to accidentally pass the wrong thing to a specific register access function. The gpio_reg setup is probably the ugliest thing left. But I figure I'd just leave it for now, and wait for some divine inspiration to strike before making it nice. As for the generated code, it's actually a bit better sometimes. Eg. looking at i915_irq_handler(), we can see the following change: lea 0x70024(%rdx,%rax,1),%r9d mov $0x1,%edx - movslq %r9d,%r9 - mov %r9,%rsi - mov %r9,-0x58(%rbp) - callq *0xd8(%rbx) + mov %r9d,%esi + mov %r9d,-0x48(%rbp) callq *0xd8(%rbx) So previously gcc thought the register offset might be signed and decided to sign extend it, just in case. The rest appears to be mostly just minor shuffling of instructions. v2: i915_mmio_reg_{offset,equal,valid}() helpers added s/_REG/_MMIO/ in the register defines mo more switch statements left to worry about ring_emit stuff got sorted in a prep patch cmd parser, lrc context and w/a batch buildup also in prep patch vgpu stuff cleaned up and moved to a prep patch all other unrelated changes split out v3: Rebased due to BXT DSI/BLC, MOCS, etc. v4: Rebased due to churn, s/i915_mmio_reg_t/i915_reg_t/ Signed-off-by: Ville Syrjälä Reviewed-by: Chris Wilson Link: http://patchwork.freedesktop.org/patch/msgid/1447853606-2751-1-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/i915/dvo.h | 4 +- drivers/gpu/drm/i915/i915_cmd_parser.c | 8 +- drivers/gpu/drm/i915/i915_debugfs.c | 5 +- drivers/gpu/drm/i915/i915_drv.h | 38 +- drivers/gpu/drm/i915/i915_gem_fence.c | 2 +- drivers/gpu/drm/i915/i915_gpu_error.c | 2 +- drivers/gpu/drm/i915/i915_guc_reg.h | 52 +- drivers/gpu/drm/i915/i915_guc_submission.c | 2 +- drivers/gpu/drm/i915/i915_irq.c | 30 +- drivers/gpu/drm/i915/i915_reg.h | 2472 ++++++++++++++-------------- drivers/gpu/drm/i915/i915_sysfs.c | 3 +- drivers/gpu/drm/i915/i915_trace.h | 4 +- drivers/gpu/drm/i915/i915_vgpu.h | 2 +- drivers/gpu/drm/i915/intel_audio.c | 14 +- drivers/gpu/drm/i915/intel_crt.c | 14 +- drivers/gpu/drm/i915/intel_csr.c | 2 +- drivers/gpu/drm/i915/intel_ddi.c | 13 +- drivers/gpu/drm/i915/intel_display.c | 84 +- drivers/gpu/drm/i915/intel_dp.c | 71 +- drivers/gpu/drm/i915/intel_drv.h | 15 +- drivers/gpu/drm/i915/intel_dsi.c | 45 +- drivers/gpu/drm/i915/intel_dvo.c | 8 +- drivers/gpu/drm/i915/intel_fifo_underrun.c | 4 +- drivers/gpu/drm/i915/intel_hdmi.c | 55 +- drivers/gpu/drm/i915/intel_i2c.c | 16 +- drivers/gpu/drm/i915/intel_lrc.c | 4 +- drivers/gpu/drm/i915/intel_lrc.h | 18 +- drivers/gpu/drm/i915/intel_lvds.c | 8 +- drivers/gpu/drm/i915/intel_mocs.c | 4 +- drivers/gpu/drm/i915/intel_pm.c | 5 +- drivers/gpu/drm/i915/intel_psr.c | 12 +- drivers/gpu/drm/i915/intel_ringbuffer.c | 13 +- drivers/gpu/drm/i915/intel_ringbuffer.h | 6 +- drivers/gpu/drm/i915/intel_sdvo.c | 5 +- drivers/gpu/drm/i915/intel_uncore.c | 73 +- 35 files changed, 1540 insertions(+), 1573 deletions(-) commit 4fe5dc4873663fc4cfbdae7a45a1b4378a2d7993 Author: Alim Akhtar Date: Fri Nov 6 08:36:40 2015 +0530 arm64: dts: Enable HS200 mode operation on exynos7-espresso This patch enables HS200 mode operation on Exynos7 based Espresso board. This also removes _broken-cd_ property as per mmc binding documentation which says one of the properties between broken-cd and non-removable should be used. And we already use _non-removable_ as emmc is mounted on the board which is a non-removable device. Signed-off-by: Alim Akhtar Reviewed-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski Signed-off-by: Krzysztof Kozlowski arch/arm64/boot/dts/exynos/exynos7-espresso.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9589f7721e16007ae040b55993dccfed00ddb296 Author: Alim Akhtar Date: Fri Nov 6 08:36:39 2015 +0530 arm64: dts: Add S2MPS15 PMIC node on exynos7-espresso This patch adds PMIC (S2MPS15) node on Espresso board, which includes regulators and pmic-clk sub-nodes. This patch also adds {vmmc,vqmmc}-supply properties for mmc2 node. Signed-off-by: Abhilash Kesavan Signed-off-by: Alim Akhtar Reviewed-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski Signed-off-by: Krzysztof Kozlowski arch/arm64/boot/dts/exynos/exynos7-espresso.dts | 280 ++++++++++++++++++++++++ 1 file changed, 280 insertions(+) commit 6d808eba602b00f77f26191f45328774ff057cc0 Author: Kalle Valo Date: Wed Nov 18 10:45:54 2015 +0200 mac80211_hwsim: move Kconfig entry for sorting alphabetically mac80211_hwsim was not placed alphabetically correctly in menuconfig, fix that. Signed-off-by: Kalle Valo drivers/net/wireless/Kconfig | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit fad2ba681c74f785d56a2401bb9db615843a465a Author: Axel Lin Date: Wed Nov 18 16:22:52 2015 +0800 regulator: tps6105x: Convert to use regmap helper functions Since commit 7e5071199355 ("mfd: tps6105x: Use i2c regmap to access registers"), we can use regmap helper functions instead of open coded. Signed-off-by: Axel Lin Tested-by: Denis Grigoryev Signed-off-by: Mark Brown drivers/regulator/tps6105x-regulator.c | 95 +++++----------------------------- 1 file changed, 12 insertions(+), 83 deletions(-) commit 28b5df1838b357c9e3e8eba02f684df3c0db05b3 Author: Axel Lin Date: Wed Nov 18 16:24:56 2015 +0800 ASoC: wm8904: Make undocumented registers non-readable Signed-off-by: Axel Lin Reviewed-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8904.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 94af7a3c310f5877dc6f756179b92f24f89a9b08 Author: Krzysztof Kozlowski Date: Mon Oct 19 14:00:32 2015 +0900 clk: samsung: exynos4: Add SSS gate clock Add a gate clock for controlling all clocks of Security Sub System (SSS). Signed-off-by: Krzysztof Kozlowski Acked-by: Stephen Boyd drivers/clk/samsung/clk-exynos4.c | 1 + include/dt-bindings/clock/exynos4.h | 1 + 2 files changed, 2 insertions(+) commit e8f937da744fe13505720a2709c82b182f730fcf Author: Borislav Petkov Date: Wed Nov 18 14:00:05 2015 +0100 EDAC, pci: Remove old disabled code Remove an unused edac_pci_find() function iterating over edac_pci_list. Signed-off-by: Borislav Petkov drivers/edac/edac_pci.c | 35 ----------------------------------- 1 file changed, 35 deletions(-) commit a1e5e7e9b36f360bf75e4f0f7ceb899682f213bd Author: Mythri P K Date: Mon Nov 9 23:20:00 2015 +0530 ASoC: core: Pass kcontrol to bytes tlv callbacks Add kcontrol to the tlv callbacks in soc_bytes_ext, as it is needed for referencing the corresponding control in the driver code Also fix the only upstream user in topology core Signed-off-by: Mythri P K Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown include/sound/soc-topology.h | 6 ++++-- include/sound/soc.h | 6 ++++-- sound/soc/soc-ops.c | 4 ++-- 3 files changed, 10 insertions(+), 6 deletions(-) commit 3de7c420a2b1737844d893cbfc689a9b2b5528cd Author: Vinod Koul Date: Mon Nov 9 23:19:58 2015 +0530 ASoC: core: refactor soc_link_dai_widgets() In soc_link_dai_widgets() we refer to local widget variables as playback/capture_widget, but they are really sink/source widgets, so change the names accordingly Suggested-by: Mark Brown Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/soc-core.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit d3cb2de2479bbbde29391393d68f2e313e1f0504 Author: Bard Liao Date: Mon Nov 9 14:47:34 2015 +0800 ASoC: rt5659: add rt5659 codec driver This is the initial codec driver for rt5659. Signed-off-by: Bard Liao Signed-off-by: Mark Brown Documentation/devicetree/bindings/sound/rt5659.txt | 75 + include/sound/rt5659.h | 49 + sound/soc/codecs/Kconfig | 6 + sound/soc/codecs/Makefile | 2 + sound/soc/codecs/rt5659.c | 4223 ++++++++++++++++++++ sound/soc/codecs/rt5659.h | 1819 +++++++++ 6 files changed, 6174 insertions(+) commit 9bca5d0ca76c0ce029e2b43cf081863e7e8f6768 Author: Ville Syrjälä Date: Wed Nov 4 23:20:16 2015 +0200 drm/i915: Add missing ')' to SKL_PS_ECC_STAT define Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446672017-24497-29-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Chris Wilson drivers/gpu/drm/i915/i915_reg.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0670c5a688122c66ecfb0bd8cbd8067cc971a4e8 Author: Ville Syrjälä Date: Fri Nov 6 21:47:16 2015 +0200 drm/i915: Add 'offset' to uncore funcs Add 'u32 offset' to the uncore register access functions. For now it's the same as 'reg', but once type safety gets added 'reg' will be the type safe register variable and 'offset' the raw offset. v2: s/uint32_t/u32/ (Chris) Cc: Chris Wilson Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446839236-20035-1-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Chris Wilson drivers/gpu/drm/i915/intel_uncore.c | 48 +++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 23 deletions(-) commit 8a74db7a86a59ec8ccec3691d7cbfd5759bc2801 Author: Ville Syrjälä Date: Wed Nov 4 23:20:13 2015 +0200 drm/i915: Pull the vgpu uncore funcs apart from the rest of gen6+ I need to add a new variable into GEN6_{READ,WRITE}_HEADER, but the vgpu won't need it, so let's avoid an unused variable warning by splitting the vgpu stuff to use its own macros. Cc: Eddie Dong Cc: Jike Song Cc: Kevin Tian Cc: Yu Zhang Cc: Zhi Wang Cc: Zhiyuan Lv Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446672017-24497-26-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Zhiyuan Lv drivers/gpu/drm/i915/intel_uncore.c | 80 +++++++++++++++++++++++++------------ 1 file changed, 54 insertions(+), 26 deletions(-) commit ab75bb5d852cf9a877a973c2174e7791d92554c5 Author: Ville Syrjälä Date: Wed Nov 4 23:20:12 2015 +0200 drm/i915: Turn vgpu pdps into an array We'll want to avoid performing arithmetic with register offsets, so instead calculating the vgpu PDP as pdp0_lo+offset, make the PDPs into an array. This way we can simply loop through them. Cc: Eddie Dong Cc: Jike Song Cc: Kevin Tian Cc: Yu Zhang Cc: Zhi Wang Cc: Zhiyuan Lv Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446672017-24497-25-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Zhiyuan Lv drivers/gpu/drm/i915/i915_gem_gtt.c | 11 ++++------- drivers/gpu/drm/i915/i915_vgpu.h | 12 ++++-------- 2 files changed, 8 insertions(+), 15 deletions(-) commit 0d925ea02310fa5b99988bfe7942aa010f2a4723 Author: Ville Syrjälä Date: Wed Nov 4 23:20:11 2015 +0200 drm/i915: Wrap context LRI init in a macro We set up a load of LRIs in the logical ring context. Wrap that stuff in a macro to avoid typos with position of each reg/value pair in the context. This also makes it easier to make the register defines type safe. Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446672017-24497-24-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Chris Wilson drivers/gpu/drm/i915/intel_lrc.c | 91 ++++++++++++++++++---------------------- 1 file changed, 40 insertions(+), 51 deletions(-) commit 35dc3f97a69bb344768c6a2f47da2be46b11645a Author: Ville Syrjälä Date: Wed Nov 4 23:20:10 2015 +0200 drm/i915: Give names to more ring registers The logical render context population has a bunch of raw ring register offsets. Use the names we have for them, and in cases where we we don't, give them names. Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446672017-24497-23-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Chris Wilson drivers/gpu/drm/i915/i915_reg.h | 8 ++++++++ drivers/gpu/drm/i915/intel_lrc.c | 22 +++++++++++----------- 2 files changed, 19 insertions(+), 11 deletions(-) commit 9244a817019f25602a2bad230892c42983da51e7 Author: Ville Syrjälä Date: Wed Nov 4 23:20:09 2015 +0200 drm/i915: Wrap ASSIGN_CTX_{PDP,PM4L} in do {} while(0) Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446672017-24497-22-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Chris Wilson drivers/gpu/drm/i915/intel_lrc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 8f40db776adb9bb57b7b274953fadfd2ddcf044c Author: Ville Syrjälä Date: Wed Nov 4 23:20:08 2015 +0200 drm/i915: Add wa_ctx_emit_reg() Add a helper for emitting register offsets (for LRI/SRM) into the w/a batch buffer. Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446672017-24497-21-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Chris Wilson drivers/gpu/drm/i915/intel_lrc.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit f92a9162208a4d4e3d28fa8d00b9fb210d63487b Author: Ville Syrjälä Date: Wed Nov 4 23:20:07 2015 +0200 drm/i915: Add functions to emit register offsets to the ring When register type safety happens, we can't just try to emit the register itself to the ring. Instead we'll need to extract the offset from it first. Add some convenience functions that will do that. v2: Convert MOCS setup too Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446672017-24497-20-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Chris Wilson drivers/gpu/drm/i915/i915_gem.c | 2 +- drivers/gpu/drm/i915/i915_gem_context.c | 4 ++-- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 4 ++-- drivers/gpu/drm/i915/i915_gem_gtt.c | 12 ++++++------ drivers/gpu/drm/i915/intel_display.c | 4 ++-- drivers/gpu/drm/i915/intel_lrc.c | 8 ++++---- drivers/gpu/drm/i915/intel_lrc.h | 5 +++++ drivers/gpu/drm/i915/intel_mocs.c | 8 ++++---- drivers/gpu/drm/i915/intel_ringbuffer.c | 4 ++-- drivers/gpu/drm/i915/intel_ringbuffer.h | 5 +++++ 10 files changed, 33 insertions(+), 23 deletions(-) commit e597ef40457fa14dbad551903d958f7253e9572a Author: Ville Syrjälä Date: Fri Nov 6 21:44:40 2015 +0200 drm/i915: Make the cmd parser 64bit regs explicit Add defines for the upper halves of the registers used by the cmd parser. Getting rid of the arithmetic with the register offset will help in making registers type safe. v2: s/_HI/_UDW/ (Chris) Signed-off-by: Ville Syrjälä Reviewed-by: Chris Wilson Link: http://patchwork.freedesktop.org/patch/msgid/1446839080-18732-1-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/i915/i915_cmd_parser.c | 29 +++++++++++++++++------------ drivers/gpu/drm/i915/i915_reg.h | 20 ++++++++++++++++++-- 2 files changed, 35 insertions(+), 14 deletions(-) commit 8697600b4046f26e497b200aff020f10ae6968ae Author: Ville Syrjälä Date: Fri Nov 6 21:43:41 2015 +0200 drm/i915: Make the high dword offset more explicit in i915_reg_read_ioctl Store the upper dword of the register offset in the whitelist as well. This would allow it to read register where the two halves aren't sitting right next to each other, and it'll make it easier to make register access type safe. While at it change the register offsets to u32 from u64. Our register space isn't quite that big, yet :) v2: Use ldw/udw as the suffixes, and add a note about 64bit wide split regs (Chris) Cc: Chris Wilson Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446839021-18599-1-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Chris Wilson drivers/gpu/drm/i915/i915_reg.h | 3 ++- drivers/gpu/drm/i915/intel_uncore.c | 25 ++++++++++++++----------- include/uapi/drm/i915_drm.h | 6 ++++++ 3 files changed, 22 insertions(+), 12 deletions(-) commit 3613cf1d8854e64186edb8514f4f5c5b1a1ef679 Author: Ville Syrjälä Date: Wed Nov 4 23:20:04 2015 +0200 drm/i915: s/0x50/RING_PSMI_CTL/ Use the RING_PSMI_CTL define insted of hand rolling the register offset. Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446672017-24497-17-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Chris Wilson drivers/gpu/drm/i915/i915_gpu_error.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e6c4c763661de5c7f3273c24a8878ea9521b27eb Author: Ville Syrjälä Date: Thu Nov 5 14:13:53 2015 +0200 drm/i915: Parametrize MOCS registers v2: Use for_each_ring() (Chris) Cc: Chris Wilson Cc: Francisco Jerez Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446725633-6419-1-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Chris Wilson drivers/gpu/drm/i915/i915_reg.h | 12 ++++---- drivers/gpu/drm/i915/intel_mocs.c | 59 ++++++++++++++++++++++----------------- 2 files changed, 40 insertions(+), 31 deletions(-) commit 6fa1c5f1a7c2f2dbc85d74a41a041d66565e105e Author: Ville Syrjälä Date: Wed Nov 4 23:20:02 2015 +0200 drm/i915: Parametrize L3 error registers Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446672017-24497-15-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Chris Wilson drivers/gpu/drm/i915/i915_gem.c | 7 +++---- drivers/gpu/drm/i915/i915_irq.c | 2 +- drivers/gpu/drm/i915/i915_reg.h | 6 ++---- 3 files changed, 6 insertions(+), 9 deletions(-) commit 086f8e84a085a43ae6479ce5ecd502f7e5133cbe Author: Ville Syrjälä Date: Wed Nov 4 23:20:01 2015 +0200 drm/i915: Prefix raw register defines with underscore Most of our register defines follow the convention that if there's a need for the raw register offset, that one has an underscore sa a prefix. The define (possibly parametrized) without the underscore is the one people should normally use, since it will take into account all the parameters and other potential offsets that are needed. Fix up the few stragglers that don't follow this convention. Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446672017-24497-14-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Chris Wilson drivers/gpu/drm/i915/i915_reg.h | 262 ++++++++++++++++++++-------------------- 1 file changed, 131 insertions(+), 131 deletions(-) commit b2e8c6cd0974fc58dced08ebb3780bdf875a8a80 Author: Ville Syrjälä Date: Wed Nov 4 23:20:00 2015 +0200 drm/i915: Streamline gpio_mmio_base deduction If we ignore the BXT situation, we can observe that the only variables affecting gpio_mmio_base is IS_VALLEVIEW and HAS_GMCH_DISPLAY. The BXT situation we can fit into the same pattern if we change gmbus_pins_bxt[] to house the GMCH GPIO register offsets (like we do for all other platfotms). So let's do that. We could even simplify the VLV situation more by including the display_mmio_offset in the GPIO register defines, but let's leave it be for now. Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446672017-24497-13-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Daniel Vetter drivers/gpu/drm/i915/intel_i2c.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit 78e0d2e3477aa3e8bdac70698ddd2aad020016d1 Author: Ville Syrjälä Date: Wed Nov 4 23:19:59 2015 +0200 drm/i915: Store DVO SRCDIM register offset under intel_dvo_device Store the DVO SRCDIM register offset alongside the DVO control register offset in intel_dvo_device. This gets rid of the switch statement whose case values are the DVO control register offsets. Such a construct would cause problems for register type safety. Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446672017-24497-12-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Chris Wilson drivers/gpu/drm/i915/dvo.h | 1 + drivers/gpu/drm/i915/intel_dvo.c | 23 +++++++++-------------- 2 files changed, 10 insertions(+), 14 deletions(-) commit 2a5c08323dec87f9f85acc9949d93437512b1392 Author: Ville Syrjälä Date: Fri Nov 6 21:29:59 2015 +0200 drm/i915: s/is_sdvob/enum port/ Replace the is_sdvob bool and some sdvo_reg checks with enum port. This makes the SDVO code look more modern, and gets rid of explicit register offset checks in the code which will hamper register type checking. v2: Add assert_sdvo_port_valid() (Chris) Signed-off-by: Ville Syrjälä Reviewed-by: Chris Wilson Link: http://patchwork.freedesktop.org/patch/msgid/1446838199-3666-1-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/i915/intel_display.c | 6 ++--- drivers/gpu/drm/i915/intel_drv.h | 2 +- drivers/gpu/drm/i915/intel_sdvo.c | 47 +++++++++++++++++++++--------------- 3 files changed, 32 insertions(+), 23 deletions(-) commit c48b53054cef3f87595bbad4ba7f5343a80fe5fd Author: Ville Syrjälä Date: Wed Nov 4 23:19:56 2015 +0200 drm/i915: s/PCH_DP_/PORT_/ in intel_trans_dp_port_sel() and move it next to its only user Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446672017-24497-9-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Chris Wilson drivers/gpu/drm/i915/i915_drv.h | 1 - drivers/gpu/drm/i915/intel_display.c | 22 +++++++++++++++++++--- drivers/gpu/drm/i915/intel_dp.c | 19 ------------------- 3 files changed, 19 insertions(+), 23 deletions(-) commit aba72ddcfde2ceba0aa3a7188fdc3950a1fdf9f3 Author: Ville Syrjälä Date: Wed Nov 4 23:19:49 2015 +0200 pci: Decouple quirks.c from i915_reg.h i915 register defines are going to become type safe, so going forward the register defines can't be used as straight numbers. Since quirks.c needs just a few extra register defines from i915_reg.h, decouple the two by defining the required registers locally in quirks.c. This was already done for a few other igpu related registers. Cc: Bjorn Helgaas Cc: linux-pci@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446672017-24497-2-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Chris Wilson drivers/pci/quirks.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit b5c9b4f91a6f91cdbf777e6f365d56debe500421 Author: Kalle Valo Date: Wed Nov 18 10:38:32 2015 +0200 ath: unify Kconfig with other vendors Change menuconfig to config to keep the Kconfig entries unified. Part of reorganising wireless drivers directory and Kconfig. Signed-off-by: Kalle Valo drivers/net/wireless/Kconfig | 3 +-- drivers/net/wireless/Makefile | 3 +-- drivers/net/wireless/ath/Kconfig | 17 ++++++++++------- 3 files changed, 12 insertions(+), 11 deletions(-) commit bd842171a8b7af696eece7157a988b7726ed641c Author: Kalle Valo Date: Wed Nov 18 10:27:43 2015 +0200 ti: unify Kconfig with other vendors Rename WL_TI to WLAN_VENDOR_TI to match with other vendor configs and make sure that it's enabled by default in new configs. Convert menuconfigs to regular configs to unify the wireless drivers menuconfig. Part of reorganising wireless drivers directory and Kconfig. Also remove WLCORE dependency to WL_TI. It should not be needed as WLCORE is already under if WLAN_VENDOR_TI. Signed-off-by: Kalle Valo drivers/net/wireless/Kconfig | 2 +- drivers/net/wireless/Makefile | 3 +-- drivers/net/wireless/ti/Kconfig | 18 +++++++++++------- drivers/net/wireless/ti/wl1251/Kconfig | 2 +- drivers/net/wireless/ti/wlcore/Kconfig | 2 +- 5 files changed, 15 insertions(+), 12 deletions(-) commit 7b09ed5a09532d566c34f941bbcb2a813ef97afb Author: Kalle Valo Date: Wed Nov 18 10:23:52 2015 +0200 mediatek: unify Kconfig with other vendors Part of reorganising wireless drivers directory and Kconfig. Signed-off-by: Kalle Valo drivers/net/wireless/Kconfig | 2 +- drivers/net/wireless/Makefile | 3 +-- drivers/net/wireless/mediatek/Kconfig | 16 ++++++++++------ 3 files changed, 12 insertions(+), 9 deletions(-) commit 33aca94d797d7a8b6b4911ba02060c4fa9a0c47d Author: Kalle Valo Date: Wed Nov 18 10:18:44 2015 +0200 rt2x00: move under ralink vendor directory Part of reorganising wireless drivers directory and Kconfig. Signed-off-by: Kalle Valo MAINTAINERS | 2 +- drivers/net/wireless/Kconfig | 2 +- drivers/net/wireless/Makefile | 3 +- drivers/net/wireless/ralink/Kconfig | 16 + drivers/net/wireless/ralink/Makefile | 1 + drivers/net/wireless/ralink/rt2x00/Kconfig | 269 + drivers/net/wireless/ralink/rt2x00/Makefile | 25 + drivers/net/wireless/ralink/rt2x00/rt2400pci.c | 1850 +++++ drivers/net/wireless/ralink/rt2x00/rt2400pci.h | 961 +++ drivers/net/wireless/ralink/rt2x00/rt2500pci.c | 2148 ++++++ drivers/net/wireless/ralink/rt2x00/rt2500pci.h | 1235 +++ drivers/net/wireless/ralink/rt2x00/rt2500usb.c | 2001 +++++ drivers/net/wireless/ralink/rt2x00/rt2500usb.h | 855 +++ drivers/net/wireless/ralink/rt2x00/rt2800.h | 2986 ++++++++ drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 8021 ++++++++++++++++++++ drivers/net/wireless/ralink/rt2x00/rt2800lib.h | 232 + drivers/net/wireless/ralink/rt2x00/rt2800mmio.c | 871 +++ drivers/net/wireless/ralink/rt2x00/rt2800mmio.h | 163 + drivers/net/wireless/ralink/rt2x00/rt2800pci.c | 471 ++ drivers/net/wireless/ralink/rt2x00/rt2800pci.h | 42 + drivers/net/wireless/ralink/rt2x00/rt2800soc.c | 260 + drivers/net/wireless/ralink/rt2x00/rt2800usb.c | 1462 ++++ drivers/net/wireless/ralink/rt2x00/rt2800usb.h | 110 + drivers/net/wireless/ralink/rt2x00/rt2x00.h | 1478 ++++ drivers/net/wireless/ralink/rt2x00/rt2x00config.c | 285 + drivers/net/wireless/ralink/rt2x00/rt2x00crypto.c | 256 + drivers/net/wireless/ralink/rt2x00/rt2x00debug.c | 800 ++ drivers/net/wireless/ralink/rt2x00/rt2x00debug.h | 69 + drivers/net/wireless/ralink/rt2x00/rt2x00dev.c | 1549 ++++ drivers/net/wireless/ralink/rt2x00/rt2x00dump.h | 127 + .../net/wireless/ralink/rt2x00/rt2x00firmware.c | 129 + drivers/net/wireless/ralink/rt2x00/rt2x00leds.c | 244 + drivers/net/wireless/ralink/rt2x00/rt2x00leds.h | 44 + drivers/net/wireless/ralink/rt2x00/rt2x00lib.h | 468 ++ drivers/net/wireless/ralink/rt2x00/rt2x00link.c | 492 ++ drivers/net/wireless/ralink/rt2x00/rt2x00mac.c | 846 +++ drivers/net/wireless/ralink/rt2x00/rt2x00mmio.c | 212 + drivers/net/wireless/ralink/rt2x00/rt2x00mmio.h | 117 + drivers/net/wireless/ralink/rt2x00/rt2x00pci.c | 221 + drivers/net/wireless/ralink/rt2x00/rt2x00pci.h | 49 + drivers/net/wireless/ralink/rt2x00/rt2x00queue.c | 1290 ++++ drivers/net/wireless/ralink/rt2x00/rt2x00queue.h | 686 ++ drivers/net/wireless/ralink/rt2x00/rt2x00reg.h | 277 + drivers/net/wireless/ralink/rt2x00/rt2x00soc.c | 160 + drivers/net/wireless/ralink/rt2x00/rt2x00soc.h | 40 + drivers/net/wireless/ralink/rt2x00/rt2x00usb.c | 884 +++ drivers/net/wireless/ralink/rt2x00/rt2x00usb.h | 424 ++ drivers/net/wireless/ralink/rt2x00/rt61pci.c | 3111 ++++++++ drivers/net/wireless/ralink/rt2x00/rt61pci.h | 1500 ++++ drivers/net/wireless/ralink/rt2x00/rt73usb.c | 2548 +++++++ drivers/net/wireless/ralink/rt2x00/rt73usb.h | 1079 +++ drivers/net/wireless/rt2x00/Kconfig | 269 - drivers/net/wireless/rt2x00/Makefile | 25 - drivers/net/wireless/rt2x00/rt2400pci.c | 1850 ----- drivers/net/wireless/rt2x00/rt2400pci.h | 961 --- drivers/net/wireless/rt2x00/rt2500pci.c | 2148 ------ drivers/net/wireless/rt2x00/rt2500pci.h | 1235 --- drivers/net/wireless/rt2x00/rt2500usb.c | 2001 ----- drivers/net/wireless/rt2x00/rt2500usb.h | 855 --- drivers/net/wireless/rt2x00/rt2800.h | 2986 -------- drivers/net/wireless/rt2x00/rt2800lib.c | 8021 -------------------- drivers/net/wireless/rt2x00/rt2800lib.h | 232 - drivers/net/wireless/rt2x00/rt2800mmio.c | 871 --- drivers/net/wireless/rt2x00/rt2800mmio.h | 163 - drivers/net/wireless/rt2x00/rt2800pci.c | 471 -- drivers/net/wireless/rt2x00/rt2800pci.h | 42 - drivers/net/wireless/rt2x00/rt2800soc.c | 260 - drivers/net/wireless/rt2x00/rt2800usb.c | 1462 ---- drivers/net/wireless/rt2x00/rt2800usb.h | 110 - drivers/net/wireless/rt2x00/rt2x00.h | 1478 ---- drivers/net/wireless/rt2x00/rt2x00config.c | 285 - drivers/net/wireless/rt2x00/rt2x00crypto.c | 256 - drivers/net/wireless/rt2x00/rt2x00debug.c | 800 -- drivers/net/wireless/rt2x00/rt2x00debug.h | 69 - drivers/net/wireless/rt2x00/rt2x00dev.c | 1549 ---- drivers/net/wireless/rt2x00/rt2x00dump.h | 127 - drivers/net/wireless/rt2x00/rt2x00firmware.c | 129 - drivers/net/wireless/rt2x00/rt2x00leds.c | 244 - drivers/net/wireless/rt2x00/rt2x00leds.h | 44 - drivers/net/wireless/rt2x00/rt2x00lib.h | 468 -- drivers/net/wireless/rt2x00/rt2x00link.c | 492 -- drivers/net/wireless/rt2x00/rt2x00mac.c | 846 --- drivers/net/wireless/rt2x00/rt2x00mmio.c | 212 - drivers/net/wireless/rt2x00/rt2x00mmio.h | 117 - drivers/net/wireless/rt2x00/rt2x00pci.c | 221 - drivers/net/wireless/rt2x00/rt2x00pci.h | 49 - drivers/net/wireless/rt2x00/rt2x00queue.c | 1290 ---- drivers/net/wireless/rt2x00/rt2x00queue.h | 686 -- drivers/net/wireless/rt2x00/rt2x00reg.h | 277 - drivers/net/wireless/rt2x00/rt2x00soc.c | 160 - drivers/net/wireless/rt2x00/rt2x00soc.h | 40 - drivers/net/wireless/rt2x00/rt2x00usb.c | 884 --- drivers/net/wireless/rt2x00/rt2x00usb.h | 424 -- drivers/net/wireless/rt2x00/rt61pci.c | 3111 -------- drivers/net/wireless/rt2x00/rt61pci.h | 1500 ---- drivers/net/wireless/rt2x00/rt73usb.c | 2548 ------- drivers/net/wireless/rt2x00/rt73usb.h | 1079 --- 97 files changed, 43367 insertions(+), 43351 deletions(-) commit 941a967c98362d6ba9a5d8bb6fdc1b70d7179602 Author: Kalle Valo Date: Wed Nov 18 10:15:33 2015 +0200 rsi: add vendor Kconfig entry Part of reorganising wireless drivers directory and Kconfig. Signed-off-by: Kalle Valo drivers/net/wireless/Kconfig | 2 +- drivers/net/wireless/Makefile | 3 +-- drivers/net/wireless/rsi/Kconfig | 15 +++++++++++++++ 3 files changed, 17 insertions(+), 3 deletions(-) commit 621417268569de9616c6c8e8e98dbd3209cd885a Author: Kalle Valo Date: Wed Nov 18 10:09:24 2015 +0200 realtek: create separate Kconfig file Add new a Kconfig file and a vendor config for realtek. Also update MAINTAINERS which we missed to do when earlier moving rtlwifi. Signed-off-by: Kalle Valo MAINTAINERS | 8 ++++---- drivers/net/wireless/Kconfig | 5 +---- drivers/net/wireless/Makefile | 3 +-- drivers/net/wireless/realtek/Kconfig | 18 ++++++++++++++++++ 4 files changed, 24 insertions(+), 10 deletions(-) commit c12edfe27fcbdec7a654edfa1726d5555b558518 Author: Kalle Valo Date: Wed Nov 18 09:56:45 2015 +0200 prism54: move under intersil vendor directory Part of reorganising wireless drivers directory and Kconfig. Signed-off-by: Kalle Valo MAINTAINERS | 2 +- drivers/net/wireless/Kconfig | 20 - drivers/net/wireless/Makefile | 2 - drivers/net/wireless/intersil/Kconfig | 20 + drivers/net/wireless/intersil/Makefile | 1 + drivers/net/wireless/intersil/prism54/Makefile | 8 + drivers/net/wireless/intersil/prism54/isl_38xx.c | 255 ++ drivers/net/wireless/intersil/prism54/isl_38xx.h | 170 ++ drivers/net/wireless/intersil/prism54/isl_ioctl.c | 2910 ++++++++++++++++++++ drivers/net/wireless/intersil/prism54/isl_ioctl.h | 47 + drivers/net/wireless/intersil/prism54/isl_oid.h | 504 ++++ drivers/net/wireless/intersil/prism54/islpci_dev.c | 963 +++++++ drivers/net/wireless/intersil/prism54/islpci_dev.h | 216 ++ drivers/net/wireless/intersil/prism54/islpci_eth.c | 506 ++++ drivers/net/wireless/intersil/prism54/islpci_eth.h | 71 + .../net/wireless/intersil/prism54/islpci_hotplug.c | 339 +++ drivers/net/wireless/intersil/prism54/islpci_mgt.c | 502 ++++ drivers/net/wireless/intersil/prism54/islpci_mgt.h | 138 + drivers/net/wireless/intersil/prism54/oid_mgt.c | 901 ++++++ drivers/net/wireless/intersil/prism54/oid_mgt.h | 58 + .../net/wireless/intersil/prism54/prismcompat.h | 42 + drivers/net/wireless/prism54/Makefile | 8 - drivers/net/wireless/prism54/isl_38xx.c | 255 -- drivers/net/wireless/prism54/isl_38xx.h | 170 -- drivers/net/wireless/prism54/isl_ioctl.c | 2910 -------------------- drivers/net/wireless/prism54/isl_ioctl.h | 47 - drivers/net/wireless/prism54/isl_oid.h | 504 ---- drivers/net/wireless/prism54/islpci_dev.c | 963 ------- drivers/net/wireless/prism54/islpci_dev.h | 216 -- drivers/net/wireless/prism54/islpci_eth.c | 506 ---- drivers/net/wireless/prism54/islpci_eth.h | 71 - drivers/net/wireless/prism54/islpci_hotplug.c | 339 --- drivers/net/wireless/prism54/islpci_mgt.c | 502 ---- drivers/net/wireless/prism54/islpci_mgt.h | 138 - drivers/net/wireless/prism54/oid_mgt.c | 901 ------ drivers/net/wireless/prism54/oid_mgt.h | 58 - drivers/net/wireless/prism54/prismcompat.h | 42 - 37 files changed, 7652 insertions(+), 7653 deletions(-) commit 2be45b66dee080326d0f240aa4f18ef932cc3deb Author: Kalle Valo Date: Wed Nov 18 09:57:18 2015 +0200 orinoco: move under intersil vendor directory Part of reorganising wireless drivers directory and Kconfig. Signed-off-by: Kalle Valo MAINTAINERS | 2 +- drivers/net/wireless/Kconfig | 1 - drivers/net/wireless/Makefile | 2 - drivers/net/wireless/intersil/Kconfig | 1 + drivers/net/wireless/intersil/Makefile | 1 + drivers/net/wireless/intersil/orinoco/Kconfig | 142 ++ drivers/net/wireless/intersil/orinoco/Makefile | 17 + drivers/net/wireless/intersil/orinoco/airport.c | 267 +++ drivers/net/wireless/intersil/orinoco/cfg.c | 291 +++ drivers/net/wireless/intersil/orinoco/cfg.h | 15 + drivers/net/wireless/intersil/orinoco/fw.c | 387 ++++ drivers/net/wireless/intersil/orinoco/fw.h | 21 + drivers/net/wireless/intersil/orinoco/hermes.c | 777 +++++++ drivers/net/wireless/intersil/orinoco/hermes.h | 520 +++++ drivers/net/wireless/intersil/orinoco/hermes_dld.c | 477 ++++ drivers/net/wireless/intersil/orinoco/hermes_dld.h | 52 + drivers/net/wireless/intersil/orinoco/hermes_rid.h | 165 ++ drivers/net/wireless/intersil/orinoco/hw.c | 1356 +++++++++++ drivers/net/wireless/intersil/orinoco/hw.h | 59 + drivers/net/wireless/intersil/orinoco/main.c | 2429 ++++++++++++++++++++ drivers/net/wireless/intersil/orinoco/main.h | 50 + drivers/net/wireless/intersil/orinoco/mic.c | 79 + drivers/net/wireless/intersil/orinoco/mic.h | 22 + drivers/net/wireless/intersil/orinoco/orinoco.h | 253 ++ drivers/net/wireless/intersil/orinoco/orinoco_cs.c | 341 +++ .../net/wireless/intersil/orinoco/orinoco_nortel.c | 323 +++ .../net/wireless/intersil/orinoco/orinoco_pci.c | 266 +++ .../net/wireless/intersil/orinoco/orinoco_pci.h | 68 + .../net/wireless/intersil/orinoco/orinoco_plx.c | 371 +++ .../net/wireless/intersil/orinoco/orinoco_tmd.c | 246 ++ .../net/wireless/intersil/orinoco/orinoco_usb.c | 1748 ++++++++++++++ drivers/net/wireless/intersil/orinoco/scan.c | 251 ++ drivers/net/wireless/intersil/orinoco/scan.h | 21 + .../net/wireless/intersil/orinoco/spectrum_cs.c | 320 +++ drivers/net/wireless/intersil/orinoco/wext.c | 1413 ++++++++++++ drivers/net/wireless/intersil/orinoco/wext.h | 13 + drivers/net/wireless/orinoco/Kconfig | 142 -- drivers/net/wireless/orinoco/Makefile | 17 - drivers/net/wireless/orinoco/airport.c | 267 --- drivers/net/wireless/orinoco/cfg.c | 291 --- drivers/net/wireless/orinoco/cfg.h | 15 - drivers/net/wireless/orinoco/fw.c | 387 ---- drivers/net/wireless/orinoco/fw.h | 21 - drivers/net/wireless/orinoco/hermes.c | 777 ------- drivers/net/wireless/orinoco/hermes.h | 520 ----- drivers/net/wireless/orinoco/hermes_dld.c | 477 ---- drivers/net/wireless/orinoco/hermes_dld.h | 52 - drivers/net/wireless/orinoco/hermes_rid.h | 165 -- drivers/net/wireless/orinoco/hw.c | 1356 ----------- drivers/net/wireless/orinoco/hw.h | 59 - drivers/net/wireless/orinoco/main.c | 2429 -------------------- drivers/net/wireless/orinoco/main.h | 50 - drivers/net/wireless/orinoco/mic.c | 79 - drivers/net/wireless/orinoco/mic.h | 22 - drivers/net/wireless/orinoco/orinoco.h | 253 -- drivers/net/wireless/orinoco/orinoco_cs.c | 341 --- drivers/net/wireless/orinoco/orinoco_nortel.c | 323 --- drivers/net/wireless/orinoco/orinoco_pci.c | 266 --- drivers/net/wireless/orinoco/orinoco_pci.h | 68 - drivers/net/wireless/orinoco/orinoco_plx.c | 371 --- drivers/net/wireless/orinoco/orinoco_tmd.c | 246 -- drivers/net/wireless/orinoco/orinoco_usb.c | 1748 -------------- drivers/net/wireless/orinoco/scan.c | 251 -- drivers/net/wireless/orinoco/scan.h | 21 - drivers/net/wireless/orinoco/spectrum_cs.c | 320 --- drivers/net/wireless/orinoco/wext.c | 1413 ------------ drivers/net/wireless/orinoco/wext.h | 13 - 67 files changed, 12763 insertions(+), 12764 deletions(-) commit d3466830c165a298419788b88086ea99974e63ff Author: Kalle Valo Date: Wed Nov 18 09:49:59 2015 +0200 p54: move under intersil vendor directory Part of reorganising wireless drivers directory and Kconfig. Signed-off-by: Kalle Valo MAINTAINERS | 2 +- drivers/net/wireless/Kconfig | 1 - drivers/net/wireless/Makefile | 2 - drivers/net/wireless/intersil/Kconfig | 1 + drivers/net/wireless/intersil/Makefile | 1 + drivers/net/wireless/intersil/p54/Kconfig | 71 ++ drivers/net/wireless/intersil/p54/Makefile | 7 + drivers/net/wireless/intersil/p54/eeprom.c | 982 ++++++++++++++++++ drivers/net/wireless/intersil/p54/eeprom.h | 245 +++++ drivers/net/wireless/intersil/p54/fwio.c | 764 ++++++++++++++ drivers/net/wireless/intersil/p54/led.c | 161 +++ drivers/net/wireless/intersil/p54/lmac.h | 562 ++++++++++ drivers/net/wireless/intersil/p54/main.c | 867 ++++++++++++++++ drivers/net/wireless/intersil/p54/p54.h | 281 +++++ drivers/net/wireless/intersil/p54/p54pci.c | 703 +++++++++++++ drivers/net/wireless/intersil/p54/p54pci.h | 112 ++ drivers/net/wireless/intersil/p54/p54spi.c | 720 +++++++++++++ drivers/net/wireless/intersil/p54/p54spi.h | 125 +++ drivers/net/wireless/intersil/p54/p54spi_eeprom.h | 679 ++++++++++++ drivers/net/wireless/intersil/p54/p54usb.c | 1149 +++++++++++++++++++++ drivers/net/wireless/intersil/p54/p54usb.h | 162 +++ drivers/net/wireless/intersil/p54/txrx.c | 940 +++++++++++++++++ drivers/net/wireless/p54/Kconfig | 71 -- drivers/net/wireless/p54/Makefile | 7 - drivers/net/wireless/p54/eeprom.c | 982 ------------------ drivers/net/wireless/p54/eeprom.h | 245 ----- drivers/net/wireless/p54/fwio.c | 764 -------------- drivers/net/wireless/p54/led.c | 161 --- drivers/net/wireless/p54/lmac.h | 562 ---------- drivers/net/wireless/p54/main.c | 867 ---------------- drivers/net/wireless/p54/p54.h | 281 ----- drivers/net/wireless/p54/p54pci.c | 703 ------------- drivers/net/wireless/p54/p54pci.h | 112 -- drivers/net/wireless/p54/p54spi.c | 720 ------------- drivers/net/wireless/p54/p54spi.h | 125 --- drivers/net/wireless/p54/p54spi_eeprom.h | 679 ------------ drivers/net/wireless/p54/p54usb.c | 1149 --------------------- drivers/net/wireless/p54/p54usb.h | 162 --- drivers/net/wireless/p54/txrx.c | 940 ----------------- 39 files changed, 8533 insertions(+), 8534 deletions(-) commit eb4f98d5deb9b3a36e8b3ab7a9dec1b5ebc76e75 Author: Kalle Valo Date: Wed Nov 18 09:42:58 2015 +0200 hostap: move under intersil vendor directory Part of reorganising wireless drivers directory and Kconfig. Signed-off-by: Kalle Valo MAINTAINERS | 2 +- drivers/net/wireless/Kconfig | 2 +- drivers/net/wireless/Makefile | 2 +- drivers/net/wireless/hostap/Kconfig | 98 - drivers/net/wireless/hostap/Makefile | 7 - drivers/net/wireless/hostap/hostap.h | 95 - drivers/net/wireless/hostap/hostap_80211.h | 96 - drivers/net/wireless/hostap/hostap_80211_rx.c | 1117 ------ drivers/net/wireless/hostap/hostap_80211_tx.c | 553 --- drivers/net/wireless/hostap/hostap_ap.c | 3339 ---------------- drivers/net/wireless/hostap/hostap_ap.h | 263 -- drivers/net/wireless/hostap/hostap_common.h | 419 -- drivers/net/wireless/hostap/hostap_config.h | 48 - drivers/net/wireless/hostap/hostap_cs.c | 708 ---- drivers/net/wireless/hostap/hostap_download.c | 812 ---- drivers/net/wireless/hostap/hostap_hw.c | 3424 ----------------- drivers/net/wireless/hostap/hostap_info.c | 507 --- drivers/net/wireless/hostap/hostap_ioctl.c | 4054 -------------------- drivers/net/wireless/hostap/hostap_main.c | 1140 ------ drivers/net/wireless/hostap/hostap_pci.c | 459 --- drivers/net/wireless/hostap/hostap_plx.c | 618 --- drivers/net/wireless/hostap/hostap_proc.c | 499 --- drivers/net/wireless/hostap/hostap_wlan.h | 1047 ----- drivers/net/wireless/intersil/Kconfig | 16 + drivers/net/wireless/intersil/Makefile | 1 + drivers/net/wireless/intersil/hostap/Kconfig | 98 + drivers/net/wireless/intersil/hostap/Makefile | 7 + drivers/net/wireless/intersil/hostap/hostap.h | 95 + .../net/wireless/intersil/hostap/hostap_80211.h | 96 + .../net/wireless/intersil/hostap/hostap_80211_rx.c | 1117 ++++++ .../net/wireless/intersil/hostap/hostap_80211_tx.c | 553 +++ drivers/net/wireless/intersil/hostap/hostap_ap.c | 3339 ++++++++++++++++ drivers/net/wireless/intersil/hostap/hostap_ap.h | 263 ++ .../net/wireless/intersil/hostap/hostap_common.h | 419 ++ .../net/wireless/intersil/hostap/hostap_config.h | 48 + drivers/net/wireless/intersil/hostap/hostap_cs.c | 708 ++++ .../net/wireless/intersil/hostap/hostap_download.c | 812 ++++ drivers/net/wireless/intersil/hostap/hostap_hw.c | 3424 +++++++++++++++++ drivers/net/wireless/intersil/hostap/hostap_info.c | 507 +++ .../net/wireless/intersil/hostap/hostap_ioctl.c | 4054 ++++++++++++++++++++ drivers/net/wireless/intersil/hostap/hostap_main.c | 1140 ++++++ drivers/net/wireless/intersil/hostap/hostap_pci.c | 459 +++ drivers/net/wireless/intersil/hostap/hostap_plx.c | 618 +++ drivers/net/wireless/intersil/hostap/hostap_proc.c | 499 +++ drivers/net/wireless/intersil/hostap/hostap_wlan.h | 1047 +++++ 45 files changed, 19323 insertions(+), 19306 deletions(-) commit 6948300c79dba2b6c7b54af43d1924f51e47e017 Author: Kalle Valo Date: Wed Nov 18 09:27:32 2015 +0200 zd1211rw: move under zydas vendor directory Part of reorganising wireless drivers directory and Kconfig. Signed-off-by: Kalle Valo MAINTAINERS | 2 +- drivers/net/wireless/Kconfig | 1 - drivers/net/wireless/Makefile | 1 - drivers/net/wireless/zd1211rw/Kconfig | 19 - drivers/net/wireless/zd1211rw/Makefile | 9 - drivers/net/wireless/zd1211rw/zd_chip.c | 1560 --------------- drivers/net/wireless/zd1211rw/zd_chip.h | 983 ---------- drivers/net/wireless/zd1211rw/zd_def.h | 69 - drivers/net/wireless/zd1211rw/zd_mac.c | 1550 --------------- drivers/net/wireless/zd1211rw/zd_mac.h | 327 ---- drivers/net/wireless/zd1211rw/zd_rf.c | 181 -- drivers/net/wireless/zd1211rw/zd_rf.h | 110 -- drivers/net/wireless/zd1211rw/zd_rf_al2230.c | 443 ----- drivers/net/wireless/zd1211rw/zd_rf_al7230b.c | 494 ----- drivers/net/wireless/zd1211rw/zd_rf_rf2959.c | 281 --- drivers/net/wireless/zd1211rw/zd_rf_uw2453.c | 539 ----- drivers/net/wireless/zd1211rw/zd_usb.c | 2060 -------------------- drivers/net/wireless/zd1211rw/zd_usb.h | 292 --- drivers/net/wireless/zydas/Kconfig | 2 + drivers/net/wireless/zydas/Makefile | 2 + drivers/net/wireless/zydas/zd1211rw/Kconfig | 19 + drivers/net/wireless/zydas/zd1211rw/Makefile | 9 + drivers/net/wireless/zydas/zd1211rw/zd_chip.c | 1560 +++++++++++++++ drivers/net/wireless/zydas/zd1211rw/zd_chip.h | 983 ++++++++++ drivers/net/wireless/zydas/zd1211rw/zd_def.h | 69 + drivers/net/wireless/zydas/zd1211rw/zd_mac.c | 1550 +++++++++++++++ drivers/net/wireless/zydas/zd1211rw/zd_mac.h | 327 ++++ drivers/net/wireless/zydas/zd1211rw/zd_rf.c | 181 ++ drivers/net/wireless/zydas/zd1211rw/zd_rf.h | 110 ++ drivers/net/wireless/zydas/zd1211rw/zd_rf_al2230.c | 443 +++++ .../net/wireless/zydas/zd1211rw/zd_rf_al7230b.c | 494 +++++ drivers/net/wireless/zydas/zd1211rw/zd_rf_rf2959.c | 281 +++ drivers/net/wireless/zydas/zd1211rw/zd_rf_uw2453.c | 539 +++++ drivers/net/wireless/zydas/zd1211rw/zd_usb.c | 2060 ++++++++++++++++++++ drivers/net/wireless/zydas/zd1211rw/zd_usb.h | 292 +++ 35 files changed, 8922 insertions(+), 8920 deletions(-) commit ed0ad06f5c8e5b8fc3c6d7c0e3d2dc546638c18c Author: Kalle Valo Date: Wed Nov 18 07:39:37 2015 +0200 zd1201: move under zydas vendor directory Part of reorganising wireless drivers directory and Kconfig. Signed-off-by: Kalle Valo MAINTAINERS | 2 +- drivers/net/wireless/Kconfig | 20 +- drivers/net/wireless/Makefile | 3 +- drivers/net/wireless/zd1201.c | 1913 ----------------------------------- drivers/net/wireless/zd1201.h | 147 --- drivers/net/wireless/zydas/Kconfig | 33 + drivers/net/wireless/zydas/Makefile | 1 + drivers/net/wireless/zydas/zd1201.c | 1913 +++++++++++++++++++++++++++++++++++ drivers/net/wireless/zydas/zd1201.h | 147 +++ 9 files changed, 2097 insertions(+), 2082 deletions(-) commit de60f1dc23f65c308636036cbb14e0d3ada36f27 Author: Kalle Valo Date: Tue Nov 17 21:18:12 2015 +0200 mwl8k: move under marvell vendor directory Part of reorganising wireless drivers directory and Kconfig. Signed-off-by: Kalle Valo MAINTAINERS | 2 +- drivers/net/wireless/Kconfig | 9 - drivers/net/wireless/Makefile | 2 - drivers/net/wireless/marvell/Kconfig | 9 + drivers/net/wireless/marvell/Makefile | 2 + drivers/net/wireless/marvell/mwl8k.c | 6346 +++++++++++++++++++++++++++++++++ drivers/net/wireless/mwl8k.c | 6346 --------------------------------- 7 files changed, 6358 insertions(+), 6358 deletions(-) commit 277b024e5e3d4af4c219c0b9bd541ca4398e0b69 Author: Kalle Valo Date: Tue Nov 17 21:14:51 2015 +0200 mwifiex: move under marvell vendor directory Part of reorganising wireless drivers directory and Kconfig. Signed-off-by: Kalle Valo MAINTAINERS | 2 +- drivers/net/wireless/Kconfig | 1 - drivers/net/wireless/Makefile | 2 - drivers/net/wireless/marvell/Kconfig | 1 + drivers/net/wireless/marvell/Makefile | 1 + drivers/net/wireless/marvell/mwifiex/11ac.c | 382 ++ drivers/net/wireless/marvell/mwifiex/11ac.h | 45 + drivers/net/wireless/marvell/mwifiex/11h.c | 319 ++ drivers/net/wireless/marvell/mwifiex/11n.c | 914 +++++ drivers/net/wireless/marvell/mwifiex/11n.h | 191 + drivers/net/wireless/marvell/mwifiex/11n_aggr.c | 318 ++ drivers/net/wireless/marvell/mwifiex/11n_aggr.h | 33 + .../net/wireless/marvell/mwifiex/11n_rxreorder.c | 910 +++++ .../net/wireless/marvell/mwifiex/11n_rxreorder.h | 85 + drivers/net/wireless/marvell/mwifiex/Kconfig | 44 + drivers/net/wireless/marvell/mwifiex/Makefile | 57 + drivers/net/wireless/marvell/mwifiex/README | 240 ++ drivers/net/wireless/marvell/mwifiex/cfg80211.c | 3887 ++++++++++++++++++++ drivers/net/wireless/marvell/mwifiex/cfg80211.h | 29 + drivers/net/wireless/marvell/mwifiex/cfp.c | 537 +++ drivers/net/wireless/marvell/mwifiex/cmdevt.c | 1659 +++++++++ drivers/net/wireless/marvell/mwifiex/debugfs.c | 1005 +++++ drivers/net/wireless/marvell/mwifiex/decl.h | 273 ++ drivers/net/wireless/marvell/mwifiex/ethtool.c | 70 + drivers/net/wireless/marvell/mwifiex/fw.h | 2177 +++++++++++ drivers/net/wireless/marvell/mwifiex/ie.c | 488 +++ drivers/net/wireless/marvell/mwifiex/init.c | 782 ++++ drivers/net/wireless/marvell/mwifiex/ioctl.h | 470 +++ drivers/net/wireless/marvell/mwifiex/join.c | 1525 ++++++++ drivers/net/wireless/marvell/mwifiex/main.c | 1552 ++++++++ drivers/net/wireless/marvell/mwifiex/main.h | 1579 ++++++++ drivers/net/wireless/marvell/mwifiex/pcie.c | 2742 ++++++++++++++ drivers/net/wireless/marvell/mwifiex/pcie.h | 382 ++ drivers/net/wireless/marvell/mwifiex/scan.c | 2639 +++++++++++++ drivers/net/wireless/marvell/mwifiex/sdio.c | 2684 ++++++++++++++ drivers/net/wireless/marvell/mwifiex/sdio.h | 672 ++++ drivers/net/wireless/marvell/mwifiex/sta_cmd.c | 2282 ++++++++++++ drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c | 1249 +++++++ drivers/net/wireless/marvell/mwifiex/sta_event.c | 864 +++++ drivers/net/wireless/marvell/mwifiex/sta_ioctl.c | 1421 +++++++ drivers/net/wireless/marvell/mwifiex/sta_rx.c | 267 ++ drivers/net/wireless/marvell/mwifiex/sta_tx.c | 244 ++ drivers/net/wireless/marvell/mwifiex/tdls.c | 1500 ++++++++ drivers/net/wireless/marvell/mwifiex/txrx.c | 386 ++ drivers/net/wireless/marvell/mwifiex/uap_cmd.c | 885 +++++ drivers/net/wireless/marvell/mwifiex/uap_event.c | 333 ++ drivers/net/wireless/marvell/mwifiex/uap_txrx.c | 437 +++ drivers/net/wireless/marvell/mwifiex/usb.c | 1267 +++++++ drivers/net/wireless/marvell/mwifiex/usb.h | 110 + drivers/net/wireless/marvell/mwifiex/util.c | 751 ++++ drivers/net/wireless/marvell/mwifiex/util.h | 96 + drivers/net/wireless/marvell/mwifiex/wmm.c | 1531 ++++++++ drivers/net/wireless/marvell/mwifiex/wmm.h | 140 + drivers/net/wireless/mwifiex/11ac.c | 382 -- drivers/net/wireless/mwifiex/11ac.h | 45 - drivers/net/wireless/mwifiex/11h.c | 319 -- drivers/net/wireless/mwifiex/11n.c | 914 ----- drivers/net/wireless/mwifiex/11n.h | 191 - drivers/net/wireless/mwifiex/11n_aggr.c | 318 -- drivers/net/wireless/mwifiex/11n_aggr.h | 33 - drivers/net/wireless/mwifiex/11n_rxreorder.c | 910 ----- drivers/net/wireless/mwifiex/11n_rxreorder.h | 85 - drivers/net/wireless/mwifiex/Kconfig | 44 - drivers/net/wireless/mwifiex/Makefile | 57 - drivers/net/wireless/mwifiex/README | 240 -- drivers/net/wireless/mwifiex/cfg80211.c | 3887 -------------------- drivers/net/wireless/mwifiex/cfg80211.h | 29 - drivers/net/wireless/mwifiex/cfp.c | 537 --- drivers/net/wireless/mwifiex/cmdevt.c | 1659 --------- drivers/net/wireless/mwifiex/debugfs.c | 1005 ----- drivers/net/wireless/mwifiex/decl.h | 273 -- drivers/net/wireless/mwifiex/ethtool.c | 70 - drivers/net/wireless/mwifiex/fw.h | 2177 ----------- drivers/net/wireless/mwifiex/ie.c | 488 --- drivers/net/wireless/mwifiex/init.c | 782 ---- drivers/net/wireless/mwifiex/ioctl.h | 470 --- drivers/net/wireless/mwifiex/join.c | 1525 -------- drivers/net/wireless/mwifiex/main.c | 1552 -------- drivers/net/wireless/mwifiex/main.h | 1579 -------- drivers/net/wireless/mwifiex/pcie.c | 2742 -------------- drivers/net/wireless/mwifiex/pcie.h | 382 -- drivers/net/wireless/mwifiex/scan.c | 2639 ------------- drivers/net/wireless/mwifiex/sdio.c | 2684 -------------- drivers/net/wireless/mwifiex/sdio.h | 672 ---- drivers/net/wireless/mwifiex/sta_cmd.c | 2282 ------------ drivers/net/wireless/mwifiex/sta_cmdresp.c | 1249 ------- drivers/net/wireless/mwifiex/sta_event.c | 864 ----- drivers/net/wireless/mwifiex/sta_ioctl.c | 1421 ------- drivers/net/wireless/mwifiex/sta_rx.c | 267 -- drivers/net/wireless/mwifiex/sta_tx.c | 244 -- drivers/net/wireless/mwifiex/tdls.c | 1500 -------- drivers/net/wireless/mwifiex/txrx.c | 386 -- drivers/net/wireless/mwifiex/uap_cmd.c | 885 ----- drivers/net/wireless/mwifiex/uap_event.c | 333 -- drivers/net/wireless/mwifiex/uap_txrx.c | 437 --- drivers/net/wireless/mwifiex/usb.c | 1267 ------- drivers/net/wireless/mwifiex/usb.h | 110 - drivers/net/wireless/mwifiex/util.c | 751 ---- drivers/net/wireless/mwifiex/util.h | 96 - drivers/net/wireless/mwifiex/wmm.c | 1531 -------- drivers/net/wireless/mwifiex/wmm.h | 140 - 101 files changed, 42456 insertions(+), 42457 deletions(-) commit dd3f92dea849d96272642579003754df9367c160 Author: Kalle Valo Date: Tue Nov 17 21:11:21 2015 +0200 libertas_tf: move under marvell vendor directory Part of reorganising wireless drivers directory and Kconfig. Signed-off-by: Kalle Valo drivers/net/wireless/Kconfig | 19 - drivers/net/wireless/Makefile | 2 - drivers/net/wireless/libertas_tf/Makefile | 6 - drivers/net/wireless/libertas_tf/cmd.c | 807 ------------------ drivers/net/wireless/libertas_tf/deb_defs.h | 104 --- drivers/net/wireless/libertas_tf/if_usb.c | 928 --------------------- drivers/net/wireless/libertas_tf/if_usb.h | 98 --- drivers/net/wireless/libertas_tf/libertas_tf.h | 519 ------------ drivers/net/wireless/libertas_tf/main.c | 766 ----------------- drivers/net/wireless/marvell/Kconfig | 1 + drivers/net/wireless/marvell/Makefile | 2 + drivers/net/wireless/marvell/libertas_tf/Kconfig | 18 + drivers/net/wireless/marvell/libertas_tf/Makefile | 6 + drivers/net/wireless/marvell/libertas_tf/cmd.c | 807 ++++++++++++++++++ .../net/wireless/marvell/libertas_tf/deb_defs.h | 104 +++ drivers/net/wireless/marvell/libertas_tf/if_usb.c | 928 +++++++++++++++++++++ drivers/net/wireless/marvell/libertas_tf/if_usb.h | 98 +++ .../net/wireless/marvell/libertas_tf/libertas_tf.h | 519 ++++++++++++ drivers/net/wireless/marvell/libertas_tf/main.c | 766 +++++++++++++++++ 19 files changed, 3249 insertions(+), 3249 deletions(-) commit f988d64010ec058a206dce083b5c791ce09caa48 Author: Kalle Valo Date: Tue Nov 17 21:07:19 2015 +0200 libertas: move under marvell vendor directory Part of reorganising wireless drivers directory and Kconfig. Signed-off-by: Kalle Valo MAINTAINERS | 2 +- drivers/net/wireless/Kconfig | 2 +- drivers/net/wireless/Makefile | 2 +- drivers/net/wireless/libertas/Kconfig | 45 - drivers/net/wireless/libertas/LICENSE | 16 - drivers/net/wireless/libertas/Makefile | 21 - drivers/net/wireless/libertas/README | 239 --- drivers/net/wireless/libertas/cfg.c | 2215 ---------------------- drivers/net/wireless/libertas/cfg.h | 21 - drivers/net/wireless/libertas/cmd.c | 1725 ----------------- drivers/net/wireless/libertas/cmd.h | 141 -- drivers/net/wireless/libertas/cmdresp.c | 353 ---- drivers/net/wireless/libertas/debugfs.c | 989 ---------- drivers/net/wireless/libertas/debugfs.h | 10 - drivers/net/wireless/libertas/decl.h | 82 - drivers/net/wireless/libertas/defs.h | 394 ---- drivers/net/wireless/libertas/dev.h | 211 --- drivers/net/wireless/libertas/ethtool.c | 120 -- drivers/net/wireless/libertas/firmware.c | 227 --- drivers/net/wireless/libertas/host.h | 978 ---------- drivers/net/wireless/libertas/if_cs.c | 1006 ---------- drivers/net/wireless/libertas/if_sdio.c | 1453 -------------- drivers/net/wireless/libertas/if_sdio.h | 52 - drivers/net/wireless/libertas/if_spi.c | 1318 ------------- drivers/net/wireless/libertas/if_spi.h | 206 -- drivers/net/wireless/libertas/if_usb.c | 1018 ---------- drivers/net/wireless/libertas/if_usb.h | 106 -- drivers/net/wireless/libertas/main.c | 1225 ------------ drivers/net/wireless/libertas/mesh.c | 1187 ------------ drivers/net/wireless/libertas/mesh.h | 77 - drivers/net/wireless/libertas/radiotap.h | 44 - drivers/net/wireless/libertas/rx.c | 286 --- drivers/net/wireless/libertas/tx.c | 207 -- drivers/net/wireless/libertas/types.h | 268 --- drivers/net/wireless/marvell/Kconfig | 16 + drivers/net/wireless/marvell/Makefile | 1 + drivers/net/wireless/marvell/libertas/Kconfig | 45 + drivers/net/wireless/marvell/libertas/LICENSE | 16 + drivers/net/wireless/marvell/libertas/Makefile | 21 + drivers/net/wireless/marvell/libertas/README | 239 +++ drivers/net/wireless/marvell/libertas/cfg.c | 2215 ++++++++++++++++++++++ drivers/net/wireless/marvell/libertas/cfg.h | 21 + drivers/net/wireless/marvell/libertas/cmd.c | 1725 +++++++++++++++++ drivers/net/wireless/marvell/libertas/cmd.h | 141 ++ drivers/net/wireless/marvell/libertas/cmdresp.c | 353 ++++ drivers/net/wireless/marvell/libertas/debugfs.c | 989 ++++++++++ drivers/net/wireless/marvell/libertas/debugfs.h | 10 + drivers/net/wireless/marvell/libertas/decl.h | 82 + drivers/net/wireless/marvell/libertas/defs.h | 394 ++++ drivers/net/wireless/marvell/libertas/dev.h | 211 +++ drivers/net/wireless/marvell/libertas/ethtool.c | 120 ++ drivers/net/wireless/marvell/libertas/firmware.c | 227 +++ drivers/net/wireless/marvell/libertas/host.h | 978 ++++++++++ drivers/net/wireless/marvell/libertas/if_cs.c | 1006 ++++++++++ drivers/net/wireless/marvell/libertas/if_sdio.c | 1453 ++++++++++++++ drivers/net/wireless/marvell/libertas/if_sdio.h | 52 + drivers/net/wireless/marvell/libertas/if_spi.c | 1318 +++++++++++++ drivers/net/wireless/marvell/libertas/if_spi.h | 206 ++ drivers/net/wireless/marvell/libertas/if_usb.c | 1018 ++++++++++ drivers/net/wireless/marvell/libertas/if_usb.h | 106 ++ drivers/net/wireless/marvell/libertas/main.c | 1225 ++++++++++++ drivers/net/wireless/marvell/libertas/mesh.c | 1187 ++++++++++++ drivers/net/wireless/marvell/libertas/mesh.h | 77 + drivers/net/wireless/marvell/libertas/radiotap.h | 44 + drivers/net/wireless/marvell/libertas/rx.c | 286 +++ drivers/net/wireless/marvell/libertas/tx.c | 207 ++ drivers/net/wireless/marvell/libertas/types.h | 268 +++ 67 files changed, 16260 insertions(+), 16243 deletions(-) commit e705c12146aa9c69ca498d4ebb83ba7138f9b41f Author: Kalle Valo Date: Tue Nov 17 20:57:38 2015 +0200 iwlwifi: move under intel vendor directory Part of reorganising wireless drivers directory and Kconfig. Signed-off-by: Kalle Valo MAINTAINERS | 2 +- drivers/net/wireless/Kconfig | 1 - drivers/net/wireless/Makefile | 1 - drivers/net/wireless/intel/Kconfig | 1 + drivers/net/wireless/intel/Makefile | 2 + drivers/net/wireless/intel/iwlwifi/Kconfig | 161 + drivers/net/wireless/intel/iwlwifi/Makefile | 23 + drivers/net/wireless/intel/iwlwifi/dvm/Makefile | 13 + drivers/net/wireless/intel/iwlwifi/dvm/agn.h | 485 +++ drivers/net/wireless/intel/iwlwifi/dvm/calib.c | 1113 +++++ drivers/net/wireless/intel/iwlwifi/dvm/calib.h | 74 + drivers/net/wireless/intel/iwlwifi/dvm/commands.h | 4008 ++++++++++++++++++ drivers/net/wireless/intel/iwlwifi/dvm/debugfs.c | 2441 +++++++++++ drivers/net/wireless/intel/iwlwifi/dvm/dev.h | 949 +++++ drivers/net/wireless/intel/iwlwifi/dvm/devices.c | 690 ++++ drivers/net/wireless/intel/iwlwifi/dvm/led.c | 223 + drivers/net/wireless/intel/iwlwifi/dvm/led.h | 55 + drivers/net/wireless/intel/iwlwifi/dvm/lib.c | 1300 ++++++ drivers/net/wireless/intel/iwlwifi/dvm/mac80211.c | 1655 ++++++++ drivers/net/wireless/intel/iwlwifi/dvm/main.c | 2077 ++++++++++ drivers/net/wireless/intel/iwlwifi/dvm/power.c | 395 ++ drivers/net/wireless/intel/iwlwifi/dvm/power.h | 47 + drivers/net/wireless/intel/iwlwifi/dvm/rs.c | 3338 +++++++++++++++ drivers/net/wireless/intel/iwlwifi/dvm/rs.h | 426 ++ drivers/net/wireless/intel/iwlwifi/dvm/rx.c | 1101 +++++ drivers/net/wireless/intel/iwlwifi/dvm/rxon.c | 1572 ++++++++ drivers/net/wireless/intel/iwlwifi/dvm/scan.c | 1075 +++++ drivers/net/wireless/intel/iwlwifi/dvm/sta.c | 1442 +++++++ drivers/net/wireless/intel/iwlwifi/dvm/tt.c | 685 ++++ drivers/net/wireless/intel/iwlwifi/dvm/tt.h | 128 + drivers/net/wireless/intel/iwlwifi/dvm/tx.c | 1412 +++++++ drivers/net/wireless/intel/iwlwifi/dvm/ucode.c | 452 +++ drivers/net/wireless/intel/iwlwifi/iwl-1000.c | 140 + drivers/net/wireless/intel/iwlwifi/iwl-2000.c | 216 + drivers/net/wireless/intel/iwlwifi/iwl-5000.c | 178 + drivers/net/wireless/intel/iwlwifi/iwl-6000.c | 389 ++ drivers/net/wireless/intel/iwlwifi/iwl-7000.c | 346 ++ drivers/net/wireless/intel/iwlwifi/iwl-8000.c | 229 ++ drivers/net/wireless/intel/iwlwifi/iwl-agn-hw.h | 117 + drivers/net/wireless/intel/iwlwifi/iwl-config.h | 437 ++ drivers/net/wireless/intel/iwlwifi/iwl-csr.h | 552 +++ drivers/net/wireless/intel/iwlwifi/iwl-debug.c | 136 + drivers/net/wireless/intel/iwlwifi/iwl-debug.h | 225 ++ .../net/wireless/intel/iwlwifi/iwl-devtrace-data.h | 80 + .../net/wireless/intel/iwlwifi/iwl-devtrace-io.h | 155 + .../wireless/intel/iwlwifi/iwl-devtrace-iwlwifi.h | 209 + .../net/wireless/intel/iwlwifi/iwl-devtrace-msg.h | 97 + .../wireless/intel/iwlwifi/iwl-devtrace-ucode.h | 81 + drivers/net/wireless/intel/iwlwifi/iwl-devtrace.c | 43 + drivers/net/wireless/intel/iwlwifi/iwl-devtrace.h | 89 + drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 1706 ++++++++ drivers/net/wireless/intel/iwlwifi/iwl-drv.h | 155 + .../net/wireless/intel/iwlwifi/iwl-eeprom-parse.c | 947 +++++ .../net/wireless/intel/iwlwifi/iwl-eeprom-parse.h | 144 + .../net/wireless/intel/iwlwifi/iwl-eeprom-read.c | 464 +++ .../net/wireless/intel/iwlwifi/iwl-eeprom-read.h | 70 + drivers/net/wireless/intel/iwlwifi/iwl-fh.h | 535 +++ .../net/wireless/intel/iwlwifi/iwl-fw-error-dump.h | 320 ++ drivers/net/wireless/intel/iwlwifi/iwl-fw-file.h | 768 ++++ drivers/net/wireless/intel/iwlwifi/iwl-fw.h | 322 ++ drivers/net/wireless/intel/iwlwifi/iwl-io.c | 289 ++ drivers/net/wireless/intel/iwlwifi/iwl-io.h | 73 + drivers/net/wireless/intel/iwlwifi/iwl-modparams.h | 129 + .../net/wireless/intel/iwlwifi/iwl-notif-wait.c | 193 + .../net/wireless/intel/iwlwifi/iwl-notif-wait.h | 139 + drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c | 844 ++++ drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.h | 97 + drivers/net/wireless/intel/iwlwifi/iwl-op-mode.h | 271 ++ drivers/net/wireless/intel/iwlwifi/iwl-phy-db.c | 471 +++ drivers/net/wireless/intel/iwlwifi/iwl-phy-db.h | 82 + drivers/net/wireless/intel/iwlwifi/iwl-prph.h | 401 ++ drivers/net/wireless/intel/iwlwifi/iwl-scd.h | 143 + drivers/net/wireless/intel/iwlwifi/iwl-trans.c | 114 + drivers/net/wireless/intel/iwlwifi/iwl-trans.h | 1125 ++++++ drivers/net/wireless/intel/iwlwifi/mvm/Makefile | 12 + drivers/net/wireless/intel/iwlwifi/mvm/binding.c | 211 + drivers/net/wireless/intel/iwlwifi/mvm/coex.c | 1005 +++++ .../net/wireless/intel/iwlwifi/mvm/coex_legacy.c | 1315 ++++++ drivers/net/wireless/intel/iwlwifi/mvm/constants.h | 139 + drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 2104 ++++++++++ .../net/wireless/intel/iwlwifi/mvm/debugfs-vif.c | 1483 +++++++ drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c | 1516 +++++++ drivers/net/wireless/intel/iwlwifi/mvm/debugfs.h | 103 + .../net/wireless/intel/iwlwifi/mvm/fw-api-coex.h | 476 +++ drivers/net/wireless/intel/iwlwifi/mvm/fw-api-d3.h | 425 ++ .../net/wireless/intel/iwlwifi/mvm/fw-api-mac.h | 387 ++ .../net/wireless/intel/iwlwifi/mvm/fw-api-power.h | 467 +++ drivers/net/wireless/intel/iwlwifi/mvm/fw-api-rs.h | 389 ++ drivers/net/wireless/intel/iwlwifi/mvm/fw-api-rx.h | 238 ++ .../net/wireless/intel/iwlwifi/mvm/fw-api-scan.h | 730 ++++ .../net/wireless/intel/iwlwifi/mvm/fw-api-sta.h | 414 ++ .../net/wireless/intel/iwlwifi/mvm/fw-api-stats.h | 284 ++ .../net/wireless/intel/iwlwifi/mvm/fw-api-tof.h | 386 ++ drivers/net/wireless/intel/iwlwifi/mvm/fw-api-tx.h | 646 +++ drivers/net/wireless/intel/iwlwifi/mvm/fw-api.h | 1773 ++++++++ drivers/net/wireless/intel/iwlwifi/mvm/fw.c | 1166 ++++++ drivers/net/wireless/intel/iwlwifi/mvm/led.c | 136 + drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | 1452 +++++++ drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 4260 ++++++++++++++++++++ drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 1535 +++++++ drivers/net/wireless/intel/iwlwifi/mvm/nvm.c | 864 ++++ .../net/wireless/intel/iwlwifi/mvm/offloading.c | 217 + drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 1434 +++++++ drivers/net/wireless/intel/iwlwifi/mvm/phy-ctxt.c | 295 ++ drivers/net/wireless/intel/iwlwifi/mvm/power.c | 1040 +++++ drivers/net/wireless/intel/iwlwifi/mvm/quota.c | 328 ++ drivers/net/wireless/intel/iwlwifi/mvm/rs.c | 3983 ++++++++++++++++++ drivers/net/wireless/intel/iwlwifi/mvm/rs.h | 392 ++ drivers/net/wireless/intel/iwlwifi/mvm/rx.c | 612 +++ drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 1552 +++++++ drivers/net/wireless/intel/iwlwifi/mvm/sf.c | 340 ++ drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 1810 +++++++++ drivers/net/wireless/intel/iwlwifi/mvm/sta.h | 426 ++ drivers/net/wireless/intel/iwlwifi/mvm/tdls.c | 732 ++++ drivers/net/wireless/intel/iwlwifi/mvm/testmode.h | 97 + .../net/wireless/intel/iwlwifi/mvm/time-event.c | 872 ++++ .../net/wireless/intel/iwlwifi/mvm/time-event.h | 249 ++ drivers/net/wireless/intel/iwlwifi/mvm/tof.c | 306 ++ drivers/net/wireless/intel/iwlwifi/mvm/tof.h | 94 + drivers/net/wireless/intel/iwlwifi/mvm/tt.c | 460 +++ drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 1115 +++++ drivers/net/wireless/intel/iwlwifi/mvm/utils.c | 1083 +++++ drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 685 ++++ drivers/net/wireless/intel/iwlwifi/pcie/internal.h | 569 +++ drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 1548 +++++++ drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 2825 +++++++++++++ drivers/net/wireless/intel/iwlwifi/pcie/tx.c | 1988 +++++++++ drivers/net/wireless/iwlwifi/Kconfig | 161 - drivers/net/wireless/iwlwifi/Makefile | 23 - drivers/net/wireless/iwlwifi/dvm/Makefile | 13 - drivers/net/wireless/iwlwifi/dvm/agn.h | 485 --- drivers/net/wireless/iwlwifi/dvm/calib.c | 1113 ----- drivers/net/wireless/iwlwifi/dvm/calib.h | 74 - drivers/net/wireless/iwlwifi/dvm/commands.h | 4008 ------------------ drivers/net/wireless/iwlwifi/dvm/debugfs.c | 2441 ----------- drivers/net/wireless/iwlwifi/dvm/dev.h | 949 ----- drivers/net/wireless/iwlwifi/dvm/devices.c | 690 ---- drivers/net/wireless/iwlwifi/dvm/led.c | 223 - drivers/net/wireless/iwlwifi/dvm/led.h | 55 - drivers/net/wireless/iwlwifi/dvm/lib.c | 1300 ------ drivers/net/wireless/iwlwifi/dvm/mac80211.c | 1655 -------- drivers/net/wireless/iwlwifi/dvm/main.c | 2077 ---------- drivers/net/wireless/iwlwifi/dvm/power.c | 395 -- drivers/net/wireless/iwlwifi/dvm/power.h | 47 - drivers/net/wireless/iwlwifi/dvm/rs.c | 3338 --------------- drivers/net/wireless/iwlwifi/dvm/rs.h | 426 -- drivers/net/wireless/iwlwifi/dvm/rx.c | 1101 ----- drivers/net/wireless/iwlwifi/dvm/rxon.c | 1572 -------- drivers/net/wireless/iwlwifi/dvm/scan.c | 1075 ----- drivers/net/wireless/iwlwifi/dvm/sta.c | 1442 ------- drivers/net/wireless/iwlwifi/dvm/tt.c | 685 ---- drivers/net/wireless/iwlwifi/dvm/tt.h | 128 - drivers/net/wireless/iwlwifi/dvm/tx.c | 1412 ------- drivers/net/wireless/iwlwifi/dvm/ucode.c | 452 --- drivers/net/wireless/iwlwifi/iwl-1000.c | 140 - drivers/net/wireless/iwlwifi/iwl-2000.c | 216 - drivers/net/wireless/iwlwifi/iwl-5000.c | 178 - drivers/net/wireless/iwlwifi/iwl-6000.c | 389 -- drivers/net/wireless/iwlwifi/iwl-7000.c | 346 -- drivers/net/wireless/iwlwifi/iwl-8000.c | 229 -- drivers/net/wireless/iwlwifi/iwl-agn-hw.h | 117 - drivers/net/wireless/iwlwifi/iwl-config.h | 437 -- drivers/net/wireless/iwlwifi/iwl-csr.h | 552 --- drivers/net/wireless/iwlwifi/iwl-debug.c | 136 - drivers/net/wireless/iwlwifi/iwl-debug.h | 225 -- drivers/net/wireless/iwlwifi/iwl-devtrace-data.h | 80 - drivers/net/wireless/iwlwifi/iwl-devtrace-io.h | 155 - .../net/wireless/iwlwifi/iwl-devtrace-iwlwifi.h | 209 - drivers/net/wireless/iwlwifi/iwl-devtrace-msg.h | 97 - drivers/net/wireless/iwlwifi/iwl-devtrace-ucode.h | 81 - drivers/net/wireless/iwlwifi/iwl-devtrace.c | 43 - drivers/net/wireless/iwlwifi/iwl-devtrace.h | 89 - drivers/net/wireless/iwlwifi/iwl-drv.c | 1706 -------- drivers/net/wireless/iwlwifi/iwl-drv.h | 155 - drivers/net/wireless/iwlwifi/iwl-eeprom-parse.c | 947 ----- drivers/net/wireless/iwlwifi/iwl-eeprom-parse.h | 144 - drivers/net/wireless/iwlwifi/iwl-eeprom-read.c | 464 --- drivers/net/wireless/iwlwifi/iwl-eeprom-read.h | 70 - drivers/net/wireless/iwlwifi/iwl-fh.h | 535 --- drivers/net/wireless/iwlwifi/iwl-fw-error-dump.h | 320 -- drivers/net/wireless/iwlwifi/iwl-fw-file.h | 768 ---- drivers/net/wireless/iwlwifi/iwl-fw.h | 322 -- drivers/net/wireless/iwlwifi/iwl-io.c | 289 -- drivers/net/wireless/iwlwifi/iwl-io.h | 73 - drivers/net/wireless/iwlwifi/iwl-modparams.h | 129 - drivers/net/wireless/iwlwifi/iwl-notif-wait.c | 193 - drivers/net/wireless/iwlwifi/iwl-notif-wait.h | 139 - drivers/net/wireless/iwlwifi/iwl-nvm-parse.c | 844 ---- drivers/net/wireless/iwlwifi/iwl-nvm-parse.h | 97 - drivers/net/wireless/iwlwifi/iwl-op-mode.h | 271 -- drivers/net/wireless/iwlwifi/iwl-phy-db.c | 471 --- drivers/net/wireless/iwlwifi/iwl-phy-db.h | 82 - drivers/net/wireless/iwlwifi/iwl-prph.h | 401 -- drivers/net/wireless/iwlwifi/iwl-scd.h | 143 - drivers/net/wireless/iwlwifi/iwl-trans.c | 114 - drivers/net/wireless/iwlwifi/iwl-trans.h | 1125 ------ drivers/net/wireless/iwlwifi/mvm/Makefile | 12 - drivers/net/wireless/iwlwifi/mvm/binding.c | 211 - drivers/net/wireless/iwlwifi/mvm/coex.c | 1005 ----- drivers/net/wireless/iwlwifi/mvm/coex_legacy.c | 1315 ------ drivers/net/wireless/iwlwifi/mvm/constants.h | 139 - drivers/net/wireless/iwlwifi/mvm/d3.c | 2104 ---------- drivers/net/wireless/iwlwifi/mvm/debugfs-vif.c | 1483 ------- drivers/net/wireless/iwlwifi/mvm/debugfs.c | 1516 ------- drivers/net/wireless/iwlwifi/mvm/debugfs.h | 103 - drivers/net/wireless/iwlwifi/mvm/fw-api-coex.h | 476 --- drivers/net/wireless/iwlwifi/mvm/fw-api-d3.h | 425 -- drivers/net/wireless/iwlwifi/mvm/fw-api-mac.h | 387 -- drivers/net/wireless/iwlwifi/mvm/fw-api-power.h | 467 --- drivers/net/wireless/iwlwifi/mvm/fw-api-rs.h | 389 -- drivers/net/wireless/iwlwifi/mvm/fw-api-rx.h | 238 -- drivers/net/wireless/iwlwifi/mvm/fw-api-scan.h | 730 ---- drivers/net/wireless/iwlwifi/mvm/fw-api-sta.h | 414 -- drivers/net/wireless/iwlwifi/mvm/fw-api-stats.h | 284 -- drivers/net/wireless/iwlwifi/mvm/fw-api-tof.h | 386 -- drivers/net/wireless/iwlwifi/mvm/fw-api-tx.h | 646 --- drivers/net/wireless/iwlwifi/mvm/fw-api.h | 1773 -------- drivers/net/wireless/iwlwifi/mvm/fw.c | 1166 ------ drivers/net/wireless/iwlwifi/mvm/led.c | 136 - drivers/net/wireless/iwlwifi/mvm/mac-ctxt.c | 1452 ------- drivers/net/wireless/iwlwifi/mvm/mac80211.c | 4260 -------------------- drivers/net/wireless/iwlwifi/mvm/mvm.h | 1535 ------- drivers/net/wireless/iwlwifi/mvm/nvm.c | 864 ---- drivers/net/wireless/iwlwifi/mvm/offloading.c | 217 - drivers/net/wireless/iwlwifi/mvm/ops.c | 1434 ------- drivers/net/wireless/iwlwifi/mvm/phy-ctxt.c | 295 -- drivers/net/wireless/iwlwifi/mvm/power.c | 1040 ----- drivers/net/wireless/iwlwifi/mvm/quota.c | 328 -- drivers/net/wireless/iwlwifi/mvm/rs.c | 3983 ------------------ drivers/net/wireless/iwlwifi/mvm/rs.h | 392 -- drivers/net/wireless/iwlwifi/mvm/rx.c | 612 --- drivers/net/wireless/iwlwifi/mvm/scan.c | 1552 ------- drivers/net/wireless/iwlwifi/mvm/sf.c | 340 -- drivers/net/wireless/iwlwifi/mvm/sta.c | 1810 --------- drivers/net/wireless/iwlwifi/mvm/sta.h | 426 -- drivers/net/wireless/iwlwifi/mvm/tdls.c | 732 ---- drivers/net/wireless/iwlwifi/mvm/testmode.h | 97 - drivers/net/wireless/iwlwifi/mvm/time-event.c | 872 ---- drivers/net/wireless/iwlwifi/mvm/time-event.h | 249 -- drivers/net/wireless/iwlwifi/mvm/tof.c | 306 -- drivers/net/wireless/iwlwifi/mvm/tof.h | 94 - drivers/net/wireless/iwlwifi/mvm/tt.c | 460 --- drivers/net/wireless/iwlwifi/mvm/tx.c | 1115 ----- drivers/net/wireless/iwlwifi/mvm/utils.c | 1083 ----- drivers/net/wireless/iwlwifi/pcie/drv.c | 685 ---- drivers/net/wireless/iwlwifi/pcie/internal.h | 569 --- drivers/net/wireless/iwlwifi/pcie/rx.c | 1548 ------- drivers/net/wireless/iwlwifi/pcie/trans.c | 2825 ------------- drivers/net/wireless/iwlwifi/pcie/tx.c | 1988 --------- 249 files changed, 89833 insertions(+), 89832 deletions(-) commit 7ac9a364c1721a863ecc6cc9aba66e10114908db Author: Kalle Valo Date: Tue Nov 17 20:37:11 2015 +0200 iwlegacy: move under intel directory Part of reorganising wireless drivers directory and Kconfig. Signed-off-by: Kalle Valo MAINTAINERS | 2 +- drivers/net/wireless/Kconfig | 1 - drivers/net/wireless/Makefile | 1 - drivers/net/wireless/intel/Kconfig | 1 + drivers/net/wireless/intel/Makefile | 2 + drivers/net/wireless/intel/iwlegacy/3945-debug.c | 511 ++ drivers/net/wireless/intel/iwlegacy/3945-mac.c | 3959 +++++++++++ drivers/net/wireless/intel/iwlegacy/3945-rs.c | 979 +++ drivers/net/wireless/intel/iwlegacy/3945.c | 2741 ++++++++ drivers/net/wireless/intel/iwlegacy/3945.h | 593 ++ drivers/net/wireless/intel/iwlegacy/4965-calib.c | 934 +++ drivers/net/wireless/intel/iwlegacy/4965-debug.c | 752 +++ drivers/net/wireless/intel/iwlegacy/4965-mac.c | 6868 ++++++++++++++++++++ drivers/net/wireless/intel/iwlegacy/4965-rs.c | 2835 ++++++++ drivers/net/wireless/intel/iwlegacy/4965.c | 1950 ++++++ drivers/net/wireless/intel/iwlegacy/4965.h | 1285 ++++ drivers/net/wireless/intel/iwlegacy/Kconfig | 100 + drivers/net/wireless/intel/iwlegacy/Makefile | 17 + drivers/net/wireless/intel/iwlegacy/commands.h | 3370 ++++++++++ drivers/net/wireless/intel/iwlegacy/common.c | 5586 ++++++++++++++++ drivers/net/wireless/intel/iwlegacy/common.h | 3084 +++++++++ drivers/net/wireless/intel/iwlegacy/csr.h | 419 ++ drivers/net/wireless/intel/iwlegacy/debug.c | 1426 ++++ drivers/net/wireless/intel/iwlegacy/iwl-spectrum.h | 92 + drivers/net/wireless/intel/iwlegacy/prph.h | 522 ++ drivers/net/wireless/iwlegacy/3945-debug.c | 511 -- drivers/net/wireless/iwlegacy/3945-mac.c | 3959 ----------- drivers/net/wireless/iwlegacy/3945-rs.c | 979 --- drivers/net/wireless/iwlegacy/3945.c | 2741 -------- drivers/net/wireless/iwlegacy/3945.h | 593 -- drivers/net/wireless/iwlegacy/4965-calib.c | 934 --- drivers/net/wireless/iwlegacy/4965-debug.c | 752 --- drivers/net/wireless/iwlegacy/4965-mac.c | 6868 -------------------- drivers/net/wireless/iwlegacy/4965-rs.c | 2835 -------- drivers/net/wireless/iwlegacy/4965.c | 1950 ------ drivers/net/wireless/iwlegacy/4965.h | 1285 ---- drivers/net/wireless/iwlegacy/Kconfig | 100 - drivers/net/wireless/iwlegacy/Makefile | 17 - drivers/net/wireless/iwlegacy/commands.h | 3370 ---------- drivers/net/wireless/iwlegacy/common.c | 5586 ---------------- drivers/net/wireless/iwlegacy/common.h | 3084 --------- drivers/net/wireless/iwlegacy/csr.h | 419 -- drivers/net/wireless/iwlegacy/debug.c | 1426 ---- drivers/net/wireless/iwlegacy/iwl-spectrum.h | 92 - drivers/net/wireless/iwlegacy/prph.h | 522 -- 45 files changed, 38027 insertions(+), 38026 deletions(-) commit 367a1092b555f4372a556ddb53970d25061c74d1 Author: Kalle Valo Date: Tue Nov 17 20:24:59 2015 +0200 ipw2x00: move under intel vendor directory Part of reorganising wireless drivers directory and Kconfig. Signed-off-by: Kalle Valo MAINTAINERS | 2 +- drivers/net/wireless/Kconfig | 2 +- drivers/net/wireless/Makefile | 4 +- drivers/net/wireless/intel/Kconfig | 16 + drivers/net/wireless/intel/Makefile | 2 + drivers/net/wireless/intel/ipw2x00/Kconfig | 198 + drivers/net/wireless/intel/ipw2x00/Makefile | 14 + drivers/net/wireless/intel/ipw2x00/ipw.h | 23 + drivers/net/wireless/intel/ipw2x00/ipw2100.c | 8639 +++++++++++++ drivers/net/wireless/intel/ipw2x00/ipw2100.h | 1156 ++ drivers/net/wireless/intel/ipw2x00/ipw2200.c | 12061 +++++++++++++++++++ drivers/net/wireless/intel/ipw2x00/ipw2200.h | 2001 +++ drivers/net/wireless/intel/ipw2x00/libipw.h | 1008 ++ drivers/net/wireless/intel/ipw2x00/libipw_geo.c | 193 + drivers/net/wireless/intel/ipw2x00/libipw_module.c | 321 + drivers/net/wireless/intel/ipw2x00/libipw_rx.c | 1765 +++ drivers/net/wireless/intel/ipw2x00/libipw_tx.c | 536 + drivers/net/wireless/intel/ipw2x00/libipw_wx.c | 740 ++ drivers/net/wireless/ipw2x00/Kconfig | 198 - drivers/net/wireless/ipw2x00/Makefile | 14 - drivers/net/wireless/ipw2x00/ipw.h | 23 - drivers/net/wireless/ipw2x00/ipw2100.c | 8639 ------------- drivers/net/wireless/ipw2x00/ipw2100.h | 1156 -- drivers/net/wireless/ipw2x00/ipw2200.c | 12061 ------------------- drivers/net/wireless/ipw2x00/ipw2200.h | 2001 --- drivers/net/wireless/ipw2x00/libipw.h | 1008 -- drivers/net/wireless/ipw2x00/libipw_geo.c | 193 - drivers/net/wireless/ipw2x00/libipw_module.c | 321 - drivers/net/wireless/ipw2x00/libipw_rx.c | 1765 --- drivers/net/wireless/ipw2x00/libipw_tx.c | 536 - drivers/net/wireless/ipw2x00/libipw_wx.c | 740 -- 31 files changed, 28676 insertions(+), 28660 deletions(-) commit 560424e9a979a7b460055bda497bb4522ba5cc87 Author: Kalle Valo Date: Tue Nov 17 20:09:02 2015 +0200 cw1200: move under st vendor directory Part of reorganising wireless drivers directory and Kconfig. Signed-off-by: Kalle Valo MAINTAINERS | 2 +- drivers/net/wireless/Kconfig | 2 +- drivers/net/wireless/Makefile | 2 +- drivers/net/wireless/cw1200/Kconfig | 30 - drivers/net/wireless/cw1200/Makefile | 21 - drivers/net/wireless/cw1200/bh.c | 619 ------- drivers/net/wireless/cw1200/bh.h | 28 - drivers/net/wireless/cw1200/cw1200.h | 323 ---- drivers/net/wireless/cw1200/cw1200_sdio.c | 425 ----- drivers/net/wireless/cw1200/cw1200_spi.c | 476 ----- drivers/net/wireless/cw1200/debug.c | 430 ----- drivers/net/wireless/cw1200/debug.h | 93 - drivers/net/wireless/cw1200/fwio.c | 526 ------ drivers/net/wireless/cw1200/fwio.h | 39 - drivers/net/wireless/cw1200/hwbus.h | 33 - drivers/net/wireless/cw1200/hwio.c | 312 ---- drivers/net/wireless/cw1200/hwio.h | 247 --- drivers/net/wireless/cw1200/main.c | 601 ------- drivers/net/wireless/cw1200/pm.c | 367 ---- drivers/net/wireless/cw1200/pm.h | 43 - drivers/net/wireless/cw1200/queue.c | 581 ------- drivers/net/wireless/cw1200/queue.h | 116 -- drivers/net/wireless/cw1200/scan.c | 463 ----- drivers/net/wireless/cw1200/scan.h | 56 - drivers/net/wireless/cw1200/sta.c | 2399 -------------------------- drivers/net/wireless/cw1200/sta.h | 124 -- drivers/net/wireless/cw1200/txrx.c | 1472 ---------------- drivers/net/wireless/cw1200/txrx.h | 106 -- drivers/net/wireless/cw1200/wsm.c | 1822 ------------------- drivers/net/wireless/cw1200/wsm.h | 1870 -------------------- drivers/net/wireless/st/Kconfig | 16 + drivers/net/wireless/st/Makefile | 1 + drivers/net/wireless/st/cw1200/Kconfig | 30 + drivers/net/wireless/st/cw1200/Makefile | 21 + drivers/net/wireless/st/cw1200/bh.c | 619 +++++++ drivers/net/wireless/st/cw1200/bh.h | 28 + drivers/net/wireless/st/cw1200/cw1200.h | 323 ++++ drivers/net/wireless/st/cw1200/cw1200_sdio.c | 425 +++++ drivers/net/wireless/st/cw1200/cw1200_spi.c | 476 +++++ drivers/net/wireless/st/cw1200/debug.c | 430 +++++ drivers/net/wireless/st/cw1200/debug.h | 93 + drivers/net/wireless/st/cw1200/fwio.c | 526 ++++++ drivers/net/wireless/st/cw1200/fwio.h | 39 + drivers/net/wireless/st/cw1200/hwbus.h | 33 + drivers/net/wireless/st/cw1200/hwio.c | 312 ++++ drivers/net/wireless/st/cw1200/hwio.h | 247 +++ drivers/net/wireless/st/cw1200/main.c | 601 +++++++ drivers/net/wireless/st/cw1200/pm.c | 367 ++++ drivers/net/wireless/st/cw1200/pm.h | 43 + drivers/net/wireless/st/cw1200/queue.c | 581 +++++++ drivers/net/wireless/st/cw1200/queue.h | 116 ++ drivers/net/wireless/st/cw1200/scan.c | 463 +++++ drivers/net/wireless/st/cw1200/scan.h | 56 + drivers/net/wireless/st/cw1200/sta.c | 2399 ++++++++++++++++++++++++++ drivers/net/wireless/st/cw1200/sta.h | 124 ++ drivers/net/wireless/st/cw1200/txrx.c | 1472 ++++++++++++++++ drivers/net/wireless/st/cw1200/txrx.h | 106 ++ drivers/net/wireless/st/cw1200/wsm.c | 1822 +++++++++++++++++++ drivers/net/wireless/st/cw1200/wsm.h | 1870 ++++++++++++++++++++ 59 files changed, 13642 insertions(+), 13625 deletions(-) commit 6d8175da1f449520373945ecbcf7c733cc07df1c Author: Rodrigo Vivi Date: Thu Nov 5 10:50:22 2015 -0800 drm/i915: Rely on TEST_SINK_START instead of tracking Sink CRC state on dev_priv. Signed-off-by: Rodrigo Vivi Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp.c | 14 ++++++-------- drivers/gpu/drm/i915/intel_drv.h | 5 ----- 2 files changed, 6 insertions(+), 13 deletions(-) commit 7e38eeff6da255bf0a4dfd984b40d4615456e0a4 Author: Rodrigo Vivi Date: Thu Nov 5 10:50:21 2015 -0800 drm/i915: Stop tracking last calculated Sink CRC. It was created at 'commit aabc95dcf20 (drm/i915: Dont -ETIMEDOUT on identical new and previous (count, crc).")' becase the counter wasn't reliable. Now that we properly wait for the counter to be reset we can rely a bit more in the counter. Also that patch stopped to return -ETIMEDOUT so the test case is unable to skip when it is unreliable and end up in many fails that should be skip instead. So, with the counter more reliable we can remove this hack that just makes things more confusing when test cases are really expecting the same CRC and let test case skip if that's not the case. Signed-off-by: Rodrigo Vivi Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp.c | 39 +++++++++------------------------------ drivers/gpu/drm/i915/intel_drv.h | 2 -- 2 files changed, 9 insertions(+), 32 deletions(-) commit c6297843829469571639f04d62292d1c75676b20 Author: Rodrigo Vivi Date: Thu Nov 5 10:50:20 2015 -0800 drm/i915: Make Sink crc calculation waiting for counter to reset. According to VESA DP spec TEST_CRC_COUNT (Bits 3:0) at TEST_SINK_MISC (00246h) is "Reset to 0 when TEST_SINK bit 0 = 0; So let's give few vblanks so we are really sure that this counter is really zeroed on the next sink_crc read. Signed-off-by: Rodrigo Vivi Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) commit d72f9d919a60e5096105237a72f046b7a20fb53f Author: Rodrigo Vivi Date: Thu Nov 5 10:50:19 2015 -0800 drm/i915: Allow 1 vblank to let Sink CRC calculation to start or stop. According to VESA DP Spec, setting TEST_SINK_START (bit 0) of TEST_SINK (00270h) "Stop/Start calculating CRC on the next frame" So let's wait at least 1 vblank to really say the calculation stopped or started. Signed-off-by: Rodrigo Vivi Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp.c | 4 ++++ 1 file changed, 4 insertions(+) commit 05491d2ccf20b20a1375303441fbbfbd12b24a4f Author: Kalle Valo Date: Tue Nov 17 19:52:05 2015 +0200 brcm80211: move under broadcom vendor directory Part of reorganising wireless drivers directory and Kconfig. Note that I had to edit Makefiles from subdirectories to use the new location. Signed-off-by: Kalle Valo MAINTAINERS | 2 +- drivers/net/wireless/Kconfig | 1 - drivers/net/wireless/Makefile | 3 - drivers/net/wireless/brcm80211/Kconfig | 87 - drivers/net/wireless/brcm80211/Makefile | 23 - drivers/net/wireless/brcm80211/brcmfmac/Makefile | 57 - drivers/net/wireless/brcm80211/brcmfmac/bcdc.c | 389 - drivers/net/wireless/brcm80211/brcmfmac/bcdc.h | 27 - drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c | 1380 - drivers/net/wireless/brcm80211/brcmfmac/btcoex.c | 497 - drivers/net/wireless/brcm80211/brcmfmac/btcoex.h | 29 - drivers/net/wireless/brcm80211/brcmfmac/bus.h | 248 - drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c | 6357 ---- drivers/net/wireless/brcm80211/brcmfmac/cfg80211.h | 504 - drivers/net/wireless/brcm80211/brcmfmac/chip.c | 1331 - drivers/net/wireless/brcm80211/brcmfmac/chip.h | 94 - drivers/net/wireless/brcm80211/brcmfmac/common.c | 198 - drivers/net/wireless/brcm80211/brcmfmac/common.h | 23 - .../net/wireless/brcm80211/brcmfmac/commonring.c | 252 - .../net/wireless/brcm80211/brcmfmac/commonring.h | 72 - drivers/net/wireless/brcm80211/brcmfmac/core.c | 1260 - drivers/net/wireless/brcm80211/brcmfmac/core.h | 221 - drivers/net/wireless/brcm80211/brcmfmac/debug.c | 111 - drivers/net/wireless/brcm80211/brcmfmac/debug.h | 139 - drivers/net/wireless/brcm80211/brcmfmac/feature.c | 172 - drivers/net/wireless/brcm80211/brcmfmac/feature.h | 94 - drivers/net/wireless/brcm80211/brcmfmac/firmware.c | 542 - drivers/net/wireless/brcm80211/brcmfmac/firmware.h | 47 - drivers/net/wireless/brcm80211/brcmfmac/flowring.c | 504 - drivers/net/wireless/brcm80211/brcmfmac/flowring.h | 84 - drivers/net/wireless/brcm80211/brcmfmac/fweh.c | 478 - drivers/net/wireless/brcm80211/brcmfmac/fweh.h | 289 - drivers/net/wireless/brcm80211/brcmfmac/fwil.c | 420 - drivers/net/wireless/brcm80211/brcmfmac/fwil.h | 106 - .../net/wireless/brcm80211/brcmfmac/fwil_types.h | 637 - drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c | 2271 -- drivers/net/wireless/brcm80211/brcmfmac/fwsignal.h | 33 - drivers/net/wireless/brcm80211/brcmfmac/msgbuf.c | 1561 - drivers/net/wireless/brcm80211/brcmfmac/msgbuf.h | 47 - drivers/net/wireless/brcm80211/brcmfmac/of.c | 59 - drivers/net/wireless/brcm80211/brcmfmac/of.h | 22 - drivers/net/wireless/brcm80211/brcmfmac/p2p.c | 2401 -- drivers/net/wireless/brcm80211/brcmfmac/p2p.h | 187 - drivers/net/wireless/brcm80211/brcmfmac/pcie.c | 2107 -- drivers/net/wireless/brcm80211/brcmfmac/pcie.h | 29 - drivers/net/wireless/brcm80211/brcmfmac/proto.c | 81 - drivers/net/wireless/brcm80211/brcmfmac/proto.h | 96 - drivers/net/wireless/brcm80211/brcmfmac/sdio.c | 4376 --- drivers/net/wireless/brcm80211/brcmfmac/sdio.h | 377 - .../net/wireless/brcm80211/brcmfmac/tracepoint.c | 37 - .../net/wireless/brcm80211/brcmfmac/tracepoint.h | 152 - drivers/net/wireless/brcm80211/brcmfmac/usb.c | 1535 - drivers/net/wireless/brcm80211/brcmfmac/usb.h | 53 - drivers/net/wireless/brcm80211/brcmfmac/vendor.c | 127 - drivers/net/wireless/brcm80211/brcmfmac/vendor.h | 64 - drivers/net/wireless/brcm80211/brcmsmac/Makefile | 48 - drivers/net/wireless/brcm80211/brcmsmac/aiutils.c | 710 - drivers/net/wireless/brcm80211/brcmsmac/aiutils.h | 229 - drivers/net/wireless/brcm80211/brcmsmac/ampdu.c | 1144 - drivers/net/wireless/brcm80211/brcmsmac/ampdu.h | 53 - drivers/net/wireless/brcm80211/brcmsmac/antsel.c | 309 - drivers/net/wireless/brcm80211/brcmsmac/antsel.h | 27 - .../brcm80211/brcmsmac/brcms_trace_brcmsmac.h | 102 - .../brcm80211/brcmsmac/brcms_trace_brcmsmac_msg.h | 88 - .../brcm80211/brcmsmac/brcms_trace_brcmsmac_tx.h | 110 - .../brcm80211/brcmsmac/brcms_trace_events.c | 23 - .../brcm80211/brcmsmac/brcms_trace_events.h | 40 - drivers/net/wireless/brcm80211/brcmsmac/channel.c | 774 - drivers/net/wireless/brcm80211/brcmsmac/channel.h | 47 - drivers/net/wireless/brcm80211/brcmsmac/d11.h | 1902 -- drivers/net/wireless/brcm80211/brcmsmac/debug.c | 270 - drivers/net/wireless/brcm80211/brcmsmac/debug.h | 76 - drivers/net/wireless/brcm80211/brcmsmac/dma.c | 1564 - drivers/net/wireless/brcm80211/brcmsmac/dma.h | 125 - drivers/net/wireless/brcm80211/brcmsmac/led.c | 126 - drivers/net/wireless/brcm80211/brcmsmac/led.h | 36 - .../net/wireless/brcm80211/brcmsmac/mac80211_if.c | 1700 -- .../net/wireless/brcm80211/brcmsmac/mac80211_if.h | 113 - drivers/net/wireless/brcm80211/brcmsmac/main.c | 8139 ------ drivers/net/wireless/brcm80211/brcmsmac/main.h | 669 - .../net/wireless/brcm80211/brcmsmac/phy/phy_cmn.c | 2953 -- .../net/wireless/brcm80211/brcmsmac/phy/phy_hal.h | 284 - .../net/wireless/brcm80211/brcmsmac/phy/phy_int.h | 1142 - .../net/wireless/brcm80211/brcmsmac/phy/phy_lcn.c | 5247 ---- .../net/wireless/brcm80211/brcmsmac/phy/phy_lcn.h | 121 - .../net/wireless/brcm80211/brcmsmac/phy/phy_n.c | 28721 ------------------- .../wireless/brcm80211/brcmsmac/phy/phy_qmath.c | 308 - .../wireless/brcm80211/brcmsmac/phy/phy_qmath.h | 42 - .../wireless/brcm80211/brcmsmac/phy/phy_radio.h | 1533 - .../net/wireless/brcm80211/brcmsmac/phy/phyreg_n.h | 167 - .../wireless/brcm80211/brcmsmac/phy/phytbl_lcn.c | 3293 --- .../wireless/brcm80211/brcmsmac/phy/phytbl_lcn.h | 55 - .../net/wireless/brcm80211/brcmsmac/phy/phytbl_n.c | 10630 ------- .../net/wireless/brcm80211/brcmsmac/phy/phytbl_n.h | 50 - drivers/net/wireless/brcm80211/brcmsmac/phy_shim.c | 216 - drivers/net/wireless/brcm80211/brcmsmac/phy_shim.h | 172 - drivers/net/wireless/brcm80211/brcmsmac/pmu.c | 165 - drivers/net/wireless/brcm80211/brcmsmac/pmu.h | 26 - drivers/net/wireless/brcm80211/brcmsmac/pub.h | 341 - drivers/net/wireless/brcm80211/brcmsmac/rate.c | 514 - drivers/net/wireless/brcm80211/brcmsmac/rate.h | 245 - drivers/net/wireless/brcm80211/brcmsmac/scb.h | 81 - drivers/net/wireless/brcm80211/brcmsmac/stf.c | 440 - drivers/net/wireless/brcm80211/brcmsmac/stf.h | 37 - drivers/net/wireless/brcm80211/brcmsmac/types.h | 303 - .../net/wireless/brcm80211/brcmsmac/ucode_loader.c | 109 - .../net/wireless/brcm80211/brcmsmac/ucode_loader.h | 56 - drivers/net/wireless/brcm80211/brcmutil/Makefile | 23 - drivers/net/wireless/brcm80211/brcmutil/d11.c | 221 - drivers/net/wireless/brcm80211/brcmutil/utils.c | 339 - .../net/wireless/brcm80211/include/brcm_hw_ids.h | 93 - drivers/net/wireless/brcm80211/include/brcmu_d11.h | 145 - .../net/wireless/brcm80211/include/brcmu_utils.h | 227 - .../net/wireless/brcm80211/include/brcmu_wifi.h | 274 - .../net/wireless/brcm80211/include/chipcommon.h | 303 - drivers/net/wireless/brcm80211/include/defs.h | 105 - drivers/net/wireless/brcm80211/include/soc.h | 36 - drivers/net/wireless/broadcom/Kconfig | 1 + drivers/net/wireless/broadcom/Makefile | 3 + drivers/net/wireless/broadcom/brcm80211/Kconfig | 87 + drivers/net/wireless/broadcom/brcm80211/Makefile | 23 + .../wireless/broadcom/brcm80211/brcmfmac/Makefile | 57 + .../wireless/broadcom/brcm80211/brcmfmac/bcdc.c | 389 + .../wireless/broadcom/brcm80211/brcmfmac/bcdc.h | 27 + .../wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 1380 + .../wireless/broadcom/brcm80211/brcmfmac/btcoex.c | 497 + .../wireless/broadcom/brcm80211/brcmfmac/btcoex.h | 29 + .../net/wireless/broadcom/brcm80211/brcmfmac/bus.h | 248 + .../broadcom/brcm80211/brcmfmac/cfg80211.c | 6357 ++++ .../broadcom/brcm80211/brcmfmac/cfg80211.h | 504 + .../wireless/broadcom/brcm80211/brcmfmac/chip.c | 1331 + .../wireless/broadcom/brcm80211/brcmfmac/chip.h | 94 + .../wireless/broadcom/brcm80211/brcmfmac/common.c | 198 + .../wireless/broadcom/brcm80211/brcmfmac/common.h | 23 + .../broadcom/brcm80211/brcmfmac/commonring.c | 252 + .../broadcom/brcm80211/brcmfmac/commonring.h | 72 + .../wireless/broadcom/brcm80211/brcmfmac/core.c | 1260 + .../wireless/broadcom/brcm80211/brcmfmac/core.h | 221 + .../wireless/broadcom/brcm80211/brcmfmac/debug.c | 111 + .../wireless/broadcom/brcm80211/brcmfmac/debug.h | 139 + .../wireless/broadcom/brcm80211/brcmfmac/feature.c | 172 + .../wireless/broadcom/brcm80211/brcmfmac/feature.h | 94 + .../broadcom/brcm80211/brcmfmac/firmware.c | 542 + .../broadcom/brcm80211/brcmfmac/firmware.h | 47 + .../broadcom/brcm80211/brcmfmac/flowring.c | 504 + .../broadcom/brcm80211/brcmfmac/flowring.h | 84 + .../wireless/broadcom/brcm80211/brcmfmac/fweh.c | 478 + .../wireless/broadcom/brcm80211/brcmfmac/fweh.h | 289 + .../wireless/broadcom/brcm80211/brcmfmac/fwil.c | 420 + .../wireless/broadcom/brcm80211/brcmfmac/fwil.h | 106 + .../broadcom/brcm80211/brcmfmac/fwil_types.h | 637 + .../broadcom/brcm80211/brcmfmac/fwsignal.c | 2271 ++ .../broadcom/brcm80211/brcmfmac/fwsignal.h | 33 + .../wireless/broadcom/brcm80211/brcmfmac/msgbuf.c | 1561 + .../wireless/broadcom/brcm80211/brcmfmac/msgbuf.h | 47 + .../net/wireless/broadcom/brcm80211/brcmfmac/of.c | 59 + .../net/wireless/broadcom/brcm80211/brcmfmac/of.h | 22 + .../net/wireless/broadcom/brcm80211/brcmfmac/p2p.c | 2401 ++ .../net/wireless/broadcom/brcm80211/brcmfmac/p2p.h | 187 + .../wireless/broadcom/brcm80211/brcmfmac/pcie.c | 2107 ++ .../wireless/broadcom/brcm80211/brcmfmac/pcie.h | 29 + .../wireless/broadcom/brcm80211/brcmfmac/proto.c | 81 + .../wireless/broadcom/brcm80211/brcmfmac/proto.h | 96 + .../wireless/broadcom/brcm80211/brcmfmac/sdio.c | 4376 +++ .../wireless/broadcom/brcm80211/brcmfmac/sdio.h | 377 + .../broadcom/brcm80211/brcmfmac/tracepoint.c | 37 + .../broadcom/brcm80211/brcmfmac/tracepoint.h | 152 + .../net/wireless/broadcom/brcm80211/brcmfmac/usb.c | 1535 + .../net/wireless/broadcom/brcm80211/brcmfmac/usb.h | 53 + .../wireless/broadcom/brcm80211/brcmfmac/vendor.c | 127 + .../wireless/broadcom/brcm80211/brcmfmac/vendor.h | 64 + .../wireless/broadcom/brcm80211/brcmsmac/Makefile | 48 + .../wireless/broadcom/brcm80211/brcmsmac/aiutils.c | 710 + .../wireless/broadcom/brcm80211/brcmsmac/aiutils.h | 229 + .../wireless/broadcom/brcm80211/brcmsmac/ampdu.c | 1144 + .../wireless/broadcom/brcm80211/brcmsmac/ampdu.h | 53 + .../wireless/broadcom/brcm80211/brcmsmac/antsel.c | 309 + .../wireless/broadcom/brcm80211/brcmsmac/antsel.h | 27 + .../brcm80211/brcmsmac/brcms_trace_brcmsmac.h | 102 + .../brcm80211/brcmsmac/brcms_trace_brcmsmac_msg.h | 88 + .../brcm80211/brcmsmac/brcms_trace_brcmsmac_tx.h | 110 + .../brcm80211/brcmsmac/brcms_trace_events.c | 23 + .../brcm80211/brcmsmac/brcms_trace_events.h | 40 + .../wireless/broadcom/brcm80211/brcmsmac/channel.c | 774 + .../wireless/broadcom/brcm80211/brcmsmac/channel.h | 47 + .../net/wireless/broadcom/brcm80211/brcmsmac/d11.h | 1902 ++ .../wireless/broadcom/brcm80211/brcmsmac/debug.c | 270 + .../wireless/broadcom/brcm80211/brcmsmac/debug.h | 76 + .../net/wireless/broadcom/brcm80211/brcmsmac/dma.c | 1564 + .../net/wireless/broadcom/brcm80211/brcmsmac/dma.h | 125 + .../net/wireless/broadcom/brcm80211/brcmsmac/led.c | 126 + .../net/wireless/broadcom/brcm80211/brcmsmac/led.h | 36 + .../broadcom/brcm80211/brcmsmac/mac80211_if.c | 1700 ++ .../broadcom/brcm80211/brcmsmac/mac80211_if.h | 113 + .../wireless/broadcom/brcm80211/brcmsmac/main.c | 8139 ++++++ .../wireless/broadcom/brcm80211/brcmsmac/main.h | 669 + .../broadcom/brcm80211/brcmsmac/phy/phy_cmn.c | 2953 ++ .../broadcom/brcm80211/brcmsmac/phy/phy_hal.h | 284 + .../broadcom/brcm80211/brcmsmac/phy/phy_int.h | 1142 + .../broadcom/brcm80211/brcmsmac/phy/phy_lcn.c | 5247 ++++ .../broadcom/brcm80211/brcmsmac/phy/phy_lcn.h | 121 + .../broadcom/brcm80211/brcmsmac/phy/phy_n.c | 28721 +++++++++++++++++++ .../broadcom/brcm80211/brcmsmac/phy/phy_qmath.c | 308 + .../broadcom/brcm80211/brcmsmac/phy/phy_qmath.h | 42 + .../broadcom/brcm80211/brcmsmac/phy/phy_radio.h | 1533 + .../broadcom/brcm80211/brcmsmac/phy/phyreg_n.h | 167 + .../broadcom/brcm80211/brcmsmac/phy/phytbl_lcn.c | 3293 +++ .../broadcom/brcm80211/brcmsmac/phy/phytbl_lcn.h | 55 + .../broadcom/brcm80211/brcmsmac/phy/phytbl_n.c | 10630 +++++++ .../broadcom/brcm80211/brcmsmac/phy/phytbl_n.h | 50 + .../broadcom/brcm80211/brcmsmac/phy_shim.c | 216 + .../broadcom/brcm80211/brcmsmac/phy_shim.h | 172 + .../net/wireless/broadcom/brcm80211/brcmsmac/pmu.c | 165 + .../net/wireless/broadcom/brcm80211/brcmsmac/pmu.h | 26 + .../net/wireless/broadcom/brcm80211/brcmsmac/pub.h | 341 + .../wireless/broadcom/brcm80211/brcmsmac/rate.c | 514 + .../wireless/broadcom/brcm80211/brcmsmac/rate.h | 245 + .../net/wireless/broadcom/brcm80211/brcmsmac/scb.h | 81 + .../net/wireless/broadcom/brcm80211/brcmsmac/stf.c | 440 + .../net/wireless/broadcom/brcm80211/brcmsmac/stf.h | 37 + .../wireless/broadcom/brcm80211/brcmsmac/types.h | 303 + .../broadcom/brcm80211/brcmsmac/ucode_loader.c | 109 + .../broadcom/brcm80211/brcmsmac/ucode_loader.h | 56 + .../wireless/broadcom/brcm80211/brcmutil/Makefile | 23 + .../net/wireless/broadcom/brcm80211/brcmutil/d11.c | 221 + .../wireless/broadcom/brcm80211/brcmutil/utils.c | 339 + .../broadcom/brcm80211/include/brcm_hw_ids.h | 93 + .../broadcom/brcm80211/include/brcmu_d11.h | 145 + .../broadcom/brcm80211/include/brcmu_utils.h | 227 + .../broadcom/brcm80211/include/brcmu_wifi.h | 274 + .../broadcom/brcm80211/include/chipcommon.h | 303 + .../net/wireless/broadcom/brcm80211/include/defs.h | 105 + .../net/wireless/broadcom/brcm80211/include/soc.h | 36 + 233 files changed, 109733 insertions(+), 109733 deletions(-) commit 423e3ce336499ddb4e094f40649d12d9820f785b Author: Kalle Valo Date: Tue Nov 17 19:49:26 2015 +0200 b43legacy: move under broadcom vendor directory Part of reorganising wireless drivers directory and Kconfig. Signed-off-by: Kalle Valo MAINTAINERS | 2 +- drivers/net/wireless/Kconfig | 1 - drivers/net/wireless/Makefile | 1 - drivers/net/wireless/b43legacy/Kconfig | 104 - drivers/net/wireless/b43legacy/Makefile | 19 - drivers/net/wireless/b43legacy/b43legacy.h | 858 ----- drivers/net/wireless/b43legacy/debugfs.c | 500 --- drivers/net/wireless/b43legacy/debugfs.h | 89 - drivers/net/wireless/b43legacy/dma.c | 1455 ------- drivers/net/wireless/b43legacy/dma.h | 231 -- drivers/net/wireless/b43legacy/ilt.c | 336 -- drivers/net/wireless/b43legacy/ilt.h | 34 - drivers/net/wireless/b43legacy/leds.c | 243 -- drivers/net/wireless/b43legacy/leds.h | 63 - drivers/net/wireless/b43legacy/main.c | 4062 -------------------- drivers/net/wireless/b43legacy/main.h | 127 - drivers/net/wireless/b43legacy/phy.c | 2258 ----------- drivers/net/wireless/b43legacy/phy.h | 209 - drivers/net/wireless/b43legacy/pio.c | 695 ---- drivers/net/wireless/b43legacy/pio.h | 158 - drivers/net/wireless/b43legacy/radio.c | 2143 ----------- drivers/net/wireless/b43legacy/radio.h | 97 - drivers/net/wireless/b43legacy/rfkill.c | 91 - drivers/net/wireless/b43legacy/rfkill.h | 11 - drivers/net/wireless/b43legacy/sysfs.c | 238 -- drivers/net/wireless/b43legacy/sysfs.h | 9 - drivers/net/wireless/b43legacy/xmit.c | 664 ---- drivers/net/wireless/b43legacy/xmit.h | 261 -- drivers/net/wireless/broadcom/Kconfig | 1 + drivers/net/wireless/broadcom/Makefile | 1 + drivers/net/wireless/broadcom/b43legacy/Kconfig | 104 + drivers/net/wireless/broadcom/b43legacy/Makefile | 19 + .../net/wireless/broadcom/b43legacy/b43legacy.h | 858 +++++ drivers/net/wireless/broadcom/b43legacy/debugfs.c | 500 +++ drivers/net/wireless/broadcom/b43legacy/debugfs.h | 89 + drivers/net/wireless/broadcom/b43legacy/dma.c | 1455 +++++++ drivers/net/wireless/broadcom/b43legacy/dma.h | 231 ++ drivers/net/wireless/broadcom/b43legacy/ilt.c | 336 ++ drivers/net/wireless/broadcom/b43legacy/ilt.h | 34 + drivers/net/wireless/broadcom/b43legacy/leds.c | 243 ++ drivers/net/wireless/broadcom/b43legacy/leds.h | 63 + drivers/net/wireless/broadcom/b43legacy/main.c | 4062 ++++++++++++++++++++ drivers/net/wireless/broadcom/b43legacy/main.h | 127 + drivers/net/wireless/broadcom/b43legacy/phy.c | 2258 +++++++++++ drivers/net/wireless/broadcom/b43legacy/phy.h | 209 + drivers/net/wireless/broadcom/b43legacy/pio.c | 695 ++++ drivers/net/wireless/broadcom/b43legacy/pio.h | 158 + drivers/net/wireless/broadcom/b43legacy/radio.c | 2143 +++++++++++ drivers/net/wireless/broadcom/b43legacy/radio.h | 97 + drivers/net/wireless/broadcom/b43legacy/rfkill.c | 91 + drivers/net/wireless/broadcom/b43legacy/rfkill.h | 11 + drivers/net/wireless/broadcom/b43legacy/sysfs.c | 238 ++ drivers/net/wireless/broadcom/b43legacy/sysfs.h | 9 + drivers/net/wireless/broadcom/b43legacy/xmit.c | 664 ++++ drivers/net/wireless/broadcom/b43legacy/xmit.h | 261 ++ 55 files changed, 14958 insertions(+), 14958 deletions(-) commit 58619b14d106e453e3924810fac16a8644b04db1 Author: Kalle Valo Date: Tue Nov 17 19:49:23 2015 +0200 b43: move under broadcom vendor directory Part of reorganising wireless drivers directory and Kconfig. Signed-off-by: Kalle Valo MAINTAINERS | 2 +- drivers/net/wireless/Kconfig | 2 +- drivers/net/wireless/Makefile | 2 +- drivers/net/wireless/b43/Kconfig | 187 - drivers/net/wireless/b43/Makefile | 27 - drivers/net/wireless/b43/b43.h | 1108 -- drivers/net/wireless/b43/bus.c | 265 - drivers/net/wireless/b43/bus.h | 95 - drivers/net/wireless/b43/debugfs.c | 826 -- drivers/net/wireless/b43/debugfs.h | 111 - drivers/net/wireless/b43/dma.c | 1831 ---- drivers/net/wireless/b43/dma.h | 305 - drivers/net/wireless/b43/leds.c | 359 - drivers/net/wireless/b43/leds.h | 94 - drivers/net/wireless/b43/lo.c | 1016 -- drivers/net/wireless/b43/lo.h | 87 - drivers/net/wireless/b43/main.c | 5895 ----------- drivers/net/wireless/b43/main.h | 112 - drivers/net/wireless/b43/phy_a.c | 595 -- drivers/net/wireless/b43/phy_a.h | 126 - drivers/net/wireless/b43/phy_ac.c | 92 - drivers/net/wireless/b43/phy_ac.h | 38 - drivers/net/wireless/b43/phy_common.c | 653 -- drivers/net/wireless/b43/phy_common.h | 457 - drivers/net/wireless/b43/phy_g.c | 3055 ------ drivers/net/wireless/b43/phy_g.h | 208 - drivers/net/wireless/b43/phy_ht.c | 1153 --- drivers/net/wireless/b43/phy_ht.h | 141 - drivers/net/wireless/b43/phy_lcn.c | 855 -- drivers/net/wireless/b43/phy_lcn.h | 31 - drivers/net/wireless/b43/phy_lp.c | 2716 ----- drivers/net/wireless/b43/phy_lp.h | 912 -- drivers/net/wireless/b43/phy_n.c | 6726 ------------ drivers/net/wireless/b43/phy_n.h | 1007 -- drivers/net/wireless/b43/pio.c | 834 -- drivers/net/wireless/b43/pio.h | 165 - drivers/net/wireless/b43/ppr.c | 199 - drivers/net/wireless/b43/ppr.h | 45 - drivers/net/wireless/b43/radio_2055.c | 1335 --- drivers/net/wireless/b43/radio_2055.h | 259 - drivers/net/wireless/b43/radio_2056.c | 10318 ------------------- drivers/net/wireless/b43/radio_2056.h | 1100 -- drivers/net/wireless/b43/radio_2057.c | 637 -- drivers/net/wireless/b43/radio_2057.h | 506 - drivers/net/wireless/b43/radio_2059.c | 364 - drivers/net/wireless/b43/radio_2059.h | 60 - drivers/net/wireless/b43/rfkill.c | 70 - drivers/net/wireless/b43/rfkill.h | 11 - drivers/net/wireless/b43/sdio.c | 207 - drivers/net/wireless/b43/sdio.h | 45 - drivers/net/wireless/b43/sysfs.c | 155 - drivers/net/wireless/b43/sysfs.h | 9 - drivers/net/wireless/b43/tables.c | 466 - drivers/net/wireless/b43/tables.h | 34 - drivers/net/wireless/b43/tables_lpphy.c | 2456 ----- drivers/net/wireless/b43/tables_lpphy.h | 44 - drivers/net/wireless/b43/tables_nphy.c | 3878 ------- drivers/net/wireless/b43/tables_nphy.h | 222 - drivers/net/wireless/b43/tables_phy_ht.c | 836 -- drivers/net/wireless/b43/tables_phy_ht.h | 26 - drivers/net/wireless/b43/tables_phy_lcn.c | 724 -- drivers/net/wireless/b43/tables_phy_lcn.h | 24 - drivers/net/wireless/b43/wa.c | 634 -- drivers/net/wireless/b43/wa.h | 7 - drivers/net/wireless/b43/xmit.c | 947 -- drivers/net/wireless/b43/xmit.h | 416 - drivers/net/wireless/broadcom/Kconfig | 16 + drivers/net/wireless/broadcom/Makefile | 1 + drivers/net/wireless/broadcom/b43/Kconfig | 187 + drivers/net/wireless/broadcom/b43/Makefile | 27 + drivers/net/wireless/broadcom/b43/b43.h | 1108 ++ drivers/net/wireless/broadcom/b43/bus.c | 265 + drivers/net/wireless/broadcom/b43/bus.h | 95 + drivers/net/wireless/broadcom/b43/debugfs.c | 826 ++ drivers/net/wireless/broadcom/b43/debugfs.h | 111 + drivers/net/wireless/broadcom/b43/dma.c | 1831 ++++ drivers/net/wireless/broadcom/b43/dma.h | 305 + drivers/net/wireless/broadcom/b43/leds.c | 359 + drivers/net/wireless/broadcom/b43/leds.h | 94 + drivers/net/wireless/broadcom/b43/lo.c | 1016 ++ drivers/net/wireless/broadcom/b43/lo.h | 87 + drivers/net/wireless/broadcom/b43/main.c | 5895 +++++++++++ drivers/net/wireless/broadcom/b43/main.h | 112 + drivers/net/wireless/broadcom/b43/phy_a.c | 595 ++ drivers/net/wireless/broadcom/b43/phy_a.h | 126 + drivers/net/wireless/broadcom/b43/phy_ac.c | 92 + drivers/net/wireless/broadcom/b43/phy_ac.h | 38 + drivers/net/wireless/broadcom/b43/phy_common.c | 653 ++ drivers/net/wireless/broadcom/b43/phy_common.h | 457 + drivers/net/wireless/broadcom/b43/phy_g.c | 3055 ++++++ drivers/net/wireless/broadcom/b43/phy_g.h | 208 + drivers/net/wireless/broadcom/b43/phy_ht.c | 1153 +++ drivers/net/wireless/broadcom/b43/phy_ht.h | 141 + drivers/net/wireless/broadcom/b43/phy_lcn.c | 855 ++ drivers/net/wireless/broadcom/b43/phy_lcn.h | 31 + drivers/net/wireless/broadcom/b43/phy_lp.c | 2716 +++++ drivers/net/wireless/broadcom/b43/phy_lp.h | 912 ++ drivers/net/wireless/broadcom/b43/phy_n.c | 6726 ++++++++++++ drivers/net/wireless/broadcom/b43/phy_n.h | 1007 ++ drivers/net/wireless/broadcom/b43/pio.c | 834 ++ drivers/net/wireless/broadcom/b43/pio.h | 165 + drivers/net/wireless/broadcom/b43/ppr.c | 199 + drivers/net/wireless/broadcom/b43/ppr.h | 45 + drivers/net/wireless/broadcom/b43/radio_2055.c | 1335 +++ drivers/net/wireless/broadcom/b43/radio_2055.h | 259 + drivers/net/wireless/broadcom/b43/radio_2056.c | 10318 +++++++++++++++++++ drivers/net/wireless/broadcom/b43/radio_2056.h | 1100 ++ drivers/net/wireless/broadcom/b43/radio_2057.c | 637 ++ drivers/net/wireless/broadcom/b43/radio_2057.h | 506 + drivers/net/wireless/broadcom/b43/radio_2059.c | 364 + drivers/net/wireless/broadcom/b43/radio_2059.h | 60 + drivers/net/wireless/broadcom/b43/rfkill.c | 70 + drivers/net/wireless/broadcom/b43/rfkill.h | 11 + drivers/net/wireless/broadcom/b43/sdio.c | 207 + drivers/net/wireless/broadcom/b43/sdio.h | 45 + drivers/net/wireless/broadcom/b43/sysfs.c | 155 + drivers/net/wireless/broadcom/b43/sysfs.h | 9 + drivers/net/wireless/broadcom/b43/tables.c | 466 + drivers/net/wireless/broadcom/b43/tables.h | 34 + drivers/net/wireless/broadcom/b43/tables_lpphy.c | 2456 +++++ drivers/net/wireless/broadcom/b43/tables_lpphy.h | 44 + drivers/net/wireless/broadcom/b43/tables_nphy.c | 3878 +++++++ drivers/net/wireless/broadcom/b43/tables_nphy.h | 222 + drivers/net/wireless/broadcom/b43/tables_phy_ht.c | 836 ++ drivers/net/wireless/broadcom/b43/tables_phy_ht.h | 26 + drivers/net/wireless/broadcom/b43/tables_phy_lcn.c | 724 ++ drivers/net/wireless/broadcom/b43/tables_phy_lcn.h | 24 + drivers/net/wireless/broadcom/b43/wa.c | 634 ++ drivers/net/wireless/broadcom/b43/wa.h | 7 + drivers/net/wireless/broadcom/b43/xmit.c | 947 ++ drivers/net/wireless/broadcom/b43/xmit.h | 416 + 131 files changed, 58136 insertions(+), 58119 deletions(-) commit 30fe0f9b8c755d9aab04bb7c98ce9c7835c3bd24 Author: Kalle Valo Date: Tue Nov 17 19:49:20 2015 +0200 atmel: move under atmel vendor directory Part of reorganising wireless drivers directory and Kconfig. Signed-off-by: Kalle Valo MAINTAINERS | 2 +- drivers/net/wireless/Kconfig | 44 +- drivers/net/wireless/Makefile | 7 +- drivers/net/wireless/at76c50x-usb.c | 2617 ----------------- drivers/net/wireless/at76c50x-usb.h | 466 --- drivers/net/wireless/atmel.c | 4549 ----------------------------- drivers/net/wireless/atmel.h | 43 - drivers/net/wireless/atmel/Kconfig | 57 + drivers/net/wireless/atmel/Makefile | 5 + drivers/net/wireless/atmel/at76c50x-usb.c | 2617 +++++++++++++++++ drivers/net/wireless/atmel/at76c50x-usb.h | 466 +++ drivers/net/wireless/atmel/atmel.c | 4549 +++++++++++++++++++++++++++++ drivers/net/wireless/atmel/atmel.h | 43 + drivers/net/wireless/atmel/atmel_cs.c | 286 ++ drivers/net/wireless/atmel/atmel_pci.c | 76 + drivers/net/wireless/atmel_cs.c | 286 -- drivers/net/wireless/atmel_pci.c | 76 - 17 files changed, 8102 insertions(+), 8087 deletions(-) commit 30db0ca8bc78e9ba98c6c71edcd46ff6dd21cbf6 Author: Kalle Valo Date: Tue Nov 17 19:49:19 2015 +0200 airo: move under cisco vendor directory Part of reorganising wireless drivers directory and Kconfig. Signed-off-by: Kalle Valo drivers/net/wireless/Kconfig | 43 +- drivers/net/wireless/Makefile | 4 +- drivers/net/wireless/airo.c | 8236 ---------------------------------- drivers/net/wireless/airo.h | 9 - drivers/net/wireless/airo_cs.c | 222 - drivers/net/wireless/cisco/Kconfig | 56 + drivers/net/wireless/cisco/Makefile | 2 + drivers/net/wireless/cisco/airo.c | 8236 ++++++++++++++++++++++++++++++++++ drivers/net/wireless/cisco/airo.h | 9 + drivers/net/wireless/cisco/airo_cs.c | 222 + 10 files changed, 8527 insertions(+), 8512 deletions(-) commit 59df9bb25cf8a13443b8335a7a9013817c050b88 Author: Fabio Estevam Date: Wed Nov 4 08:13:00 2015 -0200 nxp-nci: i2c: Do not check specifically for -EREMOTEIO error Function nxp_nci_i2c_write currently assumes in case of I2C bus NACK that the NFC device is in stand-by mode and will retry the I2C transaction after a pause. This assumes that the first failed I2C transaction will wake-up the device. This is done by checking on EREMOTEIO, which is wrong. According to Documentation/i2c/fault-codes ENXIO shall be used. Unfortunately the NOACK return code is currently inconsistent across various I2C host controller drivers. So only check for the generic error case instead. This is a temporary fix. As soon as all I2C bus master drivers are fixed to consistently return 'ENXIO', then we can do the specific error check again. Signed-off-by: Fabio Estevam Signed-off-by: Samuel Ortiz drivers/nfc/nxp-nci/i2c.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fc5adbebac6ffab461492f7a415648b29b1a3b31 Author: Wang YanQing Date: Fri Oct 30 00:36:33 2015 +0800 Documentation: mtd: improve nand_ecc.txt for readability and correctness This patch correct some representation errors, add a little clarification in some places, and fix indentation problems for pseudo code. It also delete one more white space for one place. Signed-off-by: Wang YanQing [Brian: a few tweaks] Signed-off-by: Brian Norris Documentation/mtd/nand_ecc.txt | 58 +++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 29 deletions(-) commit e42852bf88144affc227884b62637118ba74b783 Author: Yaowei Bai Date: Tue Nov 17 15:25:24 2015 +0800 security/capability.h: cap_issubset/isclear can be boolean This patch makes cap_issubset/isclear return bool due to these functions only using either one or zero as their return value. No functional change. Signed-off-by: Yaowei Bai Acked-by: Serge Hallyn Signed-off-by: James Morris include/linux/capability.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit f70be6dac6c39c939cef82e068b7e94aca96dc99 Author: Yaowei Bai Date: Tue Nov 17 15:25:23 2015 +0800 security: remove unused cap_is_fs_cap function Since commit 3bc1fa8a ("LSM: remove BSD secure level security module") there is no user of cap_is_fs_cap any more, so remove it. Signed-off-by: Yaowei Bai Acked-by: Serge Hallyn Signed-off-by: James Morris include/linux/capability.h | 6 ------ 1 file changed, 6 deletions(-) commit e3f8f77c41ceaf899351e2085b039610038ac2b9 Author: Erik Arfvidson Date: Tue Nov 17 13:35:00 2015 -0500 staging: unisys: fix vbuschannel.h comments Fixes trailling */ from vbuschannel.h and alignment issue on the same comment block Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/vbuschannel.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 1c192718fbafbfd8fcc9af924861a311820d5078 Author: Erik Arfvidson Date: Tue Nov 17 13:34:59 2015 -0500 staging: unisys: controlvmcompletionstatus.h fix block comments This patch fixes the checkpatch warning messages in controlvmcompletionstatus.h. All the warning messages in this file are caused by "Block comments use atrailing */ on a separate line" Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman .../unisys/visorbus/controlvmcompletionstatus.h | 24 ++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) commit 3d05734fff784835ce8b83b029b6affbabc6faa4 Author: Erik Arfvidson Date: Tue Nov 17 13:34:58 2015 -0500 staging: unisys: Fix periodic_work.c parenthesis alignment This patch fixes checkpatch.pl message: CHECK: Alignment should match open parenthesis Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/periodic_work.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 180e2767eb3f4d608ea5a954c8052956431593cf Author: Erik Arfvidson Date: Tue Nov 17 13:34:57 2015 -0500 staging: unisys: Fix channel.h Block comments This patch fixes all the checkpatch.pl block commments that use a trailing */ in channel.h Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/channel.h | 114 ++++++++++++++++++------------- 1 file changed, 67 insertions(+), 47 deletions(-) commit 195b57875f1563fef51be7d204ddb1dbc9e1538e Author: Erik Arfvidson Date: Tue Nov 17 13:34:56 2015 -0500 staging: unisys: Fix vmcallerinterface.h block comments This patch fixes all the checkpatch Block comments use a trailing */ while keeping comments clean. Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/vmcallinterface.h | 34 ++++++++++------------- 1 file changed, 15 insertions(+), 19 deletions(-) commit 6504e649289f24257c782aadfc419926a06b9584 Author: Erik Arfvidson Date: Tue Nov 17 13:34:55 2015 -0500 staging: unisys: Fix visorchannel.c block comments This patch fixes the last checkpatch warning about: Block comments use a trailing */ on a separate line Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchannel.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 25236bc98f955007c8174a69522c5e26e2d4f804 Author: Erik Arfvidson Date: Tue Nov 17 13:34:53 2015 -0500 staging: unisys: vbushelper.h fix Block comment This patch fixes last checkpatch warning for vbushelper.h WARNING: Block comments use a trailing */ on a separate line Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/vbushelper.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit b0bc5da143f654d39a4899c766757a22606428c0 Author: Erik Arfvidson Date: Tue Nov 17 13:34:52 2015 -0500 staging: unisys: visorbus.h fix block comment This fixes last checkpatch warning: WARNING: Block comments use a trailing */ on a separate line Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/visorbus.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0678eb1e4e0de2eaf40a28243bb9f227ae4ff49e Author: Erik Arfvidson Date: Tue Nov 17 13:34:51 2015 -0500 staging: unisys: iochannel fix trailing */ Fixed last warning message from checkpatch.pl by removing the wordiness of the comment Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/iochannel.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit c06a278344ad5024e44d962ce9aa2ed945f0d1cf Author: Erik Arfvidson Date: Tue Nov 17 13:34:50 2015 -0500 staging: unisys: iochannel fix spacing around operators This patch fixes check warning from checkpatch.pl in the macro definition CHECK: spaces preferred around that '+' (ctx:VxV) Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/iochannel.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 71c3c5a8ef37ab21397516caca778238874dc3dd Author: Erik Arfvidson Date: Tue Nov 17 13:34:49 2015 -0500 staging: unisys: iochannel.h remove redundant comments iochannel cleanup redudant comments in function declarations. Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/iochannel.h | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) commit 79c07e9c1f3948757c30fa630c66903da2a247ec Author: Erik Arfvidson Date: Tue Nov 17 13:34:48 2015 -0500 staging: unisys: iochannel fix block comments This patch fixes warning messages from checkpatch.pl specifically: WARNING: Block comments use a trailing */ on a separate lines Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/iochannel.h | 137 +++++++++++++---------------- 1 file changed, 59 insertions(+), 78 deletions(-) commit 34d96c0dedbfbba50349dcc76546a86ad59a0789 Author: Sudip Mukherjee Date: Mon Nov 16 20:16:46 2015 +0530 staging: unisys: return error value directly In case of error we are jumping to err_del_scsipending_ent and always returning SCSI_MLQUEUE_DEVICE_BUSY from error path. We donot need a variable to return a fixed error value, it can be returned directly. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorhba/visorhba_main.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit 559b7d2444790415b8818d3154afba7e74f5925f Author: Sudip Mukherjee Date: Mon Nov 16 20:16:45 2015 +0530 staging: unisys: remove unused variable The variables op, sd and zmotion were never being used. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorhba/visorhba_main.c | 4 ---- drivers/staging/unisys/visorinput/visorinput.c | 4 +--- 2 files changed, 1 insertion(+), 7 deletions(-) commit 8000bc3fe99a304e244edfaf185b418b22e5579c Author: Duc Dang Date: Mon Oct 26 02:31:43 2015 -0700 arm64: dts: Add L2 cache topology for APM X-Gene SoC In APM X-Gene SoC (both v1 and v2), each pair of processors shares the same L2 cache. This patch adds l2-cache entries into X-Gene SoC device tree to demonstrate this configuration. Signed-off-by: Duc Dang arch/arm64/boot/dts/apm/apm-shadowcat.dtsi | 20 ++++++++++++++++++++ arch/arm64/boot/dts/apm/apm-storm.dtsi | 20 ++++++++++++++++++++ 2 files changed, 40 insertions(+) commit 79402f35f00f3043ae91dd6470f7734263cdde85 Author: Duc Dang Date: Wed Oct 21 19:17:42 2015 -0700 arm64: dts: Add RTC DTS entry for X-Gene v2 SoC platform Add Dallas DS1337 RTC DTS entry to support RTC function on X-Gene v2 evaluation platform. Signed-off-by: Duc Dang arch/arm64/boot/dts/apm/apm-merlin.dts | 8 ++++++++ 1 file changed, 8 insertions(+) commit d0181354dfd13a01c67afd64264f4fa1c18dc86a Author: Duc Dang Date: Wed Oct 21 19:07:28 2015 -0700 arm64: dts: Add Designware I2C controller DTS entries for X-Gene v2 SoC platform This patch adds DTS entries for Designware I2C controllers used in APM X-Gene v2 evaluation platform (Merlin board). X-Gene v2 has total 5 I2C controllers. On Merlin board only I2C1 and I2C4 controllers are available in Linux, where the other 3 controllers are used for management purpose (power management, BMC function). Signed-off-by: Duc Dang arch/arm64/boot/dts/apm/apm-shadowcat.dtsi | 59 ++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) commit 62ff9683b5980327b2952f188e529fd67fddf94a Author: Duc Dang Date: Fri Oct 16 12:45:24 2015 -0700 arm64: dts: Add Designware I2C controller DTS entries for X-Gene v1 SoC This patch adds DTS entries for Designware I2C controller used in APM X-Gene v1 SoC evaluation platform (Mustang board). APM X-Gene v1 SoC has 2 I2C controllers. On Mustang board, I2C1 is used to implement proxy I2C interface; I2C1 can be used as I2C slave port (for BMC) or as I2C master port (if no BMC is used). Only I2C1 DT entry is added in this patch with default status as 'disabled'. Signed-off-by: Duc Dang arch/arm64/boot/dts/apm/apm-storm.dtsi | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit 1a47bc826c55c6b1375b33fd611a3e8d916c1cc2 Author: Duc Dang Date: Thu Oct 15 12:06:48 2015 -0700 arm64: dts: Add APM X-Gene v2 SoC EDAC DTS entries This patch adds EDAC DTS entries for APM X-Gene v2 SoC. Signed-off-by: Duc Dang arch/arm64/boot/dts/apm/apm-shadowcat.dtsi | 93 ++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) commit 9ba6739d28a4dc9c7232fd4a819a4fb907271664 Author: Duc Dang Date: Wed Oct 14 17:32:42 2015 -0700 arm64: dts: Add APM X-Gene v2 SoC Designware GPIO controller DTS entry This patch adds Designware GPIO controller DTS node for APM X-Gene v2 platforms. Signed-off-by: Duc Dang arch/arm64/boot/dts/apm/apm-shadowcat.dtsi | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit e38ec5b9a9beb6a560f1915e749ffc92f4504ed9 Author: Duc Dang Date: Wed Oct 14 17:27:16 2015 -0700 arm64: dts: Add Designware GPIO dts binding for APM X-Gene v1 platform This patch adds Designware GPIO dts binding for APM X-Gene v1 platform. Signed-off-by: Duc Dang arch/arm64/boot/dts/apm/apm-storm.dtsi | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 9e81a200ea57563204e3c9f636440ad78535115a Author: Duc Dang Date: Wed Oct 14 17:24:29 2015 -0700 arm64: dts: Add APM X-Gene v2 SoC GFC GPIO controller DTS entry This patch adds the flash controller muxed gpio dts node for APM X-Gene v2 SoC platforms. Signed-off-by: Duc Dang arch/arm64/boot/dts/apm/apm-shadowcat.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) commit 0a09223f3dae977e95f708b1de8aa5cdc017fbe3 Author: Duc Dang Date: Wed Oct 14 16:56:03 2015 -0700 arm64: dts: Add APM X-Gene v1 SoC GFC GPIO controller DTS entries This patch adds the flash controller muxed gpio dts node for APM X-Gene v1 SoC platforms. Signed-off-by: Duc Dang arch/arm64/boot/dts/apm/apm-storm.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) commit 30fd9d51fe34f89086eb6633ef8938aab22f0534 Author: Duc Dang Date: Wed Oct 14 13:44:17 2015 -0700 arm64: dts: Add USB nodes for APM X-Gene v2 platforms This patch adds USB node into APM X-Gene v2 device tree to enable USB support for X-Gene v2 platforms. Signed-off-by: Duc Dang arch/arm64/boot/dts/apm/apm-shadowcat.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) commit bd41023315285cbc46ff4738cef2a03762638921 Author: Duc Dang Date: Wed Oct 14 13:36:24 2015 -0700 arm64: dts: Add USB nodes for APM X-Gene v1 platforms This patch adds USB nodes into APM X-Gene v1 device tree to enable USB support for X-Gene v1 platforms. Signed-off-by: Duc Dang arch/arm64/boot/dts/apm/apm-storm.dtsi | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit b055e9de9a094887e879d44c20d753f494307b66 Author: Duc Dang Date: Mon Oct 12 16:09:17 2015 -0700 arm64: dts: Add PCIe node for APM X-Gene v2 platforms This patch adds PCIe node to support PCIe controller with MSI capability for APM X-Gene v2 platform. Signed-off-by: Duc Dang arch/arm64/boot/dts/apm/apm-shadowcat.dtsi | 59 ++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) commit 726e92fdba7d6866ffb3f884af4a20f42e480095 Author: Duc Dang Date: Mon Oct 12 15:31:56 2015 -0700 arm64: dts: Add v2m MSI frame nodes for APM X-Gene v2 platforms This patch adds all 16 v2m MSI frames that APM X-Gene v2 SoC supports into APM X-Gene v2 device tree. Signed-off-by: Duc Dang arch/arm64/boot/dts/apm/apm-shadowcat.dtsi | 80 ++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) commit e6ae03c4ba43a0623e333e2e8627c5647a71ae58 Author: Duc Dang Date: Mon Oct 5 16:36:10 2015 -0700 arm64: dts: Add RNG device tree nodes for APM X-Gene v2 platform This patch adds device tree nodes to enable driver for True Random Number Generator (TRNG) on APM X-Gene v2 platforms. Signed-off-by: Duc Dang arch/arm64/boot/dts/apm/apm-shadowcat.dtsi | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit b0e7a85a97413fb47f6ba40ac5497cfa40758664 Author: Duc Dang Date: Thu Oct 22 18:54:57 2015 -0700 arm64: dts: X-Gene: Do not reset or enable/disable clock for AHB block Remove register information used to reset and enable/disable clock for AHB block as reseting AHB or disabling its clock will make other peripherals attached to it stop working. Signed-off-by: Duc Dang arch/arm64/boot/dts/apm/apm-shadowcat.dtsi | 11 +++-------- arch/arm64/boot/dts/apm/apm-storm.dtsi | 11 +++-------- 2 files changed, 6 insertions(+), 16 deletions(-) commit 0ae8c000210ffe1a4ac93ad1bc4a8cce11841553 Author: Duc Dang Date: Wed Sep 16 17:12:57 2015 +0530 arm64: dts: Add the arasan mmc DTS entries for APm X-Gene v2 SoC This patch adds the arasan mmc nodes to reuse the of-arasan driver for APM X-Gene v2 SoC platforms. Signed-off-by: Duc Dang arch/arm64/boot/dts/apm/apm-merlin.dts | 4 +++ arch/arm64/boot/dts/apm/apm-shadowcat.dtsi | 44 ++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) commit 8f74e861862e17b3f03f095f6b3e8dc3bddc5f0c Author: Suman Tripathi Date: Fri Jun 19 17:30:26 2015 +0530 arm64: dts: Add the arasan mmc DTS entries for APM X-Gene v1 SoC This patch adds the arasan mmc nodes to reuse the of-arasan driver for APM X-Gene v1 SoC platforms. [dhdang: changelog] Signed-off-by: Suman Tripathi Signed-off-by: Duc Dang arch/arm64/boot/dts/apm/apm-mustang.dts | 4 +++ arch/arm64/boot/dts/apm/apm-storm.dtsi | 44 +++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) commit 0a3d058b8ae857d270a0d34081554192f3e2e566 Author: Simon Horman Date: Fri Nov 13 11:23:51 2015 +0900 ARM: shmobile: r8a7794: Use SoC specific binding for rcar-dmac nodes Use the new SoC specific binding for rcar-dmac and the generic binding as a fall-back in the r8a7794 device tree. In general Renesas hardware is not documented to the extent where the relationship between IP blocks on different SoCs can be assumed although they may appear to operate the same way. Furthermore the documentation typically does not specify a version for individual IP blocks. For these reasons a convention of using the SoC name in place of a version and providing SoC-specific compat strings has been adopted. Although not universally liked this convention is used in the bindings for most drivers for Renesas hardware. The purpose of this patch is to update the Renesas R-Car DMA Controller nodes to follow this convention. Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7794.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 061c6c624b2f356a0d02b137ae4f46825ddd44d1 Author: Simon Horman Date: Fri Nov 13 11:23:50 2015 +0900 ARM: shmobile: r8a7793: Use SoC specific binding for rcar-dmac nodes Use the new SoC specific binding for rcar-dmac and the generic binding as a fall-back in the r8a7793 device tree. In general Renesas hardware is not documented to the extent where the relationship between IP blocks on different SoCs can be assumed although they may appear to operate the same way. Furthermore the documentation typically does not specify a version for individual IP blocks. For these reasons a convention of using the SoC name in place of a version and providing SoC-specific compat strings has been adopted. Although not universally liked this convention is used in the bindings for most drivers for Renesas hardware. The purpose of this patch is to update the Renesas R-Car DMA Controller nodes to follow this convention. Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7793.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e6d12b4990e79ecb0d39736df5d1877ad69fab4c Author: Simon Horman Date: Fri Nov 13 11:23:49 2015 +0900 ARM: shmobile: r8a7791: Use SoC specific binding for rcar-dmac nodes Use the new SoC specific binding for rcar-dmac and the generic binding as a fall-back in the r8a7791 device tree. In general Renesas hardware is not documented to the extent where the relationship between IP blocks on different SoCs can be assumed although they may appear to operate the same way. Furthermore the documentation typically does not specify a version for individual IP blocks. For these reasons a convention of using the SoC name in place of a version and providing SoC-specific compat strings has been adopted. Although not universally liked this convention is used in the bindings for most drivers for Renesas hardware. The purpose of this patch is to update the Renesas R-Car DMA Controller nodes to follow this convention. Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791.dtsi | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 4af0a6640cb536cd66ecff1bb7827c76d2475bd9 Author: Simon Horman Date: Fri Nov 13 11:23:48 2015 +0900 ARM: shmobile: r8a7790: Use SoC specific binding for rcar-dmac nodes Use the new SoC specific binding for rcar-dmac and the generic binding as a fall-back in the r8a7790 device tree. In general Renesas hardware is not documented to the extent where the relationship between IP blocks on different SoCs can be assumed although they may appear to operate the same way. Furthermore the documentation typically does not specify a version for individual IP blocks. For these reasons a convention of using the SoC name in place of a version and providing SoC-specific compat strings has been adopted. Although not universally liked this convention is used in the bindings for most drivers for Renesas hardware. The purpose of this patch is to update the Renesas R-Car DMA Controller nodes to follow this convention. Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7790.dtsi | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit d96011d07728f7d66edf634407d2919e7708c5c3 Author: Magnus Damm Date: Mon Nov 16 22:49:12 2015 +0900 ARM: shmobile: r8a7793: Add GPIO nodes to device tree Add r8a7793 GPIO device nodes that are assumed to be identical to r8a7791. This matches the data sheet for GPIO and MSTP bits. Signed-off-by: Magnus Damm Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7793.dtsi | 121 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 118 insertions(+), 3 deletions(-) commit a03bc7cd633760ae0312327b6e30ec8fe962a798 Author: Patrik Jakobsson Date: Mon Nov 9 16:48:27 2015 +0100 drm/i915/skl: Remove unused suspend and resume callbacks Signed-off-by: Patrik Jakobsson Reviewed-by: Imre Deak Link: http://patchwork.freedesktop.org/patch/msgid/1447084107-8521-13-git-send-email-patrik.jakobsson@linux.intel.com drivers/gpu/drm/i915/i915_drv.c | 17 ----------------- 1 file changed, 17 deletions(-) commit 443646c7ee2749ae4b09f05dfe643d95c43f960f Author: Patrik Jakobsson Date: Mon Nov 16 15:01:06 2015 +0100 drm/i915/gen9: Add boot parameter for disabling DC6 v2: Use _unsafe (Jani) v3: Allow specifying specific DC-states instead of just DC6 (Imre) Signed-off-by: Patrik Jakobsson Reviewed-by: Imre Deak Link: http://patchwork.freedesktop.org/patch/msgid/1447682467-6237-3-git-send-email-patrik.jakobsson@linux.intel.com drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/i915_params.c | 6 ++++++ drivers/gpu/drm/i915/intel_runtime_pm.c | 14 +++++++++++--- 3 files changed, 18 insertions(+), 3 deletions(-) commit 9f836f9016ad5320e0c9230419d2102cf15a28aa Author: Patrik Jakobsson Date: Mon Nov 16 16:20:01 2015 +0100 drm/i915/gen9: Turn DC handling into a power well Handle DC off as a power well where enabling the power well will prevent the DMC to enter selected DC states (required around modesets and Aux A). Disabling the power well will allow DC states again. For now the highest DC state is DC6 for Skylake and DC5 for Broxton but will be configurable for Skylake in a later patch. v2: Check both DC5 and DC6 bits in power well enabled function (Ville) v3: - Remove unneeded DC_OFF case in skl_set_power_well() (Imre) - Add PW2 dependency to DC_OFF (Imre) v4: Put DC_OFF before PW2 in BXT power well array Signed-off-by: Patrik Jakobsson Reviewed-by: Imre Deak [fixed line over 80 and parenthesis alignment checkpatch warns (imre)] Link: http://patchwork.freedesktop.org/patch/msgid/1447687201-24759-1-git-send-email-patrik.jakobsson@linux.intel.com drivers/gpu/drm/i915/i915_drv.c | 6 -- drivers/gpu/drm/i915/i915_reg.h | 1 + drivers/gpu/drm/i915/intel_display.c | 6 ++ drivers/gpu/drm/i915/intel_runtime_pm.c | 112 +++++++++++++++++++++++--------- 4 files changed, 90 insertions(+), 35 deletions(-) commit cd02ac52eb262f635f805d67963ad0aa0f23d6b2 Author: Patrik Jakobsson Date: Mon Nov 16 15:01:05 2015 +0100 drm/i915: Explain usage of power well IDs vs bit groups v2: Add explanation of the fixed power well bits (Imre) Signed-off-by: Patrik Jakobsson Reviewed-by: Imre Deak Link: http://patchwork.freedesktop.org/patch/msgid/1447682467-6237-2-git-send-email-patrik.jakobsson@linux.intel.com drivers/gpu/drm/i915/i915_reg.h | 4 ++++ 1 file changed, 4 insertions(+) commit b450e1778e9229aed58594fdd387d5a0e8137637 Author: Patrik Jakobsson Date: Mon Nov 9 16:48:23 2015 +0100 drm/i915: Do not warn on PG2 enabled in gen9_disable_dc5() PG2 enabled is not a requirement for disabling DC5. It's just one of the reasons why the DMC wouldn't enter DC5. During modeset we don't care about PG2 from a DC perspective, only the fact that DC5/DC6 is not allowed. Signed-off-by: Patrik Jakobsson Reviewed-by: Ville Syrjälä Signed-off-by: Imre Deak Link: http://patchwork.freedesktop.org/patch/msgid/1447084107-8521-9-git-send-email-patrik.jakobsson@linux.intel.com drivers/gpu/drm/i915/intel_runtime_pm.c | 3 --- 1 file changed, 3 deletions(-) commit dfa5762793a40b4b03e32b7d5cd02cbdc1264786 Author: Patrik Jakobsson Date: Mon Nov 9 16:48:22 2015 +0100 drm/i915: Add a modeset power domain We need a power domain for disabling DC5/DC6 around modesets to prevent confusing the DMC. Signed-off-by: Patrik Jakobsson Reviewed-by: Imre Deak Link: http://patchwork.freedesktop.org/patch/msgid/1447084107-8521-8-git-send-email-patrik.jakobsson@linux.intel.com drivers/gpu/drm/i915/i915_debugfs.c | 2 ++ drivers/gpu/drm/i915/i915_drv.h | 1 + 2 files changed, 3 insertions(+) commit 6331a704e4578cf0fd99c283d6c772c9593734f4 Author: Patrik Jakobsson Date: Mon Nov 9 16:48:21 2015 +0100 drm/i915: Remove distinction between DDI 2 vs 4 lanes We never make use of the distinction between 2 vs 4 lanes so combine them into a per port domain instead. This saves us a few bits in the power domain mask. Change suggested by Ville. Signed-off-by: Patrik Jakobsson Reviewed-by: Imre Deak Link: http://patchwork.freedesktop.org/patch/msgid/1447084107-8521-7-git-send-email-patrik.jakobsson@linux.intel.com drivers/gpu/drm/i915/i915_debugfs.c | 28 +++++-------- drivers/gpu/drm/i915/i915_drv.h | 14 +++---- drivers/gpu/drm/i915/intel_display.c | 10 ++--- drivers/gpu/drm/i915/intel_runtime_pm.c | 71 ++++++++++++--------------------- 4 files changed, 45 insertions(+), 78 deletions(-) commit edd993fd17281093eba7a1b140d087af1f86db78 Author: Ville Syrjälä Date: Mon Nov 9 16:48:20 2015 +0100 drm/i915: Remove DDI power domain exclusion SKL_DISPLAY_ALWAYS_ON_POWER_DOMAINS All the DDI power domains are already excluded from SKL_DISPLAY_ALWAYS_ON_POWER_DOMAINS on account of excluding SKL_DISPLAY_POWERWELL_1_POWER_DOMAINS and SKL_DISPLAY_POWERWELL_2_POWER_DOMAINS, no need to spell them out again. Signed-off-by: Ville Syrjälä Reviewed-by: Patrik Jakobsson Signed-off-by: Imre Deak Link: http://patchwork.freedesktop.org/patch/msgid/1447084107-8521-6-git-send-email-patrik.jakobsson@linux.intel.com drivers/gpu/drm/i915/intel_runtime_pm.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit f0ab43e6c338896cadee64ced3fc30a5343890d9 Author: Ville Syrjälä Date: Mon Nov 9 16:48:19 2015 +0100 drm/i915: Introduce a gmbus power domain Currently the gmbus code uses intel_aux_display_runtime_get/put in an effort to make sure the hardware is powered up sufficiently for gmbus. That function only takes the runtime PM reference which on VLV/CHV/BXT is not enough. We need the disp2d/pipe-a well on VLV/CHV and power well 2 on BXT. So add a new power domnain for gmbus and kill off the now unused intel_aux_display_runtime_get/put. And change intel_hdmi_set_edid() to use the gmbus power domain too since that's all we need there. Also toss in a BUILD_BUG_ON() to catch problems if we run out of bits for power domains. We're already really close to the limit... [Patrik: Add gmbus string to debugfs output] Signed-off-by: Ville Syrjälä Reviewed-by: Patrik Jakobsson Signed-off-by: Imre Deak Link: http://patchwork.freedesktop.org/patch/msgid/1447084107-8521-5-git-send-email-patrik.jakobsson@linux.intel.com drivers/gpu/drm/i915/i915_debugfs.c | 2 ++ drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/intel_drv.h | 2 -- drivers/gpu/drm/i915/intel_hdmi.c | 8 ++------ drivers/gpu/drm/i915/intel_i2c.c | 6 ++++-- drivers/gpu/drm/i915/intel_runtime_pm.c | 34 ++++----------------------------- 6 files changed, 13 insertions(+), 40 deletions(-) commit 25f78f58e5bfb46a270ce4d690fb49dc104558b1 Author: Ville Syrjälä Date: Mon Nov 16 15:01:04 2015 +0100 drm/i915: Clean up AUX power domain handling Introduce intel_display_port_aux_power_domain() which simply returns the appropriate AUX power domain for a specific port, and then replace the intel_display_port_power_domain() with calls to the new function in the DP code. As long as we're not actually enabling the port we don't need the lane power domains, and those are handled now purely from modeset_update_crtc_power_domains(). My initial motivation for this was to see if I could keep the DPIO power wells powered down while doing AUX on CHV, but turns out I can't so this doesn't change anything for CHV at least. But I think it's still a worthwile change. v2: Add case for PORT E. Default to POWER_DOMAIN_AUX_D for now. (Ville) Signed-off-by: Ville Syrjälä Reviewed-by: Patrik Jakobsson Signed-off-by: Imre Deak Link: http://patchwork.freedesktop.org/patch/msgid/1447682467-6237-1-git-send-email-patrik.jakobsson@linux.intel.com drivers/gpu/drm/i915/intel_display.c | 43 ++++++++++++++++++++++++++++++++ drivers/gpu/drm/i915/intel_dp.c | 48 +++++++++++------------------------- drivers/gpu/drm/i915/intel_drv.h | 2 ++ 3 files changed, 59 insertions(+), 34 deletions(-) commit 4deccbb26b4d655ea57b3f3784cce7732c586f10 Author: Patrik Jakobsson Date: Mon Nov 9 16:48:17 2015 +0100 drm/i915/gen9: Always set mask memory up when enabling DC5 or DC6 Move call to gen9_set_dc_state_debugmask_memory_up() into gen9_set_dc_state() to prevent us missing it somewhere. Signed-off-by: Patrik Jakobsson Reviewed-by: Imre Deak Link: http://patchwork.freedesktop.org/patch/msgid/1447084107-8521-3-git-send-email-patrik.jakobsson@linux.intel.com drivers/gpu/drm/i915/intel_runtime_pm.c | 35 ++++++++++++++++----------------- 1 file changed, 17 insertions(+), 18 deletions(-) commit fc131bf20945def9cca1943b21f4c8f4a53d986b Author: Patrik Jakobsson Date: Mon Nov 9 16:48:16 2015 +0100 drm/i915: Don't trust CSR program memory contents Replaces "drm/i915: Force loading of csr program at boot" in the old series. Previously we called blindly into intel_csr_load_program() and depended on a check of whether the CSR program memory was cleared or not. This check is not reliable and no longer needed since we fixed the call-sites of intel_csr_load_program(). Signed-off-by: Patrik Jakobsson Reviewed-by: Imre Deak Link: http://patchwork.freedesktop.org/patch/msgid/1447084107-8521-2-git-send-email-patrik.jakobsson@linux.intel.com drivers/gpu/drm/i915/intel_csr.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit d314cd4353c48928402fcc855ca1327f34c48a55 Author: Imre Deak Date: Tue Nov 17 17:44:23 2015 +0200 drm/i915: fix handling of the disable_power_well module option When this option is 0 (so the power well support is disabled) we are supposed to enable all power wells once and don't disable them unless we system suspend the device. Currently if the option is 0, we can call the power well enable handlers multiple times, whenever their refcount changes from 0->1. This may not be a problem for the HW, but it's not logical and may trigger some warnings in the power well code which doesn't expect this. So simply keep around a reference while we are not system suspended to solve this. For simplicity mark the module option read only, so we don't need to deal with re-enabling the feature during runtime. If someone really needs that it could be added later in a more proper way. v2: - fix typo in comment in intel_power_domains_suspend() (Patrik) Signed-off-by: Imre Deak Reviewed-by: Patrik Jakobsson Link: http://patchwork.freedesktop.org/patch/msgid/1447775063-24438-1-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/i915_params.c | 2 +- drivers/gpu/drm/i915/intel_runtime_pm.c | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) commit c2b16152e0b3112fb5a45da243b85f8a737fd2ee Author: Imre Deak Date: Wed Nov 4 19:24:19 2015 +0200 drm/i915/skl: remove redundant DDI/IRQ reinitialization during PW1 enabling We don't need to reinit DDI and IRQs during PW1 enabling any more, since we don't toggle PW1 on-demand any more. We enable PW1 only as part of the display core init sequence and after this we initialize both DDI and IRQs later in the init sequence. So remove these init steps from the power well code. Signed-off-by: Imre Deak Reviewed-by: Patrik Jakobsson Link: http://patchwork.freedesktop.org/patch/msgid/1446657859-9598-11-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/intel_runtime_pm.c | 5 ----- 1 file changed, 5 deletions(-) commit ab96c1ee1757a7a96dc2fd4e466747633e43cb0d Author: Imre Deak Date: Wed Nov 4 19:24:18 2015 +0200 drm/i915/skl: make sure LCPLL is disabled when uniniting CDCLK Suppressing LCPLL disabling was added to avoid interfering with the DMC firmware. It is not needed any more since we uninit CDCLK now with the DMC deactivated (DC states disabled). We also must disable it during system suspend as part of the Bspec "Display uninit sequence". Signed-off-by: Imre Deak Reviewed-by: Patrik Jakobsson Link: http://patchwork.freedesktop.org/patch/msgid/1446657859-9598-10-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/intel_display.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) commit d26fa1d51f12c015af336f4779af722aff89e175 Author: Imre Deak Date: Wed Nov 4 19:24:17 2015 +0200 drm/i915/skl: disable DC states before display core init/uninit We need to disable the DC states during display core init to sanitize the HW state we inherit from the BIOS. We need to disable it during display core uninit too, since the power well framework will leave it enabled (since we get to the display core uninit step with all power domains disabled already). Signed-off-by: Imre Deak Reviewed-by: Patrik Jakobsson Link: http://patchwork.freedesktop.org/patch/msgid/1446657859-9598-9-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/intel_runtime_pm.c | 4 ++++ 1 file changed, 4 insertions(+) commit 13ae3a0d5b139aded05b1f071bb147ce99d6299b Author: Imre Deak Date: Wed Nov 4 19:24:16 2015 +0200 drm/i915/gen9: simplify DC toggling code Signed-off-by: Imre Deak Reviewed-by: Patrik Jakobsson [fix line over 80 chars checkpatch WARN in gen9_set_dc_state() (imre)] Link: http://patchwork.freedesktop.org/patch/msgid/1446657859-9598-8-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/i915_reg.h | 1 + drivers/gpu/drm/i915/intel_runtime_pm.c | 63 ++++++++++++++------------------- 2 files changed, 28 insertions(+), 36 deletions(-) commit 4a76f295bc01f8342d4d2591da0a95dafa227191 Author: Imre Deak Date: Wed Nov 4 19:24:15 2015 +0200 drm/i915/skl: don't toggle PW1 and MISC power wells on-demand With the DMC firmware installed we don't need to handle HW resources that are handled automatically by the firmware. Besides being redundant this can also interfere with the firmware, possibly getting it into a broken/blocked state. The on-demand handling of PW1 was already half-way removed, MISC IO was still handled in this way. After the last patch we init/uninit these HW resources manually as part of the display core init/uninit sequence, so we can now remove the on-demand handling for these completely. We still keep around the power wells (with no domains attached to them) since the manual toggling during display core init/uninit happens via the current API. Signed-off-by: Imre Deak Reviewed-by: Patrik Jakobsson [s/beeing/being/ in commit message (imre)] Link: http://patchwork.freedesktop.org/patch/msgid/1446657859-9598-7-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/intel_runtime_pm.c | 36 +++++++++------------------------ 1 file changed, 9 insertions(+), 27 deletions(-) commit 73dfc227ff5c8e005120daefc19b8521b1adc203 Author: Imre Deak Date: Tue Nov 17 17:33:53 2015 +0200 drm/i915/skl: init/uninit display core as part of the HW power domain state We need to initialize the display core part early, before initializing the rest of the display power state. This is also described in the bspec termed "Display initialization sequence". Atm we run this sequence during driver loading after power domain HW state initialization which is too late and during runtime suspend/resume which is unneeded and can interere with DMC functionality which handles HW resources toggled by this init/uninit sequence automatically. The init sequence must be run as the first step of HW power state initialization and during system resume. The uninit sequence must be run during system suspend. To address the above move the init sequence to the initial HW power state setup and the uninit sequence to a new power domains suspend function called during system suspend. As part of the init sequence we also have to reprogram the DMC firmware as it's lost across a system suspend/resume cycle. After this change CD clock initialization during driver loading will happen only later after other dependent HW/SW parts are initialized, while during system resume it will get initialized as the last step of the init sequence. This distinction can be removed by some refactoring of platform independent parts. I left this refactoring out from this series since I didn't want to change non-SKL parts. This is a TODO for later. v2: - fix error path in i915_drm_suspend_late() - don't try to re-program the DMC firmware if it failed to load Signed-off-by: Imre Deak Reviewed-by: Patrik Jakobsson Link: http://patchwork.freedesktop.org/patch/msgid/1447774433-20834-1-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/i915_dma.c | 2 +- drivers/gpu/drm/i915/i915_drv.c | 10 +++--- drivers/gpu/drm/i915/intel_display.c | 11 ------- drivers/gpu/drm/i915/intel_drv.h | 3 +- drivers/gpu/drm/i915/intel_runtime_pm.c | 56 +++++++++++++++++++++++++++++++-- 5 files changed, 61 insertions(+), 21 deletions(-) commit b45e68df065a9babc43b4b7cd223c412d34b6658 Author: Koro Chen Date: Tue Nov 10 15:26:12 2015 +0800 ASoC: mediatek: Move 22M/24M clock control into I2S ops 22M/24M clocks are only required for I2S, so move the control to I2S DAI ops. Signed-off-by: Koro Chen Signed-off-by: Mark Brown sound/soc/mediatek/mtk-afe-pcm.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit 3ff3f518a135fa4592fe2817e9ac2cce1fa23dc2 Author: Bjorn Andersson Date: Mon Nov 9 22:20:37 2015 -0800 regulator: Make bulk API support optional supplies Make it possible to use the bulk API with optional supplies, by allowing the consumer to marking supplies as optional in the regulator_bulk_data. Signed-off-by: Bjorn Andersson Signed-off-by: Mark Brown drivers/regulator/core.c | 6 ++++-- drivers/regulator/devres.c | 7 +++++-- include/linux/regulator/consumer.h | 3 +++ 3 files changed, 12 insertions(+), 4 deletions(-) commit 51659ca069ce5bdf20675a7967a39ef8419e87f2 Author: Zidan Wang Date: Mon Nov 9 19:03:13 2015 +0800 ASoC: fsl-sai: set xCR4/xCR5/xMR for SAI master mode For SAI master mode, when Tx(Rx) sync with Rx(Tx) clock, Rx(Tx) will generate bclk and frame clock for Tx(Rx), we should set RCR4(TCR4), RCR5(TCR5) and RMR(TMR) for playback(capture), or there will be sync error sometimes. Signed-off-by: Zidan Wang Acked-by: Nicolin Chen Signed-off-by: Mark Brown sound/soc/fsl/fsl_sai.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) commit 9cc58712358cbfe51248ef369fc50671149b60fc Author: Zidan Wang Date: Mon Nov 9 19:02:29 2015 +0800 ASoC: fsl-sai: don't set bclk for Tx/Rx Synchronous with another SAI mode In fsl_sai_set_bclk function, we should not set bclk for Tx/Rx Synchronous with another SAI mode. Signed-off-by: Zidan Wang Acked-by: Nicolin Chen Signed-off-by: Mark Brown sound/soc/fsl/fsl_sai.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) commit 30eade12d6187e9e67dbc22611aae281c5383293 Author: Imre Deak Date: Wed Nov 4 19:24:13 2015 +0200 drm/i915: rename intel_power_domains_resume to *_sync_hw Give a more proper name to this function. Signed-off-by: Imre Deak Reviewed-by: Patrik Jakobsson Link: http://patchwork.freedesktop.org/patch/msgid/1446657859-9598-5-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/intel_runtime_pm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2f693e28b8df69f67beced5e18bb2b91c2bfcec2 Author: Damien Lespiau Date: Wed Nov 4 19:24:12 2015 +0200 drm/i915: Make turning on/off PW1 and Misc I/O part of the init/fini sequences Before this patch, we used the intel_display_power_{get,put} functions to make sure the PW1 and Misc I/O power wells were enabled all the time while LCPLL was enabled. We called a get() at intel_ddi_pll_init() when we discovered that LCPLL was enabled, then we would call put/get at skl_{un,}init_cdclk(). The problem is that skl_uninit_cdclk() is indirectly called by intel_runtime_suspend(). So it will only release its power well _after_ we already decided to runtime suspend. But since we only decide to runtime suspend after all power wells and refcounts are released, that basically means we will never decide to runtime suspend. So what this patch does to fix that problem is move the PW1 + Misc I/O power well handling out of the runtime PM mechanism: instead of calling intel_display_power_{get_put} - functions that touch the refcount -, we'll call the low level intel_power_well_{en,dis}able, which don't change the refcount. This way, it is now possible for the refcount to actually reach zero, and we'll now start runtime suspending/resuming. v2 (from Paulo): - Write a commit message since the original patch left it empty. - Rebase after the intel_power_well_{en,dis}able rename. - Use lookup_power_well() instead of hardcoded indexes. Testcase: igt/pm_rpm/rte (and every other rpm test) Signed-off-by: Damien Lespiau Reviewed-by: Paulo Zanoni Signed-off-by: Paulo Zanoni Reviewed-by: Patrik Jakobsson Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92211 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92605 Signed-off-by: Imre Deak Link: http://patchwork.freedesktop.org/patch/msgid/1446657859-9598-4-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/intel_ddi.c | 4 ++-- drivers/gpu/drm/i915/intel_display.c | 5 +++-- drivers/gpu/drm/i915/intel_drv.h | 2 ++ drivers/gpu/drm/i915/intel_runtime_pm.c | 28 ++++++++++++++++++++++++++++ 4 files changed, 35 insertions(+), 4 deletions(-) commit 1b15b1f5a01019524815a9ce5c575f3b2068e7f8 Author: Fabio Estevam Date: Tue Nov 17 13:58:50 2015 -0200 mtd: mxc_nand: Remove bit-or operation with zero Doing a bit-or operation with zero is pointless. Remove this unneeded bit-or. Signed-off-by: Fabio Estevam Signed-off-by: Brian Norris drivers/mtd/nand/mxc_nand.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 876e7fb9f418fd86719af345febf8656c47e833c Author: Magnus Damm Date: Mon Nov 16 17:57:29 2015 +0900 ARM: shmobile: r8a7794: alt: Enable VGA port Enable the DU device and the VGA port available on the r8a7794 ALT board. The VGA portion of the ALT board is somewhat similar to the Lager board but in case of ALT the DU1 pins are used and the X2 clock has a reduced frequency. This patch does not include any pinctrl (PFC) settings due to lack of PFC DT integration on r8a7794. At this point the default state of the boot loader is enough to keep the VGA port working without changing any pinctrl settings. Signed-off-by: Magnus Damm Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7794-alt.dts | 61 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) commit 46c4f13d04d729fa79f7df2dd1978f9fc0ee6d6a Author: Laurent Pinchart Date: Mon Nov 16 17:57:20 2015 +0900 ARM: shmobile: r8a7794: Add DU node to device tree Add the DU device with a disabled state. Boards that want to enable the DU need to specify the output topology. Signed-off-by: Laurent Pinchart Signed-off-by: Magnus Damm Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7794.dtsi | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit 9859cd3b1582cbe39f969a500d8b7fc87c4b87b8 Author: Laurent Pinchart Date: Mon Nov 16 17:57:11 2015 +0900 ARM: shmobile: r8a7794: Add DU0 clock The DU0 clock is an MSTP clock, child of the CPG ZX clock. Signed-off-by: Laurent Pinchart Acked-by: Geert Uytterhoeven Signed-off-by: Magnus Damm Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7794.dtsi | 7 ++++--- include/dt-bindings/clock/r8a7794-clock.h | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) commit d4a173040a1023e9e0443ea572f4685df406cde9 Author: Kalle Valo Date: Tue Nov 17 19:49:19 2015 +0200 adm80211: move under admtek vendor directory Part of reorganising wireless drivers directory and Kconfig. Signed-off-by: Kalle Valo MAINTAINERS | 2 +- drivers/net/wireless/Kconfig | 29 +- drivers/net/wireless/Makefile | 4 +- drivers/net/wireless/adm8211.c | 1993 --------------------------------- drivers/net/wireless/adm8211.h | 602 ---------- drivers/net/wireless/admtek/Kconfig | 41 + drivers/net/wireless/admtek/Makefile | 1 + drivers/net/wireless/admtek/adm8211.c | 1993 +++++++++++++++++++++++++++++++++ drivers/net/wireless/admtek/adm8211.h | 602 ++++++++++ 9 files changed, 2642 insertions(+), 2625 deletions(-) commit fc17f2274ebe4ef9d7e4a777af8b685f1dd1d584 Author: Imre Deak Date: Wed Nov 4 19:24:11 2015 +0200 drm/i915: fix lookup_power_well for power wells without any domain The current lookup code wouldn't find a power well if it's not in any power domain. There wasn't any power wells before but an upcoming patch will detach the power domains from power well#1 and the MISC IO power wells, so fix things up accordingly. Signed-off-by: Imre Deak Reviewed-by: Patrik Jakobsson Link: http://patchwork.freedesktop.org/patch/msgid/1446657859-9598-3-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/intel_runtime_pm.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 217bdb0741ff4f2db8a1d52b967101702e8694c1 Author: Julia Lawall Date: Fri Nov 13 20:05:17 2015 -0200 [media] i2c: constify v4l2_ctrl_ops structures These v4l2_ctrl_ops structures are never modified, like all the other v4l2_ctrl_ops structures, so declare them as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/mt9m032.c | 2 +- drivers/media/i2c/mt9p031.c | 2 +- drivers/media/i2c/mt9t001.c | 2 +- drivers/media/i2c/mt9v011.c | 2 +- drivers/media/i2c/mt9v032.c | 2 +- drivers/media/i2c/ov2659.c | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) commit 56fcfd6333a8dddaf3a996c89a491ed4e814e5e8 Author: Imre Deak Date: Wed Nov 4 19:24:10 2015 +0200 drm/i915: fix the power well ID for always on wells lookup_power_well() expects uniq power well IDs, but atm we have uninitialized IDs which would clash with those power wells with a 0 ID. This wasn't a problem so far since nothing looked up such a power well, but an upcoming patch will (Misc IO for SKL), so fix this up on platforms where this matters. Signed-off-by: Imre Deak Reviewed-by: Patrik Jakobsson Link: http://patchwork.freedesktop.org/patch/msgid/1446657859-9598-2-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/i915_reg.h | 4 +++- drivers/gpu/drm/i915/intel_runtime_pm.c | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) commit 05645a46a126c5cbecd81425aaa583dc5a2151fd Author: Josh Wu Date: Tue Nov 3 03:45:12 2015 -0200 [media] atmel-isi: support RGB565 output when sensor output YUV formats This patch enable Atmel ISI preview path to convert the YUV to RGB format. Signed-off-by: Josh Wu [g.liakhovetski@gmx.de: removed superfluous parentheses] Signed-off-by: Guennadi Liakhovetski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/soc_camera/atmel-isi.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) commit 7393de60a2ddd30ac0d6699c61f7a11519bf91fa Author: Josh Wu Date: Tue Nov 3 03:45:11 2015 -0200 [media] atmel-isi: setup YCC_SWAP correctly when using preview path The preview path only can convert UYVY format to RGB data. To make preview path work correctly, we need to set up YCC_SWAP according to sensor output and convert them to UYVY. Signed-off-by: Josh Wu Signed-off-by: Guennadi Liakhovetski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/soc_camera/atmel-isi.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit bd70f260cb2629a60b676f045eeb90a061a7630e Author: Josh Wu Date: Tue Nov 3 03:45:10 2015 -0200 [media] atmel-isi: add code to setup correct resolution for preview path Not like codec path, preview path can do downsampling, so we should setup a extra preview width, height for it. This patch add preview resolution setup without down sampling. So currently preview path will output same size as sensor output size. Signed-off-by: Josh Wu Signed-off-by: Guennadi Liakhovetski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/soc_camera/atmel-isi.c | 12 +++++++++++- drivers/media/platform/soc_camera/atmel-isi.h | 10 ++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) commit 0fb725750b040253b111b106ca235dfbccf4ec3f Author: Josh Wu Date: Tue Nov 3 03:45:09 2015 -0200 [media] atmel-isi: prepare for the support of preview path Atmel ISI support a preview path which can output RGB data. So this patch introduces a bool variable to choose which path is enabled currently. And also we need setup corresponding path registers. By default the preview path is disabled. We only use Codec path. Signed-off-by: Josh Wu Signed-off-by: Guennadi Liakhovetski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/soc_camera/atmel-isi.c | 72 ++++++++++++++++++--------- 1 file changed, 49 insertions(+), 23 deletions(-) commit ba0422bf56e162b4f9f65c3b6f7fa178578da859 Author: Josh Wu Date: Tue Nov 3 03:45:08 2015 -0200 [media] atmel-isi: correct yuv swap according to different sensor outputs we need to configure the YCC_SWAP bits in ISI_CFG2 according to current sensor output and Atmel ISI output format. Current there are two cases Atmel ISI supported: 1. Atmel ISI outputs YUYV format. This case we need to setup YCC_SWAP according to sensor output format. 2. Atmel ISI output a pass-through formats, which means no swap. Just setup YCC_SWAP as default with no swap. Signed-off-by: Josh Wu Signed-off-by: Guennadi Liakhovetski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/soc_camera/atmel-isi.c | 39 ++++++++++++++++++++------- 1 file changed, 29 insertions(+), 10 deletions(-) commit dc51b7d015b6a5da00fd5e61a798607294e31a3d Author: Josh Wu Date: Wed Oct 28 07:48:55 2015 -0200 [media] v4l2-clk: v4l2_clk_get() also need to find the of_fullname clock The soc-camera host will be probed and register a v4l2_clk, but if at that moment, the i2c device is not available, then the registered v4l2_clk name is an OF string not a I2C string. So when i2c sensor probes and calls v4l2_clk_get(), it only searches a clock with I2C string, like "1-0030". This patch will search the clock with OF string name if no clock with I2C string name could be found. Signed-off-by: Josh Wu Signed-off-by: Guennadi Liakhovetski Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-clk.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 3d83078a081a2bac7639d09404d85085368c8b66 Author: Josh Wu Date: Wed Oct 28 07:48:54 2015 -0200 [media] v4l2-clk: add new definition: V4L2_CLK_NAME_SIZE Make all v4l2-clk's clock name use V4L2_CLK_NAME_SIZE definition. In future, if the string is increased we just need to change the V4L2_CLK_NAME_SIZE once. Signed-off-by: Josh Wu Signed-off-by: Guennadi Liakhovetski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/soc_camera/soc_camera.c | 6 +++--- drivers/media/usb/em28xx/em28xx-camera.c | 2 +- include/media/v4l2-clk.h | 2 ++ 3 files changed, 6 insertions(+), 4 deletions(-) commit ac2841f3b80170415b63ae5ca8ea417f65244604 Author: Josh Wu Date: Wed Oct 28 07:48:53 2015 -0200 [media] v4l2-clk: add new macro for v4l2_clk_name_of() This macro is used to generate an OF string for a v4l2 clock. Signed-off-by: Josh Wu Signed-off-by: Guennadi Liakhovetski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/soc_camera/soc_camera.c | 4 ++-- include/media/v4l2-clk.h | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) commit af4d83472717031ac2ed0edcf8bd2870907248bd Author: Josh Wu Date: Wed Oct 28 07:48:52 2015 -0200 [media] soc_camera: get the clock name by using macro: v4l2_clk_name_i2c() Since v4l2_clk_name_i2c() is defined, reuse it. Signed-off-by: Josh Wu Signed-off-by: Guennadi Liakhovetski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/soc_camera/soc_camera.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit a41f9b419c917867b7d93378266d65272f5682eb Author: Prashant Laddha Date: Tue Sep 22 11:27:31 2015 -0300 [media] vivid: add support for reduced frame rate in video capture With this patch, vivid capture thread can now generate a video with frame rate reduced by a factor of 1000 / 1001. This option can be selected using a control Reduced Framerate from gui. Signed-off-by: Prashant Laddha Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vivid/vivid-vid-cap.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit c79aa6aeadb0f4a13e0404c7ccf4eb3796660f12 Author: Prashant Laddha Date: Tue Sep 22 11:27:30 2015 -0300 [media] vivid-capture: add control for reduced frame rate A boolean control Reduced Framerate is added to vivid controls for controlling the reduced fps option for vivid capture from gui. Signed-off-by: Prashant Laddha Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vivid/vivid-core.h | 1 + drivers/media/platform/vivid/vivid-ctrls.c | 15 +++++++++++++++ 2 files changed, 16 insertions(+) commit b883ba75e95790ab866d465381bb058776653ef5 Author: Prashant Laddha Date: Tue Sep 22 11:27:29 2015 -0300 [media] vivid: add support for reduced fps in video out If reduced fps flag is set then check if other necessary conditions are true for the given bt timing. If yes, then reduce the frame rate. For vivid transmitter, timeperframe_vid_out controls the frame rate. Adjusting the timeperframe_vid_out by scaling down pixel clock by factor of 1000 / 1001. Signed-off-by: Prashant Laddha Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vivid/vivid-vid-out.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 8d7322f4f753644bd00d3a7a267c43f506a0b9c1 Author: Prashant Laddha Date: Tue Sep 22 11:27:28 2015 -0300 [media] v4l2-dv-timings: add condition checks for reduced fps Added a helper function to check necessary conditions required for reduced fps. The reduced fps is supported for CVT and CEA861 timings. CVT supports reduced fps only if reduced blanking v2 (indicated by vsync = 8) is true. Whereas CEA861 supports reduced fps if V4L2_DV_FL_CAN_REDUCE_FPS flag is true. Signed-off-by: Prashant Laddha Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-dv-timings.c | 5 +++++ include/media/v4l2-dv-timings.h | 21 +++++++++++++++++++++ 2 files changed, 26 insertions(+) commit 0d51ebd3f41f195e33ed8d9b9d67ed90f6e298ec Author: Tommi Franttila Date: Thu Nov 12 07:01:07 2015 -0200 [media] v4l2-device: Don't unregister ACPI/Device Tree based devices When a V4L2 sub-device backed by a DT or ACPI based device was removed, the device was unregistered as well which certainly was not intentional, as the client device would not be re-created by simply reinstating the V4L2 sub-device (indeed the device would have to be there first!). Skip unregistering the device in case it has non-NULL of_node or fwnode. Signed-off-by: Tommi Franttila Signed-off-by: Sakari Ailus Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-device.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) commit 16dfe72fd879abc98255bbea62fae9d312ef3b5a Author: Ulrich Hecht Date: Tue Nov 10 11:39:00 2015 -0200 [media] media: adv7180: increase delay after reset to 5ms Initialization of the ADV7180 chip fails on the Renesas R8A7790-based Lager board about 50% of the time. This patch resolves the issue by increasing the minimum delay after reset from 2 ms to 5 ms, following the recommendation in the ADV7180 datasheet: "Executing a software reset takes approximately 2 ms. However, it is recommended to wait 5 ms before any further I2C writes are performed." Signed-off-by: Ulrich Hecht Acked-by: Laurent Pinchart Acked-by: Lars-Peter Clausen Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/adv7180.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 588afcc1c0e45358159090d95bf7b246fb67565f Author: Oliver Neukum Date: Tue Oct 27 09:51:34 2015 -0200 [media] usbvision fix overflow of interfaces array This fixes the crash reported in: http://seclists.org/bugtraq/2015/Oct/35 The interface number needs a sanity check. Signed-off-by: Oliver Neukum Cc: Vladis Dronov Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/usbvision/usbvision-video.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 3ff863b87e8aacef96d66b132b43e296bb8cd973 Author: Arnd Bergmann Date: Thu Oct 15 21:35:40 2015 -0300 [media] sh-vou: clarify videobuf2 dependency The sh-vou driver has been converted from videobuf to videobuf2, but the Kconfig file still lists VIDEOBUF_DMA_CONTIG as a dependency. Consequently we can build the driver without VIDEOBUF2_DMA_CONTIG and get a link error: drivers/built-in.o: In function `sh_vou_probe': vf610-ocotp.c:(.text+0x2dbf5c): undefined reference to `vb2_dma_contig_init_ctx' vf610-ocotp.c:(.text+0x2dc0b4): undefined reference to `vb2_dma_contig_cleanup_ctx' vf610-ocotp.c:(.text+0x2dc144): undefined reference to `vb2_dma_contig_memops' drivers/built-in.o: In function `sh_vou_remove': vf610-ocotp.c:(.text+0x2dc190): undefined reference to `vb2_dma_contig_cleanup_ctx' This changes the dependency to VIDEOBUF2_DMA_CONTIG instead. Fixes: 57af3ad59d95 ("[media] sh-vou: convert to vb2") Signed-off-by: Arnd Bergmann Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5063452ecb1c1c56b319d1b89b1b67c1abd849b9 Author: Kosuke Tatsukawa Date: Thu Oct 8 21:35:40 2015 -0300 [media] media: fix waitqueue_active without memory barrier in cpia2 driver cpia2_usb_disconnect() seems to be missing a memory barrier which might cause the waker to not notice the waiter and miss sending a wake_up as in the following figure. cpia2_usb_disconnect sync ------------------------------------------------------------------------ mutex_unlock(&cam->v4l2_lock); if (waitqueue_active(&cam->wq_stream)) /* The CPU might reorder the test for the waitqueue up here, before prior writes complete */ /* wait_event_interruptible */ /* __wait_event_interruptible */ /* ___wait_event */ long __int = prepare_to_wait_event( &wq, &__wait, state); if (!cam->streaming || frame->status == FRAME_READY) cam->curbuff->status = FRAME_READY; cam->curbuff->length = 0; schedule() ------------------------------------------------------------------------ The attached patch removes the call to waitqueue_active() leaving just wake_up() behind. This fixes the problem because the call to spin_lock_irqsave() in wake_up() will be an ACQUIRE operation. I found this issue when I was looking through the linux source code for places calling waitqueue_active() before wake_up*(), but without preceding memory barriers, after sending a patch to fix a similar issue in drivers/tty/n_tty.c (Details about the original issue can be found here: https://lkml.org/lkml/2015/9/28/849). Signed-off-by: Kosuke Tatsukawa Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/cpia2/cpia2_usb.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit dcc7fdbec53a960588f2c40232db2c6466c09917 Author: Antonio Ospite Date: Fri Oct 2 17:33:13 2015 -0300 [media] gspca: ov534/topro: prevent a division by 0 v4l2-compliance sends a zeroed struct v4l2_streamparm in v4l2-test-formats.cpp::testParmType(), and this results in a division by 0 in some gspca subdrivers: divide error: 0000 [#1] SMP Modules linked in: gspca_ov534 gspca_main ... CPU: 0 PID: 17201 Comm: v4l2-compliance Not tainted 4.3.0-rc2-ao2 #1 Hardware name: System manufacturer System Product Name/M2N-E SLI, BIOS ASUS M2N-E SLI ACPI BIOS Revision 1301 09/16/2010 task: ffff8800818306c0 ti: ffff880095c4c000 task.ti: ffff880095c4c000 RIP: 0010:[] [] sd_set_streamparm+0x12/0x60 [gspca_ov534] RSP: 0018:ffff880095c4fce8 EFLAGS: 00010296 RAX: 0000000000000000 RBX: ffff8800c9522000 RCX: ffffffffa077a140 RDX: 0000000000000000 RSI: ffff880095e0c100 RDI: ffff8800c9522000 RBP: ffff880095e0c100 R08: ffffffffa077a100 R09: 00000000000000cc R10: ffff880067ec7740 R11: 0000000000000016 R12: ffffffffa07bb400 R13: 0000000000000000 R14: ffff880081b6a800 R15: 0000000000000000 FS: 00007fda0de78740(0000) GS:ffff88012fc00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00000000014630f8 CR3: 00000000cf349000 CR4: 00000000000006f0 Stack: ffffffffa07a6431 ffff8800c9522000 ffffffffa077656e 00000000c0cc5616 ffff8800c9522000 ffffffffa07a5e20 ffff880095e0c100 0000000000000000 ffff880067ec7740 ffffffffa077a140 ffff880067ec7740 0000000000000016 Call Trace: [] ? v4l_s_parm+0x21/0x50 [videodev] [] ? vidioc_s_parm+0x4e/0x60 [gspca_main] [] ? __video_do_ioctl+0x280/0x2f0 [videodev] [] ? video_ioctl2+0x20/0x20 [videodev] [] ? video_usercopy+0x319/0x4e0 [videodev] [] ? page_add_new_anon_rmap+0x71/0xa0 [] ? mem_cgroup_commit_charge+0x52/0x90 [] ? handle_mm_fault+0xc18/0x1680 [] ? v4l2_ioctl+0xac/0xd0 [videodev] [] ? do_vfs_ioctl+0x28f/0x480 [] ? SyS_ioctl+0x74/0x80 [] ? entry_SYSCALL_64_fastpath+0x16/0x75 Code: c7 93 d9 79 a0 5b 5d e9 f1 f3 9a e0 0f 1f 00 66 2e 0f 1f 84 00 00 00 00 00 66 66 66 66 90 53 31 d2 48 89 fb 48 83 ec 08 8b 46 10 76 0c 80 bf ac 0c 00 00 00 88 87 4e 0e 00 00 74 09 80 bf 4f RIP [] sd_set_streamparm+0x12/0x60 [gspca_ov534] RSP ---[ end trace 279710c2c6c72080 ]--- Following what the doc says about a zeroed timeperframe (see http://www.linuxtv.org/downloads/v4l-dvb-apis/vidioc-g-parm.html): ... To reset manually applications can just set this field to zero. fix the issue by resetting the frame rate to a default value in case of an unusable timeperframe. The fix is done in the subdrivers instead of gspca.c because only the subdrivers have notion of a default frame rate to reset the camera to. Signed-off-by: Antonio Ospite Cc: stable@vger.kernel.org Reviewed-by: Hans de Goede Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/gspca/ov534.c | 9 +++++++-- drivers/media/usb/gspca/topro.c | 6 +++++- 2 files changed, 12 insertions(+), 3 deletions(-) commit ce3556bde3f507788bc3d0eedbf2e2cc85ba9f8c Author: Terry Heo Date: Tue Sep 22 05:18:05 2015 -0300 [media] cx231xx: fix bulk transfer mode The current cx231xx driver doesn't work with bulk transfer mode. This patch makes it possible to use bulk transfer mode. Signed-off-by: Terry Heo Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/cx231xx/cx231xx-core.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) commit 18a8560cbd627c96477f8f44513e3744d84aced8 Author: Julia Lawall Date: Fri Nov 13 09:38:32 2015 -0200 [media] radio-shark2: constify radio_tea5777_ops structures The radio_tea5777_ops structure is never modified, so declare it as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/radio/radio-shark2.c | 2 +- drivers/media/radio/radio-tea5777.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit e88a3f81215e470cd3228a5d746eb7ad9fd1965a Author: Julia Lawall Date: Fri Nov 13 08:46:00 2015 -0200 [media] media: videobuf2: fix compare_const_fl.cocci warnings Move constants to the right of binary operators. Generated by: scripts/coccinelle/misc/compare_const_fl.cocci CC: Junghak Sung Signed-off-by: Fengguang Wu Signed-off-by: Julia Lawall Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/videobuf2-v4l2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5d273c7513ed1cd39611b037378a73295bd11a7a Author: Ricardo Ribalda Date: Thu Oct 29 08:10:32 2015 -0200 [media] Docbook: media: Document changes on struct v4l2_ext_controls Vidioc-g-ext-ctrls can now be used to get the default value of the controls. Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/v4l/v4l2.xml | 10 ++++++++++ .../DocBook/media/v4l/vidioc-g-ext-ctrls.xml | 22 ++++++++++++++++++++++ 2 files changed, 32 insertions(+) commit 082afb7c4ee6ce0c1c0451816bf2c5a747fc51b1 Author: Ricardo Ribalda Date: Thu Oct 29 08:10:31 2015 -0200 [media] media/usb/pvrusb2: Support for V4L2_CTRL_WHICH_DEF_VAL This driver does not use the control infrastructure. Add support for the new field which on structure v4l2_ext_controls Acked-by: Mike Isely Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/pvrusb2/pvrusb2-v4l2.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) commit 91739838a5860a24863d76ab8cb10e15f10b3fc1 Author: Ricardo Ribalda Date: Thu Oct 29 08:10:30 2015 -0200 [media] usb/uvc: Support for V4L2_CTRL_WHICH_DEF_VAL This driver does not use the control infrastructure. Add support for the new field which on structure v4l2_ext_controls Signed-off-by: Ricardo Ribalda Delgado Acked-by: Laurent Pinchart Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/uvc/uvc_v4l2.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 953eae5d8d7492a9200aaee0a60cc0838e7a2cfe Author: Ricardo Ribalda Date: Thu Oct 29 08:10:29 2015 -0200 [media] media/v4l2-core: struct struct v4l2_ext_controls param which Support for new field which on v4l2_ext_controls, used to get the default value of one or more controls. Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-ctrls.c | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) commit 0f8017bebf3efd3dcb115bf8a3f883b3123019ee Author: Ricardo Ribalda Date: Thu Oct 29 08:10:28 2015 -0200 [media] media/core: Replace ctrl_class with which Replace the obsolete field ctrl_class with "which". Make sure it not used in future modules by commenting out the field with ifndef __KERNEL_ . The field cannot be simply removed because that would be change on the kenel API to the userspace (and we don't like that). Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab .../DocBook/media/v4l/vidioc-g-ext-ctrls.xml | 6 +++--- drivers/media/platform/s5p-mfc/s5p_mfc_dec.c | 2 +- drivers/media/platform/s5p-mfc/s5p_mfc_enc.c | 2 +- drivers/media/v4l2-core/v4l2-compat-ioctl32.c | 6 +++--- drivers/media/v4l2-core/v4l2-ctrls.c | 24 +++++++++++----------- drivers/media/v4l2-core/v4l2-ioctl.c | 14 ++++++------- include/uapi/linux/videodev2.h | 5 +++++ 7 files changed, 32 insertions(+), 27 deletions(-) commit e64e6bd0f46c78b53b236474f59bd1290b834c89 Author: Imre Deak Date: Mon Nov 9 20:16:26 2015 +0200 drm/i915: get runtime PM reference around GEM set_tiling IOCTL After fixing the same issue in the set_caching IOCTL and Chris' request to check out the possibilities for an improved RPM ref handling I noticed that we have the same issue in the set_tiling IOCTL. Fix this up.I didn't see any bug reports about this one, but the GTT unbind operation on this path accesses the HW, which needs the ref. Signed-off-by: Imre Deak Reviewed-by: Chris Wilson Link: http://patchwork.freedesktop.org/patch/msgid/1447092986-11165-1-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/i915_gem_tiling.c | 4 ++++ 1 file changed, 4 insertions(+) commit 35ec2a2fa5a362b07b590ae1568dc35e47a7b846 Author: Ricardo Ribalda Date: Thu Oct 29 08:10:27 2015 -0200 [media] videodev2.h: Extend struct v4l2_ext_controls So it can be used to get the default value of a control. Without this change it is not possible to get the default value of array controls. Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab include/uapi/linux/videodev2.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit dc5e02050b8574393d921ed76d37eb359b55f39a Author: Hans Verkuil Date: Thu Nov 12 13:30:39 2015 -0200 [media] adv7511: fix incorrect bit offset The quantization bits are in bits 7-6, not 7-4, so shift by 6 instead of 4. This bug is caused by a typo in the adv7511 datasheet. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/adv7511.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 74c9c0febb605edea9878ed69906b7a3f8be273f Author: Mats Randgaard Date: Thu Nov 12 10:34:55 2015 -0200 [media] v4l2-dv-timings: Compare horizontal blanking hsync and hbackporch must also be compared Signed-off-by: Mats Randgaard Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-dv-timings.c | 2 ++ 1 file changed, 2 insertions(+) commit 95ad7ff3890320c2b881cc6e3d1d00a77ae1a8f5 Author: Ricardo Ribalda Date: Wed Nov 11 09:58:34 2015 -0200 [media] v4l2-core/v4l2-ctrls: Filter NOOP CH_RANGE events If modify_range is called but no range is changed, do not send the CH_RANGE event. Reported-by: Dimitrios Katsaros Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-ctrls.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) commit 0dac45f0e5a5f55cf454e9e2ca86221539e63357 Author: Dan Carpenter Date: Tue Nov 10 20:23:53 2015 -0200 [media] av7110: potential divide by zero "len" comes from dvb_video_ioctl() and there is a possibility that it is zero. We do a divide by len later in the function so that's not ok. Signed-off-by: Dan Carpenter Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/ttpci/av7110_av.c | 3 +++ 1 file changed, 3 insertions(+) commit 75d63a40a5c01cf6ba9572cb124488a0e3baa6c1 Author: Dan Carpenter Date: Tue Nov 10 20:22:49 2015 -0200 [media] av7110: don't allow negative volumes The issue here is that we there is a static checker warning because we have a user controlled volume setting and we cap the upper bound but we allow negative numbers. Negative volumes don't make sense, so let's make these variables unsigned. Signed-off-by: Dan Carpenter Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/ttpci/av7110_av.c | 6 ++++-- drivers/media/pci/ttpci/av7110_av.h | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) commit 5bab6f60cb4d1417ad7c599166bcfec87529c1a2 Author: Chris Wilson Date: Fri Oct 23 18:43:32 2015 +0100 drm/i915: Serialise updates to GGTT with access through GGTT on Braswell When accessing through the GTT from one CPU whilst concurrently updating the GGTT PTEs in another thread, the hardware likes to return random data. As we have strong serialisation prevent us from modifying the PTE of an active GTT mmapping, we have to conclude that it whilst modifying other PTE's that error occurs. (I have not looked for any pattern such as modifying PTE within the same page or cacheline as active PTE - though checking whether revoking neighbouring objects should be enough to test that theory.) The corruption also seems restricted to Braswell and disappears with maxcpus=0. This patch stops all access through the GTT by other CPUs when we update any PTE by stopping the machine around the GGTT update. Note that splitting up the 64 bit write into two 32 bit writes was tried and found to fail too. Testcase: igt/gem_concurrent_blit Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89079 Signed-off-by: Chris Wilson [danvet: Add note about 2x 32bits failing too.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/Kconfig | 1 + drivers/gpu/drm/i915/i915_gem_gtt.c | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+) commit 4623e5967448444a4ea1e77beb58898c4af48693 Author: Hans Verkuil Date: Thu Oct 29 03:02:06 2015 -0200 [media] vb2: fix a regression in poll() behavior for output,streams In the 3.17 kernel the poll() behavior changed for output streams: as long as not all buffers were queued up poll() would return that userspace can write. This is fine for the write() call, but when using stream I/O this changed the behavior since the expectation was that it would wait for buffers to become available for dequeuing. This patch only enables the check whether you can queue buffers for file I/O only, and skips it for stream I/O. Signed-off-by: Hans Verkuil Acked-by: Laurent Pinchart Cc: # for v3.17 and up Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/videobuf2-v4l2.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit f6de9f608504849f3437abe60eeb43932ec5455e Author: Hans Verkuil Date: Thu Oct 29 02:59:37 2015 -0200 [media] vivid: fix compliance error If vivid is loaded with the no_error_inj=1 option, then v4l2-compliance will fail for the video and vbi output nodes because the vivid control class has no controls. Don't add the control class for video and vbi output if no_error_inj is true. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vivid/vivid-ctrls.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit ba463988a00520d0019cfc70f42ecfe122e9fefd Author: Hans Verkuil Date: Thu Oct 22 06:56:21 2015 -0200 [media] go7007: fix broken test The wrong flags field was tested for the GO7007_BOARD_HAS_AUDIO flag: that flag is in board->main_info.flags, not in board->flags. Reported-by: Dan Carpenter Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/go7007/go7007-usb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f18e16239f6bfcecf475aba0967a2cf039f6b5fe Author: Hans Verkuil Date: Thu Oct 22 06:46:53 2015 -0200 [media] DocBook media: s/input stream/capture stream/ The term "input stream" is confusing since it is not clear whether this is an input stream from the point of view of the application or from the point of view of the hardware. So replace it with the more standard term "capture stream". Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/v4l/io.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit a5c36fa6eec60bb9613d8eee907311265771b0f3 Author: Andrzej Hajda Date: Mon Sep 21 10:33:57 2015 -0300 [media] staging: media: davinci_vpfe: fix ipipe_mode type The variable can take negative values. 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 Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/davinci_vpfe/dm365_ipipe_hw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cbb6f1f9c72313f16e97ed268b19c1ae30903b33 Author: Junsu Shin Date: Mon Aug 10 18:40:59 2015 -0300 [media] staging: media: davinci_vpfe: Fix over 80 characters coding style issue This is a patch to the dm365_ipipe.c that fixes over 80 characters warning detected. Signed-off-by: Junsu Shin Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/davinci_vpfe/dm365_ipipe.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 3148543da66201da18ee7eadf59015de99243bee Author: Arnd Bergmann Date: Wed Jan 28 19:17:43 2015 -0200 [media] staging/davinci/vpfe/dm365: add missing dependencies This driver can only be built when VIDEO_V4L2_SUBDEV_API and VIDEO_DAVINCI_VPBE_DISPLAY are also provided by the kernel. drivers/staging/media/davinci_vpfe/dm365_isif.c: In function '__isif_get_format': drivers/staging/media/davinci_vpfe/dm365_isif.c:1410:3: error: implicit declaration of function 'v4l2_subdev_get_try_format' [-Werror=implicit-function-declaration] return v4l2_subdev_get_try_format(fh, pad); ^ Signed-off-by: Arnd Bergmann Acked-by: Lad, Prabhakar Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/davinci_vpfe/Kconfig | 2 ++ 1 file changed, 2 insertions(+) commit d9f4844af8bb7f5c0ef7361aeb9c39be31d45a9a Author: Nicholas Mc Guire Date: Mon Jan 26 05:27:05 2015 -0200 [media] staging: media: davinci_vpfe: drop condition with no effect As the if and else branch body are identical the condition has no effect and can be dropped. Signed-off-by: Nicholas Mc Guire Acked-by: Lad, Prabhakar Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/davinci_vpfe/dm365_resizer.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 80a7f727b0b0a1a3c530e39c0c059914e1a7199c Author: Julia Lawall Date: Tue Jul 29 12:16:43 2014 -0300 [media] drivers/staging/media/davinci_vpfe/vpfe_mc_capture.c: use correct structure type name in sizeof Correct typo in the name of the type given to sizeof. Because it is the size of a pointer that is wanted, the typo has no impact on compilation or execution. This problem was found using Coccinelle (http://coccinelle.lip6.fr/). The semantic patch used can be found in message 0 of this patch series. [Replace sizeof(type) by sizeof(variable)]] Signed-off-by: Julia Lawall Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/davinci_vpfe/vpfe_mc_capture.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 14631e9d740a2353c4b5734716c84a84e0b1c075 Author: Shubhangi Shrivastava Date: Wed Oct 14 14:56:49 2015 +0530 drm/i915: force link training when requested by Sink Compliance test 4.3.1.11 requires source to perform link training always if the automated test requests for it. This patch enforces this requirement. Signed-off-by: Sivakumar Thulasimani Signed-off-by: Shubhangi Shrivastava Reviewed-by: Sonika Jindal drivers/gpu/drm/i915/intel_dp.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 4df6960e0960387d4d3b5085f6639ec14a1f76b7 Author: Shubhangi Shrivastava Date: Wed Oct 28 15:30:36 2015 +0530 drm/i915: Cleanup test data during long/short hotplug Automated test data that is updated when a test is requested is not cleared till next automated test request is recevied which can cause various problems. This patch fixes this by clearing this during the next short pulse and on hot unplug. For example, when TEST_LINK_TRAINING is requested it is updated to appropriate variable inside intel_dp_handle_test_request but is also cleared only inside the same function. if the next short pulse does not have the AUTOMATED_TEST_REQUEST bits set the variable will not be cleared resulting in carrying incorrect test status in local variables. v2: Added comments and moved nack and defer variables before set_edid (Sonika) Signed-off-by: Sivakumar Thulasimani Signed-off-by: Shubhangi Shrivastava Reviewed-by: Sonika Jindal drivers/gpu/drm/i915/intel_dp.c | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) commit ed29210cd6a67425026e78aa298fa434e11a74e3 Author: Juergen Gross Date: Tue Nov 17 13:05:43 2015 +0100 x86: Remove unused function cpu_has_ht_siblings() It is used nowhere. Signed-off-by: Juergen Gross Link: http://lkml.kernel.org/r/1447761943-770-1-git-send-email-jgross@suse.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/smp.h | 9 --------- 1 file changed, 9 deletions(-) commit aab3c3f34cc2dd8230052770712606d65de6538f Author: Henry Chen Date: Tue Nov 17 16:36:49 2015 +0800 regulator: mt6311: MT6311_REGULATOR needs to select REGMAP_I2C This patch fix the below build error: drivers/regulator/mt6311-regulator.c:111: undefined reference to `__devm_regmap_init_i2c' Signed-off-by: Henry Chen Signed-off-by: Mark Brown Cc: stable@vger.kernel.org drivers/regulator/Kconfig | 1 + 1 file changed, 1 insertion(+) commit e6d900239e7aee6e4c4cd863b2b9bbcc62ec71e1 Author: Kumar, Mahesh Date: Fri Oct 23 09:41:34 2015 -0700 drm/i915/skl: Correct other-pipe watermark update condition check (v2) If ddb allocation for planes in current CRTC is changed, that doesn't lead to ddb allocation change for other CRTCs, because our DDB allocation is not dynamic according to plane parameters, ddb is allocated according to number of CRTC enabled, & divided equally among CTRC's. In current condition check during Watermark calculation, if number of plane/ddb allocation changes for current CRTC, Watermark for other pipes are recalculated. But there is no change in DDB allocation of other pipe so watermark is also not changed, This leads to warning messages. WARN_ON(!wm_changed) This patch corrects this and check if DDB allocation for pipes is changed, then only recalculate watermarks. v2 (by Matt): Rebased to latest -nightly and fixed a typo Signed-off-by: Kumar, Mahesh Reviewed-by(v1): Ville Syrjälä Signed-off-by: Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_pm.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) commit 4f9ea86604e3ba64edd2817795798168fbb3c1a6 Author: LABBE Corentin Date: Mon Nov 16 09:35:54 2015 +0100 crypto: sun4i-ss - add missing statesize sun4i-ss implementaton of md5/sha1 is via ahash algorithms. Commit 8996eafdcbad ("crypto: ahash - ensure statesize is non-zero") made impossible to load them without giving statesize. This patch specifiy statesize for sha1 and md5. Fixes: 6298e948215f ("crypto: sunxi-ss - Add Allwinner Security System crypto accelerator") Cc: # v4.3+ Tested-by: Chen-Yu Tsai Signed-off-by: LABBE Corentin Signed-off-by: Herbert Xu drivers/crypto/sunxi-ss/sun4i-ss-core.c | 2 ++ 1 file changed, 2 insertions(+) commit f9d1293b3c635f5224f7445acbe01672880a4945 Author: Markus Elfring Date: Sun Nov 15 16:51:21 2015 +0100 crypto: ixp4xx - Delete unnecessary checks before the function call "dma_pool_destroy" The dma_pool_destroy() function tests whether its argument is NULL and then returns immediately. Thus the test around the calls is not needed. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring Signed-off-by: Herbert Xu drivers/crypto/ixp4xx_crypto.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 202a32f0463ebc58833cc3e75c069996437ba526 Author: Julia Lawall Date: Sat Nov 14 11:06:59 2015 +0100 crypto: qat - constify pci_error_handlers structures This pci_error_handlers structure is never modified, like all the other pci_error_handlers structures, so declare it as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/adf_aer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 457e6f73a12bb713cc3eec2c979d707cb5716a07 Author: Andrzej Zaborowski Date: Fri Nov 13 12:01:33 2015 +0100 crypto: rsa - only require output buffers as big as needed. rhe RSA operations explicitly left-align the integers being written skipping any leading zero bytes, but still require the output buffers to include just enough space for the integer + the leading zero bytes. Since the size of integer + the leading zero bytes (i.e. the key modulus size) can now be obtained more easily through crypto_akcipher_maxsize change the operations to only require as big a buffer as actually needed if the caller has that information. The semantics for request->dst_len don't change. Signed-off-by: Andrew Zaborowski Signed-off-by: Herbert Xu crypto/rsa.c | 24 ------------------------ 1 file changed, 24 deletions(-) commit 9cbe21d8f89dfa851e593ca12725e910ec60c10c Author: Andrzej Zaborowski Date: Fri Nov 13 12:01:32 2015 +0100 lib/mpi: only require buffers as big as needed for the integer Since mpi_write_to_sgl and mpi_read_buffer explicitly left-align the integers being written it makes no sense to require a buffer big enough for the number + the leading zero bytes which are not written. The error returned also doesn't convey any information. So instead require only the size needed and return -EOVERFLOW to signal when buffer too short. Signed-off-by: Andrew Zaborowski Signed-off-by: Herbert Xu lib/mpi/mpicoder.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) commit 7aff7d0abc83b0991e83af3c43f0d0df47e7c3bf Author: LABBE Corentin Date: Wed Nov 4 21:13:39 2015 +0100 crypto: amcc - check return value of sg_nents_for_len The sg_nents_for_len() function could fail, this patch add a check for its return value. Signed-off-by: LABBE Corentin Signed-off-by: Herbert Xu drivers/crypto/amcc/crypto4xx_core.c | 4 ++++ 1 file changed, 4 insertions(+) commit f9970c2865d300bd0bb4ba006a0283a8ffa51ada Author: LABBE Corentin Date: Wed Nov 4 21:13:38 2015 +0100 crypto: caam - check return value of sg_nents_for_len The sg_nents_for_len() function could fail, this patch add a check for its return value. We do the same for sg_count since it use sg_nents_for_len(). Signed-off-by: LABBE Corentin Signed-off-by: Herbert Xu drivers/crypto/caam/caamhash.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit f051f95eb47bb216ad0a8fbe64b4be179cc5abec Author: LABBE Corentin Date: Wed Nov 4 21:13:37 2015 +0100 crypto: picoxcell - check return value of sg_nents_for_len The sg_nents_for_len() function could fail, this patch add a check for its return value. In the same time, we remove sg_count() as it is used as an alias of sg_nents_for_len. Signed-off-by: LABBE Corentin Acked-by: Jamie Iles Signed-off-by: Herbert Xu drivers/crypto/picoxcell_crypto.c | 48 +++++++++++++++++++++++++++------------ 1 file changed, 34 insertions(+), 14 deletions(-) commit 4fa9948ca5bf308fabd5c9b584bf710f5d393859 Author: LABBE Corentin Date: Wed Nov 4 21:13:36 2015 +0100 crypto: qce - check return value of sg_nents_for_len The sg_nents_for_len() function could fail, this patch add a check for its return value. Signed-off-by: LABBE Corentin Signed-off-by: Herbert Xu drivers/crypto/qce/ablkcipher.c | 8 ++++++++ drivers/crypto/qce/sha.c | 5 +++++ 2 files changed, 13 insertions(+) commit 6c2b74d4774f36ea23f9cc8bb1401c1215fcd671 Author: LABBE Corentin Date: Wed Nov 4 21:13:35 2015 +0100 crypto: sahara - check return value of sg_nents_for_len The sg_nents_for_len() function could fail, this patch add a check for its return value. Signed-off-by: LABBE Corentin Signed-off-by: Herbert Xu drivers/crypto/sahara.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 8e409fe10695cb9729a8bdfa49b0af435b5ec89f Author: LABBE Corentin Date: Wed Nov 4 21:13:34 2015 +0100 crypto: talitos - check return value of sg_nents_for_len The sg_nents_for_len() function could fail, this patch add a check for its return value. Signed-off-by: LABBE Corentin Signed-off-by: Herbert Xu drivers/crypto/talitos.c | 41 ++++++++++++++++++++++++++++++++++------- 1 file changed, 34 insertions(+), 7 deletions(-) commit c22dafb3b101073d83262b6c9020b6578d2a442a Author: LABBE Corentin Date: Wed Nov 4 21:13:33 2015 +0100 crypto: marvell - check return value of sg_nents_for_len The sg_nents_for_len() function could fail, this patch add a check for its return value. Signed-off-by: LABBE Corentin Signed-off-by: Herbert Xu drivers/crypto/marvell/cipher.c | 8 ++++++++ drivers/crypto/marvell/hash.c | 4 ++++ 2 files changed, 12 insertions(+) commit 652d5b8a8da8f05f7fb301067ffeef78b6f2eb01 Author: LABBE Corentin Date: Fri Oct 23 14:10:36 2015 +0200 crypto: algif - Change some variable to size_t Some variable are set as int but store only positive values. Furthermore there are used in operation/function that wait for unsigned value. This patch set them as size_t. Signed-off-by: LABBE Corentin Signed-off-by: Herbert Xu crypto/algif_aead.c | 6 +++--- crypto/algif_skcipher.c | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) commit c52b67338937ffee7a4d7225d9cb334ace4279dd Author: Salvatore Benedetto Date: Thu Oct 22 15:23:12 2015 +0100 crypto: qat - remove superfluous check from adf_probe - ent->device is already checked at the beginning of the function against the same value. This check is a duplicate. Signed-off-by: Salvatore Benedetto Signed-off-by: Herbert Xu drivers/crypto/qat/qat_dh895xcc/adf_drv.c | 8 +------- drivers/crypto/qat/qat_dh895xccvf/adf_drv.c | 9 +-------- 2 files changed, 2 insertions(+), 15 deletions(-) commit d956fed7b68fa1713b7ad0d8e100824cc55afce8 Author: Tadeusz Struk Date: Thu Oct 22 06:30:36 2015 -0700 crypto: qat - fix get instance function Fix the logic in case we have found a device on a given node. Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/qat_crypto.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 16f56e8b751f72e0e105abc1d8f5912c340a5623 Author: LABBE Corentin Date: Thu Oct 22 08:51:52 2015 +0200 crypto: hifn_795x - fix coding style The hifn_795x driver is old and have lots of style issue. This patch try to solve easy ones. Signed-off-by: LABBE Corentin Signed-off-by: Herbert Xu drivers/crypto/hifn_795x.c | 301 +++++++++++++++++++++------------------------ 1 file changed, 138 insertions(+), 163 deletions(-) commit cfeecab44c8d9682bea8c65425920ec3b9ff8149 Author: LABBE Corentin Date: Thu Oct 22 08:51:51 2015 +0200 crypto: hifn_795x - use dev_xx/pr_xx instead of printk This patch replace all printk by their dev_xx/pr_xx counterpart. The patch remove also all custom dprintk by pr_debug/dev_debug Signed-off-by: LABBE Corentin Signed-off-by: Herbert Xu drivers/crypto/hifn_795x.c | 149 ++++++++++++++++++++------------------------- 1 file changed, 67 insertions(+), 82 deletions(-) commit 276a2ff1aea2d86681ccdcc149c9297dd639f493 Author: LABBE Corentin Date: Thu Oct 22 08:51:50 2015 +0200 crypto: hifn_795x - remove the hifn_test function The hifn_test function is redundant with test done at register time by the crypto API, so remove it. Signed-off-by: LABBE Corentin Signed-off-by: Herbert Xu drivers/crypto/hifn_795x.c | 58 ---------------------------------------------- 1 file changed, 58 deletions(-) commit b0c8bc1b9d8027093f8506266ab06c5cf0e5199f Author: Tadeusz Struk Date: Tue Oct 20 12:50:03 2015 -0700 crypto: qat - when stopping all devices make fure VF are stopped first When stopping all devices make sure VFs are stopped before the corresponding PF. VFs will always be after PF so just need to loop back. Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/adf_ctl_drv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 125fd67753e67a6043e821e397661f0f3aa4d438 Author: Javier Martinez Canillas Date: Fri Sep 25 15:51:32 2015 +0200 ARM: u300: remove regulator-compatible usage The regulator-compatible property from the regulator DT binding was deprecated and the correct approach is to use the node's name. This patch has no functional changes since the values of the node's name and the regulator-compatible match for all the regulators. Signed-off-by: Javier Martinez Canillas Signed-off-by: Linus Walleij arch/arm/boot/dts/ste-u300.dts | 10 ---------- 1 file changed, 10 deletions(-) commit 25e8930ce85b09e2741f15f01ad2c861eb1b4eab Author: Javier Martinez Canillas Date: Fri Sep 25 15:51:31 2015 +0200 ARM: ux500: remove regulator-compatible usage The regulator-compatible property from the regulator DT binding was deprecated and the correct approach is to use the node's name. This patch has no functional changes since the values of the node's name and the regulator-compatible match for all the regulators. Signed-off-by: Javier Martinez Canillas Signed-off-by: Linus Walleij arch/arm/boot/dts/ste-dbx5x0.dtsi | 33 --------------------------------- 1 file changed, 33 deletions(-) commit b323dd30718e2055adb5534e52f685a57c119c18 Author: Kuninori Morimoto Date: Tue Nov 17 08:28:56 2015 +0000 ASoC: ak4613: don't overwrite CTRL2 register Current code set DFS settings on CTRL2 register, but it overwrite default settings. This patch fixup it. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/codecs/ak4613.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f46a93b820eb3707faf238cd769a004e2504515f Author: Kuninori Morimoto Date: Tue Nov 17 08:28:11 2015 +0000 ASoC: rsnd: ssi: 24bit data needs right-aligned settings Data left/right aligned is controlled by PDTA bit on SSICR. But default is left-aligned. Thus 24bit sound will be very small sound without this patch. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/ssi.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 166765ea8b686c64b590fa62664a4adb35aa2d6a Author: Vinod Koul Date: Tue Nov 17 11:17:33 2015 +0530 ASoC: rt286: set combo jack for Skylake Skylake platform also uses combo jack configuration, so add Skylake to existing DMI match for combo jack Signed-off-by: Vinod Koul Acked-by: Bard Liao Signed-off-by: Mark Brown sound/soc/codecs/rt286.c | 6 ++++++ 1 file changed, 6 insertions(+) commit f10a2585811ebd503ddf8ebcc9a32166c7b4b05f Author: Markus Elfring Date: Thu Nov 5 17:10:22 2015 +0100 pinctrl: Delete unnecessary checks The pinctrl_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 Signed-off-by: Linus Walleij drivers/pinctrl/bcm/pinctrl-cygnus-gpio.c | 3 +-- drivers/pinctrl/pinctrl-single.c | 5 +---- 2 files changed, 2 insertions(+), 6 deletions(-) commit eb4b0ec75ec34e90bd1594c665f16de0cb4e3bf9 Author: Mauro Carvalho Chehab Date: Mon Nov 16 08:35:53 2015 -0200 [media] include/media: move platform_data to linux/platform_data/media Let's not mix platform_data headers with the core headers. Instead, let's create a subdir at linux/platform_data and move the headers to that common place, adding it to MAINTAINERS. The headers were moved with: mkdir include/linux/platform_data/media/; git mv include/media/gpio-ir-recv.h include/media/ir-rx51.h include/media/mmp-camera.h include/media/omap1_camera.h include/media/omap4iss.h include/media/s5p_hdmi.h include/media/si4713.h include/media/sii9234.h include/media/smiapp.h include/media/soc_camera.h include/media/soc_camera_platform.h include/media/timb_radio.h include/media/timb_video.h include/linux/platform_data/media/ And the references fixed with this script: MAIN_DIR="linux/platform_data/" PREV_DIR="media/" DIRS="media/" echo "Checking affected files" >&2 for i in $DIRS; do for j in $(find include/$MAIN_DIR/$i -type f -name '*.h'); do n=`basename $j` git grep -l $n done done|sort|uniq >files && ( echo "Handling files..." >&2; echo "for i in \$(cat files|grep -v Documentation); do cat \$i | \\"; ( cd include/$MAIN_DIR; for j in $DIRS; do for i in $(ls $j); do echo "perl -ne 's,(include [\\\"\\<])$PREV_DIR($i)([\\\"\\>]),\1$MAIN_DIR$j\2\3,; print \$_' |\\"; done; done; echo "cat > a && mv a \$i; done"; ); echo "Handling documentation..." >&2; echo "for i in MAINTAINERS \$(cat files); do cat \$i | \\"; ( cd include/$MAIN_DIR; for j in $DIRS; do for i in $(ls $j); do echo " perl -ne 's,include/$PREV_DIR($i)\b,include/$MAIN_DIR$j\1,; print \$_' |\\"; done; done; echo "cat > a && mv a \$i; done" ); ) >script && . ./script Signed-off-by: Mauro Carvalho Chehab Acked-by: Arnd Bergmann Acked-by: Lee Jones Acked-by: Krzysztof Kozlowski Documentation/video4linux/omap4_camera.txt | 2 +- Documentation/video4linux/si4713.txt | 2 +- MAINTAINERS | 1 + arch/arm/mach-omap1/include/mach/camera.h | 2 +- arch/arm/mach-omap2/board-rx51-peripherals.c | 4 +- arch/arm/plat-samsung/devs.c | 2 +- arch/sh/boards/mach-ap325rxa/setup.c | 2 +- drivers/media/platform/marvell-ccic/mmp-driver.c | 2 +- drivers/media/platform/s5p-tv/hdmi_drv.c | 2 +- drivers/media/platform/s5p-tv/sii9234_drv.c | 2 +- drivers/media/platform/soc_camera/omap1_camera.c | 2 +- .../platform/soc_camera/soc_camera_platform.c | 2 +- drivers/media/platform/timblogiw.c | 2 +- drivers/media/radio/radio-timb.c | 2 +- drivers/media/radio/si4713/radio-usb-si4713.c | 2 +- drivers/media/radio/si4713/si4713.h | 2 +- drivers/media/rc/gpio-ir-recv.c | 2 +- drivers/media/rc/ir-rx51.c | 2 +- drivers/mfd/timberdale.c | 4 +- drivers/staging/media/omap4iss/iss.h | 2 +- drivers/staging/media/omap4iss/iss_csiphy.h | 2 +- include/linux/platform_data/media/gpio-ir-recv.h | 23 ++++++ include/linux/platform_data/media/ir-rx51.h | 10 +++ include/linux/platform_data/media/mmp-camera.h | 9 +++ include/linux/platform_data/media/omap1_camera.h | 35 +++++++++ include/linux/platform_data/media/omap4iss.h | 65 +++++++++++++++++ include/linux/platform_data/media/s5p_hdmi.h | 36 ++++++++++ include/linux/platform_data/media/si4713.h | 48 +++++++++++++ include/linux/platform_data/media/sii9234.h | 24 +++++++ .../platform_data/media/soc_camera_platform.h | 83 ++++++++++++++++++++++ include/linux/platform_data/media/timb_radio.h | 30 ++++++++ include/linux/platform_data/media/timb_video.h | 33 +++++++++ include/media/gpio-ir-recv.h | 24 ------- include/media/ir-rx51.h | 10 --- include/media/mmp-camera.h | 9 --- include/media/omap1_camera.h | 35 --------- include/media/omap4iss.h | 65 ----------------- include/media/s5p_hdmi.h | 37 ---------- include/media/si4713.h | 48 ------------- include/media/sii9234.h | 24 ------- include/media/soc_camera_platform.h | 83 ---------------------- include/media/timb_radio.h | 30 -------- include/media/timb_video.h | 33 --------- 43 files changed, 419 insertions(+), 420 deletions(-) commit d647f0b70ce2b4aeb443639dc92b2d859da697a7 Author: Mauro Carvalho Chehab Date: Fri Nov 13 19:40:07 2015 -0200 [media] include/media: move driver interface headers to a separate dir Let's not mix headers used by the core with those headers that are needed by some driver-specific interface header. The headers used on drivers were manually moved using: mkdir include/media/drv-intf/ git mv include/media/cx2341x.h include/media/cx25840.h \ include/media/exynos-fimc.h include/media/msp3400.h \ include/media/s3c_camif.h include/media/saa7146.h \ include/media/saa7146_vv.h include/media/sh_mobile_ceu.h \ include/media/sh_mobile_csi2.h include/media/sh_vou.h \ include/media/si476x.h include/media/soc_mediabus.h \ include/media/tea575x.h include/media/drv-intf/ And the references for those headers were corrected using: MAIN_DIR="media/" PREV_DIR="media/" DIRS="drv-intf/" echo "Checking affected files" >&2 for i in $DIRS; do for j in $(find include/$MAIN_DIR/$i -type f -name '*.h'); do n=`basename $j` git grep -l $n done done|sort|uniq >files && ( echo "Handling files..." >&2; echo "for i in \$(cat files|grep -v Documentation); do cat \$i | \\"; ( cd include/$MAIN_DIR; for j in $DIRS; do for i in $(ls $j); do echo "perl -ne 's,(include [\\\"\\<])$PREV_DIR($i)([\\\"\\>]),\1$MAIN_DIR$j\2\3,; print \$_' |\\"; done; done; echo "cat > a && mv a \$i; done"; ); echo "Handling documentation..." >&2; echo "for i in MAINTAINERS \$(cat files); do cat \$i | \\"; ( cd include/$MAIN_DIR; for j in $DIRS; do for i in $(ls $j); do echo " perl -ne 's,include/$PREV_DIR($i)\b,include/$MAIN_DIR$j\1,; print \$_' |\\"; done; done; echo "cat > a && mv a \$i; done" ); ) >script && . ./script Signed-off-by: Mauro Carvalho Chehab Acked-by: Arnd Bergmann MAINTAINERS | 4 +- arch/sh/boards/mach-ap325rxa/setup.c | 2 +- arch/sh/boards/mach-ecovec24/setup.c | 4 +- arch/sh/boards/mach-kfr2r09/setup.c | 2 +- arch/sh/boards/mach-migor/setup.c | 2 +- arch/sh/boards/mach-se/7724/setup.c | 4 +- drivers/media/common/cx2341x.c | 2 +- drivers/media/common/saa7146/saa7146_core.c | 2 +- drivers/media/common/saa7146/saa7146_fops.c | 2 +- drivers/media/common/saa7146/saa7146_hlp.c | 2 +- drivers/media/common/saa7146/saa7146_i2c.c | 2 +- drivers/media/common/saa7146/saa7146_vbi.c | 2 +- drivers/media/common/saa7146/saa7146_video.c | 2 +- drivers/media/i2c/cx25840/cx25840-audio.c | 2 +- drivers/media/i2c/cx25840/cx25840-core.c | 2 +- drivers/media/i2c/cx25840/cx25840-firmware.c | 2 +- drivers/media/i2c/cx25840/cx25840-ir.c | 2 +- drivers/media/i2c/cx25840/cx25840-vbi.c | 2 +- drivers/media/i2c/m5mols/m5mols_capture.c | 2 +- drivers/media/i2c/msp3400-driver.c | 2 +- drivers/media/i2c/msp3400-driver.h | 2 +- drivers/media/i2c/msp3400-kthreads.c | 2 +- drivers/media/i2c/soc_camera/mt9m001.c | 2 +- drivers/media/i2c/soc_camera/mt9v022.c | 2 +- drivers/media/pci/bt8xx/bttv-driver.c | 2 +- drivers/media/pci/bt8xx/bttvp.h | 2 +- drivers/media/pci/cx18/cx23418.h | 2 +- drivers/media/pci/cx23885/cx23885-417.c | 2 +- drivers/media/pci/cx23885/cx23885-cards.c | 2 +- drivers/media/pci/cx23885/cx23885-video.c | 2 +- drivers/media/pci/cx23885/cx23885.h | 2 +- drivers/media/pci/cx88/cx88-blackbird.c | 2 +- drivers/media/pci/cx88/cx88.h | 2 +- drivers/media/pci/ivtv/ivtv-cards.c | 4 +- drivers/media/pci/ivtv/ivtv-driver.h | 2 +- drivers/media/pci/ivtv/ivtv-i2c.c | 2 +- drivers/media/pci/ivtv/ivtv-routing.c | 2 +- drivers/media/pci/saa7146/hexium_gemini.c | 2 +- drivers/media/pci/saa7146/hexium_orion.c | 2 +- drivers/media/pci/saa7146/mxb.c | 2 +- drivers/media/pci/ttpci/av7110.h | 2 +- drivers/media/pci/ttpci/budget-av.c | 2 +- drivers/media/pci/ttpci/budget.h | 2 +- drivers/media/platform/exynos4-is/common.c | 2 +- drivers/media/platform/exynos4-is/fimc-core.h | 2 +- drivers/media/platform/exynos4-is/fimc-isp-video.c | 2 +- drivers/media/platform/exynos4-is/fimc-isp.h | 2 +- drivers/media/platform/exynos4-is/fimc-lite-reg.c | 2 +- drivers/media/platform/exynos4-is/fimc-lite.c | 2 +- drivers/media/platform/exynos4-is/fimc-lite.h | 2 +- drivers/media/platform/exynos4-is/fimc-reg.c | 2 +- drivers/media/platform/exynos4-is/media-dev.c | 2 +- drivers/media/platform/exynos4-is/media-dev.h | 2 +- drivers/media/platform/exynos4-is/mipi-csis.c | 2 +- drivers/media/platform/s3c-camif/camif-core.h | 2 +- drivers/media/platform/s3c-camif/camif-regs.h | 2 +- drivers/media/platform/sh_vou.c | 2 +- drivers/media/platform/soc_camera/atmel-isi.c | 2 +- drivers/media/platform/soc_camera/mx2_camera.c | 2 +- drivers/media/platform/soc_camera/mx3_camera.c | 2 +- drivers/media/platform/soc_camera/omap1_camera.c | 2 +- drivers/media/platform/soc_camera/pxa_camera.c | 2 +- drivers/media/platform/soc_camera/rcar_vin.c | 2 +- .../platform/soc_camera/sh_mobile_ceu_camera.c | 6 +- drivers/media/platform/soc_camera/sh_mobile_csi2.c | 6 +- drivers/media/platform/soc_camera/soc_camera.c | 2 +- drivers/media/platform/soc_camera/soc_mediabus.c | 2 +- drivers/media/radio/radio-maxiradio.c | 2 +- drivers/media/radio/radio-sf16fmr2.c | 2 +- drivers/media/radio/radio-shark.c | 2 +- drivers/media/radio/radio-si476x.c | 2 +- drivers/media/radio/tea575x.c | 2 +- drivers/media/usb/cx231xx/cx231xx-417.c | 2 +- drivers/media/usb/cx231xx/cx231xx-cards.c | 2 +- drivers/media/usb/cx231xx/cx231xx-vbi.c | 2 +- drivers/media/usb/cx231xx/cx231xx-video.c | 2 +- drivers/media/usb/cx231xx/cx231xx.h | 2 +- drivers/media/usb/em28xx/em28xx-cards.c | 2 +- drivers/media/usb/em28xx/em28xx-video.c | 2 +- drivers/media/usb/pvrusb2/pvrusb2-audio.c | 2 +- drivers/media/usb/pvrusb2/pvrusb2-cx2584x-v4l.c | 2 +- drivers/media/usb/pvrusb2/pvrusb2-hdw-internal.h | 2 +- include/media/cx2341x.h | 295 ------------- include/media/cx25840.h | 188 -------- include/media/drv-intf/cx2341x.h | 295 +++++++++++++ include/media/drv-intf/cx25840.h | 188 ++++++++ include/media/drv-intf/exynos-fimc.h | 161 +++++++ include/media/drv-intf/msp3400.h | 225 ++++++++++ include/media/drv-intf/s3c_camif.h | 45 ++ include/media/drv-intf/saa7146.h | 471 +++++++++++++++++++++ include/media/drv-intf/saa7146_vv.h | 265 ++++++++++++ include/media/drv-intf/sh_mobile_ceu.h | 29 ++ include/media/drv-intf/sh_mobile_csi2.h | 48 +++ include/media/drv-intf/sh_vou.h | 33 ++ include/media/drv-intf/si476x.h | 37 ++ include/media/drv-intf/soc_mediabus.h | 112 +++++ include/media/drv-intf/tea575x.h | 84 ++++ include/media/exynos-fimc.h | 161 ------- include/media/msp3400.h | 226 ---------- include/media/s3c_camif.h | 45 -- include/media/saa7146.h | 471 --------------------- include/media/saa7146_vv.h | 265 ------------ include/media/sh_mobile_ceu.h | 29 -- include/media/sh_mobile_csi2.h | 48 --- include/media/sh_vou.h | 33 -- include/media/si476x.h | 37 -- include/media/soc_mediabus.h | 112 ----- include/media/tea575x.h | 84 ---- include/uapi/linux/v4l2-controls.h | 6 +- sound/pci/es1968.c | 2 +- sound/pci/fm801.c | 2 +- 111 files changed, 2089 insertions(+), 2088 deletions(-) commit b5dcee225ce972fecb054e104be22b2a6f65303d Author: Mauro Carvalho Chehab Date: Tue Nov 10 12:01:44 2015 -0200 [media] include/media: split I2C headers from V4L2 core Currently, include/media is messy, as it contains both the V4L2 core headers and some driver-specific headers on the same place. That makes harder to identify what core headers should be documented and what headers belong to I2C drivers that are included only by bridge/main drivers that would require the functions provided by them. Let's move those i2c specific files to its own subdirectory. The files to move were produced via the following script: mkdir include/media/i2c (cd include/media; for i in *.h; do n=`echo $i|sed s/.h$/.c/`; if [ -e ../../drivers/media/i2c/$n ]; then echo $i; git mv $i i2c/; fi; done) (cd include/media; for i in *.h; do n=`echo $i|sed s/.h$/.c/`; if [ -e ../../drivers/media/*/i2c/$n ]; then echo $i; git mv $i i2c/; fi; done) for i in include/media/*.h; do n=`basename $i`; (for j in $(git grep -l $n); do dirname $j; done)|sort|uniq|grep -ve '^.$' > list; num=$(wc -l list|cut -d' ' -f1); if [ $num == 1 ]; then if [ "`grep i2c list`" != "" ]; then git mv $i include/media/i2c; fi; fi; done And the references corrected via this script: MAIN_DIR="media/" PREV_DIR="media/" DIRS="i2c/" echo "Checking affected files" >&2 for i in $DIRS; do for j in $(find include/$MAIN_DIR/$i -type f -name '*.h'); do n=`basename $j` git grep -l $n done done|sort|uniq >files && ( echo "Handling files..." >&2; echo "for i in \$(cat files|grep -v Documentation); do cat \$i | \\"; ( cd include/$MAIN_DIR; for j in $DIRS; do for i in $(ls $j); do echo "perl -ne 's,(include [\\\"\\<])$PREV_DIR($i)([\\\"\\>]),\1$MAIN_DIR$j\2\3,; print \$_' |\\"; done; done; echo "cat > a && mv a \$i; done"; ); echo "Handling documentation..." >&2; echo "for i in MAINTAINERS \$(cat files); do cat \$i | \\"; ( cd include/$MAIN_DIR; for j in $DIRS; do for i in $(ls $j); do echo " perl -ne 's,include/$PREV_DIR($i)\b,include/$MAIN_DIR$j\1,; print \$_' |\\"; done; done; echo "cat > a && mv a \$i; done" ); ) >script && . ./script Merged Sakari Ailus patch that moves smiapp.h to include/media/i2c. Signed-off-by: Mauro Carvalho Chehab Acked-by: Arnd Bergmann MAINTAINERS | 20 +- arch/arm/mach-davinci/board-da850-evm.c | 4 +- arch/arm/mach-davinci/board-dm355-evm.c | 2 +- arch/arm/mach-davinci/board-dm365-evm.c | 4 +- arch/arm/mach-davinci/board-dm644x-evm.c | 2 +- arch/arm/mach-davinci/board-dm646x-evm.c | 4 +- arch/arm/mach-pxa/pcm990-baseboard.c | 2 +- arch/blackfin/mach-bf561/boards/ezkit.c | 2 +- arch/blackfin/mach-bf609/boards/ezkit.c | 6 +- arch/sh/boards/mach-ap325rxa/setup.c | 2 +- arch/sh/boards/mach-ecovec24/setup.c | 6 +- arch/sh/boards/mach-kfr2r09/setup.c | 2 +- arch/sh/boards/mach-migor/setup.c | 4 +- arch/sh/boards/mach-se/7724/setup.c | 2 +- drivers/media/i2c/ad9389b.c | 2 +- drivers/media/i2c/adp1653.c | 2 +- drivers/media/i2c/adv7183.c | 2 +- drivers/media/i2c/adv7343.c | 2 +- drivers/media/i2c/adv7393.c | 2 +- drivers/media/i2c/adv7511.c | 2 +- drivers/media/i2c/adv7604.c | 2 +- drivers/media/i2c/adv7842.c | 2 +- drivers/media/i2c/ak881x.c | 2 +- drivers/media/i2c/as3645a.c | 2 +- drivers/media/i2c/bt819.c | 2 +- drivers/media/i2c/ir-kbd-i2c.c | 2 +- drivers/media/i2c/lm3560.c | 2 +- drivers/media/i2c/lm3646.c | 2 +- drivers/media/i2c/m52790.c | 2 +- drivers/media/i2c/m5mols/m5mols_capture.c | 2 +- drivers/media/i2c/m5mols/m5mols_core.c | 2 +- drivers/media/i2c/msp3400-driver.c | 2 +- drivers/media/i2c/mt9m032.c | 2 +- drivers/media/i2c/mt9p031.c | 2 +- drivers/media/i2c/mt9t001.c | 2 +- drivers/media/i2c/mt9v011.c | 2 +- drivers/media/i2c/mt9v032.c | 2 +- drivers/media/i2c/noon010pc30.c | 2 +- drivers/media/i2c/ov2659.c | 2 +- drivers/media/i2c/ov7670.c | 2 +- drivers/media/i2c/ov9650.c | 2 +- drivers/media/i2c/s5c73m3/s5c73m3-core.c | 2 +- drivers/media/i2c/s5c73m3/s5c73m3-ctrls.c | 2 +- drivers/media/i2c/s5c73m3/s5c73m3.h | 2 +- drivers/media/i2c/s5k4ecgx.c | 2 +- drivers/media/i2c/s5k6aa.c | 2 +- drivers/media/i2c/saa6588.c | 2 +- drivers/media/i2c/saa7115.c | 2 +- drivers/media/i2c/saa7127.c | 2 +- drivers/media/i2c/smiapp/smiapp.h | 2 +- drivers/media/i2c/soc_camera/mt9t112.c | 2 +- drivers/media/i2c/soc_camera/mt9v022.c | 2 +- drivers/media/i2c/soc_camera/ov772x.c | 2 +- drivers/media/i2c/soc_camera/rj54n1cb0c.c | 2 +- drivers/media/i2c/soc_camera/tw9910.c | 2 +- drivers/media/i2c/sr030pc30.c | 2 +- drivers/media/i2c/tc358743.c | 2 +- drivers/media/i2c/ths7303.c | 2 +- drivers/media/i2c/tvaudio.c | 2 +- drivers/media/i2c/tvp514x.c | 2 +- drivers/media/i2c/tvp5150.c | 2 +- drivers/media/i2c/tvp7002.c | 2 +- drivers/media/i2c/uda1342.c | 2 +- drivers/media/i2c/upd64031a.c | 2 +- drivers/media/i2c/upd64083.c | 2 +- drivers/media/i2c/wm8775.c | 2 +- drivers/media/pci/bt8xx/bttv-cards.c | 2 +- drivers/media/pci/bt8xx/bttv-driver.c | 4 +- drivers/media/pci/bt8xx/bttvp.h | 2 +- drivers/media/pci/cobalt/cobalt-driver.c | 6 +- drivers/media/pci/cobalt/cobalt-irq.c | 2 +- drivers/media/pci/cobalt/cobalt-v4l2.c | 4 +- drivers/media/pci/cx18/cx18-cards.c | 2 +- drivers/media/pci/cx18/cx18-driver.h | 2 +- drivers/media/pci/cx88/cx88-alsa.c | 2 +- drivers/media/pci/cx88/cx88-video.c | 2 +- drivers/media/pci/cx88/cx88.h | 4 +- drivers/media/pci/ivtv/ivtv-cards.c | 8 +- drivers/media/pci/ivtv/ivtv-driver.c | 2 +- drivers/media/pci/ivtv/ivtv-driver.h | 2 +- drivers/media/pci/ivtv/ivtv-fileops.c | 2 +- drivers/media/pci/ivtv/ivtv-firmware.c | 2 +- drivers/media/pci/ivtv/ivtv-ioctl.c | 2 +- drivers/media/pci/ivtv/ivtv-routing.c | 6 +- drivers/media/pci/saa7134/saa7134-video.c | 2 +- drivers/media/pci/saa7134/saa7134.h | 2 +- drivers/media/pci/saa7146/mxb.c | 2 +- drivers/media/pci/zoran/zoran_card.c | 2 +- drivers/media/platform/marvell-ccic/mcam-core.c | 2 +- drivers/media/platform/via-camera.c | 2 +- drivers/media/usb/cx231xx/cx231xx.h | 2 +- drivers/media/usb/em28xx/em28xx-camera.c | 2 +- drivers/media/usb/em28xx/em28xx-cards.c | 6 +- drivers/media/usb/em28xx/em28xx.h | 2 +- drivers/media/usb/go7007/go7007-usb.c | 4 +- drivers/media/usb/go7007/go7007-v4l2.c | 2 +- drivers/media/usb/hdpvr/hdpvr.h | 2 +- drivers/media/usb/pvrusb2/pvrusb2-hdw-internal.h | 2 +- drivers/media/usb/pvrusb2/pvrusb2-i2c-core.c | 2 +- drivers/media/usb/pvrusb2/pvrusb2-video-v4l.c | 2 +- drivers/media/usb/stk1160/stk1160-core.c | 2 +- drivers/media/usb/stk1160/stk1160-v4l.c | 2 +- drivers/media/usb/tm6000/tm6000-cards.c | 2 +- drivers/media/usb/usbvision/usbvision-core.c | 2 +- drivers/media/usb/usbvision/usbvision-video.c | 2 +- include/media/ad9389b.h | 49 ----- include/media/adp1653.h | 128 ------------ include/media/adv7183.h | 47 ----- include/media/adv7343.h | 63 ------ include/media/adv7393.h | 28 --- include/media/adv7511.h | 49 ----- include/media/adv7604.h | 172 ---------------- include/media/adv7842.h | 242 ----------------------- include/media/ak881x.h | 25 --- include/media/as3645a.h | 71 ------- include/media/bt819.h | 36 ---- include/media/cs5345.h | 39 ---- include/media/cs53l32a.h | 34 ---- include/media/i2c/ad9389b.h | 49 +++++ include/media/i2c/adp1653.h | 128 ++++++++++++ include/media/i2c/adv7183.h | 47 +++++ include/media/i2c/adv7343.h | 63 ++++++ include/media/i2c/adv7393.h | 28 +++ include/media/i2c/adv7511.h | 49 +++++ include/media/i2c/adv7604.h | 172 ++++++++++++++++ include/media/i2c/adv7842.h | 242 +++++++++++++++++++++++ include/media/i2c/ak881x.h | 25 +++ include/media/i2c/as3645a.h | 71 +++++++ include/media/i2c/bt819.h | 36 ++++ include/media/i2c/cs5345.h | 39 ++++ include/media/i2c/cs53l32a.h | 34 ++++ include/media/i2c/ir-kbd-i2c.h | 54 +++++ include/media/i2c/lm3560.h | 97 +++++++++ include/media/i2c/lm3646.h | 87 ++++++++ include/media/i2c/m52790.h | 93 +++++++++ include/media/i2c/m5mols.h | 33 ++++ include/media/i2c/mt9m032.h | 36 ++++ include/media/i2c/mt9p031.h | 16 ++ include/media/i2c/mt9t001.h | 9 + include/media/i2c/mt9t112.h | 30 +++ include/media/i2c/mt9v011.h | 17 ++ include/media/i2c/mt9v022.h | 16 ++ include/media/i2c/mt9v032.h | 11 ++ include/media/i2c/noon010pc30.h | 28 +++ include/media/i2c/ov2659.h | 34 ++++ include/media/i2c/ov7670.h | 22 +++ include/media/i2c/ov772x.h | 59 ++++++ include/media/i2c/ov9650.h | 27 +++ include/media/i2c/rj54n1cb0c.h | 19 ++ include/media/i2c/s5c73m3.h | 55 ++++++ include/media/i2c/s5k4ecgx.h | 37 ++++ include/media/i2c/s5k6aa.h | 51 +++++ include/media/i2c/saa6588.h | 42 ++++ include/media/i2c/saa7115.h | 140 +++++++++++++ include/media/i2c/saa7127.h | 40 ++++ include/media/i2c/smiapp.h | 83 ++++++++ include/media/i2c/sr030pc30.h | 21 ++ include/media/i2c/tc358743.h | 131 ++++++++++++ include/media/i2c/ths7303.h | 40 ++++ include/media/i2c/tvaudio.h | 49 +++++ include/media/i2c/tvp514x.h | 111 +++++++++++ include/media/i2c/tvp5150.h | 33 ++++ include/media/i2c/tvp7002.h | 54 +++++ include/media/i2c/tw9910.h | 38 ++++ include/media/i2c/uda1342.h | 29 +++ include/media/i2c/upd64031a.h | 40 ++++ include/media/i2c/upd64083.h | 58 ++++++ include/media/i2c/wm8775.h | 44 +++++ include/media/ir-kbd-i2c.h | 54 ----- include/media/lm3560.h | 97 --------- include/media/lm3646.h | 87 -------- include/media/m52790.h | 93 --------- include/media/m5mols.h | 33 ---- include/media/mt9m032.h | 36 ---- include/media/mt9p031.h | 16 -- include/media/mt9t001.h | 9 - include/media/mt9t112.h | 30 --- include/media/mt9v011.h | 17 -- include/media/mt9v022.h | 16 -- include/media/mt9v032.h | 11 -- include/media/noon010pc30.h | 28 --- include/media/ov2659.h | 34 ---- include/media/ov7670.h | 22 --- include/media/ov772x.h | 59 ------ include/media/ov9650.h | 27 --- include/media/rj54n1cb0c.h | 19 -- include/media/s5c73m3.h | 55 ------ include/media/s5k4ecgx.h | 37 ---- include/media/s5k6aa.h | 51 ----- include/media/saa6588.h | 42 ---- include/media/saa7115.h | 141 ------------- include/media/saa7127.h | 41 ---- include/media/smiapp.h | 83 -------- include/media/sr030pc30.h | 21 -- include/media/tc358743.h | 131 ------------ include/media/ths7303.h | 40 ---- include/media/tvaudio.h | 49 ----- include/media/tvp514x.h | 111 ----------- include/media/tvp5150.h | 34 ---- include/media/tvp7002.h | 54 ----- include/media/tw9910.h | 38 ---- include/media/uda1342.h | 29 --- include/media/upd64031a.h | 40 ---- include/media/upd64083.h | 58 ------ include/media/wm8775.h | 44 ----- 205 files changed, 2902 insertions(+), 2905 deletions(-) commit b7be755733dc44c72956c91876e5d86c56052a54 Author: Alec Leamas Date: Thu Nov 12 16:03:00 2015 -0200 [media] bz#75751: Move internal header file lirc.h to uapi/ The file include/media/lirc.h describes a public interface and should thus be a public header. See kernel bug https://bugzilla.kernel.org/show_bug.cgi?id=75751 which has a manpage describing the interface + an acknowledgment that this info belongs to uapi. Signed-off-by: Mauro Carvalho Chehab include/media/lirc.h | 169 +--------------------------------------------- include/uapi/linux/lirc.h | 168 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 169 insertions(+), 168 deletions(-) commit f82a9ece922fd299e03ef5986e02b4e6bce8405a Author: Graham Whaley Date: Thu Nov 12 18:51:51 2015 -0200 [media] DocBook/media/Makefile: Do not fail mkdir if dir already exists Commit 5240f4e68d42 ("[media] DocBook/media/Makefile: Avoid make htmldocs to fail") introduced a mkdir which is always called through install_media_images from the Documentation/DocBook/Makefile htmldocs rule. If you run 'make htmldocs' more than once you get: mkdir: cannot create directory ‘./Documentation/DocBook//media_api’: File exists Add -p to the mkdir to continue no matter if the dir already exists. Signed-off-by: Graham Whaley Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bef0e549d165b681bb505c9839ce3d3be33822ee Author: Mauro Carvalho Chehab Date: Wed Nov 11 19:14:44 2015 -0200 [media] dvb_frontend.h: improve documentation for struct dvb_tuner_ops Improve the comments at the header, removing kernel-doc tag from where it doesn't belong, grouping the legacy tuner functions, and improving the text. No functional changes. Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/dvb_frontend.h | 40 ++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 15 deletions(-) commit 45346e0e83ae1d0eff59d6d200bcb9338c04355f Author: Mauro Carvalho Chehab Date: Wed Nov 11 18:57:16 2015 -0200 [media] dvb_frontend: get rid of set_state ops & related data The get_state()/set_state and the corresponding data types (struct tuner_state and enum tuner_param) are old DVB interfaces that came from the DVBv3 time. Nowadays, set_params() provide a better way to set the tuner and demod parameters. So, no need to keep those legacy stuff, as all drivers that were using it got converted. With this patch, all kABI elements at dvb_frontend.h are now documented. Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/dvb_frontend.h | 23 ----------------------- drivers/media/tuners/mt2063.c | 1 - 2 files changed, 24 deletions(-) commit 65f0f686de9fcbad7dadcedae94de77ab8b558b7 Author: Mauro Carvalho Chehab Date: Wed Nov 11 18:42:00 2015 -0200 [media] stb6100: get rid of get_state()/set_state() It is tricky to get rid of those ops here, as the stv0299 driver wants to set frequency in separate from setting the bandwidth. So, we use a small trick: we temporarely fill the cache with 0 for either frequency or bandwidth and add some logic at set_params to only change the property(ies) that aren't zero. Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/stb6100.c | 46 +++++++----------------------- drivers/media/dvb-frontends/stb6100_cfg.h | 37 +++++++++++++----------- drivers/media/dvb-frontends/stb6100_proc.h | 43 +++++++++++++++------------- 3 files changed, 54 insertions(+), 72 deletions(-) commit b2d3afcfbdb7cd48759433ab9a0dd1bf20cc6aa8 Author: Mauro Carvalho Chehab Date: Wed Nov 11 18:14:08 2015 -0200 [media] tda6655: get rid of get_state()/set_state() Those ops aren't used by any driver, with is weird. I suspect that mantis_vb3030 driver were not working properly... Anyway, now that the driver uses the set_parms, the DVB frontend core should do the right thing. Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/tda665x.c | 36 ----------------------------------- 1 file changed, 36 deletions(-) commit e417668d402e07a0de40b996005324800e694633 Author: Mauro Carvalho Chehab Date: Wed Nov 11 18:07:44 2015 -0200 [media] tda8261: don't use set_state/get_state callbacks Those callbacks are meant to be used only on some very specific cases. There's absolutely no need to do that at tda8261, as the only parameter that it allows to be set/get is the frequency. So, use the standard get_params() and get_frequency() kABI ops. There's no need to touch at any bridge driver, as all interactions are done via the macros at tda8261_cfg.h. Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/tda8261.c | 125 +++++++++++++----------------- drivers/media/dvb-frontends/tda8261_cfg.h | 37 +++------ 2 files changed, 63 insertions(+), 99 deletions(-) commit 8fdc25bf61cf87280960e9fea453ac86b68fbb35 Author: Mauro Carvalho Chehab Date: Wed Nov 11 17:40:27 2015 -0200 [media] tda666x: add support for set_parms() and get_frequency() Those two callbacks are the ones that should be used by normal DVB frontend drivers. Add support for them. Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/tda665x.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 8e6c4be3f8f7889b0806d0635c7b85a6328d77ed Author: Mauro Carvalho Chehab Date: Wed Nov 11 17:33:59 2015 -0200 [media] tda665x: split set_frequency from set_state On tda665x, set_state only sets frequency. As the kABI for set_state is meant to be used only on special cases, split the function into two, in order to allow it to be latter used by a DVBv5 cache params logic. Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/tda665x.c | 161 ++++++++++++++++++---------------- 1 file changed, 85 insertions(+), 76 deletions(-) commit cffdbfe7cf9c7201d4d6c3a0c6b224497595431a Author: Mauro Carvalho Chehab Date: Wed Nov 11 16:52:46 2015 -0200 [media] stb6100: get rid of tuner_state at struct stb6100_state The stb6100 driver has a struct tuner_state on its state struct, that it is used only to store the bandwidth. Even so, this struct is not really used, as every time the bandwidth is get or set, it goes through the hardware. So, get rid of that. Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/stb6100.c | 9 ++++----- drivers/media/dvb-frontends/stb6100.h | 1 - 2 files changed, 4 insertions(+), 6 deletions(-) commit 2184e2530c061ce6d26b80c346afb1a2c63db952 Author: Mauro Carvalho Chehab Date: Wed Nov 11 15:52:25 2015 -0200 [media] dvb_frontend.h: get rid of unused tuner params/states There are several tuner_param values that aren't by any driver or core: DVBFE_TUNER_TUNERSTEP DVBFE_TUNER_IFFREQ DVBFE_TUNER_REFCLOCK DVBFE_TUNER_IQSENSE DVBFE_TUNER_DUMMY Several of those correspond to the values at the tuner_state struct with is also only initialized by not used anyware: u32 tunerstep; u32 ifreq; u32 refclock; It doesn't make sense to keep anything at the kABI that it is not used. So, get rid of them. Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/dvb_frontend.h | 11 +---------- drivers/media/dvb-frontends/stb6100.c | 23 ++++++----------------- 2 files changed, 7 insertions(+), 27 deletions(-) commit 41c0b78e5eaf29f866ebffda4e0e86c9be589477 Author: Mauro Carvalho Chehab Date: Tue Nov 10 11:54:15 2015 -0200 [media] dvb_frontend.h: Document suspend/resume functions Those functions should be implemented on all drivers. So, document them. Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/dvb_frontend.h | 40 +++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) commit 3663b31b69222be90ce8bf346e0d5ba3b5ecbac0 Author: Mauro Carvalho Chehab Date: Tue Nov 10 11:50:30 2015 -0200 [media] dvb_frontend: resume tone and voltage As SEC tone and voltage could have changed during suspend(), restore them to their previous values at resume(). Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/dvb_frontend.c | 5 +++++ 1 file changed, 5 insertions(+) commit fef5218430dc52e3d7494986dfff2ff93a6e409a Author: Priit Laes Date: Fri Nov 6 19:54:46 2015 +0200 ARM: dts: sun4i: gemei-g9: Enable sun4i audio codec support Gemei G9 has internal speakers and headphone jack. Audio switching from internal speakers to headphones is automatically handled by extra FT2012Q audio amplifier chip that works out of the box. Signed-off-by: Priit Laes Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10-gemei-g9.dts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 108f780a704f66f1b9d80a1b8b42d467ecca3981 Author: Priit Laes Date: Fri Nov 6 19:54:45 2015 +0200 ARM: dts: sun4i: gemei-g9: Use reg_ldo2 instead of reg_vcc3v0 ADC seems to be using ldo2 for reference voltage. Signed-off-by: Priit Laes Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10-gemei-g9.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bc1e2718696e1488392cb1bacc5379300520cebd Author: Priit Laes Date: Fri Nov 6 19:54:44 2015 +0200 ARM: dts: sun4i: gemei-g9: Convert to use axp209 regulator nodes Add regulator nodes for axp209 using the axp209.dtsi include. Signed-off-by: Priit Laes Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10-gemei-g9.dts | 35 ++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) commit e6c9b75453f48c455c8e2831cb265329a307cb29 Author: Hans de Goede Date: Tue Nov 3 16:51:48 2015 +0100 ARM: dts: sun4i: inet9f-rev03: Add support for game buttons / joysticks The inet9f-rev03 tablet has multiple fire-buttons / direction controls, add support for these using the same axis mapping as ps2 compatible game controllers with the same stick / button layout use. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10-inet9f-rev03.dts | 164 +++++++++++++++++++++++++++ 1 file changed, 164 insertions(+) commit 111af755658e2417b48df978f7a231c3c616fe3e Author: Jelle van der Waa Date: Tue Nov 3 16:47:20 2015 +0100 ARM: dts: sun7i: Enable audio codec on pcDuino Enable the on-chip audio codec Signed-off-by: Jelle van der Waa Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20-pcduino3.dts | 4 ++++ 1 file changed, 4 insertions(+) commit 581de703ef3293fb71925a250fce08218924e7dc Author: Aleksei Mamlin Date: Sun Nov 1 16:53:52 2015 +0300 ARM: dts: sun7i: Enable audio codec on Wexler TAB7200 tablet. Enable on-chip audio codec on the Wexler TAB7200 tablet. Signed-off-by: Aleksei Mamlin Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20-wexler-tab7200.dts | 4 ++++ 1 file changed, 4 insertions(+) commit 18f17cb7d79c6cb6d6ed87c5956a0ebf084db44d Author: Marcus Weseloh Date: Sat Oct 31 13:55:42 2015 +0100 ARM: dts: sun4i: Enable audio codec on Olimex A20-SOM-EVB Enable the on-chip audio codec on the Olimex A20-SOM-EVB Signed-off-by: Marcus Weseloh Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20-olimex-som-evb.dts | 4 ++++ 1 file changed, 4 insertions(+) commit 5058ec4a95d1822156cc6ec5d93f4cc0c999c641 Author: Lawrence Yu Date: Sun Oct 25 13:49:32 2015 -0700 dts: sun6i: yones toptech bs1078 v2: Add AXP221 support to dts Enable the axp221 PMIC chip in the dts file. Allows board to power off correctly from the poweroff command This board requires dc1sw to be enabled in order to provide a power source for the 5V DCDC converter that powers USB2. This board uses dldo1 for 3.3V wifi power This board requires dldo3 to be enabled at 2.8V in order to provide voltage to the pullup resistors for the i2c0 bus. Signed-off-by: Lawrence Yu Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard .../dts/sun6i-a31s-yones-toptech-bs1078-v2.dts | 85 ++++++++++++++++++++-- 1 file changed, 78 insertions(+), 7 deletions(-) commit 329f25b343c5fdd74da7a4c0520b24a732993ba8 Author: Stefan Roese Date: Fri Oct 23 12:56:12 2015 +0200 arm: sun7i: Add sun7i-a20-icnova-swac.dts This baseboard from SWAC is equipped with the ICnova-A20 SoM from Incircuit. This board is equipped with the following interfaces / devices: - 512 MiB SDRAM - 4 GiB MLC NAND (Micron MT29F32G08CBACAWP or Hynix H27UBG8T2BTR) - USB host - LCD 800x480 - HDMI - CAN Note that the NAND support is still missing. As its currently not supported in mainline for sunxi and especially for these MLC devices. The original plan was to also provide a dtsi for the ICnova SoM, to put all the SoM internal nodes / properties there. But as I don't have a clear overview of the SoM specific and baseboard specific differences, I'm putting all in one dts for now. Once somebody pushed support for some other baseboard using the A20 SoM from Incircuit (e.g. the ADB4006 reference design), this should be separated. Signed-off-by: Stefan Roese Cc: Marcus Heuer [maxime: Fixed CPU regulator upper voltage boundary] Signed-off-by: Maxime Ripard arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/sun7i-a20-icnova-swac.dts | 169 ++++++++++++++++++++++++++++ 2 files changed, 170 insertions(+) commit e04a61c04a4ac242682820be7c89da5dbb183851 Author: Adam Sampson Date: Fri Oct 23 23:36:27 2015 +0100 ARM: sun7i: dt: Enable audio codec on pcDuino V3 Nano The pcDuino V3 Nano has a 3.5mm TRRS jack socket for audio, using the CTIA standard pinout, connected to HPOUTL, HPOUTR, HPCOM/HPCOMFB and MICIN1/VMIC (via appropriate RC networks) on the A20. The PH00 GPIO is wired for headphone plug detection: it reads 0 when nothing's plugged in, and 1 when a plug is inserted. LINEINL/R and FMINL/R are not connected. Signed-off-by: Adam Sampson Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts | 4 ++++ 1 file changed, 4 insertions(+) commit 03946b2d661fc889bee4cf204a2f9853ca27c986 Author: Mauro Carvalho Chehab Date: Tue Nov 10 11:14:52 2015 -0200 [media] demux.h: Some documentation fixups for the header The DocBook description of this header has two issues: - It calls the Kernel ABI as API, instead of kABI; - It mentions that the DVB frontend kABI is not described within the document. As this will actually generate a single DocBook, this is actually not true, now that the documentation for the frontend was added. So, fix both issues. Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/demux.h | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit 02f028cfd962106a6d223549f7f898b532117ecf Author: Mauro Carvalho Chehab Date: Tue Nov 10 11:12:30 2015 -0200 [media] dvb_frontend.h: Add a description for the header This header file provides the kABI functions used by the Digital TV Frontend core support. Add a description for this kABI, to add at the device_drivers Kernel DocBook. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/device-drivers.tmpl | 1 + drivers/media/dvb-core/dvb_frontend.h | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+) commit 66f4b3cb5c2c68810772e7eee30b3d4b85852639 Author: Mauro Carvalho Chehab Date: Tue Nov 10 10:46:25 2015 -0200 [media] dvb_frontend: document the most used functions Documents the most used functions at the Digital TV kABI: dvb_frontend_register(), dvb_frontend_unregister() and dvb_frontend_detach(). Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/dvb_frontend.h | 43 ++++++++++++++++++++++++++++++++--- 1 file changed, 40 insertions(+), 3 deletions(-) commit 75f400b0e358b42c31162404c1e9e8511426f1e2 Author: Mauro Carvalho Chehab Date: Tue Nov 10 10:26:39 2015 -0200 [media] Document the obscure dvb_frontend_reinitialise() The dvb_frontend_reinitialise() function is a special case used by just one frontend. Document it, for completeness. Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/dvb_frontend.h | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) commit 4deea4cb471354a8abdeecc9a571dfdbac8c2481 Author: Mauro Carvalho Chehab Date: Mon Nov 9 23:24:10 2015 -0200 [media] dvb: document dvb_frontend_sleep_until() This function is used mainly at the DVB core, in order to provide emulation for a legacy ioctl. The only current exception is the stv0299 driver, with takes more than 8ms to switch voltage, breaking the emulation for FE_DISHNETWORK_SEND_LEGACY_CMD. Document that. Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/dvb_frontend.c | 9 +++++---- drivers/media/dvb-core/dvb_frontend.h | 30 +++++++++++++++++++++++++++++- 2 files changed, 34 insertions(+), 5 deletions(-) commit 506822eaf1383c1d173e72cc318834e71ad23bff Author: Sudeep Holla Date: Wed Oct 21 11:10:15 2015 +0100 ARM: ux500: replace legacy *,wakeup property with wakeup-source Though the keyboard and other driver will continue to support the legacy "gpio-key,wakeup", "linux,wakeup" boolean property to enable the wakeup source, "wakeup-source" is the new standard binding. This patch replaces all the legacy wakeup properties with the unified "wakeup-source" property in order to avoid any futher copy-paste duplication. Signed-off-by: Sudeep Holla Signed-off-by: Linus Walleij arch/arm/boot/dts/ste-href-tvk1281618.dtsi | 2 +- arch/arm/boot/dts/ste-nomadik-s8815.dts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit c80b4010d7e4a1ba2aa83928a659f4bd87c1019c Author: Linus Walleij Date: Thu Nov 5 10:18:14 2015 +0100 ARM: ux500: Assign proper sensor IRQs for Snowball The Snowball gyro and magnetometer DRDY (data ready) lines are used as interrupt triggers by the IIO subsystem, triggering new data retrieveal on edges on this signal. Thus assign them as the primary interrupt in the device tree. The "other interrupt" coming out of the sensors is for alarms and similar complex events, the DRDY is for periodic measures, which is what we want. After this the generic_buffer tool from IIO tools gives a nice stream of readings after enabling the desired channels in sysfs. Cc: Denis Ciocca Signed-off-by: Linus Walleij arch/arm/boot/dts/ste-snowball.dts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 250656b4bc442d8e8c264733241b7b083dabb1a8 Author: Linus Walleij Date: Tue Nov 3 15:20:31 2015 +0100 ARM: ux500: push down Rohm TS to STUIB The Rohm touchscreen reset and IRQ lines were registered and configured at the HREF board level of the design, but it is an integral part of the UIB (User Interface Board). Fix this by pushing down the pin control node to the u8500 UIB file. Signed-off-by: Linus Walleij arch/arm/boot/dts/ste-href-stuib.dtsi | 23 +++++++++++++++++++++++ arch/arm/boot/dts/ste-hrefv60plus.dtsi | 18 ------------------ 2 files changed, 23 insertions(+), 18 deletions(-) commit d122ab40bec8debce6f0c315eb88e0ae705c7e78 Author: Krzysztof Kozlowski Date: Tue Oct 13 10:27:08 2015 +0900 ARM: multi_v7_defconfig: Enable Maxim 77693 LED and haptic drivers Enable support for: 1. Haptic motor driver on Trats2 board (Maxim 77693) and Note 4 (Maxim 77843); 2. LED driver on Trats2 board (Maxim 77693). Signed-off-by: Krzysztof Kozlowski Reviewed-by: Javier Martinez Canillas arch/arm/configs/multi_v7_defconfig | 3 +++ 1 file changed, 3 insertions(+) commit 5ea5f2550e0e638d481e856f4b612c1c6a204e83 Author: Krzysztof Kozlowski Date: Tue Oct 13 10:27:07 2015 +0900 ARM: multi_v7_defconfig: Enable Maxim 8997 family drivers Enable support for Maxim 8997 Multi Function Device present on Trats and Origen boards by toggling on drivers: main MFD, charger, haptic motor, regulator, LED and RTC. This allows to test and usage of these boards with multi_v7 config. Signed-off-by: Krzysztof Kozlowski Reviewed-by: Javier Martinez Canillas arch/arm/configs/multi_v7_defconfig | 6 ++++++ 1 file changed, 6 insertions(+) commit 4894d4110639053139b54ce4b19263dba920de96 Author: Krzysztof Kozlowski Date: Tue Oct 13 10:27:06 2015 +0900 ARM: exynos_defconfig: Enable Maxim 77693 LED and haptic drivers Enable support for: 1. Haptic motor driver on Trats2 board (Maxim 77693) and Note 4 (Maxim 77843); 2. LED driver on Trats2 board (Maxim 77693). Signed-off-by: Krzysztof Kozlowski Reviewed-by: Javier Martinez Canillas arch/arm/configs/exynos_defconfig | 3 +++ 1 file changed, 3 insertions(+) commit 00a2083324a4e15f8c328ddd3614a3be906a1640 Author: Krzysztof Kozlowski Date: Tue Oct 13 10:27:05 2015 +0900 ARM: exynos_defconfig: Enable Maxim 8997 family drivers Enable support for Maxim 8997 Multi Functional Device present on Trats and Origen boards by toggling on drivers: charger, haptic motor, LED, RTC and extcon. This allows to test and usage of these boards with exynos config. Signed-off-by: Krzysztof Kozlowski Reviewed-by: Javier Martinez Canillas arch/arm/configs/exynos_defconfig | 6 ++++++ 1 file changed, 6 insertions(+) commit efddfd90fb7f5ba3c7d1bff923a3626a78eee553 Author: Rik van Riel Date: Tue Nov 3 17:34:19 2015 -0500 cpuidle,menu: smooth out measured_us calculation The cpuidle state tables contain the maximum exit latency for each cpuidle state. On x86, that is the exit latency for when the entire package goes into that same idle state. However, a lot of the time we only go into the core idle state, not the package idle state. This means we see a much smaller exit latency. We have no way to detect whether we went into the core or package idle state while idle, and that is ok. However, the current menu_update logic does have the potential to trip up the repeating pattern detection in get_typical_interval. If the system is experiencing an exit latency near the idle state's exit latency, some of the samples will have exit_us subtracted, while others will not. This turns a repeating pattern into mush, potentially breaking get_typical_interval. Furthermore, for smaller sleep intervals, we know the chance that all the cores in the package went to the same idle state are fairly small. Dividing the measured_us by two, instead of subtracting the full exit latency when hitting a small measured_us, will reduce the error. Signed-off-by: Rik van Riel Acked-by: Arjan van de Ven Signed-off-by: Rafael J. Wysocki drivers/cpuidle/governors/menu.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit a9ceb78bc75ca47972096372ff3d48648b16317a Author: Rik van Riel Date: Tue Nov 3 17:34:18 2015 -0500 cpuidle,menu: use interactivity_req to disable polling The menu governor carefully figures out how much time we typically sleep for an estimated sleep interval, or whether there is a repeating pattern going on, and corrects that estimate for the CPU load. Then it proceeds to ignore that information when determining whether or not to consider polling. This is not a big deal on most x86 CPUs, which have very low C1 latencies, and the patch should not have any effect on those CPUs. However, certain CPUs (eg. Atom) have much higher C1 latencies, and it would be good to not waste performance and power on those CPUs if we are expecting a very low wakeup latency. Disable polling based on the estimated interactivity requirement, not on the time to the next timer interrupt. Signed-off-by: Rik van Riel Acked-by: Arjan van de Ven Signed-off-by: Rafael J. Wysocki drivers/cpuidle/governors/menu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7884084f3bcc98adfbd8b90a2bd6bcf10c4df2cd Author: Rik van Riel Date: Tue Nov 3 17:34:17 2015 -0500 cpuidle,x86: increase forced cut-off for polling to 20us The cpuidle menu governor has a forced cut-off for polling at 5us, in order to deal with firmware that gives the OS bad information on cpuidle states, leading to the system spending way too much time in polling. However, at least one x86 CPU family (Atom) has chips that have a 20us break-even point for C1. Forcing the polling cut-off to less than that wastes performance and power. Increase the polling cut-off to 20us. Systems with a lower C1 latency will be found in the states table by the menu governor, which will pick those states as appropriate. Signed-off-by: Rik van Riel Acked-by: Arjan van de Ven Signed-off-by: Rafael J. Wysocki drivers/cpuidle/governors/menu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 20625dfe0384676e3ee244091c4f09544d080798 Author: Brian Norris Date: Fri Oct 30 12:56:22 2015 -0700 mtd: spi-nor: remove unnecessary leading space from dbg print As Cyrille noted [1], this line is wrong. [1] http://lists.infradead.org/pipermail/linux-mtd/2015-September/061725.html Signed-off-by: Brian Norris Cc: Cyrille Pitchen drivers/mtd/spi-nor/spi-nor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2b2462d5928379b8f43ffe19d72d069bfb89d316 Author: Nicolas Pitre Date: Wed Nov 4 15:21:21 2015 -0500 mtd: sm_ftl: fix wrong do_div() usage do_div() is meant to be used with an unsigned dividend. Signed-off-by: Nicolas Pitre Signed-off-by: Brian Norris drivers/mtd/sm_ftl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d55d31a6b8f65bb13e1912043a66295cc928967c Author: Ezequiel García Date: Wed Nov 4 13:13:46 2015 -0300 mtd: pxa3xx_nand: Gate/ungate the NAND clock in suspend/resume paths The NAND clock can be disabled on suspend and enabled on resume. Signed-off-by: Ezequiel Garcia Acked-by: Robert Jarzmik Signed-off-by: Brian Norris drivers/mtd/nand/pxa3xx_nand.c | 6 ++++++ 1 file changed, 6 insertions(+) commit f3028c840867d2235886a6a5c97865fc9d91bafd Author: Ezequiel García Date: Wed Nov 4 13:13:45 2015 -0300 mtd: pxa3xx_nand: Remove dead code This macro is not used anymore, so it's just dead code. Remove it. Signed-off-by: Ezequiel Garcia Acked-by: Robert Jarzmik Signed-off-by: Brian Norris drivers/mtd/nand/pxa3xx_nand.c | 5 ----- 1 file changed, 5 deletions(-) commit b1e485779c06d3e43a1818f1065874dd2504b5ef Author: Ezequiel García Date: Wed Nov 4 13:13:44 2015 -0300 mtd: pxa3xx_nand: Remove redundant NAND sensing Currently, the driver is trying to detect the presence of a chip by issuing a RESET command before nand_scan_ident. This seems completely redundant, and is also a layering violation as nand_scan_ident is in charge of device detection. This commit removes the RESET command use, and moves the initial timing configuration to pxa3xx_nand_config_ident. Signed-off-by: Ezequiel Garcia Signed-off-by: Brian Norris drivers/mtd/nand/pxa3xx_nand.c | 41 ++++++++--------------------------------- 1 file changed, 8 insertions(+), 33 deletions(-) commit 154f50fbde539c20bbf74854461d932ebdace4d5 Author: Ezequiel García Date: Wed Nov 4 13:13:43 2015 -0300 mtd: pxa3xx_nand: Simplify pxa3xx_nand_scan This commit simplifies the initial configuration performed by pxa3xx_nand_scan. No functionality change is intended. Signed-off-by: Ezequiel Garcia Acked-by: Robert Jarzmik Signed-off-by: Brian Norris drivers/mtd/nand/pxa3xx_nand.c | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) commit 66e8e47eae658dc884e65695a597fdda7a109448 Author: Ezequiel García Date: Wed Nov 4 13:13:42 2015 -0300 mtd: pxa3xx_nand: Fix initial controller configuration The Data Flash Control Register (NDCR) contains two types of parameters: those that are needed for device identification, and those that can only be set after device identification. Therefore, the driver can't set them all at once and instead needs to configure the first group before nand_scan_ident() and the second group later. Let's split pxa3xx_nand_config in two halves, and set the parameters that depend on the device geometry once this is known. Signed-off-by: Ezequiel Garcia Signed-off-by: Brian Norris drivers/mtd/nand/pxa3xx_nand.c | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) commit c7f00c29aa846b00c70bc99ddb6b1cc7e17c47d4 Author: Ezequiel García Date: Wed Nov 4 13:13:41 2015 -0300 mtd: pxa3xx_nand: Increase the initial chunk size The chunk size represents the size of the data chunks, which is used by the controllers that allow to split transfered data. However, the initial chunk size is used in a non-splitted way, during device identification. Therefore, it must be large enough for all the NAND commands issued during device identification. This includes NAND_CMD_PARAM which was recently changed to transfer up to 2048 bytes (for the redundant parameter pages). Thus, the initial chunk size should be 2048 as well. On Armada 370/XP platforms (NFCv2) booted without the keep-config devicetree property, this commit fixes a timeout on the NAND_CMD_PARAM command: [..] pxa3xx-nand f10d0000.nand: This platform can't do DMA on this device pxa3xx-nand f10d0000.nand: Wait time out!!! nand: device found, Manufacturer ID: 0x2c, Chip ID: 0x38 nand: Micron MT29F8G08ABABAWP nand: 1024 MiB, SLC, erase size: 512 KiB, page size: 4096, OOB size: 224 Signed-off-by: Ezequiel Garcia Acked-by: Robert Jarzmik Signed-off-by: Brian Norris drivers/mtd/nand/pxa3xx_nand.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e727ee86d9e51c4f3fd166c1540d23f211e7f37a Merge: 617f418 9ca641b Author: Brian Norris Date: Mon Nov 16 14:45:15 2015 -0800 Merge MTD 4.4 development into MTD -next We need to be able to build the jz4740_nand driver. Signed-off-by: Brian Norris commit 9b1ba7b28e70a1f4066cfa3bebea24953f36feef Author: Vladimir Kondratiev Date: Fri Nov 6 12:50:44 2015 +0200 wil6210: hold wil->mutex while managing vrings To prevent race when connect flow may run in parallel with the disconnect event. Scenario leading to the bug is: while running connect flow on the AP, STA sends disconnect. log follows. <7>[ 668.736269] wil6210 0000:01:00.0: wlan0: DBG[ WMI]Configure for connection CID 1 <7>[ 668.736269] wil6210 0000:01:00.0: wlan0: DBG[MISC]wil_vring_init_tx() max_mpdu_size 2048 <7>[ 668.736301] wil6210 0000:01:00.0: wlan0: DBG[MISC]wil_vring_alloc() <7>[ 668.736363] wil6210 0000:01:00.0: wlan0: DBG[MISC]vring[1024] 0xffbe8000:d962ce08 0xdb244000 <7>[ 668.736394] wil6210 0000:01:00.0: wlan0: DBG[ WMI]Head 0x00880300 -> 0x00880308 <7>[ 668.736394] wil6210 0000:01:00.0: wlan0: DBG[ WMI]WMI command 0x0821 [28] <7>[ 668.736426] DBG[ WMI]Cmd 00000000: 20 00 24 00 00 00 00 00 00 00 21 08 00 00 00 00 .$.......!..... <7>[ 668.736426] DBG[ WMI]cmd 00000000: 00 00 00 00 00 00 5f 5c 00 00 00 00 00 04 00 08 ......_\........ <7>[ 668.736457] DBG[ WMI]cmd 00000010: 01 01 00 00 00 00 00 00 00 00 ff 0f ............ <7>[ 668.736488] wil6210 0000:01:00.0: wlan0: DBG[ IRQ]Pseudo IRQ 0x00000004 <7>[ 668.736519] wil6210 0000:01:00.0: wlan0: DBG[ WMI]Handle WMI 0x1824 (reply_id 0x1821) <7>[ 668.736519] wil6210 0000:01:00.0: wlan0: DBG[ IRQ]wil6210_mask_irq_pseudo() <7>[ 668.736519] wil6210 0000:01:00.0: wlan0: DBG[ IRQ]ISR MISC 0x20000000 <7>[ 668.736551] wil6210 0000:01:00.0: wlan0: DBG[ WMI]Handle WMI 0x1003 (reply_id 0x1821) <7>[ 668.736551] wil6210 0000:01:00.0: wlan0: DBG[ WMI]Disconnect 04:ce:14:00:07:70 reason [proto 3 wmi 4] <7>[ 668.736582] wil6210 0000:01:00.0: wlan0: DBG[MISC]wil6210_disconnect() <7>[ 668.736613] wil6210 0000:01:00.0: wlan0: DBG[ IRQ]Thread IRQ <7>[ 668.736613] wil6210 0000:01:00.0: wlan0: DBG[ IRQ]Thread ISR MISC 0x20000000 <7>[ 668.736644] wil6210 0000:01:00.0: wlan0: DBG[ IRQ]MBOX event <7>[ 668.736644] wil6210 0000:01:00.0: wlan0: DBG[ WMI]Mbox head 00880330 tail 00880328 <7>[ 668.736676] wil6210 0000:01:00.0: wlan0: DBG[ WMI]Mbox evt 001a 0010 0000 00 <7>[ 668.736676] wil6210 0000:01:00.0: wlan0: DBG[ WMI]WMI event 0x1821 MID 0 @3255145 msec <7>[ 668.736707] DBG[ WMI]evt 00000000: 1a 00 10 00 00 00 00 10 00 00 21 18 69 ab 31 00 ..........!.i.1. <7>[ 668.736707] DBG[ WMI]evt 00000010: 01 01 00 00 00 00 00 00 ........ <7>[ 668.736738] wil6210 0000:01:00.0: wlan0: DBG[ WMI]queue_work -> 0 <7>[ 668.736738] wil6210 0000:01:00.0: wlan0: DBG[ WMI]wmi_recv_cmd -> 1 events queued <7>[ 668.736769] wil6210 0000:01:00.0: wlan0: DBG[ IRQ]wil6210_unmask_irq_pseudo() <7>[ 668.736832] wil6210 0000:01:00.0: wlan0: DBG[MISC]Disconnect 04:ce:14:00:07:70, CID=1, reason=3 <7>[ 668.736832] wil6210 0000:01:00.0: wlan0: DBG[MISC]wil_disconnect_cid(CID 1, status 1) <7>[ 668.736894] wil6210 0000:01:00.0: wlan0: DBG[MISC]wil_vring_fini_tx() id=1 <7>[ 668.736894] wil6210 0000:01:00.0: wlan0: DBG[MISC]free Tx vring 1 [1024] 0xffbe8000:d962ce08 0xdb244000 <7>[ 668.736957] wil6210 0000:01:00.0: wlan0: DBG[ WMI]Handle WMI 0x1821 (reply_id 0x1821) <7>[ 668.736988] wil6210 0000:01:00.0: wlan0: DBG[ WMI]Complete WMI 0x1821 <7>[ 668.737019] wil6210 0000:01:00.0: wlan0: DBG[ WMI]wmi_call(0x0821->0x1821) completed in 0 msec <3>[ 668.737019] wil6210 0000:01:00.0: wlan0: Tx config failed, status 0x01 <7>[ 668.739518] wil6210 0000:01:00.0: wlan0: DBG[MISC]wil_cfg80211_del_station(04:ce:14:00:07:70, reason=2) <7>[ 668.739550] wil6210 0000:01:00.0: wlan0: DBG[MISC]wil6210_disconnect() <7>[ 668.739550] wil6210 0000:01:00.0: wlan0: DBG[MISC]_wil6210_disconnect(bssid=04:ce:14:00:07:70, reason=2, ev-) <7>[ 668.739581] wil6210 0000:01:00.0: wlan0: DBG[MISC]Disconnect 04:ce:14:00:07:70, CID=-2, reason=2 <7>[ 668.742705] wil6210 0000:01:00.0: wlan0: DBG[MISC]free Tx vring 1 [1024] 0x (null):d962ce08 0x (null) <3>[ 668.742736] __dma_free_remap: trying to free invalid coherent area: (null) Signed-off-by: Vladimir Kondratiev Signed-off-by: Maya Erez Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/main.c | 18 +++++++++++++----- drivers/net/wireless/ath/wil6210/txrx.c | 5 ++++- 2 files changed, 17 insertions(+), 6 deletions(-) commit 4b7f353b8026b43e66af475ef2266958ddcfa6eb Author: Yanbo Li Date: Thu Nov 12 10:36:10 2015 -0800 ath10k: fix the wrong RX rate idx report at 11G mode The RX rate idx is not correct for 11G mode OFDM packet. Because the bitrate table start with CCK index instead of OFDM. Signed-off-by: Yanbo Li Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/htt_rx.c | 2 +- drivers/net/wireless/ath/ath10k/mac.c | 5 ++++- drivers/net/wireless/ath/ath10k/mac.h | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) commit dce1eb93b19b2a1a441708f51c97c4a554054d00 Author: Nicolas Pitre Date: Mon Nov 2 13:02:46 2015 -0500 __div64_32(): make it overridable at compile time Some architectures may want to override the default implementation at compile time to do things inline. For example, ARM uses a non-standard calling convention for better efficiency in this case. Signed-off-by: Nicolas Pitre include/asm-generic/div64.h | 2 ++ lib/div64.c | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) commit f682b27c57aec2f0ca8927f9bb7c267c6165ad5a Author: Nicolas Pitre Date: Fri Oct 30 17:54:56 2015 -0400 __div64_const32(): abstract out the actual 128-bit cross product code The default C implementation for the 128-bit cross product is abstracted into the __arch_xprod_64() macro that can be overridden to let architectures provide their own assembly optimized implementation. There are many advantages to an assembly version for this operation. Carry bit handling becomes trivial, and 32-bit shifts may be achieved simply by inverting register pairs on some architectures. This has the potential to be quite faster and use much fewer instructions. Signed-off-by: Nicolas Pitre include/asm-generic/div64.h | 81 ++++++++++++++++++++++++++++----------------- 1 file changed, 51 insertions(+), 30 deletions(-) commit 461a5e51060c93f5844113f4be9dba513cc92830 Author: Nicolas Pitre Date: Fri Oct 30 15:36:39 2015 -0400 do_div(): generic optimization for constant divisor on 32-bit machines 64-by-32-bit divisions are prominent in the kernel, even on 32-bit machines. Luckily, many of them use a constant divisor that allows for a much faster multiplication by the divisor's reciprocal. The compiler already performs this optimization when compiling a 32-by-32 division with a constant divisor. Unfortunately, on 32-bit machines, gcc does not optimize 64-by-32 divisions in that case, except for constant divisors that happen to be a power of 2. Let's avoid the slow path whenever the divisor is constant by manually computing the reciprocal ourselves and performing the multiplication inline. In most cases, this improves performance of 64-by-32 divisions by about two orders of magnitude compared to the __div64_32() fallback, especially on architectures lacking a native div instruction. The algorithm used here comes from the existing ARM code. The __div64_const32_is_OK macro can be predefined by architectures to disable this optimization in some cases. For example, some ancient gcc version on ARM would crash with an ICE when fed this code. Signed-off-by: Nicolas Pitre Acked-by: Alexey Brodkin include/asm-generic/div64.h | 147 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) commit 911918aa7ef6f868c135505b0015e42072c54682 Author: Nicolas Pitre Date: Mon Nov 2 14:55:05 2015 -0500 div64.h: optimize do_div() for power-of-two constant divisors Let's perform the obvious mask and shift operation in this case. On 32-bit targets, gcc is able to do the same thing with a constant divisor that happens to be a power of two i.e. it turns the division into an inline shift, but it doesn't hurt to be explicit. Signed-off-by: Nicolas Pitre include/asm-generic/div64.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit ed12dfc92f01690af65701dbc2839df3524980d3 Author: Marc Gonzalez Date: Fri Oct 30 13:25:28 2015 +0100 clk: tango4: clkgen driver for Tango4 platforms Provide support for Sigma Designs Tango4 clock generator. NOTE: This driver is incompatible with Tango3 clkgen. Signed-off-by: Marc Gonzalez [sboyd@codeaurora.org: Add kernel.h include for panic/sprintf] Signed-off-by: Stephen Boyd .../devicetree/bindings/clock/tango4-clock.txt | 23 ++++++++ drivers/clk/Makefile | 1 + drivers/clk/clk-tango4.c | 61 ++++++++++++++++++++++ 3 files changed, 85 insertions(+) commit a085f877a882b465fce74188c9d8efd12bd5acd4 Author: Stephen Boyd Date: Mon Oct 26 18:10:09 2015 -0700 clk: qcom: Move cxo/pxo/xo into dt files Put these clocks into the dt files instead of registering them from C code. This provides a few benefits. It allows us to specify the frequency of these clocks at the board level instead of hard-coding them in the driver. It allows us to insert an RPM clock in between the consumers of the crystals and the actual clock. And finally, it helps us transition the GCC driver to use RPM clocks when that configuration is enabled. Cc: Georgi Djakov Signed-off-by: Stephen Boyd drivers/clk/qcom/gcc-apq8084.c | 16 +++++++--------- drivers/clk/qcom/gcc-ipq806x.c | 14 ++++++-------- drivers/clk/qcom/gcc-msm8660.c | 15 +++++++-------- drivers/clk/qcom/gcc-msm8960.c | 14 ++++++-------- drivers/clk/qcom/gcc-msm8974.c | 17 +++++++---------- 5 files changed, 33 insertions(+), 43 deletions(-) commit ee15faffef11309219aa87a24efc86f6dd13f7cb Author: Stephen Boyd Date: Mon Oct 26 17:11:32 2015 -0700 clk: qcom: common: Add API to register board clocks backwards compatibly We want to put the XO board clocks into the dt files, but we also need to be backwards compatible with an older dtb. Add an API to the common code to do this. This also makes a place for us to handle the case when the RPM clock driver is enabled and we don't want to register the fixed factor clock. Cc: Georgi Djakov Signed-off-by: Stephen Boyd drivers/clk/qcom/common.c | 87 +++++++++++++++++++++++++++++++++++++++++++++++ drivers/clk/qcom/common.h | 4 +++ 2 files changed, 91 insertions(+) commit c6fe9a2edf4debba5697a01b5c134b9d515fad84 Author: Anup Patel Date: Fri Oct 30 12:29:21 2015 +0530 arm64: dts: Add BRCM IPROC NAND DT node for NS2 The NAND controller on NS2 SoC is compatible with existing BRCM IPROC NAND driver so let's enable it in NS2 DT and NS2 SVK DT. This patch also fixes use of node labels in ns2-svk.dts. Signed-off-by: Anup Patel Reviewed-by: Ray Jui Reviewed-by: Scott Branden Reviewed-by: Brian Norris Signed-off-by: Florian Fainelli arch/arm64/boot/dts/broadcom/ns2-svk.dts | 30 ++++++++++++++++++++---------- arch/arm64/boot/dts/broadcom/ns2.dtsi | 14 ++++++++++++++ 2 files changed, 34 insertions(+), 10 deletions(-) commit 7ac674e8df7aae461b92652026952d5b788c699b Author: Ray Jui Date: Fri Oct 2 23:24:23 2015 +0530 arm64: dts: Add I2C nodes for NS2 This patch adds iProc I2C DT nodes for NS2 and enable them for the NS2 SVK board Signed-off-by: Ray Jui Reviewed-by: Vikram Prakash Reviewed-by: Scott Branden Signed-off-by: Florian Fainelli arch/arm64/boot/dts/broadcom/ns2-svk.dts | 8 ++++++++ arch/arm64/boot/dts/broadcom/ns2.dtsi | 20 ++++++++++++++++++++ 2 files changed, 28 insertions(+) commit e8a6e265f595e93ac54bc8238d6afd350df4b793 Author: Anup Patel Date: Fri Oct 2 23:24:22 2015 +0530 arm64: dts: Add IPROC RNG200 DT node for NS2 We have IPROC RNG200 hardware random number generation in NS2 SoC, lets enable it for NS2 in NS2 DT. Signed-off-by: Anup Patel Reviewed-by: Ray Jui Reviewed-by: Pramod KUMAR Reviewed-by: Vikram Prakash Reviewed-by: Scott Branden Signed-off-by: Florian Fainelli arch/arm64/boot/dts/broadcom/ns2.dtsi | 5 +++++ 1 file changed, 5 insertions(+) commit 5b31d8759bcc36ad994e38970b7cca5195d8bc19 Author: Anup Patel Date: Fri Oct 2 23:24:21 2015 +0530 arm64: dts: Add ARM PMUv3 DT node in NS2 DT The NS2 SoC has Cortex-A57 CPUs which support ARM PMUv3 so, lets enable ARM PMUv3 in NS2 DT. Signed-off-by: Anup Patel Reviewed-by: Vikram Prakash Reviewed-by: Ray Jui Reviewed-by: Scott Branden Signed-off-by: Florian Fainelli arch/arm64/boot/dts/broadcom/ns2.dtsi | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) commit 5b467c3b2d36b6ed8a6d17923c12f3091d83ce77 Author: Anup Patel Date: Fri Oct 2 23:24:20 2015 +0530 arm64: dts: Add syscon based reboot in DT for NS2 To reset NS2, we simply have to write '0' to BIT[1] at offset 0x90 of CRMU space. The above can be easily achieved by writing 0xfffffffd at offset 0x90 using syscon-reboot driver. We don't need to have separate driver for rebooting NS2. This patch enables syscon-reboot driver for NS2 using DT. Signed-off-by: Anup Patel Reviewed-by: Ray Jui Reviewed-by: Scott Branden Signed-off-by: Florian Fainelli arch/arm64/boot/dts/broadcom/ns2.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 6ec5f3c5264795290f3d7ed67286cca2c1486bfe Author: Anup Patel Date: Fri Oct 2 23:24:19 2015 +0530 arm64: dts: Add SMMU DT node for NS2 The SMMU-500 driver is already available in Linux kernel. Let's enable it for NS2 in DT. This patch keeps mmu-masters attribute empty so that driver patches can later extend this attribute when adding device DT nodes. Signed-off-by: Anup Patel Reviewed-by: Ray Jui Reviewed-by: Scott Branden Signed-off-by: Florian Fainelli arch/arm64/boot/dts/broadcom/ns2.dtsi | 41 +++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) commit 33a93aa490ae256d0b982e2d66cf570cf61f95de Author: Anup Patel Date: Fri Oct 2 23:24:18 2015 +0530 arm64: dts: Add L2-cache DT node for NS2 Recent kernels requires cache hierrachy to be defined via DT hence this patch updates NS2 DT accordingly. Signed-off-by: Anup Patel Reviewed-by: Sandeep Tripathy Reviewed-by: Ray Jui Reviewed-by: Scott Branden Signed-off-by: Florian Fainelli arch/arm64/boot/dts/broadcom/ns2.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) commit ccf0b5e37115f8675455632f583d06ea94f43539 Author: Jon Mason Date: Mon Nov 2 13:34:53 2015 -0500 ARM: dts: bcm5301x: Add BCM SVK DT files Add device tree files for Broadcom Northstar based SVKs. Since the bcm5301x.dtsi already exists, all that is necessary is the dts files to enable the UARTs. With these files, the SVKs are able to boot to shell. Signed-off-by: Jon Mason Signed-off-by: Florian Fainelli arch/arm/boot/dts/Makefile | 5 +++- arch/arm/boot/dts/bcm94708.dts | 56 +++++++++++++++++++++++++++++++++++ arch/arm/boot/dts/bcm94709.dts | 56 +++++++++++++++++++++++++++++++++++ arch/arm/boot/dts/bcm953012k.dts | 63 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 179 insertions(+), 1 deletion(-) commit 445c0f29c1d0b771afc3b888bf375d73bb661e73 Author: Jon Mason Date: Mon Nov 2 13:34:52 2015 -0500 dt-bindings: Add new SoCs to bcm4708 DT bindings Add the 4708, 4709, and 53012 SoCs to the the documentation for the Broadcom Northstar device tree bindings. Signed-off-by: Jon Mason Acked-by: Hauke Mehrtens Acked-by: Scott Branden Acked-by: Rob Herring Signed-off-by: Florian Fainelli Documentation/devicetree/bindings/arm/bcm/brcm,bcm4708.txt | 7 +++++++ 1 file changed, 7 insertions(+) commit 1a9d53cabaf4d3c57a65e7808a64eb7937abba11 Author: Jon Mason Date: Mon Nov 2 13:40:58 2015 -0500 ARM: dts: NSP: Add TWD Support to DT Add support for the ARM TWD Timer and Watchdog to the Northstar Plus device tree. Signed-off-by: Jon Mason Signed-off-by: Florian Fainelli arch/arm/boot/dts/bcm-nsp.dtsi | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 41254754aa03ed8c223094799f1d3779c442aae4 Author: Jon Mason Date: Mon Nov 2 13:40:57 2015 -0500 ARM: dts: NSP: Add NAND Support to DT Add NAND support to the device tree for the Broadcom Northstar Plus SoC. Since no driver changes are needed to enable this hardware, only the device tree changes are required to make this functional. Signed-off-by: Jon Mason Signed-off-by: Florian Fainelli arch/arm/boot/dts/bcm-nsp.dtsi | 16 +++++++++++++++- arch/arm/boot/dts/bcm958625k.dts | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) commit 1dbcfb228beadb4a243486506f3fe09b33b96f7d Author: Jon Mason Date: Mon Nov 2 13:40:56 2015 -0500 ARM: dts: NSP: Add PCI support Add PCI support to the Northstar Plus SoC. This uses the existing pcie-iproc driver. So, all that is needed is device tree entries in the DTS. Signed-off-by: Jon Mason Signed-off-by: Florian Fainelli arch/arm/boot/dts/bcm-nsp.dtsi | 74 +++++++++++++++++++++++++++++++++++++++- arch/arm/boot/dts/bcm958625k.dts | 12 +++++++ 2 files changed, 85 insertions(+), 1 deletion(-) commit a4124e7296000242243996e1ae2601cfadf276a5 Author: Ezequiel Garcia Date: Wed Nov 4 17:08:37 2015 +0100 ARM: 8451/1: v7-M: Set an early stack for __v7m_setup On ARM v7-M, when PROCINFO_INITFUNC (__v7m_setup) is called, a stack is needed before calling the supervisor call (SVC), which is used by the supervisor call to save the context. Currently, __v7m_setup() prepares a temporary stack in the .text.init section, which is is broken if the kernel is executing directly from read-only memory. In particular, this is the case for LPC43xx, which allows to execute the kernel in-place from a serial flash through its SPIFI controller. This commit fixes the issue by seting an early stack to its usual location. Also, __v7m_setup() is currently saving and restoring the previous stack. That was bogus, because there's no stack previously set, so this commit removes it. Acked-by: Uwe Kleine-König Signed-off-by: Ezequiel Garcia Signed-off-by: Russell King arch/arm/mm/proc-v7m.S | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) commit 440ee365d30adbcd9a97fba9cd629cedb7e9b7cb Author: Ezequiel Garcia Date: Fri Oct 30 21:08:05 2015 +0100 ARM: 8450/1: v7-M: Use ret_to_user_from_irq in PendSV handler The PendSV handler calls v7m_exception_entry which disables IRQs. Therefore, since IRQs are already disabled, the PendSV handler can return using ret_to_user_from_irq. Signed-off-by: Ezequiel Garcia Acked-by: Uwe Kleine-König Signed-off-by: Russell King arch/arm/kernel/entry-v7m.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b522842c43e49bff1a1c929628f9fd46e596c06b Author: Linus Walleij Date: Tue Oct 27 16:42:06 2015 +0100 ARM: 8448/1: add some L220 DT settings The RealView ARM11MPCore enables parity, eventmon and shared override in the cache controller through its current boardfile, but the code and DT bindings for the ARM L220 is currently lacking the ability to set this up from DT. Add the required bool parameters for parity and shared override, but keep eventmon out of it: this should be enabled by the event monitor code. Cc: devicetree@vger.kernel.org Acked-by: Rob Herring Signed-off-by: Linus Walleij Signed-off-by: Russell King Documentation/devicetree/bindings/arm/l2cc.txt | 10 ++++++---- arch/arm/mm/cache-l2x0.c | 20 ++++++++++++++++++++ 2 files changed, 26 insertions(+), 4 deletions(-) commit c8d577038449a718ad0027d1790b6ef4441715d4 Author: Andreas Gruenbacher Date: Wed Nov 11 15:00:35 2015 -0600 gfs2: Extended attribute readahead When gfs2 allocates an inode and its extended attribute block next to each other at inode create time, the inode's directory entry indicates that in de_rahead. In that case, we can readahead the extended attribute block when we read in the inode. Signed-off-by: Andreas Gruenbacher Signed-off-by: Bob Peterson fs/gfs2/dir.c | 15 +++++++++++---- fs/gfs2/incore.h | 1 + fs/gfs2/meta_io.c | 27 +++++++++++++++++++++++++-- fs/gfs2/meta_io.h | 2 +- fs/gfs2/quota.c | 2 +- fs/gfs2/rgrp.c | 2 +- fs/gfs2/super.c | 1 + fs/gfs2/xattr.c | 10 +++++----- 8 files changed, 46 insertions(+), 14 deletions(-) commit 3dd1dd8c696bdb7c8dcc9456cb23558ad1b336b8 Author: Andrew Price Date: Thu Nov 12 14:07:52 2015 -0600 GFS2: Use rht_for_each_entry_rcu in glock_hash_walk This lockdep splat was being triggered on umount: [55715.973122] =============================== [55715.980169] [ INFO: suspicious RCU usage. ] [55715.981021] 4.3.0-11553-g8d3de01-dirty #15 Tainted: G W [55715.982353] ------------------------------- [55715.983301] fs/gfs2/glock.c:1427 suspicious rcu_dereference_protected() usage! The code it refers to is the rht_for_each_entry_safe usage in glock_hash_walk. The condition that triggers the warning is lockdep_rht_bucket_is_held(tbl, hash) which is checked in the __rcu_dereference_protected macro. The rhashtable buckets are not changed in glock_hash_walk so it's safe to rely on the rcu protection. Replace the rht_for_each_entry_safe() usage with rht_for_each_entry_rcu(), which doesn't care whether the bucket lock is held if the rcu read lock is held. Signed-off-by: Andrew Price Signed-off-by: Bob Peterson Acked-by: Steven Whitehouse fs/gfs2/glock.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6fde22426be6af261816db5941744b8d3c4c7f96 Author: Markus Elfring Date: Fri Nov 13 07:55:59 2015 -0600 GFS2: Delete an unnecessary check before the function call "iput" The iput() 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 Signed-off-by: Bob Peterson fs/gfs2/ops_fstype.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit b138e11931f2fe25cf188ed62b54bc36f59a25ce Author: Simon Horman Date: Fri Oct 2 15:42:21 2015 +0900 MAINTAINERS: Add entry for Renesas arm64 architecture Initial Renesas arm64 architecture support will be for the R-Car H3, r8a7795, SoC and its Salvator-X board. Signed-off-by: Simon Horman Acked-by: Geert Uytterhoeven MAINTAINERS | 9 +++++++++ 1 file changed, 9 insertions(+) commit 1950fab0789111de4ba3406c6e93dc57e345d32c Author: Kuninori Morimoto Date: Fri Oct 2 11:56:12 2015 +0900 arm64: renesas: add Salvator-X board support Add initial board support for r8a7795 Salvator-X. At this point only DEBUG0 and DEBUG1 serial ports are supported. Signed-off-by: Kuninori Morimoto Signed-off-by: Gaku Inami Signed-off-by: Takeshi Kihara Signed-off-by: Geert Uytterhoeven Signed-off-by: Magnus Damm Signed-off-by: Simon Horman Documentation/devicetree/bindings/arm/shmobile.txt | 2 + arch/arm64/boot/dts/renesas/Makefile | 2 + arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 62 ++++++++++++++++++++++ 3 files changed, 66 insertions(+) commit 9241844a2d3312f3984aacd16ad25fda6e83fc13 Author: Kuninori Morimoto Date: Fri Oct 2 11:56:01 2015 +0900 arm64: renesas: r8a7795: enable PFC Add a PFC node for the on-chip r8a7795 pin controller. Signed-off-by: Kuninori Morimoto Acked-by: Geert Uytterhoeven Acked-by: Laurent Pinchart Signed-off-by: Magnus Damm Signed-off-by: Simon Horman arch/arm64/boot/dts/renesas/r8a7795.dtsi | 5 +++++ 1 file changed, 5 insertions(+) commit 49af46b4095672344641438c7035cc6c826d1809 Author: Geert Uytterhoeven Date: Fri Oct 2 11:55:51 2015 +0900 arm64: renesas: r8a7795: Add all SCIF nodes Add the device nodes for all R-Car H3 SCIF serial ports, incl. clocks, clock domain, and dma properties. Signed-off-by: Geert Uytterhoeven Signed-off-by: Kuninori Morimoto Signed-off-by: Gaku Inami Acked-by: Laurent Pinchart Signed-off-by: Magnus Damm Signed-off-by: Simon Horman arch/arm64/boot/dts/renesas/r8a7795.dtsi | 73 ++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) commit d920212667ecdceea144fae267f81cb119f5d8e7 Author: Geert Uytterhoeven Date: Fri Oct 2 11:55:40 2015 +0900 arm64: renesas: r8a7795: Add dummy dma-controller nodes Add dummy nodes for the 3 DMA controllers. This allows to start describing DMA channels for DMA slaves now. Signed-off-by: Geert Uytterhoeven Signed-off-by: Magnus Damm Signed-off-by: Simon Horman arch/arm64/boot/dts/renesas/r8a7795.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 727e8d0126e3ecafce3ebc43eaa5a7d61af3bef0 Author: Kuninori Morimoto Date: Fri Oct 2 11:56:22 2015 +0900 arm64: defconfig: renesas: Enable Renesas r8a7795 SoC This patch enables the Renesas R-Car H3 SoC together with the SCIF driver in the arm64 defconfig. Signed-off-by: Kuninori Morimoto Acked-by: Geert Uytterhoeven Signed-off-by: Magnus Damm Signed-off-by: Simon Horman arch/arm64/configs/defconfig | 5 +++++ 1 file changed, 5 insertions(+) commit 26a7e06dfee97b3fb1a4491d55831de7ef4723fd Author: Simon Horman Date: Tue Nov 17 02:42:32 2015 +0900 arm64: renesas: r8a7795: Add Renesas R8A7795 SoC support Initial version of Renesas R-Car H3 support (V10) Signed-off-by: Gaku Inami Signed-off-by: Kuninori Morimoto Signed-off-by: Magnus Damm Signed-off-by: Simon Horman Acked-by: Geert Uytterhoeven Documentation/devicetree/bindings/arm/shmobile.txt | 2 + arch/arm64/Kconfig.platforms | 17 +++++ arch/arm64/boot/dts/Makefile | 1 + arch/arm64/boot/dts/renesas/Makefile | 2 + arch/arm64/boot/dts/renesas/r8a7795.dtsi | 83 ++++++++++++++++++++++ 5 files changed, 105 insertions(+) commit 85d4a62140def5402bed3c6b914f6faafa185490 Author: Kuninori Morimoto Date: Fri Nov 6 06:46:30 2015 +0000 ASoC: rsnd: SND_SOC_RCAR doesn't depend on DMA_OF 8616774("ASoC: rnsd: fix build regression without CONFIG_OF") added "depends on DMA_OF" in SND_SOC_RCAR to avoid compile error of sound/built-in.o: In function `rsnd_dma_request_channel': :(.text+0x9fb84): undefined reference to `of_dma_request_slave_channel' But, it was OF base DMAEngine API definition issue, not SND_SOC_RCAR issue. This patch remove DMA_OF dependence. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/Kconfig | 1 - 1 file changed, 1 deletion(-) commit 4dde99bd32fc3f61f7c2b602a78f1627a118e450 Author: Geert Uytterhoeven Date: Mon Nov 9 10:28:50 2015 +0100 spi/bcm63xx: Move default clock configuration to kill compiler warning drivers/spi/spi-bcm63xx.c: In function ‘bcm63xx_spi_setup_transfer’: drivers/spi/spi-bcm63xx.c:207: warning: ‘clk_cfg’ may be used uninitialized in this function While this is a false positive, it can easily be avoided by selecting the default clock configuration first. Signed-off-by: Geert Uytterhoeven Signed-off-by: Mark Brown drivers/spi/spi-bcm63xx.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 1c07db46511f0d2335d3b32008f644164071d13e Author: Nicolas Pitre Date: Tue Nov 3 23:09:58 2015 -0500 mtd/sm_ftl.c: fix wrong do_div() usage do_div() is meant to be used with an unsigned dividend. Signed-off-by: Nicolas Pitre drivers/mtd/sm_ftl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit c24ca5be763a402c7fce0bd073c17de901ad5e38 Author: Nicolas Pitre Date: Tue Nov 3 23:09:58 2015 -0500 drm/mgag200/mgag200_mode.c: fix wrong do_div() usage do_div() is meant to be used with an unsigned dividend. Signed-off-by: Nicolas Pitre drivers/gpu/drm/mgag200/mgag200_mode.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8d43b49e7e0070f96ac46d30659a336c0224fa0b Author: Nicolas Pitre Date: Tue Nov 3 17:01:46 2015 -0500 hid-sensor-hub.c: fix wrong do_div() usage do_div() must only be used with a u64 dividend. Signed-off-by: Nicolas Pitre drivers/hid/hid-sensor-hub.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 93189ea425498339b13e5f74d254070d4a2b7d37 Author: Julia Lawall Date: Wed Nov 11 00:18:52 2015 +0100 ASoC: Intel: constify sst_block_ops structures The sst_block_ops structure is never modified, and is thus declared as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Acked-by: Jie Yang Signed-off-by: Mark Brown sound/soc/intel/common/sst-dsp-priv.h | 6 +++--- sound/soc/intel/common/sst-firmware.c | 4 ++-- sound/soc/intel/haswell/sst-haswell-dsp.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) commit 7fd9093a7570f5d8bbdc8014c0a349da2afea97e Author: Sugar Zhang Date: Tue Nov 10 15:32:08 2015 +0800 ASoC: rockchip: add playback property rockchip,playback-channels: max playback channels, 8 channels default. Signed-off-by: Sugar Zhang Signed-off-by: Mark Brown Documentation/devicetree/bindings/sound/rockchip-i2s.txt | 2 ++ 1 file changed, 2 insertions(+) commit c4f9374ddc461ed76be30f4d354a6d1ecb94dfa5 Author: Sugar Zhang Date: Tue Nov 10 15:32:07 2015 +0800 ASoC: rockchip: i2s: compatible with different chips there maybe more than one i2s module inside chip, and these i2s modules have different channels features. for example: there are 3 i2s in rk3066, one support 8 channels playback and 2 channels capture, but the others only support 2 channels playback and 2 channels capture. in order to compatible with these various chips, we add playback and capture property to specify these values. there are default channels configuration in driver: 8 channels playback and 2 channels capture. if not add property, we use the default values. Signed-off-by: Sugar Zhang Signed-off-by: Mark Brown sound/soc/rockchip/rockchip_i2s.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) commit 3db14288bcc1ef8b53c1ceef35d998530b630657 Author: Nicolas Pitre Date: Tue Nov 3 23:17:11 2015 -0500 ti/fapll: fix wrong do_div() usage do_div() is meant to be used with an unsigned dividend. Signed-off-by: Nicolas Pitre drivers/clk/ti/fapll.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e55791883f0a18734ac3d32eddf297b1610e248d Author: Nicolas Pitre Date: Tue Nov 3 23:09:58 2015 -0500 ti/clkt_dpll: fix wrong do_div() usage do_div() is meant to be used with an unsigned dividend. Signed-off-by: Nicolas Pitre drivers/clk/ti/clkt_dpll.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3ed9c824375b07a2acd6919d0fe7aa71650c7f69 Author: Nicolas Pitre Date: Tue Nov 3 21:49:15 2015 -0500 tegra/clk-divider: fix wrong do_div() usage do_div() is meant to be used with an unsigned dividend. Signed-off-by: Nicolas Pitre drivers/clk/tegra/clk-divider.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4471f9a4db2d8dfdc79618502fafb1172ab40f05 Author: Nicolas Pitre Date: Tue Nov 3 20:01:40 2015 -0500 imx/clk-pllv2: fix wrong do_div() usage do_div() is meant to be used with an unsigned dividend. Signed-off-by: Nicolas Pitre drivers/clk/imx/clk-pllv2.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 6a0078c8520697ab3e32180ede2df35e7630d94b Author: Nicolas Pitre Date: Tue Nov 3 19:46:23 2015 -0500 imx/clk-pllv1: fix wrong do_div() usage do_div() is meant to be used with an unsigned dividend. Signed-off-by: Nicolas Pitre drivers/clk/imx/clk-pllv1.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 8cb87c0407cb55277d8b9aa50f0e29201b90a88d Author: Nicolas Pitre Date: Tue Nov 3 17:01:46 2015 -0500 nouveau/nvkm/subdev/clk/gk20a.c: fix wrong do_div() usage do_div() must only be used with a u64 dividend. Signed-off-by: Nicolas Pitre drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk20a.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 49abc6cd58734803fb1428c3dfbb68fbc6ddb68c Author: Bard Liao Date: Tue Nov 10 16:54:54 2015 +0800 ASoC: rt5645: Separate regmap for rt5645 and rt5650 rt5645.c support both rt5645 and rt5650 codec. And the default value of registers are not identical. So we use different regmap for the two codecs. Signed-off-by: Bard Liao Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 209 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 200 insertions(+), 9 deletions(-) commit 9b5ba0df4ea4f94072f3e0d6064ab59607112e53 Author: Simon Horman Date: Tue Nov 10 09:06:41 2015 +0900 ARM: shmobile: Introduce ARCH_RENESAS The purpose of this patch is to start the process of replacing both ARCH_SHMOBILE and ARCH_SHMOBILE_MULTI with ARCH_RENESAS. RENESAS seems to be a more appropriate name than SHMOBILE for the majority of Renesas 32-bit ARM based SoCs. The name is conveniently also (newer) ARM64 based SoCs. This patches only addresses 32-bit ARM based SoCs. Proposed support for the ARM64 based r8a7795 SoC already uses ARCH_RENESAS which selects ARCH_SHMOBILE. Signed-off-by: Simon Horman arch/arm/configs/multi_v7_defconfig | 2 +- arch/arm/configs/shmobile_defconfig | 2 +- arch/arm/mach-shmobile/Kconfig | 10 +++++++--- 3 files changed, 9 insertions(+), 5 deletions(-) commit 804b0d7011ee464d8ca8c52dc38525572e526ab4 Author: Simon Horman Date: Tue Oct 20 14:06:31 2015 +0900 MAINTAINERS: Remove link to oss.renesas.com which is closed There doesn't seem much value in keeping this link listed in the MAINTAINERS file any more. Signed-off-by: Simon Horman MAINTAINERS | 1 - 1 file changed, 1 deletion(-) commit 9e9caa6a496174e53d7753baa4779717771da4a7 Author: Drew Richardson Date: Thu Oct 22 07:07:32 2015 -0700 arm64: perf: Add event descriptions Add additional information about the ARM architected hardware events to make counters self describing. This makes the hardware PMUs easier to use as perf list contains possible events instead of users having to refer to documentation like the ARM TRMs. Signed-off-by: Drew Richardson Signed-off-by: Will Deacon arch/arm64/kernel/perf_event.c | 138 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 138 insertions(+) commit 90381cba64591e27d0e8bbfe71bf8a98bd2a3db3 Author: Drew Richardson Date: Thu Oct 22 07:07:01 2015 -0700 arm64: perf: Convert event enums to #defines The enums are not necessary and this allows the event values to be used to construct static strings at compile time. Signed-off-by: Drew Richardson Signed-off-by: Will Deacon arch/arm64/kernel/perf_event.c | 95 ++++++++++++++++++++---------------------- 1 file changed, 45 insertions(+), 50 deletions(-) commit a946e8c717f9355d1abd5408ed0adc0002d1aed1 Author: Sudeep Holla Date: Wed Nov 4 18:32:37 2015 +0000 genirq: Delay incrementing interrupt count if it's disabled/pending In case of a wakeup interrupt, irq_pm_check_wakeup disables the interrupt and marks it pending and suspended, disables it and notifies the pm core about the wake event. The interrupt gets handled later once the system is resumed. However the irq stats is updated twice: once when it's disabled waiting for the system to resume and later when it's handled, resulting in wrong counting of the wakeup interrupt when waking up the system. This patch updates the interrupt count so that it's updated only when the interrupt gets handled. It's already handled correctly in handle_edge_irq and handle_edge_eoi_irq. Reported-by: Manoil Claudiu Signed-off-by: Sudeep Holla Cc: Marc Zyngier Link: http://lkml.kernel.org/r/1446661957-1019-1-git-send-email-sudeep.holla@arm.com Signed-off-by: Thomas Gleixner kernel/irq/chip.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit f46c4bd16e26eaf85f82cf95f4c77ade5302171d Author: Dan Williams Date: Wed Nov 11 16:37:12 2015 -0800 ahci: kill 'intr_status' This field in achi_port_priv was only used to support threaded interrupts. Now that we are hardirq only it can be deleted. Signed-off-by: Dan Williams Signed-off-by: Tejun Heo drivers/ata/ahci.h | 1 - 1 file changed, 1 deletion(-) commit a6b7fb764ed2a6b7bb1ac96d93c06787aa589092 Author: Dan Williams Date: Wed Nov 11 16:27:38 2015 -0800 ahci: switch from 'threaded' to 'hardirq' interrupt handling For high frequency I/O the overhead of threaded interrupts impacts performance. A quick out-of-the-box test (i.e. no affinity tuning) shows ~10% random read performance at ~20% less cpu. The cpu wins appear to be from reduced lock contention. Signed-off-by: Dan Williams Signed-off-by: Tejun Heo drivers/ata/libahci.c | 34 ++++++++-------------------------- 1 file changed, 8 insertions(+), 26 deletions(-) commit d684a90d38e24dcaf95fdb32c83efe05f80d152a Author: Dan Williams Date: Wed Nov 11 16:27:33 2015 -0800 ahci: per-port msix support Some AHCI controllers support per-port MSI-X vectors. At the same time the Linux AHCI driver needs to support one-off architectures that implement a single MSI-X vector for all ports. The heuristic for enabling AHCI ports becomes, in order of preference: 1/ per-port multi-MSI-X 2/ per-port multi-MSI 3/ single MSI 4/ single MSI-X 5/ legacy INTX This all depends on AHCI implementations with potentially broken MSI-X requesting less vectors than the number of ports. If this assumption is violated we will need to start explicitly white-listing AHCI-MSIX implementations. Reported-by: Ricardo Neri [ricardo: fix struct msix_entry handling] Reported-by: kernel test robot Signed-off-by: Dan Williams Signed-off-by: Tejun Heo drivers/ata/ahci.c | 67 ++++++++++++++++++++++++++++++++++----------------- drivers/ata/ahci.h | 2 ++ drivers/ata/libahci.c | 19 +++++++++++---- 3 files changed, 61 insertions(+), 27 deletions(-) commit 6c2920926b10e8303378408e3c2b8952071d4344 Author: Tejun Heo Date: Mon Nov 16 11:13:34 2015 -0500 cgroup: replace unified-hierarchy.txt with a proper cgroup v2 documentation Now that cgroup v2 is almost out of the door, replace the development documentation unified-hierarchy.txt with Documentation/cgroup.txt which is a superset of unified-hierarchy.txt and authoritatively describes all userland-visible aspects of cgroup. v2: Updated to include all information from blkio-controller.txt and list filesystems which support cgroup writeback as suggested by Vivek. Signed-off-by: Tejun Heo Acked-by: Li Zefan Cc: Vivek Goyal Documentation/cgroup-legacy/blkio-controller.txt | 79 -- Documentation/cgroup-legacy/unified-hierarchy.txt | 645 ---------- Documentation/cgroup.txt | 1293 +++++++++++++++++++++ 3 files changed, 1293 insertions(+), 724 deletions(-) commit 0d942766453f3d23a51e0a2d430340a178b0903e Author: Tejun Heo Date: Mon Nov 16 11:13:34 2015 -0500 cgroup: rename Documentation/cgroups/ to Documentation/cgroup-legacy/ In preparation for adding cgroup2 documentation, rename Documentation/cgroups/ to Documentation/cgroup-legacy/. Signed-off-by: Tejun Heo Acked-by: Li Zefan Documentation/cgroup-legacy/00-INDEX | 30 + Documentation/cgroup-legacy/blkio-controller.txt | 455 +++++++++++ Documentation/cgroup-legacy/cgroups.txt | 682 +++++++++++++++++ Documentation/cgroup-legacy/cpuacct.txt | 49 ++ Documentation/cgroup-legacy/cpusets.txt | 839 +++++++++++++++++++++ Documentation/cgroup-legacy/devices.txt | 116 +++ Documentation/cgroup-legacy/freezer-subsystem.txt | 123 +++ Documentation/cgroup-legacy/hugetlb.txt | 45 ++ Documentation/cgroup-legacy/memcg_test.txt | 280 +++++++ Documentation/cgroup-legacy/memory.txt | 876 ++++++++++++++++++++++ Documentation/cgroup-legacy/net_cls.txt | 39 + Documentation/cgroup-legacy/net_prio.txt | 55 ++ Documentation/cgroup-legacy/pids.txt | 85 +++ Documentation/cgroup-legacy/unified-hierarchy.txt | 645 ++++++++++++++++ Documentation/cgroups/00-INDEX | 30 - Documentation/cgroups/blkio-controller.txt | 455 ----------- Documentation/cgroups/cgroups.txt | 682 ----------------- Documentation/cgroups/cpuacct.txt | 49 -- Documentation/cgroups/cpusets.txt | 839 --------------------- Documentation/cgroups/devices.txt | 116 --- Documentation/cgroups/freezer-subsystem.txt | 123 --- Documentation/cgroups/hugetlb.txt | 45 -- Documentation/cgroups/memcg_test.txt | 280 ------- Documentation/cgroups/memory.txt | 876 ---------------------- Documentation/cgroups/net_cls.txt | 39 - Documentation/cgroups/net_prio.txt | 55 -- Documentation/cgroups/pids.txt | 85 --- Documentation/cgroups/unified-hierarchy.txt | 645 ---------------- 28 files changed, 4319 insertions(+), 4319 deletions(-) commit 67e9c74b8a873408c27ac9a8e4c1d1c8d72c93ff Author: Tejun Heo Date: Mon Nov 16 11:13:34 2015 -0500 cgroup: replace __DEVEL__sane_behavior with cgroup2 fs type With major controllers - cpu, memory and io - shaping up for the unified hierarchy, cgroup2 is about ready to be, gradually, released into the wild. Replace __DEVEL__sane_behavior flag which was used to select the unified hierarchy with a separate filesystem type "cgroup2" so that unified hierarchy can be mounted as follows. mount -t cgroup2 none $MOUNT_POINT The cgroup2 fs has its own magic number - 0x63677270 ("cgrp"). v2: Assign a different magic number to cgroup2 fs. Signed-off-by: Tejun Heo Acked-by: Li Zefan Cc: Johannes Weiner Documentation/cgroups/unified-hierarchy.txt | 6 ++-- include/linux/cgroup-defs.h | 1 - include/uapi/linux/magic.h | 1 + kernel/cgroup.c | 47 ++++++++++++++--------------- 4 files changed, 26 insertions(+), 29 deletions(-) commit 18fc93fd64129c96432812cb44f59c963871889b Author: Jungseok Lee Date: Wed Nov 4 13:26:07 2015 +0000 percpu: remove PERCPU_ENOUGH_ROOM which is stale definition As pure cleanup, this patch removes PERCPU_ENOUGH_ROOM which is not used any more. That is, no code refers to the definition. Acked-by: Christoph Lameter Signed-off-by: Jungseok Lee Signed-off-by: Tejun Heo arch/ia64/include/asm/percpu.h | 2 -- include/linux/percpu.h | 6 ------ 2 files changed, 8 deletions(-) commit 3fbac6ccb6c3a8958239d9026c4d41db60c2f1cf Author: Drew Richardson Date: Wed Oct 28 08:20:41 2015 -0700 arm: perf: Add event descriptions Add additional information about the ARM architected hardware events to make counters self describing. This makes the hardware PMUs easier to use as perf list contains possible events instead of users having to refer to documentation like the ARM TRMs. Signed-off-by: Drew Richardson Signed-off-by: Will Deacon arch/arm/kernel/perf_event_v7.c | 121 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) commit f4ab36cb103a55d02ef83727880a14d9be9823f0 Author: Drew Richardson Date: Wed Oct 28 08:19:56 2015 -0700 arm: perf: Convert event enums to #defines The enums are not necessary and this allows the event values to be used to construct static strings at compile time. Signed-off-by: Drew Richardson Signed-off-by: Will Deacon arch/arm/kernel/perf_event_v7.c | 186 ++++++++++++++++++---------------------- 1 file changed, 85 insertions(+), 101 deletions(-) commit b916b785af99088916a122cb37de1bda3fa7f70e Author: Mark Rutland Date: Wed Oct 28 12:32:17 2015 +0000 drivers/perf: kill armpmu_register Nothing outside of drivers/perf/arm_pmu.c should call armpmu_register any more, so it no longer needs to be in include/linux/perf/arm_pmu.h. Additionally, by folding it in to arm_pmu_device_probe we can allow drivers to override struct pmu fields without getting blatted by the armpmu code. This patch folds armpmu_register into arm_pmu_device_probe. The logging to the console is moved to after the PMU is successfully registered with the core perf code. Signed-off-by: Mark Rutland Suggested-by: Will Deacon Cc: Drew Richardson Cc: Pawel Moll Signed-off-by: Will Deacon drivers/perf/arm_pmu.c | 15 ++++++--------- include/linux/perf/arm_pmu.h | 2 -- 2 files changed, 6 insertions(+), 11 deletions(-) commit 4d4142696e18cf30af319031d47bba46853a4605 Author: Guillaume Gomez Date: Wed Sep 23 12:34:30 2015 +0200 percpu: Remove unneeded return from void function Signed-off-by: Guillaume Gomez Acked-by: Christoph Lameter Signed-off-by: Tejun Heo include/linux/percpu-refcount.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 95ace75414f312f9a7b93d873f386987b92a5301 Author: Eric W. Biederman Date: Wed Nov 11 17:22:33 2015 -0600 locks: Don't allow mounts in user namespaces to enable mandatory locking Since no one uses mandatory locking and files with mandatory locks can cause problems don't allow them in user namespaces. Signed-off-by: "Eric W. Biederman" Signed-off-by: Jeff Layton fs/namespace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9e8925b67a809bb27ce4b7d352d67f25cf1d7fc5 Author: Jeff Layton Date: Mon Nov 16 09:49:34 2015 -0500 locks: Allow disabling mandatory locking at compile time Mandatory locking appears to be almost unused and buggy and there appears no real interest in doing anything with it. Since effectively no one uses the code and since the code is buggy let's allow it to be disabled at compile time. I would just suggest removing the code but undoubtedly that will break some piece of userspace code somewhere. For the distributions that don't care about this piece of code this gives a nice starting point to make mandatory locking go away. Cc: Benjamin Coddington Cc: Dmitry Vyukov Cc: Jeff Layton Cc: J. Bruce Fields Signed-off-by: "Eric W. Biederman" Signed-off-by: Jeff Layton fs/Kconfig | 10 ++++++++ fs/locks.c | 2 ++ fs/namespace.c | 10 ++++++++ include/linux/fs.h | 74 +++++++++++++++++++++++++++++------------------------- 4 files changed, 62 insertions(+), 34 deletions(-) commit 36d6e0872152aab506f952792db7221b9c25ed33 Author: Thierry Reding Date: Mon Nov 16 15:45:36 2015 +0100 arm64: defconfig: Enable printk timestamps Timestamps in the kernel log can be useful to quickly determine where time is spent during boot. There are tools that can generate charts of the boot time, but it's sometimes convenient to see this live and without the need to go through scripts to parse the logs first. Also, this option is enabled on a large number of configurations, not enabling it is confusing because the boot log looks very different from what one is used to. Signed-off-by: Thierry Reding arch/arm64/configs/defconfig | 1 + 1 file changed, 1 insertion(+) commit e39823e7d2fd725758cf0219165183f23a69a064 Author: Thierry Reding Date: Mon Nov 16 15:44:26 2015 +0100 arm64: defconfig: Enable squashfs support squashfs can be a convenient way to use a root filesystem stored as a file on some other root filesystem. Signed-off-by: Thierry Reding arch/arm64/configs/defconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ce64c809b7062e8188772e7662b62159663fd72b Author: Thierry Reding Date: Mon Nov 16 15:41:22 2015 +0100 arm64: defconfig: Enable sdhci-tegra driver This driver is used to service the SDHCI interfaces found on NVIDIA tegra SoCs. Enabling it allows SD and eMMC cards to be used for the root filesystem. Signed-off-by: Thierry Reding arch/arm64/configs/defconfig | 1 + 1 file changed, 1 insertion(+) commit 0a31289369f811759ccba508d0b26aa3714943a6 Author: Thierry Reding Date: Mon Nov 16 15:40:23 2015 +0100 arm64: defconfig: Enable serial-tegra driver This driver is used to service the serial ports found on NVIDIA Tegra SoCs. Signed-off-by: Thierry Reding arch/arm64/configs/defconfig | 1 + 1 file changed, 1 insertion(+) commit 73d877eb06dbe4982a8ebbc5c048b07ebfe72712 Author: Thierry Reding Date: Mon Nov 16 15:42:57 2015 +0100 arm64: defconfig: Enable tegra-apbdma driver This driver enables the use of the DMA engine from several of the peripherals found on NVIDIA Tegra SoCs. Signed-off-by: Thierry Reding arch/arm64/configs/defconfig | 1 + 1 file changed, 1 insertion(+) commit 206e7ef0834bd86cea5a5987db5f70c0db65cdf7 Author: Thierry Reding Date: Mon Nov 16 15:38:31 2015 +0100 arm64: defconfig: Do not disable Tegra AHB driver This driver is enabled by default on Tegra because it is needed by the drivers for a number of peripherals. Signed-off-by: Thierry Reding arch/arm64/configs/defconfig | 1 - 1 file changed, 1 deletion(-) commit bdfeae0d73d481808bf87c6afec36ee4c23a69c1 Author: Thierry Reding Date: Mon Nov 16 15:35:59 2015 +0100 arm64: defconfig: Enable Tegra210 support Enable support for this new generation of the Tegra SoC. Signed-off-by: Thierry Reding arch/arm64/configs/defconfig | 1 + 1 file changed, 1 insertion(+) commit 1f38089cb73aa39a20d8efddadd6779fc361a892 Author: Ville Syrjälä Date: Wed Nov 11 20:34:16 2015 +0200 drm/i915: Model PSR AUX register selection more like the normal AUX code v2: Split up the ctl vs. data reg handling like in the normal AUX code Signed-off-by: Ville Syrjälä Reviewed-by: Chris Wilson Link: http://patchwork.freedesktop.org/patch/msgid/1447266856-30249-8-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/i915/intel_psr.c | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) commit 443a389f43c05e4b8205b03dd17547d3af92a711 Author: Ville Syrjälä Date: Wed Nov 11 20:34:15 2015 +0200 drm/i915: Add dev_priv->psr_mmio_base Drop the EDP_PSR_BASE() thing, and just stick the PSR register offset under dev_priv, like we for DSI and GPIO for example. TODO: could probably move a bunch of this kind of stuff into the device info instead... v2: Drop the spurious whitespace change (Jani) Reviewed-by: Jani Nikula Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1447266856-30249-7-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/i915/i915_debugfs.c | 4 ++-- drivers/gpu/drm/i915/i915_drv.h | 2 ++ drivers/gpu/drm/i915/i915_reg.h | 15 ++++++++------- drivers/gpu/drm/i915/intel_psr.c | 27 +++++++++++++++------------ 4 files changed, 27 insertions(+), 21 deletions(-) commit 330e20ec77307663f4db64ab769d849c0c6a4627 Author: Ville Syrjälä Date: Wed Nov 11 20:34:14 2015 +0200 drm/i915: Store aux data reg offsets in intel_dp->aux_ch_data_reg[] Rather than computing on demand, store also the aux data reg offsets under intel_dp. v2: Duplicate some code to make things less magic (Jani) v3: Use PORT_B registers for invalid ports in g4x_aux_data_reg() Signed-off-by: Ville Syrjälä Reviewed-by: Chris Wilson Link: http://patchwork.freedesktop.org/patch/msgid/1447266856-30249-6-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/i915/intel_dp.c | 94 +++++++++++++++++++++++++++++++++++----- drivers/gpu/drm/i915/intel_drv.h | 1 + 2 files changed, 85 insertions(+), 10 deletions(-) commit da00bdcfb25989afc025274fecbdcbfd9a24d3a1 Author: Ville Syrjälä Date: Wed Nov 11 20:34:13 2015 +0200 drm/i915: Remove the magic AUX_CTL is at DP + foo tricks Currently we determine the location of the AUX registers in a confusing way. First we assume the PCH registers are used always, but then we override it for everything but HSW/BDW to use DP+0x10. Very confusing. Let's just make it straightforward and simply add a few functions to pick the right AUX_CTL based on the DP port. To deal with VLV/CHV we'll include the display_mmio_offset into the AUX register defines. v2: Reorder patches (Chris) Signed-off-by: Ville Syrjälä Reviewed-by: Chris Wilson (v1) Link: http://patchwork.freedesktop.org/patch/msgid/1447266856-30249-5-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/i915/i915_reg.h | 54 ++++++++--------- drivers/gpu/drm/i915/intel_dp.c | 127 ++++++++++++++++++++++++---------------- 2 files changed, 105 insertions(+), 76 deletions(-) commit 750a951fd34808d8822abafccd0dfa479deef0a0 Author: Ville Syrjälä Date: Wed Nov 11 20:34:12 2015 +0200 drm/i915: Parametrize AUX registers v2: Keep some MISSING_CASE() stuff (Jani) s/-1/-PIPE_B/ in the register macro Fix typo in patch subject v3: Use PORT_B registers for invalid ports in g4x_aux_ctl_reg() (Jani) v4: Reorder patches (Chris) Signed-off-by: Ville Syrjälä Reviewed-by: Jani Nikula (v3) Reviewed-by: Chris Wilson (v3) Link: http://patchwork.freedesktop.org/patch/msgid/1447266856-30249-4-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/i915/i915_reg.h | 102 ++++++++++++++++++++------------------- drivers/gpu/drm/i915/intel_dp.c | 18 +++---- drivers/gpu/drm/i915/intel_psr.c | 5 +- 3 files changed, 62 insertions(+), 63 deletions(-) commit a121f4e5fae5d7542e1c4158bc9a47de825547f3 Author: Ville Syrjälä Date: Wed Nov 11 20:34:11 2015 +0200 drm/i915: Replace the aux ddc name switch statement with kasprintf() Use kasprintf() to generate the "DPDDC-" name for the aux helper. To deal with errors properly make intel_dp_aux_init() return something, and adjust the caller to match. It seems we were also missing a intel_dp_mst_encoder_cleanup() call on edp (non-port A) init failures, so add that too. The whole error/cleanup ordering doesn't feel entirely sane to me, but I'll leave that part alone for now. v2: Use kasprintf() instead of a table, reorder patches (Chis) Cc: Chris Wilson Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1447266856-30249-3-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Jani Nikula drivers/gpu/drm/i915/intel_dp.c | 75 +++++++++++++++++++++++++---------------- 1 file changed, 46 insertions(+), 29 deletions(-) commit f3c6a3a70d6768038fb005cb8d745e21b4511ca9 Author: Ville Syrjälä Date: Wed Nov 11 20:34:10 2015 +0200 drm/i915: Replace aux_ch_ctl_reg check with port check Instead of checking what aux_ch_ctl_reg is, we can simply check the port when determining the right timeout value to program. v2: Reorder patches to reduce churn (Chris) Signed-off-by: Ville Syrjälä Reviewed-by: Chris Wilson (v1) Link: http://patchwork.freedesktop.org/patch/msgid/1447266856-30249-2-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/i915/intel_dp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 35299f1779dbdcb61af4305904963b5bc9276eb9 Author: Kuninori Morimoto Date: Mon Nov 16 06:01:29 2015 +0000 ASoC: ak4613: tidyup CTRL1 value selection method Current CTRL1 selection method didn't care about simultaneous playback / capture. This patch tidyup it. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/codecs/ak4613.c | 90 ++++++++++++++++++++++++++++------------------- 1 file changed, 54 insertions(+), 36 deletions(-) commit a3af0c65836e714fa71dcaa0a81f6db83a212faa Author: Kuninori Morimoto Date: Mon Nov 16 04:51:21 2015 +0000 ASoC: ak4613: add single-end optional property for IN/OUT pins ak4613 IN/OUT pin can be selected as differential/single-end. Default is differential, because it is register default settings. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown Documentation/devicetree/bindings/sound/ak4613.txt | 10 ++++++++ sound/soc/codecs/ak4613.c | 29 ++++++++++++++++++++++ 2 files changed, 39 insertions(+) commit d0bf1ff0ae322aca59b00b9a2ad121d35a77e78f Author: Konstantin Shkolnyy Date: Wed Oct 28 16:02:54 2015 -0500 USB: cp210x: work around cp2108 GET_LINE_CTL bug Add helper to access line-control register in order to work around a cp2108 GET_LINE_CTL bug. cp2108 GET_LINE_CTL returns the 16-bit value with the 2 bytes swapped. However, SET_LINE_CTL functions properly. When the driver tries to modify the register, it reads it, modifies some bits and writes back. Because the read bytes were swapped, this often results in an invalid value to be written. In turn, this causes cp2108 respond with a stall. The stall sometimes doesn't clear properly and cp2108 starts responding to following valid commands also with stalls, effectively failing. Signed-off-by: Konstantin Shkolnyy [johan: amend commit message, modify probe error handling ] Signed-off-by: Johan Hovold drivers/usb/serial/cp210x.c | 70 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 66 insertions(+), 4 deletions(-) commit e2ae67a3b55188b0342522d8139acf013feb2a69 Author: Konstantin Shkolnyy Date: Wed Oct 28 16:02:34 2015 -0500 USB: cp210x: relocate private data from USB interface to port This change is preparation for implementing a cp2108 bug workaround. The workaround requires storing some private data. Right now the data is attached to the USB interface and allocated in the attach() callback. The bug detection requires USB I/O which is done easier from port_probe() callback rather than attach(). Since the USB access functions take port as a parameter, and since the private data is used exclusively by these functions, it can be allocated in port_probe(). Also, all cp210x devices have exactly 1 port per USB iterface, so moving private data from the USB interface to port is trivial. Signed-off-by: Konstantin Shkolnyy Signed-off-by: Johan Hovold drivers/usb/serial/cp210x.c | 43 +++++++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 20 deletions(-) commit ebfb319bb601e501f77809a83b0b69b529c22a8d Author: Konstantin Shkolnyy Date: Wed Oct 28 16:02:03 2015 -0500 USB: cp210x: flush device queues at close Flush all device queues at close in order to work around a cp2108 Tx queue bug. Occasionally, writing data and immediately closing the port makes cp2108 stop responding. The device has to be unplugged to clear the error. The failure is induced by shutting down the device while its Tx queue still has unsent data. This condition is avoided by issuing PURGE command from the close() callback. This change is applied to all cp210x devices. Clearing internal queues on close is generally good. Signed-off-by: Konstantin Shkolnyy [johan: amend commit message ] Signed-off-by: Johan Hovold drivers/usb/serial/cp210x.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 6e5b143c1d86d75a6d18b9f2cbde3aaebae87423 Author: Oder Chiou Date: Tue Nov 10 19:35:18 2015 +0800 ASoC: rt5645: Use the mod_delayed_work instead of the queue_delayed_work and cancel_delayed_work_sync Signed-off-by: Oder Chiou Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 438cd5afb0e1da50468c4433a67564e2d0c864ef Merge: 8005c49 7099ee8 Author: Mark Brown Date: Mon Nov 16 10:24:11 2015 +0000 Merge branch 'fix/rt5645' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into HEAD commit fa1a51f3cd9849fcfb811c7cd62d6e2028ad4ea9 Author: Robert Jarzmik Date: Sun Nov 1 20:23:40 2015 +0100 ASoC: wm9713: use snd_soc_*() calls to update ac97 registers Convert wm9713 to use the more modern registers manipulation functions, such as snd_soc_read(), snd_soc_write() and snd_soc_update_bits(). Signed-off-by: Robert Jarzmik Reviewed-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm9713.c | 140 +++++++++++++++++----------------------------- 1 file changed, 52 insertions(+), 88 deletions(-) commit 700dadfefc3df1f63dfbae7cb42fda147f4c074c Author: Robert Jarzmik Date: Sun Nov 1 20:23:39 2015 +0100 ASoC: wm9713: convert to regmap Convert the Wolfson WM9713 to regmap API. This will leverage all the regmap functions (debug, registers update, etc ...). As a bonus, this will pave the path to gpio chip introduction, and devicetree support. This was tested on the mioa701 board, pxa27x based, in PCM playback, and through suspend/resume. Signed-off-by: Robert Jarzmik Reviewed-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/Kconfig | 1 + sound/soc/codecs/wm9713.c | 174 ++++++++++++++++++++++++++++------------------ 2 files changed, 108 insertions(+), 67 deletions(-) commit 4b6c56c2f5d2b24629780a76718c3a836e7bf044 Author: Mengdong Lin Date: Fri Oct 30 15:13:16 2015 +0800 ASoC: topology: ABI - Rename dai_elems to pcm_elems in manifest This field is the number of PCM objects (a pair of FE DAI and DAI link). Signed-off-by: Lin Mengdong Signed-off-by: Mark Brown include/uapi/sound/asoc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cdab0d4ecc1a890aece7102c2074bf73175b9935 Author: Anatol Pomozov Date: Thu Oct 29 15:31:59 2015 -0700 ASoC: rt5677: use 'active low' logic for reset pin According to the datasheet RESET is active low pin, i.e. system goes to reset state when pin signal is low. The previous implementeation was assuming the pin is configured as 'active high' in DTS. Changle the gpio handling code and DTS configuration to 'active low'. Signed-off-by: Anatol Pomozov Signed-off-by: Mark Brown Documentation/devicetree/bindings/sound/rt5677.txt | 2 +- sound/soc/codecs/rt5677.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) commit 4bbda49cc40f6c2e5cc3a5dd22cded1d217e074d Author: Bard Liao Date: Wed Oct 21 16:18:19 2015 +0800 ASoC: rt298: fix remove unnedded clk setting The bit is no longer present. So remove it. Signed-off-by: Bard Liao Signed-off-by: Mark Brown sound/soc/codecs/rt298.c | 2 -- 1 file changed, 2 deletions(-) commit 3a3b070da98e43037e35b9ad02eb0fff1a57e318 Author: Caesar Wang Date: Fri Nov 6 19:38:16 2015 +0800 ASoC: rockchip-rt5645: Allow more sample rates The RT5645 audio codec support sample rates from 8 to 96 kHz as the dai claim. Signed-off-by: Caesar Wang Signed-off-by: Mark Brown sound/soc/rockchip/rockchip_rt5645.c | 6 ++++++ 1 file changed, 6 insertions(+) commit a4ebd38042cf479a6917f09fbb1cf1f093dcf60d Author: Caesar Wang Date: Fri Nov 6 19:38:15 2015 +0800 ASoC: rockchip-max98090: Allow more sample rates The MAX98090 audio codec support sample rates from 8 to 96 kHz as the dai claim. Signed-off-by: Caesar Wang Signed-off-by: Mark Brown sound/soc/rockchip/rockchip_max98090.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 2458c37779ddb91b4109949d86f5a5e193ba415b Author: Caesar Wang Date: Fri Nov 6 19:38:14 2015 +0800 ASoC: rockchip: i2s: change bclk and lrck according to sample rates This patch sets the dividers autonomously. when i2s works on master mode, and sample rates changed. We need to change bclk and lrck at the same time for cpu internal side. As the input source clock to the module is MCLK_I2S, and by the divider of the module, the clock generator generates SCLK and LRCK to transmitter and receiver. Signed-off-by: Caesar Wang Signed-off-by: Mark Brown sound/soc/rockchip/rockchip_i2s.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit 68a550248e295ba548e30c876ccdec351e286eee Author: Kuninori Morimoto Date: Thu Nov 5 08:51:15 2015 +0000 ASoC: rsnd: call clk_prepare()/clk_enable() for AUDIO_CLKx ADG can output AUDIO_CLKOUTx, and these are generated from AUDIO_CLKx. Thus we need to call clk_prepare()/clk_enable() for AUDIO_CLKx. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/adg.c | 21 +++++++++++++++++++-- sound/soc/sh/rcar/core.c | 1 + sound/soc/sh/rcar/rsnd.h | 2 ++ 3 files changed, 22 insertions(+), 2 deletions(-) commit 81ad174db5ca8f372da6dc31a4ca25d52f9bec5f Author: Kuninori Morimoto Date: Thu Nov 5 08:50:10 2015 +0000 ASoC: rsnd: tidyup comment position of rsnd_mod_xxx f1df12290("ASoC: rsnd: add common mod confirm method") added rsnd_mod_make_sure(), but rsnd_mod_xxx() comment position was wrong. This patch tidyup it. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 13e0d17d08d1d651aa119c286f74cf366caf09dd Author: Kuninori Morimoto Date: Wed Nov 4 08:44:32 2015 +0000 ASoC: rsnd: MIX settings matches to datasheet Current MIX settings order was rough. This patch makes it match to datasheet. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/mix.c | 45 +++++++++++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 18 deletions(-) commit ca16cc61592377ebd48d5f22fd823b592c80038e Author: Kuninori Morimoto Date: Wed Nov 4 08:44:12 2015 +0000 ASoC: rsnd: DVC settings matches to datasheet Current DVC settings order was rough. This patch makes it match to datasheet. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/dvc.c | 119 +++++++++++++++++++++++++++++++----------------- 1 file changed, 77 insertions(+), 42 deletions(-) commit dcc5a7b3b069cca17f3c5254006c66b99e87ffd3 Author: Kuninori Morimoto Date: Wed Nov 4 08:43:33 2015 +0000 ASoC: rsnd: move CMD related operation to cmd.c 8cca6e11c1 ("ASoC: rsnd: use mod base common method on CMD") added cmd.c. Let's move CMD related operation to cmd.c Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/cmd.c | 20 ++++++++++++++++++++ sound/soc/sh/rcar/dvc.c | 24 +----------------------- 2 files changed, 21 insertions(+), 23 deletions(-) commit 209c09071f365aed48f8a7af5a25ea3edcfb891c Author: Kuninori Morimoto Date: Thu Oct 29 07:42:40 2015 +0000 ASoC: rsnd: audio_clkout0/1/2/3 are optional properties Renesas sound driver can output Audio-clkout0/1/2/3, but these are optional properties for each board. Reported-by: Geert Uytterhoeven Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown Documentation/devicetree/bindings/sound/renesas,rsnd.txt | 2 ++ 1 file changed, 2 insertions(+) commit 6240444206dae60041d49f7531cf983b8f2e32ad Author: Geert Uytterhoeven Date: Thu Oct 29 20:59:55 2015 +0100 ASoC: rsrc-card: Clarify compatible value The compatible value can be board-specific, not SoC-specific. Add curly braces to indicate that the board type is optional. Signed-off-by: Geert Uytterhoeven Acked-by: Kuninori Morimoto Signed-off-by: Mark Brown Documentation/devicetree/bindings/sound/renesas,rsrc-card.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8b27418f300cafbdbbb8cfa9c29d398ed34d6723 Author: Geert Uytterhoeven Date: Wed Oct 28 16:03:48 2015 +0100 ASoC: rsnd: Add missing initialization of ADG req_rate If the "clock-frequency" DT property is not found, req_rate is used uninitialized, and the "audio_clkout" clock will be created with an arbitrary clock rate. This uninitialized kernel stack data may leak to userspace through /sys/kernel/debug/clk/clk_summary, cfr. the value in the "rate" column: clock enable_cnt prepare_cnt rate accuracy phase -------------------------------------------------------------------- audio_clkout 0 0 4001836240 0 0 Signed-off-by: Geert Uytterhoeven Acked-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/adg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9c66eedc17bdf180d952e8d3550a23c2f93d9fff Author: Kuninori Morimoto Date: Wed Oct 28 04:31:03 2015 +0000 ASoC: rsnd: fixup rsnd_dmapp_stop() return value 45a4394d03("ASoC: rsnd: use mod base common method on DMA phase3") Exchanged "void rsnd_dmapp_stop()" to "int rsnd_dmapp_stop()", but it returns inverted value. This patch fixup it. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/dma.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f36a82264d5a4ba90f093d397d65b7fdc763885a Author: Kuninori Morimoto Date: Wed Oct 28 04:30:11 2015 +0000 ASoC: rsnd: call rsnd_src_quit() from rsnd_src_quit_gen2() 2d604e03("ASoC: rsnd: disable SRC.out only when stop timing") added rsnd_src_quit_gen2(), but it should call rsnd_src_quit() same as before. This patch fixup it. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/src.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e7d850dd10f4e61b728495a87ce096509843315f Author: Kuninori Morimoto Date: Mon Oct 26 08:43:57 2015 +0000 ASoC: rsnd: use mod base common method on SSI-parent Renesas sound needs many devices (SSI/SSIU/SRC/CTU/MIX/DVC/CMD/AudioDMAC/AudioDMACpp). SSI/SRC/CTU/MIX/DVC are implemented as module. SSI parent, SSIU are implemented as part of SSI CMD is implemented as part of CTU/MIX/DVC AudioDMAC/AudioDMACpp are implemented as part of SSI/SRC It is nice sense that these all devices are implemented as mod. This patch makes SSI parent mod base common method Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/rsnd.h | 2 + sound/soc/sh/rcar/ssi.c | 301 +++++++++++++++++++++++++---------------------- 2 files changed, 161 insertions(+), 142 deletions(-) commit c7f69ab5364da21a2fc7f01c5bc32a5b5b5fee5d Author: Kuninori Morimoto Date: Mon Oct 26 08:43:41 2015 +0000 ASoC: rsnd: use mod base common method on SSIU Renesas sound needs many devices (SSI/SSIU/SRC/CTU/MIX/DVC/CMD/AudioDMAC/AudioDMACpp). SSI/SRC/CTU/MIX/DVC are implemented as module. SSI parent, SSIU are implemented as part of SSI CMD is implemented as part of CTU/MIX/DVC AudioDMAC/AudioDMACpp are implemented as part of SSI/SRC It is nice sense that these all devices are implemented as mod. This patch makes SSIU mod base common method Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/Makefile | 2 +- sound/soc/sh/rcar/core.c | 2 + sound/soc/sh/rcar/rsnd.h | 23 ++++-- sound/soc/sh/rcar/src.c | 65 ---------------- sound/soc/sh/rcar/ssi.c | 22 +++--- sound/soc/sh/rcar/ssiu.c | 181 +++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 211 insertions(+), 84 deletions(-) commit 1b2ca0adf1a0cb3aa766259650eddd25b44486b7 Author: Kuninori Morimoto Date: Mon Oct 26 08:43:21 2015 +0000 ASoC: rsnd: use mod base common method on CMD Renesas sound needs many devices (SSI/SSIU/SRC/CTU/MIX/DVC/CMD/AudioDMAC/AudioDMACpp). SSI/SRC/CTU/MIX/DVC are implemented as module. SSI parent, SSIU are implemented as part of SSI CMD is implemented as part of CTU/MIX/DVC AudioDMAC/AudioDMACpp are implemented as part of SSI/SRC It is nice sense that these all devices are implemented as mod. This patch makes CMD mod base common method Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/Makefile | 2 +- sound/soc/sh/rcar/cmd.c | 153 +++++++++++++++++++++++++++++++++++++++++++++ sound/soc/sh/rcar/core.c | 75 +--------------------- sound/soc/sh/rcar/ctu.c | 8 +++ sound/soc/sh/rcar/dvc.c | 18 ++++-- sound/soc/sh/rcar/mix.c | 10 ++- sound/soc/sh/rcar/rsnd.h | 20 +++++- 7 files changed, 202 insertions(+), 84 deletions(-) commit 497debaa803e25fc0163fe4380335b8626acad44 Author: Kuninori Morimoto Date: Mon Oct 26 08:43:01 2015 +0000 ASoC: rsnd: use mod base common method on DMA phase3 Renesas sound needs many devices (SSI/SSIU/SRC/CTU/MIX/DVC/CMD/AudioDMAC/AudioDMACpp). SSI/SRC/CTU/MIX/DVC are implemented as module. SSI parent, SSIU are implemented as part of SSI CMD is implemented as part of CTU/MIX/DVC AudioDMAC/AudioDMACpp are implemented as part of SSI/SRC It is nice sense that these all devices are implemented as mod. This patch makes DMA mod bse common method Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/dma.c | 154 +++++++++++++++++++---------------------------- sound/soc/sh/rcar/rsnd.h | 9 --- sound/soc/sh/rcar/src.c | 50 +++------------ sound/soc/sh/rcar/ssi.c | 34 +---------- 4 files changed, 71 insertions(+), 176 deletions(-) commit 76c80b5b3fa666da1a551c47b4597e4efaf2d8c4 Author: Kuninori Morimoto Date: Mon Oct 26 08:42:46 2015 +0000 ASoC: rsnd: use mod base common method on DMA phase2 Renesas sound needs many devices (SSI/SSIU/SRC/CTU/MIX/DVC/CMD/AudioDMAC/AudioDMACpp). SSI/SRC/CTU/MIX/DVC are implemented as module. SSI parent, SSIU are implemented as part of SSI CMD is implemented as part of CTU/MIX/DVC AudioDMAC/AudioDMACpp are implemented as part of SSI/SRC It is nice sense that these all devices are implemented as mod. DMA will be implemented as module. Then rsnd_dma_ops will be rebased to rsnd_mod_ops, but these are similar, but different function. This patch modify rsnd_dma_ops same style as rsnd_mod_ops. This is prepare for final merge Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/dma.c | 62 +++++++++++++++++++++++++++++++++--------------- sound/soc/sh/rcar/rsnd.h | 12 +++++++--- sound/soc/sh/rcar/src.c | 6 ++--- sound/soc/sh/rcar/ssi.c | 6 ++--- 4 files changed, 58 insertions(+), 28 deletions(-) commit 940e947926cab8637e7a664e1f6e4bf8b94e42c5 Author: Kuninori Morimoto Date: Mon Oct 26 08:42:25 2015 +0000 ASoC: rsnd: use mod base common method on DMA phase1 Renesas sound needs many devices (SSI/SSIU/SRC/CTU/MIX/DVC/CMD/AudioDMAC/AudioDMACpp). SSI/SRC/CTU/MIX/DVC are implemented as module. SSI parent, SSIU are implemented as part of SSI CMD is implemented as part of CTU/MIX/DVC AudioDMAC/AudioDMACpp are implemented as part of SSI/SRC It is nice sense that these all devices are implemented as mod. DMA will be implemented as module. Then rsnd_dma will be mod base. This patch makes rsnd_dma mod base, but still not yet completely finished. This mod is not yet installed to system at this point. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/dma.c | 61 ++++++++++++++++++++++++++++++++---------------- sound/soc/sh/rcar/rsnd.h | 14 +++++------ sound/soc/sh/rcar/src.c | 2 +- sound/soc/sh/rcar/ssi.c | 6 ++--- 4 files changed, 52 insertions(+), 31 deletions(-) commit e10369d88c16456b0ff3ae31b4e30a3d2795a243 Author: Kuninori Morimoto Date: Mon Oct 26 08:42:09 2015 +0000 ASoC: rsnd: use common rsnd_ssi_status_xxx() Current ssi.c driver has random access to SSISR register. Let's use common rsnd_ssi_status_xxx() function Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/ssi.c | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) commit 2daf71ad8da6cb57f919c9c876ee7e42530371df Author: Kuninori Morimoto Date: Mon Oct 26 08:41:53 2015 +0000 ASoC: rsnd: avoid pointless loop in rsnd_mod_interrupt() Current Renesas sound driver doesn't have 1:1 relationship between stream <-> mod because it is supporting MIX. Because of this reason rsnd_mod_interrupt() is searching correspond mod by for loop. But this loop is not needed, because each mod has own type. This patch avoid pointless loop by using mod->type. This patch is good for SSI-parent support, because stream might have 2 SSI as SSI-parent/child. SSI interrupt handler will be called twice if stream has SSI-parent without this patch. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) commit 69e32a58bde67490f57b6172da198b50c7aa6ab1 Author: Kuninori Morimoto Date: Mon Oct 26 08:41:36 2015 +0000 ASoC: rsnd: Don't stop HW even if a large number of errors occur Current SSI/SRC restarts HW if under/over flow happened to avoid L/R invert issue. But it will stop HW if too many error happen. But if it stops on HW, other side under/over flow happen. OTHA, it will be forever loop interrupt if something strange error happen on HW/driver without escape route of large number error. To avoid this issue, it indicates error message if large number error occur, and disables error interrupt. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/src.c | 17 ++++++++++------- sound/soc/sh/rcar/ssi.c | 15 +++++++++------ 2 files changed, 19 insertions(+), 13 deletions(-) commit c2dc47d5cff62bfe21a691bef40eb30a585caa3c Author: Kuninori Morimoto Date: Mon Oct 26 08:41:17 2015 +0000 ASoC: rsnd: rsnd_dai_stream has each mod's status insted of rsnd_mod Renesas sound needs many devices (SSI/SSIU/SRC/CTU/MIX/DVC/CMD/AudioDMAC/AudioDMACpp). SSI/SRC/CTU/MIX/DVC are implemented as module. SSI parent, SSIU are implemented as part of SSI CMD is implemented as part of CTU/MIX/DVC AudioDMAC/AudioDMACpp are implemented as part of SSI/SRC It is nice sense that these all devices are implemented as mod. Current rsnd is controling each mod's status on mod. But it was not good design for SSI, because stream might has SSI-parent. In such case, it can't play/capture in same time, because SSI-parent is used as normal SSI in other stream, but it shares same status. To avoid this issue each mod's status is controlled by rsnd_dai_stream instead of rsnd_mod. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 12 +++++++----- sound/soc/sh/rcar/rsnd.h | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) commit b761bf272bce6dff4d8a7ccf4385c9f3d4018094 Author: Kuninori Morimoto Date: Mon Oct 26 08:40:59 2015 +0000 ASoC: rsnd: disable SRC.out only when stop timing Because SRC is connected to DMA and DMA want to keep dreq when stop timing. This patch makes SRC stop SRC.out only when stop timing. And it stops both SRC.out/SRC.in when quit timing Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/src.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) commit 37447b46e8c54c807e368d31ef6423c772b8dbbf Author: Kuninori Morimoto Date: Mon Oct 26 08:40:41 2015 +0000 ASoC: rsnd: move rsnd_src_ssi_irq_enable/disable() to ssi.c Part of SSI IRQ enable/disable was controlled by SRU (on Gen1) or CMD (on Gen2). Because of this reason SSI IRQ function was implemented under src.c. but it is not understandable. Let's move it to ssi.c Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/rsnd.h | 2 -- sound/soc/sh/rcar/src.c | 28 ---------------------------- sound/soc/sh/rcar/ssi.c | 32 ++++++++++++++++++++++++++++++-- 3 files changed, 30 insertions(+), 32 deletions(-) commit 40854c648ee79019a90034fc1f73ba2822812099 Author: Kuninori Morimoto Date: Mon Oct 26 08:40:19 2015 +0000 ASoC: rsnd: fixup rsnd_dma_of_path method for mod base common method Renesas sound needs many devices (SSI/SSIU/SRC/CTU/MIX/DVC/CMD/AudioDMAC/AudioDMACpp). SSI/SRC/CTU/MIX/DVC are implemented as module. SSI parent, SSIU are implemented as part of SSI CMD is implemented as part of CTU/MIX/DVC AudioDMAC/AudioDMACpp are implemented as part of SSI/SRC It is nice sense that these all devices are implemented as mod. Current rsnd_dma_of_path is assuming that all mods are related to DMA. But it will be wrong. This patch tidyup this wrong assumption Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/dma.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) commit 48d582819fdc38cda1aeb17f26cfe586d3900f2f Author: Kuninori Morimoto Date: Mon Oct 26 08:40:02 2015 +0000 ASoC: rsnd: remove all modules when PIO fallback Current Renesas sound is supporting PIO fallback if it can't use DMA. In such case, it should remove all attached modules, but current driver is missing about CTU/MIX. Because current implement requests specific mod for remove. To avoid same things in future, this patch removes all mods, and re-connects SSI when PIO fallback case. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) commit 27924f3208c9f37a1d58b80d999bb9cfc96536d4 Author: Kuninori Morimoto Date: Mon Oct 26 08:39:41 2015 +0000 ASoC: rsnd: enable to use rsnd_dai_connect() from each mod Renesas sound needs many devices (SSI/SSIU/SRC/CTU/MIX/DVC/CMD/AudioDMAC/AudioDMACpp). SSI/SRC/CTU/MIX/DVC are implemented as module. SSI parent, SSIU are implemented as part of SSI CMD is implemented as part of CTU/MIX/DVC AudioDMAC/AudioDMACpp are implemented as part of SSI/SRC It is nice sense that these all devices are implemented as mod. DMAC/SSIU/SSI-parent/CMD will be implemented as module, but these are not customer controlled module. These should be automatically install to system. Because of this, rsnd_dai_connect() should be called from each mod. SSI can be very special, because it will be installed as SSI-parent / SSI-child. Thus, new rsnd_dai_connect() has type parameter which should be mod->type except SSI-parent Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 32 +++++++++++++++++--------------- sound/soc/sh/rcar/rsnd.h | 3 +++ 2 files changed, 20 insertions(+), 15 deletions(-) commit 81ecbb654e1015840dec6a1ef3fcfef34d28feed Author: Kuninori Morimoto Date: Mon Oct 26 08:39:20 2015 +0000 ASoC: rsnd: rename rsnd_dma_init() to rsnd_dma_attach() Renesas sound needs many devices (SSI/SSIU/SRC/CTU/MIX/DVC/CMD/AudioDMAC/AudioDMACpp). SSI/SRC/CTU/MIX/DVC are implemented as module. SSI parent, SSIU are implemented as part of SSI CMD is implemented as part of CTU/MIX/DVC AudioDMAC/AudioDMACpp are implemented as part of SSI/SRC It is nice sense that these all devices are implemented as mod. DMA will be implemented as module. Then each rsnd_dma_ops will be rsnd_mod_ops. But current rsnd_dma_ops::init means "DMA attach". This patch removes .init from rsnd_dma_ops, and renames rsnd_dma_init() to rsnd_dma_attach() Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/dma.c | 35 +++++++++++++++++++---------------- sound/soc/sh/rcar/rsnd.h | 2 +- sound/soc/sh/rcar/src.c | 2 +- sound/soc/sh/rcar/ssi.c | 2 +- 4 files changed, 22 insertions(+), 19 deletions(-) commit 3e5afa73a9fb4001789508d6f9f0fca3e3475f5a Author: Kuninori Morimoto Date: Mon Oct 26 08:38:58 2015 +0000 ASoC: rsnd: DMA related definition goes to dma.c Renesas sound needs many devices (SSI/SSIU/SRC/CTU/MIX/DVC/CMD/AudioDMAC/AudioDMACpp). SSI/SRC/CTU/MIX/DVC are implemented as module. SSI parent, SSIU are implemented as part of SSI CMD is implemented as part of CTU/MIX/DVC AudioDMAC/AudioDMACpp are implemented as part of SSI/SRC It is nice sense that these all devices are implemented as mod. DMA will be implemented as module. Current DMA definition is no longer needed on rsnd.h. Let's move it to dma.c Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/dma.c | 24 ++++++++++++++++++++++++ sound/soc/sh/rcar/rsnd.h | 23 ----------------------- 2 files changed, 24 insertions(+), 23 deletions(-) commit 232c00b6e55558c216cbf50358549a1967ee1419 Author: Kuninori Morimoto Date: Mon Oct 26 08:38:26 2015 +0000 ASoC: rsnd: DMA become SSI/SRC member Renesas sound needs many devices (SSI/SSIU/SRC/CTU/MIX/DVC/CMD/AudioDMAC/AudioDMACpp). SSI/SRC/CTU/MIX/DVC are implemented as module. SSI parent, SSIU are implemented as part of SSI CMD is implemented as part of CTU/MIX/DVC AudioDMAC/AudioDMACpp are implemented as part of SSI/SRC It is nice sense that these all devices are implemented as mod. Current rsnd_mod is member of rsnd_mod. But the DMA user is only SSI/SRC. This DMA will be implemented as module. As 1st step, DMA become SSI/SRC member by this patch. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/dma.c | 19 ++++++++++++++++--- sound/soc/sh/rcar/rsnd.h | 8 ++++---- sound/soc/sh/rcar/src.c | 19 +++++++++++++------ sound/soc/sh/rcar/ssi.c | 16 ++++++++++------ 4 files changed, 43 insertions(+), 19 deletions(-) commit aecf6fd878eba5182665cccb943205be4c9a0337 Author: Vinod Koul Date: Thu Nov 5 21:34:15 2015 +0530 ASoC: Intel: Skylake: Use the fw name from ACPI mach table The firmware name is hard coded which doesnt allow to load different platforms for various platforms so get this name from available machine table and pass it to dsp context for loading Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-messages.c | 2 +- sound/soc/intel/skylake/skl-sst-dsp.h | 3 ++- sound/soc/intel/skylake/skl-sst.c | 5 +++-- sound/soc/intel/skylake/skl.c | 1 + sound/soc/intel/skylake/skl.h | 2 ++ 5 files changed, 9 insertions(+), 4 deletions(-) commit 40c3ac46a49da3b01b1802eb4c4ff08626f48546 Author: Vinod Koul Date: Thu Nov 5 21:34:14 2015 +0530 ASoC: Intel: add fw name to common dsp context In order to pass the fw name to IPC driver for loading fw, we need to add a memeber to store the fw name Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/common/sst-dsp-priv.h | 2 ++ 1 file changed, 2 insertions(+) commit cc18c5fdcdcf06f75ff196dedfcde823a6556d7d Author: Vinod Koul Date: Thu Nov 5 21:34:13 2015 +0530 ASoC: Intel: Skylake: Fix skl machine driver creation Now that we have common match code in place, update the SKL driver to use the common match routines for driver entry creation for UEFI BIOS systems Signed-off-by: Jeeja KP Signed-off-by: Omair M Abdullah Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl.c | 55 +++++++++++++++++++++++++++++++++++++++++-- sound/soc/intel/skylake/skl.h | 1 + 2 files changed, 54 insertions(+), 2 deletions(-) commit 12cc291b0b58503b3b0e629ac605218df1851ce1 Author: Vinod Koul Date: Thu Nov 5 21:34:12 2015 +0530 ASoC: Intel: Atom: move atom driver to common acpi match This patch moves the atom driver to use the common acpi match functions. Since atom driver has few more information in machine table, these are appended to table and set to NULL for common driver Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/Kconfig | 1 + sound/soc/intel/atom/sst/sst_acpi.c | 67 +++++++++++-------------------------- sound/soc/intel/common/sst-acpi.c | 8 ++--- sound/soc/intel/common/sst-acpi.h | 5 +++ 4 files changed, 29 insertions(+), 52 deletions(-) commit 95f098014815b330838b1173d3d7bcea3b481242 Author: Vinod Koul Date: Thu Nov 5 21:34:11 2015 +0530 ASoC: Intel: Move apci find machine routines This code to find the machine is common for all drivers so move it to a separate file and header for use in other drivers Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/common/Makefile | 3 +-- sound/soc/intel/common/sst-acpi.c | 33 +------------------------ sound/soc/intel/common/sst-acpi.h | 28 +++++++++++++++++++++ sound/soc/intel/common/sst-match-acpi.c | 43 +++++++++++++++++++++++++++++++++ 4 files changed, 73 insertions(+), 34 deletions(-) commit 7ae3cb15590ea768323b5e5a6be1769f19e91044 Author: Vinod Koul Date: Thu Nov 5 21:34:10 2015 +0530 ASoC: Intel: Skylake: Fix resource cleanup on teardown MCPS free was being done from PGA context which will free up MCPS for only last modules in a pipe and not the rest causing MCPS leak and eventual audio loss due to no "free" MCPS. This needs to be freed for every module while cleaning up the modules, so move the check to skl_tplg_mixer_dapm_post_pmd_event() Signed-off-by: Mohan Krishna Velaga Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-topology.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c7b2a44410a1029f1cee4ad0b86588c9a0f83a6c Author: Vinod Koul Date: Fri Oct 30 20:34:20 2015 +0530 ASoC: Intel: Skylake: Fix substream dereference before check Smatch warns that we dereferenced substream before check, so fix this by initializing ebus after the check sound/soc/intel/skylake/skl-pcm.c:802 skl_get_position() warn: variable dereferenced before check 'substream->runtime' Reported by: Dan Carpenter Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-pcm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit b4fe965f4e949d0d965561801de89e90b673b65a Author: Subhransu S. Prusty Date: Fri Oct 30 20:34:19 2015 +0530 ASoC: Intel: Skylake: Fix to cleanup if skl_sst_dsp_init fails This patch fixes the below warning reported by Dan by invoking skl_sst_dsp_cleanup() in cleanup path on error and not bailing out sound/soc/intel/skylake/skl-sst.c:270 skl_sst_dsp_init() info: ignoring unreachable code. Reported-by: Dan Carpenter Signed-off-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-sst.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit aaec7e9f789eff57f620f38a96d0118b2a7d71c3 Author: Vincent Stehlé Date: Thu Oct 29 23:04:41 2015 +0100 ASoC: Intel: Skylake: fix typo in sizeof The size of the pointer to a data structure to send is erroneously passed to sst_ipc_tx_message_wait() as its tx_bytes argument. It should be given the size of the pointed skl_ipc_dxstate_info structure instead. Coincidentally, both the pointer and the structure have the same size of 8 bytes on a 64 bit machine, which "masks" the issue. Compiling for 32 bit reveals the issue more clearly. Fix the typo for correctness, and to make the code robust to future evolutions of the skl_ipc_dxstate_info structure size. This fixes the following coccicheck error: sound/soc/intel/skylake/skl-sst-ipc.c:641:8-14: ERROR: application of sizeof to pointer Signed-off-by: Vincent Stehlé Cc: Subhransu S. Prusty Cc: Jeeja KP Cc: Vinod Koul Cc: Mark Brown Cc: trivial@kernel.org Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-sst-ipc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 677165f76de2c785d4874d69be10dc21a5236bfb Author: Jeeja KP Date: Thu Oct 29 12:31:34 2015 +0900 ASoC: Intel: Skylake: Fix the SSP0 Fmt fixup to 24 bit SSP0 FMT uses 24 bits so fix to the value to 24 bits Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/boards/skl_rt286.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 61722f447243d4d8f249a9359ffc5a21c1587f36 Author: Jeeja KP Date: Tue Oct 27 09:23:00 2015 +0900 ASoC: Intel: Skylake: Fix PM behaviour The driver runtime behaviour is fine but in suspend, we missed setting the DSP to suspend and also missed resuming DSP on resume. Fix this by having common SKL suspend and resume routines which power up/down links, suspend/resume DSP and other common routines, and call these routines from both runtime as well as system PM handlers Signed-off-by: Jayachandran B Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl.c | 60 +++++++++++++++++++++++++------------------ 1 file changed, 35 insertions(+), 25 deletions(-) commit 3e81f1a3c702641227cc59c0dd7a2a5bec741e0f Author: Jeeja KP Date: Tue Oct 27 09:22:59 2015 +0900 ASoC: Intel: Skylake: Fix to remove channel_map calculation Widget FW topology private data already has the information on the channel map, ch_cfg and interleaving. This patch removes the calculation of channel_map in driver and reads the value directly from widget private data. Signed-off-by: Jeeja KP Signed-off-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-messages.c | 98 ++-------------------------------- 1 file changed, 5 insertions(+), 93 deletions(-) commit 16882d24b3f8c402caf56326aa7bf0448d70d8e6 Author: Jeeja KP Date: Tue Oct 27 09:22:58 2015 +0900 ASoC: Intel: Skylake: Ignore rate check for DMIC link DMIC NHLT entry is sample rate agnostic, so ignore the rate checks for DMIC type Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-nhlt.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) commit 65aecfa884d5436dede4c4bdfbc33e4ea8026cad Author: Hardik T Shah Date: Tue Oct 27 09:22:57 2015 +0900 ASoC: Intel: Skylake: Add support for module GUIDs The DSP FW specifies loadable modules using GUIDs so add support to specify the GUIDs from topology Signed-off-by: Hardik T Shah Signed-off-by: Omair M Abdullah Signed-off-by: Jeeja KP Signed-off-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-topology.c | 4 ++++ sound/soc/intel/skylake/skl-topology.h | 1 + sound/soc/intel/skylake/skl-tplg-interface.h | 3 +++ 3 files changed, 8 insertions(+) commit 04afbbbb1cbacb4b18b2e30dd2b5b83531ecf01d Author: Hardik T Shah Date: Tue Oct 27 09:22:56 2015 +0900 ASoC: Intel: Skylake: Update the topology interface structure This patch updates the topology interface structure alignment and also updates the Sample interleaving defines Signed-off-by: Hardik T Shah Signed-off-by: Omair M Abdullah Signed-off-by: Jeeja KP Signed-off-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-topology.h | 7 +-- sound/soc/intel/skylake/skl-tplg-interface.h | 69 +++++++++++++++++++++------- 2 files changed, 54 insertions(+), 22 deletions(-) commit 4cd9899f0d16b475e31b20771de6f580b977daa4 Author: Hardik T Shah Date: Tue Oct 27 09:22:55 2015 +0900 ASoC: Intel: Skylake: Add multiple pin formats The module pin formats are considered homogeneous, but some modules can have different pcm formats on different pins, like reference signal for a module. This patch add support for configuration of each pin of module and allows us to specify if pins and homogeneous or heterogeneous Signed-off-by: Hardik T Shah Signed-off-by: Omair M Abdullah Signed-off-by: Jeeja KP Signed-off-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-messages.c | 8 +-- sound/soc/intel/skylake/skl-topology.c | 90 ++++++++++++++++------------ sound/soc/intel/skylake/skl-topology.h | 12 +++- sound/soc/intel/skylake/skl-tplg-interface.h | 18 +++++- 4 files changed, 83 insertions(+), 45 deletions(-) commit 9a03cb49c138146476261e5f9e3189a2631e70c1 Author: Jeeja KP Date: Tue Oct 27 09:22:54 2015 +0900 ASoC: Intel: Skylake: Fix to remove be copier widget power check ASoC core already checks if BE is active. If BE is active, hw_params callback is ignored. This patch removes the redundant check in driver for copier widget power check in update be hw_params. Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-topology.c | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) commit d1730c3dd90bfac6dffc29b1575837d45edca8cc Author: Jeeja KP Date: Tue Oct 27 09:22:53 2015 +0900 ASoC: Intel: Skylake: Fix DSP pipe underrun/overrun issue While rigourous testing of SKL drivers, we noticed underuns and overuns and on debug realized that we need to change driver handling of FE pipe startup and shutdown We need to start DMA and then run pipe together and not split these up. Similarly while stopping we should stop pipe and then DMA in a sequence. Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-pcm.c | 133 +++++++++++++++++++-------------- sound/soc/intel/skylake/skl-topology.c | 13 ++-- 2 files changed, 85 insertions(+), 61 deletions(-) commit 8724ff17521a91a87971027cf78631030091bc52 Author: Jeeja KP Date: Tue Oct 27 09:22:52 2015 +0900 ASoC: Intel: Skylake: Add support for virtual dsp widgets In SKL topology routes, some paths can be connected by a widget which are not a DSP FW widget and virtual with respect to firmware. In these case when module has to bind, then the virtual DSP modules needs to skipped till a actual DSP module is found which connects the pipelines. So we need to walk the graph and find a widget which is real in nature. This patch adds that support and splits skl_tplg_pga_dapm_pre_pmu_event() fn with parsing code to skl_tplg_bind_sinks() fn and call that recursively as well as while parsing The patch moves code a bit while splitting so diffstat doesn't tell real picture Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-topology.c | 133 ++++++++++++++++++++------------- 1 file changed, 83 insertions(+), 50 deletions(-) commit ce1b5551a06af31a72feeb50c02a9fe22599926a Author: Jeeja KP Date: Tue Oct 27 09:22:51 2015 +0900 ASoC: Intel: Skylake: use module_pin info for unbind in_pin and out_pin list for a module has the information about the module that are bound together. So we can directly look at pin information of module for binding and unbind. As a result the preinitialized dapm_path_last we had is removed and code and memory optimzed. Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-pcm.c | 1 - sound/soc/intel/skylake/skl-topology.c | 108 +++++++++++---------------------- sound/soc/intel/skylake/skl-topology.h | 5 -- sound/soc/intel/skylake/skl.h | 1 - 4 files changed, 34 insertions(+), 81 deletions(-) commit 83b50246d3f193ce7f0546786097ee673c359eb2 Author: Jeeja KP Date: Tue Oct 27 09:22:50 2015 +0900 ASoC: Intel: Skylake: Fix bit depth when querying the NHLT blob Bps calculation is not correct as this needs to be based on valid bit depth. 16 bit fmt bit depth is 16 bit and for 24 and 32 bit as it is container size This patch fixes the bps. Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-nhlt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4f7457089df2984aeee59ec01525aa9917e889e7 Author: Jeeja KP Date: Tue Oct 27 09:22:49 2015 +0900 ASoC: Intel: Skylake: Fix support for multiple pins in a module For supporting multiple dynamic pins, module state check is incorrect. In case of unbind, module state need to be changed to uninit if all pins in the module is is unbind state. To handle module state correctly add pin state and use pin state check to set module state correctly. Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-messages.c | 83 ++++++++++++++++++++++------------ sound/soc/intel/skylake/skl-topology.c | 1 + sound/soc/intel/skylake/skl-topology.h | 10 +++- 3 files changed, 65 insertions(+), 29 deletions(-) commit b30c275e449ac1c7e149e2138a342c407d8cab3b Author: Jeeja KP Date: Tue Oct 27 09:22:48 2015 +0900 ASoC: Intel: Skylake: Fix to ignore blob check if link type is HDA If link type is HDA, NHLT blob is null, as NHLT defines non HDA links only. So we should ignore blob query for HDA links. Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-topology.c | 3 +++ 1 file changed, 3 insertions(+) commit 029890c67ae6f95c3f7d84af9b7e555515b33193 Author: Jeeja KP Date: Tue Oct 27 09:22:47 2015 +0900 ASoC: Intel: Skylake: Fix to ignore codec_mask check in probe We have both I2S and hda codec support in the driver. codec_mask check is relevant only for hda codec and some boards may have only I2S Codec, so removed probe error in case no hda codec is found and update the log to info as it may not be error. Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 6654f39eb4a65b61c3550be352662f57a2701bbc Author: Jeeja KP Date: Tue Oct 27 09:22:46 2015 +0900 ASoC: Intel: Skylake: Fix to add 32 bit in update FE params In case of 32 bit, the FE update params returns error as it falls thru to default case. This patch adds 32 bit depth handling in update FE params. Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-topology.c | 1 + 1 file changed, 1 insertion(+) commit 4bd073f93f13ad5de8affb173056827117a4a930 Author: Jeeja KP Date: Tue Oct 27 09:22:45 2015 +0900 ASoC: Intel: Skylake: Fix not to ignore return value in be hw_params Return value from skl_tplg_be_update_params() is ignored. But if the blob is null then the hw_params needs to return error. This patch fixes the issue by not ignoring return value from skl_tplg_be_update_params(). Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-pcm.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit a28f51db28a3bb550ee54e4e67b4b1d04b4b393a Author: Jeeja KP Date: Tue Oct 27 09:22:44 2015 +0900 ASoC: Intel: Skylake: Fix to correct check for non DSP widget To get the FE copier module, the check to ignore non DSP widgets was wrong. This path corrects the check to ignore non DSP widget. Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-topology.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7f0e823d58b7574cbe417d5bbc285891baed4437 Author: Damien.Horsley Date: Tue Nov 10 14:09:35 2015 +0000 ASoC: img: parallel out: Add missing initialiser Add missing initialiser for control_set variable in img_prl_out_set_fmt Signed-off-by: Damien.Horsley Signed-off-by: Mark Brown sound/soc/img/img-parallel-out.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3958232273d791629d8fffc67b6c5b895ab1e91a Author: Damien.Horsley Date: Wed Nov 4 14:40:57 2015 +0000 ASoC: img: Add driver for SPDIF output controller Add driver for Imagination Technologies SPDIF output controller Signed-off-by: Damien.Horsley Signed-off-by: Mark Brown sound/soc/img/Kconfig | 8 + sound/soc/img/Makefile | 1 + sound/soc/img/img-spdif-out.c | 441 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 450 insertions(+) commit 0f4ab87a499b13b46bfd3f94704b925c085555f5 Author: Damien.Horsley Date: Wed Nov 4 14:40:56 2015 +0000 ASoC: img: Add binding document for SPDIF output controller Add binding document for Imagination Technologies SPDIF ouput controller Signed-off-by: Damien.Horsley Signed-off-by: Mark Brown .../devicetree/bindings/sound/img,spdif-out.txt | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) commit 8f6eec13b1e2aca7eb3e383bc4db9ad22e26a704 Author: Damien.Horsley Date: Wed Nov 4 14:40:55 2015 +0000 ASoC: img: Add documentation for SPDIF in controls Add documentation for the controls present in the SPDIF input controller driver Signed-off-by: Damien.Horsley Signed-off-by: Mark Brown Documentation/sound/alsa/img,spdif-in.txt | 49 +++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) commit c4458b740e6b7a0d9ccf680ac81c05a99f602b79 Author: Damien.Horsley Date: Wed Nov 4 14:40:54 2015 +0000 ASoC: img: Add driver for SPDIF input controller Add driver for Imagination Technologies SDPIF input controller Signed-off-by: Damien.Horsley Signed-off-by: Mark Brown sound/soc/img/Kconfig | 8 + sound/soc/img/Makefile | 1 + sound/soc/img/img-spdif-in.c | 806 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 815 insertions(+) commit 4e8bc8edd525af8e38745a6de7c1fd8bddfc13b4 Author: Damien.Horsley Date: Wed Nov 4 14:40:53 2015 +0000 ASoC: img: Add binding document for SPDIF input controller Add binding document for Imagination Technologies SPDIF input controller Signed-off-by: Damien.Horsley Signed-off-by: Mark Brown .../devicetree/bindings/sound/img,spdif-in.txt | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) commit 8ceb3b259cddb9b0505a6697cdefd3110445d1d7 Author: Damien.Horsley Date: Wed Nov 4 14:40:52 2015 +0000 ASoC: img: Add driver for parallel output controller Add driver for Imagination Technologies parallel output controller Signed-off-by: Damien.Horsley Signed-off-by: Mark Brown sound/soc/img/Kconfig | 8 + sound/soc/img/Makefile | 1 + sound/soc/img/img-parallel-out.c | 327 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 336 insertions(+) commit 71dfaf5f9dd0ae1a1f1a6d5ecb716df70b1d2260 Author: Damien.Horsley Date: Wed Nov 4 14:40:51 2015 +0000 ASoC: img: Add binding document for parallel output controller Add binding document for Imagination Technologies parallel output controller Signed-off-by: Damien.Horsley Signed-off-by: Mark Brown .../devicetree/bindings/sound/img,parallel-out.txt | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) commit d0e3992c939cb146a0de9e7c74a227e8be4629a9 Author: Damien.Horsley Date: Wed Nov 4 14:40:50 2015 +0000 ASoC: img: Add driver for I2S output controller Add driver for Imagination Technologies I2S output controller Signed-off-by: Damien.Horsley Signed-off-by: Mark Brown sound/soc/img/Kconfig | 8 + sound/soc/img/Makefile | 1 + sound/soc/img/img-i2s-out.c | 565 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 574 insertions(+) commit 2dcfa06e0ecfc4de783ada9d37d0e9cef4f1eeda Author: Damien.Horsley Date: Wed Nov 4 14:40:49 2015 +0000 ASoC: img: Add binding document for I2S output controller Add binding document for Imagination Technologies I2S output controller Signed-off-by: Damien.Horsley Signed-off-by: Mark Brown .../devicetree/bindings/sound/img,i2s-out.txt | 51 ++++++++++++++++++++++ 1 file changed, 51 insertions(+) commit 14b947d9ced4f723b5bfd3f6ec614aa28b5d4cfb Author: Damien.Horsley Date: Wed Nov 4 14:40:48 2015 +0000 ASoC: img: Add driver for I2S input controller Add driver for Imagination Technologies I2S input controller Signed-off-by: Damien.Horsley Signed-off-by: Mark Brown sound/soc/Kconfig | 1 + sound/soc/Makefile | 1 + sound/soc/img/Kconfig | 12 ++ sound/soc/img/Makefile | 1 + sound/soc/img/img-i2s-in.c | 516 +++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 531 insertions(+) commit e13c118075f9ba16d36083d63239ca85ee9b3891 Author: Damien.Horsley Date: Wed Nov 4 14:40:47 2015 +0000 ASoC: img: Add binding document for I2S input controller Add a binding document for Imagination Technologies I2S input controller Signed-off-by: Damien.Horsley Signed-off-by: Mark Brown .../devicetree/bindings/sound/img,i2s-in.txt | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) commit f4faa29e5d134fdff00403936ab10fea7683913e Author: Zidan Wang Date: Mon Oct 26 15:19:05 2015 +0800 ASoC: fsl_ssi: using macro for default register map using macro for default register map Signed-off-by: Zidan Wang Acked-by: Nicolin Chen Signed-off-by: Mark Brown sound/soc/fsl/fsl_ssi.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 9f1206dc76a726e1c7b0e2583345c29fd1e75286 Author: Zidan Wang Date: Mon Oct 26 15:19:04 2015 +0800 ASoC: fsl_spdif: STL and STR registers are non volatile STL and STR registers are writable and not readable. So they are non volatile. Remove them from volatile list, and add default register value for them. Signed-off-by: Zidan Wang Acked-by: Nicolin Chen Signed-off-by: Mark Brown sound/soc/fsl/fsl_spdif.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 3f6f5b0cb3e3dc8fdd4eb826f30257df423b37cb Author: Zidan Wang Date: Mon Oct 26 15:19:03 2015 +0800 ASoC: fsl-sai: add default register map for regmap cache FSL_SAI_TDR register is writable and not readable. According to regmap_volatile() function, if FSL_SAI_TDR want to be volatile, it should be readable. So we should remove FSL_SAI_TDR from volatile register list. If the flat cache don't have default register map, when do regcache_sync operation, the non volatile and writable registers will be synchronised to 0. FSL_SAI_TDR reigster will be written a 0 and cause channel swap. So add default register map for flat cache, and such register will not be written. Signed-off-by: Zidan Wang Acked-by: Nicolin Chen Signed-off-by: Mark Brown sound/soc/fsl/fsl_sai.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) commit 8973112aa41b8ad956a5b47f2fe17bc2a5cf2645 Author: Zidan Wang Date: Mon Oct 26 15:19:02 2015 +0800 ASoC: fsl_esai: ETDR and TX0~5 registers are non volatile ETDR and TX0~5 registers are writable and not readable. So they are non volatile. Remove them from volatile list, and add default register value for them. Signed-off-by: Zidan Wang Acked-by: Nicolin Chen Signed-off-by: Mark Brown sound/soc/fsl/fsl_esai.c | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) commit 95f444dc9371a3910179a9621c8b94f0f60f5f04 Author: Koro Chen Date: Wed Oct 28 10:15:34 2015 +0800 ASoC: dpcm: Make BE prepare possible in suspend state During suspend/resume, there is a flow that if a driver does not support SNDRV_PCM_INFO_RESUME, it will fail at snd_pcm_resume(), and user space can then issue SNDRV_PCM_IOCTL_PREPARE to let audio continue to play. However, in dpcm_be_dai_prepare() it only allows BEs to be prepared in state SND_SOC_DPCM_STATE_HW_PARAMS or SND_SOC_DPCM_STATE_STOP. The BE state will then stay in SND_SOC_DPCM_STATE_SUSPEND, consequently dpcm_be_dai_shutdown() is skipped in the end of playback and be_substream->runtime is not cleared while this runtime is actually freed by snd_pcm_detach_substream(). If another suspend comes, a NULL pointer dereference will happen in snd_pcm_suspend() when accessing BE substream's runtime. Signed-off-by: Koro Chen Acked-by: Liam Girdwood Signed-off-by: Mark Brown sound/soc/soc-pcm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 800cff79d7ab55c5ac4b7cef3e8d6d4a23a838d5 Author: Takashi Iwai Date: Wed Oct 28 16:40:18 2015 +0100 ASoC: Fix typo in kernel doc comment for snd_soc_put_volsw_sx() Spotted by kbuild bot: sound/soc/soc-ops.c:415: warning: No description found for parameter 'ucontrol' sound/soc/soc-ops.c:415: warning: Excess function parameter 'uinfo' description in 'snd_soc_put_volsw_sx' Reported-by: kbuild test robot Signed-off-by: Takashi Iwai Signed-off-by: Mark Brown sound/soc/soc-ops.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a737447d080929c54c664adc9c62eadab9e86d3e Author: Axel Lin Date: Sat Oct 24 14:28:33 2015 +0800 ASoC: da7219: Use logical instead of bitwise OR for boolean expression Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/da7219.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6610550c4c2663f51cec308a88870da20db48113 Author: Richard Fitzgerald Date: Tue Nov 3 15:08:35 2015 +0000 ASoC: cs47l24: Add driver for Cirrus Logic CS47L24 and WM1831 codecs This patch adds support for the Cirrus Logic CS47L24 and WM1831 codecs. Signed-off-by: Richard Fitzgerald Signed-off-by: Mark Brown sound/soc/codecs/Kconfig | 8 + sound/soc/codecs/Makefile | 2 + sound/soc/codecs/cs47l24.c | 1148 ++++++++++++++++++++++++++++++++++++++++++++ sound/soc/codecs/cs47l24.h | 23 + 4 files changed, 1181 insertions(+) commit bef3c4ef7e05cada90b5aba2ca75a29441da9532 Author: Richard Fitzgerald Date: Tue Nov 3 15:05:50 2015 +0000 ASoC: wm8998: Remove duplicated consts The SOC_xxx_DECL() macros already include 'const' so there's no need to put a const in the source where they are used. Signed-off-by: Richard Fitzgerald Signed-off-by: Mark Brown sound/soc/codecs/wm8998.c | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) commit d2a2e729a666972d1938e63e804ee5bb6ea13549 Author: Andrew F. Davis Date: Wed Nov 4 11:12:14 2015 -0600 regulator: tps65086: Add regulator driver for the TPS65086 PMIC Add support for TPS65086 PMIC regulators. The regulators set consists of 3 Step-down Controllers, 3 Step-down Converters, 3 LDOs, 3 Load Switches, and a Sink and Source LDO. The output voltages are configurable and are meant to supply power to a SoC and/or other components. Signed-off-by: Andrew F. Davis Signed-off-by: Mark Brown drivers/regulator/Kconfig | 7 + drivers/regulator/Makefile | 1 + drivers/regulator/tps65086-regulator.c | 250 +++++++++++++++++++++++++++++++++ 3 files changed, 258 insertions(+) commit 6399aea629b02a23364efcb6eea1319b8e9d1abf Author: Nikesh Oswal Date: Wed Oct 21 14:16:14 2015 +0100 regmap: rbtree: When adding a reg do a bsearch for target node A binary search is much more efficient rather than iterating over the rbtree in ascending order which the current code is doing. During initialisation the reg defaults are written to the cache in a large chunk and these are always sorted in the ascending order so for this situation ideally we should have iterated the rbtree in descending order. But at runtime the drivers may write into the cache in any random order so this patch selects to use a bsearch to give an optimal runtime performance and also at initialisation time when reg defaults are written the performance of binary search would be much better than iterating in ascending order which the current code was doing. Signed-off-by: Nikesh Oswal Signed-off-by: Mark Brown drivers/base/regmap/regcache-rbtree.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 29bb45f25ff3051354ed330c0d0f10418a2b8c7c Author: Simon Arlott Date: Thu Oct 29 19:58:47 2015 +0000 regmap-mmio: Use native endianness for read/write The regmap API has an endianness setting for formatting reads and writes. This can be set by the usual DT "little-endian" and "big-endian" properties. To work properly the associated regmap_bus needs to read/write in native endian. The "syscon" DT device binding creates an mmio-based regmap_bus which performs all reads/writes as little-endian. These values are then converted again by regmap, which means that all of the MIPS BCM boards (which are big-endian) have been declared as "little-endian" to get regmap to convert them back to big-endian. Modify regmap-mmio to use the native-endian functions __raw_read*() and __raw_write*() instead of the little-endian functions read*() and write*(). Modify the big-endian MIPS BCM boards to use what will now be the correct endianness instead of pretending that the devices are little-endian. Signed-off-by: Simon Arlott Signed-off-by: Mark Brown arch/mips/boot/dts/brcm/bcm6328.dtsi | 1 - arch/mips/boot/dts/brcm/bcm7125.dtsi | 1 - arch/mips/boot/dts/brcm/bcm7346.dtsi | 1 - arch/mips/boot/dts/brcm/bcm7358.dtsi | 1 - arch/mips/boot/dts/brcm/bcm7360.dtsi | 1 - arch/mips/boot/dts/brcm/bcm7362.dtsi | 1 - arch/mips/boot/dts/brcm/bcm7420.dtsi | 1 - arch/mips/boot/dts/brcm/bcm7425.dtsi | 1 - arch/mips/boot/dts/brcm/bcm7435.dtsi | 1 - drivers/base/regmap/regmap-mmio.c | 16 ++++++++-------- 10 files changed, 8 insertions(+), 17 deletions(-) commit 6747b39441925f247f15d04b89be3588f465ad57 Author: Mauro Carvalho Chehab Date: Wed Nov 4 12:07:02 2015 -0200 [media] device-drivers.tmpl: better organize DVB function calls Classify the functions at the DVB core per API. That makes easier to understand how they're related to the userspace API. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/device-drivers.tmpl | 24 +++++++++++++++--------- drivers/media/dvb-core/demux.h | 4 ++-- 2 files changed, 17 insertions(+), 11 deletions(-) commit 7b6e55b9703810d771cf324d7b6cd0e1c095c86a Author: Mauro Carvalho Chehab Date: Wed Nov 4 11:07:09 2015 -0200 [media] demux.h: move documentation overview from device-drivers.tmpl It is better to keep the documentation overview at the header file, as this makes easier for developers to remember to fix when needed. Suggested-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/device-drivers.tmpl | 71 +++---------------------------- drivers/media/dvb-core/demux.h | 67 ++++++++++++++++++++++++++++- 2 files changed, 71 insertions(+), 67 deletions(-) commit d55ebd07b6c21a1c7e3e74f1b73b3b033cece2b5 Author: Mauro Carvalho Chehab Date: Wed Nov 11 09:27:42 2015 -0200 [media] ivtv: avoid going past input/audio array As reported by smatch: drivers/media/pci/ivtv/ivtv-driver.c:832 ivtv_init_struct2() error: buffer overflow 'itv->card->video_inputs' 6 <= 6 Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/ivtv/ivtv-driver.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 823873481b2a17ce5900899f8ef85118f8407b67 Author: Mauro Carvalho Chehab Date: Wed Nov 11 09:22:36 2015 -0200 [media] Revert "[media] ivtv: avoid going past input/audio array" This patch broke ivtv logic, as reported at https://bugzilla.redhat.com/show_bug.cgi?id=1278942 This reverts commit 09290cc885937cab3b2d60a6d48fe3d2d3e04061. Cc: stable@vger.kernel.org # for v4.1 and upper Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/ivtv/ivtv-driver.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 65b7f6d740a6696974056251c98da0e99f956be8 Merge: 79f5b6a 8005c49 Author: Mauro Carvalho Chehab Date: Mon Nov 16 07:27:01 2015 -0200 Merge tag 'v4.4-rc1' into patchwork Linux 4.4-rc1 * tag 'v4.4-rc1': (12900 commits) Linux 4.4-rc1 ARC: Fix silly typo in MAINTAINERS file ARC: cpu_relax() to be compiler barrier even for UP ARC: use ASL assembler mnemonic ARC: [arcompact] Handle bus error from userspace as Interrupt not exception ARC: remove extraneous header include f2fs: xattr simplifications squashfs: xattr simplifications 9p: xattr simplifications xattr handlers: Pass handler to operations instead of flags jffs2: Add missing capability check for listing trusted xattrs hfsplus: Remove unused xattr handler list operations ubifs: Remove unused security xattr handler vfs: Fix the posix_acl_xattr_list return value vfs: Check attribute names in posix acl xattr handers mpt3sas: fix inline markers on non inline function declarations dax: fix __dax_pmd_fault crash Revert "drm/rockchip: Convert the probe function to the generic drm_of_component_probe()" drm: Don't oops in drm_calc_timestamping_constants() if drm_vblank_init() wasn't called ALSA: pci: depend on ZONE_DMA ... commit d1f15aa09558d00ed23168686156f7341f9d9d86 Author: Masahiro Yamada Date: Thu Nov 5 14:54:56 2015 +0900 reset: check return value of reset_controller_register() Currently, reset_controller_register() always return 0, but it would be better to check its return code. Signed-off-by: Masahiro Yamada Acked-by: Sören Brinkmann Signed-off-by: Philipp Zabel drivers/reset/reset-berlin.c | 4 +--- drivers/reset/reset-socfpga.c | 3 +-- drivers/reset/reset-sunxi.c | 3 +-- drivers/reset/reset-zynq.c | 3 +-- 4 files changed, 4 insertions(+), 9 deletions(-) commit 5b321a631ab66c6ecf6aaa8a2059b61383e27096 Author: Masahiro Yamada Date: Thu Nov 5 17:17:32 2015 +0900 reset: remove redundant $(CONFIG_RESET_CONTROLLER) from Makefile The directory drivers/reset/ is guarded by CONFIG_RESET_CONTROLLER in driver/Makefile. CONFIG_RESET_CONTROLLER is boolean, so it always evaluates to 'y' in drivers/reset/Makefile. Signed-off-by: Masahiro Yamada Signed-off-by: Philipp Zabel drivers/reset/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 39b4da71ca334354f30941067f214ea2f2b92f3e Author: Philipp Zabel Date: Thu Oct 29 09:55:00 2015 +0100 reset: use ENOTSUPP instead of ENOSYS ENOSYS is reserved to report invalid syscalls to userspace. Consistently return ENOTSUPP to indicate that the driver doesn't support the functionality or the reset framework is not enabled at all. Signed-off-by: Philipp Zabel drivers/reset/core.c | 8 ++++---- include/linux/reset.h | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) commit fddad17ed11f1f3c2dd2f9b3b7691a097549c9f3 Author: Philipp Zabel Date: Thu Oct 29 09:59:34 2015 +0100 reset: sunxi: mark the of_device_id array as __initconst Since this array is static const, it should be marked as __initconst. Signed-off-by: Philipp Zabel Acked-by: Maxime Ripard drivers/reset/reset-sunxi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0437838484fa4c19dd3d561e4605c229d2eb756d Author: Philipp Zabel Date: Thu Oct 29 10:02:53 2015 +0100 reset: sti: add a missing blank line after declaration This just fixes a checkpatch warning, no functional change. Signed-off-by: Philipp Zabel Acked-by: Maxime Coquelin drivers/reset/sti/reset-syscfg.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 9a4cc897fd8459b1cc04d90ca19e36aff38ba506 Author: Lee Jones Date: Mon Oct 26 10:56:09 2015 +0000 reset: sti: Provide ops .status() call-back Signed-off-by: Lee Jones Signed-off-by: Philipp Zabel drivers/reset/sti/reset-syscfg.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit 1a539387b715d118e87797bdafa9298b130353dc Author: Lee Jones Date: Mon Oct 26 10:56:08 2015 +0000 reset: sti: Add support for resetting co-processors Signed-off-by: Lee Jones Signed-off-by: Philipp Zabel drivers/reset/sti/reset-stih407.c | 5 +++++ 1 file changed, 5 insertions(+) commit c9bfec0032fb7f17ff8707581122d6d9d15051bc Author: Lee Jones Date: Mon Oct 26 10:56:07 2015 +0000 ARM: STi: Add DT defines for co-processor reset lines Signed-off-by: Lee Jones Signed-off-by: Philipp Zabel include/dt-bindings/reset/stih407-resets.h | 4 ++++ 1 file changed, 4 insertions(+) commit 3d81216fde465e76c5eae98f61d3666163634395 Author: Alban Bedel Date: Tue Sep 1 17:28:31 2015 +0200 reset: Fix of_reset_control_get() for consistent return values When of_reset_control_get() is called without connection ID it returns -ENOENT when the 'resets' property doesn't exists or is an empty entry. However when a connection ID is given it returns -EINVAL when the 'resets' property doesn't exists or the requested name can't be found. This is because the error code returned by of_property_match_string() is just passed down as an index to of_parse_phandle_with_args(), which then returns -EINVAL. To get a consistent return value with both code paths we must return -ENOENT when of_property_match_string() fails. Signed-off-by: Alban Bedel Signed-off-by: Philipp Zabel drivers/reset/core.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit c0a13aa6da5da19f9eedb562b226ec585aabdca9 Author: Vince Hsu Date: Mon Jul 13 13:39:39 2015 +0100 reset: add of_reset_control_get_by_index() Add of_reset_control_get_by_index() to allow the drivers to get reset device without knowing its name. Signed-off-by: Vince Hsu [jonathanh@nvidia.com: Updated stub function to return -ENOTSUPP instead of -ENOSYS which should only be used for system calls.] Signed-off-by: Jon Hunter Signed-off-by: Philipp Zabel drivers/reset/core.c | 40 +++++++++++++++++++++++++++++----------- include/linux/reset.h | 9 +++++++++ 2 files changed, 38 insertions(+), 11 deletions(-) commit 3c7a09358729e64119669f454fb1ac3c5cd20b63 Author: Cheah Kok Cheong Date: Sun Nov 15 05:31:30 2015 +0800 ALSA: ua101: replace le16_to_cpu() with usb_endpoint_maxp() Commit 939f325f4a0f ("usb: add usb_endpoint_maxp() macro") and commit 29cc88979a88 ("USB: use usb_endpoint_maxp() instead of le16_to_cpu()") introduced a new helper macro. This trivial patch convert remaining users found in ua101 driver. Signed-off-by: Cheah Kok Cheong Acked-by: Clemens Ladisch Signed-off-by: Takashi Iwai sound/usb/misc/ua101.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f257f1d8482c59d9b0ebfb4191e142d72111d9be Merge: 8005c49 a91e627 Author: Takashi Iwai Date: Mon Nov 16 09:02:57 2015 +0100 Merge branch 'for-linus' into for-next commit 1d15cb9ce9a220192f672cd32369f8d3c7d3a89b Author: Thierry Reding Date: Mon Nov 16 06:51:36 2015 +0100 clk: tegra: Add Tegra210 device tree binding Add a header file that defines the clock numbers for Tegra210. It is meant to be included by device trees so that they can refer to the clocks by symbolic name instead of numeric value. Also add the device tree binding documentation which is largely the same as for earlier generations of Tegra. Extracted from a larger patch by Rhyland Klein . Signed-off-by: Thierry Reding .../bindings/clock/nvidia,tegra210-car.txt | 56 +++ include/dt-bindings/clock/tegra210-car.h | 401 +++++++++++++++++++++ 2 files changed, 457 insertions(+) commit 617f41836c17688141e1c66f4156c2084f8ca86d Merge: 26add94 8005c49 Author: Brian Norris Date: Sun Nov 15 20:30:53 2015 -0800 Merge v4.4-rc1 into MTD development Sync up with the upstream development. Signed-off-by: Brian Norris commit 4811789503d16510a8a6610fb6c4097e1efa6312 Author: Gavin O'Leary Date: Mon Nov 9 20:12:00 2015 -0800 staging: unisys: visorbus: visorbus_main.c: made checkpatch warning-free Made visorbus_main.c checkpatch warning-free by fixing the comment style issues. Signed-off-by: Gavin O'Leary Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_main.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) commit be1d6cb3e657907731a9aeb3cafd190c94634753 Author: Shraddha Barke Date: Thu Nov 5 19:35:36 2015 +0530 Staging: fwserial: Declare fwtty_port_put as static Declare the function fwtty_port_put as static since it is used only in this particular file. Also remove the corresponding declaration from header file. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/fwserial/fwserial.c | 3 +-- drivers/staging/fwserial/fwserial.h | 2 -- 2 files changed, 1 insertion(+), 4 deletions(-) commit 3bf40d65dcbfd7335680ffbc59e83a3671682472 Author: Dean Luick Date: Fri Nov 6 20:07:04 2015 -0500 staging/rdma/hfi1: use one-shot LCB write Use the one-shot LCB write implemented in the 8051 firmware. This speeds up 8051 LCB writes by 2x. Use old method for older firmwares. Reviewed-by: Dennis Dalessandro Signed-off-by: Dean Luick Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/chip.c | 42 +++++++++++++++++++++++++++++++++++----- drivers/staging/rdma/hfi1/chip.h | 1 + 2 files changed, 38 insertions(+), 5 deletions(-) commit a03a03e956c2cb8d0c69d33edb149c6a64584a48 Author: Ignacio Hernandez Date: Fri Nov 6 20:07:03 2015 -0500 staging/rdma/hfi1: Remove spurious error messages Changed the order in which diagnostics messages are printed, taking into account the cases where the errors are handled in rcv_hdrerr() and no further message is needed to report. Reviewed-by: Mark Debbage Reviewed-by: Arthur Kepner Reviewed-by: Mike Marciniszyn Signed-off-by: Ignacio Hernandez Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/driver.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit 801cfd6d8a24051a34d3cd4429e1ddc172b5aad6 Author: Sebastian Sanchez Date: Fri Nov 6 20:07:02 2015 -0500 staging/rdma/hfi1: Fix for opaportconfig ledon by not checking for portNum opaportconfig ledon fails with error message due to port number being checked in the attr modifier. This change removes the check for the port number in AttrMod, so the P field is ignored. Reviewed-by: Easwar Hariharan Signed-off-by: Sebastian Sanchez Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/mad.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 702249732580f8f9b392552806b55206642ff401 Author: Dean Luick Date: Fri Nov 6 20:07:01 2015 -0500 staging/rdma/hfi1: Select only devices with active links When looking for or validating a user device, only use devices that are currently active. Reviewed-by: Mitko Haralanov Signed-off-by: Dean Luick Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/file_ops.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) commit 4ef98989cb08af8c7c9c955cd69327bb67dcd027 Author: Jareer Abdel-Qader Date: Fri Nov 6 20:07:00 2015 -0500 staging/rdma/hfi1: Disable thermal polling before sensor initialization During driver load the thermal sensor needs to be reset prior to initialization of the sensor. This prevents a possible sensor lock up which can cause the wrong temperature value to be reported. This fix leads to remove disabling thermal polling from reset_asic_csrs() function. Reviewed by: Dennis Dalessandro Reviewed by: Easwar Hariharan Signed-off-by: Jareer Abdel-Qader Signed-off-by: Ira Weiny Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/chip.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 65fcf5576441eb23cd1f2c9f271cbf27e3455581 Author: Dean Luick Date: Fri Nov 6 20:06:59 2015 -0500 staging/rdma/hfi1: Always download SBus firmware B0 dual port parts require the SBus firmware to always be downloaded. Remove reset of the SBus Master spico. It is not necessary since the SBus firmware download already does that. Reviewed-by: Dennis Dalessandro Signed-off-by: Dean Luick Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/firmware.c | 2 +- drivers/staging/rdma/hfi1/pcie.c | 12 +----------- 2 files changed, 2 insertions(+), 12 deletions(-) commit bf70a77577361c334367a2a2add9d92b716a2481 Author: Vennila Megavannan Date: Fri Nov 6 20:06:58 2015 -0500 staging/rdma/hfi1: Enable WFR PCIe extended tags from the driver Some BIOS implementations turn off extended tags in DevCtl (a RW field) even though it was originally set and is advertised in DevCap Fix is to set it in the driver Reviewed-by: Dean Luick Reviewed-by: Mike Marciniszyn Reviewed-by: Ashutosh Dixit Signed-off-by: Vennila Megavannan Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/pcie.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 72a67ba2fa69737757c637ac541a4f0271efb41d Author: Easwar Hariharan Date: Fri Nov 6 20:06:57 2015 -0500 staging/rdma/hfi1: Clear the QSFP reset that is asserted on FLR The FLR on driver load asserts the QSFP reset pin and the driver does not deassert it after. This patch allows the external QSFP cable to exit reset by writing 1 to all the QSFP pins. Reviewed-by: Dean Luick Signed-off-by: Easwar Hariharan Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/chip.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit 6c63e4238acad0bb5394e0fd50d993edd23c0dc7 Author: Sebastian Sanchez Date: Fri Nov 6 20:06:56 2015 -0500 staging/rdma/hfi1: Convert dd_dev_info() to hfi1_cdbg() in process startup Replacing dd_dev_info() for hfi1_cdbg() to avoid generating syslog output for every context that is open by PSM. Reviewed-by: Mitko Haralanov Signed-off-by: Sebastian Sanchez Signed-off-by: Jubin John Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/file_ops.c | 10 +++++----- drivers/staging/rdma/hfi1/init.c | 31 ++++++++++++++++++------------- drivers/staging/rdma/hfi1/pio.c | 19 ++++++++++--------- 3 files changed, 33 insertions(+), 27 deletions(-) commit e23afff94803e9735d4f0edda0c77efad8d408a4 Author: Markus Elfring Date: Thu Nov 5 14:34:43 2015 +0100 staging: most: Delete an unnecessary check before the function call "module_put" The module_put() 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 Signed-off-by: Greg Kroah-Hartman drivers/staging/most/mostcore/core.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit c904ffdaf3e3ab679e43b9a87df02ff502dbd70c Author: Chaehyun Lim Date: Mon Nov 2 22:59:17 2015 +0900 staging: most: rename DIM_EnqueueBuffer to dim_enqueue_buffer This patch renames DIM_EnqueueBuffer to dim_enqueue_buffer to avoid camelcase found by checkpatch. CHECK: Avoid CamelCase: FILE: drivers/staging/most/hdm-dim2/dim2_hal.c:877: Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/most/hdm-dim2/dim2_hal.c | 3 ++- drivers/staging/most/hdm-dim2/dim2_hal.h | 4 ++-- drivers/staging/most/hdm-dim2/dim2_hdm.c | 6 +++--- 3 files changed, 7 insertions(+), 6 deletions(-) commit 60d5f66ce5e1a569fe0230bc1b23bfb5295f383d Author: Chaehyun Lim Date: Mon Nov 2 22:59:16 2015 +0900 staging: most: rename DIM_GetChannelState to dim_get_channel_state This patch renames DIM_GetChannelState to dim_get_channel_state to avoid camelcase found by checkpatch. CHECK: Avoid CamelCase: FILE: drivers/staging/most/hdm-dim2/dim2_hal.c:865: Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/most/hdm-dim2/dim2_hal.c | 4 ++-- drivers/staging/most/hdm-dim2/dim2_hal.h | 4 ++-- drivers/staging/most/hdm-dim2/dim2_hdm.c | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) commit e38092531282db8bdf8c8f3e9607e551b2f1a906 Author: Chaehyun Lim Date: Mon Nov 2 22:59:15 2015 +0900 staging: most: fix argument name of DIM_GetChannelState The second argument name of DIM_GetChannelState declaration changes from dim_ch_state_ptr to state_ptr. The DIM_GetChannelState declaration and definition has same argument name as state_ptr. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/most/hdm-dim2/dim2_hal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0d08d54f8da9f54bd861f694a81208a8a0625b95 Author: Chaehyun Lim Date: Mon Nov 2 22:59:14 2015 +0900 staging: most: rename DIM_ServiceChannel to dim_service_channel This patch renames DIM_ServiceChannel to dim_service_channel to avoid camelcase found by checkpatch. CHECK: Avoid CamelCase: FILE: drivers/staging/most/hdm-dim2/dim2_hal.c:857: Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/most/hdm-dim2/dim2_hal.c | 2 +- drivers/staging/most/hdm-dim2/dim2_hal.h | 2 +- drivers/staging/most/hdm-dim2/dim2_hdm.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit e5baa9e99cc3f5bbca84d8894aed4b39692c41e6 Author: Chaehyun Lim Date: Mon Nov 2 22:59:13 2015 +0900 staging: most: rename DIM_ServiceIrq to dim_service_irq This patch renames DIM_ServiceIrq to dim_service_irq to avoid camelcase found by checkpatch. CHECK: Avoid CamelCase: FILE: drivers/staging/most/hdm-dim2/dim2_hal.c:819: Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/most/hdm-dim2/dim2_hal.c | 2 +- drivers/staging/most/hdm-dim2/dim2_hal.h | 2 +- drivers/staging/most/hdm-dim2/dim2_hdm.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit a5e4d891a3968ded645a1c556f021097b2faa514 Author: Chaehyun Lim Date: Mon Nov 2 22:59:12 2015 +0900 staging: most: rename DIM_DestroyChannel to dim_destroy_channel This patch renames DIM_DestroyChannel to dim_destroy_channel to avoid camelcase found by checkpatch. CHECK: Avoid CamelCase: FILE: drivers/staging/most/hdm-dim2/dim2_hal.c:806: Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/most/hdm-dim2/dim2_hal.c | 2 +- drivers/staging/most/hdm-dim2/dim2_hal.h | 2 +- drivers/staging/most/hdm-dim2/dim2_hdm.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 10e5efb7b51f30b696a2cde366b783d8ecd0f465 Author: Chaehyun Lim Date: Mon Nov 2 22:59:11 2015 +0900 staging: most: rename DIM_InitSync to dim_init_sync This patch renames DIM_InitSync to dim_init_sync to avoid camelcase found by checkpatch. CHECK: Avoid CamelCase: FILE: drivers/staging/most/hdm-dim2/dim2_hal.c:781: Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/most/hdm-dim2/dim2_hal.c | 4 ++-- drivers/staging/most/hdm-dim2/dim2_hal.h | 4 ++-- drivers/staging/most/hdm-dim2/dim2_hdm.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) commit f1383176c928016e6b7c85bb8c646fe829600db0 Author: Chaehyun Lim Date: Mon Nov 2 22:59:10 2015 +0900 staging: most: rename DIM_InitIsoc to dim_init_isoc This patch renames DIM_InitIsoc to dim_init_isoc to avoid camelcase found by checkpatch. CHECK: Avoid CamelCase: FILE: drivers/staging/most/hdm-dim2/dim2_hal.c:756: Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/most/hdm-dim2/dim2_hal.c | 4 ++-- drivers/staging/most/hdm-dim2/dim2_hal.h | 4 ++-- drivers/staging/most/hdm-dim2/dim2_hdm.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) commit 26303150c3fe9fce81cc1baa60a32aed6ff203ee Author: Chaehyun Lim Date: Mon Nov 2 22:59:09 2015 +0900 staging: most: rename DIM_InitAsync to dim_init_async This patch renames DIM_InitAsync to dim_init_async to avoid camelcase found by checkpatch. CHECK: Avoid CamelCase: FILE: drivers/staging/most/hdm-dim2/dim2_hal.c:749: Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/most/hdm-dim2/dim2_hal.c | 4 ++-- drivers/staging/most/hdm-dim2/dim2_hal.h | 4 ++-- drivers/staging/most/hdm-dim2/dim2_hdm.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) commit a3f3e9211947101b00d3c6d6c0864905a1bde0a9 Author: Chaehyun Lim Date: Mon Nov 2 22:59:08 2015 +0900 staging: most: rename DIM_InitControl to dim_init_control This patch renames DIM_InitControl to dim_init_control to avoid camelcase found by checkpatch. CHECK: Avoid CamelCase: FILE: drivers/staging/most/hdm-dim2/dim2_hal.c:742: Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/most/hdm-dim2/dim2_hal.c | 4 ++-- drivers/staging/most/hdm-dim2/dim2_hal.h | 4 ++-- drivers/staging/most/hdm-dim2/dim2_hdm.c | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) commit aff1924508e8808a3e9d6b41ce30ad4cbb4be582 Author: Chaehyun Lim Date: Mon Nov 2 22:59:07 2015 +0900 staging: most: rename DIM_NormSyncBufferSize to dim_norm_sync_buffer_size This patch renames DIM_NormSyncBufferSize to dim_norm_sync_buffer_size to avoid camelcase found by checkpatch. CHECK: Avoid CamelCase: FILE: drivers/staging/most/hdm-dim2/dim2_hal.c:734: Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/most/hdm-dim2/dim2_hal.c | 2 +- drivers/staging/most/hdm-dim2/dim2_hal.h | 2 +- drivers/staging/most/hdm-dim2/dim2_hdm.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit e302ca47b59f024e90c26367fca6448af5198dc7 Author: Chaehyun Lim Date: Mon Nov 2 22:59:06 2015 +0900 staging: most: rename DIM_NormIsocBufferSize to dim_norm_isoc_buffer_size This patch renames DIM_NormIsocBufferSize to dim_norm_isoc_buffer_size to avoid camelcase found by checkpatch. CHECK: Avoid CamelCase: FILE: drivers/staging/most/hdm-dim2/dim2_hal.c:720: Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/most/hdm-dim2/dim2_hal.c | 2 +- drivers/staging/most/hdm-dim2/dim2_hal.h | 2 +- drivers/staging/most/hdm-dim2/dim2_hdm.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit c64c6073e8fe1c80cc991c48450136c619c051ee Author: Chaehyun Lim Date: Mon Nov 2 22:59:05 2015 +0900 staging: most: rename DIM_NormCtrlAsyncBufferSize to dim_norm_ctrl_async_buffer_size This patch renames DIM_NormCtrlAsyncBufferSize to dim_norm_ctrl_async_buffer_size to avoid camelcase found by checkpatch CHECK: Avoid CamelCase: FILE: drivers/staging/most/hdm-dim2/dim2_hal.c:709: Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/most/hdm-dim2/dim2_hal.c | 2 +- drivers/staging/most/hdm-dim2/dim2_hal.h | 2 +- drivers/staging/most/hdm-dim2/dim2_hdm.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) commit 58889788fc806e8b63e7f159db659937decf61e8 Author: Chaehyun Lim Date: Mon Nov 2 22:59:04 2015 +0900 staging: most: rename DIMCB_IoRead to dimcb_io_read This patch renames DIMCB_IoRead to dimcb_io_read to avoid camelcase found by checkpatch. CHECK: Avoid CamelCase: FILE: drivers/staging/most/hdm-dim2/dim2_hal.c:157: Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/most/hdm-dim2/dim2_hal.c | 16 ++++++++-------- drivers/staging/most/hdm-dim2/dim2_hal.h | 2 +- drivers/staging/most/hdm-dim2/dim2_hdm.c | 4 ++-- 3 files changed, 11 insertions(+), 11 deletions(-) commit 1efc4564624070561c1a562f2001ca357895cc99 Author: Chaehyun Lim Date: Mon Nov 2 22:59:03 2015 +0900 staging: most: rename DIMCB_IoWrite to dimcb_io_write This patch renames DIMCB_IoWrite to dimcb_io_write to avoid camelcase found by checkpatch. CHECK: Avoid CamelCase: FILE: drivers/staging/most/hdm-dim2/dim2_hal.c:154: Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/most/hdm-dim2/dim2_hal.c | 76 ++++++++++++++++---------------- drivers/staging/most/hdm-dim2/dim2_hal.h | 2 +- drivers/staging/most/hdm-dim2/dim2_hdm.c | 4 +- 3 files changed, 41 insertions(+), 41 deletions(-) commit de6687313df421296533de085dee76ec779d7332 Author: Chaehyun Lim Date: Mon Nov 2 22:59:02 2015 +0900 staging: most: rename DIMCB_OnError to dimcb_on_error This patch renames DIMCB_OnError to dimcb_on_error to avoid camelcase found by checkpatch. CHECK: Avoid CamelCase: FILE: drivers/staging/most/hdm-dim2/dim2_hal.c:77: Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/most/hdm-dim2/dim2_hal.c | 2 +- drivers/staging/most/hdm-dim2/dim2_hal.h | 2 +- drivers/staging/most/hdm-dim2/dim2_hdm.c | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) commit b724207b4122ac8253c76834b24696a9dc68384a Author: Chaehyun Lim Date: Mon Nov 2 22:59:01 2015 +0900 staging: most: rename DIM_GetLockState to dim_get_lock_state This patch renames DIM_GetLockState to dim_get_lock_state to avoid camelcase found by checkpatch. CHECK: Avoid CamelCase: FILE: drivers/staging/most/hdm-dim2/dim2_hdm.c:131: Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/most/hdm-dim2/dim2_hal.c | 2 +- drivers/staging/most/hdm-dim2/dim2_hal.h | 2 +- drivers/staging/most/hdm-dim2/dim2_hdm.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 38c385449048ef4372ec7973c179bf1012cb284e Author: Chaehyun Lim Date: Thu Oct 29 16:44:13 2015 +0900 staging: most: rename DIM_DetachBuffers to dim_detach_buffers This patch renames DIM_DetachBuffers to dim_detach_buffers to avoid camelcase found by checkpatch. CHECK: Avoid CamelCase: FILE: drivers/staging/most/hdm-dim2/dim2_hal.c:886: Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/most/hdm-dim2/dim2_hal.c | 2 +- drivers/staging/most/hdm-dim2/dim2_hal.h | 2 +- drivers/staging/most/hdm-dim2/dim2_hdm.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 50a45b170c044a27075535b36beea7b18ada98ce Author: Chaehyun Lim Date: Thu Oct 29 16:44:12 2015 +0900 staging: most: rename DIM_Shutdown to dim_shutdown This patch renames DIM_Shutdown to dim_shutdown to avoid camelcase found by checkpatch. CHECK: Avoid CamelCase: FILE: drivers/staging/most/hdm-dim2/dim2_hal.c:676: Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/most/hdm-dim2/dim2_hal.c | 2 +- drivers/staging/most/hdm-dim2/dim2_hal.h | 2 +- drivers/staging/most/hdm-dim2/dim2_hdm.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 6417267f17c72f3d4224be3e76399475748e1e17 Author: Chaehyun Lim Date: Thu Oct 29 16:44:11 2015 +0900 staging: most: rename DIM_Startup to dim_startup This patch renames DIM_Startup to dim_startup to avoid camelcase found by checkpatch. CHECK: Avoid CamelCase: FILE: drivers/staging/most/hdm-dim2/dim2_hal.c:653: Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/most/hdm-dim2/dim2_hal.c | 2 +- drivers/staging/most/hdm-dim2/dim2_hal.h | 2 +- drivers/staging/most/hdm-dim2/dim2_hdm.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) commit 3c70754250e42cf7aacf9c4d3ea7ea61beb4d3fa Author: Chaehyun Lim Date: Thu Oct 29 16:44:10 2015 +0900 staging: most: add spaces preferred around that '<<' This patch adds space around '<<' found by checkpatch. CHECK: spaces preferred around that '<<' (ctx:VxV) FILE: drivers/staging/most/hdm-dim2/dim2_reg.h:69: Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/most/hdm-dim2/dim2_reg.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 23242684c150835602a7f8cf10d530761f8d96ab Author: Chaehyun Lim Date: Thu Oct 29 16:44:09 2015 +0900 staging: most: remove blank line after an open brace This patch removes blank line after an open brace found by checkpatch. CHECK: Blank lines aren't necessary after an open brace '{' Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/most/hdm-dim2/dim2_hdm.c | 2 -- 1 file changed, 2 deletions(-) commit fabb93f18fdbb1b9eebb799fd7b69610799f25a9 Author: Chaehyun Lim Date: Thu Oct 29 16:44:08 2015 +0900 staging: most: remove multiple blank lines This patch removes multiple blank lines found by checkpatch. CHECK: Please don't use multiple blank lines Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/most/aim-network/networking.h | 2 -- drivers/staging/most/hdm-dim2/dim2_errors.h | 2 -- drivers/staging/most/hdm-dim2/dim2_hal.h | 3 --- drivers/staging/most/hdm-dim2/dim2_reg.h | 3 --- drivers/staging/most/hdm-dim2/dim2_sysfs.h | 3 --- drivers/staging/most/mostcore/mostcore.h | 2 -- 6 files changed, 15 deletions(-) commit 25e168a4a367eca8bdab3456ac73758290e8aab5 Author: Ivan Safonov Date: Fri Nov 6 22:20:17 2015 +0700 staging: rtl8188eu: goto removed malloc error handling moved into one place. Signed-off-by: Ivan Safonov Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_cmd.c | 67 +++++++------------------------- 1 file changed, 13 insertions(+), 54 deletions(-) commit 4a3bda22fdf0b9ccc674675cbe87d781207c799e Author: Ivan Safonov Date: Fri Nov 6 22:17:29 2015 +0700 staging: rtl8188eu: goto replaced by 'else' branch goto is not needed here. Signed-off-by: Ivan Safonov Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_cmd.c | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) commit d14c07f6ff63d43c536c312c1b14837d44dbe020 Author: Ivan Safonov Date: Thu Nov 5 16:58:56 2015 +0700 staging: rtl8188eu: unused macros removed IS_* and GET_CVID_* macros have not been used. Signed-off-by: Ivan Safonov Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_ioctl_set.c | 7 ------ drivers/staging/rtl8188eu/include/HalVerDef.h | 33 -------------------------- 2 files changed, 40 deletions(-) commit 940f90eae69b6f548c9c03c416bccb5331e6bfac Author: Ivan Safonov Date: Thu Nov 5 16:56:38 2015 +0700 staging: rtl8188eu: rarely used macros replaced by their definitions IS_* macros (except one) occur only once. Signed-off-by: Ivan Safonov Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/hal/hal_com.c | 14 +++++++------- drivers/staging/rtl8188eu/hal/rtl8188e_dm.c | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) commit 08ecab13e1677396edcd57459e47d25272f9179b Author: Ivan Safonov Date: Wed Nov 4 18:58:41 2015 +0700 staging: rtl8188eu: for loop instead of while loop used The range of elements to fill with zeros is determined by using a roundup macro Signed-off-by: Ivan Safonov Reviewed-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/hal/fw.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) commit 13cab3d422e89ccdcc78377e76299a2fdb4df90b Author: Ivan Safonov Date: Tue Nov 3 16:54:45 2015 +0700 staging: rtl8188eu: offset renamed to write_address This name is better suited for this variable. Signed-off-by: Ivan Safonov Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/hal/fw.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 7e91b28a015e1b478fe5e872dc8e46fc867c418f Author: Ivan Safonov Date: Tue Nov 3 16:54:28 2015 +0700 staging: rtl8188eu: pu4BytePtr renamed to dword_buffer This name is better suited for this variable. Signed-off-by: Ivan Safonov Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/hal/fw.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 988c5146885f0f16e9124b4ae8e840229c4dc6d6 Author: Ivan Safonov Date: Tue Nov 3 16:54:10 2015 +0700 staging: rtl8188eu: buf_ptr renamed to byte_buffer This name is better suited for this variable. Signed-off-by: Ivan Safonov Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/hal/fw.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 6e84aa6c8251f9d5cb086cb9ba8d1a59a59e5cd9 Author: Ivan Safonov Date: Tue Nov 3 16:53:43 2015 +0700 staging: rtl8188eu: unnessesary braces for single statement block removed checkpatch fix: WARNING: braces {} are not necessary for single statement blocks Signed-off-by: Ivan Safonov Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/hal/fw.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 429078e1f1ddf549ff9e282ed4a485b607b945cb Author: Ivan Safonov Date: Tue Nov 3 16:52:23 2015 +0700 staging: rtl8188eu: unnecessary initialization removed It is superfluous. Signed-off-by: Ivan Safonov Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/hal/fw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 645d2a8f463c70f27fef2507952b71fdae71cf41 Author: Ivan Safonov Date: Tue Nov 3 16:51:47 2015 +0700 staging: rtl8188eu: types of local variables conformed with types of function arguments The array should not change in any case. Signed-off-by: Ivan Safonov Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/hal/fw.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1e7e93ee6da0ee4c9054a9cb70748f1c34fe15bf Author: Ivan Safonov Date: Tue Nov 3 16:51:11 2015 +0700 staging: rtl8188eu: buf_ptr variable completely defined in a single line It is simpler. Signed-off-by: Ivan Safonov Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/hal/fw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ec60e037c7e3e6b38b5c153d009d4f9161dd9e16 Author: Ivan Safonov Date: Tue Nov 3 16:49:13 2015 +0700 staging: rtl8188eu: offset increment placed into for loop header It makes the code little easier. Signed-off-by: Ivan Safonov Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/hal/fw.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit f464b3a08cefe3febcd30068d0a7ecd28f085b2d Author: Ivan Safonov Date: Tue Nov 3 16:48:22 2015 +0700 staging: rtl8188eu: unnecessary branching removed If the 'remain' is zero, the loop is not executed at all. Signed-off-by: Ivan Safonov Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/hal/fw.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 8107b147d78ba5f04ed5e809041b17273c1f5a02 Author: Ivan Safonov Date: Tue Nov 3 16:47:32 2015 +0700 staging: rtl8188eu: unnecessary variable override removed Variable value calculated in the previous loop. Signed-off-by: Ivan Safonov Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/hal/fw.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 37d5579095b380f3328a5106354c0999eeca60f2 Author: Ivan Safonov Date: Tue Nov 3 16:46:53 2015 +0700 staging: rtl8188eu: offset variable replaced by its value It is now possible to get rid of re-initializing the offset variable. Signed-off-by: Ivan Safonov Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/hal/fw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1c48deffc7fa48a341ccc4bcef41f8ce2eab645f Author: Ivan Safonov Date: Tue Nov 3 16:46:08 2015 +0700 staging: rtl8188eu: initial value placed in the variable Line become shorter. After the loop offset variable points to the location following insertion. Signed-off-by: Ivan Safonov Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/hal/fw.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit d44f58f7c5c737c6f95f3adf4af00a4a19746d9f Author: Ivan Safonov Date: Tue Nov 3 16:45:00 2015 +0700 staging: rtl8188eu: assigning a value to the variable is replaced by the increment It is made to the initial value could be placed in the offset variable. Signed-off-by: Ivan Safonov Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/hal/fw.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 52863d83f3112b009aec82403c63f8fcf1c6c4cb Author: Ivan Safonov Date: Tue Nov 3 16:43:53 2015 +0700 staging: rtl8188eu: *(ptr + i) replaced by ptr[i] in _rtl88e_fw_block_write It is better to read. Signed-off-by: Ivan Safonov Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/hal/fw.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6d9b0f00ecf3f991ae8d4124211cad7c5122cbbc Author: Abdul Hussain Date: Tue Nov 3 05:30:56 2015 +0000 Staging: rtl8188eu: fix space prohibited before that ',' This patch fixes the following checkpatch.pl error: fix space prohibited before that ',' Signed-off-by: Abdul Hussain Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_xmit.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 37efd082311371ad387d9067128e5924eebd5790 Author: Ivan Safonov Date: Tue Nov 3 00:16:53 2015 +0700 staging: rtl8188eu: 'infinite' loop removed The body of this loop is executed only once, so it can be removed. In this loop no keyword 'continue', only 'break' at the end. Signed-off-by: Ivan Safonov Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c | 34 ++++++++++++-------------- 1 file changed, 15 insertions(+), 19 deletions(-) commit 72fb6c5a9dbc8cff8308d42b9de4f7c49bbcdcb4 Author: Ivan Safonov Date: Tue Nov 3 00:16:28 2015 +0700 staging: rtl8188eu: while loop replaced by for loop Here is more suitable for loop. Signed-off-by: Ivan Safonov Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_mlme.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) commit 2b5a10a923e6541f20581b0557785a55e0039436 Author: Ivan Safonov Date: Tue Nov 3 00:16:09 2015 +0700 staging: rtl8188eu: do .. while (0) loop replaced by while (...) loop It is a simple and clear representation of this loop. Signed-off-by: Ivan Safonov Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_cmd.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 3913c19ae7a3ede2fa4f1787630fa71c55ff8d23 Author: Rémy Oudompheng Date: Mon Nov 2 11:43:09 2015 +0100 staging: rtl8188eu: add missing delay in polling loops. Previously the code could exit with failure too early. Signed-off-by: Rémy Oudompheng Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/hal/rtl8188e_hal_init.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ed73749426deb2810d4b66a25d6441c5fe8de2b5 Author: Rémy Oudompheng Date: Mon Nov 2 11:39:22 2015 +0100 staging: rtl8188eu: jiffies are unsigned long Remove rtw_get_passing_time_ms function and adjust type of relevant variables. Signed-off-by: Rémy Oudompheng Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_efuse.c | 4 +-- drivers/staging/rtl8188eu/core/rtw_mlme.c | 13 ++++--- drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 43 ++++++++++++++--------- drivers/staging/rtl8188eu/core/rtw_pwrctrl.c | 14 ++++---- drivers/staging/rtl8188eu/hal/rtl8188e_hal_init.c | 4 +-- drivers/staging/rtl8188eu/hal/usb_halinit.c | 10 +++--- drivers/staging/rtl8188eu/include/osdep_service.h | 2 -- drivers/staging/rtl8188eu/os_dep/os_intfs.c | 10 +++--- drivers/staging/rtl8188eu/os_dep/osdep_service.c | 6 ---- drivers/staging/rtl8188eu/os_dep/usb_intf.c | 8 ++--- 10 files changed, 62 insertions(+), 52 deletions(-) commit f7ec22b5fa0423d1bd7c5cf3f811c539307a595d Author: Shivani Bhardwaj Date: Fri Nov 6 23:14:32 2015 +0530 Staging: lustre: ldlm_pool: Drop unneeded wrapper function Remove the function ldlm_pool_set_limit() and replace its calls with the function it wrapped. Signed-off-by: Shivani Bhardwaj Acked-by: James Simmons Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ldlm/ldlm_pool.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) commit 946d6f9577438f5d344aa8545fba2b7885118b5f Author: Shivani Bhardwaj Date: Fri Nov 6 23:13:56 2015 +0530 Staging: lustre: ldlm_pool: Drop wrapper function Remove the function ldlm_pool_get_limit() and replace its calls with the function it wrapped. Signed-off-by: Shivani Bhardwaj Acked-by: James Simmons Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ldlm/ldlm_pool.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) commit 7c37abe0e1e970a7793a05c0953b44ac078f0a11 Author: Shivani Bhardwaj Date: Fri Nov 6 23:13:19 2015 +0530 Staging: lustre: ldlm_pool: Remove unneeded wrapper function Remove the function ldlm_pl2ns() and replace its calls with the function it wrapped. Signed-off-by: Shivani Bhardwaj Acked-by: James Simmons Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ldlm/ldlm_pool.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) commit 7fb6f46b14d01a185dfe563a8ba20cda514d4f9a Author: Shivani Bhardwaj Date: Fri Nov 6 22:49:43 2015 +0530 Staging: lustre: tracefile: Remove function prototype Remove the prototype of function cfs_trace_free_string_buffer() as it is no longer needed. Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/tracefile.h | 1 - 1 file changed, 1 deletion(-) commit 7cbf673d8b4a68916fe362fe9a9c3a55a604700e Author: Shivani Bhardwaj Date: Fri Nov 6 22:49:07 2015 +0530 Staging: lustre: tracefile: Remove wrapper function Remove the function cfs_trace_free_string_buffer() as it can be replaced with the standard function kfree(). Signed-off-by: Shivani Bhardwaj Acked-by: James Simmons Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/tracefile.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit e4ce7f7779313ff23f958049b91cc7ac1b24d8e8 Author: Shivani Bhardwaj Date: Fri Nov 6 22:48:29 2015 +0530 Staging: lustre: module: Replace function calls Replace the calls of function cfs_trace_free_string_buffer() with kfree() as the former function is not required. Signed-off-by: Shivani Bhardwaj Acked-by: James Simmons Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/module.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c6ef5b91f3df7d22c058a135871d5827add94498 Author: Shivani Bhardwaj Date: Fri Nov 6 22:25:29 2015 +0530 Staging: lustre: dir: Remove wrapper function Remove the function ll_check_page() and replace all its calls with the function it wrapped. Signed-off-by: Shivani Bhardwaj Acked-by: James Simmons Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/dir.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit ee98e44249a95832f24469d8caa8a693b88f854a Author: Amitoj Kaur Chawla Date: Fri Nov 6 20:26:52 2015 +0530 staging: lustre: lnet: klnds: socklnd: Move extern declarations to header This patch moves extern declarations in socklnd_lib.c to the respective header file, 'socklnd.h'. This patch also removes extern keyword from function declarations since functions have the extern specifier by default. Signed-off-by: Amitoj Kaur Chawla Acked-by: James Simmons Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/klnds/socklnd/socklnd.h | 3 +++ drivers/staging/lustre/lnet/klnds/socklnd/socklnd_lib.c | 2 -- 2 files changed, 3 insertions(+), 2 deletions(-) commit 14e384ce758d613cf9da0b3fb4c2e66d58917ac0 Author: Markus Elfring Date: Thu Nov 5 10:55:16 2015 +0100 staging: lustre: Delete an unnecessary variable initialisation in class_register_type() The variable "rc" will be eventually set to an error return code in the class_register_type() function. Thus let us omit the explicit initialisation at the beginning. Signed-off-by: Markus Elfring Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/genops.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5bfd446e7bd94ee6f9c17d07b5d47342b96b387a Author: Sebastien Buisson Date: Wed Nov 4 13:40:06 2015 -0500 staging: lustre: fix 'error handling' issues for libcfs workitem.c Fix 'error handling' issues found by Coverity version 6.5.1: Unchecked return value (CHECKED_RETURN) Calling function without checking return value. Signed-off-by: Sebastien Buisson Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-3427 Reviewed-on: http://review.whamcloud.com/7103 Reviewed-by: Bobbie Lind Reviewed-by: Dmitry Eremin Reviewed-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/workitem.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 9d3e85326f4c3c65a7e97c5406611a17142bd70f Author: Liang Zhen Date: Wed Nov 4 13:40:05 2015 -0500 staging: lustre: remove page_collection::pc_lock in libcfs page_collection::pc_lock is supposed to protect race between functions called by smp_call_function(), however we don't have this use-case for ages and page_collection only lives in stack of thread, so it is safe to remove it. Signed-off-by: Liang Zhen Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-3055 Reviewed-on: http://review.whamcloud.com/7660 Reviewed-by: Bobi Jam Reviewed-by: Sebastien Buisson Reviewed-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/tracefile.c | 14 -------------- drivers/staging/lustre/lustre/libcfs/tracefile.h | 8 -------- 2 files changed, 22 deletions(-) commit 78368d578e9eab8dc9d42b9e9a2be78a98f4e9d9 Author: Fan Yong Date: Wed Nov 4 13:40:04 2015 -0500 staging: lustre: race condition for check/use cfs_fail_val There are some race conditions when check/use cfs_fail_val. For example: when inject failure stub for LFSCK test as following: 764 if (OBD_FAIL_CHECK(OBD_FAIL_LFSCK_DELAY2) && 765 cfs_fail_val > 0) { 766 struct l_wait_info lwi; 767 768 lwi = LWI_TIMEOUT(cfs_time_seconds(cfs_fail_val), 769 NULL, NULL); 770 l_wait_event(thread->t_ctl_waitq, 771 !thread_is_running(thread), 772 &lwi); 773 774 if (unlikely(!thread_is_running(thread))) { 775 CDEBUG(D_LFSCK, "%s: scan dir exit for engine " 776 "stop, parent "DFID", cookie "LPX64"n", 777 lfsck_lfsck2name(lfsck), 778 PFID(lfsck_dto2fid(dir)), 779 lfsck->li_cookie_dir); 780 RETURN(0); 781 } 782 } The "cfs_fail_val" may be changed as zero by others after the check at the line 765 but before using it at the line 768. Then the LFSCK engine will fall into "wait" until someone run "lfsck_stop". Signed-off-by: Fan Yong Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6146 Reviewed-on: http://review.whamcloud.com/13481 Reviewed-by: Lai Siyao Reviewed-by: Andreas Dilger Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/fail.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a0455471582117d31659618c02146804df527ff4 Author: James Simmons Date: Wed Nov 4 13:40:02 2015 -0500 staging: lustre: Update module author to OpenSFS The modinfo data has gone stale for the author information. This patch changes all the MODULE_AUTHOR to OpenSFS. Signed-off-by: James Simmons Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6204 Reviewed-on: http://review.whamcloud.com/16132 Reviewed-by: Frank Zago Reviewed-by: Andreas Dilger Reviewed-by: John L. Hammond Reviewed-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c | 2 +- drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c | 2 +- drivers/staging/lustre/lnet/lnet/module.c | 2 +- drivers/staging/lustre/lustre/fid/fid_request.c | 2 +- drivers/staging/lustre/lustre/fld/fld_request.c | 2 +- drivers/staging/lustre/lustre/libcfs/module.c | 2 +- drivers/staging/lustre/lustre/llite/lloop.c | 2 +- drivers/staging/lustre/lustre/llite/super25.c | 2 +- drivers/staging/lustre/lustre/lmv/lmv_obd.c | 2 +- drivers/staging/lustre/lustre/lov/lov_obd.c | 2 +- drivers/staging/lustre/lustre/mdc/mdc_request.c | 2 +- drivers/staging/lustre/lustre/mgc/mgc_request.c | 2 +- drivers/staging/lustre/lustre/obdclass/class_obd.c | 2 +- drivers/staging/lustre/lustre/obdecho/echo_client.c | 2 +- drivers/staging/lustre/lustre/osc/osc_request.c | 2 +- drivers/staging/lustre/lustre/ptlrpc/ptlrpc_module.c | 2 +- 16 files changed, 16 insertions(+), 16 deletions(-) commit b00917be6e90149286b3680f5e626787bcc75c55 Author: Dmitry Eremin Date: Wed Nov 4 13:40:01 2015 -0500 staging: lustre: Fix possible NULL pointer dereference in lprocfs_status.c The imp->imp_connection really could be NULL, we better check for it before dereferencing it in taht call to libcfs_nid2str_r. Signed-off-by: Dmitry Eremin Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6507 Reviewed-on: http://review.whamcloud.com/14808 Reviewed-by: Bob Glossman Reviewed-by: John L. Hammond Reviewed-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/lprocfs_status.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 9563fe8a2de9db5eb087fe0e48ec335ee66f8f41 Author: Dmitry Eremin Date: Wed Nov 4 13:40:00 2015 -0500 staging: lustre: fix buffer overflow of string buffer Buffer overflow of string buffer due to non null terminated string. Use strlcpy() when it's justifiable. Use sizeof(var) instead of constants. Signed-off-by: Dmitry Eremin Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-4629 Reviewed-on: http://review.whamcloud.com/9389 Reviewed-by: Andreas Dilger Reviewed-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c | 9 +++++---- drivers/staging/lustre/lnet/lnet/config.c | 14 ++++++++------ drivers/staging/lustre/lnet/selftest/conrpc.c | 4 ++-- drivers/staging/lustre/lnet/selftest/console.c | 6 ++++-- drivers/staging/lustre/lustre/include/lustre_disk.h | 1 + drivers/staging/lustre/lustre/libcfs/debug.c | 6 +++--- drivers/staging/lustre/lustre/libcfs/hash.c | 3 +-- drivers/staging/lustre/lustre/libcfs/workitem.c | 4 ++-- drivers/staging/lustre/lustre/llite/dir.c | 2 +- drivers/staging/lustre/lustre/lov/lov_pool.c | 3 +-- drivers/staging/lustre/lustre/obdclass/obd_mount.c | 10 +++++++--- drivers/staging/lustre/lustre/ptlrpc/ptlrpcd.c | 1 + drivers/staging/lustre/lustre/ptlrpc/sec_config.c | 3 +-- 13 files changed, 37 insertions(+), 29 deletions(-) commit 30a0a431e043b378bbf75e0f88d700812d24ef80 Author: frank zago Date: Wed Nov 4 13:39:59 2015 -0500 staging: lustre: remove libcfs_debug_set_level prototype from libcfs_private.h The function libcfs_debug_set_level is used only internally so no reason to expose it in libcfs_private.h. This is broken out from LU-5829 patch http://review.whamcloud.com/13319. Signed-off-by: frank zago Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/include/linux/libcfs/libcfs_private.h | 2 -- 1 file changed, 2 deletions(-) commit 5b26f052fb31561717f889fff09604907be62080 Author: frank zago Date: Wed Nov 4 13:39:58 2015 -0500 staging: lustre: remove unnecessary EXPORT_SYMBOL in libcfs A lot of symbols don't need to be exported at all because they are only used in the module they belong to. Signed-off-by: frank zago Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-5829 Reviewed-on: http://review.whamcloud.com/13319 Reviewed-by: James Simmons Reviewed-by: John L. Hammond Reviewed-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/debug.c | 10 ---------- drivers/staging/lustre/lustre/libcfs/hash.c | 10 ---------- drivers/staging/lustre/lustre/libcfs/libcfs_mem.c | 2 -- drivers/staging/lustre/lustre/libcfs/linux/linux-debug.c | 1 - 4 files changed, 23 deletions(-) commit cf02dfef8a3de0e45e4907a374dbc53890cc9ee5 Author: Liang Zhen Date: Wed Nov 4 13:39:57 2015 -0500 staging: lustre: wrong parameter to cfs_hash_keycpy cfs_hash_rehash_key() passed wrong parameter to cfs_hash_keycpy, hnode should be the second parameter not the third one. Signed-off-by: Liang Zhen Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-4362 Reviewed-on: http://review.whamcloud.com/8509 Reviewed-by: Bobi Jam Reviewed-by: Johann Lombardi Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/hash.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a4be078d7818e8712cb5d78b95542877a6f75071 Author: Dan Carpenter Date: Wed Nov 4 01:16:16 2015 +0300 staging: lustre: remove unused variable The "->lr_lvb_data" struct member is never used. Delete it. Signed-off-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/lustre_dlm.h | 2 -- drivers/staging/lustre/lustre/ldlm/ldlm_resource.c | 2 -- 2 files changed, 4 deletions(-) commit b3367164f4ff8ff2c1aa8bd79c7548f113b62b83 Author: Aya Mahfouz Date: Thu Oct 29 02:59:27 2015 +0200 staging: lustre: selftest.h: replace IS_PO2 by is_power_of_2 Replaces IS_PO2 by is_power_of_2. It is more accurate to use is_power_of_2 since it returns 1 for numbers that are powers of 2 only whereas IS_PO2 returns 1 for 0 and numbers that are powers of 2. Signed-off-by: Aya Mahfouz Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/selftest/selftest.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 57b573d14b0fb9f83575a2cf155862d251c8f0d1 Author: Aya Mahfouz Date: Thu Oct 29 02:57:33 2015 +0200 staging: lustre: workitem.c: replace IS_PO2 by is_power_of_2 Replaces IS_PO2 by is_power_of_2. It is more accurate to use is_power_of_2 since it returns 1 for numbers that are powers of 2 only whereas IS_PO2 returns 1 for 0 and numbers that are powers of 2. Reviewed-by: Andreas Dilger Signed-off-by: Aya Mahfouz Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/workitem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5f4179e04b31441b0b7995d14320a457aafba01b Author: Aya Mahfouz Date: Thu Oct 29 02:54:09 2015 +0200 staging: lustre: ldlm_extent.c: replace IS_PO2 by is_power_of_2 Replaces IS_PO2 by is_power_of_2. It is more accurate to use is_power_of_2 since it returns 1 for numbers that are powers of 2 only whereas IS_PO2 returns 1 for 0 and numbers that are powers of 2. Signed-off-by: Aya Mahfouz Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ldlm/ldlm_extent.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cb32649d087d513bb6e0f90dda0a686a6662b519 Author: Sunny Kumar Date: Fri Nov 6 10:06:43 2015 +0530 staging: rdma: hfi1 : Prefer using the BIT macro This patch replaces bit shifting on 1 with the BIT(x) macro Signed-off-by: Sunny Kumar Acked-by: Mike Marciniszyn Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/user_sdma.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit e3a45e4063601336f5759734d65fcee1b73d001f Author: Amitoj Kaur Chawla Date: Thu Nov 5 02:25:58 2015 +0530 staging: rdma: amso1100: c2: Remove wrapper function This patch removes the c2_print_macaddr() wrapper function which calls the pr_debug standard kernel function only. c2_print_macaddr() has been replaced by directly calling pr_debug(). Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/amso1100/c2.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit 977940b85e3c3b6b5b8ffbc1235b23e35284382f Author: Arthur Kepner Date: Wed Nov 4 21:10:10 2015 -0500 staging/rdma/hfi1: optionally prescan rx queue for {B, F}ECNs - UC, RC To more rapidly respond to Explicit Congestion Notifications, prescan the receive queue, and process FECNs, and BECNs first. When a UC, or RC packet containing a FECN, or BECN is found, immediately react to the ECN (either by returning a CNP, or adjusting the injection rate). Afterward, the packet will be processed normally. Reviewed-by: Mike Marciniszyn Reviewed-by: Dennis Dalessandro Signed-off-by: Arthur Kepner Signed-off-by: Ira Weiny Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/driver.c | 64 +++++++++++++++++++------------------- drivers/staging/rdma/hfi1/rc.c | 10 +++--- drivers/staging/rdma/hfi1/uc.c | 15 +++++---- drivers/staging/rdma/hfi1/verbs.c | 41 ++++++++++++++++++++---- 4 files changed, 81 insertions(+), 49 deletions(-) commit 3e7ccca08dbe46665ca432d09a5472d80aaadb6f Author: Arthur Kepner Date: Wed Nov 4 21:10:09 2015 -0500 staging/rdma/hfi1: don't cache "prescan head" When HFI1_CAP_DMA_RTAIL is toggled off the "prescan head" can get out of sync with the receive context's "head". This happens when, after prescan_rxq() newly arrived packets are then received, and processed by an RX interrupt handler. This is an unavoidable race, and to avoid getting out of sync we always start prescanning at the current "rcd->head" entry. Reviewed-by: Mike Marciniszyn Reviewed-by: Dennis Dalessandro Signed-off-by: Arthur Kepner Signed-off-by: Ira Weiny Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/driver.c | 13 +++---------- drivers/staging/rdma/hfi1/hfi.h | 13 ------------- 2 files changed, 3 insertions(+), 23 deletions(-) commit 701e441d82689c21afd699b229d338783f3463b1 Author: Mitko Haralanov Date: Fri Oct 30 18:58:43 2015 -0400 staging/rdma/hfi1: Move macros to a common header In preparation of implementing TID caching move EXP_TID macros to a common header user_exp_rcv.h Signed-off-by: Mitko Haralanov Signed-off-by: Ira Weiny Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/file_ops.c | 13 +----- drivers/staging/rdma/hfi1/user_exp_rcv.h | 74 ++++++++++++++++++++++++++++++++ drivers/staging/rdma/hfi1/user_sdma.h | 10 +---- 3 files changed, 76 insertions(+), 21 deletions(-) commit 49efd866193253f8b0322b73791b473e8e4eb688 Author: Mitko Haralanov Date: Fri Oct 30 18:58:42 2015 -0400 staging/rdma/hfi1: Remove unnecessary include files These includes were not used in file_ops.c Signed-off-by: Mitko Haralanov Signed-off-by: Ira Weiny Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/file_ops.c | 10 ---------- 1 file changed, 10 deletions(-) commit 3bd4dce1366fefe6575b841816e595f54e8e9752 Author: Mitko Haralanov Date: Fri Oct 30 18:58:41 2015 -0400 staging/rdma/hfi1: Clean up macro indentation In preparation for implementing Expected TID caching we do some simple clean up of header file macros. Signed-off-by: Mitko Haralanov Signed-off-by: Ira Weiny Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/common.h | 15 ++++++++------- include/uapi/rdma/hfi/hfi1_user.h | 26 +++++++++++++------------- 2 files changed, 21 insertions(+), 20 deletions(-) commit 9e10af4787ac5164345c89ba5118686b4463857d Author: Ira Weiny Date: Fri Oct 30 18:58:40 2015 -0400 staging/rdma/hfi1: Remove file pointer macros Remove the following macros in favor of explicit use of struct hfi1_filedata and various sub structures. ctxt_fp subctxt_fp tidcursor_fp user_sdma_pkt_fp user_sdma_comp_fp Reviewed-by: Mitko Haralanov Signed-off-by: Ira Weiny Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/file_ops.c | 124 ++++++++++++++++++---------------- drivers/staging/rdma/hfi1/hfi.h | 12 ---- drivers/staging/rdma/hfi1/user_sdma.c | 34 ++++++---- 3 files changed, 84 insertions(+), 86 deletions(-) commit 9062305b902d9daadf1ca34d32df40858d82a2c9 Author: Chaehyun Lim Date: Fri Nov 6 19:11:21 2015 +0900 staging: wilc1000: remove rates variable in host_int_add_station Instead of using rates variable, it is used as add_sta_info->rates directly. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 7897bd00f6b5e69443ceffc7900faaafc23455b0 Author: Chaehyun Lim Date: Fri Nov 6 19:11:20 2015 +0900 staging: wilc1000: use kmemdup in host_int_add_station This patch replaces kmalloc followed by memcpy with kmemdup. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 773e02e696b1926d85627a901375453d46d12262 Author: Chaehyun Lim Date: Fri Nov 6 19:11:19 2015 +0900 staging: wilc1000: rename pstrAddStationMsg in host_int_add_station This patch renames pstrAddStationMsg to add_sta_info to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit e33785470d26fdae12f453426cc5bb68771a69c3 Author: Chaehyun Lim Date: Fri Nov 6 19:11:18 2015 +0900 staging: wilc1000: rename pstrStaParams in host_int_add_station This patch renames pstrStaParams to sta_param to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 6 +++--- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) commit 261de713b9e4c55057d7053a08fe148519ee710c Author: Chaehyun Lim Date: Fri Nov 6 19:11:17 2015 +0900 staging: wilc1000: fix parameter name of host_int_add_station This patch changes struct host_if_drv of host_int_add_station function declaration from hWFIDrv to hif_drv. With this change, first parameter of this function declaration and definition has same name as hif_drv. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 18cfbd334e83e4716cabc7b278eb6aa52f0f97c0 Author: Chaehyun Lim Date: Fri Nov 6 19:11:16 2015 +0900 staging: wilc1000: fix return type of host_int_add_station This patch changes return type of host_int_add_station from s32 to int. The result variable gets return value from wilc_mq_send that has return type of int. It should be changed return type of this function as well as data type of result variable. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit c87fbede0fc852753c74e554206023b5d98b7cd7 Author: Chaehyun Lim Date: Fri Nov 6 19:11:15 2015 +0900 staging: wilc1000: rename pstrDelStationMsg in host_int_del_station This patch renames pstrDelStationMsg to del_sta_info to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit c9c4eb415d9541e3c48fc3103462e668c15c4870 Author: Chaehyun Lim Date: Fri Nov 6 19:11:14 2015 +0900 staging: wilc1000: rename pu8MacAddr in host_int_del_station This patch changes pu8MacAddr to mac_addr that is second argument of this function to avoid camelcase. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 6 +++--- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) commit 994e7dc9134ee418eda48cf744e44ab19d3de4f8 Author: Chaehyun Lim Date: Fri Nov 6 19:11:13 2015 +0900 staging: wilc1000: fix parameter name of host_int_del_station This patch changes struct host_if_drv of host_int_del_station function declaration from hWFIDrv to hif_drv. With this change, first parameter name of this function declaration and definition has same name as hif_drv. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 79a0c0a8c4db5809854ce9419486f2cfd01212e5 Author: Chaehyun Lim Date: Fri Nov 6 19:11:12 2015 +0900 staging: wilc1000: fix return type of host_int_del_station This patch changes return type of host_int_del_station from s32 to int. The result variable gets return value from wilc_mq_send that has return type of int. It should be changed return type of this function as well as data type of result variable. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit b6694df6756e3784c38b9f8f0a9bcdb6f934e13c Author: Chaehyun Lim Date: Fri Nov 6 19:11:11 2015 +0900 staging: wilc1000: fix parameter name of host_int_del_beacon This patch changes struct host_if_drv of host_int_del_beacon function declaration from hWFIDrv to hif_drv. With this change, first parameter name of this function declaration and definition has same name as hif_drv. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0a5298cbf316df263664b94e7afdeaccb7451216 Author: Chaehyun Lim Date: Fri Nov 6 19:11:10 2015 +0900 staging: wilc1000: fix return type of host_int_del_beacon This patch changes return type of host_int_del_beacon from s32 to int. The result variable gets return value from wilc_mq_send that has return type of int. It should be changed return type of this function as well as data type of result variable. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit f7a34d9ceb78ffa84eb71c4859193f022b87b5bf Author: Glen Lee Date: Fri Nov 6 18:40:23 2015 +0900 staging: wilc1000: remove os_private This patch removes unused variable os_private and delete struct wilc_wlan_os_context_t since there is no members in it. Remove it's related code also. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 2 -- drivers/staging/wilc1000/wilc_wlan_if.h | 5 ----- 2 files changed, 7 deletions(-) commit 9c800322a56610bbdd80e6a859c412e65c5fc6eb Author: Glen Lee Date: Fri Nov 6 18:40:22 2015 +0900 staging: wilc1000: change parameter type of hif_init This patch changes parameter type wilc_wlan_inp_t with struct wilc and modify it's related code. Pass wilc to the functions as well. wilc will be used in later patch. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_sdio.c | 3 ++- drivers/staging/wilc1000/wilc_spi.c | 3 ++- drivers/staging/wilc1000/wilc_wlan.c | 8 ++++++-- drivers/staging/wilc1000/wilc_wlan.h | 4 ++-- 4 files changed, 12 insertions(+), 6 deletions(-) commit 64ae414fe2bcdc86a347056e20d377376fa45b4f Author: Glen Lee Date: Fri Nov 6 18:40:21 2015 +0900 staging: wilc1000: remove os_context This patch removes variable os_context of wilc_sdio_t and wilc_spi_t because os_context is not used, and delete it's related code. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_sdio.c | 2 -- drivers/staging/wilc1000/wilc_spi.c | 2 -- 2 files changed, 4 deletions(-) commit 3f644285a8bd19916e580e892685881522916bab Author: Glen Lee Date: Fri Nov 6 18:40:20 2015 +0900 staging: wilc1000: linux_spi_init: remove parameter vp This patch removes function parameter vp which is not used and modify it's related codes. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 2 +- drivers/staging/wilc1000/linux_wlan_spi.c | 2 +- drivers/staging/wilc1000/linux_wlan_spi.h | 2 +- drivers/staging/wilc1000/wilc_spi.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) commit 4bffadb0446cdc46153f9a3055da5cf2288833da Author: Glen Lee Date: Fri Nov 6 18:40:19 2015 +0900 staging: wilc1000: linux_sdio_init: remove parameter pv This patch removes function parameter pv which is not used and modify it's related codes. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan_sdio.c | 2 +- drivers/staging/wilc1000/linux_wlan_sdio.h | 2 +- drivers/staging/wilc1000/wilc_sdio.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 060a8a23f51c4ccc0ec70619e8f70d93870ef081 Author: Glen Lee Date: Fri Nov 6 18:40:18 2015 +0900 staging: wilc1000: remove unused function pointer io_deinit This patch removes function pointer io_deinit which is never used, and delete it's related codes also. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 2 -- drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 2 files changed, 3 deletions(-) commit 62342c7af7dd5c0f9c3a8c2c57d9afdf53d92507 Author: Glen Lee Date: Fri Nov 6 18:40:17 2015 +0900 staging: wilc1000: remove function pointer io_init This patch removes function pointer io_init of wilc_wlan_io_func_t and it's related codes, and call the function linux_spi_init directly. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 2 -- drivers/staging/wilc1000/wilc_spi.c | 8 +++----- drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 3 files changed, 3 insertions(+), 8 deletions(-) commit d8dd29dd3f9bca34c1a79c5ba3da1a0e48dfbdc9 Author: Glen Lee Date: Fri Nov 6 18:40:16 2015 +0900 staging: wilc1000: remove spi_max_speed of wilc_wlan_io_func_t This patch removes spi_max_speed of wilc_wlan_io_func_t which is not used anymore and removes union u and struct spi, which does not have members in it. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 1 - drivers/staging/wilc1000/wilc_wlan_if.h | 5 ----- 2 files changed, 6 deletions(-) commit fae26065d2d62404add16e26818e2506bd864ae4 Author: Glen Lee Date: Fri Nov 6 18:40:15 2015 +0900 staging: wilc1000: remove function pointer spi_max_speed This patch removes function pointer spi_max_speed of wilc_spi_t and just call the function linux_spi_set_max_speed directly. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_spi.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 6f617f22cfdc8c9e19c763c22bfde6f9eef27308 Author: Glen Lee Date: Fri Nov 6 18:40:14 2015 +0900 staging: wilc1000: remove spi_trx of wilc_wlan_io_func_t This patch removes spi_trx of wilc_wlan_io_func_t which is not used anymore. Delete it's related codes also. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 1 - drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 2 files changed, 2 deletions(-) commit fd9bf7bd4fac7ccb7a967918fe2c88e0e9f4a37d Author: Glen Lee Date: Fri Nov 6 18:40:13 2015 +0900 staging: wilc1000: remove function pointer spi_trx This patch removes function pointer spi_trx and call linux_spi_write_read directly. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_spi.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit b4b87a0b1278c872b0873ce285b25e60ca5bbe42 Author: Glen Lee Date: Fri Nov 6 18:40:12 2015 +0900 staging: wilc1000: remove function pointer spi_rx of wilc_wlan_io_func_t This patch removes spi_rx of wilc_wlan_io_func_t and it's related codes since it is not used anymore. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 1 - drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 2 files changed, 2 deletions(-) commit d3d02320b4ea420e1c833a64a8fe3195eedb6fd3 Author: Glen Lee Date: Fri Nov 6 18:40:11 2015 +0900 staging: wilc1000: remove function pointer spi_rx of wilc_spi_t This patch removes function pointer spi_rx of wilc_spi_t and just call linux_spi_read instead. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_spi.c | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) commit 6cad576a89a99b41ff8b40a618a756f8ea54cb45 Author: Glen Lee Date: Fri Nov 6 18:40:10 2015 +0900 staging: wilc1000: remove function pointer spi_tx of wilc_wlan_io_function_t This patch removes function pointer spi_tx of wilc_wlan_io_func_t because it is not used anymore. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 1 - drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 2 files changed, 2 deletions(-) commit 5334bad035d8caa6d8c88401293234d450beefe1 Author: Glen Lee Date: Fri Nov 6 18:40:09 2015 +0900 staging: wilc1000: remove function pointer spi_tx of wilc_spi_t This patch removes function pointer spi_tx of wilc_spi_t and call linux_spi_write directly. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_spi.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit d4a7344b77c96748ca91368355f138de4e370879 Author: Glen Lee Date: Fri Nov 6 18:40:08 2015 +0900 staging: wilc1000: wilc_spi.c: add prefix wilc in all function name This patch add prefix wilc for all functions name because the function name such as spi_write, spi_read and spi_sync are same as linux spi function. Hence, this should be done before restructuring wilc_spi.c and linux_wlan_spi.c later. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_spi.c | 108 ++++++++++++++++++------------------ 1 file changed, 54 insertions(+), 54 deletions(-) commit de11ee8b214e26aebe07729629246ef893d056cb Author: Glen Lee Date: Fri Nov 6 18:40:07 2015 +0900 staging: wilc1000: call linux_sdio_init instead of io_init Just call linux_sdio_init instead of io_init function pointer. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_sdio.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 1c2cf24ce5fde01316bfaa0b03711651ab1a71bf Author: Glen Lee Date: Fri Nov 6 18:40:06 2015 +0900 staging: wilc1000: remove varialbe sdio_set_default_speed This patch removes sdio_set_default_speed of wilc_wlan_io_func_t which is not used anymore and also remove struct sdio since it is empty. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 1 - drivers/staging/wilc1000/wilc_wlan_if.h | 3 --- 2 files changed, 4 deletions(-) commit 544827f3807f8165f2736d4b3fbe89a33754b05e Author: Glen Lee Date: Fri Nov 6 18:40:05 2015 +0900 staging: wilc1000: remove function pointer sdio_set_default_speed This patch removes function pointer sdio_set_default_speed of wilc_sdio_t and call linux_sdio_set_default_speed() directly. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_sdio.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit f15179eb1f77b1b991273d5229b676ac630be1c0 Author: Glen Lee Date: Fri Nov 6 18:40:04 2015 +0900 staging: wilc1000: remove sdio_set_max_speed This patch removes sdio_set_max_speed of wilc_wlan_io_func_t which is not used any more. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 1 - drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 2 files changed, 2 deletions(-) commit 78d2f1a4b50c6460e9b82179ec301773b5757acb Author: Glen Lee Date: Fri Nov 6 18:40:03 2015 +0900 staging: wilc1000: remove function pointer sdio_set_max_speed This patch removes function pointer sdio_set_max_speed of wilc_sdio_t and call the function directly. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_sdio.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 2d6151782d6cc41b25fbec6607e23daaa34ce24b Author: Glen Lee Date: Fri Nov 6 18:40:02 2015 +0900 staging: wilc1000: remove sdio_cmd53 of wilc_wlan_io_func_t This patch removes sdio_cmd53 of wilc_wlan_io_func_t which is not used. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 1 - drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 2 files changed, 2 deletions(-) commit a960936efb4401df773f667e482d2c483ebda826 Author: Glen Lee Date: Fri Nov 6 18:40:01 2015 +0900 staging: wilc1000: remove function pointer sdio_cmd53 This patch removes function pointer sdio_cmd53 of wilc_sdio_t and just call the function directly. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_sdio.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit b2882ab32bd33280739b7c294a7567f45523e95d Author: Glen Lee Date: Fri Nov 6 18:40:00 2015 +0900 staging: wilc1000: remove sdio_cmd52 of wilc_wlan_io_func_t This patch removes sdio_cmd52 of wilc_wlan_io_func_t which is not used. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 1 - drivers/staging/wilc1000/wilc_wlan_if.h | 1 - 2 files changed, 2 deletions(-) commit 3ff2ac2c042bf23a6ad520fb483c5d3f89c3e1d0 Author: Glen Lee Date: Fri Nov 6 18:39:59 2015 +0900 staging: wilc1000: remove function pointer sdio_cmd52 This patch removes function pointer sdio_cmd52 of wilc_sdio_t and just call the function directly. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_sdio.c | 53 ++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 27 deletions(-) commit cdb99231c4cb9ab3de2a0090a335d73b4ece0ea4 Author: Glen Lee Date: Fri Nov 6 18:39:58 2015 +0900 staging: wilc1000: separate hif_sdio and hif_spi into different module hif_sdio and hif_spi objects are compiled all the time even though one of SPI or SDIO is selected. This patch separates hif_sdio and hif_spi into different modules using ifdef define. After rework SPI and SDIO modules with only one hif interface, the define WILC_SDIO will be removed. This is first path of this series. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/Makefile | 6 +++--- drivers/staging/wilc1000/wilc_wlan.c | 36 +++++++++++++++++------------------- 2 files changed, 20 insertions(+), 22 deletions(-) commit 540c3e88ba5d06f64246e22f5b791d5ff5b97086 Author: Leo Kim Date: Fri Nov 6 11:20:12 2015 +0900 staging: wilc1000: rename u8WidCnt of handle_cfg_param function This patch renames u8WidCnt variable of handle_cfg_param function to wid_cnt to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 184 +++++++++++++++--------------- 1 file changed, 92 insertions(+), 92 deletions(-) commit 13ca52ad77dfba19a52a681391c276c9213668b9 Author: Leo Kim Date: Fri Nov 6 11:20:11 2015 +0900 staging: wilc1000: rename strWIDList of handle_cfg_param function This patch renames strWIDList variable of handle_cfg_param function to wid_list to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 149 +++++++++++++++--------------- 1 file changed, 74 insertions(+), 75 deletions(-) commit dc27666477e539881f49dc07bece967c0dff772d Author: Leo Kim Date: Fri Nov 6 11:20:10 2015 +0900 staging: wilc1000: rename Handle_CfgParam function This patch renames Handle_CfgParam function to handle_cfg_param to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit b3bf8fd98494642871954e8c89a35c8959686236 Author: Leo Kim Date: Fri Nov 6 11:20:09 2015 +0900 staging: wilc1000: rename Handle_GetMacAddress function This patch renames Handle_GetMacAddress function to handle_get_mac_address to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit a82674216547605540b77f9545ae83c6ff00146c Author: Leo Kim Date: Fri Nov 6 11:20:08 2015 +0900 staging: wilc1000: rename Handle_SetMacAddress function This patch renames Handle_SetMacAddress function to handle_set_mac_address to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit d4516952e0ac5121db2c3d0a0633356031d186d9 Author: Leo Kim Date: Fri Nov 6 11:20:07 2015 +0900 staging: wilc1000: rename Handle_get_IPAddress function This patch renames Handle_get_IPAddress function to handle_get_ip_address to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a6e6d48b888b9bba10e05d7bd457c518718b1e99 Author: Leo Kim Date: Fri Nov 6 11:20:06 2015 +0900 staging: wilc1000: rename Handle_set_IPAddress function This patch renames Handle_set_IPAddress function to handle_set_ip_address to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 97b5c59134328f197d86087b08671384c6ecd6ca Author: Leo Kim Date: Fri Nov 6 11:20:05 2015 +0900 staging: wilc1000: rename Handle_SetOperationMode function This patch renames Handle_SetOperationMode function to handle_set_operation_mode to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 23f2badd265a0065bde78aa9510f77be5cbea313 Author: Leo Kim Date: Fri Nov 6 11:20:04 2015 +0900 staging: wilc1000: rename Handle_SetWfiDrvHandler function This patch renames Handle_SetWfiDrvHandler function to handle_set_wfi_drv_handler to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 3eec50cf1a64f7239ee296d8be7e97eca754fc72 Author: Leo Kim Date: Fri Nov 6 11:20:03 2015 +0900 staging: wilc1000: rename Handle_SetChannel function This patch renames Handle_SetChannel function to handle_set_channel to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 48d0aa97996c3653a2e3dd6db742fa89f3f3139a Author: Leo Kim Date: Fri Nov 6 11:20:02 2015 +0900 staging: wilc1000: remove typedef from wilc_hif_func_t This patch removes typedef from the struct wilc_hif_func_t and renames it to wilc_hif_func. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_sdio.c | 2 +- drivers/staging/wilc1000/wilc_spi.c | 2 +- drivers/staging/wilc1000/wilc_wlan.c | 10 +++++----- drivers/staging/wilc1000/wilc_wlan.h | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) commit bcddd48b7f1485abaf3a127c5de4d4da4a677ed5 Author: Leo Kim Date: Fri Nov 6 11:20:01 2015 +0900 staging: wilc1000: remove typedef from wilc_cfg_rsp_t This patch removes typedef from the struct wilc_cfg_rsp_t and renames it to wilc_cfg_rsp. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 2 +- drivers/staging/wilc1000/wilc_wlan.h | 4 ++-- drivers/staging/wilc1000/wilc_wlan_cfg.c | 2 +- drivers/staging/wilc1000/wilc_wlan_cfg.h | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) commit 0e354a8e650de974e03eeaa9a1cb1bc379e89968 Author: Leo Kim Date: Fri Nov 6 11:20:00 2015 +0900 staging: wilc1000: remove unused typedef wilc_wlan_cfg_func_t This patch removes unused typedef wilc_wlan_cfg_func_t of wilc_wlan.h. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.h | 4 ---- 1 file changed, 4 deletions(-) commit 14cdc0a14bf681ffb1ef2b7ba6edb66933300600 Author: Leo Kim Date: Fri Nov 6 11:19:59 2015 +0900 staging: wilc1000: remove typedef from wilc_cfg_frame_t This patch removes typedef from the struct wilc_cfg_frame_t and renames it to wilc_cfg_frame. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 4 ++-- drivers/staging/wilc1000/wilc_wlan.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit c222096361171782c5fb689b185d367d89396da9 Author: Leo Kim Date: Fri Nov 6 11:19:58 2015 +0900 staging: wilc1000: fixes please don't use multiple blank lines This patch fixes the checks reported by checkpatch.pl for Please don't use multiple blank lines. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.h | 8 -------- 1 file changed, 8 deletions(-) commit 97c14e8cd291b1dc60701a4c6b1b66c3271c26e0 Author: Leo Kim Date: Fri Nov 6 11:19:57 2015 +0900 staging: wilc1000: fixes prefer using the BIT macro This patch fixes the warning reported by checkpatch.pl for prefer using the BIT macro. And, removes unnecessary bit increase defines. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.h | 39 +++++++++++++----------------------- 1 file changed, 14 insertions(+), 25 deletions(-) commit 7cf241a1cdb481b14e4d55e10d4b45f78aa41df4 Author: Leo Kim Date: Fri Nov 6 11:19:56 2015 +0900 staging: wilc1000: wilc_wlan.h: alignment defines This patch fixes alignment of defines. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.h | 292 ++++++++++++++++++----------------- 1 file changed, 148 insertions(+), 144 deletions(-) commit 92e7d188860277bf539c247c262d5a7ae098deb4 Author: Leo Kim Date: Fri Nov 6 11:19:55 2015 +0900 staging: wilc1000: replace numeric type to kernel error type This patch replaces numeric type to generic type by kernel style. -5 -> -EIO -105 -> -ENOBUFS Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit ab12d8c773f86cbbd3773f65b355922fd13e5951 Author: Leo Kim Date: Fri Nov 6 11:19:54 2015 +0900 staging: wilc1000: remove warnings line over 80 characters This patch removes the warnings reported by checkpatch.pl for line over 80 characters. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 50 ++++++++++++++++++++++++------------ 1 file changed, 34 insertions(+), 16 deletions(-) commit 7df0bb0db516095d8b719e8dd0daca22b1daa248 Author: Leo Kim Date: Fri Nov 6 11:19:53 2015 +0900 staging: wilc1000: fixes possible unnecessary 'out of memory' message This patch fixes the warning reported by checkpatch.pl for possible unnecessary 'out of memory' message Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 1 - 1 file changed, 1 deletion(-) commit 706671db2f4714c1f5df65861d8b69a61ddd2da3 Author: Leo Kim Date: Fri Nov 6 11:19:52 2015 +0900 staging: wilc1000: fixes space prohibited between function name and open parenthesis This patch fixes the warning reported by checkpatch.pl for space prohibited between function name and open parenthesis '(' Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8e55639d066f4ef402ba88fca08ed1be70e1c4da Author: Leo Kim Date: Fri Nov 6 11:19:51 2015 +0900 staging: wilc1000: rename tcp_PendingAck_index of struct txq_entry_t This patch renames tcp_PendingAck_index of struct txq_entry_t to index to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 12 ++++++------ drivers/staging/wilc1000/wilc_wlan.h | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) commit 66a43a916263580a38f9882314f42ac864389ba2 Author: Leo Kim Date: Fri Nov 6 11:19:50 2015 +0900 staging: wilc1000: fixes alignment should match open parenthesis This patch fixes the checks reported by checkpatch.pl for alignment should match open parenthesis. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9962b1a0401801ef27c8403c7dec597ea6467e0f Author: Leo Kim Date: Fri Nov 6 11:19:49 2015 +0900 staging: wilc1000: wilc_wlan.c: remove unused pointer variables This patch removes unused two pointer variable. - Free_head - Alloc_head It's pointer variables unused inside code. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 3 --- 1 file changed, 3 deletions(-) commit 4878bd6c8cea8c7986a450c8fc5dd0148d233cf4 Author: Leo Kim Date: Fri Nov 6 11:13:10 2015 +0900 staging: wilc1000: rename drvHandler in wilc_wlan_cfg_get function This patch rename drvHandler to drv_handler that is fifth argument of wilc_wlan_cfg_get function to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 4 ++-- drivers/staging/wilc1000/wilc_wlan.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 9cd034b8418a8774ef57875e682bf71c9f2afca0 Author: Leo Kim Date: Fri Nov 6 11:13:09 2015 +0900 staging: wilc1000: rename drvHandler in wilc_wlan_cfg_set function This patch rename drvHandler to drv_handler that is seventh argument of wilc_wlan_cfg_set function to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 4 ++-- drivers/staging/wilc1000/wilc_wlan.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 486416798aa8ec2035492b2770104ba5d2a7da6d Author: Leo Kim Date: Fri Nov 6 11:13:08 2015 +0900 staging: wilc1000: rename drvHandler in wilc_wlan_cfg_commit function This patch rename drvHandler to drv_handler that is third argument of wilc_wlan_cfg_commit function to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 076ef657983d79221cb6f1c9628af2477ead6214 Author: Leo Kim Date: Fri Nov 6 11:13:07 2015 +0900 staging: wilc1000: fixes braces {} are not necessary for any arm of this statement This patch fixes the warning reported by checkpatch.pl for braces {} are not necessary for any arm of this statement Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 7eb17b8d4b49660d2e5c85b234194a0eb3b4e284 Author: Leo Kim Date: Fri Nov 6 11:13:06 2015 +0900 staging: wilc1000: fixes braces {} should be used on all arms of this statement This patch fixes the error reported by checkpatch.pl for braces {} should be used on all arms of this statement Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit aa313be3c596542872a1b4cef13a07036a72f422 Author: Leo Kim Date: Fri Nov 6 11:13:05 2015 +0900 staging: wilc1000: rename bValue in set_machw_change_vir_if function This patch rename bValue to value that is second argument of set_machw_change_vir_if function to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_netdevice.h | 2 +- drivers/staging/wilc1000/wilc_wlan.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 13b01e4095476a19d035effa558f791013b07aca Author: Leo Kim Date: Fri Nov 6 11:13:04 2015 +0900 staging: wilc1000: fixes a struct allocation to match coding standards This patch fixes the checks reported by checkpatch.pl for prefer kmalloc(sizeof(*rqe)...) over kmalloc(sizeof(struct rxq_entry_t)...) Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2f7c31fd9c81a428c024cf5c18eeac6202bfabd7 Author: Leo Kim Date: Fri Nov 6 11:13:03 2015 +0900 staging: wilc1000: rename pBSSID variable This patch rename the pBSSID variable to bssid to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 590c0a39650f0212a67141034156cd7452621619 Author: Leo Kim Date: Fri Nov 6 11:13:02 2015 +0900 staging: wilc1000: fixes else should follow close brace '}' This patch fixes the error reported by checkpatch.pl for else should follow close brace '}' Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit b1d19298aaca112c895b26df0488e9c3312a1bcf Author: Leo Kim Date: Fri Nov 6 11:13:01 2015 +0900 staging: wilc1000: rename pu32TxqCount in wilc_wlan_handle_txq function This patch rename pu32TxqCount to txq_count that is second argument of wilc_wlan_handle_txq function to avoid camelcase. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 4 ++-- drivers/staging/wilc1000/wilc_wlan.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 1b721bf03164854da11be947ebf2e9e89994050f Author: Leo Kim Date: Fri Nov 6 11:13:00 2015 +0900 staging: wilc1000: remove unused argument of chip_sleep_manually function This patch removes u32SleepTime that is second argument of chip_sleep_manually function because it is not used in this function. Remove argument in the function call also. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 3 +-- drivers/staging/wilc1000/wilc_wlan.c | 2 +- drivers/staging/wilc1000/wilc_wlan.h | 1 + 3 files changed, 3 insertions(+), 3 deletions(-) commit 1d401a4d66f6a3b1c70eec21288fe05d804d4bd8 Author: Leo Kim Date: Fri Nov 6 11:12:59 2015 +0900 staging: wilc1000: fixes a struct allocation to match coding standards This patch fixes the checks reported by checkpatch.pl for prefer kmalloc(sizeof(*tqe)...) over kmalloc(sizeof(struct txq_entry_t)...) Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 44c4417d1b2b3a05c9dd8f653915d2c3a6de4182 Author: Leo Kim Date: Fri Nov 6 11:12:58 2015 +0900 staging: wilc1000: rename is_TCP_ACK_Filter_Enabled function This patch rename the is_TCP_ACK_Filter_Enabled function to is_tcp_ack_filter_enabled to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b9e04aa648fccd5d82067a12bc11359ac8b8b8ee Author: Leo Kim Date: Fri Nov 6 11:12:57 2015 +0900 staging: wilc1000: rename Enable_TCP_ACK_Filter function This patch rename the Enable_TCP_ACK_Filter function to enable_tcp_ack_filter to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 4 ++-- drivers/staging/wilc1000/wilc_wfi_cfgoperations.h | 2 +- drivers/staging/wilc1000/wilc_wlan.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit 7c4bafe9e0ec64dd76d6a87633fea1739ef236de Author: Leo Kim Date: Fri Nov 6 11:12:56 2015 +0900 staging: wilc1000: rename EnableTCPAckFilter variable This patch rename the EnableTCPAckFilter variable to enabled to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 442eda4ecb614caaec605a17a1c57fecbd7bd72f Author: Leo Kim Date: Fri Nov 6 11:12:55 2015 +0900 staging: wilc1000: rename Dropped variable This patch rename the Dropped variable to dropped to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 4478c62aa44c5caaaf6bb4d7917a3eacda214d2a Author: Leo Kim Date: Fri Nov 6 11:12:54 2015 +0900 staging: wilc1000: remove warnings line over 80 characters This patch removes the warnings reported by checkpatch.pl for line over 80 characters. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit f91c5d77163f76ad8c6f2ea3dd84e0c03406b38b Author: Leo Kim Date: Fri Nov 6 11:12:53 2015 +0900 staging: wilc1000: rename Ack_no variable This patch rename the Ack_no variable to ack_no to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 51bffa96338821d76aa4d61db1ed68c118cd36ed Author: Leo Kim Date: Fri Nov 6 11:12:52 2015 +0900 staging: wilc1000: rename Data_offset variable This patch rename the Data_offset variable to data_offset to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 24e2dac20c10576d7dac4ca2f93918c397801c57 Author: Leo Kim Date: Fri Nov 6 11:12:51 2015 +0900 staging: wilc1000: rename Total_Length variable This patch rename the Total_Length variable to total_length to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 6ef3be9fb76c626541d80c273c13a56228b38731 Author: Leo Kim Date: Fri Nov 6 11:12:50 2015 +0900 staging: wilc1000: remove do-nothing else condition case. This patch removes do-nothing else condition case. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 3 --- 1 file changed, 3 deletions(-) commit ea03f57b91dfcd23df11861b212949b1b967374c Author: Leo Kim Date: Fri Nov 6 11:12:49 2015 +0900 staging: wilc1000: rename Session_index member variable This patch rename the Ack Session_index variable to session_index to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b801a96c65b9d0fe64f2ce80bec2dd781127eb2f Author: Leo Kim Date: Fri Nov 6 11:12:48 2015 +0900 staging: wilc1000: rename Ack member variable This patch rename the Ack member variable to ack to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit bdc13ad502e3370dbdf285eea0d8f7fe4930fa89 Author: Leo Kim Date: Fri Nov 6 11:12:47 2015 +0900 staging: wilc1000: rename add_TCP_Pending_Ack function This patch rename the add_TCP_Pending_Ack function to add_tcp_pending_ack to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit bbf3dbd7dd5e4a798936cf1ce624d76f5ec37780 Author: Leo Kim Date: Fri Nov 6 11:12:46 2015 +0900 staging: wilc1000: rename Update_TCP_track_session function This patch rename the Update_TCP_track_session function to update_tcp_session to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 67620788526cec1bcd5e5ff44b529d24f104172e Author: Leo Kim Date: Fri Nov 6 11:12:45 2015 +0900 staging: wilc1000: rename add_TCP_track_session function This patch rename the add_TCP_track_session function to add_tcp_session to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ef06b5f7330182604c348b7ee8fef6620bc5a44e Author: Leo Kim Date: Fri Nov 6 11:12:44 2015 +0900 staging: wilc1000: rename Init_TCP_tracking function This patch rename the Init_TCP_tracking function to init_tcp_tracking to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d12ac7e2b0c9bcdf9bee0a54424f4e9f270c19a0 Author: Leo Kim Date: Fri Nov 6 11:12:43 2015 +0900 staging: wilc1000: rename Pending_Acks variable This patch rename the Pending_Acks variable to pending_acks to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 3056ec39f864ee10be71433c5347338c1a281c27 Author: Leo Kim Date: Fri Nov 6 11:12:42 2015 +0900 staging: wilc1000: rename Opened_TCP_session variable This patch rename the Opened_TCP_session variable to tcp_session to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 2ae91edb52caf62309b737d904d365a4d8fcfd19 Author: Leo Kim Date: Fri Nov 6 11:12:41 2015 +0900 staging: wilc1000: rename PendingAcks_arrBase variable This patch rename the PendingAcks_arrBase variable to pending_base to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 2bb170876813491d74f09820424ee5d054f2b40b Author: Leo Kim Date: Fri Nov 6 11:12:40 2015 +0900 staging: wilc1000: rename Pending_Acks_info variable This patch rename the Pending_Acks_info variable to pending_acks_info to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit 32065054ceabfea7a65cb116e39221fac6e46d1e Author: Leo Kim Date: Fri Nov 6 11:12:39 2015 +0900 staging: wilc1000: rename Acks_keep_track_info variable This patch rename the Acks_keep_track_info variable to ack_session_info to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 841369782d9a4b5105a80bc15baca8907fd35e53 Author: Leo Kim Date: Fri Nov 6 11:12:38 2015 +0900 staging: wilc1000: rename Session_index of struct pending_acks_info This patch rename Session_index of struct pending_acks_info to session_index to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 08b90b106cc754206199e74b9512551bc426af15 Author: Leo Kim Date: Fri Nov 6 11:12:37 2015 +0900 staging: wilc1000: remove typedef of struct Pending_Acks_info_t This patch remove typedef of struct Pending_Acks_info_t. And, rename the Pending_Acks_info_t to pending_acks_info. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 9d54d3d5d51fa3d0633e70bf02d732ea86d60581 Author: Leo Kim Date: Fri Nov 6 11:12:36 2015 +0900 staging: wilc1000: rename Bigger_Ack_num of struct ack_session_info This patch rename Bigger_Ack_num of struct ack_session_info to bigger_ack_num to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit d06b6cb2c06b641765ead77dca42513ce0c138a0 Author: Leo Kim Date: Fri Nov 6 11:12:35 2015 +0900 staging: wilc1000: rename Ack_seq_num of struct ack_session_info This patch rename Ack_seq_num of struct ack_session_info to seq_num to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 130a41f0c73bce3195dbf6e667cc1d8bfa6f7e54 Author: Leo Kim Date: Fri Nov 6 11:12:34 2015 +0900 staging: wilc1000: rename Ack_session_info struct variable This patch rename Ack_session_info struct variable to ack_session_info to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit eb59da3be9054bf76cb159f7bcb90a8f74228dff Author: Leo Kim Date: Fri Nov 6 11:12:33 2015 +0900 staging: wilc1000: rename Statisitcs_DroppedAcks variable This patch rename Statisitcs_DroppedAcks variable to dropped_acks to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 821466d2fe8f6932c32ad86b8b36235aed644733 Author: Leo Kim Date: Fri Nov 6 11:12:32 2015 +0900 staging: wilc1000: rename Statisitcs_totalAcks variable This patch rename Statisitcs_totalAcks variable to total_acks to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a4b1719728652406913f13c99d725dd35515b372 Author: Leo Kim Date: Fri Nov 6 11:12:31 2015 +0900 staging: wilc1000: replace explicit NULL comparisons with ! This patch replace explicit NULL comparison with ! operator to simplify code. Reported by checkpatch.pl for Comparison to NULL could be written "!XXX" or "XXX". Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) commit b7d1e18c278fe01f77a428b88bf750fc9ee6742e Author: Leo Kim Date: Fri Nov 6 11:12:30 2015 +0900 staging: wilc1000: rename genuChipPSstate variable This patch rename genuChipPSstate variable to chip_ps_state to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 8739eeba4b8b2549170baf01fd70f15db3acc781 Author: Leo Kim Date: Fri Nov 6 11:12:29 2015 +0900 staging: wilc1000: fixes missing a blank line after declarations This patch fixes the warnings reported by checkpatch.pl for Missing a blank line after declarations. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 2 ++ 1 file changed, 2 insertions(+) commit 2d6973e6cd17a66d6904288993466a64ba0b9855 Author: Leo Kim Date: Fri Nov 6 11:12:28 2015 +0900 staging: wilc1000: fixes add blank line after function declaration This patch fixes the warnings reported by checkpatch.pl for please use a blank line after function/struct/union/enum declarations Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 0edeea292b29efd1a898dc040a4e66c94c846c1a Author: Leo Kim Date: Fri Nov 6 11:12:27 2015 +0900 staging: wilc1000: fixes blank lines aren't necessary brace This patch fixes the checks reported by checkpatch.pl for Blank lines aren't necessary after an open brace '{' and Blank lines aren't necessary before a close brace '}'. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 24 ------------------------ 1 file changed, 24 deletions(-) commit 85489fe17a341b9ab6ef18374b25f5a267bbf04e Author: Leo Kim Date: Fri Nov 6 11:12:26 2015 +0900 staging: wilc1000: fixes please don't use multiple blank lines This patch fixes the checks reported by checkpatch.pl for Please don't use multiple blank lines. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 48 ------------------------------------ 1 file changed, 48 deletions(-) commit ac087c82c4ec088c31a117e209a7367dc68ed854 Author: Leo Kim Date: Fri Nov 6 11:12:25 2015 +0900 staging: wilc1000: wilc_wlan.c: remove over-commenting There are over-commenting in the wilc_wlan.c file and most of them are not helpful to explain what the code does and generate 80 ending line over warnings. So, all of comments are removed in this patch and the comments will later be added if necessary with the preferred Linux style. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 330 +++-------------------------------- 1 file changed, 27 insertions(+), 303 deletions(-) commit c8537e6dbaaeb259e6e29259cf3fd224a7f480ba Author: Leo Kim Date: Fri Nov 6 11:12:24 2015 +0900 staging: wilc1000: fixes that open brace { should be on the previous line This patch fixes the error reported by checkpatch.pl for that open brace { should be on the previous line. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit b38e903090e12503a21183916ec8e5101b3ed610 Author: Leo Kim Date: Fri Nov 6 11:12:23 2015 +0900 staging: wilc1000: fixes a struct allocation to match coding standards This patch fixes the checks reported by checkpatch.pl for prefer kmalloc(sizeof(*tx_data)...) over kmalloc(sizeof(struct tx_complete_data)...) Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 83231b7233bfc924e7059512f3c497c8e90f2c2b Author: Leo Kim Date: Fri Nov 6 11:12:22 2015 +0900 staging: wilc1000: fixes alignment should match open parenthesis This patch fixes the checks reported by checkpatch.pl for alignment should match open parenthesis Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit b22fa80cdbf4ff1056ecddb4efdcc0ede5f5f422 Author: Glen Lee Date: Thu Nov 5 16:12:08 2015 +0900 staging: wilc1000: fix kbuild test robot error This patch fixes build warning and error reported by kbuild test robot. It is fixed by including netdevice.h. >> drivers/staging/wilc1000/wilc_wlan_if.h:940:27: warning: 'struct net_device' declared inside parameter list int wilc_wlan_init(struct net_device *dev, wilc_wlan_inp_t *inp); >> drivers/staging/wilc1000/wilc_wlan_if.h:940:27: warning: its scope is only this definition or declaration, which is probably not what you want >> drivers/staging/wilc1000/wilc_wlan.c:1954:5: error: conflicting types for 'wilc_wlan_init' int wilc_wlan_init(struct net_device *dev, wilc_wlan_inp_t *inp) Fixes: 30135ce ("staging: wilc1000: wilc_wlan_init: add argument struct net_device") Reported-by: kbuild test robot Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan_if.h | 1 + 1 file changed, 1 insertion(+) commit fd8f03671b991031e4ed0f2840e36a3607aa57b2 Author: Leo Kim Date: Thu Nov 5 14:36:39 2015 +0900 staging: wilc1000: rename pu8UdpBuffer of mac_xmit function This patch rename pu8UdpBuffer variable of mac_xmit function to udp_buf to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 44ec3b75a68e071fbc4f30387a02f93ba1a3b358 Author: Leo Kim Date: Thu Nov 5 14:36:38 2015 +0900 staging: wilc1000: rename QueueCount of mac_xmit function This patch rename QueueCount variable of mac_xmit function to queue_count to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 9457b05ec50de47db5144c7747a4d0ca888bcb41 Author: Leo Kim Date: Thu Nov 5 14:36:37 2015 +0900 staging: wilc1000: rename s32Error of mac_ioctl function This patch rename s32Error variable of mac_ioctl function to ret to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit e5f352441b5eace23a402b3919e02852505cf6e7 Author: Leo Kim Date: Thu Nov 5 14:36:36 2015 +0900 staging: wilc1000: rename host_int_get_MacAddress function This patch rename host_int_get_MacAddress function to hif_get_mac_address to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 2 +- drivers/staging/wilc1000/host_interface.h | 2 +- drivers/staging/wilc1000/linux_wlan.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 2ad8c47d5c6c989cd7a1fd3eeb4e3c7c09dd327b Author: Leo Kim Date: Thu Nov 5 14:36:35 2015 +0900 staging: wilc1000: rename Set_machw_change_vir_if function This patch rename Set_machw_change_vir_if function to set_machw_change_vir_if to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 6 +++--- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 2 +- drivers/staging/wilc1000/wilc_wlan.c | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) commit 339d244a124da49ba1100189cf881448a30b8774 Author: Leo Kim Date: Thu Nov 5 14:36:34 2015 +0900 staging: wilc1000: remove goto from mac_open This patch removes goto from mac_open function. If address is invalid, goto handles deinit process and return result. So, just call deinit process and return the error value directly instead of goto statement. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit 6bc72c5ac7996819961bf65d64693efd3135ea42 Author: Leo Kim Date: Thu Nov 5 14:36:33 2015 +0900 staging: wilc1000: remove goto from wlan_initialize_threads This patch remove goto feature from wlan_initialize_threads function. Goto feature is 'wilc->close=0' & return result. So, remove goto feature and it was replaced with the return value directly, as well as removed unused ret variable. Also, execute 'wilc->close=0' before return. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit a40b22c544ce6bd70f14cf8c5fcb07ef5e64e5d5 Author: Leo Kim Date: Thu Nov 5 14:36:32 2015 +0900 staging: wilc1000: fixes missing a blank line after declarations This patch fixes the warnings reported by checkpatch.pl for Missing a blank line after declarations. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 2 ++ 1 file changed, 2 insertions(+) commit 14b1821dd2ee72ac5ce360c8a420f4e87b0e923a Author: Leo Kim Date: Thu Nov 5 14:36:31 2015 +0900 staging: wilc1000: remove goto from linux_wlan_firmware_download This patch remove goto feature from linux_wlan_firmware_download function. Goto feature is return result. So, remove goto functions and it was replaced with the return value directly. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 0aeea1ad2ab342153019b676a2d3cbbb45669c79 Author: Leo Kim Date: Thu Nov 5 14:36:30 2015 +0900 staging: wilc1000: remove goto from linux_wlan_start_firmware This patch remove goto feature from linux_wlan_start_firmware function. Goto feature is return result. So, remove goto functions and it was replaced with the return value directly. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 1b7a93ad9a5ebdef7968d2bf6c5ebd1db2c3e022 Author: Leo Kim Date: Thu Nov 5 14:36:29 2015 +0900 staging: wilc1000: fixes braces {} should be used on all arms of this statement This patch fixes the checks reported by checkpatch.pl for braces {} should be used on all arms of this statement. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit f66dee7bfd5d378351c435ad8d49b7b8c2f1b665 Author: Leo Kim Date: Thu Nov 5 14:36:28 2015 +0900 staging: wilc1000: rename pBSSID of function linux_wlan_set_bssid This patch renames pBSSID of function linux_wlan_set_bssid to bssid to avoid CamelCase naming convention. Also, prototype linux_wlan_set_bssid in wilc_wfi_cfgoperations.c is moved to wilc_wfi_netdevice.h. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 4 ++-- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 2 -- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 1 + 3 files changed, 3 insertions(+), 4 deletions(-) commit 660786eae129346c31f79d73a6ff3c8d3f70fd45 Author: Leo Kim Date: Thu Nov 5 14:36:27 2015 +0900 staging: wilc1000: rename Bssid1 of function get_if_handler This patch renames Bssid1 of function get_if_handler to bssid1 to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit d239222e82a209af611840b2a7cd72c26944eb12 Author: Leo Kim Date: Thu Nov 5 14:36:26 2015 +0900 staging: wilc1000: rename Bssid of function get_if_handler This patch renames Bssid of function get_if_handler to bssid to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 51456c2a6152130d093d81f1148383aae09cb355 Author: Leo Kim Date: Thu Nov 5 14:36:25 2015 +0900 staging: wilc1000: rename pMacHeader of function get_if_handler This patch renames pMacHeader of function get_if_handler to mac_header to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 7e725b474baf922c2c6fe6cdae7bbb81abe55a64 Author: Leo Kim Date: Thu Nov 5 14:36:24 2015 +0900 staging: wilc1000: rename function GetIfHandler This patch renames GetIfHandler function name to get_if_handler to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3d6d8cd890afa9c2bcdc19e5b77e450717f1c7e7 Author: Leo Kim Date: Thu Nov 5 14:36:23 2015 +0900 staging: wilc1000: remove do-nothing if condition case. This patch removes do-nothing if condition case. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 3 --- 1 file changed, 3 deletions(-) commit 5191d771ca3c4e65b338e7d66a457b2341d76ed1 Author: Leo Kim Date: Thu Nov 5 14:36:22 2015 +0900 staging: wilc1000: fixes add spaces required around that '&&' This patch fixes add to spaces around that '&&' or '||'. Reported by checkpatch.pl for spaces required around that '&&' or '||' (ctx:VxE). Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 582f8a2710f4fc78edfe2b33ebf6598fe02e9688 Author: Leo Kim Date: Thu Nov 5 14:36:21 2015 +0900 staging: wilc1000: remove warnings line over 80 characters This patch removes the warnings reported by checkpatch.pl for line over 80 characters. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 40 +++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 13 deletions(-) commit 7df00115f820d66d362820306438e73fcccf16d0 Author: Leo Kim Date: Thu Nov 5 14:36:20 2015 +0900 staging: wilc1000: remove extern function in c file and move it to header file. This patch removes extern resolve_disconnect_aberration in c file and move it to proper header file. Rename argument also to match with declaration. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.h | 2 +- drivers/staging/wilc1000/linux_wlan.c | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) commit 84d3b87e8b0d10088515da69829fc623833661c4 Author: Leo Kim Date: Thu Nov 5 14:36:19 2015 +0900 staging: wilc1000: linux_wlan: remove unused defines This patch removes unused defines from linux_wlan.c file. - NM73131 - PLAT_CLM9722 Two defines are support custom feature that don't used anymore. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit 98b8984794803a59587840d5261d5e5ec8e0d031 Author: Leo Kim Date: Thu Nov 5 14:36:18 2015 +0900 staging: wilc1000: linux_wlan.c: clean up comments There are over-commenting in the linux_wlan.c file and most of them are not helpful to explain what the code does and generate 80 ending line over warnings. So, all of comments and commented codes are removed in this patch. Comment will be added if necessary with the preferred Linux style. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 219 ++++------------------------------ 1 file changed, 26 insertions(+), 193 deletions(-) commit 20fa54e44326bbff3632a3a5800d3f10fdd1e760 Author: Leo Kim Date: Thu Nov 5 14:36:17 2015 +0900 staging: wilc1000: fixes blank lines aren't necessary brace This patch fixes the checks reported by checkpatch.pl for Blank lines aren't necessary after an open brace '{' and Blank lines aren't necessary before a close brace '}'. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 21 --------------------- 1 file changed, 21 deletions(-) commit eac3e8f6b86064da961f4874a052713ac0ab4824 Author: Leo Kim Date: Thu Nov 5 14:36:16 2015 +0900 staging: wilc1000: rename pIP_Add_buff of function dev_state_ev_handler This patch renames pIP_Add_buff of function dev_state_ev_handler to ip_addr_buf to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) commit 2db2c8a71b9c121e8ec23809605d18e708b7af09 Author: Leo Kim Date: Thu Nov 5 14:36:15 2015 +0900 staging: wilc1000: rename pstrWFIDrv of function mac_close This patch renames pstrWFIDrv of function mac_close to hif_drv to avoid CamelCase naming convention. And, some debug print modification that has been included name 'pstrWFIDrv'. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit ef7606c5c3b3563970ddd3780b44bbe0144f10f4 Author: Leo Kim Date: Thu Nov 5 14:36:14 2015 +0900 staging: wilc1000: rename pstrWFIDrv of function wilc_set_multicast_list This patch renames pstrWFIDrv of function wilc_set_multicast_list to hif_drv to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 0fa66c7143a367964fd4afb0c3c58b8f76d76544 Author: Leo Kim Date: Thu Nov 5 14:36:13 2015 +0900 staging: wilc1000: rename pstrWFIDrv of function linux_wlan_init_test_config This patch renames pstrWFIDrv of function linux_wlan_init_test_config to hif_drv to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit f24374aa02bb9b4b38d5ca4db0ced3caf2982313 Author: Leo Kim Date: Thu Nov 5 14:36:12 2015 +0900 staging: wilc1000: rename pstrWFIDrv of function dev_state_ev_handler This patch renames pstrWFIDrv of function dev_state_ev_handler to hif_drv to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 682d7c95f8cff2f03839e0d0e66f93af3b621f67 Author: Leo Kim Date: Thu Nov 5 14:36:11 2015 +0900 staging: wilc1000: linux_wlan: remove unused define CUSTOMER_PLATFORM This patch remove unused define CUSTOMER_PLATFORM from linux_wlan.c. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 15 --------------- 1 file changed, 15 deletions(-) commit 3a147c07ca4c2048eb9861def7253cd21bf21d77 Author: Leo Kim Date: Thu Nov 5 14:36:10 2015 +0900 staging: wilc1000: replace explicit NULL comparisons with ! This patch replace explicit NULL comparison with ! or unmark operator to simplify code. Reported by checkpatch.pl for comparison to NULL could be written "!XXX" or "XXX". Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 45 ++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 22 deletions(-) commit fb70e9f5bd4b9d00e6a3e3946a9ed46bb4babd8c Author: Leo Kim Date: Thu Nov 5 14:36:09 2015 +0900 staging: wilc1000: rename gau8MulticastMacAddrList variable This patch renames gau8MulticastMacAddrList variable to multicast_mac_addr_list to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 5 +++-- drivers/staging/wilc1000/linux_wlan.c | 11 ++++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) commit 3b840e494910df8150beea57d0c56a9720eb4eac Author: Leo Kim Date: Thu Nov 5 14:36:08 2015 +0900 staging: wilc1000: remove return type of Handle_wait_msg_q_empty This patch changes return type of Handle_wait_msg_q_empty from s32 with void because return value is not used. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 02ae2bdfe1400b00586f0dc439b318b17119027d Author: Leo Kim Date: Thu Nov 5 14:36:07 2015 +0900 staging: wilc1000: rename strHostIFCfgParamAttr of fuction Handle_CfgParam This patch renames strHostIFCfgParamAttr of fuction Handle_CfgParam to cfg_param_attr to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 154 ++++++++++++++++-------------- 1 file changed, 83 insertions(+), 71 deletions(-) commit 7f0ee9a69ef207ba0a0bd381620eb89bd92d9fe5 Author: Leo Kim Date: Thu Nov 5 14:36:06 2015 +0900 staging: wilc1000: rename pstrHostIfGetMacAddress of fuction Handle_GetMacAddress This patch renames pstrHostIfGetMacAddress of fuction Handle_GetMacAddress to get_mac_addr to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 090dbb10149b17869b7a7740e59a0d5c4832348c Author: Leo Kim Date: Thu Nov 5 14:36:05 2015 +0900 staging: wilc1000: rename pstrHostIfSetMacAddress of fuction Handle_SetMacAddress This patch renames pstrHostIfSetMacAddress of fuction Handle_SetMacAddress to set_mac_addr to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c033cdafb73286fdce714a69daace81ec5ff8558 Author: Leo Kim Date: Thu Nov 5 14:36:04 2015 +0900 staging: wilc1000: remove unused parameter of fuction Handle_get_IPAddress This patch removes parameter pu8IPAddr of fuction Handle_get_IPAddress because it is not used in the function. Remove argument in the function call also. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ebc57d194fc7aca973055b0b38a3b7f52df6ad78 Author: Leo Kim Date: Thu Nov 5 14:36:03 2015 +0900 staging: wilc1000: rename firmwareIPAddress of fuction Handle_set_IPAddress This patch renames firmwareIPAddress of fuction Handle_set_IPAddress to firmware_ip_addr to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a6527c3b36957d180f4ae2594bbae8ea3ef02bca Author: Leo Kim Date: Thu Nov 5 14:36:02 2015 +0900 staging: wilc1000: rename pu8IPAddr of fuction Handle_set_IPAddress This patch renames pu8IPAddr of fuction Handle_set_IPAddress to ip_addr to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit 30cbaa7f17e5c55b4e28274c9896d6fb4fec3f90 Author: Glen Lee Date: Tue Nov 3 16:21:01 2015 +0900 staging: wilc1000: send_config_pkt: remove unnecessary blank line This patch remove unnecessary blank line which is reported by checkpatch.pl Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 1 - 1 file changed, 1 deletion(-) commit 50327db7175a6109b8d35475c7735a30645751b0 Author: Glen Lee Date: Tue Nov 3 16:20:58 2015 +0900 staging: wilc1000: change enum variable name with lower case This patch changes WID_TYPE with wid_type which is preferred style. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.h | 2 +- drivers/staging/wilc1000/wilc_wlan_if.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 90b984c8558ba6af99ca32931be5c1bb21c34271 Author: Glen Lee Date: Thu Oct 29 12:18:50 2015 +0900 staging: wilc1000: wl_wlan_cleanup: add argument struct wilc This patch adds new argument struct wilc and use it instead of g_linux_wlan. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 28 +++++++++++++-------------- drivers/staging/wilc1000/linux_wlan_sdio.c | 2 +- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 2 +- 3 files changed, 16 insertions(+), 16 deletions(-) commit 65c8adcfd8740976eb471272741278989e4441fd Author: Glen Lee Date: Thu Oct 29 12:18:49 2015 +0900 staging: wilc1000: linux_wlan_get_firmware: change argument p_nic with dev This patch changes argument perInterface_wlan_t *p_nic with struct net_device *dev and use netdev private data nic and it's member wilc instead of g_linux_wlan. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 17 ++++++++++------- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 4 +--- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 1 + 3 files changed, 12 insertions(+), 10 deletions(-) commit ae6f772ddf715599d5d23d498f368e389735aac5 Author: Glen Lee Date: Thu Oct 29 12:18:48 2015 +0900 staging: wilc1000: wilc_wlan_init: add argument net_device This patch adds new argument struct net_device and pass the function dev. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 47a466f1d8569b7122bf782b19ee7ba35b2c8873 Author: Glen Lee Date: Thu Oct 29 12:18:47 2015 +0900 staging: wilc1000: wilc_wlan_init: add argument struct net_device This patch adds an argument dev and pass dev to the function. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 2 +- drivers/staging/wilc1000/wilc_wlan.c | 2 +- drivers/staging/wilc1000/wilc_wlan_if.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 9bf3d7274516debe31e710a209e7d59ffc49d9c0 Author: Glen Lee Date: Thu Oct 29 12:18:46 2015 +0900 staging: wilc1000: linux_wlan_start_firmware: change argument with dev This patch changes argument nic with dev and use netdev private data member wilc instead of g_linux_wlan, and pass dev to the function as well. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 32f033287bdf1420b86fd459cbd19c060053037c Author: Glen Lee Date: Thu Oct 29 12:18:45 2015 +0900 staging: wilc1000: wilc_wlan_txq_add_to_tail: add argument net_device This patch adds new argument dev and use netdev private data member wilc instead of g_linux_wlan, pass the function dev also. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) commit 829c477fd4811f7f1b90d8d4fa132d66e193689c Author: Glen Lee Date: Thu Oct 29 12:18:44 2015 +0900 staging: wilc1000: wilc_wlan_txq_add_mgmt_pkt: add new argument dev This patch adds new argument struct net_device *dev and pass argument struct net_device to the function. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_mon.c | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 4 ++-- drivers/staging/wilc1000/wilc_wlan.c | 3 ++- drivers/staging/wilc1000/wilc_wlan.h | 4 ++-- 4 files changed, 7 insertions(+), 6 deletions(-) commit 718fc2c9d4145ade7c97bbeb4f0a5c0e7e800cdd Author: Glen Lee Date: Thu Oct 29 12:18:43 2015 +0900 staging: wilc1000: wilc_wlan_txq_remove_from_head: add new argument dev Add new argument dev and use it instead of g_linux_wlan, and pass argument dev to the function as well. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) commit ed760b67f283756cca401085519f0ff1a0996624 Author: Glen Lee Date: Thu Oct 29 12:18:42 2015 +0900 staging: wilc1000: linux_wlan_firmware_download: change argument This patch changes argument p_nic with wilc and use it instead of g_linux_wlan. Pass argument dev to the function. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) commit 7af0522c99cf9b12f156267fa4185208e90cf4c6 Author: Glen Lee Date: Thu Oct 29 12:18:41 2015 +0900 staging: wilc1000: wilc_wlan_txq_get_first: add argument struct wilc This patch adds new argument struct wilc and use it instead of g_linux_wlan. Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit acff1d71f722f00ef1929df1d3b55bb65322f754 Author: Leo Kim Date: Thu Oct 29 12:05:56 2015 +0900 staging: wilc1000: rename pstrHostIfSetOperationMode of fuction Handle_SetOperationMode This patch renames pstrHostIfSetOperationMode of fuction Handle_SetOperationMode to hif_op_mode to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 6b73c7442597ceb664dc02514798c4d5184bd702 Author: Leo Kim Date: Thu Oct 29 12:05:55 2015 +0900 staging: wilc1000: rename pstrHostIfSetDrvHandler of fuction Handle_SetWfiDrvHandler This patch renames pstrHostIfSetDrvHandler of fuction Handle_SetWfiDrvHandler to hif_drv_handler to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 9cf7878c20f9fc7311cbf6f5a34599f769c70882 Author: Leo Kim Date: Thu Oct 29 12:05:54 2015 +0900 staging: wilc1000: rename pstrHostIFSetChan of fuction Handle_SetChannel This patch renames pstrHostIFSetChan of fuction Handle_SetChannel to hif_set_ch to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 67ab64e44c4658e99d11835913ec30fdb0dba634 Author: Leo Kim Date: Thu Oct 29 12:05:53 2015 +0900 staging: wilc1000: rename u16FlagsSet of struct add_sta_param This patch renames u16FlagsSet of struct add_sta_param to flags_set to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/host_interface.h | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 10 ++++++---- 3 files changed, 9 insertions(+), 7 deletions(-) commit f676e17a716d109b853a6237ffe6c9137c9e3b92 Author: Leo Kim Date: Thu Oct 29 12:05:52 2015 +0900 staging: wilc1000: rename u16FlagsMask of struct add_sta_param This patch renames u16FlagsMask of struct add_sta_param to flags_mask to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/host_interface.h | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 10 ++++++---- 3 files changed, 9 insertions(+), 7 deletions(-) commit a486baff710b4f761749ca16e3ff6b1cb0fe63dd Author: Leo Kim Date: Thu Oct 29 12:05:51 2015 +0900 staging: wilc1000: rename u8ASELCap of struct add_sta_param This patch renames u8ASELCap of struct add_sta_param to ht_ante_sel to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 2 +- drivers/staging/wilc1000/host_interface.h | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 11 ++++++----- 3 files changed, 8 insertions(+), 7 deletions(-) commit 74fe73cf081f98b90aa7914fa3f879bf77e31f78 Author: Leo Kim Date: Thu Oct 29 12:05:50 2015 +0900 staging: wilc1000: rename u32TxBeamformingCap of struct add_sta_param This patch renames u32TxBeamformingCap of struct add_sta_param to ht_tx_bf_cap to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 8 ++++---- drivers/staging/wilc1000/host_interface.h | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 10 ++++++---- 3 files changed, 11 insertions(+), 9 deletions(-) commit 223741d71ee66e311a34176f154d979a62b32a70 Author: Leo Kim Date: Thu Oct 29 12:05:49 2015 +0900 staging: wilc1000: rename u16HTExtParams of struct add_sta_param This patch renames u16HTExtParams of struct add_sta_param to ht_ext_params to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/host_interface.h | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 10 ++++++---- 3 files changed, 9 insertions(+), 7 deletions(-) commit 5ebbf4f74888f8ef9ee07864de6251dd81d1a359 Author: Leo Kim Date: Thu Oct 29 12:05:48 2015 +0900 staging: wilc1000: rename au8SuppMCsSet of struct add_sta_param This patch renames au8SuppMCsSet of struct add_sta_param to ht_supp_mcs_set to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 3 ++- drivers/staging/wilc1000/host_interface.h | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 8 ++++++-- 3 files changed, 9 insertions(+), 4 deletions(-) commit fba1f2d221b806b8e0e31939c595f05a87e3bf36 Author: Leo Kim Date: Thu Oct 29 12:05:47 2015 +0900 staging: wilc1000: rename u8AmpduParams of struct add_sta_param This patch renames u8AmpduParams of struct add_sta_param to ht_ampdu_params to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 2 +- drivers/staging/wilc1000/host_interface.h | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 10 ++++++---- 3 files changed, 8 insertions(+), 6 deletions(-) commit 0d073f69b1823e7f0f8252bcbfffe25fffdb6723 Author: Leo Kim Date: Thu Oct 29 12:05:46 2015 +0900 staging: wilc1000: rename u16HTCapInfo of struct add_sta_param This patch renames u16HTCapInfo of struct add_sta_param to ht_capa_info to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/host_interface.h | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 10 ++++++---- 3 files changed, 9 insertions(+), 7 deletions(-) commit 2252012081cf155e31c82bd901032b17f6705c90 Author: Leo Kim Date: Thu Oct 29 12:05:45 2015 +0900 staging: wilc1000: rename bIsHTSupported of struct add_sta_param This patch renames bIsHTSupported of struct add_sta_param to ht_supported to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 2 +- drivers/staging/wilc1000/host_interface.h | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 14 ++++++++------ 3 files changed, 10 insertions(+), 8 deletions(-) commit a622e01645f650f217bbb0248b741fa83b3e5027 Author: Leo Kim Date: Thu Oct 29 12:05:44 2015 +0900 staging: wilc1000: rename pu8Rates of struct add_sta_param This patch renames pu8Rates of struct add_sta_param to rates to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 14 +++++++------- drivers/staging/wilc1000/host_interface.h | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) commit e734223cd8819bb07b671afa5a25e0ca6abaa3a9 Author: Leo Kim Date: Thu Oct 29 12:05:43 2015 +0900 staging: wilc1000: rename u8NumRates of struct add_sta_param This patch renames u8NumRates of struct add_sta_param to rates_len to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 27 +++++++++++++---------- drivers/staging/wilc1000/host_interface.h | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 10 +++++---- 3 files changed, 22 insertions(+), 17 deletions(-) commit 4101eb8a0cd4ec53ead18d49314271e83f18bcab Author: Leo Kim Date: Thu Oct 29 12:05:42 2015 +0900 staging: wilc1000: rename u16AssocID of struct add_sta_param This patch renames u16AssocID of struct add_sta_param to aid to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/host_interface.h | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) commit 2353c388de7719f8b566fc68f8499018cb5b4a56 Author: Leo Kim Date: Thu Oct 29 12:05:41 2015 +0900 staging: wilc1000: rename au8BSSID of struct add_sta_param This patch renames au8BSSID of struct add_sta_param to bssid to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 2 +- drivers/staging/wilc1000/host_interface.h | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 10 ++++++---- 3 files changed, 8 insertions(+), 6 deletions(-) commit ab16ec0b813f9f52780e6e43549e7ae171e0b3a9 Author: Leo Kim Date: Thu Oct 29 12:05:40 2015 +0900 staging: wilc1000: rename u8P2PConnect of struct host_if_drv This patch renames u8P2PConnect of struct host_if_drv to p2p_connect to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.h | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) commit 1229b1ab414c9bb6eebddbf457f324211bf79a79 Author: Leo Kim Date: Thu Oct 29 12:05:39 2015 +0900 staging: wilc1000: rename u64P2p_MgmtTimeout of struct host_if_drv This patch renames u64P2p_MgmtTimeout of struct host_if_drv to p2p_timeout to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 2 +- drivers/staging/wilc1000/host_interface.h | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 12 ++++++------ 3 files changed, 8 insertions(+), 8 deletions(-) commit 9d764e38d31389d7362a94361cccbc347878d1d3 Author: Leo Kim Date: Thu Oct 29 12:05:38 2015 +0900 staging: wilc1000: rename u32ListenSessionID of struct remain_ch This patch renames u32ListenSessionID of struct remain_ch to id to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 10 +++++----- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) commit 7d06972827829c6b7166314681548a57bb8e3586 Author: Leo Kim Date: Thu Oct 29 12:05:37 2015 +0900 staging: wilc1000: rename tenuAuth_type of struct user_conn_req This patch renames tenuAuth_type of struct user_conn_req to auth_type to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 9 +++++---- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) commit f79756eeb0c3af0b6672cae4912ae695f7c0c9d3 Author: Leo Kim Date: Thu Oct 29 12:05:36 2015 +0900 staging: wilc1000: rename u32RcvdChCount of struct user_scan_req This patch renames u32RcvdChCount of struct user_scan_req to rcvd_ch_cnt to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 14 +++++++------- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) commit 2141fe391ec6f21e52e3f37d642cfc157440cf85 Author: Leo Kim Date: Thu Oct 29 12:05:35 2015 +0900 staging: wilc1000: rename WPAPtk of enum KEY_TYPE This patch renames WPAPtk of enum KEY_TYPE to WPA_PTK to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 5cd8f7ae74f5e13522ff8ea2f4079dba554a9423 Author: Leo Kim Date: Thu Oct 29 12:05:34 2015 +0900 staging: wilc1000: rename WPARxGtk of enum KEY_TYPE This patch renames WPARxGtk of enum KEY_TYPE to WPA_RX_GTK to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 5416037670fd29045eb59b78beea2c7da4da611c Author: Leo Kim Date: Thu Oct 29 12:05:33 2015 +0900 staging: wilc1000: rename u32TxFailureCount of struct rf_info This patch renames u32TxFailureCount of struct rf_info to tx_fail_cnt to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 2 +- drivers/staging/wilc1000/host_interface.h | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) commit 9b99274a72ac81d4f251d4d137fcfdee13580fc3 Author: Leo Kim Date: Thu Oct 29 12:05:32 2015 +0900 staging: wilc1000: rename u32RxCount of struct rf_info This patch renames u32RxCount of struct rf_info to rx_cnt to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 2 +- drivers/staging/wilc1000/host_interface.h | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 7e84ff4ec3cb8101d29f89fed1188121ab47f498 Author: Leo Kim Date: Thu Oct 29 12:05:31 2015 +0900 staging: wilc1000: rename u32TxCount of struct rf_info This patch renames u32TxCount of struct rf_info to tx_cnt to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 2 +- drivers/staging/wilc1000/host_interface.h | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 00c8dfcf98d8390165ba47ede6a34fc50452fa47 Author: Leo Kim Date: Thu Oct 29 12:05:30 2015 +0900 staging: wilc1000: rename s8RSSI of struct rf_info This patch renames s8RSSI of struct rf_info to rssi to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 2 +- drivers/staging/wilc1000/host_interface.h | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 5babeecb9f3e00ea4b2f15a6748b960fc38c189b Author: Leo Kim Date: Thu Oct 29 12:05:29 2015 +0900 staging: wilc1000: rename u8LinkSpeed of struct rf_info This patch renames u8LinkSpeed of struct rf_info to link_speed to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 2 +- drivers/staging/wilc1000/host_interface.h | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 7 ++++--- 3 files changed, 6 insertions(+), 5 deletions(-) commit c81f7de85bddae4301b6e801c8175f38d212eaef Author: Leo Kim Date: Thu Oct 29 12:05:28 2015 +0900 staging: wilc1000: host_interface.h: move local define variables This patch move local define variables to local define position. - ACTION - PROBE_REQ - PROBE_RESP - ACTION_FRM_IDX - PROBE_REQ_IDX Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.h | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) commit 73abaa4906ae8d90d558e053a6af4ff5df03109d Author: Leo Kim Date: Thu Oct 29 12:05:27 2015 +0900 staging: wilc1000: rename u32UserConnectPvoid of struct user_conn_req This patch renames u32UserConnectPvoid of struct user_conn_req to arg to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 10 +++++----- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) commit ff06982c758a398c30e8eacd9479b873416367cd Author: Leo Kim Date: Thu Oct 29 12:05:26 2015 +0900 staging: wilc1000: rename IsHTCapable of struct user_conn_req This patch renames IsHTCapable of struct user_conn_req to ht_capable to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 2 +- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 33bfb198fff7f36f90c4b5cc753b8e233d1a32f6 Author: Leo Kim Date: Thu Oct 29 11:58:56 2015 +0900 staging: wilc1000: rename pfUserConnectResult of struct user_conn_req This patch renames pfUserConnectResult of struct user_conn_req to conn_result to avoid CamelCase naming convention. And, some comments modification that has been included name 'pfUserConnectResult'. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 57 +++++++++++++++++-------------- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 32 insertions(+), 27 deletions(-) commit 331ed08002ab1ea682a638e4ef97c88a61c3c090 Author: Leo Kim Date: Thu Oct 29 11:58:55 2015 +0900 staging: wilc1000: rename ConnReqIEsLen of struct user_conn_req This patch renames ConnReqIEsLen of struct user_conn_req to ies_len to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 26 +++++++++++++------------- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) commit a3b2f4b91b3ddd814e853efea423a97dbe7d474b Author: Leo Kim Date: Thu Oct 29 11:58:54 2015 +0900 staging: wilc1000: rename pu8ConnReqIEs of struct user_conn_req This patch renames pu8ConnReqIEs of struct user_conn_req to ies to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 24 ++++++++++++------------ drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) commit 74ab5e45edf75a8476ee264c8250c35f9b143d4e Author: Leo Kim Date: Thu Oct 29 11:58:53 2015 +0900 staging: wilc1000: rename ssidLen of struct user_conn_req This patch renames ssidLen of struct user_conn_req to ssid_len to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 10 +++++----- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) commit af973f30a70aafbb775d9811fa89bee804a5e9d9 Author: Leo Kim Date: Thu Oct 29 11:58:52 2015 +0900 staging: wilc1000: rename astrFoundNetworkInfo of struct user_scan_req This patch renames astrFoundNetworkInfo of struct user_scan_req to net_info to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 14 +++++++------- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) commit 66eaea30867d9d85ab1f579f9d30a4d0e0a22346 Author: Leo Kim Date: Thu Oct 29 11:58:51 2015 +0900 staging: wilc1000: rename u32UserScanPvoid of struct user_scan_req This patch renames u32UserScanPvoid of struct user_scan_req to arg to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 12 ++++++------ drivers/staging/wilc1000/host_interface.h | 3 +-- 2 files changed, 7 insertions(+), 8 deletions(-) commit bc80185546ad4c801485d94116cafeffa5da776f Author: Leo Kim Date: Thu Oct 29 11:58:50 2015 +0900 staging: wilc1000: rename pfUserScanResult of struct user_scan_req This patch renames pfUserScanResult of struct user_scan_req to scan_result to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 56 +++++++++++++++---------------- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 28 insertions(+), 30 deletions(-) commit 6bd77755b687f0b6f0b4a1ee1a8733fb5e4c0973 Author: Leo Kim Date: Thu Oct 29 11:58:49 2015 +0900 staging: wilc1000: remove warnings line over 80 characters This patch removes the warnings reported by checkpatch.pl for line over 80 characters. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.h | 116 +++++++++++++++++++----------- 1 file changed, 74 insertions(+), 42 deletions(-) commit 23d0bfaa69648efaa91b247c7ac2fbdc21e0a90c Author: Leo Kim Date: Thu Oct 29 11:58:48 2015 +0900 staging: wilc1000: rename u16SessionTimeout of struct ba_session_info This patch renames u16SessionTimeout of struct ba_session_info to time_out to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 8 ++++---- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) commit 277c21308f1e8e135ca7d27bce9b6d496b3ad24f Author: Leo Kim Date: Thu Oct 29 11:58:47 2015 +0900 staging: wilc1000: rename u16BufferSize of struct ba_session_info This patch renames u16BufferSize of struct ba_session_info to buf_size to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 8 ++++---- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) commit 16c9b391425340e09be378e7becee0d4319dd295 Author: Leo Kim Date: Thu Oct 29 11:58:46 2015 +0900 staging: wilc1000: rename u8Ted of struct ba_session_info This patch renames u8Ted of struct ba_session_info to tid to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 14 +++++++------- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) commit 3fc4999e3d81546f4be2c11bce82adbfc7cb216e Author: Leo Kim Date: Thu Oct 29 11:58:45 2015 +0900 staging: wilc1000: rename au8Bssid of struct ba_session_info This patch renames au8Bssid of struct ba_session_info to bssid to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 22 +++++++++++----------- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 12 insertions(+), 12 deletions(-) commit c5cc4b12641bf029286b24f418847409ed513259 Author: Leo Kim Date: Thu Oct 29 11:58:44 2015 +0900 staging: wilc1000: rename pVoid of struct remain_ch This patch renames pVoid of struct remain_ch to arg to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 8 ++++---- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) commit 5e5f7916b37741de3219c8b84a162e2b7b949dd9 Author: Leo Kim Date: Thu Oct 29 11:58:43 2015 +0900 staging: wilc1000: rename pRemainOnChanReady of struct remain_ch This patch renames pRemainOnChanReady of struct remain_ch to ready to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 8 ++++---- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) commit bfb62abc27789dfb4b30702c17795345a7f7fab3 Author: Leo Kim Date: Thu Oct 29 11:58:42 2015 +0900 staging: wilc1000: rename pRemainOnChanExpired of struct remain_ch This patch renames pRemainOnChanExpired of struct remain_ch to expired to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 10 +++++----- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) commit 839ab709b3c49b5dd4535502ec2d2a57f981704c Author: Leo Kim Date: Thu Oct 29 11:58:41 2015 +0900 staging: wilc1000: rename u16Channel of struct remain_ch This patch renames u16Channel of struct remain_ch to ch to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 11 ++++++----- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) commit bcb410bbc971e585f56fec4f19cbeec54953ab71 Author: Leo Kim Date: Thu Oct 29 11:58:40 2015 +0900 staging: wilc1000: rename u8Regid of struct reg_frame This patch renames u8Regid of struct reg_frame to reg_id to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 6 +++--- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) commit d5f654cabbf6c4133450326c16cd1d577ff175e2 Author: Leo Kim Date: Thu Oct 29 11:58:39 2015 +0900 staging: wilc1000: rename u16FrameType of struct reg_frame This patch renames u16FrameType of struct reg_frame to frame_type to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 7 +++---- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) commit 6abf8681e9a619d4d49b039d0add841b86653ef0 Author: Leo Kim Date: Thu Oct 29 11:58:38 2015 +0900 staging: wilc1000: rename bReg of struct reg_frame This patch renames bReg of struct reg_frame to reg to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 8 +++++--- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) commit e3e7e8acf5e6d87fc44d969abdf272c9bc10efa2 Author: Leo Kim Date: Thu Oct 29 11:58:37 2015 +0900 staging: wilc1000: host_interface.h : remove over-commenting There are over-commenting in the host_interface.h file and most of them are not helpful to explain what the code does and generate 80 ending line over warnings. So, all of comments are removed in this patch and the comments will later be added if necessary with the preferred Linux style. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.h | 740 +----------------------------- 1 file changed, 4 insertions(+), 736 deletions(-) commit cc2d7e9e86e279eb71c6be985b6e6dc81b05c251 Author: Leo Kim Date: Thu Oct 29 11:58:36 2015 +0900 staging: wilc1000: rename hRemainOnChannel of struct host_if_drv This patch renames hRemainOnChannel of struct host_if_drv to remain_on_ch_timer to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 12 ++++++------ drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) commit 81a59506f2788cd1ed438e9e54714af5dd2f3df7 Author: Leo Kim Date: Thu Oct 29 11:58:35 2015 +0900 staging: wilc1000: rename hConnectTimer of struct host_if_drv This patch renames hConnectTimer of struct host_if_drv to connect_timer to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 17 ++++++++--------- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 9 insertions(+), 10 deletions(-) commit 13b313e45c6dbd20dc6bc174f423be5a372b992f Author: Leo Kim Date: Thu Oct 29 11:58:34 2015 +0900 staging: wilc1000: rename hScanTimer of struct host_if_drv This patch renames hScanTimer of struct host_if_drv to scan_timer to avoid CamelCase naming convention. And, remove the relation comment. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 21 ++++++++++----------- drivers/staging/wilc1000/host_interface.h | 4 ++-- 2 files changed, 12 insertions(+), 13 deletions(-) commit 569a3c670c1a4249db991afda0989d8efb73f91d Author: Leo Kim Date: Thu Oct 29 11:58:33 2015 +0900 staging: wilc1000: rename hSemInactiveTime of struct host_if_drv This patch renames hSemInactiveTime of struct host_if_drv to sem_inactive_time to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 6 +++--- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) commit 4ea90008f60744b3d466f3c13c972e42a64c6aa2 Author: Leo Kim Date: Thu Oct 29 11:58:32 2015 +0900 staging: wilc1000: rename hSemGetCHNL of struct host_if_drv This patch renames hSemGetCHNL of struct host_if_drv to sem_get_chnl to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 6 +++--- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) commit bc34da66057062636fb6c6d339ed8f0856c6d6c0 Author: Leo Kim Date: Thu Oct 29 11:58:31 2015 +0900 staging: wilc1000: rename hSemGetLINKSPEED of struct host_if_drv This patch renames hSemGetLINKSPEED of struct host_if_drv to sem_get_link_speed to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 6 +++--- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) commit 7e111f9ea92386c7ec90efe7b62363da272beb1c Author: Leo Kim Date: Thu Oct 29 11:58:30 2015 +0900 staging: wilc1000: rename hSemGetRSSI of struct host_if_drv This patch renames hSemGetRSSI of struct host_if_drv to sem_get_rssi to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 6 +++--- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) commit e55e49670b673d7ab9f7fb51d3530347f327fd40 Author: Leo Kim Date: Thu Oct 29 11:58:29 2015 +0900 staging: wilc1000: rename hSemTestDisconnectBlock of struct host_if_drv This patch renames hSemTestDisconnectBlock of struct host_if_drv to sem_test_disconn_block to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 6 +++--- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) commit 9ea47133ecf0fa9622aa815835f791031566d229 Author: Leo Kim Date: Thu Oct 29 11:58:28 2015 +0900 staging: wilc1000: rename hSemTestKeyBlock of struct host_if_drv This patch renames hSemTestKeyBlock of struct host_if_drv to sem_test_key_block to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 24 ++++++++++++------------ drivers/staging/wilc1000/host_interface.h | 3 +-- 2 files changed, 13 insertions(+), 14 deletions(-) commit 33110ad7d60506d215a57c13be5ed5607c5b155b Author: Leo Kim Date: Thu Oct 29 11:58:27 2015 +0900 staging: wilc1000: rename gtOsCfgValuesSem of struct host_if_drv This patch renames gtOsCfgValuesSem of struct host_if_drv to sem_cfg_values to avoid CamelCase naming convention. And, remove the relation comment. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 18 +++++++++--------- drivers/staging/wilc1000/host_interface.h | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) commit ace303f045939f7848acb3cb2f64509ab9d05a49 Author: Leo Kim Date: Thu Oct 29 11:58:26 2015 +0900 staging: wilc1000: rename strCfgValues of struct host_if_drv This patch renames strCfgValues of struct host_if_drv to cfg_values to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 91 ++++++++++++++++--------------- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 47 insertions(+), 46 deletions(-) commit 2a4eded9a827038dfdf322450f64ba4352a2b5ce Author: Leo Kim Date: Thu Oct 29 11:58:25 2015 +0900 staging: wilc1000: rename au8AssociatedBSSID of struct host_if_drv This patch renames au8AssociatedBSSID of struct host_if_drv to assoc_bssid to avoid CamelCase naming convention. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 8 ++++---- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) commit b60005a8ce169771fc7e7763c920cfe7f48eef93 Author: Leo Kim Date: Thu Oct 29 11:58:24 2015 +0900 staging: wilc1000: rename enuHostIFstate of struct host_if_drv This patch renames enuHostIFstate of struct host_if_drv to hif_state to avoid CamelCase naming convention. And, some comments modification that has been included name 'enuHostIFstate'. Signed-off-by: Leo Kim Signed-off-by: Glen Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 62 ++++++++++++++++--------------- drivers/staging/wilc1000/host_interface.h | 2 +- 2 files changed, 34 insertions(+), 30 deletions(-) commit 5ec2136892cc01c802d10bb24c442951056e3af8 Author: Amitoj Kaur Chawla Date: Fri Oct 30 12:18:56 2015 +0530 staging: wilc1000: Remove inclusion of version.h version.h header inclusion is not necessary as detected by versioncheck. Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 1 - 1 file changed, 1 deletion(-) commit 49112c7fc2329a668d886f4410d9666328d8b2ef Author: Ioana Ciornei Date: Sun Nov 1 16:38:23 2015 +0200 staging: android: remove multiple blank lines This patch removes multiple blank lines in order to follow the linux kernel coding style. Signed-off-by: Ioana Ciornei Signed-off-by: Greg Kroah-Hartman drivers/staging/android/timed_gpio.c | 1 - 1 file changed, 1 deletion(-) commit f8b053e3da56cdfa798ce5d7014860798b04b7bc Author: Ioana Ciornei Date: Sun Nov 1 16:38:22 2015 +0200 staging: android: properly align function arguments Fix alingment issues by properly indenting function arguments in accordance with the kernel coding style. Signed-off-by: Ioana Ciornei Signed-off-by: Greg Kroah-Hartman drivers/staging/android/lowmemorykiller.c | 4 ++-- drivers/staging/android/sync.c | 4 ++-- drivers/staging/android/timed_gpio.c | 10 +++++----- 3 files changed, 9 insertions(+), 9 deletions(-) commit 36f16ff25c0290aa700dc0944f41dc14ff050432 Author: Ioana Ciornei Date: Sun Nov 1 16:38:21 2015 +0200 staging: android: replace uint32_t with u32 This patch makes use of the preferred kernel types such as u16, u32. Signed-off-by: Ioana Ciornei Signed-off-by: Greg Kroah-Hartman drivers/staging/android/lowmemorykiller.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 375fb53ec1be6df6cfd0ac4932f14f0b7f57a761 Author: Ioana Ciornei Date: Sun Nov 1 16:38:20 2015 +0200 staging: android: replace explicit NULL comparison This patch replaces explicit NULL comparison with ! operator in order to simplify the code Signed-off-by: Ioana Ciornei Signed-off-by: Greg Kroah-Hartman drivers/staging/android/ion/compat_ion.c | 6 +++--- drivers/staging/android/sync.c | 18 +++++++++--------- 2 files changed, 12 insertions(+), 12 deletions(-) commit 8d831d451fd0654c8d20a91c4edec1ee57a93945 Author: Shraddha Barke Date: Sun Nov 1 11:34:40 2015 +0530 Staging: fwserial: Remove unused fwtty_bind_console from header fwtty_bind_console is defined in header file but not used. Thus remove the definition. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/fwserial/fwserial.h | 8 -------- 1 file changed, 8 deletions(-) commit 10172144cc812f0f126587a919c328873e1594f2 Author: Amitoj Kaur Chawla Date: Sat Oct 31 20:22:03 2015 +0530 staging: rtl8192e: Remove unnecessary variable This patch removes unnecessary variable by using a single line of code instead. Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit d48df5b37e8492adddd9d62000094f0f965a391a Author: Amitoj Kaur Chawla Date: Sat Oct 31 20:19:40 2015 +0530 staging: rtl8712: rtl871x_mlme: Remove wrapper function Remove wrapper function free_network_nolock() that can be replaced by a single line of code. This patch renames _free_network_nolock() function to free_network_nolock(). Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8712/rtl871x_mlme.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit 3066bc0587186dc8d14d72f04fc8aeeb7801787e Author: Amarjargal Gundjalam Date: Sat Oct 31 01:56:41 2015 -0700 staging: media: bcm2048: fix mispelling This patch fixes the checkpatch issue: CHECK: 'Syncronize' may be misspelled - perhaps 'Synchronize'? Signed-off-by: Amarjargal Gundjalam Signed-off-by: Greg Kroah-Hartman drivers/staging/media/bcm2048/radio-bcm2048.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit cf2f34089f3e15959b12671c93cd7909e3b8cef0 Author: Amarjargal Gundjalam Date: Sat Oct 31 01:56:40 2015 -0700 staging: media: bcm2048: remove unnecessary space after a cast This patch fixes the checkpatch issue: CHECK: No space is necessary after a cast Signed-off-by: Amarjargal Gundjalam Signed-off-by: Greg Kroah-Hartman drivers/staging/media/bcm2048/radio-bcm2048.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 70fe32268366ebbcf7ce1adca2242ecdab89923e Author: Amarjargal Gundjalam Date: Sat Oct 31 01:56:39 2015 -0700 staging: media: bcm2048: remove unnecessary blank lines This patch fixes the checkpatch issues: CHECK: Please don't use multiple blank lines CHECK: Blank lines aren't necessary after an open brace '{' Signed-off-by: Amarjargal Gundjalam Signed-off-by: Greg Kroah-Hartman drivers/staging/media/bcm2048/radio-bcm2048.c | 8 -------- 1 file changed, 8 deletions(-) commit 3ac086fb99fe689fb2183bdd5503912749b22e71 Author: Amarjargal Gundjalam Date: Sat Oct 31 01:56:38 2015 -0700 staging: media: bcm2048: add space around operators This patch fixes the checkpatch issue: CHECK: spaces preferred around that ' ' Signed-off-by: Amarjargal Gundjalam Signed-off-by: Greg Kroah-Hartman drivers/staging/media/bcm2048/radio-bcm2048.c | 73 ++++++++++++++------------- 1 file changed, 39 insertions(+), 34 deletions(-) commit 925b65782c218cbc76bb975fb80ccf2072c735ee Author: Amarjargal Gundjalam Date: Sat Oct 31 01:56:37 2015 -0700 staging: media: bcm2048: match alignments with open parenthesis This patch fixes the checkpatch issue: CHECK: Alignment should match open parenthesis Signed-off-by: Amarjargal Gundjalam Signed-off-by: Greg Kroah-Hartman drivers/staging/media/bcm2048/radio-bcm2048.c | 304 +++++++++++++------------- 1 file changed, 146 insertions(+), 158 deletions(-) commit 6fbbf260b00d4d79e87cd5b383906875237d4aa8 Author: Shraddha Barke Date: Sat Oct 31 21:53:03 2015 +0530 Staging: wlan-ng: Remove unused function declaration Function p80211wext_event_associated has been declared but not used. Thus remove the declaration. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/wlan-ng/p80211netdev.h | 1 - 1 file changed, 1 deletion(-) commit d4f8455b1267f40c090fc6fbf06335554d280be1 Author: Amitoj Kaur Chawla Date: Sat Oct 31 15:49:29 2015 +0530 staging: wlan-ng: prism2mib: Remove unnecessary variable Drop unnecessary variable that can be replaced by a single line of code. Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman drivers/staging/wlan-ng/prism2mib.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 6ba714bb5f78d8d5647e8b8afbb739223c5a4620 Author: Amitoj Kaur Chawla Date: Sat Oct 31 15:47:38 2015 +0530 staging: wlan-ng: hfa384x_usb: Remove wrapper function Remove wrapper function that can be replaced by a single line of code. As a result of the change, there is an unused variable which has also been removed in this patch. Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman drivers/staging/wlan-ng/hfa384x_usb.c | 30 +----------------------------- 1 file changed, 1 insertion(+), 29 deletions(-) commit 4e2cdf9324e93eef2e06f640d001979368f1e2b7 Author: Amitoj Kaur Chawla Date: Sat Oct 31 15:51:04 2015 +0530 staging: wlan-ng: Remove wrapper function Remove wrapper function that can be replaced by a single line of code. Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman drivers/staging/wlan-ng/hfa384x_usb.c | 4 ++-- drivers/staging/wlan-ng/prism2mgmt.h | 1 - drivers/staging/wlan-ng/prism2sta.c | 21 --------------------- 3 files changed, 2 insertions(+), 24 deletions(-) commit b4f286a953f0d9582fc5ec5d823afc6035470461 Author: Shraddha Barke Date: Fri Oct 30 19:33:03 2015 +0530 Staging: dgnc: Remove unused #include header file Since the things defined by digi.h are not used in dgnc_utils.c, remove the header from this file. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/dgnc/dgnc_utils.c | 1 - 1 file changed, 1 deletion(-) commit cdfeaae5b3034d630528d044f7bc72e209321517 Author: Shraddha Barke Date: Fri Oct 30 19:33:02 2015 +0530 Staging: sm750fb: Remove unused modedb.h file The header file modedb.h is only included in sm750.c but the things defined by modedb.h are not used anywhere in sm750.c. Thus, drop the include in sm750.c and modedb.h can be dropped completely. Signed-off-by: Shraddha Barke Acked-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/modedb.h | 233 --------------------------------------- drivers/staging/sm750fb/sm750.c | 2 - 2 files changed, 235 deletions(-) commit b0035ef7552e222e7b0d07644a3234350d8bba8e Author: Burcin Akalin Date: Fri Oct 30 04:01:01 2015 +0300 staging: octeon: Add space around '+' Add space around operator '+'. Problem found using checkpatch.pl CHECK: spaces preferred around that '+' (ctx:VxV) Signed-off-by: Burcin Akalin Signed-off-by: Greg Kroah-Hartman drivers/staging/octeon/ethernet-defines.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ca3fde19d47ef6edbee4c6ca7e824de0382abe67 Author: Amitoj Kaur Chawla Date: Fri Oct 30 02:29:03 2015 +0530 staging: gdm724x: Remove wrapper function Remove wrapper function that can be replaced by a single line of code. Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman drivers/staging/gdm724x/gdm_lte.c | 2 +- drivers/staging/gdm724x/netlink_k.c | 5 ----- drivers/staging/gdm724x/netlink_k.h | 1 - 3 files changed, 1 insertion(+), 7 deletions(-) commit b4129f2f53311804ee394fa80539710ab09a8401 Author: Burcin Akalin Date: Fri Oct 30 02:49:01 2015 +0300 staging: nvec: Add space around '<<' Add space around operator '<<'. Problem found using checkpatch.pl CHECK: spaces preferred around that '<<' (ctx:VxV) Signed-off-by: Burcin Akalin Signed-off-by: Greg Kroah-Hartman drivers/staging/nvec/nvec.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit a9548c223e08d5d022cb6e5daf64c3bb1ca41aa5 Author: Burcin Akalin Date: Fri Oct 30 03:04:03 2015 +0300 staging: nvec: Add space around '>>' Add space around operator '>>'. Problem found using checkpatch.pl CHECK: spaces preferred around that '>>' (ctx:VxV) Signed-off-by: Burcin Akalin Signed-off-by: Greg Kroah-Hartman drivers/staging/nvec/nvec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d8340ed0446cd2195db92980beb4ff575e35e0a1 Author: Burcin Akalin Date: Fri Oct 30 03:29:08 2015 +0300 staging: nvec:Misspelled the word Word error correction.Problem found using checkpatch.pl CHECK: 'Implemenation' may be misspelled - perhaps 'Implementation'? Signed-off-by: Burcin Akalin Signed-off-by: Greg Kroah-Hartman drivers/staging/nvec/README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 84295526a5797f7dfd75bba3d9438074f46ad7aa Author: Ksenija Stanojevic Date: Thu Oct 29 13:43:41 2015 -0700 Staging: rtl8723au: Declare function static Declare function Efuse_ReadAllMap as static since it's defined and used only in this file. Signed-off-by: Ksenija Stanojevic Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8723au/core/rtw_efuse.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 165483c6337d25c00d9eb18271bc99f75f1dd8b6 Author: Ksenija Stanojevic Date: Thu Oct 29 13:42:38 2015 -0700 Staging: rtl8723au: Remove unused EFUSE_Write1Byte function Function is defined but not used, so remove it. Signed-off-by: Ksenija Stanojevic Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8723au/core/rtw_efuse.c | 42 ------------------------------ 1 file changed, 42 deletions(-) commit 2592872f3b0b79b2247d6a40331a3761299041ac Author: Burcin Akalin Date: Thu Oct 29 18:54:06 2015 +0300 staging: vt6656: Do not use multiple blank lines. Remove multiple blank lines. Problem found using checkpatch.pl "CHECK: Please don't use multiple blank lines" Signed-off-by: Burcin Akalin Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6656/key.c | 1 - 1 file changed, 1 deletion(-) commit 66c0933b30ae27ded1a48944381c9d05feff1979 Author: Amitoj Kaur Chawla Date: Sun Nov 1 16:18:18 2015 +0530 staging: rdma: hfi1: chip: Remove wrapper function Drop wrapper function remap_receive_available_interrupt() that wraps a call to remap_intr() with the only difference being the addition of macro IS_RCVAVAIL_START to the second argument of remap_intr(). Both the function names give the same information so the wrapper function can be dropped. Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/chip.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit 8edf75020f60b2e1572291f93e0898351d478795 Author: Amitoj Kaur Chawla Date: Sun Nov 1 16:16:40 2015 +0530 staging: rdma: hfi1: sdma: Remove wrapper functions Drop wrapper functions sdma_start_err_halt_wait() and sdma_start_sw_clean_up() that can be replaced by a direct call to schedule_work() and tasklet_hi_schedule() respectively both of which are standard kernel functions. Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/sdma.c | 40 ++++++++++++++-------------------------- 1 file changed, 14 insertions(+), 26 deletions(-) commit 6e5b6131806d9fd05685ac6fddc297d91ea3b0ae Author: Amitoj Kaur Chawla Date: Sun Nov 1 16:14:32 2015 +0530 staging: rdma: hfi1: Remove hfi1_nomsix() wrapper function This patch removes hfi1_nomsix() wrapper function that is used to wrap pci_disable_msix() and so substituted the wrapper function by a direct call to pci_disable_msix(). Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/chip.c | 2 +- drivers/staging/rdma/hfi1/hfi.h | 1 - drivers/staging/rdma/hfi1/pcie.c | 8 -------- 3 files changed, 1 insertion(+), 10 deletions(-) commit 99d19626b3b3c6e4f6c134359e7c690320776fd9 Author: Amitoj Kaur Chawla Date: Sun Nov 1 01:45:13 2015 +0530 staging: rdma: amso1100: Remove extern from function declarations Functions have the extern specifier by default, so this keyword can be removed. Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/amso1100/c2.h | 80 +++++++++++++++++------------------ drivers/staging/rdma/amso1100/c2_mq.h | 14 +++--- drivers/staging/rdma/amso1100/c2_vq.h | 20 ++++----- 3 files changed, 57 insertions(+), 57 deletions(-) commit 463f8e7223ce10d12829e6d11204b1ef131d350d Author: Amitoj Kaur Chawla Date: Thu Oct 29 13:35:06 2015 +0530 staging: rdma: hfi1: Remove unnecessary variable Drop unnecessary variable that can be replaced by a single line of code. Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/hfi1/qsfp.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit bccb763d5fa25add4b374ac720052a01ba95cbca Author: Amitoj Kaur Chawla Date: Thu Oct 29 13:33:45 2015 +0530 staging: rdma: amso1100: Remove unnecessary variable Drop unnecessary variable that can be replaced by single line of code. Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman drivers/staging/rdma/amso1100/c2_rnic.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit afcf9bc1bfe651a208e586ec68b35a1361af2fc9 Author: Amitoj Kaur Chawla Date: Thu Oct 29 16:34:06 2015 +0530 staging: rtl8188eu: core: Change function parameter to bool Change int wait_ack to bool wait_ack as it only takes true or false as its argument. Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 03ea25f0c5f8929d27b2dcde26aa0b698fd12913 Author: Amitoj Kaur Chawla Date: Thu Oct 29 11:52:35 2015 +0530 staging: rtl8188eu: core: Remove wrapper function Remove wrapper function issue_probereq() that can be replaced by a single line of code and rename _issue_probereq() to issue_probereq(). This patch also fixes line over 80 characters checkpatch.pl warning. Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 41 ++++++++++++++++----------- 1 file changed, 24 insertions(+), 17 deletions(-) commit ce3b84ab536a6f927506b998650ffb810b153705 Author: Amitoj Kaur Chawla Date: Thu Oct 29 11:48:39 2015 +0530 staging: rtl8188eu: Remove unused function Remove function that is declared but not called anywhere. Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_xmit.c | 5 ----- drivers/staging/rtl8188eu/include/rtw_xmit.h | 1 - 2 files changed, 6 deletions(-) commit f3a2d1adfdcceeb225d7676d31d07c9d6441eb8e Author: Amitoj Kaur Chawla Date: Thu Oct 29 11:47:03 2015 +0530 staging: rtl8188eu: core: rtw_ap : Remove unnecessary functions Drop unnecessary functions that are declared but not being used. Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_ap.c | 54 +-------------------------------- 1 file changed, 1 insertion(+), 53 deletions(-) commit d3fc05e22d6bba8b118512aabe6e888a30e76e3f Author: Burcin Akalin Date: Sun Nov 1 14:08:08 2015 +0300 staging: gdm72xx:Add space around '<<' Add space around operator '<<'. Problem found using checkpatch.pl CHECK: spaces preferred around that '<<' (ctx:VxV) Signed-off-by: Burcin Akalin Signed-off-by: Greg Kroah-Hartman drivers/staging/gdm72xx/gdm_qos.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit 3979b47c6e97e924dd3b826b573d38f93515c2bf Author: Burcin Akalin Date: Sun Nov 1 01:56:52 2015 +0300 staging: gdm72xx: Add space around '>>' Add space around operator '>>'. Problem found using checkpatch.pl CHECK: spaces preferred around that '>>' (ctx:VxV) Signed-off-by: Burcin Akalin Signed-off-by: Greg Kroah-Hartman drivers/staging/gdm72xx/gdm_qos.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 565678ab1ba760ffd31bcd4e7ee9ea6511296ed4 Author: Burcin Akalin Date: Sun Nov 1 01:56:51 2015 +0300 staging: gdm72xx: Add space around '/' Add space around operator '/'. Problem found using checkpatch.pl CHECK: spaces preferred around that '/' (ctx:VxV) Signed-off-by: Burcin Akalin Signed-off-by: Greg Kroah-Hartman drivers/staging/gdm72xx/gdm_qos.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 20437125c4dc3851d1a4ed9d01827fa8abe97c95 Author: Burcin Akalin Date: Sun Nov 1 01:56:50 2015 +0300 staging: gdm72xx: Add space around '+' Add space around operator '+'. Problem found using checkpatch.pl CHECK: spaces preferred around that '+' (ctx:VxV) Signed-off-by: Burcin Akalin Signed-off-by: Greg Kroah-Hartman drivers/staging/gdm72xx/gdm_qos.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 053124a34d968417934406c2fb111ae5b397e376 Author: Burcin Akalin Date: Sun Nov 1 01:56:49 2015 +0300 staging: gdm72xx: Add space around '-' Add space around operator '-'. Problem found using checkpatch.pl CHECK: spaces preferred around that '-' (ctx:VxV) Signed-off-by: Burcin Akalin Signed-off-by: Greg Kroah-Hartman drivers/staging/gdm72xx/gdm_qos.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 24f49745df332421230dd613a218e1ce21b0502e Author: Burcin Akalin Date: Sun Nov 1 01:56:48 2015 +0300 staging: gdm72xx: Add space around '&' Add space around operator '&'. Problem found using checkpatch.pl CHECK: spaces preferred around that '&' (ctx:VxV) Signed-off-by: Burcin Akalin Signed-off-by: Greg Kroah-Hartman drivers/staging/gdm72xx/gdm_qos.c | 40 +++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) commit e1fec5395af3502efce18906a58dc6a8d1ff697e Author: Amitoj Kaur Chawla Date: Fri Oct 30 02:12:16 2015 +0530 staging: gdm72xx: Remove wrapper function Remove wrapper function that can be replaced by a single line of code. Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman drivers/staging/gdm72xx/gdm_wimax.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit d2071984b917784f74ab32c4f054e3503bc730e5 Author: Amitoj Kaur Chawla Date: Sat Oct 31 20:25:29 2015 +0530 staging: rtl8192u: Remove unnecessary function This patch solves two problems. The function rtl8192_CalculateBitShift() had an unnecessary variable i that could be removed by using a single line of code. After this change, rtl8192_CalculateBitShift() becomes a wrapper function, so the rtl8192_CalculateBitShift() function has been removed completely to replace it with a single line of code. Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192u/r819xU_phy.c | 25 +++++-------------------- 1 file changed, 5 insertions(+), 20 deletions(-) commit c14291d2c3041237c2e26939d26fb67bb689bcc2 Author: Ksenija Stanojevic Date: Wed Oct 28 18:59:55 2015 -0700 Staging: rtl8192u: Remove unused function Function rtl8192_try_wake_queue is defined but not used, so remove it. Signed-off-by: Ksenija Stanojevic Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192u/r8192U_core.c | 15 --------------- 1 file changed, 15 deletions(-) commit 5a2f464af23bc90a77df6b9b30815e602efb99af Author: Shivani Bhardwaj Date: Tue Nov 3 00:29:43 2015 +0530 Staging: lustre: tracefile: Remove wrapper function Remove the function cfs_trace_put_console_buffer() as it is no longer required. Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/tracefile.h | 6 ------ 1 file changed, 6 deletions(-) commit 87af1d2e0c29ce4f025da0cdbb9c74a3958fd71d Author: Shivani Bhardwaj Date: Tue Nov 3 00:29:22 2015 +0530 Staging: lustre: tracefile: Replace function calls Replace the calls of function cfs_trace_put_console_buffer() with put_cpu() as former is just a wrapper for latter. Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/tracefile.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 26da323423666560dd8ebf05c719f7cbd82e3f62 Author: Shivani Bhardwaj Date: Mon Nov 2 23:19:55 2015 +0530 Staging: lustre: linux-cpu: Remove unnecessary wrapper function Remove the function cfs_node_to_cpumask() and replace all its calls with the function it wrapped. Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/linux/linux-cpu.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) commit 9561c25c590afdcb27002dc168bcecbf5a757308 Author: Shivani Bhardwaj Date: Mon Nov 2 23:19:34 2015 +0530 Staging: lustre: linux-cpu: Drop wrapper function Remove the function cfs_cpu_ht_siblings() and replace all its calls with the function it wrapped. Siigned-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/linux/linux-cpu.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) commit 7d6e398ca61427e903246f1c11853f6f967bbb5e Author: Shivani Bhardwaj Date: Mon Nov 2 23:19:13 2015 +0530 Staging: lustre: linux-cpu: Remove wrapper function Remove the function cfs_cpu_core_siblings() and replace its calls with the function it wrapped. Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/linux/linux-cpu.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit 90f8b4643023b23061a15229c0c0b8ee747438a8 Author: Shivani Bhardwaj Date: Mon Nov 2 22:55:36 2015 +0530 Staging: lustre: linux-crypto-adler: Drop wrapper function Remove the function __adler32() and replace its calls with the function it wrapped. Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/linux/linux-crypto-adler.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit a2aadf23d1437ddcce86fa0673a6ecb5f932d3ec Author: Shraddha Barke Date: Sun Nov 1 17:06:32 2015 +0530 Staging: lustre: libcfs: Remove unused functions The functions cfs_hash_bd_findadd_locked and cfs_hash_bd_finddel_locked are not used anywhere. Thus remove these functions. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman .../lustre/include/linux/libcfs/libcfs_hash.h | 7 ------- drivers/staging/lustre/lustre/libcfs/hash.c | 21 --------------------- 2 files changed, 28 deletions(-) commit 5e6f5901f076ec578f68cd100cca8f0d0175c532 Author: Shraddha Barke Date: Sun Nov 1 17:06:34 2015 +0530 Staging: lustre: obdclass: Declare local function cl_lock_mutex_try as static Function cl_lock_mutex_try has been used only in this particular file. Thus declare the function as static. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/cl_lock.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit fb2358958785fa724a007671eb2bf848e8137354 Author: Shraddha Barke Date: Sun Nov 1 17:06:33 2015 +0530 Staging: lustre: ptlrpc: Remove unused function declarations Functions ptlrpc_handle_failed_import and ptlrpc_lprocfs_do_request_stat have been declared but not used. Thus drop the declarations. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ptlrpc/ptlrpc_internal.h | 3 --- 1 file changed, 3 deletions(-) commit 168c7a13d4d923e56f64e34db1562f20006e2a1d Author: Shraddha Barke Date: Sun Nov 1 12:21:37 2015 +0530 Staging: lustre: lnet: Remove typedef srpc_server_rpc_t The Linux kernel coding style guidelines suggest not using typedefs for structure types. This patch gets rid of the typedef for srpc_server_rpc_t. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/selftest/brw_test.c | 4 ++-- drivers/staging/lustre/lnet/selftest/console.c | 2 +- drivers/staging/lustre/lnet/selftest/framework.c | 8 ++++---- drivers/staging/lustre/lnet/selftest/rpc.c | 6 +++--- drivers/staging/lustre/lnet/selftest/selftest.h | 14 +++++++------- 5 files changed, 17 insertions(+), 17 deletions(-) commit e72d97994bd7936bd24116b8fd4255e0ea2c1654 Author: James Simmons Date: Thu Oct 29 17:35:22 2015 -0400 staging: lustre: place linux header first in hash.c Always place linux headers first in libcfs header files. This avoid can potential build issues if any changes to a libcfs header land that starts using a linux header definition. Signed-off-by: James Simmons Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/hash.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b2f005f7157eb77e6992206f5739effc0051a27a Author: James Simmons Date: Thu Oct 29 17:35:21 2015 -0400 staging: lustre: remove white space in hash.c Cleanup all the unneeded white space in hash.c. Signed-off-by: James Simmons Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/hash.c | 342 ++++++++++++++-------------- 1 file changed, 177 insertions(+), 165 deletions(-) commit 12550e0cab229fd24241e4950c075361aad76b27 Author: James Simmons Date: Thu Oct 29 17:35:19 2015 -0400 staging: lustre: move linux hash.h header to start of libcfs_hash.h Minor style cleanup to put hash.h header to the top of the libcfs_hash.h file. Signed-off-by: James Simmons Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/include/linux/libcfs/libcfs_hash.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 9600d8f80b378e8eae0b55edf937b087d1e4c032 Author: James Simmons Date: Thu Oct 29 17:35:18 2015 -0400 staging: lustre: remove obsolete comment in libcfs_hash.h Remove comment hash_long which was removed long ago. Signed-off-by: James Simmons Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/include/linux/libcfs/libcfs_hash.h | 7 ------- 1 file changed, 7 deletions(-) commit bf2ca1b1bc926016bf496b0f13eebd584c41d7a1 Author: James Simmons Date: Thu Oct 29 17:35:17 2015 -0400 staging: lustre: remove white space in libcfs_hash.h Cleanup all the unneeded white space in libcfs_hash.h. Signed-off-by: James Simmons Signed-off-by: Greg Kroah-Hartman .../lustre/include/linux/libcfs/libcfs_hash.h | 135 +++++++++++---------- 1 file changed, 70 insertions(+), 65 deletions(-) commit 5d21c5a8835795ce8cbd87e5f08b266094a54863 Author: Shivani Bhardwaj Date: Sat Oct 31 20:26:56 2015 +0530 Staging: lustre: Drop wrapper functions Remove the functions node_equal() and node_compare() and replace their calls with appropriate functions. Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ldlm/interval_tree.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) commit ae0c6f01f3686a1a0dac6f27505f1365102bf5a3 Author: Shraddha Barke Date: Sat Oct 31 15:58:46 2015 +0530 Staging: lustre: mdc: Remove unused declarations The functions mdc_pack_req and mdc_getxattr_pack have been declared in header file but not used. Thus remove the declarations. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/mdc/mdc_internal.h | 2 -- 1 file changed, 2 deletions(-) commit 2408e54dcab7f6faa0099a3cc0f67e2e823c2321 Author: Shraddha Barke Date: Sat Oct 31 15:58:45 2015 +0530 Staging: lustre: lov: Declare local functions as static Declare functions lov_set_add_req, lov_set_finished, lov_update_set, lov_check_and_wait_active and lov_update_statfs as static since they are used only in this particular file. Also remove corresponding declarations from header file. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/lov/lov_internal.h | 7 ------- drivers/staging/lustre/lustre/lov/lov_request.c | 16 +++++++++------- 2 files changed, 9 insertions(+), 14 deletions(-) commit 4b520fef890f0963e96496ec4291a98e8f4629a3 Author: Shraddha Barke Date: Sat Oct 31 15:58:44 2015 +0530 Staging: lustre: lov: Remove unused function declarations These functions have been declared in header but not used anywhere. Thus drop the declarations. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/lov/lov_internal.h | 8 -------- 1 file changed, 8 deletions(-) commit c8b3c83e3b8c45083983c89d3ee08d3c5035c4cf Author: Shraddha Barke Date: Sat Oct 31 15:58:43 2015 +0530 Staging: lustre: lmv: Declare local functions as static Declare functions lmv_intent_open and lmv_intent_lookup as static since they are used only in this particular file. Also remove corresponding declarations from header file. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/lmv/lmv_intent.c | 21 +++++++++++---------- drivers/staging/lustre/lustre/lmv/lmv_internal.h | 12 ------------ 2 files changed, 11 insertions(+), 22 deletions(-) commit 1251604b0eb7e58110c5d7fc025b01ecb19de9ef Author: Shraddha Barke Date: Sat Oct 31 15:58:42 2015 +0530 Staging: lustre: lmv: Remove unused function declaration The function lmv_blocking_ast is declared in header file but not used. Hence remove the declaration. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/lmv/lmv_internal.h | 2 -- 1 file changed, 2 deletions(-) commit abcf8080eb444a432f9166acac940b19b45907b5 Author: Shraddha Barke Date: Sat Oct 31 15:58:41 2015 +0530 Staging: lustre: lclient: Remove wrapper functions The functions cl_isize_lock and cl_isize_unlock can be replaced with direct calls to ll_inode_size_lock and ll_inode_size_unlock. Thus drop the wrapper functions. Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/lclient/lcommon_cl.c | 4 ++-- drivers/staging/lustre/lustre/llite/llite_internal.h | 10 ---------- 2 files changed, 2 insertions(+), 12 deletions(-) commit 74d4ec114972d0ea0489db2d1fb772b9d5bd64ce Author: Shraddha Barke Date: Fri Oct 30 20:59:09 2015 +0530 Staging: lustre: osc: Declare local functions as static Declare osc_real_create, osc_create and osc_cleanup as static since they are used only in this particular file. Also remove the corresponding declarations from header file. Signed-off-by: Shraddha Barke Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/osc/osc_internal.h | 6 ------ drivers/staging/lustre/lustre/osc/osc_request.c | 13 +++++++------ 2 files changed, 7 insertions(+), 12 deletions(-) commit 66a9c9a8c2fa23476dc2701a69ad09cc3ecf2146 Author: Shraddha Barke Date: Fri Oct 30 20:59:08 2015 +0530 Staging: lustre: fld: Remove unused declaration Function fld_dump_cache_entries is declared in header file but not used. Hence remove the declaration. Signed-off-by: Shraddha Barke Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/fld/fld_internal.h | 1 - 1 file changed, 1 deletion(-) commit 649280ab5bcd1918774b6206f410d08c055341a6 Author: Shraddha Barke Date: Fri Oct 30 20:59:07 2015 +0530 Staging: lustre: fld: Remove unused functions Remove functions fld_cache_delete and fld_cache_delete_nolock since they are defined but not used. Signed-off-by: Shraddha Barke Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/fld/fld_cache.c | 26 ------------------------ drivers/staging/lustre/lustre/fld/fld_internal.h | 4 ---- 2 files changed, 30 deletions(-) commit 741fddbf504815e2e19d02c9a0a73757d8afc594 Author: Shraddha Barke Date: Fri Oct 30 20:59:06 2015 +0530 Staging: lustre: fld: Declare local functions as static Declare fld_cache_entry_delete and fld_cache_insert_nolock as static since they are used only in this particular file. Also remove corresponding declarations from header file. Signed-off-by: Shraddha Barke Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/fld/fld_cache.c | 8 ++++---- drivers/staging/lustre/lustre/fld/fld_internal.h | 4 ---- 2 files changed, 4 insertions(+), 8 deletions(-) commit bbbc18ebdb23ed82424672f25b35aa84b3cdcad9 Author: Shraddha Barke Date: Fri Oct 30 20:59:05 2015 +0530 Staging: lustre: fld: Remove unused seq_client_alloc_super Remove function seq_client_alloc_super since it is defined but not used. Also remove corresponding declaration from header file. Signed-off-by: Shraddha Barke Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/fid/fid_internal.h | 2 -- drivers/staging/lustre/lustre/fid/fid_request.c | 21 --------------------- 2 files changed, 23 deletions(-) commit c3cdad8899c6608a2e928e1ce4fcaaddbf17cc96 Author: Shraddha Barke Date: Fri Oct 30 20:59:04 2015 +0530 Staging: lustre: mdc: Remove unused mdc_open function from header Function mdc_open is declared in header file but it is not used anywhere. Hence drop the declaration. Signed-off-by: Shraddha Barke Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/mdc/mdc_internal.h | 5 ----- 1 file changed, 5 deletions(-) commit 358855b2681e16d047357599efd0884fab367419 Author: Shraddha Barke Date: Fri Oct 30 20:59:03 2015 +0530 Staging: lustre: mdc: Declare local functions as static Declare mdc_get_lustre_md, mdc_free_lustre_md and mdc_clear_open_replay_data as static since they are used only in this particular file. Also remove corresponding declarations from header files. Signed-off-by: Shraddha Barke Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/mdc/mdc_internal.h | 8 -------- drivers/staging/lustre/lustre/mdc/mdc_request.c | 14 ++++++++------ 2 files changed, 8 insertions(+), 14 deletions(-) commit 54cc3794cec410ec2f7daa00089777562218780a Author: Dan Carpenter Date: Thu Oct 29 16:51:23 2015 +0300 staging: lustre: potential underflow in libcfs_kkuc_group_add() My static checker says that "group" is a user controlled number that can be negative leading to an array underflow. I have looked at it, and I'm not an expert enough in lustre to say for sure if it is really a bug. Anyway, it's simple enough to make the variable unsigned which pleases the static checker and makes it easier to audit. Signed-off-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/include/linux/libcfs/libcfs_kernelcomm.h | 2 +- drivers/staging/lustre/lustre/libcfs/kernel_user_comm.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) commit df18a80af3d77d58223d8d88c1660c51108106e8 Author: Dan Carpenter Date: Thu Oct 29 12:26:36 2015 +0300 staging: lustre: remove m_ prefix from function pointers All the callers call these function pointers without the "m_" prefix and use macro magic to add it later behind the scenes. It means that you can't grep for the call sites. I considered modifying the call sites but in the end I decided that the "m_" prefix doesn't add anything so we can just get rid of it. Signed-off-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/obd.h | 134 +++++++++++----------- drivers/staging/lustre/lustre/include/obd_class.h | 8 +- drivers/staging/lustre/lustre/lmv/lmv_obd.c | 58 +++++----- drivers/staging/lustre/lustre/mdc/mdc_request.c | 60 +++++----- 4 files changed, 130 insertions(+), 130 deletions(-) commit a13b1f3241fcc4fa09851dca1d73d9fca11d6275 Author: Dan Carpenter Date: Thu Oct 29 12:24:40 2015 +0300 staging: lustre: remove o_ prefix from function pointers We mostly refer to these function pointers using macros that use macro magic to add the "o_" prefix to the front. It means that you can't use cscope to find the caller. Heck, you can't even grep for it. I looked at preserving the "o_" prefix by removing the macro magic and adding "o_" to all the call sites but then I realized that, really, the prefix doesn't add any value. Let's just remove it. Signed-off-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/obd.h | 188 ++++++++++----------- drivers/staging/lustre/lustre/include/obd_class.h | 8 +- drivers/staging/lustre/lustre/lmv/lmv_obd.c | 34 ++-- drivers/staging/lustre/lustre/lov/lov_obd.c | 58 +++---- drivers/staging/lustre/lustre/mdc/mdc_request.c | 40 ++--- drivers/staging/lustre/lustre/mgc/mgc_request.c | 28 +-- drivers/staging/lustre/lustre/obdclass/genops.c | 4 +- .../staging/lustre/lustre/obdecho/echo_client.c | 8 +- drivers/staging/lustre/lustre/osc/osc_request.c | 54 +++--- 9 files changed, 211 insertions(+), 211 deletions(-) commit ab4199034f2ba29f6512e9eccbed46bdb0772e44 Author: Shivani Bhardwaj Date: Thu Oct 29 18:59:14 2015 +0530 Staging: lustre: rpc: Drop unnecessary wrapper function Remove the function srpc_post_active_rqtbuf() and replace its only call with the function srpc_post_active_rdma() by adding appropriate parameters. Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/selftest/rpc.c | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) commit cfa38118d3d736c7586e5b9a92b36c9b9b2bf5f3 Author: Shivani Bhardwaj Date: Thu Oct 29 12:28:31 2015 +0530 Staging: lustre: config: Remove unnecessary wrapper functions Remove the function lnet_ipaddr_free_enumeration() and replace all its calls with LIBCFS_FREE(). Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/lnet/config.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit 7bcd831b8579212303ec7c30e975432b914493dc Author: Shivani Bhardwaj Date: Thu Oct 29 12:08:06 2015 +0530 Staging: lustre: api-ni: Drop unneeded wrapper function Remove the function lnet_create_interface_cookie() and replace its call with the function ktime_get_ns(). Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/lnet/api-ni.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) commit a2ce13a7bb03f7e09514e2022cf019ae790a97f0 Author: Shivani Bhardwaj Date: Thu Oct 29 11:50:35 2015 +0530 Staging: lustre: console: Remove irrelevant return statement Remove return statement from the function lstcon_group_ndlink_move() as its return type is void. Fix checkpatch WARNING: void function return statements are not generally useful Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/selftest/console.c | 2 -- 1 file changed, 2 deletions(-) commit 33db686a22e502ba127138912814e8468ac51ed6 Author: Shivani Bhardwaj Date: Thu Oct 29 11:02:23 2015 +0530 Staging: lustre: console: Drop unnecessary wrapper function Remove the function lstcon_group_put() and replace all its calls with the function lstcon_group_decref() because the former function just performs the job of calling the latter. Signed-off-by: Shivani Bhardwaj Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/selftest/console.c | 78 ++++++++++++-------------- 1 file changed, 36 insertions(+), 42 deletions(-) commit e5b6b5d48fa26dd5bb1ec8d6829d318ef4c8585b Author: Ksenija Stanojevic Date: Wed Oct 28 17:30:43 2015 -0700 Staging: lustre: Replace LPROCFS_CLIMP_EXIT with up_read In all call sites type of argument that macro LPROCFS_CLIMP_EXIT use is the same, so replace it with up_read function. Also remove the macro since it's no longer used. Signed-off-by: Ksenija Stanojevic Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/lprocfs_status.h | 3 --- drivers/staging/lustre/lustre/mgc/mgc_request.c | 2 +- drivers/staging/lustre/lustre/obdclass/lprocfs_status.c | 12 ++++++------ drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c | 6 +++--- 4 files changed, 10 insertions(+), 13 deletions(-) commit b2cb0686041c91b0bfdd580e1b54eec06af3280d Author: H Hartley Sweeten Date: Fri Oct 30 11:10:05 2015 -0700 staging: comedi: adv_pci1710: separate out PCI-1720 support as a new driver The PCI-1710 series boards are multifunction data acquisition boards with analog inputs and outputs, digital inputs and outputs, and counter/timer functions. The PCI-1720 is a simple 4 channel analog output board. It also uses a unique register map. Separate out the PCI-1720 support as a new driver, adv_pci1720, to ease maintainability. Fix some issues with the PCI-1720 support in the new driver: 1) the registers are all 8-bit 2) remove the analog output "reset" when the driver attaches/detaches 3) disable "synchronized output" to simplify the analog outputs 4) remove the need for the private data 5) add support for the BoardID register to allow multiple cards Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/Kconfig | 12 +- drivers/staging/comedi/drivers/Makefile | 1 + drivers/staging/comedi/drivers/adv_pci1710.c | 109 +-------------- drivers/staging/comedi/drivers/adv_pci1720.c | 195 +++++++++++++++++++++++++++ 4 files changed, 212 insertions(+), 105 deletions(-) commit 2aadecb60a33c791bfb729d65c158a22f636961a Author: Ksenija Stanojevic Date: Sat Oct 31 06:36:44 2015 -0700 Staging: comedi: adl_pci9118: Fix endian sparse warning Fix following sparse warning: warning: cast to restricted __be16 data is pointer of type void and can be used to store any type of data. barray and array have the same 16 bit offset. Signed-off-by: Ksenija Stanojevic Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adl_pci9118.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 212efdb1be77ae97e21afc35310f7f9c428f875c Author: Ksenija Stanojevic Date: Sat Oct 31 06:34:29 2015 -0700 Staging: comedi: ni_mio_common: Fix endian sparse warning Fix following sparse warnings: warning: cast to restricted __le32 warning: cast to restricted __le16 warning: incorrect type in assignment (different base types) expected unsigned short [unsigned] [assigned] val got restricted __le16 [usertype] Data is pointer of type void and can be used to store any type of data. In function ni_ai_munge: barray and array have the same 16 bit offset. blarray and larray have the same 32 bit offset. Signed-off-by: Ksenija Stanojevic Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) commit 90e6228a995816750f96c70d94298e12c08511f4 Author: Ksenija Stanojevic Date: Thu Oct 29 21:58:16 2015 -0700 Staging: comedi: das16: Fix sparse endian warning Fix following sparse warning: warning: cast to restricted __le16 This change is safe because array is pointer of type void and can be used to store any type of data, also offset of the array would be the same since unsigned short and __le16 are both 16 bits in size. Signed-off-by: Ksenija Stanojevic Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das16.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 2bb129ebb23d2dfec3cd9c22dc7defd681cfcd58 Author: Julia Lawall Date: Fri Nov 13 12:46:00 2015 +0100 dmaengine: ioatdma: constify dca_ops structures The dca_ops structure is never modified, so declare it as const. Done with the help of Coccinelle. Signed-off-by: Julia Lawall Acked-by: Dan Williams Signed-off-by: Vinod Koul drivers/dca/dca-core.c | 3 ++- drivers/dma/ioat/dca.c | 2 +- include/linux/dca.h | 5 +++-- 3 files changed, 6 insertions(+), 4 deletions(-) commit d3cd63f91b84c60e0b30ee8a45b8f291dac7bbff Author: Dave Jiang Date: Fri Nov 6 13:24:01 2015 -0700 dmaengine: IOATDMA: Cleanup pre v3.0 chansts register reads Remove pre-3.0 channel status reads. 3.0 and later chansts register is 64bit and can be read 64bit. This was clarified with the hardware architects and since the driver now only support 3.0+ we don't need the legacy support Signed-off-by: Dave Jiang Signed-off-by: Vinod Koul drivers/dma/ioat/dma.h | 34 +--------------------------------- drivers/dma/ioat/registers.h | 16 +++------------- 2 files changed, 4 insertions(+), 46 deletions(-) commit b341b4a13ca2c6ea8a426a9befb4dec0d7040860 Author: M'boumba Cedric Madianga Date: Fri Oct 16 15:59:16 2015 +0200 ARM: configs: Add STM32 DMA support in STM32 defconfig This patch adds STM32 DMA support in stm32_defconfig file Signed-off-by: M'boumba Cedric Madianga Signed-off-by: Vinod Koul arch/arm/configs/stm32_defconfig | 2 ++ 1 file changed, 2 insertions(+) commit d8b468394fb711b077742a5234504c632525a47f Author: M'boumba Cedric Madianga Date: Fri Oct 16 15:59:14 2015 +0200 dmaengine: Add STM32 DMA driver This patch adds support for the STM32 DMA controller. Signed-off-by: M'boumba Cedric Madianga Signed-off-by: Vinod Koul drivers/dma/Kconfig | 12 + drivers/dma/Makefile | 1 + drivers/dma/stm32-dma.c | 1141 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 1154 insertions(+) commit 5827a4bae95b943f2d7dc9b33957c83a69f256eb Author: M'boumba Cedric Madianga Date: Fri Oct 16 15:59:13 2015 +0200 dt-bindings: Document the STM32 DMA bindings This patch adds documentation of device tree bindings for the STM32 dma controller. Signed-off-by: M'boumba Cedric Madianga Acked-by: Rob Herring Signed-off-by: Vinod Koul .../devicetree/bindings/dma/stm32-dma.txt | 82 ++++++++++++++++++++++ 1 file changed, 82 insertions(+) commit d3651b8e5cdf8773a7d74839e53454e4a0d48ffe Author: Robert Jarzmik Date: Tue Oct 13 21:54:30 2015 +0200 dmaengine: pxa_dma: declare transfer are reusable As this driver provides a mechanism to reuse transfers, declare it in its probe function. Signed-off-by: Robert Jarzmik Signed-off-by: Vinod Koul drivers/dma/pxa_dma.c | 1 + 1 file changed, 1 insertion(+) commit 9eeacd3a2f17438d9d286ff2f78c4709a4148be7 Author: Robert Jarzmik Date: Tue Oct 13 21:54:29 2015 +0200 dmaengine: enable DMA_CTRL_REUSE In the current state, the capability of transfer reuse can neither be set by a slave dmaengine driver, nor used by a client driver, because the capability is not available to dma_get_slave_caps(). Fix this by adding a way to declare the capability. Fixes: 272420214d26 ("dmaengine: Add DMA_CTRL_REUSE") Signed-off-by: Robert Jarzmik Signed-off-by: Vinod Koul drivers/dma/dmaengine.c | 1 + include/linux/dmaengine.h | 2 ++ 2 files changed, 3 insertions(+) commit 13bb26ae8850ede9cfb5ba20e646fe08e23aca97 Author: Robert Jarzmik Date: Tue Oct 13 21:54:28 2015 +0200 dmaengine: virt-dma: don't always free descriptor upon completion This patch attempts to enhance the case of a transfer submitted multiple times, and where the cost of creating the descriptors chain is not negligible. This happens with big video buffers (several megabytes, ie. several thousands of linked descriptors in one scatter-gather list). In these cases, a video driver would want to do : - tx = dmaengine_prep_slave_sg() - dma_engine_submit(tx); - dma_async_issue_pending() - wait for video completion - read video data (or not, skipping a frame is also possible) - dma_engine_submit(tx) => here, the descriptors chain recalculation will take time => the dma coherent allocation over and over might create holes in the dma pool, which is counter-productive. - dma_async_issue_pending() - etc ... In order to cope with this case, virt-dma is modified to prevent freeing the descriptors upon completion if DMA_CTRL_REUSE flag is set in the transfer. This patch is a respin of the former DMA_CTRL_ACK approach, which was reverted due to a regression in audio drivers. Signed-off-by: Robert Jarzmik Signed-off-by: Vinod Koul drivers/dma/virt-dma.c | 46 ++++++++++++++++++++++++++++++++++++++++------ drivers/dma/virt-dma.h | 12 ++++++++++++ 2 files changed, 52 insertions(+), 6 deletions(-) commit bc0e7345168c0f7483d2d1da86285d89136417cd Author: Lars-Peter Clausen Date: Tue Oct 20 11:46:31 2015 +0200 ALSA: pcm_dmaengine: Properly synchronize DMA on shutdown Use the new dmaengine_synchronize() function to make sure that all complete callbacks have finished running before the runtime data, which is accessed in the completed callback, is freed. This fixes a long standing use-after-free race condition that has been observed on some systems. Signed-off-by: Lars-Peter Clausen Reviewed-by: Takashi Iwai Signed-off-by: Vinod Koul sound/core/pcm_dmaengine.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 860dd64c4382709a276eb4b7ef36596579dba04a Author: Lars-Peter Clausen Date: Tue Oct 20 11:46:30 2015 +0200 dmaengine: axi_dmac: Add synchronization support Implement the new device_synchronize() callback to allow proper synchronization when stopping a channel. Since the driver already makes sure that no new complete callbacks are scheduled after the device_terminate_all() callback has been called, all left to do in the device_synchronize() callback is to wait for all currently running complete callbacks to finish. Signed-off-by: Lars-Peter Clausen Signed-off-by: Vinod Koul drivers/dma/dma-axi-dmac.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 2ed086296e60c3ca9a63a025701f4d104f4ced85 Author: Lars-Peter Clausen Date: Tue Oct 20 11:46:29 2015 +0200 dmaengine: virt-dma: Add synchronization helper function Add a synchronize helper function for the virt-dma library. The function makes sure that any scheduled descriptor complete callbacks have finished running before the function returns. This needs to be called by drivers using virt-dma in their device_synchronize() callback. Depending on the driver additional operations might be necessary in addition to calling vchan_synchronize() to ensure proper synchronization. Signed-off-by: Lars-Peter Clausen Signed-off-by: Vinod Koul drivers/dma/virt-dma.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit b36f09c3c441a6e59eab9315032e7d546571de3f Author: Lars-Peter Clausen Date: Tue Oct 20 11:46:28 2015 +0200 dmaengine: Add transfer termination synchronization support The DMAengine API has a long standing race condition that is inherent to the API itself. Calling dmaengine_terminate_all() is supposed to stop and abort any pending or active transfers that have previously been submitted. Unfortunately it is possible that this operation races against a currently running (or with some drivers also scheduled) completion callback. Since the API allows dmaengine_terminate_all() to be called from atomic context as well as from within a completion callback it is not possible to synchronize to the execution of the completion callback from within dmaengine_terminate_all() itself. This means that a user of the DMAengine API does not know when it is safe to free resources used in the completion callback, which can result in a use-after-free race condition. This patch addresses the issue by introducing an explicit synchronization primitive to the DMAengine API called dmaengine_synchronize(). The existing dmaengine_terminate_all() is deprecated in favor of dmaengine_terminate_sync() and dmaengine_terminate_async(). The former aborts all pending and active transfers and synchronizes to the current context, meaning it will wait until all running completion callbacks have finished. This means it is only possible to call this function from non-atomic context. The later function does not synchronize, but can still be used in atomic context or from within a complete callback. It has to be followed up by dmaengine_synchronize() before a client can free the resources used in a completion callback. In addition to this the semantics of the device_terminate_all() callback are slightly relaxed by this patch. It is now OK for a driver to only schedule the termination of the active transfer, but does not necessarily have to wait until the DMA controller has completely stopped. The driver must ensure though that the controller has stopped and no longer accesses any memory when the device_synchronize() callback returns. This was in part done since most drivers do not pay attention to this anyway at the moment and to emphasize that this needs to be done when the device_synchronize() callback is implemented. But it also helps with implementing support for devices where stopping the controller can require operations that may sleep. Signed-off-by: Lars-Peter Clausen Signed-off-by: Vinod Koul Documentation/dmaengine/client.txt | 38 ++++++++++++++- Documentation/dmaengine/provider.txt | 20 +++++++- drivers/dma/dmaengine.c | 5 +- include/linux/dmaengine.h | 90 ++++++++++++++++++++++++++++++++++++ 4 files changed, 148 insertions(+), 5 deletions(-) commit 023e06dfa6882f500b9c86fd61f0b1913aa07f36 Author: Hakjoo Kim Date: Sun Mar 15 23:00:32 2015 +0100 pinctrl: exynos: add exynos5410 SoC specific data Add Samsung EXYNOS5410 SoC specific data to enable pinctrl support for all platforms based on EXYNOS5410. Signed-off-by: Hakjoo Kim [AF: Rebased onto Exynos5260, irq_chip consolidation, const'ification] Signed-off-by: Andreas Färber Acked-by: Tomasz Figa Tested-by: Pavel Fedin [k.kozlowski: Rebased on current v4.3] Signed-off-by: Krzysztof Kozlowski .../bindings/pinctrl/samsung-pinctrl.txt | 1 + drivers/pinctrl/samsung/pinctrl-exynos.c | 103 +++++++++++++++++++++ drivers/pinctrl/samsung/pinctrl-samsung.c | 2 + drivers/pinctrl/samsung/pinctrl-samsung.h | 1 + 4 files changed, 107 insertions(+) commit 7d173f26353df0e90ea1223b80f6834845f27435 Author: Nizam Haider Date: Mon Nov 9 18:20:45 2015 +0530 iio: adc: ad7793: removed unnecessary else. Else is not generally useful after a break or return. Signed-off-by: Nizam Haider Signed-off-by: Jonathan Cameron drivers/iio/adc/ad7793.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit e0c961bdaf2786bc9795efff6e87a15491778384 Author: Nizam Haider Date: Mon Nov 9 19:56:02 2015 +0530 iio: adc: mxs-lradc: Prefer using the BIT macro Replaces bit shifting on 1 with the BIT(x) macro Signed-off-by: Nizam Haider Signed-off-by: Jonathan Cameron drivers/staging/iio/adc/mxs-lradc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a1513641892b220bc5b7ce63e44b81658702cdae Author: Sean Nyekjaer Date: Mon Nov 9 13:53:00 2015 +0100 iio: ti-ads8688: Add DT binding documentation Adding binding documentation for Texas Instruments ADS8688 ADC. Signed-off-by: Sean Nyekjaer Reviewed-by: Martin Hundebøll Acked-by: Rob Herring Signed-off-by: Jonathan Cameron .../devicetree/bindings/iio/adc/ti-ads8688.txt | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 3e87e78383283119a7d41f8a4cab8ef0a5c9acab Author: Sean Nyekjaer Date: Mon Nov 9 13:52:59 2015 +0100 iio: adc: Add TI ADS8688 This patch adds support for the Texas Intruments ADS8688 ADC. Signed-off-by: Sean Nyekjaer Reviewed-by: Martin Hundebøll Signed-off-by: Jonathan Cameron drivers/iio/adc/Kconfig | 10 + drivers/iio/adc/Makefile | 1 + drivers/iio/adc/ti-ads8688.c | 486 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 497 insertions(+) commit f47dff323088462e7b0ac52d1ba41ce953a5ce20 Author: Sean Nyekjaer Date: Mon Nov 9 13:55:34 2015 +0100 iio: core: added support for IIO_VAL_INT Added core support for IIO_VAL_INT in write_raw_get_fmt function. Signed-off-by: Sean Nyekjaer Signed-off-by: Jonathan Cameron drivers/iio/industrialio-core.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 34dc578d99449a83dcb0f5ef4444215590183af4 Author: Giuseppe Barba Date: Thu Nov 12 08:36:49 2015 +0100 iio: st-accel: add support for lis2dh12 This commit add support for STMicroelectronics lis2dh12 accelerometer. Datasheet for this device can be found here: http://www.st.com/st-web-ui/static/active/en/resource/technical/ document/datasheet/DM00091513.pdf Signed-off-by: Giuseppe Barba Acked-by: Denis Ciocca Acked-by: Daniel Baluta Signed-off-by: Jonathan Cameron Documentation/devicetree/bindings/iio/st-sensors.txt | 1 + drivers/iio/accel/Kconfig | 2 +- drivers/iio/accel/st_accel.h | 1 + drivers/iio/accel/st_accel_core.c | 1 + drivers/iio/accel/st_accel_i2c.c | 5 +++++ drivers/iio/accel/st_accel_spi.c | 1 + 6 files changed, 10 insertions(+), 1 deletion(-) commit 4d2c50a0a9ca75fcd0fd57947fb7b394932e482a Author: Takashi Sakamoto Date: Sat Nov 14 16:54:51 2015 +0900 ALSA: fireworks: change type of substream counter from atomic_t to unsigned int The counter is incremented/decremented in critical section protected with mutex. Therefore, no need to use atomic_t. This commit changes the type to unsigned int. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/fireworks/fireworks.h | 4 ++-- sound/firewire/fireworks/fireworks_midi.c | 8 ++++---- sound/firewire/fireworks/fireworks_pcm.c | 8 ++++---- sound/firewire/fireworks/fireworks_stream.c | 25 ++++++++++++------------- 4 files changed, 22 insertions(+), 23 deletions(-) commit ea54a37442639cf884918de69db46caf693490f8 Author: Takashi Sakamoto Date: Sat Nov 14 16:54:50 2015 +0900 ALSA: fireworks: move mutex from function callees to callers Currently, critical section is protected by mutex in functions of fireworks_stream.c. Callers increments/decrements substreams counter before calling the functions. Moving mutex to the callers code allows to change type of the substeram counter from atomic_t to unsigned int. This commit is a preparation for obsoleting usage of atomic_t for substream counter. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/fireworks/fireworks_midi.c | 8 ++++++++ sound/firewire/fireworks/fireworks_pcm.c | 20 ++++++++++++++++---- sound/firewire/fireworks/fireworks_stream.c | 7 ------- 3 files changed, 24 insertions(+), 11 deletions(-) commit 3053600ed4f71115631258f0d64eca0d10b11bdc Author: Dominique Martinet Date: Mon Sep 7 17:06:54 2015 +0200 9p: trans_fd, bail out if recv fcall if missing req->rc is pre-allocated early on with p9_tag_alloc and shouldn't be missing Signed-off-by: Dominique Martinet Signed-off-by: Eric Van Hensbergen net/9p/trans_fd.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit 947867aa195b65471f4767fdf761e3841577f90e Author: Dominique Martinet Date: Thu Sep 3 11:28:20 2015 +0200 9p: trans_fd, read rework to use p9_parse_header Most of the changes here are no-op and just renaming to use a fcall struct, needed for p9_parse_header It fixes the unaligned memory access to read the tag and defers to common functions for part of the protocol knowledge (although header length is still hard-coded...) Reported-By: Rob Landley Signed-Off-By: Dominique Martinet Signed-off-by: Eric Van Hensbergen net/9p/trans_fd.c | 75 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 40 insertions(+), 35 deletions(-) commit c7c72c5a127507687c737ede0f97d85bde674433 Author: Aneesh Kumar K.V Date: Thu Sep 3 13:36:51 2015 +0530 net/9p: Add device name details on error If we use wrong device name 9p mount fails with error "9pnet_virtio: no channels available" Improve the error output as below "9pnet_virtio: no channels available for device /dev/root" Signed-off-by: Aneesh Kumar K.V Signed-off-by: Eric Van Hensbergen net/9p/trans_virtio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d1c0a0019aed692020da523d5fa9f2ebb49a018a Author: jim.bride@linux.intel.com Date: Fri Nov 6 15:30:54 2015 -0800 drm/i915/skl: Update DDI translation tables for SKL While comparing the B-Spec with the code I noticed that several values in these tables have been updated in the spec, so I changed the code to match.. Cc: Rodrigo Vivi Signed-off-by: Jim Bride Reviewed-by: Ander Conselvan de Oliveira Link: http://patchwork.freedesktop.org/patch/msgid/1446852654-883-1-git-send-email-jim.bride@linux.intel.com drivers/gpu/drm/i915/intel_ddi.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit e4d4c05bfb3a2dcba21422df160a67739dc80688 Author: Ander Conselvan de Oliveira Date: Wed Nov 11 15:15:54 2015 +0200 drm/i915: Fix SKL i_boost level The i_boost level in the DDI translation tables are stored per level. However, skl_ddi_set_iboos() would choose an entry of that table based on the port argument. Cc: Jim Bride Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Jim Bride Link: http://patchwork.freedesktop.org/patch/msgid/1447247754-802-1-git-send-email-ander.conselvan.de.oliveira@intel.com drivers/gpu/drm/i915/intel_ddi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 6380d62a1b1ca498f2187c9702f1dec00ad527e0 Author: Simon Horman Date: Thu Nov 12 10:29:23 2015 +0900 ARM: shmobile: gose: Add QSPI device to DT Enable the QSPI controller in the gose device tree. Based on similar work for the silk board by Vladimir Barinov and Sergei Shtylyov. Signed-off-by: Simon Horman Acked-by: Geert Uytterhoeven arch/arm/boot/dts/r8a7793-gose.dts | 43 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) commit 469352ad3c43e689c15cd396cbb750ee831ab63e Author: Simon Horman Date: Thu Nov 12 10:29:22 2015 +0900 ARM: shmobile: r8a7793: Add QSPI device to DT Instantiate the QSPI controller in the r8a7793 device tree. Based on similar work for the r8a7794 by Hisashi Nakamura and Sergei Shtylyov. Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7793.dtsi | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit 38eb6a3aaf08cc8a70ef3d6a767521e2831a8a4c Author: Simon Horman Date: Thu Nov 12 10:29:21 2015 +0900 ARM: shmobile: r8a7793: Add DMAC devices to DT Instantiate the two system DMA controllers in the r8a7793 device tree. Based on similar work for the r8a7793 by Laurent Pinchart. Signed-off-by: Simon Horman Reviewed-by: Laurent Pinchart arch/arm/boot/dts/r8a7793.dtsi | 72 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) commit d39de9919a0cded8ddb1655441cf403ad5690d6d Author: Vasanthakumar Thiagarajan Date: Thu Nov 5 11:34:00 2015 +0530 ath10k: fix peerid configuration in htt tx desc for htt version < 3.4 Of a word in struct htt_data_tx_desc htt version >= 3.4 firmware uses LSB 16-bit for frequency configuration which is used for offchannel tx and MSB 16-bit is for peerid. But other firmwares using version 2.X (10.1, 10.2.2, 10.2.4 and 10.4) are using 32-bit for peerid in htt tx desc. So far no issue is found with the existing code setting peerid and freq for HTT version 2.X, this could be mainly because of 0 as frequecy (home channel) is being always passed with those firmwares. There may be issues when non-zero freq is passed with firmware using < 3.4 htt version. To be safe use target_version_major and target_version_minor along with htt-op-version before configuring peer id and freq in htt tx desc. This patch extends ath10k_mac_tx_frm_has_freq() to check for htt_op_version_tlv and uses the helper while setting peerid in htt_tx_desc. Fixes: 8d6d36243610 ("ath10k: fix offchan reliability") Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/htt.h | 9 +++++++-- drivers/net/wireless/ath/ath10k/htt_tx.c | 11 +++++++++-- drivers/net/wireless/ath/ath10k/mac.c | 5 +++-- drivers/net/wireless/ath/ath10k/mac.h | 1 + 4 files changed, 20 insertions(+), 6 deletions(-) commit 8921f5f7781db8bc5f21451eb6816c2cc293c613 Author: Vasanthakumar Thiagarajan Date: Thu Nov 5 11:33:59 2015 +0530 ath10k: rename the helper which is used for off-channel tx Rename ath10k_mac_need_offchan_tx_work() to ath10k_mac_tx_frm_has_freq() to make it more meaningful. This helper will be used in the future change. No functionality change. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit b54e16f1040adcd7341ab07ca07ee8577144e4fa Author: Vasanthakumar Thiagarajan Date: Thu Nov 5 11:33:58 2015 +0530 ath10k: fix peer assoc complete WMI command for 10.4 There is an extra 4-byte member when compared to WMI 10.2 added to assoc complete command in WMI 10.4. This new member is used for 160Mhz related configuration. This WMI command mismatch between host and firmware does not cause any real issues because this new member is not used in 10.4 firmwares so far (10.4.1.00030-1). This difference in WMI command interface brings in a new wmi_ops for 10.4 gen_peer_assoc(). No noticeable functionality differences with this change can be seen with the current 10.4 firmwares, but the WMI interface has to be fixed to work with future 10.4 firmwares which may be using this new member. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi.c | 37 ++++++++++++++++++++++++++++++++++- drivers/net/wireless/ath/ath10k/wmi.h | 5 +++++ 2 files changed, 41 insertions(+), 1 deletion(-) commit 26add94cd535d1e000e7871fe69c7bb89e942d67 Author: Brian Norris Date: Wed Nov 11 17:05:56 2015 -0800 mtd: partitions: kill unused ecclayout struct This field is not used. Reported here: http://lists.infradead.org/pipermail/linux-mtd/2015-October/062417.html Reported-by: Brian Foster Cc: Brian Foster Signed-off-by: Brian Norris Reviewed-by: Boris Brezillon include/linux/mtd/partitions.h | 1 - 1 file changed, 1 deletion(-) commit 938672338991ac8bef5cb025b187ab8d6230ac6c Author: Brian Norris Date: Wed Nov 11 16:47:52 2015 -0800 mtd: zero out mtd_partition struct before using it It's easier to guarantee we've cleared out all unused fields with memset() than by manually initializing each field. Signed-off-by: Brian Norris Reviewed-by: Boris Brezillon drivers/mtd/mtdpart.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 215a02fd30871d0d888d27a3154588b66f5dbec2 Author: Brian Norris Date: Wed Nov 11 16:26:04 2015 -0800 mtd: grab a reference to the MTD of_node before registering it We now stick the device node representing the current MTD (if any) into sysfs, so let's make sure we have a reference to it before doing that. Suggested-by: Boris Brezillon Signed-off-by: Brian Norris Reviewed-by: Boris Brezillon drivers/mtd/mtdcore.c | 4 ++++ 1 file changed, 4 insertions(+) commit ca1283d5020dfe692f8c0728d17b15066adadf6b Author: Animesh Manna Date: Wed Oct 28 23:59:07 2015 +0200 drm/i915/skl: Removed assert for csr-fw-loading check during disabling dc6 As during disabling dc6 no need to check for csr firmware loading status, so removed the assert call (Requested by Damien). Cc: Damien Lespiau Signed-off-by: Animesh Manna Signed-off-by: Imre Deak Tested-by: Daniel Stone # SKL Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1446069547-24760-14-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/intel_runtime_pm.c | 1 - 1 file changed, 1 deletion(-) commit f514c2d8428584431fc0a3b64a4c3c7b8df3e3ae Author: Imre Deak Date: Wed Oct 28 23:59:06 2015 +0200 drm/i915/gen9: flush DMC fw loading work during system suspend Currently during system s/r we enable/disable DC6, so before we do so make sure that the firmware loading is complete. Note that whether we need to enable DC6 for S3/S4 is still open. At least the firmware program is lost during S3 and we need to reprogram it after resuming. Until this is clarified we keep the current behavior and enable/disable DC6. Signed-off-by: Imre Deak Reviewed-by: Animesh Manna Tested-by: Daniel Stone # SKL Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1446069547-24760-13-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/i915_drv.c | 3 +++ 1 file changed, 3 insertions(+) commit 15e72c1fc118731970ab1a94fb894039b8abfff4 Author: Animesh Manna Date: Wed Oct 28 23:59:05 2015 +0200 drm/i915/gen9: Use flush_work to synchronize with dmc loader During driver unload to ensure we dont have any pending task, flush_work added to complete firmware loading task. v1: Initial version. v2: As per review comments from Daniel, Removed flush_work from skl_set_power_well. As we have taken power well refernece and rpm count during firmware loading by using display_power_domain_get/put - this will always ensure rpm will be blocked if firmware is not loaded. Cc: Daniel Vetter Cc: Damien Lespiau Cc: Imre Deak Cc: Sunil Kamath Signed-off-by: Animesh Manna Signed-off-by: Imre Deak Tested-by: Daniel Stone # SKL Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1446069547-24760-12-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/i915_drv.c | 2 -- drivers/gpu/drm/i915/intel_csr.c | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) commit 8144ac59bdc9205c45cd8c45374967e6be90f7d8 Author: Daniel Vetter Date: Wed Oct 28 23:59:04 2015 +0200 drm/i915: Use request_firmware and our own async work Two benefits: - We can use FW_LOADER_USERSPACE_FALLBACK. - We can use flush_work to synchronize with the oustanding worker, which is a notch more obvious what it does than having a special completion. The next patch will properly synchronize against the async loader in the resume and unload code. Cc: Damien Lespiau Cc: Imre Deak Cc: Sunil Kamath Signed-off-by: Daniel Vetter Signed-off-by: Animesh Manna Signed-off-by: Imre Deak Tested-by: Daniel Stone # SKL Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1446069547-24760-11-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/intel_csr.c | 26 +++++++++++++------------- 2 files changed, 14 insertions(+), 13 deletions(-) commit 6a6582bfff39f099d0867e8b97b409efd1d84b9a Author: Daniel Vetter Date: Thu Nov 12 17:11:29 2015 +0200 drm/i915/gen9: extract parse_csr_fw The loader function will get a bit more complicated soon, extract the parsing code to make the control flow clearer. While doing that just use dev_priv->csr.dmc_payload as the indicator for whether it all suceeded or not. v2-v3: - unchanged v4: - rebased on top of latest drm-intel-nightly Cc: Damien Lespiau Cc: Imre Deak Cc: Sunil Kamath Signed-off-by: Daniel Vetter Signed-off-by: Animesh Manna [imre: remove note about BE cast from commit message, it's not relevant any more] Signed-off-by: Imre Deak Tested-by: Daniel Stone # SKL [Jani: fix checkpatch warn on multiple blank lines] Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1447341089-2735-1-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/intel_csr.c | 50 +++++++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 19 deletions(-) commit f4448375467d9443a1e74e0552212121b6394332 Author: Daniel Vetter Date: Wed Oct 28 23:59:02 2015 +0200 drm/i915/gen9: Use dev_priv in csr functions As all csr firmware related opertion are not using any any data structures of drm framework level, so better to use dev_priv instead of dev. it's a new style! :) Cc: Damien Lespiau Cc: Imre Deak Cc: Sunil Kamath Signed-off-by: Daniel Vetter Signed-off-by: Animesh Manna Signed-off-by: Imre Deak Tested-by: Daniel Stone # SKL Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1446069547-24760-9-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/i915_dma.c | 6 +++--- drivers/gpu/drm/i915/i915_drv.c | 4 +--- drivers/gpu/drm/i915/intel_csr.c | 26 +++++++++++--------------- drivers/gpu/drm/i915/intel_drv.h | 6 +++--- 4 files changed, 18 insertions(+), 24 deletions(-) commit bffbcd934360721cee27ed45a6558830b0cb7d29 Author: Daniel Vetter Date: Wed Oct 28 23:59:01 2015 +0200 drm/i915/gen9: Don't try to load garbage dmc firmware on resume We need to make sure we don't put garbage into the hw if dmc firmware loading failed mid-thru. Cc: Damien Lespiau Cc: Imre Deak Cc: Sunil Kamath Signed-off-by: Daniel Vetter Signed-off-by: Animesh Manna Signed-off-by: Imre Deak Tested-by: Daniel Stone # SKL Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1446069547-24760-8-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/intel_csr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c729ed88af7b5266325d324672c4fdf8debd70a9 Author: Daniel Vetter Date: Wed Oct 28 23:59:00 2015 +0200 drm/i915/gen9: Simplify csr loading failure printing. If we really want to we can be more verbose here, but we really don't need an entire function for this. Cc: Damien Lespiau Cc: Imre Deak Cc: Sunil Kamath Signed-off-by: Daniel Vetter Signed-off-by: Animesh Manna Signed-off-by: Imre Deak Tested-by: Daniel Stone # SKL Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1446069547-24760-7-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/i915_drv.c | 20 -------------------- drivers/gpu/drm/i915/i915_drv.h | 1 - drivers/gpu/drm/i915/intel_csr.c | 6 ++++-- 3 files changed, 4 insertions(+), 23 deletions(-) commit f98f70d90e2e206380d75a25491371d29a35263e Author: Daniel Vetter Date: Wed Oct 28 23:58:59 2015 +0200 drm/i915/gen9: Align line continuations in intel_csr.c. Standard is to align continuations of parameter lists and if conditions to the opening ( in i915 and drm code. Apply this across the entire file since it was sticking out a bit too much. Cc: Damien Lespiau Cc: Imre Deak Cc: Sunil Kamath Signed-off-by: Daniel Vetter Signed-off-by: Animesh Manna [imre: removed note about reg definitions from the commit message, it's not relevant any more] Signed-off-by: Imre Deak Tested-by: Daniel Stone # SKL Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1446069547-24760-6-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/intel_csr.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) commit 414b7999b8bef3d79c563d8305b1df18da701634 Author: Daniel Vetter Date: Thu Nov 12 17:10:37 2015 +0200 drm/i915/gen9: Remove csr.state, csr_lock and related code. This removes two anti-patterns: - Locking shouldn't be used to synchronize with async work (of any form, whether callbacks, workers or other threads). This is what the mutex_lock/unlock seems to have been for in intel_csr_load_program. Instead ordering should be ensured with the generic wait_for_completion()/complete(). Or more specific functions provided by the core kernel like e.g. flush_work()/cancel_work_sync() in the case of synchronizing with a work item. - Don't invent own completion like the following code did with the (already removed) wait_for(csr_load_status_get()) pattern - it's really hard to get these right when you want them to be _really_ correct (and be fast) in all cases. Furthermore it's easier to read code using the well-known primitives than new ones using non-standard names. Before enabling/disabling DC6 check if the firmware is loaded successfully. This is guaranteed during runtime s/r, since otherwise we don't enable RPM, but not during system s/r. Note that it's still unclear whether we need to enable/disable DC6 during system s/r, until that's clarified, keep the current behavior and enable/disable DC6. Also after this patch there is a race during system s/r where the firmware may not be loaded yet, that's addressed in an upcoming patch. v2-v3: - unchanged v4: - rebased on latest drm-intel-nightly Cc: Damien Lespiau Cc: Imre Deak Cc: Sunil Kamath Signed-off-by: Daniel Vetter Signed-off-by: Animesh Manna [imre: added code and note about checking if the firmware loaded ok, before enabling/disabling it] Reviewed-by: Animesh Manna Signed-off-by: Imre Deak Tested-by: Daniel Stone # SKL Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1447341037-2623-1-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/i915_dma.c | 1 - drivers/gpu/drm/i915/i915_drv.c | 11 ++------ drivers/gpu/drm/i915/i915_drv.h | 10 ------- drivers/gpu/drm/i915/intel_csr.c | 46 +-------------------------------- drivers/gpu/drm/i915/intel_drv.h | 3 --- drivers/gpu/drm/i915/intel_runtime_pm.c | 17 ++---------- 6 files changed, 5 insertions(+), 83 deletions(-) commit af5fead2d994262b38806fa8012f38c1deff6eb6 Author: Daniel Vetter Date: Wed Oct 28 23:58:57 2015 +0200 drm/i915/gen9: move assert_csr_loaded into intel_rpm.c Avoids non-static functions since all the callers are in intel_rpm.c. Cc: Damien Lespiau Cc: Imre Deak Cc: Sunil Kamath Signed-off-by: Daniel Vetter Signed-off-by: Animesh Manna [imre: removed note about reg definitions from commit message, since it's not relevant any more] Signed-off-by: Imre Deak Tested-by: Daniel Stone # SKL [Jani: make assert_csr_loaded static] Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1446069547-24760-4-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/intel_csr.c | 10 ---------- drivers/gpu/drm/i915/intel_drv.h | 1 - drivers/gpu/drm/i915/intel_runtime_pm.c | 8 ++++++++ 3 files changed, 8 insertions(+), 11 deletions(-) commit 01a6908c0c7a0f7dfae50026945340b9efcd2e3e Author: Daniel Vetter Date: Wed Oct 28 23:58:56 2015 +0200 drm/i915: use correct power domain for csr loading Grabbing a runtime pm reference with intel_runtime_pm_get will only prevent device D3. But dmc firmware is required even earlier (namely for the skl power well 2). Hence we need to grab a rpm reference higher up in the hierarchy. For simplicity just grab the _INIT display power well. That's a bit too much, but since the firmware loading task should completely fairly quickly this won't be a real problem really. Cc: Damien Lespiau Cc: Imre Deak Cc: Sunil Kamath Signed-off-by: Daniel Vetter Signed-off-by: Animesh Manna Signed-off-by: Imre Deak Tested-by: Daniel Stone # SKL Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1446069547-24760-3-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/intel_csr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ebae38d061df3deffa7c17b030ea14a5216ee55f Author: Animesh Manna Date: Wed Oct 28 23:58:55 2015 +0200 drm/i915/gen9: csr_init after runtime pm enable Skl is fully dependent on dmc for going to low power state (dc5/dc6). This requires a trigger from rpm. To ensure the dmc firmware is available for runtime pm support rpm-reference-count is used by not releasing the rpm reference if firmware loading is not completed. So moved the intel_csr_ucode_init call after runtime pm enable. Cc: Daniel Vetter Cc: Damien Lespiau Cc: Imre Deak Cc: Sunil Kamath Signed-off-by: Animesh Manna [imre: moved the call right after power domain init to avoid race with the console modesetting] Signed-off-by: Imre Deak Tested-by: Daniel Stone # SKL Reviewed-by: A.Sunil Kamath Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1446069547-24760-2-git-send-email-imre.deak@intel.com drivers/gpu/drm/i915/i915_dma.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit b1a14c6e40413f833dadc1d23b43c530f4b8e381 Author: Jani Nikula Date: Tue Oct 20 15:38:33 2015 +0300 drm/i915: refactor stepping info retrieval Have only one if ladder for platforms and only one range check for size. Makes it easier to handle new platforms. Remove the use of negative return values in char, which might underflow to be positive for some negative error codes. Reviewed-by: Daniel Vetter Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1445344713-1407-3-git-send-email-jani.nikula@intel.com drivers/gpu/drm/i915/intel_csr.c | 46 ++++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 23 deletions(-) commit b9cd5bfd8263ecce6ae1c581b84c34c5670395de Author: Jani Nikula Date: Tue Oct 20 15:38:32 2015 +0300 drm/i915: constify bxt stepping info Reviewed-by: Daniel Vetter Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1445344713-1407-2-git-send-email-jani.nikula@intel.com drivers/gpu/drm/i915/intel_csr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 84cb00ec9495c250d77a2ac953b1433cd56e4aaf Author: Jani Nikula Date: Tue Oct 20 15:38:31 2015 +0300 drm/i915: fix indentation on skl stepping info Reviewed-by: Daniel Vetter Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1445344713-1407-1-git-send-email-jani.nikula@intel.com drivers/gpu/drm/i915/intel_csr.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 1b683729e7ac3b003a03a1fd0803fd0fd3eb448d Author: Tvrtko Ursulin Date: Thu Nov 12 11:59:55 2015 +0000 drm/i915: Remove redundant check in i915_gem_obj_to_vma No need to verify VMA belongs to GGTT since: 1. The function must return a normal VMA belonging to passed in VM. 2. There can only be one normal VMA for any VM. Signed-off-by: Tvrtko Ursulin Cc: Chris Wilson Reviewed-by Chris Wilson Link: http://patchwork.freedesktop.org/patch/msgid/1447329595-17495-1-git-send-email-tvrtko.ursulin@linux.intel.com Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_gem.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 44ec23c9ecd95d13ec9dd8d0b0dc9e82bd3258ff Author: Boris BREZILLON Date: Mon Nov 2 00:03:38 2015 +0100 mtd: nand: convert to nand_get_flash_node() Used semantic patch with 'make coccicheck MODE=patch COCCI=script.cocci': ---8<---- virtual patch @@ struct nand_chip c; struct nand_chip *cp; @@ ( -(cp)->flash_node +nand_get_flash_node(cp) | -(c).flash_node +nand_get_flash_node(&c) ) ---8<---- Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/brcmnand/brcmnand.c | 2 +- drivers/mtd/nand/nand_base.c | 6 +++--- drivers/mtd/nand/vf610_nfc.c | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) commit 8361a9b8cb6a9c71b7cf884a87b2532d8367c185 Author: Brian Norris Date: Fri Oct 30 20:33:30 2015 -0700 mtd: physmap_of: assign parent for the concatenated MTD If there is more than one map region for this device, then the concatenated MTD will not have a parent device assigned to it -- only the sub-devices (which are not actually registered with the framework) will have their parents assigned. Let's assign the concatenated device correctly. Signed-off-by: Brian Norris Reviewed-by: Boris Brezillon drivers/mtd/maps/physmap_of.c | 1 + 1 file changed, 1 insertion(+) commit e270bca531b40cd0a143176eb093d173b9c6f418 Author: Brian Norris Date: Fri Oct 30 20:33:29 2015 -0700 mtd: ofpart: drop 'of_node' partition parser data This field is no longer used anywhere, as it is superseded by mtd->dev.of_node. Signed-off-by: Brian Norris Reviewed-by: Boris Brezillon drivers/mtd/ofpart.c | 14 ++++---------- include/linux/mtd/partitions.h | 4 ---- 2 files changed, 4 insertions(+), 14 deletions(-) commit 004b5e6031f4e9fd90d565fb213b74cd06d03718 Author: Brian Norris Date: Fri Oct 30 20:33:28 2015 -0700 mtd: drop unnecessary partition parser data We should assign the MTD dev.of_node instead of the parser data field. This gets us the equivalent partition parser behavior with fewer special fields and parameter passing. Also convert several of these to mtd_device_register(), since we don't need the 2nd and 3rd parameters anymore. Signed-off-by: Brian Norris Reviewed-by: Marek Vasut Reviewed-by: Boris Brezillon drivers/mtd/devices/mtd_dataflash.c | 5 ++--- drivers/mtd/devices/spear_smi.c | 6 ++---- drivers/mtd/devices/st_spi_fsm.c | 5 ++--- drivers/mtd/maps/lantiq-flash.c | 5 ++--- drivers/mtd/maps/physmap_of.c | 5 ++--- drivers/mtd/onenand/omap2.c | 8 +++----- 6 files changed, 13 insertions(+), 21 deletions(-) commit 30069af7348b56eb8c5e1dda7788a531c5f24ca2 Author: Brian Norris Date: Fri Oct 30 20:33:27 2015 -0700 mtd: spi-nor: drop flash_node field We can just alias to the MTD of_node. Signed-off-by: Brian Norris Reviewed-by: Boris Brezillon drivers/mtd/spi-nor/spi-nor.c | 1 - include/linux/mtd/spi-nor.h | 6 ++---- 2 files changed, 2 insertions(+), 5 deletions(-) commit df02c885f8697546da41665f28dde5e30ce99674 Author: Brian Norris Date: Fri Oct 30 20:33:26 2015 -0700 mtd: spi-nor: drop unnecessary partition parser data Now that the SPI-NOR/MTD framework pass the 'flash_node' through to the partition parsing code, we don't have to do it ourselves. Also convert to mtd_device_register(), since we don't need the 2nd and 3rd parameters anymore. Signed-off-by: Brian Norris Reviewed-by: Boris Brezillon drivers/mtd/devices/m25p80.c | 8 ++------ drivers/mtd/spi-nor/fsl-quadspi.c | 4 +--- drivers/mtd/spi-nor/nxp-spifi.c | 4 +--- 3 files changed, 4 insertions(+), 12 deletions(-) commit a61ae81a1907af1987ad4c77300508327bc48b23 Author: Brian Norris Date: Fri Oct 30 20:33:25 2015 -0700 mtd: nand: drop unnecessary partition parser data All of these drivers set up a parser data struct just to communicate DT partition data. This field has been deprecated and is instead supported by telling nand_scan_ident() about the 'flash_node'. This patch: * sets chip->flash_node for those drivers that didn't already (but used OF partitioning) * drops the parser data * switches to the simpler mtd_device_register() where possible, now that we've eliminated one of the auxiliary parameters Now that we've assigned chip->flash_node for these drivers, we can probably rely on nand_dt_init() to do more of the DT parsing for us, but for now, I don't want to fiddle with each of these drivers. The parsing is done in duplicate for now on some drivers. I don't think this should break things. (Famous last words.) (Rolled in some changes by Boris Brezillon) Signed-off-by: Brian Norris Reviewed-by: Boris Brezillon drivers/mtd/nand/atmel_nand.c | 7 +++---- drivers/mtd/nand/brcmnand/brcmnand.c | 3 +-- drivers/mtd/nand/davinci_nand.c | 10 +++------- drivers/mtd/nand/fsl_elbc_nand.c | 5 ++--- drivers/mtd/nand/fsl_ifc_nand.c | 5 ++--- drivers/mtd/nand/fsl_upm.c | 5 ++--- drivers/mtd/nand/fsmc_nand.c | 7 +++---- drivers/mtd/nand/gpio.c | 8 +++----- drivers/mtd/nand/gpmi-nand/gpmi-nand.c | 5 ++--- drivers/mtd/nand/hisi504_nand.c | 5 ++--- drivers/mtd/nand/lpc32xx_mlc.c | 7 +++---- drivers/mtd/nand/lpc32xx_slc.c | 7 +++---- drivers/mtd/nand/mpc5121_nfc.c | 5 ++--- drivers/mtd/nand/mxc_nand.c | 5 ++--- drivers/mtd/nand/ndfc.c | 5 ++--- drivers/mtd/nand/omap2.c | 6 ++---- drivers/mtd/nand/orion_nand.c | 6 ++---- drivers/mtd/nand/plat_nand.c | 5 ++--- drivers/mtd/nand/pxa3xx_nand.c | 10 +++++----- drivers/mtd/nand/sh_flctl.c | 6 ++---- drivers/mtd/nand/socrates_nand.c | 5 ++--- drivers/mtd/nand/sunxi_nand.c | 4 +--- drivers/mtd/nand/vf610_nfc.c | 6 +----- drivers/staging/mt29f_spinand/mt29f_spinand.c | 5 ++--- 24 files changed, 54 insertions(+), 88 deletions(-) commit 9c7d787508be6d68a6ec66de3c3466b24e820c71 Author: Brian Norris Date: Fri Oct 30 20:33:24 2015 -0700 mtd: spi-nor: convert to spi_nor_{get, set}_flash_node() Used semantic patch with 'make coccicheck MODE=patch COCCI=script.cocci': ---8<---- virtual patch @@ struct spi_nor b; struct spi_nor *c; expression d; @@ ( -(b).flash_node = (d) +spi_nor_set_flash_node(&b, d) | -(c)->flash_node = (d) +spi_nor_set_flash_node(c, d) ) ---8<---- And a manual conversion for the one use of spi_nor_get_flash_node(). Signed-off-by: Brian Norris Reviewed-by: Boris Brezillon drivers/mtd/devices/m25p80.c | 2 +- drivers/mtd/spi-nor/fsl-quadspi.c | 2 +- drivers/mtd/spi-nor/nxp-spifi.c | 2 +- drivers/mtd/spi-nor/spi-nor.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) commit 6375219951a66047805ed977b674615d152001ee Author: Brian Norris Date: Fri Oct 30 20:33:23 2015 -0700 mtd: nand: convert to nand_set_flash_node() Used semantic patch with 'make coccicheck MODE=patch COCCI=script.cocci': ---8<---- virtual patch @@ struct nand_chip *c; struct device_node *d; @@ -(c)->flash_node = (d) +nand_set_flash_node(c, d) ---8<---- Signed-off-by: Brian Norris Reviewed-by: Marek Vasut Reviewed-by: Boris Brezillon drivers/mtd/nand/brcmnand/brcmnand.c | 2 +- drivers/mtd/nand/fsmc_nand.c | 2 +- drivers/mtd/nand/sunxi_nand.c | 2 +- drivers/mtd/nand/vf610_nfc.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) commit 3e63b26bdd4069c3df2cd7ce7217a21d06801b41 Author: Brian Norris Date: Fri Oct 30 20:33:22 2015 -0700 mtd: {nand,spi-nor}: assign MTD of_node We should pass along our flash DT node to the MTD layer, so it can set up ofpart for us. Signed-off-by: Brian Norris Reviewed-by: Boris Brezillon drivers/mtd/nand/nand_base.c | 3 +++ drivers/mtd/spi-nor/spi-nor.c | 1 + 2 files changed, 4 insertions(+) commit 3b6521eab0386a4854d47b1a01947d7dc46ec98d Author: Brian Norris Date: Fri Oct 30 20:33:21 2015 -0700 mtd: ofpart: grab device tree node directly from master device node It seems more logical to use a device node directly associated with the MTD master device (i.e., mtd->dev.of_node field) rather than requiring auxiliary partition parser information to be passed in by the driver in a separate struct. This patch supports the mtd->dev.of_node field and deprecates the parser data 'of_node' field Driver conversions may now follow. Additional side benefit to assigning mtd->dev.of_node rather than using parser data: the driver core will automatically create a device -> node symlink for us. Signed-off-by: Brian Norris Reviewed-by: Boris Brezillon drivers/mtd/ofpart.c | 18 ++++++++++-------- include/linux/mtd/partitions.h | 4 +++- 2 files changed, 13 insertions(+), 9 deletions(-) commit 28b8b26b308e656edfa9467867d5f79212da2ec3 Author: Brian Norris Date: Fri Oct 30 20:33:20 2015 -0700 mtd: add get/set of_node/flash_node helpers We are going to begin using the mtd->dev.of_node field for MTD device nodes, so let's add helpers for it. Also, we'll be making some conversions on spi_nor (and nand_chip eventually) too, so get that ready with their own helpers. Signed-off-by: Brian Norris Reviewed-by: Boris Brezillon include/linux/mtd/mtd.h | 11 +++++++++++ include/linux/mtd/nand.h | 11 +++++++++++ include/linux/mtd/spi-nor.h | 11 +++++++++++ 3 files changed, 33 insertions(+) commit bf9c37cb627a3f690e246d9326a4a94913771bbf Author: Bayi Cheng Date: Fri Nov 6 23:48:07 2015 +0800 doc: dt: mtd: add documentation for Mediatek spi-nor controller Add device tree binding documentation for serial flash with Mediatek serial flash controller Signed-off-by: Bayi Cheng Acked-by: Rob Herring [Brian: fixed up language] Signed-off-by: Brian Norris .../devicetree/bindings/mtd/mtk-quadspi.txt | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) commit af9b9c193184233d470bd71a0edc245feea34da4 Author: Lukas Wunner Date: Thu Nov 5 09:30:50 2015 +0100 drm/i915: Clean up LVDS register handling harder Minor fixup to d0669d007542 ("drm/i915: Clean up LVDS register handling") which intended to read lvds_reg just once at the beginning of intel_lvds_init() and use that throughout the rest of the function but accidentally missed one register readout. Cc: Ville Syrjälä Signed-off-by: Lukas Wunner Link: http://patchwork.freedesktop.org/patch/msgid/20151107141244.AB7616E242@gabe.freedesktop.org Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_lvds.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit e00bf69644ba01163209db7cf0942fb645f4daae Author: Ville Syrjälä Date: Fri Nov 6 15:08:33 2015 +0200 drm/i915: Move the fbdev async_schedule() into intel_fbdev.c Reading the driver load/unload code leaves one confused as there's an async_schedule() in the load, but not async_synchronize_full() in sight. In fact it's hidden inside intel_fbdev.c. So let's move the async_schedule() into intel_fbdev.c as well so that it's next to the async_synchronize_full(), which should make the relationship easier to see. Plus this way we won't schedule a nop function call when fbdev is disabled. And we were passing a pointer to a static inline function to async_schedule(), which seems rather dubious to me. Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446815313-9490-4-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Chris Wilson drivers/gpu/drm/i915/i915_dma.c | 3 +-- drivers/gpu/drm/i915/intel_drv.h | 4 ++-- drivers/gpu/drm/i915/intel_fbdev.c | 7 ++++++- 3 files changed, 9 insertions(+), 5 deletions(-) commit 2013bfc0238b9a77f7e9223aed03b1cef1b5cc34 Author: Ville Syrjälä Date: Fri Nov 6 15:08:32 2015 +0200 drm/i915: Do fbdev fini first during unload We set up fbdev last during load, so doing the fbdev cleanup should be first. We weren't supposed to drop the init power during driver unload, but since the fbdev teardown happened after intel_power_domains_fini() that could have happened due in one of two ways. First it could have happened during the modeset caused by normal fbdev cleanup. But in addition it could have happened already via the intel_fbdev_initial_config() since that is executed asynhronously, and the async_synchronize_full() was done during fbdev cleanup, after intel_power_domains_fini(). All of that got eliminated by commit 292b990e86abc ("drm/i915: Update power domains on readout.") since we now drop the init power synchronously during driver load. So there is no real bug wrt. the init power anymore, but still it seems better to do the fbdev cleanup first, before we've potentially cleaned up something else important. Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446815313-9490-3-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Chris Wilson drivers/gpu/drm/i915/i915_dma.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 18a04a7369b5ffe34a2f16bca8915fab68817c87 Author: Ville Syrjälä Date: Fri Nov 6 15:08:31 2015 +0200 drm/i915: Kill intel_runtime_pm_disable() intel_runtime_pm_disable() takes an extra rpm reference which combined with the one we leak from intel_display_set_init_power() leaves the usage count at +1 after the driver has been unloaded. The original ref is dropped explicitly in intel_runtime_pm_enable(). So the next time we load the driver we can no longer do runtime PM ever. This used to work, but commit 292b990e86ab ("drm/i915: Update power domains on readout.") broke things by not dropping the init power domain during fbdev teardown. Based on the comment in intel_power_domains_fini(), the way it used to to work wasn't intentional. As in we weren't supposed to drop the init power during driver unload. And since we no longer do, we now leak an extra rpm reference. So fix things by throwing intel_runtime_pm_disable() to the bin, so that the only leaked reference comes from the init power domain. Cc: Maarten Lankhorst Cc: Daniel Stone Cc: Jesse Barnes Fixes: 292b990e86ab ("drm/i915: Update power domains on readout.") Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446815313-9490-2-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Jesse Barnes drivers/gpu/drm/i915/intel_runtime_pm.c | 17 ----------------- 1 file changed, 17 deletions(-) commit 27fa0a6c55537f8d8656b9e59ae584b0b427232a Author: Geert Uytterhoeven Date: Tue Nov 10 09:35:06 2015 +0100 ARM: shmobile: koelsch: Move SPI FLASH partitions to subnode As of commits 5cfdedb7b9a0fe38 ("mtd: ofpart: move ofpart partitions to a dedicated dt node") and fe2585e9c29a650a ("doc: dt: mtd: support partitions in a special 'partitions' subnode"), having partitions as direct subnodes of an mtd device is discouraged: spi0.0: 'partitions' subnode not found on /spi@e6b10000/flash@0. Trying to parse direct subnodes as partitions. Hence move the SPI FLASH partitions to a "partitions" subnode. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791-koelsch.dts | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) commit d2fd05bb6769d53ab98a11b080b3fb889276049d Author: Linus Walleij Date: Thu Oct 15 15:08:47 2015 +0200 mtd: afs: refactor v1 partition parsing Return immediately if we are not finding a valid v1 partition in afs_read_footer_v1(), invert scanning logic so we continue to read image information on v1 if we found a footer. This is needed for the logic we introduce to parse v2 footers. Cc: Ryan Harkin Cc: Liviu Dudau Signed-off-by: Linus Walleij Signed-off-by: Brian Norris drivers/mtd/afs.c | 37 +++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 20 deletions(-) commit 9498440fff21649cabe529f1d9d4e3bc668fc125 Author: Linus Walleij Date: Thu Oct 15 15:08:46 2015 +0200 mtd: afs: break out v1 footer magic to a define Break out the magic number to a #defined constant. Cc: Ryan Harkin Cc: Liviu Dudau Signed-off-by: Linus Walleij Signed-off-by: Brian Norris drivers/mtd/afs.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 8cf980185d2bf672a5c1d03935f1f165836bb4b0 Author: Linus Walleij Date: Thu Oct 15 15:08:45 2015 +0200 mtd: enable AFS selection for ARM64 ARM use their special partitions also on the ARM64 architecture reference designs, so enable this for ARM64. Cc: Ryan Harkin Cc: Liviu Dudau Signed-off-by: Linus Walleij Signed-off-by: Brian Norris drivers/mtd/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a486d11f5d71b88eb235fdfc035eebca5f35f120 Author: Linus Walleij Date: Thu Oct 15 15:08:44 2015 +0200 mtd: afs: rename structs and functions for v1 Since we're gonna add the v2 version of flash information structure and we want to avoid confusion, rename the old functions to *v1. Cut the word "structure" from the struct name, it is pretty obvious that it is a struct already from the keyword. Cc: Ryan Harkin Cc: Liviu Dudau Signed-off-by: Linus Walleij Signed-off-by: Brian Norris drivers/mtd/afs.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit acc546fd6108cb17f87f985e4235b68756d7b01f Author: Abhi Das Date: Tue Nov 10 15:07:26 2015 -0600 gfs2: Automatically set GFS2_DIF_SYSTEM flag on system files When new files and directories are created inside a parent directory we automatically inherit the GFS2_DIF_SYSTEM flag (if set) and assign it to the new file/dirs. All new system files/dirs created in the metafs by, say gfs2_jadd, will have this flag set because they will have parent directories in the metafs whose GFS2_DIF_SYSTEM flag has already been set (most likely by a previous mkfs.gfs2) Signed-off-by: Abhi Das Signed-off-by: Bob Peterson fs/gfs2/file.c | 4 ++-- fs/gfs2/inode.c | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) commit e404ba8d06ff2a1bdb916a9e5d2c09cacd7e5ca3 Author: Ville Syrjälä Date: Mon Aug 17 18:46:20 2015 +0300 drm/i915: Setup DDI clk for MST on SKL Set up the DDI->PLL mapping on SKL also for MST links. Might help make MST operational on SKL. v2: Rebased due to KBL Improve the patch subject, Jesse provided the new one Cc: Maarten Lankhorst Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1439826380-18403-1-git-send-email-ville.syrjala@linux.intel.com References: https://bugs.freedesktop.org/show_bug.cgi?id=91791 Reviewed-by: Jesse Barnes drivers/gpu/drm/i915/intel_ddi.c | 49 ++++++++++++++++++++++--------------- drivers/gpu/drm/i915/intel_dp_mst.c | 8 +----- drivers/gpu/drm/i915/intel_drv.h | 2 ++ 3 files changed, 32 insertions(+), 27 deletions(-) commit 89a41cbba6610b48e793ce6ac5bd46031c7531cc Author: Michal Suchanek Date: Fri Oct 30 13:34:00 2015 -0700 mtd: ofpart: document the lock flag. The lock flag of ofpart is undocumented. Add to binding doc. Signed-off-by: Michal Suchanek Cc: Sascha Hauer Acked-by: Rob Herring Signed-off-by: Brian Norris Documentation/devicetree/bindings/mtd/partition.txt | 2 ++ 1 file changed, 2 insertions(+) commit 257f871993474e2bde6c497b54022c362cf398e1 Author: Stephen Hemminger Date: Wed Nov 4 10:59:52 2015 -0800 ovl: move super block magic number to magic.h The overlayfs file system is not recognized by programs like tail because the magic number is not in standard header location. Move it so that the value will propagate on for the GNU library and utilities. Needs to go in the fstatfs manual page as well. Signed-off-by: Stephen Hemminger Signed-off-by: Miklos Szeredi fs/overlayfs/super.c | 2 -- include/uapi/linux/magic.h | 1 + 2 files changed, 1 insertion(+), 2 deletions(-) commit e4ad29fa0d224d05e08b2858e65f112fd8edd4fe Author: Vito Caputo Date: Sat Oct 24 07:19:46 2015 -0500 ovl: use a minimal buffer in ovl_copy_xattr Rather than always allocating the high-order XATTR_SIZE_MAX buffer which is costly and prone to failure, only allocate what is needed and realloc if necessary. Fixes https://github.com/coreos/bugs/issues/489 Signed-off-by: Miklos Szeredi Cc: fs/overlayfs/copy_up.c | 39 +++++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 14 deletions(-) commit 97daf8b97ad6f913a34c82515be64dc9ac08d63e Author: Miklos Szeredi Date: Tue Nov 10 17:08:41 2015 +0100 ovl: allow zero size xattr When ovl_copy_xattr() encountered a zero size xattr no more xattrs were copied and the function returned success. This is clearly not the desired behavior. Signed-off-by: Miklos Szeredi Cc: fs/overlayfs/copy_up.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit abfce949052f323b6b0531c6cdc7ad0c3d501d94 Author: Ville Syrjälä Date: Thu Oct 29 21:26:03 2015 +0200 drm/i915: Configure eDP PLL freq from ironlake_edp_pll_on() ironlake_set_pll_cpu_edp() only gets called just before ironlake_edp_pll_on(), so just pull the code into ironlake_edp_pll_on(). Also toss in a debug print into ironlake_edp_pll_off() to match the one we have in ironlake_edp_pll_on(). Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446146763-31821-15-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp.c | 45 +++++++++++++++++------------------------ 1 file changed, 19 insertions(+), 26 deletions(-) commit 6fec766283333f1a29066ceddab0d2c18410a71e Author: Ville Syrjälä Date: Tue Nov 10 16:16:17 2015 +0200 drm/i915: Use intel_dp->DP in eDP PLL setup Use intel_dp->DP in the eDP PLL setup, instead of doing RMWs. To do this we need to move DP_AUDIO_OUTPUT_ENABLE setup to happen later, so that we don't enable audio accidentally while configuring the PLL. Note that actually we already enabled audio before the port due to the double port register write magic required by VLV/CHV from 7b713f50d78b6 ("drm/i915: Fix eDP link training when switching pipes on VLV/CHV") So that gets changed now to keep audio off as long as the port is off. Also intel_dp_link_down() must be made to update intel_dp->DP so that we don't re-enable the port by accident when turning off the PLL. This is safe now that we don't call intel_dp_link_down() during link retraining. v2: Add a note about the audio vs. port enable (Daniel) Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1447164977-32315-1-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Jani Nikula drivers/gpu/drm/i915/intel_dp.c | 41 ++++++++++++++--------------------------- 1 file changed, 14 insertions(+), 27 deletions(-) commit 64e1077a1f93d1f90e096e75232f7284a2b62ca6 Author: Ville Syrjälä Date: Thu Oct 29 21:26:01 2015 +0200 drm/i915: Clean up eDP PLL state asserts Rewrite the eDP PLL state asserts to conform to our usual state assert style. Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446146763-31821-13-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp.c | 54 +++++++++++++++++++++++++++++------------ 1 file changed, 39 insertions(+), 15 deletions(-) commit 9ece1deb025fdbad957e35d2d1620f6083e19a56 Author: Ville Syrjälä Date: Thu Oct 29 21:26:00 2015 +0200 drm/i915: Remove ILK-A eDP PLL workaround notes We don't care about ILK-A and the old w/a notes may just confuse people, so get rid of them. Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446146763-31821-12-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Jesse Barnes drivers/gpu/drm/i915/intel_dp.c | 4 ---- 1 file changed, 4 deletions(-) commit b377e0df1118e63873f3fd5182ebd6c918f2805c Author: Ville Syrjälä Date: Thu Oct 29 21:25:59 2015 +0200 drm/i915: s/DP_PLL_FREQ_160MHZ/DP_PLL_FREQ_162MHZ/ The DP link frequency is 162MHz, not 160MHz. Rename the ILK eDP PLL defines to match. Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446146763-31821-11-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 2 +- drivers/gpu/drm/i915/intel_dp.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) commit d6fbdd157c1c986662deb53d8c16a19cc25eede1 Author: Ville Syrjälä Date: Thu Oct 29 21:25:58 2015 +0200 drm/i915: Hide underruns from eDP PLL and port enable on ILK We get underruns on the other pipe when enabling the CPU eDP PLL and port on ILK. Bspec knows about the PLL issue, and recommends doing a vblank wait just prior to enabling the PLL. That does seem to help, but unfortunately we get another underrun when actually enabling the CPU eDP port. Bspec doesn't mention that at all, and the same vblank wait trick doesn't appear to be effective there. Since I have no better clue how to deal with this, just hide the errors. Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446146763-31821-10-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Jesse Barnes drivers/gpu/drm/i915/intel_dp.c | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) commit 0c241d5b2770d4a50d3367ed591d0d0236b69b51 Author: Ville Syrjälä Date: Fri Oct 30 19:23:22 2015 +0200 drm/i915: Disable FIFO underrun reporting around IBX transcoder B workaround Doing the IBX transcoder B workaround causes underruns on pipe/transcoder A. Just hide them by disabling underrun reporting for pipe A around the workaround. It might be possible to avoid the underruns by moving the workaround to be applied only when enabling pipe A. But I was too lazy to try it right now, and the current method has been proven to work, so didn't want to change it too hastily. Note that this can re-enable underrun reporting on pipe A if was already disabled due to a previous actual underrun. But that's OK, we may just get a second underrun report if another real underron occurrs on pipe A. v2: Note that pipe A underruns can get re-enabled due to this (Jani) Signed-off-by: Ville Syrjälä Reviewed-by: Jesse Barnes (v1) Link: http://patchwork.freedesktop.org/patch/msgid/1446225802-11180-1-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/i915/intel_dp.c | 11 +++++++++++ drivers/gpu/drm/i915/intel_drv.h | 9 +++++++++ drivers/gpu/drm/i915/intel_hdmi.c | 11 +++++++++++ drivers/gpu/drm/i915/intel_sdvo.c | 11 +++++++++++ 4 files changed, 42 insertions(+) commit c465613bc97ed996f2278116c79d2c6adec3998d Author: Ville Syrjälä Date: Thu Oct 29 21:25:56 2015 +0200 drm/i915: Check for CPT and not !IBX in ironlake_disable_pch_transcoder() ironlake_enaable_pch_transcoder() checks for CPT to see if it should enable the timing override chicken bit, but ironlake_disable_pch_transcoder() checks for !IBX to see if it should clear the same bit. Change ironlake_disable_pch_transcoder() to check for CPT as well to keep the two sides consistent. Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446146763-31821-8-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Jesse Barnes drivers/gpu/drm/i915/intel_display.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit aca7b684bab9da1e3071ad872f1d78d41ae7a706 Author: Ville Syrjälä Date: Fri Oct 30 19:22:21 2015 +0200 drm/i915: Check for FIFO underruns after modeset on IVB/HSW and CPT/PPT Due to the shared error interrupt on IVB/HSW and CPT/PPT we may not always get an interrupt on a FIFO underrun. But we can always do an explicit check (like we do on GMCH platforms that have no underrun interrupt). v2: Drop stale kerneldoc for i9xx_check_fifo_underruns() (Daniel) Signed-off-by: Ville Syrjälä Reviewed-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1446225741-11070-1-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/i915/intel_display.c | 6 +- drivers/gpu/drm/i915/intel_drv.h | 3 +- drivers/gpu/drm/i915/intel_fifo_underrun.c | 125 ++++++++++++++++++++++------- 3 files changed, 103 insertions(+), 31 deletions(-) commit 81b088ca87d76d7edacd0f1e3468fd24e6434b2b Author: Ville Syrjälä Date: Fri Oct 30 19:21:31 2015 +0200 drm/i915: Re-enable PCH FIO underrun reporting after pipe has been disabled Some hardware (IVB/HSW and CPT/PPT) have a shared error interrupt for all the relevant underrun bits, so in order to keep the error interrupt enabled, we need to have underrun reporting enabled on all PCH transocders. Currently we leave the underrun reporting disabled when the pipe is off, which means we won't get any underrun interrupts when only a subset of the pipes are active. Fix the problem by re-enabling the underrun reporting after the pipe has been disabled. And to avoid the spurious underruns during pipe enable, disable the underrun reporting before embarking on the pipe enable sequence. So this way we have the error reporting disabled while running through the modeset sequence. v2: Re-enable PCH FIFO underrun reporting unconditionally on pre-HSW Signed-off-by: Ville Syrjälä Reviewed-by: Jesse Barnes (v1) Link: http://patchwork.freedesktop.org/patch/msgid/1446225691-10928-1-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/i915/intel_display.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit d2d65408cc8a2368e86bda934f6feafd355e5299 Author: Ville Syrjälä Date: Thu Oct 29 21:25:53 2015 +0200 drm/i915: Enable PCH FIFO underruns later on HSW+ As we did for ILK/SNB/IVB, move the PCH FIFO underrun enable to happen after the encoder enable on HSW+. And again, for symmetry, move the the disable to happen before encoder disable. I've left out the vblank wait before the enable here because I don't know if it's needed or not. Actually I don't know if this entire change is needed as I don't have a HSW/BDW with VGA output. Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446146763-31821-5-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Jesse Barnes drivers/gpu/drm/i915/intel_display.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit 37ca8d4ccd9860df0747aa2ea281a3c9c4bf8826 Author: Ville Syrjälä Date: Fri Oct 30 19:20:27 2015 +0200 drm/i915: Enable PCH FIFO underruns later on ILK/SNB/IVB We get spurious PCH FIFO underruns if we enable the reporting too soon after enabling the crtc. Move it to be the last step, after the encoder enable. Additionally we need an extra vblank wait, otherwise we still get the underruns. Presumably the pipe/fdi isn't yet fully up and running otherwise. For symmetry, disable the PCH underrun reporting as the first thing, just before encoder disable, when shutting down the crtc. v2: Do the PCH underrun enable unconditionally (Jani, Daniel) Signed-off-by: Ville Syrjälä Reviewed-by: Jesse Barnes (v1) Link: http://patchwork.freedesktop.org/patch/msgid/1446225627-10809-1-git-send-email-ville.syrjala@linux.intel.com drivers/gpu/drm/i915/intel_display.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 9c4edaeea08896dbcc3925810963ec8ddd1ccfc4 Author: Ville Syrjälä Date: Thu Oct 29 21:25:51 2015 +0200 drm/i915: Set sync polarity from adjusted mode for TRANS_DP_CTL Rather than looking at crtc->mode (which is the user mode) dig up the sync polarity settings from the adjusted_mode when programming TRANS_DP_CTL on CPT/PPT. Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446146763-31821-3-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Jesse Barnes drivers/gpu/drm/i915/intel_display.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 1a70a728959a0e9d2a90bba71e9811765e78707d Author: Ville Syrjälä Date: Thu Oct 29 21:25:50 2015 +0200 drm/i915: Don't use intel_pipe_to_cpu_transcoder() when there's a pipe config around No point in doing the crtc->pipe->crtc->config->cpu_transcoder dance when we can just do crtc->config->cpu_transcoder. Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446146763-31821-2-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Jesse Barnes drivers/gpu/drm/i915/intel_display.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 5205bbe62b620b0db55ad1b7bab338135efc1479 Author: Paulo Zanoni Date: Wed Nov 4 17:10:56 2015 -0200 drm/i915: remove in_dbg_master check from intel_fbc.c From our maintainer Daniel Vetter a few days ago: "Oh dear this is dead code. kdbg uses the fbcon, which always uses untiled, which means fbc will never be enabled. Also we have 0 users and 0 test coverage for kdbg on top of i915 (Jesse implemented it for fun years back). Imo just remove all this code." Adding to what Daniel said: for kgdboc's KMS support, intel_pipe_set_base_atomic() already manually disables FBC, so we won't do the in_dbg_master() check there. This is essentially a revert of: commit c924b934d0cd14a4559611da91f28f59acebe32a Author: Jason Wessel Date: Thu Aug 5 09:22:32 2010 -0500 i915: when kgdb is active display compression should be off Besides, it is not clear what is the exact problem caused by FBC, and why other features such as PSR, DRRS, IPS and RPM are not also checking for in_dbg_master(). IMHO we should either remove the code as suggested by Daniel or we add some nice comments explaining why is FBC so special. v2: Rebase due to new patch order. Cc: Jason Wessel Cc: Jesse Barnes Cc: Daniel Vetter Signed-off-by: Paulo Zanoni Reviewed-by: Jesse Barnes Link: http://patchwork.freedesktop.org/patch/msgid/1446664257-32012-13-git-send-email-paulo.r.zanoni@intel.com Signed-off-by: Maarten Lankhorst drivers/gpu/drm/i915/intel_fbc.c | 6 ------ 1 file changed, 6 deletions(-) commit 850bfaab7120ae42a433a004d47975cb14fbe972 Author: Paulo Zanoni Date: Wed Nov 4 17:10:55 2015 -0200 drm/i915: clarify that checking the FB stride for CFB is intentional Daniel was looking at this code and asked about whether fb->pitches[0] is correct, then he suggested we should a comment to make sure it is actually intentional. For more information on the CFB size calculation, please see the commit message of: commit c4ffd40908c30a33291227920e921f6b45b9e8f7 Author: Paulo Zanoni Date: Thu Oct 1 19:55:57 2015 -0300 drm/i915: fix CFB size calculation Requested-by: Daniel Vetter Signed-off-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/1446664257-32012-12-git-send-email-paulo.r.zanoni@intel.com Signed-off-by: Maarten Lankhorst drivers/gpu/drm/i915/intel_fbc.c | 1 + 1 file changed, 1 insertion(+) commit e585feb0649e1219e6196b94029a1fd4237fed1f Author: Paulo Zanoni Date: Wed Nov 4 17:10:53 2015 -0200 drm/i915: remove too-frequent FBC debug message If we run igt/kms_frontbuffer_tracking, this message will appear thousands of times, eating a significant part of our dmesg buffer. It's part of the expected FBC behavior, so let's just silence it. Signed-off-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/1446664257-32012-10-git-send-email-paulo.r.zanoni@intel.com Signed-off-by: Maarten Lankhorst drivers/gpu/drm/i915/intel_fbc.c | 2 -- 1 file changed, 2 deletions(-) commit b07ea0fae5e3bf438b8d1d29f8650f30d16f62ca Author: Paulo Zanoni Date: Wed Nov 4 17:10:52 2015 -0200 drm/i915: refactor FBC deactivation at init Make sure we deactivate FBC at intel_fbc_init(), so we can remove the call from intel_display.c. Currently we only have the "enabled" software state, but later we'll have both "enabled" and "active", and we'll add assertions to them, so just calling intel_fbc_disable() from intel_modeset_init() won't work. It's better to make sure intel_fbc_init() already puts the hardware in the expected state, so we can put nice assertions in the other functions. v2: Keep/improve the comment (Chris). v3: Improve the commit message a little bit. Signed-off-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/1446664257-32012-9-git-send-email-paulo.r.zanoni@intel.com Signed-off-by: Maarten Lankhorst drivers/gpu/drm/i915/intel_display.c | 3 --- drivers/gpu/drm/i915/intel_fbc.c | 8 ++++++-- 2 files changed, 6 insertions(+), 5 deletions(-) commit c68ae339e71031d92300df56346eb8edd26a09b3 Author: Paulo Zanoni Date: Wed Nov 4 17:10:51 2015 -0200 drm/i915: don't disable_fbc() if FBC is already disabled If FBC is disabled we will still call intel_fbc_invalidate(), and as a result we may call intel_fbc_deactivate(), which will try to touch registers. I'm pretty sure I saw this happen on a runtime suspended device, and I'm almost sure I was running igt/pm_rpm. It produced the "you touched registers while the device is suspended" WARNs. But this was some time ago and I can't remember exactly which conditions were necessary to reproduce the problem. v2: Rebase to new series order. Signed-off-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/1446664257-32012-8-git-send-email-paulo.r.zanoni@intel.com Signed-off-by: Maarten Lankhorst drivers/gpu/drm/i915/intel_fbc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 548043abaea4b078270025205833315a2d767e86 Author: Paulo Zanoni Date: Wed Nov 4 17:10:50 2015 -0200 drm/i915: fix the __intel_fbc_update() comments Don't try to list in comments the cases where we should enable or disable FBC: it varies a lot with the hardware generations and the code should be the documentation. Also notice that there's already a huge gap between the comments and what's in the code. Signed-off-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/1446664257-32012-7-git-send-email-paulo.r.zanoni@intel.com Signed-off-by: Maarten Lankhorst drivers/gpu/drm/i915/intel_fbc.c | 26 ++------------------------ 1 file changed, 2 insertions(+), 24 deletions(-) commit 45b32a2919784b3beb299c199e82a2973661d0f3 Author: Paulo Zanoni Date: Wed Nov 4 17:10:49 2015 -0200 drm/i915: use struct intel_crtc *crtc at __intel_fbc_update() This change was part of the commit that makes intel_fbc_update() receive an intel_crtc as argument instead of dev_priv, but since it was polluting the diff with too many chunks I decided to move it to its own commit. It seems that our developers are favoring having this instead of the old combination drm_crtc *crtc + intel_crtc *intel_crtc, and on the mentioned commit we'll get rid of the drm_crtc variable, so let's do an intermediate commit with the rename, so on the next commit we'll have just struct intel_crtc *crtc. Signed-off-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/1446664257-32012-6-git-send-email-paulo.r.zanoni@intel.com Signed-off-by: Maarten Lankhorst drivers/gpu/drm/i915/intel_fbc.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) commit 30c58d5896e5e80511663e1553a5508714a4b55a Author: Paulo Zanoni Date: Wed Nov 4 17:10:48 2015 -0200 drm/i915: extract crtc_is_valid() on the FBC code We're going to kill intel_fbc_find_crtc(), that's why a big part of the logic moved from intel_fbc_find_crtc() to crtc_is_valid(). v2: - Rebase due to pipe_a_only change. - Split the multiline conditional (Chris). Signed-off-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/1446664257-32012-5-git-send-email-paulo.r.zanoni@intel.com Signed-off-by: Maarten Lankhorst drivers/gpu/drm/i915/intel_fbc.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) commit a4dedd5a14a8910313b1b5d3f3e6cf0bb3e9d78c Author: Paulo Zanoni Date: Wed Nov 4 17:10:47 2015 -0200 drm/i915: remove unnecessary check for crtc->primary->fb We already check if the CRTC is visible, and it shouldn't be possible to have a visible CRTC without an FB. This was noticed by both Chris and Ville on different ocasions. Signed-off-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/1446664257-32012-4-git-send-email-paulo.r.zanoni@intel.com Signed-off-by: Maarten Lankhorst drivers/gpu/drm/i915/intel_fbc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 571050226c5dd38e49c66dd4738133b775ef600e Author: Paulo Zanoni Date: Wed Nov 4 17:10:46 2015 -0200 drm/i915: extract fbc_on_pipe_a_only() Make the code easier to read. Suggested-by: Chris Wilson Signed-off-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/1446664257-32012-3-git-send-email-paulo.r.zanoni@intel.com Signed-off-by: Maarten Lankhorst drivers/gpu/drm/i915/intel_fbc.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit d5ce4164899330e616c4ef067412ba2a4833f6d8 Author: Paulo Zanoni Date: Wed Nov 4 17:10:45 2015 -0200 drm/i915: rename intel_fbc_nuke to intel_fbc_recompress Although the term "nuke" is part of the FBC spec, it's not very intuitive, so let's rename it to make it easier for people that are not familiar with the spec. Requested-by: Chris Wilson Signed-off-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/1446664257-32012-2-git-send-email-paulo.r.zanoni@intel.com Signed-off-by: Maarten Lankhorst drivers/gpu/drm/i915/intel_fbc.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 793af070a716bd7a5c80fbd63ae2a0f15825fddd Author: Paulo Zanoni Date: Wed Nov 4 17:10:57 2015 -0200 drm/i915: remove newline from a no_fbc_reason message Newlines are not needed and they're not used by the other messages. I added the newline by mistake. Signed-off-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/1446664257-32012-14-git-send-email-paulo.r.zanoni@intel.com Signed-off-by: Maarten Lankhorst drivers/gpu/drm/i915/intel_fbc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0b5da8db145bfd44266ac964a2636a0cf8d7c286 Author: Ravishankar N Date: Tue Jun 30 23:40:22 2015 +0530 fuse: add support for SEEK_HOLE and SEEK_DATA in lseek A useful performance improvement for accessing virtual machine images via FUSE mount. See https://bugzilla.redhat.com/show_bug.cgi?id=1220173 for a use-case for glusterFS. Signed-off-by: Ravishankar N Signed-off-by: Miklos Szeredi fs/fuse/file.c | 73 +++++++++++++++++++++++++++++++++++++++++------ fs/fuse/fuse_i.h | 3 ++ include/uapi/linux/fuse.h | 17 ++++++++++- 3 files changed, 84 insertions(+), 9 deletions(-) commit a81f05089aad81607bb4bcf9ccfb41ef4814d95e Author: Simon Horman Date: Mon Nov 9 10:33:19 2015 +0900 ARM: shmobile: gose: Configure PFC in DT Configure PFC for the already enabled scif and ethernet devices in the device tree for the gose board. Based on similar work for the koelsch board by Laurent Pinchart and Sergei Shtylyov. Signed-off-by: Simon Horman Acked-by: Laurent Pinchart arch/arm/boot/dts/r8a7793-gose.dts | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) commit c26455c7e3e4dd16caa4788fdd558e5fcee04742 Author: Simon Horman Date: Mon Nov 9 10:33:18 2015 +0900 ARM: shmobile: r8a7793: Add PFC to DT Instantiate PFC device in r8a7793 DT. Based on similar work for the r8a7791 by Magnus Damm. Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7793.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) commit 0fddfb5b609f3b037006bcd467c540a7968a2dc7 Author: Simon Horman Date: Fri Nov 6 16:30:48 2015 +0900 ARM: shmobile: r8a7793: Add thermal device to DT Instantiate the thermal sensor in the r8a7793 device tree. Based on very similar work for the r8a7790 by Magnus Damm. Signed-off-by: Simon Horman Acked-by: Geert Uytterhoeven arch/arm/boot/dts/r8a7793.dtsi | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 6c566dc9aca80f412665936f9db5b97221654061 Author: Matt Roper Date: Thu Nov 5 14:53:32 2015 -0800 drm/i915/bxt: Force port A DDI to use 4 lanes The bspec indicates that DDI A using four lanes is the only valid configuration for Broxton (Broxton doesn't have a DDI E to split these lanes with); the DDI_A_4_LANES bit of port A's DDI_BUF_CTL should always be set by the BIOS. However some BIOS versions seem to only be setting this bit if eDP is actually lit up at boot time; if the BIOS doesn't turn on the eDP panel because an external display is plugged in, then this bit is never properly initialized. The end result of this is that we wind up calculating a lower max data rate than we should and may wind up rejecting the native mode for panels that we should be able to drive. Let's workaround this BIOS bug by just turning the DDI_A_4_LANES bit on in our driver's internal state if we recognize that we're running on BXT where it should have been on anyway. Cc: Imre Deak Cc: Bob Paauwe Signed-off-by: Matt Roper Reviewed-by: Bob Paauwe Tested-by: Bob Paauwe Link: http://patchwork.freedesktop.org/patch/msgid/1446764012-27251-1-git-send-email-matthew.d.roper@intel.com drivers/gpu/drm/i915/intel_ddi.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 39acb4aa1aa6a30647cbe402e3f817b2b87feb1e Author: Ville Syrjälä Date: Fri Oct 30 23:39:38 2015 +0200 drm/i915: Print a debug message when exceeding dotclock limit on pre-gen4 Currently there's no trace in dmesg when the gen2/3 dotclock checks reject the modeset. Add some to avoid further head scratching. While at it refactor the code a bit to look nicer. Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446241178-432-1-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Ander Conselvan de Oliveira drivers/gpu/drm/i915/intel_display.c | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) commit 44eb0cb9620c6a53ec8e7073262e2af8079b727f Author: Mika Kuoppala Date: Fri Oct 30 13:26:15 2015 +0200 drm/i915: Avoid pointer arithmetic in calculating plane surface offset VMA offsets are 64 bits. Plane surface offsets are in ggtt and the hardware register to set this is thus 32 bits. Be explicit about these and convert carefully to from vma to final size. This will make sparse happy by not creating 32bit pointers out of 64bit vma offsets. Cc: Tvrtko Ursulin Signed-off-by: Mika Kuoppala Link: http://patchwork.freedesktop.org/patch/msgid/1446204375-29831-1-git-send-email-mika.kuoppala@intel.com Reviewed-by: Tvrtko Ursulin Signed-off-by: Ville Syrjälä drivers/gpu/drm/i915/intel_display.c | 16 +++++++++------- drivers/gpu/drm/i915/intel_drv.h | 6 +++--- drivers/gpu/drm/i915/intel_sprite.c | 2 +- 3 files changed, 13 insertions(+), 11 deletions(-) commit 0ac7655cf7f5722fe3a24fda5f435a00baa7d513 Author: Mika Kuoppala Date: Thu Oct 29 15:21:19 2015 +0200 drm/i915: Add dmc firmware load state and version to error state We have had one case where buggy csr/dmc firmware version influenced gt side and caused a hang. Add dmc firmware loading state and version to error state. v2: - Rebased on top of Damien's patches - included fw load state v3: include dmc info only if platform supports it (Chris) v4: move *csr to branch scope (Chris) v5: remove dependency to csr_state Cc: Chris Wilson Reviewed-by: Chris Wilson (v4) Signed-off-by: Mika Kuoppala Link: http://patchwork.freedesktop.org/patch/msgid/1446124879-22240-1-git-send-email-mika.kuoppala@intel.com Tested-by: Daniel Stone # SKL Signed-off-by: Ville Syrjälä drivers/gpu/drm/i915/i915_gpu_error.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 6fb403de3620deacf1180d727d21875d07c7464a Author: Mika Kuoppala Date: Fri Oct 30 17:54:47 2015 +0200 drm/i915: Add csr programming registers to dmc debugfs entry We check these to determine firmware loading status. Include them to help to debug causes of firmware loading fails. v2: Move all CSR specific registers to i915_reg.h (Ville) v3: Rebase v4: Rebase (RPM ref) Signed-off-by: Mika Kuoppala Reviewed-by: Imre Deak Link: http://patchwork.freedesktop.org/patch/msgid/1446220487-32691-1-git-send-email-mika.kuoppala@intel.com Tested-by: Daniel Stone # SKL Signed-off-by: Ville Syrjälä drivers/gpu/drm/i915/i915_debugfs.c | 11 ++++++++--- drivers/gpu/drm/i915/i915_reg.h | 10 ++++++++++ drivers/gpu/drm/i915/intel_csr.c | 13 ------------- 3 files changed, 18 insertions(+), 16 deletions(-) commit 16e11b994635788042f963ca1822b7cf9cd9cc94 Author: Mika Kuoppala Date: Tue Oct 27 14:47:03 2015 +0200 drm/i915/bxt: Expose DC5 entry count For bxt CSR firmware exposes a count of dc5 entries. Expose it through debugs Signed-off-by: Mika Kuoppala Reviewed-by: Imre Deak Tested-by: Daniel Stone # SKL Signed-off-by: Ville Syrjälä drivers/gpu/drm/i915/i915_debugfs.c | 3 +++ drivers/gpu/drm/i915/i915_reg.h | 1 + 2 files changed, 4 insertions(+) commit 8337206d3bf088c9f60ada7a71188b7f4b4ec2eb Author: Damien Lespiau Date: Fri Oct 30 17:53:32 2015 +0200 drm/i915/skl: Expose DC5/DC6 entry counts The CSR firmware expose two counters, handy to check if we are indeed entering DC5/DC6. v2: Rebase v3: Take RPM ref before reading (Imre) Signed-off-by: Damien Lespiau Reviewed-by: Rodrigo Vivi (v1) Signed-off-by: Mika Kuoppala Reviewed-by: Imre Deak Link: http://patchwork.freedesktop.org/patch/msgid/1446220412-32574-1-git-send-email-mika.kuoppala@intel.com Tested-by: Daniel Stone # SKL Signed-off-by: Ville Syrjälä drivers/gpu/drm/i915/i915_debugfs.c | 11 +++++++++++ drivers/gpu/drm/i915/i915_reg.h | 4 ++++ 2 files changed, 15 insertions(+) commit b7cec66de119ae9f0dc1ed5aeb92f32ab40acf1e Author: Damien Lespiau Date: Tue Oct 27 14:47:01 2015 +0200 drm/i915/skl: Print the DMC firmware status in debugfs Create a new debufs file for it, we'll have a few more things to add there. v2: Fix checkpatch warning about static const array v3: use named initializers (Ville) v4: strip out csr_state as it will be removed in future (Ville, Imre) Signed-off-by: Damien Lespiau (v1) Signed-off-by: Mika Kuoppala Link: http://patchwork.freedesktop.org/patch/msgid/1445950025-5793-3-git-send-email-mika.kuoppala@intel.com Reviewed-by: Imre Deak Tested-by: Daniel Stone # SKL Signed-off-by: Ville Syrjälä drivers/gpu/drm/i915/i915_debugfs.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit 9c5308ea1cd4e78c04f45fd3590e40faf7d7b326 Author: Mika Kuoppala Date: Fri Oct 30 17:52:16 2015 +0200 drm/i915/skl: Refuse to load outdated dmc firmware There is known issue on GT interrupt delivery with DC6 and firmwares <1.21. There is a suspicion that this causes spurious gpu hangs on driver init and with some workloads, as upgrading the firmware to 1.21 makes these problems disappear. As of now the current version included in distribution firmware packages is very like to be 1.19. Play it safe and refuse to load a firmware version that may affect gpu side stability. With < 1.23 there is a palette and dmc ram corruption issue so blacklist anything below that. v2: Refuse to load fw instead of notifying the user v3: Rebase on header version changes v4: Refuse to load anything less than 1.23 v5: Give enough information for user for finding correct fw (Chris) v6: better url and formatting (Chris) v7: move error log for each fail path (Mika) bail out earlier in load path (Imre) v8: Fix the version check (Imre) Cc: Animesh Manna Cc: Jani Nikula Cc: Dave Gordon Cc: Arun Siluvery Cc: Imre Deak Cc: Patrik Jakobsson Cc: Rodrigo Vivi Cc: Chris Wilson References: https://01.org/linuxgraphics/downloads/skldmcver121 References: https://01.org/linuxgraphics/downloads/skylake-dmc-1.23 Testcase: igt/gem_exec_nop Signed-off-by: Mika Kuoppala Reviewed-by: Imre Deak Link: http://patchwork.freedesktop.org/patch/msgid/1446220336-32392-1-git-send-email-mika.kuoppala@intel.com Tested-by: Daniel Stone # SKL Signed-off-by: Ville Syrjälä drivers/gpu/drm/i915/intel_csr.c | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) commit b6e7d894c3d211b87dd7fde11b2916ecfc20179a Author: Damien Lespiau Date: Tue Oct 27 14:46:59 2015 +0200 drm/i915/skl: Store and print the DMC firmware version we load That can be handy later on to tell which DMC firmware version the user has, by just looking at the dmesg. v2: use DRM_DEBUG_DRIVER (Chris) v3: use DRM_INFO (Marc Herbert) Cc: Marc Herbert Signed-off-by: Damien Lespiau (v1) Signed-off-by: Mika Kuoppala Link: http://patchwork.freedesktop.org/patch/msgid/1445950025-5793-1-git-send-email-mika.kuoppala@intel.com Reviewed-by: Imre Deak Tested-by: Daniel Stone # SKL Signed-off-by: Ville Syrjälä drivers/gpu/drm/i915/i915_drv.h | 5 +++++ drivers/gpu/drm/i915/intel_csr.c | 9 ++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) commit 51f1385b90c1ad30896bd62b1ff97aa4edb1a163 Author: Tvrtko Ursulin Date: Tue Jun 30 10:06:27 2015 +0100 drm/i915: Fix failure paths around initial fbdev allocation We had two failure modes here: 1. Deadlock in intelfb_alloc failure path where it calls drm_framebuffer_remove, which grabs the struct mutex and intelfb_create (caller of intelfb_alloc) was already holding it. 2. Deadlock in intelfb_create failure path where it calls drm_framebuffer_unreference, which grabs the struct mutex and intelfb_create was already holding it. [Daniel Vetter on why struct_mutex needs to be locked in the second half of intelfb_create: "The vma [for the fbdev] is pinned, the problem is that we re-lookup it a few times, which is racy. We should instead track the vma directly, but oh well we don't."] v2: * Reformat commit msg to 72 chars. (Lukas Wunner) * Add third failure mode. (Lukas Wunner) v5: * Rebase on drm-intel-nightly 2015y-09m-01d-09h-06m-08s UTC, rephrase commit message. (Jani Nicula) v6: * In intelfb_alloc, if __intel_framebuffer_create failed, fb will be an ERR_PTR, thus not null. So in the failure path we need to check for IS_ERR_OR_NULL to avoid calling drm_framebuffer_remove on the ERR_PTR. (Lukas Wunner) * Since this is init code a drm_framebuffer_unreference should be all we need. drm_framebuffer_remove is for framebuffers that userspace has created - and is getting somewhat defeatured. (Daniel Vetter) v7: * Clarify why struct_mutex needs to be locked in the second half of intelfb_create. (Daniel Vetter) Fixes: 60a5ca015ffd ("drm/i915: Add locking around framebuffer_references--") Reported-by: Lukas Wunner Signed-off-by: Tvrtko Ursulin [Lukas: Create v3 + v4 + v5 + v6 + v7 based on Tvrtko's v2] Signed-off-by: Lukas Wunner Cc: Chris Wilson Cc: Ville Syrjälä Reviewed-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/47d4e88c91b3bf0f7a280cabec54c8c8cf0cf6f2.1446892879.git.lukas@wunner.de Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_fbdev.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) commit ca40ba855c9e3f19f2715fd8a1ced5128359d3d9 Author: Lukas Wunner Date: Thu Oct 22 13:37:18 2015 +0200 drm/i915: Fix double unref in intelfb_alloc failure path In intelfb_alloc(), if the call to intel_pin_and_fence_fb_obj() fails, the bo is unrefed twice: By drm_framebuffer_remove() and once more by drm_gem_object_unreference(). Fix it. Reported-by: Ville Syrjälä Signed-off-by: Lukas Wunner Reviewed-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/cd7b33330621a350b0159ec5e098297b139cfaf7.1446892879.git.lukas@wunner.de Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_fbdev.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit dcb1394e74e32e33856e877bca1a0e88c78323d8 Author: Lukas Wunner Date: Sat Jul 4 11:50:58 2015 +0200 drm/i915: On fb alloc failure, unref gem object where it gets refed Currently when allocating a framebuffer fails, the gem object gets unrefed at the bottom of the call stack in __intel_framebuffer_create, not where it gets refed, which is in intel_framebuffer_create_for_mode (via i915_gem_alloc_object) and in intel_user_framebuffer_create (via drm_gem_object_lookup). This invites mistakes: __intel_framebuffer_create is also called from intelfb_alloc, and as discovered by Tvrtko Ursulin, a double unref was introduced there with a8bb6818270c ("drm/i915: Fix error path leak in fbdev fb allocation"). As suggested by Ville Syrjälä, fix the double unref and improve code clarity by moving the unref away from __intel_framebuffer_create to where the gem object gets refed. Based on Tvrtko Ursulin's original v2. v3: On fb alloc failure, unref gem object where it gets refed, fix double unref in separate commit (Ville Syrjälä) v4: Lock struct_mutex on unref (Chris Wilson) v5: Rebase on drm-intel-nightly 2015y-09m-01d-09h-06m-08s UTC, rephrase commit message (Jani Nicula) Tested-by: Pierre Moreau [MBP 5,3 2009 nvidia MCP79 + G96 pre-retina] Tested-by: Paul Hordiienko [MBP 6,2 2010 intel ILK + nvidia GT216 pre-retina] Tested-by: William Brown [MBP 8,2 2011 intel SNB + amd turks pre-retina] Tested-by: Lukas Wunner [MBP 9,1 2012 intel IVB + nvidia GK107 pre-retina] Tested-by: Bruno Bierbaumer [MBP 11,3 2013 intel HSW + nvidia GK107 retina] Fixes: a8bb6818270c ("drm/i915: Fix error path leak in fbdev fb allocation") Cc: Tvrtko Ursulin Cc: Chris Wilson Signed-off-by: Lukas Wunner Reviewed-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/2161c5062ef5d6458f8ae14d924a26d4d1dba317.1446892879.git.lukas@wunner.de Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) commit 72a868b38bdd60cbc4084a91fd7b8df3e2bb96ba Author: Ioana Ciornei Date: Sun Nov 1 14:58:45 2015 +0200 iio: imu: check sscanf return value This patch fixes the following checkpatch warning: WARNING: unchecked sscanf return value Signed-off-by: Ioana Ciornei Acked-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron drivers/iio/imu/adis16400_core.c | 6 +++++- drivers/iio/imu/adis16480.c | 4 +++- 2 files changed, 8 insertions(+), 2 deletions(-) commit a106b4748917ba510d083217dbc25e56299f32d4 Author: Ioana Ciornei Date: Sun Nov 1 14:58:44 2015 +0200 iio: gyro: check sscanf return value This patch fixes the checkpatch warnings: WARNING: unchecked sscanf return value Signed-off-by: Ioana Ciornei Acked-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron drivers/iio/gyro/adis16136.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 7d0ead5c3f00a0652fa4436f0d2dd05e9f2de140 Author: Adriana Reus Date: Thu Nov 5 16:25:29 2015 +0200 iio: Reconcile operation order between iio_register/unregister and pm functions At probe, runtime pm should be setup before registering the sysfs interface so that all the power attributes are accurate and functional when registering. Also, when removing the device we should unregister first to make sure that the interfaces that may result in wakeups are no longer available. Fix this behaviour for the following drivers: bmc150, bmg160, kmx61, kxcj-1013, mma9551, mma9553, rpr0521. Signed-off-by: Adriana Reus Signed-off-by: Jonathan Cameron drivers/iio/accel/bmc150-accel-core.c | 20 +++++++++----------- drivers/iio/accel/kxcjk-1013.c | 20 +++++++++----------- drivers/iio/accel/mma9551.c | 19 +++++++++---------- drivers/iio/accel/mma9553.c | 20 +++++++++----------- drivers/iio/gyro/bmg160_core.c | 19 +++++++++---------- drivers/iio/imu/kmx61.c | 24 +++++++++++------------- drivers/iio/light/rpr0521.c | 14 ++++---------- drivers/iio/magnetometer/bmc150_magn.c | 20 +++++++++----------- 8 files changed, 69 insertions(+), 87 deletions(-) commit 536bbca7cfc9e7a85704de552fcf4b5d1062a38e Author: Adriana Reus Date: Fri Nov 6 11:10:37 2015 +0200 iio: light: pa12203001: Poweroff chip if register fails Make sure we poweroff the chip if for any reason iio_register returns an error. Signed-off-by: Adriana Reus Signed-off-by: Jonathan Cameron drivers/iio/light/pa12203001.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) commit 79f1d836925c545b4612f7ed19423f0950978b5e Author: Borislav Petkov Date: Tue Nov 3 10:18:49 2015 +0100 x86/paravirt: Kill some unused patching functions paravirt_patch_ignore() is completely unused and paravirt_patch_nop() doesn't do a whole lot. Remove them both. Signed-off-by: Borislav Petkov Reviewed-by: Juergen Gross Cc: Andrew Morton Cc: Andy Lutomirski Cc: Chris Wright Cc: Jeremy Fitzhardinge Cc: "Peter Zijlstra (Intel)" Cc: Rusty Russell Cc: virtualization@lists.linux-foundation.org Cc: xen-devel@lists.xenproject.org Link: http://lkml.kernel.org/r/1446542329-32037-1-git-send-email-bp@alien8.de Signed-off-by: Thomas Gleixner arch/x86/include/asm/paravirt_types.h | 2 -- arch/x86/kernel/paravirt.c | 13 +------------ 2 files changed, 1 insertion(+), 14 deletions(-) commit e588fa18c1cc490fa75c0b4bd1d4f7758ccd33cf Author: Ander Conselvan de Oliveira Date: Fri Oct 23 13:01:50 2015 +0300 drm/i915: Make intel_dp_source_supports_hbr2() take an intel_dp pointer The function name implies it should get intel_dp, and it mostly used where there is an intel_dp in the context. Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Sivakumar Thulasimani Link: http://patchwork.freedesktop.org/patch/msgid/1445594525-7174-8-git-send-email-ander.conselvan.de.oliveira@intel.com drivers/gpu/drm/i915/intel_dp.c | 19 +++++++++++-------- drivers/gpu/drm/i915/intel_dp_link_training.c | 4 +--- drivers/gpu/drm/i915/intel_drv.h | 2 +- 3 files changed, 13 insertions(+), 12 deletions(-) commit ad64217b030c6f7af3613577bcefeef8a5ad91be Author: Ander Conselvan de Oliveira Date: Fri Oct 23 13:01:49 2015 +0300 drm/i915: Create intel_dp->prepare_link_retrain() hook In order to prepare for a link training with DDI, the state machine would call intel_ddi_prepare_link_retrain(). To remove the dependency to the hardware information, replace that direct call with a callback. Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Sivakumar Thulasimani Link: http://patchwork.freedesktop.org/patch/msgid/1445594525-7174-7-git-send-email-ander.conselvan.de.oliveira@intel.com drivers/gpu/drm/i915/intel_ddi.c | 8 ++++---- drivers/gpu/drm/i915/intel_dp.c | 3 +++ drivers/gpu/drm/i915/intel_dp_link_training.c | 6 ++---- drivers/gpu/drm/i915/intel_drv.h | 6 +++++- 4 files changed, 14 insertions(+), 9 deletions(-) commit 94223d041b0716cee45240cdcd635357d7302021 Author: Ander Conselvan de Oliveira Date: Fri Oct 23 13:01:48 2015 +0300 drm/i915: Move generic link training code to a separate file No functional changes, just moving code around. v2: Rebase Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Sivakumar Thulasimani Link: http://patchwork.freedesktop.org/patch/msgid/1445594525-7174-6-git-send-email-ander.conselvan.de.oliveira@intel.com drivers/gpu/drm/i915/Makefile | 1 + drivers/gpu/drm/i915/intel_dp.c | 321 +------------------------ drivers/gpu/drm/i915/intel_dp_link_training.c | 327 ++++++++++++++++++++++++++ drivers/gpu/drm/i915/intel_drv.h | 16 ++ 4 files changed, 353 insertions(+), 312 deletions(-) commit b905a9155db6fd51bfdb7625b7d0c5c3047d49f2 Author: Ander Conselvan de Oliveira Date: Fri Oct 23 13:01:47 2015 +0300 drm/i915: Move register write into intel_dp_set_signal_levels() Move register write from intel_dp_update_link_train() into intel_dp_set_signal_levels(). This creates a better split between the i915 specific code and the generic link training part. Note that this causes an extra register write in intel_dp_reset_link_train(), since both intel_dp_set_signal_levels() and intel_dp_set_link_train() write to the DP register. Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Sivakumar Thulasimani Link: http://patchwork.freedesktop.org/patch/msgid/1445594525-7174-5-git-send-email-ander.conselvan.de.oliveira@intel.com drivers/gpu/drm/i915/intel_dp.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit c1a5e9f69a4048e9127f5e8b2887bc89c435f9a3 Author: Ander Conselvan de Oliveira Date: Fri Oct 23 13:01:46 2015 +0300 drm/i915 Call get_adjust_train() from clock recovery and channel eq Move the call to intel_dp_get_adjust_train() out of intel_dp_update_link_train() and call it instead from the clock recovery and channel equalization features. A follow up patch will remove the DP register write from that function, so that it handles only the DPCD write. Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Sivakumar Thulasimani Link: http://patchwork.freedesktop.org/patch/msgid/1445594525-7174-4-git-send-email-ander.conselvan.de.oliveira@intel.com drivers/gpu/drm/i915/intel_dp.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit e9c176d511983d53092dffedc43fd5c176c5ae0f Author: Ander Conselvan de Oliveira Date: Fri Oct 23 13:01:45 2015 +0300 drm/i915: Split write of pattern to DP reg from intel_dp_set_link_train Split the register write with the new link training pattern out of intel_dp_set_link_train(), so that the i915 specific code is in a separate function. Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Sivakumar Thulasimani Link: http://patchwork.freedesktop.org/patch/msgid/1445594525-7174-3-git-send-email-ander.conselvan.de.oliveira@intel.com drivers/gpu/drm/i915/intel_dp.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) commit f4eb692e8edc600d1b02ad2f1320ee7cae454711 Author: Ander Conselvan de Oliveira Date: Fri Oct 23 13:01:44 2015 +0300 drm/i915: Don't pass *DP around to link training functions It just makes the code more confusing, so just reference intel_dp_>DP directly. Note that this also fix a bug where the value of intel_dp->DP could be different than the last value written to the hw, due to an early return that would skip the 'intel_dp->DP = DP' line. v2: Don't preserve old DP value on failure. (Sivakumar) - Don't call drm_dp_clock_recovery_ok() twice. (Sivakumar) - Keep return type of clock recovery and channel equalization functions as void. (Ander) v3: Remove DP parameter from intel_dp_set_signal_levels(). (Sivakumar) Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Sivakumar Thulasimani Link: http://patchwork.freedesktop.org/patch/msgid/1445594525-7174-2-git-send-email-ander.conselvan.de.oliveira@intel.com drivers/gpu/drm/i915/intel_dp.c | 47 ++++++++++++++++++----------------------- 1 file changed, 20 insertions(+), 27 deletions(-) commit 00ce5c8a66fb2241d4fed9645b12a1cbce97b798 Author: Deepak S Date: Thu Oct 29 10:22:01 2015 -0700 drm/i915/kbl: Kabylake uses the same GMS values as Skylake Reviewed-by: Damien Lespiau Signed-off-by: Deepak S Signed-off-by: Damien Lespiau Signed-off-by: Rodrigo Vivi Link: http://patchwork.freedesktop.org/patch/msgid/1446139321-2818-2-git-send-email-rodrigo.vivi@intel.com Signed-off-by: Jani Nikula arch/x86/kernel/early-quirks.c | 1 + 1 file changed, 1 insertion(+) commit f1b391a55134df0d338a6ff829baa0f578d86852 Author: Shobhit Kumar Date: Thu Nov 5 18:05:32 2015 +0530 drm/i915/skl: While sanitizing cdclock check the SWF18 as well SWF18 is set if the display has been initialized by the pre-os. It also gives what configuration is enabled on which pipe. In skl_sanitize_cdclk, the DPLL sanity check can pass even if GOP/VBIOS is not loaded as BIOS enables DPLL for integrated audio codec related programming. So fisrt check if SWF18 is set and then follow through with other DPLL and CDCLK verification. If not set then for sure we need to sanitize the cdclock. v2: Update the commit message for clarity (Siva) v3: Correct the mask to check for bits[23:0] instead of only bits[16:0]. Had missed checking for PIPE C altogether. Remaining are reserved (Siva) v4: Use ILK_SWF macro for SWF register definitions. Taken from Ville's patch http://lists.freedesktop.org/archives/intel-gfx/2015-November/079480.html Cc: Ville Syrjälä Signed-off-by: Shobhit Kumar Reviewed-by: Sivakumar Thulasimani Acked-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446726932-14078-1-git-send-email-shobhit.kumar@intel.com Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_reg.h | 1 + drivers/gpu/drm/i915/intel_display.c | 8 ++++++++ 2 files changed, 9 insertions(+) commit 72613184a1f076659e8a902d64351f50d3f9c990 Author: Thomas Gleixner Date: Wed Nov 4 22:57:09 2015 +0000 x86/smp: Remove single IPI wrapper All APIC implementation have send_IPI now. Remove the conditional in the calling code. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Cc: Linus Torvalds Cc: Borislav Petkov Cc: Peter Zijlstra Cc: Mike Travis Cc: Daniel J Blueman Link: http://lkml.kernel.org/r/20151104220849.807817097@linutronix.de arch/x86/kernel/smp.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) commit 6153058a03f4cc5200b0b29e201caa11779ebca0 Author: Thomas Gleixner Date: Wed Nov 4 22:57:08 2015 +0000 x86/apic: Use default send single IPI wrapper Wire up the default_send_IPI_single() wrapper to the last holdouts. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Cc: Linus Torvalds Cc: Borislav Petkov Cc: Peter Zijlstra Cc: Mike Travis Cc: Daniel J Blueman Link: http://lkml.kernel.org/r/20151104220849.711224890@linutronix.de arch/x86/kernel/apic/apic_flat_64.c | 1 + arch/x86/kernel/apic/probe_32.c | 1 + 2 files changed, 2 insertions(+) commit 7e29393b20a1a863a5f9bf48dc71e5cff4035ff5 Author: Thomas Gleixner Date: Wed Nov 4 22:57:07 2015 +0000 x86/apic: Provide default send single IPI wrapper Instead of doing the wrapping in the smp code we can provide a default wrapper for those APICs which insist on cpumasks. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Cc: Linus Torvalds Cc: Borislav Petkov Cc: Peter Zijlstra Cc: Mike Travis Cc: Daniel J Blueman Link: http://lkml.kernel.org/r/20151104220849.631111846@linutronix.de arch/x86/include/asm/ipi.h | 1 + arch/x86/kernel/apic/ipi.c | 8 ++++++++ 2 files changed, 9 insertions(+) commit 4727da2eb1ec79fdc2acdd2f764b5b2aacab998c Author: Thomas Gleixner Date: Wed Nov 4 22:57:06 2015 +0000 x86/apic: Implement single IPI for apic_noop Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Cc: Linus Torvalds Cc: Borislav Petkov Cc: Peter Zijlstra Cc: Mike Travis Cc: Daniel J Blueman Link: http://lkml.kernel.org/r/20151104220849.455429817@linutronix.de arch/x86/kernel/apic/apic_noop.c | 2 ++ 1 file changed, 2 insertions(+) commit c61a0d31ba0ce75cb1b88bb4eb2f41a1b80bc90f Author: Thomas Gleixner Date: Wed Nov 4 22:57:06 2015 +0000 x86/apic: Wire up single IPI for apic_numachip The function already exists. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Cc: Linus Torvalds Cc: Borislav Petkov Cc: Peter Zijlstra Cc: Mike Travis Cc: Daniel J Blueman Link: http://lkml.kernel.org/r/20151104220849.551445489@linutronix.de arch/x86/kernel/apic/apic_numachip.c | 2 ++ 1 file changed, 2 insertions(+) commit 8642ea953d99fc037c1076e9a8b3a822025fb251 Author: Thomas Gleixner Date: Wed Nov 4 22:57:05 2015 +0000 x86/apic: Wire up single IPI for x2apic_uv The function already exists. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Cc: Linus Torvalds Cc: Borislav Petkov Cc: Peter Zijlstra Cc: Mike Travis Cc: Daniel J Blueman Link: http://lkml.kernel.org/r/20151104220849.376775625@linutronix.de arch/x86/kernel/apic/x2apic_uv_x.c | 1 + 1 file changed, 1 insertion(+) commit f2bffe8a3eef42a1cd3393d56acd9fe598d2119c Author: Thomas Gleixner Date: Wed Nov 4 22:57:04 2015 +0000 x86/apic: Implement single IPI for x2apic_phys Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Cc: Linus Torvalds Cc: Borislav Petkov Cc: Peter Zijlstra Cc: Mike Travis Cc: Daniel J Blueman Link: http://lkml.kernel.org/r/20151104220849.296438009@linutronix.de arch/x86/kernel/apic/x2apic_phys.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 5789a12e28f7bf6a37564a5fc9ebc60dc86659b5 Author: Thomas Gleixner Date: Wed Nov 4 22:57:04 2015 +0000 x86/apic: Wire up single IPI for bigsmp_apic Use the default implementation. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Cc: Linus Torvalds Cc: Borislav Petkov Cc: Peter Zijlstra Cc: Mike Travis Cc: Daniel J Blueman Link: http://lkml.kernel.org/r/20151104220849.213292642@linutronix.de arch/x86/kernel/apic/bigsmp_32.c | 1 + 1 file changed, 1 insertion(+) commit 500bd02fb17e5d9296c77ccc07db61fd5d4922a4 Author: Thomas Gleixner Date: Wed Nov 4 22:57:03 2015 +0000 x86/apic: Remove pointless indirections from bigsmp_apic Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Cc: Linus Torvalds Cc: Borislav Petkov Cc: Peter Zijlstra Cc: Mike Travis Cc: Daniel J Blueman Link: http://lkml.kernel.org/r/20151104220849.133086575@linutronix.de arch/x86/kernel/apic/bigsmp_32.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit 68cd88ff8df97846eb07080f17264a4de50cb012 Author: Thomas Gleixner Date: Wed Nov 4 22:57:02 2015 +0000 x86/apic: Wire up single IPI for apic_physflat Use the default implementation. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Cc: Linus Torvalds Cc: Borislav Petkov Cc: Peter Zijlstra Cc: Mike Travis Cc: Daniel J Blueman Link: http://lkml.kernel.org/r/20151104220849.055046864@linutronix.de arch/x86/kernel/apic/apic_flat_64.c | 1 + 1 file changed, 1 insertion(+) commit 449112f4f35074f1dc70d4f0e769cb14150c159c Author: Thomas Gleixner Date: Wed Nov 4 22:57:02 2015 +0000 x86/apic: Remove pointless indirections from apic_physflat No value in having 32 byte extra text. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Cc: Linus Torvalds Cc: Borislav Petkov Cc: Peter Zijlstra Cc: Mike Travis Cc: Daniel J Blueman Link: http://lkml.kernel.org/r/20151104220848.975653382@linutronix.de arch/x86/kernel/apic/apic_flat_64.c | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) commit 53be0fac8bdaeec87e0df7d0334345421d2be187 Author: Thomas Gleixner Date: Wed Nov 4 22:57:01 2015 +0000 x86/apic: Implement default single target IPI function apic_physflat and bigsmp_apic can share that implementation. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Cc: Linus Torvalds Cc: Borislav Petkov Cc: Peter Zijlstra Cc: Mike Travis Cc: Daniel J Blueman Link: http://lkml.kernel.org/r/20151104220848.898543767@linutronix.de arch/x86/include/asm/ipi.h | 1 + arch/x86/kernel/apic/ipi.c | 10 ++++++++++ 2 files changed, 11 insertions(+) commit 7b6ce46cb3d096831dea3accacee4717c66abac8 Author: Linus Torvalds Date: Wed Nov 4 22:57:00 2015 +0000 x86/apic: Implement single target IPI function for x2apic_cluster [ tglx: Split it out from the patch which provides the new callback ] Signed-off-by: Linus Torvalds Reviewed-by: Ingo Molnar Cc: Borislav Petkov Cc: Peter Zijlstra Cc: Mike Travis Cc: Daniel J Blueman Link: http://lkml.kernel.org/r/20151104220848.817975597@linutronix.de Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/x2apic_cluster.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 539da7877275edb21a76aa02fb2c147eff02c559 Author: Linus Torvalds Date: Wed Nov 4 22:57:00 2015 +0000 x86/apic: Add a single-target IPI function to the apic We still fall back on the "send mask" versions if an apic definition doesn't have the single-target version, but at least this allows the (trivial) case for the common clustered x2apic case. Signed-off-by: Linus Torvalds Reviewed-by: Ingo Molnar Cc: Borislav Petkov Cc: Peter Zijlstra Cc: Mike Travis Cc: Daniel J Blueman Link: http://lkml.kernel.org/r/20151104220848.737120838@linutronix.de Signed-off-by: Thomas Gleixner arch/x86/include/asm/apic.h | 1 + arch/x86/kernel/smp.c | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) commit b5667627963b51baa06868a550d2bc340e3d18a9 Author: Matt Roper Date: Wed Nov 4 09:05:27 2015 -0800 drm/i915/bxt: Fix eDP panel fitting (v2) BXT CRTC scaling uses the same gen9 codepaths as SKL; these codepaths store panel fitter information in pipe_config->pch_pfit. However since HAS_PCH_SPLIT() is false for BXT we never actually wind up filling in this structure (we wind up filling in pipe_config->gmch_pfit instead, which is ignored when we go to program the hardware). Make sure we always take the PCH code path on gen9+ platforms. v2: Use HAS_GMCH_DISPLAY() to more cleanly describe the platforms that actually want to use GMCH-style panel fitting. (Ville) Cc: Imre Deak Cc: Chandra Konduru Signed-off-by: Matt Roper Reviewed-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1446656727-3516-1-git-send-email-matthew.d.roper@intel.com drivers/gpu/drm/i915/intel_dp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 844fa57227124c353049df02de809b3d6c9505e8 Author: Yanbo Li Date: Sat Oct 31 11:07:21 2015 +0200 ath10k: debugfs file to enable Bluetooth coexistence feature As not all QCA98XX radios are not connected to Bluetooth modules, enabling the BT coex feature in firmware will have side effects if the radio's GPIO are connected with other (non-BT) HW modules. Add debugfs file to control the firmware BT coex logic and set the feature as disable by default to avoid that btcoex is accidentally enabled. To enable this feature, execute: echo 1 > /sys/kernel/debug/ieee80211/phyX/ath10k/btcoex To disable: echo 0 > /sys/kernel/debug/ieee80211/phyX/ath10k/btcoex The firmware support this feature since 10.2.4.54 on 2G-only board, dual band or 5G boards don't support this. The feature's name is WMI_SERVICE_COEX_GPIO and the btcoex file is not created if firmware doesn't support it. Signed-off-by: Yanbo Li [kvalo@qca.qualcomm.com: use btcoex filename and other smaller fixes] Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.h | 3 ++ drivers/net/wireless/ath/ath10k/debug.c | 66 +++++++++++++++++++++++++++++++++ drivers/net/wireless/ath/ath10k/wmi.c | 5 ++- 3 files changed, 73 insertions(+), 1 deletion(-) commit afb0bf7f530bef214fb8db4e05502f85d72961b4 Author: Vivek Natarajan Date: Fri Oct 30 14:57:58 2015 +0530 ath10k: add support for pktlog in QCA99X0 This patch adds pktlog support for 10.4 fw versions. Signed-off-by: Vivek Natarajan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/htt.h | 2 ++ drivers/net/wireless/ath/ath10k/htt_rx.c | 12 ++++++++++++ drivers/net/wireless/ath/ath10k/hw.h | 10 ++++++++++ drivers/net/wireless/ath/ath10k/pci.c | 11 +++++++++++ 4 files changed, 35 insertions(+) commit 52e8ce133e955aa7ff996247a4a276bee55ac046 Author: Vasanthakumar Thiagarajan Date: Thu Oct 29 19:11:34 2015 +0530 ath10k: add new pdev params defines to 10.4 No functionality change, just sync to the latest pdev params that 10.4 firmware defines. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi.h | 6 ++++++ 1 file changed, 6 insertions(+) commit 69d4315cc255b21c913f24662383dc8f8fc0718c Author: Vasanthakumar Thiagarajan Date: Thu Oct 29 19:11:33 2015 +0530 ath10k: add new WMI cmd/event defines for 10.4 No real functionality change, add WMI command/event defines to be in sync with 10.4 firmware. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi.h | 4 ++++ 1 file changed, 4 insertions(+) commit e3c6225d3a2aae18b1e4bf7356660786a6595982 Author: Vasanthakumar Thiagarajan Date: Thu Oct 29 19:11:32 2015 +0530 ath10k: add new service defines for 10.4 No functional changes, adds new wmi service bits for 10.4 firmware to be sync with 10.4 firmware. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi.h | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 6dd46348b935043d8748ad39ef7e9275b0c53c47 Author: Tamizh chelvam Date: Sat Oct 31 11:20:32 2015 +0200 ath10k: add thermal throttling support for 10.4 firmware This patch enables thermal throttling support for 10.4 firmware. Signed-off-by: Tamizh chelvam Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/thermal.c | 2 +- drivers/net/wireless/ath/ath10k/wmi.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) commit 90eceb3b5fb0d0f413f475165314d4578c3a46c4 Author: Tamizh chelvam Date: Thu Oct 29 14:27:42 2015 +0200 ath10k: set peer MFP flag in peer assoc command Set peer's management frame protection flag in peer assoc command, this setting will enable/disable encrytion of management frames in fw. Setting of this flag is based on whether MFP is enabled/disabled at STA and a firmware feature flag ATH10K_FW_FEATURE_MFP_SUPPORT. This is because only firmwares 10.1.561 and above have support for MFP. Signed-off-by: Tamizh chelvam Signed-off-by: Manikanta pubbisetty Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.c | 1 + drivers/net/wireless/ath/ath10k/core.h | 3 +++ drivers/net/wireless/ath/ath10k/htt_tx.c | 7 +++++++ drivers/net/wireless/ath/ath10k/mac.c | 8 +++++++- 4 files changed, 18 insertions(+), 1 deletion(-) commit 3fab30f7e8f31a06702ee6b03a902caffa5bc724 Author: Tamizh chelvam Date: Thu Oct 29 14:27:37 2015 +0200 ath10k: add abstraction layer for peer flags Abstraction layer for peer flags is added to fix ABI breakage. Signed-off-by: Tamizh chelvam Signed-off-by: SenthilKumar Jegadeesan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.h | 1 + drivers/net/wireless/ath/ath10k/mac.c | 33 ++++++------ drivers/net/wireless/ath/ath10k/wmi-tlv.c | 19 +++++++ drivers/net/wireless/ath/ath10k/wmi-tlv.h | 18 +++++++ drivers/net/wireless/ath/ath10k/wmi.c | 60 +++++++++++++++++++++ drivers/net/wireless/ath/ath10k/wmi.h | 88 +++++++++++++++++++++++++------ 6 files changed, 188 insertions(+), 31 deletions(-) commit 2c9bceced3a7105665488085072bb7979cdc5257 Author: Manikanta Pubbisetty Date: Tue Oct 20 12:11:40 2015 +0530 ath10k: consolidate if statements in ath10k_wmi_event_mgmt_rx This patch replaces multiple if conditional checks with a single if condition in WMI management rx handler. Found during code review. Signed-off-by: Manikanta Pubbisetty Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi.c | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) commit bf6189c6f062b5cd6ca0d46754e4c3064643f48c Author: Paulo Zanoni Date: Tue Oct 27 14:50:03 2015 -0200 drm/i915: change no_fbc_reason from enum to string I wanted to add yet another check to intel_fbc_update() and realized I would need to create yet another enum no_fbc_reason case. So I remembered this patch series that Damien wrote a long time ago and nobody ever reviewed, so I decided to reimplement it since the code changed a lot since then. Credits-to: Damien Lespiau Cc: Damien Lespiau Reviewed-by: Daniel Vetter Signed-off-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/msgid/1445964628-30226-2-git-send-email-paulo.r.zanoni@intel.com Signed-off-by: Maarten Lankhorst drivers/gpu/drm/i915/i915_debugfs.c | 2 +- drivers/gpu/drm/i915/i915_drv.h | 19 +-------- drivers/gpu/drm/i915/intel_drv.h | 1 - drivers/gpu/drm/i915/intel_fbc.c | 77 +++++++++---------------------------- 4 files changed, 20 insertions(+), 79 deletions(-) commit 7580d774b0466fff28aab19db4f36dac37a3d1a9 Author: Maarten Lankhorst Date: Tue Aug 18 13:40:06 2015 +0200 drm/i915: Wait for object idle without locks in atomic_commit, v2. Make pinning and waiting a separate step, and wait for object idle without struct_mutex held. Changes since v1: - Do not wait when a reset is in progress. - Remove call to i915_gem_object_wait_rendering for intel_overlay_do_put_image (Chris Wilson) Signed-off-by: Maarten Lankhorst Reviewed-by: Chris Wilson drivers/gpu/drm/i915/i915_drv.h | 2 - drivers/gpu/drm/i915/i915_gem.c | 6 --- drivers/gpu/drm/i915/intel_atomic_plane.c | 2 + drivers/gpu/drm/i915/intel_display.c | 82 ++++++++++++++++++++++++++----- drivers/gpu/drm/i915/intel_drv.h | 7 +-- drivers/gpu/drm/i915/intel_fbdev.c | 2 +- drivers/gpu/drm/i915/intel_overlay.c | 2 +- 7 files changed, 77 insertions(+), 26 deletions(-) commit f935675f0c07f87da2facc4c144d511e6da48240 Author: Maarten Lankhorst Date: Tue Aug 18 13:40:05 2015 +0200 drm/i915: Change locking for struct_mutex, v3. struct_mutex is being locked for every plane in intel_prepare_plane_fb and intel_cleanup_plane_fb. Require the caller to hold the mutex, and only acquire the mutex for each helper call. This way the lock only needs to be acquired twice in ->atomic_commit(). Once for pinning new framebuffers at the start, the second time for unpinning old framebuffer. Changes since v1: - Use mutex_lock_interruptible instead of i915 variant, to prevent a deadlock when called from the reset code. Changes since v2: - Clarify struct_mutex is locked by the caller. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper #v1 Reviewed-by: Chris Wilson drivers/gpu/drm/i915/intel_display.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) commit 5008e874edd34705be433bfa74bd29908182b36e Author: Maarten Lankhorst Date: Tue Aug 18 13:40:05 2015 +0200 drm/i915: Make wait_for_flips interruptible. Move it from intel_crtc_atomic_commit to prepare_plane_fb. Waiting is done before committing, otherwise it's too late to undo the changes. Signed-off-by: Maarten Lankhorst Reviewed-by: Ander Conselvan De Oliveira Reviewed-by: Chris Wilson drivers/gpu/drm/i915/intel_atomic.c | 2 - drivers/gpu/drm/i915/intel_display.c | 107 ++++++++++++++++++++--------------- drivers/gpu/drm/i915/intel_drv.h | 2 - 3 files changed, 62 insertions(+), 49 deletions(-) commit 3abc4e09c620e3b53887d7add88158549eee021f Author: Robert Fekete Date: Tue Oct 27 16:58:32 2015 +0100 drm/i915: Add extra plane information in debugfs. Extends i915_display_info so that for each active crtc also print all planes associated with the pipe. This patch shows information about each plane wrt format, size, position, rotation, and scaling. This is very useful when debugging user space compositors that try to utilize several planes for a commit. V2: Fixed comments from Maarten, Ville, and Chris. Fixed printing of 16.16 fixpoint, better rotation bitmask management and some minor fixes V3: Corrected state->src_x & 0x00ff to state->src_x & 0xffff... Signed-off-by: Robert Fekete Link: http://patchwork.freedesktop.org/patch/msgid/1445961512-25317-1-git-send-email-robert.fekete@linux.intel.com Signed-off-by: Maarten Lankhorst drivers/gpu/drm/i915/i915_debugfs.c | 109 +++++++++++++++++++++++++++++++++++- 1 file changed, 107 insertions(+), 2 deletions(-) commit fa9d60785783ebe11d3fafbedf5ec82bd3b02aec Author: Ioan-Adrian Ratiu Date: Sat Oct 31 01:16:00 2015 +0200 drm/i915/dma: enforce pr_ consistency One branch of the if clause uses pr_info, the other pr_err; change the 'false' branch to also use pr_info. This minor oversight has gone unfixed since the initial vga_switcheroo implementation in 6a9ee8af. Signed-off-by: Ioan-Adrian Ratiu Link: http://patchwork.freedesktop.org/patch/msgid/1446246960-22620-1-git-send-email-adi@adirat.com Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_dma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a84ef0d181d917125f1f16cffe53f84c19968969 Author: Joachim Eastwood Date: Sat Oct 31 13:49:16 2015 +0100 iio: accel: add Freescale MMA7455L/MMA7456L 3-axis accelerometer driver Add support for Freescale MMA7455L/MMA7456L 3-axis in 10-bit mode for I2C and SPI bus. This rather simple driver that currently doesn't support all the hardware features of MMA7455L/MMA7456L. Tested on Embedded Artist's LPC4357 Dev Kit with MMA7455L on I2C bus. Data sheets for the two devices can be found here: http://cache.freescale.com/files/sensors/doc/data_sheet/MMA7455L.pdf http://cache.freescale.com/files/sensors/doc/data_sheet/MMA7456L.pdf Signed-off-by: Joachim Eastwood Signed-off-by: Jonathan Cameron drivers/iio/accel/Kconfig | 29 ++++ drivers/iio/accel/Makefile | 5 + drivers/iio/accel/mma7455.h | 19 +++ drivers/iio/accel/mma7455_core.c | 311 +++++++++++++++++++++++++++++++++++++++ drivers/iio/accel/mma7455_i2c.c | 56 +++++++ drivers/iio/accel/mma7455_spi.c | 52 +++++++ 6 files changed, 472 insertions(+) commit 18fb1ab0eb81a08ecb00065f3e6c037a37d8e917 Author: Bjorn Andersson Date: Fri Oct 30 16:50:39 2015 -0700 iio: light: lm3533-als: Print error message on invalid resistance Print an error message to indicate that invalid configuration data was provided in the platform_data, rather than just aborting initialization. Signed-off-by: Bjorn Andersson Signed-off-by: Jonathan Cameron drivers/iio/light/lm3533-als.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 78c3d5fa7354774b7c8638033d46c042ebae41fb Author: Daniel Vetter Date: Fri Oct 23 11:00:06 2015 +0200 drm/i915: Don't complain about lack of ACPI video bios Another CI fail we have for no reason. Totally unjustified since nothing fails at all. Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1445590806-23886-1-git-send-email-daniel.vetter@ffwll.ch Acked-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_opregion.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9f9e539f90bcecfdc7b3679d337b7a62d4313205 Author: Daniel Vetter Date: Fri Oct 23 11:10:59 2015 +0200 drm/i915: Shut up GuC errors when it's disabled DRM_ERROR an continue without any issues aren't allowed since that causes noise in the CI system. But we absolutely want to have the DRM_ERROR when we want to run with GuC. For simplicity just short-circuit all the loader code when it's not needed. v2: Mika&Chris complained that I shouldn't hit send on patches written before coffee kicks in. v3: Make it compile at least ... Cc: Alex Dai Cc: Dave Gordon Cc: Mika Kuoppala Cc: Chris Wilson Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1445591459-4327-1-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 15 +++------------ drivers/gpu/drm/i915/intel_guc_loader.c | 6 ++++++ 2 files changed, 9 insertions(+), 12 deletions(-) commit cbdc12a9fc9d273a648e94eeee6794646f0158f2 Author: Tim Gore Date: Mon Oct 26 10:48:58 2015 +0000 drm/i915: make A0 wa's applied to A1 Since A1 chips use the same GPU as A0, they need all the same wa's in the i915 driver. Update some conditionals to do this. Signed-off-by: Tim Gore Reviewed-by: Arun Siluvery Link: http://patchwork.freedesktop.org/patch/msgid/1445856538-5417-1-git-send-email-tim.gore@intel.com Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_guc_loader.c | 2 +- drivers/gpu/drm/i915/intel_lrc.c | 8 ++++---- drivers/gpu/drm/i915/intel_pm.c | 2 +- drivers/gpu/drm/i915/intel_ringbuffer.c | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) commit 2b06f1087062c516ac2851ce5038fdb035b19d4d Author: Sergei Shtylyov Date: Thu Oct 29 00:34:29 2015 +0300 ARM: shmobile: henninger: remove board DT The Henninger low cost board was never sold and so had no users outside Renesas (and Cogent Embedded). Instead Renesas has made the Porter board which has mostly similar hardware. Now that the Porter board support is on par with Henninger, we can remove the Henninger's device tree file. Signed-off-by: Sergei Shtylyov Signed-off-by: Simon Horman arch/arm/boot/dts/Makefile | 1 - arch/arm/boot/dts/r8a7791-henninger.dts | 320 -------------------------------- 2 files changed, 321 deletions(-) commit 8b10c0cf21ec84618d4bf02c73c0543500ece68d Author: Deepak S Date: Wed Oct 28 12:21:12 2015 -0700 drm/i915/kbl: Add Kabylake GT4 PCI ID v2: (Rodrigo) Rebase after commit 3cb27f38f ("drm/i915: remove an extra level of indirection in PCI ID list") Cc: Jani Nikula Reviewed-by: Damien Lespiau Signed-off-by: Deepak S Signed-off-by: Damien Lespiau Signed-off-by: Rodrigo Vivi Link: http://patchwork.freedesktop.org/patch/msgid/1446060072-19489-1-git-send-email-rodrigo.vivi@intel.com Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_drv.c | 1 + include/drm/i915_pciids.h | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) commit d97044b661d0d56b2a2ae9b2b95ab0b359b417dc Author: Deepak S Date: Wed Oct 28 12:19:51 2015 -0700 drm/i915/kbl: Add Kabylake PCI ID v2: separate out device info into different GT (Damien) v3: Add is_kabylake to the KBL gt3 structuer (Damien) Sort the platforms in older -> newer order (Damien) v4: Split platform definition since is_skylake=1 on kabylake structure was Nacked. (Rodrigo) v5: (Rodrigo) Rebase after commit 3cb27f38f ("drm/i915: remove an extra level of indirection in PCI ID list") Cc: Jani Nikula Reviewed-by: Damien Lespiau Signed-off-by: Deepak S Signed-off-by: Damien Lespiau Signed-off-by: Rodrigo Vivi Link: http://patchwork.freedesktop.org/patch/msgid/1446059991-17033-1-git-send-email-rodrigo.vivi@intel.com Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_drv.c | 3 +++ include/drm/i915_pciids.h | 29 +++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) commit ef11bdb3e00a3f0b30018b0f5d74b9da1566ecb7 Author: Rodrigo Vivi Date: Wed Oct 28 04:16:45 2015 -0700 drm/i915/kbl: Introduce Kabylake platform defition. Kabylake is a Intel® Processor containing Intel® HD Graphics following Skylake. It is Gen9p5, so it inherits everything from Skylake. Let's start by adding the platform separated from Skylake but reusing most of all features, functions etc. Later we rebase the PCI-ID patch without is_skylake=1 so we don't replace what original Author did there. Few IS_SKYLAKEs if statements are not being covered by this patch on purpose: - Workarounds: Kabylake is derivated from Skylake H0 so no W/As apply here. - GuC: A following patch removes Kabylake support with an explanation: No firmware available yet. - DMC/CSR: Done in a separated patch since we need to be carefull and load the version for revision 7 since Kabylake is Skylake H0. v2: relative cleaner commit message and added the missed IS_KABYLAKE to intel_i2c.c as pointed out by Jani. Cc: Jani Nikula Signed-off-by: Rodrigo Vivi Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_debugfs.c | 16 +++++++----- drivers/gpu/drm/i915/i915_dma.c | 3 ++- drivers/gpu/drm/i915/i915_drv.c | 44 ++++++++++++++++++++++++++++----- drivers/gpu/drm/i915/i915_drv.h | 6 +++-- drivers/gpu/drm/i915/i915_gem_stolen.c | 3 ++- drivers/gpu/drm/i915/intel_audio.c | 9 ++++--- drivers/gpu/drm/i915/intel_ddi.c | 16 ++++++------ drivers/gpu/drm/i915/intel_display.c | 12 ++++----- drivers/gpu/drm/i915/intel_dp.c | 6 ++--- drivers/gpu/drm/i915/intel_fbc.c | 3 ++- drivers/gpu/drm/i915/intel_i2c.c | 4 +-- drivers/gpu/drm/i915/intel_mocs.c | 2 +- drivers/gpu/drm/i915/intel_pm.c | 11 +++++---- drivers/gpu/drm/i915/intel_runtime_pm.c | 2 +- 14 files changed, 90 insertions(+), 47 deletions(-) commit 7526ac195c77d5f95731b73c634aa31f13382013 Author: Rodrigo Vivi Date: Tue Oct 27 10:14:54 2015 -0700 drm/i915: Define IS_BROXTON properly. Kabylake will also be defined as gen9 and !is_skylake. So we need start by creating a proper Broxton definition, otherwise we will break broxton with the introduction of Kabylake. Signed-off-by: Rodrigo Vivi Link: http://patchwork.freedesktop.org/patch/msgid/1445966099-1640-2-git-send-email-rodrigo.vivi@intel.com Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_drv.c | 1 + drivers/gpu/drm/i915/i915_drv.h | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) commit 3cb27f38f2075964bedc5cafb6b25518809180be Author: Jani Nikula Date: Wed Oct 28 19:33:09 2015 +0200 drm/i915: remove an extra level of indirection in PCI ID list Add the PCI IDs directly in the pciidlist array instead of defining an extra macro. The minor benefit from this is neater diffs when adding to the end of the list. v2: drop the "aka" comment (Ville) Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1446053589-21283-1-git-send-email-jani.nikula@intel.com drivers/gpu/drm/i915/i915_drv.c | 73 ++++++++++++++++++++--------------------- 1 file changed, 35 insertions(+), 38 deletions(-) commit 608c1a526c99d1858b02d035657e28c9837667a5 Author: Chris Wilson Date: Thu Sep 3 13:01:40 2015 +0100 drm/i915: Recover all available ringbuffer space following reset Having flushed all requests from all queues, we know that all ringbuffers must now be empty. However, since we do not reclaim all space when retiring the request (to prevent HEADs colliding with rapid ringbuffer wraparound) the amount of available space on each ringbuffer upon reset is less than when we start. Do one more pass over all the ringbuffers to reset the available space Signed-off-by: Chris Wilson Reviewed-by: Mika Kuoppala Cc: Arun Siluvery Cc: Mika Kuoppala Cc: Dave Gordon drivers/gpu/drm/i915/i915_gem.c | 14 ++++++++++++++ drivers/gpu/drm/i915/intel_lrc.c | 1 + drivers/gpu/drm/i915/intel_ringbuffer.c | 13 ++++++++++--- drivers/gpu/drm/i915/intel_ringbuffer.h | 2 ++ 4 files changed, 27 insertions(+), 3 deletions(-) commit 0b170f7acd2ab1ca0771b933493b9241706117b4 Author: Jiada Wang Date: Fri Oct 23 14:18:48 2015 +0900 ASoC: wm8962: set ALC2 as non-volatile register Previously ALC2 register is set as a volatile register, declare it as one of ALC Coefficients register together with other non-volatile registers will cause issue, in case wm8962 has enter suspend mode, and cache_only flag is set, any attempt to read from ALC2 will fail. Because the 5 status bits in ALC2 aren't used anywhere nor are useful to end user, so this patch removes ALC2 register from volatile register list to make ALC2 be possible to be accessed when cache_only flag is set. Signed-off-by: Jiada Wang Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8962.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 0768fbad7fba1d2793cb4b57e30786e32d203948 Author: Sergei Shtylyov Date: Wed Oct 28 00:03:22 2015 +0300 ARM: shmobile: porter: add CAN0 DT support Define the Porter board dependent part of the CAN0 device node. This patch is analogous to the commit 457acc4a6ce8 ("ARM: shmobile: henninger: add CAN0 DT support") as there are no differences between the boards in this respect. Signed-off-by: Sergei Shtylyov Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791-porter.dts | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 01403de3c037932883b181f7f6b9962856064f9a Author: Ville Syrjälä Date: Fri Sep 18 20:03:33 2015 +0300 drm/i915: Use paramtrized WRPLL_CTL() v2: Rebase due to SKL_DPLLx usage Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1442595836-23981-21-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Jani Nikula drivers/gpu/drm/i915/i915_reg.h | 2 +- drivers/gpu/drm/i915/intel_ddi.c | 8 ++++---- drivers/gpu/drm/i915/intel_display.c | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) commit e97d8fbec130767236ead8641ae0205f541df68b Author: Ville Syrjälä Date: Thu Oct 22 15:35:00 2015 +0300 drm/i915: Add NEEDS_FORCEWAKE() checks for vlv/chv Include an early NEEDS_FORCEWAKE() check for vlv and chv. Hopefully that will avoid doing so many range checks in for many register accesses (at least for all display registers). Note that vlv already had the check in the write path since it shares the gen6+ code for that. Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1445517300-28173-6-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Daniel Vetter Reviewed-by: Chris Wilson drivers/gpu/drm/i915/intel_uncore.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 6a42d0f4b32d9f4c978bf03f286e488186ecba80 Author: Ville Syrjälä Date: Thu Oct 22 15:34:59 2015 +0300 drm/i915: Respin vlv/chv reagister access to look more like SKL Change the fw domain handling in the vlv/chv register read/write functions to look more like the SKL code, ie. have a single __force_wake_get() get call instead of multiple ones. Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1445517300-28173-5-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Daniel Vetter Reviewed-by: Chris Wilson drivers/gpu/drm/i915/intel_uncore.c | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) commit 0c8bfe526dec9d42a27daa17011c0ccd5ade53a8 Author: Ville Syrjälä Date: Thu Oct 22 15:34:58 2015 +0300 drm/i915: Minor style nits in intel_uncore.c Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1445517300-28173-4-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Daniel Vetter Reviewed-by: Chris Wilson drivers/gpu/drm/i915/intel_uncore.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4018169704e01af8c9a46105bcaf9e4f583bdfdc Author: Ville Syrjälä Date: Thu Oct 22 15:34:57 2015 +0300 drm/i915: Read FORCEWAKE registers with I915_READ_FW() Change FORCEWAKE & co. reads for the error state to use I915_READ_FW(). Reading a FORCEWAKE register using a function that can frob forcewake just seems wrong. There is a check to skip grabbing the forcewake for accessing FORCEWAKE in intel_uncore.c, but there's no such check for FORCEWAKE_MT. So no idea what is currently happening with FORCEWAKE_MT reads. FORCEWAKE_VLV is fortunately outside the forcewake range anyway, so no actual issue with that one. So let's just make the rule that you can't access FORCEWAKE registers with the normal I915_READ() stuff, and we can drop the extra FORCEWAKE check from NEEDS_FORCEWAKE(). While at it use NEEDS_FORCEWAKE() on BDW, where it was skipped for whatever bikeshed reason that I've already forgotten. Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1445517300-28173-3-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Daniel Vetter Reviewed-by: Chris Wilson drivers/gpu/drm/i915/i915_gpu_error.c | 6 +++--- drivers/gpu/drm/i915/intel_uncore.c | 5 ++--- 2 files changed, 5 insertions(+), 6 deletions(-) commit 75aa3f6307f01b46ea78b81ac257e24c3753e51d Author: Ville Syrjälä Date: Thu Oct 22 15:34:56 2015 +0300 drm/i915: Turn __raw_i915_read8() & co. in to inline functions There's no need for __raw_i915_read8() & co. to be macros, so make them inline functions. To avoid typo mistakes generate the inline functions using preprocessor templates. We have a few users of the raw register acces functions outside intel_uncore.c, so let's also move the functions into intel_drv.h. While doing that switch I915_READ_FW() & co. to use the __raw_i915_read() functions, and use the _FW macros everywhere outside intel_uncore.c where we want to read registers without grabbing forcewake and whatnot. The only exception is i915_check_vgpu() which itself gets called from intel_uncore.c, so using the __raw_i915_read stuff there seems appropriate. v2: Squash in the intel_uncore.c->i915_drv.h move Convert I915_READ_FW() to use __raw_i915_read(), and use I915_READ_FW() outside of intel_uncore.c (Chris) Signed-off-by: Ville Syrjälä Link: http://patchwork.freedesktop.org/patch/msgid/1445517300-28173-2-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Daniel Vetter Reviewed-by: Chris Wilson drivers/gpu/drm/i915/i915_debugfs.c | 2 +- drivers/gpu/drm/i915/i915_drv.h | 30 ++++++++++++++++++++++++++++-- drivers/gpu/drm/i915/i915_irq.c | 10 ++++------ drivers/gpu/drm/i915/i915_vgpu.c | 6 +++--- drivers/gpu/drm/i915/intel_uncore.c | 14 +------------- 5 files changed, 37 insertions(+), 25 deletions(-) commit 2d6ca60f328450ff5c7802d0857d12e3711348ce Author: Lars-Peter Clausen Date: Tue Oct 13 18:10:29 2015 +0200 iio: Add a DMAengine framework based buffer Add a generic fully device independent DMA buffer implementation that uses the DMAegnine framework to perform the DMA transfers. This can be used by converter drivers that whish to provide a DMA buffer for converters that are connected to a DMA core that implements the DMAengine API. Apart from allocating the buffer using iio_dmaengine_buffer_alloc() and freeing it using iio_dmaengine_buffer_free() no additional converter driver specific code is required when using this DMA buffer implementation. Signed-off-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron drivers/iio/buffer/Kconfig | 11 ++ drivers/iio/buffer/Makefile | 1 + drivers/iio/buffer/industrialio-buffer-dmaengine.c | 213 +++++++++++++++++++++ include/linux/iio/buffer-dmaengine.h | 18 ++ 4 files changed, 243 insertions(+) commit 670b19ae9bfdbcb4ce2c2ffb2ec1659a7f4a2074 Author: Lars-Peter Clausen Date: Tue Oct 13 18:10:28 2015 +0200 iio: Add generic DMA buffer infrastructure The traditional approach used in IIO to implement buffered capture requires the generation of at least one interrupt per sample. In the interrupt handler the driver reads the sample from the device and copies it to a software buffer. This approach has a rather large per sample overhead associated with it. And while it works fine for samplerates in the range of up to 1000 samples per second it starts to consume a rather large share of the available CPU processing time once we go beyond that, this is especially true on an embedded system with limited processing power. The regular interrupt also causes increased power consumption by not allowing the hardware into deeper sleep states, which is something that becomes more and more important on mobile battery powered devices. And while the recently added watermark support mitigates some of the issues by allowing the device to generate interrupts at a rate lower than the data output rate, this still requires a storage buffer inside the device and even if it exists it is only a few 100 samples deep at most. DMA support on the other hand allows to capture multiple millions or even more samples without any CPU interaction. This allows the CPU to either go to sleep for longer periods or focus on other tasks which increases overall system performance and power consumption. In addition to that some devices might not even offer a way to read the data other than using DMA, which makes DMA mandatory to use for them. The tasks involved in implementing a DMA buffer can be divided into two categories. The first category is memory buffer management (allocation, mapping, etc.) and hooking this up the IIO buffer callbacks like read(), enable(), disable(), etc. The second category of tasks is to setup the DMA hardware and manage the DMA transfers. Tasks from the first category will be very similar for all IIO drivers supporting DMA buffers, while the tasks from the second category will be hardware specific. This patch implements a generic infrastructure that take care of the former tasks. It provides a set of functions that implement the standard IIO buffer iio_buffer_access_funcs callbacks. These can either be used as is or be overloaded and augmented with driver specific code where necessary. For the DMA buffer support infrastructure that is introduced in this series sample data is grouped by so called blocks. A block is the basic unit at which data is exchanged between the application and the hardware. The application is responsible for allocating the memory associated with the block and then passes the block to the hardware. When the hardware has captured the amount of samples equal to size of a block it will notify the application, which can then read the data from the block and process it. The block size can freely chosen (within the constraints of the hardware). This allows to make a trade-off between latency and management overhead. The larger the block size the lower the per sample overhead but the latency between when the data was captured and when the application will be able to access it increases, in a similar way smaller block sizes have a larger per sample management overhead but a lower latency. The ideal block size thus depends on system and application requirements. For the time being the infrastructure only implements a simple double buffered scheme which allocates two blocks each with half the size of the configured buffer size. This provides basic support for capturing continuous uninterrupted data over the existing file-IO ABI. Future extensions to the DMA buffer infrastructure will give applications a more fine grained control over how many blocks are allocated and the size of each block. But this requires userspace ABI additions which are intentionally not part of this patch and will be added separately. Tasks of the second category need to be implemented by a device specific driver. They can be hooked up into the generic infrastructure using two simple callbacks, submit() and abort(). The submit() callback is used to schedule DMA transfers for blocks. Once a DMA transfer has been completed it is expected that the buffer driver calls iio_dma_buffer_block_done() to notify. The abort() callback is used for stopping all pending and active DMA transfers when the buffer is disabled. Signed-off-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron drivers/iio/buffer/Kconfig | 9 + drivers/iio/buffer/Makefile | 1 + drivers/iio/buffer/industrialio-buffer-dma.c | 683 +++++++++++++++++++++++++++ include/linux/iio/buffer-dma.h | 152 ++++++ 4 files changed, 845 insertions(+) commit e18a2ad45caeb11226e49c25068d0f2efe2adf6c Author: Lars-Peter Clausen Date: Tue Oct 13 18:10:27 2015 +0200 iio: Add buffer enable/disable callbacks This patch adds a enable and disable callback that is called when the buffer is enabled/disabled. This can be used by buffer implementations that need to do some setup or teardown work. E.g. a DMA based buffer can use this to start/stop the DMA transfer. Signed-off-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron drivers/iio/industrialio-buffer.c | 36 +++++++++++++++++++++++++++++++++++- include/linux/iio/buffer.h | 8 ++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) commit b440655b896b2d5a2fb5f918801fb0e281a537cd Author: Lars-Peter Clausen Date: Tue Oct 13 18:10:26 2015 +0200 iio: Add support for indicating fixed watermarks For buffers which have a fixed wake-up watermark the watermark attribute should be read-only. Add a new FIXED_WATERMARK flag to the struct iio_buffer_access_funcs, which can be set by a buffer implementation. Signed-off-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron drivers/iio/industrialio-buffer.c | 5 +++++ include/linux/iio/buffer.h | 8 ++++++++ 2 files changed, 13 insertions(+) commit 4a60535726d90bfad16b5c52dcffaeede9fb84a9 Author: Lars-Peter Clausen Date: Tue Oct 13 18:10:25 2015 +0200 iio:iio_buffer_init(): Only set watermark if not already set Only initialize the watermark field if it is still 0. This allows drivers to provide a custom default watermark value. E.g. some driver might have a fixed watermark or can only support watermarks within a certain range and the initial value for the watermark should be within this range. Signed-off-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron drivers/iio/industrialio-buffer.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f0566c0c405de543efb6fb8b8988cc7743d85ea6 Author: Lars-Peter Clausen Date: Tue Oct 13 18:10:24 2015 +0200 iio: Set device watermark based on watermark of all attached buffers Currently the watermark of the device is only set based on the watermark that is set for the user space buffer. This doesn't consider the watermarks set on any attached in-kernel buffers. Change this so that the watermark of the device should be the minimum of the watermarks over all attached buffers. Signed-off-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron drivers/iio/industrialio-buffer.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) commit 0d0e53844797200aa026dfbdfe62f90ccff88300 Author: Javier Martinez Canillas Date: Wed Oct 14 14:54:39 2015 +0200 iio: adc: mcp320x: Add compatible with vendor prefix to OF table The driver Device Tree binding now documents compatible strings that have a vendor prefix, so add these to the OF device ID table to match and mark the old ones as deprecated explaining that should not be used anymore. Signed-off-by: Javier Martinez Canillas Acked-by: Michael Welling Signed-off-by: Jonathan Cameron drivers/iio/adc/mcp320x.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit 3a872138e4b78e7f8bfce63f0da788c0cfd80e53 Author: Javier Martinez Canillas Date: Wed Oct 14 14:54:38 2015 +0200 iio: adc: mcp320x: Deprecated compatible strings with no vendor prefix The Microchip Analog to Digital Converter (ADC) Device Tree binding documents compatible strings with no vendor prefix. Since it should compatible strings with also a vendor, add these to the binding doc and mark the old ones as deprecated. The driver says that the device is from Microchip Technology which is listed in Documentation/devicetree/bindings/vendor-prefixes.txt so use the documented prefix. Signed-off-by: Javier Martinez Canillas Acked-by: Michael Welling Signed-off-by: Jonathan Cameron .../devicetree/bindings/iio/adc/mcp320x.txt | 30 +++++++++++++++------- 1 file changed, 21 insertions(+), 9 deletions(-) commit 415f792447572ef1949a3cef5119bbce8cc66373 Author: Cristina Opriceana Date: Fri Oct 9 16:31:28 2015 +0300 iio: Move IIO Dummy Driver out of staging This patch moves the reference IIO dummy driver from drivers/staging/iio into a separate folder, drivers/iio/dummy and adds the proper Kconfig and Makefile for it. A new config menu entry called IIO dummy driver has also been added in the Industrial I/O support menu, corresponding to this driver. Signed-off-by: Cristina Opriceana Signed-off-by: Jonathan Cameron drivers/iio/Kconfig | 1 + drivers/iio/Makefile | 1 + drivers/iio/dummy/Kconfig | 35 ++ drivers/iio/dummy/Makefile | 10 + drivers/iio/dummy/iio_dummy_evgen.c | 262 +++++++++ drivers/iio/dummy/iio_dummy_evgen.h | 13 + drivers/iio/dummy/iio_simple_dummy.c | 748 ++++++++++++++++++++++++++ drivers/iio/dummy/iio_simple_dummy.h | 129 +++++ drivers/iio/dummy/iio_simple_dummy_buffer.c | 192 +++++++ drivers/iio/dummy/iio_simple_dummy_events.c | 276 ++++++++++ drivers/staging/iio/Kconfig | 54 +- drivers/staging/iio/Makefile | 10 +- drivers/staging/iio/iio_dummy_evgen.c | 262 --------- drivers/staging/iio/iio_dummy_evgen.h | 13 - drivers/staging/iio/iio_simple_dummy.c | 748 -------------------------- drivers/staging/iio/iio_simple_dummy.h | 129 ----- drivers/staging/iio/iio_simple_dummy_buffer.c | 192 ------- drivers/staging/iio/iio_simple_dummy_events.c | 276 ---------- 18 files changed, 1699 insertions(+), 1652 deletions(-) commit f0b1643581b376ebd97a0068cbc3d146d6abdff1 Author: Marek Belisko Date: Fri Oct 16 14:53:39 2015 +0200 iio:adc:palmas: add DT support Code was found at: https://android.googlesource.com/kernel/tegra/+/a90856a6626d502d42c6e7abccbdf9d730b36270%5E%21/#F1 Signed-off-by: Laxman Dewangan Signed-off-by: Marek Belisko [Fixed minor typos + add channels list to documentation] Signed-off-by: Jonathan Cameron .../devicetree/bindings/iio/adc/palmas-gpadc.txt | 48 ++++++++++++++++++++ drivers/iio/adc/palmas_gpadc.c | 52 +++++++++++++++++++--- 2 files changed, 95 insertions(+), 5 deletions(-) commit e08e19c331fb249e6dc86365ee80d16045c4aeb1 Author: H. Nikolaus Schaller Date: Fri Oct 16 14:53:38 2015 +0200 iio:adc: add iio driver for Palmas (twl6035/7) gpadc This driver code was found as: https://android.googlesource.com/kernel/tegra/+/aaabb2e045f31e5a970109ffdaae900dd403d17e/drivers/staging/iio/adc Fixed various compilation issues and test this driver on omap5 evm. Signed-off-by: Pradeep Goudagunta Signed-off-by: H. Nikolaus Schaller Signed-off-by: Marek Belisko Acked-by: Laxman Dewangan Reviewed-by: Jonathan Cameron Acked-by: Lee Jones Signed-off-by: Jonathan Cameron drivers/iio/adc/Kconfig | 8 + drivers/iio/adc/Makefile | 1 + drivers/iio/adc/palmas_gpadc.c | 817 +++++++++++++++++++++++++++++++++++++++++ include/linux/mfd/palmas.h | 75 ++-- 4 files changed, 877 insertions(+), 24 deletions(-) commit 75b6548f1793c7a79a8b063cd575df9c04dcc122 Author: Teodora Baluta Date: Thu Oct 22 15:44:50 2015 +0300 iio: accel: add support for Memsic MXC6255XC sensor This patch adds a minimal implementation for the Memsic MXC6255XC orientation sensing accelerometer. The supported operations are reading raw acceleration values for X/Y axis that can be scaled using the exposed scale. Signed-off-by: Teodora Baluta Signed-off-by: Jonathan Cameron drivers/iio/accel/Kconfig | 11 +++ drivers/iio/accel/Makefile | 1 + drivers/iio/accel/mxc6255.c | 198 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 210 insertions(+) commit d2a3e0931a8f3b95b910096d022ffd98adbd075c Author: Martin Kepplinger Date: Thu Oct 15 15:10:32 2015 +0200 iio: mma8452: support either of the available interrupt pins This change is important in order for everyone to be easily able to use the driver for one of the supported accelerometer chips! Until now, the driver blindly assumed that the INT1 interrupt line is wired on a user's board. But these devices have 2 interrupt lines and can route their interrupt sources to one of them. Now, if "INT2" is found and matches i2c_client->irq, INT2 will be used. The chip's default actually is INT2, which is why probably many boards will have it wired and can make use of this. Of course, this also falls back to assuming INT1, so for existing users nothing will break. The new functionality is described in the bindings doc. Signed-off-by: Martin Kepplinger For the binding: Acked-by: Rob Herring Signed-off-by: Jonathan Cameron .../devicetree/bindings/iio/accel/mma8452.txt | 6 ++++++ drivers/iio/accel/mma8452.c | 21 +++++++++++++++------ 2 files changed, 21 insertions(+), 6 deletions(-) commit 9c8e1bdb958661c3925225dc19e2c32ea4c62612 Author: Tomas Elf Date: Mon Oct 19 17:51:57 2015 +0100 drm/i915: Cope with request list state change during error state capture Since we're not synchronizing the ring request list during error state capture the request list state might change between the time the corresponding error request list was allocated and dimensioned to the time when the ring request list is actually captured into the error state. If this happens then do an early exit and be aware that the captured error state might not be fully reliable. * v2: - Chris Wilson: Removed WARN_ON from size check since having the error state request list and the live driver request list diverge like this is a legitimate behaviour. - Tomas Elf: Removed update of num_request field since this made no sense. Just exit and move on. * v3: - Chris Wilson: Removed error message at the point of early exit. The user is not interested in any state changes happening during the error state capture, only in the state that we're trying to capture at the point of the error. Signed-off-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gpu_error.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit bfd7bbdd03a213ade7d997d91c8df25cfecf0cc5 Author: Daniel Vetter Date: Fri Oct 23 12:01:00 2015 +0200 Revert "drm/i915: Add soft-pinning API for execbuffer" This reverts commit 510567234180d7d65d2db9f7bd8424cabef13d3c. I somehow managed to combine a patch from Tomas Elf with a totally unrelated commit message from Chris Wilson. Let's revert this and reapply properly. Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gpu_error.c | 19 ------------------- 1 file changed, 19 deletions(-) commit aed8bbd4bd054f29e6c8cd7c7dd9b870992426ad Author: Daniel Vetter Date: Fri Oct 23 11:57:40 2015 +0200 drm/i915: Update DRIVER_DATE to 20151023 Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 97e5ed1111dcc5300a0f59a55248cd243937a8ab Author: Daniel Vetter Date: Fri Oct 23 10:56:12 2015 +0200 drm/i915: shut up gen8+ SDE irq dmesg noise We get tons of cases where the master interrupt handler apparently set a bit, with the SDEIIR disagreeing. No idea what's going on there, but it's consistent on gen8+, no one seems to care about it and it's making CI results flaky. Shut it up. No idea what's going on here, but we've had fun with PCH interrupts before: commit 44498aea293b37af1d463acd9658cdce1ecdf427 Author: Paulo Zanoni Date: Fri Feb 22 17:05:28 2013 -0300 drm/i915: also disable south interrupts when handling them Note that there's a regression report in Bugzilla, and other regression reports on the mailing lists keep croping up. But no ill effects have ever been reported. But for paranoia still keep the message at a debug level as a breadcrumb, just in case. This message was introduced in commit 38cc46d73ed99dd7002f1406002e52d7975d16cc Author: Oscar Mateo Date: Mon Jun 16 16:10:59 2014 +0100 drm/i915/bdw: Ack interrupts before handling them (GEN8) v2: Improve commit message a bit. Cc: Paulo Zanoni Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1445590572-23631-2-git-send-email-daniel.vetter@ffwll.ch Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92084 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=80896 Acked-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_irq.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 098cb3a601e6a6afcf1d0c15bc939a57732242a4 Author: Magnus Damm Date: Sun Oct 18 14:35:41 2015 +0900 ARM: shmobile: r8a7793: Add IPMMU nodes Add IPMMU nodes for the r8a7793 SoC. The IPMMU configuration for r8a7793 is identical to r8a7791 and includes SY0, SY1, DS, MP, MX, RT and GP. Signed-off-by: Magnus Damm Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7793.dtsi | 59 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) commit 832d3e4c823be3c09e20b33793ac668c77ea5bd6 Author: Magnus Damm Date: Sun Oct 18 14:26:56 2015 +0900 ARM: shmobile: r8a7794: Disable all IPMMU nodes by default The r8a7794 IPMMU nodes for MX and DS are currently lacking a line containing 'status = "disabled"', fix this by making sure they are disabled like all other IPMMU nodes. Signed-off-by: Magnus Damm Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7794.dtsi | 2 ++ 1 file changed, 2 insertions(+) commit 1329f6d0f6a502089ed00038493985f2a4d97006 Author: Sergei Shtylyov Date: Thu Oct 22 02:05:19 2015 +0300 ARM: shmobile: r8a7791: fix "gpio-ranges" props On R8A7791, GPIO banks 1 and 7 are missing pins 26 to 31. Correct the "gpio-ranges" properties of the GPIO1 node (GPIO7 is already correct). Signed-off-by: Sergei Shtylyov Tested-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 56a2182f6ada123759041bf28d066bb509fe358b Author: Sergei Shtylyov Date: Thu Oct 22 02:04:41 2015 +0300 ARM: shmobile: r8a7790: fix "gpio-ranges" props On R8A7790, GPIO banks 1 and 2 are missing pins 30 and 31. Correct the "gpio-ranges" properties of the corresponding device nodes. Signed-off-by: Sergei Shtylyov Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7790.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0cc16889e77a95568806b1e45af104f75547eac9 Author: Sudeep Holla Date: Wed Oct 21 11:10:11 2015 +0100 ARM: dts: shmobile/r8a7xxx: replace gpio-key, wakeup with wakeup-source property Though the keyboard driver for GPIO buttons(gpio-keys) will continue to check for/support the legacy "gpio-key,wakeup" boolean property to enable gpio buttons as wakeup source, "wakeup-source" is the new standard binding. This patch replaces the legacy "gpio-key,wakeup" with the unified "wakeup-source" property in order to avoid any futher copy-paste duplication. Signed-off-by: Sudeep Holla Acked-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a73a4-ape6evm.dts | 2 +- arch/arm/boot/dts/r8a7740-armadillo800eva.dts | 2 +- arch/arm/boot/dts/r8a7790-lager.dts | 8 ++++---- arch/arm/boot/dts/r8a7791-koelsch.dts | 22 +++++++++++----------- arch/arm/boot/dts/sh73a0-kzm9g.dts | 2 +- 5 files changed, 18 insertions(+), 18 deletions(-) commit 7de1691a8b1c902bc4d10015e1dbe674ead49461 Author: Tomas Elf Date: Mon Oct 19 16:32:32 2015 +0100 drm/i915: Grab execlist spinlock to avoid post-reset concurrency issues. Grab execlist lock when cleaning up execlist queues after GPU reset to avoid concurrency problems between the context event interrupt handler and the reset path immediately following a GPU reset. * v2 (Chris Wilson): Do execlist check and use simpler form of spinlock functions. Signed-off-by: Tomas Elf Reviewed-by: Dave Gordon Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) commit 510567234180d7d65d2db9f7bd8424cabef13d3c Author: Chris Wilson Date: Tue Oct 6 11:53:11 2015 +0100 drm/i915: Add soft-pinning API for execbuffer Userspace can pass in an offset that it presumes the object is located at. The kernel will then do its utmost to fit the object into that location. The assumption is that userspace is handling its own object locations (for example along with full-ppgtt) and that the kernel will rarely have to make space for the user's requests. v2: Fix i915_gem_evict_range() (now evict_for_vma) to handle ordinary and fixed objects within the same batch Signed-off-by: Chris Wilson Cc: "Daniel, Thomas" Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gpu_error.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit aa363136866caa636031284f13ea0f730c64fca9 Author: Matt Roper Date: Thu Sep 24 15:53:18 2015 -0700 drm/i915: Calculate watermark configuration during atomic check (v2) v2: Don't forget to actually check the cstate->active value when tallying up the number of active CRTC's. (Ander) Signed-off-by: Matt Roper Reviewed-by: Maarten Lankhorst Smoke-tested-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/59561/ drivers/gpu/drm/i915/i915_drv.h | 10 ++++++ drivers/gpu/drm/i915/intel_display.c | 52 +++++++++++++++++++++++++++-- drivers/gpu/drm/i915/intel_drv.h | 1 + drivers/gpu/drm/i915/intel_pm.c | 64 +++++++----------------------------- 4 files changed, 72 insertions(+), 55 deletions(-) commit 19b8d3875e21f4f7e5c999350892f1a788f4e977 Author: Matt Roper Date: Thu Sep 24 15:53:17 2015 -0700 drm/i915: Don't set plane visible during HW readout if CRTC is off We already ensure that pstate->visible = false when crtc->active = false during runtime programming; make sure we follow the same logic when reading out initial hardware state. Signed-off-by: Matt Roper Reviewed-by: Maarten Lankhorst Smoke-tested-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/59564/ drivers/gpu/drm/i915/intel_display.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 86c8bbbeb8d11b898ac33a52b1410b39a1c73b89 Author: Matt Roper Date: Thu Sep 24 15:53:16 2015 -0700 drm/i915: Calculate ILK-style watermarks during atomic check (v3) Calculate pipe watermarks during atomic calculation phase, based on the contents of the atomic transaction's state structure. We still program the watermarks at the same time we did before, but the computation now happens much earlier. While this patch isn't too exciting by itself, it paves the way for future patches. The eventual goal (which will be realized in future patches in this series) is to calculate multiple sets up watermark values up front, and then program them at different times (pre- vs post-vblank) on the platforms that need a two-step watermark update. While we're at it, s/intel_compute_pipe_wm/ilk_compute_pipe_wm/ since this function only applies to ILK-style watermarks and we have a completely different function for SKL-style watermarks. Note that the original code had a memcmp() in ilk_update_wm() to avoid calling ilk_program_watermarks() if the watermarks hadn't changed. This memcmp vanishes here, which means we may do some unnecessary result generation and merging in cases where watermarks didn't change, but the lower-level function ilk_write_wm_values already makes sure that we don't actually try to program the watermark registers again. v2: Squash a few commits from the original series together; no longer leave pre-calculated wm's in a separate temporary structure since it's easier to follow the logic if we just cut over to using the pre-calculated values directly. v3: - Pass intel_crtc instead of drm_crtc to .compute_pipe_wm() entrypoint and use intel_atomic_get_crtc_state() to avoid need for extra casting. (Ander) - Drop unused intel_check_crtc() function prototype. (Ander) Signed-off-by: Matt Roper Reviewed-by: Maarten Lankhorst Smoke-tested-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/60363/ drivers/gpu/drm/i915/i915_drv.h | 2 + drivers/gpu/drm/i915/intel_display.c | 6 +++ drivers/gpu/drm/i915/intel_pm.c | 88 ++++++++++++++++++------------------ 3 files changed, 51 insertions(+), 45 deletions(-) commit 4e0963c7663b0538b5a21fb49d17ea4ad64de861 Author: Matt Roper Date: Thu Sep 24 15:53:15 2015 -0700 drm/i915: Calculate pipe watermarks into CRTC state (v3) A future patch will calculate these during the atomic 'check' phase rather than at WM programming time, so let's store the watermark values we're planning to use in the CRTC state; the values actually active on the hardware remains in intel_crtc. While we're at it, do some minor restructuring to keep ILK and SKL values in a union. v2: Don't move cxsr_allowed to state (Maarten) v3: Only calculate watermarks in state. Still keep active watermarks in intel_crtc itself. (Ville) Signed-off-by: Matt Roper Reviewed-by: Maarten Lankhorst Smoke-tested-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/59556/ drivers/gpu/drm/i915/intel_drv.h | 48 +++++++++++++++++++++++++--------------- drivers/gpu/drm/i915/intel_pm.c | 44 ++++++++++++++++++++++-------------- 2 files changed, 57 insertions(+), 35 deletions(-) commit b9d5c839f18c8bbd79a61013371eb8cadf6d897d Author: Ville Syrjälä Date: Thu Sep 24 15:53:14 2015 -0700 drm/i915: Refactor ilk_update_wm (v3) Split ilk_update_wm() into two parts; one doing the programming and the other the calculations. v2: Fix typo in commit message v3 (by Matt): Heavily rebased for current codebase. Signed-off-by: Ville Syrjälä Signed-off-by: Matt Roper Reviewed-by: Maarten Lankhorst Smoke-tested-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/60366/ drivers/gpu/drm/i915/intel_pm.c | 64 ++++++++++++++++++++++------------------- 1 file changed, 35 insertions(+), 29 deletions(-) commit 791a32be6eb233773dd5698375d051af99e68d3b Author: Matt Roper Date: Thu Sep 24 15:53:13 2015 -0700 drm/i915: Drop intel_update_sprite_watermarks The only platform that still has an update_sprite_wm entrypoint is SKL; on SKL, intel_update_sprite_watermarks just updates intel_plane->wm and then performs a regular watermark update. However intel_plane->wm is only used to update a couple fields in intel_wm_config, and those fields are never used by the SKL code, so on SKL an update_sprite_wm is effectively identical to an update_wm call. Since we're already ensuring that the regular intel_update_wm is called any time we'd try to call intel_update_sprite_watermarks, the whole call is redundant and can be dropped. Signed-off-by: Matt Roper Reviewed-by: Maarten Lankhorst Smoke-tested-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/60372/ drivers/gpu/drm/i915/i915_drv.h | 4 --- drivers/gpu/drm/i915/intel_display.c | 5 ---- drivers/gpu/drm/i915/intel_drv.h | 6 ---- drivers/gpu/drm/i915/intel_pm.c | 58 ------------------------------------ drivers/gpu/drm/i915/intel_sprite.c | 15 ---------- 5 files changed, 88 deletions(-) commit d21fbe87ce18297af0a9b7cc0cd545fd9ac28d33 Author: Matt Roper Date: Thu Sep 24 15:53:12 2015 -0700 drm/i915/ivb: Move WaCxSRDisabledForSpriteScaling w/a to atomic check Determine whether we need to apply this workaround at atomic check time and just set a flag that will be used by the main watermark update routine. Moving this workaround into the atomic framework reduces ilk_update_sprite_wm() to just a standard watermark update, so drop it completely and just ensure that ilk_update_wm() is called whenever a sprite plane is updated in a way that would affect watermarks. Signed-off-by: Matt Roper Reviewed-by: Maarten Lankhorst Smoke-tested-by: Paulo Zanoni Link: http://patchwork.freedesktop.org/patch/60367/ drivers/gpu/drm/i915/intel_atomic.c | 1 + drivers/gpu/drm/i915/intel_display.c | 39 +++++++++++++++++++++++++++++------- drivers/gpu/drm/i915/intel_drv.h | 3 +++ drivers/gpu/drm/i915/intel_pm.c | 35 +++++++++++--------------------- 4 files changed, 48 insertions(+), 30 deletions(-) commit e4ba99b97e7f59889eeb8dd02867f4ed00c59eb0 Author: Daniel Vetter Date: Wed Oct 21 10:20:33 2015 +0200 drm/i915: Fix formatting for gen8_cs_irq_handler Requested by Chris, and since we're no longer rebasing the -next queue I can't rectify history. Cc: Chris Wilson Cc: Nick Hoath Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1445415633-21897-1-git-send-email-daniel.vetter@ffwll.ch Acked-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_irq.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit feda33ef0f0e5e915aae0764f8bfe5775be8f917 Author: Alex Dai Date: Mon Oct 19 16:10:54 2015 -0700 drm/i915/guc: Add GuC css header parser The size / offset information of all firmware ingredients are now caculated from header. Driver will validate the header and rsa key size. If any component is out of boundary, driver will reject the loading too. v6: Clean up warnings from make docs v5: Tidy up GuC titles in kernel/Doc v4: Now using 'size_dw' for those defined in css_header v3: 1) Move DOC to intel_guc_fwif.h right before css_header definition. Add more comments. 2) Change 'size' to 'len' or 'length' to avoid confusion. 3) Add UOS_RSA_SCRATCH_MAX_COUNT according to BSpec. And driver validate size of RSA key now. 4) Add fw component size/offset info to intel_guc_fw. v2: Add indent into DOC to make fixed-width format rather than change the tmpl. v1: 1) guc_css_header is defined as __packed now 2) Add and correct GuC related topics in kernel/Doc Signed-off-by: Alex Dai Reviewed-by: Dave Gordon Signed-off-by: Daniel Vetter Documentation/DocBook/drm.tmpl | 12 ++-- drivers/gpu/drm/i915/i915_debugfs.c | 6 ++ drivers/gpu/drm/i915/i915_guc_reg.h | 1 + drivers/gpu/drm/i915/i915_guc_submission.c | 8 +-- drivers/gpu/drm/i915/intel_guc.h | 8 ++- drivers/gpu/drm/i915/intel_guc_fwif.h | 72 ++++++++++++++++++++++ drivers/gpu/drm/i915/intel_guc_loader.c | 95 +++++++++++++++++++----------- 7 files changed, 157 insertions(+), 45 deletions(-) commit e87a005d90c37e7dd2737dcb4efb32341ad402f8 Author: Jani Nikula Date: Tue Oct 20 15:22:02 2015 +0300 drm/i915: add helpers for platform specific revision id range checks Revision checks are almost always accompanied by a platform check. (The exceptions are platform specific code.) Add helpers to check for a platform and a revision range: IS_SKL_REVID() and IS_BXT_REVID(). In most places this simplifies and clarifies the code. It will be obvious that revid macros are used for the correct platform. This should make it easier to find all the revision checks for workarounds for each platform, and make it easier to remove them once we drop support for early hardware revisions. This should also make it easier to differentiate between Skylake and Kabylake revision checks when Kabylake support is added. v2: rebase Acked-by: Ville Syrjälä Reviewed-by: Daniel Vetter Signed-off-by: Jani Nikula Link: http://patchwork.freedesktop.org/patch/msgid/1445343722-3312-3-git-send-email-jani.nikula@intel.com drivers/gpu/drm/i915/i915_drv.h | 13 +++++++ drivers/gpu/drm/i915/i915_gem.c | 2 +- drivers/gpu/drm/i915/i915_guc_submission.c | 6 ++-- drivers/gpu/drm/i915/intel_ddi.c | 3 +- drivers/gpu/drm/i915/intel_dp.c | 4 +-- drivers/gpu/drm/i915/intel_guc_loader.c | 4 +-- drivers/gpu/drm/i915/intel_hdmi.c | 2 +- drivers/gpu/drm/i915/intel_lrc.c | 26 +++++++------- drivers/gpu/drm/i915/intel_pm.c | 15 ++++---- drivers/gpu/drm/i915/intel_ringbuffer.c | 56 +++++++++++++----------------- 10 files changed, 68 insertions(+), 63 deletions(-) commit fffda3f4fb49d2874055b10512045e9fd56b90ae Author: Jani Nikula Date: Tue Oct 20 15:22:01 2015 +0300 drm/i915/bxt: add revision id for A1 stepping and use it Prefer inclusive ranges for revision checks rather than "below B0". Per specs A2 is not used, so revid <= A1 matches revid < B0. Acked-by: Ville Syrjälä Reviewed-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1445343722-3312-2-git-send-email-jani.nikula@intel.com Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/i915_gem.c | 2 +- drivers/gpu/drm/i915/i915_guc_submission.c | 2 +- drivers/gpu/drm/i915/intel_ddi.c | 2 +- drivers/gpu/drm/i915/intel_dp.c | 2 +- drivers/gpu/drm/i915/intel_hdmi.c | 2 +- drivers/gpu/drm/i915/intel_lrc.c | 8 ++++---- drivers/gpu/drm/i915/intel_pm.c | 6 +++--- drivers/gpu/drm/i915/intel_ringbuffer.c | 6 +++--- 9 files changed, 16 insertions(+), 15 deletions(-) commit ef712bb4b700c60a047350d3747563a0bbcc3b13 Author: Jani Nikula Date: Tue Oct 20 15:22:00 2015 +0300 drm/i915: remove parens around revision ids Totally unnecessary. Acked-by: Ville Syrjälä Reviewed-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/1445343722-3312-1-git-send-email-jani.nikula@intel.com Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_drv.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit fc32b1fdce1f85ea5a1277478f5d916ac3d6a284 Author: Maarten Lankhorst Date: Mon Oct 19 17:09:23 2015 +0200 drm/i915: Do not wait for flips in intel_crtc_disable_noatomic. intel_crtc_disable_noatomic is called from hw readout during init, resume and possibly reset. During init it's too early to have a page flip queued, before suspending all page flips should be finished and during hw reset all page flips should be removed. It's a bug when there are pending flips here, complain with WARN_ON instead of handling it. Signed-off-by: Maarten Lankhorst Link: http://patchwork.freedesktop.org/patch/msgid/562507A3.3080901@linux.intel.com Reviewed-by: Ander Conselvan de Oliveira Reviewed-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 86efe24a85ce8e937db2732b7cd7d9a1394d102e Author: Tvrtko Ursulin Date: Tue Oct 20 16:20:21 2015 +0100 drm/i915/skl: Consider plane rotation when calculating stride in skl_do_mmio_flip Previously rotation was ignored and wrong stride programmed into the plane registers resulting in a corrupt image on screen. v2: Do not access potentialy old plane state at flip time, but store the rotation value at the time of queing the flip. (Ville) v3: No need to pass rotation to intel_queue_mmio_flip since it is available in the crtc. (Ville) Signed-off-by: Tvrtko Ursulin Testcase: igt/kms_rotation_crc/primary-rotation-90-flip-stress (SKL) Reviewed-by: Ville Syrjälä Cc: Sonika Jindal Cc: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 27 ++++++++++++++++----------- drivers/gpu/drm/i915/intel_drv.h | 1 + 2 files changed, 17 insertions(+), 11 deletions(-) commit 54bf1ce633f6649b1f3682c25712b9e42acb174b Author: Tvrtko Ursulin Date: Tue Oct 20 17:17:07 2015 +0100 drm/i915/skl: Assume no scaling is available when things are not as expected Cdclk < crtc_clock is not allowed and suggests a different problem elsewhere in the code. It is more robust and safe to assume no scaling is possible in this case with no other downsides since it will also WARN_ON_ONCE so that this definitely gets noticed. Call it an assert to help new platform bring-up in simulation. v2: Better commit msg and use WARN_ON_ONCE to signify the unexpectedness. v3: Move zero crtc_clock check under the warn. (Ville) Signed-off-by: Tvrtko Ursulin Reviewed-by: Ville Syrjälä Cc: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c73666f394fca498978f71e66062eb3e3f2c7951 Author: Shobhit Kumar Date: Tue Oct 20 18:13:12 2015 +0530 drm/i915/skl: If needed sanitize bios programmed cdclk Especially in cases where pre-os does not enable display, cdclk might not be in sane state. During sanitization initialize cdclk with maximum value till we get dynamic cdclk support. v2: Check if BIOS programmed correctly rather than always calling init - Do validation of programmed cdctl and what it is expected - Only do slk_init_cdclk if validation failed else reuse BIOS programmed value v3: Move the validation logic in a separate sanitize function (Ville) v4: No need to check LCPLL after sanitize and use max_cdclk_freq instead of hardcoded value (Ville) Cc: Imre Deak Cc: Ville Syrjälä Signed-off-by: Shobhit Kumar Link: http://patchwork.freedesktop.org/patch/msgid/1445344992-14658-1-git-send-email-shobhit.kumar@intel.com Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ddi.c | 4 ++-- drivers/gpu/drm/i915/intel_display.c | 31 +++++++++++++++++++++++++++++++ drivers/gpu/drm/i915/intel_drv.h | 1 + 3 files changed, 34 insertions(+), 2 deletions(-) commit 761b11e141366743a5c179a0f94c237d0ba9667c Author: Sergei Shtylyov Date: Fri Oct 16 14:37:01 2015 -0700 ARM: shmobile: silk: add SDHI1 DT support Define the SILK board dependent part of the SDHI1 (connected to micro-SD slot) device nodes along with the necessary voltage regulators. Based on the original patch by Vladimir Barinov . Signed-off-by: Sergei Shtylyov Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7794-silk.dts | 40 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit fbcc1a0c3e36d6ddc19eb6a527518eaeef77645a Author: Nick Hoath Date: Tue Oct 20 10:23:52 2015 +0100 drm/i915: Break out common code from gen8_gt_irq_handler Break out common code from gen8_gt_irq_handler and put it in to an always inlined function. gcc optimises out the shift at compile time. (Thomas Daniel/Daniel Vetter/Chris Wilson) Issue: VIZ-4277 Signed-off-by: Nick Hoath Cc: Thomas Daniel Cc: Daniel Vetter Cc: Chris Wilson Link: http://patchwork.freedesktop.org/patch/msgid/1445333036-22164-3-git-send-email-nicholas.hoath@intel.com Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_irq.c | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) commit 5dd280b085dc7611ab6704e6df4c204883e403f4 Author: Nick Hoath Date: Tue Oct 20 10:23:51 2015 +0100 drm/i195: Rename gt_irq_handler variable Renamed tmp variable to the more descriptive iir. (Daniel Vetter/ Thomas Daniel) Issue: VIZ-4277 Signed-off-by: Nick Hoath Cc: Daniel Vetter Cc: David Gordon Cc: Thomas Daniel Link: http://patchwork.freedesktop.org/patch/msgid/1445333036-22164-2-git-send-email-nicholas.hoath@intel.com Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_irq.c | 46 ++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 23 deletions(-) commit 024c9045221fe45482863c47c4b4c47d37f97cbf Author: Matt Roper Date: Thu Sep 24 15:53:11 2015 -0700 drm/i915/skl: Eliminate usage of pipe_wm_parameters from SKL-style WM (v4) Just pull the info out of the state structures rather than staging it in an additional set of structures. To make this more straightforward, we change the signature of several internal WM functions to take the crtc state as a parameter. v2: - Don't forget to skip cursor planes on a loop in the DDB allocation function to match original behavior. (Ander) - Change a use of intel_crtc->active to cstate->active. They should be identical, but it's better to be consistent. (Ander) - Rework more function signatures to pass states rather than crtc for consistency. (Ander) v3: - Add missing "+ 1" to skl_wm_plane_id()'s 'overlay' case. (Maarten) - Packed formats should pass '0' to drm_format_plane_cpp(), not 1. (Maarten) - Drop unwanted WARN_ON() for disabled planes when calculating data rate for SKL. (Maarten) v4: - Don't include cursor plane in total relative data rate calculation; we've already handled the cursor allocation earlier. - Fix 'bytes_per_pixel' calculation braindamage. Somehow I hardcoded the NV12 format as a parameter rather than the actual fb->pixel_format, and even then still managed to get the format plane wrong. (Ville) - Use plane->state->fb rather than plane->fb in skl_allocate_pipe_ddb(); the plane->fb pointer isn't updated until after we've done our watermark recalculation, so it has stale values. (Bob Paauwe) Signed-off-by: Matt Roper Reviewed-by(v3): Maarten Lankhorst Cc: Paauwe, Bob J Cc: Ville Syrjälä Cc: Paulo Zanoni References: http://lists.freedesktop.org/archives/intel-gfx/2015-September/077060.html References: http://lists.freedesktop.org/archives/intel-gfx/2015-October/077721.html Smoke-tested-by(v4): Paulo Zanoni (SKL) Link: http://patchwork.freedesktop.org/patch/61968/ drivers/gpu/drm/i915/intel_pm.c | 327 +++++++++++++++++++--------------------- 1 file changed, 152 insertions(+), 175 deletions(-) commit be15aad6e8ec09d9be1a3a563b7b17ba592df942 Author: David Henningsson Date: Fri Oct 16 11:24:24 2015 +0200 drm/i915: Improve kernel-doc for i915_audio_component struct Signed-off-by: David Henningsson Link: http://patchwork.freedesktop.org/patch/msgid/1444987464-8657-1-git-send-email-david.henningsson@canonical.com Signed-off-by: Daniel Vetter include/drm/i915_component.h | 69 ++++++++++++++++++++++++++++++++------------ 1 file changed, 51 insertions(+), 18 deletions(-) commit fa8848f27895bd19e16aed77868f464be24034e6 Author: Chris Wilson Date: Wed Oct 14 14:17:11 2015 +0100 drm/i915: Report context GTT size Since the beginning we have conflated the size of the global GTT with that of the per-process context sizes. In recent times (gen8+), those are no longer the same where the global GTT is limited to 2/4GiB but the per-process GTT may be anything up to 256TiB. Userspace knows nothing of this discrepancy and outside of one or two hacks, uses the getaperture ioctl to determine the maximum size it can use. Let's leave that as reporting the global GTT and use the context reporting method to describe the per-process value (which naturally fallsback to reporting the aliasing or global on older platforms, so userspace can always use this method where available). Testcase: igt/gem_userptr_blits/minor-normal-sync Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90065 Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_context.c | 8 ++++++++ include/uapi/drm/i915_drm.h | 5 +++-- 2 files changed, 11 insertions(+), 2 deletions(-) commit def0c5f6b0cd58cfc0b5702b1e1b1f5078debc35 Author: Chris Wilson Date: Thu Oct 8 13:39:54 2015 +0100 drm/i915: Map the ringbuffer using WB on LLC machines If we have llc coherency, we can write directly into the ringbuffer using ordinary cached writes rather than forcing WC access. v2: An important consequence is that we can forgo the mappable request for WB ringbuffers, allowing for many more simultaneous contexts. Signed-off-by: Chris Wilson Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ringbuffer.c | 70 ++++++++++++++++++++++++++------- 1 file changed, 56 insertions(+), 14 deletions(-) commit 1f9a99e0e75f29776d6f4062a03edc5e41c60596 Author: Michel Thierry Date: Wed Sep 30 15:36:19 2015 +0100 drm/i915/gen8: Flip the 48b switch Use 48b addresses if hw supports it (i915.enable_ppgtt=3). Update the sanitize_enable_ppgtt for 48 bit PPGTT mode. Note, aliasing PPGTT remains 32b only. v2: s/full_64b/full_48b/. (Akash) v3: Add sanitize_enable_ppgtt changes until here. (Akash) v4: Update param description (Chris) Cc: Akash Goel Cc: Chris Wilson Signed-off-by: Michel Thierry Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 7 ++++++- drivers/gpu/drm/i915/i915_params.c | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) commit 6173ee2886ca46e00ba3d8f0b4a9a1cd6f8a76ce Author: Maarten Lankhorst Date: Wed Sep 23 16:29:39 2015 +0200 drm/i915: Only call commit_planes when there are things to commit. The atomic helpers set planes_changed on a crtc_state if there is any plane_state bound to that crtc. If there's none and there is no pipe update required the crtc has nothing to update, so vblank evasion can be skipped. Signed-off-by: Maarten Lankhorst Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 6285262259ca3d12da57073236a55d1b81bf8643 Author: Maarten Lankhorst Date: Wed Sep 23 16:29:38 2015 +0200 drm/i915: Only run commit when crtc is active, v2. The crtc->active guards are no longer needed now that all state updates are outside the commit. Changes since v1: - Only check crtc->state->active before calling commit_planes_on_crtc. Signed-off-by: Maarten Lankhorst Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 15 +++++---------- drivers/gpu/drm/i915/intel_sprite.c | 3 --- 2 files changed, 5 insertions(+), 13 deletions(-) commit f029ee825cdfc486b24ee67a3d4d0b2c05c9bee5 Author: Maarten Lankhorst Date: Wed Sep 23 16:29:37 2015 +0200 drm/i915: Only commit active planes when updating planes during reset. In the next commit commit_plane will no longer check if the crtc is active. To prevent issues with legacy page flips the check should be performed inside update_primary_planes. Signed-off-by: Maarten Lankhorst Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 61067a5e69f548f5cb7f575f8e147956b60b2876 Author: Maarten Lankhorst Date: Wed Sep 23 16:29:36 2015 +0200 drm/i915: Update legacy primary state outside the commit hook, v2. This should allow not running plane commit when the crtc is off. While the atomic helpers update those, crtc->x/y is only updated during modesets, and primary plane is updated after this function returns. Unfortunately non-atomic watermarks and fbc still depend on this state inside i915, so it has to be kept in sync. Changes since v1: - Add comment that the legacy state is updated for fbc. Signed-off-by: Maarten Lankhorst Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) commit b26a6b35581c84124bd78b68cc02d171fbd572c9 Author: Maarten Lankhorst Date: Wed Sep 23 13:27:09 2015 +0200 drm/i915: Make prepare_plane_fb fully interruptible. Now that we agreed on not preserving framebuffers pinning is finally allowed to fail because of signals. Use this to make pinning and acquire the mutex in an interruptible way too. Unpinning is still uninterruptible, because it happens as a cleanup of old state, or undoing pins after one of the pins failed. The intel_pin_and_fence_fb_obj in page_flip will also wait interruptibly, and can be aborted now. Signed-off-by: Maarten Lankhorst Reviewed-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 1ee493991470bcae58e716ba24d6d4eb9ad612ab Author: Maarten Lankhorst Date: Wed Sep 23 13:27:08 2015 +0200 drm/i915: Make plane fb tracking work correctly, v2. atomic->disabled_planes is a hack that had to exist because prepare_fb was only called when a new fb was set. This messed up fb tracking in some circumstances like aborts from interruptible waits. As a result interruptible waiting in prepare_plane_fb was forbidden, but other errors could still cause frontbuffer tracking to be messed up. Now that prepare_fb is always called, this hack is no longer required and prepare_fb may fail without consequences. Changes since v1: - Clean up a few fb tracking warnings by changing plane->fb to plane->state->fb. Signed-off-by: Maarten Lankhorst Reviewed-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 47 ++++++++++++++---------------------- drivers/gpu/drm/i915/intel_drv.h | 1 - 2 files changed, 18 insertions(+), 30 deletions(-) commit 0a9d2bed5557e7d870761eede982f2d9d08f87f4 Author: Animesh Manna Date: Tue Sep 29 11:01:59 2015 +0530 drm/i915/skl: Making DC6 entry is the last call in suspend flow. Mmio register access after dc6/dc5 entry is not allowed when DC6 power states are enabled according to bspec (bspec-id 0527), so enabling dc6 as the last call in suspend flow. Addtional note from Imre: Currently we keep DC6 enabled during modesets and DPAUX transfers, which is not allowed according to the specification. This can lead at least to PLL locking failures, DPAUX timeouts and prevent deeper package power states (PC9/10). Fix this for now by enabling DC6 only when we know the above events (modeset, DPAUX) can't happen. This a temporary solution as some issues are still unsolved as described in [1] and [2], we'll address those as a follow-up. [1] http://lists.freedesktop.org/archives/intel-gfx/2015-October/077669.html [2] http://lists.freedesktop.org/archives/intel-gfx/2015-October/077787.html v1: Initial version. v2: Based on review comment from Daniel, - created a seperate patch for csr uninitialization set call. v3: Rebased on top of latest code. Cc: Daniel Vetter Cc: Damien Lespiau Cc: Imre Deak Cc: Sunil Kamath Signed-off-by: Animesh Manna Signed-off-by: Vathsala Nagaraju Signed-off-by: Rajneesh Bhardwaj Acked-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.c | 13 +++++++++++++ drivers/gpu/drm/i915/intel_drv.h | 2 ++ drivers/gpu/drm/i915/intel_runtime_pm.c | 19 +++++++------------ 3 files changed, 22 insertions(+), 12 deletions(-) commit 5d2ac865a609ff1c5a5228c8721e7ae06f5f7b72 Author: Geert Uytterhoeven Date: Fri Oct 16 16:05:16 2015 +0200 ARM: shmobile: r8a7791 dtsi: Remove bogus imp_clk node R-Car M2-W does not have an IMP core or an IMP clock. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791.dtsi | 8 -------- 1 file changed, 8 deletions(-) commit b6be6b2f3be270cbd53fb13706c32500f6cd1432 Author: Geert Uytterhoeven Date: Fri Oct 16 16:05:15 2015 +0200 ARM: shmobile: r8a7794 dtsi: Remove bogus imp_clk node R-Car E2 does not have an IMP core or an IMP clock. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7794.dtsi | 8 -------- 1 file changed, 8 deletions(-) commit c794f6a09a251e229b122082eff1f85b994d2bca Author: Sergei Shtylyov Date: Wed Oct 14 22:35:46 2015 +0300 ARM: shmobile: porter: add HS-USB DT support Enable HS-USB device for the Porter board, defining the GPIO that the driver should check when probing (which is the ID output from MAX3355 OTG chip). Note that there will be pinctrl-related error messages if both internal PCI and HS-USB drivers are enabled but they should be just ignored. This patch is analogous to the commit 6f4f7156e0e6 ("ARM: shmobile: henninger: enable HS-USB") as there are no differences between the boards in this respect. Signed-off-by: Sergei Shtylyov Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791-porter.dts | 8 ++++++++ 1 file changed, 8 insertions(+) commit 8d3095f4ad47ac409440a0ba1c80e13519ff867d Author: Miklos Szeredi Date: Mon Oct 12 17:11:44 2015 +0200 ovl: default permissions Add mount option "default_permissions" to alter the way permissions are calculated. Without this option and prior to this patch permissions were calculated by underlying lower or upper filesystem. With this option the permissions are calculated by overlayfs based on the file owner, group and mode bits. This has significance for example when a read-only exported NFS filesystem is used as a lower layer. In this case the underlying NFS filesystem will reply with EROFS, in which case all we know is that the filesystem is read-only. But that's not what we are interested in, we are interested in whether the access would be allowed if the filesystem wasn't read-only; the server doesn't tell us that, and would need updating at various levels, which doesn't seem practicable. Signed-off-by: Miklos Szeredi fs/overlayfs/inode.c | 23 +++++++++++++++++++++++ fs/overlayfs/overlayfs.h | 3 +++ fs/overlayfs/super.c | 28 ++++++++++++++++++++++++++++ 3 files changed, 54 insertions(+) commit ca3060d39ae7a0964f8c123a4833029981e86476 Author: Stephen Boyd Date: Tue Sep 15 16:09:22 2015 -0700 c6x: Use generic clkdev.h header The c6x clkdev.h header is the same as the asm-generic header, so just use the asm-generic one. Signed-off-by: Stephen Boyd Signed-off-by: Mark Salter arch/c6x/include/asm/Kbuild | 1 + arch/c6x/include/asm/clkdev.h | 22 ---------------------- 2 files changed, 1 insertion(+), 22 deletions(-)